diff --git a/assets/js/014bb441.00a0da6d.js b/assets/js/014bb441.609f6f60.js similarity index 80% rename from assets/js/014bb441.00a0da6d.js rename to assets/js/014bb441.609f6f60.js index e8177f7ce6..43e288410a 100644 --- a/assets/js/014bb441.00a0da6d.js +++ b/assets/js/014bb441.609f6f60.js @@ -1,4 +1,4 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[16295],{69473:(e,t,r)=>{r.d(t,{in:()=>s,OU:()=>k,Ki:()=>S,kJ:()=>d,x:()=>l,e7:()=>u,J_:()=>m,Gx:()=>x});var n=r(62540),o=r(63696),c=r(2550),i=r(15789);function l(){var e;let t=(0,i.A)(),r=null==t?void 0:null===(e=t.data)||void 0===e?void 0:e.blogMetadata;if(!r)throw Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return r}let a=o.createContext(null);function s({children:e,content:t,isBlogPostPage:r=!1}){let c=function({content:e,isBlogPostPage:t}){return(0,o.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,toc:e.toc,isBlogPostPage:t}),[e,t])}({content:t,isBlogPostPage:r});return(0,n.jsx)(a.Provider,{value:c,children:e})}function u(){let e=(0,o.useContext)(a);if(null===e)throw new c.dV("BlogPostProvider");return e}var b=r(27167),p=r(99468);function f(e){for(var t=1;tnew Date(e).toISOString();function y(e){let t=e.map(g);return{author:1===t.length?t[0]:t}}function j(e,t,r){return e?{image:function({imageUrl:e,caption:t}){return{"@type":"ImageObject","@id":e,url:e,contentUrl:e,caption:t}}({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${r}`})}:{}}function d(e){let{siteConfig:t}=(0,p.A)(),{withBaseUrl:r}=(0,b.hH)(),{metadata:{blogDescription:n,blogTitle:o,permalink:c}}=e,i=`${t.url}${c}`;return{"@context":"https://schema.org","@type":"Blog","@id":i,mainEntityOfPage:i,headline:o,description:n,blogPost:e.items.map(e=>(function(e,t,r){var n,o;let{assets:c,frontMatter:i,metadata:l}=e,{date:a,title:s,description:u,lastUpdatedAt:b}=l,p=null!==(n=c.image)&&void 0!==n?n:i.image,d=null!==(o=i.keywords)&&void 0!==o?o:[],m=`${t.url}${l.permalink}`,g=b?O(b):void 0;return f({"@type":"BlogPosting","@id":m,mainEntityOfPage:m,url:m,headline:s,name:s,description:u,datePublished:a},g?{dateModified:g}:{},y(l.authors),j(p,r,s),d?{keywords:d}:{})})(e.content,t,r))}}function m(){var e,t,r,n;let o=l(),{assets:c,metadata:i}=u(),{siteConfig:a}=(0,p.A)(),{withBaseUrl:s}=(0,b.hH)(),{date:d,title:m,description:g,frontMatter:h,lastUpdatedAt:v}=i,w=null!==(e=c.image)&&void 0!==e?e:h.image,P=null!==(t=h.keywords)&&void 0!==t?t:[],x=v?O(v):void 0,S=`${a.url}${i.permalink}`;return r=f({"@context":"https://schema.org","@type":"BlogPosting","@id":S,mainEntityOfPage:S,url:S,headline:m,name:m,description:g,datePublished:d},x?{dateModified:x}:{},y(i.authors),j(w,s,m),P?{keywords:P}:{}),n=n={isPartOf:{"@type":"Blog","@id":`${a.url}${o.blogBasePath}`,name:o.blogTitle}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}function g(e){return f({"@type":"Person"},e.name?{name:e.name}:{},e.title?{description:e.title}:{},e.url?{url:e.url}:{},e.email?{email:e.email}:{},e.imageURL?{image:e.imageURL}:{})}var h=r(49519),v=r(36372),w=r(66904),P=r(3107);function x(e){let{pathname:t}=(0,h.zy)();return(0,o.useMemo)(()=>e.filter(e=>!e.unlisted||!!(0,P.ys)(e.permalink,t)),[e,t])}function S(e){let t=Object.entries((0,w.$z)(e,e=>`${new Date(e.date).getFullYear()}`));return t.reverse(),t}function k({items:e,ulClassName:t,liClassName:r,linkClassName:o,linkActiveClassName:c}){return(0,n.jsx)("ul",{className:t,children:e.map(e=>(0,n.jsx)("li",{className:r,children:(0,n.jsx)(v.A,{isNavLink:!0,to:e.permalink,className:o,activeClassName:c,children:e.title})},e.permalink))})}},65108:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t{r.d(t,{A:()=>N});var n,o,c=r(62540),i=r(63696),l=r(11750),a=r(81912),s=r(12653);let u={admonition:"admonition_o5H7",admonitionHeading:"admonitionHeading_FzoX",admonitionIcon:"admonitionIcon_rXq6",admonitionContent:"admonitionContent_Knsx"};function b({type:e,className:t,children:r}){return(0,c.jsx)("div",{className:(0,l.A)(s.G.common.admonition,s.G.common.admonitionType(e),u.admonition,t),children:r})}function p({icon:e,title:t}){return(0,c.jsxs)("div",{className:u.admonitionHeading,children:[(0,c.jsx)("span",{className:u.admonitionIcon,children:e}),t]})}function f({children:e}){return e?(0,c.jsx)("div",{className:u.admonitionContent,children:e}):null}function O(e){let{type:t,icon:r,title:n,children:o,className:i}=e;return(0,c.jsxs)(b,{type:t,className:i,children:[n||r?(0,c.jsx)(p,{title:n,icon:r}):null,(0,c.jsx)(f,{children:o})]})}let y={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t(0,c.jsx)(j,k({title:"secondary"},e)),important:e=>(0,c.jsx)(v,k({title:"important"},e)),success:e=>(0,c.jsx)(m,k({title:"success"},e)),caution:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;ti.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),n=t.filter(e=>e!==r);return{mdxAdmonitionTitle:null==r?void 0:r.props.children,rest:n.length>0?(0,c.jsx)(c.Fragment,{children:n}):null}}(e.children),a=null!==(t=e.title)&&void 0!==t?t:o;return r=function(e){for(var t=1;t{r.d(t,{A:()=>v});var n=r(62540),o=r(63696),c=r(11750),i=r(99849),l=r(85975),a=r(81912),s=r(69473),u=r(25436),b=r(37425);function p({year:e,yearGroupHeadingClassName:t,children:r}){return(0,n.jsxs)("div",{role:"group",children:[(0,n.jsx)(b.A,{as:"h3",className:t,children:e}),r]})}let f=(0,o.memo)(function({items:e,yearGroupHeadingClassName:t,ListComponent:r}){if(!(0,u.p)().blog.sidebar.groupByYear)return(0,n.jsx)(r,{items:e});{let o=(0,s.Ki)(e);return(0,n.jsx)(n.Fragment,{children:o.map(([e,o])=>(0,n.jsx)(p,{year:e,yearGroupHeadingClassName:t,children:(0,n.jsx)(r,{items:o})},e))})}}),O=({items:e})=>(0,n.jsx)(s.OU,{items:e,ulClassName:(0,c.A)("sidebarItemList_OSkG","clean-list"),liClassName:"sidebarItem_WJ0y",linkClassName:"sidebarItemLink_Qrfg",linkActiveClassName:"sidebarItemLinkActive_nUeK"}),y=(0,o.memo)(function({sidebar:e}){let t=(0,s.Gx)(e.items);return(0,n.jsx)("aside",{className:"col col--3",children:(0,n.jsxs)("nav",{className:(0,c.A)("sidebar_P3nc","thin-scrollbar"),"aria-label":(0,a.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,n.jsx)("div",{className:(0,c.A)("sidebarItemTitle_VrjY","margin-bottom--md"),children:e.title}),(0,n.jsx)(f,{items:t,ListComponent:O,yearGroupHeadingClassName:"yearGroupHeading_lECJ"})]})})});var j=r(2454);let d=({items:e})=>(0,n.jsx)(s.OU,{items:e,ulClassName:"menu__list",liClassName:"menu__list-item",linkClassName:"menu__link",linkActiveClassName:"menu__link--active"});function m({sidebar:e}){let t=(0,s.Gx)(e.items);return(0,n.jsx)(f,{items:t,ListComponent:d,yearGroupHeadingClassName:"yearGroupHeading_Ruz9"})}let g=(0,o.memo)(function(e){return(0,n.jsx)(j.GX,{component:m,props:e})});function h({sidebar:e}){let t=(0,l.l)();return(null==e?void 0:e.items.length)?"mobile"===t?(0,n.jsx)(g,{sidebar:e}):(0,n.jsx)(y,{sidebar:e}):null}function v(e){var t,r;let{sidebar:o,toc:l,children:a}=e,s=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["sidebar","toc","children"]),u=o&&o.items.length>0;return(0,n.jsx)(i.A,(t=function(e){for(var t=1;t{r.d(t,{A:()=>o});var n=r(62540);function o({children:e,className:t}){return(0,n.jsx)("article",{className:t,children:e})}r(63696)},5939:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750),c=r(71106),i=r(69473),l=r(76699);function a({children:e,className:t}){let{isBlogPostPage:r}=(0,i.e7)();return(0,n.jsx)("div",{id:r?c.LU:void 0,className:(0,o.A)("markdown",t),children:(0,n.jsx)(l.A,{children:e})})}},21500:(e,t,r)=>{r.d(t,{A:()=>p});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(13111),l=r(60908),a=r(69473);function s({readingTime:e}){let t=function(){let{selectMessage:e}=(0,i.W)();return t=>{let r=Math.ceil(t);return e(r,(0,c.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:r}))}}();return(0,n.jsx)(n.Fragment,{children:t(e)})}function u({date:e,formattedDate:t}){return(0,n.jsx)("time",{dateTime:e,children:t})}function b(){return(0,n.jsx)(n.Fragment,{children:" \xb7 "})}function p({className:e}){let{metadata:t}=(0,a.e7)(),{date:r,readingTime:c}=t,i=(0,l.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,n.jsxs)("div",{className:(0,o.A)("container_x5Un","margin-vert--md",e),children:[(0,n.jsx)(u,{date:r,formattedDate:i.format(new Date(r))}),void 0!==c&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(b,{}),(0,n.jsx)(s,{readingTime:c})]})]})}},32886:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(11750),c=r(36372),i=r(69473);function l({className:e}){let{metadata:t,isBlogPostPage:r}=(0,i.e7)(),{permalink:l,title:a}=t;return(0,n.jsx)(r?"h1":"h2",{className:(0,o.A)("title_UBNu",e),children:r?a:(0,n.jsx)(c.A,{to:l,children:a})})}},79431:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(37554),c=r(69473);function i(){var e;let{assets:t,metadata:r}=(0,c.e7)(),{title:i,description:l,date:a,tags:s,authors:u,frontMatter:b}=r,{keywords:p}=b,f=null!==(e=t.image)&&void 0!==e?e:b.image;return(0,n.jsxs)(o.be,{title:i,description:l,keywords:p,image:f,children:[(0,n.jsx)("meta",{property:"og:type",content:"article"}),(0,n.jsx)("meta",{property:"article:published_time",content:a}),u.some(e=>e.url)&&(0,n.jsx)("meta",{property:"article:author",content:u.map(e=>e.url).filter(Boolean).join(",")}),s.length>0&&(0,n.jsx)("meta",{property:"article:tag",content:s.map(e=>e.label).join(",")})]})}},23572:(e,t,r)=>{r.d(t,{A:()=>f});var n=r(62540),o=r(63696),c=r(11750),i=r(52711),l=r(10709),a=r(27720);let s={details:"details_Nokh",isBrowser:"isBrowser_QrB5",collapsibleContent:"collapsibleContent_EoA1"};function u(e){return!!e&&("SUMMARY"===e.tagName||u(e.parentElement))}function b(e){var t,r,{summary:b,children:p}=e,f=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["summary","children"]);(0,i.A)().collectAnchor(f.id);let O=(0,l.A)(),y=(0,o.useRef)(null),{collapsed:j,setCollapsed:d}=(0,a.u)({initialState:!f.open}),[m,g]=(0,o.useState)(f.open),h=o.isValidElement(b)?b:(0,n.jsx)("summary",{children:null!=b?b:"Details"});return(0,n.jsxs)("details",(t=function(e){for(var t=1;t{u(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();let t=e.target;u(t)&&function e(t,r){return!!t&&(t===r||e(t.parentElement,r))}(t,y.current)&&(e.preventDefault(),j?(d(!1),g(!0)):d(!0))},children:[h,(0,n.jsx)(a.N,{lazy:!1,collapsed:j,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{d(e),g(!e)},children:(0,n.jsx)("div",{className:s.collapsibleContent,children:p})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function p(){return(p=Object.assign||function(e){for(var t=1;t{r.d(t,{A:()=>B});var n,o,c=r(62540),i=r(63696),l=r(43023),a=r(93394),s=r(55887);function u(e){return(0,c.jsx)("code",function(e){for(var t=1;t"string"==typeof e&&!e.includes("\n"))?(0,c.jsx)(u,b({},e)):(0,c.jsx)(s.A,b({},e))}var f=r(36372),O=r(23572);function y(e){var t,r;let n=i.Children.toArray(e.children),o=n.find(e=>i.isValidElement(e)&&"summary"===e.type),l=(0,c.jsx)(c.Fragment,{children:n.filter(e=>e!==o)});return(0,c.jsx)(O.A,(t=function(e){for(var t=1;t{var r;let n=t.current;null===(r=e.bindFunctions)||void 0===r||r.call(e,n)},[e]),(0,c.jsx)("div",{ref:t,className:"docusaurus-mermaid-container container_RUsj",dangerouslySetInnerHTML:{__html:e.svg}})}function N({value:e}){let t=function({text:e,config:t}){let[r,n]=(0,i.useState)(null),o=(0,i.useRef)(`mermaid-svg-${Math.round(1e7*Math.random())}`).current,c=function(){let{colorMode:e}=(0,S.G)(),t=(0,x.p)().mermaid,r=t.theme[e],{options:n}=t;return(0,i.useMemo)(()=>{var e,t;return e=function(e){for(var t=1;t{D({id:o,text:e,config:l}).then(n).catch(e=>{n(()=>{throw e})})},[o,e,l]),r}({text:e});return null===t?null:(0,c.jsx)(E,{renderResult:t})}function _(e){for(var t=1;t(0,c.jsx)(d,_({as:"h1"},e)),h2:e=>(0,c.jsx)(d,_({as:"h2"},e)),h3:e=>(0,c.jsx)(d,_({as:"h3"},e)),h4:e=>(0,c.jsx)(d,_({as:"h4"},e)),h5:e=>(0,c.jsx)(d,_({as:"h5"},e)),h6:e=>(0,c.jsx)(d,_({as:"h6"},e)),admonition:v.A,mermaid:function(e){return(0,c.jsx)(w.A,{fallback:e=>(0,c.jsx)(P.MN,A({},e)),children:(0,c.jsx)(N,A({},e))})}}),o=o={Code:p,Highlight:function({children:e,color:t}){return(0,c.jsx)("span",{style:{backgroundColor:t,borderRadius:"2px",color:"#fff",padding:"0.2rem"},children:e})},TweetQuote:function({url:e,handle:t,name:r,job:n,children:o}){let i=`https://unavatar.io/x/${t}`,l=`https://x.com/${t}`;return(0,c.jsxs)("figure",{className:"tweetQuote_h8Rz",children:[(0,c.jsx)("blockquote",{children:(0,c.jsx)(f.A,{to:e,children:o})}),(0,c.jsx)("figcaption",{children:(0,c.jsx)(f.A,{to:l,rel:"nofollow",children:(0,c.jsxs)("div",{className:"avatar",children:[(0,c.jsx)("img",{alt:r,className:(0,m.A)("avatar__photo","avatarImg_b51M"),src:i}),(0,c.jsxs)("div",{className:(0,m.A)("avatar__intro"),children:[(0,c.jsx)("strong",{className:"avatar__name",children:(0,c.jsx)("cite",{children:r})}),(0,c.jsx)("small",{className:"avatar__subtitle",itemProp:"description",children:n})]})]})})})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function B({children:e}){return(0,c.jsx)(l.x,{components:C,children:e})}},88524:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(11750),c=r(36372);function i(e){let{permalink:t,title:r,subLabel:i,isNext:l}=e;return(0,n.jsxs)(c.A,{className:(0,o.A)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[i&&(0,n.jsx)("div",{className:"pagination-nav__sublabel",children:i}),(0,n.jsx)("div",{className:"pagination-nav__label",children:r})]})}},67393:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(11750),c=r(46733);function i(e){var t,r,{className:i}=e,l=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["className"]);return(0,n.jsx)("div",{className:(0,o.A)("tableOfContents_RLlU","thin-scrollbar",i),children:(0,n.jsx)(c.A,(t=function(e){for(var t=1;t{r.d(t,{A:()=>b});var n=r(62540),o=r(63696),c=r(25436);function i(e){for(var t=1;t(0,n.jsxs)("li",{children:[(0,n.jsx)(s.A,{to:`#${t.id}`,className:null!=o?o:void 0,dangerouslySetInnerHTML:{__html:t.value}}),(0,n.jsx)(e,{isChild:!0,toc:t.children,className:r,linkClassName:o})]},t.id))}):null});function b(e){var{toc:t,className:r="table-of-contents table-of-contents__left-border",linkClassName:s="table-of-contents__link",linkActiveClassName:b,minHeadingLevel:p,maxHeadingLevel:f}=e,O=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["toc","className","linkClassName","linkActiveClassName","minHeadingLevel","maxHeadingLevel"]);let y=(0,c.p)(),j=null!=p?p:y.tableOfContents.minHeadingLevel,d=null!=f?f:y.tableOfContents.maxHeadingLevel,m=function({toc:e,minHeadingLevel:t,maxHeadingLevel:r}){return(0,o.useMemo)(()=>(function e({toc:t,minHeadingLevel:r,maxHeadingLevel:n}){return t.flatMap(t=>{let o=e({toc:t.children,minHeadingLevel:r,maxHeadingLevel:n});return t.level>=r&&t.level<=n?[l(i({},t),{children:o})]:o})})({toc:function(e){let t=e.map(e=>l(i({},e),{parentIndex:-1,children:[]})),r=Array(7).fill(-1);t.forEach((e,t)=>{let n=r.slice(2,e.level);e.parentIndex=Math.max(...n),r[e.level]=t});let n=[];return t.forEach(e=>{let{parentIndex:r}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["parentIndex"]);r>=0?t[r].children.push(o):n.push(o)}),n}(e),minHeadingLevel:t,maxHeadingLevel:r}),[e,t,r])}({toc:t,minHeadingLevel:j,maxHeadingLevel:d});return!function(e){let t=(0,o.useRef)(void 0),r=function(){let e=(0,o.useRef)(0),{navbar:{hideOnScroll:t}}=(0,c.p)();return(0,o.useEffect)(()=>{e.current=t?0:document.querySelector(".navbar").clientHeight},[t]),e}();(0,o.useEffect)(()=>{if(!e)return()=>{};let{linkClassName:n,linkActiveClassName:o,minHeadingLevel:c,maxHeadingLevel:i}=e;function l(){let e=Array.from(document.getElementsByClassName(n)),l=function(e,{anchorTopOffset:t}){var r,n,o;let c=e.find(e=>a(e).top>=t);return c?(o=a(c)).top>0&&o.bottoml&&l.id===decodeURIComponent(e.href.substring(e.href.indexOf("#")+1)));e.forEach(e=>{e===s?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)})}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}},[e,r])}((0,o.useMemo)(()=>{if(s&&b)return{linkClassName:s,linkActiveClassName:b,minHeadingLevel:j,maxHeadingLevel:d}},[s,b,j,d])),(0,n.jsx)(u,function(e){for(var t=1;t{r.d(t,{i:()=>o});var n=r(99468);function o(e={}){let{i18n:{currentLocale:t}}=(0,n.A)(),r=function(){let{i18n:{currentLocale:e,localeConfigs:t}}=(0,n.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,function(e){for(var t=1;t{r.d(t,{W:()=>a});var n=r(63696),o=r(99468);let c=["zero","one","two","few","many","other"];function i(e){return c.filter(t=>e.includes(t))}let l={locale:"en",pluralForms:i(["one","other"]),select:e=>1===e?"one":"other"};function a(){let e=function(){let{i18n:{currentLocale:e}}=(0,o.A)();return(0,n.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:i(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[16295],{69473:(e,t,r)=>{r.d(t,{in:()=>s,OU:()=>k,Ki:()=>S,kJ:()=>d,x:()=>l,e7:()=>u,J_:()=>m,Gx:()=>x});var n=r(62540),o=r(63696),c=r(2550),i=r(15789);function l(){var e;let t=(0,i.A)(),r=null==t?void 0:null===(e=t.data)||void 0===e?void 0:e.blogMetadata;if(!r)throw Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return r}let a=o.createContext(null);function s({children:e,content:t,isBlogPostPage:r=!1}){let c=function({content:e,isBlogPostPage:t}){return(0,o.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,toc:e.toc,isBlogPostPage:t}),[e,t])}({content:t,isBlogPostPage:r});return(0,n.jsx)(a.Provider,{value:c,children:e})}function u(){let e=(0,o.useContext)(a);if(null===e)throw new c.dV("BlogPostProvider");return e}var b=r(27167),p=r(99468);function f(e){for(var t=1;tnew Date(e).toISOString();function y(e){let t=e.map(g);return{author:1===t.length?t[0]:t}}function j(e,t,r){return e?{image:function({imageUrl:e,caption:t}){return{"@type":"ImageObject","@id":e,url:e,contentUrl:e,caption:t}}({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${r}`})}:{}}function d(e){let{siteConfig:t}=(0,p.A)(),{withBaseUrl:r}=(0,b.hH)(),{metadata:{blogDescription:n,blogTitle:o,permalink:c}}=e,i=`${t.url}${c}`;return{"@context":"https://schema.org","@type":"Blog","@id":i,mainEntityOfPage:i,headline:o,description:n,blogPost:e.items.map(e=>(function(e,t,r){var n,o;let{assets:c,frontMatter:i,metadata:l}=e,{date:a,title:s,description:u,lastUpdatedAt:b}=l,p=null!==(n=c.image)&&void 0!==n?n:i.image,d=null!==(o=i.keywords)&&void 0!==o?o:[],m=`${t.url}${l.permalink}`,g=b?O(b):void 0;return f({"@type":"BlogPosting","@id":m,mainEntityOfPage:m,url:m,headline:s,name:s,description:u,datePublished:a},g?{dateModified:g}:{},y(l.authors),j(p,r,s),d?{keywords:d}:{})})(e.content,t,r))}}function m(){var e,t,r,n;let o=l(),{assets:c,metadata:i}=u(),{siteConfig:a}=(0,p.A)(),{withBaseUrl:s}=(0,b.hH)(),{date:d,title:m,description:g,frontMatter:h,lastUpdatedAt:v}=i,w=null!==(e=c.image)&&void 0!==e?e:h.image,P=null!==(t=h.keywords)&&void 0!==t?t:[],x=v?O(v):void 0,S=`${a.url}${i.permalink}`;return r=f({"@context":"https://schema.org","@type":"BlogPosting","@id":S,mainEntityOfPage:S,url:S,headline:m,name:m,description:g,datePublished:d},x?{dateModified:x}:{},y(i.authors),j(w,s,m),P?{keywords:P}:{}),n=n={isPartOf:{"@type":"Blog","@id":`${a.url}${o.blogBasePath}`,name:o.blogTitle}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}function g(e){return f({"@type":"Person"},e.name?{name:e.name}:{},e.title?{description:e.title}:{},e.url?{url:e.url}:{},e.email?{email:e.email}:{},e.imageURL?{image:e.imageURL}:{})}var h=r(49519),v=r(36372),w=r(66904),P=r(3107);function x(e){let{pathname:t}=(0,h.zy)();return(0,o.useMemo)(()=>e.filter(e=>!e.unlisted||!!(0,P.ys)(e.permalink,t)),[e,t])}function S(e){let t=Object.entries((0,w.$z)(e,e=>`${new Date(e.date).getFullYear()}`));return t.reverse(),t}function k({items:e,ulClassName:t,liClassName:r,linkClassName:o,linkActiveClassName:c}){return(0,n.jsx)("ul",{className:t,children:e.map(e=>(0,n.jsx)("li",{className:r,children:(0,n.jsx)(v.A,{isNavLink:!0,to:e.permalink,className:o,activeClassName:c,children:e.title})},e.permalink))})}},65108:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t{r.d(t,{A:()=>N});var n,o,c=r(62540),i=r(63696),l=r(11750),a=r(81912),s=r(12653);let u={admonition:"admonition_o5H7",admonitionHeading:"admonitionHeading_FzoX",admonitionIcon:"admonitionIcon_rXq6",admonitionContent:"admonitionContent_Knsx"};function b({type:e,className:t,children:r}){return(0,c.jsx)("div",{className:(0,l.A)(s.G.common.admonition,s.G.common.admonitionType(e),u.admonition,t),children:r})}function p({icon:e,title:t}){return(0,c.jsxs)("div",{className:u.admonitionHeading,children:[(0,c.jsx)("span",{className:u.admonitionIcon,children:e}),t]})}function f({children:e}){return e?(0,c.jsx)("div",{className:u.admonitionContent,children:e}):null}function O(e){let{type:t,icon:r,title:n,children:o,className:i}=e;return(0,c.jsxs)(b,{type:t,className:i,children:[n||r?(0,c.jsx)(p,{title:n,icon:r}):null,(0,c.jsx)(f,{children:o})]})}let y={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t(0,c.jsx)(j,k({title:"secondary"},e)),important:e=>(0,c.jsx)(v,k({title:"important"},e)),success:e=>(0,c.jsx)(m,k({title:"success"},e)),caution:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;ti.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),n=t.filter(e=>e!==r);return{mdxAdmonitionTitle:null==r?void 0:r.props.children,rest:n.length>0?(0,c.jsx)(c.Fragment,{children:n}):null}}(e.children),a=null!==(t=e.title)&&void 0!==t?t:o;return r=function(e){for(var t=1;t{r.d(t,{A:()=>v});var n=r(62540),o=r(63696),c=r(11750),i=r(99849),l=r(85975),a=r(81912),s=r(69473),u=r(25436),b=r(37425);function p({year:e,yearGroupHeadingClassName:t,children:r}){return(0,n.jsxs)("div",{role:"group",children:[(0,n.jsx)(b.A,{as:"h3",className:t,children:e}),r]})}let f=(0,o.memo)(function({items:e,yearGroupHeadingClassName:t,ListComponent:r}){if(!(0,u.p)().blog.sidebar.groupByYear)return(0,n.jsx)(r,{items:e});{let o=(0,s.Ki)(e);return(0,n.jsx)(n.Fragment,{children:o.map(([e,o])=>(0,n.jsx)(p,{year:e,yearGroupHeadingClassName:t,children:(0,n.jsx)(r,{items:o})},e))})}}),O=({items:e})=>(0,n.jsx)(s.OU,{items:e,ulClassName:(0,c.A)("sidebarItemList_OSkG","clean-list"),liClassName:"sidebarItem_WJ0y",linkClassName:"sidebarItemLink_Qrfg",linkActiveClassName:"sidebarItemLinkActive_nUeK"}),y=(0,o.memo)(function({sidebar:e}){let t=(0,s.Gx)(e.items);return(0,n.jsx)("aside",{className:"col col--3",children:(0,n.jsxs)("nav",{className:(0,c.A)("sidebar_P3nc","thin-scrollbar"),"aria-label":(0,a.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,n.jsx)("div",{className:(0,c.A)("sidebarItemTitle_VrjY","margin-bottom--md"),children:e.title}),(0,n.jsx)(f,{items:t,ListComponent:O,yearGroupHeadingClassName:"yearGroupHeading_lECJ"})]})})});var j=r(2454);let d=({items:e})=>(0,n.jsx)(s.OU,{items:e,ulClassName:"menu__list",liClassName:"menu__list-item",linkClassName:"menu__link",linkActiveClassName:"menu__link--active"});function m({sidebar:e}){let t=(0,s.Gx)(e.items);return(0,n.jsx)(f,{items:t,ListComponent:d,yearGroupHeadingClassName:"yearGroupHeading_Ruz9"})}let g=(0,o.memo)(function(e){return(0,n.jsx)(j.GX,{component:m,props:e})});function h({sidebar:e}){let t=(0,l.l)();return(null==e?void 0:e.items.length)?"mobile"===t?(0,n.jsx)(g,{sidebar:e}):(0,n.jsx)(y,{sidebar:e}):null}function v(e){var t,r;let{sidebar:o,toc:l,children:a}=e,s=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["sidebar","toc","children"]),u=o&&o.items.length>0;return(0,n.jsx)(i.A,(t=function(e){for(var t=1;t{r.d(t,{A:()=>o});var n=r(62540);function o({children:e,className:t}){return(0,n.jsx)("article",{className:t,children:e})}r(63696)},5939:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750),c=r(71106),i=r(69473),l=r(76699);function a({children:e,className:t}){let{isBlogPostPage:r}=(0,i.e7)();return(0,n.jsx)("div",{id:r?c.LU:void 0,className:(0,o.A)("markdown",t),children:(0,n.jsx)(l.A,{children:e})})}},21500:(e,t,r)=>{r.d(t,{A:()=>p});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(13111),l=r(60908),a=r(69473);function s({readingTime:e}){let t=function(){let{selectMessage:e}=(0,i.W)();return t=>{let r=Math.ceil(t);return e(r,(0,c.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:r}))}}();return(0,n.jsx)(n.Fragment,{children:t(e)})}function u({date:e,formattedDate:t}){return(0,n.jsx)("time",{dateTime:e,children:t})}function b(){return(0,n.jsx)(n.Fragment,{children:" \xb7 "})}function p({className:e}){let{metadata:t}=(0,a.e7)(),{date:r,readingTime:c}=t,i=(0,l.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,n.jsxs)("div",{className:(0,o.A)("container_x5Un","margin-vert--md",e),children:[(0,n.jsx)(u,{date:r,formattedDate:i.format(new Date(r))}),void 0!==c&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(b,{}),(0,n.jsx)(s,{readingTime:c})]})]})}},32886:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(11750),c=r(36372),i=r(69473);function l({className:e}){let{metadata:t,isBlogPostPage:r}=(0,i.e7)(),{permalink:l,title:a}=t;return(0,n.jsx)(r?"h1":"h2",{className:(0,o.A)("title_UBNu",e),children:r?a:(0,n.jsx)(c.A,{to:l,children:a})})}},79431:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(37554),c=r(69473);function i(){var e;let{assets:t,metadata:r}=(0,c.e7)(),{title:i,description:l,date:a,tags:s,authors:u,frontMatter:b}=r,{keywords:p}=b,f=null!==(e=t.image)&&void 0!==e?e:b.image;return(0,n.jsxs)(o.be,{title:i,description:l,keywords:p,image:f,children:[(0,n.jsx)("meta",{property:"og:type",content:"article"}),(0,n.jsx)("meta",{property:"article:published_time",content:a}),u.some(e=>e.url)&&(0,n.jsx)("meta",{property:"article:author",content:u.map(e=>e.url).filter(Boolean).join(",")}),s.length>0&&(0,n.jsx)("meta",{property:"article:tag",content:s.map(e=>e.label).join(",")})]})}},23572:(e,t,r)=>{r.d(t,{A:()=>f});var n=r(62540),o=r(63696),c=r(11750),i=r(52711),l=r(10709),a=r(27720);let s={details:"details_Nokh",isBrowser:"isBrowser_QrB5",collapsibleContent:"collapsibleContent_EoA1"};function u(e){return!!e&&("SUMMARY"===e.tagName||u(e.parentElement))}function b(e){var t,r,{summary:b,children:p}=e,f=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["summary","children"]);(0,i.A)().collectAnchor(f.id);let O=(0,l.A)(),y=(0,o.useRef)(null),{collapsed:j,setCollapsed:d}=(0,a.u)({initialState:!f.open}),[m,g]=(0,o.useState)(f.open),h=o.isValidElement(b)?b:(0,n.jsx)("summary",{children:null!=b?b:"Details"});return(0,n.jsxs)("details",(t=function(e){for(var t=1;t{u(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();let t=e.target;u(t)&&function e(t,r){return!!t&&(t===r||e(t.parentElement,r))}(t,y.current)&&(e.preventDefault(),j?(d(!1),g(!0)):d(!0))},children:[h,(0,n.jsx)(a.N,{lazy:!1,collapsed:j,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{d(e),g(!e)},children:(0,n.jsx)("div",{className:s.collapsibleContent,children:p})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function p(){return(p=Object.assign||function(e){for(var t=1;t{r.d(t,{A:()=>B});var n,o,c=r(62540),i=r(63696),l=r(43023),a=r(93394),s=r(55887);function u(e){return(0,c.jsx)("code",function(e){for(var t=1;t"string"==typeof e&&!e.includes("\n"))?(0,c.jsx)(u,b({},e)):(0,c.jsx)(s.A,b({},e))}var f=r(36372),O=r(23572);function y(e){var t,r;let n=i.Children.toArray(e.children),o=n.find(e=>i.isValidElement(e)&&"summary"===e.type),l=(0,c.jsx)(c.Fragment,{children:n.filter(e=>e!==o)});return(0,c.jsx)(O.A,(t=function(e){for(var t=1;t{var r;let n=t.current;null===(r=e.bindFunctions)||void 0===r||r.call(e,n)},[e]),(0,c.jsx)("div",{ref:t,className:"docusaurus-mermaid-container container_RUsj",dangerouslySetInnerHTML:{__html:e.svg}})}function N({value:e}){let t=function({text:e,config:t}){let[r,n]=(0,i.useState)(null),o=(0,i.useRef)(`mermaid-svg-${Math.round(1e7*Math.random())}`).current,c=function(){let{colorMode:e}=(0,S.G)(),t=(0,x.p)().mermaid,r=t.theme[e],{options:n}=t;return(0,i.useMemo)(()=>{var e,t;return e=function(e){for(var t=1;t{D({id:o,text:e,config:l}).then(n).catch(e=>{n(()=>{throw e})})},[o,e,l]),r}({text:e});return null===t?null:(0,c.jsx)(E,{renderResult:t})}function _(e){for(var t=1;t(0,c.jsx)(d,_({as:"h1"},e)),h2:e=>(0,c.jsx)(d,_({as:"h2"},e)),h3:e=>(0,c.jsx)(d,_({as:"h3"},e)),h4:e=>(0,c.jsx)(d,_({as:"h4"},e)),h5:e=>(0,c.jsx)(d,_({as:"h5"},e)),h6:e=>(0,c.jsx)(d,_({as:"h6"},e)),admonition:v.A,mermaid:function(e){return(0,c.jsx)(w.A,{fallback:e=>(0,c.jsx)(P.MN,A({},e)),children:(0,c.jsx)(N,A({},e))})}}),o=o={Code:p,Highlight:function({children:e,color:t}){return(0,c.jsx)("span",{style:{backgroundColor:t,borderRadius:"2px",color:"#fff",padding:"0.2rem"},children:e})},TweetQuote:function({url:e,handle:t,name:r,job:n,children:o}){let i=`https://unavatar.io/x/${t}`,l=`https://x.com/${t}`;return(0,c.jsxs)("figure",{className:"tweetQuote_h8Rz",children:[(0,c.jsx)("blockquote",{children:(0,c.jsx)(f.A,{to:e,children:o})}),(0,c.jsx)("figcaption",{children:(0,c.jsx)(f.A,{to:l,rel:"nofollow",children:(0,c.jsxs)("div",{className:"avatar",children:[(0,c.jsx)("img",{alt:r,className:(0,m.A)("avatar__photo","avatarImg_b51M"),src:i}),(0,c.jsxs)("div",{className:(0,m.A)("avatar__intro"),children:[(0,c.jsx)("strong",{className:"avatar__name",children:(0,c.jsx)("cite",{children:r})}),(0,c.jsx)("small",{className:"avatar__subtitle",itemProp:"description",children:n})]})]})})})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function B({children:e}){return(0,c.jsx)(l.x,{components:C,children:e})}},88524:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(11750),c=r(36372);function i(e){let{permalink:t,title:r,subLabel:i,isNext:l}=e;return(0,n.jsxs)(c.A,{className:(0,o.A)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[i&&(0,n.jsx)("div",{className:"pagination-nav__sublabel",children:i}),(0,n.jsx)("div",{className:"pagination-nav__label",children:r})]})}},67393:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(11750),c=r(46733);function i(e){var t,r,{className:i}=e,l=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["className"]);return(0,n.jsx)("div",{className:(0,o.A)("tableOfContents_RLlU","thin-scrollbar",i),children:(0,n.jsx)(c.A,(t=function(e){for(var t=1;t{r.d(t,{A:()=>b});var n=r(62540),o=r(63696),c=r(25436);function i(e){for(var t=1;t(0,n.jsxs)("li",{children:[(0,n.jsx)(s.A,{to:`#${t.id}`,className:null!=o?o:void 0,dangerouslySetInnerHTML:{__html:t.value}}),(0,n.jsx)(e,{isChild:!0,toc:t.children,className:r,linkClassName:o})]},t.id))}):null});function b(e){var{toc:t,className:r="table-of-contents table-of-contents__left-border",linkClassName:s="table-of-contents__link",linkActiveClassName:b,minHeadingLevel:p,maxHeadingLevel:f}=e,O=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["toc","className","linkClassName","linkActiveClassName","minHeadingLevel","maxHeadingLevel"]);let y=(0,c.p)(),j=null!=p?p:y.tableOfContents.minHeadingLevel,d=null!=f?f:y.tableOfContents.maxHeadingLevel,m=function({toc:e,minHeadingLevel:t,maxHeadingLevel:r}){return(0,o.useMemo)(()=>(function e({toc:t,minHeadingLevel:r,maxHeadingLevel:n}){return t.flatMap(t=>{let o=e({toc:t.children,minHeadingLevel:r,maxHeadingLevel:n});return t.level>=r&&t.level<=n?[l(i({},t),{children:o})]:o})})({toc:function(e){let t=e.map(e=>l(i({},e),{parentIndex:-1,children:[]})),r=Array(7).fill(-1);t.forEach((e,t)=>{let n=r.slice(2,e.level);e.parentIndex=Math.max(...n),r[e.level]=t});let n=[];return t.forEach(e=>{let{parentIndex:r}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["parentIndex"]);r>=0?t[r].children.push(o):n.push(o)}),n}(e),minHeadingLevel:t,maxHeadingLevel:r}),[e,t,r])}({toc:t,minHeadingLevel:j,maxHeadingLevel:d});return!function(e){let t=(0,o.useRef)(void 0),r=function(){let e=(0,o.useRef)(0),{navbar:{hideOnScroll:t}}=(0,c.p)();return(0,o.useEffect)(()=>{e.current=t?0:document.querySelector(".navbar").clientHeight},[t]),e}();(0,o.useEffect)(()=>{if(!e)return()=>{};let{linkClassName:n,linkActiveClassName:o,minHeadingLevel:c,maxHeadingLevel:i}=e;function l(){let e=Array.from(document.getElementsByClassName(n)),l=function(e,{anchorTopOffset:t}){var r,n,o;let c=e.find(e=>a(e).top>=t);return c?(o=a(c)).top>0&&o.bottoml&&l.id===decodeURIComponent(e.href.substring(e.href.indexOf("#")+1)));e.forEach(e=>{e===s?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)})}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}},[e,r])}((0,o.useMemo)(()=>{if(s&&b)return{linkClassName:s,linkActiveClassName:b,minHeadingLevel:j,maxHeadingLevel:d}},[s,b,j,d])),(0,n.jsx)(u,function(e){for(var t=1;t{r.d(t,{i:()=>o});var n=r(99468);function o(e={}){let{i18n:{currentLocale:t}}=(0,n.A)(),r=function(){let{i18n:{currentLocale:e,localeConfigs:t}}=(0,n.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,function(e){for(var t=1;t{r.d(t,{W:()=>a});var n=r(63696),o=r(99468);let c=["zero","one","two","few","many","other"];function i(e){return c.filter(t=>e.includes(t))}let l={locale:"en",pluralForms:i(["one","other"]),select:e=>1===e?"one":"other"};function a(){let e=function(){let{i18n:{currentLocale:e}}=(0,o.A)();return(0,n.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:i(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". Docusaurus will fallback to the default (English) implementation. Error: ${t.message} `),l}},[e])}();return{selectMessage:(t,r)=>(function(e,t,r){let n=e.split("|");if(1===n.length)return n[0];n.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${n.length}: ${e}`);let o=r.select(t);return n[Math.min(r.pluralForms.indexOf(o),n.length-1)]})(r,t,e)}}},40576:(e,t,r)=>{r.d(t,{A:()=>c});var n=r(62540);r(63696);var o=r(10709);function c({children:e,fallback:t}){return(0,o.A)()?(0,n.jsx)(n.Fragment,{children:null==e?void 0:e()}):null!=t?t:null}},15558:(e,t,r)=>{r.d(t,{A:()=>w});var n=r(62540),o=r(63696),c=r(69473),i=r(32886),l=r(21500),a=r(11750),s=r(36372);let u={image:"image_oRbT"};function b({author:e,className:t}){let{name:r,url:o,imageURL:c}=e;return(0,n.jsx)("div",{className:(0,a.A)("avatar margin-bottom--sm",t),children:c&&(0,n.jsx)(s.A,{className:"avatar__photo-link avatar__photo",href:o,children:(0,n.jsx)("img",{className:u.image,src:c,alt:r,onError:e=>{e.currentTarget.src='data:image/svg+xml,'}})})})}function p(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["expanded"]);return t?(0,n.jsx)("svg",f(p({viewBox:"0 0 1024 1024",width:"20",height:"20",fill:"currentColor"},r),{children:(0,n.jsx)("path",{d:"M783.915092 1009.031953l-271.898251-277.615587-271.930737 277.550617a49.214558 49.214558 0 0 1-70.752018 0 51.780862 51.780862 0 0 1 0-72.246322l307.274261-313.706262a49.279528 49.279528 0 0 1 70.784503 0l307.33923 313.706262a51.975771 51.975771 0 0 1 0 72.311292 49.409467 49.409467 0 0 1-70.816988 0z m-307.306745-608.05155L169.269117 87.274141A51.975771 51.975771 0 0 1 169.269117 14.96285a49.409467 49.409467 0 0 1 70.816987 0l271.930737 277.615586L783.850122 14.96285a49.409467 49.409467 0 0 1 70.816988 0 51.975771 51.975771 0 0 1 0 72.311291l-307.33923 313.706262a49.376982 49.376982 0 0 1-70.719533 0z"})})):(0,n.jsx)("svg",f(p({viewBox:"0 0 1024 1024",width:"20",height:"20",fill:"currentColor"},r),{children:(0,n.jsx)("path",{d:"M476.612887 1009.12034L169.240699 695.380437a51.981345 51.981345 0 0 1 0-72.319045 49.382277 49.382277 0 0 1 70.824582 0l271.959897 277.645356 271.862433-277.645356a49.382277 49.382277 0 0 1 70.824582 0 51.981345 51.981345 0 0 1 0 72.319045l-307.307212 313.739903a49.447254 49.447254 0 0 1-70.792094 0z m307.274724-608.116755L511.99269 123.455693l-271.959897 277.645357a49.382277 49.382277 0 0 1-70.824582 0 51.981345 51.981345 0 0 1 0-72.319045L476.580399 15.042102a49.382277 49.382277 0 0 1 70.727117 0l307.372188 313.739903a51.981345 51.981345 0 0 1 0 72.319045 49.414766 49.414766 0 0 1-70.824582 0z"})}))}let y={imageOnlyAuthorRow:"imageOnlyAuthorRow_WiD6",imageOnlyAuthorCol:"imageOnlyAuthorCol_uiac",toggleButton:"toggleButton_WvRg"};function j({className:e}){let{metadata:{authors:t},assets:r}=(0,c.e7)(),[i,l]=(0,o.useState)(!1);if(0===t.length)return null;let s=t.slice(0,i?t.length:10);return(0,n.jsxs)("div",{className:(0,a.A)("margin-top--md margin-bottom--sm",y.imageOnlyAuthorRow,e),children:[s.map((e,t)=>{var o,c,i;return(0,n.jsx)("div",{className:y.imageOnlyAuthorCol,children:(0,n.jsx)(b,{author:(c=function(e){for(var t=1;t10&&(0,n.jsx)("button",{className:(0,a.A)("clean-btn",y.toggleButton),type:"button",onClick:()=>l(e=>!e),"aria-label":"expand",children:(0,n.jsx)(O,{expanded:i})})]})}let d={changelogItemTitleList:"changelogItemTitleList_sueG"};function m(){let{isBlogPostPage:e}=(0,c.e7)();return(0,n.jsx)(i.A,{className:e?void 0:d.changelogItemTitleList})}function g(){return(0,n.jsxs)("header",{children:[(0,n.jsx)(m,{}),(0,n.jsx)(l.A,{}),(0,n.jsx)(j,{})]})}var h=r(57813),v=r(5939);function w({children:e}){return(0,n.jsxs)(h.A,{className:"changelogItemContainer_jeDt",children:[(0,n.jsx)(g,{}),(0,n.jsx)(v.A,{children:e})]})}},81362:(e,t,r)=>{r.r(t),r.d(t,{default:()=>h});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(36372),l=r(37554),a=r(12653),s=r(69473),u=r(79431),b=r(94389),p=r(15558),f=r(88524);function O(e){for(var t=1;t0?(0,n.jsx)(d.A,{toc:o,minHeadingLevel:u,maxHeadingLevel:f}):void 0,children:[(0,n.jsx)(m,{}),(0,n.jsx)(p.A,{children:t}),(c||i)&&(0,n.jsx)(j,{nextItem:c,prevItem:i})]})}function h(e){let t=e.content;return(0,n.jsx)(s.in,{content:e.content,isBlogPostPage:!0,children:(0,n.jsxs)(l.e3,{className:(0,o.A)(a.G.wrapper.blogPages,a.G.page.blogPostPage),children:[(0,n.jsx)(u.A,{}),(0,n.jsx)(g,{sidebar:e.sidebar,children:(0,n.jsx)(t,{})})]})})}},55887:(e,t,r)=>{r.d(t,{A:()=>el});var n,o,c,i={};r.r(i),r.d(i,{ButtonExample:()=>N});var l=r(62540),a=r(63696),s=r(11750),u=r(10709),b=r(55152),p=r(81912),f=r(99468),O=r(40576),y=r(1495),j=r(66659),d=r(25436);function m(){let{prism:e}=(0,d.p)(),{colorMode:t}=(0,j.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var g=r(43758);function h(e){for(var t=1;t(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(g.A,{fallback:e=>(0,l.jsx)(y.MN,h({},e)),children:(0,l.jsx)(b.pA,{})}),(0,l.jsx)(b.p1,{})]})})}function x(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(p.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,l.jsx)("div",{className:"playgroundPreview_mApW",children:(0,l.jsx)(P,{})})]})}function S(){let e=(0,u.A)();return(0,l.jsx)(b.w,{className:"playgroundEditor_TySg"},String(e))}function k(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(p.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,l.jsx)(S,{})]})}let D=e=>`${e};`;function A(e){var t,r,n,o,{children:c,transformCode:i}=e,a=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:s}}=(0,f.A)(),{liveCodeBlock:{playgroundPosition:u}}=s,p=m(),O=null!==(o=null===(n=a.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,l.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,l.jsx)(b.Q,(t=h({code:null==c?void 0:c.replace(/\n$/,""),noInline:O,transformCode:null!=i?i:D,theme:p},a),r=r={children:"top"===u?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(x,{}),(0,l.jsx)(k,{})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(k,{}),(0,l.jsx)(x,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function E(e){for(var t=1;t[\"'])(?.*?)\\1"),I=RegExp("\\{(?<range>[\\d,-]+)\\}"),M={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},R=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},M),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),H=Object.keys(M);function $(e,t){let r=e.map(e=>{let{start:r,end:n}=R[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function z(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let c=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(m());return(0,l.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:c,className:(0,s.A)(o.className,"codeBlockContainer_jDV4",C.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let F={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function G({children:e,className:t}){return(0,l.jsx)(z,{as:"pre",tabIndex:0,className:(0,s.A)(F.codeBlockStandalone,"thin-scrollbar",t),children:(0,l.jsx)("code",{className:F.codeBlockLines,children:e})})}var U=r(2550);let W={attributes:!0,characterData:!0,childList:!0,subtree:!0};var V=r(27663);let q={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function Q(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function J({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var c,i;1===e.length&&"\n"===e[0].content&&(e[0].content="");let a=n({line:e,className:(0,s.A)(t,r&&q.codeLine)}),u=e.map((e,t)=>(0,l.jsx)("span",Q({},o({token:e})),t));return(0,l.jsxs)("span",(c=Q({},a),i=i={children:[r?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:q.codeLineNumber}),(0,l.jsx)("span",{className:q.codeLineContent,children:u})]}):u,(0,l.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(i)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(i)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(i,e))}),c))}var X=r(936);function Y(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function K(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let Z={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,a.useState)(!1),o=(0,a.useRef)(void 0),c=(0,a.useCallback)(()=>{(0,X.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,a.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,l.jsx)("button",{type:"button","aria-label":r?(0,p.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,s.A)("clean-btn",t,Z.copyButton,r&&Z.copyButtonCopied),onClick:c,children:(0,l.jsxs)("span",{className:Z.copyButtonIcons,"aria-hidden":"true",children:[(0,l.jsx)(Y,{className:Z.copyButtonIcon}),(0,l.jsx)(K,{className:Z.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,p.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,l.jsx)("button",{type:"button",onClick:t,className:(0,s.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,l.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:c}){var i,u,b,p;let{prism:{defaultLanguage:f,magicComments:O}}=(0,d.p)(),y=null==(u=null!==(i=null!=c?c:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==i?i:f)?void 0:u.toLowerCase(),j=m(),g=function(){let[e,t]=(0,a.useState)(!1),[r,n]=(0,a.useState)(!1),o=(0,a.useRef)(null),c=(0,a.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),i=(0,a.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,a.useState)(),o=(0,a.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,a.useEffect)(()=>{o()},[o]),function(e,t,r=W){let n=(0,U._q)(t),o=(0,U.Be)(r);(0,a.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,i),(0,a.useEffect)(()=>{i()},[e,i]),(0,a.useEffect)(()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)}),[i]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:c}}(),h=(null!==(p=null==r?void 0:null===(b=r.match(T))||void 0===b?void 0:b.groups.title)&&void 0!==p?p:"")||n,{lineClassNames:v,code:w}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:c}=t;if(c&&I.test(c)){let e=c.match(I).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${c}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(L()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return $(["js","jsBlock"],t);case"jsx":case"tsx":return $(["js","jsBlock","jsx"],t);case"html":return $(["js","jsBlock","html"],t);case"python":case"py":case"bash":return $(["bash"],t);case"markdown":case"md":return $(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return $(["tex"],t);case"lua":case"haskell":case"sql":return $(["lua"],t);case"wasm":return $(["wasm"],t);case"vb":case"vba":case"visual-basic":return $(["vb","rem"],t);case"vbnet":return $(["vbnet","rem"],t);case"batch":return $(["rem"],t);case"basic":return $(["rem","f90"],t);case"fsharp":return $(["js","ml"],t);case"ocaml":case"sml":return $(["ml"],t);case"fortran":return $(["f90"],t);case"cobol":return $(["cobol"],t);default:return $(H,t)}}(n,o),l=r.split("\n"),a=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),s=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),b=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<l.length;){let t=l[e].match(i);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);s[r]?a[s[r]].range+=`${e},`:u[r]?a[u[r]].start=e:b[r]&&(a[b[r]].range+=`${a[b[r]].start}-${e-1},`),l.splice(e,1)}r=l.join("\n");let p={};return Object.entries(a).forEach(([e,{range:t}])=>{L()(t).forEach(t=>{var r;null!==(r=p[t])&&void 0!==r||(p[t]=[]),p[t].push(e)})}),{lineClassNames:p,code:r}}(e,{metastring:r,language:y,magicComments:O}),P=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,l.jsxs)(z,{as:"div",className:(0,s.A)(t,y&&!t.includes(`language-${y}`)&&`language-${y}`),children:[h&&(0,l.jsx)("div",{className:F.codeBlockTitle,children:h}),(0,l.jsxs)("div",{className:F.codeBlockContent,children:[(0,l.jsx)(V.f4,{theme:j,code:w,language:null!=y?y:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,l.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,s.A)(e,F.codeBlock,"thin-scrollbar"),style:t,children:(0,l.jsx)("code",{className:(0,s.A)(F.codeBlockLines,P&&F.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,l.jsx)(J,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:P},t))})})}),(0,l.jsxs)("div",{className:F.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,l.jsx)(en,{className:F.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,l.jsx)(ee,{className:F.codeButton,code:w})]})]})]})}function ec(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let ei=(c=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let c=(0,u.A)(),i=a.Children.toArray(n).some(e=>(0,a.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,s="string"==typeof i?eo:G;return(0,l.jsx)(s,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(c))},function(e){return e.live?(0,l.jsx)(A,ec({scope:_},e)):(0,l.jsx)(c,ec({},e))});function el(e){return(0,l.jsx)(ei,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}}}]); \ No newline at end of file diff --git a/assets/js/028951d7.1dc145d6.js b/assets/js/028951d7.e0b46159.js similarity index 97% rename from assets/js/028951d7.1dc145d6.js rename to assets/js/028951d7.e0b46159.js index e671542f16..1566f6a9e7 100644 --- a/assets/js/028951d7.1dc145d6.js +++ b/assets/js/028951d7.e0b46159.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5185],{94634:(e,t,r)=>{r.d(t,{A:()=>s});let s=r.p+"assets/images/social-card-e1b6e0c51be29d4ab2d4c966d220410c.png"},18764:(e,t,r)=>{r.d(t,{A:()=>o});var s=r(62540);r(63696);var n=r(70361);function o({url:e}){return(0,s.jsx)("div",{style:{padding:10},children:(0,s.jsx)(n.A,{url:e,style:{minWidth:"min(100%,45vw)",width:800,maxWidth:"100%",overflow:"hidden"},bodyStyle:{padding:0},children:(0,s.jsx)("iframe",{src:e,title:e,style:{display:"block",width:"100%",height:300}})})})}},70361:(e,t,r)=>{r.d(t,{A:()=>i});var s=r(62540);r(63696);var n=r(11750);let o="dot_giz1",a="bar_rrRL";function i({children:e,minHeight:t,url:r="http://localhost:3000",style:i,bodyStyle:c}){var l,d;return(0,s.jsxs)("div",{className:"browserWindow_my1Q",style:(l=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},s=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),s.forEach(function(t){var s;s=r[t],t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s})}return e}({},i),d=d={minHeight:t},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(d)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);r.push.apply(r,s)}return r})(Object(d)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(d,e))}),l),children:[(0,s.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,s.jsxs)("div",{className:"buttons_uHc7",children:[(0,s.jsx)("span",{className:o,style:{background:"#f25f58"}}),(0,s.jsx)("span",{className:o,style:{background:"#fbbe3c"}}),(0,s.jsx)("span",{className:o,style:{background:"#58cb42"}})]}),(0,s.jsx)("div",{className:(0,n.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:r}),(0,s.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:a}),(0,s.jsx)("span",{className:a}),(0,s.jsx)("span",{className:a})]})})]}),(0,s.jsx)("div",{className:"browserWindowBody_Idgs",style:c,children:e})]})}},43730:(e,t,r)=>{r.d(t,{A:()=>o});var s=r(62540),n=r(63696);function o({children:e="Boom!",message:t="Boom!\nSomething bad happened, but you can try again!",cause:r}){let[o,a]=(0,n.useState)(!1);if(o)throw Error(t,{cause:r?Error(r):void 0});return(0,s.jsx)("button",{className:"button button--danger",type:"button",onClick:()=>a(!0),children:e})}},32600:(e,t,r)=>{r.d(t,{A:()=>s});let s=r.p+"assets/images/broken-anchor-4191e5dd94aef9e8c5e3524880670f0f.jpg"},65223:(e,t,r)=>{r.d(t,{A:()=>s});let s=r.p+"assets/images/social-card-e1b6e0c51be29d4ab2d4c966d220410c.png"},37034:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var s=r(13980),n=r(62540),o=r(43023);r(70361),r(18764),r(43730);let a={title:"Docusaurus 3.1",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2024-01-05T00:00:00.000Z")},i=void 0,c={image:r(94634).A,authorsImageUrls:[void 0]},l=[{value:"Highlights",id:"highlights",level:2},{value:"Broken anchors checker",id:"broken-anchors-checker",level:3},{value:"<code>parseFrontMatter</code> hook",id:"parsefrontmatter-hook",level:3},{value:"Other changes",id:"other-changes",level:2}];function d(e){let t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["We are happy to announce ",(0,n.jsx)(t.strong,{children:"Docusaurus 3.1"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["The upgrade should be easy: as explained in our ",(0,n.jsx)(t.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,n.jsx)(t.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Docusaurus blog post social card",src:r(65223).A+"",width:"1200",height:"600"})}),"\n","\n",(0,n.jsx)(t.h2,{id:"highlights",children:"Highlights"}),"\n",(0,n.jsx)(t.h3,{id:"broken-anchors-checker",children:"Broken anchors checker"}),"\n",(0,n.jsxs)(t.p,{children:["In ",(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/9528",children:"#9528"}),", we improved the built-in broken links checker to also detect broken anchors."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Docusaurus blog post social card",src:r(32600).A+"",width:"1920",height:"896"})}),"\n",(0,n.jsxs)(t.admonition,{title:"Make it fail fast",type:"tip",children:[(0,n.jsxs)(t.p,{children:["The new ",(0,n.jsx)(t.a,{href:"/docs/api/docusaurus-config#onBrokenAnchors",children:(0,n.jsx)(t.code,{children:"onBrokenAnchors"})})," option has value ",(0,n.jsx)(t.code,{children:"warn"})," by default, for retro-compatibility reasons."]}),(0,n.jsxs)(t.p,{children:["We recommend to turn it to ",(0,n.jsx)(t.code,{children:"throw"})," and fail your CI builds instead of deploying broken anchors to productions."]})]}),"\n",(0,n.jsxs)(t.admonition,{type:"note",children:[(0,n.jsxs)(t.p,{children:["For users and plugin authors implementing custom ",(0,n.jsx)(t.code,{children:"<Heading>"})," and ",(0,n.jsx)(t.code,{children:"<Link>"})," components, we provide a new ",(0,n.jsx)(t.a,{href:"/docs/docusaurus-core#useBrokenLinks",children:(0,n.jsx)(t.code,{children:"useBrokenLinks"})})," React hook API."]}),(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Most Docusaurus users don't need to care about it"}),", built-in components (",(0,n.jsx)(t.code,{children:"docusaurus/Link"})," and ",(0,n.jsx)(t.code,{children:"@theme/Heading"}),") already use it internally."]})]}),"\n",(0,n.jsxs)(t.h3,{id:"parsefrontmatter-hook",children:[(0,n.jsx)(t.code,{children:"parseFrontMatter"})," hook"]}),"\n",(0,n.jsxs)(t.p,{children:["In ",(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/9624",children:"#9624"}),", we added a new ",(0,n.jsxs)(t.a,{href:"/docs/api/docusaurus-config#markdown",children:[(0,n.jsx)(t.code,{children:"siteConfig.markdown.parseFrontMatter"})," function hook"]}),"."]}),"\n",(0,n.jsx)(t.p,{children:"This makes it possible to implement convenient front matter transformations, shortcuts, or to integrate with external systems using front matter that Docusaurus plugins do not support."}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n markdown: {\n // highlight-start\n parseFrontMatter: async (params) => {\n // Reuse the default parser\n const result = await params.defaultParseFrontMatter(params);\n\n // Process front matter description placeholders\n result.frontMatter.description =\n result.frontMatter.description?.replaceAll('{{MY_VAR}}', 'MY_VALUE');\n\n // Create your own front matter shortcut\n if (result.frontMatter.i_do_not_want_docs_pagination) {\n result.frontMatter.pagination_prev = null;\n result.frontMatter.pagination_next = null;\n }\n\n // Rename an unsupported front matter coming from another system\n if (result.frontMatter.cms_seo_summary) {\n result.frontMatter.description = result.frontMatter.cms_seo_summary;\n delete result.frontMatter.cms_seo_summary;\n }\n\n return result;\n },\n // highlight-end\n },\n};\n"})}),"\n",(0,n.jsxs)(t.p,{children:["Read the ",(0,n.jsx)(t.a,{href:"/docs/markdown-features#front-matter",children:"front matter guide"})," and the ",(0,n.jsxs)(t.a,{href:"/docs/api/docusaurus-config#markdown",children:[(0,n.jsx)(t.code,{children:"parseFrontMatter"})," API ref"]})," for details."]}),"\n",(0,n.jsx)(t.h2,{id:"other-changes",children:"Other changes"}),"\n",(0,n.jsx)(t.p,{children:"Other notable changes include:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/9674",children:"#9674"}),": add ",(0,n.jsx)(t.code,{children:"siteConfig.markdown.remarkRehypeOptions"})," to pass options to ",(0,n.jsx)(t.code,{children:"remark-rehype"}),", letting you customize things such as MDX footnote label"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/9671",children:"#9671"}),": add code block MagicComments support for (Visual) Basic/Batch/Fortran/COBOL/ML"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/9610",children:"#9610"}),": enable CLI port configuration via ",(0,n.jsx)(t.code,{children:"PORT"})," environment variable"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/9477",children:"#9477"}),": complete Brazilian Portuguese (pt-BR) translations"]}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["Check the ",(0,n.jsx)(t.strong,{children:(0,n.jsx)(t.a,{href:"/changelog/3.1.0",children:"3.1.0 changelog entry"})})," for an exhaustive list of changes."]})]})}function u(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},43023:(e,t,r)=>{r.d(t,{R:()=>a,x:()=>i});var s=r(63696);let n={},o=s.createContext(n);function a(e){let t=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),s.createElement(o.Provider,{value:t},e.children)}},13980:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/3.1","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.1/index.mdx","source":"@site/blog/releases/3.1/index.mdx","title":"Docusaurus 3.1","description":"We are happy to announce Docusaurus 3.1.","date":"2024-01-05T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":1.665,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.1","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-01-05T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 3.2","permalink":"/blog/releases/3.2"},"nextItem":{"title":"Announcing Docusaurus 3.0","permalink":"/blog/releases/3.0"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5185],{94634:(e,t,r)=>{r.d(t,{A:()=>s});let s=r.p+"assets/images/social-card-e1b6e0c51be29d4ab2d4c966d220410c.png"},18764:(e,t,r)=>{r.d(t,{A:()=>o});var s=r(62540);r(63696);var n=r(70361);function o({url:e}){return(0,s.jsx)("div",{style:{padding:10},children:(0,s.jsx)(n.A,{url:e,style:{minWidth:"min(100%,45vw)",width:800,maxWidth:"100%",overflow:"hidden"},bodyStyle:{padding:0},children:(0,s.jsx)("iframe",{src:e,title:e,style:{display:"block",width:"100%",height:300}})})})}},70361:(e,t,r)=>{r.d(t,{A:()=>i});var s=r(62540);r(63696);var n=r(11750);let o="dot_giz1",a="bar_rrRL";function i({children:e,minHeight:t,url:r="http://localhost:3000",style:i,bodyStyle:c}){var l,d;return(0,s.jsxs)("div",{className:"browserWindow_my1Q",style:(l=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},s=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),s.forEach(function(t){var s;s=r[t],t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s})}return e}({},i),d=d={minHeight:t},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(d)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);r.push.apply(r,s)}return r})(Object(d)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(d,e))}),l),children:[(0,s.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,s.jsxs)("div",{className:"buttons_uHc7",children:[(0,s.jsx)("span",{className:o,style:{background:"#f25f58"}}),(0,s.jsx)("span",{className:o,style:{background:"#fbbe3c"}}),(0,s.jsx)("span",{className:o,style:{background:"#58cb42"}})]}),(0,s.jsx)("div",{className:(0,n.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:r}),(0,s.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:a}),(0,s.jsx)("span",{className:a}),(0,s.jsx)("span",{className:a})]})})]}),(0,s.jsx)("div",{className:"browserWindowBody_Idgs",style:c,children:e})]})}},43730:(e,t,r)=>{r.d(t,{A:()=>o});var s=r(62540),n=r(63696);function o({children:e="Boom!",message:t="Boom!\nSomething bad happened, but you can try again!",cause:r}){let[o,a]=(0,n.useState)(!1);if(o)throw Error(t,{cause:r?Error(r):void 0});return(0,s.jsx)("button",{className:"button button--danger",type:"button",onClick:()=>a(!0),children:e})}},32600:(e,t,r)=>{r.d(t,{A:()=>s});let s=r.p+"assets/images/broken-anchor-4191e5dd94aef9e8c5e3524880670f0f.jpg"},65223:(e,t,r)=>{r.d(t,{A:()=>s});let s=r.p+"assets/images/social-card-e1b6e0c51be29d4ab2d4c966d220410c.png"},37034:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var s=r(13980),n=r(62540),o=r(43023);r(70361),r(18764),r(43730);let a={title:"Docusaurus 3.1",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2024-01-05T00:00:00.000Z")},i=void 0,c={image:r(94634).A,authorsImageUrls:[void 0]},l=[{value:"Highlights",id:"highlights",level:2},{value:"Broken anchors checker",id:"broken-anchors-checker",level:3},{value:"<code>parseFrontMatter</code> hook",id:"parsefrontmatter-hook",level:3},{value:"Other changes",id:"other-changes",level:2}];function d(e){let t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["We are happy to announce ",(0,n.jsx)(t.strong,{children:"Docusaurus 3.1"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["The upgrade should be easy: as explained in our ",(0,n.jsx)(t.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,n.jsx)(t.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Docusaurus blog post social card",src:r(65223).A+"",width:"1200",height:"600"})}),"\n","\n",(0,n.jsx)(t.h2,{id:"highlights",children:"Highlights"}),"\n",(0,n.jsx)(t.h3,{id:"broken-anchors-checker",children:"Broken anchors checker"}),"\n",(0,n.jsxs)(t.p,{children:["In ",(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/9528",children:"#9528"}),", we improved the built-in broken links checker to also detect broken anchors."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Docusaurus blog post social card",src:r(32600).A+"",width:"1920",height:"896"})}),"\n",(0,n.jsxs)(t.admonition,{title:"Make it fail fast",type:"tip",children:[(0,n.jsxs)(t.p,{children:["The new ",(0,n.jsx)(t.a,{href:"/docs/api/docusaurus-config#onBrokenAnchors",children:(0,n.jsx)(t.code,{children:"onBrokenAnchors"})})," option has value ",(0,n.jsx)(t.code,{children:"warn"})," by default, for retro-compatibility reasons."]}),(0,n.jsxs)(t.p,{children:["We recommend to turn it to ",(0,n.jsx)(t.code,{children:"throw"})," and fail your CI builds instead of deploying broken anchors to productions."]})]}),"\n",(0,n.jsxs)(t.admonition,{type:"note",children:[(0,n.jsxs)(t.p,{children:["For users and plugin authors implementing custom ",(0,n.jsx)(t.code,{children:"<Heading>"})," and ",(0,n.jsx)(t.code,{children:"<Link>"})," components, we provide a new ",(0,n.jsx)(t.a,{href:"/docs/docusaurus-core#useBrokenLinks",children:(0,n.jsx)(t.code,{children:"useBrokenLinks"})})," React hook API."]}),(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Most Docusaurus users don't need to care about it"}),", built-in components (",(0,n.jsx)(t.code,{children:"docusaurus/Link"})," and ",(0,n.jsx)(t.code,{children:"@theme/Heading"}),") already use it internally."]})]}),"\n",(0,n.jsxs)(t.h3,{id:"parsefrontmatter-hook",children:[(0,n.jsx)(t.code,{children:"parseFrontMatter"})," hook"]}),"\n",(0,n.jsxs)(t.p,{children:["In ",(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/9624",children:"#9624"}),", we added a new ",(0,n.jsxs)(t.a,{href:"/docs/api/docusaurus-config#markdown",children:[(0,n.jsx)(t.code,{children:"siteConfig.markdown.parseFrontMatter"})," function hook"]}),"."]}),"\n",(0,n.jsx)(t.p,{children:"This makes it possible to implement convenient front matter transformations, shortcuts, or to integrate with external systems using front matter that Docusaurus plugins do not support."}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n markdown: {\n // highlight-start\n parseFrontMatter: async (params) => {\n // Reuse the default parser\n const result = await params.defaultParseFrontMatter(params);\n\n // Process front matter description placeholders\n result.frontMatter.description =\n result.frontMatter.description?.replaceAll('{{MY_VAR}}', 'MY_VALUE');\n\n // Create your own front matter shortcut\n if (result.frontMatter.i_do_not_want_docs_pagination) {\n result.frontMatter.pagination_prev = null;\n result.frontMatter.pagination_next = null;\n }\n\n // Rename an unsupported front matter coming from another system\n if (result.frontMatter.cms_seo_summary) {\n result.frontMatter.description = result.frontMatter.cms_seo_summary;\n delete result.frontMatter.cms_seo_summary;\n }\n\n return result;\n },\n // highlight-end\n },\n};\n"})}),"\n",(0,n.jsxs)(t.p,{children:["Read the ",(0,n.jsx)(t.a,{href:"/docs/markdown-features#front-matter",children:"front matter guide"})," and the ",(0,n.jsxs)(t.a,{href:"/docs/api/docusaurus-config#markdown",children:[(0,n.jsx)(t.code,{children:"parseFrontMatter"})," API ref"]})," for details."]}),"\n",(0,n.jsx)(t.h2,{id:"other-changes",children:"Other changes"}),"\n",(0,n.jsx)(t.p,{children:"Other notable changes include:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/9674",children:"#9674"}),": add ",(0,n.jsx)(t.code,{children:"siteConfig.markdown.remarkRehypeOptions"})," to pass options to ",(0,n.jsx)(t.code,{children:"remark-rehype"}),", letting you customize things such as MDX footnote label"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/9671",children:"#9671"}),": add code block MagicComments support for (Visual) Basic/Batch/Fortran/COBOL/ML"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/9610",children:"#9610"}),": enable CLI port configuration via ",(0,n.jsx)(t.code,{children:"PORT"})," environment variable"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/9477",children:"#9477"}),": complete Brazilian Portuguese (pt-BR) translations"]}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["Check the ",(0,n.jsx)(t.strong,{children:(0,n.jsx)(t.a,{href:"/changelog/3.1.0",children:"3.1.0 changelog entry"})})," for an exhaustive list of changes."]})]})}function u(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},43023:(e,t,r)=>{r.d(t,{R:()=>a,x:()=>i});var s=r(63696);let n={},o=s.createContext(n);function a(e){let t=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),s.createElement(o.Provider,{value:t},e.children)}},13980:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/3.1","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.1/index.mdx","source":"@site/blog/releases/3.1/index.mdx","title":"Docusaurus 3.1","description":"We are happy to announce Docusaurus 3.1.","date":"2024-01-05T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":1.665,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.1","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-01-05T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 3.2","permalink":"/blog/releases/3.2"},"nextItem":{"title":"Announcing Docusaurus 3.0","permalink":"/blog/releases/3.0"}}')}}]); \ No newline at end of file diff --git a/assets/js/03a06760.62718fc5.js b/assets/js/03a06760.3f402264.js similarity index 80% rename from assets/js/03a06760.62718fc5.js rename to assets/js/03a06760.3f402264.js index a7df1ef41c..380b6ae621 100644 --- a/assets/js/03a06760.62718fc5.js +++ b/assets/js/03a06760.3f402264.js @@ -1,4 +1,4 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[13948],{15995:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(11750);function l({children:e,hidden:t,className:r}){return(0,n.jsx)("div",{role:"tabpanel",className:(0,o.A)("tabItem_pnkT",r),hidden:t,children:e})}},27446:(e,t,r)=>{r.d(t,{A:()=>O});var n=r(62540),o=r(63696),l=r(11750),i=r(7846),s=r(49519),c=r(96439),a=r(19739),u=r(66904),p=r(79244);function d(e){var t,r;return null!==(r=null===(t=o.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,o.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==r?r:[]}function b({value:e,tabValues:t}){return t.some(t=>t.value===e)}var g=r(10709);function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function h(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function y({className:e,block:t,selectedValue:r,selectValue:o,tabValues:s}){let c=[],{blockElementScrollPositionUntilNextRender:a}=(0,i.a_)(),u=e=>{let t=e.currentTarget,n=s[c.indexOf(t)].value;n!==r&&(a(t),o(n))},p=e=>{var t,r;let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let r=c.indexOf(e.currentTarget)+1;n=null!==(t=c[r])&&void 0!==t?t:c[0];break}case"ArrowLeft":{let t=c.indexOf(e.currentTarget)-1;n=null!==(r=c[t])&&void 0!==r?r:c[c.length-1]}}null==n||n.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":t},e),children:s.map(({value:e,label:t,attributes:o})=>(0,n.jsx)("li",h(f({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,ref:e=>c.push(e),onKeyDown:p,onClick:u},o),{className:(0,l.A)("tabs__item","tabItem_AQgk",null==o?void 0:o.className,{"tabs__item--active":r===e}),children:null!=t?t:e}),e))})}function j({lazy:e,children:t,selectedValue:r}){let i=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=i.find(e=>e.props.value===r);return e?(0,o.cloneElement)(e,{className:(0,l.A)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:i.map((e,t)=>(0,o.cloneElement)(e,{key:t,hidden:e.props.value!==r}))})}function m(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:n}=e,l=function(e){let{values:t,children:r}=e;return(0,o.useMemo)(()=>{let e=null!=t?t:d(r).map(({props:{value:e,label:t,attributes:r,default:n}})=>({value:e,label:t,attributes:r,default:n}));return!function(e){let t=(0,u.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,r])}(e),[i,g]=(0,o.useState)(()=>(function({defaultValue:e,tabValues:t}){var r;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!b({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let n=null!==(r=t.find(e=>e.default))&&void 0!==r?r:t[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:t,tabValues:l})),[f,h]=function({queryString:e=!1,groupId:t}){let r=(0,s.W6)(),n=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,a.aZ)(n),(0,o.useCallback)(e=>{var t,o;if(!n)return;let l=new URLSearchParams(r.location.search);l.set(n,e),r.replace((t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r.location),o=o={search:l.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}),t))},[n,r])]}({queryString:r,groupId:n}),[y,j]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[r,n]=(0,p.Dv)(t);return[r,(0,o.useCallback)(e=>{t&&n.set(e)},[t,n])]}({groupId:n}),m=(()=>{let e=null!=f?f:y;return b({value:e,tabValues:l})?e:null})();return(0,c.A)(()=>{m&&g(m)},[m]),{selectedValue:i,selectValue:(0,o.useCallback)(e=>{if(!b({value:e,tabValues:l}))throw Error(`Can't select invalid tab value=${e}`);g(e),h(e),j(e)},[h,j,l]),tabValues:l}}(e);return(0,n.jsxs)("div",{className:(0,l.A)("tabs-container","tabList_Qoir"),children:[(0,n.jsx)(y,f({},t,e)),(0,n.jsx)(j,f({},t,e))]})}function O(e){let t=(0,g.A)();return(0,n.jsx)(m,h(f({},e),{children:d(e.children)}),String(t))}},40576:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(10709);function l({children:e,fallback:t}){return(0,o.A)()?(0,n.jsx)(n.Fragment,{children:null==e?void 0:e()}):null!=t?t:null}},59273:(e,t,r)=>{r.d(t,{A:()=>c});var n=r(62540),o=r(63696),l=r(52711),i=r(49519);let s=o.forwardRef(function({name:e,children:t},r){let s=function(e){let t=e;for(;(0,o.isValidElement)(t);)[t]=o.Children.toArray(t.props.children);if("string"!=typeof t)throw Error(`Could not extract APITable row name from JSX tree: +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[13948],{15995:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(11750);function l({children:e,hidden:t,className:r}){return(0,n.jsx)("div",{role:"tabpanel",className:(0,o.A)("tabItem_pnkT",r),hidden:t,children:e})}},27446:(e,t,r)=>{r.d(t,{A:()=>O});var n=r(62540),o=r(63696),l=r(11750),i=r(7846),s=r(49519),c=r(96439),a=r(19739),u=r(66904),p=r(79244);function d(e){var t,r;return null!==(r=null===(t=o.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,o.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==r?r:[]}function b({value:e,tabValues:t}){return t.some(t=>t.value===e)}var f=r(10709);function g(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function h(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function y({className:e,block:t,selectedValue:r,selectValue:o,tabValues:s}){let c=[],{blockElementScrollPositionUntilNextRender:a}=(0,i.a_)(),u=e=>{let t=e.currentTarget,n=s[c.indexOf(t)].value;n!==r&&(a(t),o(n))},p=e=>{var t,r;let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let r=c.indexOf(e.currentTarget)+1;n=null!==(t=c[r])&&void 0!==t?t:c[0];break}case"ArrowLeft":{let t=c.indexOf(e.currentTarget)-1;n=null!==(r=c[t])&&void 0!==r?r:c[c.length-1]}}null==n||n.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":t},e),children:s.map(({value:e,label:t,attributes:o})=>(0,n.jsx)("li",h(g({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,ref:e=>c.push(e),onKeyDown:p,onClick:u},o),{className:(0,l.A)("tabs__item","tabItem_AQgk",null==o?void 0:o.className,{"tabs__item--active":r===e}),children:null!=t?t:e}),e))})}function j({lazy:e,children:t,selectedValue:r}){let i=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=i.find(e=>e.props.value===r);return e?(0,o.cloneElement)(e,{className:(0,l.A)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:i.map((e,t)=>(0,o.cloneElement)(e,{key:t,hidden:e.props.value!==r}))})}function m(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:n}=e,l=function(e){let{values:t,children:r}=e;return(0,o.useMemo)(()=>{let e=null!=t?t:d(r).map(({props:{value:e,label:t,attributes:r,default:n}})=>({value:e,label:t,attributes:r,default:n}));return!function(e){let t=(0,u.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,r])}(e),[i,f]=(0,o.useState)(()=>(function({defaultValue:e,tabValues:t}){var r;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!b({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let n=null!==(r=t.find(e=>e.default))&&void 0!==r?r:t[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:t,tabValues:l})),[g,h]=function({queryString:e=!1,groupId:t}){let r=(0,s.W6)(),n=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,a.aZ)(n),(0,o.useCallback)(e=>{var t,o;if(!n)return;let l=new URLSearchParams(r.location.search);l.set(n,e),r.replace((t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r.location),o=o={search:l.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}),t))},[n,r])]}({queryString:r,groupId:n}),[y,j]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[r,n]=(0,p.Dv)(t);return[r,(0,o.useCallback)(e=>{t&&n.set(e)},[t,n])]}({groupId:n}),m=(()=>{let e=null!=g?g:y;return b({value:e,tabValues:l})?e:null})();return(0,c.A)(()=>{m&&f(m)},[m]),{selectedValue:i,selectValue:(0,o.useCallback)(e=>{if(!b({value:e,tabValues:l}))throw Error(`Can't select invalid tab value=${e}`);f(e),h(e),j(e)},[h,j,l]),tabValues:l}}(e);return(0,n.jsxs)("div",{className:(0,l.A)("tabs-container","tabList_Qoir"),children:[(0,n.jsx)(y,g({},t,e)),(0,n.jsx)(j,g({},t,e))]})}function O(e){let t=(0,f.A)();return(0,n.jsx)(m,h(g({},e),{children:d(e.children)}),String(t))}},40576:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(10709);function l({children:e,fallback:t}){return(0,o.A)()?(0,n.jsx)(n.Fragment,{children:null==e?void 0:e()}):null!=t?t:null}},59273:(e,t,r)=>{r.d(t,{A:()=>c});var n=r(62540),o=r(63696),l=r(52711),i=r(49519);let s=o.forwardRef(function({name:e,children:t},r){let s=function(e){let t=e;for(;(0,o.isValidElement)(t);)[t]=o.Children.toArray(t.props.children);if("string"!=typeof t)throw Error(`Could not extract APITable row name from JSX tree: ${JSON.stringify(e,null,2)}`);return t}(t),c=e?`${e}-${s}`:s,a=`#${c}`,u=(0,i.W6)();return(0,l.A)().collectAnchor(c),(0,n.jsx)("tr",{id:c,tabIndex:0,ref:u.location.hash===a?r:void 0,onClick:e=>{"A"!==e.target.tagName.toUpperCase()&&u.push(a)},onKeyDown:e=>{"Enter"===e.key&&u.push(a)},children:t.props.children})});function c({children:e,name:t}){if("table"!==e.type)throw Error("Bad usage of APITable component.\nIt is probably that your Markdown table is malformed.\nMake sure to double-check you have the appropriate number of columns for each table row.");let[r,l]=o.Children.toArray(e.props.children),i=(0,o.useRef)(null);(0,o.useEffect)(()=>{var e;null===(e=i.current)||void 0===e||e.focus()},[i]);let c=o.Children.map(l.props.children,e=>(0,n.jsx)(s,{name:t,ref:i,children:e}));return(0,n.jsxs)("table",{className:"apiTable_e8hp",children:[r,(0,n.jsx)("tbody",{children:c})]})}},59433:(e,t,r)=>{r.d(t,{A:()=>p});var n=r(62540);r(63696);var o=r(36372),l=r(69615),i=r(81912),s=r(27446),c=r(15995),a=r(55887);let u=void 0;function p({code:e,pluginName:t,presetOptionName:r}){let p=(0,l.ir)(u).path;return(0,n.jsxs)(s.A,{groupId:"api-config-ex",children:[(0,n.jsxs)(c.A,{value:"preset",label:(0,i.T)({message:"Preset options"}),children:[(0,n.jsx)("p",{children:(0,n.jsx)(i.A,{id:"apiDocs.configTabs.presetOptions.description",values:{presetLink:(0,n.jsx)(o.A,{to:`${p}/using-plugins#docusauruspreset-classic`,children:(0,n.jsx)(i.A,{children:"preset options"})})},children:"If you use a preset, configure this plugin through the {presetLink}:"})}),(0,n.jsx)(a.A,{language:"js",title:"docusaurus.config.js",children:`module.exports = { presets: [ [ @@ -19,4 +19,4 @@ ${JSON.stringify(e,null,2)}`);return t}(t),c=e?`${e}-${s}`:s,a=`#${c}`,u=(0,i.W6 // highlight-end ], ], -};`})]})]})}},55887:(e,t,r)=>{r.d(t,{A:()=>es});var n,o,l,i={};r.r(i),r.d(i,{ButtonExample:()=>B});var s=r(62540),c=r(63696),a=r(11750),u=r(10709),p=r(55152),d=r(81912),b=r(99468),g=r(40576),f=r(1495),h=r(66659),y=r(25436);function j(){let{prism:e}=(0,y.p)(),{colorMode:t}=(0,h.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var m=r(43758);function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,s.jsx)("div",{className:(0,a.A)("playgroundHeader_Tvsk"),children:e})}function x(){return(0,s.jsx)("div",{children:"Loading..."})}function w(){return(0,s.jsx)(g.A,{fallback:(0,s.jsx)(x,{}),children:()=>(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(m.A,{fallback:e=>(0,s.jsx)(f.MN,O({},e)),children:(0,s.jsx)(p.pA,{})}),(0,s.jsx)(p.p1,{})]})})}function P(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(v,{children:(0,s.jsx)(d.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,s.jsx)("div",{className:"playgroundPreview_mApW",children:(0,s.jsx)(w,{})})]})}function k(){let e=(0,u.A)();return(0,s.jsx)(p.w,{className:"playgroundEditor_TySg"},String(e))}function A(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(v,{children:(0,s.jsx)(d.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,s.jsx)(k,{})]})}let S=e=>`${e};`;function E(e){var t,r,n,o,{children:l,transformCode:i}=e,c=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:a}}=(0,b.A)(),{liveCodeBlock:{playgroundPosition:u}}=a,d=j(),g=null!==(o=null===(n=c.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,s.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,s.jsx)(p.Q,(t=O({code:null==l?void 0:l.replace(/\n$/,""),noInline:g,transformCode:null!=i?i:S,theme:d},c),r=r={children:"top"===u?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(P,{}),(0,s.jsx)(A,{})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(A,{}),(0,s.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function B(e){var t,r;return(0,s.jsx)("button",(t=D({type:"button"},e),r=r={style:D({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let N=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:c},c,i);var C=r(12653),I=r(19934),T=r.n(I);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),_=RegExp("\\{(?<range>[\\d,-]+)\\}"),$={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},R=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},$),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),M=Object.keys($);function W(e,t){let r=e.map(e=>{let{start:r,end:n}=R[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function q(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let l=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(j());return(0,s.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:l,className:(0,a.A)(o.className,"codeBlockContainer_jDV4",C.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let V={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function G({children:e,className:t}){return(0,s.jsx)(q,{as:"pre",tabIndex:0,className:(0,a.A)(V.codeBlockStandalone,"thin-scrollbar",t),children:(0,s.jsx)("code",{className:V.codeBlockLines,children:e})})}var H=r(2550);let F={attributes:!0,characterData:!0,childList:!0,subtree:!0};var U=r(27663);let z={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function J(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function Q({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var l,i;1===e.length&&"\n"===e[0].content&&(e[0].content="");let c=n({line:e,className:(0,a.A)(t,r&&z.codeLine)}),u=e.map((e,t)=>(0,s.jsx)("span",J({},o({token:e})),t));return(0,s.jsxs)("span",(l=J({},c),i=i={children:[r?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:z.codeLineNumber}),(0,s.jsx)("span",{className:z.codeLineContent,children:u})]}):u,(0,s.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(i)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(i)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(i,e))}),l))}var Y=r(936);function X(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,s.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function Z(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,s.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,c.useState)(!1),o=(0,c.useRef)(void 0),l=(0,c.useCallback)(()=>{(0,Y.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,c.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,s.jsx)("button",{type:"button","aria-label":r?(0,d.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,d.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,d.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:l,children:(0,s.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,s.jsx)(X,{className:K.copyButtonIcon}),(0,s.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,s.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,d.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,s.jsx)("button",{type:"button",onClick:t,className:(0,a.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,s.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:l}){var i,u,p,d;let{prism:{defaultLanguage:b,magicComments:g}}=(0,y.p)(),f=null==(u=null!==(i=null!=l?l:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==i?i:b)?void 0:u.toLowerCase(),h=j(),m=function(){let[e,t]=(0,c.useState)(!1),[r,n]=(0,c.useState)(!1),o=(0,c.useRef)(null),l=(0,c.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),i=(0,c.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,c.useState)(),o=(0,c.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,c.useEffect)(()=>{o()},[o]),function(e,t,r=F){let n=(0,H._q)(t),o=(0,H.Be)(r);(0,c.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,i),(0,c.useEffect)(()=>{i()},[e,i]),(0,c.useEffect)(()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)}),[i]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:l}}(),O=(null!==(d=null==r?void 0:null===(p=r.match(L))||void 0===p?void 0:p.groups.title)&&void 0!==d?d:"")||n,{lineClassNames:v,code:x}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:l}=t;if(l&&_.test(l)){let e=l.match(_).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${l}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(T()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return W(["js","jsBlock"],t);case"jsx":case"tsx":return W(["js","jsBlock","jsx"],t);case"html":return W(["js","jsBlock","html"],t);case"python":case"py":case"bash":return W(["bash"],t);case"markdown":case"md":return W(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return W(["tex"],t);case"lua":case"haskell":case"sql":return W(["lua"],t);case"wasm":return W(["wasm"],t);case"vb":case"vba":case"visual-basic":return W(["vb","rem"],t);case"vbnet":return W(["vbnet","rem"],t);case"batch":return W(["rem"],t);case"basic":return W(["rem","f90"],t);case"fsharp":return W(["js","ml"],t);case"ocaml":case"sml":return W(["ml"],t);case"fortran":return W(["f90"],t);case"cobol":return W(["cobol"],t);default:return W(M,t)}}(n,o),s=r.split("\n"),c=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),a=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),p=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<s.length;){let t=s[e].match(i);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);a[r]?c[a[r]].range+=`${e},`:u[r]?c[u[r]].start=e:p[r]&&(c[p[r]].range+=`${c[p[r]].start}-${e-1},`),s.splice(e,1)}r=s.join("\n");let d={};return Object.entries(c).forEach(([e,{range:t}])=>{T()(t).forEach(t=>{var r;null!==(r=d[t])&&void 0!==r||(d[t]=[]),d[t].push(e)})}),{lineClassNames:d,code:r}}(e,{metastring:r,language:f,magicComments:g}),w=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,s.jsxs)(q,{as:"div",className:(0,a.A)(t,f&&!t.includes(`language-${f}`)&&`language-${f}`),children:[O&&(0,s.jsx)("div",{className:V.codeBlockTitle,children:O}),(0,s.jsxs)("div",{className:V.codeBlockContent,children:[(0,s.jsx)(U.f4,{theme:h,code:x,language:null!=f?f:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,s.jsx)("pre",{tabIndex:0,ref:m.codeBlockRef,className:(0,a.A)(e,V.codeBlock,"thin-scrollbar"),style:t,children:(0,s.jsx)("code",{className:(0,a.A)(V.codeBlockLines,w&&V.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,s.jsx)(Q,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:w},t))})})}),(0,s.jsxs)("div",{className:V.buttonGroup,children:[(m.isEnabled||m.isCodeScrollable)&&(0,s.jsx)(en,{className:V.codeButton,onClick:()=>m.toggle(),isEnabled:m.isEnabled}),(0,s.jsx)(ee,{className:V.codeButton,code:x})]})]})]})}function el(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let ei=(l=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let l=(0,u.A)(),i=c.Children.toArray(n).some(e=>(0,c.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,a="string"==typeof i?eo:G;return(0,s.jsx)(a,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(l))},function(e){return e.live?(0,s.jsx)(E,el({scope:N},e)):(0,s.jsx)(l,el({},e))});function es(e){return(0,s.jsx)(ei,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}},90530:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>p,default:()=>f,frontMatter:()=>u,metadata:()=>n,toc:()=>b});let n=JSON.parse('{"id":"api/plugins/plugin-google-analytics","title":"\u{1F4E6} plugin-google-analytics","description":"The default Google Analytics plugin. It is a JavaScript library for measuring how users interact with your website in the production build. If you are using Google Analytics 4 you might need to consider using plugin-google-gtag instead.","source":"@site/docs/api/plugins/plugin-google-analytics.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-google-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-google-analytics","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-google-analytics.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":6,"frontMatter":{"sidebar_position":6,"slug":"/api/plugins/@docusaurus/plugin-google-analytics"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-debug","permalink":"/docs/api/plugins/@docusaurus/plugin-debug"},"next":{"title":"\u{1F4E6} plugin-google-gtag","permalink":"/docs/api/plugins/@docusaurus/plugin-google-gtag"}}');var o=r(62540),l=r(43023),i=r(27446),s=r(15995),c=r(59273),a=r(59433);let u={sidebar_position:6,slug:"/api/plugins/@docusaurus/plugin-google-analytics"},p="\u{1F4E6} plugin-google-analytics",d={},b=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Example configuration",id:"ex-config",level:3}];function g(e){let t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"-plugin-google-analytics",children:"\u{1F4E6} plugin-google-analytics"})}),"\n","\n",(0,o.jsxs)(t.p,{children:["The default ",(0,o.jsx)(t.a,{href:"https://developers.google.com/analytics/devguides/collection/analyticsjs/",children:"Google Analytics"})," plugin. It is a JavaScript library for measuring how users interact with your website ",(0,o.jsx)(t.strong,{children:"in the production build"}),". If you are using Google Analytics 4 you might need to consider using ",(0,o.jsx)(t.a,{href:"/docs/api/plugins/@docusaurus/plugin-google-gtag",children:"plugin-google-gtag"})," instead."]}),"\n",(0,o.jsxs)(t.admonition,{title:"Deprecated",type:"danger",children:[(0,o.jsxs)(t.p,{children:["This plugin is ",(0,o.jsx)(t.strong,{children:"deprecated"}),", and will become useless on July 1, 2023."]}),(0,o.jsxs)(t.p,{children:["Google is ",(0,o.jsx)(t.a,{href:"https://blog.google/products/marketingplatform/analytics/prepare-for-future-with-google-analytics-4/",children:"moving away from Universal Analytics"}),"."]}),(0,o.jsxs)(t.p,{children:["If you are still using this plugin with a ",(0,o.jsx)(t.code,{children:"UA-*"})," tracking id, you should create a Google Analytics 4 account as soon as possible, and use ",(0,o.jsx)(t.a,{href:"/docs/api/plugins/@docusaurus/plugin-google-gtag",children:(0,o.jsx)(t.code,{children:"@docusaurus/plugin-google-gtag"})})," instead of this plugin. More details ",(0,o.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/7221",children:"here"}),"."]})]}),"\n",(0,o.jsx)(t.admonition,{title:"production only",type:"warning",children:(0,o.jsxs)(t.p,{children:["This plugin is always inactive in development and ",(0,o.jsx)(t.strong,{children:"only active in production"})," to avoid polluting the analytics statistics."]})}),"\n",(0,o.jsx)(t.h2,{id:"installation",children:"Installation"}),"\n",(0,o.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,o.jsx)(s.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install --save @docusaurus/plugin-google-analytics\n"})})}),(0,o.jsx)(s.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn add @docusaurus/plugin-google-analytics\n"})})}),(0,o.jsx)(s.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm add @docusaurus/plugin-google-analytics\n"})})})]}),"\n",(0,o.jsxs)(t.admonition,{type:"tip",children:[(0,o.jsxs)(t.p,{children:["If you use the preset ",(0,o.jsx)(t.code,{children:"@docusaurus/preset-classic"}),", you don't need to install this plugin as a dependency."]}),(0,o.jsxs)(t.p,{children:["You can configure this plugin through the ",(0,o.jsx)(t.a,{href:"/docs/using-plugins#docusauruspreset-classic",children:"preset options"}),"."]})]}),"\n",(0,o.jsx)(t.h2,{id:"configuration",children:"Configuration"}),"\n",(0,o.jsx)(t.p,{children:"Accepted fields:"}),"\n",(0,o.jsx)(c.A,{children:(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Type"}),(0,o.jsx)(t.th,{children:"Default"}),(0,o.jsx)(t.th,{children:"Description"})]})}),(0,o.jsxs)(t.tbody,{children:[(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"trackingID"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"string"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.strong,{children:"Required"})}),(0,o.jsx)(t.td,{children:"The tracking ID of your analytics service."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"anonymizeIP"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"boolean"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"false"})}),(0,o.jsx)(t.td,{children:"Whether the IP should be anonymized when sending requests."})]})]})]})}),"\n",(0,o.jsx)(t.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,o.jsx)(t.p,{children:"You can configure this plugin through preset options or plugin options."}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsx)(t.p,{children:"Most Docusaurus users configure this plugin through the preset options."})}),"\n","\n",(0,o.jsx)(a.A,{pluginName:"@docusaurus/plugin-google-analytics",presetOptionName:"googleAnalytics",code:"{\n trackingID: 'UA-141789564-1',\n anonymizeIP: true,\n}"})]})}function f(e={}){let{wrapper:t}={...(0,l.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(g,{...e})}):g(e)}}}]); \ No newline at end of file +};`})]})]})}},55887:(e,t,r)=>{r.d(t,{A:()=>es});var n,o,l,i={};r.r(i),r.d(i,{ButtonExample:()=>B});var s=r(62540),c=r(63696),a=r(11750),u=r(10709),p=r(55152),d=r(81912),b=r(99468),f=r(40576),g=r(1495),h=r(66659),y=r(25436);function j(){let{prism:e}=(0,y.p)(),{colorMode:t}=(0,h.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var m=r(43758);function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,s.jsx)("div",{className:(0,a.A)("playgroundHeader_Tvsk"),children:e})}function x(){return(0,s.jsx)("div",{children:"Loading..."})}function w(){return(0,s.jsx)(f.A,{fallback:(0,s.jsx)(x,{}),children:()=>(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(m.A,{fallback:e=>(0,s.jsx)(g.MN,O({},e)),children:(0,s.jsx)(p.pA,{})}),(0,s.jsx)(p.p1,{})]})})}function P(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(v,{children:(0,s.jsx)(d.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,s.jsx)("div",{className:"playgroundPreview_mApW",children:(0,s.jsx)(w,{})})]})}function k(){let e=(0,u.A)();return(0,s.jsx)(p.w,{className:"playgroundEditor_TySg"},String(e))}function S(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(v,{children:(0,s.jsx)(d.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,s.jsx)(k,{})]})}let A=e=>`${e};`;function E(e){var t,r,n,o,{children:l,transformCode:i}=e,c=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:a}}=(0,b.A)(),{liveCodeBlock:{playgroundPosition:u}}=a,d=j(),f=null!==(o=null===(n=c.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,s.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,s.jsx)(p.Q,(t=O({code:null==l?void 0:l.replace(/\n$/,""),noInline:f,transformCode:null!=i?i:A,theme:d},c),r=r={children:"top"===u?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(P,{}),(0,s.jsx)(S,{})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(S,{}),(0,s.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function B(e){var t,r;return(0,s.jsx)("button",(t=D({type:"button"},e),r=r={style:D({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let N=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:c},c,i);var C=r(12653),I=r(19934),T=r.n(I);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),_=RegExp("\\{(?<range>[\\d,-]+)\\}"),$={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},R=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},$),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),M=Object.keys($);function W(e,t){let r=e.map(e=>{let{start:r,end:n}=R[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function q(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let l=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(j());return(0,s.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:l,className:(0,a.A)(o.className,"codeBlockContainer_jDV4",C.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let V={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function G({children:e,className:t}){return(0,s.jsx)(q,{as:"pre",tabIndex:0,className:(0,a.A)(V.codeBlockStandalone,"thin-scrollbar",t),children:(0,s.jsx)("code",{className:V.codeBlockLines,children:e})})}var H=r(2550);let F={attributes:!0,characterData:!0,childList:!0,subtree:!0};var U=r(27663);let z={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function J(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function Q({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var l,i;1===e.length&&"\n"===e[0].content&&(e[0].content="");let c=n({line:e,className:(0,a.A)(t,r&&z.codeLine)}),u=e.map((e,t)=>(0,s.jsx)("span",J({},o({token:e})),t));return(0,s.jsxs)("span",(l=J({},c),i=i={children:[r?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:z.codeLineNumber}),(0,s.jsx)("span",{className:z.codeLineContent,children:u})]}):u,(0,s.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(i)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(i)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(i,e))}),l))}var Y=r(936);function X(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,s.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function Z(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,s.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,c.useState)(!1),o=(0,c.useRef)(void 0),l=(0,c.useCallback)(()=>{(0,Y.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,c.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,s.jsx)("button",{type:"button","aria-label":r?(0,d.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,d.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,d.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:l,children:(0,s.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,s.jsx)(X,{className:K.copyButtonIcon}),(0,s.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,s.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,d.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,s.jsx)("button",{type:"button",onClick:t,className:(0,a.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,s.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:l}){var i,u,p,d;let{prism:{defaultLanguage:b,magicComments:f}}=(0,y.p)(),g=null==(u=null!==(i=null!=l?l:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==i?i:b)?void 0:u.toLowerCase(),h=j(),m=function(){let[e,t]=(0,c.useState)(!1),[r,n]=(0,c.useState)(!1),o=(0,c.useRef)(null),l=(0,c.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),i=(0,c.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,c.useState)(),o=(0,c.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,c.useEffect)(()=>{o()},[o]),function(e,t,r=F){let n=(0,H._q)(t),o=(0,H.Be)(r);(0,c.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,i),(0,c.useEffect)(()=>{i()},[e,i]),(0,c.useEffect)(()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)}),[i]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:l}}(),O=(null!==(d=null==r?void 0:null===(p=r.match(L))||void 0===p?void 0:p.groups.title)&&void 0!==d?d:"")||n,{lineClassNames:v,code:x}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:l}=t;if(l&&_.test(l)){let e=l.match(_).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${l}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(T()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return W(["js","jsBlock"],t);case"jsx":case"tsx":return W(["js","jsBlock","jsx"],t);case"html":return W(["js","jsBlock","html"],t);case"python":case"py":case"bash":return W(["bash"],t);case"markdown":case"md":return W(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return W(["tex"],t);case"lua":case"haskell":case"sql":return W(["lua"],t);case"wasm":return W(["wasm"],t);case"vb":case"vba":case"visual-basic":return W(["vb","rem"],t);case"vbnet":return W(["vbnet","rem"],t);case"batch":return W(["rem"],t);case"basic":return W(["rem","f90"],t);case"fsharp":return W(["js","ml"],t);case"ocaml":case"sml":return W(["ml"],t);case"fortran":return W(["f90"],t);case"cobol":return W(["cobol"],t);default:return W(M,t)}}(n,o),s=r.split("\n"),c=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),a=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),p=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<s.length;){let t=s[e].match(i);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);a[r]?c[a[r]].range+=`${e},`:u[r]?c[u[r]].start=e:p[r]&&(c[p[r]].range+=`${c[p[r]].start}-${e-1},`),s.splice(e,1)}r=s.join("\n");let d={};return Object.entries(c).forEach(([e,{range:t}])=>{T()(t).forEach(t=>{var r;null!==(r=d[t])&&void 0!==r||(d[t]=[]),d[t].push(e)})}),{lineClassNames:d,code:r}}(e,{metastring:r,language:g,magicComments:f}),w=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,s.jsxs)(q,{as:"div",className:(0,a.A)(t,g&&!t.includes(`language-${g}`)&&`language-${g}`),children:[O&&(0,s.jsx)("div",{className:V.codeBlockTitle,children:O}),(0,s.jsxs)("div",{className:V.codeBlockContent,children:[(0,s.jsx)(U.f4,{theme:h,code:x,language:null!=g?g:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,s.jsx)("pre",{tabIndex:0,ref:m.codeBlockRef,className:(0,a.A)(e,V.codeBlock,"thin-scrollbar"),style:t,children:(0,s.jsx)("code",{className:(0,a.A)(V.codeBlockLines,w&&V.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,s.jsx)(Q,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:w},t))})})}),(0,s.jsxs)("div",{className:V.buttonGroup,children:[(m.isEnabled||m.isCodeScrollable)&&(0,s.jsx)(en,{className:V.codeButton,onClick:()=>m.toggle(),isEnabled:m.isEnabled}),(0,s.jsx)(ee,{className:V.codeButton,code:x})]})]})]})}function el(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let ei=(l=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let l=(0,u.A)(),i=c.Children.toArray(n).some(e=>(0,c.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,a="string"==typeof i?eo:G;return(0,s.jsx)(a,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(l))},function(e){return e.live?(0,s.jsx)(E,el({scope:N},e)):(0,s.jsx)(l,el({},e))});function es(e){return(0,s.jsx)(ei,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}},90530:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>p,default:()=>g,frontMatter:()=>u,metadata:()=>n,toc:()=>b});let n=JSON.parse('{"id":"api/plugins/plugin-google-analytics","title":"\u{1F4E6} plugin-google-analytics","description":"The default Google Analytics plugin. It is a JavaScript library for measuring how users interact with your website in the production build. If you are using Google Analytics 4 you might need to consider using plugin-google-gtag instead.","source":"@site/docs/api/plugins/plugin-google-analytics.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-google-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-google-analytics","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-google-analytics.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":6,"frontMatter":{"sidebar_position":6,"slug":"/api/plugins/@docusaurus/plugin-google-analytics"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-debug","permalink":"/docs/api/plugins/@docusaurus/plugin-debug"},"next":{"title":"\u{1F4E6} plugin-google-gtag","permalink":"/docs/api/plugins/@docusaurus/plugin-google-gtag"}}');var o=r(62540),l=r(43023),i=r(27446),s=r(15995),c=r(59273),a=r(59433);let u={sidebar_position:6,slug:"/api/plugins/@docusaurus/plugin-google-analytics"},p="\u{1F4E6} plugin-google-analytics",d={},b=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Example configuration",id:"ex-config",level:3}];function f(e){let t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"-plugin-google-analytics",children:"\u{1F4E6} plugin-google-analytics"})}),"\n","\n",(0,o.jsxs)(t.p,{children:["The default ",(0,o.jsx)(t.a,{href:"https://developers.google.com/analytics/devguides/collection/analyticsjs/",children:"Google Analytics"})," plugin. It is a JavaScript library for measuring how users interact with your website ",(0,o.jsx)(t.strong,{children:"in the production build"}),". If you are using Google Analytics 4 you might need to consider using ",(0,o.jsx)(t.a,{href:"/docs/api/plugins/@docusaurus/plugin-google-gtag",children:"plugin-google-gtag"})," instead."]}),"\n",(0,o.jsxs)(t.admonition,{title:"Deprecated",type:"danger",children:[(0,o.jsxs)(t.p,{children:["This plugin is ",(0,o.jsx)(t.strong,{children:"deprecated"}),", and will become useless on July 1, 2023."]}),(0,o.jsxs)(t.p,{children:["Google is ",(0,o.jsx)(t.a,{href:"https://blog.google/products/marketingplatform/analytics/prepare-for-future-with-google-analytics-4/",children:"moving away from Universal Analytics"}),"."]}),(0,o.jsxs)(t.p,{children:["If you are still using this plugin with a ",(0,o.jsx)(t.code,{children:"UA-*"})," tracking id, you should create a Google Analytics 4 account as soon as possible, and use ",(0,o.jsx)(t.a,{href:"/docs/api/plugins/@docusaurus/plugin-google-gtag",children:(0,o.jsx)(t.code,{children:"@docusaurus/plugin-google-gtag"})})," instead of this plugin. More details ",(0,o.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/7221",children:"here"}),"."]})]}),"\n",(0,o.jsx)(t.admonition,{title:"production only",type:"warning",children:(0,o.jsxs)(t.p,{children:["This plugin is always inactive in development and ",(0,o.jsx)(t.strong,{children:"only active in production"})," to avoid polluting the analytics statistics."]})}),"\n",(0,o.jsx)(t.h2,{id:"installation",children:"Installation"}),"\n",(0,o.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,o.jsx)(s.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install --save @docusaurus/plugin-google-analytics\n"})})}),(0,o.jsx)(s.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn add @docusaurus/plugin-google-analytics\n"})})}),(0,o.jsx)(s.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm add @docusaurus/plugin-google-analytics\n"})})})]}),"\n",(0,o.jsxs)(t.admonition,{type:"tip",children:[(0,o.jsxs)(t.p,{children:["If you use the preset ",(0,o.jsx)(t.code,{children:"@docusaurus/preset-classic"}),", you don't need to install this plugin as a dependency."]}),(0,o.jsxs)(t.p,{children:["You can configure this plugin through the ",(0,o.jsx)(t.a,{href:"/docs/using-plugins#docusauruspreset-classic",children:"preset options"}),"."]})]}),"\n",(0,o.jsx)(t.h2,{id:"configuration",children:"Configuration"}),"\n",(0,o.jsx)(t.p,{children:"Accepted fields:"}),"\n",(0,o.jsx)(c.A,{children:(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Type"}),(0,o.jsx)(t.th,{children:"Default"}),(0,o.jsx)(t.th,{children:"Description"})]})}),(0,o.jsxs)(t.tbody,{children:[(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"trackingID"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"string"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.strong,{children:"Required"})}),(0,o.jsx)(t.td,{children:"The tracking ID of your analytics service."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"anonymizeIP"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"boolean"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"false"})}),(0,o.jsx)(t.td,{children:"Whether the IP should be anonymized when sending requests."})]})]})]})}),"\n",(0,o.jsx)(t.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,o.jsx)(t.p,{children:"You can configure this plugin through preset options or plugin options."}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsx)(t.p,{children:"Most Docusaurus users configure this plugin through the preset options."})}),"\n","\n",(0,o.jsx)(a.A,{pluginName:"@docusaurus/plugin-google-analytics",presetOptionName:"googleAnalytics",code:"{\n trackingID: 'UA-141789564-1',\n anonymizeIP: true,\n}"})]})}function g(e={}){let{wrapper:t}={...(0,l.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(f,{...e})}):f(e)}}}]); \ No newline at end of file diff --git a/assets/js/03f86864.257c2b28.js b/assets/js/03f86864.257c2b28.js new file mode 100644 index 0000000000..add13db801 --- /dev/null +++ b/assets/js/03f86864.257c2b28.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[58018],{59273:(e,n,d)=>{d.d(n,{A:()=>c});var i=d(62540),s=d(63696),t=d(52711),r=d(49519);let l=s.forwardRef(function({name:e,children:n},d){let l=function(e){let n=e;for(;(0,s.isValidElement)(n);)[n]=s.Children.toArray(n.props.children);if("string"!=typeof n)throw Error(`Could not extract APITable row name from JSX tree: +${JSON.stringify(e,null,2)}`);return n}(n),c=e?`${e}-${l}`:l,h=`#${c}`,o=(0,r.W6)();return(0,t.A)().collectAnchor(c),(0,i.jsx)("tr",{id:c,tabIndex:0,ref:o.location.hash===h?d:void 0,onClick:e=>{"A"!==e.target.tagName.toUpperCase()&&o.push(h)},onKeyDown:e=>{"Enter"===e.key&&o.push(h)},children:n.props.children})});function c({children:e,name:n}){if("table"!==e.type)throw Error("Bad usage of APITable component.\nIt is probably that your Markdown table is malformed.\nMake sure to double-check you have the appropriate number of columns for each table row.");let[d,t]=s.Children.toArray(e.props.children),r=(0,s.useRef)(null);(0,s.useEffect)(()=>{var e;null===(e=r.current)||void 0===e||e.focus()},[r]);let c=s.Children.map(t.props.children,e=>(0,i.jsx)(l,{name:n,ref:r,children:e}));return(0,i.jsxs)("table",{className:"apiTable_e8hp",children:[d,(0,i.jsx)("tbody",{children:c})]})}},90680:(e,n,d)=>{d.r(n),d.d(n,{assets:()=>h,contentTitle:()=>c,default:()=>x,frontMatter:()=>l,metadata:()=>i,toc:()=>o});let i=JSON.parse('{"id":"api/themes/theme-configuration","title":"Theme configuration","description":"This configuration applies to all main themes.","source":"@site/docs/api/themes/theme-configuration.mdx","sourceDirName":"api/themes","slug":"/api/themes/configuration","permalink":"/docs/api/themes/configuration","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/theme-configuration.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"Configuration","slug":"/api/themes/configuration","toc_max_heading_level":4},"sidebar":"api","previous":{"title":"Themes overview","permalink":"/docs/api/themes"},"next":{"title":"\u{1F4E6} theme-classic","permalink":"/docs/api/themes/@docusaurus/theme-classic"}}');var s=d(62540),t=d(43023),r=d(59273);let l={sidebar_position:1,sidebar_label:"Configuration",slug:"/api/themes/configuration",toc_max_heading_level:4},c="Theme configuration",h={},o=[{value:"Common",id:"common",level:2},{value:"Color mode",id:"color-mode---dark-mode",level:3},{value:"Meta image",id:"meta-image",level:3},{value:"Metadata",id:"metadata",level:3},{value:"Announcement bar",id:"announcement-bar",level:3},{value:"Plugins",id:"plugins",level:2},{value:"Docs",id:"docs",level:3},{value:"Blog",id:"blog",level:3},{value:"Navbar",id:"navbar",level:2},{value:"Navbar logo",id:"navbar-logo",level:3},{value:"Navbar items",id:"navbar-items",level:3},{value:"Navbar link",id:"navbar-link",level:4},{value:"Navbar dropdown",id:"navbar-dropdown",level:4},{value:"Navbar doc link",id:"navbar-doc-link",level:4},{value:"Navbar linked to a sidebar",id:"navbar-doc-sidebar",level:4},{value:"Navbar docs version dropdown",id:"navbar-docs-version-dropdown",level:4},{value:"Navbar docs version",id:"navbar-docs-version",level:4},{value:"Navbar locale dropdown",id:"navbar-locale-dropdown",level:4},{value:"Navbar search",id:"navbar-search",level:4},{value:"Navbar with custom HTML",id:"navbar-with-custom-html",level:4},{value:"Auto-hide sticky navbar",id:"auto-hide-sticky-navbar",level:3},{value:"Navbar style",id:"navbar-style",level:3},{value:"CodeBlock",id:"codeblock",level:2},{value:"Theme",id:"theme",level:3},{value:"Default language",id:"default-language",level:3},{value:"Footer",id:"footer-1",level:2},{value:"Footer Links",id:"footer-links",level:3},{value:"Table of Contents",id:"table-of-contents",level:2},{value:"Hooks",id:"hooks",level:2},{value:"<code>useColorMode</code>",id:"use-color-mode",level:3},{value:"i18n",id:"i18n",level:2},{value:"Translation files location",id:"translation-files-location",level:3},{value:"Example file-system structure",id:"example-file-system-structure",level:3}];function a(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"theme-configuration",children:"Theme configuration"})}),"\n","\n",(0,s.jsxs)(n.p,{children:["This configuration applies to all ",(0,s.jsx)(n.a,{href:"/docs/api/themes",children:"main themes"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"common",children:"Common"}),"\n",(0,s.jsx)(n.h3,{id:"color-mode---dark-mode",children:"Color mode"}),"\n",(0,s.jsx)(n.p,{children:"The classic theme provides by default light and dark mode support, with a navbar switch for the user."}),"\n",(0,s.jsxs)(n.p,{children:["It is possible to customize the color mode support within the ",(0,s.jsx)(n.code,{children:"colorMode"})," object."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"defaultMode"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'light' | 'dark'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'light'"})}),(0,s.jsx)(n.td,{children:"The color mode when user first visits the site."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"disableSwitch"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Hides the switch in the navbar. Useful if you want to support a single color mode."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"respectPrefersColorScheme"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Whether to use the ",(0,s.jsx)(n.code,{children:"prefers-color-scheme"})," media-query, using user system preferences, instead of the hardcoded ",(0,s.jsx)(n.code,{children:"defaultMode"}),"."]})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n // highlight-start\n colorMode: {\n defaultMode: 'light',\n disableSwitch: false,\n respectPrefersColorScheme: false,\n },\n // highlight-end\n },\n};\n"})}),"\n",(0,s.jsxs)(n.admonition,{type:"warning",children:[(0,s.jsxs)(n.p,{children:["With ",(0,s.jsx)(n.code,{children:"respectPrefersColorScheme: true"}),", the ",(0,s.jsx)(n.code,{children:"defaultMode"})," is overridden by user system preferences."]}),(0,s.jsx)(n.p,{children:"If you only want to support one color mode, you likely want to ignore user system preferences."})]}),"\n",(0,s.jsx)(n.h3,{id:"meta-image",children:"Meta image"}),"\n",(0,s.jsxs)(n.p,{children:["You can configure a default image that will be used for your meta tag, in particular ",(0,s.jsx)(n.code,{children:"og:image"})," and ",(0,s.jsx)(n.code,{children:"twitter:image"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"image"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:'The meta image URL for the site. Relative to your site\'s "static" directory. Cannot be SVGs. Can be external URLs too.'})]})})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n // highlight-next-line\n image: 'img/docusaurus.png',\n },\n};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"metadata",children:"Metadata"}),"\n",(0,s.jsx)(n.p,{children:"You can configure additional HTML metadata (and override existing ones)."}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"metadata"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Metadata[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsxs)(n.td,{children:["Any field will be directly passed to the ",(0,s.jsx)(n.code,{children:"<meta />"})," tag. Possible fields include ",(0,s.jsx)(n.code,{children:"id"}),", ",(0,s.jsx)(n.code,{children:"name"}),", ",(0,s.jsx)(n.code,{children:"property"}),", ",(0,s.jsx)(n.code,{children:"content"}),", ",(0,s.jsx)(n.code,{children:"itemprop"}),", etc."]})]})})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n // highlight-next-line\n metadata: [{name: 'twitter:card', content: 'summary'}],\n },\n};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"announcement-bar",children:"Announcement bar"}),"\n",(0,s.jsxs)(n.p,{children:["Sometimes you want to announce something in your website. Just for such a case, you can add an announcement bar. This is a non-fixed and optionally dismissible panel above the navbar. All configuration are in the ",(0,s.jsx)(n.code,{children:"announcementBar"})," object."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"announcement-bar",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"id"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'announcement-bar'"})}),(0,s.jsx)(n.td,{children:"Any value that will identify this message."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"content"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"''"})}),(0,s.jsx)(n.td,{children:"The text content of the announcement. HTML will be interpolated."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"backgroundColor"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'#fff'"})}),(0,s.jsx)(n.td,{children:"Background color of the entire bar."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"textColor"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'#000'"})}),(0,s.jsx)(n.td,{children:"Announcement text color."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"isCloseable"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"Whether this announcement can be dismissed with a '\xd7' button."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n // highlight-start\n announcementBar: {\n id: 'support_us',\n content:\n 'We are looking to revamp our docs, please fill <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"#\">this survey</a>',\n backgroundColor: '#fafbfc',\n textColor: '#091E42',\n isCloseable: false,\n },\n // highlight-end\n },\n};\n"})}),"\n",(0,s.jsx)(n.h2,{id:"plugins",children:"Plugins"}),"\n",(0,s.jsxs)(n.p,{children:["Our ",(0,s.jsx)(n.a,{href:"/docs/api/themes",children:"main themes"})," offer additional theme configuration options for Docusaurus core content plugins."]}),"\n",(0,s.jsx)(n.h3,{id:"docs",children:"Docs"}),"\n",(0,s.jsx)(r.A,{name:"navbar-overview",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"versionPersistence"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'localStorage' | 'none'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Defines the browser persistence of the preferred docs version."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebar.hideable"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Show a hide button at the bottom of the sidebar."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebar.autoCollapseCategories"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Automatically collapse all sibling categories of the one you navigate to."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n docs: {\n // highlight-start\n versionPersistence: 'localStorage',\n sidebar: {\n hideable: false,\n autoCollapseCategories: false,\n },\n // highlight-end\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"blog",children:"Blog"}),"\n",(0,s.jsx)(r.A,{name:"navbar-overview",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebar.groupByYear"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"Group sidebar blog posts by years."})]})})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n blog: {\n // highlight-start\n sidebar: {\n groupByYear: true,\n },\n // highlight-end\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h2,{id:"navbar",children:"Navbar"}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"navbar-overview",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"title"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Title for the navbar."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"logo"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"See below"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Customization of the logo object."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"items"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"NavbarItem[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"A list of navbar items. See specification below."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"hideOnScroll"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Whether the navbar is hidden when the user scrolls down."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"style"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'primary' | 'dark'"})}),(0,s.jsx)(n.td,{children:"Same as theme"}),(0,s.jsx)(n.td,{children:"Sets the navbar style, ignoring the dark/light theme."})]})]})]})}),"\n",(0,s.jsx)(n.h3,{id:"navbar-logo",children:"Navbar logo"}),"\n",(0,s.jsxs)(n.p,{children:["The logo can be placed in ",(0,s.jsx)(n.a,{href:"/docs/static-assets",children:"static folder"}),". Logo URL is set to base URL of your site by default. Although you can specify your own URL for the logo, if it is an external link, it will open in a new tab. In addition, you can override a value for the target attribute of logo link, it can come in handy if you are hosting docs website in a subdirectory of your main website, and in which case you probably do not need a link in the logo to the main website will open in a new tab."]}),"\n",(0,s.jsx)(n.p,{children:"To improve dark mode support, you can also set a different logo for this mode."}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"navbar-logo",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"alt"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Alt tag for the logo image."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"src"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"URL to the logo image. Base URL is appended by default."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"srcDark"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"logo.src"})}),(0,s.jsx)(n.td,{children:"An alternative image URL to use in dark mode."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"href"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"siteConfig.baseUrl"})}),(0,s.jsx)(n.td,{children:"Link to navigate to when the logo is clicked."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"width"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"string | number"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Specifies the ",(0,s.jsx)(n.code,{children:"width"})," attribute."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"height"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"string | number"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Specifies the ",(0,s.jsx)(n.code,{children:"height"})," attribute."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"target"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsxs)(n.td,{children:["Calculated based on ",(0,s.jsx)(n.code,{children:"href"})," (external links will open in a new tab, all others in the current one)."]}),(0,s.jsxs)(n.td,{children:["The ",(0,s.jsx)(n.code,{children:"target"})," attribute of the link; controls whether the link is opened in a new tab, the current one, or otherwise."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"className"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"CSS class applied to the image."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"style"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"object"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"CSS inline style object. React/JSX flavor, using camelCase properties."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n title: 'Site Title',\n // highlight-start\n logo: {\n alt: 'Site Logo',\n src: 'img/logo.svg',\n srcDark: 'img/logo_dark.svg',\n href: 'https://docusaurus.io/',\n target: '_self',\n width: 32,\n height: 32,\n className: 'custom-navbar-logo-class',\n style: {border: 'solid red'},\n },\n // highlight-end\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"navbar-items",children:"Navbar items"}),"\n",(0,s.jsxs)(n.p,{children:["You can add items to the navbar via ",(0,s.jsx)(n.code,{children:"themeConfig.navbar.items"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n // highlight-start\n items: [\n {\n type: 'doc',\n position: 'left',\n docId: 'introduction',\n label: 'Docs',\n },\n {to: 'blog', label: 'Blog', position: 'left'},\n {\n type: 'docsVersionDropdown',\n position: 'right',\n },\n {\n type: 'localeDropdown',\n position: 'right',\n },\n {\n href: 'https://github.com/facebook/docusaurus',\n position: 'right',\n className: 'header-github-link',\n 'aria-label': 'GitHub repository',\n },\n ],\n // highlight-end\n },\n },\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["The items can have different behaviors based on the ",(0,s.jsx)(n.code,{children:"type"})," field. The sections below will introduce you to all the types of navbar items available."]}),"\n",(0,s.jsx)(n.h4,{id:"navbar-link",children:"Navbar link"}),"\n",(0,s.jsx)(n.p,{children:"By default, Navbar items are regular links (internal or external)."}),"\n",(0,s.jsxs)(n.p,{children:["React Router should automatically apply active link styling to links, but you can use ",(0,s.jsx)(n.code,{children:"activeBasePath"})," in edge cases. For cases in which a link should be active on several different paths (such as when you have multiple doc folders under the same sidebar), you can use ",(0,s.jsx)(n.code,{children:"activeBaseRegex"}),". ",(0,s.jsx)(n.code,{children:"activeBaseRegex"})," is a more flexible alternative to ",(0,s.jsx)(n.code,{children:"activeBasePath"})," and takes precedence over it -- Docusaurus parses it into a regular expression that is tested against the current URL."]}),"\n",(0,s.jsxs)(n.p,{children:["Outbound (external) links automatically get ",(0,s.jsx)(n.code,{children:'target="_blank" rel="noopener noreferrer"'})," attributes."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"navbar-link",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"type"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'default'"})}),(0,s.jsx)(n.td,{children:"Optional"}),(0,s.jsx)(n.td,{children:"Sets the type of this item to a link."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"label"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"The name to be shown for this item."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"html"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Optional"}),(0,s.jsxs)(n.td,{children:["Same as ",(0,s.jsx)(n.code,{children:"label"}),", but renders pure HTML instead of text content."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"to"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Client-side routing, used for navigating within the website. The baseUrl will be automatically prepended to this value."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"href"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsxs)(n.td,{children:["A full-page navigation, used for navigating outside of the website. ",(0,s.jsxs)(n.strong,{children:["Only one of ",(0,s.jsx)(n.code,{children:"to"})," or ",(0,s.jsx)(n.code,{children:"href"})," should be used."]})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"prependBaseUrlToHref"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Prepends the baseUrl to ",(0,s.jsx)(n.code,{children:"href"})," values."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'left' | 'right'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'left'"})}),(0,s.jsx)(n.td,{children:"The side of the navbar this item should appear on."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"activeBasePath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"to"})," / ",(0,s.jsx)(n.code,{children:"href"})]}),(0,s.jsx)(n.td,{children:"To apply the active class styling on all routes starting with this path. This usually isn't necessary."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"activeBaseRegex"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Alternative to ",(0,s.jsx)(n.code,{children:"activeBasePath"})," if required."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"className"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"''"})}),(0,s.jsx)(n.td,{children:"Custom CSS class (for styling any item)."})]})]})]})}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsx)(n.p,{children:"In addition to the fields above, you can specify other arbitrary attributes that can be applied to a HTML link."})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n to: 'docs/introduction',\n // Only one of \"to\" or \"href\" should be used\n // href: 'https://www.facebook.com',\n label: 'Introduction',\n // Only one of \"label\" or \"html\" should be used\n // html: '<b>Introduction</b>'\n position: 'left',\n activeBaseRegex: 'docs/(next|v8)',\n target: '_blank',\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h4,{id:"navbar-dropdown",children:"Navbar dropdown"}),"\n",(0,s.jsxs)(n.p,{children:["Navbar items of the type ",(0,s.jsx)(n.code,{children:"dropdown"})," has the additional ",(0,s.jsx)(n.code,{children:"items"})," field, an inner array of navbar items."]}),"\n",(0,s.jsxs)(n.p,{children:["Navbar dropdown items only accept the following ",(0,s.jsx)(n.strong,{children:'"link-like" item types'}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#navbar-link",children:"Navbar link"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#navbar-doc-link",children:"Navbar doc link"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#navbar-docs-version",children:"Navbar docs version"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#navbar-doc-sidebar",children:"Navbar doc sidebar"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#navbar-with-custom-html",children:"Navbar with custom HTML"})}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Note that the dropdown base item is a clickable link as well, so this item can receive any of the props of a ",(0,s.jsx)(n.a,{href:"#navbar-link",children:"plain navbar link"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"navbar-dropdown",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"type"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'dropdown'"})}),(0,s.jsx)(n.td,{children:"Optional"}),(0,s.jsx)(n.td,{children:"Sets the type of this item to a dropdown."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"label"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"The name to be shown for this item."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"items"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:[(0,s.jsx)(n.a,{href:"#navbar-dropdown",children:"LinkLikeItem"}),"[]"]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"The items to be contained in the dropdown."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'left' | 'right'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'left'"})}),(0,s.jsx)(n.td,{children:"The side of the navbar this item should appear on."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'dropdown',\n label: 'Community',\n position: 'left',\n items: [\n {\n label: 'Facebook',\n href: 'https://www.facebook.com',\n },\n {\n type: 'doc',\n label: 'Social',\n docId: 'social',\n },\n // ... more items\n ],\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h4,{id:"navbar-doc-link",children:"Navbar doc link"}),"\n",(0,s.jsxs)(n.p,{children:["If you want to link to a specific doc, this special navbar item type will render the link to the doc of the provided ",(0,s.jsx)(n.code,{children:"docId"}),". It will get the class ",(0,s.jsx)(n.code,{children:"navbar__link--active"})," as long as you browse a doc of the same sidebar."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"navbar-doc-link",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"type"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'doc'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Sets the type of this item to a doc link."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docId"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"The ID of the doc that this item links to."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"label"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docId"})}),(0,s.jsx)(n.td,{children:"The name to be shown for this item."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'left' | 'right'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'left'"})}),(0,s.jsx)(n.td,{children:"The side of the navbar this item should appear on."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docsPluginId"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'default'"})}),(0,s.jsx)(n.td,{children:"The ID of the docs plugin that the doc belongs to."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'doc',\n position: 'left',\n docId: 'introduction',\n label: 'Docs',\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h4,{id:"navbar-doc-sidebar",children:"Navbar linked to a sidebar"}),"\n",(0,s.jsx)(n.p,{children:"You can link a navbar item to the first document link (which can be a doc link or a generated category index) of a given sidebar without having to hardcode a doc ID."}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"navbar-doc-sidebar",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"type"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'docSidebar'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Sets the type of this navbar item to a sidebar's first document."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebarId"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"The ID of the sidebar that this item is linked to."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"label"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"First document link's sidebar label"}),(0,s.jsx)(n.td,{children:"The name to be shown for this item."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'left' | 'right'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'left'"})}),(0,s.jsx)(n.td,{children:"The side of the navbar this item should appear on."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docsPluginId"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'default'"})}),(0,s.jsx)(n.td,{children:"The ID of the docs plugin that the sidebar belongs to."})]})]})]})}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsx)(n.p,{children:"Use this navbar item type if your sidebar is updated often and the order is not stable."})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'docSidebar',\n position: 'left',\n sidebarId: 'api',\n label: 'API',\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n tutorial: [\n {\n type: 'autogenerated',\n dirName: 'guides',\n },\n ],\n api: [\n // highlight-next-line\n 'cli', // The navbar item will be linking to this doc\n 'docusaurus-core',\n {\n type: 'autogenerated',\n dirName: 'api',\n },\n ],\n};\n"})}),"\n",(0,s.jsx)(n.h4,{id:"navbar-docs-version-dropdown",children:"Navbar docs version dropdown"}),"\n",(0,s.jsx)(n.p,{children:"If you use docs with versioning, this special navbar item type that will render a dropdown with all your site's available versions."}),"\n",(0,s.jsx)(n.p,{children:"The user will be able to switch from one version to another, while staying on the same doc (as long as the doc ID is constant across versions)."}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"navbar-docs-version-dropdown",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"type"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'docsVersionDropdown'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Sets the type of this item to a docs version dropdown."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'left' | 'right'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'left'"})}),(0,s.jsx)(n.td,{children:"The side of the navbar this item should appear on."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"dropdownItemsBefore"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:[(0,s.jsx)(n.a,{href:"#navbar-dropdown",children:"LinkLikeItem"}),"[]"]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Add additional dropdown items at the beginning of the dropdown."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"dropdownItemsAfter"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:[(0,s.jsx)(n.a,{href:"#navbar-dropdown",children:"LinkLikeItem"}),"[]"]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Add additional dropdown items at the end of the dropdown."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docsPluginId"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'default'"})}),(0,s.jsx)(n.td,{children:"The ID of the docs plugin that the doc versioning belongs to."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"dropdownActiveClassDisabled"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Do not add the link active class when browsing docs."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'docsVersionDropdown',\n position: 'left',\n dropdownItemsAfter: [{to: '/versions', label: 'All versions'}],\n dropdownActiveClassDisabled: true,\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h4,{id:"navbar-docs-version",children:"Navbar docs version"}),"\n",(0,s.jsx)(n.p,{children:"If you use docs with versioning, this special navbar item type will link to the active/browsed version of your doc (depends on the current URL), and fallback to the latest version."}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"navbar-docs-version",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"type"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'docsVersion'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Sets the type of this item to a doc version link."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"label"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The active/latest version label."}),(0,s.jsx)(n.td,{children:"The name to be shown for this item."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"to"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The active/latest version."}),(0,s.jsx)(n.td,{children:"The internal link that this item points to."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'left' | 'right'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'left'"})}),(0,s.jsx)(n.td,{children:"The side of the navbar this item should appear on."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docsPluginId"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'default'"})}),(0,s.jsx)(n.td,{children:"The ID of the docs plugin that the doc versioning belongs to."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'docsVersion',\n position: 'left',\n to: '/path',\n label: 'label',\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h4,{id:"navbar-locale-dropdown",children:"Navbar locale dropdown"}),"\n",(0,s.jsxs)(n.p,{children:["If you use the ",(0,s.jsx)(n.a,{href:"/docs/i18n/introduction",children:"i18n feature"}),", this special navbar item type will render a dropdown with all your site's available locales."]}),"\n",(0,s.jsx)(n.p,{children:"The user will be able to switch from one locale to another, while staying on the same page."}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"navbar-locale-dropdown",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"type"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'localeDropdown'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Sets the type of this item to a locale dropdown."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'left' | 'right'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'left'"})}),(0,s.jsx)(n.td,{children:"The side of the navbar this item should appear on."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"dropdownItemsBefore"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:[(0,s.jsx)(n.a,{href:"#navbar-dropdown",children:"LinkLikeItem"}),"[]"]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Add additional dropdown items at the beginning of the dropdown."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"dropdownItemsAfter"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:[(0,s.jsx)(n.a,{href:"#navbar-dropdown",children:"LinkLikeItem"}),"[]"]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Add additional dropdown items at the end of the dropdown."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"queryString"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"The query string to be appended to the URL."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'localeDropdown',\n position: 'left',\n dropdownItemsAfter: [\n {\n to: 'https://my-site.com/help-us-translate',\n label: 'Help us translate',\n },\n ],\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h4,{id:"navbar-search",children:"Navbar search"}),"\n",(0,s.jsxs)(n.p,{children:["If you use the ",(0,s.jsx)(n.a,{href:"/docs/search",children:"search"}),", the search bar will be the rightmost element in the navbar."]}),"\n",(0,s.jsx)(n.p,{children:"However, with this special navbar item type, you can change the default location."}),"\n",(0,s.jsx)(r.A,{name:"navbar-search",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"type"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'search'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Sets the type of this item to a search bar."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'left' | 'right'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'left'"})}),(0,s.jsx)(n.td,{children:"The side of the navbar this item should appear on."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"className"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"/"}),(0,s.jsx)(n.td,{children:"Custom CSS class for this navbar item."})]})]})]})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'search',\n position: 'right',\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h4,{id:"navbar-with-custom-html",children:"Navbar with custom HTML"}),"\n",(0,s.jsx)(n.p,{children:"You can also render your own HTML markup inside a navbar item using this navbar item type."}),"\n",(0,s.jsx)(r.A,{name:"navbar-html",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"type"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'html'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Sets the type of this item to a HTML element."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'left' | 'right'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'left'"})}),(0,s.jsx)(n.td,{children:"The side of the navbar this item should appear on."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"className"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"''"})}),(0,s.jsx)(n.td,{children:"Custom CSS class for this navbar item."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"value"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"''"})}),(0,s.jsx)(n.td,{children:"Custom HTML to be rendered inside this navbar item."})]})]})]})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'html',\n position: 'right',\n value: '<button>Give feedback</button>',\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"auto-hide-sticky-navbar",children:"Auto-hide sticky navbar"}),"\n",(0,s.jsx)(n.p,{children:"You can enable this cool UI feature that automatically hides the navbar when a user starts scrolling down the page, and show it again when the user scrolls up."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n // highlight-next-line\n hideOnScroll: true,\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"navbar-style",children:"Navbar style"}),"\n",(0,s.jsx)(n.p,{children:"You can set the static Navbar style without disabling the theme switching ability. The selected style will always apply no matter which theme user have selected."}),"\n",(0,s.jsxs)(n.p,{children:["Currently, there are two possible style options: ",(0,s.jsx)(n.code,{children:"dark"})," and ",(0,s.jsx)(n.code,{children:"primary"})," (based on the ",(0,s.jsx)(n.code,{children:"--ifm-color-primary"})," color). You can see the styles preview in the ",(0,s.jsx)(n.a,{href:"https://infima.dev/docs/components/navbar/",children:"Infima documentation"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n // highlight-next-line\n style: 'primary',\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h2,{id:"codeblock",children:"CodeBlock"}),"\n",(0,s.jsxs)(n.p,{children:["Docusaurus uses ",(0,s.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer",children:"Prism React Renderer"})," to highlight code blocks. All configuration are in the ",(0,s.jsx)(n.code,{children:"prism"})," object."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"codeblock",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"theme"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"PrismTheme"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"palenight"})}),(0,s.jsx)(n.td,{children:"The Prism theme to use for light-theme code blocks."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"darkTheme"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"PrismTheme"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"palenight"})}),(0,s.jsx)(n.td,{children:"The Prism theme to use for dark-theme code blocks."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"defaultLanguage"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"The default language to use for code blocks not declaring any explicit language."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"magicComments"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"MagicCommentConfig[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"see below"})}),(0,s.jsxs)(n.td,{children:["The list of ",(0,s.jsx)(n.a,{href:"/docs/markdown-features/code-blocks#custom-magic-comments",children:"magic comments"}),"."]})]})]})]})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type MagicCommentConfig = {\n className: string;\n line?: string;\n block?: {start: string; end: string};\n};\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"const defaultMagicComments = [\n {\n className: 'theme-code-block-highlighted-line',\n line: 'highlight-next-line',\n block: {start: 'highlight-start', end: 'highlight-end'},\n },\n];\n"})}),"\n",(0,s.jsx)(n.h3,{id:"theme",children:"Theme"}),"\n",(0,s.jsxs)(n.p,{children:["By default, we use ",(0,s.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer/blob/master/packages/prism-react-renderer/src/themes/palenight.ts",children:"Palenight"})," as syntax highlighting theme. You can specify a custom theme from the ",(0,s.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer/tree/master/packages/prism-react-renderer/src/themes",children:"list of available themes"}),". You may also use a different syntax highlighting theme when the site is in dark mode."]}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"import {themes as prismThemes} from 'prism-react-renderer';\n\nexport default {\n themeConfig: {\n prism: {\n // highlight-start\n theme: prismThemes.github,\n darkTheme: prismThemes.dracula,\n // highlight-end\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["If you use the line highlighting Markdown syntax, you might need to specify a different highlight background color for the dark mode syntax highlighting theme. Refer to the ",(0,s.jsx)(n.a,{href:"/docs/markdown-features/code-blocks#line-highlighting",children:"docs for guidance"}),"."]})}),"\n",(0,s.jsx)(n.h3,{id:"default-language",children:"Default language"}),"\n",(0,s.jsxs)(n.p,{children:["You can set a default language for code blocks if no language is added after the opening triple backticks (i.e. ```). Note that a valid ",(0,s.jsx)(n.a,{href:"https://prismjs.com/#supported-languages",children:"language name"})," must be passed."]}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n prism: {\n // highlight-next-line\n defaultLanguage: 'javascript',\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h2,{id:"footer-1",children:"Footer"}),"\n",(0,s.jsxs)(n.p,{children:["You can add logo and a copyright to the footer via ",(0,s.jsx)(n.code,{children:"themeConfig.footer"}),". Logo can be placed in ",(0,s.jsx)(n.a,{href:"/docs/static-assets",children:"static folder"}),". Logo URL works in the same way of the navbar logo."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"footer",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"logo"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Logo"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Customization of the logo object. See ",(0,s.jsx)(n.a,{href:"#navbar-logo",children:"Navbar logo"})," for details."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"copyright"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"The copyright message to be displayed at the bottom, also supports custom HTML."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"style"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'dark' | 'light'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'light'"})}),(0,s.jsx)(n.td,{children:"The color theme of the footer component."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"links"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"(Column | FooterLink)[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"The link groups to be present."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n // highlight-start\n footer: {\n logo: {\n alt: 'Meta Open Source Logo',\n src: 'img/meta_oss_logo.png',\n href: 'https://opensource.fb.com',\n width: 160,\n height: 51,\n },\n copyright: `Copyright \xa9 ${new Date().getFullYear()} My Project, Inc. Built with Docusaurus.`,\n },\n // highlight-end\n },\n};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"footer-links",children:"Footer Links"}),"\n",(0,s.jsxs)(n.p,{children:["You can add links to the footer via ",(0,s.jsx)(n.code,{children:"themeConfig.footer.links"}),". There are two types of footer configurations: ",(0,s.jsx)(n.strong,{children:"multi-column footers"})," and ",(0,s.jsx)(n.strong,{children:"simple footers"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Multi-column footer links have a ",(0,s.jsx)(n.code,{children:"title"})," and a list of ",(0,s.jsx)(n.code,{children:"FooterItem"}),"s for each column."]}),"\n",(0,s.jsx)(r.A,{name:"footer-links",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"title"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Label of the section of these links."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"items"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"FooterItem[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Links in this section."})]})]})]})}),"\n",(0,s.jsxs)(n.p,{children:["Accepted fields of each ",(0,s.jsx)(n.code,{children:"FooterItem"}),":"]}),"\n",(0,s.jsx)(r.A,{name:"footer-items",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"label"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Text to be displayed for this link."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"to"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Client-side routing, used for navigating within the website. The baseUrl will be automatically prepended to this value."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"href"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsxs)(n.td,{children:["A full-page navigation, used for navigating outside of the website. ",(0,s.jsxs)(n.strong,{children:["Only one of ",(0,s.jsx)(n.code,{children:"to"})," or ",(0,s.jsx)(n.code,{children:"href"})," should be used."]})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"html"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Renders the HTML pass-through instead of a simple link. In case ",(0,s.jsx)(n.code,{children:"html"})," is used, no other options should be provided."]})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example multi-column configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n footer: {\n // highlight-start\n links: [\n {\n title: 'Docs',\n items: [\n {\n label: 'Style Guide',\n to: 'docs/',\n },\n {\n label: 'Second Doc',\n to: 'docs/doc2/',\n },\n ],\n },\n {\n title: 'Community',\n items: [\n {\n label: 'Stack Overflow',\n href: 'https://stackoverflow.com/questions/tagged/docusaurus',\n },\n {\n label: 'Discord',\n href: 'https://discordapp.com/invite/docusaurus',\n },\n {\n label: 'X',\n href: 'https://x.com/docusaurus',\n },\n {\n html: `\n <a href=\"https://www.netlify.com\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Deploys by Netlify\">\n <img src=\"https://www.netlify.com/img/global/badges/netlify-color-accent.svg\" alt=\"Deploys by Netlify\" width=\"114\" height=\"51\" />\n </a>\n `,\n },\n ],\n },\n ],\n // highlight-end\n },\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["A simple footer just has a list of ",(0,s.jsx)(n.code,{children:"FooterItem"}),"s displayed in a row."]}),"\n",(0,s.jsx)(n.p,{children:"Example simple configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:'export default {\n footer: {\n // highlight-start\n links: [\n {\n label: \'Stack Overflow\',\n href: \'https://stackoverflow.com/questions/tagged/docusaurus\',\n },\n {\n label: \'Discord\',\n href: \'https://discordapp.com/invite/docusaurus\',\n },\n {\n label: \'X\',\n href: \'https://x.com/docusaurus\',\n },\n {\n html: `\n <a href="https://www.netlify.com" target="_blank" rel="noreferrer noopener" aria-label="Deploys by Netlify">\n <img src="https://www.netlify.com/img/global/badges/netlify-color-accent.svg" alt="Deploys by Netlify" width="114" height="51" />\n </a>\n `,\n },\n ],\n // highlight-end\n },\n};\n'})}),"\n",(0,s.jsx)(n.h2,{id:"table-of-contents",children:"Table of Contents"}),"\n",(0,s.jsxs)(n.p,{children:["You can adjust the default table of contents via ",(0,s.jsx)(n.code,{children:"themeConfig.tableOfContents"}),"."]}),"\n",(0,s.jsx)(r.A,{children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"minHeadingLevel"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"number"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"2"})}),(0,s.jsx)(n.td,{children:"The minimum heading level shown in the table of contents. Must be between 2 and 6 and lower or equal to the max value."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"maxHeadingLevel"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"number"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"3"})}),(0,s.jsx)(n.td,{children:"Max heading level displayed in the TOC. Should be an integer between 2 and 6."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n // highlight-start\n tableOfContents: {\n minHeadingLevel: 2,\n maxHeadingLevel: 5,\n },\n // highlight-end\n },\n};\n"})}),"\n",(0,s.jsx)(n.h2,{id:"hooks",children:"Hooks"}),"\n",(0,s.jsx)(n.h3,{id:"use-color-mode",children:(0,s.jsx)(n.code,{children:"useColorMode"})}),"\n",(0,s.jsx)(n.p,{children:"A React hook to access the color context. This context contains functions for setting light and dark mode and exposes boolean variable, indicating which mode is currently in use."}),"\n",(0,s.jsx)(n.p,{children:"Usage example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\n// highlight-next-line\nimport {useColorMode} from '@docusaurus/theme-common';\n\nconst Example = () => {\n // highlight-next-line\n const {colorMode, setColorMode} = useColorMode();\n\n return <h1>Dark mode is now {colorMode === 'dark' ? 'on' : 'off'}</h1>;\n};\n"})}),"\n",(0,s.jsxs)(n.admonition,{type:"note",children:[(0,s.jsxs)(n.p,{children:["The component calling ",(0,s.jsx)(n.code,{children:"useColorMode"})," must be a child of the ",(0,s.jsx)(n.code,{children:"Layout"})," component."]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:"function ExamplePage() {\n return (\n <Layout>\n <Example />\n </Layout>\n );\n}\n"})})]}),"\n",(0,s.jsx)(n.h2,{id:"i18n",children:"i18n"}),"\n",(0,s.jsxs)(n.p,{children:["Read the ",(0,s.jsx)(n.a,{href:"/docs/i18n/introduction",children:"i18n introduction"})," first."]}),"\n",(0,s.jsx)(n.h3,{id:"translation-files-location",children:"Translation files location"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Base path"}),": ",(0,s.jsx)(n.code,{children:"website/i18n/[locale]/docusaurus-theme-[themeName]"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Multi-instance path"}),": N/A"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"JSON files"}),": extracted with ",(0,s.jsx)(n.a,{href:"/docs/cli#docusaurus-write-translations-sitedir",children:(0,s.jsx)(n.code,{children:"docusaurus write-translations"})})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Markdown files"}),": N/A"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"example-file-system-structure",children:"Example file-system structure"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"website/i18n/[locale]/docusaurus-theme-classic\n\u2502\n\u2502 # translations for the theme\n\u251C\u2500\u2500 navbar.json\n\u2514\u2500\u2500 footer.json\n"})})]})}function x(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},43023:(e,n,d)=>{d.d(n,{R:()=>r,x:()=>l});var i=d(63696);let s={},t=i.createContext(s);function r(e){let n=i.useContext(t);return i.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:r(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/03f86864.710bb362.js b/assets/js/03f86864.710bb362.js deleted file mode 100644 index 19ee5e709f..0000000000 --- a/assets/js/03f86864.710bb362.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[58018],{59273:(e,n,d)=>{d.d(n,{A:()=>c});var i=d(62540),s=d(63696),t=d(52711),r=d(49519);let l=s.forwardRef(function({name:e,children:n},d){let l=function(e){let n=e;for(;(0,s.isValidElement)(n);)[n]=s.Children.toArray(n.props.children);if("string"!=typeof n)throw Error(`Could not extract APITable row name from JSX tree: -${JSON.stringify(e,null,2)}`);return n}(n),c=e?`${e}-${l}`:l,h=`#${c}`,o=(0,r.W6)();return(0,t.A)().collectAnchor(c),(0,i.jsx)("tr",{id:c,tabIndex:0,ref:o.location.hash===h?d:void 0,onClick:e=>{"A"!==e.target.tagName.toUpperCase()&&o.push(h)},onKeyDown:e=>{"Enter"===e.key&&o.push(h)},children:n.props.children})});function c({children:e,name:n}){if("table"!==e.type)throw Error("Bad usage of APITable component.\nIt is probably that your Markdown table is malformed.\nMake sure to double-check you have the appropriate number of columns for each table row.");let[d,t]=s.Children.toArray(e.props.children),r=(0,s.useRef)(null);(0,s.useEffect)(()=>{var e;null===(e=r.current)||void 0===e||e.focus()},[r]);let c=s.Children.map(t.props.children,e=>(0,i.jsx)(l,{name:n,ref:r,children:e}));return(0,i.jsxs)("table",{className:"apiTable_e8hp",children:[d,(0,i.jsx)("tbody",{children:c})]})}},90680:(e,n,d)=>{d.r(n),d.d(n,{assets:()=>h,contentTitle:()=>c,default:()=>x,frontMatter:()=>l,metadata:()=>i,toc:()=>o});let i=JSON.parse('{"id":"api/themes/theme-configuration","title":"Theme configuration","description":"This configuration applies to all main themes.","source":"@site/docs/api/themes/theme-configuration.mdx","sourceDirName":"api/themes","slug":"/api/themes/configuration","permalink":"/docs/api/themes/configuration","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/theme-configuration.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"Configuration","slug":"/api/themes/configuration","toc_max_heading_level":4},"sidebar":"api","previous":{"title":"Themes overview","permalink":"/docs/api/themes"},"next":{"title":"\u{1F4E6} theme-classic","permalink":"/docs/api/themes/@docusaurus/theme-classic"}}');var s=d(62540),t=d(43023),r=d(59273);let l={sidebar_position:1,sidebar_label:"Configuration",slug:"/api/themes/configuration",toc_max_heading_level:4},c="Theme configuration",h={},o=[{value:"Common",id:"common",level:2},{value:"Color mode",id:"color-mode---dark-mode",level:3},{value:"Meta image",id:"meta-image",level:3},{value:"Metadata",id:"metadata",level:3},{value:"Announcement bar",id:"announcement-bar",level:3},{value:"Plugins",id:"plugins",level:2},{value:"Docs",id:"docs",level:3},{value:"Blog",id:"blog",level:3},{value:"Navbar",id:"navbar",level:2},{value:"Navbar logo",id:"navbar-logo",level:3},{value:"Navbar items",id:"navbar-items",level:3},{value:"Navbar link",id:"navbar-link",level:4},{value:"Navbar dropdown",id:"navbar-dropdown",level:4},{value:"Navbar doc link",id:"navbar-doc-link",level:4},{value:"Navbar linked to a sidebar",id:"navbar-doc-sidebar",level:4},{value:"Navbar docs version dropdown",id:"navbar-docs-version-dropdown",level:4},{value:"Navbar docs version",id:"navbar-docs-version",level:4},{value:"Navbar locale dropdown",id:"navbar-locale-dropdown",level:4},{value:"Navbar search",id:"navbar-search",level:4},{value:"Navbar with custom HTML",id:"navbar-with-custom-html",level:4},{value:"Auto-hide sticky navbar",id:"auto-hide-sticky-navbar",level:3},{value:"Navbar style",id:"navbar-style",level:3},{value:"CodeBlock",id:"codeblock",level:2},{value:"Theme",id:"theme",level:3},{value:"Default language",id:"default-language",level:3},{value:"Footer",id:"footer-1",level:2},{value:"Footer Links",id:"footer-links",level:3},{value:"Table of Contents",id:"table-of-contents",level:2},{value:"Hooks",id:"hooks",level:2},{value:"<code>useColorMode</code>",id:"use-color-mode",level:3},{value:"i18n",id:"i18n",level:2},{value:"Translation files location",id:"translation-files-location",level:3},{value:"Example file-system structure",id:"example-file-system-structure",level:3}];function a(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"theme-configuration",children:"Theme configuration"})}),"\n","\n",(0,s.jsxs)(n.p,{children:["This configuration applies to all ",(0,s.jsx)(n.a,{href:"/docs/api/themes",children:"main themes"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"common",children:"Common"}),"\n",(0,s.jsx)(n.h3,{id:"color-mode---dark-mode",children:"Color mode"}),"\n",(0,s.jsx)(n.p,{children:"The classic theme provides by default light and dark mode support, with a navbar switch for the user."}),"\n",(0,s.jsxs)(n.p,{children:["It is possible to customize the color mode support within the ",(0,s.jsx)(n.code,{children:"colorMode"})," object."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"defaultMode"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'light' | 'dark'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'light'"})}),(0,s.jsx)(n.td,{children:"The color mode when user first visits the site."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"disableSwitch"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Hides the switch in the navbar. Useful if you want to support a single color mode."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"respectPrefersColorScheme"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Whether to use the ",(0,s.jsx)(n.code,{children:"prefers-color-scheme"})," media-query, using user system preferences, instead of the hardcoded ",(0,s.jsx)(n.code,{children:"defaultMode"}),"."]})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n // highlight-start\n colorMode: {\n defaultMode: 'light',\n disableSwitch: false,\n respectPrefersColorScheme: false,\n },\n // highlight-end\n },\n};\n"})}),"\n",(0,s.jsxs)(n.admonition,{type:"warning",children:[(0,s.jsxs)(n.p,{children:["With ",(0,s.jsx)(n.code,{children:"respectPrefersColorScheme: true"}),", the ",(0,s.jsx)(n.code,{children:"defaultMode"})," is overridden by user system preferences."]}),(0,s.jsx)(n.p,{children:"If you only want to support one color mode, you likely want to ignore user system preferences."})]}),"\n",(0,s.jsx)(n.h3,{id:"meta-image",children:"Meta image"}),"\n",(0,s.jsxs)(n.p,{children:["You can configure a default image that will be used for your meta tag, in particular ",(0,s.jsx)(n.code,{children:"og:image"})," and ",(0,s.jsx)(n.code,{children:"twitter:image"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"image"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:'The meta image URL for the site. Relative to your site\'s "static" directory. Cannot be SVGs. Can be external URLs too.'})]})})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n // highlight-next-line\n image: 'img/docusaurus.png',\n },\n};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"metadata",children:"Metadata"}),"\n",(0,s.jsx)(n.p,{children:"You can configure additional HTML metadata (and override existing ones)."}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"metadata"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Metadata[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsxs)(n.td,{children:["Any field will be directly passed to the ",(0,s.jsx)(n.code,{children:"<meta />"})," tag. Possible fields include ",(0,s.jsx)(n.code,{children:"id"}),", ",(0,s.jsx)(n.code,{children:"name"}),", ",(0,s.jsx)(n.code,{children:"property"}),", ",(0,s.jsx)(n.code,{children:"content"}),", ",(0,s.jsx)(n.code,{children:"itemprop"}),", etc."]})]})})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n // highlight-next-line\n metadata: [{name: 'twitter:card', content: 'summary'}],\n },\n};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"announcement-bar",children:"Announcement bar"}),"\n",(0,s.jsxs)(n.p,{children:["Sometimes you want to announce something in your website. Just for such a case, you can add an announcement bar. This is a non-fixed and optionally dismissible panel above the navbar. All configuration are in the ",(0,s.jsx)(n.code,{children:"announcementBar"})," object."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"announcement-bar",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"id"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'announcement-bar'"})}),(0,s.jsx)(n.td,{children:"Any value that will identify this message."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"content"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"''"})}),(0,s.jsx)(n.td,{children:"The text content of the announcement. HTML will be interpolated."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"backgroundColor"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'#fff'"})}),(0,s.jsx)(n.td,{children:"Background color of the entire bar."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"textColor"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'#000'"})}),(0,s.jsx)(n.td,{children:"Announcement text color."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"isCloseable"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"Whether this announcement can be dismissed with a '\xd7' button."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n // highlight-start\n announcementBar: {\n id: 'support_us',\n content:\n 'We are looking to revamp our docs, please fill <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"#\">this survey</a>',\n backgroundColor: '#fafbfc',\n textColor: '#091E42',\n isCloseable: false,\n },\n // highlight-end\n },\n};\n"})}),"\n",(0,s.jsx)(n.h2,{id:"plugins",children:"Plugins"}),"\n",(0,s.jsxs)(n.p,{children:["Our ",(0,s.jsx)(n.a,{href:"/docs/api/themes",children:"main themes"})," offer additional theme configuration options for Docusaurus core content plugins."]}),"\n",(0,s.jsx)(n.h3,{id:"docs",children:"Docs"}),"\n",(0,s.jsx)(r.A,{name:"navbar-overview",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"versionPersistence"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'localStorage' | 'none'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Defines the browser persistence of the preferred docs version."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebar.hideable"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Show a hide button at the bottom of the sidebar."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebar.autoCollapseCategories"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Automatically collapse all sibling categories of the one you navigate to."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n docs: {\n // highlight-start\n versionPersistence: 'localStorage',\n sidebar: {\n hideable: false,\n autoCollapseCategories: false,\n },\n // highlight-end\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"blog",children:"Blog"}),"\n",(0,s.jsx)(r.A,{name:"navbar-overview",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebar.groupByYear"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"Group sidebar blog posts by years."})]})})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n blog: {\n // highlight-start\n sidebar: {\n groupByYear: true,\n },\n // highlight-end\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h2,{id:"navbar",children:"Navbar"}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"navbar-overview",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"title"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Title for the navbar."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"logo"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"See below"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Customization of the logo object."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"items"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"NavbarItem[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"A list of navbar items. See specification below."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"hideOnScroll"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Whether the navbar is hidden when the user scrolls down."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"style"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'primary' | 'dark'"})}),(0,s.jsx)(n.td,{children:"Same as theme"}),(0,s.jsx)(n.td,{children:"Sets the navbar style, ignoring the dark/light theme."})]})]})]})}),"\n",(0,s.jsx)(n.h3,{id:"navbar-logo",children:"Navbar logo"}),"\n",(0,s.jsxs)(n.p,{children:["The logo can be placed in ",(0,s.jsx)(n.a,{href:"/docs/static-assets",children:"static folder"}),". Logo URL is set to base URL of your site by default. Although you can specify your own URL for the logo, if it is an external link, it will open in a new tab. In addition, you can override a value for the target attribute of logo link, it can come in handy if you are hosting docs website in a subdirectory of your main website, and in which case you probably do not need a link in the logo to the main website will open in a new tab."]}),"\n",(0,s.jsx)(n.p,{children:"To improve dark mode support, you can also set a different logo for this mode."}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"navbar-logo",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"alt"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Alt tag for the logo image."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"src"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"URL to the logo image. Base URL is appended by default."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"srcDark"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"logo.src"})}),(0,s.jsx)(n.td,{children:"An alternative image URL to use in dark mode."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"href"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"siteConfig.baseUrl"})}),(0,s.jsx)(n.td,{children:"Link to navigate to when the logo is clicked."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"width"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"string | number"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Specifies the ",(0,s.jsx)(n.code,{children:"width"})," attribute."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"height"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"string | number"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Specifies the ",(0,s.jsx)(n.code,{children:"height"})," attribute."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"target"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsxs)(n.td,{children:["Calculated based on ",(0,s.jsx)(n.code,{children:"href"})," (external links will open in a new tab, all others in the current one)."]}),(0,s.jsxs)(n.td,{children:["The ",(0,s.jsx)(n.code,{children:"target"})," attribute of the link; controls whether the link is opened in a new tab, the current one, or otherwise."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"className"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"CSS class applied to the image."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"style"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"object"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"CSS inline style object. React/JSX flavor, using camelCase properties."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n title: 'Site Title',\n // highlight-start\n logo: {\n alt: 'Site Logo',\n src: 'img/logo.svg',\n srcDark: 'img/logo_dark.svg',\n href: 'https://docusaurus.io/',\n target: '_self',\n width: 32,\n height: 32,\n className: 'custom-navbar-logo-class',\n style: {border: 'solid red'},\n },\n // highlight-end\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"navbar-items",children:"Navbar items"}),"\n",(0,s.jsxs)(n.p,{children:["You can add items to the navbar via ",(0,s.jsx)(n.code,{children:"themeConfig.navbar.items"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n // highlight-start\n items: [\n {\n type: 'doc',\n position: 'left',\n docId: 'introduction',\n label: 'Docs',\n },\n {to: 'blog', label: 'Blog', position: 'left'},\n {\n type: 'docsVersionDropdown',\n position: 'right',\n },\n {\n type: 'localeDropdown',\n position: 'right',\n },\n {\n href: 'https://github.com/facebook/docusaurus',\n position: 'right',\n className: 'header-github-link',\n 'aria-label': 'GitHub repository',\n },\n ],\n // highlight-end\n },\n },\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["The items can have different behaviors based on the ",(0,s.jsx)(n.code,{children:"type"})," field. The sections below will introduce you to all the types of navbar items available."]}),"\n",(0,s.jsx)(n.h4,{id:"navbar-link",children:"Navbar link"}),"\n",(0,s.jsx)(n.p,{children:"By default, Navbar items are regular links (internal or external)."}),"\n",(0,s.jsxs)(n.p,{children:["React Router should automatically apply active link styling to links, but you can use ",(0,s.jsx)(n.code,{children:"activeBasePath"})," in edge cases. For cases in which a link should be active on several different paths (such as when you have multiple doc folders under the same sidebar), you can use ",(0,s.jsx)(n.code,{children:"activeBaseRegex"}),". ",(0,s.jsx)(n.code,{children:"activeBaseRegex"})," is a more flexible alternative to ",(0,s.jsx)(n.code,{children:"activeBasePath"})," and takes precedence over it -- Docusaurus parses it into a regular expression that is tested against the current URL."]}),"\n",(0,s.jsxs)(n.p,{children:["Outbound (external) links automatically get ",(0,s.jsx)(n.code,{children:'target="_blank" rel="noopener noreferrer"'})," attributes."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"navbar-link",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"type"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'default'"})}),(0,s.jsx)(n.td,{children:"Optional"}),(0,s.jsx)(n.td,{children:"Sets the type of this item to a link."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"label"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"The name to be shown for this item."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"html"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Optional"}),(0,s.jsxs)(n.td,{children:["Same as ",(0,s.jsx)(n.code,{children:"label"}),", but renders pure HTML instead of text content."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"to"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Client-side routing, used for navigating within the website. The baseUrl will be automatically prepended to this value."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"href"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsxs)(n.td,{children:["A full-page navigation, used for navigating outside of the website. ",(0,s.jsxs)(n.strong,{children:["Only one of ",(0,s.jsx)(n.code,{children:"to"})," or ",(0,s.jsx)(n.code,{children:"href"})," should be used."]})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"prependBaseUrlToHref"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Prepends the baseUrl to ",(0,s.jsx)(n.code,{children:"href"})," values."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'left' | 'right'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'left'"})}),(0,s.jsx)(n.td,{children:"The side of the navbar this item should appear on."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"activeBasePath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"to"})," / ",(0,s.jsx)(n.code,{children:"href"})]}),(0,s.jsx)(n.td,{children:"To apply the active class styling on all routes starting with this path. This usually isn't necessary."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"activeBaseRegex"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Alternative to ",(0,s.jsx)(n.code,{children:"activeBasePath"})," if required."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"className"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"''"})}),(0,s.jsx)(n.td,{children:"Custom CSS class (for styling any item)."})]})]})]})}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsx)(n.p,{children:"In addition to the fields above, you can specify other arbitrary attributes that can be applied to a HTML link."})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n to: 'docs/introduction',\n // Only one of \"to\" or \"href\" should be used\n // href: 'https://www.facebook.com',\n label: 'Introduction',\n // Only one of \"label\" or \"html\" should be used\n // html: '<b>Introduction</b>'\n position: 'left',\n activeBaseRegex: 'docs/(next|v8)',\n target: '_blank',\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h4,{id:"navbar-dropdown",children:"Navbar dropdown"}),"\n",(0,s.jsxs)(n.p,{children:["Navbar items of the type ",(0,s.jsx)(n.code,{children:"dropdown"})," has the additional ",(0,s.jsx)(n.code,{children:"items"})," field, an inner array of navbar items."]}),"\n",(0,s.jsxs)(n.p,{children:["Navbar dropdown items only accept the following ",(0,s.jsx)(n.strong,{children:'"link-like" item types'}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#navbar-link",children:"Navbar link"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#navbar-doc-link",children:"Navbar doc link"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#navbar-docs-version",children:"Navbar docs version"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#navbar-doc-sidebar",children:"Navbar doc sidebar"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#navbar-with-custom-html",children:"Navbar with custom HTML"})}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Note that the dropdown base item is a clickable link as well, so this item can receive any of the props of a ",(0,s.jsx)(n.a,{href:"#navbar-link",children:"plain navbar link"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"navbar-dropdown",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"type"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'dropdown'"})}),(0,s.jsx)(n.td,{children:"Optional"}),(0,s.jsx)(n.td,{children:"Sets the type of this item to a dropdown."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"label"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"The name to be shown for this item."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"items"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:[(0,s.jsx)(n.a,{href:"#navbar-dropdown",children:"LinkLikeItem"}),"[]"]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"The items to be contained in the dropdown."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'left' | 'right'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'left'"})}),(0,s.jsx)(n.td,{children:"The side of the navbar this item should appear on."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'dropdown',\n label: 'Community',\n position: 'left',\n items: [\n {\n label: 'Facebook',\n href: 'https://www.facebook.com',\n },\n {\n type: 'doc',\n label: 'Social',\n docId: 'social',\n },\n // ... more items\n ],\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h4,{id:"navbar-doc-link",children:"Navbar doc link"}),"\n",(0,s.jsxs)(n.p,{children:["If you want to link to a specific doc, this special navbar item type will render the link to the doc of the provided ",(0,s.jsx)(n.code,{children:"docId"}),". It will get the class ",(0,s.jsx)(n.code,{children:"navbar__link--active"})," as long as you browse a doc of the same sidebar."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"navbar-doc-link",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"type"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'doc'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Sets the type of this item to a doc link."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docId"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"The ID of the doc that this item links to."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"label"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docId"})}),(0,s.jsx)(n.td,{children:"The name to be shown for this item."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'left' | 'right'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'left'"})}),(0,s.jsx)(n.td,{children:"The side of the navbar this item should appear on."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docsPluginId"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'default'"})}),(0,s.jsx)(n.td,{children:"The ID of the docs plugin that the doc belongs to."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'doc',\n position: 'left',\n docId: 'introduction',\n label: 'Docs',\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h4,{id:"navbar-doc-sidebar",children:"Navbar linked to a sidebar"}),"\n",(0,s.jsx)(n.p,{children:"You can link a navbar item to the first document link (which can be a doc link or a generated category index) of a given sidebar without having to hardcode a doc ID."}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"navbar-doc-sidebar",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"type"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'docSidebar'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Sets the type of this navbar item to a sidebar's first document."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebarId"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"The ID of the sidebar that this item is linked to."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"label"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"First document link's sidebar label"}),(0,s.jsx)(n.td,{children:"The name to be shown for this item."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'left' | 'right'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'left'"})}),(0,s.jsx)(n.td,{children:"The side of the navbar this item should appear on."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docsPluginId"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'default'"})}),(0,s.jsx)(n.td,{children:"The ID of the docs plugin that the sidebar belongs to."})]})]})]})}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsx)(n.p,{children:"Use this navbar item type if your sidebar is updated often and the order is not stable."})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'docSidebar',\n position: 'left',\n sidebarId: 'api',\n label: 'API',\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n tutorial: [\n {\n type: 'autogenerated',\n dirName: 'guides',\n },\n ],\n api: [\n // highlight-next-line\n 'cli', // The navbar item will be linking to this doc\n 'docusaurus-core',\n {\n type: 'autogenerated',\n dirName: 'api',\n },\n ],\n};\n"})}),"\n",(0,s.jsx)(n.h4,{id:"navbar-docs-version-dropdown",children:"Navbar docs version dropdown"}),"\n",(0,s.jsx)(n.p,{children:"If you use docs with versioning, this special navbar item type that will render a dropdown with all your site's available versions."}),"\n",(0,s.jsx)(n.p,{children:"The user will be able to switch from one version to another, while staying on the same doc (as long as the doc ID is constant across versions)."}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"navbar-docs-version-dropdown",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"type"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'docsVersionDropdown'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Sets the type of this item to a docs version dropdown."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'left' | 'right'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'left'"})}),(0,s.jsx)(n.td,{children:"The side of the navbar this item should appear on."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"dropdownItemsBefore"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:[(0,s.jsx)(n.a,{href:"#navbar-dropdown",children:"LinkLikeItem"}),"[]"]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Add additional dropdown items at the beginning of the dropdown."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"dropdownItemsAfter"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:[(0,s.jsx)(n.a,{href:"#navbar-dropdown",children:"LinkLikeItem"}),"[]"]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Add additional dropdown items at the end of the dropdown."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docsPluginId"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'default'"})}),(0,s.jsx)(n.td,{children:"The ID of the docs plugin that the doc versioning belongs to."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"dropdownActiveClassDisabled"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Do not add the link active class when browsing docs."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'docsVersionDropdown',\n position: 'left',\n dropdownItemsAfter: [{to: '/versions', label: 'All versions'}],\n dropdownActiveClassDisabled: true,\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h4,{id:"navbar-docs-version",children:"Navbar docs version"}),"\n",(0,s.jsx)(n.p,{children:"If you use docs with versioning, this special navbar item type will link to the active/browsed version of your doc (depends on the current URL), and fallback to the latest version."}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"navbar-docs-version",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"type"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'docsVersion'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Sets the type of this item to a doc version link."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"label"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The active/latest version label."}),(0,s.jsx)(n.td,{children:"The name to be shown for this item."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"to"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The active/latest version."}),(0,s.jsx)(n.td,{children:"The internal link that this item points to."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'left' | 'right'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'left'"})}),(0,s.jsx)(n.td,{children:"The side of the navbar this item should appear on."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docsPluginId"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'default'"})}),(0,s.jsx)(n.td,{children:"The ID of the docs plugin that the doc versioning belongs to."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'docsVersion',\n position: 'left',\n to: '/path',\n label: 'label',\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h4,{id:"navbar-locale-dropdown",children:"Navbar locale dropdown"}),"\n",(0,s.jsxs)(n.p,{children:["If you use the ",(0,s.jsx)(n.a,{href:"/docs/i18n/introduction",children:"i18n feature"}),", this special navbar item type will render a dropdown with all your site's available locales."]}),"\n",(0,s.jsx)(n.p,{children:"The user will be able to switch from one locale to another, while staying on the same page."}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"navbar-locale-dropdown",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"type"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'localeDropdown'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Sets the type of this item to a locale dropdown."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'left' | 'right'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'left'"})}),(0,s.jsx)(n.td,{children:"The side of the navbar this item should appear on."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"dropdownItemsBefore"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:[(0,s.jsx)(n.a,{href:"#navbar-dropdown",children:"LinkLikeItem"}),"[]"]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Add additional dropdown items at the beginning of the dropdown."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"dropdownItemsAfter"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:[(0,s.jsx)(n.a,{href:"#navbar-dropdown",children:"LinkLikeItem"}),"[]"]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Add additional dropdown items at the end of the dropdown."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"queryString"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"The query string to be appended to the URL."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'localeDropdown',\n position: 'left',\n dropdownItemsAfter: [\n {\n to: 'https://my-site.com/help-us-translate',\n label: 'Help us translate',\n },\n ],\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h4,{id:"navbar-search",children:"Navbar search"}),"\n",(0,s.jsxs)(n.p,{children:["If you use the ",(0,s.jsx)(n.a,{href:"/docs/search",children:"search"}),", the search bar will be the rightmost element in the navbar."]}),"\n",(0,s.jsx)(n.p,{children:"However, with this special navbar item type, you can change the default location."}),"\n",(0,s.jsx)(r.A,{name:"navbar-search",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"type"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'search'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Sets the type of this item to a search bar."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'left' | 'right'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'left'"})}),(0,s.jsx)(n.td,{children:"The side of the navbar this item should appear on."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"className"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"/"}),(0,s.jsx)(n.td,{children:"Custom CSS class for this navbar item."})]})]})]})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'search',\n position: 'right',\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h4,{id:"navbar-with-custom-html",children:"Navbar with custom HTML"}),"\n",(0,s.jsx)(n.p,{children:"You can also render your own HTML markup inside a navbar item using this navbar item type."}),"\n",(0,s.jsx)(r.A,{name:"navbar-html",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"type"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'html'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Sets the type of this item to a HTML element."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'left' | 'right'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'left'"})}),(0,s.jsx)(n.td,{children:"The side of the navbar this item should appear on."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"className"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"''"})}),(0,s.jsx)(n.td,{children:"Custom CSS class for this navbar item."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"value"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"''"})}),(0,s.jsx)(n.td,{children:"Custom HTML to be rendered inside this navbar item."})]})]})]})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'html',\n position: 'right',\n value: '<button>Give feedback</button>',\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"auto-hide-sticky-navbar",children:"Auto-hide sticky navbar"}),"\n",(0,s.jsx)(n.p,{children:"You can enable this cool UI feature that automatically hides the navbar when a user starts scrolling down the page, and show it again when the user scrolls up."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n // highlight-next-line\n hideOnScroll: true,\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"navbar-style",children:"Navbar style"}),"\n",(0,s.jsx)(n.p,{children:"You can set the static Navbar style without disabling the theme switching ability. The selected style will always apply no matter which theme user have selected."}),"\n",(0,s.jsxs)(n.p,{children:["Currently, there are two possible style options: ",(0,s.jsx)(n.code,{children:"dark"})," and ",(0,s.jsx)(n.code,{children:"primary"})," (based on the ",(0,s.jsx)(n.code,{children:"--ifm-color-primary"})," color). You can see the styles preview in the ",(0,s.jsx)(n.a,{href:"https://infima.dev/docs/components/navbar/",children:"Infima documentation"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n // highlight-next-line\n style: 'primary',\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h2,{id:"codeblock",children:"CodeBlock"}),"\n",(0,s.jsxs)(n.p,{children:["Docusaurus uses ",(0,s.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer",children:"Prism React Renderer"})," to highlight code blocks. All configuration are in the ",(0,s.jsx)(n.code,{children:"prism"})," object."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"codeblock",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"theme"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"PrismTheme"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"palenight"})}),(0,s.jsx)(n.td,{children:"The Prism theme to use for light-theme code blocks."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"darkTheme"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"PrismTheme"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"palenight"})}),(0,s.jsx)(n.td,{children:"The Prism theme to use for dark-theme code blocks."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"defaultLanguage"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"The default language to use for code blocks not declaring any explicit language."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"magicComments"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"MagicCommentConfig[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"see below"})}),(0,s.jsxs)(n.td,{children:["The list of ",(0,s.jsx)(n.a,{href:"/docs/markdown-features/code-blocks#custom-magic-comments",children:"magic comments"}),"."]})]})]})]})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type MagicCommentConfig = {\n className: string;\n line?: string;\n block?: {start: string; end: string};\n};\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"const defaultMagicComments = [\n {\n className: 'theme-code-block-highlighted-line',\n line: 'highlight-next-line',\n block: {start: 'highlight-start', end: 'highlight-end'},\n },\n];\n"})}),"\n",(0,s.jsx)(n.h3,{id:"theme",children:"Theme"}),"\n",(0,s.jsxs)(n.p,{children:["By default, we use ",(0,s.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer/blob/master/packages/prism-react-renderer/src/themes/palenight.ts",children:"Palenight"})," as syntax highlighting theme. You can specify a custom theme from the ",(0,s.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer/tree/master/packages/prism-react-renderer/src/themes",children:"list of available themes"}),". You may also use a different syntax highlighting theme when the site is in dark mode."]}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"import {themes as prismThemes} from 'prism-react-renderer';\n\nexport default {\n themeConfig: {\n prism: {\n // highlight-start\n theme: prismThemes.github,\n darkTheme: prismThemes.dracula,\n // highlight-end\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["If you use the line highlighting Markdown syntax, you might need to specify a different highlight background color for the dark mode syntax highlighting theme. Refer to the ",(0,s.jsx)(n.a,{href:"/docs/markdown-features/code-blocks#line-highlighting",children:"docs for guidance"}),"."]})}),"\n",(0,s.jsx)(n.h3,{id:"default-language",children:"Default language"}),"\n",(0,s.jsxs)(n.p,{children:["You can set a default language for code blocks if no language is added after the opening triple backticks (i.e. ```). Note that a valid ",(0,s.jsx)(n.a,{href:"https://prismjs.com/#supported-languages",children:"language name"})," must be passed."]}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n prism: {\n // highlight-next-line\n defaultLanguage: 'javascript',\n },\n },\n};\n"})}),"\n",(0,s.jsx)(n.h2,{id:"footer-1",children:"Footer"}),"\n",(0,s.jsxs)(n.p,{children:["You can add logo and a copyright to the footer via ",(0,s.jsx)(n.code,{children:"themeConfig.footer"}),". Logo can be placed in ",(0,s.jsx)(n.a,{href:"/docs/static-assets",children:"static folder"}),". Logo URL works in the same way of the navbar logo."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(r.A,{name:"footer",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"logo"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Logo"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Customization of the logo object. See ",(0,s.jsx)(n.a,{href:"#navbar-logo",children:"Navbar logo"})," for details."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"copyright"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"The copyright message to be displayed at the bottom, also supports custom HTML."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"style"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'dark' | 'light'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'light'"})}),(0,s.jsx)(n.td,{children:"The color theme of the footer component."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"links"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"(Column | FooterLink)[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"The link groups to be present."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n // highlight-start\n footer: {\n logo: {\n alt: 'Meta Open Source Logo',\n src: 'img/meta_oss_logo.png',\n href: 'https://opensource.fb.com',\n width: 160,\n height: 51,\n },\n copyright: `Copyright \xa9 ${new Date().getFullYear()} My Project, Inc. Built with Docusaurus.`,\n },\n // highlight-end\n },\n};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"footer-links",children:"Footer Links"}),"\n",(0,s.jsxs)(n.p,{children:["You can add links to the footer via ",(0,s.jsx)(n.code,{children:"themeConfig.footer.links"}),". There are two types of footer configurations: ",(0,s.jsx)(n.strong,{children:"multi-column footers"})," and ",(0,s.jsx)(n.strong,{children:"simple footers"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Multi-column footer links have a ",(0,s.jsx)(n.code,{children:"title"})," and a list of ",(0,s.jsx)(n.code,{children:"FooterItem"}),"s for each column."]}),"\n",(0,s.jsx)(r.A,{name:"footer-links",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"title"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Label of the section of these links."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"items"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"FooterItem[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Links in this section."})]})]})]})}),"\n",(0,s.jsxs)(n.p,{children:["Accepted fields of each ",(0,s.jsx)(n.code,{children:"FooterItem"}),":"]}),"\n",(0,s.jsx)(r.A,{name:"footer-items",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"label"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Text to be displayed for this link."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"to"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsx)(n.td,{children:"Client-side routing, used for navigating within the website. The baseUrl will be automatically prepended to this value."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"href"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsxs)(n.td,{children:["A full-page navigation, used for navigating outside of the website. ",(0,s.jsxs)(n.strong,{children:["Only one of ",(0,s.jsx)(n.code,{children:"to"})," or ",(0,s.jsx)(n.code,{children:"href"})," should be used."]})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"html"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Renders the HTML pass-through instead of a simple link. In case ",(0,s.jsx)(n.code,{children:"html"})," is used, no other options should be provided."]})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example multi-column configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n footer: {\n // highlight-start\n links: [\n {\n title: 'Docs',\n items: [\n {\n label: 'Style Guide',\n to: 'docs/',\n },\n {\n label: 'Second Doc',\n to: 'docs/doc2/',\n },\n ],\n },\n {\n title: 'Community',\n items: [\n {\n label: 'Stack Overflow',\n href: 'https://stackoverflow.com/questions/tagged/docusaurus',\n },\n {\n label: 'Discord',\n href: 'https://discordapp.com/invite/docusaurus',\n },\n {\n label: 'X',\n href: 'https://x.com/docusaurus',\n },\n {\n html: `\n <a href=\"https://www.netlify.com\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Deploys by Netlify\">\n <img src=\"https://www.netlify.com/img/global/badges/netlify-color-accent.svg\" alt=\"Deploys by Netlify\" width=\"114\" height=\"51\" />\n </a>\n `,\n },\n ],\n },\n ],\n // highlight-end\n },\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["A simple footer just has a list of ",(0,s.jsx)(n.code,{children:"FooterItem"}),"s displayed in a row."]}),"\n",(0,s.jsx)(n.p,{children:"Example simple configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:'export default {\n footer: {\n // highlight-start\n links: [\n {\n label: \'Stack Overflow\',\n href: \'https://stackoverflow.com/questions/tagged/docusaurus\',\n },\n {\n label: \'Discord\',\n href: \'https://discordapp.com/invite/docusaurus\',\n },\n {\n label: \'X\',\n href: \'https://x.com/docusaurus\',\n },\n {\n html: `\n <a href="https://www.netlify.com" target="_blank" rel="noreferrer noopener" aria-label="Deploys by Netlify">\n <img src="https://www.netlify.com/img/global/badges/netlify-color-accent.svg" alt="Deploys by Netlify" width="114" height="51" />\n </a>\n `,\n },\n ],\n // highlight-end\n },\n};\n'})}),"\n",(0,s.jsx)(n.h2,{id:"table-of-contents",children:"Table of Contents"}),"\n",(0,s.jsxs)(n.p,{children:["You can adjust the default table of contents via ",(0,s.jsx)(n.code,{children:"themeConfig.tableOfContents"}),"."]}),"\n",(0,s.jsx)(r.A,{children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"minHeadingLevel"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"number"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"2"})}),(0,s.jsx)(n.td,{children:"The minimum heading level shown in the table of contents. Must be between 2 and 6 and lower or equal to the max value."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"maxHeadingLevel"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"number"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"3"})}),(0,s.jsx)(n.td,{children:"Max heading level displayed in the TOC. Should be an integer between 2 and 6."})]})]})]})}),"\n",(0,s.jsx)(n.p,{children:"Example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n // highlight-start\n tableOfContents: {\n minHeadingLevel: 2,\n maxHeadingLevel: 5,\n },\n // highlight-end\n },\n};\n"})}),"\n",(0,s.jsx)(n.h2,{id:"hooks",children:"Hooks"}),"\n",(0,s.jsx)(n.h3,{id:"use-color-mode",children:(0,s.jsx)(n.code,{children:"useColorMode"})}),"\n",(0,s.jsx)(n.p,{children:"A React hook to access the color context. This context contains functions for setting light and dark mode and exposes boolean variable, indicating which mode is currently in use."}),"\n",(0,s.jsx)(n.p,{children:"Usage example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\n// highlight-next-line\nimport {useColorMode} from '@docusaurus/theme-common';\n\nconst Example = () => {\n // highlight-next-line\n const {colorMode, setColorMode} = useColorMode();\n\n return <h1>Dark mode is now {colorMode === 'dark' ? 'on' : 'off'}</h1>;\n};\n"})}),"\n",(0,s.jsxs)(n.admonition,{type:"note",children:[(0,s.jsxs)(n.p,{children:["The component calling ",(0,s.jsx)(n.code,{children:"useColorMode"})," must be a child of the ",(0,s.jsx)(n.code,{children:"Layout"})," component."]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:"function ExamplePage() {\n return (\n <Layout>\n <Example />\n </Layout>\n );\n}\n"})})]}),"\n",(0,s.jsx)(n.h2,{id:"i18n",children:"i18n"}),"\n",(0,s.jsxs)(n.p,{children:["Read the ",(0,s.jsx)(n.a,{href:"/docs/i18n/introduction",children:"i18n introduction"})," first."]}),"\n",(0,s.jsx)(n.h3,{id:"translation-files-location",children:"Translation files location"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Base path"}),": ",(0,s.jsx)(n.code,{children:"website/i18n/[locale]/docusaurus-theme-[themeName]"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Multi-instance path"}),": N/A"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"JSON files"}),": extracted with ",(0,s.jsx)(n.a,{href:"/docs/cli#docusaurus-write-translations-sitedir",children:(0,s.jsx)(n.code,{children:"docusaurus write-translations"})})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Markdown files"}),": N/A"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"example-file-system-structure",children:"Example file-system structure"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"website/i18n/[locale]/docusaurus-theme-classic\n\u2502\n\u2502 # translations for the theme\n\u251C\u2500\u2500 navbar.json\n\u2514\u2500\u2500 footer.json\n"})})]})}function x(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},43023:(e,n,d)=>{d.d(n,{R:()=>r,x:()=>l});var i=d(63696);let s={},t=i.createContext(s);function r(e){let n=i.useContext(t);return i.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:r(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/048b0d50.068a8c27.js b/assets/js/048b0d50.068a8c27.js deleted file mode 100644 index a5ce363250..0000000000 --- a/assets/js/048b0d50.068a8c27.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[63134],{15995:(e,n,t)=>{t.d(n,{A:()=>i});var a=t(62540);t(63696);var r=t(11750);function i({children:e,hidden:n,className:t}){return(0,a.jsx)("div",{role:"tabpanel",className:(0,r.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>x});var a=t(62540),r=t(63696),i=t(11750),o=t(7846),s=t(49519),l=t(96439),c=t(19739),d=t(66904),u=t(79244);function m(e){var n,t;return null!==(t=null===(n=r.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function h({value:e,tabValues:n}){return n.some(n=>n.value===e)}var p=t(10709);function g(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},a=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.forEach(function(n){var a;a=t[n],n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a})}return e}function f(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t.push.apply(t,a)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function v({className:e,block:n,selectedValue:t,selectValue:r,tabValues:s}){let l=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.a_)(),d=e=>{let n=e.currentTarget,a=s[l.indexOf(n)].value;a!==t&&(c(n),r(a))},u=e=>{var n,t;let a=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let t=l.indexOf(e.currentTarget)+1;a=null!==(n=l[t])&&void 0!==n?n:l[0];break}case"ArrowLeft":{let n=l.indexOf(e.currentTarget)-1;a=null!==(t=l[n])&&void 0!==t?t:l[l.length-1]}}null==a||a.focus()};return(0,a.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.A)("tabs",{"tabs--block":n},e),children:s.map(({value:e,label:n,attributes:r})=>(0,a.jsx)("li",f(g({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>l.push(e),onKeyDown:u,onClick:d},r),{className:(0,i.A)("tabs__item","tabItem_AQgk",null==r?void 0:r.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function b({lazy:e,children:n,selectedValue:t}){let o=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=o.find(e=>e.props.value===t);return e?(0,r.cloneElement)(e,{className:(0,i.A)("margin-top--md",e.props.className)}):null}return(0,a.jsx)("div",{className:"margin-top--md",children:o.map((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function y(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:a}=e,i=function(e){let{values:n,children:t}=e;return(0,r.useMemo)(()=>{let e=null!=n?n:m(t).map(({props:{value:e,label:n,attributes:t,default:a}})=>({value:e,label:n,attributes:t,default:a}));return!function(e){let n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[o,p]=(0,r.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!h({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let a=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!a)throw Error("Unexpected error: 0 tabValues");return a.value})({defaultValue:n,tabValues:i})),[g,f]=function({queryString:e=!1,groupId:n}){let t=(0,s.W6)(),a=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,c.aZ)(a),(0,r.useCallback)(e=>{var n,r;if(!a)return;let i=new URLSearchParams(t.location.search);i.set(a,e),t.replace((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},a=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.forEach(function(n){var a;a=t[n],n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a})}return e}({},t.location),r=r={search:i.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t.push.apply(t,a)}return t})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n))},[a,t])]}({queryString:t,groupId:a}),[v,b]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[t,a]=(0,u.Dv)(n);return[t,(0,r.useCallback)(e=>{n&&a.set(e)},[n,a])]}({groupId:a}),y=(()=>{let e=null!=g?g:v;return h({value:e,tabValues:i})?e:null})();return(0,l.A)(()=>{y&&p(y)},[y]),{selectedValue:o,selectValue:(0,r.useCallback)(e=>{if(!h({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);p(e),f(e),b(e)},[f,b,i]),tabValues:i}}(e);return(0,a.jsxs)("div",{className:(0,i.A)("tabs-container","tabList_Qoir"),children:[(0,a.jsx)(v,g({},n,e)),(0,a.jsx)(b,g({},n,e))]})}function x(e){let n=(0,p.A)();return(0,a.jsx)(y,f(g({},e),{children:m(e.children)}),String(n))}},88359:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>u});let a=JSON.parse('{"type":"mdx","permalink":"/tests/pages/diagrams","source":"@site/_dogfooding/_pages tests/diagrams.mdx","title":"Diagram Examples","description":"Invalid Diagrams","frontMatter":{},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/diagrams.mdx","unlisted":false}');var r=t(62540),i=t(43023),o=t(27446),s=t(15995);let l={},c="Diagram Examples",d={},u=[{value:"Invalid Diagrams",id:"invalid-diagrams",level:2},{value:"Invalid type",id:"invalid-type",level:3},{value:"Invalid content",id:"invalid-content",level:3},{value:"Sequence Diagram",id:"sequence-diagram",level:2},{value:"Sequence Diagram (forest theme directive)",id:"sequence-diagram-forest-theme-directive",level:2},{value:"Gantt Chart",id:"gantt-chart",level:2},{value:"Flow Chart",id:"flow-chart",level:2},{value:"With Markdown:",id:"with-markdown",level:3},{value:"Class Diagram",id:"class-diagram",level:2},{value:"State Diagram",id:"state-diagram",level:2},{value:"Entity Relationship Diagram",id:"entity-relationship-diagram",level:2},{value:"User Journey",id:"user-journey",level:2},{value:"Pie Chart",id:"pie-chart",level:2},{value:"Requirement Diagram",id:"requirement-diagram",level:2},{value:"Gitgraph (Git) Diagram",id:"gitgraph-git-diagram",level:2},{value:"Mermaid in tabs",id:"mermaid-in-tabs",level:2},{value:"Mindmap",id:"mindmap",level:2},{value:"Quadrant Chart",id:"quadrant-chart",level:2}];function m(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",mermaid:"mermaid",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"diagram-examples",children:"Diagram Examples"})}),"\n",(0,r.jsx)(n.h2,{id:"invalid-diagrams",children:"Invalid Diagrams"}),"\n",(0,r.jsx)(n.p,{children:"Those errors should not crash the whole page"}),"\n",(0,r.jsx)(n.h3,{id:"invalid-type",children:"Invalid type"}),"\n",(0,r.jsx)(n.mermaid,{value:"badType\n participant Alice\n participant Bob"}),"\n",(0,r.jsx)(n.h3,{id:"invalid-content",children:"Invalid content"}),"\n",(0,r.jsx)(n.mermaid,{value:"sequenceDiagram\n badInstruction Alice\n participant Bob"}),"\n",(0,r.jsx)(n.h2,{id:"sequence-diagram",children:"Sequence Diagram"}),"\n",(0,r.jsx)(n.mermaid,{value:"sequenceDiagram\n participant Alice\n participant Bob\n Alice->>John: Hello John, how are you?\n loop Health check\n John->>John: Fight against hypochondria\n end\n Note right of John: Rational thoughts <br/>prevail!\n John-->>Alice: Great!\n John->>Bob: How about you?\n Bob-->>John: Jolly good!"}),"\n",(0,r.jsx)(n.h2,{id:"sequence-diagram-forest-theme-directive",children:"Sequence Diagram (forest theme directive)"}),"\n",(0,r.jsx)(n.p,{children:"It is possible to override default config locally with Mermaid text directives such as:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:'%%{init: { "theme": "forest" } }%%\n'})}),"\n",(0,r.jsx)(n.mermaid,{value:'%%{init: { "theme": "forest" } }%%\n\nsequenceDiagram\n participant Alice\n participant Bob\n Alice->>John: Hello John, how are you?\n loop Health check\n John->>John: Fight against hypochondria\n end\n Note right of John: Rational thoughts <br/>prevail!\n John-->>Alice: Great!\n John->>Bob: How about you?\n Bob-->>John: Jolly good!'}),"\n",(0,r.jsx)(n.h2,{id:"gantt-chart",children:"Gantt Chart"}),"\n",(0,r.jsx)(n.mermaid,{value:"gantt\ndateFormat YYYY-MM-DD\ntitle Adding GANTT diagram to mermaid\nexcludes weekdays 2014-01-10\n\nsection A section\nCompleted task :done, des1, 2014-01-06,2014-01-08\nActive task :active, des2, 2014-01-09, 3d\nFuture task : des3, after des2, 5d\nFuture task2 : des4, after des3, 5d"}),"\n",(0,r.jsx)(n.h2,{id:"flow-chart",children:"Flow Chart"}),"\n",(0,r.jsx)(n.mermaid,{value:"flowchart TD\n A[Start] --> B{Is it?}\n B -->|Yes| C[OK]\n C --> D[Rethink]\n D --> B\n B ---->|No| E[End]"}),"\n",(0,r.jsx)(n.h3,{id:"with-markdown",children:"With Markdown:"}),"\n",(0,r.jsx)(n.mermaid,{value:'flowchart LR\n markdown["`This **is** _Markdown_`"]\n newLines["`Line1\n Line 2\n Line 3`"]\n markdown --> newLines'}),"\n",(0,r.jsx)(n.h2,{id:"class-diagram",children:"Class Diagram"}),"\n",(0,r.jsx)(n.mermaid,{value:" classDiagram\n Animal <|-- Duck\n Animal <|-- Fish\n Animal <|-- Zebra\n Animal : +int age\n Animal : +String gender\n Animal: +isMammal()\n Animal: +mate()\n class Duck{\n +String beakColor\n +swim()\n +quack()\n }\n class Fish{\n -int sizeInFeet\n -canEat()\n }\n class Zebra{\n +bool is_wild\n +run()\n }"}),"\n",(0,r.jsx)(n.h2,{id:"state-diagram",children:"State Diagram"}),"\n",(0,r.jsx)(n.mermaid,{value:"stateDiagram-v2\n [*] --> Active\n\n state Active {\n [*] --> NumLockOff\n NumLockOff --> NumLockOn : EvNumLockPressed\n NumLockOn --> NumLockOff : EvNumLockPressed\n --\n [*] --> CapsLockOff\n CapsLockOff --> CapsLockOn : EvCapsLockPressed\n CapsLockOn --> CapsLockOff : EvCapsLockPressed\n --\n [*] --> ScrollLockOff\n ScrollLockOff --> ScrollLockOn : EvScrollLockPressed\n ScrollLockOn --> ScrollLockOff : EvScrollLockPressed\n }"}),"\n",(0,r.jsx)(n.h2,{id:"entity-relationship-diagram",children:"Entity Relationship Diagram"}),"\n",(0,r.jsx)(n.mermaid,{value:"erDiagram\n CAR ||--o{ NAMED-DRIVER : allows\n CAR {\n string registrationNumber\n string make\n string model\n }\n PERSON ||--o{ NAMED-DRIVER : is\n PERSON {\n string firstName\n string lastName\n int age\n }"}),"\n",(0,r.jsx)(n.h2,{id:"user-journey",children:"User Journey"}),"\n",(0,r.jsx)(n.mermaid,{value:"journey\n title My working day\n section Go to work\n Make tea: 5: Me\n Go upstairs: 3: Me\n Do work: 1: Me, Cat\n section Go home\n Go downstairs: 5: Me\n Sit down: 5: Me"}),"\n",(0,r.jsx)(n.admonition,{type:"note",children:(0,r.jsxs)(n.p,{children:["If there's too much space above it's due to a ",(0,r.jsx)(n.a,{href:"https://github.com/mermaid-js/mermaid/issues/3501",children:"Mermaid bug"})]})}),"\n",(0,r.jsx)(n.h2,{id:"pie-chart",children:"Pie Chart"}),"\n",(0,r.jsx)(n.mermaid,{value:'pie showData\n title Key elements in Product X\n "Calcium" : 42.96\n "Potassium" : 50.05\n "Magnesium" : 10.01\n "Iron" : 5'}),"\n",(0,r.jsx)(n.h2,{id:"requirement-diagram",children:"Requirement Diagram"}),"\n",(0,r.jsx)(n.mermaid,{value:' requirementDiagram\n\n requirement test_req {\n id: 1\n text: the test text.\n risk: high\n verifymethod: test\n }\n\n functionalRequirement test_req2 {\n id: 1.1\n text: the second test text.\n risk: low\n verifymethod: inspection\n }\n\n performanceRequirement test_req3 {\n id: 1.2\n text: the third test text.\n risk: medium\n verifymethod: demonstration\n }\n\n interfaceRequirement test_req4 {\n id: 1.2.1\n text: the fourth test text.\n risk: medium\n verifymethod: analysis\n }\n\n physicalRequirement test_req5 {\n id: 1.2.2\n text: the fifth test text.\n risk: medium\n verifymethod: analysis\n }\n\n designConstraint test_req6 {\n id: 1.2.3\n text: the sixth test text.\n risk: medium\n verifymethod: analysis\n }\n\n element test_entity {\n type: simulation\n }\n\n element test_entity2 {\n type: word doc\n docRef: reqs/test_entity\n }\n\n element test_entity3 {\n type: "test suite"\n docRef: github.com/all_the_tests\n }\n\n\n test_entity - satisfies -> test_req2\n test_req - traces -> test_req2\n test_req - contains -> test_req3\n test_req3 - contains -> test_req4\n test_req4 - derives -> test_req5\n test_req5 - refines -> test_req6\n test_entity3 - verifies -> test_req5\n test_req <- copies - test_entity2'}),"\n",(0,r.jsx)(n.h2,{id:"gitgraph-git-diagram",children:"Gitgraph (Git) Diagram"}),"\n",(0,r.jsx)(n.mermaid,{value:"%%{init: { 'logLevel': 'debug', 'theme': 'base' } }%%\n gitGraph\n commit\n branch hotfix\n checkout hotfix\n commit\n branch develop\n checkout develop\n commit id:\"ash\" tag:\"abc\"\n branch featureB\n checkout featureB\n commit type:HIGHLIGHT\n checkout main\n checkout hotfix\n commit type:NORMAL\n checkout develop\n commit type:REVERSE\n checkout featureB\n commit\n checkout main\n merge hotfix\n checkout featureB\n commit\n checkout develop\n branch featureA\n commit\n checkout develop\n merge hotfix\n checkout featureA\n commit\n checkout featureB\n commit\n checkout develop\n merge featureA\n branch release\n checkout release\n commit\n checkout main\n commit\n checkout release\n merge main\n checkout develop\n merge release"}),"\n",(0,r.jsx)(n.h2,{id:"mermaid-in-tabs",children:"Mermaid in tabs"}),"\n","\n",(0,r.jsxs)(o.A,{children:[(0,r.jsxs)(s.A,{value:"tab-a",children:[(0,r.jsx)(n.p,{children:"The following mermaid diagram is shown:"}),(0,r.jsx)(n.mermaid,{value:"graph LR\n a ---> c(10)\n b ---> c(10)"})]}),(0,r.jsxs)(s.A,{value:"tab-b",children:[(0,r.jsx)(n.p,{children:"This mermaid diagram is not displayed:"}),(0,r.jsx)(n.mermaid,{value:"graph LR\n d ---> z(42)\n e ---> z(42)"})]})]}),"\n",(0,r.jsx)(n.h2,{id:"mindmap",children:"Mindmap"}),"\n",(0,r.jsx)(n.mermaid,{value:"mindmap\n root((conda-forge))\n (Repos)\n (Package building)\n [*-feedstock]\n [staged-recipes]\n [cdt-builds]\n [msys2-recipes]\n (Maintenance)\n [admin-requests]\n [repodata-patches]\n (Configuration)\n [.github]\n [.cirun]\n [conda-forge-pinning]\n [conda-forge-ci-setup]\n [docker-images]\n [conda-smithy]\n (Automations)\n [admin-migrations]\n [artifact-validation]\n [regro/cf-scripts]\n [conda-forge-webservices]\n [regro/cf-graph-countyfair]\n [regro/libcfgraph + regro/libcflib]\n [feedstock-outputs]\n (Communications)\n [conda-forge.github.io]\n [blog]\n [status]\n [by-the-numbers]\n [conda-forge-status-monitor]\n [feedstocks]\n (Bots & apps)\n [conda-forge-admin]\n [conda-forge-bot]\n [conda-forge-coordinator]\n [conda-forge-daemon]\n [conda-forge-linter]\n [conda-forge-manager]\n [conda-forge-status]\n [regro-cf-autotick-bot]\n [conda-forge-curator]\n [conda-forge-webservices]\n (Delivery)\n [anaconda.org]\n [ghcr.io]\n [quay.io]\n (Installers)\n Miniforge\n Mambaforge\n (CI for builds)\n Azure Pipelines\n Travis CI\n cirun.io\n (Infra)\n Heroku\n Github Actions\n Circle CI"}),"\n",(0,r.jsx)(n.h2,{id:"quadrant-chart",children:"Quadrant Chart"}),"\n",(0,r.jsx)(n.mermaid,{value:"quadrantChart\n title Reach and engagement of campaigns\n x-axis Low Reach --> High Reach\n y-axis Low Engagement --> High Engagement\n quadrant-1 We should expand\n quadrant-2 Need to promote\n quadrant-3 Re-evaluate\n quadrant-4 May be improved\n Campaign A: [0.3, 0.6]\n Campaign B: [0.45, 0.23]\n Campaign C: [0.57, 0.69]\n Campaign D: [0.78, 0.34]\n Campaign E: [0.40, 0.34]\n Campaign F: [0.35, 0.78]"})]})}function h(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(m,{...e})}):m(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>s});var a=t(63696);let r={},i=a.createContext(r);function o(e){let n=a.useContext(i);return a.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/048b0d50.76a766f5.js b/assets/js/048b0d50.76a766f5.js new file mode 100644 index 0000000000..42d980a63a --- /dev/null +++ b/assets/js/048b0d50.76a766f5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[63134],{15995:(e,n,t)=>{t.d(n,{A:()=>i});var a=t(62540);t(63696);var r=t(11750);function i({children:e,hidden:n,className:t}){return(0,a.jsx)("div",{role:"tabpanel",className:(0,r.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>x});var a=t(62540),r=t(63696),i=t(11750),o=t(7846),s=t(49519),l=t(96439),c=t(19739),d=t(66904),u=t(79244);function m(e){var n,t;return null!==(t=null===(n=r.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function h({value:e,tabValues:n}){return n.some(n=>n.value===e)}var p=t(10709);function g(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},a=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.forEach(function(n){var a;a=t[n],n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a})}return e}function f(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t.push.apply(t,a)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function v({className:e,block:n,selectedValue:t,selectValue:r,tabValues:s}){let l=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.a_)(),d=e=>{let n=e.currentTarget,a=s[l.indexOf(n)].value;a!==t&&(c(n),r(a))},u=e=>{var n,t;let a=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let t=l.indexOf(e.currentTarget)+1;a=null!==(n=l[t])&&void 0!==n?n:l[0];break}case"ArrowLeft":{let n=l.indexOf(e.currentTarget)-1;a=null!==(t=l[n])&&void 0!==t?t:l[l.length-1]}}null==a||a.focus()};return(0,a.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.A)("tabs",{"tabs--block":n},e),children:s.map(({value:e,label:n,attributes:r})=>(0,a.jsx)("li",f(g({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>l.push(e),onKeyDown:u,onClick:d},r),{className:(0,i.A)("tabs__item","tabItem_AQgk",null==r?void 0:r.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function b({lazy:e,children:n,selectedValue:t}){let o=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=o.find(e=>e.props.value===t);return e?(0,r.cloneElement)(e,{className:(0,i.A)("margin-top--md",e.props.className)}):null}return(0,a.jsx)("div",{className:"margin-top--md",children:o.map((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function y(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:a}=e,i=function(e){let{values:n,children:t}=e;return(0,r.useMemo)(()=>{let e=null!=n?n:m(t).map(({props:{value:e,label:n,attributes:t,default:a}})=>({value:e,label:n,attributes:t,default:a}));return!function(e){let n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[o,p]=(0,r.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!h({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let a=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!a)throw Error("Unexpected error: 0 tabValues");return a.value})({defaultValue:n,tabValues:i})),[g,f]=function({queryString:e=!1,groupId:n}){let t=(0,s.W6)(),a=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,c.aZ)(a),(0,r.useCallback)(e=>{var n,r;if(!a)return;let i=new URLSearchParams(t.location.search);i.set(a,e),t.replace((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},a=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.forEach(function(n){var a;a=t[n],n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a})}return e}({},t.location),r=r={search:i.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t.push.apply(t,a)}return t})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n))},[a,t])]}({queryString:t,groupId:a}),[v,b]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[t,a]=(0,u.Dv)(n);return[t,(0,r.useCallback)(e=>{n&&a.set(e)},[n,a])]}({groupId:a}),y=(()=>{let e=null!=g?g:v;return h({value:e,tabValues:i})?e:null})();return(0,l.A)(()=>{y&&p(y)},[y]),{selectedValue:o,selectValue:(0,r.useCallback)(e=>{if(!h({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);p(e),f(e),b(e)},[f,b,i]),tabValues:i}}(e);return(0,a.jsxs)("div",{className:(0,i.A)("tabs-container","tabList_Qoir"),children:[(0,a.jsx)(v,g({},n,e)),(0,a.jsx)(b,g({},n,e))]})}function x(e){let n=(0,p.A)();return(0,a.jsx)(y,f(g({},e),{children:m(e.children)}),String(n))}},88359:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>u});let a=JSON.parse('{"type":"mdx","permalink":"/tests/pages/diagrams","source":"@site/_dogfooding/_pages tests/diagrams.mdx","title":"Diagram Examples","description":"Invalid Diagrams","frontMatter":{},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/diagrams.mdx","unlisted":false}');var r=t(62540),i=t(43023),o=t(27446),s=t(15995);let l={},c="Diagram Examples",d={},u=[{value:"Invalid Diagrams",id:"invalid-diagrams",level:2},{value:"Invalid type",id:"invalid-type",level:3},{value:"Invalid content",id:"invalid-content",level:3},{value:"Sequence Diagram",id:"sequence-diagram",level:2},{value:"Sequence Diagram (forest theme directive)",id:"sequence-diagram-forest-theme-directive",level:2},{value:"Gantt Chart",id:"gantt-chart",level:2},{value:"Flow Chart",id:"flow-chart",level:2},{value:"With Markdown:",id:"with-markdown",level:3},{value:"Class Diagram",id:"class-diagram",level:2},{value:"State Diagram",id:"state-diagram",level:2},{value:"Entity Relationship Diagram",id:"entity-relationship-diagram",level:2},{value:"User Journey",id:"user-journey",level:2},{value:"Pie Chart",id:"pie-chart",level:2},{value:"Requirement Diagram",id:"requirement-diagram",level:2},{value:"Gitgraph (Git) Diagram",id:"gitgraph-git-diagram",level:2},{value:"Mermaid in tabs",id:"mermaid-in-tabs",level:2},{value:"Mindmap",id:"mindmap",level:2},{value:"Quadrant Chart",id:"quadrant-chart",level:2},{value:"Architecture Diagram",id:"architecture-diagram",level:2}];function m(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",mermaid:"mermaid",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"diagram-examples",children:"Diagram Examples"})}),"\n",(0,r.jsx)(n.h2,{id:"invalid-diagrams",children:"Invalid Diagrams"}),"\n",(0,r.jsx)(n.p,{children:"Those errors should not crash the whole page"}),"\n",(0,r.jsx)(n.h3,{id:"invalid-type",children:"Invalid type"}),"\n",(0,r.jsx)(n.mermaid,{value:"badType\n participant Alice\n participant Bob"}),"\n",(0,r.jsx)(n.h3,{id:"invalid-content",children:"Invalid content"}),"\n",(0,r.jsx)(n.mermaid,{value:"sequenceDiagram\n badInstruction Alice\n participant Bob"}),"\n",(0,r.jsx)(n.h2,{id:"sequence-diagram",children:"Sequence Diagram"}),"\n",(0,r.jsx)(n.mermaid,{value:"sequenceDiagram\n participant Alice\n participant Bob\n Alice->>John: Hello John, how are you?\n loop Health check\n John->>John: Fight against hypochondria\n end\n Note right of John: Rational thoughts <br/>prevail!\n John-->>Alice: Great!\n John->>Bob: How about you?\n Bob-->>John: Jolly good!"}),"\n",(0,r.jsx)(n.h2,{id:"sequence-diagram-forest-theme-directive",children:"Sequence Diagram (forest theme directive)"}),"\n",(0,r.jsx)(n.p,{children:"It is possible to override default config locally with Mermaid text directives such as:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:'%%{init: { "theme": "forest" } }%%\n'})}),"\n",(0,r.jsx)(n.mermaid,{value:'%%{init: { "theme": "forest" } }%%\n\nsequenceDiagram\n participant Alice\n participant Bob\n Alice->>John: Hello John, how are you?\n loop Health check\n John->>John: Fight against hypochondria\n end\n Note right of John: Rational thoughts <br/>prevail!\n John-->>Alice: Great!\n John->>Bob: How about you?\n Bob-->>John: Jolly good!'}),"\n",(0,r.jsx)(n.h2,{id:"gantt-chart",children:"Gantt Chart"}),"\n",(0,r.jsx)(n.mermaid,{value:"gantt\ndateFormat YYYY-MM-DD\ntitle Adding GANTT diagram to mermaid\nexcludes weekdays 2014-01-10\n\nsection A section\nCompleted task :done, des1, 2014-01-06,2014-01-08\nActive task :active, des2, 2014-01-09, 3d\nFuture task : des3, after des2, 5d\nFuture task2 : des4, after des3, 5d"}),"\n",(0,r.jsx)(n.h2,{id:"flow-chart",children:"Flow Chart"}),"\n",(0,r.jsx)(n.mermaid,{value:"flowchart TD\n A[Start] --> B{Is it?}\n B -->|Yes| C[OK]\n C --> D[Rethink]\n D --> B\n B ---->|No| E[End]"}),"\n",(0,r.jsx)(n.h3,{id:"with-markdown",children:"With Markdown:"}),"\n",(0,r.jsx)(n.mermaid,{value:'flowchart LR\n markdown["`This **is** _Markdown_`"]\n newLines["`Line1\n Line 2\n Line 3`"]\n markdown --> newLines'}),"\n",(0,r.jsx)(n.h2,{id:"class-diagram",children:"Class Diagram"}),"\n",(0,r.jsx)(n.mermaid,{value:" classDiagram\n Animal <|-- Duck\n Animal <|-- Fish\n Animal <|-- Zebra\n Animal : +int age\n Animal : +String gender\n Animal: +isMammal()\n Animal: +mate()\n class Duck{\n +String beakColor\n +swim()\n +quack()\n }\n class Fish{\n -int sizeInFeet\n -canEat()\n }\n class Zebra{\n +bool is_wild\n +run()\n }"}),"\n",(0,r.jsx)(n.h2,{id:"state-diagram",children:"State Diagram"}),"\n",(0,r.jsx)(n.mermaid,{value:"stateDiagram-v2\n [*] --> Active\n\n state Active {\n [*] --> NumLockOff\n NumLockOff --> NumLockOn : EvNumLockPressed\n NumLockOn --> NumLockOff : EvNumLockPressed\n --\n [*] --> CapsLockOff\n CapsLockOff --> CapsLockOn : EvCapsLockPressed\n CapsLockOn --> CapsLockOff : EvCapsLockPressed\n --\n [*] --> ScrollLockOff\n ScrollLockOff --> ScrollLockOn : EvScrollLockPressed\n ScrollLockOn --> ScrollLockOff : EvScrollLockPressed\n }"}),"\n",(0,r.jsx)(n.h2,{id:"entity-relationship-diagram",children:"Entity Relationship Diagram"}),"\n",(0,r.jsx)(n.mermaid,{value:"erDiagram\n CAR ||--o{ NAMED-DRIVER : allows\n CAR {\n string registrationNumber\n string make\n string model\n }\n PERSON ||--o{ NAMED-DRIVER : is\n PERSON {\n string firstName\n string lastName\n int age\n }"}),"\n",(0,r.jsx)(n.h2,{id:"user-journey",children:"User Journey"}),"\n",(0,r.jsx)(n.mermaid,{value:"journey\n title My working day\n section Go to work\n Make tea: 5: Me\n Go upstairs: 3: Me\n Do work: 1: Me, Cat\n section Go home\n Go downstairs: 5: Me\n Sit down: 5: Me"}),"\n",(0,r.jsx)(n.admonition,{type:"note",children:(0,r.jsxs)(n.p,{children:["If there's too much space above it's due to a ",(0,r.jsx)(n.a,{href:"https://github.com/mermaid-js/mermaid/issues/3501",children:"Mermaid bug"})]})}),"\n",(0,r.jsx)(n.h2,{id:"pie-chart",children:"Pie Chart"}),"\n",(0,r.jsx)(n.mermaid,{value:'pie showData\n title Key elements in Product X\n "Calcium" : 42.96\n "Potassium" : 50.05\n "Magnesium" : 10.01\n "Iron" : 5'}),"\n",(0,r.jsx)(n.h2,{id:"requirement-diagram",children:"Requirement Diagram"}),"\n",(0,r.jsx)(n.mermaid,{value:' requirementDiagram\n\n requirement test_req {\n id: 1\n text: the test text.\n risk: high\n verifymethod: test\n }\n\n functionalRequirement test_req2 {\n id: 1.1\n text: the second test text.\n risk: low\n verifymethod: inspection\n }\n\n performanceRequirement test_req3 {\n id: 1.2\n text: the third test text.\n risk: medium\n verifymethod: demonstration\n }\n\n interfaceRequirement test_req4 {\n id: 1.2.1\n text: the fourth test text.\n risk: medium\n verifymethod: analysis\n }\n\n physicalRequirement test_req5 {\n id: 1.2.2\n text: the fifth test text.\n risk: medium\n verifymethod: analysis\n }\n\n designConstraint test_req6 {\n id: 1.2.3\n text: the sixth test text.\n risk: medium\n verifymethod: analysis\n }\n\n element test_entity {\n type: simulation\n }\n\n element test_entity2 {\n type: word doc\n docRef: reqs/test_entity\n }\n\n element test_entity3 {\n type: "test suite"\n docRef: github.com/all_the_tests\n }\n\n\n test_entity - satisfies -> test_req2\n test_req - traces -> test_req2\n test_req - contains -> test_req3\n test_req3 - contains -> test_req4\n test_req4 - derives -> test_req5\n test_req5 - refines -> test_req6\n test_entity3 - verifies -> test_req5\n test_req <- copies - test_entity2'}),"\n",(0,r.jsx)(n.h2,{id:"gitgraph-git-diagram",children:"Gitgraph (Git) Diagram"}),"\n",(0,r.jsx)(n.mermaid,{value:"%%{init: { 'logLevel': 'debug', 'theme': 'base' } }%%\n gitGraph\n commit\n branch hotfix\n checkout hotfix\n commit\n branch develop\n checkout develop\n commit id:\"ash\" tag:\"abc\"\n branch featureB\n checkout featureB\n commit type:HIGHLIGHT\n checkout main\n checkout hotfix\n commit type:NORMAL\n checkout develop\n commit type:REVERSE\n checkout featureB\n commit\n checkout main\n merge hotfix\n checkout featureB\n commit\n checkout develop\n branch featureA\n commit\n checkout develop\n merge hotfix\n checkout featureA\n commit\n checkout featureB\n commit\n checkout develop\n merge featureA\n branch release\n checkout release\n commit\n checkout main\n commit\n checkout release\n merge main\n checkout develop\n merge release"}),"\n",(0,r.jsx)(n.h2,{id:"mermaid-in-tabs",children:"Mermaid in tabs"}),"\n","\n",(0,r.jsxs)(o.A,{children:[(0,r.jsxs)(s.A,{value:"tab-a",children:[(0,r.jsx)(n.p,{children:"The following mermaid diagram is shown:"}),(0,r.jsx)(n.mermaid,{value:"graph LR\n a ---> c(10)\n b ---> c(10)"})]}),(0,r.jsxs)(s.A,{value:"tab-b",children:[(0,r.jsx)(n.p,{children:"This mermaid diagram is not displayed:"}),(0,r.jsx)(n.mermaid,{value:"graph LR\n d ---> z(42)\n e ---> z(42)"})]})]}),"\n",(0,r.jsx)(n.h2,{id:"mindmap",children:"Mindmap"}),"\n",(0,r.jsx)(n.mermaid,{value:"mindmap\n root((conda-forge))\n (Repos)\n (Package building)\n [*-feedstock]\n [staged-recipes]\n [cdt-builds]\n [msys2-recipes]\n (Maintenance)\n [admin-requests]\n [repodata-patches]\n (Configuration)\n [.github]\n [.cirun]\n [conda-forge-pinning]\n [conda-forge-ci-setup]\n [docker-images]\n [conda-smithy]\n (Automations)\n [admin-migrations]\n [artifact-validation]\n [regro/cf-scripts]\n [conda-forge-webservices]\n [regro/cf-graph-countyfair]\n [regro/libcfgraph + regro/libcflib]\n [feedstock-outputs]\n (Communications)\n [conda-forge.github.io]\n [blog]\n [status]\n [by-the-numbers]\n [conda-forge-status-monitor]\n [feedstocks]\n (Bots & apps)\n [conda-forge-admin]\n [conda-forge-bot]\n [conda-forge-coordinator]\n [conda-forge-daemon]\n [conda-forge-linter]\n [conda-forge-manager]\n [conda-forge-status]\n [regro-cf-autotick-bot]\n [conda-forge-curator]\n [conda-forge-webservices]\n (Delivery)\n [anaconda.org]\n [ghcr.io]\n [quay.io]\n (Installers)\n Miniforge\n Mambaforge\n (CI for builds)\n Azure Pipelines\n Travis CI\n cirun.io\n (Infra)\n Heroku\n Github Actions\n Circle CI"}),"\n",(0,r.jsx)(n.h2,{id:"quadrant-chart",children:"Quadrant Chart"}),"\n",(0,r.jsx)(n.mermaid,{value:"quadrantChart\n title Reach and engagement of campaigns\n x-axis Low Reach --> High Reach\n y-axis Low Engagement --> High Engagement\n quadrant-1 We should expand\n quadrant-2 Need to promote\n quadrant-3 Re-evaluate\n quadrant-4 May be improved\n Campaign A: [0.3, 0.6]\n Campaign B: [0.45, 0.23]\n Campaign C: [0.57, 0.69]\n Campaign D: [0.78, 0.34]\n Campaign E: [0.40, 0.34]\n Campaign F: [0.35, 0.78]"}),"\n",(0,r.jsx)(n.h2,{id:"architecture-diagram",children:"Architecture Diagram"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["See ",(0,r.jsx)(n.a,{href:"https://mermaid.js.org/syntax/architecture",children:"https://mermaid.js.org/syntax/architecture"})]}),"\n",(0,r.jsxs)(n.li,{children:["See ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/10508",children:"https://github.com/facebook/docusaurus/discussions/10508"})]}),"\n"]}),"\n",(0,r.jsx)(n.mermaid,{value:"architecture-beta\n group api(cloud)[API]\n\n service db(database)[Database] in api\n service disk1(disk)[Storage] in api\n service disk2(disk)[Storage] in api\n service server(server)[Server] in api\n\n db:L -- R:server\n disk1:T -- B:server\n disk2:T -- B:db"})]})}function h(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(m,{...e})}):m(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>s});var a=t(63696);let r={},i=a.createContext(r);function o(e){let n=a.useContext(i);return a.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/060daea9.810cc3e9.js b/assets/js/060daea9.259592e0.js similarity index 93% rename from assets/js/060daea9.810cc3e9.js rename to assets/js/060daea9.259592e0.js index 6d32be93ce..65677a3cb7 100644 --- a/assets/js/060daea9.810cc3e9.js +++ b/assets/js/060daea9.259592e0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3461],{59261:(e,t,s)=>{s.d(t,{A:()=>a});let a=s.p+"assets/images/social-card-8ca15c1adaeb77ca302178575136a0b6.png"},57520:(e,t,s)=>{s.d(t,{A:()=>a});let a=s.p+"assets/images/social-card-8ca15c1adaeb77ca302178575136a0b6.png"},23463:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var a=s(22344),r=s(62540),n=s(43023);let o={title:"Docusaurus 3.2",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2024-03-29T00:00:00.000Z")},i=void 0,l={image:s(59261).A,authorsImageUrls:[void 0]},c=[];function u(e){let t={a:"a",img:"img",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["We are happy to announce ",(0,r.jsx)(t.strong,{children:"Docusaurus 3.2"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["The upgrade should be easy: as explained in our ",(0,r.jsx)(t.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,r.jsx)(t.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Docusaurus blog post social card",src:s(57520).A+"",width:"1200",height:"600"})})]})}function p(e={}){let{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},43023:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>i});var a=s(63696);let r={},n=a.createContext(r);function o(e){let t=a.useContext(n);return a.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(n.Provider,{value:t},e.children)}},22344:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/3.2","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.2/index.mdx","source":"@site/blog/releases/3.2/index.mdx","title":"Docusaurus 3.2","description":"We are happy to announce Docusaurus 3.2.","date":"2024-03-29T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.475,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.2","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-03-29T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 3.3","permalink":"/blog/releases/3.3"},"nextItem":{"title":"Docusaurus 3.1","permalink":"/blog/releases/3.1"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3461],{59261:(e,t,s)=>{s.d(t,{A:()=>a});let a=s.p+"assets/images/social-card-8ca15c1adaeb77ca302178575136a0b6.png"},57520:(e,t,s)=>{s.d(t,{A:()=>a});let a=s.p+"assets/images/social-card-8ca15c1adaeb77ca302178575136a0b6.png"},23463:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var a=s(22344),r=s(62540),n=s(43023);let o={title:"Docusaurus 3.2",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2024-03-29T00:00:00.000Z")},i=void 0,l={image:s(59261).A,authorsImageUrls:[void 0]},c=[];function u(e){let t={a:"a",img:"img",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["We are happy to announce ",(0,r.jsx)(t.strong,{children:"Docusaurus 3.2"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["The upgrade should be easy: as explained in our ",(0,r.jsx)(t.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,r.jsx)(t.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Docusaurus blog post social card",src:s(57520).A+"",width:"1200",height:"600"})})]})}function p(e={}){let{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},43023:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>i});var a=s(63696);let r={},n=a.createContext(r);function o(e){let t=a.useContext(n);return a.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(n.Provider,{value:t},e.children)}},22344:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/3.2","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.2/index.mdx","source":"@site/blog/releases/3.2/index.mdx","title":"Docusaurus 3.2","description":"We are happy to announce Docusaurus 3.2.","date":"2024-03-29T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.475,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.2","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-03-29T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 3.3","permalink":"/blog/releases/3.3"},"nextItem":{"title":"Docusaurus 3.1","permalink":"/blog/releases/3.1"}}')}}]); \ No newline at end of file diff --git a/assets/js/06c6ffc3.7a25e95e.js b/assets/js/06c6ffc3.7a25e95e.js deleted file mode 100644 index 1763537288..0000000000 --- a/assets/js/06c6ffc3.7a25e95e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[63340],{15995:(e,n,s)=>{s.d(n,{A:()=>o});var i=s(62540);s(63696);var t=s(11750);function o({children:e,hidden:n,className:s}){return(0,i.jsx)("div",{role:"tabpanel",className:(0,t.A)("tabItem_pnkT",s),hidden:n,children:e})}},27446:(e,n,s)=>{s.d(n,{A:()=>b});var i=s(62540),t=s(63696),o=s(11750),r=s(7846),l=s(49519),a=s(96439),c=s(19739),d=s(66904),h=s(79244);function u(e){var n,s;return null!==(s=null===(n=t.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,t.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==s?s:[]}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}var g=s(10709);function y(e){for(var n=1;n<arguments.length;n++){var s=null!=arguments[n]?arguments[n]:{},i=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(s).filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable}))),i.forEach(function(n){var i;i=s[n],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return e}function m(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);s.push.apply(s,i)}return s})(Object(n)).forEach(function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(n,s))}),e}function j({className:e,block:n,selectedValue:s,selectValue:t,tabValues:l}){let a=[],{blockElementScrollPositionUntilNextRender:c}=(0,r.a_)(),d=e=>{let n=e.currentTarget,i=l[a.indexOf(n)].value;i!==s&&(c(n),t(i))},h=e=>{var n,s;let i=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let s=a.indexOf(e.currentTarget)+1;i=null!==(n=a[s])&&void 0!==n?n:a[0];break}case"ArrowLeft":{let n=a.indexOf(e.currentTarget)-1;i=null!==(s=a[n])&&void 0!==s?s:a[a.length-1]}}null==i||i.focus()};return(0,i.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.A)("tabs",{"tabs--block":n},e),children:l.map(({value:e,label:n,attributes:t})=>(0,i.jsx)("li",m(y({role:"tab",tabIndex:s===e?0:-1,"aria-selected":s===e,ref:e=>a.push(e),onKeyDown:h,onClick:d},t),{className:(0,o.A)("tabs__item","tabItem_AQgk",null==t?void 0:t.className,{"tabs__item--active":s===e}),children:null!=n?n:e}),e))})}function x({lazy:e,children:n,selectedValue:s}){let r=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=r.find(e=>e.props.value===s);return e?(0,t.cloneElement)(e,{className:(0,o.A)("margin-top--md",e.props.className)}):null}return(0,i.jsx)("div",{className:"margin-top--md",children:r.map((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==s}))})}function f(e){let n=function(e){let{defaultValue:n,queryString:s=!1,groupId:i}=e,o=function(e){let{values:n,children:s}=e;return(0,t.useMemo)(()=>{let e=null!=n?n:u(s).map(({props:{value:e,label:n,attributes:s,default:i}})=>({value:e,label:n,attributes:s,default:i}));return!function(e){let n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,s])}(e),[r,g]=(0,t.useState)(()=>(function({defaultValue:e,tabValues:n}){var s;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let i=null!==(s=n.find(e=>e.default))&&void 0!==s?s:n[0];if(!i)throw Error("Unexpected error: 0 tabValues");return i.value})({defaultValue:n,tabValues:o})),[y,m]=function({queryString:e=!1,groupId:n}){let s=(0,l.W6)(),i=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,c.aZ)(i),(0,t.useCallback)(e=>{var n,t;if(!i)return;let o=new URLSearchParams(s.location.search);o.set(i,e),s.replace((n=function(e){for(var n=1;n<arguments.length;n++){var s=null!=arguments[n]?arguments[n]:{},i=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(s).filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable}))),i.forEach(function(n){var i;i=s[n],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return e}({},s.location),t=t={search:o.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);s.push.apply(s,i)}return s})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))},[i,s])]}({queryString:s,groupId:i}),[j,x]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[s,i]=(0,h.Dv)(n);return[s,(0,t.useCallback)(e=>{n&&i.set(e)},[n,i])]}({groupId:i}),f=(()=>{let e=null!=y?y:j;return p({value:e,tabValues:o})?e:null})();return(0,a.A)(()=>{f&&g(f)},[f]),{selectedValue:r,selectValue:(0,t.useCallback)(e=>{if(!p({value:e,tabValues:o}))throw Error(`Can't select invalid tab value=${e}`);g(e),m(e),x(e)},[m,x,o]),tabValues:o}}(e);return(0,i.jsxs)("div",{className:(0,o.A)("tabs-container","tabList_Qoir"),children:[(0,i.jsx)(j,y({},n,e)),(0,i.jsx)(x,y({},n,e))]})}function b(e){let n=(0,g.A)();return(0,i.jsx)(f,m(y({},e),{children:u(e.children)}),String(n))}},27703:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>h});let i=JSON.parse('{"id":"deployment","title":"Deployment","description":"Deploy your Docusaurus app for production on a range of static site hosting services.","source":"@site/docs/deployment.mdx","sourceDirName":".","slug":"/deployment","permalink":"/docs/deployment","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/deployment.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"Deploy your Docusaurus app for production on a range of static site hosting services."},"sidebar":"docs","previous":{"title":"Using Plugins","permalink":"/docs/using-plugins"},"next":{"title":"i18n - Introduction","permalink":"/docs/i18n/introduction"}}');var t=s(62540),o=s(43023),r=s(27446),l=s(15995);let a={description:"Deploy your Docusaurus app for production on a range of static site hosting services."},c="Deployment",d={},h=[{value:"Configuration",id:"configuration",level:2},{value:"Testing your Build Locally",id:"testing-build-locally",level:2},{value:"Trailing slash configuration",id:"trailing-slashes",level:2},{value:"Using environment variables",id:"using-environment-variables",level:2},{value:"Choosing a hosting provider",id:"choosing-a-hosting-provider",level:2},{value:"Self-Hosting",id:"self-hosting",level:2},{value:"Deploying to Netlify",id:"deploying-to-netlify",level:2},{value:"Deploying to Vercel",id:"deploying-to-vercel",level:2},{value:"Deploying to GitHub Pages",id:"deploying-to-github-pages",level:2},{value:"Overview",id:"github-pages-overview",level:3},{value:"<code>docusaurus.config.js</code> settings",id:"docusaurusconfigjs-settings",level:3},{value:"Environment settings",id:"environment-settings",level:3},{value:"Deploy",id:"deploy",level:3},{value:"Triggering deployment with GitHub Actions",id:"triggering-deployment-with-github-actions",level:3},{value:"Triggering deployment with Travis CI",id:"triggering-deployment-with-travis-ci",level:3},{value:"Triggering deployment with Buddy",id:"triggering-deployment-with-buddy",level:3},{value:"Using Azure Pipelines",id:"using-azure-pipelines",level:3},{value:"Using Drone",id:"using-drone",level:3},{value:"Deploying to Flightcontrol",id:"deploying-to-flightcontrol",level:2},{value:"Deploying to Koyeb",id:"deploying-to-koyeb",level:2},{value:"Deploying to Render",id:"deploying-to-render",level:2},{value:"Deploying to Qovery",id:"deploying-to-qovery",level:2},{value:"Deploying to Hostman",id:"deploying-to-hostman",level:2},{value:"Deploying to Surge",id:"deploying-to-surge",level:2},{value:"Using your domain",id:"using-your-domain",level:3},{value:"Setting up CNAME file",id:"setting-up-cname-file",level:3},{value:"Deploying to Stormkit",id:"deploying-to-stormkit",level:2},{value:"Deploying to QuantCDN",id:"deploying-to-quantcdn",level:2},{value:"Deploying to Layer0",id:"deploying-to-layer0",level:2},{value:"Deploying to Cloudflare Pages",id:"deploying-to-cloudflare-pages",level:2},{value:"Deploying to Azure Static Web Apps",id:"deploying-to-azure-static-web-apps",level:2},{value:"Deploying to Kinsta",id:"deploying-to-kinsta",level:2}];function u(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.R)(),...e.components},{Details:s}=n;return s||function(e,n){throw Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"deployment",children:"Deployment"})}),"\n",(0,t.jsx)(n.p,{children:"To build the static files of your website for production, run:"}),"\n",(0,t.jsxs)(r.A,{groupId:"npm2yarn",children:[(0,t.jsx)(l.A,{value:"npm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"npm run build\n"})})}),(0,t.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"yarn build\n"})})}),(0,t.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"pnpm run build\n"})})})]}),"\n",(0,t.jsxs)(n.p,{children:["Once it finishes, the static files will be generated within the ",(0,t.jsx)(n.code,{children:"build"})," directory."]}),"\n",(0,t.jsxs)(n.admonition,{type:"note",children:[(0,t.jsxs)(n.p,{children:["The only responsibility of Docusaurus is to build your site and emit static files in ",(0,t.jsx)(n.code,{children:"build"}),"."]}),(0,t.jsx)(n.p,{children:"It is now up to you to choose how to host those static files."})]}),"\n",(0,t.jsxs)(n.p,{children:["You can deploy your site to static site hosting services such as ",(0,t.jsx)(n.a,{href:"https://vercel.com/",children:"Vercel"}),", ",(0,t.jsx)(n.a,{href:"https://pages.github.com/",children:"GitHub Pages"}),", ",(0,t.jsx)(n.a,{href:"https://www.netlify.com/",children:"Netlify"}),", ",(0,t.jsx)(n.a,{href:"https://render.com/docs/static-sites",children:"Render"}),", and ",(0,t.jsx)(n.a,{href:"https://surge.sh/help/getting-started-with-surge",children:"Surge"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"A Docusaurus site is statically rendered, and it can generally work without JavaScript!"}),"\n",(0,t.jsx)(n.h2,{id:"configuration",children:"Configuration"}),"\n",(0,t.jsxs)(n.p,{children:["The following parameters are required in ",(0,t.jsx)(n.code,{children:"docusaurus.config.js"})," to optimize routing and serve files from the correct location:"]}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"url"})}),(0,t.jsxs)(n.td,{children:["URL for your site. For a site deployed at ",(0,t.jsx)(n.code,{children:"https://my-org.com/my-project/"}),", ",(0,t.jsx)(n.code,{children:"url"})," is ",(0,t.jsx)(n.code,{children:"https://my-org.com/"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"baseUrl"})}),(0,t.jsxs)(n.td,{children:["Base URL for your project, with a trailing slash. For a site deployed at ",(0,t.jsx)(n.code,{children:"https://my-org.com/my-project/"}),", ",(0,t.jsx)(n.code,{children:"baseUrl"})," is ",(0,t.jsx)(n.code,{children:"/my-project/"}),"."]})]})]})]}),"\n",(0,t.jsx)(n.h2,{id:"testing-build-locally",children:"Testing your Build Locally"}),"\n",(0,t.jsxs)(n.p,{children:["It is important to test your build locally before deploying it for production. Docusaurus provides a ",(0,t.jsx)(n.a,{href:"/docs/cli#docusaurus-serve-sitedir",children:(0,t.jsx)(n.code,{children:"docusaurus serve"})})," command for that:"]}),"\n",(0,t.jsxs)(r.A,{groupId:"npm2yarn",children:[(0,t.jsx)(l.A,{value:"npm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"npm run serve\n"})})}),(0,t.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"yarn serve\n"})})}),(0,t.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"pnpm run serve\n"})})})]}),"\n",(0,t.jsxs)(n.p,{children:["By default, this will load your site at ",(0,t.jsx)(n.a,{href:"http://localhost:3000/",children:(0,t.jsx)(n.code,{children:"http://localhost:3000/"})}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"trailing-slashes",children:"Trailing slash configuration"}),"\n",(0,t.jsxs)(n.p,{children:["Docusaurus has a ",(0,t.jsxs)(n.a,{href:"/docs/api/docusaurus-config#trailingSlash",children:[(0,t.jsx)(n.code,{children:"trailingSlash"})," config"]})," to allow customizing URLs/links and emitted filename patterns."]}),"\n",(0,t.jsxs)(n.p,{children:["The default value generally works fine. Unfortunately, each static hosting provider has a ",(0,t.jsx)(n.strong,{children:"different behavior"}),", and deploying the exact same site to various hosts can lead to distinct results. Depending on your host, it can be useful to change this config."]}),"\n",(0,t.jsx)(n.admonition,{type:"tip",children:(0,t.jsxs)(n.p,{children:["Use ",(0,t.jsx)(n.a,{href:"https://github.com/slorber/trailing-slash-guide",children:"slorber/trailing-slash-guide"})," to understand better the behavior of your host and configure ",(0,t.jsx)(n.code,{children:"trailingSlash"})," appropriately."]})}),"\n",(0,t.jsx)(n.h2,{id:"using-environment-variables",children:"Using environment variables"}),"\n",(0,t.jsxs)(n.p,{children:["Putting potentially sensitive information in the environment is common practice. However, in a typical Docusaurus website, the ",(0,t.jsx)(n.code,{children:"docusaurus.config.js"})," file is the only interface to the Node.js environment (see ",(0,t.jsx)(n.a,{href:"/docs/advanced/architecture",children:"our architecture overview"}),"), while everything else (MDX pages, React components, etc.) are client side and do not have direct access to the ",(0,t.jsx)(n.code,{children:"process"})," global variable. In this case, you can consider using ",(0,t.jsx)(n.a,{href:"/docs/api/docusaurus-config#customFields",children:(0,t.jsx)(n.code,{children:"customFields"})})," to pass environment variables to the client side."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"// If you are using dotenv (https://www.npmjs.com/package/dotenv)\nimport 'dotenv/config';\n\nexport default {\n title: '...',\n url: process.env.URL, // You can use environment variables to control site specifics as well\n // highlight-start\n customFields: {\n // Put your custom environment here\n teamEmail: process.env.EMAIL,\n },\n // highlight-end\n};\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-jsx",metastring:'title="home.jsx"',children:"import useDocusaurusContext from '@docusaurus/useDocusaurusContext';\n\nexport default function Home() {\n const {\n siteConfig: {customFields},\n } = useDocusaurusContext();\n return <div>Contact us through {customFields.teamEmail}!</div>;\n}\n"})}),"\n",(0,t.jsx)(n.h2,{id:"choosing-a-hosting-provider",children:"Choosing a hosting provider"}),"\n",(0,t.jsx)(n.p,{children:"There are a few common hosting options:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"#self-hosting",children:"Self hosting"})," with an HTTP server like Apache2 or Nginx."]}),"\n",(0,t.jsxs)(n.li,{children:["Jamstack providers (e.g. ",(0,t.jsx)(n.a,{href:"#deploying-to-netlify",children:"Netlify"})," and ",(0,t.jsx)(n.a,{href:"#deploying-to-vercel",children:"Vercel"}),"). We will use them as references, but the same reasoning can apply to other providers."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"#deploying-to-github-pages",children:"GitHub Pages"})," (by definition, it is also Jamstack, but we compare it separately)."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"If you are unsure of which one to choose, ask the following questions:"}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:(0,t.jsx)(n.p,{children:"How many resources (money, person-hours, etc.) am I willing to invest in this?"})}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"\u{1F534} Self-hosting requires experience in networking as well as Linux and web server administration. It's the most difficult option, and would require the most time to manage successfully. Expense-wise, cloud services are almost never free, and purchasing/deploying an onsite server can be even more costly."}),"\n",(0,t.jsx)(n.li,{children:"\u{1F7E2} Jamstack providers can help you set up a working website in almost no time and offer features like server-side redirects that are easily configurable. Many providers offer generous build-time quotas even for free plans that you would almost never exceed. However, free plans have limits, and you would need to pay once you hit those limits. Check the pricing page of your provider for details."}),"\n",(0,t.jsxs)(n.li,{children:["\u{1F7E1} The GitHub Pages deployment workflow can be tedious to set up. (Evidence: see the length of ",(0,t.jsx)(n.a,{href:"#deploying-to-github-pages",children:"Deploying to GitHub Pages"}),"!) However, this service (including build and deployment) is always free for public repositories, and we have detailed instructions to help you make it work."]}),"\n"]})]}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"How much server-side customization do I need?"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"\u{1F7E2} With self-hosting, you have access to the entire server's configuration. You can configure the virtual host to serve different content based on the request URL, you can do complicated server-side redirects, you can implement authentication, and so on. If you need a lot of server-side features, self-host your website."}),"\n",(0,t.jsx)(n.li,{children:"\u{1F7E1} Jamstack usually offers some server-side configuration (e.g. URL formatting (trailing slashes), server-side redirects, etc.)."}),"\n",(0,t.jsx)(n.li,{children:"\u{1F534} GitHub Pages doesn't expose server-side configuration besides enforcing HTTPS and setting CNAME records."}),"\n"]})]}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"Do I need collaboration-friendly deployment workflows?"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"\u{1F7E1} Self-hosted services can leverage continuous deployment functionality like Netlify, but more heavy-lifting is involved. Usually, you would designate a specific person to manage the deployment, and the workflow wouldn't be very git-based as opposed to the other two options."}),"\n",(0,t.jsx)(n.li,{children:"\u{1F7E2} Netlify and Vercel have deploy previews for every pull request, which is useful for a team to review work before merging to production. You can also manage a team with different member access to the deployment."}),"\n",(0,t.jsx)(n.li,{children:"\u{1F7E1} GitHub Pages cannot do deploy previews in a non-convoluted way. One repo can only be associated with one site deployment. On the other hand, you can control who has write access to the site's deployment."}),"\n"]})]}),"\n",(0,t.jsx)(n.p,{children:"There isn't a silver bullet. You need to weigh your needs and resources before making a choice."}),"\n",(0,t.jsx)(n.h2,{id:"self-hosting",children:"Self-Hosting"}),"\n",(0,t.jsxs)(n.p,{children:["Docusaurus can be self-hosted using ",(0,t.jsx)(n.a,{href:"/docs/cli#docusaurus-serve-sitedir",children:(0,t.jsx)(n.code,{children:"docusaurus serve"})}),". Change port using ",(0,t.jsx)(n.code,{children:"--port"})," and ",(0,t.jsx)(n.code,{children:"--host"})," to change host."]}),"\n",(0,t.jsxs)(r.A,{groupId:"npm2yarn",children:[(0,t.jsx)(l.A,{value:"npm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"npm run serve -- --build --port 80 --host 0.0.0.0\n"})})}),(0,t.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"yarn serve --build --port 80 --host 0.0.0.0\n"})})}),(0,t.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"pnpm run serve --build --port 80 --host 0.0.0.0\n"})})})]}),"\n",(0,t.jsx)(n.admonition,{type:"warning",children:(0,t.jsx)(n.p,{children:"It is not the best option, compared to a static hosting provider / CDN."})}),"\n",(0,t.jsxs)(n.admonition,{type:"warning",children:[(0,t.jsx)(n.p,{children:"In the following sections, we will introduce a few common hosting providers and how they should be configured to deploy Docusaurus sites most efficiently. Docusaurus is not affiliated with any of these services, and this information is provided for convenience only. Some of the write-ups are provided by third-parties, and recent API changes may not be reflected on our side. If you see outdated content, PRs are welcome."}),(0,t.jsx)(n.p,{children:"Because we can only provide this content on a best-effort basis only, we have stopped accepting PRs adding new hosting options. You can, however, publish your writeup on a separate site (e.g. your blog, or the provider's official website), and ask us to include a link to your writeup."})]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-netlify",children:"Deploying to Netlify"}),"\n",(0,t.jsxs)(n.p,{children:["To deploy your Docusaurus sites to ",(0,t.jsx)(n.a,{href:"https://www.netlify.com/",children:"Netlify"}),", first make sure the following options are properly configured:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // highlight-start\n url: 'https://docusaurus-2.netlify.app', // Url to your site with no trailing slash\n baseUrl: '/', // Base directory of your site relative to your repo\n // highlight-end\n // ...\n};\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Then, ",(0,t.jsx)(n.a,{href:"https://app.netlify.com/start",children:"create your site with Netlify"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"While you set up the site, specify the build commands and directories as follows:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["build command: ",(0,t.jsx)(n.code,{children:"npm run build"})]}),"\n",(0,t.jsxs)(n.li,{children:["publish directory: ",(0,t.jsx)(n.code,{children:"build"})]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:'If you did not configure these build options, you may still go to "Site settings" -> "Build & deploy" after your site is created.'}),"\n",(0,t.jsxs)(n.p,{children:["Once properly configured with the above options, your site should deploy and automatically redeploy upon merging to your deploy branch, which defaults to ",(0,t.jsx)(n.code,{children:"main"}),"."]}),"\n",(0,t.jsxs)(n.admonition,{type:"warning",children:[(0,t.jsxs)(n.p,{children:["Some Docusaurus sites put the ",(0,t.jsx)(n.code,{children:"docs"})," folder outside of ",(0,t.jsx)(n.code,{children:"website"})," (most likely former Docusaurus v1 sites):"]}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"repo # git root\n\u251C\u2500\u2500 docs # MD files\n\u2514\u2500\u2500 website # Docusaurus root\n"})}),(0,t.jsxs)(n.p,{children:["If you decide to use the ",(0,t.jsx)(n.code,{children:"website"})," folder as Netlify's base directory, Netlify will not trigger builds when you update the ",(0,t.jsx)(n.code,{children:"docs"})," folder, and you need to configure a ",(0,t.jsxs)(n.a,{href:"https://docs.netlify.com/configure-builds/common-configurations/ignore-builds/",children:["custom ",(0,t.jsx)(n.code,{children:"ignore"})," command"]}),":"]}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-toml",metastring:'title="website/netlify.toml"',children:'[build]\n ignore = "git diff --quiet $CACHED_COMMIT_REF $COMMIT_REF . ../docs/"\n'})})]}),"\n",(0,t.jsxs)(n.admonition,{type:"warning",children:[(0,t.jsx)(n.p,{children:"By default, Netlify adds trailing slashes to Docusaurus URLs."}),(0,t.jsxs)(n.p,{children:["It is recommended to disable the Netlify setting ",(0,t.jsx)(n.code,{children:"Post Processing > Asset Optimization > Pretty Urls"})," to prevent lowercase URLs, unnecessary redirects, and 404 errors."]}),(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Be very careful"}),": the ",(0,t.jsx)(n.code,{children:"Disable asset optimization"})," global checkbox is broken and does not really disable the ",(0,t.jsx)(n.code,{children:"Pretty URLs"})," setting in practice. Please make sure to ",(0,t.jsx)(n.strong,{children:"uncheck it independently"}),"."]}),(0,t.jsxs)(n.p,{children:["If you want to keep the ",(0,t.jsx)(n.code,{children:"Pretty Urls"})," Netlify setting on, adjust the ",(0,t.jsx)(n.code,{children:"trailingSlash"})," Docusaurus config appropriately."]}),(0,t.jsxs)(n.p,{children:["Refer to ",(0,t.jsx)(n.a,{href:"https://github.com/slorber/trailing-slash-guide",children:"slorber/trailing-slash-guide"})," for more information."]})]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-vercel",children:"Deploying to Vercel"}),"\n",(0,t.jsxs)(n.p,{children:["Deploying your Docusaurus project to ",(0,t.jsx)(n.a,{href:"https://vercel.com/",children:"Vercel"})," will provide you with ",(0,t.jsx)(n.a,{href:"https://vercel.com/",children:"various benefits"})," in the areas of performance and ease of use."]}),"\n",(0,t.jsxs)(n.p,{children:["To deploy your Docusaurus project with a ",(0,t.jsx)(n.a,{href:"https://vercel.com/docs/concepts/git",children:"Vercel for Git Integration"}),", make sure it has been pushed to a Git repository."]}),"\n",(0,t.jsxs)(n.p,{children:["Import the project into Vercel using the ",(0,t.jsx)(n.a,{href:"https://vercel.com/import/git",children:"Import Flow"}),". During the import, you will find all relevant options preconfigured for you; however, you can choose to change any of these ",(0,t.jsx)(n.a,{href:"https://vercel.com/docs/build-step#build-&-development-settings",children:"options"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["After your project has been imported, all subsequent pushes to branches will generate ",(0,t.jsx)(n.a,{href:"https://vercel.com/docs/platform/deployments#preview",children:"Preview Deployments"}),", and all changes made to the ",(0,t.jsx)(n.a,{href:"https://vercel.com/docs/git-integrations#production-branch",children:"Production Branch"}),' (usually "main" or "master") will result in a ',(0,t.jsx)(n.a,{href:"https://vercel.com/docs/platform/deployments#production",children:"Production Deployment"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-github-pages",children:"Deploying to GitHub Pages"}),"\n",(0,t.jsxs)(n.p,{children:["Docusaurus provides an easy way to publish to ",(0,t.jsx)(n.a,{href:"https://pages.github.com/",children:"GitHub Pages"}),", which comes free with every GitHub repository."]}),"\n",(0,t.jsx)(n.h3,{id:"github-pages-overview",children:"Overview"}),"\n",(0,t.jsxs)(n.p,{children:["Usually, there are two repositories (at least two branches) involved in a publishing process: the branch containing the source files, and the branch containing the build output to be served with GitHub Pages. In the following tutorial, they will be referred to as ",(0,t.jsx)(n.strong,{children:'"source"'})," and ",(0,t.jsx)(n.strong,{children:'"deployment"'}),", respectively."]}),"\n",(0,t.jsxs)(n.p,{children:["Each GitHub repository is associated with a GitHub Pages service. If the deployment repository is called ",(0,t.jsx)(n.code,{children:"my-org/my-project"})," (where ",(0,t.jsx)(n.code,{children:"my-org"})," is the organization name or username), the deployed site will appear at ",(0,t.jsx)(n.code,{children:"https://my-org.github.io/my-project/"}),". If the deployment repository is called ",(0,t.jsx)(n.code,{children:"my-org/my-org.github.io"})," (the ",(0,t.jsx)(n.em,{children:"organization GitHub Pages repo"}),"), the site will appear at ",(0,t.jsx)(n.code,{children:"https://my-org.github.io/"}),"."]}),"\n",(0,t.jsxs)(n.admonition,{type:"info",children:[(0,t.jsxs)(n.p,{children:["In case you want to use your custom domain for GitHub Pages, create a ",(0,t.jsx)(n.code,{children:"CNAME"})," file in the ",(0,t.jsx)(n.code,{children:"static"})," directory. Anything within the ",(0,t.jsx)(n.code,{children:"static"})," directory will be copied to the root of the ",(0,t.jsx)(n.code,{children:"build"})," directory for deployment. When using a custom domain, you should be able to move back from ",(0,t.jsx)(n.code,{children:"baseUrl: '/projectName/'"})," to ",(0,t.jsx)(n.code,{children:"baseUrl: '/'"}),", and also set your ",(0,t.jsx)(n.code,{children:"url"})," to your custom domain."]}),(0,t.jsxs)(n.p,{children:["You may refer to GitHub Pages' documentation ",(0,t.jsx)(n.a,{href:"https://help.github.com/en/articles/user-organization-and-project-pages",children:"User, Organization, and Project Pages"})," for more details."]})]}),"\n",(0,t.jsxs)(n.p,{children:["GitHub Pages picks up deploy-ready files (the output from ",(0,t.jsx)(n.code,{children:"docusaurus build"}),") from the default branch (",(0,t.jsx)(n.code,{children:"master"})," / ",(0,t.jsx)(n.code,{children:"main"}),", usually) or the ",(0,t.jsx)(n.code,{children:"gh-pages"})," branch, and either from the root or the ",(0,t.jsx)(n.code,{children:"/docs"})," folder. You can configure that through ",(0,t.jsx)(n.code,{children:"Settings > Pages"}),' in your repository. This branch will be called the "deployment branch".']}),"\n",(0,t.jsxs)(n.p,{children:["We provide a ",(0,t.jsx)(n.code,{children:"docusaurus deploy"})," command that helps you deploy your site from the source branch to the deployment branch in one command: clone, build, and commit."]}),"\n",(0,t.jsxs)(n.h3,{id:"docusaurusconfigjs-settings",children:[(0,t.jsx)(n.code,{children:"docusaurus.config.js"})," settings"]}),"\n",(0,t.jsxs)(n.p,{children:["First, modify your ",(0,t.jsx)(n.code,{children:"docusaurus.config.js"})," and add the following params:"]}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"organizationName"})}),(0,t.jsx)(n.td,{children:"The GitHub user or organization that owns the deployment repository."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"projectName"})}),(0,t.jsx)(n.td,{children:"The name of the deployment repository."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"deploymentBranch"})}),(0,t.jsxs)(n.td,{children:["The name of the deployment branch. It defaults to ",(0,t.jsx)(n.code,{children:"'gh-pages'"})," for non-organization GitHub Pages repos (",(0,t.jsx)(n.code,{children:"projectName"})," not ending in ",(0,t.jsx)(n.code,{children:".github.io"}),"). Otherwise, it needs to be explicit as a config field or environment variable."]})]})]})]}),"\n",(0,t.jsxs)(n.p,{children:["These fields also have their environment variable counterparts which have a higher priority: ",(0,t.jsx)(n.code,{children:"ORGANIZATION_NAME"}),", ",(0,t.jsx)(n.code,{children:"PROJECT_NAME"}),", and ",(0,t.jsx)(n.code,{children:"DEPLOYMENT_BRANCH"}),"."]}),"\n",(0,t.jsx)(n.admonition,{type:"warning",children:(0,t.jsxs)(n.p,{children:["GitHub Pages adds a trailing slash to Docusaurus URLs by default. It is recommended to set a ",(0,t.jsx)(n.code,{children:"trailingSlash"})," config (",(0,t.jsx)(n.code,{children:"true"})," or ",(0,t.jsx)(n.code,{children:"false"}),", not ",(0,t.jsx)(n.code,{children:"undefined"}),")."]})}),"\n",(0,t.jsx)(n.p,{children:"Example:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n url: 'https://endiliey.github.io', // Your website URL\n baseUrl: '/',\n // highlight-start\n projectName: 'endiliey.github.io',\n organizationName: 'endiliey',\n trailingSlash: false,\n // highlight-end\n // ...\n};\n"})}),"\n",(0,t.jsx)(n.admonition,{type:"warning",children:(0,t.jsxs)(n.p,{children:["By default, GitHub Pages runs published files through ",(0,t.jsx)(n.a,{href:"https://jekyllrb.com/",children:"Jekyll"}),". Since Jekyll will discard any files that begin with ",(0,t.jsx)(n.code,{children:"_"}),", it is recommended that you disable Jekyll by adding an empty file named ",(0,t.jsx)(n.code,{children:".nojekyll"})," file to your ",(0,t.jsx)(n.code,{children:"static"})," directory."]})}),"\n",(0,t.jsx)(n.h3,{id:"environment-settings",children:"Environment settings"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"USE_SSH"})}),(0,t.jsxs)(n.td,{children:["Set to ",(0,t.jsx)(n.code,{children:"true"})," to use SSH instead of the default HTTPS for the connection to the GitHub repo. If the source repo URL is an SSH URL (e.g. ",(0,t.jsx)(n.code,{children:"git@github.com:facebook/docusaurus.git"}),"), ",(0,t.jsx)(n.code,{children:"USE_SSH"})," is inferred to be ",(0,t.jsx)(n.code,{children:"true"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"GIT_USER"})}),(0,t.jsxs)(n.td,{children:["The username for a GitHub account that ",(0,t.jsx)(n.strong,{children:"has push access to the deployment repo"}),". For your own repositories, this will usually be your GitHub username. Required if not using SSH, and ignored otherwise."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"GIT_PASS"})}),(0,t.jsxs)(n.td,{children:["Personal access token of the git user (specified by ",(0,t.jsx)(n.code,{children:"GIT_USER"}),"), to facilitate non-interactive deployment (e.g. continuous deployment)"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"CURRENT_BRANCH"})}),(0,t.jsxs)(n.td,{children:["The source branch. Usually, the branch will be ",(0,t.jsx)(n.code,{children:"main"})," or ",(0,t.jsx)(n.code,{children:"master"}),", but it could be any branch except for ",(0,t.jsx)(n.code,{children:"gh-pages"}),". If nothing is set for this variable, then the current branch from which ",(0,t.jsx)(n.code,{children:"docusaurus deploy"})," is invoked will be used."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"GIT_USER_NAME"})}),(0,t.jsxs)(n.td,{children:["The ",(0,t.jsx)(n.code,{children:"git config user.name"})," value to use when pushing to the deployment repo"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"GIT_USER_EMAIL"})}),(0,t.jsxs)(n.td,{children:["The ",(0,t.jsx)(n.code,{children:"git config user.email"})," value to use when pushing to the deployment repo"]})]})]})]}),"\n",(0,t.jsx)(n.p,{children:"GitHub enterprise installations should work in the same manner as github.com; you only need to set the organization's GitHub Enterprise host as an environment variable:"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"GITHUB_HOST"})}),(0,t.jsx)(n.td,{children:"The domain name of your GitHub enterprise site."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"GITHUB_PORT"})}),(0,t.jsx)(n.td,{children:"The port of your GitHub enterprise site."})]})]})]}),"\n",(0,t.jsx)(n.h3,{id:"deploy",children:"Deploy"}),"\n",(0,t.jsx)(n.p,{children:"Finally, to deploy your site to GitHub Pages, run:"}),"\n",(0,t.jsxs)(r.A,{children:[(0,t.jsx)(l.A,{value:"bash",label:"Bash",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"GIT_USER=<GITHUB_USERNAME> yarn deploy\n"})})}),(0,t.jsx)(l.A,{value:"windows",label:"Windows",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-batch",children:'cmd /C "set "GIT_USER=<GITHUB_USERNAME>" && yarn deploy"\n'})})}),(0,t.jsx)(l.A,{value:"powershell",label:"PowerShell",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-powershell",children:"cmd /C 'set \"GIT_USER=<GITHUB_USERNAME>\" && yarn deploy'\n"})})})]}),"\n",(0,t.jsxs)(n.admonition,{type:"warning",children:[(0,t.jsxs)(n.p,{children:["Beginning in August 2021, GitHub requires every command-line sign-in to use the ",(0,t.jsx)(n.strong,{children:"personal access token"})," instead of the password. When GitHub prompts for your password, enter the PAT instead. See the ",(0,t.jsx)(n.a,{href:"https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token",children:"GitHub documentation"})," for more information."]}),(0,t.jsxs)(n.p,{children:["Alternatively, you can use SSH (",(0,t.jsx)(n.code,{children:"USE_SSH=true"}),") to log in."]})]}),"\n",(0,t.jsx)(n.h3,{id:"triggering-deployment-with-github-actions",children:"Triggering deployment with GitHub Actions"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://help.github.com/en/actions",children:"GitHub Actions"})," allow you to automate, customize, and execute your software development workflows right in your repository."]}),"\n",(0,t.jsxs)(n.p,{children:["The workflow examples below assume your website source resides in the ",(0,t.jsx)(n.code,{children:"main"})," branch of your repository (the ",(0,t.jsx)(n.em,{children:"source branch"})," is ",(0,t.jsx)(n.code,{children:"main"}),"), and your ",(0,t.jsx)(n.a,{href:"https://help.github.com/en/github/working-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site",children:"publishing source"})," is configured for ",(0,t.jsx)(n.a,{href:"https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow",children:"publishing with a custom GitHub Actions Workflow"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"Our goal is that:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["When a new pull request is made to ",(0,t.jsx)(n.code,{children:"main"}),", there's an action that ensures the site builds successfully, without actually deploying. This job will be called ",(0,t.jsx)(n.code,{children:"test-deploy"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["When a pull request is merged to the ",(0,t.jsx)(n.code,{children:"main"})," branch or someone pushes to the ",(0,t.jsx)(n.code,{children:"main"})," branch directly, it will be built and deployed to GitHub Pages. This job will be called ",(0,t.jsx)(n.code,{children:"deploy"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Here are two approaches to deploying your docs with GitHub Actions. Based on the location of your deployment repository, choose the relevant tab below:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Source repo and deployment repo are the ",(0,t.jsx)(n.strong,{children:"same"})," repository."]}),"\n",(0,t.jsxs)(n.li,{children:["The deployment repo is a ",(0,t.jsx)(n.strong,{children:"remote"})," repository, different from the source. Instructions for this scenario assume ",(0,t.jsx)(n.a,{href:"https://help.github.com/en/github/working-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site",children:"publishing source"})," is the ",(0,t.jsx)(n.code,{children:"gh-pages"})," branch."]}),"\n"]}),"\n",(0,t.jsxs)(r.A,{children:[(0,t.jsxs)(l.A,{value:"same",label:"Same",children:[(0,t.jsxs)(n.p,{children:["While you can have both jobs defined in the same workflow file, the original ",(0,t.jsx)(n.code,{children:"deploy"})," workflow will always be listed as skipped in the PR check suite status, which is not indicative of the actual status and provides no value to the review process. We therefore propose to manage them as separate workflows instead."]}),(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"GitHub action files"}),(0,t.jsx)(n.p,{children:"Add these two workflow files:"}),(0,t.jsxs)(n.admonition,{title:"Tweak the parameters for your setup",type:"warning",children:[(0,t.jsxs)(n.p,{children:["These files assume you are using Yarn. If you use npm, change ",(0,t.jsx)(n.code,{children:"cache: yarn"}),", ",(0,t.jsx)(n.code,{children:"yarn install --frozen-lockfile"}),", ",(0,t.jsx)(n.code,{children:"yarn build"})," to ",(0,t.jsx)(n.code,{children:"cache: npm"}),", ",(0,t.jsx)(n.code,{children:"npm ci"}),", ",(0,t.jsx)(n.code,{children:"npm run build"})," accordingly."]}),(0,t.jsxs)(n.p,{children:["If your Docusaurus project is not at the root of your repo, you may need to configure a ",(0,t.jsx)(n.a,{href:"https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-set-the-default-shell-and-working-directory",children:"default working directory"}),", and adjust the paths accordingly."]})]}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yml",metastring:'title=".github/workflows/deploy.yml"',children:"name: Deploy to GitHub Pages\n\non:\n push:\n branches:\n - main\n # Review gh actions docs if you want to further define triggers, paths, etc\n # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on\n\njobs:\n build:\n name: Build Docusaurus\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n with:\n fetch-depth: 0\n - uses: actions/setup-node@v4\n with:\n node-version: 18\n cache: yarn\n\n - name: Install dependencies\n run: yarn install --frozen-lockfile\n - name: Build website\n run: yarn build\n\n - name: Upload Build Artifact\n uses: actions/upload-pages-artifact@v3\n with:\n path: build\n\n deploy:\n name: Deploy to GitHub Pages\n needs: build\n\n # Grant GITHUB_TOKEN the permissions required to make a Pages deployment\n permissions:\n pages: write # to deploy to Pages\n id-token: write # to verify the deployment originates from an appropriate source\n\n # Deploy to the github-pages environment\n environment:\n name: github-pages\n url: ${{ steps.deployment.outputs.page_url }}\n\n runs-on: ubuntu-latest\n steps:\n - name: Deploy to GitHub Pages\n id: deployment\n uses: actions/deploy-pages@v4\n"})}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yml",metastring:'title=".github/workflows/test-deploy.yml"',children:"name: Test deployment\n\non:\n pull_request:\n branches:\n - main\n # Review gh actions docs if you want to further define triggers, paths, etc\n # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on\n\njobs:\n test-deploy:\n name: Test deployment\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n with:\n fetch-depth: 0\n - uses: actions/setup-node@v4\n with:\n node-version: 18\n cache: yarn\n\n - name: Install dependencies\n run: yarn install --frozen-lockfile\n - name: Test build website\n run: yarn build\n"})})]})]}),(0,t.jsxs)(l.A,{value:"remote",label:"Remote",children:[(0,t.jsx)(n.p,{children:"A cross-repo publish is more difficult to set up because you need to push to another repo with permission checks. We will be using SSH to do the authentication."}),(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Generate a new ",(0,t.jsx)(n.a,{href:"https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent",children:"SSH key"}),". Since this SSH key will be used in CI, make sure to not enter any passphrase."]}),"\n",(0,t.jsxs)(n.li,{children:["By default, your public key should have been created in ",(0,t.jsx)(n.code,{children:"~/.ssh/id_rsa.pub"}),"; otherwise, use the name you've provided in the previous step to add your key to ",(0,t.jsx)(n.a,{href:"https://developer.github.com/v3/guides/managing-deploy-keys/",children:"GitHub deploy keys"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Copy the key to clipboard with ",(0,t.jsx)(n.code,{children:"pbcopy < ~/.ssh/id_rsa.pub"})," and paste it as a ",(0,t.jsx)(n.a,{href:"https://developer.github.com/v3/guides/managing-deploy-keys/#deploy-keys",children:"deploy key"})," in the deployment repository. Copy the file content if the command line doesn't work for you. Check the box for ",(0,t.jsx)(n.code,{children:"Allow write access"})," before saving your deployment key."]}),"\n",(0,t.jsxs)(n.li,{children:["You'll need your private key as a ",(0,t.jsx)(n.a,{href:"https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets",children:"GitHub secret"})," to allow Docusaurus to run the deployment for you."]}),"\n",(0,t.jsxs)(n.li,{children:["Copy your private key with ",(0,t.jsx)(n.code,{children:"pbcopy < ~/.ssh/id_rsa"})," and paste a GitHub secret with the name ",(0,t.jsx)(n.code,{children:"GH_PAGES_DEPLOY"})," on your source repository. Copy the file content if the command line doesn't work for you. Save your secret."]}),"\n",(0,t.jsxs)(n.li,{children:["Create your ",(0,t.jsx)(n.a,{href:"https://docs.github.com/en/actions/use-cases-and-examples/creating-an-example-workflow",children:"documentation workflow"})," in the ",(0,t.jsx)(n.code,{children:".github/workflows/"})," directory. In this example it's the ",(0,t.jsx)(n.code,{children:"deploy.yml"})," file."]}),"\n"]}),(0,t.jsx)(n.p,{children:"At this point, you should have:"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"the source repo with the GitHub workflow set with the private SSH key as the GitHub Secret, and"}),"\n",(0,t.jsx)(n.li,{children:"your deployment repo set with the public SSH key in GitHub Deploy Keys."}),"\n"]}),(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"GitHub action file"}),(0,t.jsxs)(n.admonition,{type:"warning",children:[(0,t.jsxs)(n.p,{children:["Please make sure that you replace ",(0,t.jsx)(n.code,{children:"actions@github.com"})," with your GitHub email and ",(0,t.jsx)(n.code,{children:"gh-actions"})," with your name."]}),(0,t.jsxs)(n.p,{children:["This file assumes you are using Yarn. If you use npm, change ",(0,t.jsx)(n.code,{children:"cache: yarn"}),", ",(0,t.jsx)(n.code,{children:"yarn install --frozen-lockfile"}),", ",(0,t.jsx)(n.code,{children:"yarn build"})," to ",(0,t.jsx)(n.code,{children:"cache: npm"}),", ",(0,t.jsx)(n.code,{children:"npm ci"}),", ",(0,t.jsx)(n.code,{children:"npm run build"})," accordingly."]})]}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yml",metastring:'title=".github/workflows/deploy.yml"',children:"name: Deploy to GitHub Pages\n\non:\n pull_request:\n branches: [main]\n push:\n branches: [main]\n\npermissions:\n contents: write\n\njobs:\n test-deploy:\n if: github.event_name != 'push'\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n with:\n fetch-depth: 0\n - uses: actions/setup-node@v4\n with:\n node-version: 18\n cache: yarn\n - name: Install dependencies\n run: yarn install --frozen-lockfile\n - name: Test build website\n run: yarn build\n deploy:\n if: github.event_name != 'pull_request'\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n with:\n fetch-depth: 0\n - uses: actions/setup-node@v4\n with:\n node-version: 18\n cache: yarn\n - uses: webfactory/ssh-agent@v0.5.0\n with:\n ssh-private-key: ${{ secrets.GH_PAGES_DEPLOY }}\n - name: Deploy to GitHub Pages\n env:\n USE_SSH: true\n run: |\n git config --global user.email \"actions@github.com\"\n git config --global user.name \"gh-actions\"\n yarn install --frozen-lockfile\n yarn deploy\n"})})]})]})]}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"Site not deployed properly?"}),(0,t.jsx)(n.p,{children:"After pushing to main, if you don't see your site published at the desired location (for example, it says \"There isn't a GitHub Pages site here\", or it's showing your repo's README.md file), try the following:"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Wait about three minutes and refresh. It may take a few minutes for GitHub pages to pick up the new files."}),"\n",(0,t.jsx)(n.li,{children:"Check your repo's landing page for a little green tick next to the last commit's title, indicating the CI has passed. If you see a cross, it means the build or deployment failed, and you should check the log for more debugging information."}),"\n",(0,t.jsxs)(n.li,{children:['Click on the tick and make sure you see a "Deploy to GitHub Pages" workflow. Names like "pages build and deployment / deploy" are GitHub\'s default workflows, indicating your custom deployment workflow failed to be triggered at all. Make sure the YAML files are placed under the ',(0,t.jsx)(n.code,{children:".github/workflows"}),' folder, and that the trigger condition is set correctly (e.g., if your default branch is "master" instead of "main", you need to change the ',(0,t.jsx)(n.code,{children:"on.push"})," property)."]}),"\n",(0,t.jsxs)(n.li,{children:['Under your repo\'s Settings > Pages, make sure the "Source" (which is the source for the ',(0,t.jsx)(n.em,{children:"deployment"}),' files, not "source" as in our terminology) is set to "gh-pages" + "/ (root)", since we are using ',(0,t.jsx)(n.code,{children:"gh-pages"})," as the deployment branch."]}),"\n"]}),(0,t.jsx)(n.p,{children:"If you are using a custom domain:"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Verify that you have the correct DNS records set up if you're using a custom domain. See ",(0,t.jsx)(n.a,{href:"https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages",children:"GitHub pages documentation on configuring custom domains"}),". Also, please be aware that it may take up to 24 hours for DNS changes to propagate through the internet."]}),"\n"]})]}),"\n",(0,t.jsx)(n.h3,{id:"triggering-deployment-with-travis-ci",children:"Triggering deployment with Travis CI"}),"\n",(0,t.jsxs)(n.p,{children:["Continuous integration (CI) services are typically used to perform routine tasks whenever new commits are checked in to source control. These tasks can be any combination of running unit tests and integration tests, automating builds, publishing packages to npm, and deploying changes to your website. All you need to do to automate the deployment of your website is to invoke the ",(0,t.jsx)(n.code,{children:"yarn deploy"})," script whenever your website is updated. The following section covers how to do just that using ",(0,t.jsx)(n.a,{href:"https://travis-ci.com/",children:"Travis CI"}),", a popular continuous integration service provider."]}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Go to ",(0,t.jsx)(n.a,{href:"https://github.com/settings/tokens",children:"https://github.com/settings/tokens"})," and generate a new ",(0,t.jsx)(n.a,{href:"https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/",children:"personal access token"}),". When creating the token, grant it the ",(0,t.jsx)(n.code,{children:"repo"})," scope so that it has the permissions it needs."]}),"\n",(0,t.jsxs)(n.li,{children:["Using your GitHub account, ",(0,t.jsx)(n.a,{href:"https://github.com/marketplace/travis-ci",children:"add the Travis CI app"})," to the repository you want to activate."]}),"\n",(0,t.jsxs)(n.li,{children:["Open your Travis CI dashboard. The URL looks like ",(0,t.jsx)(n.code,{children:"https://travis-ci.com/USERNAME/REPO"}),", and navigate to the ",(0,t.jsx)(n.code,{children:"More options > Setting > Environment Variables"})," section of your repository."]}),"\n",(0,t.jsxs)(n.li,{children:["Create a new environment variable named ",(0,t.jsx)(n.code,{children:"GH_TOKEN"})," with your newly generated token as its value, then ",(0,t.jsx)(n.code,{children:"GH_EMAIL"})," (your email address) and ",(0,t.jsx)(n.code,{children:"GH_NAME"})," (your GitHub username)."]}),"\n",(0,t.jsxs)(n.li,{children:["Create a ",(0,t.jsx)(n.code,{children:".travis.yml"})," on the root of your repository with the following:"]}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yml",metastring:'title=".travis.yml"',children:'language: node_js\nnode_js:\n - 18\nbranches:\n only:\n - main\ncache:\n yarn: true\nscript:\n - git config --global user.name "${GH_NAME}"\n - git config --global user.email "${GH_EMAIL}"\n - echo "machine github.com login ${GH_NAME} password ${GH_TOKEN}" > ~/.netrc\n - yarn install\n - GIT_USER="${GH_NAME}" yarn deploy\n'})}),"\n",(0,t.jsxs)(n.p,{children:["Now, whenever a new commit lands in ",(0,t.jsx)(n.code,{children:"main"}),", Travis CI will run your suite of tests and if everything passes, your website will be deployed via the ",(0,t.jsx)(n.code,{children:"yarn deploy"})," script."]}),"\n",(0,t.jsx)(n.h3,{id:"triggering-deployment-with-buddy",children:"Triggering deployment with Buddy"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://buddy.works/",children:"Buddy"})," is an easy-to-use CI/CD tool that allows you to automate the deployment of your portal to different environments, including GitHub Pages."]}),"\n",(0,t.jsx)(n.p,{children:"Follow these steps to create a pipeline that automatically deploys a new version of your website whenever you push changes to the selected branch of your project:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Go to ",(0,t.jsx)(n.a,{href:"https://github.com/settings/tokens",children:"https://github.com/settings/tokens"})," and generate a new ",(0,t.jsx)(n.a,{href:"https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/",children:"personal access token"}),". When creating the token, grant it the ",(0,t.jsx)(n.code,{children:"repo"})," scope so that it has the permissions it needs."]}),"\n",(0,t.jsx)(n.li,{children:"Sign in to your Buddy account and create a new project."}),"\n",(0,t.jsx)(n.li,{children:"Choose GitHub as your git hosting provider and select the repository with the code of your website."}),"\n",(0,t.jsxs)(n.li,{children:["Using the left navigation panel, switch to the ",(0,t.jsx)(n.code,{children:"Pipelines"})," view."]}),"\n",(0,t.jsxs)(n.li,{children:["Create a new pipeline. Define its name, set the trigger mode to ",(0,t.jsx)(n.code,{children:"On push"}),", and select the branch that triggers the pipeline execution."]}),"\n",(0,t.jsxs)(n.li,{children:["Add a ",(0,t.jsx)(n.code,{children:"Node.js"})," action."]}),"\n",(0,t.jsx)(n.li,{children:"Add these commands in the action's terminal:"}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:'GIT_USER=<GH_PERSONAL_ACCESS_TOKEN>\ngit config --global user.email "<YOUR_GH_EMAIL>"\ngit config --global user.name "<YOUR_GH_USERNAME>"\nyarn deploy\n'})}),"\n",(0,t.jsxs)(n.p,{children:["After creating this simple pipeline, each new commit pushed to the branch you selected deploys your website to GitHub Pages using ",(0,t.jsx)(n.code,{children:"yarn deploy"}),". Read ",(0,t.jsx)(n.a,{href:"https://buddy.works/guides/react-docusaurus",children:"this guide"})," to learn more about setting up a CI/CD pipeline for Docusaurus."]}),"\n",(0,t.jsx)(n.h3,{id:"using-azure-pipelines",children:"Using Azure Pipelines"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Sign Up at ",(0,t.jsx)(n.a,{href:"https://azure.microsoft.com/en-us/services/devops/pipelines/",children:"Azure Pipelines"})," if you haven't already."]}),"\n",(0,t.jsx)(n.li,{children:"Create an organization. Within the organization, create a project and connect your repository from GitHub."}),"\n",(0,t.jsxs)(n.li,{children:["Go to ",(0,t.jsx)(n.a,{href:"https://github.com/settings/tokens",children:"https://github.com/settings/tokens"})," and generate a new ",(0,t.jsx)(n.a,{href:"https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/",children:"personal access token"})," with the ",(0,t.jsx)(n.code,{children:"repo"})," scope."]}),"\n",(0,t.jsxs)(n.li,{children:["In the project page (which looks like ",(0,t.jsx)(n.code,{children:"https://dev.azure.com/ORG_NAME/REPO_NAME/_build"}),"), create a new pipeline with the following text. Also, click on edit and add a new environment variable named ",(0,t.jsx)(n.code,{children:"GH_TOKEN"})," with your newly generated token as its value, then ",(0,t.jsx)(n.code,{children:"GH_EMAIL"})," (your email address) and ",(0,t.jsx)(n.code,{children:"GH_NAME"})," (your GitHub username). Make sure to mark them as secret. Alternatively, you can also add a file named ",(0,t.jsx)(n.code,{children:"azure-pipelines.yml"})," at your repository root."]}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yml",metastring:'title="azure-pipelines.yml"',children:'trigger:\n - main\n\npool:\n vmImage: ubuntu-latest\n\nsteps:\n - checkout: self\n persistCredentials: true\n\n - task: NodeTool@0\n inputs:\n versionSpec: \'18\'\n displayName: Install Node.js\n\n - script: |\n git config --global user.name "${GH_NAME}"\n git config --global user.email "${GH_EMAIL}"\n git checkout -b main\n echo "machine github.com login ${GH_NAME} password ${GH_TOKEN}" > ~/.netrc\n yarn install\n GIT_USER="${GH_NAME}" yarn deploy\n env:\n GH_NAME: $(GH_NAME)\n GH_EMAIL: $(GH_EMAIL)\n GH_TOKEN: $(GH_TOKEN)\n displayName: Install and build\n'})}),"\n",(0,t.jsx)(n.h3,{id:"using-drone",children:"Using Drone"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Create a new SSH key that will be the ",(0,t.jsx)(n.a,{href:"https://docs.github.com/en/free-pro-team@latest/developers/overview/managing-deploy-keys#deploy-keys",children:"deploy key"})," for your project."]}),"\n",(0,t.jsxs)(n.li,{children:["Name your private and public keys to be specific and so that it does not overwrite your other ",(0,t.jsx)(n.a,{href:"https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent",children:"SSH keys"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Go to ",(0,t.jsx)(n.code,{children:"https://github.com/USERNAME/REPO/settings/keys"})," and add a new deploy key by pasting in the public key you just generated."]}),"\n",(0,t.jsxs)(n.li,{children:["Open your Drone.io dashboard and log in. The URL looks like ",(0,t.jsx)(n.code,{children:"https://cloud.drone.io/USERNAME/REPO"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Click on the repository, click on activate repository, and add a secret called ",(0,t.jsx)(n.code,{children:"git_deploy_private_key"})," with your private key value that you just generated."]}),"\n",(0,t.jsxs)(n.li,{children:["Create a ",(0,t.jsx)(n.code,{children:".drone.yml"})," on the root of your repository with the below text."]}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yml",metastring:'title=".drone.yml"',children:'kind: pipeline\ntype: docker\ntrigger:\n event:\n - tag\n- name: Website\n image: node\n commands:\n - mkdir -p $HOME/.ssh\n - ssh-keyscan -t rsa github.com >> $HOME/.ssh/known_hosts\n - echo "$GITHUB_PRIVATE_KEY" > "$HOME/.ssh/id_rsa"\n - chmod 0600 $HOME/.ssh/id_rsa\n - cd website\n - yarn install\n - yarn deploy\n environment:\n USE_SSH: true\n GITHUB_PRIVATE_KEY:\n from_secret: git_deploy_private_key\n'})}),"\n",(0,t.jsx)(n.p,{children:"Now, whenever you push a new tag to GitHub, this trigger will start the drone CI job to publish your website."}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-flightcontrol",children:"Deploying to Flightcontrol"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://www.flightcontrol.dev/?ref=docusaurus",children:"Flightcontrol"})," is a service that automatically builds and deploys your web apps to AWS Fargate directly from your Git repository. It gives you full access to inspect and make infrastructure changes without the limitations of a traditional PaaS."]}),"\n",(0,t.jsxs)(n.p,{children:["Get started by following ",(0,t.jsx)(n.a,{href:"https://www.flightcontrol.dev/docs/reference/examples/docusaurus/?ref=docusaurus",children:"Flightcontrol's step-by-step Docusaurus guide"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-koyeb",children:"Deploying to Koyeb"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://www.koyeb.com",children:"Koyeb"})," is a developer-friendly serverless platform to deploy apps globally. The platform lets you seamlessly run Docker containers, web apps, and APIs with git-based deployment, native autoscaling, a global edge network, and built-in service mesh and discovery. Check out the ",(0,t.jsx)(n.a,{href:"https://www.koyeb.com/tutorials/deploy-docusaurus-on-koyeb",children:"Koyeb's Docusaurus deployment guide"})," to get started."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-render",children:"Deploying to Render"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://render.com",children:"Render"})," offers ",(0,t.jsx)(n.a,{href:"https://render.com/docs/static-sites",children:"free static site hosting"})," with fully managed SSL, custom domains, a global CDN, and continuous auto-deploy from your Git repo. Get started in just a few minutes by following ",(0,t.jsx)(n.a,{href:"https://render.com/docs/deploy-docusaurus",children:"Render's guide to deploying Docusaurus"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-qovery",children:"Deploying to Qovery"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://www.qovery.com",children:"Qovery"})," is a fully-managed cloud platform that runs on your AWS, Digital Ocean, and Scaleway account where you can host static sites, backend APIs, databases, cron jobs, and all your other apps in one place."]}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Create a Qovery account. Visit the ",(0,t.jsx)(n.a,{href:"https://console.qovery.com",children:"Qovery dashboard"})," to create an account if you don't already have one."]}),"\n",(0,t.jsxs)(n.li,{children:["Create a project.","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Click on ",(0,t.jsx)(n.strong,{children:"Create project"})," and give a name to your project."]}),"\n",(0,t.jsxs)(n.li,{children:["Click on ",(0,t.jsx)(n.strong,{children:"Next"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Create a new environment.","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Click on ",(0,t.jsx)(n.strong,{children:"Create environment"})," and give a name (e.g. staging, production)."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Add an application.","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Click on ",(0,t.jsx)(n.strong,{children:"Create an application"}),", give a name and select your GitHub or GitLab repository where your Docusaurus app is located."]}),"\n",(0,t.jsx)(n.li,{children:"Define the main branch name and the root application path."}),"\n",(0,t.jsxs)(n.li,{children:["Click on ",(0,t.jsx)(n.strong,{children:"Create"}),". After the application is created:"]}),"\n",(0,t.jsxs)(n.li,{children:["Navigate to your application ",(0,t.jsx)(n.strong,{children:"Settings"})]}),"\n",(0,t.jsxs)(n.li,{children:["Select ",(0,t.jsx)(n.strong,{children:"Port"})]}),"\n",(0,t.jsx)(n.li,{children:"Add port used by your Docusaurus application"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Deploy","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["All you have to do now is to navigate to your application and click on ",(0,t.jsx)(n.strong,{children:"Deploy"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://hub.qovery.com/img/heroku/heroku-1.png",alt:"Deploy the app"})}),"\n",(0,t.jsxs)(n.p,{children:["That's it. Watch the status and wait till the app is deployed. To open the application in your browser, click on ",(0,t.jsx)(n.strong,{children:"Action"})," and ",(0,t.jsx)(n.strong,{children:"Open"})," in your application overview."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-hostman",children:"Deploying to Hostman"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://hostman.com/",children:"Hostman"})," allows you to host static websites for free. Hostman automates everything, you just need to connect your repository and follow these easy steps:"]}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Create a service."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["To deploy a Docusaurus static website, click ",(0,t.jsx)(n.strong,{children:"Create"})," in the top-left corner of your ",(0,t.jsx)(n.a,{href:"https://dashboard.hostman.com/",children:"Dashboard"})," and choose ",(0,t.jsx)(n.strong,{children:"Front-end app or static website"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Select the project to deploy."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"If you are logged in to Hostman with your GitHub, GitLab, or Bitbucket account, you will see the repository with your projects, including the private ones."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Choose the project you want to deploy. It must contain the directory with the project's files (e.g. ",(0,t.jsx)(n.code,{children:"website"}),")."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["To access a different repository, click ",(0,t.jsx)(n.strong,{children:"Connect another repository"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"If you didn't use your Git account credentials to log in, you'll be able to access the necessary account now, and then select the project."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Configure the build settings."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Next, the ",(0,t.jsx)(n.strong,{children:"Website customization"})," window will appear. Choose the ",(0,t.jsx)(n.strong,{children:"Static website"})," option from the list of frameworks."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.strong,{children:"Directory with app"})," points at the directory that will contain the project's files after the build. If you selected the repository with the contents of the website (or ",(0,t.jsx)(n.code,{children:"my_website"}),") directory during Step 2, you can leave it empty."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"The standard build command for Docusaurus is:"}),"\n",(0,t.jsxs)(r.A,{groupId:"npm2yarn",children:[(0,t.jsx)(l.A,{value:"npm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"npm run build\n"})})}),(0,t.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"yarn build\n"})})}),(0,t.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"pnpm run build\n"})})})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["You can modify the build command if needed. You can enter multiple commands separated by ",(0,t.jsx)(n.code,{children:"&&"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Deploy."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Click ",(0,t.jsx)(n.strong,{children:"Deploy"})," to start the build process."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Once it starts, you will enter the deployment log. If there are any issues with the code, you will get warning or error messages in the log specifying the cause of the problem. Usually, the log contains all the debugging data you'll need."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"When the deployment is complete, you will receive an email notification and also see a log entry. All done! Your project is up and ready."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-surge",children:"Deploying to Surge"}),"\n",(0,t.jsxs)(n.p,{children:["Surge is a ",(0,t.jsx)(n.a,{href:"https://surge.sh/help/getting-started-with-surge",children:"static web hosting platform"})," that you can use to deploy your Docusaurus project from the command line in seconds. Deploying your project to Surge is easy and free (including custom domains and SSL certs)."]}),"\n",(0,t.jsx)(n.p,{children:"Deploy your app in a matter of seconds using Surge with the following steps:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["First, install Surge using npm by running the following command:","\n",(0,t.jsxs)(r.A,{groupId:"npm2yarn",children:[(0,t.jsx)(l.A,{value:"npm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"npm install -g surge\n"})})}),(0,t.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"yarn global add surge\n"})})}),(0,t.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"pnpm add -g surge\n"})})})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["To build the static files of your site for production in the root directory of your project, run:","\n",(0,t.jsxs)(r.A,{groupId:"npm2yarn",children:[(0,t.jsx)(l.A,{value:"npm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"npm run build\n"})})}),(0,t.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"yarn build\n"})})}),(0,t.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"pnpm run build\n"})})})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Then, run this command inside the root directory of your project:","\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"surge build/\n"})}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"First-time users of Surge would be prompted to create an account from the command line (which happens only once)."}),"\n",(0,t.jsxs)(n.p,{children:["Confirm that the site you want to publish is in the ",(0,t.jsx)(n.code,{children:"build"})," directory. A randomly generated subdomain ",(0,t.jsx)(n.code,{children:"*.surge.sh subdomain"})," is always given (which can be edited)."]}),"\n",(0,t.jsx)(n.h3,{id:"using-your-domain",children:"Using your domain"}),"\n",(0,t.jsx)(n.p,{children:"If you have a domain name you can deploy your site using the command:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"surge build/ your-domain.com\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Your site is now deployed for free at ",(0,t.jsx)(n.code,{children:"subdomain.surge.sh"})," or ",(0,t.jsx)(n.code,{children:"your-domain.com"})," depending on the method you chose."]}),"\n",(0,t.jsx)(n.h3,{id:"setting-up-cname-file",children:"Setting up CNAME file"}),"\n",(0,t.jsx)(n.p,{children:"Store your domain in a CNAME file for future deployments with the following command:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"echo subdomain.surge.sh > CNAME\n"})}),"\n",(0,t.jsxs)(n.p,{children:["You can deploy any other changes in the future with the command ",(0,t.jsx)(n.code,{children:"surge"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-stormkit",children:"Deploying to Stormkit"}),"\n",(0,t.jsxs)(n.p,{children:["You can deploy your Docusaurus project to ",(0,t.jsx)(n.a,{href:"https://www.stormkit.io",children:"Stormkit"}),", a deployment platform for static websites, single-page applications (SPAs), and serverless functions. For detailed instructions, refer to this ",(0,t.jsx)(n.a,{href:"https://www.stormkit.io/blog/how-to-deploy-docusarous",children:"guide"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-quantcdn",children:"Deploying to QuantCDN"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Install ",(0,t.jsx)(n.a,{href:"https://docs.quantcdn.io/docs/cli/get-started",children:"Quant CLI"})]}),"\n",(0,t.jsxs)(n.li,{children:["Create a QuantCDN account by ",(0,t.jsx)(n.a,{href:"https://dashboard.quantcdn.io/register",children:"signing up"})]}),"\n",(0,t.jsxs)(n.li,{children:["Initialize your project with ",(0,t.jsx)(n.code,{children:"quant init"})," and fill in your credentials:","\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"quant init\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Deploy your site.","\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"quant deploy\n"})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["See ",(0,t.jsx)(n.a,{href:"https://docs.quantcdn.io/docs/cli/continuous-integration",children:"docs"})," and ",(0,t.jsx)(n.a,{href:"https://www.quantcdn.io/blog",children:"blog"})," for more examples and use cases for deploying to QuantCDN."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-layer0",children:"Deploying to Layer0"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://www.layer0.co",children:"Layer0"})," is an all-in-one platform to develop, deploy, preview, experiment on, monitor, and run your headless frontend. It is focused on large, dynamic websites and best-in-class performance through EdgeJS (a JavaScript-based Content Delivery Network), predictive prefetching, and performance monitoring. Layer0 offers a free tier. Get started in just a few minutes by following ",(0,t.jsx)(n.a,{href:"https://docs.layer0.co/guides/docusaurus",children:"Layer0's guide to deploying Docusaurus"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-cloudflare-pages",children:"Deploying to Cloudflare Pages"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://pages.cloudflare.com/",children:"Cloudflare Pages"})," is a Jamstack platform for frontend developers to collaborate and deploy websites. Get started within a few minutes by following ",(0,t.jsx)(n.a,{href:"https://dev.to/apidev234/deploying-docusaurus-to-cloudflare-pages-565g",children:"this article"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-azure-static-web-apps",children:"Deploying to Azure Static Web Apps"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://docs.microsoft.com/en-us/azure/static-web-apps/overview",children:"Azure Static Web Apps"})," is a service that automatically builds and deploys full-stack web apps to Azure directly from the code repository, simplifying the developer experience for CI/CD. Static Web Apps separates the web application's static assets from its dynamic (API) endpoints. Static assets are served from globally-distributed content servers, making it faster for clients to retrieve files using servers nearby. Dynamic APIs are scaled with serverless architectures using an event-driven functions-based approach that is more cost-effective and scales on demand. Get started in a few minutes by following ",(0,t.jsx)(n.a,{href:"https://dev.to/azure/11-share-content-with-docusaurus-azure-static-web-apps-30hc",children:"this step-by-step guide"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-kinsta",children:"Deploying to Kinsta"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://kinsta.com/static-site-hosting",children:"Kinsta Static Site Hosting"})," lets you deploy up to 100 static sites for free, custom domains with SSL, 100 GB monthly bandwidth, and 260+ Cloudflare CDN locations."]}),"\n",(0,t.jsxs)(n.p,{children:["Get started in just a few clicks by following our ",(0,t.jsx)(n.a,{href:"https://kinsta.com/docs/docusaurus-example/",children:"Docusaurus on Kinsta"})," article."]})]})}function p(e={}){let{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(u,{...e})}):u(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>l});var i=s(63696);let t={},o=i.createContext(t);function r(e){let n=i.useContext(o);return i.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(t):e.components||t:r(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/06c6ffc3.d59141df.js b/assets/js/06c6ffc3.d59141df.js new file mode 100644 index 0000000000..d7d495bb0b --- /dev/null +++ b/assets/js/06c6ffc3.d59141df.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[63340],{15995:(e,n,s)=>{s.d(n,{A:()=>o});var i=s(62540);s(63696);var t=s(11750);function o({children:e,hidden:n,className:s}){return(0,i.jsx)("div",{role:"tabpanel",className:(0,t.A)("tabItem_pnkT",s),hidden:n,children:e})}},27446:(e,n,s)=>{s.d(n,{A:()=>b});var i=s(62540),t=s(63696),o=s(11750),r=s(7846),l=s(49519),a=s(96439),c=s(19739),d=s(66904),h=s(79244);function u(e){var n,s;return null!==(s=null===(n=t.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,t.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==s?s:[]}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}var g=s(10709);function y(e){for(var n=1;n<arguments.length;n++){var s=null!=arguments[n]?arguments[n]:{},i=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(s).filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable}))),i.forEach(function(n){var i;i=s[n],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return e}function m(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);s.push.apply(s,i)}return s})(Object(n)).forEach(function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(n,s))}),e}function j({className:e,block:n,selectedValue:s,selectValue:t,tabValues:l}){let a=[],{blockElementScrollPositionUntilNextRender:c}=(0,r.a_)(),d=e=>{let n=e.currentTarget,i=l[a.indexOf(n)].value;i!==s&&(c(n),t(i))},h=e=>{var n,s;let i=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let s=a.indexOf(e.currentTarget)+1;i=null!==(n=a[s])&&void 0!==n?n:a[0];break}case"ArrowLeft":{let n=a.indexOf(e.currentTarget)-1;i=null!==(s=a[n])&&void 0!==s?s:a[a.length-1]}}null==i||i.focus()};return(0,i.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.A)("tabs",{"tabs--block":n},e),children:l.map(({value:e,label:n,attributes:t})=>(0,i.jsx)("li",m(y({role:"tab",tabIndex:s===e?0:-1,"aria-selected":s===e,ref:e=>a.push(e),onKeyDown:h,onClick:d},t),{className:(0,o.A)("tabs__item","tabItem_AQgk",null==t?void 0:t.className,{"tabs__item--active":s===e}),children:null!=n?n:e}),e))})}function x({lazy:e,children:n,selectedValue:s}){let r=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=r.find(e=>e.props.value===s);return e?(0,t.cloneElement)(e,{className:(0,o.A)("margin-top--md",e.props.className)}):null}return(0,i.jsx)("div",{className:"margin-top--md",children:r.map((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==s}))})}function f(e){let n=function(e){let{defaultValue:n,queryString:s=!1,groupId:i}=e,o=function(e){let{values:n,children:s}=e;return(0,t.useMemo)(()=>{let e=null!=n?n:u(s).map(({props:{value:e,label:n,attributes:s,default:i}})=>({value:e,label:n,attributes:s,default:i}));return!function(e){let n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,s])}(e),[r,g]=(0,t.useState)(()=>(function({defaultValue:e,tabValues:n}){var s;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let i=null!==(s=n.find(e=>e.default))&&void 0!==s?s:n[0];if(!i)throw Error("Unexpected error: 0 tabValues");return i.value})({defaultValue:n,tabValues:o})),[y,m]=function({queryString:e=!1,groupId:n}){let s=(0,l.W6)(),i=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,c.aZ)(i),(0,t.useCallback)(e=>{var n,t;if(!i)return;let o=new URLSearchParams(s.location.search);o.set(i,e),s.replace((n=function(e){for(var n=1;n<arguments.length;n++){var s=null!=arguments[n]?arguments[n]:{},i=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(s).filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable}))),i.forEach(function(n){var i;i=s[n],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return e}({},s.location),t=t={search:o.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);s.push.apply(s,i)}return s})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))},[i,s])]}({queryString:s,groupId:i}),[j,x]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[s,i]=(0,h.Dv)(n);return[s,(0,t.useCallback)(e=>{n&&i.set(e)},[n,i])]}({groupId:i}),f=(()=>{let e=null!=y?y:j;return p({value:e,tabValues:o})?e:null})();return(0,a.A)(()=>{f&&g(f)},[f]),{selectedValue:r,selectValue:(0,t.useCallback)(e=>{if(!p({value:e,tabValues:o}))throw Error(`Can't select invalid tab value=${e}`);g(e),m(e),x(e)},[m,x,o]),tabValues:o}}(e);return(0,i.jsxs)("div",{className:(0,o.A)("tabs-container","tabList_Qoir"),children:[(0,i.jsx)(j,y({},n,e)),(0,i.jsx)(x,y({},n,e))]})}function b(e){let n=(0,g.A)();return(0,i.jsx)(f,m(y({},e),{children:u(e.children)}),String(n))}},27703:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>h});let i=JSON.parse('{"id":"deployment","title":"Deployment","description":"Deploy your Docusaurus app for production on a range of static site hosting services.","source":"@site/docs/deployment.mdx","sourceDirName":".","slug":"/deployment","permalink":"/docs/deployment","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/deployment.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"Deploy your Docusaurus app for production on a range of static site hosting services."},"sidebar":"docs","previous":{"title":"Using Plugins","permalink":"/docs/using-plugins"},"next":{"title":"i18n - Introduction","permalink":"/docs/i18n/introduction"}}');var t=s(62540),o=s(43023),r=s(27446),l=s(15995);let a={description:"Deploy your Docusaurus app for production on a range of static site hosting services."},c="Deployment",d={},h=[{value:"Configuration",id:"configuration",level:2},{value:"Testing your Build Locally",id:"testing-build-locally",level:2},{value:"Trailing slash configuration",id:"trailing-slashes",level:2},{value:"Using environment variables",id:"using-environment-variables",level:2},{value:"Choosing a hosting provider",id:"choosing-a-hosting-provider",level:2},{value:"Self-Hosting",id:"self-hosting",level:2},{value:"Deploying to Netlify",id:"deploying-to-netlify",level:2},{value:"Deploying to Vercel",id:"deploying-to-vercel",level:2},{value:"Deploying to GitHub Pages",id:"deploying-to-github-pages",level:2},{value:"Overview",id:"github-pages-overview",level:3},{value:"<code>docusaurus.config.js</code> settings",id:"docusaurusconfigjs-settings",level:3},{value:"Environment settings",id:"environment-settings",level:3},{value:"Deploy",id:"deploy",level:3},{value:"Triggering deployment with GitHub Actions",id:"triggering-deployment-with-github-actions",level:3},{value:"Triggering deployment with Travis CI",id:"triggering-deployment-with-travis-ci",level:3},{value:"Triggering deployment with Buddy",id:"triggering-deployment-with-buddy",level:3},{value:"Using Azure Pipelines",id:"using-azure-pipelines",level:3},{value:"Using Drone",id:"using-drone",level:3},{value:"Deploying to Flightcontrol",id:"deploying-to-flightcontrol",level:2},{value:"Deploying to Koyeb",id:"deploying-to-koyeb",level:2},{value:"Deploying to Render",id:"deploying-to-render",level:2},{value:"Deploying to Qovery",id:"deploying-to-qovery",level:2},{value:"Deploying to Hostman",id:"deploying-to-hostman",level:2},{value:"Deploying to Surge",id:"deploying-to-surge",level:2},{value:"Using your domain",id:"using-your-domain",level:3},{value:"Setting up CNAME file",id:"setting-up-cname-file",level:3},{value:"Deploying to Stormkit",id:"deploying-to-stormkit",level:2},{value:"Deploying to QuantCDN",id:"deploying-to-quantcdn",level:2},{value:"Deploying to Layer0",id:"deploying-to-layer0",level:2},{value:"Deploying to Cloudflare Pages",id:"deploying-to-cloudflare-pages",level:2},{value:"Deploying to Azure Static Web Apps",id:"deploying-to-azure-static-web-apps",level:2},{value:"Deploying to Kinsta",id:"deploying-to-kinsta",level:2}];function u(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.R)(),...e.components},{Details:s}=n;return s||function(e,n){throw Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"deployment",children:"Deployment"})}),"\n",(0,t.jsx)(n.p,{children:"To build the static files of your website for production, run:"}),"\n",(0,t.jsxs)(r.A,{groupId:"npm2yarn",children:[(0,t.jsx)(l.A,{value:"npm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"npm run build\n"})})}),(0,t.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"yarn build\n"})})}),(0,t.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"pnpm run build\n"})})})]}),"\n",(0,t.jsxs)(n.p,{children:["Once it finishes, the static files will be generated within the ",(0,t.jsx)(n.code,{children:"build"})," directory."]}),"\n",(0,t.jsxs)(n.admonition,{type:"note",children:[(0,t.jsxs)(n.p,{children:["The only responsibility of Docusaurus is to build your site and emit static files in ",(0,t.jsx)(n.code,{children:"build"}),"."]}),(0,t.jsx)(n.p,{children:"It is now up to you to choose how to host those static files."})]}),"\n",(0,t.jsxs)(n.p,{children:["You can deploy your site to static site hosting services such as ",(0,t.jsx)(n.a,{href:"https://vercel.com/",children:"Vercel"}),", ",(0,t.jsx)(n.a,{href:"https://pages.github.com/",children:"GitHub Pages"}),", ",(0,t.jsx)(n.a,{href:"https://www.netlify.com/",children:"Netlify"}),", ",(0,t.jsx)(n.a,{href:"https://render.com/docs/static-sites",children:"Render"}),", and ",(0,t.jsx)(n.a,{href:"https://surge.sh/help/getting-started-with-surge",children:"Surge"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"A Docusaurus site is statically rendered, and it can generally work without JavaScript!"}),"\n",(0,t.jsx)(n.h2,{id:"configuration",children:"Configuration"}),"\n",(0,t.jsxs)(n.p,{children:["The following parameters are required in ",(0,t.jsx)(n.code,{children:"docusaurus.config.js"})," to optimize routing and serve files from the correct location:"]}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"url"})}),(0,t.jsxs)(n.td,{children:["URL for your site. For a site deployed at ",(0,t.jsx)(n.code,{children:"https://my-org.com/my-project/"}),", ",(0,t.jsx)(n.code,{children:"url"})," is ",(0,t.jsx)(n.code,{children:"https://my-org.com/"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"baseUrl"})}),(0,t.jsxs)(n.td,{children:["Base URL for your project, with a trailing slash. For a site deployed at ",(0,t.jsx)(n.code,{children:"https://my-org.com/my-project/"}),", ",(0,t.jsx)(n.code,{children:"baseUrl"})," is ",(0,t.jsx)(n.code,{children:"/my-project/"}),"."]})]})]})]}),"\n",(0,t.jsx)(n.h2,{id:"testing-build-locally",children:"Testing your Build Locally"}),"\n",(0,t.jsxs)(n.p,{children:["It is important to test your build locally before deploying it for production. Docusaurus provides a ",(0,t.jsx)(n.a,{href:"/docs/cli#docusaurus-serve-sitedir",children:(0,t.jsx)(n.code,{children:"docusaurus serve"})})," command for that:"]}),"\n",(0,t.jsxs)(r.A,{groupId:"npm2yarn",children:[(0,t.jsx)(l.A,{value:"npm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"npm run serve\n"})})}),(0,t.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"yarn serve\n"})})}),(0,t.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"pnpm run serve\n"})})})]}),"\n",(0,t.jsxs)(n.p,{children:["By default, this will load your site at ",(0,t.jsx)(n.a,{href:"http://localhost:3000/",children:(0,t.jsx)(n.code,{children:"http://localhost:3000/"})}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"trailing-slashes",children:"Trailing slash configuration"}),"\n",(0,t.jsxs)(n.p,{children:["Docusaurus has a ",(0,t.jsxs)(n.a,{href:"/docs/api/docusaurus-config#trailingSlash",children:[(0,t.jsx)(n.code,{children:"trailingSlash"})," config"]})," to allow customizing URLs/links and emitted filename patterns."]}),"\n",(0,t.jsxs)(n.p,{children:["The default value generally works fine. Unfortunately, each static hosting provider has a ",(0,t.jsx)(n.strong,{children:"different behavior"}),", and deploying the exact same site to various hosts can lead to distinct results. Depending on your host, it can be useful to change this config."]}),"\n",(0,t.jsx)(n.admonition,{type:"tip",children:(0,t.jsxs)(n.p,{children:["Use ",(0,t.jsx)(n.a,{href:"https://github.com/slorber/trailing-slash-guide",children:"slorber/trailing-slash-guide"})," to understand better the behavior of your host and configure ",(0,t.jsx)(n.code,{children:"trailingSlash"})," appropriately."]})}),"\n",(0,t.jsx)(n.h2,{id:"using-environment-variables",children:"Using environment variables"}),"\n",(0,t.jsxs)(n.p,{children:["Putting potentially sensitive information in the environment is common practice. However, in a typical Docusaurus website, the ",(0,t.jsx)(n.code,{children:"docusaurus.config.js"})," file is the only interface to the Node.js environment (see ",(0,t.jsx)(n.a,{href:"/docs/advanced/architecture",children:"our architecture overview"}),"), while everything else (MDX pages, React components, etc.) are client side and do not have direct access to the ",(0,t.jsx)(n.code,{children:"process"})," global variable. In this case, you can consider using ",(0,t.jsx)(n.a,{href:"/docs/api/docusaurus-config#customFields",children:(0,t.jsx)(n.code,{children:"customFields"})})," to pass environment variables to the client side."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"// If you are using dotenv (https://www.npmjs.com/package/dotenv)\nimport 'dotenv/config';\n\nexport default {\n title: '...',\n url: process.env.URL, // You can use environment variables to control site specifics as well\n // highlight-start\n customFields: {\n // Put your custom environment here\n teamEmail: process.env.EMAIL,\n },\n // highlight-end\n};\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-jsx",metastring:'title="home.jsx"',children:"import useDocusaurusContext from '@docusaurus/useDocusaurusContext';\n\nexport default function Home() {\n const {\n siteConfig: {customFields},\n } = useDocusaurusContext();\n return <div>Contact us through {customFields.teamEmail}!</div>;\n}\n"})}),"\n",(0,t.jsx)(n.h2,{id:"choosing-a-hosting-provider",children:"Choosing a hosting provider"}),"\n",(0,t.jsx)(n.p,{children:"There are a few common hosting options:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"#self-hosting",children:"Self hosting"})," with an HTTP server like Apache2 or Nginx."]}),"\n",(0,t.jsxs)(n.li,{children:["Jamstack providers (e.g. ",(0,t.jsx)(n.a,{href:"#deploying-to-netlify",children:"Netlify"})," and ",(0,t.jsx)(n.a,{href:"#deploying-to-vercel",children:"Vercel"}),"). We will use them as references, but the same reasoning can apply to other providers."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"#deploying-to-github-pages",children:"GitHub Pages"})," (by definition, it is also Jamstack, but we compare it separately)."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"If you are unsure of which one to choose, ask the following questions:"}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:(0,t.jsx)(n.p,{children:"How many resources (money, person-hours, etc.) am I willing to invest in this?"})}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"\u{1F534} Self-hosting requires experience in networking as well as Linux and web server administration. It's the most difficult option, and would require the most time to manage successfully. Expense-wise, cloud services are almost never free, and purchasing/deploying an onsite server can be even more costly."}),"\n",(0,t.jsx)(n.li,{children:"\u{1F7E2} Jamstack providers can help you set up a working website in almost no time and offer features like server-side redirects that are easily configurable. Many providers offer generous build-time quotas even for free plans that you would almost never exceed. However, free plans have limits, and you would need to pay once you hit those limits. Check the pricing page of your provider for details."}),"\n",(0,t.jsxs)(n.li,{children:["\u{1F7E1} The GitHub Pages deployment workflow can be tedious to set up. (Evidence: see the length of ",(0,t.jsx)(n.a,{href:"#deploying-to-github-pages",children:"Deploying to GitHub Pages"}),"!) However, this service (including build and deployment) is always free for public repositories, and we have detailed instructions to help you make it work."]}),"\n"]})]}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"How much server-side customization do I need?"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"\u{1F7E2} With self-hosting, you have access to the entire server's configuration. You can configure the virtual host to serve different content based on the request URL, you can do complicated server-side redirects, you can implement authentication, and so on. If you need a lot of server-side features, self-host your website."}),"\n",(0,t.jsx)(n.li,{children:"\u{1F7E1} Jamstack usually offers some server-side configuration (e.g. URL formatting (trailing slashes), server-side redirects, etc.)."}),"\n",(0,t.jsx)(n.li,{children:"\u{1F534} GitHub Pages doesn't expose server-side configuration besides enforcing HTTPS and setting CNAME records."}),"\n"]})]}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"Do I need collaboration-friendly deployment workflows?"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"\u{1F7E1} Self-hosted services can leverage continuous deployment functionality like Netlify, but more heavy-lifting is involved. Usually, you would designate a specific person to manage the deployment, and the workflow wouldn't be very git-based as opposed to the other two options."}),"\n",(0,t.jsx)(n.li,{children:"\u{1F7E2} Netlify and Vercel have deploy previews for every pull request, which is useful for a team to review work before merging to production. You can also manage a team with different member access to the deployment."}),"\n",(0,t.jsx)(n.li,{children:"\u{1F7E1} GitHub Pages cannot do deploy previews in a non-convoluted way. One repo can only be associated with one site deployment. On the other hand, you can control who has write access to the site's deployment."}),"\n"]})]}),"\n",(0,t.jsx)(n.p,{children:"There isn't a silver bullet. You need to weigh your needs and resources before making a choice."}),"\n",(0,t.jsx)(n.h2,{id:"self-hosting",children:"Self-Hosting"}),"\n",(0,t.jsxs)(n.p,{children:["Docusaurus can be self-hosted using ",(0,t.jsx)(n.a,{href:"/docs/cli#docusaurus-serve-sitedir",children:(0,t.jsx)(n.code,{children:"docusaurus serve"})}),". Change port using ",(0,t.jsx)(n.code,{children:"--port"})," and ",(0,t.jsx)(n.code,{children:"--host"})," to change host."]}),"\n",(0,t.jsxs)(r.A,{groupId:"npm2yarn",children:[(0,t.jsx)(l.A,{value:"npm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"npm run serve -- --build --port 80 --host 0.0.0.0\n"})})}),(0,t.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"yarn serve --build --port 80 --host 0.0.0.0\n"})})}),(0,t.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"pnpm run serve --build --port 80 --host 0.0.0.0\n"})})})]}),"\n",(0,t.jsx)(n.admonition,{type:"warning",children:(0,t.jsx)(n.p,{children:"It is not the best option, compared to a static hosting provider / CDN."})}),"\n",(0,t.jsxs)(n.admonition,{type:"warning",children:[(0,t.jsx)(n.p,{children:"In the following sections, we will introduce a few common hosting providers and how they should be configured to deploy Docusaurus sites most efficiently. Docusaurus is not affiliated with any of these services, and this information is provided for convenience only. Some of the write-ups are provided by third-parties, and recent API changes may not be reflected on our side. If you see outdated content, PRs are welcome."}),(0,t.jsx)(n.p,{children:"Because we can only provide this content on a best-effort basis only, we have stopped accepting PRs adding new hosting options. You can, however, publish your writeup on a separate site (e.g. your blog, or the provider's official website), and ask us to include a link to your writeup."})]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-netlify",children:"Deploying to Netlify"}),"\n",(0,t.jsxs)(n.p,{children:["To deploy your Docusaurus sites to ",(0,t.jsx)(n.a,{href:"https://www.netlify.com/",children:"Netlify"}),", first make sure the following options are properly configured:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // highlight-start\n url: 'https://docusaurus-2.netlify.app', // Url to your site with no trailing slash\n baseUrl: '/', // Base directory of your site relative to your repo\n // highlight-end\n // ...\n};\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Then, ",(0,t.jsx)(n.a,{href:"https://app.netlify.com/start",children:"create your site with Netlify"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"While you set up the site, specify the build commands and directories as follows:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["build command: ",(0,t.jsx)(n.code,{children:"npm run build"})]}),"\n",(0,t.jsxs)(n.li,{children:["publish directory: ",(0,t.jsx)(n.code,{children:"build"})]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:'If you did not configure these build options, you may still go to "Site settings" -> "Build & deploy" after your site is created.'}),"\n",(0,t.jsxs)(n.p,{children:["Once properly configured with the above options, your site should deploy and automatically redeploy upon merging to your deploy branch, which defaults to ",(0,t.jsx)(n.code,{children:"main"}),"."]}),"\n",(0,t.jsxs)(n.admonition,{type:"warning",children:[(0,t.jsxs)(n.p,{children:["Some Docusaurus sites put the ",(0,t.jsx)(n.code,{children:"docs"})," folder outside of ",(0,t.jsx)(n.code,{children:"website"})," (most likely former Docusaurus v1 sites):"]}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"repo # git root\n\u251C\u2500\u2500 docs # MD files\n\u2514\u2500\u2500 website # Docusaurus root\n"})}),(0,t.jsxs)(n.p,{children:["If you decide to use the ",(0,t.jsx)(n.code,{children:"website"})," folder as Netlify's base directory, Netlify will not trigger builds when you update the ",(0,t.jsx)(n.code,{children:"docs"})," folder, and you need to configure a ",(0,t.jsxs)(n.a,{href:"https://docs.netlify.com/configure-builds/common-configurations/ignore-builds/",children:["custom ",(0,t.jsx)(n.code,{children:"ignore"})," command"]}),":"]}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-toml",metastring:'title="website/netlify.toml"',children:'[build]\n ignore = "git diff --quiet $CACHED_COMMIT_REF $COMMIT_REF . ../docs/"\n'})})]}),"\n",(0,t.jsxs)(n.admonition,{type:"warning",children:[(0,t.jsx)(n.p,{children:"By default, Netlify adds trailing slashes to Docusaurus URLs."}),(0,t.jsxs)(n.p,{children:["It is recommended to disable the Netlify setting ",(0,t.jsx)(n.code,{children:"Post Processing > Asset Optimization > Pretty Urls"})," to prevent lowercase URLs, unnecessary redirects, and 404 errors."]}),(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Be very careful"}),": the ",(0,t.jsx)(n.code,{children:"Disable asset optimization"})," global checkbox is broken and does not really disable the ",(0,t.jsx)(n.code,{children:"Pretty URLs"})," setting in practice. Please make sure to ",(0,t.jsx)(n.strong,{children:"uncheck it independently"}),"."]}),(0,t.jsxs)(n.p,{children:["If you want to keep the ",(0,t.jsx)(n.code,{children:"Pretty Urls"})," Netlify setting on, adjust the ",(0,t.jsx)(n.code,{children:"trailingSlash"})," Docusaurus config appropriately."]}),(0,t.jsxs)(n.p,{children:["Refer to ",(0,t.jsx)(n.a,{href:"https://github.com/slorber/trailing-slash-guide",children:"slorber/trailing-slash-guide"})," for more information."]})]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-vercel",children:"Deploying to Vercel"}),"\n",(0,t.jsxs)(n.p,{children:["Deploying your Docusaurus project to ",(0,t.jsx)(n.a,{href:"https://vercel.com/",children:"Vercel"})," will provide you with ",(0,t.jsx)(n.a,{href:"https://vercel.com/",children:"various benefits"})," in the areas of performance and ease of use."]}),"\n",(0,t.jsxs)(n.p,{children:["To deploy your Docusaurus project with a ",(0,t.jsx)(n.a,{href:"https://vercel.com/docs/concepts/git",children:"Vercel for Git Integration"}),", make sure it has been pushed to a Git repository."]}),"\n",(0,t.jsxs)(n.p,{children:["Import the project into Vercel using the ",(0,t.jsx)(n.a,{href:"https://vercel.com/import/git",children:"Import Flow"}),". During the import, you will find all relevant options preconfigured for you; however, you can choose to change any of these ",(0,t.jsx)(n.a,{href:"https://vercel.com/docs/build-step#build-&-development-settings",children:"options"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["After your project has been imported, all subsequent pushes to branches will generate ",(0,t.jsx)(n.a,{href:"https://vercel.com/docs/platform/deployments#preview",children:"Preview Deployments"}),", and all changes made to the ",(0,t.jsx)(n.a,{href:"https://vercel.com/docs/git-integrations#production-branch",children:"Production Branch"}),' (usually "main" or "master") will result in a ',(0,t.jsx)(n.a,{href:"https://vercel.com/docs/platform/deployments#production",children:"Production Deployment"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-github-pages",children:"Deploying to GitHub Pages"}),"\n",(0,t.jsxs)(n.p,{children:["Docusaurus provides an easy way to publish to ",(0,t.jsx)(n.a,{href:"https://pages.github.com/",children:"GitHub Pages"}),", which comes free with every GitHub repository."]}),"\n",(0,t.jsx)(n.h3,{id:"github-pages-overview",children:"Overview"}),"\n",(0,t.jsxs)(n.p,{children:["Usually, there are two repositories (at least two branches) involved in a publishing process: the branch containing the source files, and the branch containing the build output to be served with GitHub Pages. In the following tutorial, they will be referred to as ",(0,t.jsx)(n.strong,{children:'"source"'})," and ",(0,t.jsx)(n.strong,{children:'"deployment"'}),", respectively."]}),"\n",(0,t.jsxs)(n.p,{children:["Each GitHub repository is associated with a GitHub Pages service. If the deployment repository is called ",(0,t.jsx)(n.code,{children:"my-org/my-project"})," (where ",(0,t.jsx)(n.code,{children:"my-org"})," is the organization name or username), the deployed site will appear at ",(0,t.jsx)(n.code,{children:"https://my-org.github.io/my-project/"}),". If the deployment repository is called ",(0,t.jsx)(n.code,{children:"my-org/my-org.github.io"})," (the ",(0,t.jsx)(n.em,{children:"organization GitHub Pages repo"}),"), the site will appear at ",(0,t.jsx)(n.code,{children:"https://my-org.github.io/"}),"."]}),"\n",(0,t.jsxs)(n.admonition,{type:"info",children:[(0,t.jsxs)(n.p,{children:["In case you want to use your custom domain for GitHub Pages, create a ",(0,t.jsx)(n.code,{children:"CNAME"})," file in the ",(0,t.jsx)(n.code,{children:"static"})," directory. Anything within the ",(0,t.jsx)(n.code,{children:"static"})," directory will be copied to the root of the ",(0,t.jsx)(n.code,{children:"build"})," directory for deployment. When using a custom domain, you should be able to move back from ",(0,t.jsx)(n.code,{children:"baseUrl: '/projectName/'"})," to ",(0,t.jsx)(n.code,{children:"baseUrl: '/'"}),", and also set your ",(0,t.jsx)(n.code,{children:"url"})," to your custom domain."]}),(0,t.jsxs)(n.p,{children:["You may refer to GitHub Pages' documentation ",(0,t.jsx)(n.a,{href:"https://help.github.com/en/articles/user-organization-and-project-pages",children:"User, Organization, and Project Pages"})," for more details."]})]}),"\n",(0,t.jsxs)(n.p,{children:["GitHub Pages picks up deploy-ready files (the output from ",(0,t.jsx)(n.code,{children:"docusaurus build"}),") from the default branch (",(0,t.jsx)(n.code,{children:"master"})," / ",(0,t.jsx)(n.code,{children:"main"}),", usually) or the ",(0,t.jsx)(n.code,{children:"gh-pages"})," branch, and either from the root or the ",(0,t.jsx)(n.code,{children:"/docs"})," folder. You can configure that through ",(0,t.jsx)(n.code,{children:"Settings > Pages"}),' in your repository. This branch will be called the "deployment branch".']}),"\n",(0,t.jsxs)(n.p,{children:["We provide a ",(0,t.jsx)(n.code,{children:"docusaurus deploy"})," command that helps you deploy your site from the source branch to the deployment branch in one command: clone, build, and commit."]}),"\n",(0,t.jsxs)(n.h3,{id:"docusaurusconfigjs-settings",children:[(0,t.jsx)(n.code,{children:"docusaurus.config.js"})," settings"]}),"\n",(0,t.jsxs)(n.p,{children:["First, modify your ",(0,t.jsx)(n.code,{children:"docusaurus.config.js"})," and add the following params:"]}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"organizationName"})}),(0,t.jsx)(n.td,{children:"The GitHub user or organization that owns the deployment repository."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"projectName"})}),(0,t.jsx)(n.td,{children:"The name of the deployment repository."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"deploymentBranch"})}),(0,t.jsxs)(n.td,{children:["The name of the deployment branch. It defaults to ",(0,t.jsx)(n.code,{children:"'gh-pages'"})," for non-organization GitHub Pages repos (",(0,t.jsx)(n.code,{children:"projectName"})," not ending in ",(0,t.jsx)(n.code,{children:".github.io"}),"). Otherwise, it needs to be explicit as a config field or environment variable."]})]})]})]}),"\n",(0,t.jsxs)(n.p,{children:["These fields also have their environment variable counterparts which have a higher priority: ",(0,t.jsx)(n.code,{children:"ORGANIZATION_NAME"}),", ",(0,t.jsx)(n.code,{children:"PROJECT_NAME"}),", and ",(0,t.jsx)(n.code,{children:"DEPLOYMENT_BRANCH"}),"."]}),"\n",(0,t.jsx)(n.admonition,{type:"warning",children:(0,t.jsxs)(n.p,{children:["GitHub Pages adds a trailing slash to Docusaurus URLs by default. It is recommended to set a ",(0,t.jsx)(n.code,{children:"trailingSlash"})," config (",(0,t.jsx)(n.code,{children:"true"})," or ",(0,t.jsx)(n.code,{children:"false"}),", not ",(0,t.jsx)(n.code,{children:"undefined"}),")."]})}),"\n",(0,t.jsx)(n.p,{children:"Example:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n url: 'https://endiliey.github.io', // Your website URL\n baseUrl: '/',\n // highlight-start\n projectName: 'endiliey.github.io',\n organizationName: 'endiliey',\n trailingSlash: false,\n // highlight-end\n // ...\n};\n"})}),"\n",(0,t.jsx)(n.admonition,{type:"warning",children:(0,t.jsxs)(n.p,{children:["By default, GitHub Pages runs published files through ",(0,t.jsx)(n.a,{href:"https://jekyllrb.com/",children:"Jekyll"}),". Since Jekyll will discard any files that begin with ",(0,t.jsx)(n.code,{children:"_"}),", it is recommended that you disable Jekyll by adding an empty file named ",(0,t.jsx)(n.code,{children:".nojekyll"})," file to your ",(0,t.jsx)(n.code,{children:"static"})," directory."]})}),"\n",(0,t.jsx)(n.h3,{id:"environment-settings",children:"Environment settings"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"USE_SSH"})}),(0,t.jsxs)(n.td,{children:["Set to ",(0,t.jsx)(n.code,{children:"true"})," to use SSH instead of the default HTTPS for the connection to the GitHub repo. If the source repo URL is an SSH URL (e.g. ",(0,t.jsx)(n.code,{children:"git@github.com:facebook/docusaurus.git"}),"), ",(0,t.jsx)(n.code,{children:"USE_SSH"})," is inferred to be ",(0,t.jsx)(n.code,{children:"true"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"GIT_USER"})}),(0,t.jsxs)(n.td,{children:["The username for a GitHub account that ",(0,t.jsx)(n.strong,{children:"has push access to the deployment repo"}),". For your own repositories, this will usually be your GitHub username. Required if not using SSH, and ignored otherwise."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"GIT_PASS"})}),(0,t.jsxs)(n.td,{children:["Personal access token of the git user (specified by ",(0,t.jsx)(n.code,{children:"GIT_USER"}),"), to facilitate non-interactive deployment (e.g. continuous deployment)"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"CURRENT_BRANCH"})}),(0,t.jsxs)(n.td,{children:["The source branch. Usually, the branch will be ",(0,t.jsx)(n.code,{children:"main"})," or ",(0,t.jsx)(n.code,{children:"master"}),", but it could be any branch except for ",(0,t.jsx)(n.code,{children:"gh-pages"}),". If nothing is set for this variable, then the current branch from which ",(0,t.jsx)(n.code,{children:"docusaurus deploy"})," is invoked will be used."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"GIT_USER_NAME"})}),(0,t.jsxs)(n.td,{children:["The ",(0,t.jsx)(n.code,{children:"git config user.name"})," value to use when pushing to the deployment repo"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"GIT_USER_EMAIL"})}),(0,t.jsxs)(n.td,{children:["The ",(0,t.jsx)(n.code,{children:"git config user.email"})," value to use when pushing to the deployment repo"]})]})]})]}),"\n",(0,t.jsx)(n.p,{children:"GitHub enterprise installations should work in the same manner as github.com; you only need to set the organization's GitHub Enterprise host as an environment variable:"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"GITHUB_HOST"})}),(0,t.jsx)(n.td,{children:"The domain name of your GitHub enterprise site."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"GITHUB_PORT"})}),(0,t.jsx)(n.td,{children:"The port of your GitHub enterprise site."})]})]})]}),"\n",(0,t.jsx)(n.h3,{id:"deploy",children:"Deploy"}),"\n",(0,t.jsx)(n.p,{children:"Finally, to deploy your site to GitHub Pages, run:"}),"\n",(0,t.jsxs)(r.A,{children:[(0,t.jsx)(l.A,{value:"bash",label:"Bash",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"GIT_USER=<GITHUB_USERNAME> yarn deploy\n"})})}),(0,t.jsx)(l.A,{value:"windows",label:"Windows",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-batch",children:'cmd /C "set "GIT_USER=<GITHUB_USERNAME>" && yarn deploy"\n'})})}),(0,t.jsx)(l.A,{value:"powershell",label:"PowerShell",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-powershell",children:"cmd /C 'set \"GIT_USER=<GITHUB_USERNAME>\" && yarn deploy'\n"})})})]}),"\n",(0,t.jsxs)(n.admonition,{type:"warning",children:[(0,t.jsxs)(n.p,{children:["Beginning in August 2021, GitHub requires every command-line sign-in to use the ",(0,t.jsx)(n.strong,{children:"personal access token"})," instead of the password. When GitHub prompts for your password, enter the PAT instead. See the ",(0,t.jsx)(n.a,{href:"https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token",children:"GitHub documentation"})," for more information."]}),(0,t.jsxs)(n.p,{children:["Alternatively, you can use SSH (",(0,t.jsx)(n.code,{children:"USE_SSH=true"}),") to log in."]})]}),"\n",(0,t.jsx)(n.h3,{id:"triggering-deployment-with-github-actions",children:"Triggering deployment with GitHub Actions"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://help.github.com/en/actions",children:"GitHub Actions"})," allow you to automate, customize, and execute your software development workflows right in your repository."]}),"\n",(0,t.jsxs)(n.p,{children:["The workflow examples below assume your website source resides in the ",(0,t.jsx)(n.code,{children:"main"})," branch of your repository (the ",(0,t.jsx)(n.em,{children:"source branch"})," is ",(0,t.jsx)(n.code,{children:"main"}),"), and your ",(0,t.jsx)(n.a,{href:"https://help.github.com/en/github/working-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site",children:"publishing source"})," is configured for ",(0,t.jsx)(n.a,{href:"https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow",children:"publishing with a custom GitHub Actions Workflow"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"Our goal is that:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["When a new pull request is made to ",(0,t.jsx)(n.code,{children:"main"}),", there's an action that ensures the site builds successfully, without actually deploying. This job will be called ",(0,t.jsx)(n.code,{children:"test-deploy"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["When a pull request is merged to the ",(0,t.jsx)(n.code,{children:"main"})," branch or someone pushes to the ",(0,t.jsx)(n.code,{children:"main"})," branch directly, it will be built and deployed to GitHub Pages. This job will be called ",(0,t.jsx)(n.code,{children:"deploy"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Here are two approaches to deploying your docs with GitHub Actions. Based on the location of your deployment repository, choose the relevant tab below:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Source repo and deployment repo are the ",(0,t.jsx)(n.strong,{children:"same"})," repository."]}),"\n",(0,t.jsxs)(n.li,{children:["The deployment repo is a ",(0,t.jsx)(n.strong,{children:"remote"})," repository, different from the source. Instructions for this scenario assume ",(0,t.jsx)(n.a,{href:"https://help.github.com/en/github/working-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site",children:"publishing source"})," is the ",(0,t.jsx)(n.code,{children:"gh-pages"})," branch."]}),"\n"]}),"\n",(0,t.jsxs)(r.A,{children:[(0,t.jsxs)(l.A,{value:"same",label:"Same",children:[(0,t.jsxs)(n.p,{children:["While you can have both jobs defined in the same workflow file, the original ",(0,t.jsx)(n.code,{children:"deploy"})," workflow will always be listed as skipped in the PR check suite status, which is not indicative of the actual status and provides no value to the review process. We therefore propose to manage them as separate workflows instead."]}),(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"GitHub action files"}),(0,t.jsx)(n.p,{children:"Add these two workflow files:"}),(0,t.jsxs)(n.admonition,{title:"Tweak the parameters for your setup",type:"warning",children:[(0,t.jsxs)(n.p,{children:["These files assume you are using Yarn. If you use npm, change ",(0,t.jsx)(n.code,{children:"cache: yarn"}),", ",(0,t.jsx)(n.code,{children:"yarn install --frozen-lockfile"}),", ",(0,t.jsx)(n.code,{children:"yarn build"})," to ",(0,t.jsx)(n.code,{children:"cache: npm"}),", ",(0,t.jsx)(n.code,{children:"npm ci"}),", ",(0,t.jsx)(n.code,{children:"npm run build"})," accordingly."]}),(0,t.jsxs)(n.p,{children:["If your Docusaurus project is not at the root of your repo, you may need to configure a ",(0,t.jsx)(n.a,{href:"https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-set-the-default-shell-and-working-directory",children:"default working directory"}),", and adjust the paths accordingly."]})]}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yml",metastring:'title=".github/workflows/deploy.yml"',children:"name: Deploy to GitHub Pages\n\non:\n push:\n branches:\n - main\n # Review gh actions docs if you want to further define triggers, paths, etc\n # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on\n\njobs:\n build:\n name: Build Docusaurus\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n with:\n fetch-depth: 0\n - uses: actions/setup-node@v4\n with:\n node-version: 18\n cache: yarn\n\n - name: Install dependencies\n run: yarn install --frozen-lockfile\n - name: Build website\n run: yarn build\n\n - name: Upload Build Artifact\n uses: actions/upload-pages-artifact@v3\n with:\n path: build\n\n deploy:\n name: Deploy to GitHub Pages\n needs: build\n\n # Grant GITHUB_TOKEN the permissions required to make a Pages deployment\n permissions:\n pages: write # to deploy to Pages\n id-token: write # to verify the deployment originates from an appropriate source\n\n # Deploy to the github-pages environment\n environment:\n name: github-pages\n url: ${{ steps.deployment.outputs.page_url }}\n\n runs-on: ubuntu-latest\n steps:\n - name: Deploy to GitHub Pages\n id: deployment\n uses: actions/deploy-pages@v4\n"})}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yml",metastring:'title=".github/workflows/test-deploy.yml"',children:"name: Test deployment\n\non:\n pull_request:\n branches:\n - main\n # Review gh actions docs if you want to further define triggers, paths, etc\n # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on\n\njobs:\n test-deploy:\n name: Test deployment\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n with:\n fetch-depth: 0\n - uses: actions/setup-node@v4\n with:\n node-version: 18\n cache: yarn\n\n - name: Install dependencies\n run: yarn install --frozen-lockfile\n - name: Test build website\n run: yarn build\n"})})]})]}),(0,t.jsxs)(l.A,{value:"remote",label:"Remote",children:[(0,t.jsx)(n.p,{children:"A cross-repo publish is more difficult to set up because you need to push to another repo with permission checks. We will be using SSH to do the authentication."}),(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Generate a new ",(0,t.jsx)(n.a,{href:"https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent",children:"SSH key"}),". Since this SSH key will be used in CI, make sure to not enter any passphrase."]}),"\n",(0,t.jsxs)(n.li,{children:["By default, your public key should have been created in ",(0,t.jsx)(n.code,{children:"~/.ssh/id_rsa.pub"}),"; otherwise, use the name you've provided in the previous step to add your key to ",(0,t.jsx)(n.a,{href:"https://developer.github.com/v3/guides/managing-deploy-keys/",children:"GitHub deploy keys"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Copy the key to clipboard with ",(0,t.jsx)(n.code,{children:"pbcopy < ~/.ssh/id_rsa.pub"})," and paste it as a ",(0,t.jsx)(n.a,{href:"https://developer.github.com/v3/guides/managing-deploy-keys/#deploy-keys",children:"deploy key"})," in the deployment repository. Copy the file content if the command line doesn't work for you. Check the box for ",(0,t.jsx)(n.code,{children:"Allow write access"})," before saving your deployment key."]}),"\n",(0,t.jsxs)(n.li,{children:["You'll need your private key as a ",(0,t.jsx)(n.a,{href:"https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets",children:"GitHub secret"})," to allow Docusaurus to run the deployment for you."]}),"\n",(0,t.jsxs)(n.li,{children:["Copy your private key with ",(0,t.jsx)(n.code,{children:"pbcopy < ~/.ssh/id_rsa"})," and paste a GitHub secret with the name ",(0,t.jsx)(n.code,{children:"GH_PAGES_DEPLOY"})," on your source repository. Copy the file content if the command line doesn't work for you. Save your secret."]}),"\n",(0,t.jsxs)(n.li,{children:["Create your ",(0,t.jsx)(n.a,{href:"https://docs.github.com/en/actions/use-cases-and-examples/creating-an-example-workflow",children:"documentation workflow"})," in the ",(0,t.jsx)(n.code,{children:".github/workflows/"})," directory. In this example it's the ",(0,t.jsx)(n.code,{children:"deploy.yml"})," file."]}),"\n"]}),(0,t.jsx)(n.p,{children:"At this point, you should have:"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"the source repo with the GitHub workflow set with the private SSH key as the GitHub Secret, and"}),"\n",(0,t.jsx)(n.li,{children:"your deployment repo set with the public SSH key in GitHub Deploy Keys."}),"\n"]}),(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"GitHub action file"}),(0,t.jsxs)(n.admonition,{type:"warning",children:[(0,t.jsxs)(n.p,{children:["Please make sure that you replace ",(0,t.jsx)(n.code,{children:"actions@github.com"})," with your GitHub email and ",(0,t.jsx)(n.code,{children:"gh-actions"})," with your name."]}),(0,t.jsxs)(n.p,{children:["This file assumes you are using Yarn. If you use npm, change ",(0,t.jsx)(n.code,{children:"cache: yarn"}),", ",(0,t.jsx)(n.code,{children:"yarn install --frozen-lockfile"}),", ",(0,t.jsx)(n.code,{children:"yarn build"})," to ",(0,t.jsx)(n.code,{children:"cache: npm"}),", ",(0,t.jsx)(n.code,{children:"npm ci"}),", ",(0,t.jsx)(n.code,{children:"npm run build"})," accordingly."]})]}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yml",metastring:'title=".github/workflows/deploy.yml"',children:"name: Deploy to GitHub Pages\n\non:\n pull_request:\n branches: [main]\n push:\n branches: [main]\n\npermissions:\n contents: write\n\njobs:\n test-deploy:\n if: github.event_name != 'push'\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n with:\n fetch-depth: 0\n - uses: actions/setup-node@v4\n with:\n node-version: 18\n cache: yarn\n - name: Install dependencies\n run: yarn install --frozen-lockfile\n - name: Test build website\n run: yarn build\n deploy:\n if: github.event_name != 'pull_request'\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n with:\n fetch-depth: 0\n - uses: actions/setup-node@v4\n with:\n node-version: 18\n cache: yarn\n - uses: webfactory/ssh-agent@v0.5.0\n with:\n ssh-private-key: ${{ secrets.GH_PAGES_DEPLOY }}\n - name: Deploy to GitHub Pages\n env:\n USE_SSH: true\n run: |\n git config --global user.email \"actions@github.com\"\n git config --global user.name \"gh-actions\"\n yarn install --frozen-lockfile\n yarn deploy\n"})})]})]})]}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"Site not deployed properly?"}),(0,t.jsx)(n.p,{children:"After pushing to main, if you don't see your site published at the desired location (for example, it says \"There isn't a GitHub Pages site here\", or it's showing your repo's README.md file), try the following:"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Wait about three minutes and refresh. It may take a few minutes for GitHub pages to pick up the new files."}),"\n",(0,t.jsx)(n.li,{children:"Check your repo's landing page for a little green tick next to the last commit's title, indicating the CI has passed. If you see a cross, it means the build or deployment failed, and you should check the log for more debugging information."}),"\n",(0,t.jsxs)(n.li,{children:['Click on the tick and make sure you see a "Deploy to GitHub Pages" workflow. Names like "pages build and deployment / deploy" are GitHub\'s default workflows, indicating your custom deployment workflow failed to be triggered at all. Make sure the YAML files are placed under the ',(0,t.jsx)(n.code,{children:".github/workflows"}),' folder, and that the trigger condition is set correctly (e.g., if your default branch is "master" instead of "main", you need to change the ',(0,t.jsx)(n.code,{children:"on.push"})," property)."]}),"\n",(0,t.jsxs)(n.li,{children:['Under your repo\'s Settings > Pages, make sure the "Source" (which is the source for the ',(0,t.jsx)(n.em,{children:"deployment"}),' files, not "source" as in our terminology) is set to "gh-pages" + "/ (root)", since we are using ',(0,t.jsx)(n.code,{children:"gh-pages"})," as the deployment branch."]}),"\n"]}),(0,t.jsx)(n.p,{children:"If you are using a custom domain:"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Verify that you have the correct DNS records set up if you're using a custom domain. See ",(0,t.jsx)(n.a,{href:"https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages",children:"GitHub pages documentation on configuring custom domains"}),". Also, please be aware that it may take up to 24 hours for DNS changes to propagate through the internet."]}),"\n"]})]}),"\n",(0,t.jsx)(n.h3,{id:"triggering-deployment-with-travis-ci",children:"Triggering deployment with Travis CI"}),"\n",(0,t.jsxs)(n.p,{children:["Continuous integration (CI) services are typically used to perform routine tasks whenever new commits are checked in to source control. These tasks can be any combination of running unit tests and integration tests, automating builds, publishing packages to npm, and deploying changes to your website. All you need to do to automate the deployment of your website is to invoke the ",(0,t.jsx)(n.code,{children:"yarn deploy"})," script whenever your website is updated. The following section covers how to do just that using ",(0,t.jsx)(n.a,{href:"https://travis-ci.com/",children:"Travis CI"}),", a popular continuous integration service provider."]}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Go to ",(0,t.jsx)(n.a,{href:"https://github.com/settings/tokens",children:"https://github.com/settings/tokens"})," and generate a new ",(0,t.jsx)(n.a,{href:"https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/",children:"personal access token"}),". When creating the token, grant it the ",(0,t.jsx)(n.code,{children:"repo"})," scope so that it has the permissions it needs."]}),"\n",(0,t.jsxs)(n.li,{children:["Using your GitHub account, ",(0,t.jsx)(n.a,{href:"https://github.com/marketplace/travis-ci",children:"add the Travis CI app"})," to the repository you want to activate."]}),"\n",(0,t.jsxs)(n.li,{children:["Open your Travis CI dashboard. The URL looks like ",(0,t.jsx)(n.code,{children:"https://travis-ci.com/USERNAME/REPO"}),", and navigate to the ",(0,t.jsx)(n.code,{children:"More options > Setting > Environment Variables"})," section of your repository."]}),"\n",(0,t.jsxs)(n.li,{children:["Create a new environment variable named ",(0,t.jsx)(n.code,{children:"GH_TOKEN"})," with your newly generated token as its value, then ",(0,t.jsx)(n.code,{children:"GH_EMAIL"})," (your email address) and ",(0,t.jsx)(n.code,{children:"GH_NAME"})," (your GitHub username)."]}),"\n",(0,t.jsxs)(n.li,{children:["Create a ",(0,t.jsx)(n.code,{children:".travis.yml"})," on the root of your repository with the following:"]}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yml",metastring:'title=".travis.yml"',children:'language: node_js\nnode_js:\n - 18\nbranches:\n only:\n - main\ncache:\n yarn: true\nscript:\n - git config --global user.name "${GH_NAME}"\n - git config --global user.email "${GH_EMAIL}"\n - echo "machine github.com login ${GH_NAME} password ${GH_TOKEN}" > ~/.netrc\n - yarn install\n - GIT_USER="${GH_NAME}" yarn deploy\n'})}),"\n",(0,t.jsxs)(n.p,{children:["Now, whenever a new commit lands in ",(0,t.jsx)(n.code,{children:"main"}),", Travis CI will run your suite of tests and if everything passes, your website will be deployed via the ",(0,t.jsx)(n.code,{children:"yarn deploy"})," script."]}),"\n",(0,t.jsx)(n.h3,{id:"triggering-deployment-with-buddy",children:"Triggering deployment with Buddy"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://buddy.works/",children:"Buddy"})," is an easy-to-use CI/CD tool that allows you to automate the deployment of your portal to different environments, including GitHub Pages."]}),"\n",(0,t.jsx)(n.p,{children:"Follow these steps to create a pipeline that automatically deploys a new version of your website whenever you push changes to the selected branch of your project:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Go to ",(0,t.jsx)(n.a,{href:"https://github.com/settings/tokens",children:"https://github.com/settings/tokens"})," and generate a new ",(0,t.jsx)(n.a,{href:"https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/",children:"personal access token"}),". When creating the token, grant it the ",(0,t.jsx)(n.code,{children:"repo"})," scope so that it has the permissions it needs."]}),"\n",(0,t.jsx)(n.li,{children:"Sign in to your Buddy account and create a new project."}),"\n",(0,t.jsx)(n.li,{children:"Choose GitHub as your git hosting provider and select the repository with the code of your website."}),"\n",(0,t.jsxs)(n.li,{children:["Using the left navigation panel, switch to the ",(0,t.jsx)(n.code,{children:"Pipelines"})," view."]}),"\n",(0,t.jsxs)(n.li,{children:["Create a new pipeline. Define its name, set the trigger mode to ",(0,t.jsx)(n.code,{children:"On push"}),", and select the branch that triggers the pipeline execution."]}),"\n",(0,t.jsxs)(n.li,{children:["Add a ",(0,t.jsx)(n.code,{children:"Node.js"})," action."]}),"\n",(0,t.jsx)(n.li,{children:"Add these commands in the action's terminal:"}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:'GIT_USER=<GH_PERSONAL_ACCESS_TOKEN>\ngit config --global user.email "<YOUR_GH_EMAIL>"\ngit config --global user.name "<YOUR_GH_USERNAME>"\nyarn deploy\n'})}),"\n",(0,t.jsxs)(n.p,{children:["After creating this simple pipeline, each new commit pushed to the branch you selected deploys your website to GitHub Pages using ",(0,t.jsx)(n.code,{children:"yarn deploy"}),". Read ",(0,t.jsx)(n.a,{href:"https://buddy.works/guides/react-docusaurus",children:"this guide"})," to learn more about setting up a CI/CD pipeline for Docusaurus."]}),"\n",(0,t.jsx)(n.h3,{id:"using-azure-pipelines",children:"Using Azure Pipelines"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Sign Up at ",(0,t.jsx)(n.a,{href:"https://azure.microsoft.com/en-us/services/devops/pipelines/",children:"Azure Pipelines"})," if you haven't already."]}),"\n",(0,t.jsx)(n.li,{children:"Create an organization. Within the organization, create a project and connect your repository from GitHub."}),"\n",(0,t.jsxs)(n.li,{children:["Go to ",(0,t.jsx)(n.a,{href:"https://github.com/settings/tokens",children:"https://github.com/settings/tokens"})," and generate a new ",(0,t.jsx)(n.a,{href:"https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/",children:"personal access token"})," with the ",(0,t.jsx)(n.code,{children:"repo"})," scope."]}),"\n",(0,t.jsxs)(n.li,{children:["In the project page (which looks like ",(0,t.jsx)(n.code,{children:"https://dev.azure.com/ORG_NAME/REPO_NAME/_build"}),"), create a new pipeline with the following text. Also, click on edit and add a new environment variable named ",(0,t.jsx)(n.code,{children:"GH_TOKEN"})," with your newly generated token as its value, then ",(0,t.jsx)(n.code,{children:"GH_EMAIL"})," (your email address) and ",(0,t.jsx)(n.code,{children:"GH_NAME"})," (your GitHub username). Make sure to mark them as secret. Alternatively, you can also add a file named ",(0,t.jsx)(n.code,{children:"azure-pipelines.yml"})," at your repository root."]}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yml",metastring:'title="azure-pipelines.yml"',children:'trigger:\n - main\n\npool:\n vmImage: ubuntu-latest\n\nsteps:\n - checkout: self\n persistCredentials: true\n\n - task: NodeTool@0\n inputs:\n versionSpec: \'18\'\n displayName: Install Node.js\n\n - script: |\n git config --global user.name "${GH_NAME}"\n git config --global user.email "${GH_EMAIL}"\n git checkout -b main\n echo "machine github.com login ${GH_NAME} password ${GH_TOKEN}" > ~/.netrc\n yarn install\n GIT_USER="${GH_NAME}" yarn deploy\n env:\n GH_NAME: $(GH_NAME)\n GH_EMAIL: $(GH_EMAIL)\n GH_TOKEN: $(GH_TOKEN)\n displayName: Install and build\n'})}),"\n",(0,t.jsx)(n.h3,{id:"using-drone",children:"Using Drone"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Create a new SSH key that will be the ",(0,t.jsx)(n.a,{href:"https://docs.github.com/en/free-pro-team@latest/developers/overview/managing-deploy-keys#deploy-keys",children:"deploy key"})," for your project."]}),"\n",(0,t.jsxs)(n.li,{children:["Name your private and public keys to be specific and so that it does not overwrite your other ",(0,t.jsx)(n.a,{href:"https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent",children:"SSH keys"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Go to ",(0,t.jsx)(n.code,{children:"https://github.com/USERNAME/REPO/settings/keys"})," and add a new deploy key by pasting in the public key you just generated."]}),"\n",(0,t.jsxs)(n.li,{children:["Open your Drone.io dashboard and log in. The URL looks like ",(0,t.jsx)(n.code,{children:"https://cloud.drone.io/USERNAME/REPO"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Click on the repository, click on activate repository, and add a secret called ",(0,t.jsx)(n.code,{children:"git_deploy_private_key"})," with your private key value that you just generated."]}),"\n",(0,t.jsxs)(n.li,{children:["Create a ",(0,t.jsx)(n.code,{children:".drone.yml"})," on the root of your repository with the below text."]}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yml",metastring:'title=".drone.yml"',children:'kind: pipeline\ntype: docker\ntrigger:\n event:\n - tag\n- name: Website\n image: node\n commands:\n - mkdir -p $HOME/.ssh\n - ssh-keyscan -t rsa github.com >> $HOME/.ssh/known_hosts\n - echo "$GITHUB_PRIVATE_KEY" > "$HOME/.ssh/id_rsa"\n - chmod 0600 $HOME/.ssh/id_rsa\n - cd website\n - yarn install\n - yarn deploy\n environment:\n USE_SSH: true\n GITHUB_PRIVATE_KEY:\n from_secret: git_deploy_private_key\n'})}),"\n",(0,t.jsx)(n.p,{children:"Now, whenever you push a new tag to GitHub, this trigger will start the drone CI job to publish your website."}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-flightcontrol",children:"Deploying to Flightcontrol"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://www.flightcontrol.dev/?ref=docusaurus",children:"Flightcontrol"})," is a service that automatically builds and deploys your web apps to AWS Fargate directly from your Git repository. It gives you full access to inspect and make infrastructure changes without the limitations of a traditional PaaS."]}),"\n",(0,t.jsxs)(n.p,{children:["Get started by following ",(0,t.jsx)(n.a,{href:"https://www.flightcontrol.dev/docs/reference/examples/docusaurus/?ref=docusaurus",children:"Flightcontrol's step-by-step Docusaurus guide"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-koyeb",children:"Deploying to Koyeb"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://www.koyeb.com",children:"Koyeb"})," is a developer-friendly serverless platform to deploy apps globally. The platform lets you seamlessly run Docker containers, web apps, and APIs with git-based deployment, native autoscaling, a global edge network, and built-in service mesh and discovery. Check out the ",(0,t.jsx)(n.a,{href:"https://www.koyeb.com/tutorials/deploy-docusaurus-on-koyeb",children:"Koyeb's Docusaurus deployment guide"})," to get started."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-render",children:"Deploying to Render"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://render.com",children:"Render"})," offers ",(0,t.jsx)(n.a,{href:"https://render.com/docs/static-sites",children:"free static site hosting"})," with fully managed SSL, custom domains, a global CDN, and continuous auto-deploy from your Git repo. Get started in just a few minutes by following ",(0,t.jsx)(n.a,{href:"https://render.com/docs/deploy-docusaurus",children:"Render's guide to deploying Docusaurus"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-qovery",children:"Deploying to Qovery"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://www.qovery.com",children:"Qovery"})," is a fully-managed cloud platform that runs on your AWS, Digital Ocean, and Scaleway account where you can host static sites, backend APIs, databases, cron jobs, and all your other apps in one place."]}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Create a Qovery account. Visit the ",(0,t.jsx)(n.a,{href:"https://console.qovery.com",children:"Qovery dashboard"})," to create an account if you don't already have one."]}),"\n",(0,t.jsxs)(n.li,{children:["Create a project.","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Click on ",(0,t.jsx)(n.strong,{children:"Create project"})," and give a name to your project."]}),"\n",(0,t.jsxs)(n.li,{children:["Click on ",(0,t.jsx)(n.strong,{children:"Next"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Create a new environment.","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Click on ",(0,t.jsx)(n.strong,{children:"Create environment"})," and give a name (e.g. staging, production)."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Add an application.","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Click on ",(0,t.jsx)(n.strong,{children:"Create an application"}),", give a name and select your GitHub or GitLab repository where your Docusaurus app is located."]}),"\n",(0,t.jsx)(n.li,{children:"Define the main branch name and the root application path."}),"\n",(0,t.jsxs)(n.li,{children:["Click on ",(0,t.jsx)(n.strong,{children:"Create"}),". After the application is created:"]}),"\n",(0,t.jsxs)(n.li,{children:["Navigate to your application ",(0,t.jsx)(n.strong,{children:"Settings"})]}),"\n",(0,t.jsxs)(n.li,{children:["Select ",(0,t.jsx)(n.strong,{children:"Port"})]}),"\n",(0,t.jsx)(n.li,{children:"Add port used by your Docusaurus application"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Deploy","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["All you have to do now is to navigate to your application and click on ",(0,t.jsx)(n.strong,{children:"Deploy"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://hub.qovery.com/img/heroku/heroku-1.png",alt:"Deploy the app"})}),"\n",(0,t.jsxs)(n.p,{children:["That's it. Watch the status and wait till the app is deployed. To open the application in your browser, click on ",(0,t.jsx)(n.strong,{children:"Action"})," and ",(0,t.jsx)(n.strong,{children:"Open"})," in your application overview."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-hostman",children:"Deploying to Hostman"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://hostman.com/",children:"Hostman"})," allows you to host static websites for free. Hostman automates everything, you just need to connect your repository and follow these easy steps:"]}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Create a service."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["To deploy a Docusaurus static website, click ",(0,t.jsx)(n.strong,{children:"Create"})," in the top-left corner of your ",(0,t.jsx)(n.a,{href:"https://dashboard.hostman.com/",children:"Dashboard"})," and choose ",(0,t.jsx)(n.strong,{children:"Front-end app or static website"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Select the project to deploy."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"If you are logged in to Hostman with your GitHub, GitLab, or Bitbucket account, you will see the repository with your projects, including the private ones."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Choose the project you want to deploy. It must contain the directory with the project's files (e.g. ",(0,t.jsx)(n.code,{children:"website"}),")."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["To access a different repository, click ",(0,t.jsx)(n.strong,{children:"Connect another repository"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"If you didn't use your Git account credentials to log in, you'll be able to access the necessary account now, and then select the project."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Configure the build settings."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Next, the ",(0,t.jsx)(n.strong,{children:"Website customization"})," window will appear. Choose the ",(0,t.jsx)(n.strong,{children:"Static website"})," option from the list of frameworks."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.strong,{children:"Directory with app"})," points at the directory that will contain the project's files after the build. If you selected the repository with the contents of the website (or ",(0,t.jsx)(n.code,{children:"my_website"}),") directory during Step 2, you can leave it empty."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"The standard build command for Docusaurus is:"}),"\n",(0,t.jsxs)(r.A,{groupId:"npm2yarn",children:[(0,t.jsx)(l.A,{value:"npm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"npm run build\n"})})}),(0,t.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"yarn build\n"})})}),(0,t.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"pnpm run build\n"})})})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["You can modify the build command if needed. You can enter multiple commands separated by ",(0,t.jsx)(n.code,{children:"&&"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Deploy."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Click ",(0,t.jsx)(n.strong,{children:"Deploy"})," to start the build process."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Once it starts, you will enter the deployment log. If there are any issues with the code, you will get warning or error messages in the log specifying the cause of the problem. Usually, the log contains all the debugging data you'll need."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"When the deployment is complete, you will receive an email notification and also see a log entry. All done! Your project is up and ready."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-surge",children:"Deploying to Surge"}),"\n",(0,t.jsxs)(n.p,{children:["Surge is a ",(0,t.jsx)(n.a,{href:"https://surge.sh/help/getting-started-with-surge",children:"static web hosting platform"})," that you can use to deploy your Docusaurus project from the command line in seconds. Deploying your project to Surge is easy and free (including custom domains and SSL certs)."]}),"\n",(0,t.jsx)(n.p,{children:"Deploy your app in a matter of seconds using Surge with the following steps:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["First, install Surge using npm by running the following command:","\n",(0,t.jsxs)(r.A,{groupId:"npm2yarn",children:[(0,t.jsx)(l.A,{value:"npm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"npm install -g surge\n"})})}),(0,t.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"yarn global add surge\n"})})}),(0,t.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"pnpm add -g surge\n"})})})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["To build the static files of your site for production in the root directory of your project, run:","\n",(0,t.jsxs)(r.A,{groupId:"npm2yarn",children:[(0,t.jsx)(l.A,{value:"npm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"npm run build\n"})})}),(0,t.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"yarn build\n"})})}),(0,t.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"pnpm run build\n"})})})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Then, run this command inside the root directory of your project:","\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"surge build/\n"})}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"First-time users of Surge would be prompted to create an account from the command line (which happens only once)."}),"\n",(0,t.jsxs)(n.p,{children:["Confirm that the site you want to publish is in the ",(0,t.jsx)(n.code,{children:"build"})," directory. A randomly generated subdomain ",(0,t.jsx)(n.code,{children:"*.surge.sh subdomain"})," is always given (which can be edited)."]}),"\n",(0,t.jsx)(n.h3,{id:"using-your-domain",children:"Using your domain"}),"\n",(0,t.jsx)(n.p,{children:"If you have a domain name you can deploy your site using the command:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"surge build/ your-domain.com\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Your site is now deployed for free at ",(0,t.jsx)(n.code,{children:"subdomain.surge.sh"})," or ",(0,t.jsx)(n.code,{children:"your-domain.com"})," depending on the method you chose."]}),"\n",(0,t.jsx)(n.h3,{id:"setting-up-cname-file",children:"Setting up CNAME file"}),"\n",(0,t.jsx)(n.p,{children:"Store your domain in a CNAME file for future deployments with the following command:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"echo subdomain.surge.sh > CNAME\n"})}),"\n",(0,t.jsxs)(n.p,{children:["You can deploy any other changes in the future with the command ",(0,t.jsx)(n.code,{children:"surge"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-stormkit",children:"Deploying to Stormkit"}),"\n",(0,t.jsxs)(n.p,{children:["You can deploy your Docusaurus project to ",(0,t.jsx)(n.a,{href:"https://www.stormkit.io",children:"Stormkit"}),", a deployment platform for static websites, single-page applications (SPAs), and serverless functions. For detailed instructions, refer to this ",(0,t.jsx)(n.a,{href:"https://www.stormkit.io/blog/how-to-deploy-docusarous",children:"guide"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-quantcdn",children:"Deploying to QuantCDN"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Install ",(0,t.jsx)(n.a,{href:"https://docs.quantcdn.io/docs/cli/get-started",children:"Quant CLI"})]}),"\n",(0,t.jsxs)(n.li,{children:["Create a QuantCDN account by ",(0,t.jsx)(n.a,{href:"https://dashboard.quantcdn.io/register",children:"signing up"})]}),"\n",(0,t.jsxs)(n.li,{children:["Initialize your project with ",(0,t.jsx)(n.code,{children:"quant init"})," and fill in your credentials:","\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"quant init\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Deploy your site.","\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"quant deploy\n"})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["See ",(0,t.jsx)(n.a,{href:"https://docs.quantcdn.io/docs/cli/continuous-integration",children:"docs"})," and ",(0,t.jsx)(n.a,{href:"https://www.quantcdn.io/blog",children:"blog"})," for more examples and use cases for deploying to QuantCDN."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-layer0",children:"Deploying to Layer0"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://www.layer0.co",children:"Layer0"})," is an all-in-one platform to develop, deploy, preview, experiment on, monitor, and run your headless frontend. It is focused on large, dynamic websites and best-in-class performance through EdgeJS (a JavaScript-based Content Delivery Network), predictive prefetching, and performance monitoring. Layer0 offers a free tier. Get started in just a few minutes by following ",(0,t.jsx)(n.a,{href:"https://docs.layer0.co/guides/docusaurus",children:"Layer0's guide to deploying Docusaurus"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-cloudflare-pages",children:"Deploying to Cloudflare Pages"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://pages.cloudflare.com/",children:"Cloudflare Pages"})," is a Jamstack platform for frontend developers to collaborate and deploy websites. Get started within a few minutes by following ",(0,t.jsx)(n.a,{href:"https://dev.to/apidev234/deploying-docusaurus-to-cloudflare-pages-565g",children:"this article"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-azure-static-web-apps",children:"Deploying to Azure Static Web Apps"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://docs.microsoft.com/en-us/azure/static-web-apps/overview",children:"Azure Static Web Apps"})," is a service that automatically builds and deploys full-stack web apps to Azure directly from the code repository, simplifying the developer experience for CI/CD. Static Web Apps separates the web application's static assets from its dynamic (API) endpoints. Static assets are served from globally-distributed content servers, making it faster for clients to retrieve files using servers nearby. Dynamic APIs are scaled with serverless architectures using an event-driven functions-based approach that is more cost-effective and scales on demand. Get started in a few minutes by following ",(0,t.jsx)(n.a,{href:"https://dev.to/azure/11-share-content-with-docusaurus-azure-static-web-apps-30hc",children:"this step-by-step guide"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"deploying-to-kinsta",children:"Deploying to Kinsta"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://kinsta.com/static-site-hosting",children:"Kinsta Static Site Hosting"})," lets you deploy up to 100 static sites for free, custom domains with SSL, 100 GB monthly bandwidth, and 260+ Cloudflare CDN locations."]}),"\n",(0,t.jsxs)(n.p,{children:["Get started in just a few clicks by following our ",(0,t.jsx)(n.a,{href:"https://kinsta.com/docs/docusaurus-example/",children:"Docusaurus on Kinsta"})," article."]})]})}function p(e={}){let{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(u,{...e})}):u(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>l});var i=s(63696);let t={},o=i.createContext(t);function r(e){let n=i.useContext(o);return i.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(t):e.components||t:r(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/072728dc.1a66fb2c.js b/assets/js/072728dc.1a66fb2c.js deleted file mode 100644 index 6f976bb8c1..0000000000 --- a/assets/js/072728dc.1a66fb2c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[72548],{67625:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>d,default:()=>x,frontMatter:()=>l,metadata:()=>n,toc:()=>r});let n=JSON.parse('{"id":"toc/toc-3-_","title":"toc-3-_","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-3-_.mdx","sourceDirName":"toc","slug":"/toc/toc-3-_","permalink":"/tests/docs/toc/toc-3-_","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_min_heading_level":3},"sidebar":"sidebar","previous":{"title":"toc-3-5","permalink":"/tests/docs/toc/toc-3-5"},"next":{"title":"toc-4-5","permalink":"/tests/docs/toc/toc-4-5"}}');var i=t(62540),c=t(43023),o=t(25128);let l={toc_min_heading_level:3},d=void 0,u={},r=[...o.RM];function h(e){return(0,i.jsx)(o.Ay,{})}function x(e={}){let{wrapper:s}={...(0,c.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}x.displayName="MDXContent(_dogfooding/_docs tests/toc/toc-3-_.mdx)"},25128:(e,s,t)=>{t.d(s,{Ay:()=>l,RM:()=>c});var n=t(62540),i=t(43023);let c=[{value:"section 1",id:"section-1",level:2},{value:"subsection 1-1",id:"subsection-1-1",level:3},{value:"subsection 1-1-1",id:"subsection-1-1-1",level:4},{value:"subsection 1-1-1-1",id:"subsection-1-1-1-1",level:5},{value:"subsection 1-1-1-1-1",id:"subsection-1-1-1-1-1",level:6},{value:"subsection 1-1-1-1-2",id:"subsection-1-1-1-1-2",level:6},{value:"subsection 1-1-1-2",id:"subsection-1-1-1-2",level:5},{value:"subsection 1-1-2",id:"subsection-1-1-2",level:4},{value:"subsection 1-2",id:"subsection-1-2",level:3},{value:"subsection 1-3",id:"subsection-1-3",level:3},{value:"section 2",id:"section-2",level:2},{value:"subsection 2-1",id:"subsection-2-1",level:3},{value:"subsection 2-1",id:"subsection-2-1-1",level:3},{value:"section 3",id:"section-3",level:2},{value:"subsection 3-1",id:"subsection-3-1",level:3},{value:"subsection 3-2",id:"subsection-3-2",level:3}];function o(e){let s={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"title",children:"title"})}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-1",children:"section 1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-1",children:"subsection 1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-1",children:"subsection 1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-1",children:"subsection 1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-1",children:"subsection 1-1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-2",children:"subsection 1-1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-2",children:"subsection 1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-2",children:"subsection 1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-2",children:"subsection 1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-3",children:"subsection 1-3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-2",children:"section 2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-3",children:"section 3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-1",children:"subsection 3-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-2",children:"subsection 3-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"})]})}function l(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>l});var n=t(63696);let i={},c=n.createContext(i);function o(e){let s=n.useContext(c);return n.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),n.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/072728dc.e13c291f.js b/assets/js/072728dc.e13c291f.js new file mode 100644 index 0000000000..fb2729f1cd --- /dev/null +++ b/assets/js/072728dc.e13c291f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[72548],{67625:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>d,default:()=>x,frontMatter:()=>l,metadata:()=>n,toc:()=>r});let n=JSON.parse('{"id":"toc/toc-3-_","title":"toc-3-_","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-3-_.mdx","sourceDirName":"toc","slug":"/toc/toc-3-_","permalink":"/tests/docs/toc/toc-3-_","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_min_heading_level":3},"sidebar":"sidebar","previous":{"title":"toc-3-5","permalink":"/tests/docs/toc/toc-3-5"},"next":{"title":"toc-4-5","permalink":"/tests/docs/toc/toc-4-5"}}');var i=t(62540),c=t(43023),o=t(25128);let l={toc_min_heading_level:3},d=void 0,u={},r=[...o.RM];function h(e){return(0,i.jsx)(o.Ay,{})}function x(e={}){let{wrapper:s}={...(0,c.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}x.displayName="MDXContent(_dogfooding/_docs tests/toc/toc-3-_.mdx)"},25128:(e,s,t)=>{t.d(s,{Ay:()=>l,RM:()=>c});var n=t(62540),i=t(43023);let c=[{value:"section 1",id:"section-1",level:2},{value:"subsection 1-1",id:"subsection-1-1",level:3},{value:"subsection 1-1-1",id:"subsection-1-1-1",level:4},{value:"subsection 1-1-1-1",id:"subsection-1-1-1-1",level:5},{value:"subsection 1-1-1-1-1",id:"subsection-1-1-1-1-1",level:6},{value:"subsection 1-1-1-1-2",id:"subsection-1-1-1-1-2",level:6},{value:"subsection 1-1-1-2",id:"subsection-1-1-1-2",level:5},{value:"subsection 1-1-2",id:"subsection-1-1-2",level:4},{value:"subsection 1-2",id:"subsection-1-2",level:3},{value:"subsection 1-3",id:"subsection-1-3",level:3},{value:"section 2",id:"section-2",level:2},{value:"subsection 2-1",id:"subsection-2-1",level:3},{value:"subsection 2-1",id:"subsection-2-1-1",level:3},{value:"section 3",id:"section-3",level:2},{value:"subsection 3-1",id:"subsection-3-1",level:3},{value:"subsection 3-2",id:"subsection-3-2",level:3}];function o(e){let s={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"title",children:"title"})}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-1",children:"section 1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-1",children:"subsection 1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-1",children:"subsection 1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-1",children:"subsection 1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-1",children:"subsection 1-1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-2",children:"subsection 1-1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-2",children:"subsection 1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-2",children:"subsection 1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-2",children:"subsection 1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-3",children:"subsection 1-3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-2",children:"section 2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-3",children:"section 3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-1",children:"subsection 3-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-2",children:"subsection 3-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"})]})}function l(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>l});var n=t(63696);let i={},c=n.createContext(i);function o(e){let s=n.useContext(c);return n.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),n.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/07d8cde9.112fa752.js b/assets/js/07d8cde9.112fa752.js new file mode 100644 index 0000000000..52e144473a --- /dev/null +++ b/assets/js/07d8cde9.112fa752.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[45811],{5862:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>r,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>n,toc:()=>o});let n=JSON.parse('{"id":"api/misc/create-docusaurus","title":"\u{1F4E6} create-docusaurus","description":"A scaffolding utility to help you instantly set up a functional Docusaurus app.","source":"@site/docs/api/misc/create-docusaurus.mdx","sourceDirName":"api/misc","slug":"/api/misc/create-docusaurus","permalink":"/docs/api/misc/create-docusaurus","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/create-docusaurus.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":0,"frontMatter":{"sidebar_position":0,"slug":"/api/misc/create-docusaurus"},"sidebar":"api","previous":{"title":"\u{1F4E6} theme-mermaid","permalink":"/docs/api/themes/@docusaurus/theme-mermaid"},"next":{"title":"\u{1F4E6} eslint-plugin","permalink":"/docs/api/misc/@docusaurus/eslint-plugin"}}');var t=i(62540),c=i(43023);let a={sidebar_position:0,slug:"/api/misc/create-docusaurus"},l="\u{1F4E6} create-docusaurus",r={},o=[{value:"Usage",id:"usage",level:2},{value:"Options",id:"options",level:2},{value:"<code>-t, --typescript</code>",id:"typescript",level:3},{value:"<code>-g, --git-strategy</code>",id:"git-strategy",level:3},{value:"<code>-p, --package-manager</code>",id:"package-manager",level:3},{value:"<code>-s, --skip-install</code>",id:"skip-install",level:3}];function d(e){let s={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,c.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.header,{children:(0,t.jsx)(s.h1,{id:"-create-docusaurus",children:"\u{1F4E6} create-docusaurus"})}),"\n",(0,t.jsx)(s.p,{children:"A scaffolding utility to help you instantly set up a functional Docusaurus app."}),"\n",(0,t.jsx)(s.h2,{id:"usage",children:"Usage"}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"npx create-docusaurus@latest [name] [template] [rootDir]\n"})}),"\n",(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.code,{children:"name"})," argument will be used as the site's path as well as the ",(0,t.jsx)(s.code,{children:"name"})," field in the created app's package.json. It can be an absolute path, or a path relative to ",(0,t.jsx)(s.code,{children:"rootDir"}),"."]}),"\n",(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.code,{children:"template"})," argument can be one of the following:"]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.code,{children:"classic"}),": Uses the classic template (recommended)"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.code,{children:"facebook"}),": Uses the Facebook/Meta template, which contains some Meta-specific setup"]}),"\n",(0,t.jsxs)(s.li,{children:["A git repo URL (beginning with ",(0,t.jsx)(s.code,{children:"https://"})," or ",(0,t.jsx)(s.code,{children:"git@"}),"), which can be cloned to the destination"]}),"\n",(0,t.jsx)(s.li,{children:"A local file path relative to CWD, which contains the files to be copied to destination"}),"\n"]}),"\n",(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.code,{children:"rootDir"})," will be used to resolve the absolute path to the site directory. The default is CWD."]}),"\n",(0,t.jsx)(s.admonition,{type:"warning",children:(0,t.jsx)(s.p,{children:"This command should be preferably used in an interactive shell so all features are available."})}),"\n",(0,t.jsx)(s.h2,{id:"options",children:"Options"}),"\n",(0,t.jsx)(s.h3,{id:"typescript",children:(0,t.jsx)(s.code,{children:"-t, --typescript"})}),"\n",(0,t.jsxs)(s.p,{children:["Used when the template argument is a recognized name. Currently, only ",(0,t.jsx)(s.code,{children:"classic"})," provides a TypeScript variant."]}),"\n",(0,t.jsx)(s.h3,{id:"git-strategy",children:(0,t.jsx)(s.code,{children:"-g, --git-strategy"})}),"\n",(0,t.jsx)(s.p,{children:"Used when the template argument is a git repo. It needs to be one of:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.code,{children:"deep"}),": preserves full git history"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.code,{children:"shallow"}),": clones with ",(0,t.jsx)(s.code,{children:"--depth=1"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.code,{children:"copy"}),": does a shallow clone, but does not create a git repo"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.code,{children:"custom"}),": enter your custom git clone command. We will prompt you for it. You can write something like ",(0,t.jsx)(s.code,{children:"git clone --depth 10"}),", and we will append the repository URL and destination directory."]}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"package-manager",children:(0,t.jsx)(s.code,{children:"-p, --package-manager"})}),"\n",(0,t.jsxs)(s.p,{children:["Value should be one of ",(0,t.jsx)(s.code,{children:"npm"}),", ",(0,t.jsx)(s.code,{children:"yarn"}),", ",(0,t.jsx)(s.code,{children:"pnpm"}),", or ",(0,t.jsx)(s.code,{children:"bun"}),". If it's not explicitly provided, Docusaurus will infer one based on:"]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"The lockfile already present in the CWD (e.g. if you are setting up website in an existing project)"}),"\n",(0,t.jsxs)(s.li,{children:["The command used to invoke ",(0,t.jsx)(s.code,{children:"create-docusaurus"})," (e.g. ",(0,t.jsx)(s.code,{children:"npm init"}),", ",(0,t.jsx)(s.code,{children:"npx"}),", ",(0,t.jsx)(s.code,{children:"yarn create"}),", ",(0,t.jsx)(s.code,{children:"bunx"}),", etc.)"]}),"\n",(0,t.jsx)(s.li,{children:"Interactive prompting, in case all heuristics are not present"}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"skip-install",children:(0,t.jsx)(s.code,{children:"-s, --skip-install"})}),"\n",(0,t.jsxs)(s.p,{children:["If provided, Docusaurus will not automatically install dependencies after creating the app. The ",(0,t.jsx)(s.code,{children:"--package-manager"})," option is only useful when you are actually installing dependencies."]})]})}function u(e={}){let{wrapper:s}={...(0,c.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},43023:(e,s,i)=>{i.d(s,{R:()=>a,x:()=>l});var n=i(63696);let t={},c=n.createContext(t);function a(e){let s=n.useContext(c);return n.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(t):e.components||t:a(e.components),n.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/07d8cde9.47028634.js b/assets/js/07d8cde9.47028634.js deleted file mode 100644 index 987b8ab574..0000000000 --- a/assets/js/07d8cde9.47028634.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[45811],{5862:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>r,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>n,toc:()=>o});let n=JSON.parse('{"id":"api/misc/create-docusaurus","title":"\u{1F4E6} create-docusaurus","description":"A scaffolding utility to help you instantly set up a functional Docusaurus app.","source":"@site/docs/api/misc/create-docusaurus.mdx","sourceDirName":"api/misc","slug":"/api/misc/create-docusaurus","permalink":"/docs/api/misc/create-docusaurus","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/create-docusaurus.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":0,"frontMatter":{"sidebar_position":0,"slug":"/api/misc/create-docusaurus"},"sidebar":"api","previous":{"title":"\u{1F4E6} theme-mermaid","permalink":"/docs/api/themes/@docusaurus/theme-mermaid"},"next":{"title":"\u{1F4E6} eslint-plugin","permalink":"/docs/api/misc/@docusaurus/eslint-plugin"}}');var t=i(62540),c=i(43023);let a={sidebar_position:0,slug:"/api/misc/create-docusaurus"},l="\u{1F4E6} create-docusaurus",r={},o=[{value:"Usage",id:"usage",level:2},{value:"Options",id:"options",level:2},{value:"<code>-t, --typescript</code>",id:"typescript",level:3},{value:"<code>-g, --git-strategy</code>",id:"git-strategy",level:3},{value:"<code>-p, --package-manager</code>",id:"package-manager",level:3},{value:"<code>-s, --skip-install</code>",id:"skip-install",level:3}];function d(e){let s={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,c.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.header,{children:(0,t.jsx)(s.h1,{id:"-create-docusaurus",children:"\u{1F4E6} create-docusaurus"})}),"\n",(0,t.jsx)(s.p,{children:"A scaffolding utility to help you instantly set up a functional Docusaurus app."}),"\n",(0,t.jsx)(s.h2,{id:"usage",children:"Usage"}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"npx create-docusaurus@latest [name] [template] [rootDir]\n"})}),"\n",(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.code,{children:"name"})," argument will be used as the site's path as well as the ",(0,t.jsx)(s.code,{children:"name"})," field in the created app's package.json. It can be an absolute path, or a path relative to ",(0,t.jsx)(s.code,{children:"rootDir"}),"."]}),"\n",(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.code,{children:"template"})," argument can be one of the following:"]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.code,{children:"classic"}),": Uses the classic template (recommended)"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.code,{children:"facebook"}),": Uses the Facebook/Meta template, which contains some Meta-specific setup"]}),"\n",(0,t.jsxs)(s.li,{children:["A git repo URL (beginning with ",(0,t.jsx)(s.code,{children:"https://"})," or ",(0,t.jsx)(s.code,{children:"git@"}),"), which can be cloned to the destination"]}),"\n",(0,t.jsx)(s.li,{children:"A local file path relative to CWD, which contains the files to be copied to destination"}),"\n"]}),"\n",(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.code,{children:"rootDir"})," will be used to resolve the absolute path to the site directory. The default is CWD."]}),"\n",(0,t.jsx)(s.admonition,{type:"warning",children:(0,t.jsx)(s.p,{children:"This command should be preferably used in an interactive shell so all features are available."})}),"\n",(0,t.jsx)(s.h2,{id:"options",children:"Options"}),"\n",(0,t.jsx)(s.h3,{id:"typescript",children:(0,t.jsx)(s.code,{children:"-t, --typescript"})}),"\n",(0,t.jsxs)(s.p,{children:["Used when the template argument is a recognized name. Currently, only ",(0,t.jsx)(s.code,{children:"classic"})," provides a TypeScript variant."]}),"\n",(0,t.jsx)(s.h3,{id:"git-strategy",children:(0,t.jsx)(s.code,{children:"-g, --git-strategy"})}),"\n",(0,t.jsx)(s.p,{children:"Used when the template argument is a git repo. It needs to be one of:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.code,{children:"deep"}),": preserves full git history"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.code,{children:"shallow"}),": clones with ",(0,t.jsx)(s.code,{children:"--depth=1"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.code,{children:"copy"}),": does a shallow clone, but does not create a git repo"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.code,{children:"custom"}),": enter your custom git clone command. We will prompt you for it. You can write something like ",(0,t.jsx)(s.code,{children:"git clone --depth 10"}),", and we will append the repository URL and destination directory."]}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"package-manager",children:(0,t.jsx)(s.code,{children:"-p, --package-manager"})}),"\n",(0,t.jsxs)(s.p,{children:["Value should be one of ",(0,t.jsx)(s.code,{children:"npm"}),", ",(0,t.jsx)(s.code,{children:"yarn"}),", ",(0,t.jsx)(s.code,{children:"pnpm"}),", or ",(0,t.jsx)(s.code,{children:"bun"}),". If it's not explicitly provided, Docusaurus will infer one based on:"]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"The lockfile already present in the CWD (e.g. if you are setting up website in an existing project)"}),"\n",(0,t.jsxs)(s.li,{children:["The command used to invoke ",(0,t.jsx)(s.code,{children:"create-docusaurus"})," (e.g. ",(0,t.jsx)(s.code,{children:"npm init"}),", ",(0,t.jsx)(s.code,{children:"npx"}),", ",(0,t.jsx)(s.code,{children:"yarn create"}),", ",(0,t.jsx)(s.code,{children:"bunx"}),", etc.)"]}),"\n",(0,t.jsx)(s.li,{children:"Interactive prompting, in case all heuristics are not present"}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"skip-install",children:(0,t.jsx)(s.code,{children:"-s, --skip-install"})}),"\n",(0,t.jsxs)(s.p,{children:["If provided, Docusaurus will not automatically install dependencies after creating the app. The ",(0,t.jsx)(s.code,{children:"--package-manager"})," option is only useful when you are actually installing dependencies."]})]})}function u(e={}){let{wrapper:s}={...(0,c.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},43023:(e,s,i)=>{i.d(s,{R:()=>a,x:()=>l});var n=i(63696);let t={},c=n.createContext(t);function a(e){let s=n.useContext(c);return n.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(t):e.components||t:a(e.components),n.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0938a5e1.5ce015b2.js b/assets/js/0938a5e1.0e043580.js similarity index 80% rename from assets/js/0938a5e1.5ce015b2.js rename to assets/js/0938a5e1.0e043580.js index a90277830b..66a21accb2 100644 --- a/assets/js/0938a5e1.5ce015b2.js +++ b/assets/js/0938a5e1.0e043580.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[16631],{7036:(e,s,n)=>{n.d(s,{A:()=>r});let r=n.p+"assets/images/social-card-402517ac2205718a22585e627fe1351c.png"},70361:(e,s,n)=>{n.d(s,{A:()=>o});var r=n(62540);n(63696);var a=n(11750);let t="dot_giz1",i="bar_rrRL";function o({children:e,minHeight:s,url:n="http://localhost:3000",style:o,bodyStyle:l}){var c,h;return(0,r.jsxs)("div",{className:"browserWindow_my1Q",style:(c=function(e){for(var s=1;s<arguments.length;s++){var n=null!=arguments[s]?arguments[s]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(s){var r;r=n[s],s in e?Object.defineProperty(e,s,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[s]=r})}return e}({},o),h=h={minHeight:s},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(h)):(function(e,s){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(h)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(h,e))}),c),children:[(0,r.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,r.jsxs)("div",{className:"buttons_uHc7",children:[(0,r.jsx)("span",{className:t,style:{background:"#f25f58"}}),(0,r.jsx)("span",{className:t,style:{background:"#fbbe3c"}}),(0,r.jsx)("span",{className:t,style:{background:"#58cb42"}})]}),(0,r.jsx)("div",{className:(0,a.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:n}),(0,r.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:i}),(0,r.jsx)("span",{className:i}),(0,r.jsx)("span",{className:i})]})})]}),(0,r.jsx)("div",{className:"browserWindowBody_Idgs",style:l,children:e})]})}},42897:(e,s,n)=>{n.d(s,{A:()=>r});let r=n.p+"assets/images/social-card-402517ac2205718a22585e627fe1351c.png"},33556:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>h});var r=n(85572),a=n(62540),t=n(43023),i=n(70361);let o={title:"Docusaurus 2.2",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2022-10-29T00:00:00.000Z")},l=void 0,c={image:n(7036).A,authorsImageUrls:[void 0]},h=[{value:"Highlights",id:"highlights",level:2},{value:"Mermaid diagrams",id:"mermaid-diagrams",level:3},{value:"Config <code>headTags</code>",id:"config-headtags",level:3},{value:"Accessibility",id:"accessibility",level:3},{value:"Developer Experience",id:"developer-experience",level:3},{value:"Translations",id:"translations",level:3},{value:"Other changes",id:"other-changes",level:2}];function d(e){let s={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(s.p,{children:["We are happy to announce ",(0,a.jsx)(s.strong,{children:"Docusaurus 2.2"}),"."]}),"\n",(0,a.jsxs)(s.p,{children:["The upgrade should be easy: as explained in our ",(0,a.jsx)(s.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,a.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"Docusaurus 2.2 social card",src:n(42897).A+"",width:"1200",height:"600"})}),"\n","\n",(0,a.jsx)(s.h2,{id:"highlights",children:"Highlights"}),"\n",(0,a.jsx)(s.h3,{id:"mermaid-diagrams",children:"Mermaid diagrams"}),"\n",(0,a.jsxs)(s.p,{children:["In ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/7490",children:"#7490"}),", we added support for Mermaid diagrams. This fills the gap between GitHub Flavored Markdown which also ",(0,a.jsx)(s.a,{href:"https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/",children:"added support recently"}),". You can create Mermaid diagrams using Markdown code blocks:"]}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-md",children:"```mermaid\nsequenceDiagram\n participant Alice\n participant Bob\n Alice->>John: Hello John, how are you?\n loop Health check\n John->>John: Fight against hypochondria\n end\n Note right of John: Rational thoughts <br/>prevail!\n John-->>Alice: Great!\n John->>Bob: How about you?\n Bob-->>John: Jolly good!\n```\n"})}),"\n","\n",(0,a.jsx)(i.A,{children:(0,a.jsx)(s.mermaid,{value:"sequenceDiagram\n participant Alice\n participant Bob\n Alice->>John: Hello John, how are you?\n loop Health check\n John->>John: Fight against hypochondria\n end\n Note right of John: Rational thoughts <br/>prevail!\n John-->>Alice: Great!\n John->>Bob: How about you?\n Bob-->>John: Jolly good!"})}),"\n",(0,a.jsxs)(s.p,{children:["Make sure to check the ",(0,a.jsx)(s.a,{href:"/docs/markdown-features/diagrams",children:"documentation"}),", and the ",(0,a.jsx)(s.a,{href:"/tests/pages/diagrams",children:"more advanced examples"})]}),"\n",(0,a.jsxs)(s.h3,{id:"config-headtags",children:["Config ",(0,a.jsx)(s.code,{children:"headTags"})]}),"\n",(0,a.jsxs)(s.p,{children:["In ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8151",children:"#8151"}),", we added the ability to apply arbitrary HTML ",(0,a.jsx)(s.code,{children:"<head>"})," tags to all pages of your site."]}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"module.exports = {\n headTags: [\n {\n tagName: 'link',\n attributes: {\n rel: 'icon',\n href: '/img/docusaurus.png',\n },\n },\n ],\n};\n"})}),"\n",(0,a.jsx)(s.h3,{id:"accessibility",children:"Accessibility"}),"\n",(0,a.jsx)(s.p,{children:"We did several accessibility improvements:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8207",children:"#8207"}),": improves keyboard navigation for mobile drawer hamburger button"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8161",children:"#8161"}),": improves keyboard navigation for tabs"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8204",children:"#8204"}),": makes the skip to content button support progressive enhancement"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8174",children:"#8174"}),": improves screen reader announcement when toggling between light/dark mode"]}),"\n"]}),"\n",(0,a.jsx)(s.h3,{id:"developer-experience",children:"Developer Experience"}),"\n",(0,a.jsx)(s.p,{children:"We made validation stricter and improved error messages:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8234",children:"#8234"}),": in case of doc processing failure, prints the problematic markdown file path in the error message"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8192",children:"#8192"})," and ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8159",children:"#8159"}),": validates ",(0,a.jsx)(s.code,{children:"siteConfig.url"})," more strictly and with better error message"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8066",children:"#8066"}),": makes config ",(0,a.jsx)(s.code,{children:"url"})," and ",(0,a.jsx)(s.code,{children:"baseUrl"})," fail-safe and less sensitive to the presence or absence of a leading or trailing slash"]}),"\n"]}),"\n",(0,a.jsx)(s.h3,{id:"translations",children:"Translations"}),"\n",(0,a.jsx)(s.p,{children:"We completed the default theme translation support for multiple languages:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["\u{1F1F9}\u{1F1F7} ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8105",children:"#8105"}),": completes Turkish translations"]}),"\n",(0,a.jsxs)(s.li,{children:["\u{1F1F7}\u{1F1FA} ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8253",children:"#8253"}),": completes Russian translations"]}),"\n",(0,a.jsxs)(s.li,{children:["\u{1F1EB}\u{1F1F7} ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8243",children:"#8243"}),": completes French translations"]}),"\n",(0,a.jsxs)(s.li,{children:["\u{1F1EF}\u{1F1F5} ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8075",children:"#8075"}),": completes Japanese translations"]}),"\n"]}),"\n",(0,a.jsx)(s.admonition,{type:"tip",children:(0,a.jsxs)(s.p,{children:["Completing theme translations is an ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/3526",children:"ongoing effort"})," and an easy way to contribute to Docusaurus. We add new theme features regularly, for which we often ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/3526",children:"need new translations"}),"."]})}),"\n",(0,a.jsx)(s.h2,{id:"other-changes",children:"Other changes"}),"\n",(0,a.jsx)(s.p,{children:"Other notable changes include:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8210",children:"#8210"}),": the ",(0,a.jsx)(s.code,{children:"docusaurus swizzle"})," CLI has a new ",(0,a.jsx)(s.code,{children:"--config"})," option"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8109",children:"#8109"}),": mobile navigation performance optimizations, prefetch resources earlier"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8059",children:"#8059"}),": versions/locales navbar dropdowns preserve hash and querystring on navigation"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8227",children:"#8227"}),": the client redirect plugin preserves hash and querystring on redirect"]}),"\n"]}),"\n",(0,a.jsxs)(s.p,{children:["Check the ",(0,a.jsx)(s.strong,{children:(0,a.jsx)(s.a,{href:"/changelog/2.2.0",children:"2.2.0 changelog entry"})})," for an exhaustive list of changes."]})]})}function u(e={}){let{wrapper:s}={...(0,t.R)(),...e.components};return s?(0,a.jsx)(s,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},43023:(e,s,n)=>{n.d(s,{R:()=>i,x:()=>o});var r=n(63696);let a={},t=r.createContext(a);function i(e){let s=r.useContext(t);return r.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(a):e.components||a:i(e.components),r.createElement(t.Provider,{value:s},e.children)}},85572:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/2.2","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/2.2/index.mdx","source":"@site/blog/releases/2.2/index.mdx","title":"Docusaurus 2.2","description":"We are happy to announce Docusaurus 2.2.","date":"2022-10-29T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":2.2,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.2","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2022-10-29T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 2.3","permalink":"/blog/releases/2.3"},"nextItem":{"title":"Docusaurus 2.1","permalink":"/blog/2022/09/01/docusaurus-2.1"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[16631],{7036:(e,s,r)=>{r.d(s,{A:()=>n});let n=r.p+"assets/images/social-card-402517ac2205718a22585e627fe1351c.png"},70361:(e,s,r)=>{r.d(s,{A:()=>o});var n=r(62540);r(63696);var a=r(11750);let t="dot_giz1",i="bar_rrRL";function o({children:e,minHeight:s,url:r="http://localhost:3000",style:o,bodyStyle:l}){var c,h;return(0,n.jsxs)("div",{className:"browserWindow_my1Q",style:(c=function(e){for(var s=1;s<arguments.length;s++){var r=null!=arguments[s]?arguments[s]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(s){var n;n=r[s],s in e?Object.defineProperty(e,s,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[s]=n})}return e}({},o),h=h={minHeight:s},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(h)):(function(e,s){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(h)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(h,e))}),c),children:[(0,n.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,n.jsxs)("div",{className:"buttons_uHc7",children:[(0,n.jsx)("span",{className:t,style:{background:"#f25f58"}}),(0,n.jsx)("span",{className:t,style:{background:"#fbbe3c"}}),(0,n.jsx)("span",{className:t,style:{background:"#58cb42"}})]}),(0,n.jsx)("div",{className:(0,a.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:r}),(0,n.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:i}),(0,n.jsx)("span",{className:i}),(0,n.jsx)("span",{className:i})]})})]}),(0,n.jsx)("div",{className:"browserWindowBody_Idgs",style:l,children:e})]})}},42897:(e,s,r)=>{r.d(s,{A:()=>n});let n=r.p+"assets/images/social-card-402517ac2205718a22585e627fe1351c.png"},33556:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>n,toc:()=>h});var n=r(85572),a=r(62540),t=r(43023),i=r(70361);let o={title:"Docusaurus 2.2",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2022-10-29T00:00:00.000Z")},l=void 0,c={image:r(7036).A,authorsImageUrls:[void 0]},h=[{value:"Highlights",id:"highlights",level:2},{value:"Mermaid diagrams",id:"mermaid-diagrams",level:3},{value:"Config <code>headTags</code>",id:"config-headtags",level:3},{value:"Accessibility",id:"accessibility",level:3},{value:"Developer Experience",id:"developer-experience",level:3},{value:"Translations",id:"translations",level:3},{value:"Other changes",id:"other-changes",level:2}];function d(e){let s={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(s.p,{children:["We are happy to announce ",(0,a.jsx)(s.strong,{children:"Docusaurus 2.2"}),"."]}),"\n",(0,a.jsxs)(s.p,{children:["The upgrade should be easy: as explained in our ",(0,a.jsx)(s.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,a.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"Docusaurus 2.2 social card",src:r(42897).A+"",width:"1200",height:"600"})}),"\n","\n",(0,a.jsx)(s.h2,{id:"highlights",children:"Highlights"}),"\n",(0,a.jsx)(s.h3,{id:"mermaid-diagrams",children:"Mermaid diagrams"}),"\n",(0,a.jsxs)(s.p,{children:["In ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/7490",children:"#7490"}),", we added support for Mermaid diagrams. This fills the gap between GitHub Flavored Markdown which also ",(0,a.jsx)(s.a,{href:"https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/",children:"added support recently"}),". You can create Mermaid diagrams using Markdown code blocks:"]}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-md",children:"```mermaid\nsequenceDiagram\n participant Alice\n participant Bob\n Alice->>John: Hello John, how are you?\n loop Health check\n John->>John: Fight against hypochondria\n end\n Note right of John: Rational thoughts <br/>prevail!\n John-->>Alice: Great!\n John->>Bob: How about you?\n Bob-->>John: Jolly good!\n```\n"})}),"\n","\n",(0,a.jsx)(i.A,{children:(0,a.jsx)(s.mermaid,{value:"sequenceDiagram\n participant Alice\n participant Bob\n Alice->>John: Hello John, how are you?\n loop Health check\n John->>John: Fight against hypochondria\n end\n Note right of John: Rational thoughts <br/>prevail!\n John-->>Alice: Great!\n John->>Bob: How about you?\n Bob-->>John: Jolly good!"})}),"\n",(0,a.jsxs)(s.p,{children:["Make sure to check the ",(0,a.jsx)(s.a,{href:"/docs/markdown-features/diagrams",children:"documentation"}),", and the ",(0,a.jsx)(s.a,{href:"/tests/pages/diagrams",children:"more advanced examples"})]}),"\n",(0,a.jsxs)(s.h3,{id:"config-headtags",children:["Config ",(0,a.jsx)(s.code,{children:"headTags"})]}),"\n",(0,a.jsxs)(s.p,{children:["In ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8151",children:"#8151"}),", we added the ability to apply arbitrary HTML ",(0,a.jsx)(s.code,{children:"<head>"})," tags to all pages of your site."]}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"module.exports = {\n headTags: [\n {\n tagName: 'link',\n attributes: {\n rel: 'icon',\n href: '/img/docusaurus.png',\n },\n },\n ],\n};\n"})}),"\n",(0,a.jsx)(s.h3,{id:"accessibility",children:"Accessibility"}),"\n",(0,a.jsx)(s.p,{children:"We did several accessibility improvements:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8207",children:"#8207"}),": improves keyboard navigation for mobile drawer hamburger button"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8161",children:"#8161"}),": improves keyboard navigation for tabs"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8204",children:"#8204"}),": makes the skip to content button support progressive enhancement"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8174",children:"#8174"}),": improves screen reader announcement when toggling between light/dark mode"]}),"\n"]}),"\n",(0,a.jsx)(s.h3,{id:"developer-experience",children:"Developer Experience"}),"\n",(0,a.jsx)(s.p,{children:"We made validation stricter and improved error messages:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8234",children:"#8234"}),": in case of doc processing failure, prints the problematic markdown file path in the error message"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8192",children:"#8192"})," and ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8159",children:"#8159"}),": validates ",(0,a.jsx)(s.code,{children:"siteConfig.url"})," more strictly and with better error message"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8066",children:"#8066"}),": makes config ",(0,a.jsx)(s.code,{children:"url"})," and ",(0,a.jsx)(s.code,{children:"baseUrl"})," fail-safe and less sensitive to the presence or absence of a leading or trailing slash"]}),"\n"]}),"\n",(0,a.jsx)(s.h3,{id:"translations",children:"Translations"}),"\n",(0,a.jsx)(s.p,{children:"We completed the default theme translation support for multiple languages:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["\u{1F1F9}\u{1F1F7} ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8105",children:"#8105"}),": completes Turkish translations"]}),"\n",(0,a.jsxs)(s.li,{children:["\u{1F1F7}\u{1F1FA} ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8253",children:"#8253"}),": completes Russian translations"]}),"\n",(0,a.jsxs)(s.li,{children:["\u{1F1EB}\u{1F1F7} ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8243",children:"#8243"}),": completes French translations"]}),"\n",(0,a.jsxs)(s.li,{children:["\u{1F1EF}\u{1F1F5} ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8075",children:"#8075"}),": completes Japanese translations"]}),"\n"]}),"\n",(0,a.jsx)(s.admonition,{type:"tip",children:(0,a.jsxs)(s.p,{children:["Completing theme translations is an ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/3526",children:"ongoing effort"})," and an easy way to contribute to Docusaurus. We add new theme features regularly, for which we often ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/3526",children:"need new translations"}),"."]})}),"\n",(0,a.jsx)(s.h2,{id:"other-changes",children:"Other changes"}),"\n",(0,a.jsx)(s.p,{children:"Other notable changes include:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8210",children:"#8210"}),": the ",(0,a.jsx)(s.code,{children:"docusaurus swizzle"})," CLI has a new ",(0,a.jsx)(s.code,{children:"--config"})," option"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8109",children:"#8109"}),": mobile navigation performance optimizations, prefetch resources earlier"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8059",children:"#8059"}),": versions/locales navbar dropdowns preserve hash and querystring on navigation"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8227",children:"#8227"}),": the client redirect plugin preserves hash and querystring on redirect"]}),"\n"]}),"\n",(0,a.jsxs)(s.p,{children:["Check the ",(0,a.jsx)(s.strong,{children:(0,a.jsx)(s.a,{href:"/changelog/2.2.0",children:"2.2.0 changelog entry"})})," for an exhaustive list of changes."]})]})}function u(e={}){let{wrapper:s}={...(0,t.R)(),...e.components};return s?(0,a.jsx)(s,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},43023:(e,s,r)=>{r.d(s,{R:()=>i,x:()=>o});var n=r(63696);let a={},t=n.createContext(a);function i(e){let s=n.useContext(t);return n.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(a):e.components||a:i(e.components),n.createElement(t.Provider,{value:s},e.children)}},85572:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/2.2","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/2.2/index.mdx","source":"@site/blog/releases/2.2/index.mdx","title":"Docusaurus 2.2","description":"We are happy to announce Docusaurus 2.2.","date":"2022-10-29T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":2.2,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.2","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2022-10-29T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 2.3","permalink":"/blog/releases/2.3"},"nextItem":{"title":"Docusaurus 2.1","permalink":"/blog/2022/09/01/docusaurus-2.1"}}')}}]); \ No newline at end of file diff --git a/assets/js/0a544fe9.ac0a9757.js b/assets/js/0a544fe9.6faedffa.js similarity index 89% rename from assets/js/0a544fe9.ac0a9757.js rename to assets/js/0a544fe9.6faedffa.js index c0bda27f6f..245ffe6079 100644 --- a/assets/js/0a544fe9.ac0a9757.js +++ b/assets/js/0a544fe9.6faedffa.js @@ -1,4 +1,4 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[82989],{69473:(e,t,r)=>{r.d(t,{in:()=>s,OU:()=>k,Ki:()=>S,kJ:()=>d,x:()=>l,e7:()=>u,J_:()=>m,Gx:()=>x});var n=r(62540),o=r(63696),c=r(2550),i=r(15789);function l(){var e;let t=(0,i.A)(),r=null==t?void 0:null===(e=t.data)||void 0===e?void 0:e.blogMetadata;if(!r)throw Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return r}let a=o.createContext(null);function s({children:e,content:t,isBlogPostPage:r=!1}){let c=function({content:e,isBlogPostPage:t}){return(0,o.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,toc:e.toc,isBlogPostPage:t}),[e,t])}({content:t,isBlogPostPage:r});return(0,n.jsx)(a.Provider,{value:c,children:e})}function u(){let e=(0,o.useContext)(a);if(null===e)throw new c.dV("BlogPostProvider");return e}var b=r(27167),p=r(99468);function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let O=e=>new Date(e).toISOString();function y(e){let t=e.map(g);return{author:1===t.length?t[0]:t}}function j(e,t,r){return e?{image:function({imageUrl:e,caption:t}){return{"@type":"ImageObject","@id":e,url:e,contentUrl:e,caption:t}}({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${r}`})}:{}}function d(e){let{siteConfig:t}=(0,p.A)(),{withBaseUrl:r}=(0,b.hH)(),{metadata:{blogDescription:n,blogTitle:o,permalink:c}}=e,i=`${t.url}${c}`;return{"@context":"https://schema.org","@type":"Blog","@id":i,mainEntityOfPage:i,headline:o,description:n,blogPost:e.items.map(e=>(function(e,t,r){var n,o;let{assets:c,frontMatter:i,metadata:l}=e,{date:a,title:s,description:u,lastUpdatedAt:b}=l,p=null!==(n=c.image)&&void 0!==n?n:i.image,d=null!==(o=i.keywords)&&void 0!==o?o:[],m=`${t.url}${l.permalink}`,g=b?O(b):void 0;return f({"@type":"BlogPosting","@id":m,mainEntityOfPage:m,url:m,headline:s,name:s,description:u,datePublished:a},g?{dateModified:g}:{},y(l.authors),j(p,r,s),d?{keywords:d}:{})})(e.content,t,r))}}function m(){var e,t,r,n;let o=l(),{assets:c,metadata:i}=u(),{siteConfig:a}=(0,p.A)(),{withBaseUrl:s}=(0,b.hH)(),{date:d,title:m,description:g,frontMatter:h,lastUpdatedAt:v}=i,w=null!==(e=c.image)&&void 0!==e?e:h.image,P=null!==(t=h.keywords)&&void 0!==t?t:[],x=v?O(v):void 0,S=`${a.url}${i.permalink}`;return r=f({"@context":"https://schema.org","@type":"BlogPosting","@id":S,mainEntityOfPage:S,url:S,headline:m,name:m,description:g,datePublished:d},x?{dateModified:x}:{},y(i.authors),j(w,s,m),P?{keywords:P}:{}),n=n={isPartOf:{"@type":"Blog","@id":`${a.url}${o.blogBasePath}`,name:o.blogTitle}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}function g(e){return f({"@type":"Person"},e.name?{name:e.name}:{},e.title?{description:e.title}:{},e.url?{url:e.url}:{},e.email?{email:e.email}:{},e.imageURL?{image:e.imageURL}:{})}var h=r(49519),v=r(36372),w=r(66904),P=r(3107);function x(e){let{pathname:t}=(0,h.zy)();return(0,o.useMemo)(()=>e.filter(e=>!e.unlisted||!!(0,P.ys)(e.permalink,t)),[e,t])}function S(e){let t=Object.entries((0,w.$z)(e,e=>`${new Date(e.date).getFullYear()}`));return t.reverse(),t}function k({items:e,ulClassName:t,liClassName:r,linkClassName:o,linkActiveClassName:c}){return(0,n.jsx)("ul",{className:t,children:e.map(e=>(0,n.jsx)("li",{className:r,children:(0,n.jsx)(v.A,{isNavLink:!0,to:e.permalink,className:o,activeClassName:c,children:e.title})},e.permalink))})}},65108:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,n.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}r(63696)},55640:(e,t,r)=>{r.d(t,{A:()=>E});var n,o,c=r(62540),i=r(63696),l=r(11750),a=r(81912),s=r(12653);let u={admonition:"admonition_o5H7",admonitionHeading:"admonitionHeading_FzoX",admonitionIcon:"admonitionIcon_rXq6",admonitionContent:"admonitionContent_Knsx"};function b({type:e,className:t,children:r}){return(0,c.jsx)("div",{className:(0,l.A)(s.G.common.admonition,s.G.common.admonitionType(e),u.admonition,t),children:r})}function p({icon:e,title:t}){return(0,c.jsxs)("div",{className:u.admonitionHeading,children:[(0,c.jsx)("span",{className:u.admonitionIcon,children:e}),t]})}function f({children:e}){return e?(0,c.jsx)("div",{className:u.admonitionContent,children:e}):null}function O(e){let{type:t,icon:r,title:n,children:o,className:i}=e;return(0,c.jsxs)(b,{type:t,className:i,children:[n||r?(0,c.jsx)(p,{title:n,icon:r}):null,(0,c.jsx)(f,{children:o})]})}let y={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function j(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},y,e),r=r={className:(0,l.A)("alert alert--secondary",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let d={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function m(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},d,e),r=r={className:(0,l.A)("alert alert--success",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var g=r(65108);let h={icon:(0,c.jsx)(g.A,{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function v(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},h,e),r=r={className:(0,l.A)("alert alert--info",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function w(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 16 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let P={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})},x={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})},S={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};function k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let A=k({},{note:j,tip:m,info:v,warning:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},P,e),r=r={className:(0,l.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},danger:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},x,e),r=r={className:(0,l.A)("alert alert--danger",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},{secondary:e=>(0,c.jsx)(j,k({title:"secondary"},e)),important:e=>(0,c.jsx)(v,k({title:"important"},e)),success:e=>(0,c.jsx)(m,k({title:"success"},e)),caution:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},S,e),r=r={className:(0,l.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}});var D=r(37425);let N=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},A),o=o={"my-custom-admonition":function(e){return(0,c.jsxs)("div",{style:{border:"solid red",padding:10},children:[(0,c.jsx)(D.A,{as:"h5",style:{color:"blue",fontSize:30},children:e.title}),(0,c.jsx)("div",{children:e.children})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function E(e){var t;let r=function(e){var t,r,n;let{mdxAdmonitionTitle:o,rest:l}=function(e){let t=i.Children.toArray(e),r=t.find(e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),n=t.filter(e=>e!==r);return{mdxAdmonitionTitle:null==r?void 0:r.props.children,rest:n.length>0?(0,c.jsx)(c.Fragment,{children:n}):null}}(e.children),a=null!==(t=e.title)&&void 0!==t?t:o;return r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e,a&&{title:a}),n=n={children:l},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}(e),n=N[t=r.type]||(console.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),N.info);return(0,c.jsx)(n,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r))}},6205:(e,t,r)=>{r.d(t,{A:()=>d});var n=r(62540);r(63696);var o=r(11750),c=r(36372);let i=function(e){var t,r;return(0,n.jsxs)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},e),r=r={children:[(0,n.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,n.jsx)("path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"}),(0,n.jsx)("path",{d:"M3.6 9h16.8"}),(0,n.jsx)("path",{d:"M3.6 15h16.8"}),(0,n.jsx)("path",{d:"M11.5 3a17 17 0 0 0 0 18"}),(0,n.jsx)("path",{d:"M12.5 3a17 17 0 0 1 0 18"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},l="authorSocialLink_hEWM",a={twitter:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 256 209",width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid"},e),r=r={children:(0,n.jsx)("path",{d:"M256 25.45c-9.42 4.177-19.542 7-30.166 8.27 10.845-6.5 19.172-16.793 23.093-29.057a105.183 105.183 0 0 1-33.351 12.745C205.995 7.201 192.346.822 177.239.822c-29.006 0-52.523 23.516-52.523 52.52 0 4.117.465 8.125 1.36 11.97-43.65-2.191-82.35-23.1-108.255-54.876-4.52 7.757-7.11 16.78-7.11 26.404 0 18.222 9.273 34.297 23.365 43.716a52.312 52.312 0 0 1-23.79-6.57c-.003.22-.003.44-.003.661 0 25.447 18.104 46.675 42.13 51.5a52.592 52.592 0 0 1-23.718.9c6.683 20.866 26.08 36.05 49.062 36.475-17.975 14.086-40.622 22.483-65.228 22.483-4.24 0-8.42-.249-12.529-.734 23.243 14.902 50.85 23.597 80.51 23.597 96.607 0 149.434-80.031 149.434-149.435 0-2.278-.05-4.543-.152-6.795A106.748 106.748 0 0 0 256 25.45",fill:"#55acee"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"Twitter"},github:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 256 250",width:"1em",height:"1em"},e),r=r={className:(0,o.A)(e.className,"githubSvg_jqE4"),xmlns:"http://www.w3.org/2000/svg",style:{"--dark":"#000","--light":"#fff"},preserveAspectRatio:"xMidYMid",children:(0,n.jsx)("path",{d:"M128.001 0C57.317 0 0 57.307 0 128.001c0 56.554 36.676 104.535 87.535 121.46 6.397 1.185 8.746-2.777 8.746-6.158 0-3.052-.12-13.135-.174-23.83-35.61 7.742-43.124-15.103-43.124-15.103-5.823-14.795-14.213-18.73-14.213-18.73-11.613-7.944.876-7.78.876-7.78 12.853.902 19.621 13.19 19.621 13.19 11.417 19.568 29.945 13.911 37.249 10.64 1.149-8.272 4.466-13.92 8.127-17.116-28.431-3.236-58.318-14.212-58.318-63.258 0-13.975 5-25.394 13.188-34.358-1.329-3.224-5.71-16.242 1.24-33.874 0 0 10.749-3.44 35.21 13.121 10.21-2.836 21.16-4.258 32.038-4.307 10.878.049 21.837 1.47 32.066 4.307 24.431-16.56 35.165-13.12 35.165-13.12 6.967 17.63 2.584 30.65 1.255 33.873 8.207 8.964 13.173 20.383 13.173 34.358 0 49.163-29.944 59.988-58.447 63.157 4.591 3.972 8.682 11.762 8.682 23.704 0 17.126-.148 30.91-.148 35.126 0 3.407 2.304 7.398 8.792 6.14C219.37 232.5 256 184.537 256 128.002 256 57.307 198.691 0 128.001 0Zm-80.06 182.34c-.282.636-1.283.827-2.194.39-.929-.417-1.45-1.284-1.15-1.922.276-.655 1.279-.838 2.205-.399.93.418 1.46 1.293 1.139 1.931Zm6.296 5.618c-.61.566-1.804.303-2.614-.591-.837-.892-.994-2.086-.375-2.66.63-.566 1.787-.301 2.626.591.838.903 1 2.088.363 2.66Zm4.32 7.188c-.785.545-2.067.034-2.86-1.104-.784-1.138-.784-2.503.017-3.05.795-.547 2.058-.055 2.861 1.075.782 1.157.782 2.522-.019 3.08Zm7.304 8.325c-.701.774-2.196.566-3.29-.49-1.119-1.032-1.43-2.496-.726-3.27.71-.776 2.213-.558 3.315.49 1.11 1.03 1.45 2.505.701 3.27Zm9.442 2.81c-.31 1.003-1.75 1.459-3.199 1.033-1.448-.439-2.395-1.613-2.103-2.626.301-1.01 1.747-1.484 3.207-1.028 1.446.436 2.396 1.602 2.095 2.622Zm10.744 1.193c.036 1.055-1.193 1.93-2.715 1.95-1.53.034-2.769-.82-2.786-1.86 0-1.065 1.202-1.932 2.733-1.958 1.522-.03 2.768.818 2.768 1.868Zm10.555-.405c.182 1.03-.875 2.088-2.387 2.37-1.485.271-2.861-.365-3.05-1.386-.184-1.056.893-2.114 2.376-2.387 1.514-.263 2.868.356 3.061 1.403Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"GitHub"},stackoverflow:{Icon:function(e){var t,r;return(0,n.jsxs)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 169.61 200",width:"1em",height:"1em"},e),r=r={children:[(0,n.jsx)("path",{d:"M140.44 178.38v-48.65h21.61V200H0v-70.27h21.61v48.65z",fill:"#bcbbbb"}),(0,n.jsx)("path",{d:"M124.24 140.54l4.32-16.22-86.97-17.83-3.78 17.83zM49.7 82.16L130.72 120l7.56-16.22-81.02-37.83zm22.68-40l68.06 57.3 11.35-13.51-68.6-57.3-11.35 13.51zM116.14 0l-14.59 10.81 53.48 71.89 14.58-10.81zM37.81 162.16h86.43v-16.21H37.81z",fill:"#f48024"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"Stack Overflow"},linkedin:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 256"},e),r=r={children:(0,n.jsx)("path",{d:"M218.123 218.127h-37.931v-59.403c0-14.165-.253-32.4-19.728-32.4-19.756 0-22.779 15.434-22.779 31.369v60.43h-37.93V95.967h36.413v16.694h.51a39.907 39.907 0 0 1 35.928-19.733c38.445 0 45.533 25.288 45.533 58.186l-.016 67.013ZM56.955 79.27c-12.157.002-22.014-9.852-22.016-22.009-.002-12.157 9.851-22.014 22.008-22.016 12.157-.003 22.014 9.851 22.016 22.008A22.013 22.013 0 0 1 56.955 79.27m18.966 138.858H37.95V95.967h37.97v122.16ZM237.033.018H18.89C8.58-.098.125 8.161-.001 18.471v219.053c.122 10.315 8.576 18.582 18.89 18.474h218.144c10.336.128 18.823-8.139 18.966-18.474V18.454c-.147-10.33-8.635-18.588-18.966-18.453",fill:"#0A66C2"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"LinkedIn"},x:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"none",viewBox:"0 0 1200 1227"},e),r=r={className:(0,o.A)(e.className,"xSvg_Q0g7"),style:{"--dark":"#000","--light":"#fff"},children:(0,n.jsx)("path",{d:"M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"X"}};function s({platform:e,link:t}){var r;let{Icon:s,label:u}=null!==(r=a[e])&&void 0!==r?r:{Icon:i,label:e};return(0,n.jsx)(c.A,{className:l,href:t,title:u,children:(0,n.jsx)(s,{className:(0,o.A)(l)})})}function u({author:e}){var t;let r=Object.entries(null!==(t=e.socials)&&void 0!==t?t:{});return(0,n.jsx)("div",{className:"authorSocials_tPnL",children:r.map(([e,t])=>(0,n.jsx)(s,{platform:e,link:t},e))})}var b=r(37425);let p={authorImage:"authorImage_p8ow","author-as-h1":"author-as-h1_Pd3R","author-as-h2":"author-as-h2_UaZL",authorDetails:"authorDetails_dWdF",authorName:"authorName_Y8Hr",authorTitle:"authorTitle_Slpj",authorBlogPostCount:"authorBlogPostCount_FxU_"};function f(e){return e.href?(0,n.jsx)(c.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e)):(0,n.jsx)(n.Fragment,{children:e.children})}function O({title:e}){return(0,n.jsx)("small",{className:p.authorTitle,title:e,children:e})}function y({name:e,as:t}){return t?(0,n.jsx)(b.A,{as:t,className:p.authorName,children:e}):(0,n.jsx)("span",{className:p.authorName,children:e})}function j({count:e}){return(0,n.jsx)("span",{className:(0,o.A)(p.authorBlogPostCount),children:e})}function d({as:e,author:t,className:r,count:c}){let{name:i,title:l,url:a,imageURL:s,email:b,page:d}=t,m=(null==d?void 0:d.permalink)||a||b&&`mailto:${b}`||void 0;return(0,n.jsxs)("div",{className:(0,o.A)("avatar margin-bottom--sm",r,p[`author-as-${e}`]),children:[s&&(0,n.jsx)(f,{href:m,className:"avatar__photo-link",children:(0,n.jsx)("img",{className:(0,o.A)("avatar__photo",p.authorImage),src:s,alt:i})}),(i||l)&&(0,n.jsxs)("div",{className:(0,o.A)("avatar__intro",p.authorDetails),children:[(0,n.jsxs)("div",{className:"avatar__name",children:[i&&(0,n.jsx)(f,{href:m,children:(0,n.jsx)(y,{name:i,as:e})}),void 0!==c&&(0,n.jsx)(j,{count:c})]}),!!l&&(0,n.jsx)(O,{title:l}),(0,n.jsx)(u,{author:t})]})]})}},94389:(e,t,r)=>{r.d(t,{A:()=>v});var n=r(62540),o=r(63696),c=r(11750),i=r(99849),l=r(85975),a=r(81912),s=r(69473),u=r(25436),b=r(37425);function p({year:e,yearGroupHeadingClassName:t,children:r}){return(0,n.jsxs)("div",{role:"group",children:[(0,n.jsx)(b.A,{as:"h3",className:t,children:e}),r]})}let f=(0,o.memo)(function({items:e,yearGroupHeadingClassName:t,ListComponent:r}){if(!(0,u.p)().blog.sidebar.groupByYear)return(0,n.jsx)(r,{items:e});{let o=(0,s.Ki)(e);return(0,n.jsx)(n.Fragment,{children:o.map(([e,o])=>(0,n.jsx)(p,{year:e,yearGroupHeadingClassName:t,children:(0,n.jsx)(r,{items:o})},e))})}}),O=({items:e})=>(0,n.jsx)(s.OU,{items:e,ulClassName:(0,c.A)("sidebarItemList_OSkG","clean-list"),liClassName:"sidebarItem_WJ0y",linkClassName:"sidebarItemLink_Qrfg",linkActiveClassName:"sidebarItemLinkActive_nUeK"}),y=(0,o.memo)(function({sidebar:e}){let t=(0,s.Gx)(e.items);return(0,n.jsx)("aside",{className:"col col--3",children:(0,n.jsxs)("nav",{className:(0,c.A)("sidebar_P3nc","thin-scrollbar"),"aria-label":(0,a.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,n.jsx)("div",{className:(0,c.A)("sidebarItemTitle_VrjY","margin-bottom--md"),children:e.title}),(0,n.jsx)(f,{items:t,ListComponent:O,yearGroupHeadingClassName:"yearGroupHeading_lECJ"})]})})});var j=r(2454);let d=({items:e})=>(0,n.jsx)(s.OU,{items:e,ulClassName:"menu__list",liClassName:"menu__list-item",linkClassName:"menu__link",linkActiveClassName:"menu__link--active"});function m({sidebar:e}){let t=(0,s.Gx)(e.items);return(0,n.jsx)(f,{items:t,ListComponent:d,yearGroupHeadingClassName:"yearGroupHeading_Ruz9"})}let g=(0,o.memo)(function(e){return(0,n.jsx)(j.GX,{component:m,props:e})});function h({sidebar:e}){let t=(0,l.l)();return(null==e?void 0:e.items.length)?"mobile"===t?(0,n.jsx)(g,{sidebar:e}):(0,n.jsx)(y,{sidebar:e}):null}function v(e){var t,r;let{sidebar:o,toc:l,children:a}=e,s=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["sidebar","toc","children"]),u=o&&o.items.length>0;return(0,n.jsx)(i.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},s),r=r={children:(0,n.jsx)("div",{className:"container margin-vert--lg",children:(0,n.jsxs)("div",{className:"row",children:[(0,n.jsx)(h,{sidebar:o}),(0,n.jsx)("main",{className:(0,c.A)("col",{"col--7":u,"col--9 col--offset-1":!u}),children:a}),l&&(0,n.jsx)("div",{className:"col col--2",children:l})]})})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},467:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(81912),c=r(88524);function i(e){let{metadata:t}=e,{previousPage:r,nextPage:i}=t;return(0,n.jsxs)("nav",{className:"pagination-nav","aria-label":(0,o.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[r&&(0,n.jsx)(c.A,{permalink:r,title:(0,n.jsx)(o.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer entries"})}),i&&(0,n.jsx)(c.A,{permalink:i,title:(0,n.jsx)(o.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older entries"}),isNext:!0})]})}},57813:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o({children:e,className:t}){return(0,n.jsx)("article",{className:t,children:e})}r(63696)},5939:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750),c=r(71106),i=r(69473),l=r(76699);function a({children:e,className:t}){let{isBlogPostPage:r}=(0,i.e7)();return(0,n.jsx)("div",{id:r?c.LU:void 0,className:(0,o.A)("markdown",t),children:(0,n.jsx)(l.A,{children:e})})}},21500:(e,t,r)=>{r.d(t,{A:()=>p});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(13111),l=r(60908),a=r(69473);function s({readingTime:e}){let t=function(){let{selectMessage:e}=(0,i.W)();return t=>{let r=Math.ceil(t);return e(r,(0,c.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:r}))}}();return(0,n.jsx)(n.Fragment,{children:t(e)})}function u({date:e,formattedDate:t}){return(0,n.jsx)("time",{dateTime:e,children:t})}function b(){return(0,n.jsx)(n.Fragment,{children:" \xb7 "})}function p({className:e}){let{metadata:t}=(0,a.e7)(),{date:r,readingTime:c}=t,i=(0,l.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,n.jsxs)("div",{className:(0,o.A)("container_x5Un","margin-vert--md",e),children:[(0,n.jsx)(u,{date:r,formattedDate:i.format(new Date(r))}),void 0!==c&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(b,{}),(0,n.jsx)(s,{readingTime:c})]})]})}},32886:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(11750),c=r(36372),i=r(69473);function l({className:e}){let{metadata:t,isBlogPostPage:r}=(0,i.e7)(),{permalink:l,title:a}=t;return(0,n.jsx)(r?"h1":"h2",{className:(0,o.A)("title_UBNu",e),children:r?a:(0,n.jsx)(c.A,{to:l,children:a})})}},50064:(e,t,r)=>{r.d(t,{A:()=>w});var n=r(62540);r(63696);var o=r(11750),c=r(69473),i=r(57813),l=r(32886),a=r(21500),s=r(6205);let u={authorCol:"authorCol_bvyx",imageOnlyAuthorRow:"imageOnlyAuthorRow_L2DM",imageOnlyAuthorCol:"imageOnlyAuthorCol_oyze"};function b({className:e}){let{metadata:{authors:t},assets:r}=(0,c.e7)();if(0===t.length)return null;let i=t.every(({name:e})=>!e),l=1===t.length;return(0,n.jsx)("div",{className:(0,o.A)("margin-top--md margin-bottom--sm",i?u.imageOnlyAuthorRow:"row",e),children:t.map((e,t)=>{var c,a,b;return(0,n.jsx)("div",{className:(0,o.A)(!i&&(l?"col col--12":"col col--6"),i?u.imageOnlyAuthorCol:u.authorCol),children:(0,n.jsx)(s.A,{author:(a=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),b=b={imageURL:null!==(c=r.authorsImageUrls[t])&&void 0!==c?c:e.imageURL},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(b)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(b,e))}),a)})},t)})})}function p(){return(0,n.jsxs)("header",{children:[(0,n.jsx)(l.A,{}),(0,n.jsx)(a.A,{}),(0,n.jsx)(b,{})]})}var f=r(5939),O=r(12653),y=r(2604),j=r(48447),d=r(81912),m=r(36372);function g(){return(0,n.jsx)("b",{children:(0,n.jsx)(d.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read more"})})}function h(e){var t,r;let{blogPostTitle:o}=e,c=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["blogPostTitle"]);return(0,n.jsx)(m.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({"aria-label":(0,d.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:o})},c),r=r={children:(0,n.jsx)(g,{})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function v(){let{metadata:e,isBlogPostPage:t}=(0,c.e7)(),{tags:r,title:i,editUrl:l,hasTruncateMarker:a,lastUpdatedBy:s,lastUpdatedAt:u}=e,b=!t&&a,p=r.length>0;if(!(p||b||l))return null;if(!t)return(0,n.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[p&&(0,n.jsx)("div",{className:(0,o.A)("col",{"col--9":b}),children:(0,n.jsx)(j.A,{tags:r})}),b&&(0,n.jsx)("div",{className:(0,o.A)("col text--right",{"col--3":p}),children:(0,n.jsx)(h,{blogPostTitle:i,to:e.permalink})})]});{let e=!!(l||u||s);return(0,n.jsxs)("footer",{className:"docusaurus-mt-lg",children:[p&&(0,n.jsx)("div",{className:(0,o.A)("row","margin-top--sm",O.G.blog.blogFooterEditMetaRow),children:(0,n.jsx)("div",{className:"col",children:(0,n.jsx)(j.A,{tags:r})})}),e&&(0,n.jsx)(y.A,{className:(0,o.A)("margin-top--sm",O.G.blog.blogFooterEditMetaRow),editUrl:l,lastUpdatedAt:u,lastUpdatedBy:s})]})}}function w({children:e,className:t}){let r=function(){let{isBlogPostPage:e}=(0,c.e7)();return e?void 0:"margin-bottom--xl"}();return(0,n.jsxs)(i.A,{className:(0,o.A)(r,t),children:[(0,n.jsx)(p,{}),(0,n.jsx)(f.A,{children:e}),(0,n.jsx)(v,{})]})}},61662:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(69473),c=r(50064);function i({items:e,component:t=c.A}){return(0,n.jsx)(n.Fragment,{children:e.map(({content:e})=>(0,n.jsx)(o.in,{content:e,children:(0,n.jsx)(t,{children:(0,n.jsx)(e,{})})},e.metadata.permalink))})}},23572:(e,t,r)=>{r.d(t,{A:()=>f});var n=r(62540),o=r(63696),c=r(11750),i=r(52711),l=r(10709),a=r(27720);let s={details:"details_Nokh",isBrowser:"isBrowser_QrB5",collapsibleContent:"collapsibleContent_EoA1"};function u(e){return!!e&&("SUMMARY"===e.tagName||u(e.parentElement))}function b(e){var t,r,{summary:b,children:p}=e,f=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["summary","children"]);(0,i.A)().collectAnchor(f.id);let O=(0,l.A)(),y=(0,o.useRef)(null),{collapsed:j,setCollapsed:d}=(0,a.u)({initialState:!f.open}),[m,g]=(0,o.useState)(f.open),h=o.isValidElement(b)?b:(0,n.jsx)("summary",{children:null!=b?b:"Details"});return(0,n.jsxs)("details",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},f),r=r={ref:y,open:m,"data-collapsed":j,className:(0,c.A)(s.details,O&&s.isBrowser,f.className),onMouseDown:e=>{u(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();let t=e.target;u(t)&&function e(t,r){return!!t&&(t===r||e(t.parentElement,r))}(t,y.current)&&(e.preventDefault(),j?(d(!1),g(!0)):d(!0))},children:[h,(0,n.jsx)(a.N,{lazy:!1,collapsed:j,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{d(e),g(!e)},children:(0,n.jsx)("div",{className:s.collapsibleContent,children:p})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function f(e){var t,r,o=p({},function(e){if(null==e)throw TypeError("Cannot destructure "+e);return e}(e));return(0,n.jsx)(b,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={className:(0,c.A)("alert alert--info","details_Cn_P",o.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},2604:(e,t,r)=>{r.d(t,{A:()=>O});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(12653),l=r(36372);function a(e){var t,r,{className:c}=e,i=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["className"]);return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,o.A)("iconEdit_IMw_",c),"aria-hidden":"true"},i),r=r={children:(0,n.jsx)("g",{children:(0,n.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function s({editUrl:e}){return(0,n.jsxs)(l.A,{to:e,className:i.G.common.editThisPage,children:[(0,n.jsx)(a,{}),(0,n.jsx)(c.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=r(60908);function b({lastUpdatedAt:e}){let t=new Date(e),r=(0,u.i)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(t);return(0,n.jsx)(c.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,n.jsx)("b",{children:(0,n.jsx)("time",{dateTime:t.toISOString(),itemProp:"dateModified",children:r})})},children:" on {date}"})}function p({lastUpdatedBy:e}){return(0,n.jsx)(c.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,n.jsx)("b",{children:e})},children:" by {user}"})}function f({lastUpdatedAt:e,lastUpdatedBy:t}){return(0,n.jsxs)("span",{className:i.G.common.lastUpdated,children:[(0,n.jsx)(c.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,n.jsx)(b,{lastUpdatedAt:e}):"",byUser:t?(0,n.jsx)(p,{lastUpdatedBy:t}):""},children:"Last updated{atDate}{byUser}"}),!1]})}function O({className:e,editUrl:t,lastUpdatedAt:r,lastUpdatedBy:c}){return(0,n.jsxs)("div",{className:(0,o.A)("row",e),children:[(0,n.jsx)("div",{className:"col",children:t&&(0,n.jsx)(s,{editUrl:t})}),(0,n.jsx)("div",{className:(0,o.A)("col","lastUpdated_OHCJ"),children:(r||c)&&(0,n.jsx)(f,{lastUpdatedAt:r,lastUpdatedBy:c})})]})}},76699:(e,t,r)=>{r.d(t,{A:()=>B});var n,o,c=r(62540),i=r(63696),l=r(43023),a=r(93394),s=r(55887);function u(e){return(0,c.jsx)("code",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function p(e){return void 0!==e.children&&i.Children.toArray(e.children).every(e=>"string"==typeof e&&!e.includes("\n"))?(0,c.jsx)(u,b({},e)):(0,c.jsx)(s.A,b({},e))}var f=r(36372),O=r(23572);function y(e){var t,r;let n=i.Children.toArray(e.children),o=n.find(e=>i.isValidElement(e)&&"summary"===e.type),l=(0,c.jsx)(c.Fragment,{children:n.filter(e=>e!==o)});return(0,c.jsx)(O.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={summary:o,children:l},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var j=r(37425);function d(e){return(0,c.jsx)(j.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}var m=r(11750);let g={containsTaskList:"containsTaskList_k9gM"};var h=r(52711),v=r(55640),w=r(43758),P=r(1495),x=r(25436),S=r(66659),k=r(17367);async function A({id:e,text:t,config:r}){k.N.mermaidAPI.initialize(r);try{return await k.N.render(e,t)}catch(t){var n;throw null===(n=document.querySelector(`#d${e}`))||void 0===n||n.remove(),t}}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function N({renderResult:e}){let t=(0,i.useRef)(null);return(0,i.useEffect)(()=>{var r;let n=t.current;null===(r=e.bindFunctions)||void 0===r||r.call(e,n)},[e]),(0,c.jsx)("div",{ref:t,className:"docusaurus-mermaid-container container_RUsj",dangerouslySetInnerHTML:{__html:e.svg}})}function E({value:e}){let t=function({text:e,config:t}){let[r,n]=(0,i.useState)(null),o=(0,i.useRef)(`mermaid-svg-${Math.round(1e7*Math.random())}`).current,c=function(){let{colorMode:e}=(0,S.G)(),t=(0,x.p)().mermaid,r=t.theme[e],{options:n}=t;return(0,i.useMemo)(()=>{var e,t;return e=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({startOnLoad:!1},n),t=t={theme:r},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e},[r,n])}(),l=null!=t?t:c;return(0,i.useEffect)(()=>{A({id:o,text:e,config:l}).then(n).catch(e=>{n(()=>{throw e})})},[o,e,l]),r}({text:e});return null===t?null:(0,c.jsx)(N,{renderResult:t})}function _(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let C=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},{Head:a.A,details:y,Details:y,code:p,a:function(e){return(0,c.jsx)(f.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},pre:function(e){return(0,c.jsx)(c.Fragment,{children:e.children})},ul:function(e){var t,r;return(0,c.jsx)("ul",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={className:function(e){if(void 0!==e)return(0,m.A)(e,(null==e?void 0:e.includes("contains-task-list"))&&g.containsTaskList)}(e.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},li:function(e){return(0,h.A)().collectAnchor(e.id),(0,c.jsx)("li",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},img:function(e){var t,r,n;return(0,c.jsx)("img",(r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({decoding:"async",loading:"lazy"},e),n=n={className:(t=e.className,(0,m.A)(t,"img_vXGZ"))},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r))},h1:e=>(0,c.jsx)(d,_({as:"h1"},e)),h2:e=>(0,c.jsx)(d,_({as:"h2"},e)),h3:e=>(0,c.jsx)(d,_({as:"h3"},e)),h4:e=>(0,c.jsx)(d,_({as:"h4"},e)),h5:e=>(0,c.jsx)(d,_({as:"h5"},e)),h6:e=>(0,c.jsx)(d,_({as:"h6"},e)),admonition:v.A,mermaid:function(e){return(0,c.jsx)(w.A,{fallback:e=>(0,c.jsx)(P.MN,D({},e)),children:(0,c.jsx)(E,D({},e))})}}),o=o={Code:p,Highlight:function({children:e,color:t}){return(0,c.jsx)("span",{style:{backgroundColor:t,borderRadius:"2px",color:"#fff",padding:"0.2rem"},children:e})},TweetQuote:function({url:e,handle:t,name:r,job:n,children:o}){let i=`https://unavatar.io/x/${t}`,l=`https://x.com/${t}`;return(0,c.jsxs)("figure",{className:"tweetQuote_h8Rz",children:[(0,c.jsx)("blockquote",{children:(0,c.jsx)(f.A,{to:e,children:o})}),(0,c.jsx)("figcaption",{children:(0,c.jsx)(f.A,{to:l,rel:"nofollow",children:(0,c.jsxs)("div",{className:"avatar",children:[(0,c.jsx)("img",{alt:r,className:(0,m.A)("avatar__photo","avatarImg_b51M"),src:i}),(0,c.jsxs)("div",{className:(0,m.A)("avatar__intro"),children:[(0,c.jsx)("strong",{className:"avatar__name",children:(0,c.jsx)("cite",{children:r})}),(0,c.jsx)("small",{className:"avatar__subtitle",itemProp:"description",children:n})]})]})})})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function B({children:e}){return(0,c.jsx)(l.x,{components:C,children:e})}},88524:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(11750),c=r(36372);function i(e){let{permalink:t,title:r,subLabel:i,isNext:l}=e;return(0,n.jsxs)(c.A,{className:(0,o.A)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[i&&(0,n.jsx)("div",{className:"pagination-nav__sublabel",children:i}),(0,n.jsx)("div",{className:"pagination-nav__label",children:r})]})}},82499:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(11750),c=r(36372);let i={tag:"tag_Nd8t",tagRegular:"tagRegular_TiLs",tagWithCount:"tagWithCount_AQg7"};function l({permalink:e,label:t,count:r,description:l}){return(0,n.jsxs)(c.A,{href:e,title:l,className:(0,o.A)(i.tag,r?i.tagWithCount:i.tagRegular),children:[t,r&&(0,n.jsx)("span",{children:r})]})}},48447:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(82499);function l({tags:e}){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("b",{children:(0,n.jsx)(c.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,n.jsx)("ul",{className:(0,o.A)("tags_rTaS","padding--none","margin-left--sm"),children:e.map(e=>(0,n.jsx)("li",{className:"tag_l5va",children:(0,n.jsx)(i.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},e.permalink))})]})}},60908:(e,t,r)=>{r.d(t,{i:()=>o});var n=r(99468);function o(e={}){let{i18n:{currentLocale:t}}=(0,n.A)(),r=function(){let{i18n:{currentLocale:e,localeConfigs:t}}=(0,n.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({calendar:r},e))}},13111:(e,t,r)=>{r.d(t,{W:()=>a});var n=r(63696),o=r(99468);let c=["zero","one","two","few","many","other"];function i(e){return c.filter(t=>e.includes(t))}let l={locale:"en",pluralForms:i(["one","other"]),select:e=>1===e?"one":"other"};function a(){let e=function(){let{i18n:{currentLocale:e}}=(0,o.A)();return(0,n.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:i(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[82989],{69473:(e,t,r)=>{r.d(t,{in:()=>s,OU:()=>k,Ki:()=>S,kJ:()=>d,x:()=>l,e7:()=>u,J_:()=>m,Gx:()=>x});var n=r(62540),o=r(63696),c=r(2550),i=r(15789);function l(){var e;let t=(0,i.A)(),r=null==t?void 0:null===(e=t.data)||void 0===e?void 0:e.blogMetadata;if(!r)throw Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return r}let a=o.createContext(null);function s({children:e,content:t,isBlogPostPage:r=!1}){let c=function({content:e,isBlogPostPage:t}){return(0,o.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,toc:e.toc,isBlogPostPage:t}),[e,t])}({content:t,isBlogPostPage:r});return(0,n.jsx)(a.Provider,{value:c,children:e})}function u(){let e=(0,o.useContext)(a);if(null===e)throw new c.dV("BlogPostProvider");return e}var b=r(27167),p=r(99468);function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let O=e=>new Date(e).toISOString();function y(e){let t=e.map(g);return{author:1===t.length?t[0]:t}}function j(e,t,r){return e?{image:function({imageUrl:e,caption:t}){return{"@type":"ImageObject","@id":e,url:e,contentUrl:e,caption:t}}({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${r}`})}:{}}function d(e){let{siteConfig:t}=(0,p.A)(),{withBaseUrl:r}=(0,b.hH)(),{metadata:{blogDescription:n,blogTitle:o,permalink:c}}=e,i=`${t.url}${c}`;return{"@context":"https://schema.org","@type":"Blog","@id":i,mainEntityOfPage:i,headline:o,description:n,blogPost:e.items.map(e=>(function(e,t,r){var n,o;let{assets:c,frontMatter:i,metadata:l}=e,{date:a,title:s,description:u,lastUpdatedAt:b}=l,p=null!==(n=c.image)&&void 0!==n?n:i.image,d=null!==(o=i.keywords)&&void 0!==o?o:[],m=`${t.url}${l.permalink}`,g=b?O(b):void 0;return f({"@type":"BlogPosting","@id":m,mainEntityOfPage:m,url:m,headline:s,name:s,description:u,datePublished:a},g?{dateModified:g}:{},y(l.authors),j(p,r,s),d?{keywords:d}:{})})(e.content,t,r))}}function m(){var e,t,r,n;let o=l(),{assets:c,metadata:i}=u(),{siteConfig:a}=(0,p.A)(),{withBaseUrl:s}=(0,b.hH)(),{date:d,title:m,description:g,frontMatter:h,lastUpdatedAt:v}=i,w=null!==(e=c.image)&&void 0!==e?e:h.image,P=null!==(t=h.keywords)&&void 0!==t?t:[],x=v?O(v):void 0,S=`${a.url}${i.permalink}`;return r=f({"@context":"https://schema.org","@type":"BlogPosting","@id":S,mainEntityOfPage:S,url:S,headline:m,name:m,description:g,datePublished:d},x?{dateModified:x}:{},y(i.authors),j(w,s,m),P?{keywords:P}:{}),n=n={isPartOf:{"@type":"Blog","@id":`${a.url}${o.blogBasePath}`,name:o.blogTitle}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}function g(e){return f({"@type":"Person"},e.name?{name:e.name}:{},e.title?{description:e.title}:{},e.url?{url:e.url}:{},e.email?{email:e.email}:{},e.imageURL?{image:e.imageURL}:{})}var h=r(49519),v=r(36372),w=r(66904),P=r(3107);function x(e){let{pathname:t}=(0,h.zy)();return(0,o.useMemo)(()=>e.filter(e=>!e.unlisted||!!(0,P.ys)(e.permalink,t)),[e,t])}function S(e){let t=Object.entries((0,w.$z)(e,e=>`${new Date(e.date).getFullYear()}`));return t.reverse(),t}function k({items:e,ulClassName:t,liClassName:r,linkClassName:o,linkActiveClassName:c}){return(0,n.jsx)("ul",{className:t,children:e.map(e=>(0,n.jsx)("li",{className:r,children:(0,n.jsx)(v.A,{isNavLink:!0,to:e.permalink,className:o,activeClassName:c,children:e.title})},e.permalink))})}},65108:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,n.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}r(63696)},55640:(e,t,r)=>{r.d(t,{A:()=>E});var n,o,c=r(62540),i=r(63696),l=r(11750),a=r(81912),s=r(12653);let u={admonition:"admonition_o5H7",admonitionHeading:"admonitionHeading_FzoX",admonitionIcon:"admonitionIcon_rXq6",admonitionContent:"admonitionContent_Knsx"};function b({type:e,className:t,children:r}){return(0,c.jsx)("div",{className:(0,l.A)(s.G.common.admonition,s.G.common.admonitionType(e),u.admonition,t),children:r})}function p({icon:e,title:t}){return(0,c.jsxs)("div",{className:u.admonitionHeading,children:[(0,c.jsx)("span",{className:u.admonitionIcon,children:e}),t]})}function f({children:e}){return e?(0,c.jsx)("div",{className:u.admonitionContent,children:e}):null}function O(e){let{type:t,icon:r,title:n,children:o,className:i}=e;return(0,c.jsxs)(b,{type:t,className:i,children:[n||r?(0,c.jsx)(p,{title:n,icon:r}):null,(0,c.jsx)(f,{children:o})]})}let y={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function j(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},y,e),r=r={className:(0,l.A)("alert alert--secondary",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let d={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function m(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},d,e),r=r={className:(0,l.A)("alert alert--success",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var g=r(65108);let h={icon:(0,c.jsx)(g.A,{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function v(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},h,e),r=r={className:(0,l.A)("alert alert--info",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function w(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 16 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let P={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})},x={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})},S={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};function k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let A=k({},{note:j,tip:m,info:v,warning:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},P,e),r=r={className:(0,l.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},danger:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},x,e),r=r={className:(0,l.A)("alert alert--danger",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},{secondary:e=>(0,c.jsx)(j,k({title:"secondary"},e)),important:e=>(0,c.jsx)(v,k({title:"important"},e)),success:e=>(0,c.jsx)(m,k({title:"success"},e)),caution:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},S,e),r=r={className:(0,l.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}});var D=r(37425);let N=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},A),o=o={"my-custom-admonition":function(e){return(0,c.jsxs)("div",{style:{border:"solid red",padding:10},children:[(0,c.jsx)(D.A,{as:"h5",style:{color:"blue",fontSize:30},children:e.title}),(0,c.jsx)("div",{children:e.children})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function E(e){var t;let r=function(e){var t,r,n;let{mdxAdmonitionTitle:o,rest:l}=function(e){let t=i.Children.toArray(e),r=t.find(e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),n=t.filter(e=>e!==r);return{mdxAdmonitionTitle:null==r?void 0:r.props.children,rest:n.length>0?(0,c.jsx)(c.Fragment,{children:n}):null}}(e.children),a=null!==(t=e.title)&&void 0!==t?t:o;return r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e,a&&{title:a}),n=n={children:l},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}(e),n=N[t=r.type]||(console.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),N.info);return(0,c.jsx)(n,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r))}},6205:(e,t,r)=>{r.d(t,{A:()=>d});var n=r(62540);r(63696);var o=r(11750),c=r(36372);let i=function(e){var t,r;return(0,n.jsxs)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},e),r=r={children:[(0,n.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,n.jsx)("path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"}),(0,n.jsx)("path",{d:"M3.6 9h16.8"}),(0,n.jsx)("path",{d:"M3.6 15h16.8"}),(0,n.jsx)("path",{d:"M11.5 3a17 17 0 0 0 0 18"}),(0,n.jsx)("path",{d:"M12.5 3a17 17 0 0 1 0 18"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},l="authorSocialLink_hEWM",a={twitter:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 256 209",width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid"},e),r=r={children:(0,n.jsx)("path",{d:"M256 25.45c-9.42 4.177-19.542 7-30.166 8.27 10.845-6.5 19.172-16.793 23.093-29.057a105.183 105.183 0 0 1-33.351 12.745C205.995 7.201 192.346.822 177.239.822c-29.006 0-52.523 23.516-52.523 52.52 0 4.117.465 8.125 1.36 11.97-43.65-2.191-82.35-23.1-108.255-54.876-4.52 7.757-7.11 16.78-7.11 26.404 0 18.222 9.273 34.297 23.365 43.716a52.312 52.312 0 0 1-23.79-6.57c-.003.22-.003.44-.003.661 0 25.447 18.104 46.675 42.13 51.5a52.592 52.592 0 0 1-23.718.9c6.683 20.866 26.08 36.05 49.062 36.475-17.975 14.086-40.622 22.483-65.228 22.483-4.24 0-8.42-.249-12.529-.734 23.243 14.902 50.85 23.597 80.51 23.597 96.607 0 149.434-80.031 149.434-149.435 0-2.278-.05-4.543-.152-6.795A106.748 106.748 0 0 0 256 25.45",fill:"#55acee"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"Twitter"},github:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 256 250",width:"1em",height:"1em"},e),r=r={className:(0,o.A)(e.className,"githubSvg_jqE4"),xmlns:"http://www.w3.org/2000/svg",style:{"--dark":"#000","--light":"#fff"},preserveAspectRatio:"xMidYMid",children:(0,n.jsx)("path",{d:"M128.001 0C57.317 0 0 57.307 0 128.001c0 56.554 36.676 104.535 87.535 121.46 6.397 1.185 8.746-2.777 8.746-6.158 0-3.052-.12-13.135-.174-23.83-35.61 7.742-43.124-15.103-43.124-15.103-5.823-14.795-14.213-18.73-14.213-18.73-11.613-7.944.876-7.78.876-7.78 12.853.902 19.621 13.19 19.621 13.19 11.417 19.568 29.945 13.911 37.249 10.64 1.149-8.272 4.466-13.92 8.127-17.116-28.431-3.236-58.318-14.212-58.318-63.258 0-13.975 5-25.394 13.188-34.358-1.329-3.224-5.71-16.242 1.24-33.874 0 0 10.749-3.44 35.21 13.121 10.21-2.836 21.16-4.258 32.038-4.307 10.878.049 21.837 1.47 32.066 4.307 24.431-16.56 35.165-13.12 35.165-13.12 6.967 17.63 2.584 30.65 1.255 33.873 8.207 8.964 13.173 20.383 13.173 34.358 0 49.163-29.944 59.988-58.447 63.157 4.591 3.972 8.682 11.762 8.682 23.704 0 17.126-.148 30.91-.148 35.126 0 3.407 2.304 7.398 8.792 6.14C219.37 232.5 256 184.537 256 128.002 256 57.307 198.691 0 128.001 0Zm-80.06 182.34c-.282.636-1.283.827-2.194.39-.929-.417-1.45-1.284-1.15-1.922.276-.655 1.279-.838 2.205-.399.93.418 1.46 1.293 1.139 1.931Zm6.296 5.618c-.61.566-1.804.303-2.614-.591-.837-.892-.994-2.086-.375-2.66.63-.566 1.787-.301 2.626.591.838.903 1 2.088.363 2.66Zm4.32 7.188c-.785.545-2.067.034-2.86-1.104-.784-1.138-.784-2.503.017-3.05.795-.547 2.058-.055 2.861 1.075.782 1.157.782 2.522-.019 3.08Zm7.304 8.325c-.701.774-2.196.566-3.29-.49-1.119-1.032-1.43-2.496-.726-3.27.71-.776 2.213-.558 3.315.49 1.11 1.03 1.45 2.505.701 3.27Zm9.442 2.81c-.31 1.003-1.75 1.459-3.199 1.033-1.448-.439-2.395-1.613-2.103-2.626.301-1.01 1.747-1.484 3.207-1.028 1.446.436 2.396 1.602 2.095 2.622Zm10.744 1.193c.036 1.055-1.193 1.93-2.715 1.95-1.53.034-2.769-.82-2.786-1.86 0-1.065 1.202-1.932 2.733-1.958 1.522-.03 2.768.818 2.768 1.868Zm10.555-.405c.182 1.03-.875 2.088-2.387 2.37-1.485.271-2.861-.365-3.05-1.386-.184-1.056.893-2.114 2.376-2.387 1.514-.263 2.868.356 3.061 1.403Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"GitHub"},stackoverflow:{Icon:function(e){var t,r;return(0,n.jsxs)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 169.61 200",width:"1em",height:"1em"},e),r=r={children:[(0,n.jsx)("path",{d:"M140.44 178.38v-48.65h21.61V200H0v-70.27h21.61v48.65z",fill:"#bcbbbb"}),(0,n.jsx)("path",{d:"M124.24 140.54l4.32-16.22-86.97-17.83-3.78 17.83zM49.7 82.16L130.72 120l7.56-16.22-81.02-37.83zm22.68-40l68.06 57.3 11.35-13.51-68.6-57.3-11.35 13.51zM116.14 0l-14.59 10.81 53.48 71.89 14.58-10.81zM37.81 162.16h86.43v-16.21H37.81z",fill:"#f48024"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"Stack Overflow"},linkedin:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 256"},e),r=r={children:(0,n.jsx)("path",{d:"M218.123 218.127h-37.931v-59.403c0-14.165-.253-32.4-19.728-32.4-19.756 0-22.779 15.434-22.779 31.369v60.43h-37.93V95.967h36.413v16.694h.51a39.907 39.907 0 0 1 35.928-19.733c38.445 0 45.533 25.288 45.533 58.186l-.016 67.013ZM56.955 79.27c-12.157.002-22.014-9.852-22.016-22.009-.002-12.157 9.851-22.014 22.008-22.016 12.157-.003 22.014 9.851 22.016 22.008A22.013 22.013 0 0 1 56.955 79.27m18.966 138.858H37.95V95.967h37.97v122.16ZM237.033.018H18.89C8.58-.098.125 8.161-.001 18.471v219.053c.122 10.315 8.576 18.582 18.89 18.474h218.144c10.336.128 18.823-8.139 18.966-18.474V18.454c-.147-10.33-8.635-18.588-18.966-18.453",fill:"#0A66C2"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"LinkedIn"},x:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"none",viewBox:"0 0 1200 1227"},e),r=r={className:(0,o.A)(e.className,"xSvg_Q0g7"),style:{"--dark":"#000","--light":"#fff"},children:(0,n.jsx)("path",{d:"M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"X"}};function s({platform:e,link:t}){var r;let{Icon:s,label:u}=null!==(r=a[e])&&void 0!==r?r:{Icon:i,label:e};return(0,n.jsx)(c.A,{className:l,href:t,title:u,children:(0,n.jsx)(s,{className:(0,o.A)(l)})})}function u({author:e}){var t;let r=Object.entries(null!==(t=e.socials)&&void 0!==t?t:{});return(0,n.jsx)("div",{className:"authorSocials_tPnL",children:r.map(([e,t])=>(0,n.jsx)(s,{platform:e,link:t},e))})}var b=r(37425);let p={authorImage:"authorImage_p8ow","author-as-h1":"author-as-h1_Pd3R","author-as-h2":"author-as-h2_UaZL",authorDetails:"authorDetails_dWdF",authorName:"authorName_Y8Hr",authorTitle:"authorTitle_Slpj",authorBlogPostCount:"authorBlogPostCount_FxU_"};function f(e){return e.href?(0,n.jsx)(c.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e)):(0,n.jsx)(n.Fragment,{children:e.children})}function O({title:e}){return(0,n.jsx)("small",{className:p.authorTitle,title:e,children:e})}function y({name:e,as:t}){return t?(0,n.jsx)(b.A,{as:t,className:p.authorName,children:e}):(0,n.jsx)("span",{className:p.authorName,children:e})}function j({count:e}){return(0,n.jsx)("span",{className:(0,o.A)(p.authorBlogPostCount),children:e})}function d({as:e,author:t,className:r,count:c}){let{name:i,title:l,url:a,imageURL:s,email:b,page:d}=t,m=(null==d?void 0:d.permalink)||a||b&&`mailto:${b}`||void 0;return(0,n.jsxs)("div",{className:(0,o.A)("avatar margin-bottom--sm",r,p[`author-as-${e}`]),children:[s&&(0,n.jsx)(f,{href:m,className:"avatar__photo-link",children:(0,n.jsx)("img",{className:(0,o.A)("avatar__photo",p.authorImage),src:s,alt:i})}),(i||l)&&(0,n.jsxs)("div",{className:(0,o.A)("avatar__intro",p.authorDetails),children:[(0,n.jsxs)("div",{className:"avatar__name",children:[i&&(0,n.jsx)(f,{href:m,children:(0,n.jsx)(y,{name:i,as:e})}),void 0!==c&&(0,n.jsx)(j,{count:c})]}),!!l&&(0,n.jsx)(O,{title:l}),(0,n.jsx)(u,{author:t})]})]})}},94389:(e,t,r)=>{r.d(t,{A:()=>v});var n=r(62540),o=r(63696),c=r(11750),i=r(99849),l=r(85975),a=r(81912),s=r(69473),u=r(25436),b=r(37425);function p({year:e,yearGroupHeadingClassName:t,children:r}){return(0,n.jsxs)("div",{role:"group",children:[(0,n.jsx)(b.A,{as:"h3",className:t,children:e}),r]})}let f=(0,o.memo)(function({items:e,yearGroupHeadingClassName:t,ListComponent:r}){if(!(0,u.p)().blog.sidebar.groupByYear)return(0,n.jsx)(r,{items:e});{let o=(0,s.Ki)(e);return(0,n.jsx)(n.Fragment,{children:o.map(([e,o])=>(0,n.jsx)(p,{year:e,yearGroupHeadingClassName:t,children:(0,n.jsx)(r,{items:o})},e))})}}),O=({items:e})=>(0,n.jsx)(s.OU,{items:e,ulClassName:(0,c.A)("sidebarItemList_OSkG","clean-list"),liClassName:"sidebarItem_WJ0y",linkClassName:"sidebarItemLink_Qrfg",linkActiveClassName:"sidebarItemLinkActive_nUeK"}),y=(0,o.memo)(function({sidebar:e}){let t=(0,s.Gx)(e.items);return(0,n.jsx)("aside",{className:"col col--3",children:(0,n.jsxs)("nav",{className:(0,c.A)("sidebar_P3nc","thin-scrollbar"),"aria-label":(0,a.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,n.jsx)("div",{className:(0,c.A)("sidebarItemTitle_VrjY","margin-bottom--md"),children:e.title}),(0,n.jsx)(f,{items:t,ListComponent:O,yearGroupHeadingClassName:"yearGroupHeading_lECJ"})]})})});var j=r(2454);let d=({items:e})=>(0,n.jsx)(s.OU,{items:e,ulClassName:"menu__list",liClassName:"menu__list-item",linkClassName:"menu__link",linkActiveClassName:"menu__link--active"});function m({sidebar:e}){let t=(0,s.Gx)(e.items);return(0,n.jsx)(f,{items:t,ListComponent:d,yearGroupHeadingClassName:"yearGroupHeading_Ruz9"})}let g=(0,o.memo)(function(e){return(0,n.jsx)(j.GX,{component:m,props:e})});function h({sidebar:e}){let t=(0,l.l)();return(null==e?void 0:e.items.length)?"mobile"===t?(0,n.jsx)(g,{sidebar:e}):(0,n.jsx)(y,{sidebar:e}):null}function v(e){var t,r;let{sidebar:o,toc:l,children:a}=e,s=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["sidebar","toc","children"]),u=o&&o.items.length>0;return(0,n.jsx)(i.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},s),r=r={children:(0,n.jsx)("div",{className:"container margin-vert--lg",children:(0,n.jsxs)("div",{className:"row",children:[(0,n.jsx)(h,{sidebar:o}),(0,n.jsx)("main",{className:(0,c.A)("col",{"col--7":u,"col--9 col--offset-1":!u}),children:a}),l&&(0,n.jsx)("div",{className:"col col--2",children:l})]})})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},467:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(81912),c=r(88524);function i(e){let{metadata:t}=e,{previousPage:r,nextPage:i}=t;return(0,n.jsxs)("nav",{className:"pagination-nav","aria-label":(0,o.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[r&&(0,n.jsx)(c.A,{permalink:r,title:(0,n.jsx)(o.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer entries"})}),i&&(0,n.jsx)(c.A,{permalink:i,title:(0,n.jsx)(o.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older entries"}),isNext:!0})]})}},57813:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o({children:e,className:t}){return(0,n.jsx)("article",{className:t,children:e})}r(63696)},5939:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750),c=r(71106),i=r(69473),l=r(76699);function a({children:e,className:t}){let{isBlogPostPage:r}=(0,i.e7)();return(0,n.jsx)("div",{id:r?c.LU:void 0,className:(0,o.A)("markdown",t),children:(0,n.jsx)(l.A,{children:e})})}},21500:(e,t,r)=>{r.d(t,{A:()=>p});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(13111),l=r(60908),a=r(69473);function s({readingTime:e}){let t=function(){let{selectMessage:e}=(0,i.W)();return t=>{let r=Math.ceil(t);return e(r,(0,c.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:r}))}}();return(0,n.jsx)(n.Fragment,{children:t(e)})}function u({date:e,formattedDate:t}){return(0,n.jsx)("time",{dateTime:e,children:t})}function b(){return(0,n.jsx)(n.Fragment,{children:" \xb7 "})}function p({className:e}){let{metadata:t}=(0,a.e7)(),{date:r,readingTime:c}=t,i=(0,l.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,n.jsxs)("div",{className:(0,o.A)("container_x5Un","margin-vert--md",e),children:[(0,n.jsx)(u,{date:r,formattedDate:i.format(new Date(r))}),void 0!==c&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(b,{}),(0,n.jsx)(s,{readingTime:c})]})]})}},32886:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(11750),c=r(36372),i=r(69473);function l({className:e}){let{metadata:t,isBlogPostPage:r}=(0,i.e7)(),{permalink:l,title:a}=t;return(0,n.jsx)(r?"h1":"h2",{className:(0,o.A)("title_UBNu",e),children:r?a:(0,n.jsx)(c.A,{to:l,children:a})})}},50064:(e,t,r)=>{r.d(t,{A:()=>w});var n=r(62540);r(63696);var o=r(11750),c=r(69473),i=r(57813),l=r(32886),a=r(21500),s=r(6205);let u={authorCol:"authorCol_bvyx",imageOnlyAuthorRow:"imageOnlyAuthorRow_L2DM",imageOnlyAuthorCol:"imageOnlyAuthorCol_oyze"};function b({className:e}){let{metadata:{authors:t},assets:r}=(0,c.e7)();if(0===t.length)return null;let i=t.every(({name:e})=>!e),l=1===t.length;return(0,n.jsx)("div",{className:(0,o.A)("margin-top--md margin-bottom--sm",i?u.imageOnlyAuthorRow:"row",e),children:t.map((e,t)=>{var c,a,b;return(0,n.jsx)("div",{className:(0,o.A)(!i&&(l?"col col--12":"col col--6"),i?u.imageOnlyAuthorCol:u.authorCol),children:(0,n.jsx)(s.A,{author:(a=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),b=b={imageURL:null!==(c=r.authorsImageUrls[t])&&void 0!==c?c:e.imageURL},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(b)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(b,e))}),a)})},t)})})}function p(){return(0,n.jsxs)("header",{children:[(0,n.jsx)(l.A,{}),(0,n.jsx)(a.A,{}),(0,n.jsx)(b,{})]})}var f=r(5939),O=r(12653),y=r(2604),j=r(48447),d=r(81912),m=r(36372);function g(){return(0,n.jsx)("b",{children:(0,n.jsx)(d.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read more"})})}function h(e){var t,r;let{blogPostTitle:o}=e,c=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["blogPostTitle"]);return(0,n.jsx)(m.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({"aria-label":(0,d.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:o})},c),r=r={children:(0,n.jsx)(g,{})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function v(){let{metadata:e,isBlogPostPage:t}=(0,c.e7)(),{tags:r,title:i,editUrl:l,hasTruncateMarker:a,lastUpdatedBy:s,lastUpdatedAt:u}=e,b=!t&&a,p=r.length>0;if(!(p||b||l))return null;if(!t)return(0,n.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[p&&(0,n.jsx)("div",{className:(0,o.A)("col",{"col--9":b}),children:(0,n.jsx)(j.A,{tags:r})}),b&&(0,n.jsx)("div",{className:(0,o.A)("col text--right",{"col--3":p}),children:(0,n.jsx)(h,{blogPostTitle:i,to:e.permalink})})]});{let e=!!(l||u||s);return(0,n.jsxs)("footer",{className:"docusaurus-mt-lg",children:[p&&(0,n.jsx)("div",{className:(0,o.A)("row","margin-top--sm",O.G.blog.blogFooterEditMetaRow),children:(0,n.jsx)("div",{className:"col",children:(0,n.jsx)(j.A,{tags:r})})}),e&&(0,n.jsx)(y.A,{className:(0,o.A)("margin-top--sm",O.G.blog.blogFooterEditMetaRow),editUrl:l,lastUpdatedAt:u,lastUpdatedBy:s})]})}}function w({children:e,className:t}){let r=function(){let{isBlogPostPage:e}=(0,c.e7)();return e?void 0:"margin-bottom--xl"}();return(0,n.jsxs)(i.A,{className:(0,o.A)(r,t),children:[(0,n.jsx)(p,{}),(0,n.jsx)(f.A,{children:e}),(0,n.jsx)(v,{})]})}},61662:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(69473),c=r(50064);function i({items:e,component:t=c.A}){return(0,n.jsx)(n.Fragment,{children:e.map(({content:e})=>(0,n.jsx)(o.in,{content:e,children:(0,n.jsx)(t,{children:(0,n.jsx)(e,{})})},e.metadata.permalink))})}},23572:(e,t,r)=>{r.d(t,{A:()=>f});var n=r(62540),o=r(63696),c=r(11750),i=r(52711),l=r(10709),a=r(27720);let s={details:"details_Nokh",isBrowser:"isBrowser_QrB5",collapsibleContent:"collapsibleContent_EoA1"};function u(e){return!!e&&("SUMMARY"===e.tagName||u(e.parentElement))}function b(e){var t,r,{summary:b,children:p}=e,f=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["summary","children"]);(0,i.A)().collectAnchor(f.id);let O=(0,l.A)(),y=(0,o.useRef)(null),{collapsed:j,setCollapsed:d}=(0,a.u)({initialState:!f.open}),[m,g]=(0,o.useState)(f.open),h=o.isValidElement(b)?b:(0,n.jsx)("summary",{children:null!=b?b:"Details"});return(0,n.jsxs)("details",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},f),r=r={ref:y,open:m,"data-collapsed":j,className:(0,c.A)(s.details,O&&s.isBrowser,f.className),onMouseDown:e=>{u(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();let t=e.target;u(t)&&function e(t,r){return!!t&&(t===r||e(t.parentElement,r))}(t,y.current)&&(e.preventDefault(),j?(d(!1),g(!0)):d(!0))},children:[h,(0,n.jsx)(a.N,{lazy:!1,collapsed:j,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{d(e),g(!e)},children:(0,n.jsx)("div",{className:s.collapsibleContent,children:p})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function f(e){var t,r,o=p({},function(e){if(null==e)throw TypeError("Cannot destructure "+e);return e}(e));return(0,n.jsx)(b,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={className:(0,c.A)("alert alert--info","details_Cn_P",o.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},2604:(e,t,r)=>{r.d(t,{A:()=>O});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(12653),l=r(36372);function a(e){var t,r,{className:c}=e,i=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["className"]);return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,o.A)("iconEdit_IMw_",c),"aria-hidden":"true"},i),r=r={children:(0,n.jsx)("g",{children:(0,n.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function s({editUrl:e}){return(0,n.jsxs)(l.A,{to:e,className:i.G.common.editThisPage,children:[(0,n.jsx)(a,{}),(0,n.jsx)(c.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=r(60908);function b({lastUpdatedAt:e}){let t=new Date(e),r=(0,u.i)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(t);return(0,n.jsx)(c.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,n.jsx)("b",{children:(0,n.jsx)("time",{dateTime:t.toISOString(),itemProp:"dateModified",children:r})})},children:" on {date}"})}function p({lastUpdatedBy:e}){return(0,n.jsx)(c.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,n.jsx)("b",{children:e})},children:" by {user}"})}function f({lastUpdatedAt:e,lastUpdatedBy:t}){return(0,n.jsxs)("span",{className:i.G.common.lastUpdated,children:[(0,n.jsx)(c.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,n.jsx)(b,{lastUpdatedAt:e}):"",byUser:t?(0,n.jsx)(p,{lastUpdatedBy:t}):""},children:"Last updated{atDate}{byUser}"}),!1]})}function O({className:e,editUrl:t,lastUpdatedAt:r,lastUpdatedBy:c}){return(0,n.jsxs)("div",{className:(0,o.A)("row",e),children:[(0,n.jsx)("div",{className:"col",children:t&&(0,n.jsx)(s,{editUrl:t})}),(0,n.jsx)("div",{className:(0,o.A)("col","lastUpdated_OHCJ"),children:(r||c)&&(0,n.jsx)(f,{lastUpdatedAt:r,lastUpdatedBy:c})})]})}},76699:(e,t,r)=>{r.d(t,{A:()=>B});var n,o,c=r(62540),i=r(63696),l=r(43023),a=r(93394),s=r(55887);function u(e){return(0,c.jsx)("code",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function p(e){return void 0!==e.children&&i.Children.toArray(e.children).every(e=>"string"==typeof e&&!e.includes("\n"))?(0,c.jsx)(u,b({},e)):(0,c.jsx)(s.A,b({},e))}var f=r(36372),O=r(23572);function y(e){var t,r;let n=i.Children.toArray(e.children),o=n.find(e=>i.isValidElement(e)&&"summary"===e.type),l=(0,c.jsx)(c.Fragment,{children:n.filter(e=>e!==o)});return(0,c.jsx)(O.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={summary:o,children:l},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var j=r(37425);function d(e){return(0,c.jsx)(j.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}var m=r(11750);let g={containsTaskList:"containsTaskList_k9gM"};var h=r(52711),v=r(55640),w=r(43758),P=r(1495),x=r(25436),S=r(66659),k=r(7293);async function A({id:e,text:t,config:r}){k.A.mermaidAPI.initialize(r);try{return await k.A.render(e,t)}catch(t){var n;throw null===(n=document.querySelector(`#d${e}`))||void 0===n||n.remove(),t}}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function N({renderResult:e}){let t=(0,i.useRef)(null);return(0,i.useEffect)(()=>{var r;let n=t.current;null===(r=e.bindFunctions)||void 0===r||r.call(e,n)},[e]),(0,c.jsx)("div",{ref:t,className:"docusaurus-mermaid-container container_RUsj",dangerouslySetInnerHTML:{__html:e.svg}})}function E({value:e}){let t=function({text:e,config:t}){let[r,n]=(0,i.useState)(null),o=(0,i.useRef)(`mermaid-svg-${Math.round(1e7*Math.random())}`).current,c=function(){let{colorMode:e}=(0,S.G)(),t=(0,x.p)().mermaid,r=t.theme[e],{options:n}=t;return(0,i.useMemo)(()=>{var e,t;return e=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({startOnLoad:!1},n),t=t={theme:r},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e},[r,n])}(),l=null!=t?t:c;return(0,i.useEffect)(()=>{A({id:o,text:e,config:l}).then(n).catch(e=>{n(()=>{throw e})})},[o,e,l]),r}({text:e});return null===t?null:(0,c.jsx)(N,{renderResult:t})}function _(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let C=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},{Head:a.A,details:y,Details:y,code:p,a:function(e){return(0,c.jsx)(f.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},pre:function(e){return(0,c.jsx)(c.Fragment,{children:e.children})},ul:function(e){var t,r;return(0,c.jsx)("ul",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={className:function(e){if(void 0!==e)return(0,m.A)(e,(null==e?void 0:e.includes("contains-task-list"))&&g.containsTaskList)}(e.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},li:function(e){return(0,h.A)().collectAnchor(e.id),(0,c.jsx)("li",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},img:function(e){var t,r,n;return(0,c.jsx)("img",(r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({decoding:"async",loading:"lazy"},e),n=n={className:(t=e.className,(0,m.A)(t,"img_vXGZ"))},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r))},h1:e=>(0,c.jsx)(d,_({as:"h1"},e)),h2:e=>(0,c.jsx)(d,_({as:"h2"},e)),h3:e=>(0,c.jsx)(d,_({as:"h3"},e)),h4:e=>(0,c.jsx)(d,_({as:"h4"},e)),h5:e=>(0,c.jsx)(d,_({as:"h5"},e)),h6:e=>(0,c.jsx)(d,_({as:"h6"},e)),admonition:v.A,mermaid:function(e){return(0,c.jsx)(w.A,{fallback:e=>(0,c.jsx)(P.MN,D({},e)),children:(0,c.jsx)(E,D({},e))})}}),o=o={Code:p,Highlight:function({children:e,color:t}){return(0,c.jsx)("span",{style:{backgroundColor:t,borderRadius:"2px",color:"#fff",padding:"0.2rem"},children:e})},TweetQuote:function({url:e,handle:t,name:r,job:n,children:o}){let i=`https://unavatar.io/x/${t}`,l=`https://x.com/${t}`;return(0,c.jsxs)("figure",{className:"tweetQuote_h8Rz",children:[(0,c.jsx)("blockquote",{children:(0,c.jsx)(f.A,{to:e,children:o})}),(0,c.jsx)("figcaption",{children:(0,c.jsx)(f.A,{to:l,rel:"nofollow",children:(0,c.jsxs)("div",{className:"avatar",children:[(0,c.jsx)("img",{alt:r,className:(0,m.A)("avatar__photo","avatarImg_b51M"),src:i}),(0,c.jsxs)("div",{className:(0,m.A)("avatar__intro"),children:[(0,c.jsx)("strong",{className:"avatar__name",children:(0,c.jsx)("cite",{children:r})}),(0,c.jsx)("small",{className:"avatar__subtitle",itemProp:"description",children:n})]})]})})})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function B({children:e}){return(0,c.jsx)(l.x,{components:C,children:e})}},88524:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(11750),c=r(36372);function i(e){let{permalink:t,title:r,subLabel:i,isNext:l}=e;return(0,n.jsxs)(c.A,{className:(0,o.A)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[i&&(0,n.jsx)("div",{className:"pagination-nav__sublabel",children:i}),(0,n.jsx)("div",{className:"pagination-nav__label",children:r})]})}},82499:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(11750),c=r(36372);let i={tag:"tag_Nd8t",tagRegular:"tagRegular_TiLs",tagWithCount:"tagWithCount_AQg7"};function l({permalink:e,label:t,count:r,description:l}){return(0,n.jsxs)(c.A,{href:e,title:l,className:(0,o.A)(i.tag,r?i.tagWithCount:i.tagRegular),children:[t,r&&(0,n.jsx)("span",{children:r})]})}},48447:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(82499);function l({tags:e}){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("b",{children:(0,n.jsx)(c.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,n.jsx)("ul",{className:(0,o.A)("tags_rTaS","padding--none","margin-left--sm"),children:e.map(e=>(0,n.jsx)("li",{className:"tag_l5va",children:(0,n.jsx)(i.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},e.permalink))})]})}},60908:(e,t,r)=>{r.d(t,{i:()=>o});var n=r(99468);function o(e={}){let{i18n:{currentLocale:t}}=(0,n.A)(),r=function(){let{i18n:{currentLocale:e,localeConfigs:t}}=(0,n.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({calendar:r},e))}},13111:(e,t,r)=>{r.d(t,{W:()=>a});var n=r(63696),o=r(99468);let c=["zero","one","two","few","many","other"];function i(e){return c.filter(t=>e.includes(t))}let l={locale:"en",pluralForms:i(["one","other"]),select:e=>1===e?"one":"other"};function a(){let e=function(){let{i18n:{currentLocale:e}}=(0,o.A)();return(0,n.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:i(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". Docusaurus will fallback to the default (English) implementation. Error: ${t.message} `),l}},[e])}();return{selectMessage:(t,r)=>(function(e,t,r){let n=e.split("|");if(1===n.length)return n[0];n.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${n.length}: ${e}`);let o=r.select(t);return n[Math.min(r.pluralForms.indexOf(o),n.length-1)]})(r,t,e)}}},40576:(e,t,r)=>{r.d(t,{A:()=>c});var n=r(62540);r(63696);var o=r(10709);function c({children:e,fallback:t}){return(0,o.A)()?(0,n.jsx)(n.Fragment,{children:null==e?void 0:e()}):null!=t?t:null}},15558:(e,t,r)=>{r.d(t,{A:()=>w});var n=r(62540),o=r(63696),c=r(69473),i=r(32886),l=r(21500),a=r(11750),s=r(36372);let u={image:"image_oRbT"};function b({author:e,className:t}){let{name:r,url:o,imageURL:c}=e;return(0,n.jsx)("div",{className:(0,a.A)("avatar margin-bottom--sm",t),children:c&&(0,n.jsx)(s.A,{className:"avatar__photo-link avatar__photo",href:o,children:(0,n.jsx)("img",{className:u.image,src:c,alt:r,onError:e=>{e.currentTarget.src='data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="600" height="600" fill="none" stroke="%2325c2a0" stroke-width="30" version="1.1"><circle cx="300" cy="230" r="115"/><path stroke-linecap="butt" d="M106.81863443903,481.4 a205,205 1 0,1 386.36273112194,0"/></svg>'}})})})}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function f(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function O(e){var{expanded:t}=e,r=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["expanded"]);return t?(0,n.jsx)("svg",f(p({viewBox:"0 0 1024 1024",width:"20",height:"20",fill:"currentColor"},r),{children:(0,n.jsx)("path",{d:"M783.915092 1009.031953l-271.898251-277.615587-271.930737 277.550617a49.214558 49.214558 0 0 1-70.752018 0 51.780862 51.780862 0 0 1 0-72.246322l307.274261-313.706262a49.279528 49.279528 0 0 1 70.784503 0l307.33923 313.706262a51.975771 51.975771 0 0 1 0 72.311292 49.409467 49.409467 0 0 1-70.816988 0z m-307.306745-608.05155L169.269117 87.274141A51.975771 51.975771 0 0 1 169.269117 14.96285a49.409467 49.409467 0 0 1 70.816987 0l271.930737 277.615586L783.850122 14.96285a49.409467 49.409467 0 0 1 70.816988 0 51.975771 51.975771 0 0 1 0 72.311291l-307.33923 313.706262a49.376982 49.376982 0 0 1-70.719533 0z"})})):(0,n.jsx)("svg",f(p({viewBox:"0 0 1024 1024",width:"20",height:"20",fill:"currentColor"},r),{children:(0,n.jsx)("path",{d:"M476.612887 1009.12034L169.240699 695.380437a51.981345 51.981345 0 0 1 0-72.319045 49.382277 49.382277 0 0 1 70.824582 0l271.959897 277.645356 271.862433-277.645356a49.382277 49.382277 0 0 1 70.824582 0 51.981345 51.981345 0 0 1 0 72.319045l-307.307212 313.739903a49.447254 49.447254 0 0 1-70.792094 0z m307.274724-608.116755L511.99269 123.455693l-271.959897 277.645357a49.382277 49.382277 0 0 1-70.824582 0 51.981345 51.981345 0 0 1 0-72.319045L476.580399 15.042102a49.382277 49.382277 0 0 1 70.727117 0l307.372188 313.739903a51.981345 51.981345 0 0 1 0 72.319045 49.414766 49.414766 0 0 1-70.824582 0z"})}))}let y={imageOnlyAuthorRow:"imageOnlyAuthorRow_WiD6",imageOnlyAuthorCol:"imageOnlyAuthorCol_uiac",toggleButton:"toggleButton_WvRg"};function j({className:e}){let{metadata:{authors:t},assets:r}=(0,c.e7)(),[i,l]=(0,o.useState)(!1);if(0===t.length)return null;let s=t.slice(0,i?t.length:10);return(0,n.jsxs)("div",{className:(0,a.A)("margin-top--md margin-bottom--sm",y.imageOnlyAuthorRow,e),children:[s.map((e,t)=>{var o,c,i;return(0,n.jsx)("div",{className:y.imageOnlyAuthorCol,children:(0,n.jsx)(b,{author:(c=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),i=i={imageURL:null!==(o=r.authorsImageUrls[t])&&void 0!==o?o:e.imageURL},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(i)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(i)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(i,e))}),c)})},t)}),t.length>10&&(0,n.jsx)("button",{className:(0,a.A)("clean-btn",y.toggleButton),type:"button",onClick:()=>l(e=>!e),"aria-label":"expand",children:(0,n.jsx)(O,{expanded:i})})]})}let d={changelogItemTitleList:"changelogItemTitleList_sueG"};function m(){let{isBlogPostPage:e}=(0,c.e7)();return(0,n.jsx)(i.A,{className:e?void 0:d.changelogItemTitleList})}function g(){return(0,n.jsxs)("header",{children:[(0,n.jsx)(m,{}),(0,n.jsx)(l.A,{}),(0,n.jsx)(j,{})]})}var h=r(57813),v=r(5939);function w({children:e}){return(0,n.jsxs)(h.A,{className:"changelogItemContainer_jeDt",children:[(0,n.jsx)(g,{}),(0,n.jsx)(v.A,{children:e})]})}},16263:(e,t,r)=>{r.r(t),r.d(t,{default:()=>v});var n=r(62540);r(63696);var o=r(11750),c=r(37554),i=r(12653),l=r(94389),a=r(467),s=r(61662),u=r(3113),b=r(15558),p=r(81912),f=r(36372),O=r(37425);function y(){return(0,n.jsxs)(f.A,{href:"https://x.com/docusaurus",className:"x_RTSd",children:[(0,n.jsx)("b",{children:"X"}),(0,n.jsx)("svg",{style:{fill:"#1da1f2",position:"relative",left:4,top:1,marginRight:8},width:"16",height:"16",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",children:(0,n.jsx)("path",{d:"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"})})]})}function j(){return(0,n.jsxs)(f.A,{href:"pathname:///changelog/rss.xml",className:"rss_fOa_",children:[(0,n.jsx)("b",{children:(0,n.jsx)(p.A,{id:"changelog.description.rssLink",children:"RSS feeds"})}),(0,n.jsx)("svg",{style:{fill:"#f26522",position:"relative",left:4,top:1,marginRight:8},xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M6.503 20.752c0 1.794-1.456 3.248-3.251 3.248-1.796 0-3.252-1.454-3.252-3.248 0-1.794 1.456-3.248 3.252-3.248 1.795.001 3.251 1.454 3.251 3.248zm-6.503-12.572v4.811c6.05.062 10.96 4.966 11.022 11.009h4.817c-.062-8.71-7.118-15.758-15.839-15.82zm0-3.368c10.58.046 19.152 8.594 19.183 19.188h4.817c-.03-13.231-10.755-23.954-24-24v4.812z"})})]})}function d({blogTitle:e}){return(0,n.jsxs)("header",{className:"margin-bottom--lg",children:[(0,n.jsx)(O.A,{as:"h1",style:{fontSize:"3rem"},children:e}),(0,n.jsx)("p",{children:(0,n.jsx)(p.A,{id:"changelog.description",values:{xLink:(0,n.jsx)(y,{}),rssLink:(0,n.jsx)(j,{})},children:"Subscribe through {rssLink} or follow us on {xLink} to stay up-to-date with new releases!"})})]})}function m(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function g(e){let{metadata:t}=e,{blogTitle:r,blogDescription:o}=t;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.be,{title:r,description:o}),(0,n.jsx)(u.A,{tag:"blog_posts_list"})]})}function h(e){let{metadata:t,items:r,sidebar:o}=e,{blogTitle:c}=t;return(0,n.jsxs)(l.A,{sidebar:o,children:[(0,n.jsx)(d,{blogTitle:c}),(0,n.jsx)(s.A,{items:r,component:b.A}),(0,n.jsx)(a.A,{metadata:t})]})}function v(e){return(0,n.jsxs)(c.e3,{className:(0,o.A)(i.G.wrapper.blogPages,i.G.page.blogListPage),children:[(0,n.jsx)(g,m({},e)),(0,n.jsx)(h,m({},e))]})}},55887:(e,t,r)=>{r.d(t,{A:()=>el});var n,o,c,i={};r.r(i),r.d(i,{ButtonExample:()=>E});var l=r(62540),a=r(63696),s=r(11750),u=r(10709),b=r(55152),p=r(81912),f=r(99468),O=r(40576),y=r(1495),j=r(66659),d=r(25436);function m(){let{prism:e}=(0,d.p)(),{colorMode:t}=(0,j.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var g=r(43758);function h(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,l.jsx)("div",{className:(0,s.A)("playgroundHeader_Tvsk"),children:e})}function w(){return(0,l.jsx)("div",{children:"Loading..."})}function P(){return(0,l.jsx)(O.A,{fallback:(0,l.jsx)(w,{}),children:()=>(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(g.A,{fallback:e=>(0,l.jsx)(y.MN,h({},e)),children:(0,l.jsx)(b.pA,{})}),(0,l.jsx)(b.p1,{})]})})}function x(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(p.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,l.jsx)("div",{className:"playgroundPreview_mApW",children:(0,l.jsx)(P,{})})]})}function S(){let e=(0,u.A)();return(0,l.jsx)(b.w,{className:"playgroundEditor_TySg"},String(e))}function k(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(p.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,l.jsx)(S,{})]})}let A=e=>`${e};`;function D(e){var t,r,n,o,{children:c,transformCode:i}=e,a=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:s}}=(0,f.A)(),{liveCodeBlock:{playgroundPosition:u}}=s,p=m(),O=null!==(o=null===(n=a.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,l.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,l.jsx)(b.Q,(t=h({code:null==c?void 0:c.replace(/\n$/,""),noInline:O,transformCode:null!=i?i:A,theme:p},a),r=r={children:"top"===u?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(x,{}),(0,l.jsx)(k,{})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(k,{}),(0,l.jsx)(x,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function N(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function E(e){var t,r;return(0,l.jsx)("button",(t=N({type:"button"},e),r=r={style:N({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let _=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:a},a,i);var C=r(12653),B=r(19934),L=r.n(B);let T=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),M=RegExp("\\{(?<range>[\\d,-]+)\\}"),I={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},R=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},I),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),z=Object.keys(I);function H(e,t){let r=e.map(e=>{let{start:r,end:n}=R[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function U(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let c=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(m());return(0,l.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:c,className:(0,s.A)(o.className,"codeBlockContainer_jDV4",C.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let $={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function F({children:e,className:t}){return(0,l.jsx)(U,{as:"pre",tabIndex:0,className:(0,s.A)($.codeBlockStandalone,"thin-scrollbar",t),children:(0,l.jsx)("code",{className:$.codeBlockLines,children:e})})}var G=r(2550);let W={attributes:!0,characterData:!0,childList:!0,subtree:!0};var V=r(27663);let Z={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function q(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function Q({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var c,i;1===e.length&&"\n"===e[0].content&&(e[0].content="");let a=n({line:e,className:(0,s.A)(t,r&&Z.codeLine)}),u=e.map((e,t)=>(0,l.jsx)("span",q({},o({token:e})),t));return(0,l.jsxs)("span",(c=q({},a),i=i={children:[r?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:Z.codeLineNumber}),(0,l.jsx)("span",{className:Z.codeLineContent,children:u})]}):u,(0,l.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(i)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(i)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(i,e))}),c))}var Y=r(936);function X(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function J(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,a.useState)(!1),o=(0,a.useRef)(void 0),c=(0,a.useCallback)(()=>{(0,Y.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,a.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,l.jsx)("button",{type:"button","aria-label":r?(0,p.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,s.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:c,children:(0,l.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,l.jsx)(X,{className:K.copyButtonIcon}),(0,l.jsx)(J,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,p.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,l.jsx)("button",{type:"button",onClick:t,className:(0,s.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,l.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:c}){var i,u,b,p;let{prism:{defaultLanguage:f,magicComments:O}}=(0,d.p)(),y=null==(u=null!==(i=null!=c?c:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==i?i:f)?void 0:u.toLowerCase(),j=m(),g=function(){let[e,t]=(0,a.useState)(!1),[r,n]=(0,a.useState)(!1),o=(0,a.useRef)(null),c=(0,a.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),i=(0,a.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,a.useState)(),o=(0,a.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,a.useEffect)(()=>{o()},[o]),function(e,t,r=W){let n=(0,G._q)(t),o=(0,G.Be)(r);(0,a.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,i),(0,a.useEffect)(()=>{i()},[e,i]),(0,a.useEffect)(()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)}),[i]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:c}}(),h=(null!==(p=null==r?void 0:null===(b=r.match(T))||void 0===b?void 0:b.groups.title)&&void 0!==p?p:"")||n,{lineClassNames:v,code:w}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:c}=t;if(c&&M.test(c)){let e=c.match(M).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${c}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(L()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return H(["js","jsBlock"],t);case"jsx":case"tsx":return H(["js","jsBlock","jsx"],t);case"html":return H(["js","jsBlock","html"],t);case"python":case"py":case"bash":return H(["bash"],t);case"markdown":case"md":return H(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return H(["tex"],t);case"lua":case"haskell":case"sql":return H(["lua"],t);case"wasm":return H(["wasm"],t);case"vb":case"vba":case"visual-basic":return H(["vb","rem"],t);case"vbnet":return H(["vbnet","rem"],t);case"batch":return H(["rem"],t);case"basic":return H(["rem","f90"],t);case"fsharp":return H(["js","ml"],t);case"ocaml":case"sml":return H(["ml"],t);case"fortran":return H(["f90"],t);case"cobol":return H(["cobol"],t);default:return H(z,t)}}(n,o),l=r.split("\n"),a=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),s=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),b=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<l.length;){let t=l[e].match(i);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);s[r]?a[s[r]].range+=`${e},`:u[r]?a[u[r]].start=e:b[r]&&(a[b[r]].range+=`${a[b[r]].start}-${e-1},`),l.splice(e,1)}r=l.join("\n");let p={};return Object.entries(a).forEach(([e,{range:t}])=>{L()(t).forEach(t=>{var r;null!==(r=p[t])&&void 0!==r||(p[t]=[]),p[t].push(e)})}),{lineClassNames:p,code:r}}(e,{metastring:r,language:y,magicComments:O}),P=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,l.jsxs)(U,{as:"div",className:(0,s.A)(t,y&&!t.includes(`language-${y}`)&&`language-${y}`),children:[h&&(0,l.jsx)("div",{className:$.codeBlockTitle,children:h}),(0,l.jsxs)("div",{className:$.codeBlockContent,children:[(0,l.jsx)(V.f4,{theme:j,code:w,language:null!=y?y:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,l.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,s.A)(e,$.codeBlock,"thin-scrollbar"),style:t,children:(0,l.jsx)("code",{className:(0,s.A)($.codeBlockLines,P&&$.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,l.jsx)(Q,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:P},t))})})}),(0,l.jsxs)("div",{className:$.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,l.jsx)(en,{className:$.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,l.jsx)(ee,{className:$.codeButton,code:w})]})]})]})}function ec(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let ei=(c=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let c=(0,u.A)(),i=a.Children.toArray(n).some(e=>(0,a.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,s="string"==typeof i?eo:F;return(0,l.jsx)(s,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(c))},function(e){return e.live?(0,l.jsx)(D,ec({scope:_},e)):(0,l.jsx)(c,ec({},e))});function el(e){return(0,l.jsx)(ei,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}}}]); \ No newline at end of file diff --git a/assets/js/0a818389.32aa1c42.js b/assets/js/0a818389.32aa1c42.js new file mode 100644 index 0000000000..01e211fd7b --- /dev/null +++ b/assets/js/0a818389.32aa1c42.js @@ -0,0 +1,3 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[22029],{15995:(e,n,t)=>{t.d(n,{A:()=>s});var r=t(62540);t(63696);var i=t(11750);function s({children:e,hidden:n,className:t}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,i.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>y});var r=t(62540),i=t(63696),s=t(11750),o=t(7846),l=t(49519),a=t(96439),c=t(19739),d=t(66904),u=t(79244);function h(e){var n,t;return null!==(t=null===(n=i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}var g=t(10709);function m(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function j(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function b({className:e,block:n,selectedValue:t,selectValue:i,tabValues:l}){let a=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.a_)(),d=e=>{let n=e.currentTarget,r=l[a.indexOf(n)].value;r!==t&&(c(n),i(r))},u=e=>{var n,t;let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let t=a.indexOf(e.currentTarget)+1;r=null!==(n=a[t])&&void 0!==n?n:a[0];break}case"ArrowLeft":{let n=a.indexOf(e.currentTarget)-1;r=null!==(t=a[n])&&void 0!==t?t:a[a.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":n},e),children:l.map(({value:e,label:n,attributes:i})=>(0,r.jsx)("li",j(m({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>a.push(e),onKeyDown:u,onClick:d},i),{className:(0,s.A)("tabs__item","tabItem_AQgk",null==i?void 0:i.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function f({lazy:e,children:n,selectedValue:t}){let o=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=o.find(e=>e.props.value===t);return e?(0,i.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:o.map((e,n)=>(0,i.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function x(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,s=function(e){let{values:n,children:t}=e;return(0,i.useMemo)(()=>{let e=null!=n?n:h(t).map(({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r}));return!function(e){let n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[o,g]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:s})),[m,j]=function({queryString:e=!1,groupId:n}){let t=(0,l.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,c.aZ)(r),(0,i.useCallback)(e=>{var n,i;if(!r)return;let s=new URLSearchParams(t.location.search);s.set(r,e),t.replace((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},t.location),i=i={search:s.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(i)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(i,e))}),n))},[r,t])]}({queryString:t,groupId:r}),[b,f]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[t,r]=(0,u.Dv)(n);return[t,(0,i.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),x=(()=>{let e=null!=m?m:b;return p({value:e,tabValues:s})?e:null})();return(0,a.A)(()=>{x&&g(x)},[x]),{selectedValue:o,selectValue:(0,i.useCallback)(e=>{if(!p({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);g(e),j(e),f(e)},[j,f,s]),tabValues:s}}(e);return(0,r.jsxs)("div",{className:(0,s.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(b,m({},n,e)),(0,r.jsx)(f,m({},n,e))]})}function y(e){let n=(0,g.A)();return(0,r.jsx)(x,j(m({},e),{children:h(e.children)}),String(n))}},40576:(e,n,t)=>{t.d(n,{A:()=>s});var r=t(62540);t(63696);var i=t(10709);function s({children:e,fallback:n}){return(0,i.A)()?(0,r.jsx)(r.Fragment,{children:null==e?void 0:e()}):null!=n?n:null}},70361:(e,n,t)=>{t.d(n,{A:()=>l});var r=t(62540);t(63696);var i=t(11750);let s="dot_giz1",o="bar_rrRL";function l({children:e,minHeight:n,url:t="http://localhost:3000",style:l,bodyStyle:a}){var c,d;return(0,r.jsxs)("div",{className:"browserWindow_my1Q",style:(c=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},l),d=d={minHeight:n},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(d)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(d)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(d,e))}),c),children:[(0,r.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,r.jsxs)("div",{className:"buttons_uHc7",children:[(0,r.jsx)("span",{className:s,style:{background:"#f25f58"}}),(0,r.jsx)("span",{className:s,style:{background:"#fbbe3c"}}),(0,r.jsx)("span",{className:s,style:{background:"#58cb42"}})]}),(0,r.jsx)("div",{className:(0,i.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:t}),(0,r.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:o}),(0,r.jsx)("span",{className:o}),(0,r.jsx)("span",{className:o})]})})]}),(0,r.jsx)("div",{className:"browserWindowBody_Idgs",style:a,children:e})]})}},55887:(e,n,t)=>{t.d(n,{A:()=>el});var r,i,s,o={};t.r(o),t.d(o,{ButtonExample:()=>A});var l=t(62540),a=t(63696),c=t(11750),d=t(10709),u=t(55152),h=t(81912),p=t(99468),g=t(40576),m=t(1495),j=t(66659),b=t(25436);function f(){let{prism:e}=(0,b.p)(),{colorMode:n}=(0,j.G)(),t=e.theme,r=e.darkTheme||t;return"dark"===n?r:t}var x=t(43758);function y(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function v({children:e}){return(0,l.jsx)("div",{className:(0,c.A)("playgroundHeader_Tvsk"),children:e})}function w(){return(0,l.jsx)("div",{children:"Loading..."})}function O(){return(0,l.jsx)(g.A,{fallback:(0,l.jsx)(w,{}),children:()=>(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(x.A,{fallback:e=>(0,l.jsx)(m.MN,y({},e)),children:(0,l.jsx)(u.pA,{})}),(0,l.jsx)(u.p1,{})]})})}function k(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(h.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,l.jsx)("div",{className:"playgroundPreview_mApW",children:(0,l.jsx)(O,{})})]})}function P(){let e=(0,d.A)();return(0,l.jsx)(u.w,{className:"playgroundEditor_TySg"},String(e))}function S(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(h.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,l.jsx)(P,{})]})}let N=e=>`${e};`;function C(e){var n,t,r,i,{children:s,transformCode:o}=e,a=function(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},s=Object.keys(e);for(r=0;r<s.length;r++)t=s[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)t=s[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children","transformCode"]);let{siteConfig:{themeConfig:c}}=(0,p.A)(),{liveCodeBlock:{playgroundPosition:d}}=c,h=f(),g=null!==(i=null===(r=a.metastring)||void 0===r?void 0:r.includes("noInline"))&&void 0!==i&&i;return(0,l.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,l.jsx)(u.Q,(n=y({code:null==s?void 0:s.replace(/\n$/,""),noInline:g,transformCode:null!=o?o:N,theme:h},a),t=t={children:"top"===d?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(k,{}),(0,l.jsx)(S,{})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(S,{}),(0,l.jsx)(k,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))})}function D(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function A(e){var n,t;return(0,l.jsx)("button",(n=D({type:"button"},e),t=t={style:D({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let T=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({React:a},a,o);var B=t(12653),E=t(19934),I=t.n(E);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),H=RegExp("\\{(?<range>[\\d,-]+)\\}"),M={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},_=(r=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},M),i=i={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(i)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(i)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(i,e))}),r),R=Object.keys(M);function z(e,n){let t=e.map(e=>{let{start:t,end:r}=_[e];return`(?:${t}\\s*(${n.flatMap(e=>{var n,t;return[e.line,null===(n=e.block)||void 0===n?void 0:n.start,null===(t=e.block)||void 0===t?void 0:t.end].filter(Boolean)}).join("|")})\\s*${r})`}).join("|");return RegExp(`^\\s*(?:${t})\\s*$`)}function W(e){var n,t,{as:r}=e,i=function(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},s=Object.keys(e);for(r=0;r<s.length;r++)t=s[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)t=s[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["as"]);let s=function(e){let n={color:"--prism-color",backgroundColor:"--prism-background-color"},t={};return Object.entries(e.plain).forEach(([e,r])=>{let i=n[e];i&&"string"==typeof r&&(t[i]=r)}),t}(f());return(0,l.jsx)(r,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},i),t=t={style:s,className:(0,c.A)(i.className,"codeBlockContainer_jDV4",B.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let F={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function Y({children:e,className:n}){return(0,l.jsx)(W,{as:"pre",tabIndex:0,className:(0,c.A)(F.codeBlockStandalone,"thin-scrollbar",n),children:(0,l.jsx)("code",{className:F.codeBlockLines,children:e})})}var U=t(2550);let $={attributes:!0,characterData:!0,childList:!0,subtree:!0};var q=t(27663);let J={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function X(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function V({line:e,classNames:n,showLineNumbers:t,getLineProps:r,getTokenProps:i}){var s,o;1===e.length&&"\n"===e[0].content&&(e[0].content="");let a=r({line:e,className:(0,c.A)(n,t&&J.codeLine)}),d=e.map((e,n)=>(0,l.jsx)("span",X({},i({token:e})),n));return(0,l.jsxs)("span",(s=X({},a),o=o={children:[t?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:J.codeLineNumber}),(0,l.jsx)("span",{className:J.codeLineContent,children:d})]}):d,(0,l.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(o)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(o)).forEach(function(e){Object.defineProperty(s,e,Object.getOwnPropertyDescriptor(o,e))}),s))}var G=t(936);function Q(e){var n,t;return(0,l.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,l.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function Z(e){var n,t;return(0,l.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,l.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:n}){let[t,r]=(0,a.useState)(!1),i=(0,a.useRef)(void 0),s=(0,a.useCallback)(()=>{(0,G.A)(e),r(!0),i.current=window.setTimeout(()=>{r(!1)},1e3)},[e]);return(0,a.useEffect)(()=>()=>window.clearTimeout(i.current),[]),(0,l.jsx)("button",{type:"button","aria-label":t?(0,h.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,h.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,h.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,c.A)("clean-btn",n,K.copyButton,t&&K.copyButtonCopied),onClick:s,children:(0,l.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,l.jsx)(Q,{className:K.copyButtonIcon}),(0,l.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function en(e){var n,t;return(0,l.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,l.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let et={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function er({className:e,onClick:n,isEnabled:t}){let r=(0,h.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,l.jsx)("button",{type:"button",onClick:n,className:(0,c.A)("clean-btn",e,t&&et.wordWrapButtonEnabled),"aria-label":r,title:r,children:(0,l.jsx)(en,{className:et.wordWrapButtonIcon,"aria-hidden":"true"})})}function ei({children:e,className:n="",metastring:t,title:r,showLineNumbers:i,language:s}){var o,d,u,h;let{prism:{defaultLanguage:p,magicComments:g}}=(0,b.p)(),m=null==(d=null!==(o=null!=s?s:function(e){let n=e.split(" ").find(e=>e.startsWith("language-"));return null==n?void 0:n.replace(/language-/,"")}(n))&&void 0!==o?o:p)?void 0:d.toLowerCase(),j=f(),x=function(){let[e,n]=(0,a.useState)(!1),[t,r]=(0,a.useState)(!1),i=(0,a.useRef)(null),s=(0,a.useCallback)(()=>{let t=i.current.querySelector("code");e?t.removeAttribute("style"):(t.style.whiteSpace="pre-wrap",t.style.overflowWrap="anywhere"),n(e=>!e)},[i,e]),o=(0,a.useCallback)(()=>{let{scrollWidth:e,clientWidth:n}=i.current;r(e>n||i.current.querySelector("code").hasAttribute("style"))},[i]);return!function(e,n){let[t,r]=(0,a.useState)(),i=(0,a.useCallback)(()=>{var n;r(null===(n=e.current)||void 0===n?void 0:n.closest("[role=tabpanel][hidden]"))},[e,r]);(0,a.useEffect)(()=>{i()},[i]),function(e,n,t=$){let r=(0,U._q)(n),i=(0,U.Be)(t);(0,a.useEffect)(()=>{let n=new MutationObserver(r);return e&&n.observe(e,i),()=>n.disconnect()},[e,r,i])}(t,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(n(),i())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(i,o),(0,a.useEffect)(()=>{o()},[e,o]),(0,a.useEffect)(()=>(window.addEventListener("resize",o,{passive:!0}),()=>{window.removeEventListener("resize",o)}),[o]),{codeBlockRef:i,isEnabled:e,isCodeScrollable:t,toggle:s}}(),y=(null!==(h=null==t?void 0:null===(u=t.match(L))||void 0===u?void 0:u.groups.title)&&void 0!==h?h:"")||r,{lineClassNames:v,code:w}=function(e,n){let t=e.replace(/\n$/,""),{language:r,magicComments:i,metastring:s}=n;if(s&&H.test(s)){let e=s.match(H).groups.range;if(0===i.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${s}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let n=i[0].className;return{lineClassNames:Object.fromEntries(I()(e).filter(e=>e>0).map(e=>[e-1,[n]])),code:t}}if(void 0===r)return{lineClassNames:{},code:t};let o=function(e,n){switch(e){case"js":case"javascript":case"ts":case"typescript":return z(["js","jsBlock"],n);case"jsx":case"tsx":return z(["js","jsBlock","jsx"],n);case"html":return z(["js","jsBlock","html"],n);case"python":case"py":case"bash":return z(["bash"],n);case"markdown":case"md":return z(["html","jsx","bash"],n);case"tex":case"latex":case"matlab":return z(["tex"],n);case"lua":case"haskell":case"sql":return z(["lua"],n);case"wasm":return z(["wasm"],n);case"vb":case"vba":case"visual-basic":return z(["vb","rem"],n);case"vbnet":return z(["vbnet","rem"],n);case"batch":return z(["rem"],n);case"basic":return z(["rem","f90"],n);case"fsharp":return z(["js","ml"],n);case"ocaml":case"sml":return z(["ml"],n);case"fortran":return z(["f90"],n);case"cobol":return z(["cobol"],n);default:return z(R,n)}}(r,i),l=t.split("\n"),a=Object.fromEntries(i.map(e=>[e.className,{start:0,range:""}])),c=Object.fromEntries(i.filter(e=>e.line).map(({className:e,line:n})=>[n,e])),d=Object.fromEntries(i.filter(e=>e.block).map(({className:e,block:n})=>[n.start,e])),u=Object.fromEntries(i.filter(e=>e.block).map(({className:e,block:n})=>[n.end,e]));for(let e=0;e<l.length;){let n=l[e].match(o);if(!n){e+=1;continue}let t=n.slice(1).find(e=>void 0!==e);c[t]?a[c[t]].range+=`${e},`:d[t]?a[d[t]].start=e:u[t]&&(a[u[t]].range+=`${a[u[t]].start}-${e-1},`),l.splice(e,1)}t=l.join("\n");let h={};return Object.entries(a).forEach(([e,{range:n}])=>{I()(n).forEach(n=>{var t;null!==(t=h[n])&&void 0!==t||(h[n]=[]),h[n].push(e)})}),{lineClassNames:h,code:t}}(e,{metastring:t,language:m,magicComments:g}),O=null!=i?i:!!(null==t?void 0:t.includes("showLineNumbers"));return(0,l.jsxs)(W,{as:"div",className:(0,c.A)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`),children:[y&&(0,l.jsx)("div",{className:F.codeBlockTitle,children:y}),(0,l.jsxs)("div",{className:F.codeBlockContent,children:[(0,l.jsx)(q.f4,{theme:j,code:w,language:null!=m?m:"text",children:({className:e,style:n,tokens:t,getLineProps:r,getTokenProps:i})=>(0,l.jsx)("pre",{tabIndex:0,ref:x.codeBlockRef,className:(0,c.A)(e,F.codeBlock,"thin-scrollbar"),style:n,children:(0,l.jsx)("code",{className:(0,c.A)(F.codeBlockLines,O&&F.codeBlockLinesWithNumbering),children:t.map((e,n)=>(0,l.jsx)(V,{line:e,getLineProps:r,getTokenProps:i,classNames:v[n],showLineNumbers:O},n))})})}),(0,l.jsxs)("div",{className:F.buttonGroup,children:[(x.isEnabled||x.isCodeScrollable)&&(0,l.jsx)(er,{className:F.codeButton,onClick:()=>x.toggle(),isEnabled:x.isEnabled}),(0,l.jsx)(ee,{className:F.codeButton,code:w})]})]})]})}function es(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}let eo=(s=function(e){var n,t,{children:r}=e,i=function(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},s=Object.keys(e);for(r=0;r<s.length;r++)t=s[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)t=s[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children"]);let s=(0,d.A)(),o=a.Children.toArray(r).some(e=>(0,a.isValidElement)(e))?r:Array.isArray(r)?r.join(""):r,c="string"==typeof o?ei:Y;return(0,l.jsx)(c,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},i),t=t={children:o},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n),String(s))},function(e){return e.live?(0,l.jsx)(C,es({scope:T},e)):(0,l.jsx)(s,es({},e))});function el(e){return(0,l.jsx)(eo,function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},e))}},71861:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>u,default:()=>m,frontMatter:()=>d,metadata:()=>r,toc:()=>p});let r=JSON.parse('{"id":"guides/markdown-features/code-blocks","title":"Code blocks","description":"Handling code blocks in Docusaurus Markdown","source":"@site/docs/guides/markdown-features/markdown-features-code-blocks.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/code-blocks","permalink":"/docs/markdown-features/code-blocks","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-code-blocks.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"code-blocks","description":"Handling code blocks in Docusaurus Markdown","slug":"/markdown-features/code-blocks"},"sidebar":"docs","previous":{"title":"Tabs","permalink":"/docs/markdown-features/tabs"},"next":{"title":"Admonitions","permalink":"/docs/markdown-features/admonitions"}}');var i=t(62540),s=t(43023),o=t(27446),l=t(15995),a=t(70361),c=t(55887);let d={id:"code-blocks",description:"Handling code blocks in Docusaurus Markdown",slug:"/markdown-features/code-blocks"},u="Code blocks",h={},p=[{value:"Code title",id:"code-title",level:2},{value:"Syntax highlighting",id:"syntax-highlighting",level:2},{value:"Theming",id:"theming",level:3},{value:"Supported Languages",id:"supported-languages",level:3},{value:"Line highlighting",id:"line-highlighting",level:2},{value:"Highlighting with comments",id:"highlighting-with-comments",level:3},{value:"Highlighting with metadata string",id:"highlighting-with-metadata-string",level:3},{value:"Custom magic comments",id:"custom-magic-comments",level:3},{value:"Line numbering",id:"line-numbering",level:2},{value:"Interactive code editor",id:"interactive-code-editor",level:2},{value:"Imports",id:"imports",level:3},{value:"Imperative Rendering (noInline)",id:"imperative-rendering-noinline",level:3},{value:"Using JSX markup in code blocks",id:"using-jsx-markup",level:2},{value:"Multi-language support code blocks",id:"multi-language-support-code-blocks",level:2},{value:"Docusaurus npm2yarn remark plugin",id:"npm2yarn-remark-plugin",level:3},{value:"Configuration",id:"npm2yarn-remark-plugin-configuration",level:4},{value:"Usage in JSX",id:"usage-in-jsx",level:2}];function g(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"code-blocks",children:"Code blocks"})}),"\n","\n",(0,i.jsx)(n.p,{children:"Code blocks within documentation are super-powered \u{1F4AA}."}),"\n",(0,i.jsx)(n.h2,{id:"code-title",children:"Code title"}),"\n",(0,i.jsxs)(n.p,{children:["You can add a title to the code block by adding a ",(0,i.jsx)(n.code,{children:"title"})," key after the language (leave a space between them)."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",children:'```jsx title="/src/components/HelloCodeTitle.js"\nfunction HelloCodeTitle(props) {\n return <h1>Hello, {props.name}</h1>;\n}\n```\n'})}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:'title="/src/components/HelloCodeTitle.js"',children:"function HelloCodeTitle(props) {\n return <h1>Hello, {props.name}</h1>;\n}\n"})})}),"\n",(0,i.jsx)(n.h2,{id:"syntax-highlighting",children:"Syntax highlighting"}),"\n",(0,i.jsxs)(n.p,{children:["Code blocks are text blocks wrapped around by strings of 3 backticks. You may check out ",(0,i.jsx)(n.a,{href:"https://github.com/mdx-js/specification",children:"this reference"})," for the specifications of MDX."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",children:"```js\nconsole.log('Every repo must come with a mascot.');\n```\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Use the matching language meta string for your code block, and Docusaurus will pick up syntax highlighting automatically, powered by ",(0,i.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer",children:"Prism React Renderer"}),"."]}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"console.log('Every repo must come with a mascot.');\n"})})}),"\n",(0,i.jsx)(n.h3,{id:"theming",children:"Theming"}),"\n",(0,i.jsxs)(n.p,{children:["By default, the Prism ",(0,i.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer#theming",children:"syntax highlighting theme"})," we use is ",(0,i.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer/blob/master/packages/prism-react-renderer/src/themes/palenight.ts",children:"Palenight"}),". You can change this to another theme by passing ",(0,i.jsx)(n.code,{children:"theme"})," field in ",(0,i.jsx)(n.code,{children:"prism"})," as ",(0,i.jsx)(n.code,{children:"themeConfig"})," in your docusaurus.config.js."]}),"\n",(0,i.jsxs)(n.p,{children:["For example, if you prefer to use the ",(0,i.jsx)(n.code,{children:"dracula"})," highlighting theme:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"import {themes as prismThemes} from 'prism-react-renderer';\n\nexport default {\n themeConfig: {\n prism: {\n // highlight-next-line\n theme: prismThemes.dracula,\n },\n },\n};\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Because a Prism theme is just a JS object, you can also write your own theme if you are not satisfied with the default. Docusaurus enhances the ",(0,i.jsx)(n.code,{children:"github"})," and ",(0,i.jsx)(n.code,{children:"vsDark"})," themes to provide richer highlight, and you can check our implementations for the ",(0,i.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/blob/main/website/src/utils/prismLight.ts",children:"light"})," and ",(0,i.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/blob/main/website/src/utils/prismDark.ts",children:"dark"})," code block themes."]}),"\n",(0,i.jsx)(n.h3,{id:"supported-languages",children:"Supported Languages"}),"\n",(0,i.jsxs)(n.p,{children:["By default, Docusaurus comes with a subset of ",(0,i.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer/blob/master/packages/generate-prism-languages/index.ts#L9-L23",children:"commonly used languages"}),"."]}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsx)(n.p,{children:"Some popular languages like Java, C#, or PHP are not enabled by default."})}),"\n",(0,i.jsxs)(n.p,{children:["To add syntax highlighting for any of the other ",(0,i.jsx)(n.a,{href:"https://prismjs.com/#supported-languages",children:"Prism-supported languages"}),", define it in an array of additional languages."]}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["Each additional language has to be a valid Prism component name. For example, Prism would map the ",(0,i.jsx)(n.em,{children:"language"})," ",(0,i.jsx)(n.code,{children:"cs"})," to ",(0,i.jsx)(n.code,{children:"csharp"}),", but only ",(0,i.jsx)(n.code,{children:"prism-csharp.js"})," exists as a ",(0,i.jsx)(n.em,{children:"component"}),", so you need to use ",(0,i.jsx)(n.code,{children:"additionalLanguages: ['csharp']"}),". You can look into ",(0,i.jsx)(n.code,{children:"node_modules/prismjs/components"})," to find all components (languages) available."]})}),"\n",(0,i.jsx)(n.p,{children:"For example, if you want to add highlighting for the PowerShell language:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n themeConfig: {\n prism: {\n // highlight-next-line\n additionalLanguages: ['powershell'],\n },\n // ...\n },\n};\n"})}),"\n",(0,i.jsxs)(n.p,{children:["After adding ",(0,i.jsx)(n.code,{children:"additionalLanguages"}),", restart Docusaurus."]}),"\n",(0,i.jsxs)(n.p,{children:["If you want to add highlighting for languages not yet supported by Prism, you can swizzle ",(0,i.jsx)(n.code,{children:"prism-include-languages"}),":"]}),"\n",(0,i.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,i.jsx)(l.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm run swizzle @docusaurus/theme-classic prism-include-languages\n"})})}),(0,i.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn swizzle @docusaurus/theme-classic prism-include-languages\n"})})}),(0,i.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm run swizzle @docusaurus/theme-classic prism-include-languages\n"})})})]}),"\n",(0,i.jsxs)(n.p,{children:["It will produce ",(0,i.jsx)(n.code,{children:"prism-include-languages.js"})," in your ",(0,i.jsx)(n.code,{children:"src/theme"})," folder. You can add highlighting support for custom languages by editing ",(0,i.jsx)(n.code,{children:"prism-include-languages.js"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="src/theme/prism-include-languages.js"',children:"const prismIncludeLanguages = (Prism) => {\n // ...\n\n additionalLanguages.forEach((lang) => {\n require(`prismjs/components/prism-${lang}`);\n });\n\n // highlight-next-line\n require('/path/to/your/prism-language-definition');\n\n // ...\n};\n"})}),"\n",(0,i.jsxs)(n.p,{children:["You can refer to ",(0,i.jsx)(n.a,{href:"https://github.com/PrismJS/prism/tree/master/components",children:"Prism's official language definitions"})," when you are writing your own language definitions."]}),"\n",(0,i.jsxs)(n.p,{children:["When adding a custom language definition, you do not need to add the language to the ",(0,i.jsx)(n.code,{children:"additionalLanguages"})," config array, since Docusaurus only looks up the ",(0,i.jsx)(n.code,{children:"additionalLanguages"})," strings in languages that Prism provides. Adding the language import in ",(0,i.jsx)(n.code,{children:"prism-include-languages.js"})," is sufficient."]}),"\n",(0,i.jsx)(n.h2,{id:"line-highlighting",children:"Line highlighting"}),"\n",(0,i.jsx)(n.h3,{id:"highlighting-with-comments",children:"Highlighting with comments"}),"\n",(0,i.jsxs)(n.p,{children:["You can use comments with ",(0,i.jsx)(n.code,{children:"highlight-next-line"}),", ",(0,i.jsx)(n.code,{children:"highlight-start"}),", and ",(0,i.jsx)(n.code,{children:"highlight-end"})," to select which lines are highlighted."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",children:"```js\nfunction HighlightSomeText(highlight) {\n if (highlight) {\n // highlight-next-line\n return 'This text is highlighted!';\n }\n\n return 'Nothing highlighted';\n}\n\nfunction HighlightMoreText(highlight) {\n // highlight-start\n if (highlight) {\n return 'This range is highlighted!';\n }\n // highlight-end\n\n return 'Nothing highlighted';\n}\n```\n"})}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"function HighlightSomeText(highlight) {\n if (highlight) {\n // highlight-next-line\n return 'This text is highlighted!';\n }\n\n return 'Nothing highlighted';\n}\n\nfunction HighlightMoreText(highlight) {\n // highlight-start\n if (highlight) {\n return 'This range is highlighted!';\n }\n // highlight-end\n\n return 'Nothing highlighted';\n}\n"})})}),"\n",(0,i.jsx)(n.p,{children:"Supported commenting syntax:"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Style"}),(0,i.jsx)(n.th,{children:"Syntax"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"C-style"}),(0,i.jsxs)(n.td,{children:[(0,i.jsx)(n.code,{children:"/* ... */"})," and ",(0,i.jsx)(n.code,{children:"// ..."})]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"JSX-style"}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"{/* ... */}"})})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Bash-style"}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"# ..."})})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"HTML-style"}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"<!-- ... -->"})})]})]})]}),"\n",(0,i.jsxs)(n.p,{children:["We will do our best to infer which set of comment styles to use based on the language, and default to allowing ",(0,i.jsx)(n.em,{children:"all"})," comment styles. If there's a comment style that is not currently supported, we are open to adding them! Pull requests welcome. Note that different comment styles have no semantic difference, only their content does."]}),"\n",(0,i.jsxs)(n.p,{children:["You can set your own background color for highlighted code line in your ",(0,i.jsx)(n.code,{children:"src/css/custom.css"})," which will better fit to your selected syntax highlighting theme. The color given below works for the default highlighting theme (Palenight), so if you are using another theme, you will have to tweak the color accordingly."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-css",metastring:'title="/src/css/custom.css"',children:":root {\n --docusaurus-highlighted-code-line-bg: rgb(72, 77, 91);\n}\n\n/* If you have a different syntax highlighting theme for dark mode. */\n[data-theme='dark'] {\n /* Color which works with dark mode syntax highlighting theme */\n --docusaurus-highlighted-code-line-bg: rgb(100, 100, 100);\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["If you also need to style the highlighted code line in some other way, you can target on ",(0,i.jsx)(n.code,{children:"theme-code-block-highlighted-line"})," CSS class."]}),"\n",(0,i.jsx)(n.h3,{id:"highlighting-with-metadata-string",children:"Highlighting with metadata string"}),"\n",(0,i.jsxs)(n.p,{children:["You can also specify highlighted line ranges within the language meta string (leave a space after the language). To highlight multiple lines, separate the line numbers by commas or use the range syntax to select a chunk of lines. This feature uses the ",(0,i.jsx)(n.code,{children:"parse-number-range"})," library and you can find ",(0,i.jsx)(n.a,{href:"https://www.npmjs.com/package/parse-numeric-range",children:"more syntax"})," on their project details."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",children:"```jsx {1,4-6,11}\nimport React from 'react';\n\nfunction MyComponent(props) {\n if (props.isBar) {\n return <div>Bar</div>;\n }\n\n return <div>Foo</div>;\n}\n\nexport default MyComponent;\n```\n"})}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:"{1,4-6,11}",children:"import React from 'react';\n\nfunction MyComponent(props) {\n if (props.isBar) {\n return <div>Bar</div>;\n }\n\n return <div>Foo</div>;\n}\n\nexport default MyComponent;\n"})})}),"\n",(0,i.jsxs)(n.admonition,{title:"prefer comments",type:"tip",children:[(0,i.jsx)(n.p,{children:"Prefer highlighting with comments where you can. By inlining highlight in the code, you don't have to manually count the lines if your code block becomes long. If you add/remove lines, you also don't have to offset your line ranges."}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-diff",children:"- ```jsx {3}\n+ ```jsx {4}\n function HighlightSomeText(highlight) {\n if (highlight) {\n+ console.log('Highlighted text found');\n return 'This text is highlighted!';\n }\n\n return 'Nothing highlighted';\n }\n ```\n"})}),(0,i.jsx)(n.p,{children:"Below, we will introduce how the magic comment system can be extended to define custom directives and their functionalities. The magic comments would only be parsed if a highlight metastring is not present."})]}),"\n",(0,i.jsx)(n.h3,{id:"custom-magic-comments",children:"Custom magic comments"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"// highlight-next-line"})," and ",(0,i.jsx)(n.code,{children:"// highlight-start"}),' etc. are called "magic comments", because they will be parsed and removed, and their purposes are to add metadata to the next line, or the section that the pair of start- and end-comments enclose.']}),"\n",(0,i.jsxs)(n.p,{children:["You can declare custom magic comments through theme config. For example, you can register another magic comment that adds a ",(0,i.jsx)(n.code,{children:"code-block-error-line"})," class name:"]}),"\n",(0,i.jsxs)(o.A,{children:[(0,i.jsx)(l.A,{value:"docusaurus.config.js",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"export default {\n themeConfig: {\n prism: {\n magicComments: [\n // Remember to extend the default highlight class name as well!\n {\n className: 'theme-code-block-highlighted-line',\n line: 'highlight-next-line',\n block: {start: 'highlight-start', end: 'highlight-end'},\n },\n // highlight-start\n {\n className: 'code-block-error-line',\n line: 'This will error',\n },\n // highlight-end\n ],\n },\n },\n};\n"})})}),(0,i.jsx)(l.A,{value:"src/css/custom.css",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-css",children:".code-block-error-line {\n background-color: #ff000020;\n display: block;\n margin: 0 calc(-1 * var(--ifm-pre-padding));\n padding: 0 var(--ifm-pre-padding);\n border-left: 3px solid #ff000080;\n}\n"})})}),(0,i.jsx)(l.A,{value:"myDoc.md",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",children:"In JavaScript, trying to access properties on `null` will error.\n\n```js\nconst name = null;\n// This will error\nconsole.log(name.toUpperCase());\n// Uncaught TypeError: Cannot read properties of null (reading 'toUpperCase')\n```\n"})})})]}),"\n",(0,i.jsxs)(a.A,{children:[(0,i.jsxs)(n.p,{children:["In JavaScript, trying to access properties on ",(0,i.jsx)(n.code,{children:"null"})," will error."]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"const name = null;\n// This will error\nconsole.log(name.toUpperCase());\n// Uncaught TypeError: Cannot read properties of null (reading 'toUpperCase')\n"})})]}),"\n",(0,i.jsxs)(n.p,{children:["If you use number ranges in metastring (the ",(0,i.jsx)(n.code,{children:"{1,3-4}"})," syntax), Docusaurus will apply the ",(0,i.jsxs)(n.strong,{children:["first ",(0,i.jsx)(n.code,{children:"magicComments"})," entry"]}),"'s class name. This, by default, is ",(0,i.jsx)(n.code,{children:"theme-code-block-highlighted-line"}),", but if you change the ",(0,i.jsx)(n.code,{children:"magicComments"})," config and use a different entry as the first one, the meaning of the metastring range will change as well."]}),"\n",(0,i.jsxs)(n.p,{children:["You can disable the default line highlighting comments with ",(0,i.jsx)(n.code,{children:"magicComments: []"}),". If there's no magic comment config, but Docusaurus encounters a code block containing a metastring range, it will error because there will be no class name to apply\u2014the highlighting class name, after all, is just a magic comment entry."]}),"\n",(0,i.jsxs)(n.p,{children:["Every magic comment entry will contain three keys: ",(0,i.jsx)(n.code,{children:"className"})," (required), ",(0,i.jsx)(n.code,{children:"line"}),", which applies to the directly next line, or ",(0,i.jsx)(n.code,{children:"block"})," (containing ",(0,i.jsx)(n.code,{children:"start"})," and ",(0,i.jsx)(n.code,{children:"end"}),"), which applies to the entire block enclosed by the two comments."]}),"\n",(0,i.jsxs)(n.p,{children:["Using CSS to target the class can already do a lot, but you can unlock the full potential of this feature through ",(0,i.jsx)(n.a,{href:"/docs/swizzling",children:"swizzling"}),"."]}),"\n",(0,i.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,i.jsx)(l.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm run swizzle @docusaurus/theme-classic CodeBlock/Line\n"})})}),(0,i.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn swizzle @docusaurus/theme-classic CodeBlock/Line\n"})})}),(0,i.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm run swizzle @docusaurus/theme-classic CodeBlock/Line\n"})})})]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"Line"})," component will receive the list of class names, based on which you can conditionally render different markup."]}),"\n",(0,i.jsx)(n.h2,{id:"line-numbering",children:"Line numbering"}),"\n",(0,i.jsxs)(n.p,{children:["You can enable line numbering for your code block by using ",(0,i.jsx)(n.code,{children:"showLineNumbers"})," key within the language meta string (don't forget to add space directly before the key)."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",children:"```jsx {1,4-6,11} showLineNumbers\nimport React from 'react';\n\nfunction MyComponent(props) {\n if (props.isBar) {\n return <div>Bar</div>;\n }\n\n return <div>Foo</div>;\n}\n\nexport default MyComponent;\n```\n"})}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:"{1,4-6,11} showLineNumbers",children:"import React from 'react';\n\nfunction MyComponent(props) {\n if (props.isBar) {\n return <div>Bar</div>;\n }\n\n return <div>Foo</div>;\n}\n\nexport default MyComponent;\n"})})}),"\n",(0,i.jsx)(n.h2,{id:"interactive-code-editor",children:"Interactive code editor"}),"\n",(0,i.jsxs)(n.p,{children:["(Powered by ",(0,i.jsx)(n.a,{href:"https://github.com/FormidableLabs/react-live",children:"React Live"}),")"]}),"\n",(0,i.jsxs)(n.p,{children:["You can create an interactive coding editor with the ",(0,i.jsx)(n.code,{children:"@docusaurus/theme-live-codeblock"})," plugin. First, add the plugin to your package."]}),"\n",(0,i.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,i.jsx)(l.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm install --save @docusaurus/theme-live-codeblock\n"})})}),(0,i.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn add @docusaurus/theme-live-codeblock\n"})})}),(0,i.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm add @docusaurus/theme-live-codeblock\n"})})})]}),"\n",(0,i.jsxs)(n.p,{children:["You will also need to add the plugin to your ",(0,i.jsx)(n.code,{children:"docusaurus.config.js"}),"."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:"{3}",children:"export default {\n // ...\n themes: ['@docusaurus/theme-live-codeblock'],\n // ...\n};\n"})}),"\n",(0,i.jsxs)(n.p,{children:["To use the plugin, create a code block with ",(0,i.jsx)(n.code,{children:"live"})," attached to the language meta string."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",children:"```jsx live\nfunction Clock(props) {\n const [date, setDate] = useState(new Date());\n useEffect(() => {\n const timerID = setInterval(() => tick(), 1000);\n\n return function cleanup() {\n clearInterval(timerID);\n };\n });\n\n function tick() {\n setDate(new Date());\n }\n\n return (\n <div>\n <h2>It is {date.toLocaleTimeString()}.</h2>\n </div>\n );\n}\n```\n"})}),"\n",(0,i.jsx)(n.p,{children:"The code block will be rendered as an interactive editor. Changes to the code will reflect on the result panel live."}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:"live",live:!0,children:"function Clock(props) {\n const [date, setDate] = useState(new Date());\n useEffect(() => {\n const timerID = setInterval(() => tick(), 1000);\n\n return function cleanup() {\n clearInterval(timerID);\n };\n });\n\n function tick() {\n setDate(new Date());\n }\n\n return (\n <div>\n <h2>It is {date.toLocaleTimeString()}.</h2>\n </div>\n );\n}\n"})})}),"\n",(0,i.jsx)(n.h3,{id:"imports",children:"Imports"}),"\n",(0,i.jsx)(n.admonition,{title:"react-live and imports",type:"warning",children:(0,i.jsx)(n.p,{children:"It is not possible to import components directly from the react-live code editor, you have to define available imports upfront."})}),"\n",(0,i.jsx)(n.p,{children:"By default, all React imports are available. If you need more imports available, swizzle the react-live scope:"}),"\n",(0,i.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,i.jsx)(l.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm run swizzle @docusaurus/theme-live-codeblock ReactLiveScope -- --eject\n"})})}),(0,i.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn swizzle @docusaurus/theme-live-codeblock ReactLiveScope --eject\n"})})}),(0,i.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm run swizzle @docusaurus/theme-live-codeblock ReactLiveScope --eject\n"})})})]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:'title="src/theme/ReactLiveScope/index.js"',children:"import React from 'react';\n\n// highlight-start\nconst ButtonExample = (props) => (\n <button\n {...props}\n style={{\n backgroundColor: 'white',\n color: 'black',\n border: 'solid red',\n borderRadius: 20,\n padding: 10,\n cursor: 'pointer',\n ...props.style,\n }}\n />\n);\n// highlight-end\n\n// Add react-live imports you need here\nconst ReactLiveScope = {\n React,\n ...React,\n // highlight-next-line\n ButtonExample,\n};\n\nexport default ReactLiveScope;\n"})}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"ButtonExample"})," component is now available to use:"]}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:"live",live:!0,children:"function MyPlayground(props) {\n return (\n <div>\n <ButtonExample onClick={() => alert('hey!')}>Click me</ButtonExample>\n </div>\n );\n}\n"})})}),"\n",(0,i.jsx)(n.h3,{id:"imperative-rendering-noinline",children:"Imperative Rendering (noInline)"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"noInline"})," option should be used to avoid errors when your code spans multiple components or variables."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",children:"```jsx live noInline\nconst project = 'Docusaurus';\n\nconst Greeting = () => <p>Hello {project}!</p>;\n\nrender(<Greeting />);\n```\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Unlike an ordinary interactive code block, when using ",(0,i.jsx)(n.code,{children:"noInline"})," React Live won't wrap your code in an inline function to render it."]}),"\n",(0,i.jsxs)(n.p,{children:["You will need to explicitly call ",(0,i.jsx)(n.code,{children:"render()"})," at the end of your code to display the output."]}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:"live noInline",live:!0,children:'const project = "Docusaurus";\n\nconst Greeting = () => (\n <p>Hello {project}!</p>\n);\n\nrender(\n <Greeting />\n);\n'})})}),"\n",(0,i.jsx)(n.h2,{id:"using-jsx-markup",children:"Using JSX markup in code blocks"}),"\n",(0,i.jsx)(n.p,{children:"Code block in Markdown always preserves its content as plain text, meaning you can't do something like:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:'type EditUrlFunction = (params: {\n // This doesn\'t turn into a link (for good reason!)\n version: <a href="/docs/versioning">Version</a>;\n versionDocsDirPath: string;\n docPath: string;\n permalink: string;\n locale: string;\n}) => string | undefined;\n'})}),"\n",(0,i.jsxs)(n.p,{children:["If you want to embed HTML markup such as anchor links or bold type, you can use the ",(0,i.jsx)(n.code,{children:"<pre>"})," tag, ",(0,i.jsx)(n.code,{children:"<code>"})," tag, or ",(0,i.jsx)(n.code,{children:"<CodeBlock>"})," component."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"<pre>\n <b>Input: </b>1 2 3 4{'\\n'}\n <b>Output: </b>\"366300745\"{'\\n'}\n</pre>\n"})}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsxs)("pre",{children:[(0,i.jsx)("b",{children:"Input: "}),"1 2 3 4\n",(0,i.jsx)("b",{children:"Output: "}),'"366300745"\n']})}),"\n",(0,i.jsx)(n.admonition,{title:"MDX is whitespace insensitive",type:"warning",children:(0,i.jsxs)(n.p,{children:["MDX is in line with JSX behavior: line break characters, even when inside ",(0,i.jsx)(n.code,{children:"<pre>"}),", are turned into spaces. You have to explicitly write the new line character for it to be printed out."]})}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsx)(n.p,{children:"Syntax highlighting only works on plain strings. Docusaurus will not attempt to parse code block content containing JSX children."})}),"\n",(0,i.jsx)(n.h2,{id:"multi-language-support-code-blocks",children:"Multi-language support code blocks"}),"\n",(0,i.jsx)(n.p,{children:"With MDX, you can easily create interactive components within your documentation, for example, to display code in multiple programming languages and switch between them using a tabs component."}),"\n",(0,i.jsxs)(n.p,{children:["Instead of implementing a dedicated component for multi-language support code blocks, we've implemented a general-purpose ",(0,i.jsx)(n.a,{href:"/docs/markdown-features/tabs",children:(0,i.jsx)(n.code,{children:"<Tabs>"})})," component in the classic theme so that you can use it for other non-code scenarios as well."]}),"\n",(0,i.jsxs)(n.p,{children:["The following example is how you can have multi-language code tabs in your docs. Note that the empty lines above and below each language block are ",(0,i.jsx)(n.strong,{children:"intentional"}),". This is a ",(0,i.jsx)(n.a,{href:"/docs/markdown-features/react#markdown-and-jsx-interoperability",children:"current limitation of MDX"}),": you have to leave empty lines around Markdown syntax for the MDX parser to know that it's Markdown syntax and not JSX."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:'import Tabs from \'@theme/Tabs\';\nimport TabItem from \'@theme/TabItem\';\n\n<Tabs>\n<TabItem value="js" label="JavaScript">\n\n```js\nfunction helloWorld() {\n console.log(\'Hello, world!\');\n}\n```\n\n</TabItem>\n<TabItem value="py" label="Python">\n\n```py\ndef hello_world():\n print("Hello, world!")\n```\n\n</TabItem>\n<TabItem value="java" label="Java">\n\n```java\nclass HelloWorld {\n public static void main(String args[]) {\n System.out.println("Hello, World");\n }\n}\n```\n\n</TabItem>\n</Tabs>\n'})}),"\n",(0,i.jsx)(n.p,{children:"And you will get the following:"}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsxs)(o.A,{children:[(0,i.jsx)(l.A,{value:"js",label:"JavaScript",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"function helloWorld() {\n console.log('Hello, world!');\n}\n"})})}),(0,i.jsx)(l.A,{value:"py",label:"Python",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-py",children:'def hello_world():\n print("Hello, world!")\n'})})}),(0,i.jsx)(l.A,{value:"java",label:"Java",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",children:'class HelloWorld {\n public static void main(String args[]) {\n System.out.println("Hello, World");\n }\n}\n'})})})]})}),"\n",(0,i.jsxs)(n.p,{children:["If you have multiple of these multi-language code tabs, and you want to sync the selection across the tab instances, refer to the ",(0,i.jsx)(n.a,{href:"/docs/markdown-features/tabs#syncing-tab-choices",children:"Syncing tab choices section"}),"."]}),"\n",(0,i.jsx)(n.h3,{id:"npm2yarn-remark-plugin",children:"Docusaurus npm2yarn remark plugin"}),"\n",(0,i.jsx)(n.p,{children:"Displaying CLI commands in both npm and Yarn is a very common need, for example:"}),"\n",(0,i.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,i.jsx)(l.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm install @docusaurus/remark-plugin-npm2yarn\n"})})}),(0,i.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn add @docusaurus/remark-plugin-npm2yarn\n"})})}),(0,i.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm add @docusaurus/remark-plugin-npm2yarn\n"})})})]}),"\n",(0,i.jsxs)(n.p,{children:["Docusaurus provides such a utility out of the box, freeing you from using the ",(0,i.jsx)(n.code,{children:"Tabs"})," component every time. To enable this feature, first install the ",(0,i.jsx)(n.code,{children:"@docusaurus/remark-plugin-npm2yarn"})," package as above, and then in ",(0,i.jsx)(n.code,{children:"docusaurus.config.js"}),", for the plugins where you need this feature (doc, blog, pages, etc.), register it in the ",(0,i.jsx)(n.code,{children:"remarkPlugins"})," option. (See ",(0,i.jsx)(n.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-docs#ex-config",children:"Docs configuration"})," for more details on configuration format)"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n // highlight-start\n remarkPlugins: [\n [require('@docusaurus/remark-plugin-npm2yarn'), {sync: true}],\n ],\n // highlight-end\n },\n pages: {\n // highlight-next-line\n remarkPlugins: [require('@docusaurus/remark-plugin-npm2yarn')],\n },\n blog: {\n // highlight-start\n remarkPlugins: [\n [\n require('@docusaurus/remark-plugin-npm2yarn'),\n {converters: ['pnpm']},\n ],\n ],\n // highlight-end\n // ...\n },\n },\n ],\n ],\n};\n"})}),"\n",(0,i.jsxs)(n.p,{children:["And then use it by adding the ",(0,i.jsx)(n.code,{children:"npm2yarn"})," key to the code block:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",children:"```bash npm2yarn\nnpm install @docusaurus/remark-plugin-npm2yarn\n```\n"})}),"\n",(0,i.jsx)(n.h4,{id:"npm2yarn-remark-plugin-configuration",children:"Configuration"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Option"}),(0,i.jsx)(n.th,{children:"Type"}),(0,i.jsx)(n.th,{children:"Default"}),(0,i.jsx)(n.th,{children:"Description"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"sync"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"boolean"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"false"})}),(0,i.jsx)(n.td,{children:"Whether to sync the selected converter across all code blocks."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"converters"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"array"})}),(0,i.jsxs)(n.td,{children:[(0,i.jsx)(n.code,{children:"'yarn'"}),", ",(0,i.jsx)(n.code,{children:"'pnpm'"})]}),(0,i.jsx)(n.td,{children:"The list of converters to use. The order of the converters is important, as the first converter will be used as the default choice."})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"usage-in-jsx",children:"Usage in JSX"}),"\n",(0,i.jsxs)(n.p,{children:["Outside of Markdown, you can use the ",(0,i.jsx)(n.code,{children:"@theme/CodeBlock"})," component to get the same output."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:'import CodeBlock from \'@theme/CodeBlock\';\n\nexport default function MyReactPage() {\n return (\n <div>\n {/* highlight-start */}\n <CodeBlock\n language="jsx"\n title="/src/components/HelloCodeTitle.js"\n showLineNumbers>\n {`function HelloCodeTitle(props) {\n return <h1>Hello, {props.name}</h1>;\n}`}\n </CodeBlock>\n {/* highlight-end */}\n </div>\n );\n}\n'})}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsx)(c.A,{language:"jsx",title:"/src/components/HelloCodeTitle.js",showLineNumbers:!0,children:`function HelloCodeTitle(props) { + return <h1>Hello, {props.name}</h1>; +}`})}),"\n",(0,i.jsxs)(n.p,{children:["The props accepted are ",(0,i.jsx)(n.code,{children:"language"}),", ",(0,i.jsx)(n.code,{children:"title"})," and ",(0,i.jsx)(n.code,{children:"showLineNumbers"}),", in the same way as you write Markdown code blocks."]}),"\n",(0,i.jsxs)(n.p,{children:["Although discouraged, you can also pass in a ",(0,i.jsx)(n.code,{children:"metastring"})," prop like ",(0,i.jsx)(n.code,{children:"metastring='{1-2} title=\"/src/components/HelloCodeTitle.js\" showLineNumbers'"}),", which is how Markdown code blocks are handled under the hood. However, we recommend you ",(0,i.jsx)(n.a,{href:"#highlighting-with-comments",children:"use comments for highlighting lines"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["As ",(0,i.jsx)(n.a,{href:"#using-jsx-markup",children:"previously stated"}),", syntax highlighting is only applied when the children is a simple string."]})]})}function m(e={}){let{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(g,{...e})}):g(e)}}}]); \ No newline at end of file diff --git a/assets/js/0a818389.ff60ef06.js b/assets/js/0a818389.ff60ef06.js deleted file mode 100644 index c7653f0ece..0000000000 --- a/assets/js/0a818389.ff60ef06.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[22029],{15995:(e,n,t)=>{t.d(n,{A:()=>s});var r=t(62540);t(63696);var i=t(11750);function s({children:e,hidden:n,className:t}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,i.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>y});var r=t(62540),i=t(63696),s=t(11750),o=t(7846),l=t(49519),a=t(96439),c=t(19739),d=t(66904),u=t(79244);function h(e){var n,t;return null!==(t=null===(n=i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}var g=t(10709);function m(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function j(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function b({className:e,block:n,selectedValue:t,selectValue:i,tabValues:l}){let a=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.a_)(),d=e=>{let n=e.currentTarget,r=l[a.indexOf(n)].value;r!==t&&(c(n),i(r))},u=e=>{var n,t;let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let t=a.indexOf(e.currentTarget)+1;r=null!==(n=a[t])&&void 0!==n?n:a[0];break}case"ArrowLeft":{let n=a.indexOf(e.currentTarget)-1;r=null!==(t=a[n])&&void 0!==t?t:a[a.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":n},e),children:l.map(({value:e,label:n,attributes:i})=>(0,r.jsx)("li",j(m({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>a.push(e),onKeyDown:u,onClick:d},i),{className:(0,s.A)("tabs__item","tabItem_AQgk",null==i?void 0:i.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function f({lazy:e,children:n,selectedValue:t}){let o=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=o.find(e=>e.props.value===t);return e?(0,i.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:o.map((e,n)=>(0,i.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function x(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,s=function(e){let{values:n,children:t}=e;return(0,i.useMemo)(()=>{let e=null!=n?n:h(t).map(({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r}));return!function(e){let n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[o,g]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:s})),[m,j]=function({queryString:e=!1,groupId:n}){let t=(0,l.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,c.aZ)(r),(0,i.useCallback)(e=>{var n,i;if(!r)return;let s=new URLSearchParams(t.location.search);s.set(r,e),t.replace((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},t.location),i=i={search:s.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(i)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(i,e))}),n))},[r,t])]}({queryString:t,groupId:r}),[b,f]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[t,r]=(0,u.Dv)(n);return[t,(0,i.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),x=(()=>{let e=null!=m?m:b;return p({value:e,tabValues:s})?e:null})();return(0,a.A)(()=>{x&&g(x)},[x]),{selectedValue:o,selectValue:(0,i.useCallback)(e=>{if(!p({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);g(e),j(e),f(e)},[j,f,s]),tabValues:s}}(e);return(0,r.jsxs)("div",{className:(0,s.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(b,m({},n,e)),(0,r.jsx)(f,m({},n,e))]})}function y(e){let n=(0,g.A)();return(0,r.jsx)(x,j(m({},e),{children:h(e.children)}),String(n))}},40576:(e,n,t)=>{t.d(n,{A:()=>s});var r=t(62540);t(63696);var i=t(10709);function s({children:e,fallback:n}){return(0,i.A)()?(0,r.jsx)(r.Fragment,{children:null==e?void 0:e()}):null!=n?n:null}},70361:(e,n,t)=>{t.d(n,{A:()=>l});var r=t(62540);t(63696);var i=t(11750);let s="dot_giz1",o="bar_rrRL";function l({children:e,minHeight:n,url:t="http://localhost:3000",style:l,bodyStyle:a}){var c,d;return(0,r.jsxs)("div",{className:"browserWindow_my1Q",style:(c=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},l),d=d={minHeight:n},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(d)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(d)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(d,e))}),c),children:[(0,r.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,r.jsxs)("div",{className:"buttons_uHc7",children:[(0,r.jsx)("span",{className:s,style:{background:"#f25f58"}}),(0,r.jsx)("span",{className:s,style:{background:"#fbbe3c"}}),(0,r.jsx)("span",{className:s,style:{background:"#58cb42"}})]}),(0,r.jsx)("div",{className:(0,i.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:t}),(0,r.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:o}),(0,r.jsx)("span",{className:o}),(0,r.jsx)("span",{className:o})]})})]}),(0,r.jsx)("div",{className:"browserWindowBody_Idgs",style:a,children:e})]})}},55887:(e,n,t)=>{t.d(n,{A:()=>el});var r,i,s,o={};t.r(o),t.d(o,{ButtonExample:()=>A});var l=t(62540),a=t(63696),c=t(11750),d=t(10709),u=t(55152),h=t(81912),p=t(99468),g=t(40576),m=t(1495),j=t(66659),b=t(25436);function f(){let{prism:e}=(0,b.p)(),{colorMode:n}=(0,j.G)(),t=e.theme,r=e.darkTheme||t;return"dark"===n?r:t}var x=t(43758);function y(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function v({children:e}){return(0,l.jsx)("div",{className:(0,c.A)("playgroundHeader_Tvsk"),children:e})}function w(){return(0,l.jsx)("div",{children:"Loading..."})}function O(){return(0,l.jsx)(g.A,{fallback:(0,l.jsx)(w,{}),children:()=>(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(x.A,{fallback:e=>(0,l.jsx)(m.MN,y({},e)),children:(0,l.jsx)(u.pA,{})}),(0,l.jsx)(u.p1,{})]})})}function k(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(h.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,l.jsx)("div",{className:"playgroundPreview_mApW",children:(0,l.jsx)(O,{})})]})}function P(){let e=(0,d.A)();return(0,l.jsx)(u.w,{className:"playgroundEditor_TySg"},String(e))}function N(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(h.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,l.jsx)(P,{})]})}let S=e=>`${e};`;function C(e){var n,t,r,i,{children:s,transformCode:o}=e,a=function(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},s=Object.keys(e);for(r=0;r<s.length;r++)t=s[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)t=s[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children","transformCode"]);let{siteConfig:{themeConfig:c}}=(0,p.A)(),{liveCodeBlock:{playgroundPosition:d}}=c,h=f(),g=null!==(i=null===(r=a.metastring)||void 0===r?void 0:r.includes("noInline"))&&void 0!==i&&i;return(0,l.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,l.jsx)(u.Q,(n=y({code:null==s?void 0:s.replace(/\n$/,""),noInline:g,transformCode:null!=o?o:S,theme:h},a),t=t={children:"top"===d?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(k,{}),(0,l.jsx)(N,{})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(N,{}),(0,l.jsx)(k,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))})}function D(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function A(e){var n,t;return(0,l.jsx)("button",(n=D({type:"button"},e),t=t={style:D({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let T=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({React:a},a,o);var B=t(12653),E=t(19934),I=t.n(E);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),H=RegExp("\\{(?<range>[\\d,-]+)\\}"),M={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},_=(r=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},M),i=i={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(i)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(i)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(i,e))}),r),R=Object.keys(M);function z(e,n){let t=e.map(e=>{let{start:t,end:r}=_[e];return`(?:${t}\\s*(${n.flatMap(e=>{var n,t;return[e.line,null===(n=e.block)||void 0===n?void 0:n.start,null===(t=e.block)||void 0===t?void 0:t.end].filter(Boolean)}).join("|")})\\s*${r})`}).join("|");return RegExp(`^\\s*(?:${t})\\s*$`)}function W(e){var n,t,{as:r}=e,i=function(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},s=Object.keys(e);for(r=0;r<s.length;r++)t=s[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)t=s[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["as"]);let s=function(e){let n={color:"--prism-color",backgroundColor:"--prism-background-color"},t={};return Object.entries(e.plain).forEach(([e,r])=>{let i=n[e];i&&"string"==typeof r&&(t[i]=r)}),t}(f());return(0,l.jsx)(r,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},i),t=t={style:s,className:(0,c.A)(i.className,"codeBlockContainer_jDV4",B.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let F={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function Y({children:e,className:n}){return(0,l.jsx)(W,{as:"pre",tabIndex:0,className:(0,c.A)(F.codeBlockStandalone,"thin-scrollbar",n),children:(0,l.jsx)("code",{className:F.codeBlockLines,children:e})})}var U=t(2550);let $={attributes:!0,characterData:!0,childList:!0,subtree:!0};var q=t(27663);let J={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function X(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function V({line:e,classNames:n,showLineNumbers:t,getLineProps:r,getTokenProps:i}){var s,o;1===e.length&&"\n"===e[0].content&&(e[0].content="");let a=r({line:e,className:(0,c.A)(n,t&&J.codeLine)}),d=e.map((e,n)=>(0,l.jsx)("span",X({},i({token:e})),n));return(0,l.jsxs)("span",(s=X({},a),o=o={children:[t?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:J.codeLineNumber}),(0,l.jsx)("span",{className:J.codeLineContent,children:d})]}):d,(0,l.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(o)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(o)).forEach(function(e){Object.defineProperty(s,e,Object.getOwnPropertyDescriptor(o,e))}),s))}var G=t(936);function Q(e){var n,t;return(0,l.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,l.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function Z(e){var n,t;return(0,l.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,l.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:n}){let[t,r]=(0,a.useState)(!1),i=(0,a.useRef)(void 0),s=(0,a.useCallback)(()=>{(0,G.A)(e),r(!0),i.current=window.setTimeout(()=>{r(!1)},1e3)},[e]);return(0,a.useEffect)(()=>()=>window.clearTimeout(i.current),[]),(0,l.jsx)("button",{type:"button","aria-label":t?(0,h.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,h.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,h.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,c.A)("clean-btn",n,K.copyButton,t&&K.copyButtonCopied),onClick:s,children:(0,l.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,l.jsx)(Q,{className:K.copyButtonIcon}),(0,l.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function en(e){var n,t;return(0,l.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,l.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let et={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function er({className:e,onClick:n,isEnabled:t}){let r=(0,h.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,l.jsx)("button",{type:"button",onClick:n,className:(0,c.A)("clean-btn",e,t&&et.wordWrapButtonEnabled),"aria-label":r,title:r,children:(0,l.jsx)(en,{className:et.wordWrapButtonIcon,"aria-hidden":"true"})})}function ei({children:e,className:n="",metastring:t,title:r,showLineNumbers:i,language:s}){var o,d,u,h;let{prism:{defaultLanguage:p,magicComments:g}}=(0,b.p)(),m=null==(d=null!==(o=null!=s?s:function(e){let n=e.split(" ").find(e=>e.startsWith("language-"));return null==n?void 0:n.replace(/language-/,"")}(n))&&void 0!==o?o:p)?void 0:d.toLowerCase(),j=f(),x=function(){let[e,n]=(0,a.useState)(!1),[t,r]=(0,a.useState)(!1),i=(0,a.useRef)(null),s=(0,a.useCallback)(()=>{let t=i.current.querySelector("code");e?t.removeAttribute("style"):(t.style.whiteSpace="pre-wrap",t.style.overflowWrap="anywhere"),n(e=>!e)},[i,e]),o=(0,a.useCallback)(()=>{let{scrollWidth:e,clientWidth:n}=i.current;r(e>n||i.current.querySelector("code").hasAttribute("style"))},[i]);return!function(e,n){let[t,r]=(0,a.useState)(),i=(0,a.useCallback)(()=>{var n;r(null===(n=e.current)||void 0===n?void 0:n.closest("[role=tabpanel][hidden]"))},[e,r]);(0,a.useEffect)(()=>{i()},[i]),function(e,n,t=$){let r=(0,U._q)(n),i=(0,U.Be)(t);(0,a.useEffect)(()=>{let n=new MutationObserver(r);return e&&n.observe(e,i),()=>n.disconnect()},[e,r,i])}(t,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(n(),i())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(i,o),(0,a.useEffect)(()=>{o()},[e,o]),(0,a.useEffect)(()=>(window.addEventListener("resize",o,{passive:!0}),()=>{window.removeEventListener("resize",o)}),[o]),{codeBlockRef:i,isEnabled:e,isCodeScrollable:t,toggle:s}}(),y=(null!==(h=null==t?void 0:null===(u=t.match(L))||void 0===u?void 0:u.groups.title)&&void 0!==h?h:"")||r,{lineClassNames:v,code:w}=function(e,n){let t=e.replace(/\n$/,""),{language:r,magicComments:i,metastring:s}=n;if(s&&H.test(s)){let e=s.match(H).groups.range;if(0===i.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${s}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let n=i[0].className;return{lineClassNames:Object.fromEntries(I()(e).filter(e=>e>0).map(e=>[e-1,[n]])),code:t}}if(void 0===r)return{lineClassNames:{},code:t};let o=function(e,n){switch(e){case"js":case"javascript":case"ts":case"typescript":return z(["js","jsBlock"],n);case"jsx":case"tsx":return z(["js","jsBlock","jsx"],n);case"html":return z(["js","jsBlock","html"],n);case"python":case"py":case"bash":return z(["bash"],n);case"markdown":case"md":return z(["html","jsx","bash"],n);case"tex":case"latex":case"matlab":return z(["tex"],n);case"lua":case"haskell":case"sql":return z(["lua"],n);case"wasm":return z(["wasm"],n);case"vb":case"vba":case"visual-basic":return z(["vb","rem"],n);case"vbnet":return z(["vbnet","rem"],n);case"batch":return z(["rem"],n);case"basic":return z(["rem","f90"],n);case"fsharp":return z(["js","ml"],n);case"ocaml":case"sml":return z(["ml"],n);case"fortran":return z(["f90"],n);case"cobol":return z(["cobol"],n);default:return z(R,n)}}(r,i),l=t.split("\n"),a=Object.fromEntries(i.map(e=>[e.className,{start:0,range:""}])),c=Object.fromEntries(i.filter(e=>e.line).map(({className:e,line:n})=>[n,e])),d=Object.fromEntries(i.filter(e=>e.block).map(({className:e,block:n})=>[n.start,e])),u=Object.fromEntries(i.filter(e=>e.block).map(({className:e,block:n})=>[n.end,e]));for(let e=0;e<l.length;){let n=l[e].match(o);if(!n){e+=1;continue}let t=n.slice(1).find(e=>void 0!==e);c[t]?a[c[t]].range+=`${e},`:d[t]?a[d[t]].start=e:u[t]&&(a[u[t]].range+=`${a[u[t]].start}-${e-1},`),l.splice(e,1)}t=l.join("\n");let h={};return Object.entries(a).forEach(([e,{range:n}])=>{I()(n).forEach(n=>{var t;null!==(t=h[n])&&void 0!==t||(h[n]=[]),h[n].push(e)})}),{lineClassNames:h,code:t}}(e,{metastring:t,language:m,magicComments:g}),O=null!=i?i:!!(null==t?void 0:t.includes("showLineNumbers"));return(0,l.jsxs)(W,{as:"div",className:(0,c.A)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`),children:[y&&(0,l.jsx)("div",{className:F.codeBlockTitle,children:y}),(0,l.jsxs)("div",{className:F.codeBlockContent,children:[(0,l.jsx)(q.f4,{theme:j,code:w,language:null!=m?m:"text",children:({className:e,style:n,tokens:t,getLineProps:r,getTokenProps:i})=>(0,l.jsx)("pre",{tabIndex:0,ref:x.codeBlockRef,className:(0,c.A)(e,F.codeBlock,"thin-scrollbar"),style:n,children:(0,l.jsx)("code",{className:(0,c.A)(F.codeBlockLines,O&&F.codeBlockLinesWithNumbering),children:t.map((e,n)=>(0,l.jsx)(V,{line:e,getLineProps:r,getTokenProps:i,classNames:v[n],showLineNumbers:O},n))})})}),(0,l.jsxs)("div",{className:F.buttonGroup,children:[(x.isEnabled||x.isCodeScrollable)&&(0,l.jsx)(er,{className:F.codeButton,onClick:()=>x.toggle(),isEnabled:x.isEnabled}),(0,l.jsx)(ee,{className:F.codeButton,code:w})]})]})]})}function es(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}let eo=(s=function(e){var n,t,{children:r}=e,i=function(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},s=Object.keys(e);for(r=0;r<s.length;r++)t=s[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)t=s[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children"]);let s=(0,d.A)(),o=a.Children.toArray(r).some(e=>(0,a.isValidElement)(e))?r:Array.isArray(r)?r.join(""):r,c="string"==typeof o?ei:Y;return(0,l.jsx)(c,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},i),t=t={children:o},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n),String(s))},function(e){return e.live?(0,l.jsx)(C,es({scope:T},e)):(0,l.jsx)(s,es({},e))});function el(e){return(0,l.jsx)(eo,function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},e))}},71861:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>u,default:()=>m,frontMatter:()=>d,metadata:()=>r,toc:()=>p});let r=JSON.parse('{"id":"guides/markdown-features/code-blocks","title":"Code blocks","description":"Handling code blocks in Docusaurus Markdown","source":"@site/docs/guides/markdown-features/markdown-features-code-blocks.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/code-blocks","permalink":"/docs/markdown-features/code-blocks","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-code-blocks.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"code-blocks","description":"Handling code blocks in Docusaurus Markdown","slug":"/markdown-features/code-blocks"},"sidebar":"docs","previous":{"title":"Tabs","permalink":"/docs/markdown-features/tabs"},"next":{"title":"Admonitions","permalink":"/docs/markdown-features/admonitions"}}');var i=t(62540),s=t(43023),o=t(27446),l=t(15995),a=t(70361),c=t(55887);let d={id:"code-blocks",description:"Handling code blocks in Docusaurus Markdown",slug:"/markdown-features/code-blocks"},u="Code blocks",h={},p=[{value:"Code title",id:"code-title",level:2},{value:"Syntax highlighting",id:"syntax-highlighting",level:2},{value:"Theming",id:"theming",level:3},{value:"Supported Languages",id:"supported-languages",level:3},{value:"Line highlighting",id:"line-highlighting",level:2},{value:"Highlighting with comments",id:"highlighting-with-comments",level:3},{value:"Highlighting with metadata string",id:"highlighting-with-metadata-string",level:3},{value:"Custom magic comments",id:"custom-magic-comments",level:3},{value:"Line numbering",id:"line-numbering",level:2},{value:"Interactive code editor",id:"interactive-code-editor",level:2},{value:"Imports",id:"imports",level:3},{value:"Imperative Rendering (noInline)",id:"imperative-rendering-noinline",level:3},{value:"Using JSX markup in code blocks",id:"using-jsx-markup",level:2},{value:"Multi-language support code blocks",id:"multi-language-support-code-blocks",level:2},{value:"Docusaurus npm2yarn remark plugin",id:"npm2yarn-remark-plugin",level:3},{value:"Configuration",id:"npm2yarn-remark-plugin-configuration",level:4},{value:"Usage in JSX",id:"usage-in-jsx",level:2}];function g(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"code-blocks",children:"Code blocks"})}),"\n","\n",(0,i.jsx)(n.p,{children:"Code blocks within documentation are super-powered \u{1F4AA}."}),"\n",(0,i.jsx)(n.h2,{id:"code-title",children:"Code title"}),"\n",(0,i.jsxs)(n.p,{children:["You can add a title to the code block by adding a ",(0,i.jsx)(n.code,{children:"title"})," key after the language (leave a space between them)."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",children:'```jsx title="/src/components/HelloCodeTitle.js"\nfunction HelloCodeTitle(props) {\n return <h1>Hello, {props.name}</h1>;\n}\n```\n'})}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:'title="/src/components/HelloCodeTitle.js"',children:"function HelloCodeTitle(props) {\n return <h1>Hello, {props.name}</h1>;\n}\n"})})}),"\n",(0,i.jsx)(n.h2,{id:"syntax-highlighting",children:"Syntax highlighting"}),"\n",(0,i.jsxs)(n.p,{children:["Code blocks are text blocks wrapped around by strings of 3 backticks. You may check out ",(0,i.jsx)(n.a,{href:"https://github.com/mdx-js/specification",children:"this reference"})," for the specifications of MDX."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",children:"```js\nconsole.log('Every repo must come with a mascot.');\n```\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Use the matching language meta string for your code block, and Docusaurus will pick up syntax highlighting automatically, powered by ",(0,i.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer",children:"Prism React Renderer"}),"."]}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"console.log('Every repo must come with a mascot.');\n"})})}),"\n",(0,i.jsx)(n.h3,{id:"theming",children:"Theming"}),"\n",(0,i.jsxs)(n.p,{children:["By default, the Prism ",(0,i.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer#theming",children:"syntax highlighting theme"})," we use is ",(0,i.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer/blob/master/packages/prism-react-renderer/src/themes/palenight.ts",children:"Palenight"}),". You can change this to another theme by passing ",(0,i.jsx)(n.code,{children:"theme"})," field in ",(0,i.jsx)(n.code,{children:"prism"})," as ",(0,i.jsx)(n.code,{children:"themeConfig"})," in your docusaurus.config.js."]}),"\n",(0,i.jsxs)(n.p,{children:["For example, if you prefer to use the ",(0,i.jsx)(n.code,{children:"dracula"})," highlighting theme:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"import {themes as prismThemes} from 'prism-react-renderer';\n\nexport default {\n themeConfig: {\n prism: {\n // highlight-next-line\n theme: prismThemes.dracula,\n },\n },\n};\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Because a Prism theme is just a JS object, you can also write your own theme if you are not satisfied with the default. Docusaurus enhances the ",(0,i.jsx)(n.code,{children:"github"})," and ",(0,i.jsx)(n.code,{children:"vsDark"})," themes to provide richer highlight, and you can check our implementations for the ",(0,i.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/blob/main/website/src/utils/prismLight.ts",children:"light"})," and ",(0,i.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/blob/main/website/src/utils/prismDark.ts",children:"dark"})," code block themes."]}),"\n",(0,i.jsx)(n.h3,{id:"supported-languages",children:"Supported Languages"}),"\n",(0,i.jsxs)(n.p,{children:["By default, Docusaurus comes with a subset of ",(0,i.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer/blob/master/packages/generate-prism-languages/index.ts#L9-L23",children:"commonly used languages"}),"."]}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsx)(n.p,{children:"Some popular languages like Java, C#, or PHP are not enabled by default."})}),"\n",(0,i.jsxs)(n.p,{children:["To add syntax highlighting for any of the other ",(0,i.jsx)(n.a,{href:"https://prismjs.com/#supported-languages",children:"Prism-supported languages"}),", define it in an array of additional languages."]}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["Each additional language has to be a valid Prism component name. For example, Prism would map the ",(0,i.jsx)(n.em,{children:"language"})," ",(0,i.jsx)(n.code,{children:"cs"})," to ",(0,i.jsx)(n.code,{children:"csharp"}),", but only ",(0,i.jsx)(n.code,{children:"prism-csharp.js"})," exists as a ",(0,i.jsx)(n.em,{children:"component"}),", so you need to use ",(0,i.jsx)(n.code,{children:"additionalLanguages: ['csharp']"}),". You can look into ",(0,i.jsx)(n.code,{children:"node_modules/prismjs/components"})," to find all components (languages) available."]})}),"\n",(0,i.jsx)(n.p,{children:"For example, if you want to add highlighting for the PowerShell language:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n themeConfig: {\n prism: {\n // highlight-next-line\n additionalLanguages: ['powershell'],\n },\n // ...\n },\n};\n"})}),"\n",(0,i.jsxs)(n.p,{children:["After adding ",(0,i.jsx)(n.code,{children:"additionalLanguages"}),", restart Docusaurus."]}),"\n",(0,i.jsxs)(n.p,{children:["If you want to add highlighting for languages not yet supported by Prism, you can swizzle ",(0,i.jsx)(n.code,{children:"prism-include-languages"}),":"]}),"\n",(0,i.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,i.jsx)(l.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm run swizzle @docusaurus/theme-classic prism-include-languages\n"})})}),(0,i.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn swizzle @docusaurus/theme-classic prism-include-languages\n"})})}),(0,i.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm run swizzle @docusaurus/theme-classic prism-include-languages\n"})})})]}),"\n",(0,i.jsxs)(n.p,{children:["It will produce ",(0,i.jsx)(n.code,{children:"prism-include-languages.js"})," in your ",(0,i.jsx)(n.code,{children:"src/theme"})," folder. You can add highlighting support for custom languages by editing ",(0,i.jsx)(n.code,{children:"prism-include-languages.js"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="src/theme/prism-include-languages.js"',children:"const prismIncludeLanguages = (Prism) => {\n // ...\n\n additionalLanguages.forEach((lang) => {\n require(`prismjs/components/prism-${lang}`);\n });\n\n // highlight-next-line\n require('/path/to/your/prism-language-definition');\n\n // ...\n};\n"})}),"\n",(0,i.jsxs)(n.p,{children:["You can refer to ",(0,i.jsx)(n.a,{href:"https://github.com/PrismJS/prism/tree/master/components",children:"Prism's official language definitions"})," when you are writing your own language definitions."]}),"\n",(0,i.jsxs)(n.p,{children:["When adding a custom language definition, you do not need to add the language to the ",(0,i.jsx)(n.code,{children:"additionalLanguages"})," config array, since Docusaurus only looks up the ",(0,i.jsx)(n.code,{children:"additionalLanguages"})," strings in languages that Prism provides. Adding the language import in ",(0,i.jsx)(n.code,{children:"prism-include-languages.js"})," is sufficient."]}),"\n",(0,i.jsx)(n.h2,{id:"line-highlighting",children:"Line highlighting"}),"\n",(0,i.jsx)(n.h3,{id:"highlighting-with-comments",children:"Highlighting with comments"}),"\n",(0,i.jsxs)(n.p,{children:["You can use comments with ",(0,i.jsx)(n.code,{children:"highlight-next-line"}),", ",(0,i.jsx)(n.code,{children:"highlight-start"}),", and ",(0,i.jsx)(n.code,{children:"highlight-end"})," to select which lines are highlighted."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",children:"```js\nfunction HighlightSomeText(highlight) {\n if (highlight) {\n // highlight-next-line\n return 'This text is highlighted!';\n }\n\n return 'Nothing highlighted';\n}\n\nfunction HighlightMoreText(highlight) {\n // highlight-start\n if (highlight) {\n return 'This range is highlighted!';\n }\n // highlight-end\n\n return 'Nothing highlighted';\n}\n```\n"})}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"function HighlightSomeText(highlight) {\n if (highlight) {\n // highlight-next-line\n return 'This text is highlighted!';\n }\n\n return 'Nothing highlighted';\n}\n\nfunction HighlightMoreText(highlight) {\n // highlight-start\n if (highlight) {\n return 'This range is highlighted!';\n }\n // highlight-end\n\n return 'Nothing highlighted';\n}\n"})})}),"\n",(0,i.jsx)(n.p,{children:"Supported commenting syntax:"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Style"}),(0,i.jsx)(n.th,{children:"Syntax"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"C-style"}),(0,i.jsxs)(n.td,{children:[(0,i.jsx)(n.code,{children:"/* ... */"})," and ",(0,i.jsx)(n.code,{children:"// ..."})]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"JSX-style"}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"{/* ... */}"})})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Bash-style"}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"# ..."})})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"HTML-style"}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"<!-- ... -->"})})]})]})]}),"\n",(0,i.jsxs)(n.p,{children:["We will do our best to infer which set of comment styles to use based on the language, and default to allowing ",(0,i.jsx)(n.em,{children:"all"})," comment styles. If there's a comment style that is not currently supported, we are open to adding them! Pull requests welcome. Note that different comment styles have no semantic difference, only their content does."]}),"\n",(0,i.jsxs)(n.p,{children:["You can set your own background color for highlighted code line in your ",(0,i.jsx)(n.code,{children:"src/css/custom.css"})," which will better fit to your selected syntax highlighting theme. The color given below works for the default highlighting theme (Palenight), so if you are using another theme, you will have to tweak the color accordingly."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-css",metastring:'title="/src/css/custom.css"',children:":root {\n --docusaurus-highlighted-code-line-bg: rgb(72, 77, 91);\n}\n\n/* If you have a different syntax highlighting theme for dark mode. */\n[data-theme='dark'] {\n /* Color which works with dark mode syntax highlighting theme */\n --docusaurus-highlighted-code-line-bg: rgb(100, 100, 100);\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["If you also need to style the highlighted code line in some other way, you can target on ",(0,i.jsx)(n.code,{children:"theme-code-block-highlighted-line"})," CSS class."]}),"\n",(0,i.jsx)(n.h3,{id:"highlighting-with-metadata-string",children:"Highlighting with metadata string"}),"\n",(0,i.jsxs)(n.p,{children:["You can also specify highlighted line ranges within the language meta string (leave a space after the language). To highlight multiple lines, separate the line numbers by commas or use the range syntax to select a chunk of lines. This feature uses the ",(0,i.jsx)(n.code,{children:"parse-number-range"})," library and you can find ",(0,i.jsx)(n.a,{href:"https://www.npmjs.com/package/parse-numeric-range",children:"more syntax"})," on their project details."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",children:"```jsx {1,4-6,11}\nimport React from 'react';\n\nfunction MyComponent(props) {\n if (props.isBar) {\n return <div>Bar</div>;\n }\n\n return <div>Foo</div>;\n}\n\nexport default MyComponent;\n```\n"})}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:"{1,4-6,11}",children:"import React from 'react';\n\nfunction MyComponent(props) {\n if (props.isBar) {\n return <div>Bar</div>;\n }\n\n return <div>Foo</div>;\n}\n\nexport default MyComponent;\n"})})}),"\n",(0,i.jsxs)(n.admonition,{title:"prefer comments",type:"tip",children:[(0,i.jsx)(n.p,{children:"Prefer highlighting with comments where you can. By inlining highlight in the code, you don't have to manually count the lines if your code block becomes long. If you add/remove lines, you also don't have to offset your line ranges."}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-diff",children:"- ```jsx {3}\n+ ```jsx {4}\n function HighlightSomeText(highlight) {\n if (highlight) {\n+ console.log('Highlighted text found');\n return 'This text is highlighted!';\n }\n\n return 'Nothing highlighted';\n }\n ```\n"})}),(0,i.jsx)(n.p,{children:"Below, we will introduce how the magic comment system can be extended to define custom directives and their functionalities. The magic comments would only be parsed if a highlight metastring is not present."})]}),"\n",(0,i.jsx)(n.h3,{id:"custom-magic-comments",children:"Custom magic comments"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"// highlight-next-line"})," and ",(0,i.jsx)(n.code,{children:"// highlight-start"}),' etc. are called "magic comments", because they will be parsed and removed, and their purposes are to add metadata to the next line, or the section that the pair of start- and end-comments enclose.']}),"\n",(0,i.jsxs)(n.p,{children:["You can declare custom magic comments through theme config. For example, you can register another magic comment that adds a ",(0,i.jsx)(n.code,{children:"code-block-error-line"})," class name:"]}),"\n",(0,i.jsxs)(o.A,{children:[(0,i.jsx)(l.A,{value:"docusaurus.config.js",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"export default {\n themeConfig: {\n prism: {\n magicComments: [\n // Remember to extend the default highlight class name as well!\n {\n className: 'theme-code-block-highlighted-line',\n line: 'highlight-next-line',\n block: {start: 'highlight-start', end: 'highlight-end'},\n },\n // highlight-start\n {\n className: 'code-block-error-line',\n line: 'This will error',\n },\n // highlight-end\n ],\n },\n },\n};\n"})})}),(0,i.jsx)(l.A,{value:"src/css/custom.css",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-css",children:".code-block-error-line {\n background-color: #ff000020;\n display: block;\n margin: 0 calc(-1 * var(--ifm-pre-padding));\n padding: 0 var(--ifm-pre-padding);\n border-left: 3px solid #ff000080;\n}\n"})})}),(0,i.jsx)(l.A,{value:"myDoc.md",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",children:"In JavaScript, trying to access properties on `null` will error.\n\n```js\nconst name = null;\n// This will error\nconsole.log(name.toUpperCase());\n// Uncaught TypeError: Cannot read properties of null (reading 'toUpperCase')\n```\n"})})})]}),"\n",(0,i.jsxs)(a.A,{children:[(0,i.jsxs)(n.p,{children:["In JavaScript, trying to access properties on ",(0,i.jsx)(n.code,{children:"null"})," will error."]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"const name = null;\n// This will error\nconsole.log(name.toUpperCase());\n// Uncaught TypeError: Cannot read properties of null (reading 'toUpperCase')\n"})})]}),"\n",(0,i.jsxs)(n.p,{children:["If you use number ranges in metastring (the ",(0,i.jsx)(n.code,{children:"{1,3-4}"})," syntax), Docusaurus will apply the ",(0,i.jsxs)(n.strong,{children:["first ",(0,i.jsx)(n.code,{children:"magicComments"})," entry"]}),"'s class name. This, by default, is ",(0,i.jsx)(n.code,{children:"theme-code-block-highlighted-line"}),", but if you change the ",(0,i.jsx)(n.code,{children:"magicComments"})," config and use a different entry as the first one, the meaning of the metastring range will change as well."]}),"\n",(0,i.jsxs)(n.p,{children:["You can disable the default line highlighting comments with ",(0,i.jsx)(n.code,{children:"magicComments: []"}),". If there's no magic comment config, but Docusaurus encounters a code block containing a metastring range, it will error because there will be no class name to apply\u2014the highlighting class name, after all, is just a magic comment entry."]}),"\n",(0,i.jsxs)(n.p,{children:["Every magic comment entry will contain three keys: ",(0,i.jsx)(n.code,{children:"className"})," (required), ",(0,i.jsx)(n.code,{children:"line"}),", which applies to the directly next line, or ",(0,i.jsx)(n.code,{children:"block"})," (containing ",(0,i.jsx)(n.code,{children:"start"})," and ",(0,i.jsx)(n.code,{children:"end"}),"), which applies to the entire block enclosed by the two comments."]}),"\n",(0,i.jsxs)(n.p,{children:["Using CSS to target the class can already do a lot, but you can unlock the full potential of this feature through ",(0,i.jsx)(n.a,{href:"/docs/swizzling",children:"swizzling"}),"."]}),"\n",(0,i.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,i.jsx)(l.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm run swizzle @docusaurus/theme-classic CodeBlock/Line\n"})})}),(0,i.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn swizzle @docusaurus/theme-classic CodeBlock/Line\n"})})}),(0,i.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm run swizzle @docusaurus/theme-classic CodeBlock/Line\n"})})})]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"Line"})," component will receive the list of class names, based on which you can conditionally render different markup."]}),"\n",(0,i.jsx)(n.h2,{id:"line-numbering",children:"Line numbering"}),"\n",(0,i.jsxs)(n.p,{children:["You can enable line numbering for your code block by using ",(0,i.jsx)(n.code,{children:"showLineNumbers"})," key within the language meta string (don't forget to add space directly before the key)."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",children:"```jsx {1,4-6,11} showLineNumbers\nimport React from 'react';\n\nfunction MyComponent(props) {\n if (props.isBar) {\n return <div>Bar</div>;\n }\n\n return <div>Foo</div>;\n}\n\nexport default MyComponent;\n```\n"})}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:"{1,4-6,11} showLineNumbers",children:"import React from 'react';\n\nfunction MyComponent(props) {\n if (props.isBar) {\n return <div>Bar</div>;\n }\n\n return <div>Foo</div>;\n}\n\nexport default MyComponent;\n"})})}),"\n",(0,i.jsx)(n.h2,{id:"interactive-code-editor",children:"Interactive code editor"}),"\n",(0,i.jsxs)(n.p,{children:["(Powered by ",(0,i.jsx)(n.a,{href:"https://github.com/FormidableLabs/react-live",children:"React Live"}),")"]}),"\n",(0,i.jsxs)(n.p,{children:["You can create an interactive coding editor with the ",(0,i.jsx)(n.code,{children:"@docusaurus/theme-live-codeblock"})," plugin. First, add the plugin to your package."]}),"\n",(0,i.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,i.jsx)(l.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm install --save @docusaurus/theme-live-codeblock\n"})})}),(0,i.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn add @docusaurus/theme-live-codeblock\n"})})}),(0,i.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm add @docusaurus/theme-live-codeblock\n"})})})]}),"\n",(0,i.jsxs)(n.p,{children:["You will also need to add the plugin to your ",(0,i.jsx)(n.code,{children:"docusaurus.config.js"}),"."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:"{3}",children:"export default {\n // ...\n themes: ['@docusaurus/theme-live-codeblock'],\n // ...\n};\n"})}),"\n",(0,i.jsxs)(n.p,{children:["To use the plugin, create a code block with ",(0,i.jsx)(n.code,{children:"live"})," attached to the language meta string."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",children:"```jsx live\nfunction Clock(props) {\n const [date, setDate] = useState(new Date());\n useEffect(() => {\n const timerID = setInterval(() => tick(), 1000);\n\n return function cleanup() {\n clearInterval(timerID);\n };\n });\n\n function tick() {\n setDate(new Date());\n }\n\n return (\n <div>\n <h2>It is {date.toLocaleTimeString()}.</h2>\n </div>\n );\n}\n```\n"})}),"\n",(0,i.jsx)(n.p,{children:"The code block will be rendered as an interactive editor. Changes to the code will reflect on the result panel live."}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:"live",live:!0,children:"function Clock(props) {\n const [date, setDate] = useState(new Date());\n useEffect(() => {\n const timerID = setInterval(() => tick(), 1000);\n\n return function cleanup() {\n clearInterval(timerID);\n };\n });\n\n function tick() {\n setDate(new Date());\n }\n\n return (\n <div>\n <h2>It is {date.toLocaleTimeString()}.</h2>\n </div>\n );\n}\n"})})}),"\n",(0,i.jsx)(n.h3,{id:"imports",children:"Imports"}),"\n",(0,i.jsx)(n.admonition,{title:"react-live and imports",type:"warning",children:(0,i.jsx)(n.p,{children:"It is not possible to import components directly from the react-live code editor, you have to define available imports upfront."})}),"\n",(0,i.jsx)(n.p,{children:"By default, all React imports are available. If you need more imports available, swizzle the react-live scope:"}),"\n",(0,i.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,i.jsx)(l.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm run swizzle @docusaurus/theme-live-codeblock ReactLiveScope -- --eject\n"})})}),(0,i.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn swizzle @docusaurus/theme-live-codeblock ReactLiveScope --eject\n"})})}),(0,i.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm run swizzle @docusaurus/theme-live-codeblock ReactLiveScope --eject\n"})})})]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:'title="src/theme/ReactLiveScope/index.js"',children:"import React from 'react';\n\n// highlight-start\nconst ButtonExample = (props) => (\n <button\n {...props}\n style={{\n backgroundColor: 'white',\n color: 'black',\n border: 'solid red',\n borderRadius: 20,\n padding: 10,\n cursor: 'pointer',\n ...props.style,\n }}\n />\n);\n// highlight-end\n\n// Add react-live imports you need here\nconst ReactLiveScope = {\n React,\n ...React,\n // highlight-next-line\n ButtonExample,\n};\n\nexport default ReactLiveScope;\n"})}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"ButtonExample"})," component is now available to use:"]}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:"live",live:!0,children:"function MyPlayground(props) {\n return (\n <div>\n <ButtonExample onClick={() => alert('hey!')}>Click me</ButtonExample>\n </div>\n );\n}\n"})})}),"\n",(0,i.jsx)(n.h3,{id:"imperative-rendering-noinline",children:"Imperative Rendering (noInline)"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"noInline"})," option should be used to avoid errors when your code spans multiple components or variables."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",children:"```jsx live noInline\nconst project = 'Docusaurus';\n\nconst Greeting = () => <p>Hello {project}!</p>;\n\nrender(<Greeting />);\n```\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Unlike an ordinary interactive code block, when using ",(0,i.jsx)(n.code,{children:"noInline"})," React Live won't wrap your code in an inline function to render it."]}),"\n",(0,i.jsxs)(n.p,{children:["You will need to explicitly call ",(0,i.jsx)(n.code,{children:"render()"})," at the end of your code to display the output."]}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:"live noInline",live:!0,children:'const project = "Docusaurus";\n\nconst Greeting = () => (\n <p>Hello {project}!</p>\n);\n\nrender(\n <Greeting />\n);\n'})})}),"\n",(0,i.jsx)(n.h2,{id:"using-jsx-markup",children:"Using JSX markup in code blocks"}),"\n",(0,i.jsx)(n.p,{children:"Code block in Markdown always preserves its content as plain text, meaning you can't do something like:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:'type EditUrlFunction = (params: {\n // This doesn\'t turn into a link (for good reason!)\n version: <a href="/docs/versioning">Version</a>;\n versionDocsDirPath: string;\n docPath: string;\n permalink: string;\n locale: string;\n}) => string | undefined;\n'})}),"\n",(0,i.jsxs)(n.p,{children:["If you want to embed HTML markup such as anchor links or bold type, you can use the ",(0,i.jsx)(n.code,{children:"<pre>"})," tag, ",(0,i.jsx)(n.code,{children:"<code>"})," tag, or ",(0,i.jsx)(n.code,{children:"<CodeBlock>"})," component."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"<pre>\n <b>Input: </b>1 2 3 4{'\\n'}\n <b>Output: </b>\"366300745\"{'\\n'}\n</pre>\n"})}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsxs)("pre",{children:[(0,i.jsx)("b",{children:"Input: "}),"1 2 3 4\n",(0,i.jsx)("b",{children:"Output: "}),'"366300745"\n']})}),"\n",(0,i.jsx)(n.admonition,{title:"MDX is whitespace insensitive",type:"warning",children:(0,i.jsxs)(n.p,{children:["MDX is in line with JSX behavior: line break characters, even when inside ",(0,i.jsx)(n.code,{children:"<pre>"}),", are turned into spaces. You have to explicitly write the new line character for it to be printed out."]})}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsx)(n.p,{children:"Syntax highlighting only works on plain strings. Docusaurus will not attempt to parse code block content containing JSX children."})}),"\n",(0,i.jsx)(n.h2,{id:"multi-language-support-code-blocks",children:"Multi-language support code blocks"}),"\n",(0,i.jsx)(n.p,{children:"With MDX, you can easily create interactive components within your documentation, for example, to display code in multiple programming languages and switch between them using a tabs component."}),"\n",(0,i.jsxs)(n.p,{children:["Instead of implementing a dedicated component for multi-language support code blocks, we've implemented a general-purpose ",(0,i.jsx)(n.a,{href:"/docs/markdown-features/tabs",children:(0,i.jsx)(n.code,{children:"<Tabs>"})})," component in the classic theme so that you can use it for other non-code scenarios as well."]}),"\n",(0,i.jsxs)(n.p,{children:["The following example is how you can have multi-language code tabs in your docs. Note that the empty lines above and below each language block are ",(0,i.jsx)(n.strong,{children:"intentional"}),". This is a ",(0,i.jsx)(n.a,{href:"/docs/markdown-features/react#markdown-and-jsx-interoperability",children:"current limitation of MDX"}),": you have to leave empty lines around Markdown syntax for the MDX parser to know that it's Markdown syntax and not JSX."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:'import Tabs from \'@theme/Tabs\';\nimport TabItem from \'@theme/TabItem\';\n\n<Tabs>\n<TabItem value="js" label="JavaScript">\n\n```js\nfunction helloWorld() {\n console.log(\'Hello, world!\');\n}\n```\n\n</TabItem>\n<TabItem value="py" label="Python">\n\n```py\ndef hello_world():\n print("Hello, world!")\n```\n\n</TabItem>\n<TabItem value="java" label="Java">\n\n```java\nclass HelloWorld {\n public static void main(String args[]) {\n System.out.println("Hello, World");\n }\n}\n```\n\n</TabItem>\n</Tabs>\n'})}),"\n",(0,i.jsx)(n.p,{children:"And you will get the following:"}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsxs)(o.A,{children:[(0,i.jsx)(l.A,{value:"js",label:"JavaScript",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"function helloWorld() {\n console.log('Hello, world!');\n}\n"})})}),(0,i.jsx)(l.A,{value:"py",label:"Python",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-py",children:'def hello_world():\n print("Hello, world!")\n'})})}),(0,i.jsx)(l.A,{value:"java",label:"Java",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",children:'class HelloWorld {\n public static void main(String args[]) {\n System.out.println("Hello, World");\n }\n}\n'})})})]})}),"\n",(0,i.jsxs)(n.p,{children:["If you have multiple of these multi-language code tabs, and you want to sync the selection across the tab instances, refer to the ",(0,i.jsx)(n.a,{href:"/docs/markdown-features/tabs#syncing-tab-choices",children:"Syncing tab choices section"}),"."]}),"\n",(0,i.jsx)(n.h3,{id:"npm2yarn-remark-plugin",children:"Docusaurus npm2yarn remark plugin"}),"\n",(0,i.jsx)(n.p,{children:"Displaying CLI commands in both npm and Yarn is a very common need, for example:"}),"\n",(0,i.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,i.jsx)(l.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm install @docusaurus/remark-plugin-npm2yarn\n"})})}),(0,i.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn add @docusaurus/remark-plugin-npm2yarn\n"})})}),(0,i.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm add @docusaurus/remark-plugin-npm2yarn\n"})})})]}),"\n",(0,i.jsxs)(n.p,{children:["Docusaurus provides such a utility out of the box, freeing you from using the ",(0,i.jsx)(n.code,{children:"Tabs"})," component every time. To enable this feature, first install the ",(0,i.jsx)(n.code,{children:"@docusaurus/remark-plugin-npm2yarn"})," package as above, and then in ",(0,i.jsx)(n.code,{children:"docusaurus.config.js"}),", for the plugins where you need this feature (doc, blog, pages, etc.), register it in the ",(0,i.jsx)(n.code,{children:"remarkPlugins"})," option. (See ",(0,i.jsx)(n.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-docs#ex-config",children:"Docs configuration"})," for more details on configuration format)"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n // highlight-start\n remarkPlugins: [\n [require('@docusaurus/remark-plugin-npm2yarn'), {sync: true}],\n ],\n // highlight-end\n },\n pages: {\n // highlight-next-line\n remarkPlugins: [require('@docusaurus/remark-plugin-npm2yarn')],\n },\n blog: {\n // highlight-start\n remarkPlugins: [\n [\n require('@docusaurus/remark-plugin-npm2yarn'),\n {converters: ['pnpm']},\n ],\n ],\n // highlight-end\n // ...\n },\n },\n ],\n ],\n};\n"})}),"\n",(0,i.jsxs)(n.p,{children:["And then use it by adding the ",(0,i.jsx)(n.code,{children:"npm2yarn"})," key to the code block:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",children:"```bash npm2yarn\nnpm install @docusaurus/remark-plugin-npm2yarn\n```\n"})}),"\n",(0,i.jsx)(n.h4,{id:"npm2yarn-remark-plugin-configuration",children:"Configuration"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Option"}),(0,i.jsx)(n.th,{children:"Type"}),(0,i.jsx)(n.th,{children:"Default"}),(0,i.jsx)(n.th,{children:"Description"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"sync"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"boolean"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"false"})}),(0,i.jsx)(n.td,{children:"Whether to sync the selected converter across all code blocks."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"converters"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"array"})}),(0,i.jsxs)(n.td,{children:[(0,i.jsx)(n.code,{children:"'yarn'"}),", ",(0,i.jsx)(n.code,{children:"'pnpm'"})]}),(0,i.jsx)(n.td,{children:"The list of converters to use. The order of the converters is important, as the first converter will be used as the default choice."})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"usage-in-jsx",children:"Usage in JSX"}),"\n",(0,i.jsxs)(n.p,{children:["Outside of Markdown, you can use the ",(0,i.jsx)(n.code,{children:"@theme/CodeBlock"})," component to get the same output."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:'import CodeBlock from \'@theme/CodeBlock\';\n\nexport default function MyReactPage() {\n return (\n <div>\n {/* highlight-start */}\n <CodeBlock\n language="jsx"\n title="/src/components/HelloCodeTitle.js"\n showLineNumbers>\n {`function HelloCodeTitle(props) {\n return <h1>Hello, {props.name}</h1>;\n}`}\n </CodeBlock>\n {/* highlight-end */}\n </div>\n );\n}\n'})}),"\n",(0,i.jsx)(a.A,{children:(0,i.jsx)(c.A,{language:"jsx",title:"/src/components/HelloCodeTitle.js",showLineNumbers:!0,children:`function HelloCodeTitle(props) { - return <h1>Hello, {props.name}</h1>; -}`})}),"\n",(0,i.jsxs)(n.p,{children:["The props accepted are ",(0,i.jsx)(n.code,{children:"language"}),", ",(0,i.jsx)(n.code,{children:"title"})," and ",(0,i.jsx)(n.code,{children:"showLineNumbers"}),", in the same way as you write Markdown code blocks."]}),"\n",(0,i.jsxs)(n.p,{children:["Although discouraged, you can also pass in a ",(0,i.jsx)(n.code,{children:"metastring"})," prop like ",(0,i.jsx)(n.code,{children:"metastring='{1-2} title=\"/src/components/HelloCodeTitle.js\" showLineNumbers'"}),", which is how Markdown code blocks are handled under the hood. However, we recommend you ",(0,i.jsx)(n.a,{href:"#highlighting-with-comments",children:"use comments for highlighting lines"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["As ",(0,i.jsx)(n.a,{href:"#using-jsx-markup",children:"previously stated"}),", syntax highlighting is only applied when the children is a simple string."]})]})}function m(e={}){let{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(g,{...e})}):g(e)}}}]); \ No newline at end of file diff --git a/assets/js/0b6cd89a.30dd9627.js b/assets/js/0b6cd89a.30dd9627.js deleted file mode 100644 index d2a4f1abd4..0000000000 --- a/assets/js/0b6cd89a.30dd9627.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[41262],{15995:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(62540);t(63696);var s=t(11750);function i({children:e,hidden:n,className:t}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>y});var r=t(62540),s=t(63696),i=t(11750),o=t(7846),c=t(49519),d=t(96439),l=t(19739),a=t(66904),h=t(79244);function u(e){var n,t;return null!==(t=null===(n=s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function j({value:e,tabValues:n}){return n.some(n=>n.value===e)}var p=t(10709);function x(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function f(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function b({className:e,block:n,selectedValue:t,selectValue:s,tabValues:c}){let d=[],{blockElementScrollPositionUntilNextRender:l}=(0,o.a_)(),a=e=>{let n=e.currentTarget,r=c[d.indexOf(n)].value;r!==t&&(l(n),s(r))},h=e=>{var n,t;let r=null;switch(e.key){case"Enter":a(e);break;case"ArrowRight":{let t=d.indexOf(e.currentTarget)+1;r=null!==(n=d[t])&&void 0!==n?n:d[0];break}case"ArrowLeft":{let n=d.indexOf(e.currentTarget)-1;r=null!==(t=d[n])&&void 0!==t?t:d[d.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.A)("tabs",{"tabs--block":n},e),children:c.map(({value:e,label:n,attributes:s})=>(0,r.jsx)("li",f(x({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>d.push(e),onKeyDown:h,onClick:a},s),{className:(0,i.A)("tabs__item","tabItem_AQgk",null==s?void 0:s.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function g({lazy:e,children:n,selectedValue:t}){let o=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=o.find(e=>e.props.value===t);return e?(0,s.cloneElement)(e,{className:(0,i.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:o.map((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function m(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,i=function(e){let{values:n,children:t}=e;return(0,s.useMemo)(()=>{let e=null!=n?n:u(t).map(({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r}));return!function(e){let n=(0,a.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[o,p]=(0,s.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!j({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:i})),[x,f]=function({queryString:e=!1,groupId:n}){let t=(0,c.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,l.aZ)(r),(0,s.useCallback)(e=>{var n,s;if(!r)return;let i=new URLSearchParams(t.location.search);i.set(r,e),t.replace((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},t.location),s=s={search:i.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(s)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(s)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(s,e))}),n))},[r,t])]}({queryString:t,groupId:r}),[b,g]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[t,r]=(0,h.Dv)(n);return[t,(0,s.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),m=(()=>{let e=null!=x?x:b;return j({value:e,tabValues:i})?e:null})();return(0,d.A)(()=>{m&&p(m)},[m]),{selectedValue:o,selectValue:(0,s.useCallback)(e=>{if(!j({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);p(e),f(e),g(e)},[f,g,i]),tabValues:i}}(e);return(0,r.jsxs)("div",{className:(0,i.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(b,x({},n,e)),(0,r.jsx)(g,x({},n,e))]})}function y(e){let n=(0,p.A)();return(0,r.jsx)(m,f(x({},e),{children:u(e.children)}),String(n))}},40576:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(62540);t(63696);var s=t(10709);function i({children:e,fallback:n}){return(0,s.A)()?(0,r.jsx)(r.Fragment,{children:null==e?void 0:e()}):null!=n?n:null}},59273:(e,n,t)=>{t.d(n,{A:()=>d});var r=t(62540),s=t(63696),i=t(52711),o=t(49519);let c=s.forwardRef(function({name:e,children:n},t){let c=function(e){let n=e;for(;(0,s.isValidElement)(n);)[n]=s.Children.toArray(n.props.children);if("string"!=typeof n)throw Error(`Could not extract APITable row name from JSX tree: -${JSON.stringify(e,null,2)}`);return n}(n),d=e?`${e}-${c}`:c,l=`#${d}`,a=(0,o.W6)();return(0,i.A)().collectAnchor(d),(0,r.jsx)("tr",{id:d,tabIndex:0,ref:a.location.hash===l?t:void 0,onClick:e=>{"A"!==e.target.tagName.toUpperCase()&&a.push(l)},onKeyDown:e=>{"Enter"===e.key&&a.push(l)},children:n.props.children})});function d({children:e,name:n}){if("table"!==e.type)throw Error("Bad usage of APITable component.\nIt is probably that your Markdown table is malformed.\nMake sure to double-check you have the appropriate number of columns for each table row.");let[t,i]=s.Children.toArray(e.props.children),o=(0,s.useRef)(null);(0,s.useEffect)(()=>{var e;null===(e=o.current)||void 0===e||e.focus()},[o]);let d=s.Children.map(i.props.children,e=>(0,r.jsx)(c,{name:n,ref:o,children:e}));return(0,r.jsxs)("table",{className:"apiTable_e8hp",children:[t,(0,r.jsx)("tbody",{children:d})]})}},59433:(e,n,t)=>{t.d(n,{A:()=>h});var r=t(62540);t(63696);var s=t(36372),i=t(69615),o=t(81912),c=t(27446),d=t(15995),l=t(55887);let a=void 0;function h({code:e,pluginName:n,presetOptionName:t}){let h=(0,i.ir)(a).path;return(0,r.jsxs)(c.A,{groupId:"api-config-ex",children:[(0,r.jsxs)(d.A,{value:"preset",label:(0,o.T)({message:"Preset options"}),children:[(0,r.jsx)("p",{children:(0,r.jsx)(o.A,{id:"apiDocs.configTabs.presetOptions.description",values:{presetLink:(0,r.jsx)(s.A,{to:`${h}/using-plugins#docusauruspreset-classic`,children:(0,r.jsx)(o.A,{children:"preset options"})})},children:"If you use a preset, configure this plugin through the {presetLink}:"})}),(0,r.jsx)(l.A,{language:"js",title:"docusaurus.config.js",children:`module.exports = { - presets: [ - [ - '@docusaurus/preset-classic', - { - // highlight-start - ${t}: ${e.replace(/\n/g,"\n ")}, - // highlight-end - }, - ], - ], -};`})]}),(0,r.jsxs)(d.A,{value:"plugin",label:(0,o.T)({message:"Plugin options"}),children:[(0,r.jsx)("p",{children:(0,r.jsx)(o.A,{children:"If you are using a standalone plugin, provide options directly to the plugin:"})}),(0,r.jsx)(l.A,{language:"js",title:"docusaurus.config.js",children:`module.exports = { - plugins: [ - [ - '${n}', - // highlight-start - ${e.replace(/\n/g,"\n ")}, - // highlight-end - ], - ], -};`})]})]})}},55887:(e,n,t)=>{t.d(n,{A:()=>ec});var r,s,i,o={};t.r(o),t.d(o,{ButtonExample:()=>C});var c=t(62540),d=t(63696),l=t(11750),a=t(10709),h=t(55152),u=t(81912),j=t(99468),p=t(40576),x=t(1495),f=t(66659),b=t(25436);function g(){let{prism:e}=(0,b.p)(),{colorMode:n}=(0,f.G)(),t=e.theme,r=e.darkTheme||t;return"dark"===n?r:t}var m=t(43758);function y(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function v({children:e}){return(0,c.jsx)("div",{className:(0,l.A)("playgroundHeader_Tvsk"),children:e})}function O(){return(0,c.jsx)("div",{children:"Loading..."})}function w(){return(0,c.jsx)(p.A,{fallback:(0,c.jsx)(O,{}),children:()=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(m.A,{fallback:e=>(0,c.jsx)(x.MN,y({},e)),children:(0,c.jsx)(h.pA,{})}),(0,c.jsx)(h.p1,{})]})})}function P(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(v,{children:(0,c.jsx)(u.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,c.jsx)("div",{className:"playgroundPreview_mApW",children:(0,c.jsx)(w,{})})]})}function k(){let e=(0,a.A)();return(0,c.jsx)(h.w,{className:"playgroundEditor_TySg"},String(e))}function D(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(v,{children:(0,c.jsx)(u.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,c.jsx)(k,{})]})}let S=e=>`${e};`;function A(e){var n,t,r,s,{children:i,transformCode:o}=e,d=function(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,["children","transformCode"]);let{siteConfig:{themeConfig:l}}=(0,j.A)(),{liveCodeBlock:{playgroundPosition:a}}=l,u=g(),p=null!==(s=null===(r=d.metastring)||void 0===r?void 0:r.includes("noInline"))&&void 0!==s&&s;return(0,c.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,c.jsx)(h.Q,(n=y({code:null==i?void 0:i.replace(/\n$/,""),noInline:p,transformCode:null!=o?o:S,theme:u},d),t=t={children:"top"===a?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(P,{}),(0,c.jsx)(D,{})]}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(D,{}),(0,c.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))})}function T(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function C(e){var n,t;return(0,c.jsx)("button",(n=T({type:"button"},e),t=t={style:T({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let E=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({React:d},d,o);var N=t(12653),_=t(19934),I=t.n(_);let B=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),L=RegExp("\\{(?<range>[\\d,-]+)\\}"),R={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},U=(r=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},R),s=s={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(s)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(s)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(s,e))}),r),M=Object.keys(R);function V(e,n){let t=e.map(e=>{let{start:t,end:r}=U[e];return`(?:${t}\\s*(${n.flatMap(e=>{var n,t;return[e.line,null===(n=e.block)||void 0===n?void 0:n.start,null===(t=e.block)||void 0===t?void 0:t.end].filter(Boolean)}).join("|")})\\s*${r})`}).join("|");return RegExp(`^\\s*(?:${t})\\s*$`)}function F(e){var n,t,{as:r}=e,s=function(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,["as"]);let i=function(e){let n={color:"--prism-color",backgroundColor:"--prism-background-color"},t={};return Object.entries(e.plain).forEach(([e,r])=>{let s=n[e];s&&"string"==typeof r&&(t[s]=r)}),t}(g());return(0,c.jsx)(r,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},s),t=t={style:i,className:(0,l.A)(s.className,"codeBlockContainer_jDV4",N.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let $={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function W({children:e,className:n}){return(0,c.jsx)(F,{as:"pre",tabIndex:0,className:(0,l.A)($.codeBlockStandalone,"thin-scrollbar",n),children:(0,c.jsx)("code",{className:$.codeBlockLines,children:e})})}var G=t(2550);let q={attributes:!0,characterData:!0,childList:!0,subtree:!0};var z=t(27663);let H={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function X(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function Y({line:e,classNames:n,showLineNumbers:t,getLineProps:r,getTokenProps:s}){var i,o;1===e.length&&"\n"===e[0].content&&(e[0].content="");let d=r({line:e,className:(0,l.A)(n,t&&H.codeLine)}),a=e.map((e,n)=>(0,c.jsx)("span",X({},s({token:e})),n));return(0,c.jsxs)("span",(i=X({},d),o=o={children:[t?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:H.codeLineNumber}),(0,c.jsx)("span",{className:H.codeLineContent,children:a})]}):a,(0,c.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(o)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(o)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(o,e))}),i))}var J=t(936);function K(e){var n,t;return(0,c.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,c.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function Q(e){var n,t;return(0,c.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,c.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let Z={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:n}){let[t,r]=(0,d.useState)(!1),s=(0,d.useRef)(void 0),i=(0,d.useCallback)(()=>{(0,J.A)(e),r(!0),s.current=window.setTimeout(()=>{r(!1)},1e3)},[e]);return(0,d.useEffect)(()=>()=>window.clearTimeout(s.current),[]),(0,c.jsx)("button",{type:"button","aria-label":t?(0,u.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,u.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,u.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,l.A)("clean-btn",n,Z.copyButton,t&&Z.copyButtonCopied),onClick:i,children:(0,c.jsxs)("span",{className:Z.copyButtonIcons,"aria-hidden":"true",children:[(0,c.jsx)(K,{className:Z.copyButtonIcon}),(0,c.jsx)(Q,{className:Z.copyButtonSuccessIcon})]})})}function en(e){var n,t;return(0,c.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,c.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let et={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function er({className:e,onClick:n,isEnabled:t}){let r=(0,u.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,c.jsx)("button",{type:"button",onClick:n,className:(0,l.A)("clean-btn",e,t&&et.wordWrapButtonEnabled),"aria-label":r,title:r,children:(0,c.jsx)(en,{className:et.wordWrapButtonIcon,"aria-hidden":"true"})})}function es({children:e,className:n="",metastring:t,title:r,showLineNumbers:s,language:i}){var o,a,h,u;let{prism:{defaultLanguage:j,magicComments:p}}=(0,b.p)(),x=null==(a=null!==(o=null!=i?i:function(e){let n=e.split(" ").find(e=>e.startsWith("language-"));return null==n?void 0:n.replace(/language-/,"")}(n))&&void 0!==o?o:j)?void 0:a.toLowerCase(),f=g(),m=function(){let[e,n]=(0,d.useState)(!1),[t,r]=(0,d.useState)(!1),s=(0,d.useRef)(null),i=(0,d.useCallback)(()=>{let t=s.current.querySelector("code");e?t.removeAttribute("style"):(t.style.whiteSpace="pre-wrap",t.style.overflowWrap="anywhere"),n(e=>!e)},[s,e]),o=(0,d.useCallback)(()=>{let{scrollWidth:e,clientWidth:n}=s.current;r(e>n||s.current.querySelector("code").hasAttribute("style"))},[s]);return!function(e,n){let[t,r]=(0,d.useState)(),s=(0,d.useCallback)(()=>{var n;r(null===(n=e.current)||void 0===n?void 0:n.closest("[role=tabpanel][hidden]"))},[e,r]);(0,d.useEffect)(()=>{s()},[s]),function(e,n,t=q){let r=(0,G._q)(n),s=(0,G.Be)(t);(0,d.useEffect)(()=>{let n=new MutationObserver(r);return e&&n.observe(e,s),()=>n.disconnect()},[e,r,s])}(t,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(n(),s())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(s,o),(0,d.useEffect)(()=>{o()},[e,o]),(0,d.useEffect)(()=>(window.addEventListener("resize",o,{passive:!0}),()=>{window.removeEventListener("resize",o)}),[o]),{codeBlockRef:s,isEnabled:e,isCodeScrollable:t,toggle:i}}(),y=(null!==(u=null==t?void 0:null===(h=t.match(B))||void 0===h?void 0:h.groups.title)&&void 0!==u?u:"")||r,{lineClassNames:v,code:O}=function(e,n){let t=e.replace(/\n$/,""),{language:r,magicComments:s,metastring:i}=n;if(i&&L.test(i)){let e=i.match(L).groups.range;if(0===s.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${i}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let n=s[0].className;return{lineClassNames:Object.fromEntries(I()(e).filter(e=>e>0).map(e=>[e-1,[n]])),code:t}}if(void 0===r)return{lineClassNames:{},code:t};let o=function(e,n){switch(e){case"js":case"javascript":case"ts":case"typescript":return V(["js","jsBlock"],n);case"jsx":case"tsx":return V(["js","jsBlock","jsx"],n);case"html":return V(["js","jsBlock","html"],n);case"python":case"py":case"bash":return V(["bash"],n);case"markdown":case"md":return V(["html","jsx","bash"],n);case"tex":case"latex":case"matlab":return V(["tex"],n);case"lua":case"haskell":case"sql":return V(["lua"],n);case"wasm":return V(["wasm"],n);case"vb":case"vba":case"visual-basic":return V(["vb","rem"],n);case"vbnet":return V(["vbnet","rem"],n);case"batch":return V(["rem"],n);case"basic":return V(["rem","f90"],n);case"fsharp":return V(["js","ml"],n);case"ocaml":case"sml":return V(["ml"],n);case"fortran":return V(["f90"],n);case"cobol":return V(["cobol"],n);default:return V(M,n)}}(r,s),c=t.split("\n"),d=Object.fromEntries(s.map(e=>[e.className,{start:0,range:""}])),l=Object.fromEntries(s.filter(e=>e.line).map(({className:e,line:n})=>[n,e])),a=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:n})=>[n.start,e])),h=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:n})=>[n.end,e]));for(let e=0;e<c.length;){let n=c[e].match(o);if(!n){e+=1;continue}let t=n.slice(1).find(e=>void 0!==e);l[t]?d[l[t]].range+=`${e},`:a[t]?d[a[t]].start=e:h[t]&&(d[h[t]].range+=`${d[h[t]].start}-${e-1},`),c.splice(e,1)}t=c.join("\n");let u={};return Object.entries(d).forEach(([e,{range:n}])=>{I()(n).forEach(n=>{var t;null!==(t=u[n])&&void 0!==t||(u[n]=[]),u[n].push(e)})}),{lineClassNames:u,code:t}}(e,{metastring:t,language:x,magicComments:p}),w=null!=s?s:!!(null==t?void 0:t.includes("showLineNumbers"));return(0,c.jsxs)(F,{as:"div",className:(0,l.A)(n,x&&!n.includes(`language-${x}`)&&`language-${x}`),children:[y&&(0,c.jsx)("div",{className:$.codeBlockTitle,children:y}),(0,c.jsxs)("div",{className:$.codeBlockContent,children:[(0,c.jsx)(z.f4,{theme:f,code:O,language:null!=x?x:"text",children:({className:e,style:n,tokens:t,getLineProps:r,getTokenProps:s})=>(0,c.jsx)("pre",{tabIndex:0,ref:m.codeBlockRef,className:(0,l.A)(e,$.codeBlock,"thin-scrollbar"),style:n,children:(0,c.jsx)("code",{className:(0,l.A)($.codeBlockLines,w&&$.codeBlockLinesWithNumbering),children:t.map((e,n)=>(0,c.jsx)(Y,{line:e,getLineProps:r,getTokenProps:s,classNames:v[n],showLineNumbers:w},n))})})}),(0,c.jsxs)("div",{className:$.buttonGroup,children:[(m.isEnabled||m.isCodeScrollable)&&(0,c.jsx)(er,{className:$.codeButton,onClick:()=>m.toggle(),isEnabled:m.isEnabled}),(0,c.jsx)(ee,{className:$.codeButton,code:O})]})]})]})}function ei(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}let eo=(i=function(e){var n,t,{children:r}=e,s=function(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,["children"]);let i=(0,a.A)(),o=d.Children.toArray(r).some(e=>(0,d.isValidElement)(e))?r:Array.isArray(r)?r.join(""):r,l="string"==typeof o?es:W;return(0,c.jsx)(l,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},s),t=t={children:o},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n),String(i))},function(e){return e.live?(0,c.jsx)(A,ei({scope:E},e)):(0,c.jsx)(i,ei({},e))});function ec(e){return(0,c.jsx)(eo,function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},e))}},24583:(e,n,t)=>{t.d(n,{Ay:()=>c,RM:()=>i});var r=t(62540),s=t(43023);let i=[{value:"Tags File",id:"tags-file",level:2},{value:"Types",id:"tags-file-types",level:3},{value:"Example",id:"tags-file-example",level:3}];function o(e){let n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"tags-file",children:"Tags File"}),"\n",(0,r.jsxs)(n.p,{children:["Use the ",(0,r.jsxs)(n.a,{href:"#tags",children:[(0,r.jsx)(n.code,{children:"tags"})," plugin option"]})," to configure the path of a YAML tags file."]}),"\n",(0,r.jsxs)(n.p,{children:["By convention, the plugin will look for a ",(0,r.jsx)(n.code,{children:"tags.yml"})," file at the root of your content folder(s)."]}),"\n",(0,r.jsxs)(n.p,{children:["This file can contain a list of predefined tags. You can reference these tags by their keys in Markdown files thanks to the ",(0,r.jsxs)(n.a,{href:"#markdown-front-matter",children:[(0,r.jsx)(n.code,{children:"tags"})," front matter"]}),"."]}),"\n",(0,r.jsx)(n.admonition,{title:"Keeping tags consistent",type:"tip",children:(0,r.jsxs)(n.p,{children:["Using a tags file, you can ensure that your tags usage is consistent across your plugin content set. Use the ",(0,r.jsx)(n.a,{href:"#onInlineTags",children:(0,r.jsx)(n.code,{children:"onInlineTags: 'throw'"})})," plugin option to enforce this consistency and prevent usage of inline tags declared on the fly."]})}),"\n",(0,r.jsx)(n.h3,{id:"tags-file-types",children:"Types"}),"\n",(0,r.jsx)(n.p,{children:"The YAML content of the provided tags file should respect the following shape:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:"type Tag = {\n label?: string; // Tag display label\n permalink?: string; // Tag URL pathname segment\n description?: string; // Tag description displayed in the tag page\n};\n\ntype TagsFileInput = Record<string, Partial<Tag> | null>;\n"})}),"\n",(0,r.jsx)(n.h3,{id:"tags-file-example",children:"Example"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yml",metastring:'title="tags.yml"',children:"releases:\n label: 'Product releases'\n permalink: '/product-releases'\n description: 'Content related to product releases.'\n\n# A partial tag definition is also valid\nannouncements:\n label: 'Announcements'\n\n# An empty tag definition is also valid\n# Other attributes will be inferred from the key\nemptyTag:\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="content.md"',children:"---\ntags: [releases, announcements, emptyTag]\n---\n\n# Title\n\nContent\n"})})]})}function c(e={}){let{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},14243:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>j,contentTitle:()=>u,default:()=>f,frontMatter:()=>h,metadata:()=>r,toc:()=>p});let r=JSON.parse('{"id":"api/plugins/plugin-content-docs","title":"\u{1F4E6} plugin-content-docs","description":"Provides the Docs functionality and is the default docs plugin for Docusaurus.","source":"@site/docs/api/plugins/plugin-content-docs.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-content-docs","permalink":"/docs/api/plugins/@docusaurus/plugin-content-docs","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-content-docs.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1,"slug":"/api/plugins/@docusaurus/plugin-content-docs"},"sidebar":"api","previous":{"title":"Plugins overview","permalink":"/docs/api/plugins"},"next":{"title":"\u{1F4E6} plugin-content-blog","permalink":"/docs/api/plugins/@docusaurus/plugin-content-blog"}}');var s=t(62540),i=t(43023),o=t(27446),c=t(15995),d=t(59273),l=t(59433),a=t(24583);let h={sidebar_position:1,slug:"/api/plugins/@docusaurus/plugin-content-docs"},u="\u{1F4E6} plugin-content-docs",j={},p=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Types",id:"types",level:3},{value:"<code>EditUrlFunction</code>",id:"EditUrlFunction",level:4},{value:"<code>PrefixParser</code>",id:"PrefixParser",level:4},{value:"<code>SidebarGenerator</code>",id:"SidebarGenerator",level:4},{value:"<code>VersionsConfig</code>",id:"VersionsConfig",level:4},{value:"Example configuration",id:"ex-config",level:3},{value:"Markdown front matter",id:"markdown-front-matter",level:2},...a.RM,{value:"i18n",id:"i18n",level:2},{value:"Translation files location",id:"translation-files-location",level:3},{value:"Example file-system structure",id:"example-file-system-structure",level:3}];function x(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"-plugin-content-docs",children:"\u{1F4E6} plugin-content-docs"})}),"\n","\n",(0,s.jsxs)(n.p,{children:["Provides the ",(0,s.jsx)(n.a,{href:"/docs/docs-introduction",children:"Docs"})," functionality and is the default docs plugin for Docusaurus."]}),"\n",(0,s.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,s.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,s.jsx)(c.A,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm install --save @docusaurus/plugin-content-docs\n"})})}),(0,s.jsx)(c.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn add @docusaurus/plugin-content-docs\n"})})}),(0,s.jsx)(c.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm add @docusaurus/plugin-content-docs\n"})})})]}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsxs)(n.p,{children:["If you use the preset ",(0,s.jsx)(n.code,{children:"@docusaurus/preset-classic"}),", you don't need to install this plugin as a dependency."]}),(0,s.jsxs)(n.p,{children:["You can configure this plugin through the ",(0,s.jsx)(n.a,{href:"/docs/using-plugins#docusauruspreset-classic",children:"preset options"}),"."]})]}),"\n",(0,s.jsx)(n.h2,{id:"configuration",children:"Configuration"}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(d.A,{children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"path"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'docs'"})}),(0,s.jsx)(n.td,{children:"Path to the docs content directory on the file system, relative to site directory."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"editUrl"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:["string | ",(0,s.jsx)(n.a,{href:"#EditUrlFunction",children:"EditUrlFunction"})]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Base URL to edit your site. The final URL is computed by ",(0,s.jsx)(n.code,{children:"editUrl + relativeDocPath"}),". Using a function allows more nuanced control for each file. Omitting this variable entirely will disable edit links."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"editLocalizedFiles"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["The edit URL will target the localized file, instead of the original unlocalized file. Ignored when ",(0,s.jsx)(n.code,{children:"editUrl"})," is a function."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"editCurrentVersion"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["The edit URL will always target the current version doc instead of older versions. Ignored when ",(0,s.jsx)(n.code,{children:"editUrl"})," is a function."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"routeBasePath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'docs'"})}),(0,s.jsxs)(n.td,{children:["URL route for the docs section of your site. ",(0,s.jsx)(n.strong,{children:"DO NOT"})," include a trailing slash. Use ",(0,s.jsx)(n.code,{children:"/"})," for shipping docs without base path."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"tagsBasePath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'tags'"})}),(0,s.jsxs)(n.td,{children:["URL route for the tags list page of your site. It is prepended to the ",(0,s.jsx)(n.code,{children:"routeBasePath"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"include"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"['**/*.{md,mdx}']"})}),(0,s.jsx)(n.td,{children:"Array of glob patterns matching Markdown files to be built, relative to the content path."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"exclude"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"See example configuration"})}),(0,s.jsxs)(n.td,{children:["Array of glob patterns matching Markdown files to be excluded. Serves as refinement based on the ",(0,s.jsx)(n.code,{children:"include"})," option."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebarPath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"false | string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Path to sidebar configuration. Use ",(0,s.jsx)(n.code,{children:"false"})," to disable sidebars, or ",(0,s.jsx)(n.code,{children:"undefined"})," to create a fully autogenerated sidebar."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebarCollapsible"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Whether sidebar categories are collapsible by default. See also ",(0,s.jsx)(n.a,{href:"/docs/sidebar/items#collapsible-categories",children:"Collapsible categories"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebarCollapsed"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Whether sidebar categories are collapsed by default. See also ",(0,s.jsx)(n.a,{href:"/docs/sidebar/items#expanded-categories-by-default",children:"Expanded categories by default"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebarItemsGenerator"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:(0,s.jsx)(n.a,{href:"#SidebarGenerator",children:"SidebarGenerator"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"Omitted"})}),(0,s.jsxs)(n.td,{children:["Function used to replace the sidebar items of type ",(0,s.jsx)(n.code,{children:"'autogenerated'"})," with real sidebar items (docs, categories, links...). See also ",(0,s.jsx)(n.a,{href:"/docs/sidebar/autogenerated#customize-the-sidebar-items-generator",children:"Customize the sidebar items generator"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"numberPrefixParser"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:["boolean | ",(0,s.jsx)(n.a,{href:"#PrefixParser",children:"PrefixParser"})]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"Omitted"})}),(0,s.jsxs)(n.td,{children:["Custom parsing logic to extract number prefixes from file names. Use ",(0,s.jsx)(n.code,{children:"false"})," to disable this behavior and leave the docs untouched, and ",(0,s.jsx)(n.code,{children:"true"})," to use the default parser. See also ",(0,s.jsx)(n.a,{href:"/docs/sidebar/autogenerated#using-number-prefixes",children:"Using number prefixes"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docsRootComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/DocsRoot'"})}),(0,s.jsx)(n.td,{children:"Parent component of all the docs plugin pages (including all versions). Stays mounted when navigation between docs pages and versions."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docVersionRootComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/DocVersionLayout'"})}),(0,s.jsx)(n.td,{children:"Parent component of all docs pages of an individual version (doc pages with sidebars, tags pages). Stays mounted when navigation between pages of that specific version."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docRootComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/DocRoot'"})}),(0,s.jsx)(n.td,{children:"Parent component of all doc pages with sidebars (regular docs pages, category generated index pages). Stays mounted when navigation between such pages."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docItemComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/DocItem'"})}),(0,s.jsx)(n.td,{children:"Main doc container, with TOC, pagination, etc."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docTagsListComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/DocTagsListPage'"})}),(0,s.jsx)(n.td,{children:"Root component of the tags list page"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docTagDocListComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/DocTagDocListPage'"})}),(0,s.jsx)(n.td,{children:'Root component of the "docs containing tag X" page.'})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docCategoryGeneratedIndexComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/DocCategoryGeneratedIndexPage'"})}),(0,s.jsx)(n.td,{children:"Root component of the generated category index page."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"remarkPlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Remark plugins passed to MDX."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"rehypePlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Rehype plugins passed to MDX."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"rehypePlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Recma plugins passed to MDX."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"beforeDefaultRemarkPlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Custom Remark plugins passed to MDX before the default Docusaurus Remark plugins."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"beforeDefaultRehypePlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Custom Rehype plugins passed to MDX before the default Docusaurus Rehype plugins."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"showLastUpdateAuthor"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Whether to display the author who last updated the doc."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"showLastUpdateTime"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Whether to display the last date the doc was updated. This requires access to git history during the build, so will not work correctly with shallow clones (a common default for CI systems). With GitHub ",(0,s.jsx)(n.code,{children:"actions/checkout"}),", use",(0,s.jsx)(n.code,{children:"fetch-depth: 0"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"breadcrumbs"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"Enable or disable the breadcrumbs on doc pages."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"disableVersioning"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Explicitly disable versioning even when multiple versions exist. This will make the site only include the current version. Will error if ",(0,s.jsx)(n.code,{children:"includeCurrentVersion: false"})," and ",(0,s.jsx)(n.code,{children:"disableVersioning: true"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"includeCurrentVersion"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"Include the current version of your docs."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"lastVersion"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsxs)(n.td,{children:["First version in ",(0,s.jsx)(n.code,{children:"versions.json"})]}),(0,s.jsx)(n.td,{children:"The version navigated to in priority and displayed by default for docs navbar items."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"onlyIncludeVersions"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"All versions available"}),(0,s.jsx)(n.td,{children:"Only include a subset of all available versions."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"versions"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:(0,s.jsx)(n.a,{href:"#VersionsConfig",children:"VersionsConfig"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{}"})}),(0,s.jsx)(n.td,{children:"Independent customization of each version's properties."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"tags"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string | false | null | undefined"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"tags.yml"})}),(0,s.jsx)(n.td,{children:"Path to a YAML file listing pre-defined tags. Relative to the docs version content directories."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"onInlineTags"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'ignore' | 'log' | 'warn' | 'throw'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"warn"})}),(0,s.jsxs)(n.td,{children:["The plugin behavior when docs contain inline tags (not appearing in the list of pre-defined tags, usually ",(0,s.jsx)(n.code,{children:"docs/tags.yml"}),")."]})]})]})]})}),"\n",(0,s.jsx)(n.h3,{id:"types",children:"Types"}),"\n",(0,s.jsx)(n.h4,{id:"EditUrlFunction",children:(0,s.jsx)(n.code,{children:"EditUrlFunction"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type EditUrlFunction = (params: {\n version: string;\n versionDocsDirPath: string;\n docPath: string;\n permalink: string;\n locale: string;\n}) => string | undefined;\n"})}),"\n",(0,s.jsx)(n.h4,{id:"PrefixParser",children:(0,s.jsx)(n.code,{children:"PrefixParser"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type PrefixParser = (filename: string) => {\n filename: string;\n numberPrefix?: number;\n};\n"})}),"\n",(0,s.jsx)(n.h4,{id:"SidebarGenerator",children:(0,s.jsx)(n.code,{children:"SidebarGenerator"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type SidebarGenerator = (generatorArgs: {\n /** The sidebar item with type \"autogenerated\" to be transformed. */\n item: {type: 'autogenerated'; dirName: string};\n /** Useful metadata for the version this sidebar belongs to. */\n version: {contentPath: string; versionName: string};\n /** All the docs of that version (unfiltered). */\n docs: {\n id: string;\n title: string;\n frontMatter: DocFrontMatter & Record<string, unknown>;\n source: string;\n sourceDirName: string;\n sidebarPosition?: number | undefined;\n }[];\n /** Number prefix parser configured for this plugin. */\n numberPrefixParser: PrefixParser;\n /** The default category index matcher which you can override. */\n isCategoryIndex: CategoryIndexMatcher;\n /**\n * key is the path relative to the doc content directory, value is the\n * category metadata file's content.\n */\n categoriesMetadata: {[filePath: string]: CategoryMetadata};\n /**\n * Useful to re-use/enhance the default sidebar generation logic from\n * Docusaurus.\n */\n defaultSidebarItemsGenerator: SidebarGenerator;\n // Returns an array of sidebar items \u2014 same as what you can declare in\n // sidebars.js, except for shorthands. See https://docusaurus.io/docs/sidebar/items\n}) => Promise<SidebarItem[]>;\n\ntype CategoryIndexMatcher = (param: {\n /** The file name, without extension */\n fileName: string;\n /**\n * The list of directories, from lowest level to highest.\n * If there's no dir name, directories is ['.']\n */\n directories: string[];\n /** The extension, with a leading dot */\n extension: string;\n}) => boolean;\n"})}),"\n",(0,s.jsx)(n.h4,{id:"VersionsConfig",children:(0,s.jsx)(n.code,{children:"VersionsConfig"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type VersionConfig = {\n /**\n * The base path of the version, will be appended to `baseUrl` +\n * `routeBasePath`.\n */\n path?: string;\n /** The label of the version to be used in badges, dropdowns, etc. */\n label?: string;\n /** The banner to show at the top of a doc of that version. */\n banner?: 'none' | 'unreleased' | 'unmaintained';\n /** Show a badge with the version label at the top of each doc. */\n badge?: boolean;\n /** Prevents search engines from indexing this version */\n noIndex?: boolean;\n /** Add a custom class name to the <html> element of each doc */\n className?: string;\n};\n\ntype VersionsConfig = {[versionName: string]: VersionConfig};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,s.jsx)(n.p,{children:"You can configure this plugin through preset options or plugin options."}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsx)(n.p,{children:"Most Docusaurus users configure this plugin through the preset options."})}),"\n","\n",(0,s.jsx)(l.A,{pluginName:"@docusaurus/plugin-content-docs",presetOptionName:"docs",code:"{\n path: 'docs',\n breadcrumbs: true,\n // Simple use-case: string editUrl\n // editUrl: 'https://github.com/facebook/docusaurus/edit/main/website/',\n // Advanced use-case: functional editUrl\n editUrl: ({versionDocsDirPath, docPath}) =>\n `https://github.com/facebook/docusaurus/edit/main/website/${versionDocsDirPath}/${docPath}`,\n editLocalizedFiles: false,\n editCurrentVersion: false,\n routeBasePath: 'docs',\n include: ['**/*.md', '**/*.mdx'],\n exclude: [\n '**/_*.{js,jsx,ts,tsx,md,mdx}',\n '**/_*/**',\n '**/*.test.{js,jsx,ts,tsx}',\n '**/__tests__/**',\n ],\n sidebarPath: 'sidebars.js',\n async sidebarItemsGenerator({\n defaultSidebarItemsGenerator,\n numberPrefixParser,\n item,\n version,\n docs,\n isCategoryIndex,\n }) {\n // Use the provided data to generate a custom sidebar slice\n return [\n {type: 'doc', id: 'intro'},\n {\n type: 'category',\n label: 'Tutorials',\n items: [\n {type: 'doc', id: 'tutorial1'},\n {type: 'doc', id: 'tutorial2'},\n ],\n },\n ];\n },\n numberPrefixParser(filename) {\n // Implement your own logic to extract a potential number prefix\n const numberPrefix = findNumberPrefix(filename);\n // Prefix found: return it with the cleaned filename\n if (numberPrefix) {\n return {\n numberPrefix,\n filename: filename.replace(prefix, ''),\n };\n }\n // No number prefix found\n return {numberPrefix: undefined, filename};\n },\n docsRootComponent: '@theme/DocsRoot',\n docVersionRootComponent: '@theme/DocVersionRoot',\n docRootComponent: '@theme/DocRoot',\n docItemComponent: '@theme/DocItem',\n remarkPlugins: [require('./my-remark-plugin')],\n rehypePlugins: [],\n beforeDefaultRemarkPlugins: [],\n beforeDefaultRehypePlugins: [],\n showLastUpdateAuthor: false,\n showLastUpdateTime: false,\n disableVersioning: false,\n includeCurrentVersion: true,\n lastVersion: undefined,\n versions: {\n current: {\n label: 'Android SDK v2.0.0 (WIP)',\n path: 'android-2.0.0',\n banner: 'none',\n },\n '1.0.0': {\n label: 'Android SDK v1.0.0',\n path: 'android-1.0.0',\n banner: 'unmaintained',\n },\n },\n onlyIncludeVersions: ['current', '1.0.0', '2.0.0'],\n}"}),"\n",(0,s.jsx)(n.h2,{id:"markdown-front-matter",children:"Markdown front matter"}),"\n",(0,s.jsxs)(n.p,{children:["Markdown documents can use the following Markdown ",(0,s.jsx)(n.a,{href:"/docs/markdown-features#front-matter",children:"front matter"})," metadata fields, enclosed by a line ",(0,s.jsx)(n.code,{children:"---"})," on either side."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(d.A,{children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"id"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"file path (including folders, without the extension)"}),(0,s.jsx)(n.td,{children:"A unique document ID."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"title"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsxs)(n.td,{children:["Markdown title or ",(0,s.jsx)(n.code,{children:"id"})]}),(0,s.jsx)(n.td,{children:"The text title of your document. Used for the page metadata and as a fallback value in multiple places (sidebar, next/previous buttons...). Automatically added at the top of your doc if it does not contain any Markdown title."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"pagination_label"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"sidebar_label"})," or ",(0,s.jsx)(n.code,{children:"title"})]}),(0,s.jsx)(n.td,{children:"The text used in the document next/previous buttons for this document."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebar_label"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"title"})}),(0,s.jsx)(n.td,{children:"The text shown in the document sidebar for this document."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebar_position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"number"})}),(0,s.jsx)(n.td,{children:"Default ordering"}),(0,s.jsxs)(n.td,{children:["Controls the position of a doc inside the generated sidebar slice when using ",(0,s.jsx)(n.code,{children:"autogenerated"})," sidebar items. See also ",(0,s.jsx)(n.a,{href:"/docs/sidebar/autogenerated#autogenerated-sidebar-metadata",children:"Autogenerated sidebar metadata"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebar_class_name"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Gives the corresponding sidebar label a special class name when using autogenerated sidebars."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebar_custom_props"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"object"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Assign ",(0,s.jsx)(n.a,{href:"/docs/sidebar#passing-custom-props",children:"custom props"})," to the sidebar item referencing this doc"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"displayed_sidebar"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Force the display of a given sidebar when browsing the current document. Read the ",(0,s.jsx)(n.a,{href:"/docs/sidebar/multiple-sidebars",children:"multiple sidebars guide"})," for details."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"hide_title"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Whether to hide the title at the top of the doc. It only hides a title declared through the front matter, and have no effect on a Markdown title at the top of your document."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"hide_table_of_contents"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Whether to hide the table of contents to the right."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"toc_min_heading_level"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"number"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"2"})}),(0,s.jsx)(n.td,{children:"The minimum heading level shown in the table of contents. Must be between 2 and 6 and lower or equal to the max value."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"toc_max_heading_level"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"number"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"3"})}),(0,s.jsx)(n.td,{children:"The max heading level shown in the table of contents. Must be between 2 and 6."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"pagination_next"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"string | null"})}),(0,s.jsx)(n.td,{children:"Next doc in the sidebar"}),(0,s.jsxs)(n.td,{children:['The ID of the documentation you want the "Next" pagination to link to. Use ',(0,s.jsx)(n.code,{children:"null"}),' to disable showing "Next" for this page.']})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"pagination_prev"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"string | null"})}),(0,s.jsx)(n.td,{children:"Previous doc in the sidebar"}),(0,s.jsxs)(n.td,{children:['The ID of the documentation you want the "Previous" pagination to link to. Use ',(0,s.jsx)(n.code,{children:"null"}),' to disable showing "Previous" for this page.']})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"parse_number_prefixes"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"numberPrefixParser"})," plugin option"]}),(0,s.jsxs)(n.td,{children:["Whether number prefix parsing is disabled on this doc. See also ",(0,s.jsx)(n.a,{href:"/docs/sidebar/autogenerated#using-number-prefixes",children:"Using number prefixes"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"custom_edit_url"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"string | null"})}),(0,s.jsxs)(n.td,{children:["Computed using the ",(0,s.jsx)(n.code,{children:"editUrl"})," plugin option"]}),(0,s.jsxs)(n.td,{children:["The URL for editing this document. Use ",(0,s.jsx)(n.code,{children:"null"}),' to disable showing "Edit this page" for this page.']})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"keywords"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Keywords meta tag for the document page, for search engines."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"description"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The first line of Markdown content"}),(0,s.jsxs)(n.td,{children:["The description of your document, which will become the ",(0,s.jsx)(n.code,{children:'<meta name="description" content="..."/>'})," and ",(0,s.jsx)(n.code,{children:'<meta property="og:description" content="..."/>'})," in ",(0,s.jsx)(n.code,{children:"<head>"}),", used by search engines."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"image"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Cover or thumbnail image that will be used as the ",(0,s.jsx)(n.code,{children:'<meta property="og:image" content="..."/>'})," in the ",(0,s.jsx)(n.code,{children:"<head>"}),", enhancing link previews on social media and messaging platforms."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"slug"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"File path"}),(0,s.jsxs)(n.td,{children:["Allows to customize the document URL (",(0,s.jsx)(n.code,{children:"/<routeBasePath>/<slug>"}),"). Support multiple patterns: ",(0,s.jsx)(n.code,{children:"slug: my-doc"}),", ",(0,s.jsx)(n.code,{children:"slug: /my/path/myDoc"}),", ",(0,s.jsx)(n.code,{children:"slug: /"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"tags"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Tag[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["A list of strings or objects of two string fields ",(0,s.jsx)(n.code,{children:"label"})," and ",(0,s.jsx)(n.code,{children:"permalink"})," to tag to your docs. Strings can be a reference to keys of a ",(0,s.jsx)(n.a,{href:"#tags-file",children:"tags file"})," (usually ",(0,s.jsx)(n.code,{children:"tags.yml"}),")"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"draft"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Draft documents will only be available during development."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"unlisted"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:'Unlisted documents will be available in both development and production. They will be "hidden" in production, not indexed, excluded from sitemaps, and can only be accessed by users having a direct link.'})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"last_update"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"FrontMatterLastUpdate"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Allows overriding the last update author/date. Date can be any ",(0,s.jsx)(n.a,{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse",children:"parsable date string"}),"."]})]})]})]})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type FrontMatterLastUpdate = {date?: string; author?: string};\n\ntype Tag = string | {label: string; permalink: string};\n"})}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-md",children:"---\nid: doc-markdown\ntitle: Docs Markdown Features\nhide_title: false\nhide_table_of_contents: false\nsidebar_label: Markdown\nsidebar_position: 3\npagination_label: Markdown features\ncustom_edit_url: https://github.com/facebook/docusaurus/edit/main/docs/api-doc-markdown.md\ndescription: How do I find you when I cannot solve this problem\nkeywords:\n - docs\n - docusaurus\ntags: [docusaurus]\nimage: https://i.imgur.com/mErPwqL.png\nslug: /myDoc\nlast_update:\n date: 1/1/2000\n author: custom author name\n---\n\n# Markdown Features\n\nMy Document Markdown content\n"})}),"\n","\n",(0,s.jsx)(a.Ay,{}),"\n",(0,s.jsx)(n.h2,{id:"i18n",children:"i18n"}),"\n",(0,s.jsxs)(n.p,{children:["Read the ",(0,s.jsx)(n.a,{href:"/docs/i18n/introduction",children:"i18n introduction"})," first."]}),"\n",(0,s.jsx)(n.h3,{id:"translation-files-location",children:"Translation files location"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Base path"}),": ",(0,s.jsx)(n.code,{children:"website/i18n/[locale]/docusaurus-plugin-content-docs"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Multi-instance path"}),": ",(0,s.jsx)(n.code,{children:"website/i18n/[locale]/docusaurus-plugin-content-docs-[pluginId]"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"JSON files"}),": extracted with ",(0,s.jsx)(n.a,{href:"/docs/cli#docusaurus-write-translations-sitedir",children:(0,s.jsx)(n.code,{children:"docusaurus write-translations"})})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Markdown files"}),": ",(0,s.jsx)(n.code,{children:"website/i18n/[locale]/docusaurus-plugin-content-docs/[versionName]"})]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"example-file-system-structure",children:"Example file-system structure"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"website/i18n/[locale]/docusaurus-plugin-content-docs\n\u2502\n\u2502 # translations for website/docs\n\u251C\u2500\u2500 current\n\u2502 \u251C\u2500\u2500 api\n\u2502 \u2502 \u2514\u2500\u2500 config.md\n\u2502 \u2514\u2500\u2500 getting-started.md\n\u251C\u2500\u2500 current.json\n\u2502\n\u2502 # translations for website/versioned_docs/version-1.0.0\n\u251C\u2500\u2500 version-1.0.0\n\u2502 \u251C\u2500\u2500 api\n\u2502 \u2502 \u2514\u2500\u2500 config.md\n\u2502 \u2514\u2500\u2500 getting-started.md\n\u2514\u2500\u2500 version-1.0.0.json\n"})})]})}function f(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(x,{...e})}):x(e)}}}]); \ No newline at end of file diff --git a/assets/js/0b6cd89a.d14c03e2.js b/assets/js/0b6cd89a.d14c03e2.js new file mode 100644 index 0000000000..6e9bb51a17 --- /dev/null +++ b/assets/js/0b6cd89a.d14c03e2.js @@ -0,0 +1,22 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[41262],{15995:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(62540);t(63696);var s=t(11750);function i({children:e,hidden:n,className:t}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>y});var r=t(62540),s=t(63696),i=t(11750),o=t(7846),c=t(49519),d=t(96439),l=t(19739),a=t(66904),h=t(79244);function u(e){var n,t;return null!==(t=null===(n=s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function j({value:e,tabValues:n}){return n.some(n=>n.value===e)}var p=t(10709);function x(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function f(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function b({className:e,block:n,selectedValue:t,selectValue:s,tabValues:c}){let d=[],{blockElementScrollPositionUntilNextRender:l}=(0,o.a_)(),a=e=>{let n=e.currentTarget,r=c[d.indexOf(n)].value;r!==t&&(l(n),s(r))},h=e=>{var n,t;let r=null;switch(e.key){case"Enter":a(e);break;case"ArrowRight":{let t=d.indexOf(e.currentTarget)+1;r=null!==(n=d[t])&&void 0!==n?n:d[0];break}case"ArrowLeft":{let n=d.indexOf(e.currentTarget)-1;r=null!==(t=d[n])&&void 0!==t?t:d[d.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.A)("tabs",{"tabs--block":n},e),children:c.map(({value:e,label:n,attributes:s})=>(0,r.jsx)("li",f(x({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>d.push(e),onKeyDown:h,onClick:a},s),{className:(0,i.A)("tabs__item","tabItem_AQgk",null==s?void 0:s.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function g({lazy:e,children:n,selectedValue:t}){let o=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=o.find(e=>e.props.value===t);return e?(0,s.cloneElement)(e,{className:(0,i.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:o.map((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function m(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,i=function(e){let{values:n,children:t}=e;return(0,s.useMemo)(()=>{let e=null!=n?n:u(t).map(({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r}));return!function(e){let n=(0,a.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[o,p]=(0,s.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!j({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:i})),[x,f]=function({queryString:e=!1,groupId:n}){let t=(0,c.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,l.aZ)(r),(0,s.useCallback)(e=>{var n,s;if(!r)return;let i=new URLSearchParams(t.location.search);i.set(r,e),t.replace((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},t.location),s=s={search:i.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(s)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(s)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(s,e))}),n))},[r,t])]}({queryString:t,groupId:r}),[b,g]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[t,r]=(0,h.Dv)(n);return[t,(0,s.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),m=(()=>{let e=null!=x?x:b;return j({value:e,tabValues:i})?e:null})();return(0,d.A)(()=>{m&&p(m)},[m]),{selectedValue:o,selectValue:(0,s.useCallback)(e=>{if(!j({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);p(e),f(e),g(e)},[f,g,i]),tabValues:i}}(e);return(0,r.jsxs)("div",{className:(0,i.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(b,x({},n,e)),(0,r.jsx)(g,x({},n,e))]})}function y(e){let n=(0,p.A)();return(0,r.jsx)(m,f(x({},e),{children:u(e.children)}),String(n))}},40576:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(62540);t(63696);var s=t(10709);function i({children:e,fallback:n}){return(0,s.A)()?(0,r.jsx)(r.Fragment,{children:null==e?void 0:e()}):null!=n?n:null}},59273:(e,n,t)=>{t.d(n,{A:()=>d});var r=t(62540),s=t(63696),i=t(52711),o=t(49519);let c=s.forwardRef(function({name:e,children:n},t){let c=function(e){let n=e;for(;(0,s.isValidElement)(n);)[n]=s.Children.toArray(n.props.children);if("string"!=typeof n)throw Error(`Could not extract APITable row name from JSX tree: +${JSON.stringify(e,null,2)}`);return n}(n),d=e?`${e}-${c}`:c,l=`#${d}`,a=(0,o.W6)();return(0,i.A)().collectAnchor(d),(0,r.jsx)("tr",{id:d,tabIndex:0,ref:a.location.hash===l?t:void 0,onClick:e=>{"A"!==e.target.tagName.toUpperCase()&&a.push(l)},onKeyDown:e=>{"Enter"===e.key&&a.push(l)},children:n.props.children})});function d({children:e,name:n}){if("table"!==e.type)throw Error("Bad usage of APITable component.\nIt is probably that your Markdown table is malformed.\nMake sure to double-check you have the appropriate number of columns for each table row.");let[t,i]=s.Children.toArray(e.props.children),o=(0,s.useRef)(null);(0,s.useEffect)(()=>{var e;null===(e=o.current)||void 0===e||e.focus()},[o]);let d=s.Children.map(i.props.children,e=>(0,r.jsx)(c,{name:n,ref:o,children:e}));return(0,r.jsxs)("table",{className:"apiTable_e8hp",children:[t,(0,r.jsx)("tbody",{children:d})]})}},59433:(e,n,t)=>{t.d(n,{A:()=>h});var r=t(62540);t(63696);var s=t(36372),i=t(69615),o=t(81912),c=t(27446),d=t(15995),l=t(55887);let a=void 0;function h({code:e,pluginName:n,presetOptionName:t}){let h=(0,i.ir)(a).path;return(0,r.jsxs)(c.A,{groupId:"api-config-ex",children:[(0,r.jsxs)(d.A,{value:"preset",label:(0,o.T)({message:"Preset options"}),children:[(0,r.jsx)("p",{children:(0,r.jsx)(o.A,{id:"apiDocs.configTabs.presetOptions.description",values:{presetLink:(0,r.jsx)(s.A,{to:`${h}/using-plugins#docusauruspreset-classic`,children:(0,r.jsx)(o.A,{children:"preset options"})})},children:"If you use a preset, configure this plugin through the {presetLink}:"})}),(0,r.jsx)(l.A,{language:"js",title:"docusaurus.config.js",children:`module.exports = { + presets: [ + [ + '@docusaurus/preset-classic', + { + // highlight-start + ${t}: ${e.replace(/\n/g,"\n ")}, + // highlight-end + }, + ], + ], +};`})]}),(0,r.jsxs)(d.A,{value:"plugin",label:(0,o.T)({message:"Plugin options"}),children:[(0,r.jsx)("p",{children:(0,r.jsx)(o.A,{children:"If you are using a standalone plugin, provide options directly to the plugin:"})}),(0,r.jsx)(l.A,{language:"js",title:"docusaurus.config.js",children:`module.exports = { + plugins: [ + [ + '${n}', + // highlight-start + ${e.replace(/\n/g,"\n ")}, + // highlight-end + ], + ], +};`})]})]})}},55887:(e,n,t)=>{t.d(n,{A:()=>ec});var r,s,i,o={};t.r(o),t.d(o,{ButtonExample:()=>C});var c=t(62540),d=t(63696),l=t(11750),a=t(10709),h=t(55152),u=t(81912),j=t(99468),p=t(40576),x=t(1495),f=t(66659),b=t(25436);function g(){let{prism:e}=(0,b.p)(),{colorMode:n}=(0,f.G)(),t=e.theme,r=e.darkTheme||t;return"dark"===n?r:t}var m=t(43758);function y(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function v({children:e}){return(0,c.jsx)("div",{className:(0,l.A)("playgroundHeader_Tvsk"),children:e})}function O(){return(0,c.jsx)("div",{children:"Loading..."})}function w(){return(0,c.jsx)(p.A,{fallback:(0,c.jsx)(O,{}),children:()=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(m.A,{fallback:e=>(0,c.jsx)(x.MN,y({},e)),children:(0,c.jsx)(h.pA,{})}),(0,c.jsx)(h.p1,{})]})})}function P(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(v,{children:(0,c.jsx)(u.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,c.jsx)("div",{className:"playgroundPreview_mApW",children:(0,c.jsx)(w,{})})]})}function k(){let e=(0,a.A)();return(0,c.jsx)(h.w,{className:"playgroundEditor_TySg"},String(e))}function D(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(v,{children:(0,c.jsx)(u.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,c.jsx)(k,{})]})}let S=e=>`${e};`;function A(e){var n,t,r,s,{children:i,transformCode:o}=e,d=function(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,["children","transformCode"]);let{siteConfig:{themeConfig:l}}=(0,j.A)(),{liveCodeBlock:{playgroundPosition:a}}=l,u=g(),p=null!==(s=null===(r=d.metastring)||void 0===r?void 0:r.includes("noInline"))&&void 0!==s&&s;return(0,c.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,c.jsx)(h.Q,(n=y({code:null==i?void 0:i.replace(/\n$/,""),noInline:p,transformCode:null!=o?o:S,theme:u},d),t=t={children:"top"===a?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(P,{}),(0,c.jsx)(D,{})]}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(D,{}),(0,c.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))})}function T(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function C(e){var n,t;return(0,c.jsx)("button",(n=T({type:"button"},e),t=t={style:T({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let E=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({React:d},d,o);var N=t(12653),_=t(19934),I=t.n(_);let B=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),L=RegExp("\\{(?<range>[\\d,-]+)\\}"),R={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},U=(r=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},R),s=s={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(s)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(s)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(s,e))}),r),M=Object.keys(R);function V(e,n){let t=e.map(e=>{let{start:t,end:r}=U[e];return`(?:${t}\\s*(${n.flatMap(e=>{var n,t;return[e.line,null===(n=e.block)||void 0===n?void 0:n.start,null===(t=e.block)||void 0===t?void 0:t.end].filter(Boolean)}).join("|")})\\s*${r})`}).join("|");return RegExp(`^\\s*(?:${t})\\s*$`)}function F(e){var n,t,{as:r}=e,s=function(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,["as"]);let i=function(e){let n={color:"--prism-color",backgroundColor:"--prism-background-color"},t={};return Object.entries(e.plain).forEach(([e,r])=>{let s=n[e];s&&"string"==typeof r&&(t[s]=r)}),t}(g());return(0,c.jsx)(r,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},s),t=t={style:i,className:(0,l.A)(s.className,"codeBlockContainer_jDV4",N.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let $={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function W({children:e,className:n}){return(0,c.jsx)(F,{as:"pre",tabIndex:0,className:(0,l.A)($.codeBlockStandalone,"thin-scrollbar",n),children:(0,c.jsx)("code",{className:$.codeBlockLines,children:e})})}var G=t(2550);let q={attributes:!0,characterData:!0,childList:!0,subtree:!0};var z=t(27663);let H={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function X(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function Y({line:e,classNames:n,showLineNumbers:t,getLineProps:r,getTokenProps:s}){var i,o;1===e.length&&"\n"===e[0].content&&(e[0].content="");let d=r({line:e,className:(0,l.A)(n,t&&H.codeLine)}),a=e.map((e,n)=>(0,c.jsx)("span",X({},s({token:e})),n));return(0,c.jsxs)("span",(i=X({},d),o=o={children:[t?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:H.codeLineNumber}),(0,c.jsx)("span",{className:H.codeLineContent,children:a})]}):a,(0,c.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(o)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(o)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(o,e))}),i))}var J=t(936);function K(e){var n,t;return(0,c.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,c.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function Q(e){var n,t;return(0,c.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,c.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let Z={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:n}){let[t,r]=(0,d.useState)(!1),s=(0,d.useRef)(void 0),i=(0,d.useCallback)(()=>{(0,J.A)(e),r(!0),s.current=window.setTimeout(()=>{r(!1)},1e3)},[e]);return(0,d.useEffect)(()=>()=>window.clearTimeout(s.current),[]),(0,c.jsx)("button",{type:"button","aria-label":t?(0,u.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,u.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,u.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,l.A)("clean-btn",n,Z.copyButton,t&&Z.copyButtonCopied),onClick:i,children:(0,c.jsxs)("span",{className:Z.copyButtonIcons,"aria-hidden":"true",children:[(0,c.jsx)(K,{className:Z.copyButtonIcon}),(0,c.jsx)(Q,{className:Z.copyButtonSuccessIcon})]})})}function en(e){var n,t;return(0,c.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,c.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let et={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function er({className:e,onClick:n,isEnabled:t}){let r=(0,u.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,c.jsx)("button",{type:"button",onClick:n,className:(0,l.A)("clean-btn",e,t&&et.wordWrapButtonEnabled),"aria-label":r,title:r,children:(0,c.jsx)(en,{className:et.wordWrapButtonIcon,"aria-hidden":"true"})})}function es({children:e,className:n="",metastring:t,title:r,showLineNumbers:s,language:i}){var o,a,h,u;let{prism:{defaultLanguage:j,magicComments:p}}=(0,b.p)(),x=null==(a=null!==(o=null!=i?i:function(e){let n=e.split(" ").find(e=>e.startsWith("language-"));return null==n?void 0:n.replace(/language-/,"")}(n))&&void 0!==o?o:j)?void 0:a.toLowerCase(),f=g(),m=function(){let[e,n]=(0,d.useState)(!1),[t,r]=(0,d.useState)(!1),s=(0,d.useRef)(null),i=(0,d.useCallback)(()=>{let t=s.current.querySelector("code");e?t.removeAttribute("style"):(t.style.whiteSpace="pre-wrap",t.style.overflowWrap="anywhere"),n(e=>!e)},[s,e]),o=(0,d.useCallback)(()=>{let{scrollWidth:e,clientWidth:n}=s.current;r(e>n||s.current.querySelector("code").hasAttribute("style"))},[s]);return!function(e,n){let[t,r]=(0,d.useState)(),s=(0,d.useCallback)(()=>{var n;r(null===(n=e.current)||void 0===n?void 0:n.closest("[role=tabpanel][hidden]"))},[e,r]);(0,d.useEffect)(()=>{s()},[s]),function(e,n,t=q){let r=(0,G._q)(n),s=(0,G.Be)(t);(0,d.useEffect)(()=>{let n=new MutationObserver(r);return e&&n.observe(e,s),()=>n.disconnect()},[e,r,s])}(t,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(n(),s())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(s,o),(0,d.useEffect)(()=>{o()},[e,o]),(0,d.useEffect)(()=>(window.addEventListener("resize",o,{passive:!0}),()=>{window.removeEventListener("resize",o)}),[o]),{codeBlockRef:s,isEnabled:e,isCodeScrollable:t,toggle:i}}(),y=(null!==(u=null==t?void 0:null===(h=t.match(B))||void 0===h?void 0:h.groups.title)&&void 0!==u?u:"")||r,{lineClassNames:v,code:O}=function(e,n){let t=e.replace(/\n$/,""),{language:r,magicComments:s,metastring:i}=n;if(i&&L.test(i)){let e=i.match(L).groups.range;if(0===s.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${i}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let n=s[0].className;return{lineClassNames:Object.fromEntries(I()(e).filter(e=>e>0).map(e=>[e-1,[n]])),code:t}}if(void 0===r)return{lineClassNames:{},code:t};let o=function(e,n){switch(e){case"js":case"javascript":case"ts":case"typescript":return V(["js","jsBlock"],n);case"jsx":case"tsx":return V(["js","jsBlock","jsx"],n);case"html":return V(["js","jsBlock","html"],n);case"python":case"py":case"bash":return V(["bash"],n);case"markdown":case"md":return V(["html","jsx","bash"],n);case"tex":case"latex":case"matlab":return V(["tex"],n);case"lua":case"haskell":case"sql":return V(["lua"],n);case"wasm":return V(["wasm"],n);case"vb":case"vba":case"visual-basic":return V(["vb","rem"],n);case"vbnet":return V(["vbnet","rem"],n);case"batch":return V(["rem"],n);case"basic":return V(["rem","f90"],n);case"fsharp":return V(["js","ml"],n);case"ocaml":case"sml":return V(["ml"],n);case"fortran":return V(["f90"],n);case"cobol":return V(["cobol"],n);default:return V(M,n)}}(r,s),c=t.split("\n"),d=Object.fromEntries(s.map(e=>[e.className,{start:0,range:""}])),l=Object.fromEntries(s.filter(e=>e.line).map(({className:e,line:n})=>[n,e])),a=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:n})=>[n.start,e])),h=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:n})=>[n.end,e]));for(let e=0;e<c.length;){let n=c[e].match(o);if(!n){e+=1;continue}let t=n.slice(1).find(e=>void 0!==e);l[t]?d[l[t]].range+=`${e},`:a[t]?d[a[t]].start=e:h[t]&&(d[h[t]].range+=`${d[h[t]].start}-${e-1},`),c.splice(e,1)}t=c.join("\n");let u={};return Object.entries(d).forEach(([e,{range:n}])=>{I()(n).forEach(n=>{var t;null!==(t=u[n])&&void 0!==t||(u[n]=[]),u[n].push(e)})}),{lineClassNames:u,code:t}}(e,{metastring:t,language:x,magicComments:p}),w=null!=s?s:!!(null==t?void 0:t.includes("showLineNumbers"));return(0,c.jsxs)(F,{as:"div",className:(0,l.A)(n,x&&!n.includes(`language-${x}`)&&`language-${x}`),children:[y&&(0,c.jsx)("div",{className:$.codeBlockTitle,children:y}),(0,c.jsxs)("div",{className:$.codeBlockContent,children:[(0,c.jsx)(z.f4,{theme:f,code:O,language:null!=x?x:"text",children:({className:e,style:n,tokens:t,getLineProps:r,getTokenProps:s})=>(0,c.jsx)("pre",{tabIndex:0,ref:m.codeBlockRef,className:(0,l.A)(e,$.codeBlock,"thin-scrollbar"),style:n,children:(0,c.jsx)("code",{className:(0,l.A)($.codeBlockLines,w&&$.codeBlockLinesWithNumbering),children:t.map((e,n)=>(0,c.jsx)(Y,{line:e,getLineProps:r,getTokenProps:s,classNames:v[n],showLineNumbers:w},n))})})}),(0,c.jsxs)("div",{className:$.buttonGroup,children:[(m.isEnabled||m.isCodeScrollable)&&(0,c.jsx)(er,{className:$.codeButton,onClick:()=>m.toggle(),isEnabled:m.isEnabled}),(0,c.jsx)(ee,{className:$.codeButton,code:O})]})]})]})}function ei(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}let eo=(i=function(e){var n,t,{children:r}=e,s=function(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,["children"]);let i=(0,a.A)(),o=d.Children.toArray(r).some(e=>(0,d.isValidElement)(e))?r:Array.isArray(r)?r.join(""):r,l="string"==typeof o?es:W;return(0,c.jsx)(l,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},s),t=t={children:o},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n),String(i))},function(e){return e.live?(0,c.jsx)(A,ei({scope:E},e)):(0,c.jsx)(i,ei({},e))});function ec(e){return(0,c.jsx)(eo,function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},e))}},24583:(e,n,t)=>{t.d(n,{Ay:()=>c,RM:()=>i});var r=t(62540),s=t(43023);let i=[{value:"Tags File",id:"tags-file",level:2},{value:"Types",id:"tags-file-types",level:3},{value:"Example",id:"tags-file-example",level:3}];function o(e){let n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"tags-file",children:"Tags File"}),"\n",(0,r.jsxs)(n.p,{children:["Use the ",(0,r.jsxs)(n.a,{href:"#tags",children:[(0,r.jsx)(n.code,{children:"tags"})," plugin option"]})," to configure the path of a YAML tags file."]}),"\n",(0,r.jsxs)(n.p,{children:["By convention, the plugin will look for a ",(0,r.jsx)(n.code,{children:"tags.yml"})," file at the root of your content folder(s)."]}),"\n",(0,r.jsxs)(n.p,{children:["This file can contain a list of predefined tags. You can reference these tags by their keys in Markdown files thanks to the ",(0,r.jsxs)(n.a,{href:"#markdown-front-matter",children:[(0,r.jsx)(n.code,{children:"tags"})," front matter"]}),"."]}),"\n",(0,r.jsx)(n.admonition,{title:"Keeping tags consistent",type:"tip",children:(0,r.jsxs)(n.p,{children:["Using a tags file, you can ensure that your tags usage is consistent across your plugin content set. Use the ",(0,r.jsx)(n.a,{href:"#onInlineTags",children:(0,r.jsx)(n.code,{children:"onInlineTags: 'throw'"})})," plugin option to enforce this consistency and prevent usage of inline tags declared on the fly."]})}),"\n",(0,r.jsx)(n.h3,{id:"tags-file-types",children:"Types"}),"\n",(0,r.jsx)(n.p,{children:"The YAML content of the provided tags file should respect the following shape:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:"type Tag = {\n label?: string; // Tag display label\n permalink?: string; // Tag URL pathname segment\n description?: string; // Tag description displayed in the tag page\n};\n\ntype TagsFileInput = Record<string, Partial<Tag> | null>;\n"})}),"\n",(0,r.jsx)(n.h3,{id:"tags-file-example",children:"Example"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yml",metastring:'title="tags.yml"',children:"releases:\n label: 'Product releases'\n permalink: '/product-releases'\n description: 'Content related to product releases.'\n\n# A partial tag definition is also valid\nannouncements:\n label: 'Announcements'\n\n# An empty tag definition is also valid\n# Other attributes will be inferred from the key\nemptyTag:\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="content.md"',children:"---\ntags: [releases, announcements, emptyTag]\n---\n\n# Title\n\nContent\n"})})]})}function c(e={}){let{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},14243:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>j,contentTitle:()=>u,default:()=>f,frontMatter:()=>h,metadata:()=>r,toc:()=>p});let r=JSON.parse('{"id":"api/plugins/plugin-content-docs","title":"\u{1F4E6} plugin-content-docs","description":"Provides the Docs functionality and is the default docs plugin for Docusaurus.","source":"@site/docs/api/plugins/plugin-content-docs.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-content-docs","permalink":"/docs/api/plugins/@docusaurus/plugin-content-docs","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-content-docs.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1,"slug":"/api/plugins/@docusaurus/plugin-content-docs"},"sidebar":"api","previous":{"title":"Plugins overview","permalink":"/docs/api/plugins"},"next":{"title":"\u{1F4E6} plugin-content-blog","permalink":"/docs/api/plugins/@docusaurus/plugin-content-blog"}}');var s=t(62540),i=t(43023),o=t(27446),c=t(15995),d=t(59273),l=t(59433),a=t(24583);let h={sidebar_position:1,slug:"/api/plugins/@docusaurus/plugin-content-docs"},u="\u{1F4E6} plugin-content-docs",j={},p=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Types",id:"types",level:3},{value:"<code>EditUrlFunction</code>",id:"EditUrlFunction",level:4},{value:"<code>PrefixParser</code>",id:"PrefixParser",level:4},{value:"<code>SidebarGenerator</code>",id:"SidebarGenerator",level:4},{value:"<code>VersionsConfig</code>",id:"VersionsConfig",level:4},{value:"Example configuration",id:"ex-config",level:3},{value:"Markdown front matter",id:"markdown-front-matter",level:2},...a.RM,{value:"i18n",id:"i18n",level:2},{value:"Translation files location",id:"translation-files-location",level:3},{value:"Example file-system structure",id:"example-file-system-structure",level:3}];function x(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"-plugin-content-docs",children:"\u{1F4E6} plugin-content-docs"})}),"\n","\n",(0,s.jsxs)(n.p,{children:["Provides the ",(0,s.jsx)(n.a,{href:"/docs/docs-introduction",children:"Docs"})," functionality and is the default docs plugin for Docusaurus."]}),"\n",(0,s.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,s.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,s.jsx)(c.A,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm install --save @docusaurus/plugin-content-docs\n"})})}),(0,s.jsx)(c.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn add @docusaurus/plugin-content-docs\n"})})}),(0,s.jsx)(c.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm add @docusaurus/plugin-content-docs\n"})})})]}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsxs)(n.p,{children:["If you use the preset ",(0,s.jsx)(n.code,{children:"@docusaurus/preset-classic"}),", you don't need to install this plugin as a dependency."]}),(0,s.jsxs)(n.p,{children:["You can configure this plugin through the ",(0,s.jsx)(n.a,{href:"/docs/using-plugins#docusauruspreset-classic",children:"preset options"}),"."]})]}),"\n",(0,s.jsx)(n.h2,{id:"configuration",children:"Configuration"}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(d.A,{children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"path"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'docs'"})}),(0,s.jsx)(n.td,{children:"Path to the docs content directory on the file system, relative to site directory."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"editUrl"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:["string | ",(0,s.jsx)(n.a,{href:"#EditUrlFunction",children:"EditUrlFunction"})]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Base URL to edit your site. The final URL is computed by ",(0,s.jsx)(n.code,{children:"editUrl + relativeDocPath"}),". Using a function allows more nuanced control for each file. Omitting this variable entirely will disable edit links."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"editLocalizedFiles"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["The edit URL will target the localized file, instead of the original unlocalized file. Ignored when ",(0,s.jsx)(n.code,{children:"editUrl"})," is a function."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"editCurrentVersion"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["The edit URL will always target the current version doc instead of older versions. Ignored when ",(0,s.jsx)(n.code,{children:"editUrl"})," is a function."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"routeBasePath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'docs'"})}),(0,s.jsxs)(n.td,{children:["URL route for the docs section of your site. ",(0,s.jsx)(n.strong,{children:"DO NOT"})," include a trailing slash. Use ",(0,s.jsx)(n.code,{children:"/"})," for shipping docs without base path."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"tagsBasePath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'tags'"})}),(0,s.jsxs)(n.td,{children:["URL route for the tags list page of your site. It is prepended to the ",(0,s.jsx)(n.code,{children:"routeBasePath"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"include"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"['**/*.{md,mdx}']"})}),(0,s.jsx)(n.td,{children:"Array of glob patterns matching Markdown files to be built, relative to the content path."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"exclude"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"See example configuration"})}),(0,s.jsxs)(n.td,{children:["Array of glob patterns matching Markdown files to be excluded. Serves as refinement based on the ",(0,s.jsx)(n.code,{children:"include"})," option."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebarPath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"false | string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Path to sidebar configuration. Use ",(0,s.jsx)(n.code,{children:"false"})," to disable sidebars, or ",(0,s.jsx)(n.code,{children:"undefined"})," to create a fully autogenerated sidebar."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebarCollapsible"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Whether sidebar categories are collapsible by default. See also ",(0,s.jsx)(n.a,{href:"/docs/sidebar/items#collapsible-categories",children:"Collapsible categories"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebarCollapsed"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Whether sidebar categories are collapsed by default. See also ",(0,s.jsx)(n.a,{href:"/docs/sidebar/items#expanded-categories-by-default",children:"Expanded categories by default"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebarItemsGenerator"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:(0,s.jsx)(n.a,{href:"#SidebarGenerator",children:"SidebarGenerator"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"Omitted"})}),(0,s.jsxs)(n.td,{children:["Function used to replace the sidebar items of type ",(0,s.jsx)(n.code,{children:"'autogenerated'"})," with real sidebar items (docs, categories, links...). See also ",(0,s.jsx)(n.a,{href:"/docs/sidebar/autogenerated#customize-the-sidebar-items-generator",children:"Customize the sidebar items generator"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"numberPrefixParser"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:["boolean | ",(0,s.jsx)(n.a,{href:"#PrefixParser",children:"PrefixParser"})]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"Omitted"})}),(0,s.jsxs)(n.td,{children:["Custom parsing logic to extract number prefixes from file names. Use ",(0,s.jsx)(n.code,{children:"false"})," to disable this behavior and leave the docs untouched, and ",(0,s.jsx)(n.code,{children:"true"})," to use the default parser. See also ",(0,s.jsx)(n.a,{href:"/docs/sidebar/autogenerated#using-number-prefixes",children:"Using number prefixes"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docsRootComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/DocsRoot'"})}),(0,s.jsx)(n.td,{children:"Parent component of all the docs plugin pages (including all versions). Stays mounted when navigation between docs pages and versions."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docVersionRootComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/DocVersionLayout'"})}),(0,s.jsx)(n.td,{children:"Parent component of all docs pages of an individual version (doc pages with sidebars, tags pages). Stays mounted when navigation between pages of that specific version."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docRootComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/DocRoot'"})}),(0,s.jsx)(n.td,{children:"Parent component of all doc pages with sidebars (regular docs pages, category generated index pages). Stays mounted when navigation between such pages."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docItemComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/DocItem'"})}),(0,s.jsx)(n.td,{children:"Main doc container, with TOC, pagination, etc."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docTagsListComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/DocTagsListPage'"})}),(0,s.jsx)(n.td,{children:"Root component of the tags list page"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docTagDocListComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/DocTagDocListPage'"})}),(0,s.jsx)(n.td,{children:'Root component of the "docs containing tag X" page.'})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"docCategoryGeneratedIndexComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/DocCategoryGeneratedIndexPage'"})}),(0,s.jsx)(n.td,{children:"Root component of the generated category index page."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"remarkPlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Remark plugins passed to MDX."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"rehypePlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Rehype plugins passed to MDX."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"rehypePlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Recma plugins passed to MDX."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"beforeDefaultRemarkPlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Custom Remark plugins passed to MDX before the default Docusaurus Remark plugins."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"beforeDefaultRehypePlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Custom Rehype plugins passed to MDX before the default Docusaurus Rehype plugins."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"showLastUpdateAuthor"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Whether to display the author who last updated the doc."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"showLastUpdateTime"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Whether to display the last date the doc was updated. This requires access to git history during the build, so will not work correctly with shallow clones (a common default for CI systems). With GitHub ",(0,s.jsx)(n.code,{children:"actions/checkout"}),", use",(0,s.jsx)(n.code,{children:"fetch-depth: 0"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"breadcrumbs"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"Enable or disable the breadcrumbs on doc pages."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"disableVersioning"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Explicitly disable versioning even when multiple versions exist. This will make the site only include the current version. Will error if ",(0,s.jsx)(n.code,{children:"includeCurrentVersion: false"})," and ",(0,s.jsx)(n.code,{children:"disableVersioning: true"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"includeCurrentVersion"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"Include the current version of your docs."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"lastVersion"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsxs)(n.td,{children:["First version in ",(0,s.jsx)(n.code,{children:"versions.json"})]}),(0,s.jsx)(n.td,{children:"The version navigated to in priority and displayed by default for docs navbar items."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"onlyIncludeVersions"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"All versions available"}),(0,s.jsx)(n.td,{children:"Only include a subset of all available versions."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"versions"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:(0,s.jsx)(n.a,{href:"#VersionsConfig",children:"VersionsConfig"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{}"})}),(0,s.jsx)(n.td,{children:"Independent customization of each version's properties."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"tags"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string | false | null | undefined"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"tags.yml"})}),(0,s.jsx)(n.td,{children:"Path to a YAML file listing pre-defined tags. Relative to the docs version content directories."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"onInlineTags"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'ignore' | 'log' | 'warn' | 'throw'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"warn"})}),(0,s.jsxs)(n.td,{children:["The plugin behavior when docs contain inline tags (not appearing in the list of pre-defined tags, usually ",(0,s.jsx)(n.code,{children:"docs/tags.yml"}),")."]})]})]})]})}),"\n",(0,s.jsx)(n.h3,{id:"types",children:"Types"}),"\n",(0,s.jsx)(n.h4,{id:"EditUrlFunction",children:(0,s.jsx)(n.code,{children:"EditUrlFunction"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type EditUrlFunction = (params: {\n version: string;\n versionDocsDirPath: string;\n docPath: string;\n permalink: string;\n locale: string;\n}) => string | undefined;\n"})}),"\n",(0,s.jsx)(n.h4,{id:"PrefixParser",children:(0,s.jsx)(n.code,{children:"PrefixParser"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type PrefixParser = (filename: string) => {\n filename: string;\n numberPrefix?: number;\n};\n"})}),"\n",(0,s.jsx)(n.h4,{id:"SidebarGenerator",children:(0,s.jsx)(n.code,{children:"SidebarGenerator"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type SidebarGenerator = (generatorArgs: {\n /** The sidebar item with type \"autogenerated\" to be transformed. */\n item: {type: 'autogenerated'; dirName: string};\n /** Useful metadata for the version this sidebar belongs to. */\n version: {contentPath: string; versionName: string};\n /** All the docs of that version (unfiltered). */\n docs: {\n id: string;\n title: string;\n frontMatter: DocFrontMatter & Record<string, unknown>;\n source: string;\n sourceDirName: string;\n sidebarPosition?: number | undefined;\n }[];\n /** Number prefix parser configured for this plugin. */\n numberPrefixParser: PrefixParser;\n /** The default category index matcher which you can override. */\n isCategoryIndex: CategoryIndexMatcher;\n /**\n * key is the path relative to the doc content directory, value is the\n * category metadata file's content.\n */\n categoriesMetadata: {[filePath: string]: CategoryMetadata};\n /**\n * Useful to re-use/enhance the default sidebar generation logic from\n * Docusaurus.\n */\n defaultSidebarItemsGenerator: SidebarGenerator;\n // Returns an array of sidebar items \u2014 same as what you can declare in\n // sidebars.js, except for shorthands. See https://docusaurus.io/docs/sidebar/items\n}) => Promise<SidebarItem[]>;\n\ntype CategoryIndexMatcher = (param: {\n /** The file name, without extension */\n fileName: string;\n /**\n * The list of directories, from lowest level to highest.\n * If there's no dir name, directories is ['.']\n */\n directories: string[];\n /** The extension, with a leading dot */\n extension: string;\n}) => boolean;\n"})}),"\n",(0,s.jsx)(n.h4,{id:"VersionsConfig",children:(0,s.jsx)(n.code,{children:"VersionsConfig"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type VersionConfig = {\n /**\n * The base path of the version, will be appended to `baseUrl` +\n * `routeBasePath`.\n */\n path?: string;\n /** The label of the version to be used in badges, dropdowns, etc. */\n label?: string;\n /** The banner to show at the top of a doc of that version. */\n banner?: 'none' | 'unreleased' | 'unmaintained';\n /** Show a badge with the version label at the top of each doc. */\n badge?: boolean;\n /** Prevents search engines from indexing this version */\n noIndex?: boolean;\n /** Add a custom class name to the <html> element of each doc */\n className?: string;\n};\n\ntype VersionsConfig = {[versionName: string]: VersionConfig};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,s.jsx)(n.p,{children:"You can configure this plugin through preset options or plugin options."}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsx)(n.p,{children:"Most Docusaurus users configure this plugin through the preset options."})}),"\n","\n",(0,s.jsx)(l.A,{pluginName:"@docusaurus/plugin-content-docs",presetOptionName:"docs",code:"{\n path: 'docs',\n breadcrumbs: true,\n // Simple use-case: string editUrl\n // editUrl: 'https://github.com/facebook/docusaurus/edit/main/website/',\n // Advanced use-case: functional editUrl\n editUrl: ({versionDocsDirPath, docPath}) =>\n `https://github.com/facebook/docusaurus/edit/main/website/${versionDocsDirPath}/${docPath}`,\n editLocalizedFiles: false,\n editCurrentVersion: false,\n routeBasePath: 'docs',\n include: ['**/*.md', '**/*.mdx'],\n exclude: [\n '**/_*.{js,jsx,ts,tsx,md,mdx}',\n '**/_*/**',\n '**/*.test.{js,jsx,ts,tsx}',\n '**/__tests__/**',\n ],\n sidebarPath: 'sidebars.js',\n async sidebarItemsGenerator({\n defaultSidebarItemsGenerator,\n numberPrefixParser,\n item,\n version,\n docs,\n isCategoryIndex,\n }) {\n // Use the provided data to generate a custom sidebar slice\n return [\n {type: 'doc', id: 'intro'},\n {\n type: 'category',\n label: 'Tutorials',\n items: [\n {type: 'doc', id: 'tutorial1'},\n {type: 'doc', id: 'tutorial2'},\n ],\n },\n ];\n },\n numberPrefixParser(filename) {\n // Implement your own logic to extract a potential number prefix\n const numberPrefix = findNumberPrefix(filename);\n // Prefix found: return it with the cleaned filename\n if (numberPrefix) {\n return {\n numberPrefix,\n filename: filename.replace(prefix, ''),\n };\n }\n // No number prefix found\n return {numberPrefix: undefined, filename};\n },\n docsRootComponent: '@theme/DocsRoot',\n docVersionRootComponent: '@theme/DocVersionRoot',\n docRootComponent: '@theme/DocRoot',\n docItemComponent: '@theme/DocItem',\n remarkPlugins: [require('./my-remark-plugin')],\n rehypePlugins: [],\n beforeDefaultRemarkPlugins: [],\n beforeDefaultRehypePlugins: [],\n showLastUpdateAuthor: false,\n showLastUpdateTime: false,\n disableVersioning: false,\n includeCurrentVersion: true,\n lastVersion: undefined,\n versions: {\n current: {\n label: 'Android SDK v2.0.0 (WIP)',\n path: 'android-2.0.0',\n banner: 'none',\n },\n '1.0.0': {\n label: 'Android SDK v1.0.0',\n path: 'android-1.0.0',\n banner: 'unmaintained',\n },\n },\n onlyIncludeVersions: ['current', '1.0.0', '2.0.0'],\n}"}),"\n",(0,s.jsx)(n.h2,{id:"markdown-front-matter",children:"Markdown front matter"}),"\n",(0,s.jsxs)(n.p,{children:["Markdown documents can use the following Markdown ",(0,s.jsx)(n.a,{href:"/docs/markdown-features#front-matter",children:"front matter"})," metadata fields, enclosed by a line ",(0,s.jsx)(n.code,{children:"---"})," on either side."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(d.A,{children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"id"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"file path (including folders, without the extension)"}),(0,s.jsx)(n.td,{children:"A unique document ID."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"title"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsxs)(n.td,{children:["Markdown title or ",(0,s.jsx)(n.code,{children:"id"})]}),(0,s.jsx)(n.td,{children:"The text title of your document. Used for the page metadata and as a fallback value in multiple places (sidebar, next/previous buttons...). Automatically added at the top of your doc if it does not contain any Markdown title."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"pagination_label"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"sidebar_label"})," or ",(0,s.jsx)(n.code,{children:"title"})]}),(0,s.jsx)(n.td,{children:"The text used in the document next/previous buttons for this document."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebar_label"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"title"})}),(0,s.jsx)(n.td,{children:"The text shown in the document sidebar for this document."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebar_position"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"number"})}),(0,s.jsx)(n.td,{children:"Default ordering"}),(0,s.jsxs)(n.td,{children:["Controls the position of a doc inside the generated sidebar slice when using ",(0,s.jsx)(n.code,{children:"autogenerated"})," sidebar items. See also ",(0,s.jsx)(n.a,{href:"/docs/sidebar/autogenerated#autogenerated-sidebar-metadata",children:"Autogenerated sidebar metadata"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebar_class_name"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Gives the corresponding sidebar label a special class name when using autogenerated sidebars."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sidebar_custom_props"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"object"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Assign ",(0,s.jsx)(n.a,{href:"/docs/sidebar#passing-custom-props",children:"custom props"})," to the sidebar item referencing this doc"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"displayed_sidebar"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Force the display of a given sidebar when browsing the current document. Read the ",(0,s.jsx)(n.a,{href:"/docs/sidebar/multiple-sidebars",children:"multiple sidebars guide"})," for details."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"hide_title"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Whether to hide the title at the top of the doc. It only hides a title declared through the front matter, and have no effect on a Markdown title at the top of your document."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"hide_table_of_contents"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Whether to hide the table of contents to the right."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"toc_min_heading_level"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"number"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"2"})}),(0,s.jsx)(n.td,{children:"The minimum heading level shown in the table of contents. Must be between 2 and 6 and lower or equal to the max value."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"toc_max_heading_level"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"number"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"3"})}),(0,s.jsx)(n.td,{children:"The max heading level shown in the table of contents. Must be between 2 and 6."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"pagination_next"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"string | null"})}),(0,s.jsx)(n.td,{children:"Next doc in the sidebar"}),(0,s.jsxs)(n.td,{children:['The ID of the documentation you want the "Next" pagination to link to. Use ',(0,s.jsx)(n.code,{children:"null"}),' to disable showing "Next" for this page.']})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"pagination_prev"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"string | null"})}),(0,s.jsx)(n.td,{children:"Previous doc in the sidebar"}),(0,s.jsxs)(n.td,{children:['The ID of the documentation you want the "Previous" pagination to link to. Use ',(0,s.jsx)(n.code,{children:"null"}),' to disable showing "Previous" for this page.']})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"parse_number_prefixes"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"numberPrefixParser"})," plugin option"]}),(0,s.jsxs)(n.td,{children:["Whether number prefix parsing is disabled on this doc. See also ",(0,s.jsx)(n.a,{href:"/docs/sidebar/autogenerated#using-number-prefixes",children:"Using number prefixes"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"custom_edit_url"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"string | null"})}),(0,s.jsxs)(n.td,{children:["Computed using the ",(0,s.jsx)(n.code,{children:"editUrl"})," plugin option"]}),(0,s.jsxs)(n.td,{children:["The URL for editing this document. Use ",(0,s.jsx)(n.code,{children:"null"}),' to disable showing "Edit this page" for this page.']})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"keywords"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Keywords meta tag for the document page, for search engines."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"description"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The first line of Markdown content"}),(0,s.jsxs)(n.td,{children:["The description of your document, which will become the ",(0,s.jsx)(n.code,{children:'<meta name="description" content="..."/>'})," and ",(0,s.jsx)(n.code,{children:'<meta property="og:description" content="..."/>'})," in ",(0,s.jsx)(n.code,{children:"<head>"}),", used by search engines."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"image"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Cover or thumbnail image that will be used as the ",(0,s.jsx)(n.code,{children:'<meta property="og:image" content="..."/>'})," in the ",(0,s.jsx)(n.code,{children:"<head>"}),", enhancing link previews on social media and messaging platforms."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"slug"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"File path"}),(0,s.jsxs)(n.td,{children:["Allows to customize the document URL (",(0,s.jsx)(n.code,{children:"/<routeBasePath>/<slug>"}),"). Support multiple patterns: ",(0,s.jsx)(n.code,{children:"slug: my-doc"}),", ",(0,s.jsx)(n.code,{children:"slug: /my/path/myDoc"}),", ",(0,s.jsx)(n.code,{children:"slug: /"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"tags"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Tag[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["A list of strings or objects of two string fields ",(0,s.jsx)(n.code,{children:"label"})," and ",(0,s.jsx)(n.code,{children:"permalink"})," to tag to your docs. Strings can be a reference to keys of a ",(0,s.jsx)(n.a,{href:"#tags-file",children:"tags file"})," (usually ",(0,s.jsx)(n.code,{children:"tags.yml"}),")"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"draft"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Draft documents will only be available during development."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"unlisted"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:'Unlisted documents will be available in both development and production. They will be "hidden" in production, not indexed, excluded from sitemaps, and can only be accessed by users having a direct link.'})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"last_update"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"FrontMatterLastUpdate"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Allows overriding the last update author/date. Date can be any ",(0,s.jsx)(n.a,{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse",children:"parsable date string"}),"."]})]})]})]})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type FrontMatterLastUpdate = {date?: string; author?: string};\n\ntype Tag = string | {label: string; permalink: string};\n"})}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-md",children:"---\nid: doc-markdown\ntitle: Docs Markdown Features\nhide_title: false\nhide_table_of_contents: false\nsidebar_label: Markdown\nsidebar_position: 3\npagination_label: Markdown features\ncustom_edit_url: https://github.com/facebook/docusaurus/edit/main/docs/api-doc-markdown.md\ndescription: How do I find you when I cannot solve this problem\nkeywords:\n - docs\n - docusaurus\ntags: [docusaurus]\nimage: https://i.imgur.com/mErPwqL.png\nslug: /myDoc\nlast_update:\n date: 1/1/2000\n author: custom author name\n---\n\n# Markdown Features\n\nMy Document Markdown content\n"})}),"\n","\n",(0,s.jsx)(a.Ay,{}),"\n",(0,s.jsx)(n.h2,{id:"i18n",children:"i18n"}),"\n",(0,s.jsxs)(n.p,{children:["Read the ",(0,s.jsx)(n.a,{href:"/docs/i18n/introduction",children:"i18n introduction"})," first."]}),"\n",(0,s.jsx)(n.h3,{id:"translation-files-location",children:"Translation files location"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Base path"}),": ",(0,s.jsx)(n.code,{children:"website/i18n/[locale]/docusaurus-plugin-content-docs"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Multi-instance path"}),": ",(0,s.jsx)(n.code,{children:"website/i18n/[locale]/docusaurus-plugin-content-docs-[pluginId]"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"JSON files"}),": extracted with ",(0,s.jsx)(n.a,{href:"/docs/cli#docusaurus-write-translations-sitedir",children:(0,s.jsx)(n.code,{children:"docusaurus write-translations"})})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Markdown files"}),": ",(0,s.jsx)(n.code,{children:"website/i18n/[locale]/docusaurus-plugin-content-docs/[versionName]"})]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"example-file-system-structure",children:"Example file-system structure"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"website/i18n/[locale]/docusaurus-plugin-content-docs\n\u2502\n\u2502 # translations for website/docs\n\u251C\u2500\u2500 current\n\u2502 \u251C\u2500\u2500 api\n\u2502 \u2502 \u2514\u2500\u2500 config.md\n\u2502 \u2514\u2500\u2500 getting-started.md\n\u251C\u2500\u2500 current.json\n\u2502\n\u2502 # translations for website/versioned_docs/version-1.0.0\n\u251C\u2500\u2500 version-1.0.0\n\u2502 \u251C\u2500\u2500 api\n\u2502 \u2502 \u2514\u2500\u2500 config.md\n\u2502 \u2514\u2500\u2500 getting-started.md\n\u2514\u2500\u2500 version-1.0.0.json\n"})})]})}function f(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(x,{...e})}):x(e)}}}]); \ No newline at end of file diff --git a/assets/js/0b7c2a4a.932e4b6f.js b/assets/js/0b7c2a4a.d552dca5.js similarity index 98% rename from assets/js/0b7c2a4a.932e4b6f.js rename to assets/js/0b7c2a4a.d552dca5.js index 93753ff17d..ed52688496 100644 --- a/assets/js/0b7c2a4a.932e4b6f.js +++ b/assets/js/0b7c2a4a.d552dca5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[46373],{94802:(e,r,n)=>{n.d(r,{A:()=>t});let t=n.p+"assets/images/social-card-3239a62bb56c9529ff255bc2c72e94f6.png"},15995:(e,r,n)=>{n.d(r,{A:()=>a});var t=n(62540);n(63696);var s=n(11750);function a({children:e,hidden:r,className:n}){return(0,t.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_pnkT",n),hidden:r,children:e})}},27446:(e,r,n)=>{n.d(r,{A:()=>y});var t=n(62540),s=n(63696),a=n(11750),i=n(7846),o=n(49519),l=n(96439),c=n(19739),u=n(66904),d=n(79244);function h(e){var r,n;return null!==(n=null===(r=s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){let{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===r?void 0:r.filter(Boolean))&&void 0!==n?n:[]}function p({value:e,tabValues:r}){return r.some(r=>r.value===e)}var g=n(10709);function m(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(r){var t;t=n[r],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t})}return e}function b(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n})(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}),e}function f({className:e,block:r,selectedValue:n,selectValue:s,tabValues:o}){let l=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.a_)(),u=e=>{let r=e.currentTarget,t=o[l.indexOf(r)].value;t!==n&&(c(r),s(t))},d=e=>{var r,n;let t=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let n=l.indexOf(e.currentTarget)+1;t=null!==(r=l[n])&&void 0!==r?r:l[0];break}case"ArrowLeft":{let r=l.indexOf(e.currentTarget)-1;t=null!==(n=l[r])&&void 0!==n?n:l[l.length-1]}}null==t||t.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.A)("tabs",{"tabs--block":r},e),children:o.map(({value:e,label:r,attributes:s})=>(0,t.jsx)("li",b(m({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>l.push(e),onKeyDown:d,onClick:u},s),{className:(0,a.A)("tabs__item","tabItem_AQgk",null==s?void 0:s.className,{"tabs__item--active":n===e}),children:null!=r?r:e}),e))})}function j({lazy:e,children:r,selectedValue:n}){let i=(Array.isArray(r)?r:[r]).filter(Boolean);if(e){let e=i.find(e=>e.props.value===n);return e?(0,s.cloneElement)(e,{className:(0,a.A)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:i.map((e,r)=>(0,s.cloneElement)(e,{key:r,hidden:e.props.value!==n}))})}function x(e){let r=function(e){let{defaultValue:r,queryString:n=!1,groupId:t}=e,a=function(e){let{values:r,children:n}=e;return(0,s.useMemo)(()=>{let e=null!=r?r:h(n).map(({props:{value:e,label:r,attributes:n,default:t}})=>({value:e,label:r,attributes:n,default:t}));return!function(e){let r=(0,u.XI)(e,(e,r)=>e.value===r.value);if(r.length>0)throw Error(`Docusaurus error: Duplicate values "${r.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[r,n])}(e),[i,g]=(0,s.useState)(()=>(function({defaultValue:e,tabValues:r}){var n;if(0===r.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:r}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let t=null!==(n=r.find(e=>e.default))&&void 0!==n?n:r[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:r,tabValues:a})),[m,b]=function({queryString:e=!1,groupId:r}){let n=(0,o.W6)(),t=function({queryString:e=!1,groupId:r}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!r)throw Error('Docusaurus error: The <Tabs> 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 null!=r?r:null}({queryString:e,groupId:r});return[(0,c.aZ)(t),(0,s.useCallback)(e=>{var r,s;if(!t)return;let a=new URLSearchParams(n.location.search);a.set(t,e),n.replace((r=function(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(r){var t;t=n[r],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t})}return e}({},n.location),s=s={search:a.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(s)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n})(Object(s)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(s,e))}),r))},[t,n])]}({queryString:n,groupId:t}),[f,j]=function({groupId:e}){let r=e?`docusaurus.tab.${e}`:null,[n,t]=(0,d.Dv)(r);return[n,(0,s.useCallback)(e=>{r&&t.set(e)},[r,t])]}({groupId:t}),x=(()=>{let e=null!=m?m:f;return p({value:e,tabValues:a})?e:null})();return(0,l.A)(()=>{x&&g(x)},[x]),{selectedValue:i,selectValue:(0,s.useCallback)(e=>{if(!p({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);g(e),b(e),j(e)},[b,j,a]),tabValues:a}}(e);return(0,t.jsxs)("div",{className:(0,a.A)("tabs-container","tabList_Qoir"),children:[(0,t.jsx)(f,m({},r,e)),(0,t.jsx)(j,m({},r,e))]})}function y(e){let r=(0,g.A)();return(0,t.jsx)(x,b(m({},e),{children:h(e.children)}),String(r))}},18764:(e,r,n)=>{n.d(r,{A:()=>a});var t=n(62540);n(63696);var s=n(70361);function a({url:e}){return(0,t.jsx)("div",{style:{padding:10},children:(0,t.jsx)(s.A,{url:e,style:{minWidth:"min(100%,45vw)",width:800,maxWidth:"100%",overflow:"hidden"},bodyStyle:{padding:0},children:(0,t.jsx)("iframe",{src:e,title:e,style:{display:"block",width:"100%",height:300}})})})}},70361:(e,r,n)=>{n.d(r,{A:()=>o});var t=n(62540);n(63696);var s=n(11750);let a="dot_giz1",i="bar_rrRL";function o({children:e,minHeight:r,url:n="http://localhost:3000",style:o,bodyStyle:l}){var c,u;return(0,t.jsxs)("div",{className:"browserWindow_my1Q",style:(c=function(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(r){var t;t=n[r],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t})}return e}({},o),u=u={minHeight:r},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(u)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n})(Object(u)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(u,e))}),c),children:[(0,t.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,t.jsxs)("div",{className:"buttons_uHc7",children:[(0,t.jsx)("span",{className:a,style:{background:"#f25f58"}}),(0,t.jsx)("span",{className:a,style:{background:"#fbbe3c"}}),(0,t.jsx)("span",{className:a,style:{background:"#58cb42"}})]}),(0,t.jsx)("div",{className:(0,s.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:n}),(0,t.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:i}),(0,t.jsx)("span",{className:i}),(0,t.jsx)("span",{className:i})]})})]}),(0,t.jsx)("div",{className:"browserWindowBody_Idgs",style:l,children:e})]})}},43730:(e,r,n)=>{n.d(r,{A:()=>a});var t=n(62540),s=n(63696);function a({children:e="Boom!",message:r="Boom!\nSomething bad happened, but you can try again!",cause:n}){let[a,i]=(0,s.useState)(!1);if(a)throw Error(r,{cause:n?Error(n):void 0});return(0,t.jsx)("button",{className:"button button--danger",type:"button",onClick:()=>i(!0),children:e})}},95664:(e,r,n)=>{n.d(r,{A:()=>t});let t=n.p+"assets/images/navbar-error-15eefab8e8d77aa4d605939956987164.jpg"},19046:(e,r,n)=>{n.d(r,{A:()=>t});let t=n.p+"assets/images/sidebar-item-description-f38981b17f486bc09fb811c6992ef668.jpg"},93383:(e,r,n)=>{n.d(r,{A:()=>t});let t=n.p+"assets/images/social-card-3239a62bb56c9529ff255bc2c72e94f6.png"},25570:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>p,contentTitle:()=>h,default:()=>b,frontMatter:()=>d,metadata:()=>t,toc:()=>g});var t=n(32341),s=n(62540),a=n(43023),i=n(27446),o=n(15995),l=n(70361),c=n(18764),u=n(43730);let d={title:"Docusaurus 2.4",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2023-03-23T00:00:00.000Z")},h=void 0,p={image:n(94802).A,authorsImageUrls:[void 0]},g=[{value:"Highlights",id:"highlights",level:2},{value:"Sidebar item description",id:"sidebar-item-description",level:3},{value:"Theme Query String",id:"theme-query-string",level:3},{value:"Remark plugin npm2yarn upgrade",id:"remark-plugin-npm2yarn-upgrade",level:3},{value:"gtag support for multiple tracking IDs",id:"gtag-support-for-multiple-tracking-ids",level:3},{value:"Developer Experience",id:"developer-experience",level:3},{value:"Translations",id:"translations",level:3},{value:"Other changes",id:"other-changes",level:2}];function m(e){let r={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:["We are happy to announce ",(0,s.jsx)(r.strong,{children:"Docusaurus 2.4"}),"."]}),"\n",(0,s.jsxs)(r.p,{children:["The upgrade should be easy: as explained in our ",(0,s.jsx)(r.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,s.jsx)(r.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.img,{alt:"Docusaurus blog post social card",src:n(93383).A+"",width:"1200",height:"600"})}),"\n","\n",(0,s.jsx)(r.h2,{id:"highlights",children:"Highlights"}),"\n",(0,s.jsx)(r.h3,{id:"sidebar-item-description",children:"Sidebar item description"}),"\n",(0,s.jsxs)(r.p,{children:["In ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8236",children:"#8236"}),", we made it possible to provide a new ",(0,s.jsx)(r.code,{children:"description"})," attribute for docs sidebar items of type ",(0,s.jsx)(r.code,{children:"link"})," and ",(0,s.jsx)(r.code,{children:"category"}),"."]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-tsx",metastring:'title="sidebars.js"',children:"[\n {\n type: 'link',\n label: 'Link with description',\n href: 'https://docusaurus.io',\n // highlight-next-line\n description: 'Some link description',\n },\n {\n type: 'category',\n label: 'Category with description',\n // highlight-next-line\n description: 'Some category description',\n items: [],\n },\n];\n"})}),"\n",(0,s.jsx)(r.p,{children:"These descriptions will be used in category generated index pages."}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.img,{alt:"Show sidebar category generated index with custom descriptions",src:n(19046).A+"",width:"1400",height:"691"})}),"\n",(0,s.jsx)(r.h3,{id:"theme-query-string",children:"Theme Query String"}),"\n",(0,s.jsxs)(r.p,{children:["In ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8708",children:"#8708"}),", we added the possibility to force Docusaurus to initialize itself in ",(0,s.jsx)(r.code,{children:"light"})," or ",(0,s.jsx)(r.code,{children:"dark"})," mode through a new ",(0,s.jsx)(r.code,{children:"docusaurus-theme"})," query-string parameter."]}),"\n",(0,s.jsx)(r.p,{children:"This is useful to ensure a consistent theme when embedding an existing Docusaurus page into an iframe or WebView."}),"\n",(0,s.jsx)(c.A,{url:"/docs/?docusaurus-theme=light"}),"\n",(0,s.jsx)(c.A,{url:"/docs/?docusaurus-theme=dark"}),"\n",(0,s.jsx)(r.h3,{id:"remark-plugin-npm2yarn-upgrade",children:"Remark plugin npm2yarn upgrade"}),"\n",(0,s.jsxs)(r.p,{children:["In ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8690",children:"#8690"}),", we upgraded our Remark plugin ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/tree/main/packages/docusaurus-remark-plugin-npm2yarn",children:"@docusaurus/remark-plugin-npm2yarn"})," with many conversion bug fixes, first-class support for pnpm, and the ability to register custom converters producing new tabs."]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-markdown",children:"Run these commands!\n\n```bash npm2yarn\nnpm install\nnpm run build\nnpm run myCustomScript -- --some-arg\n```\n"})}),"\n",(0,s.jsx)(l.A,{children:(0,s.jsxs)(i.A,{children:[(0,s.jsx)(o.A,{value:"npm",children:(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"npm install\nnpm run build\nnpm run myCustomScript -- --some-arg\n"})})}),(0,s.jsx)(o.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"yarn install\nyarn build\nyarn myCustomScript --some-arg\n"})})}),(0,s.jsx)(o.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"pnpm install\npnpm run build\npnpm run myCustomScript --some-arg\n"})})})]})}),"\n",(0,s.jsx)(r.h3,{id:"gtag-support-for-multiple-tracking-ids",children:"gtag support for multiple tracking IDs"}),"\n",(0,s.jsxs)(r.p,{children:["In ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8620",children:"#8620"})," we added support for the ",(0,s.jsx)(r.a,{href:"/docs/api/plugins/@docusaurus/plugin-google-gtag",children:"@docusaurus/plugin-google-gtag"})," plugin to declare multiple tracking IDs."]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"module.exports = {\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n gtag: {\n trackingID: [\n // highlight-next-line\n 'G-<YOUR-NEW-GA4-ID>',\n // highlight-next-line\n 'UA-<YOUR-OLD-UA-ID>',\n ],\n },\n },\n ],\n ],\n};\n"})}),"\n",(0,s.jsxs)(r.admonition,{title:"Google is sunsetting Universal Analytics",type:"warning",children:[(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:(0,s.jsx)(r.a,{href:"https://blog.google/products/marketingplatform/analytics/prepare-for-future-with-google-analytics-4/",children:"Google will sunset its Universal Analytics"})})," on ",(0,s.jsx)(r.strong,{children:"July 1, 2023"}),"."]}),(0,s.jsxs)(r.p,{children:["Docusaurus users should migrate to Google Analytics 4. Google ",(0,s.jsx)(r.strong,{children:"does not permit to migrate your existing Universal Analytics data"})," to your new Google Analytics 4 property."]}),(0,s.jsxs)(r.p,{children:["To preserve the continuity of your analytics, we temporarily recommend that you report events to 2 tracking IDs at the same time: the old one (",(0,s.jsx)(r.code,{children:"UA-*"}),") and new one (",(0,s.jsx)(r.code,{children:"G-*"}),"). Refer to the ",(0,s.jsx)(r.strong,{children:(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/issues/7221",children:"dedicated issue"})})," for details."]})]}),"\n",(0,s.jsx)(r.h3,{id:"developer-experience",children:"Developer Experience"}),"\n",(0,s.jsxs)(r.p,{children:["In ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8736",children:"#8736"}),", we improved how we render error messages and added initial support to render the full causal chain of an error (see ",(0,s.jsx)(r.a,{href:"https://h3manth.com/ES2022/#error-cause",children:"ES2022 Error Cause"}),")."]}),"\n",(0,s.jsx)(r.admonition,{type:"tip",children:(0,s.jsxs)(r.p,{children:["To see it in action, click here: ",(0,s.jsx)(u.A,{cause:"Probably undefined is not a function \u{1F604}"})]})}),"\n",(0,s.jsxs)(r.p,{children:["In ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8735",children:"#8735"})," we also made navbar-related error messages clearer to help users understand what they did wrong."]}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.img,{alt:"Docusaurus navbar error message screenshot",src:n(95664).A+"",width:"1676",height:"1614"})}),"\n",(0,s.jsx)(r.h3,{id:"translations",children:"Translations"}),"\n",(0,s.jsx)(r.p,{children:"We made it possible to translate some new elements:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8677",children:"#8677"})," introduces a new ",(0,s.jsx)(r.code,{children:"process.env.DOCUSAURUS_CURRENT_LOCALE"})," (experimental) allowing you to localize your config file, including site title, tagline, announcement bar, baseUrl..."]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8616",children:"#8616"})," allows to translate the navbar and footer logo alt text"]}),"\n"]}),"\n",(0,s.jsx)(r.p,{children:"We added default theme translation support for multiple languages:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["\u{1F1ED}\u{1F1FA} ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8668",children:"#8668"}),": Hungarian"]}),"\n",(0,s.jsxs)(r.li,{children:["\u{1F1F3}\u{1F1F4} ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8631",children:"#8631"}),": Norwegian (Bokm\xe5l)"]}),"\n"]}),"\n",(0,s.jsx)(r.admonition,{type:"tip",children:(0,s.jsxs)(r.p,{children:["Completing theme translations is an ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/issues/3526",children:"ongoing effort"})," and an easy way to contribute to Docusaurus. We add new theme features regularly, for which we often ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/issues/3526",children:"need new translations"}),"."]})}),"\n",(0,s.jsx)(r.h2,{id:"other-changes",children:"Other changes"}),"\n",(0,s.jsx)(r.p,{children:"Other notable changes include:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8674",children:"#8674"}),": respect ",(0,s.jsx)(r.code,{children:"prefers-reduced-motion: reduce"})," media query"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8712",children:"#8712"}),": use a navbar item of type ",(0,s.jsx)(r.code,{children:"docSidebar"})," in template"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8801",children:"#8801"}),": allow tabs children to be falsy"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8757",children:"#8757"}),": make search page react to external query-string changes"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8803",children:"#8803"}),": fix code block buttons position in RTL"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8615",children:"#8615"}),": fix color mode toggle when using dark navbar"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8699",children:"#8699"}),": fix navbar dropdown tab focus bug"]}),"\n"]}),"\n",(0,s.jsxs)(r.p,{children:["Check the ",(0,s.jsx)(r.strong,{children:(0,s.jsx)(r.a,{href:"/changelog/2.4.0",children:"2.4.0 changelog entry"})})," for an exhaustive list of changes."]})]})}function b(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(m,{...e})}):m(e)}},43023:(e,r,n)=>{n.d(r,{R:()=>i,x:()=>o});var t=n(63696);let s={},a=t.createContext(s);function i(e){let r=t.useContext(a);return t.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:i(e.components),t.createElement(a.Provider,{value:r},e.children)}},32341:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/2.4","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/2.4/index.mdx","source":"@site/blog/releases/2.4/index.mdx","title":"Docusaurus 2.4","description":"We are happy to announce Docusaurus 2.4.","date":"2023-03-23T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.05,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.4","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2023-03-23T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Upgrading frontend dependencies with confidence","permalink":"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing"},"nextItem":{"title":"Docusaurus 2.3","permalink":"/blog/releases/2.3"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[46373],{94802:(e,r,n)=>{n.d(r,{A:()=>t});let t=n.p+"assets/images/social-card-3239a62bb56c9529ff255bc2c72e94f6.png"},15995:(e,r,n)=>{n.d(r,{A:()=>a});var t=n(62540);n(63696);var s=n(11750);function a({children:e,hidden:r,className:n}){return(0,t.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_pnkT",n),hidden:r,children:e})}},27446:(e,r,n)=>{n.d(r,{A:()=>y});var t=n(62540),s=n(63696),a=n(11750),i=n(7846),o=n(49519),l=n(96439),c=n(19739),u=n(66904),d=n(79244);function h(e){var r,n;return null!==(n=null===(r=s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){let{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===r?void 0:r.filter(Boolean))&&void 0!==n?n:[]}function p({value:e,tabValues:r}){return r.some(r=>r.value===e)}var g=n(10709);function m(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(r){var t;t=n[r],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t})}return e}function b(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n})(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}),e}function f({className:e,block:r,selectedValue:n,selectValue:s,tabValues:o}){let l=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.a_)(),u=e=>{let r=e.currentTarget,t=o[l.indexOf(r)].value;t!==n&&(c(r),s(t))},d=e=>{var r,n;let t=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let n=l.indexOf(e.currentTarget)+1;t=null!==(r=l[n])&&void 0!==r?r:l[0];break}case"ArrowLeft":{let r=l.indexOf(e.currentTarget)-1;t=null!==(n=l[r])&&void 0!==n?n:l[l.length-1]}}null==t||t.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.A)("tabs",{"tabs--block":r},e),children:o.map(({value:e,label:r,attributes:s})=>(0,t.jsx)("li",b(m({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>l.push(e),onKeyDown:d,onClick:u},s),{className:(0,a.A)("tabs__item","tabItem_AQgk",null==s?void 0:s.className,{"tabs__item--active":n===e}),children:null!=r?r:e}),e))})}function j({lazy:e,children:r,selectedValue:n}){let i=(Array.isArray(r)?r:[r]).filter(Boolean);if(e){let e=i.find(e=>e.props.value===n);return e?(0,s.cloneElement)(e,{className:(0,a.A)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:i.map((e,r)=>(0,s.cloneElement)(e,{key:r,hidden:e.props.value!==n}))})}function x(e){let r=function(e){let{defaultValue:r,queryString:n=!1,groupId:t}=e,a=function(e){let{values:r,children:n}=e;return(0,s.useMemo)(()=>{let e=null!=r?r:h(n).map(({props:{value:e,label:r,attributes:n,default:t}})=>({value:e,label:r,attributes:n,default:t}));return!function(e){let r=(0,u.XI)(e,(e,r)=>e.value===r.value);if(r.length>0)throw Error(`Docusaurus error: Duplicate values "${r.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[r,n])}(e),[i,g]=(0,s.useState)(()=>(function({defaultValue:e,tabValues:r}){var n;if(0===r.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:r}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let t=null!==(n=r.find(e=>e.default))&&void 0!==n?n:r[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:r,tabValues:a})),[m,b]=function({queryString:e=!1,groupId:r}){let n=(0,o.W6)(),t=function({queryString:e=!1,groupId:r}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!r)throw Error('Docusaurus error: The <Tabs> 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 null!=r?r:null}({queryString:e,groupId:r});return[(0,c.aZ)(t),(0,s.useCallback)(e=>{var r,s;if(!t)return;let a=new URLSearchParams(n.location.search);a.set(t,e),n.replace((r=function(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(r){var t;t=n[r],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t})}return e}({},n.location),s=s={search:a.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(s)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n})(Object(s)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(s,e))}),r))},[t,n])]}({queryString:n,groupId:t}),[f,j]=function({groupId:e}){let r=e?`docusaurus.tab.${e}`:null,[n,t]=(0,d.Dv)(r);return[n,(0,s.useCallback)(e=>{r&&t.set(e)},[r,t])]}({groupId:t}),x=(()=>{let e=null!=m?m:f;return p({value:e,tabValues:a})?e:null})();return(0,l.A)(()=>{x&&g(x)},[x]),{selectedValue:i,selectValue:(0,s.useCallback)(e=>{if(!p({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);g(e),b(e),j(e)},[b,j,a]),tabValues:a}}(e);return(0,t.jsxs)("div",{className:(0,a.A)("tabs-container","tabList_Qoir"),children:[(0,t.jsx)(f,m({},r,e)),(0,t.jsx)(j,m({},r,e))]})}function y(e){let r=(0,g.A)();return(0,t.jsx)(x,b(m({},e),{children:h(e.children)}),String(r))}},18764:(e,r,n)=>{n.d(r,{A:()=>a});var t=n(62540);n(63696);var s=n(70361);function a({url:e}){return(0,t.jsx)("div",{style:{padding:10},children:(0,t.jsx)(s.A,{url:e,style:{minWidth:"min(100%,45vw)",width:800,maxWidth:"100%",overflow:"hidden"},bodyStyle:{padding:0},children:(0,t.jsx)("iframe",{src:e,title:e,style:{display:"block",width:"100%",height:300}})})})}},70361:(e,r,n)=>{n.d(r,{A:()=>o});var t=n(62540);n(63696);var s=n(11750);let a="dot_giz1",i="bar_rrRL";function o({children:e,minHeight:r,url:n="http://localhost:3000",style:o,bodyStyle:l}){var c,u;return(0,t.jsxs)("div",{className:"browserWindow_my1Q",style:(c=function(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(r){var t;t=n[r],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t})}return e}({},o),u=u={minHeight:r},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(u)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n})(Object(u)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(u,e))}),c),children:[(0,t.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,t.jsxs)("div",{className:"buttons_uHc7",children:[(0,t.jsx)("span",{className:a,style:{background:"#f25f58"}}),(0,t.jsx)("span",{className:a,style:{background:"#fbbe3c"}}),(0,t.jsx)("span",{className:a,style:{background:"#58cb42"}})]}),(0,t.jsx)("div",{className:(0,s.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:n}),(0,t.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:i}),(0,t.jsx)("span",{className:i}),(0,t.jsx)("span",{className:i})]})})]}),(0,t.jsx)("div",{className:"browserWindowBody_Idgs",style:l,children:e})]})}},43730:(e,r,n)=>{n.d(r,{A:()=>a});var t=n(62540),s=n(63696);function a({children:e="Boom!",message:r="Boom!\nSomething bad happened, but you can try again!",cause:n}){let[a,i]=(0,s.useState)(!1);if(a)throw Error(r,{cause:n?Error(n):void 0});return(0,t.jsx)("button",{className:"button button--danger",type:"button",onClick:()=>i(!0),children:e})}},95664:(e,r,n)=>{n.d(r,{A:()=>t});let t=n.p+"assets/images/navbar-error-15eefab8e8d77aa4d605939956987164.jpg"},19046:(e,r,n)=>{n.d(r,{A:()=>t});let t=n.p+"assets/images/sidebar-item-description-f38981b17f486bc09fb811c6992ef668.jpg"},93383:(e,r,n)=>{n.d(r,{A:()=>t});let t=n.p+"assets/images/social-card-3239a62bb56c9529ff255bc2c72e94f6.png"},25570:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>p,contentTitle:()=>h,default:()=>b,frontMatter:()=>d,metadata:()=>t,toc:()=>g});var t=n(32341),s=n(62540),a=n(43023),i=n(27446),o=n(15995),l=n(70361),c=n(18764),u=n(43730);let d={title:"Docusaurus 2.4",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2023-03-23T00:00:00.000Z")},h=void 0,p={image:n(94802).A,authorsImageUrls:[void 0]},g=[{value:"Highlights",id:"highlights",level:2},{value:"Sidebar item description",id:"sidebar-item-description",level:3},{value:"Theme Query String",id:"theme-query-string",level:3},{value:"Remark plugin npm2yarn upgrade",id:"remark-plugin-npm2yarn-upgrade",level:3},{value:"gtag support for multiple tracking IDs",id:"gtag-support-for-multiple-tracking-ids",level:3},{value:"Developer Experience",id:"developer-experience",level:3},{value:"Translations",id:"translations",level:3},{value:"Other changes",id:"other-changes",level:2}];function m(e){let r={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:["We are happy to announce ",(0,s.jsx)(r.strong,{children:"Docusaurus 2.4"}),"."]}),"\n",(0,s.jsxs)(r.p,{children:["The upgrade should be easy: as explained in our ",(0,s.jsx)(r.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,s.jsx)(r.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.img,{alt:"Docusaurus blog post social card",src:n(93383).A+"",width:"1200",height:"600"})}),"\n","\n",(0,s.jsx)(r.h2,{id:"highlights",children:"Highlights"}),"\n",(0,s.jsx)(r.h3,{id:"sidebar-item-description",children:"Sidebar item description"}),"\n",(0,s.jsxs)(r.p,{children:["In ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8236",children:"#8236"}),", we made it possible to provide a new ",(0,s.jsx)(r.code,{children:"description"})," attribute for docs sidebar items of type ",(0,s.jsx)(r.code,{children:"link"})," and ",(0,s.jsx)(r.code,{children:"category"}),"."]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-tsx",metastring:'title="sidebars.js"',children:"[\n {\n type: 'link',\n label: 'Link with description',\n href: 'https://docusaurus.io',\n // highlight-next-line\n description: 'Some link description',\n },\n {\n type: 'category',\n label: 'Category with description',\n // highlight-next-line\n description: 'Some category description',\n items: [],\n },\n];\n"})}),"\n",(0,s.jsx)(r.p,{children:"These descriptions will be used in category generated index pages."}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.img,{alt:"Show sidebar category generated index with custom descriptions",src:n(19046).A+"",width:"1400",height:"691"})}),"\n",(0,s.jsx)(r.h3,{id:"theme-query-string",children:"Theme Query String"}),"\n",(0,s.jsxs)(r.p,{children:["In ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8708",children:"#8708"}),", we added the possibility to force Docusaurus to initialize itself in ",(0,s.jsx)(r.code,{children:"light"})," or ",(0,s.jsx)(r.code,{children:"dark"})," mode through a new ",(0,s.jsx)(r.code,{children:"docusaurus-theme"})," query-string parameter."]}),"\n",(0,s.jsx)(r.p,{children:"This is useful to ensure a consistent theme when embedding an existing Docusaurus page into an iframe or WebView."}),"\n",(0,s.jsx)(c.A,{url:"/docs/?docusaurus-theme=light"}),"\n",(0,s.jsx)(c.A,{url:"/docs/?docusaurus-theme=dark"}),"\n",(0,s.jsx)(r.h3,{id:"remark-plugin-npm2yarn-upgrade",children:"Remark plugin npm2yarn upgrade"}),"\n",(0,s.jsxs)(r.p,{children:["In ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8690",children:"#8690"}),", we upgraded our Remark plugin ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/tree/main/packages/docusaurus-remark-plugin-npm2yarn",children:"@docusaurus/remark-plugin-npm2yarn"})," with many conversion bug fixes, first-class support for pnpm, and the ability to register custom converters producing new tabs."]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-markdown",children:"Run these commands!\n\n```bash npm2yarn\nnpm install\nnpm run build\nnpm run myCustomScript -- --some-arg\n```\n"})}),"\n",(0,s.jsx)(l.A,{children:(0,s.jsxs)(i.A,{children:[(0,s.jsx)(o.A,{value:"npm",children:(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"npm install\nnpm run build\nnpm run myCustomScript -- --some-arg\n"})})}),(0,s.jsx)(o.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"yarn install\nyarn build\nyarn myCustomScript --some-arg\n"})})}),(0,s.jsx)(o.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"pnpm install\npnpm run build\npnpm run myCustomScript --some-arg\n"})})})]})}),"\n",(0,s.jsx)(r.h3,{id:"gtag-support-for-multiple-tracking-ids",children:"gtag support for multiple tracking IDs"}),"\n",(0,s.jsxs)(r.p,{children:["In ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8620",children:"#8620"})," we added support for the ",(0,s.jsx)(r.a,{href:"/docs/api/plugins/@docusaurus/plugin-google-gtag",children:"@docusaurus/plugin-google-gtag"})," plugin to declare multiple tracking IDs."]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"module.exports = {\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n gtag: {\n trackingID: [\n // highlight-next-line\n 'G-<YOUR-NEW-GA4-ID>',\n // highlight-next-line\n 'UA-<YOUR-OLD-UA-ID>',\n ],\n },\n },\n ],\n ],\n};\n"})}),"\n",(0,s.jsxs)(r.admonition,{title:"Google is sunsetting Universal Analytics",type:"warning",children:[(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:(0,s.jsx)(r.a,{href:"https://blog.google/products/marketingplatform/analytics/prepare-for-future-with-google-analytics-4/",children:"Google will sunset its Universal Analytics"})})," on ",(0,s.jsx)(r.strong,{children:"July 1, 2023"}),"."]}),(0,s.jsxs)(r.p,{children:["Docusaurus users should migrate to Google Analytics 4. Google ",(0,s.jsx)(r.strong,{children:"does not permit to migrate your existing Universal Analytics data"})," to your new Google Analytics 4 property."]}),(0,s.jsxs)(r.p,{children:["To preserve the continuity of your analytics, we temporarily recommend that you report events to 2 tracking IDs at the same time: the old one (",(0,s.jsx)(r.code,{children:"UA-*"}),") and new one (",(0,s.jsx)(r.code,{children:"G-*"}),"). Refer to the ",(0,s.jsx)(r.strong,{children:(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/issues/7221",children:"dedicated issue"})})," for details."]})]}),"\n",(0,s.jsx)(r.h3,{id:"developer-experience",children:"Developer Experience"}),"\n",(0,s.jsxs)(r.p,{children:["In ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8736",children:"#8736"}),", we improved how we render error messages and added initial support to render the full causal chain of an error (see ",(0,s.jsx)(r.a,{href:"https://h3manth.com/ES2022/#error-cause",children:"ES2022 Error Cause"}),")."]}),"\n",(0,s.jsx)(r.admonition,{type:"tip",children:(0,s.jsxs)(r.p,{children:["To see it in action, click here: ",(0,s.jsx)(u.A,{cause:"Probably undefined is not a function \u{1F604}"})]})}),"\n",(0,s.jsxs)(r.p,{children:["In ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8735",children:"#8735"})," we also made navbar-related error messages clearer to help users understand what they did wrong."]}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.img,{alt:"Docusaurus navbar error message screenshot",src:n(95664).A+"",width:"1676",height:"1614"})}),"\n",(0,s.jsx)(r.h3,{id:"translations",children:"Translations"}),"\n",(0,s.jsx)(r.p,{children:"We made it possible to translate some new elements:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8677",children:"#8677"})," introduces a new ",(0,s.jsx)(r.code,{children:"process.env.DOCUSAURUS_CURRENT_LOCALE"})," (experimental) allowing you to localize your config file, including site title, tagline, announcement bar, baseUrl..."]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8616",children:"#8616"})," allows to translate the navbar and footer logo alt text"]}),"\n"]}),"\n",(0,s.jsx)(r.p,{children:"We added default theme translation support for multiple languages:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["\u{1F1ED}\u{1F1FA} ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8668",children:"#8668"}),": Hungarian"]}),"\n",(0,s.jsxs)(r.li,{children:["\u{1F1F3}\u{1F1F4} ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8631",children:"#8631"}),": Norwegian (Bokm\xe5l)"]}),"\n"]}),"\n",(0,s.jsx)(r.admonition,{type:"tip",children:(0,s.jsxs)(r.p,{children:["Completing theme translations is an ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/issues/3526",children:"ongoing effort"})," and an easy way to contribute to Docusaurus. We add new theme features regularly, for which we often ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/issues/3526",children:"need new translations"}),"."]})}),"\n",(0,s.jsx)(r.h2,{id:"other-changes",children:"Other changes"}),"\n",(0,s.jsx)(r.p,{children:"Other notable changes include:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8674",children:"#8674"}),": respect ",(0,s.jsx)(r.code,{children:"prefers-reduced-motion: reduce"})," media query"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8712",children:"#8712"}),": use a navbar item of type ",(0,s.jsx)(r.code,{children:"docSidebar"})," in template"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8801",children:"#8801"}),": allow tabs children to be falsy"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8757",children:"#8757"}),": make search page react to external query-string changes"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8803",children:"#8803"}),": fix code block buttons position in RTL"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8615",children:"#8615"}),": fix color mode toggle when using dark navbar"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/pull/8699",children:"#8699"}),": fix navbar dropdown tab focus bug"]}),"\n"]}),"\n",(0,s.jsxs)(r.p,{children:["Check the ",(0,s.jsx)(r.strong,{children:(0,s.jsx)(r.a,{href:"/changelog/2.4.0",children:"2.4.0 changelog entry"})})," for an exhaustive list of changes."]})]})}function b(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(m,{...e})}):m(e)}},43023:(e,r,n)=>{n.d(r,{R:()=>i,x:()=>o});var t=n(63696);let s={},a=t.createContext(s);function i(e){let r=t.useContext(a);return t.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:i(e.components),t.createElement(a.Provider,{value:r},e.children)}},32341:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/2.4","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/2.4/index.mdx","source":"@site/blog/releases/2.4/index.mdx","title":"Docusaurus 2.4","description":"We are happy to announce Docusaurus 2.4.","date":"2023-03-23T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.05,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.4","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2023-03-23T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Upgrading frontend dependencies with confidence","permalink":"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing"},"nextItem":{"title":"Docusaurus 2.3","permalink":"/blog/releases/2.3"}}')}}]); \ No newline at end of file diff --git a/assets/js/0bc851e0.e81ca16b.js b/assets/js/0bc851e0.502cfa44.js similarity index 91% rename from assets/js/0bc851e0.e81ca16b.js rename to assets/js/0bc851e0.502cfa44.js index 05629d8d06..01d7f80120 100644 --- a/assets/js/0bc851e0.e81ca16b.js +++ b/assets/js/0bc851e0.502cfa44.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[78121],{95938:(e,s,t)=>{t.d(s,{A:()=>r});let r=t.p+"assets/images/social-card-8dc2413b4f9e86328bf77575e91171d7.png"},10369:(e,s,t)=>{t.d(s,{A:()=>r});let r=t.p+"assets/images/social-card-8dc2413b4f9e86328bf77575e91171d7.png"},10086:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var r=t(38766),a=t(62540),n=t(43023);let o={title:"Docusaurus 2.1",authors:["slorber"],tags:["release"],image:"./img/social-card.png"},i=void 0,u={image:t(95938).A,authorsImageUrls:[void 0]},c=[];function l(e){let s={a:"a",img:"img",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(s.p,{children:["We are happy to announce ",(0,a.jsx)(s.strong,{children:"Docusaurus 2.1"}),", our very first minor version release."]}),"\n",(0,a.jsxs)(s.p,{children:["The upgrade should be easy: as explained in our ",(0,a.jsx)(s.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,a.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"Docusaurus 2.1 social card",src:t(10369).A+"",width:"1200",height:"600"})})]})}function d(e={}){let{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,a.jsx)(s,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>i});var r=t(63696);let a={},n=r.createContext(a);function o(e){let s=r.useContext(n);return r.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(n.Provider,{value:s},e.children)}},38766:e=>{e.exports=JSON.parse('{"permalink":"/blog/2022/09/01/docusaurus-2.1","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2022/09-01-docusaurus-2.1/index.mdx","source":"@site/blog/2022/09-01-docusaurus-2.1/index.mdx","title":"Docusaurus 2.1","description":"We are happy to announce Docusaurus 2.1, our very first minor version release.","date":"2022-09-01T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":1.725,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.1","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 2.2","permalink":"/blog/releases/2.2"},"nextItem":{"title":"Announcing Docusaurus 2.0","permalink":"/blog/2022/08/01/announcing-docusaurus-2.0"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[78121],{95938:(e,s,t)=>{t.d(s,{A:()=>r});let r=t.p+"assets/images/social-card-8dc2413b4f9e86328bf77575e91171d7.png"},10369:(e,s,t)=>{t.d(s,{A:()=>r});let r=t.p+"assets/images/social-card-8dc2413b4f9e86328bf77575e91171d7.png"},10086:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var r=t(38766),a=t(62540),n=t(43023);let o={title:"Docusaurus 2.1",authors:["slorber"],tags:["release"],image:"./img/social-card.png"},i=void 0,u={image:t(95938).A,authorsImageUrls:[void 0]},c=[];function l(e){let s={a:"a",img:"img",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(s.p,{children:["We are happy to announce ",(0,a.jsx)(s.strong,{children:"Docusaurus 2.1"}),", our very first minor version release."]}),"\n",(0,a.jsxs)(s.p,{children:["The upgrade should be easy: as explained in our ",(0,a.jsx)(s.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,a.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"Docusaurus 2.1 social card",src:t(10369).A+"",width:"1200",height:"600"})})]})}function d(e={}){let{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,a.jsx)(s,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>i});var r=t(63696);let a={},n=r.createContext(a);function o(e){let s=r.useContext(n);return r.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(n.Provider,{value:s},e.children)}},38766:e=>{e.exports=JSON.parse('{"permalink":"/blog/2022/09/01/docusaurus-2.1","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2022/09-01-docusaurus-2.1/index.mdx","source":"@site/blog/2022/09-01-docusaurus-2.1/index.mdx","title":"Docusaurus 2.1","description":"We are happy to announce Docusaurus 2.1, our very first minor version release.","date":"2022-09-01T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":1.725,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.1","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 2.2","permalink":"/blog/releases/2.2"},"nextItem":{"title":"Announcing Docusaurus 2.0","permalink":"/blog/2022/08/01/announcing-docusaurus-2.0"}}')}}]); \ No newline at end of file diff --git a/assets/js/6a2ff064.1f296add.js b/assets/js/0c7845dd.34cf979d.js similarity index 80% rename from assets/js/6a2ff064.1f296add.js rename to assets/js/0c7845dd.34cf979d.js index 8e567310d1..fa0d8707d0 100644 --- a/assets/js/6a2ff064.1f296add.js +++ b/assets/js/0c7845dd.34cf979d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[75628],{35405:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>d,default:()=>x,frontMatter:()=>l,metadata:()=>n,toc:()=>r});let n=JSON.parse('{"id":"toc/toc-2-2","title":"toc-2-2","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-2-2.mdx","sourceDirName":"toc","slug":"/toc/toc-2-2","permalink":"/tests/docs/toc/toc-2-2","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":2},"sidebar":"sidebar","previous":{"title":"Another test page","permalink":"/tests/docs/more-test"},"next":{"title":"toc-2-3","permalink":"/tests/docs/toc/toc-2-3"}}');var i=t(62540),c=t(43023),o=t(25128);let l={toc_min_heading_level:2,toc_max_heading_level:2},d=void 0,u={},r=[...o.RM];function h(e){return(0,i.jsx)(o.Ay,{})}function x(e={}){let{wrapper:s}={...(0,c.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}x.displayName="MDXContent(_dogfooding/_docs tests/toc/toc-2-2.mdx)"},25128:(e,s,t)=>{t.d(s,{Ay:()=>l,RM:()=>c});var n=t(62540),i=t(43023);let c=[{value:"section 1",id:"section-1",level:2},{value:"subsection 1-1",id:"subsection-1-1",level:3},{value:"subsection 1-1-1",id:"subsection-1-1-1",level:4},{value:"subsection 1-1-1-1",id:"subsection-1-1-1-1",level:5},{value:"subsection 1-1-1-1-1",id:"subsection-1-1-1-1-1",level:6},{value:"subsection 1-1-1-1-2",id:"subsection-1-1-1-1-2",level:6},{value:"subsection 1-1-1-2",id:"subsection-1-1-1-2",level:5},{value:"subsection 1-1-2",id:"subsection-1-1-2",level:4},{value:"subsection 1-2",id:"subsection-1-2",level:3},{value:"subsection 1-3",id:"subsection-1-3",level:3},{value:"section 2",id:"section-2",level:2},{value:"subsection 2-1",id:"subsection-2-1",level:3},{value:"subsection 2-1",id:"subsection-2-1-1",level:3},{value:"section 3",id:"section-3",level:2},{value:"subsection 3-1",id:"subsection-3-1",level:3},{value:"subsection 3-2",id:"subsection-3-2",level:3}];function o(e){let s={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"title",children:"title"})}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-1",children:"section 1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-1",children:"subsection 1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-1",children:"subsection 1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-1",children:"subsection 1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-1",children:"subsection 1-1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-2",children:"subsection 1-1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-2",children:"subsection 1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-2",children:"subsection 1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-2",children:"subsection 1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-3",children:"subsection 1-3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-2",children:"section 2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-3",children:"section 3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-1",children:"subsection 3-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-2",children:"subsection 3-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"})]})}function l(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>l});var n=t(63696);let i={},c=n.createContext(i);function o(e){let s=n.useContext(c);return n.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),n.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6552],{78346:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>d,default:()=>x,frontMatter:()=>l,metadata:()=>n,toc:()=>r});let n=JSON.parse('{"id":"toc/toc-_-5","title":"toc-_-5","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-_-5.mdx","sourceDirName":"toc","slug":"/toc/toc-_-5","permalink":"/tests/docs/toc/toc-_-5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_max_heading_level":5},"sidebar":"sidebar","previous":{"title":"toc-5-5","permalink":"/tests/docs/toc/toc-5-5"},"next":{"title":"toc-_-_","permalink":"/tests/docs/toc/toc-_-_"}}');var i=t(62540),c=t(43023),o=t(25128);let l={toc_max_heading_level:5},d=void 0,u={},r=[...o.RM];function h(e){return(0,i.jsx)(o.Ay,{})}function x(e={}){let{wrapper:s}={...(0,c.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}x.displayName="MDXContent(_dogfooding/_docs tests/toc/toc-_-5.mdx)"},25128:(e,s,t)=>{t.d(s,{Ay:()=>l,RM:()=>c});var n=t(62540),i=t(43023);let c=[{value:"section 1",id:"section-1",level:2},{value:"subsection 1-1",id:"subsection-1-1",level:3},{value:"subsection 1-1-1",id:"subsection-1-1-1",level:4},{value:"subsection 1-1-1-1",id:"subsection-1-1-1-1",level:5},{value:"subsection 1-1-1-1-1",id:"subsection-1-1-1-1-1",level:6},{value:"subsection 1-1-1-1-2",id:"subsection-1-1-1-1-2",level:6},{value:"subsection 1-1-1-2",id:"subsection-1-1-1-2",level:5},{value:"subsection 1-1-2",id:"subsection-1-1-2",level:4},{value:"subsection 1-2",id:"subsection-1-2",level:3},{value:"subsection 1-3",id:"subsection-1-3",level:3},{value:"section 2",id:"section-2",level:2},{value:"subsection 2-1",id:"subsection-2-1",level:3},{value:"subsection 2-1",id:"subsection-2-1-1",level:3},{value:"section 3",id:"section-3",level:2},{value:"subsection 3-1",id:"subsection-3-1",level:3},{value:"subsection 3-2",id:"subsection-3-2",level:3}];function o(e){let s={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"title",children:"title"})}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-1",children:"section 1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-1",children:"subsection 1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-1",children:"subsection 1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-1",children:"subsection 1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-1",children:"subsection 1-1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-2",children:"subsection 1-1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-2",children:"subsection 1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-2",children:"subsection 1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-2",children:"subsection 1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-3",children:"subsection 1-3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-2",children:"section 2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-3",children:"section 3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-1",children:"subsection 3-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-2",children:"subsection 3-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"})]})}function l(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>l});var n=t(63696);let i={},c=n.createContext(i);function o(e){let s=n.useContext(c);return n.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),n.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0c7845dd.e0192833.js b/assets/js/0c7845dd.e0192833.js deleted file mode 100644 index 6715a0e398..0000000000 --- a/assets/js/0c7845dd.e0192833.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6552],{78346:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>d,default:()=>x,frontMatter:()=>l,metadata:()=>n,toc:()=>r});let n=JSON.parse('{"id":"toc/toc-_-5","title":"toc-_-5","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-_-5.mdx","sourceDirName":"toc","slug":"/toc/toc-_-5","permalink":"/tests/docs/toc/toc-_-5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_max_heading_level":5},"sidebar":"sidebar","previous":{"title":"toc-5-5","permalink":"/tests/docs/toc/toc-5-5"},"next":{"title":"toc-_-_","permalink":"/tests/docs/toc/toc-_-_"}}');var i=t(62540),c=t(43023),o=t(25128);let l={toc_max_heading_level:5},d=void 0,u={},r=[...o.RM];function h(e){return(0,i.jsx)(o.Ay,{})}function x(e={}){let{wrapper:s}={...(0,c.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}x.displayName="MDXContent(_dogfooding/_docs tests/toc/toc-_-5.mdx)"},25128:(e,s,t)=>{t.d(s,{Ay:()=>l,RM:()=>c});var n=t(62540),i=t(43023);let c=[{value:"section 1",id:"section-1",level:2},{value:"subsection 1-1",id:"subsection-1-1",level:3},{value:"subsection 1-1-1",id:"subsection-1-1-1",level:4},{value:"subsection 1-1-1-1",id:"subsection-1-1-1-1",level:5},{value:"subsection 1-1-1-1-1",id:"subsection-1-1-1-1-1",level:6},{value:"subsection 1-1-1-1-2",id:"subsection-1-1-1-1-2",level:6},{value:"subsection 1-1-1-2",id:"subsection-1-1-1-2",level:5},{value:"subsection 1-1-2",id:"subsection-1-1-2",level:4},{value:"subsection 1-2",id:"subsection-1-2",level:3},{value:"subsection 1-3",id:"subsection-1-3",level:3},{value:"section 2",id:"section-2",level:2},{value:"subsection 2-1",id:"subsection-2-1",level:3},{value:"subsection 2-1",id:"subsection-2-1-1",level:3},{value:"section 3",id:"section-3",level:2},{value:"subsection 3-1",id:"subsection-3-1",level:3},{value:"subsection 3-2",id:"subsection-3-2",level:3}];function o(e){let s={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"title",children:"title"})}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-1",children:"section 1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-1",children:"subsection 1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-1",children:"subsection 1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-1",children:"subsection 1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-1",children:"subsection 1-1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-2",children:"subsection 1-1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-2",children:"subsection 1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-2",children:"subsection 1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-2",children:"subsection 1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-3",children:"subsection 1-3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-2",children:"section 2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-3",children:"section 3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-1",children:"subsection 3-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-2",children:"subsection 3-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"})]})}function l(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>l});var n=t(63696);let i={},c=n.createContext(i);function o(e){let s=n.useContext(c);return n.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),n.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0e4d8110.f2a37429.js b/assets/js/0e4d8110.44b76e25.js similarity index 76% rename from assets/js/0e4d8110.f2a37429.js rename to assets/js/0e4d8110.44b76e25.js index ee4b2c229c..59e818e9d5 100644 --- a/assets/js/0e4d8110.f2a37429.js +++ b/assets/js/0e4d8110.44b76e25.js @@ -19,4 +19,4 @@ ${JSON.stringify(e,null,2)}`);return t}(t),c=e?`${e}-${l}`:l,a=`#${c}`,u=(0,s.W6 // highlight-end ], ], -};`})]})]})}},55887:(e,t,r)=>{r.d(t,{A:()=>el});var n,o,i,s={};r.r(s),r.d(s,{ButtonExample:()=>C});var l=r(62540),c=r(63696),a=r(11750),u=r(10709),d=r(55152),p=r(81912),b=r(99468),h=r(40576),f=r(1495),j=r(66659),m=r(25436);function g(){let{prism:e}=(0,m.p)(),{colorMode:t}=(0,j.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var y=r(43758);function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,l.jsx)("div",{className:(0,a.A)("playgroundHeader_Tvsk"),children:e})}function x(){return(0,l.jsx)("div",{children:"Loading..."})}function w(){return(0,l.jsx)(h.A,{fallback:(0,l.jsx)(x,{}),children:()=>(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(y.A,{fallback:e=>(0,l.jsx)(f.MN,O({},e)),children:(0,l.jsx)(d.pA,{})}),(0,l.jsx)(d.p1,{})]})})}function P(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(p.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,l.jsx)("div",{className:"playgroundPreview_mApW",children:(0,l.jsx)(w,{})})]})}function k(){let e=(0,u.A)();return(0,l.jsx)(d.w,{className:"playgroundEditor_TySg"},String(e))}function S(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(p.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,l.jsx)(k,{})]})}let A=e=>`${e};`;function E(e){var t,r,n,o,{children:i,transformCode:s}=e,c=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:a}}=(0,b.A)(),{liveCodeBlock:{playgroundPosition:u}}=a,p=g(),h=null!==(o=null===(n=c.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,l.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,l.jsx)(d.Q,(t=O({code:null==i?void 0:i.replace(/\n$/,""),noInline:h,transformCode:null!=s?s:A,theme:p},c),r=r={children:"top"===u?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(P,{}),(0,l.jsx)(S,{})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(S,{}),(0,l.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function C(e){var t,r;return(0,l.jsx)("button",(t=D({type:"button"},e),r=r={style:D({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let N=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:c},c,s);var B=r(12653),T=r(19934),I=r.n(T);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),_=RegExp("\\{(?<range>[\\d,-]+)\\}"),$={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},R=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},$),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),M=Object.keys($);function F(e,t){let r=e.map(e=>{let{start:r,end:n}=R[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function q(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let i=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(g());return(0,l.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:i,className:(0,a.A)(o.className,"codeBlockContainer_jDV4",B.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let V={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function W({children:e,className:t}){return(0,l.jsx)(q,{as:"pre",tabIndex:0,className:(0,a.A)(V.codeBlockStandalone,"thin-scrollbar",t),children:(0,l.jsx)("code",{className:V.codeBlockLines,children:e})})}var H=r(2550);let U={attributes:!0,characterData:!0,childList:!0,subtree:!0};var Y=r(27663);let G={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function z(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function Q({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var i,s;1===e.length&&"\n"===e[0].content&&(e[0].content="");let c=n({line:e,className:(0,a.A)(t,r&&G.codeLine)}),u=e.map((e,t)=>(0,l.jsx)("span",z({},o({token:e})),t));return(0,l.jsxs)("span",(i=z({},c),s=s={children:[r?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:G.codeLineNumber}),(0,l.jsx)("span",{className:G.codeLineContent,children:u})]}):u,(0,l.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(s)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(s)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(s,e))}),i))}var J=r(936);function X(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function Z(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,c.useState)(!1),o=(0,c.useRef)(void 0),i=(0,c.useCallback)(()=>{(0,J.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,c.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,l.jsx)("button",{type:"button","aria-label":r?(0,p.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:i,children:(0,l.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,l.jsx)(X,{className:K.copyButtonIcon}),(0,l.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,p.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,l.jsx)("button",{type:"button",onClick:t,className:(0,a.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,l.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:i}){var s,u,d,p;let{prism:{defaultLanguage:b,magicComments:h}}=(0,m.p)(),f=null==(u=null!==(s=null!=i?i:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==s?s:b)?void 0:u.toLowerCase(),j=g(),y=function(){let[e,t]=(0,c.useState)(!1),[r,n]=(0,c.useState)(!1),o=(0,c.useRef)(null),i=(0,c.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),s=(0,c.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,c.useState)(),o=(0,c.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,c.useEffect)(()=>{o()},[o]),function(e,t,r=U){let n=(0,H._q)(t),o=(0,H.Be)(r);(0,c.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,s),(0,c.useEffect)(()=>{s()},[e,s]),(0,c.useEffect)(()=>(window.addEventListener("resize",s,{passive:!0}),()=>{window.removeEventListener("resize",s)}),[s]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:i}}(),O=(null!==(p=null==r?void 0:null===(d=r.match(L))||void 0===d?void 0:d.groups.title)&&void 0!==p?p:"")||n,{lineClassNames:v,code:x}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:i}=t;if(i&&_.test(i)){let e=i.match(_).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${i}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(I()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let s=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return F(["js","jsBlock"],t);case"jsx":case"tsx":return F(["js","jsBlock","jsx"],t);case"html":return F(["js","jsBlock","html"],t);case"python":case"py":case"bash":return F(["bash"],t);case"markdown":case"md":return F(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return F(["tex"],t);case"lua":case"haskell":case"sql":return F(["lua"],t);case"wasm":return F(["wasm"],t);case"vb":case"vba":case"visual-basic":return F(["vb","rem"],t);case"vbnet":return F(["vbnet","rem"],t);case"batch":return F(["rem"],t);case"basic":return F(["rem","f90"],t);case"fsharp":return F(["js","ml"],t);case"ocaml":case"sml":return F(["ml"],t);case"fortran":return F(["f90"],t);case"cobol":return F(["cobol"],t);default:return F(M,t)}}(n,o),l=r.split("\n"),c=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),a=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),d=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<l.length;){let t=l[e].match(s);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);a[r]?c[a[r]].range+=`${e},`:u[r]?c[u[r]].start=e:d[r]&&(c[d[r]].range+=`${c[d[r]].start}-${e-1},`),l.splice(e,1)}r=l.join("\n");let p={};return Object.entries(c).forEach(([e,{range:t}])=>{I()(t).forEach(t=>{var r;null!==(r=p[t])&&void 0!==r||(p[t]=[]),p[t].push(e)})}),{lineClassNames:p,code:r}}(e,{metastring:r,language:f,magicComments:h}),w=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,l.jsxs)(q,{as:"div",className:(0,a.A)(t,f&&!t.includes(`language-${f}`)&&`language-${f}`),children:[O&&(0,l.jsx)("div",{className:V.codeBlockTitle,children:O}),(0,l.jsxs)("div",{className:V.codeBlockContent,children:[(0,l.jsx)(Y.f4,{theme:j,code:x,language:null!=f?f:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,l.jsx)("pre",{tabIndex:0,ref:y.codeBlockRef,className:(0,a.A)(e,V.codeBlock,"thin-scrollbar"),style:t,children:(0,l.jsx)("code",{className:(0,a.A)(V.codeBlockLines,w&&V.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,l.jsx)(Q,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:w},t))})})}),(0,l.jsxs)("div",{className:V.buttonGroup,children:[(y.isEnabled||y.isCodeScrollable)&&(0,l.jsx)(en,{className:V.codeButton,onClick:()=>y.toggle(),isEnabled:y.isEnabled}),(0,l.jsx)(ee,{className:V.codeButton,code:x})]})]})]})}function ei(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let es=(i=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let i=(0,u.A)(),s=c.Children.toArray(n).some(e=>(0,c.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,a="string"==typeof s?eo:W;return(0,l.jsx)(a,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:s},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(i))},function(e){return e.live?(0,l.jsx)(E,ei({scope:N},e)):(0,l.jsx)(i,ei({},e))});function el(e){return(0,l.jsx)(es,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}},40173:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>d,default:()=>f,frontMatter:()=>u,metadata:()=>n,toc:()=>b});let n=JSON.parse('{"id":"api/plugins/plugin-sitemap","title":"\u{1F4E6} plugin-sitemap","description":"This plugin creates sitemaps for your site so that search engine crawlers can crawl your site more accurately.","source":"@site/docs/api/plugins/plugin-sitemap.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-sitemap","permalink":"/docs/api/plugins/@docusaurus/plugin-sitemap","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-sitemap.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":10,"frontMatter":{"sidebar_position":10,"slug":"/api/plugins/@docusaurus/plugin-sitemap"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-pwa","permalink":"/docs/api/plugins/@docusaurus/plugin-pwa"},"next":{"title":"\u{1F4E6} plugin-vercel-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-vercel-analytics"}}');var o=r(62540),i=r(43023),s=r(27446),l=r(15995),c=r(59273),a=r(59433);let u={sidebar_position:10,slug:"/api/plugins/@docusaurus/plugin-sitemap"},d="\u{1F4E6} plugin-sitemap",p={},b=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Types",id:"types",level:3},{value:"<code>CreateSitemapItemsFn</code>",id:"CreateSitemapItemsFn",level:4},{value:"Example configuration",id:"ex-config",level:3}];function h(e){let t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",mdxAdmonitionTitle:"mdxAdmonitionTitle",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"-plugin-sitemap",children:"\u{1F4E6} plugin-sitemap"})}),"\n","\n",(0,o.jsx)(t.p,{children:"This plugin creates sitemaps for your site so that search engine crawlers can crawl your site more accurately."}),"\n",(0,o.jsx)(t.admonition,{title:"production only",type:"warning",children:(0,o.jsxs)(t.p,{children:["This plugin is always inactive in development and ",(0,o.jsx)(t.strong,{children:"only active in production"})," because it works on the build output."]})}),"\n",(0,o.jsx)(t.h2,{id:"installation",children:"Installation"}),"\n",(0,o.jsxs)(s.A,{groupId:"npm2yarn",children:[(0,o.jsx)(l.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install --save @docusaurus/plugin-sitemap\n"})})}),(0,o.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn add @docusaurus/plugin-sitemap\n"})})}),(0,o.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm add @docusaurus/plugin-sitemap\n"})})})]}),"\n",(0,o.jsxs)(t.admonition,{type:"tip",children:[(0,o.jsxs)(t.p,{children:["If you use the preset ",(0,o.jsx)(t.code,{children:"@docusaurus/preset-classic"}),", you don't need to install this plugin as a dependency."]}),(0,o.jsxs)(t.p,{children:["You can configure this plugin through the ",(0,o.jsx)(t.a,{href:"/docs/using-plugins#docusauruspreset-classic",children:"preset options"}),"."]})]}),"\n",(0,o.jsx)(t.h2,{id:"configuration",children:"Configuration"}),"\n",(0,o.jsx)(t.p,{children:"Accepted fields:"}),"\n",(0,o.jsx)(c.A,{children:(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Type"}),(0,o.jsx)(t.th,{children:"Default"}),(0,o.jsx)(t.th,{children:"Description"})]})}),(0,o.jsxs)(t.tbody,{children:[(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"lastmod"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"'date' | 'datetime' | null"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"null"})}),(0,o.jsxs)(t.td,{children:[(0,o.jsx)(t.code,{children:"date"})," is YYYY-MM-DD. ",(0,o.jsx)(t.code,{children:"datetime"})," is a ISO 8601 datetime. ",(0,o.jsx)(t.code,{children:"null"})," is disabled. See ",(0,o.jsx)(t.a,{href:"https://www.sitemaps.org/protocol.html#xmlTagDefinitions",children:"sitemap docs"}),"."]})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"changefreq"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"string | null"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"'weekly'"})}),(0,o.jsxs)(t.td,{children:["See ",(0,o.jsx)(t.a,{href:"https://www.sitemaps.org/protocol.html#xmlTagDefinitions",children:"sitemap docs"})]})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"priority"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"number | null"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"0.5"})}),(0,o.jsxs)(t.td,{children:["See ",(0,o.jsx)(t.a,{href:"https://www.sitemaps.org/protocol.html#xmlTagDefinitions",children:"sitemap docs"})]})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"ignorePatterns"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"string[]"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"[]"})}),(0,o.jsx)(t.td,{children:"A list of glob patterns; matching route paths will be filtered from the sitemap. Note that you may need to include the base URL in here."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"filename"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"string"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"sitemap.xml"})}),(0,o.jsx)(t.td,{children:"The path to the created sitemap file, relative to the output directory. Useful if you have two plugin instances outputting two files."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"createSitemapItems"})}),(0,o.jsx)(t.td,{children:(0,o.jsxs)("code",{children:[(0,o.jsx)(t.a,{href:"#CreateSitemapItemsFn",children:"CreateSitemapItemsFn"})," | undefined"]})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"undefined"})}),(0,o.jsx)(t.td,{children:"An optional function which can be used to transform and / or filter the items in the sitemap."})]})]})]})}),"\n",(0,o.jsx)(t.h3,{id:"types",children:"Types"}),"\n",(0,o.jsx)(t.h4,{id:"CreateSitemapItemsFn",children:(0,o.jsx)(t.code,{children:"CreateSitemapItemsFn"})}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-ts",children:"type CreateSitemapItemsFn = (params: {\n siteConfig: DocusaurusConfig;\n routes: RouteConfig[];\n defaultCreateSitemapItems: CreateSitemapItemsFn;\n}) => Promise<SitemapItem[]>;\n"})}),"\n",(0,o.jsxs)(t.admonition,{type:"info",children:[(0,o.jsx)(t.p,{children:"This plugin also respects some site config:"}),(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.a,{href:"/docs/api/docusaurus-config#noIndex",children:(0,o.jsx)(t.code,{children:"noIndex"})}),": results in no sitemap generated"]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.a,{href:"/docs/api/docusaurus-config#trailingSlash",children:(0,o.jsx)(t.code,{children:"trailingSlash"})}),": determines if the URLs in the sitemap have trailing slashes"]}),"\n"]})]}),"\n",(0,o.jsxs)(t.admonition,{type:"note",children:[(0,o.jsxs)(t.mdxAdmonitionTitle,{children:["About ",(0,o.jsx)(t.code,{children:"lastmod"})]}),(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.code,{children:"lastmod"})," option will only output a sitemap ",(0,o.jsx)(t.code,{children:"<lastmod>"})," tag if plugins provide ",(0,o.jsx)(t.a,{href:"/docs/api/plugin-methods/lifecycle-apis#addRoute",children:"route metadata"})," attributes ",(0,o.jsx)(t.code,{children:"sourceFilePath"})," and/or ",(0,o.jsx)(t.code,{children:"lastUpdatedAt"}),"."]}),(0,o.jsxs)(t.p,{children:["All the official content plugins provide the metadata for routes backed by a content file (Markdown, MDX or React page components), but it is possible third-party plugin authors do not provide this information, and the plugin will not be able to output a ",(0,o.jsx)(t.code,{children:"<lastmod>"})," tag for their routes."]})]}),"\n",(0,o.jsx)(t.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,o.jsx)(t.p,{children:"You can configure this plugin through preset options or plugin options."}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsx)(t.p,{children:"Most Docusaurus users configure this plugin through the preset options."})}),"\n","\n",(0,o.jsx)(a.A,{pluginName:"@docusaurus/plugin-sitemap",presetOptionName:"sitemap",code:"{\n lastmod: 'date',\n changefreq: 'weekly',\n priority: 0.5,\n ignorePatterns: ['/tags/**'],\n filename: 'sitemap.xml',\n createSitemapItems: async (params) => {\n const {defaultCreateSitemapItems, ...rest} = params;\n const items = await defaultCreateSitemapItems(rest);\n return items.filter((item) => !item.url.includes('/page/'));\n },\n}"}),"\n",(0,o.jsxs)(t.p,{children:["You can find your sitemap at ",(0,o.jsx)(t.code,{children:"/sitemap.xml"}),"."]})]})}function f(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}}}]); \ No newline at end of file +};`})]})]})}},55887:(e,t,r)=>{r.d(t,{A:()=>el});var n,o,i,s={};r.r(s),r.d(s,{ButtonExample:()=>C});var l=r(62540),c=r(63696),a=r(11750),u=r(10709),d=r(55152),p=r(81912),b=r(99468),h=r(40576),f=r(1495),j=r(66659),m=r(25436);function g(){let{prism:e}=(0,m.p)(),{colorMode:t}=(0,j.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var y=r(43758);function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,l.jsx)("div",{className:(0,a.A)("playgroundHeader_Tvsk"),children:e})}function x(){return(0,l.jsx)("div",{children:"Loading..."})}function w(){return(0,l.jsx)(h.A,{fallback:(0,l.jsx)(x,{}),children:()=>(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(y.A,{fallback:e=>(0,l.jsx)(f.MN,O({},e)),children:(0,l.jsx)(d.pA,{})}),(0,l.jsx)(d.p1,{})]})})}function P(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(p.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,l.jsx)("div",{className:"playgroundPreview_mApW",children:(0,l.jsx)(w,{})})]})}function k(){let e=(0,u.A)();return(0,l.jsx)(d.w,{className:"playgroundEditor_TySg"},String(e))}function S(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(p.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,l.jsx)(k,{})]})}let A=e=>`${e};`;function E(e){var t,r,n,o,{children:i,transformCode:s}=e,c=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:a}}=(0,b.A)(),{liveCodeBlock:{playgroundPosition:u}}=a,p=g(),h=null!==(o=null===(n=c.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,l.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,l.jsx)(d.Q,(t=O({code:null==i?void 0:i.replace(/\n$/,""),noInline:h,transformCode:null!=s?s:A,theme:p},c),r=r={children:"top"===u?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(P,{}),(0,l.jsx)(S,{})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(S,{}),(0,l.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function C(e){var t,r;return(0,l.jsx)("button",(t=D({type:"button"},e),r=r={style:D({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let B=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:c},c,s);var N=r(12653),I=r(19934),T=r.n(I);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),_=RegExp("\\{(?<range>[\\d,-]+)\\}"),$={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},R=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},$),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),M=Object.keys($);function F(e,t){let r=e.map(e=>{let{start:r,end:n}=R[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function q(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let i=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(g());return(0,l.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:i,className:(0,a.A)(o.className,"codeBlockContainer_jDV4",N.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let V={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function W({children:e,className:t}){return(0,l.jsx)(q,{as:"pre",tabIndex:0,className:(0,a.A)(V.codeBlockStandalone,"thin-scrollbar",t),children:(0,l.jsx)("code",{className:V.codeBlockLines,children:e})})}var H=r(2550);let U={attributes:!0,characterData:!0,childList:!0,subtree:!0};var Y=r(27663);let G={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function z(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function Q({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var i,s;1===e.length&&"\n"===e[0].content&&(e[0].content="");let c=n({line:e,className:(0,a.A)(t,r&&G.codeLine)}),u=e.map((e,t)=>(0,l.jsx)("span",z({},o({token:e})),t));return(0,l.jsxs)("span",(i=z({},c),s=s={children:[r?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:G.codeLineNumber}),(0,l.jsx)("span",{className:G.codeLineContent,children:u})]}):u,(0,l.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(s)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(s)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(s,e))}),i))}var J=r(936);function X(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function Z(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,c.useState)(!1),o=(0,c.useRef)(void 0),i=(0,c.useCallback)(()=>{(0,J.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,c.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,l.jsx)("button",{type:"button","aria-label":r?(0,p.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:i,children:(0,l.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,l.jsx)(X,{className:K.copyButtonIcon}),(0,l.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,p.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,l.jsx)("button",{type:"button",onClick:t,className:(0,a.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,l.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:i}){var s,u,d,p;let{prism:{defaultLanguage:b,magicComments:h}}=(0,m.p)(),f=null==(u=null!==(s=null!=i?i:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==s?s:b)?void 0:u.toLowerCase(),j=g(),y=function(){let[e,t]=(0,c.useState)(!1),[r,n]=(0,c.useState)(!1),o=(0,c.useRef)(null),i=(0,c.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),s=(0,c.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,c.useState)(),o=(0,c.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,c.useEffect)(()=>{o()},[o]),function(e,t,r=U){let n=(0,H._q)(t),o=(0,H.Be)(r);(0,c.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,s),(0,c.useEffect)(()=>{s()},[e,s]),(0,c.useEffect)(()=>(window.addEventListener("resize",s,{passive:!0}),()=>{window.removeEventListener("resize",s)}),[s]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:i}}(),O=(null!==(p=null==r?void 0:null===(d=r.match(L))||void 0===d?void 0:d.groups.title)&&void 0!==p?p:"")||n,{lineClassNames:v,code:x}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:i}=t;if(i&&_.test(i)){let e=i.match(_).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${i}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(T()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let s=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return F(["js","jsBlock"],t);case"jsx":case"tsx":return F(["js","jsBlock","jsx"],t);case"html":return F(["js","jsBlock","html"],t);case"python":case"py":case"bash":return F(["bash"],t);case"markdown":case"md":return F(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return F(["tex"],t);case"lua":case"haskell":case"sql":return F(["lua"],t);case"wasm":return F(["wasm"],t);case"vb":case"vba":case"visual-basic":return F(["vb","rem"],t);case"vbnet":return F(["vbnet","rem"],t);case"batch":return F(["rem"],t);case"basic":return F(["rem","f90"],t);case"fsharp":return F(["js","ml"],t);case"ocaml":case"sml":return F(["ml"],t);case"fortran":return F(["f90"],t);case"cobol":return F(["cobol"],t);default:return F(M,t)}}(n,o),l=r.split("\n"),c=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),a=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),d=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<l.length;){let t=l[e].match(s);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);a[r]?c[a[r]].range+=`${e},`:u[r]?c[u[r]].start=e:d[r]&&(c[d[r]].range+=`${c[d[r]].start}-${e-1},`),l.splice(e,1)}r=l.join("\n");let p={};return Object.entries(c).forEach(([e,{range:t}])=>{T()(t).forEach(t=>{var r;null!==(r=p[t])&&void 0!==r||(p[t]=[]),p[t].push(e)})}),{lineClassNames:p,code:r}}(e,{metastring:r,language:f,magicComments:h}),w=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,l.jsxs)(q,{as:"div",className:(0,a.A)(t,f&&!t.includes(`language-${f}`)&&`language-${f}`),children:[O&&(0,l.jsx)("div",{className:V.codeBlockTitle,children:O}),(0,l.jsxs)("div",{className:V.codeBlockContent,children:[(0,l.jsx)(Y.f4,{theme:j,code:x,language:null!=f?f:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,l.jsx)("pre",{tabIndex:0,ref:y.codeBlockRef,className:(0,a.A)(e,V.codeBlock,"thin-scrollbar"),style:t,children:(0,l.jsx)("code",{className:(0,a.A)(V.codeBlockLines,w&&V.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,l.jsx)(Q,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:w},t))})})}),(0,l.jsxs)("div",{className:V.buttonGroup,children:[(y.isEnabled||y.isCodeScrollable)&&(0,l.jsx)(en,{className:V.codeButton,onClick:()=>y.toggle(),isEnabled:y.isEnabled}),(0,l.jsx)(ee,{className:V.codeButton,code:x})]})]})]})}function ei(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let es=(i=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let i=(0,u.A)(),s=c.Children.toArray(n).some(e=>(0,c.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,a="string"==typeof s?eo:W;return(0,l.jsx)(a,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:s},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(i))},function(e){return e.live?(0,l.jsx)(E,ei({scope:B},e)):(0,l.jsx)(i,ei({},e))});function el(e){return(0,l.jsx)(es,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}},40173:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>d,default:()=>f,frontMatter:()=>u,metadata:()=>n,toc:()=>b});let n=JSON.parse('{"id":"api/plugins/plugin-sitemap","title":"\u{1F4E6} plugin-sitemap","description":"This plugin creates sitemaps for your site so that search engine crawlers can crawl your site more accurately.","source":"@site/docs/api/plugins/plugin-sitemap.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-sitemap","permalink":"/docs/api/plugins/@docusaurus/plugin-sitemap","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-sitemap.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":10,"frontMatter":{"sidebar_position":10,"slug":"/api/plugins/@docusaurus/plugin-sitemap"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-pwa","permalink":"/docs/api/plugins/@docusaurus/plugin-pwa"},"next":{"title":"\u{1F4E6} plugin-vercel-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-vercel-analytics"}}');var o=r(62540),i=r(43023),s=r(27446),l=r(15995),c=r(59273),a=r(59433);let u={sidebar_position:10,slug:"/api/plugins/@docusaurus/plugin-sitemap"},d="\u{1F4E6} plugin-sitemap",p={},b=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Types",id:"types",level:3},{value:"<code>CreateSitemapItemsFn</code>",id:"CreateSitemapItemsFn",level:4},{value:"Example configuration",id:"ex-config",level:3}];function h(e){let t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",mdxAdmonitionTitle:"mdxAdmonitionTitle",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"-plugin-sitemap",children:"\u{1F4E6} plugin-sitemap"})}),"\n","\n",(0,o.jsx)(t.p,{children:"This plugin creates sitemaps for your site so that search engine crawlers can crawl your site more accurately."}),"\n",(0,o.jsx)(t.admonition,{title:"production only",type:"warning",children:(0,o.jsxs)(t.p,{children:["This plugin is always inactive in development and ",(0,o.jsx)(t.strong,{children:"only active in production"})," because it works on the build output."]})}),"\n",(0,o.jsx)(t.h2,{id:"installation",children:"Installation"}),"\n",(0,o.jsxs)(s.A,{groupId:"npm2yarn",children:[(0,o.jsx)(l.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install --save @docusaurus/plugin-sitemap\n"})})}),(0,o.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn add @docusaurus/plugin-sitemap\n"})})}),(0,o.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm add @docusaurus/plugin-sitemap\n"})})})]}),"\n",(0,o.jsxs)(t.admonition,{type:"tip",children:[(0,o.jsxs)(t.p,{children:["If you use the preset ",(0,o.jsx)(t.code,{children:"@docusaurus/preset-classic"}),", you don't need to install this plugin as a dependency."]}),(0,o.jsxs)(t.p,{children:["You can configure this plugin through the ",(0,o.jsx)(t.a,{href:"/docs/using-plugins#docusauruspreset-classic",children:"preset options"}),"."]})]}),"\n",(0,o.jsx)(t.h2,{id:"configuration",children:"Configuration"}),"\n",(0,o.jsx)(t.p,{children:"Accepted fields:"}),"\n",(0,o.jsx)(c.A,{children:(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Type"}),(0,o.jsx)(t.th,{children:"Default"}),(0,o.jsx)(t.th,{children:"Description"})]})}),(0,o.jsxs)(t.tbody,{children:[(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"lastmod"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"'date' | 'datetime' | null"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"null"})}),(0,o.jsxs)(t.td,{children:[(0,o.jsx)(t.code,{children:"date"})," is YYYY-MM-DD. ",(0,o.jsx)(t.code,{children:"datetime"})," is a ISO 8601 datetime. ",(0,o.jsx)(t.code,{children:"null"})," is disabled. See ",(0,o.jsx)(t.a,{href:"https://www.sitemaps.org/protocol.html#xmlTagDefinitions",children:"sitemap docs"}),"."]})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"changefreq"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"string | null"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"'weekly'"})}),(0,o.jsxs)(t.td,{children:["See ",(0,o.jsx)(t.a,{href:"https://www.sitemaps.org/protocol.html#xmlTagDefinitions",children:"sitemap docs"})]})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"priority"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"number | null"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"0.5"})}),(0,o.jsxs)(t.td,{children:["See ",(0,o.jsx)(t.a,{href:"https://www.sitemaps.org/protocol.html#xmlTagDefinitions",children:"sitemap docs"})]})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"ignorePatterns"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"string[]"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"[]"})}),(0,o.jsx)(t.td,{children:"A list of glob patterns; matching route paths will be filtered from the sitemap. Note that you may need to include the base URL in here."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"filename"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"string"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"sitemap.xml"})}),(0,o.jsx)(t.td,{children:"The path to the created sitemap file, relative to the output directory. Useful if you have two plugin instances outputting two files."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"createSitemapItems"})}),(0,o.jsx)(t.td,{children:(0,o.jsxs)("code",{children:[(0,o.jsx)(t.a,{href:"#CreateSitemapItemsFn",children:"CreateSitemapItemsFn"})," | undefined"]})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"undefined"})}),(0,o.jsx)(t.td,{children:"An optional function which can be used to transform and / or filter the items in the sitemap."})]})]})]})}),"\n",(0,o.jsx)(t.h3,{id:"types",children:"Types"}),"\n",(0,o.jsx)(t.h4,{id:"CreateSitemapItemsFn",children:(0,o.jsx)(t.code,{children:"CreateSitemapItemsFn"})}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-ts",children:"type CreateSitemapItemsFn = (params: {\n siteConfig: DocusaurusConfig;\n routes: RouteConfig[];\n defaultCreateSitemapItems: CreateSitemapItemsFn;\n}) => Promise<SitemapItem[]>;\n"})}),"\n",(0,o.jsxs)(t.admonition,{type:"info",children:[(0,o.jsx)(t.p,{children:"This plugin also respects some site config:"}),(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.a,{href:"/docs/api/docusaurus-config#noIndex",children:(0,o.jsx)(t.code,{children:"noIndex"})}),": results in no sitemap generated"]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.a,{href:"/docs/api/docusaurus-config#trailingSlash",children:(0,o.jsx)(t.code,{children:"trailingSlash"})}),": determines if the URLs in the sitemap have trailing slashes"]}),"\n"]})]}),"\n",(0,o.jsxs)(t.admonition,{type:"note",children:[(0,o.jsxs)(t.mdxAdmonitionTitle,{children:["About ",(0,o.jsx)(t.code,{children:"lastmod"})]}),(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.code,{children:"lastmod"})," option will only output a sitemap ",(0,o.jsx)(t.code,{children:"<lastmod>"})," tag if plugins provide ",(0,o.jsx)(t.a,{href:"/docs/api/plugin-methods/lifecycle-apis#addRoute",children:"route metadata"})," attributes ",(0,o.jsx)(t.code,{children:"sourceFilePath"})," and/or ",(0,o.jsx)(t.code,{children:"lastUpdatedAt"}),"."]}),(0,o.jsxs)(t.p,{children:["All the official content plugins provide the metadata for routes backed by a content file (Markdown, MDX or React page components), but it is possible third-party plugin authors do not provide this information, and the plugin will not be able to output a ",(0,o.jsx)(t.code,{children:"<lastmod>"})," tag for their routes."]})]}),"\n",(0,o.jsx)(t.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,o.jsx)(t.p,{children:"You can configure this plugin through preset options or plugin options."}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsx)(t.p,{children:"Most Docusaurus users configure this plugin through the preset options."})}),"\n","\n",(0,o.jsx)(a.A,{pluginName:"@docusaurus/plugin-sitemap",presetOptionName:"sitemap",code:"{\n lastmod: 'date',\n changefreq: 'weekly',\n priority: 0.5,\n ignorePatterns: ['/tags/**'],\n filename: 'sitemap.xml',\n createSitemapItems: async (params) => {\n const {defaultCreateSitemapItems, ...rest} = params;\n const items = await defaultCreateSitemapItems(rest);\n return items.filter((item) => !item.url.includes('/page/'));\n },\n}"}),"\n",(0,o.jsxs)(t.p,{children:["You can find your sitemap at ",(0,o.jsx)(t.code,{children:"/sitemap.xml"}),"."]})]})}function f(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}}}]); \ No newline at end of file diff --git a/assets/js/0e9c6edc.9d1bca53.js b/assets/js/0e9c6edc.9d1bca53.js deleted file mode 100644 index a597183b0e..0000000000 --- a/assets/js/0e9c6edc.9d1bca53.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[95454],{95938:(e,n,s)=>{s.d(n,{A:()=>t});let t=s.p+"assets/images/social-card-8dc2413b4f9e86328bf77575e91171d7.png"},75639:(e,n,s)=>{s.d(n,{A:()=>t});let t=s.p+"assets/images/doc-card-list-e52d727eadceb3d21cfc0f851f09aa93.png"},10369:(e,n,s)=>{s.d(n,{A:()=>t});let t=s.p+"assets/images/social-card-8dc2413b4f9e86328bf77575e91171d7.png"},24594:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>c});var t=s(38766),i=s(62540),o=s(43023);let r={title:"Docusaurus 2.1",authors:["slorber"],tags:["release"],image:"./img/social-card.png"},a=void 0,l={image:s(95938).A,authorsImageUrls:[void 0]},c=[{value:"Highlights",id:"highlights",level:2},{value:"DocCardList improvements",id:"doccardlist-improvements",level:3},{value:"<code>noindex</code> improvements",id:"noindex-improvements",level:3},{value:"Overriding default meta tags",id:"overriding-default-meta-tags",level:3},{value:"Ukrainian translations",id:"ukrainian-translations",level:3},{value:"Other changes",id:"other-changes",level:2}];function d(e){let n={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["We are happy to announce ",(0,i.jsx)(n.strong,{children:"Docusaurus 2.1"}),", our very first minor version release."]}),"\n",(0,i.jsxs)(n.p,{children:["The upgrade should be easy: as explained in our ",(0,i.jsx)(n.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,i.jsx)(n.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Docusaurus 2.1 social card",src:s(10369).A+"",width:"1200",height:"600"})}),"\n",(0,i.jsx)(n.h2,{id:"highlights",children:"Highlights"}),"\n",(0,i.jsx)(n.h3,{id:"doccardlist-improvements",children:"DocCardList improvements"}),"\n",(0,i.jsxs)(n.p,{children:["In ",(0,i.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/pull/8008",children:"#8008"}),", we simplified the usage of the",(0,i.jsx)(n.code,{children:"<DocCardList>"})," component, that is notably used on sidebar category generated index pages."]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"items"})," prop is now optional, and will be automatically inferred from the content of the parent sidebar category:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-diff",children:"import DocCardList from '@theme/DocCardList';\n- import {useCurrentSidebarCategory} from '@docusaurus/theme-common';\n\n- <DocCardList items={useCurrentSidebarCategory().items}/>\n+ <DocCardList/>\n"})}),"\n",(0,i.jsx)(n.p,{children:"Also, we made it possible to use it on any document, including regular docs not linked to any sidebar category."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"simplified DocCardList component",src:s(75639).A+"",width:"1062",height:"489"})}),"\n",(0,i.jsxs)(n.h3,{id:"noindex-improvements",children:[(0,i.jsx)(n.code,{children:"noindex"})," improvements"]}),"\n",(0,i.jsxs)(n.p,{children:["We improved the support of the ",(0,i.jsxs)(n.a,{href:"https://developers.google.com/search/docs/advanced/crawling/block-indexing",children:[(0,i.jsx)(n.code,{children:"noindex"})," meta ",(0,i.jsx)(n.code,{children:"robots"})," directive"]}),", a way to signal search engines you don't want a specific page to be indexed."]}),"\n",(0,i.jsxs)(n.p,{children:["In ",(0,i.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/pull/7963",children:"#7963"}),", we allow ",(0,i.jsx)(n.code,{children:"noindex"})," to be configured on a per-docs-version basis."]}),"\n",(0,i.jsxs)(n.p,{children:["Use the following plugin options to tell crawlers you don't want the ",(0,i.jsx)(n.code,{children:"1.0.0"})," version to be indexed:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"const options = {\n versions: {\n '1.0.0': {\n noIndex: true,\n },\n },\n};\n"})}),"\n",(0,i.jsx)(n.p,{children:"In practice, Docusaurus will add the following meta to each page of that version:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-html",children:'<meta name="robots" content="noindex, nofollow" />\n'})}),"\n",(0,i.jsxs)(n.p,{children:["In ",(0,i.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/pull/7964",children:"#7964"}),", we also fixed a bug where the sitemap plugin would still contain pages that have a ",(0,i.jsx)(n.code,{children:"noindex"})," directive. Now the sitemap plugin will reliably filter out all the pages containing ",(0,i.jsx)(n.code,{children:"noindex"})," directives."]}),"\n",(0,i.jsx)(n.h3,{id:"overriding-default-meta-tags",children:"Overriding default meta tags"}),"\n",(0,i.jsxs)(n.p,{children:["In ",(0,i.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/pull/7952",children:"#7952"}),", it becomes possible to override default html meta tags you couldn't before:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:'<>\n {siteConfig.noIndex && <meta name="robots" content="nofollow, noindex" />}\n <meta name="viewport" content="width=device-width, initial-scale=1.0" />\n</>\n'})}),"\n",(0,i.jsxs)(n.p,{children:["It is now possible to use ",(0,i.jsx)(n.code,{children:"<Head>"})," or ",(0,i.jsx)(n.code,{children:"themeConfig.metadata"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["to override the ",(0,i.jsx)(n.code,{children:"viewport"})," meta"]}),"\n",(0,i.jsxs)(n.li,{children:["to override the ",(0,i.jsx)(n.code,{children:"robots"})," meta: you could mark your site as ",(0,i.jsx)(n.code,{children:"noIndex"}),", but except for specific pages that should be indexed"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"ukrainian-translations",children:"Ukrainian translations"}),"\n",(0,i.jsxs)(n.p,{children:["In ",(0,i.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/pull/7953",children:"#7953"}),", we added default classic theme translations for the Ukrainian language."]}),"\n",(0,i.jsx)(n.h2,{id:"other-changes",children:"Other changes"}),"\n",(0,i.jsxs)(n.p,{children:["Check the ",(0,i.jsx)(n.a,{href:"/changelog/2.1.0",children:"2.1.0 changelog entry"})," for an exhaustive list of changes."]})]})}function h(e={}){let{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>a});var t=s(63696);let i={},o=t.createContext(i);function r(e){let n=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(o.Provider,{value:n},e.children)}},38766:e=>{e.exports=JSON.parse('{"permalink":"/blog/2022/09/01/docusaurus-2.1","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2022/09-01-docusaurus-2.1/index.mdx","source":"@site/blog/2022/09-01-docusaurus-2.1/index.mdx","title":"Docusaurus 2.1","description":"We are happy to announce Docusaurus 2.1, our very first minor version release.","date":"2022-09-01T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":1.725,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.1","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 2.2","permalink":"/blog/releases/2.2"},"nextItem":{"title":"Announcing Docusaurus 2.0","permalink":"/blog/2022/08/01/announcing-docusaurus-2.0"}}')}}]); \ No newline at end of file diff --git a/assets/js/0e9c6edc.a18606e3.js b/assets/js/0e9c6edc.a18606e3.js new file mode 100644 index 0000000000..7b653fddec --- /dev/null +++ b/assets/js/0e9c6edc.a18606e3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[95454],{95938:(e,s,n)=>{n.d(s,{A:()=>t});let t=n.p+"assets/images/social-card-8dc2413b4f9e86328bf77575e91171d7.png"},75639:(e,s,n)=>{n.d(s,{A:()=>t});let t=n.p+"assets/images/doc-card-list-e52d727eadceb3d21cfc0f851f09aa93.png"},10369:(e,s,n)=>{n.d(s,{A:()=>t});let t=n.p+"assets/images/social-card-8dc2413b4f9e86328bf77575e91171d7.png"},24594:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>c});var t=n(38766),i=n(62540),o=n(43023);let r={title:"Docusaurus 2.1",authors:["slorber"],tags:["release"],image:"./img/social-card.png"},a=void 0,l={image:n(95938).A,authorsImageUrls:[void 0]},c=[{value:"Highlights",id:"highlights",level:2},{value:"DocCardList improvements",id:"doccardlist-improvements",level:3},{value:"<code>noindex</code> improvements",id:"noindex-improvements",level:3},{value:"Overriding default meta tags",id:"overriding-default-meta-tags",level:3},{value:"Ukrainian translations",id:"ukrainian-translations",level:3},{value:"Other changes",id:"other-changes",level:2}];function d(e){let s={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(s.p,{children:["We are happy to announce ",(0,i.jsx)(s.strong,{children:"Docusaurus 2.1"}),", our very first minor version release."]}),"\n",(0,i.jsxs)(s.p,{children:["The upgrade should be easy: as explained in our ",(0,i.jsx)(s.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,i.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Docusaurus 2.1 social card",src:n(10369).A+"",width:"1200",height:"600"})}),"\n",(0,i.jsx)(s.h2,{id:"highlights",children:"Highlights"}),"\n",(0,i.jsx)(s.h3,{id:"doccardlist-improvements",children:"DocCardList improvements"}),"\n",(0,i.jsxs)(s.p,{children:["In ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8008",children:"#8008"}),", we simplified the usage of the",(0,i.jsx)(s.code,{children:"<DocCardList>"})," component, that is notably used on sidebar category generated index pages."]}),"\n",(0,i.jsxs)(s.p,{children:["The ",(0,i.jsx)(s.code,{children:"items"})," prop is now optional, and will be automatically inferred from the content of the parent sidebar category:"]}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-diff",children:"import DocCardList from '@theme/DocCardList';\n- import {useCurrentSidebarCategory} from '@docusaurus/theme-common';\n\n- <DocCardList items={useCurrentSidebarCategory().items}/>\n+ <DocCardList/>\n"})}),"\n",(0,i.jsx)(s.p,{children:"Also, we made it possible to use it on any document, including regular docs not linked to any sidebar category."}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"simplified DocCardList component",src:n(75639).A+"",width:"1062",height:"489"})}),"\n",(0,i.jsxs)(s.h3,{id:"noindex-improvements",children:[(0,i.jsx)(s.code,{children:"noindex"})," improvements"]}),"\n",(0,i.jsxs)(s.p,{children:["We improved the support of the ",(0,i.jsxs)(s.a,{href:"https://developers.google.com/search/docs/advanced/crawling/block-indexing",children:[(0,i.jsx)(s.code,{children:"noindex"})," meta ",(0,i.jsx)(s.code,{children:"robots"})," directive"]}),", a way to signal search engines you don't want a specific page to be indexed."]}),"\n",(0,i.jsxs)(s.p,{children:["In ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/7963",children:"#7963"}),", we allow ",(0,i.jsx)(s.code,{children:"noindex"})," to be configured on a per-docs-version basis."]}),"\n",(0,i.jsxs)(s.p,{children:["Use the following plugin options to tell crawlers you don't want the ",(0,i.jsx)(s.code,{children:"1.0.0"})," version to be indexed:"]}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-jsx",children:"const options = {\n versions: {\n '1.0.0': {\n noIndex: true,\n },\n },\n};\n"})}),"\n",(0,i.jsx)(s.p,{children:"In practice, Docusaurus will add the following meta to each page of that version:"}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-html",children:'<meta name="robots" content="noindex, nofollow" />\n'})}),"\n",(0,i.jsxs)(s.p,{children:["In ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/7964",children:"#7964"}),", we also fixed a bug where the sitemap plugin would still contain pages that have a ",(0,i.jsx)(s.code,{children:"noindex"})," directive. Now the sitemap plugin will reliably filter out all the pages containing ",(0,i.jsx)(s.code,{children:"noindex"})," directives."]}),"\n",(0,i.jsx)(s.h3,{id:"overriding-default-meta-tags",children:"Overriding default meta tags"}),"\n",(0,i.jsxs)(s.p,{children:["In ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/7952",children:"#7952"}),", it becomes possible to override default html meta tags you couldn't before:"]}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-jsx",children:'<>\n {siteConfig.noIndex && <meta name="robots" content="nofollow, noindex" />}\n <meta name="viewport" content="width=device-width, initial-scale=1.0" />\n</>\n'})}),"\n",(0,i.jsxs)(s.p,{children:["It is now possible to use ",(0,i.jsx)(s.code,{children:"<Head>"})," or ",(0,i.jsx)(s.code,{children:"themeConfig.metadata"}),":"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["to override the ",(0,i.jsx)(s.code,{children:"viewport"})," meta"]}),"\n",(0,i.jsxs)(s.li,{children:["to override the ",(0,i.jsx)(s.code,{children:"robots"})," meta: you could mark your site as ",(0,i.jsx)(s.code,{children:"noIndex"}),", but except for specific pages that should be indexed"]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"ukrainian-translations",children:"Ukrainian translations"}),"\n",(0,i.jsxs)(s.p,{children:["In ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/7953",children:"#7953"}),", we added default classic theme translations for the Ukrainian language."]}),"\n",(0,i.jsx)(s.h2,{id:"other-changes",children:"Other changes"}),"\n",(0,i.jsxs)(s.p,{children:["Check the ",(0,i.jsx)(s.a,{href:"/changelog/2.1.0",children:"2.1.0 changelog entry"})," for an exhaustive list of changes."]})]})}function h(e={}){let{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},43023:(e,s,n)=>{n.d(s,{R:()=>r,x:()=>a});var t=n(63696);let i={},o=t.createContext(i);function r(e){let s=t.useContext(o);return t.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:r(e.components),t.createElement(o.Provider,{value:s},e.children)}},38766:e=>{e.exports=JSON.parse('{"permalink":"/blog/2022/09/01/docusaurus-2.1","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2022/09-01-docusaurus-2.1/index.mdx","source":"@site/blog/2022/09-01-docusaurus-2.1/index.mdx","title":"Docusaurus 2.1","description":"We are happy to announce Docusaurus 2.1, our very first minor version release.","date":"2022-09-01T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":1.725,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.1","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 2.2","permalink":"/blog/releases/2.2"},"nextItem":{"title":"Announcing Docusaurus 2.0","permalink":"/blog/2022/08/01/announcing-docusaurus-2.0"}}')}}]); \ No newline at end of file diff --git a/assets/js/0ec69376.817e7497.js b/assets/js/0ec69376.fa7b3a8f.js similarity index 62% rename from assets/js/0ec69376.817e7497.js rename to assets/js/0ec69376.fa7b3a8f.js index ac3f3dfca2..1f81f7f29a 100644 --- a/assets/js/0ec69376.817e7497.js +++ b/assets/js/0ec69376.fa7b3a8f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[79814],{16302:(e,s,t)=>{t.d(s,{A:()=>a});let a=t.p+"assets/images/social-card-7b2ed059f27fc8b64f3f20025ebb382f.png"},36235:(e,s,t)=>{t.d(s,{A:()=>a});let a=t.p+"assets/images/social-card-7b2ed059f27fc8b64f3f20025ebb382f.png"},48370:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var a=t(83916),r=t(62540),n=t(43023);let o={title:"Docusaurus 3.5",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2024-08-09T00:00:00.000Z")},i=void 0,l={image:t(16302).A,authorsImageUrls:[void 0]},c=[];function u(e){let s={a:"a",img:"img",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:["We are happy to announce ",(0,r.jsx)(s.strong,{children:"Docusaurus 3.5"}),"."]}),"\n",(0,r.jsxs)(s.p,{children:["This release contains many ",(0,r.jsx)(s.strong,{children:"new exciting blog features"}),"."]}),"\n",(0,r.jsxs)(s.p,{children:["Upgrading should be easy. Our ",(0,r.jsx)(s.a,{href:"/community/release-process",children:"release process"})," respects ",(0,r.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"}),". Minor versions do not include any breaking changes."]}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.img,{alt:"Docusaurus blog post social card",src:t(36235).A+"",width:"1200",height:"600"})})]})}function d(e={}){let{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>i});var a=t(63696);let r={},n=a.createContext(r);function o(e){let s=a.useContext(n);return a.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(n.Provider,{value:s},e.children)}},83916:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/3.5","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.5/index.mdx","source":"@site/blog/releases/3.5/index.mdx","title":"Docusaurus 3.5","description":"We are happy to announce Docusaurus 3.5.","date":"2024-08-09T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.91,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.5","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-08-09T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","nextItem":{"title":"Docusaurus 3.4","permalink":"/blog/releases/3.4"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[79814],{16302:(e,s,t)=>{t.d(s,{A:()=>r});let r=t.p+"assets/images/social-card-7b2ed059f27fc8b64f3f20025ebb382f.png"},36235:(e,s,t)=>{t.d(s,{A:()=>r});let r=t.p+"assets/images/social-card-7b2ed059f27fc8b64f3f20025ebb382f.png"},48370:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var r=t(83916),a=t(62540),n=t(43023);let o={title:"Docusaurus 3.5",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2024-08-09T00:00:00.000Z")},i=void 0,l={image:t(16302).A,authorsImageUrls:[void 0]},c=[];function u(e){let s={a:"a",img:"img",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(s.p,{children:["We are happy to announce ",(0,a.jsx)(s.strong,{children:"Docusaurus 3.5"}),"."]}),"\n",(0,a.jsxs)(s.p,{children:["This release contains many ",(0,a.jsx)(s.strong,{children:"new exciting blog features"}),"."]}),"\n",(0,a.jsxs)(s.p,{children:["Upgrading should be easy. Our ",(0,a.jsx)(s.a,{href:"/community/release-process",children:"release process"})," respects ",(0,a.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"}),". Minor versions do not include any breaking changes."]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"Docusaurus blog post social card",src:t(36235).A+"",width:"1200",height:"600"})})]})}function d(e={}){let{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,a.jsx)(s,{...e,children:(0,a.jsx)(u,{...e})}):u(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>i});var r=t(63696);let a={},n=r.createContext(a);function o(e){let s=r.useContext(n);return r.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(n.Provider,{value:s},e.children)}},83916:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/3.5","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.5/index.mdx","source":"@site/blog/releases/3.5/index.mdx","title":"Docusaurus 3.5","description":"We are happy to announce Docusaurus 3.5.","date":"2024-08-09T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.91,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.5","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-08-09T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","nextItem":{"title":"Docusaurus 3.4","permalink":"/blog/releases/3.4"}}')}}]); \ No newline at end of file diff --git a/assets/js/11336.4519bd73.js b/assets/js/11336.4519bd73.js deleted file mode 100644 index abee81826b..0000000000 --- a/assets/js/11336.4519bd73.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[11336],{11336:(e,t,n)=>{n.d(t,{c:()=>eU});var r={};n.r(r),n.d(r,{attentionMarkers:()=>eC,contentInitial:()=>eb,disable:()=>eT,document:()=>ev,flow:()=>eE,flowInitial:()=>eS,insideSpan:()=>ew,string:()=>eA,text:()=>eI});var i=n(17367);let u={};function o(e,t,n){if(e&&"object"==typeof e){if("value"in e)return"html"!==e.type||n?e.value:"";if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return c(e.children,t,n)}return Array.isArray(e)?c(e,t,n):""}function c(e,t,n){let r=[],i=-1;for(;++i<e.length;)r[i]=o(e[i],t,n);return r.join("")}function l(e,t,n,r){let i;let u=e.length,o=0;if(t=t<0?-t>u?0:u+t:t>u?u:t,n=n>0?n:0,r.length<1e4)(i=Array.from(r)).unshift(t,n),e.splice(...i);else for(n&&e.splice(t,n);o<r.length;)(i=r.slice(o,o+1e4)).unshift(t,0),e.splice(...i),o+=1e4,t+=1e4}function s(e,t){return e.length>0?(l(e,e.length,0,t),e):t}let a={}.hasOwnProperty,f=S(/[A-Za-z]/),d=S(/[\dA-Za-z]/),h=S(/[#-'*+\--9=?A-Z^-~]/);function p(e){return null!==e&&(e<32||127===e)}let m=S(/\d/),g=S(/[\dA-Fa-f]/),x=S(/[!-/:-@[-`{-~]/);function k(e){return null!==e&&e<-2}function y(e){return null!==e&&(e<0||32===e)}function F(e){return -2===e||-1===e||32===e}let v=S(/[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/),b=S(/\s/);function S(e){return function(t){return null!==t&&e.test(String.fromCharCode(t))}}function E(e,t,n,r){let i=r?r-1:Number.POSITIVE_INFINITY,u=0;return function(r){return F(r)?(e.enter(n),function r(o){return F(o)&&u++<i?(e.consume(o),r):(e.exit(n),t(o))}(r)):t(r)}}let A={tokenize:function(e){let t;let n=e.attempt(this.parser.constructs.contentInitial,function(t){if(null===t){e.consume(t);return}return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),E(e,n,"linePrefix")},function(n){return e.enter("paragraph"),function n(r){let i=e.enter("chunkText",{contentType:"text",previous:t});return t&&(t.next=i),t=i,function t(r){if(null===r){e.exit("chunkText"),e.exit("paragraph"),e.consume(r);return}return k(r)?(e.consume(r),e.exit("chunkText"),n):(e.consume(r),t)}(r)}(n)});return n}},I={tokenize:function(e){let t,n,r;let i=this,u=[],o=0;return c;function c(t){if(o<u.length){let n=u[o];return i.containerState=n[1],e.attempt(n[0].continuation,s,a)(t)}return a(t)}function s(e){if(o++,i.containerState._closeFlow){let n;i.containerState._closeFlow=void 0,t&&y();let r=i.events.length,u=r;for(;u--;)if("exit"===i.events[u][0]&&"chunkFlow"===i.events[u][1].type){n=i.events[u][1].end;break}x(o);let c=r;for(;c<i.events.length;)i.events[c][1].end=Object.assign({},n),c++;return l(i.events,u+1,0,i.events.slice(r)),i.events.length=c,a(e)}return c(e)}function a(n){if(o===u.length){if(!t)return h(n);if(t.currentConstruct&&t.currentConstruct.concrete)return m(n);i.interrupt=!!(t.currentConstruct&&!t._gfmTableDynamicInterruptHack)}return i.containerState={},e.check(w,f,d)(n)}function f(e){return t&&y(),x(o),h(e)}function d(e){return i.parser.lazy[i.now().line]=o!==u.length,r=i.now().offset,m(e)}function h(t){return i.containerState={},e.attempt(w,p,m)(t)}function p(e){return o++,u.push([i.currentConstruct,i.containerState]),h(e)}function m(r){if(null===r){t&&y(),x(0),e.consume(r);return}return t=t||i.parser.flow(i.now()),e.enter("chunkFlow",{contentType:"flow",previous:n,_tokenizer:t}),function t(n){if(null===n){g(e.exit("chunkFlow"),!0),x(0),e.consume(n);return}return k(n)?(e.consume(n),g(e.exit("chunkFlow")),o=0,i.interrupt=void 0,c):(e.consume(n),t)}(r)}function g(e,u){let c=i.sliceStream(e);if(u&&c.push(null),e.previous=n,n&&(n.next=e),n=e,t.defineSkip(e.start),t.write(c),i.parser.lazy[e.start.line]){let e,n,u=t.events.length;for(;u--;)if(t.events[u][1].start.offset<r&&(!t.events[u][1].end||t.events[u][1].end.offset>r))return;let c=i.events.length,s=c;for(;s--;)if("exit"===i.events[s][0]&&"chunkFlow"===i.events[s][1].type){if(e){n=i.events[s][1].end;break}e=!0}for(x(o),u=c;u<i.events.length;)i.events[u][1].end=Object.assign({},n),u++;l(i.events,s+1,0,i.events.slice(c)),i.events.length=u}}function x(t){let n=u.length;for(;n-- >t;){let t=u[n];i.containerState=t[1],t[0].exit.call(i,e)}u.length=t}function y(){t.write([null]),n=void 0,t=void 0,i.containerState._closeFlow=void 0}}},w={tokenize:function(e,t,n){return E(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}},C={tokenize:function(e,t,n){return function(t){return F(t)?E(e,r,"linePrefix")(t):r(t)};function r(e){return null===e||k(e)?t(e):n(e)}},partial:!0};function T(e,t,n,r){let i;let u=e.length,o=0;if(t=t<0?-t>u?0:u+t:t>u?u:t,n=n>0?n:0,r.length<1e4)(i=Array.from(r)).unshift(t,n),e.splice(...i);else for(n&&e.splice(t,n);o<r.length;)(i=r.slice(o,o+1e4)).unshift(t,0),e.splice(...i),o+=1e4,t+=1e4}function z(e){let t,n,r,i,u,o,c;let l={},s=-1;for(;++s<e.length;){for(;s in l;)s=l[s];if(t=e[s],s&&"chunkFlow"===t[1].type&&"listItemPrefix"===e[s-1][1].type&&((r=0)<(o=t[1]._tokenizer.events).length&&"lineEndingBlank"===o[r][1].type&&(r+=2),r<o.length&&"content"===o[r][1].type))for(;++r<o.length&&"content"!==o[r][1].type;)"chunkText"===o[r][1].type&&(o[r][1]._isInFirstContentOfListItem=!0,r++);if("enter"===t[0])t[1].contentType&&(Object.assign(l,function(e,t){let n,r;let i=e[t][1],u=e[t][2],o=t-1,c=[],l=i._tokenizer||u.parser[i.contentType](i.start),s=l.events,a=[],f={},d=-1,h=i,p=0,m=0,g=[0];for(;h;){for(;e[++o][1]!==h;);c.push(o),!h._tokenizer&&(n=u.sliceStream(h),h.next||n.push(null),r&&l.defineSkip(h.start),h._isInFirstContentOfListItem&&(l._gfmTasklistFirstContentOfListItem=!0),l.write(n),h._isInFirstContentOfListItem&&(l._gfmTasklistFirstContentOfListItem=void 0)),r=h,h=h.next}for(h=i;++d<s.length;)"exit"===s[d][0]&&"enter"===s[d-1][0]&&s[d][1].type===s[d-1][1].type&&s[d][1].start.line!==s[d][1].end.line&&(m=d+1,g.push(m),h._tokenizer=void 0,h.previous=void 0,h=h.next);for(l.events=[],h?(h._tokenizer=void 0,h.previous=void 0):g.pop(),d=g.length;d--;){let t=s.slice(g[d],g[d+1]),n=c.pop();a.unshift([n,n+t.length-1]),T(e,n,2,t)}for(d=-1;++d<a.length;)f[p+a[d][0]]=p+a[d][1],p+=a[d][1]-a[d][0]-1;return f}(e,s)),s=l[s],c=!0);else if(t[1]._container){for(r=s,n=void 0;r--;)if("lineEnding"===(i=e[r])[1].type||"lineEndingBlank"===i[1].type)"enter"===i[0]&&(n&&(e[n][1].type="lineEndingBlank"),i[1].type="lineEnding",n=r);else break;n&&(t[1].end=Object.assign({},e[n][1].start),(u=e.slice(n,s)).unshift(t),T(e,n,s-n+1,u))}}return!c}let D={tokenize:function(e,t){let n;return function(t){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),r(t)};function r(t){return null===t?i(t):k(t)?e.check(B,u,i)(t):(e.consume(t),r)}function i(n){return e.exit("chunkContent"),e.exit("content"),t(n)}function u(t){return e.consume(t),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,r}},resolve:function(e){return z(e),e}},B={tokenize:function(e,t,n){let r=this;return function(t){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),E(e,i,"linePrefix")};function i(i){if(null===i||k(i))return n(i);let u=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&u&&"linePrefix"===u[1].type&&u[2].sliceSerialize(u[1],!0).length>=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}},partial:!0},_={tokenize:function(e){let t=this,n=e.attempt(C,function(r){if(null===r){e.consume(r);return}return e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n},e.attempt(this.parser.constructs.flowInitial,r,E(e,e.attempt(this.parser.constructs.flow,r,e.attempt(D,r)),"linePrefix")));return n;function r(r){if(null===r){e.consume(r);return}return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),t.currentConstruct=void 0,n}}},L={resolveAll:j()},M=O("string"),P=O("text");function O(e){return{tokenize:function(t){let n=this,r=this.parser.constructs[e],i=t.attempt(r,u,o);return u;function u(e){return l(e)?i(e):o(e)}function o(e){if(null===e){t.consume(e);return}return t.enter("data"),t.consume(e),c}function c(e){return l(e)?(t.exit("data"),i(e)):(t.consume(e),c)}function l(e){if(null===e)return!0;let t=r[e],i=-1;if(t)for(;++i<t.length;){let e=t[i];if(!e.previous||e.previous.call(n,n.previous))return!0}return!1}},resolveAll:j("text"===e?H:void 0)}}function j(e){return function(t,n){let r,i=-1;for(;++i<=t.length;)void 0===r?t[i]&&"data"===t[i][1].type&&(r=i,i++):t[i]&&"data"===t[i][1].type||(i!==r+2&&(t[r][1].end=t[i-1][1].end,t.splice(r+2,i-r-2),i=r+2),r=void 0);return e?e(t,n):t}}function H(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||"lineEnding"===e[n][1].type)&&"data"===e[n-1][1].type){let r;let i=e[n-1][1],u=t.sliceStream(i),o=u.length,c=-1,l=0;for(;o--;){let e=u[o];if("string"==typeof e){for(c=e.length;32===e.charCodeAt(c-1);)l++,c--;if(c)break;c=-1}else if(-2===e)r=!0,l++;else if(-1===e);else{o++;break}}if(l){let u={type:n===e.length||r||l<2?"lineSuffix":"hardBreakTrailing",start:{line:i.end.line,column:i.end.column-l,offset:i.end.offset-l,_index:i.start._index+o,_bufferIndex:o?c:i.start._bufferIndex+c},end:Object.assign({},i.end)};i.end=Object.assign({},u.start),i.start.offset===i.end.offset?Object.assign(i,u):(e.splice(n,0,["enter",u,t],["exit",u,t]),n+=2)}n++}return e}function R(e,t,n){let r=[],i=-1;for(;++i<e.length;){let u=e[i].resolveAll;u&&!r.includes(u)&&(t=u(t,n),r.push(u))}return t}let q={name:"thematicBreak",tokenize:function(e,t,n){let r,i=0;return function(u){return e.enter("thematicBreak"),r=u,function u(o){return o===r?(e.enter("thematicBreakSequence"),function t(n){return n===r?(e.consume(n),i++,t):(e.exit("thematicBreakSequence"),F(n)?E(e,u,"whitespace")(n):u(n))}(o)):i>=3&&(null===o||k(o))?(e.exit("thematicBreak"),t(o)):n(o)}(u)}}},V={name:"list",tokenize:function(e,t,n){let r=this,i=r.events[r.events.length-1],u=i&&"linePrefix"===i[1].type?i[2].sliceSerialize(i[1],!0).length:0,o=0;return function(t){let i=r.containerState.type||(42===t||43===t||45===t?"listUnordered":"listOrdered");if("listUnordered"===i?!r.containerState.marker||t===r.containerState.marker:m(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),"listUnordered"===i)return e.enter("listItemPrefix"),42===t||45===t?e.check(q,n,c)(t):c(t);if(!r.interrupt||49===t)return e.enter("listItemPrefix"),e.enter("listItemValue"),function t(i){return m(i)&&++o<10?(e.consume(i),t):(!r.interrupt||o<2)&&(r.containerState.marker?i===r.containerState.marker:41===i||46===i)?(e.exit("listItemValue"),c(i)):n(i)}(t)}return n(t)};function c(t){return e.enter("listItemMarker"),e.consume(t),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||t,e.check(C,r.interrupt?n:l,e.attempt(Q,a,s))}function l(e){return r.containerState.initialBlankLine=!0,u++,a(e)}function s(t){return F(t)?(e.enter("listItemPrefixWhitespace"),e.consume(t),e.exit("listItemPrefixWhitespace"),a):n(t)}function a(n){return r.containerState.size=u+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(n)}},continuation:{tokenize:function(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(C,function(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,E(e,t,"listItemIndent",r.containerState.size+1)(n)},function(n){return r.containerState.furtherBlankLines||!F(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,i(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(N,t,i)(n))});function i(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,E(e,e.attempt(V,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(i)}}},exit:function(e){e.exit(this.containerState.type)}},Q={tokenize:function(e,t,n){let r=this;return E(e,function(e){let i=r.events[r.events.length-1];return!F(e)&&i&&"listItemPrefixWhitespace"===i[1].type?t(e):n(e)},"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5)},partial:!0},N={tokenize:function(e,t,n){let r=this;return E(e,function(e){let i=r.events[r.events.length-1];return i&&"listItemIndent"===i[1].type&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)},"listItemIndent",r.containerState.size+1)},partial:!0},U={name:"blockQuote",tokenize:function(e,t,n){let r=this;return function(t){if(62===t){let n=r.containerState;return n.open||(e.enter("blockQuote",{_container:!0}),n.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(t),e.exit("blockQuoteMarker"),i}return n(t)};function i(n){return F(n)?(e.enter("blockQuotePrefixWhitespace"),e.consume(n),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(n))}},continuation:{tokenize:function(e,t,n){let r=this;return function(t){return F(t)?E(e,i,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):i(t)};function i(r){return e.attempt(U,t,n)(r)}}},exit:function(e){e.exit("blockQuote")}};function $(e,t,n,r,i,u,o,c,l){let s=l||Number.POSITIVE_INFINITY,a=0;return function(t){return 60===t?(e.enter(r),e.enter(i),e.enter(u),e.consume(t),e.exit(u),f):null===t||32===t||41===t||p(t)?n(t):(e.enter(r),e.enter(o),e.enter(c),e.enter("chunkString",{contentType:"string"}),m(t))};function f(n){return 62===n?(e.enter(u),e.consume(n),e.exit(u),e.exit(i),e.exit(r),t):(e.enter(c),e.enter("chunkString",{contentType:"string"}),d(n))}function d(t){return 62===t?(e.exit("chunkString"),e.exit(c),f(t)):null===t||60===t||k(t)?n(t):(e.consume(t),92===t?h:d)}function h(t){return 60===t||62===t||92===t?(e.consume(t),d):d(t)}function m(i){return!a&&(null===i||41===i||y(i))?(e.exit("chunkString"),e.exit(c),e.exit(o),e.exit(r),t(i)):a<s&&40===i?(e.consume(i),a++,m):41===i?(e.consume(i),a--,m):null===i||32===i||40===i||p(i)?n(i):(e.consume(i),92===i?g:m)}function g(t){return 40===t||41===t||92===t?(e.consume(t),m):m(t)}}function W(e,t,n,r,i,u){let o;let c=this,l=0;return function(t){return e.enter(r),e.enter(i),e.consume(t),e.exit(i),e.enter(u),s};function s(f){return l>999||null===f||91===f||93===f&&!o||94===f&&!l&&"_hiddenFootnoteSupport"in c.parser.constructs?n(f):93===f?(e.exit(u),e.enter(i),e.consume(f),e.exit(i),e.exit(r),t):k(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),s):(e.enter("chunkString",{contentType:"string"}),a(f))}function a(t){return null===t||91===t||93===t||k(t)||l++>999?(e.exit("chunkString"),s(t)):(e.consume(t),o||(o=!F(t)),92===t?f:a)}function f(t){return 91===t||92===t||93===t?(e.consume(t),l++,a):a(t)}}function Z(e,t,n,r,i,u){let o;return function(t){return 34===t||39===t||40===t?(e.enter(r),e.enter(i),e.consume(t),e.exit(i),o=40===t?41:t,c):n(t)};function c(n){return n===o?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(u),l(n))}function l(t){return t===o?(e.exit(u),c(o)):null===t?n(t):k(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),E(e,l,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),s(t))}function s(t){return t===o||null===t||k(t)?(e.exit("chunkString"),l(t)):(e.consume(t),92===t?a:s)}function a(t){return t===o||92===t?(e.consume(t),s):s(t)}}function Y(e,t){let n;return function r(i){return k(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):F(i)?E(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}function G(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}let J={tokenize:function(e,t,n){return function(t){return y(t)?Y(e,r)(t):n(t)};function r(t){return Z(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t)}function i(t){return F(t)?E(e,u,"whitespace")(t):u(t)}function u(e){return null===e||k(e)?t(e):n(e)}},partial:!0},K={name:"codeIndented",tokenize:function(e,t,n){let r=this;return function(t){return e.enter("codeIndented"),E(e,i,"linePrefix",5)(t)};function i(t){let i=r.events[r.events.length-1];return i&&"linePrefix"===i[1].type&&i[2].sliceSerialize(i[1],!0).length>=4?function t(n){return null===n?u(n):k(n)?e.attempt(X,t,u)(n):(e.enter("codeFlowValue"),function n(r){return null===r||k(r)?(e.exit("codeFlowValue"),t(r)):(e.consume(r),n)}(n))}(t):n(t)}function u(n){return e.exit("codeIndented"),t(n)}}},X={tokenize:function(e,t,n){let r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):k(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i):E(e,u,"linePrefix",5)(t)}function u(e){let u=r.events[r.events.length-1];return u&&"linePrefix"===u[1].type&&u[2].sliceSerialize(u[1],!0).length>=4?t(e):k(e)?i(e):n(e)}},partial:!0},ee={name:"setextUnderline",tokenize:function(e,t,n){let r;let i=this;return function(t){let o,c=i.events.length;for(;c--;)if("lineEnding"!==i.events[c][1].type&&"linePrefix"!==i.events[c][1].type&&"content"!==i.events[c][1].type){o="paragraph"===i.events[c][1].type;break}return!i.parser.lazy[i.now().line]&&(i.interrupt||o)?(e.enter("setextHeadingLine"),r=t,e.enter("setextHeadingLineSequence"),function t(n){return n===r?(e.consume(n),t):(e.exit("setextHeadingLineSequence"),F(n)?E(e,u,"lineSuffix")(n):u(n))}(t)):n(t)};function u(r){return null===r||k(r)?(e.exit("setextHeadingLine"),t(r)):n(r)}},resolveTo:function(e,t){let n,r,i,u=e.length;for(;u--;)if("enter"===e[u][0]){if("content"===e[u][1].type){n=u;break}"paragraph"===e[u][1].type&&(r=u)}else"content"===e[u][1].type&&e.splice(u,1),i||"definition"!==e[u][1].type||(i=u);let o={type:"setextHeading",start:Object.assign({},e[r][1].start),end:Object.assign({},e[e.length-1][1].end)};return e[r][1].type="setextHeadingText",i?(e.splice(r,0,["enter",o,t]),e.splice(i+1,0,["exit",e[n][1],t]),e[n][1].end=Object.assign({},e[i][1].end)):e[n][1]=o,e.push(["exit",o,t]),e}},et=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],en=["pre","script","style","textarea"],er={tokenize:function(e,t,n){return function(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),e.attempt(C,t,n)}},partial:!0},ei={tokenize:function(e,t,n){let r=this;return function(t){return k(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i):n(t)};function i(e){return r.parser.lazy[r.now().line]?n(e):t(e)}},partial:!0},eu={tokenize:function(e,t,n){let r=this;return function(t){return null===t?n(t):(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i)};function i(e){return r.parser.lazy[r.now().line]?n(e):t(e)}},partial:!0},eo={name:"codeFenced",tokenize:function(e,t,n){let r;let i=this,u={tokenize:function(e,t,n){let u=0;return function(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),o};function o(t){return e.enter("codeFencedFence"),F(t)?E(e,l,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):l(t)}function l(t){return t===r?(e.enter("codeFencedFenceSequence"),function t(i){return i===r?(u++,e.consume(i),t):u>=c?(e.exit("codeFencedFenceSequence"),F(i)?E(e,s,"whitespace")(i):s(i)):n(i)}(t)):n(t)}function s(r){return null===r||k(r)?(e.exit("codeFencedFence"),t(r)):n(r)}},partial:!0},o=0,c=0;return function(t){return function(t){let u=i.events[i.events.length-1];return o=u&&"linePrefix"===u[1].type?u[2].sliceSerialize(u[1],!0).length:0,r=t,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),function t(i){return i===r?(c++,e.consume(i),t):c<3?n(i):(e.exit("codeFencedFenceSequence"),F(i)?E(e,l,"whitespace")(i):l(i))}(t)}(t)};function l(u){return null===u||k(u)?(e.exit("codeFencedFence"),i.interrupt?t(u):e.check(eu,a,p)(u)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),function t(i){return null===i||k(i)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),l(i)):F(i)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),E(e,s,"whitespace")(i)):96===i&&i===r?n(i):(e.consume(i),t)}(u))}function s(t){return null===t||k(t)?l(t):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),function t(i){return null===i||k(i)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),l(i)):96===i&&i===r?n(i):(e.consume(i),t)}(t))}function a(t){return e.attempt(u,p,f)(t)}function f(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),d}function d(t){return o>0&&F(t)?E(e,h,"linePrefix",o+1)(t):h(t)}function h(t){return null===t||k(t)?e.check(eu,a,p)(t):(e.enter("codeFlowValue"),function t(n){return null===n||k(n)?(e.exit("codeFlowValue"),h(n)):(e.consume(n),t)}(t))}function p(n){return e.exit("codeFenced"),t(n)}},concrete:!0},ec=document.createElement("i");function el(e){let t="&"+e+";";ec.innerHTML=t;let n=ec.textContent;return(59!==n.charCodeAt(n.length-1)||"semi"===e)&&n!==t&&n}let es={name:"characterReference",tokenize:function(e,t,n){let r,i;let u=this,o=0;return function(t){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(t),e.exit("characterReferenceMarker"),c};function c(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),l):(e.enter("characterReferenceValue"),r=31,i=d,s(t))}function l(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),r=6,i=g,s):(e.enter("characterReferenceValue"),r=7,i=m,s(t))}function s(c){if(59===c&&o){let r=e.exit("characterReferenceValue");return i!==d||el(u.sliceSerialize(r))?(e.enter("characterReferenceMarker"),e.consume(c),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):n(c)}return i(c)&&o++<r?(e.consume(c),s):n(c)}}},ea={name:"characterEscape",tokenize:function(e,t,n){return function(t){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(t),e.exit("escapeMarker"),r};function r(r){return x(r)?(e.enter("characterEscapeValue"),e.consume(r),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(r)}}},ef={name:"lineEnding",tokenize:function(e,t){return function(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),E(e,t,"linePrefix")}}},ed={name:"labelEnd",tokenize:function(e,t,n){let r,i;let u=this,o=u.events.length;for(;o--;)if(("labelImage"===u.events[o][1].type||"labelLink"===u.events[o][1].type)&&!u.events[o][1]._balanced){r=u.events[o][1];break}return function(t){return r?r._inactive?a(t):(i=u.parser.defined.includes(G(u.sliceSerialize({start:r.end,end:u.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelEnd"),c):n(t)};function c(t){return 40===t?e.attempt(eh,s,i?s:a)(t):91===t?e.attempt(ep,s,i?l:a)(t):i?s(t):a(t)}function l(t){return e.attempt(em,s,a)(t)}function s(e){return t(e)}function a(e){return r._balanced=!0,n(e)}},resolveTo:function(e,t){let n,r,i,u,o=e.length,c=0;for(;o--;)if(n=e[o][1],r){if("link"===n.type||"labelLink"===n.type&&n._inactive)break;"enter"===e[o][0]&&"labelLink"===n.type&&(n._inactive=!0)}else if(i){if("enter"===e[o][0]&&("labelImage"===n.type||"labelLink"===n.type)&&!n._balanced&&(r=o,"labelLink"!==n.type)){c=2;break}}else"labelEnd"===n.type&&(i=o);let a={type:"labelLink"===e[r][1].type?"link":"image",start:Object.assign({},e[r][1].start),end:Object.assign({},e[e.length-1][1].end)},f={type:"label",start:Object.assign({},e[r][1].start),end:Object.assign({},e[i][1].end)},d={type:"labelText",start:Object.assign({},e[r+c+2][1].end),end:Object.assign({},e[i-2][1].start)};return u=s(u=[["enter",a,t],["enter",f,t]],e.slice(r+1,r+c+3)),u=s(u,[["enter",d,t]]),u=s(u,R(t.parser.constructs.insideSpan.null,e.slice(r+c+4,i-3),t)),u=s(u,[["exit",d,t],e[i-2],e[i-1],["exit",f,t]]),u=s(u,e.slice(i+1)),u=s(u,[["exit",a,t]]),l(e,r,e.length,u),e},resolveAll:function(e){let t=-1;for(;++t<e.length;){let n=e[t][1];("labelImage"===n.type||"labelLink"===n.type||"labelEnd"===n.type)&&(e.splice(t+1,"labelImage"===n.type?4:2),n.type="data",t++)}return e}},eh={tokenize:function(e,t,n){return function(t){return e.enter("resource"),e.enter("resourceMarker"),e.consume(t),e.exit("resourceMarker"),r};function r(t){return y(t)?Y(e,i)(t):i(t)}function i(t){return 41===t?s(t):$(e,u,o,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(t)}function u(t){return y(t)?Y(e,c)(t):s(t)}function o(e){return n(e)}function c(t){return 34===t||39===t||40===t?Z(e,l,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(t):s(t)}function l(t){return y(t)?Y(e,s)(t):s(t)}function s(r){return 41===r?(e.enter("resourceMarker"),e.consume(r),e.exit("resourceMarker"),e.exit("resource"),t):n(r)}}},ep={tokenize:function(e,t,n){let r=this;return function(t){return W.call(r,e,i,u,"reference","referenceMarker","referenceString")(t)};function i(e){return r.parser.defined.includes(G(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(e):n(e)}function u(e){return n(e)}}},em={tokenize:function(e,t,n){return function(t){return e.enter("reference"),e.enter("referenceMarker"),e.consume(t),e.exit("referenceMarker"),r};function r(r){return 93===r?(e.enter("referenceMarker"),e.consume(r),e.exit("referenceMarker"),e.exit("reference"),t):n(r)}}},eg={name:"labelStartImage",tokenize:function(e,t,n){let r=this;return function(t){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(t),e.exit("labelImageMarker"),i};function i(t){return 91===t?(e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelImage"),u):n(t)}function u(e){return 94===e&&"_hiddenFootnoteSupport"in r.parser.constructs?n(e):t(e)}},resolveAll:ed.resolveAll};function ex(e){return null===e||y(e)||b(e)?1:v(e)?2:void 0}let ek={name:"attention",tokenize:function(e,t){let n;let r=this.parser.constructs.attentionMarkers.null,i=this.previous,u=ex(i);return function(o){return n=o,e.enter("attentionSequence"),function o(c){if(c===n)return e.consume(c),o;let l=e.exit("attentionSequence"),s=ex(c),a=!s||2===s&&u||r.includes(c),f=!u||2===u&&s||r.includes(i);return l._open=!!(42===n?a:a&&(u||!f)),l._close=!!(42===n?f:f&&(s||!a)),t(c)}(o)}},resolveAll:function(e,t){let n,r,i,u,o,c,a,f,d=-1;for(;++d<e.length;)if("enter"===e[d][0]&&"attentionSequence"===e[d][1].type&&e[d][1]._close){for(n=d;n--;)if("exit"===e[n][0]&&"attentionSequence"===e[n][1].type&&e[n][1]._open&&t.sliceSerialize(e[n][1]).charCodeAt(0)===t.sliceSerialize(e[d][1]).charCodeAt(0)){if((e[n][1]._close||e[d][1]._open)&&(e[d][1].end.offset-e[d][1].start.offset)%3&&!((e[n][1].end.offset-e[n][1].start.offset+e[d][1].end.offset-e[d][1].start.offset)%3))continue;c=e[n][1].end.offset-e[n][1].start.offset>1&&e[d][1].end.offset-e[d][1].start.offset>1?2:1;let h=Object.assign({},e[n][1].end),p=Object.assign({},e[d][1].start);ey(h,-c),ey(p,c),u={type:c>1?"strongSequence":"emphasisSequence",start:h,end:Object.assign({},e[n][1].end)},o={type:c>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[d][1].start),end:p},i={type:c>1?"strongText":"emphasisText",start:Object.assign({},e[n][1].end),end:Object.assign({},e[d][1].start)},r={type:c>1?"strong":"emphasis",start:Object.assign({},u.start),end:Object.assign({},o.end)},e[n][1].end=Object.assign({},u.start),e[d][1].start=Object.assign({},o.end),a=[],e[n][1].end.offset-e[n][1].start.offset&&(a=s(a,[["enter",e[n][1],t],["exit",e[n][1],t]])),a=s(a,[["enter",r,t],["enter",u,t],["exit",u,t],["enter",i,t]]),a=s(a,R(t.parser.constructs.insideSpan.null,e.slice(n+1,d),t)),a=s(a,[["exit",i,t],["enter",o,t],["exit",o,t],["exit",r,t]]),e[d][1].end.offset-e[d][1].start.offset?(f=2,a=s(a,[["enter",e[d][1],t],["exit",e[d][1],t]])):f=0,l(e,n-1,d-n+3,a),d=n+a.length-f-2;break}}for(d=-1;++d<e.length;)"attentionSequence"===e[d][1].type&&(e[d][1].type="data");return e}};function ey(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}let eF={name:"labelStartLink",tokenize:function(e,t,n){let r=this;return function(t){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelLink"),i};function i(e){return 94===e&&"_hiddenFootnoteSupport"in r.parser.constructs?n(e):t(e)}},resolveAll:ed.resolveAll},ev={42:V,43:V,45:V,48:V,49:V,50:V,51:V,52:V,53:V,54:V,55:V,56:V,57:V,62:U},eb={91:{name:"definition",tokenize:function(e,t,n){let r;let i=this;return function(t){return e.enter("definition"),W.call(i,e,u,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)};function u(t){return(r=G(i.sliceSerialize(i.events[i.events.length-1][1]).slice(1,-1)),58===t)?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),o):n(t)}function o(t){return y(t)?Y(e,c)(t):c(t)}function c(t){return $(e,l,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(t)}function l(t){return e.attempt(J,s,s)(t)}function s(t){return F(t)?E(e,a,"whitespace")(t):a(t)}function a(u){return null===u||k(u)?(e.exit("definition"),i.parser.defined.push(r),t(u)):n(u)}}}},eS={[-2]:K,[-1]:K,32:K},eE={35:{name:"headingAtx",tokenize:function(e,t,n){let r=0;return function(i){return e.enter("atxHeading"),e.enter("atxHeadingSequence"),function i(u){return 35===u&&r++<6?(e.consume(u),i):null===u||y(u)?(e.exit("atxHeadingSequence"),function n(r){return 35===r?(e.enter("atxHeadingSequence"),function t(r){return 35===r?(e.consume(r),t):(e.exit("atxHeadingSequence"),n(r))}(r)):null===r||k(r)?(e.exit("atxHeading"),t(r)):F(r)?E(e,n,"whitespace")(r):(e.enter("atxHeadingText"),function t(r){return null===r||35===r||y(r)?(e.exit("atxHeadingText"),n(r)):(e.consume(r),t)}(r))}(u)):n(u)}(i)}},resolve:function(e,t){let n,r,i=e.length-2,u=3;return"whitespace"===e[3][1].type&&(u+=2),i-2>u&&"whitespace"===e[i][1].type&&(i-=2),"atxHeadingSequence"===e[i][1].type&&(u===i-1||i-4>u&&"whitespace"===e[i-2][1].type)&&(i-=u+1===i?2:4),i>u&&(n={type:"atxHeadingText",start:e[u][1].start,end:e[i][1].end},r={type:"chunkText",start:e[u][1].start,end:e[i][1].end,contentType:"text"},l(e,u,i-u+1,[["enter",n,t],["enter",r,t],["exit",r,t],["exit",n,t]])),e}},42:q,45:[ee,q],60:{name:"htmlFlow",tokenize:function(e,t,n){let r,i,u,o,c;let l=this;return function(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),s};function s(o){return 33===o?(e.consume(o),a):47===o?(e.consume(o),i=!0,m):63===o?(e.consume(o),r=3,l.interrupt?t:O):f(o)?(e.consume(o),u=String.fromCharCode(o),g):n(o)}function a(i){return 45===i?(e.consume(i),r=2,h):91===i?(e.consume(i),r=5,o=0,p):f(i)?(e.consume(i),r=4,l.interrupt?t:O):n(i)}function h(r){return 45===r?(e.consume(r),l.interrupt?t:O):n(r)}function p(r){let i="CDATA[";return r===i.charCodeAt(o++)?(e.consume(r),o===i.length)?l.interrupt?t:T:p:n(r)}function m(t){return f(t)?(e.consume(t),u=String.fromCharCode(t),g):n(t)}function g(o){if(null===o||47===o||62===o||y(o)){let c=47===o,s=u.toLowerCase();return!c&&!i&&en.includes(s)?(r=1,l.interrupt?t(o):T(o)):et.includes(u.toLowerCase())?(r=6,c)?(e.consume(o),x):l.interrupt?t(o):T(o):(r=7,l.interrupt&&!l.parser.lazy[l.now().line]?n(o):i?function t(n){return F(n)?(e.consume(n),t):w(n)}(o):v(o))}return 45===o||d(o)?(e.consume(o),u+=String.fromCharCode(o),g):n(o)}function x(r){return 62===r?(e.consume(r),l.interrupt?t:T):n(r)}function v(t){return 47===t?(e.consume(t),w):58===t||95===t||f(t)?(e.consume(t),b):F(t)?(e.consume(t),v):w(t)}function b(t){return 45===t||46===t||58===t||95===t||d(t)?(e.consume(t),b):S(t)}function S(t){return 61===t?(e.consume(t),E):F(t)?(e.consume(t),S):v(t)}function E(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),c=t,A):F(t)?(e.consume(t),E):function t(n){return null===n||34===n||39===n||47===n||60===n||61===n||62===n||96===n||y(n)?S(n):(e.consume(n),t)}(t)}function A(t){return t===c?(e.consume(t),c=null,I):null===t||k(t)?n(t):(e.consume(t),A)}function I(e){return 47===e||62===e||F(e)?v(e):n(e)}function w(t){return 62===t?(e.consume(t),C):n(t)}function C(t){return null===t||k(t)?T(t):F(t)?(e.consume(t),C):n(t)}function T(t){return 45===t&&2===r?(e.consume(t),_):60===t&&1===r?(e.consume(t),L):62===t&&4===r?(e.consume(t),j):63===t&&3===r?(e.consume(t),O):93===t&&5===r?(e.consume(t),P):k(t)&&(6===r||7===r)?(e.exit("htmlFlowData"),e.check(er,H,z)(t)):null===t||k(t)?(e.exit("htmlFlowData"),z(t)):(e.consume(t),T)}function z(t){return e.check(ei,D,H)(t)}function D(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),B}function B(t){return null===t||k(t)?z(t):(e.enter("htmlFlowData"),T(t))}function _(t){return 45===t?(e.consume(t),O):T(t)}function L(t){return 47===t?(e.consume(t),u="",M):T(t)}function M(t){if(62===t){let n=u.toLowerCase();return en.includes(n)?(e.consume(t),j):T(t)}return f(t)&&u.length<8?(e.consume(t),u+=String.fromCharCode(t),M):T(t)}function P(t){return 93===t?(e.consume(t),O):T(t)}function O(t){return 62===t?(e.consume(t),j):45===t&&2===r?(e.consume(t),O):T(t)}function j(t){return null===t||k(t)?(e.exit("htmlFlowData"),H(t)):(e.consume(t),j)}function H(n){return e.exit("htmlFlow"),t(n)}},resolveTo:function(e){let t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););return t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e},concrete:!0},61:ee,95:q,96:eo,126:eo},eA={38:es,92:ea},eI={[-5]:ef,[-4]:ef,[-3]:ef,33:eg,38:es,42:ek,60:[{name:"autolink",tokenize:function(e,t,n){let r=0;return function(t){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(t),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),i};function i(t){return f(t)?(e.consume(t),u):c(t)}function u(t){return 43===t||45===t||46===t||d(t)?(r=1,function t(n){return 58===n?(e.consume(n),r=0,o):(43===n||45===n||46===n||d(n))&&r++<32?(e.consume(n),t):(r=0,c(n))}(t)):c(t)}function o(r){return 62===r?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(r),e.exit("autolinkMarker"),e.exit("autolink"),t):null===r||32===r||60===r||p(r)?n(r):(e.consume(r),o)}function c(t){return 64===t?(e.consume(t),l):h(t)?(e.consume(t),c):n(t)}function l(i){return d(i)?function i(u){return 46===u?(e.consume(u),r=0,l):62===u?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(u),e.exit("autolinkMarker"),e.exit("autolink"),t):function t(u){if((45===u||d(u))&&r++<63){let n=45===u?t:i;return e.consume(u),n}return n(u)}(u)}(i):n(i)}}},{name:"htmlText",tokenize:function(e,t,n){let r,i,u;let o=this;return function(t){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(t),c};function c(t){return 33===t?(e.consume(t),l):47===t?(e.consume(t),I):63===t?(e.consume(t),S):f(t)?(e.consume(t),C):n(t)}function l(t){return 45===t?(e.consume(t),s):91===t?(e.consume(t),i=0,m):f(t)?(e.consume(t),b):n(t)}function s(t){return 45===t?(e.consume(t),p):n(t)}function a(t){return null===t?n(t):45===t?(e.consume(t),h):k(t)?(u=a,P(t)):(e.consume(t),a)}function h(t){return 45===t?(e.consume(t),p):a(t)}function p(e){return 62===e?M(e):45===e?h(e):a(e)}function m(t){let r="CDATA[";return t===r.charCodeAt(i++)?(e.consume(t),i===r.length?g:m):n(t)}function g(t){return null===t?n(t):93===t?(e.consume(t),x):k(t)?(u=g,P(t)):(e.consume(t),g)}function x(t){return 93===t?(e.consume(t),v):g(t)}function v(t){return 62===t?M(t):93===t?(e.consume(t),v):g(t)}function b(t){return null===t||62===t?M(t):k(t)?(u=b,P(t)):(e.consume(t),b)}function S(t){return null===t?n(t):63===t?(e.consume(t),A):k(t)?(u=S,P(t)):(e.consume(t),S)}function A(e){return 62===e?M(e):S(e)}function I(t){return f(t)?(e.consume(t),w):n(t)}function w(t){return 45===t||d(t)?(e.consume(t),w):function t(n){return k(n)?(u=t,P(n)):F(n)?(e.consume(n),t):M(n)}(t)}function C(t){return 45===t||d(t)?(e.consume(t),C):47===t||62===t||y(t)?T(t):n(t)}function T(t){return 47===t?(e.consume(t),M):58===t||95===t||f(t)?(e.consume(t),z):k(t)?(u=T,P(t)):F(t)?(e.consume(t),T):M(t)}function z(t){return 45===t||46===t||58===t||95===t||d(t)?(e.consume(t),z):function t(n){return 61===n?(e.consume(n),D):k(n)?(u=t,P(n)):F(n)?(e.consume(n),t):T(n)}(t)}function D(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),r=t,B):k(t)?(u=D,P(t)):F(t)?(e.consume(t),D):(e.consume(t),_)}function B(t){return t===r?(e.consume(t),r=void 0,L):null===t?n(t):k(t)?(u=B,P(t)):(e.consume(t),B)}function _(t){return null===t||34===t||39===t||60===t||61===t||96===t?n(t):47===t||62===t||y(t)?T(t):(e.consume(t),_)}function L(e){return 47===e||62===e||y(e)?T(e):n(e)}function M(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),t):n(r)}function P(t){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),O}function O(t){return F(t)?E(e,j,"linePrefix",o.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):j(t)}function j(t){return e.enter("htmlTextData"),u(t)}}}],91:eF,92:[{name:"hardBreakEscape",tokenize:function(e,t,n){return function(t){return e.enter("hardBreakEscape"),e.consume(t),r};function r(r){return k(r)?(e.exit("hardBreakEscape"),t(r)):n(r)}}},ea],93:ed,95:ek,96:{name:"codeText",tokenize:function(e,t,n){let r,i,u=0;return function(t){return e.enter("codeText"),e.enter("codeTextSequence"),function t(n){return 96===n?(e.consume(n),u++,t):(e.exit("codeTextSequence"),o(n))}(t)};function o(l){return null===l?n(l):32===l?(e.enter("space"),e.consume(l),e.exit("space"),o):96===l?(i=e.enter("codeTextSequence"),r=0,function n(o){return 96===o?(e.consume(o),r++,n):r===u?(e.exit("codeTextSequence"),e.exit("codeText"),t(o)):(i.type="codeTextData",c(o))}(l)):k(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),o):(e.enter("codeTextData"),c(l))}function c(t){return null===t||32===t||96===t||k(t)?(e.exit("codeTextData"),o(t)):(e.consume(t),c)}},resolve:function(e){let t,n,r=e.length-4,i=3;if(("lineEnding"===e[3][1].type||"space"===e[i][1].type)&&("lineEnding"===e[r][1].type||"space"===e[r][1].type)){for(t=i;++t<r;)if("codeTextData"===e[t][1].type){e[i][1].type="codeTextPadding",e[r][1].type="codeTextPadding",i+=2,r-=2;break}}for(t=i-1,r++;++t<=r;)void 0===n?t!==r&&"lineEnding"!==e[t][1].type&&(n=t):(t===r||"lineEnding"===e[t][1].type)&&(e[n][1].type="codeTextData",t!==n+2&&(e[n][1].end=e[t-1][1].end,e.splice(n+2,t-n-2),r-=t-n-2,t=n+2),n=void 0);return e},previous:function(e){return 96!==e||"characterEscape"===this.events[this.events.length-1][1].type}}},ew={null:[ek,L]},eC={null:[42,95]},eT={null:[]},ez=/[\0\t\n\r]/g;function eD(e,t){let n=Number.parseInt(e,t);return n<9||11===n||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(65535&n)==65535||(65535&n)==65534||n>1114111?"\uFFFD":String.fromCharCode(n)}let eB=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function e_(e,t,n){if(t)return t;if(35===n.charCodeAt(0)){let e=n.charCodeAt(1),t=120===e||88===e;return eD(n.slice(t?2:1),t?16:10)}return el(n)||e}function eL(e){return e&&"object"==typeof e?"position"in e||"type"in e?eP(e.position):"start"in e||"end"in e?eP(e):"line"in e||"column"in e?eM(e):"":""}function eM(e){return eO(e&&e.line)+":"+eO(e&&e.column)}function eP(e){return eM(e&&e.start)+"-"+eM(e&&e.end)}function eO(e){return e&&"number"==typeof e?e:1}let ej={}.hasOwnProperty,eH=function(e,t,n){let i,c,f,d;return"string"!=typeof t&&(n=t,t=void 0),(function(e){let t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:c(v),autolinkProtocol:h,autolinkEmail:h,atxHeading:c(k),blockQuote:c(function(){return{type:"blockquote",children:[]}}),characterEscape:h,characterReference:h,codeFenced:c(x),codeFencedFenceInfo:l,codeFencedFenceMeta:l,codeIndented:c(x,l),codeText:c(function(){return{type:"inlineCode",value:""}},l),codeTextData:h,data:h,codeFlowValue:h,definition:c(function(){return{type:"definition",identifier:"",label:null,title:null,url:""}}),definitionDestinationString:l,definitionLabelString:l,definitionTitleString:l,emphasis:c(function(){return{type:"emphasis",children:[]}}),hardBreakEscape:c(y),hardBreakTrailing:c(y),htmlFlow:c(F,l),htmlFlowData:h,htmlText:c(F,l),htmlTextData:h,image:c(function(){return{type:"image",title:null,url:"",alt:null}}),label:l,link:c(v),listItem:c(function(e){return{type:"listItem",spread:e._spread,checked:null,children:[]}}),listItemValue:function(e){n.expectingFirstListItemValue&&(this.stack[this.stack.length-2].start=Number.parseInt(this.sliceSerialize(e),10),n.expectingFirstListItemValue=void 0)},listOrdered:c(b,function(){n.expectingFirstListItemValue=!0}),listUnordered:c(b),paragraph:c(function(){return{type:"paragraph",children:[]}}),reference:function(){n.referenceType="collapsed"},referenceString:l,resourceDestinationString:l,resourceTitleString:l,setextHeading:c(k),strong:c(function(){return{type:"strong",children:[]}}),thematicBreak:c(function(){return{type:"thematicBreak"}})},exit:{atxHeading:a(),atxHeadingSequence:function(e){let t=this.stack[this.stack.length-1];if(!t.depth){let n=this.sliceSerialize(e).length;t.depth=n}},autolink:a(),autolinkEmail:function(e){p.call(this,e),this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(e)},autolinkProtocol:function(e){p.call(this,e),this.stack[this.stack.length-1].url=this.sliceSerialize(e)},blockQuote:a(),characterEscapeValue:p,characterReferenceMarkerHexadecimal:g,characterReferenceMarkerNumeric:g,characterReferenceValue:function(e){let t;let r=this.sliceSerialize(e),i=n.characterReferenceType;i?(t=eD(r,"characterReferenceMarkerNumeric"===i?10:16),n.characterReferenceType=void 0):t=el(r);let u=this.stack.pop();u.value+=t,u.position.end=eR(e.end)},codeFenced:a(function(){let e=this.resume();this.stack[this.stack.length-1].value=e.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),n.flowCodeInside=void 0}),codeFencedFence:function(){!n.flowCodeInside&&(this.buffer(),n.flowCodeInside=!0)},codeFencedFenceInfo:function(){let e=this.resume();this.stack[this.stack.length-1].lang=e},codeFencedFenceMeta:function(){let e=this.resume();this.stack[this.stack.length-1].meta=e},codeFlowValue:p,codeIndented:a(function(){let e=this.resume();this.stack[this.stack.length-1].value=e.replace(/(\r?\n|\r)$/g,"")}),codeText:a(function(){let e=this.resume();this.stack[this.stack.length-1].value=e}),codeTextData:p,data:p,definition:a(),definitionDestinationString:function(){let e=this.resume();this.stack[this.stack.length-1].url=e},definitionLabelString:function(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=G(this.sliceSerialize(e)).toLowerCase()},definitionTitleString:function(){let e=this.resume();this.stack[this.stack.length-1].title=e},emphasis:a(),hardBreakEscape:a(m),hardBreakTrailing:a(m),htmlFlow:a(function(){let e=this.resume();this.stack[this.stack.length-1].value=e}),htmlFlowData:p,htmlText:a(function(){let e=this.resume();this.stack[this.stack.length-1].value=e}),htmlTextData:p,image:a(function(){let e=this.stack[this.stack.length-1];if(n.inReference){let t=n.referenceType||"shortcut";e.type+="Reference",e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;n.referenceType=void 0}),label:function(){let e=this.stack[this.stack.length-1],t=this.resume(),r=this.stack[this.stack.length-1];if(n.inReference=!0,"link"===r.type){let t=e.children;r.children=t}else r.alt=t},labelText:function(e){let t=this.sliceSerialize(e),n=this.stack[this.stack.length-2];n.label=t.replace(eB,e_),n.identifier=G(t).toLowerCase()},lineEnding:function(e){let r=this.stack[this.stack.length-1];if(n.atHardBreak){r.children[r.children.length-1].position.end=eR(e.end),n.atHardBreak=void 0;return}!n.setextHeadingSlurpLineEnding&&t.canContainEols.includes(r.type)&&(h.call(this,e),p.call(this,e))},link:a(function(){let e=this.stack[this.stack.length-1];if(n.inReference){let t=n.referenceType||"shortcut";e.type+="Reference",e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;n.referenceType=void 0}),listItem:a(),listOrdered:a(),listUnordered:a(),paragraph:a(),referenceString:function(e){let t=this.resume(),r=this.stack[this.stack.length-1];r.label=t,r.identifier=G(this.sliceSerialize(e)).toLowerCase(),n.referenceType="full"},resourceDestinationString:function(){let e=this.resume();this.stack[this.stack.length-1].url=e},resourceTitleString:function(){let e=this.resume();this.stack[this.stack.length-1].title=e},resource:function(){n.inReference=void 0},setextHeading:a(function(){n.setextHeadingSlurpLineEnding=void 0}),setextHeadingLineSequence:function(e){this.stack[this.stack.length-1].depth=61===this.sliceSerialize(e).charCodeAt(0)?1:2},setextHeadingText:function(){n.setextHeadingSlurpLineEnding=!0},strong:a(),thematicBreak:a()}};!function e(t,n){let r=-1;for(;++r<n.length;){let i=n[r];Array.isArray(i)?e(t,i):function(e,t){let n;for(n in t)if(ej.call(t,n)){if("canContainEols"===n){let r=t[n];r&&e[n].push(...r)}else if("transforms"===n){let r=t[n];r&&e[n].push(...r)}else if("enter"===n||"exit"===n){let r=t[n];r&&Object.assign(e[n],r)}}}(t,i)}}(t,(e||{}).mdastExtensions||[]);let n={};return function(e){let n={type:"root",children:[]},u={stack:[n],tokenStack:[],config:t,enter:s,exit:f,buffer:l,resume:d,setData:r,getData:i},o=[],c=-1;for(;++c<e.length;)("listOrdered"===e[c][1].type||"listUnordered"===e[c][1].type)&&("enter"===e[c][0]?o.push(c):c=function(e,t,n){let r,i,u,o,c=t-1,l=-1,s=!1;for(;++c<=n;){let t=e[c];if("listUnordered"===t[1].type||"listOrdered"===t[1].type||"blockQuote"===t[1].type?("enter"===t[0]?l++:l--,o=void 0):"lineEndingBlank"===t[1].type?"enter"===t[0]&&(!r||o||l||u||(u=c),o=void 0):"linePrefix"===t[1].type||"listItemValue"===t[1].type||"listItemMarker"===t[1].type||"listItemPrefix"===t[1].type||"listItemPrefixWhitespace"===t[1].type||(o=void 0),!l&&"enter"===t[0]&&"listItemPrefix"===t[1].type||-1===l&&"exit"===t[0]&&("listUnordered"===t[1].type||"listOrdered"===t[1].type)){if(r){let o=c;for(i=void 0;o--;){let t=e[o];if("lineEnding"===t[1].type||"lineEndingBlank"===t[1].type){if("exit"===t[0])continue;i&&(e[i][1].type="lineEndingBlank",s=!0),t[1].type="lineEnding",i=o}else if("linePrefix"===t[1].type||"blockQuotePrefix"===t[1].type||"blockQuotePrefixWhitespace"===t[1].type||"blockQuoteMarker"===t[1].type||"listItemIndent"===t[1].type);else break}u&&(!i||u<i)&&(r._spread=!0),r.end=Object.assign({},i?e[i][1].start:t[1].end),e.splice(i||c,0,["exit",r,t[2]]),c++,n++}"listItemPrefix"===t[1].type&&(r={type:"listItem",_spread:!1,start:Object.assign({},t[1].start),end:void 0},e.splice(c,0,["enter",r,t[2]]),c++,n++,u=void 0,o=!0)}}return e[t][1]._spread=s,n}(e,o.pop(),c));for(c=-1;++c<e.length;){let n=t[e[c][0]];ej.call(n,e[c][1].type)&&n[e[c][1].type].call(Object.assign({sliceSerialize:e[c][2].sliceSerialize},u),e[c][1])}if(u.tokenStack.length>0){let e=u.tokenStack[u.tokenStack.length-1];(e[1]||eq).call(u,void 0,e[0])}for(n.position={start:eR(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:eR(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},c=-1;++c<t.transforms.length;)n=t.transforms[c](n)||n;return n};function r(e,t){n[e]=t}function i(e){return n[e]}function c(e,t){return function(n){s.call(this,e(n),n),t&&t.call(this,n)}}function l(){this.stack.push({type:"fragment",children:[]})}function s(e,t,n){return this.stack[this.stack.length-1].children.push(e),this.stack.push(e),this.tokenStack.push([t,n]),e.position={start:eR(t.start)},e}function a(e){return function(t){e&&e.call(this,t),f.call(this,t)}}function f(e,t){let n=this.stack.pop(),r=this.tokenStack.pop();if(r)r[0].type!==e.type&&(t?t.call(this,e,r[0]):(r[1]||eq).call(this,e,r[0]));else throw Error("Cannot close `"+e.type+"` ("+eL({start:e.start,end:e.end})+"): it\u2019s not open");return n.position.end=eR(e.end),n}function d(){return o(this.stack.pop(),"boolean"!=typeof u.includeImageAlt||u.includeImageAlt,"boolean"!=typeof u.includeHtml||u.includeHtml)}function h(e){let t=this.stack[this.stack.length-1],n=t.children[t.children.length-1];n&&"text"===n.type||((n={type:"text",value:""}).position={start:eR(e.start)},t.children.push(n)),this.stack.push(n)}function p(e){let t=this.stack.pop();t.value+=this.sliceSerialize(e),t.position.end=eR(e.end)}function m(){n.atHardBreak=!0}function g(e){var t;t=e.type,n.characterReferenceType=t}function x(){return{type:"code",lang:null,meta:null,value:""}}function k(){return{type:"heading",depth:void 0,children:[]}}function y(){return{type:"break"}}function F(){return{type:"html",value:""}}function v(){return{type:"link",title:null,url:"",children:[]}}function b(e){return{type:"list",ordered:"listOrdered"===e.type,start:null,spread:e._spread,children:[]}}})(n)(function(e){for(;!z(e););return e}((function(e){let t={defined:[],lazy:{},constructs:function(e){let t={},n=-1;for(;++n<e.length;)!function(e,t){let n;for(n in t){let r;let i=(a.call(e,n)?e[n]:void 0)||(e[n]={}),u=t[n];if(u)for(r in u){a.call(i,r)||(i[r]=[]);let e=u[r];!function(e,t){let n=-1,r=[];for(;++n<t.length;)("after"===t[n].add?e:r).push(t[n]);l(e,0,0,r)}(i[r],Array.isArray(e)?e:e?[e]:[])}}}(t,e[n]);return t}([r,...(e||{}).extensions||[]]),content:n(A),document:n(I),flow:n(_),string:n(M),text:n(P)};return t;function n(e){return function(n){return function(e,t,n){let r=Object.assign(n?Object.assign({},n):{line:1,column:1,offset:0},{_index:0,_bufferIndex:-1}),i={},u=[],o=[],c=[],a={consume:function(e){k(e)?(r.line++,r.column=1,r.offset+=-3===e?2:1,y()):-1!==e&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++)),f.previous=e},enter:function(e,t){let n=t||{};return n.type=e,n.start=p(),f.events.push(["enter",n,f]),c.push(n),n},exit:function(e){let t=c.pop();return t.end=p(),f.events.push(["exit",t,f]),t},attempt:g(function(e,t){x(e,t.from)}),check:g(m),interrupt:g(m,{interrupt:!0})},f={previous:null,code:null,containerState:{},events:[],parser:e,sliceStream:h,sliceSerialize:function(e,t){return function(e,t){let n,r=-1,i=[];for(;++r<e.length;){let u;let o=e[r];if("string"==typeof o)u=o;else switch(o){case -5:u="\r";break;case -4:u="\n";break;case -3:u="\r\n";break;case -2:u=t?" ":" ";break;case -1:if(!t&&n)continue;u=" ";break;default:u=String.fromCharCode(o)}n=-2===o,i.push(u)}return i.join("")}(h(e),t)},now:p,defineSkip:function(e){i[e.line]=e.column,y()},write:function(e){return(o=s(o,e),function(){let e;for(;r._index<o.length;){let n=o[r._index];if("string"==typeof n)for(e=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===e&&r._bufferIndex<n.length;){var t;t=n.charCodeAt(r._bufferIndex),d=d(t)}else d=d(n)}}(),null!==o[o.length-1])?[]:(x(t,0),f.events=R(u,f.events,f),f.events)}},d=t.tokenize.call(f,a);return t.resolveAll&&u.push(t),f;function h(e){return function(e,t){let n;let r=t.start._index,i=t.start._bufferIndex,u=t.end._index,o=t.end._bufferIndex;if(r===u)n=[e[r].slice(i,o)];else{if(n=e.slice(r,u),i>-1){let e=n[0];"string"==typeof e?n[0]=e.slice(i):n.shift()}o>0&&n.push(e[u].slice(0,o))}return n}(o,e)}function p(){let{line:e,column:t,offset:n,_index:i,_bufferIndex:u}=r;return{line:e,column:t,offset:n,_index:i,_bufferIndex:u}}function m(e,t){t.restore()}function g(e,t){return function(n,i,u){let o,l,s,d;return Array.isArray(n)?h(n):"tokenize"in n?h([n]):function(e){let t=null!==e&&n[e],r=null!==e&&n.null;return h([...Array.isArray(t)?t:t?[t]:[],...Array.isArray(r)?r:r?[r]:[]])(e)};function h(e){return(o=e,l=0,0===e.length)?u:m(e[l])}function m(e){return function(n){return(d=function(){let e=p(),t=f.previous,n=f.currentConstruct,i=f.events.length,u=Array.from(c);return{restore:function(){r=e,f.previous=t,f.currentConstruct=n,f.events.length=i,c=u,y()},from:i}}(),s=e,e.partial||(f.currentConstruct=e),e.name&&f.parser.constructs.disable.null.includes(e.name))?x(n):e.tokenize.call(t?Object.assign(Object.create(f),t):f,a,g,x)(n)}}function g(t){return e(s,d),i}function x(e){return(d.restore(),++l<o.length)?m(o[l]):u}}}function x(e,t){e.resolveAll&&!u.includes(e)&&u.push(e),e.resolve&&l(f.events,t,f.events.length-t,e.resolve(f.events.slice(t),f)),e.resolveTo&&(f.events=e.resolveTo(f.events,f))}function y(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}(t,e,n)}}})(n).document().write((c=1,f="",d=!0,function(e,t,n){let r,u,o,l,s;let a=[];for(e=f+e.toString(t),o=0,f="",d&&(65279===e.charCodeAt(0)&&o++,d=void 0);o<e.length;){if(ez.lastIndex=o,l=(r=ez.exec(e))&&void 0!==r.index?r.index:e.length,s=e.charCodeAt(l),!r){f=e.slice(o);break}if(10===s&&o===l&&i)a.push(-3),i=void 0;else switch(i&&(a.push(-5),i=void 0),o<l&&(a.push(e.slice(o,l)),c+=l-o),s){case 0:a.push(65533),c++;break;case 9:for(u=4*Math.ceil(c/4),a.push(-2);c++<u;)a.push(-1);break;case 10:a.push(-4),c=1;break;default:i=!0,c=1}o=l+1}return n&&(i&&a.push(-5),f&&a.push(f),a.push(null)),a})(e,t,!0))))};function eR(e){return{line:e.line,column:e.column,offset:e.offset}}function eq(e,t){if(e)throw Error("Cannot close `"+e.type+"` ("+eL({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+eL({start:t.start,end:t.end})+") is open");throw Error("Cannot close document, a token (`"+t.type+"`, "+eL({start:t.start,end:t.end})+") is still open")}var eV=n(97597);function eQ(e,t,n){return e.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",t*n-.1+"em").attr("dy",n+"em")}function eN(e,t){e.text(""),t.forEach((t,n)=>{let r=e.append("tspan").attr("font-style","emphasis"===t.type?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight","strong"===t.type?"bold":"normal");0===n?r.text(t.content):r.text(" "+t.content)})}let eU=(e,t="",{style:n="",isTitle:r=!1,classes:u="",useHtmlLabels:o=!0,isNode:c=!0,width:l=200,addSvgBackground:s=!1}={})=>{if(i.l.info("createText",t,n,r,u,o,c,s),!o)return function(e,t,n,r=!1){let i=t.append("g"),u=i.insert("rect").attr("class","background"),o=i.append("text").attr("y","-10.1"),c=0;for(let t of n){let n=t=>(function(e,t,n){let r=e.append("text"),i=eQ(r,1,1.1);eN(i,n);let u=i.node().getComputedTextLength();return r.remove(),u})(i,0,t)<=e;for(let e of n(t)?[t]:function(e,t){if(e.some(({content:e})=>e.includes("\n")))throw Error("splitLineToFitWidth does not support newlines in the line");return function e(t,n,r=[],i=[]){if(0===t.length)return i.length>0&&r.push(i),r.length>0?r:[];let u="";" "===t[0].content&&(u=" ",t.shift());let o=t.shift()??{content:" ",type:"normal"},c=[...i];if(""!==u&&c.push({content:u,type:"normal"}),c.push(o),n(c))return e(t,n,r,c);if(i.length>0)r.push(i),t.unshift(o);else if(o.content){var l;let[e,i]=function e(t,n,r,i){if(0===r.length)return[{content:n.join(""),type:i},{content:"",type:i}];let[u,...o]=r,c=[...n,u];return t([{content:c.join(""),type:i}])?e(t,c,o,i):(0===n.length&&u&&(n.push(u),r.shift()),[{content:n.join(""),type:i},{content:r.join(""),type:i}])}(n,[],(l=o.content,Intl.Segmenter?[...new Intl.Segmenter().segment(l)].map(e=>e.segment):[...l]),o.type);r.push([e]),i.content&&t.unshift(i)}return e(t,n,r)}(e,t)}(t,n))eN(eQ(o,c,1.1),e),c++}if(!r)return o.node();{let e=o.node().getBBox();return u.attr("x",-2).attr("y",-2).attr("width",e.width+4).attr("height",e.height+4),i.node()}}(l,e,function(e){let{children:t}=eH(function(e){let t=e.replace(/\n{2,}/g,"\n");return(0,eV.T)(t)}(e)),n=[[]],r=0;return t.forEach(e=>{"paragraph"===e.type&&e.children.forEach(e=>{!function e(t,i="normal"){"text"===t.type?t.value.split("\n").forEach((e,t)=>{0!==t&&(r++,n.push([])),e.split(" ").forEach(e=>{e&&n[r].push({content:e,type:i})})}):("strong"===t.type||"emphasis"===t.type)&&t.children.forEach(n=>{e(n,t.type)})}(e)})}),n}(t),s);{let r=function(e){let{children:t}=eH(e);return t.map(function e(t){return"text"===t.type?t.value.replace(/\n/g,"<br/>"):"strong"===t.type?`<strong>${t.children.map(e).join("")}</strong>`:"emphasis"===t.type?`<em>${t.children.map(e).join("")}</em>`:"paragraph"===t.type?`<p>${t.children.map(e).join("")}</p>`:`Unsupported markdown: ${t.type}`}).join("")}(t);return function(e,t,n,r,i=!1){var u;let o=e.append("foreignObject"),c=o.append("xhtml:div"),l=t.label,s=t.isNode?"nodeLabel":"edgeLabel";c.html(` - <span class="${s} ${r}" `+(t.labelStyle?'style="'+t.labelStyle+'"':"")+">"+l+"</span>"),(u=t.labelStyle)&&c.attr("style",u),c.style("display","table-cell"),c.style("white-space","nowrap"),c.style("max-width",n+"px"),c.attr("xmlns","http://www.w3.org/1999/xhtml"),i&&c.attr("class","labelBkg");let a=c.node().getBoundingClientRect();return a.width===n&&(c.style("display","table"),c.style("white-space","break-spaces"),c.style("width",n+"px"),a=c.node().getBoundingClientRect()),o.style("width",a.width),o.style("height",a.height),o.node()}(e,{isNode:c,label:(0,i.L)(r).replace(/fa[blrs]?:fa-[\w-]+/g,e=>`<i class='${e.replace(":"," ")}'></i>`),labelStyle:n.replace("fill:","color:")},l,u,s)}}}}]); \ No newline at end of file diff --git a/assets/js/1267474e.29a6e039.js b/assets/js/1267474e.29a6e039.js new file mode 100644 index 0000000000..5ff5355296 --- /dev/null +++ b/assets/js/1267474e.29a6e039.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[80913],{15995:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var i=r(11750);function a({children:e,hidden:t,className:r}){return(0,n.jsx)("div",{role:"tabpanel",className:(0,i.A)("tabItem_pnkT",r),hidden:t,children:e})}},27446:(e,t,r)=>{r.d(t,{A:()=>v});var n=r(62540),i=r(63696),a=r(11750),o=r(7846),s=r(49519),l=r(96439),c=r(19739),d=r(66904),u=r(79244);function h(e){var t,r;return null!==(r=null===(t=i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==r?r:[]}function m({value:e,tabValues:t}){return t.some(t=>t.value===e)}var p=r(10709);function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function g(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function f({className:e,block:t,selectedValue:r,selectValue:i,tabValues:s}){let l=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.a_)(),d=e=>{let t=e.currentTarget,n=s[l.indexOf(t)].value;n!==r&&(c(t),i(n))},u=e=>{var t,r;let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let r=l.indexOf(e.currentTarget)+1;n=null!==(t=l[r])&&void 0!==t?t:l[0];break}case"ArrowLeft":{let t=l.indexOf(e.currentTarget)-1;n=null!==(r=l[t])&&void 0!==r?r:l[l.length-1]}}null==n||n.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.A)("tabs",{"tabs--block":t},e),children:s.map(({value:e,label:t,attributes:i})=>(0,n.jsx)("li",g(b({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,ref:e=>l.push(e),onKeyDown:u,onClick:d},i),{className:(0,a.A)("tabs__item","tabItem_AQgk",null==i?void 0:i.className,{"tabs__item--active":r===e}),children:null!=t?t:e}),e))})}function j({lazy:e,children:t,selectedValue:r}){let o=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=o.find(e=>e.props.value===r);return e?(0,i.cloneElement)(e,{className:(0,a.A)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:o.map((e,t)=>(0,i.cloneElement)(e,{key:t,hidden:e.props.value!==r}))})}function x(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:n}=e,a=function(e){let{values:t,children:r}=e;return(0,i.useMemo)(()=>{let e=null!=t?t:h(r).map(({props:{value:e,label:t,attributes:r,default:n}})=>({value:e,label:t,attributes:r,default:n}));return!function(e){let t=(0,d.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,r])}(e),[o,p]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:t}){var r;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!m({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let n=null!==(r=t.find(e=>e.default))&&void 0!==r?r:t[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:t,tabValues:a})),[b,g]=function({queryString:e=!1,groupId:t}){let r=(0,s.W6)(),n=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,c.aZ)(n),(0,i.useCallback)(e=>{var t,i;if(!n)return;let a=new URLSearchParams(r.location.search);a.set(n,e),r.replace((t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r.location),i=i={search:a.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(i)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}),t))},[n,r])]}({queryString:r,groupId:n}),[f,j]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[r,n]=(0,u.Dv)(t);return[r,(0,i.useCallback)(e=>{t&&n.set(e)},[t,n])]}({groupId:n}),x=(()=>{let e=null!=b?b:f;return m({value:e,tabValues:a})?e:null})();return(0,l.A)(()=>{x&&p(x)},[x]),{selectedValue:o,selectValue:(0,i.useCallback)(e=>{if(!m({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);p(e),g(e),j(e)},[g,j,a]),tabValues:a}}(e);return(0,n.jsxs)("div",{className:(0,a.A)("tabs-container","tabList_Qoir"),children:[(0,n.jsx)(f,b({},t,e)),(0,n.jsx)(j,b({},t,e))]})}function v(e){let t=(0,p.A)();return(0,n.jsx)(x,g(b({},e),{children:h(e.children)}),String(t))}},78387:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>m,frontMatter:()=>l,metadata:()=>n,toc:()=>u});let n=JSON.parse('{"id":"migration/v2/migration-automated","title":"Automated migration","description":"The migration CLI automatically migrates your v1 website to a v2 website.","source":"@site/docs/migration/v2/migration-automated.mdx","sourceDirName":"migration/v2","slug":"/migration/v2/automated","permalink":"/docs/migration/v2/automated","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/v2/migration-automated.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/migration/v2/automated"},"sidebar":"docs","previous":{"title":"Overview","permalink":"/docs/migration/v2"},"next":{"title":"Manual migration","permalink":"/docs/migration/v2/manual"}}');var i=r(62540),a=r(43023),o=r(27446),s=r(15995);let l={slug:"/migration/v2/automated"},c="Automated migration",d={},u=[{value:"Options",id:"options",level:4}];function h(e){let t={admonition:"admonition",code:"code",h1:"h1",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"automated-migration",children:"Automated migration"})}),"\n",(0,i.jsx)(t.p,{children:"The migration CLI automatically migrates your v1 website to a v2 website."}),"\n",(0,i.jsx)(t.admonition,{type:"info",children:(0,i.jsx)(t.p,{children:"Manual work is still required after using the migration CLI, as we can't automate a full migration"})}),"\n",(0,i.jsx)(t.p,{children:"The migration CLI migrates:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Site configurations (from ",(0,i.jsx)(t.code,{children:"siteConfig.js"})," to ",(0,i.jsx)(t.code,{children:"docusaurus.config.js"}),")"]}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:"package.json"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:"sidebars.json"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:"/docs"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:"/blog"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:"/static"})}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"versioned_sidebar.json"})," and ",(0,i.jsx)(t.code,{children:"/versioned_docs"})," if your site uses versioning"]}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"To use the migration CLI, follow these steps:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["Before using the migration CLI, ensure that ",(0,i.jsx)(t.code,{children:"/docs"}),", ",(0,i.jsx)(t.code,{children:"/blog"}),", ",(0,i.jsx)(t.code,{children:"/static"}),", ",(0,i.jsx)(t.code,{children:"sidebars.json"}),", ",(0,i.jsx)(t.code,{children:"siteConfig.js"}),", ",(0,i.jsx)(t.code,{children:"package.json"})," follow the expected structure."]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"To migrate your v1 website, run the migration CLI with the appropriate filesystem paths:"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"# migration command format\nnpx @docusaurus/migrate migrate <v1 website directory> <desired v2 website directory>\n\n# example\nnpx @docusaurus/migrate migrate ./v1-website ./v2-website\n"})}),"\n",(0,i.jsxs)(t.ol,{start:"3",children:["\n",(0,i.jsx)(t.li,{children:"To view your new website locally, go into your v2 website's directory and start your development server."}),"\n"]}),"\n",(0,i.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,i.jsx)(s.A,{value:"npm",children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"cd ./v2-website\nnpm install\nnpm start\n"})})}),(0,i.jsx)(s.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"cd ./v2-website\nyarn install\nyarn start\n"})})}),(0,i.jsx)(s.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"cd ./v2-website\npnpm install\npnpm start\n"})})})]}),"\n",(0,i.jsx)(t.admonition,{type:"danger",children:(0,i.jsx)(t.p,{children:"The migration CLI updates existing files. Be sure to have committed them first!"})}),"\n",(0,i.jsx)(t.h4,{id:"options",children:"Options"}),"\n",(0,i.jsx)(t.p,{children:"You can add option flags to the migration CLI to automatically migrate Markdown content and pages to v2. It is likely that you will still need to make some manual changes to achieve your desired result."}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"--mdx"})}),(0,i.jsx)(t.td,{children:"Add this flag to convert Markdown to MDX automatically"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"--page"})}),(0,i.jsx)(t.td,{children:"Add this flag to migrate pages automatically"})]})]})]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"# example using options\nnpx @docusaurus/migrate migrate --mdx --page ./v1-website ./v2-website\n"})}),"\n",(0,i.jsxs)(t.admonition,{type:"danger",children:[(0,i.jsx)(t.p,{children:"The migration of pages and MDX is still a work in progress."}),(0,i.jsxs)(t.p,{children:["We recommend you to try to run the pages without these options, commit, and then try to run the migration again with the ",(0,i.jsx)(t.code,{children:"--page"})," and ",(0,i.jsx)(t.code,{children:"--mdx"})," options."]}),(0,i.jsx)(t.p,{children:"This way, you'd be able to easily inspect and fix the diff."})]})]})}function m(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},43023:(e,t,r)=>{r.d(t,{R:()=>o,x:()=>s});var n=r(63696);let i={},a=n.createContext(i);function o(e){let t=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1267474e.60cf3c5a.js b/assets/js/1267474e.60cf3c5a.js deleted file mode 100644 index d11f52e9d5..0000000000 --- a/assets/js/1267474e.60cf3c5a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[80913],{15995:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var i=r(11750);function a({children:e,hidden:t,className:r}){return(0,n.jsx)("div",{role:"tabpanel",className:(0,i.A)("tabItem_pnkT",r),hidden:t,children:e})}},27446:(e,t,r)=>{r.d(t,{A:()=>v});var n=r(62540),i=r(63696),a=r(11750),o=r(7846),s=r(49519),l=r(96439),c=r(19739),d=r(66904),u=r(79244);function h(e){var t,r;return null!==(r=null===(t=i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==r?r:[]}function m({value:e,tabValues:t}){return t.some(t=>t.value===e)}var p=r(10709);function g(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function b(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function f({className:e,block:t,selectedValue:r,selectValue:i,tabValues:s}){let l=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.a_)(),d=e=>{let t=e.currentTarget,n=s[l.indexOf(t)].value;n!==r&&(c(t),i(n))},u=e=>{var t,r;let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let r=l.indexOf(e.currentTarget)+1;n=null!==(t=l[r])&&void 0!==t?t:l[0];break}case"ArrowLeft":{let t=l.indexOf(e.currentTarget)-1;n=null!==(r=l[t])&&void 0!==r?r:l[l.length-1]}}null==n||n.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.A)("tabs",{"tabs--block":t},e),children:s.map(({value:e,label:t,attributes:i})=>(0,n.jsx)("li",b(g({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,ref:e=>l.push(e),onKeyDown:u,onClick:d},i),{className:(0,a.A)("tabs__item","tabItem_AQgk",null==i?void 0:i.className,{"tabs__item--active":r===e}),children:null!=t?t:e}),e))})}function j({lazy:e,children:t,selectedValue:r}){let o=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=o.find(e=>e.props.value===r);return e?(0,i.cloneElement)(e,{className:(0,a.A)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:o.map((e,t)=>(0,i.cloneElement)(e,{key:t,hidden:e.props.value!==r}))})}function x(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:n}=e,a=function(e){let{values:t,children:r}=e;return(0,i.useMemo)(()=>{let e=null!=t?t:h(r).map(({props:{value:e,label:t,attributes:r,default:n}})=>({value:e,label:t,attributes:r,default:n}));return!function(e){let t=(0,d.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,r])}(e),[o,p]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:t}){var r;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!m({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let n=null!==(r=t.find(e=>e.default))&&void 0!==r?r:t[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:t,tabValues:a})),[g,b]=function({queryString:e=!1,groupId:t}){let r=(0,s.W6)(),n=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,c.aZ)(n),(0,i.useCallback)(e=>{var t,i;if(!n)return;let a=new URLSearchParams(r.location.search);a.set(n,e),r.replace((t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r.location),i=i={search:a.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(i)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}),t))},[n,r])]}({queryString:r,groupId:n}),[f,j]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[r,n]=(0,u.Dv)(t);return[r,(0,i.useCallback)(e=>{t&&n.set(e)},[t,n])]}({groupId:n}),x=(()=>{let e=null!=g?g:f;return m({value:e,tabValues:a})?e:null})();return(0,l.A)(()=>{x&&p(x)},[x]),{selectedValue:o,selectValue:(0,i.useCallback)(e=>{if(!m({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);p(e),b(e),j(e)},[b,j,a]),tabValues:a}}(e);return(0,n.jsxs)("div",{className:(0,a.A)("tabs-container","tabList_Qoir"),children:[(0,n.jsx)(f,g({},t,e)),(0,n.jsx)(j,g({},t,e))]})}function v(e){let t=(0,p.A)();return(0,n.jsx)(x,b(g({},e),{children:h(e.children)}),String(t))}},78387:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>m,frontMatter:()=>l,metadata:()=>n,toc:()=>u});let n=JSON.parse('{"id":"migration/v2/migration-automated","title":"Automated migration","description":"The migration CLI automatically migrates your v1 website to a v2 website.","source":"@site/docs/migration/v2/migration-automated.mdx","sourceDirName":"migration/v2","slug":"/migration/v2/automated","permalink":"/docs/migration/v2/automated","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/v2/migration-automated.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/migration/v2/automated"},"sidebar":"docs","previous":{"title":"Overview","permalink":"/docs/migration/v2"},"next":{"title":"Manual migration","permalink":"/docs/migration/v2/manual"}}');var i=r(62540),a=r(43023),o=r(27446),s=r(15995);let l={slug:"/migration/v2/automated"},c="Automated migration",d={},u=[{value:"Options",id:"options",level:4}];function h(e){let t={admonition:"admonition",code:"code",h1:"h1",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"automated-migration",children:"Automated migration"})}),"\n",(0,i.jsx)(t.p,{children:"The migration CLI automatically migrates your v1 website to a v2 website."}),"\n",(0,i.jsx)(t.admonition,{type:"info",children:(0,i.jsx)(t.p,{children:"Manual work is still required after using the migration CLI, as we can't automate a full migration"})}),"\n",(0,i.jsx)(t.p,{children:"The migration CLI migrates:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Site configurations (from ",(0,i.jsx)(t.code,{children:"siteConfig.js"})," to ",(0,i.jsx)(t.code,{children:"docusaurus.config.js"}),")"]}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:"package.json"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:"sidebars.json"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:"/docs"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:"/blog"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:"/static"})}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"versioned_sidebar.json"})," and ",(0,i.jsx)(t.code,{children:"/versioned_docs"})," if your site uses versioning"]}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"To use the migration CLI, follow these steps:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["Before using the migration CLI, ensure that ",(0,i.jsx)(t.code,{children:"/docs"}),", ",(0,i.jsx)(t.code,{children:"/blog"}),", ",(0,i.jsx)(t.code,{children:"/static"}),", ",(0,i.jsx)(t.code,{children:"sidebars.json"}),", ",(0,i.jsx)(t.code,{children:"siteConfig.js"}),", ",(0,i.jsx)(t.code,{children:"package.json"})," follow the expected structure."]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"To migrate your v1 website, run the migration CLI with the appropriate filesystem paths:"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"# migration command format\nnpx @docusaurus/migrate migrate <v1 website directory> <desired v2 website directory>\n\n# example\nnpx @docusaurus/migrate migrate ./v1-website ./v2-website\n"})}),"\n",(0,i.jsxs)(t.ol,{start:"3",children:["\n",(0,i.jsx)(t.li,{children:"To view your new website locally, go into your v2 website's directory and start your development server."}),"\n"]}),"\n",(0,i.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,i.jsx)(s.A,{value:"npm",children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"cd ./v2-website\nnpm install\nnpm start\n"})})}),(0,i.jsx)(s.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"cd ./v2-website\nyarn install\nyarn start\n"})})}),(0,i.jsx)(s.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"cd ./v2-website\npnpm install\npnpm start\n"})})})]}),"\n",(0,i.jsx)(t.admonition,{type:"danger",children:(0,i.jsx)(t.p,{children:"The migration CLI updates existing files. Be sure to have committed them first!"})}),"\n",(0,i.jsx)(t.h4,{id:"options",children:"Options"}),"\n",(0,i.jsx)(t.p,{children:"You can add option flags to the migration CLI to automatically migrate Markdown content and pages to v2. It is likely that you will still need to make some manual changes to achieve your desired result."}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"--mdx"})}),(0,i.jsx)(t.td,{children:"Add this flag to convert Markdown to MDX automatically"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"--page"})}),(0,i.jsx)(t.td,{children:"Add this flag to migrate pages automatically"})]})]})]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"# example using options\nnpx @docusaurus/migrate migrate --mdx --page ./v1-website ./v2-website\n"})}),"\n",(0,i.jsxs)(t.admonition,{type:"danger",children:[(0,i.jsx)(t.p,{children:"The migration of pages and MDX is still a work in progress."}),(0,i.jsxs)(t.p,{children:["We recommend you to try to run the pages without these options, commit, and then try to run the migration again with the ",(0,i.jsx)(t.code,{children:"--page"})," and ",(0,i.jsx)(t.code,{children:"--mdx"})," options."]}),(0,i.jsx)(t.p,{children:"This way, you'd be able to easily inspect and fix the diff."})]})]})}function m(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},43023:(e,t,r)=>{r.d(t,{R:()=>o,x:()=>s});var n=r(63696);let i={},a=n.createContext(i);function o(e){let t=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/13682.2e6e0f4d.js b/assets/js/13682.2e6e0f4d.js new file mode 100644 index 0000000000..5b23e35310 --- /dev/null +++ b/assets/js/13682.2e6e0f4d.js @@ -0,0 +1,47 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[13682],{13682:(t,e,i)=>{i.d(e,{diagram:()=>Y});var r=i(72912),n=i(89601),s=i(62628),a=i(62499),l=function(){var t=(0,r.K2)(function(t,e,i,r){for(i=i||{},r=t.length;r--;i[t[r]]=e);return i},"o"),e=[1,3],i=[1,4],n=[1,5],s=[1,6],a=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],l=[1,18],h=[2,7],o=[1,22],c=[1,23],u=[1,24],y=[1,25],d=[1,26],p=[1,27],_=[1,20],g=[1,28],E=[1,29],R=[62,63],m=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],f=[1,47],I=[1,48],S=[1,49],b=[1,50],k=[1,51],T=[1,52],N=[1,53],x=[53,54],A=[1,64],w=[1,60],v=[1,61],q=[1,62],K=[1,63],$=[1,65],O=[1,69],L=[1,70],C=[1,67],M=[1,68],F=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],D={trace:(0,r.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,requirementType:17,requirementName:18,STRUCT_START:19,requirementBody:20,ID:21,COLONSEP:22,id:23,TEXT:24,text:25,RISK:26,riskLevel:27,VERIFYMTHD:28,verifyType:29,STRUCT_STOP:30,REQUIREMENT:31,FUNCTIONAL_REQUIREMENT:32,INTERFACE_REQUIREMENT:33,PERFORMANCE_REQUIREMENT:34,PHYSICAL_REQUIREMENT:35,DESIGN_CONSTRAINT:36,LOW_RISK:37,MED_RISK:38,HIGH_RISK:39,VERIFY_ANALYSIS:40,VERIFY_DEMONSTRATION:41,VERIFY_INSPECTION:42,VERIFY_TEST:43,ELEMENT:44,elementName:45,elementBody:46,TYPE:47,type:48,DOCREF:49,ref:50,END_ARROW_L:51,relationship:52,LINE:53,END_ARROW_R:54,CONTAINS:55,COPIES:56,DERIVES:57,SATISFIES:58,VERIFIES:59,REFINES:60,TRACES:61,unqString:62,qString:63,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",19:"STRUCT_START",21:"ID",22:"COLONSEP",24:"TEXT",26:"RISK",28:"VERIFYMTHD",30:"STRUCT_STOP",31:"REQUIREMENT",32:"FUNCTIONAL_REQUIREMENT",33:"INTERFACE_REQUIREMENT",34:"PERFORMANCE_REQUIREMENT",35:"PHYSICAL_REQUIREMENT",36:"DESIGN_CONSTRAINT",37:"LOW_RISK",38:"MED_RISK",39:"HIGH_RISK",40:"VERIFY_ANALYSIS",41:"VERIFY_DEMONSTRATION",42:"VERIFY_INSPECTION",43:"VERIFY_TEST",44:"ELEMENT",47:"TYPE",49:"DOCREF",51:"END_ARROW_L",53:"LINE",54:"END_ARROW_R",55:"CONTAINS",56:"COPIES",57:"DERIVES",58:"SATISFIES",59:"VERIFIES",60:"REFINES",61:"TRACES",62:"unqString",63:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[14,5],[20,5],[20,5],[20,5],[20,5],[20,2],[20,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[27,1],[27,1],[27,1],[29,1],[29,1],[29,1],[29,1],[15,5],[46,5],[46,5],[46,2],[46,1],[16,5],[16,5],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[18,1],[18,1],[23,1],[23,1],[25,1],[25,1],[45,1],[45,1],[48,1],[48,1],[50,1],[50,1]],performAction:(0,r.K2)(function(t,e,i,r,n,s,a){var l=s.length-1;switch(n){case 4:this.$=s[l].trim(),r.setAccTitle(this.$);break;case 5:case 6:this.$=s[l].trim(),r.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:r.addRequirement(s[l-3],s[l-4]);break;case 14:r.setNewReqId(s[l-2]);break;case 15:r.setNewReqText(s[l-2]);break;case 16:r.setNewReqRisk(s[l-2]);break;case 17:r.setNewReqVerifyMethod(s[l-2]);break;case 20:this.$=r.RequirementType.REQUIREMENT;break;case 21:this.$=r.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=r.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=r.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=r.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=r.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=r.RiskLevel.LOW_RISK;break;case 27:this.$=r.RiskLevel.MED_RISK;break;case 28:this.$=r.RiskLevel.HIGH_RISK;break;case 29:this.$=r.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=r.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=r.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=r.VerifyType.VERIFY_TEST;break;case 33:r.addElement(s[l-3]);break;case 34:r.setNewElementType(s[l-2]);break;case 35:r.setNewElementDocRef(s[l-2]);break;case 38:r.addRelationship(s[l-2],s[l],s[l-4]);break;case 39:r.addRelationship(s[l-2],s[l-4],s[l]);break;case 40:this.$=r.Relationships.CONTAINS;break;case 41:this.$=r.Relationships.COPIES;break;case 42:this.$=r.Relationships.DERIVES;break;case 43:this.$=r.Relationships.SATISFIES;break;case 44:this.$=r.Relationships.VERIFIES;break;case 45:this.$=r.Relationships.REFINES;break;case 46:this.$=r.Relationships.TRACES}},"anonymous"),table:[{3:1,4:2,6:e,9:i,11:n,13:s},{1:[3]},{3:8,4:2,5:[1,7],6:e,9:i,11:n,13:s},{5:[1,9]},{10:[1,10]},{12:[1,11]},t(a,[2,6]),{3:12,4:2,6:e,9:i,11:n,13:s},{1:[2,2]},{4:17,5:l,7:13,8:h,9:i,11:n,13:s,14:14,15:15,16:16,17:19,23:21,31:o,32:c,33:u,34:y,35:d,36:p,44:_,62:g,63:E},t(a,[2,4]),t(a,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:l,7:31,8:h,9:i,11:n,13:s,14:14,15:15,16:16,17:19,23:21,31:o,32:c,33:u,34:y,35:d,36:p,44:_,62:g,63:E},{4:17,5:l,7:32,8:h,9:i,11:n,13:s,14:14,15:15,16:16,17:19,23:21,31:o,32:c,33:u,34:y,35:d,36:p,44:_,62:g,63:E},{4:17,5:l,7:33,8:h,9:i,11:n,13:s,14:14,15:15,16:16,17:19,23:21,31:o,32:c,33:u,34:y,35:d,36:p,44:_,62:g,63:E},{4:17,5:l,7:34,8:h,9:i,11:n,13:s,14:14,15:15,16:16,17:19,23:21,31:o,32:c,33:u,34:y,35:d,36:p,44:_,62:g,63:E},{4:17,5:l,7:35,8:h,9:i,11:n,13:s,14:14,15:15,16:16,17:19,23:21,31:o,32:c,33:u,34:y,35:d,36:p,44:_,62:g,63:E},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},t(R,[2,20]),t(R,[2,21]),t(R,[2,22]),t(R,[2,23]),t(R,[2,24]),t(R,[2,25]),t(m,[2,49]),t(m,[2,50]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{19:[1,44]},{19:[2,47]},{19:[2,48]},{19:[1,45]},{19:[2,53]},{19:[2,54]},{52:46,55:f,56:I,57:S,58:b,59:k,60:T,61:N},{52:54,55:f,56:I,57:S,58:b,59:k,60:T,61:N},{5:[1,55]},{5:[1,56]},{53:[1,57]},t(x,[2,40]),t(x,[2,41]),t(x,[2,42]),t(x,[2,43]),t(x,[2,44]),t(x,[2,45]),t(x,[2,46]),{54:[1,58]},{5:A,20:59,21:w,24:v,26:q,28:K,30:$},{5:O,30:L,46:66,47:C,49:M},{23:71,62:g,63:E},{23:72,62:g,63:E},t(F,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:A,20:77,21:w,24:v,26:q,28:K,30:$},t(F,[2,19]),t(F,[2,33]),{22:[1,78]},{22:[1,79]},{5:O,30:L,46:80,47:C,49:M},t(F,[2,37]),t(F,[2,38]),t(F,[2,39]),{23:81,62:g,63:E},{25:82,62:[1,83],63:[1,84]},{27:85,37:[1,86],38:[1,87],39:[1,88]},{29:89,40:[1,90],41:[1,91],42:[1,92],43:[1,93]},t(F,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},t(F,[2,36]),{5:[1,100]},{5:[1,101]},{5:[2,51]},{5:[2,52]},{5:[1,102]},{5:[2,26]},{5:[2,27]},{5:[2,28]},{5:[1,103]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[2,32]},{5:[1,104]},{5:[2,55]},{5:[2,56]},{5:[1,105]},{5:[2,57]},{5:[2,58]},{5:A,20:106,21:w,24:v,26:q,28:K,30:$},{5:A,20:107,21:w,24:v,26:q,28:K,30:$},{5:A,20:108,21:w,24:v,26:q,28:K,30:$},{5:A,20:109,21:w,24:v,26:q,28:K,30:$},{5:O,30:L,46:110,47:C,49:M},{5:O,30:L,46:111,47:C,49:M},t(F,[2,14]),t(F,[2,15]),t(F,[2,16]),t(F,[2,17]),t(F,[2,34]),t(F,[2,35])],defaultActions:{8:[2,2],12:[2,1],30:[2,3],31:[2,8],32:[2,9],33:[2,10],34:[2,11],35:[2,12],37:[2,47],38:[2,48],40:[2,53],41:[2,54],83:[2,51],84:[2,52],86:[2,26],87:[2,27],88:[2,28],90:[2,29],91:[2,30],92:[2,31],93:[2,32],95:[2,55],96:[2,56],98:[2,57],99:[2,58]},parseError:(0,r.K2)(function(t,e){if(e.recoverable)this.trace(t);else{var i=Error(t);throw i.hash=e,i}},"parseError"),parse:(0,r.K2)(function(t){var e=this,i=[0],n=[],s=[null],a=[],l=this.table,h="",o=0,c=0,u=0,y=a.slice.call(arguments,1),d=Object.create(this.lexer),p={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(p.yy[_]=this.yy[_]);d.setInput(t,p.yy),p.yy.lexer=d,p.yy.parser=this,void 0===d.yylloc&&(d.yylloc={});var g=d.yylloc;a.push(g);var E=d.options&&d.options.ranges;function R(){var t;return"number"!=typeof(t=n.pop()||d.lex()||1)&&(t instanceof Array&&(t=(n=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,r.K2)(function(t){i.length=i.length-2*t,s.length=s.length-t,a.length=a.length-t},"popStack"),(0,r.K2)(R,"lex");for(var m,f,I,S,b,k,T,N,x,A={};;){if(I=i[i.length-1],this.defaultActions[I]?S=this.defaultActions[I]:(null==m&&(m=R()),S=l[I]&&l[I][m]),void 0===S||!S.length||!S[0]){var w="";for(k in x=[],l[I])this.terminals_[k]&&k>2&&x.push("'"+this.terminals_[k]+"'");w=d.showPosition?"Parse error on line "+(o+1)+":\n"+d.showPosition()+"\nExpecting "+x.join(", ")+", got '"+(this.terminals_[m]||m)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==m?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(w,{text:d.match,token:this.terminals_[m]||m,line:d.yylineno,loc:g,expected:x})}if(S[0]instanceof Array&&S.length>1)throw Error("Parse Error: multiple actions possible at state: "+I+", token: "+m);switch(S[0]){case 1:i.push(m),s.push(d.yytext),a.push(d.yylloc),i.push(S[1]),m=null,f?(m=f,f=null):(c=d.yyleng,h=d.yytext,o=d.yylineno,g=d.yylloc,u>0&&u--);break;case 2:if(T=this.productions_[S[1]][1],A.$=s[s.length-T],A._$={first_line:a[a.length-(T||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(T||1)].first_column,last_column:a[a.length-1].last_column},E&&(A._$.range=[a[a.length-(T||1)].range[0],a[a.length-1].range[1]]),void 0!==(b=this.performAction.apply(A,[h,c,o,p.yy,S[1],s,a].concat(y))))return b;T&&(i=i.slice(0,-1*T*2),s=s.slice(0,-1*T),a=a.slice(0,-1*T)),i.push(this.productions_[S[1]][0]),s.push(A.$),a.push(A._$),N=l[i[i.length-2]][i[i.length-1]],i.push(N);break;case 3:return!0}}return!0},"parse")},P={EOF:1,parseError:(0,r.K2)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,r.K2)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,r.K2)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,r.K2)(function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===r.length?this.yylloc.first_column:0)+r[r.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,r.K2)(function(){return this._more=!0,this},"more"),reject:(0,r.K2)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,r.K2)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,r.K2)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,r.K2)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,r.K2)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,r.K2)(function(t,e){var i,r,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var s in n)this[s]=n[s];return!1},"test_match"),next:(0,r.K2)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,i,r,n=this._currentRules(),s=0;s<n.length;s++)if((i=this._input.match(this.rules[n[s]]))&&(!e||i[0].length>e[0].length)){if(e=i,r=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,n[s])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,r.K2)(function(){return this.next()||this.lex()},"lex"),begin:(0,r.K2)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,r.K2)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,r.K2)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,r.K2)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,r.K2)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,r.K2)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,r.K2)(function(t,e,i,r){switch(i){case 0:return"title";case 1:return this.begin("acc_title"),9;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),11;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:case 48:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 5;case 9:case 10:case 11:break;case 12:return 8;case 13:return 6;case 14:return 19;case 15:return 30;case 16:return 22;case 17:return 21;case 18:return 24;case 19:return 26;case 20:return 28;case 21:return 31;case 22:return 32;case 23:return 33;case 24:return 34;case 25:return 35;case 26:return 36;case 27:return 37;case 28:return 38;case 29:return 39;case 30:return 40;case 31:return 41;case 32:return 42;case 33:return 43;case 34:return 44;case 35:return 55;case 36:return 56;case 37:return 57;case 38:return 58;case 39:return 59;case 40:return 60;case 41:return 61;case 42:return 47;case 43:return 49;case 44:return 51;case 45:return 54;case 46:return 53;case 47:this.begin("string");break;case 49:return"qString";case 50:return e.yytext=e.yytext.trim(),62}},"anonymous"),rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[48,49],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,50],inclusive:!0}}};function V(){this.yy={}}return D.lexer=P,(0,r.K2)(V,"Parser"),V.prototype=D,D.Parser=V,new V}();l.parser=l;var h=[],o={},c=new Map,u={},y=new Map,d=(0,r.K2)((t,e)=>(c.has(t)||c.set(t,{name:t,type:e,id:o.id,text:o.text,risk:o.risk,verifyMethod:o.verifyMethod}),o={},c.get(t)),"addRequirement"),p=(0,r.K2)(()=>c,"getRequirements"),_=(0,r.K2)(t=>{void 0!==o&&(o.id=t)},"setNewReqId"),g=(0,r.K2)(t=>{void 0!==o&&(o.text=t)},"setNewReqText"),E=(0,r.K2)(t=>{void 0!==o&&(o.risk=t)},"setNewReqRisk"),R=(0,r.K2)(t=>{void 0!==o&&(o.verifyMethod=t)},"setNewReqVerifyMethod"),m=(0,r.K2)(t=>(y.has(t)||(y.set(t,{name:t,type:u.type,docRef:u.docRef}),r.Rm.info("Added new requirement: ",t)),u={},y.get(t)),"addElement"),f=(0,r.K2)(()=>y,"getElements"),I=(0,r.K2)(t=>{void 0!==u&&(u.type=t)},"setNewElementType"),S=(0,r.K2)(t=>{void 0!==u&&(u.docRef=t)},"setNewElementDocRef"),b=(0,r.K2)((t,e,i)=>{h.push({type:t,src:e,dst:i})},"addRelationship"),k=(0,r.K2)(()=>h,"getRelationships"),T=(0,r.K2)(()=>{h=[],o={},c=new Map,u={},y=new Map,(0,r.IU)()},"clear"),N={RequirementType:{REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},RiskLevel:{LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},VerifyType:{VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},Relationships:{CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},getConfig:(0,r.K2)(()=>(0,r.D7)().req,"getConfig"),addRequirement:d,getRequirements:p,setNewReqId:_,setNewReqText:g,setNewReqRisk:E,setNewReqVerifyMethod:R,setAccTitle:r.SV,getAccTitle:r.iN,setAccDescription:r.EI,getAccDescription:r.m7,addElement:m,getElements:f,setNewElementType:I,setNewElementDocRef:S,addRelationship:b,getRelationships:k,clear:T},x=(0,r.K2)(t=>` + + marker { + fill: ${t.relationColor}; + stroke: ${t.relationColor}; + } + + marker.cross { + stroke: ${t.lineColor}; + } + + svg { + font-family: ${t.fontFamily}; + font-size: ${t.fontSize}; + } + + .reqBox { + fill: ${t.requirementBackground}; + fill-opacity: 1.0; + stroke: ${t.requirementBorderColor}; + stroke-width: ${t.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${t.requirementTextColor}; + } + .reqLabelBox { + fill: ${t.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${t.requirementBorderColor}; + stroke-width: ${t.requirementBorderSize}; + } + .relationshipLine { + stroke: ${t.relationColor}; + stroke-width: 1; + } + .relationshipLabel { + fill: ${t.relationLabelColor}; + } + +`,"getStyles"),A={CONTAINS:"contains",ARROW:"arrow"},w=(0,r.K2)((t,e)=>{let i=t.append("defs").append("marker").attr("id",A.CONTAINS+"_line_ending").attr("refX",0).attr("refY",e.line_height/2).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("g");i.append("circle").attr("cx",e.line_height/2).attr("cy",e.line_height/2).attr("r",e.line_height/2).attr("fill","none"),i.append("line").attr("x1",0).attr("x2",e.line_height).attr("y1",e.line_height/2).attr("y2",e.line_height/2).attr("stroke-width",1),i.append("line").attr("y1",0).attr("y2",e.line_height).attr("x1",e.line_height/2).attr("x2",e.line_height/2).attr("stroke-width",1),t.append("defs").append("marker").attr("id",A.ARROW+"_line_ending").attr("refX",e.line_height).attr("refY",.5*e.line_height).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("path").attr("d",`M0,0 + L${e.line_height},${e.line_height/2} + M${e.line_height},${e.line_height/2} + L0,${e.line_height}`).attr("stroke-width",1)},"insertLineEndings"),v={ReqMarkers:A,insertLineEndings:w},q={},K=0,$=(0,r.K2)((t,e)=>t.insert("rect","#"+e).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",q.rect_min_width+"px").attr("height",q.rect_min_height+"px"),"newRectNode"),O=(0,r.K2)((t,e,i)=>{let r=q.rect_min_width/2,n=t.append("text").attr("class","req reqLabel reqTitle").attr("id",e).attr("x",r).attr("y",q.rect_padding).attr("dominant-baseline","hanging"),s=0;i.forEach(t=>{0==s?n.append("tspan").attr("text-anchor","middle").attr("x",q.rect_min_width/2).attr("dy",0).text(t):n.append("tspan").attr("text-anchor","middle").attr("x",q.rect_min_width/2).attr("dy",.75*q.line_height).text(t),s++});let a=1.5*q.rect_padding+s*q.line_height*.75;return t.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",q.rect_min_width).attr("y1",a).attr("y2",a),{titleNode:n,y:a}},"newTitleNode"),L=(0,r.K2)((t,e,i,r)=>{let n=t.append("text").attr("class","req reqLabel").attr("id",e).attr("x",q.rect_padding).attr("y",r).attr("dominant-baseline","hanging"),s=0,a=[];return i.forEach(t=>{let e=t.length;for(;e>30&&s<3;){let i=t.substring(0,30);e=(t=t.substring(30,t.length)).length,a[a.length]=i,s++}if(3==s){let t=a[a.length-1];a[a.length-1]=t.substring(0,t.length-4)+"..."}else a[a.length]=t;s=0}),a.forEach(t=>{n.append("tspan").attr("x",q.rect_padding).attr("dy",q.line_height).text(t)}),n},"newBodyNode"),C=(0,r.K2)((t,e,i,r)=>{let n=e.node().getTotalLength(),s=e.node().getPointAtLength(.5*n),a="rel"+K;K++;let l=t.append("text").attr("class","req relationshipLabel").attr("id",a).attr("x",s.x).attr("y",s.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(r).node().getBBox();t.insert("rect","#"+a).attr("class","req reqLabelBox").attr("x",s.x-l.width/2).attr("y",s.y-l.height/2).attr("width",l.width).attr("height",l.height).attr("fill","white").attr("fill-opacity","85%")},"addEdgeLabel"),M=(0,r.K2)(function(t,e,i,s,a){let l=i.edge(U(e.src),U(e.dst)),h=(0,n.n8j)().x(function(t){return t.x}).y(function(t){return t.y}),o=t.insert("path","#"+s).attr("class","er relationshipLine").attr("d",h(l.points)).attr("fill","none");e.type==a.db.Relationships.CONTAINS?o.attr("marker-start","url("+r.Y2.getUrl(q.arrowMarkerAbsolute)+"#"+e.type+"_line_ending)"):(o.attr("stroke-dasharray","10,7"),o.attr("marker-end","url("+r.Y2.getUrl(q.arrowMarkerAbsolute)+"#"+v.ReqMarkers.ARROW+"_line_ending)")),C(t,o,q,`<<${e.type}>>`)},"drawRelationshipFromLayout"),F=(0,r.K2)((t,e,i)=>{t.forEach((t,n)=>{n=U(n),r.Rm.info("Added new requirement: ",n);let s=i.append("g").attr("id",n),a=$(s,"req-"+n),l=[],h=O(s,n+"_title",[`<<${t.type}>>`,`${t.name}`]);l.push(h.titleNode),l.push(L(s,n+"_body",[`Id: ${t.id}`,`Text: ${t.text}`,`Risk: ${t.risk}`,`Verification: ${t.verifyMethod}`],h.y));let o=a.node().getBBox();e.setNode(n,{width:o.width,height:o.height,shape:"rect",id:n})})},"drawReqs"),D=(0,r.K2)((t,e,i)=>{t.forEach((t,r)=>{let n=U(r),s=i.append("g").attr("id",n),a="element-"+n,l=$(s,a),h=[],o=O(s,a+"_title",["<<Element>>",`${r}`]);h.push(o.titleNode),h.push(L(s,a+"_body",[`Type: ${t.type||"Not Specified"}`,`Doc Ref: ${t.docRef||"None"}`],o.y));let c=l.node().getBBox();e.setNode(n,{width:c.width,height:c.height,shape:"rect",id:n})})},"drawElements"),P=(0,r.K2)((t,e)=>(t.forEach(function(t){let i=U(t.src),r=U(t.dst);e.setEdge(i,r,{relationship:t})}),t),"addRelationships"),V=(0,r.K2)(function(t,e){e.nodes().forEach(function(i){void 0!==i&&void 0!==e.node(i)&&(t.select("#"+i),t.select("#"+i).attr("transform","translate("+(e.node(i).x-e.node(i).width/2)+","+(e.node(i).y-e.node(i).height/2)+" )"))})},"adjustEntities"),U=(0,r.K2)(t=>t.replace(/\s/g,"").replace(/\./g,"_"),"elementString"),Y={parser:l,db:N,renderer:{draw:(0,r.K2)((t,e,i,l)=>{let h;let o=(q=(0,r.D7)().requirement).securityLevel;"sandbox"===o&&(h=(0,n.Ltv)("#i"+e));let c=("sandbox"===o?(0,n.Ltv)(h.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id='${e}']`);v.insertLineEndings(c,q);let u=new a.T({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:q.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}}),y=l.db.getRequirements(),d=l.db.getElements(),p=l.db.getRelationships();F(y,u,c),D(d,u,c),P(p,u),(0,s.Zp)(u),V(c,u),p.forEach(function(t){M(c,t,u,e,l)});let _=q.rect_padding,g=c.node().getBBox(),E=g.width+2*_,R=g.height+2*_;(0,r.a$)(c,R,E,q.useMaxWidth),c.attr("viewBox",`${g.x-_} ${g.y-_} ${E} ${R}`)},"draw")},styles:x}}}]); \ No newline at end of file diff --git a/assets/js/138ea42e.81328381.js b/assets/js/138ea42e.065db885.js similarity index 75% rename from assets/js/138ea42e.81328381.js rename to assets/js/138ea42e.065db885.js index b55b9e2d1a..18b3b465d0 100644 --- a/assets/js/138ea42e.81328381.js +++ b/assets/js/138ea42e.065db885.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[76958],{29403:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var s=a(66585),o=a(62540),n=a(43023);let r={title:"Towards Docusaurus 2",authors:"endiliey",tags:["new","adoption"]},i=void 0,u={authorsImageUrls:[void 0]},l=[];function c(e){let t={a:"a",p:"p",...(0,n.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(t.p,{children:["Docusaurus was ",(0,o.jsx)(t.a,{href:"https://v1.docusaurus.io/blog/2017/12/14/introducing-docusaurus",children:"officially announced"})," over nine months ago as a way to easily build open source documentation websites. Since then, it has amassed over 8,600 GitHub Stars, and is used by many popular open source projects such as ",(0,o.jsx)(t.a,{href:"https://facebook.github.io/react-native/",children:"React Native"}),", ",(0,o.jsx)(t.a,{href:"https://babeljs.io/",children:"Babel"}),", ",(0,o.jsx)(t.a,{href:"https://jestjs.io/",children:"Jest"}),", ",(0,o.jsx)(t.a,{href:"https://reasonml.github.io/",children:"Reason"})," and ",(0,o.jsx)(t.a,{href:"https://prettier.io/",children:"Prettier"}),"."]}),"\n",(0,o.jsx)(t.p,{children:"There is a saying that the very best software is constantly evolving, and the very worst is not. In case you are not aware, we have been planning and working on the next version of Docusaurus \u{1F389}."})]})}function d(e={}){let{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},43023:(e,t,a)=>{a.d(t,{R:()=>r,x:()=>i});var s=a(63696);let o={},n=s.createContext(o);function r(e){let t=s.useContext(n);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(n.Provider,{value:t},e.children)}},66585:e=>{e.exports=JSON.parse('{"permalink":"/blog/2018/09/11/Towards-Docusaurus-2","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2018/09-11-Towards-Docusaurus-2.mdx","source":"@site/blog/2018/09-11-Towards-Docusaurus-2.mdx","title":"Towards Docusaurus 2","description":"Docusaurus was officially announced over nine months ago as a way to easily build open source documentation websites. Since then, it has amassed over 8,600 GitHub Stars, and is used by many popular open source projects such as React Native, Babel, Jest, Reason and Prettier.","date":"2018-09-11T00:00:00.000Z","tags":[{"inline":false,"label":"New","permalink":"/blog/tags/new"},{"inline":false,"label":"Adoption","permalink":"/blog/tags/adoption"}],"readingTime":9.25,"hasTruncateMarker":true,"authors":[{"name":"Endilie Yacop Sucipto","title":"Maintainer of Docusaurus","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null}],"frontMatter":{"title":"Towards Docusaurus 2","authors":"endiliey","tags":["new","adoption"]},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Happy 1st Birthday Slash!","permalink":"/blog/2018/12/14/Happy-First-Birthday-Slash"},"nextItem":{"title":"How I Converted Profilo to Docusaurus in Under 2 Hours","permalink":"/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[76958],{29403:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var a=s(66585),o=s(62540),n=s(43023);let r={title:"Towards Docusaurus 2",authors:"endiliey",tags:["new","adoption"]},i=void 0,u={authorsImageUrls:[void 0]},l=[];function c(e){let t={a:"a",p:"p",...(0,n.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(t.p,{children:["Docusaurus was ",(0,o.jsx)(t.a,{href:"https://v1.docusaurus.io/blog/2017/12/14/introducing-docusaurus",children:"officially announced"})," over nine months ago as a way to easily build open source documentation websites. Since then, it has amassed over 8,600 GitHub Stars, and is used by many popular open source projects such as ",(0,o.jsx)(t.a,{href:"https://facebook.github.io/react-native/",children:"React Native"}),", ",(0,o.jsx)(t.a,{href:"https://babeljs.io/",children:"Babel"}),", ",(0,o.jsx)(t.a,{href:"https://jestjs.io/",children:"Jest"}),", ",(0,o.jsx)(t.a,{href:"https://reasonml.github.io/",children:"Reason"})," and ",(0,o.jsx)(t.a,{href:"https://prettier.io/",children:"Prettier"}),"."]}),"\n",(0,o.jsx)(t.p,{children:"There is a saying that the very best software is constantly evolving, and the very worst is not. In case you are not aware, we have been planning and working on the next version of Docusaurus \u{1F389}."})]})}function d(e={}){let{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},43023:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>i});var a=s(63696);let o={},n=a.createContext(o);function r(e){let t=a.useContext(n);return a.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),a.createElement(n.Provider,{value:t},e.children)}},66585:e=>{e.exports=JSON.parse('{"permalink":"/blog/2018/09/11/Towards-Docusaurus-2","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2018/09-11-Towards-Docusaurus-2.mdx","source":"@site/blog/2018/09-11-Towards-Docusaurus-2.mdx","title":"Towards Docusaurus 2","description":"Docusaurus was officially announced over nine months ago as a way to easily build open source documentation websites. Since then, it has amassed over 8,600 GitHub Stars, and is used by many popular open source projects such as React Native, Babel, Jest, Reason and Prettier.","date":"2018-09-11T00:00:00.000Z","tags":[{"inline":false,"label":"New","permalink":"/blog/tags/new"},{"inline":false,"label":"Adoption","permalink":"/blog/tags/adoption"}],"readingTime":9.25,"hasTruncateMarker":true,"authors":[{"name":"Endilie Yacop Sucipto","title":"Maintainer of Docusaurus","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null}],"frontMatter":{"title":"Towards Docusaurus 2","authors":"endiliey","tags":["new","adoption"]},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Happy 1st Birthday Slash!","permalink":"/blog/2018/12/14/Happy-First-Birthday-Slash"},"nextItem":{"title":"How I Converted Profilo to Docusaurus in Under 2 Hours","permalink":"/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"}}')}}]); \ No newline at end of file diff --git a/assets/js/141512d1.93e65db9.js b/assets/js/141512d1.f5e7d07b.js similarity index 99% rename from assets/js/141512d1.93e65db9.js rename to assets/js/141512d1.f5e7d07b.js index 74b5d17285..3c5eced3aa 100644 --- a/assets/js/141512d1.93e65db9.js +++ b/assets/js/141512d1.f5e7d07b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[76694],{69202:(e,n,s)=>{s.d(n,{A:()=>r});let r=s.p+"assets/images/social-card-1c688c53b51bdaa6e15ae532bf756276.png"},47992:(e,n,s)=>{s.d(n,{A:()=>r});let r=s.p+"assets/images/mdx-checker-output-0f96cc19fd3ed4d55901ca90ad657c14.png"},68111:(e,n,s)=>{s.d(n,{A:()=>r});let r=s.p+"assets/images/mdx2-playground-options-eab88e8328a6902759c4236ffc93d9c6.png"},53743:(e,n,s)=>{s.d(n,{A:()=>r});let r=s.p+"assets/images/social-card-1c688c53b51bdaa6e15ae532bf756276.png"},56482:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>t,metadata:()=>r,toc:()=>d});var r=s(48876),o=s(62540),i=s(43023);let t={title:"Preparing your site for Docusaurus v3",authors:["slorber"],tags:["maintenance"],slug:"/preparing-your-site-for-docusaurus-v3",image:"./img/social-card.png"},a=void 0,c={image:s(69202).A,authorsImageUrls:[void 0]},d=[{value:"Preparatory work",id:"preparatory-work",level:2},{value:"Preparing content for MDX v3",id:"preparing-content-for-mdx-v3",level:2},{value:"Using the MDX playground",id:"using-the-mdx-playground",level:3},{value:"Using the MDX checker CLI",id:"using-the-mdx-checker-cli",level:3},{value:"Common MDX problems",id:"common-mdx-problems",level:3},{value:"Bad usage of <code>{</code>",id:"bad-usage-of-",level:4},{value:"Bad usage of <code><</code>",id:"bad-usage-of--1",level:4},{value:"Bad usage of GFM Autolink",id:"bad-usage-of-gfm-autolink",level:4},{value:"Lower-case MDXComponent mapping",id:"lower-case-mdxcomponent-mapping",level:4},{value:"Unintended extra paragraphs",id:"unintended-extra-paragraphs",level:4},{value:"Unintended usage of directives",id:"unintended-usage-of-directives",level:4},{value:"Unsupported indented code blocks",id:"unsupported-indented-code-blocks",level:4},{value:"MDX plugins",id:"mdx-plugins",level:3},{value:"Other breaking changes",id:"other-breaking-changes",level:2},{value:"Node.js 18.0",id:"nodejs-180",level:3},{value:"React 18.0",id:"react-180",level:3},{value:"TypeScript 5.0",id:"typescript-50",level:3},{value:"TypeScript base config",id:"typescript-base-config",level:3},{value:"Admonition warning",id:"admonition-warning",level:3},{value:"Versioned sidebars",id:"versioned-sidebars",level:3},{value:"Try Docusaurus v3 today",id:"try-docusaurus-v3-today",level:2},{value:"Ask for help",id:"ask-for-help",level:2},{value:"Conclusion",id:"conclusion",level:2}];function l(e){let n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components},{Details:r}=n;return r||function(e,n){throw Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsxs)(n.p,{children:["This blog post was written when Docusaurus v3 was in beta. There are some changes in dependency versions and upgrade steps you should be aware of if upgrading to Docusaurus v3 current stable releases. Use the ",(0,o.jsx)(n.a,{href:"https://docusaurus.io/docs/next/migration/v3",children:"upgrade guide"})," for the most up-to-date migration steps."]})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Docusaurus v3"})," is now ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9312",children:(0,o.jsx)(n.strong,{children:"in beta"})})," and the official release is around the corner. This is the perfect time to start ",(0,o.jsx)(n.strong,{children:"preparing your site"})," for this new major version."]}),"\n",(0,o.jsxs)(n.p,{children:["Docusaurus v3 comes with a few ",(0,o.jsx)(n.strong,{children:"breaking changes"}),", many of which can be ",(0,o.jsx)(n.strong,{children:"handled today under Docusaurus v2"}),". Preparing your site ahead of time can be done incrementally, and will make it easier to upgrade to v3."]}),"\n",(0,o.jsxs)(n.p,{children:["The main breaking change is the upgrade from MDX v1 to MDX v3. Read the ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/blog/v2/",children:(0,o.jsx)(n.strong,{children:"MDX v2"})})," and ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/blog/v3/",children:(0,o.jsx)(n.strong,{children:"MDX v3"})})," release notes for details. MDX will now compile your Markdown content ",(0,o.jsx)(n.strong,{children:"more strictly"})," and with ",(0,o.jsx)(n.strong,{children:"subtle differences"}),"."]}),"\n",(0,o.jsx)(n.p,{children:"This article will mostly focus on how to prepare your content for this new MDX version, and will also list a few other breaking changes that you can handle today."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Preparing your site for Docusaurus v3 - social card",src:s(53743).A+"",width:"1040",height:"546"})}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsxs)(n.p,{children:["This article mentions most Docusaurus v3 breaking changes, but is not exhaustive. Read the ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9312",children:"v3.0.0-beta.0 release notes"})," for an exhaustive list."]})}),"\n",(0,o.jsxs)(n.admonition,{title:"Don't be afraid",type:"tip",children:[(0,o.jsx)(n.p,{children:"There's a lot of content in this blog post, but many Docusaurus v2 sites can upgrade with very few changes."}),(0,o.jsxs)(n.p,{children:["If your site is relatively small, with only a few customizations, you can probably ",(0,o.jsx)(n.a,{href:"#try-docusaurus-v3-today",children:"upgrade to Docusaurus v3"})," immediately."]})]}),"\n",(0,o.jsx)(n.h2,{id:"preparatory-work",children:"Preparatory work"}),"\n",(0,o.jsxs)(n.p,{children:["Before preparing for the Docusaurus v3 upgrade, we recommend upgrading to the latest ",(0,o.jsx)(n.a,{href:"/versions",children:"Docusaurus v2 version"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["Depending on the complexity of your site, it may be a good idea to adopt the ",(0,o.jsx)(n.a,{href:"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing",children:"visual regression testing workflow"})," that we recently presented. It could help you catch unexpected visual side effects occurring during the Docusaurus v3 upgrade."]}),"\n",(0,o.jsxs)(n.p,{children:["We also recommend using the ",(0,o.jsx)(n.code,{children:".mdx"})," extension whenever you use JSX, ",(0,o.jsx)(n.code,{children:"import"}),", or ",(0,o.jsx)(n.code,{children:"export"})," (i.e. MDX features) inside a Markdown file. It is semantically more correct and improves compatibility with external tools (IDEs, formatters, linters, etc.). In future versions of Docusaurus, ",(0,o.jsx)(n.code,{children:".md"})," files will be parsed as standard ",(0,o.jsx)(n.a,{href:"https://commonmark.org/",children:"CommonMark"}),", which does not support these features. In Docusaurus v3, ",(0,o.jsx)(n.code,{children:".md"})," files keep being compiled as MDX files, but it will be possible to ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/issues/3018",children:"opt-in for CommonMark"}),"."]}),"\n",(0,o.jsx)(n.h2,{id:"preparing-content-for-mdx-v3",children:"Preparing content for MDX v3"}),"\n",(0,o.jsxs)(n.p,{children:["MDX is a major dependency of Docusaurus responsible for compiling your ",(0,o.jsx)(n.code,{children:".md"})," and ",(0,o.jsx)(n.code,{children:".mdx"})," files to React components."]}),"\n",(0,o.jsxs)(n.p,{children:["MDX v3 is much better, but also comes with changes that probably require you to refactor your content a bit. MDX v3 is stricter, and some components that compiled fine under v1 might now fail to compile under v3, most likely because of ",(0,o.jsx)(n.code,{children:"{"})," and ",(0,o.jsx)(n.code,{children:"<"})," characters."]}),"\n",(0,o.jsxs)(n.p,{children:["Upgrading MDX comes with all the breaking changes documented on the ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/blog/v2/",children:"MDX v2"})," and ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/blog/v3/",children:"MDX v3"})," release blog posts. Most breaking changes come from MDX v2. The ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/migrating/v2/",children:"MDX v2 migration guide"})," has a section on how to ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/migrating/v2/#update-mdx-files",children:"update MDX files"})," that will be particularly relevant to us. Also make sure to read the ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/docs/troubleshooting-mdx/",children:"Troubleshooting MDX"})," page that can help you interpret common MDX error messages."]}),"\n",(0,o.jsxs)(n.p,{children:["Make sure to also read our updated ",(0,o.jsx)(n.a,{href:"/docs/markdown-features/react",children:(0,o.jsx)(n.strong,{children:"MDX and React"})})," documentation page."]}),"\n",(0,o.jsx)(n.admonition,{title:"Ask for help",type:"tip",children:(0,o.jsxs)(n.p,{children:["We have a dedicated ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9053",children:"MDX v3 - Upgrade Support"})," discussion."]})}),"\n",(0,o.jsx)(n.h3,{id:"using-the-mdx-playground",children:"Using the MDX playground"}),"\n",(0,o.jsxs)(n.p,{children:["The MDX playground is your new best friend. It permits to understand how your content is ",(0,o.jsx)(n.strong,{children:"compiled to React components"}),", and troubleshoot compilation or rendering issues in isolation."]}),"\n",(0,o.jsx)(n.p,{children:"Each MDX version comes with its own playground:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://mdxjs.com/playground/",children:"MDX playground - current version"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://mdx-git-renovate-babel-monorepo-mdx.vercel.app/playground/",children:"MDX playground - v1"})}),"\n"]}),"\n",(0,o.jsxs)(r,{children:[(0,o.jsx)("summary",{children:"Configuring the MDX playground options for Docusaurus"}),(0,o.jsxs)(n.p,{children:["To obtain a compilation behavior similar to what Docusaurus v2 uses, please turn on these options on the ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/playground/",children:"MDX playground"}),":"]}),(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Use ",(0,o.jsx)(n.code,{children:"MDX"})]}),"\n",(0,o.jsxs)(n.li,{children:["Use ",(0,o.jsx)(n.code,{children:"remark-gfm"})]}),"\n",(0,o.jsxs)(n.li,{children:["Use ",(0,o.jsx)(n.code,{children:"remark-directive"})]}),"\n"]}),(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Screenshot of the MDX playground's options panel, with only the "Use MDX", "Use remark-gfm", and "Use remark-directive" options checked",src:s(68111).A+"",width:"1968",height:"1316"})})]}),"\n",(0,o.jsx)(n.p,{children:"Using the two MDX playgrounds side-by-side, you will soon notice that some content is compiled differently or fails to compile in v3."}),"\n",(0,o.jsx)(n.admonition,{title:"Making your content future-proof",type:"tip",children:(0,o.jsxs)(n.p,{children:["The goal will be to refactor your problematic content so that it ",(0,o.jsx)(n.strong,{children:"works fine with both versions of MDX"}),". This way, when you upgrade to Docusaurus v3, this content will already work out-of-the-box."]})}),"\n",(0,o.jsx)(n.h3,{id:"using-the-mdx-checker-cli",children:"Using the MDX checker CLI"}),"\n",(0,o.jsxs)(n.p,{children:["We provide a ",(0,o.jsx)(n.a,{href:"https://github.com/slorber/docusaurus-mdx-checker",children:"docusaurus-mdx-checker"})," CLI that permits to easily spot problematic content. Run this command today on your Docusaurus v2 site to obtain a list of files that will fail to compile under MDX v3."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"npx docusaurus-mdx-checker\n"})}),"\n",(0,o.jsx)(n.p,{children:"For each compilation issue, the CLI will log the file path and a line number to look at."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Screenshot of the terminal showing an example MDX checker CLI output, with a few error messages",src:s(47992).A+"",width:"1161",height:"417"})}),"\n",(0,o.jsx)(n.admonition,{type:"tip",children:(0,o.jsx)(n.p,{children:"Use this CLI to estimate of how much work will be required to make your content compatible with MDX v3."})}),"\n",(0,o.jsxs)(n.admonition,{type:"warning",children:[(0,o.jsx)(n.p,{children:"This CLI is a best effort, and will only report compilation errors."}),(0,o.jsxs)(n.p,{children:["It will not report subtle compilation changes that do not produce errors but can affect how your content is displayed. To catch these problems, we recommend using ",(0,o.jsx)(n.a,{href:"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing",children:"visual regression tests"}),"."]})]}),"\n",(0,o.jsx)(n.h3,{id:"common-mdx-problems",children:"Common MDX problems"}),"\n",(0,o.jsx)(n.p,{children:"We upgraded a few Docusaurus sites to Docusaurus v3 and MDX v3:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/pull/8288",children:"Docusaurus PR"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://github.com/facebook/react-native-website/pull/3780",children:"React-Native PR"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://github.com/jestjs/jest/pull/14463",children:"Jest PR"})}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"These upgrades permitted us to aggregate the most common content problems, and document how to best handle them."}),"\n",(0,o.jsxs)(n.h4,{id:"bad-usage-of-",children:["Bad usage of ",(0,o.jsx)(n.code,{children:"{"})]}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.code,{children:"{"})," character is used for opening ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/docs/what-is-mdx/#expressions",children:"JavaScript expressions"}),". MDX will now fail if what you put inside ",(0,o.jsx)(n.code,{children:"{expression}"})," is not a valid expression."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"The object shape looks like {username: string, age: number}\n"})}),"\n",(0,o.jsx)(n.admonition,{title:"Error message",type:"danger",children:(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsx)(n.p,{children:"Could not parse expression with acorn: Unexpected content after expression"}),"\n"]})}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsx)(n.p,{children:"Available options to fix this error:"}),(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Use inline code: ",(0,o.jsx)(n.code,{children:"{username: string, age: number}"})]}),"\n",(0,o.jsxs)(n.li,{children:["Use the HTML code: ",(0,o.jsx)(n.code,{children:"{"})]}),"\n",(0,o.jsxs)(n.li,{children:["Escape it: ",(0,o.jsx)(n.code,{children:"\\{"})]}),"\n"]})]}),"\n",(0,o.jsxs)(n.h4,{id:"bad-usage-of--1",children:["Bad usage of ",(0,o.jsx)(n.code,{children:"<"})]}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.code,{children:"<"})," character is used for opening ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/docs/what-is-mdx/#jsx",children:"JSX tags"}),". MDX will now fail if it thinks your JSX is invalid."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:'Use Android version <5\n\nYou can use a generic type like Array<T>\n\nFollow the template "Road to <YOUR_MINOR_VERSION>"\n'})}),"\n",(0,o.jsxs)(n.admonition,{title:"Error messages",type:"danger",children:[(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:["Unexpected character ",(0,o.jsx)(n.code,{children:"5"})," (U+0035) before name, expected a character that can start a name, such as a letter, ",(0,o.jsx)(n.code,{children:"$"}),", or ",(0,o.jsx)(n.code,{children:"_"})]}),"\n"]}),(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:["Expected a closing tag for ",(0,o.jsx)(n.code,{children:"<T>"})," (1:6-1:9) before the end of ",(0,o.jsx)(n.code,{children:"paragraph"})," end-tag-mismatch mdast-util-mdx-jsx"]}),"\n"]}),(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:["Expected a closing tag for ",(0,o.jsx)(n.code,{children:"<YOUR_MINOR_VERSION>"})," (134:19-134:39) before the end of ",(0,o.jsx)(n.code,{children:"paragraph"})]}),"\n"]})]}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsx)(n.p,{children:"Available options to fix this error:"}),(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Use inline code: ",(0,o.jsx)(n.code,{children:"Array<T>"})]}),"\n",(0,o.jsxs)(n.li,{children:["Use the HTML code: ",(0,o.jsx)(n.code,{children:"<"})," or ",(0,o.jsx)(n.code,{children:"<"})]}),"\n",(0,o.jsxs)(n.li,{children:["Escape it: ",(0,o.jsx)(n.code,{children:"\\<"})," (unfortunately the ",(0,o.jsx)(n.code,{children:"\\"})," will be displayed under MDX v1)"]}),"\n"]})]}),"\n",(0,o.jsx)(n.h4,{id:"bad-usage-of-gfm-autolink",children:"Bad usage of GFM Autolink"}),"\n",(0,o.jsxs)(n.p,{children:["Docusaurus supports ",(0,o.jsx)(n.a,{href:"https://github.github.com/gfm/",children:"GitHub Flavored Markdown (GFM)"}),", but ",(0,o.jsx)(n.a,{href:"https://github.github.com/gfm/#autolinks",children:"autolink"})," using the ",(0,o.jsx)(n.code,{children:"<link>"})," syntax is not supported anymore by MDX."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"<sebastien@thisweekinreact.com>\n\n<http://localhost:3000>\n"})}),"\n",(0,o.jsxs)(n.admonition,{title:"Error messages",type:"danger",children:[(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:["Unexpected character ",(0,o.jsx)(n.code,{children:"@"})," (U+0040) in name, expected a name character such as letters, digits, ",(0,o.jsx)(n.code,{children:"$"}),", or ",(0,o.jsx)(n.code,{children:"_"}),"; whitespace before attributes; or the end of the tag (note: to create a link in MDX, use ",(0,o.jsx)(n.code,{children:"[text](url)"}),")"]}),"\n"]}),(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:["Unexpected character ",(0,o.jsx)(n.code,{children:"/"})," (U+002F) before local name, expected a character that can start a name, such as a letter, ",(0,o.jsx)(n.code,{children:"$"}),", or ",(0,o.jsx)(n.code,{children:"_"})," (note: to create a link in MDX, use ",(0,o.jsx)(n.code,{children:"[text](url)"}),")"]}),"\n"]})]}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsxs)(n.p,{children:["Use regular Markdown links, or remove the ",(0,o.jsx)(n.code,{children:"<"})," and ",(0,o.jsx)(n.code,{children:">"}),". MDX and GFM are able to autolink literals already."]}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"sebastien@thisweekinreact.com\n[sebastien@thisweekinreact.com](mailto:sebastien@thisweekinreact.com)\n\nhttp://localhost:3000\n[http://localhost:3000](http://localhost:3000)\n"})})]}),"\n",(0,o.jsx)(n.h4,{id:"lower-case-mdxcomponent-mapping",children:"Lower-case MDXComponent mapping"}),"\n",(0,o.jsxs)(n.p,{children:["For users providing a ",(0,o.jsxs)(n.a,{href:"/docs/markdown-features/react#mdx-component-scope",children:["custom ",(0,o.jsx)(n.code,{children:"MDXComponent"}),"mapping"]}),', components are now "sandboxed":']}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["a ",(0,o.jsx)(n.code,{children:"MDXComponent"})," mapping for ",(0,o.jsx)(n.code,{children:"h1"})," only gets used for ",(0,o.jsx)(n.code,{children:"# hi"})," but not for ",(0,o.jsx)(n.code,{children:"<h1>hi</h1>"})]}),"\n",(0,o.jsxs)(n.li,{children:["a ",(0,o.jsx)(n.strong,{children:"lower-cased"})," custom element name will not be substituted by its respective ",(0,o.jsx)(n.code,{children:"MDXComponent"})," component anymore"]}),"\n"]}),"\n",(0,o.jsx)(n.admonition,{title:"visual difference",type:"danger",children:(0,o.jsxs)(n.p,{children:["Your ",(0,o.jsxs)(n.a,{href:"/docs/markdown-features/react#mdx-component-scope",children:[(0,o.jsx)(n.code,{children:"MDXComponent"})," component mapping"]})," might not be applied as before, and your custom components might no longer be used."]})}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsxs)(n.p,{children:["For native Markdown elements, you can keep using ",(0,o.jsx)(n.strong,{children:"lower-case"}),": ",(0,o.jsx)(n.code,{children:"p"}),", ",(0,o.jsx)(n.code,{children:"h1"}),", ",(0,o.jsx)(n.code,{children:"img"}),", ",(0,o.jsx)(n.code,{children:"a"}),"..."]}),(0,o.jsxs)(n.p,{children:["For any other element, ",(0,o.jsx)(n.strong,{children:"use upper-case names"}),"."]}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-diff",metastring:'title="src/theme/MDXComponents.js"',children:' import MDXComponents from \'@theme-original/MDXComponents\';\n\n export default {\n ...MDXComponents,\n p: (props) => <p {...props} className="my-paragraph"/>\n- myElement: (props) => <div {...props} className="my-class" />,\n+ MyElement: (props) => <div {...props} className="my-class" />,\n };\n'})})]}),"\n",(0,o.jsx)(n.h4,{id:"unintended-extra-paragraphs",children:"Unintended extra paragraphs"}),"\n",(0,o.jsxs)(n.p,{children:["In MDX, it is now possible to interleave JSX and Markdown more easily without requiring extra line breaks. Writing content on multiple lines can also produce new expected ",(0,o.jsx)(n.code,{children:"<p>"})," tags."]}),"\n",(0,o.jsxs)(n.admonition,{title:"visual difference",type:"danger",children:[(0,o.jsx)(n.p,{children:"See how this content is rendered differently by MDX v1 and v3."}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"<div>Some **Markdown** content</div>\n<div>\n Some **Markdown** content\n</div>\n"})}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-html",metastring:'title="MDX v1 output"',children:"<div>Some **Markdown** content</div>\n<div>Some **Markdown** content</div>\n"})}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-html",metastring:'title="MDX v3 output"',children:"<div>Some <strong>Markdown</strong> content</div>\n<div><p>Some <strong>Markdown</strong> content</p></div>\n"})})]}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsxs)(n.p,{children:["If you don't want an extra ",(0,o.jsx)(n.code,{children:"<p>"})," tag, refactor content on a case by case basis to use a single-line JSX tag."]}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-diff",children:' <figure>\n <img src="/img/myImage.png" alt="My alt" />\n- <figcaption>\n- My image caption\n- </figcaption>\n+ <figcaption>My image caption</figcaption>\n </figure>\n'})}),(0,o.jsxs)(n.p,{children:['If your content contains "Markdown inlines" (',(0,o.jsx)(n.code,{children:"**"}),", ",(0,o.jsx)(n.code,{children:"*"}),", ",(0,o.jsx)(n.code,{children:"_"}),", ",(0,o.jsx)(n.code,{children:"[link](/path)"}),"), you might not be able to refactor it ahead of time, and will have to do it alongside the Docusaurus v3 upgrade."]})]}),"\n",(0,o.jsx)(n.h4,{id:"unintended-usage-of-directives",children:"Unintended usage of directives"}),"\n",(0,o.jsxs)(n.p,{children:["Docusaurus v3 now uses ",(0,o.jsx)(n.a,{href:"https://talk.commonmark.org/t/generic-directives-plugins-syntax/444",children:"Markdown Directives"})," (implemented with ",(0,o.jsx)(n.a,{href:"https://github.com/remarkjs/remark-directive",children:"remark-directive"}),") as a generic way to provide support for admonitions, and other upcoming Docusaurus features."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"This is a :textDirective\n\n::leafDirective\n\n:::containerDirective\n\nContainer directive content\n\n:::\n"})}),"\n",(0,o.jsxs)(n.admonition,{title:"Visual change",type:"danger",children:[(0,o.jsx)(n.p,{children:"Directives are parsed with the purpose of being handled by other Remark plugins. Unhandled directives will be ignored, and won't be rendered back in their original form."}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"The AWS re:Invent conf is great\n"})}),(0,o.jsxs)(n.p,{children:["Due to ",(0,o.jsx)(n.code,{children:":Invent"})," being parsed as a text directive, this will now be rendered as:"]}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"The AWS re\nconf is great\n"})})]}),"\n",(0,o.jsx)(n.admonition,{title:"How to prepare",type:"tip",children:(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Use the HTML code: ",(0,o.jsx)(n.code,{children:":"})]}),"\n",(0,o.jsxs)(n.li,{children:["Add a space after ",(0,o.jsx)(n.code,{children:":"})," (if it makes sense): ",(0,o.jsx)(n.code,{children:": text"})]}),"\n",(0,o.jsxs)(n.li,{children:["Escape it: ",(0,o.jsx)(n.code,{children:"\\:"})," (unfortunately the ",(0,o.jsx)(n.code,{children:"\\"})," will be displayed under MDX v1)"]}),"\n"]})}),"\n",(0,o.jsx)(n.h4,{id:"unsupported-indented-code-blocks",children:"Unsupported indented code blocks"}),"\n",(0,o.jsx)(n.p,{children:"MDX does not transform indented text as code blocks anymore."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:' console.log("hello");\n'})}),"\n",(0,o.jsx)(n.admonition,{title:"Visual change",type:"danger",children:(0,o.jsx)(n.p,{children:"The upgrade does not generally produce new MDX compilation errors, but can lead to content being rendered in an unexpected way because there isn't a code block anymore."})}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsx)(n.p,{children:"Use the regular code block syntax instead of indentation:"}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"```js\nconsole.log('hello');\n```\n"})})]}),"\n",(0,o.jsx)(n.h3,{id:"mdx-plugins",children:"MDX plugins"}),"\n",(0,o.jsxs)(n.p,{children:["All the official packages (Unified, Remark, Rehype...) in the MDX ecosystem are now ",(0,o.jsx)(n.a,{href:"https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c",children:(0,o.jsx)(n.strong,{children:"ES Modules only"})})," and do not support ",(0,o.jsx)(n.a,{href:"https://nodejs.org/api/modules.html#modules-commonjs-modules",children:"CommonJS"})," anymore."]}),"\n",(0,o.jsxs)(n.p,{children:["In practice this means that you can't do ",(0,o.jsx)(n.code,{children:'require("remark-plugin")'})," anymore."]}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsxs)(n.p,{children:["Docusaurus v3 now supports ",(0,o.jsx)(n.a,{href:"https://flaviocopes.com/es-modules/",children:(0,o.jsx)(n.strong,{children:"ES Modules"})})," configuration files. We recommend that you migrate your config file to ES module, that enables you to import the Remark plugins easily:"]}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"import remarkPlugin from 'remark-plugin';\n\nexport default {\n title: 'Docusaurus',\n /* site config using remark plugins here */\n};\n"})}),(0,o.jsxs)(n.p,{children:["If you want to keep using CommonJS modules, you can use dynamic imports as a workaround that enables you to import ES modules inside a CommonJS module. Fortunately, the ",(0,o.jsx)(n.a,{href:"/docs/configuration#syntax-to-declare-docusaurus-config",children:"Docusaurus config supports the usage of an async function"})," to let you do so."]}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"module.exports = async function () {\n const myPlugin = (await import('remark-plugin')).default;\n return {\n // site config...\n };\n};\n"})})]}),"\n",(0,o.jsx)(n.admonition,{title:"For plugin authors",type:"info",children:(0,o.jsxs)(n.p,{children:["If you created custom Remark or Rehype plugins, you may need to refactor those, or eventually rewrite them completely, due to how the new AST is structured. We have created a ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9337",children:"dedicated support discussion"})," to help plugin authors upgrade their code."]})}),"\n",(0,o.jsx)(n.h2,{id:"other-breaking-changes",children:"Other breaking changes"}),"\n",(0,o.jsx)(n.p,{children:"Apart from MDX, there are other breaking changes that you can already prepare your site for, notably major version upgrades of important dependencies."}),"\n",(0,o.jsx)(n.h3,{id:"nodejs-180",children:"Node.js 18.0"}),"\n",(0,o.jsxs)(n.p,{children:["Node.js 16 ",(0,o.jsx)(n.a,{href:"https://nodejs.org/en/blog/announcements/nodejs16-eol",children:"reached End-of-Life"}),", and Docusaurus v3 now requires ",(0,o.jsx)(n.strong,{children:"Node.js >= 18.0"}),"."]}),"\n",(0,o.jsx)(n.admonition,{title:"How to prepare",type:"tip",children:(0,o.jsx)(n.p,{children:"Upgrade your Docusaurus v2 site to Node.js 18 before upgrading to Docusaurus v3."})}),"\n",(0,o.jsx)(n.h3,{id:"react-180",children:"React 18.0"}),"\n",(0,o.jsxs)(n.p,{children:["Docusaurus v3 now requires ",(0,o.jsx)(n.strong,{children:"React >= 18.0"}),"."]}),"\n",(0,o.jsx)(n.p,{children:"React 18 comes with its own breaking changes that should be relatively easy to handle, depending on the amount of custom React code you created for your site."}),"\n",(0,o.jsx)(n.p,{children:"Simple Docusaurus sites that only use our official theme code without swizzling do not have anything to do."}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsxs)(n.p,{children:["Read the official ",(0,o.jsx)(n.a,{href:"https://react.dev/blog/2022/03/29/react-v18",children:"React v18.0"})," and ",(0,o.jsx)(n.a,{href:"https://react.dev/blog/2022/03/08/react-18-upgrade-guide",children:"How to Upgrade to React 18"}),", and look at your first-party React code to figure out which components might be affected this React 18 upgrade."]}),(0,o.jsx)(n.p,{children:"We recommend to particularly look for:"}),(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Automatic batching for stateful components"}),"\n",(0,o.jsx)(n.li,{children:"New React hydration errors reported to the console"}),"\n"]})]}),"\n",(0,o.jsx)(n.h3,{id:"typescript-50",children:"TypeScript 5.0"}),"\n",(0,o.jsxs)(n.p,{children:["Docusaurus v3 now requires ",(0,o.jsx)(n.strong,{children:"TypeScript >= 5.0"}),"."]}),"\n",(0,o.jsx)(n.admonition,{title:"How to prepare",type:"tip",children:(0,o.jsx)(n.p,{children:"Upgrade your Docusaurus v2 site to TypeScript 5 before upgrading to Docusaurus v3."})}),"\n",(0,o.jsx)(n.h3,{id:"typescript-base-config",children:"TypeScript base config"}),"\n",(0,o.jsxs)(n.p,{children:["The official Docusaurus TypeScript config has been re-internalized from the external package ",(0,o.jsx)(n.a,{href:"https://www.npmjs.com/package/@tsconfig/docusaurus",children:(0,o.jsx)(n.code,{children:"@tsconfig/docusaurus"})})," to our new monorepo package ",(0,o.jsx)(n.a,{href:"https://www.npmjs.com/package/@docusaurus/tsconfig",children:(0,o.jsx)(n.code,{children:"@docusaurus/tsconfig"})}),"."]}),"\n",(0,o.jsx)(n.p,{children:"This new package is versioned alongside all the other Docusaurus core packages, and will be used to ensure TypeScript retro-compatibility and breaking changes on major version upgrades."}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsx)(n.p,{children:"The new Docusaurus v3 TypeScript config is sensibly the same as the former Docusaurus v2 TypeScript config. If you upgraded to TypeScript 5, using the Docusaurus v3 config on a v2 site is already possible:"}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-diff",metastring:'title="package.json"',children:' {\n "devDependencies": {\n- "@tsconfig/docusaurus": "^1.0.7",\n+ "@docusaurus/tsconfig": "^3.0.0-beta.0",\n }\n }\n'})}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-diff",metastring:'title="tsconfig.json"',children:' {\n- "extends": "@tsconfig/docusaurus/tsconfig.json",\n+ "extends": "@docusaurus/tsconfig",\n "compilerOptions": {\n "baseUrl": "."\n }\n }\n'})})]}),"\n",(0,o.jsx)(n.h3,{id:"admonition-warning",children:"Admonition warning"}),"\n",(0,o.jsxs)(n.p,{children:["For historical reasons, we support an undocumented admonition ",(0,o.jsx)(n.code,{children:":::warning"})," that renders with a red color."]}),"\n",(0,o.jsx)(n.admonition,{title:"Warning",type:"danger",children:(0,o.jsxs)(n.p,{children:["This is a Docusaurus v2 ",(0,o.jsx)(n.code,{children:":::warning"})," admonition."]})}),"\n",(0,o.jsxs)(n.p,{children:["However, the color and icon is historically wrong. Docusaurus v3 re-introduces ",(0,o.jsx)(n.code,{children:":::warning"})," admonition officially, documents it, and fix the color and icon."]}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsxs)(n.p,{children:["This is a Docusaurus v3 ",(0,o.jsx)(n.code,{children:":::warning"})," admonition."]})}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsxs)(n.p,{children:["If you previously used the undocumented ",(0,o.jsx)(n.code,{children:":::warning"})," admonition, make sure to verify for each usage if yellow is now an appropriate color. If you want to keep the red color, use ",(0,o.jsx)(n.code,{children:":::danger"})," instead."]}),(0,o.jsxs)(n.p,{children:["Docusaurus v3 also ",(0,o.jsxs)(n.a,{href:"https://github.com/facebook/docusaurus/pull/9308",children:["deprecated the ",(0,o.jsx)(n.code,{children:":::caution"})]})," admonition. Please refactor ",(0,o.jsx)(n.code,{children:":::caution"})," (yellow) to either ",(0,o.jsx)(n.code,{children:":::warning"})," (yellow) or ",(0,o.jsx)(n.code,{children:":::danger"})," (red)."]})]}),"\n",(0,o.jsx)(n.h3,{id:"versioned-sidebars",children:"Versioned sidebars"}),"\n",(0,o.jsxs)(n.p,{children:["This breaking change will only affect ",(0,o.jsx)(n.strong,{children:"Docusaurus v2 early adopters"})," who versioned their docs before ",(0,o.jsx)(n.code,{children:"v2.0.0-beta.10"})," (December 2021)."]}),"\n",(0,o.jsxs)(n.p,{children:["When creating version ",(0,o.jsx)(n.code,{children:"v1.0.0"}),", the sidebar file contained a prefix ",(0,o.jsx)(n.code,{children:"version-v1.0.0/"})," that ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/pull/9310",children:"Docusaurus v3 does not support anymore"}),"."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-json",metastring:'title="versioned_sidebars/version-v1.0.0-sidebars.json"',children:'{\n "version-v1.0.0/docs": [\n "version-v1.0.0/introduction",\n "version-v1.0.0/prerequisites"\n ]\n}\n'})}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsx)(n.p,{children:"Your Docusaurus v2 site is able to handle the 2 sidebar formats similarly."}),(0,o.jsx)(n.p,{children:"You can remove the useless versioned prefix from your versioned sidebars."}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-json",metastring:'title="versioned_sidebars/version-v1.0.0-sidebars.json"',children:'{\n "docs": ["introduction", "prerequisites"]\n}\n'})})]}),"\n",(0,o.jsx)(n.h2,{id:"try-docusaurus-v3-today",children:"Try Docusaurus v3 today"}),"\n",(0,o.jsxs)(n.p,{children:["Docusaurus v3 is now ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9312",children:"in beta"}),", and already used in production by ",(0,o.jsx)(n.a,{href:"https://reactnative.dev",children:"React-Native"}),", ",(0,o.jsx)(n.a,{href:"https://jestjs.io",children:"Jest"}),", and ",(0,o.jsx)(n.a,{href:"https://docusaurus.io/",children:"our own website"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["We think this new Docusaurus version is ",(0,o.jsx)(n.strong,{children:"robust and ready to be deployed in production"}),". It should be released officially soon, after receiving a positive feedback from early adopters of our community."]}),"\n",(0,o.jsxs)(n.p,{children:["We would really appreciate it if you try upgrading and report issues on the ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9312",children:"3.0.0-beta.0 release discussion thread"}),"."]}),"\n",(0,o.jsx)(n.p,{children:"For most sites, the upgrade should be easy. If you prepared your site ahead of time as documented here, upgrading the following dependencies should be enough:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-diff",metastring:'title="package.json"',children:' {\n "dependencies": {\n- "@docusaurus/core": "2.4.3",\n- "@docusaurus/preset-classic": "2.4.3",\n- "@mdx-js/react": "^1.6.22",\n+ "@docusaurus/core": "3.0.0-beta.0",\n+ "@docusaurus/preset-classic": "3.0.0-beta.0",\n+ "@mdx-js/react": "^3.0.0",\n "clsx": "^2.0.0",\n "prism-react-renderer": "^1.3.5",\n- "react": "^17.0.2",\n- "react-dom": "^17.0.2"\n+ "react": "^18.2.0",\n+ "react-dom": "^18.2.0"\n },\n "devDependencies": {\n- "@docusaurus/module-type-aliases": "2.4.3"\n+ "@docusaurus/module-type-aliases": "3.0.0-beta.0"\n }\n }\n'})}),"\n",(0,o.jsx)(n.h2,{id:"ask-for-help",children:"Ask for help"}),"\n",(0,o.jsx)(n.p,{children:"We will be there to help you upgrade through the following support channels:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9336",children:"Docusaurus v3 - Upgrade Support"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://discord.com/channels/398180168688074762/1154771869094912090",children:"Docusaurus v3 - Discord channel #migration-v2-to-v3"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9053",children:"MDX v3 - Upgrade Support"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9337",children:"MDX v3 - Remark/Rehype Plugins Support"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://discord.com/channels/398180168688074762/1116724556976111616",children:"MDX v3 - Discord channel #migration-mdx-v3"})}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["Alternatively, you can look for a paid ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9281",children:"Docusaurus Service Provider"})," to execute this upgrade for you. If your site is open source, you can also ask our community for ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9283",children:"free, benevolent help"}),"."]}),"\n",(0,o.jsx)(n.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,o.jsx)(n.p,{children:"Docusaurus v3 is ready to try, and will be released soon. This article already gives you a good idea of all the major changes required to upgrade."}),"\n",(0,o.jsx)(n.p,{children:"The initial 3.0 release is focusing on dependency and infrastructure upgrades that will permit us to implement new exciting features. It also comes with a few useful features that we will detail in the final release notes."})]})}function h(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>t,x:()=>a});var r=s(63696);let o={},i=r.createContext(o);function t(e){let n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:t(e.components),r.createElement(i.Provider,{value:n},e.children)}},48876:e=>{e.exports=JSON.parse('{"permalink":"/blog/preparing-your-site-for-docusaurus-v3","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2023/09-29-preparing-your-site-for-docusaurus-v3/index.mdx","source":"@site/blog/2023/09-29-preparing-your-site-for-docusaurus-v3/index.mdx","title":"Preparing your site for Docusaurus v3","description":"This blog post was written when Docusaurus v3 was in beta. There are some changes in dependency versions and upgrade steps you should be aware of if upgrading to Docusaurus v3 current stable releases. Use the upgrade guide for the most up-to-date migration steps.","date":"2023-09-29T00:00:00.000Z","tags":[{"inline":false,"label":"Maintenance","permalink":"/blog/tags/maintenance"}],"readingTime":13.975,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Preparing your site for Docusaurus v3","authors":["slorber"],"tags":["maintenance"],"slug":"/preparing-your-site-for-docusaurus-v3","image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Announcing Docusaurus 3.0","permalink":"/blog/releases/3.0"},"nextItem":{"title":"Upgrading frontend dependencies with confidence","permalink":"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[76694],{69202:(e,n,s)=>{s.d(n,{A:()=>r});let r=s.p+"assets/images/social-card-1c688c53b51bdaa6e15ae532bf756276.png"},47992:(e,n,s)=>{s.d(n,{A:()=>r});let r=s.p+"assets/images/mdx-checker-output-0f96cc19fd3ed4d55901ca90ad657c14.png"},68111:(e,n,s)=>{s.d(n,{A:()=>r});let r=s.p+"assets/images/mdx2-playground-options-eab88e8328a6902759c4236ffc93d9c6.png"},53743:(e,n,s)=>{s.d(n,{A:()=>r});let r=s.p+"assets/images/social-card-1c688c53b51bdaa6e15ae532bf756276.png"},56482:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>t,metadata:()=>r,toc:()=>d});var r=s(48876),o=s(62540),i=s(43023);let t={title:"Preparing your site for Docusaurus v3",authors:["slorber"],tags:["maintenance"],slug:"/preparing-your-site-for-docusaurus-v3",image:"./img/social-card.png"},a=void 0,c={image:s(69202).A,authorsImageUrls:[void 0]},d=[{value:"Preparatory work",id:"preparatory-work",level:2},{value:"Preparing content for MDX v3",id:"preparing-content-for-mdx-v3",level:2},{value:"Using the MDX playground",id:"using-the-mdx-playground",level:3},{value:"Using the MDX checker CLI",id:"using-the-mdx-checker-cli",level:3},{value:"Common MDX problems",id:"common-mdx-problems",level:3},{value:"Bad usage of <code>{</code>",id:"bad-usage-of-",level:4},{value:"Bad usage of <code><</code>",id:"bad-usage-of--1",level:4},{value:"Bad usage of GFM Autolink",id:"bad-usage-of-gfm-autolink",level:4},{value:"Lower-case MDXComponent mapping",id:"lower-case-mdxcomponent-mapping",level:4},{value:"Unintended extra paragraphs",id:"unintended-extra-paragraphs",level:4},{value:"Unintended usage of directives",id:"unintended-usage-of-directives",level:4},{value:"Unsupported indented code blocks",id:"unsupported-indented-code-blocks",level:4},{value:"MDX plugins",id:"mdx-plugins",level:3},{value:"Other breaking changes",id:"other-breaking-changes",level:2},{value:"Node.js 18.0",id:"nodejs-180",level:3},{value:"React 18.0",id:"react-180",level:3},{value:"TypeScript 5.0",id:"typescript-50",level:3},{value:"TypeScript base config",id:"typescript-base-config",level:3},{value:"Admonition warning",id:"admonition-warning",level:3},{value:"Versioned sidebars",id:"versioned-sidebars",level:3},{value:"Try Docusaurus v3 today",id:"try-docusaurus-v3-today",level:2},{value:"Ask for help",id:"ask-for-help",level:2},{value:"Conclusion",id:"conclusion",level:2}];function l(e){let n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components},{Details:r}=n;return r||function(e,n){throw Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsxs)(n.p,{children:["This blog post was written when Docusaurus v3 was in beta. There are some changes in dependency versions and upgrade steps you should be aware of if upgrading to Docusaurus v3 current stable releases. Use the ",(0,o.jsx)(n.a,{href:"https://docusaurus.io/docs/next/migration/v3",children:"upgrade guide"})," for the most up-to-date migration steps."]})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Docusaurus v3"})," is now ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9312",children:(0,o.jsx)(n.strong,{children:"in beta"})})," and the official release is around the corner. This is the perfect time to start ",(0,o.jsx)(n.strong,{children:"preparing your site"})," for this new major version."]}),"\n",(0,o.jsxs)(n.p,{children:["Docusaurus v3 comes with a few ",(0,o.jsx)(n.strong,{children:"breaking changes"}),", many of which can be ",(0,o.jsx)(n.strong,{children:"handled today under Docusaurus v2"}),". Preparing your site ahead of time can be done incrementally, and will make it easier to upgrade to v3."]}),"\n",(0,o.jsxs)(n.p,{children:["The main breaking change is the upgrade from MDX v1 to MDX v3. Read the ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/blog/v2/",children:(0,o.jsx)(n.strong,{children:"MDX v2"})})," and ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/blog/v3/",children:(0,o.jsx)(n.strong,{children:"MDX v3"})})," release notes for details. MDX will now compile your Markdown content ",(0,o.jsx)(n.strong,{children:"more strictly"})," and with ",(0,o.jsx)(n.strong,{children:"subtle differences"}),"."]}),"\n",(0,o.jsx)(n.p,{children:"This article will mostly focus on how to prepare your content for this new MDX version, and will also list a few other breaking changes that you can handle today."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Preparing your site for Docusaurus v3 - social card",src:s(53743).A+"",width:"1040",height:"546"})}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsxs)(n.p,{children:["This article mentions most Docusaurus v3 breaking changes, but is not exhaustive. Read the ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9312",children:"v3.0.0-beta.0 release notes"})," for an exhaustive list."]})}),"\n",(0,o.jsxs)(n.admonition,{title:"Don't be afraid",type:"tip",children:[(0,o.jsx)(n.p,{children:"There's a lot of content in this blog post, but many Docusaurus v2 sites can upgrade with very few changes."}),(0,o.jsxs)(n.p,{children:["If your site is relatively small, with only a few customizations, you can probably ",(0,o.jsx)(n.a,{href:"#try-docusaurus-v3-today",children:"upgrade to Docusaurus v3"})," immediately."]})]}),"\n",(0,o.jsx)(n.h2,{id:"preparatory-work",children:"Preparatory work"}),"\n",(0,o.jsxs)(n.p,{children:["Before preparing for the Docusaurus v3 upgrade, we recommend upgrading to the latest ",(0,o.jsx)(n.a,{href:"/versions",children:"Docusaurus v2 version"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["Depending on the complexity of your site, it may be a good idea to adopt the ",(0,o.jsx)(n.a,{href:"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing",children:"visual regression testing workflow"})," that we recently presented. It could help you catch unexpected visual side effects occurring during the Docusaurus v3 upgrade."]}),"\n",(0,o.jsxs)(n.p,{children:["We also recommend using the ",(0,o.jsx)(n.code,{children:".mdx"})," extension whenever you use JSX, ",(0,o.jsx)(n.code,{children:"import"}),", or ",(0,o.jsx)(n.code,{children:"export"})," (i.e. MDX features) inside a Markdown file. It is semantically more correct and improves compatibility with external tools (IDEs, formatters, linters, etc.). In future versions of Docusaurus, ",(0,o.jsx)(n.code,{children:".md"})," files will be parsed as standard ",(0,o.jsx)(n.a,{href:"https://commonmark.org/",children:"CommonMark"}),", which does not support these features. In Docusaurus v3, ",(0,o.jsx)(n.code,{children:".md"})," files keep being compiled as MDX files, but it will be possible to ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/issues/3018",children:"opt-in for CommonMark"}),"."]}),"\n",(0,o.jsx)(n.h2,{id:"preparing-content-for-mdx-v3",children:"Preparing content for MDX v3"}),"\n",(0,o.jsxs)(n.p,{children:["MDX is a major dependency of Docusaurus responsible for compiling your ",(0,o.jsx)(n.code,{children:".md"})," and ",(0,o.jsx)(n.code,{children:".mdx"})," files to React components."]}),"\n",(0,o.jsxs)(n.p,{children:["MDX v3 is much better, but also comes with changes that probably require you to refactor your content a bit. MDX v3 is stricter, and some components that compiled fine under v1 might now fail to compile under v3, most likely because of ",(0,o.jsx)(n.code,{children:"{"})," and ",(0,o.jsx)(n.code,{children:"<"})," characters."]}),"\n",(0,o.jsxs)(n.p,{children:["Upgrading MDX comes with all the breaking changes documented on the ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/blog/v2/",children:"MDX v2"})," and ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/blog/v3/",children:"MDX v3"})," release blog posts. Most breaking changes come from MDX v2. The ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/migrating/v2/",children:"MDX v2 migration guide"})," has a section on how to ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/migrating/v2/#update-mdx-files",children:"update MDX files"})," that will be particularly relevant to us. Also make sure to read the ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/docs/troubleshooting-mdx/",children:"Troubleshooting MDX"})," page that can help you interpret common MDX error messages."]}),"\n",(0,o.jsxs)(n.p,{children:["Make sure to also read our updated ",(0,o.jsx)(n.a,{href:"/docs/markdown-features/react",children:(0,o.jsx)(n.strong,{children:"MDX and React"})})," documentation page."]}),"\n",(0,o.jsx)(n.admonition,{title:"Ask for help",type:"tip",children:(0,o.jsxs)(n.p,{children:["We have a dedicated ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9053",children:"MDX v3 - Upgrade Support"})," discussion."]})}),"\n",(0,o.jsx)(n.h3,{id:"using-the-mdx-playground",children:"Using the MDX playground"}),"\n",(0,o.jsxs)(n.p,{children:["The MDX playground is your new best friend. It permits to understand how your content is ",(0,o.jsx)(n.strong,{children:"compiled to React components"}),", and troubleshoot compilation or rendering issues in isolation."]}),"\n",(0,o.jsx)(n.p,{children:"Each MDX version comes with its own playground:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://mdxjs.com/playground/",children:"MDX playground - current version"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://mdx-git-renovate-babel-monorepo-mdx.vercel.app/playground/",children:"MDX playground - v1"})}),"\n"]}),"\n",(0,o.jsxs)(r,{children:[(0,o.jsx)("summary",{children:"Configuring the MDX playground options for Docusaurus"}),(0,o.jsxs)(n.p,{children:["To obtain a compilation behavior similar to what Docusaurus v2 uses, please turn on these options on the ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/playground/",children:"MDX playground"}),":"]}),(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Use ",(0,o.jsx)(n.code,{children:"MDX"})]}),"\n",(0,o.jsxs)(n.li,{children:["Use ",(0,o.jsx)(n.code,{children:"remark-gfm"})]}),"\n",(0,o.jsxs)(n.li,{children:["Use ",(0,o.jsx)(n.code,{children:"remark-directive"})]}),"\n"]}),(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Screenshot of the MDX playground's options panel, with only the "Use MDX", "Use remark-gfm", and "Use remark-directive" options checked",src:s(68111).A+"",width:"1968",height:"1316"})})]}),"\n",(0,o.jsx)(n.p,{children:"Using the two MDX playgrounds side-by-side, you will soon notice that some content is compiled differently or fails to compile in v3."}),"\n",(0,o.jsx)(n.admonition,{title:"Making your content future-proof",type:"tip",children:(0,o.jsxs)(n.p,{children:["The goal will be to refactor your problematic content so that it ",(0,o.jsx)(n.strong,{children:"works fine with both versions of MDX"}),". This way, when you upgrade to Docusaurus v3, this content will already work out-of-the-box."]})}),"\n",(0,o.jsx)(n.h3,{id:"using-the-mdx-checker-cli",children:"Using the MDX checker CLI"}),"\n",(0,o.jsxs)(n.p,{children:["We provide a ",(0,o.jsx)(n.a,{href:"https://github.com/slorber/docusaurus-mdx-checker",children:"docusaurus-mdx-checker"})," CLI that permits to easily spot problematic content. Run this command today on your Docusaurus v2 site to obtain a list of files that will fail to compile under MDX v3."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"npx docusaurus-mdx-checker\n"})}),"\n",(0,o.jsx)(n.p,{children:"For each compilation issue, the CLI will log the file path and a line number to look at."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Screenshot of the terminal showing an example MDX checker CLI output, with a few error messages",src:s(47992).A+"",width:"1161",height:"417"})}),"\n",(0,o.jsx)(n.admonition,{type:"tip",children:(0,o.jsx)(n.p,{children:"Use this CLI to estimate of how much work will be required to make your content compatible with MDX v3."})}),"\n",(0,o.jsxs)(n.admonition,{type:"warning",children:[(0,o.jsx)(n.p,{children:"This CLI is a best effort, and will only report compilation errors."}),(0,o.jsxs)(n.p,{children:["It will not report subtle compilation changes that do not produce errors but can affect how your content is displayed. To catch these problems, we recommend using ",(0,o.jsx)(n.a,{href:"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing",children:"visual regression tests"}),"."]})]}),"\n",(0,o.jsx)(n.h3,{id:"common-mdx-problems",children:"Common MDX problems"}),"\n",(0,o.jsx)(n.p,{children:"We upgraded a few Docusaurus sites to Docusaurus v3 and MDX v3:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/pull/8288",children:"Docusaurus PR"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://github.com/facebook/react-native-website/pull/3780",children:"React-Native PR"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://github.com/jestjs/jest/pull/14463",children:"Jest PR"})}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"These upgrades permitted us to aggregate the most common content problems, and document how to best handle them."}),"\n",(0,o.jsxs)(n.h4,{id:"bad-usage-of-",children:["Bad usage of ",(0,o.jsx)(n.code,{children:"{"})]}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.code,{children:"{"})," character is used for opening ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/docs/what-is-mdx/#expressions",children:"JavaScript expressions"}),". MDX will now fail if what you put inside ",(0,o.jsx)(n.code,{children:"{expression}"})," is not a valid expression."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"The object shape looks like {username: string, age: number}\n"})}),"\n",(0,o.jsx)(n.admonition,{title:"Error message",type:"danger",children:(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsx)(n.p,{children:"Could not parse expression with acorn: Unexpected content after expression"}),"\n"]})}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsx)(n.p,{children:"Available options to fix this error:"}),(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Use inline code: ",(0,o.jsx)(n.code,{children:"{username: string, age: number}"})]}),"\n",(0,o.jsxs)(n.li,{children:["Use the HTML code: ",(0,o.jsx)(n.code,{children:"{"})]}),"\n",(0,o.jsxs)(n.li,{children:["Escape it: ",(0,o.jsx)(n.code,{children:"\\{"})]}),"\n"]})]}),"\n",(0,o.jsxs)(n.h4,{id:"bad-usage-of--1",children:["Bad usage of ",(0,o.jsx)(n.code,{children:"<"})]}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.code,{children:"<"})," character is used for opening ",(0,o.jsx)(n.a,{href:"https://mdxjs.com/docs/what-is-mdx/#jsx",children:"JSX tags"}),". MDX will now fail if it thinks your JSX is invalid."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:'Use Android version <5\n\nYou can use a generic type like Array<T>\n\nFollow the template "Road to <YOUR_MINOR_VERSION>"\n'})}),"\n",(0,o.jsxs)(n.admonition,{title:"Error messages",type:"danger",children:[(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:["Unexpected character ",(0,o.jsx)(n.code,{children:"5"})," (U+0035) before name, expected a character that can start a name, such as a letter, ",(0,o.jsx)(n.code,{children:"$"}),", or ",(0,o.jsx)(n.code,{children:"_"})]}),"\n"]}),(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:["Expected a closing tag for ",(0,o.jsx)(n.code,{children:"<T>"})," (1:6-1:9) before the end of ",(0,o.jsx)(n.code,{children:"paragraph"})," end-tag-mismatch mdast-util-mdx-jsx"]}),"\n"]}),(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:["Expected a closing tag for ",(0,o.jsx)(n.code,{children:"<YOUR_MINOR_VERSION>"})," (134:19-134:39) before the end of ",(0,o.jsx)(n.code,{children:"paragraph"})]}),"\n"]})]}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsx)(n.p,{children:"Available options to fix this error:"}),(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Use inline code: ",(0,o.jsx)(n.code,{children:"Array<T>"})]}),"\n",(0,o.jsxs)(n.li,{children:["Use the HTML code: ",(0,o.jsx)(n.code,{children:"<"})," or ",(0,o.jsx)(n.code,{children:"<"})]}),"\n",(0,o.jsxs)(n.li,{children:["Escape it: ",(0,o.jsx)(n.code,{children:"\\<"})," (unfortunately the ",(0,o.jsx)(n.code,{children:"\\"})," will be displayed under MDX v1)"]}),"\n"]})]}),"\n",(0,o.jsx)(n.h4,{id:"bad-usage-of-gfm-autolink",children:"Bad usage of GFM Autolink"}),"\n",(0,o.jsxs)(n.p,{children:["Docusaurus supports ",(0,o.jsx)(n.a,{href:"https://github.github.com/gfm/",children:"GitHub Flavored Markdown (GFM)"}),", but ",(0,o.jsx)(n.a,{href:"https://github.github.com/gfm/#autolinks",children:"autolink"})," using the ",(0,o.jsx)(n.code,{children:"<link>"})," syntax is not supported anymore by MDX."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"<sebastien@thisweekinreact.com>\n\n<http://localhost:3000>\n"})}),"\n",(0,o.jsxs)(n.admonition,{title:"Error messages",type:"danger",children:[(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:["Unexpected character ",(0,o.jsx)(n.code,{children:"@"})," (U+0040) in name, expected a name character such as letters, digits, ",(0,o.jsx)(n.code,{children:"$"}),", or ",(0,o.jsx)(n.code,{children:"_"}),"; whitespace before attributes; or the end of the tag (note: to create a link in MDX, use ",(0,o.jsx)(n.code,{children:"[text](url)"}),")"]}),"\n"]}),(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:["Unexpected character ",(0,o.jsx)(n.code,{children:"/"})," (U+002F) before local name, expected a character that can start a name, such as a letter, ",(0,o.jsx)(n.code,{children:"$"}),", or ",(0,o.jsx)(n.code,{children:"_"})," (note: to create a link in MDX, use ",(0,o.jsx)(n.code,{children:"[text](url)"}),")"]}),"\n"]})]}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsxs)(n.p,{children:["Use regular Markdown links, or remove the ",(0,o.jsx)(n.code,{children:"<"})," and ",(0,o.jsx)(n.code,{children:">"}),". MDX and GFM are able to autolink literals already."]}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"sebastien@thisweekinreact.com\n[sebastien@thisweekinreact.com](mailto:sebastien@thisweekinreact.com)\n\nhttp://localhost:3000\n[http://localhost:3000](http://localhost:3000)\n"})})]}),"\n",(0,o.jsx)(n.h4,{id:"lower-case-mdxcomponent-mapping",children:"Lower-case MDXComponent mapping"}),"\n",(0,o.jsxs)(n.p,{children:["For users providing a ",(0,o.jsxs)(n.a,{href:"/docs/markdown-features/react#mdx-component-scope",children:["custom ",(0,o.jsx)(n.code,{children:"MDXComponent"}),"mapping"]}),', components are now "sandboxed":']}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["a ",(0,o.jsx)(n.code,{children:"MDXComponent"})," mapping for ",(0,o.jsx)(n.code,{children:"h1"})," only gets used for ",(0,o.jsx)(n.code,{children:"# hi"})," but not for ",(0,o.jsx)(n.code,{children:"<h1>hi</h1>"})]}),"\n",(0,o.jsxs)(n.li,{children:["a ",(0,o.jsx)(n.strong,{children:"lower-cased"})," custom element name will not be substituted by its respective ",(0,o.jsx)(n.code,{children:"MDXComponent"})," component anymore"]}),"\n"]}),"\n",(0,o.jsx)(n.admonition,{title:"visual difference",type:"danger",children:(0,o.jsxs)(n.p,{children:["Your ",(0,o.jsxs)(n.a,{href:"/docs/markdown-features/react#mdx-component-scope",children:[(0,o.jsx)(n.code,{children:"MDXComponent"})," component mapping"]})," might not be applied as before, and your custom components might no longer be used."]})}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsxs)(n.p,{children:["For native Markdown elements, you can keep using ",(0,o.jsx)(n.strong,{children:"lower-case"}),": ",(0,o.jsx)(n.code,{children:"p"}),", ",(0,o.jsx)(n.code,{children:"h1"}),", ",(0,o.jsx)(n.code,{children:"img"}),", ",(0,o.jsx)(n.code,{children:"a"}),"..."]}),(0,o.jsxs)(n.p,{children:["For any other element, ",(0,o.jsx)(n.strong,{children:"use upper-case names"}),"."]}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-diff",metastring:'title="src/theme/MDXComponents.js"',children:' import MDXComponents from \'@theme-original/MDXComponents\';\n\n export default {\n ...MDXComponents,\n p: (props) => <p {...props} className="my-paragraph"/>\n- myElement: (props) => <div {...props} className="my-class" />,\n+ MyElement: (props) => <div {...props} className="my-class" />,\n };\n'})})]}),"\n",(0,o.jsx)(n.h4,{id:"unintended-extra-paragraphs",children:"Unintended extra paragraphs"}),"\n",(0,o.jsxs)(n.p,{children:["In MDX, it is now possible to interleave JSX and Markdown more easily without requiring extra line breaks. Writing content on multiple lines can also produce new expected ",(0,o.jsx)(n.code,{children:"<p>"})," tags."]}),"\n",(0,o.jsxs)(n.admonition,{title:"visual difference",type:"danger",children:[(0,o.jsx)(n.p,{children:"See how this content is rendered differently by MDX v1 and v3."}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"<div>Some **Markdown** content</div>\n<div>\n Some **Markdown** content\n</div>\n"})}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-html",metastring:'title="MDX v1 output"',children:"<div>Some **Markdown** content</div>\n<div>Some **Markdown** content</div>\n"})}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-html",metastring:'title="MDX v3 output"',children:"<div>Some <strong>Markdown</strong> content</div>\n<div><p>Some <strong>Markdown</strong> content</p></div>\n"})})]}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsxs)(n.p,{children:["If you don't want an extra ",(0,o.jsx)(n.code,{children:"<p>"})," tag, refactor content on a case by case basis to use a single-line JSX tag."]}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-diff",children:' <figure>\n <img src="/img/myImage.png" alt="My alt" />\n- <figcaption>\n- My image caption\n- </figcaption>\n+ <figcaption>My image caption</figcaption>\n </figure>\n'})}),(0,o.jsxs)(n.p,{children:['If your content contains "Markdown inlines" (',(0,o.jsx)(n.code,{children:"**"}),", ",(0,o.jsx)(n.code,{children:"*"}),", ",(0,o.jsx)(n.code,{children:"_"}),", ",(0,o.jsx)(n.code,{children:"[link](/path)"}),"), you might not be able to refactor it ahead of time, and will have to do it alongside the Docusaurus v3 upgrade."]})]}),"\n",(0,o.jsx)(n.h4,{id:"unintended-usage-of-directives",children:"Unintended usage of directives"}),"\n",(0,o.jsxs)(n.p,{children:["Docusaurus v3 now uses ",(0,o.jsx)(n.a,{href:"https://talk.commonmark.org/t/generic-directives-plugins-syntax/444",children:"Markdown Directives"})," (implemented with ",(0,o.jsx)(n.a,{href:"https://github.com/remarkjs/remark-directive",children:"remark-directive"}),") as a generic way to provide support for admonitions, and other upcoming Docusaurus features."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"This is a :textDirective\n\n::leafDirective\n\n:::containerDirective\n\nContainer directive content\n\n:::\n"})}),"\n",(0,o.jsxs)(n.admonition,{title:"Visual change",type:"danger",children:[(0,o.jsx)(n.p,{children:"Directives are parsed with the purpose of being handled by other Remark plugins. Unhandled directives will be ignored, and won't be rendered back in their original form."}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"The AWS re:Invent conf is great\n"})}),(0,o.jsxs)(n.p,{children:["Due to ",(0,o.jsx)(n.code,{children:":Invent"})," being parsed as a text directive, this will now be rendered as:"]}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"The AWS re\nconf is great\n"})})]}),"\n",(0,o.jsx)(n.admonition,{title:"How to prepare",type:"tip",children:(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Use the HTML code: ",(0,o.jsx)(n.code,{children:":"})]}),"\n",(0,o.jsxs)(n.li,{children:["Add a space after ",(0,o.jsx)(n.code,{children:":"})," (if it makes sense): ",(0,o.jsx)(n.code,{children:": text"})]}),"\n",(0,o.jsxs)(n.li,{children:["Escape it: ",(0,o.jsx)(n.code,{children:"\\:"})," (unfortunately the ",(0,o.jsx)(n.code,{children:"\\"})," will be displayed under MDX v1)"]}),"\n"]})}),"\n",(0,o.jsx)(n.h4,{id:"unsupported-indented-code-blocks",children:"Unsupported indented code blocks"}),"\n",(0,o.jsx)(n.p,{children:"MDX does not transform indented text as code blocks anymore."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:' console.log("hello");\n'})}),"\n",(0,o.jsx)(n.admonition,{title:"Visual change",type:"danger",children:(0,o.jsx)(n.p,{children:"The upgrade does not generally produce new MDX compilation errors, but can lead to content being rendered in an unexpected way because there isn't a code block anymore."})}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsx)(n.p,{children:"Use the regular code block syntax instead of indentation:"}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"```js\nconsole.log('hello');\n```\n"})})]}),"\n",(0,o.jsx)(n.h3,{id:"mdx-plugins",children:"MDX plugins"}),"\n",(0,o.jsxs)(n.p,{children:["All the official packages (Unified, Remark, Rehype...) in the MDX ecosystem are now ",(0,o.jsx)(n.a,{href:"https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c",children:(0,o.jsx)(n.strong,{children:"ES Modules only"})})," and do not support ",(0,o.jsx)(n.a,{href:"https://nodejs.org/api/modules.html#modules-commonjs-modules",children:"CommonJS"})," anymore."]}),"\n",(0,o.jsxs)(n.p,{children:["In practice this means that you can't do ",(0,o.jsx)(n.code,{children:'require("remark-plugin")'})," anymore."]}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsxs)(n.p,{children:["Docusaurus v3 now supports ",(0,o.jsx)(n.a,{href:"https://flaviocopes.com/es-modules/",children:(0,o.jsx)(n.strong,{children:"ES Modules"})})," configuration files. We recommend that you migrate your config file to ES module, that enables you to import the Remark plugins easily:"]}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"import remarkPlugin from 'remark-plugin';\n\nexport default {\n title: 'Docusaurus',\n /* site config using remark plugins here */\n};\n"})}),(0,o.jsxs)(n.p,{children:["If you want to keep using CommonJS modules, you can use dynamic imports as a workaround that enables you to import ES modules inside a CommonJS module. Fortunately, the ",(0,o.jsx)(n.a,{href:"/docs/configuration#syntax-to-declare-docusaurus-config",children:"Docusaurus config supports the usage of an async function"})," to let you do so."]}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"module.exports = async function () {\n const myPlugin = (await import('remark-plugin')).default;\n return {\n // site config...\n };\n};\n"})})]}),"\n",(0,o.jsx)(n.admonition,{title:"For plugin authors",type:"info",children:(0,o.jsxs)(n.p,{children:["If you created custom Remark or Rehype plugins, you may need to refactor those, or eventually rewrite them completely, due to how the new AST is structured. We have created a ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9337",children:"dedicated support discussion"})," to help plugin authors upgrade their code."]})}),"\n",(0,o.jsx)(n.h2,{id:"other-breaking-changes",children:"Other breaking changes"}),"\n",(0,o.jsx)(n.p,{children:"Apart from MDX, there are other breaking changes that you can already prepare your site for, notably major version upgrades of important dependencies."}),"\n",(0,o.jsx)(n.h3,{id:"nodejs-180",children:"Node.js 18.0"}),"\n",(0,o.jsxs)(n.p,{children:["Node.js 16 ",(0,o.jsx)(n.a,{href:"https://nodejs.org/en/blog/announcements/nodejs16-eol",children:"reached End-of-Life"}),", and Docusaurus v3 now requires ",(0,o.jsx)(n.strong,{children:"Node.js >= 18.0"}),"."]}),"\n",(0,o.jsx)(n.admonition,{title:"How to prepare",type:"tip",children:(0,o.jsx)(n.p,{children:"Upgrade your Docusaurus v2 site to Node.js 18 before upgrading to Docusaurus v3."})}),"\n",(0,o.jsx)(n.h3,{id:"react-180",children:"React 18.0"}),"\n",(0,o.jsxs)(n.p,{children:["Docusaurus v3 now requires ",(0,o.jsx)(n.strong,{children:"React >= 18.0"}),"."]}),"\n",(0,o.jsx)(n.p,{children:"React 18 comes with its own breaking changes that should be relatively easy to handle, depending on the amount of custom React code you created for your site."}),"\n",(0,o.jsx)(n.p,{children:"Simple Docusaurus sites that only use our official theme code without swizzling do not have anything to do."}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsxs)(n.p,{children:["Read the official ",(0,o.jsx)(n.a,{href:"https://react.dev/blog/2022/03/29/react-v18",children:"React v18.0"})," and ",(0,o.jsx)(n.a,{href:"https://react.dev/blog/2022/03/08/react-18-upgrade-guide",children:"How to Upgrade to React 18"}),", and look at your first-party React code to figure out which components might be affected this React 18 upgrade."]}),(0,o.jsx)(n.p,{children:"We recommend to particularly look for:"}),(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Automatic batching for stateful components"}),"\n",(0,o.jsx)(n.li,{children:"New React hydration errors reported to the console"}),"\n"]})]}),"\n",(0,o.jsx)(n.h3,{id:"typescript-50",children:"TypeScript 5.0"}),"\n",(0,o.jsxs)(n.p,{children:["Docusaurus v3 now requires ",(0,o.jsx)(n.strong,{children:"TypeScript >= 5.0"}),"."]}),"\n",(0,o.jsx)(n.admonition,{title:"How to prepare",type:"tip",children:(0,o.jsx)(n.p,{children:"Upgrade your Docusaurus v2 site to TypeScript 5 before upgrading to Docusaurus v3."})}),"\n",(0,o.jsx)(n.h3,{id:"typescript-base-config",children:"TypeScript base config"}),"\n",(0,o.jsxs)(n.p,{children:["The official Docusaurus TypeScript config has been re-internalized from the external package ",(0,o.jsx)(n.a,{href:"https://www.npmjs.com/package/@tsconfig/docusaurus",children:(0,o.jsx)(n.code,{children:"@tsconfig/docusaurus"})})," to our new monorepo package ",(0,o.jsx)(n.a,{href:"https://www.npmjs.com/package/@docusaurus/tsconfig",children:(0,o.jsx)(n.code,{children:"@docusaurus/tsconfig"})}),"."]}),"\n",(0,o.jsx)(n.p,{children:"This new package is versioned alongside all the other Docusaurus core packages, and will be used to ensure TypeScript retro-compatibility and breaking changes on major version upgrades."}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsx)(n.p,{children:"The new Docusaurus v3 TypeScript config is sensibly the same as the former Docusaurus v2 TypeScript config. If you upgraded to TypeScript 5, using the Docusaurus v3 config on a v2 site is already possible:"}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-diff",metastring:'title="package.json"',children:' {\n "devDependencies": {\n- "@tsconfig/docusaurus": "^1.0.7",\n+ "@docusaurus/tsconfig": "^3.0.0-beta.0",\n }\n }\n'})}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-diff",metastring:'title="tsconfig.json"',children:' {\n- "extends": "@tsconfig/docusaurus/tsconfig.json",\n+ "extends": "@docusaurus/tsconfig",\n "compilerOptions": {\n "baseUrl": "."\n }\n }\n'})})]}),"\n",(0,o.jsx)(n.h3,{id:"admonition-warning",children:"Admonition warning"}),"\n",(0,o.jsxs)(n.p,{children:["For historical reasons, we support an undocumented admonition ",(0,o.jsx)(n.code,{children:":::warning"})," that renders with a red color."]}),"\n",(0,o.jsx)(n.admonition,{title:"Warning",type:"danger",children:(0,o.jsxs)(n.p,{children:["This is a Docusaurus v2 ",(0,o.jsx)(n.code,{children:":::warning"})," admonition."]})}),"\n",(0,o.jsxs)(n.p,{children:["However, the color and icon is historically wrong. Docusaurus v3 re-introduces ",(0,o.jsx)(n.code,{children:":::warning"})," admonition officially, documents it, and fix the color and icon."]}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsxs)(n.p,{children:["This is a Docusaurus v3 ",(0,o.jsx)(n.code,{children:":::warning"})," admonition."]})}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsxs)(n.p,{children:["If you previously used the undocumented ",(0,o.jsx)(n.code,{children:":::warning"})," admonition, make sure to verify for each usage if yellow is now an appropriate color. If you want to keep the red color, use ",(0,o.jsx)(n.code,{children:":::danger"})," instead."]}),(0,o.jsxs)(n.p,{children:["Docusaurus v3 also ",(0,o.jsxs)(n.a,{href:"https://github.com/facebook/docusaurus/pull/9308",children:["deprecated the ",(0,o.jsx)(n.code,{children:":::caution"})]})," admonition. Please refactor ",(0,o.jsx)(n.code,{children:":::caution"})," (yellow) to either ",(0,o.jsx)(n.code,{children:":::warning"})," (yellow) or ",(0,o.jsx)(n.code,{children:":::danger"})," (red)."]})]}),"\n",(0,o.jsx)(n.h3,{id:"versioned-sidebars",children:"Versioned sidebars"}),"\n",(0,o.jsxs)(n.p,{children:["This breaking change will only affect ",(0,o.jsx)(n.strong,{children:"Docusaurus v2 early adopters"})," who versioned their docs before ",(0,o.jsx)(n.code,{children:"v2.0.0-beta.10"})," (December 2021)."]}),"\n",(0,o.jsxs)(n.p,{children:["When creating version ",(0,o.jsx)(n.code,{children:"v1.0.0"}),", the sidebar file contained a prefix ",(0,o.jsx)(n.code,{children:"version-v1.0.0/"})," that ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/pull/9310",children:"Docusaurus v3 does not support anymore"}),"."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-json",metastring:'title="versioned_sidebars/version-v1.0.0-sidebars.json"',children:'{\n "version-v1.0.0/docs": [\n "version-v1.0.0/introduction",\n "version-v1.0.0/prerequisites"\n ]\n}\n'})}),"\n",(0,o.jsxs)(n.admonition,{title:"How to prepare",type:"tip",children:[(0,o.jsx)(n.p,{children:"Your Docusaurus v2 site is able to handle the 2 sidebar formats similarly."}),(0,o.jsx)(n.p,{children:"You can remove the useless versioned prefix from your versioned sidebars."}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-json",metastring:'title="versioned_sidebars/version-v1.0.0-sidebars.json"',children:'{\n "docs": ["introduction", "prerequisites"]\n}\n'})})]}),"\n",(0,o.jsx)(n.h2,{id:"try-docusaurus-v3-today",children:"Try Docusaurus v3 today"}),"\n",(0,o.jsxs)(n.p,{children:["Docusaurus v3 is now ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9312",children:"in beta"}),", and already used in production by ",(0,o.jsx)(n.a,{href:"https://reactnative.dev",children:"React-Native"}),", ",(0,o.jsx)(n.a,{href:"https://jestjs.io",children:"Jest"}),", and ",(0,o.jsx)(n.a,{href:"https://docusaurus.io/",children:"our own website"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["We think this new Docusaurus version is ",(0,o.jsx)(n.strong,{children:"robust and ready to be deployed in production"}),". It should be released officially soon, after receiving a positive feedback from early adopters of our community."]}),"\n",(0,o.jsxs)(n.p,{children:["We would really appreciate it if you try upgrading and report issues on the ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9312",children:"3.0.0-beta.0 release discussion thread"}),"."]}),"\n",(0,o.jsx)(n.p,{children:"For most sites, the upgrade should be easy. If you prepared your site ahead of time as documented here, upgrading the following dependencies should be enough:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-diff",metastring:'title="package.json"',children:' {\n "dependencies": {\n- "@docusaurus/core": "2.4.3",\n- "@docusaurus/preset-classic": "2.4.3",\n- "@mdx-js/react": "^1.6.22",\n+ "@docusaurus/core": "3.0.0-beta.0",\n+ "@docusaurus/preset-classic": "3.0.0-beta.0",\n+ "@mdx-js/react": "^3.0.0",\n "clsx": "^2.0.0",\n "prism-react-renderer": "^1.3.5",\n- "react": "^17.0.2",\n- "react-dom": "^17.0.2"\n+ "react": "^18.2.0",\n+ "react-dom": "^18.2.0"\n },\n "devDependencies": {\n- "@docusaurus/module-type-aliases": "2.4.3"\n+ "@docusaurus/module-type-aliases": "3.0.0-beta.0"\n }\n }\n'})}),"\n",(0,o.jsx)(n.h2,{id:"ask-for-help",children:"Ask for help"}),"\n",(0,o.jsx)(n.p,{children:"We will be there to help you upgrade through the following support channels:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9336",children:"Docusaurus v3 - Upgrade Support"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://discord.com/channels/398180168688074762/1154771869094912090",children:"Docusaurus v3 - Discord channel #migration-v2-to-v3"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9053",children:"MDX v3 - Upgrade Support"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9337",children:"MDX v3 - Remark/Rehype Plugins Support"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://discord.com/channels/398180168688074762/1116724556976111616",children:"MDX v3 - Discord channel #migration-mdx-v3"})}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["Alternatively, you can look for a paid ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9281",children:"Docusaurus Service Provider"})," to execute this upgrade for you. If your site is open source, you can also ask our community for ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9283",children:"free, benevolent help"}),"."]}),"\n",(0,o.jsx)(n.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,o.jsx)(n.p,{children:"Docusaurus v3 is ready to try, and will be released soon. This article already gives you a good idea of all the major changes required to upgrade."}),"\n",(0,o.jsx)(n.p,{children:"The initial 3.0 release is focusing on dependency and infrastructure upgrades that will permit us to implement new exciting features. It also comes with a few useful features that we will detail in the final release notes."})]})}function h(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>t,x:()=>a});var r=s(63696);let o={},i=r.createContext(o);function t(e){let n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:t(e.components),r.createElement(i.Provider,{value:n},e.children)}},48876:e=>{e.exports=JSON.parse('{"permalink":"/blog/preparing-your-site-for-docusaurus-v3","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2023/09-29-preparing-your-site-for-docusaurus-v3/index.mdx","source":"@site/blog/2023/09-29-preparing-your-site-for-docusaurus-v3/index.mdx","title":"Preparing your site for Docusaurus v3","description":"This blog post was written when Docusaurus v3 was in beta. There are some changes in dependency versions and upgrade steps you should be aware of if upgrading to Docusaurus v3 current stable releases. Use the upgrade guide for the most up-to-date migration steps.","date":"2023-09-29T00:00:00.000Z","tags":[{"inline":false,"label":"Maintenance","permalink":"/blog/tags/maintenance"}],"readingTime":13.975,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Preparing your site for Docusaurus v3","authors":["slorber"],"tags":["maintenance"],"slug":"/preparing-your-site-for-docusaurus-v3","image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Announcing Docusaurus 3.0","permalink":"/blog/releases/3.0"},"nextItem":{"title":"Upgrading frontend dependencies with confidence","permalink":"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing"}}')}}]); \ No newline at end of file diff --git a/assets/js/1475.1484a043.js b/assets/js/1475.1484a043.js deleted file mode 100644 index 49e0823a34..0000000000 --- a/assets/js/1475.1484a043.js +++ /dev/null @@ -1,202 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1475],{1475:(t,e,i)=>{i.d(e,{D:()=>l,S:()=>c,a:()=>h,b:()=>o,c:()=>a,d:()=>B,p:()=>n,s:()=>w});var s=i(17367),r=function(){var t=function(t,e,i,s){for(i=i||{},s=t.length;s--;i[t[s]]=e);return i},e=[1,2],i=[1,3],s=[1,5],r=[1,7],n=[2,5],a=[1,15],o=[1,17],c=[1,21],l=[1,22],h=[1,23],u=[1,24],d=[1,37],p=[1,25],y=[1,26],f=[1,27],g=[1,28],m=[1,29],_=[1,32],S=[1,33],k=[1,34],T=[1,35],b=[1,36],E=[1,39],v=[1,40],x=[1,41],D=[1,42],$=[1,38],C=[1,45],A=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],L=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],I=[1,4,5,7,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],O=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],N={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,directive:6,SD:7,document:8,line:9,statement:10,classDefStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"-->":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,class:42,CLASSENTITY_IDS:43,STYLECLASS:44,openDirective:45,typeDirective:46,closeDirective:47,":":48,argDirective:49,direction_tb:50,direction_bt:51,direction_rl:52,direction_lr:53,eol:54,";":55,EDGE_STATE:56,STYLE_SEPARATOR:57,left_of:58,right_of:59,open_directive:60,type_directive:61,arg_directive:62,close_directive:63,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",7:"SD",14:"DESCR",15:"-->",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"class",43:"CLASSENTITY_IDS",44:"STYLECLASS",48:":",50:"direction_tb",51:"direction_bt",52:"direction_rl",53:"direction_lr",55:";",56:"EDGE_STATE",57:"STYLE_SEPARATOR",58:"left_of",59:"right_of",60:"open_directive",61:"type_directive",62:"arg_directive",63:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[10,1],[10,1],[10,1],[10,2],[10,3],[10,4],[10,1],[10,2],[10,1],[10,4],[10,3],[10,6],[10,1],[10,1],[10,1],[10,1],[10,4],[10,4],[10,1],[10,1],[10,2],[10,2],[10,1],[11,3],[11,3],[12,3],[6,3],[6,5],[32,1],[32,1],[32,1],[32,1],[54,1],[54,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1],[45,1],[46,1],[49,1],[47,1]],performAction:function(t,e,i,s,r,n,a){var o=n.length-1;switch(r){case 4:return s.setRootDoc(n[o]),n[o];case 5:this.$=[];break;case 6:"nl"!=n[o]&&(n[o-1].push(n[o]),this.$=n[o-1]);break;case 7:case 8:case 12:this.$=n[o];break;case 9:this.$="nl";break;case 13:let c=n[o-1];c.description=s.trimColon(n[o]),this.$=c;break;case 14:this.$={stmt:"relation",state1:n[o-2],state2:n[o]};break;case 15:let l=s.trimColon(n[o]);this.$={stmt:"relation",state1:n[o-3],state2:n[o-1],description:l};break;case 19:this.$={stmt:"state",id:n[o-3],type:"default",description:"",doc:n[o-1]};break;case 20:var h=n[o],u=n[o-2].trim();if(n[o].match(":")){var d=n[o].split(":");h=d[0],u=[u,d[1]]}this.$={stmt:"state",id:h,type:"default",description:u};break;case 21:this.$={stmt:"state",id:n[o-3],type:"default",description:n[o-5],doc:n[o-1]};break;case 22:this.$={stmt:"state",id:n[o],type:"fork"};break;case 23:this.$={stmt:"state",id:n[o],type:"join"};break;case 24:this.$={stmt:"state",id:n[o],type:"choice"};break;case 25:this.$={stmt:"state",id:s.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:n[o-1].trim(),note:{position:n[o-2].trim(),text:n[o].trim()}};break;case 30:this.$=n[o].trim(),s.setAccTitle(this.$);break;case 31:case 32:this.$=n[o].trim(),s.setAccDescription(this.$);break;case 33:case 34:this.$={stmt:"classDef",id:n[o-1].trim(),classes:n[o].trim()};break;case 35:this.$={stmt:"applyClass",id:n[o-1].trim(),styleClass:n[o].trim()};break;case 38:s.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 39:s.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 40:s.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 41:s.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 44:case 45:this.$={stmt:"state",id:n[o].trim(),type:"default",description:""};break;case 46:case 47:this.$={stmt:"state",id:n[o-2].trim(),classes:[n[o].trim()],type:"default",description:""};break;case 50:s.parseDirective("%%{","open_directive");break;case 51:s.parseDirective(n[o],"type_directive");break;case 52:n[o]=n[o].trim().replace(/'/g,'"'),s.parseDirective(n[o],"arg_directive");break;case 53:s.parseDirective("}%%","close_directive","state")}},table:[{3:1,4:e,5:i,6:4,7:s,45:6,60:r},{1:[3]},{3:8,4:e,5:i,6:4,7:s,45:6,60:r},{3:9,4:e,5:i,6:4,7:s,45:6,60:r},{3:10,4:e,5:i,6:4,7:s,45:6,60:r},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],n,{8:11}),{46:12,61:[1,13]},{61:[2,50]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:a,5:o,6:30,9:14,10:16,11:18,12:19,13:20,16:c,17:l,19:h,22:u,24:d,25:p,26:y,27:f,28:g,29:m,32:31,33:_,35:S,37:k,38:T,42:b,45:6,50:E,51:v,52:x,53:D,56:$,60:r},{47:43,48:[1,44],63:C},t([48,63],[2,51]),t(A,[2,6]),{6:30,10:46,11:18,12:19,13:20,16:c,17:l,19:h,22:u,24:d,25:p,26:y,27:f,28:g,29:m,32:31,33:_,35:S,37:k,38:T,42:b,45:6,50:E,51:v,52:x,53:D,56:$,60:r},t(A,[2,8]),t(A,[2,9]),t(A,[2,10]),t(A,[2,11]),t(A,[2,12],{14:[1,47],15:[1,48]}),t(A,[2,16]),{18:[1,49]},t(A,[2,18],{20:[1,50]}),{23:[1,51]},t(A,[2,22]),t(A,[2,23]),t(A,[2,24]),t(A,[2,25]),{30:52,31:[1,53],58:[1,54],59:[1,55]},t(A,[2,28]),t(A,[2,29]),{34:[1,56]},{36:[1,57]},t(A,[2,32]),{39:[1,58],41:[1,59]},{43:[1,60]},t(L,[2,44],{57:[1,61]}),t(L,[2,45],{57:[1,62]}),t(A,[2,38]),t(A,[2,39]),t(A,[2,40]),t(A,[2,41]),t(I,[2,36]),{49:63,62:[1,64]},t(I,[2,53]),t(A,[2,7]),t(A,[2,13]),{13:65,24:d,56:$},t(A,[2,17]),t(O,n,{8:66}),{24:[1,67]},{24:[1,68]},{23:[1,69]},{24:[2,48]},{24:[2,49]},t(A,[2,30]),t(A,[2,31]),{40:[1,70]},{40:[1,71]},{44:[1,72]},{24:[1,73]},{24:[1,74]},{47:75,63:C},{63:[2,52]},t(A,[2,14],{14:[1,76]}),{4:a,5:o,6:30,9:14,10:16,11:18,12:19,13:20,16:c,17:l,19:h,21:[1,77],22:u,24:d,25:p,26:y,27:f,28:g,29:m,32:31,33:_,35:S,37:k,38:T,42:b,45:6,50:E,51:v,52:x,53:D,56:$,60:r},t(A,[2,20],{20:[1,78]}),{31:[1,79]},{24:[1,80]},t(A,[2,33]),t(A,[2,34]),t(A,[2,35]),t(L,[2,46]),t(L,[2,47]),t(I,[2,37]),t(A,[2,15]),t(A,[2,19]),t(O,n,{8:81}),t(A,[2,26]),t(A,[2,27]),{4:a,5:o,6:30,9:14,10:16,11:18,12:19,13:20,16:c,17:l,19:h,21:[1,82],22:u,24:d,25:p,26:y,27:f,28:g,29:m,32:31,33:_,35:S,37:k,38:T,42:b,45:6,50:E,51:v,52:x,53:D,56:$,60:r},t(A,[2,21])],defaultActions:{7:[2,50],8:[2,1],9:[2,2],10:[2,3],54:[2,48],55:[2,49],64:[2,52]},parseError:function(t,e){if(e.recoverable)this.trace(t);else{var i=Error(t);throw i.hash=e,i}},parse:function(t){var e=this,i=[0],s=[],r=[null],n=[],a=this.table,o="",c=0,l=0,h=n.slice.call(arguments,1),u=Object.create(this.lexer),d={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(d.yy[p]=this.yy[p]);u.setInput(t,d.yy),d.yy.lexer=u,d.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var y=u.yylloc;n.push(y);var f=u.options&&u.options.ranges;"function"==typeof d.yy.parseError?this.parseError=d.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,m,_,S,k,T,b,E,v={};;){if(m=i[i.length-1],this.defaultActions[m]?_=this.defaultActions[m]:(null==g&&(g=function(){var t;return"number"!=typeof(t=s.pop()||u.lex()||1)&&(t instanceof Array&&(t=(s=t).pop()),t=e.symbols_[t]||t),t}()),_=a[m]&&a[m][g]),void 0===_||!_.length||!_[0]){var x="";for(k in E=[],a[m])this.terminals_[k]&&k>2&&E.push("'"+this.terminals_[k]+"'");x=u.showPosition?"Parse error on line "+(c+1)+":\n"+u.showPosition()+"\nExpecting "+E.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==g?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(x,{text:u.match,token:this.terminals_[g]||g,line:u.yylineno,loc:y,expected:E})}if(_[0]instanceof Array&&_.length>1)throw Error("Parse Error: multiple actions possible at state: "+m+", token: "+g);switch(_[0]){case 1:i.push(g),r.push(u.yytext),n.push(u.yylloc),i.push(_[1]),g=null,l=u.yyleng,o=u.yytext,c=u.yylineno,y=u.yylloc;break;case 2:if(T=this.productions_[_[1]][1],v.$=r[r.length-T],v._$={first_line:n[n.length-(T||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(T||1)].first_column,last_column:n[n.length-1].last_column},f&&(v._$.range=[n[n.length-(T||1)].range[0],n[n.length-1].range[1]]),void 0!==(S=this.performAction.apply(v,[o,l,c,d.yy,_[1],r,n].concat(h))))return S;T&&(i=i.slice(0,-1*T*2),r=r.slice(0,-1*T),n=n.slice(0,-1*T)),i.push(this.productions_[_[1]][0]),r.push(v.$),n.push(v._$),b=a[i[i.length-2]][i[i.length-1]],i.push(b);break;case 3:return!0}}return!0}};function R(){this.yy={}}return N.lexer={EOF:1,parseError:function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===s.length?this.yylloc.first_column:0)+s[s.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var i,s,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),(s=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var n in r)this[n]=r[n];return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,i,s,r=this._currentRules(),n=0;n<r.length;n++)if((i=this._input.match(this.rules[r[n]]))&&(!e||i[0].length>e[0].length)){if(e=i,s=n,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,r[n])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,r[s]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,i,s){switch(i){case 0:return 41;case 1:case 44:return 50;case 2:case 45:return 51;case 3:case 46:return 52;case 4:case 47:return 53;case 5:return this.begin("open_directive"),60;case 6:return this.begin("type_directive"),61;case 7:return this.popState(),this.begin("arg_directive"),48;case 8:return this.popState(),this.popState(),63;case 9:return 62;case 10:case 11:case 13:case 14:case 15:case 16:case 56:case 58:case 64:break;case 12:case 79:return 5;case 17:case 34:return this.pushState("SCALE"),17;case 18:case 35:return 18;case 19:case 25:case 36:case 51:case 54:this.popState();break;case 20:return this.begin("acc_title"),33;case 21:return this.popState(),"acc_title_value";case 22:return this.begin("acc_descr"),35;case 23:return this.popState(),"acc_descr_value";case 24:this.begin("acc_descr_multiline");break;case 26:return"acc_descr_multiline_value";case 27:return this.pushState("CLASSDEF"),38;case 28:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 29:return this.popState(),this.pushState("CLASSDEFID"),39;case 30:return this.popState(),40;case 31:return this.pushState("CLASS"),42;case 32:return this.popState(),this.pushState("CLASS_STYLE"),43;case 33:return this.popState(),44;case 37:this.pushState("STATE");break;case 38:case 41:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),25;case 39:case 42:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),26;case 40:case 43:return this.popState(),e.yytext=e.yytext.slice(0,-10).trim(),27;case 48:this.pushState("STATE_STRING");break;case 49:return this.pushState("STATE_ID"),"AS";case 50:case 66:return this.popState(),"ID";case 52:return"STATE_DESCR";case 53:return 19;case 55:return this.popState(),this.pushState("struct"),20;case 57:return this.popState(),21;case 59:return this.begin("NOTE"),29;case 60:return this.popState(),this.pushState("NOTE_ID"),58;case 61:return this.popState(),this.pushState("NOTE_ID"),59;case 62:this.popState(),this.pushState("FLOATING_NOTE");break;case 63:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 65:return"NOTE_TEXT";case 67:return this.popState(),this.pushState("NOTE_TEXT"),24;case 68:return this.popState(),e.yytext=e.yytext.substr(2).trim(),31;case 69:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),31;case 70:case 71:return 7;case 72:return 16;case 73:return 56;case 74:return 24;case 75:return e.yytext=e.yytext.trim(),14;case 76:return 15;case 77:return 28;case 78:return 57;case 80:return"INVALID"}},rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<<fork>>)/i,/^(?:.*<<join>>)/i,/^(?:.*<<choice>>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[14,15],inclusive:!1},close_directive:{rules:[14,15],inclusive:!1},arg_directive:{rules:[8,9,14,15],inclusive:!1},type_directive:{rules:[7,8,14,15],inclusive:!1},open_directive:{rules:[6,14,15],inclusive:!1},struct:{rules:[14,15,27,31,37,44,45,46,47,56,57,58,59,73,74,75,76,77],inclusive:!1},FLOATING_NOTE_ID:{rules:[66],inclusive:!1},FLOATING_NOTE:{rules:[63,64,65],inclusive:!1},NOTE_TEXT:{rules:[68,69],inclusive:!1},NOTE_ID:{rules:[67],inclusive:!1},NOTE:{rules:[60,61,62],inclusive:!1},CLASS_STYLE:{rules:[33],inclusive:!1},CLASS:{rules:[32],inclusive:!1},CLASSDEFID:{rules:[30],inclusive:!1},CLASSDEF:{rules:[28,29],inclusive:!1},acc_descr_multiline:{rules:[25,26],inclusive:!1},acc_descr:{rules:[23],inclusive:!1},acc_title:{rules:[21],inclusive:!1},SCALE:{rules:[18,19,35,36],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[50],inclusive:!1},STATE_STRING:{rules:[51,52],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[14,15,38,39,40,41,42,43,48,49,53,54,55],inclusive:!1},ID:{rules:[14,15],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,10,11,12,13,15,16,17,20,22,24,27,31,34,37,55,59,70,71,72,73,74,75,76,78,79,80],inclusive:!0}}},R.prototype=N,N.Parser=R,new R}();r.parser=r;let n=r,a="TB",o="state",c="relation",l="default",h="divider",u="start",d="color",p="fill",y="LR",f=[],g={},m=()=>({relations:[],states:{},documents:{}}),_={root:m()},S=_.root,k=0,T=0,b=t=>JSON.parse(JSON.stringify(t)),E=(t,e,i)=>{if(e.stmt===c)E(t,e.state1,!0),E(t,e.state2,!1);else if(e.stmt===o&&("[*]"===e.id?(e.id=i?t.id+"_start":t.id+"_end",e.start=i):e.id=e.id.trim()),e.doc){let t;let i=[],r=[];for(t=0;t<e.doc.length;t++)if(e.doc[t].type===h){let s=b(e.doc[t]);s.doc=b(r),i.push(s),r=[]}else r.push(e.doc[t]);if(i.length>0&&r.length>0){let t={stmt:o,id:(0,s.I)(),type:"divider",doc:b(r)};i.push(b(t)),e.doc=i}e.doc.forEach(t=>E(e,t,!0))}},v=function(t,e=l,i=null,r=null,n=null,a=null,o=null,c=null){let h=null==t?void 0:t.trim();void 0===S.states[h]?(s.l.info("Adding state ",h,r),S.states[h]={id:h,descriptions:[],type:e,doc:i,note:n,classes:[],styles:[],textStyles:[]}):(S.states[h].doc||(S.states[h].doc=i),S.states[h].type||(S.states[h].type=e)),r&&(s.l.info("Setting state description",h,r),"string"==typeof r&&L(h,r.trim()),"object"==typeof r&&r.forEach(t=>L(h,t.trim()))),n&&(S.states[h].note=n,S.states[h].note.text=s.e.sanitizeText(S.states[h].note.text,(0,s.c)())),a&&(s.l.info("Setting state classes",h,a),("string"==typeof a?[a]:a).forEach(t=>O(h,t.trim()))),o&&(s.l.info("Setting state styles",h,o),("string"==typeof o?[o]:o).forEach(t=>N(h,t.trim()))),c&&(s.l.info("Setting state styles",h,o),("string"==typeof c?[c]:c).forEach(t=>R(h,t.trim())))},x=function(t){S=(_={root:m()}).root,k=0,g={},t||(0,s.v)()},D=function(t){return S.states[t]};function $(t=""){let e=t;return"[*]"===t&&(k++,e=`${u}${k}`),e}function C(t="",e=l){return"[*]"===t?u:e}let A=function(t,e,i){if("object"==typeof t){let r,n,a,o;r=$(t.id.trim()),n=C(t.id.trim(),t.type),a=$(e.id.trim()),o=C(e.id.trim(),e.type),v(r,n,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),v(a,o,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),S.relations.push({id1:r,id2:a,relationTitle:s.e.sanitizeText(i,(0,s.c)())})}else{let r=$(t.trim()),n=C(t),a=function(t=""){let e=t;return"[*]"===t&&(k++,e=`end${k}`),e}(e.trim()),o=function(t="",e=l){return"[*]"===t?"end":e}(e);v(r,n),v(a,o),S.relations.push({id1:r,id2:a,title:s.e.sanitizeText(i,(0,s.c)())})}},L=function(t,e){let i=S.states[t],r=e.startsWith(":")?e.replace(":","").trim():e;i.descriptions.push(s.e.sanitizeText(r,(0,s.c)()))},I=function(t,e=""){void 0===g[t]&&(g[t]={id:t,styles:[],textStyles:[]});let i=g[t];null!=e&&e.split(",").forEach(t=>{let e=t.replace(/([^;]*);/,"$1").trim();if(t.match(d)){let t=e.replace(p,"bgFill").replace(d,p);i.textStyles.push(t)}i.styles.push(e)})},O=function(t,e){t.split(",").forEach(function(t){let i=D(t);if(void 0===i){let e=t.trim();v(e),i=D(e)}i.classes.push(e)})},N=function(t,e){let i=D(t);void 0!==i&&i.textStyles.push(e)},R=function(t,e){let i=D(t);void 0!==i&&i.textStyles.push(e)},B={parseDirective:function(t,e,i){s.m.parseDirective(this,t,e,i)},getConfig:()=>(0,s.c)().state,addState:v,clear:x,getState:D,getStates:function(){return S.states},getRelations:function(){return S.relations},getClasses:function(){return g},getDirection:()=>y,addRelation:A,getDividerId:()=>"divider-id-"+ ++T,setDirection:t=>{y=t},cleanupLabel:function(t){return":"===t.substring(0,1)?t.substr(2).trim():t.trim()},lineType:{LINE:0,DOTTED_LINE:1},relationType:{AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},logDocuments:function(){s.l.info("Documents = ",_)},getRootDoc:()=>f,setRootDoc:t=>{s.l.info("Setting root doc",t),f=t},getRootDocV2:()=>(E({id:"root"},{id:"root",doc:f},!0),{id:"root",doc:f}),extract:t=>{let e;e=t.doc?t.doc:t,s.l.info(e),x(!0),s.l.info("Extract",e),e.forEach(t=>{switch(t.stmt){case o:v(t.id.trim(),t.type,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles);break;case c:A(t.state1,t.state2,t.description);break;case"classDef":I(t.id.trim(),t.classes);break;case"applyClass":O(t.id.trim(),t.styleClass)}})},trimColon:t=>t&&":"===t[0]?t.substr(1).trim():t.trim(),getAccTitle:s.g,setAccTitle:s.s,getAccDescription:s.a,setAccDescription:s.b,addStyleClass:I,setCssClass:O,addDescription:L,setDiagramTitle:s.r,getDiagramTitle:s.t},w=t=>` -defs #statediagram-barbEnd { - fill: ${t.transitionColor}; - stroke: ${t.transitionColor}; - } -g.stateGroup text { - fill: ${t.nodeBorder}; - stroke: none; - font-size: 10px; -} -g.stateGroup text { - fill: ${t.textColor}; - stroke: none; - font-size: 10px; - -} -g.stateGroup .state-title { - font-weight: bolder; - fill: ${t.stateLabelColor}; -} - -g.stateGroup rect { - fill: ${t.mainBkg}; - stroke: ${t.nodeBorder}; -} - -g.stateGroup line { - stroke: ${t.lineColor}; - stroke-width: 1; -} - -.transition { - stroke: ${t.transitionColor}; - stroke-width: 1; - fill: none; -} - -.stateGroup .composit { - fill: ${t.background}; - border-bottom: 1px -} - -.stateGroup .alt-composit { - fill: #e0e0e0; - border-bottom: 1px -} - -.state-note { - stroke: ${t.noteBorderColor}; - fill: ${t.noteBkgColor}; - - text { - fill: ${t.noteTextColor}; - stroke: none; - font-size: 10px; - } -} - -.stateLabel .box { - stroke: none; - stroke-width: 0; - fill: ${t.mainBkg}; - opacity: 0.5; -} - -.edgeLabel .label rect { - fill: ${t.labelBackgroundColor}; - opacity: 0.5; -} -.edgeLabel .label text { - fill: ${t.transitionLabelColor||t.tertiaryTextColor}; -} -.label div .edgeLabel { - color: ${t.transitionLabelColor||t.tertiaryTextColor}; -} - -.stateLabel text { - fill: ${t.stateLabelColor}; - font-size: 10px; - font-weight: bold; -} - -.node circle.state-start { - fill: ${t.specialStateColor}; - stroke: ${t.specialStateColor}; -} - -.node .fork-join { - fill: ${t.specialStateColor}; - stroke: ${t.specialStateColor}; -} - -.node circle.state-end { - fill: ${t.innerEndBackground}; - stroke: ${t.background}; - stroke-width: 1.5 -} -.end-state-inner { - fill: ${t.compositeBackground||t.background}; - // stroke: ${t.background}; - stroke-width: 1.5 -} - -.node rect { - fill: ${t.stateBkg||t.mainBkg}; - stroke: ${t.stateBorder||t.nodeBorder}; - stroke-width: 1px; -} -.node polygon { - fill: ${t.mainBkg}; - stroke: ${t.stateBorder||t.nodeBorder};; - stroke-width: 1px; -} -#statediagram-barbEnd { - fill: ${t.lineColor}; -} - -.statediagram-cluster rect { - fill: ${t.compositeTitleBackground}; - stroke: ${t.stateBorder||t.nodeBorder}; - stroke-width: 1px; -} - -.cluster-label, .nodeLabel { - color: ${t.stateLabelColor}; -} - -.statediagram-cluster rect.outer { - rx: 5px; - ry: 5px; -} -.statediagram-state .divider { - stroke: ${t.stateBorder||t.nodeBorder}; -} - -.statediagram-state .title-state { - rx: 5px; - ry: 5px; -} -.statediagram-cluster.statediagram-cluster .inner { - fill: ${t.compositeBackground||t.background}; -} -.statediagram-cluster.statediagram-cluster-alt .inner { - fill: ${t.altBackground?t.altBackground:"#efefef"}; -} - -.statediagram-cluster .inner { - rx:0; - ry:0; -} - -.statediagram-state rect.basic { - rx: 5px; - ry: 5px; -} -.statediagram-state rect.divider { - stroke-dasharray: 10,10; - fill: ${t.altBackground?t.altBackground:"#efefef"}; -} - -.note-edge { - stroke-dasharray: 5; -} - -.statediagram-note rect { - fill: ${t.noteBkgColor}; - stroke: ${t.noteBorderColor}; - stroke-width: 1px; - rx: 0; - ry: 0; -} -.statediagram-note rect { - fill: ${t.noteBkgColor}; - stroke: ${t.noteBorderColor}; - stroke-width: 1px; - rx: 0; - ry: 0; -} - -.statediagram-note text { - fill: ${t.noteTextColor}; -} - -.statediagram-note .nodeLabel { - color: ${t.noteTextColor}; -} -.statediagram .edgeLabel { - color: red; // ${t.noteTextColor}; -} - -#dependencyStart, #dependencyEnd { - fill: ${t.lineColor}; - stroke: ${t.lineColor}; - stroke-width: 1; -} - -.statediagramTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${t.textColor}; -} -`}}]); \ No newline at end of file diff --git a/assets/js/1582a4a4.3554eb91.js b/assets/js/1582a4a4.1cca0155.js similarity index 97% rename from assets/js/1582a4a4.3554eb91.js rename to assets/js/1582a4a4.1cca0155.js index 662c3811e6..1af5f9cfd9 100644 --- a/assets/js/1582a4a4.3554eb91.js +++ b/assets/js/1582a4a4.1cca0155.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[42811],{97771:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/social-card-66116702bb73f0bf68a095ddaecc0fe4.png"},39512:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/hash-96c9ef1044dc1febfe3eefdc9350e2a0.png"},2510:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/social-card-66116702bb73f0bf68a095ddaecc0fe4.png"},16907:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>n,toc:()=>c});var n=t(4571),i=t(62540),r=t(43023);let a={title:"Docusaurus 3.4",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2024-05-31T00:00:00.000Z")},o=void 0,l={image:t(97771).A,authorsImageUrls:[void 0]},c=[{value:"Highlights",id:"highlights",level:2},{value:"Tags files",id:"tags-files",level:3},{value:"Hash Router - Experimental",id:"hash-router---experimental",level:3},{value:"Site Storage - Experimental",id:"site-storage---experimental",level:3},{value:"Other changes",id:"other-changes",level:2}];function h(e){let s={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(s.p,{children:["We are happy to announce ",(0,i.jsx)(s.strong,{children:"Docusaurus 3.4"}),"."]}),"\n",(0,i.jsxs)(s.p,{children:["Upgrading should be easy. Our ",(0,i.jsx)(s.a,{href:"/community/release-process",children:"release process"})," respects ",(0,i.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"}),". Minor versions do not include any breaking changes."]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Docusaurus blog post social card",src:t(2510).A+"",width:"1200",height:"600"})}),"\n",(0,i.jsx)(s.h2,{id:"highlights",children:"Highlights"}),"\n",(0,i.jsx)(s.h3,{id:"tags-files",children:"Tags files"}),"\n",(0,i.jsxs)(s.p,{children:["The docs and blog plugins both already supported a ",(0,i.jsx)(s.code,{children:"tags"})," front matter attribute, enabling you to group related content. But tags declared inline in the front matter are not always ideal."]}),"\n",(0,i.jsxs)(s.p,{children:["With ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10137",children:"#10137"}),", you can now declare a list of pre-defined tags in a ",(0,i.jsx)(s.code,{children:"tags.yml"})," file:"]}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-yml",metastring:'title="blog/tags.yml"',children:"tag1:\n label: 'Tag 1'\n description: 'Tag 1 description'\n permalink: /tag-1-permalink\n\ntag2:\n label: 'Tag 2'\n description: 'Tag 2 description'\n permalink: /tag-2-permalink\n"})}),"\n",(0,i.jsx)(s.p,{children:"These predefined tags can be used in the front matter of your blog or docs files:"}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-md",metastring:'title="blog/2024-05-31-my-blog-post.md"',children:"---\ntags: [tag1, tag2]\n---\n\n# Title\n\nContent\n"})}),"\n",(0,i.jsx)(s.admonition,{title:"Keeping tags usage consistent",type:"tip",children:(0,i.jsxs)(s.p,{children:["Use the new ",(0,i.jsx)(s.code,{children:"onInlineTags: 'throw'"})," plugin option to enforce the usage of predefined tags and prevent contributors from creating new unwanted tags."]})}),"\n",(0,i.jsx)(s.h3,{id:"hash-router---experimental",children:"Hash Router - Experimental"}),"\n",(0,i.jsxs)(s.p,{children:["With ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9859",children:"9859"}),", we added a new ",(0,i.jsx)(s.strong,{children:"experimental"})," hash router config option, useful for ",(0,i.jsx)(s.strong,{children:"offline browsing"})," by opening your site locally through the ",(0,i.jsx)(s.code,{children:"file://"})," protocol."]}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-tsx",metastring:'title="docusaurus.config.js"',children:"export default {\n future: {\n experimental_router: 'hash',\n },\n};\n"})}),"\n",(0,i.jsx)(s.admonition,{type:"warning",children:(0,i.jsxs)(s.p,{children:["This mode is ",(0,i.jsx)(s.strong,{children:"not recommended for sites deployed through a web server"}),"."]})}),"\n",(0,i.jsxs)(s.p,{children:["When this mode is turned on, Docusaurus will opt out of static site rendering, and build a client-side single page application where all routes are prefixed with ",(0,i.jsx)(s.code,{children:"/#/"}),". A single ",(0,i.jsx)(s.code,{children:"index.html"})," file is generated. This file can be opened locally in your browser by simply clicking it, using the browser ",(0,i.jsx)(s.code,{children:"file://"})," protocol. This makes it possible to distribute a Docusaurus site as a ",(0,i.jsx)(s.code,{children:".zip"})," file so that readers can browse it offline, without having to install anything complex on their computer apart a web browser."]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Docusaurus hash router - local browsing using the file:// protocol",src:t(39512).A+"",width:"1203",height:"601"})}),"\n",(0,i.jsx)(s.p,{children:"Try browsing our own Docusaurus site built with the hash router:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://facebook.github.io/docusaurus/#/",children:"Docusaurus website - Hash Router web deployment"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/actions/workflows/build-hash-router.yml",children:"Docusaurus website - Hash Router downloadable GitHub artifacts"})}),"\n"]}),"\n",(0,i.jsx)(s.admonition,{title:"Experimental",type:"caution",children:(0,i.jsxs)(s.p,{children:["This feature is ",(0,i.jsx)(s.strong,{children:"experimental"}),". If you try it out, please let us know how it works for you ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/3825",children:"here"}),"."]})}),"\n",(0,i.jsx)(s.h3,{id:"site-storage---experimental",children:"Site Storage - Experimental"}),"\n",(0,i.jsxs)(s.p,{children:["Docusaurus uses the browser ",(0,i.jsx)(s.code,{children:"localStorage"})," API to persist UI state."]}),"\n",(0,i.jsxs)(s.p,{children:['But sometimes the storage space is "shared" between multiple sites using the same domain, leading to ',(0,i.jsx)(s.strong,{children:"storage key conflicts"}),". This generally happens in two cases"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["when working on multiple ",(0,i.jsx)(s.code,{children:"http://localhost:3000"})," sites"]}),"\n",(0,i.jsxs)(s.li,{children:["when hosting multiple sites under the same domain: ",(0,i.jsx)(s.code,{children:"https://example.com/site1/"})," and ",(0,i.jsx)(s.code,{children:"https://example.com/site2/"})]}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["For this reason, we introduced a new ",(0,i.jsx)(s.strong,{children:"experimental"})," ",(0,i.jsx)(s.code,{children:"siteStorage"})," configuration option:"]}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-tsx",children:"export default {\n future: {\n experimental_storage: {\n type: 'localStorage',\n namespace: true,\n },\n },\n};\n"})}),"\n",(0,i.jsxs)(s.p,{children:["When ",(0,i.jsx)(s.code,{children:"namespace: true"})," is set, we apply a hash suffix to all the storage keys, making them unique to the current site (based on ",(0,i.jsx)(s.code,{children:"config.url"})," and ",(0,i.jsx)(s.code,{children:"config.baseUrl"}),". For example, the ",(0,i.jsx)(s.code,{children:"theme"})," storage key becomes ",(0,i.jsx)(s.code,{children:"theme-x6f"}),". It is also possible to provide your own custom suffix ",(0,i.jsx)(s.code,{children:"namespace: 'suffix'"}),". We also made it possible to use ",(0,i.jsx)(s.code,{children:"type: 'sessionStorage'"})," instead of the default ",(0,i.jsx)(s.code,{children:"localStorage"}),"."]}),"\n",(0,i.jsx)(s.admonition,{title:"Experimental",type:"caution",children:(0,i.jsxs)(s.p,{children:["This feature is ",(0,i.jsx)(s.strong,{children:"experimental"}),". If you try it out, please let us know how it works for you ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10121",children:"here"}),"."]})}),"\n",(0,i.jsx)(s.h2,{id:"other-changes",children:"Other changes"}),"\n",(0,i.jsx)(s.p,{children:"Other notable changes include:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10151",children:"#10151"}),": add Turkmen (tk) theme translations"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10111",children:"#10111"}),": add Bulgarian (bg) theme translations"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10168",children:"#10168"}),": fix many long overdue Markdown link resolution bugs"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10178",children:"#10178"}),": the ",(0,i.jsx)(s.code,{children:"/search"})," page now respects the ",(0,i.jsx)(s.code,{children:"contextualSearch: false"})," setting"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10118",children:"#10118"}),": fix bad pluralization on docs generated index category card description"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10130",children:"#10130"}),": fix false positives reported by the broken anchor checker due to trailing slashes"]}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["Check the ",(0,i.jsx)(s.strong,{children:(0,i.jsx)(s.a,{href:"/changelog/3.4.0",children:"3.4.0 changelog entry"})})," for an exhaustive list of changes."]})]})}function d(e={}){let{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>a,x:()=>o});var n=t(63696);let i={},r=n.createContext(i);function a(e){let s=n.useContext(r);return n.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(i):e.components||i:a(e.components),n.createElement(r.Provider,{value:s},e.children)}},4571:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/3.4","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.4/index.mdx","source":"@site/blog/releases/3.4/index.mdx","title":"Docusaurus 3.4","description":"We are happy to announce Docusaurus 3.4.","date":"2024-05-31T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.045,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.4","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-05-31T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 3.5","permalink":"/blog/releases/3.5"},"nextItem":{"title":"Docusaurus 3.3","permalink":"/blog/releases/3.3"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[42811],{97771:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/social-card-66116702bb73f0bf68a095ddaecc0fe4.png"},39512:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/hash-96c9ef1044dc1febfe3eefdc9350e2a0.png"},2510:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/social-card-66116702bb73f0bf68a095ddaecc0fe4.png"},16907:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>n,toc:()=>c});var n=t(4571),i=t(62540),r=t(43023);let a={title:"Docusaurus 3.4",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2024-05-31T00:00:00.000Z")},o=void 0,l={image:t(97771).A,authorsImageUrls:[void 0]},c=[{value:"Highlights",id:"highlights",level:2},{value:"Tags files",id:"tags-files",level:3},{value:"Hash Router - Experimental",id:"hash-router---experimental",level:3},{value:"Site Storage - Experimental",id:"site-storage---experimental",level:3},{value:"Other changes",id:"other-changes",level:2}];function h(e){let s={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(s.p,{children:["We are happy to announce ",(0,i.jsx)(s.strong,{children:"Docusaurus 3.4"}),"."]}),"\n",(0,i.jsxs)(s.p,{children:["Upgrading should be easy. Our ",(0,i.jsx)(s.a,{href:"/community/release-process",children:"release process"})," respects ",(0,i.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"}),". Minor versions do not include any breaking changes."]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Docusaurus blog post social card",src:t(2510).A+"",width:"1200",height:"600"})}),"\n",(0,i.jsx)(s.h2,{id:"highlights",children:"Highlights"}),"\n",(0,i.jsx)(s.h3,{id:"tags-files",children:"Tags files"}),"\n",(0,i.jsxs)(s.p,{children:["The docs and blog plugins both already supported a ",(0,i.jsx)(s.code,{children:"tags"})," front matter attribute, enabling you to group related content. But tags declared inline in the front matter are not always ideal."]}),"\n",(0,i.jsxs)(s.p,{children:["With ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10137",children:"#10137"}),", you can now declare a list of pre-defined tags in a ",(0,i.jsx)(s.code,{children:"tags.yml"})," file:"]}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-yml",metastring:'title="blog/tags.yml"',children:"tag1:\n label: 'Tag 1'\n description: 'Tag 1 description'\n permalink: /tag-1-permalink\n\ntag2:\n label: 'Tag 2'\n description: 'Tag 2 description'\n permalink: /tag-2-permalink\n"})}),"\n",(0,i.jsx)(s.p,{children:"These predefined tags can be used in the front matter of your blog or docs files:"}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-md",metastring:'title="blog/2024-05-31-my-blog-post.md"',children:"---\ntags: [tag1, tag2]\n---\n\n# Title\n\nContent\n"})}),"\n",(0,i.jsx)(s.admonition,{title:"Keeping tags usage consistent",type:"tip",children:(0,i.jsxs)(s.p,{children:["Use the new ",(0,i.jsx)(s.code,{children:"onInlineTags: 'throw'"})," plugin option to enforce the usage of predefined tags and prevent contributors from creating new unwanted tags."]})}),"\n",(0,i.jsx)(s.h3,{id:"hash-router---experimental",children:"Hash Router - Experimental"}),"\n",(0,i.jsxs)(s.p,{children:["With ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9859",children:"9859"}),", we added a new ",(0,i.jsx)(s.strong,{children:"experimental"})," hash router config option, useful for ",(0,i.jsx)(s.strong,{children:"offline browsing"})," by opening your site locally through the ",(0,i.jsx)(s.code,{children:"file://"})," protocol."]}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-tsx",metastring:'title="docusaurus.config.js"',children:"export default {\n future: {\n experimental_router: 'hash',\n },\n};\n"})}),"\n",(0,i.jsx)(s.admonition,{type:"warning",children:(0,i.jsxs)(s.p,{children:["This mode is ",(0,i.jsx)(s.strong,{children:"not recommended for sites deployed through a web server"}),"."]})}),"\n",(0,i.jsxs)(s.p,{children:["When this mode is turned on, Docusaurus will opt out of static site rendering, and build a client-side single page application where all routes are prefixed with ",(0,i.jsx)(s.code,{children:"/#/"}),". A single ",(0,i.jsx)(s.code,{children:"index.html"})," file is generated. This file can be opened locally in your browser by simply clicking it, using the browser ",(0,i.jsx)(s.code,{children:"file://"})," protocol. This makes it possible to distribute a Docusaurus site as a ",(0,i.jsx)(s.code,{children:".zip"})," file so that readers can browse it offline, without having to install anything complex on their computer apart a web browser."]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Docusaurus hash router - local browsing using the file:// protocol",src:t(39512).A+"",width:"1203",height:"601"})}),"\n",(0,i.jsx)(s.p,{children:"Try browsing our own Docusaurus site built with the hash router:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://facebook.github.io/docusaurus/#/",children:"Docusaurus website - Hash Router web deployment"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/actions/workflows/build-hash-router.yml",children:"Docusaurus website - Hash Router downloadable GitHub artifacts"})}),"\n"]}),"\n",(0,i.jsx)(s.admonition,{title:"Experimental",type:"caution",children:(0,i.jsxs)(s.p,{children:["This feature is ",(0,i.jsx)(s.strong,{children:"experimental"}),". If you try it out, please let us know how it works for you ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/3825",children:"here"}),"."]})}),"\n",(0,i.jsx)(s.h3,{id:"site-storage---experimental",children:"Site Storage - Experimental"}),"\n",(0,i.jsxs)(s.p,{children:["Docusaurus uses the browser ",(0,i.jsx)(s.code,{children:"localStorage"})," API to persist UI state."]}),"\n",(0,i.jsxs)(s.p,{children:['But sometimes the storage space is "shared" between multiple sites using the same domain, leading to ',(0,i.jsx)(s.strong,{children:"storage key conflicts"}),". This generally happens in two cases"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["when working on multiple ",(0,i.jsx)(s.code,{children:"http://localhost:3000"})," sites"]}),"\n",(0,i.jsxs)(s.li,{children:["when hosting multiple sites under the same domain: ",(0,i.jsx)(s.code,{children:"https://example.com/site1/"})," and ",(0,i.jsx)(s.code,{children:"https://example.com/site2/"})]}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["For this reason, we introduced a new ",(0,i.jsx)(s.strong,{children:"experimental"})," ",(0,i.jsx)(s.code,{children:"siteStorage"})," configuration option:"]}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-tsx",children:"export default {\n future: {\n experimental_storage: {\n type: 'localStorage',\n namespace: true,\n },\n },\n};\n"})}),"\n",(0,i.jsxs)(s.p,{children:["When ",(0,i.jsx)(s.code,{children:"namespace: true"})," is set, we apply a hash suffix to all the storage keys, making them unique to the current site (based on ",(0,i.jsx)(s.code,{children:"config.url"})," and ",(0,i.jsx)(s.code,{children:"config.baseUrl"}),". For example, the ",(0,i.jsx)(s.code,{children:"theme"})," storage key becomes ",(0,i.jsx)(s.code,{children:"theme-x6f"}),". It is also possible to provide your own custom suffix ",(0,i.jsx)(s.code,{children:"namespace: 'suffix'"}),". We also made it possible to use ",(0,i.jsx)(s.code,{children:"type: 'sessionStorage'"})," instead of the default ",(0,i.jsx)(s.code,{children:"localStorage"}),"."]}),"\n",(0,i.jsx)(s.admonition,{title:"Experimental",type:"caution",children:(0,i.jsxs)(s.p,{children:["This feature is ",(0,i.jsx)(s.strong,{children:"experimental"}),". If you try it out, please let us know how it works for you ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10121",children:"here"}),"."]})}),"\n",(0,i.jsx)(s.h2,{id:"other-changes",children:"Other changes"}),"\n",(0,i.jsx)(s.p,{children:"Other notable changes include:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10151",children:"#10151"}),": add Turkmen (tk) theme translations"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10111",children:"#10111"}),": add Bulgarian (bg) theme translations"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10168",children:"#10168"}),": fix many long overdue Markdown link resolution bugs"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10178",children:"#10178"}),": the ",(0,i.jsx)(s.code,{children:"/search"})," page now respects the ",(0,i.jsx)(s.code,{children:"contextualSearch: false"})," setting"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10118",children:"#10118"}),": fix bad pluralization on docs generated index category card description"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10130",children:"#10130"}),": fix false positives reported by the broken anchor checker due to trailing slashes"]}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["Check the ",(0,i.jsx)(s.strong,{children:(0,i.jsx)(s.a,{href:"/changelog/3.4.0",children:"3.4.0 changelog entry"})})," for an exhaustive list of changes."]})]})}function d(e={}){let{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>a,x:()=>o});var n=t(63696);let i={},r=n.createContext(i);function a(e){let s=n.useContext(r);return n.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(i):e.components||i:a(e.components),n.createElement(r.Provider,{value:s},e.children)}},4571:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/3.4","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.4/index.mdx","source":"@site/blog/releases/3.4/index.mdx","title":"Docusaurus 3.4","description":"We are happy to announce Docusaurus 3.4.","date":"2024-05-31T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.045,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.4","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-05-31T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 3.5","permalink":"/blog/releases/3.5"},"nextItem":{"title":"Docusaurus 3.3","permalink":"/blog/releases/3.3"}}')}}]); \ No newline at end of file diff --git a/assets/js/1678.74df7a04.js b/assets/js/1678.74df7a04.js deleted file mode 100644 index f8f58e2c3e..0000000000 --- a/assets/js/1678.74df7a04.js +++ /dev/null @@ -1,109 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1678],{18440:(e,t,r)=>{r.d(t,{H:()=>a});var l=r(17963);function a(e,t){var r=e.append("foreignObject").attr("width","100000"),a=r.append("xhtml:div");a.attr("xmlns","http://www.w3.org/1999/xhtml");var o=t.label;switch(typeof o){case"function":a.insert(o);break;case"object":a.insert(function(){return o});break;default:a.html(o)}l.AV(a,t.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap");var n=a.node().getBoundingClientRect();return r.attr("width",n.width).attr("height",n.height),r}},17963:(e,t,r)=>{r.d(t,{AV:()=>c,De:()=>o,c$:()=>p,gh:()=>n,nh:()=>d});var l=r(69113),a=r(42036);function o(e,t){return!!e.children(t).length}function n(e){return s(e.v)+":"+s(e.w)+":"+s(e.name)}var i=/:/g;function s(e){return e?String(e).replace(i,"\\:"):""}function c(e,t){t&&e.attr("style",t)}function d(e,t,r){t&&e.attr("class",t).attr("class",r+" "+e.attr("class"))}function p(e,t){var r=t.graph();if(l.A(r)){var o=r.transition;if(a.A(o))return o(e)}return e}},1678:(e,t,r)=>{r.d(t,{diagram:()=>v});var l=r(60972),a=(r(62499),r(93126)),o=(r(17367),r(62859)),n=(r(12630),r(7392),r(51822),r(17963)),i=r(18440);function s(e,t,r){var l,a=t.label,o=e.append("g");"svg"===t.labelType?(o.node().appendChild(t.label),n.AV(o,t.labelStyle)):"string"!=typeof a||"html"===t.labelType?(0,i.H)(o,t):function(e,t){for(var r=e.append("text"),l=(function(e){for(var t,r="",l=!1,a=0;a<e.length;++a)(t=e[a],l)?("n"===t?r+="\n":r+=t,l=!1):"\\"===t?l=!0:r+=t;return r})(t.label).split("\n"),a=0;a<l.length;a++)r.append("tspan").attr("xml:space","preserve").attr("dy","1em").attr("x","1").text(l[a]);return n.AV(r,t.labelStyle),r}(o,t);var s=o.node().getBBox();switch(r){case"top":l=-t.height/2;break;case"bottom":l=t.height/2-s.height;break;default:l=-s.height/2}return o.attr("transform","translate("+-s.width/2+","+l+")"),o}var c=r(16966),d=r(70037);function p(e,t){return e.intersect(t)}function b(e,t){var r=(a.n8j||a.JWy.line)().x(function(e){return e.x}).y(function(e){return e.y});return(r.curve||r.interpolate)(e.curve),r(t)}var h=r(23068);function u(e,t,r,l){var a=e.x,o=e.y,n=a-l.x,i=o-l.y,s=Math.sqrt(t*t*i*i+r*r*n*n),c=Math.abs(t*r*n/s);l.x<a&&(c=-c);var d=Math.abs(t*r*i/s);return l.y<o&&(d=-d),{x:a+c,y:o+d}}function f(e,t,r){var l=e.x,a=e.y,o=[],n=Number.POSITIVE_INFINITY,i=Number.POSITIVE_INFINITY;t.forEach(function(e){n=Math.min(n,e.x),i=Math.min(i,e.y)});for(var s=l-e.width/2-n,c=a-e.height/2-i,d=0;d<t.length;d++){var p=t[d],b=t[d<t.length-1?d+1:0],h=function(e,t,r,l){var a,o,n,i,s,c,d,p,b,h,u,f,y;if(a=t.y-e.y,n=e.x-t.x,s=t.x*e.y-e.x*t.y,b=a*r.x+n*r.y+s,h=a*l.x+n*l.y+s,(0===b||0===h||!(b*h>0))&&(o=l.y-r.y,i=r.x-l.x,c=l.x*r.y-r.x*l.y,d=o*e.x+i*e.y+c,p=o*t.x+i*t.y+c,!(0!==d&&0!==p&&d*p>0)&&0!=(u=a*i-o*n)))return f=Math.abs(u/2),{x:(y=n*c-i*s)<0?(y-f)/u:(y+f)/u,y:(y=o*s-a*c)<0?(y-f)/u:(y+f)/u}}(e,r,{x:s+p.x,y:c+p.y},{x:s+b.x,y:c+b.y});h&&o.push(h)}return o.length?(o.length>1&&o.sort(function(e,t){var l=e.x-r.x,a=e.y-r.y,o=Math.sqrt(l*l+a*a),n=t.x-r.x,i=t.y-r.y,s=Math.sqrt(n*n+i*i);return o<s?-1:o===s?0:1}),o[0]):(console.log("NO INTERSECTION FOUND, RETURN NODE CENTER",e),e)}function y(e,t){var r,l,a=e.x,o=e.y,n=t.x-a,i=t.y-o,s=e.width/2,c=e.height/2;return Math.abs(i)*s>Math.abs(n)*c?(i<0&&(c=-c),r=0===i?0:c*n/i,l=c):(n<0&&(s=-s),r=s,l=0===n?0:s*i/n),{x:a+r,y:o+l}}a.lUB;var g=r(8560);function w(e,t,r,l){return e.insert("polygon",":first-child").attr("points",l.map(function(e){return e.x+","+e.y}).join(" ")).attr("transform","translate("+-t/2+","+r/2+")")}r(95285),r(31546),r(31234),r(46591);let x={},k=function(e){for(let t of Object.keys(e))x[t]=e[t]},v={parser:l.p,db:l.f,renderer:g.f,styles:g.a,init:e=>{e.flowchart||(e.flowchart={}),e.flowchart.arrowMarkerAbsolute=e.arrowMarkerAbsolute,k(e.flowchart),l.f.clear(),l.f.setGen("gen-1")}}},8560:(e,t,r)=>{r.d(t,{a:()=>w,f:()=>y});var l=r(62499),a=r(93126),o=r(17367),n=r(97027),i=r(18440),s=r(81283),c=r(112);let d=(e,t)=>s.A.lang.round(c.A.parse(e)[t]);var p=r(18448);let b={},h=function(e,t,r,l,a,n){let s=l.select(`[id="${r}"]`);Object.keys(e).forEach(function(r){let l;let c=e[r],d="default";c.classes.length>0&&(d=c.classes.join(" ")),d+=" flowchart-label";let p=(0,o.k)(c.styles),b=void 0!==c.text?c.text:c.id;if(o.l.info("vertex",c,c.labelType),"markdown"===c.labelType)o.l.info("vertex",c,c.labelType);else if((0,o.n)((0,o.c)().flowchart.htmlLabels)){let e={label:b.replace(/fa[blrs]?:fa-[\w-]+/g,e=>`<i class='${e.replace(":"," ")}'></i>`)};(l=(0,i.H)(s,e).node()).parentNode.removeChild(l)}else{let e=a.createElementNS("http://www.w3.org/2000/svg","text");for(let t of(e.setAttribute("style",p.labelStyle.replace("color:","fill:")),b.split(o.e.lineBreakRegex))){let r=a.createElementNS("http://www.w3.org/2000/svg","tspan");r.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),r.setAttribute("dy","1em"),r.setAttribute("x","1"),r.textContent=t,e.appendChild(r)}l=e}let h=0,u="";switch(c.type){case"round":h=5,u="rect";break;case"square":case"group":default:u="rect";break;case"diamond":u="question";break;case"hexagon":u="hexagon";break;case"odd":case"odd_right":u="rect_left_inv_arrow";break;case"lean_right":u="lean_right";break;case"lean_left":u="lean_left";break;case"trapezoid":u="trapezoid";break;case"inv_trapezoid":u="inv_trapezoid";break;case"circle":u="circle";break;case"ellipse":u="ellipse";break;case"stadium":u="stadium";break;case"subroutine":u="subroutine";break;case"cylinder":u="cylinder";break;case"doublecircle":u="doublecircle"}t.setNode(c.id,{labelStyle:p.labelStyle,shape:u,labelText:b,labelType:c.labelType,rx:h,ry:h,class:d,style:p.style,id:c.id,link:c.link,linkTarget:c.linkTarget,tooltip:n.db.getTooltip(c.id)||"",domId:n.db.lookUpDomId(c.id),haveCallback:c.haveCallback,width:"group"===c.type?500:void 0,dir:c.dir,type:c.type,props:c.props,padding:(0,o.c)().flowchart.padding}),o.l.info("setNode",{labelStyle:p.labelStyle,labelType:c.labelType,shape:u,labelText:b,rx:h,ry:h,class:d,style:p.style,id:c.id,domId:n.db.lookUpDomId(c.id),width:"group"===c.type?500:void 0,type:c.type,dir:c.dir,props:c.props,padding:(0,o.c)().flowchart.padding})})},u=function(e,t,r){let l,n;o.l.info("abc78 edges = ",e);let i=0,s={};if(void 0!==e.defaultStyle){let t=(0,o.k)(e.defaultStyle);l=t.style,n=t.labelStyle}e.forEach(function(r){i++;let c="L-"+r.start+"-"+r.end;void 0===s[c]?s[c]=0:s[c]++,o.l.info("abc78 new entry",c,s[c]);let d=c+"-"+s[c];o.l.info("abc78 new link id to be used is",c,d,s[c]);let p="LS-"+r.start,h="LE-"+r.end,u={style:"",labelStyle:""};switch(u.minlen=r.length||1,"arrow_open"===r.type?u.arrowhead="none":u.arrowhead="normal",u.arrowTypeStart="arrow_open",u.arrowTypeEnd="arrow_open",r.type){case"double_arrow_cross":u.arrowTypeStart="arrow_cross";case"arrow_cross":u.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":u.arrowTypeStart="arrow_point";case"arrow_point":u.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":u.arrowTypeStart="arrow_circle";case"arrow_circle":u.arrowTypeEnd="arrow_circle"}let f="",y="";switch(r.stroke){case"normal":f="fill:none;",void 0!==l&&(f=l),void 0!==n&&(y=n),u.thickness="normal",u.pattern="solid";break;case"dotted":u.thickness="normal",u.pattern="dotted",u.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":u.thickness="thick",u.pattern="solid",u.style="stroke-width: 3.5px;fill:none;";break;case"invisible":u.thickness="invisible",u.pattern="solid",u.style="stroke-width: 0;fill:none;"}if(void 0!==r.style){let e=(0,o.k)(r.style);f=e.style,y=e.labelStyle}u.style=u.style+=f,u.labelStyle=u.labelStyle+=y,void 0!==r.interpolate?u.curve=(0,o.o)(r.interpolate,a.lUB):void 0!==e.defaultInterpolate?u.curve=(0,o.o)(e.defaultInterpolate,a.lUB):u.curve=(0,o.o)(b.curve,a.lUB),void 0===r.text?void 0!==r.style&&(u.arrowheadStyle="fill: #333"):(u.arrowheadStyle="fill: #333",u.labelpos="c"),u.labelType=r.labelType,u.label=r.text.replace(o.e.lineBreakRegex,"\n"),void 0===r.style&&(u.style=u.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),u.labelStyle=u.labelStyle.replace("color:","fill:"),u.id=d,u.classes="flowchart-link "+p+" "+h,t.setEdge(r.start,r.end,u,i)})},f=async function(e,t,r,i){let s,c;o.l.info("Drawing flowchart");let d=i.db.getDirection();void 0===d&&(d="TD");let{securityLevel:p,flowchart:b}=(0,o.c)(),f=b.nodeSpacing||50,y=b.rankSpacing||50;"sandbox"===p&&(s=(0,a.Ltv)("#i"+t));let g="sandbox"===p?(0,a.Ltv)(s.nodes()[0].contentDocument.body):(0,a.Ltv)("body"),w="sandbox"===p?s.nodes()[0].contentDocument:document,x=new l.T({multigraph:!0,compound:!0}).setGraph({rankdir:d,nodesep:f,ranksep:y,marginx:0,marginy:0}).setDefaultEdgeLabel(function(){return{}}),k=i.db.getSubGraphs();o.l.info("Subgraphs - ",k);for(let e=k.length-1;e>=0;e--)c=k[e],o.l.info("Subgraph - ",c),i.db.addVertex(c.id,{text:c.title,type:c.labelType},"group",void 0,c.classes,c.dir);let v=i.db.getVertices(),m=i.db.getEdges();o.l.info("Edges",m);let T=0;for(T=k.length-1;T>=0;T--){c=k[T],(0,a.Ubm)("cluster").append("text");for(let e=0;e<c.nodes.length;e++)o.l.info("Setting up subgraphs",c.nodes[e],c.id),x.setParent(c.nodes[e],c.id)}h(v,x,t,g,w,i),u(m,x);let S=g.select(`[id="${t}"]`),C=g.select("#"+t+" g");if(await (0,n.r)(C,x,["point","circle","cross"],"flowchart",t),o.u.insertTitle(S,"flowchartTitleText",b.titleTopMargin,i.db.getDiagramTitle()),(0,o.p)(x,S,b.diagramPadding,b.useMaxWidth),i.db.indexNodes("subGraph"+T),!b.htmlLabels)for(let e of w.querySelectorAll('[id="'+t+'"] .edgeLabel .label')){let t=e.getBBox(),r=w.createElementNS("http://www.w3.org/2000/svg","rect");r.setAttribute("rx",0),r.setAttribute("ry",0),r.setAttribute("width",t.width),r.setAttribute("height",t.height),e.insertBefore(r,e.firstChild)}Object.keys(v).forEach(function(e){let r=v[e];if(r.link){let l=(0,a.Ltv)("#"+t+' [id="'+e+'"]');if(l){let e=w.createElementNS("http://www.w3.org/2000/svg","a");e.setAttributeNS("http://www.w3.org/2000/svg","class",r.classes.join(" ")),e.setAttributeNS("http://www.w3.org/2000/svg","href",r.link),e.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),"sandbox"===p?e.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):r.linkTarget&&e.setAttributeNS("http://www.w3.org/2000/svg","target",r.linkTarget);let t=l.insert(function(){return e},":first-child"),a=l.select(".label-container");a&&t.append(function(){return a.node()});let o=l.select(".label");o&&t.append(function(){return o.node()})}}})},y={setConf:function(e){for(let t of Object.keys(e))b[t]=e[t]},addVertices:h,addEdges:u,getClasses:function(e,t){return t.db.getClasses()},draw:f},g=(e,t)=>{let r=d(e,"r"),l=d(e,"g"),a=d(e,"b");return p.A(r,l,a,t)},w=e=>`.label { - font-family: ${e.fontFamily}; - color: ${e.nodeTextColor||e.textColor}; - } - .cluster-label text { - fill: ${e.titleColor}; - } - .cluster-label span,p { - color: ${e.titleColor}; - } - - .label text,span,p { - fill: ${e.nodeTextColor||e.textColor}; - color: ${e.nodeTextColor||e.textColor}; - } - - .node rect, - .node circle, - .node ellipse, - .node polygon, - .node path { - fill: ${e.mainBkg}; - stroke: ${e.nodeBorder}; - stroke-width: 1px; - } - .flowchart-label text { - text-anchor: middle; - } - // .flowchart-label .text-outer-tspan { - // text-anchor: middle; - // } - // .flowchart-label .text-inner-tspan { - // text-anchor: start; - // } - - .node .label { - text-align: center; - } - .node.clickable { - cursor: pointer; - } - - .arrowheadPath { - fill: ${e.arrowheadColor}; - } - - .edgePath .path { - stroke: ${e.lineColor}; - stroke-width: 2.0px; - } - - .flowchart-link { - stroke: ${e.lineColor}; - fill: none; - } - - .edgeLabel { - background-color: ${e.edgeLabelBackground}; - rect { - opacity: 0.5; - background-color: ${e.edgeLabelBackground}; - fill: ${e.edgeLabelBackground}; - } - text-align: center; - } - - /* For html labels only */ - .labelBkg { - background-color: ${g(e.edgeLabelBackground,.5)}; - // background-color: - } - - .cluster rect { - fill: ${e.clusterBkg}; - stroke: ${e.clusterBorder}; - stroke-width: 1px; - } - - .cluster text { - fill: ${e.titleColor}; - } - - .cluster span,p { - color: ${e.titleColor}; - } - /* .cluster div { - color: ${e.titleColor}; - } */ - - div.mermaidTooltip { - position: absolute; - text-align: center; - max-width: 200px; - padding: 2px; - font-family: ${e.fontFamily}; - font-size: 12px; - background: ${e.tertiaryColor}; - border: 1px solid ${e.border2}; - border-radius: 2px; - pointer-events: none; - z-index: 100; - } - - .flowchartTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${e.textColor}; - } -`}}]); \ No newline at end of file diff --git a/assets/js/16f6cad8.84895292.js b/assets/js/16f6cad8.84895292.js new file mode 100644 index 0000000000..931f187fbb --- /dev/null +++ b/assets/js/16f6cad8.84895292.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[93958],{32738:(e,n,s)=>{s.d(n,{A:()=>l});var i=s(62540);s(63696);var t=s(46733);function l({toc:e,minHeadingLevel:n,maxHeadingLevel:s}){return(0,i.jsx)("div",{className:"tableOfContentsInline_2sru",children:(0,i.jsx)(t.A,{toc:e,minHeadingLevel:n,maxHeadingLevel:s,className:"table-of-contents",linkClassName:null})})}},46733:(e,n,s)=>{s.d(n,{A:()=>u});var i=s(62540),t=s(63696),l=s(25436);function a(e){for(var n=1;n<arguments.length;n++){var s=null!=arguments[n]?arguments[n]:{},i=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(s).filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable}))),i.forEach(function(n){var i;i=s[n],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return e}function o(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);s.push.apply(s,i)}return s})(Object(n)).forEach(function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(n,s))}),e}function c(e){let n=e.getBoundingClientRect();return n.top===n.bottom?c(e.parentNode):n}var r=s(36372);let d=t.memo(function e({toc:n,className:s,linkClassName:t,isChild:l}){return n.length?(0,i.jsx)("ul",{className:l?void 0:s,children:n.map(n=>(0,i.jsxs)("li",{children:[(0,i.jsx)(r.A,{to:`#${n.id}`,className:null!=t?t:void 0,dangerouslySetInnerHTML:{__html:n.value}}),(0,i.jsx)(e,{isChild:!0,toc:n.children,className:s,linkClassName:t})]},n.id))}):null});function u(e){var{toc:n,className:s="table-of-contents table-of-contents__left-border",linkClassName:r="table-of-contents__link",linkActiveClassName:u,minHeadingLevel:b,maxHeadingLevel:h}=e,m=function(e,n){if(null==e)return{};var s,i,t=function(e,n){if(null==e)return{};var s,i,t={},l=Object.keys(e);for(i=0;i<l.length;i++)s=l[i],n.indexOf(s)>=0||(t[s]=e[s]);return t}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(i=0;i<l.length;i++)s=l[i],!(n.indexOf(s)>=0)&&Object.prototype.propertyIsEnumerable.call(e,s)&&(t[s]=e[s])}return t}(e,["toc","className","linkClassName","linkActiveClassName","minHeadingLevel","maxHeadingLevel"]);let p=(0,l.p)(),x=null!=b?b:p.tableOfContents.minHeadingLevel,g=null!=h?h:p.tableOfContents.maxHeadingLevel,f=function({toc:e,minHeadingLevel:n,maxHeadingLevel:s}){return(0,t.useMemo)(()=>(function e({toc:n,minHeadingLevel:s,maxHeadingLevel:i}){return n.flatMap(n=>{let t=e({toc:n.children,minHeadingLevel:s,maxHeadingLevel:i});return n.level>=s&&n.level<=i?[o(a({},n),{children:t})]:t})})({toc:function(e){let n=e.map(e=>o(a({},e),{parentIndex:-1,children:[]})),s=Array(7).fill(-1);n.forEach((e,n)=>{let i=s.slice(2,e.level);e.parentIndex=Math.max(...i),s[e.level]=n});let i=[];return n.forEach(e=>{let{parentIndex:s}=e,t=function(e,n){if(null==e)return{};var s,i,t=function(e,n){if(null==e)return{};var s,i,t={},l=Object.keys(e);for(i=0;i<l.length;i++)s=l[i],n.indexOf(s)>=0||(t[s]=e[s]);return t}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(i=0;i<l.length;i++)s=l[i],!(n.indexOf(s)>=0)&&Object.prototype.propertyIsEnumerable.call(e,s)&&(t[s]=e[s])}return t}(e,["parentIndex"]);s>=0?n[s].children.push(t):i.push(t)}),i}(e),minHeadingLevel:n,maxHeadingLevel:s}),[e,n,s])}({toc:n,minHeadingLevel:x,maxHeadingLevel:g});return!function(e){let n=(0,t.useRef)(void 0),s=function(){let e=(0,t.useRef)(0),{navbar:{hideOnScroll:n}}=(0,l.p)();return(0,t.useEffect)(()=>{e.current=n?0:document.querySelector(".navbar").clientHeight},[n]),e}();(0,t.useEffect)(()=>{if(!e)return()=>{};let{linkClassName:i,linkActiveClassName:t,minHeadingLevel:l,maxHeadingLevel:a}=e;function o(){let e=Array.from(document.getElementsByClassName(i)),o=function(e,{anchorTopOffset:n}){var s,i,t;let l=e.find(e=>c(e).top>=n);return l?(t=c(l)).top>0&&t.bottom<window.innerHeight/2?l:null!==(s=e[e.indexOf(l)-1])&&void 0!==s?s:null:null!==(i=e[e.length-1])&&void 0!==i?i:null}(function({minHeadingLevel:e,maxHeadingLevel:n}){let s=[];for(let i=e;i<=n;i+=1)s.push(`h${i}.anchor`);return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:l,maxHeadingLevel:a}),{anchorTopOffset:s.current}),r=e.find(e=>o&&o.id===decodeURIComponent(e.href.substring(e.href.indexOf("#")+1)));e.forEach(e=>{e===r?(n.current&&n.current!==e&&n.current.classList.remove(t),e.classList.add(t),n.current=e):e.classList.remove(t)})}return document.addEventListener("scroll",o),document.addEventListener("resize",o),o(),()=>{document.removeEventListener("scroll",o),document.removeEventListener("resize",o)}},[e,s])}((0,t.useMemo)(()=>{if(r&&u)return{linkClassName:r,linkActiveClassName:u,minHeadingLevel:x,maxHeadingLevel:g}},[r,u,x,g])),(0,i.jsx)(d,function(e){for(var n=1;n<arguments.length;n++){var s=null!=arguments[n]?arguments[n]:{},i=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(s).filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable}))),i.forEach(function(n){var i;i=s[n],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return e}({toc:f,className:s,linkClassName:r},m))}},70361:(e,n,s)=>{s.d(n,{A:()=>o});var i=s(62540);s(63696);var t=s(11750);let l="dot_giz1",a="bar_rrRL";function o({children:e,minHeight:n,url:s="http://localhost:3000",style:o,bodyStyle:c}){var r,d;return(0,i.jsxs)("div",{className:"browserWindow_my1Q",style:(r=function(e){for(var n=1;n<arguments.length;n++){var s=null!=arguments[n]?arguments[n]:{},i=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(s).filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable}))),i.forEach(function(n){var i;i=s[n],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return e}({},o),d=d={minHeight:n},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(d)):(function(e,n){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);s.push.apply(s,i)}return s})(Object(d)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(d,e))}),r),children:[(0,i.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,i.jsxs)("div",{className:"buttons_uHc7",children:[(0,i.jsx)("span",{className:l,style:{background:"#f25f58"}}),(0,i.jsx)("span",{className:l,style:{background:"#fbbe3c"}}),(0,i.jsx)("span",{className:l,style:{background:"#58cb42"}})]}),(0,i.jsx)("div",{className:(0,t.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:s}),(0,i.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,i.jsxs)("div",{children:[(0,i.jsx)("span",{className:a}),(0,i.jsx)("span",{className:a}),(0,i.jsx)("span",{className:a})]})})]}),(0,i.jsx)("div",{className:"browserWindowBody_Idgs",style:c,children:e})]})}},66511:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>h,frontMatter:()=>c,metadata:()=>i,toc:()=>u});let i=JSON.parse('{"id":"guides/markdown-features/toc","title":"Headings and Table of contents","description":"Customizing headings and table-of-contents in Markdown","source":"@site/docs/guides/markdown-features/markdown-features-toc.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/toc","permalink":"/docs/markdown-features/toc","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-toc.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"toc","description":"Customizing headings and table-of-contents in Markdown","slug":"/markdown-features/toc"},"sidebar":"docs","previous":{"title":"Admonitions","permalink":"/docs/markdown-features/admonitions"},"next":{"title":"Assets","permalink":"/docs/markdown-features/assets"}}');var t=s(62540),l=s(43023),a=s(70361),o=s(32738);let c={id:"toc",description:"Customizing headings and table-of-contents in Markdown",slug:"/markdown-features/toc"},r="Headings and Table of contents",d={},u=[{value:"Markdown headings",id:"markdown-headings",level:2},{value:"Heading IDs",id:"heading-ids",level:3},{value:"Table of contents heading level",id:"table-of-contents-heading-level",level:2},{value:"Inline table of contents",id:"inline-table-of-contents",level:2},{value:"Customizing table of contents generation",id:"customizing-table-of-contents-generation",level:2},{value:"Example Section 1",id:"example-section-1",level:2},{value:"Example Subsection 1 a",id:"example-subsection-1-a",level:3},{value:"Example subsubsection 1 a I",id:"example-subsubsection-1-a-i",level:4},{value:"Example subsubsection 1 a II",id:"example-subsubsection-1-a-ii",level:4},{value:"Example subsubsection 1 a III",id:"example-subsubsection-1-a-iii",level:4},{value:"Example Subsection 1 b",id:"example-subsection-1-b",level:3},{value:"Example subsubsection 1 b I",id:"example-subsubsection-1-b-i",level:4},{value:"Example subsubsection 1 b II",id:"example-subsubsection-1-b-ii",level:4},{value:"Example subsubsection 1 b III",id:"example-subsubsection-1-b-iii",level:4},{value:"Example Subsection 1 c",id:"example-subsection-1-c",level:3},{value:"Example subsubsection 1 c I",id:"example-subsubsection-1-c-i",level:4},{value:"Example subsubsection 1 c II",id:"example-subsubsection-1-c-ii",level:4},{value:"Example subsubsection 1 c III",id:"example-subsubsection-1-c-iii",level:4},{value:"Example Section 2",id:"example-section-2",level:2},{value:"Example Subsection 2 a",id:"example-subsection-2-a",level:3},{value:"Example subsubsection 2 a I",id:"example-subsubsection-2-a-i",level:4},{value:"Example subsubsection 2 a II",id:"example-subsubsection-2-a-ii",level:4},{value:"Example subsubsection 2 a III",id:"example-subsubsection-2-a-iii",level:4},{value:"Example Subsection 2 b",id:"example-subsection-2-b",level:3},{value:"Example subsubsection 2 b I",id:"example-subsubsection-2-b-i",level:4},{value:"Example subsubsection 2 b II",id:"example-subsubsection-2-b-ii",level:4},{value:"Example subsubsection 2 b III",id:"example-subsubsection-2-b-iii",level:4},{value:"Example Subsection 2 c",id:"example-subsection-2-c",level:3},{value:"Example subsubsection 2 c I",id:"example-subsubsection-2-c-i",level:4},{value:"Example subsubsection 2 c II",id:"example-subsubsection-2-c-ii",level:4},{value:"Example subsubsection 2 c III",id:"example-subsubsection-2-c-iii",level:4},{value:"Example Section 3",id:"example-section-3",level:2},{value:"Example Subsection 3 a",id:"example-subsection-3-a",level:3},{value:"Example subsubsection 3 a I",id:"example-subsubsection-3-a-i",level:4},{value:"Example subsubsection 3 a II",id:"example-subsubsection-3-a-ii",level:4},{value:"Example subsubsection 3 a III",id:"example-subsubsection-3-a-iii",level:4},{value:"Example Subsection 3 b",id:"example-subsection-3-b",level:3},{value:"Example subsubsection 3 b I",id:"example-subsubsection-3-b-i",level:4},{value:"Example subsubsection 3 b II",id:"example-subsubsection-3-b-ii",level:4},{value:"Example subsubsection 3 b III",id:"example-subsubsection-3-b-iii",level:4},{value:"Example Subsection 3 c",id:"example-subsection-3-c",level:3},{value:"Example subsubsection 3 c I",id:"example-subsubsection-3-c-i",level:4},{value:"Example subsubsection 3 c II",id:"example-subsubsection-3-c-ii",level:4},{value:"Example subsubsection 3 c III",id:"example-subsubsection-3-c-iii",level:4}];function b(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...e.components},{Code:s}=n;return s||function(e,n){throw Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Code",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"headings-and-table-of-contents",children:"Headings and Table of contents"})}),"\n",(0,t.jsx)(n.h2,{id:"markdown-headings",children:"Markdown headings"}),"\n",(0,t.jsx)(n.p,{children:"You can use regular Markdown headings."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-md",children:"## Level 2 title\n\n### Level 3 title\n\n#### Level 4 title\n"})}),"\n",(0,t.jsx)(n.p,{children:"Each Markdown heading will appear as a table of contents entry."}),"\n",(0,t.jsx)(n.h3,{id:"heading-ids",children:"Heading IDs"}),"\n",(0,t.jsx)(n.p,{children:"Each heading has an ID that can be automatically generated or explicitly specified. Heading IDs allow you to link to a specific document heading in Markdown or JSX:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-md",children:"[link](#heading-id)\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-jsx",children:'<Link to="#heading-id">link</Link>\n'})}),"\n",(0,t.jsxs)(n.p,{children:["By default, Docusaurus will generate heading IDs for you, based on the heading text. For example, ",(0,t.jsx)(n.code,{children:"### Hello World"})," will have ID ",(0,t.jsx)(n.code,{children:"hello-world"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Generated IDs have ",(0,t.jsx)(n.strong,{children:"some limitations"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"The ID might not look good"}),"\n",(0,t.jsxs)(n.li,{children:["You might want to ",(0,t.jsx)(n.strong,{children:"change or translate"})," the text without updating the existing ID"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["A special Markdown syntax lets you set an ",(0,t.jsx)(n.strong,{children:"explicit heading id"}),":"]}),"\n",(0,t.jsx)(s,{language:"md",children:"### Hello World {#my-explicit-id}\n"}),"\n",(0,t.jsx)(n.admonition,{type:"tip",children:(0,t.jsxs)(n.p,{children:["Use the ",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.a,{href:"/docs/cli#docusaurus-write-heading-ids-sitedir",children:(0,t.jsx)(n.code,{children:"write-heading-ids"})})})," CLI command to add explicit IDs to all your Markdown documents."]})}),"\n",(0,t.jsx)(n.admonition,{title:"Avoid colliding IDs",type:"warning",children:(0,t.jsx)(n.p,{children:"Generated heading IDs will be guaranteed to be unique on each page, but if you use custom IDs, make sure each one appears exactly once on each page, or there will be two DOM elements with the same ID, which is invalid HTML semantics, and will lead to one heading being unlinkable."})}),"\n",(0,t.jsx)(n.h2,{id:"table-of-contents-heading-level",children:"Table of contents heading level"}),"\n",(0,t.jsx)(n.p,{children:"Each Markdown document displays a table of contents on the top-right corner. By default, this table only shows h2 and h3 headings, which should be sufficient for an overview of the page structure. In case you need to change the range of headings displayed, you can customize the minimum and maximum heading level \u2014 either per page or globally."}),"\n",(0,t.jsxs)(n.p,{children:["To set the heading level for a particular page, use the ",(0,t.jsx)(n.code,{children:"toc_min_heading_level"})," and ",(0,t.jsx)(n.code,{children:"toc_max_heading_level"})," front matter."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-md",metastring:'title="myDoc.md"',children:"---\n# Display h2 to h5 headings\ntoc_min_heading_level: 2\ntoc_max_heading_level: 5\n---\n"})}),"\n",(0,t.jsxs)(n.p,{children:["To set the heading level for ",(0,t.jsx)(n.em,{children:"all"})," pages, use the ",(0,t.jsx)(n.a,{href:"/docs/api/themes/configuration#table-of-contents",children:(0,t.jsx)(n.code,{children:"themeConfig.tableOfContents"})})," option."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n tableOfContents: {\n // highlight-start\n minHeadingLevel: 2,\n maxHeadingLevel: 5,\n // highlight-end\n },\n },\n};\n"})}),"\n",(0,t.jsx)(n.p,{children:"If you've set the options globally, you can still override them locally via front matter."}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"themeConfig"})," option would apply to all TOC on the site, including ",(0,t.jsx)(n.a,{href:"#inline-table-of-contents",children:"inline TOC"}),", but front matter options only affect the top-right TOC. You need to use the ",(0,t.jsx)(n.code,{children:"minHeadingLevel"})," and ",(0,t.jsx)(n.code,{children:"maxHeadingLevel"})," props to customize each ",(0,t.jsx)(n.code,{children:"<TOCInline />"})," component."]})}),"\n",(0,t.jsx)(n.h2,{id:"inline-table-of-contents",children:"Inline table of contents"}),"\n",(0,t.jsx)(n.p,{children:"It is also possible to display an inline table of contents directly inside a Markdown document, thanks to MDX."}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"toc"})," variable is available in any MDX document and contains all the headings of an MDX document. By default, only ",(0,t.jsx)(n.code,{children:"h2"})," and ",(0,t.jsx)(n.code,{children:"h3"})," headings are displayed in the TOC. You can change which heading levels are visible by setting ",(0,t.jsx)(n.code,{children:"minHeadingLevel"})," or ",(0,t.jsx)(n.code,{children:"maxHeadingLevel"})," for individual ",(0,t.jsx)(n.code,{children:"TOCInline"})," components."]}),"\n","\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-jsx",children:"import TOCInline from '@theme/TOCInline';\n\n<TOCInline toc={toc} />\n"})}),"\n","\n",(0,t.jsx)(a.A,{children:(0,t.jsx)(o.A,{toc:u})}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"toc"})," global is just a list of heading items:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-ts",children:"declare const toc: {\n value: string;\n id: string;\n level: number;\n}[];\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Note that the ",(0,t.jsx)(n.code,{children:"toc"})," global is a flat array, so you can easily cut out unwanted nodes or insert extra nodes, and create a new TOC tree."]}),"\n","\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-jsx",children:"import TOCInline from '@theme/TOCInline';\n\n<TOCInline\n // Only show h2 and h4 headings\n toc={toc.filter((node) => node.level === 2 || node.level === 4)}\n minHeadingLevel={2}\n // Show h4 headings in addition to the default h2 and h3 headings\n maxHeadingLevel={4}\n/>\n"})}),"\n",(0,t.jsx)(a.A,{children:(0,t.jsx)(o.A,{toc:u.filter(e=>2===e.level||4===e.level),minHeadingLevel:2,maxHeadingLevel:4})}),"\n",(0,t.jsx)(n.h2,{id:"customizing-table-of-contents-generation",children:"Customizing table of contents generation"}),"\n",(0,t.jsxs)(n.p,{children:["The table-of-contents is generated by parsing the Markdown source with a ",(0,t.jsx)(n.a,{href:"/docs/markdown-features/plugins",children:"Remark plugin"}),". There are known edge-cases where it generates false-positives and false-negatives."]}),"\n",(0,t.jsxs)(n.p,{children:["Markdown headings within hideable areas will still show up in the TOC. For example, headings within ",(0,t.jsx)(n.a,{href:"/docs/markdown-features/tabs",children:(0,t.jsx)(n.code,{children:"Tabs"})})," and ",(0,t.jsx)(n.a,{href:"/docs/markdown-features#details",children:(0,t.jsx)(n.code,{children:"details"})})," will not be excluded."]}),"\n",(0,t.jsx)(n.p,{children:"Non-Markdown headings will not show up in the TOC. This can be used to your advantage to tackle the aforementioned issue."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-md",children:'<details>\n<summary>Some details containing headings</summary>\n<h2 id="#heading-id">I\'m a heading that will not show up in the TOC</h2>\n\nSome content...\n\n</details>\n'})}),"\n",(0,t.jsxs)(n.p,{children:["The ability to ergonomically insert extra headings or ignore certain headings is a work-in-progress. If this feature is important to you, please report your use-case in ",(0,t.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/issues/6201",children:"this issue"}),"."]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.admonition,{type:"warning",children:(0,t.jsx)(n.p,{children:"Below is just some dummy content to have more table of contents items available on the current page."})}),"\n",(0,t.jsx)(n.h2,{id:"example-section-1",children:"Example Section 1"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h3,{id:"example-subsection-1-a",children:"Example Subsection 1 a"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-1-a-i",children:"Example subsubsection 1 a I"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-1-a-ii",children:"Example subsubsection 1 a II"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-1-a-iii",children:"Example subsubsection 1 a III"}),"\n",(0,t.jsx)(n.h3,{id:"example-subsection-1-b",children:"Example Subsection 1 b"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-1-b-i",children:"Example subsubsection 1 b I"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-1-b-ii",children:"Example subsubsection 1 b II"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-1-b-iii",children:"Example subsubsection 1 b III"}),"\n",(0,t.jsx)(n.h3,{id:"example-subsection-1-c",children:"Example Subsection 1 c"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-1-c-i",children:"Example subsubsection 1 c I"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-1-c-ii",children:"Example subsubsection 1 c II"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-1-c-iii",children:"Example subsubsection 1 c III"}),"\n",(0,t.jsx)(n.h2,{id:"example-section-2",children:"Example Section 2"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h3,{id:"example-subsection-2-a",children:"Example Subsection 2 a"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-2-a-i",children:"Example subsubsection 2 a I"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-2-a-ii",children:"Example subsubsection 2 a II"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-2-a-iii",children:"Example subsubsection 2 a III"}),"\n",(0,t.jsx)(n.h3,{id:"example-subsection-2-b",children:"Example Subsection 2 b"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-2-b-i",children:"Example subsubsection 2 b I"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-2-b-ii",children:"Example subsubsection 2 b II"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-2-b-iii",children:"Example subsubsection 2 b III"}),"\n",(0,t.jsx)(n.h3,{id:"example-subsection-2-c",children:"Example Subsection 2 c"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-2-c-i",children:"Example subsubsection 2 c I"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-2-c-ii",children:"Example subsubsection 2 c II"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-2-c-iii",children:"Example subsubsection 2 c III"}),"\n",(0,t.jsx)(n.h2,{id:"example-section-3",children:"Example Section 3"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h3,{id:"example-subsection-3-a",children:"Example Subsection 3 a"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-3-a-i",children:"Example subsubsection 3 a I"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-3-a-ii",children:"Example subsubsection 3 a II"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-3-a-iii",children:"Example subsubsection 3 a III"}),"\n",(0,t.jsx)(n.h3,{id:"example-subsection-3-b",children:"Example Subsection 3 b"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-3-b-i",children:"Example subsubsection 3 b I"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-3-b-ii",children:"Example subsubsection 3 b II"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-3-b-iii",children:"Example subsubsection 3 b III"}),"\n",(0,t.jsx)(n.h3,{id:"example-subsection-3-c",children:"Example Subsection 3 c"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-3-c-i",children:"Example subsubsection 3 c I"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-3-c-ii",children:"Example subsubsection 3 c II"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-3-c-iii",children:"Example subsubsection 3 c III"})]})}function h(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(b,{...e})}):b(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>a,x:()=>o});var i=s(63696);let t={},l=i.createContext(t);function a(e){let n=i.useContext(l);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),i.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/16f6cad8.8515c8d1.js b/assets/js/16f6cad8.8515c8d1.js deleted file mode 100644 index 32ec369ecd..0000000000 --- a/assets/js/16f6cad8.8515c8d1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[93958],{32738:(e,n,s)=>{s.d(n,{A:()=>l});var i=s(62540);s(63696);var t=s(46733);function l({toc:e,minHeadingLevel:n,maxHeadingLevel:s}){return(0,i.jsx)("div",{className:"tableOfContentsInline_2sru",children:(0,i.jsx)(t.A,{toc:e,minHeadingLevel:n,maxHeadingLevel:s,className:"table-of-contents",linkClassName:null})})}},46733:(e,n,s)=>{s.d(n,{A:()=>u});var i=s(62540),t=s(63696),l=s(25436);function a(e){for(var n=1;n<arguments.length;n++){var s=null!=arguments[n]?arguments[n]:{},i=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(s).filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable}))),i.forEach(function(n){var i;i=s[n],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return e}function o(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);s.push.apply(s,i)}return s})(Object(n)).forEach(function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(n,s))}),e}function c(e){let n=e.getBoundingClientRect();return n.top===n.bottom?c(e.parentNode):n}var r=s(36372);let d=t.memo(function e({toc:n,className:s,linkClassName:t,isChild:l}){return n.length?(0,i.jsx)("ul",{className:l?void 0:s,children:n.map(n=>(0,i.jsxs)("li",{children:[(0,i.jsx)(r.A,{to:`#${n.id}`,className:null!=t?t:void 0,dangerouslySetInnerHTML:{__html:n.value}}),(0,i.jsx)(e,{isChild:!0,toc:n.children,className:s,linkClassName:t})]},n.id))}):null});function u(e){var{toc:n,className:s="table-of-contents table-of-contents__left-border",linkClassName:r="table-of-contents__link",linkActiveClassName:u,minHeadingLevel:b,maxHeadingLevel:h}=e,m=function(e,n){if(null==e)return{};var s,i,t=function(e,n){if(null==e)return{};var s,i,t={},l=Object.keys(e);for(i=0;i<l.length;i++)s=l[i],n.indexOf(s)>=0||(t[s]=e[s]);return t}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(i=0;i<l.length;i++)s=l[i],!(n.indexOf(s)>=0)&&Object.prototype.propertyIsEnumerable.call(e,s)&&(t[s]=e[s])}return t}(e,["toc","className","linkClassName","linkActiveClassName","minHeadingLevel","maxHeadingLevel"]);let p=(0,l.p)(),x=null!=b?b:p.tableOfContents.minHeadingLevel,g=null!=h?h:p.tableOfContents.maxHeadingLevel,f=function({toc:e,minHeadingLevel:n,maxHeadingLevel:s}){return(0,t.useMemo)(()=>(function e({toc:n,minHeadingLevel:s,maxHeadingLevel:i}){return n.flatMap(n=>{let t=e({toc:n.children,minHeadingLevel:s,maxHeadingLevel:i});return n.level>=s&&n.level<=i?[o(a({},n),{children:t})]:t})})({toc:function(e){let n=e.map(e=>o(a({},e),{parentIndex:-1,children:[]})),s=Array(7).fill(-1);n.forEach((e,n)=>{let i=s.slice(2,e.level);e.parentIndex=Math.max(...i),s[e.level]=n});let i=[];return n.forEach(e=>{let{parentIndex:s}=e,t=function(e,n){if(null==e)return{};var s,i,t=function(e,n){if(null==e)return{};var s,i,t={},l=Object.keys(e);for(i=0;i<l.length;i++)s=l[i],n.indexOf(s)>=0||(t[s]=e[s]);return t}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(i=0;i<l.length;i++)s=l[i],!(n.indexOf(s)>=0)&&Object.prototype.propertyIsEnumerable.call(e,s)&&(t[s]=e[s])}return t}(e,["parentIndex"]);s>=0?n[s].children.push(t):i.push(t)}),i}(e),minHeadingLevel:n,maxHeadingLevel:s}),[e,n,s])}({toc:n,minHeadingLevel:x,maxHeadingLevel:g});return!function(e){let n=(0,t.useRef)(void 0),s=function(){let e=(0,t.useRef)(0),{navbar:{hideOnScroll:n}}=(0,l.p)();return(0,t.useEffect)(()=>{e.current=n?0:document.querySelector(".navbar").clientHeight},[n]),e}();(0,t.useEffect)(()=>{if(!e)return()=>{};let{linkClassName:i,linkActiveClassName:t,minHeadingLevel:l,maxHeadingLevel:a}=e;function o(){let e=Array.from(document.getElementsByClassName(i)),o=function(e,{anchorTopOffset:n}){var s,i,t;let l=e.find(e=>c(e).top>=n);return l?(t=c(l)).top>0&&t.bottom<window.innerHeight/2?l:null!==(s=e[e.indexOf(l)-1])&&void 0!==s?s:null:null!==(i=e[e.length-1])&&void 0!==i?i:null}(function({minHeadingLevel:e,maxHeadingLevel:n}){let s=[];for(let i=e;i<=n;i+=1)s.push(`h${i}.anchor`);return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:l,maxHeadingLevel:a}),{anchorTopOffset:s.current}),r=e.find(e=>o&&o.id===decodeURIComponent(e.href.substring(e.href.indexOf("#")+1)));e.forEach(e=>{e===r?(n.current&&n.current!==e&&n.current.classList.remove(t),e.classList.add(t),n.current=e):e.classList.remove(t)})}return document.addEventListener("scroll",o),document.addEventListener("resize",o),o(),()=>{document.removeEventListener("scroll",o),document.removeEventListener("resize",o)}},[e,s])}((0,t.useMemo)(()=>{if(r&&u)return{linkClassName:r,linkActiveClassName:u,minHeadingLevel:x,maxHeadingLevel:g}},[r,u,x,g])),(0,i.jsx)(d,function(e){for(var n=1;n<arguments.length;n++){var s=null!=arguments[n]?arguments[n]:{},i=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(s).filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable}))),i.forEach(function(n){var i;i=s[n],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return e}({toc:f,className:s,linkClassName:r},m))}},70361:(e,n,s)=>{s.d(n,{A:()=>o});var i=s(62540);s(63696);var t=s(11750);let l="dot_giz1",a="bar_rrRL";function o({children:e,minHeight:n,url:s="http://localhost:3000",style:o,bodyStyle:c}){var r,d;return(0,i.jsxs)("div",{className:"browserWindow_my1Q",style:(r=function(e){for(var n=1;n<arguments.length;n++){var s=null!=arguments[n]?arguments[n]:{},i=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(s).filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable}))),i.forEach(function(n){var i;i=s[n],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return e}({},o),d=d={minHeight:n},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(d)):(function(e,n){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);s.push.apply(s,i)}return s})(Object(d)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(d,e))}),r),children:[(0,i.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,i.jsxs)("div",{className:"buttons_uHc7",children:[(0,i.jsx)("span",{className:l,style:{background:"#f25f58"}}),(0,i.jsx)("span",{className:l,style:{background:"#fbbe3c"}}),(0,i.jsx)("span",{className:l,style:{background:"#58cb42"}})]}),(0,i.jsx)("div",{className:(0,t.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:s}),(0,i.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,i.jsxs)("div",{children:[(0,i.jsx)("span",{className:a}),(0,i.jsx)("span",{className:a}),(0,i.jsx)("span",{className:a})]})})]}),(0,i.jsx)("div",{className:"browserWindowBody_Idgs",style:c,children:e})]})}},66511:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>h,frontMatter:()=>c,metadata:()=>i,toc:()=>u});let i=JSON.parse('{"id":"guides/markdown-features/toc","title":"Headings and Table of contents","description":"Customizing headings and table-of-contents in Markdown","source":"@site/docs/guides/markdown-features/markdown-features-toc.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/toc","permalink":"/docs/markdown-features/toc","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-toc.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"toc","description":"Customizing headings and table-of-contents in Markdown","slug":"/markdown-features/toc"},"sidebar":"docs","previous":{"title":"Admonitions","permalink":"/docs/markdown-features/admonitions"},"next":{"title":"Assets","permalink":"/docs/markdown-features/assets"}}');var t=s(62540),l=s(43023),a=s(70361),o=s(32738);let c={id:"toc",description:"Customizing headings and table-of-contents in Markdown",slug:"/markdown-features/toc"},r="Headings and Table of contents",d={},u=[{value:"Markdown headings",id:"markdown-headings",level:2},{value:"Heading IDs",id:"heading-ids",level:3},{value:"Table of contents heading level",id:"table-of-contents-heading-level",level:2},{value:"Inline table of contents",id:"inline-table-of-contents",level:2},{value:"Customizing table of contents generation",id:"customizing-table-of-contents-generation",level:2},{value:"Example Section 1",id:"example-section-1",level:2},{value:"Example Subsection 1 a",id:"example-subsection-1-a",level:3},{value:"Example subsubsection 1 a I",id:"example-subsubsection-1-a-i",level:4},{value:"Example subsubsection 1 a II",id:"example-subsubsection-1-a-ii",level:4},{value:"Example subsubsection 1 a III",id:"example-subsubsection-1-a-iii",level:4},{value:"Example Subsection 1 b",id:"example-subsection-1-b",level:3},{value:"Example subsubsection 1 b I",id:"example-subsubsection-1-b-i",level:4},{value:"Example subsubsection 1 b II",id:"example-subsubsection-1-b-ii",level:4},{value:"Example subsubsection 1 b III",id:"example-subsubsection-1-b-iii",level:4},{value:"Example Subsection 1 c",id:"example-subsection-1-c",level:3},{value:"Example subsubsection 1 c I",id:"example-subsubsection-1-c-i",level:4},{value:"Example subsubsection 1 c II",id:"example-subsubsection-1-c-ii",level:4},{value:"Example subsubsection 1 c III",id:"example-subsubsection-1-c-iii",level:4},{value:"Example Section 2",id:"example-section-2",level:2},{value:"Example Subsection 2 a",id:"example-subsection-2-a",level:3},{value:"Example subsubsection 2 a I",id:"example-subsubsection-2-a-i",level:4},{value:"Example subsubsection 2 a II",id:"example-subsubsection-2-a-ii",level:4},{value:"Example subsubsection 2 a III",id:"example-subsubsection-2-a-iii",level:4},{value:"Example Subsection 2 b",id:"example-subsection-2-b",level:3},{value:"Example subsubsection 2 b I",id:"example-subsubsection-2-b-i",level:4},{value:"Example subsubsection 2 b II",id:"example-subsubsection-2-b-ii",level:4},{value:"Example subsubsection 2 b III",id:"example-subsubsection-2-b-iii",level:4},{value:"Example Subsection 2 c",id:"example-subsection-2-c",level:3},{value:"Example subsubsection 2 c I",id:"example-subsubsection-2-c-i",level:4},{value:"Example subsubsection 2 c II",id:"example-subsubsection-2-c-ii",level:4},{value:"Example subsubsection 2 c III",id:"example-subsubsection-2-c-iii",level:4},{value:"Example Section 3",id:"example-section-3",level:2},{value:"Example Subsection 3 a",id:"example-subsection-3-a",level:3},{value:"Example subsubsection 3 a I",id:"example-subsubsection-3-a-i",level:4},{value:"Example subsubsection 3 a II",id:"example-subsubsection-3-a-ii",level:4},{value:"Example subsubsection 3 a III",id:"example-subsubsection-3-a-iii",level:4},{value:"Example Subsection 3 b",id:"example-subsection-3-b",level:3},{value:"Example subsubsection 3 b I",id:"example-subsubsection-3-b-i",level:4},{value:"Example subsubsection 3 b II",id:"example-subsubsection-3-b-ii",level:4},{value:"Example subsubsection 3 b III",id:"example-subsubsection-3-b-iii",level:4},{value:"Example Subsection 3 c",id:"example-subsection-3-c",level:3},{value:"Example subsubsection 3 c I",id:"example-subsubsection-3-c-i",level:4},{value:"Example subsubsection 3 c II",id:"example-subsubsection-3-c-ii",level:4},{value:"Example subsubsection 3 c III",id:"example-subsubsection-3-c-iii",level:4}];function b(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...e.components},{Code:s}=n;return s||function(e,n){throw Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Code",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"headings-and-table-of-contents",children:"Headings and Table of contents"})}),"\n",(0,t.jsx)(n.h2,{id:"markdown-headings",children:"Markdown headings"}),"\n",(0,t.jsx)(n.p,{children:"You can use regular Markdown headings."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-md",children:"## Level 2 title\n\n### Level 3 title\n\n#### Level 4 title\n"})}),"\n",(0,t.jsx)(n.p,{children:"Each Markdown heading will appear as a table of contents entry."}),"\n",(0,t.jsx)(n.h3,{id:"heading-ids",children:"Heading IDs"}),"\n",(0,t.jsx)(n.p,{children:"Each heading has an ID that can be automatically generated or explicitly specified. Heading IDs allow you to link to a specific document heading in Markdown or JSX:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-md",children:"[link](#heading-id)\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-jsx",children:'<Link to="#heading-id">link</Link>\n'})}),"\n",(0,t.jsxs)(n.p,{children:["By default, Docusaurus will generate heading IDs for you, based on the heading text. For example, ",(0,t.jsx)(n.code,{children:"### Hello World"})," will have ID ",(0,t.jsx)(n.code,{children:"hello-world"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Generated IDs have ",(0,t.jsx)(n.strong,{children:"some limitations"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"The ID might not look good"}),"\n",(0,t.jsxs)(n.li,{children:["You might want to ",(0,t.jsx)(n.strong,{children:"change or translate"})," the text without updating the existing ID"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["A special Markdown syntax lets you set an ",(0,t.jsx)(n.strong,{children:"explicit heading id"}),":"]}),"\n",(0,t.jsx)(s,{language:"md",children:"### Hello World {#my-explicit-id}\n"}),"\n",(0,t.jsx)(n.admonition,{type:"tip",children:(0,t.jsxs)(n.p,{children:["Use the ",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.a,{href:"/docs/cli#docusaurus-write-heading-ids-sitedir",children:(0,t.jsx)(n.code,{children:"write-heading-ids"})})})," CLI command to add explicit IDs to all your Markdown documents."]})}),"\n",(0,t.jsx)(n.admonition,{title:"Avoid colliding IDs",type:"warning",children:(0,t.jsx)(n.p,{children:"Generated heading IDs will be guaranteed to be unique on each page, but if you use custom IDs, make sure each one appears exactly once on each page, or there will be two DOM elements with the same ID, which is invalid HTML semantics, and will lead to one heading being unlinkable."})}),"\n",(0,t.jsx)(n.h2,{id:"table-of-contents-heading-level",children:"Table of contents heading level"}),"\n",(0,t.jsx)(n.p,{children:"Each Markdown document displays a table of contents on the top-right corner. By default, this table only shows h2 and h3 headings, which should be sufficient for an overview of the page structure. In case you need to change the range of headings displayed, you can customize the minimum and maximum heading level \u2014 either per page or globally."}),"\n",(0,t.jsxs)(n.p,{children:["To set the heading level for a particular page, use the ",(0,t.jsx)(n.code,{children:"toc_min_heading_level"})," and ",(0,t.jsx)(n.code,{children:"toc_max_heading_level"})," front matter."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-md",metastring:'title="myDoc.md"',children:"---\n# Display h2 to h5 headings\ntoc_min_heading_level: 2\ntoc_max_heading_level: 5\n---\n"})}),"\n",(0,t.jsxs)(n.p,{children:["To set the heading level for ",(0,t.jsx)(n.em,{children:"all"})," pages, use the ",(0,t.jsx)(n.a,{href:"/docs/api/themes/configuration#table-of-contents",children:(0,t.jsx)(n.code,{children:"themeConfig.tableOfContents"})})," option."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n tableOfContents: {\n // highlight-start\n minHeadingLevel: 2,\n maxHeadingLevel: 5,\n // highlight-end\n },\n },\n};\n"})}),"\n",(0,t.jsx)(n.p,{children:"If you've set the options globally, you can still override them locally via front matter."}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"themeConfig"})," option would apply to all TOC on the site, including ",(0,t.jsx)(n.a,{href:"#inline-table-of-contents",children:"inline TOC"}),", but front matter options only affect the top-right TOC. You need to use the ",(0,t.jsx)(n.code,{children:"minHeadingLevel"})," and ",(0,t.jsx)(n.code,{children:"maxHeadingLevel"})," props to customize each ",(0,t.jsx)(n.code,{children:"<TOCInline />"})," component."]})}),"\n",(0,t.jsx)(n.h2,{id:"inline-table-of-contents",children:"Inline table of contents"}),"\n",(0,t.jsx)(n.p,{children:"It is also possible to display an inline table of contents directly inside a Markdown document, thanks to MDX."}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"toc"})," variable is available in any MDX document and contains all the headings of an MDX document. By default, only ",(0,t.jsx)(n.code,{children:"h2"})," and ",(0,t.jsx)(n.code,{children:"h3"})," headings are displayed in the TOC. You can change which heading levels are visible by setting ",(0,t.jsx)(n.code,{children:"minHeadingLevel"})," or ",(0,t.jsx)(n.code,{children:"maxHeadingLevel"})," for individual ",(0,t.jsx)(n.code,{children:"TOCInline"})," components."]}),"\n","\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-jsx",children:"import TOCInline from '@theme/TOCInline';\n\n<TOCInline toc={toc} />\n"})}),"\n","\n",(0,t.jsx)(a.A,{children:(0,t.jsx)(o.A,{toc:u})}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"toc"})," global is just a list of heading items:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-ts",children:"declare const toc: {\n value: string;\n id: string;\n level: number;\n}[];\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Note that the ",(0,t.jsx)(n.code,{children:"toc"})," global is a flat array, so you can easily cut out unwanted nodes or insert extra nodes, and create a new TOC tree."]}),"\n","\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-jsx",children:"import TOCInline from '@theme/TOCInline';\n\n<TOCInline\n // Only show h2 and h4 headings\n toc={toc.filter((node) => node.level === 2 || node.level === 4)}\n minHeadingLevel={2}\n // Show h4 headings in addition to the default h2 and h3 headings\n maxHeadingLevel={4}\n/>\n"})}),"\n",(0,t.jsx)(a.A,{children:(0,t.jsx)(o.A,{toc:u.filter(e=>2===e.level||4===e.level),minHeadingLevel:2,maxHeadingLevel:4})}),"\n",(0,t.jsx)(n.h2,{id:"customizing-table-of-contents-generation",children:"Customizing table of contents generation"}),"\n",(0,t.jsxs)(n.p,{children:["The table-of-contents is generated by parsing the Markdown source with a ",(0,t.jsx)(n.a,{href:"/docs/markdown-features/plugins",children:"Remark plugin"}),". There are known edge-cases where it generates false-positives and false-negatives."]}),"\n",(0,t.jsxs)(n.p,{children:["Markdown headings within hideable areas will still show up in the TOC. For example, headings within ",(0,t.jsx)(n.a,{href:"/docs/markdown-features/tabs",children:(0,t.jsx)(n.code,{children:"Tabs"})})," and ",(0,t.jsx)(n.a,{href:"/docs/markdown-features#details",children:(0,t.jsx)(n.code,{children:"details"})})," will not be excluded."]}),"\n",(0,t.jsx)(n.p,{children:"Non-Markdown headings will not show up in the TOC. This can be used to your advantage to tackle the aforementioned issue."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-md",children:'<details>\n<summary>Some details containing headings</summary>\n<h2 id="#heading-id">I\'m a heading that will not show up in the TOC</h2>\n\nSome content...\n\n</details>\n'})}),"\n",(0,t.jsxs)(n.p,{children:["The ability to ergonomically insert extra headings or ignore certain headings is a work-in-progress. If this feature is important to you, please report your use-case in ",(0,t.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/issues/6201",children:"this issue"}),"."]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.admonition,{type:"warning",children:(0,t.jsx)(n.p,{children:"Below is just some dummy content to have more table of contents items available on the current page."})}),"\n",(0,t.jsx)(n.h2,{id:"example-section-1",children:"Example Section 1"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h3,{id:"example-subsection-1-a",children:"Example Subsection 1 a"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-1-a-i",children:"Example subsubsection 1 a I"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-1-a-ii",children:"Example subsubsection 1 a II"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-1-a-iii",children:"Example subsubsection 1 a III"}),"\n",(0,t.jsx)(n.h3,{id:"example-subsection-1-b",children:"Example Subsection 1 b"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-1-b-i",children:"Example subsubsection 1 b I"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-1-b-ii",children:"Example subsubsection 1 b II"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-1-b-iii",children:"Example subsubsection 1 b III"}),"\n",(0,t.jsx)(n.h3,{id:"example-subsection-1-c",children:"Example Subsection 1 c"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-1-c-i",children:"Example subsubsection 1 c I"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-1-c-ii",children:"Example subsubsection 1 c II"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-1-c-iii",children:"Example subsubsection 1 c III"}),"\n",(0,t.jsx)(n.h2,{id:"example-section-2",children:"Example Section 2"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h3,{id:"example-subsection-2-a",children:"Example Subsection 2 a"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-2-a-i",children:"Example subsubsection 2 a I"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-2-a-ii",children:"Example subsubsection 2 a II"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-2-a-iii",children:"Example subsubsection 2 a III"}),"\n",(0,t.jsx)(n.h3,{id:"example-subsection-2-b",children:"Example Subsection 2 b"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-2-b-i",children:"Example subsubsection 2 b I"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-2-b-ii",children:"Example subsubsection 2 b II"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-2-b-iii",children:"Example subsubsection 2 b III"}),"\n",(0,t.jsx)(n.h3,{id:"example-subsection-2-c",children:"Example Subsection 2 c"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-2-c-i",children:"Example subsubsection 2 c I"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-2-c-ii",children:"Example subsubsection 2 c II"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-2-c-iii",children:"Example subsubsection 2 c III"}),"\n",(0,t.jsx)(n.h2,{id:"example-section-3",children:"Example Section 3"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h3,{id:"example-subsection-3-a",children:"Example Subsection 3 a"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-3-a-i",children:"Example subsubsection 3 a I"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-3-a-ii",children:"Example subsubsection 3 a II"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-3-a-iii",children:"Example subsubsection 3 a III"}),"\n",(0,t.jsx)(n.h3,{id:"example-subsection-3-b",children:"Example Subsection 3 b"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-3-b-i",children:"Example subsubsection 3 b I"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-3-b-ii",children:"Example subsubsection 3 b II"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-3-b-iii",children:"Example subsubsection 3 b III"}),"\n",(0,t.jsx)(n.h3,{id:"example-subsection-3-c",children:"Example Subsection 3 c"}),"\n",(0,t.jsx)(n.p,{children:"Lorem ipsum"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-3-c-i",children:"Example subsubsection 3 c I"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-3-c-ii",children:"Example subsubsection 3 c II"}),"\n",(0,t.jsx)(n.h4,{id:"example-subsubsection-3-c-iii",children:"Example subsubsection 3 c III"})]})}function h(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(b,{...e})}):b(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>a,x:()=>o});var i=s(63696);let t={},l=i.createContext(t);function a(e){let n=i.useContext(l);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),i.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/16f8f4fb.a09e1d87.js b/assets/js/16f8f4fb.8edd8fa2.js similarity index 98% rename from assets/js/16f8f4fb.a09e1d87.js rename to assets/js/16f8f4fb.8edd8fa2.js index 2104c1de7a..0a2a0a29b6 100644 --- a/assets/js/16f8f4fb.a09e1d87.js +++ b/assets/js/16f8f4fb.8edd8fa2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[81838],{59261:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/social-card-8ca15c1adaeb77ca302178575136a0b6.png"},18764:(e,s,t)=>{t.d(s,{A:()=>a});var n=t(62540);t(63696);var r=t(70361);function a({url:e}){return(0,n.jsx)("div",{style:{padding:10},children:(0,n.jsx)(r.A,{url:e,style:{minWidth:"min(100%,45vw)",width:800,maxWidth:"100%",overflow:"hidden"},bodyStyle:{padding:0},children:(0,n.jsx)("iframe",{src:e,title:e,style:{display:"block",width:"100%",height:300}})})})}},70361:(e,s,t)=>{t.d(s,{A:()=>i});var n=t(62540);t(63696);var r=t(11750);let a="dot_giz1",o="bar_rrRL";function i({children:e,minHeight:s,url:t="http://localhost:3000",style:i,bodyStyle:l}){var c,d;return(0,n.jsxs)("div",{className:"browserWindow_my1Q",style:(c=function(e){for(var s=1;s<arguments.length;s++){var t=null!=arguments[s]?arguments[s]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(s){var n;n=t[s],s in e?Object.defineProperty(e,s,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[s]=n})}return e}({},i),d=d={minHeight:s},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(d)):(function(e,s){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(d)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(d,e))}),c),children:[(0,n.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,n.jsxs)("div",{className:"buttons_uHc7",children:[(0,n.jsx)("span",{className:a,style:{background:"#f25f58"}}),(0,n.jsx)("span",{className:a,style:{background:"#fbbe3c"}}),(0,n.jsx)("span",{className:a,style:{background:"#58cb42"}})]}),(0,n.jsx)("div",{className:(0,r.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:t}),(0,n.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:o}),(0,n.jsx)("span",{className:o}),(0,n.jsx)("span",{className:o})]})})]}),(0,n.jsx)("div",{className:"browserWindowBody_Idgs",style:l,children:e})]})}},43730:(e,s,t)=>{t.d(s,{A:()=>a});var n=t(62540),r=t(63696);function a({children:e="Boom!",message:s="Boom!\nSomething bad happened, but you can try again!",cause:t}){let[a,o]=(0,r.useState)(!1);if(a)throw Error(s,{cause:t?Error(t):void 0});return(0,n.jsx)("button",{className:"button button--danger",type:"button",onClick:()=>o(!0),children:e})}},57520:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/social-card-8ca15c1adaeb77ca302178575136a0b6.png"},81093:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>n,toc:()=>c});var n=t(22344),r=t(62540),a=t(43023);t(70361),t(18764),t(43730);let o={title:"Docusaurus 3.2",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2024-03-29T00:00:00.000Z")},i=void 0,l={image:t(59261).A,authorsImageUrls:[void 0]},c=[{value:"Highlights",id:"highlights",level:2},{value:"Faster builds",id:"faster-builds",level:3},{value:"Faster Dev Server",id:"faster-dev-server",level:3},{value:"MDX partials table-of-contents",id:"mdx-partials-table-of-contents",level:3},{value:"Blog improvements",id:"blog-improvements",level:3},{value:"Sitemap lastmod",id:"sitemap-lastmod",level:3},{value:"Other changes",id:"other-changes",level:2}];function d(e){let s={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components},{Details:n}=s;return n||function(e,s){throw Error("Expected "+(s?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:["We are happy to announce ",(0,r.jsx)(s.strong,{children:"Docusaurus 3.2"}),"."]}),"\n",(0,r.jsxs)(s.p,{children:["The upgrade should be easy: as explained in our ",(0,r.jsx)(s.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,r.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.img,{alt:"Docusaurus blog post social card",src:t(57520).A+"",width:"1200",height:"600"})}),"\n","\n",(0,r.jsx)(s.h2,{id:"highlights",children:"Highlights"}),"\n",(0,r.jsx)(s.h3,{id:"faster-builds",children:"Faster builds"}),"\n",(0,r.jsx)(s.p,{children:"We worked hard to reduce the time it takes to build a Docusaurus site in production mode."}),"\n",(0,r.jsx)(s.p,{children:"Between v3.1.0 and v3.2.0, several changes have been made, leading to significantly faster production builds for many sites."}),"\n",(0,r.jsxs)(s.p,{children:["Let's take an example. Our benchmark on the ",(0,r.jsx)(s.a,{href:"https://github.com/facebook/react-native-website/pull/4072",children:"React Native website upgrading to v3.2"})," reports the following results:"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"\u{1F525} Cold builds: 95s \u27A1\uFE0F 66s (~30% faster)"}),"\n",(0,r.jsx)(s.li,{children:"\u{1F525} Incremental builds: 55s \u27A1\uFE0F 22s (~60% faster)"}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"The results will vary depending on your site's topology and the options you turned on, but we expect the largest sites will see the most significant improvements."}),"\n",(0,r.jsxs)(s.p,{children:["Note that this is only the beginning, and Docusaurus performance can still be significantly improved, notably the bundling time and the memory consumption. Track our ",(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/4765",children:"performance issue"})," for upcoming improvements."]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"What is the difference between a cold build and an incremental build?"}),(0,r.jsxs)(s.p,{children:["A cold build is when the Docusaurus caches are empty, generally after running ",(0,r.jsx)(s.code,{children:"docusaurus clear"}),"."]}),(0,r.jsxs)(s.p,{children:["An incremental build happens when you run another time the ",(0,r.jsx)(s.code,{children:"docusaurus build"}),' command. Docusaurus automatically tries to "re-use" computations from former builds to make subsequent builds faster. In practice it\'s based on ',(0,r.jsx)(s.a,{href:"https://webpack.js.org/guides/build-performance/#persistent-cache",children:"Webpack persistent caching"}),". To enable incremental builds on your CI server, you can persist the ",(0,r.jsx)(s.code,{children:"node_modules/.cache"})," folder across builds."]})]}),"\n",(0,r.jsx)(s.h3,{id:"faster-dev-server",children:"Faster Dev Server"}),"\n",(0,r.jsx)(s.p,{children:"We also worked on improving the performance of the dev server, so that you can get a faster feedback when editing Markdown/MDX files."}),"\n",(0,r.jsx)(s.p,{children:"The way we initially implemented content reloading wasn't great. For example, editing a blog post file would also trigger a useless reload of the unrelated docs plugin. From now on, when editing a plugin's content, only that plugin will reload. It's hard to measure precisely the impact of this change, but I estimate edits should appear in your browser at least 50% faster \u{1F525}."}),"\n",(0,r.jsx)(s.p,{children:"We plan to keep improving the speed of our dev server, with even more granular hot reloads, ensuring we don't run useless computations that would always keep giving the same result."}),"\n",(0,r.jsx)(s.h3,{id:"mdx-partials-table-of-contents",children:"MDX partials table-of-contents"}),"\n",(0,r.jsxs)(s.p,{children:["With ",(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9684",children:"#9684"}),", Docusaurus is now able to render headings coming from an imported partial into the table-of-contents."]}),"\n",(0,r.jsxs)(s.p,{children:["Docusaurus and MDX allows you to ",(0,r.jsx)(s.a,{href:"/docs/markdown-features/react#importing-markdown",children:"import one Markdown file into another"}),'. We usually call the imported Markdown file a "partial", and use the ',(0,r.jsx)(s.code,{children:"_"})," prefix so that this file does not lead to the creation of a new page."]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-md",metastring:'title="myDoc.mdx"',children:"# My Doc\n\n## Doc heading\n\nContent is imported from another MDX file:\n\nimport ImportedDoc from './\\_importedDoc.mdx';\n\n<ImportedDoc />\n"})}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-md",metastring:'title="_myPartial.mdx"',children:"## Partial heading\n\nSome paragraph\n"})}),"\n",(0,r.jsxs)(s.p,{children:["Previously, the heading ",(0,r.jsx)(s.code,{children:"Partial heading"})," did not appear in the table-of-contents, but now it will!"]}),"\n",(0,r.jsx)(s.h3,{id:"blog-improvements",children:"Blog improvements"}),"\n",(0,r.jsx)(s.p,{children:"We improved the blog plugin with several new options to make it even more powerful and flexible:"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9912",children:"#9912"}),": you can now display the last update time and author of a blog post, a feature the docs plugin already had."]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9886",children:"#9886"}),": a new ",(0,r.jsx)(s.code,{children:"processBlogPosts"})," option allow you to filter/transform/sort blog posts."]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9838",children:"#9838"}),": a new ",(0,r.jsx)(s.code,{children:"pageBasePath"})," option allows you to customize the blog pagination URL segment (",(0,r.jsx)(s.code,{children:"/blog/page/2"}),")"]}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"sitemap-lastmod",children:"Sitemap lastmod"}),"\n",(0,r.jsxs)(s.p,{children:["With ",(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9954",children:"#9954"}),", the sitemap plugin has a new ",(0,r.jsx)(s.code,{children:"lastmod"})," option that can now emit a ",(0,r.jsx)(s.code,{children:"<lastmod>"})," tag on the XML. The value is read from the Git history by default, but can be overridden with docs and blog ",(0,r.jsx)(s.code,{children:"last_update"})," front matter."]}),"\n",(0,r.jsxs)(s.p,{children:["We also made it possible to opt-out of emitting ",(0,r.jsx)(s.code,{children:"<priority>"})," and ",(0,r.jsx)(s.code,{children:"<frequency>"})," tags, which are generally ignored by crawlers (notably ",(0,r.jsx)(s.a,{href:"https://developers.google.com/search/blog/2023/06/sitemaps-lastmod-ping",children:"Google"}),")."]}),"\n",(0,r.jsx)(s.p,{children:"We recommend using the following sitemap plugin config, that will become the default in Docusaurus V4:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-js",children:"{\n lastmod: 'date',\n priority: null,\n changefreq: null,\n}\n"})}),"\n",(0,r.jsx)(s.h2,{id:"other-changes",children:"Other changes"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9687",children:"#9687"}),": new Vercel Analytics plugin"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9681",children:"#9681"})," and ",(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9442",children:"#9442"}),": ",(0,r.jsx)(s.code,{children:"docusaurus swizzle"})," and ",(0,r.jsx)(s.code,{children:"create-docusaurus"})," CLIs now ask users if they prefer to use TypeScript"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9928",children:"#9928"}),": new Icelandic translation"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9931",children:"#9928"}),": new ",(0,r.jsx)(s.code,{children:"allContentLoaded"})," plugin lifecycle (experimental)"]}),"\n"]}),"\n",(0,r.jsxs)(s.p,{children:["Check the ",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.a,{href:"/changelog/3.2.0",children:"3.2.0 changelog entry"})})," for an exhaustive list of changes."]})]})}function u(e={}){let{wrapper:s}={...(0,a.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>i});var n=t(63696);let r={},a=n.createContext(r);function o(e){let s=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),n.createElement(a.Provider,{value:s},e.children)}},22344:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/3.2","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.2/index.mdx","source":"@site/blog/releases/3.2/index.mdx","title":"Docusaurus 3.2","description":"We are happy to announce Docusaurus 3.2.","date":"2024-03-29T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.475,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.2","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-03-29T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 3.3","permalink":"/blog/releases/3.3"},"nextItem":{"title":"Docusaurus 3.1","permalink":"/blog/releases/3.1"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[81838],{59261:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/social-card-8ca15c1adaeb77ca302178575136a0b6.png"},18764:(e,s,t)=>{t.d(s,{A:()=>a});var n=t(62540);t(63696);var r=t(70361);function a({url:e}){return(0,n.jsx)("div",{style:{padding:10},children:(0,n.jsx)(r.A,{url:e,style:{minWidth:"min(100%,45vw)",width:800,maxWidth:"100%",overflow:"hidden"},bodyStyle:{padding:0},children:(0,n.jsx)("iframe",{src:e,title:e,style:{display:"block",width:"100%",height:300}})})})}},70361:(e,s,t)=>{t.d(s,{A:()=>i});var n=t(62540);t(63696);var r=t(11750);let a="dot_giz1",o="bar_rrRL";function i({children:e,minHeight:s,url:t="http://localhost:3000",style:i,bodyStyle:l}){var c,d;return(0,n.jsxs)("div",{className:"browserWindow_my1Q",style:(c=function(e){for(var s=1;s<arguments.length;s++){var t=null!=arguments[s]?arguments[s]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(s){var n;n=t[s],s in e?Object.defineProperty(e,s,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[s]=n})}return e}({},i),d=d={minHeight:s},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(d)):(function(e,s){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(d)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(d,e))}),c),children:[(0,n.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,n.jsxs)("div",{className:"buttons_uHc7",children:[(0,n.jsx)("span",{className:a,style:{background:"#f25f58"}}),(0,n.jsx)("span",{className:a,style:{background:"#fbbe3c"}}),(0,n.jsx)("span",{className:a,style:{background:"#58cb42"}})]}),(0,n.jsx)("div",{className:(0,r.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:t}),(0,n.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:o}),(0,n.jsx)("span",{className:o}),(0,n.jsx)("span",{className:o})]})})]}),(0,n.jsx)("div",{className:"browserWindowBody_Idgs",style:l,children:e})]})}},43730:(e,s,t)=>{t.d(s,{A:()=>a});var n=t(62540),r=t(63696);function a({children:e="Boom!",message:s="Boom!\nSomething bad happened, but you can try again!",cause:t}){let[a,o]=(0,r.useState)(!1);if(a)throw Error(s,{cause:t?Error(t):void 0});return(0,n.jsx)("button",{className:"button button--danger",type:"button",onClick:()=>o(!0),children:e})}},57520:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/social-card-8ca15c1adaeb77ca302178575136a0b6.png"},81093:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>n,toc:()=>c});var n=t(22344),r=t(62540),a=t(43023);t(70361),t(18764),t(43730);let o={title:"Docusaurus 3.2",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2024-03-29T00:00:00.000Z")},i=void 0,l={image:t(59261).A,authorsImageUrls:[void 0]},c=[{value:"Highlights",id:"highlights",level:2},{value:"Faster builds",id:"faster-builds",level:3},{value:"Faster Dev Server",id:"faster-dev-server",level:3},{value:"MDX partials table-of-contents",id:"mdx-partials-table-of-contents",level:3},{value:"Blog improvements",id:"blog-improvements",level:3},{value:"Sitemap lastmod",id:"sitemap-lastmod",level:3},{value:"Other changes",id:"other-changes",level:2}];function d(e){let s={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components},{Details:n}=s;return n||function(e,s){throw Error("Expected "+(s?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:["We are happy to announce ",(0,r.jsx)(s.strong,{children:"Docusaurus 3.2"}),"."]}),"\n",(0,r.jsxs)(s.p,{children:["The upgrade should be easy: as explained in our ",(0,r.jsx)(s.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,r.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.img,{alt:"Docusaurus blog post social card",src:t(57520).A+"",width:"1200",height:"600"})}),"\n","\n",(0,r.jsx)(s.h2,{id:"highlights",children:"Highlights"}),"\n",(0,r.jsx)(s.h3,{id:"faster-builds",children:"Faster builds"}),"\n",(0,r.jsx)(s.p,{children:"We worked hard to reduce the time it takes to build a Docusaurus site in production mode."}),"\n",(0,r.jsx)(s.p,{children:"Between v3.1.0 and v3.2.0, several changes have been made, leading to significantly faster production builds for many sites."}),"\n",(0,r.jsxs)(s.p,{children:["Let's take an example. Our benchmark on the ",(0,r.jsx)(s.a,{href:"https://github.com/facebook/react-native-website/pull/4072",children:"React Native website upgrading to v3.2"})," reports the following results:"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"\u{1F525} Cold builds: 95s \u27A1\uFE0F 66s (~30% faster)"}),"\n",(0,r.jsx)(s.li,{children:"\u{1F525} Incremental builds: 55s \u27A1\uFE0F 22s (~60% faster)"}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"The results will vary depending on your site's topology and the options you turned on, but we expect the largest sites will see the most significant improvements."}),"\n",(0,r.jsxs)(s.p,{children:["Note that this is only the beginning, and Docusaurus performance can still be significantly improved, notably the bundling time and the memory consumption. Track our ",(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/4765",children:"performance issue"})," for upcoming improvements."]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"What is the difference between a cold build and an incremental build?"}),(0,r.jsxs)(s.p,{children:["A cold build is when the Docusaurus caches are empty, generally after running ",(0,r.jsx)(s.code,{children:"docusaurus clear"}),"."]}),(0,r.jsxs)(s.p,{children:["An incremental build happens when you run another time the ",(0,r.jsx)(s.code,{children:"docusaurus build"}),' command. Docusaurus automatically tries to "re-use" computations from former builds to make subsequent builds faster. In practice it\'s based on ',(0,r.jsx)(s.a,{href:"https://webpack.js.org/guides/build-performance/#persistent-cache",children:"Webpack persistent caching"}),". To enable incremental builds on your CI server, you can persist the ",(0,r.jsx)(s.code,{children:"node_modules/.cache"})," folder across builds."]})]}),"\n",(0,r.jsx)(s.h3,{id:"faster-dev-server",children:"Faster Dev Server"}),"\n",(0,r.jsx)(s.p,{children:"We also worked on improving the performance of the dev server, so that you can get a faster feedback when editing Markdown/MDX files."}),"\n",(0,r.jsx)(s.p,{children:"The way we initially implemented content reloading wasn't great. For example, editing a blog post file would also trigger a useless reload of the unrelated docs plugin. From now on, when editing a plugin's content, only that plugin will reload. It's hard to measure precisely the impact of this change, but I estimate edits should appear in your browser at least 50% faster \u{1F525}."}),"\n",(0,r.jsx)(s.p,{children:"We plan to keep improving the speed of our dev server, with even more granular hot reloads, ensuring we don't run useless computations that would always keep giving the same result."}),"\n",(0,r.jsx)(s.h3,{id:"mdx-partials-table-of-contents",children:"MDX partials table-of-contents"}),"\n",(0,r.jsxs)(s.p,{children:["With ",(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9684",children:"#9684"}),", Docusaurus is now able to render headings coming from an imported partial into the table-of-contents."]}),"\n",(0,r.jsxs)(s.p,{children:["Docusaurus and MDX allows you to ",(0,r.jsx)(s.a,{href:"/docs/markdown-features/react#importing-markdown",children:"import one Markdown file into another"}),'. We usually call the imported Markdown file a "partial", and use the ',(0,r.jsx)(s.code,{children:"_"})," prefix so that this file does not lead to the creation of a new page."]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-md",metastring:'title="myDoc.mdx"',children:"# My Doc\n\n## Doc heading\n\nContent is imported from another MDX file:\n\nimport ImportedDoc from './\\_importedDoc.mdx';\n\n<ImportedDoc />\n"})}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-md",metastring:'title="_myPartial.mdx"',children:"## Partial heading\n\nSome paragraph\n"})}),"\n",(0,r.jsxs)(s.p,{children:["Previously, the heading ",(0,r.jsx)(s.code,{children:"Partial heading"})," did not appear in the table-of-contents, but now it will!"]}),"\n",(0,r.jsx)(s.h3,{id:"blog-improvements",children:"Blog improvements"}),"\n",(0,r.jsx)(s.p,{children:"We improved the blog plugin with several new options to make it even more powerful and flexible:"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9912",children:"#9912"}),": you can now display the last update time and author of a blog post, a feature the docs plugin already had."]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9886",children:"#9886"}),": a new ",(0,r.jsx)(s.code,{children:"processBlogPosts"})," option allow you to filter/transform/sort blog posts."]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9838",children:"#9838"}),": a new ",(0,r.jsx)(s.code,{children:"pageBasePath"})," option allows you to customize the blog pagination URL segment (",(0,r.jsx)(s.code,{children:"/blog/page/2"}),")"]}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"sitemap-lastmod",children:"Sitemap lastmod"}),"\n",(0,r.jsxs)(s.p,{children:["With ",(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9954",children:"#9954"}),", the sitemap plugin has a new ",(0,r.jsx)(s.code,{children:"lastmod"})," option that can now emit a ",(0,r.jsx)(s.code,{children:"<lastmod>"})," tag on the XML. The value is read from the Git history by default, but can be overridden with docs and blog ",(0,r.jsx)(s.code,{children:"last_update"})," front matter."]}),"\n",(0,r.jsxs)(s.p,{children:["We also made it possible to opt-out of emitting ",(0,r.jsx)(s.code,{children:"<priority>"})," and ",(0,r.jsx)(s.code,{children:"<frequency>"})," tags, which are generally ignored by crawlers (notably ",(0,r.jsx)(s.a,{href:"https://developers.google.com/search/blog/2023/06/sitemaps-lastmod-ping",children:"Google"}),")."]}),"\n",(0,r.jsx)(s.p,{children:"We recommend using the following sitemap plugin config, that will become the default in Docusaurus V4:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-js",children:"{\n lastmod: 'date',\n priority: null,\n changefreq: null,\n}\n"})}),"\n",(0,r.jsx)(s.h2,{id:"other-changes",children:"Other changes"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9687",children:"#9687"}),": new Vercel Analytics plugin"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9681",children:"#9681"})," and ",(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9442",children:"#9442"}),": ",(0,r.jsx)(s.code,{children:"docusaurus swizzle"})," and ",(0,r.jsx)(s.code,{children:"create-docusaurus"})," CLIs now ask users if they prefer to use TypeScript"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9928",children:"#9928"}),": new Icelandic translation"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9931",children:"#9928"}),": new ",(0,r.jsx)(s.code,{children:"allContentLoaded"})," plugin lifecycle (experimental)"]}),"\n"]}),"\n",(0,r.jsxs)(s.p,{children:["Check the ",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.a,{href:"/changelog/3.2.0",children:"3.2.0 changelog entry"})})," for an exhaustive list of changes."]})]})}function u(e={}){let{wrapper:s}={...(0,a.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>i});var n=t(63696);let r={},a=n.createContext(r);function o(e){let s=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),n.createElement(a.Provider,{value:s},e.children)}},22344:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/3.2","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.2/index.mdx","source":"@site/blog/releases/3.2/index.mdx","title":"Docusaurus 3.2","description":"We are happy to announce Docusaurus 3.2.","date":"2024-03-29T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.475,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.2","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-03-29T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 3.3","permalink":"/blog/releases/3.3"},"nextItem":{"title":"Docusaurus 3.1","permalink":"/blog/releases/3.1"}}')}}]); \ No newline at end of file diff --git a/assets/js/17367.66b57bb6.js b/assets/js/17367.66b57bb6.js deleted file mode 100644 index d0d8bdb421..0000000000 --- a/assets/js/17367.66b57bb6.js +++ /dev/null @@ -1,58 +0,0 @@ -(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[17367],{31546:(t,e)=>{"use strict";e.Jf=e.dz=void 0;var i=/^([^\w]*)(javascript|data|vbscript)/im,r=/&#(\w+)(^\w|;)?/g,n=/&(newline|tab);/gi,o=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,a=/^.+(:|:)/gim,s=[".","/"];e.dz="about:blank",e.Jf=function(t){if(!t)return e.dz;var l=t.replace(o,"").replace(r,function(t,e){return String.fromCharCode(e)}).replace(n,"").replace(o,"").trim();if(!l)return e.dz;if(s.indexOf(l[0])>-1)return l;var h=l.match(a);if(!h)return l;var c=h[0];return i.test(c)?e.dz:l}},95285:function(t){var e;e=function(){"use strict";var t="millisecond",e="second",i="minute",r="hour",n="week",o="month",a="quarter",s="year",l="date",h="Invalid Date",c=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,u=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,d=function(t,e,i){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(i)+t},f="en",p={};p[f]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],i=t%100;return"["+t+(e[(i-20)%10]||e[i]||"th")+"]"}};var g="$isDayjsObject",m=function(t){return t instanceof C||!(!t||!t[g])},y=function t(e,i,r){var n;if(!e)return f;if("string"==typeof e){var o=e.toLowerCase();p[o]&&(n=o),i&&(p[o]=i,n=o);var a=e.split("-");if(!n&&a.length>1)return t(a[0])}else{var s=e.name;p[s]=e,n=s}return!r&&n&&(f=n),n||!r&&f},_=function(t,e){if(m(t))return t.clone();var i="object"==typeof e?e:{};return i.date=t,i.args=arguments,new C(i)},b={s:d,z:function(t){var e=-t.utcOffset(),i=Math.abs(e);return(e<=0?"+":"-")+d(Math.floor(i/60),2,"0")+":"+d(i%60,2,"0")},m:function t(e,i){if(e.date()<i.date())return-t(i,e);var r=12*(i.year()-e.year())+(i.month()-e.month()),n=e.clone().add(r,o),a=i-n<0,s=e.clone().add(r+(a?-1:1),o);return+(-(r+(i-n)/(a?n-s:s-n))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(h){return({M:o,y:s,w:n,d:"day",D:l,h:r,m:i,s:e,ms:t,Q:a})[h]||String(h||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}};b.l=y,b.i=m,b.w=function(t,e){return _(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var C=function(){function d(t){this.$L=y(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[g]=!0}var f=d.prototype;return f.parse=function(t){this.$d=function(t){var e=t.date,i=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match(c);if(r){var n=r[2]-1||0,o=(r[7]||"0").substring(0,3);return i?new Date(Date.UTC(r[1],n,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)):new Date(r[1],n,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)}}return new Date(e)}(t),this.init()},f.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},f.$utils=function(){return b},f.isValid=function(){return this.$d.toString()!==h},f.isSame=function(t,e){var i=_(t);return this.startOf(e)<=i&&i<=this.endOf(e)},f.isAfter=function(t,e){return _(t)<this.startOf(e)},f.isBefore=function(t,e){return this.endOf(e)<_(t)},f.$g=function(t,e,i){return b.u(t)?this[e]:this.set(i,t)},f.unix=function(){return Math.floor(this.valueOf()/1e3)},f.valueOf=function(){return this.$d.getTime()},f.startOf=function(t,a){var h=this,c=!!b.u(a)||a,u=b.p(t),d=function(t,e){var i=b.w(h.$u?Date.UTC(h.$y,e,t):new Date(h.$y,e,t),h);return c?i:i.endOf("day")},f=function(t,e){return b.w(h.toDate()[t].apply(h.toDate("s"),(c?[0,0,0,0]:[23,59,59,999]).slice(e)),h)},p=this.$W,g=this.$M,m=this.$D,y="set"+(this.$u?"UTC":"");switch(u){case s:return c?d(1,0):d(31,11);case o:return c?d(1,g):d(0,g+1);case n:var _=this.$locale().weekStart||0,C=(p<_?p+7:p)-_;return d(c?m-C:m+(6-C),g);case"day":case l:return f(y+"Hours",0);case r:return f(y+"Minutes",1);case i:return f(y+"Seconds",2);case e:return f(y+"Milliseconds",3);default:return this.clone()}},f.endOf=function(t){return this.startOf(t,!1)},f.$set=function(n,a){var h,c=b.p(n),u="set"+(this.$u?"UTC":""),d=((h={}).day=u+"Date",h[l]=u+"Date",h[o]=u+"Month",h[s]=u+"FullYear",h[r]=u+"Hours",h[i]=u+"Minutes",h[e]=u+"Seconds",h[t]=u+"Milliseconds",h)[c],f="day"===c?this.$D+(a-this.$W):a;if(c===o||c===s){var p=this.clone().set(l,1);p.$d[d](f),p.init(),this.$d=p.set(l,Math.min(this.$D,p.daysInMonth())).$d}else d&&this.$d[d](f);return this.init(),this},f.set=function(t,e){return this.clone().$set(t,e)},f.get=function(t){return this[b.p(t)]()},f.add=function(t,a){var l,h=this;t=Number(t);var c=b.p(a),u=function(e){var i=_(h);return b.w(i.date(i.date()+Math.round(e*t)),h)};if(c===o)return this.set(o,this.$M+t);if(c===s)return this.set(s,this.$y+t);if("day"===c)return u(1);if(c===n)return u(7);var d=((l={})[i]=6e4,l[r]=36e5,l[e]=1e3,l)[c]||1,f=this.$d.getTime()+t*d;return b.w(f,this)},f.subtract=function(t,e){return this.add(-1*t,e)},f.format=function(t){var e=this,i=this.$locale();if(!this.isValid())return i.invalidDate||h;var r=t||"YYYY-MM-DDTHH:mm:ssZ",n=b.z(this),o=this.$H,a=this.$m,s=this.$M,l=i.weekdays,c=i.months,d=i.meridiem,f=function(t,i,n,o){return t&&(t[i]||t(e,r))||n[i].slice(0,o)},p=function(t){return b.s(o%12||12,t,"0")},g=d||function(t,e,i){var r=t<12?"AM":"PM";return i?r.toLowerCase():r};return r.replace(u,function(t,r){return r||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return b.s(e.$y,4,"0");case"M":return s+1;case"MM":return b.s(s+1,2,"0");case"MMM":return f(i.monthsShort,s,c,3);case"MMMM":return f(c,s);case"D":return e.$D;case"DD":return b.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return f(i.weekdaysMin,e.$W,l,2);case"ddd":return f(i.weekdaysShort,e.$W,l,3);case"dddd":return l[e.$W];case"H":return String(o);case"HH":return b.s(o,2,"0");case"h":return p(1);case"hh":return p(2);case"a":return g(o,a,!0);case"A":return g(o,a,!1);case"m":return String(a);case"mm":return b.s(a,2,"0");case"s":return String(e.$s);case"ss":return b.s(e.$s,2,"0");case"SSS":return b.s(e.$ms,3,"0");case"Z":return n}return null}(t)||n.replace(":","")})},f.utcOffset=function(){return-(15*Math.round(this.$d.getTimezoneOffset()/15))},f.diff=function(t,l,h){var c,u=this,d=b.p(l),f=_(t),p=(f.utcOffset()-this.utcOffset())*6e4,g=this-f,m=function(){return b.m(u,f)};switch(d){case s:c=m()/12;break;case o:c=m();break;case a:c=m()/3;break;case n:c=(g-p)/6048e5;break;case"day":c=(g-p)/864e5;break;case r:c=g/36e5;break;case i:c=g/6e4;break;case e:c=g/1e3;break;default:c=g}return h?c:b.a(c)},f.daysInMonth=function(){return this.endOf(o).$D},f.$locale=function(){return p[this.$L]},f.locale=function(t,e){if(!t)return this.$L;var i=this.clone(),r=y(t,e,!0);return r&&(i.$L=r),i},f.clone=function(){return b.w(this.$d,this)},f.toDate=function(){return new Date(this.valueOf())},f.toJSON=function(){return this.isValid()?this.toISOString():null},f.toISOString=function(){return this.$d.toISOString()},f.toString=function(){return this.$d.toUTCString()},d}(),x=C.prototype;return _.prototype=x,[["$ms",t],["$s",e],["$m",i],["$H",r],["$W","day"],["$M",o],["$y",s],["$D",l]].forEach(function(t){x[t[1]]=function(e){return this.$g(e,t[0],t[1])}}),_.extend=function(t,e){return t.$i||(t(e,C,_),t.$i=!0),_},_.locale=y,_.isDayjs=m,_.unix=function(t){return _(1e3*t)},_.en=p[f],_.Ls=p,_.p={},_},t.exports=e()},31234:function(t){var e;e=function(){"use strict";let{entries:t,setPrototypeOf:e,isFrozen:i,getPrototypeOf:r,getOwnPropertyDescriptor:n}=Object,{freeze:o,seal:a,create:s}=Object,{apply:l,construct:h}="undefined"!=typeof Reflect&&Reflect;o||(o=function(t){return t}),a||(a=function(t){return t}),l||(l=function(t,e,i){return t.apply(e,i)}),h||(h=function(t,e){return new t(...e)});let c=v(Array.prototype.forEach),u=v(Array.prototype.pop),d=v(Array.prototype.push),f=v(String.prototype.toLowerCase),p=v(String.prototype.toString),g=v(String.prototype.match),m=v(String.prototype.replace),y=v(String.prototype.indexOf),_=v(String.prototype.trim),b=v(Object.prototype.hasOwnProperty),C=v(RegExp.prototype.test),x=(Y=TypeError,function(){for(var t=arguments.length,e=Array(t),i=0;i<t;i++)e[i]=arguments[i];return h(Y,e)});function v(t){return function(e){for(var i=arguments.length,r=Array(i>1?i-1:0),n=1;n<i;n++)r[n-1]=arguments[n];return l(t,e,r)}}function k(t,r){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:f;e&&e(t,null);let o=r.length;for(;o--;){let e=r[o];if("string"==typeof e){let t=n(e);t!==e&&(i(r)||(r[o]=t),e=t)}t[e]=!0}return t}function T(e){let i=s(null);for(let[r,n]of t(e))b(e,r)&&(Array.isArray(n)?i[r]=function(t){for(let e=0;e<t.length;e++)b(t,e)||(t[e]=null);return t}(n):n&&"object"==typeof n&&n.constructor===Object?i[r]=T(n):i[r]=n);return i}function A(t,e){for(;null!==t;){let i=n(t,e);if(i){if(i.get)return v(i.get);if("function"==typeof i.value)return v(i.value)}t=r(t)}return function(){return null}}let S=o(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),w=o(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),B=o(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),F=o(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),L=o(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),M=o(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),E=o(["#text"]),O=o(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),I=o(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),q=o(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),N=o(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),D=a(/\{\{[\w\W]*|[\w\W]*\}\}/gm),$=a(/<%[\w\W]*|[\w\W]*%>/gm),z=a(/\${[\w\W]*}/gm),j=a(/^data-[\-\w.\u00B7-\uFFFF]/),P=a(/^aria-[\-\w]+$/),R=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),W=a(/^(?:\w+script|data):/i),U=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),H=a(/^html$/i);var Y,V=Object.freeze({__proto__:null,MUSTACHE_EXPR:D,ERB_EXPR:$,TMPLIT_EXPR:z,DATA_ATTR:j,ARIA_ATTR:P,IS_ALLOWED_URI:R,IS_SCRIPT_OR_DATA:W,ATTR_WHITESPACE:U,DOCTYPE_NAME:H,CUSTOM_ELEMENT:a(/^[a-z][.\w]*(-[.\w]+)+$/i)});let G={element:1,text:3,progressingInstruction:7,comment:8,document:9},X=function(t,e){if("object"!=typeof t||"function"!=typeof t.createPolicy)return null;let i=null,r="data-tt-policy-suffix";e&&e.hasAttribute(r)&&(i=e.getAttribute(r));let n="dompurify"+(i?"#"+i:"");try{return t.createPolicy(n,{createHTML:t=>t,createScriptURL:t=>t})}catch(t){return console.warn("TrustedTypes policy "+n+" could not be created."),null}};return function e(){let i,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"undefined"==typeof window?null:window,n=t=>e(t);if(n.version="3.1.6",n.removed=[],!r||!r.document||r.document.nodeType!==G.document)return n.isSupported=!1,n;let{document:a}=r,l=a,h=l.currentScript,{DocumentFragment:v,HTMLTemplateElement:D,Node:$,Element:z,NodeFilter:j,NamedNodeMap:P=r.NamedNodeMap||r.MozNamedAttrMap,HTMLFormElement:W,DOMParser:U,trustedTypes:Y}=r,Z=z.prototype,J=A(Z,"cloneNode"),Q=A(Z,"remove"),K=A(Z,"nextSibling"),tt=A(Z,"childNodes"),te=A(Z,"parentNode");if("function"==typeof D){let t=a.createElement("template");t.content&&t.content.ownerDocument&&(a=t.content.ownerDocument)}let ti="",{implementation:tr,createNodeIterator:tn,createDocumentFragment:to,getElementsByTagName:ta}=a,{importNode:ts}=l,tl={};n.isSupported="function"==typeof t&&"function"==typeof te&&tr&&void 0!==tr.createHTMLDocument;let{MUSTACHE_EXPR:th,ERB_EXPR:tc,TMPLIT_EXPR:tu,DATA_ATTR:td,ARIA_ATTR:tf,IS_SCRIPT_OR_DATA:tp,ATTR_WHITESPACE:tg,CUSTOM_ELEMENT:tm}=V,{IS_ALLOWED_URI:ty}=V,t_=null,tb=k({},[...S,...w,...B,...L,...E]),tC=null,tx=k({},[...O,...I,...q,...N]),tv=Object.seal(s(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),tk=null,tT=null,tA=!0,tS=!0,tw=!1,tB=!0,tF=!1,tL=!0,tM=!1,tE=!1,tO=!1,tI=!1,tq=!1,tN=!1,tD=!0,t$=!1,tz=!0,tj=!1,tP={},tR=null,tW=k({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),tU=null,tH=k({},["audio","video","img","source","image","track"]),tY=null,tV=k({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),tG="http://www.w3.org/1998/Math/MathML",tX="http://www.w3.org/2000/svg",tZ="http://www.w3.org/1999/xhtml",tJ=tZ,tQ=!1,tK=null,t0=k({},[tG,tX,tZ],p),t1=null,t2=["application/xhtml+xml","text/html"],t5=null,t3=null,t6=a.createElement("form"),t4=function(t){return t instanceof RegExp||t instanceof Function},t8=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!t3||t3!==t){if(t&&"object"==typeof t||(t={}),t=T(t),t5="application/xhtml+xml"===(t1=-1===t2.indexOf(t.PARSER_MEDIA_TYPE)?"text/html":t.PARSER_MEDIA_TYPE)?p:f,t_=b(t,"ALLOWED_TAGS")?k({},t.ALLOWED_TAGS,t5):tb,tC=b(t,"ALLOWED_ATTR")?k({},t.ALLOWED_ATTR,t5):tx,tK=b(t,"ALLOWED_NAMESPACES")?k({},t.ALLOWED_NAMESPACES,p):t0,tY=b(t,"ADD_URI_SAFE_ATTR")?k(T(tV),t.ADD_URI_SAFE_ATTR,t5):tV,tU=b(t,"ADD_DATA_URI_TAGS")?k(T(tH),t.ADD_DATA_URI_TAGS,t5):tH,tR=b(t,"FORBID_CONTENTS")?k({},t.FORBID_CONTENTS,t5):tW,tk=b(t,"FORBID_TAGS")?k({},t.FORBID_TAGS,t5):{},tT=b(t,"FORBID_ATTR")?k({},t.FORBID_ATTR,t5):{},tP=!!b(t,"USE_PROFILES")&&t.USE_PROFILES,tA=!1!==t.ALLOW_ARIA_ATTR,tS=!1!==t.ALLOW_DATA_ATTR,tw=t.ALLOW_UNKNOWN_PROTOCOLS||!1,tB=!1!==t.ALLOW_SELF_CLOSE_IN_ATTR,tF=t.SAFE_FOR_TEMPLATES||!1,tL=!1!==t.SAFE_FOR_XML,tM=t.WHOLE_DOCUMENT||!1,tI=t.RETURN_DOM||!1,tq=t.RETURN_DOM_FRAGMENT||!1,tN=t.RETURN_TRUSTED_TYPE||!1,tO=t.FORCE_BODY||!1,tD=!1!==t.SANITIZE_DOM,t$=t.SANITIZE_NAMED_PROPS||!1,tz=!1!==t.KEEP_CONTENT,tj=t.IN_PLACE||!1,ty=t.ALLOWED_URI_REGEXP||R,tJ=t.NAMESPACE||tZ,tv=t.CUSTOM_ELEMENT_HANDLING||{},t.CUSTOM_ELEMENT_HANDLING&&t4(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(tv.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&&t4(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(tv.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(tv.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),tF&&(tS=!1),tq&&(tI=!0),tP&&(t_=k({},E),tC=[],!0===tP.html&&(k(t_,S),k(tC,O)),!0===tP.svg&&(k(t_,w),k(tC,I),k(tC,N)),!0===tP.svgFilters&&(k(t_,B),k(tC,I),k(tC,N)),!0===tP.mathMl&&(k(t_,L),k(tC,q),k(tC,N))),t.ADD_TAGS&&(t_===tb&&(t_=T(t_)),k(t_,t.ADD_TAGS,t5)),t.ADD_ATTR&&(tC===tx&&(tC=T(tC)),k(tC,t.ADD_ATTR,t5)),t.ADD_URI_SAFE_ATTR&&k(tY,t.ADD_URI_SAFE_ATTR,t5),t.FORBID_CONTENTS&&(tR===tW&&(tR=T(tR)),k(tR,t.FORBID_CONTENTS,t5)),tz&&(t_["#text"]=!0),tM&&k(t_,["html","head","body"]),t_.table&&(k(t_,["tbody"]),delete tk.tbody),t.TRUSTED_TYPES_POLICY){if("function"!=typeof t.TRUSTED_TYPES_POLICY.createHTML)throw x('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof t.TRUSTED_TYPES_POLICY.createScriptURL)throw x('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');ti=(i=t.TRUSTED_TYPES_POLICY).createHTML("")}else void 0===i&&(i=X(Y,h)),null!==i&&"string"==typeof ti&&(ti=i.createHTML(""));o&&o(t),t3=t}},t7=k({},["mi","mo","mn","ms","mtext"]),t9=k({},["foreignobject","annotation-xml"]),et=k({},["title","style","font","a","script"]),ee=k({},[...w,...B,...F]),ei=k({},[...L,...M]),er=function(t){let e=te(t);e&&e.tagName||(e={namespaceURI:tJ,tagName:"template"});let i=f(t.tagName),r=f(e.tagName);return!!tK[t.namespaceURI]&&(t.namespaceURI===tX?e.namespaceURI===tZ?"svg"===i:e.namespaceURI===tG?"svg"===i&&("annotation-xml"===r||t7[r]):!!ee[i]:t.namespaceURI===tG?e.namespaceURI===tZ?"math"===i:e.namespaceURI===tX?"math"===i&&t9[r]:!!ei[i]:t.namespaceURI===tZ?(e.namespaceURI!==tX||!!t9[r])&&(e.namespaceURI!==tG||!!t7[r])&&!ei[i]&&(et[i]||!ee[i]):"application/xhtml+xml"===t1&&!!tK[t.namespaceURI])},en=function(t){d(n.removed,{element:t});try{te(t).removeChild(t)}catch(e){Q(t)}},eo=function(t,e){try{d(n.removed,{attribute:e.getAttributeNode(t),from:e})}catch(t){d(n.removed,{attribute:null,from:e})}if(e.removeAttribute(t),"is"===t&&!tC[t]){if(tI||tq)try{en(e)}catch(t){}else try{e.setAttribute(t,"")}catch(t){}}},ea=function(t){let e=null,r=null;if(tO)t="<remove></remove>"+t;else{let e=g(t,/^[\r\n\t ]+/);r=e&&e[0]}"application/xhtml+xml"===t1&&tJ===tZ&&(t='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+t+"</body></html>");let n=i?i.createHTML(t):t;if(tJ===tZ)try{e=new U().parseFromString(n,t1)}catch(t){}if(!e||!e.documentElement){e=tr.createDocument(tJ,"template",null);try{e.documentElement.innerHTML=tQ?ti:n}catch(t){}}let o=e.body||e.documentElement;return(t&&r&&o.insertBefore(a.createTextNode(r),o.childNodes[0]||null),tJ===tZ)?ta.call(e,tM?"html":"body")[0]:tM?e.documentElement:o},es=function(t){return tn.call(t.ownerDocument||t,t,j.SHOW_ELEMENT|j.SHOW_COMMENT|j.SHOW_TEXT|j.SHOW_PROCESSING_INSTRUCTION|j.SHOW_CDATA_SECTION,null)},el=function(t){return t instanceof W&&("string"!=typeof t.nodeName||"string"!=typeof t.textContent||"function"!=typeof t.removeChild||!(t.attributes instanceof P)||"function"!=typeof t.removeAttribute||"function"!=typeof t.setAttribute||"string"!=typeof t.namespaceURI||"function"!=typeof t.insertBefore||"function"!=typeof t.hasChildNodes)},eh=function(t){return"function"==typeof $&&t instanceof $},ec=function(t,e,i){tl[t]&&c(tl[t],t=>{t.call(n,e,i,t3)})},eu=function(t){let e=null;if(ec("beforeSanitizeElements",t,null),el(t))return en(t),!0;let i=t5(t.nodeName);if(ec("uponSanitizeElement",t,{tagName:i,allowedTags:t_}),t.hasChildNodes()&&!eh(t.firstElementChild)&&C(/<[/\w]/g,t.innerHTML)&&C(/<[/\w]/g,t.textContent)||t.nodeType===G.progressingInstruction||tL&&t.nodeType===G.comment&&C(/<[/\w]/g,t.data))return en(t),!0;if(!t_[i]||tk[i]){if(!tk[i]&&ef(i)&&(tv.tagNameCheck instanceof RegExp&&C(tv.tagNameCheck,i)||tv.tagNameCheck instanceof Function&&tv.tagNameCheck(i)))return!1;if(tz&&!tR[i]){let e=te(t)||t.parentNode,i=tt(t)||t.childNodes;if(i&&e){let r=i.length;for(let n=r-1;n>=0;--n){let r=J(i[n],!0);r.__removalCount=(t.__removalCount||0)+1,e.insertBefore(r,K(t))}}}return en(t),!0}return t instanceof z&&!er(t)||("noscript"===i||"noembed"===i||"noframes"===i)&&C(/<\/no(script|embed|frames)/i,t.innerHTML)?(en(t),!0):(tF&&t.nodeType===G.text&&(e=t.textContent,c([th,tc,tu],t=>{e=m(e,t," ")}),t.textContent!==e&&(d(n.removed,{element:t.cloneNode()}),t.textContent=e)),ec("afterSanitizeElements",t,null),!1)},ed=function(t,e,i){if(tD&&("id"===e||"name"===e)&&(i in a||i in t6))return!1;if(tS&&!tT[e]&&C(td,e));else if(tA&&C(tf,e));else if(!tC[e]||tT[e]){if(!(ef(t)&&(tv.tagNameCheck instanceof RegExp&&C(tv.tagNameCheck,t)||tv.tagNameCheck instanceof Function&&tv.tagNameCheck(t))&&(tv.attributeNameCheck instanceof RegExp&&C(tv.attributeNameCheck,e)||tv.attributeNameCheck instanceof Function&&tv.attributeNameCheck(e))||"is"===e&&tv.allowCustomizedBuiltInElements&&(tv.tagNameCheck instanceof RegExp&&C(tv.tagNameCheck,i)||tv.tagNameCheck instanceof Function&&tv.tagNameCheck(i))))return!1}else if(tY[e]);else if(C(ty,m(i,tg,"")));else if(("src"===e||"xlink:href"===e||"href"===e)&&"script"!==t&&0===y(i,"data:")&&tU[t]);else if(tw&&!C(tp,m(i,tg,"")));else if(i)return!1;return!0},ef=function(t){return"annotation-xml"!==t&&g(t,tm)},ep=function(t){ec("beforeSanitizeAttributes",t,null);let{attributes:e}=t;if(!e)return;let r={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:tC},o=e.length;for(;o--;){let{name:a,namespaceURI:s,value:l}=e[o],h=t5(a),d="value"===a?l:_(l);if(r.attrName=h,r.attrValue=d,r.keepAttr=!0,r.forceKeepAttr=void 0,ec("uponSanitizeAttribute",t,r),d=r.attrValue,tL&&C(/((--!?|])>)|<\/(style|title)/i,d)){eo(a,t);continue}if(r.forceKeepAttr||(eo(a,t),!r.keepAttr))continue;if(!tB&&C(/\/>/i,d)){eo(a,t);continue}tF&&c([th,tc,tu],t=>{d=m(d,t," ")});let f=t5(t.nodeName);if(ed(f,h,d)){if(t$&&("id"===h||"name"===h)&&(eo(a,t),d="user-content-"+d),i&&"object"==typeof Y&&"function"==typeof Y.getAttributeType){if(s);else switch(Y.getAttributeType(f,h)){case"TrustedHTML":d=i.createHTML(d);break;case"TrustedScriptURL":d=i.createScriptURL(d)}}try{s?t.setAttributeNS(s,a,d):t.setAttribute(a,d),el(t)?en(t):u(n.removed)}catch(t){}}}ec("afterSanitizeAttributes",t,null)},eg=function t(e){let i=null,r=es(e);for(ec("beforeSanitizeShadowDOM",e,null);i=r.nextNode();)ec("uponSanitizeShadowNode",i,null),eu(i)||(i.content instanceof v&&t(i.content),ep(i));ec("afterSanitizeShadowDOM",e,null)};return n.sanitize=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=null,o=null,a=null,s=null;if((tQ=!t)&&(t="<!-->"),"string"!=typeof t&&!eh(t)){if("function"==typeof t.toString){if("string"!=typeof(t=t.toString()))throw x("dirty is not a string, aborting")}else throw x("toString is not a function")}if(!n.isSupported)return t;if(tE||t8(e),n.removed=[],"string"==typeof t&&(tj=!1),tj){if(t.nodeName){let e=t5(t.nodeName);if(!t_[e]||tk[e])throw x("root node is forbidden and cannot be sanitized in-place")}}else if(t instanceof $)(o=(r=ea("<!---->")).ownerDocument.importNode(t,!0)).nodeType===G.element&&"BODY"===o.nodeName?r=o:"HTML"===o.nodeName?r=o:r.appendChild(o);else{if(!tI&&!tF&&!tM&&-1===t.indexOf("<"))return i&&tN?i.createHTML(t):t;if(!(r=ea(t)))return tI?null:tN?ti:""}r&&tO&&en(r.firstChild);let h=es(tj?t:r);for(;a=h.nextNode();)eu(a)||(a.content instanceof v&&eg(a.content),ep(a));if(tj)return t;if(tI){if(tq)for(s=to.call(r.ownerDocument);r.firstChild;)s.appendChild(r.firstChild);else s=r;return(tC.shadowroot||tC.shadowrootmode)&&(s=ts.call(l,s,!0)),s}let u=tM?r.outerHTML:r.innerHTML;return tM&&t_["!doctype"]&&r.ownerDocument&&r.ownerDocument.doctype&&r.ownerDocument.doctype.name&&C(H,r.ownerDocument.doctype.name)&&(u="<!DOCTYPE "+r.ownerDocument.doctype.name+">\n"+u),tF&&c([th,tc,tu],t=>{u=m(u,t," ")}),i&&tN?i.createHTML(u):u},n.setConfig=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t8(t),tE=!0},n.clearConfig=function(){t3=null,tE=!1},n.isValidAttribute=function(t,e,i){return t3||t8({}),ed(t5(t),t5(e),i)},n.addHook=function(t,e){"function"==typeof e&&(tl[t]=tl[t]||[],d(tl[t],e))},n.removeHook=function(t){if(tl[t])return u(tl[t])},n.removeHooks=function(t){tl[t]&&(tl[t]=[])},n.removeAllHooks=function(){tl={}},n}()},t.exports=e()},97597:(t,e,i)=>{"use strict";function r(t){for(var e=[],i=1;i<arguments.length;i++)e[i-1]=arguments[i];var r=Array.from("string"==typeof t?[t]:t);r[r.length-1]=r[r.length-1].replace(/\r?\n([\t ]*)$/,"");var n=r.reduce(function(t,e){var i=e.match(/\n([\t ]+|(?!\s).)/g);return i?t.concat(i.map(function(t){var e,i;return null!==(i=null===(e=t.match(/[\t ]/g))||void 0===e?void 0:e.length)&&void 0!==i?i:0})):t},[]);if(n.length){var o=RegExp("\n[ ]{"+Math.min.apply(Math,n)+"}","g");r=r.map(function(t){return t.replace(o,"\n")})}r[0]=r[0].replace(/^\r?\n/,"");var a=r[0];return e.forEach(function(t,e){var i=a.match(/(?:^|\n)( *)$/),n=i?i[1]:"",o=t;"string"==typeof t&&t.includes("\n")&&(o=String(t).split("\n").map(function(t,e){return 0===e?t:""+n+t}).join("\n")),a+=o+r[e+1]}),a}i.d(e,{T:()=>r})},93126:(t,e,i)=>{"use strict";function r(t,e){let i;if(void 0===e)for(let e of t)null!=e&&(i<e||void 0===i&&e>=e)&&(i=e);else{let r=-1;for(let n of t)null!=(n=e(n,++r,t))&&(i<n||void 0===i&&n>=n)&&(i=n)}return i}function n(t,e){let i;if(void 0===e)for(let e of t)null!=e&&(i>e||void 0===i&&e>=e)&&(i=e);else{let r=-1;for(let n of t)null!=(n=e(n,++r,t))&&(i>n||void 0===i&&n>=n)&&(i=n)}return i}function o(t){return t}function a(t){return"translate("+t+",0)"}function s(t){return"translate(0,"+t+")"}function l(){return!this.__axis}function h(t,e){var i=[],r=null,n=null,h=6,c=6,u=3,d="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,f=1===t||4===t?-1:1,p=4===t||2===t?"x":"y",g=1===t||3===t?a:s;function m(a){var s=null==r?e.ticks?e.ticks.apply(e,i):e.domain():r,m=null==n?e.tickFormat?e.tickFormat.apply(e,i):o:n,y=Math.max(h,0)+u,_=e.range(),b=+_[0]+d,C=+_[_.length-1]+d,x=(e.bandwidth?function(t,e){return e=Math.max(0,t.bandwidth()-2*e)/2,t.round()&&(e=Math.round(e)),i=>+t(i)+e}:function(t){return e=>+t(e)})(e.copy(),d),v=a.selection?a.selection():a,k=v.selectAll(".domain").data([null]),T=v.selectAll(".tick").data(s,e).order(),A=T.exit(),S=T.enter().append("g").attr("class","tick"),w=T.select("line"),B=T.select("text");k=k.merge(k.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),T=T.merge(S),w=w.merge(S.append("line").attr("stroke","currentColor").attr(p+"2",f*h)),B=B.merge(S.append("text").attr("fill","currentColor").attr(p,f*y).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),a!==v&&(k=k.transition(a),T=T.transition(a),w=w.transition(a),B=B.transition(a),A=A.transition(a).attr("opacity",1e-6).attr("transform",function(t){return isFinite(t=x(t))?g(t+d):this.getAttribute("transform")}),S.attr("opacity",1e-6).attr("transform",function(t){var e=this.parentNode.__axis;return g((e&&isFinite(e=e(t))?e:x(t))+d)})),A.remove(),k.attr("d",4===t||2===t?c?"M"+f*c+","+b+"H"+d+"V"+C+"H"+f*c:"M"+d+","+b+"V"+C:c?"M"+b+","+f*c+"V"+d+"H"+C+"V"+f*c:"M"+b+","+d+"H"+C),T.attr("opacity",1).attr("transform",function(t){return g(x(t)+d)}),w.attr(p+"2",f*h),B.attr(p,f*y).text(m),v.filter(l).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),v.each(function(){this.__axis=x})}return m.scale=function(t){return arguments.length?(e=t,m):e},m.ticks=function(){return i=Array.from(arguments),m},m.tickArguments=function(t){return arguments.length?(i=null==t?[]:Array.from(t),m):i.slice()},m.tickValues=function(t){return arguments.length?(r=null==t?null:Array.from(t),m):r&&r.slice()},m.tickFormat=function(t){return arguments.length?(n=t,m):n},m.tickSize=function(t){return arguments.length?(h=c=+t,m):h},m.tickSizeInner=function(t){return arguments.length?(h=+t,m):h},m.tickSizeOuter=function(t){return arguments.length?(c=+t,m):c},m.tickPadding=function(t){return arguments.length?(u=+t,m):u},m.offset=function(t){return arguments.length?(d=+t,m):d},m}function c(t){return h(1,t)}function u(t){return h(3,t)}function d(){}function f(t){return null==t?d:function(){return this.querySelector(t)}}function p(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}function g(){return[]}function m(t){return null==t?g:function(){return this.querySelectorAll(t)}}function y(t){return function(){return this.matches(t)}}function _(t){return function(e){return e.matches(t)}}i.d(e,{JLW:()=>nz,l78:()=>u,tlR:()=>c,qrM:()=>nQ,Yu4:()=>n0,IA3:()=>n2,Wi0:()=>n3,PGM:()=>n6,OEq:()=>n8,y8u:()=>ot,olC:()=>oi,IrU:()=>on,oDi:()=>os,Q7f:()=>oh,cVp:()=>ou,lUB:()=>nR,Lx9:()=>of,nVG:()=>oC,uxU:()=>ox,Xf2:()=>oT,GZz:()=>oS,UPb:()=>oB,dyv:()=>ow,bEH:()=>eJ,n8j:()=>nH,T9B:()=>r,jkA:()=>n,rLf:()=>nG,m4Y:()=>function t(){var e,i=ih();return i.copy=function(){return il(i,t())},ic.apply(i,arguments),e=i.domain,i.ticks=function(t){var i=e();return function(t,e,i){if(e=+e,t=+t,!((i=+i)>0))return[];if(t===e)return[t];let r=e<t,[n,o,a]=r?e1(e,t,i):e1(t,e,i);if(!(o>=n))return[];let s=o-n+1,l=Array(s);if(r){if(a<0)for(let t=0;t<s;++t)l[t]=-((o-t)/a);else for(let t=0;t<s;++t)l[t]=(o-t)*a}else if(a<0)for(let t=0;t<s;++t)l[t]=-((n+t)/a);else for(let t=0;t<s;++t)l[t]=(n+t)*a;return l}(i[0],i[i.length-1],null==t?10:t)},i.tickFormat=function(t,i){var r=e();return function(t,e,i,r){var n,o,a=e5(t,e,i);switch((r=id(null==r?",f":r)).type){case"s":var s=Math.max(Math.abs(t),Math.abs(e));return null!=r.precision||isNaN(o=Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(im(s)/3)))-im(Math.abs(a))))||(r.precision=o),tl(r,s);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(o=Math.max(0,im(Math.abs(Math.max(Math.abs(t),Math.abs(e)))-(n=Math.abs(n=a)))-im(n))+1)||(r.precision=o-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(o=Math.max(0,-im(Math.abs(a))))||(r.precision=o-("%"===r.type)*2)}return ts(r)}(r[0],r[r.length-1],null==t?10:t,i)},i.nice=function(t){null==t&&(t=10);var r,n,o=e(),a=0,s=o.length-1,l=o[a],h=o[s],c=10;for(h<l&&(n=l,l=h,h=n,n=a,a=s,s=n);c-- >0;){if((n=e2(l,h,t))===r)return o[a]=l,o[s]=h,e(o);if(n>0)l=Math.floor(l/n)*n,h=Math.ceil(h/n)*n;else if(n<0)l=Math.ceil(l*n)/n,h=Math.floor(h*n)/n;else break;r=n}return i},i},UMr:()=>function t(){var e=new iv,i=[],r=[],n=iA;function o(t){let o=e.get(t);if(void 0===o){if(n!==iA)return n;e.set(t,o=i.push(t)-1)}return r[o%r.length]}return o.domain=function(t){if(!arguments.length)return i.slice();for(let r of(i=[],e=new iv,t))e.has(r)||e.set(r,i.push(r)-1);return o},o.range=function(t){return arguments.length?(r=Array.from(t),o):r.slice()},o.unknown=function(t){return arguments.length?(n=t,o):n},o.copy=function(){return t(i,r).unknown(n)},ic.apply(o,arguments),o},w7C:()=>nu,zt:()=>nd,Ltv:()=>nf,Ubm:()=>np,JWy:()=>eI,UAC:()=>iq,DCK:()=>tc,TUC:()=>iU,Agd:()=>iO,wXd:()=>iM,ABi:()=>ij,Ui6:()=>i0,rGn:()=>iH,YPH:()=>iz,Mol:()=>iW,PGu:()=>iP,GuW:()=>iR});var b=Array.prototype.find;function C(){return this.firstElementChild}var x=Array.prototype.filter;function v(){return Array.from(this.children)}function k(t){return Array(t.length)}function T(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function A(t,e,i,r,n,o){for(var a,s=0,l=e.length,h=o.length;s<h;++s)(a=e[s])?(a.__data__=o[s],r[s]=a):i[s]=new T(t,o[s]);for(;s<l;++s)(a=e[s])&&(n[s]=a)}function S(t,e,i,r,n,o,a){var s,l,h,c=new Map,u=e.length,d=o.length,f=Array(u);for(s=0;s<u;++s)(l=e[s])&&(f[s]=h=a.call(l,l.__data__,s,e)+"",c.has(h)?n[s]=l:c.set(h,l));for(s=0;s<d;++s)h=a.call(t,o[s],s,o)+"",(l=c.get(h))?(r[s]=l,l.__data__=o[s],c.delete(h)):i[s]=new T(t,o[s]);for(s=0;s<u;++s)(l=e[s])&&c.get(f[s])===l&&(n[s]=l)}function w(t){return t.__data__}function B(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}T.prototype={constructor:T,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var F="http://www.w3.org/1999/xhtml";let L={svg:"http://www.w3.org/2000/svg",xhtml:F,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function M(t){var e=t+="",i=e.indexOf(":");return i>=0&&"xmlns"!==(e=t.slice(0,i))&&(t=t.slice(i+1)),L.hasOwnProperty(e)?{space:L[e],local:t}:t}function E(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function O(t,e){return t.style.getPropertyValue(e)||E(t).getComputedStyle(t,null).getPropertyValue(e)}function I(t){return t.trim().split(/^|\s+/)}function q(t){return t.classList||new N(t)}function N(t){this._node=t,this._names=I(t.getAttribute("class")||"")}function D(t,e){for(var i=q(t),r=-1,n=e.length;++r<n;)i.add(e[r])}function $(t,e){for(var i=q(t),r=-1,n=e.length;++r<n;)i.remove(e[r])}function z(){this.textContent=""}function j(){this.innerHTML=""}function P(){this.nextSibling&&this.parentNode.appendChild(this)}function R(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function W(t){var e=M(t);return(e.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var e=this.ownerDocument,i=this.namespaceURI;return i===F&&e.documentElement.namespaceURI===F?e.createElement(t):e.createElementNS(i,t)}})(e)}function U(){return null}function H(){var t=this.parentNode;t&&t.removeChild(this)}function Y(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function V(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function G(t){return function(){var e=this.__on;if(e){for(var i,r=0,n=-1,o=e.length;r<o;++r)(i=e[r],t.type&&i.type!==t.type||i.name!==t.name)?e[++n]=i:this.removeEventListener(i.type,i.listener,i.options);++n?e.length=n:delete this.__on}}}function X(t,e,i){return function(){var r,n=this.__on,o=function(t){e.call(this,t,this.__data__)};if(n){for(var a=0,s=n.length;a<s;++a)if((r=n[a]).type===t.type&&r.name===t.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=i),r.value=e;return}}this.addEventListener(t.type,o,i),r={type:t.type,name:t.name,value:e,listener:o,options:i},n?n.push(r):this.__on=[r]}}function Z(t,e,i){var r=E(t),n=r.CustomEvent;"function"==typeof n?n=new n(e,i):(n=r.document.createEvent("Event"),i?(n.initEvent(e,i.bubbles,i.cancelable),n.detail=i.detail):n.initEvent(e,!1,!1)),t.dispatchEvent(n)}N.prototype={add:function(t){0>this._names.indexOf(t)&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var J=[null];function Q(t,e){this._groups=t,this._parents=e}function K(){return new Q([[document.documentElement]],J)}Q.prototype=K.prototype={constructor:Q,select:function(t){"function"!=typeof t&&(t=f(t));for(var e=this._groups,i=e.length,r=Array(i),n=0;n<i;++n)for(var o,a,s=e[n],l=s.length,h=r[n]=Array(l),c=0;c<l;++c)(o=s[c])&&(a=t.call(o,o.__data__,c,s))&&("__data__"in o&&(a.__data__=o.__data__),h[c]=a);return new Q(r,this._parents)},selectAll:function(t){if("function"==typeof t){var e;e=t,t=function(){return p(e.apply(this,arguments))}}else t=m(t);for(var i=this._groups,r=i.length,n=[],o=[],a=0;a<r;++a)for(var s,l=i[a],h=l.length,c=0;c<h;++c)(s=l[c])&&(n.push(t.call(s,s.__data__,c,l)),o.push(s));return new Q(n,o)},selectChild:function(t){var e;return this.select(null==t?C:(e="function"==typeof t?t:_(t),function(){return b.call(this.children,e)}))},selectChildren:function(t){var e;return this.selectAll(null==t?v:(e="function"==typeof t?t:_(t),function(){return x.call(this.children,e)}))},filter:function(t){"function"!=typeof t&&(t=y(t));for(var e=this._groups,i=e.length,r=Array(i),n=0;n<i;++n)for(var o,a=e[n],s=a.length,l=r[n]=[],h=0;h<s;++h)(o=a[h])&&t.call(o,o.__data__,h,a)&&l.push(o);return new Q(r,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,w);var i=e?S:A,r=this._parents,n=this._groups;"function"!=typeof t&&(_=t,t=function(){return _});for(var o=n.length,a=Array(o),s=Array(o),l=Array(o),h=0;h<o;++h){var c=r[h],u=n[h],d=u.length,f="object"==typeof(y=t.call(c,c&&c.__data__,h,r))&&"length"in y?y:Array.from(y),p=f.length,g=s[h]=Array(p),m=a[h]=Array(p);i(c,u,g,m,l[h]=Array(d),f,e);for(var y,_,b,C,x=0,v=0;x<p;++x)if(b=g[x]){for(x>=v&&(v=x+1);!(C=m[v])&&++v<p;);b._next=C||null}}return(a=new Q(a,r))._enter=s,a._exit=l,a},enter:function(){return new Q(this._enter||this._groups.map(k),this._parents)},exit:function(){return new Q(this._exit||this._groups.map(k),this._parents)},join:function(t,e,i){var r=this.enter(),n=this,o=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=e&&(n=e(n))&&(n=n.selection()),null==i?o.remove():i(o),r&&n?r.merge(n).order():n},merge:function(t){for(var e=t.selection?t.selection():t,i=this._groups,r=e._groups,n=i.length,o=r.length,a=Math.min(n,o),s=Array(n),l=0;l<a;++l)for(var h,c=i[l],u=r[l],d=c.length,f=s[l]=Array(d),p=0;p<d;++p)(h=c[p]||u[p])&&(f[p]=h);for(;l<n;++l)s[l]=i[l];return new Q(s,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,i=t.length;++e<i;)for(var r,n=t[e],o=n.length-1,a=n[o];--o>=0;)(r=n[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function e(e,i){return e&&i?t(e.__data__,i.__data__):!e-!i}t||(t=B);for(var i=this._groups,r=i.length,n=Array(r),o=0;o<r;++o){for(var a,s=i[o],l=s.length,h=n[o]=Array(l),c=0;c<l;++c)(a=s[c])&&(h[c]=a);h.sort(e)}return new Q(n,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,i=t.length;e<i;++e)for(var r=t[e],n=0,o=r.length;n<o;++n){var a=r[n];if(a)return a}return null},size:function(){let t=0;for(let e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,i=0,r=e.length;i<r;++i)for(var n,o=e[i],a=0,s=o.length;a<s;++a)(n=o[a])&&t.call(n,n.__data__,a,o);return this},attr:function(t,e){var i=M(t);if(arguments.length<2){var r=this.node();return i.local?r.getAttributeNS(i.space,i.local):r.getAttribute(i)}return this.each((null==e?i.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}}:"function"==typeof e?i.local?function(t,e){return function(){var i=e.apply(this,arguments);null==i?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,i)}}:function(t,e){return function(){var i=e.apply(this,arguments);null==i?this.removeAttribute(t):this.setAttribute(t,i)}}:i.local?function(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}:function(t,e){return function(){this.setAttribute(t,e)}})(i,e))},style:function(t,e,i){return arguments.length>1?this.each((null==e?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof e?function(t,e,i){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,i)}}:function(t,e,i){return function(){this.style.setProperty(t,e,i)}})(t,e,null==i?"":i)):O(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?function(t){return function(){delete this[t]}}:"function"==typeof e?function(t,e){return function(){var i=e.apply(this,arguments);null==i?delete this[t]:this[t]=i}}:function(t,e){return function(){this[t]=e}})(t,e)):this.node()[t]},classed:function(t,e){var i=I(t+"");if(arguments.length<2){for(var r=q(this.node()),n=-1,o=i.length;++n<o;)if(!r.contains(i[n]))return!1;return!0}return this.each(("function"==typeof e?function(t,e){return function(){(e.apply(this,arguments)?D:$)(this,t)}}:e?function(t){return function(){D(this,t)}}:function(t){return function(){$(this,t)}})(i,e))},text:function(t){return arguments.length?this.each(null==t?z:("function"==typeof t?function(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}:function(t){return function(){this.textContent=t}})(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?j:("function"==typeof t?function(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}:function(t){return function(){this.innerHTML=t}})(t)):this.node().innerHTML},raise:function(){return this.each(P)},lower:function(){return this.each(R)},append:function(t){var e="function"==typeof t?t:W(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})},insert:function(t,e){var i="function"==typeof t?t:W(t),r=null==e?U:"function"==typeof e?e:f(e);return this.select(function(){return this.insertBefore(i.apply(this,arguments),r.apply(this,arguments)||null)})},remove:function(){return this.each(H)},clone:function(t){return this.select(t?V:Y)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,i){var r,n,o=(t+"").trim().split(/^|\s+/).map(function(t){var e="",i=t.indexOf(".");return i>=0&&(e=t.slice(i+1),t=t.slice(0,i)),{type:t,name:e}}),a=o.length;if(arguments.length<2){var s=this.node().__on;if(s){for(var l,h=0,c=s.length;h<c;++h)for(r=0,l=s[h];r<a;++r)if((n=o[r]).type===l.type&&n.name===l.name)return l.value}return}for(r=0,s=e?X:G;r<a;++r)this.each(s(o[r],e,i));return this},dispatch:function(t,e){return this.each(("function"==typeof e?function(t,e){return function(){return Z(this,t,e.apply(this,arguments))}}:function(t,e){return function(){return Z(this,t,e)}})(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,i=t.length;e<i;++e)for(var r,n=t[e],o=0,a=n.length;o<a;++o)(r=n[o])&&(yield r)}};var tt={value:()=>{}};function te(){for(var t,e=0,i=arguments.length,r={};e<i;++e){if(!(t=arguments[e]+"")||t in r||/[\s.]/.test(t))throw Error("illegal type: "+t);r[t]=[]}return new ti(r)}function ti(t){this._=t}function tr(t,e,i){for(var r=0,n=t.length;r<n;++r)if(t[r].name===e){t[r]=tt,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=i&&t.push({name:e,value:i}),t}ti.prototype=te.prototype={constructor:ti,on:function(t,e){var i,r=this._,n=(t+"").trim().split(/^|\s+/).map(function(t){var e="",i=t.indexOf(".");if(i>=0&&(e=t.slice(i+1),t=t.slice(0,i)),t&&!r.hasOwnProperty(t))throw Error("unknown type: "+t);return{type:t,name:e}}),o=-1,a=n.length;if(arguments.length<2){for(;++o<a;)if((i=(t=n[o]).type)&&(i=function(t,e){for(var i,r=0,n=t.length;r<n;++r)if((i=t[r]).name===e)return i.value}(r[i],t.name)))return i;return}if(null!=e&&"function"!=typeof e)throw Error("invalid callback: "+e);for(;++o<a;)if(i=(t=n[o]).type)r[i]=tr(r[i],t.name,e);else if(null==e)for(i in r)r[i]=tr(r[i],t.name,null);return this},copy:function(){var t={},e=this._;for(var i in e)t[i]=e[i].slice();return new ti(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var i,r,n=Array(i),o=0;o<i;++o)n[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(r=this._[t],o=0,i=r.length;o<i;++o)r[o].value.apply(e,n)},apply:function(t,e,i){if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(var r=this._[t],n=0,o=r.length;n<o;++n)r[n].value.apply(e,i)}};var tn,to,ta,ts,tl,th,tc,tu,td,tf=0,tp=0,tg=0,tm=0,ty=0,t_=0,tb="object"==typeof performance&&performance.now?performance:Date,tC="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function tx(){return ty||(tC(tv),ty=tb.now()+t_)}function tv(){ty=0}function tk(){this._call=this._time=this._next=null}function tT(t,e,i){var r=new tk;return r.restart(t,e,i),r}function tA(){ty=(tm=tb.now())+t_,tf=tp=0;try{!function(){tx(),++tf;for(var t,e=tu;e;)(t=ty-e._time)>=0&&e._call.call(void 0,t),e=e._next;--tf}()}finally{tf=0,function(){for(var t,e,i=tu,r=1/0;i;)i._call?(r>i._time&&(r=i._time),t=i,i=i._next):(e=i._next,i._next=null,i=t?t._next=e:tu=e);td=t,tw(r)}(),ty=0}}function tS(){var t=tb.now(),e=t-tm;e>1e3&&(t_-=e,tm=t)}function tw(t){!tf&&(tp&&(tp=clearTimeout(tp)),t-ty>24?(t<1/0&&(tp=setTimeout(tA,t-tb.now()-t_)),tg&&(tg=clearInterval(tg))):(tg||(tm=tb.now(),tg=setInterval(tS,1e3)),tf=1,tC(tA)))}function tB(t,e,i){var r=new tk;return e=null==e?0:+e,r.restart(i=>{r.stop(),t(i+e)},e,i),r}tk.prototype=tT.prototype={constructor:tk,restart:function(t,e,i){if("function"!=typeof t)throw TypeError("callback is not a function");i=(null==i?tx():+i)+(null==e?0:+e),this._next||td===this||(td?td._next=this:tu=this,td=this),this._call=t,this._time=i,tw()},stop:function(){this._call&&(this._call=null,this._time=1/0,tw())}};var tF=te("start","end","cancel","interrupt"),tL=[];function tM(t,e,i,r,n,o){var a=t.__transition;if(a){if(i in a)return}else t.__transition={};!function(t,e,i){var r,n=t.__transition;function o(l){var h,c,u,d;if(1!==i.state)return s();for(h in n)if((d=n[h]).name===i.name){if(3===d.state)return tB(o);4===d.state?(d.state=6,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete n[h]):+h<e&&(d.state=6,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete n[h])}if(tB(function(){3===i.state&&(i.state=4,i.timer.restart(a,i.delay,i.time),a(l))}),i.state=2,i.on.call("start",t,t.__data__,i.index,i.group),2===i.state){for(h=0,i.state=3,r=Array(u=i.tween.length),c=-1;h<u;++h)(d=i.tween[h].value.call(t,t.__data__,i.index,i.group))&&(r[++c]=d);r.length=c+1}}function a(e){for(var n=e<i.duration?i.ease.call(null,e/i.duration):(i.timer.restart(s),i.state=5,1),o=-1,a=r.length;++o<a;)r[o].call(t,n);5===i.state&&(i.on.call("end",t,t.__data__,i.index,i.group),s())}function s(){for(var r in i.state=6,i.timer.stop(),delete n[e],n)return;delete t.__transition}n[e]=i,i.timer=tT(function(t){i.state=1,i.timer.restart(o,i.delay,i.time),i.delay<=t&&o(t-i.delay)},0,i.time)}(t,i,{name:e,index:r,group:n,on:tF,tween:tL,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})}function tE(t,e){var i=tI(t,e);if(i.state>0)throw Error("too late; already scheduled");return i}function tO(t,e){var i=tI(t,e);if(i.state>3)throw Error("too late; already running");return i}function tI(t,e){var i=t.__transition;if(!i||!(i=i[e]))throw Error("transition not found");return i}function tq(t,e){return t=+t,e=+e,function(i){return t*(1-i)+e*i}}var tN=180/Math.PI,tD={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function t$(t,e,i,r,n,o){var a,s,l;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(l=t*i+e*r)&&(i-=t*l,r-=e*l),(s=Math.sqrt(i*i+r*r))&&(i/=s,r/=s,l/=s),t*r<e*i&&(t=-t,e=-e,l=-l,a=-a),{translateX:n,translateY:o,rotate:Math.atan2(e,t)*tN,skewX:Math.atan(l)*tN,scaleX:a,scaleY:s}}function tz(t,e,i,r){function n(t){return t.length?t.pop()+" ":""}return function(o,a){var s,l,h,c,u=[],d=[];return o=t(o),a=t(a),!function(t,r,n,o,a,s){if(t!==n||r!==o){var l=a.push("translate(",null,e,null,i);s.push({i:l-4,x:tq(t,n)},{i:l-2,x:tq(r,o)})}else(n||o)&&a.push("translate("+n+e+o+i)}(o.translateX,o.translateY,a.translateX,a.translateY,u,d),(s=o.rotate)!==(l=a.rotate)?(s-l>180?l+=360:l-s>180&&(s+=360),d.push({i:u.push(n(u)+"rotate(",null,r)-2,x:tq(s,l)})):l&&u.push(n(u)+"rotate("+l+r),(h=o.skewX)!==(c=a.skewX)?d.push({i:u.push(n(u)+"skewX(",null,r)-2,x:tq(h,c)}):c&&u.push(n(u)+"skewX("+c+r),!function(t,e,i,r,o,a){if(t!==i||e!==r){var s=o.push(n(o)+"scale(",null,",",null,")");a.push({i:s-4,x:tq(t,i)},{i:s-2,x:tq(e,r)})}else(1!==i||1!==r)&&o.push(n(o)+"scale("+i+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,u,d),o=a=null,function(t){for(var e,i=-1,r=d.length;++i<r;)u[(e=d[i]).i]=e.x(t);return u.join("")}}}var tj=tz(function(t){let e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?tD:t$(e.a,e.b,e.c,e.d,e.e,e.f)},"px, ","px)","deg)"),tP=tz(function(t){return null==t?tD:(tn||(tn=document.createElementNS("http://www.w3.org/2000/svg","g")),tn.setAttribute("transform",t),t=tn.transform.baseVal.consolidate())?t$((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):tD},", ",")",")");function tR(t,e,i){var r=t._id;return t.each(function(){var t=tO(this,r);(t.value||(t.value={}))[e]=i.apply(this,arguments)}),function(t){return tI(t,r).value[e]}}function tW(t,e,i){t.prototype=e.prototype=i,i.constructor=t}function tU(t,e){var i=Object.create(t.prototype);for(var r in e)i[r]=e[r];return i}function tH(){}var tY="\\s*([+-]?\\d+)\\s*",tV="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",tG="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",tX=/^#([0-9a-f]{3,8})$/,tZ=RegExp(`^rgb\\(${tY},${tY},${tY}\\)$`),tJ=RegExp(`^rgb\\(${tG},${tG},${tG}\\)$`),tQ=RegExp(`^rgba\\(${tY},${tY},${tY},${tV}\\)$`),tK=RegExp(`^rgba\\(${tG},${tG},${tG},${tV}\\)$`),t0=RegExp(`^hsl\\(${tV},${tG},${tG}\\)$`),t1=RegExp(`^hsla\\(${tV},${tG},${tG},${tV}\\)$`),t2={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function t5(){return this.rgb().formatHex()}function t3(){return this.rgb().formatRgb()}function t6(t){var e,i;return t=(t+"").trim().toLowerCase(),(e=tX.exec(t))?(i=e[1].length,e=parseInt(e[1],16),6===i?t4(e):3===i?new et(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===i?t8(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===i?t8(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=tZ.exec(t))?new et(e[1],e[2],e[3],1):(e=tJ.exec(t))?new et(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=tQ.exec(t))?t8(e[1],e[2],e[3],e[4]):(e=tK.exec(t))?t8(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=t0.exec(t))?ea(e[1],e[2]/100,e[3]/100,1):(e=t1.exec(t))?ea(e[1],e[2]/100,e[3]/100,e[4]):t2.hasOwnProperty(t)?t4(t2[t]):"transparent"===t?new et(NaN,NaN,NaN,0):null}function t4(t){return new et(t>>16&255,t>>8&255,255&t,1)}function t8(t,e,i,r){return r<=0&&(t=e=i=NaN),new et(t,e,i,r)}function t7(t){return(t instanceof tH||(t=t6(t)),t)?new et((t=t.rgb()).r,t.g,t.b,t.opacity):new et}function t9(t,e,i,r){return 1==arguments.length?t7(t):new et(t,e,i,null==r?1:r)}function et(t,e,i,r){this.r=+t,this.g=+e,this.b=+i,this.opacity=+r}function ee(){return`#${eo(this.r)}${eo(this.g)}${eo(this.b)}`}function ei(){let t=er(this.opacity);return`${1===t?"rgb(":"rgba("}${en(this.r)}, ${en(this.g)}, ${en(this.b)}${1===t?")":`, ${t})`}`}function er(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function en(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function eo(t){return((t=en(t))<16?"0":"")+t.toString(16)}function ea(t,e,i,r){return r<=0?t=e=i=NaN:i<=0||i>=1?t=e=NaN:e<=0&&(t=NaN),new el(t,e,i,r)}function es(t){if(t instanceof el)return new el(t.h,t.s,t.l,t.opacity);if(t instanceof tH||(t=t6(t)),!t)return new el;if(t instanceof el)return t;var e=(t=t.rgb()).r/255,i=t.g/255,r=t.b/255,n=Math.min(e,i,r),o=Math.max(e,i,r),a=NaN,s=o-n,l=(o+n)/2;return s?(a=e===o?(i-r)/s+(i<r)*6:i===o?(r-e)/s+2:(e-i)/s+4,s/=l<.5?o+n:2-o-n,a*=60):s=l>0&&l<1?0:a,new el(a,s,l,t.opacity)}function el(t,e,i,r){this.h=+t,this.s=+e,this.l=+i,this.opacity=+r}function eh(t){return(t=(t||0)%360)<0?t+360:t}function ec(t){return Math.max(0,Math.min(1,t||0))}function eu(t,e,i){return(t<60?e+(i-e)*t/60:t<180?i:t<240?e+(i-e)*(240-t)/60:e)*255}function ed(t,e,i,r,n){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*i+(1+3*t+3*o-3*a)*r+a*n)/6}tW(tH,t6,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:t5,formatHex:t5,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return es(this).formatHsl()},formatRgb:t3,toString:t3}),tW(et,t9,tU(tH,{brighter(t){return t=null==t?1.4285714285714286:Math.pow(1.4285714285714286,t),new et(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new et(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new et(en(this.r),en(this.g),en(this.b),er(this.opacity))},displayable(){return -.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ee,formatHex:ee,formatHex8:function(){return`#${eo(this.r)}${eo(this.g)}${eo(this.b)}${eo((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:ei,toString:ei})),tW(el,function(t,e,i,r){return 1==arguments.length?es(t):new el(t,e,i,null==r?1:r)},tU(tH,{brighter(t){return t=null==t?1.4285714285714286:Math.pow(1.4285714285714286,t),new el(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new el(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,i=this.l,r=i+(i<.5?i:1-i)*e,n=2*i-r;return new et(eu(t>=240?t-240:t+120,n,r),eu(t,n,r),eu(t<120?t+240:t-120,n,r),this.opacity)},clamp(){return new el(eh(this.h),ec(this.s),ec(this.l),er(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=er(this.opacity);return`${1===t?"hsl(":"hsla("}${eh(this.h)}, ${100*ec(this.s)}%, ${100*ec(this.l)}%${1===t?")":`, ${t})`}`}}));let ef=t=>()=>t;function ep(t,e){return function(i){return t+i*e}}function eg(t,e){var i=e-t;return i?ep(t,i):ef(isNaN(t)?e:t)}let em=function t(e){var i,r=1==(i=+(i=e))?eg:function(t,e){var r,n,o;return e-t?(r=t,n=e,r=Math.pow(r,o=i),n=Math.pow(n,o)-r,o=1/o,function(t){return Math.pow(r+t*n,o)}):ef(isNaN(t)?e:t)};function n(t,e){var i=r((t=t9(t)).r,(e=t9(e)).r),n=r(t.g,e.g),o=r(t.b,e.b),a=eg(t.opacity,e.opacity);return function(e){return t.r=i(e),t.g=n(e),t.b=o(e),t.opacity=a(e),t+""}}return n.gamma=t,n}(1);function ey(t){return function(e){var i,r,n=e.length,o=Array(n),a=Array(n),s=Array(n);for(i=0;i<n;++i)r=t9(e[i]),o[i]=r.r||0,a[i]=r.g||0,s[i]=r.b||0;return o=t(o),a=t(a),s=t(s),r.opacity=1,function(t){return r.r=o(t),r.g=a(t),r.b=s(t),r+""}}}ey(function(t){var e=t.length-1;return function(i){var r=i<=0?i=0:i>=1?(i=1,e-1):Math.floor(i*e),n=t[r],o=t[r+1],a=r>0?t[r-1]:2*n-o,s=r<e-1?t[r+2]:2*o-n;return ed((i-r/e)*e,a,n,o,s)}}),ey(function(t){var e=t.length;return function(i){var r=Math.floor(((i%=1)<0?++i:i)*e),n=t[(r+e-1)%e],o=t[r%e],a=t[(r+1)%e],s=t[(r+2)%e];return ed((i-r/e)*e,n,o,a,s)}});var e_=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,eb=RegExp(e_.source,"g");function eC(t,e){var i,r,n,o,a,s=e_.lastIndex=eb.lastIndex=0,l=-1,h=[],c=[];for(t+="",e+="";(n=e_.exec(t))&&(o=eb.exec(e));)(a=o.index)>s&&(a=e.slice(s,a),h[l]?h[l]+=a:h[++l]=a),(n=n[0])===(o=o[0])?h[l]?h[l]+=o:h[++l]=o:(h[++l]=null,c.push({i:l,x:tq(n,o)})),s=eb.lastIndex;return s<e.length&&(a=e.slice(s),h[l]?h[l]+=a:h[++l]=a),h.length<2?c[0]?(i=c[0].x,function(t){return i(t)+""}):(r=e,function(){return r}):(e=c.length,function(t){for(var i,r=0;r<e;++r)h[(i=c[r]).i]=i.x(t);return h.join("")})}function ex(t,e){var i;return("number"==typeof e?tq:e instanceof t6?em:(i=t6(e))?(e=i,em):eC)(t,e)}var ev=K.prototype.constructor;function ek(t){return function(){this.style.removeProperty(t)}}var eT=0;function eA(t,e,i,r){this._groups=t,this._parents=e,this._name=i,this._id=r}var eS=K.prototype;eA.prototype=(function(t){return K().transition(t)}).prototype={constructor:eA,select:function(t){var e=this._name,i=this._id;"function"!=typeof t&&(t=f(t));for(var r=this._groups,n=r.length,o=Array(n),a=0;a<n;++a)for(var s,l,h=r[a],c=h.length,u=o[a]=Array(c),d=0;d<c;++d)(s=h[d])&&(l=t.call(s,s.__data__,d,h))&&("__data__"in s&&(l.__data__=s.__data__),u[d]=l,tM(u[d],e,i,d,u,tI(s,i)));return new eA(o,this._parents,e,i)},selectAll:function(t){var e=this._name,i=this._id;"function"!=typeof t&&(t=m(t));for(var r=this._groups,n=r.length,o=[],a=[],s=0;s<n;++s)for(var l,h=r[s],c=h.length,u=0;u<c;++u)if(l=h[u]){for(var d,f=t.call(l,l.__data__,u,h),p=tI(l,i),g=0,y=f.length;g<y;++g)(d=f[g])&&tM(d,e,i,g,f,p);o.push(f),a.push(l)}return new eA(o,a,e,i)},selectChild:eS.selectChild,selectChildren:eS.selectChildren,filter:function(t){"function"!=typeof t&&(t=y(t));for(var e=this._groups,i=e.length,r=Array(i),n=0;n<i;++n)for(var o,a=e[n],s=a.length,l=r[n]=[],h=0;h<s;++h)(o=a[h])&&t.call(o,o.__data__,h,a)&&l.push(o);return new eA(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw Error();for(var e=this._groups,i=t._groups,r=e.length,n=i.length,o=Math.min(r,n),a=Array(r),s=0;s<o;++s)for(var l,h=e[s],c=i[s],u=h.length,d=a[s]=Array(u),f=0;f<u;++f)(l=h[f]||c[f])&&(d[f]=l);for(;s<r;++s)a[s]=e[s];return new eA(a,this._parents,this._name,this._id)},selection:function(){return new ev(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,i=++eT,r=this._groups,n=r.length,o=0;o<n;++o)for(var a,s=r[o],l=s.length,h=0;h<l;++h)if(a=s[h]){var c=tI(a,e);tM(a,t,i,h,s,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new eA(r,this._parents,t,i)},call:eS.call,nodes:eS.nodes,node:eS.node,size:eS.size,empty:eS.empty,each:eS.each,on:function(t,e){var i,r,n,o=this._id;return arguments.length<2?tI(this.node(),o).on.on(t):this.each((n=(t+"").trim().split(/^|\s+/).every(function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t})?tE:tO,function(){var a=n(this,o),s=a.on;s!==i&&(r=(i=s).copy()).on(t,e),a.on=r}))},attr:function(t,e){var i=M(t),r="transform"===i?tP:ex;return this.attrTween(t,"function"==typeof e?(i.local?function(t,e,i){var r,n,o;return function(){var a,s,l=i(this);return null==l?void this.removeAttributeNS(t.space,t.local):(a=this.getAttributeNS(t.space,t.local))===(s=l+"")?null:a===r&&s===n?o:(n=s,o=e(r=a,l))}}:function(t,e,i){var r,n,o;return function(){var a,s,l=i(this);return null==l?void this.removeAttribute(t):(a=this.getAttribute(t))===(s=l+"")?null:a===r&&s===n?o:(n=s,o=e(r=a,l))}})(i,r,tR(this,"attr."+t,e)):null==e?(i.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(i):(i.local?function(t,e,i){var r,n,o=i+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===r?n:n=e(r=a,i)}}:function(t,e,i){var r,n,o=i+"";return function(){var a=this.getAttribute(t);return a===o?null:a===r?n:n=e(r=a,i)}})(i,r,e))},attrTween:function(t,e){var i="attr."+t;if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==e)return this.tween(i,null);if("function"!=typeof e)throw Error();var r=M(t);return this.tween(i,(r.local?function(t,e){var i,r;function n(){var n=e.apply(this,arguments);return n!==r&&(i=(r=n)&&function(e){this.setAttributeNS(t.space,t.local,n.call(this,e))}),i}return n._value=e,n}:function(t,e){var i,r;function n(){var n=e.apply(this,arguments);return n!==r&&(i=(r=n)&&function(e){this.setAttribute(t,n.call(this,e))}),i}return n._value=e,n})(r,e))},style:function(t,e,i){var r,n,o,a,s,l,h,c,u,d,f,p,g,m,y,_,b,C,x,v,k,T="transform"==(t+="")?tj:ex;return null==e?this.styleTween(t,(r=t,function(){var t=O(this,r),e=(this.style.removeProperty(r),O(this,r));return t===e?null:t===n&&e===o?a:a=T(n=t,o=e)})).on("end.style."+t,ek(t)):"function"==typeof e?this.styleTween(t,(s=t,l=tR(this,"style."+t,e),function(){var t=O(this,s),e=l(this),i=e+"";return null==e&&(this.style.removeProperty(s),i=e=O(this,s)),t===i?null:t===h&&i===c?u:(c=i,u=T(h=t,e))})).each((d=this._id,b="end."+(_="style."+(f=t)),function(){var t=tO(this,d),e=t.on,i=null==t.value[_]?y||(y=ek(f)):void 0;(e!==p||m!==i)&&(g=(p=e).copy()).on(b,m=i),t.on=g})):this.styleTween(t,(C=t,k=e+"",function(){var t=O(this,C);return t===k?null:t===x?v:v=T(x=t,e)}),i).on("end.style."+t,null)},styleTween:function(t,e,i){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw Error();return this.tween(r,function(t,e,i){var r,n;function o(){var o=e.apply(this,arguments);return o!==n&&(r=(n=o)&&function(e){this.style.setProperty(t,o.call(this,e),i)}),r}return o._value=e,o}(t,e,null==i?"":i))},text:function(t){var e,i;return this.tween("text","function"==typeof t?(e=tR(this,"text",t),function(){var t=e(this);this.textContent=null==t?"":t}):(i=null==t?"":t+"",function(){this.textContent=i}))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw Error();return this.tween(e,function(t){var e,i;function r(){var r=t.apply(this,arguments);return r!==i&&(e=(i=r)&&function(t){this.textContent=r.call(this,t)}),e}return r._value=t,r}(t))},remove:function(){var t;return this.on("end.remove",(t=this._id,function(){var e=this.parentNode;for(var i in this.__transition)if(+i!==t)return;e&&e.removeChild(this)}))},tween:function(t,e){var i=this._id;if(t+="",arguments.length<2){for(var r,n=tI(this.node(),i).tween,o=0,a=n.length;o<a;++o)if((r=n[o]).name===t)return r.value;return null}return this.each((null==e?function(t,e){var i,r;return function(){var n=tO(this,t),o=n.tween;if(o!==i){r=i=o;for(var a=0,s=r.length;a<s;++a)if(r[a].name===e){(r=r.slice()).splice(a,1);break}}n.tween=r}}:function(t,e,i){var r,n;if("function"!=typeof i)throw Error();return function(){var o=tO(this,t),a=o.tween;if(a!==r){n=(r=a).slice();for(var s={name:e,value:i},l=0,h=n.length;l<h;++l)if(n[l].name===e){n[l]=s;break}l===h&&n.push(s)}o.tween=n}})(i,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?function(t,e){return function(){tE(this,t).delay=+e.apply(this,arguments)}}:function(t,e){return e=+e,function(){tE(this,t).delay=e}})(e,t)):tI(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?function(t,e){return function(){tO(this,t).duration=+e.apply(this,arguments)}}:function(t,e){return e=+e,function(){tO(this,t).duration=e}})(e,t)):tI(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(function(t,e){if("function"!=typeof e)throw Error();return function(){tO(this,t).ease=e}}(e,t)):tI(this.node(),e).ease},easeVarying:function(t){var e;if("function"!=typeof t)throw Error();return this.each((e=this._id,function(){var i=t.apply(this,arguments);if("function"!=typeof i)throw Error();tO(this,e).ease=i}))},end:function(){var t,e,i=this,r=i._id,n=i.size();return new Promise(function(o,a){var s={value:a},l={value:function(){0==--n&&o()}};i.each(function(){var i=tO(this,r),n=i.on;n!==t&&((e=(t=n).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(l)),i.on=e}),0===n&&o()})},[Symbol.iterator]:eS[Symbol.iterator]};var ew={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};K.prototype.interrupt=function(t){return this.each(function(){!function(t,e){var i,r,n,o=t.__transition,a=!0;if(o){for(n in e=null==e?null:e+"",o){if((i=o[n]).name!==e){a=!1;continue}r=i.state>2&&i.state<5,i.state=6,i.timer.stop(),i.on.call(r?"interrupt":"cancel",t,t.__data__,i.index,i.group),delete o[n]}a&&delete t.__transition}}(this,t)})},K.prototype.transition=function(t){var e,i;t instanceof eA?(e=t._id,t=t._name):(e=++eT,(i=ew).time=tx(),t=null==t?null:t+"");for(var r=this._groups,n=r.length,o=0;o<n;++o)for(var a,s=r[o],l=s.length,h=0;h<l;++h)(a=s[h])&&tM(a,t,e,h,s,i||function(t,e){for(var i;!(i=t.__transition)||!(i=i[e]);)if(!(t=t.parentNode))throw Error(`transition ${e} not found`);return i}(a,e));return new eA(r,this._parents,t,e)};let{abs:eB,max:eF,min:eL}=Math;function eM(t){return{type:t}}function eE(t){if(!t.ok)throw Error(t.status+" "+t.statusText);return t.text()}function eO(t){return(e,i)=>fetch(e,i).then(eE).then(e=>(new DOMParser).parseFromString(e,t))}["w","e"].map(eM),["n","s"].map(eM),["n","w","e","s","nw","ne","sw","se"].map(eM),eO("application/xml"),eO("text/html");var eI=eO("image/svg+xml");let eq=Math.PI/180,eN=180/Math.PI,eD=4/29,e$=6/29,ez=6/29*3*(6/29),ej=6/29*(6/29)*(6/29);function eP(t){if(t instanceof eR)return new eR(t.l,t.a,t.b,t.opacity);if(t instanceof eG)return eX(t);t instanceof et||(t=t7(t));var e,i,r=eY(t.r),n=eY(t.g),o=eY(t.b),a=eW((.2225045*r+.7168786*n+.0606169*o)/1);return r===n&&n===o?e=i=a:(e=eW((.4360747*r+.3850649*n+.1430804*o)/.96422),i=eW((.0139322*r+.0971045*n+.7141733*o)/.82521)),new eR(116*a-16,500*(e-a),200*(a-i),t.opacity)}function eR(t,e,i,r){this.l=+t,this.a=+e,this.b=+i,this.opacity=+r}function eW(t){return t>ej?Math.pow(t,1/3):t/ez+eD}function eU(t){return t>e$?t*t*t:ez*(t-eD)}function eH(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function eY(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function eV(t,e,i,r){return 1==arguments.length?function(t){if(t instanceof eG)return new eG(t.h,t.c,t.l,t.opacity);if(t instanceof eR||(t=eP(t)),0===t.a&&0===t.b)return new eG(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*eN;return new eG(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}(t):new eG(t,e,i,null==r?1:r)}function eG(t,e,i,r){this.h=+t,this.c=+e,this.l=+i,this.opacity=+r}function eX(t){if(isNaN(t.h))return new eR(t.l,0,0,t.opacity);var e=t.h*eq;return new eR(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}function eZ(t){return function(e,i){var r=t((e=eV(e)).h,(i=eV(i)).h),n=eg(e.c,i.c),o=eg(e.l,i.l),a=eg(e.opacity,i.opacity);return function(t){return e.h=r(t),e.c=n(t),e.l=o(t),e.opacity=a(t),e+""}}}tW(eR,function(t,e,i,r){return 1==arguments.length?eP(t):new eR(t,e,i,null==r?1:r)},tU(tH,{brighter(t){return new eR(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker(t){return new eR(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,i=isNaN(this.b)?t:t-this.b/200;return new et(eH(3.1338561*(e=.96422*eU(e))-1.6168667*(t=1*eU(t))-.4906146*(i=.82521*eU(i))),eH(-.9787684*e+1.9161415*t+.033454*i),eH(.0719453*e-.2289914*t+1.4052427*i),this.opacity)}})),tW(eG,eV,tU(tH,{brighter(t){return new eG(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker(t){return new eG(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb(){return eX(this).rgb()}}));let eJ=eZ(function(t,e){var i=e-t;return i?ep(t,i>180||i<-180?i-360*Math.round(i/360):i):ef(isNaN(t)?e:t)});eZ(eg);let eQ=Math.sqrt(50),eK=Math.sqrt(10),e0=Math.sqrt(2);function e1(t,e,i){let r,n,o;let a=(e-t)/Math.max(0,i),s=Math.floor(Math.log10(a)),l=a/Math.pow(10,s),h=l>=eQ?10:l>=eK?5:l>=e0?2:1;return(s<0?(r=Math.round(t*(o=Math.pow(10,-s)/h)),n=Math.round(e*o),r/o<t&&++r,n/o>e&&--n,o=-o):(r=Math.round(t/(o=Math.pow(10,s)*h)),n=Math.round(e/o),r*o<t&&++r,n*o>e&&--n),n<r&&.5<=i&&i<2)?e1(t,e,2*i):[r,n,o]}function e2(t,e,i){return e1(t=+t,e=+e,i=+i)[2]}function e5(t,e,i){e=+e,t=+t,i=+i;let r=e<t,n=r?e2(e,t,i):e2(t,e,i);return(r?-1:1)*(n<0?-(1/n):n)}function e3(t,e){return null==t||null==e?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function e6(t,e){return null==t||null==e?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function e4(t){let e,i,r;function n(t,r,o=0,a=t.length){if(o<a){if(0!==e(r,r))return a;do{let e=o+a>>>1;0>i(t[e],r)?o=e+1:a=e}while(o<a)}return o}return 2!==t.length?(e=e3,i=(e,i)=>e3(t(e),i),r=(e,i)=>t(e)-i):(e=t===e3||t===e6?t:e8,i=t,r=t),{left:n,center:function(t,e,i=0,o=t.length){let a=n(t,e,i,o-1);return a>i&&r(t[a-1],e)>-r(t[a],e)?a-1:a},right:function(t,r,n=0,o=t.length){if(n<o){if(0!==e(r,r))return o;do{let e=n+o>>>1;0>=i(t[e],r)?n=e+1:o=e}while(n<o)}return n}}}function e8(){return 0}let e7=e4(e3),e9=e7.right;function it(t,e){return t=+t,e=+e,function(i){return Math.round(t*(1-i)+e*i)}}function ie(t){return+t}e7.left,e4(function(t){return null===t?NaN:+t}).center;var ii=[0,1];function ir(t){return t}function io(t,e){var i;return(e-=t=+t)?function(i){return(i-t)/e}:(i=isNaN(e)?NaN:.5,function(){return i})}function ia(t,e,i){var r=t[0],n=t[1],o=e[0],a=e[1];return n<r?(r=io(n,r),o=i(a,o)):(r=io(r,n),o=i(o,a)),function(t){return o(r(t))}}function is(t,e,i){var r=Math.min(t.length,e.length)-1,n=Array(r),o=Array(r),a=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<r;)n[a]=io(t[a],t[a+1]),o[a]=i(e[a],e[a+1]);return function(e){var i=e9(t,e,1,r)-1;return o[i](n[i](e))}}function il(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function ih(){return(function(){var t,e,i,r,n,o,a=ii,s=ii,l=function t(e,i){var r,n,o=typeof i;return null==i||"boolean"===o?ef(i):("number"===o?tq:"string"===o?(n=t6(i))?(i=n,em):eC:i instanceof t6?em:i instanceof Date?function(t,e){var i=new Date;return t=+t,e=+e,function(r){return i.setTime(t*(1-r)+e*r),i}}:!ArrayBuffer.isView(r=i)||r instanceof DataView?Array.isArray(i)?function(e,i){var r,n=i?i.length:0,o=e?Math.min(n,e.length):0,a=Array(o),s=Array(n);for(r=0;r<o;++r)a[r]=t(e[r],i[r]);for(;r<n;++r)s[r]=i[r];return function(t){for(r=0;r<o;++r)s[r]=a[r](t);return s}}:"function"!=typeof i.valueOf&&"function"!=typeof i.toString||isNaN(i)?function(e,i){var r,n={},o={};for(r in(null===e||"object"!=typeof e)&&(e={}),(null===i||"object"!=typeof i)&&(i={}),i)r in e?n[r]=t(e[r],i[r]):o[r]=i[r];return function(t){for(r in n)o[r]=n[r](t);return o}}:tq:function(t,e){e||(e=[]);var i,r=t?Math.min(e.length,t.length):0,n=e.slice();return function(o){for(i=0;i<r;++i)n[i]=t[i]*(1-o)+e[i]*o;return n}})(e,i)},h=ir;function c(){var t,e,i,l=Math.min(a.length,s.length);return h!==ir&&(t=a[0],e=a[l-1],t>e&&(i=t,t=e,e=i),h=function(i){return Math.max(t,Math.min(e,i))}),r=l>2?is:ia,n=o=null,u}function u(e){return null==e||isNaN(e=+e)?i:(n||(n=r(a.map(t),s,l)))(t(h(e)))}return u.invert=function(i){return h(e((o||(o=r(s,a.map(t),tq)))(i)))},u.domain=function(t){return arguments.length?(a=Array.from(t,ie),c()):a.slice()},u.range=function(t){return arguments.length?(s=Array.from(t),c()):s.slice()},u.rangeRound=function(t){return s=Array.from(t),l=it,c()},u.clamp=function(t){return arguments.length?(h=!!t||ir,c()):h!==ir},u.interpolate=function(t){return arguments.length?(l=t,c()):l},u.unknown=function(t){return arguments.length?(i=t,u):i},function(i,r){return t=i,e=r,c()}})()(ir,ir)}function ic(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}var iu=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function id(t){var e;if(!(e=iu.exec(t)))throw Error("invalid format: "+t);return new ip({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function ip(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function ig(t,e){if((i=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var i,r=t.slice(0,i);return[r.length>1?r[0]+r.slice(2):r,+t.slice(i+1)]}function im(t){return(t=ig(Math.abs(t)))?t[1]:NaN}function iy(t,e){var i=ig(t,e);if(!i)return t+"";var r=i[0],n=i[1];return n<0?"0."+Array(-n).join("0")+r:r.length>n+1?r.slice(0,n+1)+"."+r.slice(n+1):r+Array(n-r.length+2).join("0")}id.prototype=ip.prototype,ip.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};let i_={"%":(t,e)=>(100*t).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>iy(100*t,e),r:iy,s:function(t,e){var i=ig(t,e);if(!i)return t+"";var r=i[0],n=i[1],o=n-(to=3*Math.max(-8,Math.min(8,Math.floor(n/3))))+1,a=r.length;return o===a?r:o>a?r+Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+Array(1-o).join("0")+ig(t,Math.max(0,e+o-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function ib(t){return t}var iC=Array.prototype.map,ix=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];ts=(ta=function(t){var e,i,r,n=void 0===t.grouping||void 0===t.thousands?ib:(e=iC.call(t.grouping,Number),i=t.thousands+"",function(t,r){for(var n=t.length,o=[],a=0,s=e[0],l=0;n>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),o.push(t.substring(n-=s,n+s)),!((l+=s+1)>r));)s=e[a=(a+1)%e.length];return o.reverse().join(i)}),o=void 0===t.currency?"":t.currency[0]+"",a=void 0===t.currency?"":t.currency[1]+"",s=void 0===t.decimal?".":t.decimal+"",l=void 0===t.numerals?ib:(r=iC.call(t.numerals,String),function(t){return t.replace(/[0-9]/g,function(t){return r[+t]})}),h=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"\u2212":t.minus+"",u=void 0===t.nan?"NaN":t.nan+"";function d(t){var e=(t=id(t)).fill,i=t.align,r=t.sign,d=t.symbol,f=t.zero,p=t.width,g=t.comma,m=t.precision,y=t.trim,_=t.type;"n"===_?(g=!0,_="g"):i_[_]||(void 0===m&&(m=12),y=!0,_="g"),(f||"0"===e&&"="===i)&&(f=!0,e="0",i="=");var b="$"===d?o:"#"===d&&/[boxX]/.test(_)?"0"+_.toLowerCase():"",C="$"===d?a:/[%p]/.test(_)?h:"",x=i_[_],v=/[defgprs%]/.test(_);function k(t){var o,a,h,d=b,k=C;if("c"===_)k=x(t)+k,t="";else{var T=(t=+t)<0||1/t<0;if(t=isNaN(t)?u:x(Math.abs(t),m),y&&(t=function(t){t:for(var e,i=t.length,r=1,n=-1;r<i;++r)switch(t[r]){case".":n=e=r;break;case"0":0===n&&(n=r),e=r;break;default:if(!+t[r])break t;n>0&&(n=0)}return n>0?t.slice(0,n)+t.slice(e+1):t}(t)),T&&0==+t&&"+"!==r&&(T=!1),d=(T?"("===r?r:c:"-"===r||"("===r?"":r)+d,k=("s"===_?ix[8+to/3]:"")+k+(T&&"("===r?")":""),v){for(o=-1,a=t.length;++o<a;)if(48>(h=t.charCodeAt(o))||h>57){k=(46===h?s+t.slice(o+1):t.slice(o))+k,t=t.slice(0,o);break}}}g&&!f&&(t=n(t,1/0));var A=d.length+t.length+k.length,S=A<p?Array(p-A+1).join(e):"";switch(g&&f&&(t=n(S+t,S.length?p-k.length:1/0),S=""),i){case"<":t=d+t+k+S;break;case"=":t=d+S+t+k;break;case"^":t=S.slice(0,A=S.length>>1)+d+t+k+S.slice(A);break;default:t=S+d+t+k}return l(t)}return m=void 0===m?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,m)):Math.max(0,Math.min(20,m)),k.toString=function(){return t+""},k}return{format:d,formatPrefix:function(t,e){var i=d(((t=id(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(im(e)/3))),n=Math.pow(10,-r),o=ix[8+r/3];return function(t){return i(n*t)+o}}}}({thousands:",",grouping:[3],currency:["$",""]})).format,tl=ta.formatPrefix;class iv extends Map{constructor(t,e=iT){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=t)for(let[e,i]of t)this.set(e,i)}get(t){return super.get(ik(this,t))}has(t){return super.has(ik(this,t))}set(t,e){return super.set(function({_intern:t,_key:e},i){let r=e(i);return t.has(r)?t.get(r):(t.set(r,i),i)}(this,t),e)}delete(t){return super.delete(function({_intern:t,_key:e},i){let r=e(i);return t.has(r)&&(i=t.get(r),t.delete(r)),i}(this,t))}}function ik({_intern:t,_key:e},i){let r=e(i);return t.has(r)?t.get(r):i}function iT(t){return null!==t&&"object"==typeof t?t.valueOf():t}let iA=Symbol("implicit"),iS=new Date,iw=new Date;function iB(t,e,i,r){function n(e){return t(e=0==arguments.length?new Date:new Date(+e)),e}return n.floor=e=>(t(e=new Date(+e)),e),n.ceil=i=>(t(i=new Date(i-1)),e(i,1),t(i),i),n.round=t=>{let e=n(t),i=n.ceil(t);return t-e<i-t?e:i},n.offset=(t,i)=>(e(t=new Date(+t),null==i?1:Math.floor(i)),t),n.range=(i,r,o)=>{let a;let s=[];if(i=n.ceil(i),o=null==o?1:Math.floor(o),!(i<r)||!(o>0))return s;do s.push(a=new Date(+i)),e(i,o),t(i);while(a<i&&i<r)return s},n.filter=i=>iB(e=>{if(e>=e)for(;t(e),!i(e);)e.setTime(e-1)},(t,r)=>{if(t>=t){if(r<0)for(;++r<=0;)for(;e(t,-1),!i(t););else for(;--r>=0;)for(;e(t,1),!i(t););}}),i&&(n.count=(e,r)=>(iS.setTime(+e),iw.setTime(+r),t(iS),t(iw),Math.floor(i(iS,iw))),n.every=t=>isFinite(t=Math.floor(t))&&t>0?t>1?n.filter(r?e=>r(e)%t==0:e=>n.count(0,e)%t==0):n:null),n}let iF=iB(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);iF.every=t=>isFinite(t=Math.floor(t))&&t>0?t>1?iB(e=>{e.setTime(Math.floor(e/t)*t)},(e,i)=>{e.setTime(+e+i*t)},(e,i)=>(i-e)/t):iF:null,iF.range;let iL=iB(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+1e3*e)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds());iL.range;let iM=iB(t=>{t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds())},(t,e)=>{t.setTime(+t+6e4*e)},(t,e)=>(e-t)/6e4,t=>t.getMinutes());iM.range;let iE=iB(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+6e4*e)},(t,e)=>(e-t)/6e4,t=>t.getUTCMinutes());iE.range;let iO=iB(t=>{t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds()-6e4*t.getMinutes())},(t,e)=>{t.setTime(+t+36e5*e)},(t,e)=>(e-t)/36e5,t=>t.getHours());iO.range;let iI=iB(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+36e5*e)},(t,e)=>(e-t)/36e5,t=>t.getUTCHours());iI.range;let iq=iB(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5,t=>t.getDate()-1);iq.range;let iN=iB(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1);iN.range;let iD=iB(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5));function i$(t){return iB(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(t,e)=>{t.setDate(t.getDate()+7*e)},(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/6048e5)}iD.range;let iz=i$(0),ij=i$(1),iP=i$(2),iR=i$(3),iW=i$(4),iU=i$(5),iH=i$(6);function iY(t){return iB(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+7*e)},(t,e)=>(e-t)/6048e5)}iz.range,ij.range,iP.range,iR.range,iW.range,iU.range,iH.range;let iV=iY(0),iG=iY(1),iX=iY(2),iZ=iY(3),iJ=iY(4),iQ=iY(5),iK=iY(6);iV.range,iG.range,iX.range,iZ.range,iJ.range,iQ.range,iK.range;let i0=iB(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());i0.range;let i1=iB(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());i1.range;let i2=iB(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());i2.every=t=>isFinite(t=Math.floor(t))&&t>0?iB(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,i)=>{e.setFullYear(e.getFullYear()+i*t)}):null,i2.range;let i5=iB(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());function i3(t,e,i,r,n,o){let a=[[iL,1,1e3],[iL,5,5e3],[iL,15,15e3],[iL,30,3e4],[o,1,6e4],[o,5,3e5],[o,15,9e5],[o,30,18e5],[n,1,36e5],[n,3,108e5],[n,6,216e5],[n,12,432e5],[r,1,864e5],[r,2,1728e5],[i,1,6048e5],[e,1,2592e6],[e,3,7776e6],[t,1,31536e6]];function s(e,i,r){let n=Math.abs(i-e)/r,o=e4(([,,t])=>t).right(a,n);if(o===a.length)return t.every(e5(e/31536e6,i/31536e6,r));if(0===o)return iF.every(Math.max(e5(e,i,r),1));let[s,l]=a[n/a[o-1][2]<a[o][2]/n?o-1:o];return s.every(l)}return[function(t,e,i){let r=e<t;r&&([t,e]=[e,t]);let n=i&&"function"==typeof i.range?i:s(t,e,i),o=n?n.range(t,+e+1):[];return r?o.reverse():o},s]}i5.every=t=>isFinite(t=Math.floor(t))&&t>0?iB(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,i)=>{e.setUTCFullYear(e.getUTCFullYear()+i*t)}):null,i5.range;let[i6,i4]=i3(i5,i1,iV,iD,iI,iE),[i8,i7]=i3(i2,i0,iz,iq,iO,iM);function i9(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function rt(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function re(t,e,i){return{y:t,m:e,d:i,H:0,M:0,S:0,L:0}}var ri={"-":"",_:" ",0:"0"},rr=/^\s*\d+/,rn=/^%/,ro=/[\\^$*+?|[\]().{}]/g;function ra(t,e,i){var r=t<0?"-":"",n=(r?-t:t)+"",o=n.length;return r+(o<i?Array(i-o+1).join(e)+n:n)}function rs(t){return t.replace(ro,"\\$&")}function rl(t){return RegExp("^(?:"+t.map(rs).join("|")+")","i")}function rh(t){return new Map(t.map((t,e)=>[t.toLowerCase(),e]))}function rc(t,e,i){var r=rr.exec(e.slice(i,i+1));return r?(t.w=+r[0],i+r[0].length):-1}function ru(t,e,i){var r=rr.exec(e.slice(i,i+1));return r?(t.u=+r[0],i+r[0].length):-1}function rd(t,e,i){var r=rr.exec(e.slice(i,i+2));return r?(t.U=+r[0],i+r[0].length):-1}function rf(t,e,i){var r=rr.exec(e.slice(i,i+2));return r?(t.V=+r[0],i+r[0].length):-1}function rp(t,e,i){var r=rr.exec(e.slice(i,i+2));return r?(t.W=+r[0],i+r[0].length):-1}function rg(t,e,i){var r=rr.exec(e.slice(i,i+4));return r?(t.y=+r[0],i+r[0].length):-1}function rm(t,e,i){var r=rr.exec(e.slice(i,i+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),i+r[0].length):-1}function ry(t,e,i){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(i,i+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),i+r[0].length):-1}function r_(t,e,i){var r=rr.exec(e.slice(i,i+1));return r?(t.q=3*r[0]-3,i+r[0].length):-1}function rb(t,e,i){var r=rr.exec(e.slice(i,i+2));return r?(t.m=r[0]-1,i+r[0].length):-1}function rC(t,e,i){var r=rr.exec(e.slice(i,i+2));return r?(t.d=+r[0],i+r[0].length):-1}function rx(t,e,i){var r=rr.exec(e.slice(i,i+3));return r?(t.m=0,t.d=+r[0],i+r[0].length):-1}function rv(t,e,i){var r=rr.exec(e.slice(i,i+2));return r?(t.H=+r[0],i+r[0].length):-1}function rk(t,e,i){var r=rr.exec(e.slice(i,i+2));return r?(t.M=+r[0],i+r[0].length):-1}function rT(t,e,i){var r=rr.exec(e.slice(i,i+2));return r?(t.S=+r[0],i+r[0].length):-1}function rA(t,e,i){var r=rr.exec(e.slice(i,i+3));return r?(t.L=+r[0],i+r[0].length):-1}function rS(t,e,i){var r=rr.exec(e.slice(i,i+6));return r?(t.L=Math.floor(r[0]/1e3),i+r[0].length):-1}function rw(t,e,i){var r=rn.exec(e.slice(i,i+1));return r?i+r[0].length:-1}function rB(t,e,i){var r=rr.exec(e.slice(i));return r?(t.Q=+r[0],i+r[0].length):-1}function rF(t,e,i){var r=rr.exec(e.slice(i));return r?(t.s=+r[0],i+r[0].length):-1}function rL(t,e){return ra(t.getDate(),e,2)}function rM(t,e){return ra(t.getHours(),e,2)}function rE(t,e){return ra(t.getHours()%12||12,e,2)}function rO(t,e){return ra(1+iq.count(i2(t),t),e,3)}function rI(t,e){return ra(t.getMilliseconds(),e,3)}function rq(t,e){return rI(t,e)+"000"}function rN(t,e){return ra(t.getMonth()+1,e,2)}function rD(t,e){return ra(t.getMinutes(),e,2)}function r$(t,e){return ra(t.getSeconds(),e,2)}function rz(t){var e=t.getDay();return 0===e?7:e}function rj(t,e){return ra(iz.count(i2(t)-1,t),e,2)}function rP(t){var e=t.getDay();return e>=4||0===e?iW(t):iW.ceil(t)}function rR(t,e){return t=rP(t),ra(iW.count(i2(t),t)+(4===i2(t).getDay()),e,2)}function rW(t){return t.getDay()}function rU(t,e){return ra(ij.count(i2(t)-1,t),e,2)}function rH(t,e){return ra(t.getFullYear()%100,e,2)}function rY(t,e){return ra((t=rP(t)).getFullYear()%100,e,2)}function rV(t,e){return ra(t.getFullYear()%1e4,e,4)}function rG(t,e){var i=t.getDay();return ra((t=i>=4||0===i?iW(t):iW.ceil(t)).getFullYear()%1e4,e,4)}function rX(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+ra(e/60|0,"0",2)+ra(e%60,"0",2)}function rZ(t,e){return ra(t.getUTCDate(),e,2)}function rJ(t,e){return ra(t.getUTCHours(),e,2)}function rQ(t,e){return ra(t.getUTCHours()%12||12,e,2)}function rK(t,e){return ra(1+iN.count(i5(t),t),e,3)}function r0(t,e){return ra(t.getUTCMilliseconds(),e,3)}function r1(t,e){return r0(t,e)+"000"}function r2(t,e){return ra(t.getUTCMonth()+1,e,2)}function r5(t,e){return ra(t.getUTCMinutes(),e,2)}function r3(t,e){return ra(t.getUTCSeconds(),e,2)}function r6(t){var e=t.getUTCDay();return 0===e?7:e}function r4(t,e){return ra(iV.count(i5(t)-1,t),e,2)}function r8(t){var e=t.getUTCDay();return e>=4||0===e?iJ(t):iJ.ceil(t)}function r7(t,e){return t=r8(t),ra(iJ.count(i5(t),t)+(4===i5(t).getUTCDay()),e,2)}function r9(t){return t.getUTCDay()}function nt(t,e){return ra(iG.count(i5(t)-1,t),e,2)}function ne(t,e){return ra(t.getUTCFullYear()%100,e,2)}function ni(t,e){return ra((t=r8(t)).getUTCFullYear()%100,e,2)}function nr(t,e){return ra(t.getUTCFullYear()%1e4,e,4)}function nn(t,e){var i=t.getUTCDay();return ra((t=i>=4||0===i?iJ(t):iJ.ceil(t)).getUTCFullYear()%1e4,e,4)}function no(){return"+0000"}function na(){return"%"}function ns(t){return+t}function nl(t){return Math.floor(+t/1e3)}function nh(t){return new Date(t)}function nc(t){return t instanceof Date?+t:+new Date(+t)}function nu(){return ic.apply((function t(e,i,r,n,o,a,s,l,h,c){var u=ih(),d=u.invert,f=u.domain,p=c(".%L"),g=c(":%S"),m=c("%I:%M"),y=c("%I %p"),_=c("%a %d"),b=c("%b %d"),C=c("%B"),x=c("%Y");function v(t){return(h(t)<t?p:l(t)<t?g:s(t)<t?m:a(t)<t?y:n(t)<t?o(t)<t?_:b:r(t)<t?C:x)(t)}return u.invert=function(t){return new Date(d(t))},u.domain=function(t){return arguments.length?f(Array.from(t,nc)):f().map(nh)},u.ticks=function(t){var i=f();return e(i[0],i[i.length-1],null==t?10:t)},u.tickFormat=function(t,e){return null==e?v:c(e)},u.nice=function(t){var e,r,n,o,a,s,l,h=f();return t&&"function"==typeof t.range||(t=i(h[0],h[h.length-1],null==t?10:t)),t?f((e=h,r=t,e=e.slice(),o=0,a=e.length-1,s=e[o],(l=e[a])<s&&(n=o,o=a,a=n,n=s,s=l,l=n),e[o]=r.floor(s),e[a]=r.ceil(l),e)):u},u.copy=function(){return il(u,t(e,i,r,n,o,a,s,l,h,c))},u})(i8,i7,i2,i0,iz,iq,iO,iM,iL,tc).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}tc=(th=function(t){var e=t.dateTime,i=t.date,r=t.time,n=t.periods,o=t.days,a=t.shortDays,s=t.months,l=t.shortMonths,h=rl(n),c=rh(n),u=rl(o),d=rh(o),f=rl(a),p=rh(a),g=rl(s),m=rh(s),y=rl(l),_=rh(l),b={a:function(t){return a[t.getDay()]},A:function(t){return o[t.getDay()]},b:function(t){return l[t.getMonth()]},B:function(t){return s[t.getMonth()]},c:null,d:rL,e:rL,f:rq,g:rY,G:rG,H:rM,I:rE,j:rO,L:rI,m:rN,M:rD,p:function(t){return n[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:ns,s:nl,S:r$,u:rz,U:rj,V:rR,w:rW,W:rU,x:null,X:null,y:rH,Y:rV,Z:rX,"%":na},C={a:function(t){return a[t.getUTCDay()]},A:function(t){return o[t.getUTCDay()]},b:function(t){return l[t.getUTCMonth()]},B:function(t){return s[t.getUTCMonth()]},c:null,d:rZ,e:rZ,f:r1,g:ni,G:nn,H:rJ,I:rQ,j:rK,L:r0,m:r2,M:r5,p:function(t){return n[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:ns,s:nl,S:r3,u:r6,U:r4,V:r7,w:r9,W:nt,x:null,X:null,y:ne,Y:nr,Z:no,"%":na},x={a:function(t,e,i){var r=f.exec(e.slice(i));return r?(t.w=p.get(r[0].toLowerCase()),i+r[0].length):-1},A:function(t,e,i){var r=u.exec(e.slice(i));return r?(t.w=d.get(r[0].toLowerCase()),i+r[0].length):-1},b:function(t,e,i){var r=y.exec(e.slice(i));return r?(t.m=_.get(r[0].toLowerCase()),i+r[0].length):-1},B:function(t,e,i){var r=g.exec(e.slice(i));return r?(t.m=m.get(r[0].toLowerCase()),i+r[0].length):-1},c:function(t,i,r){return T(t,e,i,r)},d:rC,e:rC,f:rS,g:rm,G:rg,H:rv,I:rv,j:rx,L:rA,m:rb,M:rk,p:function(t,e,i){var r=h.exec(e.slice(i));return r?(t.p=c.get(r[0].toLowerCase()),i+r[0].length):-1},q:r_,Q:rB,s:rF,S:rT,u:ru,U:rd,V:rf,w:rc,W:rp,x:function(t,e,r){return T(t,i,e,r)},X:function(t,e,i){return T(t,r,e,i)},y:rm,Y:rg,Z:ry,"%":rw};function v(t,e){return function(i){var r,n,o,a=[],s=-1,l=0,h=t.length;for(i instanceof Date||(i=new Date(+i));++s<h;)37===t.charCodeAt(s)&&(a.push(t.slice(l,s)),null!=(n=ri[r=t.charAt(++s)])?r=t.charAt(++s):n="e"===r?" ":"0",(o=e[r])&&(r=o(i,n)),a.push(r),l=s+1);return a.push(t.slice(l,s)),a.join("")}}function k(t,e){return function(i){var r,n,o=re(1900,void 0,1);if(T(o,t,i+="",0)!=i.length)return null;if("Q"in o)return new Date(o.Q);if("s"in o)return new Date(1e3*o.s+("L"in o?o.L:0));if(!e||"Z"in o||(o.Z=0),"p"in o&&(o.H=o.H%12+12*o.p),void 0===o.m&&(o.m="q"in o?o.q:0),"V"in o){if(o.V<1||o.V>53)return null;"w"in o||(o.w=1),"Z"in o?(r=(n=(r=rt(re(o.y,0,1))).getUTCDay())>4||0===n?iG.ceil(r):iG(r),r=iN.offset(r,(o.V-1)*7),o.y=r.getUTCFullYear(),o.m=r.getUTCMonth(),o.d=r.getUTCDate()+(o.w+6)%7):(r=(n=(r=i9(re(o.y,0,1))).getDay())>4||0===n?ij.ceil(r):ij(r),r=iq.offset(r,(o.V-1)*7),o.y=r.getFullYear(),o.m=r.getMonth(),o.d=r.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),n="Z"in o?rt(re(o.y,0,1)).getUTCDay():i9(re(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(n+5)%7:o.w+7*o.U-(n+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,rt(o)):i9(o)}}function T(t,e,i,r){for(var n,o,a=0,s=e.length,l=i.length;a<s;){if(r>=l)return -1;if(37===(n=e.charCodeAt(a++))){if(!(o=x[(n=e.charAt(a++))in ri?e.charAt(a++):n])||(r=o(t,i,r))<0)return -1}else if(n!=i.charCodeAt(r++))return -1}return r}return b.x=v(i,b),b.X=v(r,b),b.c=v(e,b),C.x=v(i,C),C.X=v(r,C),C.c=v(e,C),{format:function(t){var e=v(t+="",b);return e.toString=function(){return t},e},parse:function(t){var e=k(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=v(t+="",C);return e.toString=function(){return t},e},utcParse:function(t){var e=k(t+="",!0);return e.toString=function(){return t},e}}}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]})).format,th.parse,th.utcFormat,th.utcParse;let nd=function(t){for(var e=t.length/6|0,i=Array(e),r=0;r<e;)i[r]="#"+t.slice(6*r,6*++r);return i}("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");function nf(t){return"string"==typeof t?new Q([[document.querySelector(t)]],[document.documentElement]):new Q([[t]],J)}function np(t){return"string"==typeof t?new Q([document.querySelectorAll(t)],[document.documentElement]):new Q([p(t)],J)}function ng(t){return function(){return t}}let nm=Math.abs,ny=Math.atan2,n_=Math.cos,nb=Math.max,nC=Math.min,nx=Math.sin,nv=Math.sqrt,nk=Math.PI,nT=nk/2,nA=2*nk;function nS(t){return t>=1?nT:t<=-1?-nT:Math.asin(t)}let nw=Math.PI,nB=2*nw,nF=nB-1e-6;function nL(t){this._+=t[0];for(let e=1,i=t.length;e<i;++e)this._+=arguments[e]+t[e]}class nM{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==t?nL:function(t){let e=Math.floor(t);if(!(e>=0))throw Error(`invalid digits: ${t}`);if(e>15)return nL;let i=10**e;return function(t){this._+=t[0];for(let e=1,r=t.length;e<r;++e)this._+=Math.round(arguments[e]*i)/i+t[e]}}(t)}moveTo(t,e){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,e){this._append`L${this._x1=+t},${this._y1=+e}`}quadraticCurveTo(t,e,i,r){this._append`Q${+t},${+e},${this._x1=+i},${this._y1=+r}`}bezierCurveTo(t,e,i,r,n,o){this._append`C${+t},${+e},${+i},${+r},${this._x1=+n},${this._y1=+o}`}arcTo(t,e,i,r,n){if(t=+t,e=+e,i=+i,r=+r,(n=+n)<0)throw Error(`negative radius: ${n}`);let o=this._x1,a=this._y1,s=i-t,l=r-e,h=o-t,c=a-e,u=h*h+c*c;if(null===this._x1)this._append`M${this._x1=t},${this._y1=e}`;else if(u>1e-6){if(Math.abs(c*s-l*h)>1e-6&&n){let d=i-o,f=r-a,p=s*s+l*l,g=Math.sqrt(p),m=Math.sqrt(u),y=n*Math.tan((nw-Math.acos((p+u-(d*d+f*f))/(2*g*m)))/2),_=y/m,b=y/g;Math.abs(_-1)>1e-6&&this._append`L${t+_*h},${e+_*c}`,this._append`A${n},${n},0,0,${+(c*d>h*f)},${this._x1=t+b*s},${this._y1=e+b*l}`}else this._append`L${this._x1=t},${this._y1=e}`}}arc(t,e,i,r,n,o){if(t=+t,e=+e,o=!!o,(i=+i)<0)throw Error(`negative radius: ${i}`);let a=i*Math.cos(r),s=i*Math.sin(r),l=t+a,h=e+s,c=1^o,u=o?r-n:n-r;null===this._x1?this._append`M${l},${h}`:(Math.abs(this._x1-l)>1e-6||Math.abs(this._y1-h)>1e-6)&&this._append`L${l},${h}`,i&&(u<0&&(u=u%nB+nB),u>nF?this._append`A${i},${i},0,1,${c},${t-a},${e-s}A${i},${i},0,1,${c},${this._x1=l},${this._y1=h}`:u>1e-6&&this._append`A${i},${i},0,${+(u>=nw)},${c},${this._x1=t+i*Math.cos(n)},${this._y1=e+i*Math.sin(n)}`)}rect(t,e,i,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${i=+i}v${+r}h${-i}Z`}toString(){return this._}}function nE(t){let e=3;return t.digits=function(i){if(!arguments.length)return e;if(null==i)e=null;else{let t=Math.floor(i);if(!(t>=0))throw RangeError(`invalid digits: ${i}`);e=t}return t},()=>new nM(e)}function nO(t){return t.innerRadius}function nI(t){return t.outerRadius}function nq(t){return t.startAngle}function nN(t){return t.endAngle}function nD(t){return t&&t.padAngle}function n$(t,e,i,r,n,o,a){var s=t-i,l=e-r,h=(a?o:-o)/nv(s*s+l*l),c=h*l,u=-h*s,d=t+c,f=e+u,p=i+c,g=r+u,m=(d+p)/2,y=(f+g)/2,_=p-d,b=g-f,C=_*_+b*b,x=n-o,v=d*g-p*f,k=(b<0?-1:1)*nv(nb(0,x*x*C-v*v)),T=(v*b-_*k)/C,A=(-v*_-b*k)/C,S=(v*b+_*k)/C,w=(-v*_+b*k)/C,B=T-m,F=A-y,L=S-m,M=w-y;return B*B+F*F>L*L+M*M&&(T=S,A=w),{cx:T,cy:A,x01:-c,y01:-u,x11:T*(n/x-1),y11:A*(n/x-1)}}function nz(){var t=nO,e=nI,i=ng(0),r=null,n=nq,o=nN,a=nD,s=null,l=nE(h);function h(){var h,c,u=+t.apply(this,arguments),d=+e.apply(this,arguments),f=n.apply(this,arguments)-nT,p=o.apply(this,arguments)-nT,g=nm(p-f),m=p>f;if(s||(s=h=l()),d<u&&(c=d,d=u,u=c),d>1e-12){if(g>nA-1e-12)s.moveTo(d*n_(f),d*nx(f)),s.arc(0,0,d,f,p,!m),u>1e-12&&(s.moveTo(u*n_(p),u*nx(p)),s.arc(0,0,u,p,f,m));else{var y,_,b=f,C=p,x=f,v=p,k=g,T=g,A=a.apply(this,arguments)/2,S=A>1e-12&&(r?+r.apply(this,arguments):nv(u*u+d*d)),w=nC(nm(d-u)/2,+i.apply(this,arguments)),B=w,F=w;if(S>1e-12){var L=nS(S/u*nx(A)),M=nS(S/d*nx(A));(k-=2*L)>1e-12?(L*=m?1:-1,x+=L,v-=L):(k=0,x=v=(f+p)/2),(T-=2*M)>1e-12?(M*=m?1:-1,b+=M,C-=M):(T=0,b=C=(f+p)/2)}var E=d*n_(b),O=d*nx(b),I=u*n_(v),q=u*nx(v);if(w>1e-12){var N,D=d*n_(C),$=d*nx(C),z=u*n_(x),j=u*nx(x);if(g<nk){if(N=function(t,e,i,r,n,o,a,s){var l=i-t,h=r-e,c=a-n,u=s-o,d=u*l-c*h;if(!(d*d<1e-12))return d=(c*(e-o)-u*(t-n))/d,[t+d*l,e+d*h]}(E,O,z,j,D,$,I,q)){var P,R=E-N[0],W=O-N[1],U=D-N[0],H=$-N[1],Y=1/nx(((P=(R*U+W*H)/(nv(R*R+W*W)*nv(U*U+H*H)))>1?0:P<-1?nk:Math.acos(P))/2),V=nv(N[0]*N[0]+N[1]*N[1]);B=nC(w,(u-V)/(Y-1)),F=nC(w,(d-V)/(Y+1))}else B=F=0}}T>1e-12?F>1e-12?(y=n$(z,j,E,O,d,F,m),_=n$(D,$,I,q,d,F,m),s.moveTo(y.cx+y.x01,y.cy+y.y01),F<w?s.arc(y.cx,y.cy,F,ny(y.y01,y.x01),ny(_.y01,_.x01),!m):(s.arc(y.cx,y.cy,F,ny(y.y01,y.x01),ny(y.y11,y.x11),!m),s.arc(0,0,d,ny(y.cy+y.y11,y.cx+y.x11),ny(_.cy+_.y11,_.cx+_.x11),!m),s.arc(_.cx,_.cy,F,ny(_.y11,_.x11),ny(_.y01,_.x01),!m))):(s.moveTo(E,O),s.arc(0,0,d,b,C,!m)):s.moveTo(E,O),u>1e-12&&k>1e-12?B>1e-12?(y=n$(I,q,D,$,u,-B,m),_=n$(E,O,z,j,u,-B,m),s.lineTo(y.cx+y.x01,y.cy+y.y01),B<w?s.arc(y.cx,y.cy,B,ny(y.y01,y.x01),ny(_.y01,_.x01),!m):(s.arc(y.cx,y.cy,B,ny(y.y01,y.x01),ny(y.y11,y.x11),!m),s.arc(0,0,u,ny(y.cy+y.y11,y.cx+y.x11),ny(_.cy+_.y11,_.cx+_.x11),m),s.arc(_.cx,_.cy,B,ny(_.y11,_.x11),ny(_.y01,_.x01),!m))):s.arc(0,0,u,v,x,m):s.lineTo(I,q)}}else s.moveTo(0,0);if(s.closePath(),h)return s=null,h+""||null}return h.centroid=function(){var i=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,r=(+n.apply(this,arguments)+ +o.apply(this,arguments))/2-nk/2;return[n_(r)*i,nx(r)*i]},h.innerRadius=function(e){return arguments.length?(t="function"==typeof e?e:ng(+e),h):t},h.outerRadius=function(t){return arguments.length?(e="function"==typeof t?t:ng(+t),h):e},h.cornerRadius=function(t){return arguments.length?(i="function"==typeof t?t:ng(+t),h):i},h.padRadius=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:ng(+t),h):r},h.startAngle=function(t){return arguments.length?(n="function"==typeof t?t:ng(+t),h):n},h.endAngle=function(t){return arguments.length?(o="function"==typeof t?t:ng(+t),h):o},h.padAngle=function(t){return arguments.length?(a="function"==typeof t?t:ng(+t),h):a},h.context=function(t){return arguments.length?(s=null==t?null:t,h):s},h}function nj(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function nP(t){this._context=t}function nR(t){return new nP(t)}function nW(t){return t[0]}function nU(t){return t[1]}function nH(t,e){var i=ng(!0),r=null,n=nR,o=null,a=nE(s);function s(s){var l,h,c,u=(s=nj(s)).length,d=!1;for(null==r&&(o=n(c=a())),l=0;l<=u;++l)!(l<u&&i(h=s[l],l,s))===d&&((d=!d)?o.lineStart():o.lineEnd()),d&&o.point(+t(h,l,s),+e(h,l,s));if(c)return o=null,c+""||null}return t="function"==typeof t?t:void 0===t?nW:ng(t),e="function"==typeof e?e:void 0===e?nU:ng(e),s.x=function(e){return arguments.length?(t="function"==typeof e?e:ng(+e),s):t},s.y=function(t){return arguments.length?(e="function"==typeof t?t:ng(+t),s):e},s.defined=function(t){return arguments.length?(i="function"==typeof t?t:ng(!!t),s):i},s.curve=function(t){return arguments.length?(n=t,null!=r&&(o=n(r)),s):n},s.context=function(t){return arguments.length?(null==t?r=o=null:o=n(r=t),s):r},s}function nY(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function nV(t){return t}function nG(){var t=nV,e=nY,i=null,r=ng(0),n=ng(nA),o=ng(0);function a(a){var s,l,h,c,u,d=(a=nj(a)).length,f=0,p=Array(d),g=Array(d),m=+r.apply(this,arguments),y=Math.min(nA,Math.max(-nA,n.apply(this,arguments)-m)),_=Math.min(Math.abs(y)/d,o.apply(this,arguments)),b=_*(y<0?-1:1);for(s=0;s<d;++s)(u=g[p[s]=s]=+t(a[s],s,a))>0&&(f+=u);for(null!=e?p.sort(function(t,i){return e(g[t],g[i])}):null!=i&&p.sort(function(t,e){return i(a[t],a[e])}),s=0,h=f?(y-d*b)/f:0;s<d;++s,m=c)c=m+((u=g[l=p[s]])>0?u*h:0)+b,g[l]={data:a[l],index:s,value:u,startAngle:m,endAngle:c,padAngle:_};return g}return a.value=function(e){return arguments.length?(t="function"==typeof e?e:ng(+e),a):t},a.sortValues=function(t){return arguments.length?(e=t,i=null,a):e},a.sort=function(t){return arguments.length?(i=t,e=null,a):i},a.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:ng(+t),a):r},a.endAngle=function(t){return arguments.length?(n="function"==typeof t?t:ng(+t),a):n},a.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:ng(+t),a):o},a}function nX(){}function nZ(t,e,i){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+i)/6)}function nJ(t){this._context=t}function nQ(t){return new nJ(t)}function nK(t){this._context=t}function n0(t){return new nK(t)}function n1(t){this._context=t}function n2(t){return new n1(t)}nM.prototype,Array.prototype.slice,nP.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}},nJ.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:nZ(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:nZ(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},nK.prototype={areaStart:nX,areaEnd:nX,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:nZ(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},n1.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var i=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(i,r):this._context.moveTo(i,r);break;case 3:this._point=4;default:nZ(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};class n5{constructor(t,e){this._context=t,this._x=e}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,e,t,e):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+e)/2,t,this._y0,t,e)}this._x0=t,this._y0=e}}function n3(t){return new n5(t,!0)}function n6(t){return new n5(t,!1)}function n4(t,e){this._basis=new nJ(t),this._beta=e}n4.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,i=t.length-1;if(i>0)for(var r,n=t[0],o=e[0],a=t[i]-n,s=e[i]-o,l=-1;++l<=i;)r=l/i,this._basis.point(this._beta*t[l]+(1-this._beta)*(n+r*a),this._beta*e[l]+(1-this._beta)*(o+r*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};let n8=function t(e){function i(t){return 1===e?new nJ(t):new n4(t,e)}return i.beta=function(e){return t(+e)},i}(.85);function n7(t,e,i){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-i),t._x2,t._y2)}function n9(t,e){this._context=t,this._k=(1-e)/6}n9.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:n7(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:n7(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};let ot=function t(e){function i(t){return new n9(t,e)}return i.tension=function(e){return t(+e)},i}(0);function oe(t,e){this._context=t,this._k=(1-e)/6}oe.prototype={areaStart:nX,areaEnd:nX,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:n7(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};let oi=function t(e){function i(t){return new oe(t,e)}return i.tension=function(e){return t(+e)},i}(0);function or(t,e){this._context=t,this._k=(1-e)/6}or.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:n7(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};let on=function t(e){function i(t){return new or(t,e)}return i.tension=function(e){return t(+e)},i}(0);function oo(t,e,i){var r=t._x1,n=t._y1,o=t._x2,a=t._y2;if(t._l01_a>1e-12){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,n=(n*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>1e-12){var h=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,c=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*h+t._x1*t._l23_2a-e*t._l12_2a)/c,a=(a*h+t._y1*t._l23_2a-i*t._l12_2a)/c}t._context.bezierCurveTo(r,n,o,a,t._x2,t._y2)}function oa(t,e){this._context=t,this._alpha=e}oa.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:oo(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};let os=function t(e){function i(t){return e?new oa(t,e):new n9(t,0)}return i.alpha=function(e){return t(+e)},i}(.5);function ol(t,e){this._context=t,this._alpha=e}ol.prototype={areaStart:nX,areaEnd:nX,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:oo(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};let oh=function t(e){function i(t){return e?new ol(t,e):new oe(t,0)}return i.alpha=function(e){return t(+e)},i}(.5);function oc(t,e){this._context=t,this._alpha=e}oc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:oo(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};let ou=function t(e){function i(t){return e?new oc(t,e):new or(t,0)}return i.alpha=function(e){return t(+e)},i}(.5);function od(t){this._context=t}function of(t){return new od(t)}function op(t,e,i){var r=t._x1-t._x0,n=e-t._x1,o=(t._y1-t._y0)/(r||n<0&&-0),a=(i-t._y1)/(n||r<0&&-0);return((o<0?-1:1)+(a<0?-1:1))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs((o*n+a*r)/(r+n)))||0}function og(t,e){var i=t._x1-t._x0;return i?(3*(t._y1-t._y0)/i-e)/2:e}function om(t,e,i){var r=t._x0,n=t._y0,o=t._x1,a=t._y1,s=(o-r)/3;t._context.bezierCurveTo(r+s,n+s*e,o-s,a-s*i,o,a)}function oy(t){this._context=t}function o_(t){this._context=new ob(t)}function ob(t){this._context=t}function oC(t){return new oy(t)}function ox(t){return new o_(t)}function ov(t){this._context=t}function ok(t){var e,i,r=t.length-1,n=Array(r),o=Array(r),a=Array(r);for(n[0]=0,o[0]=2,a[0]=t[0]+2*t[1],e=1;e<r-1;++e)n[e]=1,o[e]=4,a[e]=4*t[e]+2*t[e+1];for(n[r-1]=2,o[r-1]=7,a[r-1]=8*t[r-1]+t[r],e=1;e<r;++e)i=n[e]/o[e-1],o[e]-=i,a[e]-=i*a[e-1];for(n[r-1]=a[r-1]/o[r-1],e=r-2;e>=0;--e)n[e]=(a[e]-n[e+1])/o[e];for(e=0,o[r-1]=(t[r]+n[r-1])/2;e<r-1;++e)o[e]=2*t[e+1]-n[e+1];return[n,o]}function oT(t){return new ov(t)}function oA(t,e){this._context=t,this._t=e}function oS(t){return new oA(t,.5)}function ow(t){return new oA(t,0)}function oB(t){return new oA(t,1)}function oF(t,e,i){this.k=t,this.x=e,this.y=i}od.prototype={areaStart:nX,areaEnd:nX,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}},oy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:om(this,this._t0,og(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var i=NaN;if(e=+e,(t=+t)!==this._x1||e!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,om(this,og(this,i=op(this,t,e)),i);break;default:om(this,this._t0,i=op(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=i}}},(o_.prototype=Object.create(oy.prototype)).point=function(t,e){oy.prototype.point.call(this,e,t)},ob.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,i,r,n,o){this._context.bezierCurveTo(e,t,r,i,o,n)}},ov.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,i=t.length;if(i){if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),2===i)this._context.lineTo(t[1],e[1]);else for(var r=ok(t),n=ok(e),o=0,a=1;a<i;++o,++a)this._context.bezierCurveTo(r[0][o],n[0][o],r[1][o],n[1][o],t[a],e[a])}(this._line||0!==this._line&&1===i)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}},oA.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var i=this._x*(1-this._t)+t*this._t;this._context.lineTo(i,this._y),this._context.lineTo(i,e)}}this._x=t,this._y=e}},oF.prototype={constructor:oF,scale:function(t){return 1===t?this:new oF(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new oF(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}},new oF(1,0,0),oF.prototype},50373:(t,e,i)=>{"use strict";i.d(e,{A:()=>a});var r=i(81283),n=i(70688);let o=class{constructor(){this.type=n.Z.ALL}get(){return this.type}set(t){if(this.type&&this.type!==t)throw Error("Cannot change both RGB and HSL channels at the same time");this.type=t}reset(){this.type=n.Z.ALL}is(t){return this.type===t}},a=new class{constructor(t,e){this.color=e,this.changed=!1,this.data=t,this.type=new o}set(t,e){return this.color=e,this.changed=!1,this.data=t,this.type.type=n.Z.ALL,this}_ensureHSL(){let t=this.data,{h:e,s:i,l:n}=t;void 0===e&&(t.h=r.A.channel.rgb2hsl(t,"h")),void 0===i&&(t.s=r.A.channel.rgb2hsl(t,"s")),void 0===n&&(t.l=r.A.channel.rgb2hsl(t,"l"))}_ensureRGB(){let t=this.data,{r:e,g:i,b:n}=t;void 0===e&&(t.r=r.A.channel.hsl2rgb(t,"r")),void 0===i&&(t.g=r.A.channel.hsl2rgb(t,"g")),void 0===n&&(t.b=r.A.channel.hsl2rgb(t,"b"))}get r(){let t=this.data,e=t.r;return this.type.is(n.Z.HSL)||void 0===e?(this._ensureHSL(),r.A.channel.hsl2rgb(t,"r")):e}get g(){let t=this.data,e=t.g;return this.type.is(n.Z.HSL)||void 0===e?(this._ensureHSL(),r.A.channel.hsl2rgb(t,"g")):e}get b(){let t=this.data,e=t.b;return this.type.is(n.Z.HSL)||void 0===e?(this._ensureHSL(),r.A.channel.hsl2rgb(t,"b")):e}get h(){let t=this.data,e=t.h;return this.type.is(n.Z.RGB)||void 0===e?(this._ensureRGB(),r.A.channel.rgb2hsl(t,"h")):e}get s(){let t=this.data,e=t.s;return this.type.is(n.Z.RGB)||void 0===e?(this._ensureRGB(),r.A.channel.rgb2hsl(t,"s")):e}get l(){let t=this.data,e=t.l;return this.type.is(n.Z.RGB)||void 0===e?(this._ensureRGB(),r.A.channel.rgb2hsl(t,"l")):e}get a(){return this.data.a}set r(t){this.type.set(n.Z.RGB),this.changed=!0,this.data.r=t}set g(t){this.type.set(n.Z.RGB),this.changed=!0,this.data.g=t}set b(t){this.type.set(n.Z.RGB),this.changed=!0,this.data.b=t}set h(t){this.type.set(n.Z.HSL),this.changed=!0,this.data.h=t}set s(t){this.type.set(n.Z.HSL),this.changed=!0,this.data.s=t}set l(t){this.type.set(n.Z.HSL),this.changed=!0,this.data.l=t}set a(t){this.changed=!0,this.data.a=t}}({r:0,g:0,b:0,a:0},"transparent")},112:(t,e,i)=>{"use strict";i.d(e,{A:()=>c});var r=i(50373),n=i(70688);let o={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(35!==t.charCodeAt(0))return;let e=t.match(o.re);if(!e)return;let i=e[1],n=parseInt(i,16),a=i.length,s=a%4==0,l=a>4,h=l?1:17,c=l?8:4,u=s?0:-1,d=l?255:15;return r.A.set({r:(n>>c*(u+3)&d)*h,g:(n>>c*(u+2)&d)*h,b:(n>>c*(u+1)&d)*h,a:s?(n&d)*h/255:1},t)},stringify:t=>{let{r:e,g:i,b:r,a:o}=t;return o<1?`#${n.Y[Math.round(e)]}${n.Y[Math.round(i)]}${n.Y[Math.round(r)]}${n.Y[Math.round(255*o)]}`:`#${n.Y[Math.round(e)]}${n.Y[Math.round(i)]}${n.Y[Math.round(r)]}`}};var a=i(81283);let s={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:t=>{let e=t.match(s.hueRe);if(e){let[,t,i]=e;switch(i){case"grad":return a.A.channel.clamp.h(.9*parseFloat(t));case"rad":return a.A.channel.clamp.h(180*parseFloat(t)/Math.PI);case"turn":return a.A.channel.clamp.h(360*parseFloat(t))}}return a.A.channel.clamp.h(parseFloat(t))},parse:t=>{let e=t.charCodeAt(0);if(104!==e&&72!==e)return;let i=t.match(s.re);if(!i)return;let[,n,o,l,h,c]=i;return r.A.set({h:s._hue2deg(n),s:a.A.channel.clamp.s(parseFloat(o)),l:a.A.channel.clamp.l(parseFloat(l)),a:h?a.A.channel.clamp.a(c?parseFloat(h)/100:parseFloat(h)):1},t)},stringify:t=>{let{h:e,s:i,l:r,a:n}=t;return n<1?`hsla(${a.A.lang.round(e)}, ${a.A.lang.round(i)}%, ${a.A.lang.round(r)}%, ${n})`:`hsl(${a.A.lang.round(e)}, ${a.A.lang.round(i)}%, ${a.A.lang.round(r)}%)`}},l={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:t=>{t=t.toLowerCase();let e=l.colors[t];if(e)return o.parse(e)},stringify:t=>{let e=o.stringify(t);for(let t in l.colors)if(l.colors[t]===e)return t}},h={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:t=>{let e=t.charCodeAt(0);if(114!==e&&82!==e)return;let i=t.match(h.re);if(!i)return;let[,n,o,s,l,c,u,d,f]=i;return r.A.set({r:a.A.channel.clamp.r(o?2.55*parseFloat(n):parseFloat(n)),g:a.A.channel.clamp.g(l?2.55*parseFloat(s):parseFloat(s)),b:a.A.channel.clamp.b(u?2.55*parseFloat(c):parseFloat(c)),a:d?a.A.channel.clamp.a(f?parseFloat(d)/100:parseFloat(d)):1},t)},stringify:t=>{let{r:e,g:i,b:r,a:n}=t;return n<1?`rgba(${a.A.lang.round(e)}, ${a.A.lang.round(i)}, ${a.A.lang.round(r)}, ${a.A.lang.round(n)})`:`rgb(${a.A.lang.round(e)}, ${a.A.lang.round(i)}, ${a.A.lang.round(r)})`}},c={format:{keyword:l,hex:o,rgb:h,rgba:h,hsl:s,hsla:s},parse:t=>{if("string"!=typeof t)return t;let e=o.parse(t)||h.parse(t)||s.parse(t)||l.parse(t);if(e)return e;throw Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(n.Z.HSL)||void 0===t.data.r?s.stringify(t):!(t.a<1)&&Number.isInteger(t.r)&&Number.isInteger(t.g)&&Number.isInteger(t.b)?o.stringify(t):h.stringify(t)}},70688:(t,e,i)=>{"use strict";i.d(e,{Y:()=>n,Z:()=>o});var r=i(81283);let n={};for(let t=0;t<=255;t++)n[t]=r.A.unit.dec2hex(t);let o={ALL:0,RGB:1,HSL:2}},95433:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var r=i(81283),n=i(112);let o=(t,e,i)=>{let o=n.A.parse(t),a=o[e],s=r.A.channel.clamp[e](a+i);return a!==s&&(o[e]=s),n.A.stringify(o)}},91946:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var r=i(81283),n=i(112);let o=(t,e)=>{let i=n.A.parse(t);for(let t in e)i[t]=r.A.channel.clamp[t](e[t]);return n.A.stringify(i)}},57721:(t,e,i)=>{"use strict";i.d(e,{A:()=>n});var r=i(95433);let n=(t,e)=>(0,r.A)(t,"l",-e)},71725:(t,e,i)=>{"use strict";i.d(e,{A:()=>s});var r=i(81283),n=i(112);let o=t=>{let{r:e,g:i,b:o}=n.A.parse(t),a=.2126*r.A.channel.toLinear(e)+.7152*r.A.channel.toLinear(i)+.0722*r.A.channel.toLinear(o);return r.A.lang.round(a)},a=t=>o(t)>=.5,s=t=>!a(t)},68459:(t,e,i)=>{"use strict";i.d(e,{A:()=>n});var r=i(95433);let n=(t,e)=>(0,r.A)(t,"l",e)},18448:(t,e,i)=>{"use strict";i.d(e,{A:()=>s});var r=i(81283),n=i(50373),o=i(112),a=i(91946);let s=(t,e,i=0,s=1)=>{if("number"!=typeof t)return(0,a.A)(t,{a:e});let l=n.A.set({r:r.A.channel.clamp.r(t),g:r.A.channel.clamp.g(e),b:r.A.channel.clamp.b(i),a:r.A.channel.clamp.a(s)});return o.A.stringify(l)}},81283:(t,e,i)=>{"use strict";i.d(e,{A:()=>n});let r={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:t=>t>=255?255:t<0?0:t,g:t=>t>=255?255:t<0?0:t,b:t=>t>=255?255:t<0?0:t,h:t=>t%360,s:t=>t>=100?100:t<0?0:t,l:t=>t>=100?100:t<0?0:t,a:t=>t>=1?1:t<0?0:t},toLinear:t=>{let e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:(t,e,i)=>(i<0&&(i+=1),i>1&&(i-=1),i<1/6)?t+(e-t)*6*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t,hsl2rgb:({h:t,s:e,l:i},n)=>{if(!e)return 2.55*i;t/=360,e/=100;let o=(i/=100)<.5?i*(1+e):i+e-i*e,a=2*i-o;switch(n){case"r":return 255*r.hue2rgb(a,o,t+1/3);case"g":return 255*r.hue2rgb(a,o,t);case"b":return 255*r.hue2rgb(a,o,t-1/3)}},rgb2hsl:({r:t,g:e,b:i},r)=>{let n=Math.max(t/=255,e/=255,i/=255),o=Math.min(t,e,i),a=(n+o)/2;if("l"===r)return 100*a;if(n===o)return 0;let s=n-o;if("s"===r)return 100*(a>.5?s/(2-n-o):s/(n+o));switch(n){case t:return((e-i)/s+(e<i?6:0))*60;case e:return((i-t)/s+2)*60;case i:return((t-e)/s+4)*60;default:return -1}}},n={channel:r,lang:{clamp:(t,e,i)=>e>i?Math.min(e,Math.max(i,t)):Math.min(i,Math.max(e,t)),round:t=>Math.round(1e10*t)/1e10},unit:{dec2hex:t=>{let e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}}}},36821:(t,e,i)=>{"use strict";i.d(e,{A:()=>s});var r=i(65866);let n=function(t,e){for(var i=t.length;i--;)if((0,r.A)(t[i][0],e))return i;return -1};var o=Array.prototype.splice;function a(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}a.prototype.clear=function(){this.__data__=[],this.size=0},a.prototype.delete=function(t){var e=this.__data__,i=n(e,t);return!(i<0)&&(i==e.length-1?e.pop():o.call(e,i,1),--this.size,!0)},a.prototype.get=function(t){var e=this.__data__,i=n(e,t);return i<0?void 0:e[i][1]},a.prototype.has=function(t){return n(this.__data__,t)>-1},a.prototype.set=function(t,e){var i=this.__data__,r=n(i,t);return r<0?(++this.size,i.push([t,e])):i[r][1]=e,this};let s=a},40029:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var r=i(69954),n=i(29283);let o=(0,r.A)(n.A,"Map")},63713:(t,e,i)=>{"use strict";i.d(e,{A:()=>d});var r=(0,i(69954).A)(Object,"create"),n=Object.prototype.hasOwnProperty,o=Object.prototype.hasOwnProperty;function a(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}a.prototype.clear=function(){this.__data__=r?r(null):{},this.size=0},a.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},a.prototype.get=function(t){var e=this.__data__;if(r){var i=e[t];return"__lodash_hash_undefined__"===i?void 0:i}return n.call(e,t)?e[t]:void 0},a.prototype.has=function(t){var e=this.__data__;return r?void 0!==e[t]:o.call(e,t)},a.prototype.set=function(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=r&&void 0===e?"__lodash_hash_undefined__":e,this};var s=i(36821),l=i(40029);let h=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t},c=function(t,e){var i=t.__data__;return h(e)?i["string"==typeof e?"string":"hash"]:i.map};function u(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}u.prototype.clear=function(){this.size=0,this.__data__={hash:new a,map:new(l.A||s.A),string:new a}},u.prototype.delete=function(t){var e=c(this,t).delete(t);return this.size-=e?1:0,e},u.prototype.get=function(t){return c(this,t).get(t)},u.prototype.has=function(t){return c(this,t).has(t)},u.prototype.set=function(t,e){var i=c(this,t),r=i.size;return i.set(t,e),this.size+=i.size==r?0:1,this};let d=u},38779:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var r=i(69954),n=i(29283);let o=(0,r.A)(n.A,"Set")},72872:(t,e,i)=>{"use strict";i.d(e,{A:()=>s});var r=i(36821),n=i(40029),o=i(63713);function a(t){var e=this.__data__=new r.A(t);this.size=e.size}a.prototype.clear=function(){this.__data__=new r.A,this.size=0},a.prototype.delete=function(t){var e=this.__data__,i=e.delete(t);return this.size=e.size,i},a.prototype.get=function(t){return this.__data__.get(t)},a.prototype.has=function(t){return this.__data__.has(t)},a.prototype.set=function(t,e){var i=this.__data__;if(i instanceof r.A){var a=i.__data__;if(!n.A||a.length<199)return a.push([t,e]),this.size=++i.size,this;i=this.__data__=new o.A(a)}return i.set(t,e),this.size=i.size,this};let s=a},70807:(t,e,i)=>{"use strict";i.d(e,{A:()=>r});let r=i(29283).A.Symbol},12066:(t,e,i)=>{"use strict";i.d(e,{A:()=>r});let r=i(29283).A.Uint8Array},78373:(t,e,i)=>{"use strict";i.d(e,{A:()=>c});let r=function(t,e){for(var i=-1,r=Array(t);++i<t;)r[i]=e(i);return r};var n=i(42908),o=i(28675),a=i(38990),s=i(49031),l=i(75216),h=Object.prototype.hasOwnProperty;let c=function(t,e){var i=(0,o.A)(t),c=!i&&(0,n.A)(t),u=!i&&!c&&(0,a.A)(t),d=!i&&!c&&!u&&(0,l.A)(t),f=i||c||u||d,p=f?r(t.length,String):[],g=p.length;for(var m in t)(e||h.call(t,m))&&!(f&&("length"==m||u&&("offset"==m||"parent"==m)||d&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||(0,s.A)(m,g)))&&p.push(m);return p}},84805:(t,e,i)=>{"use strict";i.d(e,{A:()=>a});var r=i(46402),n=i(65866),o=Object.prototype.hasOwnProperty;let a=function(t,e,i){var a=t[e];o.call(t,e)&&(0,n.A)(a,i)&&(void 0!==i||e in t)||(0,r.A)(t,e,i)}},46402:(t,e,i)=>{"use strict";i.d(e,{A:()=>n});var r=i(6977);let n=function(t,e,i){"__proto__"==e&&r.A?(0,r.A)(t,e,{configurable:!0,enumerable:!0,value:i,writable:!0}):t[e]=i}},33240:(t,e,i)=>{"use strict";i.d(e,{A:()=>r});let r=function(t,e,i){for(var r=-1,n=Object(t),o=i(t),a=o.length;a--;){var s=o[++r];if(!1===e(n[s],s,n))break}return t}},36798:(t,e,i)=>{"use strict";i.d(e,{A:()=>u});var r=i(70807),n=Object.prototype,o=n.hasOwnProperty,a=n.toString,s=r.A?r.A.toStringTag:void 0;let l=function(t){var e=o.call(t,s),i=t[s];try{t[s]=void 0;var r=!0}catch(t){}var n=a.call(t);return r&&(e?t[s]=i:delete t[s]),n};var h=Object.prototype.toString,c=r.A?r.A.toStringTag:void 0;let u=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":c&&c in Object(t)?l(t):h.call(t)}},88601:(t,e,i)=>{"use strict";i.d(e,{A:()=>a});var r=i(85797),n=(0,i(7865).A)(Object.keys,Object),o=Object.prototype.hasOwnProperty;let a=function(t){if(!(0,r.A)(t))return n(t);var e=[];for(var i in Object(t))o.call(t,i)&&"constructor"!=i&&e.push(i);return e}},48496:(t,e,i)=>{"use strict";i.d(e,{A:()=>a});var r=i(83910),n=i(20453),o=i(1207);let a=function(t,e){return(0,o.A)((0,n.A)(t,e,r.A),t+"")}},39131:(t,e,i)=>{"use strict";i.d(e,{A:()=>r});let r=function(t){return function(e){return t(e)}}},29427:(t,e,i)=>{"use strict";i.d(e,{A:()=>n});var r=i(12066);let n=function(t){var e=new t.constructor(t.byteLength);return new r.A(e).set(new r.A(t)),e}},35012:(t,e,i)=>{"use strict";i.d(e,{A:()=>l});var r=i(29283),n="object"==typeof exports&&exports&&!exports.nodeType&&exports,o=n&&"object"==typeof module&&module&&!module.nodeType&&module,a=o&&o.exports===n?r.A.Buffer:void 0,s=a?a.allocUnsafe:void 0;let l=function(t,e){if(e)return t.slice();var i=t.length,r=s?s(i):new t.constructor(i);return t.copy(r),r}},33379:(t,e,i)=>{"use strict";i.d(e,{A:()=>n});var r=i(29427);let n=function(t,e){var i=e?(0,r.A)(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.length)}},61733:(t,e,i)=>{"use strict";i.d(e,{A:()=>r});let r=function(t,e){var i=-1,r=t.length;for(e||(e=Array(r));++i<r;)e[i]=t[i];return e}},68785:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var r=i(84805),n=i(46402);let o=function(t,e,i,o){var a=!i;i||(i={});for(var s=-1,l=e.length;++s<l;){var h=e[s],c=o?o(i[h],t[h],h,i,t):void 0;void 0===c&&(c=t[h]),a?(0,n.A)(i,h,c):(0,r.A)(i,h,c)}return i}},6977:(t,e,i)=>{"use strict";i.d(e,{A:()=>n});var r=i(69954);let n=function(){try{var t=(0,r.A)(Object,"defineProperty");return t({},"",{}),t}catch(t){}}()},67054:(t,e,i)=>{"use strict";i.d(e,{A:()=>r});let r="object"==typeof global&&global&&global.Object===Object&&global},69954:(t,e,i)=>{"use strict";i.d(e,{A:()=>p});var r,n=i(42036),o=i(29283).A["__core-js_shared__"],a=(r=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"",s=i(17731),l=i(63095),h=/^\[object .+?Constructor\]$/,c=Object.prototype,u=Function.prototype.toString,d=c.hasOwnProperty,f=RegExp("^"+u.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");let p=function(t,e){var i,r=null==t?void 0:t[e];return(i=r,(0,s.A)(i)&&(!a||!(a in i))&&((0,n.A)(i)?f:h).test((0,l.A)(i)))?r:void 0}},30481:(t,e,i)=>{"use strict";i.d(e,{A:()=>r});let r=(0,i(7865).A)(Object.getPrototypeOf,Object)},86073:(t,e,i)=>{"use strict";i.d(e,{A:()=>k});var r=i(69954),n=i(29283),o=(0,r.A)(n.A,"DataView"),a=i(40029),s=(0,r.A)(n.A,"Promise"),l=i(38779),h=(0,r.A)(n.A,"WeakMap"),c=i(36798),u=i(63095),d="[object Map]",f="[object Promise]",p="[object Set]",g="[object WeakMap]",m="[object DataView]",y=(0,u.A)(o),_=(0,u.A)(a.A),b=(0,u.A)(s),C=(0,u.A)(l.A),x=(0,u.A)(h),v=c.A;(o&&v(new o(new ArrayBuffer(1)))!=m||a.A&&v(new a.A)!=d||s&&v(s.resolve())!=f||l.A&&v(new l.A)!=p||h&&v(new h)!=g)&&(v=function(t){var e=(0,c.A)(t),i="[object Object]"==e?t.constructor:void 0,r=i?(0,u.A)(i):"";if(r)switch(r){case y:return m;case _:return d;case b:return f;case C:return p;case x:return g}return e});let k=v},49364:(t,e,i)=>{"use strict";i.d(e,{A:()=>l});var r=i(17731),n=Object.create,o=function(){function t(){}return function(e){if(!(0,r.A)(e))return{};if(n)return n(e);t.prototype=e;var i=new t;return t.prototype=void 0,i}}(),a=i(30481),s=i(85797);let l=function(t){return"function"!=typeof t.constructor||(0,s.A)(t)?{}:o((0,a.A)(t))}},49031:(t,e,i)=>{"use strict";i.d(e,{A:()=>n});var r=/^(?:0|[1-9]\d*)$/;let n=function(t,e){var i=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==i||"symbol"!=i&&r.test(t))&&t>-1&&t%1==0&&t<e}},50174:(t,e,i)=>{"use strict";i.d(e,{A:()=>s});var r=i(65866),n=i(8860),o=i(49031),a=i(17731);let s=function(t,e,i){if(!(0,a.A)(i))return!1;var s=typeof e;return("number"==s?!!((0,n.A)(i)&&(0,o.A)(e,i.length)):"string"==s&&e in i)&&(0,r.A)(i[e],t)}},85797:(t,e,i)=>{"use strict";i.d(e,{A:()=>n});var r=Object.prototype;let n=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||r)}},60027:(t,e,i)=>{"use strict";i.d(e,{A:()=>s});var r=i(67054),n="object"==typeof exports&&exports&&!exports.nodeType&&exports,o=n&&"object"==typeof module&&module&&!module.nodeType&&module,a=o&&o.exports===n&&r.A.process;let s=function(){try{var t=o&&o.require&&o.require("util").types;if(t)return t;return a&&a.binding&&a.binding("util")}catch(t){}}()},7865:(t,e,i)=>{"use strict";i.d(e,{A:()=>r});let r=function(t,e){return function(i){return t(e(i))}}},20453:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});let r=function(t,e,i){switch(i.length){case 0:return t.call(e);case 1:return t.call(e,i[0]);case 2:return t.call(e,i[0],i[1]);case 3:return t.call(e,i[0],i[1],i[2])}return t.apply(e,i)};var n=Math.max;let o=function(t,e,i){return e=n(void 0===e?t.length-1:e,0),function(){for(var o=arguments,a=-1,s=n(o.length-e,0),l=Array(s);++a<s;)l[a]=o[e+a];a=-1;for(var h=Array(e+1);++a<e;)h[a]=o[a];return h[e]=i(l),r(t,this,h)}}},29283:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var r=i(67054),n="object"==typeof self&&self&&self.Object===Object&&self;let o=r.A||n||Function("return this")()},1207:(t,e,i)=>{"use strict";i.d(e,{A:()=>c});var r,n,o=i(39260),a=i(6977),s=i(83910),l=a.A?function(t,e){return(0,a.A)(t,"toString",{configurable:!0,enumerable:!1,value:(0,o.A)(e),writable:!0})}:s.A,h=Date.now;let c=(r=0,n=0,function(){var t=h(),e=16-(t-n);if(n=t,e>0){if(++r>=800)return arguments[0]}else r=0;return l.apply(void 0,arguments)})},63095:(t,e,i)=>{"use strict";i.d(e,{A:()=>n});var r=Function.prototype.toString;let n=function(t){if(null!=t){try{return r.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},39260:(t,e,i)=>{"use strict";i.d(e,{A:()=>r});let r=function(t){return function(){return t}}},65866:(t,e,i)=>{"use strict";i.d(e,{A:()=>r});let r=function(t,e){return t===e||t!=t&&e!=e}},83910:(t,e,i)=>{"use strict";i.d(e,{A:()=>r});let r=function(t){return t}},42908:(t,e,i)=>{"use strict";i.d(e,{A:()=>h});var r=i(36798),n=i(19196);let o=function(t){return(0,n.A)(t)&&"[object Arguments]"==(0,r.A)(t)};var a=Object.prototype,s=a.hasOwnProperty,l=a.propertyIsEnumerable;let h=o(function(){return arguments}())?o:function(t){return(0,n.A)(t)&&s.call(t,"callee")&&!l.call(t,"callee")}},28675:(t,e,i)=>{"use strict";i.d(e,{A:()=>r});let r=Array.isArray},8860:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var r=i(42036),n=i(13884);let o=function(t){return null!=t&&(0,n.A)(t.length)&&!(0,r.A)(t)}},11755:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var r=i(8860),n=i(19196);let o=function(t){return(0,n.A)(t)&&(0,r.A)(t)}},38990:(t,e,i)=>{"use strict";i.d(e,{A:()=>s});var r=i(29283),n="object"==typeof exports&&exports&&!exports.nodeType&&exports,o=n&&"object"==typeof module&&module&&!module.nodeType&&module,a=o&&o.exports===n?r.A.Buffer:void 0;let s=(a?a.isBuffer:void 0)||function(){return!1}},77083:(t,e,i)=>{"use strict";i.d(e,{A:()=>d});var r=i(88601),n=i(86073),o=i(42908),a=i(28675),s=i(8860),l=i(38990),h=i(85797),c=i(75216),u=Object.prototype.hasOwnProperty;let d=function(t){if(null==t)return!0;if((0,s.A)(t)&&((0,a.A)(t)||"string"==typeof t||"function"==typeof t.splice||(0,l.A)(t)||(0,c.A)(t)||(0,o.A)(t)))return!t.length;var e=(0,n.A)(t);if("[object Map]"==e||"[object Set]"==e)return!t.size;if((0,h.A)(t))return!(0,r.A)(t).length;for(var i in t)if(u.call(t,i))return!1;return!0}},42036:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var r=i(36798),n=i(17731);let o=function(t){if(!(0,n.A)(t))return!1;var e=(0,r.A)(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},13884:(t,e,i)=>{"use strict";i.d(e,{A:()=>r});let r=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},17731:(t,e,i)=>{"use strict";i.d(e,{A:()=>r});let r=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},19196:(t,e,i)=>{"use strict";i.d(e,{A:()=>r});let r=function(t){return null!=t&&"object"==typeof t}},69113:(t,e,i)=>{"use strict";i.d(e,{A:()=>c});var r=i(36798),n=i(30481),o=i(19196),a=Object.prototype,s=Function.prototype.toString,l=a.hasOwnProperty,h=s.call(Object);let c=function(t){if(!(0,o.A)(t)||"[object Object]"!=(0,r.A)(t))return!1;var e=(0,n.A)(t);if(null===e)return!0;var i=l.call(e,"constructor")&&e.constructor;return"function"==typeof i&&i instanceof i&&s.call(i)==h}},75216:(t,e,i)=>{"use strict";i.d(e,{A:()=>c});var r=i(36798),n=i(13884),o=i(19196),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1;var s=i(39131),l=i(60027),h=l.A&&l.A.isTypedArray;let c=h?(0,s.A)(h):function(t){return(0,o.A)(t)&&(0,n.A)(t.length)&&!!a[(0,r.A)(t)]}},97937:(t,e,i)=>{"use strict";i.d(e,{A:()=>c});var r=i(78373),n=i(17731),o=i(85797);let a=function(t){var e=[];if(null!=t)for(var i in Object(t))e.push(i);return e};var s=Object.prototype.hasOwnProperty;let l=function(t){if(!(0,n.A)(t))return a(t);var e=(0,o.A)(t),i=[];for(var r in t)"constructor"==r&&(e||!s.call(t,r))||i.push(r);return i};var h=i(8860);let c=function(t){return(0,h.A)(t)?(0,r.A)(t,!0):l(t)}},12854:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var r=i(63713);function n(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw TypeError("Expected a function");var i=function(){var r=arguments,n=e?e.apply(this,r):r[0],o=i.cache;if(o.has(n))return o.get(n);var a=t.apply(this,r);return i.cache=o.set(n,a)||o,a};return i.cache=new(n.Cache||r.A),i}n.Cache=r.A;let o=n},14397:(t,e,i)=>{"use strict";i.d(e,{A:()=>B});var r,n=i(72872),o=i(46402),a=i(65866);let s=function(t,e,i){(void 0===i||(0,a.A)(t[e],i))&&(void 0!==i||e in t)||(0,o.A)(t,e,i)};var l=i(33240),h=i(35012),c=i(33379),u=i(61733),d=i(49364),f=i(42908),p=i(28675),g=i(11755),m=i(38990),y=i(42036),_=i(17731),b=i(69113),C=i(75216);let x=function(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]};var v=i(68785),k=i(97937);let T=function(t,e,i,r,n,o,a){var l=x(t,i),T=x(e,i),A=a.get(T);if(A){s(t,i,A);return}var S=o?o(l,T,i+"",t,e,a):void 0,w=void 0===S;if(w){var B=(0,p.A)(T),F=!B&&(0,m.A)(T),L=!B&&!F&&(0,C.A)(T);(S=T,B||F||L)?(0,p.A)(l)?S=l:(0,g.A)(l)?S=(0,u.A)(l):F?(w=!1,S=(0,h.A)(T,!0)):L?(w=!1,S=(0,c.A)(T,!0)):S=[]:(0,b.A)(T)||(0,f.A)(T)?(S=l,(0,f.A)(l))?S=(0,v.A)(l,(0,k.A)(l)):(!(0,_.A)(l)||(0,y.A)(l))&&(S=(0,d.A)(T)):w=!1}w&&(a.set(T,S),n(S,T,r,o,a),a.delete(T)),s(t,i,S)},A=function t(e,i,r,o,a){e!==i&&(0,l.A)(i,function(l,h){if(a||(a=new n.A),(0,_.A)(l))T(e,i,h,r,t,o,a);else{var c=o?o(x(e,h),l,h+"",e,i,a):void 0;void 0===c&&(c=l),s(e,h,c)}},k.A)};var S=i(48496),w=i(50174);let B=(r=function(t,e,i){A(t,e,i)},(0,S.A)(function(t,e){var i=-1,n=e.length,o=n>1?e[n-1]:void 0,a=n>2?e[2]:void 0;for(o=r.length>3&&"function"==typeof o?(n--,o):void 0,a&&(0,w.A)(e[0],e[1],a)&&(o=n<3?void 0:o,n=1),t=Object(t);++i<n;){var s=e[i];s&&r(t,s,i,o)}return t}))},17367:(t,e,i)=>{"use strict";let r,n;i.d(e,{A:()=>iw,B:()=>eZ,C:()=>tC,D:()=>ik,E:()=>tQ,F:()=>tJ,G:()=>td,H:()=>rj,I:()=>tj,J:()=>J,K:()=>t1,L:()=>rY,M:()=>ix,N:()=>no,Z:()=>tE,a:()=>i_,b:()=>iy,c:()=>et,d:()=>tt,e:()=>to,f:()=>tM,g:()=>im,h:()=>tY,i:()=>eK,j:()=>tH,k:()=>t$,l:()=>G,m:()=>r1,n:()=>tr,o:()=>tN,p:()=>e0,q:()=>t9,r:()=>ib,s:()=>ig,t:()=>iC,u:()=>tK,v:()=>ip,w:()=>tW,x:()=>tn,y:()=>tP,z:()=>iA});var o=i(97597),a=i(95285),s=i(31546),l=i(93126),h=i(31234),c=i(112),u=i(91946);let d=(t,e)=>{let i=c.A.parse(t),r={};for(let t in e)e[t]&&(r[t]=i[t]+e[t]);return(0,u.A)(t,r)};var f=i(18448);let p=(t,e,i=50)=>{let{r:r,g:n,b:o,a:a}=c.A.parse(t),{r:s,g:l,b:h,a:u}=c.A.parse(e),d=i/100,p=2*d-1,g=a-u,m=((p*g==-1?p:(p+g)/(1+p*g))+1)/2,y=1-m;return(0,f.A)(r*m+s*y,n*m+l*y,o*m+h*y,a*d+u*(1-d))},g=(t,e=100)=>{let i=c.A.parse(t);return i.r=255-i.r,i.g=255-i.g,i.b=255-i.b,p(i,t,e)};var m=i(57721),y=i(68459),_=i(71725),b=i(12854),C=i(14397),x="comm",v="rule",k="decl",T=Math.abs,A=String.fromCharCode;function S(t,e,i){return t.replace(e,i)}function w(t,e){return 0|t.charCodeAt(e)}function B(t,e,i){return t.slice(e,i)}function F(t){return t.length}function L(t,e){return e.push(t),t}function M(t,e){for(var i="",r=0;r<t.length;r++)i+=e(t[r],r,t,e)||"";return i}function E(t,e,i,r){switch(t.type){case"@layer":if(t.children.length)break;case"@import":case k:return t.return=t.return||t.value;case x:return"";case"@keyframes":return t.return=t.value+"{"+M(t.children,r)+"}";case v:if(!F(t.value=t.props.join(",")))return""}return F(i=M(t.children,r))?t.return=t.value+"{"+i+"}":""}var O=1,I=1,q=0,N=0,D=0,$="";function z(t,e,i,r,n,o,a,s){return{value:t,root:e,parent:i,type:r,props:n,children:o,line:O,column:I,length:a,return:"",siblings:s}}function j(){return D=N<q?w($,N++):0,I++,10===D&&(I=1,O++),D}function P(){return w($,N)}function R(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function W(t){var e,i;return(e=N-1,i=function t(e){for(;j();)switch(D){case e:return N;case 34:case 39:34!==e&&39!==e&&t(D);break;case 40:41===e&&t(e);break;case 92:j()}return N}(91===t?t+2:40===t?t+1:t),B($,e,i)).trim()}function U(t,e,i,r,n,o,a,s,l,h,c,u){for(var d=n-1,f=0===n?o:[""],p=f.length,g=0,m=0,y=0;g<r;++g)for(var _=0,b=B(t,d+1,d=T(m=a[g])),C=t;_<p;++_)(C=(m>0?f[_]+" "+b:S(b,/&\f/g,f[_])).trim())&&(l[y++]=C);return z(t,e,i,0===n?v:s,l,h,c,u)}function H(t,e,i,r,n){return z(t,e,i,k,B(t,0,r),B(t,r+1,-1),r,n)}var Y=i(77083);let V={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},G={trace:(...t)=>{},debug:(...t)=>{},info:(...t)=>{},warn:(...t)=>{},error:(...t)=>{},fatal:(...t)=>{}},X=function(t="fatal"){let e=V.fatal;"string"==typeof t?(t=t.toLowerCase())in V&&(e=V[t]):"number"==typeof t&&(e=t),G.trace=()=>{},G.debug=()=>{},G.info=()=>{},G.warn=()=>{},G.error=()=>{},G.fatal=()=>{},e<=V.fatal&&(G.fatal=console.error?console.error.bind(console,Z("FATAL"),"color: orange"):console.log.bind(console,"\x1b[35m",Z("FATAL"))),e<=V.error&&(G.error=console.error?console.error.bind(console,Z("ERROR"),"color: orange"):console.log.bind(console,"\x1b[31m",Z("ERROR"))),e<=V.warn&&(G.warn=console.warn?console.warn.bind(console,Z("WARN"),"color: orange"):console.log.bind(console,`\x1b[33m`,Z("WARN"))),e<=V.info&&(G.info=console.info?console.info.bind(console,Z("INFO"),"color: lightblue"):console.log.bind(console,"\x1b[34m",Z("INFO"))),e<=V.debug&&(G.debug=console.debug?console.debug.bind(console,Z("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",Z("DEBUG"))),e<=V.trace&&(G.trace=console.debug?console.debug.bind(console,Z("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",Z("TRACE")))},Z=t=>{let e=a().format("ss.SSS");return`%c${e} : ${t} : `},J=/<br\s*\/?>/gi,Q=t=>h.sanitize(t),K=(t,e)=>{var i;if((null==(i=e.flowchart)?void 0:i.htmlLabels)!==!1){let i=e.securityLevel;"antiscript"===i||"strict"===i?t=Q(t):"loose"!==i&&(t=te(t=(t=(t=ti(t)).replace(/</g,"<").replace(/>/g,">")).replace(/=/g,"=")))}return t},tt=(t,e)=>t?t=e.dompurifyConfig?h.sanitize(K(t,e),e.dompurifyConfig).toString():h.sanitize(K(t,e),{FORBID_TAGS:["style"]}).toString():t,te=t=>t.replace(/#br#/g,"<br/>"),ti=t=>t.replace(J,"#br#"),tr=t=>!(!1===t||["false","null","0"].includes(String(t).trim().toLowerCase())),tn=function(t){let e=t;if(!(t.split("~").length-1>=2))return e;{let t=e;do t=(e=t).replace(/~([^\s,:;]+)~/,"<$1>");while(t!=e)return tn(t)}},to={getRows:t=>t?ti(t).replace(/\\n/g,"#br#").split("#br#"):[""],sanitizeText:tt,sanitizeTextOrArray:(t,e)=>"string"==typeof t?tt(t,e):t.flat().map(t=>tt(t,e)),hasBreaks:t=>J.test(t),splitBreaks:t=>t.split(J),lineBreakRegex:J,removeScript:Q,getUrl:t=>{let e="";return t&&(e=(e=(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replaceAll(/\(/g,"\\(")).replaceAll(/\)/g,"\\)")),e},evaluate:tr,getMax:function(...t){return Math.max(...t.filter(t=>!isNaN(t)))},getMin:function(...t){return Math.min(...t.filter(t=>!isNaN(t)))}},ta=(t,e)=>e?d(t,{s:-40,l:10}):d(t,{s:-40,l:-10}),ts="#ffffff",tl="#f2f2f2",th=class{constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||d(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||d(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||ta(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||ta(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||ta(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||ta(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||g(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||g(this.tertiaryColor),this.lineColor=this.lineColor||g(this.background),this.arrowheadColor=this.arrowheadColor||g(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?(0,m.A)(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||"grey",this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||(0,m.A)(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||g(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||(0,y.A)(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||d(this.primaryColor,{h:30}),this.cScale4=this.cScale4||d(this.primaryColor,{h:60}),this.cScale5=this.cScale5||d(this.primaryColor,{h:90}),this.cScale6=this.cScale6||d(this.primaryColor,{h:120}),this.cScale7=this.cScale7||d(this.primaryColor,{h:150}),this.cScale8=this.cScale8||d(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||d(this.primaryColor,{h:270}),this.cScale10=this.cScale10||d(this.primaryColor,{h:300}),this.cScale11=this.cScale11||d(this.primaryColor,{h:330}),this.darkMode)for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScale"+t]=(0,m.A)(this["cScale"+t],75);else for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScale"+t]=(0,m.A)(this["cScale"+t],25);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||g(this["cScale"+t]);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this.darkMode?this["cScalePeer"+t]=this["cScalePeer"+t]||(0,y.A)(this["cScale"+t],10):this["cScalePeer"+t]=this["cScalePeer"+t]||(0,m.A)(this["cScale"+t],10);this.scaleLabelColor=this.scaleLabelColor||this.labelTextColor;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;let t=this.darkMode?-4:-1;for(let e=0;e<5;e++)this["surface"+e]=this["surface"+e]||d(this.mainBkg,{h:180,s:-15,l:t*(5+3*e)}),this["surfacePeer"+e]=this["surfacePeer"+e]||d(this.mainBkg,{h:180,s:-15,l:t*(8+3*e)});this.classText=this.classText||this.textColor,this.fillType0=this.fillType0||this.primaryColor,this.fillType1=this.fillType1||this.secondaryColor,this.fillType2=this.fillType2||d(this.primaryColor,{h:64}),this.fillType3=this.fillType3||d(this.secondaryColor,{h:64}),this.fillType4=this.fillType4||d(this.primaryColor,{h:-64}),this.fillType5=this.fillType5||d(this.secondaryColor,{h:-64}),this.fillType6=this.fillType6||d(this.primaryColor,{h:128}),this.fillType7=this.fillType7||d(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||d(this.primaryColor,{l:-10}),this.pie5=this.pie5||d(this.secondaryColor,{l:-10}),this.pie6=this.pie6||d(this.tertiaryColor,{l:-10}),this.pie7=this.pie7||d(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||d(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||d(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||d(this.primaryColor,{h:60,l:-20}),this.pie11=this.pie11||d(this.primaryColor,{h:-60,l:-20}),this.pie12=this.pie12||d(this.primaryColor,{h:120,l:-10}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||d(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||d(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||d(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||d(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||d(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||d(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,_.A)(this.quadrant1Fill)?(0,y.A)(this.quadrant1Fill):(0,m.A)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?(0,m.A)(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||d(this.primaryColor,{h:-30}),this.git4=this.git4||d(this.primaryColor,{h:-60}),this.git5=this.git5||d(this.primaryColor,{h:-90}),this.git6=this.git6||d(this.primaryColor,{h:60}),this.git7=this.git7||d(this.primaryColor,{h:120}),this.darkMode?(this.git0=(0,y.A)(this.git0,25),this.git1=(0,y.A)(this.git1,25),this.git2=(0,y.A)(this.git2,25),this.git3=(0,y.A)(this.git3,25),this.git4=(0,y.A)(this.git4,25),this.git5=(0,y.A)(this.git5,25),this.git6=(0,y.A)(this.git6,25),this.git7=(0,y.A)(this.git7,25)):(this.git0=(0,m.A)(this.git0,25),this.git1=(0,m.A)(this.git1,25),this.git2=(0,m.A)(this.git2,25),this.git3=(0,m.A)(this.git3,25),this.git4=(0,m.A)(this.git4,25),this.git5=(0,m.A)(this.git5,25),this.git6=(0,m.A)(this.git6,25),this.git7=(0,m.A)(this.git7,25)),this.gitInv0=this.gitInv0||g(this.git0),this.gitInv1=this.gitInv1||g(this.git1),this.gitInv2=this.gitInv2||g(this.git2),this.gitInv3=this.gitInv3||g(this.git3),this.gitInv4=this.gitInv4||g(this.git4),this.gitInv5=this.gitInv5||g(this.git5),this.gitInv6=this.gitInv6||g(this.git6),this.gitInv7=this.gitInv7||g(this.git7),this.branchLabelColor=this.branchLabelColor||(this.darkMode?"black":this.labelTextColor),this.gitBranchLabel0=this.gitBranchLabel0||this.branchLabelColor,this.gitBranchLabel1=this.gitBranchLabel1||this.branchLabelColor,this.gitBranchLabel2=this.gitBranchLabel2||this.branchLabelColor,this.gitBranchLabel3=this.gitBranchLabel3||this.branchLabelColor,this.gitBranchLabel4=this.gitBranchLabel4||this.branchLabelColor,this.gitBranchLabel5=this.gitBranchLabel5||this.branchLabelColor,this.gitBranchLabel6=this.gitBranchLabel6||this.branchLabelColor,this.gitBranchLabel7=this.gitBranchLabel7||this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||ts,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||tl}calculate(t){if("object"!=typeof t){this.updateColors();return}let e=Object.keys(t);e.forEach(e=>{this[e]=t[e]}),this.updateColors(),e.forEach(e=>{this[e]=t[e]})}},tc=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=(0,y.A)(this.primaryColor,16),this.tertiaryColor=d(this.primaryColor,{h:-160}),this.primaryBorderColor=g(this.background),this.secondaryBorderColor=ta(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ta(this.tertiaryColor,this.darkMode),this.primaryTextColor=g(this.primaryColor),this.secondaryTextColor=g(this.secondaryColor),this.tertiaryTextColor=g(this.tertiaryColor),this.lineColor=g(this.background),this.textColor=g(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=(0,y.A)(g("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=(0,f.A)(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=(0,m.A)("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=(0,m.A)(this.sectionBkgColor,10),this.taskBorderColor=(0,f.A)(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=(0,f.A)(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=(0,y.A)(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=(0,y.A)(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.mainContrastColor,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=(0,y.A)(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=d(this.primaryColor,{h:64}),this.fillType3=d(this.secondaryColor,{h:64}),this.fillType4=d(this.primaryColor,{h:-64}),this.fillType5=d(this.secondaryColor,{h:-64}),this.fillType6=d(this.primaryColor,{h:128}),this.fillType7=d(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||d(this.primaryColor,{h:30}),this.cScale4=this.cScale4||d(this.primaryColor,{h:60}),this.cScale5=this.cScale5||d(this.primaryColor,{h:90}),this.cScale6=this.cScale6||d(this.primaryColor,{h:120}),this.cScale7=this.cScale7||d(this.primaryColor,{h:150}),this.cScale8=this.cScale8||d(this.primaryColor,{h:210}),this.cScale9=this.cScale9||d(this.primaryColor,{h:270}),this.cScale10=this.cScale10||d(this.primaryColor,{h:300}),this.cScale11=this.cScale11||d(this.primaryColor,{h:330});for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||g(this["cScale"+t]);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScalePeer"+t]=this["cScalePeer"+t]||(0,y.A)(this["cScale"+t],10);for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||d(this.mainBkg,{h:30,s:-30,l:-(-10+4*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||d(this.mainBkg,{h:30,s:-30,l:-(-7+4*t)});this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["pie"+t]=this["cScale"+t];this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||d(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||d(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||d(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||d(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||d(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||d(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,_.A)(this.quadrant1Fill)?(0,y.A)(this.quadrant1Fill):(0,m.A)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.classText=this.primaryTextColor,this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?(0,m.A)(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=(0,y.A)(this.secondaryColor,20),this.git1=(0,y.A)(this.pie2||this.secondaryColor,20),this.git2=(0,y.A)(this.pie3||this.tertiaryColor,20),this.git3=(0,y.A)(this.pie4||d(this.primaryColor,{h:-30}),20),this.git4=(0,y.A)(this.pie5||d(this.primaryColor,{h:-60}),20),this.git5=(0,y.A)(this.pie6||d(this.primaryColor,{h:-90}),10),this.git6=(0,y.A)(this.pie7||d(this.primaryColor,{h:60}),10),this.git7=(0,y.A)(this.pie8||d(this.primaryColor,{h:120}),20),this.gitInv0=this.gitInv0||g(this.git0),this.gitInv1=this.gitInv1||g(this.git1),this.gitInv2=this.gitInv2||g(this.git2),this.gitInv3=this.gitInv3||g(this.git3),this.gitInv4=this.gitInv4||g(this.git4),this.gitInv5=this.gitInv5||g(this.git5),this.gitInv6=this.gitInv6||g(this.git6),this.gitInv7=this.gitInv7||g(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||g(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||g(this.labelTextColor),this.gitBranchLabel4=this.gitBranchLabel4||this.labelTextColor,this.gitBranchLabel5=this.gitBranchLabel5||this.labelTextColor,this.gitBranchLabel6=this.gitBranchLabel6||this.labelTextColor,this.gitBranchLabel7=this.gitBranchLabel7||this.labelTextColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||(0,y.A)(this.background,12),this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||(0,y.A)(this.background,2)}calculate(t){if("object"!=typeof t){this.updateColors();return}let e=Object.keys(t);e.forEach(e=>{this[e]=t[e]}),this.updateColors(),e.forEach(e=>{this[e]=t[e]})}},tu=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=d(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=d(this.primaryColor,{h:-160}),this.primaryBorderColor=ta(this.primaryColor,this.darkMode),this.secondaryBorderColor=ta(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ta(this.tertiaryColor,this.darkMode),this.primaryTextColor=g(this.primaryColor),this.secondaryTextColor=g(this.secondaryColor),this.tertiaryTextColor=g(this.tertiaryColor),this.lineColor=g(this.background),this.textColor=g(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#e8e8e8",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=(0,f.A)(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||d(this.primaryColor,{h:30}),this.cScale4=this.cScale4||d(this.primaryColor,{h:60}),this.cScale5=this.cScale5||d(this.primaryColor,{h:90}),this.cScale6=this.cScale6||d(this.primaryColor,{h:120}),this.cScale7=this.cScale7||d(this.primaryColor,{h:150}),this.cScale8=this.cScale8||d(this.primaryColor,{h:210}),this.cScale9=this.cScale9||d(this.primaryColor,{h:270}),this.cScale10=this.cScale10||d(this.primaryColor,{h:300}),this.cScale11=this.cScale11||d(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||(0,m.A)(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||(0,m.A)(this.tertiaryColor,40);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScale"+t]=(0,m.A)(this["cScale"+t],10),this["cScalePeer"+t]=this["cScalePeer"+t]||(0,m.A)(this["cScale"+t],25);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||d(this["cScale"+t],{h:180});for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||d(this.mainBkg,{h:30,l:-(5+5*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||d(this.mainBkg,{h:30,l:-(7+5*t)});if(this.scaleLabelColor="calculated"!==this.scaleLabelColor&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor,"calculated"!==this.labelTextColor){this.cScaleLabel0=this.cScaleLabel0||g(this.labelTextColor),this.cScaleLabel3=this.cScaleLabel3||g(this.labelTextColor);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.labelTextColor}this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.titleColor=this.textColor,this.edgeLabelBackground=this.labelBackground,this.actorBorder=(0,y.A)(this.border1,23),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.signalColor=this.textColor,this.signalTextColor=this.textColor,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.taskTextColor=this.taskTextLightColor,this.taskTextOutsideColor=this.taskTextDarkColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.specialStateColor=this.lineColor,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=d(this.primaryColor,{h:64}),this.fillType3=d(this.secondaryColor,{h:64}),this.fillType4=d(this.primaryColor,{h:-64}),this.fillType5=d(this.secondaryColor,{h:-64}),this.fillType6=d(this.primaryColor,{h:128}),this.fillType7=d(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||d(this.tertiaryColor,{l:-40}),this.pie4=this.pie4||d(this.primaryColor,{l:-10}),this.pie5=this.pie5||d(this.secondaryColor,{l:-30}),this.pie6=this.pie6||d(this.tertiaryColor,{l:-20}),this.pie7=this.pie7||d(this.primaryColor,{h:60,l:-20}),this.pie8=this.pie8||d(this.primaryColor,{h:-60,l:-40}),this.pie9=this.pie9||d(this.primaryColor,{h:120,l:-40}),this.pie10=this.pie10||d(this.primaryColor,{h:60,l:-40}),this.pie11=this.pie11||d(this.primaryColor,{h:-90,l:-40}),this.pie12=this.pie12||d(this.primaryColor,{h:120,l:-30}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||d(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||d(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||d(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||d(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||d(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||d(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,_.A)(this.quadrant1Fill)?(0,y.A)(this.quadrant1Fill):(0,m.A)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.labelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||d(this.primaryColor,{h:-30}),this.git4=this.git4||d(this.primaryColor,{h:-60}),this.git5=this.git5||d(this.primaryColor,{h:-90}),this.git6=this.git6||d(this.primaryColor,{h:60}),this.git7=this.git7||d(this.primaryColor,{h:120}),this.darkMode?(this.git0=(0,y.A)(this.git0,25),this.git1=(0,y.A)(this.git1,25),this.git2=(0,y.A)(this.git2,25),this.git3=(0,y.A)(this.git3,25),this.git4=(0,y.A)(this.git4,25),this.git5=(0,y.A)(this.git5,25),this.git6=(0,y.A)(this.git6,25),this.git7=(0,y.A)(this.git7,25)):(this.git0=(0,m.A)(this.git0,25),this.git1=(0,m.A)(this.git1,25),this.git2=(0,m.A)(this.git2,25),this.git3=(0,m.A)(this.git3,25),this.git4=(0,m.A)(this.git4,25),this.git5=(0,m.A)(this.git5,25),this.git6=(0,m.A)(this.git6,25),this.git7=(0,m.A)(this.git7,25)),this.gitInv0=this.gitInv0||(0,m.A)(g(this.git0),25),this.gitInv1=this.gitInv1||g(this.git1),this.gitInv2=this.gitInv2||g(this.git2),this.gitInv3=this.gitInv3||g(this.git3),this.gitInv4=this.gitInv4||g(this.git4),this.gitInv5=this.gitInv5||g(this.git5),this.gitInv6=this.gitInv6||g(this.git6),this.gitInv7=this.gitInv7||g(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||g(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||g(this.labelTextColor),this.gitBranchLabel4=this.gitBranchLabel4||this.labelTextColor,this.gitBranchLabel5=this.gitBranchLabel5||this.labelTextColor,this.gitBranchLabel6=this.gitBranchLabel6||this.labelTextColor,this.gitBranchLabel7=this.gitBranchLabel7||this.labelTextColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||ts,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||tl}calculate(t){if("object"!=typeof t){this.updateColors();return}let e=Object.keys(t);e.forEach(e=>{this[e]=t[e]}),this.updateColors(),e.forEach(e=>{this[e]=t[e]})}},td=t=>{let e=new tu;return e.calculate(t),e},tf=class{constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=(0,y.A)("#cde498",10),this.primaryBorderColor=ta(this.primaryColor,this.darkMode),this.secondaryBorderColor=ta(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ta(this.tertiaryColor,this.darkMode),this.primaryTextColor=g(this.primaryColor),this.secondaryTextColor=g(this.secondaryColor),this.tertiaryTextColor=g(this.primaryColor),this.lineColor=g(this.background),this.textColor=g(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.actorBorder=(0,m.A)(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||d(this.primaryColor,{h:30}),this.cScale4=this.cScale4||d(this.primaryColor,{h:60}),this.cScale5=this.cScale5||d(this.primaryColor,{h:90}),this.cScale6=this.cScale6||d(this.primaryColor,{h:120}),this.cScale7=this.cScale7||d(this.primaryColor,{h:150}),this.cScale8=this.cScale8||d(this.primaryColor,{h:210}),this.cScale9=this.cScale9||d(this.primaryColor,{h:270}),this.cScale10=this.cScale10||d(this.primaryColor,{h:300}),this.cScale11=this.cScale11||d(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||(0,m.A)(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||(0,m.A)(this.tertiaryColor,40);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScale"+t]=(0,m.A)(this["cScale"+t],10),this["cScalePeer"+t]=this["cScalePeer"+t]||(0,m.A)(this["cScale"+t],25);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||d(this["cScale"+t],{h:180});this.scaleLabelColor="calculated"!==this.scaleLabelColor&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||d(this.mainBkg,{h:30,s:-30,l:-(5+5*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||d(this.mainBkg,{h:30,s:-30,l:-(8+5*t)});this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.taskBorderColor=this.border1,this.taskTextColor=this.taskTextLightColor,this.taskTextOutsideColor=this.taskTextDarkColor,this.activeTaskBorderColor=this.taskBorderColor,this.activeTaskBkgColor=this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor=this.lineColor,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=d(this.primaryColor,{h:64}),this.fillType3=d(this.secondaryColor,{h:64}),this.fillType4=d(this.primaryColor,{h:-64}),this.fillType5=d(this.secondaryColor,{h:-64}),this.fillType6=d(this.primaryColor,{h:128}),this.fillType7=d(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||d(this.primaryColor,{l:-30}),this.pie5=this.pie5||d(this.secondaryColor,{l:-30}),this.pie6=this.pie6||d(this.tertiaryColor,{h:40,l:-40}),this.pie7=this.pie7||d(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||d(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||d(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||d(this.primaryColor,{h:60,l:-50}),this.pie11=this.pie11||d(this.primaryColor,{h:-60,l:-50}),this.pie12=this.pie12||d(this.primaryColor,{h:120,l:-50}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||d(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||d(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||d(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||d(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||d(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||d(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,_.A)(this.quadrant1Fill)?(0,y.A)(this.quadrant1Fill):(0,m.A)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.edgeLabelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||d(this.primaryColor,{h:-30}),this.git4=this.git4||d(this.primaryColor,{h:-60}),this.git5=this.git5||d(this.primaryColor,{h:-90}),this.git6=this.git6||d(this.primaryColor,{h:60}),this.git7=this.git7||d(this.primaryColor,{h:120}),this.darkMode?(this.git0=(0,y.A)(this.git0,25),this.git1=(0,y.A)(this.git1,25),this.git2=(0,y.A)(this.git2,25),this.git3=(0,y.A)(this.git3,25),this.git4=(0,y.A)(this.git4,25),this.git5=(0,y.A)(this.git5,25),this.git6=(0,y.A)(this.git6,25),this.git7=(0,y.A)(this.git7,25)):(this.git0=(0,m.A)(this.git0,25),this.git1=(0,m.A)(this.git1,25),this.git2=(0,m.A)(this.git2,25),this.git3=(0,m.A)(this.git3,25),this.git4=(0,m.A)(this.git4,25),this.git5=(0,m.A)(this.git5,25),this.git6=(0,m.A)(this.git6,25),this.git7=(0,m.A)(this.git7,25)),this.gitInv0=this.gitInv0||g(this.git0),this.gitInv1=this.gitInv1||g(this.git1),this.gitInv2=this.gitInv2||g(this.git2),this.gitInv3=this.gitInv3||g(this.git3),this.gitInv4=this.gitInv4||g(this.git4),this.gitInv5=this.gitInv5||g(this.git5),this.gitInv6=this.gitInv6||g(this.git6),this.gitInv7=this.gitInv7||g(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||g(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||g(this.labelTextColor),this.gitBranchLabel4=this.gitBranchLabel4||this.labelTextColor,this.gitBranchLabel5=this.gitBranchLabel5||this.labelTextColor,this.gitBranchLabel6=this.gitBranchLabel6||this.labelTextColor,this.gitBranchLabel7=this.gitBranchLabel7||this.labelTextColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||ts,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||tl}calculate(t){if("object"!=typeof t){this.updateColors();return}let e=Object.keys(t);e.forEach(e=>{this[e]=t[e]}),this.updateColors(),e.forEach(e=>{this[e]=t[e]})}};class tp{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=(0,y.A)(this.contrast,55),this.background="#ffffff",this.tertiaryColor=d(this.primaryColor,{h:-160}),this.primaryBorderColor=ta(this.primaryColor,this.darkMode),this.secondaryBorderColor=ta(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ta(this.tertiaryColor,this.darkMode),this.primaryTextColor=g(this.primaryColor),this.secondaryTextColor=g(this.secondaryColor),this.tertiaryTextColor=g(this.tertiaryColor),this.lineColor=g(this.background),this.textColor=g(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.secondBkg=(0,y.A)(this.contrast,55),this.border2=this.contrast,this.actorBorder=(0,y.A)(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.lineColor,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||g(this["cScale"+t]);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this.darkMode?this["cScalePeer"+t]=this["cScalePeer"+t]||(0,y.A)(this["cScale"+t],10):this["cScalePeer"+t]=this["cScalePeer"+t]||(0,m.A)(this["cScale"+t],10);this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor),this.cScaleLabel0=this.cScaleLabel0||this.cScale1,this.cScaleLabel2=this.cScaleLabel2||this.cScale1;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||d(this.mainBkg,{l:-(5+5*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||d(this.mainBkg,{l:-(8+5*t)});this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.titleColor=this.text,this.sectionBkgColor=(0,y.A)(this.contrast,30),this.sectionBkgColor2=(0,y.A)(this.contrast,30),this.taskBorderColor=(0,m.A)(this.contrast,10),this.taskBkgColor=this.contrast,this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor=this.text,this.taskTextOutsideColor=this.taskTextDarkColor,this.activeTaskBorderColor=this.taskBorderColor,this.activeTaskBkgColor=this.mainBkg,this.gridColor=(0,y.A)(this.border1,30),this.doneTaskBkgColor=this.done,this.doneTaskBorderColor=this.lineColor,this.critBkgColor=this.critical,this.critBorderColor=(0,m.A)(this.critBkgColor,10),this.todayLineColor=this.critBkgColor,this.transitionColor=this.transitionColor||"#000",this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f4f4f4",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.stateBorder=this.stateBorder||"#000",this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#222",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=d(this.primaryColor,{h:64}),this.fillType3=d(this.secondaryColor,{h:64}),this.fillType4=d(this.primaryColor,{h:-64}),this.fillType5=d(this.secondaryColor,{h:-64}),this.fillType6=d(this.primaryColor,{h:128}),this.fillType7=d(this.secondaryColor,{h:128});for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["pie"+t]=this["cScale"+t];this.pie12=this.pie0,this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||d(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||d(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||d(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||d(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||d(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||d(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,_.A)(this.quadrant1Fill)?(0,y.A)(this.quadrant1Fill):(0,m.A)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.edgeLabelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=(0,m.A)(this.pie1,25)||this.primaryColor,this.git1=this.pie2||this.secondaryColor,this.git2=this.pie3||this.tertiaryColor,this.git3=this.pie4||d(this.primaryColor,{h:-30}),this.git4=this.pie5||d(this.primaryColor,{h:-60}),this.git5=this.pie6||d(this.primaryColor,{h:-90}),this.git6=this.pie7||d(this.primaryColor,{h:60}),this.git7=this.pie8||d(this.primaryColor,{h:120}),this.gitInv0=this.gitInv0||g(this.git0),this.gitInv1=this.gitInv1||g(this.git1),this.gitInv2=this.gitInv2||g(this.git2),this.gitInv3=this.gitInv3||g(this.git3),this.gitInv4=this.gitInv4||g(this.git4),this.gitInv5=this.gitInv5||g(this.git5),this.gitInv6=this.gitInv6||g(this.git6),this.gitInv7=this.gitInv7||g(this.git7),this.branchLabelColor=this.branchLabelColor||this.labelTextColor,this.gitBranchLabel0=this.branchLabelColor,this.gitBranchLabel1="white",this.gitBranchLabel2=this.branchLabelColor,this.gitBranchLabel3="white",this.gitBranchLabel4=this.branchLabelColor,this.gitBranchLabel5=this.branchLabelColor,this.gitBranchLabel6=this.branchLabelColor,this.gitBranchLabel7=this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||ts,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||tl}calculate(t){if("object"!=typeof t){this.updateColors();return}let e=Object.keys(t);e.forEach(e=>{this[e]=t[e]}),this.updateColors(),e.forEach(e=>{this[e]=t[e]})}}let tg={base:{getThemeVariables:t=>{let e=new th;return e.calculate(t),e}},dark:{getThemeVariables:t=>{let e=new tc;return e.calculate(t),e}},default:{getThemeVariables:td},forest:{getThemeVariables:t=>{let e=new tf;return e.calculate(t),e}},neutral:{getThemeVariables:t=>{let e=new tp;return e.calculate(t),e}}},tm={flowchart:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},theme:"default",maxTextSize:5e4,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize"],deterministicIds:!1,fontSize:16},ty={...tm,deterministicIDSeed:void 0,themeCSS:void 0,themeVariables:tg.default.getThemeVariables(),sequence:{...tm.sequence,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{...tm.gantt,tickInterval:void 0,useWidth:void 0},c4:{...tm.c4,useWidth:void 0,personFont:function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},external_personFont:function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},systemFont:function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},external_systemFont:function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},system_dbFont:function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},external_system_dbFont:function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},system_queueFont:function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},external_system_queueFont:function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},containerFont:function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},external_containerFont:function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},container_dbFont:function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},external_container_dbFont:function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},container_queueFont:function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},external_container_queueFont:function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},componentFont:function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},external_componentFont:function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},component_dbFont:function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},external_component_dbFont:function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},component_queueFont:function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},external_component_queueFont:function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},boundaryFont:function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}}},pie:{...tm.pie,useWidth:984},requirement:{...tm.requirement,useWidth:void 0},gitGraph:{...tm.gitGraph,useMaxWidth:!1},sankey:{...tm.sankey,useMaxWidth:!1}},t_=(t,e="")=>Object.keys(t).reduce((i,r)=>Array.isArray(t[r])?i:"object"==typeof t[r]&&null!==t[r]?[...i,e+r,...t_(t[r],"")]:[...i,e+r],[]),tb=new Set(t_(ty,"")),tC=ty,tx=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,tv=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,tk=/\s*%%.*\n/gm;class tT extends Error{constructor(t){super(t),this.name="UnknownDiagramError"}}let tA={},tS=function(t,e){for(let[i,{detector:r}]of(t=t.replace(tx,"").replace(tv,"").replace(tk,"\n"),Object.entries(tA)))if(r(t,e))return i;throw new tT(`No diagram type detected matching given configuration for text: ${t}`)},tw=(...t)=>{for(let{id:e,detector:i,loader:r}of t)tB(e,i,r)},tB=(t,e,i)=>{tA[t]?G.error(`Detector with key ${t} already exists`):tA[t]={detector:e,loader:i},G.debug(`Detector with key ${t} added${i?" with loader":""}`)},tF=t=>tA[t].loader,tL=(t,e,{depth:i=2,clobber:r=!1}={})=>{let n={depth:i,clobber:r};return Array.isArray(e)&&!Array.isArray(t)?(e.forEach(e=>tL(t,e,n)),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach(e=>{t.includes(e)||t.push(e)}),t):void 0===t||i<=0?null!=t&&"object"==typeof t&&"object"==typeof e?Object.assign(t,e):e:(void 0!==e&&"object"==typeof t&&"object"==typeof e&&Object.keys(e).forEach(n=>{"object"==typeof e[n]&&(void 0===t[n]||"object"==typeof t[n])?(void 0===t[n]&&(t[n]=Array.isArray(e[n])?[]:{}),t[n]=tL(t[n],e[n],{depth:i-1,clobber:r})):(r||"object"!=typeof t[n]&&"object"!=typeof e[n])&&(t[n]=e[n])}),t)},tM=tL,tE="\u200B",tO={curveBasis:l.qrM,curveBasisClosed:l.Yu4,curveBasisOpen:l.IA3,curveBumpX:l.Wi0,curveBumpY:l.PGM,curveBundle:l.OEq,curveCardinalClosed:l.olC,curveCardinalOpen:l.IrU,curveCardinal:l.y8u,curveCatmullRomClosed:l.Q7f,curveCatmullRomOpen:l.cVp,curveCatmullRom:l.oDi,curveLinear:l.lUB,curveLinearClosed:l.Lx9,curveMonotoneX:l.nVG,curveMonotoneY:l.uxU,curveNatural:l.Xf2,curveStep:l.GZz,curveStepAfter:l.UPb,curveStepBefore:l.dyv},tI=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,tq=function(t,e=null){try{let i;let r=RegExp(`[%]{2}(?![{]${tI.source})(?=[}][%]{2}).* -`,"ig");t=t.trim().replace(r,"").replace(/'/gm,'"'),G.debug(`Detecting diagram directive${null!==e?" type:"+e:""} based on the text:${t}`);let n=[];for(;null!==(i=tv.exec(t));)if(i.index===tv.lastIndex&&tv.lastIndex++,i&&!e||e&&i[1]&&i[1].match(e)||e&&i[2]&&i[2].match(e)){let t=i[1]?i[1]:i[2],e=i[3]?i[3].trim():i[4]?JSON.parse(i[4].trim()):null;n.push({type:t,args:e})}return 0===n.length&&n.push({type:t,args:null}),1===n.length?n[0]:n}catch(i){return G.error(`ERROR: ${i.message} - Unable to parse directive - ${null!==e?" type:"+e:""} based on the text:${t}`),{type:null,args:null}}};function tN(t,e){return t&&tO[`curve${t.charAt(0).toUpperCase()+t.slice(1)}`]||e}function tD(t,e){return t&&e?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)):0}function t$(t){let e="",i="";for(let r of t)void 0!==r&&(r.startsWith("color:")||r.startsWith("text-align:")?i=i+r+";":e=e+r+";");return{style:e,labelStyle:i}}let tz=0,tj=()=>(tz++,"id-"+Math.random().toString(36).substr(2,12)+"-"+tz),tP=t=>(function(t){let e="",i="0123456789abcdef",r=i.length;for(let n=0;n<t;n++)e+=i.charAt(Math.floor(Math.random()*r));return e})(t.length),tR=function(t,e){let i=e.text.replace(to.lineBreakRegex," "),[,r]=tJ(e.fontSize),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.style("text-anchor",e.anchor),n.style("font-family",e.fontFamily),n.style("font-size",r),n.style("font-weight",e.fontWeight),n.attr("fill",e.fill),void 0!==e.class&&n.attr("class",e.class);let o=n.append("tspan");return o.attr("x",e.x+2*e.textMargin),o.attr("fill",e.fill),o.text(i),n},tW=(0,b.A)((t,e,i)=>{if(!t||(i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"<br/>"},i),to.lineBreakRegex.test(t)))return t;let r=t.split(" "),n=[],o="";return r.forEach((t,a)=>{let s=tY(`${t} `,i),l=tY(o,i);if(s>e){let{hyphenatedStrings:r,remainingWord:a}=tU(t,e,"-",i);n.push(o,...r),o=a}else l+s>=e?(n.push(o),o=t):o=[o,t].filter(Boolean).join(" ");a+1===r.length&&n.push(o)}),n.filter(t=>""!==t).join(i.joinWith)},(t,e,i)=>`${t}${e}${i.fontSize}${i.fontWeight}${i.fontFamily}${i.joinWith}`),tU=(0,b.A)((t,e,i="-",r)=>{r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},r);let n=[...t],o=[],a="";return n.forEach((t,s)=>{let l=`${a}${t}`;if(tY(l,r)>=e){let t=n.length===s+1,e=`${l}${i}`;o.push(t?l:e),a=""}else a=l}),{hyphenatedStrings:o,remainingWord:a}},(t,e,i="-",r)=>`${t}${e}${i}${r.fontSize}${r.fontWeight}${r.fontFamily}`);function tH(t,e){return tV(t,e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:15},e)).height}function tY(t,e){return tV(t,e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},e)).width}let tV=(0,b.A)((t,e)=>{let{fontSize:i,fontFamily:r,fontWeight:n}=e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},e);if(!t)return{width:0,height:0};let[,o]=tJ(i),a=t.split(to.lineBreakRegex),s=[],h=(0,l.Ltv)("body");if(!h.remove)return{width:0,height:0,lineHeight:0};let c=h.append("svg");for(let t of["sans-serif",r]){let e=0,i={width:0,height:0,lineHeight:0};for(let r of a){let a={x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0};a.text=r||tE;let s=tR(c,a).style("font-size",o).style("font-weight",n).style("font-family",t),l=(s._groups||s)[0][0].getBBox();if(0===l.width&&0===l.height)throw Error("svg element not in render tree");i.width=Math.round(Math.max(i.width,l.width)),e=Math.round(l.height),i.height+=e,i.lineHeight=Math.round(Math.max(i.lineHeight,e))}s.push(i)}c.remove();let u=isNaN(s[1].height)||isNaN(s[1].width)||isNaN(s[1].lineHeight)||s[0].height>s[1].height&&s[0].width>s[1].width&&s[0].lineHeight>s[1].lineHeight?0:1;return s[u]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`),tG=class{constructor(t,e){this.deterministic=t,this.seed=e,this.count=e?e.length:0}next(){return this.deterministic?this.count++:Date.now()}},tX=t=>{if(G.debug("sanitizeDirective called with",t),"object"==typeof t&&null!=t){if(Array.isArray(t)){t.forEach(t=>tX(t));return}for(let e of Object.keys(t)){if(G.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!tb.has(e)||null==t[e]){G.debug("sanitize deleting key: ",e),delete t[e];continue}if("object"==typeof t[e]){G.debug("sanitizing object",e),tX(t[e]);continue}for(let i of["themeCSS","fontFamily","altFontFamily"])e.includes(i)&&(G.debug("sanitizing css option",e),t[e]=tZ(t[e]))}if(t.themeVariables)for(let e of Object.keys(t.themeVariables)){let i=t.themeVariables[e];(null==i?void 0:i.match)&&!i.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}G.debug("After sanitization",t)}},tZ=t=>{let e=0,i=0;for(let r of t){if(e<i)return"{ /* ERROR: Unbalanced CSS */ }";"{"===r?e++:"}"===r&&i++}return e!==i?"{ /* ERROR: Unbalanced CSS */ }":t},tJ=t=>{if("number"==typeof t)return[t,t+"px"];let e=parseInt(t,10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]};function tQ(t,e){return(0,C.A)({},t,e)}let tK={assignWithDepth:tM,wrapLabel:tW,calculateTextHeight:tH,calculateTextWidth:tY,calculateTextDimensions:tV,cleanAndMerge:tQ,detectInit:function(t,e){let i=tq(t,/(?:init\b)|(?:initialize\b)/),r={};if(Array.isArray(i)){let t=i.map(t=>t.args);tX(t),r=tM(r,[...t])}else r=i.args;if(!r)return;let n=tS(t,e);return["config"].forEach(t=>{void 0!==r[t]&&("flowchart-v2"===n&&(n="flowchart"),r[n]=r[t],delete r[t])}),r},detectDirective:tq,isSubstringInArray:function(t,e){for(let[i,r]of e.entries())if(r.match(t))return i;return -1},interpolateToCurve:tN,calcLabelPosition:function(t){return 1===t.length?t[0]:function(t){let e,i;let r=0;t.forEach(t=>{r+=tD(t,e),e=t});let n=r/2;return e=void 0,t.forEach(t=>{if(e&&!i){let r=tD(t,e);if(r<n)n-=r;else{let o=n/r;o<=0&&(i=e),o>=1&&(i={x:t.x,y:t.y}),o>0&&o<1&&(i={x:(1-o)*e.x+o*t.x,y:(1-o)*e.y+o*t.y})}}e=t}),i}(t)},calcCardinalityPosition:(t,e,i)=>{let r,n;G.info(`our points ${JSON.stringify(e)}`),e[0]!==i&&(e=e.reverse());let o=25;r=void 0,e.forEach(t=>{if(r&&!n){let e=tD(t,r);if(e<o)o-=e;else{let i=o/e;i<=0&&(n=r),i>=1&&(n={x:t.x,y:t.y}),i>0&&i<1&&(n={x:(1-i)*r.x+i*t.x,y:(1-i)*r.y+i*t.y})}}r=t});let a=t?10:5,s=Math.atan2(e[0].y-n.y,e[0].x-n.x),l={x:0,y:0};return l.x=Math.sin(s)*a+(e[0].x+n.x)/2,l.y=-Math.cos(s)*a+(e[0].y+n.y)/2,l},calcTerminalLabelPosition:function(t,e,i){let r,n,o=JSON.parse(JSON.stringify(i));G.info("our points",o),"start_left"!==e&&"start_right"!==e&&(o=o.reverse()),o.forEach(t=>{r=t});let a=25+t;r=void 0,o.forEach(t=>{if(r&&!n){let e=tD(t,r);if(e<a)a-=e;else{let i=a/e;i<=0&&(n=r),i>=1&&(n={x:t.x,y:t.y}),i>0&&i<1&&(n={x:(1-i)*r.x+i*t.x,y:(1-i)*r.y+i*t.y})}}r=t});let s=10+.5*t,l=Math.atan2(o[0].y-n.y,o[0].x-n.x),h={x:0,y:0};return h.x=Math.sin(l)*s+(o[0].x+n.x)/2,h.y=-Math.cos(l)*s+(o[0].y+n.y)/2,"start_left"===e&&(h.x=Math.sin(l+Math.PI)*s+(o[0].x+n.x)/2,h.y=-Math.cos(l+Math.PI)*s+(o[0].y+n.y)/2),"end_right"===e&&(h.x=Math.sin(l-Math.PI)*s+(o[0].x+n.x)/2-5,h.y=-Math.cos(l-Math.PI)*s+(o[0].y+n.y)/2-5),"end_left"===e&&(h.x=Math.sin(l)*s+(o[0].x+n.x)/2-5,h.y=-Math.cos(l)*s+(o[0].y+n.y)/2-5),h},formatUrl:function(t,e){let i=t.trim();if(i)return"loose"!==e.securityLevel?(0,s.Jf)(i):i},getStylesFromArray:t$,generateId:tj,random:tP,runFunc:(t,...e)=>{let i=t.split("."),r=i.length-1,n=i[r],o=window;for(let t=0;t<r;t++)if(!(o=o[i[t]]))return;o[n](...e)},entityDecode:function(t){return r=r||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),r.innerHTML=t,unescape(r.textContent)},initIdGenerator:tG,sanitizeDirective:tX,sanitizeCss:tZ,insertTitle:(t,e,i,r)=>{if(!r)return;let n=t.node().getBBox();t.append("text").text(r).attr("x",n.x+n.width/2).attr("y",-i).attr("class",e)},parseFontSize:tJ},t0="10.4.0",t1=Object.freeze(tC),t2=tM({},t1),t5=[],t3=tM({},t1),t6=(t,e)=>{let i=tM({},t),r={};for(let t of e)ee(t),r=tM(r,t);if(i=tM(i,r),r.theme&&r.theme in tg){let t=tM({},n),e=tM(t.themeVariables||{},r.themeVariables);i.theme&&i.theme in tg&&(i.themeVariables=tg[i.theme].getThemeVariables(e))}return es(t3=i),t3},t4=t=>(t2=tM({},t1),t2=tM(t2,t),t.theme&&tg[t.theme]&&(t2.themeVariables=tg[t.theme].getThemeVariables(t.themeVariables)),t6(t2,t5),t2),t8=t=>{n=tM({},t)},t7=()=>tM({},t2),t9=t=>(es(t),tM(t3,t),et()),et=()=>tM({},t3),ee=t=>{t&&(["secure",...t2.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(G.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])}),Object.keys(t).forEach(e=>{e.startsWith("__")&&delete t[e]}),Object.keys(t).forEach(e=>{"string"==typeof t[e]&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],"object"==typeof t[e]&&ee(t[e])}))},ei=t=>{tX(t),!t.fontFamily||t.themeVariables&&t.themeVariables.fontFamily||(t.themeVariables={fontFamily:t.fontFamily}),t5.push(t),t6(t2,t5)},er=(t=t2)=>{t6(t,t5=[])},en={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},eo={},ea=t=>{eo[t]||(G.warn(en[t]),eo[t]=!0)},es=t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&ea("LAZY_LOAD_DEPRECATED")},el={id:"c4",detector:t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),loader:async()=>{let{diagram:t}=await i.e(7720).then(i.bind(i,7720));return{id:"c4",diagram:t}}},eh="flowchart",ec=async()=>{let{diagram:t}=await Promise.all([i.e(51822),i.e(11336),i.e(24053),i.e(97027),i.e(60972),i.e(1678)]).then(i.bind(i,1678));return{id:eh,diagram:t}},eu={id:eh,detector:(t,e)=>{var i,r;return(null==(i=null==e?void 0:e.flowchart)?void 0:i.defaultRenderer)!=="dagre-wrapper"&&(null==(r=null==e?void 0:e.flowchart)?void 0:r.defaultRenderer)!=="elk"&&/^\s*graph/.test(t)},loader:ec},ed="flowchart-v2",ef=async()=>{let{diagram:t}=await Promise.all([i.e(51822),i.e(11336),i.e(24053),i.e(97027),i.e(60972),i.e(93901)]).then(i.bind(i,93901));return{id:ed,diagram:t}},ep={id:ed,detector:(t,e)=>{var i,r,n;return(null==(i=null==e?void 0:e.flowchart)?void 0:i.defaultRenderer)!=="dagre-d3"&&(null==(r=null==e?void 0:e.flowchart)?void 0:r.defaultRenderer)!=="elk"&&(!!/^\s*graph/.test(t)&&(null==(n=null==e?void 0:e.flowchart)?void 0:n.defaultRenderer)==="dagre-wrapper"||/^\s*flowchart/.test(t))},loader:ef},eg={id:"er",detector:t=>/^\s*erDiagram/.test(t),loader:async()=>{let{diagram:t}=await Promise.all([i.e(51822),i.e(76654)]).then(i.bind(i,76654));return{id:"er",diagram:t}}},em="gitGraph",ey=async()=>{let{diagram:t}=await i.e(49711).then(i.bind(i,49711));return{id:em,diagram:t}},e_={id:em,detector:t=>/^\s*gitGraph/.test(t),loader:ey},eb="gantt",eC=async()=>{let{diagram:t}=await i.e(81379).then(i.bind(i,81379));return{id:eb,diagram:t}},ex={id:eb,detector:t=>/^\s*gantt/.test(t),loader:eC},ev="info",ek=async()=>{let{diagram:t}=await i.e(42062).then(i.bind(i,42062));return{id:ev,diagram:t}},eT={id:ev,detector:t=>/^\s*info/.test(t),loader:ek},eA={id:"pie",detector:t=>/^\s*pie/.test(t),loader:async()=>{let{diagram:t}=await i.e(39391).then(i.bind(i,39391));return{id:"pie",diagram:t}}},eS="quadrantChart",ew=async()=>{let{diagram:t}=await i.e(25631).then(i.bind(i,25631));return{id:eS,diagram:t}},eB={id:eS,detector:t=>/^\s*quadrantChart/.test(t),loader:ew},eF="requirement",eL=async()=>{let{diagram:t}=await Promise.all([i.e(51822),i.e(55263)]).then(i.bind(i,55263));return{id:eF,diagram:t}},eM={id:eF,detector:t=>/^\s*requirement(Diagram)?/.test(t),loader:eL},eE="sequence",eO=async()=>{let{diagram:t}=await i.e(51508).then(i.bind(i,51508));return{id:eE,diagram:t}},eI={id:eE,detector:t=>/^\s*sequenceDiagram/.test(t),loader:eO},eq="class",eN=async()=>{let{diagram:t}=await Promise.all([i.e(51822),i.e(73445),i.e(99595)]).then(i.bind(i,99595));return{id:eq,diagram:t}},eD={id:eq,detector:(t,e)=>{var i;return(null==(i=null==e?void 0:e.class)?void 0:i.defaultRenderer)!=="dagre-wrapper"&&/^\s*classDiagram/.test(t)},loader:eN},e$="classDiagram",ez=async()=>{let{diagram:t}=await Promise.all([i.e(51822),i.e(11336),i.e(24053),i.e(97027),i.e(73445),i.e(91291)]).then(i.bind(i,91291));return{id:e$,diagram:t}},ej={id:e$,detector:(t,e)=>{var i;return!!/^\s*classDiagram/.test(t)&&(null==(i=null==e?void 0:e.class)?void 0:i.defaultRenderer)==="dagre-wrapper"||/^\s*classDiagram-v2/.test(t)},loader:ez},eP="state",eR=async()=>{let{diagram:t}=await Promise.all([i.e(51822),i.e(1475),i.e(58072)]).then(i.bind(i,58072));return{id:eP,diagram:t}},eW={id:eP,detector:(t,e)=>{var i;return(null==(i=null==e?void 0:e.state)?void 0:i.defaultRenderer)!=="dagre-wrapper"&&/^\s*stateDiagram/.test(t)},loader:eR},eU="stateDiagram",eH=async()=>{let{diagram:t}=await Promise.all([i.e(51822),i.e(11336),i.e(24053),i.e(97027),i.e(1475),i.e(50084)]).then(i.bind(i,50084));return{id:eU,diagram:t}},eY={id:eU,detector:(t,e)=>{var i;return!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&(null==(i=null==e?void 0:e.state)?void 0:i.defaultRenderer)==="dagre-wrapper")},loader:eH},eV="journey",eG=async()=>{let{diagram:t}=await i.e(71152).then(i.bind(i,71152));return{id:eV,diagram:t}},eX={id:eV,detector:t=>/^\s*journey/.test(t),loader:eG},eZ=t=>{var e;let{securityLevel:i}=et(),r=(0,l.Ltv)("body");if("sandbox"===i){let i=(null==(e=(0,l.Ltv)(`#i${t}`).node())?void 0:e.contentDocument)??document;r=(0,l.Ltv)(i.body)}return r.select(`#${t}`)},eJ=function(t,e){for(let i of e)t.attr(i[0],i[1])},eQ=function(t,e,i){let r=new Map;return i?(r.set("width","100%"),r.set("style",`max-width: ${e}px;`)):(r.set("height",t),r.set("width",e)),r},eK=function(t,e,i,r){eJ(t,eQ(e,i,r))},e0=function(t,e,i,r){let n=e.node().getBBox(),o=n.width,a=n.height;G.info(`SVG bounds: ${o}x${a}`,n);let s=0,l=0;G.info(`Graph bounds: ${s}x${l}`,t),s=o+2*i,l=a+2*i,G.info(`Calculated bounds: ${s}x${l}`),eK(e,l,s,r);let h=`${n.x-i} ${n.y-i} ${n.width+2*i} ${n.height+2*i}`;e.attr("viewBox",h)},e1={draw:(t,e,i)=>{G.debug("renering svg for syntax error\n");let r=eZ(e);r.attr("viewBox","0 0 2412 512"),eK(r,100,512,!0);let n=r.append("g");n.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),n.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),n.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),n.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),n.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),n.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),n.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),n.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${i}`)}},e2={db:{},renderer:e1,parser:{parser:{yy:{}},parse:()=>{}}},e5="flowchart-elk",e3=async()=>{let{diagram:t}=await Promise.all([i.e(11336),i.e(24053),i.e(60972),i.e(88882)]).then(i.bind(i,88882));return{id:e5,diagram:t}},e6={id:e5,detector:(t,e)=>{var i;return!!(/^\s*flowchart-elk/.test(t)||/^\s*flowchart|graph/.test(t)&&(null==(i=null==e?void 0:e.flowchart)?void 0:i.defaultRenderer)==="elk")},loader:e3},e4="timeline",e8=async()=>{let{diagram:t}=await i.e(49312).then(i.bind(i,49312));return{id:e4,diagram:t}},e7={id:e4,detector:t=>/^\s*timeline/.test(t),loader:e8},e9="mindmap",it=async()=>{let{diagram:t}=await Promise.all([i.e(11336),i.e(47773)]).then(i.bind(i,47773));return{id:e9,diagram:t}},ie={id:e9,detector:t=>/^\s*mindmap/.test(t),loader:it},ii="sankey",ir=async()=>{let{diagram:t}=await i.e(68353).then(i.bind(i,68353));return{id:ii,diagram:t}},io={id:ii,detector:t=>/^\s*sankey-beta/.test(t),loader:ir},ia={},is=(t,e)=>{void 0!==e&&(ia[t]=e)},il=(t,e,i)=>{let r="";return t in ia&&ia[t]?r=ia[t](i):G.warn(`No theme found for ${t}`),` & { - font-family: ${i.fontFamily}; - font-size: ${i.fontSize}; - fill: ${i.textColor} - } - - /* Classes common for multiple diagrams */ - - & .error-icon { - fill: ${i.errorBkgColor}; - } - & .error-text { - fill: ${i.errorTextColor}; - stroke: ${i.errorTextColor}; - } - - & .edge-thickness-normal { - stroke-width: 2px; - } - & .edge-thickness-thick { - stroke-width: 3.5px - } - & .edge-pattern-solid { - stroke-dasharray: 0; - } - - & .edge-pattern-dashed{ - stroke-dasharray: 3; - } - .edge-pattern-dotted { - stroke-dasharray: 2; - } - - & .marker { - fill: ${i.lineColor}; - stroke: ${i.lineColor}; - } - & .marker.cross { - stroke: ${i.lineColor}; - } - - & svg { - font-family: ${i.fontFamily}; - font-size: ${i.fontSize}; - } - - ${r} - - ${e} -`},ih="",ic="",iu="",id=t=>tt(t,et()),ip=function(){ih="",iu="",ic=""},ig=function(t){ih=id(t).replace(/^\s+/g,"")},im=function(){return ih||ic},iy=function(t){iu=id(t).replace(/\n\s+/g,"\n")},i_=function(){return iu},ib=function(t){ic=id(t)},iC=function(){return ic},ix=Object.freeze(Object.defineProperty({__proto__:null,clear:ip,default:{getAccTitle:im,setAccTitle:ig,getDiagramTitle:iC,setDiagramTitle:ib,getAccDescription:i_,setAccDescription:iy,clear:ip},getAccDescription:i_,getAccTitle:im,getDiagramTitle:iC,setAccDescription:iy,setAccTitle:ig,setDiagramTitle:ib},Symbol.toStringTag,{value:"Module"})),iv={},ik=function(t,e,i,r){G.debug("parseDirective is being called",e,i,r);try{if(void 0!==e)switch(e=e.trim(),i){case"open_directive":iv={};break;case"type_directive":if(!iv)throw Error("currentDirective is undefined");iv.type=e.toLowerCase();break;case"arg_directive":if(!iv)throw Error("currentDirective is undefined");iv.args=JSON.parse(e);break;case"close_directive":iT(t,iv,r),iv=void 0}}catch(t){G.error(`Error while rendering sequenceDiagram directive: ${e} jison context: ${i}`),G.error(t.message)}},iT=function(t,e,i){switch(G.info(`Directive type=${e.type} with args:`,e.args),e.type){case"init":case"initialize":["config"].forEach(t=>{void 0!==e.args[t]&&("flowchart-v2"===i&&(i="flowchart"),e.args[i]=e.args[t],delete e.args[t])}),ei(e.args);break;case"wrap":case"nowrap":t&&t.setWrap&&t.setWrap("wrap"===e.type);break;case"themeCss":G.warn("themeCss encountered");break;default:G.warn(`Unhandled directive: source: '%%{${e.type}: ${JSON.stringify(e.args?e.args:{})}}%%`,e)}},iA=et,iS=t=>tt(t,iA()),iw=e0,iB=()=>ix,iF=(t,e,i,r)=>ik(t,e,i,r),iL={},iM=(t,e,i)=>{if(iL[t])throw Error(`Diagram ${t} already registered.`);iL[t]=e,i&&tB(t,i),is(t,e.styles),e.injectUtils&&e.injectUtils(G,X,iA,iS,iw,iB(),iF)},iE=t=>{if(t in iL)return iL[t];throw new iO(t)};class iO extends Error{constructor(t){super(`Diagram ${t} not found.`)}}let iI=!1,iq=()=>{iI||(iI=!0,iM("error",e2,t=>"error"===t.toLowerCase().trim()),iM("---",{db:{clear:()=>{}},styles:{},renderer:{},parser:{parser:{yy:{}},parse:()=>{throw Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")}},init:()=>null},t=>t.toLowerCase().trimStart().startsWith("---")),tw(el,ej,eD,eg,ex,eT,eA,eM,eI,e6,ep,eu,ie,e7,e_,eY,eW,eX,eB,io))};var iN={isObject:function(t){return"object"==typeof t&&null!==t},repeat:function(t,e){var i,r="";for(i=0;i<e;i+=1)r+=t;return r},isNegativeZero:function(t){return 0===t&&Number.NEGATIVE_INFINITY===1/t}};function iD(t,e){var i="",r=t.reason||"(unknown reason)";return t.mark?(t.mark.name&&(i+='in "'+t.mark.name+'" '),i+="("+(t.mark.line+1)+":"+(t.mark.column+1)+")",!e&&t.mark.snippet&&(i+="\n\n"+t.mark.snippet),r+" "+i):r}function i$(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=iD(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=Error().stack||""}function iz(t,e,i,r,n){var o="",a="",s=Math.floor(n/2)-1;return r-e>s&&(e=r-s+(o=" ... ").length),i-r>s&&(i=r+s-(a=" ...").length),{str:o+t.slice(e,i).replace(/\t/g,"\u2192")+a,pos:r-e+o.length}}function ij(t,e){return iN.repeat(" ",e-t.length)+t}i$.prototype=Object.create(Error.prototype),i$.prototype.constructor=i$,i$.prototype.toString=function(t){return this.name+": "+iD(this,t)};var iP=function(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),"number"!=typeof e.indent&&(e.indent=1),"number"!=typeof e.linesBefore&&(e.linesBefore=3),"number"!=typeof e.linesAfter&&(e.linesAfter=2);for(var i=/\r?\n|\r|\0/g,r=[0],n=[],o=-1;a=i.exec(t.buffer);)n.push(a.index),r.push(a.index+a[0].length),t.position<=a.index&&o<0&&(o=r.length-2);o<0&&(o=r.length-1);var a,s,l,h="",c=Math.min(t.line+e.linesAfter,n.length).toString().length,u=e.maxLength-(e.indent+c+3);for(s=1;s<=e.linesBefore&&!(o-s<0);s++)l=iz(t.buffer,r[o-s],n[o-s],t.position-(r[o]-r[o-s]),u),h=iN.repeat(" ",e.indent)+ij((t.line-s+1).toString(),c)+" | "+l.str+"\n"+h;for(l=iz(t.buffer,r[o],n[o],t.position,u),h+=iN.repeat(" ",e.indent)+ij((t.line+1).toString(),c)+" | "+l.str+"\n"+iN.repeat("-",e.indent+c+3+l.pos)+"^\n",s=1;s<=e.linesAfter&&!(o+s>=n.length);s++)l=iz(t.buffer,r[o+s],n[o+s],t.position-(r[o]-r[o+s]),u),h+=iN.repeat(" ",e.indent)+ij((t.line+s+1).toString(),c)+" | "+l.str+"\n";return h.replace(/\n$/,"")},iR=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],iW=["scalar","sequence","mapping"],iU=function(t,e){var i,r;if(Object.keys(e=e||{}).forEach(function(e){if(-1===iR.indexOf(e))throw new i$('Unknown option "'+e+'" is met in definition of "'+t+'" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=(i=e.styleAliases||null,r={},null!==i&&Object.keys(i).forEach(function(t){i[t].forEach(function(e){r[String(e)]=t})}),r),-1===iW.indexOf(this.kind))throw new i$('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')};function iH(t,e){var i=[];return t[e].forEach(function(t){var e=i.length;i.forEach(function(i,r){i.tag===t.tag&&i.kind===t.kind&&i.multi===t.multi&&(e=r)}),i[e]=t}),i}function iY(t){return this.extend(t)}iY.prototype.extend=function(t){var e=[],i=[];if(t instanceof iU)i.push(t);else if(Array.isArray(t))i=i.concat(t);else if(t&&(Array.isArray(t.implicit)||Array.isArray(t.explicit)))t.implicit&&(e=e.concat(t.implicit)),t.explicit&&(i=i.concat(t.explicit));else throw new i$("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");e.forEach(function(t){if(!(t instanceof iU))throw new i$("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(t.loadKind&&"scalar"!==t.loadKind)throw new i$("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(t.multi)throw new i$("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),i.forEach(function(t){if(!(t instanceof iU))throw new i$("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var r=Object.create(iY.prototype);return r.implicit=(this.implicit||[]).concat(e),r.explicit=(this.explicit||[]).concat(i),r.compiledImplicit=iH(r,"implicit"),r.compiledExplicit=iH(r,"explicit"),r.compiledTypeMap=function(){var t,e,i={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function r(t){t.multi?(i.multi[t.kind].push(t),i.multi.fallback.push(t)):i[t.kind][t.tag]=i.fallback[t.tag]=t}for(t=0,e=arguments.length;t<e;t+=1)arguments[t].forEach(r);return i}(r.compiledImplicit,r.compiledExplicit),r};var iV=new iY({explicit:[new iU("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return null!==t?t:""}}),new iU("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return null!==t?t:[]}}),new iU("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return null!==t?t:{}}})]}),iG=new iU("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(t){if(null===t)return!0;var e=t.length;return 1===e&&"~"===t||4===e&&("null"===t||"Null"===t||"NULL"===t)},construct:function(){return null},predicate:function(t){return null===t},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"}),iX=new iU("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e=t.length;return 4===e&&("true"===t||"True"===t||"TRUE"===t)||5===e&&("false"===t||"False"===t||"FALSE"===t)},construct:function(t){return"true"===t||"True"===t||"TRUE"===t},predicate:function(t){return"[object Boolean]"===Object.prototype.toString.call(t)},represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"}),iZ=new iU("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,i,r,n,o=t.length,a=0,s=!1;if(!o)return!1;if(("-"===(n=t[a])||"+"===n)&&(n=t[++a]),"0"===n){if(a+1===o)return!0;if("b"===(n=t[++a])){for(a++;a<o;a++)if("_"!==(n=t[a])){if("0"!==n&&"1"!==n)return!1;s=!0}return s&&"_"!==n}if("x"===n){for(a++;a<o;a++)if("_"!==(n=t[a])){if(!(48<=(e=t.charCodeAt(a))&&e<=57||65<=e&&e<=70||97<=e&&e<=102))return!1;s=!0}return s&&"_"!==n}if("o"===n){for(a++;a<o;a++)if("_"!==(n=t[a])){if(!(48<=(i=t.charCodeAt(a))&&i<=55))return!1;s=!0}return s&&"_"!==n}}if("_"===n)return!1;for(;a<o;a++)if("_"!==(n=t[a])){if(!(48<=(r=t.charCodeAt(a))&&r<=57))return!1;s=!0}return!!s&&"_"!==n},construct:function(t){var e,i=t,r=1;if(-1!==i.indexOf("_")&&(i=i.replace(/_/g,"")),("-"===(e=i[0])||"+"===e)&&("-"===e&&(r=-1),e=(i=i.slice(1))[0]),"0"===i)return 0;if("0"===e){if("b"===i[1])return r*parseInt(i.slice(2),2);if("x"===i[1])return r*parseInt(i.slice(2),16);if("o"===i[1])return r*parseInt(i.slice(2),8)}return r*parseInt(i,10)},predicate:function(t){return"[object Number]"===Object.prototype.toString.call(t)&&t%1==0&&!iN.isNegativeZero(t)},represent:{binary:function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),iJ=RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),iQ=/^[-+]?[0-9]+e/,iK=new iU("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(t){return!!(null!==t&&iJ.test(t)&&"_"!==t[t.length-1])},construct:function(t){var e,i;return(i="-"===(e=t.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),".inf"===e)?1===i?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===e?NaN:i*parseFloat(e,10)},predicate:function(t){return"[object Number]"===Object.prototype.toString.call(t)&&(t%1!=0||iN.isNegativeZero(t))},represent:function(t,e){var i;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(iN.isNegativeZero(t))return"-0.0";return i=t.toString(10),iQ.test(i)?i.replace("e",".e"):i},defaultStyle:"lowercase"}),i0=iV.extend({implicit:[iG,iX,iZ,iK]}),i1=RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),i2=RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"),i5=new iU("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(t){return null!==t&&(null!==i1.exec(t)||null!==i2.exec(t))},construct:function(t){var e,i,r,n,o,a,s,l,h=0,c=null;if(null===(e=i1.exec(t))&&(e=i2.exec(t)),null===e)throw Error("Date resolve error");if(i=+e[1],r=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(i,r,n));if(o=+e[4],a=+e[5],s=+e[6],e[7]){for(h=e[7].slice(0,3);h.length<3;)h+="0";h=+h}return e[9]&&(c=(60*+e[10]+ +(e[11]||0))*6e4,"-"===e[9]&&(c=-c)),l=new Date(Date.UTC(i,r,n,o,a,s,h)),c&&l.setTime(l.getTime()-c),l},instanceOf:Date,represent:function(t){return t.toISOString()}}),i3=new iU("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(t){return"<<"===t||null===t}}),i6="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r",i4=new iU("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,i,r=0,n=t.length;for(i=0;i<n;i++)if(!((e=i6.indexOf(t.charAt(i)))>64)){if(e<0)return!1;r+=6}return r%8==0},construct:function(t){var e,i,r=t.replace(/[\r\n=]/g,""),n=r.length,o=0,a=[];for(e=0;e<n;e++)e%4==0&&e&&(a.push(o>>16&255),a.push(o>>8&255),a.push(255&o)),o=o<<6|i6.indexOf(r.charAt(e));return 0==(i=n%4*6)?(a.push(o>>16&255),a.push(o>>8&255),a.push(255&o)):18===i?(a.push(o>>10&255),a.push(o>>2&255)):12===i&&a.push(o>>4&255),new Uint8Array(a)},predicate:function(t){return"[object Uint8Array]"===Object.prototype.toString.call(t)},represent:function(t){var e,i,r="",n=0,o=t.length;for(e=0;e<o;e++)e%3==0&&e&&(r+=i6[n>>18&63]+i6[n>>12&63]+i6[n>>6&63]+i6[63&n]),n=(n<<8)+t[e];return 0==(i=o%3)?r+=i6[n>>18&63]+i6[n>>12&63]+i6[n>>6&63]+i6[63&n]:2===i?r+=i6[n>>10&63]+i6[n>>4&63]+i6[n<<2&63]+i6[64]:1===i&&(r+=i6[n>>2&63]+i6[n<<4&63]+i6[64]+i6[64]),r}}),i8=Object.prototype.hasOwnProperty,i7=Object.prototype.toString,i9=new iU("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(t){if(null===t)return!0;var e,i,r,n,o,a=[];for(e=0,i=t.length;e<i;e+=1){if(r=t[e],o=!1,"[object Object]"!==i7.call(r))return!1;for(n in r)if(i8.call(r,n)){if(o)return!1;o=!0}if(!o||-1!==a.indexOf(n))return!1;a.push(n)}return!0},construct:function(t){return null!==t?t:[]}}),rt=Object.prototype.toString,re=new iU("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(t){var e,i,r,n,o;if(null===t)return!0;for(e=0,o=Array(t.length),i=t.length;e<i;e+=1){if(r=t[e],"[object Object]"!==rt.call(r)||1!==(n=Object.keys(r)).length)return!1;o[e]=[n[0],r[n[0]]]}return!0},construct:function(t){var e,i,r,n,o;if(null===t)return[];for(e=0,o=Array(t.length),i=t.length;e<i;e+=1)n=Object.keys(r=t[e]),o[e]=[n[0],r[n[0]]];return o}}),ri=Object.prototype.hasOwnProperty,rr=new iU("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(t){var e;if(null===t)return!0;for(e in t)if(ri.call(t,e)&&null!==t[e])return!1;return!0},construct:function(t){return null!==t?t:{}}}),rn=i0.extend({implicit:[i5,i3],explicit:[i4,i9,re,rr]}),ro=Object.prototype.hasOwnProperty,ra=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,rs=/[\x85\u2028\u2029]/,rl=/[,\[\]\{\}]/,rh=/^(?:!|!!|![a-z\-]+!)$/i,rc=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function ru(t){return Object.prototype.toString.call(t)}function rd(t){return 10===t||13===t}function rf(t){return 9===t||32===t}function rp(t){return 9===t||32===t||10===t||13===t}function rg(t){return 44===t||91===t||93===t||123===t||125===t}function rm(t){return 48===t?"\0":97===t?"\x07":98===t?"\b":116===t?" ":9===t?" ":110===t?"\n":118===t?"\v":102===t?"\f":114===t?"\r":101===t?"\x1b":32===t?" ":34===t?'"':47===t?"/":92===t?"\\":78===t?"\x85":95===t?"\xa0":76===t?"\u2028":80===t?"\u2029":""}for(var ry=Array(256),r_=Array(256),rb=0;rb<256;rb++)ry[rb]=rm(rb)?1:0,r_[rb]=rm(rb);function rC(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||rn,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function rx(t,e){var i={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return i.snippet=iP(i),new i$(e,i)}function rv(t,e){throw rx(t,e)}function rk(t,e){t.onWarning&&t.onWarning.call(null,rx(t,e))}var rT={YAML:function(t,e,i){var r,n,o;null!==t.version&&rv(t,"duplication of %YAML directive"),1!==i.length&&rv(t,"YAML directive accepts exactly one argument"),null===(r=/^([0-9]+)\.([0-9]+)$/.exec(i[0]))&&rv(t,"ill-formed argument of the YAML directive"),n=parseInt(r[1],10),o=parseInt(r[2],10),1!==n&&rv(t,"unacceptable YAML version of the document"),t.version=i[0],t.checkLineBreaks=o<2,1!==o&&2!==o&&rk(t,"unsupported YAML version of the document")},TAG:function(t,e,i){var r,n;2!==i.length&&rv(t,"TAG directive accepts exactly two arguments"),r=i[0],n=i[1],rh.test(r)||rv(t,"ill-formed tag handle (first argument) of the TAG directive"),ro.call(t.tagMap,r)&&rv(t,'there is a previously declared suffix for "'+r+'" tag handle'),rc.test(n)||rv(t,"ill-formed tag prefix (second argument) of the TAG directive");try{n=decodeURIComponent(n)}catch(e){rv(t,"tag prefix is malformed: "+n)}t.tagMap[r]=n}};function rA(t,e,i,r){var n,o,a,s;if(e<i){if(s=t.input.slice(e,i),r)for(n=0,o=s.length;n<o;n+=1)9===(a=s.charCodeAt(n))||32<=a&&a<=1114111||rv(t,"expected valid JSON character");else ra.test(s)&&rv(t,"the stream contains non-printable characters");t.result+=s}}function rS(t,e,i,r){var n,o,a,s;for(iN.isObject(i)||rv(t,"cannot merge mappings; the provided source object is unacceptable"),a=0,s=(n=Object.keys(i)).length;a<s;a+=1)o=n[a],ro.call(e,o)||(e[o]=i[o],r[o]=!0)}function rw(t,e,i,r,n,o,a,s,l){var h,c;if(Array.isArray(n))for(h=0,c=(n=Array.prototype.slice.call(n)).length;h<c;h+=1)Array.isArray(n[h])&&rv(t,"nested arrays are not supported inside keys"),"object"==typeof n&&"[object Object]"===ru(n[h])&&(n[h]="[object Object]");if("object"==typeof n&&"[object Object]"===ru(n)&&(n="[object Object]"),n=String(n),null===e&&(e={}),"tag:yaml.org,2002:merge"===r){if(Array.isArray(o))for(h=0,c=o.length;h<c;h+=1)rS(t,e,o[h],i);else rS(t,e,o,i)}else!t.json&&!ro.call(i,n)&&ro.call(e,n)&&(t.line=a||t.line,t.lineStart=s||t.lineStart,t.position=l||t.position,rv(t,"duplicated mapping key")),"__proto__"===n?Object.defineProperty(e,n,{configurable:!0,enumerable:!0,writable:!0,value:o}):e[n]=o,delete i[n];return e}function rB(t){var e;10===(e=t.input.charCodeAt(t.position))?t.position++:13===e?(t.position++,10===t.input.charCodeAt(t.position)&&t.position++):rv(t,"a line break is expected"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function rF(t,e,i){for(var r=0,n=t.input.charCodeAt(t.position);0!==n;){for(;rf(n);)9===n&&-1===t.firstTabInLine&&(t.firstTabInLine=t.position),n=t.input.charCodeAt(++t.position);if(e&&35===n)do n=t.input.charCodeAt(++t.position);while(10!==n&&13!==n&&0!==n)if(rd(n))for(rB(t),n=t.input.charCodeAt(t.position),r++,t.lineIndent=0;32===n;)t.lineIndent++,n=t.input.charCodeAt(++t.position);else break}return -1!==i&&0!==r&&t.lineIndent<i&&rk(t,"deficient indentation"),r}function rL(t){var e,i=t.position;return!!((45===(e=t.input.charCodeAt(i))||46===e)&&e===t.input.charCodeAt(i+1)&&e===t.input.charCodeAt(i+2)&&(i+=3,0===(e=t.input.charCodeAt(i))||rp(e)))}function rM(t,e){1===e?t.result+=" ":e>1&&(t.result+=iN.repeat("\n",e-1))}function rE(t,e){var i,r,n=t.tag,o=t.anchor,a=[],s=!1;if(-1!==t.firstTabInLine)return!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=a),r=t.input.charCodeAt(t.position);0!==r&&(-1!==t.firstTabInLine&&(t.position=t.firstTabInLine,rv(t,"tab characters must not be used in indentation")),45===r&&rp(t.input.charCodeAt(t.position+1)));){if(s=!0,t.position++,rF(t,!0,-1)&&t.lineIndent<=e){a.push(null),r=t.input.charCodeAt(t.position);continue}if(i=t.line,rO(t,e,3,!1,!0),a.push(t.result),rF(t,!0,-1),r=t.input.charCodeAt(t.position),(t.line===i||t.lineIndent>e)&&0!==r)rv(t,"bad indentation of a sequence entry");else if(t.lineIndent<e)break}return!!s&&(t.tag=n,t.anchor=o,t.kind="sequence",t.result=a,!0)}function rO(t,e,i,r,n){var o,a,s,l,h,c,u,d,f,p=1,g=!1,m=!1;if(null!==t.listener&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,o=a=s=4===i||3===i,r&&rF(t,!0,-1)&&(g=!0,t.lineIndent>e?p=1:t.lineIndent===e?p=0:t.lineIndent<e&&(p=-1)),1===p)for(;function(t){var e,i,r,n,o=!1,a=!1;if(33!==(n=t.input.charCodeAt(t.position)))return!1;if(null!==t.tag&&rv(t,"duplication of a tag property"),60===(n=t.input.charCodeAt(++t.position))?(o=!0,n=t.input.charCodeAt(++t.position)):33===n?(a=!0,i="!!",n=t.input.charCodeAt(++t.position)):i="!",e=t.position,o){do n=t.input.charCodeAt(++t.position);while(0!==n&&62!==n)t.position<t.length?(r=t.input.slice(e,t.position),n=t.input.charCodeAt(++t.position)):rv(t,"unexpected end of the stream within a verbatim tag")}else{for(;0!==n&&!rp(n);)33===n&&(a?rv(t,"tag suffix cannot contain exclamation marks"):(i=t.input.slice(e-1,t.position+1),rh.test(i)||rv(t,"named tag handle cannot contain such characters"),a=!0,e=t.position+1)),n=t.input.charCodeAt(++t.position);r=t.input.slice(e,t.position),rl.test(r)&&rv(t,"tag suffix cannot contain flow indicator characters")}r&&!rc.test(r)&&rv(t,"tag name cannot contain such characters: "+r);try{r=decodeURIComponent(r)}catch(e){rv(t,"tag name is malformed: "+r)}return o?t.tag=r:ro.call(t.tagMap,i)?t.tag=t.tagMap[i]+r:"!"===i?t.tag="!"+r:"!!"===i?t.tag="tag:yaml.org,2002:"+r:rv(t,'undeclared tag handle "'+i+'"'),!0}(t)||function(t){var e,i;if(38!==(i=t.input.charCodeAt(t.position)))return!1;for(null!==t.anchor&&rv(t,"duplication of an anchor property"),i=t.input.charCodeAt(++t.position),e=t.position;0!==i&&!rp(i)&&!rg(i);)i=t.input.charCodeAt(++t.position);return t.position===e&&rv(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(e,t.position),!0}(t);)rF(t,!0,-1)?(g=!0,s=o,t.lineIndent>e?p=1:t.lineIndent===e?p=0:t.lineIndent<e&&(p=-1)):s=!1;if(s&&(s=g||n),(1===p||4===i)&&(d=1===i||2===i?e:e+1,f=t.position-t.lineStart,1===p?s&&(rE(t,f)||function(t,e,i){var r,n,o,a,s,l,h,c=t.tag,u=t.anchor,d={},f=Object.create(null),p=null,g=null,m=null,y=!1,_=!1;if(-1!==t.firstTabInLine)return!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=d),h=t.input.charCodeAt(t.position);0!==h;){if(y||-1===t.firstTabInLine||(t.position=t.firstTabInLine,rv(t,"tab characters must not be used in indentation")),r=t.input.charCodeAt(t.position+1),o=t.line,(63===h||58===h)&&rp(r))63===h?(y&&(rw(t,d,f,p,g,null,a,s,l),p=g=m=null),_=!0,y=!0,n=!0):y?(y=!1,n=!0):rv(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,h=r;else{if(a=t.line,s=t.lineStart,l=t.position,!rO(t,i,2,!1,!0))break;if(t.line===o){for(h=t.input.charCodeAt(t.position);rf(h);)h=t.input.charCodeAt(++t.position);if(58===h)rp(h=t.input.charCodeAt(++t.position))||rv(t,"a whitespace character is expected after the key-value separator within a block mapping"),y&&(rw(t,d,f,p,g,null,a,s,l),p=g=m=null),_=!0,y=!1,n=!1,p=t.tag,g=t.result;else{if(!_)return t.tag=c,t.anchor=u,!0;rv(t,"can not read an implicit mapping pair; a colon is missed")}}else{if(!_)return t.tag=c,t.anchor=u,!0;rv(t,"can not read a block mapping entry; a multiline key may not be an implicit key")}}if((t.line===o||t.lineIndent>e)&&(y&&(a=t.line,s=t.lineStart,l=t.position),rO(t,e,4,!0,n)&&(y?g=t.result:m=t.result),y||(rw(t,d,f,p,g,m,a,s,l),p=g=m=null),rF(t,!0,-1),h=t.input.charCodeAt(t.position)),(t.line===o||t.lineIndent>e)&&0!==h)rv(t,"bad indentation of a mapping entry");else if(t.lineIndent<e)break}return y&&rw(t,d,f,p,g,null,a,s,l),_&&(t.tag=c,t.anchor=u,t.kind="mapping",t.result=d),_}(t,f,d))||function(t,e){var i,r,n,o,a,s,l,h,c,u,d,f,p=!0,g=t.tag,m=t.anchor,y=Object.create(null);if(91===(f=t.input.charCodeAt(t.position)))a=93,h=!1,o=[];else{if(123!==f)return!1;a=125,h=!0,o={}}for(null!==t.anchor&&(t.anchorMap[t.anchor]=o),f=t.input.charCodeAt(++t.position);0!==f;){if(rF(t,!0,e),(f=t.input.charCodeAt(t.position))===a)return t.position++,t.tag=g,t.anchor=m,t.kind=h?"mapping":"sequence",t.result=o,!0;p?44===f&&rv(t,"expected the node content, but found ','"):rv(t,"missed comma between flow collection entries"),u=c=d=null,s=l=!1,63===f&&rp(t.input.charCodeAt(t.position+1))&&(s=l=!0,t.position++,rF(t,!0,e)),i=t.line,r=t.lineStart,n=t.position,rO(t,e,1,!1,!0),u=t.tag,c=t.result,rF(t,!0,e),f=t.input.charCodeAt(t.position),(l||t.line===i)&&58===f&&(s=!0,f=t.input.charCodeAt(++t.position),rF(t,!0,e),rO(t,e,1,!1,!0),d=t.result),h?rw(t,o,y,u,c,d,i,r,n):s?o.push(rw(t,null,y,u,c,d,i,r,n)):o.push(c),rF(t,!0,e),44===(f=t.input.charCodeAt(t.position))?(p=!0,f=t.input.charCodeAt(++t.position)):p=!1}rv(t,"unexpected end of the stream within a flow collection")}(t,d)?m=!0:(a&&function(t,e){var i,r,n,o,a,s=1,l=!1,h=!1,c=e,u=0,d=!1;if(124===(a=t.input.charCodeAt(t.position)))n=!1;else{if(62!==a)return!1;n=!0}for(t.kind="scalar",t.result="";0!==a;)if(43===(a=t.input.charCodeAt(++t.position))||45===a)1===s?s=43===a?3:2:rv(t,"repeat of a chomping mode identifier");else if((o=48<=(i=a)&&i<=57?i-48:-1)>=0)0===o?rv(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):h?rv(t,"repeat of an indentation width identifier"):(c=e+o-1,h=!0);else break;if(rf(a)){do a=t.input.charCodeAt(++t.position);while(rf(a))if(35===a)do a=t.input.charCodeAt(++t.position);while(!rd(a)&&0!==a)}for(;0!==a;){for(rB(t),t.lineIndent=0,a=t.input.charCodeAt(t.position);(!h||t.lineIndent<c)&&32===a;)t.lineIndent++,a=t.input.charCodeAt(++t.position);if(!h&&t.lineIndent>c&&(c=t.lineIndent),rd(a)){u++;continue}if(t.lineIndent<c){3===s?t.result+=iN.repeat("\n",l?1+u:u):1===s&&l&&(t.result+="\n");break}for(n?rf(a)?(d=!0,t.result+=iN.repeat("\n",l?1+u:u)):d?(d=!1,t.result+=iN.repeat("\n",u+1)):0===u?l&&(t.result+=" "):t.result+=iN.repeat("\n",u):t.result+=iN.repeat("\n",l?1+u:u),l=!0,h=!0,u=0,r=t.position;!rd(a)&&0!==a;)a=t.input.charCodeAt(++t.position);rA(t,r,t.position,!1)}return!0}(t,d)||function(t,e){var i,r,n;if(39!==(i=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,r=n=t.position;0!==(i=t.input.charCodeAt(t.position));)if(39===i){if(rA(t,r,t.position,!0),39!==(i=t.input.charCodeAt(++t.position)))return!0;r=t.position,t.position++,n=t.position}else rd(i)?(rA(t,r,n,!0),rM(t,rF(t,!1,e)),r=n=t.position):t.position===t.lineStart&&rL(t)?rv(t,"unexpected end of the document within a single quoted scalar"):(t.position++,n=t.position);rv(t,"unexpected end of the stream within a single quoted scalar")}(t,d)||function(t,e){var i,r,n,o,a,s,l,h;if(34!==(s=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,i=r=t.position;0!==(s=t.input.charCodeAt(t.position));){if(34===s)return rA(t,i,t.position,!0),t.position++,!0;if(92===s){if(rA(t,i,t.position,!0),rd(s=t.input.charCodeAt(++t.position)))rF(t,!1,e);else if(s<256&&ry[s])t.result+=r_[s],t.position++;else if((a=120===(l=s)?2:117===l?4:85===l?8:0)>0){for(n=a,o=0;n>0;n--)(a=function(t){var e;return 48<=t&&t<=57?t-48:97<=(e=32|t)&&e<=102?e-97+10:-1}(s=t.input.charCodeAt(++t.position)))>=0?o=(o<<4)+a:rv(t,"expected hexadecimal character");t.result+=(h=o)<=65535?String.fromCharCode(h):String.fromCharCode((h-65536>>10)+55296,(h-65536&1023)+56320),t.position++}else rv(t,"unknown escape sequence");i=r=t.position}else rd(s)?(rA(t,i,r,!0),rM(t,rF(t,!1,e)),i=r=t.position):t.position===t.lineStart&&rL(t)?rv(t,"unexpected end of the document within a double quoted scalar"):(t.position++,r=t.position)}rv(t,"unexpected end of the stream within a double quoted scalar")}(t,d)?m=!0:function(t){var e,i,r;if(42!==(r=t.input.charCodeAt(t.position)))return!1;for(r=t.input.charCodeAt(++t.position),e=t.position;0!==r&&!rp(r)&&!rg(r);)r=t.input.charCodeAt(++t.position);return t.position===e&&rv(t,"name of an alias node must contain at least one character"),i=t.input.slice(e,t.position),ro.call(t.anchorMap,i)||rv(t,'unidentified alias "'+i+'"'),t.result=t.anchorMap[i],rF(t,!0,-1),!0}(t)?(m=!0,(null!==t.tag||null!==t.anchor)&&rv(t,"alias node should not have any properties")):function(t,e,i){var r,n,o,a,s,l,h,c,u=t.kind,d=t.result;if(rp(c=t.input.charCodeAt(t.position))||rg(c)||35===c||38===c||42===c||33===c||124===c||62===c||39===c||34===c||37===c||64===c||96===c||(63===c||45===c)&&(rp(r=t.input.charCodeAt(t.position+1))||i&&rg(r)))return!1;for(t.kind="scalar",t.result="",n=o=t.position,a=!1;0!==c;){if(58===c){if(rp(r=t.input.charCodeAt(t.position+1))||i&&rg(r))break}else if(35===c){if(rp(t.input.charCodeAt(t.position-1)))break}else if(t.position===t.lineStart&&rL(t)||i&&rg(c))break;else if(rd(c)){if(s=t.line,l=t.lineStart,h=t.lineIndent,rF(t,!1,-1),t.lineIndent>=e){a=!0,c=t.input.charCodeAt(t.position);continue}t.position=o,t.line=s,t.lineStart=l,t.lineIndent=h;break}a&&(rA(t,n,o,!1),rM(t,t.line-s),n=o=t.position,a=!1),rf(c)||(o=t.position+1),c=t.input.charCodeAt(++t.position)}return rA(t,n,o,!1),!!t.result||(t.kind=u,t.result=d,!1)}(t,d,1===i)&&(m=!0,null===t.tag&&(t.tag="?")),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):0===p&&(m=s&&rE(t,f))),null===t.tag)null!==t.anchor&&(t.anchorMap[t.anchor]=t.result);else if("?"===t.tag){for(null!==t.result&&"scalar"!==t.kind&&rv(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),l=0,h=t.implicitTypes.length;l<h;l+=1)if((u=t.implicitTypes[l]).resolve(t.result)){t.result=u.construct(t.result),t.tag=u.tag,null!==t.anchor&&(t.anchorMap[t.anchor]=t.result);break}}else if("!"!==t.tag){if(ro.call(t.typeMap[t.kind||"fallback"],t.tag))u=t.typeMap[t.kind||"fallback"][t.tag];else for(l=0,u=null,h=(c=t.typeMap.multi[t.kind||"fallback"]).length;l<h;l+=1)if(t.tag.slice(0,c[l].tag.length)===c[l].tag){u=c[l];break}u||rv(t,"unknown tag !<"+t.tag+">"),null!==t.result&&u.kind!==t.kind&&rv(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+u.kind+'", not "'+t.kind+'"'),u.resolve(t.result,t.tag)?(t.result=u.construct(t.result,t.tag),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):rv(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return null!==t.listener&&t.listener("close",t),null!==t.tag||null!==t.anchor||m}var rI=function(t,e){var i=function(t,e){t=String(t),e=e||{},0!==t.length&&(10!==t.charCodeAt(t.length-1)&&13!==t.charCodeAt(t.length-1)&&(t+="\n"),65279===t.charCodeAt(0)&&(t=t.slice(1)));var i=new rC(t,e),r=t.indexOf("\0");for(-1!==r&&(i.position=r,rv(i,"null byte is not allowed in input")),i.input+="\0";32===i.input.charCodeAt(i.position);)i.lineIndent+=1,i.position+=1;for(;i.position<i.length-1;)!function(t){var e,i,r,n,o=t.position,a=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);0!==(n=t.input.charCodeAt(t.position))&&(rF(t,!0,-1),n=t.input.charCodeAt(t.position),!(t.lineIndent>0)&&37===n);){for(a=!0,n=t.input.charCodeAt(++t.position),e=t.position;0!==n&&!rp(n);)n=t.input.charCodeAt(++t.position);for(i=t.input.slice(e,t.position),r=[],i.length<1&&rv(t,"directive name must not be less than one character in length");0!==n;){for(;rf(n);)n=t.input.charCodeAt(++t.position);if(35===n){do n=t.input.charCodeAt(++t.position);while(0!==n&&!rd(n))break}if(rd(n))break;for(e=t.position;0!==n&&!rp(n);)n=t.input.charCodeAt(++t.position);r.push(t.input.slice(e,t.position))}0!==n&&rB(t),ro.call(rT,i)?rT[i](t,i,r):rk(t,'unknown document directive "'+i+'"')}if(rF(t,!0,-1),0===t.lineIndent&&45===t.input.charCodeAt(t.position)&&45===t.input.charCodeAt(t.position+1)&&45===t.input.charCodeAt(t.position+2)?(t.position+=3,rF(t,!0,-1)):a&&rv(t,"directives end mark is expected"),rO(t,t.lineIndent-1,4,!1,!0),rF(t,!0,-1),t.checkLineBreaks&&rs.test(t.input.slice(o,t.position))&&rk(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&rL(t)){46===t.input.charCodeAt(t.position)&&(t.position+=3,rF(t,!0,-1));return}t.position<t.length-1&&rv(t,"end of the stream or a document separator is expected")}(i);return i.documents}(t,e);if(0!==i.length){if(1===i.length)return i[0];throw new i$("expected a single document in the stream, but found more")}};function rq(t,e,i){var r,n;let o=t.match(tx);if(!o)return t;let a=rI(o[1],{schema:i0});return(null==a?void 0:a.title)&&(null==(r=e.setDiagramTitle)||r.call(e,a.title.toString())),(null==a?void 0:a.displayMode)&&(null==(n=e.setDisplayMode)||n.call(e,a.displayMode.toString())),(null==a?void 0:a.config)&&(null==i||i(a.config)),t.slice(o[0].length)}let rN=t=>t.trimStart().replace(/^\s*%%(?!{)[^\n]+\n?/gm,"");class rD{constructor(t){this.text=t,this.type="graph",this.text+="\n";let e=et();try{this.type=tS(t,e)}catch(t){this.type="error",this.detectError=t}let i=iE(this.type);G.debug("Type "+this.type),this.db=i.db,this.renderer=i.renderer,this.parser=i.parser;let r=this.parser.parse.bind(this.parser);this.parser.parse=t=>r(rN(rq(t,this.db,ei))),this.parser.parser.yy=this.db,this.init=i.init,this.parse()}parse(){var t,e,i;if(this.detectError)throw this.detectError;null==(e=(t=this.db).clear)||e.call(t),null==(i=this.init)||i.call(this,et()),this.parser.parse(this.text)}async render(t,e){await this.renderer.draw(this.text,t,e,this)}getParser(){return this.parser}getType(){return this.type}}let r$=async t=>{let e=tS(t,et());try{iE(e)}catch(n){let t=tF(e);if(!t)throw new tT(`Diagram ${e} not found.`);let{id:i,diagram:r}=await t();iM(i,r)}return new rD(t)},rz=[],rj=t=>{rz.push(t)},rP=()=>{rz.forEach(t=>{t()}),rz=[]},rR=["graph","flowchart","flowchart-v2","flowchart-elk","stateDiagram","stateDiagram-v2"],rW=["foreignobject"],rU=["dominant-baseline"],rH=function(t){let e=t;return(e=(e=e.replace(/style.*:\S*#.*;/g,function(t){return t.substring(0,t.length-1)})).replace(/classDef.*:\S*#.*;/g,function(t){return t.substring(0,t.length-1)})).replace(/#\w+;/g,function(t){let e=t.substring(1,t.length-1);return/^\+?\d+$/.test(e)?"\uFB02\xb0\xb0"+e+"\xb6\xdf":"\uFB02\xb0"+e+"\xb6\xdf"})},rY=function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},rV=(t,e,i=[])=>` -.${t} ${e} { ${i.join(" !important; ")} !important; }`,rG=(t,e,i={})=>{var r;let n="";if(void 0!==t.themeCSS&&(n+=` -${t.themeCSS}`),void 0!==t.fontFamily&&(n+=` -:root { --mermaid-font-family: ${t.fontFamily}}`),void 0!==t.altFontFamily&&(n+=` -:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),!(0,Y.A)(i)&&rR.includes(e)){let e=t.htmlLabels||(null==(r=t.flowchart)?void 0:r.htmlLabels)?["> *","span"]:["rect","polygon","ellipse","circle","path"];for(let t in i){let r=i[t];(0,Y.A)(r.styles)||e.forEach(t=>{n+=rV(r.id,t,r.styles)}),(0,Y.A)(r.textStyles)||(n+=rV(r.id,"tspan",r.textStyles))}}return n},rX=(t,e,i,r)=>{var n,o,a;let s=rG(t,e,i),l=il(e,s,t.themeVariables);return M((a=function t(e,i,r,n,o,a,s,l,h){for(var c,u=0,d=0,f=s,p=0,g=0,m=0,y=1,_=1,b=1,C=0,v="",k=o,T=a,M=n,E=v;_;)switch(m=C,C=j()){case 40:if(108!=m&&58==w(E,f-1)){-1!=(E+=S(W(C),"&","&\f")).indexOf("&\f")&&(b=-1);break}case 34:case 39:case 91:E+=W(C);break;case 9:case 10:case 13:case 32:E+=function(t){for(;D=P();)if(D<33)j();else break;return R(t)>2||R(D)>3?"":" "}(m);break;case 92:E+=function(t,e){for(var i;--e&&j()&&!(D<48)&&!(D>102)&&(!(D>57)||!(D<65))&&(!(D>70)||!(D<97)););return i=N+(e<6&&32==P()&&32==j()),B($,t,i)}(N-1,7);continue;case 47:switch(P()){case 42:case 47:L(z(c=function(t,e){for(;j();)if(t+D===57)break;else if(t+D===84&&47===P())break;return"/*"+B($,e,N-1)+"*"+A(47===t?t:j())}(j(),N),i,r,x,A(D),B(c,2,-2),0,h),h);break;default:E+="/"}break;case 123*y:l[u++]=F(E)*b;case 125*y:case 59:case 0:switch(C){case 0:case 125:_=0;case 59+d:-1==b&&(E=S(E,/\f/g,"")),g>0&&F(E)-f&&L(g>32?H(E+";",n,r,f-1,h):H(S(E," ","")+";",n,r,f-2,h),h);break;case 59:E+=";";default:if(L(M=U(E,i,r,u,d,o,l,v,k=[],T=[],f,a),a),123===C){if(0===d)t(E,i,M,M,k,a,f,l,T);else switch(99===p&&110===w(E,3)?100:p){case 100:case 108:case 109:case 115:t(e,M,M,n&&L(U(e,M,M,0,0,o,l,v,o,k=[],f,T),T),o,T,f,l,n?k:T);break;default:t(E,M,M,M,[""],T,0,l,T)}}}u=d=g=0,y=b=1,v=E="",f=s;break;case 58:f=1+F(E),g=m;default:if(y<1){if(123==C)--y;else if(125==C&&0==y++&&125==(D=N>0?w($,--N):0,I--,10===D&&(I=1,O--),D))continue}switch(E+=A(C),C*y){case 38:b=d>0?1:(E+="\f",-1);break;case 44:l[u++]=(F(E)-1)*b,b=1;break;case 64:45===P()&&(E+=W(j())),p=P(),d=f=F(v=E+=function(t){for(;!R(P());)j();return B($,t,N)}(N)),C++;break;case 45:45===m&&2==F(E)&&(y=0)}}return a}("",null,null,null,[""],(o=n=`${r}{${l}}`,O=I=1,q=F($=o),N=0,n=[]),0,[0],n),$="",a),E)},rZ=(t="",e,i)=>{let r=t;return i||e||(r=r.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),r=(r=rY(r)).replace(/<br>/g,"<br/>")},rJ=(t="",e)=>{var i,r;let n=(null==(r=null==(i=null==e?void 0:e.viewBox)?void 0:i.baseVal)?void 0:r.height)?e.viewBox.baseVal.height+"px":"100%",o=btoa('<body style="margin:0">'+t+"</body>");return`<iframe style="width:100%;height:${n};border:0;margin:0;" src="data:text/html;base64,${o}" sandbox="allow-top-navigation-by-user-activation allow-popups"> - The "iframe" tag is not supported by your browser. -</iframe>`},rQ=(t,e,i,r,n)=>{let o=t.append("div");o.attr("id",i),r&&o.attr("style",r);let a=o.append("svg").attr("id",e).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg");return n&&a.attr("xmlns:xlink",n),a.append("g"),t};function rK(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}let r0=(t,e,i,r)=>{var n,o,a;null==(n=t.getElementById(e))||n.remove(),null==(o=t.getElementById(i))||o.remove(),null==(a=t.getElementById(r))||a.remove()},r1=Object.freeze({render:async function(t,e,i){var r,n,o,a,s,c,u,d;let f,p;iq(),er(),rq(e,{},ei);let g=tK.detectInit(e);g&&ei(g);let m=et();G.debug(m),e.length>((null==m?void 0:m.maxTextSize)??5e4)&&(e="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa"),e=(e=e.replace(/\r\n?/g,"\n")).replace(/<(\w+)([^>]*)>/g,(t,e,i)=>"<"+e+i.replace(/="([^"]*)"/g,"='$1'")+">");let y="#"+t,_="i"+t,b="d"+t,C="#"+b,x=(0,l.Ltv)("body"),v="sandbox"===m.securityLevel,k="loose"===m.securityLevel,T=m.fontFamily;if(void 0!==i){if(i&&(i.innerHTML=""),v){let t=rK((0,l.Ltv)(i),_);(x=(0,l.Ltv)(t.nodes()[0].contentDocument.body)).node().style.margin=0}else x=(0,l.Ltv)(i);rQ(x,t,b,`font-family: ${T}`,"http://www.w3.org/1999/xlink")}else{if(r0(document,t,b,_),v){let t=rK((0,l.Ltv)("body"),_);(x=(0,l.Ltv)(t.nodes()[0].contentDocument.body)).node().style.margin=0}else x=(0,l.Ltv)("body");rQ(x,t,b)}e=rH(e);try{f=await r$(e)}catch(t){f=new rD("error"),p=t}let A=x.select(C).node(),S=f.type,w=A.firstChild,B=w.firstChild,F=rR.includes(S)?f.renderer.getClasses(e,f):{},L=rX(m,S,F,y),M=document.createElement("style");M.innerHTML=L,w.insertBefore(M,B);try{await f.renderer.draw(e,t,t0,f)}catch(i){throw e1.draw(e,t,t0),i}let E=x.select(`${C} svg`);s=S,c=E,u=null==(n=(r=f.db).getAccTitle)?void 0:n.call(r),d=null==(a=(o=f.db).getAccDescription)?void 0:a.call(o),c.attr("role","graphics-document document"),""!==s&&c.attr("aria-roledescription",s),function(t,e,i,r){if(void 0!==t.insert){if(i){let e=`chart-desc-${r}`;t.attr("aria-describedby",e),t.insert("desc",":first-child").attr("id",e).text(i)}if(e){let i=`chart-title-${r}`;t.attr("aria-labelledby",i),t.insert("title",":first-child").attr("id",i).text(e)}}}(c,u,d,c.attr("id")),x.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns","http://www.w3.org/1999/xhtml");let O=x.select(C).node().innerHTML;if(G.debug("config.arrowMarkerAbsolute",m.arrowMarkerAbsolute),O=rZ(O,v,tr(m.arrowMarkerAbsolute)),v?O=rJ(O,x.select(C+" svg").node()):k||(O=h.sanitize(O,{ADD_TAGS:rW,ADD_ATTR:rU})),rP(),p)throw p;let I=v?"#"+_:C,q=(0,l.Ltv)(I).node();return q&&"remove"in q&&q.remove(),{svg:O,bindFunctions:f.db.bindFunctions}},parse:async function(t,e){iq();try{await r$(t)}catch(t){if(null==e?void 0:e.suppressErrors)return!1;throw t}return!0},parseDirective:ik,getDiagramFromText:r$,initialize:function(t={}){var e;(null==t?void 0:t.fontFamily)&&!(null==(e=t.themeVariables)?void 0:e.fontFamily)&&(t.themeVariables||(t.themeVariables={}),t.themeVariables.fontFamily=t.fontFamily),t8(t),(null==t?void 0:t.theme)&&t.theme in tg?t.themeVariables=tg[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=tg.default.getThemeVariables(t.themeVariables)),X(("object"==typeof t?t4(t):t7()).logLevel),iq()},getConfig:et,setConfig:t9,getSiteConfig:t7,updateSiteConfig:t=>(t2=tM(t2,t),t6(t2,t5),t2),reset:()=>{er()},globalReset:()=>{er(t1)},defaultConfig:t1});X(et().logLevel),er(et());let r2=async()=>{G.debug("Loading registered diagrams");let t=(await Promise.allSettled(Object.entries(tA).map(async([t,{detector:e,loader:i}])=>{if(i)try{iE(t)}catch(r){try{let{diagram:t,id:r}=await i();iM(r,t,e)}catch(e){throw G.error(`Failed to load external diagram with key ${t}. Removing from detectors.`),delete tA[t],e}}}))).filter(t=>"rejected"===t.status);if(t.length>0){for(let e of(G.error(`Failed to load ${t.length} external diagrams`),t))G.error(e);throw Error(`Failed to load ${t.length} external diagrams`)}},r5=(t,e,i)=>{(G.warn(t),"str"in t)?(i&&i(t.str,t.hash),e.push({...t,message:t.str,error:t})):(i&&i(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},r3=async function(t={querySelector:".mermaid"}){try{await r6(t)}catch(e){if("str"in e&&G.error(e.str),no.parseError&&no.parseError(e),!t.suppressErrors)throw G.error("Use the suppressErrors option to suppress these errors"),e}},r6=async function({postRenderCallback:t,querySelector:e,nodes:i}={querySelector:".mermaid"}){let r,n;let a=r1.getConfig();if(G.debug(`${t?"":"No "}Callback function found`),i)r=i;else if(e)r=document.querySelectorAll(e);else throw Error("Nodes and querySelector are both undefined");G.debug(`Found ${r.length} diagrams`),(null==a?void 0:a.startOnLoad)!==void 0&&(G.debug("Start On Load: "+(null==a?void 0:a.startOnLoad)),r1.updateSiteConfig({startOnLoad:null==a?void 0:a.startOnLoad}));let s=new tK.initIdGenerator(a.deterministicIds,a.deterministicIDSeed),l=[];for(let e of Array.from(r)){if(G.info("Rendering diagram: "+e.id),e.getAttribute("data-processed"))continue;e.setAttribute("data-processed","true");let i=`mermaid-${s.next()}`;n=e.innerHTML,n=(0,o.T)(tK.entityDecode(n)).trim().replace(/<br\s*\/?>/gi,"<br/>");let r=tK.detectInit(n);r&&G.debug("Detected early reinit: ",r);try{let{svg:r,bindFunctions:o}=await nn(i,n,e);e.innerHTML=r,t&&await t(i),o&&o(e)}catch(t){r5(t,l,no.parseError)}}if(l.length>0)throw l[0]},r4=function(t){r1.initialize(t)},r8=async function(t,e,i){G.warn("mermaid.init is deprecated. Please use run instead."),t&&r4(t);let r={postRenderCallback:i,querySelector:".mermaid"};"string"==typeof e?r.querySelector=e:e&&(e instanceof HTMLElement?r.nodes=[e]:r.nodes=e),await r3(r)},r7=async(t,{lazyLoad:e=!0}={})=>{tw(...t),!1===e&&await r2()},r9=function(){if(no.startOnLoad){let{startOnLoad:t}=r1.getConfig();t&&no.run().catch(t=>G.error("Mermaid failed to initialize",t))}};"undefined"!=typeof document&&window.addEventListener("load",r9,!1);let nt=[],ne=!1,ni=async()=>{if(!ne){for(ne=!0;nt.length>0;){let t=nt.shift();if(t)try{await t()}catch(t){G.error("Error executing queue",t)}}ne=!1}},nr=async(t,e)=>new Promise((i,r)=>{nt.push(()=>new Promise((n,o)=>{r1.parse(t,e).then(t=>{n(t),i(t)},t=>{var e;G.error("Error parsing",t),null==(e=no.parseError)||e.call(no,t),o(t),r(t)})})),ni().catch(r)}),nn=(t,e,i)=>new Promise((r,n)=>{nt.push(()=>new Promise((o,a)=>{r1.render(t,e,i).then(t=>{o(t),r(t)},t=>{var e;G.error("Error parsing",t),null==(e=no.parseError)||e.call(no,t),a(t),n(t)})})),ni().catch(n)}),no={startOnLoad:!0,mermaidAPI:r1,parse:nr,render:nn,init:r8,run:r3,registerExternalDiagrams:r7,initialize:r4,parseError:void 0,contentLoaded:r9,setParseErrorHandler:function(t){no.parseError=t},detectType:tS}}}]); \ No newline at end of file diff --git a/assets/js/17896441.400514dc.js b/assets/js/17896441.81edb70b.js similarity index 51% rename from assets/js/17896441.400514dc.js rename to assets/js/17896441.81edb70b.js index 03922f3dc3..b843b64416 100644 --- a/assets/js/17896441.400514dc.js +++ b/assets/js/17896441.81edb70b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[18401],{65108:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,n.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}r(63696)},55640:(e,t,r)=>{r.d(t,{A:()=>N});var n,o,c=r(62540),i=r(63696),l=r(11750),a=r(81912),s=r(12653);let u={admonition:"admonition_o5H7",admonitionHeading:"admonitionHeading_FzoX",admonitionIcon:"admonitionIcon_rXq6",admonitionContent:"admonitionContent_Knsx"};function b({type:e,className:t,children:r}){return(0,c.jsx)("div",{className:(0,l.A)(s.G.common.admonition,s.G.common.admonitionType(e),u.admonition,t),children:r})}function p({icon:e,title:t}){return(0,c.jsxs)("div",{className:u.admonitionHeading,children:[(0,c.jsx)("span",{className:u.admonitionIcon,children:e}),t]})}function f({children:e}){return e?(0,c.jsx)("div",{className:u.admonitionContent,children:e}):null}function d(e){let{type:t,icon:r,title:n,children:o,className:i}=e;return(0,c.jsxs)(b,{type:t,className:i,children:[n||r?(0,c.jsx)(p,{title:n,icon:r}):null,(0,c.jsx)(f,{children:o})]})}let O={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function y(e){var t,r;return(0,c.jsx)(d,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},O,e),r=r={className:(0,l.A)("alert alert--secondary",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let j={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function m(e){var t,r;return(0,c.jsx)(d,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},j,e),r=r={className:(0,l.A)("alert alert--success",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var g=r(65108);let h={icon:(0,c.jsx)(g.A,{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function v(e){var t,r;return(0,c.jsx)(d,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},h,e),r=r={className:(0,l.A)("alert alert--info",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function w(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 16 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let P={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})},x={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})},S={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};function k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let A=k({},{note:y,tip:m,info:v,warning:function(e){var t,r;return(0,c.jsx)(d,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},P,e),r=r={className:(0,l.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},danger:function(e){var t,r;return(0,c.jsx)(d,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},x,e),r=r={className:(0,l.A)("alert alert--danger",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},{secondary:e=>(0,c.jsx)(y,k({title:"secondary"},e)),important:e=>(0,c.jsx)(v,k({title:"important"},e)),success:e=>(0,c.jsx)(m,k({title:"success"},e)),caution:function(e){var t,r;return(0,c.jsx)(d,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},S,e),r=r={className:(0,l.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}});var D=r(37425);let E=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},A),o=o={"my-custom-admonition":function(e){return(0,c.jsxs)("div",{style:{border:"solid red",padding:10},children:[(0,c.jsx)(D.A,{as:"h5",style:{color:"blue",fontSize:30},children:e.title}),(0,c.jsx)("div",{children:e.children})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function N(e){var t;let r=function(e){var t,r,n;let{mdxAdmonitionTitle:o,rest:l}=function(e){let t=i.Children.toArray(e),r=t.find(e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),n=t.filter(e=>e!==r);return{mdxAdmonitionTitle:null==r?void 0:r.props.children,rest:n.length>0?(0,c.jsx)(c.Fragment,{children:n}):null}}(e.children),a=null!==(t=e.title)&&void 0!==t?t:o;return r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e,a&&{title:a}),n=n={children:l},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}(e),n=E[t=r.type]||(console.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),E.info);return(0,c.jsx)(n,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r))}},18384:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(62540);r(63696);var o=r(11750),c=r(77458),i=r(12653),l=r(55640);function a({className:e}){return(0,n.jsx)(l.A,{type:"caution",title:(0,n.jsx)(c.Rc,{}),className:(0,o.A)(e,i.G.common.unlistedBanner),children:(0,n.jsx)(c.Uh,{})})}function s(e){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.AE,{}),(0,n.jsx)(a,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))]})}},49470:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(62540);r(63696);var o=r(11750),c=r(77458),i=r(12653),l=r(55640);function a({className:e}){return(0,n.jsx)(l.A,{type:"caution",title:(0,n.jsx)(c.Yh,{}),className:(0,o.A)(e,i.G.common.draftBanner),children:(0,n.jsx)(c.TT,{})})}var s=r(18384);function u({metadata:e}){let{unlisted:t,frontMatter:r}=e;return(0,n.jsxs)(n.Fragment,{children:[(t||r.unlisted)&&(0,n.jsx)(s.A,{}),r.draft&&(0,n.jsx)(a,{})]})}},23572:(e,t,r)=>{r.d(t,{A:()=>f});var n=r(62540),o=r(63696),c=r(11750),i=r(52711),l=r(10709),a=r(27720);let s={details:"details_Nokh",isBrowser:"isBrowser_QrB5",collapsibleContent:"collapsibleContent_EoA1"};function u(e){return!!e&&("SUMMARY"===e.tagName||u(e.parentElement))}function b(e){var t,r,{summary:b,children:p}=e,f=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["summary","children"]);(0,i.A)().collectAnchor(f.id);let d=(0,l.A)(),O=(0,o.useRef)(null),{collapsed:y,setCollapsed:j}=(0,a.u)({initialState:!f.open}),[m,g]=(0,o.useState)(f.open),h=o.isValidElement(b)?b:(0,n.jsx)("summary",{children:null!=b?b:"Details"});return(0,n.jsxs)("details",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},f),r=r={ref:O,open:m,"data-collapsed":y,className:(0,c.A)(s.details,d&&s.isBrowser,f.className),onMouseDown:e=>{u(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();let t=e.target;u(t)&&function e(t,r){return!!t&&(t===r||e(t.parentElement,r))}(t,O.current)&&(e.preventDefault(),y?(j(!1),g(!0)):j(!0))},children:[h,(0,n.jsx)(a.N,{lazy:!1,collapsed:y,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{j(e),g(!e)},children:(0,n.jsx)("div",{className:s.collapsibleContent,children:p})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function f(e){var t,r,o=p({},function(e){if(null==e)throw TypeError("Cannot destructure "+e);return e}(e));return(0,n.jsx)(b,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={className:(0,c.A)("alert alert--info","details_Cn_P",o.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},57145:(e,t,r)=>{r.d(t,{A:()=>O});var n=r(62540);r(63696);var o=r(11750),c=r(12653),i=r(46222),l=r(3107),a=r(36372),s=r(81912),u=r(27167);function b(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,n.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function p(){let e=(0,u.Ay)("/");return(0,n.jsx)("li",{className:"breadcrumbs__item",children:(0,n.jsx)(a.A,{"aria-label":(0,s.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,n.jsx)(b,{className:"breadcrumbHomeIcon_uaSn"})})})}function f({children:e,href:t,isLast:r}){let o="breadcrumbs__link";return r?(0,n.jsx)("span",{className:o,itemProp:"name",children:e}):t?(0,n.jsx)(a.A,{className:o,href:t,itemProp:"item",children:(0,n.jsx)("span",{itemProp:"name",children:e})}):(0,n.jsx)("span",{className:o,children:e})}function d({children:e,active:t,index:r,addMicrodata:c}){var i,l;return(0,n.jsxs)("li",(i=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},c&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"}),l=l={className:(0,o.A)("breadcrumbs__item",{"breadcrumbs__item--active":t}),children:[e,(0,n.jsx)("meta",{itemProp:"position",content:String(r+1)})]},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(l)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(l)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(l,e))}),i))}function O(){let e=(0,i.OF)(),t=(0,l.Dt)();return e?(0,n.jsx)("nav",{className:(0,o.A)(c.G.docs.docBreadcrumbs,"breadcrumbsContainer_Wvrh"),"aria-label":(0,s.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,n.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,n.jsx)(p,{}),e.map((t,r)=>{let o=r===e.length-1,c="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,n.jsx)(d,{active:o,index:r,addMicrodata:!!c,children:(0,n.jsx)(f,{href:c,isLast:o,children:t.label})},r)})]})}):null}},2277:(e,t,r)=>{r.r(t),r.d(t,{default:()=>_});var n=r(62540),o=r(63696),c=r(37554),i=r(2550);let l=o.createContext(null);function a({children:e,content:t}){let r=(0,o.useMemo)(()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,contentTitle:t.contentTitle,toc:t.toc}),[t]);return(0,n.jsx)(l.Provider,{value:r,children:e})}function s(){let e=(0,o.useContext)(l);if(null===e)throw new i.dV("DocProvider");return e}function u(){var e;let{metadata:t,frontMatter:r,assets:o}=s();return(0,n.jsx)(c.be,{title:t.title,description:t.description,keywords:r.keywords,image:null!==(e=o.image)&&void 0!==e?e:r.image})}var b=r(11750),p=r(85975),f=r(29157);function d(){let{metadata:e}=s();return(0,n.jsx)(f.A,{previous:e.previous,next:e.next})}var O=r(18496),y=r(19449),j=r(12653),m=r(48447),g=r(2604);function h(){let{metadata:e}=s(),{editUrl:t,lastUpdatedAt:r,lastUpdatedBy:o,tags:c}=e,i=c.length>0,l=!!(t||r||o);return i||l?(0,n.jsxs)("footer",{className:(0,b.A)(j.G.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,n.jsx)("div",{className:(0,b.A)("row margin-top--sm",j.G.docs.docFooterTagsRow),children:(0,n.jsx)("div",{className:"col",children:(0,n.jsx)(m.A,{tags:c})})}),l&&(0,n.jsx)(g.A,{className:(0,b.A)("margin-top--sm",j.G.docs.docFooterEditMetaRow),editUrl:t,lastUpdatedAt:r,lastUpdatedBy:o})]}):null}var v=r(25592);function w(){let{toc:e,frontMatter:t}=s();return(0,n.jsx)(v.A,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,b.A)(j.G.docs.docTocMobile,"tocMobile_NSfz")})}var P=r(67393);function x(){let{toc:e,frontMatter:t}=s();return(0,n.jsx)(P.A,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:j.G.docs.docTocDesktop})}var S=r(37425),k=r(76699);function A({children:e}){let t=function(){let{metadata:e,frontMatter:t,contentTitle:r}=s();return t.hide_title||void 0!==r?null:e.title}();return(0,n.jsxs)("div",{className:(0,b.A)(j.G.docs.docMarkdown,"markdown"),children:[t&&(0,n.jsx)("header",{children:(0,n.jsx)(S.A,{as:"h1",children:t})}),(0,n.jsx)(k.A,{children:e})]})}var D=r(57145),E=r(49470);let N={docItemContainer:"docItemContainer_RhpI",docItemCol:"docItemCol_n6xZ"};function C({children:e}){let t=function(){let{frontMatter:e,toc:t}=s(),r=(0,p.l)(),o=e.hide_table_of_contents,c=!o&&t.length>0;return{hidden:o,mobile:c?(0,n.jsx)(w,{}):void 0,desktop:c&&("desktop"===r||"ssr"===r)?(0,n.jsx)(x,{}):void 0}}(),{metadata:r}=s();return(0,n.jsxs)("div",{className:"row",children:[(0,n.jsxs)("div",{className:(0,b.A)("col",!t.hidden&&N.docItemCol),children:[(0,n.jsx)(E.A,{metadata:r}),(0,n.jsx)(O.A,{}),(0,n.jsxs)("div",{className:N.docItemContainer,children:[(0,n.jsxs)("article",{children:[(0,n.jsx)(D.A,{}),(0,n.jsx)(y.A,{}),t.mobile,(0,n.jsx)(A,{children:e}),(0,n.jsx)(h,{})]}),(0,n.jsx)(d,{})]})]}),t.desktop&&(0,n.jsx)("div",{className:"col col--3",children:t.desktop})]})}function _(e){let t=`docs-doc-id-${e.content.metadata.id}`,r=e.content;return(0,n.jsx)(a,{content:e.content,children:(0,n.jsxs)(c.e3,{className:t,children:[(0,n.jsx)(u,{}),(0,n.jsx)(C,{children:(0,n.jsx)(r,{})})]})})}},29157:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(81912),c=r(88524);function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function l(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function a(e){let{previous:t,next:r}=e;return(0,n.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,o.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,n.jsx)(c.A,l(i({},t),{subLabel:(0,n.jsx)(o.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})})),r&&(0,n.jsx)(c.A,l(i({},r),{subLabel:(0,n.jsx)(o.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0}))]})}},19449:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(12653),l=r(95851);function a({className:e}){let t=(0,l.r)();return t.badge?(0,n.jsx)("span",{className:(0,o.A)(e,i.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,n.jsx)(c.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:t.label},children:"Version: {versionLabel}"})}):null}},18496:(e,t,r)=>{r.d(t,{A:()=>y});var n=r(62540);r(63696);var o=r(11750),c=r(99468),i=r(36372),l=r(81912),a=r(69615),s=r(12653),u=r(78284),b=r(95851);let p={unreleased:function({siteTitle:e,versionMetadata:t}){return(0,n.jsx)(l.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:e,versionLabel:(0,n.jsx)("b",{children:t.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function({siteTitle:e,versionMetadata:t}){return(0,n.jsx)(l.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:e,versionLabel:(0,n.jsx)("b",{children:t.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function f(e){let t=p[e.versionMetadata.banner];return(0,n.jsx)(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}function d({versionLabel:e,to:t,onClick:r}){return(0,n.jsx)(l.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:e,latestVersionLink:(0,n.jsx)("b",{children:(0,n.jsx)(i.A,{to:t,onClick:r,children:(0,n.jsx)(l.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function O({className:e,versionMetadata:t}){let{siteConfig:{title:r}}=(0,c.A)(),{pluginId:i}=(0,a.vT)({failfast:!0}),{savePreferredVersionName:l}=(0,u.g1)(i),{latestDocSuggestion:b,latestVersionSuggestion:p}=(0,a.HW)(i),O=null!=b?b:p.docs.find(e=>e.id===p.mainDocId);return(0,n.jsxs)("div",{className:(0,o.A)(e,s.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,n.jsx)("div",{children:(0,n.jsx)(f,{siteTitle:r,versionMetadata:t})}),(0,n.jsx)("div",{className:"margin-top--md",children:(0,n.jsx)(d,{versionLabel:p.label,to:O.path,onClick:()=>l(p.name)})})]})}function y({className:e}){let t=(0,b.r)();return t.banner?(0,n.jsx)(O,{className:e,versionMetadata:t}):null}},2604:(e,t,r)=>{r.d(t,{A:()=>d});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(12653),l=r(36372);function a(e){var t,r,{className:c}=e,i=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["className"]);return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,o.A)("iconEdit_IMw_",c),"aria-hidden":"true"},i),r=r={children:(0,n.jsx)("g",{children:(0,n.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function s({editUrl:e}){return(0,n.jsxs)(l.A,{to:e,className:i.G.common.editThisPage,children:[(0,n.jsx)(a,{}),(0,n.jsx)(c.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=r(60908);function b({lastUpdatedAt:e}){let t=new Date(e),r=(0,u.i)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(t);return(0,n.jsx)(c.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,n.jsx)("b",{children:(0,n.jsx)("time",{dateTime:t.toISOString(),itemProp:"dateModified",children:r})})},children:" on {date}"})}function p({lastUpdatedBy:e}){return(0,n.jsx)(c.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,n.jsx)("b",{children:e})},children:" by {user}"})}function f({lastUpdatedAt:e,lastUpdatedBy:t}){return(0,n.jsxs)("span",{className:i.G.common.lastUpdated,children:[(0,n.jsx)(c.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,n.jsx)(b,{lastUpdatedAt:e}):"",byUser:t?(0,n.jsx)(p,{lastUpdatedBy:t}):""},children:"Last updated{atDate}{byUser}"}),!1]})}function d({className:e,editUrl:t,lastUpdatedAt:r,lastUpdatedBy:c}){return(0,n.jsxs)("div",{className:(0,o.A)("row",e),children:[(0,n.jsx)("div",{className:"col",children:t&&(0,n.jsx)(s,{editUrl:t})}),(0,n.jsx)("div",{className:(0,o.A)("col","lastUpdated_OHCJ"),children:(r||c)&&(0,n.jsx)(f,{lastUpdatedAt:r,lastUpdatedBy:c})})]})}},76699:(e,t,r)=>{r.d(t,{A:()=>B});var n,o,c=r(62540),i=r(63696),l=r(43023),a=r(93394),s=r(55887);function u(e){return(0,c.jsx)("code",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function p(e){return void 0!==e.children&&i.Children.toArray(e.children).every(e=>"string"==typeof e&&!e.includes("\n"))?(0,c.jsx)(u,b({},e)):(0,c.jsx)(s.A,b({},e))}var f=r(36372),d=r(23572);function O(e){var t,r;let n=i.Children.toArray(e.children),o=n.find(e=>i.isValidElement(e)&&"summary"===e.type),l=(0,c.jsx)(c.Fragment,{children:n.filter(e=>e!==o)});return(0,c.jsx)(d.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={summary:o,children:l},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var y=r(37425);function j(e){return(0,c.jsx)(y.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}var m=r(11750);let g={containsTaskList:"containsTaskList_k9gM"};var h=r(52711),v=r(55640),w=r(43758),P=r(1495),x=r(25436),S=r(66659),k=r(17367);async function A({id:e,text:t,config:r}){k.N.mermaidAPI.initialize(r);try{return await k.N.render(e,t)}catch(t){var n;throw null===(n=document.querySelector(`#d${e}`))||void 0===n||n.remove(),t}}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function E({renderResult:e}){let t=(0,i.useRef)(null);return(0,i.useEffect)(()=>{var r;let n=t.current;null===(r=e.bindFunctions)||void 0===r||r.call(e,n)},[e]),(0,c.jsx)("div",{ref:t,className:"docusaurus-mermaid-container container_RUsj",dangerouslySetInnerHTML:{__html:e.svg}})}function N({value:e}){let t=function({text:e,config:t}){let[r,n]=(0,i.useState)(null),o=(0,i.useRef)(`mermaid-svg-${Math.round(1e7*Math.random())}`).current,c=function(){let{colorMode:e}=(0,S.G)(),t=(0,x.p)().mermaid,r=t.theme[e],{options:n}=t;return(0,i.useMemo)(()=>{var e,t;return e=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({startOnLoad:!1},n),t=t={theme:r},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e},[r,n])}(),l=null!=t?t:c;return(0,i.useEffect)(()=>{A({id:o,text:e,config:l}).then(n).catch(e=>{n(()=>{throw e})})},[o,e,l]),r}({text:e});return null===t?null:(0,c.jsx)(E,{renderResult:t})}function C(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let _=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},{Head:a.A,details:O,Details:O,code:p,a:function(e){return(0,c.jsx)(f.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},pre:function(e){return(0,c.jsx)(c.Fragment,{children:e.children})},ul:function(e){var t,r;return(0,c.jsx)("ul",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={className:function(e){if(void 0!==e)return(0,m.A)(e,(null==e?void 0:e.includes("contains-task-list"))&&g.containsTaskList)}(e.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},li:function(e){return(0,h.A)().collectAnchor(e.id),(0,c.jsx)("li",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},img:function(e){var t,r,n;return(0,c.jsx)("img",(r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({decoding:"async",loading:"lazy"},e),n=n={className:(t=e.className,(0,m.A)(t,"img_vXGZ"))},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r))},h1:e=>(0,c.jsx)(j,C({as:"h1"},e)),h2:e=>(0,c.jsx)(j,C({as:"h2"},e)),h3:e=>(0,c.jsx)(j,C({as:"h3"},e)),h4:e=>(0,c.jsx)(j,C({as:"h4"},e)),h5:e=>(0,c.jsx)(j,C({as:"h5"},e)),h6:e=>(0,c.jsx)(j,C({as:"h6"},e)),admonition:v.A,mermaid:function(e){return(0,c.jsx)(w.A,{fallback:e=>(0,c.jsx)(P.MN,D({},e)),children:(0,c.jsx)(N,D({},e))})}}),o=o={Code:p,Highlight:function({children:e,color:t}){return(0,c.jsx)("span",{style:{backgroundColor:t,borderRadius:"2px",color:"#fff",padding:"0.2rem"},children:e})},TweetQuote:function({url:e,handle:t,name:r,job:n,children:o}){let i=`https://unavatar.io/x/${t}`,l=`https://x.com/${t}`;return(0,c.jsxs)("figure",{className:"tweetQuote_h8Rz",children:[(0,c.jsx)("blockquote",{children:(0,c.jsx)(f.A,{to:e,children:o})}),(0,c.jsx)("figcaption",{children:(0,c.jsx)(f.A,{to:l,rel:"nofollow",children:(0,c.jsxs)("div",{className:"avatar",children:[(0,c.jsx)("img",{alt:r,className:(0,m.A)("avatar__photo","avatarImg_b51M"),src:i}),(0,c.jsxs)("div",{className:(0,m.A)("avatar__intro"),children:[(0,c.jsx)("strong",{className:"avatar__name",children:(0,c.jsx)("cite",{children:r})}),(0,c.jsx)("small",{className:"avatar__subtitle",itemProp:"description",children:n})]})]})})})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function B({children:e}){return(0,c.jsx)(l.x,{components:_,children:e})}},88524:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(11750),c=r(36372);function i(e){let{permalink:t,title:r,subLabel:i,isNext:l}=e;return(0,n.jsxs)(c.A,{className:(0,o.A)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[i&&(0,n.jsx)("div",{className:"pagination-nav__sublabel",children:i}),(0,n.jsx)("div",{className:"pagination-nav__label",children:r})]})}},67393:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(11750),c=r(46733);function i(e){var t,r,{className:i}=e,l=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["className"]);return(0,n.jsx)("div",{className:(0,o.A)("tableOfContents_RLlU","thin-scrollbar",i),children:(0,n.jsx)(c.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},l),r=r={linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}},25592:(e,t,r)=>{r.d(t,{A:()=>b});var n=r(62540);r(63696);var o=r(11750),c=r(27720),i=r(46733),l=r(81912);let a={tocCollapsibleButton:"tocCollapsibleButton_IbtT",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_Nor3"};function s(e){var t,r,{collapsed:c}=e,i=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["collapsed"]);return(0,n.jsx)("button",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({type:"button"},i),r=r={className:(0,o.A)("clean-btn",a.tocCollapsibleButton,!c&&a.tocCollapsibleButtonExpanded,i.className),children:(0,n.jsx)(l.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let u={tocCollapsible:"tocCollapsible_BEWm",tocCollapsibleContent:"tocCollapsibleContent_FG8F",tocCollapsibleExpanded:"tocCollapsibleExpanded_FzA_"};function b({toc:e,className:t,minHeadingLevel:r,maxHeadingLevel:l}){let{collapsed:a,toggleCollapsed:b}=(0,c.u)({initialState:!0});return(0,n.jsxs)("div",{className:(0,o.A)(u.tocCollapsible,!a&&u.tocCollapsibleExpanded,t),children:[(0,n.jsx)(s,{collapsed:a,onClick:b}),(0,n.jsx)(c.N,{lazy:!0,className:u.tocCollapsibleContent,collapsed:a,children:(0,n.jsx)(i.A,{toc:e,minHeadingLevel:r,maxHeadingLevel:l})})]})}},46733:(e,t,r)=>{r.d(t,{A:()=>b});var n=r(62540),o=r(63696),c=r(25436);function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function l(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function a(e){let t=e.getBoundingClientRect();return t.top===t.bottom?a(e.parentNode):t}var s=r(36372);let u=o.memo(function e({toc:t,className:r,linkClassName:o,isChild:c}){return t.length?(0,n.jsx)("ul",{className:c?void 0:r,children:t.map(t=>(0,n.jsxs)("li",{children:[(0,n.jsx)(s.A,{to:`#${t.id}`,className:null!=o?o:void 0,dangerouslySetInnerHTML:{__html:t.value}}),(0,n.jsx)(e,{isChild:!0,toc:t.children,className:r,linkClassName:o})]},t.id))}):null});function b(e){var{toc:t,className:r="table-of-contents table-of-contents__left-border",linkClassName:s="table-of-contents__link",linkActiveClassName:b,minHeadingLevel:p,maxHeadingLevel:f}=e,d=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["toc","className","linkClassName","linkActiveClassName","minHeadingLevel","maxHeadingLevel"]);let O=(0,c.p)(),y=null!=p?p:O.tableOfContents.minHeadingLevel,j=null!=f?f:O.tableOfContents.maxHeadingLevel,m=function({toc:e,minHeadingLevel:t,maxHeadingLevel:r}){return(0,o.useMemo)(()=>(function e({toc:t,minHeadingLevel:r,maxHeadingLevel:n}){return t.flatMap(t=>{let o=e({toc:t.children,minHeadingLevel:r,maxHeadingLevel:n});return t.level>=r&&t.level<=n?[l(i({},t),{children:o})]:o})})({toc:function(e){let t=e.map(e=>l(i({},e),{parentIndex:-1,children:[]})),r=Array(7).fill(-1);t.forEach((e,t)=>{let n=r.slice(2,e.level);e.parentIndex=Math.max(...n),r[e.level]=t});let n=[];return t.forEach(e=>{let{parentIndex:r}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["parentIndex"]);r>=0?t[r].children.push(o):n.push(o)}),n}(e),minHeadingLevel:t,maxHeadingLevel:r}),[e,t,r])}({toc:t,minHeadingLevel:y,maxHeadingLevel:j});return!function(e){let t=(0,o.useRef)(void 0),r=function(){let e=(0,o.useRef)(0),{navbar:{hideOnScroll:t}}=(0,c.p)();return(0,o.useEffect)(()=>{e.current=t?0:document.querySelector(".navbar").clientHeight},[t]),e}();(0,o.useEffect)(()=>{if(!e)return()=>{};let{linkClassName:n,linkActiveClassName:o,minHeadingLevel:c,maxHeadingLevel:i}=e;function l(){let e=Array.from(document.getElementsByClassName(n)),l=function(e,{anchorTopOffset:t}){var r,n,o;let c=e.find(e=>a(e).top>=t);return c?(o=a(c)).top>0&&o.bottom<window.innerHeight/2?c:null!==(r=e[e.indexOf(c)-1])&&void 0!==r?r:null:null!==(n=e[e.length-1])&&void 0!==n?n:null}(function({minHeadingLevel:e,maxHeadingLevel:t}){let r=[];for(let n=e;n<=t;n+=1)r.push(`h${n}.anchor`);return Array.from(document.querySelectorAll(r.join()))}({minHeadingLevel:c,maxHeadingLevel:i}),{anchorTopOffset:r.current}),s=e.find(e=>l&&l.id===decodeURIComponent(e.href.substring(e.href.indexOf("#")+1)));e.forEach(e=>{e===s?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)})}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}},[e,r])}((0,o.useMemo)(()=>{if(s&&b)return{linkClassName:s,linkActiveClassName:b,minHeadingLevel:y,maxHeadingLevel:j}},[s,b,y,j])),(0,n.jsx)(u,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({toc:m,className:r,linkClassName:s},d))}},82499:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(11750),c=r(36372);let i={tag:"tag_Nd8t",tagRegular:"tagRegular_TiLs",tagWithCount:"tagWithCount_AQg7"};function l({permalink:e,label:t,count:r,description:l}){return(0,n.jsxs)(c.A,{href:e,title:l,className:(0,o.A)(i.tag,r?i.tagWithCount:i.tagRegular),children:[t,r&&(0,n.jsx)("span",{children:r})]})}},48447:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(82499);function l({tags:e}){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("b",{children:(0,n.jsx)(c.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,n.jsx)("ul",{className:(0,o.A)("tags_rTaS","padding--none","margin-left--sm"),children:e.map(e=>(0,n.jsx)("li",{className:"tag_l5va",children:(0,n.jsx)(i.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},e.permalink))})]})}},77458:(e,t,r)=>{r.d(t,{AE:()=>a,Rc:()=>i,TT:()=>u,Uh:()=>l,Yh:()=>s});var n=r(62540);r(63696);var o=r(81912),c=r(93394);function i(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function a(){return(0,n.jsx)(c.A,{children:(0,n.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function s(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function u(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}},60908:(e,t,r)=>{r.d(t,{i:()=>o});var n=r(99468);function o(e={}){let{i18n:{currentLocale:t}}=(0,n.A)(),r=function(){let{i18n:{currentLocale:e,localeConfigs:t}}=(0,n.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({calendar:r},e))}},40576:(e,t,r)=>{r.d(t,{A:()=>c});var n=r(62540);r(63696);var o=r(10709);function c({children:e,fallback:t}){return(0,o.A)()?(0,n.jsx)(n.Fragment,{children:null==e?void 0:e()}):null!=t?t:null}},55887:(e,t,r)=>{r.d(t,{A:()=>el});var n,o,c,i={};r.r(i),r.d(i,{ButtonExample:()=>N});var l=r(62540),a=r(63696),s=r(11750),u=r(10709),b=r(55152),p=r(81912),f=r(99468),d=r(40576),O=r(1495),y=r(66659),j=r(25436);function m(){let{prism:e}=(0,j.p)(),{colorMode:t}=(0,y.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var g=r(43758);function h(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,l.jsx)("div",{className:(0,s.A)("playgroundHeader_Tvsk"),children:e})}function w(){return(0,l.jsx)("div",{children:"Loading..."})}function P(){return(0,l.jsx)(d.A,{fallback:(0,l.jsx)(w,{}),children:()=>(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(g.A,{fallback:e=>(0,l.jsx)(O.MN,h({},e)),children:(0,l.jsx)(b.pA,{})}),(0,l.jsx)(b.p1,{})]})})}function x(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(p.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,l.jsx)("div",{className:"playgroundPreview_mApW",children:(0,l.jsx)(P,{})})]})}function S(){let e=(0,u.A)();return(0,l.jsx)(b.w,{className:"playgroundEditor_TySg"},String(e))}function k(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(p.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,l.jsx)(S,{})]})}let A=e=>`${e};`;function D(e){var t,r,n,o,{children:c,transformCode:i}=e,a=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:s}}=(0,f.A)(),{liveCodeBlock:{playgroundPosition:u}}=s,p=m(),d=null!==(o=null===(n=a.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,l.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,l.jsx)(b.Q,(t=h({code:null==c?void 0:c.replace(/\n$/,""),noInline:d,transformCode:null!=i?i:A,theme:p},a),r=r={children:"top"===u?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(x,{}),(0,l.jsx)(k,{})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(k,{}),(0,l.jsx)(x,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function E(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function N(e){var t,r;return(0,l.jsx)("button",(t=E({type:"button"},e),r=r={style:E({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let C=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:a},a,i);var _=r(12653),B=r(19934),T=r.n(B);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),I=RegExp("\\{(?<range>[\\d,-]+)\\}"),M={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},H=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},M),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),R=Object.keys(M);function z(e,t){let r=e.map(e=>{let{start:r,end:n}=H[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function U(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let c=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(m());return(0,l.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:c,className:(0,s.A)(o.className,"codeBlockContainer_jDV4",_.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let V={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function F({children:e,className:t}){return(0,l.jsx)(U,{as:"pre",tabIndex:0,className:(0,s.A)(V.codeBlockStandalone,"thin-scrollbar",t),children:(0,l.jsx)("code",{className:V.codeBlockLines,children:e})})}var G=r(2550);let $={attributes:!0,characterData:!0,childList:!0,subtree:!0};var W=r(27663);let q={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function Q(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function X({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var c,i;1===e.length&&"\n"===e[0].content&&(e[0].content="");let a=n({line:e,className:(0,s.A)(t,r&&q.codeLine)}),u=e.map((e,t)=>(0,l.jsx)("span",Q({},o({token:e})),t));return(0,l.jsxs)("span",(c=Q({},a),i=i={children:[r?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:q.codeLineNumber}),(0,l.jsx)("span",{className:q.codeLineContent,children:u})]}):u,(0,l.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(i)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(i)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(i,e))}),c))}var Z=r(936);function Y(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function J(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,a.useState)(!1),o=(0,a.useRef)(void 0),c=(0,a.useCallback)(()=>{(0,Z.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,a.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,l.jsx)("button",{type:"button","aria-label":r?(0,p.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,s.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:c,children:(0,l.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,l.jsx)(Y,{className:K.copyButtonIcon}),(0,l.jsx)(J,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,p.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,l.jsx)("button",{type:"button",onClick:t,className:(0,s.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,l.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:c}){var i,u,b,p;let{prism:{defaultLanguage:f,magicComments:d}}=(0,j.p)(),O=null==(u=null!==(i=null!=c?c:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==i?i:f)?void 0:u.toLowerCase(),y=m(),g=function(){let[e,t]=(0,a.useState)(!1),[r,n]=(0,a.useState)(!1),o=(0,a.useRef)(null),c=(0,a.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),i=(0,a.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,a.useState)(),o=(0,a.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,a.useEffect)(()=>{o()},[o]),function(e,t,r=$){let n=(0,G._q)(t),o=(0,G.Be)(r);(0,a.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,i),(0,a.useEffect)(()=>{i()},[e,i]),(0,a.useEffect)(()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)}),[i]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:c}}(),h=(null!==(p=null==r?void 0:null===(b=r.match(L))||void 0===b?void 0:b.groups.title)&&void 0!==p?p:"")||n,{lineClassNames:v,code:w}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:c}=t;if(c&&I.test(c)){let e=c.match(I).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${c}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(T()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return z(["js","jsBlock"],t);case"jsx":case"tsx":return z(["js","jsBlock","jsx"],t);case"html":return z(["js","jsBlock","html"],t);case"python":case"py":case"bash":return z(["bash"],t);case"markdown":case"md":return z(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return z(["tex"],t);case"lua":case"haskell":case"sql":return z(["lua"],t);case"wasm":return z(["wasm"],t);case"vb":case"vba":case"visual-basic":return z(["vb","rem"],t);case"vbnet":return z(["vbnet","rem"],t);case"batch":return z(["rem"],t);case"basic":return z(["rem","f90"],t);case"fsharp":return z(["js","ml"],t);case"ocaml":case"sml":return z(["ml"],t);case"fortran":return z(["f90"],t);case"cobol":return z(["cobol"],t);default:return z(R,t)}}(n,o),l=r.split("\n"),a=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),s=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),b=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<l.length;){let t=l[e].match(i);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);s[r]?a[s[r]].range+=`${e},`:u[r]?a[u[r]].start=e:b[r]&&(a[b[r]].range+=`${a[b[r]].start}-${e-1},`),l.splice(e,1)}r=l.join("\n");let p={};return Object.entries(a).forEach(([e,{range:t}])=>{T()(t).forEach(t=>{var r;null!==(r=p[t])&&void 0!==r||(p[t]=[]),p[t].push(e)})}),{lineClassNames:p,code:r}}(e,{metastring:r,language:O,magicComments:d}),P=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,l.jsxs)(U,{as:"div",className:(0,s.A)(t,O&&!t.includes(`language-${O}`)&&`language-${O}`),children:[h&&(0,l.jsx)("div",{className:V.codeBlockTitle,children:h}),(0,l.jsxs)("div",{className:V.codeBlockContent,children:[(0,l.jsx)(W.f4,{theme:y,code:w,language:null!=O?O:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,l.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,s.A)(e,V.codeBlock,"thin-scrollbar"),style:t,children:(0,l.jsx)("code",{className:(0,s.A)(V.codeBlockLines,P&&V.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,l.jsx)(X,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:P},t))})})}),(0,l.jsxs)("div",{className:V.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,l.jsx)(en,{className:V.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,l.jsx)(ee,{className:V.codeButton,code:w})]})]})]})}function ec(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let ei=(c=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let c=(0,u.A)(),i=a.Children.toArray(n).some(e=>(0,a.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,s="string"==typeof i?eo:F;return(0,l.jsx)(s,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(c))},function(e){return e.live?(0,l.jsx)(D,ec({scope:C},e)):(0,l.jsx)(c,ec({},e))});function el(e){return(0,l.jsx)(ei,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[18401],{65108:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,n.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}r(63696)},55640:(e,t,r)=>{r.d(t,{A:()=>N});var n,o,c=r(62540),i=r(63696),l=r(11750),a=r(81912),s=r(12653);let u={admonition:"admonition_o5H7",admonitionHeading:"admonitionHeading_FzoX",admonitionIcon:"admonitionIcon_rXq6",admonitionContent:"admonitionContent_Knsx"};function b({type:e,className:t,children:r}){return(0,c.jsx)("div",{className:(0,l.A)(s.G.common.admonition,s.G.common.admonitionType(e),u.admonition,t),children:r})}function p({icon:e,title:t}){return(0,c.jsxs)("div",{className:u.admonitionHeading,children:[(0,c.jsx)("span",{className:u.admonitionIcon,children:e}),t]})}function f({children:e}){return e?(0,c.jsx)("div",{className:u.admonitionContent,children:e}):null}function d(e){let{type:t,icon:r,title:n,children:o,className:i}=e;return(0,c.jsxs)(b,{type:t,className:i,children:[n||r?(0,c.jsx)(p,{title:n,icon:r}):null,(0,c.jsx)(f,{children:o})]})}let O={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function y(e){var t,r;return(0,c.jsx)(d,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},O,e),r=r={className:(0,l.A)("alert alert--secondary",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let j={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function m(e){var t,r;return(0,c.jsx)(d,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},j,e),r=r={className:(0,l.A)("alert alert--success",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var g=r(65108);let h={icon:(0,c.jsx)(g.A,{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function v(e){var t,r;return(0,c.jsx)(d,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},h,e),r=r={className:(0,l.A)("alert alert--info",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function w(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 16 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let P={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})},x={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})},S={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};function k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let A=k({},{note:y,tip:m,info:v,warning:function(e){var t,r;return(0,c.jsx)(d,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},P,e),r=r={className:(0,l.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},danger:function(e){var t,r;return(0,c.jsx)(d,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},x,e),r=r={className:(0,l.A)("alert alert--danger",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},{secondary:e=>(0,c.jsx)(y,k({title:"secondary"},e)),important:e=>(0,c.jsx)(v,k({title:"important"},e)),success:e=>(0,c.jsx)(m,k({title:"success"},e)),caution:function(e){var t,r;return(0,c.jsx)(d,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},S,e),r=r={className:(0,l.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}});var D=r(37425);let E=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},A),o=o={"my-custom-admonition":function(e){return(0,c.jsxs)("div",{style:{border:"solid red",padding:10},children:[(0,c.jsx)(D.A,{as:"h5",style:{color:"blue",fontSize:30},children:e.title}),(0,c.jsx)("div",{children:e.children})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function N(e){var t;let r=function(e){var t,r,n;let{mdxAdmonitionTitle:o,rest:l}=function(e){let t=i.Children.toArray(e),r=t.find(e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),n=t.filter(e=>e!==r);return{mdxAdmonitionTitle:null==r?void 0:r.props.children,rest:n.length>0?(0,c.jsx)(c.Fragment,{children:n}):null}}(e.children),a=null!==(t=e.title)&&void 0!==t?t:o;return r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e,a&&{title:a}),n=n={children:l},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}(e),n=E[t=r.type]||(console.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),E.info);return(0,c.jsx)(n,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r))}},18384:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(62540);r(63696);var o=r(11750),c=r(77458),i=r(12653),l=r(55640);function a({className:e}){return(0,n.jsx)(l.A,{type:"caution",title:(0,n.jsx)(c.Rc,{}),className:(0,o.A)(e,i.G.common.unlistedBanner),children:(0,n.jsx)(c.Uh,{})})}function s(e){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.AE,{}),(0,n.jsx)(a,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))]})}},49470:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(62540);r(63696);var o=r(11750),c=r(77458),i=r(12653),l=r(55640);function a({className:e}){return(0,n.jsx)(l.A,{type:"caution",title:(0,n.jsx)(c.Yh,{}),className:(0,o.A)(e,i.G.common.draftBanner),children:(0,n.jsx)(c.TT,{})})}var s=r(18384);function u({metadata:e}){let{unlisted:t,frontMatter:r}=e;return(0,n.jsxs)(n.Fragment,{children:[(t||r.unlisted)&&(0,n.jsx)(s.A,{}),r.draft&&(0,n.jsx)(a,{})]})}},23572:(e,t,r)=>{r.d(t,{A:()=>f});var n=r(62540),o=r(63696),c=r(11750),i=r(52711),l=r(10709),a=r(27720);let s={details:"details_Nokh",isBrowser:"isBrowser_QrB5",collapsibleContent:"collapsibleContent_EoA1"};function u(e){return!!e&&("SUMMARY"===e.tagName||u(e.parentElement))}function b(e){var t,r,{summary:b,children:p}=e,f=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["summary","children"]);(0,i.A)().collectAnchor(f.id);let d=(0,l.A)(),O=(0,o.useRef)(null),{collapsed:y,setCollapsed:j}=(0,a.u)({initialState:!f.open}),[m,g]=(0,o.useState)(f.open),h=o.isValidElement(b)?b:(0,n.jsx)("summary",{children:null!=b?b:"Details"});return(0,n.jsxs)("details",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},f),r=r={ref:O,open:m,"data-collapsed":y,className:(0,c.A)(s.details,d&&s.isBrowser,f.className),onMouseDown:e=>{u(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();let t=e.target;u(t)&&function e(t,r){return!!t&&(t===r||e(t.parentElement,r))}(t,O.current)&&(e.preventDefault(),y?(j(!1),g(!0)):j(!0))},children:[h,(0,n.jsx)(a.N,{lazy:!1,collapsed:y,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{j(e),g(!e)},children:(0,n.jsx)("div",{className:s.collapsibleContent,children:p})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function f(e){var t,r,o=p({},function(e){if(null==e)throw TypeError("Cannot destructure "+e);return e}(e));return(0,n.jsx)(b,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={className:(0,c.A)("alert alert--info","details_Cn_P",o.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},57145:(e,t,r)=>{r.d(t,{A:()=>O});var n=r(62540);r(63696);var o=r(11750),c=r(12653),i=r(46222),l=r(3107),a=r(36372),s=r(81912),u=r(27167);function b(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,n.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function p(){let e=(0,u.Ay)("/");return(0,n.jsx)("li",{className:"breadcrumbs__item",children:(0,n.jsx)(a.A,{"aria-label":(0,s.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,n.jsx)(b,{className:"breadcrumbHomeIcon_uaSn"})})})}function f({children:e,href:t,isLast:r}){let o="breadcrumbs__link";return r?(0,n.jsx)("span",{className:o,itemProp:"name",children:e}):t?(0,n.jsx)(a.A,{className:o,href:t,itemProp:"item",children:(0,n.jsx)("span",{itemProp:"name",children:e})}):(0,n.jsx)("span",{className:o,children:e})}function d({children:e,active:t,index:r,addMicrodata:c}){var i,l;return(0,n.jsxs)("li",(i=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},c&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"}),l=l={className:(0,o.A)("breadcrumbs__item",{"breadcrumbs__item--active":t}),children:[e,(0,n.jsx)("meta",{itemProp:"position",content:String(r+1)})]},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(l)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(l)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(l,e))}),i))}function O(){let e=(0,i.OF)(),t=(0,l.Dt)();return e?(0,n.jsx)("nav",{className:(0,o.A)(c.G.docs.docBreadcrumbs,"breadcrumbsContainer_Wvrh"),"aria-label":(0,s.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,n.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,n.jsx)(p,{}),e.map((t,r)=>{let o=r===e.length-1,c="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,n.jsx)(d,{active:o,index:r,addMicrodata:!!c,children:(0,n.jsx)(f,{href:c,isLast:o,children:t.label})},r)})]})}):null}},2277:(e,t,r)=>{r.r(t),r.d(t,{default:()=>_});var n=r(62540),o=r(63696),c=r(37554),i=r(2550);let l=o.createContext(null);function a({children:e,content:t}){let r=(0,o.useMemo)(()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,contentTitle:t.contentTitle,toc:t.toc}),[t]);return(0,n.jsx)(l.Provider,{value:r,children:e})}function s(){let e=(0,o.useContext)(l);if(null===e)throw new i.dV("DocProvider");return e}function u(){var e;let{metadata:t,frontMatter:r,assets:o}=s();return(0,n.jsx)(c.be,{title:t.title,description:t.description,keywords:r.keywords,image:null!==(e=o.image)&&void 0!==e?e:r.image})}var b=r(11750),p=r(85975),f=r(29157);function d(){let{metadata:e}=s();return(0,n.jsx)(f.A,{previous:e.previous,next:e.next})}var O=r(18496),y=r(19449),j=r(12653),m=r(48447),g=r(2604);function h(){let{metadata:e}=s(),{editUrl:t,lastUpdatedAt:r,lastUpdatedBy:o,tags:c}=e,i=c.length>0,l=!!(t||r||o);return i||l?(0,n.jsxs)("footer",{className:(0,b.A)(j.G.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,n.jsx)("div",{className:(0,b.A)("row margin-top--sm",j.G.docs.docFooterTagsRow),children:(0,n.jsx)("div",{className:"col",children:(0,n.jsx)(m.A,{tags:c})})}),l&&(0,n.jsx)(g.A,{className:(0,b.A)("margin-top--sm",j.G.docs.docFooterEditMetaRow),editUrl:t,lastUpdatedAt:r,lastUpdatedBy:o})]}):null}var v=r(25592);function w(){let{toc:e,frontMatter:t}=s();return(0,n.jsx)(v.A,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,b.A)(j.G.docs.docTocMobile,"tocMobile_NSfz")})}var P=r(67393);function x(){let{toc:e,frontMatter:t}=s();return(0,n.jsx)(P.A,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:j.G.docs.docTocDesktop})}var S=r(37425),k=r(76699);function A({children:e}){let t=function(){let{metadata:e,frontMatter:t,contentTitle:r}=s();return t.hide_title||void 0!==r?null:e.title}();return(0,n.jsxs)("div",{className:(0,b.A)(j.G.docs.docMarkdown,"markdown"),children:[t&&(0,n.jsx)("header",{children:(0,n.jsx)(S.A,{as:"h1",children:t})}),(0,n.jsx)(k.A,{children:e})]})}var D=r(57145),E=r(49470);let N={docItemContainer:"docItemContainer_RhpI",docItemCol:"docItemCol_n6xZ"};function C({children:e}){let t=function(){let{frontMatter:e,toc:t}=s(),r=(0,p.l)(),o=e.hide_table_of_contents,c=!o&&t.length>0;return{hidden:o,mobile:c?(0,n.jsx)(w,{}):void 0,desktop:c&&("desktop"===r||"ssr"===r)?(0,n.jsx)(x,{}):void 0}}(),{metadata:r}=s();return(0,n.jsxs)("div",{className:"row",children:[(0,n.jsxs)("div",{className:(0,b.A)("col",!t.hidden&&N.docItemCol),children:[(0,n.jsx)(E.A,{metadata:r}),(0,n.jsx)(O.A,{}),(0,n.jsxs)("div",{className:N.docItemContainer,children:[(0,n.jsxs)("article",{children:[(0,n.jsx)(D.A,{}),(0,n.jsx)(y.A,{}),t.mobile,(0,n.jsx)(A,{children:e}),(0,n.jsx)(h,{})]}),(0,n.jsx)(d,{})]})]}),t.desktop&&(0,n.jsx)("div",{className:"col col--3",children:t.desktop})]})}function _(e){let t=`docs-doc-id-${e.content.metadata.id}`,r=e.content;return(0,n.jsx)(a,{content:e.content,children:(0,n.jsxs)(c.e3,{className:t,children:[(0,n.jsx)(u,{}),(0,n.jsx)(C,{children:(0,n.jsx)(r,{})})]})})}},29157:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(81912),c=r(88524);function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function l(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function a(e){let{previous:t,next:r}=e;return(0,n.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,o.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,n.jsx)(c.A,l(i({},t),{subLabel:(0,n.jsx)(o.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})})),r&&(0,n.jsx)(c.A,l(i({},r),{subLabel:(0,n.jsx)(o.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0}))]})}},19449:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(12653),l=r(95851);function a({className:e}){let t=(0,l.r)();return t.badge?(0,n.jsx)("span",{className:(0,o.A)(e,i.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,n.jsx)(c.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:t.label},children:"Version: {versionLabel}"})}):null}},18496:(e,t,r)=>{r.d(t,{A:()=>y});var n=r(62540);r(63696);var o=r(11750),c=r(99468),i=r(36372),l=r(81912),a=r(69615),s=r(12653),u=r(78284),b=r(95851);let p={unreleased:function({siteTitle:e,versionMetadata:t}){return(0,n.jsx)(l.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:e,versionLabel:(0,n.jsx)("b",{children:t.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function({siteTitle:e,versionMetadata:t}){return(0,n.jsx)(l.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:e,versionLabel:(0,n.jsx)("b",{children:t.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function f(e){let t=p[e.versionMetadata.banner];return(0,n.jsx)(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}function d({versionLabel:e,to:t,onClick:r}){return(0,n.jsx)(l.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:e,latestVersionLink:(0,n.jsx)("b",{children:(0,n.jsx)(i.A,{to:t,onClick:r,children:(0,n.jsx)(l.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function O({className:e,versionMetadata:t}){let{siteConfig:{title:r}}=(0,c.A)(),{pluginId:i}=(0,a.vT)({failfast:!0}),{savePreferredVersionName:l}=(0,u.g1)(i),{latestDocSuggestion:b,latestVersionSuggestion:p}=(0,a.HW)(i),O=null!=b?b:p.docs.find(e=>e.id===p.mainDocId);return(0,n.jsxs)("div",{className:(0,o.A)(e,s.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,n.jsx)("div",{children:(0,n.jsx)(f,{siteTitle:r,versionMetadata:t})}),(0,n.jsx)("div",{className:"margin-top--md",children:(0,n.jsx)(d,{versionLabel:p.label,to:O.path,onClick:()=>l(p.name)})})]})}function y({className:e}){let t=(0,b.r)();return t.banner?(0,n.jsx)(O,{className:e,versionMetadata:t}):null}},2604:(e,t,r)=>{r.d(t,{A:()=>d});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(12653),l=r(36372);function a(e){var t,r,{className:c}=e,i=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["className"]);return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,o.A)("iconEdit_IMw_",c),"aria-hidden":"true"},i),r=r={children:(0,n.jsx)("g",{children:(0,n.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function s({editUrl:e}){return(0,n.jsxs)(l.A,{to:e,className:i.G.common.editThisPage,children:[(0,n.jsx)(a,{}),(0,n.jsx)(c.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=r(60908);function b({lastUpdatedAt:e}){let t=new Date(e),r=(0,u.i)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(t);return(0,n.jsx)(c.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,n.jsx)("b",{children:(0,n.jsx)("time",{dateTime:t.toISOString(),itemProp:"dateModified",children:r})})},children:" on {date}"})}function p({lastUpdatedBy:e}){return(0,n.jsx)(c.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,n.jsx)("b",{children:e})},children:" by {user}"})}function f({lastUpdatedAt:e,lastUpdatedBy:t}){return(0,n.jsxs)("span",{className:i.G.common.lastUpdated,children:[(0,n.jsx)(c.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,n.jsx)(b,{lastUpdatedAt:e}):"",byUser:t?(0,n.jsx)(p,{lastUpdatedBy:t}):""},children:"Last updated{atDate}{byUser}"}),!1]})}function d({className:e,editUrl:t,lastUpdatedAt:r,lastUpdatedBy:c}){return(0,n.jsxs)("div",{className:(0,o.A)("row",e),children:[(0,n.jsx)("div",{className:"col",children:t&&(0,n.jsx)(s,{editUrl:t})}),(0,n.jsx)("div",{className:(0,o.A)("col","lastUpdated_OHCJ"),children:(r||c)&&(0,n.jsx)(f,{lastUpdatedAt:r,lastUpdatedBy:c})})]})}},76699:(e,t,r)=>{r.d(t,{A:()=>B});var n,o,c=r(62540),i=r(63696),l=r(43023),a=r(93394),s=r(55887);function u(e){return(0,c.jsx)("code",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function p(e){return void 0!==e.children&&i.Children.toArray(e.children).every(e=>"string"==typeof e&&!e.includes("\n"))?(0,c.jsx)(u,b({},e)):(0,c.jsx)(s.A,b({},e))}var f=r(36372),d=r(23572);function O(e){var t,r;let n=i.Children.toArray(e.children),o=n.find(e=>i.isValidElement(e)&&"summary"===e.type),l=(0,c.jsx)(c.Fragment,{children:n.filter(e=>e!==o)});return(0,c.jsx)(d.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={summary:o,children:l},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var y=r(37425);function j(e){return(0,c.jsx)(y.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}var m=r(11750);let g={containsTaskList:"containsTaskList_k9gM"};var h=r(52711),v=r(55640),w=r(43758),P=r(1495),x=r(25436),S=r(66659),k=r(7293);async function A({id:e,text:t,config:r}){k.A.mermaidAPI.initialize(r);try{return await k.A.render(e,t)}catch(t){var n;throw null===(n=document.querySelector(`#d${e}`))||void 0===n||n.remove(),t}}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function E({renderResult:e}){let t=(0,i.useRef)(null);return(0,i.useEffect)(()=>{var r;let n=t.current;null===(r=e.bindFunctions)||void 0===r||r.call(e,n)},[e]),(0,c.jsx)("div",{ref:t,className:"docusaurus-mermaid-container container_RUsj",dangerouslySetInnerHTML:{__html:e.svg}})}function N({value:e}){let t=function({text:e,config:t}){let[r,n]=(0,i.useState)(null),o=(0,i.useRef)(`mermaid-svg-${Math.round(1e7*Math.random())}`).current,c=function(){let{colorMode:e}=(0,S.G)(),t=(0,x.p)().mermaid,r=t.theme[e],{options:n}=t;return(0,i.useMemo)(()=>{var e,t;return e=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({startOnLoad:!1},n),t=t={theme:r},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e},[r,n])}(),l=null!=t?t:c;return(0,i.useEffect)(()=>{A({id:o,text:e,config:l}).then(n).catch(e=>{n(()=>{throw e})})},[o,e,l]),r}({text:e});return null===t?null:(0,c.jsx)(E,{renderResult:t})}function C(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let _=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},{Head:a.A,details:O,Details:O,code:p,a:function(e){return(0,c.jsx)(f.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},pre:function(e){return(0,c.jsx)(c.Fragment,{children:e.children})},ul:function(e){var t,r;return(0,c.jsx)("ul",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={className:function(e){if(void 0!==e)return(0,m.A)(e,(null==e?void 0:e.includes("contains-task-list"))&&g.containsTaskList)}(e.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},li:function(e){return(0,h.A)().collectAnchor(e.id),(0,c.jsx)("li",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},img:function(e){var t,r,n;return(0,c.jsx)("img",(r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({decoding:"async",loading:"lazy"},e),n=n={className:(t=e.className,(0,m.A)(t,"img_vXGZ"))},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r))},h1:e=>(0,c.jsx)(j,C({as:"h1"},e)),h2:e=>(0,c.jsx)(j,C({as:"h2"},e)),h3:e=>(0,c.jsx)(j,C({as:"h3"},e)),h4:e=>(0,c.jsx)(j,C({as:"h4"},e)),h5:e=>(0,c.jsx)(j,C({as:"h5"},e)),h6:e=>(0,c.jsx)(j,C({as:"h6"},e)),admonition:v.A,mermaid:function(e){return(0,c.jsx)(w.A,{fallback:e=>(0,c.jsx)(P.MN,D({},e)),children:(0,c.jsx)(N,D({},e))})}}),o=o={Code:p,Highlight:function({children:e,color:t}){return(0,c.jsx)("span",{style:{backgroundColor:t,borderRadius:"2px",color:"#fff",padding:"0.2rem"},children:e})},TweetQuote:function({url:e,handle:t,name:r,job:n,children:o}){let i=`https://unavatar.io/x/${t}`,l=`https://x.com/${t}`;return(0,c.jsxs)("figure",{className:"tweetQuote_h8Rz",children:[(0,c.jsx)("blockquote",{children:(0,c.jsx)(f.A,{to:e,children:o})}),(0,c.jsx)("figcaption",{children:(0,c.jsx)(f.A,{to:l,rel:"nofollow",children:(0,c.jsxs)("div",{className:"avatar",children:[(0,c.jsx)("img",{alt:r,className:(0,m.A)("avatar__photo","avatarImg_b51M"),src:i}),(0,c.jsxs)("div",{className:(0,m.A)("avatar__intro"),children:[(0,c.jsx)("strong",{className:"avatar__name",children:(0,c.jsx)("cite",{children:r})}),(0,c.jsx)("small",{className:"avatar__subtitle",itemProp:"description",children:n})]})]})})})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function B({children:e}){return(0,c.jsx)(l.x,{components:_,children:e})}},88524:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(11750),c=r(36372);function i(e){let{permalink:t,title:r,subLabel:i,isNext:l}=e;return(0,n.jsxs)(c.A,{className:(0,o.A)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[i&&(0,n.jsx)("div",{className:"pagination-nav__sublabel",children:i}),(0,n.jsx)("div",{className:"pagination-nav__label",children:r})]})}},67393:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(11750),c=r(46733);function i(e){var t,r,{className:i}=e,l=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["className"]);return(0,n.jsx)("div",{className:(0,o.A)("tableOfContents_RLlU","thin-scrollbar",i),children:(0,n.jsx)(c.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},l),r=r={linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}},25592:(e,t,r)=>{r.d(t,{A:()=>b});var n=r(62540);r(63696);var o=r(11750),c=r(27720),i=r(46733),l=r(81912);let a={tocCollapsibleButton:"tocCollapsibleButton_IbtT",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_Nor3"};function s(e){var t,r,{collapsed:c}=e,i=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["collapsed"]);return(0,n.jsx)("button",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({type:"button"},i),r=r={className:(0,o.A)("clean-btn",a.tocCollapsibleButton,!c&&a.tocCollapsibleButtonExpanded,i.className),children:(0,n.jsx)(l.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let u={tocCollapsible:"tocCollapsible_BEWm",tocCollapsibleContent:"tocCollapsibleContent_FG8F",tocCollapsibleExpanded:"tocCollapsibleExpanded_FzA_"};function b({toc:e,className:t,minHeadingLevel:r,maxHeadingLevel:l}){let{collapsed:a,toggleCollapsed:b}=(0,c.u)({initialState:!0});return(0,n.jsxs)("div",{className:(0,o.A)(u.tocCollapsible,!a&&u.tocCollapsibleExpanded,t),children:[(0,n.jsx)(s,{collapsed:a,onClick:b}),(0,n.jsx)(c.N,{lazy:!0,className:u.tocCollapsibleContent,collapsed:a,children:(0,n.jsx)(i.A,{toc:e,minHeadingLevel:r,maxHeadingLevel:l})})]})}},46733:(e,t,r)=>{r.d(t,{A:()=>b});var n=r(62540),o=r(63696),c=r(25436);function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function l(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function a(e){let t=e.getBoundingClientRect();return t.top===t.bottom?a(e.parentNode):t}var s=r(36372);let u=o.memo(function e({toc:t,className:r,linkClassName:o,isChild:c}){return t.length?(0,n.jsx)("ul",{className:c?void 0:r,children:t.map(t=>(0,n.jsxs)("li",{children:[(0,n.jsx)(s.A,{to:`#${t.id}`,className:null!=o?o:void 0,dangerouslySetInnerHTML:{__html:t.value}}),(0,n.jsx)(e,{isChild:!0,toc:t.children,className:r,linkClassName:o})]},t.id))}):null});function b(e){var{toc:t,className:r="table-of-contents table-of-contents__left-border",linkClassName:s="table-of-contents__link",linkActiveClassName:b,minHeadingLevel:p,maxHeadingLevel:f}=e,d=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["toc","className","linkClassName","linkActiveClassName","minHeadingLevel","maxHeadingLevel"]);let O=(0,c.p)(),y=null!=p?p:O.tableOfContents.minHeadingLevel,j=null!=f?f:O.tableOfContents.maxHeadingLevel,m=function({toc:e,minHeadingLevel:t,maxHeadingLevel:r}){return(0,o.useMemo)(()=>(function e({toc:t,minHeadingLevel:r,maxHeadingLevel:n}){return t.flatMap(t=>{let o=e({toc:t.children,minHeadingLevel:r,maxHeadingLevel:n});return t.level>=r&&t.level<=n?[l(i({},t),{children:o})]:o})})({toc:function(e){let t=e.map(e=>l(i({},e),{parentIndex:-1,children:[]})),r=Array(7).fill(-1);t.forEach((e,t)=>{let n=r.slice(2,e.level);e.parentIndex=Math.max(...n),r[e.level]=t});let n=[];return t.forEach(e=>{let{parentIndex:r}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["parentIndex"]);r>=0?t[r].children.push(o):n.push(o)}),n}(e),minHeadingLevel:t,maxHeadingLevel:r}),[e,t,r])}({toc:t,minHeadingLevel:y,maxHeadingLevel:j});return!function(e){let t=(0,o.useRef)(void 0),r=function(){let e=(0,o.useRef)(0),{navbar:{hideOnScroll:t}}=(0,c.p)();return(0,o.useEffect)(()=>{e.current=t?0:document.querySelector(".navbar").clientHeight},[t]),e}();(0,o.useEffect)(()=>{if(!e)return()=>{};let{linkClassName:n,linkActiveClassName:o,minHeadingLevel:c,maxHeadingLevel:i}=e;function l(){let e=Array.from(document.getElementsByClassName(n)),l=function(e,{anchorTopOffset:t}){var r,n,o;let c=e.find(e=>a(e).top>=t);return c?(o=a(c)).top>0&&o.bottom<window.innerHeight/2?c:null!==(r=e[e.indexOf(c)-1])&&void 0!==r?r:null:null!==(n=e[e.length-1])&&void 0!==n?n:null}(function({minHeadingLevel:e,maxHeadingLevel:t}){let r=[];for(let n=e;n<=t;n+=1)r.push(`h${n}.anchor`);return Array.from(document.querySelectorAll(r.join()))}({minHeadingLevel:c,maxHeadingLevel:i}),{anchorTopOffset:r.current}),s=e.find(e=>l&&l.id===decodeURIComponent(e.href.substring(e.href.indexOf("#")+1)));e.forEach(e=>{e===s?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)})}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}},[e,r])}((0,o.useMemo)(()=>{if(s&&b)return{linkClassName:s,linkActiveClassName:b,minHeadingLevel:y,maxHeadingLevel:j}},[s,b,y,j])),(0,n.jsx)(u,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({toc:m,className:r,linkClassName:s},d))}},82499:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(11750),c=r(36372);let i={tag:"tag_Nd8t",tagRegular:"tagRegular_TiLs",tagWithCount:"tagWithCount_AQg7"};function l({permalink:e,label:t,count:r,description:l}){return(0,n.jsxs)(c.A,{href:e,title:l,className:(0,o.A)(i.tag,r?i.tagWithCount:i.tagRegular),children:[t,r&&(0,n.jsx)("span",{children:r})]})}},48447:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(82499);function l({tags:e}){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("b",{children:(0,n.jsx)(c.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,n.jsx)("ul",{className:(0,o.A)("tags_rTaS","padding--none","margin-left--sm"),children:e.map(e=>(0,n.jsx)("li",{className:"tag_l5va",children:(0,n.jsx)(i.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},e.permalink))})]})}},77458:(e,t,r)=>{r.d(t,{AE:()=>a,Rc:()=>i,TT:()=>u,Uh:()=>l,Yh:()=>s});var n=r(62540);r(63696);var o=r(81912),c=r(93394);function i(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function a(){return(0,n.jsx)(c.A,{children:(0,n.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function s(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function u(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}},60908:(e,t,r)=>{r.d(t,{i:()=>o});var n=r(99468);function o(e={}){let{i18n:{currentLocale:t}}=(0,n.A)(),r=function(){let{i18n:{currentLocale:e,localeConfigs:t}}=(0,n.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({calendar:r},e))}},40576:(e,t,r)=>{r.d(t,{A:()=>c});var n=r(62540);r(63696);var o=r(10709);function c({children:e,fallback:t}){return(0,o.A)()?(0,n.jsx)(n.Fragment,{children:null==e?void 0:e()}):null!=t?t:null}},55887:(e,t,r)=>{r.d(t,{A:()=>el});var n,o,c,i={};r.r(i),r.d(i,{ButtonExample:()=>N});var l=r(62540),a=r(63696),s=r(11750),u=r(10709),b=r(55152),p=r(81912),f=r(99468),d=r(40576),O=r(1495),y=r(66659),j=r(25436);function m(){let{prism:e}=(0,j.p)(),{colorMode:t}=(0,y.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var g=r(43758);function h(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,l.jsx)("div",{className:(0,s.A)("playgroundHeader_Tvsk"),children:e})}function w(){return(0,l.jsx)("div",{children:"Loading..."})}function P(){return(0,l.jsx)(d.A,{fallback:(0,l.jsx)(w,{}),children:()=>(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(g.A,{fallback:e=>(0,l.jsx)(O.MN,h({},e)),children:(0,l.jsx)(b.pA,{})}),(0,l.jsx)(b.p1,{})]})})}function x(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(p.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,l.jsx)("div",{className:"playgroundPreview_mApW",children:(0,l.jsx)(P,{})})]})}function S(){let e=(0,u.A)();return(0,l.jsx)(b.w,{className:"playgroundEditor_TySg"},String(e))}function k(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(p.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,l.jsx)(S,{})]})}let A=e=>`${e};`;function D(e){var t,r,n,o,{children:c,transformCode:i}=e,a=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:s}}=(0,f.A)(),{liveCodeBlock:{playgroundPosition:u}}=s,p=m(),d=null!==(o=null===(n=a.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,l.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,l.jsx)(b.Q,(t=h({code:null==c?void 0:c.replace(/\n$/,""),noInline:d,transformCode:null!=i?i:A,theme:p},a),r=r={children:"top"===u?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(x,{}),(0,l.jsx)(k,{})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(k,{}),(0,l.jsx)(x,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function E(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function N(e){var t,r;return(0,l.jsx)("button",(t=E({type:"button"},e),r=r={style:E({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let C=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:a},a,i);var _=r(12653),B=r(19934),T=r.n(B);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),I=RegExp("\\{(?<range>[\\d,-]+)\\}"),M={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},H=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},M),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),R=Object.keys(M);function z(e,t){let r=e.map(e=>{let{start:r,end:n}=H[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function U(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let c=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(m());return(0,l.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:c,className:(0,s.A)(o.className,"codeBlockContainer_jDV4",_.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let V={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function F({children:e,className:t}){return(0,l.jsx)(U,{as:"pre",tabIndex:0,className:(0,s.A)(V.codeBlockStandalone,"thin-scrollbar",t),children:(0,l.jsx)("code",{className:V.codeBlockLines,children:e})})}var G=r(2550);let $={attributes:!0,characterData:!0,childList:!0,subtree:!0};var W=r(27663);let q={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function Q(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function X({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var c,i;1===e.length&&"\n"===e[0].content&&(e[0].content="");let a=n({line:e,className:(0,s.A)(t,r&&q.codeLine)}),u=e.map((e,t)=>(0,l.jsx)("span",Q({},o({token:e})),t));return(0,l.jsxs)("span",(c=Q({},a),i=i={children:[r?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:q.codeLineNumber}),(0,l.jsx)("span",{className:q.codeLineContent,children:u})]}):u,(0,l.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(i)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(i)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(i,e))}),c))}var Z=r(936);function Y(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function J(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,a.useState)(!1),o=(0,a.useRef)(void 0),c=(0,a.useCallback)(()=>{(0,Z.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,a.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,l.jsx)("button",{type:"button","aria-label":r?(0,p.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,s.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:c,children:(0,l.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,l.jsx)(Y,{className:K.copyButtonIcon}),(0,l.jsx)(J,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,p.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,l.jsx)("button",{type:"button",onClick:t,className:(0,s.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,l.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:c}){var i,u,b,p;let{prism:{defaultLanguage:f,magicComments:d}}=(0,j.p)(),O=null==(u=null!==(i=null!=c?c:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==i?i:f)?void 0:u.toLowerCase(),y=m(),g=function(){let[e,t]=(0,a.useState)(!1),[r,n]=(0,a.useState)(!1),o=(0,a.useRef)(null),c=(0,a.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),i=(0,a.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,a.useState)(),o=(0,a.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,a.useEffect)(()=>{o()},[o]),function(e,t,r=$){let n=(0,G._q)(t),o=(0,G.Be)(r);(0,a.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,i),(0,a.useEffect)(()=>{i()},[e,i]),(0,a.useEffect)(()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)}),[i]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:c}}(),h=(null!==(p=null==r?void 0:null===(b=r.match(L))||void 0===b?void 0:b.groups.title)&&void 0!==p?p:"")||n,{lineClassNames:v,code:w}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:c}=t;if(c&&I.test(c)){let e=c.match(I).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${c}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(T()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return z(["js","jsBlock"],t);case"jsx":case"tsx":return z(["js","jsBlock","jsx"],t);case"html":return z(["js","jsBlock","html"],t);case"python":case"py":case"bash":return z(["bash"],t);case"markdown":case"md":return z(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return z(["tex"],t);case"lua":case"haskell":case"sql":return z(["lua"],t);case"wasm":return z(["wasm"],t);case"vb":case"vba":case"visual-basic":return z(["vb","rem"],t);case"vbnet":return z(["vbnet","rem"],t);case"batch":return z(["rem"],t);case"basic":return z(["rem","f90"],t);case"fsharp":return z(["js","ml"],t);case"ocaml":case"sml":return z(["ml"],t);case"fortran":return z(["f90"],t);case"cobol":return z(["cobol"],t);default:return z(R,t)}}(n,o),l=r.split("\n"),a=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),s=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),b=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<l.length;){let t=l[e].match(i);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);s[r]?a[s[r]].range+=`${e},`:u[r]?a[u[r]].start=e:b[r]&&(a[b[r]].range+=`${a[b[r]].start}-${e-1},`),l.splice(e,1)}r=l.join("\n");let p={};return Object.entries(a).forEach(([e,{range:t}])=>{T()(t).forEach(t=>{var r;null!==(r=p[t])&&void 0!==r||(p[t]=[]),p[t].push(e)})}),{lineClassNames:p,code:r}}(e,{metastring:r,language:O,magicComments:d}),P=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,l.jsxs)(U,{as:"div",className:(0,s.A)(t,O&&!t.includes(`language-${O}`)&&`language-${O}`),children:[h&&(0,l.jsx)("div",{className:V.codeBlockTitle,children:h}),(0,l.jsxs)("div",{className:V.codeBlockContent,children:[(0,l.jsx)(W.f4,{theme:y,code:w,language:null!=O?O:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,l.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,s.A)(e,V.codeBlock,"thin-scrollbar"),style:t,children:(0,l.jsx)("code",{className:(0,s.A)(V.codeBlockLines,P&&V.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,l.jsx)(X,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:P},t))})})}),(0,l.jsxs)("div",{className:V.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,l.jsx)(en,{className:V.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,l.jsx)(ee,{className:V.codeButton,code:w})]})]})]})}function ec(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let ei=(c=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let c=(0,u.A)(),i=a.Children.toArray(n).some(e=>(0,a.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,s="string"==typeof i?eo:F;return(0,l.jsx)(s,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(c))},function(e){return e.live?(0,l.jsx)(D,ec({scope:C},e)):(0,l.jsx)(c,ec({},e))});function el(e){return(0,l.jsx)(ei,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}}}]); \ No newline at end of file diff --git a/assets/js/17e8a747.4bd64e34.js b/assets/js/17e8a747.bdec774a.js similarity index 67% rename from assets/js/17e8a747.4bd64e34.js rename to assets/js/17e8a747.bdec774a.js index 7d7d1b0750..6f66406c74 100644 --- a/assets/js/17e8a747.4bd64e34.js +++ b/assets/js/17e8a747.bdec774a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[48659],{15995:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var l=r(11750);function a({children:e,hidden:t,className:r}){return(0,n.jsx)("div",{role:"tabpanel",className:(0,l.A)("tabItem_pnkT",r),hidden:t,children:e})}},27446:(e,t,r)=>{r.d(t,{A:()=>m});var n=r(62540),l=r(63696),a=r(11750),o=r(7846),s=r(49519),i=r(96439),c=r(19739),u=r(66904),d=r(79244);function y(e){var t,r;return null!==(r=null===(t=l.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,l.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==r?r:[]}function v({value:e,tabValues:t}){return t.some(t=>t.value===e)}var g=r(10709);function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function p(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function h({className:e,block:t,selectedValue:r,selectValue:l,tabValues:s}){let i=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.a_)(),u=e=>{let t=e.currentTarget,n=s[i.indexOf(t)].value;n!==r&&(c(t),l(n))},d=e=>{var t,r;let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let r=i.indexOf(e.currentTarget)+1;n=null!==(t=i[r])&&void 0!==t?t:i[0];break}case"ArrowLeft":{let t=i.indexOf(e.currentTarget)-1;n=null!==(r=i[t])&&void 0!==r?r:i[i.length-1]}}null==n||n.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.A)("tabs",{"tabs--block":t},e),children:s.map(({value:e,label:t,attributes:l})=>(0,n.jsx)("li",p(b({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,ref:e=>i.push(e),onKeyDown:d,onClick:u},l),{className:(0,a.A)("tabs__item","tabItem_AQgk",null==l?void 0:l.className,{"tabs__item--active":r===e}),children:null!=t?t:e}),e))})}function x({lazy:e,children:t,selectedValue:r}){let o=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=o.find(e=>e.props.value===r);return e?(0,l.cloneElement)(e,{className:(0,a.A)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:o.map((e,t)=>(0,l.cloneElement)(e,{key:t,hidden:e.props.value!==r}))})}function f(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:n}=e,a=function(e){let{values:t,children:r}=e;return(0,l.useMemo)(()=>{let e=null!=t?t:y(r).map(({props:{value:e,label:t,attributes:r,default:n}})=>({value:e,label:t,attributes:r,default:n}));return!function(e){let t=(0,u.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,r])}(e),[o,g]=(0,l.useState)(()=>(function({defaultValue:e,tabValues:t}){var r;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!v({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let n=null!==(r=t.find(e=>e.default))&&void 0!==r?r:t[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:t,tabValues:a})),[b,p]=function({queryString:e=!1,groupId:t}){let r=(0,s.W6)(),n=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,c.aZ)(n),(0,l.useCallback)(e=>{var t,l;if(!n)return;let a=new URLSearchParams(r.location.search);a.set(n,e),r.replace((t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r.location),l=l={search:a.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(l)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(l)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(l,e))}),t))},[n,r])]}({queryString:r,groupId:n}),[h,x]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[r,n]=(0,d.Dv)(t);return[r,(0,l.useCallback)(e=>{t&&n.set(e)},[t,n])]}({groupId:n}),f=(()=>{let e=null!=b?b:h;return v({value:e,tabValues:a})?e:null})();return(0,i.A)(()=>{f&&g(f)},[f]),{selectedValue:o,selectValue:(0,l.useCallback)(e=>{if(!v({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);g(e),p(e),x(e)},[p,x,a]),tabValues:a}}(e);return(0,n.jsxs)("div",{className:(0,a.A)("tabs-container","tabList_Qoir"),children:[(0,n.jsx)(h,b({},t,e)),(0,n.jsx)(x,b({},t,e))]})}function m(e){let t=(0,g.A)();return(0,n.jsx)(f,p(b({},e),{children:y(e.children)}),String(t))}},70361:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(62540);r(63696);var l=r(11750);let a="dot_giz1",o="bar_rrRL";function s({children:e,minHeight:t,url:r="http://localhost:3000",style:s,bodyStyle:i}){var c,u;return(0,n.jsxs)("div",{className:"browserWindow_my1Q",style:(c=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},s),u=u={minHeight:t},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(u)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(u)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(u,e))}),c),children:[(0,n.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,n.jsxs)("div",{className:"buttons_uHc7",children:[(0,n.jsx)("span",{className:a,style:{background:"#f25f58"}}),(0,n.jsx)("span",{className:a,style:{background:"#fbbe3c"}}),(0,n.jsx)("span",{className:a,style:{background:"#58cb42"}})]}),(0,n.jsx)("div",{className:(0,l.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:r}),(0,n.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:o}),(0,n.jsx)("span",{className:o}),(0,n.jsx)("span",{className:o})]})})]}),(0,n.jsx)("div",{className:"browserWindowBody_Idgs",style:i,children:e})]})}},66510:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>u,default:()=>b,frontMatter:()=>c,isMacOS:()=>y,metadata:()=>n,toc:()=>v});let n=JSON.parse('{"type":"mdx","permalink":"/tests/pages/tabs-tests","source":"@site/_dogfooding/_pages tests/tabs-tests.mdx","title":"Tabs tests","description":"Tabs with dynamic default value","frontMatter":{},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/tabs-tests.mdx","unlisted":false}');var l=r(62540),a=r(43023),o=r(70361),s=r(27446),i=r(15995);let c={},u="Tabs tests",d={},y="undefined"!=typeof window&&navigator.platform.startsWith("Mac"),v=[{value:"Tabs with dynamic default value",id:"tabs-with-dynamic-default-value",level:2},{value:"Tabs sync with different heights",id:"tabs-sync-with-different-heights",level:2},{value:"Tabs with className and lazy loading",id:"tabs-with-classname-and-lazy-loading",level:2}];function g(e){let t={a:"a",h1:"h1",h2:"h2",header:"header",p:"p",...(0,a.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(t.header,{children:(0,l.jsx)(t.h1,{id:"tabs-tests",children:"Tabs tests"})}),"\n","\n",(0,l.jsx)(t.h2,{id:"tabs-with-dynamic-default-value",children:"Tabs with dynamic default value"}),"\n",(0,l.jsxs)(t.p,{children:["This can cause ",(0,l.jsx)(t.a,{href:"https://github.com/facebook/react-native-website/issues/2771",children:"bugs"})," when default value is different between SSR and client:"]}),"\n","\n",(0,l.jsx)(o.A,{children:(0,l.jsxs)(s.A,{defaultValue:y?"ios":"android",children:[(0,l.jsx)(i.A,{value:"android",label:"Android",children:"Android content"}),(0,l.jsx)(i.A,{value:"ios",label:"iOS",children:"iOS content"})]})}),"\n",(0,l.jsx)(t.h2,{id:"tabs-sync-with-different-heights",children:"Tabs sync with different heights"}),"\n",(0,l.jsxs)(s.A,{groupId:"operating-systems",children:[(0,l.jsx)(i.A,{value:"win",label:"Windows",children:(0,l.jsx)(t.p,{children:"Use Ctrl + C to copy."})}),(0,l.jsx)(i.A,{value:"mac",label:"macOS",children:(0,l.jsx)(t.p,{children:"very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text"})})]}),"\n",(0,l.jsxs)(s.A,{groupId:"operating-systems",children:[(0,l.jsx)(i.A,{value:"win",label:"Windows",children:(0,l.jsx)(t.p,{children:"Use Ctrl + V to paste."})}),(0,l.jsx)(i.A,{value:"mac",label:"macOS",children:(0,l.jsx)(t.p,{children:"Use Command + V to paste."})})]}),"\n",(0,l.jsx)(t.p,{children:"When clicking tabs above, they should stay under cursor and we should adjust the scroll position."}),"\n",(0,l.jsx)(t.h2,{id:"tabs-with-classname-and-lazy-loading",children:"Tabs with className and lazy loading"}),"\n",(0,l.jsxs)(s.A,{lazy:!0,children:[(0,l.jsx)(i.A,{value:"apple",label:"Apple",className:"alert alert--primary",default:!0,children:(0,l.jsx)(t.p,{children:"This is an apple \u{1F34E}"})}),(0,l.jsx)(i.A,{value:"orange",label:"Orange",className:"alert alert--secondary",children:(0,l.jsx)(t.p,{children:"This is an orange \u{1F34A}"})}),(0,l.jsx)(i.A,{value:"banana",label:"Banana",className:"alert alert--success",children:(0,l.jsx)(t.p,{children:"This is a banana \u{1F34C}"})})]})]})}function b(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,l.jsx)(t,{...e,children:(0,l.jsx)(g,{...e})}):g(e)}},43023:(e,t,r)=>{r.d(t,{R:()=>o,x:()=>s});var n=r(63696);let l={},a=n.createContext(l);function o(e){let t=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[48659],{15995:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var l=r(11750);function a({children:e,hidden:t,className:r}){return(0,n.jsx)("div",{role:"tabpanel",className:(0,l.A)("tabItem_pnkT",r),hidden:t,children:e})}},27446:(e,t,r)=>{r.d(t,{A:()=>m});var n=r(62540),l=r(63696),a=r(11750),o=r(7846),s=r(49519),i=r(96439),c=r(19739),u=r(66904),d=r(79244);function y(e){var t,r;return null!==(r=null===(t=l.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,l.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==r?r:[]}function v({value:e,tabValues:t}){return t.some(t=>t.value===e)}var b=r(10709);function g(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function p(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function h({className:e,block:t,selectedValue:r,selectValue:l,tabValues:s}){let i=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.a_)(),u=e=>{let t=e.currentTarget,n=s[i.indexOf(t)].value;n!==r&&(c(t),l(n))},d=e=>{var t,r;let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let r=i.indexOf(e.currentTarget)+1;n=null!==(t=i[r])&&void 0!==t?t:i[0];break}case"ArrowLeft":{let t=i.indexOf(e.currentTarget)-1;n=null!==(r=i[t])&&void 0!==r?r:i[i.length-1]}}null==n||n.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.A)("tabs",{"tabs--block":t},e),children:s.map(({value:e,label:t,attributes:l})=>(0,n.jsx)("li",p(g({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,ref:e=>i.push(e),onKeyDown:d,onClick:u},l),{className:(0,a.A)("tabs__item","tabItem_AQgk",null==l?void 0:l.className,{"tabs__item--active":r===e}),children:null!=t?t:e}),e))})}function x({lazy:e,children:t,selectedValue:r}){let o=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=o.find(e=>e.props.value===r);return e?(0,l.cloneElement)(e,{className:(0,a.A)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:o.map((e,t)=>(0,l.cloneElement)(e,{key:t,hidden:e.props.value!==r}))})}function f(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:n}=e,a=function(e){let{values:t,children:r}=e;return(0,l.useMemo)(()=>{let e=null!=t?t:y(r).map(({props:{value:e,label:t,attributes:r,default:n}})=>({value:e,label:t,attributes:r,default:n}));return!function(e){let t=(0,u.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,r])}(e),[o,b]=(0,l.useState)(()=>(function({defaultValue:e,tabValues:t}){var r;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!v({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let n=null!==(r=t.find(e=>e.default))&&void 0!==r?r:t[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:t,tabValues:a})),[g,p]=function({queryString:e=!1,groupId:t}){let r=(0,s.W6)(),n=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,c.aZ)(n),(0,l.useCallback)(e=>{var t,l;if(!n)return;let a=new URLSearchParams(r.location.search);a.set(n,e),r.replace((t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r.location),l=l={search:a.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(l)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(l)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(l,e))}),t))},[n,r])]}({queryString:r,groupId:n}),[h,x]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[r,n]=(0,d.Dv)(t);return[r,(0,l.useCallback)(e=>{t&&n.set(e)},[t,n])]}({groupId:n}),f=(()=>{let e=null!=g?g:h;return v({value:e,tabValues:a})?e:null})();return(0,i.A)(()=>{f&&b(f)},[f]),{selectedValue:o,selectValue:(0,l.useCallback)(e=>{if(!v({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);b(e),p(e),x(e)},[p,x,a]),tabValues:a}}(e);return(0,n.jsxs)("div",{className:(0,a.A)("tabs-container","tabList_Qoir"),children:[(0,n.jsx)(h,g({},t,e)),(0,n.jsx)(x,g({},t,e))]})}function m(e){let t=(0,b.A)();return(0,n.jsx)(f,p(g({},e),{children:y(e.children)}),String(t))}},70361:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(62540);r(63696);var l=r(11750);let a="dot_giz1",o="bar_rrRL";function s({children:e,minHeight:t,url:r="http://localhost:3000",style:s,bodyStyle:i}){var c,u;return(0,n.jsxs)("div",{className:"browserWindow_my1Q",style:(c=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},s),u=u={minHeight:t},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(u)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(u)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(u,e))}),c),children:[(0,n.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,n.jsxs)("div",{className:"buttons_uHc7",children:[(0,n.jsx)("span",{className:a,style:{background:"#f25f58"}}),(0,n.jsx)("span",{className:a,style:{background:"#fbbe3c"}}),(0,n.jsx)("span",{className:a,style:{background:"#58cb42"}})]}),(0,n.jsx)("div",{className:(0,l.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:r}),(0,n.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:o}),(0,n.jsx)("span",{className:o}),(0,n.jsx)("span",{className:o})]})})]}),(0,n.jsx)("div",{className:"browserWindowBody_Idgs",style:i,children:e})]})}},66510:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>u,default:()=>g,frontMatter:()=>c,isMacOS:()=>y,metadata:()=>n,toc:()=>v});let n=JSON.parse('{"type":"mdx","permalink":"/tests/pages/tabs-tests","source":"@site/_dogfooding/_pages tests/tabs-tests.mdx","title":"Tabs tests","description":"Tabs with dynamic default value","frontMatter":{},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/tabs-tests.mdx","unlisted":false}');var l=r(62540),a=r(43023),o=r(70361),s=r(27446),i=r(15995);let c={},u="Tabs tests",d={},y="undefined"!=typeof window&&navigator.platform.startsWith("Mac"),v=[{value:"Tabs with dynamic default value",id:"tabs-with-dynamic-default-value",level:2},{value:"Tabs sync with different heights",id:"tabs-sync-with-different-heights",level:2},{value:"Tabs with className and lazy loading",id:"tabs-with-classname-and-lazy-loading",level:2}];function b(e){let t={a:"a",h1:"h1",h2:"h2",header:"header",p:"p",...(0,a.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(t.header,{children:(0,l.jsx)(t.h1,{id:"tabs-tests",children:"Tabs tests"})}),"\n","\n",(0,l.jsx)(t.h2,{id:"tabs-with-dynamic-default-value",children:"Tabs with dynamic default value"}),"\n",(0,l.jsxs)(t.p,{children:["This can cause ",(0,l.jsx)(t.a,{href:"https://github.com/facebook/react-native-website/issues/2771",children:"bugs"})," when default value is different between SSR and client:"]}),"\n","\n",(0,l.jsx)(o.A,{children:(0,l.jsxs)(s.A,{defaultValue:y?"ios":"android",children:[(0,l.jsx)(i.A,{value:"android",label:"Android",children:"Android content"}),(0,l.jsx)(i.A,{value:"ios",label:"iOS",children:"iOS content"})]})}),"\n",(0,l.jsx)(t.h2,{id:"tabs-sync-with-different-heights",children:"Tabs sync with different heights"}),"\n",(0,l.jsxs)(s.A,{groupId:"operating-systems",children:[(0,l.jsx)(i.A,{value:"win",label:"Windows",children:(0,l.jsx)(t.p,{children:"Use Ctrl + C to copy."})}),(0,l.jsx)(i.A,{value:"mac",label:"macOS",children:(0,l.jsx)(t.p,{children:"very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text very long text"})})]}),"\n",(0,l.jsxs)(s.A,{groupId:"operating-systems",children:[(0,l.jsx)(i.A,{value:"win",label:"Windows",children:(0,l.jsx)(t.p,{children:"Use Ctrl + V to paste."})}),(0,l.jsx)(i.A,{value:"mac",label:"macOS",children:(0,l.jsx)(t.p,{children:"Use Command + V to paste."})})]}),"\n",(0,l.jsx)(t.p,{children:"When clicking tabs above, they should stay under cursor and we should adjust the scroll position."}),"\n",(0,l.jsx)(t.h2,{id:"tabs-with-classname-and-lazy-loading",children:"Tabs with className and lazy loading"}),"\n",(0,l.jsxs)(s.A,{lazy:!0,children:[(0,l.jsx)(i.A,{value:"apple",label:"Apple",className:"alert alert--primary",default:!0,children:(0,l.jsx)(t.p,{children:"This is an apple \u{1F34E}"})}),(0,l.jsx)(i.A,{value:"orange",label:"Orange",className:"alert alert--secondary",children:(0,l.jsx)(t.p,{children:"This is an orange \u{1F34A}"})}),(0,l.jsx)(i.A,{value:"banana",label:"Banana",className:"alert alert--success",children:(0,l.jsx)(t.p,{children:"This is a banana \u{1F34C}"})})]})]})}function g(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,l.jsx)(t,{...e,children:(0,l.jsx)(b,{...e})}):b(e)}},43023:(e,t,r)=>{r.d(t,{R:()=>o,x:()=>s});var n=r(63696);let l={},a=n.createContext(l);function o(e){let t=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1864f992.20814936.js b/assets/js/1864f992.20814936.js deleted file mode 100644 index ee52c3d826..0000000000 --- a/assets/js/1864f992.20814936.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[34780],{54017:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>u,contentTitle:()=>d,default:()=>l,frontMatter:()=>t,metadata:()=>i,toc:()=>c});let i=JSON.parse('{"id":"api/misc/eslint-plugin/prefer-docusaurus-heading","title":"prefer-docusaurus-heading","description":"Ensures that the @theme/Heading theme component provided by Docusaurus theme-classic is used instead of `` tags for headings.","source":"@site/docs/api/misc/eslint-plugin/prefer-docusaurus-heading.mdx","sourceDirName":"api/misc/eslint-plugin","slug":"/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/eslint-plugin/prefer-docusaurus-heading.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading"},"sidebar":"api","previous":{"title":"no-untranslated-text","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/no-untranslated-text"},"next":{"title":"string-literal-i18n-messages","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages"}}');var a=n(62540),r=n(43023);let t={slug:"/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading"},d="prefer-docusaurus-heading",u={},c=[{value:"Rule Details",id:"details",level:2}];function o(e){let s={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(s.header,{children:(0,a.jsx)(s.h1,{id:"prefer-docusaurus-heading",children:"prefer-docusaurus-heading"})}),"\n",(0,a.jsxs)(s.p,{children:["Ensures that the ",(0,a.jsx)(s.code,{children:"@theme/Heading"})," theme component provided by Docusaurus ",(0,a.jsx)(s.a,{href:"/docs/api/themes/@docusaurus/theme-classic",children:(0,a.jsx)(s.code,{children:"theme-classic"})})," is used instead of ",(0,a.jsx)(s.code,{children:"<hn>"})," tags for headings."]}),"\n",(0,a.jsx)(s.h2,{id:"details",children:"Rule Details"}),"\n",(0,a.jsxs)(s.p,{children:["Examples of ",(0,a.jsx)(s.strong,{children:"incorrect"})," code for this rule:"]}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-html",children:"<h1>This is heading 1</h1>\n\n<h2>This is heading 2</h2>\n\n<h3>This is heading 3</h3>\n"})}),"\n",(0,a.jsxs)(s.p,{children:["Examples of ",(0,a.jsx)(s.strong,{children:"correct"})," code for this rule:"]}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-javascript",children:"import Heading from '@theme/Heading'\n\n<Heading as='h1'>This is heading 1</Heading>\n\n<Heading as='h2'>This is heading 2</Heading>\n\n<Heading as='h3'>This is heading 3</Heading>\n"})})]})}function l(e={}){let{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,a.jsx)(s,{...e,children:(0,a.jsx)(o,{...e})}):o(e)}},43023:(e,s,n)=>{n.d(s,{R:()=>t,x:()=>d});var i=n(63696);let a={},r=i.createContext(a);function t(e){let s=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:t(e.components),i.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1864f992.e8e83035.js b/assets/js/1864f992.e8e83035.js new file mode 100644 index 0000000000..10b6947a37 --- /dev/null +++ b/assets/js/1864f992.e8e83035.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[34780],{54017:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>u,contentTitle:()=>d,default:()=>l,frontMatter:()=>t,metadata:()=>i,toc:()=>c});let i=JSON.parse('{"id":"api/misc/eslint-plugin/prefer-docusaurus-heading","title":"prefer-docusaurus-heading","description":"Ensures that the @theme/Heading theme component provided by Docusaurus theme-classic is used instead of `` tags for headings.","source":"@site/docs/api/misc/eslint-plugin/prefer-docusaurus-heading.mdx","sourceDirName":"api/misc/eslint-plugin","slug":"/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/eslint-plugin/prefer-docusaurus-heading.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading"},"sidebar":"api","previous":{"title":"no-untranslated-text","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/no-untranslated-text"},"next":{"title":"string-literal-i18n-messages","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages"}}');var a=n(62540),r=n(43023);let t={slug:"/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading"},d="prefer-docusaurus-heading",u={},c=[{value:"Rule Details",id:"details",level:2}];function o(e){let s={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(s.header,{children:(0,a.jsx)(s.h1,{id:"prefer-docusaurus-heading",children:"prefer-docusaurus-heading"})}),"\n",(0,a.jsxs)(s.p,{children:["Ensures that the ",(0,a.jsx)(s.code,{children:"@theme/Heading"})," theme component provided by Docusaurus ",(0,a.jsx)(s.a,{href:"/docs/api/themes/@docusaurus/theme-classic",children:(0,a.jsx)(s.code,{children:"theme-classic"})})," is used instead of ",(0,a.jsx)(s.code,{children:"<hn>"})," tags for headings."]}),"\n",(0,a.jsx)(s.h2,{id:"details",children:"Rule Details"}),"\n",(0,a.jsxs)(s.p,{children:["Examples of ",(0,a.jsx)(s.strong,{children:"incorrect"})," code for this rule:"]}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-html",children:"<h1>This is heading 1</h1>\n\n<h2>This is heading 2</h2>\n\n<h3>This is heading 3</h3>\n"})}),"\n",(0,a.jsxs)(s.p,{children:["Examples of ",(0,a.jsx)(s.strong,{children:"correct"})," code for this rule:"]}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-javascript",children:"import Heading from '@theme/Heading'\n\n<Heading as='h1'>This is heading 1</Heading>\n\n<Heading as='h2'>This is heading 2</Heading>\n\n<Heading as='h3'>This is heading 3</Heading>\n"})})]})}function l(e={}){let{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,a.jsx)(s,{...e,children:(0,a.jsx)(o,{...e})}):o(e)}},43023:(e,s,n)=>{n.d(s,{R:()=>t,x:()=>d});var i=n(63696);let a={},r=i.createContext(a);function t(e){let s=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:t(e.components),i.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/18681.66aabee3.js b/assets/js/18681.66aabee3.js new file mode 100644 index 0000000000..90d7e9a3b7 --- /dev/null +++ b/assets/js/18681.66aabee3.js @@ -0,0 +1,117 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[18681],{69439:(t,e,a)=>{a.d(e,{m:()=>i});var r=a(72912),i=class{constructor(t){this.init=t,this.records=this.init()}static{(0,r.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},46192:(t,e,a)=>{a.d(e,{CP:()=>l,HT:()=>h,PB:()=>d,aC:()=>c,lC:()=>o,m:()=>n,tk:()=>s});var r=a(72912),i=a(31546),s=(0,r.K2)((t,e)=>{let a=t.append("rect");if(a.attr("x",e.x),a.attr("y",e.y),a.attr("fill",e.fill),a.attr("stroke",e.stroke),a.attr("width",e.width),a.attr("height",e.height),e.name&&a.attr("name",e.name),e.rx&&a.attr("rx",e.rx),e.ry&&a.attr("ry",e.ry),void 0!==e.attrs)for(let t in e.attrs)a.attr(t,e.attrs[t]);return e.class&&a.attr("class",e.class),a},"drawRect"),o=(0,r.K2)((t,e)=>{s(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"}).lower()},"drawBackgroundRect"),n=(0,r.K2)((t,e)=>{let a=e.text.replace(r.H1," "),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.attr("class","legend"),i.style("text-anchor",e.anchor),e.class&&i.attr("class",e.class);let s=i.append("tspan");return s.attr("x",e.x+2*e.textMargin),s.text(a),i},"drawText"),c=(0,r.K2)((t,e,a,r)=>{let s=t.append("image");s.attr("x",e),s.attr("y",a);let o=(0,i.J)(r);s.attr("xlink:href",o)},"drawImage"),l=(0,r.K2)((t,e,a,r)=>{let s=t.append("use");s.attr("x",e),s.attr("y",a);let o=(0,i.J)(r);s.attr("xlink:href",`#${o}`)},"drawEmbeddedImage"),d=(0,r.K2)(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),h=(0,r.K2)(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj")},18681:(t,e,a)=>{a.d(e,{diagram:()=>tj});var r=a(46192),i=a(69439),s=a(67027),o=a(72912),n=a(89601),c=a(31546),l=function(){var t=(0,o.K2)(function(t,e,a,r){for(a=a||{},r=t.length;r--;a[t[r]]=e);return a},"o"),e=[1,2],a=[1,3],r=[1,4],i=[2,4],s=[1,9],n=[1,11],c=[1,13],l=[1,14],d=[1,16],h=[1,17],p=[1,18],g=[1,24],u=[1,25],x=[1,26],y=[1,27],m=[1,28],b=[1,29],T=[1,30],f=[1,31],E=[1,32],w=[1,33],I=[1,34],L=[1,35],_=[1,36],P=[1,37],k=[1,38],v=[1,39],N=[1,41],A=[1,42],M=[1,43],O=[1,44],D=[1,45],S=[1,46],K=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],R=[4,5,16,50,52,53],Y=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],C=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],B=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],$=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],V=[68,69,70],F=[1,122],W={trace:(0,o.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,BIDIRECTIONAL_SOLID_ARROW:74,DOTTED_ARROW:75,BIDIRECTIONAL_DOTTED_ARROW:76,SOLID_CROSS:77,DOTTED_CROSS:78,SOLID_POINT:79,DOTTED_POINT:80,TXT:81,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"BIDIRECTIONAL_SOLID_ARROW",75:"DOTTED_ARROW",76:"BIDIRECTIONAL_DOTTED_ARROW",77:"SOLID_CROSS",78:"DOTTED_CROSS",79:"SOLID_POINT",80:"DOTTED_POINT",81:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:(0,o.K2)(function(t,e,a,r,i,s,o){var n=s.length-1;switch(i){case 3:return r.apply(s[n]),s[n];case 4:case 9:case 8:case 13:this.$=[];break;case 5:case 10:s[n-1].push(s[n]),this.$=s[n-1];break;case 6:case 7:case 11:case 12:case 62:this.$=s[n];break;case 15:s[n].type="createParticipant",this.$=s[n];break;case 16:s[n-1].unshift({type:"boxStart",boxData:r.parseBoxData(s[n-2])}),s[n-1].push({type:"boxEnd",boxText:s[n-2]}),this.$=s[n-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(s[n-2]),sequenceIndexStep:Number(s[n-1]),sequenceVisible:!0,signalType:r.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(s[n-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:r.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:r.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:r.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:r.LINETYPE.ACTIVE_START,actor:s[n-1].actor};break;case 23:this.$={type:"activeEnd",signalType:r.LINETYPE.ACTIVE_END,actor:s[n-1].actor};break;case 29:r.setDiagramTitle(s[n].substring(6)),this.$=s[n].substring(6);break;case 30:r.setDiagramTitle(s[n].substring(7)),this.$=s[n].substring(7);break;case 31:this.$=s[n].trim(),r.setAccTitle(this.$);break;case 32:case 33:this.$=s[n].trim(),r.setAccDescription(this.$);break;case 34:s[n-1].unshift({type:"loopStart",loopText:r.parseMessage(s[n-2]),signalType:r.LINETYPE.LOOP_START}),s[n-1].push({type:"loopEnd",loopText:s[n-2],signalType:r.LINETYPE.LOOP_END}),this.$=s[n-1];break;case 35:s[n-1].unshift({type:"rectStart",color:r.parseMessage(s[n-2]),signalType:r.LINETYPE.RECT_START}),s[n-1].push({type:"rectEnd",color:r.parseMessage(s[n-2]),signalType:r.LINETYPE.RECT_END}),this.$=s[n-1];break;case 36:s[n-1].unshift({type:"optStart",optText:r.parseMessage(s[n-2]),signalType:r.LINETYPE.OPT_START}),s[n-1].push({type:"optEnd",optText:r.parseMessage(s[n-2]),signalType:r.LINETYPE.OPT_END}),this.$=s[n-1];break;case 37:s[n-1].unshift({type:"altStart",altText:r.parseMessage(s[n-2]),signalType:r.LINETYPE.ALT_START}),s[n-1].push({type:"altEnd",signalType:r.LINETYPE.ALT_END}),this.$=s[n-1];break;case 38:s[n-1].unshift({type:"parStart",parText:r.parseMessage(s[n-2]),signalType:r.LINETYPE.PAR_START}),s[n-1].push({type:"parEnd",signalType:r.LINETYPE.PAR_END}),this.$=s[n-1];break;case 39:s[n-1].unshift({type:"parStart",parText:r.parseMessage(s[n-2]),signalType:r.LINETYPE.PAR_OVER_START}),s[n-1].push({type:"parEnd",signalType:r.LINETYPE.PAR_END}),this.$=s[n-1];break;case 40:s[n-1].unshift({type:"criticalStart",criticalText:r.parseMessage(s[n-2]),signalType:r.LINETYPE.CRITICAL_START}),s[n-1].push({type:"criticalEnd",signalType:r.LINETYPE.CRITICAL_END}),this.$=s[n-1];break;case 41:s[n-1].unshift({type:"breakStart",breakText:r.parseMessage(s[n-2]),signalType:r.LINETYPE.BREAK_START}),s[n-1].push({type:"breakEnd",optText:r.parseMessage(s[n-2]),signalType:r.LINETYPE.BREAK_END}),this.$=s[n-1];break;case 43:this.$=s[n-3].concat([{type:"option",optionText:r.parseMessage(s[n-1]),signalType:r.LINETYPE.CRITICAL_OPTION},s[n]]);break;case 45:this.$=s[n-3].concat([{type:"and",parText:r.parseMessage(s[n-1]),signalType:r.LINETYPE.PAR_AND},s[n]]);break;case 47:this.$=s[n-3].concat([{type:"else",altText:r.parseMessage(s[n-1]),signalType:r.LINETYPE.ALT_ELSE},s[n]]);break;case 48:s[n-3].draw="participant",s[n-3].type="addParticipant",s[n-3].description=r.parseMessage(s[n-1]),this.$=s[n-3];break;case 49:s[n-1].draw="participant",s[n-1].type="addParticipant",this.$=s[n-1];break;case 50:s[n-3].draw="actor",s[n-3].type="addParticipant",s[n-3].description=r.parseMessage(s[n-1]),this.$=s[n-3];break;case 51:s[n-1].draw="actor",s[n-1].type="addParticipant",this.$=s[n-1];break;case 52:s[n-1].type="destroyParticipant",this.$=s[n-1];break;case 53:this.$=[s[n-1],{type:"addNote",placement:s[n-2],actor:s[n-1].actor,text:s[n]}];break;case 54:s[n-2]=[].concat(s[n-1],s[n-1]).slice(0,2),s[n-2][0]=s[n-2][0].actor,s[n-2][1]=s[n-2][1].actor,this.$=[s[n-1],{type:"addNote",placement:r.PLACEMENT.OVER,actor:s[n-2].slice(0,2),text:s[n]}];break;case 55:this.$=[s[n-1],{type:"addLinks",actor:s[n-1].actor,text:s[n]}];break;case 56:this.$=[s[n-1],{type:"addALink",actor:s[n-1].actor,text:s[n]}];break;case 57:this.$=[s[n-1],{type:"addProperties",actor:s[n-1].actor,text:s[n]}];break;case 58:this.$=[s[n-1],{type:"addDetails",actor:s[n-1].actor,text:s[n]}];break;case 61:this.$=[s[n-2],s[n]];break;case 63:this.$=r.PLACEMENT.LEFTOF;break;case 64:this.$=r.PLACEMENT.RIGHTOF;break;case 65:this.$=[s[n-4],s[n-1],{type:"addMessage",from:s[n-4].actor,to:s[n-1].actor,signalType:s[n-3],msg:s[n],activate:!0},{type:"activeStart",signalType:r.LINETYPE.ACTIVE_START,actor:s[n-1].actor}];break;case 66:this.$=[s[n-4],s[n-1],{type:"addMessage",from:s[n-4].actor,to:s[n-1].actor,signalType:s[n-3],msg:s[n]},{type:"activeEnd",signalType:r.LINETYPE.ACTIVE_END,actor:s[n-4].actor}];break;case 67:this.$=[s[n-3],s[n-1],{type:"addMessage",from:s[n-3].actor,to:s[n-1].actor,signalType:s[n-2],msg:s[n]}];break;case 68:this.$={type:"addParticipant",actor:s[n]};break;case 69:this.$=r.LINETYPE.SOLID_OPEN;break;case 70:this.$=r.LINETYPE.DOTTED_OPEN;break;case 71:this.$=r.LINETYPE.SOLID;break;case 72:this.$=r.LINETYPE.BIDIRECTIONAL_SOLID;break;case 73:this.$=r.LINETYPE.DOTTED;break;case 74:this.$=r.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 75:this.$=r.LINETYPE.SOLID_CROSS;break;case 76:this.$=r.LINETYPE.DOTTED_CROSS;break;case 77:this.$=r.LINETYPE.SOLID_POINT;break;case 78:this.$=r.LINETYPE.DOTTED_POINT;break;case 79:this.$=r.parseMessage(s[n].trim().substring(1))}},"anonymous"),table:[{3:1,4:e,5:a,6:r},{1:[3]},{3:5,4:e,5:a,6:r},{3:6,4:e,5:a,6:r},t([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:s,5:n,8:8,9:10,12:12,13:c,14:l,17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:x,33:y,35:m,36:b,37:T,38:f,39:E,41:w,43:I,44:L,46:_,50:P,52:k,53:v,54:N,59:A,60:M,61:O,62:D,70:S},t(K,[2,5]),{9:47,12:12,13:c,14:l,17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:x,33:y,35:m,36:b,37:T,38:f,39:E,41:w,43:I,44:L,46:_,50:P,52:k,53:v,54:N,59:A,60:M,61:O,62:D,70:S},t(K,[2,7]),t(K,[2,8]),t(K,[2,14]),{12:48,50:P,52:k,53:v},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:S},{22:55,70:S},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},t(K,[2,29]),t(K,[2,30]),{32:[1,61]},{34:[1,62]},t(K,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:S},{22:72,70:S},{22:73,70:S},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82],79:[1,83],80:[1,84]},{55:85,57:[1,86],65:[1,87],66:[1,88]},{22:89,70:S},{22:90,70:S},{22:91,70:S},{22:92,70:S},t([5,51,64,71,72,73,74,75,76,77,78,79,80,81],[2,68]),t(K,[2,6]),t(K,[2,15]),t(R,[2,9],{10:93}),t(K,[2,17]),{5:[1,95],19:[1,94]},{5:[1,96]},t(K,[2,21]),{5:[1,97]},{5:[1,98]},t(K,[2,24]),t(K,[2,25]),t(K,[2,26]),t(K,[2,27]),t(K,[2,28]),t(K,[2,31]),t(K,[2,32]),t(Y,i,{7:99}),t(Y,i,{7:100}),t(Y,i,{7:101}),t(C,i,{40:102,7:103}),t(B,i,{42:104,7:105}),t(B,i,{7:105,42:106}),t($,i,{45:107,7:108}),t(Y,i,{7:109}),{5:[1,111],51:[1,110]},{5:[1,113],51:[1,112]},{5:[1,114]},{22:117,68:[1,115],69:[1,116],70:S},t(V,[2,69]),t(V,[2,70]),t(V,[2,71]),t(V,[2,72]),t(V,[2,73]),t(V,[2,74]),t(V,[2,75]),t(V,[2,76]),t(V,[2,77]),t(V,[2,78]),{22:118,70:S},{22:120,58:119,70:S},{70:[2,63]},{70:[2,64]},{56:121,81:F},{56:123,81:F},{56:124,81:F},{56:125,81:F},{4:[1,128],5:[1,130],11:127,12:129,16:[1,126],50:P,52:k,53:v},{5:[1,131]},t(K,[2,19]),t(K,[2,20]),t(K,[2,22]),t(K,[2,23]),{4:s,5:n,8:8,9:10,12:12,13:c,14:l,16:[1,132],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:x,33:y,35:m,36:b,37:T,38:f,39:E,41:w,43:I,44:L,46:_,50:P,52:k,53:v,54:N,59:A,60:M,61:O,62:D,70:S},{4:s,5:n,8:8,9:10,12:12,13:c,14:l,16:[1,133],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:x,33:y,35:m,36:b,37:T,38:f,39:E,41:w,43:I,44:L,46:_,50:P,52:k,53:v,54:N,59:A,60:M,61:O,62:D,70:S},{4:s,5:n,8:8,9:10,12:12,13:c,14:l,16:[1,134],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:x,33:y,35:m,36:b,37:T,38:f,39:E,41:w,43:I,44:L,46:_,50:P,52:k,53:v,54:N,59:A,60:M,61:O,62:D,70:S},{16:[1,135]},{4:s,5:n,8:8,9:10,12:12,13:c,14:l,16:[2,46],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:x,33:y,35:m,36:b,37:T,38:f,39:E,41:w,43:I,44:L,46:_,49:[1,136],50:P,52:k,53:v,54:N,59:A,60:M,61:O,62:D,70:S},{16:[1,137]},{4:s,5:n,8:8,9:10,12:12,13:c,14:l,16:[2,44],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:x,33:y,35:m,36:b,37:T,38:f,39:E,41:w,43:I,44:L,46:_,48:[1,138],50:P,52:k,53:v,54:N,59:A,60:M,61:O,62:D,70:S},{16:[1,139]},{16:[1,140]},{4:s,5:n,8:8,9:10,12:12,13:c,14:l,16:[2,42],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:x,33:y,35:m,36:b,37:T,38:f,39:E,41:w,43:I,44:L,46:_,47:[1,141],50:P,52:k,53:v,54:N,59:A,60:M,61:O,62:D,70:S},{4:s,5:n,8:8,9:10,12:12,13:c,14:l,16:[1,142],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:x,33:y,35:m,36:b,37:T,38:f,39:E,41:w,43:I,44:L,46:_,50:P,52:k,53:v,54:N,59:A,60:M,61:O,62:D,70:S},{15:[1,143]},t(K,[2,49]),{15:[1,144]},t(K,[2,51]),t(K,[2,52]),{22:145,70:S},{22:146,70:S},{56:147,81:F},{56:148,81:F},{56:149,81:F},{64:[1,150],81:[2,62]},{5:[2,55]},{5:[2,79]},{5:[2,56]},{5:[2,57]},{5:[2,58]},t(K,[2,16]),t(R,[2,10]),{12:151,50:P,52:k,53:v},t(R,[2,12]),t(R,[2,13]),t(K,[2,18]),t(K,[2,34]),t(K,[2,35]),t(K,[2,36]),t(K,[2,37]),{15:[1,152]},t(K,[2,38]),{15:[1,153]},t(K,[2,39]),t(K,[2,40]),{15:[1,154]},t(K,[2,41]),{5:[1,155]},{5:[1,156]},{56:157,81:F},{56:158,81:F},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:159,70:S},t(R,[2,11]),t(C,i,{7:103,40:160}),t(B,i,{7:105,42:161}),t($,i,{7:108,45:162}),t(K,[2,48]),t(K,[2,50]),{5:[2,65]},{5:[2,66]},{81:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],87:[2,63],88:[2,64],121:[2,55],122:[2,79],123:[2,56],124:[2,57],125:[2,58],147:[2,67],148:[2,53],149:[2,54],157:[2,65],158:[2,66],159:[2,61],160:[2,47],161:[2,45],162:[2,43]},parseError:(0,o.K2)(function(t,e){if(e.recoverable)this.trace(t);else{var a=Error(t);throw a.hash=e,a}},"parseError"),parse:(0,o.K2)(function(t){var e=this,a=[0],r=[],i=[null],s=[],n=this.table,c="",l=0,d=0,h=0,p=s.slice.call(arguments,1),g=Object.create(this.lexer),u={yy:{}};for(var x in this.yy)Object.prototype.hasOwnProperty.call(this.yy,x)&&(u.yy[x]=this.yy[x]);g.setInput(t,u.yy),u.yy.lexer=g,u.yy.parser=this,void 0===g.yylloc&&(g.yylloc={});var y=g.yylloc;s.push(y);var m=g.options&&g.options.ranges;function b(){var t;return"number"!=typeof(t=r.pop()||g.lex()||1)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,o.K2)(function(t){a.length=a.length-2*t,i.length=i.length-t,s.length=s.length-t},"popStack"),(0,o.K2)(b,"lex");for(var T,f,E,w,I,L,_,P,k,v={};;){if(E=a[a.length-1],this.defaultActions[E]?w=this.defaultActions[E]:(null==T&&(T=b()),w=n[E]&&n[E][T]),void 0===w||!w.length||!w[0]){var N="";for(L in k=[],n[E])this.terminals_[L]&&L>2&&k.push("'"+this.terminals_[L]+"'");N=g.showPosition?"Parse error on line "+(l+1)+":\n"+g.showPosition()+"\nExpecting "+k.join(", ")+", got '"+(this.terminals_[T]||T)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==T?"end of input":"'"+(this.terminals_[T]||T)+"'"),this.parseError(N,{text:g.match,token:this.terminals_[T]||T,line:g.yylineno,loc:y,expected:k})}if(w[0]instanceof Array&&w.length>1)throw Error("Parse Error: multiple actions possible at state: "+E+", token: "+T);switch(w[0]){case 1:a.push(T),i.push(g.yytext),s.push(g.yylloc),a.push(w[1]),T=null,f?(T=f,f=null):(d=g.yyleng,c=g.yytext,l=g.yylineno,y=g.yylloc,h>0&&h--);break;case 2:if(_=this.productions_[w[1]][1],v.$=i[i.length-_],v._$={first_line:s[s.length-(_||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(_||1)].first_column,last_column:s[s.length-1].last_column},m&&(v._$.range=[s[s.length-(_||1)].range[0],s[s.length-1].range[1]]),void 0!==(I=this.performAction.apply(v,[c,d,l,u.yy,w[1],i,s].concat(p))))return I;_&&(a=a.slice(0,-1*_*2),i=i.slice(0,-1*_),s=s.slice(0,-1*_)),a.push(this.productions_[w[1]][0]),i.push(v.$),s.push(v._$),P=n[a[a.length-2]][a[a.length-1]],a.push(P);break;case 3:return!0}}return!0},"parse")},q={EOF:1,parseError:(0,o.K2)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,o.K2)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,o.K2)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,o.K2)(function(t){var e=t.length,a=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===r.length?this.yylloc.first_column:0)+r[r.length-a.length].length-a[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,o.K2)(function(){return this._more=!0,this},"more"),reject:(0,o.K2)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,o.K2)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,o.K2)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,o.K2)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,o.K2)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,o.K2)(function(t,e){var a,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],a=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a)return a;if(this._backtrack)for(var s in i)this[s]=i[s];return!1},"test_match"),next:(0,o.K2)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,a,r,i=this._currentRules(),s=0;s<i.length;s++)if((a=this._input.match(this.rules[i[s]]))&&(!e||a[0].length>e[0].length)){if(e=a,r=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(a,i[s])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,o.K2)(function(){return this.next()||this.lex()},"lex"),begin:(0,o.K2)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,o.K2)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,o.K2)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,o.K2)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,o.K2)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,o.K2)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,o.K2)(function(t,e,a,r){switch(a){case 0:case 51:case 66:return 5;case 1:case 2:case 3:case 4:case 5:break;case 6:return 19;case 7:return this.begin("LINE"),14;case 8:return this.begin("ID"),50;case 9:return this.begin("ID"),52;case 10:return 13;case 11:return this.begin("ID"),53;case 12:return e.yytext=e.yytext.trim(),this.begin("ALIAS"),70;case 13:return this.popState(),this.popState(),this.begin("LINE"),51;case 14:return this.popState(),this.popState(),5;case 15:return this.begin("LINE"),36;case 16:return this.begin("LINE"),37;case 17:return this.begin("LINE"),38;case 18:return this.begin("LINE"),39;case 19:return this.begin("LINE"),49;case 20:return this.begin("LINE"),41;case 21:return this.begin("LINE"),43;case 22:return this.begin("LINE"),48;case 23:return this.begin("LINE"),44;case 24:return this.begin("LINE"),47;case 25:return this.begin("LINE"),46;case 26:return this.popState(),15;case 27:return 16;case 28:return 65;case 29:return 66;case 30:return 59;case 31:return 60;case 32:return 61;case 33:return 62;case 34:return 57;case 35:return 54;case 36:return this.begin("ID"),21;case 37:return this.begin("ID"),23;case 38:return 29;case 39:return 30;case 40:return this.begin("acc_title"),31;case 41:return this.popState(),"acc_title_value";case 42:return this.begin("acc_descr"),33;case 43:return this.popState(),"acc_descr_value";case 44:this.begin("acc_descr_multiline");break;case 45:this.popState();break;case 46:return"acc_descr_multiline_value";case 47:return 6;case 48:return 18;case 49:return 20;case 50:return 64;case 52:return e.yytext=e.yytext.trim(),70;case 53:return 73;case 54:return 74;case 55:return 75;case 56:return 76;case 57:return 71;case 58:return 72;case 59:return 77;case 60:return 78;case 61:return 79;case 62:return 80;case 63:return 81;case 64:return 68;case 65:return 69;case 67:return"INVALID"}},"anonymous"),rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:[^\<->\->:\n,;]+?([\-]*[^\<->\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\<->\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\<->\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:<<->>)/i,/^(?:-->>)/i,/^(?:<<-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[45,46],inclusive:!1},acc_descr:{rules:[43],inclusive:!1},acc_title:{rules:[41],inclusive:!1},ID:{rules:[2,3,12],inclusive:!1},ALIAS:{rules:[2,3,13,14],inclusive:!1},LINE:{rules:[2,3,26],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],inclusive:!0}}};function z(){this.yy={}}return W.lexer=q,(0,o.K2)(z,"Parser"),z.prototype=W,W.Parser=z,new z}();l.parser=l;var d=new i.m(()=>({prevActor:void 0,actors:new Map,createdActors:new Map,destroyedActors:new Map,boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0})),h=(0,o.K2)(function(t){d.records.boxes.push({name:t.text,wrap:t.wrap??A(),fill:t.color,actorKeys:[]}),d.records.currentBox=d.records.boxes.slice(-1)[0]},"addBox"),p=(0,o.K2)(function(t,e,a,r){let i=d.records.currentBox,s=d.records.actors.get(t);if(s){if(d.records.currentBox&&s.box&&d.records.currentBox!==s.box)throw Error(`A same participant should only be defined in one Box: ${s.name} can't be in '${s.box.name}' and in '${d.records.currentBox.name}' at the same time.`);if(i=s.box?s.box:d.records.currentBox,s.box=i,s&&e===s.name&&null==a)return}if(a?.text==null&&(a={text:e,type:r}),(null==r||null==a.text)&&(a={text:e,type:r}),d.records.actors.set(t,{box:i,name:e,description:a.text,wrap:a.wrap??A(),prevActor:d.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:r??"participant"}),d.records.prevActor){let e=d.records.actors.get(d.records.prevActor);e&&(e.nextActor=t)}d.records.currentBox&&d.records.currentBox.actorKeys.push(t),d.records.prevActor=t},"addActor"),g=(0,o.K2)(t=>{let e;let a=0;if(!t)return 0;for(e=0;e<d.records.messages.length;e++)d.records.messages[e].type===S.ACTIVE_START&&d.records.messages[e].from===t&&a++,d.records.messages[e].type===S.ACTIVE_END&&d.records.messages[e].from===t&&a--;return a},"activationCount"),u=(0,o.K2)(function(t,e,a,r){d.records.messages.push({from:t,to:e,message:a.text,wrap:a.wrap??A(),answer:r})},"addMessage"),x=(0,o.K2)(function(t,e,a,r,i=!1){if(r===S.ACTIVE_END&&1>g(t??"")){let e=Error("Trying to inactivate an inactive participant ("+t+")");throw e.hash={text:"->>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},e}return d.records.messages.push({from:t,to:e,message:a?.text??"",wrap:a?.wrap??A(),type:r,activate:i}),!0},"addSignal"),y=(0,o.K2)(function(){return d.records.boxes.length>0},"hasAtLeastOneBox"),m=(0,o.K2)(function(){return d.records.boxes.some(t=>t.name)},"hasAtLeastOneBoxWithTitle"),b=(0,o.K2)(function(){return d.records.messages},"getMessages"),T=(0,o.K2)(function(){return d.records.boxes},"getBoxes"),f=(0,o.K2)(function(){return d.records.actors},"getActors"),E=(0,o.K2)(function(){return d.records.createdActors},"getCreatedActors"),w=(0,o.K2)(function(){return d.records.destroyedActors},"getDestroyedActors"),I=(0,o.K2)(function(t){return d.records.actors.get(t)},"getActor"),L=(0,o.K2)(function(){return[...d.records.actors.keys()]},"getActorKeys"),_=(0,o.K2)(function(){d.records.sequenceNumbersEnabled=!0},"enableSequenceNumbers"),P=(0,o.K2)(function(){d.records.sequenceNumbersEnabled=!1},"disableSequenceNumbers"),k=(0,o.K2)(()=>d.records.sequenceNumbersEnabled,"showSequenceNumbers"),v=(0,o.K2)(function(t){d.records.wrapEnabled=t},"setWrap"),N=(0,o.K2)(t=>{if(void 0===t)return{};t=t.trim();let e=null!==/^:?wrap:/.exec(t)||null===/^:?nowrap:/.exec(t)&&void 0;return{cleanedText:(void 0===e?t:t.replace(/^:?(?:no)?wrap:/,"")).trim(),wrap:e}},"extractWrap"),A=(0,o.K2)(()=>void 0!==d.records.wrapEnabled?d.records.wrapEnabled:o.D7().sequence?.wrap??!1,"autoWrap"),M=(0,o.K2)(function(){d.reset(),(0,o.IU)()},"clear"),O=(0,o.K2)(function(t){let{wrap:e,cleanedText:a}=N(t.trim()),r={text:a,wrap:e};return o.Rm.debug(`parseMessage: ${JSON.stringify(r)}`),r},"parseMessage"),D=(0,o.K2)(function(t){let e=/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/.exec(t),a=e?.[1]?e[1].trim():"transparent",r=e?.[2]?e[2].trim():void 0;if(window?.CSS)window.CSS.supports("color",a)||(a="transparent",r=t.trim());else{let e=new Option().style;e.color=a,e.color!==a&&(a="transparent",r=t.trim())}let{wrap:i,cleanedText:s}=N(r);return{text:s?(0,o.jZ)(s,(0,o.D7)()):void 0,color:a,wrap:i}},"parseBoxData"),S={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32,BIDIRECTIONAL_SOLID:33,BIDIRECTIONAL_DOTTED:34},K=(0,o.K2)(function(t,e,a){let r={actor:t,placement:e,message:a.text,wrap:a.wrap??A()},i=[].concat(t,t);d.records.notes.push(r),d.records.messages.push({from:i[0],to:i[1],message:a.text,wrap:a.wrap??A(),type:S.NOTE,placement:e})},"addNote"),R=(0,o.K2)(function(t,e){let a=I(t);try{let t=(0,o.jZ)(e.text,(0,o.D7)());t=(t=t.replace(/&/g,"&")).replace(/=/g,"=");let r=JSON.parse(t);C(a,r)}catch(t){o.Rm.error("error while parsing actor link text",t)}},"addLinks"),Y=(0,o.K2)(function(t,e){let a=I(t);try{let t={},r=(0,o.jZ)(e.text,(0,o.D7)()),i=r.indexOf("@"),s=(r=(r=r.replace(/&/g,"&")).replace(/=/g,"=")).slice(0,i-1).trim(),n=r.slice(i+1).trim();t[s]=n,C(a,t)}catch(t){o.Rm.error("error while parsing actor link text",t)}},"addALink");function C(t,e){if(null==t.links)t.links=e;else for(let a in e)t.links[a]=e[a]}(0,o.K2)(C,"insertLinks");var B=(0,o.K2)(function(t,e){let a=I(t);try{let t=(0,o.jZ)(e.text,(0,o.D7)()),r=JSON.parse(t);$(a,r)}catch(t){o.Rm.error("error while parsing actor properties text",t)}},"addProperties");function $(t,e){if(null==t.properties)t.properties=e;else for(let a in e)t.properties[a]=e[a]}function V(){d.records.currentBox=void 0}(0,o.K2)($,"insertProperties"),(0,o.K2)(V,"boxEnd");var F=(0,o.K2)(function(t,e){let a=I(t),r=document.getElementById(e.text);try{let t=r.innerHTML,e=JSON.parse(t);e.properties&&$(a,e.properties),e.links&&C(a,e.links)}catch(t){o.Rm.error("error while parsing actor details text",t)}},"addDetails"),W=(0,o.K2)(function(t,e){if(t?.properties!==void 0)return t.properties[e]},"getActorProperty"),q=(0,o.K2)(function(t){if(Array.isArray(t))t.forEach(function(t){q(t)});else switch(t.type){case"sequenceIndex":d.records.messages.push({from:void 0,to:void 0,message:{start:t.sequenceIndex,step:t.sequenceIndexStep,visible:t.sequenceVisible},wrap:!1,type:t.signalType});break;case"addParticipant":p(t.actor,t.actor,t.description,t.draw);break;case"createParticipant":if(d.records.actors.has(t.actor))throw Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");d.records.lastCreated=t.actor,p(t.actor,t.actor,t.description,t.draw),d.records.createdActors.set(t.actor,d.records.messages.length);break;case"destroyParticipant":d.records.lastDestroyed=t.actor,d.records.destroyedActors.set(t.actor,d.records.messages.length);break;case"activeStart":case"activeEnd":x(t.actor,void 0,void 0,t.signalType);break;case"addNote":K(t.actor,t.placement,t.text);break;case"addLinks":R(t.actor,t.text);break;case"addALink":Y(t.actor,t.text);break;case"addProperties":B(t.actor,t.text);break;case"addDetails":F(t.actor,t.text);break;case"addMessage":if(d.records.lastCreated){if(t.to!==d.records.lastCreated)throw Error("The created participant "+d.records.lastCreated.name+" does not have an associated creating message after its declaration. Please check the sequence diagram.");d.records.lastCreated=void 0}else if(d.records.lastDestroyed){if(t.to!==d.records.lastDestroyed&&t.from!==d.records.lastDestroyed)throw Error("The destroyed participant "+d.records.lastDestroyed.name+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");d.records.lastDestroyed=void 0}x(t.from,t.to,t.msg,t.signalType,t.activate);break;case"boxStart":h(t.boxData);break;case"boxEnd":V();break;case"loopStart":x(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":case"rectEnd":case"optEnd":case"altEnd":case"parEnd":case"criticalEnd":case"breakEnd":x(void 0,void 0,void 0,t.signalType);break;case"rectStart":x(void 0,void 0,t.color,t.signalType);break;case"optStart":x(void 0,void 0,t.optText,t.signalType);break;case"altStart":case"else":x(void 0,void 0,t.altText,t.signalType);break;case"setAccTitle":(0,o.SV)(t.text);break;case"parStart":case"and":x(void 0,void 0,t.parText,t.signalType);break;case"criticalStart":x(void 0,void 0,t.criticalText,t.signalType);break;case"option":x(void 0,void 0,t.optionText,t.signalType);break;case"breakStart":x(void 0,void 0,t.breakText,t.signalType)}},"apply"),z={addActor:p,addMessage:u,addSignal:x,addLinks:R,addDetails:F,addProperties:B,autoWrap:A,setWrap:v,enableSequenceNumbers:_,disableSequenceNumbers:P,showSequenceNumbers:k,getMessages:b,getActors:f,getCreatedActors:E,getDestroyedActors:w,getActor:I,getActorKeys:L,getActorProperty:W,getAccTitle:o.iN,getBoxes:T,getDiagramTitle:o.ab,setDiagramTitle:o.ke,getConfig:(0,o.K2)(()=>(0,o.D7)().sequence,"getConfig"),clear:M,parseMessage:O,parseBoxData:D,LINETYPE:S,ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},addNote:K,setAccTitle:o.SV,apply:q,setAccDescription:o.EI,getAccDescription:o.m7,hasAtLeastOneBox:y,hasAtLeastOneBoxWithTitle:m},H=(0,o.K2)(t=>`.actor { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + + text.actor > tspan { + fill: ${t.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${t.actorLineColor}; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${t.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${t.signalColor}; + } + + #arrowhead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .sequenceNumber { + fill: ${t.sequenceNumberColor}; + } + + #sequencenumber { + fill: ${t.signalColor}; + } + + #crosshead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .messageText { + fill: ${t.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBkgColor}; + } + + .labelText, .labelText > tspan { + fill: ${t.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${t.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${t.noteTextColor}; + stroke: none; + } + + .activation0 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation1 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation2 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${t.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + .actor-man circle, line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + stroke-width: 2px; + } +`,"getStyles"),j="actor-top",U="actor-bottom",J="actor-man",X=(0,o.K2)(function(t,e){return(0,r.tk)(t,e)},"drawRect"),G=(0,o.K2)(function(t,e,a,r,i){if(void 0===e.links||null===e.links||0===Object.keys(e.links).length)return{height:0,width:0};let s=e.links,o=e.actorCnt,n=e.rectData;var l="none";i&&(l="block !important");let d=t.append("g");d.attr("id","actor"+o+"_popup"),d.attr("class","actorPopupMenu"),d.attr("display",l);var h="";void 0!==n.class&&(h=" "+n.class);let p=n.width>a?n.width:a,g=d.append("rect");if(g.attr("class","actorPopupMenuPanel"+h),g.attr("x",n.x),g.attr("y",n.height),g.attr("fill",n.fill),g.attr("stroke",n.stroke),g.attr("width",p),g.attr("height",n.height),g.attr("rx",n.rx),g.attr("ry",n.ry),null!=s){var u=20;for(let t in s){var x=d.append("a"),y=(0,c.J)(s[t]);x.attr("xlink:href",y),x.attr("target","_blank"),tw(r)(t,x,n.x+10,n.height+u,p,20,{class:"actor"},r),u+=30}}return g.attr("height",u),{height:n.height+u,width:p}},"drawPopup"),Z=(0,o.K2)(function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},"popupMenuToggle"),Q=(0,o.K2)(async function(t,e,a=null){let r=t.append("foreignObject"),i=await (0,o.VJ)(e.text,(0,o.zj)()),s=r.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(i).node().getBoundingClientRect();if(r.attr("height",Math.round(s.height)).attr("width",Math.round(s.width)),"noteText"===e.class){let a=t.node().firstChild;a.setAttribute("height",s.height+2*e.textMargin);let i=a.getBBox();r.attr("x",Math.round(i.x+i.width/2-s.width/2)).attr("y",Math.round(i.y+i.height/2-s.height/2))}else if(a){let{startx:t,stopx:i,starty:o}=a;if(t>i){let e=t;t=i,i=e}r.attr("x",Math.round(t+Math.abs(t-i)/2-s.width/2)),"loopText"===e.class?r.attr("y",Math.round(o)):r.attr("y",Math.round(o-s.height))}return[r]},"drawKatex"),tt=(0,o.K2)(function(t,e){let a=0,r=0,i=e.text.split(o.Y2.lineBreakRegex),[n,c]=(0,s.I5)(e.fontSize),l=[],d=0,h=(0,o.K2)(()=>e.y,"yfunc");if(void 0!==e.valign&&void 0!==e.textMargin&&e.textMargin>0)switch(e.valign){case"top":case"start":h=(0,o.K2)(()=>Math.round(e.y+e.textMargin),"yfunc");break;case"middle":case"center":h=(0,o.K2)(()=>Math.round(e.y+(a+r+e.textMargin)/2),"yfunc");break;case"bottom":case"end":h=(0,o.K2)(()=>Math.round(e.y+(a+r+2*e.textMargin)-e.textMargin),"yfunc")}if(void 0!==e.anchor&&void 0!==e.textMargin&&void 0!==e.width)switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin),e.anchor="start",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2),e.anchor="middle",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor="end",e.dominantBaseline="middle",e.alignmentBaseline="middle"}for(let[o,p]of i.entries()){void 0!==e.textMargin&&0===e.textMargin&&void 0!==n&&(d=o*n);let i=t.append("text");i.attr("x",e.x),i.attr("y",h()),void 0!==e.anchor&&i.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),void 0!==e.fontFamily&&i.style("font-family",e.fontFamily),void 0!==c&&i.style("font-size",c),void 0!==e.fontWeight&&i.style("font-weight",e.fontWeight),void 0!==e.fill&&i.attr("fill",e.fill),void 0!==e.class&&i.attr("class",e.class),void 0!==e.dy?i.attr("dy",e.dy):0!==d&&i.attr("dy",d);let g=p||s.pe;if(e.tspan){let t=i.append("tspan");t.attr("x",e.x),void 0!==e.fill&&t.attr("fill",e.fill),t.text(g)}else i.text(g);void 0!==e.valign&&void 0!==e.textMargin&&e.textMargin>0&&(r+=(i._groups||i)[0][0].getBBox().height,a=r),l.push(i)}return l},"drawText"),te=(0,o.K2)(function(t,e){function a(t,e,a,r,i){return t+","+e+" "+(t+a)+","+e+" "+(t+a)+","+(e+r-i)+" "+(t+a-1.2*i)+","+(e+r)+" "+t+","+(e+r)}(0,o.K2)(a,"genPoints");let r=t.append("polygon");return r.attr("points",a(e.x,e.y,e.width,e.height,7)),r.attr("class","labelBox"),e.y=e.y+e.height/2,tt(t,e),r},"drawLabel"),ta=-1,tr=(0,o.K2)((t,e,a,r)=>{t.select&&a.forEach(a=>{let i=e.get(a),s=t.select("#actor"+i.actorCnt);!r.mirrorActors&&i.stopy?s.attr("y2",i.stopy+i.height/2):r.mirrorActors&&s.attr("y2",i.stopy)})},"fixLifeLineHeights"),ti=(0,o.K2)(function(t,e,a,i){let s=i?e.stopy:e.starty,n=e.x+e.width/2,c=s+e.height,l=t.append("g").lower();var d=l;i||(ta++,Object.keys(e.links||{}).length&&!a.forceMenus&&d.attr("onclick",Z(`actor${ta}_popup`)).attr("cursor","pointer"),d.append("line").attr("id","actor"+ta).attr("x1",n).attr("y1",c).attr("x2",n).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),d=l.append("g"),e.actorCnt=ta,null!=e.links&&d.attr("id","root-"+ta));let h=(0,r.PB)();var p="actor";e.properties?.class?p=e.properties.class:h.fill="#eaeaea",i?p+=` ${U}`:p+=` ${j}`,h.x=e.x,h.y=s,h.width=e.width,h.height=e.height,h.class=p,h.rx=3,h.ry=3,h.name=e.name;let g=X(d,h);if(e.rectData=h,e.properties?.icon){let t=e.properties.icon.trim();"@"===t.charAt(0)?(0,r.CP)(d,h.x+h.width-20,h.y+10,t.substr(1)):(0,r.aC)(d,h.x+h.width-20,h.y+10,t)}tE(a,(0,o.Wi)(e.description))(e.description,d,h.x,h.y,h.width,h.height,{class:"actor actor-box"},a);let u=e.height;if(g.node){let t=g.node().getBBox();e.height=t.height,u=t.height}return u},"drawActorTypeParticipant"),ts=(0,o.K2)(function(t,e,a,i){let s=i?e.stopy:e.starty,n=e.x+e.width/2,c=s+80,l=t.append("g").lower();i||(ta++,l.append("line").attr("id","actor"+ta).attr("x1",n).attr("y1",c).attr("x2",n).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=ta);let d=t.append("g"),h=J;i?h+=` ${U}`:h+=` ${j}`,d.attr("class",h),d.attr("name",e.name);let p=(0,r.PB)();p.x=e.x,p.y=s,p.fill="#eaeaea",p.width=e.width,p.height=e.height,p.class="actor",p.rx=3,p.ry=3,d.append("line").attr("id","actor-man-torso"+ta).attr("x1",n).attr("y1",s+25).attr("x2",n).attr("y2",s+45),d.append("line").attr("id","actor-man-arms"+ta).attr("x1",n-18).attr("y1",s+33).attr("x2",n+18).attr("y2",s+33),d.append("line").attr("x1",n-18).attr("y1",s+60).attr("x2",n).attr("y2",s+45),d.append("line").attr("x1",n).attr("y1",s+45).attr("x2",n+18-2).attr("y2",s+60);let g=d.append("circle");g.attr("cx",e.x+e.width/2),g.attr("cy",s+10),g.attr("r",15),g.attr("width",e.width),g.attr("height",e.height);let u=d.node().getBBox();return e.height=u.height,tE(a,(0,o.Wi)(e.description))(e.description,d,p.x,p.y+35,p.width,p.height,{class:`actor ${J}`},a),e.height},"drawActorTypeActor"),to=(0,o.K2)(async function(t,e,a,r){switch(e.type){case"actor":return await ts(t,e,a,r);case"participant":return await ti(t,e,a,r)}},"drawActor"),tn=(0,o.K2)(function(t,e,a){let r=t.append("g");th(r,e),e.name&&tE(a)(e.name,r,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},a),r.lower()},"drawBox"),tc=(0,o.K2)(function(t){return t.append("g")},"anchorElement"),tl=(0,o.K2)(function(t,e,a,i,s){let o=(0,r.PB)(),n=e.anchored;o.x=e.startx,o.y=e.starty,o.class="activation"+s%3,o.width=e.stopx-e.startx,o.height=a-e.starty,X(n,o)},"drawActivation"),td=(0,o.K2)(async function(t,e,a,i){let{boxMargin:s,boxTextMargin:n,labelBoxHeight:c,labelBoxWidth:l,messageFontFamily:d,messageFontSize:h,messageFontWeight:p}=i,g=t.append("g"),u=(0,o.K2)(function(t,e,a,r){return g.append("line").attr("x1",t).attr("y1",e).attr("x2",a).attr("y2",r).attr("class","loopLine")},"drawLoopLine");u(e.startx,e.starty,e.stopx,e.starty),u(e.stopx,e.starty,e.stopx,e.stopy),u(e.startx,e.stopy,e.stopx,e.stopy),u(e.startx,e.starty,e.startx,e.stopy),void 0!==e.sections&&e.sections.forEach(function(t){u(e.startx,t.y,e.stopx,t.y).style("stroke-dasharray","3, 3")});let x=(0,r.HT)();x.text=a,x.x=e.startx,x.y=e.starty,x.fontFamily=d,x.fontSize=h,x.fontWeight=p,x.anchor="middle",x.valign="middle",x.tspan=!1,x.width=l||50,x.height=c||20,x.textMargin=n,x.class="labelText",te(g,x),(x=tT()).text=e.title,x.x=e.startx+l/2+(e.stopx-e.startx)/2,x.y=e.starty+s+n,x.anchor="middle",x.valign="middle",x.textMargin=n,x.class="loopText",x.fontFamily=d,x.fontSize=h,x.fontWeight=p,x.wrap=!0;let y=(0,o.Wi)(x.text)?await Q(g,x,e):tt(g,x);if(void 0!==e.sectionTitles){for(let[t,a]of Object.entries(e.sectionTitles))if(a.message){x.text=a.message,x.x=e.startx+(e.stopx-e.startx)/2,x.y=e.sections[t].y+s+n,x.class="loopText",x.anchor="middle",x.valign="middle",x.tspan=!1,x.fontFamily=d,x.fontSize=h,x.fontWeight=p,x.wrap=e.wrap,(0,o.Wi)(x.text)?(e.starty=e.sections[t].y,await Q(g,x,e)):tt(g,x);let r=Math.round(y.map(t=>(t._groups||t)[0][0].getBBox().height).reduce((t,e)=>t+e));e.sections[t].height+=r-(s+n)}}return e.height=Math.round(e.stopy-e.starty),g},"drawLoop"),th=(0,o.K2)(function(t,e){(0,r.lC)(t,e)},"drawBackgroundRect"),tp=(0,o.K2)(function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),tg=(0,o.K2)(function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),tu=(0,o.K2)(function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),tx=(0,o.K2)(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M -1 0 L 10 5 L 0 10 z")},"insertArrowHead"),ty=(0,o.K2)(function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),tm=(0,o.K2)(function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertSequenceNumber"),tb=(0,o.K2)(function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},"insertArrowCrossHead"),tT=(0,o.K2)(function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},"getTextObj"),tf=(0,o.K2)(function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),tE=function(){function t(t,e,a,r,s,o,n){i(e.append("text").attr("x",a+s/2).attr("y",r+o/2+5).style("text-anchor","middle").text(t),n)}function e(t,e,a,r,n,c,l,d){let{actorFontSize:h,actorFontFamily:p,actorFontWeight:g}=d,[u,x]=(0,s.I5)(h),y=t.split(o.Y2.lineBreakRegex);for(let t=0;t<y.length;t++){let s=t*u-u*(y.length-1)/2,o=e.append("text").attr("x",a+n/2).attr("y",r).style("text-anchor","middle").style("font-size",x).style("font-weight",g).style("font-family",p);o.append("tspan").attr("x",a+n/2).attr("dy",s).text(y[t]),o.attr("y",r+c/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(o,l)}}function a(t,a,r,s,o,n,c,l){let d=a.append("switch"),h=d.append("foreignObject").attr("x",r).attr("y",s).attr("width",o).attr("height",n).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");h.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,d,r,s,o,n,c,l),i(h,c)}async function r(t,a,r,s,n,c,l,d){let h=await (0,o.Dl)(t,(0,o.zj)()),p=a.append("switch"),g=p.append("foreignObject").attr("x",r+n/2-h.width/2).attr("y",s+c/2-h.height/2).attr("width",h.width).attr("height",h.height).append("xhtml:div").style("height","100%").style("width","100%");g.append("div").style("text-align","center").style("vertical-align","middle").html(await (0,o.VJ)(t,(0,o.zj)())),e(t,p,r,s,n,c,l,d),i(g,l)}function i(t,e){for(let a in e)e.hasOwnProperty(a)&&t.attr(a,e[a])}return(0,o.K2)(t,"byText"),(0,o.K2)(e,"byTspan"),(0,o.K2)(a,"byFo"),(0,o.K2)(r,"byKatex"),(0,o.K2)(i,"_setTextAttrs"),function(i,s=!1){return s?r:"fo"===i.textPlacement?a:"old"===i.textPlacement?t:e}}(),tw=function(){function t(t,e,a,i,s,o,n){r(e.append("text").attr("x",a).attr("y",i).style("text-anchor","start").text(t),n)}function e(t,e,a,i,s,n,c,l){let{actorFontSize:d,actorFontFamily:h,actorFontWeight:p}=l,g=t.split(o.Y2.lineBreakRegex);for(let t=0;t<g.length;t++){let s=t*d-d*(g.length-1)/2,o=e.append("text").attr("x",a).attr("y",i).style("text-anchor","start").style("font-size",d).style("font-weight",p).style("font-family",h);o.append("tspan").attr("x",a).attr("dy",s).text(g[t]),o.attr("y",i+n/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),r(o,c)}}function a(t,a,i,s,o,n,c,l){let d=a.append("switch"),h=d.append("foreignObject").attr("x",i).attr("y",s).attr("width",o).attr("height",n).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");h.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,d,i,s,o,n,c,l),r(h,c)}function r(t,e){for(let a in e)e.hasOwnProperty(a)&&t.attr(a,e[a])}return(0,o.K2)(t,"byText"),(0,o.K2)(e,"byTspan"),(0,o.K2)(a,"byFo"),(0,o.K2)(r,"_setTextAttrs"),function(r){return"fo"===r.textPlacement?a:"old"===r.textPlacement?t:e}}(),tI={drawRect:X,drawText:tt,drawLabel:te,drawActor:to,drawBox:tn,drawPopup:G,anchorElement:tc,drawActivation:tl,drawLoop:td,drawBackgroundRect:th,insertArrowHead:tx,insertArrowFilledHead:ty,insertSequenceNumber:tm,insertArrowCrossHead:tb,insertDatabaseIcon:tp,insertComputerIcon:tg,insertClockIcon:tu,getTextObj:tT,getNoteRect:tf,fixLifeLineHeights:tr,sanitizeUrl:c.J},tL={},t_={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:(0,o.K2)(function(){return Math.max.apply(null,0===this.actors.length?[0]:this.actors.map(t=>t.height||0))+(0===this.loops.length?0:this.loops.map(t=>t.height||0).reduce((t,e)=>t+e))+(0===this.messages.length?0:this.messages.map(t=>t.height||0).reduce((t,e)=>t+e))+(0===this.notes.length?0:this.notes.map(t=>t.height||0).reduce((t,e)=>t+e))},"getHeight"),clear:(0,o.K2)(function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},"clear"),addBox:(0,o.K2)(function(t){this.boxes.push(t)},"addBox"),addActor:(0,o.K2)(function(t){this.actors.push(t)},"addActor"),addLoop:(0,o.K2)(function(t){this.loops.push(t)},"addLoop"),addMessage:(0,o.K2)(function(t){this.messages.push(t)},"addMessage"),addNote:(0,o.K2)(function(t){this.notes.push(t)},"addNote"),lastActor:(0,o.K2)(function(){return this.actors[this.actors.length-1]},"lastActor"),lastLoop:(0,o.K2)(function(){return this.loops[this.loops.length-1]},"lastLoop"),lastMessage:(0,o.K2)(function(){return this.messages[this.messages.length-1]},"lastMessage"),lastNote:(0,o.K2)(function(){return this.notes[this.notes.length-1]},"lastNote"),actors:[],boxes:[],loops:[],messages:[],notes:[]},init:(0,o.K2)(function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,tK((0,o.D7)())},"init"),updateVal:(0,o.K2)(function(t,e,a,r){void 0===t[e]?t[e]=a:t[e]=r(a,t[e])},"updateVal"),updateBounds:(0,o.K2)(function(t,e,a,r){let i=this,s=0;function n(n){return(0,o.K2)(function(o){s++;let c=i.sequenceItems.length-s+1;i.updateVal(o,"starty",e-c*tL.boxMargin,Math.min),i.updateVal(o,"stopy",r+c*tL.boxMargin,Math.max),i.updateVal(t_.data,"startx",t-c*tL.boxMargin,Math.min),i.updateVal(t_.data,"stopx",a+c*tL.boxMargin,Math.max),"activation"!==n&&(i.updateVal(o,"startx",t-c*tL.boxMargin,Math.min),i.updateVal(o,"stopx",a+c*tL.boxMargin,Math.max),i.updateVal(t_.data,"starty",e-c*tL.boxMargin,Math.min),i.updateVal(t_.data,"stopy",r+c*tL.boxMargin,Math.max))},"updateItemBounds")}(0,o.K2)(n,"updateFn"),this.sequenceItems.forEach(n()),this.activations.forEach(n("activation"))},"updateBounds"),insert:(0,o.K2)(function(t,e,a,r){let i=o.Y2.getMin(t,a),s=o.Y2.getMax(t,a),n=o.Y2.getMin(e,r),c=o.Y2.getMax(e,r);this.updateVal(t_.data,"startx",i,Math.min),this.updateVal(t_.data,"starty",n,Math.min),this.updateVal(t_.data,"stopx",s,Math.max),this.updateVal(t_.data,"stopy",c,Math.max),this.updateBounds(i,n,s,c)},"insert"),newActivation:(0,o.K2)(function(t,e,a){let r=a.get(t.from),i=tR(t.from).length||0,s=r.x+r.width/2+(i-1)*tL.activationWidth/2;this.activations.push({startx:s,starty:this.verticalPos+2,stopx:s+tL.activationWidth,stopy:void 0,actor:t.from,anchored:tI.anchorElement(e)})},"newActivation"),endActivation:(0,o.K2)(function(t){let e=this.activations.map(function(t){return t.actor}).lastIndexOf(t.from);return this.activations.splice(e,1)[0]},"endActivation"),createLoop:(0,o.K2)(function(t={message:void 0,wrap:!1,width:void 0},e){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}},"createLoop"),newLoop:(0,o.K2)(function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},"newLoop"),endLoop:(0,o.K2)(function(){return this.sequenceItems.pop()},"endLoop"),isLoopOverlap:(0,o.K2)(function(){return!!this.sequenceItems.length&&this.sequenceItems[this.sequenceItems.length-1].overlap},"isLoopOverlap"),addSectionToLoop:(0,o.K2)(function(t){let e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:t_.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},"addSectionToLoop"),saveVerticalPos:(0,o.K2)(function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},"saveVerticalPos"),resetVerticalPos:(0,o.K2)(function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},"resetVerticalPos"),bumpVerticalPos:(0,o.K2)(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=o.Y2.getMax(this.data.stopy,this.verticalPos)},"bumpVerticalPos"),getVerticalPos:(0,o.K2)(function(){return this.verticalPos},"getVerticalPos"),getBounds:(0,o.K2)(function(){return{bounds:this.data,models:this.models}},"getBounds")},tP=(0,o.K2)(async function(t,e){t_.bumpVerticalPos(tL.boxMargin),e.height=tL.boxMargin,e.starty=t_.getVerticalPos();let a=(0,r.PB)();a.x=e.startx,a.y=e.starty,a.width=e.width||tL.width,a.class="note";let i=t.append("g"),s=tI.drawRect(i,a),n=(0,r.HT)();n.x=e.startx,n.y=e.starty,n.width=a.width,n.dy="1em",n.text=e.message,n.class="noteText",n.fontFamily=tL.noteFontFamily,n.fontSize=tL.noteFontSize,n.fontWeight=tL.noteFontWeight,n.anchor=tL.noteAlign,n.textMargin=tL.noteMargin,n.valign="center";let c=Math.round(((0,o.Wi)(n.text)?await Q(i,n):tt(i,n)).map(t=>(t._groups||t)[0][0].getBBox().height).reduce((t,e)=>t+e));s.attr("height",c+2*tL.noteMargin),e.height+=c+2*tL.noteMargin,t_.bumpVerticalPos(c+2*tL.noteMargin),e.stopy=e.starty+c+2*tL.noteMargin,e.stopx=e.startx+a.width,t_.insert(e.startx,e.starty,e.stopx,e.stopy),t_.models.addNote(e)},"drawNote"),tk=(0,o.K2)(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont"),tv=(0,o.K2)(t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),"noteFont"),tN=(0,o.K2)(t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight}),"actorFont");async function tA(t,e){let a;t_.bumpVerticalPos(10);let{startx:r,stopx:i,message:n}=e,c=o.Y2.splitBreaks(n).length,l=(0,o.Wi)(n),d=l?await (0,o.Dl)(n,(0,o.D7)()):s._K.calculateTextDimensions(n,tk(tL));if(!l){let t=d.height/c;e.height+=t,t_.bumpVerticalPos(t)}let h=d.height-10,p=d.width;if(r===i){a=t_.getVerticalPos()+h,tL.rightAngles||(h+=tL.boxMargin,a=t_.getVerticalPos()+h),h+=30;let t=o.Y2.getMax(p/2,tL.width/2);t_.insert(r-t,t_.getVerticalPos()-10+h,i+t,t_.getVerticalPos()+30+h)}else h+=tL.boxMargin,a=t_.getVerticalPos()+h,t_.insert(r,a-10,i,a);return t_.bumpVerticalPos(h),e.height+=h,e.stopy=e.starty+e.height,t_.insert(e.fromBounds,e.starty,e.toBounds,e.stopy),a}(0,o.K2)(tA,"boundMessage");var tM=(0,o.K2)(async function(t,e,a,i){let n;let{startx:c,stopx:l,starty:d,message:h,type:p,sequenceIndex:g,sequenceVisible:u}=e,x=s._K.calculateTextDimensions(h,tk(tL)),y=(0,r.HT)();y.x=c,y.y=d+10,y.width=l-c,y.class="messageText",y.dy="1em",y.text=h,y.fontFamily=tL.messageFontFamily,y.fontSize=tL.messageFontSize,y.fontWeight=tL.messageFontWeight,y.anchor=tL.messageAlign,y.valign="center",y.textMargin=tL.wrapPadding,y.tspan=!1,(0,o.Wi)(y.text)?await Q(t,y,{startx:c,stopx:l,starty:a}):tt(t,y);let m=x.width;c===l?n=tL.rightAngles?t.append("path").attr("d",`M ${c},${a} H ${c+o.Y2.getMax(tL.width/2,m/2)} V ${a+25} H ${c}`):t.append("path").attr("d","M "+c+","+a+" C "+(c+60)+","+(a-10)+" "+(c+60)+","+(a+30)+" "+c+","+(a+20)):((n=t.append("line")).attr("x1",c),n.attr("y1",a),n.attr("x2",l),n.attr("y2",a)),p===i.db.LINETYPE.DOTTED||p===i.db.LINETYPE.DOTTED_CROSS||p===i.db.LINETYPE.DOTTED_POINT||p===i.db.LINETYPE.DOTTED_OPEN||p===i.db.LINETYPE.BIDIRECTIONAL_DOTTED?(n.style("stroke-dasharray","3, 3"),n.attr("class","messageLine1")):n.attr("class","messageLine0");let b="";tL.arrowMarkerAbsolute&&(b=(b=(b=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),n.attr("stroke-width",2),n.attr("stroke","none"),n.style("fill","none"),(p===i.db.LINETYPE.SOLID||p===i.db.LINETYPE.DOTTED)&&n.attr("marker-end","url("+b+"#arrowhead)"),(p===i.db.LINETYPE.BIDIRECTIONAL_SOLID||p===i.db.LINETYPE.BIDIRECTIONAL_DOTTED)&&(n.attr("marker-start","url("+b+"#arrowhead)"),n.attr("marker-end","url("+b+"#arrowhead)")),(p===i.db.LINETYPE.SOLID_POINT||p===i.db.LINETYPE.DOTTED_POINT)&&n.attr("marker-end","url("+b+"#filled-head)"),(p===i.db.LINETYPE.SOLID_CROSS||p===i.db.LINETYPE.DOTTED_CROSS)&&n.attr("marker-end","url("+b+"#crosshead)"),(u||tL.showSequenceNumbers)&&(n.attr("marker-start","url("+b+"#sequencenumber)"),t.append("text").attr("x",c).attr("y",a+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(g))},"drawMessage"),tO=(0,o.K2)(function(t,e,a,r,i,s,n){let c,l=0,d=0,h=0;for(let t of r){let r=e.get(t),s=r.box;c&&c!=s&&(n||t_.models.addBox(c),d+=tL.boxMargin+c.margin),s&&s!=c&&(n||(s.x=l+d,s.y=i),d+=s.margin),r.width=r.width||tL.width,r.height=o.Y2.getMax(r.height||tL.height,tL.height),r.margin=r.margin||tL.actorMargin,h=o.Y2.getMax(h,r.height),a.get(r.name)&&(d+=r.width/2),r.x=l+d,r.starty=t_.getVerticalPos(),t_.insert(r.x,i,r.x+r.width,r.height),l+=r.width+d,r.box&&(r.box.width=l+s.margin-r.box.x),d=r.margin,c=r.box,t_.models.addActor(r)}c&&!n&&t_.models.addBox(c),t_.bumpVerticalPos(h)},"addActorRenderingData"),tD=(0,o.K2)(async function(t,e,a,r){if(r){let r=0;for(let i of(t_.bumpVerticalPos(2*tL.boxMargin),a)){let a=e.get(i);a.stopy||(a.stopy=t_.getVerticalPos());let s=await tI.drawActor(t,a,tL,!0);r=o.Y2.getMax(r,s)}t_.bumpVerticalPos(r+tL.boxMargin)}else for(let r of a){let a=e.get(r);await tI.drawActor(t,a,tL,!1)}},"drawActors"),tS=(0,o.K2)(function(t,e,a,r){let i=0,s=0;for(let o of a){let a=e.get(o),n=tF(a),c=tI.drawPopup(t,a,n,tL,tL.forceMenus,r);c.height>i&&(i=c.height),c.width+a.x>s&&(s=c.width+a.x)}return{maxHeight:i,maxWidth:s}},"drawActorsPopup"),tK=(0,o.K2)(function(t){(0,o.hH)(tL,t),t.fontFamily&&(tL.actorFontFamily=tL.noteFontFamily=tL.messageFontFamily=t.fontFamily),t.fontSize&&(tL.actorFontSize=tL.noteFontSize=tL.messageFontSize=t.fontSize),t.fontWeight&&(tL.actorFontWeight=tL.noteFontWeight=tL.messageFontWeight=t.fontWeight)},"setConf"),tR=(0,o.K2)(function(t){return t_.activations.filter(function(e){return e.actor===t})},"actorActivations"),tY=(0,o.K2)(function(t,e){let a=e.get(t),r=tR(t);return[r.reduce(function(t,e){return o.Y2.getMin(t,e.startx)},a.x+a.width/2-1),r.reduce(function(t,e){return o.Y2.getMax(t,e.stopx)},a.x+a.width/2+1)]},"activationBounds");function tC(t,e,a,r,i){t_.bumpVerticalPos(a);let n=r;if(e.id&&e.message&&t[e.id]){let a=t[e.id].width,i=tk(tL);e.message=s._K.wrapLabel(`[${e.message}]`,a-2*tL.wrapPadding,i),e.width=a,e.wrap=!0;let c=s._K.calculateTextDimensions(e.message,i),l=o.Y2.getMax(c.height,tL.labelBoxHeight);n=r+l,o.Rm.debug(`${l} - ${e.message}`)}i(e),t_.bumpVerticalPos(n)}function tB(t,e,a,r,i,s,n){function c(a,r){a.x<i.get(t.from).x?(t_.insert(e.stopx-r,e.starty,e.startx,e.stopy+a.height/2+tL.noteMargin),e.stopx=e.stopx+r):(t_.insert(e.startx,e.starty,e.stopx+r,e.stopy+a.height/2+tL.noteMargin),e.stopx=e.stopx-r)}function l(a,r){a.x<i.get(t.to).x?(t_.insert(e.startx-r,e.starty,e.stopx,e.stopy+a.height/2+tL.noteMargin),e.startx=e.startx+r):(t_.insert(e.stopx,e.starty,e.startx+r,e.stopy+a.height/2+tL.noteMargin),e.startx=e.startx-r)}if((0,o.K2)(c,"receiverAdjustment"),(0,o.K2)(l,"senderAdjustment"),s.get(t.to)==r){let e=i.get(t.to),r="actor"==e.type?21:e.width/2+3;c(e,r),e.starty=a-e.height/2,t_.bumpVerticalPos(e.height/2)}else if(n.get(t.from)==r){let e=i.get(t.from);if(tL.mirrorActors){let t="actor"==e.type?18:e.width/2;l(e,t)}e.stopy=a-e.height/2,t_.bumpVerticalPos(e.height/2)}else if(n.get(t.to)==r){let e=i.get(t.to);if(tL.mirrorActors){let t="actor"==e.type?21:e.width/2+3;c(e,t)}e.stopy=a-e.height/2,t_.bumpVerticalPos(e.height/2)}}(0,o.K2)(tC,"adjustLoopHeightForWrap"),(0,o.K2)(tB,"adjustCreatedDestroyedData");var t$=(0,o.K2)(async function(t,e,a,r){let i;let{securityLevel:s,sequence:c}=(0,o.D7)();tL=c,"sandbox"===s&&(i=(0,n.Ltv)("#i"+e));let l="sandbox"===s?(0,n.Ltv)(i.nodes()[0].contentDocument.body):(0,n.Ltv)("body"),d="sandbox"===s?i.nodes()[0].contentDocument:document;t_.init(),o.Rm.debug(r.db);let h="sandbox"===s?l.select(`[id="${e}"]`):(0,n.Ltv)(`[id="${e}"]`),p=r.db.getActors(),g=r.db.getCreatedActors(),u=r.db.getDestroyedActors(),x=r.db.getBoxes(),y=r.db.getActorKeys(),m=r.db.getMessages(),b=r.db.getDiagramTitle(),T=r.db.hasAtLeastOneBox(),f=r.db.hasAtLeastOneBoxWithTitle(),E=await tV(p,m,r);if(tL.height=await tW(p,E,x),tI.insertComputerIcon(h),tI.insertDatabaseIcon(h),tI.insertClockIcon(h),T&&(t_.bumpVerticalPos(tL.boxMargin),f&&t_.bumpVerticalPos(x[0].textMaxHeight)),!0===tL.hideUnusedParticipants){let t=new Set;m.forEach(e=>{t.add(e.from),t.add(e.to)}),y=y.filter(e=>t.has(e))}tO(h,p,g,y,0,m,!1);let w=await tH(m,p,E,r);function I(t,e){let a=t_.endActivation(t);a.starty+18>e&&(a.starty=e-6,e+=12),tI.drawActivation(h,a,e,tL,tR(t.from).length),t_.insert(a.startx,e-10,a.stopx,e)}tI.insertArrowHead(h),tI.insertArrowCrossHead(h),tI.insertArrowFilledHead(h),tI.insertSequenceNumber(h),(0,o.K2)(I,"activeEnd");let L=1,_=1,P=[],k=[],v=0;for(let t of m){let e,a,i;switch(t.type){case r.db.LINETYPE.NOTE:t_.resetVerticalPos(),a=t.noteModel,await tP(h,a);break;case r.db.LINETYPE.ACTIVE_START:t_.newActivation(t,h,p);break;case r.db.LINETYPE.ACTIVE_END:I(t,t_.getVerticalPos());break;case r.db.LINETYPE.LOOP_START:tC(w,t,tL.boxMargin,tL.boxMargin+tL.boxTextMargin,t=>t_.newLoop(t));break;case r.db.LINETYPE.LOOP_END:e=t_.endLoop(),await tI.drawLoop(h,e,"loop",tL),t_.bumpVerticalPos(e.stopy-t_.getVerticalPos()),t_.models.addLoop(e);break;case r.db.LINETYPE.RECT_START:tC(w,t,tL.boxMargin,tL.boxMargin,t=>t_.newLoop(void 0,t.message));break;case r.db.LINETYPE.RECT_END:e=t_.endLoop(),k.push(e),t_.models.addLoop(e),t_.bumpVerticalPos(e.stopy-t_.getVerticalPos());break;case r.db.LINETYPE.OPT_START:tC(w,t,tL.boxMargin,tL.boxMargin+tL.boxTextMargin,t=>t_.newLoop(t));break;case r.db.LINETYPE.OPT_END:e=t_.endLoop(),await tI.drawLoop(h,e,"opt",tL),t_.bumpVerticalPos(e.stopy-t_.getVerticalPos()),t_.models.addLoop(e);break;case r.db.LINETYPE.ALT_START:tC(w,t,tL.boxMargin,tL.boxMargin+tL.boxTextMargin,t=>t_.newLoop(t));break;case r.db.LINETYPE.ALT_ELSE:tC(w,t,tL.boxMargin+tL.boxTextMargin,tL.boxMargin,t=>t_.addSectionToLoop(t));break;case r.db.LINETYPE.ALT_END:e=t_.endLoop(),await tI.drawLoop(h,e,"alt",tL),t_.bumpVerticalPos(e.stopy-t_.getVerticalPos()),t_.models.addLoop(e);break;case r.db.LINETYPE.PAR_START:case r.db.LINETYPE.PAR_OVER_START:tC(w,t,tL.boxMargin,tL.boxMargin+tL.boxTextMargin,t=>t_.newLoop(t)),t_.saveVerticalPos();break;case r.db.LINETYPE.PAR_AND:tC(w,t,tL.boxMargin+tL.boxTextMargin,tL.boxMargin,t=>t_.addSectionToLoop(t));break;case r.db.LINETYPE.PAR_END:e=t_.endLoop(),await tI.drawLoop(h,e,"par",tL),t_.bumpVerticalPos(e.stopy-t_.getVerticalPos()),t_.models.addLoop(e);break;case r.db.LINETYPE.AUTONUMBER:L=t.message.start||L,_=t.message.step||_,t.message.visible?r.db.enableSequenceNumbers():r.db.disableSequenceNumbers();break;case r.db.LINETYPE.CRITICAL_START:tC(w,t,tL.boxMargin,tL.boxMargin+tL.boxTextMargin,t=>t_.newLoop(t));break;case r.db.LINETYPE.CRITICAL_OPTION:tC(w,t,tL.boxMargin+tL.boxTextMargin,tL.boxMargin,t=>t_.addSectionToLoop(t));break;case r.db.LINETYPE.CRITICAL_END:e=t_.endLoop(),await tI.drawLoop(h,e,"critical",tL),t_.bumpVerticalPos(e.stopy-t_.getVerticalPos()),t_.models.addLoop(e);break;case r.db.LINETYPE.BREAK_START:tC(w,t,tL.boxMargin,tL.boxMargin+tL.boxTextMargin,t=>t_.newLoop(t));break;case r.db.LINETYPE.BREAK_END:e=t_.endLoop(),await tI.drawLoop(h,e,"break",tL),t_.bumpVerticalPos(e.stopy-t_.getVerticalPos()),t_.models.addLoop(e);break;default:try{(i=t.msgModel).starty=t_.getVerticalPos(),i.sequenceIndex=L,i.sequenceVisible=r.db.showSequenceNumbers();let e=await tA(h,i);tB(t,i,e,v,p,g,u),P.push({messageModel:i,lineStartY:e}),t_.models.addMessage(i)}catch(t){o.Rm.error("error while drawing message",t)}}[r.db.LINETYPE.SOLID_OPEN,r.db.LINETYPE.DOTTED_OPEN,r.db.LINETYPE.SOLID,r.db.LINETYPE.DOTTED,r.db.LINETYPE.SOLID_CROSS,r.db.LINETYPE.DOTTED_CROSS,r.db.LINETYPE.SOLID_POINT,r.db.LINETYPE.DOTTED_POINT,r.db.LINETYPE.BIDIRECTIONAL_SOLID,r.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(t.type)&&(L+=_),v++}for(let t of(o.Rm.debug("createdActors",g),o.Rm.debug("destroyedActors",u),await tD(h,p,y,!1),P))await tM(h,t.messageModel,t.lineStartY,r);for(let t of(tL.mirrorActors&&await tD(h,p,y,!0),k.forEach(t=>tI.drawBackgroundRect(h,t)),tr(h,p,y,tL),t_.models.boxes))t.height=t_.getVerticalPos()-t.y,t_.insert(t.x,t.y,t.x+t.width,t.height),t.startx=t.x,t.starty=t.y,t.stopx=t.startx+t.width,t.stopy=t.starty+t.height,t.stroke="rgb(0,0,0, 0.5)",tI.drawBox(h,t,tL);T&&t_.bumpVerticalPos(tL.boxMargin);let N=tS(h,p,y,d),{bounds:A}=t_.getBounds();void 0===A.startx&&(A.startx=0),void 0===A.starty&&(A.starty=0),void 0===A.stopx&&(A.stopx=0),void 0===A.stopy&&(A.stopy=0);let M=A.stopy-A.starty;M<N.maxHeight&&(M=N.maxHeight);let O=M+2*tL.diagramMarginY;tL.mirrorActors&&(O=O-tL.boxMargin+tL.bottomMarginAdj);let D=A.stopx-A.startx;D<N.maxWidth&&(D=N.maxWidth);let S=D+2*tL.diagramMarginX;b&&h.append("text").text(b).attr("x",(A.stopx-A.startx)/2-2*tL.diagramMarginX).attr("y",-25),(0,o.a$)(h,O,S,tL.useMaxWidth);let K=b?40:0;h.attr("viewBox",A.startx-tL.diagramMarginX+" -"+(tL.diagramMarginY+K)+" "+S+" "+(O+K)),o.Rm.debug("models:",t_.models)},"draw");async function tV(t,e,a){let r={};for(let i of e)if(t.get(i.to)&&t.get(i.from)){let e=t.get(i.to);if(i.placement===a.db.PLACEMENT.LEFTOF&&!e.prevActor||i.placement===a.db.PLACEMENT.RIGHTOF&&!e.nextActor)continue;let n=void 0!==i.placement,c=!n,l=n?tv(tL):tk(tL),d=i.wrap?s._K.wrapLabel(i.message,tL.width-2*tL.wrapPadding,l):i.message,h=((0,o.Wi)(d)?await (0,o.Dl)(i.message,(0,o.D7)()):s._K.calculateTextDimensions(d,l)).width+2*tL.wrapPadding;c&&i.from===e.nextActor?r[i.to]=o.Y2.getMax(r[i.to]||0,h):c&&i.from===e.prevActor?r[i.from]=o.Y2.getMax(r[i.from]||0,h):c&&i.from===i.to?(r[i.from]=o.Y2.getMax(r[i.from]||0,h/2),r[i.to]=o.Y2.getMax(r[i.to]||0,h/2)):i.placement===a.db.PLACEMENT.RIGHTOF?r[i.from]=o.Y2.getMax(r[i.from]||0,h):i.placement===a.db.PLACEMENT.LEFTOF?r[e.prevActor]=o.Y2.getMax(r[e.prevActor]||0,h):i.placement===a.db.PLACEMENT.OVER&&(e.prevActor&&(r[e.prevActor]=o.Y2.getMax(r[e.prevActor]||0,h/2)),e.nextActor&&(r[i.from]=o.Y2.getMax(r[i.from]||0,h/2)))}return o.Rm.debug("maxMessageWidthPerActor:",r),r}(0,o.K2)(tV,"getMaxMessageWidthPerActor");var tF=(0,o.K2)(function(t){let e=0,a=tN(tL);for(let r in t.links){let t=s._K.calculateTextDimensions(r,a).width+2*tL.wrapPadding+2*tL.boxMargin;e<t&&(e=t)}return e},"getRequiredPopupWidth");async function tW(t,e,a){let r=0;for(let e of t.keys()){let a=t.get(e);a.wrap&&(a.description=s._K.wrapLabel(a.description,tL.width-2*tL.wrapPadding,tN(tL)));let i=(0,o.Wi)(a.description)?await (0,o.Dl)(a.description,(0,o.D7)()):s._K.calculateTextDimensions(a.description,tN(tL));a.width=a.wrap?tL.width:o.Y2.getMax(tL.width,i.width+2*tL.wrapPadding),a.height=a.wrap?o.Y2.getMax(i.height,tL.height):tL.height,r=o.Y2.getMax(r,a.height)}for(let a in e){let r=t.get(a);if(!r)continue;let i=t.get(r.nextActor);if(!i){let t=e[a]+tL.actorMargin-r.width/2;r.margin=o.Y2.getMax(t,tL.actorMargin);continue}let s=e[a]+tL.actorMargin-r.width/2-i.width/2;r.margin=o.Y2.getMax(s,tL.actorMargin)}let i=0;return a.forEach(e=>{let a=tk(tL),r=e.actorKeys.reduce((e,a)=>e+=t.get(a).width+(t.get(a).margin||0),0);r-=2*tL.boxTextMargin,e.wrap&&(e.name=s._K.wrapLabel(e.name,r-2*tL.wrapPadding,a));let n=s._K.calculateTextDimensions(e.name,a);i=o.Y2.getMax(n.height,i);let c=o.Y2.getMax(r,n.width+2*tL.wrapPadding);if(e.margin=tL.boxTextMargin,r<c){let t=(c-r)/2;e.margin+=t}}),a.forEach(t=>t.textMaxHeight=i),o.Y2.getMax(r,tL.height)}(0,o.K2)(tW,"calculateActorMargins");var tq=(0,o.K2)(async function(t,e,a){let r=e.get(t.from),i=e.get(t.to),n=r.x,c=i.x,l=t.wrap&&t.message,d=(0,o.Wi)(t.message)?await (0,o.Dl)(t.message,(0,o.D7)()):s._K.calculateTextDimensions(l?s._K.wrapLabel(t.message,tL.width,tv(tL)):t.message,tv(tL)),h={width:l?tL.width:o.Y2.getMax(tL.width,d.width+2*tL.noteMargin),height:0,startx:r.x,stopx:0,starty:0,stopy:0,message:t.message};return t.placement===a.db.PLACEMENT.RIGHTOF?(h.width=l?o.Y2.getMax(tL.width,d.width):o.Y2.getMax(r.width/2+i.width/2,d.width+2*tL.noteMargin),h.startx=n+(r.width+tL.actorMargin)/2):t.placement===a.db.PLACEMENT.LEFTOF?(h.width=l?o.Y2.getMax(tL.width,d.width+2*tL.noteMargin):o.Y2.getMax(r.width/2+i.width/2,d.width+2*tL.noteMargin),h.startx=n-h.width+(r.width-tL.actorMargin)/2):t.to===t.from?(d=s._K.calculateTextDimensions(l?s._K.wrapLabel(t.message,o.Y2.getMax(tL.width,r.width),tv(tL)):t.message,tv(tL)),h.width=l?o.Y2.getMax(tL.width,r.width):o.Y2.getMax(r.width,tL.width,d.width+2*tL.noteMargin),h.startx=n+(r.width-h.width)/2):(h.width=Math.abs(n+r.width/2-(c+i.width/2))+tL.actorMargin,h.startx=n<c?n+r.width/2-tL.actorMargin/2:c+i.width/2-tL.actorMargin/2),l&&(h.message=s._K.wrapLabel(t.message,h.width-2*tL.wrapPadding,tv(tL))),o.Rm.debug(`NM:[${h.startx},${h.stopx},${h.starty},${h.stopy}:${h.width},${h.height}=${t.message}]`),h},"buildNoteModel"),tz=(0,o.K2)(function(t,e,a){if(![a.db.LINETYPE.SOLID_OPEN,a.db.LINETYPE.DOTTED_OPEN,a.db.LINETYPE.SOLID,a.db.LINETYPE.DOTTED,a.db.LINETYPE.SOLID_CROSS,a.db.LINETYPE.DOTTED_CROSS,a.db.LINETYPE.SOLID_POINT,a.db.LINETYPE.DOTTED_POINT,a.db.LINETYPE.BIDIRECTIONAL_SOLID,a.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(t.type))return{};let[r,i]=tY(t.from,e),[n,c]=tY(t.to,e),l=r<=n,d=l?i:r,h=l?n:c,p=Math.abs(n-c)>2,g=(0,o.K2)(t=>l?-t:t,"adjustValue");t.from===t.to?h=d:(t.activate&&!p&&(h+=g(tL.activationWidth/2-1)),[a.db.LINETYPE.SOLID_OPEN,a.db.LINETYPE.DOTTED_OPEN].includes(t.type)||(h+=g(3)),[a.db.LINETYPE.BIDIRECTIONAL_SOLID,a.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(t.type)&&(d-=g(3)));let u=[r,i,n,c],x=Math.abs(d-h);t.wrap&&t.message&&(t.message=s._K.wrapLabel(t.message,o.Y2.getMax(x+2*tL.wrapPadding,tL.width),tk(tL)));let y=s._K.calculateTextDimensions(t.message,tk(tL));return{width:o.Y2.getMax(t.wrap?0:y.width+2*tL.wrapPadding,x+2*tL.wrapPadding,tL.width),height:0,startx:d,stopx:h,starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,u),toBounds:Math.max.apply(null,u)}},"buildMessageModel"),tH=(0,o.K2)(async function(t,e,a,r){let i,n,c;let l={},d=[];for(let a of t){switch(a.id=s._K.random({length:10}),a.type){case r.db.LINETYPE.LOOP_START:case r.db.LINETYPE.ALT_START:case r.db.LINETYPE.OPT_START:case r.db.LINETYPE.PAR_START:case r.db.LINETYPE.PAR_OVER_START:case r.db.LINETYPE.CRITICAL_START:case r.db.LINETYPE.BREAK_START:d.push({id:a.id,msg:a.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case r.db.LINETYPE.ALT_ELSE:case r.db.LINETYPE.PAR_AND:case r.db.LINETYPE.CRITICAL_OPTION:a.message&&(l[(i=d.pop()).id]=i,l[a.id]=i,d.push(i));break;case r.db.LINETYPE.LOOP_END:case r.db.LINETYPE.ALT_END:case r.db.LINETYPE.OPT_END:case r.db.LINETYPE.PAR_END:case r.db.LINETYPE.CRITICAL_END:case r.db.LINETYPE.BREAK_END:l[(i=d.pop()).id]=i;break;case r.db.LINETYPE.ACTIVE_START:{let t=e.get(a.from?a.from:a.to.actor),r=tR(a.from?a.from:a.to.actor).length,i=t.x+t.width/2+(r-1)*tL.activationWidth/2,s={startx:i,stopx:i+tL.activationWidth,actor:a.from,enabled:!0};t_.activations.push(s)}break;case r.db.LINETYPE.ACTIVE_END:{let t=t_.activations.map(t=>t.actor).lastIndexOf(a.from);t_.activations.splice(t,1).splice(0,1)}}void 0!==a.placement?(n=await tq(a,e,r),a.noteModel=n,d.forEach(t=>{(i=t).from=o.Y2.getMin(i.from,n.startx),i.to=o.Y2.getMax(i.to,n.startx+n.width),i.width=o.Y2.getMax(i.width,Math.abs(i.from-i.to))-tL.labelBoxWidth})):(c=tz(a,e,r),a.msgModel=c,c.startx&&c.stopx&&d.length>0&&d.forEach(t=>{if(i=t,c.startx===c.stopx){let t=e.get(a.from),r=e.get(a.to);i.from=o.Y2.getMin(t.x-c.width/2,t.x-t.width/2,i.from),i.to=o.Y2.getMax(r.x+c.width/2,r.x+t.width/2,i.to),i.width=o.Y2.getMax(i.width,Math.abs(i.to-i.from))-tL.labelBoxWidth}else i.from=o.Y2.getMin(c.startx,i.from),i.to=o.Y2.getMax(c.stopx,i.to),i.width=o.Y2.getMax(i.width,c.width)-tL.labelBoxWidth}))}return t_.activations=[],o.Rm.debug("Loop type widths:",l),l},"calculateLoopBounds"),tj={parser:l,db:z,renderer:{bounds:t_,drawActors:tD,drawActorsPopup:tS,setConf:tK,draw:t$},styles:H,init:(0,o.K2)(({wrap:t})=>{z.setWrap(t)},"init")}}}]); \ No newline at end of file diff --git a/assets/js/1d8d7b8d.301d474e.js b/assets/js/1d8d7b8d.301d474e.js new file mode 100644 index 0000000000..cfa2d0253e --- /dev/null +++ b/assets/js/1d8d7b8d.301d474e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[76975],{15995:(e,r,n)=>{n.d(r,{A:()=>o});var s=n(62540);n(63696);var a=n(11750);function o({children:e,hidden:r,className:n}){return(0,s.jsx)("div",{role:"tabpanel",className:(0,a.A)("tabItem_pnkT",n),hidden:r,children:e})}},27446:(e,r,n)=>{n.d(r,{A:()=>b});var s=n(62540),a=n(63696),o=n(11750),i=n(7846),t=n(49519),c=n(96439),l=n(19739),h=n(66904),d=n(79244);function u(e){var r,n;return null!==(n=null===(r=a.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){let{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===r?void 0:r.filter(Boolean))&&void 0!==n?n:[]}function p({value:e,tabValues:r}){return r.some(r=>r.value===e)}var g=n(10709);function f(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},s=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),s.forEach(function(r){var s;s=n[r],r in e?Object.defineProperty(e,r,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[r]=s})}return e}function m(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);n.push.apply(n,s)}return n})(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}),e}function x({className:e,block:r,selectedValue:n,selectValue:a,tabValues:t}){let c=[],{blockElementScrollPositionUntilNextRender:l}=(0,i.a_)(),h=e=>{let r=e.currentTarget,s=t[c.indexOf(r)].value;s!==n&&(l(r),a(s))},d=e=>{var r,n;let s=null;switch(e.key){case"Enter":h(e);break;case"ArrowRight":{let n=c.indexOf(e.currentTarget)+1;s=null!==(r=c[n])&&void 0!==r?r:c[0];break}case"ArrowLeft":{let r=c.indexOf(e.currentTarget)-1;s=null!==(n=c[r])&&void 0!==n?n:c[c.length-1]}}null==s||s.focus()};return(0,s.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.A)("tabs",{"tabs--block":r},e),children:t.map(({value:e,label:r,attributes:a})=>(0,s.jsx)("li",m(f({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>c.push(e),onKeyDown:d,onClick:h},a),{className:(0,o.A)("tabs__item","tabItem_AQgk",null==a?void 0:a.className,{"tabs__item--active":n===e}),children:null!=r?r:e}),e))})}function j({lazy:e,children:r,selectedValue:n}){let i=(Array.isArray(r)?r:[r]).filter(Boolean);if(e){let e=i.find(e=>e.props.value===n);return e?(0,a.cloneElement)(e,{className:(0,o.A)("margin-top--md",e.props.className)}):null}return(0,s.jsx)("div",{className:"margin-top--md",children:i.map((e,r)=>(0,a.cloneElement)(e,{key:r,hidden:e.props.value!==n}))})}function y(e){let r=function(e){let{defaultValue:r,queryString:n=!1,groupId:s}=e,o=function(e){let{values:r,children:n}=e;return(0,a.useMemo)(()=>{let e=null!=r?r:u(n).map(({props:{value:e,label:r,attributes:n,default:s}})=>({value:e,label:r,attributes:n,default:s}));return!function(e){let r=(0,h.XI)(e,(e,r)=>e.value===r.value);if(r.length>0)throw Error(`Docusaurus error: Duplicate values "${r.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[r,n])}(e),[i,g]=(0,a.useState)(()=>(function({defaultValue:e,tabValues:r}){var n;if(0===r.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:r}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let s=null!==(n=r.find(e=>e.default))&&void 0!==n?n:r[0];if(!s)throw Error("Unexpected error: 0 tabValues");return s.value})({defaultValue:r,tabValues:o})),[f,m]=function({queryString:e=!1,groupId:r}){let n=(0,t.W6)(),s=function({queryString:e=!1,groupId:r}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!r)throw Error('Docusaurus error: The <Tabs> 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 null!=r?r:null}({queryString:e,groupId:r});return[(0,l.aZ)(s),(0,a.useCallback)(e=>{var r,a;if(!s)return;let o=new URLSearchParams(n.location.search);o.set(s,e),n.replace((r=function(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},s=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),s.forEach(function(r){var s;s=n[r],r in e?Object.defineProperty(e,r,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[r]=s})}return e}({},n.location),a=a={search:o.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(a)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);n.push.apply(n,s)}return n})(Object(a)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(a,e))}),r))},[s,n])]}({queryString:n,groupId:s}),[x,j]=function({groupId:e}){let r=e?`docusaurus.tab.${e}`:null,[n,s]=(0,d.Dv)(r);return[n,(0,a.useCallback)(e=>{r&&s.set(e)},[r,s])]}({groupId:s}),y=(()=>{let e=null!=f?f:x;return p({value:e,tabValues:o})?e:null})();return(0,c.A)(()=>{y&&g(y)},[y]),{selectedValue:i,selectValue:(0,a.useCallback)(e=>{if(!p({value:e,tabValues:o}))throw Error(`Can't select invalid tab value=${e}`);g(e),m(e),j(e)},[m,j,o]),tabValues:o}}(e);return(0,s.jsxs)("div",{className:(0,o.A)("tabs-container","tabList_Qoir"),children:[(0,s.jsx)(x,f({},r,e)),(0,s.jsx)(j,f({},r,e))]})}function b(e){let r=(0,g.A)();return(0,s.jsx)(y,m(f({},e),{children:u(e.children)}),String(r))}},25472:(e,r,n)=>{n.d(r,{A:()=>s});let s=n.p+"assets/images/docsearch-troubleshoot-index-facets-4c0d9816a72c457e3e8352bc0fceccb6.jpg"},12787:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>h,contentTitle:()=>l,default:()=>p,frontMatter:()=>c,metadata:()=>s,toc:()=>d});let s=JSON.parse('{"id":"search","title":"Search","description":"There are a few options you can use to add search to your website:","source":"@site/docs/search.mdx","sourceDirName":".","slug":"/search","permalink":"/docs/search","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/search.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"keywords":["algolia","search"]},"sidebar":"docs","previous":{"title":"Static Assets","permalink":"/docs/static-assets"},"next":{"title":"Browser support","permalink":"/docs/browser-support"}}');var a=n(62540),o=n(43023),i=n(27446),t=n(15995);let c={keywords:["algolia","search"]},l="Search",h={},d=[{value:"\u{1F947} Using Algolia DocSearch",id:"using-algolia-docsearch",level:2},{value:"Index Configuration",id:"algolia-index-configuration",level:3},{value:"Connecting Algolia",id:"connecting-algolia",level:3},{value:"Contextual search",id:"contextual-search",level:3},{value:"Styling your Algolia search",id:"styling-your-algolia-search",level:3},{value:"Customizing the Algolia search behavior",id:"customizing-the-algolia-search-behavior",level:3},{value:"Editing the Algolia search component",id:"editing-the-algolia-search-component",level:3},{value:"Troubleshooting",id:"algolia-troubleshooting",level:3},{value:"No Search Results",id:"algolia-no-search-results",level:4},{value:"Support",id:"algolia-support",level:3},{value:"\u{1F465} Using Typesense DocSearch",id:"using-typesense-docsearch",level:2},{value:"\u{1F465} Using Local Search",id:"using-local-search",level:2},{value:"\u{1F465} Using your own search",id:"using-your-own-search",level:2}];function u(e){let r={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components},{Details:s}=r;return s||function(e,r){throw Error("Expected "+(r?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.header,{children:(0,a.jsx)(r.h1,{id:"search",children:"Search"})}),"\n",(0,a.jsx)(r.p,{children:"There are a few options you can use to add search to your website:"}),"\n",(0,a.jsxs)(r.ul,{children:["\n",(0,a.jsxs)(r.li,{children:["\u{1F947} ",(0,a.jsx)(r.a,{href:"#using-algolia-docsearch",children:"Algolia DocSearch"})," (",(0,a.jsx)(r.strong,{children:"official"}),")"]}),"\n",(0,a.jsxs)(r.li,{children:["\u{1F465} ",(0,a.jsx)(r.a,{href:"#using-typesense-docsearch",children:"Typesense DocSearch"})]}),"\n",(0,a.jsxs)(r.li,{children:["\u{1F465} ",(0,a.jsx)(r.a,{href:"#using-local-search",children:"Local Search"})]}),"\n",(0,a.jsxs)(r.li,{children:["\u{1F465} ",(0,a.jsxs)(r.a,{href:"#using-your-own-search",children:["Your own ",(0,a.jsx)(r.code,{children:"SearchBar"})," component"]})]}),"\n"]}),"\n",(0,a.jsxs)(r.admonition,{type:"info",children:[(0,a.jsxs)(r.p,{children:["\u{1F947} Docusaurus provides ",(0,a.jsx)(r.strong,{children:"first-class support"})," for ",(0,a.jsx)(r.a,{href:"#using-algolia-docsearch",children:"Algolia DocSearch"}),"."]}),(0,a.jsxs)(r.p,{children:["\u{1F465} Other options are ",(0,a.jsx)(r.strong,{children:"maintained by the community"}),": please report bugs to their respective repositories."]})]}),"\n",(0,a.jsx)(r.h2,{id:"using-algolia-docsearch",children:"\u{1F947} Using Algolia DocSearch"}),"\n",(0,a.jsxs)(r.p,{children:["Docusaurus has ",(0,a.jsx)(r.strong,{children:"official support"})," for ",(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com",children:"Algolia DocSearch"}),"."]}),"\n",(0,a.jsxs)(r.p,{children:["The service is ",(0,a.jsx)(r.strong,{children:"free"})," for any developer documentation or technical blog: just make sure to read the ",(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com/docs/who-can-apply/",children:"checklist"})," and ",(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com/apply",children:"apply to the DocSearch program"}),"."]}),"\n",(0,a.jsx)(r.p,{children:"DocSearch crawls your website once a week (the schedule is configurable from the web interface) and aggregates all the content in an Algolia index. This content is then queried directly from your front-end using the Algolia API."}),"\n",(0,a.jsxs)(r.p,{children:["If your website is ",(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com/docs/who-can-apply",children:"not eligible"})," for the free, hosted version of DocSearch, or if your website sits behind a firewall and is not public, then you can ",(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com/docs/run-your-own/",children:"run your own"})," DocSearch crawler."]}),"\n",(0,a.jsx)(r.admonition,{type:"note",children:(0,a.jsxs)(r.p,{children:["By default, the Docusaurus preset generates a ",(0,a.jsx)(r.a,{href:"https://docusaurus.io/sitemap.xml",children:"sitemap.xml"})," that the Algolia crawler can use."]})}),"\n",(0,a.jsx)(r.admonition,{title:"From the old docsearch?",type:"info",children:(0,a.jsxs)(r.p,{children:["You can read more about migration from the legacy DocSearch infra in ",(0,a.jsx)(r.a,{href:"/blog/2021/11/21/algolia-docsearch-migration",children:"our blog post"})," or ",(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com/docs/migrating-from-legacy",children:"the DocSearch migration docs"}),"."]})}),"\n",(0,a.jsx)(r.h3,{id:"algolia-index-configuration",children:"Index Configuration"}),"\n",(0,a.jsxs)(r.p,{children:["After your application has been approved and deployed, you will receive an email with all the details for you to add DocSearch to your project. Editing and managing your crawls can be done via ",(0,a.jsx)(r.a,{href:"https://crawler.algolia.com/",children:"the web interface"}),". Indices are readily available after deployment, so manual configuration usually isn't necessary."]}),"\n",(0,a.jsx)(r.admonition,{title:"Use the recommended crawler config",type:"danger",children:(0,a.jsxs)(r.p,{children:["It is highly recommended to use our official ",(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com/docs/templates/#docusaurus-v3-template",children:(0,a.jsx)(r.strong,{children:"Docusaurus v3 crawler configuration"})}),". We cannot support you if you choose a different crawler configuration."]})}),"\n",(0,a.jsxs)(r.admonition,{title:"When updating your crawler config",type:"warning",children:[(0,a.jsxs)(r.p,{children:["The crawler configuration contains a ",(0,a.jsx)(r.code,{children:"initialIndexSettings"}),", which will only be used to initialize your Algolia index if it does not exist yet."]}),(0,a.jsxs)(r.p,{children:["If you update your ",(0,a.jsx)(r.code,{children:"initialIndexSettings"})," crawler setting, it is possible to update the index manually through the interface, but ",(0,a.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/issues/9200#issuecomment-1667338492",children:"the Algolia team recommends to delete your index and then restart a crawl"})," to fully reinitialize it with the new settings."]})]}),"\n",(0,a.jsx)(r.h3,{id:"connecting-algolia",children:"Connecting Algolia"}),"\n",(0,a.jsxs)(r.p,{children:["Docusaurus' own ",(0,a.jsx)(r.code,{children:"@docusaurus/preset-classic"})," supports Algolia DocSearch integration. If you use the classic preset, no additional installation is needed."]}),"\n",(0,a.jsxs)(s,{children:[(0,a.jsxs)("summary",{children:["Installation steps when not using ",(0,a.jsx)("code",{children:"@docusaurus/preset-classic"})]}),(0,a.jsxs)(r.ol,{children:["\n",(0,a.jsx)(r.li,{children:"Install the package:"}),"\n"]}),(0,a.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,a.jsx)(t.A,{value:"npm",children:(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"npm install --save @docusaurus/theme-search-algolia\n"})})}),(0,a.jsx)(t.A,{value:"yarn",label:"Yarn",children:(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"yarn add @docusaurus/theme-search-algolia\n"})})}),(0,a.jsx)(t.A,{value:"pnpm",label:"pnpm",children:(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"pnpm add @docusaurus/theme-search-algolia\n"})})})]}),(0,a.jsxs)(r.ol,{start:"2",children:["\n",(0,a.jsxs)(r.li,{children:["Register the theme in ",(0,a.jsx)(r.code,{children:"docusaurus.config.js"}),":"]}),"\n"]}),(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n title: 'My site',\n // ...\n themes: ['@docusaurus/theme-search-algolia'],\n themeConfig: {\n // ...\n },\n};\n"})})]}),"\n",(0,a.jsxs)(r.p,{children:["Then, add an ",(0,a.jsx)(r.code,{children:"algolia"})," field in your ",(0,a.jsx)(r.code,{children:"themeConfig"}),". ",(0,a.jsx)(r.strong,{children:(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com/apply/",children:"Apply for DocSearch"})})," to get your Algolia index and API key."]}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n themeConfig: {\n // ...\n // highlight-start\n algolia: {\n // The application ID provided by Algolia\n appId: 'YOUR_APP_ID',\n\n // Public API key: it is safe to commit it\n apiKey: 'YOUR_SEARCH_API_KEY',\n\n indexName: 'YOUR_INDEX_NAME',\n\n // Optional: see doc section below\n contextualSearch: true,\n\n // Optional: Specify domains where the navigation should occur through window.location instead on history.push. Useful when our Algolia config crawls multiple documentation sites and we want to navigate with window.location.href to them.\n externalUrlRegex: 'external\\\\.com|domain\\\\.com',\n\n // Optional: Replace parts of the item URLs from Algolia. Useful when using the same search index for multiple deployments using a different baseUrl. You can use regexp or string in the `from` param. For example: localhost:3000 vs myCompany.com/docs\n replaceSearchResultPathname: {\n from: '/docs/', // or as RegExp: /\\/docs\\//\n to: '/',\n },\n\n // Optional: Algolia search parameters\n searchParameters: {},\n\n // Optional: path for search page that enabled by default (`false` to disable it)\n searchPagePath: 'search',\n\n // Optional: whether the insights feature is enabled or not on Docsearch (`false` by default)\n insights: false,\n\n //... other Algolia params\n },\n // highlight-end\n },\n};\n"})}),"\n",(0,a.jsxs)(r.admonition,{type:"info",children:[(0,a.jsxs)(r.p,{children:["The ",(0,a.jsx)(r.code,{children:"searchParameters"})," option used to be named ",(0,a.jsx)(r.code,{children:"algoliaOptions"})," in Docusaurus v1."]}),(0,a.jsxs)(r.p,{children:["Refer to its ",(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com/docs/api#searchparameters",children:"official DocSearch documentation"})," for possible values."]})]}),"\n",(0,a.jsxs)(r.admonition,{type:"warning",children:[(0,a.jsx)(r.p,{children:"The search feature will not work reliably until Algolia crawls your site."}),(0,a.jsxs)(r.p,{children:["If search doesn't work after any significant change, please use the Algolia dashboard to ",(0,a.jsx)(r.strong,{children:"trigger a new crawl"}),"."]})]}),"\n",(0,a.jsx)(r.h3,{id:"contextual-search",children:"Contextual search"}),"\n",(0,a.jsxs)(r.p,{children:["Contextual search is ",(0,a.jsx)(r.strong,{children:"enabled by default"}),"."]}),"\n",(0,a.jsxs)(r.p,{children:["It ensures that search results are ",(0,a.jsx)(r.strong,{children:"relevant to the current language and version"}),"."]}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n themeConfig: {\n // ...\n // highlight-start\n algolia: {\n contextualSearch: true,\n },\n // highlight-end\n },\n};\n"})}),"\n",(0,a.jsxs)(r.p,{children:["Let's consider you have 2 docs versions (",(0,a.jsx)(r.strong,{children:"v1"})," and ",(0,a.jsx)(r.strong,{children:"v2"}),") and 2 languages (",(0,a.jsx)(r.code,{children:"en"})," and ",(0,a.jsx)(r.code,{children:"fr"}),")."]}),"\n",(0,a.jsx)(r.p,{children:"When browsing v2 docs, it would be odd to return search results for the v1 documentation. Sometimes v1 and v2 docs are quite similar, and you would end up with duplicate search results for the same query (one result per version)."}),"\n",(0,a.jsx)(r.p,{children:"Similarly, when browsing the French site, it would be odd to return search results for the English docs."}),"\n",(0,a.jsx)(r.p,{children:"To solve this problem, the contextual search feature understands that you are browsing a specific docs version and language, and will create the search query filters dynamically."}),"\n",(0,a.jsxs)(r.ul,{children:["\n",(0,a.jsxs)(r.li,{children:["on ",(0,a.jsx)(r.code,{children:"/en/docs/v1/myDoc"}),", search results will only include ",(0,a.jsx)(r.strong,{children:"English"})," results for the ",(0,a.jsx)(r.strong,{children:"v1"})," docs (+ other unversioned pages)"]}),"\n",(0,a.jsxs)(r.li,{children:["on ",(0,a.jsx)(r.code,{children:"/fr/docs/v2/myDoc"}),", search results will only include ",(0,a.jsx)(r.strong,{children:"French"})," results for the ",(0,a.jsx)(r.strong,{children:"v2"})," docs (+ other unversioned pages)"]}),"\n"]}),"\n",(0,a.jsxs)(r.admonition,{type:"info",children:[(0,a.jsxs)(r.p,{children:["When using ",(0,a.jsx)(r.code,{children:"contextualSearch: true"})," (default), the contextual facet filters will be merged with the ones provided with ",(0,a.jsx)(r.code,{children:"algolia.searchParameters.facetFilters"})," ."]}),(0,a.jsxs)(r.p,{children:["For specific needs, you can disable ",(0,a.jsx)(r.code,{children:"contextualSearch"})," and define your own ",(0,a.jsx)(r.code,{children:"facetFilters"}),":"]}),(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n themeConfig: {\n // ...\n // highlight-start\n algolia: {\n contextualSearch: false,\n searchParameters: {\n facetFilters: ['language:en', ['filter1', 'filter2'], 'filter3'],\n },\n },\n // highlight-end\n },\n};\n"})}),(0,a.jsxs)(r.p,{children:["Refer to the relevant ",(0,a.jsx)(r.a,{href:"https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/",children:"Algolia faceting documentation"}),"."]})]}),"\n",(0,a.jsx)(r.admonition,{title:"Contextual search doesn't work?",type:"warning",children:(0,a.jsxs)(r.p,{children:["If you only get search results when Contextual Search is disabled, this is very likely because of an ",(0,a.jsx)(r.a,{href:"#algolia-no-search-results",children:"index configuration issue"}),"."]})}),"\n",(0,a.jsx)(r.h3,{id:"styling-your-algolia-search",children:"Styling your Algolia search"}),"\n",(0,a.jsx)(r.p,{children:"By default, DocSearch comes with a fine-tuned theme that was designed for accessibility, making sure that colors and contrasts respect standards."}),"\n",(0,a.jsxs)(r.p,{children:["Still, you can reuse the ",(0,a.jsx)(r.a,{href:"/docs/styling-layout#styling-your-site-with-infima",children:"Infima CSS variables"})," from Docusaurus to style DocSearch by editing the ",(0,a.jsx)(r.code,{children:"/src/css/custom.css"})," file."]}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-css",metastring:'title="/src/css/custom.css"',children:"[data-theme='light'] .DocSearch {\n /* --docsearch-primary-color: var(--ifm-color-primary); */\n /* --docsearch-text-color: var(--ifm-font-color-base); */\n --docsearch-muted-color: var(--ifm-color-secondary-darkest);\n --docsearch-container-background: rgba(94, 100, 112, 0.7);\n /* Modal */\n --docsearch-modal-background: var(--ifm-color-secondary-lighter);\n /* Search box */\n --docsearch-searchbox-background: var(--ifm-color-secondary);\n --docsearch-searchbox-focus-background: var(--ifm-color-white);\n /* Hit */\n --docsearch-hit-color: var(--ifm-font-color-base);\n --docsearch-hit-active-color: var(--ifm-color-white);\n --docsearch-hit-background: var(--ifm-color-white);\n /* Footer */\n --docsearch-footer-background: var(--ifm-color-white);\n}\n\n[data-theme='dark'] .DocSearch {\n --docsearch-text-color: var(--ifm-font-color-base);\n --docsearch-muted-color: var(--ifm-color-secondary-darkest);\n --docsearch-container-background: rgba(47, 55, 69, 0.7);\n /* Modal */\n --docsearch-modal-background: var(--ifm-background-color);\n /* Search box */\n --docsearch-searchbox-background: var(--ifm-background-color);\n --docsearch-searchbox-focus-background: var(--ifm-color-black);\n /* Hit */\n --docsearch-hit-color: var(--ifm-font-color-base);\n --docsearch-hit-active-color: var(--ifm-color-white);\n --docsearch-hit-background: var(--ifm-color-emphasis-100);\n /* Footer */\n --docsearch-footer-background: var(--ifm-background-surface-color);\n --docsearch-key-gradient: linear-gradient(\n -26.5deg,\n var(--ifm-color-emphasis-200) 0%,\n var(--ifm-color-emphasis-100) 100%\n );\n}\n"})}),"\n",(0,a.jsx)(r.h3,{id:"customizing-the-algolia-search-behavior",children:"Customizing the Algolia search behavior"}),"\n",(0,a.jsxs)(r.p,{children:["Algolia DocSearch supports a ",(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com/docs/api/",children:"list of options"})," that you can pass to the ",(0,a.jsx)(r.code,{children:"algolia"})," field in the ",(0,a.jsx)(r.code,{children:"docusaurus.config.js"})," file."]}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n // ...\n algolia: {\n apiKey: 'YOUR_API_KEY',\n indexName: 'YOUR_INDEX_NAME',\n // Options...\n },\n },\n};\n"})}),"\n",(0,a.jsx)(r.h3,{id:"editing-the-algolia-search-component",children:"Editing the Algolia search component"}),"\n",(0,a.jsxs)(r.p,{children:["If you prefer to edit the Algolia search React component, ",(0,a.jsx)(r.a,{href:"/docs/swizzling",children:"swizzle"})," the ",(0,a.jsx)(r.code,{children:"SearchBar"})," component in ",(0,a.jsx)(r.code,{children:"@docusaurus/theme-search-algolia"}),":"]}),"\n",(0,a.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,a.jsx)(t.A,{value:"npm",children:(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"npm run swizzle @docusaurus/theme-search-algolia SearchBar\n"})})}),(0,a.jsx)(t.A,{value:"yarn",label:"Yarn",children:(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"yarn swizzle @docusaurus/theme-search-algolia SearchBar\n"})})}),(0,a.jsx)(t.A,{value:"pnpm",label:"pnpm",children:(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"pnpm run swizzle @docusaurus/theme-search-algolia SearchBar\n"})})})]}),"\n",(0,a.jsx)(r.h3,{id:"algolia-troubleshooting",children:"Troubleshooting"}),"\n",(0,a.jsx)(r.p,{children:"Here are the most common issues Docusaurus users face when using Algolia DocSearch."}),"\n",(0,a.jsx)(r.h4,{id:"algolia-no-search-results",children:"No Search Results"}),"\n",(0,a.jsxs)(r.p,{children:["Seeing no search results is usually related to an ",(0,a.jsx)(r.strong,{children:"index configuration problem"}),"."]}),"\n",(0,a.jsxs)(s,{children:[(0,a.jsx)("summary",{children:"How to check if I have a config problem?"}),(0,a.jsxs)(r.p,{children:["Docusaurus uses ",(0,a.jsx)(r.a,{href:"https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/",children:"Algolia faceting"})," for its ",(0,a.jsx)(r.a,{href:"#contextual-search",children:"Contextual Search"})," feature, to create dynamic queries such as:"]}),(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-json",children:'[\n "language:en",\n [\n "docusaurus_tag:default",\n "docusaurus_tag:docs-default-3.2.1",\n "docusaurus_tag:docs-community-current",\n "docusaurus_tag:docs-docs-tests-current"\n ]\n]\n'})}),(0,a.jsxs)(r.p,{children:["On the Algolia UI, your index should allow to create facet queries on fields ",(0,a.jsx)(r.code,{children:"docusaurus_tag"}),", ",(0,a.jsx)(r.code,{children:"language"}),", ",(0,a.jsx)(r.code,{children:"lang"}),", ",(0,a.jsx)(r.code,{children:"version"}),", ",(0,a.jsx)(r.code,{children:"type"}),", as shown in the screenshot below:"]}),(0,a.jsx)(r.p,{children:(0,a.jsx)(r.img,{alt:"Algolia index showing appropriate faceting fields",src:n(25472).A+"",width:"1072",height:"1761"})}),(0,a.jsxs)(r.p,{children:["Alternatively, if you disable ",(0,a.jsx)(r.a,{href:"#contextual-search",children:"Contextual Search"})," with ",(0,a.jsx)(r.code,{children:"{contextualSearch: false}"})," (which we don't particularly recommend), Docusaurus will not use facet queries, and you should start seeing results."]})]}),"\n",(0,a.jsx)(r.admonition,{title:"Use the recommended configuration",type:"danger",children:(0,a.jsxs)(r.p,{children:["We ",(0,a.jsx)(r.a,{href:"#algolia-index-configuration",children:"recommend a specific crawler configuration"})," for a good reason. We cannot support you if you choose to use a different configuration."]})}),"\n",(0,a.jsx)(r.p,{children:"You can fix index configuration problems by following those steps:"}),"\n",(0,a.jsxs)(r.ol,{children:["\n",(0,a.jsxs)(r.li,{children:["Use the ",(0,a.jsx)(r.a,{href:"#algolia-index-configuration",children:"recommend crawler configuration"})]}),"\n",(0,a.jsx)(r.li,{children:"Delete your index through the UI"}),"\n",(0,a.jsx)(r.li,{children:"Trigger a new crawl through the UI"}),"\n",(0,a.jsxs)(r.li,{children:["Check your index is recreated with the appropriate faceting fields: ",(0,a.jsx)(r.code,{children:"docusaurus_tag"}),", ",(0,a.jsx)(r.code,{children:"language"}),", ",(0,a.jsx)(r.code,{children:"lang"}),", ",(0,a.jsx)(r.code,{children:"version"}),", ",(0,a.jsx)(r.code,{children:"type"})]}),"\n",(0,a.jsxs)(r.li,{children:["See that you now get search results, even with ",(0,a.jsx)(r.a,{href:"#contextual-search",children:"Contextual Search"})," enabled"]}),"\n"]}),"\n",(0,a.jsx)(r.h3,{id:"algolia-support",children:"Support"}),"\n",(0,a.jsx)(r.p,{children:"The Algolia DocSearch team can help you figure out search problems on your site."}),"\n",(0,a.jsxs)(r.p,{children:["You can reach out to Algolia via ",(0,a.jsx)(r.a,{href:"https://algolia.com/support",children:"their support page"})," or on ",(0,a.jsx)(r.a,{href:"https://discord.gg/wr2m5j948P",children:"Discord"}),"."]}),"\n",(0,a.jsxs)(r.p,{children:["Docusaurus also has an ",(0,a.jsx)(r.code,{children:"#algolia"})," channel on ",(0,a.jsx)(r.a,{href:"https://discordapp.com/invite/docusaurus",children:"Discord"}),"."]}),"\n",(0,a.jsx)(r.h2,{id:"using-typesense-docsearch",children:"\u{1F465} Using Typesense DocSearch"}),"\n",(0,a.jsxs)(r.p,{children:[(0,a.jsx)(r.a,{href:"https://typesense.org",children:"Typesense"})," DocSearch works similar to Algolia DocSearch, except that your website is indexed into a Typesense search cluster."]}),"\n",(0,a.jsxs)(r.p,{children:["Typesense is an ",(0,a.jsx)(r.a,{href:"https://github.com/typesense/typesense",children:"open source"})," instant-search engine that you can either:"]}),"\n",(0,a.jsxs)(r.ul,{children:["\n",(0,a.jsxs)(r.li,{children:[(0,a.jsx)(r.a,{href:"https://typesense.org/docs/guide/install-typesense.html#option-2-local-machine-self-hosting",children:"Self-Host"})," on your own servers or"]}),"\n",(0,a.jsxs)(r.li,{children:["Use the Managed ",(0,a.jsx)(r.a,{href:"https://cloud.typesense.org",children:"Typesense Cloud"})," service."]}),"\n"]}),"\n",(0,a.jsx)(r.p,{children:"Similar to Algolia DocSearch, there are two components:"}),"\n",(0,a.jsxs)(r.ul,{children:["\n",(0,a.jsxs)(r.li,{children:[(0,a.jsx)(r.a,{href:"https://github.com/typesense/typesense-docsearch-scraper",children:"typesense-docsearch-scraper"})," - which scrapes your website and indexes the data in your Typesense cluster."]}),"\n",(0,a.jsxs)(r.li,{children:[(0,a.jsx)(r.a,{href:"https://github.com/typesense/docusaurus-theme-search-typesense",children:"docusaurus-theme-search-typesense"})," - a search bar UI component to add to your website."]}),"\n"]}),"\n",(0,a.jsxs)(r.p,{children:["Read a step-by-step walk-through of how to ",(0,a.jsx)(r.a,{href:"https://typesense.org/docs/guide/docsearch.html#step-1-set-up-docsearch-scraper",children:"run typesense-docsearch-scraper here"})," and how to ",(0,a.jsx)(r.a,{href:"https://typesense.org/docs/guide/docsearch.html#option-a-docusaurus-powered-sites",children:"install the Search Bar in your Docusaurus Site here"}),"."]}),"\n",(0,a.jsx)(r.h2,{id:"using-local-search",children:"\u{1F465} Using Local Search"}),"\n",(0,a.jsx)(r.p,{children:"You can use a local search plugin for websites where the search index is small and can be downloaded to your users' browsers when they visit your website."}),"\n",(0,a.jsxs)(r.p,{children:["You'll find a list of community-supported ",(0,a.jsx)(r.a,{href:"https://docusaurus.io/community/resources#search",children:"local search plugins listed here"}),"."]}),"\n",(0,a.jsx)(r.h2,{id:"using-your-own-search",children:"\u{1F465} Using your own search"}),"\n",(0,a.jsxs)(r.p,{children:["To use your own search, swizzle the ",(0,a.jsx)(r.code,{children:"SearchBar"})," component in ",(0,a.jsx)(r.code,{children:"@docusaurus/theme-classic"})]}),"\n",(0,a.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,a.jsx)(t.A,{value:"npm",children:(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"npm run swizzle @docusaurus/theme-classic SearchBar\n"})})}),(0,a.jsx)(t.A,{value:"yarn",label:"Yarn",children:(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"yarn swizzle @docusaurus/theme-classic SearchBar\n"})})}),(0,a.jsx)(t.A,{value:"pnpm",label:"pnpm",children:(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"pnpm run swizzle @docusaurus/theme-classic SearchBar\n"})})})]}),"\n",(0,a.jsxs)(r.p,{children:["This will create an ",(0,a.jsx)(r.code,{children:"src/theme/SearchBar"})," file in your project folder. Restart your dev server and edit the component, you will see that Docusaurus uses your own ",(0,a.jsx)(r.code,{children:"SearchBar"})," component now."]}),"\n",(0,a.jsxs)(r.p,{children:[(0,a.jsx)(r.strong,{children:"Notes"}),": You can alternatively ",(0,a.jsx)(r.a,{href:"#editing-the-algolia-search-component",children:"swizzle from Algolia SearchBar"})," and create your own search component from there."]})]})}function p(e={}){let{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,a.jsx)(r,{...e,children:(0,a.jsx)(u,{...e})}):u(e)}},43023:(e,r,n)=>{n.d(r,{R:()=>i,x:()=>t});var s=n(63696);let a={},o=s.createContext(a);function i(e){let r=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function t(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),s.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1d8d7b8d.4175acd0.js b/assets/js/1d8d7b8d.4175acd0.js deleted file mode 100644 index 7915843cda..0000000000 --- a/assets/js/1d8d7b8d.4175acd0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[76975],{15995:(e,r,n)=>{n.d(r,{A:()=>o});var s=n(62540);n(63696);var a=n(11750);function o({children:e,hidden:r,className:n}){return(0,s.jsx)("div",{role:"tabpanel",className:(0,a.A)("tabItem_pnkT",n),hidden:r,children:e})}},27446:(e,r,n)=>{n.d(r,{A:()=>b});var s=n(62540),a=n(63696),o=n(11750),i=n(7846),t=n(49519),c=n(96439),l=n(19739),h=n(66904),d=n(79244);function u(e){var r,n;return null!==(n=null===(r=a.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){let{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===r?void 0:r.filter(Boolean))&&void 0!==n?n:[]}function p({value:e,tabValues:r}){return r.some(r=>r.value===e)}var g=n(10709);function f(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},s=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),s.forEach(function(r){var s;s=n[r],r in e?Object.defineProperty(e,r,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[r]=s})}return e}function m(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);n.push.apply(n,s)}return n})(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}),e}function x({className:e,block:r,selectedValue:n,selectValue:a,tabValues:t}){let c=[],{blockElementScrollPositionUntilNextRender:l}=(0,i.a_)(),h=e=>{let r=e.currentTarget,s=t[c.indexOf(r)].value;s!==n&&(l(r),a(s))},d=e=>{var r,n;let s=null;switch(e.key){case"Enter":h(e);break;case"ArrowRight":{let n=c.indexOf(e.currentTarget)+1;s=null!==(r=c[n])&&void 0!==r?r:c[0];break}case"ArrowLeft":{let r=c.indexOf(e.currentTarget)-1;s=null!==(n=c[r])&&void 0!==n?n:c[c.length-1]}}null==s||s.focus()};return(0,s.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.A)("tabs",{"tabs--block":r},e),children:t.map(({value:e,label:r,attributes:a})=>(0,s.jsx)("li",m(f({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>c.push(e),onKeyDown:d,onClick:h},a),{className:(0,o.A)("tabs__item","tabItem_AQgk",null==a?void 0:a.className,{"tabs__item--active":n===e}),children:null!=r?r:e}),e))})}function j({lazy:e,children:r,selectedValue:n}){let i=(Array.isArray(r)?r:[r]).filter(Boolean);if(e){let e=i.find(e=>e.props.value===n);return e?(0,a.cloneElement)(e,{className:(0,o.A)("margin-top--md",e.props.className)}):null}return(0,s.jsx)("div",{className:"margin-top--md",children:i.map((e,r)=>(0,a.cloneElement)(e,{key:r,hidden:e.props.value!==n}))})}function y(e){let r=function(e){let{defaultValue:r,queryString:n=!1,groupId:s}=e,o=function(e){let{values:r,children:n}=e;return(0,a.useMemo)(()=>{let e=null!=r?r:u(n).map(({props:{value:e,label:r,attributes:n,default:s}})=>({value:e,label:r,attributes:n,default:s}));return!function(e){let r=(0,h.XI)(e,(e,r)=>e.value===r.value);if(r.length>0)throw Error(`Docusaurus error: Duplicate values "${r.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[r,n])}(e),[i,g]=(0,a.useState)(()=>(function({defaultValue:e,tabValues:r}){var n;if(0===r.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:r}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let s=null!==(n=r.find(e=>e.default))&&void 0!==n?n:r[0];if(!s)throw Error("Unexpected error: 0 tabValues");return s.value})({defaultValue:r,tabValues:o})),[f,m]=function({queryString:e=!1,groupId:r}){let n=(0,t.W6)(),s=function({queryString:e=!1,groupId:r}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!r)throw Error('Docusaurus error: The <Tabs> 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 null!=r?r:null}({queryString:e,groupId:r});return[(0,l.aZ)(s),(0,a.useCallback)(e=>{var r,a;if(!s)return;let o=new URLSearchParams(n.location.search);o.set(s,e),n.replace((r=function(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},s=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),s.forEach(function(r){var s;s=n[r],r in e?Object.defineProperty(e,r,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[r]=s})}return e}({},n.location),a=a={search:o.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(a)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);n.push.apply(n,s)}return n})(Object(a)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(a,e))}),r))},[s,n])]}({queryString:n,groupId:s}),[x,j]=function({groupId:e}){let r=e?`docusaurus.tab.${e}`:null,[n,s]=(0,d.Dv)(r);return[n,(0,a.useCallback)(e=>{r&&s.set(e)},[r,s])]}({groupId:s}),y=(()=>{let e=null!=f?f:x;return p({value:e,tabValues:o})?e:null})();return(0,c.A)(()=>{y&&g(y)},[y]),{selectedValue:i,selectValue:(0,a.useCallback)(e=>{if(!p({value:e,tabValues:o}))throw Error(`Can't select invalid tab value=${e}`);g(e),m(e),j(e)},[m,j,o]),tabValues:o}}(e);return(0,s.jsxs)("div",{className:(0,o.A)("tabs-container","tabList_Qoir"),children:[(0,s.jsx)(x,f({},r,e)),(0,s.jsx)(j,f({},r,e))]})}function b(e){let r=(0,g.A)();return(0,s.jsx)(y,m(f({},e),{children:u(e.children)}),String(r))}},25472:(e,r,n)=>{n.d(r,{A:()=>s});let s=n.p+"assets/images/docsearch-troubleshoot-index-facets-4c0d9816a72c457e3e8352bc0fceccb6.jpg"},12787:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>h,contentTitle:()=>l,default:()=>p,frontMatter:()=>c,metadata:()=>s,toc:()=>d});let s=JSON.parse('{"id":"search","title":"Search","description":"There are a few options you can use to add search to your website:","source":"@site/docs/search.mdx","sourceDirName":".","slug":"/search","permalink":"/docs/search","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/search.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"keywords":["algolia","search"]},"sidebar":"docs","previous":{"title":"Static Assets","permalink":"/docs/static-assets"},"next":{"title":"Browser support","permalink":"/docs/browser-support"}}');var a=n(62540),o=n(43023),i=n(27446),t=n(15995);let c={keywords:["algolia","search"]},l="Search",h={},d=[{value:"\u{1F947} Using Algolia DocSearch",id:"using-algolia-docsearch",level:2},{value:"Index Configuration",id:"algolia-index-configuration",level:3},{value:"Connecting Algolia",id:"connecting-algolia",level:3},{value:"Contextual search",id:"contextual-search",level:3},{value:"Styling your Algolia search",id:"styling-your-algolia-search",level:3},{value:"Customizing the Algolia search behavior",id:"customizing-the-algolia-search-behavior",level:3},{value:"Editing the Algolia search component",id:"editing-the-algolia-search-component",level:3},{value:"Troubleshooting",id:"algolia-troubleshooting",level:3},{value:"No Search Results",id:"algolia-no-search-results",level:4},{value:"Support",id:"algolia-support",level:3},{value:"\u{1F465} Using Typesense DocSearch",id:"using-typesense-docsearch",level:2},{value:"\u{1F465} Using Local Search",id:"using-local-search",level:2},{value:"\u{1F465} Using your own search",id:"using-your-own-search",level:2}];function u(e){let r={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components},{Details:s}=r;return s||function(e,r){throw Error("Expected "+(r?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.header,{children:(0,a.jsx)(r.h1,{id:"search",children:"Search"})}),"\n",(0,a.jsx)(r.p,{children:"There are a few options you can use to add search to your website:"}),"\n",(0,a.jsxs)(r.ul,{children:["\n",(0,a.jsxs)(r.li,{children:["\u{1F947} ",(0,a.jsx)(r.a,{href:"#using-algolia-docsearch",children:"Algolia DocSearch"})," (",(0,a.jsx)(r.strong,{children:"official"}),")"]}),"\n",(0,a.jsxs)(r.li,{children:["\u{1F465} ",(0,a.jsx)(r.a,{href:"#using-typesense-docsearch",children:"Typesense DocSearch"})]}),"\n",(0,a.jsxs)(r.li,{children:["\u{1F465} ",(0,a.jsx)(r.a,{href:"#using-local-search",children:"Local Search"})]}),"\n",(0,a.jsxs)(r.li,{children:["\u{1F465} ",(0,a.jsxs)(r.a,{href:"#using-your-own-search",children:["Your own ",(0,a.jsx)(r.code,{children:"SearchBar"})," component"]})]}),"\n"]}),"\n",(0,a.jsxs)(r.admonition,{type:"info",children:[(0,a.jsxs)(r.p,{children:["\u{1F947} Docusaurus provides ",(0,a.jsx)(r.strong,{children:"first-class support"})," for ",(0,a.jsx)(r.a,{href:"#using-algolia-docsearch",children:"Algolia DocSearch"}),"."]}),(0,a.jsxs)(r.p,{children:["\u{1F465} Other options are ",(0,a.jsx)(r.strong,{children:"maintained by the community"}),": please report bugs to their respective repositories."]})]}),"\n",(0,a.jsx)(r.h2,{id:"using-algolia-docsearch",children:"\u{1F947} Using Algolia DocSearch"}),"\n",(0,a.jsxs)(r.p,{children:["Docusaurus has ",(0,a.jsx)(r.strong,{children:"official support"})," for ",(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com",children:"Algolia DocSearch"}),"."]}),"\n",(0,a.jsxs)(r.p,{children:["The service is ",(0,a.jsx)(r.strong,{children:"free"})," for any developer documentation or technical blog: just make sure to read the ",(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com/docs/who-can-apply/",children:"checklist"})," and ",(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com/apply",children:"apply to the DocSearch program"}),"."]}),"\n",(0,a.jsx)(r.p,{children:"DocSearch crawls your website once a week (the schedule is configurable from the web interface) and aggregates all the content in an Algolia index. This content is then queried directly from your front-end using the Algolia API."}),"\n",(0,a.jsxs)(r.p,{children:["If your website is ",(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com/docs/who-can-apply",children:"not eligible"})," for the free, hosted version of DocSearch, or if your website sits behind a firewall and is not public, then you can ",(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com/docs/run-your-own/",children:"run your own"})," DocSearch crawler."]}),"\n",(0,a.jsx)(r.admonition,{type:"note",children:(0,a.jsxs)(r.p,{children:["By default, the Docusaurus preset generates a ",(0,a.jsx)(r.a,{href:"https://docusaurus.io/sitemap.xml",children:"sitemap.xml"})," that the Algolia crawler can use."]})}),"\n",(0,a.jsx)(r.admonition,{title:"From the old docsearch?",type:"info",children:(0,a.jsxs)(r.p,{children:["You can read more about migration from the legacy DocSearch infra in ",(0,a.jsx)(r.a,{href:"/blog/2021/11/21/algolia-docsearch-migration",children:"our blog post"})," or ",(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com/docs/migrating-from-legacy",children:"the DocSearch migration docs"}),"."]})}),"\n",(0,a.jsx)(r.h3,{id:"algolia-index-configuration",children:"Index Configuration"}),"\n",(0,a.jsxs)(r.p,{children:["After your application has been approved and deployed, you will receive an email with all the details for you to add DocSearch to your project. Editing and managing your crawls can be done via ",(0,a.jsx)(r.a,{href:"https://crawler.algolia.com/",children:"the web interface"}),". Indices are readily available after deployment, so manual configuration usually isn't necessary."]}),"\n",(0,a.jsx)(r.admonition,{title:"Use the recommended crawler config",type:"danger",children:(0,a.jsxs)(r.p,{children:["It is highly recommended to use our official ",(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com/docs/templates/#docusaurus-v3-template",children:(0,a.jsx)(r.strong,{children:"Docusaurus v3 crawler configuration"})}),". We cannot support you if you choose a different crawler configuration."]})}),"\n",(0,a.jsxs)(r.admonition,{title:"When updating your crawler config",type:"warning",children:[(0,a.jsxs)(r.p,{children:["The crawler configuration contains a ",(0,a.jsx)(r.code,{children:"initialIndexSettings"}),", which will only be used to initialize your Algolia index if it does not exist yet."]}),(0,a.jsxs)(r.p,{children:["If you update your ",(0,a.jsx)(r.code,{children:"initialIndexSettings"})," crawler setting, it is possible to update the index manually through the interface, but ",(0,a.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/issues/9200#issuecomment-1667338492",children:"the Algolia team recommends to delete your index and then restart a crawl"})," to fully reinitialize it with the new settings."]})]}),"\n",(0,a.jsx)(r.h3,{id:"connecting-algolia",children:"Connecting Algolia"}),"\n",(0,a.jsxs)(r.p,{children:["Docusaurus' own ",(0,a.jsx)(r.code,{children:"@docusaurus/preset-classic"})," supports Algolia DocSearch integration. If you use the classic preset, no additional installation is needed."]}),"\n",(0,a.jsxs)(s,{children:[(0,a.jsxs)("summary",{children:["Installation steps when not using ",(0,a.jsx)("code",{children:"@docusaurus/preset-classic"})]}),(0,a.jsxs)(r.ol,{children:["\n",(0,a.jsx)(r.li,{children:"Install the package:"}),"\n"]}),(0,a.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,a.jsx)(t.A,{value:"npm",children:(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"npm install --save @docusaurus/theme-search-algolia\n"})})}),(0,a.jsx)(t.A,{value:"yarn",label:"Yarn",children:(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"yarn add @docusaurus/theme-search-algolia\n"})})}),(0,a.jsx)(t.A,{value:"pnpm",label:"pnpm",children:(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"pnpm add @docusaurus/theme-search-algolia\n"})})})]}),(0,a.jsxs)(r.ol,{start:"2",children:["\n",(0,a.jsxs)(r.li,{children:["Register the theme in ",(0,a.jsx)(r.code,{children:"docusaurus.config.js"}),":"]}),"\n"]}),(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n title: 'My site',\n // ...\n themes: ['@docusaurus/theme-search-algolia'],\n themeConfig: {\n // ...\n },\n};\n"})})]}),"\n",(0,a.jsxs)(r.p,{children:["Then, add an ",(0,a.jsx)(r.code,{children:"algolia"})," field in your ",(0,a.jsx)(r.code,{children:"themeConfig"}),". ",(0,a.jsx)(r.strong,{children:(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com/apply/",children:"Apply for DocSearch"})})," to get your Algolia index and API key."]}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n themeConfig: {\n // ...\n // highlight-start\n algolia: {\n // The application ID provided by Algolia\n appId: 'YOUR_APP_ID',\n\n // Public API key: it is safe to commit it\n apiKey: 'YOUR_SEARCH_API_KEY',\n\n indexName: 'YOUR_INDEX_NAME',\n\n // Optional: see doc section below\n contextualSearch: true,\n\n // Optional: Specify domains where the navigation should occur through window.location instead on history.push. Useful when our Algolia config crawls multiple documentation sites and we want to navigate with window.location.href to them.\n externalUrlRegex: 'external\\\\.com|domain\\\\.com',\n\n // Optional: Replace parts of the item URLs from Algolia. Useful when using the same search index for multiple deployments using a different baseUrl. You can use regexp or string in the `from` param. For example: localhost:3000 vs myCompany.com/docs\n replaceSearchResultPathname: {\n from: '/docs/', // or as RegExp: /\\/docs\\//\n to: '/',\n },\n\n // Optional: Algolia search parameters\n searchParameters: {},\n\n // Optional: path for search page that enabled by default (`false` to disable it)\n searchPagePath: 'search',\n\n // Optional: whether the insights feature is enabled or not on Docsearch (`false` by default)\n insights: false,\n\n //... other Algolia params\n },\n // highlight-end\n },\n};\n"})}),"\n",(0,a.jsxs)(r.admonition,{type:"info",children:[(0,a.jsxs)(r.p,{children:["The ",(0,a.jsx)(r.code,{children:"searchParameters"})," option used to be named ",(0,a.jsx)(r.code,{children:"algoliaOptions"})," in Docusaurus v1."]}),(0,a.jsxs)(r.p,{children:["Refer to its ",(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com/docs/api#searchparameters",children:"official DocSearch documentation"})," for possible values."]})]}),"\n",(0,a.jsxs)(r.admonition,{type:"warning",children:[(0,a.jsx)(r.p,{children:"The search feature will not work reliably until Algolia crawls your site."}),(0,a.jsxs)(r.p,{children:["If search doesn't work after any significant change, please use the Algolia dashboard to ",(0,a.jsx)(r.strong,{children:"trigger a new crawl"}),"."]})]}),"\n",(0,a.jsx)(r.h3,{id:"contextual-search",children:"Contextual search"}),"\n",(0,a.jsxs)(r.p,{children:["Contextual search is ",(0,a.jsx)(r.strong,{children:"enabled by default"}),"."]}),"\n",(0,a.jsxs)(r.p,{children:["It ensures that search results are ",(0,a.jsx)(r.strong,{children:"relevant to the current language and version"}),"."]}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n themeConfig: {\n // ...\n // highlight-start\n algolia: {\n contextualSearch: true,\n },\n // highlight-end\n },\n};\n"})}),"\n",(0,a.jsxs)(r.p,{children:["Let's consider you have 2 docs versions (",(0,a.jsx)(r.strong,{children:"v1"})," and ",(0,a.jsx)(r.strong,{children:"v2"}),") and 2 languages (",(0,a.jsx)(r.code,{children:"en"})," and ",(0,a.jsx)(r.code,{children:"fr"}),")."]}),"\n",(0,a.jsx)(r.p,{children:"When browsing v2 docs, it would be odd to return search results for the v1 documentation. Sometimes v1 and v2 docs are quite similar, and you would end up with duplicate search results for the same query (one result per version)."}),"\n",(0,a.jsx)(r.p,{children:"Similarly, when browsing the French site, it would be odd to return search results for the English docs."}),"\n",(0,a.jsx)(r.p,{children:"To solve this problem, the contextual search feature understands that you are browsing a specific docs version and language, and will create the search query filters dynamically."}),"\n",(0,a.jsxs)(r.ul,{children:["\n",(0,a.jsxs)(r.li,{children:["on ",(0,a.jsx)(r.code,{children:"/en/docs/v1/myDoc"}),", search results will only include ",(0,a.jsx)(r.strong,{children:"English"})," results for the ",(0,a.jsx)(r.strong,{children:"v1"})," docs (+ other unversioned pages)"]}),"\n",(0,a.jsxs)(r.li,{children:["on ",(0,a.jsx)(r.code,{children:"/fr/docs/v2/myDoc"}),", search results will only include ",(0,a.jsx)(r.strong,{children:"French"})," results for the ",(0,a.jsx)(r.strong,{children:"v2"})," docs (+ other unversioned pages)"]}),"\n"]}),"\n",(0,a.jsxs)(r.admonition,{type:"info",children:[(0,a.jsxs)(r.p,{children:["When using ",(0,a.jsx)(r.code,{children:"contextualSearch: true"})," (default), the contextual facet filters will be merged with the ones provided with ",(0,a.jsx)(r.code,{children:"algolia.searchParameters.facetFilters"})," ."]}),(0,a.jsxs)(r.p,{children:["For specific needs, you can disable ",(0,a.jsx)(r.code,{children:"contextualSearch"})," and define your own ",(0,a.jsx)(r.code,{children:"facetFilters"}),":"]}),(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n themeConfig: {\n // ...\n // highlight-start\n algolia: {\n contextualSearch: false,\n searchParameters: {\n facetFilters: ['language:en', ['filter1', 'filter2'], 'filter3'],\n },\n },\n // highlight-end\n },\n};\n"})}),(0,a.jsxs)(r.p,{children:["Refer to the relevant ",(0,a.jsx)(r.a,{href:"https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/",children:"Algolia faceting documentation"}),"."]})]}),"\n",(0,a.jsx)(r.admonition,{title:"Contextual search doesn't work?",type:"warning",children:(0,a.jsxs)(r.p,{children:["If you only get search results when Contextual Search is disabled, this is very likely because of an ",(0,a.jsx)(r.a,{href:"#algolia-no-search-results",children:"index configuration issue"}),"."]})}),"\n",(0,a.jsx)(r.h3,{id:"styling-your-algolia-search",children:"Styling your Algolia search"}),"\n",(0,a.jsx)(r.p,{children:"By default, DocSearch comes with a fine-tuned theme that was designed for accessibility, making sure that colors and contrasts respect standards."}),"\n",(0,a.jsxs)(r.p,{children:["Still, you can reuse the ",(0,a.jsx)(r.a,{href:"/docs/styling-layout#styling-your-site-with-infima",children:"Infima CSS variables"})," from Docusaurus to style DocSearch by editing the ",(0,a.jsx)(r.code,{children:"/src/css/custom.css"})," file."]}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-css",metastring:'title="/src/css/custom.css"',children:"[data-theme='light'] .DocSearch {\n /* --docsearch-primary-color: var(--ifm-color-primary); */\n /* --docsearch-text-color: var(--ifm-font-color-base); */\n --docsearch-muted-color: var(--ifm-color-secondary-darkest);\n --docsearch-container-background: rgba(94, 100, 112, 0.7);\n /* Modal */\n --docsearch-modal-background: var(--ifm-color-secondary-lighter);\n /* Search box */\n --docsearch-searchbox-background: var(--ifm-color-secondary);\n --docsearch-searchbox-focus-background: var(--ifm-color-white);\n /* Hit */\n --docsearch-hit-color: var(--ifm-font-color-base);\n --docsearch-hit-active-color: var(--ifm-color-white);\n --docsearch-hit-background: var(--ifm-color-white);\n /* Footer */\n --docsearch-footer-background: var(--ifm-color-white);\n}\n\n[data-theme='dark'] .DocSearch {\n --docsearch-text-color: var(--ifm-font-color-base);\n --docsearch-muted-color: var(--ifm-color-secondary-darkest);\n --docsearch-container-background: rgba(47, 55, 69, 0.7);\n /* Modal */\n --docsearch-modal-background: var(--ifm-background-color);\n /* Search box */\n --docsearch-searchbox-background: var(--ifm-background-color);\n --docsearch-searchbox-focus-background: var(--ifm-color-black);\n /* Hit */\n --docsearch-hit-color: var(--ifm-font-color-base);\n --docsearch-hit-active-color: var(--ifm-color-white);\n --docsearch-hit-background: var(--ifm-color-emphasis-100);\n /* Footer */\n --docsearch-footer-background: var(--ifm-background-surface-color);\n --docsearch-key-gradient: linear-gradient(\n -26.5deg,\n var(--ifm-color-emphasis-200) 0%,\n var(--ifm-color-emphasis-100) 100%\n );\n}\n"})}),"\n",(0,a.jsx)(r.h3,{id:"customizing-the-algolia-search-behavior",children:"Customizing the Algolia search behavior"}),"\n",(0,a.jsxs)(r.p,{children:["Algolia DocSearch supports a ",(0,a.jsx)(r.a,{href:"https://docsearch.algolia.com/docs/api/",children:"list of options"})," that you can pass to the ",(0,a.jsx)(r.code,{children:"algolia"})," field in the ",(0,a.jsx)(r.code,{children:"docusaurus.config.js"})," file."]}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n // ...\n algolia: {\n apiKey: 'YOUR_API_KEY',\n indexName: 'YOUR_INDEX_NAME',\n // Options...\n },\n },\n};\n"})}),"\n",(0,a.jsx)(r.h3,{id:"editing-the-algolia-search-component",children:"Editing the Algolia search component"}),"\n",(0,a.jsxs)(r.p,{children:["If you prefer to edit the Algolia search React component, ",(0,a.jsx)(r.a,{href:"/docs/swizzling",children:"swizzle"})," the ",(0,a.jsx)(r.code,{children:"SearchBar"})," component in ",(0,a.jsx)(r.code,{children:"@docusaurus/theme-search-algolia"}),":"]}),"\n",(0,a.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,a.jsx)(t.A,{value:"npm",children:(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"npm run swizzle @docusaurus/theme-search-algolia SearchBar\n"})})}),(0,a.jsx)(t.A,{value:"yarn",label:"Yarn",children:(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"yarn swizzle @docusaurus/theme-search-algolia SearchBar\n"})})}),(0,a.jsx)(t.A,{value:"pnpm",label:"pnpm",children:(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"pnpm run swizzle @docusaurus/theme-search-algolia SearchBar\n"})})})]}),"\n",(0,a.jsx)(r.h3,{id:"algolia-troubleshooting",children:"Troubleshooting"}),"\n",(0,a.jsx)(r.p,{children:"Here are the most common issues Docusaurus users face when using Algolia DocSearch."}),"\n",(0,a.jsx)(r.h4,{id:"algolia-no-search-results",children:"No Search Results"}),"\n",(0,a.jsxs)(r.p,{children:["Seeing no search results is usually related to an ",(0,a.jsx)(r.strong,{children:"index configuration problem"}),"."]}),"\n",(0,a.jsxs)(s,{children:[(0,a.jsx)("summary",{children:"How to check if I have a config problem?"}),(0,a.jsxs)(r.p,{children:["Docusaurus uses ",(0,a.jsx)(r.a,{href:"https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/",children:"Algolia faceting"})," for its ",(0,a.jsx)(r.a,{href:"#contextual-search",children:"Contextual Search"})," feature, to create dynamic queries such as:"]}),(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-json",children:'[\n "language:en",\n [\n "docusaurus_tag:default",\n "docusaurus_tag:docs-default-3.2.1",\n "docusaurus_tag:docs-community-current",\n "docusaurus_tag:docs-docs-tests-current"\n ]\n]\n'})}),(0,a.jsxs)(r.p,{children:["On the Algolia UI, your index should allow to create facet queries on fields ",(0,a.jsx)(r.code,{children:"docusaurus_tag"}),", ",(0,a.jsx)(r.code,{children:"language"}),", ",(0,a.jsx)(r.code,{children:"lang"}),", ",(0,a.jsx)(r.code,{children:"version"}),", ",(0,a.jsx)(r.code,{children:"type"}),", as shown in the screenshot below:"]}),(0,a.jsx)(r.p,{children:(0,a.jsx)(r.img,{alt:"Algolia index showing appropriate faceting fields",src:n(25472).A+"",width:"1072",height:"1761"})}),(0,a.jsxs)(r.p,{children:["Alternatively, if you disable ",(0,a.jsx)(r.a,{href:"#contextual-search",children:"Contextual Search"})," with ",(0,a.jsx)(r.code,{children:"{contextualSearch: false}"})," (which we don't particularly recommend), Docusaurus will not use facet queries, and you should start seeing results."]})]}),"\n",(0,a.jsx)(r.admonition,{title:"Use the recommended configuration",type:"danger",children:(0,a.jsxs)(r.p,{children:["We ",(0,a.jsx)(r.a,{href:"#algolia-index-configuration",children:"recommend a specific crawler configuration"})," for a good reason. We cannot support you if you choose to use a different configuration."]})}),"\n",(0,a.jsx)(r.p,{children:"You can fix index configuration problems by following those steps:"}),"\n",(0,a.jsxs)(r.ol,{children:["\n",(0,a.jsxs)(r.li,{children:["Use the ",(0,a.jsx)(r.a,{href:"#algolia-index-configuration",children:"recommend crawler configuration"})]}),"\n",(0,a.jsx)(r.li,{children:"Delete your index through the UI"}),"\n",(0,a.jsx)(r.li,{children:"Trigger a new crawl through the UI"}),"\n",(0,a.jsxs)(r.li,{children:["Check your index is recreated with the appropriate faceting fields: ",(0,a.jsx)(r.code,{children:"docusaurus_tag"}),", ",(0,a.jsx)(r.code,{children:"language"}),", ",(0,a.jsx)(r.code,{children:"lang"}),", ",(0,a.jsx)(r.code,{children:"version"}),", ",(0,a.jsx)(r.code,{children:"type"})]}),"\n",(0,a.jsxs)(r.li,{children:["See that you now get search results, even with ",(0,a.jsx)(r.a,{href:"#contextual-search",children:"Contextual Search"})," enabled"]}),"\n"]}),"\n",(0,a.jsx)(r.h3,{id:"algolia-support",children:"Support"}),"\n",(0,a.jsx)(r.p,{children:"The Algolia DocSearch team can help you figure out search problems on your site."}),"\n",(0,a.jsxs)(r.p,{children:["You can reach out to Algolia via ",(0,a.jsx)(r.a,{href:"https://algolia.com/support",children:"their support page"})," or on ",(0,a.jsx)(r.a,{href:"https://discord.gg/wr2m5j948P",children:"Discord"}),"."]}),"\n",(0,a.jsxs)(r.p,{children:["Docusaurus also has an ",(0,a.jsx)(r.code,{children:"#algolia"})," channel on ",(0,a.jsx)(r.a,{href:"https://discordapp.com/invite/docusaurus",children:"Discord"}),"."]}),"\n",(0,a.jsx)(r.h2,{id:"using-typesense-docsearch",children:"\u{1F465} Using Typesense DocSearch"}),"\n",(0,a.jsxs)(r.p,{children:[(0,a.jsx)(r.a,{href:"https://typesense.org",children:"Typesense"})," DocSearch works similar to Algolia DocSearch, except that your website is indexed into a Typesense search cluster."]}),"\n",(0,a.jsxs)(r.p,{children:["Typesense is an ",(0,a.jsx)(r.a,{href:"https://github.com/typesense/typesense",children:"open source"})," instant-search engine that you can either:"]}),"\n",(0,a.jsxs)(r.ul,{children:["\n",(0,a.jsxs)(r.li,{children:[(0,a.jsx)(r.a,{href:"https://typesense.org/docs/guide/install-typesense.html#option-2-local-machine-self-hosting",children:"Self-Host"})," on your own servers or"]}),"\n",(0,a.jsxs)(r.li,{children:["Use the Managed ",(0,a.jsx)(r.a,{href:"https://cloud.typesense.org",children:"Typesense Cloud"})," service."]}),"\n"]}),"\n",(0,a.jsx)(r.p,{children:"Similar to Algolia DocSearch, there are two components:"}),"\n",(0,a.jsxs)(r.ul,{children:["\n",(0,a.jsxs)(r.li,{children:[(0,a.jsx)(r.a,{href:"https://github.com/typesense/typesense-docsearch-scraper",children:"typesense-docsearch-scraper"})," - which scrapes your website and indexes the data in your Typesense cluster."]}),"\n",(0,a.jsxs)(r.li,{children:[(0,a.jsx)(r.a,{href:"https://github.com/typesense/docusaurus-theme-search-typesense",children:"docusaurus-theme-search-typesense"})," - a search bar UI component to add to your website."]}),"\n"]}),"\n",(0,a.jsxs)(r.p,{children:["Read a step-by-step walk-through of how to ",(0,a.jsx)(r.a,{href:"https://typesense.org/docs/guide/docsearch.html#step-1-set-up-docsearch-scraper",children:"run typesense-docsearch-scraper here"})," and how to ",(0,a.jsx)(r.a,{href:"https://typesense.org/docs/guide/docsearch.html#option-a-docusaurus-powered-sites",children:"install the Search Bar in your Docusaurus Site here"}),"."]}),"\n",(0,a.jsx)(r.h2,{id:"using-local-search",children:"\u{1F465} Using Local Search"}),"\n",(0,a.jsx)(r.p,{children:"You can use a local search plugin for websites where the search index is small and can be downloaded to your users' browsers when they visit your website."}),"\n",(0,a.jsxs)(r.p,{children:["You'll find a list of community-supported ",(0,a.jsx)(r.a,{href:"https://docusaurus.io/community/resources#search",children:"local search plugins listed here"}),"."]}),"\n",(0,a.jsx)(r.h2,{id:"using-your-own-search",children:"\u{1F465} Using your own search"}),"\n",(0,a.jsxs)(r.p,{children:["To use your own search, swizzle the ",(0,a.jsx)(r.code,{children:"SearchBar"})," component in ",(0,a.jsx)(r.code,{children:"@docusaurus/theme-classic"})]}),"\n",(0,a.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,a.jsx)(t.A,{value:"npm",children:(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"npm run swizzle @docusaurus/theme-classic SearchBar\n"})})}),(0,a.jsx)(t.A,{value:"yarn",label:"Yarn",children:(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"yarn swizzle @docusaurus/theme-classic SearchBar\n"})})}),(0,a.jsx)(t.A,{value:"pnpm",label:"pnpm",children:(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"pnpm run swizzle @docusaurus/theme-classic SearchBar\n"})})})]}),"\n",(0,a.jsxs)(r.p,{children:["This will create an ",(0,a.jsx)(r.code,{children:"src/theme/SearchBar"})," file in your project folder. Restart your dev server and edit the component, you will see that Docusaurus uses your own ",(0,a.jsx)(r.code,{children:"SearchBar"})," component now."]}),"\n",(0,a.jsxs)(r.p,{children:[(0,a.jsx)(r.strong,{children:"Notes"}),": You can alternatively ",(0,a.jsx)(r.a,{href:"#editing-the-algolia-search-component",children:"swizzle from Algolia SearchBar"})," and create your own search component from there."]})]})}function p(e={}){let{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,a.jsx)(r,{...e,children:(0,a.jsx)(u,{...e})}):u(e)}},43023:(e,r,n)=>{n.d(r,{R:()=>i,x:()=>t});var s=n(63696);let a={},o=s.createContext(a);function i(e){let r=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function t(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),s.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1f0f0e17.7d28b3a5.js b/assets/js/1f0f0e17.5279185b.js similarity index 93% rename from assets/js/1f0f0e17.7d28b3a5.js rename to assets/js/1f0f0e17.5279185b.js index a890f4d7da..f4df31af36 100644 --- a/assets/js/1f0f0e17.7d28b3a5.js +++ b/assets/js/1f0f0e17.5279185b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[22705],{97771:(e,s,t)=>{t.d(s,{A:()=>a});let a=t.p+"assets/images/social-card-66116702bb73f0bf68a095ddaecc0fe4.png"},2510:(e,s,t)=>{t.d(s,{A:()=>a});let a=t.p+"assets/images/social-card-66116702bb73f0bf68a095ddaecc0fe4.png"},32669:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var a=t(4571),r=t(62540),n=t(43023);let o={title:"Docusaurus 3.4",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2024-05-31T00:00:00.000Z")},i=void 0,l={image:t(97771).A,authorsImageUrls:[void 0]},c=[];function u(e){let s={a:"a",img:"img",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:["We are happy to announce ",(0,r.jsx)(s.strong,{children:"Docusaurus 3.4"}),"."]}),"\n",(0,r.jsxs)(s.p,{children:["Upgrading should be easy. Our ",(0,r.jsx)(s.a,{href:"/community/release-process",children:"release process"})," respects ",(0,r.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"}),". Minor versions do not include any breaking changes."]}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.img,{alt:"Docusaurus blog post social card",src:t(2510).A+"",width:"1200",height:"600"})})]})}function d(e={}){let{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>i});var a=t(63696);let r={},n=a.createContext(r);function o(e){let s=a.useContext(n);return a.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(n.Provider,{value:s},e.children)}},4571:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/3.4","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.4/index.mdx","source":"@site/blog/releases/3.4/index.mdx","title":"Docusaurus 3.4","description":"We are happy to announce Docusaurus 3.4.","date":"2024-05-31T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.045,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.4","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-05-31T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 3.5","permalink":"/blog/releases/3.5"},"nextItem":{"title":"Docusaurus 3.3","permalink":"/blog/releases/3.3"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[22705],{97771:(e,s,t)=>{t.d(s,{A:()=>a});let a=t.p+"assets/images/social-card-66116702bb73f0bf68a095ddaecc0fe4.png"},2510:(e,s,t)=>{t.d(s,{A:()=>a});let a=t.p+"assets/images/social-card-66116702bb73f0bf68a095ddaecc0fe4.png"},32669:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var a=t(4571),r=t(62540),n=t(43023);let o={title:"Docusaurus 3.4",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2024-05-31T00:00:00.000Z")},i=void 0,l={image:t(97771).A,authorsImageUrls:[void 0]},c=[];function u(e){let s={a:"a",img:"img",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:["We are happy to announce ",(0,r.jsx)(s.strong,{children:"Docusaurus 3.4"}),"."]}),"\n",(0,r.jsxs)(s.p,{children:["Upgrading should be easy. Our ",(0,r.jsx)(s.a,{href:"/community/release-process",children:"release process"})," respects ",(0,r.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"}),". Minor versions do not include any breaking changes."]}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.img,{alt:"Docusaurus blog post social card",src:t(2510).A+"",width:"1200",height:"600"})})]})}function d(e={}){let{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>i});var a=t(63696);let r={},n=a.createContext(r);function o(e){let s=a.useContext(n);return a.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(n.Provider,{value:s},e.children)}},4571:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/3.4","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.4/index.mdx","source":"@site/blog/releases/3.4/index.mdx","title":"Docusaurus 3.4","description":"We are happy to announce Docusaurus 3.4.","date":"2024-05-31T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.045,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.4","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-05-31T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 3.5","permalink":"/blog/releases/3.5"},"nextItem":{"title":"Docusaurus 3.3","permalink":"/blog/releases/3.3"}}')}}]); \ No newline at end of file diff --git a/assets/js/1f391b9e.d5d9b0e1.js b/assets/js/1f391b9e.d5d9b0e1.js deleted file mode 100644 index b5b6366dae..0000000000 --- a/assets/js/1f391b9e.d5d9b0e1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[66061],{65108:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,n.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}r(63696)},55640:(e,t,r)=>{r.d(t,{A:()=>N});var n,o,c=r(62540),i=r(63696),l=r(11750),a=r(81912),s=r(12653);let u={admonition:"admonition_o5H7",admonitionHeading:"admonitionHeading_FzoX",admonitionIcon:"admonitionIcon_rXq6",admonitionContent:"admonitionContent_Knsx"};function b({type:e,className:t,children:r}){return(0,c.jsx)("div",{className:(0,l.A)(s.G.common.admonition,s.G.common.admonitionType(e),u.admonition,t),children:r})}function f({icon:e,title:t}){return(0,c.jsxs)("div",{className:u.admonitionHeading,children:[(0,c.jsx)("span",{className:u.admonitionIcon,children:e}),t]})}function p({children:e}){return e?(0,c.jsx)("div",{className:u.admonitionContent,children:e}):null}function O(e){let{type:t,icon:r,title:n,children:o,className:i}=e;return(0,c.jsxs)(b,{type:t,className:i,children:[n||r?(0,c.jsx)(f,{title:n,icon:r}):null,(0,c.jsx)(p,{children:o})]})}let y={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function d(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},y,e),r=r={className:(0,l.A)("alert alert--secondary",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let j={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function m(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},j,e),r=r={className:(0,l.A)("alert alert--success",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var g=r(65108);let h={icon:(0,c.jsx)(g.A,{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function v(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},h,e),r=r={className:(0,l.A)("alert alert--info",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function w(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 16 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let P={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})},x={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})},S={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};function k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let D=k({},{note:d,tip:m,info:v,warning:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},P,e),r=r={className:(0,l.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},danger:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},x,e),r=r={className:(0,l.A)("alert alert--danger",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},{secondary:e=>(0,c.jsx)(d,k({title:"secondary"},e)),important:e=>(0,c.jsx)(v,k({title:"important"},e)),success:e=>(0,c.jsx)(m,k({title:"success"},e)),caution:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},S,e),r=r={className:(0,l.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}});var E=r(37425);let A=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},D),o=o={"my-custom-admonition":function(e){return(0,c.jsxs)("div",{style:{border:"solid red",padding:10},children:[(0,c.jsx)(E.A,{as:"h5",style:{color:"blue",fontSize:30},children:e.title}),(0,c.jsx)("div",{children:e.children})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function N(e){var t;let r=function(e){var t,r,n;let{mdxAdmonitionTitle:o,rest:l}=function(e){let t=i.Children.toArray(e),r=t.find(e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),n=t.filter(e=>e!==r);return{mdxAdmonitionTitle:null==r?void 0:r.props.children,rest:n.length>0?(0,c.jsx)(c.Fragment,{children:n}):null}}(e.children),a=null!==(t=e.title)&&void 0!==t?t:o;return r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e,a&&{title:a}),n=n={children:l},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}(e),n=A[t=r.type]||(console.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),A.info);return(0,c.jsx)(n,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r))}},18384:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(62540);r(63696);var o=r(11750),c=r(77458),i=r(12653),l=r(55640);function a({className:e}){return(0,n.jsx)(l.A,{type:"caution",title:(0,n.jsx)(c.Rc,{}),className:(0,o.A)(e,i.G.common.unlistedBanner),children:(0,n.jsx)(c.Uh,{})})}function s(e){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.AE,{}),(0,n.jsx)(a,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))]})}},49470:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(62540);r(63696);var o=r(11750),c=r(77458),i=r(12653),l=r(55640);function a({className:e}){return(0,n.jsx)(l.A,{type:"caution",title:(0,n.jsx)(c.Yh,{}),className:(0,o.A)(e,i.G.common.draftBanner),children:(0,n.jsx)(c.TT,{})})}var s=r(18384);function u({metadata:e}){let{unlisted:t,frontMatter:r}=e;return(0,n.jsxs)(n.Fragment,{children:[(t||r.unlisted)&&(0,n.jsx)(s.A,{}),r.draft&&(0,n.jsx)(a,{})]})}},23572:(e,t,r)=>{r.d(t,{A:()=>p});var n=r(62540),o=r(63696),c=r(11750),i=r(52711),l=r(10709),a=r(27720);let s={details:"details_Nokh",isBrowser:"isBrowser_QrB5",collapsibleContent:"collapsibleContent_EoA1"};function u(e){return!!e&&("SUMMARY"===e.tagName||u(e.parentElement))}function b(e){var t,r,{summary:b,children:f}=e,p=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["summary","children"]);(0,i.A)().collectAnchor(p.id);let O=(0,l.A)(),y=(0,o.useRef)(null),{collapsed:d,setCollapsed:j}=(0,a.u)({initialState:!p.open}),[m,g]=(0,o.useState)(p.open),h=o.isValidElement(b)?b:(0,n.jsx)("summary",{children:null!=b?b:"Details"});return(0,n.jsxs)("details",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},p),r=r={ref:y,open:m,"data-collapsed":d,className:(0,c.A)(s.details,O&&s.isBrowser,p.className),onMouseDown:e=>{u(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();let t=e.target;u(t)&&function e(t,r){return!!t&&(t===r||e(t.parentElement,r))}(t,y.current)&&(e.preventDefault(),d?(j(!1),g(!0)):j(!0))},children:[h,(0,n.jsx)(a.N,{lazy:!1,collapsed:d,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{j(e),g(!e)},children:(0,n.jsx)("div",{className:s.collapsibleContent,children:f})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function p(e){var t,r,o=f({},function(e){if(null==e)throw TypeError("Cannot destructure "+e);return e}(e));return(0,n.jsx)(b,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={className:(0,c.A)("alert alert--info","details_Cn_P",o.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},2604:(e,t,r)=>{r.d(t,{A:()=>O});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(12653),l=r(36372);function a(e){var t,r,{className:c}=e,i=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["className"]);return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,o.A)("iconEdit_IMw_",c),"aria-hidden":"true"},i),r=r={children:(0,n.jsx)("g",{children:(0,n.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function s({editUrl:e}){return(0,n.jsxs)(l.A,{to:e,className:i.G.common.editThisPage,children:[(0,n.jsx)(a,{}),(0,n.jsx)(c.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=r(60908);function b({lastUpdatedAt:e}){let t=new Date(e),r=(0,u.i)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(t);return(0,n.jsx)(c.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,n.jsx)("b",{children:(0,n.jsx)("time",{dateTime:t.toISOString(),itemProp:"dateModified",children:r})})},children:" on {date}"})}function f({lastUpdatedBy:e}){return(0,n.jsx)(c.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,n.jsx)("b",{children:e})},children:" by {user}"})}function p({lastUpdatedAt:e,lastUpdatedBy:t}){return(0,n.jsxs)("span",{className:i.G.common.lastUpdated,children:[(0,n.jsx)(c.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,n.jsx)(b,{lastUpdatedAt:e}):"",byUser:t?(0,n.jsx)(f,{lastUpdatedBy:t}):""},children:"Last updated{atDate}{byUser}"}),!1]})}function O({className:e,editUrl:t,lastUpdatedAt:r,lastUpdatedBy:c}){return(0,n.jsxs)("div",{className:(0,o.A)("row",e),children:[(0,n.jsx)("div",{className:"col",children:t&&(0,n.jsx)(s,{editUrl:t})}),(0,n.jsx)("div",{className:(0,o.A)("col","lastUpdated_OHCJ"),children:(r||c)&&(0,n.jsx)(p,{lastUpdatedAt:r,lastUpdatedBy:c})})]})}},76699:(e,t,r)=>{r.d(t,{A:()=>_});var n,o,c=r(62540),i=r(63696),l=r(43023),a=r(93394),s=r(55887);function u(e){return(0,c.jsx)("code",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function f(e){return void 0!==e.children&&i.Children.toArray(e.children).every(e=>"string"==typeof e&&!e.includes("\n"))?(0,c.jsx)(u,b({},e)):(0,c.jsx)(s.A,b({},e))}var p=r(36372),O=r(23572);function y(e){var t,r;let n=i.Children.toArray(e.children),o=n.find(e=>i.isValidElement(e)&&"summary"===e.type),l=(0,c.jsx)(c.Fragment,{children:n.filter(e=>e!==o)});return(0,c.jsx)(O.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={summary:o,children:l},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var d=r(37425);function j(e){return(0,c.jsx)(d.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}var m=r(11750);let g={containsTaskList:"containsTaskList_k9gM"};var h=r(52711),v=r(55640),w=r(43758),P=r(1495),x=r(25436),S=r(66659),k=r(17367);async function D({id:e,text:t,config:r}){k.N.mermaidAPI.initialize(r);try{return await k.N.render(e,t)}catch(t){var n;throw null===(n=document.querySelector(`#d${e}`))||void 0===n||n.remove(),t}}function E(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function A({renderResult:e}){let t=(0,i.useRef)(null);return(0,i.useEffect)(()=>{var r;let n=t.current;null===(r=e.bindFunctions)||void 0===r||r.call(e,n)},[e]),(0,c.jsx)("div",{ref:t,className:"docusaurus-mermaid-container container_RUsj",dangerouslySetInnerHTML:{__html:e.svg}})}function N({value:e}){let t=function({text:e,config:t}){let[r,n]=(0,i.useState)(null),o=(0,i.useRef)(`mermaid-svg-${Math.round(1e7*Math.random())}`).current,c=function(){let{colorMode:e}=(0,S.G)(),t=(0,x.p)().mermaid,r=t.theme[e],{options:n}=t;return(0,i.useMemo)(()=>{var e,t;return e=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({startOnLoad:!1},n),t=t={theme:r},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e},[r,n])}(),l=null!=t?t:c;return(0,i.useEffect)(()=>{D({id:o,text:e,config:l}).then(n).catch(e=>{n(()=>{throw e})})},[o,e,l]),r}({text:e});return null===t?null:(0,c.jsx)(A,{renderResult:t})}function B(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let C=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},{Head:a.A,details:y,Details:y,code:f,a:function(e){return(0,c.jsx)(p.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},pre:function(e){return(0,c.jsx)(c.Fragment,{children:e.children})},ul:function(e){var t,r;return(0,c.jsx)("ul",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={className:function(e){if(void 0!==e)return(0,m.A)(e,(null==e?void 0:e.includes("contains-task-list"))&&g.containsTaskList)}(e.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},li:function(e){return(0,h.A)().collectAnchor(e.id),(0,c.jsx)("li",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},img:function(e){var t,r,n;return(0,c.jsx)("img",(r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({decoding:"async",loading:"lazy"},e),n=n={className:(t=e.className,(0,m.A)(t,"img_vXGZ"))},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r))},h1:e=>(0,c.jsx)(j,B({as:"h1"},e)),h2:e=>(0,c.jsx)(j,B({as:"h2"},e)),h3:e=>(0,c.jsx)(j,B({as:"h3"},e)),h4:e=>(0,c.jsx)(j,B({as:"h4"},e)),h5:e=>(0,c.jsx)(j,B({as:"h5"},e)),h6:e=>(0,c.jsx)(j,B({as:"h6"},e)),admonition:v.A,mermaid:function(e){return(0,c.jsx)(w.A,{fallback:e=>(0,c.jsx)(P.MN,E({},e)),children:(0,c.jsx)(N,E({},e))})}}),o=o={Code:f,Highlight:function({children:e,color:t}){return(0,c.jsx)("span",{style:{backgroundColor:t,borderRadius:"2px",color:"#fff",padding:"0.2rem"},children:e})},TweetQuote:function({url:e,handle:t,name:r,job:n,children:o}){let i=`https://unavatar.io/x/${t}`,l=`https://x.com/${t}`;return(0,c.jsxs)("figure",{className:"tweetQuote_h8Rz",children:[(0,c.jsx)("blockquote",{children:(0,c.jsx)(p.A,{to:e,children:o})}),(0,c.jsx)("figcaption",{children:(0,c.jsx)(p.A,{to:l,rel:"nofollow",children:(0,c.jsxs)("div",{className:"avatar",children:[(0,c.jsx)("img",{alt:r,className:(0,m.A)("avatar__photo","avatarImg_b51M"),src:i}),(0,c.jsxs)("div",{className:(0,m.A)("avatar__intro"),children:[(0,c.jsx)("strong",{className:"avatar__name",children:(0,c.jsx)("cite",{children:r})}),(0,c.jsx)("small",{className:"avatar__subtitle",itemProp:"description",children:n})]})]})})})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function _({children:e}){return(0,c.jsx)(l.x,{components:C,children:e})}},63851:(e,t,r)=>{r.r(t),r.d(t,{default:()=>f});var n=r(62540);r(63696);var o=r(11750),c=r(37554),i=r(12653),l=r(99849),a=r(76699),s=r(67393),u=r(49470),b=r(2604);function f(e){var t;let{content:r}=e,{metadata:f,assets:p}=r,{title:O,editUrl:y,description:d,frontMatter:j,lastUpdatedBy:m,lastUpdatedAt:g}=f,{keywords:h,wrapperClassName:v,hide_table_of_contents:w}=j,P=null!==(t=p.image)&&void 0!==t?t:j.image,x=!!(y||g||m);return(0,n.jsx)(c.e3,{className:(0,o.A)(null!=v?v:i.G.wrapper.mdxPages,i.G.page.mdxPage),children:(0,n.jsxs)(l.A,{children:[(0,n.jsx)(c.be,{title:O,description:d,keywords:h,image:P}),(0,n.jsx)("main",{className:"container container--fluid margin-vert--lg",children:(0,n.jsxs)("div",{className:(0,o.A)("row","mdxPageWrapper_bWhk"),children:[(0,n.jsxs)("div",{className:(0,o.A)("col",!w&&"col--8"),children:[(0,n.jsx)(u.A,{metadata:f}),(0,n.jsx)("article",{children:(0,n.jsx)(a.A,{children:(0,n.jsx)(r,{})})}),x&&(0,n.jsx)(b.A,{className:(0,o.A)("margin-top--sm",i.G.pages.pageFooterEditMetaRow),editUrl:y,lastUpdatedAt:g,lastUpdatedBy:m})]}),!w&&r.toc.length>0&&(0,n.jsx)("div",{className:"col col--2",children:(0,n.jsx)(s.A,{toc:r.toc,minHeadingLevel:j.toc_min_heading_level,maxHeadingLevel:j.toc_max_heading_level})})]})})]})})}},67393:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(11750),c=r(46733);function i(e){var t,r,{className:i}=e,l=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["className"]);return(0,n.jsx)("div",{className:(0,o.A)("tableOfContents_RLlU","thin-scrollbar",i),children:(0,n.jsx)(c.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},l),r=r={linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}},46733:(e,t,r)=>{r.d(t,{A:()=>b});var n=r(62540),o=r(63696),c=r(25436);function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function l(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function a(e){let t=e.getBoundingClientRect();return t.top===t.bottom?a(e.parentNode):t}var s=r(36372);let u=o.memo(function e({toc:t,className:r,linkClassName:o,isChild:c}){return t.length?(0,n.jsx)("ul",{className:c?void 0:r,children:t.map(t=>(0,n.jsxs)("li",{children:[(0,n.jsx)(s.A,{to:`#${t.id}`,className:null!=o?o:void 0,dangerouslySetInnerHTML:{__html:t.value}}),(0,n.jsx)(e,{isChild:!0,toc:t.children,className:r,linkClassName:o})]},t.id))}):null});function b(e){var{toc:t,className:r="table-of-contents table-of-contents__left-border",linkClassName:s="table-of-contents__link",linkActiveClassName:b,minHeadingLevel:f,maxHeadingLevel:p}=e,O=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["toc","className","linkClassName","linkActiveClassName","minHeadingLevel","maxHeadingLevel"]);let y=(0,c.p)(),d=null!=f?f:y.tableOfContents.minHeadingLevel,j=null!=p?p:y.tableOfContents.maxHeadingLevel,m=function({toc:e,minHeadingLevel:t,maxHeadingLevel:r}){return(0,o.useMemo)(()=>(function e({toc:t,minHeadingLevel:r,maxHeadingLevel:n}){return t.flatMap(t=>{let o=e({toc:t.children,minHeadingLevel:r,maxHeadingLevel:n});return t.level>=r&&t.level<=n?[l(i({},t),{children:o})]:o})})({toc:function(e){let t=e.map(e=>l(i({},e),{parentIndex:-1,children:[]})),r=Array(7).fill(-1);t.forEach((e,t)=>{let n=r.slice(2,e.level);e.parentIndex=Math.max(...n),r[e.level]=t});let n=[];return t.forEach(e=>{let{parentIndex:r}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["parentIndex"]);r>=0?t[r].children.push(o):n.push(o)}),n}(e),minHeadingLevel:t,maxHeadingLevel:r}),[e,t,r])}({toc:t,minHeadingLevel:d,maxHeadingLevel:j});return!function(e){let t=(0,o.useRef)(void 0),r=function(){let e=(0,o.useRef)(0),{navbar:{hideOnScroll:t}}=(0,c.p)();return(0,o.useEffect)(()=>{e.current=t?0:document.querySelector(".navbar").clientHeight},[t]),e}();(0,o.useEffect)(()=>{if(!e)return()=>{};let{linkClassName:n,linkActiveClassName:o,minHeadingLevel:c,maxHeadingLevel:i}=e;function l(){let e=Array.from(document.getElementsByClassName(n)),l=function(e,{anchorTopOffset:t}){var r,n,o;let c=e.find(e=>a(e).top>=t);return c?(o=a(c)).top>0&&o.bottom<window.innerHeight/2?c:null!==(r=e[e.indexOf(c)-1])&&void 0!==r?r:null:null!==(n=e[e.length-1])&&void 0!==n?n:null}(function({minHeadingLevel:e,maxHeadingLevel:t}){let r=[];for(let n=e;n<=t;n+=1)r.push(`h${n}.anchor`);return Array.from(document.querySelectorAll(r.join()))}({minHeadingLevel:c,maxHeadingLevel:i}),{anchorTopOffset:r.current}),s=e.find(e=>l&&l.id===decodeURIComponent(e.href.substring(e.href.indexOf("#")+1)));e.forEach(e=>{e===s?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)})}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}},[e,r])}((0,o.useMemo)(()=>{if(s&&b)return{linkClassName:s,linkActiveClassName:b,minHeadingLevel:d,maxHeadingLevel:j}},[s,b,d,j])),(0,n.jsx)(u,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({toc:m,className:r,linkClassName:s},O))}},77458:(e,t,r)=>{r.d(t,{AE:()=>a,Rc:()=>i,TT:()=>u,Uh:()=>l,Yh:()=>s});var n=r(62540);r(63696);var o=r(81912),c=r(93394);function i(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function a(){return(0,n.jsx)(c.A,{children:(0,n.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function s(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function u(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}},60908:(e,t,r)=>{r.d(t,{i:()=>o});var n=r(99468);function o(e={}){let{i18n:{currentLocale:t}}=(0,n.A)(),r=function(){let{i18n:{currentLocale:e,localeConfigs:t}}=(0,n.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({calendar:r},e))}},40576:(e,t,r)=>{r.d(t,{A:()=>c});var n=r(62540);r(63696);var o=r(10709);function c({children:e,fallback:t}){return(0,o.A)()?(0,n.jsx)(n.Fragment,{children:null==e?void 0:e()}):null!=t?t:null}},55887:(e,t,r)=>{r.d(t,{A:()=>el});var n,o,c,i={};r.r(i),r.d(i,{ButtonExample:()=>N});var l=r(62540),a=r(63696),s=r(11750),u=r(10709),b=r(55152),f=r(81912),p=r(99468),O=r(40576),y=r(1495),d=r(66659),j=r(25436);function m(){let{prism:e}=(0,j.p)(),{colorMode:t}=(0,d.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var g=r(43758);function h(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,l.jsx)("div",{className:(0,s.A)("playgroundHeader_Tvsk"),children:e})}function w(){return(0,l.jsx)("div",{children:"Loading..."})}function P(){return(0,l.jsx)(O.A,{fallback:(0,l.jsx)(w,{}),children:()=>(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(g.A,{fallback:e=>(0,l.jsx)(y.MN,h({},e)),children:(0,l.jsx)(b.pA,{})}),(0,l.jsx)(b.p1,{})]})})}function x(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(f.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,l.jsx)("div",{className:"playgroundPreview_mApW",children:(0,l.jsx)(P,{})})]})}function S(){let e=(0,u.A)();return(0,l.jsx)(b.w,{className:"playgroundEditor_TySg"},String(e))}function k(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(f.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,l.jsx)(S,{})]})}let D=e=>`${e};`;function E(e){var t,r,n,o,{children:c,transformCode:i}=e,a=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:s}}=(0,p.A)(),{liveCodeBlock:{playgroundPosition:u}}=s,f=m(),O=null!==(o=null===(n=a.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,l.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,l.jsx)(b.Q,(t=h({code:null==c?void 0:c.replace(/\n$/,""),noInline:O,transformCode:null!=i?i:D,theme:f},a),r=r={children:"top"===u?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(x,{}),(0,l.jsx)(k,{})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(k,{}),(0,l.jsx)(x,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function A(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function N(e){var t,r;return(0,l.jsx)("button",(t=A({type:"button"},e),r=r={style:A({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let B=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:a},a,i);var C=r(12653),_=r(19934),L=r.n(_);let T=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),I=RegExp("\\{(?<range>[\\d,-]+)\\}"),H={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},M=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},H),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),R=Object.keys(H);function z(e,t){let r=e.map(e=>{let{start:r,end:n}=M[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function U(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let c=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(m());return(0,l.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:c,className:(0,s.A)(o.className,"codeBlockContainer_jDV4",C.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let $={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function F({children:e,className:t}){return(0,l.jsx)(U,{as:"pre",tabIndex:0,className:(0,s.A)($.codeBlockStandalone,"thin-scrollbar",t),children:(0,l.jsx)("code",{className:$.codeBlockLines,children:e})})}var G=r(2550);let V={attributes:!0,characterData:!0,childList:!0,subtree:!0};var W=r(27663);let q={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function Q(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function X({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var c,i;1===e.length&&"\n"===e[0].content&&(e[0].content="");let a=n({line:e,className:(0,s.A)(t,r&&q.codeLine)}),u=e.map((e,t)=>(0,l.jsx)("span",Q({},o({token:e})),t));return(0,l.jsxs)("span",(c=Q({},a),i=i={children:[r?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:q.codeLineNumber}),(0,l.jsx)("span",{className:q.codeLineContent,children:u})]}):u,(0,l.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(i)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(i)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(i,e))}),c))}var Y=r(936);function Z(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function J(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,a.useState)(!1),o=(0,a.useRef)(void 0),c=(0,a.useCallback)(()=>{(0,Y.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,a.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,l.jsx)("button",{type:"button","aria-label":r?(0,f.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,f.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,f.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,s.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:c,children:(0,l.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,l.jsx)(Z,{className:K.copyButtonIcon}),(0,l.jsx)(J,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,f.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,l.jsx)("button",{type:"button",onClick:t,className:(0,s.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,l.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:c}){var i,u,b,f;let{prism:{defaultLanguage:p,magicComments:O}}=(0,j.p)(),y=null==(u=null!==(i=null!=c?c:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==i?i:p)?void 0:u.toLowerCase(),d=m(),g=function(){let[e,t]=(0,a.useState)(!1),[r,n]=(0,a.useState)(!1),o=(0,a.useRef)(null),c=(0,a.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),i=(0,a.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,a.useState)(),o=(0,a.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,a.useEffect)(()=>{o()},[o]),function(e,t,r=V){let n=(0,G._q)(t),o=(0,G.Be)(r);(0,a.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,i),(0,a.useEffect)(()=>{i()},[e,i]),(0,a.useEffect)(()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)}),[i]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:c}}(),h=(null!==(f=null==r?void 0:null===(b=r.match(T))||void 0===b?void 0:b.groups.title)&&void 0!==f?f:"")||n,{lineClassNames:v,code:w}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:c}=t;if(c&&I.test(c)){let e=c.match(I).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${c}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(L()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return z(["js","jsBlock"],t);case"jsx":case"tsx":return z(["js","jsBlock","jsx"],t);case"html":return z(["js","jsBlock","html"],t);case"python":case"py":case"bash":return z(["bash"],t);case"markdown":case"md":return z(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return z(["tex"],t);case"lua":case"haskell":case"sql":return z(["lua"],t);case"wasm":return z(["wasm"],t);case"vb":case"vba":case"visual-basic":return z(["vb","rem"],t);case"vbnet":return z(["vbnet","rem"],t);case"batch":return z(["rem"],t);case"basic":return z(["rem","f90"],t);case"fsharp":return z(["js","ml"],t);case"ocaml":case"sml":return z(["ml"],t);case"fortran":return z(["f90"],t);case"cobol":return z(["cobol"],t);default:return z(R,t)}}(n,o),l=r.split("\n"),a=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),s=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),b=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<l.length;){let t=l[e].match(i);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);s[r]?a[s[r]].range+=`${e},`:u[r]?a[u[r]].start=e:b[r]&&(a[b[r]].range+=`${a[b[r]].start}-${e-1},`),l.splice(e,1)}r=l.join("\n");let f={};return Object.entries(a).forEach(([e,{range:t}])=>{L()(t).forEach(t=>{var r;null!==(r=f[t])&&void 0!==r||(f[t]=[]),f[t].push(e)})}),{lineClassNames:f,code:r}}(e,{metastring:r,language:y,magicComments:O}),P=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,l.jsxs)(U,{as:"div",className:(0,s.A)(t,y&&!t.includes(`language-${y}`)&&`language-${y}`),children:[h&&(0,l.jsx)("div",{className:$.codeBlockTitle,children:h}),(0,l.jsxs)("div",{className:$.codeBlockContent,children:[(0,l.jsx)(W.f4,{theme:d,code:w,language:null!=y?y:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,l.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,s.A)(e,$.codeBlock,"thin-scrollbar"),style:t,children:(0,l.jsx)("code",{className:(0,s.A)($.codeBlockLines,P&&$.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,l.jsx)(X,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:P},t))})})}),(0,l.jsxs)("div",{className:$.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,l.jsx)(en,{className:$.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,l.jsx)(ee,{className:$.codeButton,code:w})]})]})]})}function ec(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let ei=(c=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let c=(0,u.A)(),i=a.Children.toArray(n).some(e=>(0,a.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,s="string"==typeof i?eo:F;return(0,l.jsx)(s,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(c))},function(e){return e.live?(0,l.jsx)(E,ec({scope:B},e)):(0,l.jsx)(c,ec({},e))});function el(e){return(0,l.jsx)(ei,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}}}]); \ No newline at end of file diff --git a/assets/js/1f391b9e.f53571f0.js b/assets/js/1f391b9e.f53571f0.js new file mode 100644 index 0000000000..10ef305046 --- /dev/null +++ b/assets/js/1f391b9e.f53571f0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[66061],{65108:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,n.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}r(63696)},55640:(e,t,r)=>{r.d(t,{A:()=>N});var n,o,c=r(62540),i=r(63696),l=r(11750),a=r(81912),s=r(12653);let u={admonition:"admonition_o5H7",admonitionHeading:"admonitionHeading_FzoX",admonitionIcon:"admonitionIcon_rXq6",admonitionContent:"admonitionContent_Knsx"};function b({type:e,className:t,children:r}){return(0,c.jsx)("div",{className:(0,l.A)(s.G.common.admonition,s.G.common.admonitionType(e),u.admonition,t),children:r})}function f({icon:e,title:t}){return(0,c.jsxs)("div",{className:u.admonitionHeading,children:[(0,c.jsx)("span",{className:u.admonitionIcon,children:e}),t]})}function p({children:e}){return e?(0,c.jsx)("div",{className:u.admonitionContent,children:e}):null}function O(e){let{type:t,icon:r,title:n,children:o,className:i}=e;return(0,c.jsxs)(b,{type:t,className:i,children:[n||r?(0,c.jsx)(f,{title:n,icon:r}):null,(0,c.jsx)(p,{children:o})]})}let y={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function d(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},y,e),r=r={className:(0,l.A)("alert alert--secondary",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let j={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function m(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},j,e),r=r={className:(0,l.A)("alert alert--success",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var g=r(65108);let h={icon:(0,c.jsx)(g.A,{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function v(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},h,e),r=r={className:(0,l.A)("alert alert--info",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function w(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 16 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let P={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})},x={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})},S={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(a.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};function k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let D=k({},{note:d,tip:m,info:v,warning:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},P,e),r=r={className:(0,l.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},danger:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},x,e),r=r={className:(0,l.A)("alert alert--danger",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},{secondary:e=>(0,c.jsx)(d,k({title:"secondary"},e)),important:e=>(0,c.jsx)(v,k({title:"important"},e)),success:e=>(0,c.jsx)(m,k({title:"success"},e)),caution:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},S,e),r=r={className:(0,l.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}});var E=r(37425);let A=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},D),o=o={"my-custom-admonition":function(e){return(0,c.jsxs)("div",{style:{border:"solid red",padding:10},children:[(0,c.jsx)(E.A,{as:"h5",style:{color:"blue",fontSize:30},children:e.title}),(0,c.jsx)("div",{children:e.children})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function N(e){var t;let r=function(e){var t,r,n;let{mdxAdmonitionTitle:o,rest:l}=function(e){let t=i.Children.toArray(e),r=t.find(e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),n=t.filter(e=>e!==r);return{mdxAdmonitionTitle:null==r?void 0:r.props.children,rest:n.length>0?(0,c.jsx)(c.Fragment,{children:n}):null}}(e.children),a=null!==(t=e.title)&&void 0!==t?t:o;return r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e,a&&{title:a}),n=n={children:l},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}(e),n=A[t=r.type]||(console.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),A.info);return(0,c.jsx)(n,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r))}},18384:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(62540);r(63696);var o=r(11750),c=r(77458),i=r(12653),l=r(55640);function a({className:e}){return(0,n.jsx)(l.A,{type:"caution",title:(0,n.jsx)(c.Rc,{}),className:(0,o.A)(e,i.G.common.unlistedBanner),children:(0,n.jsx)(c.Uh,{})})}function s(e){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.AE,{}),(0,n.jsx)(a,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))]})}},49470:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(62540);r(63696);var o=r(11750),c=r(77458),i=r(12653),l=r(55640);function a({className:e}){return(0,n.jsx)(l.A,{type:"caution",title:(0,n.jsx)(c.Yh,{}),className:(0,o.A)(e,i.G.common.draftBanner),children:(0,n.jsx)(c.TT,{})})}var s=r(18384);function u({metadata:e}){let{unlisted:t,frontMatter:r}=e;return(0,n.jsxs)(n.Fragment,{children:[(t||r.unlisted)&&(0,n.jsx)(s.A,{}),r.draft&&(0,n.jsx)(a,{})]})}},23572:(e,t,r)=>{r.d(t,{A:()=>p});var n=r(62540),o=r(63696),c=r(11750),i=r(52711),l=r(10709),a=r(27720);let s={details:"details_Nokh",isBrowser:"isBrowser_QrB5",collapsibleContent:"collapsibleContent_EoA1"};function u(e){return!!e&&("SUMMARY"===e.tagName||u(e.parentElement))}function b(e){var t,r,{summary:b,children:f}=e,p=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["summary","children"]);(0,i.A)().collectAnchor(p.id);let O=(0,l.A)(),y=(0,o.useRef)(null),{collapsed:d,setCollapsed:j}=(0,a.u)({initialState:!p.open}),[m,g]=(0,o.useState)(p.open),h=o.isValidElement(b)?b:(0,n.jsx)("summary",{children:null!=b?b:"Details"});return(0,n.jsxs)("details",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},p),r=r={ref:y,open:m,"data-collapsed":d,className:(0,c.A)(s.details,O&&s.isBrowser,p.className),onMouseDown:e=>{u(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();let t=e.target;u(t)&&function e(t,r){return!!t&&(t===r||e(t.parentElement,r))}(t,y.current)&&(e.preventDefault(),d?(j(!1),g(!0)):j(!0))},children:[h,(0,n.jsx)(a.N,{lazy:!1,collapsed:d,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{j(e),g(!e)},children:(0,n.jsx)("div",{className:s.collapsibleContent,children:f})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function p(e){var t,r,o=f({},function(e){if(null==e)throw TypeError("Cannot destructure "+e);return e}(e));return(0,n.jsx)(b,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={className:(0,c.A)("alert alert--info","details_Cn_P",o.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},2604:(e,t,r)=>{r.d(t,{A:()=>O});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(12653),l=r(36372);function a(e){var t,r,{className:c}=e,i=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["className"]);return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,o.A)("iconEdit_IMw_",c),"aria-hidden":"true"},i),r=r={children:(0,n.jsx)("g",{children:(0,n.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function s({editUrl:e}){return(0,n.jsxs)(l.A,{to:e,className:i.G.common.editThisPage,children:[(0,n.jsx)(a,{}),(0,n.jsx)(c.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=r(60908);function b({lastUpdatedAt:e}){let t=new Date(e),r=(0,u.i)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(t);return(0,n.jsx)(c.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,n.jsx)("b",{children:(0,n.jsx)("time",{dateTime:t.toISOString(),itemProp:"dateModified",children:r})})},children:" on {date}"})}function f({lastUpdatedBy:e}){return(0,n.jsx)(c.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,n.jsx)("b",{children:e})},children:" by {user}"})}function p({lastUpdatedAt:e,lastUpdatedBy:t}){return(0,n.jsxs)("span",{className:i.G.common.lastUpdated,children:[(0,n.jsx)(c.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,n.jsx)(b,{lastUpdatedAt:e}):"",byUser:t?(0,n.jsx)(f,{lastUpdatedBy:t}):""},children:"Last updated{atDate}{byUser}"}),!1]})}function O({className:e,editUrl:t,lastUpdatedAt:r,lastUpdatedBy:c}){return(0,n.jsxs)("div",{className:(0,o.A)("row",e),children:[(0,n.jsx)("div",{className:"col",children:t&&(0,n.jsx)(s,{editUrl:t})}),(0,n.jsx)("div",{className:(0,o.A)("col","lastUpdated_OHCJ"),children:(r||c)&&(0,n.jsx)(p,{lastUpdatedAt:r,lastUpdatedBy:c})})]})}},76699:(e,t,r)=>{r.d(t,{A:()=>_});var n,o,c=r(62540),i=r(63696),l=r(43023),a=r(93394),s=r(55887);function u(e){return(0,c.jsx)("code",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function f(e){return void 0!==e.children&&i.Children.toArray(e.children).every(e=>"string"==typeof e&&!e.includes("\n"))?(0,c.jsx)(u,b({},e)):(0,c.jsx)(s.A,b({},e))}var p=r(36372),O=r(23572);function y(e){var t,r;let n=i.Children.toArray(e.children),o=n.find(e=>i.isValidElement(e)&&"summary"===e.type),l=(0,c.jsx)(c.Fragment,{children:n.filter(e=>e!==o)});return(0,c.jsx)(O.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={summary:o,children:l},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var d=r(37425);function j(e){return(0,c.jsx)(d.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}var m=r(11750);let g={containsTaskList:"containsTaskList_k9gM"};var h=r(52711),v=r(55640),w=r(43758),P=r(1495),x=r(25436),S=r(66659),k=r(7293);async function D({id:e,text:t,config:r}){k.A.mermaidAPI.initialize(r);try{return await k.A.render(e,t)}catch(t){var n;throw null===(n=document.querySelector(`#d${e}`))||void 0===n||n.remove(),t}}function E(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function A({renderResult:e}){let t=(0,i.useRef)(null);return(0,i.useEffect)(()=>{var r;let n=t.current;null===(r=e.bindFunctions)||void 0===r||r.call(e,n)},[e]),(0,c.jsx)("div",{ref:t,className:"docusaurus-mermaid-container container_RUsj",dangerouslySetInnerHTML:{__html:e.svg}})}function N({value:e}){let t=function({text:e,config:t}){let[r,n]=(0,i.useState)(null),o=(0,i.useRef)(`mermaid-svg-${Math.round(1e7*Math.random())}`).current,c=function(){let{colorMode:e}=(0,S.G)(),t=(0,x.p)().mermaid,r=t.theme[e],{options:n}=t;return(0,i.useMemo)(()=>{var e,t;return e=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({startOnLoad:!1},n),t=t={theme:r},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e},[r,n])}(),l=null!=t?t:c;return(0,i.useEffect)(()=>{D({id:o,text:e,config:l}).then(n).catch(e=>{n(()=>{throw e})})},[o,e,l]),r}({text:e});return null===t?null:(0,c.jsx)(A,{renderResult:t})}function B(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let C=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},{Head:a.A,details:y,Details:y,code:f,a:function(e){return(0,c.jsx)(p.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},pre:function(e){return(0,c.jsx)(c.Fragment,{children:e.children})},ul:function(e){var t,r;return(0,c.jsx)("ul",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={className:function(e){if(void 0!==e)return(0,m.A)(e,(null==e?void 0:e.includes("contains-task-list"))&&g.containsTaskList)}(e.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},li:function(e){return(0,h.A)().collectAnchor(e.id),(0,c.jsx)("li",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},img:function(e){var t,r,n;return(0,c.jsx)("img",(r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({decoding:"async",loading:"lazy"},e),n=n={className:(t=e.className,(0,m.A)(t,"img_vXGZ"))},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r))},h1:e=>(0,c.jsx)(j,B({as:"h1"},e)),h2:e=>(0,c.jsx)(j,B({as:"h2"},e)),h3:e=>(0,c.jsx)(j,B({as:"h3"},e)),h4:e=>(0,c.jsx)(j,B({as:"h4"},e)),h5:e=>(0,c.jsx)(j,B({as:"h5"},e)),h6:e=>(0,c.jsx)(j,B({as:"h6"},e)),admonition:v.A,mermaid:function(e){return(0,c.jsx)(w.A,{fallback:e=>(0,c.jsx)(P.MN,E({},e)),children:(0,c.jsx)(N,E({},e))})}}),o=o={Code:f,Highlight:function({children:e,color:t}){return(0,c.jsx)("span",{style:{backgroundColor:t,borderRadius:"2px",color:"#fff",padding:"0.2rem"},children:e})},TweetQuote:function({url:e,handle:t,name:r,job:n,children:o}){let i=`https://unavatar.io/x/${t}`,l=`https://x.com/${t}`;return(0,c.jsxs)("figure",{className:"tweetQuote_h8Rz",children:[(0,c.jsx)("blockquote",{children:(0,c.jsx)(p.A,{to:e,children:o})}),(0,c.jsx)("figcaption",{children:(0,c.jsx)(p.A,{to:l,rel:"nofollow",children:(0,c.jsxs)("div",{className:"avatar",children:[(0,c.jsx)("img",{alt:r,className:(0,m.A)("avatar__photo","avatarImg_b51M"),src:i}),(0,c.jsxs)("div",{className:(0,m.A)("avatar__intro"),children:[(0,c.jsx)("strong",{className:"avatar__name",children:(0,c.jsx)("cite",{children:r})}),(0,c.jsx)("small",{className:"avatar__subtitle",itemProp:"description",children:n})]})]})})})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function _({children:e}){return(0,c.jsx)(l.x,{components:C,children:e})}},63851:(e,t,r)=>{r.r(t),r.d(t,{default:()=>f});var n=r(62540);r(63696);var o=r(11750),c=r(37554),i=r(12653),l=r(99849),a=r(76699),s=r(67393),u=r(49470),b=r(2604);function f(e){var t;let{content:r}=e,{metadata:f,assets:p}=r,{title:O,editUrl:y,description:d,frontMatter:j,lastUpdatedBy:m,lastUpdatedAt:g}=f,{keywords:h,wrapperClassName:v,hide_table_of_contents:w}=j,P=null!==(t=p.image)&&void 0!==t?t:j.image,x=!!(y||g||m);return(0,n.jsx)(c.e3,{className:(0,o.A)(null!=v?v:i.G.wrapper.mdxPages,i.G.page.mdxPage),children:(0,n.jsxs)(l.A,{children:[(0,n.jsx)(c.be,{title:O,description:d,keywords:h,image:P}),(0,n.jsx)("main",{className:"container container--fluid margin-vert--lg",children:(0,n.jsxs)("div",{className:(0,o.A)("row","mdxPageWrapper_bWhk"),children:[(0,n.jsxs)("div",{className:(0,o.A)("col",!w&&"col--8"),children:[(0,n.jsx)(u.A,{metadata:f}),(0,n.jsx)("article",{children:(0,n.jsx)(a.A,{children:(0,n.jsx)(r,{})})}),x&&(0,n.jsx)(b.A,{className:(0,o.A)("margin-top--sm",i.G.pages.pageFooterEditMetaRow),editUrl:y,lastUpdatedAt:g,lastUpdatedBy:m})]}),!w&&r.toc.length>0&&(0,n.jsx)("div",{className:"col col--2",children:(0,n.jsx)(s.A,{toc:r.toc,minHeadingLevel:j.toc_min_heading_level,maxHeadingLevel:j.toc_max_heading_level})})]})})]})})}},67393:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(11750),c=r(46733);function i(e){var t,r,{className:i}=e,l=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["className"]);return(0,n.jsx)("div",{className:(0,o.A)("tableOfContents_RLlU","thin-scrollbar",i),children:(0,n.jsx)(c.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},l),r=r={linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}},46733:(e,t,r)=>{r.d(t,{A:()=>b});var n=r(62540),o=r(63696),c=r(25436);function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function l(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function a(e){let t=e.getBoundingClientRect();return t.top===t.bottom?a(e.parentNode):t}var s=r(36372);let u=o.memo(function e({toc:t,className:r,linkClassName:o,isChild:c}){return t.length?(0,n.jsx)("ul",{className:c?void 0:r,children:t.map(t=>(0,n.jsxs)("li",{children:[(0,n.jsx)(s.A,{to:`#${t.id}`,className:null!=o?o:void 0,dangerouslySetInnerHTML:{__html:t.value}}),(0,n.jsx)(e,{isChild:!0,toc:t.children,className:r,linkClassName:o})]},t.id))}):null});function b(e){var{toc:t,className:r="table-of-contents table-of-contents__left-border",linkClassName:s="table-of-contents__link",linkActiveClassName:b,minHeadingLevel:f,maxHeadingLevel:p}=e,O=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["toc","className","linkClassName","linkActiveClassName","minHeadingLevel","maxHeadingLevel"]);let y=(0,c.p)(),d=null!=f?f:y.tableOfContents.minHeadingLevel,j=null!=p?p:y.tableOfContents.maxHeadingLevel,m=function({toc:e,minHeadingLevel:t,maxHeadingLevel:r}){return(0,o.useMemo)(()=>(function e({toc:t,minHeadingLevel:r,maxHeadingLevel:n}){return t.flatMap(t=>{let o=e({toc:t.children,minHeadingLevel:r,maxHeadingLevel:n});return t.level>=r&&t.level<=n?[l(i({},t),{children:o})]:o})})({toc:function(e){let t=e.map(e=>l(i({},e),{parentIndex:-1,children:[]})),r=Array(7).fill(-1);t.forEach((e,t)=>{let n=r.slice(2,e.level);e.parentIndex=Math.max(...n),r[e.level]=t});let n=[];return t.forEach(e=>{let{parentIndex:r}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["parentIndex"]);r>=0?t[r].children.push(o):n.push(o)}),n}(e),minHeadingLevel:t,maxHeadingLevel:r}),[e,t,r])}({toc:t,minHeadingLevel:d,maxHeadingLevel:j});return!function(e){let t=(0,o.useRef)(void 0),r=function(){let e=(0,o.useRef)(0),{navbar:{hideOnScroll:t}}=(0,c.p)();return(0,o.useEffect)(()=>{e.current=t?0:document.querySelector(".navbar").clientHeight},[t]),e}();(0,o.useEffect)(()=>{if(!e)return()=>{};let{linkClassName:n,linkActiveClassName:o,minHeadingLevel:c,maxHeadingLevel:i}=e;function l(){let e=Array.from(document.getElementsByClassName(n)),l=function(e,{anchorTopOffset:t}){var r,n,o;let c=e.find(e=>a(e).top>=t);return c?(o=a(c)).top>0&&o.bottom<window.innerHeight/2?c:null!==(r=e[e.indexOf(c)-1])&&void 0!==r?r:null:null!==(n=e[e.length-1])&&void 0!==n?n:null}(function({minHeadingLevel:e,maxHeadingLevel:t}){let r=[];for(let n=e;n<=t;n+=1)r.push(`h${n}.anchor`);return Array.from(document.querySelectorAll(r.join()))}({minHeadingLevel:c,maxHeadingLevel:i}),{anchorTopOffset:r.current}),s=e.find(e=>l&&l.id===decodeURIComponent(e.href.substring(e.href.indexOf("#")+1)));e.forEach(e=>{e===s?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)})}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}},[e,r])}((0,o.useMemo)(()=>{if(s&&b)return{linkClassName:s,linkActiveClassName:b,minHeadingLevel:d,maxHeadingLevel:j}},[s,b,d,j])),(0,n.jsx)(u,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({toc:m,className:r,linkClassName:s},O))}},77458:(e,t,r)=>{r.d(t,{AE:()=>a,Rc:()=>i,TT:()=>u,Uh:()=>l,Yh:()=>s});var n=r(62540);r(63696);var o=r(81912),c=r(93394);function i(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function a(){return(0,n.jsx)(c.A,{children:(0,n.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function s(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function u(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}},60908:(e,t,r)=>{r.d(t,{i:()=>o});var n=r(99468);function o(e={}){let{i18n:{currentLocale:t}}=(0,n.A)(),r=function(){let{i18n:{currentLocale:e,localeConfigs:t}}=(0,n.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({calendar:r},e))}},40576:(e,t,r)=>{r.d(t,{A:()=>c});var n=r(62540);r(63696);var o=r(10709);function c({children:e,fallback:t}){return(0,o.A)()?(0,n.jsx)(n.Fragment,{children:null==e?void 0:e()}):null!=t?t:null}},55887:(e,t,r)=>{r.d(t,{A:()=>el});var n,o,c,i={};r.r(i),r.d(i,{ButtonExample:()=>N});var l=r(62540),a=r(63696),s=r(11750),u=r(10709),b=r(55152),f=r(81912),p=r(99468),O=r(40576),y=r(1495),d=r(66659),j=r(25436);function m(){let{prism:e}=(0,j.p)(),{colorMode:t}=(0,d.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var g=r(43758);function h(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,l.jsx)("div",{className:(0,s.A)("playgroundHeader_Tvsk"),children:e})}function w(){return(0,l.jsx)("div",{children:"Loading..."})}function P(){return(0,l.jsx)(O.A,{fallback:(0,l.jsx)(w,{}),children:()=>(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(g.A,{fallback:e=>(0,l.jsx)(y.MN,h({},e)),children:(0,l.jsx)(b.pA,{})}),(0,l.jsx)(b.p1,{})]})})}function x(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(f.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,l.jsx)("div",{className:"playgroundPreview_mApW",children:(0,l.jsx)(P,{})})]})}function S(){let e=(0,u.A)();return(0,l.jsx)(b.w,{className:"playgroundEditor_TySg"},String(e))}function k(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(f.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,l.jsx)(S,{})]})}let D=e=>`${e};`;function E(e){var t,r,n,o,{children:c,transformCode:i}=e,a=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:s}}=(0,p.A)(),{liveCodeBlock:{playgroundPosition:u}}=s,f=m(),O=null!==(o=null===(n=a.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,l.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,l.jsx)(b.Q,(t=h({code:null==c?void 0:c.replace(/\n$/,""),noInline:O,transformCode:null!=i?i:D,theme:f},a),r=r={children:"top"===u?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(x,{}),(0,l.jsx)(k,{})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(k,{}),(0,l.jsx)(x,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function A(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function N(e){var t,r;return(0,l.jsx)("button",(t=A({type:"button"},e),r=r={style:A({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let B=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:a},a,i);var C=r(12653),_=r(19934),L=r.n(_);let T=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),I=RegExp("\\{(?<range>[\\d,-]+)\\}"),H={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},M=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},H),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),R=Object.keys(H);function z(e,t){let r=e.map(e=>{let{start:r,end:n}=M[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function U(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let c=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(m());return(0,l.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:c,className:(0,s.A)(o.className,"codeBlockContainer_jDV4",C.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let $={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function F({children:e,className:t}){return(0,l.jsx)(U,{as:"pre",tabIndex:0,className:(0,s.A)($.codeBlockStandalone,"thin-scrollbar",t),children:(0,l.jsx)("code",{className:$.codeBlockLines,children:e})})}var G=r(2550);let V={attributes:!0,characterData:!0,childList:!0,subtree:!0};var W=r(27663);let q={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function Q(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function X({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var c,i;1===e.length&&"\n"===e[0].content&&(e[0].content="");let a=n({line:e,className:(0,s.A)(t,r&&q.codeLine)}),u=e.map((e,t)=>(0,l.jsx)("span",Q({},o({token:e})),t));return(0,l.jsxs)("span",(c=Q({},a),i=i={children:[r?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:q.codeLineNumber}),(0,l.jsx)("span",{className:q.codeLineContent,children:u})]}):u,(0,l.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(i)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(i)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(i,e))}),c))}var Y=r(936);function Z(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function J(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,a.useState)(!1),o=(0,a.useRef)(void 0),c=(0,a.useCallback)(()=>{(0,Y.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,a.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,l.jsx)("button",{type:"button","aria-label":r?(0,f.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,f.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,f.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,s.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:c,children:(0,l.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,l.jsx)(Z,{className:K.copyButtonIcon}),(0,l.jsx)(J,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,f.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,l.jsx)("button",{type:"button",onClick:t,className:(0,s.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,l.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:c}){var i,u,b,f;let{prism:{defaultLanguage:p,magicComments:O}}=(0,j.p)(),y=null==(u=null!==(i=null!=c?c:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==i?i:p)?void 0:u.toLowerCase(),d=m(),g=function(){let[e,t]=(0,a.useState)(!1),[r,n]=(0,a.useState)(!1),o=(0,a.useRef)(null),c=(0,a.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),i=(0,a.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,a.useState)(),o=(0,a.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,a.useEffect)(()=>{o()},[o]),function(e,t,r=V){let n=(0,G._q)(t),o=(0,G.Be)(r);(0,a.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,i),(0,a.useEffect)(()=>{i()},[e,i]),(0,a.useEffect)(()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)}),[i]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:c}}(),h=(null!==(f=null==r?void 0:null===(b=r.match(T))||void 0===b?void 0:b.groups.title)&&void 0!==f?f:"")||n,{lineClassNames:v,code:w}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:c}=t;if(c&&I.test(c)){let e=c.match(I).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${c}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(L()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return z(["js","jsBlock"],t);case"jsx":case"tsx":return z(["js","jsBlock","jsx"],t);case"html":return z(["js","jsBlock","html"],t);case"python":case"py":case"bash":return z(["bash"],t);case"markdown":case"md":return z(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return z(["tex"],t);case"lua":case"haskell":case"sql":return z(["lua"],t);case"wasm":return z(["wasm"],t);case"vb":case"vba":case"visual-basic":return z(["vb","rem"],t);case"vbnet":return z(["vbnet","rem"],t);case"batch":return z(["rem"],t);case"basic":return z(["rem","f90"],t);case"fsharp":return z(["js","ml"],t);case"ocaml":case"sml":return z(["ml"],t);case"fortran":return z(["f90"],t);case"cobol":return z(["cobol"],t);default:return z(R,t)}}(n,o),l=r.split("\n"),a=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),s=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),b=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<l.length;){let t=l[e].match(i);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);s[r]?a[s[r]].range+=`${e},`:u[r]?a[u[r]].start=e:b[r]&&(a[b[r]].range+=`${a[b[r]].start}-${e-1},`),l.splice(e,1)}r=l.join("\n");let f={};return Object.entries(a).forEach(([e,{range:t}])=>{L()(t).forEach(t=>{var r;null!==(r=f[t])&&void 0!==r||(f[t]=[]),f[t].push(e)})}),{lineClassNames:f,code:r}}(e,{metastring:r,language:y,magicComments:O}),P=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,l.jsxs)(U,{as:"div",className:(0,s.A)(t,y&&!t.includes(`language-${y}`)&&`language-${y}`),children:[h&&(0,l.jsx)("div",{className:$.codeBlockTitle,children:h}),(0,l.jsxs)("div",{className:$.codeBlockContent,children:[(0,l.jsx)(W.f4,{theme:d,code:w,language:null!=y?y:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,l.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,s.A)(e,$.codeBlock,"thin-scrollbar"),style:t,children:(0,l.jsx)("code",{className:(0,s.A)($.codeBlockLines,P&&$.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,l.jsx)(X,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:P},t))})})}),(0,l.jsxs)("div",{className:$.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,l.jsx)(en,{className:$.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,l.jsx)(ee,{className:$.codeButton,code:w})]})]})]})}function ec(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let ei=(c=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let c=(0,u.A)(),i=a.Children.toArray(n).some(e=>(0,a.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,s="string"==typeof i?eo:F;return(0,l.jsx)(s,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(c))},function(e){return e.live?(0,l.jsx)(E,ec({scope:B},e)):(0,l.jsx)(c,ec({},e))});function el(e){return(0,l.jsx)(ei,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}}}]); \ No newline at end of file diff --git a/assets/js/20139c40.0bdca2c5.js b/assets/js/20139c40.0bdca2c5.js deleted file mode 100644 index 58ae4739ce..0000000000 --- a/assets/js/20139c40.0bdca2c5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[69369],{56657:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>u,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>t,toc:()=>d});let t=JSON.parse('{"id":"contributing","title":"Contributing","description":"","source":"@site/community/3-contributing.mdx","sourceDirName":".","slug":"/contributing","permalink":"/community/contributing","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/3-contributing.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":3,"frontMatter":{"title":"Contributing","hide_title":true,"sidebar_label":"Contributing"},"sidebar":"community","previous":{"title":"Awesome Resources","permalink":"/community/resources"},"next":{"title":"Canary releases","permalink":"/community/canary"}}');var o=n(62540),i=n(43023);function r(e){let s={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.header,{children:(0,o.jsx)(s.h1,{id:"contributing-to-docusaurus",children:"Contributing to Docusaurus"})}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"https://docusaurus.io",children:"Docusaurus"})," is our way to hopefully help make open source documentation easier. We currently have ",(0,o.jsx)(s.a,{href:"https://docusaurus.io/showcase",children:"multiple open source projects using it"}),", with many more planned. If you're interested in contributing to Docusaurus, hopefully, this document makes the process for contributing clear."]}),"\n",(0,o.jsxs)(s.p,{children:["The ",(0,o.jsx)(s.a,{href:"https://opensource.guide/",children:"Open Source Guides"})," website has a collection of resources for individuals, communities, and companies who want to learn how to run and contribute to an open source project. Contributors and people new to open source alike will find the following guides especially useful:"]}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsx)(s.li,{children:(0,o.jsx)(s.a,{href:"https://opensource.guide/how-to-contribute/",children:"How to Contribute to Open Source"})}),"\n",(0,o.jsx)(s.li,{children:(0,o.jsx)(s.a,{href:"https://opensource.guide/building-community/",children:"Building Welcoming Communities"})}),"\n"]}),"\n",(0,o.jsx)(s.h2,{id:"code-of-conduct",children:"Code of Conduct"}),"\n",(0,o.jsxs)(s.p,{children:["Facebook has adopted a Code of Conduct that we expect project participants to adhere to. Please read ",(0,o.jsx)(s.a,{href:"https://code.fb.com/codeofconduct",children:"the full text"})," so that you can understand what actions will and will not be tolerated."]}),"\n",(0,o.jsx)(s.h2,{id:"get-involved",children:"Get Involved"}),"\n",(0,o.jsx)(s.p,{children:"There are many ways to contribute to Docusaurus, and many of them do not involve writing any code. Here's a few ideas to get started:"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:["Simply start using Docusaurus. Go through the ",(0,o.jsx)(s.a,{href:"https://docusaurus.io/docs/installation",children:"Getting Started"})," guide. Does everything work as expected? If not, we're always looking for improvements. Let us know by ",(0,o.jsx)(s.a,{href:"#issues",children:"opening an issue"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:["Look through the ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues",children:"open issues"}),". Provide workarounds, ask for clarification, or suggest labels. Help ",(0,o.jsx)(s.a,{href:"#triaging-issues-and-pull-requests",children:"triage issues"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:["If you find an issue you would like to fix, ",(0,o.jsx)(s.a,{href:"#pull-requests",children:"open a pull request"}),". Issues tagged as ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/labels/Good%20first%20issue",children:(0,o.jsx)(s.em,{children:"Good first issue"})})," are a good place to get started."]}),"\n",(0,o.jsxs)(s.li,{children:["Read through the ",(0,o.jsx)(s.a,{href:"https://docusaurus.io/docs/installation",children:"Docusaurus docs"}),'. If you find anything that is confusing or can be improved, you can click "Edit this page" at the bottom of most docs, which takes you to the GitHub interface to make and propose changes.']}),"\n",(0,o.jsxs)(s.li,{children:["Take a look at the ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/labels/feature",children:"features requested"})," by others in the community and consider opening a pull request if you see something you want to work on."]}),"\n"]}),"\n",(0,o.jsxs)(s.p,{children:["Contributions are very welcome. If you think you need help planning your contribution, please ping us on X at ",(0,o.jsx)(s.a,{href:"https://x.com/docusaurus",children:"@docusaurus"})," and let us know you are looking for a bit of help."]}),"\n",(0,o.jsx)(s.h3,{id:"join-our-discord-channel",children:"Join our Discord Channel"}),"\n",(0,o.jsxs)(s.p,{children:["We have the ",(0,o.jsx)(s.a,{href:"https://discord.gg/6g6ASPA",children:(0,o.jsx)(s.code,{children:"#contributors"})})," channel on ",(0,o.jsx)(s.a,{href:"https://discord.gg/docusaurus",children:"Discord"})," to discuss all things about Docusaurus development. You can also be of great help by helping other users in the ",(0,o.jsx)(s.a,{href:"https://discord.gg/fwbcrQ3dHR",children:(0,o.jsx)(s.code,{children:"#help-and-questions"})})," channel."]}),"\n",(0,o.jsx)(s.h3,{id:"triaging-issues-and-pull-requests",children:"Triaging Issues and Pull Requests"}),"\n",(0,o.jsx)(s.p,{children:"One great way you can contribute to the project without writing any code is to help triage issues and pull requests as they come in."}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsx)(s.li,{children:"Ask for more information if you believe the issue does not provide all the details required to solve it."}),"\n",(0,o.jsxs)(s.li,{children:["Suggest ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/labels",children:"labels"})," that can help categorize issues."]}),"\n",(0,o.jsx)(s.li,{children:"Flag issues that are stale or that should be closed."}),"\n",(0,o.jsx)(s.li,{children:"Ask for test plans and review code."}),"\n"]}),"\n",(0,o.jsx)(s.h2,{id:"our-development-process",children:"Our Development Process"}),"\n",(0,o.jsxs)(s.p,{children:["Docusaurus uses ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus",children:"GitHub"})," as its source of truth. The core team will be working directly there. All changes will be public from the beginning."]}),"\n",(0,o.jsx)(s.p,{children:"All pull requests will be checked by the continuous integration system, GitHub actions. There are unit tests, end-to-end tests, performance tests, style tests, and much more."}),"\n",(0,o.jsx)(s.h3,{id:"branch-organization",children:"Branch Organization"}),"\n",(0,o.jsxs)(s.p,{children:["Docusaurus has one primary branch ",(0,o.jsx)(s.code,{children:"main"})," and we use feature branches with deploy previews to deliver new features with pull requests."]}),"\n",(0,o.jsx)(s.h2,{id:"issues",children:"Issues"}),"\n",(0,o.jsxs)(s.p,{children:["When ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/new/choose",children:"opening a new issue"}),", always make sure to fill out the issue template. ",(0,o.jsx)(s.strong,{children:"This step is very important!"})," Not doing so may result in your issue not being managed in a timely fashion. Don't take this personally if this happens, and feel free to open a new issue once you've gathered all the information required by the template."]}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"Please don't use the GitHub issue tracker for questions."})," If you have questions about using Docusaurus, use any of our ",(0,o.jsx)(s.a,{href:"https://docusaurus.io/community/support",children:"support channels"}),", and we will do our best to answer your questions."]}),"\n",(0,o.jsx)(s.h3,{id:"bugs",children:"Bugs"}),"\n",(0,o.jsxs)(s.p,{children:["We use ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues",children:"GitHub Issues"})," for our public bugs. If you would like to report a problem, take a look around and see if someone already opened an issue about it. If you are certain this is a new, unreported bug, you can submit a ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/new?assignees=&labels=bug%2Cstatus%3A+needs+triage&template=bug.yml",children:"bug report"}),"."]}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"One issue, one bug:"})," Please report a single bug per issue."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Provide reproduction steps:"})," List all the steps necessary to reproduce the issue. The person reading your bug report should be able to follow these steps to reproduce your issue with minimal effort."]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"If you're only fixing a bug, it's fine to submit a pull request right away but we still recommend filing an issue detailing what you're fixing. This is helpful in case we don't accept that specific fix but want to keep track of the issue."}),"\n",(0,o.jsx)(s.h3,{id:"security-bugs",children:"Security Bugs"}),"\n",(0,o.jsxs)(s.p,{children:["Facebook has a ",(0,o.jsx)(s.a,{href:"https://www.facebook.com/whitehat/",children:"bounty program"})," for the safe disclosure of security bugs. With that in mind, please do not file public issues; go through the process outlined on that page."]}),"\n",(0,o.jsx)(s.h3,{id:"feature-requests",children:"Feature requests"}),"\n",(0,o.jsxs)(s.p,{children:["If you would like to request a new feature or enhancement but are not yet thinking about opening a pull request, you can file an issue with the ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/new?assignees=&labels=feature%2Cstatus%3A+needs+triage&template=feature.yml",children:"feature template"})," in the form of an ",(0,o.jsx)(s.strong,{children:"elaborated RFC"}),". Alternatively, you can use the ",(0,o.jsx)(s.a,{href:"https://docusaurus.io/feature-requests",children:"Canny board"})," for more casual feature requests and gain enough traction before proposing an RFC."]}),"\n",(0,o.jsx)(s.h3,{id:"proposals",children:"Proposals"}),"\n",(0,o.jsxs)(s.p,{children:["If you intend to make any non-trivial changes to existing implementations, we recommend filing an issue with the ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/new?assignees=&labels=proposal%2Cstatus%3A+needs+triage&template=proposal.yml",children:"proposal template"}),". This lets us reach an agreement on your proposal before you put significant effort into it. These types of issues should be rare."]}),"\n",(0,o.jsx)(s.h3,{id:"claiming-issues",children:"Claiming issues"}),"\n",(0,o.jsxs)(s.p,{children:["We have a list of ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/labels/good%20first%20issue",children:"beginner-friendly issues"})," to help you get your feet wet in the Docusaurus codebase and familiar with our contribution process. This is a great place to get started."]}),"\n",(0,o.jsxs)(s.p,{children:["Apart from the ",(0,o.jsx)(s.code,{children:"good first issue"}),", the following labels are also worth looking at:"]}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/labels/help%20wanted",children:(0,o.jsx)(s.code,{children:"help wanted"})}),": if you have specific knowledge in one domain, working on these issues can make your expertise shine."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/labels/status%3A%20accepting%20pr",children:(0,o.jsx)(s.code,{children:"status: accepting pr"})}),": community contributors can feel free to claim any of these."]}),"\n"]}),"\n",(0,o.jsxs)(s.p,{children:['If you want to work on any of these issues, just drop a message saying "I\'d like to work on this", and we will assign the issue to you and update the issue\'s status as "claimed". ',(0,o.jsx)(s.strong,{children:"You are expected to send a pull request within seven days"})," after that, so we can still delegate the issue to someone else if you are unavailable."]}),"\n",(0,o.jsx)(s.p,{children:'Alternatively, when opening an issue, you can also click the "self service" checkbox to indicate that you\'d like to work on the issue yourself, which will also make us see the issue as "claimed".'}),"\n",(0,o.jsx)(s.h2,{id:"development",children:"Development"}),"\n",(0,o.jsx)(s.h3,{id:"online-one-click-setup-for-contributing",children:"Online one-click setup for contributing"}),"\n",(0,o.jsx)(s.p,{children:"You can use Gitpod (a free, online, VS Code-like IDE) for contributing. With a single click, it will launch a workspace (for Docusaurus 2) and automatically:"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsx)(s.li,{children:"clone the docusaurus repo."}),"\n",(0,o.jsx)(s.li,{children:"install the dependencies."}),"\n",(0,o.jsxs)(s.li,{children:["run ",(0,o.jsx)(s.code,{children:"yarn start"})]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"So that you can start contributing straight away."}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.a,{href:"https://gitpod.io/#https://github.com/facebook/docusaurus",children:(0,o.jsx)(s.img,{src:"https://gitpod.io/button/open-in-gitpod.svg",alt:"Open in Gitpod"})})}),"\n",(0,o.jsxs)(s.p,{children:["You can also try using the new ",(0,o.jsx)(s.a,{href:"https://github.dev/facebook/docusaurus",children:"github.dev"})," feature. While you are browsing any file, changing the domain name from ",(0,o.jsx)(s.code,{children:"github.com"})," to ",(0,o.jsx)(s.code,{children:"github.dev"})," will turn your browser into an online editor. You can start making changes and send pull requests right away."]}),"\n",(0,o.jsx)(s.h3,{id:"installation",children:"Installation"}),"\n",(0,o.jsxs)(s.ol,{children:["\n",(0,o.jsxs)(s.li,{children:["Ensure you have ",(0,o.jsx)(s.a,{href:"https://yarnpkg.com/",children:"Yarn"})," installed."]}),"\n",(0,o.jsxs)(s.li,{children:["After cloning the repository, run ",(0,o.jsx)(s.code,{children:"yarn install"})," in the root of the repository. This will install all dependencies as well as build all local packages."]}),"\n",(0,o.jsxs)(s.li,{children:["To start a development server, run ",(0,o.jsx)(s.code,{children:"yarn workspace website start"}),"."]}),"\n"]}),"\n",(0,o.jsx)(s.h3,{id:"code-conventions",children:"Code Conventions"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Most important: Look around."})," Match the style you see used in the rest of the project. This includes formatting, naming files, naming things in code, naming things in documentation, etc."]}),"\n",(0,o.jsx)(s.li,{children:'"Attractive"'}),"\n",(0,o.jsx)(s.li,{children:"We do have Prettier (a formatter) and ESLint (a syntax linter) to catch most stylistic problems. If you are working locally, they should automatically fix some issues during every git commit."}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"For documentation"}),": Do not wrap lines at 80 characters - configure your editor to soft-wrap when editing documentation."]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"Don't worry too much about styles in general\u2014the maintainers will help you fix them as they review your code."}),"\n",(0,o.jsx)(s.h2,{id:"pull-requests",children:"Pull Requests"}),"\n",(0,o.jsx)(s.p,{children:"So you have decided to contribute code back to upstream by opening a pull request. You've invested a good chunk of time, and we appreciate it. We will do our best to work with you and get the PR looked at."}),"\n",(0,o.jsx)(s.p,{children:"Working on your first Pull Request? You can learn how from this free video series:"}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.a,{href:"https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github",children:(0,o.jsx)(s.strong,{children:"How to Contribute to an Open Source Project on GitHub"})})}),"\n",(0,o.jsx)(s.p,{children:"Please make sure the following is done when submitting a pull request:"}),"\n",(0,o.jsxs)(s.ol,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Keep your PR small."})," Small pull requests (~300 lines of diff) are much easier to review and more likely to get merged. Make sure the PR does only one thing, otherwise please split it."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Use descriptive titles."})," It is recommended to follow this ",(0,o.jsx)(s.a,{href:"#semantic-commit-messages",children:"commit message style"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Test your changes."})," Describe your ",(0,o.jsx)(s.a,{href:"#test-plan",children:(0,o.jsx)(s.strong,{children:"test plan"})})," in your pull request description."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"CLA."})," If you haven't already, ",(0,o.jsx)(s.a,{href:"https://code.facebook.com/cla",children:"sign the CLA"}),"."]}),"\n"]}),"\n",(0,o.jsxs)(s.p,{children:["All pull requests should be opened against the ",(0,o.jsx)(s.code,{children:"main"})," branch."]}),"\n",(0,o.jsx)(s.p,{children:"We have a lot of integration systems that run automated tests to guard against mistakes. The maintainers will also review your code and fix obvious issues for you. These systems' duty is to make you worry as little about the chores as possible. Your code contributions are more important than sticking to any procedures, although completing the checklist will surely save everyone's time."}),"\n",(0,o.jsx)(s.h3,{id:"semantic-commit-messages",children:"Semantic Commit Messages"}),"\n",(0,o.jsx)(s.p,{children:"See how a minor change to your commit message style can make you a better programmer."}),"\n",(0,o.jsxs)(s.p,{children:["Format: ",(0,o.jsx)(s.code,{children:"<type>(<scope>): <subject>"})]}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.code,{children:"<scope>"})," is optional. If your change is specific to one/two packages, consider adding the scope. Scopes should be brief but recognizable, e.g. ",(0,o.jsx)(s.code,{children:"content-docs"}),", ",(0,o.jsx)(s.code,{children:"theme-classic"}),", ",(0,o.jsx)(s.code,{children:"core"})]}),"\n",(0,o.jsx)(s.p,{children:"The various types of commits:"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"feat"}),": a new API or behavior ",(0,o.jsx)(s.strong,{children:"for the end user"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"fix"}),": a bug fix ",(0,o.jsx)(s.strong,{children:"for the end user"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"docs"}),": a change to the website or other Markdown documents in our repo."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"refactor"}),": a change to production code that leads to no behavior difference, e.g. splitting files, renaming internal variables, improving code style..."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"test"}),": adding missing tests, refactoring tests; no production code change."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"chore"}),": upgrading dependencies, releasing new versions... Chores that are ",(0,o.jsx)(s.strong,{children:"regularly done"})," for maintenance purposes."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"misc"}),": anything else that doesn't change production code, yet is not ",(0,o.jsx)(s.code,{children:"test"})," or ",(0,o.jsx)(s.code,{children:"chore"}),". e.g. updating GitHub actions workflow."]}),"\n"]}),"\n",(0,o.jsxs)(s.p,{children:["Do not get too stressed about PR titles, however. Your PR will be squash-merged and your commit to the ",(0,o.jsx)(s.code,{children:"main"})," branch will get the title of your PR, so commits within a branch don't need to be semantically named. The maintainers will help you get the PR title right, and we also have a PR label system that doesn't equate with the commit message types. Your code is more important than conventions!"]}),"\n",(0,o.jsx)(s.p,{children:"Example:"}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{children:"feat(core): allow overriding of webpack config\n^--^^----^ ^------------^\n| | |\n| | +-> Summary in present tense. Use lower case not title case!\n| |\n| +-> The package(s) that this change affected.\n|\n+-------> Type: see above for the list we use.\n"})}),"\n",(0,o.jsx)(s.h3,{id:"versioned-docs",children:"Versioned Docs"}),"\n",(0,o.jsx)(s.p,{children:"If you only want to make doc changes, you just need to be aware of versioned docs."}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"website/docs"}),' - The files here are responsible for the "next" version at ',(0,o.jsx)(s.a,{href:"https://docusaurus.io/docs/next/installation",children:"https://docusaurus.io/docs/next/installation"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"website/versioned_docs/version-X.Y.Z"})," - These are the docs for the X.Y.Z version at ",(0,o.jsx)(s.a,{href:"https://docusaurus.io/docs/X.Y.Z/installation",children:"https://docusaurus.io/docs/X.Y.Z/installation"}),"."]}),"\n"]}),"\n",(0,o.jsxs)(s.p,{children:["Do not edit the auto-generated files within ",(0,o.jsx)(s.code,{children:"versioned_docs/"})," or ",(0,o.jsx)(s.code,{children:"versioned_sidebars/"})," unless you are sure it is necessary. For example, information about new features should not be documented in versioned docs. Edits made to older versions will not be propagated to newer versions of the docs."]}),"\n",(0,o.jsx)(s.h3,{id:"test-plan",children:"Test Plan"}),"\n",(0,o.jsx)(s.p,{children:"A good test plan has the exact commands you ran and their output and provides screenshots or videos if the pull request changes UI. If you've changed APIs, update the documentation."}),"\n",(0,o.jsx)(s.p,{children:"Tests are integrated into our continuous integration system, so you don't always need to run local tests. However, for significant code changes, it saves both your and the maintainers' time if you can do exhaustive tests locally first to make sure your PR is in good shape. There are many types of tests:"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Build and typecheck."})," We use TypeScript in our codebase, which can make sure your code is consistent and catches some obvious mistakes early."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Unit tests."})," We use ",(0,o.jsx)(s.a,{href:"https://jestjs.io/",children:"Jest"})," for unit tests of API endpoints' behavior. You can run ",(0,o.jsx)(s.code,{children:"yarn test"})," in the root directory to run all tests, or ",(0,o.jsx)(s.code,{children:"yarn test path/to/your/file.test.ts"})," to run a specific test."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Dogfooding."})," Our website itself covers all kinds of potential configuration cases and we even have a dedicated ",(0,o.jsx)(s.a,{href:"https://docusaurus.io/tests",children:"tests area"}),". Don't be afraid to update our website's configuration in your PR\u2014it can help the maintainers preview the effects. We can decide if the website change should be kept when merging and deploying for production."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"E2E tests."})," You can simulate the distribution and installation of the code with your fresh changes. If you need help testing your changes locally, you can check out the doc on doing ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/blob/main/admin/local-third-party-project-testing.md",children:"local third-party testing"}),"."]}),"\n"]}),"\n",(0,o.jsx)(s.h3,{id:"licensing",children:"Licensing"}),"\n",(0,o.jsx)(s.p,{children:"By contributing to Docusaurus, you agree that your contributions will be licensed under its MIT license. Copy and paste this to the top of your new file(s):"}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-js",children:"/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n"})}),"\n",(0,o.jsxs)(s.p,{children:["This is also auto-fixable with the ",(0,o.jsx)(s.code,{children:"header/header"})," ESLint rule."]}),"\n",(0,o.jsx)(s.h3,{id:"contributor-license-agreement-cla",children:"Contributor License Agreement (CLA)"}),"\n",(0,o.jsxs)(s.p,{children:["In order to accept your pull request, we need you to submit a CLA. You only need to do this once, so if you've done this for another Facebook open source project, you're good to go. If you are submitting a pull request for the first time, the Facebook GitHub Bot will reply with a link to the CLA form. You may also ",(0,o.jsx)(s.a,{href:"https://code.facebook.com/cla",children:"complete your CLA here"}),"."]}),"\n",(0,o.jsx)(s.p,{children:"After you have signed the CLA, the CLA bot would automatically update the PR status. There's no need to open a new PR."}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"CLAs are required for us to merge your pull request."})," While we value your effort and are willing to wait for you to come back and address the reviews in case you are unavailable after sending the pull request, pull requests that are ready to merge but have CLA missing and no response from the author ",(0,o.jsx)(s.strong,{children:"will be closed within two weeks of opening"}),". If you have further questions about the CLA, please stay in touch with us."]}),"\n",(0,o.jsx)(s.p,{children:"If it happens that you were unavailable and your PR gets closed, feel free to reopen once it's ready! We are still happy to review it, help you complete it, and eventually merge it."}),"\n",(0,o.jsx)(s.h3,{id:"breaking-changes",children:"Breaking Changes"}),"\n",(0,o.jsx)(s.p,{children:"When adding a new breaking change, follow this template in your pull request:"}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-md",children:"### New breaking change here\n\n- **Who does this affect**:\n- **How to migrate**:\n- **Why make this breaking change**:\n- **Severity (number of people affected x effort)**:\n"})}),"\n",(0,o.jsx)(s.h3,{id:"what-happens-next",children:"What Happens Next?"}),"\n",(0,o.jsx)(s.p,{children:"The core Docusaurus team will be monitoring pull requests. Do help us by keeping pull requests consistent by following the guidelines above."})]})}function a(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(r,{...e})}):r(e)}let l={title:"Contributing",hide_title:!0,sidebar_label:"Contributing"},c=void 0,u={},d=[{value:"Code of Conduct",id:"code-of-conduct",level:2},{value:"Get Involved",id:"get-involved",level:2},{value:"Join our Discord Channel",id:"join-our-discord-channel",level:3},{value:"Triaging Issues and Pull Requests",id:"triaging-issues-and-pull-requests",level:3},{value:"Our Development Process",id:"our-development-process",level:2},{value:"Branch Organization",id:"branch-organization",level:3},{value:"Issues",id:"issues",level:2},{value:"Bugs",id:"bugs",level:3},{value:"Security Bugs",id:"security-bugs",level:3},{value:"Feature requests",id:"feature-requests",level:3},{value:"Proposals",id:"proposals",level:3},{value:"Claiming issues",id:"claiming-issues",level:3},{value:"Development",id:"development",level:2},{value:"Online one-click setup for contributing",id:"online-one-click-setup-for-contributing",level:3},{value:"Installation",id:"installation",level:3},{value:"Code Conventions",id:"code-conventions",level:3},{value:"Pull Requests",id:"pull-requests",level:2},{value:"Semantic Commit Messages",id:"semantic-commit-messages",level:3},{value:"Versioned Docs",id:"versioned-docs",level:3},{value:"Test Plan",id:"test-plan",level:3},{value:"Licensing",id:"licensing",level:3},{value:"Contributor License Agreement (CLA)",id:"contributor-license-agreement-cla",level:3},{value:"Breaking Changes",id:"breaking-changes",level:3},{value:"What Happens Next?",id:"what-happens-next",level:3}];function h(e){return(0,o.jsx)(a,{})}function p(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},43023:(e,s,n)=>{n.d(s,{R:()=>r,x:()=>a});var t=n(63696);let o={},i=t.createContext(o);function r(e){let s=t.useContext(i);return t.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(o):e.components||o:r(e.components),t.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/20139c40.e486f976.js b/assets/js/20139c40.e486f976.js new file mode 100644 index 0000000000..4d29c7984d --- /dev/null +++ b/assets/js/20139c40.e486f976.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[69369],{56657:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>u,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>t,toc:()=>d});let t=JSON.parse('{"id":"contributing","title":"Contributing","description":"","source":"@site/community/3-contributing.mdx","sourceDirName":".","slug":"/contributing","permalink":"/community/contributing","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/3-contributing.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":3,"frontMatter":{"title":"Contributing","hide_title":true,"sidebar_label":"Contributing"},"sidebar":"community","previous":{"title":"Awesome Resources","permalink":"/community/resources"},"next":{"title":"Canary releases","permalink":"/community/canary"}}');var o=n(62540),i=n(43023);function r(e){let s={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.header,{children:(0,o.jsx)(s.h1,{id:"contributing-to-docusaurus",children:"Contributing to Docusaurus"})}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.a,{href:"https://docusaurus.io",children:"Docusaurus"})," is our way to hopefully help make open source documentation easier. We currently have ",(0,o.jsx)(s.a,{href:"https://docusaurus.io/showcase",children:"multiple open source projects using it"}),", with many more planned. If you're interested in contributing to Docusaurus, hopefully, this document makes the process for contributing clear."]}),"\n",(0,o.jsxs)(s.p,{children:["The ",(0,o.jsx)(s.a,{href:"https://opensource.guide/",children:"Open Source Guides"})," website has a collection of resources for individuals, communities, and companies who want to learn how to run and contribute to an open source project. Contributors and people new to open source alike will find the following guides especially useful:"]}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsx)(s.li,{children:(0,o.jsx)(s.a,{href:"https://opensource.guide/how-to-contribute/",children:"How to Contribute to Open Source"})}),"\n",(0,o.jsx)(s.li,{children:(0,o.jsx)(s.a,{href:"https://opensource.guide/building-community/",children:"Building Welcoming Communities"})}),"\n"]}),"\n",(0,o.jsx)(s.h2,{id:"code-of-conduct",children:"Code of Conduct"}),"\n",(0,o.jsxs)(s.p,{children:["Facebook has adopted a Code of Conduct that we expect project participants to adhere to. Please read ",(0,o.jsx)(s.a,{href:"https://code.fb.com/codeofconduct",children:"the full text"})," so that you can understand what actions will and will not be tolerated."]}),"\n",(0,o.jsx)(s.h2,{id:"get-involved",children:"Get Involved"}),"\n",(0,o.jsx)(s.p,{children:"There are many ways to contribute to Docusaurus, and many of them do not involve writing any code. Here's a few ideas to get started:"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:["Simply start using Docusaurus. Go through the ",(0,o.jsx)(s.a,{href:"https://docusaurus.io/docs/installation",children:"Getting Started"})," guide. Does everything work as expected? If not, we're always looking for improvements. Let us know by ",(0,o.jsx)(s.a,{href:"#issues",children:"opening an issue"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:["Look through the ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues",children:"open issues"}),". Provide workarounds, ask for clarification, or suggest labels. Help ",(0,o.jsx)(s.a,{href:"#triaging-issues-and-pull-requests",children:"triage issues"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:["If you find an issue you would like to fix, ",(0,o.jsx)(s.a,{href:"#pull-requests",children:"open a pull request"}),". Issues tagged as ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/labels/Good%20first%20issue",children:(0,o.jsx)(s.em,{children:"Good first issue"})})," are a good place to get started."]}),"\n",(0,o.jsxs)(s.li,{children:["Read through the ",(0,o.jsx)(s.a,{href:"https://docusaurus.io/docs/installation",children:"Docusaurus docs"}),'. If you find anything that is confusing or can be improved, you can click "Edit this page" at the bottom of most docs, which takes you to the GitHub interface to make and propose changes.']}),"\n",(0,o.jsxs)(s.li,{children:["Take a look at the ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/labels/feature",children:"features requested"})," by others in the community and consider opening a pull request if you see something you want to work on."]}),"\n"]}),"\n",(0,o.jsxs)(s.p,{children:["Contributions are very welcome. If you think you need help planning your contribution, please ping us on X at ",(0,o.jsx)(s.a,{href:"https://x.com/docusaurus",children:"@docusaurus"})," and let us know you are looking for a bit of help."]}),"\n",(0,o.jsx)(s.h3,{id:"join-our-discord-channel",children:"Join our Discord Channel"}),"\n",(0,o.jsxs)(s.p,{children:["We have the ",(0,o.jsx)(s.a,{href:"https://discord.gg/6g6ASPA",children:(0,o.jsx)(s.code,{children:"#contributors"})})," channel on ",(0,o.jsx)(s.a,{href:"https://discord.gg/docusaurus",children:"Discord"})," to discuss all things about Docusaurus development. You can also be of great help by helping other users in the ",(0,o.jsx)(s.a,{href:"https://discord.gg/fwbcrQ3dHR",children:(0,o.jsx)(s.code,{children:"#help-and-questions"})})," channel."]}),"\n",(0,o.jsx)(s.h3,{id:"triaging-issues-and-pull-requests",children:"Triaging Issues and Pull Requests"}),"\n",(0,o.jsx)(s.p,{children:"One great way you can contribute to the project without writing any code is to help triage issues and pull requests as they come in."}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsx)(s.li,{children:"Ask for more information if you believe the issue does not provide all the details required to solve it."}),"\n",(0,o.jsxs)(s.li,{children:["Suggest ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/labels",children:"labels"})," that can help categorize issues."]}),"\n",(0,o.jsx)(s.li,{children:"Flag issues that are stale or that should be closed."}),"\n",(0,o.jsx)(s.li,{children:"Ask for test plans and review code."}),"\n"]}),"\n",(0,o.jsx)(s.h2,{id:"our-development-process",children:"Our Development Process"}),"\n",(0,o.jsxs)(s.p,{children:["Docusaurus uses ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus",children:"GitHub"})," as its source of truth. The core team will be working directly there. All changes will be public from the beginning."]}),"\n",(0,o.jsx)(s.p,{children:"All pull requests will be checked by the continuous integration system, GitHub actions. There are unit tests, end-to-end tests, performance tests, style tests, and much more."}),"\n",(0,o.jsx)(s.h3,{id:"branch-organization",children:"Branch Organization"}),"\n",(0,o.jsxs)(s.p,{children:["Docusaurus has one primary branch ",(0,o.jsx)(s.code,{children:"main"})," and we use feature branches with deploy previews to deliver new features with pull requests."]}),"\n",(0,o.jsx)(s.h2,{id:"issues",children:"Issues"}),"\n",(0,o.jsxs)(s.p,{children:["When ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/new/choose",children:"opening a new issue"}),", always make sure to fill out the issue template. ",(0,o.jsx)(s.strong,{children:"This step is very important!"})," Not doing so may result in your issue not being managed in a timely fashion. Don't take this personally if this happens, and feel free to open a new issue once you've gathered all the information required by the template."]}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"Please don't use the GitHub issue tracker for questions."})," If you have questions about using Docusaurus, use any of our ",(0,o.jsx)(s.a,{href:"https://docusaurus.io/community/support",children:"support channels"}),", and we will do our best to answer your questions."]}),"\n",(0,o.jsx)(s.h3,{id:"bugs",children:"Bugs"}),"\n",(0,o.jsxs)(s.p,{children:["We use ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues",children:"GitHub Issues"})," for our public bugs. If you would like to report a problem, take a look around and see if someone already opened an issue about it. If you are certain this is a new, unreported bug, you can submit a ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/new?assignees=&labels=bug%2Cstatus%3A+needs+triage&template=bug.yml",children:"bug report"}),"."]}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"One issue, one bug:"})," Please report a single bug per issue."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Provide reproduction steps:"})," List all the steps necessary to reproduce the issue. The person reading your bug report should be able to follow these steps to reproduce your issue with minimal effort."]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"If you're only fixing a bug, it's fine to submit a pull request right away but we still recommend filing an issue detailing what you're fixing. This is helpful in case we don't accept that specific fix but want to keep track of the issue."}),"\n",(0,o.jsx)(s.h3,{id:"security-bugs",children:"Security Bugs"}),"\n",(0,o.jsxs)(s.p,{children:["Facebook has a ",(0,o.jsx)(s.a,{href:"https://www.facebook.com/whitehat/",children:"bounty program"})," for the safe disclosure of security bugs. With that in mind, please do not file public issues; go through the process outlined on that page."]}),"\n",(0,o.jsx)(s.h3,{id:"feature-requests",children:"Feature requests"}),"\n",(0,o.jsxs)(s.p,{children:["If you would like to request a new feature or enhancement but are not yet thinking about opening a pull request, you can file an issue with the ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/new?assignees=&labels=feature%2Cstatus%3A+needs+triage&template=feature.yml",children:"feature template"})," in the form of an ",(0,o.jsx)(s.strong,{children:"elaborated RFC"}),". Alternatively, you can use the ",(0,o.jsx)(s.a,{href:"https://docusaurus.io/feature-requests",children:"Canny board"})," for more casual feature requests and gain enough traction before proposing an RFC."]}),"\n",(0,o.jsx)(s.h3,{id:"proposals",children:"Proposals"}),"\n",(0,o.jsxs)(s.p,{children:["If you intend to make any non-trivial changes to existing implementations, we recommend filing an issue with the ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/new?assignees=&labels=proposal%2Cstatus%3A+needs+triage&template=proposal.yml",children:"proposal template"}),". This lets us reach an agreement on your proposal before you put significant effort into it. These types of issues should be rare."]}),"\n",(0,o.jsx)(s.h3,{id:"claiming-issues",children:"Claiming issues"}),"\n",(0,o.jsxs)(s.p,{children:["We have a list of ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/labels/good%20first%20issue",children:"beginner-friendly issues"})," to help you get your feet wet in the Docusaurus codebase and familiar with our contribution process. This is a great place to get started."]}),"\n",(0,o.jsxs)(s.p,{children:["Apart from the ",(0,o.jsx)(s.code,{children:"good first issue"}),", the following labels are also worth looking at:"]}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/labels/help%20wanted",children:(0,o.jsx)(s.code,{children:"help wanted"})}),": if you have specific knowledge in one domain, working on these issues can make your expertise shine."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/labels/status%3A%20accepting%20pr",children:(0,o.jsx)(s.code,{children:"status: accepting pr"})}),": community contributors can feel free to claim any of these."]}),"\n"]}),"\n",(0,o.jsxs)(s.p,{children:['If you want to work on any of these issues, just drop a message saying "I\'d like to work on this", and we will assign the issue to you and update the issue\'s status as "claimed". ',(0,o.jsx)(s.strong,{children:"You are expected to send a pull request within seven days"})," after that, so we can still delegate the issue to someone else if you are unavailable."]}),"\n",(0,o.jsx)(s.p,{children:'Alternatively, when opening an issue, you can also click the "self service" checkbox to indicate that you\'d like to work on the issue yourself, which will also make us see the issue as "claimed".'}),"\n",(0,o.jsx)(s.h2,{id:"development",children:"Development"}),"\n",(0,o.jsx)(s.h3,{id:"online-one-click-setup-for-contributing",children:"Online one-click setup for contributing"}),"\n",(0,o.jsx)(s.p,{children:"You can use Gitpod (a free, online, VS Code-like IDE) for contributing. With a single click, it will launch a workspace (for Docusaurus 2) and automatically:"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsx)(s.li,{children:"clone the docusaurus repo."}),"\n",(0,o.jsx)(s.li,{children:"install the dependencies."}),"\n",(0,o.jsxs)(s.li,{children:["run ",(0,o.jsx)(s.code,{children:"yarn start"})]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"So that you can start contributing straight away."}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.a,{href:"https://gitpod.io/#https://github.com/facebook/docusaurus",children:(0,o.jsx)(s.img,{src:"https://gitpod.io/button/open-in-gitpod.svg",alt:"Open in Gitpod"})})}),"\n",(0,o.jsxs)(s.p,{children:["You can also try using the new ",(0,o.jsx)(s.a,{href:"https://github.dev/facebook/docusaurus",children:"github.dev"})," feature. While you are browsing any file, changing the domain name from ",(0,o.jsx)(s.code,{children:"github.com"})," to ",(0,o.jsx)(s.code,{children:"github.dev"})," will turn your browser into an online editor. You can start making changes and send pull requests right away."]}),"\n",(0,o.jsx)(s.h3,{id:"installation",children:"Installation"}),"\n",(0,o.jsxs)(s.ol,{children:["\n",(0,o.jsxs)(s.li,{children:["Ensure you have ",(0,o.jsx)(s.a,{href:"https://yarnpkg.com/",children:"Yarn"})," installed."]}),"\n",(0,o.jsxs)(s.li,{children:["After cloning the repository, run ",(0,o.jsx)(s.code,{children:"yarn install"})," in the root of the repository. This will install all dependencies as well as build all local packages."]}),"\n",(0,o.jsxs)(s.li,{children:["To start a development server, run ",(0,o.jsx)(s.code,{children:"yarn workspace website start"}),"."]}),"\n"]}),"\n",(0,o.jsx)(s.h3,{id:"code-conventions",children:"Code Conventions"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Most important: Look around."})," Match the style you see used in the rest of the project. This includes formatting, naming files, naming things in code, naming things in documentation, etc."]}),"\n",(0,o.jsx)(s.li,{children:'"Attractive"'}),"\n",(0,o.jsx)(s.li,{children:"We do have Prettier (a formatter) and ESLint (a syntax linter) to catch most stylistic problems. If you are working locally, they should automatically fix some issues during every git commit."}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"For documentation"}),": Do not wrap lines at 80 characters - configure your editor to soft-wrap when editing documentation."]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"Don't worry too much about styles in general\u2014the maintainers will help you fix them as they review your code."}),"\n",(0,o.jsx)(s.h2,{id:"pull-requests",children:"Pull Requests"}),"\n",(0,o.jsx)(s.p,{children:"So you have decided to contribute code back to upstream by opening a pull request. You've invested a good chunk of time, and we appreciate it. We will do our best to work with you and get the PR looked at."}),"\n",(0,o.jsx)(s.p,{children:"Working on your first Pull Request? You can learn how from this free video series:"}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.a,{href:"https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github",children:(0,o.jsx)(s.strong,{children:"How to Contribute to an Open Source Project on GitHub"})})}),"\n",(0,o.jsx)(s.p,{children:"Please make sure the following is done when submitting a pull request:"}),"\n",(0,o.jsxs)(s.ol,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Keep your PR small."})," Small pull requests (~300 lines of diff) are much easier to review and more likely to get merged. Make sure the PR does only one thing, otherwise please split it."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Use descriptive titles."})," It is recommended to follow this ",(0,o.jsx)(s.a,{href:"#semantic-commit-messages",children:"commit message style"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Test your changes."})," Describe your ",(0,o.jsx)(s.a,{href:"#test-plan",children:(0,o.jsx)(s.strong,{children:"test plan"})})," in your pull request description."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"CLA."})," If you haven't already, ",(0,o.jsx)(s.a,{href:"https://code.facebook.com/cla",children:"sign the CLA"}),"."]}),"\n"]}),"\n",(0,o.jsxs)(s.p,{children:["All pull requests should be opened against the ",(0,o.jsx)(s.code,{children:"main"})," branch."]}),"\n",(0,o.jsx)(s.p,{children:"We have a lot of integration systems that run automated tests to guard against mistakes. The maintainers will also review your code and fix obvious issues for you. These systems' duty is to make you worry as little about the chores as possible. Your code contributions are more important than sticking to any procedures, although completing the checklist will surely save everyone's time."}),"\n",(0,o.jsx)(s.h3,{id:"semantic-commit-messages",children:"Semantic Commit Messages"}),"\n",(0,o.jsx)(s.p,{children:"See how a minor change to your commit message style can make you a better programmer."}),"\n",(0,o.jsxs)(s.p,{children:["Format: ",(0,o.jsx)(s.code,{children:"<type>(<scope>): <subject>"})]}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.code,{children:"<scope>"})," is optional. If your change is specific to one/two packages, consider adding the scope. Scopes should be brief but recognizable, e.g. ",(0,o.jsx)(s.code,{children:"content-docs"}),", ",(0,o.jsx)(s.code,{children:"theme-classic"}),", ",(0,o.jsx)(s.code,{children:"core"})]}),"\n",(0,o.jsx)(s.p,{children:"The various types of commits:"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"feat"}),": a new API or behavior ",(0,o.jsx)(s.strong,{children:"for the end user"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"fix"}),": a bug fix ",(0,o.jsx)(s.strong,{children:"for the end user"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"docs"}),": a change to the website or other Markdown documents in our repo."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"refactor"}),": a change to production code that leads to no behavior difference, e.g. splitting files, renaming internal variables, improving code style..."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"test"}),": adding missing tests, refactoring tests; no production code change."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"chore"}),": upgrading dependencies, releasing new versions... Chores that are ",(0,o.jsx)(s.strong,{children:"regularly done"})," for maintenance purposes."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"misc"}),": anything else that doesn't change production code, yet is not ",(0,o.jsx)(s.code,{children:"test"})," or ",(0,o.jsx)(s.code,{children:"chore"}),". e.g. updating GitHub actions workflow."]}),"\n"]}),"\n",(0,o.jsxs)(s.p,{children:["Do not get too stressed about PR titles, however. Your PR will be squash-merged and your commit to the ",(0,o.jsx)(s.code,{children:"main"})," branch will get the title of your PR, so commits within a branch don't need to be semantically named. The maintainers will help you get the PR title right, and we also have a PR label system that doesn't equate with the commit message types. Your code is more important than conventions!"]}),"\n",(0,o.jsx)(s.p,{children:"Example:"}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{children:"feat(core): allow overriding of webpack config\n^--^^----^ ^------------^\n| | |\n| | +-> Summary in present tense. Use lower case not title case!\n| |\n| +-> The package(s) that this change affected.\n|\n+-------> Type: see above for the list we use.\n"})}),"\n",(0,o.jsx)(s.h3,{id:"versioned-docs",children:"Versioned Docs"}),"\n",(0,o.jsx)(s.p,{children:"If you only want to make doc changes, you just need to be aware of versioned docs."}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"website/docs"}),' - The files here are responsible for the "next" version at ',(0,o.jsx)(s.a,{href:"https://docusaurus.io/docs/next/installation",children:"https://docusaurus.io/docs/next/installation"}),"."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"website/versioned_docs/version-X.Y.Z"})," - These are the docs for the X.Y.Z version at ",(0,o.jsx)(s.a,{href:"https://docusaurus.io/docs/X.Y.Z/installation",children:"https://docusaurus.io/docs/X.Y.Z/installation"}),"."]}),"\n"]}),"\n",(0,o.jsxs)(s.p,{children:["Do not edit the auto-generated files within ",(0,o.jsx)(s.code,{children:"versioned_docs/"})," or ",(0,o.jsx)(s.code,{children:"versioned_sidebars/"})," unless you are sure it is necessary. For example, information about new features should not be documented in versioned docs. Edits made to older versions will not be propagated to newer versions of the docs."]}),"\n",(0,o.jsx)(s.h3,{id:"test-plan",children:"Test Plan"}),"\n",(0,o.jsx)(s.p,{children:"A good test plan has the exact commands you ran and their output and provides screenshots or videos if the pull request changes UI. If you've changed APIs, update the documentation."}),"\n",(0,o.jsx)(s.p,{children:"Tests are integrated into our continuous integration system, so you don't always need to run local tests. However, for significant code changes, it saves both your and the maintainers' time if you can do exhaustive tests locally first to make sure your PR is in good shape. There are many types of tests:"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Build and typecheck."})," We use TypeScript in our codebase, which can make sure your code is consistent and catches some obvious mistakes early."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Unit tests."})," We use ",(0,o.jsx)(s.a,{href:"https://jestjs.io/",children:"Jest"})," for unit tests of API endpoints' behavior. You can run ",(0,o.jsx)(s.code,{children:"yarn test"})," in the root directory to run all tests, or ",(0,o.jsx)(s.code,{children:"yarn test path/to/your/file.test.ts"})," to run a specific test."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Dogfooding."})," Our website itself covers all kinds of potential configuration cases and we even have a dedicated ",(0,o.jsx)(s.a,{href:"https://docusaurus.io/tests",children:"tests area"}),". Don't be afraid to update our website's configuration in your PR\u2014it can help the maintainers preview the effects. We can decide if the website change should be kept when merging and deploying for production."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"E2E tests."})," You can simulate the distribution and installation of the code with your fresh changes. If you need help testing your changes locally, you can check out the doc on doing ",(0,o.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/blob/main/admin/local-third-party-project-testing.md",children:"local third-party testing"}),"."]}),"\n"]}),"\n",(0,o.jsx)(s.h3,{id:"licensing",children:"Licensing"}),"\n",(0,o.jsx)(s.p,{children:"By contributing to Docusaurus, you agree that your contributions will be licensed under its MIT license. Copy and paste this to the top of your new file(s):"}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-js",children:"/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n"})}),"\n",(0,o.jsxs)(s.p,{children:["This is also auto-fixable with the ",(0,o.jsx)(s.code,{children:"header/header"})," ESLint rule."]}),"\n",(0,o.jsx)(s.h3,{id:"contributor-license-agreement-cla",children:"Contributor License Agreement (CLA)"}),"\n",(0,o.jsxs)(s.p,{children:["In order to accept your pull request, we need you to submit a CLA. You only need to do this once, so if you've done this for another Facebook open source project, you're good to go. If you are submitting a pull request for the first time, the Facebook GitHub Bot will reply with a link to the CLA form. You may also ",(0,o.jsx)(s.a,{href:"https://code.facebook.com/cla",children:"complete your CLA here"}),"."]}),"\n",(0,o.jsx)(s.p,{children:"After you have signed the CLA, the CLA bot would automatically update the PR status. There's no need to open a new PR."}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.strong,{children:"CLAs are required for us to merge your pull request."})," While we value your effort and are willing to wait for you to come back and address the reviews in case you are unavailable after sending the pull request, pull requests that are ready to merge but have CLA missing and no response from the author ",(0,o.jsx)(s.strong,{children:"will be closed within two weeks of opening"}),". If you have further questions about the CLA, please stay in touch with us."]}),"\n",(0,o.jsx)(s.p,{children:"If it happens that you were unavailable and your PR gets closed, feel free to reopen once it's ready! We are still happy to review it, help you complete it, and eventually merge it."}),"\n",(0,o.jsx)(s.h3,{id:"breaking-changes",children:"Breaking Changes"}),"\n",(0,o.jsx)(s.p,{children:"When adding a new breaking change, follow this template in your pull request:"}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-md",children:"### New breaking change here\n\n- **Who does this affect**:\n- **How to migrate**:\n- **Why make this breaking change**:\n- **Severity (number of people affected x effort)**:\n"})}),"\n",(0,o.jsx)(s.h3,{id:"what-happens-next",children:"What Happens Next?"}),"\n",(0,o.jsx)(s.p,{children:"The core Docusaurus team will be monitoring pull requests. Do help us by keeping pull requests consistent by following the guidelines above."})]})}function a(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(r,{...e})}):r(e)}let l={title:"Contributing",hide_title:!0,sidebar_label:"Contributing"},c=void 0,u={},d=[{value:"Code of Conduct",id:"code-of-conduct",level:2},{value:"Get Involved",id:"get-involved",level:2},{value:"Join our Discord Channel",id:"join-our-discord-channel",level:3},{value:"Triaging Issues and Pull Requests",id:"triaging-issues-and-pull-requests",level:3},{value:"Our Development Process",id:"our-development-process",level:2},{value:"Branch Organization",id:"branch-organization",level:3},{value:"Issues",id:"issues",level:2},{value:"Bugs",id:"bugs",level:3},{value:"Security Bugs",id:"security-bugs",level:3},{value:"Feature requests",id:"feature-requests",level:3},{value:"Proposals",id:"proposals",level:3},{value:"Claiming issues",id:"claiming-issues",level:3},{value:"Development",id:"development",level:2},{value:"Online one-click setup for contributing",id:"online-one-click-setup-for-contributing",level:3},{value:"Installation",id:"installation",level:3},{value:"Code Conventions",id:"code-conventions",level:3},{value:"Pull Requests",id:"pull-requests",level:2},{value:"Semantic Commit Messages",id:"semantic-commit-messages",level:3},{value:"Versioned Docs",id:"versioned-docs",level:3},{value:"Test Plan",id:"test-plan",level:3},{value:"Licensing",id:"licensing",level:3},{value:"Contributor License Agreement (CLA)",id:"contributor-license-agreement-cla",level:3},{value:"Breaking Changes",id:"breaking-changes",level:3},{value:"What Happens Next?",id:"what-happens-next",level:3}];function h(e){return(0,o.jsx)(a,{})}function p(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},43023:(e,s,n)=>{n.d(s,{R:()=>r,x:()=>a});var t=n(63696);let o={},i=t.createContext(o);function r(e){let s=t.useContext(i);return t.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(o):e.components||o:r(e.components),t.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/201d0633.0fb8a395.js b/assets/js/201d0633.0fb8a395.js deleted file mode 100644 index 75e489a92b..0000000000 --- a/assets/js/201d0633.0fb8a395.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[41074],{15995:(e,n,t)=>{t.d(n,{A:()=>l});var r=t(62540);t(63696);var s=t(11750);function l({children:e,hidden:n,className:t}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>y});var r=t(62540),s=t(63696),l=t(11750),i=t(7846),o=t(49519),c=t(96439),d=t(19739),a=t(66904),h=t(79244);function u(e){var n,t;return null!==(t=null===(n=s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function j({value:e,tabValues:n}){return n.some(n=>n.value===e)}var p=t(10709);function x(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function g(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function b({className:e,block:n,selectedValue:t,selectValue:s,tabValues:o}){let c=[],{blockElementScrollPositionUntilNextRender:d}=(0,i.a_)(),a=e=>{let n=e.currentTarget,r=o[c.indexOf(n)].value;r!==t&&(d(n),s(r))},h=e=>{var n,t;let r=null;switch(e.key){case"Enter":a(e);break;case"ArrowRight":{let t=c.indexOf(e.currentTarget)+1;r=null!==(n=c[t])&&void 0!==n?n:c[0];break}case"ArrowLeft":{let n=c.indexOf(e.currentTarget)-1;r=null!==(t=c[n])&&void 0!==t?t:c[c.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":n},e),children:o.map(({value:e,label:n,attributes:s})=>(0,r.jsx)("li",g(x({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>c.push(e),onKeyDown:h,onClick:a},s),{className:(0,l.A)("tabs__item","tabItem_AQgk",null==s?void 0:s.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function f({lazy:e,children:n,selectedValue:t}){let i=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=i.find(e=>e.props.value===t);return e?(0,s.cloneElement)(e,{className:(0,l.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:i.map((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function m(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,l=function(e){let{values:n,children:t}=e;return(0,s.useMemo)(()=>{let e=null!=n?n:u(t).map(({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r}));return!function(e){let n=(0,a.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[i,p]=(0,s.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!j({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:l})),[x,g]=function({queryString:e=!1,groupId:n}){let t=(0,o.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,d.aZ)(r),(0,s.useCallback)(e=>{var n,s;if(!r)return;let l=new URLSearchParams(t.location.search);l.set(r,e),t.replace((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},t.location),s=s={search:l.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(s)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(s)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(s,e))}),n))},[r,t])]}({queryString:t,groupId:r}),[b,f]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[t,r]=(0,h.Dv)(n);return[t,(0,s.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),m=(()=>{let e=null!=x?x:b;return j({value:e,tabValues:l})?e:null})();return(0,c.A)(()=>{m&&p(m)},[m]),{selectedValue:i,selectValue:(0,s.useCallback)(e=>{if(!j({value:e,tabValues:l}))throw Error(`Can't select invalid tab value=${e}`);p(e),g(e),f(e)},[g,f,l]),tabValues:l}}(e);return(0,r.jsxs)("div",{className:(0,l.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(b,x({},n,e)),(0,r.jsx)(f,x({},n,e))]})}function y(e){let n=(0,p.A)();return(0,r.jsx)(m,g(x({},e),{children:u(e.children)}),String(n))}},40576:(e,n,t)=>{t.d(n,{A:()=>l});var r=t(62540);t(63696);var s=t(10709);function l({children:e,fallback:n}){return(0,s.A)()?(0,r.jsx)(r.Fragment,{children:null==e?void 0:e()}):null!=n?n:null}},59273:(e,n,t)=>{t.d(n,{A:()=>c});var r=t(62540),s=t(63696),l=t(52711),i=t(49519);let o=s.forwardRef(function({name:e,children:n},t){let o=function(e){let n=e;for(;(0,s.isValidElement)(n);)[n]=s.Children.toArray(n.props.children);if("string"!=typeof n)throw Error(`Could not extract APITable row name from JSX tree: -${JSON.stringify(e,null,2)}`);return n}(n),c=e?`${e}-${o}`:o,d=`#${c}`,a=(0,i.W6)();return(0,l.A)().collectAnchor(c),(0,r.jsx)("tr",{id:c,tabIndex:0,ref:a.location.hash===d?t:void 0,onClick:e=>{"A"!==e.target.tagName.toUpperCase()&&a.push(d)},onKeyDown:e=>{"Enter"===e.key&&a.push(d)},children:n.props.children})});function c({children:e,name:n}){if("table"!==e.type)throw Error("Bad usage of APITable component.\nIt is probably that your Markdown table is malformed.\nMake sure to double-check you have the appropriate number of columns for each table row.");let[t,l]=s.Children.toArray(e.props.children),i=(0,s.useRef)(null);(0,s.useEffect)(()=>{var e;null===(e=i.current)||void 0===e||e.focus()},[i]);let c=s.Children.map(l.props.children,e=>(0,r.jsx)(o,{name:n,ref:i,children:e}));return(0,r.jsxs)("table",{className:"apiTable_e8hp",children:[t,(0,r.jsx)("tbody",{children:c})]})}},59433:(e,n,t)=>{t.d(n,{A:()=>h});var r=t(62540);t(63696);var s=t(36372),l=t(69615),i=t(81912),o=t(27446),c=t(15995),d=t(55887);let a=void 0;function h({code:e,pluginName:n,presetOptionName:t}){let h=(0,l.ir)(a).path;return(0,r.jsxs)(o.A,{groupId:"api-config-ex",children:[(0,r.jsxs)(c.A,{value:"preset",label:(0,i.T)({message:"Preset options"}),children:[(0,r.jsx)("p",{children:(0,r.jsx)(i.A,{id:"apiDocs.configTabs.presetOptions.description",values:{presetLink:(0,r.jsx)(s.A,{to:`${h}/using-plugins#docusauruspreset-classic`,children:(0,r.jsx)(i.A,{children:"preset options"})})},children:"If you use a preset, configure this plugin through the {presetLink}:"})}),(0,r.jsx)(d.A,{language:"js",title:"docusaurus.config.js",children:`module.exports = { - presets: [ - [ - '@docusaurus/preset-classic', - { - // highlight-start - ${t}: ${e.replace(/\n/g,"\n ")}, - // highlight-end - }, - ], - ], -};`})]}),(0,r.jsxs)(c.A,{value:"plugin",label:(0,i.T)({message:"Plugin options"}),children:[(0,r.jsx)("p",{children:(0,r.jsx)(i.A,{children:"If you are using a standalone plugin, provide options directly to the plugin:"})}),(0,r.jsx)(d.A,{language:"js",title:"docusaurus.config.js",children:`module.exports = { - plugins: [ - [ - '${n}', - // highlight-start - ${e.replace(/\n/g,"\n ")}, - // highlight-end - ], - ], -};`})]})]})}},55887:(e,n,t)=>{t.d(n,{A:()=>eo});var r,s,l,i={};t.r(i),t.d(i,{ButtonExample:()=>E});var o=t(62540),c=t(63696),d=t(11750),a=t(10709),h=t(55152),u=t(81912),j=t(99468),p=t(40576),x=t(1495),g=t(66659),b=t(25436);function f(){let{prism:e}=(0,b.p)(),{colorMode:n}=(0,g.G)(),t=e.theme,r=e.darkTheme||t;return"dark"===n?r:t}var m=t(43758);function y(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function v({children:e}){return(0,o.jsx)("div",{className:(0,d.A)("playgroundHeader_Tvsk"),children:e})}function O(){return(0,o.jsx)("div",{children:"Loading..."})}function w(){return(0,o.jsx)(p.A,{fallback:(0,o.jsx)(O,{}),children:()=>(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(m.A,{fallback:e=>(0,o.jsx)(x.MN,y({},e)),children:(0,o.jsx)(h.pA,{})}),(0,o.jsx)(h.p1,{})]})})}function P(){return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(v,{children:(0,o.jsx)(u.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,o.jsx)("div",{className:"playgroundPreview_mApW",children:(0,o.jsx)(w,{})})]})}function k(){let e=(0,a.A)();return(0,o.jsx)(h.w,{className:"playgroundEditor_TySg"},String(e))}function T(){return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(v,{children:(0,o.jsx)(u.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,o.jsx)(k,{})]})}let A=e=>`${e};`;function B(e){var n,t,r,s,{children:l,transformCode:i}=e,c=function(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},l=Object.keys(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)t=l[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,["children","transformCode"]);let{siteConfig:{themeConfig:d}}=(0,j.A)(),{liveCodeBlock:{playgroundPosition:a}}=d,u=f(),p=null!==(s=null===(r=c.metastring)||void 0===r?void 0:r.includes("noInline"))&&void 0!==s&&s;return(0,o.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,o.jsx)(h.Q,(n=y({code:null==l?void 0:l.replace(/\n$/,""),noInline:p,transformCode:null!=i?i:A,theme:u},c),t=t={children:"top"===a?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(P,{}),(0,o.jsx)(T,{})]}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(T,{}),(0,o.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))})}function S(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function E(e){var n,t;return(0,o.jsx)("button",(n=S({type:"button"},e),t=t={style:S({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let D=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({React:c},c,i);var C=t(12653),L=t(19934),N=t.n(L);let F=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),R=RegExp("\\{(?<range>[\\d,-]+)\\}"),I={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},M=(r=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},I),s=s={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(s)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(s)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(s,e))}),r),_=Object.keys(I);function U(e,n){let t=e.map(e=>{let{start:t,end:r}=M[e];return`(?:${t}\\s*(${n.flatMap(e=>{var n,t;return[e.line,null===(n=e.block)||void 0===n?void 0:n.start,null===(t=e.block)||void 0===t?void 0:t.end].filter(Boolean)}).join("|")})\\s*${r})`}).join("|");return RegExp(`^\\s*(?:${t})\\s*$`)}function $(e){var n,t,{as:r}=e,s=function(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},l=Object.keys(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)t=l[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,["as"]);let l=function(e){let n={color:"--prism-color",backgroundColor:"--prism-background-color"},t={};return Object.entries(e.plain).forEach(([e,r])=>{let s=n[e];s&&"string"==typeof r&&(t[s]=r)}),t}(f());return(0,o.jsx)(r,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},s),t=t={style:l,className:(0,d.A)(s.className,"codeBlockContainer_jDV4",C.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let W={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function X({children:e,className:n}){return(0,o.jsx)($,{as:"pre",tabIndex:0,className:(0,d.A)(W.codeBlockStandalone,"thin-scrollbar",n),children:(0,o.jsx)("code",{className:W.codeBlockLines,children:e})})}var q=t(2550);let H={attributes:!0,characterData:!0,childList:!0,subtree:!0};var J=t(27663);let V={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function z(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function G({line:e,classNames:n,showLineNumbers:t,getLineProps:r,getTokenProps:s}){var l,i;1===e.length&&"\n"===e[0].content&&(e[0].content="");let c=r({line:e,className:(0,d.A)(n,t&&V.codeLine)}),a=e.map((e,n)=>(0,o.jsx)("span",z({},s({token:e})),n));return(0,o.jsxs)("span",(l=z({},c),i=i={children:[t?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("span",{className:V.codeLineNumber}),(0,o.jsx)("span",{className:V.codeLineContent,children:a})]}):a,(0,o.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(i)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(i)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(i,e))}),l))}var Y=t(936);function K(e){var n,t;return(0,o.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,o.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function Q(e){var n,t;return(0,o.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,o.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let Z={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:n}){let[t,r]=(0,c.useState)(!1),s=(0,c.useRef)(void 0),l=(0,c.useCallback)(()=>{(0,Y.A)(e),r(!0),s.current=window.setTimeout(()=>{r(!1)},1e3)},[e]);return(0,c.useEffect)(()=>()=>window.clearTimeout(s.current),[]),(0,o.jsx)("button",{type:"button","aria-label":t?(0,u.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,u.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,u.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,d.A)("clean-btn",n,Z.copyButton,t&&Z.copyButtonCopied),onClick:l,children:(0,o.jsxs)("span",{className:Z.copyButtonIcons,"aria-hidden":"true",children:[(0,o.jsx)(K,{className:Z.copyButtonIcon}),(0,o.jsx)(Q,{className:Z.copyButtonSuccessIcon})]})})}function en(e){var n,t;return(0,o.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,o.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let et={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function er({className:e,onClick:n,isEnabled:t}){let r=(0,u.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,o.jsx)("button",{type:"button",onClick:n,className:(0,d.A)("clean-btn",e,t&&et.wordWrapButtonEnabled),"aria-label":r,title:r,children:(0,o.jsx)(en,{className:et.wordWrapButtonIcon,"aria-hidden":"true"})})}function es({children:e,className:n="",metastring:t,title:r,showLineNumbers:s,language:l}){var i,a,h,u;let{prism:{defaultLanguage:j,magicComments:p}}=(0,b.p)(),x=null==(a=null!==(i=null!=l?l:function(e){let n=e.split(" ").find(e=>e.startsWith("language-"));return null==n?void 0:n.replace(/language-/,"")}(n))&&void 0!==i?i:j)?void 0:a.toLowerCase(),g=f(),m=function(){let[e,n]=(0,c.useState)(!1),[t,r]=(0,c.useState)(!1),s=(0,c.useRef)(null),l=(0,c.useCallback)(()=>{let t=s.current.querySelector("code");e?t.removeAttribute("style"):(t.style.whiteSpace="pre-wrap",t.style.overflowWrap="anywhere"),n(e=>!e)},[s,e]),i=(0,c.useCallback)(()=>{let{scrollWidth:e,clientWidth:n}=s.current;r(e>n||s.current.querySelector("code").hasAttribute("style"))},[s]);return!function(e,n){let[t,r]=(0,c.useState)(),s=(0,c.useCallback)(()=>{var n;r(null===(n=e.current)||void 0===n?void 0:n.closest("[role=tabpanel][hidden]"))},[e,r]);(0,c.useEffect)(()=>{s()},[s]),function(e,n,t=H){let r=(0,q._q)(n),s=(0,q.Be)(t);(0,c.useEffect)(()=>{let n=new MutationObserver(r);return e&&n.observe(e,s),()=>n.disconnect()},[e,r,s])}(t,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(n(),s())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(s,i),(0,c.useEffect)(()=>{i()},[e,i]),(0,c.useEffect)(()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)}),[i]),{codeBlockRef:s,isEnabled:e,isCodeScrollable:t,toggle:l}}(),y=(null!==(u=null==t?void 0:null===(h=t.match(F))||void 0===h?void 0:h.groups.title)&&void 0!==u?u:"")||r,{lineClassNames:v,code:O}=function(e,n){let t=e.replace(/\n$/,""),{language:r,magicComments:s,metastring:l}=n;if(l&&R.test(l)){let e=l.match(R).groups.range;if(0===s.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${l}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let n=s[0].className;return{lineClassNames:Object.fromEntries(N()(e).filter(e=>e>0).map(e=>[e-1,[n]])),code:t}}if(void 0===r)return{lineClassNames:{},code:t};let i=function(e,n){switch(e){case"js":case"javascript":case"ts":case"typescript":return U(["js","jsBlock"],n);case"jsx":case"tsx":return U(["js","jsBlock","jsx"],n);case"html":return U(["js","jsBlock","html"],n);case"python":case"py":case"bash":return U(["bash"],n);case"markdown":case"md":return U(["html","jsx","bash"],n);case"tex":case"latex":case"matlab":return U(["tex"],n);case"lua":case"haskell":case"sql":return U(["lua"],n);case"wasm":return U(["wasm"],n);case"vb":case"vba":case"visual-basic":return U(["vb","rem"],n);case"vbnet":return U(["vbnet","rem"],n);case"batch":return U(["rem"],n);case"basic":return U(["rem","f90"],n);case"fsharp":return U(["js","ml"],n);case"ocaml":case"sml":return U(["ml"],n);case"fortran":return U(["f90"],n);case"cobol":return U(["cobol"],n);default:return U(_,n)}}(r,s),o=t.split("\n"),c=Object.fromEntries(s.map(e=>[e.className,{start:0,range:""}])),d=Object.fromEntries(s.filter(e=>e.line).map(({className:e,line:n})=>[n,e])),a=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:n})=>[n.start,e])),h=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:n})=>[n.end,e]));for(let e=0;e<o.length;){let n=o[e].match(i);if(!n){e+=1;continue}let t=n.slice(1).find(e=>void 0!==e);d[t]?c[d[t]].range+=`${e},`:a[t]?c[a[t]].start=e:h[t]&&(c[h[t]].range+=`${c[h[t]].start}-${e-1},`),o.splice(e,1)}t=o.join("\n");let u={};return Object.entries(c).forEach(([e,{range:n}])=>{N()(n).forEach(n=>{var t;null!==(t=u[n])&&void 0!==t||(u[n]=[]),u[n].push(e)})}),{lineClassNames:u,code:t}}(e,{metastring:t,language:x,magicComments:p}),w=null!=s?s:!!(null==t?void 0:t.includes("showLineNumbers"));return(0,o.jsxs)($,{as:"div",className:(0,d.A)(n,x&&!n.includes(`language-${x}`)&&`language-${x}`),children:[y&&(0,o.jsx)("div",{className:W.codeBlockTitle,children:y}),(0,o.jsxs)("div",{className:W.codeBlockContent,children:[(0,o.jsx)(J.f4,{theme:g,code:O,language:null!=x?x:"text",children:({className:e,style:n,tokens:t,getLineProps:r,getTokenProps:s})=>(0,o.jsx)("pre",{tabIndex:0,ref:m.codeBlockRef,className:(0,d.A)(e,W.codeBlock,"thin-scrollbar"),style:n,children:(0,o.jsx)("code",{className:(0,d.A)(W.codeBlockLines,w&&W.codeBlockLinesWithNumbering),children:t.map((e,n)=>(0,o.jsx)(G,{line:e,getLineProps:r,getTokenProps:s,classNames:v[n],showLineNumbers:w},n))})})}),(0,o.jsxs)("div",{className:W.buttonGroup,children:[(m.isEnabled||m.isCodeScrollable)&&(0,o.jsx)(er,{className:W.codeButton,onClick:()=>m.toggle(),isEnabled:m.isEnabled}),(0,o.jsx)(ee,{className:W.codeButton,code:O})]})]})]})}function el(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}let ei=(l=function(e){var n,t,{children:r}=e,s=function(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},l=Object.keys(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)t=l[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,["children"]);let l=(0,a.A)(),i=c.Children.toArray(r).some(e=>(0,c.isValidElement)(e))?r:Array.isArray(r)?r.join(""):r,d="string"==typeof i?es:X;return(0,o.jsx)(d,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},s),t=t={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n),String(l))},function(e){return e.live?(0,o.jsx)(B,el({scope:D},e)):(0,o.jsx)(l,el({},e))});function eo(e){return(0,o.jsx)(ei,function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},e))}},24583:(e,n,t)=>{t.d(n,{Ay:()=>o,RM:()=>l});var r=t(62540),s=t(43023);let l=[{value:"Tags File",id:"tags-file",level:2},{value:"Types",id:"tags-file-types",level:3},{value:"Example",id:"tags-file-example",level:3}];function i(e){let n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"tags-file",children:"Tags File"}),"\n",(0,r.jsxs)(n.p,{children:["Use the ",(0,r.jsxs)(n.a,{href:"#tags",children:[(0,r.jsx)(n.code,{children:"tags"})," plugin option"]})," to configure the path of a YAML tags file."]}),"\n",(0,r.jsxs)(n.p,{children:["By convention, the plugin will look for a ",(0,r.jsx)(n.code,{children:"tags.yml"})," file at the root of your content folder(s)."]}),"\n",(0,r.jsxs)(n.p,{children:["This file can contain a list of predefined tags. You can reference these tags by their keys in Markdown files thanks to the ",(0,r.jsxs)(n.a,{href:"#markdown-front-matter",children:[(0,r.jsx)(n.code,{children:"tags"})," front matter"]}),"."]}),"\n",(0,r.jsx)(n.admonition,{title:"Keeping tags consistent",type:"tip",children:(0,r.jsxs)(n.p,{children:["Using a tags file, you can ensure that your tags usage is consistent across your plugin content set. Use the ",(0,r.jsx)(n.a,{href:"#onInlineTags",children:(0,r.jsx)(n.code,{children:"onInlineTags: 'throw'"})})," plugin option to enforce this consistency and prevent usage of inline tags declared on the fly."]})}),"\n",(0,r.jsx)(n.h3,{id:"tags-file-types",children:"Types"}),"\n",(0,r.jsx)(n.p,{children:"The YAML content of the provided tags file should respect the following shape:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:"type Tag = {\n label?: string; // Tag display label\n permalink?: string; // Tag URL pathname segment\n description?: string; // Tag description displayed in the tag page\n};\n\ntype TagsFileInput = Record<string, Partial<Tag> | null>;\n"})}),"\n",(0,r.jsx)(n.h3,{id:"tags-file-example",children:"Example"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yml",metastring:'title="tags.yml"',children:"releases:\n label: 'Product releases'\n permalink: '/product-releases'\n description: 'Content related to product releases.'\n\n# A partial tag definition is also valid\nannouncements:\n label: 'Announcements'\n\n# An empty tag definition is also valid\n# Other attributes will be inferred from the key\nemptyTag:\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="content.md"',children:"---\ntags: [releases, announcements, emptyTag]\n---\n\n# Title\n\nContent\n"})})]})}function o(e={}){let{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(i,{...e})}):i(e)}},26713:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>j,contentTitle:()=>u,default:()=>g,frontMatter:()=>h,metadata:()=>r,toc:()=>p});let r=JSON.parse('{"id":"api/plugins/plugin-content-blog","title":"\u{1F4E6} plugin-content-blog","description":"Provides the Blog feature and is the default blog plugin for Docusaurus.","source":"@site/docs/api/plugins/plugin-content-blog.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-content-blog","permalink":"/docs/api/plugins/@docusaurus/plugin-content-blog","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-content-blog.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":2,"frontMatter":{"sidebar_position":2,"slug":"/api/plugins/@docusaurus/plugin-content-blog"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-content-docs","permalink":"/docs/api/plugins/@docusaurus/plugin-content-docs"},"next":{"title":"\u{1F4E6} plugin-content-pages","permalink":"/docs/api/plugins/@docusaurus/plugin-content-pages"}}');var s=t(62540),l=t(43023),i=t(27446),o=t(15995),c=t(59273),d=t(59433),a=t(24583);let h={sidebar_position:2,slug:"/api/plugins/@docusaurus/plugin-content-blog"},u="\u{1F4E6} plugin-content-blog",j={},p=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Types",id:"types",level:3},{value:"<code>EditUrlFn</code>",id:"EditUrlFn",level:4},{value:"<code>ReadingTimeFn</code>",id:"ReadingTimeFn",level:4},{value:"<code>FeedType</code>",id:"FeedType",level:4},{value:"<code>FeedXSLTOptions</code>",id:"FeedXSLTOptions",level:4},{value:"<code>CreateFeedItemsFn</code>",id:"CreateFeedItemsFn",level:4},{value:"<code>ProcessBlogPostsFn</code>",id:"ProcessBlogPostsFn",level:4},{value:"Example configuration",id:"ex-config",level:3},{value:"Markdown front matter",id:"markdown-front-matter",level:2},...a.RM,{value:"Authors File",id:"authors-file",level:2},{value:"Types",id:"authors-file-types",level:3},{value:"Example",id:"authors-file-example",level:3},{value:"i18n",id:"i18n",level:2},{value:"Translation files location",id:"translation-files-location",level:3},{value:"Example file-system structure",id:"example-file-system-structure",level:3}];function x(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"-plugin-content-blog",children:"\u{1F4E6} plugin-content-blog"})}),"\n","\n",(0,s.jsxs)(n.p,{children:["Provides the ",(0,s.jsx)(n.a,{href:"/docs/blog",children:"Blog"})," feature and is the default blog plugin for Docusaurus."]}),"\n",(0,s.jsx)(n.admonition,{title:"some features production only",type:"warning",children:(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.a,{href:"/docs/blog#feed",children:"feed feature"})," works by extracting the build output, and is ",(0,s.jsx)(n.strong,{children:"only active in production"}),"."]})}),"\n",(0,s.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,s.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,s.jsx)(o.A,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm install --save @docusaurus/plugin-content-blog\n"})})}),(0,s.jsx)(o.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn add @docusaurus/plugin-content-blog\n"})})}),(0,s.jsx)(o.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm add @docusaurus/plugin-content-blog\n"})})})]}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsxs)(n.p,{children:["If you use the preset ",(0,s.jsx)(n.code,{children:"@docusaurus/preset-classic"}),", you don't need to install this plugin as a dependency."]}),(0,s.jsxs)(n.p,{children:["You can configure this plugin through the ",(0,s.jsx)(n.a,{href:"/docs/using-plugins#docusauruspreset-classic",children:"preset options"}),"."]})]}),"\n",(0,s.jsx)(n.h2,{id:"configuration",children:"Configuration"}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(c.A,{children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"path"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'blog'"})}),(0,s.jsx)(n.td,{children:"Path to the blog content directory on the file system, relative to site dir."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"editUrl"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:["string | ",(0,s.jsx)(n.a,{href:"#EditUrlFn",children:"EditUrlFn"})]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Base URL to edit your site. The final URL is computed by ",(0,s.jsx)(n.code,{children:"editUrl + relativePostPath"}),". Using a function allows more nuanced control for each file. Omitting this variable entirely will disable edit links."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"editLocalizedFiles"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["The edit URL will target the localized file, instead of the original unlocalized file. Ignored when ",(0,s.jsx)(n.code,{children:"editUrl"})," is a function."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogTitle"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'Blog'"})}),(0,s.jsx)(n.td,{children:"Blog page title for better SEO."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogDescription"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'Blog'"})}),(0,s.jsx)(n.td,{children:"Blog page meta description for better SEO."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogSidebarCount"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"number | 'ALL'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"5"})}),(0,s.jsxs)(n.td,{children:["Number of blog post elements to show in the blog sidebar. ",(0,s.jsx)(n.code,{children:"'ALL'"})," to show all blog posts; ",(0,s.jsx)(n.code,{children:"0"})," to disable."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogSidebarTitle"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'Recent posts'"})}),(0,s.jsx)(n.td,{children:"Title of the blog sidebar."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"routeBasePath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'blog'"})}),(0,s.jsxs)(n.td,{children:["URL route for the blog section of your site. ",(0,s.jsx)(n.strong,{children:"DO NOT"})," include a trailing slash. Use ",(0,s.jsx)(n.code,{children:"/"})," to put the blog at root path."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"tagsBasePath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'tags'"})}),(0,s.jsxs)(n.td,{children:["URL route for the tags section of your blog. Will be appended to ",(0,s.jsx)(n.code,{children:"routeBasePath"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"pageBasePath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'page'"})}),(0,s.jsxs)(n.td,{children:["URL route for the pages section of your blog. Will be appended to ",(0,s.jsx)(n.code,{children:"routeBasePath"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"archiveBasePath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"string | null"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'archive'"})}),(0,s.jsxs)(n.td,{children:["URL route for the archive section of your blog. Will be appended to ",(0,s.jsx)(n.code,{children:"routeBasePath"}),". ",(0,s.jsx)(n.strong,{children:"DO NOT"})," include a trailing slash. Use ",(0,s.jsx)(n.code,{children:"null"})," to disable generation of archive."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"authorsBasePath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'authors'"})}),(0,s.jsxs)(n.td,{children:["URL route for the authors pages of your blog. Will be appended to ",(0,s.jsx)(n.code,{children:"path"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"include"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"['**/*.{md,mdx}']"})}),(0,s.jsx)(n.td,{children:"Array of glob patterns matching Markdown files to be built, relative to the content path."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"exclude"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"See example configuration"})}),(0,s.jsxs)(n.td,{children:["Array of glob patterns matching Markdown files to be excluded. Serves as refinement based on the ",(0,s.jsx)(n.code,{children:"include"})," option."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"postsPerPage"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"number | 'ALL'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"10"})}),(0,s.jsxs)(n.td,{children:["Number of posts to show per page in the listing page. Use ",(0,s.jsx)(n.code,{children:"'ALL'"})," to display all posts on one listing page."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogListComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/BlogListPage'"})}),(0,s.jsx)(n.td,{children:"Root component of the blog listing page."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogPostComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/BlogPostPage'"})}),(0,s.jsx)(n.td,{children:"Root component of each blog post page."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogTagsListComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/BlogTagsListPage'"})}),(0,s.jsx)(n.td,{children:"Root component of the tags list page."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogTagsPostsComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/BlogTagsPostsPage'"})}),(0,s.jsx)(n.td,{children:'Root component of the "posts containing tag" page.'})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogArchiveComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/BlogArchivePage'"})}),(0,s.jsx)(n.td,{children:"Root component of the blog archive page."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogAuthorsPostsComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/Blog/Pages/BlogAuthorsPostsPage'"})}),(0,s.jsx)(n.td,{children:"Root component of the blog author page."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogAuthorsListComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/Blog/Pages/BlogAuthorsListPage'"})}),(0,s.jsx)(n.td,{children:"Root component of the blog authors page index."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"remarkPlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Remark plugins passed to MDX."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"rehypePlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Rehype plugins passed to MDX."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"rehypePlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Recma plugins passed to MDX."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"beforeDefaultRemarkPlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Custom Remark plugins passed to MDX before the default Docusaurus Remark plugins."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"beforeDefaultRehypePlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Custom Rehype plugins passed to MDX before the default Docusaurus Rehype plugins."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"truncateMarker"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"RegExp"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"/<!--\\s*truncate\\s*-->/"})," | ",(0,s.jsx)(n.code,{children:"\\{\\/\\*\\s*truncate\\s*\\*\\/\\}/"})]}),(0,s.jsx)(n.td,{children:"Truncate marker marking where the summary ends."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"showReadingTime"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"Show estimated reading time for the blog post."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"readingTime"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"ReadingTimeFn"})}),(0,s.jsx)(n.td,{children:"The default reading time"}),(0,s.jsx)(n.td,{children:"A callback to customize the reading time number displayed."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"authorsMapPath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'authors.yml'"})}),(0,s.jsx)(n.td,{children:"Path to the authors map file, relative to the blog content directory."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"feedOptions"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"See below"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{type: ['rss', 'atom']}"})}),(0,s.jsx)(n.td,{children:"Blog feed."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"feedOptions.type"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:[(0,s.jsx)(n.a,{href:"#FeedType",children:"FeedType"})," | ",(0,s.jsx)(n.a,{href:"#FeedType",children:"FeedType"}),"[] | 'all' | null"]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsxs)(n.td,{children:["Type of feed to be generated. Use ",(0,s.jsx)(n.code,{children:"null"})," to disable generation."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"feedOptions.createFeedItems"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:[(0,s.jsx)(n.a,{href:"#CreateFeedItemsFn",children:"CreateFeedItemsFn"})," | undefined"]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"An optional function which can be used to transform and / or filter the items in the feed."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"feedOptions.limit"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"number | null | false"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"20"})}),(0,s.jsxs)(n.td,{children:["Limits the feed to the specified number of posts, ",(0,s.jsx)(n.code,{children:"false"})," or ",(0,s.jsx)(n.code,{children:"null"})," for all entries. Defaults to ",(0,s.jsx)(n.code,{children:"20"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"feedOptions.title"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"siteConfig.title"})}),(0,s.jsx)(n.td,{children:"Title of the feed."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"feedOptions.description"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"`${siteConfig.title} Blog`"})}),(0,s.jsx)(n.td,{children:"Description of the feed."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"feedOptions.copyright"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Copyright message."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"feedOptions.xslt"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:["boolean | ",(0,s.jsx)(n.a,{href:"#FeedXSLTOptions",children:"FeedXSLTOptions"})]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Copyright message."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"feedOptions.language"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"string"})," (See ",(0,s.jsx)(n.a,{href:"http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes",children:"documentation"})," for possible values)"]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Language metadata of the feed."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sortPosts"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'descending' | 'ascending' "})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'descending'"})}),(0,s.jsx)(n.td,{children:"Governs the direction of blog post sorting."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"processBlogPosts"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:(0,s.jsx)(n.a,{href:"#ProcessBlogPostsFn",children:"ProcessBlogPostsFn"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"An optional function which can be used to transform blog posts (filter, modify, delete, etc...)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"showLastUpdateAuthor"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Whether to display the author who last updated the blog post."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"showLastUpdateTime"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Whether to display the last date the blog post was updated. This requires access to git history during the build, so will not work correctly with shallow clones (a common default for CI systems). With GitHub ",(0,s.jsx)(n.code,{children:"actions/checkout"}),", use",(0,s.jsx)(n.code,{children:"fetch-depth: 0"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"tags"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string | false | null | undefined"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"tags.yml"})}),(0,s.jsx)(n.td,{children:"Path to the YAML tags file listing pre-defined tags. Relative to the blog content directory."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"onInlineTags"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'ignore' | 'log' | 'warn' | 'throw'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"warn"})}),(0,s.jsxs)(n.td,{children:["The plugin behavior when blog posts contain inline tags (not appearing in the list of pre-defined tags, usually ",(0,s.jsx)(n.code,{children:"tags.yml"}),")."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"onUntruncatedBlogPosts"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'ignore' | 'log' | 'warn' | 'throw'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"warn"})}),(0,s.jsx)(n.td,{children:"The plugin behavior when blog posts do not contain a truncate marker."})]})]})]})}),"\n",(0,s.jsx)(n.h3,{id:"types",children:"Types"}),"\n",(0,s.jsx)(n.h4,{id:"EditUrlFn",children:(0,s.jsx)(n.code,{children:"EditUrlFn"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type EditUrlFunction = (params: {\n blogDirPath: string;\n blogPath: string;\n permalink: string;\n locale: string;\n}) => string | undefined;\n"})}),"\n",(0,s.jsx)(n.h4,{id:"ReadingTimeFn",children:(0,s.jsx)(n.code,{children:"ReadingTimeFn"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type ReadingTimeOptions = {\n wordsPerMinute: number;\n wordBound: (char: string) => boolean;\n};\n\ntype ReadingTimeCalculator = (params: {\n content: string;\n frontMatter?: BlogPostFrontMatter & Record<string, unknown>;\n options?: ReadingTimeOptions;\n}) => number;\n\ntype ReadingTimeFn = (params: {\n content: string;\n frontMatter: BlogPostFrontMatter & Record<string, unknown>;\n defaultReadingTime: ReadingTimeCalculator;\n}) => number | undefined;\n"})}),"\n",(0,s.jsx)(n.h4,{id:"FeedType",children:(0,s.jsx)(n.code,{children:"FeedType"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type FeedType = 'rss' | 'atom' | 'json';\n"})}),"\n",(0,s.jsx)(n.h4,{id:"FeedXSLTOptions",children:(0,s.jsx)(n.code,{children:"FeedXSLTOptions"})}),"\n",(0,s.jsxs)(n.p,{children:["Permits to style the blog XML feeds so that browsers render them nicely with ",(0,s.jsx)(n.a,{href:"https://developer.mozilla.org/en-US/docs/Web/XSLT",children:"XSLT"}),"."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Use ",(0,s.jsx)(n.code,{children:"true"})," to let the blog use its built-in ",(0,s.jsx)(n.code,{children:".xsl"})," and ",(0,s.jsx)(n.code,{children:".css"})," files to style the blog feed"]}),"\n",(0,s.jsxs)(n.li,{children:["Use a falsy value (",(0,s.jsx)(n.code,{children:"undefined | null | false"}),") to disable the feature"]}),"\n",(0,s.jsxs)(n.li,{children:["Use a ",(0,s.jsx)(n.code,{children:"string"})," to provide a file path to a custom ",(0,s.jsx)(n.code,{children:".xsl"})," file relative to the blog content folder. By convention, you must provide a ",(0,s.jsx)(n.code,{children:".css"})," file with the exact same name."]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type FeedXSLTOptions =\n | boolean\n | undefined\n | null\n | {\n rss?: string | boolean | null | undefined;\n atom?: string | boolean | null | undefined;\n };\n"})}),"\n",(0,s.jsx)(n.h4,{id:"CreateFeedItemsFn",children:(0,s.jsx)(n.code,{children:"CreateFeedItemsFn"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type CreateFeedItemsFn = (params: {\n blogPosts: BlogPost[];\n siteConfig: DocusaurusConfig;\n outDir: string;\n defaultCreateFeedItemsFn: CreateFeedItemsFn;\n}) => Promise<BlogFeedItem[]>;\n"})}),"\n",(0,s.jsx)(n.h4,{id:"ProcessBlogPostsFn",children:(0,s.jsx)(n.code,{children:"ProcessBlogPostsFn"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type ProcessBlogPostsFn = (params: {\n blogPosts: BlogPost[];\n}) => Promise<void | BlogPost[]>;\n"})}),"\n",(0,s.jsx)(n.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,s.jsx)(n.p,{children:"You can configure this plugin through preset options or plugin options."}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsx)(n.p,{children:"Most Docusaurus users configure this plugin through the preset options."})}),"\n","\n",(0,s.jsx)(d.A,{pluginName:"@docusaurus/plugin-content-blog",presetOptionName:"blog",code:"{\n path: 'blog',\n // Simple use-case: string editUrl\n // editUrl: 'https://github.com/facebook/docusaurus/edit/main/website/',\n // Advanced use-case: functional editUrl\n editUrl: ({locale, blogDirPath, blogPath, permalink}) =>\n `https://github.com/facebook/docusaurus/edit/main/website/${blogDirPath}/${blogPath}`,\n editLocalizedFiles: false,\n blogTitle: 'Blog title',\n blogDescription: 'Blog',\n blogSidebarCount: 5,\n blogSidebarTitle: 'All our posts',\n routeBasePath: 'blog',\n include: ['**/*.{md,mdx}'],\n exclude: [\n '**/_*.{js,jsx,ts,tsx,md,mdx}',\n '**/_*/**',\n '**/*.test.{js,jsx,ts,tsx}',\n '**/__tests__/**',\n ],\n postsPerPage: 10,\n blogListComponent: '@theme/BlogListPage',\n blogPostComponent: '@theme/BlogPostPage',\n blogTagsListComponent: '@theme/BlogTagsListPage',\n blogTagsPostsComponent: '@theme/BlogTagsPostsPage',\n remarkPlugins: [require('./my-remark-plugin')],\n rehypePlugins: [],\n beforeDefaultRemarkPlugins: [],\n beforeDefaultRehypePlugins: [],\n truncateMarker: /<!--\\s*(truncate)\\s*-->/,\n showReadingTime: true,\n feedOptions: {\n type: '',\n title: '',\n description: '',\n copyright: '',\n language: undefined,\n createFeedItems: async (params) => {\n const {blogPosts, defaultCreateFeedItems, ...rest} = params;\n return defaultCreateFeedItems({\n // keep only the 10 most recent blog posts in the feed\n blogPosts: blogPosts.filter((item, index) => index < 10),\n ...rest,\n });\n },\n },\n}"}),"\n",(0,s.jsx)(n.h2,{id:"markdown-front-matter",children:"Markdown front matter"}),"\n",(0,s.jsxs)(n.p,{children:["Markdown documents can use the following Markdown ",(0,s.jsx)(n.a,{href:"/docs/markdown-features#front-matter",children:"front matter"})," metadata fields, enclosed by a line ",(0,s.jsx)(n.code,{children:"---"})," on either side."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(c.A,{children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"authors"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Authors"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["List of blog post authors (or unique author). Read the ",(0,s.jsxs)(n.a,{href:"/docs/blog#blog-post-authors",children:[(0,s.jsx)(n.code,{children:"authors"})," guide"]})," for more explanations. Prefer ",(0,s.jsx)(n.code,{children:"authors"})," over the ",(0,s.jsx)(n.code,{children:"author_*"})," front matter fields, even for single author blog posts."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"author"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["\u26A0\uFE0F Prefer using ",(0,s.jsx)(n.code,{children:"authors"}),". The blog post author's name."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"author_url"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["\u26A0\uFE0F Prefer using ",(0,s.jsx)(n.code,{children:"authors"}),". The URL that the author's name will be linked to. This could be a GitHub, X, Facebook profile URL, etc."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"author_image_url"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["\u26A0\uFE0F Prefer using ",(0,s.jsx)(n.code,{children:"authors"}),". The URL to the author's thumbnail image."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"author_title"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["\u26A0\uFE0F Prefer using ",(0,s.jsx)(n.code,{children:"authors"}),". A description of the author."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"title"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Markdown title"}),(0,s.jsx)(n.td,{children:"The blog post title."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"date"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"File name or file creation time"}),(0,s.jsxs)(n.td,{children:["The blog post creation date. If not specified, this can be extracted from the file or folder name, e.g, ",(0,s.jsx)(n.code,{children:"2021-04-15-blog-post.mdx"}),", ",(0,s.jsx)(n.code,{children:"2021-04-15-blog-post/index.mdx"}),", ",(0,s.jsx)(n.code,{children:"2021/04/15/blog-post.mdx"}),". Otherwise, it is the Markdown file creation time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"tags"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Tag[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["A list of strings or objects of two string fields ",(0,s.jsx)(n.code,{children:"label"})," and ",(0,s.jsx)(n.code,{children:"permalink"})," to tag to your post. Strings can be a reference to keys of a ",(0,s.jsx)(n.a,{href:"#tags-file",children:"tags file"})," (usually ",(0,s.jsx)(n.code,{children:"tags.yml"}),")"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"draft"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Draft blog posts will only be available during development."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"unlisted"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:'Unlisted blog posts will be available in both development and production. They will be "hidden" in production, not indexed, excluded from sitemaps, and can only be accessed by users having a direct link.'})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"hide_table_of_contents"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Whether to hide the table of contents to the right."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"toc_min_heading_level"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"number"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"2"})}),(0,s.jsx)(n.td,{children:"The minimum heading level shown in the table of contents. Must be between 2 and 6 and lower or equal to the max value."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"toc_max_heading_level"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"number"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"3"})}),(0,s.jsx)(n.td,{children:"The max heading level shown in the table of contents. Must be between 2 and 6."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"keywords"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Keywords meta tag, which will become the ",(0,s.jsx)(n.code,{children:'<meta name="keywords" content="keyword1,keyword2,..."/>'})," in ",(0,s.jsx)(n.code,{children:"<head>"}),", used by search engines."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"description"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The first line of Markdown content"}),(0,s.jsxs)(n.td,{children:["The description of your document, which will become the ",(0,s.jsx)(n.code,{children:'<meta name="description" content="..."/>'})," and ",(0,s.jsx)(n.code,{children:'<meta property="og:description" content="..."/>'})," in ",(0,s.jsx)(n.code,{children:"<head>"}),", used by search engines."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"image"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Cover or thumbnail image that will be used as the ",(0,s.jsx)(n.code,{children:'<meta property="og:image" content="..."/>'})," in the ",(0,s.jsx)(n.code,{children:"<head>"}),", enhancing link previews on social media and messaging platforms."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"slug"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"File path"}),(0,s.jsxs)(n.td,{children:["Allows to customize the blog post URL (",(0,s.jsx)(n.code,{children:"/<routeBasePath>/<slug>"}),"). Support multiple patterns: ",(0,s.jsx)(n.code,{children:"slug: my-blog-post"}),", ",(0,s.jsx)(n.code,{children:"slug: /my/path/to/blog/post"}),", slug: ",(0,s.jsx)(n.code,{children:"/"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"last_update"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"FrontMatterLastUpdate"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Allows overriding the last update author/date. Date can be any ",(0,s.jsx)(n.a,{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse",children:"parsable date string"}),"."]})]})]})]})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:'type FrontMatterLastUpdate = {date?: string; author?: string};\n\ntype Tag = string | {label: string; permalink: string};\n\n// An author key references an author from the global plugin authors.yml file\ntype AuthorKey = string;\n\n// Social platform name -> Social platform link\n// Example: {MyPlatform: \'https://myplatform.com/myusername\'}\n// Pre-defined platforms ("x", "github", "twitter", "linkedin", "stackoverflow") accept handles:\n// Example: {github: \'slorber\'}\ntype AuthorSocials = Record<string, string>;\n\ntype Author = {\n key?: AuthorKey;\n name: string;\n title?: string;\n url?: string;\n image_url?: string;\n socials?: AuthorSocials;\n};\n\n// The front matter authors field allows various possible shapes\ntype Authors = AuthorKey | Author | (AuthorKey | Author)[];\n'})}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-md",children:"---\ntitle: Welcome Docusaurus\nauthors:\n - slorber\n - yangshun\n - name: Joel Marcey\n title: Co-creator of Docusaurus 1\n url: https://github.com/JoelMarcey\n image_url: https://github.com/JoelMarcey.png\n socials:\n x: joelmarcey\n github: JoelMarcey\ntags: [docusaurus]\ndescription: This is my first post on Docusaurus.\nimage: https://i.imgur.com/mErPwqL.png\nhide_table_of_contents: false\n---\n\nA Markdown blog post\n"})}),"\n","\n",(0,s.jsx)(a.Ay,{}),"\n",(0,s.jsx)(n.h2,{id:"authors-file",children:"Authors File"}),"\n",(0,s.jsxs)(n.p,{children:["Use the ",(0,s.jsxs)(n.a,{href:"#authors",children:[(0,s.jsx)(n.code,{children:"authors"})," plugin option"]})," to configure the path of a YAML authors file."]}),"\n",(0,s.jsxs)(n.p,{children:["By convention, the plugin will look for a ",(0,s.jsx)(n.code,{children:"authors.yml"})," file at the root of your blog content folder(s)."]}),"\n",(0,s.jsxs)(n.p,{children:["This file can contain a list of predefined ",(0,s.jsx)(n.a,{href:"/docs/blog#global-authors",children:"global blog authors"}),". You can reference these authors by their keys in Markdown files thanks to the ",(0,s.jsxs)(n.a,{href:"#markdown-front-matter",children:[(0,s.jsx)(n.code,{children:"authors"})," front matter"]}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"authors-file-types",children:"Types"}),"\n",(0,s.jsx)(n.p,{children:"The YAML content of the provided authors file should respect the following shape:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-tsx",children:"type AuthorsMapInput = {\n [authorKey: string]: AuthorInput;\n};\n\ntype AuthorInput = {\n name?: string;\n title?: string;\n description?: string;\n imageURL?: string;\n url?: string;\n email?: string;\n page?: boolean | {permalink: string};\n socials?: Record<string, string>;\n [customAuthorAttribute: string]: unknown;\n};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"authors-file-example",children:"Example"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yml",metastring:'title="tags.yml"',children:"slorber:\n name: S\xe9bastien Lorber\n title: Docusaurus maintainer\n url: https://sebastienlorber.com\n image_url: https://github.com/slorber.png\n page: true\n socials:\n x: sebastienlorber\n github: slorber\n\njmarcey:\n name: Joel Marcey\n title: Co-creator of Docusaurus 1\n url: https://github.com/JoelMarcey\n image_url: https://github.com/JoelMarcey.png\n email: jimarcey@gmail.com\n page:\n permalink: '/joel-marcey'\n socials:\n x: joelmarcey\n github: JoelMarcey\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-md",metastring:'title="blog/my-blog-post.md"',children:"---\nauthors: [slorber, jmarcey]\n---\n\n# My Blog Post\n\nContent\n"})}),"\n",(0,s.jsx)(n.h2,{id:"i18n",children:"i18n"}),"\n",(0,s.jsxs)(n.p,{children:["Read the ",(0,s.jsx)(n.a,{href:"/docs/i18n/introduction",children:"i18n introduction"})," first."]}),"\n",(0,s.jsx)(n.h3,{id:"translation-files-location",children:"Translation files location"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Base path"}),": ",(0,s.jsx)(n.code,{children:"website/i18n/[locale]/docusaurus-plugin-content-blog"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Multi-instance path"}),": ",(0,s.jsx)(n.code,{children:"website/i18n/[locale]/docusaurus-plugin-content-blog-[pluginId]"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"JSON files"}),": extracted with ",(0,s.jsx)(n.a,{href:"/docs/cli#docusaurus-write-translations-sitedir",children:(0,s.jsx)(n.code,{children:"docusaurus write-translations"})})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Markdown files"}),": ",(0,s.jsx)(n.code,{children:"website/i18n/[locale]/docusaurus-plugin-content-blog"})]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"example-file-system-structure",children:"Example file-system structure"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"website/i18n/[locale]/docusaurus-plugin-content-blog\n\u2502\n\u2502 # translations for website/blog\n\u251C\u2500\u2500 authors.yml\n\u251C\u2500\u2500 first-blog-post.md\n\u251C\u2500\u2500 second-blog-post.md\n\u2502\n\u2502 # translations for the plugin options that will be rendered\n\u2514\u2500\u2500 options.json\n"})})]})}function g(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(x,{...e})}):x(e)}}}]); \ No newline at end of file diff --git a/assets/js/201d0633.81180319.js b/assets/js/201d0633.81180319.js new file mode 100644 index 0000000000..2379ed39d8 --- /dev/null +++ b/assets/js/201d0633.81180319.js @@ -0,0 +1,22 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[41074],{15995:(e,n,t)=>{t.d(n,{A:()=>l});var r=t(62540);t(63696);var s=t(11750);function l({children:e,hidden:n,className:t}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>y});var r=t(62540),s=t(63696),l=t(11750),i=t(7846),o=t(49519),c=t(96439),d=t(19739),a=t(66904),h=t(79244);function u(e){var n,t;return null!==(t=null===(n=s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function j({value:e,tabValues:n}){return n.some(n=>n.value===e)}var p=t(10709);function x(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function g(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function b({className:e,block:n,selectedValue:t,selectValue:s,tabValues:o}){let c=[],{blockElementScrollPositionUntilNextRender:d}=(0,i.a_)(),a=e=>{let n=e.currentTarget,r=o[c.indexOf(n)].value;r!==t&&(d(n),s(r))},h=e=>{var n,t;let r=null;switch(e.key){case"Enter":a(e);break;case"ArrowRight":{let t=c.indexOf(e.currentTarget)+1;r=null!==(n=c[t])&&void 0!==n?n:c[0];break}case"ArrowLeft":{let n=c.indexOf(e.currentTarget)-1;r=null!==(t=c[n])&&void 0!==t?t:c[c.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":n},e),children:o.map(({value:e,label:n,attributes:s})=>(0,r.jsx)("li",g(x({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>c.push(e),onKeyDown:h,onClick:a},s),{className:(0,l.A)("tabs__item","tabItem_AQgk",null==s?void 0:s.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function f({lazy:e,children:n,selectedValue:t}){let i=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=i.find(e=>e.props.value===t);return e?(0,s.cloneElement)(e,{className:(0,l.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:i.map((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function m(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,l=function(e){let{values:n,children:t}=e;return(0,s.useMemo)(()=>{let e=null!=n?n:u(t).map(({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r}));return!function(e){let n=(0,a.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[i,p]=(0,s.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!j({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:l})),[x,g]=function({queryString:e=!1,groupId:n}){let t=(0,o.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,d.aZ)(r),(0,s.useCallback)(e=>{var n,s;if(!r)return;let l=new URLSearchParams(t.location.search);l.set(r,e),t.replace((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},t.location),s=s={search:l.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(s)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(s)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(s,e))}),n))},[r,t])]}({queryString:t,groupId:r}),[b,f]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[t,r]=(0,h.Dv)(n);return[t,(0,s.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),m=(()=>{let e=null!=x?x:b;return j({value:e,tabValues:l})?e:null})();return(0,c.A)(()=>{m&&p(m)},[m]),{selectedValue:i,selectValue:(0,s.useCallback)(e=>{if(!j({value:e,tabValues:l}))throw Error(`Can't select invalid tab value=${e}`);p(e),g(e),f(e)},[g,f,l]),tabValues:l}}(e);return(0,r.jsxs)("div",{className:(0,l.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(b,x({},n,e)),(0,r.jsx)(f,x({},n,e))]})}function y(e){let n=(0,p.A)();return(0,r.jsx)(m,g(x({},e),{children:u(e.children)}),String(n))}},40576:(e,n,t)=>{t.d(n,{A:()=>l});var r=t(62540);t(63696);var s=t(10709);function l({children:e,fallback:n}){return(0,s.A)()?(0,r.jsx)(r.Fragment,{children:null==e?void 0:e()}):null!=n?n:null}},59273:(e,n,t)=>{t.d(n,{A:()=>c});var r=t(62540),s=t(63696),l=t(52711),i=t(49519);let o=s.forwardRef(function({name:e,children:n},t){let o=function(e){let n=e;for(;(0,s.isValidElement)(n);)[n]=s.Children.toArray(n.props.children);if("string"!=typeof n)throw Error(`Could not extract APITable row name from JSX tree: +${JSON.stringify(e,null,2)}`);return n}(n),c=e?`${e}-${o}`:o,d=`#${c}`,a=(0,i.W6)();return(0,l.A)().collectAnchor(c),(0,r.jsx)("tr",{id:c,tabIndex:0,ref:a.location.hash===d?t:void 0,onClick:e=>{"A"!==e.target.tagName.toUpperCase()&&a.push(d)},onKeyDown:e=>{"Enter"===e.key&&a.push(d)},children:n.props.children})});function c({children:e,name:n}){if("table"!==e.type)throw Error("Bad usage of APITable component.\nIt is probably that your Markdown table is malformed.\nMake sure to double-check you have the appropriate number of columns for each table row.");let[t,l]=s.Children.toArray(e.props.children),i=(0,s.useRef)(null);(0,s.useEffect)(()=>{var e;null===(e=i.current)||void 0===e||e.focus()},[i]);let c=s.Children.map(l.props.children,e=>(0,r.jsx)(o,{name:n,ref:i,children:e}));return(0,r.jsxs)("table",{className:"apiTable_e8hp",children:[t,(0,r.jsx)("tbody",{children:c})]})}},59433:(e,n,t)=>{t.d(n,{A:()=>h});var r=t(62540);t(63696);var s=t(36372),l=t(69615),i=t(81912),o=t(27446),c=t(15995),d=t(55887);let a=void 0;function h({code:e,pluginName:n,presetOptionName:t}){let h=(0,l.ir)(a).path;return(0,r.jsxs)(o.A,{groupId:"api-config-ex",children:[(0,r.jsxs)(c.A,{value:"preset",label:(0,i.T)({message:"Preset options"}),children:[(0,r.jsx)("p",{children:(0,r.jsx)(i.A,{id:"apiDocs.configTabs.presetOptions.description",values:{presetLink:(0,r.jsx)(s.A,{to:`${h}/using-plugins#docusauruspreset-classic`,children:(0,r.jsx)(i.A,{children:"preset options"})})},children:"If you use a preset, configure this plugin through the {presetLink}:"})}),(0,r.jsx)(d.A,{language:"js",title:"docusaurus.config.js",children:`module.exports = { + presets: [ + [ + '@docusaurus/preset-classic', + { + // highlight-start + ${t}: ${e.replace(/\n/g,"\n ")}, + // highlight-end + }, + ], + ], +};`})]}),(0,r.jsxs)(c.A,{value:"plugin",label:(0,i.T)({message:"Plugin options"}),children:[(0,r.jsx)("p",{children:(0,r.jsx)(i.A,{children:"If you are using a standalone plugin, provide options directly to the plugin:"})}),(0,r.jsx)(d.A,{language:"js",title:"docusaurus.config.js",children:`module.exports = { + plugins: [ + [ + '${n}', + // highlight-start + ${e.replace(/\n/g,"\n ")}, + // highlight-end + ], + ], +};`})]})]})}},55887:(e,n,t)=>{t.d(n,{A:()=>eo});var r,s,l,i={};t.r(i),t.d(i,{ButtonExample:()=>E});var o=t(62540),c=t(63696),d=t(11750),a=t(10709),h=t(55152),u=t(81912),j=t(99468),p=t(40576),x=t(1495),g=t(66659),b=t(25436);function f(){let{prism:e}=(0,b.p)(),{colorMode:n}=(0,g.G)(),t=e.theme,r=e.darkTheme||t;return"dark"===n?r:t}var m=t(43758);function y(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function v({children:e}){return(0,o.jsx)("div",{className:(0,d.A)("playgroundHeader_Tvsk"),children:e})}function O(){return(0,o.jsx)("div",{children:"Loading..."})}function w(){return(0,o.jsx)(p.A,{fallback:(0,o.jsx)(O,{}),children:()=>(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(m.A,{fallback:e=>(0,o.jsx)(x.MN,y({},e)),children:(0,o.jsx)(h.pA,{})}),(0,o.jsx)(h.p1,{})]})})}function P(){return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(v,{children:(0,o.jsx)(u.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,o.jsx)("div",{className:"playgroundPreview_mApW",children:(0,o.jsx)(w,{})})]})}function k(){let e=(0,a.A)();return(0,o.jsx)(h.w,{className:"playgroundEditor_TySg"},String(e))}function T(){return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(v,{children:(0,o.jsx)(u.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,o.jsx)(k,{})]})}let A=e=>`${e};`;function B(e){var n,t,r,s,{children:l,transformCode:i}=e,c=function(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},l=Object.keys(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)t=l[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,["children","transformCode"]);let{siteConfig:{themeConfig:d}}=(0,j.A)(),{liveCodeBlock:{playgroundPosition:a}}=d,u=f(),p=null!==(s=null===(r=c.metastring)||void 0===r?void 0:r.includes("noInline"))&&void 0!==s&&s;return(0,o.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,o.jsx)(h.Q,(n=y({code:null==l?void 0:l.replace(/\n$/,""),noInline:p,transformCode:null!=i?i:A,theme:u},c),t=t={children:"top"===a?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(P,{}),(0,o.jsx)(T,{})]}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(T,{}),(0,o.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))})}function S(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function E(e){var n,t;return(0,o.jsx)("button",(n=S({type:"button"},e),t=t={style:S({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let D=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({React:c},c,i);var C=t(12653),L=t(19934),F=t.n(L);let N=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),R=RegExp("\\{(?<range>[\\d,-]+)\\}"),I={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},M=(r=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},I),s=s={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(s)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(s)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(s,e))}),r),_=Object.keys(I);function U(e,n){let t=e.map(e=>{let{start:t,end:r}=M[e];return`(?:${t}\\s*(${n.flatMap(e=>{var n,t;return[e.line,null===(n=e.block)||void 0===n?void 0:n.start,null===(t=e.block)||void 0===t?void 0:t.end].filter(Boolean)}).join("|")})\\s*${r})`}).join("|");return RegExp(`^\\s*(?:${t})\\s*$`)}function $(e){var n,t,{as:r}=e,s=function(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},l=Object.keys(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)t=l[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,["as"]);let l=function(e){let n={color:"--prism-color",backgroundColor:"--prism-background-color"},t={};return Object.entries(e.plain).forEach(([e,r])=>{let s=n[e];s&&"string"==typeof r&&(t[s]=r)}),t}(f());return(0,o.jsx)(r,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},s),t=t={style:l,className:(0,d.A)(s.className,"codeBlockContainer_jDV4",C.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let W={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function X({children:e,className:n}){return(0,o.jsx)($,{as:"pre",tabIndex:0,className:(0,d.A)(W.codeBlockStandalone,"thin-scrollbar",n),children:(0,o.jsx)("code",{className:W.codeBlockLines,children:e})})}var q=t(2550);let H={attributes:!0,characterData:!0,childList:!0,subtree:!0};var J=t(27663);let V={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function z(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function G({line:e,classNames:n,showLineNumbers:t,getLineProps:r,getTokenProps:s}){var l,i;1===e.length&&"\n"===e[0].content&&(e[0].content="");let c=r({line:e,className:(0,d.A)(n,t&&V.codeLine)}),a=e.map((e,n)=>(0,o.jsx)("span",z({},s({token:e})),n));return(0,o.jsxs)("span",(l=z({},c),i=i={children:[t?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("span",{className:V.codeLineNumber}),(0,o.jsx)("span",{className:V.codeLineContent,children:a})]}):a,(0,o.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(i)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(i)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(i,e))}),l))}var Y=t(936);function K(e){var n,t;return(0,o.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,o.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function Q(e){var n,t;return(0,o.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,o.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let Z={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:n}){let[t,r]=(0,c.useState)(!1),s=(0,c.useRef)(void 0),l=(0,c.useCallback)(()=>{(0,Y.A)(e),r(!0),s.current=window.setTimeout(()=>{r(!1)},1e3)},[e]);return(0,c.useEffect)(()=>()=>window.clearTimeout(s.current),[]),(0,o.jsx)("button",{type:"button","aria-label":t?(0,u.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,u.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,u.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,d.A)("clean-btn",n,Z.copyButton,t&&Z.copyButtonCopied),onClick:l,children:(0,o.jsxs)("span",{className:Z.copyButtonIcons,"aria-hidden":"true",children:[(0,o.jsx)(K,{className:Z.copyButtonIcon}),(0,o.jsx)(Q,{className:Z.copyButtonSuccessIcon})]})})}function en(e){var n,t;return(0,o.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,o.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let et={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function er({className:e,onClick:n,isEnabled:t}){let r=(0,u.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,o.jsx)("button",{type:"button",onClick:n,className:(0,d.A)("clean-btn",e,t&&et.wordWrapButtonEnabled),"aria-label":r,title:r,children:(0,o.jsx)(en,{className:et.wordWrapButtonIcon,"aria-hidden":"true"})})}function es({children:e,className:n="",metastring:t,title:r,showLineNumbers:s,language:l}){var i,a,h,u;let{prism:{defaultLanguage:j,magicComments:p}}=(0,b.p)(),x=null==(a=null!==(i=null!=l?l:function(e){let n=e.split(" ").find(e=>e.startsWith("language-"));return null==n?void 0:n.replace(/language-/,"")}(n))&&void 0!==i?i:j)?void 0:a.toLowerCase(),g=f(),m=function(){let[e,n]=(0,c.useState)(!1),[t,r]=(0,c.useState)(!1),s=(0,c.useRef)(null),l=(0,c.useCallback)(()=>{let t=s.current.querySelector("code");e?t.removeAttribute("style"):(t.style.whiteSpace="pre-wrap",t.style.overflowWrap="anywhere"),n(e=>!e)},[s,e]),i=(0,c.useCallback)(()=>{let{scrollWidth:e,clientWidth:n}=s.current;r(e>n||s.current.querySelector("code").hasAttribute("style"))},[s]);return!function(e,n){let[t,r]=(0,c.useState)(),s=(0,c.useCallback)(()=>{var n;r(null===(n=e.current)||void 0===n?void 0:n.closest("[role=tabpanel][hidden]"))},[e,r]);(0,c.useEffect)(()=>{s()},[s]),function(e,n,t=H){let r=(0,q._q)(n),s=(0,q.Be)(t);(0,c.useEffect)(()=>{let n=new MutationObserver(r);return e&&n.observe(e,s),()=>n.disconnect()},[e,r,s])}(t,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(n(),s())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(s,i),(0,c.useEffect)(()=>{i()},[e,i]),(0,c.useEffect)(()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)}),[i]),{codeBlockRef:s,isEnabled:e,isCodeScrollable:t,toggle:l}}(),y=(null!==(u=null==t?void 0:null===(h=t.match(N))||void 0===h?void 0:h.groups.title)&&void 0!==u?u:"")||r,{lineClassNames:v,code:O}=function(e,n){let t=e.replace(/\n$/,""),{language:r,magicComments:s,metastring:l}=n;if(l&&R.test(l)){let e=l.match(R).groups.range;if(0===s.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${l}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let n=s[0].className;return{lineClassNames:Object.fromEntries(F()(e).filter(e=>e>0).map(e=>[e-1,[n]])),code:t}}if(void 0===r)return{lineClassNames:{},code:t};let i=function(e,n){switch(e){case"js":case"javascript":case"ts":case"typescript":return U(["js","jsBlock"],n);case"jsx":case"tsx":return U(["js","jsBlock","jsx"],n);case"html":return U(["js","jsBlock","html"],n);case"python":case"py":case"bash":return U(["bash"],n);case"markdown":case"md":return U(["html","jsx","bash"],n);case"tex":case"latex":case"matlab":return U(["tex"],n);case"lua":case"haskell":case"sql":return U(["lua"],n);case"wasm":return U(["wasm"],n);case"vb":case"vba":case"visual-basic":return U(["vb","rem"],n);case"vbnet":return U(["vbnet","rem"],n);case"batch":return U(["rem"],n);case"basic":return U(["rem","f90"],n);case"fsharp":return U(["js","ml"],n);case"ocaml":case"sml":return U(["ml"],n);case"fortran":return U(["f90"],n);case"cobol":return U(["cobol"],n);default:return U(_,n)}}(r,s),o=t.split("\n"),c=Object.fromEntries(s.map(e=>[e.className,{start:0,range:""}])),d=Object.fromEntries(s.filter(e=>e.line).map(({className:e,line:n})=>[n,e])),a=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:n})=>[n.start,e])),h=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:n})=>[n.end,e]));for(let e=0;e<o.length;){let n=o[e].match(i);if(!n){e+=1;continue}let t=n.slice(1).find(e=>void 0!==e);d[t]?c[d[t]].range+=`${e},`:a[t]?c[a[t]].start=e:h[t]&&(c[h[t]].range+=`${c[h[t]].start}-${e-1},`),o.splice(e,1)}t=o.join("\n");let u={};return Object.entries(c).forEach(([e,{range:n}])=>{F()(n).forEach(n=>{var t;null!==(t=u[n])&&void 0!==t||(u[n]=[]),u[n].push(e)})}),{lineClassNames:u,code:t}}(e,{metastring:t,language:x,magicComments:p}),w=null!=s?s:!!(null==t?void 0:t.includes("showLineNumbers"));return(0,o.jsxs)($,{as:"div",className:(0,d.A)(n,x&&!n.includes(`language-${x}`)&&`language-${x}`),children:[y&&(0,o.jsx)("div",{className:W.codeBlockTitle,children:y}),(0,o.jsxs)("div",{className:W.codeBlockContent,children:[(0,o.jsx)(J.f4,{theme:g,code:O,language:null!=x?x:"text",children:({className:e,style:n,tokens:t,getLineProps:r,getTokenProps:s})=>(0,o.jsx)("pre",{tabIndex:0,ref:m.codeBlockRef,className:(0,d.A)(e,W.codeBlock,"thin-scrollbar"),style:n,children:(0,o.jsx)("code",{className:(0,d.A)(W.codeBlockLines,w&&W.codeBlockLinesWithNumbering),children:t.map((e,n)=>(0,o.jsx)(G,{line:e,getLineProps:r,getTokenProps:s,classNames:v[n],showLineNumbers:w},n))})})}),(0,o.jsxs)("div",{className:W.buttonGroup,children:[(m.isEnabled||m.isCodeScrollable)&&(0,o.jsx)(er,{className:W.codeButton,onClick:()=>m.toggle(),isEnabled:m.isEnabled}),(0,o.jsx)(ee,{className:W.codeButton,code:O})]})]})]})}function el(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}let ei=(l=function(e){var n,t,{children:r}=e,s=function(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},l=Object.keys(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)t=l[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,["children"]);let l=(0,a.A)(),i=c.Children.toArray(r).some(e=>(0,c.isValidElement)(e))?r:Array.isArray(r)?r.join(""):r,d="string"==typeof i?es:X;return(0,o.jsx)(d,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},s),t=t={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n),String(l))},function(e){return e.live?(0,o.jsx)(B,el({scope:D},e)):(0,o.jsx)(l,el({},e))});function eo(e){return(0,o.jsx)(ei,function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},e))}},24583:(e,n,t)=>{t.d(n,{Ay:()=>o,RM:()=>l});var r=t(62540),s=t(43023);let l=[{value:"Tags File",id:"tags-file",level:2},{value:"Types",id:"tags-file-types",level:3},{value:"Example",id:"tags-file-example",level:3}];function i(e){let n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"tags-file",children:"Tags File"}),"\n",(0,r.jsxs)(n.p,{children:["Use the ",(0,r.jsxs)(n.a,{href:"#tags",children:[(0,r.jsx)(n.code,{children:"tags"})," plugin option"]})," to configure the path of a YAML tags file."]}),"\n",(0,r.jsxs)(n.p,{children:["By convention, the plugin will look for a ",(0,r.jsx)(n.code,{children:"tags.yml"})," file at the root of your content folder(s)."]}),"\n",(0,r.jsxs)(n.p,{children:["This file can contain a list of predefined tags. You can reference these tags by their keys in Markdown files thanks to the ",(0,r.jsxs)(n.a,{href:"#markdown-front-matter",children:[(0,r.jsx)(n.code,{children:"tags"})," front matter"]}),"."]}),"\n",(0,r.jsx)(n.admonition,{title:"Keeping tags consistent",type:"tip",children:(0,r.jsxs)(n.p,{children:["Using a tags file, you can ensure that your tags usage is consistent across your plugin content set. Use the ",(0,r.jsx)(n.a,{href:"#onInlineTags",children:(0,r.jsx)(n.code,{children:"onInlineTags: 'throw'"})})," plugin option to enforce this consistency and prevent usage of inline tags declared on the fly."]})}),"\n",(0,r.jsx)(n.h3,{id:"tags-file-types",children:"Types"}),"\n",(0,r.jsx)(n.p,{children:"The YAML content of the provided tags file should respect the following shape:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:"type Tag = {\n label?: string; // Tag display label\n permalink?: string; // Tag URL pathname segment\n description?: string; // Tag description displayed in the tag page\n};\n\ntype TagsFileInput = Record<string, Partial<Tag> | null>;\n"})}),"\n",(0,r.jsx)(n.h3,{id:"tags-file-example",children:"Example"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yml",metastring:'title="tags.yml"',children:"releases:\n label: 'Product releases'\n permalink: '/product-releases'\n description: 'Content related to product releases.'\n\n# A partial tag definition is also valid\nannouncements:\n label: 'Announcements'\n\n# An empty tag definition is also valid\n# Other attributes will be inferred from the key\nemptyTag:\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="content.md"',children:"---\ntags: [releases, announcements, emptyTag]\n---\n\n# Title\n\nContent\n"})})]})}function o(e={}){let{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(i,{...e})}):i(e)}},26713:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>j,contentTitle:()=>u,default:()=>g,frontMatter:()=>h,metadata:()=>r,toc:()=>p});let r=JSON.parse('{"id":"api/plugins/plugin-content-blog","title":"\u{1F4E6} plugin-content-blog","description":"Provides the Blog feature and is the default blog plugin for Docusaurus.","source":"@site/docs/api/plugins/plugin-content-blog.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-content-blog","permalink":"/docs/api/plugins/@docusaurus/plugin-content-blog","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-content-blog.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":2,"frontMatter":{"sidebar_position":2,"slug":"/api/plugins/@docusaurus/plugin-content-blog"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-content-docs","permalink":"/docs/api/plugins/@docusaurus/plugin-content-docs"},"next":{"title":"\u{1F4E6} plugin-content-pages","permalink":"/docs/api/plugins/@docusaurus/plugin-content-pages"}}');var s=t(62540),l=t(43023),i=t(27446),o=t(15995),c=t(59273),d=t(59433),a=t(24583);let h={sidebar_position:2,slug:"/api/plugins/@docusaurus/plugin-content-blog"},u="\u{1F4E6} plugin-content-blog",j={},p=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Types",id:"types",level:3},{value:"<code>EditUrlFn</code>",id:"EditUrlFn",level:4},{value:"<code>ReadingTimeFn</code>",id:"ReadingTimeFn",level:4},{value:"<code>FeedType</code>",id:"FeedType",level:4},{value:"<code>FeedXSLTOptions</code>",id:"FeedXSLTOptions",level:4},{value:"<code>CreateFeedItemsFn</code>",id:"CreateFeedItemsFn",level:4},{value:"<code>ProcessBlogPostsFn</code>",id:"ProcessBlogPostsFn",level:4},{value:"Example configuration",id:"ex-config",level:3},{value:"Markdown front matter",id:"markdown-front-matter",level:2},...a.RM,{value:"Authors File",id:"authors-file",level:2},{value:"Types",id:"authors-file-types",level:3},{value:"Example",id:"authors-file-example",level:3},{value:"i18n",id:"i18n",level:2},{value:"Translation files location",id:"translation-files-location",level:3},{value:"Example file-system structure",id:"example-file-system-structure",level:3}];function x(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"-plugin-content-blog",children:"\u{1F4E6} plugin-content-blog"})}),"\n","\n",(0,s.jsxs)(n.p,{children:["Provides the ",(0,s.jsx)(n.a,{href:"/docs/blog",children:"Blog"})," feature and is the default blog plugin for Docusaurus."]}),"\n",(0,s.jsx)(n.admonition,{title:"some features production only",type:"warning",children:(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.a,{href:"/docs/blog#feed",children:"feed feature"})," works by extracting the build output, and is ",(0,s.jsx)(n.strong,{children:"only active in production"}),"."]})}),"\n",(0,s.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,s.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,s.jsx)(o.A,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm install --save @docusaurus/plugin-content-blog\n"})})}),(0,s.jsx)(o.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn add @docusaurus/plugin-content-blog\n"})})}),(0,s.jsx)(o.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm add @docusaurus/plugin-content-blog\n"})})})]}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsxs)(n.p,{children:["If you use the preset ",(0,s.jsx)(n.code,{children:"@docusaurus/preset-classic"}),", you don't need to install this plugin as a dependency."]}),(0,s.jsxs)(n.p,{children:["You can configure this plugin through the ",(0,s.jsx)(n.a,{href:"/docs/using-plugins#docusauruspreset-classic",children:"preset options"}),"."]})]}),"\n",(0,s.jsx)(n.h2,{id:"configuration",children:"Configuration"}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(c.A,{children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"path"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'blog'"})}),(0,s.jsx)(n.td,{children:"Path to the blog content directory on the file system, relative to site dir."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"editUrl"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:["string | ",(0,s.jsx)(n.a,{href:"#EditUrlFn",children:"EditUrlFn"})]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Base URL to edit your site. The final URL is computed by ",(0,s.jsx)(n.code,{children:"editUrl + relativePostPath"}),". Using a function allows more nuanced control for each file. Omitting this variable entirely will disable edit links."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"editLocalizedFiles"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["The edit URL will target the localized file, instead of the original unlocalized file. Ignored when ",(0,s.jsx)(n.code,{children:"editUrl"})," is a function."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogTitle"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'Blog'"})}),(0,s.jsx)(n.td,{children:"Blog page title for better SEO."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogDescription"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'Blog'"})}),(0,s.jsx)(n.td,{children:"Blog page meta description for better SEO."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogSidebarCount"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"number | 'ALL'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"5"})}),(0,s.jsxs)(n.td,{children:["Number of blog post elements to show in the blog sidebar. ",(0,s.jsx)(n.code,{children:"'ALL'"})," to show all blog posts; ",(0,s.jsx)(n.code,{children:"0"})," to disable."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogSidebarTitle"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'Recent posts'"})}),(0,s.jsx)(n.td,{children:"Title of the blog sidebar."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"routeBasePath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'blog'"})}),(0,s.jsxs)(n.td,{children:["URL route for the blog section of your site. ",(0,s.jsx)(n.strong,{children:"DO NOT"})," include a trailing slash. Use ",(0,s.jsx)(n.code,{children:"/"})," to put the blog at root path."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"tagsBasePath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'tags'"})}),(0,s.jsxs)(n.td,{children:["URL route for the tags section of your blog. Will be appended to ",(0,s.jsx)(n.code,{children:"routeBasePath"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"pageBasePath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'page'"})}),(0,s.jsxs)(n.td,{children:["URL route for the pages section of your blog. Will be appended to ",(0,s.jsx)(n.code,{children:"routeBasePath"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"archiveBasePath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"string | null"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'archive'"})}),(0,s.jsxs)(n.td,{children:["URL route for the archive section of your blog. Will be appended to ",(0,s.jsx)(n.code,{children:"routeBasePath"}),". ",(0,s.jsx)(n.strong,{children:"DO NOT"})," include a trailing slash. Use ",(0,s.jsx)(n.code,{children:"null"})," to disable generation of archive."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"authorsBasePath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'authors'"})}),(0,s.jsxs)(n.td,{children:["URL route for the authors pages of your blog. Will be appended to ",(0,s.jsx)(n.code,{children:"path"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"include"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"['**/*.{md,mdx}']"})}),(0,s.jsx)(n.td,{children:"Array of glob patterns matching Markdown files to be built, relative to the content path."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"exclude"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"See example configuration"})}),(0,s.jsxs)(n.td,{children:["Array of glob patterns matching Markdown files to be excluded. Serves as refinement based on the ",(0,s.jsx)(n.code,{children:"include"})," option."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"postsPerPage"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"number | 'ALL'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"10"})}),(0,s.jsxs)(n.td,{children:["Number of posts to show per page in the listing page. Use ",(0,s.jsx)(n.code,{children:"'ALL'"})," to display all posts on one listing page."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogListComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/BlogListPage'"})}),(0,s.jsx)(n.td,{children:"Root component of the blog listing page."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogPostComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/BlogPostPage'"})}),(0,s.jsx)(n.td,{children:"Root component of each blog post page."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogTagsListComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/BlogTagsListPage'"})}),(0,s.jsx)(n.td,{children:"Root component of the tags list page."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogTagsPostsComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/BlogTagsPostsPage'"})}),(0,s.jsx)(n.td,{children:'Root component of the "posts containing tag" page.'})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogArchiveComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/BlogArchivePage'"})}),(0,s.jsx)(n.td,{children:"Root component of the blog archive page."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogAuthorsPostsComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/Blog/Pages/BlogAuthorsPostsPage'"})}),(0,s.jsx)(n.td,{children:"Root component of the blog author page."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"blogAuthorsListComponent"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'@theme/Blog/Pages/BlogAuthorsListPage'"})}),(0,s.jsx)(n.td,{children:"Root component of the blog authors page index."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"remarkPlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Remark plugins passed to MDX."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"rehypePlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Rehype plugins passed to MDX."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"rehypePlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Recma plugins passed to MDX."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"beforeDefaultRemarkPlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Custom Remark plugins passed to MDX before the default Docusaurus Remark plugins."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"beforeDefaultRehypePlugins"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsx)(n.td,{children:"Custom Rehype plugins passed to MDX before the default Docusaurus Rehype plugins."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"truncateMarker"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"RegExp"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"/<!--\\s*truncate\\s*-->/"})," | ",(0,s.jsx)(n.code,{children:"\\{\\/\\*\\s*truncate\\s*\\*\\/\\}/"})]}),(0,s.jsx)(n.td,{children:"Truncate marker marking where the summary ends."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"showReadingTime"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"Show estimated reading time for the blog post."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"readingTime"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"ReadingTimeFn"})}),(0,s.jsx)(n.td,{children:"The default reading time"}),(0,s.jsx)(n.td,{children:"A callback to customize the reading time number displayed."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"authorsMapPath"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'authors.yml'"})}),(0,s.jsx)(n.td,{children:"Path to the authors map file, relative to the blog content directory."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"feedOptions"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"See below"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{type: ['rss', 'atom']}"})}),(0,s.jsx)(n.td,{children:"Blog feed."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"feedOptions.type"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:[(0,s.jsx)(n.a,{href:"#FeedType",children:"FeedType"})," | ",(0,s.jsx)(n.a,{href:"#FeedType",children:"FeedType"}),"[] | 'all' | null"]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Required"})}),(0,s.jsxs)(n.td,{children:["Type of feed to be generated. Use ",(0,s.jsx)(n.code,{children:"null"})," to disable generation."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"feedOptions.createFeedItems"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:[(0,s.jsx)(n.a,{href:"#CreateFeedItemsFn",children:"CreateFeedItemsFn"})," | undefined"]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"An optional function which can be used to transform and / or filter the items in the feed."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"feedOptions.limit"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"number | null | false"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"20"})}),(0,s.jsxs)(n.td,{children:["Limits the feed to the specified number of posts, ",(0,s.jsx)(n.code,{children:"false"})," or ",(0,s.jsx)(n.code,{children:"null"})," for all entries. Defaults to ",(0,s.jsx)(n.code,{children:"20"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"feedOptions.title"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"siteConfig.title"})}),(0,s.jsx)(n.td,{children:"Title of the feed."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"feedOptions.description"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"`${siteConfig.title} Blog`"})}),(0,s.jsx)(n.td,{children:"Description of the feed."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"feedOptions.copyright"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Copyright message."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"feedOptions.xslt"})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)("code",{children:["boolean | ",(0,s.jsx)(n.a,{href:"#FeedXSLTOptions",children:"FeedXSLTOptions"})]})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Copyright message."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"feedOptions.language"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"string"})," (See ",(0,s.jsx)(n.a,{href:"http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes",children:"documentation"})," for possible values)"]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"Language metadata of the feed."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sortPosts"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:"'descending' | 'ascending' "})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'descending'"})}),(0,s.jsx)(n.td,{children:"Governs the direction of blog post sorting."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"processBlogPosts"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)("code",{children:(0,s.jsx)(n.a,{href:"#ProcessBlogPostsFn",children:"ProcessBlogPostsFn"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsx)(n.td,{children:"An optional function which can be used to transform blog posts (filter, modify, delete, etc...)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"showLastUpdateAuthor"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Whether to display the author who last updated the blog post."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"showLastUpdateTime"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Whether to display the last date the blog post was updated. This requires access to git history during the build, so will not work correctly with shallow clones (a common default for CI systems). With GitHub ",(0,s.jsx)(n.code,{children:"actions/checkout"}),", use",(0,s.jsx)(n.code,{children:"fetch-depth: 0"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"tags"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string | false | null | undefined"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"tags.yml"})}),(0,s.jsx)(n.td,{children:"Path to the YAML tags file listing pre-defined tags. Relative to the blog content directory."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"onInlineTags"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'ignore' | 'log' | 'warn' | 'throw'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"warn"})}),(0,s.jsxs)(n.td,{children:["The plugin behavior when blog posts contain inline tags (not appearing in the list of pre-defined tags, usually ",(0,s.jsx)(n.code,{children:"tags.yml"}),")."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"onUntruncatedBlogPosts"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"'ignore' | 'log' | 'warn' | 'throw'"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"warn"})}),(0,s.jsx)(n.td,{children:"The plugin behavior when blog posts do not contain a truncate marker."})]})]})]})}),"\n",(0,s.jsx)(n.h3,{id:"types",children:"Types"}),"\n",(0,s.jsx)(n.h4,{id:"EditUrlFn",children:(0,s.jsx)(n.code,{children:"EditUrlFn"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type EditUrlFunction = (params: {\n blogDirPath: string;\n blogPath: string;\n permalink: string;\n locale: string;\n}) => string | undefined;\n"})}),"\n",(0,s.jsx)(n.h4,{id:"ReadingTimeFn",children:(0,s.jsx)(n.code,{children:"ReadingTimeFn"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type ReadingTimeOptions = {\n wordsPerMinute: number;\n wordBound: (char: string) => boolean;\n};\n\ntype ReadingTimeCalculator = (params: {\n content: string;\n frontMatter?: BlogPostFrontMatter & Record<string, unknown>;\n options?: ReadingTimeOptions;\n}) => number;\n\ntype ReadingTimeFn = (params: {\n content: string;\n frontMatter: BlogPostFrontMatter & Record<string, unknown>;\n defaultReadingTime: ReadingTimeCalculator;\n}) => number | undefined;\n"})}),"\n",(0,s.jsx)(n.h4,{id:"FeedType",children:(0,s.jsx)(n.code,{children:"FeedType"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type FeedType = 'rss' | 'atom' | 'json';\n"})}),"\n",(0,s.jsx)(n.h4,{id:"FeedXSLTOptions",children:(0,s.jsx)(n.code,{children:"FeedXSLTOptions"})}),"\n",(0,s.jsxs)(n.p,{children:["Permits to style the blog XML feeds so that browsers render them nicely with ",(0,s.jsx)(n.a,{href:"https://developer.mozilla.org/en-US/docs/Web/XSLT",children:"XSLT"}),"."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Use ",(0,s.jsx)(n.code,{children:"true"})," to let the blog use its built-in ",(0,s.jsx)(n.code,{children:".xsl"})," and ",(0,s.jsx)(n.code,{children:".css"})," files to style the blog feed"]}),"\n",(0,s.jsxs)(n.li,{children:["Use a falsy value (",(0,s.jsx)(n.code,{children:"undefined | null | false"}),") to disable the feature"]}),"\n",(0,s.jsxs)(n.li,{children:["Use a ",(0,s.jsx)(n.code,{children:"string"})," to provide a file path to a custom ",(0,s.jsx)(n.code,{children:".xsl"})," file relative to the blog content folder. By convention, you must provide a ",(0,s.jsx)(n.code,{children:".css"})," file with the exact same name."]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type FeedXSLTOptions =\n | boolean\n | undefined\n | null\n | {\n rss?: string | boolean | null | undefined;\n atom?: string | boolean | null | undefined;\n };\n"})}),"\n",(0,s.jsx)(n.h4,{id:"CreateFeedItemsFn",children:(0,s.jsx)(n.code,{children:"CreateFeedItemsFn"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type CreateFeedItemsFn = (params: {\n blogPosts: BlogPost[];\n siteConfig: DocusaurusConfig;\n outDir: string;\n defaultCreateFeedItemsFn: CreateFeedItemsFn;\n}) => Promise<BlogFeedItem[]>;\n"})}),"\n",(0,s.jsx)(n.h4,{id:"ProcessBlogPostsFn",children:(0,s.jsx)(n.code,{children:"ProcessBlogPostsFn"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type ProcessBlogPostsFn = (params: {\n blogPosts: BlogPost[];\n}) => Promise<void | BlogPost[]>;\n"})}),"\n",(0,s.jsx)(n.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,s.jsx)(n.p,{children:"You can configure this plugin through preset options or plugin options."}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsx)(n.p,{children:"Most Docusaurus users configure this plugin through the preset options."})}),"\n","\n",(0,s.jsx)(d.A,{pluginName:"@docusaurus/plugin-content-blog",presetOptionName:"blog",code:"{\n path: 'blog',\n // Simple use-case: string editUrl\n // editUrl: 'https://github.com/facebook/docusaurus/edit/main/website/',\n // Advanced use-case: functional editUrl\n editUrl: ({locale, blogDirPath, blogPath, permalink}) =>\n `https://github.com/facebook/docusaurus/edit/main/website/${blogDirPath}/${blogPath}`,\n editLocalizedFiles: false,\n blogTitle: 'Blog title',\n blogDescription: 'Blog',\n blogSidebarCount: 5,\n blogSidebarTitle: 'All our posts',\n routeBasePath: 'blog',\n include: ['**/*.{md,mdx}'],\n exclude: [\n '**/_*.{js,jsx,ts,tsx,md,mdx}',\n '**/_*/**',\n '**/*.test.{js,jsx,ts,tsx}',\n '**/__tests__/**',\n ],\n postsPerPage: 10,\n blogListComponent: '@theme/BlogListPage',\n blogPostComponent: '@theme/BlogPostPage',\n blogTagsListComponent: '@theme/BlogTagsListPage',\n blogTagsPostsComponent: '@theme/BlogTagsPostsPage',\n remarkPlugins: [require('./my-remark-plugin')],\n rehypePlugins: [],\n beforeDefaultRemarkPlugins: [],\n beforeDefaultRehypePlugins: [],\n truncateMarker: /<!--\\s*(truncate)\\s*-->/,\n showReadingTime: true,\n feedOptions: {\n type: '',\n title: '',\n description: '',\n copyright: '',\n language: undefined,\n createFeedItems: async (params) => {\n const {blogPosts, defaultCreateFeedItems, ...rest} = params;\n return defaultCreateFeedItems({\n // keep only the 10 most recent blog posts in the feed\n blogPosts: blogPosts.filter((item, index) => index < 10),\n ...rest,\n });\n },\n },\n}"}),"\n",(0,s.jsx)(n.h2,{id:"markdown-front-matter",children:"Markdown front matter"}),"\n",(0,s.jsxs)(n.p,{children:["Markdown documents can use the following Markdown ",(0,s.jsx)(n.a,{href:"/docs/markdown-features#front-matter",children:"front matter"})," metadata fields, enclosed by a line ",(0,s.jsx)(n.code,{children:"---"})," on either side."]}),"\n",(0,s.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,s.jsx)(c.A,{children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"authors"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Authors"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["List of blog post authors (or unique author). Read the ",(0,s.jsxs)(n.a,{href:"/docs/blog#blog-post-authors",children:[(0,s.jsx)(n.code,{children:"authors"})," guide"]})," for more explanations. Prefer ",(0,s.jsx)(n.code,{children:"authors"})," over the ",(0,s.jsx)(n.code,{children:"author_*"})," front matter fields, even for single author blog posts."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"author"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["\u26A0\uFE0F Prefer using ",(0,s.jsx)(n.code,{children:"authors"}),". The blog post author's name."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"author_url"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["\u26A0\uFE0F Prefer using ",(0,s.jsx)(n.code,{children:"authors"}),". The URL that the author's name will be linked to. This could be a GitHub, X, Facebook profile URL, etc."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"author_image_url"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["\u26A0\uFE0F Prefer using ",(0,s.jsx)(n.code,{children:"authors"}),". The URL to the author's thumbnail image."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"author_title"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["\u26A0\uFE0F Prefer using ",(0,s.jsx)(n.code,{children:"authors"}),". A description of the author."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"title"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Markdown title"}),(0,s.jsx)(n.td,{children:"The blog post title."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"date"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"File name or file creation time"}),(0,s.jsxs)(n.td,{children:["The blog post creation date. If not specified, this can be extracted from the file or folder name, e.g, ",(0,s.jsx)(n.code,{children:"2021-04-15-blog-post.mdx"}),", ",(0,s.jsx)(n.code,{children:"2021-04-15-blog-post/index.mdx"}),", ",(0,s.jsx)(n.code,{children:"2021/04/15/blog-post.mdx"}),". Otherwise, it is the Markdown file creation time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"tags"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Tag[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["A list of strings or objects of two string fields ",(0,s.jsx)(n.code,{children:"label"})," and ",(0,s.jsx)(n.code,{children:"permalink"})," to tag to your post. Strings can be a reference to keys of a ",(0,s.jsx)(n.a,{href:"#tags-file",children:"tags file"})," (usually ",(0,s.jsx)(n.code,{children:"tags.yml"}),")"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"draft"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Draft blog posts will only be available during development."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"unlisted"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:'Unlisted blog posts will be available in both development and production. They will be "hidden" in production, not indexed, excluded from sitemaps, and can only be accessed by users having a direct link.'})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"hide_table_of_contents"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Whether to hide the table of contents to the right."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"toc_min_heading_level"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"number"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"2"})}),(0,s.jsx)(n.td,{children:"The minimum heading level shown in the table of contents. Must be between 2 and 6 and lower or equal to the max value."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"toc_max_heading_level"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"number"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"3"})}),(0,s.jsx)(n.td,{children:"The max heading level shown in the table of contents. Must be between 2 and 6."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"keywords"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Keywords meta tag, which will become the ",(0,s.jsx)(n.code,{children:'<meta name="keywords" content="keyword1,keyword2,..."/>'})," in ",(0,s.jsx)(n.code,{children:"<head>"}),", used by search engines."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"description"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The first line of Markdown content"}),(0,s.jsxs)(n.td,{children:["The description of your document, which will become the ",(0,s.jsx)(n.code,{children:'<meta name="description" content="..."/>'})," and ",(0,s.jsx)(n.code,{children:'<meta property="og:description" content="..."/>'})," in ",(0,s.jsx)(n.code,{children:"<head>"}),", used by search engines."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"image"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Cover or thumbnail image that will be used as the ",(0,s.jsx)(n.code,{children:'<meta property="og:image" content="..."/>'})," in the ",(0,s.jsx)(n.code,{children:"<head>"}),", enhancing link previews on social media and messaging platforms."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"slug"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"File path"}),(0,s.jsxs)(n.td,{children:["Allows to customize the blog post URL (",(0,s.jsx)(n.code,{children:"/<routeBasePath>/<slug>"}),"). Support multiple patterns: ",(0,s.jsx)(n.code,{children:"slug: my-blog-post"}),", ",(0,s.jsx)(n.code,{children:"slug: /my/path/to/blog/post"}),", slug: ",(0,s.jsx)(n.code,{children:"/"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"last_update"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"FrontMatterLastUpdate"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"undefined"})}),(0,s.jsxs)(n.td,{children:["Allows overriding the last update author/date. Date can be any ",(0,s.jsx)(n.a,{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse",children:"parsable date string"}),"."]})]})]})]})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:'type FrontMatterLastUpdate = {date?: string; author?: string};\n\ntype Tag = string | {label: string; permalink: string};\n\n// An author key references an author from the global plugin authors.yml file\ntype AuthorKey = string;\n\n// Social platform name -> Social platform link\n// Example: {MyPlatform: \'https://myplatform.com/myusername\'}\n// Pre-defined platforms ("x", "github", "twitter", "linkedin", "stackoverflow") accept handles:\n// Example: {github: \'slorber\'}\ntype AuthorSocials = Record<string, string>;\n\ntype Author = {\n key?: AuthorKey;\n name: string;\n title?: string;\n url?: string;\n image_url?: string;\n socials?: AuthorSocials;\n};\n\n// The front matter authors field allows various possible shapes\ntype Authors = AuthorKey | Author | (AuthorKey | Author)[];\n'})}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-md",children:"---\ntitle: Welcome Docusaurus\nauthors:\n - slorber\n - yangshun\n - name: Joel Marcey\n title: Co-creator of Docusaurus 1\n url: https://github.com/JoelMarcey\n image_url: https://github.com/JoelMarcey.png\n socials:\n x: joelmarcey\n github: JoelMarcey\ntags: [docusaurus]\ndescription: This is my first post on Docusaurus.\nimage: https://i.imgur.com/mErPwqL.png\nhide_table_of_contents: false\n---\n\nA Markdown blog post\n"})}),"\n","\n",(0,s.jsx)(a.Ay,{}),"\n",(0,s.jsx)(n.h2,{id:"authors-file",children:"Authors File"}),"\n",(0,s.jsxs)(n.p,{children:["Use the ",(0,s.jsxs)(n.a,{href:"#authors",children:[(0,s.jsx)(n.code,{children:"authors"})," plugin option"]})," to configure the path of a YAML authors file."]}),"\n",(0,s.jsxs)(n.p,{children:["By convention, the plugin will look for a ",(0,s.jsx)(n.code,{children:"authors.yml"})," file at the root of your blog content folder(s)."]}),"\n",(0,s.jsxs)(n.p,{children:["This file can contain a list of predefined ",(0,s.jsx)(n.a,{href:"/docs/blog#global-authors",children:"global blog authors"}),". You can reference these authors by their keys in Markdown files thanks to the ",(0,s.jsxs)(n.a,{href:"#markdown-front-matter",children:[(0,s.jsx)(n.code,{children:"authors"})," front matter"]}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"authors-file-types",children:"Types"}),"\n",(0,s.jsx)(n.p,{children:"The YAML content of the provided authors file should respect the following shape:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-tsx",children:"type AuthorsMapInput = {\n [authorKey: string]: AuthorInput;\n};\n\ntype AuthorInput = {\n name?: string;\n title?: string;\n description?: string;\n imageURL?: string;\n url?: string;\n email?: string;\n page?: boolean | {permalink: string};\n socials?: Record<string, string>;\n [customAuthorAttribute: string]: unknown;\n};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"authors-file-example",children:"Example"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yml",metastring:'title="tags.yml"',children:"slorber:\n name: S\xe9bastien Lorber\n title: Docusaurus maintainer\n url: https://sebastienlorber.com\n image_url: https://github.com/slorber.png\n page: true\n socials:\n x: sebastienlorber\n github: slorber\n\njmarcey:\n name: Joel Marcey\n title: Co-creator of Docusaurus 1\n url: https://github.com/JoelMarcey\n image_url: https://github.com/JoelMarcey.png\n email: jimarcey@gmail.com\n page:\n permalink: '/joel-marcey'\n socials:\n x: joelmarcey\n github: JoelMarcey\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-md",metastring:'title="blog/my-blog-post.md"',children:"---\nauthors: [slorber, jmarcey]\n---\n\n# My Blog Post\n\nContent\n"})}),"\n",(0,s.jsx)(n.h2,{id:"i18n",children:"i18n"}),"\n",(0,s.jsxs)(n.p,{children:["Read the ",(0,s.jsx)(n.a,{href:"/docs/i18n/introduction",children:"i18n introduction"})," first."]}),"\n",(0,s.jsx)(n.h3,{id:"translation-files-location",children:"Translation files location"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Base path"}),": ",(0,s.jsx)(n.code,{children:"website/i18n/[locale]/docusaurus-plugin-content-blog"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Multi-instance path"}),": ",(0,s.jsx)(n.code,{children:"website/i18n/[locale]/docusaurus-plugin-content-blog-[pluginId]"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"JSON files"}),": extracted with ",(0,s.jsx)(n.a,{href:"/docs/cli#docusaurus-write-translations-sitedir",children:(0,s.jsx)(n.code,{children:"docusaurus write-translations"})})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Markdown files"}),": ",(0,s.jsx)(n.code,{children:"website/i18n/[locale]/docusaurus-plugin-content-blog"})]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"example-file-system-structure",children:"Example file-system structure"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"website/i18n/[locale]/docusaurus-plugin-content-blog\n\u2502\n\u2502 # translations for website/blog\n\u251C\u2500\u2500 authors.yml\n\u251C\u2500\u2500 first-blog-post.md\n\u251C\u2500\u2500 second-blog-post.md\n\u2502\n\u2502 # translations for the plugin options that will be rendered\n\u2514\u2500\u2500 options.json\n"})})]})}function g(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(x,{...e})}):x(e)}}}]); \ No newline at end of file diff --git a/assets/js/209ff87f.32ccded5.js b/assets/js/209ff87f.32ccded5.js new file mode 100644 index 0000000000..dd7ee9a7c4 --- /dev/null +++ b/assets/js/209ff87f.32ccded5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[18145],{15995:(e,a,n)=>{n.d(a,{A:()=>r});var s=n(62540);n(63696);var t=n(11750);function r({children:e,hidden:a,className:n}){return(0,s.jsx)("div",{role:"tabpanel",className:(0,t.A)("tabItem_pnkT",n),hidden:a,children:e})}},27446:(e,a,n)=>{n.d(a,{A:()=>v});var s=n(62540),t=n(63696),r=n(11750),l=n(7846),i=n(49519),o=n(96439),c=n(19739),d=n(66904),u=n(79244);function h(e){var a,n;return null!==(n=null===(a=t.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,t.isValidElement)(e)&&function(e){let{props:a}=e;return!!a&&"object"==typeof a&&"value"in a}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===a?void 0:a.filter(Boolean))&&void 0!==n?n:[]}function b({value:e,tabValues:a}){return a.some(a=>a.value===e)}var p=n(10709);function m(e){for(var a=1;a<arguments.length;a++){var n=null!=arguments[a]?arguments[a]:{},s=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),s.forEach(function(a){var s;s=n[a],a in e?Object.defineProperty(e,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[a]=s})}return e}function g(e,a){return a=null!=a?a:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):(function(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);n.push.apply(n,s)}return n})(Object(a)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(a,n))}),e}function x({className:e,block:a,selectedValue:n,selectValue:t,tabValues:i}){let o=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.a_)(),d=e=>{let a=e.currentTarget,s=i[o.indexOf(a)].value;s!==n&&(c(a),t(s))},u=e=>{var a,n;let s=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let n=o.indexOf(e.currentTarget)+1;s=null!==(a=o[n])&&void 0!==a?a:o[0];break}case"ArrowLeft":{let a=o.indexOf(e.currentTarget)-1;s=null!==(n=o[a])&&void 0!==n?n:o[o.length-1]}}null==s||s.focus()};return(0,s.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":a},e),children:i.map(({value:e,label:a,attributes:t})=>(0,s.jsx)("li",g(m({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>o.push(e),onKeyDown:u,onClick:d},t),{className:(0,r.A)("tabs__item","tabItem_AQgk",null==t?void 0:t.className,{"tabs__item--active":n===e}),children:null!=a?a:e}),e))})}function j({lazy:e,children:a,selectedValue:n}){let l=(Array.isArray(a)?a:[a]).filter(Boolean);if(e){let e=l.find(e=>e.props.value===n);return e?(0,t.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,s.jsx)("div",{className:"margin-top--md",children:l.map((e,a)=>(0,t.cloneElement)(e,{key:a,hidden:e.props.value!==n}))})}function f(e){let a=function(e){let{defaultValue:a,queryString:n=!1,groupId:s}=e,r=function(e){let{values:a,children:n}=e;return(0,t.useMemo)(()=>{let e=null!=a?a:h(n).map(({props:{value:e,label:a,attributes:n,default:s}})=>({value:e,label:a,attributes:n,default:s}));return!function(e){let a=(0,d.XI)(e,(e,a)=>e.value===a.value);if(a.length>0)throw Error(`Docusaurus error: Duplicate values "${a.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[a,n])}(e),[l,p]=(0,t.useState)(()=>(function({defaultValue:e,tabValues:a}){var n;if(0===a.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!b({value:e,tabValues:a}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${a.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let s=null!==(n=a.find(e=>e.default))&&void 0!==n?n:a[0];if(!s)throw Error("Unexpected error: 0 tabValues");return s.value})({defaultValue:a,tabValues:r})),[m,g]=function({queryString:e=!1,groupId:a}){let n=(0,i.W6)(),s=function({queryString:e=!1,groupId:a}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!a)throw Error('Docusaurus error: The <Tabs> 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 null!=a?a:null}({queryString:e,groupId:a});return[(0,c.aZ)(s),(0,t.useCallback)(e=>{var a,t;if(!s)return;let r=new URLSearchParams(n.location.search);r.set(s,e),n.replace((a=function(e){for(var a=1;a<arguments.length;a++){var n=null!=arguments[a]?arguments[a]:{},s=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),s.forEach(function(a){var s;s=n[a],a in e?Object.defineProperty(e,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[a]=s})}return e}({},n.location),t=t={search:r.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(t)):(function(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);n.push.apply(n,s)}return n})(Object(t)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(t,e))}),a))},[s,n])]}({queryString:n,groupId:s}),[x,j]=function({groupId:e}){let a=e?`docusaurus.tab.${e}`:null,[n,s]=(0,u.Dv)(a);return[n,(0,t.useCallback)(e=>{a&&s.set(e)},[a,s])]}({groupId:s}),f=(()=>{let e=null!=m?m:x;return b({value:e,tabValues:r})?e:null})();return(0,o.A)(()=>{f&&p(f)},[f]),{selectedValue:l,selectValue:(0,t.useCallback)(e=>{if(!b({value:e,tabValues:r}))throw Error(`Can't select invalid tab value=${e}`);p(e),g(e),j(e)},[g,j,r]),tabValues:r}}(e);return(0,s.jsxs)("div",{className:(0,r.A)("tabs-container","tabList_Qoir"),children:[(0,s.jsx)(x,m({},a,e)),(0,s.jsx)(j,m({},a,e))]})}function v(e){let a=(0,p.A)();return(0,s.jsx)(f,g(m({},e),{children:h(e.children)}),String(a))}},70361:(e,a,n)=>{n.d(a,{A:()=>i});var s=n(62540);n(63696);var t=n(11750);let r="dot_giz1",l="bar_rrRL";function i({children:e,minHeight:a,url:n="http://localhost:3000",style:i,bodyStyle:o}){var c,d;return(0,s.jsxs)("div",{className:"browserWindow_my1Q",style:(c=function(e){for(var a=1;a<arguments.length;a++){var n=null!=arguments[a]?arguments[a]:{},s=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),s.forEach(function(a){var s;s=n[a],a in e?Object.defineProperty(e,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[a]=s})}return e}({},i),d=d={minHeight:a},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(d)):(function(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);n.push.apply(n,s)}return n})(Object(d)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(d,e))}),c),children:[(0,s.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,s.jsxs)("div",{className:"buttons_uHc7",children:[(0,s.jsx)("span",{className:r,style:{background:"#f25f58"}}),(0,s.jsx)("span",{className:r,style:{background:"#fbbe3c"}}),(0,s.jsx)("span",{className:r,style:{background:"#58cb42"}})]}),(0,s.jsx)("div",{className:(0,t.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:n}),(0,s.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:l}),(0,s.jsx)("span",{className:l}),(0,s.jsx)("span",{className:l})]})})]}),(0,s.jsx)("div",{className:"browserWindowBody_Idgs",style:o,children:e})]})}},70367:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>u,contentTitle:()=>d,default:()=>p,frontMatter:()=>c,metadata:()=>s,toc:()=>h});let s=JSON.parse('{"id":"guides/markdown-features/tabs","title":"Tabs","description":"Using tabs inside Docusaurus Markdown","source":"@site/docs/guides/markdown-features/markdown-features-tabs.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/tabs","permalink":"/docs/markdown-features/tabs","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-tabs.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"tabs","description":"Using tabs inside Docusaurus Markdown","slug":"/markdown-features/tabs"},"sidebar":"docs","previous":{"title":"MDX and React","permalink":"/docs/markdown-features/react"},"next":{"title":"Code blocks","permalink":"/docs/markdown-features/code-blocks"}}');var t=n(62540),r=n(43023),l=n(70361),i=n(27446),o=n(15995);let c={id:"tabs",description:"Using tabs inside Docusaurus Markdown",slug:"/markdown-features/tabs"},d="Tabs",u={},h=[{value:"Displaying a default tab",id:"displaying-a-default-tab",level:2},{value:"Syncing tab choices",id:"syncing-tab-choices",level:2},{value:"Customizing tabs",id:"customizing-tabs",level:2},{value:"Customizing tab headings",id:"customizing-tab-headings",level:3},{value:"Query string",id:"query-string",level:2}];function b(e){let a={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",p:"p",pre:"pre",...(0,r.R)(),...e.components},{Details:n}=a;return n||function(e,a){throw Error("Expected "+(a?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(a.header,{children:(0,t.jsx)(a.h1,{id:"tabs",children:"Tabs"})}),"\n","\n",(0,t.jsxs)(a.p,{children:["Docusaurus provides the ",(0,t.jsx)(a.code,{children:"<Tabs>"})," component that you can use in Markdown thanks to ",(0,t.jsx)(a.a,{href:"/docs/markdown-features/react",children:"MDX"}),":"]}),"\n","\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-jsx",children:'import Tabs from \'@theme/Tabs\';\nimport TabItem from \'@theme/TabItem\';\n\n<Tabs>\n <TabItem value="apple" label="Apple" default>\n This is an apple \u{1F34E}\n </TabItem>\n <TabItem value="orange" label="Orange">\n This is an orange \u{1F34A}\n </TabItem>\n <TabItem value="banana" label="Banana">\n This is a banana \u{1F34C}\n </TabItem>\n</Tabs>\n'})}),"\n",(0,t.jsx)(l.A,{children:(0,t.jsxs)(i.A,{children:[(0,t.jsx)(o.A,{value:"apple",label:"Apple",children:"This is an apple \u{1F34E}"}),(0,t.jsx)(o.A,{value:"orange",label:"Orange",children:"This is an orange \u{1F34A}"}),(0,t.jsx)(o.A,{value:"banana",label:"Banana",children:"This is a banana \u{1F34C}"})]})}),"\n",(0,t.jsx)(a.hr,{}),"\n",(0,t.jsxs)(a.p,{children:["It is also possible to provide ",(0,t.jsx)(a.code,{children:"values"})," and ",(0,t.jsx)(a.code,{children:"defaultValue"})," props to ",(0,t.jsx)(a.code,{children:"Tabs"}),":"]}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-jsx",children:"<Tabs\n defaultValue=\"apple\"\n values={[\n {label: 'Apple', value: 'apple'},\n {label: 'Orange', value: 'orange'},\n {label: 'Banana', value: 'banana'},\n ]}>\n <TabItem value=\"apple\">This is an apple \u{1F34E}</TabItem>\n <TabItem value=\"orange\">This is an orange \u{1F34A}</TabItem>\n <TabItem value=\"banana\">This is a banana \u{1F34C}</TabItem>\n</Tabs>\n"})}),"\n",(0,t.jsx)(l.A,{children:(0,t.jsxs)(i.A,{defaultValue:"apple",values:[{label:"Apple",value:"apple"},{label:"Orange",value:"orange"},{label:"Banana",value:"banana"}],children:[(0,t.jsx)(o.A,{value:"apple",children:"This is an apple \u{1F34E}"}),(0,t.jsx)(o.A,{value:"orange",children:"This is an orange \u{1F34A}"}),(0,t.jsx)(o.A,{value:"banana",children:"This is a banana \u{1F34C}"})]})}),"\n",(0,t.jsxs)(n,{children:[(0,t.jsxs)("summary",{children:[(0,t.jsx)("code",{children:"Tabs"})," props take precedence over the ",(0,t.jsx)("code",{children:"TabItem"})," props:"]}),(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-jsx",children:'<Tabs\n defaultValue="apple"\n values={[\n {label: \'Apple 1\', value: \'apple\'},\n {label: \'Orange 1\', value: \'orange\'},\n {label: \'Banana 1\', value: \'banana\'},\n ]}>\n <TabItem value="apple" label="Apple 2">\n This is an apple \u{1F34E}\n </TabItem>\n <TabItem value="orange" label="Orange 2">\n This is an orange \u{1F34A}\n </TabItem>\n <TabItem value="banana" label="Banana 2" default>\n This is a banana \u{1F34C}\n </TabItem>\n</Tabs>\n'})}),(0,t.jsx)(l.A,{children:(0,t.jsxs)(i.A,{defaultValue:"apple",values:[{label:"Apple 1",value:"apple"},{label:"Orange 1",value:"orange"},{label:"Banana 1",value:"banana"}],children:[(0,t.jsx)(o.A,{value:"apple",label:"Apple 2",children:"This is an apple \u{1F34E}"}),(0,t.jsx)(o.A,{value:"orange",label:"Orange 2",children:"This is an orange \u{1F34A}"}),(0,t.jsx)(o.A,{value:"banana",label:"Banana 2",default:!0,children:"This is a banana \u{1F34C}"})]})})]}),"\n",(0,t.jsxs)(a.admonition,{type:"tip",children:[(0,t.jsx)(a.p,{children:"By default, all tabs are rendered eagerly during the build process, and search engines can index hidden tabs."}),(0,t.jsxs)(a.p,{children:["It is possible to only render the default tab with ",(0,t.jsx)(a.code,{children:"<Tabs lazy />"}),"."]})]}),"\n",(0,t.jsx)(a.h2,{id:"displaying-a-default-tab",children:"Displaying a default tab"}),"\n",(0,t.jsxs)(a.p,{children:["The first tab is displayed by default, and to override this behavior, you can specify a default tab by adding ",(0,t.jsx)(a.code,{children:"default"})," to one of the tab items. You can also set the ",(0,t.jsx)(a.code,{children:"defaultValue"})," prop of the ",(0,t.jsx)(a.code,{children:"Tabs"})," component to the label value of your choice. For example, in the example above, either setting ",(0,t.jsx)(a.code,{children:"default"})," for the ",(0,t.jsx)(a.code,{children:'value="apple"'})," tab or setting ",(0,t.jsx)(a.code,{children:'defaultValue="apple"'}),' for the tabs forces the "Apple" tab to be open by default.']}),"\n",(0,t.jsxs)(a.p,{children:["Docusaurus will throw an error if a ",(0,t.jsx)(a.code,{children:"defaultValue"})," is provided for the ",(0,t.jsx)(a.code,{children:"Tabs"})," but it refers to a non-existing value. If you want none of the tabs to be shown by default, use ",(0,t.jsx)(a.code,{children:"defaultValue={null}"}),"."]}),"\n",(0,t.jsx)(a.h2,{id:"syncing-tab-choices",children:"Syncing tab choices"}),"\n",(0,t.jsxs)(a.p,{children:["You may want choices of the same kind of tabs to sync with each other. For example, you might want to provide different instructions for users on Windows vs users on macOS, and you want to change all OS-specific instructions tabs in one click. To achieve that, you can give all related tabs the same ",(0,t.jsx)(a.code,{children:"groupId"})," prop. Note that doing this will persist the choice in ",(0,t.jsx)(a.code,{children:"localStorage"})," and all ",(0,t.jsx)(a.code,{children:"<Tab>"})," instances with the same ",(0,t.jsx)(a.code,{children:"groupId"})," will update automatically when the value of one of them is changed. Note that group IDs are globally namespaced."]}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-jsx",children:'// highlight-next-line\n<Tabs groupId="operating-systems">\n <TabItem value="win" label="Windows">Use Ctrl + C to copy.</TabItem>\n <TabItem value="mac" label="macOS">Use Command + C to copy.</TabItem>\n</Tabs>\n\n// highlight-next-line\n<Tabs groupId="operating-systems">\n <TabItem value="win" label="Windows">Use Ctrl + V to paste.</TabItem>\n <TabItem value="mac" label="macOS">Use Command + V to paste.</TabItem>\n</Tabs>\n'})}),"\n",(0,t.jsxs)(l.A,{children:[(0,t.jsxs)(i.A,{groupId:"operating-systems",children:[(0,t.jsx)(o.A,{value:"win",label:"Windows",children:"Use Ctrl + C to copy."}),(0,t.jsx)(o.A,{value:"mac",label:"macOS",children:"Use Command + C to copy."})]}),(0,t.jsxs)(i.A,{groupId:"operating-systems",children:[(0,t.jsx)(o.A,{value:"win",label:"Windows",children:"Use Ctrl + V to paste."}),(0,t.jsx)(o.A,{value:"mac",label:"macOS",children:"Use Command + V to paste."})]})]}),"\n",(0,t.jsxs)(a.p,{children:["For all tab groups that have the same ",(0,t.jsx)(a.code,{children:"groupId"}),", the possible values do not need to be the same. If one tab group is chosen a value that does not exist in another tab group with the same ",(0,t.jsx)(a.code,{children:"groupId"}),", the tab group with the missing value won't change its tab. You can see that from the following example. Try to select Linux, and the above tab groups don't change."]}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-jsx",children:'<Tabs groupId="operating-systems">\n <TabItem value="win" label="Windows">\n I am Windows.\n </TabItem>\n <TabItem value="mac" label="macOS">\n I am macOS.\n </TabItem>\n <TabItem value="linux" label="Linux">\n I am Linux.\n </TabItem>\n</Tabs>\n'})}),"\n",(0,t.jsx)(l.A,{children:(0,t.jsxs)(i.A,{groupId:"operating-systems",children:[(0,t.jsx)(o.A,{value:"win",label:"Windows",children:"I am Windows."}),(0,t.jsx)(o.A,{value:"mac",label:"macOS",children:"I am macOS."}),(0,t.jsx)(o.A,{value:"linux",label:"Linux",children:"I am Linux."})]})}),"\n",(0,t.jsx)(a.hr,{}),"\n",(0,t.jsx)(a.p,{children:"Tab choices with different group IDs will not interfere with each other:"}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-jsx",children:'// highlight-next-line\n<Tabs groupId="operating-systems">\n <TabItem value="win" label="Windows">Windows in windows.</TabItem>\n <TabItem value="mac" label="macOS">macOS is macOS.</TabItem>\n</Tabs>\n\n// highlight-next-line\n<Tabs groupId="non-mac-operating-systems">\n <TabItem value="win" label="Windows">Windows is windows.</TabItem>\n <TabItem value="unix" label="Unix">Unix is unix.</TabItem>\n</Tabs>\n'})}),"\n",(0,t.jsxs)(l.A,{children:[(0,t.jsxs)(i.A,{groupId:"operating-systems",children:[(0,t.jsx)(o.A,{value:"win",label:"Windows",children:"Windows in windows."}),(0,t.jsx)(o.A,{value:"mac",label:"macOS",children:"macOS is macOS."})]}),(0,t.jsxs)(i.A,{groupId:"non-mac-operating-systems",children:[(0,t.jsx)(o.A,{value:"win",label:"Windows",children:"Windows is windows."}),(0,t.jsx)(o.A,{value:"unix",label:"Unix",children:"Unix is unix."})]})]}),"\n",(0,t.jsx)(a.h2,{id:"customizing-tabs",children:"Customizing tabs"}),"\n",(0,t.jsxs)(a.p,{children:["You might want to customize the appearance of a certain set of tabs. You can pass the string in ",(0,t.jsx)(a.code,{children:"className"})," prop, and the specified CSS class will be added to the ",(0,t.jsx)(a.code,{children:"Tabs"})," component:"]}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-jsx",children:'// highlight-next-line\n<Tabs className="unique-tabs">\n <TabItem value="Apple">This is an apple \u{1F34E}</TabItem>\n <TabItem value="Orange">This is an orange \u{1F34A}</TabItem>\n <TabItem value="Banana">This is a banana \u{1F34C}</TabItem>\n</Tabs>\n'})}),"\n",(0,t.jsx)(l.A,{children:(0,t.jsxs)(i.A,{className:"unique-tabs",children:[(0,t.jsx)(o.A,{value:"Apple",children:"This is an apple \u{1F34E}"}),(0,t.jsx)(o.A,{value:"Orange",children:"This is an orange \u{1F34A}"}),(0,t.jsx)(o.A,{value:"Banana",children:"This is a banana \u{1F34C}"})]})}),"\n",(0,t.jsx)(a.h3,{id:"customizing-tab-headings",children:"Customizing tab headings"}),"\n",(0,t.jsxs)(a.p,{children:["You can also customize each tab heading independently by using the ",(0,t.jsx)(a.code,{children:"attributes"})," field. The extra props can be passed to the headings either through the ",(0,t.jsx)(a.code,{children:"values"})," prop in ",(0,t.jsx)(a.code,{children:"Tabs"}),", or props of each ",(0,t.jsx)(a.code,{children:"TabItem"}),"\u2014in the same way as you declare ",(0,t.jsx)(a.code,{children:"label"}),"."]}),"\n","\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-jsx",metastring:'title="some-doc.mdx"',children:'import styles from \'./styles.module.css\';\n\n<Tabs>\n <TabItem value="apple" label="Apple" attributes={{className: styles.red}}>\n This is an apple \u{1F34E}\n </TabItem>\n <TabItem value="orange" label="Orange" attributes={{className: styles.orange}}>\n This is an orange \u{1F34A}\n </TabItem>\n <TabItem value="banana" label="Banana" attributes={{className: styles.yellow}}>\n This is a banana \u{1F34C}\n </TabItem>\n</Tabs>\n'})}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-css",metastring:'title="styles.module.css"',children:".red {\n color: red;\n}\n.red[aria-selected='true'] {\n border-bottom-color: red;\n}\n\n.orange {\n color: orange;\n}\n.orange[aria-selected='true'] {\n border-bottom-color: orange;\n}\n\n.yellow {\n color: yellow;\n}\n.yellow[aria-selected='true'] {\n border-bottom-color: yellow;\n}\n"})}),"\n",(0,t.jsx)(l.A,{children:(0,t.jsxs)(i.A,{children:[(0,t.jsx)(o.A,{value:"apple",label:"Apple",attributes:{className:"red_FE5X"},children:(0,t.jsx)(a.p,{children:"This is an apple \u{1F34E}"})}),(0,t.jsx)(o.A,{value:"orange",label:"Orange",attributes:{className:"orange_kp8w"},children:(0,t.jsx)(a.p,{children:"This is an orange \u{1F34A}"})}),(0,t.jsx)(o.A,{value:"banana",label:"Banana",attributes:{className:"yellow_uGry"},children:(0,t.jsx)(a.p,{children:"This is a banana \u{1F34C}"})})]})}),"\n",(0,t.jsxs)(a.admonition,{type:"tip",children:[(0,t.jsxs)(a.p,{children:[(0,t.jsx)(a.code,{children:"className"})," would be merged with other default class names. You may also use a custom ",(0,t.jsx)(a.code,{children:"data-value"})," field (",(0,t.jsx)(a.code,{children:"{'data-value': 'apple'}"}),") paired with CSS attribute selectors:"]}),(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-css",metastring:'title="styles.module.css"',children:"li[role='tab'][data-value='apple'] {\n color: red;\n}\n"})})]}),"\n",(0,t.jsx)(a.h2,{id:"query-string",children:"Query string"}),"\n",(0,t.jsx)(a.p,{children:"It is possible to persist the selected tab into the url search parameters. This enables you to share a link to a page which pre-selects the tab - linking from your Android app to documentation with the Android tabs pre-selected. This feature does not provide an anchor link - the browser will not scroll to the tab."}),"\n",(0,t.jsxs)(a.p,{children:["Use the ",(0,t.jsx)(a.code,{children:"queryString"})," prop to enable this feature and define the search param name to use."]}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-tsx",children:'// highlight-next-line\n<Tabs queryString="current-os">\n <TabItem value="android" label="Android">\n Android\n </TabItem>\n <TabItem value="ios" label="iOS">\n iOS\n </TabItem>\n</Tabs>\n'})}),"\n",(0,t.jsx)(l.A,{children:(0,t.jsxs)(i.A,{queryString:"current-os",children:[(0,t.jsx)(o.A,{value:"android",label:"Android",children:"Android"}),(0,t.jsx)(o.A,{value:"ios",label:"iOS",children:"iOS"})]})}),"\n",(0,t.jsxs)(a.p,{children:["As soon as a tab is clicked, a search parameter is added at the end of the url: ",(0,t.jsx)(a.code,{children:"?current-os=android"})," or ",(0,t.jsx)(a.code,{children:"?current-os=ios"}),"."]}),"\n",(0,t.jsxs)(a.admonition,{type:"tip",children:[(0,t.jsxs)(a.p,{children:[(0,t.jsx)(a.code,{children:"queryString"})," can be used together with ",(0,t.jsx)(a.code,{children:"groupId"}),"."]}),(0,t.jsxs)(a.p,{children:["For convenience, when the ",(0,t.jsx)(a.code,{children:"queryString"})," prop is ",(0,t.jsx)(a.code,{children:"true"}),", the ",(0,t.jsx)(a.code,{children:"groupId"})," value will be used as a fallback."]}),(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-tsx",children:'// highlight-next-line\n<Tabs groupId="current-os" queryString>\n <TabItem value="android" label="Android">\n Android\n </TabItem>\n <TabItem value="ios" label="iOS">\n iOS\n </TabItem>\n</Tabs>\n'})}),(0,t.jsx)(l.A,{children:(0,t.jsxs)(i.A,{queryString:!0,groupId:"current-os",children:[(0,t.jsx)(o.A,{value:"android",label:"Android",children:"Android"}),(0,t.jsx)(o.A,{value:"ios",label:"iOS",children:"iOS"})]})}),(0,t.jsxs)(a.p,{children:["When the page loads, the tab query string choice will be restored in priority over the ",(0,t.jsx)(a.code,{children:"groupId"})," choice (using ",(0,t.jsx)(a.code,{children:"localStorage"}),")."]})]})]})}function p(e={}){let{wrapper:a}={...(0,r.R)(),...e.components};return a?(0,t.jsx)(a,{...e,children:(0,t.jsx)(b,{...e})}):b(e)}},43023:(e,a,n)=>{n.d(a,{R:()=>l,x:()=>i});var s=n(63696);let t={},r=s.createContext(t);function l(e){let a=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(a):{...a,...e}},[a,e])}function i(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),s.createElement(r.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/209ff87f.e49cde6b.js b/assets/js/209ff87f.e49cde6b.js deleted file mode 100644 index 052156ea7b..0000000000 --- a/assets/js/209ff87f.e49cde6b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[18145],{15995:(e,a,n)=>{n.d(a,{A:()=>r});var s=n(62540);n(63696);var t=n(11750);function r({children:e,hidden:a,className:n}){return(0,s.jsx)("div",{role:"tabpanel",className:(0,t.A)("tabItem_pnkT",n),hidden:a,children:e})}},27446:(e,a,n)=>{n.d(a,{A:()=>v});var s=n(62540),t=n(63696),r=n(11750),l=n(7846),i=n(49519),o=n(96439),c=n(19739),d=n(66904),u=n(79244);function h(e){var a,n;return null!==(n=null===(a=t.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,t.isValidElement)(e)&&function(e){let{props:a}=e;return!!a&&"object"==typeof a&&"value"in a}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===a?void 0:a.filter(Boolean))&&void 0!==n?n:[]}function b({value:e,tabValues:a}){return a.some(a=>a.value===e)}var p=n(10709);function m(e){for(var a=1;a<arguments.length;a++){var n=null!=arguments[a]?arguments[a]:{},s=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),s.forEach(function(a){var s;s=n[a],a in e?Object.defineProperty(e,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[a]=s})}return e}function g(e,a){return a=null!=a?a:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):(function(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);n.push.apply(n,s)}return n})(Object(a)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(a,n))}),e}function x({className:e,block:a,selectedValue:n,selectValue:t,tabValues:i}){let o=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.a_)(),d=e=>{let a=e.currentTarget,s=i[o.indexOf(a)].value;s!==n&&(c(a),t(s))},u=e=>{var a,n;let s=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let n=o.indexOf(e.currentTarget)+1;s=null!==(a=o[n])&&void 0!==a?a:o[0];break}case"ArrowLeft":{let a=o.indexOf(e.currentTarget)-1;s=null!==(n=o[a])&&void 0!==n?n:o[o.length-1]}}null==s||s.focus()};return(0,s.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":a},e),children:i.map(({value:e,label:a,attributes:t})=>(0,s.jsx)("li",g(m({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>o.push(e),onKeyDown:u,onClick:d},t),{className:(0,r.A)("tabs__item","tabItem_AQgk",null==t?void 0:t.className,{"tabs__item--active":n===e}),children:null!=a?a:e}),e))})}function j({lazy:e,children:a,selectedValue:n}){let l=(Array.isArray(a)?a:[a]).filter(Boolean);if(e){let e=l.find(e=>e.props.value===n);return e?(0,t.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,s.jsx)("div",{className:"margin-top--md",children:l.map((e,a)=>(0,t.cloneElement)(e,{key:a,hidden:e.props.value!==n}))})}function f(e){let a=function(e){let{defaultValue:a,queryString:n=!1,groupId:s}=e,r=function(e){let{values:a,children:n}=e;return(0,t.useMemo)(()=>{let e=null!=a?a:h(n).map(({props:{value:e,label:a,attributes:n,default:s}})=>({value:e,label:a,attributes:n,default:s}));return!function(e){let a=(0,d.XI)(e,(e,a)=>e.value===a.value);if(a.length>0)throw Error(`Docusaurus error: Duplicate values "${a.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[a,n])}(e),[l,p]=(0,t.useState)(()=>(function({defaultValue:e,tabValues:a}){var n;if(0===a.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!b({value:e,tabValues:a}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${a.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let s=null!==(n=a.find(e=>e.default))&&void 0!==n?n:a[0];if(!s)throw Error("Unexpected error: 0 tabValues");return s.value})({defaultValue:a,tabValues:r})),[m,g]=function({queryString:e=!1,groupId:a}){let n=(0,i.W6)(),s=function({queryString:e=!1,groupId:a}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!a)throw Error('Docusaurus error: The <Tabs> 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 null!=a?a:null}({queryString:e,groupId:a});return[(0,c.aZ)(s),(0,t.useCallback)(e=>{var a,t;if(!s)return;let r=new URLSearchParams(n.location.search);r.set(s,e),n.replace((a=function(e){for(var a=1;a<arguments.length;a++){var n=null!=arguments[a]?arguments[a]:{},s=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),s.forEach(function(a){var s;s=n[a],a in e?Object.defineProperty(e,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[a]=s})}return e}({},n.location),t=t={search:r.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(t)):(function(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);n.push.apply(n,s)}return n})(Object(t)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(t,e))}),a))},[s,n])]}({queryString:n,groupId:s}),[x,j]=function({groupId:e}){let a=e?`docusaurus.tab.${e}`:null,[n,s]=(0,u.Dv)(a);return[n,(0,t.useCallback)(e=>{a&&s.set(e)},[a,s])]}({groupId:s}),f=(()=>{let e=null!=m?m:x;return b({value:e,tabValues:r})?e:null})();return(0,o.A)(()=>{f&&p(f)},[f]),{selectedValue:l,selectValue:(0,t.useCallback)(e=>{if(!b({value:e,tabValues:r}))throw Error(`Can't select invalid tab value=${e}`);p(e),g(e),j(e)},[g,j,r]),tabValues:r}}(e);return(0,s.jsxs)("div",{className:(0,r.A)("tabs-container","tabList_Qoir"),children:[(0,s.jsx)(x,m({},a,e)),(0,s.jsx)(j,m({},a,e))]})}function v(e){let a=(0,p.A)();return(0,s.jsx)(f,g(m({},e),{children:h(e.children)}),String(a))}},70361:(e,a,n)=>{n.d(a,{A:()=>i});var s=n(62540);n(63696);var t=n(11750);let r="dot_giz1",l="bar_rrRL";function i({children:e,minHeight:a,url:n="http://localhost:3000",style:i,bodyStyle:o}){var c,d;return(0,s.jsxs)("div",{className:"browserWindow_my1Q",style:(c=function(e){for(var a=1;a<arguments.length;a++){var n=null!=arguments[a]?arguments[a]:{},s=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),s.forEach(function(a){var s;s=n[a],a in e?Object.defineProperty(e,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[a]=s})}return e}({},i),d=d={minHeight:a},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(d)):(function(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);n.push.apply(n,s)}return n})(Object(d)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(d,e))}),c),children:[(0,s.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,s.jsxs)("div",{className:"buttons_uHc7",children:[(0,s.jsx)("span",{className:r,style:{background:"#f25f58"}}),(0,s.jsx)("span",{className:r,style:{background:"#fbbe3c"}}),(0,s.jsx)("span",{className:r,style:{background:"#58cb42"}})]}),(0,s.jsx)("div",{className:(0,t.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:n}),(0,s.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:l}),(0,s.jsx)("span",{className:l}),(0,s.jsx)("span",{className:l})]})})]}),(0,s.jsx)("div",{className:"browserWindowBody_Idgs",style:o,children:e})]})}},70367:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>u,contentTitle:()=>d,default:()=>p,frontMatter:()=>c,metadata:()=>s,toc:()=>h});let s=JSON.parse('{"id":"guides/markdown-features/tabs","title":"Tabs","description":"Using tabs inside Docusaurus Markdown","source":"@site/docs/guides/markdown-features/markdown-features-tabs.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/tabs","permalink":"/docs/markdown-features/tabs","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-tabs.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"tabs","description":"Using tabs inside Docusaurus Markdown","slug":"/markdown-features/tabs"},"sidebar":"docs","previous":{"title":"MDX and React","permalink":"/docs/markdown-features/react"},"next":{"title":"Code blocks","permalink":"/docs/markdown-features/code-blocks"}}');var t=n(62540),r=n(43023),l=n(70361),i=n(27446),o=n(15995);let c={id:"tabs",description:"Using tabs inside Docusaurus Markdown",slug:"/markdown-features/tabs"},d="Tabs",u={},h=[{value:"Displaying a default tab",id:"displaying-a-default-tab",level:2},{value:"Syncing tab choices",id:"syncing-tab-choices",level:2},{value:"Customizing tabs",id:"customizing-tabs",level:2},{value:"Customizing tab headings",id:"customizing-tab-headings",level:3},{value:"Query string",id:"query-string",level:2}];function b(e){let a={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",p:"p",pre:"pre",...(0,r.R)(),...e.components},{Details:n}=a;return n||function(e,a){throw Error("Expected "+(a?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(a.header,{children:(0,t.jsx)(a.h1,{id:"tabs",children:"Tabs"})}),"\n","\n",(0,t.jsxs)(a.p,{children:["Docusaurus provides the ",(0,t.jsx)(a.code,{children:"<Tabs>"})," component that you can use in Markdown thanks to ",(0,t.jsx)(a.a,{href:"/docs/markdown-features/react",children:"MDX"}),":"]}),"\n","\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-jsx",children:'import Tabs from \'@theme/Tabs\';\nimport TabItem from \'@theme/TabItem\';\n\n<Tabs>\n <TabItem value="apple" label="Apple" default>\n This is an apple \u{1F34E}\n </TabItem>\n <TabItem value="orange" label="Orange">\n This is an orange \u{1F34A}\n </TabItem>\n <TabItem value="banana" label="Banana">\n This is a banana \u{1F34C}\n </TabItem>\n</Tabs>\n'})}),"\n",(0,t.jsx)(l.A,{children:(0,t.jsxs)(i.A,{children:[(0,t.jsx)(o.A,{value:"apple",label:"Apple",children:"This is an apple \u{1F34E}"}),(0,t.jsx)(o.A,{value:"orange",label:"Orange",children:"This is an orange \u{1F34A}"}),(0,t.jsx)(o.A,{value:"banana",label:"Banana",children:"This is a banana \u{1F34C}"})]})}),"\n",(0,t.jsx)(a.hr,{}),"\n",(0,t.jsxs)(a.p,{children:["It is also possible to provide ",(0,t.jsx)(a.code,{children:"values"})," and ",(0,t.jsx)(a.code,{children:"defaultValue"})," props to ",(0,t.jsx)(a.code,{children:"Tabs"}),":"]}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-jsx",children:"<Tabs\n defaultValue=\"apple\"\n values={[\n {label: 'Apple', value: 'apple'},\n {label: 'Orange', value: 'orange'},\n {label: 'Banana', value: 'banana'},\n ]}>\n <TabItem value=\"apple\">This is an apple \u{1F34E}</TabItem>\n <TabItem value=\"orange\">This is an orange \u{1F34A}</TabItem>\n <TabItem value=\"banana\">This is a banana \u{1F34C}</TabItem>\n</Tabs>\n"})}),"\n",(0,t.jsx)(l.A,{children:(0,t.jsxs)(i.A,{defaultValue:"apple",values:[{label:"Apple",value:"apple"},{label:"Orange",value:"orange"},{label:"Banana",value:"banana"}],children:[(0,t.jsx)(o.A,{value:"apple",children:"This is an apple \u{1F34E}"}),(0,t.jsx)(o.A,{value:"orange",children:"This is an orange \u{1F34A}"}),(0,t.jsx)(o.A,{value:"banana",children:"This is a banana \u{1F34C}"})]})}),"\n",(0,t.jsxs)(n,{children:[(0,t.jsxs)("summary",{children:[(0,t.jsx)("code",{children:"Tabs"})," props take precedence over the ",(0,t.jsx)("code",{children:"TabItem"})," props:"]}),(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-jsx",children:'<Tabs\n defaultValue="apple"\n values={[\n {label: \'Apple 1\', value: \'apple\'},\n {label: \'Orange 1\', value: \'orange\'},\n {label: \'Banana 1\', value: \'banana\'},\n ]}>\n <TabItem value="apple" label="Apple 2">\n This is an apple \u{1F34E}\n </TabItem>\n <TabItem value="orange" label="Orange 2">\n This is an orange \u{1F34A}\n </TabItem>\n <TabItem value="banana" label="Banana 2" default>\n This is a banana \u{1F34C}\n </TabItem>\n</Tabs>\n'})}),(0,t.jsx)(l.A,{children:(0,t.jsxs)(i.A,{defaultValue:"apple",values:[{label:"Apple 1",value:"apple"},{label:"Orange 1",value:"orange"},{label:"Banana 1",value:"banana"}],children:[(0,t.jsx)(o.A,{value:"apple",label:"Apple 2",children:"This is an apple \u{1F34E}"}),(0,t.jsx)(o.A,{value:"orange",label:"Orange 2",children:"This is an orange \u{1F34A}"}),(0,t.jsx)(o.A,{value:"banana",label:"Banana 2",default:!0,children:"This is a banana \u{1F34C}"})]})})]}),"\n",(0,t.jsxs)(a.admonition,{type:"tip",children:[(0,t.jsx)(a.p,{children:"By default, all tabs are rendered eagerly during the build process, and search engines can index hidden tabs."}),(0,t.jsxs)(a.p,{children:["It is possible to only render the default tab with ",(0,t.jsx)(a.code,{children:"<Tabs lazy />"}),"."]})]}),"\n",(0,t.jsx)(a.h2,{id:"displaying-a-default-tab",children:"Displaying a default tab"}),"\n",(0,t.jsxs)(a.p,{children:["The first tab is displayed by default, and to override this behavior, you can specify a default tab by adding ",(0,t.jsx)(a.code,{children:"default"})," to one of the tab items. You can also set the ",(0,t.jsx)(a.code,{children:"defaultValue"})," prop of the ",(0,t.jsx)(a.code,{children:"Tabs"})," component to the label value of your choice. For example, in the example above, either setting ",(0,t.jsx)(a.code,{children:"default"})," for the ",(0,t.jsx)(a.code,{children:'value="apple"'})," tab or setting ",(0,t.jsx)(a.code,{children:'defaultValue="apple"'}),' for the tabs forces the "Apple" tab to be open by default.']}),"\n",(0,t.jsxs)(a.p,{children:["Docusaurus will throw an error if a ",(0,t.jsx)(a.code,{children:"defaultValue"})," is provided for the ",(0,t.jsx)(a.code,{children:"Tabs"})," but it refers to a non-existing value. If you want none of the tabs to be shown by default, use ",(0,t.jsx)(a.code,{children:"defaultValue={null}"}),"."]}),"\n",(0,t.jsx)(a.h2,{id:"syncing-tab-choices",children:"Syncing tab choices"}),"\n",(0,t.jsxs)(a.p,{children:["You may want choices of the same kind of tabs to sync with each other. For example, you might want to provide different instructions for users on Windows vs users on macOS, and you want to change all OS-specific instructions tabs in one click. To achieve that, you can give all related tabs the same ",(0,t.jsx)(a.code,{children:"groupId"})," prop. Note that doing this will persist the choice in ",(0,t.jsx)(a.code,{children:"localStorage"})," and all ",(0,t.jsx)(a.code,{children:"<Tab>"})," instances with the same ",(0,t.jsx)(a.code,{children:"groupId"})," will update automatically when the value of one of them is changed. Note that group IDs are globally namespaced."]}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-jsx",children:'// highlight-next-line\n<Tabs groupId="operating-systems">\n <TabItem value="win" label="Windows">Use Ctrl + C to copy.</TabItem>\n <TabItem value="mac" label="macOS">Use Command + C to copy.</TabItem>\n</Tabs>\n\n// highlight-next-line\n<Tabs groupId="operating-systems">\n <TabItem value="win" label="Windows">Use Ctrl + V to paste.</TabItem>\n <TabItem value="mac" label="macOS">Use Command + V to paste.</TabItem>\n</Tabs>\n'})}),"\n",(0,t.jsxs)(l.A,{children:[(0,t.jsxs)(i.A,{groupId:"operating-systems",children:[(0,t.jsx)(o.A,{value:"win",label:"Windows",children:"Use Ctrl + C to copy."}),(0,t.jsx)(o.A,{value:"mac",label:"macOS",children:"Use Command + C to copy."})]}),(0,t.jsxs)(i.A,{groupId:"operating-systems",children:[(0,t.jsx)(o.A,{value:"win",label:"Windows",children:"Use Ctrl + V to paste."}),(0,t.jsx)(o.A,{value:"mac",label:"macOS",children:"Use Command + V to paste."})]})]}),"\n",(0,t.jsxs)(a.p,{children:["For all tab groups that have the same ",(0,t.jsx)(a.code,{children:"groupId"}),", the possible values do not need to be the same. If one tab group is chosen a value that does not exist in another tab group with the same ",(0,t.jsx)(a.code,{children:"groupId"}),", the tab group with the missing value won't change its tab. You can see that from the following example. Try to select Linux, and the above tab groups don't change."]}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-jsx",children:'<Tabs groupId="operating-systems">\n <TabItem value="win" label="Windows">\n I am Windows.\n </TabItem>\n <TabItem value="mac" label="macOS">\n I am macOS.\n </TabItem>\n <TabItem value="linux" label="Linux">\n I am Linux.\n </TabItem>\n</Tabs>\n'})}),"\n",(0,t.jsx)(l.A,{children:(0,t.jsxs)(i.A,{groupId:"operating-systems",children:[(0,t.jsx)(o.A,{value:"win",label:"Windows",children:"I am Windows."}),(0,t.jsx)(o.A,{value:"mac",label:"macOS",children:"I am macOS."}),(0,t.jsx)(o.A,{value:"linux",label:"Linux",children:"I am Linux."})]})}),"\n",(0,t.jsx)(a.hr,{}),"\n",(0,t.jsx)(a.p,{children:"Tab choices with different group IDs will not interfere with each other:"}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-jsx",children:'// highlight-next-line\n<Tabs groupId="operating-systems">\n <TabItem value="win" label="Windows">Windows in windows.</TabItem>\n <TabItem value="mac" label="macOS">macOS is macOS.</TabItem>\n</Tabs>\n\n// highlight-next-line\n<Tabs groupId="non-mac-operating-systems">\n <TabItem value="win" label="Windows">Windows is windows.</TabItem>\n <TabItem value="unix" label="Unix">Unix is unix.</TabItem>\n</Tabs>\n'})}),"\n",(0,t.jsxs)(l.A,{children:[(0,t.jsxs)(i.A,{groupId:"operating-systems",children:[(0,t.jsx)(o.A,{value:"win",label:"Windows",children:"Windows in windows."}),(0,t.jsx)(o.A,{value:"mac",label:"macOS",children:"macOS is macOS."})]}),(0,t.jsxs)(i.A,{groupId:"non-mac-operating-systems",children:[(0,t.jsx)(o.A,{value:"win",label:"Windows",children:"Windows is windows."}),(0,t.jsx)(o.A,{value:"unix",label:"Unix",children:"Unix is unix."})]})]}),"\n",(0,t.jsx)(a.h2,{id:"customizing-tabs",children:"Customizing tabs"}),"\n",(0,t.jsxs)(a.p,{children:["You might want to customize the appearance of a certain set of tabs. You can pass the string in ",(0,t.jsx)(a.code,{children:"className"})," prop, and the specified CSS class will be added to the ",(0,t.jsx)(a.code,{children:"Tabs"})," component:"]}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-jsx",children:'// highlight-next-line\n<Tabs className="unique-tabs">\n <TabItem value="Apple">This is an apple \u{1F34E}</TabItem>\n <TabItem value="Orange">This is an orange \u{1F34A}</TabItem>\n <TabItem value="Banana">This is a banana \u{1F34C}</TabItem>\n</Tabs>\n'})}),"\n",(0,t.jsx)(l.A,{children:(0,t.jsxs)(i.A,{className:"unique-tabs",children:[(0,t.jsx)(o.A,{value:"Apple",children:"This is an apple \u{1F34E}"}),(0,t.jsx)(o.A,{value:"Orange",children:"This is an orange \u{1F34A}"}),(0,t.jsx)(o.A,{value:"Banana",children:"This is a banana \u{1F34C}"})]})}),"\n",(0,t.jsx)(a.h3,{id:"customizing-tab-headings",children:"Customizing tab headings"}),"\n",(0,t.jsxs)(a.p,{children:["You can also customize each tab heading independently by using the ",(0,t.jsx)(a.code,{children:"attributes"})," field. The extra props can be passed to the headings either through the ",(0,t.jsx)(a.code,{children:"values"})," prop in ",(0,t.jsx)(a.code,{children:"Tabs"}),", or props of each ",(0,t.jsx)(a.code,{children:"TabItem"}),"\u2014in the same way as you declare ",(0,t.jsx)(a.code,{children:"label"}),"."]}),"\n","\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-jsx",metastring:'title="some-doc.mdx"',children:'import styles from \'./styles.module.css\';\n\n<Tabs>\n <TabItem value="apple" label="Apple" attributes={{className: styles.red}}>\n This is an apple \u{1F34E}\n </TabItem>\n <TabItem value="orange" label="Orange" attributes={{className: styles.orange}}>\n This is an orange \u{1F34A}\n </TabItem>\n <TabItem value="banana" label="Banana" attributes={{className: styles.yellow}}>\n This is a banana \u{1F34C}\n </TabItem>\n</Tabs>\n'})}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-css",metastring:'title="styles.module.css"',children:".red {\n color: red;\n}\n.red[aria-selected='true'] {\n border-bottom-color: red;\n}\n\n.orange {\n color: orange;\n}\n.orange[aria-selected='true'] {\n border-bottom-color: orange;\n}\n\n.yellow {\n color: yellow;\n}\n.yellow[aria-selected='true'] {\n border-bottom-color: yellow;\n}\n"})}),"\n",(0,t.jsx)(l.A,{children:(0,t.jsxs)(i.A,{children:[(0,t.jsx)(o.A,{value:"apple",label:"Apple",attributes:{className:"red_FE5X"},children:(0,t.jsx)(a.p,{children:"This is an apple \u{1F34E}"})}),(0,t.jsx)(o.A,{value:"orange",label:"Orange",attributes:{className:"orange_kp8w"},children:(0,t.jsx)(a.p,{children:"This is an orange \u{1F34A}"})}),(0,t.jsx)(o.A,{value:"banana",label:"Banana",attributes:{className:"yellow_uGry"},children:(0,t.jsx)(a.p,{children:"This is a banana \u{1F34C}"})})]})}),"\n",(0,t.jsxs)(a.admonition,{type:"tip",children:[(0,t.jsxs)(a.p,{children:[(0,t.jsx)(a.code,{children:"className"})," would be merged with other default class names. You may also use a custom ",(0,t.jsx)(a.code,{children:"data-value"})," field (",(0,t.jsx)(a.code,{children:"{'data-value': 'apple'}"}),") paired with CSS attribute selectors:"]}),(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-css",metastring:'title="styles.module.css"',children:"li[role='tab'][data-value='apple'] {\n color: red;\n}\n"})})]}),"\n",(0,t.jsx)(a.h2,{id:"query-string",children:"Query string"}),"\n",(0,t.jsx)(a.p,{children:"It is possible to persist the selected tab into the url search parameters. This enables you to share a link to a page which pre-selects the tab - linking from your Android app to documentation with the Android tabs pre-selected. This feature does not provide an anchor link - the browser will not scroll to the tab."}),"\n",(0,t.jsxs)(a.p,{children:["Use the ",(0,t.jsx)(a.code,{children:"queryString"})," prop to enable this feature and define the search param name to use."]}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-tsx",children:'// highlight-next-line\n<Tabs queryString="current-os">\n <TabItem value="android" label="Android">\n Android\n </TabItem>\n <TabItem value="ios" label="iOS">\n iOS\n </TabItem>\n</Tabs>\n'})}),"\n",(0,t.jsx)(l.A,{children:(0,t.jsxs)(i.A,{queryString:"current-os",children:[(0,t.jsx)(o.A,{value:"android",label:"Android",children:"Android"}),(0,t.jsx)(o.A,{value:"ios",label:"iOS",children:"iOS"})]})}),"\n",(0,t.jsxs)(a.p,{children:["As soon as a tab is clicked, a search parameter is added at the end of the url: ",(0,t.jsx)(a.code,{children:"?current-os=android"})," or ",(0,t.jsx)(a.code,{children:"?current-os=ios"}),"."]}),"\n",(0,t.jsxs)(a.admonition,{type:"tip",children:[(0,t.jsxs)(a.p,{children:[(0,t.jsx)(a.code,{children:"queryString"})," can be used together with ",(0,t.jsx)(a.code,{children:"groupId"}),"."]}),(0,t.jsxs)(a.p,{children:["For convenience, when the ",(0,t.jsx)(a.code,{children:"queryString"})," prop is ",(0,t.jsx)(a.code,{children:"true"}),", the ",(0,t.jsx)(a.code,{children:"groupId"})," value will be used as a fallback."]}),(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-tsx",children:'// highlight-next-line\n<Tabs groupId="current-os" queryString>\n <TabItem value="android" label="Android">\n Android\n </TabItem>\n <TabItem value="ios" label="iOS">\n iOS\n </TabItem>\n</Tabs>\n'})}),(0,t.jsx)(l.A,{children:(0,t.jsxs)(i.A,{queryString:!0,groupId:"current-os",children:[(0,t.jsx)(o.A,{value:"android",label:"Android",children:"Android"}),(0,t.jsx)(o.A,{value:"ios",label:"iOS",children:"iOS"})]})}),(0,t.jsxs)(a.p,{children:["When the page loads, the tab query string choice will be restored in priority over the ",(0,t.jsx)(a.code,{children:"groupId"})," choice (using ",(0,t.jsx)(a.code,{children:"localStorage"}),")."]})]})]})}function p(e={}){let{wrapper:a}={...(0,r.R)(),...e.components};return a?(0,t.jsx)(a,{...e,children:(0,t.jsx)(b,{...e})}):b(e)}},43023:(e,a,n)=>{n.d(a,{R:()=>l,x:()=>i});var s=n(63696);let t={},r=s.createContext(t);function l(e){let a=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(a):{...a,...e}},[a,e])}function i(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),s.createElement(r.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2172.ed7ef463.js b/assets/js/2172.ed7ef463.js new file mode 100644 index 0000000000..4372b81bb7 --- /dev/null +++ b/assets/js/2172.ed7ef463.js @@ -0,0 +1,36 @@ +(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2172],{88955:function(t,e,i){var r;r=function(t){var e,i;return e={658:t=>{t.exports=null!=Object.assign?Object.assign.bind(Object):function(t){for(var e=arguments.length,i=Array(e>1?e-1:0),r=1;r<e;r++)i[r-1]=arguments[r];return i.forEach(function(e){Object.keys(e).forEach(function(i){return t[i]=e[i]})}),t}},548:(t,e,i)=>{var r=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var i=[],r=!0,n=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(r=(a=s.next()).done)&&(i.push(a.value),!e||i.length!==e);r=!0);}catch(t){n=!0,o=t}finally{try{!r&&s.return&&s.return()}finally{if(n)throw o}}return i}(t,e);throw TypeError("Invalid attempt to destructure non-iterable instance")},n=i(140).layoutBase.LinkedList,o={};o.getTopMostNodes=function(t){for(var e={},i=0;i<t.length;i++)e[t[i].id()]=!0;return t.filter(function(t,i){"number"==typeof t&&(t=i);for(var r=t.parent()[0];null!=r;){if(e[r.id()])return!1;r=r.parent()[0]}return!0})},o.connectComponents=function(t,e,i,r){var o=new n,a=new Set,s=[],h=void 0,l=void 0,d=void 0,c=!1,g=1,u=[],f=[];do!function(){var r=t.collection();f.push(r);var n=i[0],p=t.collection();for(p.merge(n).merge(n.descendants().intersection(e)),s.push(n),p.forEach(function(t){o.push(t),a.add(t),r.merge(t)});0!=o.length;)!function(){n=o.shift();var l=t.collection();n.neighborhood().nodes().forEach(function(t){e.intersection(n.edgesWith(t)).length>0&&l.merge(t)});for(var d=0;d<l.length;d++){var c=l[d];null==(h=i.intersection(c.union(c.ancestors())))||a.has(h[0])||h.union(h.descendants()).forEach(function(t){o.push(t),a.add(t),r.merge(t),i.has(t)&&s.push(t)})}}();if(r.forEach(function(t){e.intersection(t.connectedEdges()).forEach(function(t){r.has(t.source())&&r.has(t.target())&&r.merge(t)})}),s.length==i.length&&(c=!0),!c||c&&g>1){d=(l=s[0]).connectedEdges().length,s.forEach(function(t){t.connectedEdges().length<d&&(d=t.connectedEdges().length,l=t)}),u.push(l.id());var v=t.collection();v.merge(s[0]),s.forEach(function(t){v.merge(t)}),s=[],i=i.difference(v),g++}}();while(!c)return r&&u.length>0&&r.set("dummy"+(r.size+1),u),f},o.relocateComponent=function(t,e,i){if(!i.fixedNodeConstraint){var n=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY;if("draft"==i.quality){var h=!0,l=!1,d=void 0;try{for(var c,g=e.nodeIndexes[Symbol.iterator]();!(h=(c=g.next()).done);h=!0){var u=c.value,f=r(u,2),p=f[0],v=f[1],y=i.cy.getElementById(p);if(y){var m=y.boundingBox(),E=e.xCoords[v]-m.w/2,N=e.xCoords[v]+m.w/2,T=e.yCoords[v]-m.h/2,A=e.yCoords[v]+m.h/2;E<n&&(n=E),N>o&&(o=N),T<a&&(a=T),A>s&&(s=A)}}}catch(t){l=!0,d=t}finally{try{!h&&g.return&&g.return()}finally{if(l)throw d}}var L=t.x-(o+n)/2,w=t.y-(s+a)/2;e.xCoords=e.xCoords.map(function(t){return t+L}),e.yCoords=e.yCoords.map(function(t){return t+w})}else{Object.keys(e).forEach(function(t){var i=e[t],r=i.getRect().x,h=i.getRect().x+i.getRect().width,l=i.getRect().y,d=i.getRect().y+i.getRect().height;r<n&&(n=r),h>o&&(o=h),l<a&&(a=l),d>s&&(s=d)});var I=t.x-(o+n)/2,_=t.y-(s+a)/2;Object.keys(e).forEach(function(t){var i=e[t];i.setCenter(i.getCenterX()+I,i.getCenterY()+_)})}}},o.calcBoundingBox=function(t,e,i,r){for(var n=Number.MAX_SAFE_INTEGER,o=Number.MIN_SAFE_INTEGER,a=Number.MAX_SAFE_INTEGER,s=Number.MIN_SAFE_INTEGER,h=void 0,l=void 0,d=void 0,c=void 0,g=t.descendants().not(":parent"),u=g.length,f=0;f<u;f++){var p=g[f];h=e[r.get(p.id())]-p.width()/2,l=e[r.get(p.id())]+p.width()/2,d=i[r.get(p.id())]-p.height()/2,c=i[r.get(p.id())]+p.height()/2,n>h&&(n=h),o<l&&(o=l),a>d&&(a=d),s<c&&(s=c)}var v={};return v.topLeftX=n,v.topLeftY=a,v.width=o-n,v.height=s-a,v},o.calcParentsWithoutChildren=function(t,e){var i=t.collection();return e.nodes(":parent").forEach(function(t){var e=!1;t.children().forEach(function(t){"none"!=t.css("display")&&(e=!0)}),e||i.merge(t)}),i},t.exports=o},816:(t,e,i)=>{var r=i(548),n=i(140).CoSELayout,o=i(140).CoSENode,a=i(140).layoutBase.PointD,s=i(140).layoutBase.DimensionD,h=i(140).layoutBase.LayoutConstants,l=i(140).layoutBase.FDLayoutConstants,d=i(140).CoSEConstants;t.exports={coseLayout:function(t,e){var i=t.cy,c=t.eles,g=c.nodes(),u=c.edges(),f=void 0,p=void 0,v=void 0,y={};t.randomize&&(f=e.nodeIndexes,p=e.xCoords,v=e.yCoords);var m=function(t){return"function"==typeof t},E=function(t,e){return m(t)?t(e):t},N=r.calcParentsWithoutChildren(i,c);null!=t.nestingFactor&&(d.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=l.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=t.nestingFactor),null!=t.gravity&&(d.DEFAULT_GRAVITY_STRENGTH=l.DEFAULT_GRAVITY_STRENGTH=t.gravity),null!=t.numIter&&(d.MAX_ITERATIONS=l.MAX_ITERATIONS=t.numIter),null!=t.gravityRange&&(d.DEFAULT_GRAVITY_RANGE_FACTOR=l.DEFAULT_GRAVITY_RANGE_FACTOR=t.gravityRange),null!=t.gravityCompound&&(d.DEFAULT_COMPOUND_GRAVITY_STRENGTH=l.DEFAULT_COMPOUND_GRAVITY_STRENGTH=t.gravityCompound),null!=t.gravityRangeCompound&&(d.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=t.gravityRangeCompound),null!=t.initialEnergyOnIncremental&&(d.DEFAULT_COOLING_FACTOR_INCREMENTAL=l.DEFAULT_COOLING_FACTOR_INCREMENTAL=t.initialEnergyOnIncremental),null!=t.tilingCompareBy&&(d.TILING_COMPARE_BY=t.tilingCompareBy),"proof"==t.quality?h.QUALITY=2:h.QUALITY=0,d.NODE_DIMENSIONS_INCLUDE_LABELS=l.NODE_DIMENSIONS_INCLUDE_LABELS=h.NODE_DIMENSIONS_INCLUDE_LABELS=t.nodeDimensionsIncludeLabels,d.DEFAULT_INCREMENTAL=l.DEFAULT_INCREMENTAL=h.DEFAULT_INCREMENTAL=!t.randomize,d.ANIMATE=l.ANIMATE=h.ANIMATE=t.animate,d.TILE=t.tile,d.TILING_PADDING_VERTICAL="function"==typeof t.tilingPaddingVertical?t.tilingPaddingVertical.call():t.tilingPaddingVertical,d.TILING_PADDING_HORIZONTAL="function"==typeof t.tilingPaddingHorizontal?t.tilingPaddingHorizontal.call():t.tilingPaddingHorizontal,d.DEFAULT_INCREMENTAL=l.DEFAULT_INCREMENTAL=h.DEFAULT_INCREMENTAL=!0,d.PURE_INCREMENTAL=!t.randomize,h.DEFAULT_UNIFORM_LEAF_NODE_SIZES=t.uniformNodeDimensions,"transformed"==t.step&&(d.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,d.ENFORCE_CONSTRAINTS=!1,d.APPLY_LAYOUT=!1),"enforced"==t.step&&(d.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,d.ENFORCE_CONSTRAINTS=!0,d.APPLY_LAYOUT=!1),"cose"==t.step&&(d.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,d.ENFORCE_CONSTRAINTS=!1,d.APPLY_LAYOUT=!0),"all"==t.step&&(t.randomize?d.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:d.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,d.ENFORCE_CONSTRAINTS=!0,d.APPLY_LAYOUT=!0),t.fixedNodeConstraint||t.alignmentConstraint||t.relativePlacementConstraint?d.TREE_REDUCTION_ON_INCREMENTAL=!1:d.TREE_REDUCTION_ON_INCREMENTAL=!0;var T=new n,A=T.newGraphManager();return function t(e,i,n,h){for(var l=i.length,d=0;d<l;d++){var c=i[d],g=null;0==c.intersection(N).length&&(g=c.children());var u=void 0,m=c.layoutDimensions({nodeDimensionsIncludeLabels:h.nodeDimensionsIncludeLabels});if(null!=c.outerWidth()&&null!=c.outerHeight()){if(h.randomize){if(c.isParent()){var T=r.calcBoundingBox(c,p,v,f);u=0==c.intersection(N).length?e.add(new o(n.graphManager,new a(T.topLeftX,T.topLeftY),new s(T.width,T.height))):e.add(new o(n.graphManager,new a(T.topLeftX,T.topLeftY),new s(parseFloat(m.w),parseFloat(m.h))))}else u=e.add(new o(n.graphManager,new a(p[f.get(c.id())]-m.w/2,v[f.get(c.id())]-m.h/2),new s(parseFloat(m.w),parseFloat(m.h))))}else u=e.add(new o(n.graphManager,new a(c.position("x")-m.w/2,c.position("y")-m.h/2),new s(parseFloat(m.w),parseFloat(m.h))))}else u=e.add(new o(this.graphManager));u.id=c.data("id"),u.nodeRepulsion=E(h.nodeRepulsion,c),u.paddingLeft=parseInt(c.css("padding")),u.paddingTop=parseInt(c.css("padding")),u.paddingRight=parseInt(c.css("padding")),u.paddingBottom=parseInt(c.css("padding")),h.nodeDimensionsIncludeLabels&&(u.labelWidth=c.boundingBox({includeLabels:!0,includeNodes:!1,includeOverlays:!1}).w,u.labelHeight=c.boundingBox({includeLabels:!0,includeNodes:!1,includeOverlays:!1}).h,u.labelPosVertical=c.css("text-valign"),u.labelPosHorizontal=c.css("text-halign")),y[c.data("id")]=u,isNaN(u.rect.x)&&(u.rect.x=0),isNaN(u.rect.y)&&(u.rect.y=0),null!=g&&g.length>0&&t(n.getGraphManager().add(n.newGraph(),u),g,n,h)}}(A.addRoot(),r.getTopMostNodes(g),T,t),function(e,i,r){for(var n=0,o=0,a=0;a<r.length;a++){var s=r[a],h=y[s.data("source")],c=y[s.data("target")];if(h&&c&&h!==c&&0==h.getEdgesBetween(c).length){var g=i.add(e.newEdge(),h,c);g.id=s.id(),g.idealLength=E(t.idealEdgeLength,s),g.edgeElasticity=E(t.edgeElasticity,s),n+=g.idealLength,o++}}null!=t.idealEdgeLength&&(o>0?d.DEFAULT_EDGE_LENGTH=l.DEFAULT_EDGE_LENGTH=n/o:m(t.idealEdgeLength)?d.DEFAULT_EDGE_LENGTH=l.DEFAULT_EDGE_LENGTH=50:d.DEFAULT_EDGE_LENGTH=l.DEFAULT_EDGE_LENGTH=t.idealEdgeLength,d.MIN_REPULSION_DIST=l.MIN_REPULSION_DIST=l.DEFAULT_EDGE_LENGTH/10,d.DEFAULT_RADIAL_SEPARATION=l.DEFAULT_EDGE_LENGTH)}(T,A,u),t.fixedNodeConstraint&&(T.constraints.fixedNodeConstraint=t.fixedNodeConstraint),t.alignmentConstraint&&(T.constraints.alignmentConstraint=t.alignmentConstraint),t.relativePlacementConstraint&&(T.constraints.relativePlacementConstraint=t.relativePlacementConstraint),T.runLayout(),y}}},212:(t,e,i)=>{var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,i,r){return i&&t(e.prototype,i),r&&t(e,r),e}}(),n=i(658),o=i(548),a=i(657).spectralLayout,s=i(816).coseLayout,h=Object.freeze({quality:"default",randomize:!0,animate:!0,animationDuration:1e3,animationEasing:void 0,fit:!0,padding:30,nodeDimensionsIncludeLabels:!1,uniformNodeDimensions:!1,packComponents:!0,step:"all",samplingType:!0,sampleSize:25,nodeSeparation:75,piTol:1e-7,nodeRepulsion:function(t){return 4500},idealEdgeLength:function(t){return 50},edgeElasticity:function(t){return .45},nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,tilingCompareBy:void 0,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.3,fixedNodeConstraint:void 0,alignmentConstraint:void 0,relativePlacementConstraint:void 0,ready:function(){},stop:function(){}}),l=function(){function t(e){(function(t,e){if(!(t instanceof e))throw TypeError("Cannot call a class as a function")})(this,t),this.options=n({},h,e)}return r(t,[{key:"run",value:function(){var t=this.options,e=t.cy,i=t.eles,r=[],n=[],h=void 0,l=[];t.fixedNodeConstraint&&(!Array.isArray(t.fixedNodeConstraint)||0==t.fixedNodeConstraint.length)&&(t.fixedNodeConstraint=void 0),t.alignmentConstraint&&(t.alignmentConstraint.vertical&&(!Array.isArray(t.alignmentConstraint.vertical)||0==t.alignmentConstraint.vertical.length)&&(t.alignmentConstraint.vertical=void 0),t.alignmentConstraint.horizontal&&(!Array.isArray(t.alignmentConstraint.horizontal)||0==t.alignmentConstraint.horizontal.length)&&(t.alignmentConstraint.horizontal=void 0)),t.relativePlacementConstraint&&(!Array.isArray(t.relativePlacementConstraint)||0==t.relativePlacementConstraint.length)&&(t.relativePlacementConstraint=void 0),(t.fixedNodeConstraint||t.alignmentConstraint||t.relativePlacementConstraint)&&(t.tile=!1,t.packComponents=!1);var d=void 0,c=!1;if(e.layoutUtilities&&t.packComponents&&((d=e.layoutUtilities("get"))||(d=e.layoutUtilities()),c=!0),i.nodes().length>0){if(c){var g=o.getTopMostNodes(t.eles.nodes());if((h=o.connectComponents(e,t.eles,g)).forEach(function(t){var e=t.boundingBox();l.push({x:e.x1+e.w/2,y:e.y1+e.h/2})}),t.randomize&&h.forEach(function(e){t.eles=e,r.push(a(t))}),"default"==t.quality||"proof"==t.quality){var u=e.collection();if(t.tile){var f=new Map,p=0,v={nodeIndexes:f,xCoords:[],yCoords:[]},y=[];if(h.forEach(function(t,e){0==t.edges().length&&(t.nodes().forEach(function(e,i){u.merge(t.nodes()[i]),e.isParent()||(v.nodeIndexes.set(t.nodes()[i].id(),p++),v.xCoords.push(t.nodes()[0].position().x),v.yCoords.push(t.nodes()[0].position().y))}),y.push(e))}),u.length>1){var m=u.boundingBox();l.push({x:m.x1+m.w/2,y:m.y1+m.h/2}),h.push(u),r.push(v);for(var E=y.length-1;E>=0;E--)h.splice(y[E],1),r.splice(y[E],1),l.splice(y[E],1)}}h.forEach(function(e,i){t.eles=e,n.push(s(t,r[i])),o.relocateComponent(l[i],n[i],t)})}else h.forEach(function(e,i){o.relocateComponent(l[i],r[i],t)});var N=new Set;if(h.length>1){var T=[],A=i.filter(function(t){return"none"==t.css("display")});h.forEach(function(e,i){var a=void 0;if("draft"==t.quality&&(a=r[i].nodeIndexes),e.nodes().not(A).length>0){var s={};s.edges=[],s.nodes=[];var h=void 0;e.nodes().not(A).forEach(function(e){if("draft"==t.quality){if(e.isParent()){var l=o.calcBoundingBox(e,r[i].xCoords,r[i].yCoords,a);s.nodes.push({x:l.topLeftX,y:l.topLeftY,width:l.width,height:l.height})}else h=a.get(e.id()),s.nodes.push({x:r[i].xCoords[h]-e.boundingbox().w/2,y:r[i].yCoords[h]-e.boundingbox().h/2,width:e.boundingbox().w,height:e.boundingbox().h})}else n[i][e.id()]&&s.nodes.push({x:n[i][e.id()].getLeft(),y:n[i][e.id()].getTop(),width:n[i][e.id()].getWidth(),height:n[i][e.id()].getHeight()})}),e.edges().forEach(function(e){var h=e.source(),l=e.target();if("none"!=h.css("display")&&"none"!=l.css("display")){if("draft"==t.quality){var d=a.get(h.id()),c=a.get(l.id()),g=[],u=[];if(h.isParent()){var f=o.calcBoundingBox(h,r[i].xCoords,r[i].yCoords,a);g.push(f.topLeftX+f.width/2),g.push(f.topLeftY+f.height/2)}else g.push(r[i].xCoords[d]),g.push(r[i].yCoords[d]);if(l.isParent()){var p=o.calcBoundingBox(l,r[i].xCoords,r[i].yCoords,a);u.push(p.topLeftX+p.width/2),u.push(p.topLeftY+p.height/2)}else u.push(r[i].xCoords[c]),u.push(r[i].yCoords[c]);s.edges.push({startX:g[0],startY:g[1],endX:u[0],endY:u[1]})}else n[i][h.id()]&&n[i][l.id()]&&s.edges.push({startX:n[i][h.id()].getCenterX(),startY:n[i][h.id()].getCenterY(),endX:n[i][l.id()].getCenterX(),endY:n[i][l.id()].getCenterY()})}}),s.nodes.length>0&&(T.push(s),N.add(i))}});var L=d.packComponents(T,t.randomize).shifts;if("draft"==t.quality)r.forEach(function(t,e){var i=t.xCoords.map(function(t){return t+L[e].dx}),r=t.yCoords.map(function(t){return t+L[e].dy});t.xCoords=i,t.yCoords=r});else{var w=0;N.forEach(function(t){Object.keys(n[t]).forEach(function(e){var i=n[t][e];i.setCenter(i.getCenterX()+L[w].dx,i.getCenterY()+L[w].dy)}),w++})}}}else{var I=t.eles.boundingBox();if(l.push({x:I.x1+I.w/2,y:I.y1+I.h/2}),t.randomize){var _=a(t);r.push(_)}"default"==t.quality||"proof"==t.quality?(n.push(s(t,r[0])),o.relocateComponent(l[0],n[0],t)):o.relocateComponent(l[0],r[0],t)}}var C=function(e,i){if("default"==t.quality||"proof"==t.quality){"number"==typeof e&&(e=i);var o=void 0,a=void 0,s=e.data("id");return n.forEach(function(t){s in t&&(o={x:t[s].getRect().getCenterX(),y:t[s].getRect().getCenterY()},a=t[s])}),t.nodeDimensionsIncludeLabels&&(a.labelWidth&&("left"==a.labelPosHorizontal?o.x+=a.labelWidth/2:"right"==a.labelPosHorizontal&&(o.x-=a.labelWidth/2)),a.labelHeight&&("top"==a.labelPosVertical?o.y+=a.labelHeight/2:"bottom"==a.labelPosVertical&&(o.y-=a.labelHeight/2))),void 0==o&&(o={x:e.position("x"),y:e.position("y")}),{x:o.x,y:o.y}}var h=void 0;return r.forEach(function(t){var i=t.nodeIndexes.get(e.id());void 0!=i&&(h={x:t.xCoords[i],y:t.yCoords[i]})}),void 0==h&&(h={x:e.position("x"),y:e.position("y")}),{x:h.x,y:h.y}};if("default"==t.quality||"proof"==t.quality||t.randomize){var M=o.calcParentsWithoutChildren(e,i),O=i.filter(function(t){return"none"==t.css("display")});t.eles=i.not(O),i.nodes().not(":parent").not(O).layoutPositions(this,t,C),M.length>0&&M.forEach(function(t){t.position(C(t))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")}}]),t}();t.exports=l},657:(t,e,i)=>{var r=i(548),n=i(140).layoutBase.Matrix,o=i(140).layoutBase.SVD;t.exports={spectralLayout:function(t){var e=t.cy,i=t.eles,a=i.nodes(),s=i.nodes(":parent"),h=new Map,l=new Map,d=new Map,c=[],g=[],u=[],f=[],p=[],v=[],y=[],m=[],E=void 0,N=t.piTol,T=t.samplingType,A=t.nodeSeparation,L=void 0,w=function(){for(var t=0,e=0,i=!1;e<L;){t=Math.floor(Math.random()*E),i=!1;for(var r=0;r<e;r++)if(f[r]==t){i=!0;break}!i&&(f[e]=t,e++)}},I=function(t,e,i){for(var r=[],n=0,o=0,a=0,s=void 0,h=[],d=0,g=1,u=0;u<E;u++)h[u]=1e8;for(r[o]=t,h[t]=0;o>=n;){for(var f=c[a=r[n++]],y=0;y<f.length;y++)1e8==h[s=l.get(f[y])]&&(h[s]=h[a]+1,r[++o]=s);v[a][e]=h[a]*A}if(i){for(var m=0;m<E;m++)v[m][e]<p[m]&&(p[m]=v[m][e]);for(var N=0;N<E;N++)p[N]>d&&(d=p[N],g=N)}return g};r.connectComponents(e,i,r.getTopMostNodes(a),h),s.forEach(function(t){r.connectComponents(e,i,r.getTopMostNodes(t.descendants().intersection(i)),h)});for(var _=0,C=0;C<a.length;C++)a[C].isParent()||l.set(a[C].id(),_++);var M=!0,O=!1,x=void 0;try{for(var D,R=h.keys()[Symbol.iterator]();!(M=(D=R.next()).done);M=!0){var b=D.value;l.set(b,_++)}}catch(t){O=!0,x=t}finally{try{!M&&R.return&&R.return()}finally{if(O)throw x}}for(var G=0;G<l.size;G++)c[G]=[];s.forEach(function(t){for(var e=t.children().intersection(i);0==e.nodes(":childless").length;)e=e.nodes()[0].children().intersection(i);var r=0,n=e.nodes(":childless")[0].connectedEdges().length;e.nodes(":childless").forEach(function(t,e){t.connectedEdges().length<n&&(n=t.connectedEdges().length,r=e)}),d.set(t.id(),e.nodes(":childless")[r].id())}),a.forEach(function(t){var e=void 0;e=t.isParent()?l.get(d.get(t.id())):l.get(t.id()),t.neighborhood().nodes().forEach(function(r){i.intersection(t.edgesWith(r)).length>0&&(r.isParent()?c[e].push(d.get(r.id())):c[e].push(r.id()))})});var F=function(t){var i=l.get(t),r=void 0;h.get(t).forEach(function(n){r=e.getElementById(n).isParent()?d.get(n):n,c[i].push(r),c[l.get(r)].push(t)})},S=!0,P=!1,U=void 0;try{for(var Y,k=h.keys()[Symbol.iterator]();!(S=(Y=k.next()).done);S=!0){var H=Y.value;F(H)}}catch(t){P=!0,U=t}finally{try{!S&&k.return&&k.return()}finally{if(P)throw U}}E=l.size;if(E>2){L=E<t.sampleSize?E:t.sampleSize;for(var X=0;X<E;X++)v[X]=[];for(var z=0;z<L;z++)m[z]=[];return"draft"==t.quality||"all"==t.step?(function(t){var e=void 0;if(t){e=Math.floor(Math.random()*E);for(var i=0;i<E;i++)p[i]=1e8;for(var r=0;r<L;r++)f[r]=e,e=I(e,r,t)}else{w();for(var n=0;n<L;n++)I(f[n],n,t,!1)}for(var o=0;o<E;o++)for(var a=0;a<L;a++)v[o][a]*=v[o][a];for(var s=0;s<L;s++)y[s]=[];for(var h=0;h<L;h++)for(var l=0;l<L;l++)y[h][l]=v[f[l]][h]}(T),function(){for(var t=o.svd(y),e=t.S,i=t.U,r=t.V,a=e[0]*e[0]*e[0],s=[],h=0;h<L;h++){s[h]=[];for(var l=0;l<L;l++)s[h][l]=0,h==l&&(s[h][l]=e[h]/(e[h]*e[h]+a/(e[h]*e[h])))}m=n.multMat(n.multMat(r,s),n.transpose(i))}(),function(){for(var t=void 0,e=void 0,i=[],r=[],o=[],a=[],s=0;s<E;s++)i[s]=Math.random(),r[s]=Math.random();i=n.normalize(i),r=n.normalize(r);for(var h=0,l=1e-9,d=1e-9,c=void 0;;){h++;for(var f=0;f<E;f++)o[f]=i[f];if(i=n.multGamma(n.multL(n.multGamma(o),v,m)),t=n.dotProduct(o,i),i=n.normalize(i),(c=Math.abs((l=n.dotProduct(o,i))/d))<=1+N&&c>=1)break;d=l}for(var p=0;p<E;p++)o[p]=i[p];for(h=0,d=1e-9;;){h++;for(var y=0;y<E;y++)a[y]=r[y];if(a=n.minusOp(a,n.multCons(o,n.dotProduct(o,a))),r=n.multGamma(n.multL(n.multGamma(a),v,m)),e=n.dotProduct(a,r),r=n.normalize(r),(c=Math.abs((l=n.dotProduct(a,r))/d))<=1+N&&c>=1)break;d=l}for(var T=0;T<E;T++)a[T]=r[T];g=n.multCons(o,Math.sqrt(Math.abs(t))),u=n.multCons(a,Math.sqrt(Math.abs(e)))}()):l.forEach(function(t,i){g.push(e.getElementById(i).position("x")),u.push(e.getElementById(i).position("y"))}),{nodeIndexes:l,xCoords:g,yCoords:u}}var V=l.keys(),B=e.getElementById(V.next().value),W=B.position(),j=B.outerWidth();if(g.push(W.x),u.push(W.y),2==E){var q=e.getElementById(V.next().value).outerWidth();g.push(W.x+j/2+q/2+t.idealEdgeLength),u.push(W.y)}return{nodeIndexes:l,xCoords:g,yCoords:u}}}},579:(t,e,i)=>{var r=i(212),n=function(t){t&&t("layout","fcose",r)};"undefined"!=typeof cytoscape&&n(cytoscape),t.exports=n},140:e=>{e.exports=t}},i={},function t(r){var n=i[r];if(void 0!==n)return n.exports;var o=i[r]={exports:{}};return e[r](o,o.exports,t),o.exports}(579)},t.exports=r(i(15633))},15633:function(t,e,i){var r;r=function(t){var e,i;return e={45:(t,e,i)=>{var r={};r.layoutBase=i(551),r.CoSEConstants=i(806),r.CoSEEdge=i(767),r.CoSEGraph=i(880),r.CoSEGraphManager=i(578),r.CoSELayout=i(765),r.CoSENode=i(991),r.ConstraintHandler=i(902),t.exports=r},806:(t,e,i)=>{var r=i(551).FDLayoutConstants;function n(){}for(var o in r)n[o]=r[o];n.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,n.DEFAULT_RADIAL_SEPARATION=r.DEFAULT_EDGE_LENGTH,n.DEFAULT_COMPONENT_SEPERATION=60,n.TILE=!0,n.TILING_PADDING_VERTICAL=10,n.TILING_PADDING_HORIZONTAL=10,n.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,n.ENFORCE_CONSTRAINTS=!0,n.APPLY_LAYOUT=!0,n.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,n.TREE_REDUCTION_ON_INCREMENTAL=!0,n.PURE_INCREMENTAL=n.DEFAULT_INCREMENTAL,t.exports=n},767:(t,e,i)=>{var r=i(551).FDLayoutEdge;function n(t,e,i){r.call(this,t,e,i)}for(var o in n.prototype=Object.create(r.prototype),r)n[o]=r[o];t.exports=n},880:(t,e,i)=>{var r=i(551).LGraph;function n(t,e,i){r.call(this,t,e,i)}for(var o in n.prototype=Object.create(r.prototype),r)n[o]=r[o];t.exports=n},578:(t,e,i)=>{var r=i(551).LGraphManager;function n(t){r.call(this,t)}for(var o in n.prototype=Object.create(r.prototype),r)n[o]=r[o];t.exports=n},765:(t,e,i)=>{var r=i(551).FDLayout,n=i(578),o=i(880),a=i(991),s=i(767),h=i(806),l=i(902),d=i(551).FDLayoutConstants,c=i(551).LayoutConstants,g=i(551).Point,u=i(551).PointD,f=i(551).DimensionD,p=i(551).Layout,v=i(551).Integer,y=i(551).IGeometry,m=i(551).LGraph,E=i(551).Transform,N=i(551).LinkedList;function T(){r.call(this),this.toBeTiled={},this.constraints={}}for(var A in T.prototype=Object.create(r.prototype),r)T[A]=r[A];T.prototype.newGraphManager=function(){var t=new n(this);return this.graphManager=t,t},T.prototype.newGraph=function(t){return new o(null,this.graphManager,t)},T.prototype.newNode=function(t){return new a(this.graphManager,t)},T.prototype.newEdge=function(t){return new s(null,null,t)},T.prototype.initParameters=function(){r.prototype.initParameters.call(this,arguments),this.isSubLayout||(h.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=h.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=h.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=d.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=d.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=d.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=d.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},T.prototype.initSpringEmbedder=function(){r.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/d.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},T.prototype.layout=function(){return c.DEFAULT_CREATE_BENDS_AS_NEEDED&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},T.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(h.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter(function(e){return t.has(e)});this.graphManager.setAllNodesToApplyGravitation(e)}}else{var i=this.getFlatForest();if(i.length>0)this.positionNodesRadially(i);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter(function(e){return t.has(e)});this.graphManager.setAllNodesToApplyGravitation(e),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(l.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),h.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},T.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}if(this.totalIterations%d.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged()){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}this.coolingCycle++,0==this.layoutQuality?this.coolingAdjuster=this.coolingCycle:1==this.layoutQuality&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0){if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter(function(e){return t.has(e)});this.graphManager.setAllNodesToApplyGravitation(e),this.graphManager.updateBounds(),this.updateGrid(),h.PURE_INCREMENTAL?this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0}this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),h.PURE_INCREMENTAL?this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var i=!this.isTreeGrowing&&!this.isGrowthFinished,r=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(i,r),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},T.prototype.getPositionsData=function(){for(var t=this.graphManager.getAllNodes(),e={},i=0;i<t.length;i++){var r=t[i].rect,n=t[i].id;e[n]={id:n,x:r.getCenterX(),y:r.getCenterY(),w:r.width,h:r.height}}return e},T.prototype.runSpringEmbedder=function(){this.initialAnimationPeriod=25,this.animationPeriod=this.initialAnimationPeriod;var t=!1;if("during"===d.ANIMATE)this.emit("layoutstarted");else{for(;!t;)t=this.tick();this.graphManager.updateBounds()}},T.prototype.moveNodes=function(){for(var t=this.getAllNodes(),e=0;e<t.length;e++)(0,t[e]).calculateDisplacement();Object.keys(this.constraints).length>0&&this.updateDisplacements();for(var e=0;e<t.length;e++)(0,t[e]).move()},T.prototype.initConstraintVariables=function(){var t=this;this.idToNodeMap=new Map,this.fixedNodeSet=new Set;for(var e=this.graphManager.getAllNodes(),i=0;i<e.length;i++){var r=e[i];this.idToNodeMap.set(r.id,r)}if(this.constraints.fixedNodeConstraint){this.constraints.fixedNodeConstraint.forEach(function(e){t.fixedNodeSet.add(e.nodeId)});for(var r,e=this.graphManager.getAllNodes(),i=0;i<e.length;i++)if(null!=(r=e[i]).getChild()){var n=function e(i){for(var r,n=i.getChild().getNodes(),o=0,a=0;a<n.length;a++)null==(r=n[a]).getChild()?t.fixedNodeSet.has(r.id)&&(o+=100):o+=e(r);return o}(r);n>0&&(r.fixedNodeWeight=n)}}if(this.constraints.relativePlacementConstraint){var o=new Map,a=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(e){t.fixedNodesOnHorizontal.add(e),t.fixedNodesOnVertical.add(e)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var s=this.constraints.alignmentConstraint.vertical,i=0;i<s.length;i++)this.dummyToNodeForVerticalAlignment.set("dummy"+i,[]),s[i].forEach(function(e){o.set(e,"dummy"+i),t.dummyToNodeForVerticalAlignment.get("dummy"+i).push(e),t.fixedNodeSet.has(e)&&t.fixedNodesOnHorizontal.add("dummy"+i)});if(this.constraints.alignmentConstraint.horizontal)for(var l=this.constraints.alignmentConstraint.horizontal,i=0;i<l.length;i++)this.dummyToNodeForHorizontalAlignment.set("dummy"+i,[]),l[i].forEach(function(e){a.set(e,"dummy"+i),t.dummyToNodeForHorizontalAlignment.get("dummy"+i).push(e),t.fixedNodeSet.has(e)&&t.fixedNodesOnVertical.add("dummy"+i)})}if(h.RELAX_MOVEMENT_ON_CONSTRAINTS)this.shuffle=function(t){var e,i,r;for(r=t.length-1;r>=2*t.length/3;r--)e=Math.floor(Math.random()*(r+1)),i=t[r],t[r]=t[e],t[e]=i;return t},this.nodesInRelativeHorizontal=[],this.nodesInRelativeVertical=[],this.nodeToRelativeConstraintMapHorizontal=new Map,this.nodeToRelativeConstraintMapVertical=new Map,this.nodeToTempPositionMapHorizontal=new Map,this.nodeToTempPositionMapVertical=new Map,this.constraints.relativePlacementConstraint.forEach(function(e){if(e.left){var i=o.has(e.left)?o.get(e.left):e.left,r=o.has(e.right)?o.get(e.right):e.right;t.nodesInRelativeHorizontal.includes(i)||(t.nodesInRelativeHorizontal.push(i),t.nodeToRelativeConstraintMapHorizontal.set(i,[]),t.dummyToNodeForVerticalAlignment.has(i)?t.nodeToTempPositionMapHorizontal.set(i,t.idToNodeMap.get(t.dummyToNodeForVerticalAlignment.get(i)[0]).getCenterX()):t.nodeToTempPositionMapHorizontal.set(i,t.idToNodeMap.get(i).getCenterX())),t.nodesInRelativeHorizontal.includes(r)||(t.nodesInRelativeHorizontal.push(r),t.nodeToRelativeConstraintMapHorizontal.set(r,[]),t.dummyToNodeForVerticalAlignment.has(r)?t.nodeToTempPositionMapHorizontal.set(r,t.idToNodeMap.get(t.dummyToNodeForVerticalAlignment.get(r)[0]).getCenterX()):t.nodeToTempPositionMapHorizontal.set(r,t.idToNodeMap.get(r).getCenterX())),t.nodeToRelativeConstraintMapHorizontal.get(i).push({right:r,gap:e.gap}),t.nodeToRelativeConstraintMapHorizontal.get(r).push({left:i,gap:e.gap})}else{var n=a.has(e.top)?a.get(e.top):e.top,s=a.has(e.bottom)?a.get(e.bottom):e.bottom;t.nodesInRelativeVertical.includes(n)||(t.nodesInRelativeVertical.push(n),t.nodeToRelativeConstraintMapVertical.set(n,[]),t.dummyToNodeForHorizontalAlignment.has(n)?t.nodeToTempPositionMapVertical.set(n,t.idToNodeMap.get(t.dummyToNodeForHorizontalAlignment.get(n)[0]).getCenterY()):t.nodeToTempPositionMapVertical.set(n,t.idToNodeMap.get(n).getCenterY())),t.nodesInRelativeVertical.includes(s)||(t.nodesInRelativeVertical.push(s),t.nodeToRelativeConstraintMapVertical.set(s,[]),t.dummyToNodeForHorizontalAlignment.has(s)?t.nodeToTempPositionMapVertical.set(s,t.idToNodeMap.get(t.dummyToNodeForHorizontalAlignment.get(s)[0]).getCenterY()):t.nodeToTempPositionMapVertical.set(s,t.idToNodeMap.get(s).getCenterY())),t.nodeToRelativeConstraintMapVertical.get(n).push({bottom:s,gap:e.gap}),t.nodeToRelativeConstraintMapVertical.get(s).push({top:n,gap:e.gap})}});else{var d=new Map,c=new Map;this.constraints.relativePlacementConstraint.forEach(function(t){if(t.left){var e=o.has(t.left)?o.get(t.left):t.left,i=o.has(t.right)?o.get(t.right):t.right;d.has(e)?d.get(e).push(i):d.set(e,[i]),d.has(i)?d.get(i).push(e):d.set(i,[e])}else{var r=a.has(t.top)?a.get(t.top):t.top,n=a.has(t.bottom)?a.get(t.bottom):t.bottom;c.has(r)?c.get(r).push(n):c.set(r,[n]),c.has(n)?c.get(n).push(r):c.set(n,[r])}});var g=function(t,e){var i=[],r=[],n=new N,o=new Set,a=0;return t.forEach(function(s,h){if(!o.has(h)){i[a]=[],r[a]=!1;var l=h;for(n.push(l),o.add(l),i[a].push(l);0!=n.length;)l=n.shift(),e.has(l)&&(r[a]=!0),t.get(l).forEach(function(t){o.has(t)||(n.push(t),o.add(t),i[a].push(t))});a++}}),{components:i,isFixed:r}},u=g(d,t.fixedNodesOnHorizontal);this.componentsOnHorizontal=u.components,this.fixedComponentsOnHorizontal=u.isFixed;var f=g(c,t.fixedNodesOnVertical);this.componentsOnVertical=f.components,this.fixedComponentsOnVertical=f.isFixed}}},T.prototype.updateDisplacements=function(){var t=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(e){var i=t.idToNodeMap.get(e.nodeId);i.displacementX=0,i.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var e=this.constraints.alignmentConstraint.vertical,i=0;i<e.length;i++){for(var r=0,n=0;n<e[i].length;n++){if(this.fixedNodeSet.has(e[i][n])){r=0;break}r+=this.idToNodeMap.get(e[i][n]).displacementX}for(var o=r/e[i].length,n=0;n<e[i].length;n++)this.idToNodeMap.get(e[i][n]).displacementX=o}if(this.constraints.alignmentConstraint.horizontal)for(var a=this.constraints.alignmentConstraint.horizontal,i=0;i<a.length;i++){for(var s=0,n=0;n<a[i].length;n++){if(this.fixedNodeSet.has(a[i][n])){s=0;break}s+=this.idToNodeMap.get(a[i][n]).displacementY}for(var l=s/a[i].length,n=0;n<a[i].length;n++)this.idToNodeMap.get(a[i][n]).displacementY=l}}if(this.constraints.relativePlacementConstraint){if(h.RELAX_MOVEMENT_ON_CONSTRAINTS)this.totalIterations%10==0&&(this.shuffle(this.nodesInRelativeHorizontal),this.shuffle(this.nodesInRelativeVertical)),this.nodesInRelativeHorizontal.forEach(function(e){if(!t.fixedNodesOnHorizontal.has(e)){var i=0;i=t.dummyToNodeForVerticalAlignment.has(e)?t.idToNodeMap.get(t.dummyToNodeForVerticalAlignment.get(e)[0]).displacementX:t.idToNodeMap.get(e).displacementX,t.nodeToRelativeConstraintMapHorizontal.get(e).forEach(function(r){if(r.right){var n=t.nodeToTempPositionMapHorizontal.get(r.right)-t.nodeToTempPositionMapHorizontal.get(e)-i;n<r.gap&&(i-=r.gap-n)}else{var n=t.nodeToTempPositionMapHorizontal.get(e)-t.nodeToTempPositionMapHorizontal.get(r.left)+i;n<r.gap&&(i+=r.gap-n)}}),t.nodeToTempPositionMapHorizontal.set(e,t.nodeToTempPositionMapHorizontal.get(e)+i),t.dummyToNodeForVerticalAlignment.has(e)?t.dummyToNodeForVerticalAlignment.get(e).forEach(function(e){t.idToNodeMap.get(e).displacementX=i}):t.idToNodeMap.get(e).displacementX=i}}),this.nodesInRelativeVertical.forEach(function(e){if(!t.fixedNodesOnHorizontal.has(e)){var i=0;i=t.dummyToNodeForHorizontalAlignment.has(e)?t.idToNodeMap.get(t.dummyToNodeForHorizontalAlignment.get(e)[0]).displacementY:t.idToNodeMap.get(e).displacementY,t.nodeToRelativeConstraintMapVertical.get(e).forEach(function(r){if(r.bottom){var n=t.nodeToTempPositionMapVertical.get(r.bottom)-t.nodeToTempPositionMapVertical.get(e)-i;n<r.gap&&(i-=r.gap-n)}else{var n=t.nodeToTempPositionMapVertical.get(e)-t.nodeToTempPositionMapVertical.get(r.top)+i;n<r.gap&&(i+=r.gap-n)}}),t.nodeToTempPositionMapVertical.set(e,t.nodeToTempPositionMapVertical.get(e)+i),t.dummyToNodeForHorizontalAlignment.has(e)?t.dummyToNodeForHorizontalAlignment.get(e).forEach(function(e){t.idToNodeMap.get(e).displacementY=i}):t.idToNodeMap.get(e).displacementY=i}});else{for(var i=0;i<this.componentsOnHorizontal.length;i++){var d=this.componentsOnHorizontal[i];if(this.fixedComponentsOnHorizontal[i])for(var n=0;n<d.length;n++)this.dummyToNodeForVerticalAlignment.has(d[n])?this.dummyToNodeForVerticalAlignment.get(d[n]).forEach(function(e){t.idToNodeMap.get(e).displacementX=0}):this.idToNodeMap.get(d[n]).displacementX=0;else{for(var c=0,g=0,n=0;n<d.length;n++)if(this.dummyToNodeForVerticalAlignment.has(d[n])){var u=this.dummyToNodeForVerticalAlignment.get(d[n]);c+=u.length*this.idToNodeMap.get(u[0]).displacementX,g+=u.length}else c+=this.idToNodeMap.get(d[n]).displacementX,g++;for(var f=c/g,n=0;n<d.length;n++)this.dummyToNodeForVerticalAlignment.has(d[n])?this.dummyToNodeForVerticalAlignment.get(d[n]).forEach(function(e){t.idToNodeMap.get(e).displacementX=f}):this.idToNodeMap.get(d[n]).displacementX=f}}for(var i=0;i<this.componentsOnVertical.length;i++){var d=this.componentsOnVertical[i];if(this.fixedComponentsOnVertical[i])for(var n=0;n<d.length;n++)this.dummyToNodeForHorizontalAlignment.has(d[n])?this.dummyToNodeForHorizontalAlignment.get(d[n]).forEach(function(e){t.idToNodeMap.get(e).displacementY=0}):this.idToNodeMap.get(d[n]).displacementY=0;else{for(var c=0,g=0,n=0;n<d.length;n++)if(this.dummyToNodeForHorizontalAlignment.has(d[n])){var u=this.dummyToNodeForHorizontalAlignment.get(d[n]);c+=u.length*this.idToNodeMap.get(u[0]).displacementY,g+=u.length}else c+=this.idToNodeMap.get(d[n]).displacementY,g++;for(var f=c/g,n=0;n<d.length;n++)this.dummyToNodeForHorizontalAlignment.has(d[n])?this.dummyToNodeForHorizontalAlignment.get(d[n]).forEach(function(e){t.idToNodeMap.get(e).displacementY=f}):this.idToNodeMap.get(d[n]).displacementY=f}}}}},T.prototype.calculateNodesToApplyGravitationTo=function(){var t,e,i=[],r=this.graphManager.getGraphs(),n=r.length;for(e=0;e<n;e++)(t=r[e]).updateConnected(),t.isConnected||(i=i.concat(t.getNodes()));return i},T.prototype.createBendpoints=function(){var t=[];t=t.concat(this.graphManager.getAllEdges());var e=new Set;for(o=0;o<t.length;o++){var i=t[o];if(!e.has(i)){var r=i.getSource(),n=i.getTarget();if(r==n)i.getBendpoints().push(new u),i.getBendpoints().push(new u),this.createDummyNodesForBendpoints(i),e.add(i);else{var o,a,s=[];if(s=(s=s.concat(r.getEdgeListToNode(n))).concat(n.getEdgeListToNode(r)),!e.has(s[0])){if(s.length>1)for(a=0;a<s.length;a++){var h=s[a];h.getBendpoints().push(new u),this.createDummyNodesForBendpoints(h)}s.forEach(function(t){e.add(t)})}}}if(e.size==t.length)break}},T.prototype.positionNodesRadially=function(t){for(var e=new g(0,0),i=Math.ceil(Math.sqrt(t.length)),r=0,n=0,o=0,a=new u(0,0),s=0;s<t.length;s++){s%i==0&&(o=0,n=r,0!=s&&(n+=h.DEFAULT_COMPONENT_SEPERATION),r=0);var l=t[s],d=p.findCenterOfTree(l);e.x=o,e.y=n,(a=T.radialLayout(l,d,e)).y>r&&(r=Math.floor(a.y)),o=Math.floor(a.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new u(c.WORLD_CENTER_X-a.x/2,c.WORLD_CENTER_Y-a.y/2))},T.radialLayout=function(t,e,i){var r=Math.max(this.maxDiagonalInTree(t),h.DEFAULT_RADIAL_SEPARATION);T.branchRadialLayout(e,null,0,359,0,r);var n=m.calculateBounds(t),o=new E;o.setDeviceOrgX(n.getMinX()),o.setDeviceOrgY(n.getMinY()),o.setWorldOrgX(i.x),o.setWorldOrgY(i.y);for(var a=0;a<t.length;a++)t[a].transform(o);var s=new u(n.getMaxX(),n.getMaxY());return o.inverseTransformPoint(s)},T.branchRadialLayout=function(t,e,i,r,n,o){var a,s=(r-i+1)/2;s<0&&(s+=180);var h=(s+i)%360*y.TWO_PI/360,l=n*Math.cos(h),d=n*Math.sin(h);t.setCenter(l,d);var c=[],g=(c=c.concat(t.getEdges())).length;null!=e&&g--;for(var u=0,f=c.length,p=t.getEdgesBetween(e);p.length>1;){var v=p[0];p.splice(0,1);var m=c.indexOf(v);m>=0&&c.splice(m,1),f--,g--}a=null!=e?(c.indexOf(p[0])+1)%f:0;for(var E=Math.abs(r-i)/g,N=a;u!=g;N=++N%f){var A=c[N].getOtherEnd(t);if(A!=e){var L=(i+u*E)%360,w=(L+E)%360;T.branchRadialLayout(A,t,L,w,n+o,o),u++}}},T.maxDiagonalInTree=function(t){for(var e=v.MIN_VALUE,i=0;i<t.length;i++){var r=t[i].getDiagonal();r>e&&(e=r)}return e},T.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},T.prototype.groupZeroDegreeMembers=function(){var t=this,e={};this.memberGroups={},this.idToDummyNode={};for(var i=[],r=this.graphManager.getAllNodes(),n=0;n<r.length;n++){var o=r[n],s=o.getParent();0!==this.getNodeDegreeWithChildren(o)||void 0!=s.id&&this.getToBeTiled(s)||i.push(o)}for(var n=0;n<i.length;n++){var o=i[n],h=o.getParent().id;void 0===e[h]&&(e[h]=[]),e[h]=e[h].concat(o)}Object.keys(e).forEach(function(i){if(e[i].length>1){var r="DummyCompound_"+i;t.memberGroups[r]=e[i];var n=e[i][0].getParent(),o=new a(t.graphManager);o.id=r,o.paddingLeft=n.paddingLeft||0,o.paddingRight=n.paddingRight||0,o.paddingBottom=n.paddingBottom||0,o.paddingTop=n.paddingTop||0,t.idToDummyNode[r]=o;var s=t.getGraphManager().add(t.newGraph(),o),h=n.getChild();h.add(o);for(var l=0;l<e[i].length;l++){var d=e[i][l];h.remove(d),s.add(d)}}})},T.prototype.clearCompounds=function(){var t={},e={};this.performDFSOnCompounds();for(var i=0;i<this.compoundOrder.length;i++)e[this.compoundOrder[i].id]=this.compoundOrder[i],t[this.compoundOrder[i].id]=[].concat(this.compoundOrder[i].getChild().getNodes()),this.graphManager.remove(this.compoundOrder[i].getChild()),this.compoundOrder[i].child=null;this.graphManager.resetAllNodes(),this.tileCompoundMembers(t,e)},T.prototype.clearZeroDegreeMembers=function(){var t=this,e=this.tiledZeroDegreePack=[];Object.keys(this.memberGroups).forEach(function(i){var r=t.idToDummyNode[i];if(e[i]=t.tileNodes(t.memberGroups[i],r.paddingLeft+r.paddingRight),r.rect.width=e[i].width,r.rect.height=e[i].height,r.setCenter(e[i].centerX,e[i].centerY),r.labelMarginLeft=0,r.labelMarginTop=0,h.NODE_DIMENSIONS_INCLUDE_LABELS){var n=r.rect.width,o=r.rect.height;r.labelWidth&&("left"==r.labelPosHorizontal?(r.rect.x-=r.labelWidth,r.setWidth(n+r.labelWidth),r.labelMarginLeft=r.labelWidth):"center"==r.labelPosHorizontal&&r.labelWidth>n?(r.rect.x-=(r.labelWidth-n)/2,r.setWidth(r.labelWidth),r.labelMarginLeft=(r.labelWidth-n)/2):"right"==r.labelPosHorizontal&&r.setWidth(n+r.labelWidth)),r.labelHeight&&("top"==r.labelPosVertical?(r.rect.y-=r.labelHeight,r.setHeight(o+r.labelHeight),r.labelMarginTop=r.labelHeight):"center"==r.labelPosVertical&&r.labelHeight>o?(r.rect.y-=(r.labelHeight-o)/2,r.setHeight(r.labelHeight),r.labelMarginTop=(r.labelHeight-o)/2):"bottom"==r.labelPosVertical&&r.setHeight(o+r.labelHeight))}})},T.prototype.repopulateCompounds=function(){for(var t=this.compoundOrder.length-1;t>=0;t--){var e=this.compoundOrder[t],i=e.id,r=e.paddingLeft,n=e.paddingTop,o=e.labelMarginLeft,a=e.labelMarginTop;this.adjustLocations(this.tiledMemberPack[i],e.rect.x,e.rect.y,r,n,o,a)}},T.prototype.repopulateZeroDegreeMembers=function(){var t=this,e=this.tiledZeroDegreePack;Object.keys(e).forEach(function(i){var r=t.idToDummyNode[i],n=r.paddingLeft,o=r.paddingTop,a=r.labelMarginLeft,s=r.labelMarginTop;t.adjustLocations(e[i],r.rect.x,r.rect.y,n,o,a,s)})},T.prototype.getToBeTiled=function(t){var e=t.id;if(null!=this.toBeTiled[e])return this.toBeTiled[e];var i=t.getChild();if(null==i)return this.toBeTiled[e]=!1,!1;for(var r=i.getNodes(),n=0;n<r.length;n++){var o=r[n];if(this.getNodeDegree(o)>0)return this.toBeTiled[e]=!1,!1;if(null==o.getChild()){this.toBeTiled[o.id]=!1;continue}if(!this.getToBeTiled(o))return this.toBeTiled[e]=!1,!1}return this.toBeTiled[e]=!0,!0},T.prototype.getNodeDegree=function(t){t.id;for(var e=t.getEdges(),i=0,r=0;r<e.length;r++){var n=e[r];n.getSource().id!==n.getTarget().id&&(i+=1)}return i},T.prototype.getNodeDegreeWithChildren=function(t){var e=this.getNodeDegree(t);if(null==t.getChild())return e;for(var i=t.getChild().getNodes(),r=0;r<i.length;r++){var n=i[r];e+=this.getNodeDegreeWithChildren(n)}return e},T.prototype.performDFSOnCompounds=function(){this.compoundOrder=[],this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes())},T.prototype.fillCompexOrderByDFS=function(t){for(var e=0;e<t.length;e++){var i=t[e];null!=i.getChild()&&this.fillCompexOrderByDFS(i.getChild().getNodes()),this.getToBeTiled(i)&&this.compoundOrder.push(i)}},T.prototype.adjustLocations=function(t,e,i,r,n,o,a){e+=r+o,i+=n+a;for(var s=e,h=0;h<t.rows.length;h++){var l=t.rows[h];e=s;for(var d=0,c=0;c<l.length;c++){var g=l[c];g.rect.x=e,g.rect.y=i,e+=g.rect.width+t.horizontalPadding,g.rect.height>d&&(d=g.rect.height)}i+=d+t.verticalPadding}},T.prototype.tileCompoundMembers=function(t,e){var i=this;this.tiledMemberPack=[],Object.keys(t).forEach(function(r){var n=e[r];if(i.tiledMemberPack[r]=i.tileNodes(t[r],n.paddingLeft+n.paddingRight),n.rect.width=i.tiledMemberPack[r].width,n.rect.height=i.tiledMemberPack[r].height,n.setCenter(i.tiledMemberPack[r].centerX,i.tiledMemberPack[r].centerY),n.labelMarginLeft=0,n.labelMarginTop=0,h.NODE_DIMENSIONS_INCLUDE_LABELS){var o=n.rect.width,a=n.rect.height;n.labelWidth&&("left"==n.labelPosHorizontal?(n.rect.x-=n.labelWidth,n.setWidth(o+n.labelWidth),n.labelMarginLeft=n.labelWidth):"center"==n.labelPosHorizontal&&n.labelWidth>o?(n.rect.x-=(n.labelWidth-o)/2,n.setWidth(n.labelWidth),n.labelMarginLeft=(n.labelWidth-o)/2):"right"==n.labelPosHorizontal&&n.setWidth(o+n.labelWidth)),n.labelHeight&&("top"==n.labelPosVertical?(n.rect.y-=n.labelHeight,n.setHeight(a+n.labelHeight),n.labelMarginTop=n.labelHeight):"center"==n.labelPosVertical&&n.labelHeight>a?(n.rect.y-=(n.labelHeight-a)/2,n.setHeight(n.labelHeight),n.labelMarginTop=(n.labelHeight-a)/2):"bottom"==n.labelPosVertical&&n.setHeight(a+n.labelHeight))}})},T.prototype.tileNodes=function(t,e){var i=this.tileNodesByFavoringDim(t,e,!0),r=this.tileNodesByFavoringDim(t,e,!1),n=this.getOrgRatio(i);return this.getOrgRatio(r)<n?r:i},T.prototype.getOrgRatio=function(t){var e=t.width/t.height;return e<1&&(e=1/e),e},T.prototype.calcIdealRowWidth=function(t,e){var i,r=h.TILING_PADDING_VERTICAL,n=h.TILING_PADDING_HORIZONTAL,o=t.length,a=0,s=0,l=0;t.forEach(function(t){a+=t.getWidth(),s+=t.getHeight(),t.getWidth()>l&&(l=t.getWidth())});var d=a/o,c=Math.pow(r-n,2)+4*(d+n)*(s/o+r)*o,g=(n-r+Math.sqrt(c))/(2*(d+n));e?(i=Math.ceil(g))==g&&i++:i=Math.floor(g);var u=i*(d+n)-n;return l>u&&(u=l),u+=2*n},T.prototype.tileNodesByFavoringDim=function(t,e,i){var r=h.TILING_PADDING_VERTICAL,n=h.TILING_PADDING_HORIZONTAL,o=h.TILING_COMPARE_BY,a={rows:[],rowWidth:[],rowHeight:[],width:0,height:e,verticalPadding:r,horizontalPadding:n,centerX:0,centerY:0};o&&(a.idealRowWidth=this.calcIdealRowWidth(t,i));var s=function(t){return t.rect.width*t.rect.height},l=function(t,e){return s(e)-s(t)};t.sort(function(t,e){var i=l;return a.idealRowWidth?(i=o)(t.id,e.id):i(t,e)});for(var d=0,c=0,g=0;g<t.length;g++){var u=t[g];d+=u.getCenterX(),c+=u.getCenterY()}a.centerX=d/t.length,a.centerY=c/t.length;for(var g=0;g<t.length;g++){var u=t[g];if(0==a.rows.length)this.insertNodeToRow(a,u,0,e);else if(this.canAddHorizontal(a,u.rect.width,u.rect.height)){var f=a.rows.length-1;a.idealRowWidth||(f=this.getShortestRowIndex(a)),this.insertNodeToRow(a,u,f,e)}else this.insertNodeToRow(a,u,a.rows.length,e);this.shiftToLastRow(a)}return a},T.prototype.insertNodeToRow=function(t,e,i,r){i==t.rows.length&&(t.rows.push([]),t.rowWidth.push(r),t.rowHeight.push(0));var n=t.rowWidth[i]+e.rect.width;t.rows[i].length>0&&(n+=t.horizontalPadding),t.rowWidth[i]=n,t.width<n&&(t.width=n);var o=e.rect.height;i>0&&(o+=t.verticalPadding);var a=0;o>t.rowHeight[i]&&(a=t.rowHeight[i],t.rowHeight[i]=o,a=t.rowHeight[i]-a),t.height+=a,t.rows[i].push(e)},T.prototype.getShortestRowIndex=function(t){for(var e=-1,i=Number.MAX_VALUE,r=0;r<t.rows.length;r++)t.rowWidth[r]<i&&(e=r,i=t.rowWidth[r]);return e},T.prototype.getLongestRowIndex=function(t){for(var e=-1,i=Number.MIN_VALUE,r=0;r<t.rows.length;r++)t.rowWidth[r]>i&&(e=r,i=t.rowWidth[r]);return e},T.prototype.canAddHorizontal=function(t,e,i){if(t.idealRowWidth){var r,n,o=t.rows.length-1;return t.rowWidth[o]+e+t.horizontalPadding<=t.idealRowWidth}var a=this.getShortestRowIndex(t);if(a<0)return!0;var s=t.rowWidth[a];if(s+t.horizontalPadding+e<=t.width)return!0;var h=0;return t.rowHeight[a]<i&&a>0&&(h=i+t.verticalPadding-t.rowHeight[a]),r=t.width-s>=e+t.horizontalPadding?(t.height+h)/(s+e+t.horizontalPadding):(t.height+h)/t.width,h=i+t.verticalPadding,(n=t.width<e?(t.height+h)/e:(t.height+h)/t.width)<1&&(n=1/n),r<1&&(r=1/r),r<n},T.prototype.shiftToLastRow=function(t){var e=this.getLongestRowIndex(t),i=t.rowWidth.length-1,r=t.rows[e],n=r[r.length-1],o=n.width+t.horizontalPadding;if(t.width-t.rowWidth[i]>o&&e!=i){r.splice(-1,1),t.rows[i].push(n),t.rowWidth[e]=t.rowWidth[e]-o,t.rowWidth[i]=t.rowWidth[i]+o,t.width=t.rowWidth[instance.getLongestRowIndex(t)];for(var a=Number.MIN_VALUE,s=0;s<r.length;s++)r[s].height>a&&(a=r[s].height);e>0&&(a+=t.verticalPadding);var h=t.rowHeight[e]+t.rowHeight[i];t.rowHeight[e]=a,t.rowHeight[i]<n.height+t.verticalPadding&&(t.rowHeight[i]=n.height+t.verticalPadding);var l=t.rowHeight[e]+t.rowHeight[i];t.height+=l-h,this.shiftToLastRow(t)}},T.prototype.tilingPreLayout=function(){h.TILE&&(this.groupZeroDegreeMembers(),this.clearCompounds(),this.clearZeroDegreeMembers())},T.prototype.tilingPostLayout=function(){h.TILE&&(this.repopulateZeroDegreeMembers(),this.repopulateCompounds())},T.prototype.reduceTrees=function(){for(var t,e=[],i=!0;i;){var r=this.graphManager.getAllNodes(),n=[];i=!1;for(var o=0;o<r.length;o++)if(1==(t=r[o]).getEdges().length&&!t.getEdges()[0].isInterGraph&&null==t.getChild()){if(h.PURE_INCREMENTAL){var a=t.getEdges()[0].getOtherEnd(t),s=new f(t.getCenterX()-a.getCenterX(),t.getCenterY()-a.getCenterY());n.push([t,t.getEdges()[0],t.getOwner(),s])}else n.push([t,t.getEdges()[0],t.getOwner()]);i=!0}if(!0==i){for(var l=[],d=0;d<n.length;d++)1==n[d][0].getEdges().length&&(l.push(n[d]),n[d][0].getOwner().remove(n[d][0]));e.push(l),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()}}this.prunedNodesAll=e},T.prototype.growTree=function(t){for(var e,i=t.length,r=t[i-1],n=0;n<r.length;n++)e=r[n],this.findPlaceforPrunedNode(e),e[2].add(e[0]),e[2].add(e[1],e[1].source,e[1].target);t.splice(t.length-1,1),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()},T.prototype.findPlaceforPrunedNode=function(t){var e=t[0];if(r=e==t[1].source?t[1].target:t[1].source,h.PURE_INCREMENTAL)e.setCenter(r.getCenterX()+t[3].getWidth(),r.getCenterY()+t[3].getHeight());else{var i,r,n,o,a=r.startX,s=r.finishX,l=r.startY,c=r.finishY,g=[0,0,0,0];if(l>0)for(var u=a;u<=s;u++)g[0]+=this.grid[u][l-1].length+this.grid[u][l].length-1;if(s<this.grid.length-1)for(var u=l;u<=c;u++)g[1]+=this.grid[s+1][u].length+this.grid[s][u].length-1;if(c<this.grid[0].length-1)for(var u=a;u<=s;u++)g[2]+=this.grid[u][c+1].length+this.grid[u][c].length-1;if(a>0)for(var u=l;u<=c;u++)g[3]+=this.grid[a-1][u].length+this.grid[a][u].length-1;for(var f=v.MAX_VALUE,p=0;p<g.length;p++)g[p]<f?(f=g[p],n=1,o=p):g[p]==f&&n++;if(3==n&&0==f)0==g[0]&&0==g[1]&&0==g[2]?i=1:0==g[0]&&0==g[1]&&0==g[3]?i=0:0==g[0]&&0==g[2]&&0==g[3]?i=3:0==g[1]&&0==g[2]&&0==g[3]&&(i=2);else if(2==n&&0==f){var y=Math.floor(2*Math.random());i=0==g[0]&&0==g[1]?0==y?0:1:0==g[0]&&0==g[2]?0==y?0:2:0==g[0]&&0==g[3]?0==y?0:3:0==g[1]&&0==g[2]?0==y?1:2:0==g[1]&&0==g[3]?0==y?1:3:0==y?2:3}else if(4==n&&0==f){var y=Math.floor(4*Math.random());i=y}else i=o;0==i?e.setCenter(r.getCenterX(),r.getCenterY()-r.getHeight()/2-d.DEFAULT_EDGE_LENGTH-e.getHeight()/2):1==i?e.setCenter(r.getCenterX()+r.getWidth()/2+d.DEFAULT_EDGE_LENGTH+e.getWidth()/2,r.getCenterY()):2==i?e.setCenter(r.getCenterX(),r.getCenterY()+r.getHeight()/2+d.DEFAULT_EDGE_LENGTH+e.getHeight()/2):e.setCenter(r.getCenterX()-r.getWidth()/2-d.DEFAULT_EDGE_LENGTH-e.getWidth()/2,r.getCenterY())}},t.exports=T},991:(t,e,i)=>{var r=i(551).FDLayoutNode,n=i(551).IMath;function o(t,e,i,n){r.call(this,t,e,i,n)}for(var a in o.prototype=Object.create(r.prototype),r)o[a]=r[a];o.prototype.calculateDisplacement=function(){var t=this.graphManager.getLayout();null!=this.getChild()&&this.fixedNodeWeight?(this.displacementX+=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementX=t.coolingFactor*t.maxNodeDisplacement*n.sign(this.displacementX)),Math.abs(this.displacementY)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementY=t.coolingFactor*t.maxNodeDisplacement*n.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},o.prototype.propogateDisplacementToChildren=function(t,e){for(var i,r=this.getChild().getNodes(),n=0;n<r.length;n++)null==(i=r[n]).getChild()?(i.displacementX+=t,i.displacementY+=e):i.propogateDisplacementToChildren(t,e)},o.prototype.move=function(){var t=this.graphManager.getLayout();(null==this.child||0==this.child.getNodes().length)&&(this.moveBy(this.displacementX,this.displacementY),t.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY)),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},o.prototype.setPred1=function(t){this.pred1=t},o.prototype.getPred1=function(){return pred1},o.prototype.getPred2=function(){return pred2},o.prototype.setNext=function(t){this.next=t},o.prototype.getNext=function(){return next},o.prototype.setProcessed=function(t){this.processed=t},o.prototype.isProcessed=function(){return processed},t.exports=o},902:(t,e,i)=>{function r(t){if(!Array.isArray(t))return Array.from(t);for(var e=0,i=Array(t.length);e<t.length;e++)i[e]=t[e];return i}var n=i(806),o=i(551).LinkedList,a=i(551).Matrix,s=i(551).SVD;function h(){}h.handleConstraints=function(t){var e={};e.fixedNodeConstraint=t.constraints.fixedNodeConstraint,e.alignmentConstraint=t.constraints.alignmentConstraint,e.relativePlacementConstraint=t.constraints.relativePlacementConstraint;for(var i=new Map,h=new Map,l=[],d=[],c=t.getAllNodes(),g=0,u=0;u<c.length;u++){var f=c[u];null==f.getChild()&&(h.set(f.id,g++),l.push(f.getCenterX()),d.push(f.getCenterY()),i.set(f.id,f))}e.relativePlacementConstraint&&e.relativePlacementConstraint.forEach(function(t){t.gap||0==t.gap||(t.left?t.gap=n.DEFAULT_EDGE_LENGTH+i.get(t.left).getWidth()/2+i.get(t.right).getWidth()/2:t.gap=n.DEFAULT_EDGE_LENGTH+i.get(t.top).getHeight()/2+i.get(t.bottom).getHeight()/2)});var p=function(t){var e=0,i=0;return t.forEach(function(t){e+=l[h.get(t)],i+=d[h.get(t)]}),{x:e/t.size,y:i/t.size}},v=function(t,e,i,n,a){var s=new Map;t.forEach(function(t,e){s.set(e,0)}),t.forEach(function(t,e){t.forEach(function(t){s.set(t.id,s.get(t.id)+1)})});var c=new Map,g=new Map,u=new o;for(s.forEach(function(t,r){0==t?(u.push(r),i||("horizontal"==e?c.set(r,h.has(r)?l[h.get(r)]:n.get(r)):c.set(r,h.has(r)?d[h.get(r)]:n.get(r)))):c.set(r,Number.NEGATIVE_INFINITY),i&&g.set(r,new Set([r]))}),i&&a.forEach(function(t){var r=[];if(t.forEach(function(t){i.has(t)&&r.push(t)}),r.length>0){var o=0;r.forEach(function(t){"horizontal"==e?c.set(t,h.has(t)?l[h.get(t)]:n.get(t)):c.set(t,h.has(t)?d[h.get(t)]:n.get(t)),o+=c.get(t)}),o/=r.length,t.forEach(function(t){i.has(t)||c.set(t,o)})}else{var a=0;t.forEach(function(t){"horizontal"==e?a+=h.has(t)?l[h.get(t)]:n.get(t):a+=h.has(t)?d[h.get(t)]:n.get(t)}),a/=t.length,t.forEach(function(t){c.set(t,a)})}});0!=u.length;)!function(){var r=u.shift();t.get(r).forEach(function(t){if(c.get(t.id)<c.get(r)+t.gap){if(i&&i.has(t.id)){var o=void 0;if(o="horizontal"==e?h.has(t.id)?l[h.get(t.id)]:n.get(t.id):h.has(t.id)?d[h.get(t.id)]:n.get(t.id),c.set(t.id,o),o<c.get(r)+t.gap){var a=c.get(r)+t.gap-o;g.get(r).forEach(function(t){c.set(t,c.get(t)-a)})}}else c.set(t.id,c.get(r)+t.gap)}s.set(t.id,s.get(t.id)-1),0==s.get(t.id)&&u.push(t.id),i&&g.set(t.id,function(t,e){var i=new Set(t),r=!0,n=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done);r=!0){var h=a.value;i.add(h)}}catch(t){n=!0,o=t}finally{try{!r&&s.return&&s.return()}finally{if(n)throw o}}return i}(g.get(r),g.get(t.id)))})}();if(i){var f=new Set;t.forEach(function(t,e){0==t.length&&f.add(e)});var p=[];g.forEach(function(t,e){if(f.has(e)){var n=!1,o=!0,a=!1,s=void 0;try{for(var h,l=t[Symbol.iterator]();!(o=(h=l.next()).done);o=!0){var d=h.value;i.has(d)&&(n=!0)}}catch(t){a=!0,s=t}finally{try{!o&&l.return&&l.return()}finally{if(a)throw s}}if(!n){var c=!1,g=void 0;p.forEach(function(e,i){e.has([].concat(r(t))[0])&&(c=!0,g=i)}),c?t.forEach(function(t){p[g].add(t)}):p.push(new Set(t))}}}),p.forEach(function(t,i){var r=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY,s=Number.NEGATIVE_INFINITY,g=!0,u=!1,f=void 0;try{for(var p,v=t[Symbol.iterator]();!(g=(p=v.next()).done);g=!0){var y=p.value,m=void 0;m="horizontal"==e?h.has(y)?l[h.get(y)]:n.get(y):h.has(y)?d[h.get(y)]:n.get(y);var E=c.get(y);m<r&&(r=m),m>a&&(a=m),E<o&&(o=E),E>s&&(s=E)}}catch(t){u=!0,f=t}finally{try{!g&&v.return&&v.return()}finally{if(u)throw f}}var N=(r+a)/2-(o+s)/2,T=!0,A=!1,L=void 0;try{for(var w,I=t[Symbol.iterator]();!(T=(w=I.next()).done);T=!0){var _=w.value;c.set(_,c.get(_)+N)}}catch(t){A=!0,L=t}finally{try{!T&&I.return&&I.return()}finally{if(A)throw L}}})}return c},y=function(t){var e=0,i=0,r=0,n=0;if(t.forEach(function(t){t.left?l[h.get(t.left)]-l[h.get(t.right)]>=0?e++:i++:d[h.get(t.top)]-d[h.get(t.bottom)]>=0?r++:n++}),e>i&&r>n)for(var o=0;o<h.size;o++)l[o]=-1*l[o],d[o]=-1*d[o];else if(e>i)for(var a=0;a<h.size;a++)l[a]=-1*l[a];else if(r>n)for(var s=0;s<h.size;s++)d[s]=-1*d[s]},m=function(t){var e=[],i=new o,r=new Set,n=0;return t.forEach(function(o,a){if(!r.has(a)){e[n]=[];var s=a;for(i.push(s),r.add(s),e[n].push(s);0!=i.length;)s=i.shift(),t.get(s).forEach(function(t){r.has(t.id)||(i.push(t.id),r.add(t.id),e[n].push(t.id))});n++}}),e},E=function(t){var e=new Map;return t.forEach(function(t,i){e.set(i,[])}),t.forEach(function(t,i){t.forEach(function(t){e.get(i).push(t),e.get(t.id).push({id:i,gap:t.gap,direction:t.direction})})}),e},N=function(t){var e=new Map;return t.forEach(function(t,i){e.set(i,[])}),t.forEach(function(t,i){t.forEach(function(t){e.get(t.id).push({id:i,gap:t.gap,direction:t.direction})})}),e},T=[],A=[],L=!1,w=!1,I=new Set,_=new Map,C=new Map,M=[];if(e.fixedNodeConstraint&&e.fixedNodeConstraint.forEach(function(t){I.add(t.nodeId)}),e.relativePlacementConstraint&&(e.relativePlacementConstraint.forEach(function(t){t.left?(_.has(t.left)?_.get(t.left).push({id:t.right,gap:t.gap,direction:"horizontal"}):_.set(t.left,[{id:t.right,gap:t.gap,direction:"horizontal"}]),_.has(t.right)||_.set(t.right,[])):(_.has(t.top)?_.get(t.top).push({id:t.bottom,gap:t.gap,direction:"vertical"}):_.set(t.top,[{id:t.bottom,gap:t.gap,direction:"vertical"}]),_.has(t.bottom)||_.set(t.bottom,[]))}),M=m(C=E(_))),n.TRANSFORM_ON_CONSTRAINT_HANDLING){if(e.fixedNodeConstraint&&e.fixedNodeConstraint.length>1)e.fixedNodeConstraint.forEach(function(t,e){T[e]=[t.position.x,t.position.y],A[e]=[l[h.get(t.nodeId)],d[h.get(t.nodeId)]]}),L=!0;else if(e.alignmentConstraint)!function(){var t=0;if(e.alignmentConstraint.vertical){for(var i=e.alignmentConstraint.vertical,n=0;n<i.length;n++)!function(e){var n=new Set;i[e].forEach(function(t){n.add(t)});var o=new Set([].concat(r(n)).filter(function(t){return I.has(t)})),a=void 0;a=o.size>0?l[h.get(o.values().next().value)]:p(n).x,i[e].forEach(function(e){T[t]=[a,d[h.get(e)]],A[t]=[l[h.get(e)],d[h.get(e)]],t++})}(n);L=!0}if(e.alignmentConstraint.horizontal){for(var o=e.alignmentConstraint.horizontal,a=0;a<o.length;a++)!function(e){var i=new Set;o[e].forEach(function(t){i.add(t)});var n=new Set([].concat(r(i)).filter(function(t){return I.has(t)})),a=void 0;a=n.size>0?l[h.get(n.values().next().value)]:p(i).y,o[e].forEach(function(e){T[t]=[l[h.get(e)],a],A[t]=[l[h.get(e)],d[h.get(e)]],t++})}(a);L=!0}e.relativePlacementConstraint&&(w=!0)}();else if(e.relativePlacementConstraint){for(var O=0,x=0,D=0;D<M.length;D++)M[D].length>O&&(O=M[D].length,x=D);if(O<C.size/2)y(e.relativePlacementConstraint),L=!1,w=!1;else{var R=new Map,b=new Map,G=[];M[x].forEach(function(t){_.get(t).forEach(function(e){"horizontal"==e.direction?(R.has(t)?R.get(t).push(e):R.set(t,[e]),R.has(e.id)||R.set(e.id,[]),G.push({left:t,right:e.id})):(b.has(t)?b.get(t).push(e):b.set(t,[e]),b.has(e.id)||b.set(e.id,[]),G.push({top:t,bottom:e.id}))})}),y(G),w=!1;var F=v(R,"horizontal"),S=v(b,"vertical");M[x].forEach(function(t,e){A[e]=[l[h.get(t)],d[h.get(t)]],T[e]=[],F.has(t)?T[e][0]=F.get(t):T[e][0]=l[h.get(t)],S.has(t)?T[e][1]=S.get(t):T[e][1]=d[h.get(t)]}),L=!0}}if(L){for(var P=void 0,U=a.transpose(T),Y=a.transpose(A),k=0;k<U.length;k++)U[k]=a.multGamma(U[k]),Y[k]=a.multGamma(Y[k]);var H=a.multMat(U,a.transpose(Y)),X=s.svd(H);P=a.multMat(X.V,a.transpose(X.U));for(var z=0;z<h.size;z++){var V=[l[z],d[z]],B=[P[0][0],P[1][0]],W=[P[0][1],P[1][1]];l[z]=a.dotProduct(V,B),d[z]=a.dotProduct(V,W)}w&&y(e.relativePlacementConstraint)}}if(n.ENFORCE_CONSTRAINTS){if(e.fixedNodeConstraint&&e.fixedNodeConstraint.length>0){var j={x:0,y:0};e.fixedNodeConstraint.forEach(function(t,e){var i,r={x:l[h.get(t.nodeId)],y:d[h.get(t.nodeId)]},n={x:(i=t.position).x-r.x,y:i.y-r.y};j.x+=n.x,j.y+=n.y}),j.x/=e.fixedNodeConstraint.length,j.y/=e.fixedNodeConstraint.length,l.forEach(function(t,e){l[e]+=j.x}),d.forEach(function(t,e){d[e]+=j.y}),e.fixedNodeConstraint.forEach(function(t){l[h.get(t.nodeId)]=t.position.x,d[h.get(t.nodeId)]=t.position.y})}if(e.alignmentConstraint){if(e.alignmentConstraint.vertical)for(var q=e.alignmentConstraint.vertical,$=0;$<q.length;$++)!function(t){var e=new Set;q[t].forEach(function(t){e.add(t)});var i=new Set([].concat(r(e)).filter(function(t){return I.has(t)})),n=void 0;n=i.size>0?l[h.get(i.values().next().value)]:p(e).x,e.forEach(function(t){I.has(t)||(l[h.get(t)]=n)})}($);if(e.alignmentConstraint.horizontal)for(var K=e.alignmentConstraint.horizontal,Z=0;Z<K.length;Z++)!function(t){var e=new Set;K[t].forEach(function(t){e.add(t)});var i=new Set([].concat(r(e)).filter(function(t){return I.has(t)})),n=void 0;n=i.size>0?d[h.get(i.values().next().value)]:p(e).y,e.forEach(function(t){I.has(t)||(d[h.get(t)]=n)})}(Z)}e.relativePlacementConstraint&&function(){var t=new Map,i=new Map,r=new Map,n=new Map,o=new Map,a=new Map,s=new Set,c=new Set;if(I.forEach(function(t){s.add(t),c.add(t)}),e.alignmentConstraint){if(e.alignmentConstraint.vertical)for(var g=e.alignmentConstraint.vertical,u=function(e){r.set("dummy"+e,[]),g[e].forEach(function(i){t.set(i,"dummy"+e),r.get("dummy"+e).push(i),I.has(i)&&s.add("dummy"+e)}),o.set("dummy"+e,l[h.get(g[e][0])])},f=0;f<g.length;f++)u(f);if(e.alignmentConstraint.horizontal)for(var p=e.alignmentConstraint.horizontal,y=function(t){n.set("dummy"+t,[]),p[t].forEach(function(e){i.set(e,"dummy"+t),n.get("dummy"+t).push(e),I.has(e)&&c.add("dummy"+t)}),a.set("dummy"+t,d[h.get(p[t][0])])},T=0;T<p.length;T++)y(T)}var A=new Map,L=new Map,w=function(e){_.get(e).forEach(function(r){var n=void 0,o=void 0;"horizontal"==r.direction?(n=t.get(e)?t.get(e):e,o=t.get(r.id)?{id:t.get(r.id),gap:r.gap,direction:r.direction}:r,A.has(n)?A.get(n).push(o):A.set(n,[o]),A.has(o.id)||A.set(o.id,[])):(n=i.get(e)?i.get(e):e,o=i.get(r.id)?{id:i.get(r.id),gap:r.gap,direction:r.direction}:r,L.has(n)?L.get(n).push(o):L.set(n,[o]),L.has(o.id)||L.set(o.id,[]))})},C=!0,M=!1,O=void 0;try{for(var x,D=_.keys()[Symbol.iterator]();!(C=(x=D.next()).done);C=!0){var R=x.value;w(R)}}catch(t){M=!0,O=t}finally{try{!C&&D.return&&D.return()}finally{if(M)throw O}}var b=E(A),G=E(L),F=m(b),S=m(G),P=N(A),U=N(L),Y=[],k=[];F.forEach(function(t,e){Y[e]=[],t.forEach(function(t){0==P.get(t).length&&Y[e].push(t)})}),S.forEach(function(t,e){k[e]=[],t.forEach(function(t){0==U.get(t).length&&k[e].push(t)})});var H=v(A,"horizontal",s,o,Y),X=v(L,"vertical",c,a,k),z=function(t){r.get(t)?r.get(t).forEach(function(e){l[h.get(e)]=H.get(t)}):l[h.get(t)]=H.get(t)},V=!0,B=!1,W=void 0;try{for(var j,q=H.keys()[Symbol.iterator]();!(V=(j=q.next()).done);V=!0){var $=j.value;z($)}}catch(t){B=!0,W=t}finally{try{!V&&q.return&&q.return()}finally{if(B)throw W}}var K=function(t){n.get(t)?n.get(t).forEach(function(e){d[h.get(e)]=X.get(t)}):d[h.get(t)]=X.get(t)},Z=!0,Q=!1,J=void 0;try{for(var tt,te=X.keys()[Symbol.iterator]();!(Z=(tt=te.next()).done);Z=!0){var $=tt.value;K($)}}catch(t){Q=!0,J=t}finally{try{!Z&&te.return&&te.return()}finally{if(Q)throw J}}}()}for(var Q=0;Q<c.length;Q++){var J=c[Q];null==J.getChild()&&J.setCenter(l[h.get(J.id)],d[h.get(J.id)])}},t.exports=h},551:e=>{e.exports=t}},i={},function t(r){var n=i[r];if(void 0!==n)return n.exports;var o=i[r]={exports:{}};return e[r](o,o.exports,t),o.exports}(45)},t.exports=r(i(92321))},92321:function(t){var e;e=function(){return function(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.i=function(t){return t},i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=28)}([function(t,e,i){"use strict";function r(){}r.QUALITY=1,r.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,r.DEFAULT_INCREMENTAL=!1,r.DEFAULT_ANIMATION_ON_LAYOUT=!0,r.DEFAULT_ANIMATION_DURING_LAYOUT=!1,r.DEFAULT_ANIMATION_PERIOD=50,r.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,r.DEFAULT_GRAPH_MARGIN=15,r.NODE_DIMENSIONS_INCLUDE_LABELS=!1,r.SIMPLE_NODE_SIZE=40,r.SIMPLE_NODE_HALF_SIZE=r.SIMPLE_NODE_SIZE/2,r.EMPTY_COMPOUND_NODE_SIZE=40,r.MIN_EDGE_LENGTH=1,r.WORLD_BOUNDARY=1e6,r.INITIAL_WORLD_BOUNDARY=r.WORLD_BOUNDARY/1e3,r.WORLD_CENTER_X=1200,r.WORLD_CENTER_Y=900,t.exports=r},function(t,e,i){"use strict";var r=i(2),n=i(8),o=i(9);function a(t,e,i){r.call(this,i),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=i,this.bendpoints=[],this.source=t,this.target=e}for(var s in a.prototype=Object.create(r.prototype),r)a[s]=r[s];a.prototype.getSource=function(){return this.source},a.prototype.getTarget=function(){return this.target},a.prototype.isInterGraph=function(){return this.isInterGraph},a.prototype.getLength=function(){return this.length},a.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},a.prototype.getBendpoints=function(){return this.bendpoints},a.prototype.getLca=function(){return this.lca},a.prototype.getSourceInLca=function(){return this.sourceInLca},a.prototype.getTargetInLca=function(){return this.targetInLca},a.prototype.getOtherEnd=function(t){if(this.source===t)return this.target;if(this.target===t)return this.source;throw"Node is not incident with this edge"},a.prototype.getOtherEndInGraph=function(t,e){for(var i=this.getOtherEnd(t),r=e.getGraphManager().getRoot();;){if(i.getOwner()==e)return i;if(i.getOwner()==r)break;i=i.getOwner().getParent()}return null},a.prototype.updateLength=function(){var t=[,,,,];this.isOverlapingSourceAndTarget=n.getIntersection(this.target.getRect(),this.source.getRect(),t),this.isOverlapingSourceAndTarget||(this.lengthX=t[0]-t[2],this.lengthY=t[1]-t[3],1>Math.abs(this.lengthX)&&(this.lengthX=o.sign(this.lengthX)),1>Math.abs(this.lengthY)&&(this.lengthY=o.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},a.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),1>Math.abs(this.lengthX)&&(this.lengthX=o.sign(this.lengthX)),1>Math.abs(this.lengthY)&&(this.lengthY=o.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=a},function(t,e,i){"use strict";t.exports=function(t){this.vGraphObject=t}},function(t,e,i){"use strict";var r=i(2),n=i(10),o=i(13),a=i(0),s=i(16),h=i(5);function l(t,e,i,a){null==i&&null==a&&(a=e),r.call(this,a),null!=t.graphManager&&(t=t.graphManager),this.estimatedSize=n.MIN_VALUE,this.inclusionTreeDepth=n.MAX_VALUE,this.vGraphObject=a,this.edges=[],this.graphManager=t,null!=i&&null!=e?this.rect=new o(e.x,e.y,i.width,i.height):this.rect=new o}for(var d in l.prototype=Object.create(r.prototype),r)l[d]=r[d];l.prototype.getEdges=function(){return this.edges},l.prototype.getChild=function(){return this.child},l.prototype.getOwner=function(){return this.owner},l.prototype.getWidth=function(){return this.rect.width},l.prototype.setWidth=function(t){this.rect.width=t},l.prototype.getHeight=function(){return this.rect.height},l.prototype.setHeight=function(t){this.rect.height=t},l.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},l.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},l.prototype.getCenter=function(){return new h(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},l.prototype.getLocation=function(){return new h(this.rect.x,this.rect.y)},l.prototype.getRect=function(){return this.rect},l.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},l.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},l.prototype.setRect=function(t,e){this.rect.x=t.x,this.rect.y=t.y,this.rect.width=e.width,this.rect.height=e.height},l.prototype.setCenter=function(t,e){this.rect.x=t-this.rect.width/2,this.rect.y=e-this.rect.height/2},l.prototype.setLocation=function(t,e){this.rect.x=t,this.rect.y=e},l.prototype.moveBy=function(t,e){this.rect.x+=t,this.rect.y+=e},l.prototype.getEdgeListToNode=function(t){var e=[],i=this;return i.edges.forEach(function(r){if(r.target==t){if(r.source!=i)throw"Incorrect edge source!";e.push(r)}}),e},l.prototype.getEdgesBetween=function(t){var e=[],i=this;return i.edges.forEach(function(r){if(!(r.source==i||r.target==i))throw"Incorrect edge source and/or target";(r.target==t||r.source==t)&&e.push(r)}),e},l.prototype.getNeighborsList=function(){var t=new Set,e=this;return e.edges.forEach(function(i){if(i.source==e)t.add(i.target);else{if(i.target!=e)throw"Incorrect incidency!";t.add(i.source)}}),t},l.prototype.withChildren=function(){var t=new Set;if(t.add(this),null!=this.child)for(var e=this.child.getNodes(),i=0;i<e.length;i++)e[i].withChildren().forEach(function(e){t.add(e)});return t},l.prototype.getNoOfChildren=function(){var t=0;if(null==this.child)t=1;else for(var e=this.child.getNodes(),i=0;i<e.length;i++)t+=e[i].getNoOfChildren();return 0==t&&(t=1),t},l.prototype.getEstimatedSize=function(){if(this.estimatedSize==n.MIN_VALUE)throw"assert failed";return this.estimatedSize},l.prototype.calcEstimatedSize=function(){return null==this.child?this.estimatedSize=(this.rect.width+this.rect.height)/2:(this.estimatedSize=this.child.calcEstimatedSize(),this.rect.width=this.estimatedSize,this.rect.height=this.estimatedSize,this.estimatedSize)},l.prototype.scatter=function(){var t,e,i=-a.INITIAL_WORLD_BOUNDARY,r=a.INITIAL_WORLD_BOUNDARY;t=a.WORLD_CENTER_X+s.nextDouble()*(r-i)+i;var n=-a.INITIAL_WORLD_BOUNDARY,o=a.INITIAL_WORLD_BOUNDARY;e=a.WORLD_CENTER_Y+s.nextDouble()*(o-n)+n,this.rect.x=t,this.rect.y=e},l.prototype.updateBounds=function(){if(null==this.getChild())throw"assert failed";if(0!=this.getChild().getNodes().length){var t=this.getChild();if(t.updateBounds(!0),this.rect.x=t.getLeft(),this.rect.y=t.getTop(),this.setWidth(t.getRight()-t.getLeft()),this.setHeight(t.getBottom()-t.getTop()),a.NODE_DIMENSIONS_INCLUDE_LABELS){var e=t.getRight()-t.getLeft(),i=t.getBottom()-t.getTop();this.labelWidth&&("left"==this.labelPosHorizontal?(this.rect.x-=this.labelWidth,this.setWidth(e+this.labelWidth)):"center"==this.labelPosHorizontal&&this.labelWidth>e?(this.rect.x-=(this.labelWidth-e)/2,this.setWidth(this.labelWidth)):"right"==this.labelPosHorizontal&&this.setWidth(e+this.labelWidth)),this.labelHeight&&("top"==this.labelPosVertical?(this.rect.y-=this.labelHeight,this.setHeight(i+this.labelHeight)):"center"==this.labelPosVertical&&this.labelHeight>i?(this.rect.y-=(this.labelHeight-i)/2,this.setHeight(this.labelHeight)):"bottom"==this.labelPosVertical&&this.setHeight(i+this.labelHeight))}}},l.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==n.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},l.prototype.transform=function(t){var e=this.rect.x;e>a.WORLD_BOUNDARY?e=a.WORLD_BOUNDARY:e<-a.WORLD_BOUNDARY&&(e=-a.WORLD_BOUNDARY);var i=this.rect.y;i>a.WORLD_BOUNDARY?i=a.WORLD_BOUNDARY:i<-a.WORLD_BOUNDARY&&(i=-a.WORLD_BOUNDARY);var r=new h(e,i),n=t.inverseTransformPoint(r);this.setLocation(n.x,n.y)},l.prototype.getLeft=function(){return this.rect.x},l.prototype.getRight=function(){return this.rect.x+this.rect.width},l.prototype.getTop=function(){return this.rect.y},l.prototype.getBottom=function(){return this.rect.y+this.rect.height},l.prototype.getParent=function(){return null==this.owner?null:this.owner.getParent()},t.exports=l},function(t,e,i){"use strict";var r=i(0);function n(){}for(var o in r)n[o]=r[o];n.MAX_ITERATIONS=2500,n.DEFAULT_EDGE_LENGTH=50,n.DEFAULT_SPRING_STRENGTH=.45,n.DEFAULT_REPULSION_STRENGTH=4500,n.DEFAULT_GRAVITY_STRENGTH=.4,n.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,n.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,n.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,n.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,n.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,n.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,n.COOLING_ADAPTATION_FACTOR=.33,n.ADAPTATION_LOWER_NODE_LIMIT=1e3,n.ADAPTATION_UPPER_NODE_LIMIT=5e3,n.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,n.MAX_NODE_DISPLACEMENT=3*n.MAX_NODE_DISPLACEMENT_INCREMENTAL,n.MIN_REPULSION_DIST=n.DEFAULT_EDGE_LENGTH/10,n.CONVERGENCE_CHECK_PERIOD=100,n.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,n.MIN_EDGE_LENGTH=1,n.GRID_CALCULATION_CHECK_PERIOD=10,t.exports=n},function(t,e,i){"use strict";function r(t,e){null==t&&null==e?(this.x=0,this.y=0):(this.x=t,this.y=e)}r.prototype.getX=function(){return this.x},r.prototype.getY=function(){return this.y},r.prototype.setX=function(t){this.x=t},r.prototype.setY=function(t){this.y=t},r.prototype.getDifference=function(t){return new DimensionD(this.x-t.x,this.y-t.y)},r.prototype.getCopy=function(){return new r(this.x,this.y)},r.prototype.translate=function(t){return this.x+=t.width,this.y+=t.height,this},t.exports=r},function(t,e,i){"use strict";var r=i(2),n=i(10),o=i(0),a=i(7),s=i(3),h=i(1),l=i(13),d=i(12),c=i(11);function g(t,e,i){r.call(this,i),this.estimatedSize=n.MIN_VALUE,this.margin=o.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=t,null!=e&&e instanceof a?this.graphManager=e:null!=e&&e instanceof Layout&&(this.graphManager=e.graphManager)}for(var u in g.prototype=Object.create(r.prototype),r)g[u]=r[u];g.prototype.getNodes=function(){return this.nodes},g.prototype.getEdges=function(){return this.edges},g.prototype.getGraphManager=function(){return this.graphManager},g.prototype.getParent=function(){return this.parent},g.prototype.getLeft=function(){return this.left},g.prototype.getRight=function(){return this.right},g.prototype.getTop=function(){return this.top},g.prototype.getBottom=function(){return this.bottom},g.prototype.isConnected=function(){return this.isConnected},g.prototype.add=function(t,e,i){if(null==e&&null==i){if(null==this.graphManager)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(t)>-1)throw"Node already in graph!";return t.owner=this,this.getNodes().push(t),t}if(!(this.getNodes().indexOf(e)>-1&&this.getNodes().indexOf(i)>-1))throw"Source or target not in graph!";if(!(e.owner==i.owner&&e.owner==this))throw"Both owners must be this graph!";return e.owner!=i.owner?null:(t.source=e,t.target=i,t.isInterGraph=!1,this.getEdges().push(t),e.edges.push(t),i!=e&&i.edges.push(t),t)},g.prototype.remove=function(t){if(t instanceof s){if(null==t)throw"Node is null!";if(!(null!=t.owner&&t.owner==this))throw"Owner graph is invalid!";if(null==this.graphManager)throw"Owner graph manager is invalid!";for(var e,i=t.edges.slice(),r=i.length,n=0;n<r;n++)(e=i[n]).isInterGraph?this.graphManager.remove(e):e.source.owner.remove(e);var o=this.nodes.indexOf(t);if(-1==o)throw"Node not in owner node list!";this.nodes.splice(o,1)}else if(t instanceof h){var e=t;if(null==e)throw"Edge is null!";if(!(null!=e.source&&null!=e.target))throw"Source and/or target is null!";if(!(null!=e.source.owner&&null!=e.target.owner&&e.source.owner==this&&e.target.owner==this))throw"Source and/or target owner is invalid!";var a=e.source.edges.indexOf(e),l=e.target.edges.indexOf(e);if(!(a>-1&&l>-1))throw"Source and/or target doesn't know this edge!";e.source.edges.splice(a,1),e.target!=e.source&&e.target.edges.splice(l,1);var o=e.source.owner.getEdges().indexOf(e);if(-1==o)throw"Not in owner's edge list!";e.source.owner.getEdges().splice(o,1)}},g.prototype.updateLeftTop=function(){for(var t,e,i,r=n.MAX_VALUE,o=n.MAX_VALUE,a=this.getNodes(),s=a.length,h=0;h<s;h++){var l=a[h];t=l.getTop(),e=l.getLeft(),r>t&&(r=t),o>e&&(o=e)}return r==n.MAX_VALUE?null:(i=void 0!=a[0].getParent().paddingLeft?a[0].getParent().paddingLeft:this.margin,this.left=o-i,this.top=r-i,new d(this.left,this.top))},g.prototype.updateBounds=function(t){for(var e,i,r,o,a,s=n.MAX_VALUE,h=-n.MAX_VALUE,d=n.MAX_VALUE,c=-n.MAX_VALUE,g=this.nodes,u=g.length,f=0;f<u;f++){var p=g[f];t&&null!=p.child&&p.updateBounds(),e=p.getLeft(),i=p.getRight(),r=p.getTop(),o=p.getBottom(),s>e&&(s=e),h<i&&(h=i),d>r&&(d=r),c<o&&(c=o)}var v=new l(s,d,h-s,c-d);s==n.MAX_VALUE&&(this.left=this.parent.getLeft(),this.right=this.parent.getRight(),this.top=this.parent.getTop(),this.bottom=this.parent.getBottom()),a=void 0!=g[0].getParent().paddingLeft?g[0].getParent().paddingLeft:this.margin,this.left=v.x-a,this.right=v.x+v.width+a,this.top=v.y-a,this.bottom=v.y+v.height+a},g.calculateBounds=function(t){for(var e,i,r,o,a=n.MAX_VALUE,s=-n.MAX_VALUE,h=n.MAX_VALUE,d=-n.MAX_VALUE,c=t.length,g=0;g<c;g++){var u=t[g];e=u.getLeft(),i=u.getRight(),r=u.getTop(),o=u.getBottom(),a>e&&(a=e),s<i&&(s=i),h>r&&(h=r),d<o&&(d=o)}return new l(a,h,s-a,d-h)},g.prototype.getInclusionTreeDepth=function(){return this==this.graphManager.getRoot()?1:this.parent.getInclusionTreeDepth()},g.prototype.getEstimatedSize=function(){if(this.estimatedSize==n.MIN_VALUE)throw"assert failed";return this.estimatedSize},g.prototype.calcEstimatedSize=function(){for(var t=0,e=this.nodes,i=e.length,r=0;r<i;r++)t+=e[r].calcEstimatedSize();return 0==t?this.estimatedSize=o.EMPTY_COMPOUND_NODE_SIZE:this.estimatedSize=t/Math.sqrt(this.nodes.length),this.estimatedSize},g.prototype.updateConnected=function(){var t,e,i=this;if(0==this.nodes.length){this.isConnected=!0;return}var r=new c,n=new Set,o=this.nodes[0];for(o.withChildren().forEach(function(t){r.push(t),n.add(t)});0!==r.length;)for(var a=(t=(o=r.shift()).getEdges()).length,s=0;s<a;s++)null==(e=t[s].getOtherEndInGraph(o,this))||n.has(e)||e.withChildren().forEach(function(t){r.push(t),n.add(t)});if(this.isConnected=!1,n.size>=this.nodes.length){var h=0;n.forEach(function(t){t.owner==i&&h++}),h==this.nodes.length&&(this.isConnected=!0)}},t.exports=g},function(t,e,i){"use strict";var r,n=i(1);function o(t){r=i(6),this.layout=t,this.graphs=[],this.edges=[]}o.prototype.addRoot=function(){var t=this.layout.newGraph(),e=this.layout.newNode(null),i=this.add(t,e);return this.setRootGraph(i),this.rootGraph},o.prototype.add=function(t,e,i,r,n){if(null==i&&null==r&&null==n){if(null==t)throw"Graph is null!";if(null==e)throw"Parent node is null!";if(this.graphs.indexOf(t)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(t),null!=t.parent)throw"Already has a parent!";if(null!=e.child)throw"Already has a child!";return t.parent=e,e.child=t,t}n=i,r=e,i=t;var o=r.getOwner(),a=n.getOwner();if(!(null!=o&&o.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(null!=a&&a.getGraphManager()==this))throw"Target not in this graph mgr!";if(o==a)return i.isInterGraph=!1,o.add(i,r,n);if(i.isInterGraph=!0,i.source=r,i.target=n,this.edges.indexOf(i)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(i),!(null!=i.source&&null!=i.target))throw"Edge source and/or target is null!";if(!(-1==i.source.edges.indexOf(i)&&-1==i.target.edges.indexOf(i)))throw"Edge already in source and/or target incidency list!";return i.source.edges.push(i),i.target.edges.push(i),i},o.prototype.remove=function(t){if(t instanceof r){if(t.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(t==this.rootGraph||null!=t.parent&&t.parent.graphManager==this))throw"Invalid parent node!";for(var e,i,o=[],a=(o=o.concat(t.getEdges())).length,s=0;s<a;s++)e=o[s],t.remove(e);var h=[];a=(h=h.concat(t.getNodes())).length;for(var s=0;s<a;s++)i=h[s],t.remove(i);t==this.rootGraph&&this.setRootGraph(null);var l=this.graphs.indexOf(t);this.graphs.splice(l,1),t.parent=null}else if(t instanceof n){if(null==(e=t))throw"Edge is null!";if(!e.isInterGraph)throw"Not an inter-graph edge!";if(!(null!=e.source&&null!=e.target))throw"Source and/or target is null!";if(!(-1!=e.source.edges.indexOf(e)&&-1!=e.target.edges.indexOf(e)))throw"Source and/or target doesn't know this edge!";var l=e.source.edges.indexOf(e);if(e.source.edges.splice(l,1),l=e.target.edges.indexOf(e),e.target.edges.splice(l,1),!(null!=e.source.owner&&null!=e.source.owner.getGraphManager()))throw"Edge owner graph or owner graph manager is null!";if(-1==e.source.owner.getGraphManager().edges.indexOf(e))throw"Not in owner graph manager's edge list!";var l=e.source.owner.getGraphManager().edges.indexOf(e);e.source.owner.getGraphManager().edges.splice(l,1)}},o.prototype.updateBounds=function(){this.rootGraph.updateBounds(!0)},o.prototype.getGraphs=function(){return this.graphs},o.prototype.getAllNodes=function(){if(null==this.allNodes){for(var t=[],e=this.getGraphs(),i=e.length,r=0;r<i;r++)t=t.concat(e[r].getNodes());this.allNodes=t}return this.allNodes},o.prototype.resetAllNodes=function(){this.allNodes=null},o.prototype.resetAllEdges=function(){this.allEdges=null},o.prototype.resetAllNodesToApplyGravitation=function(){this.allNodesToApplyGravitation=null},o.prototype.getAllEdges=function(){if(null==this.allEdges){var t=[],e=this.getGraphs();e.length;for(var i=0;i<e.length;i++)t=t.concat(e[i].getEdges());t=t.concat(this.edges),this.allEdges=t}return this.allEdges},o.prototype.getAllNodesToApplyGravitation=function(){return this.allNodesToApplyGravitation},o.prototype.setAllNodesToApplyGravitation=function(t){if(null!=this.allNodesToApplyGravitation)throw"assert failed";this.allNodesToApplyGravitation=t},o.prototype.getRoot=function(){return this.rootGraph},o.prototype.setRootGraph=function(t){if(t.getGraphManager()!=this)throw"Root not in this graph mgr!";this.rootGraph=t,null==t.parent&&(t.parent=this.layout.newNode("Root node"))},o.prototype.getLayout=function(){return this.layout},o.prototype.isOneAncestorOfOther=function(t,e){if(!(null!=t&&null!=e))throw"assert failed";if(t==e)return!0;for(var i,r=t.getOwner();null!=(i=r.getParent());){if(i==e)return!0;if(null==(r=i.getOwner()))break}for(r=e.getOwner();null!=(i=r.getParent());){if(i==t)return!0;if(null==(r=i.getOwner()))break}return!1},o.prototype.calcLowestCommonAncestors=function(){for(var t,e,i,r,n,o=this.getAllEdges(),a=o.length,s=0;s<a;s++){if(e=(t=o[s]).source,i=t.target,t.lca=null,t.sourceInLca=e,t.targetInLca=i,e==i){t.lca=e.getOwner();continue}for(r=e.getOwner();null==t.lca;){for(t.targetInLca=i,n=i.getOwner();null==t.lca;){if(n==r){t.lca=n;break}if(n==this.rootGraph)break;if(null!=t.lca)throw"assert failed";t.targetInLca=n.getParent(),n=t.targetInLca.getOwner()}if(r==this.rootGraph)break;null==t.lca&&(t.sourceInLca=r.getParent(),r=t.sourceInLca.getOwner())}if(null==t.lca)throw"assert failed"}},o.prototype.calcLowestCommonAncestor=function(t,e){if(t==e)return t.getOwner();for(var i=t.getOwner();null!=i;){for(var r=e.getOwner();null!=r;){if(r==i)return r;r=r.getParent().getOwner()}i=i.getParent().getOwner()}return i},o.prototype.calcInclusionTreeDepths=function(t,e){null==t&&null==e&&(t=this.rootGraph,e=1);for(var i,r=t.getNodes(),n=r.length,o=0;o<n;o++)(i=r[o]).inclusionTreeDepth=e,null!=i.child&&this.calcInclusionTreeDepths(i.child,e+1)},o.prototype.includesInvalidEdge=function(){for(var t,e=[],i=this.edges.length,r=0;r<i;r++)t=this.edges[r],this.isOneAncestorOfOther(t.source,t.target)&&e.push(t);for(var r=0;r<e.length;r++)this.remove(e[r]);return!1},t.exports=o},function(t,e,i){"use strict";var r=i(12);function n(){}n.calcSeparationAmount=function(t,e,i,r){if(!t.intersects(e))throw"assert failed";var n=[,,];this.decideDirectionsForOverlappingNodes(t,e,n),i[0]=Math.min(t.getRight(),e.getRight())-Math.max(t.x,e.x),i[1]=Math.min(t.getBottom(),e.getBottom())-Math.max(t.y,e.y),t.getX()<=e.getX()&&t.getRight()>=e.getRight()?i[0]+=Math.min(e.getX()-t.getX(),t.getRight()-e.getRight()):e.getX()<=t.getX()&&e.getRight()>=t.getRight()&&(i[0]+=Math.min(t.getX()-e.getX(),e.getRight()-t.getRight())),t.getY()<=e.getY()&&t.getBottom()>=e.getBottom()?i[1]+=Math.min(e.getY()-t.getY(),t.getBottom()-e.getBottom()):e.getY()<=t.getY()&&e.getBottom()>=t.getBottom()&&(i[1]+=Math.min(t.getY()-e.getY(),e.getBottom()-t.getBottom()));var o=Math.abs((e.getCenterY()-t.getCenterY())/(e.getCenterX()-t.getCenterX()));e.getCenterY()===t.getCenterY()&&e.getCenterX()===t.getCenterX()&&(o=1);var a=o*i[0],s=i[1]/o;i[0]<s?s=i[0]:a=i[1],i[0]=-1*n[0]*(s/2+r),i[1]=-1*n[1]*(a/2+r)},n.decideDirectionsForOverlappingNodes=function(t,e,i){t.getCenterX()<e.getCenterX()?i[0]=-1:i[0]=1,t.getCenterY()<e.getCenterY()?i[1]=-1:i[1]=1},n.getIntersection2=function(t,e,i){var r=t.getCenterX(),n=t.getCenterY(),o=e.getCenterX(),a=e.getCenterY();if(t.intersects(e))return i[0]=r,i[1]=n,i[2]=o,i[3]=a,!0;var s=t.getX(),h=t.getY(),l=t.getRight(),d=t.getX(),c=t.getBottom(),g=t.getRight(),u=t.getWidthHalf(),f=t.getHeightHalf(),p=e.getX(),v=e.getY(),y=e.getRight(),m=e.getX(),E=e.getBottom(),N=e.getRight(),T=e.getWidthHalf(),A=e.getHeightHalf(),L=!1,w=!1;if(r===o)n>a?(i[0]=r,i[1]=h,i[2]=o,i[3]=E):n<a&&(i[0]=r,i[1]=c,i[2]=o,i[3]=v);else if(n===a)r>o?(i[0]=s,i[1]=n,i[2]=y,i[3]=a):r<o&&(i[0]=l,i[1]=n,i[2]=p,i[3]=a);else{var I=t.height/t.width,_=e.height/e.width,C=(a-n)/(o-r),M=void 0,O=void 0,x=void 0,D=void 0,R=void 0,b=void 0;if(-I===C?(r>o?(i[0]=d,i[1]=c):(i[0]=l,i[1]=h),L=!0):I===C&&(r>o?(i[0]=s,i[1]=h):(i[0]=g,i[1]=c),L=!0),-_===C?(o>r?(i[2]=m,i[3]=E):(i[2]=y,i[3]=v),w=!0):_===C&&(o>r?(i[2]=p,i[3]=v):(i[2]=N,i[3]=E),w=!0),L&&w)return!1;if(r>o?n>a?(M=this.getCardinalDirection(I,C,4),O=this.getCardinalDirection(_,C,2)):(M=this.getCardinalDirection(-I,C,3),O=this.getCardinalDirection(-_,C,1)):n>a?(M=this.getCardinalDirection(-I,C,1),O=this.getCardinalDirection(-_,C,3)):(M=this.getCardinalDirection(I,C,2),O=this.getCardinalDirection(_,C,4)),!L)switch(M){case 1:D=h,x=r+-f/C,i[0]=x,i[1]=D;break;case 2:x=g,D=n+u*C,i[0]=x,i[1]=D;break;case 3:D=c,x=r+f/C,i[0]=x,i[1]=D;break;case 4:x=d,D=n+-u*C,i[0]=x,i[1]=D}if(!w)switch(O){case 1:b=v,R=o+-A/C,i[2]=R,i[3]=b;break;case 2:R=N,b=a+T*C,i[2]=R,i[3]=b;break;case 3:b=E,R=o+A/C,i[2]=R,i[3]=b;break;case 4:R=m,b=a+-T*C,i[2]=R,i[3]=b}}return!1},n.getCardinalDirection=function(t,e,i){return t>e?i:1+i%4},n.getIntersection=function(t,e,i,n){if(null==n)return this.getIntersection2(t,e,i);var o=t.x,a=t.y,s=e.x,h=e.y,l=i.x,d=i.y,c=n.x,g=n.y,u=void 0,f=void 0,p=void 0,v=void 0,y=void 0,m=void 0,E=void 0;return(u=h-a,p=o-s,y=s*a-o*h,f=g-d,v=l-c,m=c*d-l*g,0==(E=u*v-f*p))?null:new r((p*m-v*y)/E,(f*y-u*m)/E)},n.angleOfVector=function(t,e,i,r){var n=void 0;return t!==i?(n=Math.atan((r-e)/(i-t)),i<t?n+=Math.PI:r<e&&(n+=this.TWO_PI)):n=r<e?this.ONE_AND_HALF_PI:this.HALF_PI,n},n.doIntersect=function(t,e,i,r){var n=t.x,o=t.y,a=e.x,s=e.y,h=i.x,l=i.y,d=r.x,c=r.y,g=(a-n)*(c-l)-(d-h)*(s-o);if(0===g)return!1;var u=((c-l)*(d-n)+(h-d)*(c-o))/g,f=((o-s)*(d-n)+(a-n)*(c-o))/g;return 0<u&&u<1&&0<f&&f<1},n.findCircleLineIntersections=function(t,e,i,r,n,o,a){var s=(i-t)*(i-t)+(r-e)*(r-e),h=2*((t-n)*(i-t)+(e-o)*(r-e)),l=(t-n)*(t-n)+(e-o)*(e-o)-a*a;if(!(h*h-4*s*l>=0))return null;var d=(-h+Math.sqrt(h*h-4*s*l))/(2*s),c=(-h-Math.sqrt(h*h-4*s*l))/(2*s);return d>=0&&d<=1?[d]:c>=0&&c<=1?[c]:null},n.HALF_PI=.5*Math.PI,n.ONE_AND_HALF_PI=1.5*Math.PI,n.TWO_PI=2*Math.PI,n.THREE_PI=3*Math.PI,t.exports=n},function(t,e,i){"use strict";function r(){}r.sign=function(t){return t>0?1:t<0?-1:0},r.floor=function(t){return t<0?Math.ceil(t):Math.floor(t)},r.ceil=function(t){return t<0?Math.floor(t):Math.ceil(t)},t.exports=r},function(t,e,i){"use strict";function r(){}r.MAX_VALUE=2147483647,r.MIN_VALUE=-2147483648,t.exports=r},function(t,e,i){"use strict";var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,i,r){return i&&t(e.prototype,i),r&&t(e,r),e}}(),n=function(t){return{value:t,next:null,prev:null}},o=function(t,e,i,r){return null!==t?t.next=e:r.head=e,null!==i?i.prev=e:r.tail=e,e.prev=t,e.next=i,r.length++,e},a=function(t,e){var i=t.prev,r=t.next;return null!==i?i.next=r:e.head=r,null!==r?r.prev=i:e.tail=i,t.prev=t.next=null,e.length--,t},s=function(){function t(e){var i=this;(function(t,e){if(!(t instanceof e))throw TypeError("Cannot call a class as a function")})(this,t),this.length=0,this.head=null,this.tail=null,null!=e&&e.forEach(function(t){return i.push(t)})}return r(t,[{key:"size",value:function(){return this.length}},{key:"insertBefore",value:function(t,e){return o(e.prev,n(t),e,this)}},{key:"insertAfter",value:function(t,e){return o(e,n(t),e.next,this)}},{key:"insertNodeBefore",value:function(t,e){return o(e.prev,t,e,this)}},{key:"insertNodeAfter",value:function(t,e){return o(e,t,e.next,this)}},{key:"push",value:function(t){return o(this.tail,n(t),null,this)}},{key:"unshift",value:function(t){return o(null,n(t),this.head,this)}},{key:"remove",value:function(t){return a(t,this)}},{key:"pop",value:function(){return a(this.tail,this).value}},{key:"popNode",value:function(){return a(this.tail,this)}},{key:"shift",value:function(){return a(this.head,this).value}},{key:"shiftNode",value:function(){return a(this.head,this)}},{key:"get_object_at",value:function(t){if(t<=this.length()){for(var e=1,i=this.head;e<t;)i=i.next,e++;return i.value}}},{key:"set_object_at",value:function(t,e){if(t<=this.length()){for(var i=1,r=this.head;i<t;)r=r.next,i++;r.value=e}}}]),t}();t.exports=s},function(t,e,i){"use strict";function r(t,e,i){this.x=null,this.y=null,null==t&&null==e&&null==i?(this.x=0,this.y=0):"number"==typeof t&&"number"==typeof e&&null==i?(this.x=t,this.y=e):"Point"==t.constructor.name&&null==e&&null==i&&(i=t,this.x=i.x,this.y=i.y)}r.prototype.getX=function(){return this.x},r.prototype.getY=function(){return this.y},r.prototype.getLocation=function(){return new r(this.x,this.y)},r.prototype.setLocation=function(t,e,i){"Point"==t.constructor.name&&null==e&&null==i?(i=t,this.setLocation(i.x,i.y)):"number"==typeof t&&"number"==typeof e&&null==i&&(parseInt(t)==t&&parseInt(e)==e?this.move(t,e):(this.x=Math.floor(t+.5),this.y=Math.floor(e+.5)))},r.prototype.move=function(t,e){this.x=t,this.y=e},r.prototype.translate=function(t,e){this.x+=t,this.y+=e},r.prototype.equals=function(t){return"Point"==t.constructor.name?this.x==t.x&&this.y==t.y:this==t},r.prototype.toString=function(){return new r().constructor.name+"[x="+this.x+",y="+this.y+"]"},t.exports=r},function(t,e,i){"use strict";function r(t,e,i,r){this.x=0,this.y=0,this.width=0,this.height=0,null!=t&&null!=e&&null!=i&&null!=r&&(this.x=t,this.y=e,this.width=i,this.height=r)}r.prototype.getX=function(){return this.x},r.prototype.setX=function(t){this.x=t},r.prototype.getY=function(){return this.y},r.prototype.setY=function(t){this.y=t},r.prototype.getWidth=function(){return this.width},r.prototype.setWidth=function(t){this.width=t},r.prototype.getHeight=function(){return this.height},r.prototype.setHeight=function(t){this.height=t},r.prototype.getRight=function(){return this.x+this.width},r.prototype.getBottom=function(){return this.y+this.height},r.prototype.intersects=function(t){return!(this.getRight()<t.x||this.getBottom()<t.y||t.getRight()<this.x||t.getBottom()<this.y)},r.prototype.getCenterX=function(){return this.x+this.width/2},r.prototype.getMinX=function(){return this.getX()},r.prototype.getMaxX=function(){return this.getX()+this.width},r.prototype.getCenterY=function(){return this.y+this.height/2},r.prototype.getMinY=function(){return this.getY()},r.prototype.getMaxY=function(){return this.getY()+this.height},r.prototype.getWidthHalf=function(){return this.width/2},r.prototype.getHeightHalf=function(){return this.height/2},t.exports=r},function(t,e,i){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};function n(){}n.lastID=0,n.createID=function(t){return n.isPrimitive(t)?t:(null!=t.uniqueID||(t.uniqueID=n.getString(),n.lastID++),t.uniqueID)},n.getString=function(t){return null==t&&(t=n.lastID),"Object#"+t},n.isPrimitive=function(t){var e=void 0===t?"undefined":r(t);return null==t||"object"!=e&&"function"!=e},t.exports=n},function(t,e,i){"use strict";function r(t){if(!Array.isArray(t))return Array.from(t);for(var e=0,i=Array(t.length);e<t.length;e++)i[e]=t[e];return i}var n=i(0),o=i(7),a=i(3),s=i(1),h=i(6),l=i(5),d=i(17),c=i(29);function g(t){c.call(this),this.layoutQuality=n.QUALITY,this.createBendsAsNeeded=n.DEFAULT_CREATE_BENDS_AS_NEEDED,this.incremental=n.DEFAULT_INCREMENTAL,this.animationOnLayout=n.DEFAULT_ANIMATION_ON_LAYOUT,this.animationDuringLayout=n.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=n.DEFAULT_ANIMATION_PERIOD,this.uniformLeafNodeSizes=n.DEFAULT_UNIFORM_LEAF_NODE_SIZES,this.edgeToDummyNodes=new Map,this.graphManager=new o(this),this.isLayoutFinished=!1,this.isSubLayout=!1,this.isRemoteUse=!1,null!=t&&(this.isRemoteUse=t)}g.RANDOM_SEED=1,g.prototype=Object.create(c.prototype),g.prototype.getGraphManager=function(){return this.graphManager},g.prototype.getAllNodes=function(){return this.graphManager.getAllNodes()},g.prototype.getAllEdges=function(){return this.graphManager.getAllEdges()},g.prototype.getAllNodesToApplyGravitation=function(){return this.graphManager.getAllNodesToApplyGravitation()},g.prototype.newGraphManager=function(){var t=new o(this);return this.graphManager=t,t},g.prototype.newGraph=function(t){return new h(null,this.graphManager,t)},g.prototype.newNode=function(t){return new a(this.graphManager,t)},g.prototype.newEdge=function(t){return new s(null,null,t)},g.prototype.checkLayoutSuccess=function(){return null==this.graphManager.getRoot()||0==this.graphManager.getRoot().getNodes().length||this.graphManager.includesInvalidEdge()},g.prototype.runLayout=function(){var t;return this.isLayoutFinished=!1,this.tilingPreLayout&&this.tilingPreLayout(),this.initParameters(),t=!this.checkLayoutSuccess()&&this.layout(),"during"!==n.ANIMATE&&(t&&!this.isSubLayout&&this.doPostLayout(),this.tilingPostLayout&&this.tilingPostLayout(),this.isLayoutFinished=!0,t)},g.prototype.doPostLayout=function(){this.incremental||this.transform(),this.update()},g.prototype.update2=function(){if(this.createBendsAsNeeded&&(this.createBendpointsFromDummyNodes(),this.graphManager.resetAllEdges()),!this.isRemoteUse){for(var t=this.graphManager.getAllEdges(),e=0;e<t.length;e++)t[e];for(var i=this.graphManager.getRoot().getNodes(),e=0;e<i.length;e++)i[e];this.update(this.graphManager.getRoot())}},g.prototype.update=function(t){if(null==t)this.update2();else if(t instanceof a){if(null!=t.getChild())for(var e=t.getChild().getNodes(),i=0;i<e.length;i++)update(e[i]);null!=t.vGraphObject&&t.vGraphObject.update(t)}else t instanceof s?null!=t.vGraphObject&&t.vGraphObject.update(t):t instanceof h&&null!=t.vGraphObject&&t.vGraphObject.update(t)},g.prototype.initParameters=function(){this.isSubLayout||(this.layoutQuality=n.QUALITY,this.animationDuringLayout=n.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=n.DEFAULT_ANIMATION_PERIOD,this.animationOnLayout=n.DEFAULT_ANIMATION_ON_LAYOUT,this.incremental=n.DEFAULT_INCREMENTAL,this.createBendsAsNeeded=n.DEFAULT_CREATE_BENDS_AS_NEEDED,this.uniformLeafNodeSizes=n.DEFAULT_UNIFORM_LEAF_NODE_SIZES),this.animationDuringLayout&&(this.animationOnLayout=!1)},g.prototype.transform=function(t){if(void 0==t)this.transform(new l(0,0));else{var e=new d,i=this.graphManager.getRoot().updateLeftTop();if(null!=i){e.setWorldOrgX(t.x),e.setWorldOrgY(t.y),e.setDeviceOrgX(i.x),e.setDeviceOrgY(i.y);for(var r=this.getAllNodes(),n=0;n<r.length;n++)r[n].transform(e)}}},g.prototype.positionNodesRandomly=function(t){if(void 0==t)this.positionNodesRandomly(this.getGraphManager().getRoot()),this.getGraphManager().getRoot().updateBounds(!0);else for(var e,i,r=t.getNodes(),n=0;n<r.length;n++)null==(i=(e=r[n]).getChild())?e.scatter():0==i.getNodes().length?e.scatter():(this.positionNodesRandomly(i),e.updateBounds())},g.prototype.getFlatForest=function(){for(var t=[],e=!0,i=this.graphManager.getRoot().getNodes(),n=!0,o=0;o<i.length;o++)null!=i[o].getChild()&&(n=!1);if(!n)return t;var a=new Set,s=[],h=new Map,l=[];for(l=l.concat(i);l.length>0&&e;){for(s.push(l[0]);s.length>0&&e;){var d=s[0];s.splice(0,1),a.add(d);for(var c=d.getEdges(),o=0;o<c.length;o++){var g=c[o].getOtherEnd(d);if(h.get(d)!=g){if(a.has(g)){e=!1;break}s.push(g),h.set(g,d)}}}if(e){var u=[].concat(r(a));t.push(u);for(var o=0;o<u.length;o++){var f=u[o],p=l.indexOf(f);p>-1&&l.splice(p,1)}a=new Set,h=new Map}else t=[]}return t},g.prototype.createDummyNodesForBendpoints=function(t){for(var e=[],i=t.source,r=this.graphManager.calcLowestCommonAncestor(t.source,t.target),n=0;n<t.bendpoints.length;n++){var o=this.newNode(null);o.setRect(new Point(0,0),new Dimension(1,1)),r.add(o);var a=this.newEdge(null);this.graphManager.add(a,i,o),e.add(o),i=o}var a=this.newEdge(null);return this.graphManager.add(a,i,t.target),this.edgeToDummyNodes.set(t,e),t.isInterGraph()?this.graphManager.remove(t):r.remove(t),e},g.prototype.createBendpointsFromDummyNodes=function(){var t=[];t=t.concat(this.graphManager.getAllEdges()),t=[].concat(r(this.edgeToDummyNodes.keys())).concat(t);for(var e=0;e<t.length;e++){var i=t[e];if(i.bendpoints.length>0){for(var n=this.edgeToDummyNodes.get(i),o=0;o<n.length;o++){var a=n[o],s=new l(a.getCenterX(),a.getCenterY()),h=i.bendpoints.get(o);h.x=s.x,h.y=s.y,a.getOwner().remove(a)}this.graphManager.add(i,i.source,i.target)}}},g.transform=function(t,e,i,r){if(void 0==i||void 0==r)return t<=50?(n=9*e/500,o=e/10):(n=9*e/50,o=-8*e),n*t+o;var n,o,a=e;return t<=50?a-=(e-e/i)/50*(50-t):a+=(e*r-e)/50*(t-50),a},g.findCenterOfTree=function(t){var e=[];e=e.concat(t);var i=[],r=new Map,n=!1,o=null;(1==e.length||2==e.length)&&(n=!0,o=e[0]);for(var a=0;a<e.length;a++){var s=e[a],h=s.getNeighborsList().size;r.set(s,s.getNeighborsList().size),1==h&&i.push(s)}var l=[];for(l=l.concat(i);!n;){var d=[];d=d.concat(l),l=[];for(var a=0;a<e.length;a++){var s=e[a],c=e.indexOf(s);c>=0&&e.splice(c,1),s.getNeighborsList().forEach(function(t){if(0>i.indexOf(t)){var e=r.get(t)-1;1==e&&l.push(t),r.set(t,e)}})}i=i.concat(l),(1==e.length||2==e.length)&&(n=!0,o=e[0])}return o},g.prototype.setGraphManager=function(t){this.graphManager=t},t.exports=g},function(t,e,i){"use strict";function r(){}r.seed=1,r.x=0,r.nextDouble=function(){return r.x=1e4*Math.sin(r.seed++),r.x-Math.floor(r.x)},t.exports=r},function(t,e,i){"use strict";var r=i(5);function n(t,e){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}n.prototype.getWorldOrgX=function(){return this.lworldOrgX},n.prototype.setWorldOrgX=function(t){this.lworldOrgX=t},n.prototype.getWorldOrgY=function(){return this.lworldOrgY},n.prototype.setWorldOrgY=function(t){this.lworldOrgY=t},n.prototype.getWorldExtX=function(){return this.lworldExtX},n.prototype.setWorldExtX=function(t){this.lworldExtX=t},n.prototype.getWorldExtY=function(){return this.lworldExtY},n.prototype.setWorldExtY=function(t){this.lworldExtY=t},n.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},n.prototype.setDeviceOrgX=function(t){this.ldeviceOrgX=t},n.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},n.prototype.setDeviceOrgY=function(t){this.ldeviceOrgY=t},n.prototype.getDeviceExtX=function(){return this.ldeviceExtX},n.prototype.setDeviceExtX=function(t){this.ldeviceExtX=t},n.prototype.getDeviceExtY=function(){return this.ldeviceExtY},n.prototype.setDeviceExtY=function(t){this.ldeviceExtY=t},n.prototype.transformX=function(t){var e=0,i=this.lworldExtX;return 0!=i&&(e=this.ldeviceOrgX+(t-this.lworldOrgX)*this.ldeviceExtX/i),e},n.prototype.transformY=function(t){var e=0,i=this.lworldExtY;return 0!=i&&(e=this.ldeviceOrgY+(t-this.lworldOrgY)*this.ldeviceExtY/i),e},n.prototype.inverseTransformX=function(t){var e=0,i=this.ldeviceExtX;return 0!=i&&(e=this.lworldOrgX+(t-this.ldeviceOrgX)*this.lworldExtX/i),e},n.prototype.inverseTransformY=function(t){var e=0,i=this.ldeviceExtY;return 0!=i&&(e=this.lworldOrgY+(t-this.ldeviceOrgY)*this.lworldExtY/i),e},n.prototype.inverseTransformPoint=function(t){return new r(this.inverseTransformX(t.x),this.inverseTransformY(t.y))},t.exports=n},function(t,e,i){"use strict";var r=i(15),n=i(4),o=i(0),a=i(8),s=i(9);function h(){r.call(this),this.useSmartIdealEdgeLengthCalculation=n.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=n.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=n.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=n.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=n.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.displacementThresholdPerNode=3*n.DEFAULT_EDGE_LENGTH/100,this.coolingFactor=n.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.initialCoolingFactor=n.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.totalDisplacement=0,this.oldTotalDisplacement=0,this.maxIterations=n.MAX_ITERATIONS}for(var l in h.prototype=Object.create(r.prototype),r)h[l]=r[l];h.prototype.initParameters=function(){r.prototype.initParameters.call(this,arguments),this.totalIterations=0,this.notAnimatedIterations=0,this.useFRGridVariant=n.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION,this.grid=[]},h.prototype.calcIdealEdgeLengths=function(){for(var t,e,i,r,a,s,h,l=this.getGraphManager().getAllEdges(),d=0;d<l.length;d++)e=(t=l[d]).idealLength,t.isInterGraph&&(r=t.getSource(),a=t.getTarget(),s=t.getSourceInLca().getEstimatedSize(),h=t.getTargetInLca().getEstimatedSize(),this.useSmartIdealEdgeLengthCalculation&&(t.idealLength+=s+h-2*o.SIMPLE_NODE_SIZE),i=t.getLca().getInclusionTreeDepth(),t.idealLength+=e*n.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR*(r.getInclusionTreeDepth()+a.getInclusionTreeDepth()-2*i))},h.prototype.initSpringEmbedder=function(){var t=this.getAllNodes().length;this.incremental?(t>n.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*n.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(t-n.ADAPTATION_LOWER_NODE_LIMIT)/(n.ADAPTATION_UPPER_NODE_LIMIT-n.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-n.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=n.MAX_NODE_DISPLACEMENT_INCREMENTAL):(t>n.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(n.COOLING_ADAPTATION_FACTOR,1-(t-n.ADAPTATION_LOWER_NODE_LIMIT)/(n.ADAPTATION_UPPER_NODE_LIMIT-n.ADAPTATION_LOWER_NODE_LIMIT)*(1-n.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=n.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(5*this.getAllNodes().length,this.maxIterations),this.displacementThresholdPerNode=3*n.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var t,e=this.getAllEdges(),i=0;i<e.length;i++)t=e[i],this.calcSpringForce(t,t.idealLength)},h.prototype.calcRepulsionForces=function(){var t,e,i,r,o,a=!(arguments.length>0)||void 0===arguments[0]||arguments[0],s=arguments.length>1&&void 0!==arguments[1]&&arguments[1],h=this.getAllNodes();if(this.useFRGridVariant)for(this.totalIterations%n.GRID_CALCULATION_CHECK_PERIOD==1&&a&&this.updateGrid(),o=new Set,t=0;t<h.length;t++)i=h[t],this.calculateRepulsionForceOfANode(i,o,a,s),o.add(i);else for(t=0;t<h.length;t++)for(i=h[t],e=t+1;e<h.length;e++)r=h[e],i.getOwner()==r.getOwner()&&this.calcRepulsionForce(i,r)},h.prototype.calcGravitationalForces=function(){for(var t,e=this.getAllNodesToApplyGravitation(),i=0;i<e.length;i++)t=e[i],this.calcGravitationalForce(t)},h.prototype.moveNodes=function(){for(var t=this.getAllNodes(),e=0;e<t.length;e++)t[e].move()},h.prototype.calcSpringForce=function(t,e){var i,r,n,o,a=t.getSource(),s=t.getTarget();if(this.uniformLeafNodeSizes&&null==a.getChild()&&null==s.getChild())t.updateLengthSimple();else if(t.updateLength(),t.isOverlapingSourceAndTarget)return;0!=(i=t.getLength())&&(n=(r=t.edgeElasticity*(i-e))*(t.lengthX/i),o=r*(t.lengthY/i),a.springForceX+=n,a.springForceY+=o,s.springForceX-=n,s.springForceY-=o)},h.prototype.calcRepulsionForce=function(t,e){var i,r,o,h,l,d,c,g=t.getRect(),u=e.getRect(),f=[,,],p=[,,,,];if(g.intersects(u)){a.calcSeparationAmount(g,u,f,n.DEFAULT_EDGE_LENGTH/2),d=2*f[0],c=2*f[1];var v=t.noOfChildren*e.noOfChildren/(t.noOfChildren+e.noOfChildren);t.repulsionForceX-=v*d,t.repulsionForceY-=v*c,e.repulsionForceX+=v*d,e.repulsionForceY+=v*c}else this.uniformLeafNodeSizes&&null==t.getChild()&&null==e.getChild()?(i=u.getCenterX()-g.getCenterX(),r=u.getCenterY()-g.getCenterY()):(a.getIntersection(g,u,p),i=p[2]-p[0],r=p[3]-p[1]),Math.abs(i)<n.MIN_REPULSION_DIST&&(i=s.sign(i)*n.MIN_REPULSION_DIST),Math.abs(r)<n.MIN_REPULSION_DIST&&(r=s.sign(r)*n.MIN_REPULSION_DIST),h=Math.sqrt(o=i*i+r*r),d=(l=(t.nodeRepulsion/2+e.nodeRepulsion/2)*t.noOfChildren*e.noOfChildren/o)*i/h,c=l*r/h,t.repulsionForceX-=d,t.repulsionForceY-=c,e.repulsionForceX+=d,e.repulsionForceY+=c},h.prototype.calcGravitationalForce=function(t){var e,i,r,n,o,a,s,h;i=((e=t.getOwner()).getRight()+e.getLeft())/2,r=(e.getTop()+e.getBottom())/2,n=t.getCenterX()-i,o=t.getCenterY()-r,a=Math.abs(n)+t.getWidth()/2,s=Math.abs(o)+t.getHeight()/2,t.getOwner()==this.graphManager.getRoot()?(a>(h=e.getEstimatedSize()*this.gravityRangeFactor)||s>h)&&(t.gravitationForceX=-this.gravityConstant*n,t.gravitationForceY=-this.gravityConstant*o):(a>(h=e.getEstimatedSize()*this.compoundGravityRangeFactor)||s>h)&&(t.gravitationForceX=-this.gravityConstant*n*this.compoundGravityConstant,t.gravitationForceY=-this.gravityConstant*o*this.compoundGravityConstant)},h.prototype.isConverged=function(){var t,e=!1;return this.totalIterations>this.maxIterations/3&&(e=2>Math.abs(this.totalDisplacement-this.oldTotalDisplacement)),t=this.totalDisplacement<this.totalDisplacementThreshold,this.oldTotalDisplacement=this.totalDisplacement,t||e},h.prototype.animate=function(){this.animationDuringLayout&&!this.isSubLayout&&(this.notAnimatedIterations==this.animationPeriod?(this.update(),this.notAnimatedIterations=0):this.notAnimatedIterations++)},h.prototype.calcNoOfChildrenForAllNodes=function(){for(var t,e=this.graphManager.getAllNodes(),i=0;i<e.length;i++)(t=e[i]).noOfChildren=t.getNoOfChildren()},h.prototype.calcGrid=function(t){var e=0,i=0;e=parseInt(Math.ceil((t.getRight()-t.getLeft())/this.repulsionRange)),i=parseInt(Math.ceil((t.getBottom()-t.getTop())/this.repulsionRange));for(var r=Array(e),n=0;n<e;n++)r[n]=Array(i);for(var n=0;n<e;n++)for(var o=0;o<i;o++)r[n][o]=[];return r},h.prototype.addNodeToGrid=function(t,e,i){var r=0,n=0,o=0,a=0;r=parseInt(Math.floor((t.getRect().x-e)/this.repulsionRange)),n=parseInt(Math.floor((t.getRect().width+t.getRect().x-e)/this.repulsionRange)),o=parseInt(Math.floor((t.getRect().y-i)/this.repulsionRange)),a=parseInt(Math.floor((t.getRect().height+t.getRect().y-i)/this.repulsionRange));for(var s=r;s<=n;s++)for(var h=o;h<=a;h++)this.grid[s][h].push(t),t.setGridCoordinates(r,n,o,a)},h.prototype.updateGrid=function(){var t,e,i=this.getAllNodes();for(t=0,this.grid=this.calcGrid(this.graphManager.getRoot());t<i.length;t++)e=i[t],this.addNodeToGrid(e,this.graphManager.getRoot().getLeft(),this.graphManager.getRoot().getTop())},h.prototype.calculateRepulsionForceOfANode=function(t,e,i,r){if(this.totalIterations%n.GRID_CALCULATION_CHECK_PERIOD==1&&i||r){var o,a=new Set;t.surrounding=[];for(var s=this.grid,h=t.startX-1;h<t.finishX+2;h++)for(var l=t.startY-1;l<t.finishY+2;l++)if(!(h<0||l<0||h>=s.length||l>=s[0].length)){for(var d=0;d<s[h][l].length;d++)if(o=s[h][l][d],t.getOwner()==o.getOwner()&&t!=o&&!e.has(o)&&!a.has(o)){var c=Math.abs(t.getCenterX()-o.getCenterX())-(t.getWidth()/2+o.getWidth()/2),g=Math.abs(t.getCenterY()-o.getCenterY())-(t.getHeight()/2+o.getHeight()/2);c<=this.repulsionRange&&g<=this.repulsionRange&&a.add(o)}}t.surrounding=[].concat(function(t){if(!Array.isArray(t))return Array.from(t);for(var e=0,i=Array(t.length);e<t.length;e++)i[e]=t[e];return i}(a))}for(h=0;h<t.surrounding.length;h++)this.calcRepulsionForce(t,t.surrounding[h])},h.prototype.calcRepulsionRange=function(){return 0},t.exports=h},function(t,e,i){"use strict";var r=i(1),n=i(4);function o(t,e,i){r.call(this,t,e,i),this.idealLength=n.DEFAULT_EDGE_LENGTH,this.edgeElasticity=n.DEFAULT_SPRING_STRENGTH}for(var a in o.prototype=Object.create(r.prototype),r)o[a]=r[a];t.exports=o},function(t,e,i){"use strict";var r=i(3),n=i(4);function o(t,e,i,o){r.call(this,t,e,i,o),this.nodeRepulsion=n.DEFAULT_REPULSION_STRENGTH,this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0,this.startX=0,this.finishX=0,this.startY=0,this.finishY=0,this.surrounding=[]}for(var a in o.prototype=Object.create(r.prototype),r)o[a]=r[a];o.prototype.setGridCoordinates=function(t,e,i,r){this.startX=t,this.finishX=e,this.startY=i,this.finishY=r},t.exports=o},function(t,e,i){"use strict";function r(t,e){this.width=0,this.height=0,null!==t&&null!==e&&(this.height=e,this.width=t)}r.prototype.getWidth=function(){return this.width},r.prototype.setWidth=function(t){this.width=t},r.prototype.getHeight=function(){return this.height},r.prototype.setHeight=function(t){this.height=t},t.exports=r},function(t,e,i){"use strict";var r=i(14);function n(){this.map={},this.keys=[]}n.prototype.put=function(t,e){var i=r.createID(t);this.contains(i)||(this.map[i]=e,this.keys.push(t))},n.prototype.contains=function(t){return r.createID(t),null!=this.map[t]},n.prototype.get=function(t){var e=r.createID(t);return this.map[e]},n.prototype.keySet=function(){return this.keys},t.exports=n},function(t,e,i){"use strict";var r=i(14);function n(){this.set={}}n.prototype.add=function(t){var e=r.createID(t);this.contains(e)||(this.set[e]=t)},n.prototype.remove=function(t){delete this.set[r.createID(t)]},n.prototype.clear=function(){this.set={}},n.prototype.contains=function(t){return this.set[r.createID(t)]==t},n.prototype.isEmpty=function(){return 0===this.size()},n.prototype.size=function(){return Object.keys(this.set).length},n.prototype.addAllTo=function(t){for(var e=Object.keys(this.set),i=e.length,r=0;r<i;r++)t.push(this.set[e[r]])},n.prototype.size=function(){return Object.keys(this.set).length},n.prototype.addAll=function(t){for(var e=t.length,i=0;i<e;i++){var r=t[i];this.add(r)}},t.exports=n},function(t,e,i){"use strict";function r(){}r.multMat=function(t,e){for(var i=[],r=0;r<t.length;r++){i[r]=[];for(var n=0;n<e[0].length;n++){i[r][n]=0;for(var o=0;o<t[0].length;o++)i[r][n]+=t[r][o]*e[o][n]}}return i},r.transpose=function(t){for(var e=[],i=0;i<t[0].length;i++){e[i]=[];for(var r=0;r<t.length;r++)e[i][r]=t[r][i]}return e},r.multCons=function(t,e){for(var i=[],r=0;r<t.length;r++)i[r]=t[r]*e;return i},r.minusOp=function(t,e){for(var i=[],r=0;r<t.length;r++)i[r]=t[r]-e[r];return i},r.dotProduct=function(t,e){for(var i=0,r=0;r<t.length;r++)i+=t[r]*e[r];return i},r.mag=function(t){return Math.sqrt(this.dotProduct(t,t))},r.normalize=function(t){for(var e=[],i=this.mag(t),r=0;r<t.length;r++)e[r]=t[r]/i;return e},r.multGamma=function(t){for(var e=[],i=0,r=0;r<t.length;r++)i+=t[r];i*=-1/t.length;for(var n=0;n<t.length;n++)e[n]=i+t[n];return e},r.multL=function(t,e,i){for(var r=[],n=[],o=[],a=0;a<e[0].length;a++){for(var s=0,h=0;h<e.length;h++)s+=-.5*e[h][a]*t[h];n[a]=s}for(var l=0;l<i.length;l++){for(var d=0,c=0;c<i.length;c++)d+=i[l][c]*n[c];o[l]=d}for(var g=0;g<e.length;g++){for(var u=0,f=0;f<e[0].length;f++)u+=e[g][f]*o[f];r[g]=u}return r},t.exports=r},function(t,e,i){"use strict";var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,i,r){return i&&t(e.prototype,i),r&&t(e,r),e}}(),n=i(11),o=function(){function t(e,i){(function(t,e){if(!(t instanceof e))throw TypeError("Cannot call a class as a function")})(this,t),(null!==i||void 0!==i)&&(this.compareFunction=this._defaultCompareFunction);var r=void 0;r=e instanceof n?e.size():e.length,this._quicksort(e,0,r-1)}return r(t,[{key:"_quicksort",value:function(t,e,i){if(e<i){var r=this._partition(t,e,i);this._quicksort(t,e,r),this._quicksort(t,r+1,i)}}},{key:"_partition",value:function(t,e,i){for(var r=this._get(t,e),n=e,o=i;;){for(;this.compareFunction(r,this._get(t,o));)o--;for(;this.compareFunction(this._get(t,n),r);)n++;if(!(n<o))return o;this._swap(t,n,o),n++,o--}}},{key:"_get",value:function(t,e){return t instanceof n?t.get_object_at(e):t[e]}},{key:"_set",value:function(t,e,i){t instanceof n?t.set_object_at(e,i):t[e]=i}},{key:"_swap",value:function(t,e,i){var r=this._get(t,e);this._set(t,e,this._get(t,i)),this._set(t,i,r)}},{key:"_defaultCompareFunction",value:function(t,e){return e>t}}]),t}();t.exports=o},function(t,e,i){"use strict";function r(){}r.svd=function(t){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=t.length,this.n=t[0].length;var e=Math.min(this.m,this.n);this.s=function(t){for(var e=[];t-- >0;)e.push(0);return e}(Math.min(this.m+1,this.n)),this.U=function t(e){if(0==e.length)return 0;for(var i=[],r=0;r<e[0];r++)i.push(t(e.slice(1)));return i}([this.m,e]),this.V=function t(e){if(0==e.length)return 0;for(var i=[],r=0;r<e[0];r++)i.push(t(e.slice(1)));return i}([this.n,this.n]);for(var i=function(t){for(var e=[];t-- >0;)e.push(0);return e}(this.n),n=function(t){for(var e=[];t-- >0;)e.push(0);return e}(this.m),o=Math.min(this.m-1,this.n),a=Math.max(0,Math.min(this.n-2,this.m)),s=0;s<Math.max(o,a);s++){if(s<o){this.s[s]=0;for(var h=s;h<this.m;h++)this.s[s]=r.hypot(this.s[s],t[h][s]);if(0!==this.s[s]){t[s][s]<0&&(this.s[s]=-this.s[s]);for(var l=s;l<this.m;l++)t[l][s]/=this.s[s];t[s][s]+=1}this.s[s]=-this.s[s]}for(var d=s+1;d<this.n;d++){if(p=s<o,v=0!==this.s[s],p&&v){for(var c=0,g=s;g<this.m;g++)c+=t[g][s]*t[g][d];c=-c/t[s][s];for(var u=s;u<this.m;u++)t[u][d]+=c*t[u][s]}i[d]=t[s][d]}if(y=s<o)for(var f=s;f<this.m;f++)this.U[f][s]=t[f][s];if(s<a){i[s]=0;for(var p,v,y,m,E,N=s+1;N<this.n;N++)i[s]=r.hypot(i[s],i[N]);if(0!==i[s]){i[s+1]<0&&(i[s]=-i[s]);for(var T=s+1;T<this.n;T++)i[T]/=i[s];i[s+1]+=1}if(i[s]=-i[s],m=s+1<this.m,E=0!==i[s],m&&E){for(var A=s+1;A<this.m;A++)n[A]=0;for(var L=s+1;L<this.n;L++)for(var w=s+1;w<this.m;w++)n[w]+=i[L]*t[w][L];for(var I=s+1;I<this.n;I++)for(var _=-i[I]/i[s+1],C=s+1;C<this.m;C++)t[C][I]+=_*n[C]}for(var M=s+1;M<this.n;M++)this.V[M][s]=i[M]}}var O=Math.min(this.n,this.m+1);o<this.n&&(this.s[o]=t[o][o]),this.m<O&&(this.s[O-1]=0),a+1<O&&(i[a]=t[a][O-1]),i[O-1]=0;for(var x=o;x<e;x++){for(var D=0;D<this.m;D++)this.U[D][x]=0;this.U[x][x]=1}for(var R=o-1;R>=0;R--)if(0!==this.s[R]){for(var b=R+1;b<e;b++){for(var G=0,F=R;F<this.m;F++)G+=this.U[F][R]*this.U[F][b];G=-G/this.U[R][R];for(var S=R;S<this.m;S++)this.U[S][b]+=G*this.U[S][R]}for(var P=R;P<this.m;P++)this.U[P][R]=-this.U[P][R];this.U[R][R]=1+this.U[R][R];for(var U=0;U<R-1;U++)this.U[U][R]=0}else{for(var Y=0;Y<this.m;Y++)this.U[Y][R]=0;this.U[R][R]=1}for(var k=this.n-1;k>=0;k--){if(tl=k<a,td=0!==i[k],tl&&td)for(var H=k+1;H<e;H++){for(var X=0,z=k+1;z<this.n;z++)X+=this.V[z][k]*this.V[z][H];X=-X/this.V[k+1][k];for(var V=k+1;V<this.n;V++)this.V[V][H]+=X*this.V[V][k]}for(var B=0;B<this.n;B++)this.V[B][k]=0;this.V[k][k]=1}for(var W=O-1;O>0;){var j=void 0,q=void 0;for(j=O-2;j>=-1&&-1!==j;j--)if(Math.abs(i[j])<=16033346880071782e-307+2220446049250313e-31*(Math.abs(this.s[j])+Math.abs(this.s[j+1]))){i[j]=0;break}if(j===O-2)q=4;else{var $=void 0;for($=O-1;$>=j&&$!==j;$--){var K=($!==O?Math.abs(i[$]):0)+($!==j+1?Math.abs(i[$-1]):0);if(Math.abs(this.s[$])<=16033346880071782e-307+2220446049250313e-31*K){this.s[$]=0;break}}$===j?q=3:$===O-1?q=1:(q=2,j=$)}switch(j++,q){case 1:var Z=i[O-2];i[O-2]=0;for(var Q=O-2;Q>=j;Q--){var J=r.hypot(this.s[Q],Z),tt=this.s[Q]/J,te=Z/J;this.s[Q]=J,Q!==j&&(Z=-te*i[Q-1],i[Q-1]=tt*i[Q-1]);for(var ti=0;ti<this.n;ti++)J=tt*this.V[ti][Q]+te*this.V[ti][O-1],this.V[ti][O-1]=-te*this.V[ti][Q]+tt*this.V[ti][O-1],this.V[ti][Q]=J}break;case 2:var tr=i[j-1];i[j-1]=0;for(var tn=j;tn<O;tn++){var to=r.hypot(this.s[tn],tr),ta=this.s[tn]/to,ts=tr/to;this.s[tn]=to,tr=-ts*i[tn],i[tn]=ta*i[tn];for(var th=0;th<this.m;th++)to=ta*this.U[th][tn]+ts*this.U[th][j-1],this.U[th][j-1]=-ts*this.U[th][tn]+ta*this.U[th][j-1],this.U[th][tn]=to}break;case 3:var tl,td,tc,tg,tu=Math.max(Math.max(Math.max(Math.max(Math.abs(this.s[O-1]),Math.abs(this.s[O-2])),Math.abs(i[O-2])),Math.abs(this.s[j])),Math.abs(i[j])),tf=this.s[O-1]/tu,tp=this.s[O-2]/tu,tv=i[O-2]/tu,ty=this.s[j]/tu,tm=i[j]/tu,tE=((tp+tf)*(tp-tf)+tv*tv)/2,tN=tf*tv*(tf*tv),tT=0;tc=0!==tE,tg=0!==tN,(tc||tg)&&(tT=Math.sqrt(tE*tE+tN),tE<0&&(tT=-tT),tT=tN/(tE+tT));for(var tA=(ty+tf)*(ty-tf)+tT,tL=ty*tm,tw=j;tw<O-1;tw++){var tI=r.hypot(tA,tL),t_=tA/tI,tC=tL/tI;tw!==j&&(i[tw-1]=tI),tA=t_*this.s[tw]+tC*i[tw],i[tw]=t_*i[tw]-tC*this.s[tw],tL=tC*this.s[tw+1],this.s[tw+1]=t_*this.s[tw+1];for(var tM=0;tM<this.n;tM++)tI=t_*this.V[tM][tw]+tC*this.V[tM][tw+1],this.V[tM][tw+1]=-tC*this.V[tM][tw]+t_*this.V[tM][tw+1],this.V[tM][tw]=tI;if(tI=r.hypot(tA,tL),t_=tA/tI,tC=tL/tI,this.s[tw]=tI,tA=t_*i[tw]+tC*this.s[tw+1],this.s[tw+1]=-tC*i[tw]+t_*this.s[tw+1],tL=tC*i[tw+1],i[tw+1]=t_*i[tw+1],tw<this.m-1)for(var tO=0;tO<this.m;tO++)tI=t_*this.U[tO][tw]+tC*this.U[tO][tw+1],this.U[tO][tw+1]=-tC*this.U[tO][tw]+t_*this.U[tO][tw+1],this.U[tO][tw]=tI}i[O-2]=tA;break;case 4:if(this.s[j]<=0&&(this.s[j]=this.s[j]<0?-this.s[j]:0,1))for(var tx=0;tx<=W;tx++)this.V[tx][j]=-this.V[tx][j];for(;j<W&&!(this.s[j]>=this.s[j+1]);){var tD=this.s[j];if(this.s[j]=this.s[j+1],this.s[j+1]=tD,j<this.n-1)for(var tR=0;tR<this.n;tR++)tD=this.V[tR][j+1],this.V[tR][j+1]=this.V[tR][j],this.V[tR][j]=tD;if(j<this.m-1)for(var tb=0;tb<this.m;tb++)tD=this.U[tb][j+1],this.U[tb][j+1]=this.U[tb][j],this.U[tb][j]=tD;j++}O--}}return{U:this.U,V:this.V,S:this.s}},r.hypot=function(t,e){var i=void 0;return Math.abs(t)>Math.abs(e)?(i=e/t,i=Math.abs(t)*Math.sqrt(1+i*i)):0!=e?(i=t/e,i=Math.abs(e)*Math.sqrt(1+i*i)):i=0,i},t.exports=r},function(t,e,i){"use strict";var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,i,r){return i&&t(e.prototype,i),r&&t(e,r),e}}(),n=function(){function t(e,i){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1;(function(t,e){if(!(t instanceof e))throw TypeError("Cannot call a class as a function")})(this,t),this.sequence1=e,this.sequence2=i,this.match_score=r,this.mismatch_penalty=n,this.gap_penalty=o,this.iMax=e.length+1,this.jMax=i.length+1,this.grid=Array(this.iMax);for(var a=0;a<this.iMax;a++){this.grid[a]=Array(this.jMax);for(var s=0;s<this.jMax;s++)this.grid[a][s]=0}this.tracebackGrid=Array(this.iMax);for(var h=0;h<this.iMax;h++){this.tracebackGrid[h]=Array(this.jMax);for(var l=0;l<this.jMax;l++)this.tracebackGrid[h][l]=[null,null,null]}this.alignments=[],this.score=-1,this.computeGrids()}return r(t,[{key:"getScore",value:function(){return this.score}},{key:"getAlignments",value:function(){return this.alignments}},{key:"computeGrids",value:function(){for(var t=1;t<this.jMax;t++)this.grid[0][t]=this.grid[0][t-1]+this.gap_penalty,this.tracebackGrid[0][t]=[!1,!1,!0];for(var e=1;e<this.iMax;e++)this.grid[e][0]=this.grid[e-1][0]+this.gap_penalty,this.tracebackGrid[e][0]=[!1,!0,!1];for(var i=1;i<this.iMax;i++)for(var r=1;r<this.jMax;r++){var n=[this.sequence1[i-1]===this.sequence2[r-1]?this.grid[i-1][r-1]+this.match_score:this.grid[i-1][r-1]+this.mismatch_penalty,this.grid[i-1][r]+this.gap_penalty,this.grid[i][r-1]+this.gap_penalty],o=this.arrayAllMaxIndexes(n);this.grid[i][r]=n[o[0]],this.tracebackGrid[i][r]=[o.includes(0),o.includes(1),o.includes(2)]}this.score=this.grid[this.iMax-1][this.jMax-1]}},{key:"alignmentTraceback",value:function(){var t=[];for(t.push({pos:[this.sequence1.length,this.sequence2.length],seq1:"",seq2:""});t[0];){var e=t[0],i=this.tracebackGrid[e.pos[0]][e.pos[1]];i[0]&&t.push({pos:[e.pos[0]-1,e.pos[1]-1],seq1:this.sequence1[e.pos[0]-1]+e.seq1,seq2:this.sequence2[e.pos[1]-1]+e.seq2}),i[1]&&t.push({pos:[e.pos[0]-1,e.pos[1]],seq1:this.sequence1[e.pos[0]-1]+e.seq1,seq2:"-"+e.seq2}),i[2]&&t.push({pos:[e.pos[0],e.pos[1]-1],seq1:"-"+e.seq1,seq2:this.sequence2[e.pos[1]-1]+e.seq2}),0===e.pos[0]&&0===e.pos[1]&&this.alignments.push({sequence1:e.seq1,sequence2:e.seq2}),t.shift()}return this.alignments}},{key:"getAllIndexes",value:function(t,e){for(var i=[],r=-1;-1!==(r=t.indexOf(e,r+1));)i.push(r);return i}},{key:"arrayAllMaxIndexes",value:function(t){return this.getAllIndexes(t,Math.max.apply(null,t))}}]),t}();t.exports=n},function(t,e,i){"use strict";var r=function(){};r.FDLayout=i(18),r.FDLayoutConstants=i(4),r.FDLayoutEdge=i(19),r.FDLayoutNode=i(20),r.DimensionD=i(21),r.HashMap=i(22),r.HashSet=i(23),r.IGeometry=i(8),r.IMath=i(9),r.Integer=i(10),r.Point=i(12),r.PointD=i(5),r.RandomSeed=i(16),r.RectangleD=i(13),r.Transform=i(17),r.UniqueIDGeneretor=i(14),r.Quicksort=i(25),r.LinkedList=i(11),r.LGraphObject=i(2),r.LGraph=i(6),r.LEdge=i(1),r.LGraphManager=i(7),r.LNode=i(3),r.Layout=i(15),r.LayoutConstants=i(0),r.NeedlemanWunsch=i(27),r.Matrix=i(24),r.SVD=i(26),t.exports=r},function(t,e,i){"use strict";function r(){this.listeners=[]}var n=r.prototype;n.addListener=function(t,e){this.listeners.push({event:t,callback:e})},n.removeListener=function(t,e){for(var i=this.listeners.length;i>=0;i--){var r=this.listeners[i];r.event===t&&r.callback===e&&this.listeners.splice(i,1)}},n.emit=function(t,e){for(var i=0;i<this.listeners.length;i++){var r=this.listeners[i];t===r.event&&r.callback(e)}},t.exports=r}])},t.exports=e()},2172:(t,e,i)=>{"use strict";i.d(e,{diagram:()=>tc});var r=i(90492),n=i(27923),o=i(30353),a=i(69439);i(67027);var s=i(93491),h=i(72912),l=i(5165),d=i(60359),c=i(88955),g=i(89601),u={L:"left",R:"right",T:"top",B:"bottom"},f={L:(0,h.K2)(t=>`${t},${t/2} 0,${t} 0,0`,"L"),R:(0,h.K2)(t=>`0,${t/2} ${t},0 ${t},${t}`,"R"),T:(0,h.K2)(t=>`0,0 ${t},0 ${t/2},${t}`,"T"),B:(0,h.K2)(t=>`${t/2},0 ${t},${t} 0,${t}`,"B")},p={L:(0,h.K2)((t,e)=>t-e+2,"L"),R:(0,h.K2)((t,e)=>t-2,"R"),T:(0,h.K2)((t,e)=>t-e+2,"T"),B:(0,h.K2)((t,e)=>t-2,"B")},v=(0,h.K2)(function(t){return m(t)?"L"===t?"R":"L":"T"===t?"B":"T"},"getOppositeArchitectureDirection"),y=(0,h.K2)(function(t){return"L"===t||"R"===t||"T"===t||"B"===t},"isArchitectureDirection"),m=(0,h.K2)(function(t){return"L"===t||"R"===t},"isArchitectureDirectionX"),E=(0,h.K2)(function(t){return"T"===t||"B"===t},"isArchitectureDirectionY"),N=(0,h.K2)(function(t,e){let i=m(t)&&E(e),r=E(t)&&m(e);return i||r},"isArchitectureDirectionXY"),T=(0,h.K2)(function(t){let e=t[0],i=t[1],r=m(e)&&E(i),n=E(e)&&m(i);return r||n},"isArchitecturePairXY"),A=(0,h.K2)(function(t){return"LL"!==t&&"RR"!==t&&"TT"!==t&&"BB"!==t},"isValidArchitectureDirectionPair"),L=(0,h.K2)(function(t,e){let i=`${t}${e}`;return A(i)?i:void 0},"getArchitectureDirectionPair"),w=(0,h.K2)(function([t,e],i){let r=i[0],n=i[1];return m(r)?E(n)?[t+("L"===r?-1:1),e+("T"===n?1:-1)]:[t+("L"===r?-1:1),e]:m(n)?[t+("L"===n?1:-1),e+("T"===r?1:-1)]:[t,e+("T"===r?1:-1)]},"shiftPositionByArchitectureDirectionPair"),I=(0,h.K2)(function(t){return"LT"===t||"TL"===t?[1,1]:"BL"===t||"LB"===t?[1,-1]:"BR"===t||"RB"===t?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),_=(0,h.K2)(function(t){return"service"===t.type},"isArchitectureService"),C=(0,h.K2)(function(t){return"junction"===t.type},"isArchitectureJunction"),M=(0,h.K2)(t=>t.data(),"edgeData"),O=(0,h.K2)(t=>t.data(),"nodeData"),x=h.UI.architecture,D=new a.m(()=>({nodes:{},groups:{},edges:[],registeredIds:{},config:x,dataStructures:void 0,elements:{}})),R=(0,h.K2)(()=>{D.reset(),(0,h.IU)()},"clear"),b=(0,h.K2)(function({id:t,icon:e,in:i,title:r,iconText:n}){if(void 0!==D.records.registeredIds[t])throw Error(`The service id [${t}] is already in use by another ${D.records.registeredIds[t]}`);if(void 0!==i){if(t===i)throw Error(`The service [${t}] cannot be placed within itself`);if(void 0===D.records.registeredIds[i])throw Error(`The service [${t}]'s parent does not exist. Please make sure the parent is created before this service`);if("node"===D.records.registeredIds[i])throw Error(`The service [${t}]'s parent is not a group`)}D.records.registeredIds[t]="node",D.records.nodes[t]={id:t,type:"service",icon:e,iconText:n,title:r,edges:[],in:i}},"addService"),G=(0,h.K2)(()=>Object.values(D.records.nodes).filter(_),"getServices"),F=(0,h.K2)(function({id:t,in:e}){D.records.registeredIds[t]="node",D.records.nodes[t]={id:t,type:"junction",edges:[],in:e}},"addJunction"),S=(0,h.K2)(()=>Object.values(D.records.nodes).filter(C),"getJunctions"),P=(0,h.K2)(()=>Object.values(D.records.nodes),"getNodes"),U=(0,h.K2)(t=>D.records.nodes[t],"getNode"),Y=(0,h.K2)(function({id:t,icon:e,in:i,title:r}){if(void 0!==D.records.registeredIds[t])throw Error(`The group id [${t}] is already in use by another ${D.records.registeredIds[t]}`);if(void 0!==i){if(t===i)throw Error(`The group [${t}] cannot be placed within itself`);if(void 0===D.records.registeredIds[i])throw Error(`The group [${t}]'s parent does not exist. Please make sure the parent is created before this group`);if("node"===D.records.registeredIds[i])throw Error(`The group [${t}]'s parent is not a group`)}D.records.registeredIds[t]="group",D.records.groups[t]={id:t,icon:e,title:r,in:i}},"addGroup"),k=(0,h.K2)(()=>Object.values(D.records.groups),"getGroups"),H=(0,h.K2)(function({lhsId:t,rhsId:e,lhsDir:i,rhsDir:r,lhsInto:n,rhsInto:o,lhsGroup:a,rhsGroup:s,title:h}){if(!y(i))throw Error(`Invalid direction given for left hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${i}`);if(!y(r))throw Error(`Invalid direction given for right hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${r}`);if(void 0===D.records.nodes[t]&&void 0===D.records.groups[t])throw Error(`The left-hand id [${t}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(void 0===D.records.nodes[e]&&void 0===D.records.groups[t])throw Error(`The right-hand id [${e}] does not yet exist. Please create the service/group before declaring an edge to it.`);let l=D.records.nodes[t].in,d=D.records.nodes[e].in;if(a&&l&&d&&l==d)throw Error(`The left-hand id [${t}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(s&&l&&d&&l==d)throw Error(`The right-hand id [${e}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);D.records.edges.push({lhsId:t,lhsDir:i,lhsInto:n,lhsGroup:a,rhsId:e,rhsDir:r,rhsInto:o,rhsGroup:s,title:h}),D.records.nodes[t]&&D.records.nodes[e]&&(D.records.nodes[t].edges.push(D.records.edges[D.records.edges.length-1]),D.records.nodes[e].edges.push(D.records.edges[D.records.edges.length-1]))},"addEdge"),X=(0,h.K2)(()=>D.records.edges,"getEdges"),z=(0,h.K2)(()=>{if(void 0===D.records.dataStructures){let t=Object.entries(D.records.nodes).reduce((t,[e,i])=>(t[e]=i.edges.reduce((t,i)=>{if(i.lhsId===e){let e=L(i.lhsDir,i.rhsDir);e&&(t[e]=i.rhsId)}else{let e=L(i.rhsDir,i.lhsDir);e&&(t[e]=i.lhsId)}return t},{}),t),{}),e=Object.keys(t)[0],i={[e]:1},r=Object.keys(t).reduce((t,i)=>i===e?t:{...t,[i]:1},{}),n=(0,h.K2)(e=>{let n={[e]:[0,0]},o=[e];for(;o.length>0;){let e=o.shift();if(e){i[e]=1,delete r[e];let a=t[e],[s,h]=n[e];Object.entries(a).forEach(([t,e])=>{i[e]||(n[e]=w([s,h],t),o.push(e))})}}return n},"BFS"),o=[n(e)];for(;Object.keys(r).length>0;)o.push(n(Object.keys(r)[0]));D.records.dataStructures={adjList:t,spatialMaps:o}}return D.records.dataStructures},"getDataStructures"),V=(0,h.K2)((t,e)=>{D.records.elements[t]=e},"setElementForId"),B=(0,h.K2)(t=>D.records.elements[t],"getElementById"),W={clear:R,setDiagramTitle:h.ke,getDiagramTitle:h.ab,setAccTitle:h.SV,getAccTitle:h.iN,setAccDescription:h.EI,getAccDescription:h.m7,addService:b,getServices:G,addJunction:F,getJunctions:S,getNodes:P,getNode:U,addGroup:Y,getGroups:k,addEdge:H,getEdges:X,setElementForId:V,getElementById:B,getDataStructures:z};function j(t){let e=(0,h.D7)().architecture;return e?.[t]?e[t]:x[t]}(0,h.K2)(j,"getConfigField");var q=(0,h.K2)((t,e)=>{(0,o.S)(t,e),t.groups.map(e.addGroup),t.services.map(t=>e.addService({...t,type:"service"})),t.junctions.map(t=>e.addJunction({...t,type:"junction"})),t.edges.map(e.addEdge)},"populateDb"),$={parse:(0,h.K2)(async t=>{let e=await (0,l.qg)("architecture",t);h.Rm.debug(e),q(e,W)},"parse")},K=(0,h.K2)(t=>` + .edge { + stroke-width: ${t.archEdgeWidth}; + stroke: ${t.archEdgeColor}; + fill: none; + } + + .arrow { + fill: ${t.archEdgeArrowColor}; + } + + .node-bkg { + fill: none; + stroke: ${t.archGroupBorderColor}; + stroke-width: ${t.archGroupBorderWidth}; + stroke-dasharray: 8; + } + .node-icon-text { + display: flex; + align-items: center; + } + + .node-icon-text > div { + color: #fff; + margin: 1px; + height: fit-content; + text-align: center; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + } +`,"getStyles"),Z=(0,h.K2)(t=>`<g><rect width="80" height="80" style="fill: #087ebf; stroke-width: 0px;"/>${t}</g>`,"wrapIcon"),Q={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:Z('<path id="b" data-name="4" d="m20,57.86c0,3.94,8.95,7.14,20,7.14s20-3.2,20-7.14" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><path id="c" data-name="3" d="m20,45.95c0,3.94,8.95,7.14,20,7.14s20-3.2,20-7.14" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><path id="d" data-name="2" d="m20,34.05c0,3.94,8.95,7.14,20,7.14s20-3.2,20-7.14" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse id="e" data-name="1" cx="40" cy="22.14" rx="20" ry="7.14" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="20" y1="57.86" x2="20" y2="22.14" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="60" y1="57.86" x2="60" y2="22.14" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/>')},server:{body:Z('<rect x="17.5" y="17.5" width="45" height="45" rx="2" ry="2" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="17.5" y1="32.5" x2="62.5" y2="32.5" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="17.5" y1="47.5" x2="62.5" y2="47.5" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><g><path d="m56.25,25c0,.27-.45.5-1,.5h-10.5c-.55,0-1-.23-1-.5s.45-.5,1-.5h10.5c.55,0,1,.23,1,.5Z" style="fill: #fff; stroke-width: 0px;"/><path d="m56.25,25c0,.27-.45.5-1,.5h-10.5c-.55,0-1-.23-1-.5s.45-.5,1-.5h10.5c.55,0,1,.23,1,.5Z" style="fill: none; stroke: #fff; stroke-miterlimit: 10;"/></g><g><path d="m56.25,40c0,.27-.45.5-1,.5h-10.5c-.55,0-1-.23-1-.5s.45-.5,1-.5h10.5c.55,0,1,.23,1,.5Z" style="fill: #fff; stroke-width: 0px;"/><path d="m56.25,40c0,.27-.45.5-1,.5h-10.5c-.55,0-1-.23-1-.5s.45-.5,1-.5h10.5c.55,0,1,.23,1,.5Z" style="fill: none; stroke: #fff; stroke-miterlimit: 10;"/></g><g><path d="m56.25,55c0,.27-.45.5-1,.5h-10.5c-.55,0-1-.23-1-.5s.45-.5,1-.5h10.5c.55,0,1,.23,1,.5Z" style="fill: #fff; stroke-width: 0px;"/><path d="m56.25,55c0,.27-.45.5-1,.5h-10.5c-.55,0-1-.23-1-.5s.45-.5,1-.5h10.5c.55,0,1,.23,1,.5Z" style="fill: none; stroke: #fff; stroke-miterlimit: 10;"/></g><g><circle cx="32.5" cy="25" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/><circle cx="27.5" cy="25" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/><circle cx="22.5" cy="25" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/></g><g><circle cx="32.5" cy="40" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/><circle cx="27.5" cy="40" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/><circle cx="22.5" cy="40" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/></g><g><circle cx="32.5" cy="55" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/><circle cx="27.5" cy="55" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/><circle cx="22.5" cy="55" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/></g>')},disk:{body:Z('<rect x="20" y="15" width="40" height="50" rx="1" ry="1" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse cx="24" cy="19.17" rx=".8" ry=".83" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse cx="56" cy="19.17" rx=".8" ry=".83" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse cx="24" cy="60.83" rx=".8" ry=".83" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse cx="56" cy="60.83" rx=".8" ry=".83" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse cx="40" cy="33.75" rx="14" ry="14.58" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse cx="40" cy="33.75" rx="4" ry="4.17" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><path d="m37.51,42.52l-4.83,13.22c-.26.71-1.1,1.02-1.76.64l-4.18-2.42c-.66-.38-.81-1.26-.33-1.84l9.01-10.8c.88-1.05,2.56-.08,2.09,1.2Z" style="fill: #fff; stroke-width: 0px;"/>')},internet:{body:Z('<circle cx="40" cy="40" r="22.5" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="40" y1="17.5" x2="40" y2="62.5" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="17.5" y1="40" x2="62.5" y2="40" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><path d="m39.99,17.51c-15.28,11.1-15.28,33.88,0,44.98" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><path d="m40.01,17.51c15.28,11.1,15.28,33.88,0,44.98" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="19.75" y1="30.1" x2="60.25" y2="30.1" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="19.75" y1="49.9" x2="60.25" y2="49.9" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/>')},cloud:{body:Z('<path d="m65,47.5c0,2.76-2.24,5-5,5H20c-2.76,0-5-2.24-5-5,0-1.87,1.03-3.51,2.56-4.36-.04-.21-.06-.42-.06-.64,0-2.6,2.48-4.74,5.65-4.97,1.65-4.51,6.34-7.76,11.85-7.76.86,0,1.69.08,2.5.23,2.09-1.57,4.69-2.5,7.5-2.5,6.1,0,11.19,4.38,12.28,10.17,2.14.56,3.72,2.51,3.72,4.83,0,.03,0,.07-.01.1,2.29.46,4.01,2.48,4.01,4.9Z" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/>')},unknown:r.Gc,blank:{body:Z("")}}},J=(0,h.K2)(async function(t,e){let i=j("padding"),r=j("iconSize"),o=r/2,a=r/6,s=a/2;await Promise.all(e.edges().map(async e=>{let{source:r,sourceDir:l,sourceArrow:d,sourceGroup:c,target:g,targetDir:u,targetArrow:v,targetGroup:y,label:A}=M(e),{x:w,y:_}=e[0].sourceEndpoint(),{x:C,y:O}=e[0].midpoint(),{x:x,y:D}=e[0].targetEndpoint(),R=i+4;if(c&&(m(l)?w+="L"===l?-R:R:_+="T"===l?-R:R+18),y&&(m(u)?x+="L"===u?-R:R:D+="T"===u?-R:R+18),c||W.getNode(r)?.type!=="junction"||(m(l)?w+="L"===l?o:-o:_+="T"===l?o:-o),y||W.getNode(g)?.type!=="junction"||(m(u)?x+="L"===u?o:-o:D+="T"===u?o:-o),e[0]._private.rscratch){let e=t.insert("g");if(e.insert("path").attr("d",`M ${w},${_} L ${C},${O} L${x},${D} `).attr("class","edge"),d){let t=m(l)?p[l](w,a):w-s,i=E(l)?p[l](_,a):_-s;e.insert("polygon").attr("points",f[l](a)).attr("transform",`translate(${t},${i})`).attr("class","arrow")}if(v){let t=m(u)?p[u](x,a):x-s,i=E(u)?p[u](D,a):D-s;e.insert("polygon").attr("points",f[u](a)).attr("transform",`translate(${t},${i})`).attr("class","arrow")}if(A){let t=N(l,u)?"XY":m(l)?"X":"Y",i=0;i="X"===t?Math.abs(w-x):"Y"===t?Math.abs(_-D)/1.5:Math.abs(w-x)/2;let r=e.append("g");if(await (0,n.GZ)(r,A,{useHtmlLabels:!1,width:i,classes:"architecture-service-label"},(0,h.D7)()),r.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),"X"===t)r.attr("transform","translate("+C+", "+O+")");else if("Y"===t)r.attr("transform","translate("+C+", "+O+") rotate(-90)");else if("XY"===t){let t=L(l,u);if(t&&T(t)){let e=r.node().getBoundingClientRect(),[i,n]=I(t);r.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*i*n*45})`);let o=r.node().getBoundingClientRect();r.attr("transform",` + translate(${C}, ${O-e.height/2}) + translate(${i*o.width/2}, ${n*o.height/2}) + rotate(${-1*i*n*45}, 0, ${e.height/2}) + `)}}}}}))},"drawEdges"),tt=(0,h.K2)(async function(t,e){let i=.75*j("padding"),o=j("fontSize"),a=j("iconSize")/2;await Promise.all(e.nodes().map(async e=>{let s=O(e);if("group"===s.type){let{h:l,w:d,x1:c,y1:g}=e.boundingBox();t.append("rect").attr("x",c+a).attr("y",g+a).attr("width",d).attr("height",l).attr("class","node-bkg");let u=t.append("g"),f=c,p=g;if(s.icon){let t=u.append("g");t.html(`<g>${await (0,r.WY)(s.icon,{height:i,width:i,fallbackPrefix:Q.prefix})}</g>`),t.attr("transform","translate("+(f+a+1)+", "+(p+a+1)+")"),f+=i,p+=o/2-1-2}if(s.label){let t=u.append("g");await (0,n.GZ)(t,s.label,{useHtmlLabels:!1,width:d,classes:"architecture-service-label"},(0,h.D7)()),t.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),t.attr("transform","translate("+(f+a+4)+", "+(p+a+2)+")")}}}))},"drawGroups"),te=(0,h.K2)(async function(t,e,i){for(let o of i){let i=e.append("g"),a=j("iconSize");if(o.title){let t=i.append("g");await (0,n.GZ)(t,o.title,{useHtmlLabels:!1,width:1.5*a,classes:"architecture-service-label"},(0,h.D7)()),t.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),t.attr("transform","translate("+a/2+", "+a+")")}let s=i.append("g");if(o.icon)s.html(`<g>${await (0,r.WY)(o.icon,{height:a,width:a,fallbackPrefix:Q.prefix})}</g>`);else if(o.iconText){s.html(`<g>${await (0,r.WY)("blank",{height:a,width:a,fallbackPrefix:Q.prefix})}</g>`);let t=s.append("g").append("foreignObject").attr("width",a).attr("height",a).append("div").attr("class","node-icon-text").attr("style",`height: ${a}px;`).append("div").html(o.iconText),e=parseInt(window.getComputedStyle(t.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;t.attr("style",`-webkit-line-clamp: ${Math.floor((a-2)/e)};`)}else s.append("path").attr("class","node-bkg").attr("id","node-"+o.id).attr("d",`M0 ${a} v${-a} q0,-5 5,-5 h${a} q5,0 5,5 v${a} H0 Z`);i.attr("class","architecture-service");let{width:l,height:d}=i._groups[0][0].getBBox();o.width=l,o.height=d,t.setElementForId(o.id,i)}return 0},"drawServices"),ti=(0,h.K2)(function(t,e,i){i.forEach(i=>{let r=e.append("g"),n=j("iconSize");r.append("g").append("rect").attr("id","node-"+i.id).attr("fill-opacity","0").attr("width",n).attr("height",n),r.attr("class","architecture-junction");let{width:o,height:a}=r._groups[0][0].getBBox();r.width=o,r.height=a,t.setElementForId(i.id,r)})},"drawJunctions");function tr(t,e){t.forEach(t=>{e.add({group:"nodes",data:{type:"service",id:t.id,icon:t.icon,label:t.title,parent:t.in,width:j("iconSize"),height:j("iconSize")},classes:"node-service"})})}function tn(t,e){t.forEach(t=>{e.add({group:"nodes",data:{type:"junction",id:t.id,parent:t.in,width:j("iconSize"),height:j("iconSize")},classes:"node-junction"})})}function to(t,e){e.nodes().map(e=>{let i=O(e);"group"!==i.type&&(i.x=e.position().x,i.y=e.position().y,t.getElementById(i.id).attr("transform","translate("+(i.x||0)+","+(i.y||0)+")"))})}function ta(t,e){t.forEach(t=>{e.add({group:"nodes",data:{type:"group",id:t.id,icon:t.icon,label:t.title,parent:t.in},classes:"node-group"})})}function ts(t,e){t.forEach(t=>{let{lhsId:i,rhsId:r,lhsInto:n,lhsGroup:o,rhsInto:a,lhsDir:s,rhsDir:h,rhsGroup:l,title:d}=t,c=N(t.lhsDir,t.rhsDir)?"segments":"straight",g={id:`${i}-${r}`,label:d,source:i,sourceDir:s,sourceArrow:n,sourceGroup:o,sourceEndpoint:"L"===s?"0 50%":"R"===s?"100% 50%":"T"===s?"50% 0":"50% 100%",target:r,targetDir:h,targetArrow:a,targetGroup:l,targetEndpoint:"L"===h?"0 50%":"R"===h?"100% 50%":"T"===h?"50% 0":"50% 100%"};e.add({group:"edges",data:g,classes:c})})}function th(t){let[e,i]=t.map(t=>{let e={},i={};return Object.entries(t).forEach(([t,[r,n]])=>{e[n]||(e[n]=[]),i[r]||(i[r]=[]),e[n].push(t),i[r].push(t)}),{horiz:Object.values(e).filter(t=>t.length>1),vert:Object.values(i).filter(t=>t.length>1)}}).reduce(([t,e],{horiz:i,vert:r})=>[[...t,...i],[...e,...r]],[[],[]]);return{horizontal:e,vertical:i}}function tl(t){let e=[],i=(0,h.K2)(t=>`${t[0]},${t[1]}`,"posToStr"),r=(0,h.K2)(t=>t.split(",").map(t=>parseInt(t)),"strToPos");return t.forEach(t=>{let n=Object.fromEntries(Object.entries(t).map(([t,e])=>[i(e),t])),o=[i([0,0])],a={},s={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;o.length>0;){let t=o.shift();if(t){a[t]=1;let h=n[t];if(h){let l=r(t);Object.entries(s).forEach(([t,r])=>{let s=i([l[0]+r[0],l[1]+r[1]]),d=n[s];d&&!a[s]&&(o.push(s),e.push({[u[t]]:d,[u[v(t)]]:h,gap:1.5*j("iconSize")}))})}}}}),e}function td(t,e,i,r,{spatialMaps:n}){return new Promise(o=>{let a=(0,g.Ltv)("body").append("div").attr("id","cy").attr("style","display:none"),s=(0,d.A)({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight",label:"data(label)","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${j("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${j("padding")}px`}}]});a.remove(),ta(i,s),tr(t,s),tn(e,s),ts(r,s);let l=th(n),c=tl(n),u=s.layout({name:"fcose",quality:"proof",styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(t){let[e,i]=t.connectedNodes(),{parent:r}=O(e),{parent:n}=O(i);return r===n?1.5*j("iconSize"):.5*j("iconSize")},edgeElasticity(t){let[e,i]=t.connectedNodes(),{parent:r}=O(e),{parent:n}=O(i);return r===n?.45:.001},alignmentConstraint:l,relativePlacementConstraint:c});u.one("layoutstop",()=>{function t(t,e,i,r){let n,o;let{x:a,y:s}=t,{x:h,y:l}=e;o=(r-s+(a-i)*(s-l)/(a-h))/Math.sqrt(1+Math.pow((s-l)/(a-h),2)),n=Math.sqrt(Math.pow(r-s,2)+Math.pow(i-a,2)-Math.pow(o,2))/Math.sqrt(Math.pow(h-a,2)+Math.pow(l-s,2));let d=(h-a)*(r-s)-(l-s)*(i-a);switch(!0){case d>=0:d=1;break;case d<0:d=-1}let c=(h-a)*(i-a)+(l-s)*(r-s);switch(!0){case c>=0:c=1;break;case c<0:c=-1}return{distances:o=Math.abs(o)*d,weights:n*=c}}for(let e of((0,h.K2)(t,"getSegmentWeights"),s.startBatch(),Object.values(s.edges())))if(e.data?.()){let{x:i,y:r}=e.source().position(),{x:n,y:o}=e.target().position();if(i!==n&&r!==o){let i=e.sourceEndpoint(),r=e.targetEndpoint(),{sourceDir:n}=M(e),[o,a]=E(n)?[i.x,r.y]:[r.x,i.y],{weights:s,distances:h}=t(i,r,o,a);e.style("segment-distances",h),e.style("segment-weights",s)}}s.endBatch(),u.run()}),u.run(),s.ready(t=>{h.Rm.info("Ready",t),o(s)})})}(0,r.pC)([{name:Q.prefix,icons:Q}]),d.A.use(c),(0,h.K2)(tr,"addServices"),(0,h.K2)(tn,"addJunctions"),(0,h.K2)(to,"positionNodes"),(0,h.K2)(ta,"addGroups"),(0,h.K2)(ts,"addEdges"),(0,h.K2)(th,"getAlignments"),(0,h.K2)(tl,"getRelativeConstraints"),(0,h.K2)(td,"layoutArchitecture");var tc={parser:$,db:W,renderer:{draw:(0,h.K2)(async(t,e,i,r)=>{let n=r.db,o=n.getServices(),a=n.getJunctions(),l=n.getGroups(),d=n.getEdges(),c=n.getDataStructures(),g=(0,s.D)(e),u=g.append("g");u.attr("class","architecture-edges");let f=g.append("g");f.attr("class","architecture-services");let p=g.append("g");p.attr("class","architecture-groups"),await te(n,f,o),ti(n,f,a);let v=await td(o,a,l,d,c);await J(u,v),await tt(p,v),to(n,v),(0,h.ot)(void 0,g,j("padding"),j("useMaxWidth"))},"draw")},styles:K}},69439:(t,e,i)=>{"use strict";i.d(e,{m:()=>n});var r=i(72912),n=class{constructor(t){this.init=t,this.records=this.init()}static{(0,r.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},30353:(t,e,i)=>{"use strict";function r(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}i.d(e,{S:()=>r}),(0,i(72912).K2)(r,"populateCommonDb")}}]); \ No newline at end of file diff --git a/assets/js/228a014d.8c5d602c.js b/assets/js/228a014d.8c5d602c.js new file mode 100644 index 0000000000..6f2524a204 --- /dev/null +++ b/assets/js/228a014d.8c5d602c.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[12959],{15995:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(62540);r(63696);var i=r(11750);function s({children:e,hidden:t,className:r}){return(0,n.jsx)("div",{role:"tabpanel",className:(0,i.A)("tabItem_pnkT",r),hidden:t,children:e})}},27446:(e,t,r)=>{r.d(t,{A:()=>y});var n=r(62540),i=r(63696),s=r(11750),l=r(7846),a=r(49519),o=r(96439),c=r(19739),u=r(66904),d=r(79244);function h(e){var t,r;return null!==(r=null===(t=i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==r?r:[]}function p({value:e,tabValues:t}){return t.some(t=>t.value===e)}var f=r(10709);function m(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function g(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function x({className:e,block:t,selectedValue:r,selectValue:i,tabValues:a}){let o=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.a_)(),u=e=>{let t=e.currentTarget,n=a[o.indexOf(t)].value;n!==r&&(c(t),i(n))},d=e=>{var t,r;let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let r=o.indexOf(e.currentTarget)+1;n=null!==(t=o[r])&&void 0!==t?t:o[0];break}case"ArrowLeft":{let t=o.indexOf(e.currentTarget)-1;n=null!==(r=o[t])&&void 0!==r?r:o[o.length-1]}}null==n||n.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":t},e),children:a.map(({value:e,label:t,attributes:i})=>(0,n.jsx)("li",g(m({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,ref:e=>o.push(e),onKeyDown:d,onClick:u},i),{className:(0,s.A)("tabs__item","tabItem_AQgk",null==i?void 0:i.className,{"tabs__item--active":r===e}),children:null!=t?t:e}),e))})}function j({lazy:e,children:t,selectedValue:r}){let l=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=l.find(e=>e.props.value===r);return e?(0,i.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:l.map((e,t)=>(0,i.cloneElement)(e,{key:t,hidden:e.props.value!==r}))})}function b(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:n}=e,s=function(e){let{values:t,children:r}=e;return(0,i.useMemo)(()=>{let e=null!=t?t:h(r).map(({props:{value:e,label:t,attributes:r,default:n}})=>({value:e,label:t,attributes:r,default:n}));return!function(e){let t=(0,u.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,r])}(e),[l,f]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:t}){var r;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let n=null!==(r=t.find(e=>e.default))&&void 0!==r?r:t[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:t,tabValues:s})),[m,g]=function({queryString:e=!1,groupId:t}){let r=(0,a.W6)(),n=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,c.aZ)(n),(0,i.useCallback)(e=>{var t,i;if(!n)return;let s=new URLSearchParams(r.location.search);s.set(n,e),r.replace((t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r.location),i=i={search:s.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(i)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}),t))},[n,r])]}({queryString:r,groupId:n}),[x,j]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[r,n]=(0,d.Dv)(t);return[r,(0,i.useCallback)(e=>{t&&n.set(e)},[t,n])]}({groupId:n}),b=(()=>{let e=null!=m?m:x;return p({value:e,tabValues:s})?e:null})();return(0,o.A)(()=>{b&&f(b)},[b]),{selectedValue:l,selectValue:(0,i.useCallback)(e=>{if(!p({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);f(e),g(e),j(e)},[g,j,s]),tabValues:s}}(e);return(0,n.jsxs)("div",{className:(0,s.A)("tabs-container","tabList_Qoir"),children:[(0,n.jsx)(x,m({},t,e)),(0,n.jsx)(j,m({},t,e))]})}function y(e){let t=(0,f.A)();return(0,n.jsx)(b,g(m({},e),{children:h(e.children)}),String(t))}},59273:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540),i=r(63696),s=r(52711),l=r(49519);let a=i.forwardRef(function({name:e,children:t},r){let a=function(e){let t=e;for(;(0,i.isValidElement)(t);)[t]=i.Children.toArray(t.props.children);if("string"!=typeof t)throw Error(`Could not extract APITable row name from JSX tree: +${JSON.stringify(e,null,2)}`);return t}(t),o=e?`${e}-${a}`:a,c=`#${o}`,u=(0,l.W6)();return(0,s.A)().collectAnchor(o),(0,n.jsx)("tr",{id:o,tabIndex:0,ref:u.location.hash===c?r:void 0,onClick:e=>{"A"!==e.target.tagName.toUpperCase()&&u.push(c)},onKeyDown:e=>{"Enter"===e.key&&u.push(c)},children:t.props.children})});function o({children:e,name:t}){if("table"!==e.type)throw Error("Bad usage of APITable component.\nIt is probably that your Markdown table is malformed.\nMake sure to double-check you have the appropriate number of columns for each table row.");let[r,s]=i.Children.toArray(e.props.children),l=(0,i.useRef)(null);(0,i.useEffect)(()=>{var e;null===(e=l.current)||void 0===e||e.focus()},[l]);let o=i.Children.map(s.props.children,e=>(0,n.jsx)(a,{name:t,ref:l,children:e}));return(0,n.jsxs)("table",{className:"apiTable_e8hp",children:[r,(0,n.jsx)("tbody",{children:o})]})}},20014:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>u,default:()=>f,frontMatter:()=>c,metadata:()=>n,toc:()=>h});let n=JSON.parse('{"id":"api/plugins/plugin-client-redirects","title":"\u{1F4E6} plugin-client-redirects","description":"Docusaurus Plugin to generate client-side redirects.","source":"@site/docs/api/plugins/plugin-client-redirects.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-client-redirects","permalink":"/docs/api/plugins/@docusaurus/plugin-client-redirects","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-client-redirects.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":4,"frontMatter":{"sidebar_position":4,"slug":"/api/plugins/@docusaurus/plugin-client-redirects"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-content-pages","permalink":"/docs/api/plugins/@docusaurus/plugin-content-pages"},"next":{"title":"\u{1F4E6} plugin-debug","permalink":"/docs/api/plugins/@docusaurus/plugin-debug"}}');var i=r(62540),s=r(43023),l=r(27446),a=r(15995),o=r(59273);let c={sidebar_position:4,slug:"/api/plugins/@docusaurus/plugin-client-redirects"},u="\u{1F4E6} plugin-client-redirects",d={},h=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Types",id:"types",level:3},{value:"<code>RedirectRule</code>",id:"RedirectRule",level:4},{value:"<code>CreateRedirectsFn</code>",id:"CreateRedirectsFn",level:4},{value:"Example configuration",id:"ex-config",level:3}];function p(e){let t={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"-plugin-client-redirects",children:"\u{1F4E6} plugin-client-redirects"})}),"\n","\n",(0,i.jsxs)(t.p,{children:["Docusaurus Plugin to generate ",(0,i.jsx)(t.strong,{children:"client-side redirects"}),"."]}),"\n",(0,i.jsx)(t.p,{children:"This plugin will write additional HTML pages to your static site that redirect the user to your existing Docusaurus pages with JavaScript."}),"\n",(0,i.jsx)(t.admonition,{title:"production only",type:"warning",children:(0,i.jsxs)(t.p,{children:["This plugin is always inactive in development and ",(0,i.jsx)(t.strong,{children:"only active in production"})," because it works on the build output."]})}),"\n",(0,i.jsxs)(t.admonition,{type:"warning",children:[(0,i.jsx)(t.p,{children:"It is better to use server-side redirects whenever possible."}),(0,i.jsx)(t.p,{children:"Before using this plugin, you should look if your hosting provider doesn't offer this feature."})]}),"\n",(0,i.jsx)(t.h2,{id:"installation",children:"Installation"}),"\n",(0,i.jsxs)(l.A,{groupId:"npm2yarn",children:[(0,i.jsx)(a.A,{value:"npm",children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"npm install --save @docusaurus/plugin-client-redirects\n"})})}),(0,i.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"yarn add @docusaurus/plugin-client-redirects\n"})})}),(0,i.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"pnpm add @docusaurus/plugin-client-redirects\n"})})})]}),"\n",(0,i.jsx)(t.h2,{id:"configuration",children:"Configuration"}),"\n",(0,i.jsx)(t.p,{children:"Accepted fields:"}),"\n",(0,i.jsx)(o.A,{children:(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Option"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Default"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"fromExtensions"})}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"string[]"})}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"[]"})}),(0,i.jsx)(t.td,{children:"The extensions to be removed from the route after redirecting."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"toExtensions"})}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"string[]"})}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"[]"})}),(0,i.jsx)(t.td,{children:"The extensions to be appended to the route after redirecting."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"redirects"})}),(0,i.jsx)(t.td,{children:(0,i.jsxs)("code",{children:[(0,i.jsx)(t.a,{href:"#RedirectRule",children:"RedirectRule"}),"[]"]})}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"[]"})}),(0,i.jsx)(t.td,{children:"The list of redirect rules."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"createRedirects"})}),(0,i.jsx)(t.td,{children:(0,i.jsx)("code",{children:(0,i.jsx)(t.a,{href:"#CreateRedirectsFn",children:"CreateRedirectsFn"})})}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"undefined"})}),(0,i.jsx)(t.td,{children:"A callback to create a redirect rule. Docusaurus query this callback against every path it has created, and use its return value to output more paths."})]})]})]})}),"\n",(0,i.jsx)(t.admonition,{type:"note",children:(0,i.jsxs)(t.p,{children:["This plugin will also read the ",(0,i.jsx)(t.a,{href:"/docs/api/docusaurus-config#onDuplicateRoutes",children:(0,i.jsx)(t.code,{children:"siteConfig.onDuplicateRoutes"})})," config to adjust its logging level when multiple files will be emitted to the same location."]})}),"\n",(0,i.jsx)(t.h3,{id:"types",children:"Types"}),"\n",(0,i.jsx)(t.h4,{id:"RedirectRule",children:(0,i.jsx)(t.code,{children:"RedirectRule"})}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-ts",children:"type RedirectRule = {\n to: string;\n from: string | string[];\n};\n"})}),"\n",(0,i.jsxs)(t.admonition,{type:"note",children:[(0,i.jsxs)(t.p,{children:['The idea of "from" and "to" is central in this plugin. "From" means a path that you want to ',(0,i.jsx)(t.em,{children:"create"}),', i.e. an extra HTML file that will be written; "to" means a path to want to redirect ',(0,i.jsx)(t.em,{children:"to"}),", usually a route that Docusaurus already knows about."]}),(0,i.jsx)(t.p,{children:'This is why you can have multiple "from" for the same "to": we will create multiple HTML files that all redirect to the same destination. On the other hand, one "from" can never have more than one "to": the written HTML file needs to have a determinate destination.'})]}),"\n",(0,i.jsx)(t.h4,{id:"CreateRedirectsFn",children:(0,i.jsx)(t.code,{children:"CreateRedirectsFn"})}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-ts",children:'// The parameter `path` is a route that Docusaurus has already created. It can\n// be seen as the "to", and your return value is the "from". Returning a falsy\n// value will not create any redirect pages for this particular path.\ntype CreateRedirectsFn = (path: string) => string[] | string | null | undefined;\n'})}),"\n",(0,i.jsx)(t.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,i.jsx)(t.p,{children:"Here's an example configuration:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n plugins: [\n [\n '@docusaurus/plugin-client-redirects',\n // highlight-start\n {\n fromExtensions: ['html', 'htm'], // /myPage.html -> /myPage\n toExtensions: ['exe', 'zip'], // /myAsset -> /myAsset.zip (if latter exists)\n redirects: [\n // /docs/oldDoc -> /docs/newDoc\n {\n to: '/docs/newDoc',\n from: '/docs/oldDoc',\n },\n // Redirect from multiple old paths to the new path\n {\n to: '/docs/newDoc2',\n from: ['/docs/oldDocFrom2019', '/docs/legacyDocFrom2016'],\n },\n ],\n createRedirects(existingPath) {\n if (existingPath.includes('/community')) {\n // Redirect from /docs/team/X to /community/X and /docs/support/X to /community/X\n return [\n existingPath.replace('/community', '/docs/team'),\n existingPath.replace('/community', '/docs/support'),\n ];\n }\n return undefined; // Return a falsy value: no redirect created\n },\n },\n // highlight-end\n ],\n ],\n};\n"})})]})}function f(e={}){let{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},43023:(e,t,r)=>{r.d(t,{R:()=>l,x:()=>a});var n=r(63696);let i={},s=n.createContext(i);function l(e){let t=n.useContext(s);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:l(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/228a014d.a0b4a93e.js b/assets/js/228a014d.a0b4a93e.js deleted file mode 100644 index 7beab3691f..0000000000 --- a/assets/js/228a014d.a0b4a93e.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[12959],{15995:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(62540);n(63696);var i=n(11750);function s({children:e,hidden:t,className:n}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,i.A)("tabItem_pnkT",n),hidden:t,children:e})}},27446:(e,t,n)=>{n.d(t,{A:()=>y});var r=n(62540),i=n(63696),s=n(11750),l=n(7846),a=n(49519),o=n(96439),c=n(19739),u=n(66904),d=n(79244);function h(e){var t,n;return null!==(n=null===(t=i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==n?n:[]}function p({value:e,tabValues:t}){return t.some(t=>t.value===e)}var f=n(10709);function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function g(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function x({className:e,block:t,selectedValue:n,selectValue:i,tabValues:a}){let o=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.a_)(),u=e=>{let t=e.currentTarget,r=a[o.indexOf(t)].value;r!==n&&(c(t),i(r))},d=e=>{var t,n;let r=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let n=o.indexOf(e.currentTarget)+1;r=null!==(t=o[n])&&void 0!==t?t:o[0];break}case"ArrowLeft":{let t=o.indexOf(e.currentTarget)-1;r=null!==(n=o[t])&&void 0!==n?n:o[o.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":t},e),children:a.map(({value:e,label:t,attributes:i})=>(0,r.jsx)("li",g(m({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>o.push(e),onKeyDown:d,onClick:u},i),{className:(0,s.A)("tabs__item","tabItem_AQgk",null==i?void 0:i.className,{"tabs__item--active":n===e}),children:null!=t?t:e}),e))})}function j({lazy:e,children:t,selectedValue:n}){let l=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=l.find(e=>e.props.value===n);return e?(0,i.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:l.map((e,t)=>(0,i.cloneElement)(e,{key:t,hidden:e.props.value!==n}))})}function b(e){let t=function(e){let{defaultValue:t,queryString:n=!1,groupId:r}=e,s=function(e){let{values:t,children:n}=e;return(0,i.useMemo)(()=>{let e=null!=t?t:h(n).map(({props:{value:e,label:t,attributes:n,default:r}})=>({value:e,label:t,attributes:n,default:r}));return!function(e){let t=(0,u.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,n])}(e),[l,f]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:t}){var n;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let r=null!==(n=t.find(e=>e.default))&&void 0!==n?n:t[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:t,tabValues:s})),[m,g]=function({queryString:e=!1,groupId:t}){let n=(0,a.W6)(),r=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,c.aZ)(r),(0,i.useCallback)(e=>{var t,i;if(!r)return;let s=new URLSearchParams(n.location.search);s.set(r,e),n.replace((t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},n.location),i=i={search:s.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(i)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}),t))},[r,n])]}({queryString:n,groupId:r}),[x,j]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[n,r]=(0,d.Dv)(t);return[n,(0,i.useCallback)(e=>{t&&r.set(e)},[t,r])]}({groupId:r}),b=(()=>{let e=null!=m?m:x;return p({value:e,tabValues:s})?e:null})();return(0,o.A)(()=>{b&&f(b)},[b]),{selectedValue:l,selectValue:(0,i.useCallback)(e=>{if(!p({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);f(e),g(e),j(e)},[g,j,s]),tabValues:s}}(e);return(0,r.jsxs)("div",{className:(0,s.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(x,m({},t,e)),(0,r.jsx)(j,m({},t,e))]})}function y(e){let t=(0,f.A)();return(0,r.jsx)(b,g(m({},e),{children:h(e.children)}),String(t))}},59273:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(62540),i=n(63696),s=n(52711),l=n(49519);let a=i.forwardRef(function({name:e,children:t},n){let a=function(e){let t=e;for(;(0,i.isValidElement)(t);)[t]=i.Children.toArray(t.props.children);if("string"!=typeof t)throw Error(`Could not extract APITable row name from JSX tree: -${JSON.stringify(e,null,2)}`);return t}(t),o=e?`${e}-${a}`:a,c=`#${o}`,u=(0,l.W6)();return(0,s.A)().collectAnchor(o),(0,r.jsx)("tr",{id:o,tabIndex:0,ref:u.location.hash===c?n:void 0,onClick:e=>{"A"!==e.target.tagName.toUpperCase()&&u.push(c)},onKeyDown:e=>{"Enter"===e.key&&u.push(c)},children:t.props.children})});function o({children:e,name:t}){if("table"!==e.type)throw Error("Bad usage of APITable component.\nIt is probably that your Markdown table is malformed.\nMake sure to double-check you have the appropriate number of columns for each table row.");let[n,s]=i.Children.toArray(e.props.children),l=(0,i.useRef)(null);(0,i.useEffect)(()=>{var e;null===(e=l.current)||void 0===e||e.focus()},[l]);let o=i.Children.map(s.props.children,e=>(0,r.jsx)(a,{name:t,ref:l,children:e}));return(0,r.jsxs)("table",{className:"apiTable_e8hp",children:[n,(0,r.jsx)("tbody",{children:o})]})}},20014:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>u,default:()=>f,frontMatter:()=>c,metadata:()=>r,toc:()=>h});let r=JSON.parse('{"id":"api/plugins/plugin-client-redirects","title":"\u{1F4E6} plugin-client-redirects","description":"Docusaurus Plugin to generate client-side redirects.","source":"@site/docs/api/plugins/plugin-client-redirects.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-client-redirects","permalink":"/docs/api/plugins/@docusaurus/plugin-client-redirects","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-client-redirects.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":4,"frontMatter":{"sidebar_position":4,"slug":"/api/plugins/@docusaurus/plugin-client-redirects"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-content-pages","permalink":"/docs/api/plugins/@docusaurus/plugin-content-pages"},"next":{"title":"\u{1F4E6} plugin-debug","permalink":"/docs/api/plugins/@docusaurus/plugin-debug"}}');var i=n(62540),s=n(43023),l=n(27446),a=n(15995),o=n(59273);let c={sidebar_position:4,slug:"/api/plugins/@docusaurus/plugin-client-redirects"},u="\u{1F4E6} plugin-client-redirects",d={},h=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Types",id:"types",level:3},{value:"<code>RedirectRule</code>",id:"RedirectRule",level:4},{value:"<code>CreateRedirectsFn</code>",id:"CreateRedirectsFn",level:4},{value:"Example configuration",id:"ex-config",level:3}];function p(e){let t={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"-plugin-client-redirects",children:"\u{1F4E6} plugin-client-redirects"})}),"\n","\n",(0,i.jsxs)(t.p,{children:["Docusaurus Plugin to generate ",(0,i.jsx)(t.strong,{children:"client-side redirects"}),"."]}),"\n",(0,i.jsx)(t.p,{children:"This plugin will write additional HTML pages to your static site that redirect the user to your existing Docusaurus pages with JavaScript."}),"\n",(0,i.jsx)(t.admonition,{title:"production only",type:"warning",children:(0,i.jsxs)(t.p,{children:["This plugin is always inactive in development and ",(0,i.jsx)(t.strong,{children:"only active in production"})," because it works on the build output."]})}),"\n",(0,i.jsxs)(t.admonition,{type:"warning",children:[(0,i.jsx)(t.p,{children:"It is better to use server-side redirects whenever possible."}),(0,i.jsx)(t.p,{children:"Before using this plugin, you should look if your hosting provider doesn't offer this feature."})]}),"\n",(0,i.jsx)(t.h2,{id:"installation",children:"Installation"}),"\n",(0,i.jsxs)(l.A,{groupId:"npm2yarn",children:[(0,i.jsx)(a.A,{value:"npm",children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"npm install --save @docusaurus/plugin-client-redirects\n"})})}),(0,i.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"yarn add @docusaurus/plugin-client-redirects\n"})})}),(0,i.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"pnpm add @docusaurus/plugin-client-redirects\n"})})})]}),"\n",(0,i.jsx)(t.h2,{id:"configuration",children:"Configuration"}),"\n",(0,i.jsx)(t.p,{children:"Accepted fields:"}),"\n",(0,i.jsx)(o.A,{children:(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Option"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Default"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"fromExtensions"})}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"string[]"})}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"[]"})}),(0,i.jsx)(t.td,{children:"The extensions to be removed from the route after redirecting."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"toExtensions"})}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"string[]"})}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"[]"})}),(0,i.jsx)(t.td,{children:"The extensions to be appended to the route after redirecting."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"redirects"})}),(0,i.jsx)(t.td,{children:(0,i.jsxs)("code",{children:[(0,i.jsx)(t.a,{href:"#RedirectRule",children:"RedirectRule"}),"[]"]})}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"[]"})}),(0,i.jsx)(t.td,{children:"The list of redirect rules."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"createRedirects"})}),(0,i.jsx)(t.td,{children:(0,i.jsx)("code",{children:(0,i.jsx)(t.a,{href:"#CreateRedirectsFn",children:"CreateRedirectsFn"})})}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"undefined"})}),(0,i.jsx)(t.td,{children:"A callback to create a redirect rule. Docusaurus query this callback against every path it has created, and use its return value to output more paths."})]})]})]})}),"\n",(0,i.jsx)(t.admonition,{type:"note",children:(0,i.jsxs)(t.p,{children:["This plugin will also read the ",(0,i.jsx)(t.a,{href:"/docs/api/docusaurus-config#onDuplicateRoutes",children:(0,i.jsx)(t.code,{children:"siteConfig.onDuplicateRoutes"})})," config to adjust its logging level when multiple files will be emitted to the same location."]})}),"\n",(0,i.jsx)(t.h3,{id:"types",children:"Types"}),"\n",(0,i.jsx)(t.h4,{id:"RedirectRule",children:(0,i.jsx)(t.code,{children:"RedirectRule"})}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-ts",children:"type RedirectRule = {\n to: string;\n from: string | string[];\n};\n"})}),"\n",(0,i.jsxs)(t.admonition,{type:"note",children:[(0,i.jsxs)(t.p,{children:['The idea of "from" and "to" is central in this plugin. "From" means a path that you want to ',(0,i.jsx)(t.em,{children:"create"}),', i.e. an extra HTML file that will be written; "to" means a path to want to redirect ',(0,i.jsx)(t.em,{children:"to"}),", usually a route that Docusaurus already knows about."]}),(0,i.jsx)(t.p,{children:'This is why you can have multiple "from" for the same "to": we will create multiple HTML files that all redirect to the same destination. On the other hand, one "from" can never have more than one "to": the written HTML file needs to have a determinate destination.'})]}),"\n",(0,i.jsx)(t.h4,{id:"CreateRedirectsFn",children:(0,i.jsx)(t.code,{children:"CreateRedirectsFn"})}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-ts",children:'// The parameter `path` is a route that Docusaurus has already created. It can\n// be seen as the "to", and your return value is the "from". Returning a falsy\n// value will not create any redirect pages for this particular path.\ntype CreateRedirectsFn = (path: string) => string[] | string | null | undefined;\n'})}),"\n",(0,i.jsx)(t.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,i.jsx)(t.p,{children:"Here's an example configuration:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n plugins: [\n [\n '@docusaurus/plugin-client-redirects',\n // highlight-start\n {\n fromExtensions: ['html', 'htm'], // /myPage.html -> /myPage\n toExtensions: ['exe', 'zip'], // /myAsset -> /myAsset.zip (if latter exists)\n redirects: [\n // /docs/oldDoc -> /docs/newDoc\n {\n to: '/docs/newDoc',\n from: '/docs/oldDoc',\n },\n // Redirect from multiple old paths to the new path\n {\n to: '/docs/newDoc2',\n from: ['/docs/oldDocFrom2019', '/docs/legacyDocFrom2016'],\n },\n ],\n createRedirects(existingPath) {\n if (existingPath.includes('/community')) {\n // Redirect from /docs/team/X to /community/X and /docs/support/X to /community/X\n return [\n existingPath.replace('/community', '/docs/team'),\n existingPath.replace('/community', '/docs/support'),\n ];\n }\n return undefined; // Return a falsy value: no redirect created\n },\n },\n // highlight-end\n ],\n ],\n};\n"})})]})}function f(e={}){let{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},43023:(e,t,n)=>{n.d(t,{R:()=>l,x:()=>a});var r=n(63696);let i={},s=r.createContext(i);function l(e){let t=r.useContext(s);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(i):e.components||i:l(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/23952.9aa2ee78.js b/assets/js/23952.9aa2ee78.js new file mode 100644 index 0000000000..6feef991b7 --- /dev/null +++ b/assets/js/23952.9aa2ee78.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[23952],{23952:(e,t,r)=>{r.d(t,{diagram:()=>o});var a=r(26873),s=r(93491),n=r(72912),i=r(5165),d={parse:(0,n.K2)(async e=>{let t=await (0,i.qg)("info",e);n.Rm.debug(t)},"parse")},g={version:a.r},o={parser:d,db:{getVersion:(0,n.K2)(()=>g.version,"getVersion")},renderer:{draw:(0,n.K2)((e,t,r)=>{n.Rm.debug("rendering info diagram\n"+e);let a=(0,s.D)(t);(0,n.a$)(a,100,400,!0),a.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${r}`)},"draw")}}}}]); \ No newline at end of file diff --git a/assets/js/24053.f04a5c4f.js b/assets/js/24053.f04a5c4f.js deleted file mode 100644 index fa71cba138..0000000000 --- a/assets/js/24053.f04a5c4f.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[24053],{24053:(t,e,r)=>{r.d(e,{a:()=>d,b:()=>M,c:()=>o,d:()=>C,e:()=>v,f:()=>N,g:()=>O,h:()=>_,i:()=>g,l:()=>h,p:()=>B,s:()=>S,u:()=>c});var a=r(17367),i=r(93126),n=r(11336),l=r(91922);let s={extension:(t,e,r)=>{a.l.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",e+"-extensionStart").attr("class","marker extension "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},composition:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-compositionStart").attr("class","marker composition "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},aggregation:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},dependency:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},lollipop:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","white").attr("cx",6).attr("cy",7).attr("r",6)},point:(t,e)=>{t.append("marker").attr("id",e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",10).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",0).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},circle:(t,e)=>{t.append("marker").attr("id",e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},cross:(t,e)=>{t.append("marker").attr("id",e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},barb:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")}},d=(t,e,r,a)=>{e.forEach(e=>{s[e](t,r,a)})},o=(t,e,r,n)=>{let l=t||"";if("object"==typeof l&&(l=l[0]),(0,a.n)((0,a.c)().flowchart.htmlLabels))return l=l.replace(/\\n|\n/g,"<br />"),a.l.info("vertexText"+l),function(t){var e;let r=(0,i.Ltv)(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),a=r.append("xhtml:div"),n=t.label,l=t.isNode?"nodeLabel":"edgeLabel";return a.html('<span class="'+l+'" '+(t.labelStyle?'style="'+t.labelStyle+'"':"")+">"+n+"</span>"),(e=t.labelStyle)&&a.attr("style",e),a.style("display","inline-block"),a.style("white-space","nowrap"),a.attr("xmlns","http://www.w3.org/1999/xhtml"),r.node()}({isNode:n,label:(0,a.L)(l).replace(/fa[blrs]?:fa-[\w-]+/g,t=>`<i class='${t.replace(":"," ")}'></i>`),labelStyle:e.replace("fill:","color:")});{let t=document.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",e.replace("color:","fill:"));for(let e of"string"==typeof l?l.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(l)?l:[]){let a=document.createElementNS("http://www.w3.org/2000/svg","tspan");a.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),a.setAttribute("dy","1em"),a.setAttribute("x","0"),r?a.setAttribute("class","title-row"):a.setAttribute("class","row"),a.textContent=e.trim(),t.appendChild(a)}return t}},h=async(t,e,r,l)=>{let s,d,h;let c=e.useHtmlLabels||(0,a.n)((0,a.c)().flowchart.htmlLabels);s=r||"node default";let p=t.insert("g").attr("class",s).attr("id",e.domId||e.id),g=p.insert("g").attr("class","label").attr("style",e.labelStyle);d=void 0===e.labelText?"":"string"==typeof e.labelText?e.labelText:e.labelText[0];let y=g.node(),f=(h="markdown"===e.labelType?(0,n.c)(g,(0,a.d)((0,a.L)(d),(0,a.c)()),{useHtmlLabels:c,width:e.width||(0,a.c)().flowchart.wrappingWidth,classes:"markdown-node-label"}):y.appendChild(o((0,a.d)((0,a.L)(d),(0,a.c)()),e.labelStyle,!1,l))).getBBox(),u=e.padding/2;if((0,a.n)((0,a.c)().flowchart.htmlLabels)){let t=h.children[0],e=(0,i.Ltv)(h),r=t.getElementsByTagName("img");if(r){let t=""===d.replace(/<img[^>]*>/g,"").trim();await Promise.all([...r].map(e=>new Promise(r=>{function i(){if(e.style.display="flex",e.style.flexDirection="column",t){let t=(0,a.c)().fontSize?(0,a.c)().fontSize:window.getComputedStyle(document.body).fontSize;e.style.width=5*parseInt(t,10)+"px"}else e.style.width="100%";r(e)}setTimeout(()=>{e.complete&&i()}),e.addEventListener("error",i),e.addEventListener("load",i)})))}f=t.getBoundingClientRect(),e.attr("width",f.width),e.attr("height",f.height)}return c?g.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"):g.attr("transform","translate(0, "+-f.height/2+")"),e.centerLabel&&g.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),g.insert("rect",":first-child"),{shapeSvg:p,bbox:f,halfPadding:u,label:g}},c=(t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height};function p(t,e,r,a){return t.insert("polygon",":first-child").attr("points",a.map(function(t){return t.x+","+t.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}let g=(t,e)=>{var r,a,i=t.x,n=t.y,l=e.x-i,s=e.y-n,d=t.width/2,o=t.height/2;return Math.abs(s)*d>Math.abs(l)*o?(s<0&&(o=-o),r=0===s?0:o*l/s,a=o):(l<0&&(d=-d),r=d,a=0===l?0:d*s/l),{x:i+r,y:n+a}},y=function(t,e,r){var a,i,n,l,s,d,o;return a=t.x,i=t.y,n=a-r.x,s=Math.sqrt(e*e*(l=i-r.y)*l+e*e*n*n),d=Math.abs(e*e*n/s),r.x<a&&(d=-d),o=Math.abs(e*e*l/s),r.y<i&&(o=-o),{x:a+d,y:i+o}},f=function(t,e,r){var a=t.x,i=t.y,n=[],l=Number.POSITIVE_INFINITY,s=Number.POSITIVE_INFINITY;"function"==typeof e.forEach?e.forEach(function(t){l=Math.min(l,t.x),s=Math.min(s,t.y)}):(l=Math.min(l,e.x),s=Math.min(s,e.y));for(var d=a-t.width/2-l,o=i-t.height/2-s,h=0;h<e.length;h++){var c=e[h],p=e[h<e.length-1?h+1:0],g=function(t,e,r,a){var i,n,l,s,d,o,h,c,p,g,y,f,u;if(i=e.y-t.y,l=t.x-e.x,d=e.x*t.y-t.x*e.y,p=i*r.x+l*r.y+d,g=i*a.x+l*a.y+d,(0===p||0===g||!(p*g>0))&&(n=a.y-r.y,s=r.x-a.x,o=a.x*r.y-r.x*a.y,h=n*t.x+s*t.y+o,c=n*e.x+s*e.y+o,!(0!==h&&0!==c&&h*c>0)&&0!=(y=i*s-n*l)))return f=Math.abs(y/2),{x:(u=l*o-s*d)<0?(u-f)/y:(u+f)/y,y:(u=n*d-i*o)<0?(u-f)/y:(u+f)/y}}(t,r,{x:d+c.x,y:o+c.y},{x:d+p.x,y:o+p.y});g&&n.push(g)}return n.length?(n.length>1&&n.sort(function(t,e){var a=t.x-r.x,i=t.y-r.y,n=Math.sqrt(a*a+i*i),l=e.x-r.x,s=e.y-r.y,d=Math.sqrt(l*l+s*s);return n<d?-1:n===d?0:1}),n[0]):t},u=t=>t?" "+t:"",x=(t,e)=>`${e||"node default"}${u(t.classes)} ${u(t.class)}`,w=async(t,e)=>{let{shapeSvg:r,bbox:i}=await h(t,e,x(e,void 0),!0),n=i.width+e.padding+(i.height+e.padding),l=[{x:n/2,y:0},{x:n,y:-n/2},{x:n/2,y:-n},{x:0,y:-n/2}];a.l.info("Question main (Circle)");let s=p(r,n,n,l);return s.attr("style",e.style),c(e,s),e.intersect=function(t){return a.l.warn("Intersect called"),f(e,l,t)},r};function b(t,e,r,i){let n=[],l=t=>{n.push(t,0)},s=t=>{n.push(0,t)};e.includes("t")?(a.l.debug("add top border"),l(r)):s(r),e.includes("r")?(a.l.debug("add right border"),l(i)):s(i),e.includes("b")?(a.l.debug("add bottom border"),l(r)):s(r),e.includes("l")?(a.l.debug("add left border"),l(i)):s(i),t.attr("stroke-dasharray",n.join(" "))}let m=(t,e,r)=>{let a=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=70,n=10;return"LR"===r&&(i=10,n=70),c(e,a.append("rect").attr("x",-1*i/2).attr("y",-1*n/2).attr("width",i).attr("height",n).attr("class","fork-join")),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(t){return g(e,t)},a},k={rhombus:w,question:w,rect:async(t,e)=>{let{shapeSvg:r,bbox:i,halfPadding:n}=await h(t,e,"node "+e.classes+" "+e.class,!0),l=r.insert("rect",":first-child"),s=i.width+e.padding,d=i.height+e.padding;if(l.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-n).attr("y",-i.height/2-n).attr("width",s).attr("height",d),e.props){let t=new Set(Object.keys(e.props));e.props.borders&&(b(l,e.props.borders,s,d),t.delete("borders")),t.forEach(t=>{a.l.warn(`Unknown node property ${t}`)})}return c(e,l),e.intersect=function(t){return g(e,t)},r},labelRect:async(t,e)=>{let{shapeSvg:r}=await h(t,e,"label",!0);a.l.trace("Classes = ",e.class);let i=r.insert("rect",":first-child");if(i.attr("width",0).attr("height",0),r.attr("class","label edgeLabel"),e.props){let t=new Set(Object.keys(e.props));e.props.borders&&(b(i,e.props.borders,0,0),t.delete("borders")),t.forEach(t=>{a.l.warn(`Unknown node property ${t}`)})}return c(e,i),e.intersect=function(t){return g(e,t)},r},rectWithTitle:(t,e)=>{let r;r=e.classes?"node "+e.classes:"node default";let n=t.insert("g").attr("class",r).attr("id",e.domId||e.id),l=n.insert("rect",":first-child"),s=n.insert("line"),d=n.insert("g").attr("class","label"),h=e.labelText.flat?e.labelText.flat():e.labelText,p="";p="object"==typeof h?h[0]:h,a.l.info("Label text abc79",p,h,"object"==typeof h);let y=d.node().appendChild(o(p,e.labelStyle,!0,!0)),f={width:0,height:0};if((0,a.n)((0,a.c)().flowchart.htmlLabels)){let t=y.children[0],e=(0,i.Ltv)(y);f=t.getBoundingClientRect(),e.attr("width",f.width),e.attr("height",f.height)}a.l.info("Text 2",h);let u=h.slice(1,h.length),x=y.getBBox(),w=d.node().appendChild(o(u.join?u.join("<br/>"):u,e.labelStyle,!0,!0));if((0,a.n)((0,a.c)().flowchart.htmlLabels)){let t=w.children[0],e=(0,i.Ltv)(w);f=t.getBoundingClientRect(),e.attr("width",f.width),e.attr("height",f.height)}let b=e.padding/2;return(0,i.Ltv)(w).attr("transform","translate( "+(f.width>x.width?0:(x.width-f.width)/2)+", "+(x.height+b+5)+")"),(0,i.Ltv)(y).attr("transform","translate( "+(f.width<x.width?0:-(x.width-f.width)/2)+", 0)"),f=d.node().getBBox(),d.attr("transform","translate("+-f.width/2+", "+(-f.height/2-b+3)+")"),l.attr("class","outer title-state").attr("x",-f.width/2-b).attr("y",-f.height/2-b).attr("width",f.width+e.padding).attr("height",f.height+e.padding),s.attr("class","divider").attr("x1",-f.width/2-b).attr("x2",f.width/2+b).attr("y1",-f.height/2-b+x.height+b).attr("y2",-f.height/2-b+x.height+b),c(e,l),e.intersect=function(t){return g(e,t)},n},choice:(t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);return r.insert("polygon",":first-child").attr("points",[{x:0,y:14},{x:14,y:0},{x:0,y:-14},{x:-14,y:0}].map(function(t){return t.x+","+t.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(t){return y(e,14,t)},r},circle:async(t,e)=>{let{shapeSvg:r,bbox:i,halfPadding:n}=await h(t,e,x(e,void 0),!0),l=r.insert("circle",":first-child");return l.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",i.width/2+n).attr("width",i.width+e.padding).attr("height",i.height+e.padding),a.l.info("Circle main"),c(e,l),e.intersect=function(t){return a.l.info("Circle intersect",e,i.width/2+n,t),y(e,i.width/2+n,t)},r},doublecircle:async(t,e)=>{let{shapeSvg:r,bbox:i,halfPadding:n}=await h(t,e,x(e,void 0),!0),l=r.insert("g",":first-child"),s=l.insert("circle"),d=l.insert("circle");return l.attr("class",e.class),s.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",i.width/2+n+5).attr("width",i.width+e.padding+10).attr("height",i.height+e.padding+10),d.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",i.width/2+n).attr("width",i.width+e.padding).attr("height",i.height+e.padding),a.l.info("DoubleCircle main"),c(e,s),e.intersect=function(t){return a.l.info("DoubleCircle intersect",e,i.width/2+n+5,t),y(e,i.width/2+n+5,t)},r},stadium:async(t,e)=>{let{shapeSvg:r,bbox:a}=await h(t,e,x(e,void 0),!0),i=a.height+e.padding,n=a.width+i/4+e.padding,l=r.insert("rect",":first-child").attr("style",e.style).attr("rx",i/2).attr("ry",i/2).attr("x",-n/2).attr("y",-i/2).attr("width",n).attr("height",i);return c(e,l),e.intersect=function(t){return g(e,t)},r},hexagon:async(t,e)=>{let{shapeSvg:r,bbox:a}=await h(t,e,x(e,void 0),!0),i=a.height+e.padding,n=i/4,l=a.width+2*n+e.padding,s=[{x:n,y:0},{x:l-n,y:0},{x:l,y:-i/2},{x:l-n,y:-i},{x:n,y:-i},{x:0,y:-i/2}],d=p(r,l,i,s);return d.attr("style",e.style),c(e,d),e.intersect=function(t){return f(e,s,t)},r},rect_left_inv_arrow:async(t,e)=>{let{shapeSvg:r,bbox:a}=await h(t,e,x(e,void 0),!0),i=a.width+e.padding,n=a.height+e.padding,l=[{x:-n/2,y:0},{x:i,y:0},{x:i,y:-n},{x:-n/2,y:-n},{x:0,y:-n/2}];return p(r,i,n,l).attr("style",e.style),e.width=i+n,e.height=n,e.intersect=function(t){return f(e,l,t)},r},lean_right:async(t,e)=>{let{shapeSvg:r,bbox:a}=await h(t,e,x(e),!0),i=a.width+e.padding,n=a.height+e.padding,l=[{x:-2*n/6,y:0},{x:i-n/6,y:0},{x:i+2*n/6,y:-n},{x:n/6,y:-n}],s=p(r,i,n,l);return s.attr("style",e.style),c(e,s),e.intersect=function(t){return f(e,l,t)},r},lean_left:async(t,e)=>{let{shapeSvg:r,bbox:a}=await h(t,e,x(e,void 0),!0),i=a.width+e.padding,n=a.height+e.padding,l=[{x:2*n/6,y:0},{x:i+n/6,y:0},{x:i-2*n/6,y:-n},{x:-n/6,y:-n}],s=p(r,i,n,l);return s.attr("style",e.style),c(e,s),e.intersect=function(t){return f(e,l,t)},r},trapezoid:async(t,e)=>{let{shapeSvg:r,bbox:a}=await h(t,e,x(e,void 0),!0),i=a.width+e.padding,n=a.height+e.padding,l=[{x:-2*n/6,y:0},{x:i+2*n/6,y:0},{x:i-n/6,y:-n},{x:n/6,y:-n}],s=p(r,i,n,l);return s.attr("style",e.style),c(e,s),e.intersect=function(t){return f(e,l,t)},r},inv_trapezoid:async(t,e)=>{let{shapeSvg:r,bbox:a}=await h(t,e,x(e,void 0),!0),i=a.width+e.padding,n=a.height+e.padding,l=[{x:n/6,y:0},{x:i-n/6,y:0},{x:i+2*n/6,y:-n},{x:-2*n/6,y:-n}],s=p(r,i,n,l);return s.attr("style",e.style),c(e,s),e.intersect=function(t){return f(e,l,t)},r},rect_right_inv_arrow:async(t,e)=>{let{shapeSvg:r,bbox:a}=await h(t,e,x(e,void 0),!0),i=a.width+e.padding,n=a.height+e.padding,l=[{x:0,y:0},{x:i+n/2,y:0},{x:i,y:-n/2},{x:i+n/2,y:-n},{x:0,y:-n}],s=p(r,i,n,l);return s.attr("style",e.style),c(e,s),e.intersect=function(t){return f(e,l,t)},r},cylinder:async(t,e)=>{let{shapeSvg:r,bbox:a}=await h(t,e,x(e,void 0),!0),i=a.width+e.padding,n=i/2,l=n/(2.5+i/50),s=a.height+l+e.padding,d=r.attr("label-offset-y",l).insert("path",":first-child").attr("style",e.style).attr("d","M 0,"+l+" a "+n+","+l+" 0,0,0 "+i+" 0 a "+n+","+l+" 0,0,0 "+-i+" 0 l 0,"+s+" a "+n+","+l+" 0,0,0 "+i+" 0 l 0,"+-s).attr("transform","translate("+-i/2+","+-(s/2+l)+")");return c(e,d),e.intersect=function(t){let r=g(e,t),a=r.x-e.x;if(0!=n&&(Math.abs(a)<e.width/2||Math.abs(a)==e.width/2&&Math.abs(r.y-e.y)>e.height/2-l)){let i=l*l*(1-a*a/(n*n));0!=i&&(i=Math.sqrt(i)),i=l-i,t.y-e.y>0&&(i=-i),r.y+=i}return r},r},start:(t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a=r.insert("circle",":first-child");return a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),c(e,a),e.intersect=function(t){return y(e,7,t)},r},end:(t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a=r.insert("circle",":first-child"),i=r.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),a.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),c(e,i),e.intersect=function(t){return y(e,7,t)},r},note:async(t,e)=>{e.useHtmlLabels||(0,a.c)().flowchart.htmlLabels||(e.centerLabel=!0);let{shapeSvg:r,bbox:i,halfPadding:n}=await h(t,e,"node "+e.classes,!0);a.l.info("Classes = ",e.classes);let l=r.insert("rect",":first-child");return l.attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-n).attr("y",-i.height/2-n).attr("width",i.width+e.padding).attr("height",i.height+e.padding),c(e,l),e.intersect=function(t){return g(e,t)},r},subroutine:async(t,e)=>{let{shapeSvg:r,bbox:a}=await h(t,e,x(e,void 0),!0),i=a.width+e.padding,n=a.height+e.padding,l=[{x:0,y:0},{x:i,y:0},{x:i,y:-n},{x:0,y:-n},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-n},{x:-8,y:-n},{x:-8,y:0}],s=p(r,i,n,l);return s.attr("style",e.style),c(e,s),e.intersect=function(t){return f(e,l,t)},r},fork:m,join:m,class_box:(t,e)=>{let r;let n=e.padding/2;r=e.classes?"node "+e.classes:"node default";let s=t.insert("g").attr("class",r).attr("id",e.domId||e.id),d=s.insert("rect",":first-child"),h=s.insert("line"),p=s.insert("line"),y=0,f=4,u=s.insert("g").attr("class","label"),x=0,w=e.classData.annotations&&e.classData.annotations[0],b=e.classData.annotations[0]?"\xab"+e.classData.annotations[0]+"\xbb":"",m=u.node().appendChild(o(b,e.labelStyle,!0,!0)),k=m.getBBox();if((0,a.n)((0,a.c)().flowchart.htmlLabels)){let t=m.children[0],e=(0,i.Ltv)(m);k=t.getBoundingClientRect(),e.attr("width",k.width),e.attr("height",k.height)}e.classData.annotations[0]&&(f+=k.height+4,y+=k.width);let L=e.classData.label;void 0!==e.classData.type&&""!==e.classData.type&&((0,a.c)().flowchart.htmlLabels?L+="<"+e.classData.type+">":L+="<"+e.classData.type+">");let v=u.node().appendChild(o(L,e.labelStyle,!0,!0));(0,i.Ltv)(v).attr("class","classTitle");let S=v.getBBox();if((0,a.n)((0,a.c)().flowchart.htmlLabels)){let t=v.children[0],e=(0,i.Ltv)(v);S=t.getBoundingClientRect(),e.attr("width",S.width),e.attr("height",S.height)}f+=S.height+4,S.width>y&&(y=S.width);let M=[];e.classData.members.forEach(t=>{let r=(0,l.p)(t),n=r.displayText;(0,a.c)().flowchart.htmlLabels&&(n=n.replace(/</g,"<").replace(/>/g,">"));let s=u.node().appendChild(o(n,r.cssStyle?r.cssStyle:e.labelStyle,!0,!0)),d=s.getBBox();if((0,a.n)((0,a.c)().flowchart.htmlLabels)){let t=s.children[0],e=(0,i.Ltv)(s);d=t.getBoundingClientRect(),e.attr("width",d.width),e.attr("height",d.height)}d.width>y&&(y=d.width),f+=d.height+4,M.push(s)}),f+=8;let B=[];if(e.classData.methods.forEach(t=>{let r=(0,l.p)(t),n=r.displayText;(0,a.c)().flowchart.htmlLabels&&(n=n.replace(/</g,"<").replace(/>/g,">"));let s=u.node().appendChild(o(n,r.cssStyle?r.cssStyle:e.labelStyle,!0,!0)),d=s.getBBox();if((0,a.n)((0,a.c)().flowchart.htmlLabels)){let t=s.children[0],e=(0,i.Ltv)(s);d=t.getBoundingClientRect(),e.attr("width",d.width),e.attr("height",d.height)}d.width>y&&(y=d.width),f+=d.height+4,B.push(s)}),f+=8,w){let t=(y-k.width)/2;(0,i.Ltv)(m).attr("transform","translate( "+(-1*y/2+t)+", "+-1*f/2+")"),x=k.height+4}let T=(y-S.width)/2;return(0,i.Ltv)(v).attr("transform","translate( "+(-1*y/2+T)+", "+(-1*f/2+x)+")"),x+=S.height+4,h.attr("class","divider").attr("x1",-y/2-n).attr("x2",y/2+n).attr("y1",-f/2-n+8+x).attr("y2",-f/2-n+8+x),x+=8,M.forEach(t=>{(0,i.Ltv)(t).attr("transform","translate( "+-y/2+", "+(-1*f/2+x+4)+")");let e=null==t?void 0:t.getBBox();x+=((null==e?void 0:e.height)??0)+4}),x+=8,p.attr("class","divider").attr("x1",-y/2-n).attr("x2",y/2+n).attr("y1",-f/2-n+8+x).attr("y2",-f/2-n+8+x),x+=8,B.forEach(t=>{(0,i.Ltv)(t).attr("transform","translate( "+-y/2+", "+(-1*f/2+x)+")");let e=null==t?void 0:t.getBBox();x+=((null==e?void 0:e.height)??0)+4}),d.attr("class","outer title-state").attr("x",-y/2-n).attr("y",-(f/2)-n).attr("width",y+e.padding).attr("height",f+e.padding),c(e,d),e.intersect=function(t){return g(e,t)},s}},L={},v=async(t,e,r)=>{let i,n;if(e.link){let l;"sandbox"===(0,a.c)().securityLevel?l="_top":e.linkTarget&&(l=e.linkTarget||"_blank"),i=t.insert("svg:a").attr("xlink:href",e.link).attr("target",l),n=await k[e.shape](i,e,r)}else i=n=await k[e.shape](t,e,r);return e.tooltip&&n.attr("title",e.tooltip),e.class&&n.attr("class","node default "+e.class),L[e.id]=i,e.haveCallback&&L[e.id].attr("class",L[e.id].attr("class")+" clickable"),i},S=(t,e)=>{L[e.id]=t},M=()=>{L={}},B=t=>{let e=L[t.id];a.l.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+r-t.width/2)+", "+(t.y-t.height/2-8)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),r},T={},E={},C=()=>{T={},E={}},N=(t,e)=>{let r;let l=(0,a.n)((0,a.c)().flowchart.htmlLabels),s="markdown"===e.labelType?(0,n.c)(t,e.label,{style:e.labelStyle,useHtmlLabels:l,addSvgBackground:!0}):o(e.label,e.labelStyle);a.l.info("abc82",e,e.labelType);let d=t.insert("g").attr("class","edgeLabel"),h=d.insert("g").attr("class","label");h.node().appendChild(s);let c=s.getBBox();if(l){let t=s.children[0],e=(0,i.Ltv)(s);c=t.getBoundingClientRect(),e.attr("width",c.width),e.attr("height",c.height)}if(h.attr("transform","translate("+-c.width/2+", "+-c.height/2+")"),T[e.id]=d,e.width=c.width,e.height=c.height,e.startLabelLeft){let a=o(e.startLabelLeft,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),n=i.insert("g").attr("class","inner");r=n.node().appendChild(a);let l=a.getBBox();n.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),E[e.id]||(E[e.id]={}),E[e.id].startLeft=i,P(r,e.startLabelLeft)}if(e.startLabelRight){let a=o(e.startLabelRight,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),n=i.insert("g").attr("class","inner");r=i.node().appendChild(a),n.node().appendChild(a);let l=a.getBBox();n.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),E[e.id]||(E[e.id]={}),E[e.id].startRight=i,P(r,e.startLabelRight)}if(e.endLabelLeft){let a=o(e.endLabelLeft,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),n=i.insert("g").attr("class","inner");r=n.node().appendChild(a);let l=a.getBBox();n.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),i.node().appendChild(a),E[e.id]||(E[e.id]={}),E[e.id].endLeft=i,P(r,e.endLabelLeft)}if(e.endLabelRight){let a=o(e.endLabelRight,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),n=i.insert("g").attr("class","inner");r=n.node().appendChild(a);let l=a.getBBox();n.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),i.node().appendChild(a),E[e.id]||(E[e.id]={}),E[e.id].endRight=i,P(r,e.endLabelRight)}return s};function P(t,e){(0,a.c)().flowchart.htmlLabels&&t&&(t.style.width=9*e.length+"px",t.style.height="12px")}let _=(t,e)=>{a.l.info("Moving label abc78 ",t.id,t.label,T[t.id]);let r=e.updatedPath?e.updatedPath:e.originalPath;if(t.label){let i=T[t.id],n=t.x,l=t.y;if(r){let i=a.u.calcLabelPosition(r);a.l.info("Moving label "+t.label+" from (",n,",",l,") to (",i.x,",",i.y,") abc78"),e.updatedPath&&(n=i.x,l=i.y)}i.attr("transform","translate("+n+", "+l+")")}if(t.startLabelLeft){let e=E[t.id].startLeft,i=t.x,n=t.y;if(r){let e=a.u.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);i=e.x,n=e.y}e.attr("transform","translate("+i+", "+n+")")}if(t.startLabelRight){let e=E[t.id].startRight,i=t.x,n=t.y;if(r){let e=a.u.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);i=e.x,n=e.y}e.attr("transform","translate("+i+", "+n+")")}if(t.endLabelLeft){let e=E[t.id].endLeft,i=t.x,n=t.y;if(r){let e=a.u.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);i=e.x,n=e.y}e.attr("transform","translate("+i+", "+n+")")}if(t.endLabelRight){let e=E[t.id].endRight,i=t.x,n=t.y;if(r){let e=a.u.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);i=e.x,n=e.y}e.attr("transform","translate("+i+", "+n+")")}},H=(t,e)=>{let r=t.x,a=t.y,i=Math.abs(e.x-r),n=Math.abs(e.y-a),l=t.width/2,s=t.height/2;return i>=l||n>=s},R=(t,e,r)=>{a.l.warn(`intersection calc abc89: - outsidePoint: ${JSON.stringify(e)} - insidePoint : ${JSON.stringify(r)} - node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let i=t.x,n=t.y,l=Math.abs(i-r.x),s=t.width/2,d=r.x<e.x?s-l:s+l,o=t.height/2,h=Math.abs(e.y-r.y),c=Math.abs(e.x-r.x);if(Math.abs(n-e.y)*s>Math.abs(i-e.x)*o){let t=r.y<e.y?e.y-o-n:n-o-e.y;d=c*t/h;let i={x:r.x<e.x?r.x+d:r.x-c+d,y:r.y<e.y?r.y+h-t:r.y-h+t};return 0===d&&(i.x=e.x,i.y=e.y),0===c&&(i.x=e.x),0===h&&(i.y=e.y),a.l.warn(`abc89 topp/bott calc, Q ${h}, q ${t}, R ${c}, r ${d}`,i),i}{let t=h*(d=r.x<e.x?e.x-s-i:i-s-e.x)/c,n=r.x<e.x?r.x+c-d:r.x-c+d,l=r.y<e.y?r.y+t:r.y-t;return a.l.warn(`sides calc abc89, Q ${h}, q ${t}, R ${c}, r ${d}`,{_x:n,_y:l}),0===d&&(n=e.x,l=e.y),0===c&&(n=e.x),0===h&&(l=e.y),{x:n,y:l}}},I=(t,e)=>{a.l.warn("abc88 cutPathAtIntersect",t,e);let r=[],i=t[0],n=!1;return t.forEach(t=>{if(a.l.info("abc88 checking point",t,e),H(e,t)||n)a.l.warn("abc88 outside",t,i),i=t,n||r.push(t);else{let l=R(e,i,t);a.l.warn("abc88 inside",t,i,l),a.l.warn("abc88 intersection",l);let s=!1;r.forEach(t=>{s=s||t.x===l.x&&t.y===l.y}),r.some(t=>t.x===l.x&&t.y===l.y)?a.l.warn("abc88 no intersect",l,r):r.push(l),n=!0}}),a.l.warn("abc88 returning points",r),r},O=function(t,e,r,n,l,s){let d,o,h=r.points,c=!1,p=s.node(e.v);var g=s.node(e.w);a.l.info("abc88 InsertEdge: ",r),g.intersect&&p.intersect&&((h=h.slice(1,r.points.length-1)).unshift(p.intersect(h[0])),a.l.info("Last point",h[h.length-1],g,g.intersect(h[h.length-1])),h.push(g.intersect(h[h.length-1]))),r.toCluster&&(a.l.info("to cluster abc88",n[r.toCluster]),h=I(r.points,n[r.toCluster].node),c=!0),r.fromCluster&&(a.l.info("from cluster abc88",n[r.fromCluster]),h=I(h.reverse(),n[r.fromCluster].node).reverse(),c=!0);let y=h.filter(t=>!Number.isNaN(t.y));d=("graph"===l||"flowchart"===l)&&r.curve||i.qrM;let f=(0,i.n8j)().x(function(t){return t.x}).y(function(t){return t.y}).curve(d);switch(r.thickness){case"normal":o="edge-thickness-normal";break;case"thick":case"invisible":o="edge-thickness-thick";break;default:o=""}switch(r.pattern){case"solid":o+=" edge-pattern-solid";break;case"dotted":o+=" edge-pattern-dotted";break;case"dashed":o+=" edge-pattern-dashed"}let u=t.append("path").attr("d",f(y)).attr("id",r.id).attr("class"," "+o+(r.classes?" "+r.classes:"")).attr("style",r.style),x="";switch(((0,a.c)().flowchart.arrowMarkerAbsolute||(0,a.c)().state.arrowMarkerAbsolute)&&(x=(x=(x=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),a.l.info("arrowTypeStart",r.arrowTypeStart),a.l.info("arrowTypeEnd",r.arrowTypeEnd),r.arrowTypeStart){case"arrow_cross":u.attr("marker-start","url("+x+"#"+l+"-crossStart)");break;case"arrow_point":u.attr("marker-start","url("+x+"#"+l+"-pointStart)");break;case"arrow_barb":u.attr("marker-start","url("+x+"#"+l+"-barbStart)");break;case"arrow_circle":u.attr("marker-start","url("+x+"#"+l+"-circleStart)");break;case"aggregation":u.attr("marker-start","url("+x+"#"+l+"-aggregationStart)");break;case"extension":u.attr("marker-start","url("+x+"#"+l+"-extensionStart)");break;case"composition":u.attr("marker-start","url("+x+"#"+l+"-compositionStart)");break;case"dependency":u.attr("marker-start","url("+x+"#"+l+"-dependencyStart)");break;case"lollipop":u.attr("marker-start","url("+x+"#"+l+"-lollipopStart)")}switch(r.arrowTypeEnd){case"arrow_cross":u.attr("marker-end","url("+x+"#"+l+"-crossEnd)");break;case"arrow_point":u.attr("marker-end","url("+x+"#"+l+"-pointEnd)");break;case"arrow_barb":u.attr("marker-end","url("+x+"#"+l+"-barbEnd)");break;case"arrow_circle":u.attr("marker-end","url("+x+"#"+l+"-circleEnd)");break;case"aggregation":u.attr("marker-end","url("+x+"#"+l+"-aggregationEnd)");break;case"extension":u.attr("marker-end","url("+x+"#"+l+"-extensionEnd)");break;case"composition":u.attr("marker-end","url("+x+"#"+l+"-compositionEnd)");break;case"dependency":u.attr("marker-end","url("+x+"#"+l+"-dependencyEnd)");break;case"lollipop":u.attr("marker-end","url("+x+"#"+l+"-lollipopEnd)")}let w={};return c&&(w.updatedPath=h),w.originalPath=r.points,w}},91922:(t,e,r)=>{r.d(e,{p:()=>s,s:()=>h});var a=r(93126),i=r(17367);let n=0,l=function(t){let e=t.id;return t.type&&(e+="<"+t.type+">"),e},s=function(t){let e="",r="",a="",n="",l=t.substring(0,1),s=t.substring(t.length-1,t.length);l.match(/[#+~-]/)&&(n=l);let d=/[\s\w)~]/;s.match(d)||(r=o(s));let h=""===n?0:1,c=""===r?t.length:t.length-1,p=(t=t.substring(h,c)).indexOf("("),g=t.indexOf(")");if(p>1&&g>p&&g<=t.length){let l=t.substring(0,p).trim(),s=t.substring(p+1,g);if(e=n+l+"("+(0,i.x)(s.trim())+")",g<t.length){let n=t.substring(g+1,g+2);""!==r||n.match(d)?a=t.substring(g+1).trim():(r=o(n),a=t.substring(g+2).trim()),""!==a&&(":"===a.charAt(0)&&(a=a.substring(1).trim()),e+=a=" : "+(0,i.x)(a))}}else e=n+(0,i.x)(t);return{displayText:e,cssStyle:r}},d=function(t,e,r,a){let i=s(e),n=t.append("tspan").attr("x",a.padding).text(i.displayText);""!==i.cssStyle&&n.attr("style",i.cssStyle),r||n.attr("dy",a.textHeight)},o=function(t){switch(t){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}},h={getClassTitleString:l,drawClass:function(t,e,r,a){let n;i.l.debug("Rendering class ",e,r);let s=e.id,o={id:s,label:e.id,width:0,height:0},h=t.append("g").attr("id",a.db.lookUpDomId(s)).attr("class","classGroup");n=e.link?h.append("svg:a").attr("xlink:href",e.link).attr("target",e.linkTarget).append("text").attr("y",r.textHeight+r.padding).attr("x",0):h.append("text").attr("y",r.textHeight+r.padding).attr("x",0);let c=!0;e.annotations.forEach(function(t){let e=n.append("tspan").text("\xab"+t+"\xbb");c||e.attr("dy",r.textHeight),c=!1});let p=l(e),g=n.append("tspan").text(p).attr("class","title");c||g.attr("dy",r.textHeight);let y=n.node().getBBox().height,f=h.append("line").attr("x1",0).attr("y1",r.padding+y+r.dividerMargin/2).attr("y2",r.padding+y+r.dividerMargin/2),u=h.append("text").attr("x",r.padding).attr("y",y+r.dividerMargin+r.textHeight).attr("fill","white").attr("class","classText");c=!0,e.members.forEach(function(t){d(u,t,c,r),c=!1});let x=u.node().getBBox(),w=h.append("line").attr("x1",0).attr("y1",r.padding+y+r.dividerMargin+x.height).attr("y2",r.padding+y+r.dividerMargin+x.height),b=h.append("text").attr("x",r.padding).attr("y",y+2*r.dividerMargin+x.height+r.textHeight).attr("fill","white").attr("class","classText");c=!0,e.methods.forEach(function(t){d(b,t,c,r),c=!1});let m=h.node().getBBox();var k=" ";e.cssClasses.length>0&&(k+=e.cssClasses.join(" "));let L=h.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",m.width+2*r.padding).attr("height",m.height+r.padding+.5*r.dividerMargin).attr("class",k).node().getBBox().width;return n.node().childNodes.forEach(function(t){t.setAttribute("x",(L-t.getBBox().width)/2)}),e.tooltip&&n.insert("title").text(e.tooltip),f.attr("x2",L),w.attr("x2",L),o.width=L,o.height=m.height+r.padding+.5*r.dividerMargin,o},drawEdge:function(t,e,r,l,s){let d,o,h,c,p,g;let y=function(t){switch(t){case s.db.relationType.AGGREGATION:return"aggregation";case s.db.relationType.EXTENSION:return"extension";case s.db.relationType.COMPOSITION:return"composition";case s.db.relationType.DEPENDENCY:return"dependency";case s.db.relationType.LOLLIPOP:return"lollipop"}};e.points=e.points.filter(t=>!Number.isNaN(t.y));let f=e.points,u=(0,a.n8j)().x(function(t){return t.x}).y(function(t){return t.y}).curve(a.qrM),x=t.append("path").attr("d",u(f)).attr("id","edge"+n).attr("class","relation"),w="";l.arrowMarkerAbsolute&&(w=(w=(w=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),1==r.relation.lineType&&x.attr("class","relation dashed-line"),10==r.relation.lineType&&x.attr("class","relation dotted-line"),"none"!==r.relation.type1&&x.attr("marker-start","url("+w+"#"+y(r.relation.type1)+"Start)"),"none"!==r.relation.type2&&x.attr("marker-end","url("+w+"#"+y(r.relation.type2)+"End)");let b=e.points.length,m=i.u.calcLabelPosition(e.points);if(d=m.x,o=m.y,b%2!=0&&b>1){let t=i.u.calcCardinalityPosition("none"!==r.relation.type1,e.points,e.points[0]),a=i.u.calcCardinalityPosition("none"!==r.relation.type2,e.points,e.points[b-1]);i.l.debug("cardinality_1_point "+JSON.stringify(t)),i.l.debug("cardinality_2_point "+JSON.stringify(a)),h=t.x,c=t.y,p=a.x,g=a.y}if(void 0!==r.title){let e=t.append("g").attr("class","classLabel"),a=e.append("text").attr("class","label").attr("x",d).attr("y",o).attr("fill","red").attr("text-anchor","middle").text(r.title);window.label=a;let i=a.node().getBBox();e.insert("rect",":first-child").attr("class","box").attr("x",i.x-l.padding/2).attr("y",i.y-l.padding/2).attr("width",i.width+l.padding).attr("height",i.height+l.padding)}i.l.info("Rendering relation "+JSON.stringify(r)),void 0!==r.relationTitle1&&"none"!==r.relationTitle1&&t.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",h).attr("y",c).attr("fill","black").attr("font-size","6").text(r.relationTitle1),void 0!==r.relationTitle2&&"none"!==r.relationTitle2&&t.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",p).attr("y",g).attr("fill","black").attr("font-size","6").text(r.relationTitle2),n++},drawNote:function(t,e,r,a){i.l.debug("Rendering note ",e,r);let n=e.id,l={id:n,text:e.text,width:0,height:0},s=t.append("g").attr("id",n).attr("class","classGroup"),d=s.append("text").attr("y",r.textHeight+r.padding).attr("x",0),o=JSON.parse(`"${e.text}"`).split("\n");o.forEach(function(t){i.l.debug(`Adding line: ${t}`),d.append("tspan").text(t).attr("class","title").attr("dy",r.textHeight)});let h=s.node().getBBox(),c=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",h.width+2*r.padding).attr("height",h.height+o.length*r.textHeight+r.padding+.5*r.dividerMargin).node().getBBox().width;return d.node().childNodes.forEach(function(t){t.setAttribute("x",(c-t.getBBox().width)/2)}),l.width=c,l.height=h.height+o.length*r.textHeight+r.padding+.5*r.dividerMargin,l},parseMember:s}}}]); \ No newline at end of file diff --git a/assets/js/2451b334.2c74aa6d.js b/assets/js/2451b334.70f0c46f.js similarity index 59% rename from assets/js/2451b334.2c74aa6d.js rename to assets/js/2451b334.70f0c46f.js index 073971d139..96ff30bd4b 100644 --- a/assets/js/2451b334.2c74aa6d.js +++ b/assets/js/2451b334.70f0c46f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[28275],{94802:(e,t,s)=>{s.d(t,{A:()=>a});let a=s.p+"assets/images/social-card-3239a62bb56c9529ff255bc2c72e94f6.png"},93383:(e,t,s)=>{s.d(t,{A:()=>a});let a=s.p+"assets/images/social-card-3239a62bb56c9529ff255bc2c72e94f6.png"},56534:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var a=s(32341),n=s(62540),r=s(43023);let i={title:"Docusaurus 2.4",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2023-03-23T00:00:00.000Z")},o=void 0,c={image:s(94802).A,authorsImageUrls:[void 0]},l=[];function u(e){let t={a:"a",img:"img",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["We are happy to announce ",(0,n.jsx)(t.strong,{children:"Docusaurus 2.4"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["The upgrade should be easy: as explained in our ",(0,n.jsx)(t.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,n.jsx)(t.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Docusaurus blog post social card",src:s(93383).A+"",width:"1200",height:"600"})})]})}function d(e={}){let{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},43023:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>o});var a=s(63696);let n={},r=a.createContext(n);function i(e){let t=a.useContext(r);return a.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:i(e.components),a.createElement(r.Provider,{value:t},e.children)}},32341:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/2.4","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/2.4/index.mdx","source":"@site/blog/releases/2.4/index.mdx","title":"Docusaurus 2.4","description":"We are happy to announce Docusaurus 2.4.","date":"2023-03-23T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.05,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.4","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2023-03-23T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Upgrading frontend dependencies with confidence","permalink":"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing"},"nextItem":{"title":"Docusaurus 2.3","permalink":"/blog/releases/2.3"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[28275],{94802:(e,t,s)=>{s.d(t,{A:()=>r});let r=s.p+"assets/images/social-card-3239a62bb56c9529ff255bc2c72e94f6.png"},93383:(e,t,s)=>{s.d(t,{A:()=>r});let r=s.p+"assets/images/social-card-3239a62bb56c9529ff255bc2c72e94f6.png"},56534:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>l});var r=s(32341),a=s(62540),n=s(43023);let i={title:"Docusaurus 2.4",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2023-03-23T00:00:00.000Z")},o=void 0,c={image:s(94802).A,authorsImageUrls:[void 0]},l=[];function u(e){let t={a:"a",img:"img",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(t.p,{children:["We are happy to announce ",(0,a.jsx)(t.strong,{children:"Docusaurus 2.4"}),"."]}),"\n",(0,a.jsxs)(t.p,{children:["The upgrade should be easy: as explained in our ",(0,a.jsx)(t.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,a.jsx)(t.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{alt:"Docusaurus blog post social card",src:s(93383).A+"",width:"1200",height:"600"})})]})}function d(e={}){let{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(u,{...e})}):u(e)}},43023:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>o});var r=s(63696);let a={},n=r.createContext(a);function i(e){let t=r.useContext(n);return r.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(a):e.components||a:i(e.components),r.createElement(n.Provider,{value:t},e.children)}},32341:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/2.4","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/2.4/index.mdx","source":"@site/blog/releases/2.4/index.mdx","title":"Docusaurus 2.4","description":"We are happy to announce Docusaurus 2.4.","date":"2023-03-23T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.05,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.4","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2023-03-23T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Upgrading frontend dependencies with confidence","permalink":"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing"},"nextItem":{"title":"Docusaurus 2.3","permalink":"/blog/releases/2.3"}}')}}]); \ No newline at end of file diff --git a/assets/js/24dd9243.f0c6252d.js b/assets/js/24dd9243.bbfc5ddb.js similarity index 91% rename from assets/js/24dd9243.f0c6252d.js rename to assets/js/24dd9243.bbfc5ddb.js index 7af4a17c11..103764c700 100644 --- a/assets/js/24dd9243.f0c6252d.js +++ b/assets/js/24dd9243.bbfc5ddb.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[32635],{1489:(e,t,a)=>{a.d(t,{A:()=>s});let s=a.p+"assets/images/social-card-99fd18bd61fee0f631b8c820ef873dd5.png"},32891:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>n,metadata:()=>s,toc:()=>l});var s=a(40098),r=a(62540),i=a(43023);let n={title:"DocSearch migration",authors:["shortcuts","slorber"],tags:["search"],image:"./img/social-card.png"},o=void 0,c={image:a(1489).A,authorsImageUrls:[void 0,void 0]},l=[];function u(e){let t={a:"a",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.a,{href:"https://docsearch.algolia.com/",children:"DocSearch"})," is migrating to a new, more powerful system, which gives users their own Algolia application and new credentials."]}),"\n",(0,r.jsxs)(t.p,{children:["Docusaurus site owners should upgrade their configuration with their new credentials ",(0,r.jsx)(t.strong,{children:"by February 1, 2022"}),", existing search indexes will be frozen and become read-only after this date."]})]})}function h(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},43023:(e,t,a)=>{a.d(t,{R:()=>n,x:()=>o});var s=a(63696);let r={},i=s.createContext(r);function n(e){let 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(r):e.components||r:n(e.components),s.createElement(i.Provider,{value:t},e.children)}},40098:e=>{e.exports=JSON.parse('{"permalink":"/blog/2021/11/21/algolia-docsearch-migration","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2021/11-21-algolia-docsearch-migration/index.mdx","source":"@site/blog/2021/11-21-algolia-docsearch-migration/index.mdx","title":"DocSearch migration","description":"DocSearch is migrating to a new, more powerful system, which gives users their own Algolia application and new credentials.","date":"2021-11-21T00:00:00.000Z","tags":[{"inline":false,"label":"Search","permalink":"/blog/tags/search"}],"readingTime":2.96,"hasTruncateMarker":true,"authors":[{"name":"Cl\xe9ment Vannicatte","title":"Software Engineer @ Algolia","url":"https://github.com/shortcuts","socials":{"x":"https://x.com/sh0rtcts","github":"https://github.com/shortcuts"},"imageURL":"https://github.com/shortcuts.png","key":"shortcuts","page":null},{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"DocSearch migration","authors":["shortcuts","slorber"],"tags":["search"],"image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 2021 Recap","permalink":"/blog/2022/01/24/docusaurus-2021-recap"},"nextItem":{"title":"Announcing Docusaurus 2 Beta","permalink":"/blog/2021/05/12/announcing-docusaurus-two-beta"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[32635],{1489:(e,t,a)=>{a.d(t,{A:()=>s});let s=a.p+"assets/images/social-card-99fd18bd61fee0f631b8c820ef873dd5.png"},32891:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>n,metadata:()=>s,toc:()=>l});var s=a(40098),r=a(62540),i=a(43023);let n={title:"DocSearch migration",authors:["shortcuts","slorber"],tags:["search"],image:"./img/social-card.png"},o=void 0,c={image:a(1489).A,authorsImageUrls:[void 0,void 0]},l=[];function u(e){let t={a:"a",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.a,{href:"https://docsearch.algolia.com/",children:"DocSearch"})," is migrating to a new, more powerful system, which gives users their own Algolia application and new credentials."]}),"\n",(0,r.jsxs)(t.p,{children:["Docusaurus site owners should upgrade their configuration with their new credentials ",(0,r.jsx)(t.strong,{children:"by February 1, 2022"}),", existing search indexes will be frozen and become read-only after this date."]})]})}function h(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},43023:(e,t,a)=>{a.d(t,{R:()=>n,x:()=>o});var s=a(63696);let r={},i=s.createContext(r);function n(e){let 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(r):e.components||r:n(e.components),s.createElement(i.Provider,{value:t},e.children)}},40098:e=>{e.exports=JSON.parse('{"permalink":"/blog/2021/11/21/algolia-docsearch-migration","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2021/11-21-algolia-docsearch-migration/index.mdx","source":"@site/blog/2021/11-21-algolia-docsearch-migration/index.mdx","title":"DocSearch migration","description":"DocSearch is migrating to a new, more powerful system, which gives users their own Algolia application and new credentials.","date":"2021-11-21T00:00:00.000Z","tags":[{"inline":false,"label":"Search","permalink":"/blog/tags/search"}],"readingTime":2.96,"hasTruncateMarker":true,"authors":[{"name":"Cl\xe9ment Vannicatte","title":"Software Engineer @ Algolia","url":"https://github.com/shortcuts","socials":{"x":"https://x.com/sh0rtcts","github":"https://github.com/shortcuts"},"imageURL":"https://github.com/shortcuts.png","key":"shortcuts","page":null},{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"DocSearch migration","authors":["shortcuts","slorber"],"tags":["search"],"image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 2021 Recap","permalink":"/blog/2022/01/24/docusaurus-2021-recap"},"nextItem":{"title":"Announcing Docusaurus 2 Beta","permalink":"/blog/2021/05/12/announcing-docusaurus-two-beta"}}')}}]); \ No newline at end of file diff --git a/assets/js/25631.7be8c621.js b/assets/js/25631.7be8c621.js deleted file mode 100644 index c0358d6c24..0000000000 --- a/assets/js/25631.7be8c621.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[25631],{25631:(t,i,e)=>{e.d(i,{diagram:()=>c});var a=e(17367),n=e(93126);e(95285),e(31546),e(31234);var r=function(){var t=function(t,i,e,a){for(e=e||{},a=t.length;a--;e[t[a]]=i);return e},i=[1,3],e=[1,5],a=[1,6],n=[1,7],r=[1,8],s=[1,10],l=[1,5,14,16,18,20,21,26,28,29,30,31,32,38,39,40,41,47,48,50,51,52,53,54,55,56,57,58,59,60],o=[1,5,7,14,16,18,20,21,26,28,29,30,31,32,38,39,40,41,47,48,50,51,52,53,54,55,56,57,58,59,60],h=[38,39,40],c=[2,8],d=[1,19],u=[1,23],x=[1,24],g=[1,25],f=[1,26],y=[1,27],p=[1,29],T=[1,30],_=[1,31],m=[1,32],q=[1,33],A=[1,34],b=[1,37],v=[1,38],k=[1,39],S=[1,40],F=[1,41],P=[1,42],C=[1,43],L=[1,44],D=[1,45],z=[1,46],E=[1,47],I=[1,48],B=[1,49],w=[1,52],R=[1,67],N=[1,68],W=[5,23,27,38,39,40,50,51,52,53,54,55,56,57,58,59,60,61],U=[5,7,38,39,40,41],Q={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,SPACE:5,directive:6,QUADRANT:7,document:8,line:9,statement:10,axisDetails:11,quadrantDetails:12,points:13,title:14,title_value:15,acc_title:16,acc_title_value:17,acc_descr:18,acc_descr_value:19,acc_descr_multiline_value:20,section:21,text:22,point_start:23,point_x:24,point_y:25,"X-AXIS":26,"AXIS-TEXT-DELIMITER":27,"Y-AXIS":28,QUADRANT_1:29,QUADRANT_2:30,QUADRANT_3:31,QUADRANT_4:32,openDirective:33,typeDirective:34,closeDirective:35,":":36,argDirective:37,NEWLINE:38,SEMI:39,EOF:40,open_directive:41,type_directive:42,arg_directive:43,close_directive:44,alphaNumToken:45,textNoTagsToken:46,STR:47,MD_STR:48,alphaNum:49,PUNCTUATION:50,AMP:51,NUM:52,ALPHA:53,COMMA:54,PLUS:55,EQUALS:56,MULT:57,DOT:58,BRKT:59,UNDERSCORE:60,MINUS:61,$accept:0,$end:1},terminals_:{2:"error",5:"SPACE",7:"QUADRANT",14:"title",15:"title_value",16:"acc_title",17:"acc_title_value",18:"acc_descr",19:"acc_descr_value",20:"acc_descr_multiline_value",21:"section",23:"point_start",24:"point_x",25:"point_y",26:"X-AXIS",27:"AXIS-TEXT-DELIMITER",28:"Y-AXIS",29:"QUADRANT_1",30:"QUADRANT_2",31:"QUADRANT_3",32:"QUADRANT_4",36:":",38:"NEWLINE",39:"SEMI",40:"EOF",41:"open_directive",42:"type_directive",43:"arg_directive",44:"close_directive",47:"STR",48:"MD_STR",50:"PUNCTUATION",51:"AMP",52:"NUM",53:"ALPHA",54:"COMMA",55:"PLUS",56:"EQUALS",57:"MULT",58:"DOT",59:"BRKT",60:"UNDERSCORE",61:"MINUS"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[10,0],[10,2],[10,1],[10,1],[10,1],[10,2],[10,2],[10,2],[10,1],[10,1],[10,1],[13,4],[11,4],[11,3],[11,2],[11,4],[11,3],[11,2],[12,2],[12,2],[12,2],[12,2],[6,3],[6,5],[4,1],[4,1],[4,1],[33,1],[34,1],[37,1],[35,1],[22,1],[22,2],[22,1],[22,1],[49,1],[49,2],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[46,1],[46,1],[46,1]],performAction:function(t,i,e,a,n,r,s){var l=r.length-1;switch(n){case 13:this.$=r[l].trim(),a.setDiagramTitle(this.$);break;case 14:this.$=r[l].trim(),a.setAccTitle(this.$);break;case 15:case 16:this.$=r[l].trim(),a.setAccDescription(this.$);break;case 17:a.addSection(r[l].substr(8)),this.$=r[l].substr(8);break;case 19:a.addPoint(r[l-3],r[l-1],r[l]);break;case 20:a.setXAxisLeftText(r[l-2]),a.setXAxisRightText(r[l]);break;case 21:r[l-1].text+=" \u27F6 ",a.setXAxisLeftText(r[l-1]);break;case 22:a.setXAxisLeftText(r[l]);break;case 23:a.setYAxisBottomText(r[l-2]),a.setYAxisTopText(r[l]);break;case 24:r[l-1].text+=" \u27F6 ",a.setYAxisBottomText(r[l-1]);break;case 25:a.setYAxisBottomText(r[l]);break;case 26:a.setQuadrant1Text(r[l]);break;case 27:a.setQuadrant2Text(r[l]);break;case 28:a.setQuadrant3Text(r[l]);break;case 29:a.setQuadrant4Text(r[l]);break;case 35:a.parseDirective("%%{","open_directive");break;case 36:a.parseDirective(r[l],"type_directive");break;case 37:r[l]=r[l].trim().replace(/'/g,'"'),a.parseDirective(r[l],"arg_directive");break;case 38:a.parseDirective("}%%","close_directive","quadrantChart");break;case 39:case 41:this.$={text:r[l],type:"text"};break;case 40:this.$={text:r[l-1].text+""+r[l],type:r[l-1].type};break;case 42:this.$={text:r[l],type:"markdown"};break;case 43:this.$=r[l];break;case 44:this.$=r[l-1]+""+r[l]}},table:[{3:1,4:2,5:i,6:4,7:e,33:9,38:a,39:n,40:r,41:s},{1:[3]},{3:11,4:2,5:i,6:4,7:e,33:9,38:a,39:n,40:r,41:s},{3:12,4:2,5:i,6:4,7:e,33:9,38:a,39:n,40:r,41:s},{3:13,4:2,5:i,6:4,7:e,33:9,38:a,39:n,40:r,41:s},t(l,[2,5],{8:14}),t(o,[2,32]),t(o,[2,33]),t(o,[2,34]),{34:15,42:[1,16]},{42:[2,35]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(h,c,{33:9,9:17,10:18,11:20,12:21,13:22,6:28,22:35,45:36,1:[2,4],5:d,14:u,16:x,18:g,20:f,21:y,26:p,28:T,29:_,30:m,31:q,32:A,41:s,47:b,48:v,50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B}),{35:50,36:[1,51],44:w},t([36,44],[2,36]),t(l,[2,6]),{4:53,38:a,39:n,40:r},t(h,c,{33:9,11:20,12:21,13:22,6:28,22:35,45:36,10:54,5:d,14:u,16:x,18:g,20:f,21:y,26:p,28:T,29:_,30:m,31:q,32:A,41:s,47:b,48:v,50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B}),t(h,[2,10]),t(h,[2,11]),t(h,[2,12]),{15:[1,55]},{17:[1,56]},{19:[1,57]},t(h,[2,16]),t(h,[2,17]),t(h,[2,18]),{22:58,45:36,47:b,48:v,50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B},{22:59,45:36,47:b,48:v,50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B},{22:60,45:36,47:b,48:v,50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B},{22:61,45:36,47:b,48:v,50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B},{22:62,45:36,47:b,48:v,50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B},{22:63,45:36,47:b,48:v,50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B},{5:R,23:[1,64],45:66,46:65,50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B,61:N},t(W,[2,39]),t(W,[2,41]),t(W,[2,42]),t(W,[2,45]),t(W,[2,46]),t(W,[2,47]),t(W,[2,48]),t(W,[2,49]),t(W,[2,50]),t(W,[2,51]),t(W,[2,52]),t(W,[2,53]),t(W,[2,54]),t(W,[2,55]),t(U,[2,30]),{37:69,43:[1,70]},t(U,[2,38]),t(l,[2,7]),t(h,[2,9]),t(h,[2,13]),t(h,[2,14]),t(h,[2,15]),t(h,[2,22],{46:65,45:66,5:R,27:[1,71],50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B,61:N}),t(h,[2,25],{46:65,45:66,5:R,27:[1,72],50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B,61:N}),t(h,[2,26],{46:65,45:66,5:R,50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B,61:N}),t(h,[2,27],{46:65,45:66,5:R,50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B,61:N}),t(h,[2,28],{46:65,45:66,5:R,50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B,61:N}),t(h,[2,29],{46:65,45:66,5:R,50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B,61:N}),{24:[1,73]},t(W,[2,40]),t(W,[2,56]),t(W,[2,57]),t(W,[2,58]),{35:74,44:w},{44:[2,37]},t(h,[2,21],{45:36,22:75,47:b,48:v,50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B}),t(h,[2,24],{45:36,22:76,47:b,48:v,50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B}),{25:[1,77]},t(U,[2,31]),t(h,[2,20],{46:65,45:66,5:R,50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B,61:N}),t(h,[2,23],{46:65,45:66,5:R,50:k,51:S,52:F,53:P,54:C,55:L,56:D,57:z,58:E,59:I,60:B,61:N}),t(h,[2,19])],defaultActions:{10:[2,35],11:[2,1],12:[2,2],13:[2,3],70:[2,37]},parseError:function(t,i){if(i.recoverable)this.trace(t);else{var e=Error(t);throw e.hash=i,e}},parse:function(t){var i=this,e=[0],a=[],n=[null],r=[],s=this.table,l="",o=0,h=0,c=r.slice.call(arguments,1),d=Object.create(this.lexer),u={yy:{}};for(var x in this.yy)Object.prototype.hasOwnProperty.call(this.yy,x)&&(u.yy[x]=this.yy[x]);d.setInput(t,u.yy),u.yy.lexer=d,u.yy.parser=this,void 0===d.yylloc&&(d.yylloc={});var g=d.yylloc;r.push(g);var f=d.options&&d.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var y,p,T,_,m,q,A,b,v={};;){if(p=e[e.length-1],this.defaultActions[p]?T=this.defaultActions[p]:(null==y&&(y=function(){var t;return"number"!=typeof(t=a.pop()||d.lex()||1)&&(t instanceof Array&&(t=(a=t).pop()),t=i.symbols_[t]||t),t}()),T=s[p]&&s[p][y]),void 0===T||!T.length||!T[0]){var k="";for(m in b=[],s[p])this.terminals_[m]&&m>2&&b.push("'"+this.terminals_[m]+"'");k=d.showPosition?"Parse error on line "+(o+1)+":\n"+d.showPosition()+"\nExpecting "+b.join(", ")+", got '"+(this.terminals_[y]||y)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==y?"end of input":"'"+(this.terminals_[y]||y)+"'"),this.parseError(k,{text:d.match,token:this.terminals_[y]||y,line:d.yylineno,loc:g,expected:b})}if(T[0]instanceof Array&&T.length>1)throw Error("Parse Error: multiple actions possible at state: "+p+", token: "+y);switch(T[0]){case 1:e.push(y),n.push(d.yytext),r.push(d.yylloc),e.push(T[1]),y=null,h=d.yyleng,l=d.yytext,o=d.yylineno,g=d.yylloc;break;case 2:if(q=this.productions_[T[1]][1],v.$=n[n.length-q],v._$={first_line:r[r.length-(q||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(q||1)].first_column,last_column:r[r.length-1].last_column},f&&(v._$.range=[r[r.length-(q||1)].range[0],r[r.length-1].range[1]]),void 0!==(_=this.performAction.apply(v,[l,h,o,u.yy,T[1],n,r].concat(c))))return _;q&&(e=e.slice(0,-1*q*2),n=n.slice(0,-1*q),r=r.slice(0,-1*q)),e.push(this.productions_[T[1]][0]),n.push(v.$),r.push(v._$),A=s[e[e.length-2]][e[e.length-1]],e.push(A);break;case 3:return!0}}return!0}};function $(){this.yy={}}return Q.lexer={EOF:1,parseError:function(t,i){if(this.yy.parser)this.yy.parser.parseError(t,i);else throw Error(t)},setInput:function(t,i){return this.yy=i||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var i=t.length,e=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var a=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),e.length-1&&(this.yylineno-=e.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:e?(e.length===a.length?this.yylloc.first_column:0)+a[a.length-e.length].length-e[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-i]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),i=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+i+"^"},test_match:function(t,i){var e,a,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(a=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=a.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:a?a[a.length-1].length-a[a.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e)return e;if(this._backtrack)for(var r in n)this[r]=n[r];return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,i,e,a,n=this._currentRules(),r=0;r<n.length;r++)if((e=this._input.match(this.rules[n[r]]))&&(!i||e[0].length>i[0].length)){if(i=e,a=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(e,n[r])))return t;if(!this._backtrack)return!1;i=!1;continue}if(!this.options.flex)break}return i?!1!==(t=this.test_match(i,n[a]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,i,e,a){switch(e){case 0:return this.begin("open_directive"),41;case 1:return this.begin("type_directive"),42;case 2:return this.popState(),this.begin("arg_directive"),36;case 3:return this.popState(),this.popState(),44;case 4:return 43;case 5:case 6:case 8:break;case 7:return 38;case 9:return this.begin("title"),14;case 10:return this.popState(),"title_value";case 11:return this.begin("acc_title"),16;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),18;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:case 27:case 29:case 33:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:return 26;case 19:return 28;case 20:return 27;case 21:return 29;case 22:return 30;case 23:return 31;case 24:return 32;case 25:this.begin("md_string");break;case 26:return"MD_STR";case 28:this.begin("string");break;case 30:return"STR";case 31:return this.begin("point_start"),23;case 32:return this.begin("point_x"),24;case 34:this.popState(),this.begin("point_y");break;case 35:return this.popState(),25;case 36:return 7;case 37:return 53;case 38:return"COLON";case 39:return 55;case 40:return 54;case 41:case 42:return 56;case 43:return 57;case 44:return 59;case 45:return 60;case 46:return 58;case 47:return 51;case 48:return 61;case 49:return 52;case 50:return 5;case 51:return 39;case 52:return 50;case 53:return 40}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{point_y:{rules:[35],inclusive:!1},point_x:{rules:[34],inclusive:!1},point_start:{rules:[32,33],inclusive:!1},acc_descr_multiline:{rules:[16,17],inclusive:!1},acc_descr:{rules:[14],inclusive:!1},acc_title:{rules:[12],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},title:{rules:[10],inclusive:!1},md_string:{rules:[26,27],inclusive:!1},string:{rules:[29,30],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,11,13,15,18,19,20,21,22,23,24,25,28,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53],inclusive:!0}}},$.prototype=Q,Q.Parser=$,new $}();r.parser=r;let s=(0,a.G)(),l=(0,a.c)();function o(t){return(0,a.d)(t.trim(),l)}let h=new class{constructor(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){var t,i,e,n,r,s,l,o,h,c,d,u,x,g,f,y,p,T;return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:(null==(t=a.C.quadrantChart)?void 0:t.chartWidth)||500,chartWidth:(null==(i=a.C.quadrantChart)?void 0:i.chartHeight)||500,titlePadding:(null==(e=a.C.quadrantChart)?void 0:e.titlePadding)||10,titleFontSize:(null==(n=a.C.quadrantChart)?void 0:n.titleFontSize)||20,quadrantPadding:(null==(r=a.C.quadrantChart)?void 0:r.quadrantPadding)||5,xAxisLabelPadding:(null==(s=a.C.quadrantChart)?void 0:s.xAxisLabelPadding)||5,yAxisLabelPadding:(null==(l=a.C.quadrantChart)?void 0:l.yAxisLabelPadding)||5,xAxisLabelFontSize:(null==(o=a.C.quadrantChart)?void 0:o.xAxisLabelFontSize)||16,yAxisLabelFontSize:(null==(h=a.C.quadrantChart)?void 0:h.yAxisLabelFontSize)||16,quadrantLabelFontSize:(null==(c=a.C.quadrantChart)?void 0:c.quadrantLabelFontSize)||16,quadrantTextTopPadding:(null==(d=a.C.quadrantChart)?void 0:d.quadrantTextTopPadding)||5,pointTextPadding:(null==(u=a.C.quadrantChart)?void 0:u.pointTextPadding)||5,pointLabelFontSize:(null==(x=a.C.quadrantChart)?void 0:x.pointLabelFontSize)||12,pointRadius:(null==(g=a.C.quadrantChart)?void 0:g.pointRadius)||5,xAxisPosition:(null==(f=a.C.quadrantChart)?void 0:f.xAxisPosition)||"top",yAxisPosition:(null==(y=a.C.quadrantChart)?void 0:y.yAxisPosition)||"left",quadrantInternalBorderStrokeWidth:(null==(p=a.C.quadrantChart)?void 0:p.quadrantInternalBorderStrokeWidth)||1,quadrantExternalBorderStrokeWidth:(null==(T=a.C.quadrantChart)?void 0:T.quadrantExternalBorderStrokeWidth)||2}}getDefaultThemeConfig(){return{quadrant1Fill:s.quadrant1Fill,quadrant2Fill:s.quadrant2Fill,quadrant3Fill:s.quadrant3Fill,quadrant4Fill:s.quadrant4Fill,quadrant1TextFill:s.quadrant1TextFill,quadrant2TextFill:s.quadrant2TextFill,quadrant3TextFill:s.quadrant3TextFill,quadrant4TextFill:s.quadrant4TextFill,quadrantPointFill:s.quadrantPointFill,quadrantPointTextFill:s.quadrantPointTextFill,quadrantXAxisTextFill:s.quadrantXAxisTextFill,quadrantYAxisTextFill:s.quadrantYAxisTextFill,quadrantTitleFill:s.quadrantTitleFill,quadrantInternalBorderStrokeFill:s.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:s.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),a.l.info("clear called")}setData(t){this.data={...this.data,...t}}addPoints(t){this.data.points=[...t,...this.data.points]}setConfig(t){a.l.trace("setConfig called with: ",t),this.config={...this.config,...t}}setThemeConfig(t){a.l.trace("setThemeConfig called with: ",t),this.themeConfig={...this.themeConfig,...t}}calculateSpace(t,i,e,a){let n=2*this.config.xAxisLabelPadding+this.config.xAxisLabelFontSize,r={top:"top"===t&&i?n:0,bottom:"bottom"===t&&i?n:0},s=2*this.config.yAxisLabelPadding+this.config.yAxisLabelFontSize,l={left:"left"===this.config.yAxisPosition&&e?s:0,right:"right"===this.config.yAxisPosition&&e?s:0},o=this.config.titleFontSize+2*this.config.titlePadding,h={top:a?o:0},c=this.config.quadrantPadding+l.left,d=this.config.quadrantPadding+r.top+h.top,u=this.config.chartWidth-2*this.config.quadrantPadding-l.left-l.right,x=this.config.chartHeight-2*this.config.quadrantPadding-r.top-r.bottom-h.top;return{xAxisSpace:r,yAxisSpace:l,titleSpace:h,quadrantSpace:{quadrantLeft:c,quadrantTop:d,quadrantWidth:u,quadrantHalfWidth:u/2,quadrantHeight:x,quadrantHalfHeight:x/2}}}getAxisLabels(t,i,e,a){let{quadrantSpace:n,titleSpace:r}=a,{quadrantHalfHeight:s,quadrantHeight:l,quadrantLeft:o,quadrantHalfWidth:h,quadrantTop:c,quadrantWidth:d}=n,u=0===this.data.points.length,x=[];return this.data.xAxisLeftText&&i&&x.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:o+(u?h/2:0),y:"top"===t?this.config.xAxisLabelPadding+r.top:this.config.xAxisLabelPadding+c+l+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:u?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&i&&x.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:o+h+(u?h/2:0),y:"top"===t?this.config.xAxisLabelPadding+r.top:this.config.xAxisLabelPadding+c+l+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:u?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&e&&x.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:"left"===this.config.yAxisPosition?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+o+d+this.config.quadrantPadding,y:c+l-(u?s/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:u?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&e&&x.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:"left"===this.config.yAxisPosition?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+o+d+this.config.quadrantPadding,y:c+s-(u?s/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:u?"center":"left",horizontalPos:"top",rotation:-90}),x}getQuadrants(t){let{quadrantSpace:i}=t,{quadrantHalfHeight:e,quadrantLeft:a,quadrantHalfWidth:n,quadrantTop:r}=i,s=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a+n,y:r,width:n,height:e,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a,y:r,width:n,height:e,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a,y:r+e,width:n,height:e,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a+n,y:r+e,width:n,height:e,fill:this.themeConfig.quadrant4Fill}];for(let t of s)t.text.x=t.x+t.width/2,0===this.data.points.length?(t.text.y=t.y+t.height/2,t.text.horizontalPos="middle"):(t.text.y=t.y+this.config.quadrantTextTopPadding,t.text.horizontalPos="top");return s}getQuadrantPoints(t){let{quadrantSpace:i}=t,{quadrantHeight:e,quadrantLeft:a,quadrantTop:r,quadrantWidth:s}=i,l=(0,n.m4Y)().domain([0,1]).range([a,s+a]),o=(0,n.m4Y)().domain([0,1]).range([e+r,r]);return this.data.points.map(t=>({x:l(t.x),y:o(t.y),fill:this.themeConfig.quadrantPointFill,radius:this.config.pointRadius,text:{text:t.text,fill:this.themeConfig.quadrantPointTextFill,x:l(t.x),y:o(t.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0}}))}getBorders(t){let i=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:e}=t,{quadrantHalfHeight:a,quadrantHeight:n,quadrantLeft:r,quadrantHalfWidth:s,quadrantTop:l,quadrantWidth:o}=e;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:r-i,y1:l,x2:r+o+i,y2:l},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:r+o,y1:l+i,x2:r+o,y2:l+n-i},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:r-i,y1:l+n,x2:r+o+i,y2:l+n},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:r,y1:l+i,x2:r,y2:l+n-i},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:r+s,y1:l+i,x2:r+s,y2:l+n-i},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:r+i,y1:l+a,x2:r+o-i,y2:l+a}]}getTitle(t){if(t)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){let t=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),i=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),e=this.config.showTitle&&!!this.data.titleText,a=this.data.points.length>0?"bottom":this.config.xAxisPosition,n=this.calculateSpace(a,t,i,e);return{points:this.getQuadrantPoints(n),quadrants:this.getQuadrants(n),axisLabels:this.getAxisLabels(a,t,i,n),borderLines:this.getBorders(n),title:this.getTitle(e)}}},c={parser:r,db:{setWidth:function(t){h.setConfig({chartWidth:t})},setHeight:function(t){h.setConfig({chartHeight:t})},setQuadrant1Text:function(t){h.setData({quadrant1Text:o(t.text)})},setQuadrant2Text:function(t){h.setData({quadrant2Text:o(t.text)})},setQuadrant3Text:function(t){h.setData({quadrant3Text:o(t.text)})},setQuadrant4Text:function(t){h.setData({quadrant4Text:o(t.text)})},setXAxisLeftText:function(t){h.setData({xAxisLeftText:o(t.text)})},setXAxisRightText:function(t){h.setData({xAxisRightText:o(t.text)})},setYAxisTopText:function(t){h.setData({yAxisTopText:o(t.text)})},setYAxisBottomText:function(t){h.setData({yAxisBottomText:o(t.text)})},addPoint:function(t,i,e){h.addPoints([{x:i,y:e,text:o(t.text)}])},getQuadrantData:function(){let{themeVariables:t,quadrantChart:i}=(0,a.c)();return i&&h.setConfig(i),h.setThemeConfig({quadrant1Fill:t.quadrant1Fill,quadrant2Fill:t.quadrant2Fill,quadrant3Fill:t.quadrant3Fill,quadrant4Fill:t.quadrant4Fill,quadrant1TextFill:t.quadrant1TextFill,quadrant2TextFill:t.quadrant2TextFill,quadrant3TextFill:t.quadrant3TextFill,quadrant4TextFill:t.quadrant4TextFill,quadrantPointFill:t.quadrantPointFill,quadrantPointTextFill:t.quadrantPointTextFill,quadrantXAxisTextFill:t.quadrantXAxisTextFill,quadrantYAxisTextFill:t.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:t.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:t.quadrantInternalBorderStrokeFill,quadrantTitleFill:t.quadrantTitleFill}),h.setData({titleText:(0,a.t)()}),h.build()},parseDirective:function(t,i,e){a.m.parseDirective(this,t,i,e)},clear:function(){h.clear(),(0,a.v)()},setAccTitle:a.s,getAccTitle:a.g,setDiagramTitle:a.r,getDiagramTitle:a.t,getAccDescription:a.a,setAccDescription:a.b},renderer:{draw:(t,i,e,r)=>{var s,l,o;let h;function c(t){return"top"===t?"hanging":"middle"}function d(t){return"left"===t?"start":"middle"}function u(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}let x=(0,a.c)();a.l.debug("Rendering quadrant chart\n"+t);let g=x.securityLevel;"sandbox"===g&&(h=(0,n.Ltv)("#i"+i));let f=("sandbox"===g?(0,n.Ltv)(h.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id="${i}"]`),y=f.append("g").attr("class","main"),p=(null==(s=x.quadrantChart)?void 0:s.chartWidth)||500,T=(null==(l=x.quadrantChart)?void 0:l.chartHeight)||500;(0,a.i)(f,T,p,(null==(o=x.quadrantChart)?void 0:o.useMaxWidth)||!0),f.attr("viewBox","0 0 "+p+" "+T),r.db.setHeight(T),r.db.setWidth(p);let _=r.db.getQuadrantData(),m=y.append("g").attr("class","quadrants"),q=y.append("g").attr("class","border"),A=y.append("g").attr("class","data-points"),b=y.append("g").attr("class","labels"),v=y.append("g").attr("class","title");_.title&&v.append("text").attr("x",0).attr("y",0).attr("fill",_.title.fill).attr("font-size",_.title.fontSize).attr("dominant-baseline",c(_.title.horizontalPos)).attr("text-anchor",d(_.title.verticalPos)).attr("transform",u(_.title)).text(_.title.text),_.borderLines&&q.selectAll("line").data(_.borderLines).enter().append("line").attr("x1",t=>t.x1).attr("y1",t=>t.y1).attr("x2",t=>t.x2).attr("y2",t=>t.y2).style("stroke",t=>t.strokeFill).style("stroke-width",t=>t.strokeWidth);let k=m.selectAll("g.quadrant").data(_.quadrants).enter().append("g").attr("class","quadrant");k.append("rect").attr("x",t=>t.x).attr("y",t=>t.y).attr("width",t=>t.width).attr("height",t=>t.height).attr("fill",t=>t.fill),k.append("text").attr("x",0).attr("y",0).attr("fill",t=>t.text.fill).attr("font-size",t=>t.text.fontSize).attr("dominant-baseline",t=>c(t.text.horizontalPos)).attr("text-anchor",t=>d(t.text.verticalPos)).attr("transform",t=>u(t.text)).text(t=>t.text.text),b.selectAll("g.label").data(_.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(t=>t.text).attr("fill",t=>t.fill).attr("font-size",t=>t.fontSize).attr("dominant-baseline",t=>c(t.horizontalPos)).attr("text-anchor",t=>d(t.verticalPos)).attr("transform",t=>u(t));let S=A.selectAll("g.data-point").data(_.points).enter().append("g").attr("class","data-point");S.append("circle").attr("cx",t=>t.x).attr("cy",t=>t.y).attr("r",t=>t.radius).attr("fill",t=>t.fill),S.append("text").attr("x",0).attr("y",0).text(t=>t.text.text).attr("fill",t=>t.text.fill).attr("font-size",t=>t.text.fontSize).attr("dominant-baseline",t=>c(t.text.horizontalPos)).attr("text-anchor",t=>d(t.text.verticalPos)).attr("transform",t=>u(t.text))}},styles:()=>""}}}]); \ No newline at end of file diff --git a/assets/js/26af6b06.e7e32de3.js b/assets/js/26af6b06.e7e32de3.js deleted file mode 100644 index 2720c488bf..0000000000 --- a/assets/js/26af6b06.e7e32de3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[24720],{15995:(e,n,t)=>{t.d(n,{A:()=>o});var r=t(62540);t(63696);var s=t(11750);function o({children:e,hidden:n,className:t}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>w});var r=t(62540),s=t(63696),o=t(11750),i=t(7846),a=t(49519),l=t(96439),c=t(19739),d=t(66904),u=t(79244);function h(e){var n,t;return null!==(t=null===(n=s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}var f=t(10709);function m(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function g(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function y({className:e,block:n,selectedValue:t,selectValue:s,tabValues:a}){let l=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.a_)(),d=e=>{let n=e.currentTarget,r=a[l.indexOf(n)].value;r!==t&&(c(n),s(r))},u=e=>{var n,t;let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let t=l.indexOf(e.currentTarget)+1;r=null!==(n=l[t])&&void 0!==n?n:l[0];break}case"ArrowLeft":{let n=l.indexOf(e.currentTarget)-1;r=null!==(t=l[n])&&void 0!==t?t:l[l.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.A)("tabs",{"tabs--block":n},e),children:a.map(({value:e,label:n,attributes:s})=>(0,r.jsx)("li",g(m({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>l.push(e),onKeyDown:u,onClick:d},s),{className:(0,o.A)("tabs__item","tabItem_AQgk",null==s?void 0:s.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function b({lazy:e,children:n,selectedValue:t}){let i=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=i.find(e=>e.props.value===t);return e?(0,s.cloneElement)(e,{className:(0,o.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:i.map((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function x(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,o=function(e){let{values:n,children:t}=e;return(0,s.useMemo)(()=>{let e=null!=n?n:h(t).map(({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r}));return!function(e){let n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[i,f]=(0,s.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:o})),[m,g]=function({queryString:e=!1,groupId:n}){let t=(0,a.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,c.aZ)(r),(0,s.useCallback)(e=>{var n,s;if(!r)return;let o=new URLSearchParams(t.location.search);o.set(r,e),t.replace((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},t.location),s=s={search:o.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(s)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(s)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(s,e))}),n))},[r,t])]}({queryString:t,groupId:r}),[y,b]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[t,r]=(0,u.Dv)(n);return[t,(0,s.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),x=(()=>{let e=null!=m?m:y;return p({value:e,tabValues:o})?e:null})();return(0,l.A)(()=>{x&&f(x)},[x]),{selectedValue:i,selectValue:(0,s.useCallback)(e=>{if(!p({value:e,tabValues:o}))throw Error(`Can't select invalid tab value=${e}`);f(e),g(e),b(e)},[g,b,o]),tabValues:o}}(e);return(0,r.jsxs)("div",{className:(0,o.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(y,m({},n,e)),(0,r.jsx)(b,m({},n,e))]})}function w(e){let n=(0,f.A)();return(0,r.jsx)(x,g(m({},e),{children:h(e.children)}),String(n))}},60262:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>r,toc:()=>u});let r=JSON.parse('{"id":"advanced/ssg","title":"Static site generation (SSG)","description":"Docusaurus statically renders your React code into HTML, allowing faster load speed and better SEO.","source":"@site/docs/advanced/ssg.mdx","sourceDirName":"advanced","slug":"/advanced/ssg","permalink":"/docs/advanced/ssg","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/advanced/ssg.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"sidebar_label":"Static site generation","description":"Docusaurus statically renders your React code into HTML, allowing faster load speed and better SEO."},"sidebar":"docs","previous":{"title":"Routing","permalink":"/docs/advanced/routing"},"next":{"title":"Client architecture","permalink":"/docs/advanced/client"}}');var s=t(62540),o=t(43023),i=t(27446),a=t(15995);let l={sidebar_label:"Static site generation",description:"Docusaurus statically renders your React code into HTML, allowing faster load speed and better SEO."},c="Static site generation (SSG)",d={},u=[{value:"Understanding SSR",id:"understanding-ssr",level:2},{value:"Escape hatches",id:"escape-hatches",level:2},{value:"<code><BrowserOnly></code>",id:"browseronly",level:3},{value:"<code>useIsBrowser</code>",id:"useisbrowser",level:3},{value:"<code>useEffect</code>",id:"useeffect",level:3},{value:"<code>ExecutionEnvironment</code>",id:"executionenvironment",level:3}];function h(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"static-site-generation-ssg",children:"Static site generation (SSG)"})}),"\n",(0,s.jsxs)(n.p,{children:["In ",(0,s.jsx)(n.a,{href:"/docs/advanced/architecture",children:"architecture"}),", we mentioned that the theme is run in Webpack. But beware: that doesn't mean it always has access to browser globals! The theme is built twice:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["During ",(0,s.jsx)(n.strong,{children:"server-side rendering"}),", the theme is compiled in a sandbox called ",(0,s.jsx)(n.a,{href:"https://reactjs.org/docs/react-dom-server.html",children:"React DOM Server"}),'. You can see this as a "headless browser", where there is no ',(0,s.jsx)(n.code,{children:"window"})," or ",(0,s.jsx)(n.code,{children:"document"}),", only React. SSR produces static HTML pages."]}),"\n",(0,s.jsxs)(n.li,{children:["During ",(0,s.jsx)(n.strong,{children:"client-side rendering"}),", the theme is compiled to JavaScript that gets eventually executed in the browser, so it has access to browser variables."]}),"\n"]}),"\n",(0,s.jsxs)(n.admonition,{title:"SSR or SSG?",type:"info",children:[(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Server-side rendering"})," and ",(0,s.jsx)(n.em,{children:"static site generation"})," can be different concepts, but we use them interchangeably."]}),(0,s.jsxs)(n.p,{children:["Strictly speaking, Docusaurus is a static site generator, because there's no server-side runtime\u2014we statically render to HTML files that are deployed on a CDN, instead of dynamically pre-rendering on each request. This differs from the working model of ",(0,s.jsx)(n.a,{href:"https://nextjs.org/",children:"Next.js"}),"."]})]}),"\n",(0,s.jsxs)(n.p,{children:["Therefore, while you probably know not to access Node globals like ",(0,s.jsx)(n.code,{children:"process"})," (",(0,s.jsx)(n.a,{href:"#node-env",children:"or can we?"}),") or the ",(0,s.jsx)(n.code,{children:"'fs'"})," module, you can't freely access browser globals either."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\n\nexport default function WhereAmI() {\n return <span>{window.location.href}</span>;\n}\n"})}),"\n",(0,s.jsxs)(n.p,{children:["This looks like idiomatic React, but if you run ",(0,s.jsx)(n.code,{children:"docusaurus build"}),", you will get an error:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"ReferenceError: window is not defined\n"})}),"\n",(0,s.jsxs)(n.p,{children:["This is because during server-side rendering, the Docusaurus app isn't actually run in browser, and it doesn't know what ",(0,s.jsx)(n.code,{children:"window"})," is."]}),"\n",(0,s.jsxs)(t,{id:"node-env",children:[(0,s.jsxs)("summary",{children:["What about ",(0,s.jsx)("code",{children:"process.env.NODE_ENV"}),"?"]}),(0,s.jsxs)(n.p,{children:['One exception to the "no Node globals" rule is ',(0,s.jsx)(n.code,{children:"process.env.NODE_ENV"}),". In fact, you can use it in React, because Webpack injects this variable as a global:"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\n\nexport default function expensiveComp() {\n if (process.env.NODE_ENV === 'development') {\n return <>This component is not shown in development</>;\n }\n const res = someExpensiveOperationThatLastsALongTime();\n return <>{res}</>;\n}\n"})}),(0,s.jsxs)(n.p,{children:["During Webpack build, the ",(0,s.jsx)(n.code,{children:"process.env.NODE_ENV"})," will be replaced with the value, either ",(0,s.jsx)(n.code,{children:"'development'"})," or ",(0,s.jsx)(n.code,{children:"'production'"}),". You will then get different build results after dead code elimination:"]}),(0,s.jsxs)(i.A,{children:[(0,s.jsx)(a.A,{value:"Development",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-diff",children:"import React from 'react';\n\nexport default function expensiveComp() {\n // highlight-next-line\n if ('development' === 'development') {\n+ return <>This component is not shown in development</>;\n }\n- const res = someExpensiveOperationThatLastsALongTime();\n- return <>{res}</>;\n}\n"})})}),(0,s.jsx)(a.A,{value:"Production",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-diff",children:"import React from 'react';\n\nexport default function expensiveComp() {\n // highlight-next-line\n- if ('production' === 'development') {\n- return <>This component is not shown in development</>;\n- }\n+ const res = someExpensiveOperationThatLastsALongTime();\n+ return <>{res}</>;\n}\n"})})})]})]}),"\n",(0,s.jsx)(n.h2,{id:"understanding-ssr",children:"Understanding SSR"}),"\n",(0,s.jsx)(n.p,{children:"React is not just a dynamic UI runtime\u2014it's also a templating engine. Because Docusaurus sites mostly contain static contents, it should be able to work without any JavaScript (which React runs in), but only plain HTML/CSS. And that's what server-side rendering offers: statically rendering your React code into HTML, without any dynamic content. An HTML file has no concept of client state (it's purely markup), hence it shouldn't rely on browser APIs."}),"\n",(0,s.jsxs)(n.p,{children:["These HTML files are the first to arrive at the user's browser screen when a URL is visited (see ",(0,s.jsx)(n.a,{href:"/docs/advanced/routing",children:"routing"}),'). Afterwards, the browser fetches and runs other JS code to provide the "dynamic" parts of your site\u2014anything implemented with JavaScript. However, before that, the main content of your page is already visible, allowing faster loading.']}),"\n",(0,s.jsx)(n.p,{children:'In CSR-only apps, all DOM elements are generated on client side with React, and the HTML file only ever contains one root element for React to mount DOM to; in SSR, React is already facing a fully built HTML page, and it only needs to correlate the DOM elements with the virtual DOM in its model. This step is called "hydration". After React has hydrated the static markup, the app starts to work as any normal React app.'}),"\n",(0,s.jsxs)(n.p,{children:["Note that Docusaurus is ultimately a single-page application, so static site generation is only an optimization (",(0,s.jsx)(n.em,{children:"progressive enhancement"}),", as it's called), but our functionality does not fully depend on those HTML files. This is contrary to site generators like ",(0,s.jsx)(n.a,{href:"https://jekyllrb.com/",children:"Jekyll"})," and ",(0,s.jsx)(n.a,{href:"https://v1.docusaurus.io/",children:"Docusaurus v1"}),", where all files are statically transformed to markup, and interactiveness is added through external JavaScript linked with ",(0,s.jsx)(n.code,{children:"<script>"})," tags. If you inspect the build output, you will still see JS assets under ",(0,s.jsx)(n.code,{children:"build/assets/js"}),", which are, really, the core of Docusaurus."]}),"\n",(0,s.jsx)(n.h2,{id:"escape-hatches",children:"Escape hatches"}),"\n",(0,s.jsx)(n.p,{children:"If you want to render any dynamic content on your screen that relies on the browser API to be functional at all, for example:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Our ",(0,s.jsx)(n.a,{href:"/docs/markdown-features/code-blocks#interactive-code-editor",children:"live codeblock"}),", which runs in the browser's JS runtime"]}),"\n",(0,s.jsxs)(n.li,{children:["Our ",(0,s.jsx)(n.a,{href:"/docs/markdown-features/assets#themed-images",children:"themed image"})," that detects the user's color scheme to display different images"]}),"\n",(0,s.jsxs)(n.li,{children:["The JSON viewer of our debug panel which uses the ",(0,s.jsx)(n.code,{children:"window"})," global for styling"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"You may need to escape from SSR since static HTML can't display anything useful without knowing the client state."}),"\n",(0,s.jsxs)(n.admonition,{type:"warning",children:[(0,s.jsx)(n.p,{children:"It is important for the first client-side render to produce the exact same DOM structure as server-side rendering, otherwise, React will correlate virtual DOM with the wrong DOM elements."}),(0,s.jsxs)(n.p,{children:["Therefore, the na\xefve attempt of ",(0,s.jsx)(n.code,{children:"if (typeof window !== 'undefined) {/* render something */}"})," won't work appropriately as a browser vs. server detection, because the first client render would instantly render different markup from the server-generated one."]}),(0,s.jsxs)(n.p,{children:["You can read more about this pitfall in ",(0,s.jsx)(n.a,{href:"https://www.joshwcomeau.com/react/the-perils-of-rehydration/",children:"The Perils of Rehydration"}),"."]})]}),"\n",(0,s.jsx)(n.p,{children:"We provide several more reliable ways to escape SSR."}),"\n",(0,s.jsx)(n.h3,{id:"browseronly",children:(0,s.jsx)(n.code,{children:"<BrowserOnly>"})}),"\n",(0,s.jsxs)(n.p,{children:["If you need to render some component in browser only (for example, because the component relies on browser specifics to be functional at all), one common approach is to wrap your component with ",(0,s.jsx)(n.a,{href:"/docs/docusaurus-core#browseronly",children:(0,s.jsx)(n.code,{children:"<BrowserOnly>"})})," to make sure it's invisible during SSR and only rendered in CSR."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:"import BrowserOnly from '@docusaurus/BrowserOnly';\n\nfunction MyComponent(props) {\n return (\n // highlight-start\n <BrowserOnly fallback={<div>Loading...</div>}>\n {() => {\n const LibComponent =\n require('some-lib-that-accesses-window').LibComponent;\n return <LibComponent {...props} />;\n }}\n </BrowserOnly>\n // highlight-end\n );\n}\n"})}),"\n",(0,s.jsxs)(n.p,{children:["It's important to realize that the children of ",(0,s.jsx)(n.code,{children:"<BrowserOnly>"})," is not a JSX element, but a function that ",(0,s.jsx)(n.em,{children:"returns"})," an element. This is a design decision. Consider this code:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:"import BrowserOnly from '@docusaurus/BrowserOnly';\n\nfunction MyComponent() {\n return (\n <BrowserOnly>\n {/* highlight-start */}\n {/* DON'T DO THIS - doesn't actually work */}\n <span>page url = {window.location.href}</span>\n {/* highlight-end */}\n </BrowserOnly>\n );\n}\n"})}),"\n",(0,s.jsxs)(n.p,{children:["While you may expect that ",(0,s.jsx)(n.code,{children:"BrowserOnly"})," hides away the children during server-side rendering, it actually can't. When the React renderer tries to render this JSX tree, it does see the ",(0,s.jsx)(n.code,{children:"{window.location.href}"})," variable as a node of this tree and tries to render it, although it's actually not used! Using a function ensures that we only let the renderer see the browser-only component when it's needed."]}),"\n",(0,s.jsx)(n.h3,{id:"useisbrowser",children:(0,s.jsx)(n.code,{children:"useIsBrowser"})}),"\n",(0,s.jsxs)(n.p,{children:["You can also use the ",(0,s.jsx)(n.code,{children:"useIsBrowser()"})," hook to test if the component is currently in a browser environment. It returns ",(0,s.jsx)(n.code,{children:"false"})," in SSR and ",(0,s.jsx)(n.code,{children:"true"})," is CSR, after first client render. Use this hook if you only need to perform certain conditional operations on client-side, but not render an entirely different UI."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:"import useIsBrowser from '@docusaurus/useIsBrowser';\n\nfunction MyComponent() {\n const isBrowser = useIsBrowser();\n const location = isBrowser ? window.location.href : 'fetching location...';\n return <span>{location}</span>;\n}\n"})}),"\n",(0,s.jsx)(n.h3,{id:"useeffect",children:(0,s.jsx)(n.code,{children:"useEffect"})}),"\n",(0,s.jsxs)(n.p,{children:["Lastly, you can put your logic in ",(0,s.jsx)(n.code,{children:"useEffect()"})," to delay its execution until after first CSR. This is most appropriate if you are only performing side-effects but don't ",(0,s.jsx)(n.em,{children:"get"})," data from the client state."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:'function MyComponent() {\n useEffect(() => {\n // Only logged in the browser console; nothing is logged during server-side rendering\n console.log("I\'m now in the browser");\n }, []);\n return <span>Some content...</span>;\n}\n'})}),"\n",(0,s.jsx)(n.h3,{id:"executionenvironment",children:(0,s.jsx)(n.code,{children:"ExecutionEnvironment"})}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.a,{href:"/docs/docusaurus-core#executionenvironment",children:(0,s.jsx)(n.code,{children:"ExecutionEnvironment"})})," namespace contains several values, and ",(0,s.jsx)(n.code,{children:"canUseDOM"})," is an effective way to detect browser environment."]}),"\n",(0,s.jsxs)(n.p,{children:["Beware that it essentially checked ",(0,s.jsx)(n.code,{children:"typeof window !== 'undefined'"})," under the hood, so you should not use it for rendering-related logic, but only imperative code, like reacting to user input by sending web requests, or dynamically importing libraries, where DOM isn't updated at all."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="a-client-module.js"',children:"import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment';\n\nif (ExecutionEnvironment.canUseDOM) {\n document.title = \"I'm loaded!\";\n}\n"})})]})}function p(e={}){let{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>a});var r=t(63696);let s={},o=r.createContext(s);function i(e){let n=r.useContext(o);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/26af6b06.f40e7eaa.js b/assets/js/26af6b06.f40e7eaa.js new file mode 100644 index 0000000000..724e2d624a --- /dev/null +++ b/assets/js/26af6b06.f40e7eaa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[24720],{15995:(e,n,t)=>{t.d(n,{A:()=>o});var r=t(62540);t(63696);var s=t(11750);function o({children:e,hidden:n,className:t}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>w});var r=t(62540),s=t(63696),o=t(11750),i=t(7846),a=t(49519),l=t(96439),c=t(19739),d=t(66904),u=t(79244);function h(e){var n,t;return null!==(t=null===(n=s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}var f=t(10709);function m(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function b(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function g({className:e,block:n,selectedValue:t,selectValue:s,tabValues:a}){let l=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.a_)(),d=e=>{let n=e.currentTarget,r=a[l.indexOf(n)].value;r!==t&&(c(n),s(r))},u=e=>{var n,t;let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let t=l.indexOf(e.currentTarget)+1;r=null!==(n=l[t])&&void 0!==n?n:l[0];break}case"ArrowLeft":{let n=l.indexOf(e.currentTarget)-1;r=null!==(t=l[n])&&void 0!==t?t:l[l.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.A)("tabs",{"tabs--block":n},e),children:a.map(({value:e,label:n,attributes:s})=>(0,r.jsx)("li",b(m({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>l.push(e),onKeyDown:u,onClick:d},s),{className:(0,o.A)("tabs__item","tabItem_AQgk",null==s?void 0:s.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function y({lazy:e,children:n,selectedValue:t}){let i=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=i.find(e=>e.props.value===t);return e?(0,s.cloneElement)(e,{className:(0,o.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:i.map((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function x(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,o=function(e){let{values:n,children:t}=e;return(0,s.useMemo)(()=>{let e=null!=n?n:h(t).map(({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r}));return!function(e){let n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[i,f]=(0,s.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:o})),[m,b]=function({queryString:e=!1,groupId:n}){let t=(0,a.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,c.aZ)(r),(0,s.useCallback)(e=>{var n,s;if(!r)return;let o=new URLSearchParams(t.location.search);o.set(r,e),t.replace((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},t.location),s=s={search:o.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(s)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(s)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(s,e))}),n))},[r,t])]}({queryString:t,groupId:r}),[g,y]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[t,r]=(0,u.Dv)(n);return[t,(0,s.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),x=(()=>{let e=null!=m?m:g;return p({value:e,tabValues:o})?e:null})();return(0,l.A)(()=>{x&&f(x)},[x]),{selectedValue:i,selectValue:(0,s.useCallback)(e=>{if(!p({value:e,tabValues:o}))throw Error(`Can't select invalid tab value=${e}`);f(e),b(e),y(e)},[b,y,o]),tabValues:o}}(e);return(0,r.jsxs)("div",{className:(0,o.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(g,m({},n,e)),(0,r.jsx)(y,m({},n,e))]})}function w(e){let n=(0,f.A)();return(0,r.jsx)(x,b(m({},e),{children:h(e.children)}),String(n))}},60262:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>r,toc:()=>u});let r=JSON.parse('{"id":"advanced/ssg","title":"Static site generation (SSG)","description":"Docusaurus statically renders your React code into HTML, allowing faster load speed and better SEO.","source":"@site/docs/advanced/ssg.mdx","sourceDirName":"advanced","slug":"/advanced/ssg","permalink":"/docs/advanced/ssg","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/advanced/ssg.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"sidebar_label":"Static site generation","description":"Docusaurus statically renders your React code into HTML, allowing faster load speed and better SEO."},"sidebar":"docs","previous":{"title":"Routing","permalink":"/docs/advanced/routing"},"next":{"title":"Client architecture","permalink":"/docs/advanced/client"}}');var s=t(62540),o=t(43023),i=t(27446),a=t(15995);let l={sidebar_label:"Static site generation",description:"Docusaurus statically renders your React code into HTML, allowing faster load speed and better SEO."},c="Static site generation (SSG)",d={},u=[{value:"Understanding SSR",id:"understanding-ssr",level:2},{value:"Escape hatches",id:"escape-hatches",level:2},{value:"<code><BrowserOnly></code>",id:"browseronly",level:3},{value:"<code>useIsBrowser</code>",id:"useisbrowser",level:3},{value:"<code>useEffect</code>",id:"useeffect",level:3},{value:"<code>ExecutionEnvironment</code>",id:"executionenvironment",level:3}];function h(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"static-site-generation-ssg",children:"Static site generation (SSG)"})}),"\n",(0,s.jsxs)(n.p,{children:["In ",(0,s.jsx)(n.a,{href:"/docs/advanced/architecture",children:"architecture"}),", we mentioned that the theme is run in Webpack. But beware: that doesn't mean it always has access to browser globals! The theme is built twice:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["During ",(0,s.jsx)(n.strong,{children:"server-side rendering"}),", the theme is compiled in a sandbox called ",(0,s.jsx)(n.a,{href:"https://reactjs.org/docs/react-dom-server.html",children:"React DOM Server"}),'. You can see this as a "headless browser", where there is no ',(0,s.jsx)(n.code,{children:"window"})," or ",(0,s.jsx)(n.code,{children:"document"}),", only React. SSR produces static HTML pages."]}),"\n",(0,s.jsxs)(n.li,{children:["During ",(0,s.jsx)(n.strong,{children:"client-side rendering"}),", the theme is compiled to JavaScript that gets eventually executed in the browser, so it has access to browser variables."]}),"\n"]}),"\n",(0,s.jsxs)(n.admonition,{title:"SSR or SSG?",type:"info",children:[(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Server-side rendering"})," and ",(0,s.jsx)(n.em,{children:"static site generation"})," can be different concepts, but we use them interchangeably."]}),(0,s.jsxs)(n.p,{children:["Strictly speaking, Docusaurus is a static site generator, because there's no server-side runtime\u2014we statically render to HTML files that are deployed on a CDN, instead of dynamically pre-rendering on each request. This differs from the working model of ",(0,s.jsx)(n.a,{href:"https://nextjs.org/",children:"Next.js"}),"."]})]}),"\n",(0,s.jsxs)(n.p,{children:["Therefore, while you probably know not to access Node globals like ",(0,s.jsx)(n.code,{children:"process"})," (",(0,s.jsx)(n.a,{href:"#node-env",children:"or can we?"}),") or the ",(0,s.jsx)(n.code,{children:"'fs'"})," module, you can't freely access browser globals either."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\n\nexport default function WhereAmI() {\n return <span>{window.location.href}</span>;\n}\n"})}),"\n",(0,s.jsxs)(n.p,{children:["This looks like idiomatic React, but if you run ",(0,s.jsx)(n.code,{children:"docusaurus build"}),", you will get an error:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"ReferenceError: window is not defined\n"})}),"\n",(0,s.jsxs)(n.p,{children:["This is because during server-side rendering, the Docusaurus app isn't actually run in browser, and it doesn't know what ",(0,s.jsx)(n.code,{children:"window"})," is."]}),"\n",(0,s.jsxs)(t,{id:"node-env",children:[(0,s.jsxs)("summary",{children:["What about ",(0,s.jsx)("code",{children:"process.env.NODE_ENV"}),"?"]}),(0,s.jsxs)(n.p,{children:['One exception to the "no Node globals" rule is ',(0,s.jsx)(n.code,{children:"process.env.NODE_ENV"}),". In fact, you can use it in React, because Webpack injects this variable as a global:"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\n\nexport default function expensiveComp() {\n if (process.env.NODE_ENV === 'development') {\n return <>This component is not shown in development</>;\n }\n const res = someExpensiveOperationThatLastsALongTime();\n return <>{res}</>;\n}\n"})}),(0,s.jsxs)(n.p,{children:["During Webpack build, the ",(0,s.jsx)(n.code,{children:"process.env.NODE_ENV"})," will be replaced with the value, either ",(0,s.jsx)(n.code,{children:"'development'"})," or ",(0,s.jsx)(n.code,{children:"'production'"}),". You will then get different build results after dead code elimination:"]}),(0,s.jsxs)(i.A,{children:[(0,s.jsx)(a.A,{value:"Development",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-diff",children:"import React from 'react';\n\nexport default function expensiveComp() {\n // highlight-next-line\n if ('development' === 'development') {\n+ return <>This component is not shown in development</>;\n }\n- const res = someExpensiveOperationThatLastsALongTime();\n- return <>{res}</>;\n}\n"})})}),(0,s.jsx)(a.A,{value:"Production",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-diff",children:"import React from 'react';\n\nexport default function expensiveComp() {\n // highlight-next-line\n- if ('production' === 'development') {\n- return <>This component is not shown in development</>;\n- }\n+ const res = someExpensiveOperationThatLastsALongTime();\n+ return <>{res}</>;\n}\n"})})})]})]}),"\n",(0,s.jsx)(n.h2,{id:"understanding-ssr",children:"Understanding SSR"}),"\n",(0,s.jsx)(n.p,{children:"React is not just a dynamic UI runtime\u2014it's also a templating engine. Because Docusaurus sites mostly contain static contents, it should be able to work without any JavaScript (which React runs in), but only plain HTML/CSS. And that's what server-side rendering offers: statically rendering your React code into HTML, without any dynamic content. An HTML file has no concept of client state (it's purely markup), hence it shouldn't rely on browser APIs."}),"\n",(0,s.jsxs)(n.p,{children:["These HTML files are the first to arrive at the user's browser screen when a URL is visited (see ",(0,s.jsx)(n.a,{href:"/docs/advanced/routing",children:"routing"}),'). Afterwards, the browser fetches and runs other JS code to provide the "dynamic" parts of your site\u2014anything implemented with JavaScript. However, before that, the main content of your page is already visible, allowing faster loading.']}),"\n",(0,s.jsx)(n.p,{children:'In CSR-only apps, all DOM elements are generated on client side with React, and the HTML file only ever contains one root element for React to mount DOM to; in SSR, React is already facing a fully built HTML page, and it only needs to correlate the DOM elements with the virtual DOM in its model. This step is called "hydration". After React has hydrated the static markup, the app starts to work as any normal React app.'}),"\n",(0,s.jsxs)(n.p,{children:["Note that Docusaurus is ultimately a single-page application, so static site generation is only an optimization (",(0,s.jsx)(n.em,{children:"progressive enhancement"}),", as it's called), but our functionality does not fully depend on those HTML files. This is contrary to site generators like ",(0,s.jsx)(n.a,{href:"https://jekyllrb.com/",children:"Jekyll"})," and ",(0,s.jsx)(n.a,{href:"https://v1.docusaurus.io/",children:"Docusaurus v1"}),", where all files are statically transformed to markup, and interactiveness is added through external JavaScript linked with ",(0,s.jsx)(n.code,{children:"<script>"})," tags. If you inspect the build output, you will still see JS assets under ",(0,s.jsx)(n.code,{children:"build/assets/js"}),", which are, really, the core of Docusaurus."]}),"\n",(0,s.jsx)(n.h2,{id:"escape-hatches",children:"Escape hatches"}),"\n",(0,s.jsx)(n.p,{children:"If you want to render any dynamic content on your screen that relies on the browser API to be functional at all, for example:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Our ",(0,s.jsx)(n.a,{href:"/docs/markdown-features/code-blocks#interactive-code-editor",children:"live codeblock"}),", which runs in the browser's JS runtime"]}),"\n",(0,s.jsxs)(n.li,{children:["Our ",(0,s.jsx)(n.a,{href:"/docs/markdown-features/assets#themed-images",children:"themed image"})," that detects the user's color scheme to display different images"]}),"\n",(0,s.jsxs)(n.li,{children:["The JSON viewer of our debug panel which uses the ",(0,s.jsx)(n.code,{children:"window"})," global for styling"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"You may need to escape from SSR since static HTML can't display anything useful without knowing the client state."}),"\n",(0,s.jsxs)(n.admonition,{type:"warning",children:[(0,s.jsx)(n.p,{children:"It is important for the first client-side render to produce the exact same DOM structure as server-side rendering, otherwise, React will correlate virtual DOM with the wrong DOM elements."}),(0,s.jsxs)(n.p,{children:["Therefore, the na\xefve attempt of ",(0,s.jsx)(n.code,{children:"if (typeof window !== 'undefined) {/* render something */}"})," won't work appropriately as a browser vs. server detection, because the first client render would instantly render different markup from the server-generated one."]}),(0,s.jsxs)(n.p,{children:["You can read more about this pitfall in ",(0,s.jsx)(n.a,{href:"https://www.joshwcomeau.com/react/the-perils-of-rehydration/",children:"The Perils of Rehydration"}),"."]})]}),"\n",(0,s.jsx)(n.p,{children:"We provide several more reliable ways to escape SSR."}),"\n",(0,s.jsx)(n.h3,{id:"browseronly",children:(0,s.jsx)(n.code,{children:"<BrowserOnly>"})}),"\n",(0,s.jsxs)(n.p,{children:["If you need to render some component in browser only (for example, because the component relies on browser specifics to be functional at all), one common approach is to wrap your component with ",(0,s.jsx)(n.a,{href:"/docs/docusaurus-core#browseronly",children:(0,s.jsx)(n.code,{children:"<BrowserOnly>"})})," to make sure it's invisible during SSR and only rendered in CSR."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:"import BrowserOnly from '@docusaurus/BrowserOnly';\n\nfunction MyComponent(props) {\n return (\n // highlight-start\n <BrowserOnly fallback={<div>Loading...</div>}>\n {() => {\n const LibComponent =\n require('some-lib-that-accesses-window').LibComponent;\n return <LibComponent {...props} />;\n }}\n </BrowserOnly>\n // highlight-end\n );\n}\n"})}),"\n",(0,s.jsxs)(n.p,{children:["It's important to realize that the children of ",(0,s.jsx)(n.code,{children:"<BrowserOnly>"})," is not a JSX element, but a function that ",(0,s.jsx)(n.em,{children:"returns"})," an element. This is a design decision. Consider this code:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:"import BrowserOnly from '@docusaurus/BrowserOnly';\n\nfunction MyComponent() {\n return (\n <BrowserOnly>\n {/* highlight-start */}\n {/* DON'T DO THIS - doesn't actually work */}\n <span>page url = {window.location.href}</span>\n {/* highlight-end */}\n </BrowserOnly>\n );\n}\n"})}),"\n",(0,s.jsxs)(n.p,{children:["While you may expect that ",(0,s.jsx)(n.code,{children:"BrowserOnly"})," hides away the children during server-side rendering, it actually can't. When the React renderer tries to render this JSX tree, it does see the ",(0,s.jsx)(n.code,{children:"{window.location.href}"})," variable as a node of this tree and tries to render it, although it's actually not used! Using a function ensures that we only let the renderer see the browser-only component when it's needed."]}),"\n",(0,s.jsx)(n.h3,{id:"useisbrowser",children:(0,s.jsx)(n.code,{children:"useIsBrowser"})}),"\n",(0,s.jsxs)(n.p,{children:["You can also use the ",(0,s.jsx)(n.code,{children:"useIsBrowser()"})," hook to test if the component is currently in a browser environment. It returns ",(0,s.jsx)(n.code,{children:"false"})," in SSR and ",(0,s.jsx)(n.code,{children:"true"})," is CSR, after first client render. Use this hook if you only need to perform certain conditional operations on client-side, but not render an entirely different UI."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:"import useIsBrowser from '@docusaurus/useIsBrowser';\n\nfunction MyComponent() {\n const isBrowser = useIsBrowser();\n const location = isBrowser ? window.location.href : 'fetching location...';\n return <span>{location}</span>;\n}\n"})}),"\n",(0,s.jsx)(n.h3,{id:"useeffect",children:(0,s.jsx)(n.code,{children:"useEffect"})}),"\n",(0,s.jsxs)(n.p,{children:["Lastly, you can put your logic in ",(0,s.jsx)(n.code,{children:"useEffect()"})," to delay its execution until after first CSR. This is most appropriate if you are only performing side-effects but don't ",(0,s.jsx)(n.em,{children:"get"})," data from the client state."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:'function MyComponent() {\n useEffect(() => {\n // Only logged in the browser console; nothing is logged during server-side rendering\n console.log("I\'m now in the browser");\n }, []);\n return <span>Some content...</span>;\n}\n'})}),"\n",(0,s.jsx)(n.h3,{id:"executionenvironment",children:(0,s.jsx)(n.code,{children:"ExecutionEnvironment"})}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.a,{href:"/docs/docusaurus-core#executionenvironment",children:(0,s.jsx)(n.code,{children:"ExecutionEnvironment"})})," namespace contains several values, and ",(0,s.jsx)(n.code,{children:"canUseDOM"})," is an effective way to detect browser environment."]}),"\n",(0,s.jsxs)(n.p,{children:["Beware that it essentially checked ",(0,s.jsx)(n.code,{children:"typeof window !== 'undefined'"})," under the hood, so you should not use it for rendering-related logic, but only imperative code, like reacting to user input by sending web requests, or dynamically importing libraries, where DOM isn't updated at all."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="a-client-module.js"',children:"import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment';\n\nif (ExecutionEnvironment.canUseDOM) {\n document.title = \"I'm loaded!\";\n}\n"})})]})}function p(e={}){let{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>a});var r=t(63696);let s={},o=r.createContext(s);function i(e){let n=r.useContext(o);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/276a1994.30b8db4d.js b/assets/js/276a1994.30b8db4d.js deleted file mode 100644 index 6745b1b20f..0000000000 --- a/assets/js/276a1994.30b8db4d.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[67592],{40576:(e,n,r)=>{r.d(n,{A:()=>o});var t=r(62540);r(63696);var s=r(10709);function o({children:e,fallback:n}){return(0,s.A)()?(0,t.jsx)(t.Fragment,{children:null==e?void 0:e()}):null!=n?n:null}},31436:(e,n,r)=>{r.d(n,{Bk:()=>f,Cj:()=>O,JO:()=>g,X0:()=>p,ex:()=>b,jL:()=>x,p1:()=>y,tp:()=>j,tu:()=>d,uA:()=>v,xs:()=>w});var t=r(62540),s=r(63696),o=r(78284),i=r(69615),c=r(81912),l=r(36372),a=r(55887);let u=s.createContext(null);function d({children:e}){let[n,r]=(0,s.useState)(null),o=(0,s.useRef)(!0);return(0,s.useEffect)(()=>(o.current=!0,()=>{o.current=!1}),[]),(0,s.useEffect)(()=>{fetch("https://registry.npmjs.org/@docusaurus/core").then(e=>e.json()).then(e=>{if(!o.current)return;let n=Object.keys(e.versions).at(-1),t=e.time[n];r({name:n,time:t})})},[]),(0,t.jsx)(u.Provider,{value:n,children:e})}function h(){var e,n;let r=null===(e=(0,o.g1)("default").preferredVersion)||void 0===e?void 0:e.name,t=(0,i.jh)("default"),s=(null!==(n=t.find(e=>"current"!==e.name))&&void 0!==n?n:t[0]).name;return r&&"current"!==r?r:s}function p(){let e=(0,s.useContext)(u);return e?(0,t.jsx)("span",{children:(0,t.jsx)(c.A,{description:"The hint text for the current canary version tag.",values:{canaryVersionName:(0,t.jsx)("b",{children:e.name})},children:"Current: {canaryVersionName}"})}):(0,t.jsx)("span",{children:(0,t.jsx)(c.A,{description:"An example canary version tag when the actual version can't be fetched.",children:"Example: 0.0.0-4922"})})}function b(){let e=h();return(0,t.jsx)("span",{children:e})}function j(){return(0,t.jsx)("span",{children:3})}function f(){return(0,t.jsx)("span",{children:2})}function m({branch:e}){return(0,t.jsx)(l.A,{to:`https://github.com/facebook/docusaurus/tree/${e}`,children:(0,t.jsx)("code",{children:e})})}function y(){return(0,t.jsx)(m,{branch:"docusaurus-v2"})}function g(){return(0,t.jsx)(m,{branch:"main"})}function x({children:e}){return(0,s.useContext)(u)?null:e}function v({children:e}){return(0,s.useContext)(u)?e:null}function O(){var e,n;let r=null!==(n=null===(e=(0,s.useContext)(u))||void 0===e?void 0:e.name)&&void 0!==n?n:"0.0.0-4922",o=h();return(0,t.jsx)(a.A,{language:"diff",children:`- "@docusaurus/core": "^${o}", -- "@docusaurus/preset-classic": "^${o}", -+ "@docusaurus/core": "${r}", -+ "@docusaurus/preset-classic": "${r}", -`})}function w(){var e;let n=null===(e=(0,s.useContext)(u))||void 0===e?void 0:e.time;return n?(0,t.jsx)(c.A,{values:{time:(0,t.jsx)("b",{children:new Date(n).toLocaleString()})},children:"The latest canary version that's available on npm is published at {time}."}):null}},55887:(e,n,r)=>{r.d(n,{A:()=>ec});var t,s,o,i={};r.r(i),r.d(i,{ButtonExample:()=>I});var c=r(62540),l=r(63696),a=r(11750),u=r(10709),d=r(55152),h=r(81912),p=r(99468),b=r(40576),j=r(1495),f=r(66659),m=r(25436);function y(){let{prism:e}=(0,m.p)(),{colorMode:n}=(0,f.G)(),r=e.theme,t=e.darkTheme||r;return"dark"===n?t:r}var g=r(43758);function x(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.forEach(function(n){var t;t=r[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}function v({children:e}){return(0,c.jsx)("div",{className:(0,a.A)("playgroundHeader_Tvsk"),children:e})}function O(){return(0,c.jsx)("div",{children:"Loading..."})}function w(){return(0,c.jsx)(b.A,{fallback:(0,c.jsx)(O,{}),children:()=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(g.A,{fallback:e=>(0,c.jsx)(j.MN,x({},e)),children:(0,c.jsx)(d.pA,{})}),(0,c.jsx)(d.p1,{})]})})}function P(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(v,{children:(0,c.jsx)(h.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,c.jsx)("div",{className:"playgroundPreview_mApW",children:(0,c.jsx)(w,{})})]})}function k(){let e=(0,u.A)();return(0,c.jsx)(d.w,{className:"playgroundEditor_TySg"},String(e))}function S(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(v,{children:(0,c.jsx)(h.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,c.jsx)(k,{})]})}let A=e=>`${e};`;function D(e){var n,r,t,s,{children:o,transformCode:i}=e,l=function(e,n){if(null==e)return{};var r,t,s=function(e,n){if(null==e)return{};var r,t,s={},o=Object.keys(e);for(t=0;t<o.length;t++)r=o[t],n.indexOf(r)>=0||(s[r]=e[r]);return s}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t<o.length;t++)r=o[t],!(n.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}(e,["children","transformCode"]);let{siteConfig:{themeConfig:a}}=(0,p.A)(),{liveCodeBlock:{playgroundPosition:u}}=a,h=y(),b=null!==(s=null===(t=l.metastring)||void 0===t?void 0:t.includes("noInline"))&&void 0!==s&&s;return(0,c.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,c.jsx)(d.Q,(n=x({code:null==o?void 0:o.replace(/\n$/,""),noInline:b,transformCode:null!=i?i:A,theme:h},l),r=r={children:"top"===u?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(P,{}),(0,c.jsx)(S,{})]}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(S,{}),(0,c.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n))})}function B(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.forEach(function(n){var t;t=r[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}function I(e){var n,r;return(0,c.jsx)("button",(n=B({type:"button"},e),r=r={style:B({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n))}let C=function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.forEach(function(n){var t;t=r[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}({React:l},l,i);var E=r(12653),N=r(19934),T=r.n(N);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),_=RegExp("\\{(?<range>[\\d,-]+)\\}"),z={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},R=(t=function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.forEach(function(n){var t;t=r[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}({},z),s=s={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(s)):(function(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r})(Object(s)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(s,e))}),t),W=Object.keys(z);function M(e,n){let r=e.map(e=>{let{start:r,end:t}=R[e];return`(?:${r}\\s*(${n.flatMap(e=>{var n,r;return[e.line,null===(n=e.block)||void 0===n?void 0:n.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${t})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function $(e){var n,r,{as:t}=e,s=function(e,n){if(null==e)return{};var r,t,s=function(e,n){if(null==e)return{};var r,t,s={},o=Object.keys(e);for(t=0;t<o.length;t++)r=o[t],n.indexOf(r)>=0||(s[r]=e[r]);return s}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t<o.length;t++)r=o[t],!(n.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}(e,["as"]);let o=function(e){let n={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,t])=>{let s=n[e];s&&"string"==typeof t&&(r[s]=t)}),r}(y());return(0,c.jsx)(t,(n=function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.forEach(function(n){var t;t=r[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}({},s),r=r={style:o,className:(0,a.A)(s.className,"codeBlockContainer_jDV4",E.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n))}let V={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function F({children:e,className:n}){return(0,c.jsx)($,{as:"pre",tabIndex:0,className:(0,a.A)(V.codeBlockStandalone,"thin-scrollbar",n),children:(0,c.jsx)("code",{className:V.codeBlockLines,children:e})})}var H=r(2550);let q={attributes:!0,characterData:!0,childList:!0,subtree:!0};var G=r(27663);let J={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function U(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.forEach(function(n){var t;t=r[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}function Q({line:e,classNames:n,showLineNumbers:r,getLineProps:t,getTokenProps:s}){var o,i;1===e.length&&"\n"===e[0].content&&(e[0].content="");let l=t({line:e,className:(0,a.A)(n,r&&J.codeLine)}),u=e.map((e,n)=>(0,c.jsx)("span",U({},s({token:e})),n));return(0,c.jsxs)("span",(o=U({},l),i=i={children:[r?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:J.codeLineNumber}),(0,c.jsx)("span",{className:J.codeLineContent,children:u})]}):u,(0,c.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(i)):(function(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r})(Object(i)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(i,e))}),o))}var Y=r(936);function X(e){var n,r;return(0,c.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.forEach(function(n){var t;t=r[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,c.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n))}function Z(e){var n,r;return(0,c.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.forEach(function(n){var t;t=r[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,c.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:n}){let[r,t]=(0,l.useState)(!1),s=(0,l.useRef)(void 0),o=(0,l.useCallback)(()=>{(0,Y.A)(e),t(!0),s.current=window.setTimeout(()=>{t(!1)},1e3)},[e]);return(0,l.useEffect)(()=>()=>window.clearTimeout(s.current),[]),(0,c.jsx)("button",{type:"button","aria-label":r?(0,h.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,h.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,h.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.A)("clean-btn",n,K.copyButton,r&&K.copyButtonCopied),onClick:o,children:(0,c.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,c.jsx)(X,{className:K.copyButtonIcon}),(0,c.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function en(e){var n,r;return(0,c.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.forEach(function(n){var t;t=r[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,c.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function et({className:e,onClick:n,isEnabled:r}){let t=(0,h.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,c.jsx)("button",{type:"button",onClick:n,className:(0,a.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":t,title:t,children:(0,c.jsx)(en,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function es({children:e,className:n="",metastring:r,title:t,showLineNumbers:s,language:o}){var i,u,d,h;let{prism:{defaultLanguage:p,magicComments:b}}=(0,m.p)(),j=null==(u=null!==(i=null!=o?o:function(e){let n=e.split(" ").find(e=>e.startsWith("language-"));return null==n?void 0:n.replace(/language-/,"")}(n))&&void 0!==i?i:p)?void 0:u.toLowerCase(),f=y(),g=function(){let[e,n]=(0,l.useState)(!1),[r,t]=(0,l.useState)(!1),s=(0,l.useRef)(null),o=(0,l.useCallback)(()=>{let r=s.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),n(e=>!e)},[s,e]),i=(0,l.useCallback)(()=>{let{scrollWidth:e,clientWidth:n}=s.current;t(e>n||s.current.querySelector("code").hasAttribute("style"))},[s]);return!function(e,n){let[r,t]=(0,l.useState)(),s=(0,l.useCallback)(()=>{var n;t(null===(n=e.current)||void 0===n?void 0:n.closest("[role=tabpanel][hidden]"))},[e,t]);(0,l.useEffect)(()=>{s()},[s]),function(e,n,r=q){let t=(0,H._q)(n),s=(0,H.Be)(r);(0,l.useEffect)(()=>{let n=new MutationObserver(t);return e&&n.observe(e,s),()=>n.disconnect()},[e,t,s])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(n(),s())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(s,i),(0,l.useEffect)(()=>{i()},[e,i]),(0,l.useEffect)(()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)}),[i]),{codeBlockRef:s,isEnabled:e,isCodeScrollable:r,toggle:o}}(),x=(null!==(h=null==r?void 0:null===(d=r.match(L))||void 0===d?void 0:d.groups.title)&&void 0!==h?h:"")||t,{lineClassNames:v,code:O}=function(e,n){let r=e.replace(/\n$/,""),{language:t,magicComments:s,metastring:o}=n;if(o&&_.test(o)){let e=o.match(_).groups.range;if(0===s.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${o}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let n=s[0].className;return{lineClassNames:Object.fromEntries(T()(e).filter(e=>e>0).map(e=>[e-1,[n]])),code:r}}if(void 0===t)return{lineClassNames:{},code:r};let i=function(e,n){switch(e){case"js":case"javascript":case"ts":case"typescript":return M(["js","jsBlock"],n);case"jsx":case"tsx":return M(["js","jsBlock","jsx"],n);case"html":return M(["js","jsBlock","html"],n);case"python":case"py":case"bash":return M(["bash"],n);case"markdown":case"md":return M(["html","jsx","bash"],n);case"tex":case"latex":case"matlab":return M(["tex"],n);case"lua":case"haskell":case"sql":return M(["lua"],n);case"wasm":return M(["wasm"],n);case"vb":case"vba":case"visual-basic":return M(["vb","rem"],n);case"vbnet":return M(["vbnet","rem"],n);case"batch":return M(["rem"],n);case"basic":return M(["rem","f90"],n);case"fsharp":return M(["js","ml"],n);case"ocaml":case"sml":return M(["ml"],n);case"fortran":return M(["f90"],n);case"cobol":return M(["cobol"],n);default:return M(W,n)}}(t,s),c=r.split("\n"),l=Object.fromEntries(s.map(e=>[e.className,{start:0,range:""}])),a=Object.fromEntries(s.filter(e=>e.line).map(({className:e,line:n})=>[n,e])),u=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:n})=>[n.start,e])),d=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:n})=>[n.end,e]));for(let e=0;e<c.length;){let n=c[e].match(i);if(!n){e+=1;continue}let r=n.slice(1).find(e=>void 0!==e);a[r]?l[a[r]].range+=`${e},`:u[r]?l[u[r]].start=e:d[r]&&(l[d[r]].range+=`${l[d[r]].start}-${e-1},`),c.splice(e,1)}r=c.join("\n");let h={};return Object.entries(l).forEach(([e,{range:n}])=>{T()(n).forEach(n=>{var r;null!==(r=h[n])&&void 0!==r||(h[n]=[]),h[n].push(e)})}),{lineClassNames:h,code:r}}(e,{metastring:r,language:j,magicComments:b}),w=null!=s?s:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,c.jsxs)($,{as:"div",className:(0,a.A)(n,j&&!n.includes(`language-${j}`)&&`language-${j}`),children:[x&&(0,c.jsx)("div",{className:V.codeBlockTitle,children:x}),(0,c.jsxs)("div",{className:V.codeBlockContent,children:[(0,c.jsx)(G.f4,{theme:f,code:O,language:null!=j?j:"text",children:({className:e,style:n,tokens:r,getLineProps:t,getTokenProps:s})=>(0,c.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,a.A)(e,V.codeBlock,"thin-scrollbar"),style:n,children:(0,c.jsx)("code",{className:(0,a.A)(V.codeBlockLines,w&&V.codeBlockLinesWithNumbering),children:r.map((e,n)=>(0,c.jsx)(Q,{line:e,getLineProps:t,getTokenProps:s,classNames:v[n],showLineNumbers:w},n))})})}),(0,c.jsxs)("div",{className:V.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,c.jsx)(et,{className:V.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,c.jsx)(ee,{className:V.codeButton,code:O})]})]})]})}function eo(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.forEach(function(n){var t;t=r[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}let ei=(o=function(e){var n,r,{children:t}=e,s=function(e,n){if(null==e)return{};var r,t,s=function(e,n){if(null==e)return{};var r,t,s={},o=Object.keys(e);for(t=0;t<o.length;t++)r=o[t],n.indexOf(r)>=0||(s[r]=e[r]);return s}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t<o.length;t++)r=o[t],!(n.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}(e,["children"]);let o=(0,u.A)(),i=l.Children.toArray(t).some(e=>(0,l.isValidElement)(e))?t:Array.isArray(t)?t.join(""):t,a="string"==typeof i?es:F;return(0,c.jsx)(a,(n=function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.forEach(function(n){var t;t=r[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}({},s),r=r={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n),String(o))},function(e){return e.live?(0,c.jsx)(D,eo({scope:C},e)):(0,c.jsx)(o,eo({},e))});function ec(e){return(0,c.jsx)(ei,function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.forEach(function(n){var t;t=r[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}({},e))}},96572:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>c,metadata:()=>t,toc:()=>u});let t=JSON.parse('{"id":"release-process","title":"Release process","description":"Let\'s see how Docusaurus handles versioning, releases and breaking changes.","source":"@site/community/5-release-process.mdx","sourceDirName":".","slug":"/release-process","permalink":"/community/release-process","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/5-release-process.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":5,"frontMatter":{},"sidebar":"community","previous":{"title":"Canary releases","permalink":"/community/canary"}}');var s=r(62540),o=r(43023),i=r(31436);let c={},l="Release process",a={},u=[{value:"Semantic versioning",id:"semantic-versioning",level:2},{value:"Major versions",id:"major-versions",level:3},{value:"Minor versions",id:"minor-versions",level:3},{value:"Patch versions",id:"patch-versions",level:3},{value:"Versions",id:"versions",level:2},{value:"Stable version",id:"stable-version",level:3},{value:"Next version",id:"next-version",level:3},{value:"Public API surface",id:"public-api-surface",level:2},{value:"Core public API",id:"core-public-api",level:3},{value:"Theming public API",id:"theming-public-api",level:3}];function d(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"release-process",children:"Release process"})}),"\n",(0,s.jsxs)(n.p,{children:["Let's see how Docusaurus handles ",(0,s.jsx)(n.strong,{children:"versioning, releases and breaking changes"}),"."]}),"\n",(0,s.jsx)(n.admonition,{type:"info",children:(0,s.jsx)(n.p,{children:"This topic is particularly important for highly customized sites that may have difficulties to upgrade."})}),"\n",(0,s.jsx)(n.h2,{id:"semantic-versioning",children:"Semantic versioning"}),"\n",(0,s.jsxs)(n.p,{children:["Docusaurus versioning is based on the ",(0,s.jsx)(n.code,{children:"major.minor.patch"})," scheme and respects ",(0,s.jsx)(n.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Respecting Semantic Versioning is important for multiple reasons:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["It ",(0,s.jsx)(n.strong,{children:"guarantees simple minor version upgrades"}),", as long as you only use the ",(0,s.jsx)(n.a,{href:"/community/release-process#public-api-surface",children:"public API"})]}),"\n",(0,s.jsx)(n.li,{children:"It follows front-end ecosystem conventions"}),"\n",(0,s.jsx)(n.li,{children:"A new major version is an opportunity to thoroughly document breaking changes"}),"\n",(0,s.jsx)(n.li,{children:"A new major/minor version is an opportunity to communicate new features through a blog post"}),"\n"]}),"\n",(0,s.jsxs)(n.admonition,{type:"note",children:[(0,s.jsxs)(n.p,{children:["Releasing Docusaurus 2.0 took a very long time. From now on, Docusaurus will ",(0,s.jsx)(n.strong,{children:"release new major versions more regularly"}),". In practice, you can expect a new major version every 2\u20134 months."]}),(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html",children:"Major version numbers are not sacred"}),", but we still group breaking changes together and avoid releasing major versions too often."]})]}),"\n",(0,s.jsx)(n.h3,{id:"major-versions",children:"Major versions"}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"major"})," version number is incremented on ",(0,s.jsx)(n.strong,{children:"every breaking change"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Whenever a new major version is released, we publish:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["a blog post with feature highlights, major bug fixes, ",(0,s.jsx)(n.strong,{children:"breaking changes, and upgrade instructions"}),"."]}),"\n",(0,s.jsx)(n.li,{children:"an exhaustive changelog entry"}),"\n"]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["Read our ",(0,s.jsx)(n.a,{href:"#public-api-surface",children:"public API surface"})," section to clearly understand what we consider as a breaking change."]})}),"\n",(0,s.jsx)(n.h3,{id:"minor-versions",children:"Minor versions"}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"minor"})," version number is incremented on every significant retro-compatible change."]}),"\n",(0,s.jsx)(n.p,{children:"Whenever a new minor version is released, we publish:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"a blog post with a list of feature highlights and major bug fixes"}),"\n",(0,s.jsx)(n.li,{children:"an exhaustive changelog entry"}),"\n"]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["If you only use our ",(0,s.jsx)(n.a,{href:"#public-api-surface",children:"public API surface"}),", you should be able to upgrade in no time!"]})}),"\n",(0,s.jsx)(n.h3,{id:"patch-versions",children:"Patch versions"}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"patch"})," version number is incremented on bugfixes releases."]}),"\n",(0,s.jsx)(n.p,{children:"Whenever a new patch version is released, we publish:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"an exhaustive changelog entry"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"versions",children:"Versions"}),"\n","\n",(0,s.jsx)(n.p,{children:"The Docusaurus team is usually working on 2 major versions at the same time:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsxs)(n.strong,{children:["Docusaurus ",(0,s.jsx)(i.Bk,{})]}),": the ",(0,s.jsx)(n.strong,{children:"stable"})," version, on the ",(0,s.jsx)(i.p1,{})," branch"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsxs)(n.strong,{children:["Docusaurus ",(0,s.jsx)(i.tp,{})]}),": the ",(0,s.jsx)(n.strong,{children:"next"})," version, on the ",(0,s.jsx)(i.JO,{})," branch"]}),"\n"]}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(i.p1,{})," branch is created just before releasing the first v",(0,s.jsx)(i.Bk,{})," release candidate."]})}),"\n",(0,s.jsx)(n.h3,{id:"stable-version",children:"Stable version"}),"\n",(0,s.jsxs)(n.p,{children:["The stable version (v",(0,s.jsx)(i.Bk,{}),", on ",(0,s.jsx)(i.p1,{}),") is recommended for most Docusaurus users."]}),"\n",(0,s.jsxs)(n.p,{children:["We regularly backport retro-compatible features, bug and security fixes from ",(0,s.jsx)(i.JO,{})," to ",(0,s.jsx)(i.p1,{})," with ",(0,s.jsx)(n.code,{children:"git cherry-pick"})," to make them available to those not ready for the next version."]}),"\n",(0,s.jsxs)(n.admonition,{type:"info",children:[(0,s.jsxs)(n.p,{children:["After a new stable version has been released, the former stable version will continue to receive support only for ",(0,s.jsx)(n.strong,{children:"major security issues"})," for ",(0,s.jsx)(n.strong,{children:"3 months"}),". Otherwise, all features will be frozen and non-critical bugs will not be fixed."]}),(0,s.jsx)(n.p,{children:"It is recommended to upgrade within that time frame to the new stable version."})]}),"\n",(0,s.jsx)(n.h3,{id:"next-version",children:"Next version"}),"\n",(0,s.jsxs)(n.p,{children:["The next version (v",(0,s.jsx)(i.tp,{}),", on ",(0,s.jsx)(i.JO,{}),") is the version the Docusaurus team is currently working on."]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(i.JO,{})," branch is the ",(0,s.jsx)(n.strong,{children:"default target branch"})," for all pull requests, including core team and external contributions."]}),"\n",(0,s.jsxs)(n.p,{children:["This version is recommended for ",(0,s.jsx)(n.strong,{children:"early adopters"})," that want to use the latest Docusaurus features as soon as possible. It is also a good way to help us by reporting bugs and giving some feedback."]}),"\n",(0,s.jsx)(n.p,{children:"There are 3 ways to use the next version:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["with an ",(0,s.jsx)(n.code,{children:"alpha"}),", ",(0,s.jsx)(n.code,{children:"beta"})," or ",(0,s.jsx)(n.code,{children:"rc"})," pre-release"]}),"\n",(0,s.jsxs)(n.li,{children:["with the ",(0,s.jsx)(n.code,{children:"@next"})," npm dist tag for the latest pre-release"]}),"\n",(0,s.jsxs)(n.li,{children:["with a ",(0,s.jsx)(n.a,{href:"/community/canary",children:"canary release"})," for the very latest features"]}),"\n"]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsx)(n.p,{children:"The next version passes all our automated tests and is used by the Docusaurus site itself. It is relatively safe: don't be afraid to give it a try."})}),"\n",(0,s.jsxs)(n.admonition,{type:"warning",children:[(0,s.jsx)(n.p,{children:"Breaking changes can happen on the next version: detailed upgrade instructions are available in the changelog and pull requests."}),(0,s.jsxs)(n.p,{children:["At the ",(0,s.jsx)(n.code,{children:"beta"})," and ",(0,s.jsx)(n.code,{children:"rc"})," (release candidate) phases, we avoid introducing major breaking changes."]})]}),"\n",(0,s.jsx)(n.h2,{id:"public-api-surface",children:"Public API surface"}),"\n",(0,s.jsxs)(n.p,{children:["Docusaurus commits to respecting Semantic Versioning. This means that whenever changes occur in Docusaurus public APIs and break backward compatibility, we will increment the ",(0,s.jsx)(n.code,{children:"major"})," version number."]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["Docusaurus guarantees public API retro-compatibility across ",(0,s.jsx)(n.code,{children:"minor"})," versions. Unless you use internal APIs, ",(0,s.jsx)(n.code,{children:"minor"})," version upgrades should be easy."]})}),"\n",(0,s.jsx)(n.p,{children:"We will outline what accounts as the public API surface."}),"\n",(0,s.jsx)(n.h3,{id:"core-public-api",children:"Core public API"}),"\n",(0,s.jsx)(n.p,{children:"\u2705 Our public API includes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Docusaurus config"}),"\n",(0,s.jsx)(n.li,{children:"Docusaurus client APIs"}),"\n",(0,s.jsx)(n.li,{children:"Docusaurus CLI"}),"\n",(0,s.jsx)(n.li,{children:"Preset options"}),"\n",(0,s.jsx)(n.li,{children:"Plugin options"}),"\n",(0,s.jsx)(n.li,{children:"Plugin lifecycle APIs"}),"\n",(0,s.jsx)(n.li,{children:"Theme config"}),"\n",(0,s.jsx)(n.li,{children:"Core plugins route component props"}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"@docusaurus/types"})," TypeScript types","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"We still retain the freedom to make types stricter (which may break type-checking)."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["\u274C Our public API ",(0,s.jsx)(n.strong,{children:"excludes"}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Docusaurus config ",(0,s.jsx)(n.code,{children:"future"})]}),"\n",(0,s.jsxs)(n.li,{children:["All features prefixed by ",(0,s.jsx)(n.code,{children:"experimental_"})," or ",(0,s.jsx)(n.code,{children:"unstable_"})]}),"\n",(0,s.jsxs)(n.li,{children:["All features prefixed by ",(0,s.jsx)(n.code,{children:"v<MajorVersion>_"})," (",(0,s.jsx)(n.code,{children:"v6_"})," ",(0,s.jsx)(n.code,{children:"v7_"}),", etc.)"]}),"\n"]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsx)(n.p,{children:"For non-theme APIs, any documented API is considered public (and will be stable); any undocumented API is considered internal."})}),"\n",(0,s.jsxs)(n.p,{children:['An API being "stable" means if you increment the patch or minor version of your Docusaurus installation without any other change, running ',(0,s.jsx)(n.code,{children:"docusaurus start"})," or ",(0,s.jsx)(n.code,{children:"docusaurus build"})," should not throw an error."]}),"\n",(0,s.jsx)(n.h3,{id:"theming-public-api",children:"Theming public API"}),"\n",(0,s.jsx)(n.p,{children:"Docusaurus has a very flexible theming system:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"You can use custom CSS"}),"\n",(0,s.jsxs)(n.li,{children:["You can ",(0,s.jsx)(n.a,{href:"/docs/swizzling",children:"swizzle"})," any React theme component"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This system also implicitly creates a very large API surface. To be able to move fast and improve Docusaurus, we can't guarantee retro-compatibility."}),"\n",(0,s.jsx)(n.p,{children:"\u2705 Our public theming API includes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"/docs/styling-layout#theme-class-names",children:"Theme class names"})}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/docs/styling-layout#styling-your-site-with-infima",children:"Infima"})," class names and CSS variables"]}),"\n",(0,s.jsxs)(n.li,{children:["React components that are ",(0,s.jsx)(n.a,{href:"/docs/swizzling#what-is-safe-to-swizzle",children:"safe to swizzle"})]}),"\n",(0,s.jsx)(n.li,{children:"The theme user experience"}),"\n",(0,s.jsx)(n.li,{children:"Browser support"}),"\n"]}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsx)(n.p,{children:"You may not be able to achieve your site customization through this public API."}),(0,s.jsxs)(n.p,{children:["In this case, please ",(0,s.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/5468",children:"report your customization use case"})," and we will figure out how to expand our public API."]})]}),"\n",(0,s.jsxs)(n.p,{children:["\u274C Our public theming API ",(0,s.jsx)(n.strong,{children:"excludes"}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"The DOM structure"}),"\n",(0,s.jsxs)(n.li,{children:["CSS module class names with a hash suffix (usually targeted with ",(0,s.jsx)(n.code,{children:"[class*='myClassName']"})," selectors)"]}),"\n",(0,s.jsxs)(n.li,{children:["React components that are ",(0,s.jsx)(n.a,{href:"/docs/swizzling#what-is-safe-to-swizzle",children:"unsafe or forbidden to swizzle"})]}),"\n",(0,s.jsxs)(n.li,{children:["React components that import from ",(0,s.jsx)(n.code,{children:"@docusaurus/theme-common/internal"})]}),"\n",(0,s.jsx)(n.li,{children:"The exact visual appearance of the theme"}),"\n"]}),"\n",(0,s.jsxs)(n.admonition,{type:"note",children:[(0,s.jsxs)(n.p,{children:["When ",(0,s.jsx)(n.a,{href:"/docs/swizzling",children:"swizzling"})," safe components, you might encounter components that import undocumented APIs from ",(0,s.jsx)(n.code,{children:"@docusaurus/theme-common"})," (without the ",(0,s.jsx)(n.code,{children:"/internal"})," subpath)."]}),(0,s.jsx)(n.p,{children:'We still maintain retro-compatibility on those APIs (hence they are marked as "safe"), but we don\'t encourage a direct usage.'})]})]})}function h(e={}){let{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file diff --git a/assets/js/276a1994.5a9fa380.js b/assets/js/276a1994.5a9fa380.js new file mode 100644 index 0000000000..51186ce165 --- /dev/null +++ b/assets/js/276a1994.5a9fa380.js @@ -0,0 +1,5 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[67592],{40576:(e,r,n)=>{n.d(r,{A:()=>o});var t=n(62540);n(63696);var s=n(10709);function o({children:e,fallback:r}){return(0,s.A)()?(0,t.jsx)(t.Fragment,{children:null==e?void 0:e()}):null!=r?r:null}},31436:(e,r,n)=>{n.d(r,{Bk:()=>f,Cj:()=>O,JO:()=>g,X0:()=>p,ex:()=>b,jL:()=>x,p1:()=>y,tp:()=>j,tu:()=>d,uA:()=>v,xs:()=>w});var t=n(62540),s=n(63696),o=n(78284),i=n(69615),c=n(81912),l=n(36372),a=n(55887);let u=s.createContext(null);function d({children:e}){let[r,n]=(0,s.useState)(null),o=(0,s.useRef)(!0);return(0,s.useEffect)(()=>(o.current=!0,()=>{o.current=!1}),[]),(0,s.useEffect)(()=>{fetch("https://registry.npmjs.org/@docusaurus/core").then(e=>e.json()).then(e=>{if(!o.current)return;let r=Object.keys(e.versions).at(-1),t=e.time[r];n({name:r,time:t})})},[]),(0,t.jsx)(u.Provider,{value:r,children:e})}function h(){var e,r;let n=null===(e=(0,o.g1)("default").preferredVersion)||void 0===e?void 0:e.name,t=(0,i.jh)("default"),s=(null!==(r=t.find(e=>"current"!==e.name))&&void 0!==r?r:t[0]).name;return n&&"current"!==n?n:s}function p(){let e=(0,s.useContext)(u);return e?(0,t.jsx)("span",{children:(0,t.jsx)(c.A,{description:"The hint text for the current canary version tag.",values:{canaryVersionName:(0,t.jsx)("b",{children:e.name})},children:"Current: {canaryVersionName}"})}):(0,t.jsx)("span",{children:(0,t.jsx)(c.A,{description:"An example canary version tag when the actual version can't be fetched.",children:"Example: 0.0.0-4922"})})}function b(){let e=h();return(0,t.jsx)("span",{children:e})}function j(){return(0,t.jsx)("span",{children:3})}function f(){return(0,t.jsx)("span",{children:2})}function m({branch:e}){return(0,t.jsx)(l.A,{to:`https://github.com/facebook/docusaurus/tree/${e}`,children:(0,t.jsx)("code",{children:e})})}function y(){return(0,t.jsx)(m,{branch:"docusaurus-v2"})}function g(){return(0,t.jsx)(m,{branch:"main"})}function x({children:e}){return(0,s.useContext)(u)?null:e}function v({children:e}){return(0,s.useContext)(u)?e:null}function O(){var e,r;let n=null!==(r=null===(e=(0,s.useContext)(u))||void 0===e?void 0:e.name)&&void 0!==r?r:"0.0.0-4922",o=h();return(0,t.jsx)(a.A,{language:"diff",children:`- "@docusaurus/core": "^${o}", +- "@docusaurus/preset-classic": "^${o}", ++ "@docusaurus/core": "${n}", ++ "@docusaurus/preset-classic": "${n}", +`})}function w(){var e;let r=null===(e=(0,s.useContext)(u))||void 0===e?void 0:e.time;return r?(0,t.jsx)(c.A,{values:{time:(0,t.jsx)("b",{children:new Date(r).toLocaleString()})},children:"The latest canary version that's available on npm is published at {time}."}):null}},55887:(e,r,n)=>{n.d(r,{A:()=>ec});var t,s,o,i={};n.r(i),n.d(i,{ButtonExample:()=>I});var c=n(62540),l=n(63696),a=n(11750),u=n(10709),d=n(55152),h=n(81912),p=n(99468),b=n(40576),j=n(1495),f=n(66659),m=n(25436);function y(){let{prism:e}=(0,m.p)(),{colorMode:r}=(0,f.G)(),n=e.theme,t=e.darkTheme||n;return"dark"===r?t:n}var g=n(43758);function x(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(r){var t;t=n[r],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t})}return e}function v({children:e}){return(0,c.jsx)("div",{className:(0,a.A)("playgroundHeader_Tvsk"),children:e})}function O(){return(0,c.jsx)("div",{children:"Loading..."})}function w(){return(0,c.jsx)(b.A,{fallback:(0,c.jsx)(O,{}),children:()=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(g.A,{fallback:e=>(0,c.jsx)(j.MN,x({},e)),children:(0,c.jsx)(d.pA,{})}),(0,c.jsx)(d.p1,{})]})})}function P(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(v,{children:(0,c.jsx)(h.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,c.jsx)("div",{className:"playgroundPreview_mApW",children:(0,c.jsx)(w,{})})]})}function k(){let e=(0,u.A)();return(0,c.jsx)(d.w,{className:"playgroundEditor_TySg"},String(e))}function S(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(v,{children:(0,c.jsx)(h.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,c.jsx)(k,{})]})}let A=e=>`${e};`;function D(e){var r,n,t,s,{children:o,transformCode:i}=e,l=function(e,r){if(null==e)return{};var n,t,s=function(e,r){if(null==e)return{};var n,t,s={},o=Object.keys(e);for(t=0;t<o.length;t++)n=o[t],r.indexOf(n)>=0||(s[n]=e[n]);return s}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t<o.length;t++)n=o[t],!(r.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}(e,["children","transformCode"]);let{siteConfig:{themeConfig:a}}=(0,p.A)(),{liveCodeBlock:{playgroundPosition:u}}=a,h=y(),b=null!==(s=null===(t=l.metastring)||void 0===t?void 0:t.includes("noInline"))&&void 0!==s&&s;return(0,c.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,c.jsx)(d.Q,(r=x({code:null==o?void 0:o.replace(/\n$/,""),noInline:b,transformCode:null!=i?i:A,theme:h},l),n=n={children:"top"===u?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(P,{}),(0,c.jsx)(S,{})]}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(S,{}),(0,c.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r))})}function B(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(r){var t;t=n[r],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t})}return e}function I(e){var r,n;return(0,c.jsx)("button",(r=B({type:"button"},e),n=n={style:B({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r))}let C=function(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(r){var t;t=n[r],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t})}return e}({React:l},l,i);var E=n(12653),N=n(19934),T=n.n(N);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),_=RegExp("\\{(?<range>[\\d,-]+)\\}"),z={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},R=(t=function(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(r){var t;t=n[r],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t})}return e}({},z),s=s={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(s)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n})(Object(s)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(s,e))}),t),W=Object.keys(z);function M(e,r){let n=e.map(e=>{let{start:n,end:t}=R[e];return`(?:${n}\\s*(${r.flatMap(e=>{var r,n;return[e.line,null===(r=e.block)||void 0===r?void 0:r.start,null===(n=e.block)||void 0===n?void 0:n.end].filter(Boolean)}).join("|")})\\s*${t})`}).join("|");return RegExp(`^\\s*(?:${n})\\s*$`)}function $(e){var r,n,{as:t}=e,s=function(e,r){if(null==e)return{};var n,t,s=function(e,r){if(null==e)return{};var n,t,s={},o=Object.keys(e);for(t=0;t<o.length;t++)n=o[t],r.indexOf(n)>=0||(s[n]=e[n]);return s}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t<o.length;t++)n=o[t],!(r.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}(e,["as"]);let o=function(e){let r={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach(([e,t])=>{let s=r[e];s&&"string"==typeof t&&(n[s]=t)}),n}(y());return(0,c.jsx)(t,(r=function(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(r){var t;t=n[r],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t})}return e}({},s),n=n={style:o,className:(0,a.A)(s.className,"codeBlockContainer_jDV4",E.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r))}let V={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function F({children:e,className:r}){return(0,c.jsx)($,{as:"pre",tabIndex:0,className:(0,a.A)(V.codeBlockStandalone,"thin-scrollbar",r),children:(0,c.jsx)("code",{className:V.codeBlockLines,children:e})})}var H=n(2550);let q={attributes:!0,characterData:!0,childList:!0,subtree:!0};var G=n(27663);let J={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function U(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(r){var t;t=n[r],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t})}return e}function Q({line:e,classNames:r,showLineNumbers:n,getLineProps:t,getTokenProps:s}){var o,i;1===e.length&&"\n"===e[0].content&&(e[0].content="");let l=t({line:e,className:(0,a.A)(r,n&&J.codeLine)}),u=e.map((e,r)=>(0,c.jsx)("span",U({},s({token:e})),r));return(0,c.jsxs)("span",(o=U({},l),i=i={children:[n?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:J.codeLineNumber}),(0,c.jsx)("span",{className:J.codeLineContent,children:u})]}):u,(0,c.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(i)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n})(Object(i)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(i,e))}),o))}var Y=n(936);function X(e){var r,n;return(0,c.jsx)("svg",(r=function(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(r){var t;t=n[r],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,c.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r))}function Z(e){var r,n;return(0,c.jsx)("svg",(r=function(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(r){var t;t=n[r],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,c.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:r}){let[n,t]=(0,l.useState)(!1),s=(0,l.useRef)(void 0),o=(0,l.useCallback)(()=>{(0,Y.A)(e),t(!0),s.current=window.setTimeout(()=>{t(!1)},1e3)},[e]);return(0,l.useEffect)(()=>()=>window.clearTimeout(s.current),[]),(0,c.jsx)("button",{type:"button","aria-label":n?(0,h.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,h.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,h.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.A)("clean-btn",r,K.copyButton,n&&K.copyButtonCopied),onClick:o,children:(0,c.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,c.jsx)(X,{className:K.copyButtonIcon}),(0,c.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function er(e){var r,n;return(0,c.jsx)("svg",(r=function(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(r){var t;t=n[r],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,c.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r))}let en={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function et({className:e,onClick:r,isEnabled:n}){let t=(0,h.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,c.jsx)("button",{type:"button",onClick:r,className:(0,a.A)("clean-btn",e,n&&en.wordWrapButtonEnabled),"aria-label":t,title:t,children:(0,c.jsx)(er,{className:en.wordWrapButtonIcon,"aria-hidden":"true"})})}function es({children:e,className:r="",metastring:n,title:t,showLineNumbers:s,language:o}){var i,u,d,h;let{prism:{defaultLanguage:p,magicComments:b}}=(0,m.p)(),j=null==(u=null!==(i=null!=o?o:function(e){let r=e.split(" ").find(e=>e.startsWith("language-"));return null==r?void 0:r.replace(/language-/,"")}(r))&&void 0!==i?i:p)?void 0:u.toLowerCase(),f=y(),g=function(){let[e,r]=(0,l.useState)(!1),[n,t]=(0,l.useState)(!1),s=(0,l.useRef)(null),o=(0,l.useCallback)(()=>{let n=s.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),r(e=>!e)},[s,e]),i=(0,l.useCallback)(()=>{let{scrollWidth:e,clientWidth:r}=s.current;t(e>r||s.current.querySelector("code").hasAttribute("style"))},[s]);return!function(e,r){let[n,t]=(0,l.useState)(),s=(0,l.useCallback)(()=>{var r;t(null===(r=e.current)||void 0===r?void 0:r.closest("[role=tabpanel][hidden]"))},[e,t]);(0,l.useEffect)(()=>{s()},[s]),function(e,r,n=q){let t=(0,H._q)(r),s=(0,H.Be)(n);(0,l.useEffect)(()=>{let r=new MutationObserver(t);return e&&r.observe(e,s),()=>r.disconnect()},[e,t,s])}(n,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(r(),s())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(s,i),(0,l.useEffect)(()=>{i()},[e,i]),(0,l.useEffect)(()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)}),[i]),{codeBlockRef:s,isEnabled:e,isCodeScrollable:n,toggle:o}}(),x=(null!==(h=null==n?void 0:null===(d=n.match(L))||void 0===d?void 0:d.groups.title)&&void 0!==h?h:"")||t,{lineClassNames:v,code:O}=function(e,r){let n=e.replace(/\n$/,""),{language:t,magicComments:s,metastring:o}=r;if(o&&_.test(o)){let e=o.match(_).groups.range;if(0===s.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${o}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let r=s[0].className;return{lineClassNames:Object.fromEntries(T()(e).filter(e=>e>0).map(e=>[e-1,[r]])),code:n}}if(void 0===t)return{lineClassNames:{},code:n};let i=function(e,r){switch(e){case"js":case"javascript":case"ts":case"typescript":return M(["js","jsBlock"],r);case"jsx":case"tsx":return M(["js","jsBlock","jsx"],r);case"html":return M(["js","jsBlock","html"],r);case"python":case"py":case"bash":return M(["bash"],r);case"markdown":case"md":return M(["html","jsx","bash"],r);case"tex":case"latex":case"matlab":return M(["tex"],r);case"lua":case"haskell":case"sql":return M(["lua"],r);case"wasm":return M(["wasm"],r);case"vb":case"vba":case"visual-basic":return M(["vb","rem"],r);case"vbnet":return M(["vbnet","rem"],r);case"batch":return M(["rem"],r);case"basic":return M(["rem","f90"],r);case"fsharp":return M(["js","ml"],r);case"ocaml":case"sml":return M(["ml"],r);case"fortran":return M(["f90"],r);case"cobol":return M(["cobol"],r);default:return M(W,r)}}(t,s),c=n.split("\n"),l=Object.fromEntries(s.map(e=>[e.className,{start:0,range:""}])),a=Object.fromEntries(s.filter(e=>e.line).map(({className:e,line:r})=>[r,e])),u=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:r})=>[r.start,e])),d=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:r})=>[r.end,e]));for(let e=0;e<c.length;){let r=c[e].match(i);if(!r){e+=1;continue}let n=r.slice(1).find(e=>void 0!==e);a[n]?l[a[n]].range+=`${e},`:u[n]?l[u[n]].start=e:d[n]&&(l[d[n]].range+=`${l[d[n]].start}-${e-1},`),c.splice(e,1)}n=c.join("\n");let h={};return Object.entries(l).forEach(([e,{range:r}])=>{T()(r).forEach(r=>{var n;null!==(n=h[r])&&void 0!==n||(h[r]=[]),h[r].push(e)})}),{lineClassNames:h,code:n}}(e,{metastring:n,language:j,magicComments:b}),w=null!=s?s:!!(null==n?void 0:n.includes("showLineNumbers"));return(0,c.jsxs)($,{as:"div",className:(0,a.A)(r,j&&!r.includes(`language-${j}`)&&`language-${j}`),children:[x&&(0,c.jsx)("div",{className:V.codeBlockTitle,children:x}),(0,c.jsxs)("div",{className:V.codeBlockContent,children:[(0,c.jsx)(G.f4,{theme:f,code:O,language:null!=j?j:"text",children:({className:e,style:r,tokens:n,getLineProps:t,getTokenProps:s})=>(0,c.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,a.A)(e,V.codeBlock,"thin-scrollbar"),style:r,children:(0,c.jsx)("code",{className:(0,a.A)(V.codeBlockLines,w&&V.codeBlockLinesWithNumbering),children:n.map((e,r)=>(0,c.jsx)(Q,{line:e,getLineProps:t,getTokenProps:s,classNames:v[r],showLineNumbers:w},r))})})}),(0,c.jsxs)("div",{className:V.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,c.jsx)(et,{className:V.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,c.jsx)(ee,{className:V.codeButton,code:O})]})]})]})}function eo(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(r){var t;t=n[r],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t})}return e}let ei=(o=function(e){var r,n,{children:t}=e,s=function(e,r){if(null==e)return{};var n,t,s=function(e,r){if(null==e)return{};var n,t,s={},o=Object.keys(e);for(t=0;t<o.length;t++)n=o[t],r.indexOf(n)>=0||(s[n]=e[n]);return s}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t<o.length;t++)n=o[t],!(r.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}(e,["children"]);let o=(0,u.A)(),i=l.Children.toArray(t).some(e=>(0,l.isValidElement)(e))?t:Array.isArray(t)?t.join(""):t,a="string"==typeof i?es:F;return(0,c.jsx)(a,(r=function(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(r){var t;t=n[r],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t})}return e}({},s),n=n={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r),String(o))},function(e){return e.live?(0,c.jsx)(D,eo({scope:C},e)):(0,c.jsx)(o,eo({},e))});function ec(e){return(0,c.jsx)(ei,function(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(r){var t;t=n[r],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t})}return e}({},e))}},96572:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>c,metadata:()=>t,toc:()=>u});let t=JSON.parse('{"id":"release-process","title":"Release process","description":"Let\'s see how Docusaurus handles versioning, releases and breaking changes.","source":"@site/community/5-release-process.mdx","sourceDirName":".","slug":"/release-process","permalink":"/community/release-process","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/5-release-process.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":5,"frontMatter":{},"sidebar":"community","previous":{"title":"Canary releases","permalink":"/community/canary"}}');var s=n(62540),o=n(43023),i=n(31436);let c={},l="Release process",a={},u=[{value:"Semantic versioning",id:"semantic-versioning",level:2},{value:"Major versions",id:"major-versions",level:3},{value:"Minor versions",id:"minor-versions",level:3},{value:"Patch versions",id:"patch-versions",level:3},{value:"Versions",id:"versions",level:2},{value:"Stable version",id:"stable-version",level:3},{value:"Next version",id:"next-version",level:3},{value:"Public API surface",id:"public-api-surface",level:2},{value:"Core public API",id:"core-public-api",level:3},{value:"Theming public API",id:"theming-public-api",level:3}];function d(e){let r={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"release-process",children:"Release process"})}),"\n",(0,s.jsxs)(r.p,{children:["Let's see how Docusaurus handles ",(0,s.jsx)(r.strong,{children:"versioning, releases and breaking changes"}),"."]}),"\n",(0,s.jsx)(r.admonition,{type:"info",children:(0,s.jsx)(r.p,{children:"This topic is particularly important for highly customized sites that may have difficulties to upgrade."})}),"\n",(0,s.jsx)(r.h2,{id:"semantic-versioning",children:"Semantic versioning"}),"\n",(0,s.jsxs)(r.p,{children:["Docusaurus versioning is based on the ",(0,s.jsx)(r.code,{children:"major.minor.patch"})," scheme and respects ",(0,s.jsx)(r.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,s.jsx)(r.p,{children:"Respecting Semantic Versioning is important for multiple reasons:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["It ",(0,s.jsx)(r.strong,{children:"guarantees simple minor version upgrades"}),", as long as you only use the ",(0,s.jsx)(r.a,{href:"/community/release-process#public-api-surface",children:"public API"})]}),"\n",(0,s.jsx)(r.li,{children:"It follows front-end ecosystem conventions"}),"\n",(0,s.jsx)(r.li,{children:"A new major version is an opportunity to thoroughly document breaking changes"}),"\n",(0,s.jsx)(r.li,{children:"A new major/minor version is an opportunity to communicate new features through a blog post"}),"\n"]}),"\n",(0,s.jsxs)(r.admonition,{type:"note",children:[(0,s.jsxs)(r.p,{children:["Releasing Docusaurus 2.0 took a very long time. From now on, Docusaurus will ",(0,s.jsx)(r.strong,{children:"release new major versions more regularly"}),". In practice, you can expect a new major version every 2\u20134 months."]}),(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.a,{href:"https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html",children:"Major version numbers are not sacred"}),", but we still group breaking changes together and avoid releasing major versions too often."]})]}),"\n",(0,s.jsx)(r.h3,{id:"major-versions",children:"Major versions"}),"\n",(0,s.jsxs)(r.p,{children:["The ",(0,s.jsx)(r.code,{children:"major"})," version number is incremented on ",(0,s.jsx)(r.strong,{children:"every breaking change"}),"."]}),"\n",(0,s.jsx)(r.p,{children:"Whenever a new major version is released, we publish:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["a blog post with feature highlights, major bug fixes, ",(0,s.jsx)(r.strong,{children:"breaking changes, and upgrade instructions"}),"."]}),"\n",(0,s.jsx)(r.li,{children:"an exhaustive changelog entry"}),"\n"]}),"\n",(0,s.jsx)(r.admonition,{type:"tip",children:(0,s.jsxs)(r.p,{children:["Read our ",(0,s.jsx)(r.a,{href:"#public-api-surface",children:"public API surface"})," section to clearly understand what we consider as a breaking change."]})}),"\n",(0,s.jsx)(r.h3,{id:"minor-versions",children:"Minor versions"}),"\n",(0,s.jsxs)(r.p,{children:["The ",(0,s.jsx)(r.code,{children:"minor"})," version number is incremented on every significant retro-compatible change."]}),"\n",(0,s.jsx)(r.p,{children:"Whenever a new minor version is released, we publish:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"a blog post with a list of feature highlights and major bug fixes"}),"\n",(0,s.jsx)(r.li,{children:"an exhaustive changelog entry"}),"\n"]}),"\n",(0,s.jsx)(r.admonition,{type:"tip",children:(0,s.jsxs)(r.p,{children:["If you only use our ",(0,s.jsx)(r.a,{href:"#public-api-surface",children:"public API surface"}),", you should be able to upgrade in no time!"]})}),"\n",(0,s.jsx)(r.h3,{id:"patch-versions",children:"Patch versions"}),"\n",(0,s.jsxs)(r.p,{children:["The ",(0,s.jsx)(r.code,{children:"patch"})," version number is incremented on bugfixes releases."]}),"\n",(0,s.jsx)(r.p,{children:"Whenever a new patch version is released, we publish:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"an exhaustive changelog entry"}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"versions",children:"Versions"}),"\n","\n",(0,s.jsx)(r.p,{children:"The Docusaurus team is usually working on 2 major versions at the same time:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsxs)(r.strong,{children:["Docusaurus ",(0,s.jsx)(i.Bk,{})]}),": the ",(0,s.jsx)(r.strong,{children:"stable"})," version, on the ",(0,s.jsx)(i.p1,{})," branch"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsxs)(r.strong,{children:["Docusaurus ",(0,s.jsx)(i.tp,{})]}),": the ",(0,s.jsx)(r.strong,{children:"next"})," version, on the ",(0,s.jsx)(i.JO,{})," branch"]}),"\n"]}),"\n",(0,s.jsx)(r.admonition,{type:"note",children:(0,s.jsxs)(r.p,{children:["The ",(0,s.jsx)(i.p1,{})," branch is created just before releasing the first v",(0,s.jsx)(i.Bk,{})," release candidate."]})}),"\n",(0,s.jsx)(r.h3,{id:"stable-version",children:"Stable version"}),"\n",(0,s.jsxs)(r.p,{children:["The stable version (v",(0,s.jsx)(i.Bk,{}),", on ",(0,s.jsx)(i.p1,{}),") is recommended for most Docusaurus users."]}),"\n",(0,s.jsxs)(r.p,{children:["We regularly backport retro-compatible features, bug and security fixes from ",(0,s.jsx)(i.JO,{})," to ",(0,s.jsx)(i.p1,{})," with ",(0,s.jsx)(r.code,{children:"git cherry-pick"})," to make them available to those not ready for the next version."]}),"\n",(0,s.jsxs)(r.admonition,{type:"info",children:[(0,s.jsxs)(r.p,{children:["After a new stable version has been released, the former stable version will continue to receive support only for ",(0,s.jsx)(r.strong,{children:"major security issues"})," for ",(0,s.jsx)(r.strong,{children:"3 months"}),". Otherwise, all features will be frozen and non-critical bugs will not be fixed."]}),(0,s.jsx)(r.p,{children:"It is recommended to upgrade within that time frame to the new stable version."})]}),"\n",(0,s.jsx)(r.h3,{id:"next-version",children:"Next version"}),"\n",(0,s.jsxs)(r.p,{children:["The next version (v",(0,s.jsx)(i.tp,{}),", on ",(0,s.jsx)(i.JO,{}),") is the version the Docusaurus team is currently working on."]}),"\n",(0,s.jsxs)(r.p,{children:["The ",(0,s.jsx)(i.JO,{})," branch is the ",(0,s.jsx)(r.strong,{children:"default target branch"})," for all pull requests, including core team and external contributions."]}),"\n",(0,s.jsxs)(r.p,{children:["This version is recommended for ",(0,s.jsx)(r.strong,{children:"early adopters"})," that want to use the latest Docusaurus features as soon as possible. It is also a good way to help us by reporting bugs and giving some feedback."]}),"\n",(0,s.jsx)(r.p,{children:"There are 3 ways to use the next version:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["with an ",(0,s.jsx)(r.code,{children:"alpha"}),", ",(0,s.jsx)(r.code,{children:"beta"})," or ",(0,s.jsx)(r.code,{children:"rc"})," pre-release"]}),"\n",(0,s.jsxs)(r.li,{children:["with the ",(0,s.jsx)(r.code,{children:"@next"})," npm dist tag for the latest pre-release"]}),"\n",(0,s.jsxs)(r.li,{children:["with a ",(0,s.jsx)(r.a,{href:"/community/canary",children:"canary release"})," for the very latest features"]}),"\n"]}),"\n",(0,s.jsx)(r.admonition,{type:"tip",children:(0,s.jsx)(r.p,{children:"The next version passes all our automated tests and is used by the Docusaurus site itself. It is relatively safe: don't be afraid to give it a try."})}),"\n",(0,s.jsxs)(r.admonition,{type:"warning",children:[(0,s.jsx)(r.p,{children:"Breaking changes can happen on the next version: detailed upgrade instructions are available in the changelog and pull requests."}),(0,s.jsxs)(r.p,{children:["At the ",(0,s.jsx)(r.code,{children:"beta"})," and ",(0,s.jsx)(r.code,{children:"rc"})," (release candidate) phases, we avoid introducing major breaking changes."]})]}),"\n",(0,s.jsx)(r.h2,{id:"public-api-surface",children:"Public API surface"}),"\n",(0,s.jsxs)(r.p,{children:["Docusaurus commits to respecting Semantic Versioning. This means that whenever changes occur in Docusaurus public APIs and break backward compatibility, we will increment the ",(0,s.jsx)(r.code,{children:"major"})," version number."]}),"\n",(0,s.jsx)(r.admonition,{type:"tip",children:(0,s.jsxs)(r.p,{children:["Docusaurus guarantees public API retro-compatibility across ",(0,s.jsx)(r.code,{children:"minor"})," versions. Unless you use internal APIs, ",(0,s.jsx)(r.code,{children:"minor"})," version upgrades should be easy."]})}),"\n",(0,s.jsx)(r.p,{children:"We will outline what accounts as the public API surface."}),"\n",(0,s.jsx)(r.h3,{id:"core-public-api",children:"Core public API"}),"\n",(0,s.jsx)(r.p,{children:"\u2705 Our public API includes:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"Docusaurus config"}),"\n",(0,s.jsx)(r.li,{children:"Docusaurus client APIs"}),"\n",(0,s.jsx)(r.li,{children:"Docusaurus CLI"}),"\n",(0,s.jsx)(r.li,{children:"Preset options"}),"\n",(0,s.jsx)(r.li,{children:"Plugin options"}),"\n",(0,s.jsx)(r.li,{children:"Plugin lifecycle APIs"}),"\n",(0,s.jsx)(r.li,{children:"Theme config"}),"\n",(0,s.jsx)(r.li,{children:"Core plugins route component props"}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"@docusaurus/types"})," TypeScript types","\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"We still retain the freedom to make types stricter (which may break type-checking)."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(r.p,{children:["\u274C Our public API ",(0,s.jsx)(r.strong,{children:"excludes"}),":"]}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Docusaurus config ",(0,s.jsx)(r.code,{children:"future"})]}),"\n",(0,s.jsxs)(r.li,{children:["All features prefixed by ",(0,s.jsx)(r.code,{children:"experimental_"})," or ",(0,s.jsx)(r.code,{children:"unstable_"})]}),"\n",(0,s.jsxs)(r.li,{children:["All features prefixed by ",(0,s.jsx)(r.code,{children:"v<MajorVersion>_"})," (",(0,s.jsx)(r.code,{children:"v6_"})," ",(0,s.jsx)(r.code,{children:"v7_"}),", etc.)"]}),"\n"]}),"\n",(0,s.jsx)(r.admonition,{type:"tip",children:(0,s.jsx)(r.p,{children:"For non-theme APIs, any documented API is considered public (and will be stable); any undocumented API is considered internal."})}),"\n",(0,s.jsxs)(r.p,{children:['An API being "stable" means if you increment the patch or minor version of your Docusaurus installation without any other change, running ',(0,s.jsx)(r.code,{children:"docusaurus start"})," or ",(0,s.jsx)(r.code,{children:"docusaurus build"})," should not throw an error."]}),"\n",(0,s.jsx)(r.h3,{id:"theming-public-api",children:"Theming public API"}),"\n",(0,s.jsx)(r.p,{children:"Docusaurus has a very flexible theming system:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"You can use custom CSS"}),"\n",(0,s.jsxs)(r.li,{children:["You can ",(0,s.jsx)(r.a,{href:"/docs/swizzling",children:"swizzle"})," any React theme component"]}),"\n"]}),"\n",(0,s.jsx)(r.p,{children:"This system also implicitly creates a very large API surface. To be able to move fast and improve Docusaurus, we can't guarantee retro-compatibility."}),"\n",(0,s.jsx)(r.p,{children:"\u2705 Our public theming API includes:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:(0,s.jsx)(r.a,{href:"/docs/styling-layout#theme-class-names",children:"Theme class names"})}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"/docs/styling-layout#styling-your-site-with-infima",children:"Infima"})," class names and CSS variables"]}),"\n",(0,s.jsxs)(r.li,{children:["React components that are ",(0,s.jsx)(r.a,{href:"/docs/swizzling#what-is-safe-to-swizzle",children:"safe to swizzle"})]}),"\n",(0,s.jsx)(r.li,{children:"The theme user experience"}),"\n",(0,s.jsx)(r.li,{children:"Browser support"}),"\n"]}),"\n",(0,s.jsxs)(r.admonition,{type:"tip",children:[(0,s.jsx)(r.p,{children:"You may not be able to achieve your site customization through this public API."}),(0,s.jsxs)(r.p,{children:["In this case, please ",(0,s.jsx)(r.a,{href:"https://github.com/facebook/docusaurus/discussions/5468",children:"report your customization use case"})," and we will figure out how to expand our public API."]})]}),"\n",(0,s.jsxs)(r.p,{children:["\u274C Our public theming API ",(0,s.jsx)(r.strong,{children:"excludes"}),":"]}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"The DOM structure"}),"\n",(0,s.jsxs)(r.li,{children:["CSS module class names with a hash suffix (usually targeted with ",(0,s.jsx)(r.code,{children:"[class*='myClassName']"})," selectors)"]}),"\n",(0,s.jsxs)(r.li,{children:["React components that are ",(0,s.jsx)(r.a,{href:"/docs/swizzling#what-is-safe-to-swizzle",children:"unsafe or forbidden to swizzle"})]}),"\n",(0,s.jsxs)(r.li,{children:["React components that import from ",(0,s.jsx)(r.code,{children:"@docusaurus/theme-common/internal"})]}),"\n",(0,s.jsx)(r.li,{children:"The exact visual appearance of the theme"}),"\n"]}),"\n",(0,s.jsxs)(r.admonition,{type:"note",children:[(0,s.jsxs)(r.p,{children:["When ",(0,s.jsx)(r.a,{href:"/docs/swizzling",children:"swizzling"})," safe components, you might encounter components that import undocumented APIs from ",(0,s.jsx)(r.code,{children:"@docusaurus/theme-common"})," (without the ",(0,s.jsx)(r.code,{children:"/internal"})," subpath)."]}),(0,s.jsx)(r.p,{children:'We still maintain retro-compatibility on those APIs (hence they are marked as "safe"), but we don\'t encourage a direct usage.'})]})]})}function h(e={}){let{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file diff --git a/assets/js/2805.71f2915f.js b/assets/js/2805.71f2915f.js new file mode 100644 index 0000000000..354c14d674 --- /dev/null +++ b/assets/js/2805.71f2915f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2805],{2805:(e,r,t)=>{t.d(r,{diagram:()=>i});var a=t(56160);t(165),t(82648),t(57014),t(93510),t(16470),t(27923),t(67027);var s=t(72912),i={parser:a.Zk,db:a.iP,renderer:a.q7,styles:a.tM,init:(0,s.K2)(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,a.iP.clear()},"init")}}}]); \ No newline at end of file diff --git a/assets/js/2c6d53a8.8f025724.js b/assets/js/2c6d53a8.0cdcfa4e.js similarity index 79% rename from assets/js/2c6d53a8.8f025724.js rename to assets/js/2c6d53a8.0cdcfa4e.js index 8e52963343..5d6fb3d404 100644 --- a/assets/js/2c6d53a8.8f025724.js +++ b/assets/js/2c6d53a8.0cdcfa4e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[62247],{4329:(e,t,n)=>{n.d(t,{A:()=>r});let r=n.p+"assets/files/someFile-aef54daa5b1fe3359942dac7ade1daae.pdf"},16722:(e,t,n)=>{n.d(t,{A:()=>r});let r=n.p+"assets/files/someFile-aef54daa5b1fe3359942dac7ade1daae.xyz"},48927:(e,t,n)=>{n.d(t,{A:()=>r});let r=n.p+"assets/files/_script-505c7abc900c36ef533a0383a80d96a4.js"},80830:(e,t,n)=>{n.d(t,{A:()=>r});let r=n.p+"assets/files/data-4e0ce03654809ab2cf0049cf88b37a04.json"},89585:(e,t,n)=>{n.d(t,{A:()=>r});let r="/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport React, {useState} from 'react';\n\nexport default function MyComponent() {\n const [bool, setBool] = useState(false);\n return (\n <div>\n <p>MyComponent rendered !</p>\n <p>bool={bool ? 'true' : 'false'}</p>\n <p>\n <button onClick={() => setBool((b) => !b)}>toggle bool</button>\n </p>\n </div>\n );\n}\n"},65108:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(62540);function o(e){var t,n;return(0,r.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 14 16"},e),n=n={children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}n(63696)},55640:(e,t,n)=>{n.d(t,{A:()=>E});var r,o,i=n(62540),c=n(63696),s=n(11750),l=n(81912),a=n(12653);let u={admonition:"admonition_o5H7",admonitionHeading:"admonitionHeading_FzoX",admonitionIcon:"admonitionIcon_rXq6",admonitionContent:"admonitionContent_Knsx"};function d({type:e,className:t,children:n}){return(0,i.jsx)("div",{className:(0,s.A)(a.G.common.admonition,a.G.common.admonitionType(e),u.admonition,t),children:n})}function b({icon:e,title:t}){return(0,i.jsxs)("div",{className:u.admonitionHeading,children:[(0,i.jsx)("span",{className:u.admonitionIcon,children:e}),t]})}function p({children:e}){return e?(0,i.jsx)("div",{className:u.admonitionContent,children:e}):null}function f(e){let{type:t,icon:n,title:r,children:o,className:c}=e;return(0,i.jsxs)(d,{type:t,className:c,children:[r||n?(0,i.jsx)(b,{title:r,icon:n}):null,(0,i.jsx)(p,{children:o})]})}let h={icon:(0,i.jsx)(function(e){var t,n;return(0,i.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 14 16"},e),n=n={children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))},{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function j(e){var t,n;return(0,i.jsx)(f,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},h,e),n=n={className:(0,s.A)("alert alert--secondary",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let m={icon:(0,i.jsx)(function(e){var t,n;return(0,i.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 12 16"},e),n=n={children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))},{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function y(e){var t,n;return(0,i.jsx)(f,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},m,e),n=n={className:(0,s.A)("alert alert--success",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}var O=n(65108);let g={icon:(0,i.jsx)(O.A,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function A(e){var t,n;return(0,i.jsx)(f,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},g,e),n=n={className:(0,s.A)("alert alert--info",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}function x(e){var t,n;return(0,i.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 16 16"},e),n=n={children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let v={icon:(0,i.jsx)(x,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})},w={icon:(0,i.jsx)(function(e){var t,n;return(0,i.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 12 16"},e),n=n={children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))},{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})},k={icon:(0,i.jsx)(x,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};function P(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}let S=P({},{note:j,tip:y,info:A,warning:function(e){var t,n;return(0,i.jsx)(f,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},v,e),n=n={className:(0,s.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))},danger:function(e){var t,n;return(0,i.jsx)(f,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},w,e),n=n={className:(0,s.A)("alert alert--danger",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}},{secondary:e=>(0,i.jsx)(j,P({title:"secondary"},e)),important:e=>(0,i.jsx)(A,P({title:"important"},e)),success:e=>(0,i.jsx)(y,P({title:"success"},e)),caution:function(e){var t,n;return(0,i.jsx)(f,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},k,e),n=n={className:(0,s.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}});var N=n(37425);let C=(r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},S),o=o={"my-custom-admonition":function(e){return(0,i.jsxs)("div",{style:{border:"solid red",padding:10},children:[(0,i.jsx)(N.A,{as:"h5",style:{color:"blue",fontSize:30},children:e.title}),(0,i.jsx)("div",{children:e.children})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}),r);function E(e){var t;let n=function(e){var t,n,r;let{mdxAdmonitionTitle:o,rest:s}=function(e){let t=c.Children.toArray(e),n=t.find(e=>c.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),r=t.filter(e=>e!==n);return{mdxAdmonitionTitle:null==n?void 0:n.props.children,rest:r.length>0?(0,i.jsx)(i.Fragment,{children:r}):null}}(e.children),l=null!==(t=e.title)&&void 0!==t?t:o;return n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e,l&&{title:l}),r=r={children:s},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n}(e),r=C[t=n.type]||(console.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),C.info);return(0,i.jsx)(r,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},n))}},23572:(e,t,n)=>{n.d(t,{A:()=>p});var r=n(62540),o=n(63696),i=n(11750),c=n(52711),s=n(10709),l=n(27720);let a={details:"details_Nokh",isBrowser:"isBrowser_QrB5",collapsibleContent:"collapsibleContent_EoA1"};function u(e){return!!e&&("SUMMARY"===e.tagName||u(e.parentElement))}function d(e){var t,n,{summary:d,children:b}=e,p=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["summary","children"]);(0,c.A)().collectAnchor(p.id);let f=(0,s.A)(),h=(0,o.useRef)(null),{collapsed:j,setCollapsed:m}=(0,l.u)({initialState:!p.open}),[y,O]=(0,o.useState)(p.open),g=o.isValidElement(d)?d:(0,r.jsx)("summary",{children:null!=d?d:"Details"});return(0,r.jsxs)("details",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},p),n=n={ref:h,open:y,"data-collapsed":j,className:(0,i.A)(a.details,f&&a.isBrowser,p.className),onMouseDown:e=>{u(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();let t=e.target;u(t)&&function e(t,n){return!!t&&(t===n||e(t.parentElement,n))}(t,h.current)&&(e.preventDefault(),j?(m(!1),O(!0)):m(!0))},children:[g,(0,r.jsx)(l.N,{lazy:!1,collapsed:j,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{m(e),O(!e)},children:(0,r.jsx)("div",{className:a.collapsibleContent,children:b})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}function b(){return(b=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e){var t,n,o=b({},function(e){if(null==e)throw TypeError("Cannot destructure "+e);return e}(e));return(0,r.jsx)(d,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},o),n=n={className:(0,i.A)("alert alert--info","details_Cn_P",o.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}},15995:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(62540);n(63696);var o=n(11750);function i({children:e,hidden:t,className:n}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,o.A)("tabItem_pnkT",n),hidden:t,children:e})}},27446:(e,t,n)=>{n.d(t,{A:()=>g});var r=n(62540),o=n(63696),i=n(11750),c=n(7846),s=n(49519),l=n(96439),a=n(19739),u=n(66904),d=n(79244);function b(e){var t,n;return null!==(n=null===(t=o.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,o.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==n?n:[]}function p({value:e,tabValues:t}){return t.some(t=>t.value===e)}var f=n(10709);function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function j(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function m({className:e,block:t,selectedValue:n,selectValue:o,tabValues:s}){let l=[],{blockElementScrollPositionUntilNextRender:a}=(0,c.a_)(),u=e=>{let t=e.currentTarget,r=s[l.indexOf(t)].value;r!==n&&(a(t),o(r))},d=e=>{var t,n;let r=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let n=l.indexOf(e.currentTarget)+1;r=null!==(t=l[n])&&void 0!==t?t:l[0];break}case"ArrowLeft":{let t=l.indexOf(e.currentTarget)-1;r=null!==(n=l[t])&&void 0!==n?n:l[l.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.A)("tabs",{"tabs--block":t},e),children:s.map(({value:e,label:t,attributes:o})=>(0,r.jsx)("li",j(h({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>l.push(e),onKeyDown:d,onClick:u},o),{className:(0,i.A)("tabs__item","tabItem_AQgk",null==o?void 0:o.className,{"tabs__item--active":n===e}),children:null!=t?t:e}),e))})}function y({lazy:e,children:t,selectedValue:n}){let c=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=c.find(e=>e.props.value===n);return e?(0,o.cloneElement)(e,{className:(0,i.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:c.map((e,t)=>(0,o.cloneElement)(e,{key:t,hidden:e.props.value!==n}))})}function O(e){let t=function(e){let{defaultValue:t,queryString:n=!1,groupId:r}=e,i=function(e){let{values:t,children:n}=e;return(0,o.useMemo)(()=>{let e=null!=t?t:b(n).map(({props:{value:e,label:t,attributes:n,default:r}})=>({value:e,label:t,attributes:n,default:r}));return!function(e){let t=(0,u.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,n])}(e),[c,f]=(0,o.useState)(()=>(function({defaultValue:e,tabValues:t}){var n;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let r=null!==(n=t.find(e=>e.default))&&void 0!==n?n:t[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:t,tabValues:i})),[h,j]=function({queryString:e=!1,groupId:t}){let n=(0,s.W6)(),r=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,a.aZ)(r),(0,o.useCallback)(e=>{var t,o;if(!r)return;let i=new URLSearchParams(n.location.search);i.set(r,e),n.replace((t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},n.location),o=o={search:i.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}),t))},[r,n])]}({queryString:n,groupId:r}),[m,y]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[n,r]=(0,d.Dv)(t);return[n,(0,o.useCallback)(e=>{t&&r.set(e)},[t,r])]}({groupId:r}),O=(()=>{let e=null!=h?h:m;return p({value:e,tabValues:i})?e:null})();return(0,l.A)(()=>{O&&f(O)},[O]),{selectedValue:c,selectValue:(0,o.useCallback)(e=>{if(!p({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);f(e),j(e),y(e)},[j,y,i]),tabValues:i}}(e);return(0,r.jsxs)("div",{className:(0,i.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(m,h({},t,e)),(0,r.jsx)(y,h({},t,e))]})}function g(e){let t=(0,f.A)();return(0,r.jsx)(O,j(h({},e),{children:b(e.children)}),String(t))}},40576:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(62540);n(63696);var o=n(10709);function i({children:e,fallback:t}){return(0,o.A)()?(0,r.jsx)(r.Fragment,{children:null==e?void 0:e()}):null!=t?t:null}},70361:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(62540);n(63696);var o=n(11750);let i="dot_giz1",c="bar_rrRL";function s({children:e,minHeight:t,url:n="http://localhost:3000",style:s,bodyStyle:l}){var a,u;return(0,r.jsxs)("div",{className:"browserWindow_my1Q",style:(a=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},s),u=u={minHeight:t},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(u)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(u)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(u,e))}),a),children:[(0,r.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,r.jsxs)("div",{className:"buttons_uHc7",children:[(0,r.jsx)("span",{className:i,style:{background:"#f25f58"}}),(0,r.jsx)("span",{className:i,style:{background:"#fbbe3c"}}),(0,r.jsx)("span",{className:i,style:{background:"#58cb42"}})]}),(0,r.jsx)("div",{className:(0,o.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:n}),(0,r.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:c}),(0,r.jsx)("span",{className:c}),(0,r.jsx)("span",{className:c})]})})]}),(0,r.jsx)("div",{className:"browserWindowBody_Idgs",style:l,children:e})]})}},55887:(e,t,n)=>{n.d(t,{A:()=>es});var r,o,i,c={};n.r(c),n.d(c,{ButtonExample:()=>E});var s=n(62540),l=n(63696),a=n(11750),u=n(10709),d=n(55152),b=n(81912),p=n(99468),f=n(40576),h=n(1495),j=n(66659),m=n(25436);function y(){let{prism:e}=(0,m.p)(),{colorMode:t}=(0,j.G)(),n=e.theme,r=e.darkTheme||n;return"dark"===t?r:n}var O=n(43758);function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function A({children:e}){return(0,s.jsx)("div",{className:(0,a.A)("playgroundHeader_Tvsk"),children:e})}function x(){return(0,s.jsx)("div",{children:"Loading..."})}function v(){return(0,s.jsx)(f.A,{fallback:(0,s.jsx)(x,{}),children:()=>(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(O.A,{fallback:e=>(0,s.jsx)(h.MN,g({},e)),children:(0,s.jsx)(d.pA,{})}),(0,s.jsx)(d.p1,{})]})})}function w(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(A,{children:(0,s.jsx)(b.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,s.jsx)("div",{className:"playgroundPreview_mApW",children:(0,s.jsx)(v,{})})]})}function k(){let e=(0,u.A)();return(0,s.jsx)(d.w,{className:"playgroundEditor_TySg"},String(e))}function P(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(A,{children:(0,s.jsx)(b.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,s.jsx)(k,{})]})}let S=e=>`${e};`;function N(e){var t,n,r,o,{children:i,transformCode:c}=e,l=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:a}}=(0,p.A)(),{liveCodeBlock:{playgroundPosition:u}}=a,b=y(),f=null!==(o=null===(r=l.metastring)||void 0===r?void 0:r.includes("noInline"))&&void 0!==o&&o;return(0,s.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,s.jsx)(d.Q,(t=g({code:null==i?void 0:i.replace(/\n$/,""),noInline:f,transformCode:null!=c?c:S,theme:b},l),n=n={children:"top"===u?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(w,{}),(0,s.jsx)(P,{})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(P,{}),(0,s.jsx)(w,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))})}function C(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function E(e){var t,n;return(0,s.jsx)("button",(t=C({type:"button"},e),n=n={style:C({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let B=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({React:l},l,c);var T=n(12653),D=n(19934),R=n.n(D);let M=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),L=RegExp("\\{(?<range>[\\d,-]+)\\}"),I={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},J=(r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},I),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}),r),G=Object.keys(I);function z(e,t){let n=e.map(e=>{let{start:n,end:r}=J[e];return`(?:${n}\\s*(${t.flatMap(e=>{var t,n;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(n=e.block)||void 0===n?void 0:n.end].filter(Boolean)}).join("|")})\\s*${r})`}).join("|");return RegExp(`^\\s*(?:${n})\\s*$`)}function F(e){var t,n,{as:r}=e,o=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["as"]);let i=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach(([e,r])=>{let o=t[e];o&&"string"==typeof r&&(n[o]=r)}),n}(y());return(0,s.jsx)(r,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},o),n=n={style:i,className:(0,a.A)(o.className,"codeBlockContainer_jDV4",T.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let V={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function q({children:e,className:t}){return(0,s.jsx)(F,{as:"pre",tabIndex:0,className:(0,a.A)(V.codeBlockStandalone,"thin-scrollbar",t),children:(0,s.jsx)("code",{className:V.codeBlockLines,children:e})})}var H=n(2550);let W={attributes:!0,characterData:!0,childList:!0,subtree:!0};var Z=n(27663);let Q={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function X(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function K({line:e,classNames:t,showLineNumbers:n,getLineProps:r,getTokenProps:o}){var i,c;1===e.length&&"\n"===e[0].content&&(e[0].content="");let l=r({line:e,className:(0,a.A)(t,n&&Q.codeLine)}),u=e.map((e,t)=>(0,s.jsx)("span",X({},o({token:e})),t));return(0,s.jsxs)("span",(i=X({},l),c=c={children:[n?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:Q.codeLineNumber}),(0,s.jsx)("span",{className:Q.codeLineContent,children:u})]}):u,(0,s.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(c)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(c)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(c,e))}),i))}var U=n(936);function Y(e){var t,n;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,s.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}function _(e){var t,n;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,s.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let $={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[n,r]=(0,l.useState)(!1),o=(0,l.useRef)(void 0),i=(0,l.useCallback)(()=>{(0,U.A)(e),r(!0),o.current=window.setTimeout(()=>{r(!1)},1e3)},[e]);return(0,l.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,s.jsx)("button",{type:"button","aria-label":n?(0,b.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,b.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,b.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.A)("clean-btn",t,$.copyButton,n&&$.copyButtonCopied),onClick:i,children:(0,s.jsxs)("span",{className:$.copyButtonIcons,"aria-hidden":"true",children:[(0,s.jsx)(Y,{className:$.copyButtonIcon}),(0,s.jsx)(_,{className:$.copyButtonSuccessIcon})]})})}function et(e){var t,n;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,s.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let en={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function er({className:e,onClick:t,isEnabled:n}){let r=(0,b.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,s.jsx)("button",{type:"button",onClick:t,className:(0,a.A)("clean-btn",e,n&&en.wordWrapButtonEnabled),"aria-label":r,title:r,children:(0,s.jsx)(et,{className:en.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:n,title:r,showLineNumbers:o,language:i}){var c,u,d,b;let{prism:{defaultLanguage:p,magicComments:f}}=(0,m.p)(),h=null==(u=null!==(c=null!=i?i:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==c?c:p)?void 0:u.toLowerCase(),j=y(),O=function(){let[e,t]=(0,l.useState)(!1),[n,r]=(0,l.useState)(!1),o=(0,l.useRef)(null),i=(0,l.useCallback)(()=>{let n=o.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),c=(0,l.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;r(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[n,r]=(0,l.useState)(),o=(0,l.useCallback)(()=>{var t;r(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,r]);(0,l.useEffect)(()=>{o()},[o]),function(e,t,n=W){let r=(0,H._q)(t),o=(0,H.Be)(n);(0,l.useEffect)(()=>{let t=new MutationObserver(r);return e&&t.observe(e,o),()=>t.disconnect()},[e,r,o])}(n,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,c),(0,l.useEffect)(()=>{c()},[e,c]),(0,l.useEffect)(()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)}),[c]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:n,toggle:i}}(),g=(null!==(b=null==n?void 0:null===(d=n.match(M))||void 0===d?void 0:d.groups.title)&&void 0!==b?b:"")||r,{lineClassNames:A,code:x}=function(e,t){let n=e.replace(/\n$/,""),{language:r,magicComments:o,metastring:i}=t;if(i&&L.test(i)){let e=i.match(L).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${i}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(R()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:n}}if(void 0===r)return{lineClassNames:{},code:n};let c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return z(["js","jsBlock"],t);case"jsx":case"tsx":return z(["js","jsBlock","jsx"],t);case"html":return z(["js","jsBlock","html"],t);case"python":case"py":case"bash":return z(["bash"],t);case"markdown":case"md":return z(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return z(["tex"],t);case"lua":case"haskell":case"sql":return z(["lua"],t);case"wasm":return z(["wasm"],t);case"vb":case"vba":case"visual-basic":return z(["vb","rem"],t);case"vbnet":return z(["vbnet","rem"],t);case"batch":return z(["rem"],t);case"basic":return z(["rem","f90"],t);case"fsharp":return z(["js","ml"],t);case"ocaml":case"sml":return z(["ml"],t);case"fortran":return z(["f90"],t);case"cobol":return z(["cobol"],t);default:return z(G,t)}}(r,o),s=n.split("\n"),l=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),a=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),d=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<s.length;){let t=s[e].match(c);if(!t){e+=1;continue}let n=t.slice(1).find(e=>void 0!==e);a[n]?l[a[n]].range+=`${e},`:u[n]?l[u[n]].start=e:d[n]&&(l[d[n]].range+=`${l[d[n]].start}-${e-1},`),s.splice(e,1)}n=s.join("\n");let b={};return Object.entries(l).forEach(([e,{range:t}])=>{R()(t).forEach(t=>{var n;null!==(n=b[t])&&void 0!==n||(b[t]=[]),b[t].push(e)})}),{lineClassNames:b,code:n}}(e,{metastring:n,language:h,magicComments:f}),v=null!=o?o:!!(null==n?void 0:n.includes("showLineNumbers"));return(0,s.jsxs)(F,{as:"div",className:(0,a.A)(t,h&&!t.includes(`language-${h}`)&&`language-${h}`),children:[g&&(0,s.jsx)("div",{className:V.codeBlockTitle,children:g}),(0,s.jsxs)("div",{className:V.codeBlockContent,children:[(0,s.jsx)(Z.f4,{theme:j,code:x,language:null!=h?h:"text",children:({className:e,style:t,tokens:n,getLineProps:r,getTokenProps:o})=>(0,s.jsx)("pre",{tabIndex:0,ref:O.codeBlockRef,className:(0,a.A)(e,V.codeBlock,"thin-scrollbar"),style:t,children:(0,s.jsx)("code",{className:(0,a.A)(V.codeBlockLines,v&&V.codeBlockLinesWithNumbering),children:n.map((e,t)=>(0,s.jsx)(K,{line:e,getLineProps:r,getTokenProps:o,classNames:A[t],showLineNumbers:v},t))})})}),(0,s.jsxs)("div",{className:V.buttonGroup,children:[(O.isEnabled||O.isCodeScrollable)&&(0,s.jsx)(er,{className:V.codeButton,onClick:()=>O.toggle(),isEnabled:O.isEnabled}),(0,s.jsx)(ee,{className:V.codeButton,code:x})]})]})]})}function ei(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}let ec=(i=function(e){var t,n,{children:r}=e,o=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["children"]);let i=(0,u.A)(),c=l.Children.toArray(r).some(e=>(0,l.isValidElement)(e))?r:Array.isArray(r)?r.join(""):r,a="string"==typeof c?eo:q;return(0,s.jsx)(a,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},o),n=n={children:c},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t),String(i))},function(e){return e.live?(0,s.jsx)(N,ei({scope:B},e)):(0,s.jsx)(i,ei({},e))});function es(e){return(0,s.jsx)(ec,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e))}},49046:(e,t,n)=>{n.d(t,{A:()=>r});let r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAT3UlEQVR42u1dCVQVV5pWXNt2N0czykl33KImZ7IgKgqIghq3KCDK+qowCek2c2K0Mx3idBxakzYxJnZiq3Gf6Bg7UdN2R51MxnTSia3gew9Rwccm7oqiiIK4sPxTt1hEHo9XvPVW1fed852Dr+67UNb/1f3/+9/731atAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8i2CxGjDUJXzMGmcSZnmoHAF7B6GMJvYPNwq5gk1AmMS/YJMbaahtkNsRLbeghmoU4d7cDAO+NCEbhQCMjrZbe5q81bhdyVOwuXbtqZdDSZ+yau9oBgNcgGeIvmzDQJkUy1ix8ZKMtsWvuagcAXsNYs/iyLSNlIgk2GebLQjKJQ6R/32+mbcWYI8KTrm6HJwR4170yCV80Y6T1I4kklH122lFNG9e2wxMC3Ao/U1KnQLPgF2SK/xeri5TiIxlikX1DBXVANpoXSy/DzGCjYfdYs2FRiFkcxWxEu/GF0RAm3fT1Bv8JJyV+LLlV08ccnNuFCQeGAdrheWkkXxaSGueruZFDurlrzfn4QSbDGRgAqJD3JK4NMcU8oo3RIz1hOB4q6AZeCzKK0aoXCIs58DBBt9Esfip5Ke3UPkN1Eg8TdB8N+5grr+JRxPAJHiLoTgaZhf97MiuqvVqTgNPxEEEPcK0qBTIyNa6rnWw1CLooJjHMUZc6KMWnNs9xDg8Q9ACLQtMMvbhfeFi7tuoLZMhBz1NczaUw2H4OFizhAYFe5l0uM+61m53wgMAWM+C7aBr425Ey2c8umPpdxmO+oxQPWz8cvnOmTGf7Gf1DDHXs25lYxMrIfmafOdnvOe4WONZsk4XhaD7nkJpAPQN96w2a/cw+c7S/QYsC6vuq46D/CHD+7zQaRvDmYsXVbG6CEWmZQ5YGWRk0+8zR/phb1bg/9pkLgvVk/twso+EViETbfPw1PyuDHrDQ36n4o6GL1eHRn7skDhlrEnZyuvbKMN/TIglKM9AzmyfLbzL2sBjZz89sniJfg2G7Nvbwad+m3qB9OrQh/z0RTschzK1yXZAu8zi/CxQ9NJL4fT6d+kwdQG27drB6q9WxXbcO1GfaAPL78wswcBfx6Y2T6ZHxv5DJfuY1acj5Kl55JHHPtOCBaOozZQC18mltUxhWlNoyobjwDQVyng/hVhyBaYbBrEKhW0aNL2Y85LO2lB37daHhX86AAemAPC4z6R5sEt9j6nWXONr8vJ3D4qhj287tIRIIxMP7PmrKd151p1vV3MjRtmt7eiT0F+QbN4z6xQ6T/eO2XdrbbP8z3y5wtyAQT+VAxAh336wcczQVhPfsKM+ANJWsYp+xRFS7Hh2b/C6LSWBIEIgnsuh73T1b1VRA3ql/dxq5d5bd74/4OlJu21TgjtktCMT9uwbdFJDXjx5TBzQ5cigRR71I/hZJ7bpbTwf3mT4QxgSBuHtbrSHcnUlAlstwxXqdgcmjmsyTIJkIgag2SGcZ8qYCckcWyAUdTpBnsBr398yWKTAoCESd07xD3rFeHMdmqxztj81uNe5v6B+CYVAQiAeD9qPiIOkP/NIVN9l//nArg/ZNeNLh/nzjn7Tqr//rw2FQEIg6M+lN7RcY/LvR3PQHupdh6S9R+LH5ZMh8i17NfoeS81bSO6fX0cfn/ps2X/wL7bzyv/TNtYP0z5KjdLw0hwrKL1DR/Rt0r+q+Plys0d/HyMtDGib4nNlx5ur+QPcZuLPQTSa9bjk0oyuM2dX9adm4Zx57jeIzk+lXliX0Ru4KSjm1hlac/S/69MKXtP3yXvrr1b/Td8WplHbzOGWV5dPZO5fo+v0Slxi4ZgTiiUw66BoD/32BPQO/zI2Ba0cgbs6kg9aMPfFbWn5mM/258H80a+CaEYi7M+ngA7JR4ERpHgFqEogbM+lgDSelv0LfFx+B1SNIBxtzWsarlH27ABavZoF4YsOUHhliEuX4AlCOwsJC2rVrF7+JwjHGuU8Em4X9MHDn+afzOzRtzGVlZbR69WqKjY2lqKgoev/996m4uNihvqqrqyklJYU6dKhf3Kq/Pel6izuKK246bYQXLlygvXv30ldffUWZmZlO9cX6CAwMpI4dO1Lbtm3pueeeo61btzrUV1ZWFj3++ONWKxseffRRMpvNLe7vzTffrClF5ONDEydOhIuldb53ZqNTxpyfn08RERFWBsiM2mQytbi/+fPn29zCnJSU1KK+ioqKyNe3poTpU089RRs3bqTt27dTQEBAvUiuXr2quL8ff/xRFgYT7e7duxGk64E/FBsdFsfhw4epR48eNTsvO3WioKAgmjRpEvXu3Vv+rHPnzvTTTz8p7u/dd9+tqXwouS/Lly+nS5cuUUlJCa1fv17ui11j7pFSTJs2Tf4O+7tu3bpV//ndu3fr3v40Y8YMRX1VVFTQkCFD5O8sW7YMmXS98MLdQofEYbFYqFu3brLBsBGEBa11KC0tpcTERPkaa8NGGXs4ePCg/HZu06YN7du3z+r6/v3769/e6enpdvvbs2dPTeHrnj1l968xLl68SN2712yR/vbbb+3299lnn8ltn3jiCbp37x4y6XphedWdFouDBbiDBw+WDWb27NlUWVlp1aaqqooiIyPlNsOHD3/IqBrj9u3bNGjQILnt4sWLbbZbuHCh3Mbf37/J31kH9rvq+mPBuS2w0Yi18fPzk4NvW2C/iwmDtd22bRsy6RAINWvM48aNq48z2L9tgblH/fv3l9suWLDAZrt58+bJbZ5++ulmhcRGpscee8yu4a9YsUJuM2zYMNk1soXy8nLq16+f3Hbnzp0227EJAtZm4MCBVv0hkw4XS8aNGzdkV4S9bZmxMMM6f/683e+lpaVR+/Y1W5A//PBDq+vr1q2Tr7E2GRkZil2nrl27Um5ubpOTBuwaa/PNN9/Y7a/u97MRgsUmjcE+Y8JgbbZs2YJMut6oZGnJ6NGjHz5bQzKYggLlWXf2BmbxA/suC+LZbNKOHTsoLi6OWrduLXPz5s2K+2P5DNYXC5rz8h6sGbt8+bI8qrFrrI3S4JuNNOw7ycnJVtfffvvtZkcjTPNqnMtOb7BrRGPGjJFnlpiRfPDBB826VbbABNGrVy/rii/t2tGqVata7OY9++yz8ve7dOkiC41NAdfNng0dOlR2x5TCaDTKfwf77tKlS2UhsJiEuXFs0oCJ+9ChQ+pYauKOPel65sT0JJckCpXmJVhgzLLZM2fOpEWLFj00ArR0oqCp/AuLj9hI0lIwkbKRrG7mqy42YVyyZIl61mJhqYnruercdtUuI2HTzZs2baK1a9fSkSPOrURm8U1droOxb9++tGHDBixWxGJFkVJLjmEFYoMcCYuxmpsBQ5Cuu+Xu8+hk2SmoQ63L3ZFJ90w8cuD6YVi9KgWCTLrHuDB3uVwep5qqoQC1CASZdM8z+sQb9P6ZTbSjcD+KNnAvEGTSUfYHAkGQDoGhcBymeUGUHkUmHdS6wG5VlmFPOgjq/gAdEMQRbCCoZYEgkw5CIMikgxAIMukgBIJMOgiBIEgHIRBM84KgegSCTDoIgSCTzvcWXbNAv7bE0/oL0fSPG1F0+k4k3aoMp4rqmUSkL8LFAus563gCbb88h4ruR+hOCKoQCIJ07/CFDAP9rWg23a+GILgVCDLp3uGSghi6WREOMXAvEGTSPcrxUpzxtTRqQAQqEQgCck9WNzFQasksCEBVAkEm3WMjB8SBIB20QbhVmOYFbXBpQazLDYjlR25XhetGIJOyXuw5JntuF2TSNVd61EAlLpytqpa4sjCWJmSLMtdcidG2QKhV67CcxHVh2WJVLVcik65zjmVZ9QyRxmcKFHpSJMkoaGqOSHGnDPTGuXj53w1pLIvSnECk+yoPzRZPh2Un/r3x/YZZEifBxdLrcpOMB6JQyt3Fc7QokOb4OoJ0vdEs0LgTLRNGHQ/cnE07JZEcLo2SXTCtC2RCdmJ8aI64MNSSOI25YMik64COiqMxPy6M0cMI0oDCGmTSdeBWuUIcYbWBe6kGZrdacM/VIafF7sikazggb2nMYU8gJZURehJIVUhO0iPIpGt29HCdOBj/qDMXS3ohfIogXctLUDJd516xaeCvb8yhMv24WGekQP2VsFNJ3TDNq1G60r2qY4IkFLWLpIX3fMojIkEm3QsV0LMFlwuEcfS/P0N+ft29ypdf/qWnBEJhFiEJmXQIRDH7RQ2uP5fcW+zbt6PHBDIhJ/EluFhwsRRxzsl4OmgeTyZTiFdZXDzVUwLJd6uLhSBdO0H63huzdRWkM9fKreJAJl07SULGjy7H6iuTbhHXI5Ou8URhGBKFHCcKEZB7fxQ5iqUm/C41QSadk8WKrhHJJ4X6crFCLeKfkEnXiavl7HL31LJZutgPUrfcPSxXmIoNU3rcMGURsGGKpw1TyKTzKZTxmWJtnkT6OSOBxhyYRX6fPW9lML0C+3k9KdgUR47s4dSWW4kF3Gy5RSbdtXTUMEaM6NG84bVuRUNSAiThSCNNlkCDk/25FAfjqFE9XVO0IVtcW1uwoTLMInyEsj86FohSllaGU7mOyv5MPR7bIyRrXmcUjoNAQFR3h0BAVHeHQEBUdwchEFR3ByEQVHdHkA6BQCCY5oVAIBBk0tUrEH//Htwm/jyZSedWIMikc55JVxFdkkmHiwWBgAjSIRAQmXQQAkEmHYRAkEkHeRDIP0ujaOG5eJqWK8j8jfQzOyQHAkEmXfcC2XA12uaOuk1F0RAIgnRtC4Qd4XyifBZZ7kRaHefMRg5722wbjySsD9YX61MLx0OH5cwNnJwX1xXTvDoTyF3JeD8pjKHncx4Y+xTp51VXYuRrrM3CJk6ybUx22u2D/mLlPuquTc4RavqrVv2e9LthOcKqgPNRP0MmXQcCqZAMdsFZ28b/unTNf1QvGpceZ1cg48xx5NPOh4Z/PsVmG79tz1Prtj5q3ZPekD/4mZLaIZOu9dpXx+1XKBl3XFlFk9BMAw1+a4Tddo8Zhqkyk95EQbz5cLG0Xsk9S3TLUQfN8ddnErRS9seMIF3rZ4FYPC+QF3IFrQjkFjLpOAvE5UwsMGhFIBZk0rV+FsgJweMC+Vilp95a34uwBpl0rdffNXtWIKzS+9Hbs2hlYSwZThnkqWA2onx+LZr7KeDGFdxDsw3jwnIS18mnSWWLd9iIEmpJfMvtU8DIpHtwBMny/Ahii/8mBe88JxRb8BJIc3tCEUG6Nt0re/zgcozqBVLrfm3GNK+aC1Ef408cjBM5Po2qhfdS6dZTppBJd2/cEWoRuRQIY8/RfdWQSbfP3LlhSoPuxSGpcb7IpMO1UsIe/n1UkUm3OxrmCsF2jTs09aU+0kO5zQwcLhYHTBe5Fgdb1HirMlwLLtbdSVkv9lSS01ha93CCzMpP4UGQzve5g+7iHzk+z7CF97JWadIvr8EDqmJZcmTSvUSzd5aWKOX8swn1y+tVLpCD001JnezHHkdE/yYe1B17IkEm3U3BeTq/o8faK9Hy0nvVn3JrET5SvAxeeii/sfGwqqSY5DVk0j3sXh3jd/Rgm7V43+Ou8F7uSyyT+P1EizjdnkC+sDPk7x+TPrcvMukemr3K5DtA532PuyP3EZojvtvc9G6mggd3LcgoLAg49PD6FQTp7li5K6hGIE3tcVejQGSRWBKn2RpBLrXgAbK2vws0zu2PaV7t7P1whnV73NUuEHZstC2B3HFwtuVIkEn8cKxRiJFGkn8NyZgbGGw07IaROzmCZKtLIGyPu6oz6fY2VkkP5R4MEwJxlCGmOG4y6ferw525l5u2BHIdhsmRQOBiOUy2gNLhGCRb/M6ZIB3U8PZaZ5haNosbgRTcjXT8XnKFqbZGkK9gmDxtjlKPOLZwNs37j1uzHbwXYWlzOwMXwTCRKFSaKJyeK8huFU8jh5K6xNaJQqGUuVU2R476aVqzOAqGiaUmSnjmXiTXy0xePZOgLN7ISxymfL06pfhID+YcjJMTgXAah7xymu9CclfuR8jFJhTcy1EHSvgYlsE41VVq1NPccX0O1wJhFVcU3UuOmNzyfeWpcb7Ih/C1YYqnfAirsnijkt8l7iz/EZ1vUJQMnJif0NvRQnBrYZw8bZriRyDbrvE9euwpnqOs1E+OsNjhogsBh17sKT2YIhgnLxunRC7WZc3OF6ic4w1SN6WRLTJP0ehxOSRrXmfn6lwZxWgYJ8r+NKywmMbhdG5DLrkYp+ReqsbnGCa7qij1pzBOVDdh3HqN7zMN/3pjttLA/D9dVt8q6suoNmNNwl9gnPreRPV76c1czbE4WKJyUo6il8euFErxcWkROD9TUqdgk2EfjJOf3IgnRfLepViqrOY37mCbtKbmKhLH1pDvU9q6pVIi29SOmS19zWxNqC3MUM25W6Vg5KhmhRlaUavWHjgoxzAHs1scBe4ZclUOl4sjJt9AxrIoboVRUhmuNCA/F2ZJnOTRs0BC0wy9gk3iamyr5ad2lquCd1alZM2VGG6PNGBJQJbnCM+ze7+sSslKr56RPj7D0K92WQrWbnEiFLYsxZG1W2zEYMszeC0herUiQv77FGTIz7EDcRSVEPUYKMUnyGgYIY0qyVIAuVN6WMdrdyZiuYqXgvixRwX5KOjxmTWLHdnORLZchfnrEdLb9+XTCZKLEiv78GfvRXA0QsykmxXhlF8eST8UR9G6i9H0q7x4Cm10H2HZQoUkhmsSj0/IFnZOyBFeDctNGNoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsI3/BxVeQNnL1kBuAAAAAElFTkSuQmCC"},71580:(e,t,n)=>{n.d(t,{A:()=>r});let r=n.p+"assets/images/\u56FE\u7247-c3c014b00b204c4fec2ad5e402e5521d.png"},89407:(e,t,n)=>{n.d(t,{A:()=>r});let r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAT3UlEQVR42u1dCVQVV5pWXNt2N0czykl33KImZ7IgKgqIghq3KCDK+qowCek2c2K0Mx3idBxakzYxJnZiq3Gf6Bg7UdN2R51MxnTSia3gew9Rwccm7oqiiIK4sPxTt1hEHo9XvPVW1fed852Dr+67UNb/1f3/+9/731atAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8i2CxGjDUJXzMGmcSZnmoHAF7B6GMJvYPNwq5gk1AmMS/YJMbaahtkNsRLbeghmoU4d7cDAO+NCEbhQCMjrZbe5q81bhdyVOwuXbtqZdDSZ+yau9oBgNcgGeIvmzDQJkUy1ix8ZKMtsWvuagcAXsNYs/iyLSNlIgk2GebLQjKJQ6R/32+mbcWYI8KTrm6HJwR4170yCV80Y6T1I4kklH122lFNG9e2wxMC3Ao/U1KnQLPgF2SK/xeri5TiIxlikX1DBXVANpoXSy/DzGCjYfdYs2FRiFkcxWxEu/GF0RAm3fT1Bv8JJyV+LLlV08ccnNuFCQeGAdrheWkkXxaSGueruZFDurlrzfn4QSbDGRgAqJD3JK4NMcU8oo3RIz1hOB4q6AZeCzKK0aoXCIs58DBBt9Esfip5Ke3UPkN1Eg8TdB8N+5grr+JRxPAJHiLoTgaZhf97MiuqvVqTgNPxEEEPcK0qBTIyNa6rnWw1CLooJjHMUZc6KMWnNs9xDg8Q9ACLQtMMvbhfeFi7tuoLZMhBz1NczaUw2H4OFizhAYFe5l0uM+61m53wgMAWM+C7aBr425Ey2c8umPpdxmO+oxQPWz8cvnOmTGf7Gf1DDHXs25lYxMrIfmafOdnvOe4WONZsk4XhaD7nkJpAPQN96w2a/cw+c7S/QYsC6vuq46D/CHD+7zQaRvDmYsXVbG6CEWmZQ5YGWRk0+8zR/phb1bg/9pkLgvVk/twso+EViETbfPw1PyuDHrDQ36n4o6GL1eHRn7skDhlrEnZyuvbKMN/TIglKM9AzmyfLbzL2sBjZz89sniJfg2G7Nvbwad+m3qB9OrQh/z0RTschzK1yXZAu8zi/CxQ9NJL4fT6d+kwdQG27drB6q9WxXbcO1GfaAPL78wswcBfx6Y2T6ZHxv5DJfuY1acj5Kl55JHHPtOCBaOozZQC18mltUxhWlNoyobjwDQVyng/hVhyBaYbBrEKhW0aNL2Y85LO2lB37daHhX86AAemAPC4z6R5sEt9j6nWXONr8vJ3D4qhj287tIRIIxMP7PmrKd151p1vV3MjRtmt7eiT0F+QbN4z6xQ6T/eO2XdrbbP8z3y5wtyAQT+VAxAh336wcczQVhPfsKM+ANJWsYp+xRFS7Hh2b/C6LSWBIEIgnsuh73T1b1VRA3ql/dxq5d5bd74/4OlJu21TgjtktCMT9uwbdFJDXjx5TBzQ5cigRR71I/hZJ7bpbTwf3mT4QxgSBuHtbrSHcnUlAlstwxXqdgcmjmsyTIJkIgag2SGcZ8qYCckcWyAUdTpBnsBr398yWKTAoCESd07xD3rFeHMdmqxztj81uNe5v6B+CYVAQiAeD9qPiIOkP/NIVN9l//nArg/ZNeNLh/nzjn7Tqr//rw2FQEIg6M+lN7RcY/LvR3PQHupdh6S9R+LH5ZMh8i17NfoeS81bSO6fX0cfn/ps2X/wL7bzyv/TNtYP0z5KjdLw0hwrKL1DR/Rt0r+q+Plys0d/HyMtDGib4nNlx5ur+QPcZuLPQTSa9bjk0oyuM2dX9adm4Zx57jeIzk+lXliX0Ru4KSjm1hlac/S/69MKXtP3yXvrr1b/Td8WplHbzOGWV5dPZO5fo+v0Slxi4ZgTiiUw66BoD/32BPQO/zI2Ba0cgbs6kg9aMPfFbWn5mM/258H80a+CaEYi7M+ngA7JR4ERpHgFqEogbM+lgDSelv0LfFx+B1SNIBxtzWsarlH27ABavZoF4YsOUHhliEuX4AlCOwsJC2rVrF7+JwjHGuU8Em4X9MHDn+afzOzRtzGVlZbR69WqKjY2lqKgoev/996m4uNihvqqrqyklJYU6dKhf3Kq/Pel6izuKK246bYQXLlygvXv30ldffUWZmZlO9cX6CAwMpI4dO1Lbtm3pueeeo61btzrUV1ZWFj3++ONWKxseffRRMpvNLe7vzTffrClF5ONDEydOhIuldb53ZqNTxpyfn08RERFWBsiM2mQytbi/+fPn29zCnJSU1KK+ioqKyNe3poTpU089RRs3bqTt27dTQEBAvUiuXr2quL8ff/xRFgYT7e7duxGk64E/FBsdFsfhw4epR48eNTsvO3WioKAgmjRpEvXu3Vv+rHPnzvTTTz8p7u/dd9+tqXwouS/Lly+nS5cuUUlJCa1fv17ui11j7pFSTJs2Tf4O+7tu3bpV//ndu3fr3v40Y8YMRX1VVFTQkCFD5O8sW7YMmXS98MLdQofEYbFYqFu3brLBsBGEBa11KC0tpcTERPkaa8NGGXs4ePCg/HZu06YN7du3z+r6/v3769/e6enpdvvbs2dPTeHrnj1l968xLl68SN2712yR/vbbb+3299lnn8ltn3jiCbp37x4y6XphedWdFouDBbiDBw+WDWb27NlUWVlp1aaqqooiIyPlNsOHD3/IqBrj9u3bNGjQILnt4sWLbbZbuHCh3Mbf37/J31kH9rvq+mPBuS2w0Yi18fPzk4NvW2C/iwmDtd22bRsy6RAINWvM48aNq48z2L9tgblH/fv3l9suWLDAZrt58+bJbZ5++ulmhcRGpscee8yu4a9YsUJuM2zYMNk1soXy8nLq16+f3Hbnzp0227EJAtZm4MCBVv0hkw4XS8aNGzdkV4S9bZmxMMM6f/683e+lpaVR+/Y1W5A//PBDq+vr1q2Tr7E2GRkZil2nrl27Um5ubpOTBuwaa/PNN9/Y7a/u97MRgsUmjcE+Y8JgbbZs2YJMut6oZGnJ6NGjHz5bQzKYggLlWXf2BmbxA/suC+LZbNKOHTsoLi6OWrduLXPz5s2K+2P5DNYXC5rz8h6sGbt8+bI8qrFrrI3S4JuNNOw7ycnJVtfffvvtZkcjTPNqnMtOb7BrRGPGjJFnlpiRfPDBB826VbbABNGrVy/rii/t2tGqVata7OY9++yz8ve7dOkiC41NAdfNng0dOlR2x5TCaDTKfwf77tKlS2UhsJiEuXFs0oCJ+9ChQ+pYauKOPel65sT0JJckCpXmJVhgzLLZM2fOpEWLFj00ArR0oqCp/AuLj9hI0lIwkbKRrG7mqy42YVyyZIl61mJhqYnruercdtUuI2HTzZs2baK1a9fSkSPOrURm8U1droOxb9++tGHDBixWxGJFkVJLjmEFYoMcCYuxmpsBQ5Cuu+Xu8+hk2SmoQ63L3ZFJ90w8cuD6YVi9KgWCTLrHuDB3uVwep5qqoQC1CASZdM8z+sQb9P6ZTbSjcD+KNnAvEGTSUfYHAkGQDoGhcBymeUGUHkUmHdS6wG5VlmFPOgjq/gAdEMQRbCCoZYEgkw5CIMikgxAIMukgBIJMOgiBIEgHIRBM84KgegSCTDoIgSCTzvcWXbNAv7bE0/oL0fSPG1F0+k4k3aoMp4rqmUSkL8LFAus563gCbb88h4ruR+hOCKoQCIJ07/CFDAP9rWg23a+GILgVCDLp3uGSghi6WREOMXAvEGTSPcrxUpzxtTRqQAQqEQgCck9WNzFQasksCEBVAkEm3WMjB8SBIB20QbhVmOYFbXBpQazLDYjlR25XhetGIJOyXuw5JntuF2TSNVd61EAlLpytqpa4sjCWJmSLMtdcidG2QKhV67CcxHVh2WJVLVcik65zjmVZ9QyRxmcKFHpSJMkoaGqOSHGnDPTGuXj53w1pLIvSnECk+yoPzRZPh2Un/r3x/YZZEifBxdLrcpOMB6JQyt3Fc7QokOb4OoJ0vdEs0LgTLRNGHQ/cnE07JZEcLo2SXTCtC2RCdmJ8aI64MNSSOI25YMik64COiqMxPy6M0cMI0oDCGmTSdeBWuUIcYbWBe6kGZrdacM/VIafF7sikazggb2nMYU8gJZURehJIVUhO0iPIpGt29HCdOBj/qDMXS3ohfIogXctLUDJd516xaeCvb8yhMv24WGekQP2VsFNJ3TDNq1G60r2qY4IkFLWLpIX3fMojIkEm3QsV0LMFlwuEcfS/P0N+ft29ypdf/qWnBEJhFiEJmXQIRDH7RQ2uP5fcW+zbt6PHBDIhJ/EluFhwsRRxzsl4OmgeTyZTiFdZXDzVUwLJd6uLhSBdO0H63huzdRWkM9fKreJAJl07SULGjy7H6iuTbhHXI5Ou8URhGBKFHCcKEZB7fxQ5iqUm/C41QSadk8WKrhHJJ4X6crFCLeKfkEnXiavl7HL31LJZutgPUrfcPSxXmIoNU3rcMGURsGGKpw1TyKTzKZTxmWJtnkT6OSOBxhyYRX6fPW9lML0C+3k9KdgUR47s4dSWW4kF3Gy5RSbdtXTUMEaM6NG84bVuRUNSAiThSCNNlkCDk/25FAfjqFE9XVO0IVtcW1uwoTLMInyEsj86FohSllaGU7mOyv5MPR7bIyRrXmcUjoNAQFR3h0BAVHeHQEBUdwchEFR3ByEQVHdHkA6BQCCY5oVAIBBk0tUrEH//Htwm/jyZSedWIMikc55JVxFdkkmHiwWBgAjSIRAQmXQQAkEmHYRAkEkHeRDIP0ujaOG5eJqWK8j8jfQzOyQHAkEmXfcC2XA12uaOuk1F0RAIgnRtC4Qd4XyifBZZ7kRaHefMRg5722wbjySsD9YX61MLx0OH5cwNnJwX1xXTvDoTyF3JeD8pjKHncx4Y+xTp51VXYuRrrM3CJk6ybUx22u2D/mLlPuquTc4RavqrVv2e9LthOcKqgPNRP0MmXQcCqZAMdsFZ28b/unTNf1QvGpceZ1cg48xx5NPOh4Z/PsVmG79tz1Prtj5q3ZPekD/4mZLaIZOu9dpXx+1XKBl3XFlFk9BMAw1+a4Tddo8Zhqkyk95EQbz5cLG0Xsk9S3TLUQfN8ddnErRS9seMIF3rZ4FYPC+QF3IFrQjkFjLpOAvE5UwsMGhFIBZk0rV+FsgJweMC+Vilp95a34uwBpl0rdffNXtWIKzS+9Hbs2hlYSwZThnkqWA2onx+LZr7KeDGFdxDsw3jwnIS18mnSWWLd9iIEmpJfMvtU8DIpHtwBMny/Ahii/8mBe88JxRb8BJIc3tCEUG6Nt0re/zgcozqBVLrfm3GNK+aC1Ef408cjBM5Po2qhfdS6dZTppBJd2/cEWoRuRQIY8/RfdWQSbfP3LlhSoPuxSGpcb7IpMO1UsIe/n1UkUm3OxrmCsF2jTs09aU+0kO5zQwcLhYHTBe5Fgdb1HirMlwLLtbdSVkv9lSS01ha93CCzMpP4UGQzve5g+7iHzk+z7CF97JWadIvr8EDqmJZcmTSvUSzd5aWKOX8swn1y+tVLpCD001JnezHHkdE/yYe1B17IkEm3U3BeTq/o8faK9Hy0nvVn3JrET5SvAxeeii/sfGwqqSY5DVk0j3sXh3jd/Rgm7V43+Ou8F7uSyyT+P1EizjdnkC+sDPk7x+TPrcvMukemr3K5DtA532PuyP3EZojvtvc9G6mggd3LcgoLAg49PD6FQTp7li5K6hGIE3tcVejQGSRWBKn2RpBLrXgAbK2vws0zu2PaV7t7P1whnV73NUuEHZstC2B3HFwtuVIkEn8cKxRiJFGkn8NyZgbGGw07IaROzmCZKtLIGyPu6oz6fY2VkkP5R4MEwJxlCGmOG4y6ferw525l5u2BHIdhsmRQOBiOUy2gNLhGCRb/M6ZIB3U8PZaZ5haNosbgRTcjXT8XnKFqbZGkK9gmDxtjlKPOLZwNs37j1uzHbwXYWlzOwMXwTCRKFSaKJyeK8huFU8jh5K6xNaJQqGUuVU2R476aVqzOAqGiaUmSnjmXiTXy0xePZOgLN7ISxymfL06pfhID+YcjJMTgXAah7xymu9CclfuR8jFJhTcy1EHSvgYlsE41VVq1NPccX0O1wJhFVcU3UuOmNzyfeWpcb7Ih/C1YYqnfAirsnijkt8l7iz/EZ1vUJQMnJif0NvRQnBrYZw8bZriRyDbrvE9euwpnqOs1E+OsNjhogsBh17sKT2YIhgnLxunRC7WZc3OF6ic4w1SN6WRLTJP0ehxOSRrXmfn6lwZxWgYJ8r+NKywmMbhdG5DLrkYp+ReqsbnGCa7qij1pzBOVDdh3HqN7zMN/3pjttLA/D9dVt8q6suoNmNNwl9gnPreRPV76c1czbE4WKJyUo6il8euFErxcWkROD9TUqdgk2EfjJOf3IgnRfLepViqrOY37mCbtKbmKhLH1pDvU9q6pVIi29SOmS19zWxNqC3MUM25W6Vg5KhmhRlaUavWHjgoxzAHs1scBe4ZclUOl4sjJt9AxrIoboVRUhmuNCA/F2ZJnOTRs0BC0wy9gk3iamyr5ad2lquCd1alZM2VGG6PNGBJQJbnCM+ze7+sSslKr56RPj7D0K92WQrWbnEiFLYsxZG1W2zEYMszeC0herUiQv77FGTIz7EDcRSVEPUYKMUnyGgYIY0qyVIAuVN6WMdrdyZiuYqXgvixRwX5KOjxmTWLHdnORLZchfnrEdLb9+XTCZKLEiv78GfvRXA0QsykmxXhlF8eST8UR9G6i9H0q7x4Cm10H2HZQoUkhmsSj0/IFnZOyBFeDctNGNoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsI3/BxVeQNnL1kBuAAAAAElFTkSuQmCC"},64233:(e,t,n)=>{n.d(t,{A:()=>r});let r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAT3UlEQVR42u1dCVQVV5pWXNt2N0czykl33KImZ7IgKgqIghq3KCDK+qowCek2c2K0Mx3idBxakzYxJnZiq3Gf6Bg7UdN2R51MxnTSia3gew9Rwccm7oqiiIK4sPxTt1hEHo9XvPVW1fed852Dr+67UNb/1f3/+9/731atAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8i2CxGjDUJXzMGmcSZnmoHAF7B6GMJvYPNwq5gk1AmMS/YJMbaahtkNsRLbeghmoU4d7cDAO+NCEbhQCMjrZbe5q81bhdyVOwuXbtqZdDSZ+yau9oBgNcgGeIvmzDQJkUy1ix8ZKMtsWvuagcAXsNYs/iyLSNlIgk2GebLQjKJQ6R/32+mbcWYI8KTrm6HJwR4170yCV80Y6T1I4kklH122lFNG9e2wxMC3Ao/U1KnQLPgF2SK/xeri5TiIxlikX1DBXVANpoXSy/DzGCjYfdYs2FRiFkcxWxEu/GF0RAm3fT1Bv8JJyV+LLlV08ccnNuFCQeGAdrheWkkXxaSGueruZFDurlrzfn4QSbDGRgAqJD3JK4NMcU8oo3RIz1hOB4q6AZeCzKK0aoXCIs58DBBt9Esfip5Ke3UPkN1Eg8TdB8N+5grr+JRxPAJHiLoTgaZhf97MiuqvVqTgNPxEEEPcK0qBTIyNa6rnWw1CLooJjHMUZc6KMWnNs9xDg8Q9ACLQtMMvbhfeFi7tuoLZMhBz1NczaUw2H4OFizhAYFe5l0uM+61m53wgMAWM+C7aBr425Ey2c8umPpdxmO+oxQPWz8cvnOmTGf7Gf1DDHXs25lYxMrIfmafOdnvOe4WONZsk4XhaD7nkJpAPQN96w2a/cw+c7S/QYsC6vuq46D/CHD+7zQaRvDmYsXVbG6CEWmZQ5YGWRk0+8zR/phb1bg/9pkLgvVk/twso+EViETbfPw1PyuDHrDQ36n4o6GL1eHRn7skDhlrEnZyuvbKMN/TIglKM9AzmyfLbzL2sBjZz89sniJfg2G7Nvbwad+m3qB9OrQh/z0RTschzK1yXZAu8zi/CxQ9NJL4fT6d+kwdQG27drB6q9WxXbcO1GfaAPL78wswcBfx6Y2T6ZHxv5DJfuY1acj5Kl55JHHPtOCBaOozZQC18mltUxhWlNoyobjwDQVyng/hVhyBaYbBrEKhW0aNL2Y85LO2lB37daHhX86AAemAPC4z6R5sEt9j6nWXONr8vJ3D4qhj287tIRIIxMP7PmrKd151p1vV3MjRtmt7eiT0F+QbN4z6xQ6T/eO2XdrbbP8z3y5wtyAQT+VAxAh336wcczQVhPfsKM+ANJWsYp+xRFS7Hh2b/C6LSWBIEIgnsuh73T1b1VRA3ql/dxq5d5bd74/4OlJu21TgjtktCMT9uwbdFJDXjx5TBzQ5cigRR71I/hZJ7bpbTwf3mT4QxgSBuHtbrSHcnUlAlstwxXqdgcmjmsyTIJkIgag2SGcZ8qYCckcWyAUdTpBnsBr398yWKTAoCESd07xD3rFeHMdmqxztj81uNe5v6B+CYVAQiAeD9qPiIOkP/NIVN9l//nArg/ZNeNLh/nzjn7Tqr//rw2FQEIg6M+lN7RcY/LvR3PQHupdh6S9R+LH5ZMh8i17NfoeS81bSO6fX0cfn/ps2X/wL7bzyv/TNtYP0z5KjdLw0hwrKL1DR/Rt0r+q+Plys0d/HyMtDGib4nNlx5ur+QPcZuLPQTSa9bjk0oyuM2dX9adm4Zx57jeIzk+lXliX0Ru4KSjm1hlac/S/69MKXtP3yXvrr1b/Td8WplHbzOGWV5dPZO5fo+v0Slxi4ZgTiiUw66BoD/32BPQO/zI2Ba0cgbs6kg9aMPfFbWn5mM/258H80a+CaEYi7M+ngA7JR4ERpHgFqEogbM+lgDSelv0LfFx+B1SNIBxtzWsarlH27ABavZoF4YsOUHhliEuX4AlCOwsJC2rVrF7+JwjHGuU8Em4X9MHDn+afzOzRtzGVlZbR69WqKjY2lqKgoev/996m4uNihvqqrqyklJYU6dKhf3Kq/Pel6izuKK246bYQXLlygvXv30ldffUWZmZlO9cX6CAwMpI4dO1Lbtm3pueeeo61btzrUV1ZWFj3++ONWKxseffRRMpvNLe7vzTffrClF5ONDEydOhIuldb53ZqNTxpyfn08RERFWBsiM2mQytbi/+fPn29zCnJSU1KK+ioqKyNe3poTpU089RRs3bqTt27dTQEBAvUiuXr2quL8ff/xRFgYT7e7duxGk64E/FBsdFsfhw4epR48eNTsvO3WioKAgmjRpEvXu3Vv+rHPnzvTTTz8p7u/dd9+tqXwouS/Lly+nS5cuUUlJCa1fv17ui11j7pFSTJs2Tf4O+7tu3bpV//ndu3fr3v40Y8YMRX1VVFTQkCFD5O8sW7YMmXS98MLdQofEYbFYqFu3brLBsBGEBa11KC0tpcTERPkaa8NGGXs4ePCg/HZu06YN7du3z+r6/v3769/e6enpdvvbs2dPTeHrnj1l968xLl68SN2712yR/vbbb+3299lnn8ltn3jiCbp37x4y6XphedWdFouDBbiDBw+WDWb27NlUWVlp1aaqqooiIyPlNsOHD3/IqBrj9u3bNGjQILnt4sWLbbZbuHCh3Mbf37/J31kH9rvq+mPBuS2w0Yi18fPzk4NvW2C/iwmDtd22bRsy6RAINWvM48aNq48z2L9tgblH/fv3l9suWLDAZrt58+bJbZ5++ulmhcRGpscee8yu4a9YsUJuM2zYMNk1soXy8nLq16+f3Hbnzp0227EJAtZm4MCBVv0hkw4XS8aNGzdkV4S9bZmxMMM6f/683e+lpaVR+/Y1W5A//PBDq+vr1q2Tr7E2GRkZil2nrl27Um5ubpOTBuwaa/PNN9/Y7a/u97MRgsUmjcE+Y8JgbbZs2YJMut6oZGnJ6NGjHz5bQzKYggLlWXf2BmbxA/suC+LZbNKOHTsoLi6OWrduLXPz5s2K+2P5DNYXC5rz8h6sGbt8+bI8qrFrrI3S4JuNNOw7ycnJVtfffvvtZkcjTPNqnMtOb7BrRGPGjJFnlpiRfPDBB826VbbABNGrVy/rii/t2tGqVata7OY9++yz8ve7dOkiC41NAdfNng0dOlR2x5TCaDTKfwf77tKlS2UhsJiEuXFs0oCJ+9ChQ+pYauKOPel65sT0JJckCpXmJVhgzLLZM2fOpEWLFj00ArR0oqCp/AuLj9hI0lIwkbKRrG7mqy42YVyyZIl61mJhqYnruercdtUuI2HTzZs2baK1a9fSkSPOrURm8U1droOxb9++tGHDBixWxGJFkVJLjmEFYoMcCYuxmpsBQ5Cuu+Xu8+hk2SmoQ63L3ZFJ90w8cuD6YVi9KgWCTLrHuDB3uVwep5qqoQC1CASZdM8z+sQb9P6ZTbSjcD+KNnAvEGTSUfYHAkGQDoGhcBymeUGUHkUmHdS6wG5VlmFPOgjq/gAdEMQRbCCoZYEgkw5CIMikgxAIMukgBIJMOgiBIEgHIRBM84KgegSCTDoIgSCTzvcWXbNAv7bE0/oL0fSPG1F0+k4k3aoMp4rqmUSkL8LFAus563gCbb88h4ruR+hOCKoQCIJ07/CFDAP9rWg23a+GILgVCDLp3uGSghi6WREOMXAvEGTSPcrxUpzxtTRqQAQqEQgCck9WNzFQasksCEBVAkEm3WMjB8SBIB20QbhVmOYFbXBpQazLDYjlR25XhetGIJOyXuw5JntuF2TSNVd61EAlLpytqpa4sjCWJmSLMtdcidG2QKhV67CcxHVh2WJVLVcik65zjmVZ9QyRxmcKFHpSJMkoaGqOSHGnDPTGuXj53w1pLIvSnECk+yoPzRZPh2Un/r3x/YZZEifBxdLrcpOMB6JQyt3Fc7QokOb4OoJ0vdEs0LgTLRNGHQ/cnE07JZEcLo2SXTCtC2RCdmJ8aI64MNSSOI25YMik64COiqMxPy6M0cMI0oDCGmTSdeBWuUIcYbWBe6kGZrdacM/VIafF7sikazggb2nMYU8gJZURehJIVUhO0iPIpGt29HCdOBj/qDMXS3ohfIogXctLUDJd516xaeCvb8yhMv24WGekQP2VsFNJ3TDNq1G60r2qY4IkFLWLpIX3fMojIkEm3QsV0LMFlwuEcfS/P0N+ft29ypdf/qWnBEJhFiEJmXQIRDH7RQ2uP5fcW+zbt6PHBDIhJ/EluFhwsRRxzsl4OmgeTyZTiFdZXDzVUwLJd6uLhSBdO0H63huzdRWkM9fKreJAJl07SULGjy7H6iuTbhHXI5Ou8URhGBKFHCcKEZB7fxQ5iqUm/C41QSadk8WKrhHJJ4X6crFCLeKfkEnXiavl7HL31LJZutgPUrfcPSxXmIoNU3rcMGURsGGKpw1TyKTzKZTxmWJtnkT6OSOBxhyYRX6fPW9lML0C+3k9KdgUR47s4dSWW4kF3Gy5RSbdtXTUMEaM6NG84bVuRUNSAiThSCNNlkCDk/25FAfjqFE9XVO0IVtcW1uwoTLMInyEsj86FohSllaGU7mOyv5MPR7bIyRrXmcUjoNAQFR3h0BAVHeHQEBUdwchEFR3ByEQVHdHkA6BQCCY5oVAIBBk0tUrEH//Htwm/jyZSedWIMikc55JVxFdkkmHiwWBgAjSIRAQmXQQAkEmHYRAkEkHeRDIP0ujaOG5eJqWK8j8jfQzOyQHAkEmXfcC2XA12uaOuk1F0RAIgnRtC4Qd4XyifBZZ7kRaHefMRg5722wbjySsD9YX61MLx0OH5cwNnJwX1xXTvDoTyF3JeD8pjKHncx4Y+xTp51VXYuRrrM3CJk6ybUx22u2D/mLlPuquTc4RavqrVv2e9LthOcKqgPNRP0MmXQcCqZAMdsFZ28b/unTNf1QvGpceZ1cg48xx5NPOh4Z/PsVmG79tz1Prtj5q3ZPekD/4mZLaIZOu9dpXx+1XKBl3XFlFk9BMAw1+a4Tddo8Zhqkyk95EQbz5cLG0Xsk9S3TLUQfN8ddnErRS9seMIF3rZ4FYPC+QF3IFrQjkFjLpOAvE5UwsMGhFIBZk0rV+FsgJweMC+Vilp95a34uwBpl0rdffNXtWIKzS+9Hbs2hlYSwZThnkqWA2onx+LZr7KeDGFdxDsw3jwnIS18mnSWWLd9iIEmpJfMvtU8DIpHtwBMny/Ahii/8mBe88JxRb8BJIc3tCEUG6Nt0re/zgcozqBVLrfm3GNK+aC1Ef408cjBM5Po2qhfdS6dZTppBJd2/cEWoRuRQIY8/RfdWQSbfP3LlhSoPuxSGpcb7IpMO1UsIe/n1UkUm3OxrmCsF2jTs09aU+0kO5zQwcLhYHTBe5Fgdb1HirMlwLLtbdSVkv9lSS01ha93CCzMpP4UGQzve5g+7iHzk+z7CF97JWadIvr8EDqmJZcmTSvUSzd5aWKOX8swn1y+tVLpCD001JnezHHkdE/yYe1B17IkEm3U3BeTq/o8faK9Hy0nvVn3JrET5SvAxeeii/sfGwqqSY5DVk0j3sXh3jd/Rgm7V43+Ou8F7uSyyT+P1EizjdnkC+sDPk7x+TPrcvMukemr3K5DtA532PuyP3EZojvtvc9G6mggd3LcgoLAg49PD6FQTp7li5K6hGIE3tcVejQGSRWBKn2RpBLrXgAbK2vws0zu2PaV7t7P1whnV73NUuEHZstC2B3HFwtuVIkEn8cKxRiJFGkn8NyZgbGGw07IaROzmCZKtLIGyPu6oz6fY2VkkP5R4MEwJxlCGmOG4y6ferw525l5u2BHIdhsmRQOBiOUy2gNLhGCRb/M6ZIB3U8PZaZ5haNosbgRTcjXT8XnKFqbZGkK9gmDxtjlKPOLZwNs37j1uzHbwXYWlzOwMXwTCRKFSaKJyeK8huFU8jh5K6xNaJQqGUuVU2R476aVqzOAqGiaUmSnjmXiTXy0xePZOgLN7ISxymfL06pfhID+YcjJMTgXAah7xymu9CclfuR8jFJhTcy1EHSvgYlsE41VVq1NPccX0O1wJhFVcU3UuOmNzyfeWpcb7Ih/C1YYqnfAirsnijkt8l7iz/EZ1vUJQMnJif0NvRQnBrYZw8bZriRyDbrvE9euwpnqOs1E+OsNjhogsBh17sKT2YIhgnLxunRC7WZc3OF6ic4w1SN6WRLTJP0ehxOSRrXmfn6lwZxWgYJ8r+NKywmMbhdG5DLrkYp+ReqsbnGCa7qij1pzBOVDdh3HqN7zMN/3pjttLA/D9dVt8q6suoNmNNwl9gnPreRPV76c1czbE4WKJyUo6il8euFErxcWkROD9TUqdgk2EfjJOf3IgnRfLepViqrOY37mCbtKbmKhLH1pDvU9q6pVIi29SOmS19zWxNqC3MUM25W6Vg5KhmhRlaUavWHjgoxzAHs1scBe4ZclUOl4sjJt9AxrIoboVRUhmuNCA/F2ZJnOTRs0BC0wy9gk3iamyr5ad2lquCd1alZM2VGG6PNGBJQJbnCM+ze7+sSslKr56RPj7D0K92WQrWbnEiFLYsxZG1W2zEYMszeC0herUiQv77FGTIz7EDcRSVEPUYKMUnyGgYIY0qyVIAuVN6WMdrdyZiuYqXgvixRwX5KOjxmTWLHdnORLZchfnrEdLb9+XTCZKLEiv78GfvRXA0QsykmxXhlF8eST8UR9G6i9H0q7x4Cm10H2HZQoUkhmsSj0/IFnZOyBFeDctNGNoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsI3/BxVeQNnL1kBuAAAAAElFTkSuQmCC"},79430:(e,t,n)=>{n.r(t),n.d(t,{AdmonitionWithoutHeading:()=>O,TestLink:()=>g,assets:()=>y,contentTitle:()=>m,default:()=>v,frontMatter:()=>j,metadata:()=>r,toc:()=>A});let r=JSON.parse('{"type":"mdx","permalink":"/tests/pages/markdown-tests-mdx","source":"@site/_dogfooding/_pages tests/markdown-tests-mdx.mdx","title":"Markdown Page tests title","description":"Markdown Page tests description","frontMatter":{"title":"Markdown Page tests title","description":"Markdown Page tests description","wrapperClassName":"docusaurus-markdown-example"},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/markdown-tests-mdx.mdx","unlisted":false}');var o=n(62540),i=n(43023),c=n(27446),s=n(15995),l=n(63696);function a(){let[e,t]=(0,l.useState)(!1);return(0,o.jsxs)("div",{children:[(0,o.jsx)("p",{children:"MyComponent rendered !"}),(0,o.jsxs)("p",{children:["bool=",e?"true":"false"]}),(0,o.jsx)("p",{children:(0,o.jsx)("button",{onClick:()=>t(e=>!e),children:"toggle bool"})})]})}var u=n(70361),d=n(55887),b=n(89585),p=n(23572),f=n(55640),h=n(36372);let j={title:"Markdown Page tests title",description:"Markdown Page tests description",wrapperClassName:"docusaurus-markdown-example"},m="Markdown .mdx tests",y={};function O(e){return(0,o.jsx)(f.A,{...e,type:"info",icon:null,title:null,children:"Admonition content without heading"})}function g({noCheck:e,...t}){return(0,o.jsx)(h.A,{...t,"data-noBrokenLinkCheck":e,children:(e?"\u274C":"\u2705")+" "+(t.to??t.href)+(t.target?` (target=${t.target})`:"")})}let A=[{value:"Using absolute path",id:"using-absolute-path",level:3},{value:"Tab",id:"tab",level:3},{value:"Comments",id:"comments",level:2},{value:"Import code block from source code file",id:"import-code-block-from-source-code-file",level:2},{value:"Test",id:"test",level:2},{value:"Code block test",id:"code-block-test",level:2},{value:"Mermaid",id:"mermaid",level:2},{value:"Custom heading ID",id:"custom",level:2},{value:"Weird heading",id:"\u4F60\u597D",level:3},{value:"Weird heading",id:"2022.1.1",level:3},{value:"Weird heading",id:"a#b",level:3},{value:"Weird heading",id:"a b",level:3},{value:"Weird heading",id:"a{b",level:3},{value:"Pipe",id:"pipe",level:2},{value:"Images edge cases",id:"images-edge-cases",level:2},{value:"Details",id:"details",level:2},{value:"Task list",id:"task-list",level:2},{value:"Emojis",id:"emojis",level:2},{value:"Admonitions",id:"admonitions",level:2},{value:"Linking",id:"linking",level:2},{value:"Linking to assets",id:"linking-to-assets",level:3},{value:"Linking to non-SPA page hosted within website",id:"linking-to-non-spa-page-hosted-within-website",level:3},{value:"Linking to non-SPA page with Link component",id:"linking-to-non-spa-page-with-link-component",level:3},{value:"Linking to JSON",id:"linking-to-json",level:3}];function x(e){let t={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",input:"input",li:"li",mdxAdmonitionTitle:"mdxAdmonitionTitle",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("button",{onClick:()=>alert("unsafe :s"),children:"Should not alert"}),"\n",(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"markdown-mdx-tests",children:"Markdown .mdx tests"})}),"\n",(0,o.jsx)(t.p,{children:"This is a page generated from Markdown to illustrate the Markdown page feature and test some edge cases."}),"\n",(0,o.jsx)(t.admonition,{type:"info",children:(0,o.jsx)(t.p,{children:"Useful information."})}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",metastring:"live",live:!0,children:"function Button() {\n return (\n <button type=\"button\" onClick={() => alert('hey')}>\n Click me!\n </button>\n );\n}\n"})}),"\n",(0,o.jsx)(t.h3,{id:"using-absolute-path",children:"Using absolute path"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{src:n(64233).A+"",width:"200",height:"200"})}),"\n",(0,o.jsx)(t.h3,{id:"tab",children:"Tab"}),"\n","\n","\n",(0,o.jsxs)(c.A,{children:[(0,o.jsx)(s.A,{value:"apple",label:"Apple",default:!0,children:(0,o.jsx)(t.p,{children:"This is an apple \u{1F34E}"})}),(0,o.jsx)(s.A,{value:"orange",label:"Orange",children:(0,o.jsx)(t.p,{children:"This is an orange \u{1F34A}"})}),(0,o.jsx)(s.A,{value:"banana",label:"Banana",children:(0,o.jsx)(t.p,{children:"This is a banana \u{1F34C}"})})]}),"\n",(0,o.jsx)(t.h2,{id:"comments",children:"Comments"}),"\n",(0,o.jsx)(t.p,{children:"Html comment: "}),"\n",(0,o.jsx)(t.p,{children:"Html comment multi-line:"}),"\n",(0,o.jsx)(t.p,{children:"MDX comment: "}),"\n",(0,o.jsx)(t.p,{children:"MDX comment multi-line:"}),"\n","\n",(0,o.jsx)(t.h2,{id:"import-code-block-from-source-code-file",children:"Import code block from source code file"}),"\n","\n","\n",(0,o.jsx)(t.p,{children:"Let's say you have a React component."}),"\n",(0,o.jsx)(t.p,{children:"You can import and use it in MDX:"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",metastring:'title="myMarkdownFile.mdx"',children:"import MyComponent from './myComponent';\n\n<MyComponent />;\n"})}),"\n",(0,o.jsx)(u.A,{children:(0,o.jsx)(a,{})}),"\n",(0,o.jsxs)(t.p,{children:["But you can also display its source code directly in MDX, thanks to ",(0,o.jsx)(t.a,{href:"https://webpack.js.org/loaders/raw-loader/",children:"Webpack raw-loader"})]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",metastring:'title="myMarkdownFile.mdx"',children:"import CodeBlock from '@theme/CodeBlock';\n\nimport MyComponentSource from '!!raw-loader!./myComponent';\n\n<CodeBlock className=\"language-jsx\">{MyComponentSource}</CodeBlock>;\n"})}),"\n","\n","\n",(0,o.jsx)(u.A,{children:(0,o.jsx)(d.A,{className:"language-jsx",children:b.A})}),"\n",(0,o.jsx)(t.h2,{id:"test",children:"Test"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",metastring:"live",live:!0,children:"function Demo() {\n useEffect(() => console.log('mount'), []);\n return null;\n}\n"})}),"\n",(0,o.jsx)(t.h2,{id:"code-block-test",children:"Code block test"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-js",metastring:'title="Title"',children:"function Clock(props) {\n const [date, setDate] = useState(new Date());\n useEffect(() => {\n var timerID = setInterval(() => tick(), 1000);\n\n return function cleanup() {\n clearInterval(timerID);\n };\n });\n\n function tick() {\n setDate(new Date());\n }\n\n return (\n <div>\n <h2>It is {date.toLocaleTimeString()}.</h2>\n // highlight-start\n {/* prettier-ignore */}\n long long long long long long long long long long long long line\n {/* prettier-ignore */}\n // highlight-end\n </div>\n );\n}\n"})}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",metastring:"live",live:!0,children:"function Clock(props) {\n const [date, setDate] = useState(new Date());\n useEffect(() => {\n var timerID = setInterval(() => tick(), 1000);\n\n return function cleanup() {\n clearInterval(timerID);\n };\n });\n\n function tick() {\n setDate(new Date());\n }\n\n return (\n <div>\n <h2>It is {date.toLocaleTimeString()}.</h2>\n </div>\n );\n}\n"})}),"\n",(0,o.jsx)(t.h2,{id:"mermaid",children:"Mermaid"}),"\n",(0,o.jsx)(t.mermaid,{value:"sequenceDiagram\n participant Alice\n participant Bob\n Alice->>John: Hello John, how are you?\n loop Health check\n John->>John: Fight against hypochondria\n end\n Note right of John: Rational thoughts <br/>prevail!\n John-->>Alice: Great!\n John->>Bob: How about you?\n Bob-->>John: Jolly good!"}),"\n",(0,o.jsx)(t.h2,{id:"custom",children:"Custom heading ID"}),"\n",(0,o.jsx)(t.h3,{id:"\u4F60\u597D",children:"Weird heading"}),"\n",(0,o.jsx)(t.h3,{id:"2022.1.1",children:"Weird heading"}),"\n",(0,o.jsx)(t.h3,{id:"a#b",children:"Weird heading"}),"\n",(0,o.jsx)(t.h3,{id:"a b",children:"Weird heading"}),"\n",(0,o.jsx)(t.h3,{id:"a{b",children:"Weird heading"}),"\n",(0,o.jsx)(t.h2,{id:"pipe",children:"Pipe"}),"\n",(0,o.jsxs)(t.p,{children:["Code tag + double pipe: ",(0,o.jsx)("code",{children:"||"})]}),"\n",(0,o.jsxs)(t.p,{children:["Code tag + double pipe: ",(0,o.jsx)("code",{children:"||"})]}),"\n",(0,o.jsx)(t.h2,{id:"images-edge-cases",children:"Images edge cases"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{src:n(89407).A+"",width:"200",height:"200"})}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{src:n(71580).A+"",width:"2282",height:"1066"})}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{src:n(49046).A+"",width:"200",height:"200"})}),"\n",(0,o.jsx)(t.h2,{id:"details",children:"Details"}),"\n",(0,o.jsx)(p.A,{children:(0,o.jsx)(t.p,{children:"Details without a summary"})}),"\n","\n",(0,o.jsx)(p.A,{summary:"My Headline",children:"Some Text"}),"\n",(0,o.jsx)(p.A,{children:"Some Text"}),"\n",(0,o.jsx)(t.p,{children:"This is a fragment:"}),"\n",(0,o.jsx)(o.Fragment,{children:"Hello"}),"\n",(0,o.jsx)(t.p,{children:"It should work :)"}),"\n",(0,o.jsx)(t.h2,{id:"task-list",children:"Task list"}),"\n",(0,o.jsx)(t.p,{children:"A list:"}),"\n",(0,o.jsxs)(t.ul,{className:"contains-task-list",children:["\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Simple"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Tasks"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Has simple"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Styles"]}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"Another list:"}),"\n",(0,o.jsxs)(t.ul,{className:"contains-task-list",children:["\n",(0,o.jsxs)(t.li,{children:["Nested","\n",(0,o.jsxs)(t.ul,{className:"contains-task-list",children:["\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Tasks"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Should be well-formatted"]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","No matter"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","How weird"]}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"Can be arbitrarily nested:"}),"\n",(0,o.jsxs)(t.ul,{className:"contains-task-list",children:["\n",(0,o.jsxs)(t.li,{children:["Level","\n",(0,o.jsxs)(t.ul,{className:"contains-task-list",children:["\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Task"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Task"]}),"\n",(0,o.jsxs)(t.li,{children:["Another level","\n",(0,o.jsxs)(t.ul,{className:"contains-task-list",children:["\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Task"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Task"]}),"\n",(0,o.jsxs)(t.li,{children:["Deeper","\n",(0,o.jsxs)(t.ul,{className:"contains-task-list",children:["\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Task"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Task"]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Task"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Task"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Task"]}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"emojis",children:"Emojis"}),"\n",(0,o.jsxs)(t.p,{children:["Emojis in this text will be replaced with ",(0,o.jsx)(t.a,{href:"https://www.npmjs.com/package/remark-emoji",children:"remark-emoji"}),": ","\u{1F436}"," ","\u{1F44D}"]}),"\n",(0,o.jsx)(t.h2,{id:"admonitions",children:"Admonitions"}),"\n",(0,o.jsxs)(t.admonition,{type:"warning",children:[(0,o.jsxs)(t.mdxAdmonitionTitle,{children:["Interpolated ",(0,o.jsx)(t.code,{children:"title"})," with a ",(0,o.jsx)("button",{style:{color:"red"},onClick:()=>alert("it works"),children:"button"})," (old syntax)"]}),(0,o.jsx)(t.p,{children:"Admonition body"})]}),"\n",(0,o.jsxs)(t.admonition,{type:"warning",children:[(0,o.jsxs)(t.mdxAdmonitionTitle,{children:["Interpolated ",(0,o.jsx)(t.code,{children:"title"})," with a ",(0,o.jsx)("button",{style:{color:"red"},onClick:()=>alert("it works"),children:"button"})," (directive label syntax)"]}),(0,o.jsx)(t.p,{children:"Admonition body"})]}),"\n",(0,o.jsx)(t.admonition,{type:"important",children:(0,o.jsxs)(t.p,{children:["Admonition alias ",(0,o.jsx)(t.code,{children:":::important"})," should have Important title"]})}),"\n",(0,o.jsxs)(t.admonition,{title:"title",type:"note",children:[(0,o.jsxs)(t.p,{children:["Some ",(0,o.jsx)(t.strong,{children:"content"})," with ",(0,o.jsx)(t.em,{children:"Markdown"})," ",(0,o.jsx)(t.code,{children:"syntax"}),"."]}),(0,o.jsxs)(t.admonition,{title:"nested Title",type:"note",children:[(0,o.jsx)(t.admonition,{title:"very nested Title",type:"tip",children:(0,o.jsxs)(t.p,{children:["Some ",(0,o.jsx)(t.strong,{children:"content"})," with ",(0,o.jsx)(t.em,{children:"Markdown"})," ",(0,o.jsx)(t.code,{children:"syntax"}),"."]})}),(0,o.jsxs)(t.p,{children:["Some ",(0,o.jsx)(t.strong,{children:"content"})," with ",(0,o.jsx)(t.em,{children:"Markdown"})," ",(0,o.jsx)(t.code,{children:"syntax"}),"."]})]}),(0,o.jsx)(t.p,{children:"hey"})]}),"\n",(0,o.jsxs)(t.admonition,{title:"Use tabs in admonitions",type:"tip",children:[(0,o.jsx)(t.admonition,{title:"Admonition nested",type:"info",children:(0,o.jsx)(t.p,{children:"test"})}),(0,o.jsxs)(c.A,{children:[(0,o.jsx)(s.A,{value:"apple",label:"Apple",children:(0,o.jsx)(t.admonition,{title:"Admonition in tab",type:"note",children:(0,o.jsx)(t.p,{children:"test"})})}),(0,o.jsx)(s.A,{value:"orange",label:"Orange",children:"This is an orange \u{1F34A}"}),(0,o.jsx)(s.A,{value:"banana",label:"Banana",children:"This is a banana \u{1F34C}"})]})]}),"\n","\n","\n",(0,o.jsx)(O,{}),"\n",(0,o.jsx)(t.h2,{id:"linking",children:"Linking"}),"\n",(0,o.jsx)(t.p,{children:"This is a test page to see if Docusaurus Markdown features are working properly"}),"\n",(0,o.jsx)(t.h3,{id:"linking-to-assets",children:"Linking to assets"}),"\n",(0,o.jsxs)(t.p,{children:["See ",(0,o.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/3337",children:"#3337"})]}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(4329).A+"",children:"/someFile.pdf"})}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(16722).A+"",children:"/someFile.xyz"})}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(4329).A+"",children:"@site/_dogfooding/_asset-tests/someFile.pdf"})}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(16722).A+"",children:"@site/_dogfooding/_asset-tests/someFile.xyz"})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"linking-to-non-spa-page-hosted-within-website",children:"Linking to non-SPA page hosted within website"}),"\n",(0,o.jsxs)(t.p,{children:["See ",(0,o.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/3309",children:"#3309"})]}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{href:"pathname:///dogfooding/javadoc",children:"pathname:///dogfooding/javadoc"})}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{href:"pathname:///dogfooding/javadoc/index.html",children:"pathname:///dogfooding/javadoc/index.html"})}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{href:"pathname://../dogfooding/javadoc",children:"pathname://../dogfooding/javadoc"})}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{href:"pathname://../dogfooding/javadoc/index.html",children:"pathname://../dogfooding/javadoc/index.html"})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"linking-to-non-spa-page-with-link-component",children:"Linking to non-SPA page with Link component"}),"\n",(0,o.jsxs)(t.p,{children:["See ",(0,o.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/9758",children:"#9758"}),", these external urls should not be reported by the broken links checker:"]}),"\n","\n","\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(g,{to:"pathname:///dogfooding/javadoc#goodlink1"}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(g,{href:"pathname:///dogfooding/javadoc#goodlink2"}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(g,{to:"/dogfooding/javadoc#goodlink3",target:"_blank"}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(g,{href:"/dogfooding/javadoc#goodlink4",target:"_blank"}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"These links are broken (try to single click on them) and should be reported. We need to explicitly disable the broken link checker for them:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(g,{to:"/dogfooding/javadoc#badlink1",noCheck:!0}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(g,{href:"/dogfooding/javadoc#badlink2",noCheck:!0}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(g,{to:"/dogfooding/javadoc#badlink3",target:"_self",noCheck:!0}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(g,{href:"/dogfooding/javadoc#badlink4",target:"_self",noCheck:!0}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"linking-to-json",children:"Linking to JSON"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(48927).A+"",children:"./script.js"})}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(80830).A+"",children:"./data.json"})}),"\n"]}),"\n"]})]})}function v(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(x,{...e})}):x(e)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[62247],{4329:(e,t,n)=>{n.d(t,{A:()=>r});let r=n.p+"assets/files/someFile-aef54daa5b1fe3359942dac7ade1daae.pdf"},16722:(e,t,n)=>{n.d(t,{A:()=>r});let r=n.p+"assets/files/someFile-aef54daa5b1fe3359942dac7ade1daae.xyz"},48927:(e,t,n)=>{n.d(t,{A:()=>r});let r=n.p+"assets/files/_script-505c7abc900c36ef533a0383a80d96a4.js"},80830:(e,t,n)=>{n.d(t,{A:()=>r});let r=n.p+"assets/files/data-4e0ce03654809ab2cf0049cf88b37a04.json"},89585:(e,t,n)=>{n.d(t,{A:()=>r});let r="/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport React, {useState} from 'react';\n\nexport default function MyComponent() {\n const [bool, setBool] = useState(false);\n return (\n <div>\n <p>MyComponent rendered !</p>\n <p>bool={bool ? 'true' : 'false'}</p>\n <p>\n <button onClick={() => setBool((b) => !b)}>toggle bool</button>\n </p>\n </div>\n );\n}\n"},65108:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(62540);function o(e){var t,n;return(0,r.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 14 16"},e),n=n={children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}n(63696)},55640:(e,t,n)=>{n.d(t,{A:()=>E});var r,o,i=n(62540),c=n(63696),s=n(11750),l=n(81912),a=n(12653);let u={admonition:"admonition_o5H7",admonitionHeading:"admonitionHeading_FzoX",admonitionIcon:"admonitionIcon_rXq6",admonitionContent:"admonitionContent_Knsx"};function d({type:e,className:t,children:n}){return(0,i.jsx)("div",{className:(0,s.A)(a.G.common.admonition,a.G.common.admonitionType(e),u.admonition,t),children:n})}function b({icon:e,title:t}){return(0,i.jsxs)("div",{className:u.admonitionHeading,children:[(0,i.jsx)("span",{className:u.admonitionIcon,children:e}),t]})}function p({children:e}){return e?(0,i.jsx)("div",{className:u.admonitionContent,children:e}):null}function f(e){let{type:t,icon:n,title:r,children:o,className:c}=e;return(0,i.jsxs)(d,{type:t,className:c,children:[r||n?(0,i.jsx)(b,{title:r,icon:n}):null,(0,i.jsx)(p,{children:o})]})}let h={icon:(0,i.jsx)(function(e){var t,n;return(0,i.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 14 16"},e),n=n={children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))},{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function j(e){var t,n;return(0,i.jsx)(f,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},h,e),n=n={className:(0,s.A)("alert alert--secondary",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let m={icon:(0,i.jsx)(function(e){var t,n;return(0,i.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 12 16"},e),n=n={children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))},{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function y(e){var t,n;return(0,i.jsx)(f,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},m,e),n=n={className:(0,s.A)("alert alert--success",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}var O=n(65108);let g={icon:(0,i.jsx)(O.A,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function A(e){var t,n;return(0,i.jsx)(f,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},g,e),n=n={className:(0,s.A)("alert alert--info",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}function x(e){var t,n;return(0,i.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 16 16"},e),n=n={children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let v={icon:(0,i.jsx)(x,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})},w={icon:(0,i.jsx)(function(e){var t,n;return(0,i.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 12 16"},e),n=n={children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))},{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})},k={icon:(0,i.jsx)(x,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};function P(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}let S=P({},{note:j,tip:y,info:A,warning:function(e){var t,n;return(0,i.jsx)(f,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},v,e),n=n={className:(0,s.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))},danger:function(e){var t,n;return(0,i.jsx)(f,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},w,e),n=n={className:(0,s.A)("alert alert--danger",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}},{secondary:e=>(0,i.jsx)(j,P({title:"secondary"},e)),important:e=>(0,i.jsx)(A,P({title:"important"},e)),success:e=>(0,i.jsx)(y,P({title:"success"},e)),caution:function(e){var t,n;return(0,i.jsx)(f,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},k,e),n=n={className:(0,s.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}});var N=n(37425);let C=(r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},S),o=o={"my-custom-admonition":function(e){return(0,i.jsxs)("div",{style:{border:"solid red",padding:10},children:[(0,i.jsx)(N.A,{as:"h5",style:{color:"blue",fontSize:30},children:e.title}),(0,i.jsx)("div",{children:e.children})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}),r);function E(e){var t;let n=function(e){var t,n,r;let{mdxAdmonitionTitle:o,rest:s}=function(e){let t=c.Children.toArray(e),n=t.find(e=>c.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),r=t.filter(e=>e!==n);return{mdxAdmonitionTitle:null==n?void 0:n.props.children,rest:r.length>0?(0,i.jsx)(i.Fragment,{children:r}):null}}(e.children),l=null!==(t=e.title)&&void 0!==t?t:o;return n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e,l&&{title:l}),r=r={children:s},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n}(e),r=C[t=n.type]||(console.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),C.info);return(0,i.jsx)(r,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},n))}},23572:(e,t,n)=>{n.d(t,{A:()=>p});var r=n(62540),o=n(63696),i=n(11750),c=n(52711),s=n(10709),l=n(27720);let a={details:"details_Nokh",isBrowser:"isBrowser_QrB5",collapsibleContent:"collapsibleContent_EoA1"};function u(e){return!!e&&("SUMMARY"===e.tagName||u(e.parentElement))}function d(e){var t,n,{summary:d,children:b}=e,p=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["summary","children"]);(0,c.A)().collectAnchor(p.id);let f=(0,s.A)(),h=(0,o.useRef)(null),{collapsed:j,setCollapsed:m}=(0,l.u)({initialState:!p.open}),[y,O]=(0,o.useState)(p.open),g=o.isValidElement(d)?d:(0,r.jsx)("summary",{children:null!=d?d:"Details"});return(0,r.jsxs)("details",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},p),n=n={ref:h,open:y,"data-collapsed":j,className:(0,i.A)(a.details,f&&a.isBrowser,p.className),onMouseDown:e=>{u(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();let t=e.target;u(t)&&function e(t,n){return!!t&&(t===n||e(t.parentElement,n))}(t,h.current)&&(e.preventDefault(),j?(m(!1),O(!0)):m(!0))},children:[g,(0,r.jsx)(l.N,{lazy:!1,collapsed:j,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{m(e),O(!e)},children:(0,r.jsx)("div",{className:a.collapsibleContent,children:b})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}function b(){return(b=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e){var t,n,o=b({},function(e){if(null==e)throw TypeError("Cannot destructure "+e);return e}(e));return(0,r.jsx)(d,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},o),n=n={className:(0,i.A)("alert alert--info","details_Cn_P",o.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}},15995:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(62540);n(63696);var o=n(11750);function i({children:e,hidden:t,className:n}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,o.A)("tabItem_pnkT",n),hidden:t,children:e})}},27446:(e,t,n)=>{n.d(t,{A:()=>g});var r=n(62540),o=n(63696),i=n(11750),c=n(7846),s=n(49519),l=n(96439),a=n(19739),u=n(66904),d=n(79244);function b(e){var t,n;return null!==(n=null===(t=o.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,o.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==n?n:[]}function p({value:e,tabValues:t}){return t.some(t=>t.value===e)}var f=n(10709);function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function j(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function m({className:e,block:t,selectedValue:n,selectValue:o,tabValues:s}){let l=[],{blockElementScrollPositionUntilNextRender:a}=(0,c.a_)(),u=e=>{let t=e.currentTarget,r=s[l.indexOf(t)].value;r!==n&&(a(t),o(r))},d=e=>{var t,n;let r=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let n=l.indexOf(e.currentTarget)+1;r=null!==(t=l[n])&&void 0!==t?t:l[0];break}case"ArrowLeft":{let t=l.indexOf(e.currentTarget)-1;r=null!==(n=l[t])&&void 0!==n?n:l[l.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.A)("tabs",{"tabs--block":t},e),children:s.map(({value:e,label:t,attributes:o})=>(0,r.jsx)("li",j(h({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>l.push(e),onKeyDown:d,onClick:u},o),{className:(0,i.A)("tabs__item","tabItem_AQgk",null==o?void 0:o.className,{"tabs__item--active":n===e}),children:null!=t?t:e}),e))})}function y({lazy:e,children:t,selectedValue:n}){let c=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=c.find(e=>e.props.value===n);return e?(0,o.cloneElement)(e,{className:(0,i.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:c.map((e,t)=>(0,o.cloneElement)(e,{key:t,hidden:e.props.value!==n}))})}function O(e){let t=function(e){let{defaultValue:t,queryString:n=!1,groupId:r}=e,i=function(e){let{values:t,children:n}=e;return(0,o.useMemo)(()=>{let e=null!=t?t:b(n).map(({props:{value:e,label:t,attributes:n,default:r}})=>({value:e,label:t,attributes:n,default:r}));return!function(e){let t=(0,u.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,n])}(e),[c,f]=(0,o.useState)(()=>(function({defaultValue:e,tabValues:t}){var n;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let r=null!==(n=t.find(e=>e.default))&&void 0!==n?n:t[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:t,tabValues:i})),[h,j]=function({queryString:e=!1,groupId:t}){let n=(0,s.W6)(),r=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,a.aZ)(r),(0,o.useCallback)(e=>{var t,o;if(!r)return;let i=new URLSearchParams(n.location.search);i.set(r,e),n.replace((t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},n.location),o=o={search:i.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}),t))},[r,n])]}({queryString:n,groupId:r}),[m,y]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[n,r]=(0,d.Dv)(t);return[n,(0,o.useCallback)(e=>{t&&r.set(e)},[t,r])]}({groupId:r}),O=(()=>{let e=null!=h?h:m;return p({value:e,tabValues:i})?e:null})();return(0,l.A)(()=>{O&&f(O)},[O]),{selectedValue:c,selectValue:(0,o.useCallback)(e=>{if(!p({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);f(e),j(e),y(e)},[j,y,i]),tabValues:i}}(e);return(0,r.jsxs)("div",{className:(0,i.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(m,h({},t,e)),(0,r.jsx)(y,h({},t,e))]})}function g(e){let t=(0,f.A)();return(0,r.jsx)(O,j(h({},e),{children:b(e.children)}),String(t))}},40576:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(62540);n(63696);var o=n(10709);function i({children:e,fallback:t}){return(0,o.A)()?(0,r.jsx)(r.Fragment,{children:null==e?void 0:e()}):null!=t?t:null}},70361:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(62540);n(63696);var o=n(11750);let i="dot_giz1",c="bar_rrRL";function s({children:e,minHeight:t,url:n="http://localhost:3000",style:s,bodyStyle:l}){var a,u;return(0,r.jsxs)("div",{className:"browserWindow_my1Q",style:(a=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},s),u=u={minHeight:t},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(u)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(u)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(u,e))}),a),children:[(0,r.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,r.jsxs)("div",{className:"buttons_uHc7",children:[(0,r.jsx)("span",{className:i,style:{background:"#f25f58"}}),(0,r.jsx)("span",{className:i,style:{background:"#fbbe3c"}}),(0,r.jsx)("span",{className:i,style:{background:"#58cb42"}})]}),(0,r.jsx)("div",{className:(0,o.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:n}),(0,r.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:c}),(0,r.jsx)("span",{className:c}),(0,r.jsx)("span",{className:c})]})})]}),(0,r.jsx)("div",{className:"browserWindowBody_Idgs",style:l,children:e})]})}},55887:(e,t,n)=>{n.d(t,{A:()=>es});var r,o,i,c={};n.r(c),n.d(c,{ButtonExample:()=>E});var s=n(62540),l=n(63696),a=n(11750),u=n(10709),d=n(55152),b=n(81912),p=n(99468),f=n(40576),h=n(1495),j=n(66659),m=n(25436);function y(){let{prism:e}=(0,m.p)(),{colorMode:t}=(0,j.G)(),n=e.theme,r=e.darkTheme||n;return"dark"===t?r:n}var O=n(43758);function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function A({children:e}){return(0,s.jsx)("div",{className:(0,a.A)("playgroundHeader_Tvsk"),children:e})}function x(){return(0,s.jsx)("div",{children:"Loading..."})}function v(){return(0,s.jsx)(f.A,{fallback:(0,s.jsx)(x,{}),children:()=>(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(O.A,{fallback:e=>(0,s.jsx)(h.MN,g({},e)),children:(0,s.jsx)(d.pA,{})}),(0,s.jsx)(d.p1,{})]})})}function w(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(A,{children:(0,s.jsx)(b.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,s.jsx)("div",{className:"playgroundPreview_mApW",children:(0,s.jsx)(v,{})})]})}function k(){let e=(0,u.A)();return(0,s.jsx)(d.w,{className:"playgroundEditor_TySg"},String(e))}function P(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(A,{children:(0,s.jsx)(b.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,s.jsx)(k,{})]})}let S=e=>`${e};`;function N(e){var t,n,r,o,{children:i,transformCode:c}=e,l=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:a}}=(0,p.A)(),{liveCodeBlock:{playgroundPosition:u}}=a,b=y(),f=null!==(o=null===(r=l.metastring)||void 0===r?void 0:r.includes("noInline"))&&void 0!==o&&o;return(0,s.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,s.jsx)(d.Q,(t=g({code:null==i?void 0:i.replace(/\n$/,""),noInline:f,transformCode:null!=c?c:S,theme:b},l),n=n={children:"top"===u?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(w,{}),(0,s.jsx)(P,{})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(P,{}),(0,s.jsx)(w,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))})}function C(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function E(e){var t,n;return(0,s.jsx)("button",(t=C({type:"button"},e),n=n={style:C({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let B=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({React:l},l,c);var T=n(12653),D=n(19934),R=n.n(D);let M=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),L=RegExp("\\{(?<range>[\\d,-]+)\\}"),I={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},J=(r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},I),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}),r),G=Object.keys(I);function z(e,t){let n=e.map(e=>{let{start:n,end:r}=J[e];return`(?:${n}\\s*(${t.flatMap(e=>{var t,n;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(n=e.block)||void 0===n?void 0:n.end].filter(Boolean)}).join("|")})\\s*${r})`}).join("|");return RegExp(`^\\s*(?:${n})\\s*$`)}function F(e){var t,n,{as:r}=e,o=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["as"]);let i=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach(([e,r])=>{let o=t[e];o&&"string"==typeof r&&(n[o]=r)}),n}(y());return(0,s.jsx)(r,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},o),n=n={style:i,className:(0,a.A)(o.className,"codeBlockContainer_jDV4",T.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let V={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function q({children:e,className:t}){return(0,s.jsx)(F,{as:"pre",tabIndex:0,className:(0,a.A)(V.codeBlockStandalone,"thin-scrollbar",t),children:(0,s.jsx)("code",{className:V.codeBlockLines,children:e})})}var H=n(2550);let W={attributes:!0,characterData:!0,childList:!0,subtree:!0};var Z=n(27663);let Q={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function X(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function K({line:e,classNames:t,showLineNumbers:n,getLineProps:r,getTokenProps:o}){var i,c;1===e.length&&"\n"===e[0].content&&(e[0].content="");let l=r({line:e,className:(0,a.A)(t,n&&Q.codeLine)}),u=e.map((e,t)=>(0,s.jsx)("span",X({},o({token:e})),t));return(0,s.jsxs)("span",(i=X({},l),c=c={children:[n?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:Q.codeLineNumber}),(0,s.jsx)("span",{className:Q.codeLineContent,children:u})]}):u,(0,s.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(c)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(c)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(c,e))}),i))}var U=n(936);function Y(e){var t,n;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,s.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}function _(e){var t,n;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,s.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let $={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[n,r]=(0,l.useState)(!1),o=(0,l.useRef)(void 0),i=(0,l.useCallback)(()=>{(0,U.A)(e),r(!0),o.current=window.setTimeout(()=>{r(!1)},1e3)},[e]);return(0,l.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,s.jsx)("button",{type:"button","aria-label":n?(0,b.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,b.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,b.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.A)("clean-btn",t,$.copyButton,n&&$.copyButtonCopied),onClick:i,children:(0,s.jsxs)("span",{className:$.copyButtonIcons,"aria-hidden":"true",children:[(0,s.jsx)(Y,{className:$.copyButtonIcon}),(0,s.jsx)(_,{className:$.copyButtonSuccessIcon})]})})}function et(e){var t,n;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,s.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let en={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function er({className:e,onClick:t,isEnabled:n}){let r=(0,b.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,s.jsx)("button",{type:"button",onClick:t,className:(0,a.A)("clean-btn",e,n&&en.wordWrapButtonEnabled),"aria-label":r,title:r,children:(0,s.jsx)(et,{className:en.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:n,title:r,showLineNumbers:o,language:i}){var c,u,d,b;let{prism:{defaultLanguage:p,magicComments:f}}=(0,m.p)(),h=null==(u=null!==(c=null!=i?i:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==c?c:p)?void 0:u.toLowerCase(),j=y(),O=function(){let[e,t]=(0,l.useState)(!1),[n,r]=(0,l.useState)(!1),o=(0,l.useRef)(null),i=(0,l.useCallback)(()=>{let n=o.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),c=(0,l.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;r(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[n,r]=(0,l.useState)(),o=(0,l.useCallback)(()=>{var t;r(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,r]);(0,l.useEffect)(()=>{o()},[o]),function(e,t,n=W){let r=(0,H._q)(t),o=(0,H.Be)(n);(0,l.useEffect)(()=>{let t=new MutationObserver(r);return e&&t.observe(e,o),()=>t.disconnect()},[e,r,o])}(n,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,c),(0,l.useEffect)(()=>{c()},[e,c]),(0,l.useEffect)(()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)}),[c]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:n,toggle:i}}(),g=(null!==(b=null==n?void 0:null===(d=n.match(M))||void 0===d?void 0:d.groups.title)&&void 0!==b?b:"")||r,{lineClassNames:A,code:x}=function(e,t){let n=e.replace(/\n$/,""),{language:r,magicComments:o,metastring:i}=t;if(i&&L.test(i)){let e=i.match(L).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${i}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(R()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:n}}if(void 0===r)return{lineClassNames:{},code:n};let c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return z(["js","jsBlock"],t);case"jsx":case"tsx":return z(["js","jsBlock","jsx"],t);case"html":return z(["js","jsBlock","html"],t);case"python":case"py":case"bash":return z(["bash"],t);case"markdown":case"md":return z(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return z(["tex"],t);case"lua":case"haskell":case"sql":return z(["lua"],t);case"wasm":return z(["wasm"],t);case"vb":case"vba":case"visual-basic":return z(["vb","rem"],t);case"vbnet":return z(["vbnet","rem"],t);case"batch":return z(["rem"],t);case"basic":return z(["rem","f90"],t);case"fsharp":return z(["js","ml"],t);case"ocaml":case"sml":return z(["ml"],t);case"fortran":return z(["f90"],t);case"cobol":return z(["cobol"],t);default:return z(G,t)}}(r,o),s=n.split("\n"),l=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),a=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),d=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<s.length;){let t=s[e].match(c);if(!t){e+=1;continue}let n=t.slice(1).find(e=>void 0!==e);a[n]?l[a[n]].range+=`${e},`:u[n]?l[u[n]].start=e:d[n]&&(l[d[n]].range+=`${l[d[n]].start}-${e-1},`),s.splice(e,1)}n=s.join("\n");let b={};return Object.entries(l).forEach(([e,{range:t}])=>{R()(t).forEach(t=>{var n;null!==(n=b[t])&&void 0!==n||(b[t]=[]),b[t].push(e)})}),{lineClassNames:b,code:n}}(e,{metastring:n,language:h,magicComments:f}),v=null!=o?o:!!(null==n?void 0:n.includes("showLineNumbers"));return(0,s.jsxs)(F,{as:"div",className:(0,a.A)(t,h&&!t.includes(`language-${h}`)&&`language-${h}`),children:[g&&(0,s.jsx)("div",{className:V.codeBlockTitle,children:g}),(0,s.jsxs)("div",{className:V.codeBlockContent,children:[(0,s.jsx)(Z.f4,{theme:j,code:x,language:null!=h?h:"text",children:({className:e,style:t,tokens:n,getLineProps:r,getTokenProps:o})=>(0,s.jsx)("pre",{tabIndex:0,ref:O.codeBlockRef,className:(0,a.A)(e,V.codeBlock,"thin-scrollbar"),style:t,children:(0,s.jsx)("code",{className:(0,a.A)(V.codeBlockLines,v&&V.codeBlockLinesWithNumbering),children:n.map((e,t)=>(0,s.jsx)(K,{line:e,getLineProps:r,getTokenProps:o,classNames:A[t],showLineNumbers:v},t))})})}),(0,s.jsxs)("div",{className:V.buttonGroup,children:[(O.isEnabled||O.isCodeScrollable)&&(0,s.jsx)(er,{className:V.codeButton,onClick:()=>O.toggle(),isEnabled:O.isEnabled}),(0,s.jsx)(ee,{className:V.codeButton,code:x})]})]})]})}function ei(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}let ec=(i=function(e){var t,n,{children:r}=e,o=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["children"]);let i=(0,u.A)(),c=l.Children.toArray(r).some(e=>(0,l.isValidElement)(e))?r:Array.isArray(r)?r.join(""):r,a="string"==typeof c?eo:q;return(0,s.jsx)(a,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},o),n=n={children:c},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t),String(i))},function(e){return e.live?(0,s.jsx)(N,ei({scope:B},e)):(0,s.jsx)(i,ei({},e))});function es(e){return(0,s.jsx)(ec,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e))}},49046:(e,t,n)=>{n.d(t,{A:()=>r});let r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAT3UlEQVR42u1dCVQVV5pWXNt2N0czykl33KImZ7IgKgqIghq3KCDK+qowCek2c2K0Mx3idBxakzYxJnZiq3Gf6Bg7UdN2R51MxnTSia3gew9Rwccm7oqiiIK4sPxTt1hEHo9XvPVW1fed852Dr+67UNb/1f3/+9/731atAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8i2CxGjDUJXzMGmcSZnmoHAF7B6GMJvYPNwq5gk1AmMS/YJMbaahtkNsRLbeghmoU4d7cDAO+NCEbhQCMjrZbe5q81bhdyVOwuXbtqZdDSZ+yau9oBgNcgGeIvmzDQJkUy1ix8ZKMtsWvuagcAXsNYs/iyLSNlIgk2GebLQjKJQ6R/32+mbcWYI8KTrm6HJwR4170yCV80Y6T1I4kklH122lFNG9e2wxMC3Ao/U1KnQLPgF2SK/xeri5TiIxlikX1DBXVANpoXSy/DzGCjYfdYs2FRiFkcxWxEu/GF0RAm3fT1Bv8JJyV+LLlV08ccnNuFCQeGAdrheWkkXxaSGueruZFDurlrzfn4QSbDGRgAqJD3JK4NMcU8oo3RIz1hOB4q6AZeCzKK0aoXCIs58DBBt9Esfip5Ke3UPkN1Eg8TdB8N+5grr+JRxPAJHiLoTgaZhf97MiuqvVqTgNPxEEEPcK0qBTIyNa6rnWw1CLooJjHMUZc6KMWnNs9xDg8Q9ACLQtMMvbhfeFi7tuoLZMhBz1NczaUw2H4OFizhAYFe5l0uM+61m53wgMAWM+C7aBr425Ey2c8umPpdxmO+oxQPWz8cvnOmTGf7Gf1DDHXs25lYxMrIfmafOdnvOe4WONZsk4XhaD7nkJpAPQN96w2a/cw+c7S/QYsC6vuq46D/CHD+7zQaRvDmYsXVbG6CEWmZQ5YGWRk0+8zR/phb1bg/9pkLgvVk/twso+EViETbfPw1PyuDHrDQ36n4o6GL1eHRn7skDhlrEnZyuvbKMN/TIglKM9AzmyfLbzL2sBjZz89sniJfg2G7Nvbwad+m3qB9OrQh/z0RTschzK1yXZAu8zi/CxQ9NJL4fT6d+kwdQG27drB6q9WxXbcO1GfaAPL78wswcBfx6Y2T6ZHxv5DJfuY1acj5Kl55JHHPtOCBaOozZQC18mltUxhWlNoyobjwDQVyng/hVhyBaYbBrEKhW0aNL2Y85LO2lB37daHhX86AAemAPC4z6R5sEt9j6nWXONr8vJ3D4qhj287tIRIIxMP7PmrKd151p1vV3MjRtmt7eiT0F+QbN4z6xQ6T/eO2XdrbbP8z3y5wtyAQT+VAxAh336wcczQVhPfsKM+ANJWsYp+xRFS7Hh2b/C6LSWBIEIgnsuh73T1b1VRA3ql/dxq5d5bd74/4OlJu21TgjtktCMT9uwbdFJDXjx5TBzQ5cigRR71I/hZJ7bpbTwf3mT4QxgSBuHtbrSHcnUlAlstwxXqdgcmjmsyTIJkIgag2SGcZ8qYCckcWyAUdTpBnsBr398yWKTAoCESd07xD3rFeHMdmqxztj81uNe5v6B+CYVAQiAeD9qPiIOkP/NIVN9l//nArg/ZNeNLh/nzjn7Tqr//rw2FQEIg6M+lN7RcY/LvR3PQHupdh6S9R+LH5ZMh8i17NfoeS81bSO6fX0cfn/ps2X/wL7bzyv/TNtYP0z5KjdLw0hwrKL1DR/Rt0r+q+Plys0d/HyMtDGib4nNlx5ur+QPcZuLPQTSa9bjk0oyuM2dX9adm4Zx57jeIzk+lXliX0Ru4KSjm1hlac/S/69MKXtP3yXvrr1b/Td8WplHbzOGWV5dPZO5fo+v0Slxi4ZgTiiUw66BoD/32BPQO/zI2Ba0cgbs6kg9aMPfFbWn5mM/258H80a+CaEYi7M+ngA7JR4ERpHgFqEogbM+lgDSelv0LfFx+B1SNIBxtzWsarlH27ABavZoF4YsOUHhliEuX4AlCOwsJC2rVrF7+JwjHGuU8Em4X9MHDn+afzOzRtzGVlZbR69WqKjY2lqKgoev/996m4uNihvqqrqyklJYU6dKhf3Kq/Pel6izuKK246bYQXLlygvXv30ldffUWZmZlO9cX6CAwMpI4dO1Lbtm3pueeeo61btzrUV1ZWFj3++ONWKxseffRRMpvNLe7vzTffrClF5ONDEydOhIuldb53ZqNTxpyfn08RERFWBsiM2mQytbi/+fPn29zCnJSU1KK+ioqKyNe3poTpU089RRs3bqTt27dTQEBAvUiuXr2quL8ff/xRFgYT7e7duxGk64E/FBsdFsfhw4epR48eNTsvO3WioKAgmjRpEvXu3Vv+rHPnzvTTTz8p7u/dd9+tqXwouS/Lly+nS5cuUUlJCa1fv17ui11j7pFSTJs2Tf4O+7tu3bpV//ndu3fr3v40Y8YMRX1VVFTQkCFD5O8sW7YMmXS98MLdQofEYbFYqFu3brLBsBGEBa11KC0tpcTERPkaa8NGGXs4ePCg/HZu06YN7du3z+r6/v3769/e6enpdvvbs2dPTeHrnj1l968xLl68SN2712yR/vbbb+3299lnn8ltn3jiCbp37x4y6XphedWdFouDBbiDBw+WDWb27NlUWVlp1aaqqooiIyPlNsOHD3/IqBrj9u3bNGjQILnt4sWLbbZbuHCh3Mbf37/J31kH9rvq+mPBuS2w0Yi18fPzk4NvW2C/iwmDtd22bRsy6RAINWvM48aNq48z2L9tgblH/fv3l9suWLDAZrt58+bJbZ5++ulmhcRGpscee8yu4a9YsUJuM2zYMNk1soXy8nLq16+f3Hbnzp0227EJAtZm4MCBVv0hkw4XS8aNGzdkV4S9bZmxMMM6f/683e+lpaVR+/Y1W5A//PBDq+vr1q2Tr7E2GRkZil2nrl27Um5ubpOTBuwaa/PNN9/Y7a/u97MRgsUmjcE+Y8JgbbZs2YJMut6oZGnJ6NGjHz5bQzKYggLlWXf2BmbxA/suC+LZbNKOHTsoLi6OWrduLXPz5s2K+2P5DNYXC5rz8h6sGbt8+bI8qrFrrI3S4JuNNOw7ycnJVtfffvvtZkcjTPNqnMtOb7BrRGPGjJFnlpiRfPDBB826VbbABNGrVy/rii/t2tGqVata7OY9++yz8ve7dOkiC41NAdfNng0dOlR2x5TCaDTKfwf77tKlS2UhsJiEuXFs0oCJ+9ChQ+pYauKOPel65sT0JJckCpXmJVhgzLLZM2fOpEWLFj00ArR0oqCp/AuLj9hI0lIwkbKRrG7mqy42YVyyZIl61mJhqYnruercdtUuI2HTzZs2baK1a9fSkSPOrURm8U1droOxb9++tGHDBixWxGJFkVJLjmEFYoMcCYuxmpsBQ5Cuu+Xu8+hk2SmoQ63L3ZFJ90w8cuD6YVi9KgWCTLrHuDB3uVwep5qqoQC1CASZdM8z+sQb9P6ZTbSjcD+KNnAvEGTSUfYHAkGQDoGhcBymeUGUHkUmHdS6wG5VlmFPOgjq/gAdEMQRbCCoZYEgkw5CIMikgxAIMukgBIJMOgiBIEgHIRBM84KgegSCTDoIgSCTzvcWXbNAv7bE0/oL0fSPG1F0+k4k3aoMp4rqmUSkL8LFAus563gCbb88h4ruR+hOCKoQCIJ07/CFDAP9rWg23a+GILgVCDLp3uGSghi6WREOMXAvEGTSPcrxUpzxtTRqQAQqEQgCck9WNzFQasksCEBVAkEm3WMjB8SBIB20QbhVmOYFbXBpQazLDYjlR25XhetGIJOyXuw5JntuF2TSNVd61EAlLpytqpa4sjCWJmSLMtdcidG2QKhV67CcxHVh2WJVLVcik65zjmVZ9QyRxmcKFHpSJMkoaGqOSHGnDPTGuXj53w1pLIvSnECk+yoPzRZPh2Un/r3x/YZZEifBxdLrcpOMB6JQyt3Fc7QokOb4OoJ0vdEs0LgTLRNGHQ/cnE07JZEcLo2SXTCtC2RCdmJ8aI64MNSSOI25YMik64COiqMxPy6M0cMI0oDCGmTSdeBWuUIcYbWBe6kGZrdacM/VIafF7sikazggb2nMYU8gJZURehJIVUhO0iPIpGt29HCdOBj/qDMXS3ohfIogXctLUDJd516xaeCvb8yhMv24WGekQP2VsFNJ3TDNq1G60r2qY4IkFLWLpIX3fMojIkEm3QsV0LMFlwuEcfS/P0N+ft29ypdf/qWnBEJhFiEJmXQIRDH7RQ2uP5fcW+zbt6PHBDIhJ/EluFhwsRRxzsl4OmgeTyZTiFdZXDzVUwLJd6uLhSBdO0H63huzdRWkM9fKreJAJl07SULGjy7H6iuTbhHXI5Ou8URhGBKFHCcKEZB7fxQ5iqUm/C41QSadk8WKrhHJJ4X6crFCLeKfkEnXiavl7HL31LJZutgPUrfcPSxXmIoNU3rcMGURsGGKpw1TyKTzKZTxmWJtnkT6OSOBxhyYRX6fPW9lML0C+3k9KdgUR47s4dSWW4kF3Gy5RSbdtXTUMEaM6NG84bVuRUNSAiThSCNNlkCDk/25FAfjqFE9XVO0IVtcW1uwoTLMInyEsj86FohSllaGU7mOyv5MPR7bIyRrXmcUjoNAQFR3h0BAVHeHQEBUdwchEFR3ByEQVHdHkA6BQCCY5oVAIBBk0tUrEH//Htwm/jyZSedWIMikc55JVxFdkkmHiwWBgAjSIRAQmXQQAkEmHYRAkEkHeRDIP0ujaOG5eJqWK8j8jfQzOyQHAkEmXfcC2XA12uaOuk1F0RAIgnRtC4Qd4XyifBZZ7kRaHefMRg5722wbjySsD9YX61MLx0OH5cwNnJwX1xXTvDoTyF3JeD8pjKHncx4Y+xTp51VXYuRrrM3CJk6ybUx22u2D/mLlPuquTc4RavqrVv2e9LthOcKqgPNRP0MmXQcCqZAMdsFZ28b/unTNf1QvGpceZ1cg48xx5NPOh4Z/PsVmG79tz1Prtj5q3ZPekD/4mZLaIZOu9dpXx+1XKBl3XFlFk9BMAw1+a4Tddo8Zhqkyk95EQbz5cLG0Xsk9S3TLUQfN8ddnErRS9seMIF3rZ4FYPC+QF3IFrQjkFjLpOAvE5UwsMGhFIBZk0rV+FsgJweMC+Vilp95a34uwBpl0rdffNXtWIKzS+9Hbs2hlYSwZThnkqWA2onx+LZr7KeDGFdxDsw3jwnIS18mnSWWLd9iIEmpJfMvtU8DIpHtwBMny/Ahii/8mBe88JxRb8BJIc3tCEUG6Nt0re/zgcozqBVLrfm3GNK+aC1Ef408cjBM5Po2qhfdS6dZTppBJd2/cEWoRuRQIY8/RfdWQSbfP3LlhSoPuxSGpcb7IpMO1UsIe/n1UkUm3OxrmCsF2jTs09aU+0kO5zQwcLhYHTBe5Fgdb1HirMlwLLtbdSVkv9lSS01ha93CCzMpP4UGQzve5g+7iHzk+z7CF97JWadIvr8EDqmJZcmTSvUSzd5aWKOX8swn1y+tVLpCD001JnezHHkdE/yYe1B17IkEm3U3BeTq/o8faK9Hy0nvVn3JrET5SvAxeeii/sfGwqqSY5DVk0j3sXh3jd/Rgm7V43+Ou8F7uSyyT+P1EizjdnkC+sDPk7x+TPrcvMukemr3K5DtA532PuyP3EZojvtvc9G6mggd3LcgoLAg49PD6FQTp7li5K6hGIE3tcVejQGSRWBKn2RpBLrXgAbK2vws0zu2PaV7t7P1whnV73NUuEHZstC2B3HFwtuVIkEn8cKxRiJFGkn8NyZgbGGw07IaROzmCZKtLIGyPu6oz6fY2VkkP5R4MEwJxlCGmOG4y6ferw525l5u2BHIdhsmRQOBiOUy2gNLhGCRb/M6ZIB3U8PZaZ5haNosbgRTcjXT8XnKFqbZGkK9gmDxtjlKPOLZwNs37j1uzHbwXYWlzOwMXwTCRKFSaKJyeK8huFU8jh5K6xNaJQqGUuVU2R476aVqzOAqGiaUmSnjmXiTXy0xePZOgLN7ISxymfL06pfhID+YcjJMTgXAah7xymu9CclfuR8jFJhTcy1EHSvgYlsE41VVq1NPccX0O1wJhFVcU3UuOmNzyfeWpcb7Ih/C1YYqnfAirsnijkt8l7iz/EZ1vUJQMnJif0NvRQnBrYZw8bZriRyDbrvE9euwpnqOs1E+OsNjhogsBh17sKT2YIhgnLxunRC7WZc3OF6ic4w1SN6WRLTJP0ehxOSRrXmfn6lwZxWgYJ8r+NKywmMbhdG5DLrkYp+ReqsbnGCa7qij1pzBOVDdh3HqN7zMN/3pjttLA/D9dVt8q6suoNmNNwl9gnPreRPV76c1czbE4WKJyUo6il8euFErxcWkROD9TUqdgk2EfjJOf3IgnRfLepViqrOY37mCbtKbmKhLH1pDvU9q6pVIi29SOmS19zWxNqC3MUM25W6Vg5KhmhRlaUavWHjgoxzAHs1scBe4ZclUOl4sjJt9AxrIoboVRUhmuNCA/F2ZJnOTRs0BC0wy9gk3iamyr5ad2lquCd1alZM2VGG6PNGBJQJbnCM+ze7+sSslKr56RPj7D0K92WQrWbnEiFLYsxZG1W2zEYMszeC0herUiQv77FGTIz7EDcRSVEPUYKMUnyGgYIY0qyVIAuVN6WMdrdyZiuYqXgvixRwX5KOjxmTWLHdnORLZchfnrEdLb9+XTCZKLEiv78GfvRXA0QsykmxXhlF8eST8UR9G6i9H0q7x4Cm10H2HZQoUkhmsSj0/IFnZOyBFeDctNGNoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsI3/BxVeQNnL1kBuAAAAAElFTkSuQmCC"},71580:(e,t,n)=>{n.d(t,{A:()=>r});let r=n.p+"assets/images/\u56FE\u7247-c3c014b00b204c4fec2ad5e402e5521d.png"},89407:(e,t,n)=>{n.d(t,{A:()=>r});let r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAT3UlEQVR42u1dCVQVV5pWXNt2N0czykl33KImZ7IgKgqIghq3KCDK+qowCek2c2K0Mx3idBxakzYxJnZiq3Gf6Bg7UdN2R51MxnTSia3gew9Rwccm7oqiiIK4sPxTt1hEHo9XvPVW1fed852Dr+67UNb/1f3/+9/731atAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8i2CxGjDUJXzMGmcSZnmoHAF7B6GMJvYPNwq5gk1AmMS/YJMbaahtkNsRLbeghmoU4d7cDAO+NCEbhQCMjrZbe5q81bhdyVOwuXbtqZdDSZ+yau9oBgNcgGeIvmzDQJkUy1ix8ZKMtsWvuagcAXsNYs/iyLSNlIgk2GebLQjKJQ6R/32+mbcWYI8KTrm6HJwR4170yCV80Y6T1I4kklH122lFNG9e2wxMC3Ao/U1KnQLPgF2SK/xeri5TiIxlikX1DBXVANpoXSy/DzGCjYfdYs2FRiFkcxWxEu/GF0RAm3fT1Bv8JJyV+LLlV08ccnNuFCQeGAdrheWkkXxaSGueruZFDurlrzfn4QSbDGRgAqJD3JK4NMcU8oo3RIz1hOB4q6AZeCzKK0aoXCIs58DBBt9Esfip5Ke3UPkN1Eg8TdB8N+5grr+JRxPAJHiLoTgaZhf97MiuqvVqTgNPxEEEPcK0qBTIyNa6rnWw1CLooJjHMUZc6KMWnNs9xDg8Q9ACLQtMMvbhfeFi7tuoLZMhBz1NczaUw2H4OFizhAYFe5l0uM+61m53wgMAWM+C7aBr425Ey2c8umPpdxmO+oxQPWz8cvnOmTGf7Gf1DDHXs25lYxMrIfmafOdnvOe4WONZsk4XhaD7nkJpAPQN96w2a/cw+c7S/QYsC6vuq46D/CHD+7zQaRvDmYsXVbG6CEWmZQ5YGWRk0+8zR/phb1bg/9pkLgvVk/twso+EViETbfPw1PyuDHrDQ36n4o6GL1eHRn7skDhlrEnZyuvbKMN/TIglKM9AzmyfLbzL2sBjZz89sniJfg2G7Nvbwad+m3qB9OrQh/z0RTschzK1yXZAu8zi/CxQ9NJL4fT6d+kwdQG27drB6q9WxXbcO1GfaAPL78wswcBfx6Y2T6ZHxv5DJfuY1acj5Kl55JHHPtOCBaOozZQC18mltUxhWlNoyobjwDQVyng/hVhyBaYbBrEKhW0aNL2Y85LO2lB37daHhX86AAemAPC4z6R5sEt9j6nWXONr8vJ3D4qhj287tIRIIxMP7PmrKd151p1vV3MjRtmt7eiT0F+QbN4z6xQ6T/eO2XdrbbP8z3y5wtyAQT+VAxAh336wcczQVhPfsKM+ANJWsYp+xRFS7Hh2b/C6LSWBIEIgnsuh73T1b1VRA3ql/dxq5d5bd74/4OlJu21TgjtktCMT9uwbdFJDXjx5TBzQ5cigRR71I/hZJ7bpbTwf3mT4QxgSBuHtbrSHcnUlAlstwxXqdgcmjmsyTIJkIgag2SGcZ8qYCckcWyAUdTpBnsBr398yWKTAoCESd07xD3rFeHMdmqxztj81uNe5v6B+CYVAQiAeD9qPiIOkP/NIVN9l//nArg/ZNeNLh/nzjn7Tqr//rw2FQEIg6M+lN7RcY/LvR3PQHupdh6S9R+LH5ZMh8i17NfoeS81bSO6fX0cfn/ps2X/wL7bzyv/TNtYP0z5KjdLw0hwrKL1DR/Rt0r+q+Plys0d/HyMtDGib4nNlx5ur+QPcZuLPQTSa9bjk0oyuM2dX9adm4Zx57jeIzk+lXliX0Ru4KSjm1hlac/S/69MKXtP3yXvrr1b/Td8WplHbzOGWV5dPZO5fo+v0Slxi4ZgTiiUw66BoD/32BPQO/zI2Ba0cgbs6kg9aMPfFbWn5mM/258H80a+CaEYi7M+ngA7JR4ERpHgFqEogbM+lgDSelv0LfFx+B1SNIBxtzWsarlH27ABavZoF4YsOUHhliEuX4AlCOwsJC2rVrF7+JwjHGuU8Em4X9MHDn+afzOzRtzGVlZbR69WqKjY2lqKgoev/996m4uNihvqqrqyklJYU6dKhf3Kq/Pel6izuKK246bYQXLlygvXv30ldffUWZmZlO9cX6CAwMpI4dO1Lbtm3pueeeo61btzrUV1ZWFj3++ONWKxseffRRMpvNLe7vzTffrClF5ONDEydOhIuldb53ZqNTxpyfn08RERFWBsiM2mQytbi/+fPn29zCnJSU1KK+ioqKyNe3poTpU089RRs3bqTt27dTQEBAvUiuXr2quL8ff/xRFgYT7e7duxGk64E/FBsdFsfhw4epR48eNTsvO3WioKAgmjRpEvXu3Vv+rHPnzvTTTz8p7u/dd9+tqXwouS/Lly+nS5cuUUlJCa1fv17ui11j7pFSTJs2Tf4O+7tu3bpV//ndu3fr3v40Y8YMRX1VVFTQkCFD5O8sW7YMmXS98MLdQofEYbFYqFu3brLBsBGEBa11KC0tpcTERPkaa8NGGXs4ePCg/HZu06YN7du3z+r6/v3769/e6enpdvvbs2dPTeHrnj1l968xLl68SN2712yR/vbbb+3299lnn8ltn3jiCbp37x4y6XphedWdFouDBbiDBw+WDWb27NlUWVlp1aaqqooiIyPlNsOHD3/IqBrj9u3bNGjQILnt4sWLbbZbuHCh3Mbf37/J31kH9rvq+mPBuS2w0Yi18fPzk4NvW2C/iwmDtd22bRsy6RAINWvM48aNq48z2L9tgblH/fv3l9suWLDAZrt58+bJbZ5++ulmhcRGpscee8yu4a9YsUJuM2zYMNk1soXy8nLq16+f3Hbnzp0227EJAtZm4MCBVv0hkw4XS8aNGzdkV4S9bZmxMMM6f/683e+lpaVR+/Y1W5A//PBDq+vr1q2Tr7E2GRkZil2nrl27Um5ubpOTBuwaa/PNN9/Y7a/u97MRgsUmjcE+Y8JgbbZs2YJMut6oZGnJ6NGjHz5bQzKYggLlWXf2BmbxA/suC+LZbNKOHTsoLi6OWrduLXPz5s2K+2P5DNYXC5rz8h6sGbt8+bI8qrFrrI3S4JuNNOw7ycnJVtfffvvtZkcjTPNqnMtOb7BrRGPGjJFnlpiRfPDBB826VbbABNGrVy/rii/t2tGqVata7OY9++yz8ve7dOkiC41NAdfNng0dOlR2x5TCaDTKfwf77tKlS2UhsJiEuXFs0oCJ+9ChQ+pYauKOPel65sT0JJckCpXmJVhgzLLZM2fOpEWLFj00ArR0oqCp/AuLj9hI0lIwkbKRrG7mqy42YVyyZIl61mJhqYnruercdtUuI2HTzZs2baK1a9fSkSPOrURm8U1droOxb9++tGHDBixWxGJFkVJLjmEFYoMcCYuxmpsBQ5Cuu+Xu8+hk2SmoQ63L3ZFJ90w8cuD6YVi9KgWCTLrHuDB3uVwep5qqoQC1CASZdM8z+sQb9P6ZTbSjcD+KNnAvEGTSUfYHAkGQDoGhcBymeUGUHkUmHdS6wG5VlmFPOgjq/gAdEMQRbCCoZYEgkw5CIMikgxAIMukgBIJMOgiBIEgHIRBM84KgegSCTDoIgSCTzvcWXbNAv7bE0/oL0fSPG1F0+k4k3aoMp4rqmUSkL8LFAus563gCbb88h4ruR+hOCKoQCIJ07/CFDAP9rWg23a+GILgVCDLp3uGSghi6WREOMXAvEGTSPcrxUpzxtTRqQAQqEQgCck9WNzFQasksCEBVAkEm3WMjB8SBIB20QbhVmOYFbXBpQazLDYjlR25XhetGIJOyXuw5JntuF2TSNVd61EAlLpytqpa4sjCWJmSLMtdcidG2QKhV67CcxHVh2WJVLVcik65zjmVZ9QyRxmcKFHpSJMkoaGqOSHGnDPTGuXj53w1pLIvSnECk+yoPzRZPh2Un/r3x/YZZEifBxdLrcpOMB6JQyt3Fc7QokOb4OoJ0vdEs0LgTLRNGHQ/cnE07JZEcLo2SXTCtC2RCdmJ8aI64MNSSOI25YMik64COiqMxPy6M0cMI0oDCGmTSdeBWuUIcYbWBe6kGZrdacM/VIafF7sikazggb2nMYU8gJZURehJIVUhO0iPIpGt29HCdOBj/qDMXS3ohfIogXctLUDJd516xaeCvb8yhMv24WGekQP2VsFNJ3TDNq1G60r2qY4IkFLWLpIX3fMojIkEm3QsV0LMFlwuEcfS/P0N+ft29ypdf/qWnBEJhFiEJmXQIRDH7RQ2uP5fcW+zbt6PHBDIhJ/EluFhwsRRxzsl4OmgeTyZTiFdZXDzVUwLJd6uLhSBdO0H63huzdRWkM9fKreJAJl07SULGjy7H6iuTbhHXI5Ou8URhGBKFHCcKEZB7fxQ5iqUm/C41QSadk8WKrhHJJ4X6crFCLeKfkEnXiavl7HL31LJZutgPUrfcPSxXmIoNU3rcMGURsGGKpw1TyKTzKZTxmWJtnkT6OSOBxhyYRX6fPW9lML0C+3k9KdgUR47s4dSWW4kF3Gy5RSbdtXTUMEaM6NG84bVuRUNSAiThSCNNlkCDk/25FAfjqFE9XVO0IVtcW1uwoTLMInyEsj86FohSllaGU7mOyv5MPR7bIyRrXmcUjoNAQFR3h0BAVHeHQEBUdwchEFR3ByEQVHdHkA6BQCCY5oVAIBBk0tUrEH//Htwm/jyZSedWIMikc55JVxFdkkmHiwWBgAjSIRAQmXQQAkEmHYRAkEkHeRDIP0ujaOG5eJqWK8j8jfQzOyQHAkEmXfcC2XA12uaOuk1F0RAIgnRtC4Qd4XyifBZZ7kRaHefMRg5722wbjySsD9YX61MLx0OH5cwNnJwX1xXTvDoTyF3JeD8pjKHncx4Y+xTp51VXYuRrrM3CJk6ybUx22u2D/mLlPuquTc4RavqrVv2e9LthOcKqgPNRP0MmXQcCqZAMdsFZ28b/unTNf1QvGpceZ1cg48xx5NPOh4Z/PsVmG79tz1Prtj5q3ZPekD/4mZLaIZOu9dpXx+1XKBl3XFlFk9BMAw1+a4Tddo8Zhqkyk95EQbz5cLG0Xsk9S3TLUQfN8ddnErRS9seMIF3rZ4FYPC+QF3IFrQjkFjLpOAvE5UwsMGhFIBZk0rV+FsgJweMC+Vilp95a34uwBpl0rdffNXtWIKzS+9Hbs2hlYSwZThnkqWA2onx+LZr7KeDGFdxDsw3jwnIS18mnSWWLd9iIEmpJfMvtU8DIpHtwBMny/Ahii/8mBe88JxRb8BJIc3tCEUG6Nt0re/zgcozqBVLrfm3GNK+aC1Ef408cjBM5Po2qhfdS6dZTppBJd2/cEWoRuRQIY8/RfdWQSbfP3LlhSoPuxSGpcb7IpMO1UsIe/n1UkUm3OxrmCsF2jTs09aU+0kO5zQwcLhYHTBe5Fgdb1HirMlwLLtbdSVkv9lSS01ha93CCzMpP4UGQzve5g+7iHzk+z7CF97JWadIvr8EDqmJZcmTSvUSzd5aWKOX8swn1y+tVLpCD001JnezHHkdE/yYe1B17IkEm3U3BeTq/o8faK9Hy0nvVn3JrET5SvAxeeii/sfGwqqSY5DVk0j3sXh3jd/Rgm7V43+Ou8F7uSyyT+P1EizjdnkC+sDPk7x+TPrcvMukemr3K5DtA532PuyP3EZojvtvc9G6mggd3LcgoLAg49PD6FQTp7li5K6hGIE3tcVejQGSRWBKn2RpBLrXgAbK2vws0zu2PaV7t7P1whnV73NUuEHZstC2B3HFwtuVIkEn8cKxRiJFGkn8NyZgbGGw07IaROzmCZKtLIGyPu6oz6fY2VkkP5R4MEwJxlCGmOG4y6ferw525l5u2BHIdhsmRQOBiOUy2gNLhGCRb/M6ZIB3U8PZaZ5haNosbgRTcjXT8XnKFqbZGkK9gmDxtjlKPOLZwNs37j1uzHbwXYWlzOwMXwTCRKFSaKJyeK8huFU8jh5K6xNaJQqGUuVU2R476aVqzOAqGiaUmSnjmXiTXy0xePZOgLN7ISxymfL06pfhID+YcjJMTgXAah7xymu9CclfuR8jFJhTcy1EHSvgYlsE41VVq1NPccX0O1wJhFVcU3UuOmNzyfeWpcb7Ih/C1YYqnfAirsnijkt8l7iz/EZ1vUJQMnJif0NvRQnBrYZw8bZriRyDbrvE9euwpnqOs1E+OsNjhogsBh17sKT2YIhgnLxunRC7WZc3OF6ic4w1SN6WRLTJP0ehxOSRrXmfn6lwZxWgYJ8r+NKywmMbhdG5DLrkYp+ReqsbnGCa7qij1pzBOVDdh3HqN7zMN/3pjttLA/D9dVt8q6suoNmNNwl9gnPreRPV76c1czbE4WKJyUo6il8euFErxcWkROD9TUqdgk2EfjJOf3IgnRfLepViqrOY37mCbtKbmKhLH1pDvU9q6pVIi29SOmS19zWxNqC3MUM25W6Vg5KhmhRlaUavWHjgoxzAHs1scBe4ZclUOl4sjJt9AxrIoboVRUhmuNCA/F2ZJnOTRs0BC0wy9gk3iamyr5ad2lquCd1alZM2VGG6PNGBJQJbnCM+ze7+sSslKr56RPj7D0K92WQrWbnEiFLYsxZG1W2zEYMszeC0herUiQv77FGTIz7EDcRSVEPUYKMUnyGgYIY0qyVIAuVN6WMdrdyZiuYqXgvixRwX5KOjxmTWLHdnORLZchfnrEdLb9+XTCZKLEiv78GfvRXA0QsykmxXhlF8eST8UR9G6i9H0q7x4Cm10H2HZQoUkhmsSj0/IFnZOyBFeDctNGNoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsI3/BxVeQNnL1kBuAAAAAElFTkSuQmCC"},64233:(e,t,n)=>{n.d(t,{A:()=>r});let r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAT3UlEQVR42u1dCVQVV5pWXNt2N0czykl33KImZ7IgKgqIghq3KCDK+qowCek2c2K0Mx3idBxakzYxJnZiq3Gf6Bg7UdN2R51MxnTSia3gew9Rwccm7oqiiIK4sPxTt1hEHo9XvPVW1fed852Dr+67UNb/1f3/+9/731atAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8i2CxGjDUJXzMGmcSZnmoHAF7B6GMJvYPNwq5gk1AmMS/YJMbaahtkNsRLbeghmoU4d7cDAO+NCEbhQCMjrZbe5q81bhdyVOwuXbtqZdDSZ+yau9oBgNcgGeIvmzDQJkUy1ix8ZKMtsWvuagcAXsNYs/iyLSNlIgk2GebLQjKJQ6R/32+mbcWYI8KTrm6HJwR4170yCV80Y6T1I4kklH122lFNG9e2wxMC3Ao/U1KnQLPgF2SK/xeri5TiIxlikX1DBXVANpoXSy/DzGCjYfdYs2FRiFkcxWxEu/GF0RAm3fT1Bv8JJyV+LLlV08ccnNuFCQeGAdrheWkkXxaSGueruZFDurlrzfn4QSbDGRgAqJD3JK4NMcU8oo3RIz1hOB4q6AZeCzKK0aoXCIs58DBBt9Esfip5Ke3UPkN1Eg8TdB8N+5grr+JRxPAJHiLoTgaZhf97MiuqvVqTgNPxEEEPcK0qBTIyNa6rnWw1CLooJjHMUZc6KMWnNs9xDg8Q9ACLQtMMvbhfeFi7tuoLZMhBz1NczaUw2H4OFizhAYFe5l0uM+61m53wgMAWM+C7aBr425Ey2c8umPpdxmO+oxQPWz8cvnOmTGf7Gf1DDHXs25lYxMrIfmafOdnvOe4WONZsk4XhaD7nkJpAPQN96w2a/cw+c7S/QYsC6vuq46D/CHD+7zQaRvDmYsXVbG6CEWmZQ5YGWRk0+8zR/phb1bg/9pkLgvVk/twso+EViETbfPw1PyuDHrDQ36n4o6GL1eHRn7skDhlrEnZyuvbKMN/TIglKM9AzmyfLbzL2sBjZz89sniJfg2G7Nvbwad+m3qB9OrQh/z0RTschzK1yXZAu8zi/CxQ9NJL4fT6d+kwdQG27drB6q9WxXbcO1GfaAPL78wswcBfx6Y2T6ZHxv5DJfuY1acj5Kl55JHHPtOCBaOozZQC18mltUxhWlNoyobjwDQVyng/hVhyBaYbBrEKhW0aNL2Y85LO2lB37daHhX86AAemAPC4z6R5sEt9j6nWXONr8vJ3D4qhj287tIRIIxMP7PmrKd151p1vV3MjRtmt7eiT0F+QbN4z6xQ6T/eO2XdrbbP8z3y5wtyAQT+VAxAh336wcczQVhPfsKM+ANJWsYp+xRFS7Hh2b/C6LSWBIEIgnsuh73T1b1VRA3ql/dxq5d5bd74/4OlJu21TgjtktCMT9uwbdFJDXjx5TBzQ5cigRR71I/hZJ7bpbTwf3mT4QxgSBuHtbrSHcnUlAlstwxXqdgcmjmsyTIJkIgag2SGcZ8qYCckcWyAUdTpBnsBr398yWKTAoCESd07xD3rFeHMdmqxztj81uNe5v6B+CYVAQiAeD9qPiIOkP/NIVN9l//nArg/ZNeNLh/nzjn7Tqr//rw2FQEIg6M+lN7RcY/LvR3PQHupdh6S9R+LH5ZMh8i17NfoeS81bSO6fX0cfn/ps2X/wL7bzyv/TNtYP0z5KjdLw0hwrKL1DR/Rt0r+q+Plys0d/HyMtDGib4nNlx5ur+QPcZuLPQTSa9bjk0oyuM2dX9adm4Zx57jeIzk+lXliX0Ru4KSjm1hlac/S/69MKXtP3yXvrr1b/Td8WplHbzOGWV5dPZO5fo+v0Slxi4ZgTiiUw66BoD/32BPQO/zI2Ba0cgbs6kg9aMPfFbWn5mM/258H80a+CaEYi7M+ngA7JR4ERpHgFqEogbM+lgDSelv0LfFx+B1SNIBxtzWsarlH27ABavZoF4YsOUHhliEuX4AlCOwsJC2rVrF7+JwjHGuU8Em4X9MHDn+afzOzRtzGVlZbR69WqKjY2lqKgoev/996m4uNihvqqrqyklJYU6dKhf3Kq/Pel6izuKK246bYQXLlygvXv30ldffUWZmZlO9cX6CAwMpI4dO1Lbtm3pueeeo61btzrUV1ZWFj3++ONWKxseffRRMpvNLe7vzTffrClF5ONDEydOhIuldb53ZqNTxpyfn08RERFWBsiM2mQytbi/+fPn29zCnJSU1KK+ioqKyNe3poTpU089RRs3bqTt27dTQEBAvUiuXr2quL8ff/xRFgYT7e7duxGk64E/FBsdFsfhw4epR48eNTsvO3WioKAgmjRpEvXu3Vv+rHPnzvTTTz8p7u/dd9+tqXwouS/Lly+nS5cuUUlJCa1fv17ui11j7pFSTJs2Tf4O+7tu3bpV//ndu3fr3v40Y8YMRX1VVFTQkCFD5O8sW7YMmXS98MLdQofEYbFYqFu3brLBsBGEBa11KC0tpcTERPkaa8NGGXs4ePCg/HZu06YN7du3z+r6/v3769/e6enpdvvbs2dPTeHrnj1l968xLl68SN2712yR/vbbb+3299lnn8ltn3jiCbp37x4y6XphedWdFouDBbiDBw+WDWb27NlUWVlp1aaqqooiIyPlNsOHD3/IqBrj9u3bNGjQILnt4sWLbbZbuHCh3Mbf37/J31kH9rvq+mPBuS2w0Yi18fPzk4NvW2C/iwmDtd22bRsy6RAINWvM48aNq48z2L9tgblH/fv3l9suWLDAZrt58+bJbZ5++ulmhcRGpscee8yu4a9YsUJuM2zYMNk1soXy8nLq16+f3Hbnzp0227EJAtZm4MCBVv0hkw4XS8aNGzdkV4S9bZmxMMM6f/683e+lpaVR+/Y1W5A//PBDq+vr1q2Tr7E2GRkZil2nrl27Um5ubpOTBuwaa/PNN9/Y7a/u97MRgsUmjcE+Y8JgbbZs2YJMut6oZGnJ6NGjHz5bQzKYggLlWXf2BmbxA/suC+LZbNKOHTsoLi6OWrduLXPz5s2K+2P5DNYXC5rz8h6sGbt8+bI8qrFrrI3S4JuNNOw7ycnJVtfffvvtZkcjTPNqnMtOb7BrRGPGjJFnlpiRfPDBB826VbbABNGrVy/rii/t2tGqVata7OY9++yz8ve7dOkiC41NAdfNng0dOlR2x5TCaDTKfwf77tKlS2UhsJiEuXFs0oCJ+9ChQ+pYauKOPel65sT0JJckCpXmJVhgzLLZM2fOpEWLFj00ArR0oqCp/AuLj9hI0lIwkbKRrG7mqy42YVyyZIl61mJhqYnruercdtUuI2HTzZs2baK1a9fSkSPOrURm8U1droOxb9++tGHDBixWxGJFkVJLjmEFYoMcCYuxmpsBQ5Cuu+Xu8+hk2SmoQ63L3ZFJ90w8cuD6YVi9KgWCTLrHuDB3uVwep5qqoQC1CASZdM8z+sQb9P6ZTbSjcD+KNnAvEGTSUfYHAkGQDoGhcBymeUGUHkUmHdS6wG5VlmFPOgjq/gAdEMQRbCCoZYEgkw5CIMikgxAIMukgBIJMOgiBIEgHIRBM84KgegSCTDoIgSCTzvcWXbNAv7bE0/oL0fSPG1F0+k4k3aoMp4rqmUSkL8LFAus563gCbb88h4ruR+hOCKoQCIJ07/CFDAP9rWg23a+GILgVCDLp3uGSghi6WREOMXAvEGTSPcrxUpzxtTRqQAQqEQgCck9WNzFQasksCEBVAkEm3WMjB8SBIB20QbhVmOYFbXBpQazLDYjlR25XhetGIJOyXuw5JntuF2TSNVd61EAlLpytqpa4sjCWJmSLMtdcidG2QKhV67CcxHVh2WJVLVcik65zjmVZ9QyRxmcKFHpSJMkoaGqOSHGnDPTGuXj53w1pLIvSnECk+yoPzRZPh2Un/r3x/YZZEifBxdLrcpOMB6JQyt3Fc7QokOb4OoJ0vdEs0LgTLRNGHQ/cnE07JZEcLo2SXTCtC2RCdmJ8aI64MNSSOI25YMik64COiqMxPy6M0cMI0oDCGmTSdeBWuUIcYbWBe6kGZrdacM/VIafF7sikazggb2nMYU8gJZURehJIVUhO0iPIpGt29HCdOBj/qDMXS3ohfIogXctLUDJd516xaeCvb8yhMv24WGekQP2VsFNJ3TDNq1G60r2qY4IkFLWLpIX3fMojIkEm3QsV0LMFlwuEcfS/P0N+ft29ypdf/qWnBEJhFiEJmXQIRDH7RQ2uP5fcW+zbt6PHBDIhJ/EluFhwsRRxzsl4OmgeTyZTiFdZXDzVUwLJd6uLhSBdO0H63huzdRWkM9fKreJAJl07SULGjy7H6iuTbhHXI5Ou8URhGBKFHCcKEZB7fxQ5iqUm/C41QSadk8WKrhHJJ4X6crFCLeKfkEnXiavl7HL31LJZutgPUrfcPSxXmIoNU3rcMGURsGGKpw1TyKTzKZTxmWJtnkT6OSOBxhyYRX6fPW9lML0C+3k9KdgUR47s4dSWW4kF3Gy5RSbdtXTUMEaM6NG84bVuRUNSAiThSCNNlkCDk/25FAfjqFE9XVO0IVtcW1uwoTLMInyEsj86FohSllaGU7mOyv5MPR7bIyRrXmcUjoNAQFR3h0BAVHeHQEBUdwchEFR3ByEQVHdHkA6BQCCY5oVAIBBk0tUrEH//Htwm/jyZSedWIMikc55JVxFdkkmHiwWBgAjSIRAQmXQQAkEmHYRAkEkHeRDIP0ujaOG5eJqWK8j8jfQzOyQHAkEmXfcC2XA12uaOuk1F0RAIgnRtC4Qd4XyifBZZ7kRaHefMRg5722wbjySsD9YX61MLx0OH5cwNnJwX1xXTvDoTyF3JeD8pjKHncx4Y+xTp51VXYuRrrM3CJk6ybUx22u2D/mLlPuquTc4RavqrVv2e9LthOcKqgPNRP0MmXQcCqZAMdsFZ28b/unTNf1QvGpceZ1cg48xx5NPOh4Z/PsVmG79tz1Prtj5q3ZPekD/4mZLaIZOu9dpXx+1XKBl3XFlFk9BMAw1+a4Tddo8Zhqkyk95EQbz5cLG0Xsk9S3TLUQfN8ddnErRS9seMIF3rZ4FYPC+QF3IFrQjkFjLpOAvE5UwsMGhFIBZk0rV+FsgJweMC+Vilp95a34uwBpl0rdffNXtWIKzS+9Hbs2hlYSwZThnkqWA2onx+LZr7KeDGFdxDsw3jwnIS18mnSWWLd9iIEmpJfMvtU8DIpHtwBMny/Ahii/8mBe88JxRb8BJIc3tCEUG6Nt0re/zgcozqBVLrfm3GNK+aC1Ef408cjBM5Po2qhfdS6dZTppBJd2/cEWoRuRQIY8/RfdWQSbfP3LlhSoPuxSGpcb7IpMO1UsIe/n1UkUm3OxrmCsF2jTs09aU+0kO5zQwcLhYHTBe5Fgdb1HirMlwLLtbdSVkv9lSS01ha93CCzMpP4UGQzve5g+7iHzk+z7CF97JWadIvr8EDqmJZcmTSvUSzd5aWKOX8swn1y+tVLpCD001JnezHHkdE/yYe1B17IkEm3U3BeTq/o8faK9Hy0nvVn3JrET5SvAxeeii/sfGwqqSY5DVk0j3sXh3jd/Rgm7V43+Ou8F7uSyyT+P1EizjdnkC+sDPk7x+TPrcvMukemr3K5DtA532PuyP3EZojvtvc9G6mggd3LcgoLAg49PD6FQTp7li5K6hGIE3tcVejQGSRWBKn2RpBLrXgAbK2vws0zu2PaV7t7P1whnV73NUuEHZstC2B3HFwtuVIkEn8cKxRiJFGkn8NyZgbGGw07IaROzmCZKtLIGyPu6oz6fY2VkkP5R4MEwJxlCGmOG4y6ferw525l5u2BHIdhsmRQOBiOUy2gNLhGCRb/M6ZIB3U8PZaZ5haNosbgRTcjXT8XnKFqbZGkK9gmDxtjlKPOLZwNs37j1uzHbwXYWlzOwMXwTCRKFSaKJyeK8huFU8jh5K6xNaJQqGUuVU2R476aVqzOAqGiaUmSnjmXiTXy0xePZOgLN7ISxymfL06pfhID+YcjJMTgXAah7xymu9CclfuR8jFJhTcy1EHSvgYlsE41VVq1NPccX0O1wJhFVcU3UuOmNzyfeWpcb7Ih/C1YYqnfAirsnijkt8l7iz/EZ1vUJQMnJif0NvRQnBrYZw8bZriRyDbrvE9euwpnqOs1E+OsNjhogsBh17sKT2YIhgnLxunRC7WZc3OF6ic4w1SN6WRLTJP0ehxOSRrXmfn6lwZxWgYJ8r+NKywmMbhdG5DLrkYp+ReqsbnGCa7qij1pzBOVDdh3HqN7zMN/3pjttLA/D9dVt8q6suoNmNNwl9gnPreRPV76c1czbE4WKJyUo6il8euFErxcWkROD9TUqdgk2EfjJOf3IgnRfLepViqrOY37mCbtKbmKhLH1pDvU9q6pVIi29SOmS19zWxNqC3MUM25W6Vg5KhmhRlaUavWHjgoxzAHs1scBe4ZclUOl4sjJt9AxrIoboVRUhmuNCA/F2ZJnOTRs0BC0wy9gk3iamyr5ad2lquCd1alZM2VGG6PNGBJQJbnCM+ze7+sSslKr56RPj7D0K92WQrWbnEiFLYsxZG1W2zEYMszeC0herUiQv77FGTIz7EDcRSVEPUYKMUnyGgYIY0qyVIAuVN6WMdrdyZiuYqXgvixRwX5KOjxmTWLHdnORLZchfnrEdLb9+XTCZKLEiv78GfvRXA0QsykmxXhlF8eST8UR9G6i9H0q7x4Cm10H2HZQoUkhmsSj0/IFnZOyBFeDctNGNoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsI3/BxVeQNnL1kBuAAAAAElFTkSuQmCC"},79430:(e,t,n)=>{n.r(t),n.d(t,{AdmonitionWithoutHeading:()=>O,TestLink:()=>g,assets:()=>y,contentTitle:()=>m,default:()=>v,frontMatter:()=>j,metadata:()=>r,toc:()=>A});let r=JSON.parse('{"type":"mdx","permalink":"/tests/pages/markdown-tests-mdx","source":"@site/_dogfooding/_pages tests/markdown-tests-mdx.mdx","title":"Markdown Page tests title","description":"Markdown Page tests description","frontMatter":{"title":"Markdown Page tests title","description":"Markdown Page tests description","wrapperClassName":"docusaurus-markdown-example"},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/markdown-tests-mdx.mdx","unlisted":false}');var o=n(62540),i=n(43023),c=n(27446),s=n(15995),l=n(63696);function a(){let[e,t]=(0,l.useState)(!1);return(0,o.jsxs)("div",{children:[(0,o.jsx)("p",{children:"MyComponent rendered !"}),(0,o.jsxs)("p",{children:["bool=",e?"true":"false"]}),(0,o.jsx)("p",{children:(0,o.jsx)("button",{onClick:()=>t(e=>!e),children:"toggle bool"})})]})}var u=n(70361),d=n(55887),b=n(89585),p=n(23572),f=n(55640),h=n(36372);let j={title:"Markdown Page tests title",description:"Markdown Page tests description",wrapperClassName:"docusaurus-markdown-example"},m="Markdown .mdx tests",y={};function O(e){return(0,o.jsx)(f.A,{...e,type:"info",icon:null,title:null,children:"Admonition content without heading"})}function g({noCheck:e,...t}){return(0,o.jsx)(h.A,{...t,"data-noBrokenLinkCheck":e,children:(e?"\u274C":"\u2705")+" "+(t.to??t.href)+(t.target?` (target=${t.target})`:"")})}let A=[{value:"Using absolute path",id:"using-absolute-path",level:3},{value:"Tab",id:"tab",level:3},{value:"Comments",id:"comments",level:2},{value:"Import code block from source code file",id:"import-code-block-from-source-code-file",level:2},{value:"Test",id:"test",level:2},{value:"Code block test",id:"code-block-test",level:2},{value:"Mermaid",id:"mermaid",level:2},{value:"Custom heading ID",id:"custom",level:2},{value:"Weird heading",id:"\u4F60\u597D",level:3},{value:"Weird heading",id:"2022.1.1",level:3},{value:"Weird heading",id:"a#b",level:3},{value:"Weird heading",id:"a b",level:3},{value:"Weird heading",id:"a{b",level:3},{value:"Pipe",id:"pipe",level:2},{value:"Images edge cases",id:"images-edge-cases",level:2},{value:"Details",id:"details",level:2},{value:"Task list",id:"task-list",level:2},{value:"Emojis",id:"emojis",level:2},{value:"Admonitions",id:"admonitions",level:2},{value:"Linking",id:"linking",level:2},{value:"Linking to assets",id:"linking-to-assets",level:3},{value:"Linking to non-SPA page hosted within website",id:"linking-to-non-spa-page-hosted-within-website",level:3},{value:"Linking to non-SPA page with Link component",id:"linking-to-non-spa-page-with-link-component",level:3},{value:"Linking to JSON",id:"linking-to-json",level:3}];function x(e){let t={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",input:"input",li:"li",mdxAdmonitionTitle:"mdxAdmonitionTitle",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("button",{onClick:()=>alert("unsafe :s"),children:"Should not alert"}),"\n",(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"markdown-mdx-tests",children:"Markdown .mdx tests"})}),"\n",(0,o.jsx)(t.p,{children:"This is a page generated from Markdown to illustrate the Markdown page feature and test some edge cases."}),"\n",(0,o.jsx)(t.admonition,{type:"info",children:(0,o.jsx)(t.p,{children:"Useful information."})}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",metastring:"live",live:!0,children:"function Button() {\n return (\n <button type=\"button\" onClick={() => alert('hey')}>\n Click me!\n </button>\n );\n}\n"})}),"\n",(0,o.jsx)(t.h3,{id:"using-absolute-path",children:"Using absolute path"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{src:n(64233).A+"",width:"200",height:"200"})}),"\n",(0,o.jsx)(t.h3,{id:"tab",children:"Tab"}),"\n","\n","\n",(0,o.jsxs)(c.A,{children:[(0,o.jsx)(s.A,{value:"apple",label:"Apple",default:!0,children:(0,o.jsx)(t.p,{children:"This is an apple \u{1F34E}"})}),(0,o.jsx)(s.A,{value:"orange",label:"Orange",children:(0,o.jsx)(t.p,{children:"This is an orange \u{1F34A}"})}),(0,o.jsx)(s.A,{value:"banana",label:"Banana",children:(0,o.jsx)(t.p,{children:"This is a banana \u{1F34C}"})})]}),"\n",(0,o.jsx)(t.h2,{id:"comments",children:"Comments"}),"\n",(0,o.jsx)(t.p,{children:"Html comment: "}),"\n",(0,o.jsx)(t.p,{children:"Html comment multi-line:"}),"\n",(0,o.jsx)(t.p,{children:"MDX comment: "}),"\n",(0,o.jsx)(t.p,{children:"MDX comment multi-line:"}),"\n","\n",(0,o.jsx)(t.h2,{id:"import-code-block-from-source-code-file",children:"Import code block from source code file"}),"\n","\n","\n",(0,o.jsx)(t.p,{children:"Let's say you have a React component."}),"\n",(0,o.jsx)(t.p,{children:"You can import and use it in MDX:"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",metastring:'title="myMarkdownFile.mdx"',children:"import MyComponent from './myComponent';\n\n<MyComponent />;\n"})}),"\n",(0,o.jsx)(u.A,{children:(0,o.jsx)(a,{})}),"\n",(0,o.jsxs)(t.p,{children:["But you can also display its source code directly in MDX, thanks to ",(0,o.jsx)(t.a,{href:"https://webpack.js.org/loaders/raw-loader/",children:"Webpack raw-loader"})]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",metastring:'title="myMarkdownFile.mdx"',children:"import CodeBlock from '@theme/CodeBlock';\n\nimport MyComponentSource from '!!raw-loader!./myComponent';\n\n<CodeBlock className=\"language-jsx\">{MyComponentSource}</CodeBlock>;\n"})}),"\n","\n","\n",(0,o.jsx)(u.A,{children:(0,o.jsx)(d.A,{className:"language-jsx",children:b.A})}),"\n",(0,o.jsx)(t.h2,{id:"test",children:"Test"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",metastring:"live",live:!0,children:"function Demo() {\n useEffect(() => console.log('mount'), []);\n return null;\n}\n"})}),"\n",(0,o.jsx)(t.h2,{id:"code-block-test",children:"Code block test"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-js",metastring:'title="Title"',children:"function Clock(props) {\n const [date, setDate] = useState(new Date());\n useEffect(() => {\n var timerID = setInterval(() => tick(), 1000);\n\n return function cleanup() {\n clearInterval(timerID);\n };\n });\n\n function tick() {\n setDate(new Date());\n }\n\n return (\n <div>\n <h2>It is {date.toLocaleTimeString()}.</h2>\n // highlight-start\n {/* prettier-ignore */}\n long long long long long long long long long long long long line\n {/* prettier-ignore */}\n // highlight-end\n </div>\n );\n}\n"})}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",metastring:"live",live:!0,children:"function Clock(props) {\n const [date, setDate] = useState(new Date());\n useEffect(() => {\n var timerID = setInterval(() => tick(), 1000);\n\n return function cleanup() {\n clearInterval(timerID);\n };\n });\n\n function tick() {\n setDate(new Date());\n }\n\n return (\n <div>\n <h2>It is {date.toLocaleTimeString()}.</h2>\n </div>\n );\n}\n"})}),"\n",(0,o.jsx)(t.h2,{id:"mermaid",children:"Mermaid"}),"\n",(0,o.jsx)(t.mermaid,{value:"sequenceDiagram\n participant Alice\n participant Bob\n Alice->>John: Hello John, how are you?\n loop Health check\n John->>John: Fight against hypochondria\n end\n Note right of John: Rational thoughts <br/>prevail!\n John-->>Alice: Great!\n John->>Bob: How about you?\n Bob-->>John: Jolly good!"}),"\n",(0,o.jsx)(t.h2,{id:"custom",children:"Custom heading ID"}),"\n",(0,o.jsx)(t.h3,{id:"\u4F60\u597D",children:"Weird heading"}),"\n",(0,o.jsx)(t.h3,{id:"2022.1.1",children:"Weird heading"}),"\n",(0,o.jsx)(t.h3,{id:"a#b",children:"Weird heading"}),"\n",(0,o.jsx)(t.h3,{id:"a b",children:"Weird heading"}),"\n",(0,o.jsx)(t.h3,{id:"a{b",children:"Weird heading"}),"\n",(0,o.jsx)(t.h2,{id:"pipe",children:"Pipe"}),"\n",(0,o.jsxs)(t.p,{children:["Code tag + double pipe: ",(0,o.jsx)("code",{children:"||"})]}),"\n",(0,o.jsxs)(t.p,{children:["Code tag + double pipe: ",(0,o.jsx)("code",{children:"||"})]}),"\n",(0,o.jsx)(t.h2,{id:"images-edge-cases",children:"Images edge cases"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{src:n(89407).A+"",width:"200",height:"200"})}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{src:n(71580).A+"",width:"2282",height:"1066"})}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{src:n(49046).A+"",width:"200",height:"200"})}),"\n",(0,o.jsx)(t.h2,{id:"details",children:"Details"}),"\n",(0,o.jsx)(p.A,{children:(0,o.jsx)(t.p,{children:"Details without a summary"})}),"\n","\n",(0,o.jsx)(p.A,{summary:"My Headline",children:"Some Text"}),"\n",(0,o.jsx)(p.A,{children:"Some Text"}),"\n",(0,o.jsx)(t.p,{children:"This is a fragment:"}),"\n",(0,o.jsx)(o.Fragment,{children:"Hello"}),"\n",(0,o.jsx)(t.p,{children:"It should work :)"}),"\n",(0,o.jsx)(t.h2,{id:"task-list",children:"Task list"}),"\n",(0,o.jsx)(t.p,{children:"A list:"}),"\n",(0,o.jsxs)(t.ul,{className:"contains-task-list",children:["\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Simple"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Tasks"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Has simple"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Styles"]}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"Another list:"}),"\n",(0,o.jsxs)(t.ul,{className:"contains-task-list",children:["\n",(0,o.jsxs)(t.li,{children:["Nested","\n",(0,o.jsxs)(t.ul,{className:"contains-task-list",children:["\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Tasks"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Should be well-formatted"]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","No matter"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","How weird"]}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"Can be arbitrarily nested:"}),"\n",(0,o.jsxs)(t.ul,{className:"contains-task-list",children:["\n",(0,o.jsxs)(t.li,{children:["Level","\n",(0,o.jsxs)(t.ul,{className:"contains-task-list",children:["\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Task"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Task"]}),"\n",(0,o.jsxs)(t.li,{children:["Another level","\n",(0,o.jsxs)(t.ul,{className:"contains-task-list",children:["\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Task"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Task"]}),"\n",(0,o.jsxs)(t.li,{children:["Deeper","\n",(0,o.jsxs)(t.ul,{className:"contains-task-list",children:["\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Task"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Task"]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Task"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Task"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{className:"task-list-item",children:[(0,o.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Task"]}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"emojis",children:"Emojis"}),"\n",(0,o.jsxs)(t.p,{children:["Emojis in this text will be replaced with ",(0,o.jsx)(t.a,{href:"https://www.npmjs.com/package/remark-emoji",children:"remark-emoji"}),": ","\u{1F436}"," ","\u{1F44D}"]}),"\n",(0,o.jsx)(t.h2,{id:"admonitions",children:"Admonitions"}),"\n",(0,o.jsxs)(t.admonition,{type:"warning",children:[(0,o.jsxs)(t.mdxAdmonitionTitle,{children:["Interpolated ",(0,o.jsx)(t.code,{children:"title"})," with a ",(0,o.jsx)("button",{style:{color:"red"},onClick:()=>alert("it works"),children:"button"})," (old syntax)"]}),(0,o.jsx)(t.p,{children:"Admonition body"})]}),"\n",(0,o.jsxs)(t.admonition,{type:"warning",children:[(0,o.jsxs)(t.mdxAdmonitionTitle,{children:["Interpolated ",(0,o.jsx)(t.code,{children:"title"})," with a ",(0,o.jsx)("button",{style:{color:"red"},onClick:()=>alert("it works"),children:"button"})," (directive label syntax)"]}),(0,o.jsx)(t.p,{children:"Admonition body"})]}),"\n",(0,o.jsx)(t.admonition,{type:"important",children:(0,o.jsxs)(t.p,{children:["Admonition alias ",(0,o.jsx)(t.code,{children:":::important"})," should have Important title"]})}),"\n",(0,o.jsxs)(t.admonition,{title:"title",type:"note",children:[(0,o.jsxs)(t.p,{children:["Some ",(0,o.jsx)(t.strong,{children:"content"})," with ",(0,o.jsx)(t.em,{children:"Markdown"})," ",(0,o.jsx)(t.code,{children:"syntax"}),"."]}),(0,o.jsxs)(t.admonition,{title:"nested Title",type:"note",children:[(0,o.jsx)(t.admonition,{title:"very nested Title",type:"tip",children:(0,o.jsxs)(t.p,{children:["Some ",(0,o.jsx)(t.strong,{children:"content"})," with ",(0,o.jsx)(t.em,{children:"Markdown"})," ",(0,o.jsx)(t.code,{children:"syntax"}),"."]})}),(0,o.jsxs)(t.p,{children:["Some ",(0,o.jsx)(t.strong,{children:"content"})," with ",(0,o.jsx)(t.em,{children:"Markdown"})," ",(0,o.jsx)(t.code,{children:"syntax"}),"."]})]}),(0,o.jsx)(t.p,{children:"hey"})]}),"\n",(0,o.jsxs)(t.admonition,{title:"Use tabs in admonitions",type:"tip",children:[(0,o.jsx)(t.admonition,{title:"Admonition nested",type:"info",children:(0,o.jsx)(t.p,{children:"test"})}),(0,o.jsxs)(c.A,{children:[(0,o.jsx)(s.A,{value:"apple",label:"Apple",children:(0,o.jsx)(t.admonition,{title:"Admonition in tab",type:"note",children:(0,o.jsx)(t.p,{children:"test"})})}),(0,o.jsx)(s.A,{value:"orange",label:"Orange",children:"This is an orange \u{1F34A}"}),(0,o.jsx)(s.A,{value:"banana",label:"Banana",children:"This is a banana \u{1F34C}"})]})]}),"\n","\n","\n",(0,o.jsx)(O,{}),"\n",(0,o.jsx)(t.h2,{id:"linking",children:"Linking"}),"\n",(0,o.jsx)(t.p,{children:"This is a test page to see if Docusaurus Markdown features are working properly"}),"\n",(0,o.jsx)(t.h3,{id:"linking-to-assets",children:"Linking to assets"}),"\n",(0,o.jsxs)(t.p,{children:["See ",(0,o.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/3337",children:"#3337"})]}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(4329).A+"",children:"/someFile.pdf"})}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(16722).A+"",children:"/someFile.xyz"})}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(4329).A+"",children:"@site/_dogfooding/_asset-tests/someFile.pdf"})}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(16722).A+"",children:"@site/_dogfooding/_asset-tests/someFile.xyz"})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"linking-to-non-spa-page-hosted-within-website",children:"Linking to non-SPA page hosted within website"}),"\n",(0,o.jsxs)(t.p,{children:["See ",(0,o.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/3309",children:"#3309"})]}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{href:"pathname:///dogfooding/javadoc",children:"pathname:///dogfooding/javadoc"})}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{href:"pathname:///dogfooding/javadoc/index.html",children:"pathname:///dogfooding/javadoc/index.html"})}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{href:"pathname://../dogfooding/javadoc",children:"pathname://../dogfooding/javadoc"})}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{href:"pathname://../dogfooding/javadoc/index.html",children:"pathname://../dogfooding/javadoc/index.html"})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"linking-to-non-spa-page-with-link-component",children:"Linking to non-SPA page with Link component"}),"\n",(0,o.jsxs)(t.p,{children:["See ",(0,o.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/9758",children:"#9758"}),", these external urls should not be reported by the broken links checker:"]}),"\n","\n","\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(g,{to:"pathname:///dogfooding/javadoc#goodlink1"}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(g,{href:"pathname:///dogfooding/javadoc#goodlink2"}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(g,{to:"/dogfooding/javadoc#goodlink3",target:"_blank"}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(g,{href:"/dogfooding/javadoc#goodlink4",target:"_blank"}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"These links are broken (try to single click on them) and should be reported. We need to explicitly disable the broken link checker for them:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(g,{to:"/dogfooding/javadoc#badlink1",noCheck:!0}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(g,{href:"/dogfooding/javadoc#badlink2",noCheck:!0}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(g,{to:"/dogfooding/javadoc#badlink3",target:"_self",noCheck:!0}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(g,{href:"/dogfooding/javadoc#badlink4",target:"_self",noCheck:!0}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"linking-to-json",children:"Linking to JSON"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(48927).A+"",children:"./script.js"})}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(80830).A+"",children:"./data.json"})}),"\n"]}),"\n"]})]})}function v(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(x,{...e})}):x(e)}}}]); \ No newline at end of file diff --git a/assets/js/2d0d74c6.12862f09.js b/assets/js/2d0d74c6.12862f09.js deleted file mode 100644 index 2705c1b299..0000000000 --- a/assets/js/2d0d74c6.12862f09.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[64579],{98e3:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>t,toc:()=>c});let t=JSON.parse('{"id":"guides/whats-next","title":"What\'s next?","description":"Congratulations! You have understood most core features of Docusaurus now. You have:","source":"@site/docs/guides/whats-next.mdx","sourceDirName":"guides","slug":"/guides/whats-next","permalink":"/docs/guides/whats-next","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/whats-next.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"docs","previous":{"title":"Using Crowdin","permalink":"/docs/i18n/crowdin"},"next":{"title":"Advanced Tutorials","permalink":"/docs/advanced/"}}');var r=n(62540),o=n(43023);let a={},i="What's next?",d={},c=[];function l(e){let s={a:"a",code:"code",h1:"h1",header:"header",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.header,{children:(0,r.jsx)(s.h1,{id:"whats-next",children:"What's next?"})}),"\n",(0,r.jsx)(s.p,{children:"Congratulations! You have understood most core features of Docusaurus now. You have:"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"/docs/creating-pages",children:"Used the pages plugin"})," to create a standalone React / Markdown page"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"/docs/docs-introduction",children:"Used the docs plugin"})," to create documentation pages. This includes ",(0,r.jsx)(s.a,{href:"/docs/sidebar",children:"configuring the sidebar"}),", and even ",(0,r.jsx)(s.a,{href:"/docs/versioning",children:"versioning"})]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"/docs/blog",children:"Used the blog plugin"})," to create a fully featured blog"]}),"\n",(0,r.jsxs)(s.li,{children:["Tried your hands on ",(0,r.jsx)(s.a,{href:"/docs/markdown-features",children:"a range of Markdown features"}),", which are useful for all content plugins"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"/docs/styling-layout",children:"Used stylesheets"})," or ",(0,r.jsx)(s.a,{href:"/docs/swizzling",children:"swizzling"})," to customize your site's appearance"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"/docs/static-assets",children:"Included images and other assets"})," in your pages"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"/docs/search",children:"Added search"})," to your site"]}),"\n",(0,r.jsxs)(s.li,{children:["Understood how ",(0,r.jsx)(s.a,{href:"/docs/browser-support",children:"browser support"})," and ",(0,r.jsx)(s.a,{href:"/docs/seo",children:"SEO"})," are done through standard Docusaurus APIs"]}),"\n",(0,r.jsxs)(s.li,{children:["Learned about how ",(0,r.jsx)(s.a,{href:"/docs/using-plugins",children:"individual plugins"})," are installed and configured"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"/docs/deployment",children:"Deployed"})," your site to a content host"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"/docs/i18n/tutorial",children:"Internationalized"})," your site to include multiple languages"]}),"\n"]}),"\n",(0,r.jsxs)(s.p,{children:["At this point, you probably have a big ",(0,r.jsx)(s.code,{children:"docusaurus.config.js"})," already\u{1F604} However, you haven't written much code yet! Most of the features are implemented through calling encapsulated Docusaurus APIs. As you continue your journey, you can take three paths:"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Learn more advanced Docusaurus concepts. This will help you gain a deeper understand of what the APIs do."}),"\n",(0,r.jsxs)(s.li,{children:["Read about ",(0,r.jsx)(s.a,{href:"/docs/docusaurus-core",children:"all existing APIs"}),". Many of them have not been covered in the Guides!"]}),"\n",(0,r.jsxs)(s.li,{children:["Learn to ",(0,r.jsx)(s.a,{href:"/docs/api/plugin-methods/",children:"develop a plugin"})," to extend the functionality of your site."]}),"\n"]})]})}function u(e={}){let{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},43023:(e,s,n)=>{n.d(s,{R:()=>a,x:()=>i});var t=n(63696);let r={},o=t.createContext(r);function a(e){let s=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),t.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2d0d74c6.eb3a9cca.js b/assets/js/2d0d74c6.eb3a9cca.js new file mode 100644 index 0000000000..5a364f4910 --- /dev/null +++ b/assets/js/2d0d74c6.eb3a9cca.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[64579],{98e3:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>t,toc:()=>c});let t=JSON.parse('{"id":"guides/whats-next","title":"What\'s next?","description":"Congratulations! You have understood most core features of Docusaurus now. You have:","source":"@site/docs/guides/whats-next.mdx","sourceDirName":"guides","slug":"/guides/whats-next","permalink":"/docs/guides/whats-next","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/whats-next.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"docs","previous":{"title":"Using Crowdin","permalink":"/docs/i18n/crowdin"},"next":{"title":"Advanced Tutorials","permalink":"/docs/advanced/"}}');var r=n(62540),o=n(43023);let a={},i="What's next?",d={},c=[];function l(e){let s={a:"a",code:"code",h1:"h1",header:"header",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.header,{children:(0,r.jsx)(s.h1,{id:"whats-next",children:"What's next?"})}),"\n",(0,r.jsx)(s.p,{children:"Congratulations! You have understood most core features of Docusaurus now. You have:"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"/docs/creating-pages",children:"Used the pages plugin"})," to create a standalone React / Markdown page"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"/docs/docs-introduction",children:"Used the docs plugin"})," to create documentation pages. This includes ",(0,r.jsx)(s.a,{href:"/docs/sidebar",children:"configuring the sidebar"}),", and even ",(0,r.jsx)(s.a,{href:"/docs/versioning",children:"versioning"})]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"/docs/blog",children:"Used the blog plugin"})," to create a fully featured blog"]}),"\n",(0,r.jsxs)(s.li,{children:["Tried your hands on ",(0,r.jsx)(s.a,{href:"/docs/markdown-features",children:"a range of Markdown features"}),", which are useful for all content plugins"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"/docs/styling-layout",children:"Used stylesheets"})," or ",(0,r.jsx)(s.a,{href:"/docs/swizzling",children:"swizzling"})," to customize your site's appearance"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"/docs/static-assets",children:"Included images and other assets"})," in your pages"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"/docs/search",children:"Added search"})," to your site"]}),"\n",(0,r.jsxs)(s.li,{children:["Understood how ",(0,r.jsx)(s.a,{href:"/docs/browser-support",children:"browser support"})," and ",(0,r.jsx)(s.a,{href:"/docs/seo",children:"SEO"})," are done through standard Docusaurus APIs"]}),"\n",(0,r.jsxs)(s.li,{children:["Learned about how ",(0,r.jsx)(s.a,{href:"/docs/using-plugins",children:"individual plugins"})," are installed and configured"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"/docs/deployment",children:"Deployed"})," your site to a content host"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"/docs/i18n/tutorial",children:"Internationalized"})," your site to include multiple languages"]}),"\n"]}),"\n",(0,r.jsxs)(s.p,{children:["At this point, you probably have a big ",(0,r.jsx)(s.code,{children:"docusaurus.config.js"})," already\u{1F604} However, you haven't written much code yet! Most of the features are implemented through calling encapsulated Docusaurus APIs. As you continue your journey, you can take three paths:"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Learn more advanced Docusaurus concepts. This will help you gain a deeper understand of what the APIs do."}),"\n",(0,r.jsxs)(s.li,{children:["Read about ",(0,r.jsx)(s.a,{href:"/docs/docusaurus-core",children:"all existing APIs"}),". Many of them have not been covered in the Guides!"]}),"\n",(0,r.jsxs)(s.li,{children:["Learn to ",(0,r.jsx)(s.a,{href:"/docs/api/plugin-methods/",children:"develop a plugin"})," to extend the functionality of your site."]}),"\n"]})]})}function u(e={}){let{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},43023:(e,s,n)=>{n.d(s,{R:()=>a,x:()=>i});var t=n(63696);let r={},o=t.createContext(r);function a(e){let s=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),t.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2f283cc0.143d3f36.js b/assets/js/2f283cc0.143d3f36.js deleted file mode 100644 index 222c2c6964..0000000000 --- a/assets/js/2f283cc0.143d3f36.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5942],{78056:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>d,toc:()=>a});let d=JSON.parse('{"id":"guides/docs/create-doc","title":"Create a doc","description":"Create a Markdown Document","source":"@site/docs/guides/docs/docs-create-doc.mdx","sourceDirName":"guides/docs","slug":"/create-doc","permalink":"/docs/create-doc","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/docs-create-doc.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"create-doc","description":"Create a Markdown Document","slug":"/create-doc"},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/docs/docs-introduction"},"next":{"title":"Sidebar","permalink":"/docs/sidebar"}}');var o=s(62540),t=s(43023);let r={id:"create-doc",description:"Create a Markdown Document",slug:"/create-doc"},i="Create a doc",c={},a=[{value:"Doc front matter",id:"doc-front-matter",level:2},{value:"Doc tags",id:"doc-tags",level:2},{value:"Organizing folder structure",id:"organizing-folder-structure",level:2},{value:"Document ID",id:"document-id",level:3},{value:"Doc URLs",id:"doc-urls",level:3},{value:"Sidebars",id:"sidebars",level:3}];function l(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"create-a-doc",children:"Create a doc"})}),"\n",(0,o.jsxs)(n.p,{children:["Create a Markdown file, ",(0,o.jsx)(n.code,{children:"greeting.md"}),", and place it under the ",(0,o.jsx)(n.code,{children:"docs"})," directory."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"website # root directory of your site\n\u251C\u2500\u2500 docs\n\u2502 \u2514\u2500\u2500 greeting.md\n\u251C\u2500\u2500 src\n\u2502 \u2514\u2500\u2500 pages\n\u251C\u2500\u2500 docusaurus.config.js\n\u251C\u2500\u2500 ...\n"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",children:"---\ndescription: Create a doc page with rich content.\n---\n\n# Hello from Docusaurus\n\nAre you ready to create the documentation site for your open source project?\n\n## Headers\n\nwill show up on the table of contents on the upper right\n\nSo that your users will know what this page is all about without scrolling down or even without reading too much.\n\n## Only h2 and h3 will be in the TOC by default.\n\nYou can configure the TOC heading levels either per-document or in the theme configuration.\n\nThe headers are well-spaced so that the hierarchy is clear.\n\n- lists will help you\n- present the key points\n- that you want your users to remember\n - and you may nest them\n - multiple times\n"})}),"\n",(0,o.jsxs)(n.admonition,{type:"note",children:[(0,o.jsxs)(n.p,{children:["All files prefixed with an underscore (",(0,o.jsx)(n.code,{children:"_"}),") under the ",(0,o.jsx)(n.code,{children:"docs"}),' directory are treated as "partial" pages and will be ignored by default.']}),(0,o.jsxs)(n.p,{children:["Read more about ",(0,o.jsx)(n.a,{href:"/docs/markdown-features/react#importing-markdown",children:"importing partial pages"}),"."]})]}),"\n",(0,o.jsx)(n.h2,{id:"doc-front-matter",children:"Doc front matter"}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.a,{href:"/docs/markdown-features#front-matter",children:"front matter"})," is used to provide additional metadata for your doc page. Front matter is optional\u2014Docusaurus will be able to infer all necessary metadata without the front matter. For example, the ",(0,o.jsx)(n.a,{href:"#doc-tags",children:"doc tags"})," feature introduced below requires using front matter. For all possible fields, see ",(0,o.jsx)(n.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-docs#markdown-front-matter",children:"the API documentation"}),"."]}),"\n",(0,o.jsx)(n.h2,{id:"doc-tags",children:"Doc tags"}),"\n",(0,o.jsxs)(n.p,{children:["Tags are declared in the front matter and introduce another dimension of categorization in addition to the ",(0,o.jsx)(n.a,{href:"/docs/sidebar",children:"docs sidebar"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["It is possible to define tags inline, or to reference predefined tags declared in a ",(0,o.jsx)(n.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-docs#tags-file",children:(0,o.jsx)(n.code,{children:"tags file"})})," (optional, usually ",(0,o.jsx)(n.code,{children:"docs/tags.yml"}),")."]}),"\n",(0,o.jsx)(n.p,{children:"In the following example:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"docusaurus"})," references a predefined tag key declared in ",(0,o.jsx)(n.code,{children:"docs/tags.yml"})]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"Releases"})," is an inline tag, because it does not exist in ",(0,o.jsx)(n.code,{children:"docs/tags.yml"})]}),"\n"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="docs/my-doc.md"',children:"---\ntags:\n - Releases\n - docusaurus\n---\n\n# Title\n\nContent\n"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yml",metastring:'title="docs/tags.yml"',children:"docusaurus:\n label: 'Docusaurus'\n permalink: '/docusaurus'\n description: 'Docs related to the Docusaurus framework'\n"})}),"\n",(0,o.jsxs)(n.admonition,{type:"tip",children:[(0,o.jsxs)(n.p,{children:["Tags can also be declared with ",(0,o.jsx)(n.code,{children:"tags: [Demo, Getting started]"}),"."]}),(0,o.jsxs)(n.p,{children:["Read more about all the possible ",(0,o.jsx)(n.a,{href:"https://www.w3schools.io/file/yaml-arrays/",children:"Yaml array syntaxes"}),"."]})]}),"\n",(0,o.jsx)(n.h2,{id:"organizing-folder-structure",children:"Organizing folder structure"}),"\n",(0,o.jsxs)(n.p,{children:["How the Markdown files are arranged under the ",(0,o.jsx)(n.code,{children:"docs"})," folder can have multiple impacts on Docusaurus content generation. However, most of them can be decoupled from the file structure."]}),"\n",(0,o.jsx)(n.h3,{id:"document-id",children:"Document ID"}),"\n",(0,o.jsxs)(n.p,{children:["Every document has a unique ",(0,o.jsx)(n.code,{children:"id"}),". By default, a document ",(0,o.jsx)(n.code,{children:"id"})," is the name of the document (without the extension) relative to the root docs directory."]}),"\n",(0,o.jsxs)(n.p,{children:["For example, the ID of ",(0,o.jsx)(n.code,{children:"greeting.md"})," is ",(0,o.jsx)(n.code,{children:"greeting"}),", and the ID of ",(0,o.jsx)(n.code,{children:"guide/hello.md"})," is ",(0,o.jsx)(n.code,{children:"guide/hello"}),"."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"website # Root directory of your site\n\u2514\u2500\u2500 docs\n \u251C\u2500\u2500 greeting.md\n \u2514\u2500\u2500 guide\n \u2514\u2500\u2500 hello.md\n"})}),"\n",(0,o.jsxs)(n.p,{children:["However, the ",(0,o.jsx)(n.strong,{children:"last part"})," of the ",(0,o.jsx)(n.code,{children:"id"})," can be defined by the user in the front matter. For example, if ",(0,o.jsx)(n.code,{children:"guide/hello.md"}),"'s content is defined as below, its final ",(0,o.jsx)(n.code,{children:"id"})," is ",(0,o.jsx)(n.code,{children:"guide/part1"}),"."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",children:"---\nid: part1\n---\n\nLorem ipsum\n"})}),"\n",(0,o.jsx)(n.p,{children:"The ID is used to refer to a document when hand-writing sidebars, or when using docs-related layout components or hooks."}),"\n",(0,o.jsx)(n.h3,{id:"doc-urls",children:"Doc URLs"}),"\n",(0,o.jsxs)(n.p,{children:["By default, a document's URL location is its file path relative to the ",(0,o.jsx)(n.code,{children:"docs"})," folder, with a few exceptions. Namely, if a file is named one the following, the file name won't be included in the URL:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Named as ",(0,o.jsx)(n.code,{children:"index"})," (case-insensitive): ",(0,o.jsx)(n.code,{children:"docs/Guides/index.md"})]}),"\n",(0,o.jsxs)(n.li,{children:["Named as ",(0,o.jsx)(n.code,{children:"README"})," (case-insensitive): ",(0,o.jsx)(n.code,{children:"docs/Guides/README.mdx"})]}),"\n",(0,o.jsxs)(n.li,{children:["Same name as parent folder: ",(0,o.jsx)(n.code,{children:"docs/Guides/Guides.md"})]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["In all cases, the default slug would only be ",(0,o.jsx)(n.code,{children:"/Guides"}),", without the ",(0,o.jsx)(n.code,{children:"/index"}),", ",(0,o.jsx)(n.code,{children:"/README"}),", or duplicate ",(0,o.jsx)(n.code,{children:"/Guides"})," segment."]}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsxs)(n.p,{children:["This convention is exactly the same as ",(0,o.jsx)(n.a,{href:"/docs/sidebar/autogenerated#category-index-convention",children:"the category index convention"}),". However, the ",(0,o.jsx)(n.code,{children:"isCategoryIndex"})," configuration does ",(0,o.jsx)(n.em,{children:"not"})," affect the document URL."]})}),"\n",(0,o.jsxs)(n.p,{children:["Use the ",(0,o.jsx)(n.code,{children:"slug"})," front matter to change a document's URL."]}),"\n",(0,o.jsx)(n.p,{children:"For example, suppose your site structure looks like this:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"website # Root directory of your site\n\u2514\u2500\u2500 docs\n \u2514\u2500\u2500 guide\n \u2514\u2500\u2500 hello.md\n"})}),"\n",(0,o.jsxs)(n.p,{children:["By default ",(0,o.jsx)(n.code,{children:"hello.md"})," will be available at ",(0,o.jsx)(n.code,{children:"/docs/guide/hello"}),". You can change its URL location to ",(0,o.jsx)(n.code,{children:"/docs/bonjour"}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",children:"---\nslug: /bonjour\n---\n\nLorem ipsum\n"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"slug"})," will be appended to the doc plugin's ",(0,o.jsx)(n.code,{children:"routeBasePath"}),", which is ",(0,o.jsx)(n.code,{children:"/docs"})," by default. See ",(0,o.jsx)(n.a,{href:"/docs/docs-introduction#docs-only-mode",children:"Docs-only mode"})," for how to remove the ",(0,o.jsx)(n.code,{children:"/docs"})," part from the URL."]}),"\n",(0,o.jsxs)(n.admonition,{type:"note",children:[(0,o.jsx)(n.p,{children:"It is possible to use:"}),(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["absolute slugs: ",(0,o.jsx)(n.code,{children:"slug: /mySlug"}),", ",(0,o.jsx)(n.code,{children:"slug: /"}),"..."]}),"\n",(0,o.jsxs)(n.li,{children:["relative slugs: ",(0,o.jsx)(n.code,{children:"slug: mySlug"}),", ",(0,o.jsx)(n.code,{children:"slug: ./../mySlug"}),"..."]}),"\n"]})]}),"\n",(0,o.jsxs)(n.p,{children:["If you want a document to be available at the root, and have a path like ",(0,o.jsx)(n.code,{children:"https://docusaurus.io/docs/"}),", you can use the slug front matter:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",children:"---\nid: my-home-doc\nslug: /\n---\n\nLorem ipsum\n"})}),"\n",(0,o.jsx)(n.h3,{id:"sidebars",children:"Sidebars"}),"\n",(0,o.jsxs)(n.p,{children:["When using ",(0,o.jsx)(n.a,{href:"/docs/sidebar/autogenerated",children:"autogenerated sidebars"}),", the file structure will determine the sidebar structure."]}),"\n",(0,o.jsxs)(n.p,{children:["Our recommendation for file system organization is: make your file system mirror the sidebar structure (so you don't need to handwrite your ",(0,o.jsx)(n.code,{children:"sidebars.js"})," file), and use the ",(0,o.jsx)(n.code,{children:"slug"})," front matter to customize URLs of each document."]})]})}function h(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>i});var d=s(63696);let o={},t=d.createContext(o);function r(e){let n=d.useContext(t);return d.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),d.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2f283cc0.e1fec2bc.js b/assets/js/2f283cc0.e1fec2bc.js new file mode 100644 index 0000000000..1cb5769f41 --- /dev/null +++ b/assets/js/2f283cc0.e1fec2bc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5942],{78056:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>d,toc:()=>a});let d=JSON.parse('{"id":"guides/docs/create-doc","title":"Create a doc","description":"Create a Markdown Document","source":"@site/docs/guides/docs/docs-create-doc.mdx","sourceDirName":"guides/docs","slug":"/create-doc","permalink":"/docs/create-doc","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/docs-create-doc.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"create-doc","description":"Create a Markdown Document","slug":"/create-doc"},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/docs/docs-introduction"},"next":{"title":"Sidebar","permalink":"/docs/sidebar"}}');var o=s(62540),t=s(43023);let r={id:"create-doc",description:"Create a Markdown Document",slug:"/create-doc"},i="Create a doc",c={},a=[{value:"Doc front matter",id:"doc-front-matter",level:2},{value:"Doc tags",id:"doc-tags",level:2},{value:"Organizing folder structure",id:"organizing-folder-structure",level:2},{value:"Document ID",id:"document-id",level:3},{value:"Doc URLs",id:"doc-urls",level:3},{value:"Sidebars",id:"sidebars",level:3}];function l(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"create-a-doc",children:"Create a doc"})}),"\n",(0,o.jsxs)(n.p,{children:["Create a Markdown file, ",(0,o.jsx)(n.code,{children:"greeting.md"}),", and place it under the ",(0,o.jsx)(n.code,{children:"docs"})," directory."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"website # root directory of your site\n\u251C\u2500\u2500 docs\n\u2502 \u2514\u2500\u2500 greeting.md\n\u251C\u2500\u2500 src\n\u2502 \u2514\u2500\u2500 pages\n\u251C\u2500\u2500 docusaurus.config.js\n\u251C\u2500\u2500 ...\n"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",children:"---\ndescription: Create a doc page with rich content.\n---\n\n# Hello from Docusaurus\n\nAre you ready to create the documentation site for your open source project?\n\n## Headers\n\nwill show up on the table of contents on the upper right\n\nSo that your users will know what this page is all about without scrolling down or even without reading too much.\n\n## Only h2 and h3 will be in the TOC by default.\n\nYou can configure the TOC heading levels either per-document or in the theme configuration.\n\nThe headers are well-spaced so that the hierarchy is clear.\n\n- lists will help you\n- present the key points\n- that you want your users to remember\n - and you may nest them\n - multiple times\n"})}),"\n",(0,o.jsxs)(n.admonition,{type:"note",children:[(0,o.jsxs)(n.p,{children:["All files prefixed with an underscore (",(0,o.jsx)(n.code,{children:"_"}),") under the ",(0,o.jsx)(n.code,{children:"docs"}),' directory are treated as "partial" pages and will be ignored by default.']}),(0,o.jsxs)(n.p,{children:["Read more about ",(0,o.jsx)(n.a,{href:"/docs/markdown-features/react#importing-markdown",children:"importing partial pages"}),"."]})]}),"\n",(0,o.jsx)(n.h2,{id:"doc-front-matter",children:"Doc front matter"}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.a,{href:"/docs/markdown-features#front-matter",children:"front matter"})," is used to provide additional metadata for your doc page. Front matter is optional\u2014Docusaurus will be able to infer all necessary metadata without the front matter. For example, the ",(0,o.jsx)(n.a,{href:"#doc-tags",children:"doc tags"})," feature introduced below requires using front matter. For all possible fields, see ",(0,o.jsx)(n.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-docs#markdown-front-matter",children:"the API documentation"}),"."]}),"\n",(0,o.jsx)(n.h2,{id:"doc-tags",children:"Doc tags"}),"\n",(0,o.jsxs)(n.p,{children:["Tags are declared in the front matter and introduce another dimension of categorization in addition to the ",(0,o.jsx)(n.a,{href:"/docs/sidebar",children:"docs sidebar"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["It is possible to define tags inline, or to reference predefined tags declared in a ",(0,o.jsx)(n.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-docs#tags-file",children:(0,o.jsx)(n.code,{children:"tags file"})})," (optional, usually ",(0,o.jsx)(n.code,{children:"docs/tags.yml"}),")."]}),"\n",(0,o.jsx)(n.p,{children:"In the following example:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"docusaurus"})," references a predefined tag key declared in ",(0,o.jsx)(n.code,{children:"docs/tags.yml"})]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"Releases"})," is an inline tag, because it does not exist in ",(0,o.jsx)(n.code,{children:"docs/tags.yml"})]}),"\n"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",metastring:'title="docs/my-doc.md"',children:"---\ntags:\n - Releases\n - docusaurus\n---\n\n# Title\n\nContent\n"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yml",metastring:'title="docs/tags.yml"',children:"docusaurus:\n label: 'Docusaurus'\n permalink: '/docusaurus'\n description: 'Docs related to the Docusaurus framework'\n"})}),"\n",(0,o.jsxs)(n.admonition,{type:"tip",children:[(0,o.jsxs)(n.p,{children:["Tags can also be declared with ",(0,o.jsx)(n.code,{children:"tags: [Demo, Getting started]"}),"."]}),(0,o.jsxs)(n.p,{children:["Read more about all the possible ",(0,o.jsx)(n.a,{href:"https://www.w3schools.io/file/yaml-arrays/",children:"Yaml array syntaxes"}),"."]})]}),"\n",(0,o.jsx)(n.h2,{id:"organizing-folder-structure",children:"Organizing folder structure"}),"\n",(0,o.jsxs)(n.p,{children:["How the Markdown files are arranged under the ",(0,o.jsx)(n.code,{children:"docs"})," folder can have multiple impacts on Docusaurus content generation. However, most of them can be decoupled from the file structure."]}),"\n",(0,o.jsx)(n.h3,{id:"document-id",children:"Document ID"}),"\n",(0,o.jsxs)(n.p,{children:["Every document has a unique ",(0,o.jsx)(n.code,{children:"id"}),". By default, a document ",(0,o.jsx)(n.code,{children:"id"})," is the name of the document (without the extension) relative to the root docs directory."]}),"\n",(0,o.jsxs)(n.p,{children:["For example, the ID of ",(0,o.jsx)(n.code,{children:"greeting.md"})," is ",(0,o.jsx)(n.code,{children:"greeting"}),", and the ID of ",(0,o.jsx)(n.code,{children:"guide/hello.md"})," is ",(0,o.jsx)(n.code,{children:"guide/hello"}),"."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"website # Root directory of your site\n\u2514\u2500\u2500 docs\n \u251C\u2500\u2500 greeting.md\n \u2514\u2500\u2500 guide\n \u2514\u2500\u2500 hello.md\n"})}),"\n",(0,o.jsxs)(n.p,{children:["However, the ",(0,o.jsx)(n.strong,{children:"last part"})," of the ",(0,o.jsx)(n.code,{children:"id"})," can be defined by the user in the front matter. For example, if ",(0,o.jsx)(n.code,{children:"guide/hello.md"}),"'s content is defined as below, its final ",(0,o.jsx)(n.code,{children:"id"})," is ",(0,o.jsx)(n.code,{children:"guide/part1"}),"."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",children:"---\nid: part1\n---\n\nLorem ipsum\n"})}),"\n",(0,o.jsx)(n.p,{children:"The ID is used to refer to a document when hand-writing sidebars, or when using docs-related layout components or hooks."}),"\n",(0,o.jsx)(n.h3,{id:"doc-urls",children:"Doc URLs"}),"\n",(0,o.jsxs)(n.p,{children:["By default, a document's URL location is its file path relative to the ",(0,o.jsx)(n.code,{children:"docs"})," folder, with a few exceptions. Namely, if a file is named one the following, the file name won't be included in the URL:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Named as ",(0,o.jsx)(n.code,{children:"index"})," (case-insensitive): ",(0,o.jsx)(n.code,{children:"docs/Guides/index.md"})]}),"\n",(0,o.jsxs)(n.li,{children:["Named as ",(0,o.jsx)(n.code,{children:"README"})," (case-insensitive): ",(0,o.jsx)(n.code,{children:"docs/Guides/README.mdx"})]}),"\n",(0,o.jsxs)(n.li,{children:["Same name as parent folder: ",(0,o.jsx)(n.code,{children:"docs/Guides/Guides.md"})]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["In all cases, the default slug would only be ",(0,o.jsx)(n.code,{children:"/Guides"}),", without the ",(0,o.jsx)(n.code,{children:"/index"}),", ",(0,o.jsx)(n.code,{children:"/README"}),", or duplicate ",(0,o.jsx)(n.code,{children:"/Guides"})," segment."]}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsxs)(n.p,{children:["This convention is exactly the same as ",(0,o.jsx)(n.a,{href:"/docs/sidebar/autogenerated#category-index-convention",children:"the category index convention"}),". However, the ",(0,o.jsx)(n.code,{children:"isCategoryIndex"})," configuration does ",(0,o.jsx)(n.em,{children:"not"})," affect the document URL."]})}),"\n",(0,o.jsxs)(n.p,{children:["Use the ",(0,o.jsx)(n.code,{children:"slug"})," front matter to change a document's URL."]}),"\n",(0,o.jsx)(n.p,{children:"For example, suppose your site structure looks like this:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"website # Root directory of your site\n\u2514\u2500\u2500 docs\n \u2514\u2500\u2500 guide\n \u2514\u2500\u2500 hello.md\n"})}),"\n",(0,o.jsxs)(n.p,{children:["By default ",(0,o.jsx)(n.code,{children:"hello.md"})," will be available at ",(0,o.jsx)(n.code,{children:"/docs/guide/hello"}),". You can change its URL location to ",(0,o.jsx)(n.code,{children:"/docs/bonjour"}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",children:"---\nslug: /bonjour\n---\n\nLorem ipsum\n"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"slug"})," will be appended to the doc plugin's ",(0,o.jsx)(n.code,{children:"routeBasePath"}),", which is ",(0,o.jsx)(n.code,{children:"/docs"})," by default. See ",(0,o.jsx)(n.a,{href:"/docs/docs-introduction#docs-only-mode",children:"Docs-only mode"})," for how to remove the ",(0,o.jsx)(n.code,{children:"/docs"})," part from the URL."]}),"\n",(0,o.jsxs)(n.admonition,{type:"note",children:[(0,o.jsx)(n.p,{children:"It is possible to use:"}),(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["absolute slugs: ",(0,o.jsx)(n.code,{children:"slug: /mySlug"}),", ",(0,o.jsx)(n.code,{children:"slug: /"}),"..."]}),"\n",(0,o.jsxs)(n.li,{children:["relative slugs: ",(0,o.jsx)(n.code,{children:"slug: mySlug"}),", ",(0,o.jsx)(n.code,{children:"slug: ./../mySlug"}),"..."]}),"\n"]})]}),"\n",(0,o.jsxs)(n.p,{children:["If you want a document to be available at the root, and have a path like ",(0,o.jsx)(n.code,{children:"https://docusaurus.io/docs/"}),", you can use the slug front matter:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",children:"---\nid: my-home-doc\nslug: /\n---\n\nLorem ipsum\n"})}),"\n",(0,o.jsx)(n.h3,{id:"sidebars",children:"Sidebars"}),"\n",(0,o.jsxs)(n.p,{children:["When using ",(0,o.jsx)(n.a,{href:"/docs/sidebar/autogenerated",children:"autogenerated sidebars"}),", the file structure will determine the sidebar structure."]}),"\n",(0,o.jsxs)(n.p,{children:["Our recommendation for file system organization is: make your file system mirror the sidebar structure (so you don't need to handwrite your ",(0,o.jsx)(n.code,{children:"sidebars.js"})," file), and use the ",(0,o.jsx)(n.code,{children:"slug"})," front matter to customize URLs of each document."]})]})}function h(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>i});var d=s(63696);let o={},t=d.createContext(o);function r(e){let n=d.useContext(t);return d.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),d.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/30102.8c4c5983.js b/assets/js/30102.8c4c5983.js new file mode 100644 index 0000000000..51c5a991ee --- /dev/null +++ b/assets/js/30102.8c4c5983.js @@ -0,0 +1,155 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[30102],{30102:(t,e,s)=>{s.d(e,{_$:()=>a,tM:()=>J,z2:()=>q});var i=s(67027),u=s(72912),n=s(89601),r=function(){var t=(0,u.K2)(function(t,e,s,i){for(s=s||{},i=t.length;i--;s[t[i]]=e);return s},"o"),e=[1,17],s=[1,18],i=[1,19],n=[1,39],r=[1,40],a=[1,25],l=[1,23],o=[1,24],c=[1,31],h=[1,32],A=[1,33],p=[1,34],y=[1,35],d=[1,36],E=[1,26],C=[1,27],m=[1,28],g=[1,29],f=[1,43],b=[1,30],k=[1,42],F=[1,44],T=[1,41],D=[1,45],B=[1,9],_=[1,8,9],S=[1,56],N=[1,57],L=[1,58],$=[1,59],I=[1,60],O=[1,61],x=[1,62],v=[1,8,9,39],K=[1,74],R=[1,8,9,12,13,21,37,39,42,59,60,61,62,63,64,65,70,72],w=[1,8,9,12,13,19,21,37,39,42,46,59,60,61,62,63,64,65,70,72,74,80,95,97,98],P=[13,74,80,95,97,98],M=[13,64,65,74,80,95,97,98],G=[13,59,60,61,62,63,74,80,95,97,98],U=[1,93],Y=[1,110],z=[1,108],Q=[1,102],j=[1,103],W=[1,104],X=[1,105],H=[1,106],q=[1,107],J=[1,109],V=[1,8,9,37,39,42],Z=[1,8,9,21],tt=[1,8,9,78],te=[1,8,9,21,73,74,78,80,81,82,83,84,85],ts={trace:(0,u.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,className:17,classLiteralName:18,GENERICTYPE:19,relationStatement:20,LABEL:21,namespaceStatement:22,classStatement:23,memberStatement:24,annotationStatement:25,clickStatement:26,styleStatement:27,cssClassStatement:28,noteStatement:29,direction:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,namespaceIdentifier:36,STRUCT_START:37,classStatements:38,STRUCT_STOP:39,NAMESPACE:40,classIdentifier:41,STYLE_SEPARATOR:42,members:43,CLASS:44,ANNOTATION_START:45,ANNOTATION_END:46,MEMBER:47,SEPARATOR:48,relation:49,NOTE_FOR:50,noteText:51,NOTE:52,direction_tb:53,direction_bt:54,direction_rl:55,direction_lr:56,relationType:57,lineType:58,AGGREGATION:59,EXTENSION:60,COMPOSITION:61,DEPENDENCY:62,LOLLIPOP:63,LINE:64,DOTTED_LINE:65,CALLBACK:66,LINK:67,LINK_TARGET:68,CLICK:69,CALLBACK_NAME:70,CALLBACK_ARGS:71,HREF:72,STYLE:73,ALPHA:74,stylesOpt:75,CSSCLASS:76,style:77,COMMA:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,commentToken:86,textToken:87,graphCodeTokens:88,textNoTagsToken:89,TAGSTART:90,TAGEND:91,"==":92,"--":93,DEFAULT:94,MINUS:95,keywords:96,UNICODE_TEXT:97,BQUOTE_STR:98,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",19:"GENERICTYPE",21:"LABEL",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",37:"STRUCT_START",39:"STRUCT_STOP",40:"NAMESPACE",42:"STYLE_SEPARATOR",44:"CLASS",45:"ANNOTATION_START",46:"ANNOTATION_END",47:"MEMBER",48:"SEPARATOR",50:"NOTE_FOR",52:"NOTE",53:"direction_tb",54:"direction_bt",55:"direction_rl",56:"direction_lr",59:"AGGREGATION",60:"EXTENSION",61:"COMPOSITION",62:"DEPENDENCY",63:"LOLLIPOP",64:"LINE",65:"DOTTED_LINE",66:"CALLBACK",67:"LINK",68:"LINK_TARGET",69:"CLICK",70:"CALLBACK_NAME",71:"CALLBACK_ARGS",72:"HREF",73:"STYLE",74:"ALPHA",76:"CSSCLASS",78:"COMMA",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",88:"graphCodeTokens",90:"TAGSTART",91:"TAGEND",92:"==",93:"--",94:"DEFAULT",95:"MINUS",96:"keywords",97:"UNICODE_TEXT",98:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,2],[17,1],[17,1],[17,2],[17,2],[17,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[22,4],[22,5],[36,2],[38,1],[38,2],[38,3],[23,1],[23,3],[23,4],[23,6],[41,2],[41,3],[25,4],[43,1],[43,2],[24,1],[24,2],[24,1],[24,1],[20,3],[20,4],[20,4],[20,5],[29,3],[29,2],[30,1],[30,1],[30,1],[30,1],[49,3],[49,2],[49,2],[49,1],[57,1],[57,1],[57,1],[57,1],[57,1],[58,1],[58,1],[26,3],[26,4],[26,3],[26,4],[26,4],[26,5],[26,3],[26,4],[26,4],[26,5],[26,4],[26,5],[26,5],[26,6],[27,3],[28,3],[75,1],[75,3],[77,1],[77,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[86,1],[86,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[89,1],[89,1],[89,1],[89,1],[16,1],[16,1],[16,1],[16,1],[18,1],[51,1]],performAction:(0,u.K2)(function(t,e,s,i,u,n,r){var a=n.length-1;switch(u){case 8:this.$=n[a-1];break;case 9:case 11:case 12:this.$=n[a];break;case 10:case 13:case 89:this.$=n[a-1]+n[a];break;case 14:case 15:this.$=n[a-1]+"~"+n[a]+"~";break;case 16:i.addRelation(n[a]);break;case 17:n[a-1].title=i.cleanupLabel(n[a]),i.addRelation(n[a-1]);break;case 27:this.$=n[a].trim(),i.setAccTitle(this.$);break;case 28:case 29:this.$=n[a].trim(),i.setAccDescription(this.$);break;case 30:i.addClassesToNamespace(n[a-3],n[a-1]);break;case 31:i.addClassesToNamespace(n[a-4],n[a-1]);break;case 32:this.$=n[a],i.addNamespace(n[a]);break;case 33:case 43:case 86:this.$=[n[a]];break;case 34:this.$=[n[a-1]];break;case 35:n[a].unshift(n[a-2]),this.$=n[a];break;case 37:i.setCssClass(n[a-2],n[a]);break;case 38:i.addMembers(n[a-3],n[a-1]);break;case 39:i.setCssClass(n[a-5],n[a-3]),i.addMembers(n[a-5],n[a-1]);break;case 40:this.$=n[a],i.addClass(n[a]);break;case 41:this.$=n[a-1],i.addClass(n[a-1]),i.setClassLabel(n[a-1],n[a]);break;case 42:i.addAnnotation(n[a],n[a-2]);break;case 44:n[a].push(n[a-1]),this.$=n[a];break;case 45:case 47:case 48:break;case 46:i.addMember(n[a-1],i.cleanupLabel(n[a]));break;case 49:this.$={id1:n[a-2],id2:n[a],relation:n[a-1],relationTitle1:"none",relationTitle2:"none"};break;case 50:this.$={id1:n[a-3],id2:n[a],relation:n[a-1],relationTitle1:n[a-2],relationTitle2:"none"};break;case 51:this.$={id1:n[a-3],id2:n[a],relation:n[a-2],relationTitle1:"none",relationTitle2:n[a-1]};break;case 52:this.$={id1:n[a-4],id2:n[a],relation:n[a-2],relationTitle1:n[a-3],relationTitle2:n[a-1]};break;case 53:i.addNote(n[a],n[a-1]);break;case 54:i.addNote(n[a]);break;case 55:i.setDirection("TB");break;case 56:i.setDirection("BT");break;case 57:i.setDirection("RL");break;case 58:i.setDirection("LR");break;case 59:this.$={type1:n[a-2],type2:n[a],lineType:n[a-1]};break;case 60:this.$={type1:"none",type2:n[a],lineType:n[a-1]};break;case 61:this.$={type1:n[a-1],type2:"none",lineType:n[a]};break;case 62:this.$={type1:"none",type2:"none",lineType:n[a]};break;case 63:this.$=i.relationType.AGGREGATION;break;case 64:this.$=i.relationType.EXTENSION;break;case 65:this.$=i.relationType.COMPOSITION;break;case 66:this.$=i.relationType.DEPENDENCY;break;case 67:this.$=i.relationType.LOLLIPOP;break;case 68:this.$=i.lineType.LINE;break;case 69:this.$=i.lineType.DOTTED_LINE;break;case 70:case 76:this.$=n[a-2],i.setClickEvent(n[a-1],n[a]);break;case 71:case 77:this.$=n[a-3],i.setClickEvent(n[a-2],n[a-1]),i.setTooltip(n[a-2],n[a]);break;case 72:this.$=n[a-2],i.setLink(n[a-1],n[a]);break;case 73:this.$=n[a-3],i.setLink(n[a-2],n[a-1],n[a]);break;case 74:this.$=n[a-3],i.setLink(n[a-2],n[a-1]),i.setTooltip(n[a-2],n[a]);break;case 75:this.$=n[a-4],i.setLink(n[a-3],n[a-2],n[a]),i.setTooltip(n[a-3],n[a-1]);break;case 78:this.$=n[a-3],i.setClickEvent(n[a-2],n[a-1],n[a]);break;case 79:this.$=n[a-4],i.setClickEvent(n[a-3],n[a-2],n[a-1]),i.setTooltip(n[a-3],n[a]);break;case 80:this.$=n[a-3],i.setLink(n[a-2],n[a]);break;case 81:this.$=n[a-4],i.setLink(n[a-3],n[a-1],n[a]);break;case 82:this.$=n[a-4],i.setLink(n[a-3],n[a-1]),i.setTooltip(n[a-3],n[a]);break;case 83:this.$=n[a-5],i.setLink(n[a-4],n[a-2],n[a]),i.setTooltip(n[a-4],n[a-1]);break;case 84:this.$=n[a-2],i.setCssStyle(n[a-1],n[a]);break;case 85:i.setCssClass(n[a-1],n[a]);break;case 87:n[a-2].push(n[a]),this.$=n[a-2]}},"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:e,33:s,35:i,36:21,40:n,41:22,44:r,45:a,47:l,48:o,50:c,52:h,53:A,54:p,55:y,56:d,66:E,67:C,69:m,73:g,74:f,76:b,80:k,95:F,97:T,98:D},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(B,[2,5],{8:[1,46]}),{8:[1,47]},t(_,[2,16],{21:[1,48]}),t(_,[2,18]),t(_,[2,19]),t(_,[2,20]),t(_,[2,21]),t(_,[2,22]),t(_,[2,23]),t(_,[2,24]),t(_,[2,25]),t(_,[2,26]),{32:[1,49]},{34:[1,50]},t(_,[2,29]),t(_,[2,45],{49:51,57:54,58:55,13:[1,52],21:[1,53],59:S,60:N,61:L,62:$,63:I,64:O,65:x}),{37:[1,63]},t(v,[2,36],{37:[1,65],42:[1,64]}),t(_,[2,47]),t(_,[2,48]),{16:66,74:f,80:k,95:F,97:T},{16:37,17:67,18:38,74:f,80:k,95:F,97:T,98:D},{16:37,17:68,18:38,74:f,80:k,95:F,97:T,98:D},{16:37,17:69,18:38,74:f,80:k,95:F,97:T,98:D},{74:[1,70]},{13:[1,71]},{16:37,17:72,18:38,74:f,80:k,95:F,97:T,98:D},{13:K,51:73},t(_,[2,55]),t(_,[2,56]),t(_,[2,57]),t(_,[2,58]),t(R,[2,11],{16:37,18:38,17:75,19:[1,76],74:f,80:k,95:F,97:T,98:D}),t(R,[2,12],{19:[1,77]}),{15:78,16:79,74:f,80:k,95:F,97:T},{16:37,17:80,18:38,74:f,80:k,95:F,97:T,98:D},t(w,[2,112]),t(w,[2,113]),t(w,[2,114]),t(w,[2,115]),t([1,8,9,12,13,19,21,37,39,42,59,60,61,62,63,64,65,70,72],[2,116]),t(B,[2,6],{10:5,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,17:20,36:21,41:22,16:37,18:38,5:81,31:e,33:s,35:i,40:n,44:r,45:a,47:l,48:o,50:c,52:h,53:A,54:p,55:y,56:d,66:E,67:C,69:m,73:g,74:f,76:b,80:k,95:F,97:T,98:D}),{5:82,10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:e,33:s,35:i,36:21,40:n,41:22,44:r,45:a,47:l,48:o,50:c,52:h,53:A,54:p,55:y,56:d,66:E,67:C,69:m,73:g,74:f,76:b,80:k,95:F,97:T,98:D},t(_,[2,17]),t(_,[2,27]),t(_,[2,28]),{13:[1,84],16:37,17:83,18:38,74:f,80:k,95:F,97:T,98:D},{49:85,57:54,58:55,59:S,60:N,61:L,62:$,63:I,64:O,65:x},t(_,[2,46]),{58:86,64:O,65:x},t(P,[2,62],{57:87,59:S,60:N,61:L,62:$,63:I}),t(M,[2,63]),t(M,[2,64]),t(M,[2,65]),t(M,[2,66]),t(M,[2,67]),t(G,[2,68]),t(G,[2,69]),{8:[1,89],23:90,38:88,41:22,44:r},{16:91,74:f,80:k,95:F,97:T},{43:92,47:U},{46:[1,94]},{13:[1,95]},{13:[1,96]},{70:[1,97],72:[1,98]},{21:Y,73:z,74:Q,75:99,77:100,79:101,80:j,81:W,82:X,83:H,84:q,85:J},{74:[1,111]},{13:K,51:112},t(_,[2,54]),t(_,[2,117]),t(R,[2,13]),t(R,[2,14]),t(R,[2,15]),{37:[2,32]},{15:113,16:79,37:[2,9],74:f,80:k,95:F,97:T},t(V,[2,40],{11:114,12:[1,115]}),t(B,[2,7]),{9:[1,116]},t(Z,[2,49]),{16:37,17:117,18:38,74:f,80:k,95:F,97:T,98:D},{13:[1,119],16:37,17:118,18:38,74:f,80:k,95:F,97:T,98:D},t(P,[2,61],{57:120,59:S,60:N,61:L,62:$,63:I}),t(P,[2,60]),{39:[1,121]},{23:90,38:122,41:22,44:r},{8:[1,123],39:[2,33]},t(v,[2,37],{37:[1,124]}),{39:[1,125]},{39:[2,43],43:126,47:U},{16:37,17:127,18:38,74:f,80:k,95:F,97:T,98:D},t(_,[2,70],{13:[1,128]}),t(_,[2,72],{13:[1,130],68:[1,129]}),t(_,[2,76],{13:[1,131],71:[1,132]}),{13:[1,133]},t(_,[2,84],{78:[1,134]}),t(tt,[2,86],{79:135,21:Y,73:z,74:Q,80:j,81:W,82:X,83:H,84:q,85:J}),t(te,[2,88]),t(te,[2,90]),t(te,[2,91]),t(te,[2,92]),t(te,[2,93]),t(te,[2,94]),t(te,[2,95]),t(te,[2,96]),t(te,[2,97]),t(te,[2,98]),t(_,[2,85]),t(_,[2,53]),{37:[2,10]},t(V,[2,41]),{13:[1,136]},{1:[2,4]},t(Z,[2,51]),t(Z,[2,50]),{16:37,17:137,18:38,74:f,80:k,95:F,97:T,98:D},t(P,[2,59]),t(_,[2,30]),{39:[1,138]},{23:90,38:139,39:[2,34],41:22,44:r},{43:140,47:U},t(v,[2,38]),{39:[2,44]},t(_,[2,42]),t(_,[2,71]),t(_,[2,73]),t(_,[2,74],{68:[1,141]}),t(_,[2,77]),t(_,[2,78],{13:[1,142]}),t(_,[2,80],{13:[1,144],68:[1,143]}),{21:Y,73:z,74:Q,77:145,79:101,80:j,81:W,82:X,83:H,84:q,85:J},t(te,[2,89]),{14:[1,146]},t(Z,[2,52]),t(_,[2,31]),{39:[2,35]},{39:[1,147]},t(_,[2,75]),t(_,[2,79]),t(_,[2,81]),t(_,[2,82],{68:[1,148]}),t(tt,[2,87],{79:135,21:Y,73:z,74:Q,80:j,81:W,82:X,83:H,84:q,85:J}),t(V,[2,8]),t(v,[2,39]),t(_,[2,83])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],78:[2,32],113:[2,10],116:[2,4],126:[2,44],139:[2,35]},parseError:(0,u.K2)(function(t,e){if(e.recoverable)this.trace(t);else{var s=Error(t);throw s.hash=e,s}},"parseError"),parse:(0,u.K2)(function(t){var e=this,s=[0],i=[],n=[null],r=[],a=this.table,l="",o=0,c=0,h=0,A=r.slice.call(arguments,1),p=Object.create(this.lexer),y={yy:{}};for(var d in this.yy)Object.prototype.hasOwnProperty.call(this.yy,d)&&(y.yy[d]=this.yy[d]);p.setInput(t,y.yy),y.yy.lexer=p,y.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var E=p.yylloc;r.push(E);var C=p.options&&p.options.ranges;function m(){var t;return"number"!=typeof(t=i.pop()||p.lex()||1)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof y.yy.parseError?this.parseError=y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,u.K2)(function(t){s.length=s.length-2*t,n.length=n.length-t,r.length=r.length-t},"popStack"),(0,u.K2)(m,"lex");for(var g,f,b,k,F,T,D,B,_,S={};;){if(b=s[s.length-1],this.defaultActions[b]?k=this.defaultActions[b]:(null==g&&(g=m()),k=a[b]&&a[b][g]),void 0===k||!k.length||!k[0]){var N="";for(T in _=[],a[b])this.terminals_[T]&&T>2&&_.push("'"+this.terminals_[T]+"'");N=p.showPosition?"Parse error on line "+(o+1)+":\n"+p.showPosition()+"\nExpecting "+_.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==g?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(N,{text:p.match,token:this.terminals_[g]||g,line:p.yylineno,loc:E,expected:_})}if(k[0]instanceof Array&&k.length>1)throw Error("Parse Error: multiple actions possible at state: "+b+", token: "+g);switch(k[0]){case 1:s.push(g),n.push(p.yytext),r.push(p.yylloc),s.push(k[1]),g=null,f?(g=f,f=null):(c=p.yyleng,l=p.yytext,o=p.yylineno,E=p.yylloc,h>0&&h--);break;case 2:if(D=this.productions_[k[1]][1],S.$=n[n.length-D],S._$={first_line:r[r.length-(D||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(D||1)].first_column,last_column:r[r.length-1].last_column},C&&(S._$.range=[r[r.length-(D||1)].range[0],r[r.length-1].range[1]]),void 0!==(F=this.performAction.apply(S,[l,c,o,y.yy,k[1],n,r].concat(A))))return F;D&&(s=s.slice(0,-1*D*2),n=n.slice(0,-1*D),r=r.slice(0,-1*D)),s.push(this.productions_[k[1]][0]),n.push(S.$),r.push(S._$),B=a[s[s.length-2]][s[s.length-1]],s.push(B);break;case 3:return!0}}return!0},"parse")},ti={EOF:1,parseError:(0,u.K2)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,u.K2)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,u.K2)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,u.K2)(function(t){var e=t.length,s=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),s.length-1&&(this.yylineno-=s.length-1);var u=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===i.length?this.yylloc.first_column:0)+i[i.length-s.length].length-s[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[u[0],u[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,u.K2)(function(){return this._more=!0,this},"more"),reject:(0,u.K2)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,u.K2)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,u.K2)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,u.K2)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,u.K2)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,u.K2)(function(t,e){var s,i,u;if(this.options.backtrack_lexer&&(u={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(u.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],s=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack)for(var n in u)this[n]=u[n];return!1},"test_match"),next:(0,u.K2)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,s,i,u=this._currentRules(),n=0;n<u.length;n++)if((s=this._input.match(this.rules[u[n]]))&&(!e||s[0].length>e[0].length)){if(e=s,i=n,this.options.backtrack_lexer){if(!1!==(t=this.test_match(s,u[n])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,u[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,u.K2)(function(){return this.next()||this.lex()},"lex"),begin:(0,u.K2)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,u.K2)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,u.K2)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,u.K2)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,u.K2)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,u.K2)(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:(0,u.K2)(function(t,e,s,i){switch(s){case 0:return 53;case 1:return 54;case 2:return 55;case 3:return 56;case 4:case 5:case 14:case 30:case 35:case 39:case 46:break;case 6:return this.begin("acc_title"),31;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),33;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 19:case 22:case 24:case 57:case 60:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:case 34:return 8;case 15:case 16:return 7;case 17:case 36:case 44:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 70;case 23:return 71;case 25:return"STR";case 26:this.begin("string");break;case 27:return 73;case 28:return this.begin("namespace"),40;case 29:case 38:return this.popState(),8;case 31:return this.begin("namespace-body"),37;case 32:case 42:return this.popState(),39;case 33:case 43:return"EOF_IN_STRUCT";case 37:return this.begin("class"),44;case 40:return this.popState(),this.popState(),39;case 41:return this.begin("class-body"),37;case 45:return"OPEN_IN_STRUCT";case 47:return"MEMBER";case 48:return 76;case 49:return 66;case 50:return 67;case 51:return 69;case 52:return 50;case 53:return 52;case 54:return 45;case 55:return 46;case 56:return 72;case 58:return"GENERICTYPE";case 59:this.begin("generic");break;case 61:return"BQUOTE_STR";case 62:this.begin("bqstring");break;case 63:case 64:case 65:case 66:return 68;case 67:case 68:return 60;case 69:case 70:return 62;case 71:return 61;case 72:return 59;case 73:return 63;case 74:return 64;case 75:return 65;case 76:return 21;case 77:return 42;case 78:return 95;case 79:return"DOT";case 80:return"PLUS";case 81:return 81;case 82:return 78;case 83:case 84:return 84;case 85:return 85;case 86:case 87:return"EQUALS";case 88:return 74;case 89:return 12;case 90:return 14;case 91:return"PUNCTUATION";case 92:return 80;case 93:return 97;case 94:case 95:return 83;case 96:return 9}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,32,33,34,35,36,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},namespace:{rules:[26,28,29,30,31,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},"class-body":{rules:[26,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},class:{rules:[26,38,39,40,41,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr:{rules:[9,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_title:{rules:[7,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_args:{rules:[22,23,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_name:{rules:[19,20,21,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},href:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},struct:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},generic:{rules:[26,48,49,50,51,52,53,54,55,56,57,58,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},bqstring:{rules:[26,48,49,50,51,52,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},string:{rules:[24,25,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96],inclusive:!0}}};function tu(){this.yy={}}return ts.lexer=ti,(0,u.K2)(tu,"Parser"),tu.prototype=ts,ts.Parser=tu,new tu}();r.parser=r;var a=r,l=["#","+","~","-",""],o=class{static{(0,u.K2)(this,"ClassMember")}constructor(t,e){this.memberType=e,this.visibility="",this.classifier="";let s=(0,u.jZ)(t,(0,u.D7)());this.parseMember(s)}getDisplayDetails(){let t=this.visibility+(0,u.QO)(this.id);return"method"===this.memberType&&(t+=`(${(0,u.QO)(this.parameters.trim())})`,this.returnType&&(t+=" : "+(0,u.QO)(this.returnType))),{displayText:t=t.trim(),cssStyle:this.parseClassifier()}}parseMember(t){let e="";if("method"===this.memberType){let s=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/.exec(t);if(s){let t=s[1]?s[1].trim():"";if(l.includes(t)&&(this.visibility=t),this.id=s[2].trim(),this.parameters=s[3]?s[3].trim():"",e=s[4]?s[4].trim():"",this.returnType=s[5]?s[5].trim():"",""===e){let t=this.returnType.substring(this.returnType.length-1);/[$*]/.exec(t)&&(e=t,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{let s=t.length,i=t.substring(0,1),u=t.substring(s-1);l.includes(i)&&(this.visibility=i),/[$*]/.exec(u)&&(e=u),this.id=t.substring(""===this.visibility?0:1,""===e?s:s-1)}this.classifier=e}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}},c="classId-",h=[],A=new Map,p=[],y=0,d=new Map,E=0,C=[],m=(0,u.K2)(t=>u.Y2.sanitizeText(t,(0,u.D7)()),"sanitizeText"),g=(0,u.K2)(function(t){let e=u.Y2.sanitizeText(t,(0,u.D7)()),s="",i=e;if(e.indexOf("~")>0){let t=e.split("~");i=m(t[0]),s=m(t[1])}return{className:i,type:s}},"splitClassNameAndType"),f=(0,u.K2)(function(t,e){let s=u.Y2.sanitizeText(t,(0,u.D7)());e&&(e=m(e));let{className:i}=g(s);A.get(i).label=e},"setClassLabel"),b=(0,u.K2)(function(t){let{className:e,type:s}=g(u.Y2.sanitizeText(t,(0,u.D7)()));if(A.has(e))return;let i=u.Y2.sanitizeText(e,(0,u.D7)());A.set(i,{id:i,type:s,label:i,cssClasses:[],methods:[],members:[],annotations:[],styles:[],domId:c+i+"-"+y}),y++},"addClass"),k=(0,u.K2)(function(t){let e=u.Y2.sanitizeText(t,(0,u.D7)());if(A.has(e))return A.get(e).domId;throw Error("Class not found: "+e)},"lookUpDomId"),F=(0,u.K2)(function(){h=[],A=new Map,p=[],(C=[]).push(G),d=new Map,E=0,U="TB",(0,u.IU)()},"clear"),T=(0,u.K2)(function(t){return A.get(t)},"getClass"),D=(0,u.K2)(function(){return A},"getClasses"),B=(0,u.K2)(function(){return h},"getRelations"),_=(0,u.K2)(function(){return p},"getNotes"),S=(0,u.K2)(function(t){u.Rm.debug("Adding relation: "+JSON.stringify(t)),b(t.id1),b(t.id2),t.id1=g(t.id1).className,t.id2=g(t.id2).className,t.relationTitle1=u.Y2.sanitizeText(t.relationTitle1.trim(),(0,u.D7)()),t.relationTitle2=u.Y2.sanitizeText(t.relationTitle2.trim(),(0,u.D7)()),h.push(t)},"addRelation"),N=(0,u.K2)(function(t,e){let s=g(t).className;A.get(s).annotations.push(e)},"addAnnotation"),L=(0,u.K2)(function(t,e){b(t);let s=g(t).className,i=A.get(s);if("string"==typeof e){let t=e.trim();t.startsWith("<<")&&t.endsWith(">>")?i.annotations.push(m(t.substring(2,t.length-2))):t.indexOf(")")>0?i.methods.push(new o(t,"method")):t&&i.members.push(new o(t,"attribute"))}},"addMember"),$=(0,u.K2)(function(t,e){Array.isArray(e)&&(e.reverse(),e.forEach(e=>L(t,e)))},"addMembers"),I=(0,u.K2)(function(t,e){let s={id:`note${p.length}`,class:e,text:t};p.push(s)},"addNote"),O=(0,u.K2)(function(t){return t.startsWith(":")&&(t=t.substring(1)),m(t.trim())},"cleanupLabel"),x=(0,u.K2)(function(t,e){t.split(",").forEach(function(t){let s=t;/\d/.exec(t[0])&&(s=c+s);let i=A.get(s);i&&i.cssClasses.push(e)})},"setCssClass"),v=(0,u.K2)(function(t,e){t.split(",").forEach(function(t){void 0!==e&&(A.get(t).tooltip=m(e))})},"setTooltip"),K=(0,u.K2)(function(t,e){return e&&d.has(e)?d.get(e).classes.get(t).tooltip:A.get(t).tooltip},"getTooltip"),R=(0,u.K2)(function(t,e,s){let n=(0,u.D7)();t.split(",").forEach(function(t){let u=t;/\d/.exec(t[0])&&(u=c+u);let r=A.get(u);r&&(r.link=i._K.formatUrl(e,n),"sandbox"===n.securityLevel?r.linkTarget="_top":"string"==typeof s?r.linkTarget=m(s):r.linkTarget="_blank")}),x(t,"clickable")},"setLink"),w=(0,u.K2)(function(t,e,s){t.split(",").forEach(function(t){P(t,e,s),A.get(t).haveCallback=!0}),x(t,"clickable")},"setClickEvent"),P=(0,u.K2)(function(t,e,s){let n=u.Y2.sanitizeText(t,(0,u.D7)());if("loose"===(0,u.D7)().securityLevel&&void 0!==e&&A.has(n)){let t=k(n),u=[];if("string"==typeof s){u=s.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t<u.length;t++){let e=u[t].trim();e.startsWith('"')&&e.endsWith('"')&&(e=e.substr(1,e.length-2)),u[t]=e}}0===u.length&&u.push(t),C.push(function(){let s=document.querySelector(`[id="${t}"]`);null!==s&&s.addEventListener("click",function(){i._K.runFunc(e,...u)},!1)})}},"setClickFunc"),M=(0,u.K2)(function(t){C.forEach(function(e){e(t)})},"bindFunctions"),G=(0,u.K2)(function(t){let e=(0,n.Ltv)(".mermaidTooltip");null===(e._groups||e)[0][0]&&(e=(0,n.Ltv)("body").append("div").attr("class","mermaidTooltip").style("opacity",0)),(0,n.Ltv)(t).select("svg").selectAll("g.node").on("mouseover",function(){let t=(0,n.Ltv)(this);if(null===t.attr("title"))return;let s=this.getBoundingClientRect();e.transition().duration(200).style("opacity",".9"),e.text(t.attr("title")).style("left",window.scrollX+s.left+(s.right-s.left)/2+"px").style("top",window.scrollY+s.top-14+document.body.scrollTop+"px"),e.html(e.html().replace(/<br\/>/g,"<br/>")),t.classed("hover",!0)}).on("mouseout",function(){e.transition().duration(500).style("opacity",0),(0,n.Ltv)(this).classed("hover",!1)})},"setupToolTips");C.push(G);var U="TB",Y=(0,u.K2)(()=>U,"getDirection"),z=(0,u.K2)(t=>{U=t},"setDirection"),Q=(0,u.K2)(function(t){!d.has(t)&&(d.set(t,{id:t,classes:new Map,children:{},domId:c+t+"-"+E}),E++)},"addNamespace"),j=(0,u.K2)(function(t){return d.get(t)},"getNamespace"),W=(0,u.K2)(function(){return d},"getNamespaces"),X=(0,u.K2)(function(t,e){if(d.has(t))for(let s of e){let{className:e}=g(s);A.get(e).parent=t,d.get(t).classes.set(e,A.get(e))}},"addClassesToNamespace"),H=(0,u.K2)(function(t,e){let s=A.get(t);if(e&&s)for(let t of e)t.includes(",")?s.styles.push(...t.split(",")):s.styles.push(t)},"setCssStyle"),q={setAccTitle:u.SV,getAccTitle:u.iN,getAccDescription:u.m7,setAccDescription:u.EI,getConfig:(0,u.K2)(()=>(0,u.D7)().class,"getConfig"),addClass:b,bindFunctions:M,clear:F,getClass:T,getClasses:D,getNotes:_,addAnnotation:N,addNote:I,getRelations:B,addRelation:S,getDirection:Y,setDirection:z,addMember:L,addMembers:$,cleanupLabel:O,lineType:{LINE:0,DOTTED_LINE:1},relationType:{AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3,LOLLIPOP:4},setClickEvent:w,setCssClass:x,setLink:R,getTooltip:K,setTooltip:v,lookUpDomId:k,setDiagramTitle:u.ke,getDiagramTitle:u.ab,setClassLabel:f,addNamespace:Q,addClassesToNamespace:X,getNamespace:j,getNamespaces:W,setCssStyle:H},J=(0,u.K2)(t=>`g.classGroup text { + fill: ${t.nodeBorder||t.classText}; + stroke: none; + font-family: ${t.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + +.nodeLabel, .edgeLabel { + color: ${t.classText}; +} +.edgeLabel .label rect { + fill: ${t.mainBkg}; +} +.label text { + fill: ${t.classText}; +} +.edgeLabel .label span { + background: ${t.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${t.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.classGroup line { + stroke: ${t.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${t.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${t.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${t.mainBkg} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${t.mainBkg} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`,"getStyles")}}]); \ No newline at end of file diff --git a/assets/js/305daa1e.d79049c8.js b/assets/js/305daa1e.d79049c8.js new file mode 100644 index 0000000000..e63e15c851 --- /dev/null +++ b/assets/js/305daa1e.d79049c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[86245],{16709:(e,t,s)=>{s.d(t,{A:()=>o});let o=s.p+"assets/images/local-image-05286ebd44ab198d038adbeee9544858.png"},45270:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>p,frontMatter:()=>r,metadata:()=>o,toc:()=>d});let o=JSON.parse('{"type":"mdx","permalink":"/tests/pages/seo","source":"@site/_dogfooding/_pages tests/seo.md","title":"custom SEO title","description":"custom SEO description","frontMatter":{"title":"custom SEO title","description":"custom SEO description","keywords":["custom","keywords"],"image":"./local-image.png"},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/seo.md","unlisted":false}');var n=s(62540),i=s(43023);let r={title:"custom SEO title",description:"custom SEO description",keywords:["custom","keywords"],image:"./local-image.png"},c="SEO tests",a={image:s(16709).A},d=[];function l(e){let t={code:"code",h1:"h1",header:"header",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"seo-tests",children:"SEO tests"})}),"\n",(0,n.jsx)(t.p,{children:"Using page SEO front matter:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-yaml",children:"title: custom SEO title\ndescription: custom SEO description\nkeywords: [custom, keywords]\nimage: ./local-image.png\n"})})]})}function p(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},43023:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>c});var o=s(63696);let n={},i=o.createContext(n);function r(e){let t=o.useContext(i);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),o.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/305daa1e.ef7ccc12.js b/assets/js/305daa1e.ef7ccc12.js deleted file mode 100644 index 05da6925b7..0000000000 --- a/assets/js/305daa1e.ef7ccc12.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[86245],{16709:(e,t,s)=>{s.d(t,{A:()=>n});let n=s.p+"assets/images/local-image-05286ebd44ab198d038adbeee9544858.png"},45270:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>p,frontMatter:()=>r,metadata:()=>n,toc:()=>d});let n=JSON.parse('{"type":"mdx","permalink":"/tests/pages/seo","source":"@site/_dogfooding/_pages tests/seo.md","title":"custom SEO title","description":"custom SEO description","frontMatter":{"title":"custom SEO title","description":"custom SEO description","keywords":["custom","keywords"],"image":"./local-image.png"},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/seo.md","unlisted":false}');var o=s(62540),i=s(43023);let r={title:"custom SEO title",description:"custom SEO description",keywords:["custom","keywords"],image:"./local-image.png"},c="SEO tests",a={image:s(16709).A},d=[];function l(e){let t={code:"code",h1:"h1",header:"header",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"seo-tests",children:"SEO tests"})}),"\n",(0,o.jsx)(t.p,{children:"Using page SEO front matter:"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-yaml",children:"title: custom SEO title\ndescription: custom SEO description\nkeywords: [custom, keywords]\nimage: ./local-image.png\n"})})]})}function p(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},43023:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>c});var n=s(63696);let o={},i=n.createContext(o);function r(e){let t=n.useContext(i);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3103a69b.71d1a6b3.js b/assets/js/3103a69b.71d1a6b3.js deleted file mode 100644 index 58f3b771de..0000000000 --- a/assets/js/3103a69b.71d1a6b3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[34616],{70634:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>r,contentTitle:()=>o,default:()=>c,frontMatter:()=>d,metadata:()=>i,toc:()=>a});let i=JSON.parse('{"id":"tests/visibility/only-unlisteds/unlisted2","title":"Only Unlisteds - Unlisted 2","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-unlisteds/unlisted2.mdx","sourceDirName":"tests/visibility/only-unlisteds","slug":"/tests/visibility/only-unlisteds/unlisted2","permalink":"/tests/docs/tests/visibility/only-unlisteds/unlisted2","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"}');var n=s(62540),l=s(43023);let d={unlisted:!0,tags:["visibility","unlisted"]},o="Only Unlisteds - Unlisted 2",r={},a=[];function u(t){let e={h1:"h1",header:"header",p:"p",...(0,l.R)(),...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.header,{children:(0,n.jsx)(e.h1,{id:"only-unlisteds---unlisted-2",children:"Only Unlisteds - Unlisted 2"})}),"\n",(0,n.jsx)(e.p,{children:"Doc with unlisted front matter"})]})}function c(t={}){let{wrapper:e}={...(0,l.R)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(u,{...t})}):u(t)}c.displayName="MDXContent(_dogfooding/_docs tests/tests/visibility/only-unlisteds/unlisted2.mdx)"},43023:(t,e,s)=>{s.d(e,{R:()=>d,x:()=>o});var i=s(63696);let n={},l=i.createContext(n);function d(t){let e=i.useContext(l);return i.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function o(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:d(t.components),i.createElement(l.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/3103a69b.cbc07f42.js b/assets/js/3103a69b.cbc07f42.js new file mode 100644 index 0000000000..9606c8e262 --- /dev/null +++ b/assets/js/3103a69b.cbc07f42.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[34616],{70634:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>r,contentTitle:()=>o,default:()=>c,frontMatter:()=>d,metadata:()=>i,toc:()=>a});let i=JSON.parse('{"id":"tests/visibility/only-unlisteds/unlisted2","title":"Only Unlisteds - Unlisted 2","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-unlisteds/unlisted2.mdx","sourceDirName":"tests/visibility/only-unlisteds","slug":"/tests/visibility/only-unlisteds/unlisted2","permalink":"/tests/docs/tests/visibility/only-unlisteds/unlisted2","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"}');var n=s(62540),l=s(43023);let d={unlisted:!0,tags:["visibility","unlisted"]},o="Only Unlisteds - Unlisted 2",r={},a=[];function u(t){let e={h1:"h1",header:"header",p:"p",...(0,l.R)(),...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.header,{children:(0,n.jsx)(e.h1,{id:"only-unlisteds---unlisted-2",children:"Only Unlisteds - Unlisted 2"})}),"\n",(0,n.jsx)(e.p,{children:"Doc with unlisted front matter"})]})}function c(t={}){let{wrapper:e}={...(0,l.R)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(u,{...t})}):u(t)}c.displayName="MDXContent(_dogfooding/_docs tests/tests/visibility/only-unlisteds/unlisted2.mdx)"},43023:(t,e,s)=>{s.d(e,{R:()=>d,x:()=>o});var i=s(63696);let n={},l=i.createContext(n);function d(t){let e=i.useContext(l);return i.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function o(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:d(t.components),i.createElement(l.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/32699.0c4cf78b.js b/assets/js/32699.0c4cf78b.js new file mode 100644 index 0000000000..977b84f32f --- /dev/null +++ b/assets/js/32699.0c4cf78b.js @@ -0,0 +1,125 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[32699],{77335:(t,e,s)=>{s.d(e,{A:()=>i});var u=s(81283),r=s(112);let i=(t,e)=>u.A.lang.round(r.A.parse(t)[e])},165:(t,e,s)=>{s.d(e,{A:()=>i,P:()=>n});var u=s(72912),r=s(89601),i=(0,u.K2)((t,e)=>{let s;return"sandbox"===e&&(s=(0,r.Ltv)("#i"+t)),("sandbox"===e?(0,r.Ltv)(s.nodes()[0].contentDocument.body):(0,r.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement"),n=(0,u.K2)((t,e,s,r)=>{t.attr("class",s);let{width:i,height:n,x:o,y:c}=a(t,e);(0,u.a$)(t,n,i,r);let h=l(o,c,i,n,e);t.attr("viewBox",h),u.Rm.debug(`viewBox configured: ${h} with padding: ${e}`)},"setupViewPortForSVG"),a=(0,u.K2)((t,e)=>{let s=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*e,height:s.height+2*e,x:s.x,y:s.y}},"calculateDimensionsWithPadding"),l=(0,u.K2)((t,e,s,u,r)=>`${t-r} ${e-r} ${s} ${u}`,"createViewBox")},32699:(t,e,s)=>{s.d(e,{diagram:()=>tb});var u,r,i=s(165);s(82648);var n=s(57014);s(93510),s(16470),s(27923);var a=s(67027),l=s(72912),o=s(89601),c=s(77335),h=s(18448),d=0,p=(0,l.D7)(),A=new Map,g=[],f=new Map,y=[],k=new Map,b=new Map,E=0,m=!0,D=[],C=(0,l.K2)(t=>l.Y2.sanitizeText(t,p),"sanitizeText"),x=(0,l.K2)(function(t){for(let e of A.values())if(e.id===t)return e.domId;return t},"lookUpDomId"),T=(0,l.K2)(function(t,e,s,u,r,i,n={}){let a;if(!t||0===t.trim().length)return;let o=A.get(t);void 0===o&&(o={id:t,labelType:"text",domId:"flowchart-"+t+"-"+d,styles:[],classes:[]},A.set(t,o)),d++,void 0!==e?(p=(0,l.D7)(),a=C(e.text.trim()),o.labelType=e.type,a.startsWith('"')&&a.endsWith('"')&&(a=a.substring(1,a.length-1)),o.text=a):void 0===o.text&&(o.text=t),void 0!==s&&(o.type=s),null!=u&&u.forEach(function(t){o.styles.push(t)}),null!=r&&r.forEach(function(t){o.classes.push(t)}),void 0!==i&&(o.dir=i),void 0===o.props?o.props=n:void 0!==n&&Object.assign(o.props,n)},"addVertex"),F=(0,l.K2)(function(t,e,s){let u={start:t,end:e,type:void 0,text:"",labelType:"text"};l.Rm.info("abc78 Got edge...",u);let r=s.text;if(void 0!==r&&(u.text=C(r.text.trim()),u.text.startsWith('"')&&u.text.endsWith('"')&&(u.text=u.text.substring(1,u.text.length-1)),u.labelType=r.type),void 0!==s&&(u.type=s.type,u.stroke=s.stroke,u.length=s.length>10?10:s.length),g.length<(p.maxEdges??500))l.Rm.info("Pushing edge..."),g.push(u);else throw Error(`Edge limit exceeded. ${g.length} edges found, but the limit is ${p.maxEdges}. + +Initialize mermaid with maxEdges set to a higher number to allow more edges. +You cannot set this config via configuration inside the diagram as it is a secure config. +You have to call mermaid.initialize.`)},"addSingleLink"),S=(0,l.K2)(function(t,e,s){for(let u of(l.Rm.info("addLink",t,e,s),t))for(let t of e)F(u,t,s)},"addLink"),_=(0,l.K2)(function(t,e){t.forEach(function(t){"default"===t?g.defaultInterpolate=e:g[t].interpolate=e})},"updateLinkInterpolate"),B=(0,l.K2)(function(t,e){t.forEach(function(t){if("number"==typeof t&&t>=g.length)throw Error(`The index ${t} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${g.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);"default"===t?g.defaultStyle=e:(g[t].style=e,(g[t]?.style?.length??0)>0&&!g[t]?.style?.some(t=>t?.startsWith("fill"))&&g[t]?.style?.push("fill:none"))})},"updateLink"),v=(0,l.K2)(function(t,e){t.split(",").forEach(function(t){let s=f.get(t);void 0===s&&(s={id:t,styles:[],textStyles:[]},f.set(t,s)),null!=e&&e.forEach(function(t){if(/color/.exec(t)){let e=t.replace("fill","bgFill");s.textStyles.push(e)}s.styles.push(t)})})},"addClass"),w=(0,l.K2)(function(t){u=t,/.*</.exec(u)&&(u="RL"),/.*\^/.exec(u)&&(u="BT"),/.*>/.exec(u)&&(u="LR"),/.*v/.exec(u)&&(u="TB"),"TD"===u&&(u="TB")},"setDirection"),$=(0,l.K2)(function(t,e){for(let s of t.split(",")){let t=A.get(s);t&&t.classes.push(e);let u=k.get(s);u&&u.classes.push(e)}},"setClass"),L=(0,l.K2)(function(t,e){if(void 0!==e)for(let s of(e=C(e),t.split(",")))b.set("gen-1"===r?x(s):s,e)},"setTooltip"),R=(0,l.K2)(function(t,e,s){let u=x(t);if("loose"!==(0,l.D7)().securityLevel||void 0===e)return;let r=[];if("string"==typeof s){r=s.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t<r.length;t++){let e=r[t].trim();e.startsWith('"')&&e.endsWith('"')&&(e=e.substr(1,e.length-2)),r[t]=e}}0===r.length&&r.push(t);let i=A.get(t);i&&(i.haveCallback=!0,D.push(function(){let t=document.querySelector(`[id="${u}"]`);null!==t&&t.addEventListener("click",function(){a._K.runFunc(e,...r)},!1)}))},"setClickFun"),I=(0,l.K2)(function(t,e,s){t.split(",").forEach(function(t){let u=A.get(t);void 0!==u&&(u.link=a._K.formatUrl(e,p),u.linkTarget=s)}),$(t,"clickable")},"setLink"),K=(0,l.K2)(function(t){return b.get(t)},"getTooltip"),N=(0,l.K2)(function(t,e,s){t.split(",").forEach(function(t){R(t,e,s)}),$(t,"clickable")},"setClickEvent"),P=(0,l.K2)(function(t){D.forEach(function(e){e(t)})},"bindFunctions"),O=(0,l.K2)(function(){return u.trim()},"getDirection"),M=(0,l.K2)(function(){return A},"getVertices"),V=(0,l.K2)(function(){return g},"getEdges"),U=(0,l.K2)(function(){return f},"getClasses"),G=(0,l.K2)(function(t){let e=(0,o.Ltv)(".mermaidTooltip");null===(e._groups||e)[0][0]&&(e=(0,o.Ltv)("body").append("div").attr("class","mermaidTooltip").style("opacity",0)),(0,o.Ltv)(t).select("svg").selectAll("g.node").on("mouseover",function(){let t=(0,o.Ltv)(this);if(null===t.attr("title"))return;let s=this?.getBoundingClientRect();e.transition().duration(200).style("opacity",".9"),e.text(t.attr("title")).style("left",window.scrollX+s.left+(s.right-s.left)/2+"px").style("top",window.scrollY+s.bottom+"px"),e.html(e.html().replace(/<br\/>/g,"<br/>")),t.classed("hover",!0)}).on("mouseout",function(){e.transition().duration(500).style("opacity",0),(0,o.Ltv)(this).classed("hover",!1)})},"setupToolTips");D.push(G);var W=(0,l.K2)(function(t="gen-1"){A=new Map,f=new Map,g=[],D=[G],y=[],k=new Map,E=0,b=new Map,m=!0,r=t,p=(0,l.D7)(),(0,l.IU)()},"clear"),Y=(0,l.K2)(t=>{r=t||"gen-2"},"setGen"),j=(0,l.K2)(function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},"defaultStyle"),X=(0,l.K2)(function(t,e,s){let u=t.text.trim(),i=s.text;function n(t){let e;let s={boolean:{},number:{},string:{}},u=[];return{nodeList:t.filter(function(t){let r=typeof t;return t.stmt&&"dir"===t.stmt?(e=t.value,!1):""!==t.trim()&&(r in s?!s[r].hasOwnProperty(t)&&(s[r][t]=!0):!u.includes(t)&&u.push(t))}),dir:e}}t===s&&/\s/.exec(s.text)&&(u=void 0),(0,l.K2)(n,"uniq");let{nodeList:a,dir:o}=n(e.flat());if("gen-1"===r)for(let t=0;t<a.length;t++)a[t]=x(a[t]);u=u??"subGraph"+E,i=C(i=i||""),E+=1;let c={id:u,nodes:a,title:i.trim(),classes:[],dir:o,labelType:s.type};return l.Rm.info("Adding",c.id,c.nodes,c.dir),c.nodes=ta(c,y).nodes,y.push(c),k.set(u,c),u},"addSubGraph"),z=(0,l.K2)(function(t){for(let[e,s]of y.entries())if(s.id===t)return e;return -1},"getPosForId"),q=-1,H=[],Q=(0,l.K2)(function(t,e){let s=y[e].nodes;if((q+=1)>2e3)return{result:!1,count:0};if(H[q]=e,y[e].id===t)return{result:!0,count:0};let u=0,r=1;for(;u<s.length;){let e=z(s[u]);if(e>=0){let s=Q(t,e);if(s.result)return{result:!0,count:r+s.count};r+=s.count}u+=1}return{result:!1,count:r}},"indexNodes2"),Z=(0,l.K2)(function(t){return H[t]},"getDepthFirstPos"),J=(0,l.K2)(function(){q=-1,y.length>0&&Q("none",y.length-1)},"indexNodes"),tt=(0,l.K2)(function(){return y},"getSubGraphs"),te=(0,l.K2)(()=>!!m&&(m=!1,!0),"firstGraph"),ts=(0,l.K2)(t=>{let e=t.trim(),s="arrow_open";switch(e[0]){case"<":s="arrow_point",e=e.slice(1);break;case"x":s="arrow_cross",e=e.slice(1);break;case"o":s="arrow_circle",e=e.slice(1)}let u="normal";return e.includes("=")&&(u="thick"),e.includes(".")&&(u="dotted"),{type:s,stroke:u}},"destructStartLink"),tu=(0,l.K2)((t,e)=>{let s=e.length,u=0;for(let r=0;r<s;++r)e[r]===t&&++u;return u},"countChar"),tr=(0,l.K2)(t=>{let e=t.trim(),s=e.slice(0,-1),u="arrow_open";switch(e.slice(-1)){case"x":u="arrow_cross",e.startsWith("x")&&(u="double_"+u,s=s.slice(1));break;case">":u="arrow_point",e.startsWith("<")&&(u="double_"+u,s=s.slice(1));break;case"o":u="arrow_circle",e.startsWith("o")&&(u="double_"+u,s=s.slice(1))}let r="normal",i=s.length-1;s.startsWith("=")&&(r="thick"),s.startsWith("~")&&(r="invisible");let n=tu(".",s);return n&&(r="dotted",i=n),{type:u,stroke:r,length:i}},"destructEndLink"),ti=(0,l.K2)((t,e)=>{let s;let u=tr(t);if(e){if((s=ts(e)).stroke!==u.stroke)return{type:"INVALID",stroke:"INVALID"};if("arrow_open"===s.type)s.type=u.type;else{if(s.type!==u.type)return{type:"INVALID",stroke:"INVALID"};s.type="double_"+s.type}return"double_arrow"===s.type&&(s.type="double_arrow_point"),s.length=u.length,s}return u},"destructLink"),tn=(0,l.K2)((t,e)=>{for(let s of t)if(s.nodes.includes(e))return!0;return!1},"exists"),ta=(0,l.K2)((t,e)=>{let s=[];return t.nodes.forEach((u,r)=>{tn(e,u)||s.push(t.nodes[r])}),{nodes:s}},"makeUniq"),tl=(0,l.K2)(t=>"square"===t.type?"squareRect":"round"===t.type?"roundedRect":t.type??"squareRect","getTypeFromVertex"),to=(0,l.K2)((t,e)=>t.find(t=>t.id===e),"findNode"),tc=(0,l.K2)(t=>{let e="none",s="arrow_point";switch(t){case"arrow_point":case"arrow_circle":case"arrow_cross":s=t;break;case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":s=e=t.replace("double_","")}return{arrowTypeStart:e,arrowTypeEnd:s}},"destructEdgeType"),th=(0,l.K2)((t,e,s,u,r,i)=>{let n=s.get(t.id),a=u.get(t.id)??!1,l=to(e,t.id);l?(l.cssStyles=t.styles,l.cssCompiledStyles=td(t.classes),l.cssClasses=t.classes.join(" ")):e.push({id:t.id,label:t.text,labelStyle:"",parentId:n,padding:r.flowchart?.padding||8,cssStyles:t.styles,cssCompiledStyles:td(["default","node",...t.classes]),cssClasses:"default "+t.classes.join(" "),shape:tl(t),dir:t.dir,domId:t.domId,isGroup:a,look:i,link:t.link,linkTarget:t.linkTarget,tooltip:K(t.id)})},"addNodeFromVertex");function td(t){let e=[];for(let s of t){let t=f.get(s);t?.styles&&(e=[...e,...t.styles??[]].map(t=>t.trim())),t?.textStyles&&(e=[...e,...t.textStyles??[]].map(t=>t.trim()))}return e}(0,l.K2)(td,"getCompiledStyles");var tp=(0,l.K2)(()=>{let t=(0,l.D7)(),e=[],s=[],u=tt(),r=new Map,i=new Map;for(let t=u.length-1;t>=0;t--){let e=u[t];for(let t of(e.nodes.length>0&&i.set(e.id,!0),e.nodes))r.set(t,e.id)}for(let s=u.length-1;s>=0;s--){let i=u[s];e.push({id:i.id,label:i.title,labelStyle:"",parentId:r.get(i.id),padding:8,cssCompiledStyles:td(i.classes),cssClasses:i.classes.join(" "),shape:"rect",dir:i.dir,isGroup:!0,look:t.look})}M().forEach(s=>{th(s,e,r,i,t,t.look||"classic")});let n=V();return n.forEach((e,u)=>{let{arrowTypeStart:r,arrowTypeEnd:i}=tc(e.type),l=[...n.defaultStyle??[]];e.style&&l.push(...e.style);let o={id:(0,a.rY)(e.start,e.end,{counter:u,prefix:"L"}),start:e.start,end:e.end,type:e.type??"normal",label:e.text,labelpos:"c",thickness:e.stroke,minlen:e.length,classes:e?.stroke==="invisible"?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:e?.stroke==="invisible"?"none":r,arrowTypeEnd:e?.stroke==="invisible"?"none":i,arrowheadStyle:"fill: #333",labelStyle:l,style:l,pattern:e.stroke,look:t.look};s.push(o)}),{nodes:e,edges:s,other:{},config:t}},"getData"),tA={defaultConfig:(0,l.K2)(()=>l.ME.flowchart,"defaultConfig"),setAccTitle:l.SV,getAccTitle:l.iN,getAccDescription:l.m7,getData:tp,setAccDescription:l.EI,addVertex:T,lookUpDomId:x,addLink:S,updateLinkInterpolate:_,updateLink:B,addClass:v,setDirection:w,setClass:$,setTooltip:L,getTooltip:K,setClickEvent:N,setLink:I,bindFunctions:P,getDirection:O,getVertices:M,getEdges:V,getClasses:U,clear:W,setGen:Y,defaultStyle:j,addSubGraph:X,getDepthFirstPos:Z,indexNodes:J,getSubGraphs:tt,destructLink:ti,lex:{firstGraph:te},exists:tn,makeUniq:ta,setDiagramTitle:l.ke,getDiagramTitle:l.ab},tg=(0,l.K2)(function(t,e){return e.db.getClasses()},"getClasses"),tf=(0,l.K2)(async function(t,e,s,u){let r;l.Rm.info("REF0:"),l.Rm.info("Drawing state diagram (v2)",e);let{securityLevel:c,flowchart:h,layout:d}=(0,l.D7)();"sandbox"===c&&(r=(0,o.Ltv)("#i"+e));let p="sandbox"===c?r.nodes()[0].contentDocument:document;l.Rm.debug("Before getData: ");let A=u.db.getData();l.Rm.debug("Data: ",A);let g=(0,i.A)(e,c),f=O();A.type=u.type,A.layoutAlgorithm=(0,n.q7)(d),"dagre"===A.layoutAlgorithm&&"elk"===d&&l.Rm.warn("flowchart-elk was moved to an external package in Mermaid v11. Please refer [release notes](https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0) for more details. This diagram will be rendered using `dagre` layout as a fallback."),A.direction=f,A.nodeSpacing=h?.nodeSpacing||50,A.rankSpacing=h?.rankSpacing||50,A.markers=["point","circle","cross"],A.diagramId=e,l.Rm.debug("REF1:",A),await (0,n.XX)(A,g);let y=A.config.flowchart?.diagramPadding??8;for(let t of(a._K.insertTitle(g,"flowchartTitleText",h?.titleTopMargin||0,u.db.getDiagramTitle()),(0,i.P)(g,y,"flowchart",h?.useMaxWidth||!1),A.nodes)){let s=(0,o.Ltv)(`#${e} [id="${t.id}"]`);if(!s||!t.link)continue;let u=p.createElementNS("http://www.w3.org/2000/svg","a");u.setAttributeNS("http://www.w3.org/2000/svg","class",t.cssClasses),u.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),"sandbox"===c?u.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):t.linkTarget&&u.setAttributeNS("http://www.w3.org/2000/svg","target",t.linkTarget);let r=s.insert(function(){return u},":first-child"),i=s.select(".label-container");i&&r.append(function(){return i.node()});let n=s.select(".label");n&&r.append(function(){return n.node()})}},"draw"),ty=function(){var t=(0,l.K2)(function(t,e,s,u){for(s=s||{},u=t.length;u--;s[t[u]]=e);return s},"o"),e=[1,4],s=[1,3],u=[1,5],r=[1,8,9,10,11,27,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],i=[2,2],n=[1,13],a=[1,14],o=[1,15],c=[1,16],h=[1,23],d=[1,25],p=[1,26],A=[1,27],g=[1,49],f=[1,48],y=[1,29],k=[1,30],b=[1,31],E=[1,32],m=[1,33],D=[1,44],C=[1,46],x=[1,42],T=[1,47],F=[1,43],S=[1,50],_=[1,45],B=[1,51],v=[1,52],w=[1,34],$=[1,35],L=[1,36],R=[1,37],I=[1,57],K=[1,8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],N=[1,61],P=[1,60],O=[1,62],M=[8,9,11,73,75],V=[1,88],U=[1,93],G=[1,92],W=[1,89],Y=[1,85],j=[1,91],X=[1,87],z=[1,94],q=[1,90],H=[1,95],Q=[1,86],Z=[8,9,10,11,73,75],J=[8,9,10,11,44,73,75],tt=[8,9,10,11,29,42,44,46,48,50,52,54,56,58,61,63,65,66,68,73,75,86,99,102,103,106,108,111,112,113],te=[8,9,11,42,58,73,75,86,99,102,103,106,108,111,112,113],ts=[42,58,86,99,102,103,106,108,111,112,113],tu=[1,121],tr=[1,120],ti=[1,128],tn=[1,142],ta=[1,143],tl=[1,144],to=[1,145],tc=[1,130],th=[1,132],td=[1,136],tp=[1,137],tA=[1,138],tg=[1,139],tf=[1,140],ty=[1,141],tk=[1,146],tb=[1,147],tE=[1,126],tm=[1,127],tD=[1,134],tC=[1,129],tx=[1,133],tT=[1,131],tF=[8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],tS=[1,149],t_=[8,9,11],tB=[8,9,10,11,14,42,58,86,102,103,106,108,111,112,113],tv=[1,169],tw=[1,165],t$=[1,166],tL=[1,170],tR=[1,167],tI=[1,168],tK=[75,113,116],tN=[8,9,10,11,12,14,27,29,32,42,58,73,81,82,83,84,85,86,87,102,106,108,111,112,113],tP=[10,103],tO=[31,47,49,51,53,55,60,62,64,65,67,69,113,114,115],tM=[1,235],tV=[1,233],tU=[1,237],tG=[1,231],tW=[1,232],tY=[1,234],tj=[1,236],tX=[1,238],tz=[1,255],tq=[8,9,11,103],tH=[8,9,10,11,58,81,102,103,106,107,108,109],tQ={trace:(0,l.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,link:39,node:40,styledVertex:41,AMP:42,vertex:43,STYLE_SEPARATOR:44,idString:45,DOUBLECIRCLESTART:46,DOUBLECIRCLEEND:47,PS:48,PE:49,"(-":50,"-)":51,STADIUMSTART:52,STADIUMEND:53,SUBROUTINESTART:54,SUBROUTINEEND:55,VERTEX_WITH_PROPS_START:56,"NODE_STRING[field]":57,COLON:58,"NODE_STRING[value]":59,PIPE:60,CYLINDERSTART:61,CYLINDEREND:62,DIAMOND_START:63,DIAMOND_STOP:64,TAGEND:65,TRAPSTART:66,TRAPEND:67,INVTRAPSTART:68,INVTRAPEND:69,linkStatement:70,arrowText:71,TESTSTR:72,START_LINK:73,edgeText:74,LINK:75,edgeTextToken:76,STR:77,MD_STR:78,textToken:79,keywords:80,STYLE:81,LINKSTYLE:82,CLASSDEF:83,CLASS:84,CLICK:85,DOWN:86,UP:87,textNoTagsToken:88,stylesOpt:89,"idString[vertex]":90,"idString[class]":91,CALLBACKNAME:92,CALLBACKARGS:93,HREF:94,LINK_TARGET:95,"STR[link]":96,"STR[tooltip]":97,alphaNum:98,DEFAULT:99,numList:100,INTERPOLATE:101,NUM:102,COMMA:103,style:104,styleComponent:105,NODE_STRING:106,UNIT:107,BRKT:108,PCT:109,idStringToken:110,MINUS:111,MULT:112,UNICODE_TEXT:113,TEXT:114,TAGSTART:115,EDGE_TEXT:116,alphaNumToken:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",42:"AMP",44:"STYLE_SEPARATOR",46:"DOUBLECIRCLESTART",47:"DOUBLECIRCLEEND",48:"PS",49:"PE",50:"(-",51:"-)",52:"STADIUMSTART",53:"STADIUMEND",54:"SUBROUTINESTART",55:"SUBROUTINEEND",56:"VERTEX_WITH_PROPS_START",57:"NODE_STRING[field]",58:"COLON",59:"NODE_STRING[value]",60:"PIPE",61:"CYLINDERSTART",62:"CYLINDEREND",63:"DIAMOND_START",64:"DIAMOND_STOP",65:"TAGEND",66:"TRAPSTART",67:"TRAPEND",68:"INVTRAPSTART",69:"INVTRAPEND",72:"TESTSTR",73:"START_LINK",75:"LINK",77:"STR",78:"MD_STR",81:"STYLE",82:"LINKSTYLE",83:"CLASSDEF",84:"CLASS",85:"CLICK",86:"DOWN",87:"UP",90:"idString[vertex]",91:"idString[class]",92:"CALLBACKNAME",93:"CALLBACKARGS",94:"HREF",95:"LINK_TARGET",96:"STR[link]",97:"STR[tooltip]",99:"DEFAULT",101:"INTERPOLATE",102:"NUM",103:"COMMA",106:"NODE_STRING",107:"UNIT",108:"BRKT",109:"PCT",111:"MINUS",112:"MULT",113:"UNICODE_TEXT",114:"TEXT",115:"TAGSTART",116:"EDGE_TEXT",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[20,3],[20,4],[20,2],[20,1],[40,1],[40,5],[41,1],[41,3],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,8],[43,4],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,4],[43,4],[43,1],[39,2],[39,3],[39,3],[39,1],[39,3],[74,1],[74,2],[74,1],[74,1],[70,1],[71,3],[30,1],[30,2],[30,1],[30,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[100,1],[100,3],[89,1],[89,3],[104,1],[104,2],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[79,1],[79,1],[79,1],[79,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[76,1],[76,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[45,1],[45,2],[98,1],[98,2],[33,1],[33,1],[33,1],[33,1]],performAction:(0,l.K2)(function(t,e,s,u,r,i,n){var a=i.length-1;switch(r){case 2:case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 3:(!Array.isArray(i[a])||i[a].length>0)&&i[a-1].push(i[a]),this.$=i[a-1];break;case 4:case 176:case 49:case 71:case 174:this.$=i[a];break;case 11:u.setDirection("TB"),this.$="TB";break;case 12:u.setDirection(i[a-1]),this.$=i[a-1];break;case 27:this.$=i[a-1].nodes;break;case 33:this.$=u.addSubGraph(i[a-6],i[a-1],i[a-4]);break;case 34:this.$=u.addSubGraph(i[a-3],i[a-1],i[a-3]);break;case 35:this.$=u.addSubGraph(void 0,i[a-1],void 0);break;case 37:this.$=i[a].trim(),u.setAccTitle(this.$);break;case 38:case 39:this.$=i[a].trim(),u.setAccDescription(this.$);break;case 43:u.addLink(i[a-2].stmt,i[a],i[a-1]),this.$={stmt:i[a],nodes:i[a].concat(i[a-2].nodes)};break;case 44:u.addLink(i[a-3].stmt,i[a-1],i[a-2]),this.$={stmt:i[a-1],nodes:i[a-1].concat(i[a-3].nodes)};break;case 45:this.$={stmt:i[a-1],nodes:i[a-1]};break;case 46:this.$={stmt:i[a],nodes:i[a]};break;case 47:case 121:case 123:this.$=[i[a]];break;case 48:this.$=i[a-4].concat(i[a]);break;case 50:this.$=i[a-2],u.setClass(i[a-2],i[a]);break;case 51:this.$=i[a-3],u.addVertex(i[a-3],i[a-1],"square");break;case 52:this.$=i[a-3],u.addVertex(i[a-3],i[a-1],"doublecircle");break;case 53:this.$=i[a-5],u.addVertex(i[a-5],i[a-2],"circle");break;case 54:this.$=i[a-3],u.addVertex(i[a-3],i[a-1],"ellipse");break;case 55:this.$=i[a-3],u.addVertex(i[a-3],i[a-1],"stadium");break;case 56:this.$=i[a-3],u.addVertex(i[a-3],i[a-1],"subroutine");break;case 57:this.$=i[a-7],u.addVertex(i[a-7],i[a-1],"rect",void 0,void 0,void 0,Object.fromEntries([[i[a-5],i[a-3]]]));break;case 58:this.$=i[a-3],u.addVertex(i[a-3],i[a-1],"cylinder");break;case 59:this.$=i[a-3],u.addVertex(i[a-3],i[a-1],"round");break;case 60:this.$=i[a-3],u.addVertex(i[a-3],i[a-1],"diamond");break;case 61:this.$=i[a-5],u.addVertex(i[a-5],i[a-2],"hexagon");break;case 62:this.$=i[a-3],u.addVertex(i[a-3],i[a-1],"odd");break;case 63:this.$=i[a-3],u.addVertex(i[a-3],i[a-1],"trapezoid");break;case 64:this.$=i[a-3],u.addVertex(i[a-3],i[a-1],"inv_trapezoid");break;case 65:this.$=i[a-3],u.addVertex(i[a-3],i[a-1],"lean_right");break;case 66:this.$=i[a-3],u.addVertex(i[a-3],i[a-1],"lean_left");break;case 67:this.$=i[a],u.addVertex(i[a]);break;case 68:i[a-1].text=i[a],this.$=i[a-1];break;case 69:case 70:i[a-2].text=i[a-1],this.$=i[a-2];break;case 72:var l=u.destructLink(i[a],i[a-2]);this.$={type:l.type,stroke:l.stroke,length:l.length,text:i[a-1]};break;case 73:case 79:case 94:case 96:this.$={text:i[a],type:"text"};break;case 74:case 80:case 95:this.$={text:i[a-1].text+""+i[a],type:i[a-1].type};break;case 75:case 81:this.$={text:i[a],type:"string"};break;case 76:case 82:case 97:this.$={text:i[a],type:"markdown"};break;case 77:var l=u.destructLink(i[a]);this.$={type:l.type,stroke:l.stroke,length:l.length};break;case 78:this.$=i[a-1];break;case 98:this.$=i[a-4],u.addClass(i[a-2],i[a]);break;case 99:this.$=i[a-4],u.setClass(i[a-2],i[a]);break;case 100:case 108:this.$=i[a-1],u.setClickEvent(i[a-1],i[a]);break;case 101:case 109:this.$=i[a-3],u.setClickEvent(i[a-3],i[a-2]),u.setTooltip(i[a-3],i[a]);break;case 102:this.$=i[a-2],u.setClickEvent(i[a-2],i[a-1],i[a]);break;case 103:this.$=i[a-4],u.setClickEvent(i[a-4],i[a-3],i[a-2]),u.setTooltip(i[a-4],i[a]);break;case 104:this.$=i[a-2],u.setLink(i[a-2],i[a]);break;case 105:this.$=i[a-4],u.setLink(i[a-4],i[a-2]),u.setTooltip(i[a-4],i[a]);break;case 106:this.$=i[a-4],u.setLink(i[a-4],i[a-2],i[a]);break;case 107:this.$=i[a-6],u.setLink(i[a-6],i[a-4],i[a]),u.setTooltip(i[a-6],i[a-2]);break;case 110:this.$=i[a-1],u.setLink(i[a-1],i[a]);break;case 111:this.$=i[a-3],u.setLink(i[a-3],i[a-2]),u.setTooltip(i[a-3],i[a]);break;case 112:this.$=i[a-3],u.setLink(i[a-3],i[a-2],i[a]);break;case 113:this.$=i[a-5],u.setLink(i[a-5],i[a-4],i[a]),u.setTooltip(i[a-5],i[a-2]);break;case 114:this.$=i[a-4],u.addVertex(i[a-2],void 0,void 0,i[a]);break;case 115:this.$=i[a-4],u.updateLink([i[a-2]],i[a]);break;case 116:this.$=i[a-4],u.updateLink(i[a-2],i[a]);break;case 117:this.$=i[a-8],u.updateLinkInterpolate([i[a-6]],i[a-2]),u.updateLink([i[a-6]],i[a]);break;case 118:this.$=i[a-8],u.updateLinkInterpolate(i[a-6],i[a-2]),u.updateLink(i[a-6],i[a]);break;case 119:this.$=i[a-6],u.updateLinkInterpolate([i[a-4]],i[a]);break;case 120:this.$=i[a-6],u.updateLinkInterpolate(i[a-4],i[a]);break;case 122:case 124:i[a-2].push(i[a]),this.$=i[a-2];break;case 126:this.$=i[a-1]+i[a];break;case 175:case 177:this.$=i[a-1]+""+i[a];break;case 178:this.$={stmt:"dir",value:"TB"};break;case 179:this.$={stmt:"dir",value:"BT"};break;case 180:this.$={stmt:"dir",value:"RL"};break;case 181:this.$={stmt:"dir",value:"LR"}}},"anonymous"),table:[{3:1,4:2,9:e,10:s,12:u},{1:[3]},t(r,i,{5:6}),{4:7,9:e,10:s,12:u},{4:8,9:e,10:s,12:u},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:n,9:a,10:o,11:c,20:17,22:18,23:19,24:20,25:21,26:22,27:h,33:24,34:d,36:p,38:A,40:28,41:38,42:g,43:39,45:40,58:f,81:y,82:k,83:b,84:E,85:m,86:D,99:C,102:x,103:T,106:F,108:S,110:41,111:_,112:B,113:v,118:w,119:$,120:L,121:R},t(r,[2,9]),t(r,[2,10]),t(r,[2,11]),{8:[1,54],9:[1,55],10:I,15:53,18:56},t(K,[2,3]),t(K,[2,4]),t(K,[2,5]),t(K,[2,6]),t(K,[2,7]),t(K,[2,8]),{8:N,9:P,11:O,21:58,39:59,70:63,73:[1,64],75:[1,65]},{8:N,9:P,11:O,21:66},{8:N,9:P,11:O,21:67},{8:N,9:P,11:O,21:68},{8:N,9:P,11:O,21:69},{8:N,9:P,11:O,21:70},{8:N,9:P,10:[1,71],11:O,21:72},t(K,[2,36]),{35:[1,73]},{37:[1,74]},t(K,[2,39]),t(M,[2,46],{18:75,10:I}),{10:[1,76]},{10:[1,77]},{10:[1,78]},{10:[1,79]},{14:V,42:U,58:G,77:[1,83],86:W,92:[1,80],94:[1,81],98:82,102:Y,103:j,106:X,108:z,111:q,112:H,113:Q,117:84},t(K,[2,178]),t(K,[2,179]),t(K,[2,180]),t(K,[2,181]),t(Z,[2,47]),t(Z,[2,49],{44:[1,96]}),t(J,[2,67],{110:109,29:[1,97],42:g,46:[1,98],48:[1,99],50:[1,100],52:[1,101],54:[1,102],56:[1,103],58:f,61:[1,104],63:[1,105],65:[1,106],66:[1,107],68:[1,108],86:D,99:C,102:x,103:T,106:F,108:S,111:_,112:B,113:v}),t(tt,[2,174]),t(tt,[2,135]),t(tt,[2,136]),t(tt,[2,137]),t(tt,[2,138]),t(tt,[2,139]),t(tt,[2,140]),t(tt,[2,141]),t(tt,[2,142]),t(tt,[2,143]),t(tt,[2,144]),t(tt,[2,145]),t(r,[2,12]),t(r,[2,18]),t(r,[2,19]),{9:[1,110]},t(te,[2,26],{18:111,10:I}),t(K,[2,27]),{40:112,41:38,42:g,43:39,45:40,58:f,86:D,99:C,102:x,103:T,106:F,108:S,110:41,111:_,112:B,113:v},t(K,[2,40]),t(K,[2,41]),t(K,[2,42]),t(ts,[2,71],{71:113,60:[1,115],72:[1,114]}),{74:116,76:117,77:[1,118],78:[1,119],113:tu,116:tr},t([42,58,60,72,86,99,102,103,106,108,111,112,113],[2,77]),t(K,[2,28]),t(K,[2,29]),t(K,[2,30]),t(K,[2,31]),t(K,[2,32]),{10:ti,12:tn,14:ta,27:tl,28:122,32:to,42:tc,58:th,73:td,77:[1,124],78:[1,125],80:135,81:tp,82:tA,83:tg,84:tf,85:ty,86:tk,87:tb,88:123,102:tE,106:tm,108:tD,111:tC,112:tx,113:tT},t(tF,i,{5:148}),t(K,[2,37]),t(K,[2,38]),t(M,[2,45],{42:tS}),{42:g,45:150,58:f,86:D,99:C,102:x,103:T,106:F,108:S,110:41,111:_,112:B,113:v},{99:[1,151],100:152,102:[1,153]},{42:g,45:154,58:f,86:D,99:C,102:x,103:T,106:F,108:S,110:41,111:_,112:B,113:v},{42:g,45:155,58:f,86:D,99:C,102:x,103:T,106:F,108:S,110:41,111:_,112:B,113:v},t(t_,[2,100],{10:[1,156],93:[1,157]}),{77:[1,158]},t(t_,[2,108],{117:160,10:[1,159],14:V,42:U,58:G,86:W,102:Y,103:j,106:X,108:z,111:q,112:H,113:Q}),t(t_,[2,110],{10:[1,161]}),t(tB,[2,176]),t(tB,[2,163]),t(tB,[2,164]),t(tB,[2,165]),t(tB,[2,166]),t(tB,[2,167]),t(tB,[2,168]),t(tB,[2,169]),t(tB,[2,170]),t(tB,[2,171]),t(tB,[2,172]),t(tB,[2,173]),{42:g,45:162,58:f,86:D,99:C,102:x,103:T,106:F,108:S,110:41,111:_,112:B,113:v},{30:163,65:tv,77:tw,78:t$,79:164,113:tL,114:tR,115:tI},{30:171,65:tv,77:tw,78:t$,79:164,113:tL,114:tR,115:tI},{30:173,48:[1,172],65:tv,77:tw,78:t$,79:164,113:tL,114:tR,115:tI},{30:174,65:tv,77:tw,78:t$,79:164,113:tL,114:tR,115:tI},{30:175,65:tv,77:tw,78:t$,79:164,113:tL,114:tR,115:tI},{30:176,65:tv,77:tw,78:t$,79:164,113:tL,114:tR,115:tI},{106:[1,177]},{30:178,65:tv,77:tw,78:t$,79:164,113:tL,114:tR,115:tI},{30:179,63:[1,180],65:tv,77:tw,78:t$,79:164,113:tL,114:tR,115:tI},{30:181,65:tv,77:tw,78:t$,79:164,113:tL,114:tR,115:tI},{30:182,65:tv,77:tw,78:t$,79:164,113:tL,114:tR,115:tI},{30:183,65:tv,77:tw,78:t$,79:164,113:tL,114:tR,115:tI},t(tt,[2,175]),t(r,[2,20]),t(te,[2,25]),t(M,[2,43],{18:184,10:I}),t(ts,[2,68],{10:[1,185]}),{10:[1,186]},{30:187,65:tv,77:tw,78:t$,79:164,113:tL,114:tR,115:tI},{75:[1,188],76:189,113:tu,116:tr},t(tK,[2,73]),t(tK,[2,75]),t(tK,[2,76]),t(tK,[2,161]),t(tK,[2,162]),{8:N,9:P,10:ti,11:O,12:tn,14:ta,21:191,27:tl,29:[1,190],32:to,42:tc,58:th,73:td,80:135,81:tp,82:tA,83:tg,84:tf,85:ty,86:tk,87:tb,88:192,102:tE,106:tm,108:tD,111:tC,112:tx,113:tT},t(tN,[2,94]),t(tN,[2,96]),t(tN,[2,97]),t(tN,[2,150]),t(tN,[2,151]),t(tN,[2,152]),t(tN,[2,153]),t(tN,[2,154]),t(tN,[2,155]),t(tN,[2,156]),t(tN,[2,157]),t(tN,[2,158]),t(tN,[2,159]),t(tN,[2,160]),t(tN,[2,83]),t(tN,[2,84]),t(tN,[2,85]),t(tN,[2,86]),t(tN,[2,87]),t(tN,[2,88]),t(tN,[2,89]),t(tN,[2,90]),t(tN,[2,91]),t(tN,[2,92]),t(tN,[2,93]),{6:11,7:12,8:n,9:a,10:o,11:c,20:17,22:18,23:19,24:20,25:21,26:22,27:h,32:[1,193],33:24,34:d,36:p,38:A,40:28,41:38,42:g,43:39,45:40,58:f,81:y,82:k,83:b,84:E,85:m,86:D,99:C,102:x,103:T,106:F,108:S,110:41,111:_,112:B,113:v,118:w,119:$,120:L,121:R},{10:I,18:194},{10:[1,195],42:g,58:f,86:D,99:C,102:x,103:T,106:F,108:S,110:109,111:_,112:B,113:v},{10:[1,196]},{10:[1,197],103:[1,198]},t(tP,[2,121]),{10:[1,199],42:g,58:f,86:D,99:C,102:x,103:T,106:F,108:S,110:109,111:_,112:B,113:v},{10:[1,200],42:g,58:f,86:D,99:C,102:x,103:T,106:F,108:S,110:109,111:_,112:B,113:v},{77:[1,201]},t(t_,[2,102],{10:[1,202]}),t(t_,[2,104],{10:[1,203]}),{77:[1,204]},t(tB,[2,177]),{77:[1,205],95:[1,206]},t(Z,[2,50],{110:109,42:g,58:f,86:D,99:C,102:x,103:T,106:F,108:S,111:_,112:B,113:v}),{31:[1,207],65:tv,79:208,113:tL,114:tR,115:tI},t(tO,[2,79]),t(tO,[2,81]),t(tO,[2,82]),t(tO,[2,146]),t(tO,[2,147]),t(tO,[2,148]),t(tO,[2,149]),{47:[1,209],65:tv,79:208,113:tL,114:tR,115:tI},{30:210,65:tv,77:tw,78:t$,79:164,113:tL,114:tR,115:tI},{49:[1,211],65:tv,79:208,113:tL,114:tR,115:tI},{51:[1,212],65:tv,79:208,113:tL,114:tR,115:tI},{53:[1,213],65:tv,79:208,113:tL,114:tR,115:tI},{55:[1,214],65:tv,79:208,113:tL,114:tR,115:tI},{58:[1,215]},{62:[1,216],65:tv,79:208,113:tL,114:tR,115:tI},{64:[1,217],65:tv,79:208,113:tL,114:tR,115:tI},{30:218,65:tv,77:tw,78:t$,79:164,113:tL,114:tR,115:tI},{31:[1,219],65:tv,79:208,113:tL,114:tR,115:tI},{65:tv,67:[1,220],69:[1,221],79:208,113:tL,114:tR,115:tI},{65:tv,67:[1,223],69:[1,222],79:208,113:tL,114:tR,115:tI},t(M,[2,44],{42:tS}),t(ts,[2,70]),t(ts,[2,69]),{60:[1,224],65:tv,79:208,113:tL,114:tR,115:tI},t(ts,[2,72]),t(tK,[2,74]),{30:225,65:tv,77:tw,78:t$,79:164,113:tL,114:tR,115:tI},t(tF,i,{5:226}),t(tN,[2,95]),t(K,[2,35]),{41:227,42:g,43:39,45:40,58:f,86:D,99:C,102:x,103:T,106:F,108:S,110:41,111:_,112:B,113:v},{10:tM,58:tV,81:tU,89:228,102:tG,104:229,105:230,106:tW,107:tY,108:tj,109:tX},{10:tM,58:tV,81:tU,89:239,101:[1,240],102:tG,104:229,105:230,106:tW,107:tY,108:tj,109:tX},{10:tM,58:tV,81:tU,89:241,101:[1,242],102:tG,104:229,105:230,106:tW,107:tY,108:tj,109:tX},{102:[1,243]},{10:tM,58:tV,81:tU,89:244,102:tG,104:229,105:230,106:tW,107:tY,108:tj,109:tX},{42:g,45:245,58:f,86:D,99:C,102:x,103:T,106:F,108:S,110:41,111:_,112:B,113:v},t(t_,[2,101]),{77:[1,246]},{77:[1,247],95:[1,248]},t(t_,[2,109]),t(t_,[2,111],{10:[1,249]}),t(t_,[2,112]),t(J,[2,51]),t(tO,[2,80]),t(J,[2,52]),{49:[1,250],65:tv,79:208,113:tL,114:tR,115:tI},t(J,[2,59]),t(J,[2,54]),t(J,[2,55]),t(J,[2,56]),{106:[1,251]},t(J,[2,58]),t(J,[2,60]),{64:[1,252],65:tv,79:208,113:tL,114:tR,115:tI},t(J,[2,62]),t(J,[2,63]),t(J,[2,65]),t(J,[2,64]),t(J,[2,66]),t([10,42,58,86,99,102,103,106,108,111,112,113],[2,78]),{31:[1,253],65:tv,79:208,113:tL,114:tR,115:tI},{6:11,7:12,8:n,9:a,10:o,11:c,20:17,22:18,23:19,24:20,25:21,26:22,27:h,32:[1,254],33:24,34:d,36:p,38:A,40:28,41:38,42:g,43:39,45:40,58:f,81:y,82:k,83:b,84:E,85:m,86:D,99:C,102:x,103:T,106:F,108:S,110:41,111:_,112:B,113:v,118:w,119:$,120:L,121:R},t(Z,[2,48]),t(t_,[2,114],{103:tz}),t(tq,[2,123],{105:256,10:tM,58:tV,81:tU,102:tG,106:tW,107:tY,108:tj,109:tX}),t(tH,[2,125]),t(tH,[2,127]),t(tH,[2,128]),t(tH,[2,129]),t(tH,[2,130]),t(tH,[2,131]),t(tH,[2,132]),t(tH,[2,133]),t(tH,[2,134]),t(t_,[2,115],{103:tz}),{10:[1,257]},t(t_,[2,116],{103:tz}),{10:[1,258]},t(tP,[2,122]),t(t_,[2,98],{103:tz}),t(t_,[2,99],{110:109,42:g,58:f,86:D,99:C,102:x,103:T,106:F,108:S,111:_,112:B,113:v}),t(t_,[2,103]),t(t_,[2,105],{10:[1,259]}),t(t_,[2,106]),{95:[1,260]},{49:[1,261]},{60:[1,262]},{64:[1,263]},{8:N,9:P,11:O,21:264},t(K,[2,34]),{10:tM,58:tV,81:tU,102:tG,104:265,105:230,106:tW,107:tY,108:tj,109:tX},t(tH,[2,126]),{14:V,42:U,58:G,86:W,98:266,102:Y,103:j,106:X,108:z,111:q,112:H,113:Q,117:84},{14:V,42:U,58:G,86:W,98:267,102:Y,103:j,106:X,108:z,111:q,112:H,113:Q,117:84},{95:[1,268]},t(t_,[2,113]),t(J,[2,53]),{30:269,65:tv,77:tw,78:t$,79:164,113:tL,114:tR,115:tI},t(J,[2,61]),t(tF,i,{5:270}),t(tq,[2,124],{105:256,10:tM,58:tV,81:tU,102:tG,106:tW,107:tY,108:tj,109:tX}),t(t_,[2,119],{117:160,10:[1,271],14:V,42:U,58:G,86:W,102:Y,103:j,106:X,108:z,111:q,112:H,113:Q}),t(t_,[2,120],{117:160,10:[1,272],14:V,42:U,58:G,86:W,102:Y,103:j,106:X,108:z,111:q,112:H,113:Q}),t(t_,[2,107]),{31:[1,273],65:tv,79:208,113:tL,114:tR,115:tI},{6:11,7:12,8:n,9:a,10:o,11:c,20:17,22:18,23:19,24:20,25:21,26:22,27:h,32:[1,274],33:24,34:d,36:p,38:A,40:28,41:38,42:g,43:39,45:40,58:f,81:y,82:k,83:b,84:E,85:m,86:D,99:C,102:x,103:T,106:F,108:S,110:41,111:_,112:B,113:v,118:w,119:$,120:L,121:R},{10:tM,58:tV,81:tU,89:275,102:tG,104:229,105:230,106:tW,107:tY,108:tj,109:tX},{10:tM,58:tV,81:tU,89:276,102:tG,104:229,105:230,106:tW,107:tY,108:tj,109:tX},t(J,[2,57]),t(K,[2,33]),t(t_,[2,117],{103:tz}),t(t_,[2,118],{103:tz})],defaultActions:{},parseError:(0,l.K2)(function(t,e){if(e.recoverable)this.trace(t);else{var s=Error(t);throw s.hash=e,s}},"parseError"),parse:(0,l.K2)(function(t){var e=this,s=[0],u=[],r=[null],i=[],n=this.table,a="",o=0,c=0,h=0,d=i.slice.call(arguments,1),p=Object.create(this.lexer),A={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(A.yy[g]=this.yy[g]);p.setInput(t,A.yy),A.yy.lexer=p,A.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var f=p.yylloc;i.push(f);var y=p.options&&p.options.ranges;function k(){var t;return"number"!=typeof(t=u.pop()||p.lex()||1)&&(t instanceof Array&&(t=(u=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof A.yy.parseError?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,l.K2)(function(t){s.length=s.length-2*t,r.length=r.length-t,i.length=i.length-t},"popStack"),(0,l.K2)(k,"lex");for(var b,E,m,D,C,x,T,F,S,_={};;){if(m=s[s.length-1],this.defaultActions[m]?D=this.defaultActions[m]:(null==b&&(b=k()),D=n[m]&&n[m][b]),void 0===D||!D.length||!D[0]){var B="";for(x in S=[],n[m])this.terminals_[x]&&x>2&&S.push("'"+this.terminals_[x]+"'");B=p.showPosition?"Parse error on line "+(o+1)+":\n"+p.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==b?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(B,{text:p.match,token:this.terminals_[b]||b,line:p.yylineno,loc:f,expected:S})}if(D[0]instanceof Array&&D.length>1)throw Error("Parse Error: multiple actions possible at state: "+m+", token: "+b);switch(D[0]){case 1:s.push(b),r.push(p.yytext),i.push(p.yylloc),s.push(D[1]),b=null,E?(b=E,E=null):(c=p.yyleng,a=p.yytext,o=p.yylineno,f=p.yylloc,h>0&&h--);break;case 2:if(T=this.productions_[D[1]][1],_.$=r[r.length-T],_._$={first_line:i[i.length-(T||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(T||1)].first_column,last_column:i[i.length-1].last_column},y&&(_._$.range=[i[i.length-(T||1)].range[0],i[i.length-1].range[1]]),void 0!==(C=this.performAction.apply(_,[a,c,o,A.yy,D[1],r,i].concat(d))))return C;T&&(s=s.slice(0,-1*T*2),r=r.slice(0,-1*T),i=i.slice(0,-1*T)),s.push(this.productions_[D[1]][0]),r.push(_.$),i.push(_._$),F=n[s[s.length-2]][s[s.length-1]],s.push(F);break;case 3:return!0}}return!0},"parse")},tZ={EOF:1,parseError:(0,l.K2)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,l.K2)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,l.K2)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,l.K2)(function(t){var e=t.length,s=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),s.length-1&&(this.yylineno-=s.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===u.length?this.yylloc.first_column:0)+u[u.length-s.length].length-s[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,l.K2)(function(){return this._more=!0,this},"more"),reject:(0,l.K2)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,l.K2)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,l.K2)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,l.K2)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,l.K2)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,l.K2)(function(t,e){var s,u,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),(u=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],s=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack)for(var i in r)this[i]=r[i];return!1},"test_match"),next:(0,l.K2)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,s,u,r=this._currentRules(),i=0;i<r.length;i++)if((s=this._input.match(this.rules[r[i]]))&&(!e||s[0].length>e[0].length)){if(e=s,u=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(s,r[i])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,r[u]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,l.K2)(function(){return this.next()||this.lex()},"lex"),begin:(0,l.K2)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,l.K2)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,l.K2)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,l.K2)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,l.K2)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,l.K2)(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:(0,l.K2)(function(t,e,s,u){switch(s){case 0:return this.begin("acc_title"),34;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),36;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:case 8:case 11:case 14:case 17:case 27:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:this.begin("callbackname");break;case 9:this.popState(),this.begin("callbackargs");break;case 10:return 92;case 12:return 93;case 13:return"MD_STR";case 15:this.begin("md_string");break;case 16:return"STR";case 18:this.pushState("string");break;case 19:return 81;case 20:return 99;case 21:return 82;case 22:return 101;case 23:return 83;case 24:return 84;case 25:return 94;case 26:this.begin("click");break;case 28:return 85;case 29:case 30:case 31:return t.lex.firstGraph()&&this.begin("dir"),12;case 32:return 27;case 33:return 32;case 34:case 35:case 36:case 37:return 95;case 38:return this.popState(),13;case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 48:return this.popState(),14;case 49:return 118;case 50:return 119;case 51:return 120;case 52:return 121;case 53:return 102;case 54:case 95:return 108;case 55:return 44;case 56:return 58;case 57:case 96:return 42;case 58:return 8;case 59:return 103;case 60:case 94:return 112;case 61:case 64:case 67:return this.popState(),75;case 62:return this.pushState("edgeText"),73;case 63:case 66:case 69:return 116;case 65:return this.pushState("thickEdgeText"),73;case 68:return this.pushState("dottedEdgeText"),73;case 70:return 75;case 71:return this.popState(),51;case 72:case 108:return"TEXT";case 73:return this.pushState("ellipseText"),50;case 74:return this.popState(),53;case 75:return this.pushState("text"),52;case 76:return this.popState(),55;case 77:return this.pushState("text"),54;case 78:return 56;case 79:return this.pushState("text"),65;case 80:return this.popState(),62;case 81:return this.pushState("text"),61;case 82:return this.popState(),47;case 83:return this.pushState("text"),46;case 84:return this.popState(),67;case 85:return this.popState(),69;case 86:return 114;case 87:return this.pushState("trapText"),66;case 88:return this.pushState("trapText"),68;case 89:return 115;case 90:return 65;case 91:return 87;case 92:return"SEP";case 93:return 86;case 97:return 106;case 98:return 111;case 99:return 113;case 100:return this.popState(),60;case 101:return this.pushState("text"),60;case 102:return this.popState(),49;case 103:return this.pushState("text"),48;case 104:return this.popState(),31;case 105:return this.pushState("text"),29;case 106:return this.popState(),64;case 107:return this.pushState("text"),63;case 109:return"QUOTE";case 110:return 9;case 111:return 10;case 112:return 11}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{callbackargs:{rules:[11,12,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},callbackname:{rules:[8,9,10,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},href:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},click:{rules:[15,18,27,28,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dottedEdgeText:{rules:[15,18,67,69,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},thickEdgeText:{rules:[15,18,64,66,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},edgeText:{rules:[15,18,61,63,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},trapText:{rules:[15,18,70,73,75,77,81,83,84,85,86,87,88,101,103,105,107],inclusive:!1},ellipseText:{rules:[15,18,70,71,72,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},text:{rules:[15,18,70,73,74,75,76,77,80,81,82,83,87,88,100,101,102,103,104,105,106,107,108],inclusive:!1},vertex:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dir:{rules:[15,18,38,39,40,41,42,43,44,45,46,47,48,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr_multiline:{rules:[5,6,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr:{rules:[3,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_title:{rules:[1,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},md_string:{rules:[13,14,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},string:{rules:[15,16,17,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},INITIAL:{rules:[0,2,4,7,15,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,49,50,51,52,53,54,55,56,57,58,59,60,61,62,64,65,67,68,70,73,75,77,78,79,81,83,87,88,89,90,91,92,93,94,95,96,97,98,99,101,103,105,107,109,110,111,112],inclusive:!0}}};function tJ(){this.yy={}}return tQ.lexer=tZ,(0,l.K2)(tJ,"Parser"),tJ.prototype=tQ,tQ.Parser=tJ,new tJ}();ty.parser=ty;var tk=(0,l.K2)((t,e)=>{let s=c.A,u=s(t,"r"),r=s(t,"g"),i=s(t,"b");return h.A(u,r,i,e)},"fade"),tb={parser:ty,db:tA,renderer:{getClasses:tg,draw:tf},styles:(0,l.K2)(t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span { + color: ${t.titleColor}; + } + .cluster-label span p { + background-color: transparent; + } + + .label text,span { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + .rough-node .label text , .node .label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .katex path { + fill: #000; + stroke: #000; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${tk(t.edgeLabelBackground,.5)}; + // background-color: + } + + .cluster rect { + fill: ${t.clusterBkg}; + stroke: ${t.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${t.titleColor}; + } + + .cluster span { + color: ${t.titleColor}; + } + /* .cluster div { + color: ${t.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } +`,"getStyles"),init:(0,l.K2)(t=>{t.flowchart||(t.flowchart={}),t.layout&&(0,l.XV)({layout:t.layout}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,(0,l.XV)({flowchart:{arrowMarkerAbsolute:t.arrowMarkerAbsolute}}),tA.clear(),tA.setGen("gen-2")},"init")}}}]); \ No newline at end of file diff --git a/assets/js/32a09314.a65adb4d.js b/assets/js/32a09314.a65adb4d.js new file mode 100644 index 0000000000..226df94ede --- /dev/null +++ b/assets/js/32a09314.a65adb4d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7292],{37527:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>r,contentTitle:()=>o,default:()=>c,frontMatter:()=>d,metadata:()=>i,toc:()=>a});let i=JSON.parse('{"id":"tests/visibility/some-unlisteds/unlisted1","title":"Some Unlisteds - Unlisted 1","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-unlisteds/unlisted1.mdx","sourceDirName":"tests/visibility/some-unlisteds","slug":"/tests/visibility/some-unlisteds/unlisted1","permalink":"/tests/docs/tests/visibility/some-unlisteds/unlisted1","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"}');var n=s(62540),l=s(43023);let d={unlisted:!0,tags:["visibility","unlisted"]},o="Some Unlisteds - Unlisted 1",r={},a=[];function u(e){let t={h1:"h1",header:"header",p:"p",...(0,l.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"some-unlisteds---unlisted-1",children:"Some Unlisteds - Unlisted 1"})}),"\n",(0,n.jsx)(t.p,{children:"Doc with unlisted front matter"})]})}function c(e={}){let{wrapper:t}={...(0,l.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}c.displayName="MDXContent(_dogfooding/_docs tests/tests/visibility/some-unlisteds/unlisted1.mdx)"},43023:(e,t,s)=>{s.d(t,{R:()=>d,x:()=>o});var i=s(63696);let n={},l=i.createContext(n);function d(e){let t=i.useContext(l);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:d(e.components),i.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/32a09314.ff29fa48.js b/assets/js/32a09314.ff29fa48.js deleted file mode 100644 index d1d9e0a306..0000000000 --- a/assets/js/32a09314.ff29fa48.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7292],{37527:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>r,contentTitle:()=>o,default:()=>c,frontMatter:()=>d,metadata:()=>i,toc:()=>a});let i=JSON.parse('{"id":"tests/visibility/some-unlisteds/unlisted1","title":"Some Unlisteds - Unlisted 1","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-unlisteds/unlisted1.mdx","sourceDirName":"tests/visibility/some-unlisteds","slug":"/tests/visibility/some-unlisteds/unlisted1","permalink":"/tests/docs/tests/visibility/some-unlisteds/unlisted1","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"}');var n=s(62540),l=s(43023);let d={unlisted:!0,tags:["visibility","unlisted"]},o="Some Unlisteds - Unlisted 1",r={},a=[];function u(e){let t={h1:"h1",header:"header",p:"p",...(0,l.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"some-unlisteds---unlisted-1",children:"Some Unlisteds - Unlisted 1"})}),"\n",(0,n.jsx)(t.p,{children:"Doc with unlisted front matter"})]})}function c(e={}){let{wrapper:t}={...(0,l.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}c.displayName="MDXContent(_dogfooding/_docs tests/tests/visibility/some-unlisteds/unlisted1.mdx)"},43023:(e,t,s)=>{s.d(t,{R:()=>d,x:()=>o});var i=s(63696);let n={},l=i.createContext(n);function d(e){let t=i.useContext(l);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:d(e.components),i.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/33076.5d9fa582.js b/assets/js/33076.5d9fa582.js new file mode 100644 index 0000000000..e03d20fdb3 --- /dev/null +++ b/assets/js/33076.5d9fa582.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[33076],{33076:(e,t,r)=>{r.d(t,{default:()=>aU});class a{constructor(e,t,r){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=t,this.end=r}static range(e,t){return t?e&&e.loc&&t.loc&&e.loc.lexer===t.loc.lexer?new a(e.loc.lexer,e.loc.start,t.loc.end):null:e&&e.loc}}class n{constructor(e,t){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=t}range(e,t){return new n(t,a.range(this,e))}}class i{constructor(e,t){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var r="KaTeX parse error: "+e,a=t&&t.loc;if(a&&a.start<=a.end){var n,s,o=a.lexer.input;n=a.start,s=a.end,n===o.length?r+=" at end of input: ":r+=" at position "+(n+1)+": ";var l=o.slice(n,s).replace(/[^]/g,"$&\u0332");r+=(n>15?"\u2026"+o.slice(n-15,n):o.slice(0,n))+l+(s+15<o.length?o.slice(s,s+15)+"\u2026":o.slice(s))}var h=Error(r);return h.name="ParseError",h.__proto__=i.prototype,h.position=n,null!=n&&null!=s&&(h.length=s-n),h.rawMessage=e,h}}i.prototype.__proto__=Error.prototype;var s,o,l,h,m,c,p,u,d,g,f,v,b,y,x,w,k,S,M,z,A,T,B=/([A-Z])/g,C={"&":"&",">":">","<":"<",'"':""","'":"'"},q=/[&><"']/g,N=function e(t){return"ordgroup"===t.type||"color"===t.type?1===t.body.length?e(t.body[0]):t:"font"===t.type?e(t.body):t},I=function(e){if(!e)throw Error("Expected non-null, but got "+String(e));return e},H={contains:function(e,t){return -1!==e.indexOf(t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return String(e).replace(q,e=>C[e])},hyphenate:function(e){return e.replace(B,"-$1").toLowerCase()},getBaseElem:N,isCharacterBox:function(e){var t=N(e);return"mathord"===t.type||"textord"===t.type||"atom"===t.type},protocolFromUrl:function(e){var t=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return t?":"===t[2]&&/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?t[1].toLowerCase():null:"_relative"}},R={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format <type>"},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color <color>",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:e=>"#"+e},macros:{type:"object",cli:"-m, --macro <def>",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:"--min-rule-thickness <size>",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:e=>Math.max(0,e),cli:"-s, --max-size <n>",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:e=>Math.max(0,e),cli:"-e, --max-expand <n>",cliProcessor:e=>"Infinity"===e?1/0:parseInt(e)},globalGroup:{type:"boolean",cli:!1}};class O{constructor(e){for(var t in this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{},R)if(R.hasOwnProperty(t)){var r=R[t];this[t]=void 0!==e[t]?r.processor?r.processor(e[t]):e[t]:function(e){if(e.default)return e.default;var t=e.type,r=Array.isArray(t)?t[0]:t;if("string"!=typeof r)return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}(r)}}reportNonstrict(e,t,r){var a=this.strict;if("function"==typeof a&&(a=a(e,t,r)),a&&"ignore"!==a){if(!0===a||"error"===a)throw new i("LaTeX-incompatible input and strict mode is set to 'error': "+t+" ["+e+"]",r);"warn"===a?"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"):"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+a+"': "+t)+" ["+e+"]")}}useStrictBehavior(e,t,r){var a=this.strict;if("function"==typeof a)try{a=a(e,t,r)}catch(e){a="error"}return!!a&&"ignore"!==a&&(!0===a||"error"===a||("warn"===a?"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"):"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+a+"': "+t)+" ["+e+"]"),!1))}isTrusted(e){if(e.url&&!e.protocol){var t=H.protocolFromUrl(e.url);if(null==t)return!1;e.protocol=t}return!!("function"==typeof this.trust?this.trust(e):this.trust)}}class E{constructor(e,t,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=r}sup(){return L[D[this.id]]}sub(){return L[V[this.id]]}fracNum(){return L[P[this.id]]}fracDen(){return L[F[this.id]]}cramp(){return L[G[this.id]]}text(){return L[U[this.id]]}isTight(){return this.size>=2}}var L=[new E(0,0,!1),new E(1,0,!0),new E(2,1,!1),new E(3,1,!0),new E(4,2,!1),new E(5,2,!0),new E(6,3,!1),new E(7,3,!0)],D=[4,5,4,5,6,7,6,7],V=[5,5,5,5,7,7,7,7],P=[2,3,4,5,6,7,6,7],F=[3,3,5,5,7,7,7,7],G=[1,1,3,3,5,5,7,7],U=[0,1,2,3,2,3,2,3],Y={DISPLAY:L[0],TEXT:L[2],SCRIPT:L[4],SCRIPTSCRIPT:L[6]},X=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}],W=[];function _(e){for(var t=0;t<W.length;t+=2)if(e>=W[t]&&e<=W[t+1])return!0;return!1}X.forEach(e=>e.blocks.forEach(e=>W.push(...e)));var j=function(e,t,r){t*=1e3;var a,n,i,s,o,l,h="";switch(e){case"sqrtMain":h="M95,"+(622+(a=t)+80)+"\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl"+a/2.075+" -"+a+"\nc5.3,-9.3,12,-14,20,-14\nH400000v"+(40+a)+"H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM"+(834+a)+" 80h400000v"+(40+a)+"h-400000z";break;case"sqrtSize1":h="M263,"+(601+(n=t)+80)+"c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl"+n/2.084+" -"+n+"\nc4.7,-7.3,11,-11,19,-11\nH40000v"+(40+n)+"H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM"+(1001+n)+" 80h400000v"+(40+n)+"h-400000z";break;case"sqrtSize2":h="M983 "+(10+(i=t)+80)+"\nl"+i/3.13+" -"+i+"\nc4,-6.7,10,-10,18,-10 H400000v"+(40+i)+"\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM"+(1001+i)+" 80h400000v"+(40+i)+"h-400000z";break;case"sqrtSize3":h="M424,"+(2398+(s=t)+80)+"\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\nl"+s/4.223+" -"+s+"c4,-6.7,10,-10,18,-10 H400000\nv"+(40+s)+"H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\nc-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M"+(1001+s)+" 80\nh400000v"+(40+s)+"h-400000z";break;case"sqrtSize4":h="M473,"+(2713+(o=t)+80)+"\nc339.3,-1799.3,509.3,-2700,510,-2702 l"+o/5.298+" -"+o+"\nc3.3,-7.3,9.3,-11,18,-11 H400000v"+(40+o)+"H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM"+(1001+o)+" 80h400000v"+(40+o)+"H1017.7z";break;case"sqrtTall":h="M702 "+((l=t)+80)+"H400000"+(40+l)+"\nH742v"+(r-54-80-l)+"l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\n219 661 l218 661zM702 80H400000v"+(40+l)+"H742z"}return h},$=function(e,t){switch(e){case"\u239C":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"\u2223":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"\u2225":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z"+("M367 0 H410 V"+t)+" H367z M367 0 H410 V"+t+" H367z";case"\u239F":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"\u23A2":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"\u23A5":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"\u23AA":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"\u23D0":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"\u2016":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257z"+("M478 0 H521 V"+t)+" H478z M478 0 H521 V"+t+" H478z";default:return""}},Z={doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"},K=function(e,t){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+" v1759 h347 v-84\nH403z M403 1759 V0 H319 V1759 v"+t+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+" v1759 H0 v84 H347z\nM347 1759 V0 H263 V1759 v"+t+" v1759 h84z";case"vert":return"M145 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+t+" v585 h43z";case"doublevert":return"M145 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+t+" v585 h43z\nM367 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M410 15 H367 v585 v"+t+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+t+" v1715 h263 v84 H319z\nMM319 602 V0 H403 V602 v"+t+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+t+" v1799 H0 v-84 H319z\nMM319 602 V0 H403 V602 v"+t+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+" v602 h84z\nM403 1759 V0 H319 V1759 v"+t+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+" v602 h84z\nM347 1759 V0 h-84 V1759 v"+t+" v602 h84z";case"lparen":return"M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1\nc-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,\n-36,557 l0,"+(t+84)+"c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,\n949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9\nc0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,\n-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189\nl0,-"+(t+92)+"c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,\n-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z";case"rparen":return"M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,\n63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5\nc11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,"+(t+9)+"\nc-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664\nc-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11\nc0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17\nc242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558\nl0,-"+(t+144)+"c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,\n-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z";default:throw Error("Unknown stretchy delimiter.")}};class J{constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return H.contains(this.classes,e)}toNode(){for(var e=document.createDocumentFragment(),t=0;t<this.children.length;t++)e.appendChild(this.children[t].toNode());return e}toMarkup(){for(var e="",t=0;t<this.children.length;t++)e+=this.children[t].toMarkup();return e}toText(){return this.children.map(e=>e.toText()).join("")}}var Q={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-.00099,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-.00099,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-.00099,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-.00099,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},ee={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},et={"\xc5":"A","\xd0":"D","\xde":"o","\xe5":"a","\xf0":"d","\xfe":"o",\u0410:"A",\u0411:"B",\u0412:"B",\u0413:"F",\u0414:"A",\u0415:"E",\u0416:"K",\u0417:"3",\u0418:"N",\u0419:"N",\u041A:"K",\u041B:"N",\u041C:"M",\u041D:"H",\u041E:"O",\u041F:"N",\u0420:"P",\u0421:"C",\u0422:"T",\u0423:"y",\u0424:"O",\u0425:"X",\u0426:"U",\u0427:"h",\u0428:"W",\u0429:"W",\u042A:"B",\u042B:"X",\u042C:"B",\u042D:"3",\u042E:"X",\u042F:"R",\u0430:"a",\u0431:"b",\u0432:"a",\u0433:"r",\u0434:"y",\u0435:"e",\u0436:"m",\u0437:"e",\u0438:"n",\u0439:"n",\u043A:"n",\u043B:"n",\u043C:"m",\u043D:"n",\u043E:"o",\u043F:"n",\u0440:"p",\u0441:"c",\u0442:"o",\u0443:"y",\u0444:"b",\u0445:"x",\u0446:"n",\u0447:"n",\u0448:"w",\u0449:"w",\u044A:"a",\u044B:"m",\u044C:"a",\u044D:"e",\u044E:"m",\u044F:"r"};function er(e,t,r){if(!Q[t])throw Error("Font metrics not found for font: "+t+".");var a=e.charCodeAt(0),n=Q[t][a];if(!n&&e[0]in et&&(a=et[e[0]].charCodeAt(0),n=Q[t][a]),!n&&"text"===r&&_(a)&&(n=Q[t][77]),n)return{depth:n[0],height:n[1],italic:n[2],skew:n[3],width:n[4]}}var ea={},en=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],ei=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],es=function(e,t){return t.size<2?e:en[e-1][t.size-1]};class eo{constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||eo.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=ei[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var t={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return new eo(t)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:es(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:ei[e-1]})}havingBaseStyle(e){e=e||this.style.text();var t=es(eo.BASESIZE,e);return this.size===t&&this.textSize===eo.BASESIZE&&this.style===e?this:this.extend({style:e,size:t})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==eo.BASESIZE?["sizing","reset-size"+this.size,"size"+eo.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=function(e){var t;if(!ea[t=e>=5?0:e>=3?1:2]){var r=ea[t]={cssEmPerMu:ee.quad[t]/18};for(var a in ee)ee.hasOwnProperty(a)&&(r[a]=ee[a][t])}return ea[t]}(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}eo.BASESIZE=6;var el={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},eh={ex:!0,em:!0,mu:!0},em=function(e){return"string"!=typeof e&&(e=e.unit),e in el||e in eh||"ex"===e},ec=function(e,t){var r,a;if(e.unit in el)r=el[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if("mu"===e.unit)r=t.fontMetrics().cssEmPerMu;else{if(a=t.style.isTight()?t.havingStyle(t.style.text()):t,"ex"===e.unit)r=a.fontMetrics().xHeight;else if("em"===e.unit)r=a.fontMetrics().quad;else throw new i("Invalid unit: '"+e.unit+"'");a!==t&&(r*=a.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*r,t.maxSize)},ep=function(e){return+e.toFixed(4)+"em"},eu=function(e){return e.filter(e=>e).join(" ")},ed=function(e,t,r){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},t){t.style.isTight()&&this.classes.push("mtight");var a=t.getColor();a&&(this.style.color=a)}},eg=function(e){var t=document.createElement(e);for(var r in t.className=eu(this.classes),this.style)this.style.hasOwnProperty(r)&&(t.style[r]=this.style[r]);for(var a in this.attributes)this.attributes.hasOwnProperty(a)&&t.setAttribute(a,this.attributes[a]);for(var n=0;n<this.children.length;n++)t.appendChild(this.children[n].toNode());return t},ef=function(e){var t="<"+e;this.classes.length&&(t+=' class="'+H.escape(eu(this.classes))+'"');var r="";for(var a in this.style)this.style.hasOwnProperty(a)&&(r+=H.hyphenate(a)+":"+this.style[a]+";");for(var n in r&&(t+=' style="'+H.escape(r)+'"'),this.attributes)this.attributes.hasOwnProperty(n)&&(t+=" "+n+'="'+H.escape(this.attributes[n])+'"');t+=">";for(var i=0;i<this.children.length;i++)t+=this.children[i].toMarkup();return t+("</"+e)+">"};class ev{constructor(e,t,r,a){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,ed.call(this,e,r,a),this.children=t||[]}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return H.contains(this.classes,e)}toNode(){return eg.call(this,"span")}toMarkup(){return ef.call(this,"span")}}class eb{constructor(e,t,r,a){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,ed.call(this,t,a),this.children=r||[],this.setAttribute("href",e)}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return H.contains(this.classes,e)}toNode(){return eg.call(this,"a")}toMarkup(){return ef.call(this,"a")}}class ey{constructor(e,t,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=r}hasClass(e){return H.contains(this.classes,e)}toNode(){var e=document.createElement("img");for(var t in e.src=this.src,e.alt=this.alt,e.className="mord",this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e}toMarkup(){var e='<img src="'+H.escape(this.src)+'" alt="'+H.escape(this.alt)+'"',t="";for(var r in this.style)this.style.hasOwnProperty(r)&&(t+=H.hyphenate(r)+":"+this.style[r]+";");return t&&(e+=' style="'+H.escape(t)+'"'),e+="'/>"}}var ex={"\xee":"\u0131\u0302","\xef":"\u0131\u0308","\xed":"\u0131\u0301","\xec":"\u0131\u0300"};class ew{constructor(e,t,r,a,n,i,s,o){this.text=void 0,this.height=void 0,this.depth=void 0,this.italic=void 0,this.skew=void 0,this.width=void 0,this.maxFontSize=void 0,this.classes=void 0,this.style=void 0,this.text=e,this.height=t||0,this.depth=r||0,this.italic=a||0,this.skew=n||0,this.width=i||0,this.classes=s||[],this.style=o||{},this.maxFontSize=0;var l=function(e){for(var t=0;t<X.length;t++)for(var r=X[t],a=0;a<r.blocks.length;a++){var n=r.blocks[a];if(e>=n[0]&&e<=n[1])return r.name}return null}(this.text.charCodeAt(0));l&&this.classes.push(l+"_fallback"),/[îïíì]/.test(this.text)&&(this.text=ex[this.text])}hasClass(e){return H.contains(this.classes,e)}toNode(){var e=document.createTextNode(this.text),t=null;for(var r in this.italic>0&&((t=document.createElement("span")).style.marginRight=ep(this.italic)),this.classes.length>0&&((t=t||document.createElement("span")).className=eu(this.classes)),this.style)this.style.hasOwnProperty(r)&&((t=t||document.createElement("span")).style[r]=this.style[r]);return t?(t.appendChild(e),t):e}toMarkup(){var e=!1,t="<span";this.classes.length&&(e=!0,t+=' class="'+H.escape(eu(this.classes))+'"');var r="";for(var a in this.italic>0&&(r+="margin-right:"+this.italic+"em;"),this.style)this.style.hasOwnProperty(a)&&(r+=H.hyphenate(a)+":"+this.style[a]+";");r&&(e=!0,t+=' style="'+H.escape(r)+'"');var n=H.escape(this.text);return e?t+=">"+n+"</span>":n}}class ek{constructor(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}toNode(){var e=document.createElementNS("http://www.w3.org/2000/svg","svg");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);for(var r=0;r<this.children.length;r++)e.appendChild(this.children[r].toNode());return e}toMarkup(){var e='<svg xmlns="http://www.w3.org/2000/svg"';for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&(e+=" "+t+'="'+H.escape(this.attributes[t])+'"');e+=">";for(var r=0;r<this.children.length;r++)e+=this.children[r].toMarkup();return e+"</svg>"}}class eS{constructor(e,t){this.pathName=void 0,this.alternate=void 0,this.pathName=e,this.alternate=t}toNode(){var e=document.createElementNS("http://www.w3.org/2000/svg","path");return this.alternate?e.setAttribute("d",this.alternate):e.setAttribute("d",Z[this.pathName]),e}toMarkup(){return this.alternate?'<path d="'+H.escape(this.alternate)+'"/>':'<path d="'+H.escape(Z[this.pathName])+'"/>'}}class eM{constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e=document.createElementNS("http://www.w3.org/2000/svg","line");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);return e}toMarkup(){var e="<line";for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&(e+=" "+t+'="'+H.escape(this.attributes[t])+'"');return e+"/>"}}function ez(e){if(e instanceof ew)return e;throw Error("Expected symbolNode but got "+String(e)+".")}var eA={bin:1,close:1,inner:1,open:1,punct:1,rel:1},eT={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},eB={math:{},text:{}};function eC(e,t,r,a,n,i){eB[e][n]={font:t,group:r,replace:a},i&&a&&(eB[e][a]=eB[e][n])}var eq="math",eN="text",eI="main",eH="accent-token",eR="close",eO="inner",eE="mathord",eL="op-token",eD="open",eV="punct",eP="spacing",eF="textord";eC(eq,eI,"rel","\u2261","\\equiv",!0),eC(eq,eI,"rel","\u227A","\\prec",!0),eC(eq,eI,"rel","\u227B","\\succ",!0),eC(eq,eI,"rel","\u223C","\\sim",!0),eC(eq,eI,"rel","\u22A5","\\perp"),eC(eq,eI,"rel","\u2AAF","\\preceq",!0),eC(eq,eI,"rel","\u2AB0","\\succeq",!0),eC(eq,eI,"rel","\u2243","\\simeq",!0),eC(eq,eI,"rel","\u2223","\\mid",!0),eC(eq,eI,"rel","\u226A","\\ll",!0),eC(eq,eI,"rel","\u226B","\\gg",!0),eC(eq,eI,"rel","\u224D","\\asymp",!0),eC(eq,eI,"rel","\u2225","\\parallel"),eC(eq,eI,"rel","\u22C8","\\bowtie",!0),eC(eq,eI,"rel","\u2323","\\smile",!0),eC(eq,eI,"rel","\u2291","\\sqsubseteq",!0),eC(eq,eI,"rel","\u2292","\\sqsupseteq",!0),eC(eq,eI,"rel","\u2250","\\doteq",!0),eC(eq,eI,"rel","\u2322","\\frown",!0),eC(eq,eI,"rel","\u220B","\\ni",!0),eC(eq,eI,"rel","\u221D","\\propto",!0),eC(eq,eI,"rel","\u22A2","\\vdash",!0),eC(eq,eI,"rel","\u22A3","\\dashv",!0),eC(eq,eI,"rel","\u220B","\\owns"),eC(eq,eI,eV,".","\\ldotp"),eC(eq,eI,eV,"\u22C5","\\cdotp"),eC(eq,eI,eF,"#","\\#"),eC(eN,eI,eF,"#","\\#"),eC(eq,eI,eF,"&","\\&"),eC(eN,eI,eF,"&","\\&"),eC(eq,eI,eF,"\u2135","\\aleph",!0),eC(eq,eI,eF,"\u2200","\\forall",!0),eC(eq,eI,eF,"\u210F","\\hbar",!0),eC(eq,eI,eF,"\u2203","\\exists",!0),eC(eq,eI,eF,"\u2207","\\nabla",!0),eC(eq,eI,eF,"\u266D","\\flat",!0),eC(eq,eI,eF,"\u2113","\\ell",!0),eC(eq,eI,eF,"\u266E","\\natural",!0),eC(eq,eI,eF,"\u2663","\\clubsuit",!0),eC(eq,eI,eF,"\u2118","\\wp",!0),eC(eq,eI,eF,"\u266F","\\sharp",!0),eC(eq,eI,eF,"\u2662","\\diamondsuit",!0),eC(eq,eI,eF,"\u211C","\\Re",!0),eC(eq,eI,eF,"\u2661","\\heartsuit",!0),eC(eq,eI,eF,"\u2111","\\Im",!0),eC(eq,eI,eF,"\u2660","\\spadesuit",!0),eC(eq,eI,eF,"\xa7","\\S",!0),eC(eN,eI,eF,"\xa7","\\S"),eC(eq,eI,eF,"\xb6","\\P",!0),eC(eN,eI,eF,"\xb6","\\P"),eC(eq,eI,eF,"\u2020","\\dag"),eC(eN,eI,eF,"\u2020","\\dag"),eC(eN,eI,eF,"\u2020","\\textdagger"),eC(eq,eI,eF,"\u2021","\\ddag"),eC(eN,eI,eF,"\u2021","\\ddag"),eC(eN,eI,eF,"\u2021","\\textdaggerdbl"),eC(eq,eI,eR,"\u23B1","\\rmoustache",!0),eC(eq,eI,eD,"\u23B0","\\lmoustache",!0),eC(eq,eI,eR,"\u27EF","\\rgroup",!0),eC(eq,eI,eD,"\u27EE","\\lgroup",!0),eC(eq,eI,"bin","\u2213","\\mp",!0),eC(eq,eI,"bin","\u2296","\\ominus",!0),eC(eq,eI,"bin","\u228E","\\uplus",!0),eC(eq,eI,"bin","\u2293","\\sqcap",!0),eC(eq,eI,"bin","\u2217","\\ast"),eC(eq,eI,"bin","\u2294","\\sqcup",!0),eC(eq,eI,"bin","\u25EF","\\bigcirc",!0),eC(eq,eI,"bin","\u2219","\\bullet",!0),eC(eq,eI,"bin","\u2021","\\ddagger"),eC(eq,eI,"bin","\u2240","\\wr",!0),eC(eq,eI,"bin","\u2A3F","\\amalg"),eC(eq,eI,"bin","&","\\And"),eC(eq,eI,"rel","\u27F5","\\longleftarrow",!0),eC(eq,eI,"rel","\u21D0","\\Leftarrow",!0),eC(eq,eI,"rel","\u27F8","\\Longleftarrow",!0),eC(eq,eI,"rel","\u27F6","\\longrightarrow",!0),eC(eq,eI,"rel","\u21D2","\\Rightarrow",!0),eC(eq,eI,"rel","\u27F9","\\Longrightarrow",!0),eC(eq,eI,"rel","\u2194","\\leftrightarrow",!0),eC(eq,eI,"rel","\u27F7","\\longleftrightarrow",!0),eC(eq,eI,"rel","\u21D4","\\Leftrightarrow",!0),eC(eq,eI,"rel","\u27FA","\\Longleftrightarrow",!0),eC(eq,eI,"rel","\u21A6","\\mapsto",!0),eC(eq,eI,"rel","\u27FC","\\longmapsto",!0),eC(eq,eI,"rel","\u2197","\\nearrow",!0),eC(eq,eI,"rel","\u21A9","\\hookleftarrow",!0),eC(eq,eI,"rel","\u21AA","\\hookrightarrow",!0),eC(eq,eI,"rel","\u2198","\\searrow",!0),eC(eq,eI,"rel","\u21BC","\\leftharpoonup",!0),eC(eq,eI,"rel","\u21C0","\\rightharpoonup",!0),eC(eq,eI,"rel","\u2199","\\swarrow",!0),eC(eq,eI,"rel","\u21BD","\\leftharpoondown",!0),eC(eq,eI,"rel","\u21C1","\\rightharpoondown",!0),eC(eq,eI,"rel","\u2196","\\nwarrow",!0),eC(eq,eI,"rel","\u21CC","\\rightleftharpoons",!0),eC(eq,"ams","rel","\u226E","\\nless",!0),eC(eq,"ams","rel","\uE010","\\@nleqslant"),eC(eq,"ams","rel","\uE011","\\@nleqq"),eC(eq,"ams","rel","\u2A87","\\lneq",!0),eC(eq,"ams","rel","\u2268","\\lneqq",!0),eC(eq,"ams","rel","\uE00C","\\@lvertneqq"),eC(eq,"ams","rel","\u22E6","\\lnsim",!0),eC(eq,"ams","rel","\u2A89","\\lnapprox",!0),eC(eq,"ams","rel","\u2280","\\nprec",!0),eC(eq,"ams","rel","\u22E0","\\npreceq",!0),eC(eq,"ams","rel","\u22E8","\\precnsim",!0),eC(eq,"ams","rel","\u2AB9","\\precnapprox",!0),eC(eq,"ams","rel","\u2241","\\nsim",!0),eC(eq,"ams","rel","\uE006","\\@nshortmid"),eC(eq,"ams","rel","\u2224","\\nmid",!0),eC(eq,"ams","rel","\u22AC","\\nvdash",!0),eC(eq,"ams","rel","\u22AD","\\nvDash",!0),eC(eq,"ams","rel","\u22EA","\\ntriangleleft"),eC(eq,"ams","rel","\u22EC","\\ntrianglelefteq",!0),eC(eq,"ams","rel","\u228A","\\subsetneq",!0),eC(eq,"ams","rel","\uE01A","\\@varsubsetneq"),eC(eq,"ams","rel","\u2ACB","\\subsetneqq",!0),eC(eq,"ams","rel","\uE017","\\@varsubsetneqq"),eC(eq,"ams","rel","\u226F","\\ngtr",!0),eC(eq,"ams","rel","\uE00F","\\@ngeqslant"),eC(eq,"ams","rel","\uE00E","\\@ngeqq"),eC(eq,"ams","rel","\u2A88","\\gneq",!0),eC(eq,"ams","rel","\u2269","\\gneqq",!0),eC(eq,"ams","rel","\uE00D","\\@gvertneqq"),eC(eq,"ams","rel","\u22E7","\\gnsim",!0),eC(eq,"ams","rel","\u2A8A","\\gnapprox",!0),eC(eq,"ams","rel","\u2281","\\nsucc",!0),eC(eq,"ams","rel","\u22E1","\\nsucceq",!0),eC(eq,"ams","rel","\u22E9","\\succnsim",!0),eC(eq,"ams","rel","\u2ABA","\\succnapprox",!0),eC(eq,"ams","rel","\u2246","\\ncong",!0),eC(eq,"ams","rel","\uE007","\\@nshortparallel"),eC(eq,"ams","rel","\u2226","\\nparallel",!0),eC(eq,"ams","rel","\u22AF","\\nVDash",!0),eC(eq,"ams","rel","\u22EB","\\ntriangleright"),eC(eq,"ams","rel","\u22ED","\\ntrianglerighteq",!0),eC(eq,"ams","rel","\uE018","\\@nsupseteqq"),eC(eq,"ams","rel","\u228B","\\supsetneq",!0),eC(eq,"ams","rel","\uE01B","\\@varsupsetneq"),eC(eq,"ams","rel","\u2ACC","\\supsetneqq",!0),eC(eq,"ams","rel","\uE019","\\@varsupsetneqq"),eC(eq,"ams","rel","\u22AE","\\nVdash",!0),eC(eq,"ams","rel","\u2AB5","\\precneqq",!0),eC(eq,"ams","rel","\u2AB6","\\succneqq",!0),eC(eq,"ams","rel","\uE016","\\@nsubseteqq"),eC(eq,"ams","bin","\u22B4","\\unlhd"),eC(eq,"ams","bin","\u22B5","\\unrhd"),eC(eq,"ams","rel","\u219A","\\nleftarrow",!0),eC(eq,"ams","rel","\u219B","\\nrightarrow",!0),eC(eq,"ams","rel","\u21CD","\\nLeftarrow",!0),eC(eq,"ams","rel","\u21CF","\\nRightarrow",!0),eC(eq,"ams","rel","\u21AE","\\nleftrightarrow",!0),eC(eq,"ams","rel","\u21CE","\\nLeftrightarrow",!0),eC(eq,"ams","rel","\u25B3","\\vartriangle"),eC(eq,"ams",eF,"\u210F","\\hslash"),eC(eq,"ams",eF,"\u25BD","\\triangledown"),eC(eq,"ams",eF,"\u25CA","\\lozenge"),eC(eq,"ams",eF,"\u24C8","\\circledS"),eC(eq,"ams",eF,"\xae","\\circledR"),eC(eN,"ams",eF,"\xae","\\circledR"),eC(eq,"ams",eF,"\u2221","\\measuredangle",!0),eC(eq,"ams",eF,"\u2204","\\nexists"),eC(eq,"ams",eF,"\u2127","\\mho"),eC(eq,"ams",eF,"\u2132","\\Finv",!0),eC(eq,"ams",eF,"\u2141","\\Game",!0),eC(eq,"ams",eF,"\u2035","\\backprime"),eC(eq,"ams",eF,"\u25B2","\\blacktriangle"),eC(eq,"ams",eF,"\u25BC","\\blacktriangledown"),eC(eq,"ams",eF,"\u25A0","\\blacksquare"),eC(eq,"ams",eF,"\u29EB","\\blacklozenge"),eC(eq,"ams",eF,"\u2605","\\bigstar"),eC(eq,"ams",eF,"\u2222","\\sphericalangle",!0),eC(eq,"ams",eF,"\u2201","\\complement",!0),eC(eq,"ams",eF,"\xf0","\\eth",!0),eC(eN,eI,eF,"\xf0","\xf0"),eC(eq,"ams",eF,"\u2571","\\diagup"),eC(eq,"ams",eF,"\u2572","\\diagdown"),eC(eq,"ams",eF,"\u25A1","\\square"),eC(eq,"ams",eF,"\u25A1","\\Box"),eC(eq,"ams",eF,"\u25CA","\\Diamond"),eC(eq,"ams",eF,"\xa5","\\yen",!0),eC(eN,"ams",eF,"\xa5","\\yen",!0),eC(eq,"ams",eF,"\u2713","\\checkmark",!0),eC(eN,"ams",eF,"\u2713","\\checkmark"),eC(eq,"ams",eF,"\u2136","\\beth",!0),eC(eq,"ams",eF,"\u2138","\\daleth",!0),eC(eq,"ams",eF,"\u2137","\\gimel",!0),eC(eq,"ams",eF,"\u03DD","\\digamma",!0),eC(eq,"ams",eF,"\u03F0","\\varkappa"),eC(eq,"ams",eD,"\u250C","\\@ulcorner",!0),eC(eq,"ams",eR,"\u2510","\\@urcorner",!0),eC(eq,"ams",eD,"\u2514","\\@llcorner",!0),eC(eq,"ams",eR,"\u2518","\\@lrcorner",!0),eC(eq,"ams","rel","\u2266","\\leqq",!0),eC(eq,"ams","rel","\u2A7D","\\leqslant",!0),eC(eq,"ams","rel","\u2A95","\\eqslantless",!0),eC(eq,"ams","rel","\u2272","\\lesssim",!0),eC(eq,"ams","rel","\u2A85","\\lessapprox",!0),eC(eq,"ams","rel","\u224A","\\approxeq",!0),eC(eq,"ams","bin","\u22D6","\\lessdot"),eC(eq,"ams","rel","\u22D8","\\lll",!0),eC(eq,"ams","rel","\u2276","\\lessgtr",!0),eC(eq,"ams","rel","\u22DA","\\lesseqgtr",!0),eC(eq,"ams","rel","\u2A8B","\\lesseqqgtr",!0),eC(eq,"ams","rel","\u2251","\\doteqdot"),eC(eq,"ams","rel","\u2253","\\risingdotseq",!0),eC(eq,"ams","rel","\u2252","\\fallingdotseq",!0),eC(eq,"ams","rel","\u223D","\\backsim",!0),eC(eq,"ams","rel","\u22CD","\\backsimeq",!0),eC(eq,"ams","rel","\u2AC5","\\subseteqq",!0),eC(eq,"ams","rel","\u22D0","\\Subset",!0),eC(eq,"ams","rel","\u228F","\\sqsubset",!0),eC(eq,"ams","rel","\u227C","\\preccurlyeq",!0),eC(eq,"ams","rel","\u22DE","\\curlyeqprec",!0),eC(eq,"ams","rel","\u227E","\\precsim",!0),eC(eq,"ams","rel","\u2AB7","\\precapprox",!0),eC(eq,"ams","rel","\u22B2","\\vartriangleleft"),eC(eq,"ams","rel","\u22B4","\\trianglelefteq"),eC(eq,"ams","rel","\u22A8","\\vDash",!0),eC(eq,"ams","rel","\u22AA","\\Vvdash",!0),eC(eq,"ams","rel","\u2323","\\smallsmile"),eC(eq,"ams","rel","\u2322","\\smallfrown"),eC(eq,"ams","rel","\u224F","\\bumpeq",!0),eC(eq,"ams","rel","\u224E","\\Bumpeq",!0),eC(eq,"ams","rel","\u2267","\\geqq",!0),eC(eq,"ams","rel","\u2A7E","\\geqslant",!0),eC(eq,"ams","rel","\u2A96","\\eqslantgtr",!0),eC(eq,"ams","rel","\u2273","\\gtrsim",!0),eC(eq,"ams","rel","\u2A86","\\gtrapprox",!0),eC(eq,"ams","bin","\u22D7","\\gtrdot"),eC(eq,"ams","rel","\u22D9","\\ggg",!0),eC(eq,"ams","rel","\u2277","\\gtrless",!0),eC(eq,"ams","rel","\u22DB","\\gtreqless",!0),eC(eq,"ams","rel","\u2A8C","\\gtreqqless",!0),eC(eq,"ams","rel","\u2256","\\eqcirc",!0),eC(eq,"ams","rel","\u2257","\\circeq",!0),eC(eq,"ams","rel","\u225C","\\triangleq",!0),eC(eq,"ams","rel","\u223C","\\thicksim"),eC(eq,"ams","rel","\u2248","\\thickapprox"),eC(eq,"ams","rel","\u2AC6","\\supseteqq",!0),eC(eq,"ams","rel","\u22D1","\\Supset",!0),eC(eq,"ams","rel","\u2290","\\sqsupset",!0),eC(eq,"ams","rel","\u227D","\\succcurlyeq",!0),eC(eq,"ams","rel","\u22DF","\\curlyeqsucc",!0),eC(eq,"ams","rel","\u227F","\\succsim",!0),eC(eq,"ams","rel","\u2AB8","\\succapprox",!0),eC(eq,"ams","rel","\u22B3","\\vartriangleright"),eC(eq,"ams","rel","\u22B5","\\trianglerighteq"),eC(eq,"ams","rel","\u22A9","\\Vdash",!0),eC(eq,"ams","rel","\u2223","\\shortmid"),eC(eq,"ams","rel","\u2225","\\shortparallel"),eC(eq,"ams","rel","\u226C","\\between",!0),eC(eq,"ams","rel","\u22D4","\\pitchfork",!0),eC(eq,"ams","rel","\u221D","\\varpropto"),eC(eq,"ams","rel","\u25C0","\\blacktriangleleft"),eC(eq,"ams","rel","\u2234","\\therefore",!0),eC(eq,"ams","rel","\u220D","\\backepsilon"),eC(eq,"ams","rel","\u25B6","\\blacktriangleright"),eC(eq,"ams","rel","\u2235","\\because",!0),eC(eq,"ams","rel","\u22D8","\\llless"),eC(eq,"ams","rel","\u22D9","\\gggtr"),eC(eq,"ams","bin","\u22B2","\\lhd"),eC(eq,"ams","bin","\u22B3","\\rhd"),eC(eq,"ams","rel","\u2242","\\eqsim",!0),eC(eq,eI,"rel","\u22C8","\\Join"),eC(eq,"ams","rel","\u2251","\\Doteq",!0),eC(eq,"ams","bin","\u2214","\\dotplus",!0),eC(eq,"ams","bin","\u2216","\\smallsetminus"),eC(eq,"ams","bin","\u22D2","\\Cap",!0),eC(eq,"ams","bin","\u22D3","\\Cup",!0),eC(eq,"ams","bin","\u2A5E","\\doublebarwedge",!0),eC(eq,"ams","bin","\u229F","\\boxminus",!0),eC(eq,"ams","bin","\u229E","\\boxplus",!0),eC(eq,"ams","bin","\u22C7","\\divideontimes",!0),eC(eq,"ams","bin","\u22C9","\\ltimes",!0),eC(eq,"ams","bin","\u22CA","\\rtimes",!0),eC(eq,"ams","bin","\u22CB","\\leftthreetimes",!0),eC(eq,"ams","bin","\u22CC","\\rightthreetimes",!0),eC(eq,"ams","bin","\u22CF","\\curlywedge",!0),eC(eq,"ams","bin","\u22CE","\\curlyvee",!0),eC(eq,"ams","bin","\u229D","\\circleddash",!0),eC(eq,"ams","bin","\u229B","\\circledast",!0),eC(eq,"ams","bin","\u22C5","\\centerdot"),eC(eq,"ams","bin","\u22BA","\\intercal",!0),eC(eq,"ams","bin","\u22D2","\\doublecap"),eC(eq,"ams","bin","\u22D3","\\doublecup"),eC(eq,"ams","bin","\u22A0","\\boxtimes",!0),eC(eq,"ams","rel","\u21E2","\\dashrightarrow",!0),eC(eq,"ams","rel","\u21E0","\\dashleftarrow",!0),eC(eq,"ams","rel","\u21C7","\\leftleftarrows",!0),eC(eq,"ams","rel","\u21C6","\\leftrightarrows",!0),eC(eq,"ams","rel","\u21DA","\\Lleftarrow",!0),eC(eq,"ams","rel","\u219E","\\twoheadleftarrow",!0),eC(eq,"ams","rel","\u21A2","\\leftarrowtail",!0),eC(eq,"ams","rel","\u21AB","\\looparrowleft",!0),eC(eq,"ams","rel","\u21CB","\\leftrightharpoons",!0),eC(eq,"ams","rel","\u21B6","\\curvearrowleft",!0),eC(eq,"ams","rel","\u21BA","\\circlearrowleft",!0),eC(eq,"ams","rel","\u21B0","\\Lsh",!0),eC(eq,"ams","rel","\u21C8","\\upuparrows",!0),eC(eq,"ams","rel","\u21BF","\\upharpoonleft",!0),eC(eq,"ams","rel","\u21C3","\\downharpoonleft",!0),eC(eq,eI,"rel","\u22B6","\\origof",!0),eC(eq,eI,"rel","\u22B7","\\imageof",!0),eC(eq,"ams","rel","\u22B8","\\multimap",!0),eC(eq,"ams","rel","\u21AD","\\leftrightsquigarrow",!0),eC(eq,"ams","rel","\u21C9","\\rightrightarrows",!0),eC(eq,"ams","rel","\u21C4","\\rightleftarrows",!0),eC(eq,"ams","rel","\u21A0","\\twoheadrightarrow",!0),eC(eq,"ams","rel","\u21A3","\\rightarrowtail",!0),eC(eq,"ams","rel","\u21AC","\\looparrowright",!0),eC(eq,"ams","rel","\u21B7","\\curvearrowright",!0),eC(eq,"ams","rel","\u21BB","\\circlearrowright",!0),eC(eq,"ams","rel","\u21B1","\\Rsh",!0),eC(eq,"ams","rel","\u21CA","\\downdownarrows",!0),eC(eq,"ams","rel","\u21BE","\\upharpoonright",!0),eC(eq,"ams","rel","\u21C2","\\downharpoonright",!0),eC(eq,"ams","rel","\u21DD","\\rightsquigarrow",!0),eC(eq,"ams","rel","\u21DD","\\leadsto"),eC(eq,"ams","rel","\u21DB","\\Rrightarrow",!0),eC(eq,"ams","rel","\u21BE","\\restriction"),eC(eq,eI,eF,"\u2018","`"),eC(eq,eI,eF,"$","\\$"),eC(eN,eI,eF,"$","\\$"),eC(eN,eI,eF,"$","\\textdollar"),eC(eq,eI,eF,"%","\\%"),eC(eN,eI,eF,"%","\\%"),eC(eq,eI,eF,"_","\\_"),eC(eN,eI,eF,"_","\\_"),eC(eN,eI,eF,"_","\\textunderscore"),eC(eq,eI,eF,"\u2220","\\angle",!0),eC(eq,eI,eF,"\u221E","\\infty",!0),eC(eq,eI,eF,"\u2032","\\prime"),eC(eq,eI,eF,"\u25B3","\\triangle"),eC(eq,eI,eF,"\u0393","\\Gamma",!0),eC(eq,eI,eF,"\u0394","\\Delta",!0),eC(eq,eI,eF,"\u0398","\\Theta",!0),eC(eq,eI,eF,"\u039B","\\Lambda",!0),eC(eq,eI,eF,"\u039E","\\Xi",!0),eC(eq,eI,eF,"\u03A0","\\Pi",!0),eC(eq,eI,eF,"\u03A3","\\Sigma",!0),eC(eq,eI,eF,"\u03A5","\\Upsilon",!0),eC(eq,eI,eF,"\u03A6","\\Phi",!0),eC(eq,eI,eF,"\u03A8","\\Psi",!0),eC(eq,eI,eF,"\u03A9","\\Omega",!0),eC(eq,eI,eF,"A","\u0391"),eC(eq,eI,eF,"B","\u0392"),eC(eq,eI,eF,"E","\u0395"),eC(eq,eI,eF,"Z","\u0396"),eC(eq,eI,eF,"H","\u0397"),eC(eq,eI,eF,"I","\u0399"),eC(eq,eI,eF,"K","\u039A"),eC(eq,eI,eF,"M","\u039C"),eC(eq,eI,eF,"N","\u039D"),eC(eq,eI,eF,"O","\u039F"),eC(eq,eI,eF,"P","\u03A1"),eC(eq,eI,eF,"T","\u03A4"),eC(eq,eI,eF,"X","\u03A7"),eC(eq,eI,eF,"\xac","\\neg",!0),eC(eq,eI,eF,"\xac","\\lnot"),eC(eq,eI,eF,"\u22A4","\\top"),eC(eq,eI,eF,"\u22A5","\\bot"),eC(eq,eI,eF,"\u2205","\\emptyset"),eC(eq,"ams",eF,"\u2205","\\varnothing"),eC(eq,eI,eE,"\u03B1","\\alpha",!0),eC(eq,eI,eE,"\u03B2","\\beta",!0),eC(eq,eI,eE,"\u03B3","\\gamma",!0),eC(eq,eI,eE,"\u03B4","\\delta",!0),eC(eq,eI,eE,"\u03F5","\\epsilon",!0),eC(eq,eI,eE,"\u03B6","\\zeta",!0),eC(eq,eI,eE,"\u03B7","\\eta",!0),eC(eq,eI,eE,"\u03B8","\\theta",!0),eC(eq,eI,eE,"\u03B9","\\iota",!0),eC(eq,eI,eE,"\u03BA","\\kappa",!0),eC(eq,eI,eE,"\u03BB","\\lambda",!0),eC(eq,eI,eE,"\u03BC","\\mu",!0),eC(eq,eI,eE,"\u03BD","\\nu",!0),eC(eq,eI,eE,"\u03BE","\\xi",!0),eC(eq,eI,eE,"\u03BF","\\omicron",!0),eC(eq,eI,eE,"\u03C0","\\pi",!0),eC(eq,eI,eE,"\u03C1","\\rho",!0),eC(eq,eI,eE,"\u03C3","\\sigma",!0),eC(eq,eI,eE,"\u03C4","\\tau",!0),eC(eq,eI,eE,"\u03C5","\\upsilon",!0),eC(eq,eI,eE,"\u03D5","\\phi",!0),eC(eq,eI,eE,"\u03C7","\\chi",!0),eC(eq,eI,eE,"\u03C8","\\psi",!0),eC(eq,eI,eE,"\u03C9","\\omega",!0),eC(eq,eI,eE,"\u03B5","\\varepsilon",!0),eC(eq,eI,eE,"\u03D1","\\vartheta",!0),eC(eq,eI,eE,"\u03D6","\\varpi",!0),eC(eq,eI,eE,"\u03F1","\\varrho",!0),eC(eq,eI,eE,"\u03C2","\\varsigma",!0),eC(eq,eI,eE,"\u03C6","\\varphi",!0),eC(eq,eI,"bin","\u2217","*",!0),eC(eq,eI,"bin","+","+"),eC(eq,eI,"bin","\u2212","-",!0),eC(eq,eI,"bin","\u22C5","\\cdot",!0),eC(eq,eI,"bin","\u2218","\\circ",!0),eC(eq,eI,"bin","\xf7","\\div",!0),eC(eq,eI,"bin","\xb1","\\pm",!0),eC(eq,eI,"bin","\xd7","\\times",!0),eC(eq,eI,"bin","\u2229","\\cap",!0),eC(eq,eI,"bin","\u222A","\\cup",!0),eC(eq,eI,"bin","\u2216","\\setminus",!0),eC(eq,eI,"bin","\u2227","\\land"),eC(eq,eI,"bin","\u2228","\\lor"),eC(eq,eI,"bin","\u2227","\\wedge",!0),eC(eq,eI,"bin","\u2228","\\vee",!0),eC(eq,eI,eF,"\u221A","\\surd"),eC(eq,eI,eD,"\u27E8","\\langle",!0),eC(eq,eI,eD,"\u2223","\\lvert"),eC(eq,eI,eD,"\u2225","\\lVert"),eC(eq,eI,eR,"?","?"),eC(eq,eI,eR,"!","!"),eC(eq,eI,eR,"\u27E9","\\rangle",!0),eC(eq,eI,eR,"\u2223","\\rvert"),eC(eq,eI,eR,"\u2225","\\rVert"),eC(eq,eI,"rel","=","="),eC(eq,eI,"rel",":",":"),eC(eq,eI,"rel","\u2248","\\approx",!0),eC(eq,eI,"rel","\u2245","\\cong",!0),eC(eq,eI,"rel","\u2265","\\ge"),eC(eq,eI,"rel","\u2265","\\geq",!0),eC(eq,eI,"rel","\u2190","\\gets"),eC(eq,eI,"rel",">","\\gt",!0),eC(eq,eI,"rel","\u2208","\\in",!0),eC(eq,eI,"rel","\uE020","\\@not"),eC(eq,eI,"rel","\u2282","\\subset",!0),eC(eq,eI,"rel","\u2283","\\supset",!0),eC(eq,eI,"rel","\u2286","\\subseteq",!0),eC(eq,eI,"rel","\u2287","\\supseteq",!0),eC(eq,"ams","rel","\u2288","\\nsubseteq",!0),eC(eq,"ams","rel","\u2289","\\nsupseteq",!0),eC(eq,eI,"rel","\u22A8","\\models"),eC(eq,eI,"rel","\u2190","\\leftarrow",!0),eC(eq,eI,"rel","\u2264","\\le"),eC(eq,eI,"rel","\u2264","\\leq",!0),eC(eq,eI,"rel","<","\\lt",!0),eC(eq,eI,"rel","\u2192","\\rightarrow",!0),eC(eq,eI,"rel","\u2192","\\to"),eC(eq,"ams","rel","\u2271","\\ngeq",!0),eC(eq,"ams","rel","\u2270","\\nleq",!0),eC(eq,eI,eP,"\xa0","\\ "),eC(eq,eI,eP,"\xa0","\\space"),eC(eq,eI,eP,"\xa0","\\nobreakspace"),eC(eN,eI,eP,"\xa0","\\ "),eC(eN,eI,eP,"\xa0"," "),eC(eN,eI,eP,"\xa0","\\space"),eC(eN,eI,eP,"\xa0","\\nobreakspace"),eC(eq,eI,eP,null,"\\nobreak"),eC(eq,eI,eP,null,"\\allowbreak"),eC(eq,eI,eV,",",","),eC(eq,eI,eV,";",";"),eC(eq,"ams","bin","\u22BC","\\barwedge",!0),eC(eq,"ams","bin","\u22BB","\\veebar",!0),eC(eq,eI,"bin","\u2299","\\odot",!0),eC(eq,eI,"bin","\u2295","\\oplus",!0),eC(eq,eI,"bin","\u2297","\\otimes",!0),eC(eq,eI,eF,"\u2202","\\partial",!0),eC(eq,eI,"bin","\u2298","\\oslash",!0),eC(eq,"ams","bin","\u229A","\\circledcirc",!0),eC(eq,"ams","bin","\u22A1","\\boxdot",!0),eC(eq,eI,"bin","\u25B3","\\bigtriangleup"),eC(eq,eI,"bin","\u25BD","\\bigtriangledown"),eC(eq,eI,"bin","\u2020","\\dagger"),eC(eq,eI,"bin","\u22C4","\\diamond"),eC(eq,eI,"bin","\u22C6","\\star"),eC(eq,eI,"bin","\u25C3","\\triangleleft"),eC(eq,eI,"bin","\u25B9","\\triangleright"),eC(eq,eI,eD,"{","\\{"),eC(eN,eI,eF,"{","\\{"),eC(eN,eI,eF,"{","\\textbraceleft"),eC(eq,eI,eR,"}","\\}"),eC(eN,eI,eF,"}","\\}"),eC(eN,eI,eF,"}","\\textbraceright"),eC(eq,eI,eD,"{","\\lbrace"),eC(eq,eI,eR,"}","\\rbrace"),eC(eq,eI,eD,"[","\\lbrack",!0),eC(eN,eI,eF,"[","\\lbrack",!0),eC(eq,eI,eR,"]","\\rbrack",!0),eC(eN,eI,eF,"]","\\rbrack",!0),eC(eq,eI,eD,"(","\\lparen",!0),eC(eq,eI,eR,")","\\rparen",!0),eC(eN,eI,eF,"<","\\textless",!0),eC(eN,eI,eF,">","\\textgreater",!0),eC(eq,eI,eD,"\u230A","\\lfloor",!0),eC(eq,eI,eR,"\u230B","\\rfloor",!0),eC(eq,eI,eD,"\u2308","\\lceil",!0),eC(eq,eI,eR,"\u2309","\\rceil",!0),eC(eq,eI,eF,"\\","\\backslash"),eC(eq,eI,eF,"\u2223","|"),eC(eq,eI,eF,"\u2223","\\vert"),eC(eN,eI,eF,"|","\\textbar",!0),eC(eq,eI,eF,"\u2225","\\|"),eC(eq,eI,eF,"\u2225","\\Vert"),eC(eN,eI,eF,"\u2225","\\textbardbl"),eC(eN,eI,eF,"~","\\textasciitilde"),eC(eN,eI,eF,"\\","\\textbackslash"),eC(eN,eI,eF,"^","\\textasciicircum"),eC(eq,eI,"rel","\u2191","\\uparrow",!0),eC(eq,eI,"rel","\u21D1","\\Uparrow",!0),eC(eq,eI,"rel","\u2193","\\downarrow",!0),eC(eq,eI,"rel","\u21D3","\\Downarrow",!0),eC(eq,eI,"rel","\u2195","\\updownarrow",!0),eC(eq,eI,"rel","\u21D5","\\Updownarrow",!0),eC(eq,eI,eL,"\u2210","\\coprod"),eC(eq,eI,eL,"\u22C1","\\bigvee"),eC(eq,eI,eL,"\u22C0","\\bigwedge"),eC(eq,eI,eL,"\u2A04","\\biguplus"),eC(eq,eI,eL,"\u22C2","\\bigcap"),eC(eq,eI,eL,"\u22C3","\\bigcup"),eC(eq,eI,eL,"\u222B","\\int"),eC(eq,eI,eL,"\u222B","\\intop"),eC(eq,eI,eL,"\u222C","\\iint"),eC(eq,eI,eL,"\u222D","\\iiint"),eC(eq,eI,eL,"\u220F","\\prod"),eC(eq,eI,eL,"\u2211","\\sum"),eC(eq,eI,eL,"\u2A02","\\bigotimes"),eC(eq,eI,eL,"\u2A01","\\bigoplus"),eC(eq,eI,eL,"\u2A00","\\bigodot"),eC(eq,eI,eL,"\u222E","\\oint"),eC(eq,eI,eL,"\u222F","\\oiint"),eC(eq,eI,eL,"\u2230","\\oiiint"),eC(eq,eI,eL,"\u2A06","\\bigsqcup"),eC(eq,eI,eL,"\u222B","\\smallint"),eC(eN,eI,eO,"\u2026","\\textellipsis"),eC(eq,eI,eO,"\u2026","\\mathellipsis"),eC(eN,eI,eO,"\u2026","\\ldots",!0),eC(eq,eI,eO,"\u2026","\\ldots",!0),eC(eq,eI,eO,"\u22EF","\\@cdots",!0),eC(eq,eI,eO,"\u22F1","\\ddots",!0),eC(eq,eI,eF,"\u22EE","\\varvdots"),eC(eq,eI,eH,"\u02CA","\\acute"),eC(eq,eI,eH,"\u02CB","\\grave"),eC(eq,eI,eH,"\xa8","\\ddot"),eC(eq,eI,eH,"~","\\tilde"),eC(eq,eI,eH,"\u02C9","\\bar"),eC(eq,eI,eH,"\u02D8","\\breve"),eC(eq,eI,eH,"\u02C7","\\check"),eC(eq,eI,eH,"^","\\hat"),eC(eq,eI,eH,"\u20D7","\\vec"),eC(eq,eI,eH,"\u02D9","\\dot"),eC(eq,eI,eH,"\u02DA","\\mathring"),eC(eq,eI,eE,"\uE131","\\@imath"),eC(eq,eI,eE,"\uE237","\\@jmath"),eC(eq,eI,eF,"\u0131","\u0131"),eC(eq,eI,eF,"\u0237","\u0237"),eC(eN,eI,eF,"\u0131","\\i",!0),eC(eN,eI,eF,"\u0237","\\j",!0),eC(eN,eI,eF,"\xdf","\\ss",!0),eC(eN,eI,eF,"\xe6","\\ae",!0),eC(eN,eI,eF,"\u0153","\\oe",!0),eC(eN,eI,eF,"\xf8","\\o",!0),eC(eN,eI,eF,"\xc6","\\AE",!0),eC(eN,eI,eF,"\u0152","\\OE",!0),eC(eN,eI,eF,"\xd8","\\O",!0),eC(eN,eI,eH,"\u02CA","\\'"),eC(eN,eI,eH,"\u02CB","\\`"),eC(eN,eI,eH,"\u02C6","\\^"),eC(eN,eI,eH,"\u02DC","\\~"),eC(eN,eI,eH,"\u02C9","\\="),eC(eN,eI,eH,"\u02D8","\\u"),eC(eN,eI,eH,"\u02D9","\\."),eC(eN,eI,eH,"\xb8","\\c"),eC(eN,eI,eH,"\u02DA","\\r"),eC(eN,eI,eH,"\u02C7","\\v"),eC(eN,eI,eH,"\xa8",'\\"'),eC(eN,eI,eH,"\u02DD","\\H"),eC(eN,eI,eH,"\u25EF","\\textcircled");var eG={"--":!0,"---":!0,"``":!0,"''":!0};eC(eN,eI,eF,"\u2013","--",!0),eC(eN,eI,eF,"\u2013","\\textendash"),eC(eN,eI,eF,"\u2014","---",!0),eC(eN,eI,eF,"\u2014","\\textemdash"),eC(eN,eI,eF,"\u2018","`",!0),eC(eN,eI,eF,"\u2018","\\textquoteleft"),eC(eN,eI,eF,"\u2019","'",!0),eC(eN,eI,eF,"\u2019","\\textquoteright"),eC(eN,eI,eF,"\u201C","``",!0),eC(eN,eI,eF,"\u201C","\\textquotedblleft"),eC(eN,eI,eF,"\u201D","''",!0),eC(eN,eI,eF,"\u201D","\\textquotedblright"),eC(eq,eI,eF,"\xb0","\\degree",!0),eC(eN,eI,eF,"\xb0","\\degree"),eC(eN,eI,eF,"\xb0","\\textdegree",!0),eC(eq,eI,eF,"\xa3","\\pounds"),eC(eq,eI,eF,"\xa3","\\mathsterling",!0),eC(eN,eI,eF,"\xa3","\\pounds"),eC(eN,eI,eF,"\xa3","\\textsterling",!0),eC(eq,"ams",eF,"\u2720","\\maltese"),eC(eN,"ams",eF,"\u2720","\\maltese");for(var eU='0123456789/@."',eY=0;eY<eU.length;eY++){var eX=eU.charAt(eY);eC(eq,eI,eF,eX,eX)}for(var eW='0123456789!@*()-=+";:?/.,',e_=0;e_<eW.length;e_++){var ej=eW.charAt(e_);eC(eN,eI,eF,ej,ej)}for(var e$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",eZ=0;eZ<e$.length;eZ++){var eK=e$.charAt(eZ);eC(eq,eI,eE,eK,eK),eC(eN,eI,eF,eK,eK)}eC(eq,"ams",eF,"C","\u2102"),eC(eN,"ams",eF,"C","\u2102"),eC(eq,"ams",eF,"H","\u210D"),eC(eN,"ams",eF,"H","\u210D"),eC(eq,"ams",eF,"N","\u2115"),eC(eN,"ams",eF,"N","\u2115"),eC(eq,"ams",eF,"P","\u2119"),eC(eN,"ams",eF,"P","\u2119"),eC(eq,"ams",eF,"Q","\u211A"),eC(eN,"ams",eF,"Q","\u211A"),eC(eq,"ams",eF,"R","\u211D"),eC(eN,"ams",eF,"R","\u211D"),eC(eq,"ams",eF,"Z","\u2124"),eC(eN,"ams",eF,"Z","\u2124"),eC(eq,eI,eE,"h","\u210E"),eC(eN,eI,eE,"h","\u210E");for(var eJ="",eQ=0;eQ<e$.length;eQ++){var e0=e$.charAt(eQ);eC(eq,eI,eE,e0,eJ=String.fromCharCode(55349,56320+eQ)),eC(eN,eI,eF,e0,eJ),eC(eq,eI,eE,e0,eJ=String.fromCharCode(55349,56372+eQ)),eC(eN,eI,eF,e0,eJ),eC(eq,eI,eE,e0,eJ=String.fromCharCode(55349,56424+eQ)),eC(eN,eI,eF,e0,eJ),eC(eq,eI,eE,e0,eJ=String.fromCharCode(55349,56580+eQ)),eC(eN,eI,eF,e0,eJ),eC(eq,eI,eE,e0,eJ=String.fromCharCode(55349,56684+eQ)),eC(eN,eI,eF,e0,eJ),eC(eq,eI,eE,e0,eJ=String.fromCharCode(55349,56736+eQ)),eC(eN,eI,eF,e0,eJ),eC(eq,eI,eE,e0,eJ=String.fromCharCode(55349,56788+eQ)),eC(eN,eI,eF,e0,eJ),eC(eq,eI,eE,e0,eJ=String.fromCharCode(55349,56840+eQ)),eC(eN,eI,eF,e0,eJ),eC(eq,eI,eE,e0,eJ=String.fromCharCode(55349,56944+eQ)),eC(eN,eI,eF,e0,eJ),eQ<26&&(eC(eq,eI,eE,e0,eJ=String.fromCharCode(55349,56632+eQ)),eC(eN,eI,eF,e0,eJ),eC(eq,eI,eE,e0,eJ=String.fromCharCode(55349,56476+eQ)),eC(eN,eI,eF,e0,eJ))}eC(eq,eI,eE,"k",eJ=String.fromCharCode(55349,56668)),eC(eN,eI,eF,"k",eJ);for(var e1=0;e1<10;e1++){var e4=e1.toString();eC(eq,eI,eE,e4,eJ=String.fromCharCode(55349,57294+e1)),eC(eN,eI,eF,e4,eJ),eC(eq,eI,eE,e4,eJ=String.fromCharCode(55349,57314+e1)),eC(eN,eI,eF,e4,eJ),eC(eq,eI,eE,e4,eJ=String.fromCharCode(55349,57324+e1)),eC(eN,eI,eF,e4,eJ),eC(eq,eI,eE,e4,eJ=String.fromCharCode(55349,57334+e1)),eC(eN,eI,eF,e4,eJ)}for(var e5="\xd0\xde\xfe",e6=0;e6<e5.length;e6++){var e7=e5.charAt(e6);eC(eq,eI,eE,e7,e7),eC(eN,eI,eF,e7,e7)}var e3=[["mathbf","textbf","Main-Bold"],["mathbf","textbf","Main-Bold"],["mathnormal","textit","Math-Italic"],["mathnormal","textit","Math-Italic"],["boldsymbol","boldsymbol","Main-BoldItalic"],["boldsymbol","boldsymbol","Main-BoldItalic"],["mathscr","textscr","Script-Regular"],["","",""],["","",""],["","",""],["mathfrak","textfrak","Fraktur-Regular"],["mathfrak","textfrak","Fraktur-Regular"],["mathbb","textbb","AMS-Regular"],["mathbb","textbb","AMS-Regular"],["mathboldfrak","textboldfrak","Fraktur-Regular"],["mathboldfrak","textboldfrak","Fraktur-Regular"],["mathsf","textsf","SansSerif-Regular"],["mathsf","textsf","SansSerif-Regular"],["mathboldsf","textboldsf","SansSerif-Bold"],["mathboldsf","textboldsf","SansSerif-Bold"],["mathitsf","textitsf","SansSerif-Italic"],["mathitsf","textitsf","SansSerif-Italic"],["","",""],["","",""],["mathtt","texttt","Typewriter-Regular"],["mathtt","texttt","Typewriter-Regular"]],e8=[["mathbf","textbf","Main-Bold"],["","",""],["mathsf","textsf","SansSerif-Regular"],["mathboldsf","textboldsf","SansSerif-Bold"],["mathtt","texttt","Typewriter-Regular"]],e2=function(e,t){var r=(e.charCodeAt(0)-55296)*1024+(e.charCodeAt(1)-56320)+65536,a="math"===t?0:1;if(119808<=r&&r<120484){var n=Math.floor((r-119808)/26);return[e3[n][2],e3[n][a]]}if(120782<=r&&r<=120831){var s=Math.floor((r-120782)/10);return[e8[s][2],e8[s][a]]}if(120485===r||120486===r)return[e3[0][2],e3[0][a]];if(120486<r&&r<120782)return["",""];throw new i("Unsupported character: "+e)},e9=function(e,t,r){return eB[r][e]&&eB[r][e].replace&&(e=eB[r][e].replace),{value:e,metrics:er(e,t,r)}},te=function(e,t,r,a,n){var i,s=e9(e,t,r),o=s.metrics;if(e=s.value,o){var l=o.italic;("text"===r||a&&"mathit"===a.font)&&(l=0),i=new ew(e,o.height,o.depth,l,o.skew,o.width,n)}else"undefined"!=typeof console&&console.warn("No character metrics "+("for '"+e+"' in style '"+t)+"' and mode '"+r+"'"),i=new ew(e,0,0,0,0,0,n);if(a){i.maxFontSize=a.sizeMultiplier,a.style.isTight()&&i.classes.push("mtight");var h=a.getColor();h&&(i.style.color=h)}return i},tt=(e,t)=>{if(eu(e.classes)!==eu(t.classes)||e.skew!==t.skew||e.maxFontSize!==t.maxFontSize)return!1;if(1===e.classes.length){var r=e.classes[0];if("mbin"===r||"mord"===r)return!1}for(var a in e.style)if(e.style.hasOwnProperty(a)&&e.style[a]!==t.style[a])return!1;for(var n in t.style)if(t.style.hasOwnProperty(n)&&e.style[n]!==t.style[n])return!1;return!0},tr=function(e){for(var t=0,r=0,a=0,n=0;n<e.children.length;n++){var i=e.children[n];i.height>t&&(t=i.height),i.depth>r&&(r=i.depth),i.maxFontSize>a&&(a=i.maxFontSize)}e.height=t,e.depth=r,e.maxFontSize=a},ta=function(e,t,r,a){var n=new ev(e,t,r,a);return tr(n),n},tn=(e,t,r,a)=>new ev(e,t,r,a),ti=function(e){var t=new J(e);return tr(t),t},ts=function(e){if("individualShift"===e.positionType){for(var t,r=e.children,a=[r[0]],n=-r[0].shift-r[0].elem.depth,i=n,s=1;s<r.length;s++){var o=-r[s].shift-i-r[s].elem.depth,l=o-(r[s-1].elem.height+r[s-1].elem.depth);i+=o,a.push({type:"kern",size:l}),a.push(r[s])}return{children:a,depth:n}}if("top"===e.positionType){for(var h=e.positionData,m=0;m<e.children.length;m++){var c=e.children[m];h-="kern"===c.type?c.size:c.elem.height+c.elem.depth}t=h}else if("bottom"===e.positionType)t=-e.positionData;else{var p=e.children[0];if("elem"!==p.type)throw Error('First child must have type "elem".');if("shift"===e.positionType)t=-p.elem.depth-e.positionData;else if("firstBaseline"===e.positionType)t=-p.elem.depth;else throw Error("Invalid positionType "+e.positionType+".")}return{children:e.children,depth:t}},to=function(e,t,r){var a="";switch(e){case"amsrm":a="AMS";break;case"textrm":a="Main";break;case"textsf":a="SansSerif";break;case"texttt":a="Typewriter";break;default:a=e}return a+"-"+("textbf"===t&&"textit"===r?"BoldItalic":"textbf"===t?"Bold":"textit"===t?"Italic":"Regular")},tl={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},th={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},tm={fontMap:tl,makeSymbol:te,mathsym:function(e,t,r,a){return(void 0===a&&(a=[]),"boldsymbol"===r.font&&e9(e,"Main-Bold",t).metrics)?te(e,"Main-Bold",t,r,a.concat(["mathbf"])):"\\"===e||"main"===eB[t][e].font?te(e,"Main-Regular",t,r,a):te(e,"AMS-Regular",t,r,a.concat(["amsrm"]))},makeSpan:ta,makeSvgSpan:tn,makeLineSpan:function(e,t,r){var a=ta([e],[],t);return a.height=Math.max(r||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),a.style.borderBottomWidth=ep(a.height),a.maxFontSize=1,a},makeAnchor:function(e,t,r,a){var n=new eb(e,t,r,a);return tr(n),n},makeFragment:ti,wrapFragment:function(e,t){return e instanceof J?ta([],[e],t):e},makeVList:function(e,t){for(var r,{children:a,depth:n}=ts(e),i=0,s=0;s<a.length;s++){var o=a[s];if("elem"===o.type){var l=o.elem;i=Math.max(i,l.maxFontSize,l.height)}}i+=2;var h=ta(["pstrut"],[]);h.style.height=ep(i);for(var m=[],c=n,p=n,u=n,d=0;d<a.length;d++){var g=a[d];if("kern"===g.type)u+=g.size;else{var f=g.elem,v=ta(g.wrapperClasses||[],[h,f],void 0,g.wrapperStyle||{});v.style.top=ep(-i-u-f.depth),g.marginLeft&&(v.style.marginLeft=g.marginLeft),g.marginRight&&(v.style.marginRight=g.marginRight),m.push(v),u+=f.height+f.depth}c=Math.min(c,u),p=Math.max(p,u)}var b=ta(["vlist"],m);if(b.style.height=ep(p),c<0){var y=ta([],[]),x=ta(["vlist"],[y]);x.style.height=ep(-c);var w=ta(["vlist-s"],[new ew("\u200B")]);r=[ta(["vlist-r"],[b,w]),ta(["vlist-r"],[x])]}else r=[ta(["vlist-r"],[b])];var k=ta(["vlist-t"],r);return 2===r.length&&k.classes.push("vlist-t2"),k.height=p,k.depth=-c,k},makeOrd:function(e,t,r){var a=e.mode,n=e.text,i=["mord"],s="math"===a||"text"===a&&t.font,o=s?t.font:t.fontFamily,l="",h="";if(55349===n.charCodeAt(0)&&([l,h]=e2(n,a)),l.length>0)return te(n,l,a,t,i.concat(h));if(o){if("boldsymbol"===o){var m,c,p="textord"!==r&&e9(n,"Math-BoldItalic",a).metrics?{fontName:"Math-BoldItalic",fontClass:"boldsymbol"}:{fontName:"Main-Bold",fontClass:"mathbf"};m=p.fontName,c=[p.fontClass]}else s?(m=tl[o].fontName,c=[o]):(m=to(o,t.fontWeight,t.fontShape),c=[o,t.fontWeight,t.fontShape]);if(e9(n,m,a).metrics)return te(n,m,a,t,i.concat(c));if(eG.hasOwnProperty(n)&&"Typewriter"===m.slice(0,10)){for(var u=[],d=0;d<n.length;d++)u.push(te(n[d],m,a,t,i.concat(c)));return ti(u)}}if("mathord"===r)return te(n,"Math-Italic",a,t,i.concat(["mathnormal"]));if("textord"===r){var g=eB[a][n]&&eB[a][n].font;if("ams"===g)return te(n,to("amsrm",t.fontWeight,t.fontShape),a,t,i.concat("amsrm",t.fontWeight,t.fontShape));if("main"===g||!g)return te(n,to("textrm",t.fontWeight,t.fontShape),a,t,i.concat(t.fontWeight,t.fontShape));var f=to(g,t.fontWeight,t.fontShape);return te(n,f,a,t,i.concat(f,t.fontWeight,t.fontShape))}throw Error("unexpected type: "+r+" in makeOrd")},makeGlue:(e,t)=>{var r=ta(["mspace"],[],t),a=ec(e,t);return r.style.marginRight=ep(a),r},staticSvg:function(e,t){var[r,a,n]=th[e],i=tn(["overlay"],[new ek([new eS(r)],{width:ep(a),height:ep(n),style:"width:"+ep(a),viewBox:"0 0 "+1e3*a+" "+1e3*n,preserveAspectRatio:"xMinYMin"})],t);return i.height=n,i.style.height=ep(n),i.style.width=ep(a),i},svgData:th,tryCombineChars:e=>{for(var t=0;t<e.length-1;t++){var r=e[t],a=e[t+1];r instanceof ew&&a instanceof ew&&tt(r,a)&&(r.text+=a.text,r.height=Math.max(r.height,a.height),r.depth=Math.max(r.depth,a.depth),r.italic=a.italic,e.splice(t+1,1),t--)}return e}},tc={number:3,unit:"mu"},tp={number:4,unit:"mu"},tu={number:5,unit:"mu"},td={mord:{mop:tc,mbin:tp,mrel:tu,minner:tc},mop:{mord:tc,mop:tc,mrel:tu,minner:tc},mbin:{mord:tp,mop:tp,mopen:tp,minner:tp},mrel:{mord:tu,mop:tu,mopen:tu,minner:tu},mopen:{},mclose:{mop:tc,mbin:tp,mrel:tu,minner:tc},mpunct:{mord:tc,mop:tc,mrel:tu,mopen:tc,mclose:tc,mpunct:tc,minner:tc},minner:{mord:tc,mop:tc,mbin:tp,mrel:tu,mopen:tc,mpunct:tc,minner:tc}},tg={mord:{mop:tc},mop:{mord:tc,mop:tc},mbin:{},mrel:{},mopen:{},mclose:{mop:tc},mpunct:{},minner:{mop:tc}},tf={},tv={},tb={};function ty(e){for(var{type:t,names:r,props:a,handler:n,htmlBuilder:i,mathmlBuilder:s}=e,o={type:t,numArgs:a.numArgs,argTypes:a.argTypes,allowedInArgument:!!a.allowedInArgument,allowedInText:!!a.allowedInText,allowedInMath:void 0===a.allowedInMath||a.allowedInMath,numOptionalArgs:a.numOptionalArgs||0,infix:!!a.infix,primitive:!!a.primitive,handler:n},l=0;l<r.length;++l)tf[r[l]]=o;t&&(i&&(tv[t]=i),s&&(tb[t]=s))}function tx(e){var{type:t,htmlBuilder:r,mathmlBuilder:a}=e;ty({type:t,names:[],props:{numArgs:0},handler(){throw Error("Should never be called.")},htmlBuilder:r,mathmlBuilder:a})}var tw=function(e){return"ordgroup"===e.type&&1===e.body.length?e.body[0]:e},tk=function(e){return"ordgroup"===e.type?e.body:[e]},tS=tm.makeSpan,tM=["leftmost","mbin","mopen","mrel","mop","mpunct"],tz=["rightmost","mrel","mclose","mpunct"],tA={display:Y.DISPLAY,text:Y.TEXT,script:Y.SCRIPT,scriptscript:Y.SCRIPTSCRIPT},tT={mord:"mord",mop:"mop",mbin:"mbin",mrel:"mrel",mopen:"mopen",mclose:"mclose",mpunct:"mpunct",minner:"minner"},tB=function(e,t,r,a){void 0===a&&(a=[null,null]);for(var n=[],i=0;i<e.length;i++){var s=tR(e[i],t);if(s instanceof J){var o=s.children;n.push(...o)}else n.push(s)}if(tm.tryCombineChars(n),!r)return n;var l=t;if(1===e.length){var h=e[0];"sizing"===h.type?l=t.havingSize(h.size):"styling"===h.type&&(l=t.havingStyle(tA[h.style]))}var m=tS([a[0]||"leftmost"],[],t),c=tS([a[1]||"rightmost"],[],t),p="root"===r;return tC(n,(e,t)=>{var r=t.classes[0],a=e.classes[0];"mbin"===r&&H.contains(tz,a)?t.classes[0]="mord":"mbin"===a&&H.contains(tM,r)&&(e.classes[0]="mord")},{node:m},c,p),tC(n,(e,t)=>{var r=tI(t),a=tI(e),n=r&&a?e.hasClass("mtight")?tg[r][a]:td[r][a]:null;if(n)return tm.makeGlue(n,l)},{node:m},c,p),n},tC=function e(t,r,a,n,i){n&&t.push(n);for(var s=0;s<t.length;s++){let n;var o=t[s],l=tq(o);if(l){e(l.children,r,a,null,i);continue}var h=!o.hasClass("mspace");if(h){var m=r(o,a.node);m&&(a.insertAfter?a.insertAfter(m):(t.unshift(m),s++))}h?a.node=o:i&&o.hasClass("newline")&&(a.node=tS(["leftmost"])),a.insertAfter=(n=s,e=>{t.splice(n+1,0,e),s++})}n&&t.pop()},tq=function(e){return e instanceof J||e instanceof eb||e instanceof ev&&e.hasClass("enclosing")?e:null},tN=function e(t,r){var a=tq(t);if(a){var n=a.children;if(n.length){if("right"===r)return e(n[n.length-1],"right");if("left"===r)return e(n[0],"left")}}return t},tI=function(e,t){return e?(t&&(e=tN(e,t)),tT[e.classes[0]]||null):null},tH=function(e,t){var r=["nulldelimiter"].concat(e.baseSizingClasses());return tS(t.concat(r))},tR=function(e,t,r){if(!e)return tS();if(tv[e.type]){var a=tv[e.type](e,t);if(r&&t.size!==r.size){a=tS(t.sizingClasses(r),[a],t);var n=t.sizeMultiplier/r.sizeMultiplier;a.height*=n,a.depth*=n}return a}throw new i("Got group of unknown type: '"+e.type+"'")};function tO(e,t){var r=tS(["base"],e,t),a=tS(["strut"]);return a.style.height=ep(r.height+r.depth),r.depth&&(a.style.verticalAlign=ep(-r.depth)),r.children.unshift(a),r}function tE(e,t){var r,a,n=null;1===e.length&&"tag"===e[0].type&&(n=e[0].tag,e=e[0].body);var i=tB(e,t,"root");2===i.length&&i[1].hasClass("tag")&&(r=i.pop());for(var s=[],o=[],l=0;l<i.length;l++)if(o.push(i[l]),i[l].hasClass("mbin")||i[l].hasClass("mrel")||i[l].hasClass("allowbreak")){for(var h=!1;l<i.length-1&&i[l+1].hasClass("mspace")&&!i[l+1].hasClass("newline");)l++,o.push(i[l]),i[l].hasClass("nobreak")&&(h=!0);h||(s.push(tO(o,t)),o=[])}else i[l].hasClass("newline")&&(o.pop(),o.length>0&&(s.push(tO(o,t)),o=[]),s.push(i[l]));o.length>0&&s.push(tO(o,t)),n?((a=tO(tB(n,t,!0))).classes=["tag"],s.push(a)):r&&s.push(r);var m=tS(["katex-html"],s);if(m.setAttribute("aria-hidden","true"),a){var c=a.children[0];c.style.height=ep(m.height+m.depth),m.depth&&(c.style.verticalAlign=ep(-m.depth))}return m}function tL(e){return new J(e)}class tD{constructor(e,t,r){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=r||[]}setAttribute(e,t){this.attributes[e]=t}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=eu(this.classes));for(var r=0;r<this.children.length;r++)e.appendChild(this.children[r].toNode());return e}toMarkup(){var e="<"+this.type;for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&(e+=" "+t+'="'+H.escape(this.attributes[t])+'"');this.classes.length>0&&(e+=' class ="'+H.escape(eu(this.classes))+'"'),e+=">";for(var r=0;r<this.children.length;r++)e+=this.children[r].toMarkup();return e+("</"+this.type)+">"}toText(){return this.children.map(e=>e.toText()).join("")}}class tV{constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return H.escape(this.toText())}toText(){return this.text}}var tP={MathNode:tD,TextNode:tV,SpaceNode:class{constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character="\u200A":e>=.1666&&e<=.1667?this.character="\u2009":e>=.2222&&e<=.2223?this.character="\u2005":e>=.2777&&e<=.2778?this.character="\u2005\u200A":e>=-.05556&&e<=-.05555?this.character="\u200A\u2063":e>=-.1667&&e<=-.1666?this.character="\u2009\u2063":e>=-.2223&&e<=-.2222?this.character="\u205F\u2063":e>=-.2778&&e<=-.2777?this.character="\u2005\u2063":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",ep(this.width)),e}toMarkup(){return this.character?"<mtext>"+this.character+"</mtext>":'<mspace width="'+ep(this.width)+'"/>'}toText(){return this.character?this.character:" "}},newDocumentFragment:tL},tF=function(e,t,r){return eB[t][e]&&eB[t][e].replace&&55349!==e.charCodeAt(0)&&!(eG.hasOwnProperty(e)&&r&&(r.fontFamily&&"tt"===r.fontFamily.slice(4,6)||r.font&&"tt"===r.font.slice(4,6)))&&(e=eB[t][e].replace),new tP.TextNode(e)},tG=function(e){return 1===e.length?e[0]:new tP.MathNode("mrow",e)},tU=function(e,t){if("texttt"===t.fontFamily)return"monospace";if("textsf"===t.fontFamily)return"textit"===t.fontShape&&"textbf"===t.fontWeight?"sans-serif-bold-italic":"textit"===t.fontShape?"sans-serif-italic":"textbf"===t.fontWeight?"bold-sans-serif":"sans-serif";if("textit"===t.fontShape&&"textbf"===t.fontWeight)return"bold-italic";if("textit"===t.fontShape)return"italic";if("textbf"===t.fontWeight)return"bold";var r=t.font;if(!r||"mathnormal"===r)return null;var a=e.mode;if("mathit"===r)return"italic";if("boldsymbol"===r)return"textord"===e.type?"bold":"bold-italic";if("mathbf"===r)return"bold";if("mathbb"===r)return"double-struck";if("mathfrak"===r)return"fraktur";if("mathscr"===r||"mathcal"===r)return"script";if("mathsf"===r)return"sans-serif";else if("mathtt"===r)return"monospace";var n=e.text;return H.contains(["\\imath","\\jmath"],n)?null:(eB[a][n]&&eB[a][n].replace&&(n=eB[a][n].replace),er(n,tm.fontMap[r].fontName,a))?tm.fontMap[r].variant:null},tY=function(e,t,r){if(1===e.length){var a,n=tW(e[0],t);return r&&n instanceof tD&&"mo"===n.type&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}for(var i=[],s=0;s<e.length;s++){var o=tW(e[s],t);if(o instanceof tD&&a instanceof tD){if("mtext"===o.type&&"mtext"===a.type&&o.getAttribute("mathvariant")===a.getAttribute("mathvariant")||"mn"===o.type&&"mn"===a.type){a.children.push(...o.children);continue}if("mi"===o.type&&1===o.children.length&&"mn"===a.type){var l=o.children[0];if(l instanceof tV&&"."===l.text){a.children.push(...o.children);continue}}else if("mi"===a.type&&1===a.children.length){var h=a.children[0];if(h instanceof tV&&"\u0338"===h.text&&("mo"===o.type||"mi"===o.type||"mn"===o.type)){var m=o.children[0];m instanceof tV&&m.text.length>0&&(m.text=m.text.slice(0,1)+"\u0338"+m.text.slice(1),i.pop())}}}i.push(o),a=o}return i},tX=function(e,t,r){return tG(tY(e,t,r))},tW=function(e,t){if(!e)return new tP.MathNode("mrow");if(tb[e.type])return tb[e.type](e,t);throw new i("Got group of unknown type: '"+e.type+"'")};function t_(e,t,r,a,n){var i,s=tY(e,r);i=1===s.length&&s[0]instanceof tD&&H.contains(["mrow","mtable"],s[0].type)?s[0]:new tP.MathNode("mrow",s);var o=new tP.MathNode("annotation",[new tP.TextNode(t)]);o.setAttribute("encoding","application/x-tex");var l=new tP.MathNode("semantics",[i,o]),h=new tP.MathNode("math",[l]);return h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),a&&h.setAttribute("display","block"),tm.makeSpan([n?"katex":"katex-mathml"],[h])}var tj=function(e){return new eo({style:e.displayMode?Y.DISPLAY:Y.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},t$=function(e,t){if(t.displayMode){var r=["katex-display"];t.leqno&&r.push("leqno"),t.fleqn&&r.push("fleqn"),e=tm.makeSpan(r,[e])}return e},tZ=function(e,t,r){var a,n=tj(r);if("mathml"===r.output)return t_(e,t,n,r.displayMode,!0);if("html"===r.output){var i=tE(e,n);a=tm.makeSpan(["katex"],[i])}else{var s=t_(e,t,n,r.displayMode,!1),o=tE(e,n);a=tm.makeSpan(["katex"],[s,o])}return t$(a,r)},tK=function(e,t,r){var a=tE(e,tj(r));return t$(tm.makeSpan(["katex"],[a]),r)},tJ={widehat:"^",widecheck:"\u02C7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23DF",overbrace:"\u23DE",overgroup:"\u23E0",undergroup:"\u23E1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21D2",xRightarrow:"\u21D2",overleftharpoon:"\u21BC",xleftharpoonup:"\u21BC",overrightharpoon:"\u21C0",xrightharpoonup:"\u21C0",xLeftarrow:"\u21D0",xLeftrightarrow:"\u21D4",xhookleftarrow:"\u21A9",xhookrightarrow:"\u21AA",xmapsto:"\u21A6",xrightharpoondown:"\u21C1",xleftharpoondown:"\u21BD",xrightleftharpoons:"\u21CC",xleftrightharpoons:"\u21CB",xtwoheadleftarrow:"\u219E",xtwoheadrightarrow:"\u21A0",xlongequal:"=",xtofrom:"\u21C4",xrightleftarrows:"\u21C4",xrightequilibrium:"\u21CC",xleftequilibrium:"\u21CB","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},tQ={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},t0={encloseSpan:function(e,t,r,a,n){var i,s=e.height+e.depth+r+a;if(/fbox|color|angl/.test(t)){if(i=tm.makeSpan(["stretchy",t],[],n),"fbox"===t){var o=n.color&&n.getColor();o&&(i.style.borderColor=o)}}else{var l=[];/^[bx]cancel$/.test(t)&&l.push(new eM({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&l.push(new eM({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var h=new ek(l,{width:"100%",height:ep(s)});i=tm.makeSvgSpan([],[h],n)}return i.height=s,i.style.height=ep(s),i},mathMLnode:function(e){var t=new tP.MathNode("mo",[new tP.TextNode(tJ[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},svgSpan:function(e,t){var{span:r,minWidth:a,height:n}=function(){var r=4e5,a=e.label.slice(1);if(H.contains(["widehat","widecheck","widetilde","utilde"],a)){var n,i,s,o,l="ordgroup"===(o=e.base).type?o.body.length:1;if(l>5)"widehat"===a||"widecheck"===a?(n=420,r=2364,s=.42,i=a+"4"):(n=312,r=2340,s=.34,i="tilde4");else{var h=[1,1,2,2,3,3][l];"widehat"===a||"widecheck"===a?(r=[0,1062,2364,2364,2364][h],n=[0,239,300,360,420][h],s=[0,.24,.3,.3,.36,.42][h],i=a+h):(r=[0,600,1033,2339,2340][h],n=[0,260,286,306,312][h],s=[0,.26,.286,.3,.306,.34][h],i="tilde"+h)}var m=new ek([new eS(i)],{width:"100%",height:ep(s),viewBox:"0 0 "+r+" "+n,preserveAspectRatio:"none"});return{span:tm.makeSvgSpan([],[m],t),minWidth:0,height:s}}var c,p,u=[],d=tQ[a],[g,f,v]=d,b=v/1e3,y=g.length;if(1===y)c=["hide-tail"],p=[d[3]];else if(2===y)c=["halfarrow-left","halfarrow-right"],p=["xMinYMin","xMaxYMin"];else if(3===y)c=["brace-left","brace-center","brace-right"],p=["xMinYMin","xMidYMin","xMaxYMin"];else throw Error("Correct katexImagesData or update code here to support\n "+y+" children.");for(var x=0;x<y;x++){var w=new ek([new eS(g[x])],{width:"400em",height:ep(b),viewBox:"0 0 "+r+" "+v,preserveAspectRatio:p[x]+" slice"}),k=tm.makeSvgSpan([c[x]],[w],t);if(1===y)return{span:k,minWidth:f,height:b};k.style.height=ep(b),u.push(k)}return{span:tm.makeSpan(["stretchy"],u,t),minWidth:f,height:b}}();return r.height=n,r.style.height=ep(n),a>0&&(r.style.minWidth=ep(a)),r}};function t1(e,t){if(!e||e.type!==t)throw Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)));return e}function t4(e){var t=t5(e);if(!t)throw Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)));return t}function t5(e){return e&&("atom"===e.type||eT.hasOwnProperty(e.type))?e:null}var t6=(e,t)=>{e&&"supsub"===e.type?(o=(l=t1(e.base,"accent")).base,e.base=o,h=function(e){if(e instanceof ev)return e;throw Error("Expected span<HtmlDomNode> but got "+String(e)+".")}(tR(e,t)),e.base=l):o=(l=t1(e,"accent")).base;var r=tR(o,t.havingCrampedStyle()),a=l.isShifty&&H.isCharacterBox(o),n=0;a&&(n=ez(tR(H.getBaseElem(o),t.havingCrampedStyle())).skew);var i="\\c"===l.label,s=i?r.height+r.depth:Math.min(r.height,t.fontMetrics().xHeight);if(l.isStretchy)m=t0.svgSpan(l,t),m=tm.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"elem",elem:m,wrapperClasses:["svg-align"],wrapperStyle:n>0?{width:"calc(100% - "+ep(2*n)+")",marginLeft:ep(2*n)}:void 0}]},t);else{"\\vec"===l.label?(c=tm.staticSvg("vec",t),p=tm.svgData.vec[1]):((c=ez(c=tm.makeOrd({mode:l.mode,text:l.label},t,"textord"))).italic=0,p=c.width,i&&(s+=c.depth)),m=tm.makeSpan(["accent-body"],[c]);var o,l,h,m,c,p,u="\\textcircled"===l.label;u&&(m.classes.push("accent-full"),s=r.height);var d=n;u||(d-=p/2),m.style.left=ep(d),"\\textcircled"===l.label&&(m.style.top=".2em"),m=tm.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:-s},{type:"elem",elem:m}]},t)}var g=tm.makeSpan(["mord","accent"],[m],t);return h?(h.children[0]=g,h.height=Math.max(g.height,h.height),h.classes[0]="mord",h):g},t7=(e,t)=>{var r=e.isStretchy?t0.mathMLnode(e.label):new tP.MathNode("mo",[tF(e.label,e.mode)]),a=new tP.MathNode("mover",[tW(e.base,t),r]);return a.setAttribute("accent","true"),a},t3=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(e=>"\\"+e).join("|"));ty({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(e,t)=>{var r=tw(t[0]),a=!t3.test(e.funcName),n=!a||"\\widehat"===e.funcName||"\\widetilde"===e.funcName||"\\widecheck"===e.funcName;return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:a,isShifty:n,base:r}},htmlBuilder:t6,mathmlBuilder:t7}),ty({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(e,t)=>{var r=t[0],a=e.parser.mode;return"math"===a&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),a="text"),{type:"accent",mode:a,label:e.funcName,isStretchy:!1,isShifty:!0,base:r}},htmlBuilder:t6,mathmlBuilder:t7}),ty({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(e,t)=>{var{parser:r,funcName:a}=e,n=t[0];return{type:"accentUnder",mode:r.mode,label:a,base:n}},htmlBuilder:(e,t)=>{var r=tR(e.base,t),a=t0.svgSpan(e,t),n="\\utilde"===e.label?.12:0,i=tm.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:a,wrapperClasses:["svg-align"]},{type:"kern",size:n},{type:"elem",elem:r}]},t);return tm.makeSpan(["mord","accentunder"],[i],t)},mathmlBuilder:(e,t)=>{var r=t0.mathMLnode(e.label),a=new tP.MathNode("munder",[tW(e.base,t),r]);return a.setAttribute("accentunder","true"),a}});var t8=e=>{var t=new tP.MathNode("mpadded",e?[e]:[]);return t.setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t};ty({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){var{parser:a,funcName:n}=e;return{type:"xArrow",mode:a.mode,label:n,body:t[0],below:r[0]}},htmlBuilder(e,t){var r,a,n=t.style,i=t.havingStyle(n.sup()),s=tm.wrapFragment(tR(e.body,i,t),t),o="\\x"===e.label.slice(0,2)?"x":"cd";s.classes.push(o+"-arrow-pad"),e.below&&(i=t.havingStyle(n.sub()),(r=tm.wrapFragment(tR(e.below,i,t),t)).classes.push(o+"-arrow-pad"));var l=t0.svgSpan(e,t),h=-t.fontMetrics().axisHeight+.5*l.height,m=-t.fontMetrics().axisHeight-.5*l.height-.111;if((s.depth>.25||"\\xleftequilibrium"===e.label)&&(m-=s.depth),r){var c=-t.fontMetrics().axisHeight+r.height+.5*l.height+.111;a=tm.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:m},{type:"elem",elem:l,shift:h},{type:"elem",elem:r,shift:c}]},t)}else a=tm.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:m},{type:"elem",elem:l,shift:h}]},t);return a.children[0].children[0].children[1].classes.push("svg-align"),tm.makeSpan(["mrel","x-arrow"],[a],t)},mathmlBuilder(e,t){var r,a=t0.mathMLnode(e.label);if(a.setAttribute("minsize","x"===e.label.charAt(0)?"1.75em":"3.0em"),e.body){var n=t8(tW(e.body,t));if(e.below){var i=t8(tW(e.below,t));r=new tP.MathNode("munderover",[a,i,n])}else r=new tP.MathNode("mover",[a,n])}else if(e.below){var s=t8(tW(e.below,t));r=new tP.MathNode("munder",[a,s])}else r=t8(),r=new tP.MathNode("mover",[a,r]);return r}});var t2=tm.makeSpan;function t9(e,t){var r=tB(e.body,t,!0);return t2([e.mclass],r,t)}function re(e,t){var r,a=tY(e.body,t);return"minner"===e.mclass?r=new tP.MathNode("mpadded",a):"mord"===e.mclass?e.isCharacterBox?(r=a[0]).type="mi":r=new tP.MathNode("mi",a):(e.isCharacterBox?(r=a[0]).type="mo":r=new tP.MathNode("mo",a),"mbin"===e.mclass?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):"mpunct"===e.mclass?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):"mopen"===e.mclass||"mclose"===e.mclass?(r.attributes.lspace="0em",r.attributes.rspace="0em"):"minner"===e.mclass&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}ty({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(e,t){var{parser:r,funcName:a}=e,n=t[0];return{type:"mclass",mode:r.mode,mclass:"m"+a.slice(5),body:tk(n),isCharacterBox:H.isCharacterBox(n)}},htmlBuilder:t9,mathmlBuilder:re});var rt=e=>{var t="ordgroup"===e.type&&e.body.length?e.body[0]:e;return"atom"===t.type&&("bin"===t.family||"rel"===t.family)?"m"+t.family:"mord"};ty({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(e,t){var{parser:r}=e;return{type:"mclass",mode:r.mode,mclass:rt(t[0]),body:tk(t[1]),isCharacterBox:H.isCharacterBox(t[1])}}}),ty({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(e,t){var r,{parser:a,funcName:n}=e,i=t[1],s=t[0];r="\\stackrel"!==n?rt(i):"mrel";var o={type:"op",mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:"\\stackrel"!==n,body:tk(i)},l={type:"supsub",mode:s.mode,base:o,sup:"\\underset"===n?null:s,sub:"\\underset"===n?s:null};return{type:"mclass",mode:a.mode,mclass:r,body:[l],isCharacterBox:H.isCharacterBox(l)}},htmlBuilder:t9,mathmlBuilder:re}),ty({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:r}=e;return{type:"pmb",mode:r.mode,mclass:rt(t[0]),body:tk(t[0])}},htmlBuilder(e,t){var r=tB(e.body,t,!0),a=tm.makeSpan([e.mclass],r,t);return a.style.textShadow="0.02em 0.01em 0.04px",a},mathmlBuilder(e,t){var r=tY(e.body,t),a=new tP.MathNode("mstyle",r);return a.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),a}});var rr={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},ra=()=>({type:"styling",body:[],mode:"math",style:"display"}),rn=e=>"textord"===e.type&&"@"===e.text,ri=(e,t)=>("mathord"===e.type||"atom"===e.type)&&e.text===t;ty({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:a}=e;return{type:"cdlabel",mode:r.mode,side:a.slice(4),label:t[0]}},htmlBuilder(e,t){var r=t.havingStyle(t.style.sup()),a=tm.wrapFragment(tR(e.label,r,t),t);return a.classes.push("cd-label-"+e.side),a.style.bottom=ep(.8-a.depth),a.height=0,a.depth=0,a},mathmlBuilder(e,t){var r=new tP.MathNode("mrow",[tW(e.label,t)]);return(r=new tP.MathNode("mpadded",[r])).setAttribute("width","0"),"left"===e.side&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),(r=new tP.MathNode("mstyle",[r])).setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}}),ty({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(e,t){var{parser:r}=e;return{type:"cdlabelparent",mode:r.mode,fragment:t[0]}},htmlBuilder(e,t){var r=tm.wrapFragment(tR(e.fragment,t),t);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder:(e,t)=>new tP.MathNode("mrow",[tW(e.fragment,t)])}),ty({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(e,t){for(var r,{parser:a}=e,n=t1(t[0],"ordgroup").body,s="",o=0;o<n.length;o++)s+=t1(n[o],"textord").text;var l=parseInt(s);if(isNaN(l))throw new i("\\@char has non-numeric argument "+s);if(l<0||l>=1114111)throw new i("\\@char with invalid code point "+s);return l<=65535?r=String.fromCharCode(l):(l-=65536,r=String.fromCharCode((l>>10)+55296,(1023&l)+56320)),{type:"textord",mode:a.mode,text:r}}});var rs=(e,t)=>{var r=tB(e.body,t.withColor(e.color),!1);return tm.makeFragment(r)},ro=(e,t)=>{var r=tY(e.body,t.withColor(e.color)),a=new tP.MathNode("mstyle",r);return a.setAttribute("mathcolor",e.color),a};ty({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(e,t){var{parser:r}=e,a=t1(t[0],"color-token").color,n=t[1];return{type:"color",mode:r.mode,color:a,body:tk(n)}},htmlBuilder:rs,mathmlBuilder:ro}),ty({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(e,t){var{parser:r,breakOnTokenText:a}=e,n=t1(t[0],"color-token").color;r.gullet.macros.set("\\current@color",n);var i=r.parseExpression(!0,a);return{type:"color",mode:r.mode,color:n,body:i}},htmlBuilder:rs,mathmlBuilder:ro}),ty({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(e,t,r){var{parser:a}=e,n="["===a.gullet.future().text?a.parseSizeGroup(!0):null,i=!a.settings.displayMode||!a.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:a.mode,newLine:i,size:n&&t1(n,"size").value}},htmlBuilder(e,t){var r=tm.makeSpan(["mspace"],[],t);return e.newLine&&(r.classes.push("newline"),e.size&&(r.style.marginTop=ep(ec(e.size,t)))),r},mathmlBuilder(e,t){var r=new tP.MathNode("mspace");return e.newLine&&(r.setAttribute("linebreak","newline"),e.size&&r.setAttribute("height",ep(ec(e.size,t)))),r}});var rl={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},rh=e=>{var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new i("Expected a control sequence",e);return t},rm=e=>{var t=e.gullet.popToken();return"="===t.text&&" "===(t=e.gullet.popToken()).text&&(t=e.gullet.popToken()),t},rc=(e,t,r,a)=>{var n=e.gullet.macros.get(r.text);null==n&&(r.noexpand=!0,n={tokens:[r],numArgs:0,unexpandable:!e.gullet.isExpandable(r.text)}),e.gullet.macros.set(t,n,a)};ty({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(e){var{parser:t,funcName:r}=e;t.consumeSpaces();var a=t.fetch();if(rl[a.text])return("\\global"===r||"\\\\globallong"===r)&&(a.text=rl[a.text]),t1(t.parseFunction(),"internal");throw new i("Invalid token after macro prefix",a)}}),ty({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var t,{parser:r,funcName:a}=e,n=r.gullet.popToken(),s=n.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(s))throw new i("Expected a control sequence",n);for(var o=0,l=[[]];"{"!==r.gullet.future().text;)if("#"===(n=r.gullet.popToken()).text){if("{"===r.gullet.future().text){t=r.gullet.future(),l[o].push("{");break}if(n=r.gullet.popToken(),!/^[1-9]$/.test(n.text))throw new i('Invalid argument number "'+n.text+'"');if(parseInt(n.text)!==o+1)throw new i('Argument number "'+n.text+'" out of order');o++,l.push([])}else if("EOF"===n.text)throw new i("Expected a macro definition");else l[o].push(n.text);var{tokens:h}=r.gullet.consumeArg();return t&&h.unshift(t),("\\edef"===a||"\\xdef"===a)&&(h=r.gullet.expandTokens(h)).reverse(),r.gullet.macros.set(s,{tokens:h,numArgs:o,delimiters:l},a===rl[a]),{type:"internal",mode:r.mode}}}),ty({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:r}=e,a=rh(t.gullet.popToken());t.gullet.consumeSpaces();var n=rm(t);return rc(t,a,n,"\\\\globallet"===r),{type:"internal",mode:t.mode}}}),ty({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:r}=e,a=rh(t.gullet.popToken()),n=t.gullet.popToken(),i=t.gullet.popToken();return rc(t,a,i,"\\\\globalfuture"===r),t.gullet.pushToken(i),t.gullet.pushToken(n),{type:"internal",mode:t.mode}}});var rp=function(e,t,r){var a=er(eB.math[e]&&eB.math[e].replace||e,t,r);if(!a)throw Error("Unsupported symbol "+e+" and font size "+t+".");return a},ru=function(e,t,r,a){var n=r.havingBaseStyle(t),i=tm.makeSpan(a.concat(n.sizingClasses(r)),[e],r),s=n.sizeMultiplier/r.sizeMultiplier;return i.height*=s,i.depth*=s,i.maxFontSize=n.sizeMultiplier,i},rd=function(e,t,r){var a=t.havingBaseStyle(r),n=(1-t.sizeMultiplier/a.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=ep(n),e.height-=n,e.depth+=n},rg=function(e,t,r,a,n,i){var s=ru(tm.makeSymbol(e,"Main-Regular",n,a),t,a,i);return r&&rd(s,a,t),s},rf=function(e,t,r,a,n,i){var s=tm.makeSymbol(e,"Size"+t+"-Regular",n,a),o=ru(tm.makeSpan(["delimsizing","size"+t],[s],a),Y.TEXT,a,i);return r&&rd(o,a,Y.TEXT),o},rv=function(e,t,r){var a;return a="Size1-Regular"===t?"delim-size1":"delim-size4",{type:"elem",elem:tm.makeSpan(["delimsizinginner",a],[tm.makeSpan([],[tm.makeSymbol(e,t,r)])])}},rb=function(e,t,r){var a=Q["Size4-Regular"][e.charCodeAt(0)]?Q["Size4-Regular"][e.charCodeAt(0)][4]:Q["Size1-Regular"][e.charCodeAt(0)][4],n=new ek([new eS("inner",$(e,Math.round(1e3*t)))],{width:ep(a),height:ep(t),style:"width:"+ep(a),viewBox:"0 0 "+1e3*a+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),i=tm.makeSvgSpan([],[n],r);return i.height=t,i.style.height=ep(t),i.style.width=ep(a),{type:"elem",elem:i}},ry={type:"kern",size:-.008},rx=["|","\\lvert","\\rvert","\\vert"],rw=["\\|","\\lVert","\\rVert","\\Vert"],rk=function(e,t,r,a,n,i){var s,o,l,h,m="",c=0;s=l=h=e,o=null;var p="Size1-Regular";"\\uparrow"===e?l=h="\u23D0":"\\Uparrow"===e?l=h="\u2016":"\\downarrow"===e?s=l="\u23D0":"\\Downarrow"===e?s=l="\u2016":"\\updownarrow"===e?(s="\\uparrow",l="\u23D0",h="\\downarrow"):"\\Updownarrow"===e?(s="\\Uparrow",l="\u2016",h="\\Downarrow"):H.contains(rx,e)?(l="\u2223",m="vert",c=333):H.contains(rw,e)?(l="\u2225",m="doublevert",c=556):"["===e||"\\lbrack"===e?(s="\u23A1",l="\u23A2",h="\u23A3",p="Size4-Regular",m="lbrack",c=667):"]"===e||"\\rbrack"===e?(s="\u23A4",l="\u23A5",h="\u23A6",p="Size4-Regular",m="rbrack",c=667):"\\lfloor"===e||"\u230A"===e?(l=s="\u23A2",h="\u23A3",p="Size4-Regular",m="lfloor",c=667):"\\lceil"===e||"\u2308"===e?(s="\u23A1",l=h="\u23A2",p="Size4-Regular",m="lceil",c=667):"\\rfloor"===e||"\u230B"===e?(l=s="\u23A5",h="\u23A6",p="Size4-Regular",m="rfloor",c=667):"\\rceil"===e||"\u2309"===e?(s="\u23A4",l=h="\u23A5",p="Size4-Regular",m="rceil",c=667):"("===e||"\\lparen"===e?(s="\u239B",l="\u239C",h="\u239D",p="Size4-Regular",m="lparen",c=875):")"===e||"\\rparen"===e?(s="\u239E",l="\u239F",h="\u23A0",p="Size4-Regular",m="rparen",c=875):"\\{"===e||"\\lbrace"===e?(s="\u23A7",o="\u23A8",h="\u23A9",l="\u23AA",p="Size4-Regular"):"\\}"===e||"\\rbrace"===e?(s="\u23AB",o="\u23AC",h="\u23AD",l="\u23AA",p="Size4-Regular"):"\\lgroup"===e||"\u27EE"===e?(s="\u23A7",h="\u23A9",l="\u23AA",p="Size4-Regular"):"\\rgroup"===e||"\u27EF"===e?(s="\u23AB",h="\u23AD",l="\u23AA",p="Size4-Regular"):"\\lmoustache"===e||"\u23B0"===e?(s="\u23A7",h="\u23AD",l="\u23AA",p="Size4-Regular"):("\\rmoustache"===e||"\u23B1"===e)&&(s="\u23AB",h="\u23A9",l="\u23AA",p="Size4-Regular");var u=rp(s,p,n),d=u.height+u.depth,g=rp(l,p,n),f=g.height+g.depth,v=rp(h,p,n),b=v.height+v.depth,y=0,x=1;if(null!==o){var w=rp(o,p,n);y=w.height+w.depth,x=2}var k=d+b+y,S=Math.max(0,Math.ceil((t-k)/(x*f))),M=k+S*x*f,z=a.fontMetrics().axisHeight;r&&(z*=a.sizeMultiplier);var A=M/2-z,T=[];if(m.length>0){var B=Math.round(1e3*M),C=K(m,Math.round(1e3*(M-d-b))),q=new eS(m,C),N=(c/1e3).toFixed(3)+"em",I=(B/1e3).toFixed(3)+"em",R=new ek([q],{width:N,height:I,viewBox:"0 0 "+c+" "+B}),O=tm.makeSvgSpan([],[R],a);O.height=B/1e3,O.style.width=N,O.style.height=I,T.push({type:"elem",elem:O})}else{if(T.push(rv(h,p,n)),T.push(ry),null===o)T.push(rb(l,M-d-b+.016,a));else{var E=(M-d-b-y)/2+.016;T.push(rb(l,E,a)),T.push(ry),T.push(rv(o,p,n)),T.push(ry),T.push(rb(l,E,a))}T.push(ry),T.push(rv(s,p,n))}var L=a.havingBaseStyle(Y.TEXT),D=tm.makeVList({positionType:"bottom",positionData:A,children:T},L);return ru(tm.makeSpan(["delimsizing","mult"],[D],L),Y.TEXT,a,i)},rS=function(e,t,r,a,n){var i=j(e,a,r),s=new ek([new eS(e,i)],{width:"400em",height:ep(t),viewBox:"0 0 400000 "+r,preserveAspectRatio:"xMinYMin slice"});return tm.makeSvgSpan(["hide-tail"],[s],n)},rM=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","\\surd"],rz=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1"],rA=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],rT=[0,1.2,1.8,2.4,3],rB=[{type:"small",style:Y.SCRIPTSCRIPT},{type:"small",style:Y.SCRIPT},{type:"small",style:Y.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],rC=[{type:"small",style:Y.SCRIPTSCRIPT},{type:"small",style:Y.SCRIPT},{type:"small",style:Y.TEXT},{type:"stack"}],rq=[{type:"small",style:Y.SCRIPTSCRIPT},{type:"small",style:Y.SCRIPT},{type:"small",style:Y.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],rN=function(e){if("small"===e.type)return"Main-Regular";if("large"===e.type)return"Size"+e.size+"-Regular";if("stack"===e.type)return"Size4-Regular";throw Error("Add support for delim type '"+e.type+"' here.")},rI=function(e,t,r,a){for(var n=Math.min(2,3-a.style.size),i=n;i<r.length&&"stack"!==r[i].type;i++){var s=rp(e,rN(r[i]),"math"),o=s.height+s.depth;if("small"===r[i].type&&(o*=a.havingBaseStyle(r[i].style).sizeMultiplier),o>t)return r[i]}return r[r.length-1]},rH=function(e,t,r,a,n,i){"<"===e||"\\lt"===e||"\u27E8"===e?e="\\langle":(">"===e||"\\gt"===e||"\u27E9"===e)&&(e="\\rangle"),s=H.contains(rA,e)?rB:H.contains(rM,e)?rq:rC;var s,o=rI(e,t,s,a);return"small"===o.type?rg(e,o.style,r,a,n,i):"large"===o.type?rf(e,o.size,r,a,n,i):rk(e,t,r,a,n,i)},rR={sqrtImage:function(e,t){var r,a,n=t.havingBaseSizing(),i=rI("\\surd",e*n.sizeMultiplier,rq,n),s=n.sizeMultiplier,o=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),l=0,h=0,m=0;return"small"===i.type?(m=1e3+1e3*o+80,e<1?s=1:e<1.4&&(s=.7),l=(1+o+.08)/s,h=(1+o)/s,(r=rS("sqrtMain",l,m,o,t)).style.minWidth="0.853em",a=.833/s):"large"===i.type?(m=1080*rT[i.size],h=(rT[i.size]+o)/s,l=(rT[i.size]+o+.08)/s,(r=rS("sqrtSize"+i.size,l,m,o,t)).style.minWidth="1.02em",a=1/s):(l=e+o+.08,h=e+o,(r=rS("sqrtTall",l,m=Math.floor(1e3*e+o)+80,o,t)).style.minWidth="0.742em",a=1.056),r.height=h,r.style.height=ep(l),{span:r,advanceWidth:a,ruleWidth:(t.fontMetrics().sqrtRuleThickness+o)*s}},sizedDelim:function(e,t,r,a,n){if("<"===e||"\\lt"===e||"\u27E8"===e?e="\\langle":(">"===e||"\\gt"===e||"\u27E9"===e)&&(e="\\rangle"),H.contains(rM,e)||H.contains(rA,e))return rf(e,t,!1,r,a,n);if(H.contains(rz,e))return rk(e,rT[t],!1,r,a,n);throw new i("Illegal delimiter: '"+e+"'")},sizeToMaxHeight:rT,customSizedDelim:rH,leftRightDelim:function(e,t,r,a,n,i){var s=a.fontMetrics().axisHeight*a.sizeMultiplier,o=5/a.fontMetrics().ptPerEm,l=Math.max(t-s,r+s);return rH(e,Math.max(l/500*901,2*l-o),!0,a,n,i)}},rO={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},rE=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27E8","\\rangle","\u27E9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function rL(e,t){var r=t5(e);if(r&&H.contains(rE,r.text))return r;if(r)throw new i("Invalid delimiter '"+r.text+"' after '"+t.funcName+"'",e);throw new i("Invalid delimiter type '"+e.type+"'",e)}function rD(e){if(!e.body)throw Error("Bug: The leftright ParseNode wasn't fully parsed.")}ty({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(e,t)=>{var r=rL(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:rO[e.funcName].size,mclass:rO[e.funcName].mclass,delim:r.text}},htmlBuilder:(e,t)=>"."===e.delim?tm.makeSpan([e.mclass]):rR.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass]),mathmlBuilder:e=>{var t=[];"."!==e.delim&&t.push(tF(e.delim,e.mode));var r=new tP.MathNode("mo",t);"mopen"===e.mclass||"mclose"===e.mclass?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var a=ep(rR.sizeToMaxHeight[e.size]);return r.setAttribute("minsize",a),r.setAttribute("maxsize",a),r}}),ty({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var r=e.parser.gullet.macros.get("\\current@color");if(r&&"string"!=typeof r)throw new i("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:rL(t[0],e).text,color:r}}}),ty({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var r=rL(t[0],e),a=e.parser;++a.leftrightDepth;var n=a.parseExpression(!1);--a.leftrightDepth,a.expect("\\right",!1);var i=t1(a.parseFunction(),"leftright-right");return{type:"leftright",mode:a.mode,body:n,left:r.text,right:i.delim,rightColor:i.color}},htmlBuilder:(e,t)=>{rD(e);for(var r,a,n=tB(e.body,t,!0,["mopen","mclose"]),i=0,s=0,o=!1,l=0;l<n.length;l++)n[l].isMiddle?o=!0:(i=Math.max(n[l].height,i),s=Math.max(n[l].depth,s));if(i*=t.sizeMultiplier,s*=t.sizeMultiplier,r="."===e.left?tH(t,["mopen"]):rR.leftRightDelim(e.left,i,s,t,e.mode,["mopen"]),n.unshift(r),o)for(var h=1;h<n.length;h++){var m=n[h].isMiddle;m&&(n[h]=rR.leftRightDelim(m.delim,i,s,m.options,e.mode,[]))}if("."===e.right)a=tH(t,["mclose"]);else{var c=e.rightColor?t.withColor(e.rightColor):t;a=rR.leftRightDelim(e.right,i,s,c,e.mode,["mclose"])}return n.push(a),tm.makeSpan(["minner"],n,t)},mathmlBuilder:(e,t)=>{rD(e);var r=tY(e.body,t);if("."!==e.left){var a=new tP.MathNode("mo",[tF(e.left,e.mode)]);a.setAttribute("fence","true"),r.unshift(a)}if("."!==e.right){var n=new tP.MathNode("mo",[tF(e.right,e.mode)]);n.setAttribute("fence","true"),e.rightColor&&n.setAttribute("mathcolor",e.rightColor),r.push(n)}return tG(r)}}),ty({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var r=rL(t[0],e);if(!e.parser.leftrightDepth)throw new i("\\middle without preceding \\left",r);return{type:"middle",mode:e.parser.mode,delim:r.text}},htmlBuilder:(e,t)=>{var r;if("."===e.delim)r=tH(t,[]);else{r=rR.sizedDelim(e.delim,1,t,e.mode,[]);var a={delim:e.delim,options:t};r.isMiddle=a}return r},mathmlBuilder:(e,t)=>{var r="\\vert"===e.delim||"|"===e.delim?tF("|","text"):tF(e.delim,e.mode),a=new tP.MathNode("mo",[r]);return a.setAttribute("fence","true"),a.setAttribute("lspace","0.05em"),a.setAttribute("rspace","0.05em"),a}});var rV=(e,t)=>{var r,a,n=tm.wrapFragment(tR(e.body,t),t),i=e.label.slice(1),s=t.sizeMultiplier,o=0,l=H.isCharacterBox(e.body);if("sout"===i)(r=tm.makeSpan(["stretchy","sout"])).height=t.fontMetrics().defaultRuleThickness/s,o=-.5*t.fontMetrics().xHeight;else if("phase"===i){var h=ec({number:.6,unit:"pt"},t),m=ec({number:.35,unit:"ex"},t);s/=t.havingBaseSizing().sizeMultiplier;var c=n.height+n.depth+h+m;n.style.paddingLeft=ep(c/2+h);var p=Math.floor(1e3*c*s),u=new ek([new eS("phase","M400000 "+p+" H0 L"+p/2+" 0 l65 45 L145 "+(p-80)+" H400000z")],{width:"400em",height:ep(p/1e3),viewBox:"0 0 400000 "+p,preserveAspectRatio:"xMinYMin slice"});(r=tm.makeSvgSpan(["hide-tail"],[u],t)).style.height=ep(c),o=n.depth+h+m}else{/cancel/.test(i)?l||n.classes.push("cancel-pad"):"angl"===i?n.classes.push("anglpad"):n.classes.push("boxpad");var d=0,g=0,f=0;/box/.test(i)?(f=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness),g=d=t.fontMetrics().fboxsep+("colorbox"===i?0:f)):"angl"===i?(d=4*(f=Math.max(t.fontMetrics().defaultRuleThickness,t.minRuleThickness)),g=Math.max(0,.25-n.depth)):g=d=l?.2:0,r=t0.encloseSpan(n,i,d,g,t),/fbox|boxed|fcolorbox/.test(i)?(r.style.borderStyle="solid",r.style.borderWidth=ep(f)):"angl"===i&&.049!==f&&(r.style.borderTopWidth=ep(f),r.style.borderRightWidth=ep(f)),o=n.depth+g,e.backgroundColor&&(r.style.backgroundColor=e.backgroundColor,e.borderColor&&(r.style.borderColor=e.borderColor))}if(e.backgroundColor)a=tm.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:o},{type:"elem",elem:n,shift:0}]},t);else{var v=/cancel|phase/.test(i)?["svg-align"]:[];a=tm.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:0},{type:"elem",elem:r,shift:o,wrapperClasses:v}]},t)}return(/cancel/.test(i)&&(a.height=n.height,a.depth=n.depth),/cancel/.test(i)&&!l)?tm.makeSpan(["mord","cancel-lap"],[a],t):tm.makeSpan(["mord"],[a],t)},rP=(e,t)=>{var r=0,a=new tP.MathNode(e.label.indexOf("colorbox")>-1?"mpadded":"menclose",[tW(e.body,t)]);switch(e.label){case"\\cancel":a.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":a.setAttribute("notation","downdiagonalstrike");break;case"\\phase":a.setAttribute("notation","phasorangle");break;case"\\sout":a.setAttribute("notation","horizontalstrike");break;case"\\fbox":a.setAttribute("notation","box");break;case"\\angl":a.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,a.setAttribute("width","+"+2*r+"pt"),a.setAttribute("height","+"+2*r+"pt"),a.setAttribute("lspace",r+"pt"),a.setAttribute("voffset",r+"pt"),"\\fcolorbox"===e.label){var n=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);a.setAttribute("style","border: "+n+"em solid "+String(e.borderColor))}break;case"\\xcancel":a.setAttribute("notation","updiagonalstrike downdiagonalstrike")}return e.backgroundColor&&a.setAttribute("mathbackground",e.backgroundColor),a};ty({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(e,t,r){var{parser:a,funcName:n}=e,i=t1(t[0],"color-token").color,s=t[1];return{type:"enclose",mode:a.mode,label:n,backgroundColor:i,body:s}},htmlBuilder:rV,mathmlBuilder:rP}),ty({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(e,t,r){var{parser:a,funcName:n}=e,i=t1(t[0],"color-token").color,s=t1(t[1],"color-token").color,o=t[2];return{type:"enclose",mode:a.mode,label:n,backgroundColor:s,borderColor:i,body:o}},htmlBuilder:rV,mathmlBuilder:rP}),ty({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(e,t){var{parser:r}=e;return{type:"enclose",mode:r.mode,label:"\\fbox",body:t[0]}}}),ty({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:a}=e,n=t[0];return{type:"enclose",mode:r.mode,label:a,body:n}},htmlBuilder:rV,mathmlBuilder:rP}),ty({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(e,t){var{parser:r}=e;return{type:"enclose",mode:r.mode,label:"\\angl",body:t[0]}}});var rF={};function rG(e){for(var{type:t,names:r,props:a,handler:n,htmlBuilder:i,mathmlBuilder:s}=e,o={type:t,numArgs:a.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:n},l=0;l<r.length;++l)rF[r[l]]=o;i&&(tv[t]=i),s&&(tb[t]=s)}var rU={};function rY(e){var t=[];e.consumeSpaces();var r=e.fetch().text;for("\\relax"===r&&(e.consume(),e.consumeSpaces(),r=e.fetch().text);"\\hline"===r||"\\hdashline"===r;)e.consume(),t.push("\\hdashline"===r),e.consumeSpaces(),r=e.fetch().text;return t}var rX=e=>{if(!e.parser.settings.displayMode)throw new i("{"+e.envName+"} can be used only in display mode.")};function rW(e){if(-1===e.indexOf("ed"))return -1===e.indexOf("*")}function r_(e,t,r){var{hskipBeforeAndAfter:a,addJot:s,cols:o,arraystretch:l,colSeparationType:h,autoTag:m,singleRow:c,emptySingleRow:p,maxNumCols:u,leqno:d}=t;if(e.gullet.beginGroup(),c||e.gullet.macros.set("\\cr","\\\\\\relax"),!l){var g=e.gullet.expandMacroAsText("\\arraystretch");if(null==g)l=1;else if(!(l=parseFloat(g))||l<0)throw new i("Invalid \\arraystretch: "+g)}e.gullet.beginGroup();var f=[],v=[f],b=[],y=[],x=null!=m?[]:void 0;function w(){m&&e.gullet.macros.set("\\@eqnsw","1",!0)}function k(){x&&(e.gullet.macros.get("\\df@tag")?(x.push(e.subparse([new n("\\df@tag")])),e.gullet.macros.set("\\df@tag",void 0,!0)):x.push(!!m&&"1"===e.gullet.macros.get("\\@eqnsw")))}for(w(),y.push(rY(e));;){var S=e.parseExpression(!1,c?"\\end":"\\\\");e.gullet.endGroup(),e.gullet.beginGroup(),S={type:"ordgroup",mode:e.mode,body:S},r&&(S={type:"styling",mode:e.mode,style:r,body:[S]}),f.push(S);var M=e.fetch().text;if("&"===M){if(u&&f.length===u){if(c||h)throw new i("Too many tab characters: &",e.nextToken);e.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}e.consume()}else if("\\end"===M){k(),1===f.length&&"styling"===S.type&&0===S.body[0].body.length&&(v.length>1||!p)&&v.pop(),y.length<v.length+1&&y.push([]);break}else if("\\\\"===M){e.consume();var z=void 0;" "!==e.gullet.future().text&&(z=e.parseSizeGroup(!0)),b.push(z?z.value:null),k(),y.push(rY(e)),f=[],v.push(f),w()}else throw new i("Expected & or \\\\ or \\cr or \\end",e.nextToken)}return e.gullet.endGroup(),e.gullet.endGroup(),{type:"array",mode:e.mode,addJot:s,arraystretch:l,body:v,cols:o,rowGaps:b,hskipBeforeAndAfter:a,hLinesBeforeRow:y,colSeparationType:h,tags:x,leqno:d}}function rj(e){return"d"===e.slice(0,1)?"display":"text"}var r$=function(e,t){var r,a,n,s,o=e.body.length,l=e.hLinesBeforeRow,h=0,m=Array(o),c=[],p=Math.max(t.fontMetrics().arrayRuleWidth,t.minRuleThickness),u=1/t.fontMetrics().ptPerEm,d=5*u;e.colSeparationType&&"small"===e.colSeparationType&&(d=.2778*(t.havingStyle(Y.SCRIPT).sizeMultiplier/t.sizeMultiplier));var g="CD"===e.colSeparationType?ec({number:3,unit:"ex"},t):12*u,f=3*u,v=e.arraystretch*g,b=.7*v,y=.3*v,x=0;function w(e){for(var t=0;t<e.length;++t)t>0&&(x+=.25),c.push({pos:x,isDashed:e[t]})}for(w(l[0]),r=0;r<e.body.length;++r){var k=e.body[r],S=b,M=y;h<k.length&&(h=k.length);var z=Array(k.length);for(a=0;a<k.length;++a){var A=tR(k[a],t);M<A.depth&&(M=A.depth),S<A.height&&(S=A.height),z[a]=A}var T=e.rowGaps[r],B=0;T&&(B=ec(T,t))>0&&(M<(B+=y)&&(M=B),B=0),e.addJot&&(M+=f),z.height=S,z.depth=M,x+=S,z.pos=x,x+=M+B,m[r]=z,w(l[r+1])}var C=x/2+t.fontMetrics().axisHeight,q=e.cols||[],N=[],I=[];if(e.tags&&e.tags.some(e=>e))for(r=0;r<o;++r){var R=m[r],O=R.pos-C,E=e.tags[r],L=void 0;(L=!0===E?tm.makeSpan(["eqn-num"],[],t):!1===E?tm.makeSpan([],[],t):tm.makeSpan([],tB(E,t,!0),t)).depth=R.depth,L.height=R.height,I.push({type:"elem",elem:L,shift:O})}for(a=0,s=0;a<h||s<q.length;++a,++s){for(var D=q[s]||{},V=!0;"separator"===D.type;){if(V||((n=tm.makeSpan(["arraycolsep"],[])).style.width=ep(t.fontMetrics().doubleRuleSep),N.push(n)),"|"===D.separator||":"===D.separator){var P="|"===D.separator?"solid":"dashed",F=tm.makeSpan(["vertical-separator"],[],t);F.style.height=ep(x),F.style.borderRightWidth=ep(p),F.style.borderRightStyle=P,F.style.margin="0 "+ep(-p/2);var G=x-C;G&&(F.style.verticalAlign=ep(-G)),N.push(F)}else throw new i("Invalid separator type: "+D.separator);D=q[++s]||{},V=!1}if(!(a>=h)){var U=void 0;(a>0||e.hskipBeforeAndAfter)&&0!==(U=H.deflt(D.pregap,d))&&((n=tm.makeSpan(["arraycolsep"],[])).style.width=ep(U),N.push(n));var X=[];for(r=0;r<o;++r){var W=m[r],_=W[a];if(_){var j=W.pos-C;_.depth=W.depth,_.height=W.height,X.push({type:"elem",elem:_,shift:j})}}X=tm.makeVList({positionType:"individualShift",children:X},t),X=tm.makeSpan(["col-align-"+(D.align||"c")],[X]),N.push(X),(a<h-1||e.hskipBeforeAndAfter)&&0!==(U=H.deflt(D.postgap,d))&&((n=tm.makeSpan(["arraycolsep"],[])).style.width=ep(U),N.push(n))}}if(m=tm.makeSpan(["mtable"],N),c.length>0){for(var $=tm.makeLineSpan("hline",t,p),Z=tm.makeLineSpan("hdashline",t,p),K=[{type:"elem",elem:m,shift:0}];c.length>0;){var J=c.pop(),Q=J.pos-C;J.isDashed?K.push({type:"elem",elem:Z,shift:Q}):K.push({type:"elem",elem:$,shift:Q})}m=tm.makeVList({positionType:"individualShift",children:K},t)}if(0===I.length)return tm.makeSpan(["mord"],[m],t);var ee=tm.makeVList({positionType:"individualShift",children:I},t);return ee=tm.makeSpan(["tag"],[ee],t),tm.makeFragment([m,ee])},rZ={c:"center ",l:"left ",r:"right "},rK=function(e,t){for(var r=[],a=new tP.MathNode("mtd",[],["mtr-glue"]),n=new tP.MathNode("mtd",[],["mml-eqn-num"]),i=0;i<e.body.length;i++){for(var s=e.body[i],o=[],l=0;l<s.length;l++)o.push(new tP.MathNode("mtd",[tW(s[l],t)]));e.tags&&e.tags[i]&&(o.unshift(a),o.push(a),e.leqno?o.unshift(n):o.push(n)),r.push(new tP.MathNode("mtr",o))}var h=new tP.MathNode("mtable",r),m=.5===e.arraystretch?.1:.16+e.arraystretch-1+(e.addJot?.09:0);h.setAttribute("rowspacing",ep(m));var c="",p="";if(e.cols&&e.cols.length>0){var u=e.cols,d="",g=!1,f=0,v=u.length;"separator"===u[0].type&&(c+="top ",f=1),"separator"===u[u.length-1].type&&(c+="bottom ",v-=1);for(var b=f;b<v;b++)"align"===u[b].type?(p+=rZ[u[b].align],g&&(d+="none "),g=!0):"separator"===u[b].type&&g&&(d+="|"===u[b].separator?"solid ":"dashed ",g=!1);h.setAttribute("columnalign",p.trim()),/[sd]/.test(d)&&h.setAttribute("columnlines",d.trim())}if("align"===e.colSeparationType){for(var y=e.cols||[],x="",w=1;w<y.length;w++)x+=w%2?"0em ":"1em ";h.setAttribute("columnspacing",x.trim())}else"alignat"===e.colSeparationType||"gather"===e.colSeparationType?h.setAttribute("columnspacing","0em"):"small"===e.colSeparationType?h.setAttribute("columnspacing","0.2778em"):"CD"===e.colSeparationType?h.setAttribute("columnspacing","0.5em"):h.setAttribute("columnspacing","1em");var k="",S=e.hLinesBeforeRow;c+=(S[0].length>0?"left ":"")+(S[S.length-1].length>0?"right ":"");for(var M=1;M<S.length-1;M++)k+=0===S[M].length?"none ":S[M][0]?"dashed ":"solid ";return/[sd]/.test(k)&&h.setAttribute("rowlines",k.trim()),""!==c&&(h=new tP.MathNode("menclose",[h])).setAttribute("notation",c.trim()),e.arraystretch&&e.arraystretch<1&&(h=new tP.MathNode("mstyle",[h])).setAttribute("scriptlevel","1"),h},rJ=function(e,t){-1===e.envName.indexOf("ed")&&rX(e);var r,a=[],n=e.envName.indexOf("at")>-1?"alignat":"align",s="split"===e.envName,o=r_(e.parser,{cols:a,addJot:!0,autoTag:s?void 0:rW(e.envName),emptySingleRow:!0,colSeparationType:n,maxNumCols:s?2:void 0,leqno:e.parser.settings.leqno},"display"),l=0,h={type:"ordgroup",mode:e.mode,body:[]};if(t[0]&&"ordgroup"===t[0].type){for(var m="",c=0;c<t[0].body.length;c++)m+=t1(t[0].body[c],"textord").text;l=2*(r=Number(m))}var p=!l;o.body.forEach(function(e){for(var t=1;t<e.length;t+=2){var a=t1(e[t],"styling");t1(a.body[0],"ordgroup").body.unshift(h)}if(p)l<e.length&&(l=e.length);else{var n=e.length/2;if(r<n)throw new i("Too many math in a row: expected "+r+", but got "+n,e[0])}});for(var u=0;u<l;++u){var d="r",g=0;u%2==1?d="l":u>0&&p&&(g=1),a[u]={type:"align",align:d,pregap:g,postgap:0}}return o.colSeparationType=p?"align":"alignat",o};rG({type:"array",names:["array","darray"],props:{numArgs:1},handler(e,t){var r=(t5(t[0])?[t[0]]:t1(t[0],"ordgroup").body).map(function(e){var t=t4(e).text;if(-1!=="lcr".indexOf(t))return{type:"align",align:t};if("|"===t)return{type:"separator",separator:"|"};if(":"===t)return{type:"separator",separator:":"};throw new i("Unknown column alignment: "+t,e)}),a={cols:r,hskipBeforeAndAfter:!0,maxNumCols:r.length};return r_(e.parser,a,rj(e.envName))},htmlBuilder:r$,mathmlBuilder:rK}),rG({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(e){var t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")],r="c",a={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if("*"===e.envName.charAt(e.envName.length-1)){var n=e.parser;if(n.consumeSpaces(),"["===n.fetch().text){if(n.consume(),n.consumeSpaces(),r=n.fetch().text,-1==="lcr".indexOf(r))throw new i("Expected l or c or r",n.nextToken);n.consume(),n.consumeSpaces(),n.expect("]"),n.consume(),a.cols=[{type:"align",align:r}]}}var s=r_(e.parser,a,rj(e.envName)),o=Math.max(0,...s.body.map(e=>e.length));return s.cols=Array(o).fill({type:"align",align:r}),t?{type:"leftright",mode:e.mode,body:[s],left:t[0],right:t[1],rightColor:void 0}:s},htmlBuilder:r$,mathmlBuilder:rK}),rG({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(e){var t=r_(e.parser,{arraystretch:.5},"script");return t.colSeparationType="small",t},htmlBuilder:r$,mathmlBuilder:rK}),rG({type:"array",names:["subarray"],props:{numArgs:1},handler(e,t){var r=(t5(t[0])?[t[0]]:t1(t[0],"ordgroup").body).map(function(e){var t=t4(e).text;if(-1!=="lc".indexOf(t))return{type:"align",align:t};throw new i("Unknown column alignment: "+t,e)});if(r.length>1)throw new i("{subarray} can contain only one column");var a={cols:r,hskipBeforeAndAfter:!1,arraystretch:.5};if((a=r_(e.parser,a,"script")).body.length>0&&a.body[0].length>1)throw new i("{subarray} can contain only one column");return a},htmlBuilder:r$,mathmlBuilder:rK}),rG({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(e){var t=r_(e.parser,{arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},rj(e.envName));return{type:"leftright",mode:e.mode,body:[t],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:r$,mathmlBuilder:rK}),rG({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:rJ,htmlBuilder:r$,mathmlBuilder:rK}),rG({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(e){H.contains(["gather","gather*"],e.envName)&&rX(e);var t={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:rW(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return r_(e.parser,t,"display")},htmlBuilder:r$,mathmlBuilder:rK}),rG({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:rJ,htmlBuilder:r$,mathmlBuilder:rK}),rG({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(e){rX(e);var t={autoTag:rW(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return r_(e.parser,t,"display")},htmlBuilder:r$,mathmlBuilder:rK}),rG({type:"array",names:["CD"],props:{numArgs:0},handler:e=>(rX(e),function(e){var t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();var r=e.fetch().text;if("&"===r||"\\\\"===r)e.consume();else if("\\end"===r){0===t[t.length-1].length&&t.pop();break}else throw new i("Expected \\\\ or \\cr or \\end",e.nextToken)}for(var a=[],n=[a],s=0;s<t.length;s++){for(var o=t[s],l=ra(),h=0;h<o.length;h++)if(rn(o[h])){a.push(l);var m=t4(o[h+=1]).text,c=[,,];if(c[0]={type:"ordgroup",mode:"math",body:[]},c[1]={type:"ordgroup",mode:"math",body:[]},"=|.".indexOf(m)>-1);else if("<>AV".indexOf(m)>-1)for(var p=0;p<2;p++){for(var u=!0,d=h+1;d<o.length;d++){if(ri(o[d],m)){u=!1,h=d;break}if(rn(o[d]))throw new i("Missing a "+m+" character to complete a CD arrow.",o[d]);c[p].body.push(o[d])}if(u)throw new i("Missing a "+m+" character to complete a CD arrow.",o[h])}else throw new i('Expected one of "<>AV=|." after @',o[h]);var g={type:"styling",body:[function(e,t,r){var a=rr[e];switch(a){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(a,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":var n=r.callFunction("\\\\cdleft",[t[0]],[]),i=r.callFunction("\\Big",[{type:"atom",text:a,mode:"math",family:"rel"}],[]),s=r.callFunction("\\\\cdright",[t[1]],[]);return r.callFunction("\\\\cdparent",[{type:"ordgroup",mode:"math",body:[n,i,s]}],[]);case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":return r.callFunction("\\Big",[{type:"textord",text:"\\Vert",mode:"math"}],[]);default:return{type:"textord",text:" ",mode:"math"}}}(m,c,e)],mode:"math",style:"display"};a.push(g),l=ra()}else l.body.push(o[h]);s%2==0?a.push(l):a.shift(),a=[],n.push(a)}e.gullet.endGroup(),e.gullet.endGroup();var f=Array(n[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:n,arraystretch:1,addJot:!0,rowGaps:[null],cols:f,colSeparationType:"CD",hLinesBeforeRow:Array(n.length+1).fill([])}}(e.parser)),htmlBuilder:r$,mathmlBuilder:rK}),rU["\\nonumber"]="\\gdef\\@eqnsw{0}",rU["\\notag"]="\\nonumber",ty({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(e,t){throw new i(e.funcName+" valid only within array environment")}}),ty({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(e,t){var{parser:r,funcName:a}=e,n=t[0];if("ordgroup"!==n.type)throw new i("Invalid environment name",n);for(var s="",o=0;o<n.body.length;++o)s+=t1(n.body[o],"textord").text;if("\\begin"===a){if(!rF.hasOwnProperty(s))throw new i("No such environment: "+s,n);var l=rF[s],{args:h,optArgs:m}=r.parseArguments("\\begin{"+s+"}",l),c={mode:r.mode,envName:s,parser:r},p=l.handler(c,h,m);r.expect("\\end",!1);var u=r.nextToken,d=t1(r.parseFunction(),"environment");if(d.name!==s)throw new i("Mismatch: \\begin{"+s+"} matched by \\end{"+d.name+"}",u);return p}return{type:"environment",mode:r.mode,name:s,nameGroup:n}}});var rQ=(e,t)=>{var r=e.font,a=t.withFont(r);return tR(e.body,a)},r0=(e,t)=>{var r=e.font,a=t.withFont(r);return tW(e.body,a)},r1={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};ty({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(e,t)=>{var{parser:r,funcName:a}=e,n=tw(t[0]),i=a;return i in r1&&(i=r1[i]),{type:"font",mode:r.mode,font:i.slice(1),body:n}},htmlBuilder:rQ,mathmlBuilder:r0}),ty({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(e,t)=>{var{parser:r}=e,a=t[0],n=H.isCharacterBox(a);return{type:"mclass",mode:r.mode,mclass:rt(a),body:[{type:"font",mode:r.mode,font:"boldsymbol",body:a}],isCharacterBox:n}}}),ty({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{var{parser:r,funcName:a,breakOnTokenText:n}=e,{mode:i}=r,s=r.parseExpression(!0,n);return{type:"font",mode:i,font:"math"+a.slice(1),body:{type:"ordgroup",mode:r.mode,body:s}}},htmlBuilder:rQ,mathmlBuilder:r0});var r4=(e,t)=>{var r=t;return"display"===e?r=r.id>=Y.SCRIPT.id?r.text():Y.DISPLAY:"text"===e&&r.size===Y.DISPLAY.size?r=Y.TEXT:"script"===e?r=Y.SCRIPT:"scriptscript"===e&&(r=Y.SCRIPTSCRIPT),r},r5=(e,t)=>{var r,a,n,i,s,o,l,h,m,c,p,u=r4(e.size,t.style),d=u.fracNum(),g=u.fracDen();r=t.havingStyle(d);var f=tR(e.numer,r,t);if(e.continued){var v=8.5/t.fontMetrics().ptPerEm,b=3.5/t.fontMetrics().ptPerEm;f.height=f.height<v?v:f.height,f.depth=f.depth<b?b:f.depth}r=t.havingStyle(g);var y=tR(e.denom,r,t);if(e.hasBarLine?(e.barSize?(n=ec(e.barSize,t),a=tm.makeLineSpan("frac-line",t,n)):a=tm.makeLineSpan("frac-line",t),n=a.height,i=a.height):(a=null,n=0,i=t.fontMetrics().defaultRuleThickness),u.size===Y.DISPLAY.size||"display"===e.size?(s=t.fontMetrics().num1,o=n>0?3*i:7*i,l=t.fontMetrics().denom1):(n>0?(s=t.fontMetrics().num2,o=i):(s=t.fontMetrics().num3,o=3*i),l=t.fontMetrics().denom2),a){var x=t.fontMetrics().axisHeight;s-f.depth-(x+.5*n)<o&&(s+=o-(s-f.depth-(x+.5*n))),x-.5*n-(y.height-l)<o&&(l+=o-(x-.5*n-(y.height-l)));var w=-(x-.5*n);h=tm.makeVList({positionType:"individualShift",children:[{type:"elem",elem:y,shift:l},{type:"elem",elem:a,shift:w},{type:"elem",elem:f,shift:-s}]},t)}else{var k=s-f.depth-(y.height-l);k<o&&(s+=.5*(o-k),l+=.5*(o-k)),h=tm.makeVList({positionType:"individualShift",children:[{type:"elem",elem:y,shift:l},{type:"elem",elem:f,shift:-s}]},t)}return r=t.havingStyle(u),h.height*=r.sizeMultiplier/t.sizeMultiplier,h.depth*=r.sizeMultiplier/t.sizeMultiplier,m=u.size===Y.DISPLAY.size?t.fontMetrics().delim1:u.size===Y.SCRIPTSCRIPT.size?t.havingStyle(Y.SCRIPT).fontMetrics().delim2:t.fontMetrics().delim2,c=null==e.leftDelim?tH(t,["mopen"]):rR.customSizedDelim(e.leftDelim,m,!0,t.havingStyle(u),e.mode,["mopen"]),p=e.continued?tm.makeSpan([]):null==e.rightDelim?tH(t,["mclose"]):rR.customSizedDelim(e.rightDelim,m,!0,t.havingStyle(u),e.mode,["mclose"]),tm.makeSpan(["mord"].concat(r.sizingClasses(t)),[c,tm.makeSpan(["mfrac"],[h]),p],t)},r6=(e,t)=>{var r=new tP.MathNode("mfrac",[tW(e.numer,t),tW(e.denom,t)]);if(e.hasBarLine){if(e.barSize){var a=ec(e.barSize,t);r.setAttribute("linethickness",ep(a))}}else r.setAttribute("linethickness","0px");var n=r4(e.size,t.style);if(n.size!==t.style.size){r=new tP.MathNode("mstyle",[r]);var i=n.size===Y.DISPLAY.size?"true":"false";r.setAttribute("displaystyle",i),r.setAttribute("scriptlevel","0")}if(null!=e.leftDelim||null!=e.rightDelim){var s=[];if(null!=e.leftDelim){var o=new tP.MathNode("mo",[new tP.TextNode(e.leftDelim.replace("\\",""))]);o.setAttribute("fence","true"),s.push(o)}if(s.push(r),null!=e.rightDelim){var l=new tP.MathNode("mo",[new tP.TextNode(e.rightDelim.replace("\\",""))]);l.setAttribute("fence","true"),s.push(l)}return tG(s)}return r};ty({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(e,t)=>{var r,{parser:a,funcName:n}=e,i=t[0],s=t[1],o=null,l=null,h="auto";switch(n){case"\\dfrac":case"\\frac":case"\\tfrac":r=!0;break;case"\\\\atopfrac":r=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":r=!1,o="(",l=")";break;case"\\\\bracefrac":r=!1,o="\\{",l="\\}";break;case"\\\\brackfrac":r=!1,o="[",l="]";break;default:throw Error("Unrecognized genfrac command")}switch(n){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text"}return{type:"genfrac",mode:a.mode,continued:!1,numer:i,denom:s,hasBarLine:r,leftDelim:o,rightDelim:l,size:h,barSize:null}},htmlBuilder:r5,mathmlBuilder:r6}),ty({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(e,t)=>{var{parser:r,funcName:a}=e,n=t[0],i=t[1];return{type:"genfrac",mode:r.mode,continued:!0,numer:n,denom:i,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}}),ty({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(e){var t,{parser:r,funcName:a,token:n}=e;switch(a){case"\\over":t="\\frac";break;case"\\choose":t="\\binom";break;case"\\atop":t="\\\\atopfrac";break;case"\\brace":t="\\\\bracefrac";break;case"\\brack":t="\\\\brackfrac";break;default:throw Error("Unrecognized infix genfrac command")}return{type:"infix",mode:r.mode,replaceWith:t,token:n}}});var r7=["display","text","script","scriptscript"],r3=function(e){var t=null;return e.length>0&&(t="."===(t=e)?null:t),t};ty({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(e,t){var r,{parser:a}=e,n=t[4],i=t[5],s=tw(t[0]),o="atom"===s.type&&"open"===s.family?r3(s.text):null,l=tw(t[1]),h="atom"===l.type&&"close"===l.family?r3(l.text):null,m=t1(t[2],"size"),c=null;r=!!m.isBlank||(c=m.value).number>0;var p="auto",u=t[3];return"ordgroup"===u.type?u.body.length>0&&(p=r7[Number(t1(u.body[0],"textord").text)]):p=r7[Number((u=t1(u,"textord")).text)],{type:"genfrac",mode:a.mode,numer:n,denom:i,continued:!1,hasBarLine:r,barSize:c,leftDelim:o,rightDelim:h,size:p}},htmlBuilder:r5,mathmlBuilder:r6}),ty({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(e,t){var{parser:r,funcName:a,token:n}=e;return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:t1(t[0],"size").value,token:n}}}),ty({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(e,t)=>{var{parser:r,funcName:a}=e,n=t[0],i=I(t1(t[1],"infix").size),s=t[2],o=i.number>0;return{type:"genfrac",mode:r.mode,numer:n,denom:s,continued:!1,hasBarLine:o,barSize:i,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:r5,mathmlBuilder:r6});var r8=(e,t)=>{var r,a,n,i=t.style;"supsub"===e.type?(r=e.sup?tR(e.sup,t.havingStyle(i.sup()),t):tR(e.sub,t.havingStyle(i.sub()),t),a=t1(e.base,"horizBrace")):a=t1(e,"horizBrace");var s=tR(a.base,t.havingBaseStyle(Y.DISPLAY)),o=t0.svgSpan(a,t);if(a.isOver?(n=tm.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:o}]},t)).children[0].children[0].children[1].classes.push("svg-align"):(n=tm.makeVList({positionType:"bottom",positionData:s.depth+.1+o.height,children:[{type:"elem",elem:o},{type:"kern",size:.1},{type:"elem",elem:s}]},t)).children[0].children[0].children[0].classes.push("svg-align"),r){var l=tm.makeSpan(["mord",a.isOver?"mover":"munder"],[n],t);n=a.isOver?tm.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:r}]},t):tm.makeVList({positionType:"bottom",positionData:l.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:l}]},t)}return tm.makeSpan(["mord",a.isOver?"mover":"munder"],[n],t)};ty({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:a}=e;return{type:"horizBrace",mode:r.mode,label:a,isOver:/^\\over/.test(a),base:t[0]}},htmlBuilder:r8,mathmlBuilder:(e,t)=>{var r=t0.mathMLnode(e.label);return new tP.MathNode(e.isOver?"mover":"munder",[tW(e.base,t),r])}}),ty({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(e,t)=>{var{parser:r}=e,a=t[1],n=t1(t[0],"url").url;return r.settings.isTrusted({command:"\\href",url:n})?{type:"href",mode:r.mode,href:n,body:tk(a)}:r.formatUnsupportedCmd("\\href")},htmlBuilder:(e,t)=>{var r=tB(e.body,t,!1);return tm.makeAnchor(e.href,[],r,t)},mathmlBuilder:(e,t)=>{var r=tX(e.body,t);return r instanceof tD||(r=new tD("mrow",[r])),r.setAttribute("href",e.href),r}}),ty({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(e,t)=>{var{parser:r}=e,a=t1(t[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:a}))return r.formatUnsupportedCmd("\\url");for(var n=[],i=0;i<a.length;i++){var s=a[i];"~"===s&&(s="\\textasciitilde"),n.push({type:"textord",mode:"text",text:s})}var o={type:"text",mode:r.mode,font:"\\texttt",body:n};return{type:"href",mode:r.mode,href:a,body:tk(o)}}}),ty({type:"hbox",names:["\\hbox"],props:{numArgs:1,argTypes:["text"],allowedInText:!0,primitive:!0},handler(e,t){var{parser:r}=e;return{type:"hbox",mode:r.mode,body:tk(t[0])}},htmlBuilder(e,t){var r=tB(e.body,t,!1);return tm.makeFragment(r)},mathmlBuilder:(e,t)=>new tP.MathNode("mrow",tY(e.body,t))}),ty({type:"html",names:["\\htmlClass","\\htmlId","\\htmlStyle","\\htmlData"],props:{numArgs:2,argTypes:["raw","original"],allowedInText:!0},handler:(e,t)=>{var r,{parser:a,funcName:n,token:s}=e,o=t1(t[0],"raw").string,l=t[1];a.settings.strict&&a.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var h={};switch(n){case"\\htmlClass":h.class=o,r={command:"\\htmlClass",class:o};break;case"\\htmlId":h.id=o,r={command:"\\htmlId",id:o};break;case"\\htmlStyle":h.style=o,r={command:"\\htmlStyle",style:o};break;case"\\htmlData":for(var m=o.split(","),c=0;c<m.length;c++){var p=m[c].split("=");if(2!==p.length)throw new i("Error parsing key-value for \\htmlData");h["data-"+p[0].trim()]=p[1].trim()}r={command:"\\htmlData",attributes:h};break;default:throw Error("Unrecognized html command")}return a.settings.isTrusted(r)?{type:"html",mode:a.mode,attributes:h,body:tk(l)}:a.formatUnsupportedCmd(n)},htmlBuilder:(e,t)=>{var r=tB(e.body,t,!1),a=["enclosing"];e.attributes.class&&a.push(...e.attributes.class.trim().split(/\s+/));var n=tm.makeSpan(a,r,t);for(var i in e.attributes)"class"!==i&&e.attributes.hasOwnProperty(i)&&n.setAttribute(i,e.attributes[i]);return n},mathmlBuilder:(e,t)=>tX(e.body,t)}),ty({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(e,t)=>{var{parser:r}=e;return{type:"htmlmathml",mode:r.mode,html:tk(t[0]),mathml:tk(t[1])}},htmlBuilder:(e,t)=>{var r=tB(e.html,t,!1);return tm.makeFragment(r)},mathmlBuilder:(e,t)=>tX(e.mathml,t)});var r2=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var t=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!t)throw new i("Invalid size: '"+e+"' in \\includegraphics");var r={number:+(t[1]+t[2]),unit:t[3]};if(!em(r))throw new i("Invalid unit: '"+r.unit+"' in \\includegraphics.");return r};ty({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(e,t,r)=>{var{parser:a}=e,n={number:0,unit:"em"},s={number:.9,unit:"em"},o={number:0,unit:"em"},l="";if(r[0])for(var h=t1(r[0],"raw").string.split(","),m=0;m<h.length;m++){var c=h[m].split("=");if(2===c.length){var p=c[1].trim();switch(c[0].trim()){case"alt":l=p;break;case"width":n=r2(p);break;case"height":s=r2(p);break;case"totalheight":o=r2(p);break;default:throw new i("Invalid key: '"+c[0]+"' in \\includegraphics.")}}}var u=t1(t[0],"url").url;return(""===l&&(l=(l=(l=u).replace(/^.*[\\/]/,"")).substring(0,l.lastIndexOf("."))),a.settings.isTrusted({command:"\\includegraphics",url:u}))?{type:"includegraphics",mode:a.mode,alt:l,width:n,height:s,totalheight:o,src:u}:a.formatUnsupportedCmd("\\includegraphics")},htmlBuilder:(e,t)=>{var r=ec(e.height,t),a=0;e.totalheight.number>0&&(a=ec(e.totalheight,t)-r);var n=0;e.width.number>0&&(n=ec(e.width,t));var i={height:ep(r+a)};n>0&&(i.width=ep(n)),a>0&&(i.verticalAlign=ep(-a));var s=new ey(e.src,e.alt,i);return s.height=r,s.depth=a,s},mathmlBuilder:(e,t)=>{var r=new tP.MathNode("mglyph",[]);r.setAttribute("alt",e.alt);var a=ec(e.height,t),n=0;if(e.totalheight.number>0&&(n=ec(e.totalheight,t)-a,r.setAttribute("valign",ep(-n))),r.setAttribute("height",ep(a+n)),e.width.number>0){var i=ec(e.width,t);r.setAttribute("width",ep(i))}return r.setAttribute("src",e.src),r}}),ty({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(e,t){var{parser:r,funcName:a}=e,n=t1(t[0],"size");if(r.settings.strict){var i="m"===a[1],s="mu"===n.value.unit;i?(s||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" supports only mu units, not "+n.value.unit+" units"),"math"!==r.mode&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" works only in math mode")):s&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:n.value}},htmlBuilder:(e,t)=>tm.makeGlue(e.dimension,t),mathmlBuilder(e,t){var r=ec(e.dimension,t);return new tP.SpaceNode(r)}}),ty({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:r,funcName:a}=e,n=t[0];return{type:"lap",mode:r.mode,alignment:a.slice(5),body:n}},htmlBuilder:(e,t)=>{"clap"===e.alignment?(r=tm.makeSpan([],[tR(e.body,t)]),r=tm.makeSpan(["inner"],[r],t)):r=tm.makeSpan(["inner"],[tR(e.body,t)]);var r,a=tm.makeSpan(["fix"],[]),n=tm.makeSpan([e.alignment],[r,a],t),i=tm.makeSpan(["strut"]);return i.style.height=ep(n.height+n.depth),n.depth&&(i.style.verticalAlign=ep(-n.depth)),n.children.unshift(i),n=tm.makeSpan(["thinbox"],[n],t),tm.makeSpan(["mord","vbox"],[n],t)},mathmlBuilder:(e,t)=>{var r=new tP.MathNode("mpadded",[tW(e.body,t)]);if("rlap"!==e.alignment){var a="llap"===e.alignment?"-1":"-0.5";r.setAttribute("lspace",a+"width")}return r.setAttribute("width","0px"),r}}),ty({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){var{funcName:r,parser:a}=e,n=a.mode;a.switchMode("math");var i="\\("===r?"\\)":"$",s=a.parseExpression(!1,i);return a.expect(i),a.switchMode(n),{type:"styling",mode:a.mode,style:"text",body:s}}}),ty({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){throw new i("Mismatched "+e.funcName)}});var r9=(e,t)=>{switch(t.style.size){case Y.DISPLAY.size:return e.display;case Y.TEXT.size:return e.text;case Y.SCRIPT.size:return e.script;case Y.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};ty({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(e,t)=>{var{parser:r}=e;return{type:"mathchoice",mode:r.mode,display:tk(t[0]),text:tk(t[1]),script:tk(t[2]),scriptscript:tk(t[3])}},htmlBuilder:(e,t)=>{var r=tB(r9(e,t),t,!1);return tm.makeFragment(r)},mathmlBuilder:(e,t)=>tX(r9(e,t),t)});var ae=(e,t,r,a,n,i,s)=>{e=tm.makeSpan([],[e]);var o,l,h,m=r&&H.isCharacterBox(r);if(t){var c=tR(t,a.havingStyle(n.sup()),a);l={elem:c,kern:Math.max(a.fontMetrics().bigOpSpacing1,a.fontMetrics().bigOpSpacing3-c.depth)}}if(r){var p=tR(r,a.havingStyle(n.sub()),a);o={elem:p,kern:Math.max(a.fontMetrics().bigOpSpacing2,a.fontMetrics().bigOpSpacing4-p.height)}}if(l&&o){var u=a.fontMetrics().bigOpSpacing5+o.elem.height+o.elem.depth+o.kern+e.depth+s;h=tm.makeVList({positionType:"bottom",positionData:u,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:o.elem,marginLeft:ep(-i)},{type:"kern",size:o.kern},{type:"elem",elem:e},{type:"kern",size:l.kern},{type:"elem",elem:l.elem,marginLeft:ep(i)},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}else if(o){var d=e.height-s;h=tm.makeVList({positionType:"top",positionData:d,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:o.elem,marginLeft:ep(-i)},{type:"kern",size:o.kern},{type:"elem",elem:e}]},a)}else{if(!l)return e;var g=e.depth+s;h=tm.makeVList({positionType:"bottom",positionData:g,children:[{type:"elem",elem:e},{type:"kern",size:l.kern},{type:"elem",elem:l.elem,marginLeft:ep(i)},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}var f=[h];if(o&&0!==i&&!m){var v=tm.makeSpan(["mspace"],[],a);v.style.marginRight=ep(i),f.unshift(v)}return tm.makeSpan(["mop","op-limits"],f,a)},at=["\\smallint"],ar=(e,t)=>{var r,a,n,i,s=!1;"supsub"===e.type?(r=e.sup,a=e.sub,n=t1(e.base,"op"),s=!0):n=t1(e,"op");var o=t.style,l=!1;if(o.size===Y.DISPLAY.size&&n.symbol&&!H.contains(at,n.name)&&(l=!0),n.symbol){var h=l?"Size2-Regular":"Size1-Regular",m="";if(("\\oiint"===n.name||"\\oiiint"===n.name)&&(m=n.name.slice(1),n.name="oiint"===m?"\\iint":"\\iiint"),i=tm.makeSymbol(n.name,h,"math",t,["mop","op-symbol",l?"large-op":"small-op"]),m.length>0){var c=i.italic,p=tm.staticSvg(m+"Size"+(l?"2":"1"),t);i=tm.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:0},{type:"elem",elem:p,shift:l?.08:0}]},t),n.name="\\"+m,i.classes.unshift("mop"),i.italic=c}}else if(n.body){var u=tB(n.body,t,!0);1===u.length&&u[0]instanceof ew?(i=u[0]).classes[0]="mop":i=tm.makeSpan(["mop"],u,t)}else{for(var d=[],g=1;g<n.name.length;g++)d.push(tm.mathsym(n.name[g],n.mode,t));i=tm.makeSpan(["mop"],d,t)}var f=0,v=0;return((i instanceof ew||"\\oiint"===n.name||"\\oiiint"===n.name)&&!n.suppressBaseShift&&(f=(i.height-i.depth)/2-t.fontMetrics().axisHeight,v=i.italic),s)?ae(i,r,a,t,o,v,f):(f&&(i.style.position="relative",i.style.top=ep(f)),i)},aa=(e,t)=>{var r;if(e.symbol)r=new tD("mo",[tF(e.name,e.mode)]),H.contains(at,e.name)&&r.setAttribute("largeop","false");else if(e.body)r=new tD("mo",tY(e.body,t));else{r=new tD("mi",[new tV(e.name.slice(1))]);var a=new tD("mo",[tF("\u2061","text")]);r=e.parentIsSupSub?new tD("mrow",[r,a]):tL([r,a])}return r},an={"\u220F":"\\prod","\u2210":"\\coprod","\u2211":"\\sum","\u22C0":"\\bigwedge","\u22C1":"\\bigvee","\u22C2":"\\bigcap","\u22C3":"\\bigcup","\u2A00":"\\bigodot","\u2A01":"\\bigoplus","\u2A02":"\\bigotimes","\u2A04":"\\biguplus","\u2A06":"\\bigsqcup"};ty({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","\u220F","\u2210","\u2211","\u22C0","\u22C1","\u22C2","\u22C3","\u2A00","\u2A01","\u2A02","\u2A04","\u2A06"],props:{numArgs:0},handler:(e,t)=>{var{parser:r,funcName:a}=e,n=a;return 1===n.length&&(n=an[n]),{type:"op",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:ar,mathmlBuilder:aa}),ty({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var{parser:r}=e,a=t[0];return{type:"op",mode:r.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:tk(a)}},htmlBuilder:ar,mathmlBuilder:aa});var ai={"\u222B":"\\int","\u222C":"\\iint","\u222D":"\\iiint","\u222E":"\\oint","\u222F":"\\oiint","\u2230":"\\oiiint"};ty({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e;return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:ar,mathmlBuilder:aa}),ty({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e;return{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:ar,mathmlBuilder:aa}),ty({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","\u222B","\u222C","\u222D","\u222E","\u222F","\u2230"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e,a=r;return 1===a.length&&(a=ai[a]),{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:a}},htmlBuilder:ar,mathmlBuilder:aa});var as=(e,t)=>{var r,a,n,i,s=!1;if("supsub"===e.type?(r=e.sup,a=e.sub,n=t1(e.base,"operatorname"),s=!0):n=t1(e,"operatorname"),n.body.length>0){for(var o=tB(n.body.map(e=>{var t=e.text;return"string"==typeof t?{type:"textord",mode:e.mode,text:t}:e}),t.withFont("mathrm"),!0),l=0;l<o.length;l++){var h=o[l];h instanceof ew&&(h.text=h.text.replace(/\u2212/,"-").replace(/\u2217/,"*"))}i=tm.makeSpan(["mop"],o,t)}else i=tm.makeSpan(["mop"],[],t);return s?ae(i,r,a,t,t.style,0,0):i};function ao(e,t,r){for(var a=tB(e,t,!1),n=t.sizeMultiplier/r.sizeMultiplier,i=0;i<a.length;i++){var s=a[i].classes.indexOf("sizing");s<0?Array.prototype.push.apply(a[i].classes,t.sizingClasses(r)):a[i].classes[s+1]==="reset-size"+t.size&&(a[i].classes[s+1]="reset-size"+r.size),a[i].height*=n,a[i].depth*=n}return tm.makeFragment(a)}ty({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:(e,t)=>{var{parser:r,funcName:a}=e,n=t[0];return{type:"operatorname",mode:r.mode,body:tk(n),alwaysHandleSupSub:"\\operatornamewithlimits"===a,limits:!1,parentIsSupSub:!1}},htmlBuilder:as,mathmlBuilder:(e,t)=>{for(var r=tY(e.body,t.withFont("mathrm")),a=!0,n=0;n<r.length;n++){var i=r[n];if(i instanceof tP.SpaceNode);else if(i instanceof tP.MathNode)switch(i.type){case"mi":case"mn":case"ms":case"mspace":case"mtext":break;case"mo":var s=i.children[0];1===i.children.length&&s instanceof tP.TextNode?s.text=s.text.replace(/\u2212/,"-").replace(/\u2217/,"*"):a=!1;break;default:a=!1}else a=!1}if(a){var o=r.map(e=>e.toText()).join("");r=[new tP.TextNode(o)]}var l=new tP.MathNode("mi",r);l.setAttribute("mathvariant","normal");var h=new tP.MathNode("mo",[tF("\u2061","text")]);return e.parentIsSupSub?new tP.MathNode("mrow",[l,h]):tP.newDocumentFragment([l,h])}}),rU["\\operatorname"]="\\@ifstar\\operatornamewithlimits\\operatorname@",tx({type:"ordgroup",htmlBuilder:(e,t)=>e.semisimple?tm.makeFragment(tB(e.body,t,!1)):tm.makeSpan(["mord"],tB(e.body,t,!0),t),mathmlBuilder:(e,t)=>tX(e.body,t,!0)}),ty({type:"overline",names:["\\overline"],props:{numArgs:1},handler(e,t){var{parser:r}=e,a=t[0];return{type:"overline",mode:r.mode,body:a}},htmlBuilder(e,t){var r=tR(e.body,t.havingCrampedStyle()),a=tm.makeLineSpan("overline-line",t),n=t.fontMetrics().defaultRuleThickness,i=tm.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:3*n},{type:"elem",elem:a},{type:"kern",size:n}]},t);return tm.makeSpan(["mord","overline"],[i],t)},mathmlBuilder(e,t){var r=new tP.MathNode("mo",[new tP.TextNode("\u203E")]);r.setAttribute("stretchy","true");var a=new tP.MathNode("mover",[tW(e.body,t),r]);return a.setAttribute("accent","true"),a}}),ty({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:r}=e,a=t[0];return{type:"phantom",mode:r.mode,body:tk(a)}},htmlBuilder:(e,t)=>{var r=tB(e.body,t.withPhantom(),!1);return tm.makeFragment(r)},mathmlBuilder:(e,t)=>{var r=tY(e.body,t);return new tP.MathNode("mphantom",r)}}),ty({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:r}=e,a=t[0];return{type:"hphantom",mode:r.mode,body:a}},htmlBuilder:(e,t)=>{var r=tm.makeSpan([],[tR(e.body,t.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(var a=0;a<r.children.length;a++)r.children[a].height=0,r.children[a].depth=0;return r=tm.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r}]},t),tm.makeSpan(["mord"],[r],t)},mathmlBuilder:(e,t)=>{var r=tY(tk(e.body),t),a=new tP.MathNode("mphantom",r),n=new tP.MathNode("mpadded",[a]);return n.setAttribute("height","0px"),n.setAttribute("depth","0px"),n}}),ty({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:r}=e,a=t[0];return{type:"vphantom",mode:r.mode,body:a}},htmlBuilder:(e,t)=>{var r=tm.makeSpan(["inner"],[tR(e.body,t.withPhantom())]),a=tm.makeSpan(["fix"],[]);return tm.makeSpan(["mord","rlap"],[r,a],t)},mathmlBuilder:(e,t)=>{var r=tY(tk(e.body),t),a=new tP.MathNode("mphantom",r),n=new tP.MathNode("mpadded",[a]);return n.setAttribute("width","0px"),n}}),ty({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(e,t){var{parser:r}=e,a=t1(t[0],"size").value,n=t[1];return{type:"raisebox",mode:r.mode,dy:a,body:n}},htmlBuilder(e,t){var r=tR(e.body,t),a=ec(e.dy,t);return tm.makeVList({positionType:"shift",positionData:-a,children:[{type:"elem",elem:r}]},t)},mathmlBuilder(e,t){var r=new tP.MathNode("mpadded",[tW(e.body,t)]),a=e.dy.number+e.dy.unit;return r.setAttribute("voffset",a),r}}),ty({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0},handler(e){var{parser:t}=e;return{type:"internal",mode:t.mode}}}),ty({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,argTypes:["size","size","size"]},handler(e,t,r){var{parser:a}=e,n=r[0],i=t1(t[0],"size"),s=t1(t[1],"size");return{type:"rule",mode:a.mode,shift:n&&t1(n,"size").value,width:i.value,height:s.value}},htmlBuilder(e,t){var r=tm.makeSpan(["mord","rule"],[],t),a=ec(e.width,t),n=ec(e.height,t),i=e.shift?ec(e.shift,t):0;return r.style.borderRightWidth=ep(a),r.style.borderTopWidth=ep(n),r.style.bottom=ep(i),r.width=a,r.height=n+i,r.depth=-i,r.maxFontSize=1.125*n*t.sizeMultiplier,r},mathmlBuilder(e,t){var r=ec(e.width,t),a=ec(e.height,t),n=e.shift?ec(e.shift,t):0,i=t.color&&t.getColor()||"black",s=new tP.MathNode("mspace");s.setAttribute("mathbackground",i),s.setAttribute("width",ep(r)),s.setAttribute("height",ep(a));var o=new tP.MathNode("mpadded",[s]);return n>=0?o.setAttribute("height",ep(n)):(o.setAttribute("height",ep(n)),o.setAttribute("depth",ep(-n))),o.setAttribute("voffset",ep(n)),o}});var al=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];ty({type:"sizing",names:al,props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{var{breakOnTokenText:r,funcName:a,parser:n}=e,i=n.parseExpression(!1,r);return{type:"sizing",mode:n.mode,size:al.indexOf(a)+1,body:i}},htmlBuilder:(e,t)=>{var r=t.havingSize(e.size);return ao(e.body,r,t)},mathmlBuilder:(e,t)=>{var r=t.havingSize(e.size),a=tY(e.body,r),n=new tP.MathNode("mstyle",a);return n.setAttribute("mathsize",ep(r.sizeMultiplier)),n}}),ty({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(e,t,r)=>{var{parser:a}=e,n=!1,i=!1,s=r[0]&&t1(r[0],"ordgroup");if(s)for(var o="",l=0;l<s.body.length;++l)if("t"===(o=s.body[l].text))n=!0;else if("b"===o)i=!0;else{n=!1,i=!1;break}else n=!0,i=!0;var h=t[0];return{type:"smash",mode:a.mode,body:h,smashHeight:n,smashDepth:i}},htmlBuilder:(e,t)=>{var r=tm.makeSpan([],[tR(e.body,t)]);if(!e.smashHeight&&!e.smashDepth)return r;if(e.smashHeight&&(r.height=0,r.children))for(var a=0;a<r.children.length;a++)r.children[a].height=0;if(e.smashDepth&&(r.depth=0,r.children))for(var n=0;n<r.children.length;n++)r.children[n].depth=0;var i=tm.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r}]},t);return tm.makeSpan(["mord"],[i],t)},mathmlBuilder:(e,t)=>{var r=new tP.MathNode("mpadded",[tW(e.body,t)]);return e.smashHeight&&r.setAttribute("height","0px"),e.smashDepth&&r.setAttribute("depth","0px"),r}}),ty({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){var{parser:a}=e,n=r[0],i=t[0];return{type:"sqrt",mode:a.mode,body:i,index:n}},htmlBuilder(e,t){var r=tR(e.body,t.havingCrampedStyle());0===r.height&&(r.height=t.fontMetrics().xHeight),r=tm.wrapFragment(r,t);var a=t.fontMetrics().defaultRuleThickness,n=a;t.style.id<Y.TEXT.id&&(n=t.fontMetrics().xHeight);var i=a+n/4,s=r.height+r.depth+i+a,{span:o,ruleWidth:l,advanceWidth:h}=rR.sqrtImage(s,t),m=o.height-l;m>r.height+r.depth+i&&(i=(i+m-r.height-r.depth)/2);var c=o.height-r.height-i-l;r.style.paddingLeft=ep(h);var p=tm.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+c)},{type:"elem",elem:o},{type:"kern",size:l}]},t);if(!e.index)return tm.makeSpan(["mord","sqrt"],[p],t);var u=t.havingStyle(Y.SCRIPTSCRIPT),d=tR(e.index,u,t),g=.6*(p.height-p.depth),f=tm.makeVList({positionType:"shift",positionData:-g,children:[{type:"elem",elem:d}]},t),v=tm.makeSpan(["root"],[f]);return tm.makeSpan(["mord","sqrt"],[v,p],t)},mathmlBuilder(e,t){var{body:r,index:a}=e;return a?new tP.MathNode("mroot",[tW(r,t),tW(a,t)]):new tP.MathNode("msqrt",[tW(r,t)])}});var ah={display:Y.DISPLAY,text:Y.TEXT,script:Y.SCRIPT,scriptscript:Y.SCRIPTSCRIPT};ty({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e,t){var{breakOnTokenText:r,funcName:a,parser:n}=e,i=n.parseExpression(!0,r),s=a.slice(1,a.length-5);return{type:"styling",mode:n.mode,style:s,body:i}},htmlBuilder(e,t){var r=ah[e.style],a=t.havingStyle(r).withFont("");return ao(e.body,a,t)},mathmlBuilder(e,t){var r=ah[e.style],a=t.havingStyle(r),n=tY(e.body,a),i=new tP.MathNode("mstyle",n),s={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[e.style];return i.setAttribute("scriptlevel",s[0]),i.setAttribute("displaystyle",s[1]),i}});var am=function(e,t){var r=e.base;return r?"op"===r.type?r.limits&&(t.style.size===Y.DISPLAY.size||r.alwaysHandleSupSub)?ar:null:"operatorname"===r.type?r.alwaysHandleSupSub&&(t.style.size===Y.DISPLAY.size||r.limits)?as:null:"accent"===r.type?H.isCharacterBox(r.base)?t6:null:"horizBrace"===r.type?!e.sub===r.isOver?r8:null:null:null};tx({type:"supsub",htmlBuilder(e,t){var r,a,n,i,s=am(e,t);if(s)return s(e,t);var{base:o,sup:l,sub:h}=e,m=tR(o,t),c=t.fontMetrics(),p=0,u=0,d=o&&H.isCharacterBox(o);if(l){var g=t.havingStyle(t.style.sup());r=tR(l,g,t),d||(p=m.height-g.fontMetrics().supDrop*g.sizeMultiplier/t.sizeMultiplier)}if(h){var f=t.havingStyle(t.style.sub());a=tR(h,f,t),d||(u=m.depth+f.fontMetrics().subDrop*f.sizeMultiplier/t.sizeMultiplier)}n=t.style===Y.DISPLAY?c.sup1:t.style.cramped?c.sup3:c.sup2;var v=t.sizeMultiplier,b=ep(.5/c.ptPerEm/v),y=null;if(a){var x=e.base&&"op"===e.base.type&&e.base.name&&("\\oiint"===e.base.name||"\\oiiint"===e.base.name);(m instanceof ew||x)&&(y=ep(-m.italic))}if(r&&a){p=Math.max(p,n,r.depth+.25*c.xHeight),u=Math.max(u,c.sub2);var w=4*c.defaultRuleThickness;if(p-r.depth-(a.height-u)<w){u=w-(p-r.depth)+a.height;var k=.8*c.xHeight-(p-r.depth);k>0&&(p+=k,u-=k)}var S=[{type:"elem",elem:a,shift:u,marginRight:b,marginLeft:y},{type:"elem",elem:r,shift:-p,marginRight:b}];i=tm.makeVList({positionType:"individualShift",children:S},t)}else if(a){u=Math.max(u,c.sub1,a.height-.8*c.xHeight);var M=[{type:"elem",elem:a,marginLeft:y,marginRight:b}];i=tm.makeVList({positionType:"shift",positionData:u,children:M},t)}else if(r)p=Math.max(p,n,r.depth+.25*c.xHeight),i=tm.makeVList({positionType:"shift",positionData:-p,children:[{type:"elem",elem:r,marginRight:b}]},t);else throw Error("supsub must have either sup or sub.");var z=tI(m,"right")||"mord";return tm.makeSpan([z],[m,tm.makeSpan(["msupsub"],[i])],t)},mathmlBuilder(e,t){var r,a,n=!1;e.base&&"horizBrace"===e.base.type&&!!e.sup===e.base.isOver&&(n=!0,r=e.base.isOver),e.base&&("op"===e.base.type||"operatorname"===e.base.type)&&(e.base.parentIsSupSub=!0);var i=[tW(e.base,t)];if(e.sub&&i.push(tW(e.sub,t)),e.sup&&i.push(tW(e.sup,t)),n)a=r?"mover":"munder";else if(e.sub){if(e.sup){var s=e.base;a=s&&"op"===s.type&&s.limits&&t.style===Y.DISPLAY?"munderover":s&&"operatorname"===s.type&&s.alwaysHandleSupSub&&(t.style===Y.DISPLAY||s.limits)?"munderover":"msubsup"}else{var o=e.base;a=o&&"op"===o.type&&o.limits&&(t.style===Y.DISPLAY||o.alwaysHandleSupSub)?"munder":o&&"operatorname"===o.type&&o.alwaysHandleSupSub&&(o.limits||t.style===Y.DISPLAY)?"munder":"msub"}}else{var l=e.base;a=l&&"op"===l.type&&l.limits&&(t.style===Y.DISPLAY||l.alwaysHandleSupSub)?"mover":l&&"operatorname"===l.type&&l.alwaysHandleSupSub&&(l.limits||t.style===Y.DISPLAY)?"mover":"msup"}return new tP.MathNode(a,i)}}),tx({type:"atom",htmlBuilder:(e,t)=>tm.mathsym(e.text,e.mode,t,["m"+e.family]),mathmlBuilder(e,t){var r=new tP.MathNode("mo",[tF(e.text,e.mode)]);if("bin"===e.family){var a=tU(e,t);"bold-italic"===a&&r.setAttribute("mathvariant",a)}else"punct"===e.family?r.setAttribute("separator","true"):("open"===e.family||"close"===e.family)&&r.setAttribute("stretchy","false");return r}});var ac={mi:"italic",mn:"normal",mtext:"normal"};tx({type:"mathord",htmlBuilder:(e,t)=>tm.makeOrd(e,t,"mathord"),mathmlBuilder(e,t){var r=new tP.MathNode("mi",[tF(e.text,e.mode,t)]),a=tU(e,t)||"italic";return a!==ac[r.type]&&r.setAttribute("mathvariant",a),r}}),tx({type:"textord",htmlBuilder:(e,t)=>tm.makeOrd(e,t,"textord"),mathmlBuilder(e,t){var r,a=tF(e.text,e.mode,t),n=tU(e,t)||"normal";return n!==ac[(r="text"===e.mode?new tP.MathNode("mtext",[a]):/[0-9]/.test(e.text)?new tP.MathNode("mn",[a]):"\\prime"===e.text?new tP.MathNode("mo",[a]):new tP.MathNode("mi",[a])).type]&&r.setAttribute("mathvariant",n),r}});var ap={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},au={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};tx({type:"spacing",htmlBuilder(e,t){if(au.hasOwnProperty(e.text)){var r=au[e.text].className||"";if("text"!==e.mode)return tm.makeSpan(["mspace",r],[tm.mathsym(e.text,e.mode,t)],t);var a=tm.makeOrd(e,t,"textord");return a.classes.push(r),a}if(ap.hasOwnProperty(e.text))return tm.makeSpan(["mspace",ap[e.text]],[],t);throw new i('Unknown type of space "'+e.text+'"')},mathmlBuilder(e,t){var r;if(au.hasOwnProperty(e.text))r=new tP.MathNode("mtext",[new tP.TextNode("\xa0")]);else if(ap.hasOwnProperty(e.text))return new tP.MathNode("mspace");else throw new i('Unknown type of space "'+e.text+'"');return r}});var ad=()=>{var e=new tP.MathNode("mtd",[]);return e.setAttribute("width","50%"),e};tx({type:"tag",mathmlBuilder(e,t){var r=new tP.MathNode("mtable",[new tP.MathNode("mtr",[ad(),new tP.MathNode("mtd",[tX(e.body,t)]),ad(),new tP.MathNode("mtd",[tX(e.tag,t)])])]);return r.setAttribute("width","100%"),r}});var ag={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},af={"\\textbf":"textbf","\\textmd":"textmd"},av={"\\textit":"textit","\\textup":"textup"},ab=(e,t)=>{var r=e.font;return r?ag[r]?t.withTextFontFamily(ag[r]):af[r]?t.withTextFontWeight(af[r]):"\\emph"===r?"textit"===t.fontShape?t.withTextFontShape("textup"):t.withTextFontShape("textit"):t.withTextFontShape(av[r]):t};ty({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(e,t){var{parser:r,funcName:a}=e,n=t[0];return{type:"text",mode:r.mode,body:tk(n),font:a}},htmlBuilder(e,t){var r=ab(e,t),a=tB(e.body,r,!0);return tm.makeSpan(["mord","text"],a,r)},mathmlBuilder(e,t){var r=ab(e,t);return tX(e.body,r)}}),ty({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:r}=e;return{type:"underline",mode:r.mode,body:t[0]}},htmlBuilder(e,t){var r=tR(e.body,t),a=tm.makeLineSpan("underline-line",t),n=t.fontMetrics().defaultRuleThickness,i=tm.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:n},{type:"elem",elem:a},{type:"kern",size:3*n},{type:"elem",elem:r}]},t);return tm.makeSpan(["mord","underline"],[i],t)},mathmlBuilder(e,t){var r=new tP.MathNode("mo",[new tP.TextNode("\u203E")]);r.setAttribute("stretchy","true");var a=new tP.MathNode("munder",[tW(e.body,t),r]);return a.setAttribute("accentunder","true"),a}}),ty({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(e,t){var{parser:r}=e;return{type:"vcenter",mode:r.mode,body:t[0]}},htmlBuilder(e,t){var r=tR(e.body,t),a=t.fontMetrics().axisHeight,n=.5*(r.height-a-(r.depth+a));return tm.makeVList({positionType:"shift",positionData:n,children:[{type:"elem",elem:r}]},t)},mathmlBuilder:(e,t)=>new tP.MathNode("mpadded",[tW(e.body,t)],["vcenter"])}),ty({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(e,t,r){throw new i("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(e,t){for(var r=ay(e),a=[],n=t.havingStyle(t.style.text()),i=0;i<r.length;i++){var s=r[i];"~"===s&&(s="\\textasciitilde"),a.push(tm.makeSymbol(s,"Typewriter-Regular",e.mode,n,["mord","texttt"]))}return tm.makeSpan(["mord","text"].concat(n.sizingClasses(t)),tm.tryCombineChars(a),n)},mathmlBuilder(e,t){var r=new tP.TextNode(ay(e)),a=new tP.MathNode("mtext",[r]);return a.setAttribute("mathvariant","monospace"),a}});var ay=e=>e.body.replace(/ /g,e.star?"\u2423":"\xa0"),ax="[ \r\n ]",aw="[\u0300-\u036F]",ak=RegExp(aw+"+$"),aS="("+ax+"+)|\\\\(\n|[ \r ]+\n?)[ \r ]*|([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]"+aw+"*|[\uD800-\uDBFF][\uDC00-\uDFFF]"+aw+"*|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5|(\\\\[a-zA-Z@]+)"+ax+"*|\\\\[^\uD800-\uDFFF])";class aM{constructor(e,t){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=t,this.tokenRegex=RegExp(aS,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,t){this.catcodes[e]=t}lex(){var e=this.input,t=this.tokenRegex.lastIndex;if(t===e.length)return new n("EOF",new a(this,t,t));var r=this.tokenRegex.exec(e);if(null===r||r.index!==t)throw new i("Unexpected character: '"+e[t]+"'",new n(e[t],new a(this,t,t+1)));var s=r[6]||r[3]||(r[2]?"\\ ":" ");if(14===this.catcodes[s]){var o=e.indexOf("\n",this.tokenRegex.lastIndex);return -1===o?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=o+1,this.lex()}return new n(s,new a(this,t,this.tokenRegex.lastIndex))}}class az{constructor(e,t){void 0===e&&(e={}),void 0===t&&(t={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=t,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(0===this.undefStack.length)throw new i("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var t in e)e.hasOwnProperty(t)&&(null==e[t]?delete this.current[t]:this.current[t]=e[t])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,t,r){if(void 0===r&&(r=!1),r){for(var a=0;a<this.undefStack.length;a++)delete this.undefStack[a][e];this.undefStack.length>0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{var n=this.undefStack[this.undefStack.length-1];n&&!n.hasOwnProperty(e)&&(n[e]=this.current[e])}null==t?delete this.current[e]:this.current[e]=t}}s=function(e){var t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}},rU["\\noexpand"]=s,o=function(e){var t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}},rU["\\expandafter"]=o,l=function(e){return{tokens:e.consumeArgs(2)[0],numArgs:0}},rU["\\@firstoftwo"]=l,h=function(e){return{tokens:e.consumeArgs(2)[1],numArgs:0}},rU["\\@secondoftwo"]=h,m=function(e){var t=e.consumeArgs(3);e.consumeSpaces();var r=e.future();return 1===t[0].length&&t[0][0].text===r.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}},rU["\\@ifnextchar"]=m,rU["\\@ifstar"]="\\@ifnextchar *{\\@firstoftwo{#1}}",c=function(e){var t=e.consumeArgs(2);return"text"===e.mode?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}},rU["\\TextOrMath"]=c;var aA={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};p=function(e){var t,r,a=e.popToken(),n="";if("'"===a.text)t=8,a=e.popToken();else if('"'===a.text)t=16,a=e.popToken();else if("`"===a.text){if("\\"===(a=e.popToken()).text[0])n=a.text.charCodeAt(1);else if("EOF"===a.text)throw new i("\\char` missing argument");else n=a.text.charCodeAt(0)}else t=10;if(t){if(null==(n=aA[a.text])||n>=t)throw new i("Invalid base-"+t+" digit "+a.text);for(;null!=(r=aA[e.future().text])&&r<t;)n*=t,n+=r,e.popToken()}return"\\@char{"+n+"}"},rU["\\char"]=p;var aT=(e,t,r)=>{var a=e.consumeArg().tokens;if(1!==a.length)throw new i("\\newcommand's first argument must be a macro name");var n=a[0].text,s=e.isDefined(n);if(s&&!t)throw new i("\\newcommand{"+n+"} attempting to redefine "+n+"; use \\renewcommand");if(!s&&!r)throw new i("\\renewcommand{"+n+"} when command "+n+" does not yet exist; use \\newcommand");var o=0;if(1===(a=e.consumeArg().tokens).length&&"["===a[0].text){for(var l="",h=e.expandNextToken();"]"!==h.text&&"EOF"!==h.text;)l+=h.text,h=e.expandNextToken();if(!l.match(/^\s*[0-9]+\s*$/))throw new i("Invalid number of arguments: "+l);o=parseInt(l),a=e.consumeArg().tokens}return e.macros.set(n,{tokens:a,numArgs:o}),""};u=e=>aT(e,!1,!0),rU["\\newcommand"]=u,d=e=>aT(e,!0,!1),rU["\\renewcommand"]=d,g=e=>aT(e,!0,!0),rU["\\providecommand"]=g,f=e=>(console.log(e.consumeArgs(1)[0].reverse().map(e=>e.text).join("")),""),rU["\\message"]=f,v=e=>(console.error(e.consumeArgs(1)[0].reverse().map(e=>e.text).join("")),""),rU["\\errmessage"]=v,b=e=>{var t=e.popToken(),r=t.text;return console.log(t,e.macros.get(r),tf[r],eB.math[r],eB.text[r]),""},rU["\\show"]=b,rU["\\bgroup"]="{",rU["\\egroup"]="}",rU["~"]="\\nobreakspace",rU["\\lq"]="`",rU["\\rq"]="'",rU["\\aa"]="\\r a",rU["\\AA"]="\\r A",rU["\\textcopyright"]="\\html@mathml{\\textcircled{c}}{\\char`\xa9}",rU["\\copyright"]="\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}",rU["\\textregistered"]="\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xae}",rU["\u212C"]="\\mathscr{B}",rU["\u2130"]="\\mathscr{E}",rU["\u2131"]="\\mathscr{F}",rU["\u210B"]="\\mathscr{H}",rU["\u2110"]="\\mathscr{I}",rU["\u2112"]="\\mathscr{L}",rU["\u2133"]="\\mathscr{M}",rU["\u211B"]="\\mathscr{R}",rU["\u212D"]="\\mathfrak{C}",rU["\u210C"]="\\mathfrak{H}",rU["\u2128"]="\\mathfrak{Z}",rU["\\Bbbk"]="\\Bbb{k}",rU["\xb7"]="\\cdotp",rU["\\llap"]="\\mathllap{\\textrm{#1}}",rU["\\rlap"]="\\mathrlap{\\textrm{#1}}",rU["\\clap"]="\\mathclap{\\textrm{#1}}",rU["\\mathstrut"]="\\vphantom{(}",rU["\\underbar"]="\\underline{\\text{#1}}",rU["\\not"]='\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}',rU["\\neq"]="\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}",rU["\\ne"]="\\neq",rU["\u2260"]="\\neq",rU["\\notin"]="\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}",rU["\u2209"]="\\notin",rU["\u2258"]="\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}",rU["\u2259"]="\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}",rU["\u225A"]="\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225A}}",rU["\u225B"]="\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225B}}",rU["\u225D"]="\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225D}}",rU["\u225E"]="\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225E}}",rU["\u225F"]="\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225F}}",rU["\u27C2"]="\\perp",rU["\u203C"]="\\mathclose{!\\mkern-0.8mu!}",rU["\u220C"]="\\notni",rU["\u231C"]="\\ulcorner",rU["\u231D"]="\\urcorner",rU["\u231E"]="\\llcorner",rU["\u231F"]="\\lrcorner",rU["\xa9"]="\\copyright",rU["\xae"]="\\textregistered",rU["\uFE0F"]="\\textregistered",rU["\\ulcorner"]='\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}',rU["\\urcorner"]='\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}',rU["\\llcorner"]='\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}',rU["\\lrcorner"]='\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}',rU["\\vdots"]="\\mathord{\\varvdots\\rule{0pt}{15pt}}",rU["\u22EE"]="\\vdots",rU["\\varGamma"]="\\mathit{\\Gamma}",rU["\\varDelta"]="\\mathit{\\Delta}",rU["\\varTheta"]="\\mathit{\\Theta}",rU["\\varLambda"]="\\mathit{\\Lambda}",rU["\\varXi"]="\\mathit{\\Xi}",rU["\\varPi"]="\\mathit{\\Pi}",rU["\\varSigma"]="\\mathit{\\Sigma}",rU["\\varUpsilon"]="\\mathit{\\Upsilon}",rU["\\varPhi"]="\\mathit{\\Phi}",rU["\\varPsi"]="\\mathit{\\Psi}",rU["\\varOmega"]="\\mathit{\\Omega}",rU["\\substack"]="\\begin{subarray}{c}#1\\end{subarray}",rU["\\colon"]="\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax",rU["\\boxed"]="\\fbox{$\\displaystyle{#1}$}",rU["\\iff"]="\\DOTSB\\;\\Longleftrightarrow\\;",rU["\\implies"]="\\DOTSB\\;\\Longrightarrow\\;",rU["\\impliedby"]="\\DOTSB\\;\\Longleftarrow\\;";var aB={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};y=function(e){var t="\\dotso",r=e.expandAfterFuture().text;return r in aB?t=aB[r]:"\\not"===r.slice(0,4)?t="\\dotsb":r in eB.math&&H.contains(["bin","rel"],eB.math[r].group)&&(t="\\dotsb"),t},rU["\\dots"]=y;var aC={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};x=function(e){return e.future().text in aC?"\\ldots\\,":"\\ldots"},rU["\\dotso"]=x,w=function(e){var t=e.future().text;return t in aC&&","!==t?"\\ldots\\,":"\\ldots"},rU["\\dotsc"]=w,k=function(e){return e.future().text in aC?"\\@cdots\\,":"\\@cdots"},rU["\\cdots"]=k,rU["\\dotsb"]="\\cdots",rU["\\dotsm"]="\\cdots",rU["\\dotsi"]="\\!\\cdots",rU["\\dotsx"]="\\ldots\\,",rU["\\DOTSI"]="\\relax",rU["\\DOTSB"]="\\relax",rU["\\DOTSX"]="\\relax",rU["\\tmspace"]="\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax",rU["\\,"]="\\tmspace+{3mu}{.1667em}",rU["\\thinspace"]="\\,",rU["\\>"]="\\mskip{4mu}",rU["\\:"]="\\tmspace+{4mu}{.2222em}",rU["\\medspace"]="\\:",rU["\\;"]="\\tmspace+{5mu}{.2777em}",rU["\\thickspace"]="\\;",rU["\\!"]="\\tmspace-{3mu}{.1667em}",rU["\\negthinspace"]="\\!",rU["\\negmedspace"]="\\tmspace-{4mu}{.2222em}",rU["\\negthickspace"]="\\tmspace-{5mu}{.277em}",rU["\\enspace"]="\\kern.5em ",rU["\\enskip"]="\\hskip.5em\\relax",rU["\\quad"]="\\hskip1em\\relax",rU["\\qquad"]="\\hskip2em\\relax",rU["\\tag"]="\\@ifstar\\tag@literal\\tag@paren",rU["\\tag@paren"]="\\tag@literal{({#1})}",S=e=>{if(e.macros.get("\\df@tag"))throw new i("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"},rU["\\tag@literal"]=S,rU["\\bmod"]="\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}",rU["\\pod"]="\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)",rU["\\pmod"]="\\pod{{\\rm mod}\\mkern6mu#1}",rU["\\mod"]="\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1",rU["\\newline"]="\\\\\\relax",rU["\\TeX"]="\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}";var aq=ep(Q["Main-Regular"][84][1]-.7*Q["Main-Regular"][65][1]);M="\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+aq+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}",rU["\\LaTeX"]=M,z="\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+aq+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}",rU["\\KaTeX"]=z,rU["\\hspace"]="\\@ifstar\\@hspacer\\@hspace",rU["\\@hspace"]="\\hskip #1\\relax",rU["\\@hspacer"]="\\rule{0pt}{0pt}\\hskip #1\\relax",rU["\\ordinarycolon"]=":",rU["\\vcentcolon"]="\\mathrel{\\mathop\\ordinarycolon}",rU["\\dblcolon"]='\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}',rU["\\coloneqq"]='\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}',rU["\\Coloneqq"]='\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}',rU["\\coloneq"]='\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}',rU["\\Coloneq"]='\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}',rU["\\eqqcolon"]='\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}',rU["\\Eqqcolon"]='\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}',rU["\\eqcolon"]='\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}',rU["\\Eqcolon"]='\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}',rU["\\colonapprox"]='\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}',rU["\\Colonapprox"]='\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}',rU["\\colonsim"]='\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}',rU["\\Colonsim"]='\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}',rU["\u2237"]="\\dblcolon",rU["\u2239"]="\\eqcolon",rU["\u2254"]="\\coloneqq",rU["\u2255"]="\\eqqcolon",rU["\u2A74"]="\\Coloneqq",rU["\\ratio"]="\\vcentcolon",rU["\\coloncolon"]="\\dblcolon",rU["\\colonequals"]="\\coloneqq",rU["\\coloncolonequals"]="\\Coloneqq",rU["\\equalscolon"]="\\eqqcolon",rU["\\equalscoloncolon"]="\\Eqqcolon",rU["\\colonminus"]="\\coloneq",rU["\\coloncolonminus"]="\\Coloneq",rU["\\minuscolon"]="\\eqcolon",rU["\\minuscoloncolon"]="\\Eqcolon",rU["\\coloncolonapprox"]="\\Colonapprox",rU["\\coloncolonsim"]="\\Colonsim",rU["\\simcolon"]="\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}",rU["\\simcoloncolon"]="\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}",rU["\\approxcolon"]="\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}",rU["\\approxcoloncolon"]="\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}",rU["\\notni"]="\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220C}}",rU["\\limsup"]="\\DOTSB\\operatorname*{lim\\,sup}",rU["\\liminf"]="\\DOTSB\\operatorname*{lim\\,inf}",rU["\\injlim"]="\\DOTSB\\operatorname*{inj\\,lim}",rU["\\projlim"]="\\DOTSB\\operatorname*{proj\\,lim}",rU["\\varlimsup"]="\\DOTSB\\operatorname*{\\overline{lim}}",rU["\\varliminf"]="\\DOTSB\\operatorname*{\\underline{lim}}",rU["\\varinjlim"]="\\DOTSB\\operatorname*{\\underrightarrow{lim}}",rU["\\varprojlim"]="\\DOTSB\\operatorname*{\\underleftarrow{lim}}",rU["\\gvertneqq"]="\\html@mathml{\\@gvertneqq}{\u2269}",rU["\\lvertneqq"]="\\html@mathml{\\@lvertneqq}{\u2268}",rU["\\ngeqq"]="\\html@mathml{\\@ngeqq}{\u2271}",rU["\\ngeqslant"]="\\html@mathml{\\@ngeqslant}{\u2271}",rU["\\nleqq"]="\\html@mathml{\\@nleqq}{\u2270}",rU["\\nleqslant"]="\\html@mathml{\\@nleqslant}{\u2270}",rU["\\nshortmid"]="\\html@mathml{\\@nshortmid}{\u2224}",rU["\\nshortparallel"]="\\html@mathml{\\@nshortparallel}{\u2226}",rU["\\nsubseteqq"]="\\html@mathml{\\@nsubseteqq}{\u2288}",rU["\\nsupseteqq"]="\\html@mathml{\\@nsupseteqq}{\u2289}",rU["\\varsubsetneq"]="\\html@mathml{\\@varsubsetneq}{\u228A}",rU["\\varsubsetneqq"]="\\html@mathml{\\@varsubsetneqq}{\u2ACB}",rU["\\varsupsetneq"]="\\html@mathml{\\@varsupsetneq}{\u228B}",rU["\\varsupsetneqq"]="\\html@mathml{\\@varsupsetneqq}{\u2ACC}",rU["\\imath"]="\\html@mathml{\\@imath}{\u0131}",rU["\\jmath"]="\\html@mathml{\\@jmath}{\u0237}",rU["\\llbracket"]="\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27E6}}",rU["\\rrbracket"]="\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27E7}}",rU["\u27E6"]="\\llbracket",rU["\u27E7"]="\\rrbracket",rU["\\lBrace"]="\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}",rU["\\rBrace"]="\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}",rU["\u2983"]="\\lBrace",rU["\u2984"]="\\rBrace",rU["\\minuso"]="\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29B5}}",rU["\u29B5"]="\\minuso",rU["\\darr"]="\\downarrow",rU["\\dArr"]="\\Downarrow",rU["\\Darr"]="\\Downarrow",rU["\\lang"]="\\langle",rU["\\rang"]="\\rangle",rU["\\uarr"]="\\uparrow",rU["\\uArr"]="\\Uparrow",rU["\\Uarr"]="\\Uparrow",rU["\\N"]="\\mathbb{N}",rU["\\R"]="\\mathbb{R}",rU["\\Z"]="\\mathbb{Z}",rU["\\alef"]="\\aleph",rU["\\alefsym"]="\\aleph",rU["\\Alpha"]="\\mathrm{A}",rU["\\Beta"]="\\mathrm{B}",rU["\\bull"]="\\bullet",rU["\\Chi"]="\\mathrm{X}",rU["\\clubs"]="\\clubsuit",rU["\\cnums"]="\\mathbb{C}",rU["\\Complex"]="\\mathbb{C}",rU["\\Dagger"]="\\ddagger",rU["\\diamonds"]="\\diamondsuit",rU["\\empty"]="\\emptyset",rU["\\Epsilon"]="\\mathrm{E}",rU["\\Eta"]="\\mathrm{H}",rU["\\exist"]="\\exists",rU["\\harr"]="\\leftrightarrow",rU["\\hArr"]="\\Leftrightarrow",rU["\\Harr"]="\\Leftrightarrow",rU["\\hearts"]="\\heartsuit",rU["\\image"]="\\Im",rU["\\infin"]="\\infty",rU["\\Iota"]="\\mathrm{I}",rU["\\isin"]="\\in",rU["\\Kappa"]="\\mathrm{K}",rU["\\larr"]="\\leftarrow",rU["\\lArr"]="\\Leftarrow",rU["\\Larr"]="\\Leftarrow",rU["\\lrarr"]="\\leftrightarrow",rU["\\lrArr"]="\\Leftrightarrow",rU["\\Lrarr"]="\\Leftrightarrow",rU["\\Mu"]="\\mathrm{M}",rU["\\natnums"]="\\mathbb{N}",rU["\\Nu"]="\\mathrm{N}",rU["\\Omicron"]="\\mathrm{O}",rU["\\plusmn"]="\\pm",rU["\\rarr"]="\\rightarrow",rU["\\rArr"]="\\Rightarrow",rU["\\Rarr"]="\\Rightarrow",rU["\\real"]="\\Re",rU["\\reals"]="\\mathbb{R}",rU["\\Reals"]="\\mathbb{R}",rU["\\Rho"]="\\mathrm{P}",rU["\\sdot"]="\\cdot",rU["\\sect"]="\\S",rU["\\spades"]="\\spadesuit",rU["\\sub"]="\\subset",rU["\\sube"]="\\subseteq",rU["\\supe"]="\\supseteq",rU["\\Tau"]="\\mathrm{T}",rU["\\thetasym"]="\\vartheta",rU["\\weierp"]="\\wp",rU["\\Zeta"]="\\mathrm{Z}",rU["\\argmin"]="\\DOTSB\\operatorname*{arg\\,min}",rU["\\argmax"]="\\DOTSB\\operatorname*{arg\\,max}",rU["\\plim"]="\\DOTSB\\mathop{\\operatorname{plim}}\\limits",rU["\\bra"]="\\mathinner{\\langle{#1}|}",rU["\\ket"]="\\mathinner{|{#1}\\rangle}",rU["\\braket"]="\\mathinner{\\langle{#1}\\rangle}",rU["\\Bra"]="\\left\\langle#1\\right|",rU["\\Ket"]="\\left|#1\\right\\rangle";var aN=e=>t=>{var r=t.consumeArg().tokens,a=t.consumeArg().tokens,n=t.consumeArg().tokens,i=t.consumeArg().tokens,s=t.macros.get("|"),o=t.macros.get("\\|");t.macros.beginGroup();var l=t=>r=>{e&&(r.macros.set("|",s),n.length&&r.macros.set("\\|",o));var i=t;return!t&&n.length&&"|"===r.future().text&&(r.popToken(),i=!0),{tokens:i?n:a,numArgs:0}};t.macros.set("|",l(!1)),n.length&&t.macros.set("\\|",l(!0));var h=t.consumeArg().tokens,m=t.expandTokens([...i,...h,...r]);return t.macros.endGroup(),{tokens:m.reverse(),numArgs:0}};A=aN(!1),rU["\\bra@ket"]=A,T=aN(!0),rU["\\bra@set"]=T,rU["\\Braket"]="\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}",rU["\\Set"]="\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}",rU["\\set"]="\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}",rU["\\angln"]="{\\angl n}",rU["\\blue"]="\\textcolor{##6495ed}{#1}",rU["\\orange"]="\\textcolor{##ffa500}{#1}",rU["\\pink"]="\\textcolor{##ff00af}{#1}",rU["\\red"]="\\textcolor{##df0030}{#1}",rU["\\green"]="\\textcolor{##28ae7b}{#1}",rU["\\gray"]="\\textcolor{gray}{#1}",rU["\\purple"]="\\textcolor{##9d38bd}{#1}",rU["\\blueA"]="\\textcolor{##ccfaff}{#1}",rU["\\blueB"]="\\textcolor{##80f6ff}{#1}",rU["\\blueC"]="\\textcolor{##63d9ea}{#1}",rU["\\blueD"]="\\textcolor{##11accd}{#1}",rU["\\blueE"]="\\textcolor{##0c7f99}{#1}",rU["\\tealA"]="\\textcolor{##94fff5}{#1}",rU["\\tealB"]="\\textcolor{##26edd5}{#1}",rU["\\tealC"]="\\textcolor{##01d1c1}{#1}",rU["\\tealD"]="\\textcolor{##01a995}{#1}",rU["\\tealE"]="\\textcolor{##208170}{#1}",rU["\\greenA"]="\\textcolor{##b6ffb0}{#1}",rU["\\greenB"]="\\textcolor{##8af281}{#1}",rU["\\greenC"]="\\textcolor{##74cf70}{#1}",rU["\\greenD"]="\\textcolor{##1fab54}{#1}",rU["\\greenE"]="\\textcolor{##0d923f}{#1}",rU["\\goldA"]="\\textcolor{##ffd0a9}{#1}",rU["\\goldB"]="\\textcolor{##ffbb71}{#1}",rU["\\goldC"]="\\textcolor{##ff9c39}{#1}",rU["\\goldD"]="\\textcolor{##e07d10}{#1}",rU["\\goldE"]="\\textcolor{##a75a05}{#1}",rU["\\redA"]="\\textcolor{##fca9a9}{#1}",rU["\\redB"]="\\textcolor{##ff8482}{#1}",rU["\\redC"]="\\textcolor{##f9685d}{#1}",rU["\\redD"]="\\textcolor{##e84d39}{#1}",rU["\\redE"]="\\textcolor{##bc2612}{#1}",rU["\\maroonA"]="\\textcolor{##ffbde0}{#1}",rU["\\maroonB"]="\\textcolor{##ff92c6}{#1}",rU["\\maroonC"]="\\textcolor{##ed5fa6}{#1}",rU["\\maroonD"]="\\textcolor{##ca337c}{#1}",rU["\\maroonE"]="\\textcolor{##9e034e}{#1}",rU["\\purpleA"]="\\textcolor{##ddd7ff}{#1}",rU["\\purpleB"]="\\textcolor{##c6b9fc}{#1}",rU["\\purpleC"]="\\textcolor{##aa87ff}{#1}",rU["\\purpleD"]="\\textcolor{##7854ab}{#1}",rU["\\purpleE"]="\\textcolor{##543b78}{#1}",rU["\\mintA"]="\\textcolor{##f5f9e8}{#1}",rU["\\mintB"]="\\textcolor{##edf2df}{#1}",rU["\\mintC"]="\\textcolor{##e0e5cc}{#1}",rU["\\grayA"]="\\textcolor{##f6f7f7}{#1}",rU["\\grayB"]="\\textcolor{##f0f1f2}{#1}",rU["\\grayC"]="\\textcolor{##e3e5e6}{#1}",rU["\\grayD"]="\\textcolor{##d6d8da}{#1}",rU["\\grayE"]="\\textcolor{##babec2}{#1}",rU["\\grayF"]="\\textcolor{##888d93}{#1}",rU["\\grayG"]="\\textcolor{##626569}{#1}",rU["\\grayH"]="\\textcolor{##3b3e40}{#1}",rU["\\grayI"]="\\textcolor{##21242c}{#1}",rU["\\kaBlue"]="\\textcolor{##314453}{#1}",rU["\\kaGreen"]="\\textcolor{##71B307}{#1}";var aI={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0};class aH{constructor(e,t,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new az(rU,t.macros),this.mode=r,this.stack=[]}feed(e){this.lexer=new aM(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var t,r,a;if(e){if(this.consumeSpaces(),"["!==this.future().text)return null;t=this.popToken(),{tokens:a,end:r}=this.consumeArg(["]"])}else({tokens:a,start:t,end:r}=this.consumeArg());return this.pushToken(new n("EOF",r.loc)),this.pushTokens(a),t.range(r,"")}consumeSpaces(){for(;;)if(" "===this.future().text)this.stack.pop();else break}consumeArg(e){var t,r=[],a=e&&e.length>0;a||this.consumeSpaces();var n=this.future(),s=0,o=0;do{if(t=this.popToken(),r.push(t),"{"===t.text)++s;else if("}"===t.text){if(-1==--s)throw new i("Extra }",t)}else if("EOF"===t.text)throw new i("Unexpected end of input in a macro argument, expected '"+(e&&a?e[o]:"}")+"'",t);if(e&&a){if((0===s||1===s&&"{"===e[o])&&t.text===e[o]){if(++o===e.length){r.splice(-o,o);break}}else o=0}}while(0!==s||a)return"{"===n.text&&"}"===r[r.length-1].text&&(r.pop(),r.shift()),r.reverse(),{tokens:r,start:n,end:t}}consumeArgs(e,t){if(t){if(t.length!==e+1)throw new i("The length of delimiters doesn't match the number of args!");for(var r=t[0],a=0;a<r.length;a++){var n=this.popToken();if(r[a]!==n.text)throw new i("Use of the macro doesn't match its definition",n)}}for(var s=[],o=0;o<e;o++)s.push(this.consumeArg(t&&t[o+1]).tokens);return s}countExpansion(e){if(this.expansionCount+=e,this.expansionCount>this.settings.maxExpand)throw new i("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var t=this.popToken(),r=t.text,a=t.noexpand?null:this._getExpansion(r);if(null==a||e&&a.unexpandable){if(e&&null==a&&"\\"===r[0]&&!this.isDefined(r))throw new i("Undefined control sequence: "+r);return this.pushToken(t),!1}this.countExpansion(1);var n=a.tokens,s=this.consumeArgs(a.numArgs,a.delimiters);if(a.numArgs){n=n.slice();for(var o=n.length-1;o>=0;--o){var l=n[o];if("#"===l.text){if(0===o)throw new i("Incomplete placeholder at end of macro body",l);if("#"===(l=n[--o]).text)n.splice(o+1,1);else if(/^[1-9]$/.test(l.text))n.splice(o,2,...s[+l.text-1]);else throw new i("Not a valid argument number",l)}}}return this.pushTokens(n),n.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(!1===this.expandOnce()){var e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw Error()}expandMacro(e){return this.macros.has(e)?this.expandTokens([new n(e)]):void 0}expandTokens(e){var t=[],r=this.stack.length;for(this.pushTokens(e);this.stack.length>r;)if(!1===this.expandOnce(!0)){var a=this.stack.pop();a.treatAsRelax&&(a.noexpand=!1,a.treatAsRelax=!1),t.push(a)}return this.countExpansion(t.length),t}expandMacroAsText(e){var t=this.expandMacro(e);return t?t.map(e=>e.text).join(""):t}_getExpansion(e){var t=this.macros.get(e);if(null==t)return t;if(1===e.length){var r=this.lexer.catcodes[e];if(null!=r&&13!==r)return}var a="function"==typeof t?t(this):t;if("string"==typeof a){var n=0;if(-1!==a.indexOf("#"))for(var i=a.replace(/##/g,"");-1!==i.indexOf("#"+(n+1));)++n;for(var s=new aM(a,this.settings),o=[],l=s.lex();"EOF"!==l.text;)o.push(l),l=s.lex();return o.reverse(),{tokens:o,numArgs:n}}return a}isDefined(e){return this.macros.has(e)||tf.hasOwnProperty(e)||eB.math.hasOwnProperty(e)||eB.text.hasOwnProperty(e)||aI.hasOwnProperty(e)}isExpandable(e){var t=this.macros.get(e);return null!=t?"string"==typeof t||"function"==typeof t||!t.unexpandable:tf.hasOwnProperty(e)&&!tf[e].primitive}}var aR=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,aO=Object.freeze({"\u208A":"+","\u208B":"-","\u208C":"=","\u208D":"(","\u208E":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9",\u2090:"a",\u2091:"e",\u2095:"h",\u1D62:"i",\u2C7C:"j",\u2096:"k",\u2097:"l",\u2098:"m",\u2099:"n",\u2092:"o",\u209A:"p",\u1D63:"r",\u209B:"s",\u209C:"t",\u1D64:"u",\u1D65:"v",\u2093:"x",\u1D66:"\u03B2",\u1D67:"\u03B3",\u1D68:"\u03C1",\u1D69:"\u03D5",\u1D6A:"\u03C7","\u207A":"+","\u207B":"-","\u207C":"=","\u207D":"(","\u207E":")","\u2070":"0","\xb9":"1","\xb2":"2","\xb3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9",\u1D2C:"A",\u1D2E:"B",\u1D30:"D",\u1D31:"E",\u1D33:"G",\u1D34:"H",\u1D35:"I",\u1D36:"J",\u1D37:"K",\u1D38:"L",\u1D39:"M",\u1D3A:"N",\u1D3C:"O",\u1D3E:"P",\u1D3F:"R",\u1D40:"T",\u1D41:"U",\u2C7D:"V",\u1D42:"W",\u1D43:"a",\u1D47:"b",\u1D9C:"c",\u1D48:"d",\u1D49:"e",\u1DA0:"f",\u1D4D:"g",\u02B0:"h",\u2071:"i",\u02B2:"j",\u1D4F:"k",\u02E1:"l",\u1D50:"m",\u207F:"n",\u1D52:"o",\u1D56:"p",\u02B3:"r",\u02E2:"s",\u1D57:"t",\u1D58:"u",\u1D5B:"v",\u02B7:"w",\u02E3:"x",\u02B8:"y",\u1DBB:"z",\u1D5D:"\u03B2",\u1D5E:"\u03B3",\u1D5F:"\u03B4",\u1D60:"\u03D5",\u1D61:"\u03C7",\u1DBF:"\u03B8"}),aE={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030C":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030A":{text:"\\r",math:"\\mathring"},"\u030B":{text:"\\H"},"\u0327":{text:"\\c"}},aL={"\xe1":"a\u0301","\xe0":"a\u0300","\xe4":"a\u0308",\u01DF:"a\u0308\u0304","\xe3":"a\u0303",\u0101:"a\u0304",\u0103:"a\u0306",\u1EAF:"a\u0306\u0301",\u1EB1:"a\u0306\u0300",\u1EB5:"a\u0306\u0303",\u01CE:"a\u030C","\xe2":"a\u0302",\u1EA5:"a\u0302\u0301",\u1EA7:"a\u0302\u0300",\u1EAB:"a\u0302\u0303",\u0227:"a\u0307",\u01E1:"a\u0307\u0304","\xe5":"a\u030A",\u01FB:"a\u030A\u0301",\u1E03:"b\u0307",\u0107:"c\u0301",\u1E09:"c\u0327\u0301",\u010D:"c\u030C",\u0109:"c\u0302",\u010B:"c\u0307","\xe7":"c\u0327",\u010F:"d\u030C",\u1E0B:"d\u0307",\u1E11:"d\u0327","\xe9":"e\u0301","\xe8":"e\u0300","\xeb":"e\u0308",\u1EBD:"e\u0303",\u0113:"e\u0304",\u1E17:"e\u0304\u0301",\u1E15:"e\u0304\u0300",\u0115:"e\u0306",\u1E1D:"e\u0327\u0306",\u011B:"e\u030C","\xea":"e\u0302",\u1EBF:"e\u0302\u0301",\u1EC1:"e\u0302\u0300",\u1EC5:"e\u0302\u0303",\u0117:"e\u0307",\u0229:"e\u0327",\u1E1F:"f\u0307",\u01F5:"g\u0301",\u1E21:"g\u0304",\u011F:"g\u0306",\u01E7:"g\u030C",\u011D:"g\u0302",\u0121:"g\u0307",\u0123:"g\u0327",\u1E27:"h\u0308",\u021F:"h\u030C",\u0125:"h\u0302",\u1E23:"h\u0307",\u1E29:"h\u0327","\xed":"i\u0301","\xec":"i\u0300","\xef":"i\u0308",\u1E2F:"i\u0308\u0301",\u0129:"i\u0303",\u012B:"i\u0304",\u012D:"i\u0306",\u01D0:"i\u030C","\xee":"i\u0302",\u01F0:"j\u030C",\u0135:"j\u0302",\u1E31:"k\u0301",\u01E9:"k\u030C",\u0137:"k\u0327",\u013A:"l\u0301",\u013E:"l\u030C",\u013C:"l\u0327",\u1E3F:"m\u0301",\u1E41:"m\u0307",\u0144:"n\u0301",\u01F9:"n\u0300","\xf1":"n\u0303",\u0148:"n\u030C",\u1E45:"n\u0307",\u0146:"n\u0327","\xf3":"o\u0301","\xf2":"o\u0300","\xf6":"o\u0308",\u022B:"o\u0308\u0304","\xf5":"o\u0303",\u1E4D:"o\u0303\u0301",\u1E4F:"o\u0303\u0308",\u022D:"o\u0303\u0304",\u014D:"o\u0304",\u1E53:"o\u0304\u0301",\u1E51:"o\u0304\u0300",\u014F:"o\u0306",\u01D2:"o\u030C","\xf4":"o\u0302",\u1ED1:"o\u0302\u0301",\u1ED3:"o\u0302\u0300",\u1ED7:"o\u0302\u0303",\u022F:"o\u0307",\u0231:"o\u0307\u0304",\u0151:"o\u030B",\u1E55:"p\u0301",\u1E57:"p\u0307",\u0155:"r\u0301",\u0159:"r\u030C",\u1E59:"r\u0307",\u0157:"r\u0327",\u015B:"s\u0301",\u1E65:"s\u0301\u0307",\u0161:"s\u030C",\u1E67:"s\u030C\u0307",\u015D:"s\u0302",\u1E61:"s\u0307",\u015F:"s\u0327",\u1E97:"t\u0308",\u0165:"t\u030C",\u1E6B:"t\u0307",\u0163:"t\u0327","\xfa":"u\u0301","\xf9":"u\u0300","\xfc":"u\u0308",\u01D8:"u\u0308\u0301",\u01DC:"u\u0308\u0300",\u01D6:"u\u0308\u0304",\u01DA:"u\u0308\u030C",\u0169:"u\u0303",\u1E79:"u\u0303\u0301",\u016B:"u\u0304",\u1E7B:"u\u0304\u0308",\u016D:"u\u0306",\u01D4:"u\u030C","\xfb":"u\u0302",\u016F:"u\u030A",\u0171:"u\u030B",\u1E7D:"v\u0303",\u1E83:"w\u0301",\u1E81:"w\u0300",\u1E85:"w\u0308",\u0175:"w\u0302",\u1E87:"w\u0307",\u1E98:"w\u030A",\u1E8D:"x\u0308",\u1E8B:"x\u0307","\xfd":"y\u0301",\u1EF3:"y\u0300","\xff":"y\u0308",\u1EF9:"y\u0303",\u0233:"y\u0304",\u0177:"y\u0302",\u1E8F:"y\u0307",\u1E99:"y\u030A",\u017A:"z\u0301",\u017E:"z\u030C",\u1E91:"z\u0302",\u017C:"z\u0307","\xc1":"A\u0301","\xc0":"A\u0300","\xc4":"A\u0308",\u01DE:"A\u0308\u0304","\xc3":"A\u0303",\u0100:"A\u0304",\u0102:"A\u0306",\u1EAE:"A\u0306\u0301",\u1EB0:"A\u0306\u0300",\u1EB4:"A\u0306\u0303",\u01CD:"A\u030C","\xc2":"A\u0302",\u1EA4:"A\u0302\u0301",\u1EA6:"A\u0302\u0300",\u1EAA:"A\u0302\u0303",\u0226:"A\u0307",\u01E0:"A\u0307\u0304","\xc5":"A\u030A",\u01FA:"A\u030A\u0301",\u1E02:"B\u0307",\u0106:"C\u0301",\u1E08:"C\u0327\u0301",\u010C:"C\u030C",\u0108:"C\u0302",\u010A:"C\u0307","\xc7":"C\u0327",\u010E:"D\u030C",\u1E0A:"D\u0307",\u1E10:"D\u0327","\xc9":"E\u0301","\xc8":"E\u0300","\xcb":"E\u0308",\u1EBC:"E\u0303",\u0112:"E\u0304",\u1E16:"E\u0304\u0301",\u1E14:"E\u0304\u0300",\u0114:"E\u0306",\u1E1C:"E\u0327\u0306",\u011A:"E\u030C","\xca":"E\u0302",\u1EBE:"E\u0302\u0301",\u1EC0:"E\u0302\u0300",\u1EC4:"E\u0302\u0303",\u0116:"E\u0307",\u0228:"E\u0327",\u1E1E:"F\u0307",\u01F4:"G\u0301",\u1E20:"G\u0304",\u011E:"G\u0306",\u01E6:"G\u030C",\u011C:"G\u0302",\u0120:"G\u0307",\u0122:"G\u0327",\u1E26:"H\u0308",\u021E:"H\u030C",\u0124:"H\u0302",\u1E22:"H\u0307",\u1E28:"H\u0327","\xcd":"I\u0301","\xcc":"I\u0300","\xcf":"I\u0308",\u1E2E:"I\u0308\u0301",\u0128:"I\u0303",\u012A:"I\u0304",\u012C:"I\u0306",\u01CF:"I\u030C","\xce":"I\u0302",\u0130:"I\u0307",\u0134:"J\u0302",\u1E30:"K\u0301",\u01E8:"K\u030C",\u0136:"K\u0327",\u0139:"L\u0301",\u013D:"L\u030C",\u013B:"L\u0327",\u1E3E:"M\u0301",\u1E40:"M\u0307",\u0143:"N\u0301",\u01F8:"N\u0300","\xd1":"N\u0303",\u0147:"N\u030C",\u1E44:"N\u0307",\u0145:"N\u0327","\xd3":"O\u0301","\xd2":"O\u0300","\xd6":"O\u0308",\u022A:"O\u0308\u0304","\xd5":"O\u0303",\u1E4C:"O\u0303\u0301",\u1E4E:"O\u0303\u0308",\u022C:"O\u0303\u0304",\u014C:"O\u0304",\u1E52:"O\u0304\u0301",\u1E50:"O\u0304\u0300",\u014E:"O\u0306",\u01D1:"O\u030C","\xd4":"O\u0302",\u1ED0:"O\u0302\u0301",\u1ED2:"O\u0302\u0300",\u1ED6:"O\u0302\u0303",\u022E:"O\u0307",\u0230:"O\u0307\u0304",\u0150:"O\u030B",\u1E54:"P\u0301",\u1E56:"P\u0307",\u0154:"R\u0301",\u0158:"R\u030C",\u1E58:"R\u0307",\u0156:"R\u0327",\u015A:"S\u0301",\u1E64:"S\u0301\u0307",\u0160:"S\u030C",\u1E66:"S\u030C\u0307",\u015C:"S\u0302",\u1E60:"S\u0307",\u015E:"S\u0327",\u0164:"T\u030C",\u1E6A:"T\u0307",\u0162:"T\u0327","\xda":"U\u0301","\xd9":"U\u0300","\xdc":"U\u0308",\u01D7:"U\u0308\u0301",\u01DB:"U\u0308\u0300",\u01D5:"U\u0308\u0304",\u01D9:"U\u0308\u030C",\u0168:"U\u0303",\u1E78:"U\u0303\u0301",\u016A:"U\u0304",\u1E7A:"U\u0304\u0308",\u016C:"U\u0306",\u01D3:"U\u030C","\xdb":"U\u0302",\u016E:"U\u030A",\u0170:"U\u030B",\u1E7C:"V\u0303",\u1E82:"W\u0301",\u1E80:"W\u0300",\u1E84:"W\u0308",\u0174:"W\u0302",\u1E86:"W\u0307",\u1E8C:"X\u0308",\u1E8A:"X\u0307","\xdd":"Y\u0301",\u1EF2:"Y\u0300",\u0178:"Y\u0308",\u1EF8:"Y\u0303",\u0232:"Y\u0304",\u0176:"Y\u0302",\u1E8E:"Y\u0307",\u0179:"Z\u0301",\u017D:"Z\u030C",\u1E90:"Z\u0302",\u017B:"Z\u0307",\u03AC:"\u03B1\u0301",\u1F70:"\u03B1\u0300",\u1FB1:"\u03B1\u0304",\u1FB0:"\u03B1\u0306",\u03AD:"\u03B5\u0301",\u1F72:"\u03B5\u0300",\u03AE:"\u03B7\u0301",\u1F74:"\u03B7\u0300",\u03AF:"\u03B9\u0301",\u1F76:"\u03B9\u0300",\u03CA:"\u03B9\u0308",\u0390:"\u03B9\u0308\u0301",\u1FD2:"\u03B9\u0308\u0300",\u1FD1:"\u03B9\u0304",\u1FD0:"\u03B9\u0306",\u03CC:"\u03BF\u0301",\u1F78:"\u03BF\u0300",\u03CD:"\u03C5\u0301",\u1F7A:"\u03C5\u0300",\u03CB:"\u03C5\u0308",\u03B0:"\u03C5\u0308\u0301",\u1FE2:"\u03C5\u0308\u0300",\u1FE1:"\u03C5\u0304",\u1FE0:"\u03C5\u0306",\u03CE:"\u03C9\u0301",\u1F7C:"\u03C9\u0300",\u038E:"\u03A5\u0301",\u1FEA:"\u03A5\u0300",\u03AB:"\u03A5\u0308",\u1FE9:"\u03A5\u0304",\u1FE8:"\u03A5\u0306",\u038F:"\u03A9\u0301",\u1FFA:"\u03A9\u0300"};class aD{constructor(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new aH(e,t,this.mode),this.settings=t,this.leftrightDepth=0}expect(e,t){if(void 0===t&&(t=!0),this.fetch().text!==e)throw new i("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()}consume(){this.nextToken=null}fetch(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var t=this.nextToken;this.consume(),this.gullet.pushToken(new n("}")),this.gullet.pushTokens(e);var r=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,r}parseExpression(e,t){for(var r=[];;){"math"===this.mode&&this.consumeSpaces();var a=this.fetch();if(-1!==aD.endOfExpression.indexOf(a.text)||t&&a.text===t||e&&tf[a.text]&&tf[a.text].infix)break;var n=this.parseAtom(t);if(n){if("internal"===n.type)continue}else break;r.push(n)}return"text"===this.mode&&this.formLigatures(r),this.handleInfixNodes(r)}handleInfixNodes(e){for(var t=-1,r=0;r<e.length;r++)if("infix"===e[r].type){if(-1!==t)throw new i("only one infix operator per group",e[r].token);t=r,a=e[r].replaceWith}if(-1===t||!a)return e;var a,n,s,o=e.slice(0,t),l=e.slice(t+1);return n=1===o.length&&"ordgroup"===o[0].type?o[0]:{type:"ordgroup",mode:this.mode,body:o},s=1===l.length&&"ordgroup"===l[0].type?l[0]:{type:"ordgroup",mode:this.mode,body:l},["\\\\abovefrac"===a?this.callFunction(a,[n,e[t],s],[]):this.callFunction(a,[n,s],[])]}handleSupSubscript(e){var t=this.fetch(),r=t.text;this.consume(),this.consumeSpaces();var a=this.parseGroup(e);if(!a)throw new i("Expected group after '"+r+"'",t);return a}formatUnsupportedCmd(e){for(var t=[],r=0;r<e.length;r++)t.push({type:"textord",mode:"text",text:e[r]});var a={type:"text",mode:this.mode,body:t};return{type:"color",mode:this.mode,color:this.settings.errorColor,body:[a]}}parseAtom(e){var t,r,a=this.parseGroup("atom",e);if("text"===this.mode)return a;for(;;){this.consumeSpaces();var s=this.fetch();if("\\limits"===s.text||"\\nolimits"===s.text){if(a&&"op"===a.type){var o="\\limits"===s.text;a.limits=o,a.alwaysHandleSupSub=!0}else if(a&&"operatorname"===a.type)a.alwaysHandleSupSub&&(a.limits="\\limits"===s.text);else throw new i("Limit controls must follow a math operator",s);this.consume()}else if("^"===s.text){if(t)throw new i("Double superscript",s);t=this.handleSupSubscript("superscript")}else if("_"===s.text){if(r)throw new i("Double subscript",s);r=this.handleSupSubscript("subscript")}else if("'"===s.text){if(t)throw new i("Double superscript",s);var l={type:"textord",mode:this.mode,text:"\\prime"},h=[l];for(this.consume();"'"===this.fetch().text;)h.push(l),this.consume();"^"===this.fetch().text&&h.push(this.handleSupSubscript("superscript")),t={type:"ordgroup",mode:this.mode,body:h}}else if(aO[s.text]){var m=aR.test(s.text),c=[];for(c.push(new n(aO[s.text])),this.consume();;){var p=this.fetch().text;if(!aO[p]||aR.test(p)!==m)break;c.unshift(new n(aO[p])),this.consume()}var u=this.subparse(c);m?r={type:"ordgroup",mode:"math",body:u}:t={type:"ordgroup",mode:"math",body:u}}else break}return t||r?{type:"supsub",mode:this.mode,base:a,sup:t,sub:r}:a}parseFunction(e,t){var r=this.fetch(),a=r.text,n=tf[a];if(!n)return null;if(this.consume(),t&&"atom"!==t&&!n.allowedInArgument)throw new i("Got function '"+a+"' with no arguments"+(t?" as "+t:""),r);if("text"!==this.mode||n.allowedInText){if("math"===this.mode&&!1===n.allowedInMath)throw new i("Can't use function '"+a+"' in math mode",r)}else throw new i("Can't use function '"+a+"' in text mode",r);var{args:s,optArgs:o}=this.parseArguments(a,n);return this.callFunction(a,s,o,r,e)}callFunction(e,t,r,a,n){var s=tf[e];if(s&&s.handler)return s.handler({funcName:e,parser:this,token:a,breakOnTokenText:n},t,r);throw new i("No function handler for "+e)}parseArguments(e,t){var r=t.numArgs+t.numOptionalArgs;if(0===r)return{args:[],optArgs:[]};for(var a=[],n=[],s=0;s<r;s++){var o=t.argTypes&&t.argTypes[s],l=s<t.numOptionalArgs;(t.primitive&&null==o||"sqrt"===t.type&&1===s&&null==n[0])&&(o="primitive");var h=this.parseGroupOfType("argument to '"+e+"'",o,l);if(l)n.push(h);else if(null!=h)a.push(h);else throw new i("Null argument, please report this as a bug")}return{args:a,optArgs:n}}parseGroupOfType(e,t,r){switch(t){case"color":return this.parseColorGroup(r);case"size":return this.parseSizeGroup(r);case"url":return this.parseUrlGroup(r);case"math":case"text":return this.parseArgumentGroup(r,t);case"hbox":var a=this.parseArgumentGroup(r,"text");return null!=a?{type:"styling",mode:a.mode,body:[a],style:"text"}:null;case"raw":var n=this.parseStringGroup("raw",r);return null!=n?{type:"raw",mode:"text",string:n.text}:null;case"primitive":if(r)throw new i("A primitive argument cannot be optional");var s=this.parseGroup(e);if(null==s)throw new i("Expected group as "+e,this.fetch());return s;case"original":case null:case void 0:return this.parseArgumentGroup(r);default:throw new i("Unknown group type as "+e,this.fetch())}}consumeSpaces(){for(;" "===this.fetch().text;)this.consume()}parseStringGroup(e,t){var r,a=this.gullet.scanArgument(t);if(null==a)return null;for(var n="";"EOF"!==(r=this.fetch()).text;)n+=r.text,this.consume();return this.consume(),a.text=n,a}parseRegexGroup(e,t){for(var r,a=this.fetch(),n=a,s="";"EOF"!==(r=this.fetch()).text&&e.test(s+r.text);)s+=(n=r).text,this.consume();if(""===s)throw new i("Invalid "+t+": '"+a.text+"'",a);return a.range(n,s)}parseColorGroup(e){var t=this.parseStringGroup("color",e);if(null==t)return null;var r=/^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i.exec(t.text);if(!r)throw new i("Invalid color: '"+t.text+"'",t);var a=r[0];return/^[0-9a-f]{6}$/i.test(a)&&(a="#"+a),{type:"color-token",mode:this.mode,color:a}}parseSizeGroup(e){var t,r=!1;if(this.gullet.consumeSpaces(),!(t=e||"{"===this.gullet.future().text?this.parseStringGroup("size",e):this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/,"size")))return null;e||0!==t.text.length||(t.text="0pt",r=!0);var a=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t.text);if(!a)throw new i("Invalid size: '"+t.text+"'",t);var n={number:+(a[1]+a[2]),unit:a[3]};if(!em(n))throw new i("Invalid unit: '"+n.unit+"'",t);return{type:"size",mode:this.mode,value:n,isBlank:r}}parseUrlGroup(e){this.gullet.lexer.setCatcode("%",13),this.gullet.lexer.setCatcode("~",12);var t=this.parseStringGroup("url",e);if(this.gullet.lexer.setCatcode("%",14),this.gullet.lexer.setCatcode("~",13),null==t)return null;var r=t.text.replace(/\\([#$%&~_^{}])/g,"$1");return{type:"url",mode:this.mode,url:r}}parseArgumentGroup(e,t){var r=this.gullet.scanArgument(e);if(null==r)return null;var a=this.mode;t&&this.switchMode(t),this.gullet.beginGroup();var n=this.parseExpression(!1,"EOF");this.expect("EOF"),this.gullet.endGroup();var i={type:"ordgroup",mode:this.mode,loc:r.loc,body:n};return t&&this.switchMode(a),i}parseGroup(e,t){var r,n=this.fetch(),s=n.text;if("{"===s||"\\begingroup"===s){this.consume();var o="{"===s?"}":"\\endgroup";this.gullet.beginGroup();var l=this.parseExpression(!1,o),h=this.fetch();this.expect(o),this.gullet.endGroup(),r={type:"ordgroup",mode:this.mode,loc:a.range(n,h),body:l,semisimple:"\\begingroup"===s||void 0}}else if(null==(r=this.parseFunction(t,e)||this.parseSymbol())&&"\\"===s[0]&&!aI.hasOwnProperty(s)){if(this.settings.throwOnError)throw new i("Undefined control sequence: "+s,n);r=this.formatUnsupportedCmd(s),this.consume()}return r}formLigatures(e){for(var t=e.length-1,r=0;r<t;++r){var n=e[r],i=n.text;"-"===i&&"-"===e[r+1].text&&(r+1<t&&"-"===e[r+2].text?(e.splice(r,3,{type:"textord",mode:"text",loc:a.range(n,e[r+2]),text:"---"}),t-=2):(e.splice(r,2,{type:"textord",mode:"text",loc:a.range(n,e[r+1]),text:"--"}),t-=1)),("'"===i||"`"===i)&&e[r+1].text===i&&(e.splice(r,2,{type:"textord",mode:"text",loc:a.range(n,e[r+1]),text:i+i}),t-=1)}}parseSymbol(){var e=this.fetch(),t=e.text;if(/^\\verb[^a-zA-Z]/.test(t)){this.consume();var r=t.slice(5),n="*"===r.charAt(0);if(n&&(r=r.slice(1)),r.length<2||r.charAt(0)!==r.slice(-1))throw new i("\\verb assertion failed --\n please report what input caused this bug");return{type:"verb",mode:"text",body:r=r.slice(1,-1),star:n}}aL.hasOwnProperty(t[0])&&!eB[this.mode][t[0]]&&(this.settings.strict&&"math"===this.mode&&this.settings.reportNonstrict("unicodeTextInMathMode",'Accented Unicode text character "'+t[0]+'" used in math mode',e),t=aL[t[0]]+t.slice(1));var s=ak.exec(t);if(s&&("i"===(t=t.substring(0,s.index))?t="\u0131":"j"===t&&(t="\u0237")),eB[this.mode][t]){this.settings.strict&&"math"===this.mode&&e5.indexOf(t)>=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',e);var o,l=eB[this.mode][t].group,h=a.range(e);o=eA.hasOwnProperty(l)?{type:"atom",mode:this.mode,family:l,loc:h,text:t}:{type:l,mode:this.mode,loc:h,text:t}}else{if(!(t.charCodeAt(0)>=128))return null;this.settings.strict&&(_(t.charCodeAt(0))?"math"===this.mode&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'" ('+t.charCodeAt(0)+")",e)),o={type:"textord",mode:"text",loc:a.range(e),text:t}}if(this.consume(),s)for(var m=0;m<s[0].length;m++){var c=s[0][m];if(!aE[c])throw new i("Unknown accent ' "+c+"'",e);var p=aE[c][this.mode]||aE[c].text;if(!p)throw new i("Accent "+c+" unsupported in "+this.mode+" mode",e);o={type:"accent",mode:this.mode,loc:a.range(e),label:p,isStretchy:!1,isShifty:!0,base:o}}return o}}aD.endOfExpression=["}","\\endgroup","\\end","\\right","&"];var aV=function(e,t){if(!("string"==typeof e||e instanceof String))throw TypeError("KaTeX can only parse string typed expression");var r=new aD(e,t);delete r.gullet.macros.current["\\df@tag"];var a=r.parse();if(delete r.gullet.macros.current["\\current@color"],delete r.gullet.macros.current["\\color"],r.gullet.macros.get("\\df@tag")){if(!t.displayMode)throw new i("\\tag works only in display equations");a=[{type:"tag",mode:"text",body:a,tag:r.subparse([new n("\\df@tag")])}]}return a},aP=function(e,t,r){t.textContent="";var a=aG(e,r).toNode();t.appendChild(a)};"undefined"!=typeof document&&"CSS1Compat"!==document.compatMode&&("undefined"!=typeof console&&console.warn("Warning: KaTeX doesn't work in quirks mode. Make sure your website has a suitable doctype."),aP=function(){throw new i("KaTeX doesn't work in quirks mode.")});var aF=function(e,t,r){if(r.throwOnError||!(e instanceof i))throw e;var a=tm.makeSpan(["katex-error"],[new ew(t)]);return a.setAttribute("title",e.toString()),a.setAttribute("style","color:"+r.errorColor),a},aG=function(e,t){var r=new O(t);try{var a=aV(e,r);return tZ(a,e,r)}catch(t){return aF(t,e,r)}},aU={version:"0.16.11",render:aP,renderToString:function(e,t){return aG(e,t).toMarkup()},ParseError:i,SETTINGS_SCHEMA:R,__parse:function(e,t){return aV(e,new O(t))},__renderToDomTree:aG,__renderToHTMLTree:function(e,t){var r=new O(t);try{var a=aV(e,r);return tK(a,e,r)}catch(t){return aF(t,e,r)}},__setFontMetrics:function(e,t){Q[e]=t},__defineSymbol:eC,__defineFunction:ty,__defineMacro:function(e,t){rU[e]=t},__domTree:{Span:ev,Anchor:eb,SymbolNode:ew,SvgNode:ek,PathNode:eS,LineNode:eM}}}}]); \ No newline at end of file diff --git a/assets/js/3313.33f3d488.js b/assets/js/3313.33f3d488.js new file mode 100644 index 0000000000..5885815d75 --- /dev/null +++ b/assets/js/3313.33f3d488.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3313],{3313:(t,i,e)=>{e.d(i,{diagram:()=>q});var s,n=e(27923),a=e(67027),h=e(93491),o=e(72912),r=e(89601),l=function(){var t=(0,o.K2)(function(t,i,e,s){for(e=e||{},s=t.length;s--;e[t[s]]=i);return e},"o"),i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],n=[1,5],a=[1,6],h=[1,7],r=[1,5,10,12,14,16,18,19,21,23,34,35,36],l=[1,25],c=[1,26],g=[1,28],u=[1,29],x=[1,30],d=[1,31],p=[1,32],f=[1,33],y=[1,34],m=[1,35],b=[1,36],A=[1,37],S=[1,43],w=[1,42],C=[1,47],k=[1,50],_=[1,10,12,14,16,18,19,21,23,34,35,36],T=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],R=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],D=[1,64],L={trace:(0,o.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:(0,o.K2)(function(t,i,e,s,n,a,h){var o=a.length-1;switch(n){case 5:s.setOrientation(a[o]);break;case 9:s.setDiagramTitle(a[o].text.trim());break;case 12:s.setLineData({text:"",type:"text"},a[o]);break;case 13:s.setLineData(a[o-1],a[o]);break;case 14:s.setBarData({text:"",type:"text"},a[o]);break;case 15:s.setBarData(a[o-1],a[o]);break;case 16:this.$=a[o].trim(),s.setAccTitle(this.$);break;case 17:case 18:this.$=a[o].trim(),s.setAccDescription(this.$);break;case 19:case 27:this.$=a[o-1];break;case 20:this.$=[Number(a[o-2]),...a[o]];break;case 21:this.$=[Number(a[o])];break;case 22:s.setXAxisTitle(a[o]);break;case 23:s.setXAxisTitle(a[o-1]);break;case 24:s.setXAxisTitle({type:"text",text:""});break;case 25:s.setXAxisBand(a[o]);break;case 26:s.setXAxisRangeData(Number(a[o-2]),Number(a[o]));break;case 28:this.$=[a[o-2],...a[o]];break;case 29:this.$=[a[o]];break;case 30:s.setYAxisTitle(a[o]);break;case 31:s.setYAxisTitle(a[o-1]);break;case 32:s.setYAxisTitle({type:"text",text:""});break;case 33:s.setYAxisRangeData(Number(a[o-2]),Number(a[o]));break;case 37:case 38:this.$={text:a[o],type:"text"};break;case 39:this.$={text:a[o],type:"markdown"};break;case 40:this.$=a[o];break;case 41:this.$=a[o-1]+""+a[o]}},"anonymous"),table:[t(i,e,{3:1,4:2,7:4,5:s,34:n,35:a,36:h}),{1:[3]},t(i,e,{4:2,7:4,3:8,5:s,34:n,35:a,36:h}),t(i,e,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:a,36:h}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(r,[2,34]),t(r,[2,35]),t(r,[2,36]),{1:[2,1]},t(i,e,{4:2,7:4,3:21,5:s,34:n,35:a,36:h}),{1:[2,3]},t(r,[2,5]),t(i,[2,7],{4:22,34:n,35:a,36:h}),{11:23,37:24,38:l,39:c,40:27,41:g,42:u,43:x,44:d,45:p,46:f,47:y,48:m,49:b,50:A},{11:39,13:38,24:S,27:w,29:40,30:41,37:24,38:l,39:c,40:27,41:g,42:u,43:x,44:d,45:p,46:f,47:y,48:m,49:b,50:A},{11:45,15:44,27:C,33:46,37:24,38:l,39:c,40:27,41:g,42:u,43:x,44:d,45:p,46:f,47:y,48:m,49:b,50:A},{11:49,17:48,24:k,37:24,38:l,39:c,40:27,41:g,42:u,43:x,44:d,45:p,46:f,47:y,48:m,49:b,50:A},{11:52,17:51,24:k,37:24,38:l,39:c,40:27,41:g,42:u,43:x,44:d,45:p,46:f,47:y,48:m,49:b,50:A},{20:[1,53]},{22:[1,54]},t(_,[2,18]),{1:[2,2]},t(_,[2,8]),t(_,[2,9]),t(T,[2,37],{40:55,41:g,42:u,43:x,44:d,45:p,46:f,47:y,48:m,49:b,50:A}),t(T,[2,38]),t(T,[2,39]),t(R,[2,40]),t(R,[2,42]),t(R,[2,43]),t(R,[2,44]),t(R,[2,45]),t(R,[2,46]),t(R,[2,47]),t(R,[2,48]),t(R,[2,49]),t(R,[2,50]),t(R,[2,51]),t(_,[2,10]),t(_,[2,22],{30:41,29:56,24:S,27:w}),t(_,[2,24]),t(_,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:l,39:c,40:27,41:g,42:u,43:x,44:d,45:p,46:f,47:y,48:m,49:b,50:A},t(_,[2,11]),t(_,[2,30],{33:60,27:C}),t(_,[2,32]),{31:[1,61]},t(_,[2,12]),{17:62,24:k},{25:63,27:D},t(_,[2,14]),{17:65,24:k},t(_,[2,16]),t(_,[2,17]),t(R,[2,41]),t(_,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},t(_,[2,31]),{27:[1,69]},t(_,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},t(_,[2,15]),t(_,[2,26]),t(_,[2,27]),{11:59,32:72,37:24,38:l,39:c,40:27,41:g,42:u,43:x,44:d,45:p,46:f,47:y,48:m,49:b,50:A},t(_,[2,33]),t(_,[2,19]),{25:73,27:D},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:(0,o.K2)(function(t,i){if(i.recoverable)this.trace(t);else{var e=Error(t);throw e.hash=i,e}},"parseError"),parse:(0,o.K2)(function(t){var i=this,e=[0],s=[],n=[null],a=[],h=this.table,r="",l=0,c=0,g=0,u=a.slice.call(arguments,1),x=Object.create(this.lexer),d={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(d.yy[p]=this.yy[p]);x.setInput(t,d.yy),d.yy.lexer=x,d.yy.parser=this,void 0===x.yylloc&&(x.yylloc={});var f=x.yylloc;a.push(f);var y=x.options&&x.options.ranges;function m(){var t;return"number"!=typeof(t=s.pop()||x.lex()||1)&&(t instanceof Array&&(t=(s=t).pop()),t=i.symbols_[t]||t),t}"function"==typeof d.yy.parseError?this.parseError=d.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,o.K2)(function(t){e.length=e.length-2*t,n.length=n.length-t,a.length=a.length-t},"popStack"),(0,o.K2)(m,"lex");for(var b,A,S,w,C,k,_,T,R,D={};;){if(S=e[e.length-1],this.defaultActions[S]?w=this.defaultActions[S]:(null==b&&(b=m()),w=h[S]&&h[S][b]),void 0===w||!w.length||!w[0]){var L="";for(k in R=[],h[S])this.terminals_[k]&&k>2&&R.push("'"+this.terminals_[k]+"'");L=x.showPosition?"Parse error on line "+(l+1)+":\n"+x.showPosition()+"\nExpecting "+R.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==b?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(L,{text:x.match,token:this.terminals_[b]||b,line:x.yylineno,loc:f,expected:R})}if(w[0]instanceof Array&&w.length>1)throw Error("Parse Error: multiple actions possible at state: "+S+", token: "+b);switch(w[0]){case 1:e.push(b),n.push(x.yytext),a.push(x.yylloc),e.push(w[1]),b=null,A?(b=A,A=null):(c=x.yyleng,r=x.yytext,l=x.yylineno,f=x.yylloc,g>0&&g--);break;case 2:if(_=this.productions_[w[1]][1],D.$=n[n.length-_],D._$={first_line:a[a.length-(_||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(_||1)].first_column,last_column:a[a.length-1].last_column},y&&(D._$.range=[a[a.length-(_||1)].range[0],a[a.length-1].range[1]]),void 0!==(C=this.performAction.apply(D,[r,c,l,d.yy,w[1],n,a].concat(u))))return C;_&&(e=e.slice(0,-1*_*2),n=n.slice(0,-1*_),a=a.slice(0,-1*_)),e.push(this.productions_[w[1]][0]),n.push(D.$),a.push(D._$),T=h[e[e.length-2]][e[e.length-1]],e.push(T);break;case 3:return!0}}return!0},"parse")},P={EOF:1,parseError:(0,o.K2)(function(t,i){if(this.yy.parser)this.yy.parser.parseError(t,i);else throw Error(t)},"parseError"),setInput:(0,o.K2)(function(t,i){return this.yy=i||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,o.K2)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,o.K2)(function(t){var i=t.length,e=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),e.length-1&&(this.yylineno-=e.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:e?(e.length===s.length?this.yylloc.first_column:0)+s[s.length-e.length].length-e[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-i]),this.yyleng=this.yytext.length,this},"unput"),more:(0,o.K2)(function(){return this._more=!0,this},"more"),reject:(0,o.K2)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,o.K2)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,o.K2)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,o.K2)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,o.K2)(function(){var t=this.pastInput(),i=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+i+"^"},"showPosition"),test_match:(0,o.K2)(function(t,i){var e,s,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(s=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e)return e;if(this._backtrack)for(var a in n)this[a]=n[a];return!1},"test_match"),next:(0,o.K2)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,i,e,s,n=this._currentRules(),a=0;a<n.length;a++)if((e=this._input.match(this.rules[n[a]]))&&(!i||e[0].length>i[0].length)){if(i=e,s=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(e,n[a])))return t;if(!this._backtrack)return!1;i=!1;continue}if(!this.options.flex)break}return i?!1!==(t=this.test_match(i,n[s]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,o.K2)(function(){return this.next()||this.lex()},"lex"),begin:(0,o.K2)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,o.K2)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,o.K2)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,o.K2)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,o.K2)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,o.K2)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,o.K2)(function(t,i,e,s){switch(e){case 0:case 1:case 5:case 43:break;case 2:case 3:return this.popState(),34;case 4:return 34;case 6:return 10;case 7:return this.pushState("acc_title"),19;case 8:return this.popState(),"acc_title_value";case 9:return this.pushState("acc_descr"),21;case 10:return this.popState(),"acc_descr_value";case 11:this.pushState("acc_descr_multiline");break;case 12:case 25:case 27:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 8;case 16:return this.pushState("axis_data"),"X_AXIS";case 17:return this.pushState("axis_data"),"Y_AXIS";case 18:return this.pushState("axis_band_data"),24;case 19:return 31;case 20:return this.pushState("data"),16;case 21:return this.pushState("data"),18;case 22:return this.pushState("data_inner"),24;case 23:return 27;case 24:return this.popState(),26;case 26:this.pushState("string");break;case 28:return"STR";case 29:return 24;case 30:return 26;case 31:return 43;case 32:return"COLON";case 33:return 44;case 34:return 28;case 35:return 45;case 36:return 46;case 37:return 48;case 38:return 50;case 39:return 47;case 40:return 41;case 41:return 49;case 42:return 42;case 44:return 35;case 45:return 36}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\{)/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n<md_string>\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n<md_string>\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,20,21,22,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,23,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[27,28],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0}}};function E(){this.yy={}}return L.lexer=P,(0,o.K2)(E,"Parser"),E.prototype=L,L.Parser=E,new E}();function c(t){return"bar"===t.type}function g(t){return"band"===t.type}function u(t){return"linear"===t.type}l.parser=l,(0,o.K2)(c,"isBarPlot"),(0,o.K2)(g,"isBandAxisData"),(0,o.K2)(u,"isLinearAxisData");var x=class{constructor(t){this.parentGroup=t}static{(0,o.K2)(this,"TextDimensionCalculatorWithFont")}getMaxDimension(t,i){if(!this.parentGroup)return{width:t.reduce((t,i)=>Math.max(i.length,t),0)*i,height:i};let e={width:0,height:0},s=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",i);for(let a of t){let t=(0,n.W6)(s,1,a),h=t?t.width:a.length*i,o=t?t.height:i;e.width=Math.max(e.width,h),e.height=Math.max(e.height,o)}return s.remove(),e}},d=class{constructor(t,i,e,s){this.axisConfig=t,this.title=i,this.textDimensionCalculator=e,this.axisThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}static{(0,o.K2)(this,"BaseAxis")}setRange(t){this.range=t,"left"===this.axisPosition||"right"===this.axisPosition?this.boundingRect.height=t[1]-t[0]:this.boundingRect.width=t[1]-t[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(t){this.axisPosition=t,this.setRange(this.range)}getTickDistance(){let t=this.getRange();return Math.abs(t[0]-t[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(t=>t.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){.7*this.getTickDistance()>2*this.outerPadding&&(this.outerPadding=Math.floor(.7*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(t){let i=t.height;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let e=this.getLabelDimension(),s=.2*t.width;this.outerPadding=Math.min(e.width/2,s);let n=e.height+2*this.axisConfig.labelPadding;this.labelTextHeight=e.height,n<=i&&(i-=n,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let t=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),e=t.height+2*this.axisConfig.titlePadding;this.titleTextHeight=t.height,e<=i&&(i-=e,this.showTitle=!0)}this.boundingRect.width=t.width,this.boundingRect.height=t.height-i}calculateSpaceIfDrawnVertical(t){let i=t.width;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let e=this.getLabelDimension(),s=.2*t.height;this.outerPadding=Math.min(e.height/2,s);let n=e.width+2*this.axisConfig.labelPadding;n<=i&&(i-=n,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let t=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),e=t.height+2*this.axisConfig.titlePadding;this.titleTextHeight=t.height,e<=i&&(i-=e,this.showTitle=!0)}this.boundingRect.width=t.width-i,this.boundingRect.height=t.height}calculateSpace(t){return"left"===this.axisPosition||"right"===this.axisPosition?this.calculateSpaceIfDrawnVertical(t):this.calculateSpaceIfDrawnHorizontally(t),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}getDrawableElementsForLeftAxis(){let t=[];if(this.showAxisLine){let i=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${i},${this.boundingRect.y} L ${i},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(t=>({text:t.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(t),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){let i=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(t=>({path:`M ${i},${this.getScaleValue(t)} L ${i-this.axisConfig.tickLength},${this.getScaleValue(t)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForBottomAxis(){let t=[];if(this.showAxisLine){let i=this.boundingRect.y+this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(t=>({text:t.toString(),x:this.getScaleValue(t),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let i=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(t=>({path:`M ${this.getScaleValue(t)},${i} L ${this.getScaleValue(t)},${i+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForTopAxis(){let t=[];if(this.showAxisLine){let i=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(t=>({text:t.toString(),x:this.getScaleValue(t),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+2*this.axisConfig.titlePadding:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let i=this.boundingRect.y;t.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(t=>({path:`M ${this.getScaleValue(t)},${i+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(t)},${i+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElements(){if("left"===this.axisPosition)return this.getDrawableElementsForLeftAxis();if("right"===this.axisPosition)throw Error("Drawing of right axis is not implemented");return"bottom"===this.axisPosition?this.getDrawableElementsForBottomAxis():"top"===this.axisPosition?this.getDrawableElementsForTopAxis():[]}},p=class extends d{static{(0,o.K2)(this,"BandAxis")}constructor(t,i,e,s,n){super(t,s,n,i),this.categories=e,this.scale=(0,r.WH)().domain(this.categories).range(this.getRange())}setRange(t){super.setRange(t)}recalculateScale(){this.scale=(0,r.WH)().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),o.Rm.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(t){return this.scale(t)??this.getRange()[0]}},f=class extends d{static{(0,o.K2)(this,"LinearAxis")}constructor(t,i,e,s,n){super(t,s,n,i),this.domain=e,this.scale=(0,r.m4Y)().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){let t=[...this.domain];"left"===this.axisPosition&&t.reverse(),this.scale=(0,r.m4Y)().domain(t).range(this.getRange())}getScaleValue(t){return this.scale(t)}};function y(t,i,e,s){let n=new x(s);return g(t)?new p(i,e,t.categories,t.title,n):new f(i,e,[t.min,t.max],t.title,n)}(0,o.K2)(y,"getAxis");var m=class{constructor(t,i,e,s){this.textDimensionCalculator=t,this.chartConfig=i,this.chartData=e,this.chartThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{(0,o.K2)(this,"ChartTitle")}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){let i=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),e=Math.max(i.width,t.width),s=i.height+2*this.chartConfig.titlePadding;return i.width<=e&&i.height<=s&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=e,this.boundingRect.height=s,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){let t=[];return this.showChartTitle&&t.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),t}};function b(t,i,e,s){return new m(new x(s),t,i,e)}(0,o.K2)(b,"getChartTitleComponent");var A=class{constructor(t,i,e,s,n){this.plotData=t,this.xAxis=i,this.yAxis=e,this.orientation=s,this.plotIndex=n}static{(0,o.K2)(this,"LinePlot")}getDrawableElement(){let t;let i=this.plotData.data.map(t=>[this.xAxis.getScaleValue(t[0]),this.yAxis.getScaleValue(t[1])]);return(t="horizontal"===this.orientation?(0,r.n8j)().y(t=>t[0]).x(t=>t[1])(i):(0,r.n8j)().x(t=>t[0]).y(t=>t[1])(i))?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:t,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}},S=class{constructor(t,i,e,s,n,a){this.barData=t,this.boundingRect=i,this.xAxis=e,this.yAxis=s,this.orientation=n,this.plotIndex=a}static{(0,o.K2)(this,"BarPlot")}getDrawableElement(){let t=this.barData.data.map(t=>[this.xAxis.getScaleValue(t[0]),this.yAxis.getScaleValue(t[1])]),i=.95*Math.min(2*this.xAxis.getAxisOuterPadding(),this.xAxis.getTickDistance()),e=i/2;return"horizontal"===this.orientation?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(t=>({x:this.boundingRect.x,y:t[0]-e,height:i,width:t[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(t=>({x:t[0]-e,y:t[1],width:i,height:this.boundingRect.y+this.boundingRect.height-t[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}},w=class{constructor(t,i,e){this.chartConfig=t,this.chartData=i,this.chartThemeConfig=e,this.boundingRect={x:0,y:0,width:0,height:0}}static{(0,o.K2)(this,"BasePlot")}setAxes(t,i){this.xAxis=t,this.yAxis=i}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){return this.boundingRect.width=t.width,this.boundingRect.height=t.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");let t=[];for(let[i,e]of this.chartData.plots.entries())switch(e.type){case"line":{let s=new A(e,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...s.getDrawableElement())}break;case"bar":{let s=new S(e,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...s.getDrawableElement())}}return t}};function C(t,i,e){return new w(t,i,e)}(0,o.K2)(C,"getPlotComponent");var k=class{constructor(t,i,e,s){this.chartConfig=t,this.chartData=i,this.componentStore={title:b(t,i,e,s),plot:C(t,i,e),xAxis:y(i.xAxis,t.xAxis,{titleColor:e.xAxisTitleColor,labelColor:e.xAxisLabelColor,tickColor:e.xAxisTickColor,axisLineColor:e.xAxisLineColor},s),yAxis:y(i.yAxis,t.yAxis,{titleColor:e.yAxisTitleColor,labelColor:e.yAxisLabelColor,tickColor:e.yAxisTickColor,axisLineColor:e.yAxisLineColor},s)}}static{(0,o.K2)(this,"Orchestrator")}calculateVerticalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,e=0,s=0,n=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),a=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),h=this.componentStore.plot.calculateSpace({width:n,height:a});t-=h.width,i-=h.height,s=(h=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i})).height,i-=h.height,this.componentStore.xAxis.setAxisPosition("bottom"),h=this.componentStore.xAxis.calculateSpace({width:t,height:i}),i-=h.height,this.componentStore.yAxis.setAxisPosition("left"),e=(h=this.componentStore.yAxis.calculateSpace({width:t,height:i})).width,(t-=h.width)>0&&(n+=t,t=0),i>0&&(a+=i,i=0),this.componentStore.plot.calculateSpace({width:n,height:a}),this.componentStore.plot.setBoundingBoxXY({x:e,y:s}),this.componentStore.xAxis.setRange([e,e+n]),this.componentStore.xAxis.setBoundingBoxXY({x:e,y:s+a}),this.componentStore.yAxis.setRange([s,s+a]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:s}),this.chartData.plots.some(t=>c(t))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,e=0,s=0,n=0,a=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),h=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),o=this.componentStore.plot.calculateSpace({width:a,height:h});t-=o.width,i-=o.height,e=(o=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i})).height,i-=o.height,this.componentStore.xAxis.setAxisPosition("left"),o=this.componentStore.xAxis.calculateSpace({width:t,height:i}),t-=o.width,s=o.width,this.componentStore.yAxis.setAxisPosition("top"),o=this.componentStore.yAxis.calculateSpace({width:t,height:i}),i-=o.height,n=e+o.height,t>0&&(a+=t,t=0),i>0&&(h+=i,i=0),this.componentStore.plot.calculateSpace({width:a,height:h}),this.componentStore.plot.setBoundingBoxXY({x:s,y:n}),this.componentStore.yAxis.setRange([s,s+a]),this.componentStore.yAxis.setBoundingBoxXY({x:s,y:e}),this.componentStore.xAxis.setRange([n,n+h]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:n}),this.chartData.plots.some(t=>c(t))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){"horizontal"===this.chartConfig.chartOrientation?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();let t=[];for(let i of(this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis),Object.values(this.componentStore)))t.push(...i.getDrawableElements());return t}},_=class{static{(0,o.K2)(this,"XYChartBuilder")}static build(t,i,e,s){return new k(t,i,e,s).getDrawableElement()}},T=0,R=I(),D=K(),L=$(),P=D.plotColorPalette.split(",").map(t=>t.trim()),E=!1,v=!1;function K(){let t=(0,o.P$)(),i=(0,o.zj)();return(0,a.$t)(t.xyChart,i.themeVariables.xyChart)}function I(){let t=(0,o.zj)();return(0,a.$t)(o.UI.xyChart,t.xyChart)}function $(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function M(t){let i=(0,o.zj)();return(0,o.jZ)(t.trim(),i)}function B(t){s=t}function z(t){"horizontal"===t?R.chartOrientation="horizontal":R.chartOrientation="vertical"}function W(t){L.xAxis.title=M(t.text)}function O(t,i){L.xAxis={type:"linear",title:L.xAxis.title,min:t,max:i},E=!0}function F(t){L.xAxis={type:"band",title:L.xAxis.title,categories:t.map(t=>M(t.text))},E=!0}function N(t){L.yAxis.title=M(t.text)}function V(t,i){L.yAxis={type:"linear",title:L.yAxis.title,min:t,max:i},v=!0}function X(t){let i=Math.min(...t),e=Math.max(...t),s=u(L.yAxis)?L.yAxis.min:1/0,n=u(L.yAxis)?L.yAxis.max:-1/0;L.yAxis={type:"linear",title:L.yAxis.title,min:Math.min(s,i),max:Math.max(n,e)}}function Y(t){let i=[];if(0===t.length)return i;if(E||O(Math.min(u(L.xAxis)?L.xAxis.min:1/0,1),Math.max(u(L.xAxis)?L.xAxis.max:-1/0,t.length)),v||X(t),g(L.xAxis)&&(i=L.xAxis.categories.map((i,e)=>[i,t[e]])),u(L.xAxis)){let e=L.xAxis.min,s=L.xAxis.max,n=(s-e)/(t.length-1),a=[];for(let t=e;t<=s;t+=n)a.push(`${t}`);i=a.map((i,e)=>[i,t[e]])}return i}function U(t){return P[0===t?0:t%P.length]}function H(t,i){let e=Y(i);L.plots.push({type:"line",strokeFill:U(T),strokeWidth:2,data:e}),T++}function j(t,i){let e=Y(i);L.plots.push({type:"bar",fill:U(T),data:e}),T++}function G(){if(0===L.plots.length)throw Error("No Plot to render, please provide a plot with some data");return L.title=(0,o.ab)(),_.build(R,L,D,s)}function Q(){return D}function Z(){return R}(0,o.K2)(K,"getChartDefaultThemeConfig"),(0,o.K2)(I,"getChartDefaultConfig"),(0,o.K2)($,"getChartDefaultData"),(0,o.K2)(M,"textSanitizer"),(0,o.K2)(B,"setTmpSVGG"),(0,o.K2)(z,"setOrientation"),(0,o.K2)(W,"setXAxisTitle"),(0,o.K2)(O,"setXAxisRangeData"),(0,o.K2)(F,"setXAxisBand"),(0,o.K2)(N,"setYAxisTitle"),(0,o.K2)(V,"setYAxisRangeData"),(0,o.K2)(X,"setYAxisRangeFromPlotData"),(0,o.K2)(Y,"transformDataWithoutCategory"),(0,o.K2)(U,"getPlotColorFromPalette"),(0,o.K2)(H,"setLineData"),(0,o.K2)(j,"setBarData"),(0,o.K2)(G,"getDrawableElem"),(0,o.K2)(Q,"getChartThemeConfig"),(0,o.K2)(Z,"getChartConfig");var q={parser:l,db:{getDrawableElem:G,clear:(0,o.K2)(function(){(0,o.IU)(),T=0,R=I(),L=$(),P=(D=K()).plotColorPalette.split(",").map(t=>t.trim()),E=!1,v=!1},"clear"),setAccTitle:o.SV,getAccTitle:o.iN,setDiagramTitle:o.ke,getDiagramTitle:o.ab,getAccDescription:o.m7,setAccDescription:o.EI,setOrientation:z,setXAxisTitle:W,setXAxisRangeData:O,setXAxisBand:F,setYAxisTitle:N,setYAxisRangeData:V,setLineData:H,setBarData:j,setTmpSVGG:B,getChartThemeConfig:Q,getChartConfig:Z},renderer:{draw:(0,o.K2)((t,i,e,s)=>{let n=s.db,a=n.getChartThemeConfig(),r=n.getChartConfig();function l(t){return"top"===t?"text-before-edge":"middle"}function c(t){return"left"===t?"start":"right"===t?"end":"middle"}function g(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}(0,o.K2)(l,"getDominantBaseLine"),(0,o.K2)(c,"getTextAnchor"),(0,o.K2)(g,"getTextTransformation"),o.Rm.debug("Rendering xychart chart\n"+t);let u=(0,h.D)(i),x=u.append("g").attr("class","main"),d=x.append("rect").attr("width",r.width).attr("height",r.height).attr("class","background");(0,o.a$)(u,r.height,r.width,!0),u.attr("viewBox",`0 0 ${r.width} ${r.height}`),d.attr("fill",a.backgroundColor),n.setTmpSVGG(u.append("g").attr("class","mermaid-tmp-group"));let p=n.getDrawableElem(),f={};function y(t){let i=x,e="";for(let[s]of t.entries()){let n=x;s>0&&f[e]&&(n=f[e]),e+=t[s],(i=f[e])||(i=f[e]=n.append("g").attr("class",t[s]))}return i}for(let t of((0,o.K2)(y,"getGroup"),p)){if(0===t.data.length)continue;let i=y(t.groupTexts);switch(t.type){case"rect":i.selectAll("rect").data(t.data).enter().append("rect").attr("x",t=>t.x).attr("y",t=>t.y).attr("width",t=>t.width).attr("height",t=>t.height).attr("fill",t=>t.fill).attr("stroke",t=>t.strokeFill).attr("stroke-width",t=>t.strokeWidth);break;case"text":i.selectAll("text").data(t.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",t=>t.fill).attr("font-size",t=>t.fontSize).attr("dominant-baseline",t=>l(t.verticalPos)).attr("text-anchor",t=>c(t.horizontalPos)).attr("transform",t=>g(t)).text(t=>t.text);break;case"path":i.selectAll("path").data(t.data).enter().append("path").attr("d",t=>t.path).attr("fill",t=>t.fill?t.fill:"none").attr("stroke",t=>t.strokeFill).attr("stroke-width",t=>t.strokeWidth)}}},"draw")}}}}]); \ No newline at end of file diff --git a/assets/js/33746.b690ebeb.js b/assets/js/33746.b690ebeb.js new file mode 100644 index 0000000000..61ce9331a0 --- /dev/null +++ b/assets/js/33746.b690ebeb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[33746],{33746:(t,e,i)=>{i.d(e,{diagram:()=>v});var a=i(72912),n=i(89601),s=function(){var t=(0,a.K2)(function(t,e,i,a){for(i=i||{},a=t.length;a--;i[t[a]]=e);return i},"o"),e=[1,3],i=[1,4],n=[1,5],s=[1,6],r=[1,7],l=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],o=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],h=[55,56,57],c=[2,36],d=[1,37],u=[1,36],x=[1,38],g=[1,35],f=[1,43],y=[1,41],p=[1,14],m=[1,23],T=[1,18],q=[1,19],_=[1,20],A=[1,21],b=[1,22],k=[1,24],S=[1,25],F=[1,26],P=[1,27],C=[1,28],v=[1,29],L=[1,32],I=[1,33],E=[1,34],D=[1,39],z=[1,40],K=[1,42],w=[1,44],U=[1,62],N=[1,61],R=[4,5,8,10,12,13,14,18,44,47,49,55,56,57,63,64,65,66,67],B=[1,65],$=[1,66],W=[1,67],O=[1,68],Q=[1,69],X=[1,70],M=[1,71],Y=[1,72],H=[1,73],j=[1,74],G=[1,75],Z=[1,76],V=[4,5,6,7,8,9,10,11,12,13,14,15,18],J=[1,90],tt=[1,91],te=[1,92],ti=[1,99],ta=[1,93],tn=[1,96],ts=[1,94],tr=[1,95],tl=[1,97],to=[1,98],th=[1,102],tc=[10,55,56,57],td=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],tu={trace:(0,a.K2)(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:(0,a.K2)(function(t,e,i,a,n,s,r){var l=s.length-1;switch(n){case 23:case 68:this.$=s[l];break;case 24:case 69:this.$=s[l-1]+""+s[l];break;case 26:this.$=s[l-1]+s[l];break;case 27:this.$=[s[l].trim()];break;case 28:s[l-2].push(s[l].trim()),this.$=s[l-2];break;case 29:this.$=s[l-4],a.addClass(s[l-2],s[l]);break;case 37:this.$=[];break;case 42:this.$=s[l].trim(),a.setDiagramTitle(this.$);break;case 43:this.$=s[l].trim(),a.setAccTitle(this.$);break;case 44:case 45:this.$=s[l].trim(),a.setAccDescription(this.$);break;case 46:a.addSection(s[l].substr(8)),this.$=s[l].substr(8);break;case 47:a.addPoint(s[l-3],"",s[l-1],s[l],[]);break;case 48:a.addPoint(s[l-4],s[l-3],s[l-1],s[l],[]);break;case 49:a.addPoint(s[l-4],"",s[l-2],s[l-1],s[l]);break;case 50:a.addPoint(s[l-5],s[l-4],s[l-2],s[l-1],s[l]);break;case 51:a.setXAxisLeftText(s[l-2]),a.setXAxisRightText(s[l]);break;case 52:s[l-1].text+=" \u27F6 ",a.setXAxisLeftText(s[l-1]);break;case 53:a.setXAxisLeftText(s[l]);break;case 54:a.setYAxisBottomText(s[l-2]),a.setYAxisTopText(s[l]);break;case 55:s[l-1].text+=" \u27F6 ",a.setYAxisBottomText(s[l-1]);break;case 56:a.setYAxisBottomText(s[l]);break;case 57:a.setQuadrant1Text(s[l]);break;case 58:a.setQuadrant2Text(s[l]);break;case 59:a.setQuadrant3Text(s[l]);break;case 60:a.setQuadrant4Text(s[l]);break;case 64:case 66:this.$={text:s[l],type:"text"};break;case 65:this.$={text:s[l-1].text+""+s[l],type:s[l-1].type};break;case 67:this.$={text:s[l],type:"markdown"}}},"anonymous"),table:[{18:e,26:1,27:2,28:i,55:n,56:s,57:r},{1:[3]},{18:e,26:8,27:2,28:i,55:n,56:s,57:r},{18:e,26:9,27:2,28:i,55:n,56:s,57:r},t(l,[2,33],{29:10}),t(o,[2,61]),t(o,[2,62]),t(o,[2,63]),{1:[2,30]},{1:[2,31]},t(h,c,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:d,5:u,10:x,12:g,13:f,14:y,18:p,25:m,35:T,37:q,39:_,41:A,42:b,48:k,50:S,51:F,52:P,53:C,54:v,60:L,61:I,63:E,64:D,65:z,66:K,67:w}),t(l,[2,34]),{27:45,55:n,56:s,57:r},t(h,[2,37]),t(h,c,{24:13,32:15,33:16,34:17,43:30,58:31,31:46,4:d,5:u,10:x,12:g,13:f,14:y,18:p,25:m,35:T,37:q,39:_,41:A,42:b,48:k,50:S,51:F,52:P,53:C,54:v,60:L,61:I,63:E,64:D,65:z,66:K,67:w}),t(h,[2,39]),t(h,[2,40]),t(h,[2,41]),{36:[1,47]},{38:[1,48]},{40:[1,49]},t(h,[2,45]),t(h,[2,46]),{18:[1,50]},{4:d,5:u,10:x,12:g,13:f,14:y,43:51,58:31,60:L,61:I,63:E,64:D,65:z,66:K,67:w},{4:d,5:u,10:x,12:g,13:f,14:y,43:52,58:31,60:L,61:I,63:E,64:D,65:z,66:K,67:w},{4:d,5:u,10:x,12:g,13:f,14:y,43:53,58:31,60:L,61:I,63:E,64:D,65:z,66:K,67:w},{4:d,5:u,10:x,12:g,13:f,14:y,43:54,58:31,60:L,61:I,63:E,64:D,65:z,66:K,67:w},{4:d,5:u,10:x,12:g,13:f,14:y,43:55,58:31,60:L,61:I,63:E,64:D,65:z,66:K,67:w},{4:d,5:u,10:x,12:g,13:f,14:y,43:56,58:31,60:L,61:I,63:E,64:D,65:z,66:K,67:w},{4:d,5:u,8:U,10:x,12:g,13:f,14:y,18:N,44:[1,57],47:[1,58],58:60,59:59,63:E,64:D,65:z,66:K,67:w},t(R,[2,64]),t(R,[2,66]),t(R,[2,67]),t(R,[2,70]),t(R,[2,71]),t(R,[2,72]),t(R,[2,73]),t(R,[2,74]),t(R,[2,75]),t(R,[2,76]),t(R,[2,77]),t(R,[2,78]),t(R,[2,79]),t(R,[2,80]),t(l,[2,35]),t(h,[2,38]),t(h,[2,42]),t(h,[2,43]),t(h,[2,44]),{3:64,4:B,5:$,6:W,7:O,8:Q,9:X,10:M,11:Y,12:H,13:j,14:G,15:Z,21:63},t(h,[2,53],{59:59,58:60,4:d,5:u,8:U,10:x,12:g,13:f,14:y,18:N,49:[1,77],63:E,64:D,65:z,66:K,67:w}),t(h,[2,56],{59:59,58:60,4:d,5:u,8:U,10:x,12:g,13:f,14:y,18:N,49:[1,78],63:E,64:D,65:z,66:K,67:w}),t(h,[2,57],{59:59,58:60,4:d,5:u,8:U,10:x,12:g,13:f,14:y,18:N,63:E,64:D,65:z,66:K,67:w}),t(h,[2,58],{59:59,58:60,4:d,5:u,8:U,10:x,12:g,13:f,14:y,18:N,63:E,64:D,65:z,66:K,67:w}),t(h,[2,59],{59:59,58:60,4:d,5:u,8:U,10:x,12:g,13:f,14:y,18:N,63:E,64:D,65:z,66:K,67:w}),t(h,[2,60],{59:59,58:60,4:d,5:u,8:U,10:x,12:g,13:f,14:y,18:N,63:E,64:D,65:z,66:K,67:w}),{45:[1,79]},{44:[1,80]},t(R,[2,65]),t(R,[2,81]),t(R,[2,82]),t(R,[2,83]),{3:82,4:B,5:$,6:W,7:O,8:Q,9:X,10:M,11:Y,12:H,13:j,14:G,15:Z,18:[1,81]},t(V,[2,23]),t(V,[2,1]),t(V,[2,2]),t(V,[2,3]),t(V,[2,4]),t(V,[2,5]),t(V,[2,6]),t(V,[2,7]),t(V,[2,8]),t(V,[2,9]),t(V,[2,10]),t(V,[2,11]),t(V,[2,12]),t(h,[2,52],{58:31,43:83,4:d,5:u,10:x,12:g,13:f,14:y,60:L,61:I,63:E,64:D,65:z,66:K,67:w}),t(h,[2,55],{58:31,43:84,4:d,5:u,10:x,12:g,13:f,14:y,60:L,61:I,63:E,64:D,65:z,66:K,67:w}),{46:[1,85]},{45:[1,86]},{4:J,5:tt,6:te,8:ti,11:ta,13:tn,16:89,17:ts,18:tr,19:tl,20:to,22:88,23:87},t(V,[2,24]),t(h,[2,51],{59:59,58:60,4:d,5:u,8:U,10:x,12:g,13:f,14:y,18:N,63:E,64:D,65:z,66:K,67:w}),t(h,[2,54],{59:59,58:60,4:d,5:u,8:U,10:x,12:g,13:f,14:y,18:N,63:E,64:D,65:z,66:K,67:w}),t(h,[2,47],{22:88,16:89,23:100,4:J,5:tt,6:te,8:ti,11:ta,13:tn,17:ts,18:tr,19:tl,20:to}),{46:[1,101]},t(h,[2,29],{10:th}),t(tc,[2,27],{16:103,4:J,5:tt,6:te,8:ti,11:ta,13:tn,17:ts,18:tr,19:tl,20:to}),t(td,[2,25]),t(td,[2,13]),t(td,[2,14]),t(td,[2,15]),t(td,[2,16]),t(td,[2,17]),t(td,[2,18]),t(td,[2,19]),t(td,[2,20]),t(td,[2,21]),t(td,[2,22]),t(h,[2,49],{10:th}),t(h,[2,48],{22:88,16:89,23:104,4:J,5:tt,6:te,8:ti,11:ta,13:tn,17:ts,18:tr,19:tl,20:to}),{4:J,5:tt,6:te,8:ti,11:ta,13:tn,16:89,17:ts,18:tr,19:tl,20:to,22:105},t(td,[2,26]),t(h,[2,50],{10:th}),t(tc,[2,28],{16:103,4:J,5:tt,6:te,8:ti,11:ta,13:tn,17:ts,18:tr,19:tl,20:to})],defaultActions:{8:[2,30],9:[2,31]},parseError:(0,a.K2)(function(t,e){if(e.recoverable)this.trace(t);else{var i=Error(t);throw i.hash=e,i}},"parseError"),parse:(0,a.K2)(function(t){var e=this,i=[0],n=[],s=[null],r=[],l=this.table,o="",h=0,c=0,d=0,u=r.slice.call(arguments,1),x=Object.create(this.lexer),g={yy:{}};for(var f in this.yy)Object.prototype.hasOwnProperty.call(this.yy,f)&&(g.yy[f]=this.yy[f]);x.setInput(t,g.yy),g.yy.lexer=x,g.yy.parser=this,void 0===x.yylloc&&(x.yylloc={});var y=x.yylloc;r.push(y);var p=x.options&&x.options.ranges;function m(){var t;return"number"!=typeof(t=n.pop()||x.lex()||1)&&(t instanceof Array&&(t=(n=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,a.K2)(function(t){i.length=i.length-2*t,s.length=s.length-t,r.length=r.length-t},"popStack"),(0,a.K2)(m,"lex");for(var T,q,_,A,b,k,S,F,P,C={};;){if(_=i[i.length-1],this.defaultActions[_]?A=this.defaultActions[_]:(null==T&&(T=m()),A=l[_]&&l[_][T]),void 0===A||!A.length||!A[0]){var v="";for(k in P=[],l[_])this.terminals_[k]&&k>2&&P.push("'"+this.terminals_[k]+"'");v=x.showPosition?"Parse error on line "+(h+1)+":\n"+x.showPosition()+"\nExpecting "+P.join(", ")+", got '"+(this.terminals_[T]||T)+"'":"Parse error on line "+(h+1)+": Unexpected "+(1==T?"end of input":"'"+(this.terminals_[T]||T)+"'"),this.parseError(v,{text:x.match,token:this.terminals_[T]||T,line:x.yylineno,loc:y,expected:P})}if(A[0]instanceof Array&&A.length>1)throw Error("Parse Error: multiple actions possible at state: "+_+", token: "+T);switch(A[0]){case 1:i.push(T),s.push(x.yytext),r.push(x.yylloc),i.push(A[1]),T=null,q?(T=q,q=null):(c=x.yyleng,o=x.yytext,h=x.yylineno,y=x.yylloc,d>0&&d--);break;case 2:if(S=this.productions_[A[1]][1],C.$=s[s.length-S],C._$={first_line:r[r.length-(S||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(S||1)].first_column,last_column:r[r.length-1].last_column},p&&(C._$.range=[r[r.length-(S||1)].range[0],r[r.length-1].range[1]]),void 0!==(b=this.performAction.apply(C,[o,c,h,g.yy,A[1],s,r].concat(u))))return b;S&&(i=i.slice(0,-1*S*2),s=s.slice(0,-1*S),r=r.slice(0,-1*S)),i.push(this.productions_[A[1]][0]),s.push(C.$),r.push(C._$),F=l[i[i.length-2]][i[i.length-1]],i.push(F);break;case 3:return!0}}return!0},"parse")},tx={EOF:1,parseError:(0,a.K2)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,a.K2)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,a.K2)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,a.K2)(function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var a=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===a.length?this.yylloc.first_column:0)+a[a.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,a.K2)(function(){return this._more=!0,this},"more"),reject:(0,a.K2)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,a.K2)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,a.K2)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,a.K2)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,a.K2)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,a.K2)(function(t,e){var i,a,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(a=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=a.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:a?a[a.length-1].length-a[a.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var s in n)this[s]=n[s];return!1},"test_match"),next:(0,a.K2)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,i,a,n=this._currentRules(),s=0;s<n.length;s++)if((i=this._input.match(this.rules[n[s]]))&&(!e||i[0].length>e[0].length)){if(e=i,a=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,n[s])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[a]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,a.K2)(function(){return this.next()||this.lex()},"lex"),begin:(0,a.K2)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,a.K2)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,a.K2)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,a.K2)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,a.K2)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,a.K2)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,a.K2)(function(t,e,i,a){switch(i){case 0:case 1:case 3:break;case 2:return 55;case 4:return this.begin("title"),35;case 5:return this.popState(),"title_value";case 6:return this.begin("acc_title"),37;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),39;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 23:case 25:case 31:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 48;case 14:return 50;case 15:return 49;case 16:return 51;case 17:return 52;case 18:return 53;case 19:return 54;case 20:return 25;case 21:this.begin("md_string");break;case 22:return"MD_STR";case 24:this.begin("string");break;case 26:return"STR";case 27:this.begin("class_name");break;case 28:return this.popState(),47;case 29:return this.begin("point_start"),44;case 30:return this.begin("point_x"),45;case 32:this.popState(),this.begin("point_y");break;case 33:return this.popState(),46;case 34:return 28;case 35:return 4;case 36:return 11;case 37:return 64;case 38:return 10;case 39:case 40:return 65;case 41:return 14;case 42:return 13;case 43:return 67;case 44:return 66;case 45:return 12;case 46:return 8;case 47:return 5;case 48:return 18;case 49:return 56;case 50:return 63;case 51:return 57}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:classDef\b)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?::::)/i,/^(?:^\w+)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{class_name:{rules:[28],inclusive:!1},point_y:{rules:[33],inclusive:!1},point_x:{rules:[32],inclusive:!1},point_start:{rules:[30,31],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[22,23],inclusive:!1},string:{rules:[25,26],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,21,24,27,29,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],inclusive:!0}}};function tg(){this.yy={}}return tu.lexer=tx,(0,a.K2)(tg,"Parser"),tg.prototype=tu,tu.Parser=tg,new tg}();s.parser=s;var r=(0,a.P$)(),l=class{constructor(){this.classes=new Map,this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}static{(0,a.K2)(this,"QuadrantBuilder")}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:a.UI.quadrantChart?.chartWidth||500,chartWidth:a.UI.quadrantChart?.chartHeight||500,titlePadding:a.UI.quadrantChart?.titlePadding||10,titleFontSize:a.UI.quadrantChart?.titleFontSize||20,quadrantPadding:a.UI.quadrantChart?.quadrantPadding||5,xAxisLabelPadding:a.UI.quadrantChart?.xAxisLabelPadding||5,yAxisLabelPadding:a.UI.quadrantChart?.yAxisLabelPadding||5,xAxisLabelFontSize:a.UI.quadrantChart?.xAxisLabelFontSize||16,yAxisLabelFontSize:a.UI.quadrantChart?.yAxisLabelFontSize||16,quadrantLabelFontSize:a.UI.quadrantChart?.quadrantLabelFontSize||16,quadrantTextTopPadding:a.UI.quadrantChart?.quadrantTextTopPadding||5,pointTextPadding:a.UI.quadrantChart?.pointTextPadding||5,pointLabelFontSize:a.UI.quadrantChart?.pointLabelFontSize||12,pointRadius:a.UI.quadrantChart?.pointRadius||5,xAxisPosition:a.UI.quadrantChart?.xAxisPosition||"top",yAxisPosition:a.UI.quadrantChart?.yAxisPosition||"left",quadrantInternalBorderStrokeWidth:a.UI.quadrantChart?.quadrantInternalBorderStrokeWidth||1,quadrantExternalBorderStrokeWidth:a.UI.quadrantChart?.quadrantExternalBorderStrokeWidth||2}}getDefaultThemeConfig(){return{quadrant1Fill:r.quadrant1Fill,quadrant2Fill:r.quadrant2Fill,quadrant3Fill:r.quadrant3Fill,quadrant4Fill:r.quadrant4Fill,quadrant1TextFill:r.quadrant1TextFill,quadrant2TextFill:r.quadrant2TextFill,quadrant3TextFill:r.quadrant3TextFill,quadrant4TextFill:r.quadrant4TextFill,quadrantPointFill:r.quadrantPointFill,quadrantPointTextFill:r.quadrantPointTextFill,quadrantXAxisTextFill:r.quadrantXAxisTextFill,quadrantYAxisTextFill:r.quadrantYAxisTextFill,quadrantTitleFill:r.quadrantTitleFill,quadrantInternalBorderStrokeFill:r.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:r.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),this.classes=new Map,a.Rm.info("clear called")}setData(t){this.data={...this.data,...t}}addPoints(t){this.data.points=[...t,...this.data.points]}addClass(t,e){this.classes.set(t,e)}setConfig(t){a.Rm.trace("setConfig called with: ",t),this.config={...this.config,...t}}setThemeConfig(t){a.Rm.trace("setThemeConfig called with: ",t),this.themeConfig={...this.themeConfig,...t}}calculateSpace(t,e,i,a){let n=2*this.config.xAxisLabelPadding+this.config.xAxisLabelFontSize,s={top:"top"===t&&e?n:0,bottom:"bottom"===t&&e?n:0},r=2*this.config.yAxisLabelPadding+this.config.yAxisLabelFontSize,l={left:"left"===this.config.yAxisPosition&&i?r:0,right:"right"===this.config.yAxisPosition&&i?r:0},o=this.config.titleFontSize+2*this.config.titlePadding,h={top:a?o:0},c=this.config.quadrantPadding+l.left,d=this.config.quadrantPadding+s.top+h.top,u=this.config.chartWidth-2*this.config.quadrantPadding-l.left-l.right,x=this.config.chartHeight-2*this.config.quadrantPadding-s.top-s.bottom-h.top;return{xAxisSpace:s,yAxisSpace:l,titleSpace:h,quadrantSpace:{quadrantLeft:c,quadrantTop:d,quadrantWidth:u,quadrantHalfWidth:u/2,quadrantHeight:x,quadrantHalfHeight:x/2}}}getAxisLabels(t,e,i,a){let{quadrantSpace:n,titleSpace:s}=a,{quadrantHalfHeight:r,quadrantHeight:l,quadrantLeft:o,quadrantHalfWidth:h,quadrantTop:c,quadrantWidth:d}=n,u=!!this.data.xAxisRightText,x=!!this.data.yAxisTopText,g=[];return this.data.xAxisLeftText&&e&&g.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:o+(u?h/2:0),y:"top"===t?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+c+l+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:u?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&e&&g.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:o+h+(u?h/2:0),y:"top"===t?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+c+l+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:u?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&i&&g.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:"left"===this.config.yAxisPosition?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+o+d+this.config.quadrantPadding,y:c+l-(x?r/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:x?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&i&&g.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:"left"===this.config.yAxisPosition?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+o+d+this.config.quadrantPadding,y:c+r-(x?r/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:x?"center":"left",horizontalPos:"top",rotation:-90}),g}getQuadrants(t){let{quadrantSpace:e}=t,{quadrantHalfHeight:i,quadrantLeft:a,quadrantHalfWidth:n,quadrantTop:s}=e,r=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a+n,y:s,width:n,height:i,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a,y:s,width:n,height:i,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a,y:s+i,width:n,height:i,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a+n,y:s+i,width:n,height:i,fill:this.themeConfig.quadrant4Fill}];for(let t of r)t.text.x=t.x+t.width/2,0===this.data.points.length?(t.text.y=t.y+t.height/2,t.text.horizontalPos="middle"):(t.text.y=t.y+this.config.quadrantTextTopPadding,t.text.horizontalPos="top");return r}getQuadrantPoints(t){let{quadrantSpace:e}=t,{quadrantHeight:i,quadrantLeft:a,quadrantTop:s,quadrantWidth:r}=e,l=(0,n.m4Y)().domain([0,1]).range([a,r+a]),o=(0,n.m4Y)().domain([0,1]).range([i+s,s]);return this.data.points.map(t=>{let e=this.classes.get(t.className);return e&&(t={...e,...t}),{x:l(t.x),y:o(t.y),fill:t.color??this.themeConfig.quadrantPointFill,radius:t.radius??this.config.pointRadius,text:{text:t.text,fill:this.themeConfig.quadrantPointTextFill,x:l(t.x),y:o(t.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0},strokeColor:t.strokeColor??this.themeConfig.quadrantPointFill,strokeWidth:t.strokeWidth??"0px"}})}getBorders(t){let e=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:i}=t,{quadrantHalfHeight:a,quadrantHeight:n,quadrantLeft:s,quadrantHalfWidth:r,quadrantTop:l,quadrantWidth:o}=i;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-e,y1:l,x2:s+o+e,y2:l},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s+o,y1:l+e,x2:s+o,y2:l+n-e},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-e,y1:l+n,x2:s+o+e,y2:l+n},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s,y1:l+e,x2:s,y2:l+n-e},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+r,y1:l+e,x2:s+r,y2:l+n-e},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+e,y1:l+a,x2:s+o-e,y2:l+a}]}getTitle(t){if(t)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){let t=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),e=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),i=this.config.showTitle&&!!this.data.titleText,a=this.data.points.length>0?"bottom":this.config.xAxisPosition,n=this.calculateSpace(a,t,e,i);return{points:this.getQuadrantPoints(n),quadrants:this.getQuadrants(n),axisLabels:this.getAxisLabels(a,t,e,n),borderLines:this.getBorders(n),title:this.getTitle(i)}}},o=class extends Error{static{(0,a.K2)(this,"InvalidStyleError")}constructor(t,e,i){super(`value for ${t} ${e} is invalid, please use a valid ${i}`),this.name="InvalidStyleError"}};function h(t){return!/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/.test(t)}function c(t){return!/^\d+$/.test(t)}function d(t){return!/^\d+px$/.test(t)}(0,a.K2)(h,"validateHexCode"),(0,a.K2)(c,"validateNumber"),(0,a.K2)(d,"validateSizeInPixels");var u=(0,a.D7)();function x(t){return(0,a.jZ)(t.trim(),u)}(0,a.K2)(x,"textSanitizer");var g=new l;function f(t){g.setData({quadrant1Text:x(t.text)})}function y(t){g.setData({quadrant2Text:x(t.text)})}function p(t){g.setData({quadrant3Text:x(t.text)})}function m(t){g.setData({quadrant4Text:x(t.text)})}function T(t){g.setData({xAxisLeftText:x(t.text)})}function q(t){g.setData({xAxisRightText:x(t.text)})}function _(t){g.setData({yAxisTopText:x(t.text)})}function A(t){g.setData({yAxisBottomText:x(t.text)})}function b(t){let e={};for(let i of t){let[t,a]=i.trim().split(/\s*:\s*/);if("radius"===t){if(c(a))throw new o(t,a,"number");e.radius=parseInt(a)}else if("color"===t){if(h(a))throw new o(t,a,"hex code");e.color=a}else if("stroke-color"===t){if(h(a))throw new o(t,a,"hex code");e.strokeColor=a}else if("stroke-width"===t){if(d(a))throw new o(t,a,"number of pixels (eg. 10px)");e.strokeWidth=a}else throw Error(`style named ${t} is not supported.`)}return e}function k(t,e,i,a,n){let s=b(n);g.addPoints([{x:i,y:a,text:x(t.text),className:e,...s}])}function S(t,e){g.addClass(t,b(e))}function F(t){g.setConfig({chartWidth:t})}function P(t){g.setConfig({chartHeight:t})}function C(){let{themeVariables:t,quadrantChart:e}=(0,a.D7)();return e&&g.setConfig(e),g.setThemeConfig({quadrant1Fill:t.quadrant1Fill,quadrant2Fill:t.quadrant2Fill,quadrant3Fill:t.quadrant3Fill,quadrant4Fill:t.quadrant4Fill,quadrant1TextFill:t.quadrant1TextFill,quadrant2TextFill:t.quadrant2TextFill,quadrant3TextFill:t.quadrant3TextFill,quadrant4TextFill:t.quadrant4TextFill,quadrantPointFill:t.quadrantPointFill,quadrantPointTextFill:t.quadrantPointTextFill,quadrantXAxisTextFill:t.quadrantXAxisTextFill,quadrantYAxisTextFill:t.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:t.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:t.quadrantInternalBorderStrokeFill,quadrantTitleFill:t.quadrantTitleFill}),g.setData({titleText:(0,a.ab)()}),g.build()}(0,a.K2)(f,"setQuadrant1Text"),(0,a.K2)(y,"setQuadrant2Text"),(0,a.K2)(p,"setQuadrant3Text"),(0,a.K2)(m,"setQuadrant4Text"),(0,a.K2)(T,"setXAxisLeftText"),(0,a.K2)(q,"setXAxisRightText"),(0,a.K2)(_,"setYAxisTopText"),(0,a.K2)(A,"setYAxisBottomText"),(0,a.K2)(b,"parseStyles"),(0,a.K2)(k,"addPoint"),(0,a.K2)(S,"addClass"),(0,a.K2)(F,"setWidth"),(0,a.K2)(P,"setHeight"),(0,a.K2)(C,"getQuadrantData");var v={parser:s,db:{setWidth:F,setHeight:P,setQuadrant1Text:f,setQuadrant2Text:y,setQuadrant3Text:p,setQuadrant4Text:m,setXAxisLeftText:T,setXAxisRightText:q,setYAxisTopText:_,setYAxisBottomText:A,parseStyles:b,addPoint:k,addClass:S,getQuadrantData:C,clear:(0,a.K2)(function(){g.clear(),(0,a.IU)()},"clear"),setAccTitle:a.SV,getAccTitle:a.iN,setDiagramTitle:a.ke,getDiagramTitle:a.ab,getAccDescription:a.m7,setAccDescription:a.EI},renderer:{draw:(0,a.K2)((t,e,i,s)=>{let r;function l(t){return"top"===t?"hanging":"middle"}function o(t){return"left"===t?"start":"middle"}function h(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}(0,a.K2)(l,"getDominantBaseLine"),(0,a.K2)(o,"getTextAnchor"),(0,a.K2)(h,"getTransformation");let c=(0,a.D7)();a.Rm.debug("Rendering quadrant chart\n"+t);let d=c.securityLevel;"sandbox"===d&&(r=(0,n.Ltv)("#i"+e));let u=("sandbox"===d?(0,n.Ltv)(r.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id="${e}"]`),x=u.append("g").attr("class","main"),g=c.quadrantChart?.chartWidth??500,f=c.quadrantChart?.chartHeight??500;(0,a.a$)(u,f,g,c.quadrantChart?.useMaxWidth??!0),u.attr("viewBox","0 0 "+g+" "+f),s.db.setHeight(f),s.db.setWidth(g);let y=s.db.getQuadrantData(),p=x.append("g").attr("class","quadrants"),m=x.append("g").attr("class","border"),T=x.append("g").attr("class","data-points"),q=x.append("g").attr("class","labels"),_=x.append("g").attr("class","title");y.title&&_.append("text").attr("x",0).attr("y",0).attr("fill",y.title.fill).attr("font-size",y.title.fontSize).attr("dominant-baseline",l(y.title.horizontalPos)).attr("text-anchor",o(y.title.verticalPos)).attr("transform",h(y.title)).text(y.title.text),y.borderLines&&m.selectAll("line").data(y.borderLines).enter().append("line").attr("x1",t=>t.x1).attr("y1",t=>t.y1).attr("x2",t=>t.x2).attr("y2",t=>t.y2).style("stroke",t=>t.strokeFill).style("stroke-width",t=>t.strokeWidth);let A=p.selectAll("g.quadrant").data(y.quadrants).enter().append("g").attr("class","quadrant");A.append("rect").attr("x",t=>t.x).attr("y",t=>t.y).attr("width",t=>t.width).attr("height",t=>t.height).attr("fill",t=>t.fill),A.append("text").attr("x",0).attr("y",0).attr("fill",t=>t.text.fill).attr("font-size",t=>t.text.fontSize).attr("dominant-baseline",t=>l(t.text.horizontalPos)).attr("text-anchor",t=>o(t.text.verticalPos)).attr("transform",t=>h(t.text)).text(t=>t.text.text),q.selectAll("g.label").data(y.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(t=>t.text).attr("fill",t=>t.fill).attr("font-size",t=>t.fontSize).attr("dominant-baseline",t=>l(t.horizontalPos)).attr("text-anchor",t=>o(t.verticalPos)).attr("transform",t=>h(t));let b=T.selectAll("g.data-point").data(y.points).enter().append("g").attr("class","data-point");b.append("circle").attr("cx",t=>t.x).attr("cy",t=>t.y).attr("r",t=>t.radius).attr("fill",t=>t.fill).attr("stroke",t=>t.strokeColor).attr("stroke-width",t=>t.strokeWidth),b.append("text").attr("x",0).attr("y",0).text(t=>t.text.text).attr("fill",t=>t.text.fill).attr("font-size",t=>t.text.fontSize).attr("dominant-baseline",t=>l(t.text.horizontalPos)).attr("text-anchor",t=>o(t.text.verticalPos)).attr("transform",t=>h(t.text))},"draw")},styles:(0,a.K2)(()=>"","styles")}}}]); \ No newline at end of file diff --git a/assets/js/33a17176.65683eff.js b/assets/js/33a17176.d324da73.js similarity index 93% rename from assets/js/33a17176.65683eff.js rename to assets/js/33a17176.d324da73.js index 457bb94842..8c651eb685 100644 --- a/assets/js/33a17176.65683eff.js +++ b/assets/js/33a17176.d324da73.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[92672],{94634:(e,t,s)=>{s.d(t,{A:()=>a});let a=s.p+"assets/images/social-card-e1b6e0c51be29d4ab2d4c966d220410c.png"},65223:(e,t,s)=>{s.d(t,{A:()=>a});let a=s.p+"assets/images/social-card-e1b6e0c51be29d4ab2d4c966d220410c.png"},43358:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var a=s(13980),r=s(62540),n=s(43023);let o={title:"Docusaurus 3.1",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2024-01-05T00:00:00.000Z")},i=void 0,c={image:s(94634).A,authorsImageUrls:[void 0]},l=[];function u(e){let t={a:"a",img:"img",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["We are happy to announce ",(0,r.jsx)(t.strong,{children:"Docusaurus 3.1"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["The upgrade should be easy: as explained in our ",(0,r.jsx)(t.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,r.jsx)(t.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Docusaurus blog post social card",src:s(65223).A+"",width:"1200",height:"600"})})]})}function d(e={}){let{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},43023:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>i});var a=s(63696);let r={},n=a.createContext(r);function o(e){let t=a.useContext(n);return a.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(n.Provider,{value:t},e.children)}},13980:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/3.1","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.1/index.mdx","source":"@site/blog/releases/3.1/index.mdx","title":"Docusaurus 3.1","description":"We are happy to announce Docusaurus 3.1.","date":"2024-01-05T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":1.665,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.1","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-01-05T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 3.2","permalink":"/blog/releases/3.2"},"nextItem":{"title":"Announcing Docusaurus 3.0","permalink":"/blog/releases/3.0"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[92672],{94634:(e,t,s)=>{s.d(t,{A:()=>a});let a=s.p+"assets/images/social-card-e1b6e0c51be29d4ab2d4c966d220410c.png"},65223:(e,t,s)=>{s.d(t,{A:()=>a});let a=s.p+"assets/images/social-card-e1b6e0c51be29d4ab2d4c966d220410c.png"},43358:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var a=s(13980),r=s(62540),n=s(43023);let o={title:"Docusaurus 3.1",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2024-01-05T00:00:00.000Z")},i=void 0,c={image:s(94634).A,authorsImageUrls:[void 0]},l=[];function u(e){let t={a:"a",img:"img",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["We are happy to announce ",(0,r.jsx)(t.strong,{children:"Docusaurus 3.1"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["The upgrade should be easy: as explained in our ",(0,r.jsx)(t.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,r.jsx)(t.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Docusaurus blog post social card",src:s(65223).A+"",width:"1200",height:"600"})})]})}function d(e={}){let{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},43023:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>i});var a=s(63696);let r={},n=a.createContext(r);function o(e){let t=a.useContext(n);return a.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(n.Provider,{value:t},e.children)}},13980:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/3.1","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.1/index.mdx","source":"@site/blog/releases/3.1/index.mdx","title":"Docusaurus 3.1","description":"We are happy to announce Docusaurus 3.1.","date":"2024-01-05T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":1.665,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.1","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-01-05T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 3.2","permalink":"/blog/releases/3.2"},"nextItem":{"title":"Announcing Docusaurus 3.0","permalink":"/blog/releases/3.0"}}')}}]); \ No newline at end of file diff --git a/assets/js/33bfb584.73e8977e.js b/assets/js/33bfb584.26ee4057.js similarity index 50% rename from assets/js/33bfb584.73e8977e.js rename to assets/js/33bfb584.26ee4057.js index a5079ba813..0424528525 100644 --- a/assets/js/33bfb584.73e8977e.js +++ b/assets/js/33bfb584.26ee4057.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[57998],{15995:(e,n,r)=>{r.d(n,{A:()=>l});var t=r(62540);r(63696);var s=r(11750);function l({children:e,hidden:n,className:r}){return(0,t.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_pnkT",r),hidden:n,children:e})}},27446:(e,n,r)=>{r.d(n,{A:()=>v});var t=r(62540),s=r(63696),l=r(11750),i=r(7846),a=r(49519),o=r(96439),u=r(19739),c=r(66904),d=r(79244);function p(e){var n,r;return null!==(r=null===(n=s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==r?r:[]}function h({value:e,tabValues:n}){return n.some(n=>n.value===e)}var m=r(10709);function f(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.forEach(function(n){var t;t=r[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}function g(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r})(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))}),e}function b({className:e,block:n,selectedValue:r,selectValue:s,tabValues:a}){let o=[],{blockElementScrollPositionUntilNextRender:u}=(0,i.a_)(),c=e=>{let n=e.currentTarget,t=a[o.indexOf(n)].value;t!==r&&(u(n),s(t))},d=e=>{var n,r;let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{let r=o.indexOf(e.currentTarget)+1;t=null!==(n=o[r])&&void 0!==n?n:o[0];break}case"ArrowLeft":{let n=o.indexOf(e.currentTarget)-1;t=null!==(r=o[n])&&void 0!==r?r:o[o.length-1]}}null==t||t.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":n},e),children:a.map(({value:e,label:n,attributes:s})=>(0,t.jsx)("li",g(f({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,ref:e=>o.push(e),onKeyDown:d,onClick:c},s),{className:(0,l.A)("tabs__item","tabItem_AQgk",null==s?void 0:s.className,{"tabs__item--active":r===e}),children:null!=n?n:e}),e))})}function j({lazy:e,children:n,selectedValue:r}){let i=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=i.find(e=>e.props.value===r);return e?(0,s.cloneElement)(e,{className:(0,l.A)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:i.map((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==r}))})}function x(e){let n=function(e){let{defaultValue:n,queryString:r=!1,groupId:t}=e,l=function(e){let{values:n,children:r}=e;return(0,s.useMemo)(()=>{let e=null!=n?n:p(r).map(({props:{value:e,label:n,attributes:r,default:t}})=>({value:e,label:n,attributes:r,default:t}));return!function(e){let n=(0,c.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,r])}(e),[i,m]=(0,s.useState)(()=>(function({defaultValue:e,tabValues:n}){var r;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!h({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let t=null!==(r=n.find(e=>e.default))&&void 0!==r?r:n[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:n,tabValues:l})),[f,g]=function({queryString:e=!1,groupId:n}){let r=(0,a.W6)(),t=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,u.aZ)(t),(0,s.useCallback)(e=>{var n,s;if(!t)return;let l=new URLSearchParams(r.location.search);l.set(t,e),r.replace((n=function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.forEach(function(n){var t;t=r[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}({},r.location),s=s={search:l.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(s)):(function(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r})(Object(s)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(s,e))}),n))},[t,r])]}({queryString:r,groupId:t}),[b,j]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[r,t]=(0,d.Dv)(n);return[r,(0,s.useCallback)(e=>{n&&t.set(e)},[n,t])]}({groupId:t}),x=(()=>{let e=null!=f?f:b;return h({value:e,tabValues:l})?e:null})();return(0,o.A)(()=>{x&&m(x)},[x]),{selectedValue:i,selectValue:(0,s.useCallback)(e=>{if(!h({value:e,tabValues:l}))throw Error(`Can't select invalid tab value=${e}`);m(e),g(e),j(e)},[g,j,l]),tabValues:l}}(e);return(0,t.jsxs)("div",{className:(0,l.A)("tabs-container","tabList_Qoir"),children:[(0,t.jsx)(b,f({},n,e)),(0,t.jsx)(j,f({},n,e))]})}function v(e){let n=(0,m.A)();return(0,t.jsx)(x,g(f({},e),{children:p(e.children)}),String(n))}},90099:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>u,default:()=>h,frontMatter:()=>o,metadata:()=>t,toc:()=>d});let t=JSON.parse('{"id":"api/misc/eslint-plugin/README","title":"\u{1F4E6} eslint-plugin","description":"ESLint is a tool that statically analyzes your code and reports problems or suggests best practices through editor hints and command line. Docusaurus provides an ESLint plugin to enforce best Docusaurus practices.","source":"@site/docs/api/misc/eslint-plugin/README.mdx","sourceDirName":"api/misc/eslint-plugin","slug":"/api/misc/@docusaurus/eslint-plugin","permalink":"/docs/api/misc/@docusaurus/eslint-plugin","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/eslint-plugin/README.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1,"slug":"/api/misc/@docusaurus/eslint-plugin"},"sidebar":"api","previous":{"title":"\u{1F4E6} create-docusaurus","permalink":"/docs/api/misc/create-docusaurus"},"next":{"title":"no-html-links","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/no-html-links"}}');var s=r(62540),l=r(43023),i=r(27446),a=r(15995);let o={sidebar_position:1,slug:"/api/misc/@docusaurus/eslint-plugin"},u="\u{1F4E6} eslint-plugin",c={},d=[{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2},{value:"Recommended config",id:"recommended-config",level:3},{value:"Manual config",id:"manual-config",level:3},{value:"Supported configs",id:"supported-configs",level:2},{value:"Supported rules",id:"supported-rules",level:2},{value:"Example configuration",id:"example-configuration",level:2}];function p(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"-eslint-plugin",children:"\u{1F4E6} eslint-plugin"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://eslint.org/",children:"ESLint"})," is a tool that statically analyzes your code and reports problems or suggests best practices through editor hints and command line. Docusaurus provides an ESLint plugin to enforce best Docusaurus practices."]}),"\n",(0,s.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,s.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,s.jsx)(a.A,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm install --save-dev @docusaurus/eslint-plugin\n"})})}),(0,s.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn add --dev @docusaurus/eslint-plugin\n"})})}),(0,s.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm add --save-dev @docusaurus/eslint-plugin\n"})})})]}),"\n",(0,s.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsx)(n.h3,{id:"recommended-config",children:"Recommended config"}),"\n",(0,s.jsxs)(n.p,{children:["Add ",(0,s.jsx)(n.code,{children:"plugin:@docusaurus/recommended"})," to the ",(0,s.jsx)(n.code,{children:"extends"})," section of your ",(0,s.jsx)(n.code,{children:".eslintrc"})," configuration file:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",metastring:'title=".eslintrc"',children:'{\n "extends": ["plugin:@docusaurus/recommended"]\n}\n'})}),"\n",(0,s.jsxs)(n.p,{children:["This will enable the ",(0,s.jsx)(n.code,{children:"@docusaurus"})," eslint plugin and use the ",(0,s.jsx)(n.code,{children:"recommended"})," config. See ",(0,s.jsx)(n.a,{href:"#supported-rules",children:"Supported rules"})," below for a list of rules that this will enable."]}),"\n",(0,s.jsx)(n.h3,{id:"manual-config",children:"Manual config"}),"\n",(0,s.jsx)(n.p,{children:"For more fine-grained control, you can also enable the plugin manually and configure the rules you want to use directly:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",metastring:'title=".eslintrc"',children:'{\n "plugins": ["@docusaurus"],\n "rules": {\n "@docusaurus/string-literal-i18n-messages": "error",\n "@docusaurus/no-untranslated-text": "warn"\n }\n}\n'})}),"\n",(0,s.jsx)(n.h2,{id:"supported-configs",children:"Supported configs"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Recommended: recommended rule set for most Docusaurus sites that should be extended from."}),"\n",(0,s.jsxs)(n.li,{children:["All: ",(0,s.jsx)(n.strong,{children:"all"})," rules enabled. This will change between minor versions, so you should not use this if you want to avoid unexpected breaking changes."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"supported-rules",children:"Supported rules"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Description"}),(0,s.jsx)(n.th,{})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"/docs/api/misc/@docusaurus/eslint-plugin/no-untranslated-text",children:(0,s.jsx)(n.code,{children:"@docusaurus/no-untranslated-text"})})}),(0,s.jsx)(n.td,{children:"Enforce text labels in JSX to be wrapped by translate calls"}),(0,s.jsx)(n.td,{})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"/docs/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages",children:(0,s.jsx)(n.code,{children:"@docusaurus/string-literal-i18n-messages"})})}),(0,s.jsx)(n.td,{children:"Enforce translate APIs to be called on plain text labels"}),(0,s.jsx)(n.td,{children:"\u2705"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"/docs/api/misc/@docusaurus/eslint-plugin/no-html-links",children:(0,s.jsx)(n.code,{children:"@docusaurus/no-html-links"})})}),(0,s.jsxs)(n.td,{children:["Ensures @docusaurus/Link is used instead of ",(0,s.jsx)(n.code,{children:"<a>"})," tags"]}),(0,s.jsx)(n.td,{children:"\u2705"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading",children:(0,s.jsx)(n.code,{children:"@docusaurus/prefer-docusaurus-heading"})})}),(0,s.jsxs)(n.td,{children:["Ensures @theme/Heading is used instead of ",(0,s.jsx)(n.code,{children:"<hn>"})," tags for headings"]}),(0,s.jsx)(n.td,{children:"\u2705"})]})]})]}),"\n",(0,s.jsx)(n.p,{children:"\u2705 = recommended"}),"\n",(0,s.jsx)(n.h2,{id:"example-configuration",children:"Example configuration"}),"\n",(0,s.jsx)(n.p,{children:"Here's an example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title=".eslintrc.js"',children:"module.exports = {\n extends: ['plugin:@docusaurus/recommended'],\n rules: {\n '@docusaurus/no-untranslated-text': [\n 'warn',\n {ignoredStrings: ['\xb7', '\u2014', '\xd7']},\n ],\n },\n};\n"})})]})}function h(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},43023:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>a});var t=r(63696);let s={},l=t.createContext(s);function i(e){let n=t.useContext(l);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[57998],{15995:(e,n,r)=>{r.d(n,{A:()=>l});var t=r(62540);r(63696);var s=r(11750);function l({children:e,hidden:n,className:r}){return(0,t.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_pnkT",r),hidden:n,children:e})}},27446:(e,n,r)=>{r.d(n,{A:()=>v});var t=r(62540),s=r(63696),l=r(11750),i=r(7846),a=r(49519),o=r(96439),u=r(19739),c=r(66904),d=r(79244);function p(e){var n,r;return null!==(r=null===(n=s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==r?r:[]}function h({value:e,tabValues:n}){return n.some(n=>n.value===e)}var m=r(10709);function f(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.forEach(function(n){var t;t=r[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}function g(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r})(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))}),e}function b({className:e,block:n,selectedValue:r,selectValue:s,tabValues:a}){let o=[],{blockElementScrollPositionUntilNextRender:u}=(0,i.a_)(),c=e=>{let n=e.currentTarget,t=a[o.indexOf(n)].value;t!==r&&(u(n),s(t))},d=e=>{var n,r;let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{let r=o.indexOf(e.currentTarget)+1;t=null!==(n=o[r])&&void 0!==n?n:o[0];break}case"ArrowLeft":{let n=o.indexOf(e.currentTarget)-1;t=null!==(r=o[n])&&void 0!==r?r:o[o.length-1]}}null==t||t.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":n},e),children:a.map(({value:e,label:n,attributes:s})=>(0,t.jsx)("li",g(f({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,ref:e=>o.push(e),onKeyDown:d,onClick:c},s),{className:(0,l.A)("tabs__item","tabItem_AQgk",null==s?void 0:s.className,{"tabs__item--active":r===e}),children:null!=n?n:e}),e))})}function j({lazy:e,children:n,selectedValue:r}){let i=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=i.find(e=>e.props.value===r);return e?(0,s.cloneElement)(e,{className:(0,l.A)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:i.map((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==r}))})}function x(e){let n=function(e){let{defaultValue:n,queryString:r=!1,groupId:t}=e,l=function(e){let{values:n,children:r}=e;return(0,s.useMemo)(()=>{let e=null!=n?n:p(r).map(({props:{value:e,label:n,attributes:r,default:t}})=>({value:e,label:n,attributes:r,default:t}));return!function(e){let n=(0,c.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,r])}(e),[i,m]=(0,s.useState)(()=>(function({defaultValue:e,tabValues:n}){var r;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!h({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let t=null!==(r=n.find(e=>e.default))&&void 0!==r?r:n[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:n,tabValues:l})),[f,g]=function({queryString:e=!1,groupId:n}){let r=(0,a.W6)(),t=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,u.aZ)(t),(0,s.useCallback)(e=>{var n,s;if(!t)return;let l=new URLSearchParams(r.location.search);l.set(t,e),r.replace((n=function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.forEach(function(n){var t;t=r[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}({},r.location),s=s={search:l.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(s)):(function(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r})(Object(s)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(s,e))}),n))},[t,r])]}({queryString:r,groupId:t}),[b,j]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[r,t]=(0,d.Dv)(n);return[r,(0,s.useCallback)(e=>{n&&t.set(e)},[n,t])]}({groupId:t}),x=(()=>{let e=null!=f?f:b;return h({value:e,tabValues:l})?e:null})();return(0,o.A)(()=>{x&&m(x)},[x]),{selectedValue:i,selectValue:(0,s.useCallback)(e=>{if(!h({value:e,tabValues:l}))throw Error(`Can't select invalid tab value=${e}`);m(e),g(e),j(e)},[g,j,l]),tabValues:l}}(e);return(0,t.jsxs)("div",{className:(0,l.A)("tabs-container","tabList_Qoir"),children:[(0,t.jsx)(b,f({},n,e)),(0,t.jsx)(j,f({},n,e))]})}function v(e){let n=(0,m.A)();return(0,t.jsx)(x,g(f({},e),{children:p(e.children)}),String(n))}},90099:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>u,default:()=>h,frontMatter:()=>o,metadata:()=>t,toc:()=>d});let t=JSON.parse('{"id":"api/misc/eslint-plugin/README","title":"\u{1F4E6} eslint-plugin","description":"ESLint is a tool that statically analyzes your code and reports problems or suggests best practices through editor hints and command line. Docusaurus provides an ESLint plugin to enforce best Docusaurus practices.","source":"@site/docs/api/misc/eslint-plugin/README.mdx","sourceDirName":"api/misc/eslint-plugin","slug":"/api/misc/@docusaurus/eslint-plugin","permalink":"/docs/api/misc/@docusaurus/eslint-plugin","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/eslint-plugin/README.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1,"slug":"/api/misc/@docusaurus/eslint-plugin"},"sidebar":"api","previous":{"title":"\u{1F4E6} create-docusaurus","permalink":"/docs/api/misc/create-docusaurus"},"next":{"title":"no-html-links","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/no-html-links"}}');var s=r(62540),l=r(43023),i=r(27446),a=r(15995);let o={sidebar_position:1,slug:"/api/misc/@docusaurus/eslint-plugin"},u="\u{1F4E6} eslint-plugin",c={},d=[{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2},{value:"Recommended config",id:"recommended-config",level:3},{value:"Manual config",id:"manual-config",level:3},{value:"Supported configs",id:"supported-configs",level:2},{value:"Supported rules",id:"supported-rules",level:2},{value:"Example configuration",id:"example-configuration",level:2}];function p(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"-eslint-plugin",children:"\u{1F4E6} eslint-plugin"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://eslint.org/",children:"ESLint"})," is a tool that statically analyzes your code and reports problems or suggests best practices through editor hints and command line. Docusaurus provides an ESLint plugin to enforce best Docusaurus practices."]}),"\n",(0,s.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,s.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,s.jsx)(a.A,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm install --save-dev @docusaurus/eslint-plugin\n"})})}),(0,s.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn add --dev @docusaurus/eslint-plugin\n"})})}),(0,s.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm add --save-dev @docusaurus/eslint-plugin\n"})})})]}),"\n",(0,s.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsx)(n.h3,{id:"recommended-config",children:"Recommended config"}),"\n",(0,s.jsxs)(n.p,{children:["Add ",(0,s.jsx)(n.code,{children:"plugin:@docusaurus/recommended"})," to the ",(0,s.jsx)(n.code,{children:"extends"})," section of your ",(0,s.jsx)(n.code,{children:".eslintrc"})," configuration file:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",metastring:'title=".eslintrc"',children:'{\n "extends": ["plugin:@docusaurus/recommended"]\n}\n'})}),"\n",(0,s.jsxs)(n.p,{children:["This will enable the ",(0,s.jsx)(n.code,{children:"@docusaurus"})," eslint plugin and use the ",(0,s.jsx)(n.code,{children:"recommended"})," config. See ",(0,s.jsx)(n.a,{href:"#supported-rules",children:"Supported rules"})," below for a list of rules that this will enable."]}),"\n",(0,s.jsx)(n.h3,{id:"manual-config",children:"Manual config"}),"\n",(0,s.jsx)(n.p,{children:"For more fine-grained control, you can also enable the plugin manually and configure the rules you want to use directly:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",metastring:'title=".eslintrc"',children:'{\n "plugins": ["@docusaurus"],\n "rules": {\n "@docusaurus/string-literal-i18n-messages": "error",\n "@docusaurus/no-untranslated-text": "warn"\n }\n}\n'})}),"\n",(0,s.jsx)(n.h2,{id:"supported-configs",children:"Supported configs"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Recommended: recommended rule set for most Docusaurus sites that should be extended from."}),"\n",(0,s.jsxs)(n.li,{children:["All: ",(0,s.jsx)(n.strong,{children:"all"})," rules enabled. This will change between minor versions, so you should not use this if you want to avoid unexpected breaking changes."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"supported-rules",children:"Supported rules"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Description"}),(0,s.jsx)(n.th,{})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"/docs/api/misc/@docusaurus/eslint-plugin/no-untranslated-text",children:(0,s.jsx)(n.code,{children:"@docusaurus/no-untranslated-text"})})}),(0,s.jsx)(n.td,{children:"Enforce text labels in JSX to be wrapped by translate calls"}),(0,s.jsx)(n.td,{})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"/docs/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages",children:(0,s.jsx)(n.code,{children:"@docusaurus/string-literal-i18n-messages"})})}),(0,s.jsx)(n.td,{children:"Enforce translate APIs to be called on plain text labels"}),(0,s.jsx)(n.td,{children:"\u2705"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"/docs/api/misc/@docusaurus/eslint-plugin/no-html-links",children:(0,s.jsx)(n.code,{children:"@docusaurus/no-html-links"})})}),(0,s.jsxs)(n.td,{children:["Ensures @docusaurus/Link is used instead of ",(0,s.jsx)(n.code,{children:"<a>"})," tags"]}),(0,s.jsx)(n.td,{children:"\u2705"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading",children:(0,s.jsx)(n.code,{children:"@docusaurus/prefer-docusaurus-heading"})})}),(0,s.jsxs)(n.td,{children:["Ensures @theme/Heading is used instead of ",(0,s.jsx)(n.code,{children:"<hn>"})," tags for headings"]}),(0,s.jsx)(n.td,{children:"\u2705"})]})]})]}),"\n",(0,s.jsx)(n.p,{children:"\u2705 = recommended"}),"\n",(0,s.jsx)(n.h2,{id:"example-configuration",children:"Example configuration"}),"\n",(0,s.jsx)(n.p,{children:"Here's an example configuration:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title=".eslintrc.js"',children:"module.exports = {\n extends: ['plugin:@docusaurus/recommended'],\n rules: {\n '@docusaurus/no-untranslated-text': [\n 'warn',\n {ignoredStrings: ['\xb7', '\u2014', '\xd7']},\n ],\n },\n};\n"})})]})}function h(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},43023:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>a});var t=r(63696);let s={},l=t.createContext(s);function i(e){let n=t.useContext(l);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/33fc5bb8.4232dd8a.js b/assets/js/33fc5bb8.cd29f8ff.js similarity index 87% rename from assets/js/33fc5bb8.4232dd8a.js rename to assets/js/33fc5bb8.cd29f8ff.js index 7cc69ebd67..91f1baaf87 100644 --- a/assets/js/33fc5bb8.4232dd8a.js +++ b/assets/js/33fc5bb8.cd29f8ff.js @@ -1,4 +1,4 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[50867],{69473:(e,t,r)=>{r.d(t,{in:()=>s,OU:()=>k,Ki:()=>S,kJ:()=>d,x:()=>a,e7:()=>u,J_:()=>m,Gx:()=>x});var n=r(62540),o=r(63696),c=r(2550),i=r(15789);function a(){var e;let t=(0,i.A)(),r=null==t?void 0:null===(e=t.data)||void 0===e?void 0:e.blogMetadata;if(!r)throw Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return r}let l=o.createContext(null);function s({children:e,content:t,isBlogPostPage:r=!1}){let c=function({content:e,isBlogPostPage:t}){return(0,o.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,toc:e.toc,isBlogPostPage:t}),[e,t])}({content:t,isBlogPostPage:r});return(0,n.jsx)(l.Provider,{value:c,children:e})}function u(){let e=(0,o.useContext)(l);if(null===e)throw new c.dV("BlogPostProvider");return e}var b=r(27167),p=r(99468);function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let O=e=>new Date(e).toISOString();function y(e){let t=e.map(g);return{author:1===t.length?t[0]:t}}function j(e,t,r){return e?{image:function({imageUrl:e,caption:t}){return{"@type":"ImageObject","@id":e,url:e,contentUrl:e,caption:t}}({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${r}`})}:{}}function d(e){let{siteConfig:t}=(0,p.A)(),{withBaseUrl:r}=(0,b.hH)(),{metadata:{blogDescription:n,blogTitle:o,permalink:c}}=e,i=`${t.url}${c}`;return{"@context":"https://schema.org","@type":"Blog","@id":i,mainEntityOfPage:i,headline:o,description:n,blogPost:e.items.map(e=>(function(e,t,r){var n,o;let{assets:c,frontMatter:i,metadata:a}=e,{date:l,title:s,description:u,lastUpdatedAt:b}=a,p=null!==(n=c.image)&&void 0!==n?n:i.image,d=null!==(o=i.keywords)&&void 0!==o?o:[],m=`${t.url}${a.permalink}`,g=b?O(b):void 0;return f({"@type":"BlogPosting","@id":m,mainEntityOfPage:m,url:m,headline:s,name:s,description:u,datePublished:l},g?{dateModified:g}:{},y(a.authors),j(p,r,s),d?{keywords:d}:{})})(e.content,t,r))}}function m(){var e,t,r,n;let o=a(),{assets:c,metadata:i}=u(),{siteConfig:l}=(0,p.A)(),{withBaseUrl:s}=(0,b.hH)(),{date:d,title:m,description:g,frontMatter:h,lastUpdatedAt:v}=i,w=null!==(e=c.image)&&void 0!==e?e:h.image,P=null!==(t=h.keywords)&&void 0!==t?t:[],x=v?O(v):void 0,S=`${l.url}${i.permalink}`;return r=f({"@context":"https://schema.org","@type":"BlogPosting","@id":S,mainEntityOfPage:S,url:S,headline:m,name:m,description:g,datePublished:d},x?{dateModified:x}:{},y(i.authors),j(w,s,m),P?{keywords:P}:{}),n=n={isPartOf:{"@type":"Blog","@id":`${l.url}${o.blogBasePath}`,name:o.blogTitle}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}function g(e){return f({"@type":"Person"},e.name?{name:e.name}:{},e.title?{description:e.title}:{},e.url?{url:e.url}:{},e.email?{email:e.email}:{},e.imageURL?{image:e.imageURL}:{})}var h=r(49519),v=r(36372),w=r(66904),P=r(3107);function x(e){let{pathname:t}=(0,h.zy)();return(0,o.useMemo)(()=>e.filter(e=>!e.unlisted||!!(0,P.ys)(e.permalink,t)),[e,t])}function S(e){let t=Object.entries((0,w.$z)(e,e=>`${new Date(e.date).getFullYear()}`));return t.reverse(),t}function k({items:e,ulClassName:t,liClassName:r,linkClassName:o,linkActiveClassName:c}){return(0,n.jsx)("ul",{className:t,children:e.map(e=>(0,n.jsx)("li",{className:r,children:(0,n.jsx)(v.A,{isNavLink:!0,to:e.permalink,className:o,activeClassName:c,children:e.title})},e.permalink))})}},65108:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,n.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}r(63696)},55640:(e,t,r)=>{r.d(t,{A:()=>E});var n,o,c=r(62540),i=r(63696),a=r(11750),l=r(81912),s=r(12653);let u={admonition:"admonition_o5H7",admonitionHeading:"admonitionHeading_FzoX",admonitionIcon:"admonitionIcon_rXq6",admonitionContent:"admonitionContent_Knsx"};function b({type:e,className:t,children:r}){return(0,c.jsx)("div",{className:(0,a.A)(s.G.common.admonition,s.G.common.admonitionType(e),u.admonition,t),children:r})}function p({icon:e,title:t}){return(0,c.jsxs)("div",{className:u.admonitionHeading,children:[(0,c.jsx)("span",{className:u.admonitionIcon,children:e}),t]})}function f({children:e}){return e?(0,c.jsx)("div",{className:u.admonitionContent,children:e}):null}function O(e){let{type:t,icon:r,title:n,children:o,className:i}=e;return(0,c.jsxs)(b,{type:t,className:i,children:[n||r?(0,c.jsx)(p,{title:n,icon:r}):null,(0,c.jsx)(f,{children:o})]})}let y={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function j(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},y,e),r=r={className:(0,a.A)("alert alert--secondary",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let d={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function m(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},d,e),r=r={className:(0,a.A)("alert alert--success",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var g=r(65108);let h={icon:(0,c.jsx)(g.A,{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function v(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},h,e),r=r={className:(0,a.A)("alert alert--info",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function w(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 16 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let P={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})},x={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})},S={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};function k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let A=k({},{note:j,tip:m,info:v,warning:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},P,e),r=r={className:(0,a.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},danger:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},x,e),r=r={className:(0,a.A)("alert alert--danger",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},{secondary:e=>(0,c.jsx)(j,k({title:"secondary"},e)),important:e=>(0,c.jsx)(v,k({title:"important"},e)),success:e=>(0,c.jsx)(m,k({title:"success"},e)),caution:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},S,e),r=r={className:(0,a.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}});var D=r(37425);let N=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},A),o=o={"my-custom-admonition":function(e){return(0,c.jsxs)("div",{style:{border:"solid red",padding:10},children:[(0,c.jsx)(D.A,{as:"h5",style:{color:"blue",fontSize:30},children:e.title}),(0,c.jsx)("div",{children:e.children})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function E(e){var t;let r=function(e){var t,r,n;let{mdxAdmonitionTitle:o,rest:a}=function(e){let t=i.Children.toArray(e),r=t.find(e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),n=t.filter(e=>e!==r);return{mdxAdmonitionTitle:null==r?void 0:r.props.children,rest:n.length>0?(0,c.jsx)(c.Fragment,{children:n}):null}}(e.children),l=null!==(t=e.title)&&void 0!==t?t:o;return r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e,l&&{title:l}),n=n={children:a},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}(e),n=N[t=r.type]||(console.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),N.info);return(0,c.jsx)(n,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r))}},6205:(e,t,r)=>{r.d(t,{A:()=>d});var n=r(62540);r(63696);var o=r(11750),c=r(36372);let i=function(e){var t,r;return(0,n.jsxs)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},e),r=r={children:[(0,n.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,n.jsx)("path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"}),(0,n.jsx)("path",{d:"M3.6 9h16.8"}),(0,n.jsx)("path",{d:"M3.6 15h16.8"}),(0,n.jsx)("path",{d:"M11.5 3a17 17 0 0 0 0 18"}),(0,n.jsx)("path",{d:"M12.5 3a17 17 0 0 1 0 18"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},a="authorSocialLink_hEWM",l={twitter:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 256 209",width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid"},e),r=r={children:(0,n.jsx)("path",{d:"M256 25.45c-9.42 4.177-19.542 7-30.166 8.27 10.845-6.5 19.172-16.793 23.093-29.057a105.183 105.183 0 0 1-33.351 12.745C205.995 7.201 192.346.822 177.239.822c-29.006 0-52.523 23.516-52.523 52.52 0 4.117.465 8.125 1.36 11.97-43.65-2.191-82.35-23.1-108.255-54.876-4.52 7.757-7.11 16.78-7.11 26.404 0 18.222 9.273 34.297 23.365 43.716a52.312 52.312 0 0 1-23.79-6.57c-.003.22-.003.44-.003.661 0 25.447 18.104 46.675 42.13 51.5a52.592 52.592 0 0 1-23.718.9c6.683 20.866 26.08 36.05 49.062 36.475-17.975 14.086-40.622 22.483-65.228 22.483-4.24 0-8.42-.249-12.529-.734 23.243 14.902 50.85 23.597 80.51 23.597 96.607 0 149.434-80.031 149.434-149.435 0-2.278-.05-4.543-.152-6.795A106.748 106.748 0 0 0 256 25.45",fill:"#55acee"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"Twitter"},github:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 256 250",width:"1em",height:"1em"},e),r=r={className:(0,o.A)(e.className,"githubSvg_jqE4"),xmlns:"http://www.w3.org/2000/svg",style:{"--dark":"#000","--light":"#fff"},preserveAspectRatio:"xMidYMid",children:(0,n.jsx)("path",{d:"M128.001 0C57.317 0 0 57.307 0 128.001c0 56.554 36.676 104.535 87.535 121.46 6.397 1.185 8.746-2.777 8.746-6.158 0-3.052-.12-13.135-.174-23.83-35.61 7.742-43.124-15.103-43.124-15.103-5.823-14.795-14.213-18.73-14.213-18.73-11.613-7.944.876-7.78.876-7.78 12.853.902 19.621 13.19 19.621 13.19 11.417 19.568 29.945 13.911 37.249 10.64 1.149-8.272 4.466-13.92 8.127-17.116-28.431-3.236-58.318-14.212-58.318-63.258 0-13.975 5-25.394 13.188-34.358-1.329-3.224-5.71-16.242 1.24-33.874 0 0 10.749-3.44 35.21 13.121 10.21-2.836 21.16-4.258 32.038-4.307 10.878.049 21.837 1.47 32.066 4.307 24.431-16.56 35.165-13.12 35.165-13.12 6.967 17.63 2.584 30.65 1.255 33.873 8.207 8.964 13.173 20.383 13.173 34.358 0 49.163-29.944 59.988-58.447 63.157 4.591 3.972 8.682 11.762 8.682 23.704 0 17.126-.148 30.91-.148 35.126 0 3.407 2.304 7.398 8.792 6.14C219.37 232.5 256 184.537 256 128.002 256 57.307 198.691 0 128.001 0Zm-80.06 182.34c-.282.636-1.283.827-2.194.39-.929-.417-1.45-1.284-1.15-1.922.276-.655 1.279-.838 2.205-.399.93.418 1.46 1.293 1.139 1.931Zm6.296 5.618c-.61.566-1.804.303-2.614-.591-.837-.892-.994-2.086-.375-2.66.63-.566 1.787-.301 2.626.591.838.903 1 2.088.363 2.66Zm4.32 7.188c-.785.545-2.067.034-2.86-1.104-.784-1.138-.784-2.503.017-3.05.795-.547 2.058-.055 2.861 1.075.782 1.157.782 2.522-.019 3.08Zm7.304 8.325c-.701.774-2.196.566-3.29-.49-1.119-1.032-1.43-2.496-.726-3.27.71-.776 2.213-.558 3.315.49 1.11 1.03 1.45 2.505.701 3.27Zm9.442 2.81c-.31 1.003-1.75 1.459-3.199 1.033-1.448-.439-2.395-1.613-2.103-2.626.301-1.01 1.747-1.484 3.207-1.028 1.446.436 2.396 1.602 2.095 2.622Zm10.744 1.193c.036 1.055-1.193 1.93-2.715 1.95-1.53.034-2.769-.82-2.786-1.86 0-1.065 1.202-1.932 2.733-1.958 1.522-.03 2.768.818 2.768 1.868Zm10.555-.405c.182 1.03-.875 2.088-2.387 2.37-1.485.271-2.861-.365-3.05-1.386-.184-1.056.893-2.114 2.376-2.387 1.514-.263 2.868.356 3.061 1.403Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"GitHub"},stackoverflow:{Icon:function(e){var t,r;return(0,n.jsxs)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 169.61 200",width:"1em",height:"1em"},e),r=r={children:[(0,n.jsx)("path",{d:"M140.44 178.38v-48.65h21.61V200H0v-70.27h21.61v48.65z",fill:"#bcbbbb"}),(0,n.jsx)("path",{d:"M124.24 140.54l4.32-16.22-86.97-17.83-3.78 17.83zM49.7 82.16L130.72 120l7.56-16.22-81.02-37.83zm22.68-40l68.06 57.3 11.35-13.51-68.6-57.3-11.35 13.51zM116.14 0l-14.59 10.81 53.48 71.89 14.58-10.81zM37.81 162.16h86.43v-16.21H37.81z",fill:"#f48024"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"Stack Overflow"},linkedin:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 256"},e),r=r={children:(0,n.jsx)("path",{d:"M218.123 218.127h-37.931v-59.403c0-14.165-.253-32.4-19.728-32.4-19.756 0-22.779 15.434-22.779 31.369v60.43h-37.93V95.967h36.413v16.694h.51a39.907 39.907 0 0 1 35.928-19.733c38.445 0 45.533 25.288 45.533 58.186l-.016 67.013ZM56.955 79.27c-12.157.002-22.014-9.852-22.016-22.009-.002-12.157 9.851-22.014 22.008-22.016 12.157-.003 22.014 9.851 22.016 22.008A22.013 22.013 0 0 1 56.955 79.27m18.966 138.858H37.95V95.967h37.97v122.16ZM237.033.018H18.89C8.58-.098.125 8.161-.001 18.471v219.053c.122 10.315 8.576 18.582 18.89 18.474h218.144c10.336.128 18.823-8.139 18.966-18.474V18.454c-.147-10.33-8.635-18.588-18.966-18.453",fill:"#0A66C2"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"LinkedIn"},x:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"none",viewBox:"0 0 1200 1227"},e),r=r={className:(0,o.A)(e.className,"xSvg_Q0g7"),style:{"--dark":"#000","--light":"#fff"},children:(0,n.jsx)("path",{d:"M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"X"}};function s({platform:e,link:t}){var r;let{Icon:s,label:u}=null!==(r=l[e])&&void 0!==r?r:{Icon:i,label:e};return(0,n.jsx)(c.A,{className:a,href:t,title:u,children:(0,n.jsx)(s,{className:(0,o.A)(a)})})}function u({author:e}){var t;let r=Object.entries(null!==(t=e.socials)&&void 0!==t?t:{});return(0,n.jsx)("div",{className:"authorSocials_tPnL",children:r.map(([e,t])=>(0,n.jsx)(s,{platform:e,link:t},e))})}var b=r(37425);let p={authorImage:"authorImage_p8ow","author-as-h1":"author-as-h1_Pd3R","author-as-h2":"author-as-h2_UaZL",authorDetails:"authorDetails_dWdF",authorName:"authorName_Y8Hr",authorTitle:"authorTitle_Slpj",authorBlogPostCount:"authorBlogPostCount_FxU_"};function f(e){return e.href?(0,n.jsx)(c.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e)):(0,n.jsx)(n.Fragment,{children:e.children})}function O({title:e}){return(0,n.jsx)("small",{className:p.authorTitle,title:e,children:e})}function y({name:e,as:t}){return t?(0,n.jsx)(b.A,{as:t,className:p.authorName,children:e}):(0,n.jsx)("span",{className:p.authorName,children:e})}function j({count:e}){return(0,n.jsx)("span",{className:(0,o.A)(p.authorBlogPostCount),children:e})}function d({as:e,author:t,className:r,count:c}){let{name:i,title:a,url:l,imageURL:s,email:b,page:d}=t,m=(null==d?void 0:d.permalink)||l||b&&`mailto:${b}`||void 0;return(0,n.jsxs)("div",{className:(0,o.A)("avatar margin-bottom--sm",r,p[`author-as-${e}`]),children:[s&&(0,n.jsx)(f,{href:m,className:"avatar__photo-link",children:(0,n.jsx)("img",{className:(0,o.A)("avatar__photo",p.authorImage),src:s,alt:i})}),(i||a)&&(0,n.jsxs)("div",{className:(0,o.A)("avatar__intro",p.authorDetails),children:[(0,n.jsxs)("div",{className:"avatar__name",children:[i&&(0,n.jsx)(f,{href:m,children:(0,n.jsx)(y,{name:i,as:e})}),void 0!==c&&(0,n.jsx)(j,{count:c})]}),!!a&&(0,n.jsx)(O,{title:a}),(0,n.jsx)(u,{author:t})]})]})}},42016:(e,t,r)=>{r.r(t),r.d(t,{default:()=>g});var n=r(62540);r(63696);var o=r(11750),c=r(37554),i=r(12653),a=r(13239),l=r(36372),s=r(69473),u=r(94389),b=r(467),p=r(3113),f=r(61662),O=r(6205);function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function j({author:e}){let t=(0,a.wI)(e);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.be,{title:t}),(0,n.jsx)(p.A,{tag:"blog_authors_posts"})]})}function d(){let{authorsListPath:e}=(0,s.x)();return(0,n.jsx)(l.A,{href:e,children:(0,n.jsx)(a.np,{})})}function m({author:e,items:t,sidebar:r,listMetadata:o}){return(0,n.jsxs)(u.A,{sidebar:r,children:[(0,n.jsxs)("header",{className:"margin-bottom--xl",children:[(0,n.jsx)(O.A,{as:"h1",author:e}),e.description&&(0,n.jsx)("p",{children:e.description}),(0,n.jsx)(d,{})]}),0===t.length?(0,n.jsx)("p",{children:(0,n.jsx)(a.Y4,{})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("hr",{}),(0,n.jsx)(f.A,{items:t}),(0,n.jsx)(b.A,{metadata:o})]})]})}function g(e){return(0,n.jsxs)(c.e3,{className:(0,o.A)(i.G.wrapper.blogPages,i.G.page.blogAuthorsPostsPage),children:[(0,n.jsx)(j,y({},e)),(0,n.jsx)(m,y({},e))]})}},94389:(e,t,r)=>{r.d(t,{A:()=>v});var n=r(62540),o=r(63696),c=r(11750),i=r(99849),a=r(85975),l=r(81912),s=r(69473),u=r(25436),b=r(37425);function p({year:e,yearGroupHeadingClassName:t,children:r}){return(0,n.jsxs)("div",{role:"group",children:[(0,n.jsx)(b.A,{as:"h3",className:t,children:e}),r]})}let f=(0,o.memo)(function({items:e,yearGroupHeadingClassName:t,ListComponent:r}){if(!(0,u.p)().blog.sidebar.groupByYear)return(0,n.jsx)(r,{items:e});{let o=(0,s.Ki)(e);return(0,n.jsx)(n.Fragment,{children:o.map(([e,o])=>(0,n.jsx)(p,{year:e,yearGroupHeadingClassName:t,children:(0,n.jsx)(r,{items:o})},e))})}}),O=({items:e})=>(0,n.jsx)(s.OU,{items:e,ulClassName:(0,c.A)("sidebarItemList_OSkG","clean-list"),liClassName:"sidebarItem_WJ0y",linkClassName:"sidebarItemLink_Qrfg",linkActiveClassName:"sidebarItemLinkActive_nUeK"}),y=(0,o.memo)(function({sidebar:e}){let t=(0,s.Gx)(e.items);return(0,n.jsx)("aside",{className:"col col--3",children:(0,n.jsxs)("nav",{className:(0,c.A)("sidebar_P3nc","thin-scrollbar"),"aria-label":(0,l.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,n.jsx)("div",{className:(0,c.A)("sidebarItemTitle_VrjY","margin-bottom--md"),children:e.title}),(0,n.jsx)(f,{items:t,ListComponent:O,yearGroupHeadingClassName:"yearGroupHeading_lECJ"})]})})});var j=r(2454);let d=({items:e})=>(0,n.jsx)(s.OU,{items:e,ulClassName:"menu__list",liClassName:"menu__list-item",linkClassName:"menu__link",linkActiveClassName:"menu__link--active"});function m({sidebar:e}){let t=(0,s.Gx)(e.items);return(0,n.jsx)(f,{items:t,ListComponent:d,yearGroupHeadingClassName:"yearGroupHeading_Ruz9"})}let g=(0,o.memo)(function(e){return(0,n.jsx)(j.GX,{component:m,props:e})});function h({sidebar:e}){let t=(0,a.l)();return(null==e?void 0:e.items.length)?"mobile"===t?(0,n.jsx)(g,{sidebar:e}):(0,n.jsx)(y,{sidebar:e}):null}function v(e){var t,r;let{sidebar:o,toc:a,children:l}=e,s=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["sidebar","toc","children"]),u=o&&o.items.length>0;return(0,n.jsx)(i.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},s),r=r={children:(0,n.jsx)("div",{className:"container margin-vert--lg",children:(0,n.jsxs)("div",{className:"row",children:[(0,n.jsx)(h,{sidebar:o}),(0,n.jsx)("main",{className:(0,c.A)("col",{"col--7":u,"col--9 col--offset-1":!u}),children:l}),a&&(0,n.jsx)("div",{className:"col col--2",children:a})]})})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},467:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(81912),c=r(88524);function i(e){let{metadata:t}=e,{previousPage:r,nextPage:i}=t;return(0,n.jsxs)("nav",{className:"pagination-nav","aria-label":(0,o.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[r&&(0,n.jsx)(c.A,{permalink:r,title:(0,n.jsx)(o.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer entries"})}),i&&(0,n.jsx)(c.A,{permalink:i,title:(0,n.jsx)(o.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older entries"}),isNext:!0})]})}},57813:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o({children:e,className:t}){return(0,n.jsx)("article",{className:t,children:e})}r(63696)},5939:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(11750),c=r(71106),i=r(69473),a=r(76699);function l({children:e,className:t}){let{isBlogPostPage:r}=(0,i.e7)();return(0,n.jsx)("div",{id:r?c.LU:void 0,className:(0,o.A)("markdown",t),children:(0,n.jsx)(a.A,{children:e})})}},21500:(e,t,r)=>{r.d(t,{A:()=>p});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(13111),a=r(60908),l=r(69473);function s({readingTime:e}){let t=function(){let{selectMessage:e}=(0,i.W)();return t=>{let r=Math.ceil(t);return e(r,(0,c.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:r}))}}();return(0,n.jsx)(n.Fragment,{children:t(e)})}function u({date:e,formattedDate:t}){return(0,n.jsx)("time",{dateTime:e,children:t})}function b(){return(0,n.jsx)(n.Fragment,{children:" \xb7 "})}function p({className:e}){let{metadata:t}=(0,l.e7)(),{date:r,readingTime:c}=t,i=(0,a.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,n.jsxs)("div",{className:(0,o.A)("container_x5Un","margin-vert--md",e),children:[(0,n.jsx)(u,{date:r,formattedDate:i.format(new Date(r))}),void 0!==c&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(b,{}),(0,n.jsx)(s,{readingTime:c})]})]})}},32886:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750),c=r(36372),i=r(69473);function a({className:e}){let{metadata:t,isBlogPostPage:r}=(0,i.e7)(),{permalink:a,title:l}=t;return(0,n.jsx)(r?"h1":"h2",{className:(0,o.A)("title_UBNu",e),children:r?l:(0,n.jsx)(c.A,{to:a,children:l})})}},50064:(e,t,r)=>{r.d(t,{A:()=>w});var n=r(62540);r(63696);var o=r(11750),c=r(69473),i=r(57813),a=r(32886),l=r(21500),s=r(6205);let u={authorCol:"authorCol_bvyx",imageOnlyAuthorRow:"imageOnlyAuthorRow_L2DM",imageOnlyAuthorCol:"imageOnlyAuthorCol_oyze"};function b({className:e}){let{metadata:{authors:t},assets:r}=(0,c.e7)();if(0===t.length)return null;let i=t.every(({name:e})=>!e),a=1===t.length;return(0,n.jsx)("div",{className:(0,o.A)("margin-top--md margin-bottom--sm",i?u.imageOnlyAuthorRow:"row",e),children:t.map((e,t)=>{var c,l,b;return(0,n.jsx)("div",{className:(0,o.A)(!i&&(a?"col col--12":"col col--6"),i?u.imageOnlyAuthorCol:u.authorCol),children:(0,n.jsx)(s.A,{author:(l=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),b=b={imageURL:null!==(c=r.authorsImageUrls[t])&&void 0!==c?c:e.imageURL},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(b)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(b)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(b,e))}),l)})},t)})})}function p(){return(0,n.jsxs)("header",{children:[(0,n.jsx)(a.A,{}),(0,n.jsx)(l.A,{}),(0,n.jsx)(b,{})]})}var f=r(5939),O=r(12653),y=r(2604),j=r(48447),d=r(81912),m=r(36372);function g(){return(0,n.jsx)("b",{children:(0,n.jsx)(d.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read more"})})}function h(e){var t,r;let{blogPostTitle:o}=e,c=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["blogPostTitle"]);return(0,n.jsx)(m.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({"aria-label":(0,d.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:o})},c),r=r={children:(0,n.jsx)(g,{})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function v(){let{metadata:e,isBlogPostPage:t}=(0,c.e7)(),{tags:r,title:i,editUrl:a,hasTruncateMarker:l,lastUpdatedBy:s,lastUpdatedAt:u}=e,b=!t&&l,p=r.length>0;if(!(p||b||a))return null;if(!t)return(0,n.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[p&&(0,n.jsx)("div",{className:(0,o.A)("col",{"col--9":b}),children:(0,n.jsx)(j.A,{tags:r})}),b&&(0,n.jsx)("div",{className:(0,o.A)("col text--right",{"col--3":p}),children:(0,n.jsx)(h,{blogPostTitle:i,to:e.permalink})})]});{let e=!!(a||u||s);return(0,n.jsxs)("footer",{className:"docusaurus-mt-lg",children:[p&&(0,n.jsx)("div",{className:(0,o.A)("row","margin-top--sm",O.G.blog.blogFooterEditMetaRow),children:(0,n.jsx)("div",{className:"col",children:(0,n.jsx)(j.A,{tags:r})})}),e&&(0,n.jsx)(y.A,{className:(0,o.A)("margin-top--sm",O.G.blog.blogFooterEditMetaRow),editUrl:a,lastUpdatedAt:u,lastUpdatedBy:s})]})}}function w({children:e,className:t}){let r=function(){let{isBlogPostPage:e}=(0,c.e7)();return e?void 0:"margin-bottom--xl"}();return(0,n.jsxs)(i.A,{className:(0,o.A)(r,t),children:[(0,n.jsx)(p,{}),(0,n.jsx)(f.A,{children:e}),(0,n.jsx)(v,{})]})}},61662:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(69473),c=r(50064);function i({items:e,component:t=c.A}){return(0,n.jsx)(n.Fragment,{children:e.map(({content:e})=>(0,n.jsx)(o.in,{content:e,children:(0,n.jsx)(t,{children:(0,n.jsx)(e,{})})},e.metadata.permalink))})}},23572:(e,t,r)=>{r.d(t,{A:()=>f});var n=r(62540),o=r(63696),c=r(11750),i=r(52711),a=r(10709),l=r(27720);let s={details:"details_Nokh",isBrowser:"isBrowser_QrB5",collapsibleContent:"collapsibleContent_EoA1"};function u(e){return!!e&&("SUMMARY"===e.tagName||u(e.parentElement))}function b(e){var t,r,{summary:b,children:p}=e,f=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["summary","children"]);(0,i.A)().collectAnchor(f.id);let O=(0,a.A)(),y=(0,o.useRef)(null),{collapsed:j,setCollapsed:d}=(0,l.u)({initialState:!f.open}),[m,g]=(0,o.useState)(f.open),h=o.isValidElement(b)?b:(0,n.jsx)("summary",{children:null!=b?b:"Details"});return(0,n.jsxs)("details",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},f),r=r={ref:y,open:m,"data-collapsed":j,className:(0,c.A)(s.details,O&&s.isBrowser,f.className),onMouseDown:e=>{u(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();let t=e.target;u(t)&&function e(t,r){return!!t&&(t===r||e(t.parentElement,r))}(t,y.current)&&(e.preventDefault(),j?(d(!1),g(!0)):d(!0))},children:[h,(0,n.jsx)(l.N,{lazy:!1,collapsed:j,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{d(e),g(!e)},children:(0,n.jsx)("div",{className:s.collapsibleContent,children:p})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function f(e){var t,r,o=p({},function(e){if(null==e)throw TypeError("Cannot destructure "+e);return e}(e));return(0,n.jsx)(b,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={className:(0,c.A)("alert alert--info","details_Cn_P",o.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},2604:(e,t,r)=>{r.d(t,{A:()=>O});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(12653),a=r(36372);function l(e){var t,r,{className:c}=e,i=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["className"]);return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,o.A)("iconEdit_IMw_",c),"aria-hidden":"true"},i),r=r={children:(0,n.jsx)("g",{children:(0,n.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function s({editUrl:e}){return(0,n.jsxs)(a.A,{to:e,className:i.G.common.editThisPage,children:[(0,n.jsx)(l,{}),(0,n.jsx)(c.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=r(60908);function b({lastUpdatedAt:e}){let t=new Date(e),r=(0,u.i)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(t);return(0,n.jsx)(c.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,n.jsx)("b",{children:(0,n.jsx)("time",{dateTime:t.toISOString(),itemProp:"dateModified",children:r})})},children:" on {date}"})}function p({lastUpdatedBy:e}){return(0,n.jsx)(c.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,n.jsx)("b",{children:e})},children:" by {user}"})}function f({lastUpdatedAt:e,lastUpdatedBy:t}){return(0,n.jsxs)("span",{className:i.G.common.lastUpdated,children:[(0,n.jsx)(c.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,n.jsx)(b,{lastUpdatedAt:e}):"",byUser:t?(0,n.jsx)(p,{lastUpdatedBy:t}):""},children:"Last updated{atDate}{byUser}"}),!1]})}function O({className:e,editUrl:t,lastUpdatedAt:r,lastUpdatedBy:c}){return(0,n.jsxs)("div",{className:(0,o.A)("row",e),children:[(0,n.jsx)("div",{className:"col",children:t&&(0,n.jsx)(s,{editUrl:t})}),(0,n.jsx)("div",{className:(0,o.A)("col","lastUpdated_OHCJ"),children:(r||c)&&(0,n.jsx)(f,{lastUpdatedAt:r,lastUpdatedBy:c})})]})}},76699:(e,t,r)=>{r.d(t,{A:()=>B});var n,o,c=r(62540),i=r(63696),a=r(43023),l=r(93394),s=r(55887);function u(e){return(0,c.jsx)("code",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function p(e){return void 0!==e.children&&i.Children.toArray(e.children).every(e=>"string"==typeof e&&!e.includes("\n"))?(0,c.jsx)(u,b({},e)):(0,c.jsx)(s.A,b({},e))}var f=r(36372),O=r(23572);function y(e){var t,r;let n=i.Children.toArray(e.children),o=n.find(e=>i.isValidElement(e)&&"summary"===e.type),a=(0,c.jsx)(c.Fragment,{children:n.filter(e=>e!==o)});return(0,c.jsx)(O.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={summary:o,children:a},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var j=r(37425);function d(e){return(0,c.jsx)(j.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}var m=r(11750);let g={containsTaskList:"containsTaskList_k9gM"};var h=r(52711),v=r(55640),w=r(43758),P=r(1495),x=r(25436),S=r(66659),k=r(17367);async function A({id:e,text:t,config:r}){k.N.mermaidAPI.initialize(r);try{return await k.N.render(e,t)}catch(t){var n;throw null===(n=document.querySelector(`#d${e}`))||void 0===n||n.remove(),t}}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function N({renderResult:e}){let t=(0,i.useRef)(null);return(0,i.useEffect)(()=>{var r;let n=t.current;null===(r=e.bindFunctions)||void 0===r||r.call(e,n)},[e]),(0,c.jsx)("div",{ref:t,className:"docusaurus-mermaid-container container_RUsj",dangerouslySetInnerHTML:{__html:e.svg}})}function E({value:e}){let t=function({text:e,config:t}){let[r,n]=(0,i.useState)(null),o=(0,i.useRef)(`mermaid-svg-${Math.round(1e7*Math.random())}`).current,c=function(){let{colorMode:e}=(0,S.G)(),t=(0,x.p)().mermaid,r=t.theme[e],{options:n}=t;return(0,i.useMemo)(()=>{var e,t;return e=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({startOnLoad:!1},n),t=t={theme:r},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e},[r,n])}(),a=null!=t?t:c;return(0,i.useEffect)(()=>{A({id:o,text:e,config:a}).then(n).catch(e=>{n(()=>{throw e})})},[o,e,a]),r}({text:e});return null===t?null:(0,c.jsx)(N,{renderResult:t})}function _(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let C=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},{Head:l.A,details:y,Details:y,code:p,a:function(e){return(0,c.jsx)(f.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},pre:function(e){return(0,c.jsx)(c.Fragment,{children:e.children})},ul:function(e){var t,r;return(0,c.jsx)("ul",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={className:function(e){if(void 0!==e)return(0,m.A)(e,(null==e?void 0:e.includes("contains-task-list"))&&g.containsTaskList)}(e.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},li:function(e){return(0,h.A)().collectAnchor(e.id),(0,c.jsx)("li",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},img:function(e){var t,r,n;return(0,c.jsx)("img",(r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({decoding:"async",loading:"lazy"},e),n=n={className:(t=e.className,(0,m.A)(t,"img_vXGZ"))},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r))},h1:e=>(0,c.jsx)(d,_({as:"h1"},e)),h2:e=>(0,c.jsx)(d,_({as:"h2"},e)),h3:e=>(0,c.jsx)(d,_({as:"h3"},e)),h4:e=>(0,c.jsx)(d,_({as:"h4"},e)),h5:e=>(0,c.jsx)(d,_({as:"h5"},e)),h6:e=>(0,c.jsx)(d,_({as:"h6"},e)),admonition:v.A,mermaid:function(e){return(0,c.jsx)(w.A,{fallback:e=>(0,c.jsx)(P.MN,D({},e)),children:(0,c.jsx)(E,D({},e))})}}),o=o={Code:p,Highlight:function({children:e,color:t}){return(0,c.jsx)("span",{style:{backgroundColor:t,borderRadius:"2px",color:"#fff",padding:"0.2rem"},children:e})},TweetQuote:function({url:e,handle:t,name:r,job:n,children:o}){let i=`https://unavatar.io/x/${t}`,a=`https://x.com/${t}`;return(0,c.jsxs)("figure",{className:"tweetQuote_h8Rz",children:[(0,c.jsx)("blockquote",{children:(0,c.jsx)(f.A,{to:e,children:o})}),(0,c.jsx)("figcaption",{children:(0,c.jsx)(f.A,{to:a,rel:"nofollow",children:(0,c.jsxs)("div",{className:"avatar",children:[(0,c.jsx)("img",{alt:r,className:(0,m.A)("avatar__photo","avatarImg_b51M"),src:i}),(0,c.jsxs)("div",{className:(0,m.A)("avatar__intro"),children:[(0,c.jsx)("strong",{className:"avatar__name",children:(0,c.jsx)("cite",{children:r})}),(0,c.jsx)("small",{className:"avatar__subtitle",itemProp:"description",children:n})]})]})})})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function B({children:e}){return(0,c.jsx)(a.x,{components:C,children:e})}},88524:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(11750),c=r(36372);function i(e){let{permalink:t,title:r,subLabel:i,isNext:a}=e;return(0,n.jsxs)(c.A,{className:(0,o.A)("pagination-nav__link",a?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[i&&(0,n.jsx)("div",{className:"pagination-nav__sublabel",children:i}),(0,n.jsx)("div",{className:"pagination-nav__label",children:r})]})}},82499:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750),c=r(36372);let i={tag:"tag_Nd8t",tagRegular:"tagRegular_TiLs",tagWithCount:"tagWithCount_AQg7"};function a({permalink:e,label:t,count:r,description:a}){return(0,n.jsxs)(c.A,{href:e,title:a,className:(0,o.A)(i.tag,r?i.tagWithCount:i.tagRegular),children:[t,r&&(0,n.jsx)("span",{children:r})]})}},48447:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(82499);function a({tags:e}){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("b",{children:(0,n.jsx)(c.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,n.jsx)("ul",{className:(0,o.A)("tags_rTaS","padding--none","margin-left--sm"),children:e.map(e=>(0,n.jsx)("li",{className:"tag_l5va",children:(0,n.jsx)(i.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},e.permalink))})]})}},13239:(e,t,r)=>{r.d(t,{Y4:()=>b,ZD:()=>a,np:()=>u,uz:()=>s,wI:()=>l});var n=r(62540);r(63696);var o=r(81912),c=r(13111);function i(){let{selectMessage:e}=(0,c.W)();return t=>e(t,(0,o.T)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}function a(e){let t=i();return(0,o.T)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}function l(e){let t=i();return(0,o.T)({id:"theme.blog.author.pageTitle",description:"The title of the page for a blog author",message:"{authorName} - {nPosts}"},{nPosts:t(e.count),authorName:e.name||e.key})}let s=()=>(0,o.T)({id:"theme.blog.authorsList.pageTitle",message:"Authors",description:"The title of the authors page"});function u(){return(0,n.jsx)(o.A,{id:"theme.blog.authorsList.viewAll",description:"The label of the link targeting the blog authors page",children:"View all authors"})}function b(){return(0,n.jsx)(o.A,{id:"theme.blog.author.noPosts",description:"The text for authors with 0 blog post",children:"This author has not written any posts yet."})}},60908:(e,t,r)=>{r.d(t,{i:()=>o});var n=r(99468);function o(e={}){let{i18n:{currentLocale:t}}=(0,n.A)(),r=function(){let{i18n:{currentLocale:e,localeConfigs:t}}=(0,n.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({calendar:r},e))}},13111:(e,t,r)=>{r.d(t,{W:()=>l});var n=r(63696),o=r(99468);let c=["zero","one","two","few","many","other"];function i(e){return c.filter(t=>e.includes(t))}let a={locale:"en",pluralForms:i(["one","other"]),select:e=>1===e?"one":"other"};function l(){let e=function(){let{i18n:{currentLocale:e}}=(0,o.A)();return(0,n.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:i(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[50867],{69473:(e,t,r)=>{r.d(t,{in:()=>s,OU:()=>k,Ki:()=>S,kJ:()=>d,x:()=>a,e7:()=>u,J_:()=>m,Gx:()=>x});var n=r(62540),o=r(63696),c=r(2550),i=r(15789);function a(){var e;let t=(0,i.A)(),r=null==t?void 0:null===(e=t.data)||void 0===e?void 0:e.blogMetadata;if(!r)throw Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return r}let l=o.createContext(null);function s({children:e,content:t,isBlogPostPage:r=!1}){let c=function({content:e,isBlogPostPage:t}){return(0,o.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,toc:e.toc,isBlogPostPage:t}),[e,t])}({content:t,isBlogPostPage:r});return(0,n.jsx)(l.Provider,{value:c,children:e})}function u(){let e=(0,o.useContext)(l);if(null===e)throw new c.dV("BlogPostProvider");return e}var b=r(27167),p=r(99468);function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let O=e=>new Date(e).toISOString();function y(e){let t=e.map(g);return{author:1===t.length?t[0]:t}}function j(e,t,r){return e?{image:function({imageUrl:e,caption:t}){return{"@type":"ImageObject","@id":e,url:e,contentUrl:e,caption:t}}({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${r}`})}:{}}function d(e){let{siteConfig:t}=(0,p.A)(),{withBaseUrl:r}=(0,b.hH)(),{metadata:{blogDescription:n,blogTitle:o,permalink:c}}=e,i=`${t.url}${c}`;return{"@context":"https://schema.org","@type":"Blog","@id":i,mainEntityOfPage:i,headline:o,description:n,blogPost:e.items.map(e=>(function(e,t,r){var n,o;let{assets:c,frontMatter:i,metadata:a}=e,{date:l,title:s,description:u,lastUpdatedAt:b}=a,p=null!==(n=c.image)&&void 0!==n?n:i.image,d=null!==(o=i.keywords)&&void 0!==o?o:[],m=`${t.url}${a.permalink}`,g=b?O(b):void 0;return f({"@type":"BlogPosting","@id":m,mainEntityOfPage:m,url:m,headline:s,name:s,description:u,datePublished:l},g?{dateModified:g}:{},y(a.authors),j(p,r,s),d?{keywords:d}:{})})(e.content,t,r))}}function m(){var e,t,r,n;let o=a(),{assets:c,metadata:i}=u(),{siteConfig:l}=(0,p.A)(),{withBaseUrl:s}=(0,b.hH)(),{date:d,title:m,description:g,frontMatter:h,lastUpdatedAt:v}=i,w=null!==(e=c.image)&&void 0!==e?e:h.image,P=null!==(t=h.keywords)&&void 0!==t?t:[],x=v?O(v):void 0,S=`${l.url}${i.permalink}`;return r=f({"@context":"https://schema.org","@type":"BlogPosting","@id":S,mainEntityOfPage:S,url:S,headline:m,name:m,description:g,datePublished:d},x?{dateModified:x}:{},y(i.authors),j(w,s,m),P?{keywords:P}:{}),n=n={isPartOf:{"@type":"Blog","@id":`${l.url}${o.blogBasePath}`,name:o.blogTitle}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}function g(e){return f({"@type":"Person"},e.name?{name:e.name}:{},e.title?{description:e.title}:{},e.url?{url:e.url}:{},e.email?{email:e.email}:{},e.imageURL?{image:e.imageURL}:{})}var h=r(49519),v=r(36372),w=r(66904),P=r(3107);function x(e){let{pathname:t}=(0,h.zy)();return(0,o.useMemo)(()=>e.filter(e=>!e.unlisted||!!(0,P.ys)(e.permalink,t)),[e,t])}function S(e){let t=Object.entries((0,w.$z)(e,e=>`${new Date(e.date).getFullYear()}`));return t.reverse(),t}function k({items:e,ulClassName:t,liClassName:r,linkClassName:o,linkActiveClassName:c}){return(0,n.jsx)("ul",{className:t,children:e.map(e=>(0,n.jsx)("li",{className:r,children:(0,n.jsx)(v.A,{isNavLink:!0,to:e.permalink,className:o,activeClassName:c,children:e.title})},e.permalink))})}},65108:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,n.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}r(63696)},55640:(e,t,r)=>{r.d(t,{A:()=>E});var n,o,c=r(62540),i=r(63696),a=r(11750),l=r(81912),s=r(12653);let u={admonition:"admonition_o5H7",admonitionHeading:"admonitionHeading_FzoX",admonitionIcon:"admonitionIcon_rXq6",admonitionContent:"admonitionContent_Knsx"};function b({type:e,className:t,children:r}){return(0,c.jsx)("div",{className:(0,a.A)(s.G.common.admonition,s.G.common.admonitionType(e),u.admonition,t),children:r})}function p({icon:e,title:t}){return(0,c.jsxs)("div",{className:u.admonitionHeading,children:[(0,c.jsx)("span",{className:u.admonitionIcon,children:e}),t]})}function f({children:e}){return e?(0,c.jsx)("div",{className:u.admonitionContent,children:e}):null}function O(e){let{type:t,icon:r,title:n,children:o,className:i}=e;return(0,c.jsxs)(b,{type:t,className:i,children:[n||r?(0,c.jsx)(p,{title:n,icon:r}):null,(0,c.jsx)(f,{children:o})]})}let y={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function j(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},y,e),r=r={className:(0,a.A)("alert alert--secondary",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let d={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function m(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},d,e),r=r={className:(0,a.A)("alert alert--success",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var g=r(65108);let h={icon:(0,c.jsx)(g.A,{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function v(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},h,e),r=r={className:(0,a.A)("alert alert--info",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function w(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 16 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let P={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})},x={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})},S={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};function k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let A=k({},{note:j,tip:m,info:v,warning:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},P,e),r=r={className:(0,a.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},danger:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},x,e),r=r={className:(0,a.A)("alert alert--danger",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},{secondary:e=>(0,c.jsx)(j,k({title:"secondary"},e)),important:e=>(0,c.jsx)(v,k({title:"important"},e)),success:e=>(0,c.jsx)(m,k({title:"success"},e)),caution:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},S,e),r=r={className:(0,a.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}});var D=r(37425);let N=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},A),o=o={"my-custom-admonition":function(e){return(0,c.jsxs)("div",{style:{border:"solid red",padding:10},children:[(0,c.jsx)(D.A,{as:"h5",style:{color:"blue",fontSize:30},children:e.title}),(0,c.jsx)("div",{children:e.children})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function E(e){var t;let r=function(e){var t,r,n;let{mdxAdmonitionTitle:o,rest:a}=function(e){let t=i.Children.toArray(e),r=t.find(e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),n=t.filter(e=>e!==r);return{mdxAdmonitionTitle:null==r?void 0:r.props.children,rest:n.length>0?(0,c.jsx)(c.Fragment,{children:n}):null}}(e.children),l=null!==(t=e.title)&&void 0!==t?t:o;return r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e,l&&{title:l}),n=n={children:a},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}(e),n=N[t=r.type]||(console.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),N.info);return(0,c.jsx)(n,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r))}},6205:(e,t,r)=>{r.d(t,{A:()=>d});var n=r(62540);r(63696);var o=r(11750),c=r(36372);let i=function(e){var t,r;return(0,n.jsxs)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},e),r=r={children:[(0,n.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,n.jsx)("path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"}),(0,n.jsx)("path",{d:"M3.6 9h16.8"}),(0,n.jsx)("path",{d:"M3.6 15h16.8"}),(0,n.jsx)("path",{d:"M11.5 3a17 17 0 0 0 0 18"}),(0,n.jsx)("path",{d:"M12.5 3a17 17 0 0 1 0 18"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},a="authorSocialLink_hEWM",l={twitter:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 256 209",width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid"},e),r=r={children:(0,n.jsx)("path",{d:"M256 25.45c-9.42 4.177-19.542 7-30.166 8.27 10.845-6.5 19.172-16.793 23.093-29.057a105.183 105.183 0 0 1-33.351 12.745C205.995 7.201 192.346.822 177.239.822c-29.006 0-52.523 23.516-52.523 52.52 0 4.117.465 8.125 1.36 11.97-43.65-2.191-82.35-23.1-108.255-54.876-4.52 7.757-7.11 16.78-7.11 26.404 0 18.222 9.273 34.297 23.365 43.716a52.312 52.312 0 0 1-23.79-6.57c-.003.22-.003.44-.003.661 0 25.447 18.104 46.675 42.13 51.5a52.592 52.592 0 0 1-23.718.9c6.683 20.866 26.08 36.05 49.062 36.475-17.975 14.086-40.622 22.483-65.228 22.483-4.24 0-8.42-.249-12.529-.734 23.243 14.902 50.85 23.597 80.51 23.597 96.607 0 149.434-80.031 149.434-149.435 0-2.278-.05-4.543-.152-6.795A106.748 106.748 0 0 0 256 25.45",fill:"#55acee"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"Twitter"},github:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 256 250",width:"1em",height:"1em"},e),r=r={className:(0,o.A)(e.className,"githubSvg_jqE4"),xmlns:"http://www.w3.org/2000/svg",style:{"--dark":"#000","--light":"#fff"},preserveAspectRatio:"xMidYMid",children:(0,n.jsx)("path",{d:"M128.001 0C57.317 0 0 57.307 0 128.001c0 56.554 36.676 104.535 87.535 121.46 6.397 1.185 8.746-2.777 8.746-6.158 0-3.052-.12-13.135-.174-23.83-35.61 7.742-43.124-15.103-43.124-15.103-5.823-14.795-14.213-18.73-14.213-18.73-11.613-7.944.876-7.78.876-7.78 12.853.902 19.621 13.19 19.621 13.19 11.417 19.568 29.945 13.911 37.249 10.64 1.149-8.272 4.466-13.92 8.127-17.116-28.431-3.236-58.318-14.212-58.318-63.258 0-13.975 5-25.394 13.188-34.358-1.329-3.224-5.71-16.242 1.24-33.874 0 0 10.749-3.44 35.21 13.121 10.21-2.836 21.16-4.258 32.038-4.307 10.878.049 21.837 1.47 32.066 4.307 24.431-16.56 35.165-13.12 35.165-13.12 6.967 17.63 2.584 30.65 1.255 33.873 8.207 8.964 13.173 20.383 13.173 34.358 0 49.163-29.944 59.988-58.447 63.157 4.591 3.972 8.682 11.762 8.682 23.704 0 17.126-.148 30.91-.148 35.126 0 3.407 2.304 7.398 8.792 6.14C219.37 232.5 256 184.537 256 128.002 256 57.307 198.691 0 128.001 0Zm-80.06 182.34c-.282.636-1.283.827-2.194.39-.929-.417-1.45-1.284-1.15-1.922.276-.655 1.279-.838 2.205-.399.93.418 1.46 1.293 1.139 1.931Zm6.296 5.618c-.61.566-1.804.303-2.614-.591-.837-.892-.994-2.086-.375-2.66.63-.566 1.787-.301 2.626.591.838.903 1 2.088.363 2.66Zm4.32 7.188c-.785.545-2.067.034-2.86-1.104-.784-1.138-.784-2.503.017-3.05.795-.547 2.058-.055 2.861 1.075.782 1.157.782 2.522-.019 3.08Zm7.304 8.325c-.701.774-2.196.566-3.29-.49-1.119-1.032-1.43-2.496-.726-3.27.71-.776 2.213-.558 3.315.49 1.11 1.03 1.45 2.505.701 3.27Zm9.442 2.81c-.31 1.003-1.75 1.459-3.199 1.033-1.448-.439-2.395-1.613-2.103-2.626.301-1.01 1.747-1.484 3.207-1.028 1.446.436 2.396 1.602 2.095 2.622Zm10.744 1.193c.036 1.055-1.193 1.93-2.715 1.95-1.53.034-2.769-.82-2.786-1.86 0-1.065 1.202-1.932 2.733-1.958 1.522-.03 2.768.818 2.768 1.868Zm10.555-.405c.182 1.03-.875 2.088-2.387 2.37-1.485.271-2.861-.365-3.05-1.386-.184-1.056.893-2.114 2.376-2.387 1.514-.263 2.868.356 3.061 1.403Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"GitHub"},stackoverflow:{Icon:function(e){var t,r;return(0,n.jsxs)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 169.61 200",width:"1em",height:"1em"},e),r=r={children:[(0,n.jsx)("path",{d:"M140.44 178.38v-48.65h21.61V200H0v-70.27h21.61v48.65z",fill:"#bcbbbb"}),(0,n.jsx)("path",{d:"M124.24 140.54l4.32-16.22-86.97-17.83-3.78 17.83zM49.7 82.16L130.72 120l7.56-16.22-81.02-37.83zm22.68-40l68.06 57.3 11.35-13.51-68.6-57.3-11.35 13.51zM116.14 0l-14.59 10.81 53.48 71.89 14.58-10.81zM37.81 162.16h86.43v-16.21H37.81z",fill:"#f48024"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"Stack Overflow"},linkedin:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 256"},e),r=r={children:(0,n.jsx)("path",{d:"M218.123 218.127h-37.931v-59.403c0-14.165-.253-32.4-19.728-32.4-19.756 0-22.779 15.434-22.779 31.369v60.43h-37.93V95.967h36.413v16.694h.51a39.907 39.907 0 0 1 35.928-19.733c38.445 0 45.533 25.288 45.533 58.186l-.016 67.013ZM56.955 79.27c-12.157.002-22.014-9.852-22.016-22.009-.002-12.157 9.851-22.014 22.008-22.016 12.157-.003 22.014 9.851 22.016 22.008A22.013 22.013 0 0 1 56.955 79.27m18.966 138.858H37.95V95.967h37.97v122.16ZM237.033.018H18.89C8.58-.098.125 8.161-.001 18.471v219.053c.122 10.315 8.576 18.582 18.89 18.474h218.144c10.336.128 18.823-8.139 18.966-18.474V18.454c-.147-10.33-8.635-18.588-18.966-18.453",fill:"#0A66C2"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"LinkedIn"},x:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"none",viewBox:"0 0 1200 1227"},e),r=r={className:(0,o.A)(e.className,"xSvg_Q0g7"),style:{"--dark":"#000","--light":"#fff"},children:(0,n.jsx)("path",{d:"M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"X"}};function s({platform:e,link:t}){var r;let{Icon:s,label:u}=null!==(r=l[e])&&void 0!==r?r:{Icon:i,label:e};return(0,n.jsx)(c.A,{className:a,href:t,title:u,children:(0,n.jsx)(s,{className:(0,o.A)(a)})})}function u({author:e}){var t;let r=Object.entries(null!==(t=e.socials)&&void 0!==t?t:{});return(0,n.jsx)("div",{className:"authorSocials_tPnL",children:r.map(([e,t])=>(0,n.jsx)(s,{platform:e,link:t},e))})}var b=r(37425);let p={authorImage:"authorImage_p8ow","author-as-h1":"author-as-h1_Pd3R","author-as-h2":"author-as-h2_UaZL",authorDetails:"authorDetails_dWdF",authorName:"authorName_Y8Hr",authorTitle:"authorTitle_Slpj",authorBlogPostCount:"authorBlogPostCount_FxU_"};function f(e){return e.href?(0,n.jsx)(c.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e)):(0,n.jsx)(n.Fragment,{children:e.children})}function O({title:e}){return(0,n.jsx)("small",{className:p.authorTitle,title:e,children:e})}function y({name:e,as:t}){return t?(0,n.jsx)(b.A,{as:t,className:p.authorName,children:e}):(0,n.jsx)("span",{className:p.authorName,children:e})}function j({count:e}){return(0,n.jsx)("span",{className:(0,o.A)(p.authorBlogPostCount),children:e})}function d({as:e,author:t,className:r,count:c}){let{name:i,title:a,url:l,imageURL:s,email:b,page:d}=t,m=(null==d?void 0:d.permalink)||l||b&&`mailto:${b}`||void 0;return(0,n.jsxs)("div",{className:(0,o.A)("avatar margin-bottom--sm",r,p[`author-as-${e}`]),children:[s&&(0,n.jsx)(f,{href:m,className:"avatar__photo-link",children:(0,n.jsx)("img",{className:(0,o.A)("avatar__photo",p.authorImage),src:s,alt:i})}),(i||a)&&(0,n.jsxs)("div",{className:(0,o.A)("avatar__intro",p.authorDetails),children:[(0,n.jsxs)("div",{className:"avatar__name",children:[i&&(0,n.jsx)(f,{href:m,children:(0,n.jsx)(y,{name:i,as:e})}),void 0!==c&&(0,n.jsx)(j,{count:c})]}),!!a&&(0,n.jsx)(O,{title:a}),(0,n.jsx)(u,{author:t})]})]})}},42016:(e,t,r)=>{r.r(t),r.d(t,{default:()=>g});var n=r(62540);r(63696);var o=r(11750),c=r(37554),i=r(12653),a=r(13239),l=r(36372),s=r(69473),u=r(94389),b=r(467),p=r(3113),f=r(61662),O=r(6205);function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function j({author:e}){let t=(0,a.wI)(e);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.be,{title:t}),(0,n.jsx)(p.A,{tag:"blog_authors_posts"})]})}function d(){let{authorsListPath:e}=(0,s.x)();return(0,n.jsx)(l.A,{href:e,children:(0,n.jsx)(a.np,{})})}function m({author:e,items:t,sidebar:r,listMetadata:o}){return(0,n.jsxs)(u.A,{sidebar:r,children:[(0,n.jsxs)("header",{className:"margin-bottom--xl",children:[(0,n.jsx)(O.A,{as:"h1",author:e}),e.description&&(0,n.jsx)("p",{children:e.description}),(0,n.jsx)(d,{})]}),0===t.length?(0,n.jsx)("p",{children:(0,n.jsx)(a.Y4,{})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("hr",{}),(0,n.jsx)(f.A,{items:t}),(0,n.jsx)(b.A,{metadata:o})]})]})}function g(e){return(0,n.jsxs)(c.e3,{className:(0,o.A)(i.G.wrapper.blogPages,i.G.page.blogAuthorsPostsPage),children:[(0,n.jsx)(j,y({},e)),(0,n.jsx)(m,y({},e))]})}},94389:(e,t,r)=>{r.d(t,{A:()=>v});var n=r(62540),o=r(63696),c=r(11750),i=r(99849),a=r(85975),l=r(81912),s=r(69473),u=r(25436),b=r(37425);function p({year:e,yearGroupHeadingClassName:t,children:r}){return(0,n.jsxs)("div",{role:"group",children:[(0,n.jsx)(b.A,{as:"h3",className:t,children:e}),r]})}let f=(0,o.memo)(function({items:e,yearGroupHeadingClassName:t,ListComponent:r}){if(!(0,u.p)().blog.sidebar.groupByYear)return(0,n.jsx)(r,{items:e});{let o=(0,s.Ki)(e);return(0,n.jsx)(n.Fragment,{children:o.map(([e,o])=>(0,n.jsx)(p,{year:e,yearGroupHeadingClassName:t,children:(0,n.jsx)(r,{items:o})},e))})}}),O=({items:e})=>(0,n.jsx)(s.OU,{items:e,ulClassName:(0,c.A)("sidebarItemList_OSkG","clean-list"),liClassName:"sidebarItem_WJ0y",linkClassName:"sidebarItemLink_Qrfg",linkActiveClassName:"sidebarItemLinkActive_nUeK"}),y=(0,o.memo)(function({sidebar:e}){let t=(0,s.Gx)(e.items);return(0,n.jsx)("aside",{className:"col col--3",children:(0,n.jsxs)("nav",{className:(0,c.A)("sidebar_P3nc","thin-scrollbar"),"aria-label":(0,l.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,n.jsx)("div",{className:(0,c.A)("sidebarItemTitle_VrjY","margin-bottom--md"),children:e.title}),(0,n.jsx)(f,{items:t,ListComponent:O,yearGroupHeadingClassName:"yearGroupHeading_lECJ"})]})})});var j=r(2454);let d=({items:e})=>(0,n.jsx)(s.OU,{items:e,ulClassName:"menu__list",liClassName:"menu__list-item",linkClassName:"menu__link",linkActiveClassName:"menu__link--active"});function m({sidebar:e}){let t=(0,s.Gx)(e.items);return(0,n.jsx)(f,{items:t,ListComponent:d,yearGroupHeadingClassName:"yearGroupHeading_Ruz9"})}let g=(0,o.memo)(function(e){return(0,n.jsx)(j.GX,{component:m,props:e})});function h({sidebar:e}){let t=(0,a.l)();return(null==e?void 0:e.items.length)?"mobile"===t?(0,n.jsx)(g,{sidebar:e}):(0,n.jsx)(y,{sidebar:e}):null}function v(e){var t,r;let{sidebar:o,toc:a,children:l}=e,s=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["sidebar","toc","children"]),u=o&&o.items.length>0;return(0,n.jsx)(i.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},s),r=r={children:(0,n.jsx)("div",{className:"container margin-vert--lg",children:(0,n.jsxs)("div",{className:"row",children:[(0,n.jsx)(h,{sidebar:o}),(0,n.jsx)("main",{className:(0,c.A)("col",{"col--7":u,"col--9 col--offset-1":!u}),children:l}),a&&(0,n.jsx)("div",{className:"col col--2",children:a})]})})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},467:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(81912),c=r(88524);function i(e){let{metadata:t}=e,{previousPage:r,nextPage:i}=t;return(0,n.jsxs)("nav",{className:"pagination-nav","aria-label":(0,o.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[r&&(0,n.jsx)(c.A,{permalink:r,title:(0,n.jsx)(o.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer entries"})}),i&&(0,n.jsx)(c.A,{permalink:i,title:(0,n.jsx)(o.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older entries"}),isNext:!0})]})}},57813:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o({children:e,className:t}){return(0,n.jsx)("article",{className:t,children:e})}r(63696)},5939:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(11750),c=r(71106),i=r(69473),a=r(76699);function l({children:e,className:t}){let{isBlogPostPage:r}=(0,i.e7)();return(0,n.jsx)("div",{id:r?c.LU:void 0,className:(0,o.A)("markdown",t),children:(0,n.jsx)(a.A,{children:e})})}},21500:(e,t,r)=>{r.d(t,{A:()=>p});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(13111),a=r(60908),l=r(69473);function s({readingTime:e}){let t=function(){let{selectMessage:e}=(0,i.W)();return t=>{let r=Math.ceil(t);return e(r,(0,c.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:r}))}}();return(0,n.jsx)(n.Fragment,{children:t(e)})}function u({date:e,formattedDate:t}){return(0,n.jsx)("time",{dateTime:e,children:t})}function b(){return(0,n.jsx)(n.Fragment,{children:" \xb7 "})}function p({className:e}){let{metadata:t}=(0,l.e7)(),{date:r,readingTime:c}=t,i=(0,a.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,n.jsxs)("div",{className:(0,o.A)("container_x5Un","margin-vert--md",e),children:[(0,n.jsx)(u,{date:r,formattedDate:i.format(new Date(r))}),void 0!==c&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(b,{}),(0,n.jsx)(s,{readingTime:c})]})]})}},32886:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750),c=r(36372),i=r(69473);function a({className:e}){let{metadata:t,isBlogPostPage:r}=(0,i.e7)(),{permalink:a,title:l}=t;return(0,n.jsx)(r?"h1":"h2",{className:(0,o.A)("title_UBNu",e),children:r?l:(0,n.jsx)(c.A,{to:a,children:l})})}},50064:(e,t,r)=>{r.d(t,{A:()=>w});var n=r(62540);r(63696);var o=r(11750),c=r(69473),i=r(57813),a=r(32886),l=r(21500),s=r(6205);let u={authorCol:"authorCol_bvyx",imageOnlyAuthorRow:"imageOnlyAuthorRow_L2DM",imageOnlyAuthorCol:"imageOnlyAuthorCol_oyze"};function b({className:e}){let{metadata:{authors:t},assets:r}=(0,c.e7)();if(0===t.length)return null;let i=t.every(({name:e})=>!e),a=1===t.length;return(0,n.jsx)("div",{className:(0,o.A)("margin-top--md margin-bottom--sm",i?u.imageOnlyAuthorRow:"row",e),children:t.map((e,t)=>{var c,l,b;return(0,n.jsx)("div",{className:(0,o.A)(!i&&(a?"col col--12":"col col--6"),i?u.imageOnlyAuthorCol:u.authorCol),children:(0,n.jsx)(s.A,{author:(l=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),b=b={imageURL:null!==(c=r.authorsImageUrls[t])&&void 0!==c?c:e.imageURL},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(b)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(b)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(b,e))}),l)})},t)})})}function p(){return(0,n.jsxs)("header",{children:[(0,n.jsx)(a.A,{}),(0,n.jsx)(l.A,{}),(0,n.jsx)(b,{})]})}var f=r(5939),O=r(12653),y=r(2604),j=r(48447),d=r(81912),m=r(36372);function g(){return(0,n.jsx)("b",{children:(0,n.jsx)(d.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read more"})})}function h(e){var t,r;let{blogPostTitle:o}=e,c=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["blogPostTitle"]);return(0,n.jsx)(m.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({"aria-label":(0,d.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:o})},c),r=r={children:(0,n.jsx)(g,{})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function v(){let{metadata:e,isBlogPostPage:t}=(0,c.e7)(),{tags:r,title:i,editUrl:a,hasTruncateMarker:l,lastUpdatedBy:s,lastUpdatedAt:u}=e,b=!t&&l,p=r.length>0;if(!(p||b||a))return null;if(!t)return(0,n.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[p&&(0,n.jsx)("div",{className:(0,o.A)("col",{"col--9":b}),children:(0,n.jsx)(j.A,{tags:r})}),b&&(0,n.jsx)("div",{className:(0,o.A)("col text--right",{"col--3":p}),children:(0,n.jsx)(h,{blogPostTitle:i,to:e.permalink})})]});{let e=!!(a||u||s);return(0,n.jsxs)("footer",{className:"docusaurus-mt-lg",children:[p&&(0,n.jsx)("div",{className:(0,o.A)("row","margin-top--sm",O.G.blog.blogFooterEditMetaRow),children:(0,n.jsx)("div",{className:"col",children:(0,n.jsx)(j.A,{tags:r})})}),e&&(0,n.jsx)(y.A,{className:(0,o.A)("margin-top--sm",O.G.blog.blogFooterEditMetaRow),editUrl:a,lastUpdatedAt:u,lastUpdatedBy:s})]})}}function w({children:e,className:t}){let r=function(){let{isBlogPostPage:e}=(0,c.e7)();return e?void 0:"margin-bottom--xl"}();return(0,n.jsxs)(i.A,{className:(0,o.A)(r,t),children:[(0,n.jsx)(p,{}),(0,n.jsx)(f.A,{children:e}),(0,n.jsx)(v,{})]})}},61662:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(69473),c=r(50064);function i({items:e,component:t=c.A}){return(0,n.jsx)(n.Fragment,{children:e.map(({content:e})=>(0,n.jsx)(o.in,{content:e,children:(0,n.jsx)(t,{children:(0,n.jsx)(e,{})})},e.metadata.permalink))})}},23572:(e,t,r)=>{r.d(t,{A:()=>f});var n=r(62540),o=r(63696),c=r(11750),i=r(52711),a=r(10709),l=r(27720);let s={details:"details_Nokh",isBrowser:"isBrowser_QrB5",collapsibleContent:"collapsibleContent_EoA1"};function u(e){return!!e&&("SUMMARY"===e.tagName||u(e.parentElement))}function b(e){var t,r,{summary:b,children:p}=e,f=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["summary","children"]);(0,i.A)().collectAnchor(f.id);let O=(0,a.A)(),y=(0,o.useRef)(null),{collapsed:j,setCollapsed:d}=(0,l.u)({initialState:!f.open}),[m,g]=(0,o.useState)(f.open),h=o.isValidElement(b)?b:(0,n.jsx)("summary",{children:null!=b?b:"Details"});return(0,n.jsxs)("details",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},f),r=r={ref:y,open:m,"data-collapsed":j,className:(0,c.A)(s.details,O&&s.isBrowser,f.className),onMouseDown:e=>{u(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();let t=e.target;u(t)&&function e(t,r){return!!t&&(t===r||e(t.parentElement,r))}(t,y.current)&&(e.preventDefault(),j?(d(!1),g(!0)):d(!0))},children:[h,(0,n.jsx)(l.N,{lazy:!1,collapsed:j,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{d(e),g(!e)},children:(0,n.jsx)("div",{className:s.collapsibleContent,children:p})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function f(e){var t,r,o=p({},function(e){if(null==e)throw TypeError("Cannot destructure "+e);return e}(e));return(0,n.jsx)(b,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={className:(0,c.A)("alert alert--info","details_Cn_P",o.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},2604:(e,t,r)=>{r.d(t,{A:()=>O});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(12653),a=r(36372);function l(e){var t,r,{className:c}=e,i=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["className"]);return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,o.A)("iconEdit_IMw_",c),"aria-hidden":"true"},i),r=r={children:(0,n.jsx)("g",{children:(0,n.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function s({editUrl:e}){return(0,n.jsxs)(a.A,{to:e,className:i.G.common.editThisPage,children:[(0,n.jsx)(l,{}),(0,n.jsx)(c.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=r(60908);function b({lastUpdatedAt:e}){let t=new Date(e),r=(0,u.i)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(t);return(0,n.jsx)(c.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,n.jsx)("b",{children:(0,n.jsx)("time",{dateTime:t.toISOString(),itemProp:"dateModified",children:r})})},children:" on {date}"})}function p({lastUpdatedBy:e}){return(0,n.jsx)(c.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,n.jsx)("b",{children:e})},children:" by {user}"})}function f({lastUpdatedAt:e,lastUpdatedBy:t}){return(0,n.jsxs)("span",{className:i.G.common.lastUpdated,children:[(0,n.jsx)(c.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,n.jsx)(b,{lastUpdatedAt:e}):"",byUser:t?(0,n.jsx)(p,{lastUpdatedBy:t}):""},children:"Last updated{atDate}{byUser}"}),!1]})}function O({className:e,editUrl:t,lastUpdatedAt:r,lastUpdatedBy:c}){return(0,n.jsxs)("div",{className:(0,o.A)("row",e),children:[(0,n.jsx)("div",{className:"col",children:t&&(0,n.jsx)(s,{editUrl:t})}),(0,n.jsx)("div",{className:(0,o.A)("col","lastUpdated_OHCJ"),children:(r||c)&&(0,n.jsx)(f,{lastUpdatedAt:r,lastUpdatedBy:c})})]})}},76699:(e,t,r)=>{r.d(t,{A:()=>B});var n,o,c=r(62540),i=r(63696),a=r(43023),l=r(93394),s=r(55887);function u(e){return(0,c.jsx)("code",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function p(e){return void 0!==e.children&&i.Children.toArray(e.children).every(e=>"string"==typeof e&&!e.includes("\n"))?(0,c.jsx)(u,b({},e)):(0,c.jsx)(s.A,b({},e))}var f=r(36372),O=r(23572);function y(e){var t,r;let n=i.Children.toArray(e.children),o=n.find(e=>i.isValidElement(e)&&"summary"===e.type),a=(0,c.jsx)(c.Fragment,{children:n.filter(e=>e!==o)});return(0,c.jsx)(O.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={summary:o,children:a},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var j=r(37425);function d(e){return(0,c.jsx)(j.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}var m=r(11750);let g={containsTaskList:"containsTaskList_k9gM"};var h=r(52711),v=r(55640),w=r(43758),P=r(1495),x=r(25436),S=r(66659),k=r(7293);async function A({id:e,text:t,config:r}){k.A.mermaidAPI.initialize(r);try{return await k.A.render(e,t)}catch(t){var n;throw null===(n=document.querySelector(`#d${e}`))||void 0===n||n.remove(),t}}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function N({renderResult:e}){let t=(0,i.useRef)(null);return(0,i.useEffect)(()=>{var r;let n=t.current;null===(r=e.bindFunctions)||void 0===r||r.call(e,n)},[e]),(0,c.jsx)("div",{ref:t,className:"docusaurus-mermaid-container container_RUsj",dangerouslySetInnerHTML:{__html:e.svg}})}function E({value:e}){let t=function({text:e,config:t}){let[r,n]=(0,i.useState)(null),o=(0,i.useRef)(`mermaid-svg-${Math.round(1e7*Math.random())}`).current,c=function(){let{colorMode:e}=(0,S.G)(),t=(0,x.p)().mermaid,r=t.theme[e],{options:n}=t;return(0,i.useMemo)(()=>{var e,t;return e=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({startOnLoad:!1},n),t=t={theme:r},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e},[r,n])}(),a=null!=t?t:c;return(0,i.useEffect)(()=>{A({id:o,text:e,config:a}).then(n).catch(e=>{n(()=>{throw e})})},[o,e,a]),r}({text:e});return null===t?null:(0,c.jsx)(N,{renderResult:t})}function _(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let C=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},{Head:l.A,details:y,Details:y,code:p,a:function(e){return(0,c.jsx)(f.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},pre:function(e){return(0,c.jsx)(c.Fragment,{children:e.children})},ul:function(e){var t,r;return(0,c.jsx)("ul",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={className:function(e){if(void 0!==e)return(0,m.A)(e,(null==e?void 0:e.includes("contains-task-list"))&&g.containsTaskList)}(e.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},li:function(e){return(0,h.A)().collectAnchor(e.id),(0,c.jsx)("li",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},img:function(e){var t,r,n;return(0,c.jsx)("img",(r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({decoding:"async",loading:"lazy"},e),n=n={className:(t=e.className,(0,m.A)(t,"img_vXGZ"))},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r))},h1:e=>(0,c.jsx)(d,_({as:"h1"},e)),h2:e=>(0,c.jsx)(d,_({as:"h2"},e)),h3:e=>(0,c.jsx)(d,_({as:"h3"},e)),h4:e=>(0,c.jsx)(d,_({as:"h4"},e)),h5:e=>(0,c.jsx)(d,_({as:"h5"},e)),h6:e=>(0,c.jsx)(d,_({as:"h6"},e)),admonition:v.A,mermaid:function(e){return(0,c.jsx)(w.A,{fallback:e=>(0,c.jsx)(P.MN,D({},e)),children:(0,c.jsx)(E,D({},e))})}}),o=o={Code:p,Highlight:function({children:e,color:t}){return(0,c.jsx)("span",{style:{backgroundColor:t,borderRadius:"2px",color:"#fff",padding:"0.2rem"},children:e})},TweetQuote:function({url:e,handle:t,name:r,job:n,children:o}){let i=`https://unavatar.io/x/${t}`,a=`https://x.com/${t}`;return(0,c.jsxs)("figure",{className:"tweetQuote_h8Rz",children:[(0,c.jsx)("blockquote",{children:(0,c.jsx)(f.A,{to:e,children:o})}),(0,c.jsx)("figcaption",{children:(0,c.jsx)(f.A,{to:a,rel:"nofollow",children:(0,c.jsxs)("div",{className:"avatar",children:[(0,c.jsx)("img",{alt:r,className:(0,m.A)("avatar__photo","avatarImg_b51M"),src:i}),(0,c.jsxs)("div",{className:(0,m.A)("avatar__intro"),children:[(0,c.jsx)("strong",{className:"avatar__name",children:(0,c.jsx)("cite",{children:r})}),(0,c.jsx)("small",{className:"avatar__subtitle",itemProp:"description",children:n})]})]})})})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function B({children:e}){return(0,c.jsx)(a.x,{components:C,children:e})}},88524:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(11750),c=r(36372);function i(e){let{permalink:t,title:r,subLabel:i,isNext:a}=e;return(0,n.jsxs)(c.A,{className:(0,o.A)("pagination-nav__link",a?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[i&&(0,n.jsx)("div",{className:"pagination-nav__sublabel",children:i}),(0,n.jsx)("div",{className:"pagination-nav__label",children:r})]})}},82499:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750),c=r(36372);let i={tag:"tag_Nd8t",tagRegular:"tagRegular_TiLs",tagWithCount:"tagWithCount_AQg7"};function a({permalink:e,label:t,count:r,description:a}){return(0,n.jsxs)(c.A,{href:e,title:a,className:(0,o.A)(i.tag,r?i.tagWithCount:i.tagRegular),children:[t,r&&(0,n.jsx)("span",{children:r})]})}},48447:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(82499);function a({tags:e}){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("b",{children:(0,n.jsx)(c.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,n.jsx)("ul",{className:(0,o.A)("tags_rTaS","padding--none","margin-left--sm"),children:e.map(e=>(0,n.jsx)("li",{className:"tag_l5va",children:(0,n.jsx)(i.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},e.permalink))})]})}},13239:(e,t,r)=>{r.d(t,{Y4:()=>b,ZD:()=>a,np:()=>u,uz:()=>s,wI:()=>l});var n=r(62540);r(63696);var o=r(81912),c=r(13111);function i(){let{selectMessage:e}=(0,c.W)();return t=>e(t,(0,o.T)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}function a(e){let t=i();return(0,o.T)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}function l(e){let t=i();return(0,o.T)({id:"theme.blog.author.pageTitle",description:"The title of the page for a blog author",message:"{authorName} - {nPosts}"},{nPosts:t(e.count),authorName:e.name||e.key})}let s=()=>(0,o.T)({id:"theme.blog.authorsList.pageTitle",message:"Authors",description:"The title of the authors page"});function u(){return(0,n.jsx)(o.A,{id:"theme.blog.authorsList.viewAll",description:"The label of the link targeting the blog authors page",children:"View all authors"})}function b(){return(0,n.jsx)(o.A,{id:"theme.blog.author.noPosts",description:"The text for authors with 0 blog post",children:"This author has not written any posts yet."})}},60908:(e,t,r)=>{r.d(t,{i:()=>o});var n=r(99468);function o(e={}){let{i18n:{currentLocale:t}}=(0,n.A)(),r=function(){let{i18n:{currentLocale:e,localeConfigs:t}}=(0,n.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({calendar:r},e))}},13111:(e,t,r)=>{r.d(t,{W:()=>l});var n=r(63696),o=r(99468);let c=["zero","one","two","few","many","other"];function i(e){return c.filter(t=>e.includes(t))}let a={locale:"en",pluralForms:i(["one","other"]),select:e=>1===e?"one":"other"};function l(){let e=function(){let{i18n:{currentLocale:e}}=(0,o.A)();return(0,n.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:i(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". Docusaurus will fallback to the default (English) implementation. Error: ${t.message} `),a}},[e])}();return{selectMessage:(t,r)=>(function(e,t,r){let n=e.split("|");if(1===n.length)return n[0];n.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${n.length}: ${e}`);let o=r.select(t);return n[Math.min(r.pluralForms.indexOf(o),n.length-1)]})(r,t,e)}}},40576:(e,t,r)=>{r.d(t,{A:()=>c});var n=r(62540);r(63696);var o=r(10709);function c({children:e,fallback:t}){return(0,o.A)()?(0,n.jsx)(n.Fragment,{children:null==e?void 0:e()}):null!=t?t:null}},55887:(e,t,r)=>{r.d(t,{A:()=>ea});var n,o,c,i={};r.r(i),r.d(i,{ButtonExample:()=>E});var a=r(62540),l=r(63696),s=r(11750),u=r(10709),b=r(55152),p=r(81912),f=r(99468),O=r(40576),y=r(1495),j=r(66659),d=r(25436);function m(){let{prism:e}=(0,d.p)(),{colorMode:t}=(0,j.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var g=r(43758);function h(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,a.jsx)("div",{className:(0,s.A)("playgroundHeader_Tvsk"),children:e})}function w(){return(0,a.jsx)("div",{children:"Loading..."})}function P(){return(0,a.jsx)(O.A,{fallback:(0,a.jsx)(w,{}),children:()=>(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g.A,{fallback:e=>(0,a.jsx)(y.MN,h({},e)),children:(0,a.jsx)(b.pA,{})}),(0,a.jsx)(b.p1,{})]})})}function x(){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(v,{children:(0,a.jsx)(p.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,a.jsx)("div",{className:"playgroundPreview_mApW",children:(0,a.jsx)(P,{})})]})}function S(){let e=(0,u.A)();return(0,a.jsx)(b.w,{className:"playgroundEditor_TySg"},String(e))}function k(){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(v,{children:(0,a.jsx)(p.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,a.jsx)(S,{})]})}let A=e=>`${e};`;function D(e){var t,r,n,o,{children:c,transformCode:i}=e,l=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:s}}=(0,f.A)(),{liveCodeBlock:{playgroundPosition:u}}=s,p=m(),O=null!==(o=null===(n=l.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,a.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,a.jsx)(b.Q,(t=h({code:null==c?void 0:c.replace(/\n$/,""),noInline:O,transformCode:null!=i?i:A,theme:p},l),r=r={children:"top"===u?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x,{}),(0,a.jsx)(k,{})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(k,{}),(0,a.jsx)(x,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function N(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function E(e){var t,r;return(0,a.jsx)("button",(t=N({type:"button"},e),r=r={style:N({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let _=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:l},l,i);var C=r(12653),B=r(19934),T=r.n(B);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),M=RegExp("\\{(?<range>[\\d,-]+)\\}"),I={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},R=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},I),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),H=Object.keys(I);function z(e,t){let r=e.map(e=>{let{start:r,end:n}=R[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function U(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let c=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(m());return(0,a.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:c,className:(0,s.A)(o.className,"codeBlockContainer_jDV4",C.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let $={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function F({children:e,className:t}){return(0,a.jsx)(U,{as:"pre",tabIndex:0,className:(0,s.A)($.codeBlockStandalone,"thin-scrollbar",t),children:(0,a.jsx)("code",{className:$.codeBlockLines,children:e})})}var G=r(2550);let W={attributes:!0,characterData:!0,childList:!0,subtree:!0};var V=r(27663);let Z={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function q(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function Y({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var c,i;1===e.length&&"\n"===e[0].content&&(e[0].content="");let l=n({line:e,className:(0,s.A)(t,r&&Z.codeLine)}),u=e.map((e,t)=>(0,a.jsx)("span",q({},o({token:e})),t));return(0,a.jsxs)("span",(c=q({},l),i=i={children:[r?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:Z.codeLineNumber}),(0,a.jsx)("span",{className:Z.codeLineContent,children:u})]}):u,(0,a.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(i)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(i)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(i,e))}),c))}var Q=r(936);function J(e){var t,r;return(0,a.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,a.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function X(e){var t,r;return(0,a.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,a.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,l.useState)(!1),o=(0,l.useRef)(void 0),c=(0,l.useCallback)(()=>{(0,Q.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,l.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,a.jsx)("button",{type:"button","aria-label":r?(0,p.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,s.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:c,children:(0,a.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,a.jsx)(J,{className:K.copyButtonIcon}),(0,a.jsx)(X,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,a.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,a.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,p.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,a.jsx)("button",{type:"button",onClick:t,className:(0,s.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,a.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:c}){var i,u,b,p;let{prism:{defaultLanguage:f,magicComments:O}}=(0,d.p)(),y=null==(u=null!==(i=null!=c?c:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==i?i:f)?void 0:u.toLowerCase(),j=m(),g=function(){let[e,t]=(0,l.useState)(!1),[r,n]=(0,l.useState)(!1),o=(0,l.useRef)(null),c=(0,l.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),i=(0,l.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,l.useState)(),o=(0,l.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,l.useEffect)(()=>{o()},[o]),function(e,t,r=W){let n=(0,G._q)(t),o=(0,G.Be)(r);(0,l.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,i),(0,l.useEffect)(()=>{i()},[e,i]),(0,l.useEffect)(()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)}),[i]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:c}}(),h=(null!==(p=null==r?void 0:null===(b=r.match(L))||void 0===b?void 0:b.groups.title)&&void 0!==p?p:"")||n,{lineClassNames:v,code:w}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:c}=t;if(c&&M.test(c)){let e=c.match(M).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${c}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(T()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return z(["js","jsBlock"],t);case"jsx":case"tsx":return z(["js","jsBlock","jsx"],t);case"html":return z(["js","jsBlock","html"],t);case"python":case"py":case"bash":return z(["bash"],t);case"markdown":case"md":return z(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return z(["tex"],t);case"lua":case"haskell":case"sql":return z(["lua"],t);case"wasm":return z(["wasm"],t);case"vb":case"vba":case"visual-basic":return z(["vb","rem"],t);case"vbnet":return z(["vbnet","rem"],t);case"batch":return z(["rem"],t);case"basic":return z(["rem","f90"],t);case"fsharp":return z(["js","ml"],t);case"ocaml":case"sml":return z(["ml"],t);case"fortran":return z(["f90"],t);case"cobol":return z(["cobol"],t);default:return z(H,t)}}(n,o),a=r.split("\n"),l=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),s=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),b=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<a.length;){let t=a[e].match(i);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);s[r]?l[s[r]].range+=`${e},`:u[r]?l[u[r]].start=e:b[r]&&(l[b[r]].range+=`${l[b[r]].start}-${e-1},`),a.splice(e,1)}r=a.join("\n");let p={};return Object.entries(l).forEach(([e,{range:t}])=>{T()(t).forEach(t=>{var r;null!==(r=p[t])&&void 0!==r||(p[t]=[]),p[t].push(e)})}),{lineClassNames:p,code:r}}(e,{metastring:r,language:y,magicComments:O}),P=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,a.jsxs)(U,{as:"div",className:(0,s.A)(t,y&&!t.includes(`language-${y}`)&&`language-${y}`),children:[h&&(0,a.jsx)("div",{className:$.codeBlockTitle,children:h}),(0,a.jsxs)("div",{className:$.codeBlockContent,children:[(0,a.jsx)(V.f4,{theme:j,code:w,language:null!=y?y:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,a.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,s.A)(e,$.codeBlock,"thin-scrollbar"),style:t,children:(0,a.jsx)("code",{className:(0,s.A)($.codeBlockLines,P&&$.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,a.jsx)(Y,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:P},t))})})}),(0,a.jsxs)("div",{className:$.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,a.jsx)(en,{className:$.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,a.jsx)(ee,{className:$.codeButton,code:w})]})]})]})}function ec(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let ei=(c=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let c=(0,u.A)(),i=l.Children.toArray(n).some(e=>(0,l.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,s="string"==typeof i?eo:F;return(0,a.jsx)(s,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(c))},function(e){return e.live?(0,a.jsx)(D,ec({scope:_},e)):(0,a.jsx)(c,ec({},e))});function ea(e){return(0,a.jsx)(ei,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}}}]); \ No newline at end of file diff --git a/assets/js/34166.f6a8d038.js b/assets/js/34166.f6a8d038.js new file mode 100644 index 0000000000..163f962238 --- /dev/null +++ b/assets/js/34166.f6a8d038.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[34166],{22076:(t,r,e)=>{e.d(r,{A:()=>o});var n=e(63713);function u(t){var r=-1,e=null==t?0:t.length;for(this.__data__=new n.A;++r<e;)this.add(t[r])}u.prototype.add=u.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},u.prototype.has=function(t){return this.__data__.has(t)};let o=u},55931:(t,r,e)=>{e.d(r,{A:()=>n});let n=function(t,r){for(var e=-1,n=null==t?0:t.length;++e<n&&!1!==r(t[e],e,t););return t}},56968:(t,r,e)=>{e.d(r,{A:()=>n});let n=function(t,r){for(var e=-1,n=null==t?0:t.length,u=0,o=[];++e<n;){var a=t[e];r(a,e,t)&&(o[u++]=a)}return o}},50695:(t,r,e)=>{e.d(r,{A:()=>u});var n=e(15972);let u=function(t,r){return!!(null==t?0:t.length)&&(0,n.A)(t,r,0)>-1}},72287:(t,r,e)=>{e.d(r,{A:()=>n});let n=function(t,r,e){for(var n=-1,u=null==t?0:t.length;++n<u;)if(e(r,t[n]))return!0;return!1}},66046:(t,r,e)=>{e.d(r,{A:()=>n});let n=function(t,r){for(var e=-1,n=null==t?0:t.length,u=Array(n);++e<n;)u[e]=r(t[e],e,t);return u}},29538:(t,r,e)=>{e.d(r,{A:()=>n});let n=function(t,r){for(var e=-1,n=r.length,u=t.length;++e<n;)t[u+e]=r[e];return t}},19774:(t,r,e)=>{e.d(r,{A:()=>n});let n=function(t,r){for(var e=-1,n=null==t?0:t.length;++e<n;)if(r(t[e],e,t))return!0;return!1}},34081:(t,r,e)=>{e.d(r,{A:()=>V});var n=e(72872),u=e(55931),o=e(84805),a=e(68785),c=e(95240),i=e(97937),A=e(35012),f=e(61733),l=e(99110),v=e(52401),b=e(18064),s=e(14879),d=e(86073),j=Object.prototype.hasOwnProperty;let p=function(t){var r=t.length,e=new t.constructor(r);return r&&"string"==typeof t[0]&&j.call(t,"index")&&(e.index=t.index,e.input=t.input),e};var y=e(29427);let h=function(t,r){var e=r?(0,y.A)(t.buffer):t.buffer;return new t.constructor(e,t.byteOffset,t.byteLength)};var g=/\w*$/;let w=function(t){var r=new t.constructor(t.source,g.exec(t));return r.lastIndex=t.lastIndex,r};var O=e(70807),_=O.A?O.A.prototype:void 0,m=_?_.valueOf:void 0,S=e(33379);let k=function(t,r,e){var n=t.constructor;switch(r){case"[object ArrayBuffer]":return(0,y.A)(t);case"[object Boolean]":case"[object Date]":return new n(+t);case"[object DataView]":return h(t,e);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return(0,S.A)(t,e);case"[object Map]":case"[object Set]":return new n;case"[object Number]":case"[object String]":return new n(t);case"[object RegExp]":return w(t);case"[object Symbol]":return m?Object(m.call(t)):{}}};var E=e(49364),x=e(28675),I=e(38990),U=e(19196),B=e(39131),C=e(60027),D=C.A&&C.A.isMap,F=D?(0,B.A)(D):function(t){return(0,U.A)(t)&&"[object Map]"==(0,d.A)(t)},M=e(17731),P=C.A&&C.A.isSet,z=P?(0,B.A)(P):function(t){return(0,U.A)(t)&&"[object Set]"==(0,d.A)(t)},L="[object Arguments]",$="[object Function]",N="[object Object]",R={};R[L]=R["[object Array]"]=R["[object ArrayBuffer]"]=R["[object DataView]"]=R["[object Boolean]"]=R["[object Date]"]=R["[object Float32Array]"]=R["[object Float64Array]"]=R["[object Int8Array]"]=R["[object Int16Array]"]=R["[object Int32Array]"]=R["[object Map]"]=R["[object Number]"]=R[N]=R["[object RegExp]"]=R["[object Set]"]=R["[object String]"]=R["[object Symbol]"]=R["[object Uint8Array]"]=R["[object Uint8ClampedArray]"]=R["[object Uint16Array]"]=R["[object Uint32Array]"]=!0,R["[object Error]"]=R[$]=R["[object WeakMap]"]=!1;let V=function t(r,e,j,y,h,g){var w,O=1&e,_=2&e,m=4&e;if(j&&(w=h?j(r,y,h,g):j(r)),void 0!==w)return w;if(!(0,M.A)(r))return r;var S=(0,x.A)(r);if(S){if(w=p(r),!O)return(0,f.A)(r,w)}else{var U,B,C,D,P=(0,d.A)(r),V=P==$||"[object GeneratorFunction]"==P;if((0,I.A)(r))return(0,A.A)(r,O);if(P==N||P==L||V&&!h){if(w=_||V?{}:(0,E.A)(r),!O)return _?(B=(U=w)&&(0,a.A)(r,(0,i.A)(r),U),(0,a.A)(r,(0,v.A)(r),B)):(D=(C=w)&&(0,a.A)(r,(0,c.A)(r),C),(0,a.A)(r,(0,l.A)(r),D))}else{if(!R[P])return h?r:{};w=k(r,P,O)}}g||(g=new n.A);var G=g.get(r);if(G)return G;g.set(r,w),z(r)?r.forEach(function(n){w.add(t(n,e,j,n,r,g))}):F(r)&&r.forEach(function(n,u){w.set(u,t(n,e,j,u,r,g))});var W=m?_?s.A:b.A:_?i.A:c.A,q=S?void 0:W(r);return(0,u.A)(q||r,function(n,u){q&&(n=r[u=n]),(0,o.A)(w,u,t(n,e,j,u,r,g))}),w}},906:(t,r,e)=>{e.d(r,{A:()=>c});var n,u,o=e(39179),a=e(8860);let c=(n=o.A,function(t,r){if(null==t)return t;if(!(0,a.A)(t))return n(t,r);for(var e=t.length,o=-1,c=Object(t);(u?o--:++o<e)&&!1!==r(c[o],o,c););return t})},98032:(t,r,e)=>{e.d(r,{A:()=>u});var n=e(906);let u=function(t,r){var e=[];return(0,n.A)(t,function(t,n,u){r(t,n,u)&&e.push(t)}),e}},54402:(t,r,e)=>{e.d(r,{A:()=>n});let n=function(t,r,e,n){for(var u=t.length,o=e+(n?1:-1);n?o--:++o<u;)if(r(t[o],o,t))return o;return -1}},3858:(t,r,e)=>{e.d(r,{A:()=>A});var n=e(29538),u=e(70807),o=e(42908),a=e(28675),c=u.A?u.A.isConcatSpreadable:void 0;let i=function(t){return(0,a.A)(t)||(0,o.A)(t)||!!(c&&t&&t[c])},A=function t(r,e,u,o,a){var c=-1,A=r.length;for(u||(u=i),a||(a=[]);++c<A;){var f=r[c];e>0&&u(f)?e>1?t(f,e-1,u,o,a):(0,n.A)(a,f):o||(a[a.length]=f)}return a}},39179:(t,r,e)=>{e.d(r,{A:()=>o});var n=e(33240),u=e(95240);let o=function(t,r){return t&&(0,n.A)(t,r,u.A)}},79696:(t,r,e)=>{e.d(r,{A:()=>o});var n=e(98669),u=e(63307);let o=function(t,r){r=(0,n.A)(r,t);for(var e=0,o=r.length;null!=t&&e<o;)t=t[(0,u.A)(r[e++])];return e&&e==o?t:void 0}},94661:(t,r,e)=>{e.d(r,{A:()=>o});var n=e(29538),u=e(28675);let o=function(t,r,e){var o=r(t);return(0,u.A)(t)?o:(0,n.A)(o,e(t))}},15972:(t,r,e)=>{e.d(r,{A:()=>a});var n=e(54402);let u=function(t){return t!=t},o=function(t,r,e){for(var n=e-1,u=t.length;++n<u;)if(t[n]===r)return n;return -1},a=function(t,r,e){return r==r?o(t,r,e):(0,n.A)(t,u,e)}},18592:(t,r,e)=>{e.d(r,{A:()=>W});var n=e(72872),u=e(22076),o=e(19774),a=e(18097);let c=function(t,r,e,n,c,i){var A=1&e,f=t.length,l=r.length;if(f!=l&&!(A&&l>f))return!1;var v=i.get(t),b=i.get(r);if(v&&b)return v==r&&b==t;var s=-1,d=!0,j=2&e?new u.A:void 0;for(i.set(t,r),i.set(r,t);++s<f;){var p=t[s],y=r[s];if(n)var h=A?n(y,p,s,r,t,i):n(p,y,s,t,r,i);if(void 0!==h){if(h)continue;d=!1;break}if(j){if(!(0,o.A)(r,function(t,r){if(!(0,a.A)(j,r)&&(p===t||c(p,t,e,n,i)))return j.push(r)})){d=!1;break}}else if(!(p===y||c(p,y,e,n,i))){d=!1;break}}return i.delete(t),i.delete(r),d};var i=e(70807),A=e(12066),f=e(65866);let l=function(t){var r=-1,e=Array(t.size);return t.forEach(function(t,n){e[++r]=[n,t]}),e};var v=e(72801),b=i.A?i.A.prototype:void 0,s=b?b.valueOf:void 0;let d=function(t,r,e,n,u,o,a){switch(e){case"[object DataView]":if(t.byteLength!=r.byteLength||t.byteOffset!=r.byteOffset)break;t=t.buffer,r=r.buffer;case"[object ArrayBuffer]":if(t.byteLength!=r.byteLength||!o(new A.A(t),new A.A(r)))break;return!0;case"[object Boolean]":case"[object Date]":case"[object Number]":return(0,f.A)(+t,+r);case"[object Error]":return t.name==r.name&&t.message==r.message;case"[object RegExp]":case"[object String]":return t==r+"";case"[object Map]":var i=l;case"[object Set]":var b=1&n;if(i||(i=v.A),t.size!=r.size&&!b)break;var d=a.get(t);if(d)return d==r;n|=2,a.set(t,r);var j=c(i(t),i(r),n,u,o,a);return a.delete(t),j;case"[object Symbol]":if(s)return s.call(t)==s.call(r)}return!1};var j=e(18064),p=Object.prototype.hasOwnProperty;let y=function(t,r,e,n,u,o){var a=1&e,c=(0,j.A)(t),i=c.length;if(i!=(0,j.A)(r).length&&!a)return!1;for(var A=i;A--;){var f=c[A];if(!(a?f in r:p.call(r,f)))return!1}var l=o.get(t),v=o.get(r);if(l&&v)return l==r&&v==t;var b=!0;o.set(t,r),o.set(r,t);for(var s=a;++A<i;){var d=t[f=c[A]],y=r[f];if(n)var h=a?n(y,d,f,r,t,o):n(d,y,f,t,r,o);if(!(void 0===h?d===y||u(d,y,e,n,o):h)){b=!1;break}s||(s="constructor"==f)}if(b&&!s){var g=t.constructor,w=r.constructor;g!=w&&"constructor"in t&&"constructor"in r&&!("function"==typeof g&&g instanceof g&&"function"==typeof w&&w instanceof w)&&(b=!1)}return o.delete(t),o.delete(r),b};var h=e(86073),g=e(28675),w=e(38990),O=e(75216),_="[object Arguments]",m="[object Array]",S="[object Object]",k=Object.prototype.hasOwnProperty;let E=function(t,r,e,u,o,a){var i=(0,g.A)(t),A=(0,g.A)(r),f=i?m:(0,h.A)(t),l=A?m:(0,h.A)(r);f=f==_?S:f,l=l==_?S:l;var v=f==S,b=l==S,s=f==l;if(s&&(0,w.A)(t)){if(!(0,w.A)(r))return!1;i=!0,v=!1}if(s&&!v)return a||(a=new n.A),i||(0,O.A)(t)?c(t,r,e,u,o,a):d(t,r,f,e,u,o,a);if(!(1&e)){var j=v&&k.call(t,"__wrapped__"),p=b&&k.call(r,"__wrapped__");if(j||p){var E=j?t.value():t,x=p?r.value():r;return a||(a=new n.A),o(E,x,e,u,a)}}return!!s&&(a||(a=new n.A),y(t,r,e,u,o,a))};var x=e(19196);let I=function t(r,e,n,u,o){return r===e||(null!=r&&null!=e&&((0,x.A)(r)||(0,x.A)(e))?E(r,e,n,u,t,o):r!=r&&e!=e)},U=function(t,r,e,u){var o=e.length,a=o,c=!u;if(null==t)return!a;for(t=Object(t);o--;){var i=e[o];if(c&&i[2]?i[1]!==t[i[0]]:!(i[0]in t))return!1}for(;++o<a;){var A=(i=e[o])[0],f=t[A],l=i[1];if(c&&i[2]){if(void 0===f&&!(A in t))return!1}else{var v=new n.A;if(u)var b=u(f,l,A,t,r,v);if(!(void 0===b?I(l,f,3,u,v):b))return!1}}return!0};var B=e(17731);let C=function(t){return t==t&&!(0,B.A)(t)};var D=e(95240);let F=function(t){for(var r=(0,D.A)(t),e=r.length;e--;){var n=r[e],u=t[n];r[e]=[n,u,C(u)]}return r},M=function(t,r){return function(e){return null!=e&&e[t]===r&&(void 0!==r||t in Object(e))}},P=function(t){var r=F(t);return 1==r.length&&r[0][2]?M(r[0][0],r[0][1]):function(e){return e===t||U(e,t,r)}};var z=e(79696);let L=function(t,r,e){var n=null==t?void 0:(0,z.A)(t,r);return void 0===n?e:n};var $=e(15866),N=e(85584),R=e(63307),V=e(83910),G=e(97043);let W=function(t){var r,e,n;if("function"==typeof t)return t;if(null==t)return V.A;if("object"==typeof t){;return(0,g.A)(t)?(r=t[0],e=t[1],(0,N.A)(r)&&C(e)?M((0,R.A)(r),e):function(t){var n=L(t,r);return void 0===n&&n===e?(0,$.A)(t,r):I(e,n,3)}):P(t)}return n=t,(0,N.A)(n)?(0,G.A)((0,R.A)(n)):function(t){return(0,z.A)(t,n)}}},97043:(t,r,e)=>{e.d(r,{A:()=>n});let n=function(t){return function(r){return null==r?void 0:r[t]}}},5264:(t,r,e)=>{e.d(r,{A:()=>l});var n=e(22076),u=e(50695),o=e(72287),a=e(18097),c=e(38779),i=e(77988),A=e(72801),f=c.A&&1/(0,A.A)(new c.A([,-0]))[1]==1/0?function(t){return new c.A(t)}:i.A;let l=function(t,r,e){var c=-1,i=u.A,l=t.length,v=!0,b=[],s=b;if(e)v=!1,i=o.A;else if(l>=200){var d=r?null:f(t);if(d)return(0,A.A)(d);v=!1,i=a.A,s=new n.A}else s=r?[]:b;t:for(;++c<l;){var j=t[c],p=r?r(j):j;if(j=e||0!==j?j:0,v&&p==p){for(var y=s.length;y--;)if(s[y]===p)continue t;r&&s.push(p),b.push(j)}else i(s,p,e)||(s!==b&&s.push(p),b.push(j))}return b}},18097:(t,r,e)=>{e.d(r,{A:()=>n});let n=function(t,r){return t.has(r)}},59176:(t,r,e)=>{e.d(r,{A:()=>u});var n=e(83910);let u=function(t){return"function"==typeof t?t:n.A}},98669:(t,r,e)=>{e.d(r,{A:()=>b});var n,u,o,a=e(28675),c=e(85584),i=e(12854),A=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,f=/\\(\\)?/g,l=(n=function(t){var r=[];return 46===t.charCodeAt(0)&&r.push(""),t.replace(A,function(t,e,n,u){r.push(n?u.replace(f,"$1"):e||t)}),r},o=(u=(0,i.A)(n,function(t){return 500===o.size&&o.clear(),t})).cache,u),v=e(66784);let b=function(t,r){return(0,a.A)(t)?t:(0,c.A)(t,r)?[t]:l((0,v.A)(t))}},18064:(t,r,e)=>{e.d(r,{A:()=>a});var n=e(94661),u=e(99110),o=e(95240);let a=function(t){return(0,n.A)(t,o.A,u.A)}},14879:(t,r,e)=>{e.d(r,{A:()=>a});var n=e(94661),u=e(52401),o=e(97937);let a=function(t){return(0,n.A)(t,o.A,u.A)}},99110:(t,r,e)=>{e.d(r,{A:()=>c});var n=e(56968),u=e(36679),o=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols;let c=a?function(t){return null==t?[]:(t=Object(t),(0,n.A)(a(t),function(r){return o.call(t,r)}))}:u.A},52401:(t,r,e)=>{e.d(r,{A:()=>c});var n=e(29538),u=e(30481),o=e(99110),a=e(36679);let c=Object.getOwnPropertySymbols?function(t){for(var r=[];t;)(0,n.A)(r,(0,o.A)(t)),t=(0,u.A)(t);return r}:a.A},90536:(t,r,e)=>{e.d(r,{A:()=>A});var n=e(98669),u=e(42908),o=e(28675),a=e(49031),c=e(13884),i=e(63307);let A=function(t,r,e){r=(0,n.A)(r,t);for(var A=-1,f=r.length,l=!1;++A<f;){var v=(0,i.A)(r[A]);if(!(l=null!=t&&e(t,v)))break;t=t[v]}return l||++A!=f?l:!!(f=null==t?0:t.length)&&(0,c.A)(f)&&(0,a.A)(v,f)&&((0,o.A)(t)||(0,u.A)(t))}},85584:(t,r,e)=>{e.d(r,{A:()=>c});var n=e(28675),u=e(40932),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;let c=function(t,r){if((0,n.A)(t))return!1;var e=typeof t;return!!("number"==e||"symbol"==e||"boolean"==e||null==t||(0,u.A)(t))||a.test(t)||!o.test(t)||null!=r&&t in Object(r)}},72801:(t,r,e)=>{e.d(r,{A:()=>n});let n=function(t){var r=-1,e=Array(t.size);return t.forEach(function(t){e[++r]=t}),e}},63307:(t,r,e)=>{e.d(r,{A:()=>o});var n=e(40932),u=1/0;let o=function(t){if("string"==typeof t||(0,n.A)(t))return t;var r=t+"";return"0"==r&&1/t==-u?"-0":r}},74990:(t,r,e)=>{e.d(r,{A:()=>c});var n=e(56968),u=e(98032),o=e(18592),a=e(28675);let c=function(t,r){return((0,a.A)(t)?n.A:u.A)(t,(0,o.A)(r,3))}},7392:(t,r,e)=>{e.d(r,{A:()=>c});var n=e(55931),u=e(906),o=e(59176),a=e(28675);let c=function(t,r){return((0,a.A)(t)?n.A:u.A)(t,(0,o.A)(r))}},62859:(t,r,e)=>{e.d(r,{A:()=>a});var n=Object.prototype.hasOwnProperty;let u=function(t,r){return null!=t&&n.call(t,r)};var o=e(90536);let a=function(t,r){return null!=t&&(0,o.A)(t,r,u)}},15866:(t,r,e)=>{e.d(r,{A:()=>o});let n=function(t,r){return null!=t&&r in Object(t)};var u=e(90536);let o=function(t,r){return null!=t&&(0,u.A)(t,r,n)}},40932:(t,r,e)=>{e.d(r,{A:()=>o});var n=e(36798),u=e(19196);let o=function(t){return"symbol"==typeof t||(0,u.A)(t)&&"[object Symbol]"==(0,n.A)(t)}},31454:(t,r,e)=>{e.d(r,{A:()=>n});let n=function(t){return void 0===t}},95240:(t,r,e)=>{e.d(r,{A:()=>a});var n=e(78373),u=e(88601),o=e(8860);let a=function(t){return(0,o.A)(t)?(0,n.A)(t):(0,u.A)(t)}},77988:(t,r,e)=>{e.d(r,{A:()=>n});let n=function(){}},91825:(t,r,e)=>{e.d(r,{A:()=>i});let n=function(t,r,e,n){var u=-1,o=null==t?0:t.length;for(n&&o&&(e=t[++u]);++u<o;)e=r(e,t[u],u,t);return e};var u=e(906),o=e(18592);let a=function(t,r,e,n,u){return u(t,function(t,u,o){e=n?(n=!1,t):r(e,t,u,o)}),e};var c=e(28675);let i=function(t,r,e){var i=(0,c.A)(t)?n:a,A=arguments.length<3;return i(t,(0,o.A)(r,4),e,A,u.A)}},36679:(t,r,e)=>{e.d(r,{A:()=>n});let n=function(){return[]}},66784:(t,r,e)=>{e.d(r,{A:()=>l});var n=e(70807),u=e(66046),o=e(28675),a=e(40932),c=1/0,i=n.A?n.A.prototype:void 0,A=i?i.toString:void 0;let f=function t(r){if("string"==typeof r)return r;if((0,o.A)(r))return(0,u.A)(r,t)+"";if((0,a.A)(r))return A?A.call(r):"";var e=r+"";return"0"==e&&1/r==-c?"-0":e},l=function(t){return null==t?"":f(t)}},43337:(t,r,e)=>{e.d(r,{A:()=>o});var n=e(66046),u=e(95240);let o=function(t){var r;return null==t?[]:(r=(0,u.A)(t),(0,n.A)(r,function(r){return t[r]}))}}}]); \ No newline at end of file diff --git a/assets/js/35123c02.0d73c3fe.js b/assets/js/35123c02.0d73c3fe.js deleted file mode 100644 index 6c421a34c1..0000000000 --- a/assets/js/35123c02.0d73c3fe.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[64586],{60492:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>r,contentTitle:()=>o,default:()=>c,frontMatter:()=>d,metadata:()=>i,toc:()=>u});let i=JSON.parse('{"id":"tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3","title":"Only Unlisteds - Unlisted 3","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3.mdx","sourceDirName":"tests/visibility/only-unlisteds/unlisted-subcategory","slug":"/tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3","permalink":"/tests/docs/tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"}');var n=s(62540),l=s(43023);let d={unlisted:!0,tags:["visibility","unlisted"]},o="Only Unlisteds - Unlisted 3",r={},u=[];function a(t){let e={h1:"h1",header:"header",p:"p",...(0,l.R)(),...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.header,{children:(0,n.jsx)(e.h1,{id:"only-unlisteds---unlisted-3",children:"Only Unlisteds - Unlisted 3"})}),"\n",(0,n.jsx)(e.p,{children:"Doc with unlisted front matter"})]})}function c(t={}){let{wrapper:e}={...(0,l.R)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(a,{...t})}):a(t)}c.displayName="MDXContent(_dogfooding/_docs tests/tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3.mdx)"},43023:(t,e,s)=>{s.d(e,{R:()=>d,x:()=>o});var i=s(63696);let n={},l=i.createContext(n);function d(t){let e=i.useContext(l);return i.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function o(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:d(t.components),i.createElement(l.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/35123c02.a51c34e7.js b/assets/js/35123c02.a51c34e7.js new file mode 100644 index 0000000000..975edba0aa --- /dev/null +++ b/assets/js/35123c02.a51c34e7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[64586],{60492:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>r,contentTitle:()=>o,default:()=>c,frontMatter:()=>d,metadata:()=>i,toc:()=>u});let i=JSON.parse('{"id":"tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3","title":"Only Unlisteds - Unlisted 3","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3.mdx","sourceDirName":"tests/visibility/only-unlisteds/unlisted-subcategory","slug":"/tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3","permalink":"/tests/docs/tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"}');var n=s(62540),l=s(43023);let d={unlisted:!0,tags:["visibility","unlisted"]},o="Only Unlisteds - Unlisted 3",r={},u=[];function a(t){let e={h1:"h1",header:"header",p:"p",...(0,l.R)(),...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.header,{children:(0,n.jsx)(e.h1,{id:"only-unlisteds---unlisted-3",children:"Only Unlisteds - Unlisted 3"})}),"\n",(0,n.jsx)(e.p,{children:"Doc with unlisted front matter"})]})}function c(t={}){let{wrapper:e}={...(0,l.R)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(a,{...t})}):a(t)}c.displayName="MDXContent(_dogfooding/_docs tests/tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3.mdx)"},43023:(t,e,s)=>{s.d(e,{R:()=>d,x:()=>o});var i=s(63696);let n={},l=i.createContext(n);function d(t){let e=i.useContext(l);return i.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function o(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:d(t.components),i.createElement(l.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/3716f59c.25365a54.js b/assets/js/3716f59c.e9a6ca80.js similarity index 86% rename from assets/js/3716f59c.25365a54.js rename to assets/js/3716f59c.e9a6ca80.js index fba259a350..4649d8ff55 100644 --- a/assets/js/3716f59c.25365a54.js +++ b/assets/js/3716f59c.e9a6ca80.js @@ -19,4 +19,4 @@ ${JSON.stringify(e,null,2)}`);return t}(t),i=e?`${e}-${s}`:s,a=`#${i}`,u=(0,c.W6 // highlight-end ], ], -};`})]})]})}},55887:(e,t,r)=>{r.d(t,{A:()=>es});var n,o,l,c={};r.r(c),r.d(c,{ButtonExample:()=>B});var s=r(62540),i=r(63696),a=r(11750),u=r(10709),p=r(55152),d=r(81912),b=r(99468),g=r(40576),f=r(1495),h=r(66659),j=r(25436);function y(){let{prism:e}=(0,j.p)(),{colorMode:t}=(0,h.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var m=r(43758);function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,s.jsx)("div",{className:(0,a.A)("playgroundHeader_Tvsk"),children:e})}function w(){return(0,s.jsx)("div",{children:"Loading..."})}function x(){return(0,s.jsx)(g.A,{fallback:(0,s.jsx)(w,{}),children:()=>(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(m.A,{fallback:e=>(0,s.jsx)(f.MN,O({},e)),children:(0,s.jsx)(p.pA,{})}),(0,s.jsx)(p.p1,{})]})})}function P(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(v,{children:(0,s.jsx)(d.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,s.jsx)("div",{className:"playgroundPreview_mApW",children:(0,s.jsx)(x,{})})]})}function k(){let e=(0,u.A)();return(0,s.jsx)(p.w,{className:"playgroundEditor_TySg"},String(e))}function S(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(v,{children:(0,s.jsx)(d.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,s.jsx)(k,{})]})}let A=e=>`${e};`;function E(e){var t,r,n,o,{children:l,transformCode:c}=e,i=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:a}}=(0,b.A)(),{liveCodeBlock:{playgroundPosition:u}}=a,d=y(),g=null!==(o=null===(n=i.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,s.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,s.jsx)(p.Q,(t=O({code:null==l?void 0:l.replace(/\n$/,""),noInline:g,transformCode:null!=c?c:A,theme:d},i),r=r={children:"top"===u?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(P,{}),(0,s.jsx)(S,{})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(S,{}),(0,s.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function B(e){var t,r;return(0,s.jsx)("button",(t=D({type:"button"},e),r=r={style:D({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let N=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:i},i,c);var C=r(12653),T=r(19934),I=r.n(T);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),_=RegExp("\\{(?<range>[\\d,-]+)\\}"),$={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},G=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},$),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),M=Object.keys($);function R(e,t){let r=e.map(e=>{let{start:r,end:n}=G[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function W(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let l=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(y());return(0,s.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:l,className:(0,a.A)(o.className,"codeBlockContainer_jDV4",C.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let q={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function V({children:e,className:t}){return(0,s.jsx)(W,{as:"pre",tabIndex:0,className:(0,a.A)(q.codeBlockStandalone,"thin-scrollbar",t),children:(0,s.jsx)("code",{className:q.codeBlockLines,children:e})})}var H=r(2550);let F={attributes:!0,characterData:!0,childList:!0,subtree:!0};var z=r(27663);let X={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function U(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function J({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var l,c;1===e.length&&"\n"===e[0].content&&(e[0].content="");let i=n({line:e,className:(0,a.A)(t,r&&X.codeLine)}),u=e.map((e,t)=>(0,s.jsx)("span",U({},o({token:e})),t));return(0,s.jsxs)("span",(l=U({},i),c=c={children:[r?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:X.codeLineNumber}),(0,s.jsx)("span",{className:X.codeLineContent,children:u})]}):u,(0,s.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(c)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(c)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(c,e))}),l))}var Q=r(936);function Y(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,s.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function Z(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,s.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,i.useState)(!1),o=(0,i.useRef)(void 0),l=(0,i.useCallback)(()=>{(0,Q.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,i.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,s.jsx)("button",{type:"button","aria-label":r?(0,d.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,d.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,d.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:l,children:(0,s.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,s.jsx)(Y,{className:K.copyButtonIcon}),(0,s.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,s.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,d.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,s.jsx)("button",{type:"button",onClick:t,className:(0,a.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,s.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:l}){var c,u,p,d;let{prism:{defaultLanguage:b,magicComments:g}}=(0,j.p)(),f=null==(u=null!==(c=null!=l?l:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==c?c:b)?void 0:u.toLowerCase(),h=y(),m=function(){let[e,t]=(0,i.useState)(!1),[r,n]=(0,i.useState)(!1),o=(0,i.useRef)(null),l=(0,i.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),c=(0,i.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,i.useState)(),o=(0,i.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,i.useEffect)(()=>{o()},[o]),function(e,t,r=F){let n=(0,H._q)(t),o=(0,H.Be)(r);(0,i.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,c),(0,i.useEffect)(()=>{c()},[e,c]),(0,i.useEffect)(()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)}),[c]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:l}}(),O=(null!==(d=null==r?void 0:null===(p=r.match(L))||void 0===p?void 0:p.groups.title)&&void 0!==d?d:"")||n,{lineClassNames:v,code:w}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:l}=t;if(l&&_.test(l)){let e=l.match(_).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${l}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(I()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return R(["js","jsBlock"],t);case"jsx":case"tsx":return R(["js","jsBlock","jsx"],t);case"html":return R(["js","jsBlock","html"],t);case"python":case"py":case"bash":return R(["bash"],t);case"markdown":case"md":return R(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return R(["tex"],t);case"lua":case"haskell":case"sql":return R(["lua"],t);case"wasm":return R(["wasm"],t);case"vb":case"vba":case"visual-basic":return R(["vb","rem"],t);case"vbnet":return R(["vbnet","rem"],t);case"batch":return R(["rem"],t);case"basic":return R(["rem","f90"],t);case"fsharp":return R(["js","ml"],t);case"ocaml":case"sml":return R(["ml"],t);case"fortran":return R(["f90"],t);case"cobol":return R(["cobol"],t);default:return R(M,t)}}(n,o),s=r.split("\n"),i=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),a=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),p=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<s.length;){let t=s[e].match(c);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);a[r]?i[a[r]].range+=`${e},`:u[r]?i[u[r]].start=e:p[r]&&(i[p[r]].range+=`${i[p[r]].start}-${e-1},`),s.splice(e,1)}r=s.join("\n");let d={};return Object.entries(i).forEach(([e,{range:t}])=>{I()(t).forEach(t=>{var r;null!==(r=d[t])&&void 0!==r||(d[t]=[]),d[t].push(e)})}),{lineClassNames:d,code:r}}(e,{metastring:r,language:f,magicComments:g}),x=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,s.jsxs)(W,{as:"div",className:(0,a.A)(t,f&&!t.includes(`language-${f}`)&&`language-${f}`),children:[O&&(0,s.jsx)("div",{className:q.codeBlockTitle,children:O}),(0,s.jsxs)("div",{className:q.codeBlockContent,children:[(0,s.jsx)(z.f4,{theme:h,code:w,language:null!=f?f:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,s.jsx)("pre",{tabIndex:0,ref:m.codeBlockRef,className:(0,a.A)(e,q.codeBlock,"thin-scrollbar"),style:t,children:(0,s.jsx)("code",{className:(0,a.A)(q.codeBlockLines,x&&q.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,s.jsx)(J,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:x},t))})})}),(0,s.jsxs)("div",{className:q.buttonGroup,children:[(m.isEnabled||m.isCodeScrollable)&&(0,s.jsx)(en,{className:q.codeButton,onClick:()=>m.toggle(),isEnabled:m.isEnabled}),(0,s.jsx)(ee,{className:q.codeButton,code:w})]})]})]})}function el(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let ec=(l=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let l=(0,u.A)(),c=i.Children.toArray(n).some(e=>(0,i.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,a="string"==typeof c?eo:V;return(0,s.jsx)(a,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:c},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(l))},function(e){return e.live?(0,s.jsx)(E,el({scope:N},e)):(0,s.jsx)(l,el({},e))});function es(e){return(0,s.jsx)(ec,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}},62430:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>p,default:()=>f,frontMatter:()=>u,metadata:()=>n,toc:()=>b});let n=JSON.parse('{"id":"api/plugins/plugin-google-gtag","title":"\u{1F4E6} plugin-google-gtag","description":"The default Global Site Tag (gtag.js) plugin. It is a JavaScript tagging framework and API that allows you to send event data to Google Analytics, Google Ads, and Google Marketing Platform. This section describes how to configure a Docusaurus site to enable global site tag for Google Analytics.","source":"@site/docs/api/plugins/plugin-google-gtag.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-google-gtag","permalink":"/docs/api/plugins/@docusaurus/plugin-google-gtag","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-google-gtag.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":7,"frontMatter":{"sidebar_position":7,"slug":"/api/plugins/@docusaurus/plugin-google-gtag"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-google-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-google-analytics"},"next":{"title":"\u{1F4E6} plugin-google-tag-manager","permalink":"/docs/api/plugins/@docusaurus/plugin-google-tag-manager"}}');var o=r(62540),l=r(43023),c=r(27446),s=r(15995),i=r(59273),a=r(59433);let u={sidebar_position:7,slug:"/api/plugins/@docusaurus/plugin-google-gtag"},p="\u{1F4E6} plugin-google-gtag",d={},b=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Example configuration",id:"ex-config",level:3}];function g(e){let t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"-plugin-google-gtag",children:"\u{1F4E6} plugin-google-gtag"})}),"\n","\n",(0,o.jsxs)(t.p,{children:["The default ",(0,o.jsx)(t.a,{href:"https://developers.google.com/tag-platform/gtagjs",children:"Global Site Tag (gtag.js)"})," plugin. It is a JavaScript tagging framework and API that allows you to send event data to Google Analytics, Google Ads, and Google Marketing Platform. This section describes how to configure a Docusaurus site to enable global site tag for Google Analytics."]}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["You can use ",(0,o.jsx)(t.a,{href:"https://tagassistant.google.com/",children:"Google's Tag Assistant"})," tool to check if your gtag is set up correctly!"]})}),"\n",(0,o.jsx)(t.admonition,{title:"production only",type:"warning",children:(0,o.jsxs)(t.p,{children:["This plugin is always inactive in development and ",(0,o.jsx)(t.strong,{children:"only active in production"})," to avoid polluting the analytics statistics."]})}),"\n",(0,o.jsx)(t.h2,{id:"installation",children:"Installation"}),"\n",(0,o.jsxs)(c.A,{groupId:"npm2yarn",children:[(0,o.jsx)(s.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install --save @docusaurus/plugin-google-gtag\n"})})}),(0,o.jsx)(s.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn add @docusaurus/plugin-google-gtag\n"})})}),(0,o.jsx)(s.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm add @docusaurus/plugin-google-gtag\n"})})})]}),"\n",(0,o.jsxs)(t.admonition,{type:"tip",children:[(0,o.jsxs)(t.p,{children:["If you use the preset ",(0,o.jsx)(t.code,{children:"@docusaurus/preset-classic"}),", you don't need to install this plugin as a dependency."]}),(0,o.jsxs)(t.p,{children:["You can configure this plugin through the ",(0,o.jsx)(t.a,{href:"/docs/using-plugins#docusauruspreset-classic",children:"preset options"}),"."]})]}),"\n",(0,o.jsx)(t.h2,{id:"configuration",children:"Configuration"}),"\n",(0,o.jsx)(t.p,{children:"Accepted fields:"}),"\n",(0,o.jsx)(i.A,{children:(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Type"}),(0,o.jsx)(t.th,{children:"Default"}),(0,o.jsx)(t.th,{children:"Description"})]})}),(0,o.jsxs)(t.tbody,{children:[(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"trackingID"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)("code",{children:"string | string[]"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.strong,{children:"Required"})}),(0,o.jsx)(t.td,{children:"The tracking ID of your gtag service. It is possible to provide multiple ids."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"anonymizeIP"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"boolean"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"false"})}),(0,o.jsx)(t.td,{children:"Whether the IP should be anonymized when sending requests."})]})]})]})}),"\n",(0,o.jsx)(t.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,o.jsx)(t.p,{children:"You can configure this plugin through preset options or plugin options."}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsx)(t.p,{children:"Most Docusaurus users configure this plugin through the preset options."})}),"\n","\n",(0,o.jsx)(a.A,{pluginName:"@docusaurus/plugin-google-gtag",presetOptionName:"gtag",code:"{\n trackingID: 'G-999X9XX9XX',\n anonymizeIP: true,\n}"})]})}function f(e={}){let{wrapper:t}={...(0,l.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(g,{...e})}):g(e)}}}]); \ No newline at end of file +};`})]})]})}},55887:(e,t,r)=>{r.d(t,{A:()=>es});var n,o,l,c={};r.r(c),r.d(c,{ButtonExample:()=>B});var s=r(62540),i=r(63696),a=r(11750),u=r(10709),p=r(55152),d=r(81912),b=r(99468),g=r(40576),f=r(1495),h=r(66659),j=r(25436);function y(){let{prism:e}=(0,j.p)(),{colorMode:t}=(0,h.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var m=r(43758);function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,s.jsx)("div",{className:(0,a.A)("playgroundHeader_Tvsk"),children:e})}function w(){return(0,s.jsx)("div",{children:"Loading..."})}function x(){return(0,s.jsx)(g.A,{fallback:(0,s.jsx)(w,{}),children:()=>(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(m.A,{fallback:e=>(0,s.jsx)(f.MN,O({},e)),children:(0,s.jsx)(p.pA,{})}),(0,s.jsx)(p.p1,{})]})})}function P(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(v,{children:(0,s.jsx)(d.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,s.jsx)("div",{className:"playgroundPreview_mApW",children:(0,s.jsx)(x,{})})]})}function k(){let e=(0,u.A)();return(0,s.jsx)(p.w,{className:"playgroundEditor_TySg"},String(e))}function S(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(v,{children:(0,s.jsx)(d.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,s.jsx)(k,{})]})}let A=e=>`${e};`;function E(e){var t,r,n,o,{children:l,transformCode:c}=e,i=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:a}}=(0,b.A)(),{liveCodeBlock:{playgroundPosition:u}}=a,d=y(),g=null!==(o=null===(n=i.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,s.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,s.jsx)(p.Q,(t=O({code:null==l?void 0:l.replace(/\n$/,""),noInline:g,transformCode:null!=c?c:A,theme:d},i),r=r={children:"top"===u?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(P,{}),(0,s.jsx)(S,{})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(S,{}),(0,s.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function B(e){var t,r;return(0,s.jsx)("button",(t=D({type:"button"},e),r=r={style:D({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let N=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:i},i,c);var C=r(12653),T=r(19934),I=r.n(T);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),_=RegExp("\\{(?<range>[\\d,-]+)\\}"),$={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},G=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},$),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),M=Object.keys($);function R(e,t){let r=e.map(e=>{let{start:r,end:n}=G[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function W(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let l=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(y());return(0,s.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:l,className:(0,a.A)(o.className,"codeBlockContainer_jDV4",C.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let q={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function V({children:e,className:t}){return(0,s.jsx)(W,{as:"pre",tabIndex:0,className:(0,a.A)(q.codeBlockStandalone,"thin-scrollbar",t),children:(0,s.jsx)("code",{className:q.codeBlockLines,children:e})})}var H=r(2550);let F={attributes:!0,characterData:!0,childList:!0,subtree:!0};var z=r(27663);let X={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function U(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function J({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var l,c;1===e.length&&"\n"===e[0].content&&(e[0].content="");let i=n({line:e,className:(0,a.A)(t,r&&X.codeLine)}),u=e.map((e,t)=>(0,s.jsx)("span",U({},o({token:e})),t));return(0,s.jsxs)("span",(l=U({},i),c=c={children:[r?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:X.codeLineNumber}),(0,s.jsx)("span",{className:X.codeLineContent,children:u})]}):u,(0,s.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(c)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(c)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(c,e))}),l))}var Q=r(936);function Y(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,s.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function Z(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,s.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,i.useState)(!1),o=(0,i.useRef)(void 0),l=(0,i.useCallback)(()=>{(0,Q.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,i.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,s.jsx)("button",{type:"button","aria-label":r?(0,d.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,d.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,d.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:l,children:(0,s.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,s.jsx)(Y,{className:K.copyButtonIcon}),(0,s.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,s.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,d.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,s.jsx)("button",{type:"button",onClick:t,className:(0,a.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,s.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:l}){var c,u,p,d;let{prism:{defaultLanguage:b,magicComments:g}}=(0,j.p)(),f=null==(u=null!==(c=null!=l?l:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==c?c:b)?void 0:u.toLowerCase(),h=y(),m=function(){let[e,t]=(0,i.useState)(!1),[r,n]=(0,i.useState)(!1),o=(0,i.useRef)(null),l=(0,i.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),c=(0,i.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,i.useState)(),o=(0,i.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,i.useEffect)(()=>{o()},[o]),function(e,t,r=F){let n=(0,H._q)(t),o=(0,H.Be)(r);(0,i.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,c),(0,i.useEffect)(()=>{c()},[e,c]),(0,i.useEffect)(()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)}),[c]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:l}}(),O=(null!==(d=null==r?void 0:null===(p=r.match(L))||void 0===p?void 0:p.groups.title)&&void 0!==d?d:"")||n,{lineClassNames:v,code:w}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:l}=t;if(l&&_.test(l)){let e=l.match(_).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${l}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(I()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return R(["js","jsBlock"],t);case"jsx":case"tsx":return R(["js","jsBlock","jsx"],t);case"html":return R(["js","jsBlock","html"],t);case"python":case"py":case"bash":return R(["bash"],t);case"markdown":case"md":return R(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return R(["tex"],t);case"lua":case"haskell":case"sql":return R(["lua"],t);case"wasm":return R(["wasm"],t);case"vb":case"vba":case"visual-basic":return R(["vb","rem"],t);case"vbnet":return R(["vbnet","rem"],t);case"batch":return R(["rem"],t);case"basic":return R(["rem","f90"],t);case"fsharp":return R(["js","ml"],t);case"ocaml":case"sml":return R(["ml"],t);case"fortran":return R(["f90"],t);case"cobol":return R(["cobol"],t);default:return R(M,t)}}(n,o),s=r.split("\n"),i=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),a=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),p=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<s.length;){let t=s[e].match(c);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);a[r]?i[a[r]].range+=`${e},`:u[r]?i[u[r]].start=e:p[r]&&(i[p[r]].range+=`${i[p[r]].start}-${e-1},`),s.splice(e,1)}r=s.join("\n");let d={};return Object.entries(i).forEach(([e,{range:t}])=>{I()(t).forEach(t=>{var r;null!==(r=d[t])&&void 0!==r||(d[t]=[]),d[t].push(e)})}),{lineClassNames:d,code:r}}(e,{metastring:r,language:f,magicComments:g}),x=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,s.jsxs)(W,{as:"div",className:(0,a.A)(t,f&&!t.includes(`language-${f}`)&&`language-${f}`),children:[O&&(0,s.jsx)("div",{className:q.codeBlockTitle,children:O}),(0,s.jsxs)("div",{className:q.codeBlockContent,children:[(0,s.jsx)(z.f4,{theme:h,code:w,language:null!=f?f:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,s.jsx)("pre",{tabIndex:0,ref:m.codeBlockRef,className:(0,a.A)(e,q.codeBlock,"thin-scrollbar"),style:t,children:(0,s.jsx)("code",{className:(0,a.A)(q.codeBlockLines,x&&q.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,s.jsx)(J,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:x},t))})})}),(0,s.jsxs)("div",{className:q.buttonGroup,children:[(m.isEnabled||m.isCodeScrollable)&&(0,s.jsx)(en,{className:q.codeButton,onClick:()=>m.toggle(),isEnabled:m.isEnabled}),(0,s.jsx)(ee,{className:q.codeButton,code:w})]})]})]})}function el(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let ec=(l=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let l=(0,u.A)(),c=i.Children.toArray(n).some(e=>(0,i.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,a="string"==typeof c?eo:V;return(0,s.jsx)(a,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:c},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(l))},function(e){return e.live?(0,s.jsx)(E,el({scope:N},e)):(0,s.jsx)(l,el({},e))});function es(e){return(0,s.jsx)(ec,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}},62430:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>p,default:()=>f,frontMatter:()=>u,metadata:()=>n,toc:()=>b});let n=JSON.parse('{"id":"api/plugins/plugin-google-gtag","title":"\u{1F4E6} plugin-google-gtag","description":"The default Global Site Tag (gtag.js) plugin. It is a JavaScript tagging framework and API that allows you to send event data to Google Analytics, Google Ads, and Google Marketing Platform. This section describes how to configure a Docusaurus site to enable global site tag for Google Analytics.","source":"@site/docs/api/plugins/plugin-google-gtag.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-google-gtag","permalink":"/docs/api/plugins/@docusaurus/plugin-google-gtag","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-google-gtag.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":7,"frontMatter":{"sidebar_position":7,"slug":"/api/plugins/@docusaurus/plugin-google-gtag"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-google-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-google-analytics"},"next":{"title":"\u{1F4E6} plugin-google-tag-manager","permalink":"/docs/api/plugins/@docusaurus/plugin-google-tag-manager"}}');var o=r(62540),l=r(43023),c=r(27446),s=r(15995),i=r(59273),a=r(59433);let u={sidebar_position:7,slug:"/api/plugins/@docusaurus/plugin-google-gtag"},p="\u{1F4E6} plugin-google-gtag",d={},b=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Example configuration",id:"ex-config",level:3}];function g(e){let t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"-plugin-google-gtag",children:"\u{1F4E6} plugin-google-gtag"})}),"\n","\n",(0,o.jsxs)(t.p,{children:["The default ",(0,o.jsx)(t.a,{href:"https://developers.google.com/tag-platform/gtagjs",children:"Global Site Tag (gtag.js)"})," plugin. It is a JavaScript tagging framework and API that allows you to send event data to Google Analytics, Google Ads, and Google Marketing Platform. This section describes how to configure a Docusaurus site to enable global site tag for Google Analytics."]}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["You can use ",(0,o.jsx)(t.a,{href:"https://tagassistant.google.com/",children:"Google's Tag Assistant"})," tool to check if your gtag is set up correctly!"]})}),"\n",(0,o.jsx)(t.admonition,{title:"production only",type:"warning",children:(0,o.jsxs)(t.p,{children:["This plugin is always inactive in development and ",(0,o.jsx)(t.strong,{children:"only active in production"})," to avoid polluting the analytics statistics."]})}),"\n",(0,o.jsx)(t.h2,{id:"installation",children:"Installation"}),"\n",(0,o.jsxs)(c.A,{groupId:"npm2yarn",children:[(0,o.jsx)(s.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install --save @docusaurus/plugin-google-gtag\n"})})}),(0,o.jsx)(s.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn add @docusaurus/plugin-google-gtag\n"})})}),(0,o.jsx)(s.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm add @docusaurus/plugin-google-gtag\n"})})})]}),"\n",(0,o.jsxs)(t.admonition,{type:"tip",children:[(0,o.jsxs)(t.p,{children:["If you use the preset ",(0,o.jsx)(t.code,{children:"@docusaurus/preset-classic"}),", you don't need to install this plugin as a dependency."]}),(0,o.jsxs)(t.p,{children:["You can configure this plugin through the ",(0,o.jsx)(t.a,{href:"/docs/using-plugins#docusauruspreset-classic",children:"preset options"}),"."]})]}),"\n",(0,o.jsx)(t.h2,{id:"configuration",children:"Configuration"}),"\n",(0,o.jsx)(t.p,{children:"Accepted fields:"}),"\n",(0,o.jsx)(i.A,{children:(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Type"}),(0,o.jsx)(t.th,{children:"Default"}),(0,o.jsx)(t.th,{children:"Description"})]})}),(0,o.jsxs)(t.tbody,{children:[(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"trackingID"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)("code",{children:"string | string[]"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.strong,{children:"Required"})}),(0,o.jsx)(t.td,{children:"The tracking ID of your gtag service. It is possible to provide multiple ids."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"anonymizeIP"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"boolean"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"false"})}),(0,o.jsx)(t.td,{children:"Whether the IP should be anonymized when sending requests."})]})]})]})}),"\n",(0,o.jsx)(t.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,o.jsx)(t.p,{children:"You can configure this plugin through preset options or plugin options."}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsx)(t.p,{children:"Most Docusaurus users configure this plugin through the preset options."})}),"\n","\n",(0,o.jsx)(a.A,{pluginName:"@docusaurus/plugin-google-gtag",presetOptionName:"gtag",code:"{\n trackingID: 'G-999X9XX9XX',\n anonymizeIP: true,\n}"})]})}function f(e={}){let{wrapper:t}={...(0,l.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(g,{...e})}):g(e)}}}]); \ No newline at end of file diff --git a/assets/js/38561.8fd7d5ef.js b/assets/js/38561.8fd7d5ef.js new file mode 100644 index 0000000000..f297caa0d6 --- /dev/null +++ b/assets/js/38561.8fd7d5ef.js @@ -0,0 +1,134 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[38561],{46192:(t,e,i)=>{i.d(e,{CP:()=>c,HT:()=>u,PB:()=>h,aC:()=>o,lC:()=>n,m:()=>l,tk:()=>s});var r=i(72912),a=i(31546),s=(0,r.K2)((t,e)=>{let i=t.append("rect");if(i.attr("x",e.x),i.attr("y",e.y),i.attr("fill",e.fill),i.attr("stroke",e.stroke),i.attr("width",e.width),i.attr("height",e.height),e.name&&i.attr("name",e.name),e.rx&&i.attr("rx",e.rx),e.ry&&i.attr("ry",e.ry),void 0!==e.attrs)for(let t in e.attrs)i.attr(t,e.attrs[t]);return e.class&&i.attr("class",e.class),i},"drawRect"),n=(0,r.K2)((t,e)=>{s(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"}).lower()},"drawBackgroundRect"),l=(0,r.K2)((t,e)=>{let i=e.text.replace(r.H1," "),a=t.append("text");a.attr("x",e.x),a.attr("y",e.y),a.attr("class","legend"),a.style("text-anchor",e.anchor),e.class&&a.attr("class",e.class);let s=a.append("tspan");return s.attr("x",e.x+2*e.textMargin),s.text(i),a},"drawText"),o=(0,r.K2)((t,e,i,r)=>{let s=t.append("image");s.attr("x",e),s.attr("y",i);let n=(0,a.J)(r);s.attr("xlink:href",n)},"drawImage"),c=(0,r.K2)((t,e,i,r)=>{let s=t.append("use");s.attr("x",e),s.attr("y",i);let n=(0,a.J)(r);s.attr("xlink:href",`#${n}`)},"drawEmbeddedImage"),h=(0,r.K2)(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),u=(0,r.K2)(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj")},38561:(t,e,i)=>{i.d(e,{diagram:()=>R});var r=i(46192),a=i(72912),s=i(89601),n=function(){var t=(0,a.K2)(function(t,e,i,r){for(i=i||{},r=t.length;r--;i[t[r]]=e);return i},"o"),e=[6,8,10,11,12,14,16,17,18],i=[1,9],r=[1,10],s=[1,11],n=[1,12],l=[1,13],o=[1,14],c={trace:(0,a.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:(0,a.K2)(function(t,e,i,r,a,s,n){var l=s.length-1;switch(a){case 1:return s[l-1];case 2:case 6:case 7:this.$=[];break;case 3:s[l-1].push(s[l]),this.$=s[l-1];break;case 4:case 5:this.$=s[l];break;case 8:r.setDiagramTitle(s[l].substr(6)),this.$=s[l].substr(6);break;case 9:this.$=s[l].trim(),r.setAccTitle(this.$);break;case 10:case 11:this.$=s[l].trim(),r.setAccDescription(this.$);break;case 12:r.addSection(s[l].substr(8)),this.$=s[l].substr(8);break;case 13:r.addTask(s[l-1],s[l]),this.$="task"}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:i,12:r,14:s,16:n,17:l,18:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:i,12:r,14:s,16:n,17:l,18:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:(0,a.K2)(function(t,e){if(e.recoverable)this.trace(t);else{var i=Error(t);throw i.hash=e,i}},"parseError"),parse:(0,a.K2)(function(t){var e=this,i=[0],r=[],s=[null],n=[],l=this.table,o="",c=0,h=0,u=0,y=n.slice.call(arguments,1),p=Object.create(this.lexer),d={yy:{}};for(var f in this.yy)Object.prototype.hasOwnProperty.call(this.yy,f)&&(d.yy[f]=this.yy[f]);p.setInput(t,d.yy),d.yy.lexer=p,d.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var g=p.yylloc;n.push(g);var x=p.options&&p.options.ranges;function m(){var t;return"number"!=typeof(t=r.pop()||p.lex()||1)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof d.yy.parseError?this.parseError=d.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,a.K2)(function(t){i.length=i.length-2*t,s.length=s.length-t,n.length=n.length-t},"popStack"),(0,a.K2)(m,"lex");for(var k,_,b,v,w,K,$,T,M,S={};;){if(b=i[i.length-1],this.defaultActions[b]?v=this.defaultActions[b]:(null==k&&(k=m()),v=l[b]&&l[b][k]),void 0===v||!v.length||!v[0]){var E="";for(K in M=[],l[b])this.terminals_[K]&&K>2&&M.push("'"+this.terminals_[K]+"'");E=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+M.join(", ")+", got '"+(this.terminals_[k]||k)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==k?"end of input":"'"+(this.terminals_[k]||k)+"'"),this.parseError(E,{text:p.match,token:this.terminals_[k]||k,line:p.yylineno,loc:g,expected:M})}if(v[0]instanceof Array&&v.length>1)throw Error("Parse Error: multiple actions possible at state: "+b+", token: "+k);switch(v[0]){case 1:i.push(k),s.push(p.yytext),n.push(p.yylloc),i.push(v[1]),k=null,_?(k=_,_=null):(h=p.yyleng,o=p.yytext,c=p.yylineno,g=p.yylloc,u>0&&u--);break;case 2:if($=this.productions_[v[1]][1],S.$=s[s.length-$],S._$={first_line:n[n.length-($||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-($||1)].first_column,last_column:n[n.length-1].last_column},x&&(S._$.range=[n[n.length-($||1)].range[0],n[n.length-1].range[1]]),void 0!==(w=this.performAction.apply(S,[o,h,c,d.yy,v[1],s,n].concat(y))))return w;$&&(i=i.slice(0,-1*$*2),s=s.slice(0,-1*$),n=n.slice(0,-1*$)),i.push(this.productions_[v[1]][0]),s.push(S.$),n.push(S._$),T=l[i[i.length-2]][i[i.length-1]],i.push(T);break;case 3:return!0}}return!0},"parse")},h={EOF:1,parseError:(0,a.K2)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,a.K2)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,a.K2)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,a.K2)(function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===r.length?this.yylloc.first_column:0)+r[r.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,a.K2)(function(){return this._more=!0,this},"more"),reject:(0,a.K2)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,a.K2)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,a.K2)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,a.K2)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,a.K2)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,a.K2)(function(t,e){var i,r,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var s in a)this[s]=a[s];return!1},"test_match"),next:(0,a.K2)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,i,r,a=this._currentRules(),s=0;s<a.length;s++)if((i=this._input.match(this.rules[a[s]]))&&(!e||i[0].length>e[0].length)){if(e=i,r=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,a[s])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,a.K2)(function(){return this.next()||this.lex()},"lex"),begin:(0,a.K2)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,a.K2)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,a.K2)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,a.K2)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,a.K2)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,a.K2)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,a.K2)(function(t,e,i,r){switch(i){case 0:case 1:case 3:case 4:break;case 2:return 10;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};function u(){this.yy={}}return c.lexer=h,(0,a.K2)(u,"Parser"),u.prototype=c,c.Parser=u,new u}();n.parser=n;var l="",o=[],c=[],h=[],u=(0,a.K2)(function(){o.length=0,c.length=0,l="",h.length=0,(0,a.IU)()},"clear"),y=(0,a.K2)(function(t){l=t,o.push(t)},"addSection"),p=(0,a.K2)(function(){return o},"getSections"),d=(0,a.K2)(function(){let t=m(),e=0;for(;!t&&e<100;)t=m(),e++;return c.push(...h),c},"getTasks"),f=(0,a.K2)(function(){let t=[];return c.forEach(e=>{e.people&&t.push(...e.people)}),[...new Set(t)].sort()},"updateActors"),g=(0,a.K2)(function(t,e){let i=e.substr(1).split(":"),r=0,a=[];1===i.length?(r=Number(i[0]),a=[]):(r=Number(i[0]),a=i[1].split(","));let s=a.map(t=>t.trim()),n={section:l,type:l,people:s,task:t,score:r};h.push(n)},"addTask"),x=(0,a.K2)(function(t){let e={section:l,type:l,description:t,task:t,classes:[]};c.push(e)},"addTaskOrg"),m=(0,a.K2)(function(){let t=(0,a.K2)(function(t){return h[t].processed},"compileTask"),e=!0;for(let[i,r]of h.entries())t(i),e=e&&r.processed;return e},"compileTasks"),k=(0,a.K2)(function(){return f()},"getActors"),_={getConfig:(0,a.K2)(()=>(0,a.D7)().journey,"getConfig"),clear:u,setDiagramTitle:a.ke,getDiagramTitle:a.ab,setAccTitle:a.SV,getAccTitle:a.iN,setAccDescription:a.EI,getAccDescription:a.m7,addSection:y,getSections:p,getTasks:d,addTask:g,addTaskOrg:x,getActors:k},b=(0,a.K2)(t=>`.label { + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + color: ${t.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${t.textColor} + } + + .legend { + fill: ${t.textColor}; + } + + .label text { + fill: #333; + } + .label { + color: ${t.textColor} + } + + .face { + ${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"}; + stroke: #999; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 1.5px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + } + text-align: center; + } + + .cluster rect { + } + + .cluster text { + fill: ${t.titleColor}; + } + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .task-type-0, .section-type-0 { + ${t.fillType0?`fill: ${t.fillType0}`:""}; + } + .task-type-1, .section-type-1 { + ${t.fillType0?`fill: ${t.fillType1}`:""}; + } + .task-type-2, .section-type-2 { + ${t.fillType0?`fill: ${t.fillType2}`:""}; + } + .task-type-3, .section-type-3 { + ${t.fillType0?`fill: ${t.fillType3}`:""}; + } + .task-type-4, .section-type-4 { + ${t.fillType0?`fill: ${t.fillType4}`:""}; + } + .task-type-5, .section-type-5 { + ${t.fillType0?`fill: ${t.fillType5}`:""}; + } + .task-type-6, .section-type-6 { + ${t.fillType0?`fill: ${t.fillType6}`:""}; + } + .task-type-7, .section-type-7 { + ${t.fillType0?`fill: ${t.fillType7}`:""}; + } + + .actor-0 { + ${t.actor0?`fill: ${t.actor0}`:""}; + } + .actor-1 { + ${t.actor1?`fill: ${t.actor1}`:""}; + } + .actor-2 { + ${t.actor2?`fill: ${t.actor2}`:""}; + } + .actor-3 { + ${t.actor3?`fill: ${t.actor3}`:""}; + } + .actor-4 { + ${t.actor4?`fill: ${t.actor4}`:""}; + } + .actor-5 { + ${t.actor5?`fill: ${t.actor5}`:""}; + } +`,"getStyles"),v=(0,a.K2)(function(t,e){return(0,r.tk)(t,e)},"drawRect"),w=(0,a.K2)(function(t,e){let i=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),r=t.append("g");function n(t){let i=(0,s.JLW)().startAngle(Math.PI/2).endAngle(Math.PI/2*3).innerRadius(7.5).outerRadius(15/2.2);t.append("path").attr("class","mouth").attr("d",i).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}function l(t){let i=(0,s.JLW)().startAngle(3*Math.PI/2).endAngle(Math.PI/2*5).innerRadius(7.5).outerRadius(15/2.2);t.append("path").attr("class","mouth").attr("d",i).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}function o(t){t.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return r.append("circle").attr("cx",e.cx-5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),r.append("circle").attr("cx",e.cx+5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),(0,a.K2)(n,"smile"),(0,a.K2)(l,"sad"),(0,a.K2)(o,"ambivalent"),e.score>3?n(r):e.score<3?l(r):o(r),i},"drawFace"),K=(0,a.K2)(function(t,e){let i=t.append("circle");return i.attr("cx",e.cx),i.attr("cy",e.cy),i.attr("class","actor-"+e.pos),i.attr("fill",e.fill),i.attr("stroke",e.stroke),i.attr("r",e.r),void 0!==i.class&&i.attr("class",i.class),void 0!==e.title&&i.append("title").text(e.title),i},"drawCircle"),$=(0,a.K2)(function(t,e){return(0,r.m)(t,e)},"drawText"),T=(0,a.K2)(function(t,e,i){let a=t.append("g"),s=(0,r.PB)();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=i.width*e.taskCount+i.diagramMarginX*(e.taskCount-1),s.height=i.height,s.class="journey-section section-type-"+e.num,s.rx=3,s.ry=3,v(a,s),E(i)(e.text,a,s.x,s.y,s.width,s.height,{class:"journey-section section-type-"+e.num},i,e.colour)},"drawSection"),M=-1,S=(0,a.K2)(function(t,e,i){let a=e.x+i.width/2,s=t.append("g");M++,s.append("line").attr("id","task"+M).attr("x1",a).attr("y1",e.y).attr("x2",a).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),w(s,{cx:a,cy:300+(5-e.score)*30,score:e.score});let n=(0,r.PB)();n.x=e.x,n.y=e.y,n.fill=e.fill,n.width=i.width,n.height=i.height,n.class="task task-type-"+e.num,n.rx=3,n.ry=3,v(s,n);let l=e.x+14;e.people.forEach(t=>{let i=e.actors[t].color;K(s,{cx:l,cy:e.y,r:7,fill:i,stroke:"#000",title:t,pos:e.actors[t].position}),l+=10}),E(i)(e.task,s,n.x,n.y,n.width,n.height,{class:"task"},i,e.colour)},"drawTask"),E=function(){function t(t,e,i,a,s,n,l,o){r(e.append("text").attr("x",i+s/2).attr("y",a+n/2+5).style("font-color",o).style("text-anchor","middle").text(t),l)}function e(t,e,i,a,s,n,l,o,c){let{taskFontSize:h,taskFontFamily:u}=o,y=t.split(/<br\s*\/?>/gi);for(let t=0;t<y.length;t++){let o=t*h-h*(y.length-1)/2,p=e.append("text").attr("x",i+s/2).attr("y",a).attr("fill",c).style("text-anchor","middle").style("font-size",h).style("font-family",u);p.append("tspan").attr("x",i+s/2).attr("dy",o).text(y[t]),p.attr("y",a+n/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),r(p,l)}}function i(t,i,a,s,n,l,o,c){let h=i.append("switch"),u=h.append("foreignObject").attr("x",a).attr("y",s).attr("width",n).attr("height",l).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");u.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,h,a,s,n,l,o,c),r(u,o)}function r(t,e){for(let i in e)i in e&&t.attr(i,e[i])}return(0,a.K2)(t,"byText"),(0,a.K2)(e,"byTspan"),(0,a.K2)(i,"byFo"),(0,a.K2)(r,"_setTextAttrs"),function(r){return"fo"===r.textPlacement?i:"old"===r.textPlacement?t:e}}(),I={drawCircle:K,drawSection:T,drawText:$,drawTask:S,initGraphics:(0,a.K2)(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},"initGraphics")},P=(0,a.K2)(function(t){Object.keys(t).forEach(function(e){j[e]=t[e]})},"setConf"),A={};function C(t){let e=(0,a.D7)().journey,i=60;Object.keys(A).forEach(r=>{let a=A[r].color,s={cx:20,cy:i,r:7,fill:a,stroke:"#000",pos:A[r].position};I.drawCircle(t,s);let n={x:40,y:i+7,fill:"#666",text:r,textMargin:5|e.boxTextMargin};I.drawText(t,n),i+=20})}(0,a.K2)(C,"drawActorLegend");var j=(0,a.D7)().journey,D=j.leftMargin,V=(0,a.K2)(function(t,e,i,r){let n;let l=(0,a.D7)().journey,o=(0,a.D7)().securityLevel;"sandbox"===o&&(n=(0,s.Ltv)("#i"+e));let c="sandbox"===o?(0,s.Ltv)(n.nodes()[0].contentDocument.body):(0,s.Ltv)("body");L.init();let h=c.select("#"+e);I.initGraphics(h);let u=r.db.getTasks(),y=r.db.getDiagramTitle(),p=r.db.getActors();for(let t in A)delete A[t];let d=0;p.forEach(t=>{A[t]={color:l.actorColours[d%l.actorColours.length],position:d},d++}),C(h),L.insert(0,0,D,50*Object.keys(A).length),N(h,u,0);let f=L.getBounds();y&&h.append("text").text(y).attr("x",D).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);let g=f.stopy-f.starty+2*l.diagramMarginY,x=D+f.stopx+2*l.diagramMarginX;(0,a.a$)(h,g,x,l.useMaxWidth),h.append("line").attr("x1",D).attr("y1",4*l.height).attr("x2",x-D-4).attr("y2",4*l.height).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");let m=y?70:0;h.attr("viewBox",`${f.startx} -25 ${x} ${g+m}`),h.attr("preserveAspectRatio","xMinYMin meet"),h.attr("height",g+m+25)},"draw"),L={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:(0,a.K2)(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},"init"),updateVal:(0,a.K2)(function(t,e,i,r){void 0===t[e]?t[e]=i:t[e]=r(i,t[e])},"updateVal"),updateBounds:(0,a.K2)(function(t,e,i,r){let s=(0,a.D7)().journey,n=this,l=0;function o(o){return(0,a.K2)(function(a){l++;let c=n.sequenceItems.length-l+1;n.updateVal(a,"starty",e-c*s.boxMargin,Math.min),n.updateVal(a,"stopy",r+c*s.boxMargin,Math.max),n.updateVal(L.data,"startx",t-c*s.boxMargin,Math.min),n.updateVal(L.data,"stopx",i+c*s.boxMargin,Math.max),"activation"!==o&&(n.updateVal(a,"startx",t-c*s.boxMargin,Math.min),n.updateVal(a,"stopx",i+c*s.boxMargin,Math.max),n.updateVal(L.data,"starty",e-c*s.boxMargin,Math.min),n.updateVal(L.data,"stopy",r+c*s.boxMargin,Math.max))},"updateItemBounds")}(0,a.K2)(o,"updateFn"),this.sequenceItems.forEach(o())},"updateBounds"),insert:(0,a.K2)(function(t,e,i,r){let a=Math.min(t,i),s=Math.max(t,i),n=Math.min(e,r),l=Math.max(e,r);this.updateVal(L.data,"startx",a,Math.min),this.updateVal(L.data,"starty",n,Math.min),this.updateVal(L.data,"stopx",s,Math.max),this.updateVal(L.data,"stopy",l,Math.max),this.updateBounds(a,n,s,l)},"insert"),bumpVerticalPos:(0,a.K2)(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},"bumpVerticalPos"),getVerticalPos:(0,a.K2)(function(){return this.verticalPos},"getVerticalPos"),getBounds:(0,a.K2)(function(){return this.data},"getBounds")},O=j.sectionFills,B=j.sectionColours,N=(0,a.K2)(function(t,e,i){let r=(0,a.D7)().journey,s="",n=i+(2*r.height+r.diagramMarginY),l=0,o="#CCC",c="black",h=0;for(let[i,a]of e.entries()){if(s!==a.section){o=O[l%O.length],h=l%O.length,c=B[l%B.length];let n=0,u=a.section;for(let t=i;t<e.length;t++)if(e[t].section==u)n+=1;else break;let y={x:i*r.taskMargin+i*r.width+D,y:50,text:a.section,fill:o,num:h,colour:c,taskCount:n};I.drawSection(t,y,r),s=a.section,l++}let u=a.people.reduce((t,e)=>(A[e]&&(t[e]=A[e]),t),{});a.x=i*r.taskMargin+i*r.width+D,a.y=n,a.width=r.diagramMarginX,a.height=r.diagramMarginY,a.colour=c,a.fill=o,a.num=h,a.actors=u,I.drawTask(t,a,r),L.insert(a.x,a.y,a.x+a.width+r.taskMargin,450)}},"drawTasks"),F={setConf:P,draw:V},R={parser:n,db:_,renderer:F,styles:b,init:(0,a.K2)(t=>{F.setConf(t.journey),_.clear()},"init")}}}]); \ No newline at end of file diff --git a/assets/js/38dd9662.45c9dd31.js b/assets/js/38dd9662.55c47983.js similarity index 98% rename from assets/js/38dd9662.45c9dd31.js rename to assets/js/38dd9662.55c47983.js index a83271a827..51485f88b4 100644 --- a/assets/js/38dd9662.45c9dd31.js +++ b/assets/js/38dd9662.55c47983.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[49751],{7673:(e,t,n)=>{n.d(t,{A:()=>r});let r=n.p+"assets/images/social-card-7e038d19ea67c686e90e1f599f7256d0.png"},15995:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(62540);n(63696);var s=n(11750);function a({children:e,hidden:t,className:n}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_pnkT",n),hidden:t,children:e})}},27446:(e,t,n)=>{n.d(t,{A:()=>y});var r=n(62540),s=n(63696),a=n(11750),o=n(7846),i=n(49519),l=n(96439),c=n(19739),u=n(66904),d=n(79244);function h(e){var t,n;return null!==(n=null===(t=s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==n?n:[]}function p({value:e,tabValues:t}){return t.some(t=>t.value===e)}var g=n(10709);function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function m(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function f({className:e,block:t,selectedValue:n,selectValue:s,tabValues:i}){let l=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.a_)(),u=e=>{let t=e.currentTarget,r=i[l.indexOf(t)].value;r!==n&&(c(t),s(r))},d=e=>{var t,n;let r=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let n=l.indexOf(e.currentTarget)+1;r=null!==(t=l[n])&&void 0!==t?t:l[0];break}case"ArrowLeft":{let t=l.indexOf(e.currentTarget)-1;r=null!==(n=l[t])&&void 0!==n?n:l[l.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.A)("tabs",{"tabs--block":t},e),children:i.map(({value:e,label:t,attributes:s})=>(0,r.jsx)("li",m(b({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>l.push(e),onKeyDown:d,onClick:u},s),{className:(0,a.A)("tabs__item","tabItem_AQgk",null==s?void 0:s.className,{"tabs__item--active":n===e}),children:null!=t?t:e}),e))})}function j({lazy:e,children:t,selectedValue:n}){let o=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=o.find(e=>e.props.value===n);return e?(0,s.cloneElement)(e,{className:(0,a.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:o.map((e,t)=>(0,s.cloneElement)(e,{key:t,hidden:e.props.value!==n}))})}function x(e){let t=function(e){let{defaultValue:t,queryString:n=!1,groupId:r}=e,a=function(e){let{values:t,children:n}=e;return(0,s.useMemo)(()=>{let e=null!=t?t:h(n).map(({props:{value:e,label:t,attributes:n,default:r}})=>({value:e,label:t,attributes:n,default:r}));return!function(e){let t=(0,u.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,n])}(e),[o,g]=(0,s.useState)(()=>(function({defaultValue:e,tabValues:t}){var n;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let r=null!==(n=t.find(e=>e.default))&&void 0!==n?n:t[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:t,tabValues:a})),[b,m]=function({queryString:e=!1,groupId:t}){let n=(0,i.W6)(),r=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,c.aZ)(r),(0,s.useCallback)(e=>{var t,s;if(!r)return;let a=new URLSearchParams(n.location.search);a.set(r,e),n.replace((t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},n.location),s=s={search:a.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(s)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(s)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(s,e))}),t))},[r,n])]}({queryString:n,groupId:r}),[f,j]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[n,r]=(0,d.Dv)(t);return[n,(0,s.useCallback)(e=>{t&&r.set(e)},[t,r])]}({groupId:r}),x=(()=>{let e=null!=b?b:f;return p({value:e,tabValues:a})?e:null})();return(0,l.A)(()=>{x&&g(x)},[x]),{selectedValue:o,selectValue:(0,s.useCallback)(e=>{if(!p({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);g(e),m(e),j(e)},[m,j,a]),tabValues:a}}(e);return(0,r.jsxs)("div",{className:(0,a.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(f,b({},t,e)),(0,r.jsx)(j,b({},t,e))]})}function y(e){let t=(0,g.A)();return(0,r.jsx)(x,m(b({},e),{children:h(e.children)}),String(t))}},70361:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(62540);n(63696);var s=n(11750);let a="dot_giz1",o="bar_rrRL";function i({children:e,minHeight:t,url:n="http://localhost:3000",style:i,bodyStyle:l}){var c,u;return(0,r.jsxs)("div",{className:"browserWindow_my1Q",style:(c=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},i),u=u={minHeight:t},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(u)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(u)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(u,e))}),c),children:[(0,r.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,r.jsxs)("div",{className:"buttons_uHc7",children:[(0,r.jsx)("span",{className:a,style:{background:"#f25f58"}}),(0,r.jsx)("span",{className:a,style:{background:"#fbbe3c"}}),(0,r.jsx)("span",{className:a,style:{background:"#58cb42"}})]}),(0,r.jsx)("div",{className:(0,s.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:n}),(0,r.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:o}),(0,r.jsx)("span",{className:o}),(0,r.jsx)("span",{className:o})]})})]}),(0,r.jsx)("div",{className:"browserWindowBody_Idgs",style:l,children:e})]})}},53940:(e,t,n)=>{n.d(t,{A:()=>r});let r=n.p+"assets/images/social-card-7e038d19ea67c686e90e1f599f7256d0.png"},11537:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>u,default:()=>g,frontMatter:()=>c,metadata:()=>r,toc:()=>h});var r=n(55142),s=n(62540),a=n(43023),o=n(70361),i=n(27446),l=n(15995);let c={title:"Docusaurus 2.3",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2023-01-27T00:00:00.000Z")},u=void 0,d={image:n(7673).A,authorsImageUrls:[void 0]},h=[{value:"Highlights",id:"highlights",level:2},{value:"Google Tag Manager plugin",id:"google-tag-manager-plugin",level:3},{value:"Tabs Query String Support",id:"tabs-query-string-support",level:3},{value:"Nested admonitions",id:"nested-admonitions",level:3},{value:"Blog <code>createFeedItems</code>",id:"blog-createfeeditems",level:3},{value:"Translations",id:"translations",level:3},{value:"Other changes",id:"other-changes",level:2}];function p(e){let t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.p,{children:["We are happy to announce ",(0,s.jsx)(t.strong,{children:"Docusaurus 2.3"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["The upgrade should be easy: as explained in our ",(0,s.jsx)(t.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,s.jsx)(t.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Docusaurus 2.2 social card",src:n(53940).A+"",width:"1200",height:"600"})}),"\n",(0,s.jsx)(t.h2,{id:"highlights",children:"Highlights"}),"\n",(0,s.jsx)(t.h3,{id:"google-tag-manager-plugin",children:"Google Tag Manager plugin"}),"\n",(0,s.jsx)(t.p,{children:"Google Tag Manager is a tag management system that allows great flexibility. It enables analytics and marketing teams to easily load other third-party trackers and fire analytics tags."}),"\n",(0,s.jsxs)(t.p,{children:["We now have a ",(0,s.jsx)(t.a,{href:"/docs/api/plugins/@docusaurus/plugin-google-tag-manager/",children:(0,s.jsx)(t.code,{children:"@docusaurus/plugin-google-tag-manager"})})," package that you can use alongside or as an alternative to the existing ",(0,s.jsx)(t.a,{href:"/docs/api/plugins/@docusaurus/plugin-google-gtag/",children:"gtag.js plugin"})," (refer to ",(0,s.jsx)(t.a,{href:"https://support.google.com/tagmanager/answer/7582054",children:"this doc"})," to understand when to use which solution)."]}),"\n",(0,s.jsxs)(t.admonition,{title:"Google is sunsetting Universal Analytics",type:"warning",children:[(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://blog.google/products/marketingplatform/analytics/prepare-for-future-with-google-analytics-4/",children:"Google will sunset its Universal Analytics"})," on ",(0,s.jsx)(t.strong,{children:"July 1, 2023"}),", and ask users to migrate to ",(0,s.jsx)(t.strong,{children:"Google Analytics 4"}),"."]}),(0,s.jsxs)(t.p,{children:["Therefore, we are also ",(0,s.jsxs)(t.strong,{children:["deprecating our existing ",(0,s.jsx)(t.a,{href:"/docs/api/plugins/@docusaurus/plugin-google-analytics",children:(0,s.jsx)(t.code,{children:"@docusaurus/plugin-google-analytics"})})]})," package. Docusaurus users should create a new Google Analytics 4 property, and migrate to the ",(0,s.jsx)(t.a,{href:"/docs/api/plugins/@docusaurus/plugin-google-gtag/",children:"gtag.js plugin"}),", or the ",(0,s.jsx)(t.a,{href:"/docs/api/plugins/@docusaurus/plugin-google-tag-manager/",children:"Google Tag Manager plugin"}),". Refer to the ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/7221",children:"dedicated Docusaurus issue"})," for details and questions."]})]}),"\n",(0,s.jsx)(t.h3,{id:"tabs-query-string-support",children:"Tabs Query String Support"}),"\n",(0,s.jsxs)(t.p,{children:["It is now possible to link a selected tab to a query string parameter. When a tab is selected, it will be stored in your browser URL as a ",(0,s.jsx)(t.code,{children:"?qs-param=tab-value"})," search parameter."]}),"\n",(0,s.jsx)(t.p,{children:"This feature allows deep-linking to a specific documentation tab that will pre-selected on page load."}),"\n",(0,s.jsxs)(t.p,{children:["When used alongside the ",(0,s.jsx)(t.code,{children:"groupId"})," prop, the query string tab value takes precedence over the ",(0,s.jsx)(t.code,{children:"localStorage"})," value."]}),"\n",(0,s.jsxs)(t.p,{children:["Make sure to check the ",(0,s.jsx)(t.a,{href:"/docs/markdown-features/tabs#query-string",children:"documentation"})," and the demo below to understand how it works:"]}),"\n","\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-tsx",children:'<Tabs groupId="current-os" queryString>\n <TabItem value="android" label="Android">\n Android\n </TabItem>\n <TabItem value="ios" label="iOS">\n iOS\n </TabItem>\n</Tabs>\n'})}),"\n",(0,s.jsx)(o.A,{children:(0,s.jsxs)(i.A,{groupId:"current-os",queryString:!0,children:[(0,s.jsx)(l.A,{value:"android",label:"Android",children:(0,s.jsx)(t.p,{children:"Android"})}),(0,s.jsx)(l.A,{value:"ios",label:"iOS",children:(0,s.jsx)(t.p,{children:"iOS"})})]})}),"\n",(0,s.jsx)(t.h3,{id:"nested-admonitions",children:"Nested admonitions"}),"\n",(0,s.jsx)(t.p,{children:"It is now possible to nest one admonition within another by adding extra colons for the outer/enclosing admonition:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-md",children:"::::tip[nested admonitions]\n\nYou can now nest one admonition within another!\n\n:::danger\n\nUse this sparingly when it makes sense.\n\n:::\n\n::::\n"})}),"\n",(0,s.jsxs)(t.admonition,{title:"nested admonitions",type:"tip",children:[(0,s.jsx)(t.p,{children:"You can now nest one admonition within another!"}),(0,s.jsx)(t.admonition,{type:"danger",children:(0,s.jsx)(t.p,{children:"Use this sparingly when it makes sense."})})]}),"\n",(0,s.jsxs)(t.h3,{id:"blog-createfeeditems",children:["Blog ",(0,s.jsx)(t.code,{children:"createFeedItems"})]}),"\n",(0,s.jsxs)(t.p,{children:["A new blog plugin option ",(0,s.jsx)(t.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-blog/#CreateFeedItemsFn",children:(0,s.jsx)(t.code,{children:"feedOptions.createFeedItems"})})," gives you more control over the RSS/Atom feed generation. It is now possible to transform/filter/limit feed items through a new callback."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-tsx",metastring:'title="docusaurus.config.js"',children:"[\n '@docusaurus/preset-classic',\n {\n blog: {\n feedOptions: {\n // highlight-start\n createFeedItems: async (params) => {\n const {blogPosts, defaultCreateFeedItems, ...rest} = params;\n return defaultCreateFeedItems({\n // keep only the 10 most recent blog posts in the feed\n blogPosts: blogPosts.filter((item, index) => index < 10),\n ...rest,\n });\n },\n // highlight-end\n },\n },\n },\n];\n"})}),"\n",(0,s.jsx)(t.h3,{id:"translations",children:"Translations"}),"\n",(0,s.jsx)(t.p,{children:"We added or completed the default theme translation support for multiple languages:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["\u{1F1F8}\u{1F1EE} ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8541",children:"#8541"})," Slovenian"]}),"\n",(0,s.jsxs)(t.li,{children:["\u{1F1F9}\u{1F1F7} ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8289",children:"#8289"})," Turkish"]}),"\n",(0,s.jsxs)(t.li,{children:["\u{1F1EE}\u{1F1F7} ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8406",children:"#8406"})," Farsi"]}),"\n",(0,s.jsxs)(t.li,{children:["\u{1F1F5}\u{1F1F1} ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8525",children:"#8525"})," Polish"]}),"\n",(0,s.jsxs)(t.li,{children:["\u{1F1E8}\u{1F1F3} ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8423",children:"#8423"})," Chinese"]}),"\n",(0,s.jsxs)(t.li,{children:["\u{1F1F8}\u{1F1EA} ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8312",children:"#8312"})," Swedish"]}),"\n",(0,s.jsxs)(t.li,{children:["\u{1F1FB}\u{1F1F3} ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8450",children:"#8450"})," Vietnamese"]}),"\n"]}),"\n",(0,s.jsx)(t.admonition,{type:"tip",children:(0,s.jsxs)(t.p,{children:["Completing theme translations is an ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/3526",children:"ongoing effort"})," and an easy way to contribute to Docusaurus. We add new theme features regularly, for which we often ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/3526",children:"need new translations"}),"."]})}),"\n",(0,s.jsx)(t.h2,{id:"other-changes",children:"Other changes"}),"\n",(0,s.jsx)(t.p,{children:"Other notable changes include:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8463",children:"#8463"})," and ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8328",children:"#8328"}),": fix some annoying Docusaurus layout issues"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8539",children:"#8539"}),": Algolia plugin ",(0,s.jsx)(t.code,{children:"options.searchPagePath"})," should be correctly applied to search modal footer"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8462",children:"#8462"}),": Algolia plugin now makes it easier to transform displayed search results with custom logic"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8397",children:"#8397"}),": the ",(0,s.jsx)(t.code,{children:"deploy"})," CLI now understands git url ",(0,s.jsx)(t.code,{children:"insteadOf"})," config"]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["Check the ",(0,s.jsx)(t.strong,{children:(0,s.jsx)(t.a,{href:"/changelog/2.3.0",children:"2.3.0 changelog entry"})})," for an exhaustive list of changes."]})]})}function g(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},43023:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>i});var r=n(63696);let s={},a=r.createContext(s);function o(e){let t=r.useContext(a);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(a.Provider,{value:t},e.children)}},55142:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/2.3","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/2.3/index.mdx","source":"@site/blog/releases/2.3/index.mdx","title":"Docusaurus 2.3","description":"We are happy to announce Docusaurus 2.3.","date":"2023-01-27T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":2.89,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.3","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2023-01-27T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 2.4","permalink":"/blog/releases/2.4"},"nextItem":{"title":"Docusaurus 2.2","permalink":"/blog/releases/2.2"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[49751],{7673:(e,t,n)=>{n.d(t,{A:()=>r});let r=n.p+"assets/images/social-card-7e038d19ea67c686e90e1f599f7256d0.png"},15995:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(62540);n(63696);var s=n(11750);function a({children:e,hidden:t,className:n}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_pnkT",n),hidden:t,children:e})}},27446:(e,t,n)=>{n.d(t,{A:()=>y});var r=n(62540),s=n(63696),a=n(11750),o=n(7846),i=n(49519),l=n(96439),c=n(19739),u=n(66904),d=n(79244);function h(e){var t,n;return null!==(n=null===(t=s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==n?n:[]}function p({value:e,tabValues:t}){return t.some(t=>t.value===e)}var g=n(10709);function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function m(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function f({className:e,block:t,selectedValue:n,selectValue:s,tabValues:i}){let l=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.a_)(),u=e=>{let t=e.currentTarget,r=i[l.indexOf(t)].value;r!==n&&(c(t),s(r))},d=e=>{var t,n;let r=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let n=l.indexOf(e.currentTarget)+1;r=null!==(t=l[n])&&void 0!==t?t:l[0];break}case"ArrowLeft":{let t=l.indexOf(e.currentTarget)-1;r=null!==(n=l[t])&&void 0!==n?n:l[l.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.A)("tabs",{"tabs--block":t},e),children:i.map(({value:e,label:t,attributes:s})=>(0,r.jsx)("li",m(b({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>l.push(e),onKeyDown:d,onClick:u},s),{className:(0,a.A)("tabs__item","tabItem_AQgk",null==s?void 0:s.className,{"tabs__item--active":n===e}),children:null!=t?t:e}),e))})}function j({lazy:e,children:t,selectedValue:n}){let o=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=o.find(e=>e.props.value===n);return e?(0,s.cloneElement)(e,{className:(0,a.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:o.map((e,t)=>(0,s.cloneElement)(e,{key:t,hidden:e.props.value!==n}))})}function x(e){let t=function(e){let{defaultValue:t,queryString:n=!1,groupId:r}=e,a=function(e){let{values:t,children:n}=e;return(0,s.useMemo)(()=>{let e=null!=t?t:h(n).map(({props:{value:e,label:t,attributes:n,default:r}})=>({value:e,label:t,attributes:n,default:r}));return!function(e){let t=(0,u.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,n])}(e),[o,g]=(0,s.useState)(()=>(function({defaultValue:e,tabValues:t}){var n;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let r=null!==(n=t.find(e=>e.default))&&void 0!==n?n:t[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:t,tabValues:a})),[b,m]=function({queryString:e=!1,groupId:t}){let n=(0,i.W6)(),r=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,c.aZ)(r),(0,s.useCallback)(e=>{var t,s;if(!r)return;let a=new URLSearchParams(n.location.search);a.set(r,e),n.replace((t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},n.location),s=s={search:a.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(s)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(s)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(s,e))}),t))},[r,n])]}({queryString:n,groupId:r}),[f,j]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[n,r]=(0,d.Dv)(t);return[n,(0,s.useCallback)(e=>{t&&r.set(e)},[t,r])]}({groupId:r}),x=(()=>{let e=null!=b?b:f;return p({value:e,tabValues:a})?e:null})();return(0,l.A)(()=>{x&&g(x)},[x]),{selectedValue:o,selectValue:(0,s.useCallback)(e=>{if(!p({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);g(e),m(e),j(e)},[m,j,a]),tabValues:a}}(e);return(0,r.jsxs)("div",{className:(0,a.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(f,b({},t,e)),(0,r.jsx)(j,b({},t,e))]})}function y(e){let t=(0,g.A)();return(0,r.jsx)(x,m(b({},e),{children:h(e.children)}),String(t))}},70361:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(62540);n(63696);var s=n(11750);let a="dot_giz1",o="bar_rrRL";function i({children:e,minHeight:t,url:n="http://localhost:3000",style:i,bodyStyle:l}){var c,u;return(0,r.jsxs)("div",{className:"browserWindow_my1Q",style:(c=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},i),u=u={minHeight:t},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(u)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(u)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(u,e))}),c),children:[(0,r.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,r.jsxs)("div",{className:"buttons_uHc7",children:[(0,r.jsx)("span",{className:a,style:{background:"#f25f58"}}),(0,r.jsx)("span",{className:a,style:{background:"#fbbe3c"}}),(0,r.jsx)("span",{className:a,style:{background:"#58cb42"}})]}),(0,r.jsx)("div",{className:(0,s.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:n}),(0,r.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:o}),(0,r.jsx)("span",{className:o}),(0,r.jsx)("span",{className:o})]})})]}),(0,r.jsx)("div",{className:"browserWindowBody_Idgs",style:l,children:e})]})}},53940:(e,t,n)=>{n.d(t,{A:()=>r});let r=n.p+"assets/images/social-card-7e038d19ea67c686e90e1f599f7256d0.png"},11537:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>u,default:()=>g,frontMatter:()=>c,metadata:()=>r,toc:()=>h});var r=n(55142),s=n(62540),a=n(43023),o=n(70361),i=n(27446),l=n(15995);let c={title:"Docusaurus 2.3",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2023-01-27T00:00:00.000Z")},u=void 0,d={image:n(7673).A,authorsImageUrls:[void 0]},h=[{value:"Highlights",id:"highlights",level:2},{value:"Google Tag Manager plugin",id:"google-tag-manager-plugin",level:3},{value:"Tabs Query String Support",id:"tabs-query-string-support",level:3},{value:"Nested admonitions",id:"nested-admonitions",level:3},{value:"Blog <code>createFeedItems</code>",id:"blog-createfeeditems",level:3},{value:"Translations",id:"translations",level:3},{value:"Other changes",id:"other-changes",level:2}];function p(e){let t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.p,{children:["We are happy to announce ",(0,s.jsx)(t.strong,{children:"Docusaurus 2.3"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["The upgrade should be easy: as explained in our ",(0,s.jsx)(t.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,s.jsx)(t.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Docusaurus 2.2 social card",src:n(53940).A+"",width:"1200",height:"600"})}),"\n",(0,s.jsx)(t.h2,{id:"highlights",children:"Highlights"}),"\n",(0,s.jsx)(t.h3,{id:"google-tag-manager-plugin",children:"Google Tag Manager plugin"}),"\n",(0,s.jsx)(t.p,{children:"Google Tag Manager is a tag management system that allows great flexibility. It enables analytics and marketing teams to easily load other third-party trackers and fire analytics tags."}),"\n",(0,s.jsxs)(t.p,{children:["We now have a ",(0,s.jsx)(t.a,{href:"/docs/api/plugins/@docusaurus/plugin-google-tag-manager/",children:(0,s.jsx)(t.code,{children:"@docusaurus/plugin-google-tag-manager"})})," package that you can use alongside or as an alternative to the existing ",(0,s.jsx)(t.a,{href:"/docs/api/plugins/@docusaurus/plugin-google-gtag/",children:"gtag.js plugin"})," (refer to ",(0,s.jsx)(t.a,{href:"https://support.google.com/tagmanager/answer/7582054",children:"this doc"})," to understand when to use which solution)."]}),"\n",(0,s.jsxs)(t.admonition,{title:"Google is sunsetting Universal Analytics",type:"warning",children:[(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://blog.google/products/marketingplatform/analytics/prepare-for-future-with-google-analytics-4/",children:"Google will sunset its Universal Analytics"})," on ",(0,s.jsx)(t.strong,{children:"July 1, 2023"}),", and ask users to migrate to ",(0,s.jsx)(t.strong,{children:"Google Analytics 4"}),"."]}),(0,s.jsxs)(t.p,{children:["Therefore, we are also ",(0,s.jsxs)(t.strong,{children:["deprecating our existing ",(0,s.jsx)(t.a,{href:"/docs/api/plugins/@docusaurus/plugin-google-analytics",children:(0,s.jsx)(t.code,{children:"@docusaurus/plugin-google-analytics"})})]})," package. Docusaurus users should create a new Google Analytics 4 property, and migrate to the ",(0,s.jsx)(t.a,{href:"/docs/api/plugins/@docusaurus/plugin-google-gtag/",children:"gtag.js plugin"}),", or the ",(0,s.jsx)(t.a,{href:"/docs/api/plugins/@docusaurus/plugin-google-tag-manager/",children:"Google Tag Manager plugin"}),". Refer to the ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/7221",children:"dedicated Docusaurus issue"})," for details and questions."]})]}),"\n",(0,s.jsx)(t.h3,{id:"tabs-query-string-support",children:"Tabs Query String Support"}),"\n",(0,s.jsxs)(t.p,{children:["It is now possible to link a selected tab to a query string parameter. When a tab is selected, it will be stored in your browser URL as a ",(0,s.jsx)(t.code,{children:"?qs-param=tab-value"})," search parameter."]}),"\n",(0,s.jsx)(t.p,{children:"This feature allows deep-linking to a specific documentation tab that will pre-selected on page load."}),"\n",(0,s.jsxs)(t.p,{children:["When used alongside the ",(0,s.jsx)(t.code,{children:"groupId"})," prop, the query string tab value takes precedence over the ",(0,s.jsx)(t.code,{children:"localStorage"})," value."]}),"\n",(0,s.jsxs)(t.p,{children:["Make sure to check the ",(0,s.jsx)(t.a,{href:"/docs/markdown-features/tabs#query-string",children:"documentation"})," and the demo below to understand how it works:"]}),"\n","\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-tsx",children:'<Tabs groupId="current-os" queryString>\n <TabItem value="android" label="Android">\n Android\n </TabItem>\n <TabItem value="ios" label="iOS">\n iOS\n </TabItem>\n</Tabs>\n'})}),"\n",(0,s.jsx)(o.A,{children:(0,s.jsxs)(i.A,{groupId:"current-os",queryString:!0,children:[(0,s.jsx)(l.A,{value:"android",label:"Android",children:(0,s.jsx)(t.p,{children:"Android"})}),(0,s.jsx)(l.A,{value:"ios",label:"iOS",children:(0,s.jsx)(t.p,{children:"iOS"})})]})}),"\n",(0,s.jsx)(t.h3,{id:"nested-admonitions",children:"Nested admonitions"}),"\n",(0,s.jsx)(t.p,{children:"It is now possible to nest one admonition within another by adding extra colons for the outer/enclosing admonition:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-md",children:"::::tip[nested admonitions]\n\nYou can now nest one admonition within another!\n\n:::danger\n\nUse this sparingly when it makes sense.\n\n:::\n\n::::\n"})}),"\n",(0,s.jsxs)(t.admonition,{title:"nested admonitions",type:"tip",children:[(0,s.jsx)(t.p,{children:"You can now nest one admonition within another!"}),(0,s.jsx)(t.admonition,{type:"danger",children:(0,s.jsx)(t.p,{children:"Use this sparingly when it makes sense."})})]}),"\n",(0,s.jsxs)(t.h3,{id:"blog-createfeeditems",children:["Blog ",(0,s.jsx)(t.code,{children:"createFeedItems"})]}),"\n",(0,s.jsxs)(t.p,{children:["A new blog plugin option ",(0,s.jsx)(t.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-blog/#CreateFeedItemsFn",children:(0,s.jsx)(t.code,{children:"feedOptions.createFeedItems"})})," gives you more control over the RSS/Atom feed generation. It is now possible to transform/filter/limit feed items through a new callback."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-tsx",metastring:'title="docusaurus.config.js"',children:"[\n '@docusaurus/preset-classic',\n {\n blog: {\n feedOptions: {\n // highlight-start\n createFeedItems: async (params) => {\n const {blogPosts, defaultCreateFeedItems, ...rest} = params;\n return defaultCreateFeedItems({\n // keep only the 10 most recent blog posts in the feed\n blogPosts: blogPosts.filter((item, index) => index < 10),\n ...rest,\n });\n },\n // highlight-end\n },\n },\n },\n];\n"})}),"\n",(0,s.jsx)(t.h3,{id:"translations",children:"Translations"}),"\n",(0,s.jsx)(t.p,{children:"We added or completed the default theme translation support for multiple languages:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["\u{1F1F8}\u{1F1EE} ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8541",children:"#8541"})," Slovenian"]}),"\n",(0,s.jsxs)(t.li,{children:["\u{1F1F9}\u{1F1F7} ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8289",children:"#8289"})," Turkish"]}),"\n",(0,s.jsxs)(t.li,{children:["\u{1F1EE}\u{1F1F7} ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8406",children:"#8406"})," Farsi"]}),"\n",(0,s.jsxs)(t.li,{children:["\u{1F1F5}\u{1F1F1} ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8525",children:"#8525"})," Polish"]}),"\n",(0,s.jsxs)(t.li,{children:["\u{1F1E8}\u{1F1F3} ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8423",children:"#8423"})," Chinese"]}),"\n",(0,s.jsxs)(t.li,{children:["\u{1F1F8}\u{1F1EA} ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8312",children:"#8312"})," Swedish"]}),"\n",(0,s.jsxs)(t.li,{children:["\u{1F1FB}\u{1F1F3} ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8450",children:"#8450"})," Vietnamese"]}),"\n"]}),"\n",(0,s.jsx)(t.admonition,{type:"tip",children:(0,s.jsxs)(t.p,{children:["Completing theme translations is an ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/3526",children:"ongoing effort"})," and an easy way to contribute to Docusaurus. We add new theme features regularly, for which we often ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/3526",children:"need new translations"}),"."]})}),"\n",(0,s.jsx)(t.h2,{id:"other-changes",children:"Other changes"}),"\n",(0,s.jsx)(t.p,{children:"Other notable changes include:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8463",children:"#8463"})," and ",(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8328",children:"#8328"}),": fix some annoying Docusaurus layout issues"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8539",children:"#8539"}),": Algolia plugin ",(0,s.jsx)(t.code,{children:"options.searchPagePath"})," should be correctly applied to search modal footer"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8462",children:"#8462"}),": Algolia plugin now makes it easier to transform displayed search results with custom logic"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/8397",children:"#8397"}),": the ",(0,s.jsx)(t.code,{children:"deploy"})," CLI now understands git url ",(0,s.jsx)(t.code,{children:"insteadOf"})," config"]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["Check the ",(0,s.jsx)(t.strong,{children:(0,s.jsx)(t.a,{href:"/changelog/2.3.0",children:"2.3.0 changelog entry"})})," for an exhaustive list of changes."]})]})}function g(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},43023:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>i});var r=n(63696);let s={},a=r.createContext(s);function o(e){let t=r.useContext(a);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(a.Provider,{value:t},e.children)}},55142:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/2.3","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/2.3/index.mdx","source":"@site/blog/releases/2.3/index.mdx","title":"Docusaurus 2.3","description":"We are happy to announce Docusaurus 2.3.","date":"2023-01-27T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":2.89,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.3","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2023-01-27T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 2.4","permalink":"/blog/releases/2.4"},"nextItem":{"title":"Docusaurus 2.2","permalink":"/blog/releases/2.2"}}')}}]); \ No newline at end of file diff --git a/assets/js/39391.0fd14ee5.js b/assets/js/39391.0fd14ee5.js deleted file mode 100644 index 77120a9114..0000000000 --- a/assets/js/39391.0fd14ee5.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[39391],{39391:(t,e,i)=>{i.d(e,{diagram:()=>p});var s=i(17367),n=i(93126);i(95285),i(31546),i(31234);var r=function(){var t=function(t,e,i,s){for(i=i||{},s=t.length;s--;i[t[s]]=e);return i},e=[1,4],i=[1,5],s=[1,6],n=[1,7],r=[1,9],l=[1,11,13,15,17,19,20,26,27,28,29],c=[2,5],a=[1,6,11,13,15,17,19,20,26,27,28,29],o=[26,27,28],h=[2,8],u=[1,18],y=[1,19],p=[1,20],d=[1,21],g=[1,22],_=[1,23],f=[1,28],m=[6,26,27,28,29],v={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,PIE:6,document:7,showData:8,line:9,statement:10,txt:11,value:12,title:13,title_value:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,openDirective:21,typeDirective:22,closeDirective:23,":":24,argDirective:25,NEWLINE:26,";":27,EOF:28,open_directive:29,type_directive:30,arg_directive:31,close_directive:32,$accept:0,$end:1},terminals_:{2:"error",6:"PIE",8:"showData",11:"txt",12:"value",13:"title",14:"title_value",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",24:":",26:"NEWLINE",27:";",28:"EOF",29:"open_directive",30:"type_directive",31:"arg_directive",32:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,3],[7,0],[7,2],[9,2],[10,0],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,1],[5,3],[5,5],[4,1],[4,1],[4,1],[21,1],[22,1],[25,1],[23,1]],performAction:function(t,e,i,s,n,r,l){var c=r.length-1;switch(n){case 4:s.setShowData(!0);break;case 7:this.$=r[c-1];break;case 9:s.addSection(r[c-1],s.cleanupValue(r[c]));break;case 10:this.$=r[c].trim(),s.setDiagramTitle(this.$);break;case 11:this.$=r[c].trim(),s.setAccTitle(this.$);break;case 12:case 13:this.$=r[c].trim(),s.setAccDescription(this.$);break;case 14:s.addSection(r[c].substr(8)),this.$=r[c].substr(8);break;case 21:s.parseDirective("%%{","open_directive");break;case 22:s.parseDirective(r[c],"type_directive");break;case 23:r[c]=r[c].trim().replace(/'/g,'"'),s.parseDirective(r[c],"arg_directive");break;case 24:s.parseDirective("}%%","close_directive","pie")}},table:[{3:1,4:2,5:3,6:e,21:8,26:i,27:s,28:n,29:r},{1:[3]},{3:10,4:2,5:3,6:e,21:8,26:i,27:s,28:n,29:r},{3:11,4:2,5:3,6:e,21:8,26:i,27:s,28:n,29:r},t(l,c,{7:12,8:[1,13]}),t(a,[2,18]),t(a,[2,19]),t(a,[2,20]),{22:14,30:[1,15]},{30:[2,21]},{1:[2,1]},{1:[2,2]},t(o,h,{21:8,9:16,10:17,5:24,1:[2,3],11:u,13:y,15:p,17:d,19:g,20:_,29:r}),t(l,c,{7:25}),{23:26,24:[1,27],32:f},t([24,32],[2,22]),t(l,[2,6]),{4:29,26:i,27:s,28:n},{12:[1,30]},{14:[1,31]},{16:[1,32]},{18:[1,33]},t(o,[2,13]),t(o,[2,14]),t(o,[2,15]),t(o,h,{21:8,9:16,10:17,5:24,1:[2,4],11:u,13:y,15:p,17:d,19:g,20:_,29:r}),t(m,[2,16]),{25:34,31:[1,35]},t(m,[2,24]),t(l,[2,7]),t(o,[2,9]),t(o,[2,10]),t(o,[2,11]),t(o,[2,12]),{23:36,32:f},{32:[2,23]},t(m,[2,17])],defaultActions:{9:[2,21],10:[2,1],11:[2,2],35:[2,23]},parseError:function(t,e){if(e.recoverable)this.trace(t);else{var i=Error(t);throw i.hash=e,i}},parse:function(t){var e=this,i=[0],s=[],n=[null],r=[],l=this.table,c="",a=0,o=0,h=r.slice.call(arguments,1),u=Object.create(this.lexer),y={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(y.yy[p]=this.yy[p]);u.setInput(t,y.yy),y.yy.lexer=u,y.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var d=u.yylloc;r.push(d);var g=u.options&&u.options.ranges;"function"==typeof y.yy.parseError?this.parseError=y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,f,m,v,b,k,x,S,$={};;){if(f=i[i.length-1],this.defaultActions[f]?m=this.defaultActions[f]:(null==_&&(_=function(){var t;return"number"!=typeof(t=s.pop()||u.lex()||1)&&(t instanceof Array&&(t=(s=t).pop()),t=e.symbols_[t]||t),t}()),m=l[f]&&l[f][_]),void 0===m||!m.length||!m[0]){var w="";for(b in S=[],l[f])this.terminals_[b]&&b>2&&S.push("'"+this.terminals_[b]+"'");w=u.showPosition?"Parse error on line "+(a+1)+":\n"+u.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(a+1)+": Unexpected "+(1==_?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(w,{text:u.match,token:this.terminals_[_]||_,line:u.yylineno,loc:d,expected:S})}if(m[0]instanceof Array&&m.length>1)throw Error("Parse Error: multiple actions possible at state: "+f+", token: "+_);switch(m[0]){case 1:i.push(_),n.push(u.yytext),r.push(u.yylloc),i.push(m[1]),_=null,o=u.yyleng,c=u.yytext,a=u.yylineno,d=u.yylloc;break;case 2:if(k=this.productions_[m[1]][1],$.$=n[n.length-k],$._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},g&&($._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(v=this.performAction.apply($,[c,o,a,y.yy,m[1],n,r].concat(h))))return v;k&&(i=i.slice(0,-1*k*2),n=n.slice(0,-1*k),r=r.slice(0,-1*k)),i.push(this.productions_[m[1]][0]),n.push($.$),r.push($._$),x=l[i[i.length-2]][i[i.length-1]],i.push(x);break;case 3:return!0}}return!0}};function b(){this.yy={}}return v.lexer={EOF:1,parseError:function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===s.length?this.yylloc.first_column:0)+s[s.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var i,s,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(s=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var r in n)this[r]=n[r];return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,i,s,n=this._currentRules(),r=0;r<n.length;r++)if((i=this._input.match(this.rules[n[r]]))&&(!e||i[0].length>e[0].length)){if(e=i,s=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,n[r])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[s]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,i,s){switch(i){case 0:return this.begin("open_directive"),29;case 1:return this.begin("type_directive"),30;case 2:return this.popState(),this.begin("arg_directive"),24;case 3:return this.popState(),this.popState(),32;case 4:return 31;case 5:case 6:case 8:case 9:break;case 7:return 26;case 10:return this.begin("title"),13;case 11:return this.popState(),"title_value";case 12:return this.begin("acc_title"),15;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),17;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:case 20:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:this.begin("string");break;case 21:return"txt";case 22:return 6;case 23:return 8;case 24:return"value";case 25:return 28}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[\s]+)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie\b)/i,/^(?:showData\b)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},title:{rules:[11],inclusive:!1},string:{rules:[20,21],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,12,14,16,19,22,23,24,25],inclusive:!0}}},b.prototype=v,v.Parser=b,new b}();r.parser=r;let l=s.C.pie,c={},a=c,o=!1,h=structuredClone(l),u={getConfig:()=>structuredClone(h),parseDirective:(t,e,i)=>{(0,s.D)(void 0,t,e,i)},clear:()=>{a=structuredClone(c),o=!1,(0,s.v)()},setDiagramTitle:s.r,getDiagramTitle:s.t,setAccTitle:s.s,getAccTitle:s.g,setAccDescription:s.b,getAccDescription:s.a,addSection:(t,e)=>{void 0===a[t=(0,s.d)(t,(0,s.c)())]&&(a[t]=e,s.l.debug(`added new section: ${t}, with value: ${e}`))},getSections:()=>a,cleanupValue:t=>(":"===t.substring(0,1)&&(t=t.substring(1).trim()),Number(t.trim())),setShowData:t=>{o=t},getShowData:()=>o},y=t=>{let e=Object.entries(t).map(t=>({label:t[0],value:t[1]}));return(0,n.rLf)().value(t=>t.value)(e)},p={parser:r,db:u,renderer:{draw:(t,e,i,r)=>{var l,c;s.l.debug("rendering pie chart\n"+t);let a=r.db,o=(0,s.c)(),h=(0,s.E)(a.getConfig(),o.pie),u=(null==(c=null==(l=document.getElementById(e))?void 0:l.parentElement)?void 0:c.offsetWidth)??h.useWidth,p=(0,s.B)(e);p.attr("viewBox",`0 0 ${u} 450`),(0,s.i)(p,450,u,h.useMaxWidth);let d=p.append("g");d.attr("transform","translate("+u/2+",225)");let{themeVariables:g}=o,[_]=(0,s.F)(g.pieOuterStrokeWidth);_??(_=2);let f=h.textPosition,m=Math.min(u,450)/2-40,v=(0,n.JLW)().innerRadius(0).outerRadius(m),b=(0,n.JLW)().innerRadius(m*f).outerRadius(m*f);d.append("circle").attr("cx",0).attr("cy",0).attr("r",m+_/2).attr("class","pieOuterCircle");let k=a.getSections(),x=y(k),S=[g.pie1,g.pie2,g.pie3,g.pie4,g.pie5,g.pie6,g.pie7,g.pie8,g.pie9,g.pie10,g.pie11,g.pie12],$=(0,n.UMr)(S);d.selectAll("mySlices").data(x).enter().append("path").attr("d",v).attr("fill",t=>$(t.data.label)).attr("class","pieCircle");let w=0;Object.keys(k).forEach(t=>{w+=k[t]}),d.selectAll("mySlices").data(x).enter().append("text").text(t=>(t.data.value/w*100).toFixed(0)+"%").attr("transform",t=>"translate("+b.centroid(t)+")").style("text-anchor","middle").attr("class","slice"),d.append("text").text(a.getDiagramTitle()).attr("x",0).attr("y",-200).attr("class","pieTitleText");let E=d.selectAll(".legend").data($.domain()).enter().append("g").attr("class","legend").attr("transform",(t,e)=>"translate(216,"+(22*e-22*$.domain().length/2)+")");E.append("rect").attr("width",18).attr("height",18).style("fill",$).style("stroke",$),E.data(x).append("text").attr("x",22).attr("y",14).text(t=>{let{label:e,value:i}=t.data;return a.getShowData()?`${e} [${i}]`:e})}},styles:t=>` - .pieCircle{ - stroke: ${t.pieStrokeColor}; - stroke-width : ${t.pieStrokeWidth}; - opacity : ${t.pieOpacity}; - } - .pieOuterCircle{ - stroke: ${t.pieOuterStrokeColor}; - stroke-width: ${t.pieOuterStrokeWidth}; - fill: none; - } - .pieTitleText { - text-anchor: middle; - font-size: ${t.pieTitleTextSize}; - fill: ${t.pieTitleTextColor}; - font-family: ${t.fontFamily}; - } - .slice { - font-family: ${t.fontFamily}; - fill: ${t.pieSectionTextColor}; - font-size:${t.pieSectionTextSize}; - // fill: white; - } - .legend text { - fill: ${t.pieLegendTextColor}; - font-family: ${t.fontFamily}; - font-size: ${t.pieLegendTextSize}; - } -`}}}]); \ No newline at end of file diff --git a/assets/js/39485f13.969fbeb9.js b/assets/js/39485f13.83494359.js similarity index 93% rename from assets/js/39485f13.969fbeb9.js rename to assets/js/39485f13.83494359.js index 1d16314f50..e8eefc86df 100644 --- a/assets/js/39485f13.969fbeb9.js +++ b/assets/js/39485f13.83494359.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[44778],{4167:(e,t,a)=>{a.d(t,{A:()=>s});let s=a.p+"assets/images/docusaurus-slash-first-birthday-71e4f41412bd9df66b30df131ce8dc67.svg"},79867:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>l,frontMatter:()=>n,metadata:()=>s,toc:()=>c});var s=a(92290),r=a(62540),o=a(43023);let n={title:"Happy 1st Birthday Slash!",authors:[{key:"JMarcey",title:"Co-creator of Docusaurus"}],tags:["birth"]},i=void 0,u={authorsImageUrls:[void 0]},c=[];function h(e){let t={a:"a",blockquote:"blockquote",img:"img",p:"p",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Docusaurus makes 1 year! Happy Birthday Slash!",src:a(4167).A+"",width:"1805",height:"741"})}),"\n",(0,r.jsxs)(t.p,{children:["Docusaurus ",(0,r.jsx)(t.a,{href:"https://v1.docusaurus.io/blog/2017/12/14/introducing-docusaurus",children:"went live"})," on December 14, 2017. At the time, we had ",(0,r.jsx)(t.a,{href:"https://v1.docusaurus.io/blog/2017/12/14/introducing-docusaurus#acknowledgements",children:"8 early adopters"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["We now have nearly ",(0,r.jsx)(t.a,{href:"https://v1.docusaurus.io/en/users",children:"60 known users of Docusaurus"}),", and probably more that we don't know about. We have ",(0,r.jsx)(t.a,{href:"https://github.com/facebook/docusaurus",children:"9K GitHub stars"})," and an active community, particularly ",(0,r.jsx)(t.a,{href:"https://x.com/yangshunz",children:"Yangshun Tay"})," and ",(0,r.jsx)(t.a,{href:"https://x.com/endiliey",children:"Endilie Yacop Sucipto"}),", both of whom are the lead maintainers helping keep this project ",(0,r.jsx)(t.a,{href:"https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2",children:"moving forward"}),"."]}),"\n",(0,r.jsx)(t.p,{children:"Thank you to everyone for your support and use of this project! I am super proud of how far this project has come in just a year."}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsxs)(t.p,{children:["Special thanks to ",(0,r.jsx)(t.a,{href:"https://x.com/ericnakagawa",children:"Eric Nakagawa"}),", creator of Slash, for creating this 1-year image of Slash enjoying cake. The Slash brand has been a boon for us!"]}),"\n"]})]})}function l(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},43023:(e,t,a)=>{a.d(t,{R:()=>n,x:()=>i});var s=a(63696);let r={},o=s.createContext(r);function n(e){let t=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:n(e.components),s.createElement(o.Provider,{value:t},e.children)}},92290:e=>{e.exports=JSON.parse('{"permalink":"/blog/2018/12/14/Happy-First-Birthday-Slash","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2018/12-14-Happy-First-Birthday-Slash.mdx","source":"@site/blog/2018/12-14-Happy-First-Birthday-Slash.mdx","title":"Happy 1st Birthday Slash!","description":"Docusaurus makes 1 year! Happy Birthday Slash!","date":"2018-12-14T00:00:00.000Z","tags":[{"inline":false,"label":"Birth","permalink":"/blog/tags/birth"}],"readingTime":0.615,"hasTruncateMarker":true,"authors":[{"name":"Joel Marcey","title":"Co-creator of Docusaurus","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Happy 1st Birthday Slash!","authors":[{"key":"JMarcey","title":"Co-creator of Docusaurus"}],"tags":["birth"]},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 2019 Recap","permalink":"/blog/2019/12/30/docusaurus-2019-recap"},"nextItem":{"title":"Towards Docusaurus 2","permalink":"/blog/2018/09/11/Towards-Docusaurus-2"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[44778],{4167:(e,t,a)=>{a.d(t,{A:()=>s});let s=a.p+"assets/images/docusaurus-slash-first-birthday-71e4f41412bd9df66b30df131ce8dc67.svg"},79867:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>l,frontMatter:()=>n,metadata:()=>s,toc:()=>c});var s=a(92290),r=a(62540),o=a(43023);let n={title:"Happy 1st Birthday Slash!",authors:[{key:"JMarcey",title:"Co-creator of Docusaurus"}],tags:["birth"]},i=void 0,u={authorsImageUrls:[void 0]},c=[];function h(e){let t={a:"a",blockquote:"blockquote",img:"img",p:"p",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Docusaurus makes 1 year! Happy Birthday Slash!",src:a(4167).A+"",width:"1805",height:"741"})}),"\n",(0,r.jsxs)(t.p,{children:["Docusaurus ",(0,r.jsx)(t.a,{href:"https://v1.docusaurus.io/blog/2017/12/14/introducing-docusaurus",children:"went live"})," on December 14, 2017. At the time, we had ",(0,r.jsx)(t.a,{href:"https://v1.docusaurus.io/blog/2017/12/14/introducing-docusaurus#acknowledgements",children:"8 early adopters"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["We now have nearly ",(0,r.jsx)(t.a,{href:"https://v1.docusaurus.io/en/users",children:"60 known users of Docusaurus"}),", and probably more that we don't know about. We have ",(0,r.jsx)(t.a,{href:"https://github.com/facebook/docusaurus",children:"9K GitHub stars"})," and an active community, particularly ",(0,r.jsx)(t.a,{href:"https://x.com/yangshunz",children:"Yangshun Tay"})," and ",(0,r.jsx)(t.a,{href:"https://x.com/endiliey",children:"Endilie Yacop Sucipto"}),", both of whom are the lead maintainers helping keep this project ",(0,r.jsx)(t.a,{href:"https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2",children:"moving forward"}),"."]}),"\n",(0,r.jsx)(t.p,{children:"Thank you to everyone for your support and use of this project! I am super proud of how far this project has come in just a year."}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsxs)(t.p,{children:["Special thanks to ",(0,r.jsx)(t.a,{href:"https://x.com/ericnakagawa",children:"Eric Nakagawa"}),", creator of Slash, for creating this 1-year image of Slash enjoying cake. The Slash brand has been a boon for us!"]}),"\n"]})]})}function l(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},43023:(e,t,a)=>{a.d(t,{R:()=>n,x:()=>i});var s=a(63696);let r={},o=s.createContext(r);function n(e){let t=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:n(e.components),s.createElement(o.Provider,{value:t},e.children)}},92290:e=>{e.exports=JSON.parse('{"permalink":"/blog/2018/12/14/Happy-First-Birthday-Slash","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2018/12-14-Happy-First-Birthday-Slash.mdx","source":"@site/blog/2018/12-14-Happy-First-Birthday-Slash.mdx","title":"Happy 1st Birthday Slash!","description":"Docusaurus makes 1 year! Happy Birthday Slash!","date":"2018-12-14T00:00:00.000Z","tags":[{"inline":false,"label":"Birth","permalink":"/blog/tags/birth"}],"readingTime":0.615,"hasTruncateMarker":true,"authors":[{"name":"Joel Marcey","title":"Co-creator of Docusaurus","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Happy 1st Birthday Slash!","authors":[{"key":"JMarcey","title":"Co-creator of Docusaurus"}],"tags":["birth"]},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 2019 Recap","permalink":"/blog/2019/12/30/docusaurus-2019-recap"},"nextItem":{"title":"Towards Docusaurus 2","permalink":"/blog/2018/09/11/Towards-Docusaurus-2"}}')}}]); \ No newline at end of file diff --git a/assets/js/3955af78.5ef830e6.js b/assets/js/3955af78.5ef830e6.js deleted file mode 100644 index 17f67efc77..0000000000 --- a/assets/js/3955af78.5ef830e6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[70349],{48777:(t,s,e)=>{e.r(s),e.d(s,{assets:()=>u,contentTitle:()=>p,default:()=>a,frontMatter:()=>c,metadata:()=>o,toc:()=>i});let o=JSON.parse('{"id":"tests/custom-props/doc-without-custom-props","title":"Doc Without Custom Props","description":"This doc doesn\'t have custom props.","source":"@site/_dogfooding/_docs tests/tests/custom-props/doc-without-custom-props.mdx","sourceDirName":"tests/custom-props","slug":"/tests/custom-props/doc-without-custom-props","permalink":"/tests/docs/tests/custom-props/doc-without-custom-props","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Doc with Custom Props","permalink":"/tests/docs/tests/custom-props/doc-with-custom-props"},"next":{"title":"Image tests","permalink":"/tests/docs/tests/img-tests"}}');var r=e(62540),n=e(43023);let c={},p="Doc Without Custom Props",u={},i=[];function d(t){let s={h1:"h1",header:"header",p:"p",...(0,n.R)(),...t.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.header,{children:(0,r.jsx)(s.h1,{id:"doc-without-custom-props",children:"Doc Without Custom Props"})}),"\n",(0,r.jsx)(s.p,{children:"This doc doesn't have custom props."})]})}function a(t={}){let{wrapper:s}={...(0,n.R)(),...t.components};return s?(0,r.jsx)(s,{...t,children:(0,r.jsx)(d,{...t})}):d(t)}a.displayName="MDXContent(_dogfooding/_docs tests/tests/custom-props/doc-without-custom-props.mdx)"},43023:(t,s,e)=>{e.d(s,{R:()=>c,x:()=>p});var o=e(63696);let r={},n=o.createContext(r);function c(t){let s=o.useContext(n);return o.useMemo(function(){return"function"==typeof t?t(s):{...s,...t}},[s,t])}function p(t){let s;return s=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:c(t.components),o.createElement(n.Provider,{value:s},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/3955af78.7c5fcb11.js b/assets/js/3955af78.7c5fcb11.js new file mode 100644 index 0000000000..203f0961be --- /dev/null +++ b/assets/js/3955af78.7c5fcb11.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[70349],{48777:(t,s,e)=>{e.r(s),e.d(s,{assets:()=>u,contentTitle:()=>p,default:()=>a,frontMatter:()=>c,metadata:()=>o,toc:()=>i});let o=JSON.parse('{"id":"tests/custom-props/doc-without-custom-props","title":"Doc Without Custom Props","description":"This doc doesn\'t have custom props.","source":"@site/_dogfooding/_docs tests/tests/custom-props/doc-without-custom-props.mdx","sourceDirName":"tests/custom-props","slug":"/tests/custom-props/doc-without-custom-props","permalink":"/tests/docs/tests/custom-props/doc-without-custom-props","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Doc with Custom Props","permalink":"/tests/docs/tests/custom-props/doc-with-custom-props"},"next":{"title":"Image tests","permalink":"/tests/docs/tests/img-tests"}}');var r=e(62540),n=e(43023);let c={},p="Doc Without Custom Props",u={},i=[];function d(t){let s={h1:"h1",header:"header",p:"p",...(0,n.R)(),...t.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.header,{children:(0,r.jsx)(s.h1,{id:"doc-without-custom-props",children:"Doc Without Custom Props"})}),"\n",(0,r.jsx)(s.p,{children:"This doc doesn't have custom props."})]})}function a(t={}){let{wrapper:s}={...(0,n.R)(),...t.components};return s?(0,r.jsx)(s,{...t,children:(0,r.jsx)(d,{...t})}):d(t)}a.displayName="MDXContent(_dogfooding/_docs tests/tests/custom-props/doc-without-custom-props.mdx)"},43023:(t,s,e)=>{e.d(s,{R:()=>c,x:()=>p});var o=e(63696);let r={},n=o.createContext(r);function c(t){let s=o.useContext(n);return o.useMemo(function(){return"function"==typeof t?t(s):{...s,...t}},[s,t])}function p(t){let s;return s=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:c(t.components),o.createElement(n.Provider,{value:s},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/3c03c7ff.6ac51d3c.js b/assets/js/3c03c7ff.6ac51d3c.js new file mode 100644 index 0000000000..5ff23ab901 --- /dev/null +++ b/assets/js/3c03c7ff.6ac51d3c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[78644],{15995:(e,n,t)=>{t.d(n,{A:()=>o});var r=t(62540);t(63696);var s=t(11750);function o({children:e,hidden:n,className:t}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>w});var r=t(62540),s=t(63696),o=t(11750),i=t(7846),a=t(49519),l=t(96439),c=t(19739),d=t(66904),u=t(79244);function h(e){var n,t;return null!==(t=null===(n=s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}var g=t(10709);function f(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function j(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function b({className:e,block:n,selectedValue:t,selectValue:s,tabValues:a}){let l=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.a_)(),d=e=>{let n=e.currentTarget,r=a[l.indexOf(n)].value;r!==t&&(c(n),s(r))},u=e=>{var n,t;let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let t=l.indexOf(e.currentTarget)+1;r=null!==(n=l[t])&&void 0!==n?n:l[0];break}case"ArrowLeft":{let n=l.indexOf(e.currentTarget)-1;r=null!==(t=l[n])&&void 0!==t?t:l[l.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.A)("tabs",{"tabs--block":n},e),children:a.map(({value:e,label:n,attributes:s})=>(0,r.jsx)("li",j(f({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>l.push(e),onKeyDown:u,onClick:d},s),{className:(0,o.A)("tabs__item","tabItem_AQgk",null==s?void 0:s.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function m({lazy:e,children:n,selectedValue:t}){let i=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=i.find(e=>e.props.value===t);return e?(0,s.cloneElement)(e,{className:(0,o.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:i.map((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function x(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,o=function(e){let{values:n,children:t}=e;return(0,s.useMemo)(()=>{let e=null!=n?n:h(t).map(({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r}));return!function(e){let n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[i,g]=(0,s.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:o})),[f,j]=function({queryString:e=!1,groupId:n}){let t=(0,a.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,c.aZ)(r),(0,s.useCallback)(e=>{var n,s;if(!r)return;let o=new URLSearchParams(t.location.search);o.set(r,e),t.replace((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},t.location),s=s={search:o.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(s)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(s)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(s,e))}),n))},[r,t])]}({queryString:t,groupId:r}),[b,m]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[t,r]=(0,u.Dv)(n);return[t,(0,s.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),x=(()=>{let e=null!=f?f:b;return p({value:e,tabValues:o})?e:null})();return(0,l.A)(()=>{x&&g(x)},[x]),{selectedValue:i,selectValue:(0,s.useCallback)(e=>{if(!p({value:e,tabValues:o}))throw Error(`Can't select invalid tab value=${e}`);g(e),j(e),m(e)},[j,m,o]),tabValues:o}}(e);return(0,r.jsxs)("div",{className:(0,o.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(b,f({},n,e)),(0,r.jsx)(m,f({},n,e))]})}function w(e){let n=(0,g.A)();return(0,r.jsx)(x,j(f({},e),{children:h(e.children)}),String(n))}},40576:(e,n,t)=>{t.d(n,{A:()=>o});var r=t(62540);t(63696);var s=t(10709);function o({children:e,fallback:n}){return(0,s.A)()?(0,r.jsx)(r.Fragment,{children:null==e?void 0:e()}):null!=n?n:null}},55887:(e,n,t)=>{t.d(n,{A:()=>ea});var r,s,o,i={};t.r(i),t.d(i,{ButtonExample:()=>A});var a=t(62540),l=t(63696),c=t(11750),d=t(10709),u=t(55152),h=t(81912),p=t(99468),g=t(40576),f=t(1495),j=t(66659),b=t(25436);function m(){let{prism:e}=(0,b.p)(),{colorMode:n}=(0,j.G)(),t=e.theme,r=e.darkTheme||t;return"dark"===n?r:t}var x=t(43758);function w(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function y({children:e}){return(0,a.jsx)("div",{className:(0,c.A)("playgroundHeader_Tvsk"),children:e})}function v(){return(0,a.jsx)("div",{children:"Loading..."})}function O(){return(0,a.jsx)(g.A,{fallback:(0,a.jsx)(v,{}),children:()=>(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.A,{fallback:e=>(0,a.jsx)(f.MN,w({},e)),children:(0,a.jsx)(u.pA,{})}),(0,a.jsx)(u.p1,{})]})})}function k(){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(y,{children:(0,a.jsx)(h.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,a.jsx)("div",{className:"playgroundPreview_mApW",children:(0,a.jsx)(O,{})})]})}function C(){let e=(0,d.A)();return(0,a.jsx)(u.w,{className:"playgroundEditor_TySg"},String(e))}function P(){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(y,{children:(0,a.jsx)(h.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,a.jsx)(C,{})]})}let _=e=>`${e};`;function S(e){var n,t,r,s,{children:o,transformCode:i}=e,l=function(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,["children","transformCode"]);let{siteConfig:{themeConfig:c}}=(0,p.A)(),{liveCodeBlock:{playgroundPosition:d}}=c,h=m(),g=null!==(s=null===(r=l.metastring)||void 0===r?void 0:r.includes("noInline"))&&void 0!==s&&s;return(0,a.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,a.jsx)(u.Q,(n=w({code:null==o?void 0:o.replace(/\n$/,""),noInline:g,transformCode:null!=i?i:_,theme:h},l),t=t={children:"top"===d?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(k,{}),(0,a.jsx)(P,{})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(P,{}),(0,a.jsx)(k,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))})}function D(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function A(e){var n,t;return(0,a.jsx)("button",(n=D({type:"button"},e),t=t={style:D({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let N=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({React:l},l,i);var T=t(12653),E=t(19934),I=t.n(E);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),B=RegExp("\\{(?<range>[\\d,-]+)\\}"),M={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},U=(r=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},M),s=s={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(s)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(s)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(s,e))}),r),R=Object.keys(M);function W(e,n){let t=e.map(e=>{let{start:t,end:r}=U[e];return`(?:${t}\\s*(${n.flatMap(e=>{var n,t;return[e.line,null===(n=e.block)||void 0===n?void 0:n.start,null===(t=e.block)||void 0===t?void 0:t.end].filter(Boolean)}).join("|")})\\s*${r})`}).join("|");return RegExp(`^\\s*(?:${t})\\s*$`)}function q(e){var n,t,{as:r}=e,s=function(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,["as"]);let o=function(e){let n={color:"--prism-color",backgroundColor:"--prism-background-color"},t={};return Object.entries(e.plain).forEach(([e,r])=>{let s=n[e];s&&"string"==typeof r&&(t[s]=r)}),t}(m());return(0,a.jsx)(r,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},s),t=t={style:o,className:(0,c.A)(s.className,"codeBlockContainer_jDV4",T.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let G={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function H({children:e,className:n}){return(0,a.jsx)(q,{as:"pre",tabIndex:0,className:(0,c.A)(G.codeBlockStandalone,"thin-scrollbar",n),children:(0,a.jsx)("code",{className:G.codeBlockLines,children:e})})}var $=t(2550);let F={attributes:!0,characterData:!0,childList:!0,subtree:!0};var J=t(27663);let X={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function z(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function Y({line:e,classNames:n,showLineNumbers:t,getLineProps:r,getTokenProps:s}){var o,i;1===e.length&&"\n"===e[0].content&&(e[0].content="");let l=r({line:e,className:(0,c.A)(n,t&&X.codeLine)}),d=e.map((e,n)=>(0,a.jsx)("span",z({},s({token:e})),n));return(0,a.jsxs)("span",(o=z({},l),i=i={children:[t?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:X.codeLineNumber}),(0,a.jsx)("span",{className:X.codeLineContent,children:d})]}):d,(0,a.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(i)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(i)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(i,e))}),o))}var V=t(936);function K(e){var n,t;return(0,a.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,a.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function Q(e){var n,t;return(0,a.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,a.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let Z={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:n}){let[t,r]=(0,l.useState)(!1),s=(0,l.useRef)(void 0),o=(0,l.useCallback)(()=>{(0,V.A)(e),r(!0),s.current=window.setTimeout(()=>{r(!1)},1e3)},[e]);return(0,l.useEffect)(()=>()=>window.clearTimeout(s.current),[]),(0,a.jsx)("button",{type:"button","aria-label":t?(0,h.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,h.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,h.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,c.A)("clean-btn",n,Z.copyButton,t&&Z.copyButtonCopied),onClick:o,children:(0,a.jsxs)("span",{className:Z.copyButtonIcons,"aria-hidden":"true",children:[(0,a.jsx)(K,{className:Z.copyButtonIcon}),(0,a.jsx)(Q,{className:Z.copyButtonSuccessIcon})]})})}function en(e){var n,t;return(0,a.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,a.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let et={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function er({className:e,onClick:n,isEnabled:t}){let r=(0,h.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,a.jsx)("button",{type:"button",onClick:n,className:(0,c.A)("clean-btn",e,t&&et.wordWrapButtonEnabled),"aria-label":r,title:r,children:(0,a.jsx)(en,{className:et.wordWrapButtonIcon,"aria-hidden":"true"})})}function es({children:e,className:n="",metastring:t,title:r,showLineNumbers:s,language:o}){var i,d,u,h;let{prism:{defaultLanguage:p,magicComments:g}}=(0,b.p)(),f=null==(d=null!==(i=null!=o?o:function(e){let n=e.split(" ").find(e=>e.startsWith("language-"));return null==n?void 0:n.replace(/language-/,"")}(n))&&void 0!==i?i:p)?void 0:d.toLowerCase(),j=m(),x=function(){let[e,n]=(0,l.useState)(!1),[t,r]=(0,l.useState)(!1),s=(0,l.useRef)(null),o=(0,l.useCallback)(()=>{let t=s.current.querySelector("code");e?t.removeAttribute("style"):(t.style.whiteSpace="pre-wrap",t.style.overflowWrap="anywhere"),n(e=>!e)},[s,e]),i=(0,l.useCallback)(()=>{let{scrollWidth:e,clientWidth:n}=s.current;r(e>n||s.current.querySelector("code").hasAttribute("style"))},[s]);return!function(e,n){let[t,r]=(0,l.useState)(),s=(0,l.useCallback)(()=>{var n;r(null===(n=e.current)||void 0===n?void 0:n.closest("[role=tabpanel][hidden]"))},[e,r]);(0,l.useEffect)(()=>{s()},[s]),function(e,n,t=F){let r=(0,$._q)(n),s=(0,$.Be)(t);(0,l.useEffect)(()=>{let n=new MutationObserver(r);return e&&n.observe(e,s),()=>n.disconnect()},[e,r,s])}(t,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(n(),s())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(s,i),(0,l.useEffect)(()=>{i()},[e,i]),(0,l.useEffect)(()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)}),[i]),{codeBlockRef:s,isEnabled:e,isCodeScrollable:t,toggle:o}}(),w=(null!==(h=null==t?void 0:null===(u=t.match(L))||void 0===u?void 0:u.groups.title)&&void 0!==h?h:"")||r,{lineClassNames:y,code:v}=function(e,n){let t=e.replace(/\n$/,""),{language:r,magicComments:s,metastring:o}=n;if(o&&B.test(o)){let e=o.match(B).groups.range;if(0===s.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${o}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let n=s[0].className;return{lineClassNames:Object.fromEntries(I()(e).filter(e=>e>0).map(e=>[e-1,[n]])),code:t}}if(void 0===r)return{lineClassNames:{},code:t};let i=function(e,n){switch(e){case"js":case"javascript":case"ts":case"typescript":return W(["js","jsBlock"],n);case"jsx":case"tsx":return W(["js","jsBlock","jsx"],n);case"html":return W(["js","jsBlock","html"],n);case"python":case"py":case"bash":return W(["bash"],n);case"markdown":case"md":return W(["html","jsx","bash"],n);case"tex":case"latex":case"matlab":return W(["tex"],n);case"lua":case"haskell":case"sql":return W(["lua"],n);case"wasm":return W(["wasm"],n);case"vb":case"vba":case"visual-basic":return W(["vb","rem"],n);case"vbnet":return W(["vbnet","rem"],n);case"batch":return W(["rem"],n);case"basic":return W(["rem","f90"],n);case"fsharp":return W(["js","ml"],n);case"ocaml":case"sml":return W(["ml"],n);case"fortran":return W(["f90"],n);case"cobol":return W(["cobol"],n);default:return W(R,n)}}(r,s),a=t.split("\n"),l=Object.fromEntries(s.map(e=>[e.className,{start:0,range:""}])),c=Object.fromEntries(s.filter(e=>e.line).map(({className:e,line:n})=>[n,e])),d=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:n})=>[n.start,e])),u=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:n})=>[n.end,e]));for(let e=0;e<a.length;){let n=a[e].match(i);if(!n){e+=1;continue}let t=n.slice(1).find(e=>void 0!==e);c[t]?l[c[t]].range+=`${e},`:d[t]?l[d[t]].start=e:u[t]&&(l[u[t]].range+=`${l[u[t]].start}-${e-1},`),a.splice(e,1)}t=a.join("\n");let h={};return Object.entries(l).forEach(([e,{range:n}])=>{I()(n).forEach(n=>{var t;null!==(t=h[n])&&void 0!==t||(h[n]=[]),h[n].push(e)})}),{lineClassNames:h,code:t}}(e,{metastring:t,language:f,magicComments:g}),O=null!=s?s:!!(null==t?void 0:t.includes("showLineNumbers"));return(0,a.jsxs)(q,{as:"div",className:(0,c.A)(n,f&&!n.includes(`language-${f}`)&&`language-${f}`),children:[w&&(0,a.jsx)("div",{className:G.codeBlockTitle,children:w}),(0,a.jsxs)("div",{className:G.codeBlockContent,children:[(0,a.jsx)(J.f4,{theme:j,code:v,language:null!=f?f:"text",children:({className:e,style:n,tokens:t,getLineProps:r,getTokenProps:s})=>(0,a.jsx)("pre",{tabIndex:0,ref:x.codeBlockRef,className:(0,c.A)(e,G.codeBlock,"thin-scrollbar"),style:n,children:(0,a.jsx)("code",{className:(0,c.A)(G.codeBlockLines,O&&G.codeBlockLinesWithNumbering),children:t.map((e,n)=>(0,a.jsx)(Y,{line:e,getLineProps:r,getTokenProps:s,classNames:y[n],showLineNumbers:O},n))})})}),(0,a.jsxs)("div",{className:G.buttonGroup,children:[(x.isEnabled||x.isCodeScrollable)&&(0,a.jsx)(er,{className:G.codeButton,onClick:()=>x.toggle(),isEnabled:x.isEnabled}),(0,a.jsx)(ee,{className:G.codeButton,code:v})]})]})]})}function eo(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}let ei=(o=function(e){var n,t,{children:r}=e,s=function(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,["children"]);let o=(0,d.A)(),i=l.Children.toArray(r).some(e=>(0,l.isValidElement)(e))?r:Array.isArray(r)?r.join(""):r,c="string"==typeof i?es:H;return(0,a.jsx)(c,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},s),t=t={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n),String(o))},function(e){return e.live?(0,a.jsx)(S,eo({scope:N},e)):(0,a.jsx)(o,eo({},e))});function ea(e){return(0,a.jsx)(ei,function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},e))}},96637:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-create-project-2fe25e5974adc027f7ac2c36f1717de1.png"},35047:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-download-translations-warning-cb747bdcfc38beabea491f63781b9b40.png"},35701:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-files-rename-5ff9bf66f6123800006cf38ead6b66ae.png"},91324:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-french-translations-4f252e7f63a781628378eeb3a9fefb39.png"},69963:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-hide-string-5e470a33a42e044379bf6860ff534b50.png"},75735:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-settings-duplicate-strings-6943e2e4cab8910625a0b6c285052726.png"},84656:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-source-files-0ba8c0433421141418462c3bf6de22ed.png"},53092:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-translate-json-39a6b98aa60a84eba22b2f5834cbb97d.png"},19018:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-translate-markdown-0651cd22b5f07f0e9b3031ffaebbc5b6.png"},38770:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-upload-sources-cli-5758c2f4d4256ac05d21b637d1d517bb.png"},77600:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>d,default:()=>g,frontMatter:()=>c,metadata:()=>r,toc:()=>h});let r=JSON.parse('{"id":"i18n/crowdin","title":"i18n - Using Crowdin","description":"The i18n system of Docusaurus is decoupled from any translation software.","source":"@site/docs/i18n/i18n-crowdin.mdx","sourceDirName":"i18n","slug":"/i18n/crowdin","permalink":"/docs/i18n/crowdin","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/i18n/i18n-crowdin.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"crowdin","slug":"/i18n/crowdin","toc_max_heading_level":4},"sidebar":"docs","previous":{"title":"Using Git","permalink":"/docs/i18n/git"},"next":{"title":"What\'s next?","permalink":"/docs/guides/whats-next"}}');var s=t(62540),o=t(43023),i=t(27446),a=t(15995),l=t(55887);let c={id:"crowdin",slug:"/i18n/crowdin",toc_max_heading_level:4},d="i18n - Using Crowdin",u={},h=[{value:"Crowdin overview",id:"crowdin-overview",level:2},{value:"Crowdin tutorial",id:"crowdin-tutorial",level:2},{value:"Prepare the Docusaurus site",id:"prepare-the-docusaurus-site",level:3},{value:"Create a Crowdin project",id:"create-a-crowdin-project",level:3},{value:"Create the Crowdin configuration",id:"create-the-crowdin-configuration",level:3},{value:"Access token",id:"access-token",level:4},{value:"Other configuration fields",id:"other-configuration-fields",level:4},{value:"Install the Crowdin CLI",id:"install-the-crowdin-cli",level:3},{value:"Upload the sources",id:"upload-the-sources",level:3},{value:"Translate the sources",id:"translate-the-sources",level:3},{value:"Download the translations",id:"download-the-translations",level:3},{value:"Automate with CI",id:"automate-with-ci",level:3},{value:"Advanced Crowdin topics",id:"advanced-crowdin-topics",level:2},{value:"MDX",id:"mdx",level:3},{value:"MDX problems",id:"mdx-problems",level:4},{value:"MDX solutions",id:"mdx-solutions",level:4},{value:"Docs versioning",id:"docs-versioning",level:3},{value:"Multi-instance plugins",id:"multi-instance-plugins",level:3},{value:"Maintaining your site",id:"maintaining-your-site",level:3},{value:"VCS (Git) integrations",id:"vcs-git-integrations",level:3},{value:"In-Context localization",id:"in-context-localization",level:3},{value:"Localize edit URLs",id:"localize-edit-urls",level:3},{value:"Example configuration",id:"example-configuration",level:3},{value:"Machine Translation (MT) issue: links/image handling",id:"machine-translation-mt-issue-linksimage-handling",level:3}];function p(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"i18n---using-crowdin",children:"i18n - Using Crowdin"})}),"\n",(0,s.jsxs)(n.p,{children:["The i18n system of Docusaurus is ",(0,s.jsx)(n.strong,{children:"decoupled from any translation software"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["You can integrate Docusaurus with the ",(0,s.jsx)(n.strong,{children:"tools and SaaS of your choice"}),", as long as you put the ",(0,s.jsx)(n.strong,{children:"translation files at the correct location"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["We document the usage of ",(0,s.jsx)(n.a,{href:"https://crowdin.com/",children:"Crowdin"}),", as ",(0,s.jsx)(n.strong,{children:"one"})," possible ",(0,s.jsx)(n.strong,{children:"integration example"}),"."]}),"\n",(0,s.jsxs)(n.admonition,{type:"warning",children:[(0,s.jsxs)(n.p,{children:["This is ",(0,s.jsx)(n.strong,{children:"not an endorsement of Crowdin"})," as the unique choice to translate a Docusaurus site, but it is successfully used by Facebook to translate documentation projects such as ",(0,s.jsx)(n.a,{href:"https://jestjs.io/",children:"Jest"}),", ",(0,s.jsx)(n.a,{href:"https://docusaurus.io/",children:"Docusaurus"}),", and ",(0,s.jsx)(n.a,{href:"https://reasonml.github.io/",children:"ReasonML"}),"."]}),(0,s.jsxs)(n.p,{children:["Refer to the ",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"https://support.crowdin.com/",children:"Crowdin documentation"})})," and ",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"mailto:support@crowdin.com",children:"Crowdin support"})})," for help."]})]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["Use this ",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/4052",children:"community-driven GitHub discussion"})})," to discuss anything related to Docusaurus + Crowdin."]})}),"\n",(0,s.jsx)(n.h2,{id:"crowdin-overview",children:"Crowdin overview"}),"\n",(0,s.jsxs)(n.p,{children:["Crowdin is a translation SaaS, offering a ",(0,s.jsx)(n.a,{href:"https://crowdin.com/page/open-source-project-setup-request",children:"free plan for open-source projects"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"We recommend the following translation workflow:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Upload sources"})," to Crowdin (untranslated files)"]}),"\n",(0,s.jsxs)(n.li,{children:["Use Crowdin to ",(0,s.jsx)(n.strong,{children:"translate the content"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Download translations"})," from Crowdin (localized translation files)"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Crowdin provides a ",(0,s.jsx)(n.a,{href:"https://support.crowdin.com/cli-tool/",children:"CLI"})," to ",(0,s.jsx)(n.strong,{children:"upload sources"})," and ",(0,s.jsx)(n.strong,{children:"download translations"}),", allowing you to automate the translation process."]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsxs)(n.a,{href:"https://support.crowdin.com/configuration-file/",children:[(0,s.jsx)(n.code,{children:"crowdin.yml"})," configuration file"]})," is convenient for Docusaurus, and permits to ",(0,s.jsx)(n.strong,{children:"download the localized translation files at the expected location"})," (in ",(0,s.jsx)(n.code,{children:"i18n/[locale]/.."}),")."]}),"\n",(0,s.jsxs)(n.p,{children:["Read the ",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"https://support.crowdin.com/",children:"official documentation"})})," to know more about advanced features and different translation workflows."]}),"\n",(0,s.jsx)(n.h2,{id:"crowdin-tutorial",children:"Crowdin tutorial"}),"\n",(0,s.jsxs)(n.p,{children:["This is a walk-through of using Crowdin to translate a newly initialized English Docusaurus website into French, and assume you already followed the ",(0,s.jsx)(n.a,{href:"/docs/i18n/tutorial",children:"i18n tutorial"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["The end result can be seen at ",(0,s.jsx)(n.a,{href:"https://docusaurus-crowdin-example.netlify.app/",children:"docusaurus-crowdin-example.netlify.app"})," (",(0,s.jsx)(n.a,{href:"https://github.com/slorber/docusaurus-crowdin-example",children:"repository"}),")."]}),"\n",(0,s.jsx)(n.h3,{id:"prepare-the-docusaurus-site",children:"Prepare the Docusaurus site"}),"\n",(0,s.jsx)(n.p,{children:"Initialize a new Docusaurus site:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npx create-docusaurus@latest website classic\n"})}),"\n",(0,s.jsx)(n.p,{children:"Add the site configuration for the French language:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n i18n: {\n defaultLocale: 'en',\n locales: ['en', 'fr'],\n },\n themeConfig: {\n navbar: {\n items: [\n // ...\n {\n type: 'localeDropdown',\n position: 'left',\n },\n // ...\n ],\n },\n },\n // ...\n};\n"})}),"\n",(0,s.jsx)(n.p,{children:"Translate the homepage:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",metastring:'title="src/pages/index.js"',children:"import React from 'react';\nimport Translate from '@docusaurus/Translate';\nimport Layout from '@theme/Layout';\n\nexport default function Home() {\n return (\n <Layout>\n <h1 style={{margin: 20}}>\n <Translate description=\"The homepage main heading\">\n Welcome to my Docusaurus translated site!\n </Translate>\n </h1>\n </Layout>\n );\n}\n"})}),"\n",(0,s.jsx)(n.h3,{id:"create-a-crowdin-project",children:"Create a Crowdin project"}),"\n",(0,s.jsxs)(n.p,{children:["Sign up on ",(0,s.jsx)(n.a,{href:"https://crowdin.com/",children:"Crowdin"}),", and create a project."]}),"\n",(0,s.jsx)(n.p,{children:"Use English as the source language, and French as the target language."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Create a Crowdin project with english as source language, and french as target language",src:t(96637).A+"",width:"1868",height:"1576"})}),"\n",(0,s.jsx)(n.p,{children:"Your project is created, but it is empty for now. We will upload the files to translate in the next steps."}),"\n",(0,s.jsx)(n.h3,{id:"create-the-crowdin-configuration",children:"Create the Crowdin configuration"}),"\n",(0,s.jsxs)(n.p,{children:["This configuration (",(0,s.jsx)(n.a,{href:"https://support.crowdin.com/configuration-file/",children:"doc"}),") provides a mapping for the Crowdin CLI to understand:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Where to find the source files to upload (JSON and Markdown)"}),"\n",(0,s.jsxs)(n.li,{children:["Where to download the files after translation (in ",(0,s.jsx)(n.code,{children:"i18n/[locale]"}),")"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Create ",(0,s.jsx)(n.code,{children:"crowdin.yml"})," in ",(0,s.jsx)(n.code,{children:"website"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yml",metastring:'title="crowdin.yml"',children:"project_id: '123456'\napi_token_env: CROWDIN_PERSONAL_TOKEN\npreserve_hierarchy: true\nfiles:\n # JSON translation files\n - source: /i18n/en/**/*\n translation: /i18n/%two_letters_code%/**/%original_file_name%\n # Docs Markdown files\n - source: /docs/**/*\n translation: /i18n/%two_letters_code%/docusaurus-plugin-content-docs/current/**/%original_file_name%\n # Blog Markdown files\n - source: /blog/**/*\n translation: /i18n/%two_letters_code%/docusaurus-plugin-content-blog/**/%original_file_name%\n"})}),"\n",(0,s.jsx)(n.p,{children:"Crowdin has its own syntax for declaring source/translation paths:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"**/*"}),": everything in a subfolder"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"%two_letters_code%"}),": the 2-letters variant of Crowdin target languages (",(0,s.jsx)(n.code,{children:"fr"})," in our case)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"**/%original_file_name%"}),": the translations will preserve the original folder/file hierarchy"]}),"\n"]}),"\n",(0,s.jsxs)(n.admonition,{type:"info",children:[(0,s.jsx)(n.p,{children:"The Crowdin CLI warnings are not always easy to understand."}),(0,s.jsx)(n.p,{children:"We advise to:"}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"change one thing at a time"}),"\n",(0,s.jsx)(n.li,{children:"re-upload sources after any configuration change"}),"\n",(0,s.jsxs)(n.li,{children:["use paths starting with ",(0,s.jsx)(n.code,{children:"/"})," (",(0,s.jsx)(n.code,{children:"./"})," does not work)"]}),"\n",(0,s.jsxs)(n.li,{children:["avoid fancy globbing patterns like ",(0,s.jsx)(n.code,{children:"/docs/**/*.(md|mdx)"})," (does not work)"]}),"\n"]})]}),"\n",(0,s.jsx)(n.h4,{id:"access-token",children:"Access token"}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"api_token_env"})," attribute defines the ",(0,s.jsx)(n.strong,{children:"env variable name"})," read by the Crowdin CLI."]}),"\n",(0,s.jsxs)(n.p,{children:["You can obtain a ",(0,s.jsx)(n.code,{children:"Personal Access Token"})," on ",(0,s.jsx)(n.a,{href:"https://crowdin.com/settings#api-key",children:"your personal profile page"}),"."]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["You can keep the default value ",(0,s.jsx)(n.code,{children:"CROWDIN_PERSONAL_TOKEN"}),", and set this environment variable and on your computer and on the CI server to the generated access token."]})}),"\n",(0,s.jsxs)(n.admonition,{type:"warning",children:[(0,s.jsxs)(n.p,{children:["A Personal Access Tokens grant ",(0,s.jsx)(n.strong,{children:"read-write access to all your Crowdin projects"}),"."]}),(0,s.jsxs)(n.p,{children:["You should ",(0,s.jsx)(n.strong,{children:"not commit"})," it, and it may be a good idea to create a dedicated ",(0,s.jsx)(n.strong,{children:"Crowdin profile for your company"})," instead of using a personal account."]})]}),"\n",(0,s.jsx)(n.h4,{id:"other-configuration-fields",children:"Other configuration fields"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"project_id"}),": can be hardcoded, and is found on ",(0,s.jsx)(n.code,{children:"https://crowdin.com/project/<MY_PROJECT_NAME>/settings#api"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"preserve_hierarchy"}),": preserve the folder's hierarchy of your docs on Crowdin UI instead of flattening everything"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"install-the-crowdin-cli",children:"Install the Crowdin CLI"}),"\n",(0,s.jsxs)(n.p,{children:["This tutorial uses the CLI version ",(0,s.jsx)(n.code,{children:"3.5.2"}),", but we expect ",(0,s.jsx)(n.code,{children:"3.x"})," releases to keep working."]}),"\n",(0,s.jsx)(n.p,{children:"Install the Crowdin CLI as an npm package to your Docusaurus site:"}),"\n",(0,s.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,s.jsx)(a.A,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm install @crowdin/cli@3\n"})})}),(0,s.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn add @crowdin/cli@3\n"})})}),(0,s.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm add @crowdin/cli@3\n"})})})]}),"\n",(0,s.jsxs)(n.p,{children:["Add a ",(0,s.jsx)(n.code,{children:"crowdin"})," script:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",metastring:'title="package.json"',children:'{\n "scripts": {\n // ...\n "write-translations": "docusaurus write-translations",\n "crowdin": "crowdin"\n }\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Test that you can run the Crowdin CLI:"}),"\n",(0,s.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,s.jsx)(a.A,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run crowdin -- --version\n"})})}),(0,s.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn crowdin --version\n"})})}),(0,s.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm run crowdin --version\n"})})})]}),"\n",(0,s.jsxs)(n.p,{children:["Set the ",(0,s.jsx)(n.code,{children:"CROWDIN_PERSONAL_TOKEN"})," env variable on your computer, to allow the CLI to authenticate with the Crowdin API."]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["Temporarily, you can hardcode your personal token in ",(0,s.jsx)(n.code,{children:"crowdin.yml"})," with ",(0,s.jsx)(n.code,{children:"api_token: 'MY-TOKEN'"}),"."]})}),"\n",(0,s.jsx)(n.h3,{id:"upload-the-sources",children:"Upload the sources"}),"\n",(0,s.jsxs)(n.p,{children:["Generate the JSON translation files for the default language in ",(0,s.jsx)(n.code,{children:"website/i18n/en"}),":"]}),"\n",(0,s.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,s.jsx)(a.A,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run write-translations\n"})})}),(0,s.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn write-translations\n"})})}),(0,s.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm run write-translations\n"})})})]}),"\n",(0,s.jsx)(n.p,{children:"Upload all the JSON and Markdown translation files:"}),"\n",(0,s.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,s.jsx)(a.A,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run crowdin upload\n"})})}),(0,s.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn crowdin upload\n"})})}),(0,s.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm run crowdin upload\n"})})})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Crowdin CLI uploading Docusaurus source files",src:t(38770).A+"",width:"1156",height:"682"})}),"\n",(0,s.jsxs)(n.p,{children:["Your source files are now visible on the Crowdin interface: ",(0,s.jsx)(n.code,{children:"https://crowdin.com/project/<MY_PROJECT_NAME>/settings#files"})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Crowdin UI showing Docusaurus source files",src:t(84656).A+"",width:"2462",height:"1048"})}),"\n",(0,s.jsx)(n.h3,{id:"translate-the-sources",children:"Translate the sources"}),"\n",(0,s.jsxs)(n.p,{children:["On ",(0,s.jsx)(n.code,{children:"https://crowdin.com/project/<MY_PROJECT_NAME>"}),", click on the French target language."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Crowdin UI showing French translation files",src:t(91324).A+"",width:"2430",height:"1736"})}),"\n",(0,s.jsx)(n.p,{children:"Translate some Markdown files."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Crowdin UI to translate a Markdown file",src:t(19018).A+"",width:"3044",height:"1586"})}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsxs)(n.p,{children:["Use ",(0,s.jsx)(n.code,{children:"Hide String"})," to make sure translators ",(0,s.jsx)(n.strong,{children:"don't translate things that should not be"}),":"]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Front matter: ",(0,s.jsx)(n.code,{children:"id"}),", ",(0,s.jsx)(n.code,{children:"slug"}),", ",(0,s.jsx)(n.code,{children:"tags"})," ..."]}),"\n",(0,s.jsxs)(n.li,{children:["Admonitions: ",(0,s.jsx)(n.code,{children:":::"}),", ",(0,s.jsx)(n.code,{children:":::note"}),", ",(0,s.jsx)(n.code,{children:":::tip"})," ..."]}),"\n"]}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Crowdin UI hide string",src:t(69963).A+"",width:"1518",height:"698"})})]}),"\n",(0,s.jsx)(n.p,{children:"Translate some JSON files."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Crowdin UI to translate a JSON file",src:t(53092).A+"",width:"2868",height:"1490"})}),"\n",(0,s.jsx)(n.admonition,{type:"info",children:(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"description"})," attribute of JSON translation files is visible on Crowdin to help translate the strings."]})}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"https://support.crowdin.com/pre-translation-via-machine/",children:"Pre-translate"})})," your site, and ",(0,s.jsx)(n.strong,{children:"fix pre-translation mistakes manually"})," (enable the Global Translation Memory in settings first)."]}),(0,s.jsxs)(n.p,{children:["Use the ",(0,s.jsx)(n.code,{children:"Hide String"})," feature first, as Crowdin is pre-translating things too optimistically."]})]}),"\n",(0,s.jsx)(n.h3,{id:"download-the-translations",children:"Download the translations"}),"\n",(0,s.jsx)(n.p,{children:"Use the Crowdin CLI to download the translated JSON and Markdown files."}),"\n",(0,s.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,s.jsx)(a.A,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run crowdin download\n"})})}),(0,s.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn crowdin download\n"})})}),(0,s.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm run crowdin download\n"})})})]}),"\n",(0,s.jsxs)(n.p,{children:["The translated content should be downloaded in ",(0,s.jsx)(n.code,{children:"i18n/fr"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Start your site on the French locale:"}),"\n",(0,s.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,s.jsx)(a.A,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run start -- --locale fr\n"})})}),(0,s.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn run start --locale fr\n"})})}),(0,s.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm run start --locale fr\n"})})})]}),"\n",(0,s.jsxs)(n.p,{children:["Make sure that your website is now translated in French at ",(0,s.jsx)(n.a,{href:"http://localhost:3000/fr/",children:(0,s.jsx)(n.code,{children:"http://localhost:3000/fr/"})}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"automate-with-ci",children:"Automate with CI"}),"\n",(0,s.jsxs)(n.p,{children:["We will configure the CI to ",(0,s.jsx)(n.strong,{children:"download the Crowdin translations at build time"})," and keep them outside of Git."]}),"\n",(0,s.jsxs)(n.p,{children:["Add ",(0,s.jsx)(n.code,{children:"website/i18n"})," to ",(0,s.jsx)(n.code,{children:".gitignore"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Set the ",(0,s.jsx)(n.code,{children:"CROWDIN_PERSONAL_TOKEN"})," env variable on your CI."]}),"\n",(0,s.jsxs)(n.p,{children:["Create an npm script to ",(0,s.jsx)(n.code,{children:"sync"})," Crowdin (extract sources, upload sources, download translations):"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",metastring:'title="package.json"',children:'{\n "scripts": {\n "crowdin:sync": "docusaurus write-translations && crowdin upload && crowdin download"\n }\n}\n'})}),"\n",(0,s.jsxs)(n.p,{children:["Call the ",(0,s.jsx)(n.code,{children:"npm run crowdin:sync"})," script in your CI, just before building the Docusaurus site."]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["Keep your deploy-previews fast: don't download translations, and use ",(0,s.jsx)(n.code,{children:"npm run build -- --locale en"})," for feature branches."]})}),"\n",(0,s.jsx)(n.admonition,{type:"warning",children:(0,s.jsx)(n.p,{children:"Crowdin does not support well multiple concurrent uploads/downloads: it is preferable to only include translations to your production deployment, and keep deploy previews untranslated."})}),"\n",(0,s.jsx)(n.h2,{id:"advanced-crowdin-topics",children:"Advanced Crowdin topics"}),"\n",(0,s.jsx)(n.h3,{id:"mdx",children:"MDX"}),"\n",(0,s.jsx)(n.admonition,{type:"warning",children:(0,s.jsx)(n.p,{children:"Pay special attention to the JSX fragments in MDX documents!"})}),"\n",(0,s.jsxs)(n.p,{children:["Crowdin ",(0,s.jsx)(n.strong,{children:"does not support officially MDX"}),", but they added ",(0,s.jsxs)(n.strong,{children:["support for the ",(0,s.jsx)(n.code,{children:".mdx"})," extension"]}),", and interpret such files as Markdown (instead of plain text)."]}),"\n",(0,s.jsx)(n.h4,{id:"mdx-problems",children:"MDX problems"}),"\n",(0,s.jsx)(n.p,{children:"Crowdin thinks that the JSX syntax is embedded HTML and can mess up with the JSX markup when you download the translations, leading to a site that fails to build due to invalid JSX."}),"\n",(0,s.jsxs)(n.p,{children:["Simple JSX fragments using simple string props like ",(0,s.jsx)(n.code,{children:'<Username name="Sebastien"/>'})," will work fine; more complex JSX fragments using object/array props like ",(0,s.jsx)(n.code,{children:'<User person={{name: "Sebastien"}}/>'})," are more likely to fail due to a syntax that does not look like HTML."]}),"\n",(0,s.jsx)(n.h4,{id:"mdx-solutions",children:"MDX solutions"}),"\n",(0,s.jsxs)(n.p,{children:["We recommend extracting the complex embedded JSX code as separate standalone components. We also added an ",(0,s.jsx)(n.code,{children:"mdx-code-block"})," escape hatch syntax:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:'# How to deploy Docusaurus\n\nTo deploy Docusaurus, run the following command:\n\n````mdx-code-block\xa0\n\nimport Tabs from \'@theme/Tabs\';\n\nimport TabItem from \'@theme/TabItem\';\n\n<Tabs>\n <TabItem value="bash" label="Bash">\n\n ```bash\n GIT_USER=<GITHUB_USERNAME> yarn deploy\n ```\n\n </TabItem>\n <TabItem value="windows" label="Windows">\n\n ```batch\n cmd /C "set "GIT_USER=<GITHUB_USERNAME>" && yarn deploy"\n ```\n\n </TabItem>\n</Tabs>\n````\n'})}),"\n",(0,s.jsx)(n.p,{children:"This will:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"be interpreted by Crowdin as code blocks (and not mess-up with the markup on download)"}),"\n",(0,s.jsx)(n.li,{children:"be interpreted by Docusaurus as regular JSX (as if it was not wrapped by any code block)"}),"\n",(0,s.jsx)(n.li,{children:"unfortunately opt-out of MDX tooling (IDE syntax highlighting, Prettier...)"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"docs-versioning",children:"Docs versioning"}),"\n",(0,s.jsxs)(n.p,{children:["Configure translation files for the ",(0,s.jsx)(n.code,{children:"website/versioned_docs"})," folder."]}),"\n",(0,s.jsxs)(n.p,{children:["When creating a new version, the source strings will generally be quite similar to the current version (",(0,s.jsx)(n.code,{children:"website/docs"}),"), and you don't want to translate the new version docs again and again."]}),"\n",(0,s.jsxs)(n.p,{children:["Crowdin provides a ",(0,s.jsx)(n.code,{children:"Duplicate Strings"})," setting."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Crowdin Duplicate Strings option setting",src:t(75735).A+"",width:"1422",height:"368"})}),"\n",(0,s.jsxs)(n.p,{children:["We recommend using ",(0,s.jsx)(n.code,{children:"Hide"}),", but the ideal setting depends on how much your versions are different."]}),"\n",(0,s.jsx)(n.admonition,{type:"warning",children:(0,s.jsxs)(n.p,{children:["Not using ",(0,s.jsx)(n.code,{children:"Hide"})," leads to a much larger amount of ",(0,s.jsx)(n.code,{children:"source strings"})," in quotas, and will affect the pricing."]})}),"\n",(0,s.jsx)(n.h3,{id:"multi-instance-plugins",children:"Multi-instance plugins"}),"\n",(0,s.jsx)(n.p,{children:"You need to configure translation files for each plugin instance."}),"\n",(0,s.jsxs)(n.p,{children:["If you have a docs plugin instance with ",(0,s.jsx)(n.code,{children:"id=ios"}),", you will need to configure those source files as well"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"website/ios"})}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"website/ios_versioned_docs"})," (if versioned)"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"maintaining-your-site",children:"Maintaining your site"}),"\n",(0,s.jsxs)(n.p,{children:["Sometimes, you will ",(0,s.jsx)(n.strong,{children:"remove or rename a source file"})," on Git, and Crowdin will display CLI warnings:"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Crowdin CLI: download translation warning",src:t(35047).A+"",width:"2268",height:"886"})}),"\n",(0,s.jsxs)(n.p,{children:["When your sources are refactored, you should use the Crowdin UI to ",(0,s.jsx)(n.strong,{children:"update your Crowdin files manually"}),":"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Crowdin UI: renaming a file",src:t(35701).A+"",width:"2472",height:"1186"})}),"\n",(0,s.jsx)(n.h3,{id:"vcs-git-integrations",children:"VCS (Git) integrations"}),"\n",(0,s.jsxs)(n.p,{children:["Crowdin has multiple VCS integrations for ",(0,s.jsx)(n.a,{href:"https://support.crowdin.com/github-integration/",children:"GitHub"}),", GitLab, Bitbucket."]}),"\n",(0,s.jsx)(n.admonition,{title:"TL;DR",type:"warning",children:(0,s.jsx)(n.p,{children:"We recommend avoiding them."})}),"\n",(0,s.jsxs)(n.p,{children:["It could have been helpful to be able to edit the translations in both Git and Crowdin, and have a ",(0,s.jsx)(n.strong,{children:"bi-directional sync"})," between the 2 systems."]}),"\n",(0,s.jsxs)(n.p,{children:["In practice, ",(0,s.jsx)(n.strong,{children:"it didn't work very reliably"})," for a few reasons:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"The Crowdin -> Git sync works fine (with a pull request)"}),"\n",(0,s.jsx)(n.li,{children:"The Git -> Crowdin sync is manual (you have to press a button)"}),"\n",(0,s.jsx)(n.li,{children:"The heuristics used by Crowdin to match existing Markdown translations to existing Markdown sources are not 100% reliable, and you have to verify the result on Crowdin UI after any sync from Git"}),"\n",(0,s.jsx)(n.li,{children:"2 users concurrently editing on Git and Crowdin can lead to a translation loss"}),"\n",(0,s.jsxs)(n.li,{children:["It requires the ",(0,s.jsx)(n.code,{children:"crowdin.yml"})," file to be at the root of the repository"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"in-context-localization",children:"In-Context localization"}),"\n",(0,s.jsxs)(n.p,{children:["Crowdin has an ",(0,s.jsx)(n.a,{href:"https://support.crowdin.com/in-context-localization/",children:"In-Context localization"})," feature."]}),"\n",(0,s.jsxs)(n.admonition,{type:"warning",children:[(0,s.jsx)(n.p,{children:"Unfortunately, it does not work yet for technical reasons, but we have good hope it can be solved."}),(0,s.jsxs)(n.p,{children:["Crowdin replaces Markdown strings with technical IDs such as ",(0,s.jsx)(n.code,{children:"crowdin:id12345"}),", but it does so too aggressively, including hidden strings, and messes up with front matter, admonitions, JSX..."]})]}),"\n",(0,s.jsx)(n.h3,{id:"localize-edit-urls",children:"Localize edit URLs"}),"\n",(0,s.jsxs)(n.p,{children:["When the user is browsing a page at ",(0,s.jsx)(n.code,{children:"/fr/doc1"}),", the edit button will link by default to the unlocalized doc at ",(0,s.jsx)(n.code,{children:"website/docs/doc1.md"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["You may prefer the edit button to link to the Crowdin interface instead by using the ",(0,s.jsx)(n.code,{children:"editUrl"})," function to customize the edit URLs on a per-locale basis."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"const DefaultLocale = 'en';\n\nexport default {\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n // highlight-start\n editUrl: ({locale, versionDocsDirPath, docPath}) => {\n // Link to Crowdin for French docs\n if (locale !== DefaultLocale) {\n return `https://crowdin.com/project/docusaurus-v2/${locale}`;\n }\n // Link to GitHub for English docs\n return `https://github.com/facebook/docusaurus/edit/main/website/${versionDocsDirPath}/${docPath}`;\n },\n // highlight-end\n },\n blog: {\n // highlight-start\n editUrl: ({locale, blogDirPath, blogPath}) => {\n if (locale !== DefaultLocale) {\n return `https://crowdin.com/project/docusaurus-v2/${locale}`;\n }\n return `https://github.com/facebook/docusaurus/edit/main/website/${blogDirPath}/${blogPath}`;\n },\n // highlight-start\n },\n },\n ],\n ],\n};\n"})}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["It is currently ",(0,s.jsx)(n.strong,{children:"not possible to link to a specific file"})," in Crowdin."]})}),"\n",(0,s.jsx)(n.h3,{id:"example-configuration",children:"Example configuration"}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.strong,{children:"Docusaurus configuration file"})," is a good example of using versioning and multi-instance:"]}),"\n","\n",(0,s.jsx)(l.A,{className:"language-yaml",title:"crowdin.yml",children:'#\n# Your Crowdin credentials\n#\nproject_id: \'428890\'\napi_token_env: CROWDIN_PERSONAL_TOKEN\n# base_path: \'.\'\n# base_url: https://api.crowdin.com\n\n#\n# Choose file structure in Crowdin\n# e.g. true or false\n#\npreserve_hierarchy: true\n\n# We generally want to use the "two-letters-code" of a locale (ie the language)\n# But not for all locales!\n# "pt-BR" may be better to remain as "pt-BR" instead of being transformed to "pt"\n# Note: &/* is Yaml anchor syntax: https://support.atlassian.com/bitbucket-cloud/docs/yaml-anchors/\nlanguages_mapping: &languages_mapping\n two_letters_code:\n pt-BR: pt-BR\n\n#\n# Files configuration\n#\nfiles:\n - source: /website/i18n/en/**/*\n translation: /website/i18n/%two_letters_code%/**/%original_file_name%\n languages_mapping: *languages_mapping\n - source: /website/docs/**/*\n translation: /website/i18n/%two_letters_code%/docusaurus-plugin-content-docs/current/**/%original_file_name%\n languages_mapping: *languages_mapping\n - source: /website/community/**/*\n translation: /website/i18n/%two_letters_code%/docusaurus-plugin-content-docs-community/current/**/%original_file_name%\n languages_mapping: *languages_mapping\n - source: /website/versioned_docs/**/*\n translation: /website/i18n/%two_letters_code%/docusaurus-plugin-content-docs/**/%original_file_name%\n languages_mapping: *languages_mapping\n - source: /website/blog/**/*\n translation: /website/i18n/%two_letters_code%/docusaurus-plugin-content-blog/**/%original_file_name%\n languages_mapping: *languages_mapping\n - source: /website/src/pages/**/*\n translation: /website/i18n/%two_letters_code%/docusaurus-plugin-content-pages/**/%original_file_name%\n ignore: [/**/*.js, /**/*.jsx, /**/*.ts, /**/*.tsx, /**/*.css]\n languages_mapping: *languages_mapping\n#\n# Source files filter\n# e.g. "/resources/en/*.json"\n#\n#"source" : "/website/docs/**/*.md",\n#\n# Where translations will be placed\n# e.g. "/resources/docs/%two_letters_code%/%original_file_name%"\n#\n#"translation" : "/website/i18n/%language%/docs/current/%original_file_name%",\n#\n# Files or directories for ignore\n# e.g. ["/**/?.txt", "/**/[0-9].txt", "/**/*\\?*.txt"]\n#\n#"ignore" : [],\n#\n# The dest allows you to specify a file name in Crowdin\n# e.g. "/messages.json"\n#\n#"dest" : "",\n#\n# File type\n# e.g. "json"\n#\n#"type" : "",\n#\n# The parameter "update_option" is optional. If it is not set, after the files update the translations for changed strings will be removed. Use to fix typos and for minor changes in the source strings\n# e.g. "update_as_unapproved" or "update_without_changes"\n#\n#"update_option" : "",\n#\n# Start block (for XML only)\n#\n#\n# Defines whether to translate tags attributes.\n# e.g. 0 or 1 (Default is 1)\n#\n# "translate_attributes" : 1,\n#\n# Defines whether to translate texts placed inside the tags.\n# e.g. 0 or 1 (Default is 1)\n#\n# "translate_content" : 1,\n#\n# This is an array of strings, where each item is the XPaths to DOM element that should be imported\n# e.g. ["/content/text", "/content/text[@value]"]\n#\n# "translatable_elements" : [],\n#\n# Defines whether to split long texts into smaller text segments\n# e.g. 0 or 1 (Default is 1)\n#\n# "content_segmentation" : 1,\n#\n# End block (for XML only)\n#\n#\n# Start .properties block\n#\n#\n# Defines whether single quote should be escaped by another single quote or backslash in exported translations\n# e.g. 0 or 1 or 2 or 3 (Default is 3)\n# 0 - do not escape single quote;\n# 1 - escape single quote by another single quote;\n# 2 - escape single quote by backslash;\n# 3 - escape single quote by another single quote only in strings containing variables ( {0} ).\n#\n# "escape_quotes" : 3,\n#\n# Defines whether any special characters (=, :, ! and #) should be escaped by backslash in exported translations.\n# e.g. 0 or 1 (Default is 0)\n# 0 - do not escape special characters\n# 1 - escape special characters by a backslash\n#\n# "escape_special_characters": 0\n#\n#\n# End .properties block\n#\n#\n# Often software projects have custom names for the directories where translations are placed. crowdin-cli allows you to map your own languages to be understandable by Crowdin.\n#\n#"languages_mapping" : {\n# "two_letters_code" : {\n# "crowdin_language_code" : "local_name"\n# }\n#},\n#\n# Does the first line contain header?\n# e.g. true or false\n#\n#"first_line_contains_header" : true,\n#\n# for spreadsheets\n# e.g. "identifier,source_phrase,context,uk,ru,fr"\n#\n# "scheme" : "",\n'.split("\n").map(e=>!e.startsWith("#")&&e).filter(Boolean).join("\n")}),"\n",(0,s.jsx)(n.h3,{id:"machine-translation-mt-issue-linksimage-handling",children:"Machine Translation (MT) issue: links/image handling"}),"\n",(0,s.jsxs)(n.p,{children:["Crowdin recently rolled out some major changes to the markdown file format and now the links are treated differently than they were before. Before they were considered as tags, but now they appear as plain text. Because of these changes the plain text links are passed to the MT engine which attempts to translate the target, thus breaking the translation (for instance: this string ",(0,s.jsx)(n.code,{children:"Allez voir [ma merveilleuse page](/ma-merveilleuse-page)"})," is translated ",(0,s.jsx)(n.code,{children:"Check out [my wonderful page](/my-wonderful-page)"}),", and this breaks docusaurus i18n workflow as the page name should not be translated)."]}),"\n",(0,s.jsx)(n.p,{children:"As of 2023 Dec.7, they are not planning to change the logic of how links are treated, so you should have this in mind if you plan to use Crowdin with MT."})]})}function g(e={}){let{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}}}]); \ No newline at end of file diff --git a/assets/js/3c03c7ff.e219fbf0.js b/assets/js/3c03c7ff.e219fbf0.js deleted file mode 100644 index 540ed78ec6..0000000000 --- a/assets/js/3c03c7ff.e219fbf0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[78644],{15995:(e,n,t)=>{t.d(n,{A:()=>o});var r=t(62540);t(63696);var s=t(11750);function o({children:e,hidden:n,className:t}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>w});var r=t(62540),s=t(63696),o=t(11750),i=t(7846),a=t(49519),l=t(96439),c=t(19739),d=t(66904),u=t(79244);function h(e){var n,t;return null!==(t=null===(n=s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}var g=t(10709);function f(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function j(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function b({className:e,block:n,selectedValue:t,selectValue:s,tabValues:a}){let l=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.a_)(),d=e=>{let n=e.currentTarget,r=a[l.indexOf(n)].value;r!==t&&(c(n),s(r))},u=e=>{var n,t;let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let t=l.indexOf(e.currentTarget)+1;r=null!==(n=l[t])&&void 0!==n?n:l[0];break}case"ArrowLeft":{let n=l.indexOf(e.currentTarget)-1;r=null!==(t=l[n])&&void 0!==t?t:l[l.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.A)("tabs",{"tabs--block":n},e),children:a.map(({value:e,label:n,attributes:s})=>(0,r.jsx)("li",j(f({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>l.push(e),onKeyDown:u,onClick:d},s),{className:(0,o.A)("tabs__item","tabItem_AQgk",null==s?void 0:s.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function m({lazy:e,children:n,selectedValue:t}){let i=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=i.find(e=>e.props.value===t);return e?(0,s.cloneElement)(e,{className:(0,o.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:i.map((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function x(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,o=function(e){let{values:n,children:t}=e;return(0,s.useMemo)(()=>{let e=null!=n?n:h(t).map(({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r}));return!function(e){let n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[i,g]=(0,s.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:o})),[f,j]=function({queryString:e=!1,groupId:n}){let t=(0,a.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,c.aZ)(r),(0,s.useCallback)(e=>{var n,s;if(!r)return;let o=new URLSearchParams(t.location.search);o.set(r,e),t.replace((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},t.location),s=s={search:o.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(s)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(s)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(s,e))}),n))},[r,t])]}({queryString:t,groupId:r}),[b,m]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[t,r]=(0,u.Dv)(n);return[t,(0,s.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),x=(()=>{let e=null!=f?f:b;return p({value:e,tabValues:o})?e:null})();return(0,l.A)(()=>{x&&g(x)},[x]),{selectedValue:i,selectValue:(0,s.useCallback)(e=>{if(!p({value:e,tabValues:o}))throw Error(`Can't select invalid tab value=${e}`);g(e),j(e),m(e)},[j,m,o]),tabValues:o}}(e);return(0,r.jsxs)("div",{className:(0,o.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(b,f({},n,e)),(0,r.jsx)(m,f({},n,e))]})}function w(e){let n=(0,g.A)();return(0,r.jsx)(x,j(f({},e),{children:h(e.children)}),String(n))}},40576:(e,n,t)=>{t.d(n,{A:()=>o});var r=t(62540);t(63696);var s=t(10709);function o({children:e,fallback:n}){return(0,s.A)()?(0,r.jsx)(r.Fragment,{children:null==e?void 0:e()}):null!=n?n:null}},55887:(e,n,t)=>{t.d(n,{A:()=>ea});var r,s,o,i={};t.r(i),t.d(i,{ButtonExample:()=>A});var a=t(62540),l=t(63696),c=t(11750),d=t(10709),u=t(55152),h=t(81912),p=t(99468),g=t(40576),f=t(1495),j=t(66659),b=t(25436);function m(){let{prism:e}=(0,b.p)(),{colorMode:n}=(0,j.G)(),t=e.theme,r=e.darkTheme||t;return"dark"===n?r:t}var x=t(43758);function w(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function y({children:e}){return(0,a.jsx)("div",{className:(0,c.A)("playgroundHeader_Tvsk"),children:e})}function v(){return(0,a.jsx)("div",{children:"Loading..."})}function O(){return(0,a.jsx)(g.A,{fallback:(0,a.jsx)(v,{}),children:()=>(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.A,{fallback:e=>(0,a.jsx)(f.MN,w({},e)),children:(0,a.jsx)(u.pA,{})}),(0,a.jsx)(u.p1,{})]})})}function k(){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(y,{children:(0,a.jsx)(h.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,a.jsx)("div",{className:"playgroundPreview_mApW",children:(0,a.jsx)(O,{})})]})}function C(){let e=(0,d.A)();return(0,a.jsx)(u.w,{className:"playgroundEditor_TySg"},String(e))}function P(){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(y,{children:(0,a.jsx)(h.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,a.jsx)(C,{})]})}let _=e=>`${e};`;function S(e){var n,t,r,s,{children:o,transformCode:i}=e,l=function(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,["children","transformCode"]);let{siteConfig:{themeConfig:c}}=(0,p.A)(),{liveCodeBlock:{playgroundPosition:d}}=c,h=m(),g=null!==(s=null===(r=l.metastring)||void 0===r?void 0:r.includes("noInline"))&&void 0!==s&&s;return(0,a.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,a.jsx)(u.Q,(n=w({code:null==o?void 0:o.replace(/\n$/,""),noInline:g,transformCode:null!=i?i:_,theme:h},l),t=t={children:"top"===d?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(k,{}),(0,a.jsx)(P,{})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(P,{}),(0,a.jsx)(k,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))})}function D(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function A(e){var n,t;return(0,a.jsx)("button",(n=D({type:"button"},e),t=t={style:D({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let N=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({React:l},l,i);var T=t(12653),E=t(19934),I=t.n(E);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),B=RegExp("\\{(?<range>[\\d,-]+)\\}"),M={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},U=(r=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},M),s=s={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(s)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(s)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(s,e))}),r),R=Object.keys(M);function W(e,n){let t=e.map(e=>{let{start:t,end:r}=U[e];return`(?:${t}\\s*(${n.flatMap(e=>{var n,t;return[e.line,null===(n=e.block)||void 0===n?void 0:n.start,null===(t=e.block)||void 0===t?void 0:t.end].filter(Boolean)}).join("|")})\\s*${r})`}).join("|");return RegExp(`^\\s*(?:${t})\\s*$`)}function q(e){var n,t,{as:r}=e,s=function(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,["as"]);let o=function(e){let n={color:"--prism-color",backgroundColor:"--prism-background-color"},t={};return Object.entries(e.plain).forEach(([e,r])=>{let s=n[e];s&&"string"==typeof r&&(t[s]=r)}),t}(m());return(0,a.jsx)(r,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},s),t=t={style:o,className:(0,c.A)(s.className,"codeBlockContainer_jDV4",T.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let G={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function H({children:e,className:n}){return(0,a.jsx)(q,{as:"pre",tabIndex:0,className:(0,c.A)(G.codeBlockStandalone,"thin-scrollbar",n),children:(0,a.jsx)("code",{className:G.codeBlockLines,children:e})})}var $=t(2550);let F={attributes:!0,characterData:!0,childList:!0,subtree:!0};var J=t(27663);let X={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function z(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function Y({line:e,classNames:n,showLineNumbers:t,getLineProps:r,getTokenProps:s}){var o,i;1===e.length&&"\n"===e[0].content&&(e[0].content="");let l=r({line:e,className:(0,c.A)(n,t&&X.codeLine)}),d=e.map((e,n)=>(0,a.jsx)("span",z({},s({token:e})),n));return(0,a.jsxs)("span",(o=z({},l),i=i={children:[t?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:X.codeLineNumber}),(0,a.jsx)("span",{className:X.codeLineContent,children:d})]}):d,(0,a.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(i)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(i)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(i,e))}),o))}var V=t(936);function K(e){var n,t;return(0,a.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,a.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function Q(e){var n,t;return(0,a.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,a.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let Z={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:n}){let[t,r]=(0,l.useState)(!1),s=(0,l.useRef)(void 0),o=(0,l.useCallback)(()=>{(0,V.A)(e),r(!0),s.current=window.setTimeout(()=>{r(!1)},1e3)},[e]);return(0,l.useEffect)(()=>()=>window.clearTimeout(s.current),[]),(0,a.jsx)("button",{type:"button","aria-label":t?(0,h.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,h.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,h.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,c.A)("clean-btn",n,Z.copyButton,t&&Z.copyButtonCopied),onClick:o,children:(0,a.jsxs)("span",{className:Z.copyButtonIcons,"aria-hidden":"true",children:[(0,a.jsx)(K,{className:Z.copyButtonIcon}),(0,a.jsx)(Q,{className:Z.copyButtonSuccessIcon})]})})}function en(e){var n,t;return(0,a.jsx)("svg",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({viewBox:"0 0 24 24"},e),t=t={children:(0,a.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}let et={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function er({className:e,onClick:n,isEnabled:t}){let r=(0,h.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,a.jsx)("button",{type:"button",onClick:n,className:(0,c.A)("clean-btn",e,t&&et.wordWrapButtonEnabled),"aria-label":r,title:r,children:(0,a.jsx)(en,{className:et.wordWrapButtonIcon,"aria-hidden":"true"})})}function es({children:e,className:n="",metastring:t,title:r,showLineNumbers:s,language:o}){var i,d,u,h;let{prism:{defaultLanguage:p,magicComments:g}}=(0,b.p)(),f=null==(d=null!==(i=null!=o?o:function(e){let n=e.split(" ").find(e=>e.startsWith("language-"));return null==n?void 0:n.replace(/language-/,"")}(n))&&void 0!==i?i:p)?void 0:d.toLowerCase(),j=m(),x=function(){let[e,n]=(0,l.useState)(!1),[t,r]=(0,l.useState)(!1),s=(0,l.useRef)(null),o=(0,l.useCallback)(()=>{let t=s.current.querySelector("code");e?t.removeAttribute("style"):(t.style.whiteSpace="pre-wrap",t.style.overflowWrap="anywhere"),n(e=>!e)},[s,e]),i=(0,l.useCallback)(()=>{let{scrollWidth:e,clientWidth:n}=s.current;r(e>n||s.current.querySelector("code").hasAttribute("style"))},[s]);return!function(e,n){let[t,r]=(0,l.useState)(),s=(0,l.useCallback)(()=>{var n;r(null===(n=e.current)||void 0===n?void 0:n.closest("[role=tabpanel][hidden]"))},[e,r]);(0,l.useEffect)(()=>{s()},[s]),function(e,n,t=F){let r=(0,$._q)(n),s=(0,$.Be)(t);(0,l.useEffect)(()=>{let n=new MutationObserver(r);return e&&n.observe(e,s),()=>n.disconnect()},[e,r,s])}(t,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(n(),s())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(s,i),(0,l.useEffect)(()=>{i()},[e,i]),(0,l.useEffect)(()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)}),[i]),{codeBlockRef:s,isEnabled:e,isCodeScrollable:t,toggle:o}}(),w=(null!==(h=null==t?void 0:null===(u=t.match(L))||void 0===u?void 0:u.groups.title)&&void 0!==h?h:"")||r,{lineClassNames:y,code:v}=function(e,n){let t=e.replace(/\n$/,""),{language:r,magicComments:s,metastring:o}=n;if(o&&B.test(o)){let e=o.match(B).groups.range;if(0===s.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${o}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let n=s[0].className;return{lineClassNames:Object.fromEntries(I()(e).filter(e=>e>0).map(e=>[e-1,[n]])),code:t}}if(void 0===r)return{lineClassNames:{},code:t};let i=function(e,n){switch(e){case"js":case"javascript":case"ts":case"typescript":return W(["js","jsBlock"],n);case"jsx":case"tsx":return W(["js","jsBlock","jsx"],n);case"html":return W(["js","jsBlock","html"],n);case"python":case"py":case"bash":return W(["bash"],n);case"markdown":case"md":return W(["html","jsx","bash"],n);case"tex":case"latex":case"matlab":return W(["tex"],n);case"lua":case"haskell":case"sql":return W(["lua"],n);case"wasm":return W(["wasm"],n);case"vb":case"vba":case"visual-basic":return W(["vb","rem"],n);case"vbnet":return W(["vbnet","rem"],n);case"batch":return W(["rem"],n);case"basic":return W(["rem","f90"],n);case"fsharp":return W(["js","ml"],n);case"ocaml":case"sml":return W(["ml"],n);case"fortran":return W(["f90"],n);case"cobol":return W(["cobol"],n);default:return W(R,n)}}(r,s),a=t.split("\n"),l=Object.fromEntries(s.map(e=>[e.className,{start:0,range:""}])),c=Object.fromEntries(s.filter(e=>e.line).map(({className:e,line:n})=>[n,e])),d=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:n})=>[n.start,e])),u=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:n})=>[n.end,e]));for(let e=0;e<a.length;){let n=a[e].match(i);if(!n){e+=1;continue}let t=n.slice(1).find(e=>void 0!==e);c[t]?l[c[t]].range+=`${e},`:d[t]?l[d[t]].start=e:u[t]&&(l[u[t]].range+=`${l[u[t]].start}-${e-1},`),a.splice(e,1)}t=a.join("\n");let h={};return Object.entries(l).forEach(([e,{range:n}])=>{I()(n).forEach(n=>{var t;null!==(t=h[n])&&void 0!==t||(h[n]=[]),h[n].push(e)})}),{lineClassNames:h,code:t}}(e,{metastring:t,language:f,magicComments:g}),O=null!=s?s:!!(null==t?void 0:t.includes("showLineNumbers"));return(0,a.jsxs)(q,{as:"div",className:(0,c.A)(n,f&&!n.includes(`language-${f}`)&&`language-${f}`),children:[w&&(0,a.jsx)("div",{className:G.codeBlockTitle,children:w}),(0,a.jsxs)("div",{className:G.codeBlockContent,children:[(0,a.jsx)(J.f4,{theme:j,code:v,language:null!=f?f:"text",children:({className:e,style:n,tokens:t,getLineProps:r,getTokenProps:s})=>(0,a.jsx)("pre",{tabIndex:0,ref:x.codeBlockRef,className:(0,c.A)(e,G.codeBlock,"thin-scrollbar"),style:n,children:(0,a.jsx)("code",{className:(0,c.A)(G.codeBlockLines,O&&G.codeBlockLinesWithNumbering),children:t.map((e,n)=>(0,a.jsx)(Y,{line:e,getLineProps:r,getTokenProps:s,classNames:y[n],showLineNumbers:O},n))})})}),(0,a.jsxs)("div",{className:G.buttonGroup,children:[(x.isEnabled||x.isCodeScrollable)&&(0,a.jsx)(er,{className:G.codeButton,onClick:()=>x.toggle(),isEnabled:x.isEnabled}),(0,a.jsx)(ee,{className:G.codeButton,code:v})]})]})]})}function eo(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}let ei=(o=function(e){var n,t,{children:r}=e,s=function(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}(e,["children"]);let o=(0,d.A)(),i=l.Children.toArray(r).some(e=>(0,l.isValidElement)(e))?r:Array.isArray(r)?r.join(""):r,c="string"==typeof i?es:H;return(0,a.jsx)(c,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},s),t=t={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n),String(o))},function(e){return e.live?(0,a.jsx)(S,eo({scope:N},e)):(0,a.jsx)(o,eo({},e))});function ea(e){return(0,a.jsx)(ei,function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},e))}},96637:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-create-project-2fe25e5974adc027f7ac2c36f1717de1.png"},35047:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-download-translations-warning-cb747bdcfc38beabea491f63781b9b40.png"},35701:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-files-rename-5ff9bf66f6123800006cf38ead6b66ae.png"},91324:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-french-translations-4f252e7f63a781628378eeb3a9fefb39.png"},69963:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-hide-string-5e470a33a42e044379bf6860ff534b50.png"},75735:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-settings-duplicate-strings-6943e2e4cab8910625a0b6c285052726.png"},84656:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-source-files-0ba8c0433421141418462c3bf6de22ed.png"},53092:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-translate-json-39a6b98aa60a84eba22b2f5834cbb97d.png"},19018:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-translate-markdown-0651cd22b5f07f0e9b3031ffaebbc5b6.png"},38770:(e,n,t)=>{t.d(n,{A:()=>r});let r=t.p+"assets/images/crowdin-upload-sources-cli-5758c2f4d4256ac05d21b637d1d517bb.png"},77600:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>d,default:()=>g,frontMatter:()=>c,metadata:()=>r,toc:()=>h});let r=JSON.parse('{"id":"i18n/crowdin","title":"i18n - Using Crowdin","description":"The i18n system of Docusaurus is decoupled from any translation software.","source":"@site/docs/i18n/i18n-crowdin.mdx","sourceDirName":"i18n","slug":"/i18n/crowdin","permalink":"/docs/i18n/crowdin","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/i18n/i18n-crowdin.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"crowdin","slug":"/i18n/crowdin","toc_max_heading_level":4},"sidebar":"docs","previous":{"title":"Using Git","permalink":"/docs/i18n/git"},"next":{"title":"What\'s next?","permalink":"/docs/guides/whats-next"}}');var s=t(62540),o=t(43023),i=t(27446),a=t(15995),l=t(55887);let c={id:"crowdin",slug:"/i18n/crowdin",toc_max_heading_level:4},d="i18n - Using Crowdin",u={},h=[{value:"Crowdin overview",id:"crowdin-overview",level:2},{value:"Crowdin tutorial",id:"crowdin-tutorial",level:2},{value:"Prepare the Docusaurus site",id:"prepare-the-docusaurus-site",level:3},{value:"Create a Crowdin project",id:"create-a-crowdin-project",level:3},{value:"Create the Crowdin configuration",id:"create-the-crowdin-configuration",level:3},{value:"Access token",id:"access-token",level:4},{value:"Other configuration fields",id:"other-configuration-fields",level:4},{value:"Install the Crowdin CLI",id:"install-the-crowdin-cli",level:3},{value:"Upload the sources",id:"upload-the-sources",level:3},{value:"Translate the sources",id:"translate-the-sources",level:3},{value:"Download the translations",id:"download-the-translations",level:3},{value:"Automate with CI",id:"automate-with-ci",level:3},{value:"Advanced Crowdin topics",id:"advanced-crowdin-topics",level:2},{value:"MDX",id:"mdx",level:3},{value:"MDX problems",id:"mdx-problems",level:4},{value:"MDX solutions",id:"mdx-solutions",level:4},{value:"Docs versioning",id:"docs-versioning",level:3},{value:"Multi-instance plugins",id:"multi-instance-plugins",level:3},{value:"Maintaining your site",id:"maintaining-your-site",level:3},{value:"VCS (Git) integrations",id:"vcs-git-integrations",level:3},{value:"In-Context localization",id:"in-context-localization",level:3},{value:"Localize edit URLs",id:"localize-edit-urls",level:3},{value:"Example configuration",id:"example-configuration",level:3},{value:"Machine Translation (MT) issue: links/image handling",id:"machine-translation-mt-issue-linksimage-handling",level:3}];function p(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"i18n---using-crowdin",children:"i18n - Using Crowdin"})}),"\n",(0,s.jsxs)(n.p,{children:["The i18n system of Docusaurus is ",(0,s.jsx)(n.strong,{children:"decoupled from any translation software"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["You can integrate Docusaurus with the ",(0,s.jsx)(n.strong,{children:"tools and SaaS of your choice"}),", as long as you put the ",(0,s.jsx)(n.strong,{children:"translation files at the correct location"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["We document the usage of ",(0,s.jsx)(n.a,{href:"https://crowdin.com/",children:"Crowdin"}),", as ",(0,s.jsx)(n.strong,{children:"one"})," possible ",(0,s.jsx)(n.strong,{children:"integration example"}),"."]}),"\n",(0,s.jsxs)(n.admonition,{type:"warning",children:[(0,s.jsxs)(n.p,{children:["This is ",(0,s.jsx)(n.strong,{children:"not an endorsement of Crowdin"})," as the unique choice to translate a Docusaurus site, but it is successfully used by Facebook to translate documentation projects such as ",(0,s.jsx)(n.a,{href:"https://jestjs.io/",children:"Jest"}),", ",(0,s.jsx)(n.a,{href:"https://docusaurus.io/",children:"Docusaurus"}),", and ",(0,s.jsx)(n.a,{href:"https://reasonml.github.io/",children:"ReasonML"}),"."]}),(0,s.jsxs)(n.p,{children:["Refer to the ",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"https://support.crowdin.com/",children:"Crowdin documentation"})})," and ",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"mailto:support@crowdin.com",children:"Crowdin support"})})," for help."]})]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["Use this ",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/4052",children:"community-driven GitHub discussion"})})," to discuss anything related to Docusaurus + Crowdin."]})}),"\n",(0,s.jsx)(n.h2,{id:"crowdin-overview",children:"Crowdin overview"}),"\n",(0,s.jsxs)(n.p,{children:["Crowdin is a translation SaaS, offering a ",(0,s.jsx)(n.a,{href:"https://crowdin.com/page/open-source-project-setup-request",children:"free plan for open-source projects"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"We recommend the following translation workflow:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Upload sources"})," to Crowdin (untranslated files)"]}),"\n",(0,s.jsxs)(n.li,{children:["Use Crowdin to ",(0,s.jsx)(n.strong,{children:"translate the content"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Download translations"})," from Crowdin (localized translation files)"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Crowdin provides a ",(0,s.jsx)(n.a,{href:"https://support.crowdin.com/cli-tool/",children:"CLI"})," to ",(0,s.jsx)(n.strong,{children:"upload sources"})," and ",(0,s.jsx)(n.strong,{children:"download translations"}),", allowing you to automate the translation process."]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsxs)(n.a,{href:"https://support.crowdin.com/configuration-file/",children:[(0,s.jsx)(n.code,{children:"crowdin.yml"})," configuration file"]})," is convenient for Docusaurus, and permits to ",(0,s.jsx)(n.strong,{children:"download the localized translation files at the expected location"})," (in ",(0,s.jsx)(n.code,{children:"i18n/[locale]/.."}),")."]}),"\n",(0,s.jsxs)(n.p,{children:["Read the ",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"https://support.crowdin.com/",children:"official documentation"})})," to know more about advanced features and different translation workflows."]}),"\n",(0,s.jsx)(n.h2,{id:"crowdin-tutorial",children:"Crowdin tutorial"}),"\n",(0,s.jsxs)(n.p,{children:["This is a walk-through of using Crowdin to translate a newly initialized English Docusaurus website into French, and assume you already followed the ",(0,s.jsx)(n.a,{href:"/docs/i18n/tutorial",children:"i18n tutorial"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["The end result can be seen at ",(0,s.jsx)(n.a,{href:"https://docusaurus-crowdin-example.netlify.app/",children:"docusaurus-crowdin-example.netlify.app"})," (",(0,s.jsx)(n.a,{href:"https://github.com/slorber/docusaurus-crowdin-example",children:"repository"}),")."]}),"\n",(0,s.jsx)(n.h3,{id:"prepare-the-docusaurus-site",children:"Prepare the Docusaurus site"}),"\n",(0,s.jsx)(n.p,{children:"Initialize a new Docusaurus site:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npx create-docusaurus@latest website classic\n"})}),"\n",(0,s.jsx)(n.p,{children:"Add the site configuration for the French language:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n i18n: {\n defaultLocale: 'en',\n locales: ['en', 'fr'],\n },\n themeConfig: {\n navbar: {\n items: [\n // ...\n {\n type: 'localeDropdown',\n position: 'left',\n },\n // ...\n ],\n },\n },\n // ...\n};\n"})}),"\n",(0,s.jsx)(n.p,{children:"Translate the homepage:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",metastring:'title="src/pages/index.js"',children:"import React from 'react';\nimport Translate from '@docusaurus/Translate';\nimport Layout from '@theme/Layout';\n\nexport default function Home() {\n return (\n <Layout>\n <h1 style={{margin: 20}}>\n <Translate description=\"The homepage main heading\">\n Welcome to my Docusaurus translated site!\n </Translate>\n </h1>\n </Layout>\n );\n}\n"})}),"\n",(0,s.jsx)(n.h3,{id:"create-a-crowdin-project",children:"Create a Crowdin project"}),"\n",(0,s.jsxs)(n.p,{children:["Sign up on ",(0,s.jsx)(n.a,{href:"https://crowdin.com/",children:"Crowdin"}),", and create a project."]}),"\n",(0,s.jsx)(n.p,{children:"Use English as the source language, and French as the target language."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Create a Crowdin project with english as source language, and french as target language",src:t(96637).A+"",width:"1868",height:"1576"})}),"\n",(0,s.jsx)(n.p,{children:"Your project is created, but it is empty for now. We will upload the files to translate in the next steps."}),"\n",(0,s.jsx)(n.h3,{id:"create-the-crowdin-configuration",children:"Create the Crowdin configuration"}),"\n",(0,s.jsxs)(n.p,{children:["This configuration (",(0,s.jsx)(n.a,{href:"https://support.crowdin.com/configuration-file/",children:"doc"}),") provides a mapping for the Crowdin CLI to understand:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Where to find the source files to upload (JSON and Markdown)"}),"\n",(0,s.jsxs)(n.li,{children:["Where to download the files after translation (in ",(0,s.jsx)(n.code,{children:"i18n/[locale]"}),")"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Create ",(0,s.jsx)(n.code,{children:"crowdin.yml"})," in ",(0,s.jsx)(n.code,{children:"website"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yml",metastring:'title="crowdin.yml"',children:"project_id: '123456'\napi_token_env: CROWDIN_PERSONAL_TOKEN\npreserve_hierarchy: true\nfiles:\n # JSON translation files\n - source: /i18n/en/**/*\n translation: /i18n/%two_letters_code%/**/%original_file_name%\n # Docs Markdown files\n - source: /docs/**/*\n translation: /i18n/%two_letters_code%/docusaurus-plugin-content-docs/current/**/%original_file_name%\n # Blog Markdown files\n - source: /blog/**/*\n translation: /i18n/%two_letters_code%/docusaurus-plugin-content-blog/**/%original_file_name%\n"})}),"\n",(0,s.jsx)(n.p,{children:"Crowdin has its own syntax for declaring source/translation paths:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"**/*"}),": everything in a subfolder"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"%two_letters_code%"}),": the 2-letters variant of Crowdin target languages (",(0,s.jsx)(n.code,{children:"fr"})," in our case)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"**/%original_file_name%"}),": the translations will preserve the original folder/file hierarchy"]}),"\n"]}),"\n",(0,s.jsxs)(n.admonition,{type:"info",children:[(0,s.jsx)(n.p,{children:"The Crowdin CLI warnings are not always easy to understand."}),(0,s.jsx)(n.p,{children:"We advise to:"}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"change one thing at a time"}),"\n",(0,s.jsx)(n.li,{children:"re-upload sources after any configuration change"}),"\n",(0,s.jsxs)(n.li,{children:["use paths starting with ",(0,s.jsx)(n.code,{children:"/"})," (",(0,s.jsx)(n.code,{children:"./"})," does not work)"]}),"\n",(0,s.jsxs)(n.li,{children:["avoid fancy globbing patterns like ",(0,s.jsx)(n.code,{children:"/docs/**/*.(md|mdx)"})," (does not work)"]}),"\n"]})]}),"\n",(0,s.jsx)(n.h4,{id:"access-token",children:"Access token"}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"api_token_env"})," attribute defines the ",(0,s.jsx)(n.strong,{children:"env variable name"})," read by the Crowdin CLI."]}),"\n",(0,s.jsxs)(n.p,{children:["You can obtain a ",(0,s.jsx)(n.code,{children:"Personal Access Token"})," on ",(0,s.jsx)(n.a,{href:"https://crowdin.com/settings#api-key",children:"your personal profile page"}),"."]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["You can keep the default value ",(0,s.jsx)(n.code,{children:"CROWDIN_PERSONAL_TOKEN"}),", and set this environment variable and on your computer and on the CI server to the generated access token."]})}),"\n",(0,s.jsxs)(n.admonition,{type:"warning",children:[(0,s.jsxs)(n.p,{children:["A Personal Access Tokens grant ",(0,s.jsx)(n.strong,{children:"read-write access to all your Crowdin projects"}),"."]}),(0,s.jsxs)(n.p,{children:["You should ",(0,s.jsx)(n.strong,{children:"not commit"})," it, and it may be a good idea to create a dedicated ",(0,s.jsx)(n.strong,{children:"Crowdin profile for your company"})," instead of using a personal account."]})]}),"\n",(0,s.jsx)(n.h4,{id:"other-configuration-fields",children:"Other configuration fields"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"project_id"}),": can be hardcoded, and is found on ",(0,s.jsx)(n.code,{children:"https://crowdin.com/project/<MY_PROJECT_NAME>/settings#api"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"preserve_hierarchy"}),": preserve the folder's hierarchy of your docs on Crowdin UI instead of flattening everything"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"install-the-crowdin-cli",children:"Install the Crowdin CLI"}),"\n",(0,s.jsxs)(n.p,{children:["This tutorial uses the CLI version ",(0,s.jsx)(n.code,{children:"3.5.2"}),", but we expect ",(0,s.jsx)(n.code,{children:"3.x"})," releases to keep working."]}),"\n",(0,s.jsx)(n.p,{children:"Install the Crowdin CLI as an npm package to your Docusaurus site:"}),"\n",(0,s.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,s.jsx)(a.A,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm install @crowdin/cli@3\n"})})}),(0,s.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn add @crowdin/cli@3\n"})})}),(0,s.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm add @crowdin/cli@3\n"})})})]}),"\n",(0,s.jsxs)(n.p,{children:["Add a ",(0,s.jsx)(n.code,{children:"crowdin"})," script:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",metastring:'title="package.json"',children:'{\n "scripts": {\n // ...\n "write-translations": "docusaurus write-translations",\n "crowdin": "crowdin"\n }\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Test that you can run the Crowdin CLI:"}),"\n",(0,s.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,s.jsx)(a.A,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run crowdin -- --version\n"})})}),(0,s.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn crowdin --version\n"})})}),(0,s.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm run crowdin --version\n"})})})]}),"\n",(0,s.jsxs)(n.p,{children:["Set the ",(0,s.jsx)(n.code,{children:"CROWDIN_PERSONAL_TOKEN"})," env variable on your computer, to allow the CLI to authenticate with the Crowdin API."]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["Temporarily, you can hardcode your personal token in ",(0,s.jsx)(n.code,{children:"crowdin.yml"})," with ",(0,s.jsx)(n.code,{children:"api_token: 'MY-TOKEN'"}),"."]})}),"\n",(0,s.jsx)(n.h3,{id:"upload-the-sources",children:"Upload the sources"}),"\n",(0,s.jsxs)(n.p,{children:["Generate the JSON translation files for the default language in ",(0,s.jsx)(n.code,{children:"website/i18n/en"}),":"]}),"\n",(0,s.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,s.jsx)(a.A,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run write-translations\n"})})}),(0,s.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn write-translations\n"})})}),(0,s.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm run write-translations\n"})})})]}),"\n",(0,s.jsx)(n.p,{children:"Upload all the JSON and Markdown translation files:"}),"\n",(0,s.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,s.jsx)(a.A,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run crowdin upload\n"})})}),(0,s.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn crowdin upload\n"})})}),(0,s.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm run crowdin upload\n"})})})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Crowdin CLI uploading Docusaurus source files",src:t(38770).A+"",width:"1156",height:"682"})}),"\n",(0,s.jsxs)(n.p,{children:["Your source files are now visible on the Crowdin interface: ",(0,s.jsx)(n.code,{children:"https://crowdin.com/project/<MY_PROJECT_NAME>/settings#files"})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Crowdin UI showing Docusaurus source files",src:t(84656).A+"",width:"2462",height:"1048"})}),"\n",(0,s.jsx)(n.h3,{id:"translate-the-sources",children:"Translate the sources"}),"\n",(0,s.jsxs)(n.p,{children:["On ",(0,s.jsx)(n.code,{children:"https://crowdin.com/project/<MY_PROJECT_NAME>"}),", click on the French target language."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Crowdin UI showing French translation files",src:t(91324).A+"",width:"2430",height:"1736"})}),"\n",(0,s.jsx)(n.p,{children:"Translate some Markdown files."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Crowdin UI to translate a Markdown file",src:t(19018).A+"",width:"3044",height:"1586"})}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsxs)(n.p,{children:["Use ",(0,s.jsx)(n.code,{children:"Hide String"})," to make sure translators ",(0,s.jsx)(n.strong,{children:"don't translate things that should not be"}),":"]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Front matter: ",(0,s.jsx)(n.code,{children:"id"}),", ",(0,s.jsx)(n.code,{children:"slug"}),", ",(0,s.jsx)(n.code,{children:"tags"})," ..."]}),"\n",(0,s.jsxs)(n.li,{children:["Admonitions: ",(0,s.jsx)(n.code,{children:":::"}),", ",(0,s.jsx)(n.code,{children:":::note"}),", ",(0,s.jsx)(n.code,{children:":::tip"})," ..."]}),"\n"]}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Crowdin UI hide string",src:t(69963).A+"",width:"1518",height:"698"})})]}),"\n",(0,s.jsx)(n.p,{children:"Translate some JSON files."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Crowdin UI to translate a JSON file",src:t(53092).A+"",width:"2868",height:"1490"})}),"\n",(0,s.jsx)(n.admonition,{type:"info",children:(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"description"})," attribute of JSON translation files is visible on Crowdin to help translate the strings."]})}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"https://support.crowdin.com/pre-translation-via-machine/",children:"Pre-translate"})})," your site, and ",(0,s.jsx)(n.strong,{children:"fix pre-translation mistakes manually"})," (enable the Global Translation Memory in settings first)."]}),(0,s.jsxs)(n.p,{children:["Use the ",(0,s.jsx)(n.code,{children:"Hide String"})," feature first, as Crowdin is pre-translating things too optimistically."]})]}),"\n",(0,s.jsx)(n.h3,{id:"download-the-translations",children:"Download the translations"}),"\n",(0,s.jsx)(n.p,{children:"Use the Crowdin CLI to download the translated JSON and Markdown files."}),"\n",(0,s.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,s.jsx)(a.A,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run crowdin download\n"})})}),(0,s.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn crowdin download\n"})})}),(0,s.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm run crowdin download\n"})})})]}),"\n",(0,s.jsxs)(n.p,{children:["The translated content should be downloaded in ",(0,s.jsx)(n.code,{children:"i18n/fr"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Start your site on the French locale:"}),"\n",(0,s.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,s.jsx)(a.A,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run start -- --locale fr\n"})})}),(0,s.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn run start --locale fr\n"})})}),(0,s.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm run start --locale fr\n"})})})]}),"\n",(0,s.jsxs)(n.p,{children:["Make sure that your website is now translated in French at ",(0,s.jsx)(n.a,{href:"http://localhost:3000/fr/",children:(0,s.jsx)(n.code,{children:"http://localhost:3000/fr/"})}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"automate-with-ci",children:"Automate with CI"}),"\n",(0,s.jsxs)(n.p,{children:["We will configure the CI to ",(0,s.jsx)(n.strong,{children:"download the Crowdin translations at build time"})," and keep them outside of Git."]}),"\n",(0,s.jsxs)(n.p,{children:["Add ",(0,s.jsx)(n.code,{children:"website/i18n"})," to ",(0,s.jsx)(n.code,{children:".gitignore"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Set the ",(0,s.jsx)(n.code,{children:"CROWDIN_PERSONAL_TOKEN"})," env variable on your CI."]}),"\n",(0,s.jsxs)(n.p,{children:["Create an npm script to ",(0,s.jsx)(n.code,{children:"sync"})," Crowdin (extract sources, upload sources, download translations):"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",metastring:'title="package.json"',children:'{\n "scripts": {\n "crowdin:sync": "docusaurus write-translations && crowdin upload && crowdin download"\n }\n}\n'})}),"\n",(0,s.jsxs)(n.p,{children:["Call the ",(0,s.jsx)(n.code,{children:"npm run crowdin:sync"})," script in your CI, just before building the Docusaurus site."]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["Keep your deploy-previews fast: don't download translations, and use ",(0,s.jsx)(n.code,{children:"npm run build -- --locale en"})," for feature branches."]})}),"\n",(0,s.jsx)(n.admonition,{type:"warning",children:(0,s.jsx)(n.p,{children:"Crowdin does not support well multiple concurrent uploads/downloads: it is preferable to only include translations to your production deployment, and keep deploy previews untranslated."})}),"\n",(0,s.jsx)(n.h2,{id:"advanced-crowdin-topics",children:"Advanced Crowdin topics"}),"\n",(0,s.jsx)(n.h3,{id:"mdx",children:"MDX"}),"\n",(0,s.jsx)(n.admonition,{type:"warning",children:(0,s.jsx)(n.p,{children:"Pay special attention to the JSX fragments in MDX documents!"})}),"\n",(0,s.jsxs)(n.p,{children:["Crowdin ",(0,s.jsx)(n.strong,{children:"does not support officially MDX"}),", but they added ",(0,s.jsxs)(n.strong,{children:["support for the ",(0,s.jsx)(n.code,{children:".mdx"})," extension"]}),", and interpret such files as Markdown (instead of plain text)."]}),"\n",(0,s.jsx)(n.h4,{id:"mdx-problems",children:"MDX problems"}),"\n",(0,s.jsx)(n.p,{children:"Crowdin thinks that the JSX syntax is embedded HTML and can mess up with the JSX markup when you download the translations, leading to a site that fails to build due to invalid JSX."}),"\n",(0,s.jsxs)(n.p,{children:["Simple JSX fragments using simple string props like ",(0,s.jsx)(n.code,{children:'<Username name="Sebastien"/>'})," will work fine; more complex JSX fragments using object/array props like ",(0,s.jsx)(n.code,{children:'<User person={{name: "Sebastien"}}/>'})," are more likely to fail due to a syntax that does not look like HTML."]}),"\n",(0,s.jsx)(n.h4,{id:"mdx-solutions",children:"MDX solutions"}),"\n",(0,s.jsxs)(n.p,{children:["We recommend extracting the complex embedded JSX code as separate standalone components. We also added an ",(0,s.jsx)(n.code,{children:"mdx-code-block"})," escape hatch syntax:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:'# How to deploy Docusaurus\n\nTo deploy Docusaurus, run the following command:\n\n````mdx-code-block\xa0\n\nimport Tabs from \'@theme/Tabs\';\n\nimport TabItem from \'@theme/TabItem\';\n\n<Tabs>\n <TabItem value="bash" label="Bash">\n\n ```bash\n GIT_USER=<GITHUB_USERNAME> yarn deploy\n ```\n\n </TabItem>\n <TabItem value="windows" label="Windows">\n\n ```batch\n cmd /C "set "GIT_USER=<GITHUB_USERNAME>" && yarn deploy"\n ```\n\n </TabItem>\n</Tabs>\n````\n'})}),"\n",(0,s.jsx)(n.p,{children:"This will:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"be interpreted by Crowdin as code blocks (and not mess-up with the markup on download)"}),"\n",(0,s.jsx)(n.li,{children:"be interpreted by Docusaurus as regular JSX (as if it was not wrapped by any code block)"}),"\n",(0,s.jsx)(n.li,{children:"unfortunately opt-out of MDX tooling (IDE syntax highlighting, Prettier...)"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"docs-versioning",children:"Docs versioning"}),"\n",(0,s.jsxs)(n.p,{children:["Configure translation files for the ",(0,s.jsx)(n.code,{children:"website/versioned_docs"})," folder."]}),"\n",(0,s.jsxs)(n.p,{children:["When creating a new version, the source strings will generally be quite similar to the current version (",(0,s.jsx)(n.code,{children:"website/docs"}),"), and you don't want to translate the new version docs again and again."]}),"\n",(0,s.jsxs)(n.p,{children:["Crowdin provides a ",(0,s.jsx)(n.code,{children:"Duplicate Strings"})," setting."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Crowdin Duplicate Strings option setting",src:t(75735).A+"",width:"1422",height:"368"})}),"\n",(0,s.jsxs)(n.p,{children:["We recommend using ",(0,s.jsx)(n.code,{children:"Hide"}),", but the ideal setting depends on how much your versions are different."]}),"\n",(0,s.jsx)(n.admonition,{type:"warning",children:(0,s.jsxs)(n.p,{children:["Not using ",(0,s.jsx)(n.code,{children:"Hide"})," leads to a much larger amount of ",(0,s.jsx)(n.code,{children:"source strings"})," in quotas, and will affect the pricing."]})}),"\n",(0,s.jsx)(n.h3,{id:"multi-instance-plugins",children:"Multi-instance plugins"}),"\n",(0,s.jsx)(n.p,{children:"You need to configure translation files for each plugin instance."}),"\n",(0,s.jsxs)(n.p,{children:["If you have a docs plugin instance with ",(0,s.jsx)(n.code,{children:"id=ios"}),", you will need to configure those source files as well"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"website/ios"})}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"website/ios_versioned_docs"})," (if versioned)"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"maintaining-your-site",children:"Maintaining your site"}),"\n",(0,s.jsxs)(n.p,{children:["Sometimes, you will ",(0,s.jsx)(n.strong,{children:"remove or rename a source file"})," on Git, and Crowdin will display CLI warnings:"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Crowdin CLI: download translation warning",src:t(35047).A+"",width:"2268",height:"886"})}),"\n",(0,s.jsxs)(n.p,{children:["When your sources are refactored, you should use the Crowdin UI to ",(0,s.jsx)(n.strong,{children:"update your Crowdin files manually"}),":"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Crowdin UI: renaming a file",src:t(35701).A+"",width:"2472",height:"1186"})}),"\n",(0,s.jsx)(n.h3,{id:"vcs-git-integrations",children:"VCS (Git) integrations"}),"\n",(0,s.jsxs)(n.p,{children:["Crowdin has multiple VCS integrations for ",(0,s.jsx)(n.a,{href:"https://support.crowdin.com/github-integration/",children:"GitHub"}),", GitLab, Bitbucket."]}),"\n",(0,s.jsx)(n.admonition,{title:"TL;DR",type:"warning",children:(0,s.jsx)(n.p,{children:"We recommend avoiding them."})}),"\n",(0,s.jsxs)(n.p,{children:["It could have been helpful to be able to edit the translations in both Git and Crowdin, and have a ",(0,s.jsx)(n.strong,{children:"bi-directional sync"})," between the 2 systems."]}),"\n",(0,s.jsxs)(n.p,{children:["In practice, ",(0,s.jsx)(n.strong,{children:"it didn't work very reliably"})," for a few reasons:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"The Crowdin -> Git sync works fine (with a pull request)"}),"\n",(0,s.jsx)(n.li,{children:"The Git -> Crowdin sync is manual (you have to press a button)"}),"\n",(0,s.jsx)(n.li,{children:"The heuristics used by Crowdin to match existing Markdown translations to existing Markdown sources are not 100% reliable, and you have to verify the result on Crowdin UI after any sync from Git"}),"\n",(0,s.jsx)(n.li,{children:"2 users concurrently editing on Git and Crowdin can lead to a translation loss"}),"\n",(0,s.jsxs)(n.li,{children:["It requires the ",(0,s.jsx)(n.code,{children:"crowdin.yml"})," file to be at the root of the repository"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"in-context-localization",children:"In-Context localization"}),"\n",(0,s.jsxs)(n.p,{children:["Crowdin has an ",(0,s.jsx)(n.a,{href:"https://support.crowdin.com/in-context-localization/",children:"In-Context localization"})," feature."]}),"\n",(0,s.jsxs)(n.admonition,{type:"warning",children:[(0,s.jsx)(n.p,{children:"Unfortunately, it does not work yet for technical reasons, but we have good hope it can be solved."}),(0,s.jsxs)(n.p,{children:["Crowdin replaces Markdown strings with technical IDs such as ",(0,s.jsx)(n.code,{children:"crowdin:id12345"}),", but it does so too aggressively, including hidden strings, and messes up with front matter, admonitions, JSX..."]})]}),"\n",(0,s.jsx)(n.h3,{id:"localize-edit-urls",children:"Localize edit URLs"}),"\n",(0,s.jsxs)(n.p,{children:["When the user is browsing a page at ",(0,s.jsx)(n.code,{children:"/fr/doc1"}),", the edit button will link by default to the unlocalized doc at ",(0,s.jsx)(n.code,{children:"website/docs/doc1.md"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["You may prefer the edit button to link to the Crowdin interface instead by using the ",(0,s.jsx)(n.code,{children:"editUrl"})," function to customize the edit URLs on a per-locale basis."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"const DefaultLocale = 'en';\n\nexport default {\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n // highlight-start\n editUrl: ({locale, versionDocsDirPath, docPath}) => {\n // Link to Crowdin for French docs\n if (locale !== DefaultLocale) {\n return `https://crowdin.com/project/docusaurus-v2/${locale}`;\n }\n // Link to GitHub for English docs\n return `https://github.com/facebook/docusaurus/edit/main/website/${versionDocsDirPath}/${docPath}`;\n },\n // highlight-end\n },\n blog: {\n // highlight-start\n editUrl: ({locale, blogDirPath, blogPath}) => {\n if (locale !== DefaultLocale) {\n return `https://crowdin.com/project/docusaurus-v2/${locale}`;\n }\n return `https://github.com/facebook/docusaurus/edit/main/website/${blogDirPath}/${blogPath}`;\n },\n // highlight-start\n },\n },\n ],\n ],\n};\n"})}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["It is currently ",(0,s.jsx)(n.strong,{children:"not possible to link to a specific file"})," in Crowdin."]})}),"\n",(0,s.jsx)(n.h3,{id:"example-configuration",children:"Example configuration"}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.strong,{children:"Docusaurus configuration file"})," is a good example of using versioning and multi-instance:"]}),"\n","\n",(0,s.jsx)(l.A,{className:"language-yaml",title:"crowdin.yml",children:'#\n# Your Crowdin credentials\n#\nproject_id: \'428890\'\napi_token_env: CROWDIN_PERSONAL_TOKEN\n# base_path: \'.\'\n# base_url: https://api.crowdin.com\n\n#\n# Choose file structure in Crowdin\n# e.g. true or false\n#\npreserve_hierarchy: true\n\n# We generally want to use the "two-letters-code" of a locale (ie the language)\n# But not for all locales!\n# "pt-BR" may be better to remain as "pt-BR" instead of being transformed to "pt"\n# Note: &/* is Yaml anchor syntax: https://support.atlassian.com/bitbucket-cloud/docs/yaml-anchors/\nlanguages_mapping: &languages_mapping\n two_letters_code:\n pt-BR: pt-BR\n\n#\n# Files configuration\n#\nfiles:\n - source: /website/i18n/en/**/*\n translation: /website/i18n/%two_letters_code%/**/%original_file_name%\n languages_mapping: *languages_mapping\n - source: /website/docs/**/*\n translation: /website/i18n/%two_letters_code%/docusaurus-plugin-content-docs/current/**/%original_file_name%\n languages_mapping: *languages_mapping\n - source: /website/community/**/*\n translation: /website/i18n/%two_letters_code%/docusaurus-plugin-content-docs-community/current/**/%original_file_name%\n languages_mapping: *languages_mapping\n - source: /website/versioned_docs/**/*\n translation: /website/i18n/%two_letters_code%/docusaurus-plugin-content-docs/**/%original_file_name%\n languages_mapping: *languages_mapping\n - source: /website/blog/**/*\n translation: /website/i18n/%two_letters_code%/docusaurus-plugin-content-blog/**/%original_file_name%\n languages_mapping: *languages_mapping\n - source: /website/src/pages/**/*\n translation: /website/i18n/%two_letters_code%/docusaurus-plugin-content-pages/**/%original_file_name%\n ignore: [/**/*.js, /**/*.jsx, /**/*.ts, /**/*.tsx, /**/*.css]\n languages_mapping: *languages_mapping\n#\n# Source files filter\n# e.g. "/resources/en/*.json"\n#\n#"source" : "/website/docs/**/*.md",\n#\n# Where translations will be placed\n# e.g. "/resources/docs/%two_letters_code%/%original_file_name%"\n#\n#"translation" : "/website/i18n/%language%/docs/current/%original_file_name%",\n#\n# Files or directories for ignore\n# e.g. ["/**/?.txt", "/**/[0-9].txt", "/**/*\\?*.txt"]\n#\n#"ignore" : [],\n#\n# The dest allows you to specify a file name in Crowdin\n# e.g. "/messages.json"\n#\n#"dest" : "",\n#\n# File type\n# e.g. "json"\n#\n#"type" : "",\n#\n# The parameter "update_option" is optional. If it is not set, after the files update the translations for changed strings will be removed. Use to fix typos and for minor changes in the source strings\n# e.g. "update_as_unapproved" or "update_without_changes"\n#\n#"update_option" : "",\n#\n# Start block (for XML only)\n#\n#\n# Defines whether to translate tags attributes.\n# e.g. 0 or 1 (Default is 1)\n#\n# "translate_attributes" : 1,\n#\n# Defines whether to translate texts placed inside the tags.\n# e.g. 0 or 1 (Default is 1)\n#\n# "translate_content" : 1,\n#\n# This is an array of strings, where each item is the XPaths to DOM element that should be imported\n# e.g. ["/content/text", "/content/text[@value]"]\n#\n# "translatable_elements" : [],\n#\n# Defines whether to split long texts into smaller text segments\n# e.g. 0 or 1 (Default is 1)\n#\n# "content_segmentation" : 1,\n#\n# End block (for XML only)\n#\n#\n# Start .properties block\n#\n#\n# Defines whether single quote should be escaped by another single quote or backslash in exported translations\n# e.g. 0 or 1 or 2 or 3 (Default is 3)\n# 0 - do not escape single quote;\n# 1 - escape single quote by another single quote;\n# 2 - escape single quote by backslash;\n# 3 - escape single quote by another single quote only in strings containing variables ( {0} ).\n#\n# "escape_quotes" : 3,\n#\n# Defines whether any special characters (=, :, ! and #) should be escaped by backslash in exported translations.\n# e.g. 0 or 1 (Default is 0)\n# 0 - do not escape special characters\n# 1 - escape special characters by a backslash\n#\n# "escape_special_characters": 0\n#\n#\n# End .properties block\n#\n#\n# Often software projects have custom names for the directories where translations are placed. crowdin-cli allows you to map your own languages to be understandable by Crowdin.\n#\n#"languages_mapping" : {\n# "two_letters_code" : {\n# "crowdin_language_code" : "local_name"\n# }\n#},\n#\n# Does the first line contain header?\n# e.g. true or false\n#\n#"first_line_contains_header" : true,\n#\n# for spreadsheets\n# e.g. "identifier,source_phrase,context,uk,ru,fr"\n#\n# "scheme" : "",\n'.split("\n").map(e=>!e.startsWith("#")&&e).filter(Boolean).join("\n")}),"\n",(0,s.jsx)(n.h3,{id:"machine-translation-mt-issue-linksimage-handling",children:"Machine Translation (MT) issue: links/image handling"}),"\n",(0,s.jsxs)(n.p,{children:["Crowdin recently rolled out some major changes to the markdown file format and now the links are treated differently than they were before. Before they were considered as tags, but now they appear as plain text. Because of these changes the plain text links are passed to the MT engine which attempts to translate the target, thus breaking the translation (for instance: this string ",(0,s.jsx)(n.code,{children:"Allez voir [ma merveilleuse page](/ma-merveilleuse-page)"})," is translated ",(0,s.jsx)(n.code,{children:"Check out [my wonderful page](/my-wonderful-page)"}),", and this breaks docusaurus i18n workflow as the page name should not be translated)."]}),"\n",(0,s.jsx)(n.p,{children:"As of 2023 Dec.7, they are not planning to change the logic of how links are treated, so you should have this in mind if you plan to use Crowdin with MT."})]})}function g(e={}){let{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}}}]); \ No newline at end of file diff --git a/assets/js/3c0a97de.2c1a879d.js b/assets/js/3c0a97de.2c1a879d.js new file mode 100644 index 0000000000..eede4a5b21 --- /dev/null +++ b/assets/js/3c0a97de.2c1a879d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[18597],{73343:e=>{e.exports=JSON.parse('{"allContent":{"docusaurus-plugin-content-docs":{"default":{"loadedVersions":[{"versionName":"current","label":"Canary \u{1F6A7}","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","path":"/docs","tagsPath":"/docs/tags","isLast":true,"routePriority":-1,"sidebarFilePath":"/home/runner/work/docusaurus/docusaurus/website/sidebars.ts","contentPath":"/home/runner/work/docusaurus/docusaurus/website/docs","contentPathLocalized":"/home/runner/work/docusaurus/docusaurus/website/i18n/en/docusaurus-plugin-content-docs/current","docs":[{"id":"advanced/architecture","title":"Architecture","description":"How Docusaurus works to build your app","source":"@site/docs/advanced/architecture.mdx","sourceDirName":"advanced","slug":"/advanced/architecture","permalink":"/docs/advanced/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/advanced/architecture.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"How Docusaurus works to build your app"},"sidebar":"docs","previous":{"title":"Advanced Tutorials","permalink":"/docs/advanced/"},"next":{"title":"Plugins","permalink":"/docs/advanced/plugins"}},{"id":"advanced/client","title":"Client architecture","description":"How the Docusaurus client is structured","source":"@site/docs/advanced/client.mdx","sourceDirName":"advanced","slug":"/advanced/client","permalink":"/docs/advanced/client","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/advanced/client.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"How the Docusaurus client is structured"},"sidebar":"docs","previous":{"title":"Static site generation","permalink":"/docs/advanced/ssg"},"next":{"title":"Upgrading Docusaurus","permalink":"/docs/migration"}},{"id":"advanced/index","title":"Advanced Tutorials","description":"This section is not going to be very structured, but we will cover the following topics:","source":"@site/docs/advanced/index.mdx","sourceDirName":"advanced","slug":"/advanced/","permalink":"/docs/advanced/","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/advanced/index.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"docs","previous":{"title":"What\'s next?","permalink":"/docs/guides/whats-next"},"next":{"title":"Architecture","permalink":"/docs/advanced/architecture"}},{"id":"advanced/plugins","title":"Plugins","description":"Plugins are the building blocks of features in a Docusaurus site. Each plugin handles its own individual feature. Plugins may work and be distributed as part of a bundle via presets.","source":"@site/docs/advanced/plugins.mdx","sourceDirName":"advanced","slug":"/advanced/plugins","permalink":"/docs/advanced/plugins","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/advanced/plugins.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"docs","previous":{"title":"Architecture","permalink":"/docs/advanced/architecture"},"next":{"title":"Routing","permalink":"/docs/advanced/routing"}},{"id":"advanced/routing","title":"Routing","description":"Docusaurus\' routing system follows single-page application conventions: one route, one component.","source":"@site/docs/advanced/routing.mdx","sourceDirName":"advanced","slug":"/advanced/routing","permalink":"/docs/advanced/routing","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/advanced/routing.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"Docusaurus\' routing system follows single-page application conventions: one route, one component."},"sidebar":"docs","previous":{"title":"Plugins","permalink":"/docs/advanced/plugins"},"next":{"title":"Static site generation","permalink":"/docs/advanced/ssg"}},{"id":"advanced/ssg","title":"Static site generation (SSG)","description":"Docusaurus statically renders your React code into HTML, allowing faster load speed and better SEO.","source":"@site/docs/advanced/ssg.mdx","sourceDirName":"advanced","slug":"/advanced/ssg","permalink":"/docs/advanced/ssg","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/advanced/ssg.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"sidebar_label":"Static site generation","description":"Docusaurus statically renders your React code into HTML, allowing faster load speed and better SEO."},"sidebar":"docs","previous":{"title":"Routing","permalink":"/docs/advanced/routing"},"next":{"title":"Client architecture","permalink":"/docs/advanced/client"}},{"id":"api/docusaurus.config.js","title":"docusaurus.config.js","description":"API reference for Docusaurus configuration file.","source":"@site/docs/api/docusaurus.config.js.mdx","sourceDirName":"api","slug":"/api/docusaurus-config","permalink":"/docs/api/docusaurus-config","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/docusaurus.config.js.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":0,"frontMatter":{"sidebar_position":0,"description":"API reference for Docusaurus configuration file.","slug":"/api/docusaurus-config"},"sidebar":"api","previous":{"title":"Client API","permalink":"/docs/docusaurus-core"},"next":{"title":"Plugin Method References","permalink":"/docs/api/plugin-methods/"}},{"id":"api/misc/create-docusaurus","title":"\u{1F4E6} create-docusaurus","description":"A scaffolding utility to help you instantly set up a functional Docusaurus app.","source":"@site/docs/api/misc/create-docusaurus.mdx","sourceDirName":"api/misc","slug":"/api/misc/create-docusaurus","permalink":"/docs/api/misc/create-docusaurus","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/create-docusaurus.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":0,"frontMatter":{"sidebar_position":0,"slug":"/api/misc/create-docusaurus"},"sidebar":"api","previous":{"title":"\u{1F4E6} theme-mermaid","permalink":"/docs/api/themes/@docusaurus/theme-mermaid"},"next":{"title":"\u{1F4E6} eslint-plugin","permalink":"/docs/api/misc/@docusaurus/eslint-plugin"}},{"id":"api/misc/eslint-plugin/no-html-links","title":"no-html-links","description":"Ensure that the Docusaurus ` component is used instead of ` tags.","source":"@site/docs/api/misc/eslint-plugin/no-html-links.mdx","sourceDirName":"api/misc/eslint-plugin","slug":"/api/misc/@docusaurus/eslint-plugin/no-html-links","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/no-html-links","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/eslint-plugin/no-html-links.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/api/misc/@docusaurus/eslint-plugin/no-html-links"},"sidebar":"api","previous":{"title":"\u{1F4E6} eslint-plugin","permalink":"/docs/api/misc/@docusaurus/eslint-plugin"},"next":{"title":"no-untranslated-text","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/no-untranslated-text"}},{"id":"api/misc/eslint-plugin/no-untranslated-text","title":"no-untranslated-text","description":"Enforce text labels in JSX to be wrapped by translate calls.","source":"@site/docs/api/misc/eslint-plugin/no-untranslated-text.mdx","sourceDirName":"api/misc/eslint-plugin","slug":"/api/misc/@docusaurus/eslint-plugin/no-untranslated-text","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/no-untranslated-text","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/eslint-plugin/no-untranslated-text.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/api/misc/@docusaurus/eslint-plugin/no-untranslated-text"},"sidebar":"api","previous":{"title":"no-html-links","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/no-html-links"},"next":{"title":"prefer-docusaurus-heading","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading"}},{"id":"api/misc/eslint-plugin/prefer-docusaurus-heading","title":"prefer-docusaurus-heading","description":"Ensures that the @theme/Heading theme component provided by Docusaurus theme-classic is used instead of `` tags for headings.","source":"@site/docs/api/misc/eslint-plugin/prefer-docusaurus-heading.mdx","sourceDirName":"api/misc/eslint-plugin","slug":"/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/eslint-plugin/prefer-docusaurus-heading.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading"},"sidebar":"api","previous":{"title":"no-untranslated-text","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/no-untranslated-text"},"next":{"title":"string-literal-i18n-messages","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages"}},{"id":"api/misc/eslint-plugin/README","title":"\u{1F4E6} eslint-plugin","description":"ESLint is a tool that statically analyzes your code and reports problems or suggests best practices through editor hints and command line. Docusaurus provides an ESLint plugin to enforce best Docusaurus practices.","source":"@site/docs/api/misc/eslint-plugin/README.mdx","sourceDirName":"api/misc/eslint-plugin","slug":"/api/misc/@docusaurus/eslint-plugin","permalink":"/docs/api/misc/@docusaurus/eslint-plugin","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/eslint-plugin/README.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1,"slug":"/api/misc/@docusaurus/eslint-plugin"},"sidebar":"api","previous":{"title":"\u{1F4E6} create-docusaurus","permalink":"/docs/api/misc/create-docusaurus"},"next":{"title":"no-html-links","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/no-html-links"}},{"id":"api/misc/eslint-plugin/string-literal-i18n-messages","title":"string-literal-i18n-messages","description":"Enforce translate APIs to be called on plain text labels.","source":"@site/docs/api/misc/eslint-plugin/string-literal-i18n-messages.mdx","sourceDirName":"api/misc/eslint-plugin","slug":"/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/eslint-plugin/string-literal-i18n-messages.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages"},"sidebar":"api","previous":{"title":"prefer-docusaurus-heading","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading"},"next":{"title":"\u{1F4E6} logger","permalink":"/docs/api/misc/@docusaurus/logger"}},{"id":"api/misc/logger/logger","title":"\u{1F4E6} logger","description":"An encapsulated logger for semantically formatting console messages.","source":"@site/docs/api/misc/logger/logger.mdx","sourceDirName":"api/misc/logger","slug":"/api/misc/@docusaurus/logger","permalink":"/docs/api/misc/@docusaurus/logger","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/logger/logger.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":2,"frontMatter":{"sidebar_position":2,"slug":"/api/misc/@docusaurus/logger"},"sidebar":"api","previous":{"title":"string-literal-i18n-messages","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages"}},{"id":"api/plugin-methods/extend-infrastructure","title":"Extending infrastructure","description":"Docusaurus has some infrastructure like hot reloading, CLI, and swizzling, that can be extended by external plugins.","source":"@site/docs/api/plugin-methods/extend-infrastructure.mdx","sourceDirName":"api/plugin-methods","slug":"/api/plugin-methods/extend-infrastructure","permalink":"/docs/api/plugin-methods/extend-infrastructure","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugin-methods/extend-infrastructure.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":2,"frontMatter":{"sidebar_position":2},"sidebar":"api","previous":{"title":"Lifecycle APIs","permalink":"/docs/api/plugin-methods/lifecycle-apis"},"next":{"title":"I18n lifecycles","permalink":"/docs/api/plugin-methods/i18n-lifecycles"}},{"id":"api/plugin-methods/i18n-lifecycles","title":"I18n lifecycles","description":"Plugins use these lifecycles to load i18n-related data.","source":"@site/docs/api/plugin-methods/i18n-lifecycles.mdx","sourceDirName":"api/plugin-methods","slug":"/api/plugin-methods/i18n-lifecycles","permalink":"/docs/api/plugin-methods/i18n-lifecycles","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugin-methods/i18n-lifecycles.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":3,"frontMatter":{"sidebar_position":3},"sidebar":"api","previous":{"title":"Extending infrastructure","permalink":"/docs/api/plugin-methods/extend-infrastructure"},"next":{"title":"Static methods","permalink":"/docs/api/plugin-methods/static-methods"}},{"id":"api/plugin-methods/lifecycle-apis","title":"Lifecycle APIs","description":"During the build, plugins are loaded in parallel to fetch their own contents and render them to routes. Plugins may also configure webpack or post-process the generated files.","source":"@site/docs/api/plugin-methods/lifecycle-apis.mdx","sourceDirName":"api/plugin-methods","slug":"/api/plugin-methods/lifecycle-apis","permalink":"/docs/api/plugin-methods/lifecycle-apis","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugin-methods/lifecycle-apis.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1,"toc_max_heading_level":4},"sidebar":"api","previous":{"title":"Plugin Method References","permalink":"/docs/api/plugin-methods/"},"next":{"title":"Extending infrastructure","permalink":"/docs/api/plugin-methods/extend-infrastructure"}},{"id":"api/plugin-methods/README","title":"Plugin Method References","description":"This section is a work in progress. Anchor links or even URLs are not guaranteed to be stable.","source":"@site/docs/api/plugin-methods/README.mdx","sourceDirName":"api/plugin-methods","slug":"/api/plugin-methods/","permalink":"/docs/api/plugin-methods/","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugin-methods/README.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"api","previous":{"title":"docusaurus.config.js","permalink":"/docs/api/docusaurus-config"},"next":{"title":"Lifecycle APIs","permalink":"/docs/api/plugin-methods/lifecycle-apis"}},{"id":"api/plugin-methods/static-methods","title":"Static methods","description":"Static methods are not part of the plugin instance\u2014they are attached to the constructor function. These methods are used to validate and normalize the plugin options and theme config, which are then used as constructor parameters to initialize the plugin instance.","source":"@site/docs/api/plugin-methods/static-methods.mdx","sourceDirName":"api/plugin-methods","slug":"/api/plugin-methods/static-methods","permalink":"/docs/api/plugin-methods/static-methods","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugin-methods/static-methods.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":4,"frontMatter":{"sidebar_position":4},"sidebar":"api","previous":{"title":"I18n lifecycles","permalink":"/docs/api/plugin-methods/i18n-lifecycles"},"next":{"title":"Plugins overview","permalink":"/docs/api/plugins"}},{"id":"api/plugins/plugin-client-redirects","title":"\u{1F4E6} plugin-client-redirects","description":"Docusaurus Plugin to generate client-side redirects.","source":"@site/docs/api/plugins/plugin-client-redirects.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-client-redirects","permalink":"/docs/api/plugins/@docusaurus/plugin-client-redirects","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-client-redirects.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":4,"frontMatter":{"sidebar_position":4,"slug":"/api/plugins/@docusaurus/plugin-client-redirects"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-content-pages","permalink":"/docs/api/plugins/@docusaurus/plugin-content-pages"},"next":{"title":"\u{1F4E6} plugin-debug","permalink":"/docs/api/plugins/@docusaurus/plugin-debug"}},{"id":"api/plugins/plugin-content-blog","title":"\u{1F4E6} plugin-content-blog","description":"Provides the Blog feature and is the default blog plugin for Docusaurus.","source":"@site/docs/api/plugins/plugin-content-blog.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-content-blog","permalink":"/docs/api/plugins/@docusaurus/plugin-content-blog","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-content-blog.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":2,"frontMatter":{"sidebar_position":2,"slug":"/api/plugins/@docusaurus/plugin-content-blog"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-content-docs","permalink":"/docs/api/plugins/@docusaurus/plugin-content-docs"},"next":{"title":"\u{1F4E6} plugin-content-pages","permalink":"/docs/api/plugins/@docusaurus/plugin-content-pages"}},{"id":"api/plugins/plugin-content-docs","title":"\u{1F4E6} plugin-content-docs","description":"Provides the Docs functionality and is the default docs plugin for Docusaurus.","source":"@site/docs/api/plugins/plugin-content-docs.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-content-docs","permalink":"/docs/api/plugins/@docusaurus/plugin-content-docs","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-content-docs.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1,"slug":"/api/plugins/@docusaurus/plugin-content-docs"},"sidebar":"api","previous":{"title":"Plugins overview","permalink":"/docs/api/plugins"},"next":{"title":"\u{1F4E6} plugin-content-blog","permalink":"/docs/api/plugins/@docusaurus/plugin-content-blog"}},{"id":"api/plugins/plugin-content-pages","title":"\u{1F4E6} plugin-content-pages","description":"The default pages plugin for Docusaurus. The classic template ships with this plugin with default configurations. This plugin provides creating pages functionality.","source":"@site/docs/api/plugins/plugin-content-pages.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-content-pages","permalink":"/docs/api/plugins/@docusaurus/plugin-content-pages","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-content-pages.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":3,"frontMatter":{"sidebar_position":3,"slug":"/api/plugins/@docusaurus/plugin-content-pages"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-content-blog","permalink":"/docs/api/plugins/@docusaurus/plugin-content-blog"},"next":{"title":"\u{1F4E6} plugin-client-redirects","permalink":"/docs/api/plugins/@docusaurus/plugin-client-redirects"}},{"id":"api/plugins/plugin-debug","title":"\u{1F4E6} plugin-debug","description":"The debug plugin will display useful debug information at http3000/docusaurus/debug.","source":"@site/docs/api/plugins/plugin-debug.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-debug","permalink":"/docs/api/plugins/@docusaurus/plugin-debug","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-debug.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":5,"frontMatter":{"sidebar_position":5,"slug":"/api/plugins/@docusaurus/plugin-debug"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-client-redirects","permalink":"/docs/api/plugins/@docusaurus/plugin-client-redirects"},"next":{"title":"\u{1F4E6} plugin-google-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-google-analytics"}},{"id":"api/plugins/plugin-google-analytics","title":"\u{1F4E6} plugin-google-analytics","description":"The default Google Analytics plugin. It is a JavaScript library for measuring how users interact with your website in the production build. If you are using Google Analytics 4 you might need to consider using plugin-google-gtag instead.","source":"@site/docs/api/plugins/plugin-google-analytics.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-google-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-google-analytics","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-google-analytics.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":6,"frontMatter":{"sidebar_position":6,"slug":"/api/plugins/@docusaurus/plugin-google-analytics"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-debug","permalink":"/docs/api/plugins/@docusaurus/plugin-debug"},"next":{"title":"\u{1F4E6} plugin-google-gtag","permalink":"/docs/api/plugins/@docusaurus/plugin-google-gtag"}},{"id":"api/plugins/plugin-google-gtag","title":"\u{1F4E6} plugin-google-gtag","description":"The default Global Site Tag (gtag.js) plugin. It is a JavaScript tagging framework and API that allows you to send event data to Google Analytics, Google Ads, and Google Marketing Platform. This section describes how to configure a Docusaurus site to enable global site tag for Google Analytics.","source":"@site/docs/api/plugins/plugin-google-gtag.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-google-gtag","permalink":"/docs/api/plugins/@docusaurus/plugin-google-gtag","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-google-gtag.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":7,"frontMatter":{"sidebar_position":7,"slug":"/api/plugins/@docusaurus/plugin-google-gtag"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-google-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-google-analytics"},"next":{"title":"\u{1F4E6} plugin-google-tag-manager","permalink":"/docs/api/plugins/@docusaurus/plugin-google-tag-manager"}},{"id":"api/plugins/plugin-google-tag-manager","title":"\u{1F4E6} plugin-google-tag-manager","description":"A plugin for adding Google Tag Manager (gtm.js) to a Docusaurus site. Use this plugin in conjunction with the standard gtag plugin for in-depth analysis of how users are using your site.","source":"@site/docs/api/plugins/plugin-google-tag-manager.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-google-tag-manager","permalink":"/docs/api/plugins/@docusaurus/plugin-google-tag-manager","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-google-tag-manager.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":8,"frontMatter":{"sidebar_position":8,"slug":"/api/plugins/@docusaurus/plugin-google-tag-manager"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-google-gtag","permalink":"/docs/api/plugins/@docusaurus/plugin-google-gtag"},"next":{"title":"\u{1F4E6} plugin-ideal-image","permalink":"/docs/api/plugins/@docusaurus/plugin-ideal-image"}},{"id":"api/plugins/plugin-ideal-image","title":"\u{1F4E6} plugin-ideal-image","description":"Docusaurus Plugin to generate an almost ideal image (responsive, lazy-loading, and low quality placeholder).","source":"@site/docs/api/plugins/plugin-ideal-image.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-ideal-image","permalink":"/docs/api/plugins/@docusaurus/plugin-ideal-image","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-ideal-image.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":8,"frontMatter":{"sidebar_position":8,"slug":"/api/plugins/@docusaurus/plugin-ideal-image"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-google-tag-manager","permalink":"/docs/api/plugins/@docusaurus/plugin-google-tag-manager"},"next":{"title":"\u{1F4E6} plugin-pwa","permalink":"/docs/api/plugins/@docusaurus/plugin-pwa"}},{"id":"api/plugins/plugin-pwa","title":"\u{1F4E6} plugin-pwa","description":"Docusaurus Plugin to add PWA support using Workbox. This plugin generates a Service Worker in production build only, and allows you to create fully PWA-compliant documentation site with offline and installation support.","source":"@site/docs/api/plugins/plugin-pwa.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-pwa","permalink":"/docs/api/plugins/@docusaurus/plugin-pwa","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-pwa.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":9,"frontMatter":{"sidebar_position":9,"slug":"/api/plugins/@docusaurus/plugin-pwa"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-ideal-image","permalink":"/docs/api/plugins/@docusaurus/plugin-ideal-image"},"next":{"title":"\u{1F4E6} plugin-sitemap","permalink":"/docs/api/plugins/@docusaurus/plugin-sitemap"}},{"id":"api/plugins/plugin-sitemap","title":"\u{1F4E6} plugin-sitemap","description":"This plugin creates sitemaps for your site so that search engine crawlers can crawl your site more accurately.","source":"@site/docs/api/plugins/plugin-sitemap.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-sitemap","permalink":"/docs/api/plugins/@docusaurus/plugin-sitemap","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-sitemap.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":10,"frontMatter":{"sidebar_position":10,"slug":"/api/plugins/@docusaurus/plugin-sitemap"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-pwa","permalink":"/docs/api/plugins/@docusaurus/plugin-pwa"},"next":{"title":"\u{1F4E6} plugin-vercel-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-vercel-analytics"}},{"id":"api/plugins/plugin-vercel-analytics","title":"\u{1F4E6} plugin-vercel-analytics","description":"Vercel Analytics provides comprehensive insights into your website\'s visitors, tracking top pages, referrers, and demographics like location, operating systems, and browser info.","source":"@site/docs/api/plugins/plugin-vercel-analytics.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-vercel-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-vercel-analytics","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-vercel-analytics.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":11,"frontMatter":{"sidebar_position":11,"slug":"/api/plugins/@docusaurus/plugin-vercel-analytics"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-sitemap","permalink":"/docs/api/plugins/@docusaurus/plugin-sitemap"},"next":{"title":"Themes overview","permalink":"/docs/api/themes"}},{"id":"api/plugins/plugins-overview","title":"Docusaurus plugins","description":"We provide official Docusaurus plugins.","source":"@site/docs/api/plugins/overview.mdx","sourceDirName":"api/plugins","slug":"/api/plugins","permalink":"/docs/api/plugins","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/overview.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":0,"frontMatter":{"sidebar_position":0,"id":"plugins-overview","sidebar_label":"Plugins overview","slug":"/api/plugins"},"sidebar":"api","previous":{"title":"Static methods","permalink":"/docs/api/plugin-methods/static-methods"},"next":{"title":"\u{1F4E6} plugin-content-docs","permalink":"/docs/api/plugins/@docusaurus/plugin-content-docs"}},{"id":"api/themes/theme-classic","title":"\u{1F4E6} theme-classic","description":"The classic theme for Docusaurus.","source":"@site/docs/api/themes/theme-classic.mdx","sourceDirName":"api/themes","slug":"/api/themes/@docusaurus/theme-classic","permalink":"/docs/api/themes/@docusaurus/theme-classic","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/theme-classic.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":2,"frontMatter":{"sidebar_position":2,"slug":"/api/themes/@docusaurus/theme-classic"},"sidebar":"api","previous":{"title":"Configuration","permalink":"/docs/api/themes/configuration"},"next":{"title":"\u{1F4E6} theme-live-codeblock","permalink":"/docs/api/themes/@docusaurus/theme-live-codeblock"}},{"id":"api/themes/theme-configuration","title":"Theme configuration","description":"This configuration applies to all main themes.","source":"@site/docs/api/themes/theme-configuration.mdx","sourceDirName":"api/themes","slug":"/api/themes/configuration","permalink":"/docs/api/themes/configuration","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/theme-configuration.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"Configuration","slug":"/api/themes/configuration","toc_max_heading_level":4},"sidebar":"api","previous":{"title":"Themes overview","permalink":"/docs/api/themes"},"next":{"title":"\u{1F4E6} theme-classic","permalink":"/docs/api/themes/@docusaurus/theme-classic"}},{"id":"api/themes/theme-live-codeblock","title":"\u{1F4E6} theme-live-codeblock","description":"This theme provides a @theme/CodeBlock component that is powered by react-live. You can read more on interactive code editor documentation.","source":"@site/docs/api/themes/theme-live-codeblock.mdx","sourceDirName":"api/themes","slug":"/api/themes/@docusaurus/theme-live-codeblock","permalink":"/docs/api/themes/@docusaurus/theme-live-codeblock","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/theme-live-codeblock.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":3,"frontMatter":{"sidebar_position":3,"slug":"/api/themes/@docusaurus/theme-live-codeblock"},"sidebar":"api","previous":{"title":"\u{1F4E6} theme-classic","permalink":"/docs/api/themes/@docusaurus/theme-classic"},"next":{"title":"\u{1F4E6} theme-search-algolia","permalink":"/docs/api/themes/@docusaurus/theme-search-algolia"}},{"id":"api/themes/theme-mermaid","title":"\u{1F4E6} theme-mermaid","description":"This theme provides a @theme/Mermaid component that is powered by mermaid. You can read more on diagrams documentation.","source":"@site/docs/api/themes/theme-mermaid.mdx","sourceDirName":"api/themes","slug":"/api/themes/@docusaurus/theme-mermaid","permalink":"/docs/api/themes/@docusaurus/theme-mermaid","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/theme-mermaid.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":5,"frontMatter":{"sidebar_position":5,"slug":"/api/themes/@docusaurus/theme-mermaid"},"sidebar":"api","previous":{"title":"\u{1F4E6} theme-search-algolia","permalink":"/docs/api/themes/@docusaurus/theme-search-algolia"},"next":{"title":"\u{1F4E6} create-docusaurus","permalink":"/docs/api/misc/create-docusaurus"}},{"id":"api/themes/theme-search-algolia","title":"\u{1F4E6} theme-search-algolia","description":"This theme provides a @theme/SearchBar component that integrates with Algolia DocSearch easily. Combined with @docusaurus/theme-classic, it provides a very easy search integration. You can read more on search documentation.","source":"@site/docs/api/themes/theme-search-algolia.mdx","sourceDirName":"api/themes","slug":"/api/themes/@docusaurus/theme-search-algolia","permalink":"/docs/api/themes/@docusaurus/theme-search-algolia","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/theme-search-algolia.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":4,"frontMatter":{"sidebar_position":4,"slug":"/api/themes/@docusaurus/theme-search-algolia"},"sidebar":"api","previous":{"title":"\u{1F4E6} theme-live-codeblock","permalink":"/docs/api/themes/@docusaurus/theme-live-codeblock"},"next":{"title":"\u{1F4E6} theme-mermaid","permalink":"/docs/api/themes/@docusaurus/theme-mermaid"}},{"id":"api/themes/themes-overview","title":"Docusaurus themes","description":"We provide official Docusaurus themes.","source":"@site/docs/api/themes/overview.mdx","sourceDirName":"api/themes","slug":"/api/themes","permalink":"/docs/api/themes","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/overview.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":0,"frontMatter":{"sidebar_position":0,"id":"themes-overview","sidebar_label":"Themes overview","slug":"/api/themes"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-vercel-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-vercel-analytics"},"next":{"title":"Configuration","permalink":"/docs/api/themes/configuration"}},{"id":"blog","title":"Blog","description":"Deploy a full-featured blog in no time with Docusaurus.","source":"@site/docs/blog.mdx","sourceDirName":".","slug":"/blog","permalink":"/docs/blog","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/blog.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"Deploy a full-featured blog in no time with Docusaurus."},"sidebar":"docs","previous":{"title":"Docs Multi-instance","permalink":"/docs/docs-multi-instance"},"next":{"title":"Markdown Features","permalink":"/docs/markdown-features"}},{"id":"browser-support","title":"Browser support","description":"How to keep a reasonable bundle size while ensuring sufficient browser support.","source":"@site/docs/browser-support.mdx","sourceDirName":".","slug":"/browser-support","permalink":"/docs/browser-support","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/browser-support.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"How to keep a reasonable bundle size while ensuring sufficient browser support."},"sidebar":"docs","previous":{"title":"Search","permalink":"/docs/search"},"next":{"title":"SEO","permalink":"/docs/seo"}},{"id":"cli","title":"CLI","description":"Docusaurus provides a set of scripts to help you generate, serve, and deploy your website.","source":"@site/docs/cli.mdx","sourceDirName":".","slug":"/cli","permalink":"/docs/cli","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/cli.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"Docusaurus provides a set of scripts to help you generate, serve, and deploy your website."},"sidebar":"api","next":{"title":"Client API","permalink":"/docs/docusaurus-core"}},{"id":"configuration","title":"Configuration","description":"Configuring your site\'s behavior through docusaurus.config.js and more.","source":"@site/docs/configuration.mdx","sourceDirName":".","slug":"/configuration","permalink":"/docs/configuration","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/configuration.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"Configuring your site\'s behavior through docusaurus.config.js and more."},"sidebar":"docs","previous":{"title":"Installation","permalink":"/docs/installation"},"next":{"title":"Playground","permalink":"/docs/playground"}},{"id":"deployment","title":"Deployment","description":"Deploy your Docusaurus app for production on a range of static site hosting services.","source":"@site/docs/deployment.mdx","sourceDirName":".","slug":"/deployment","permalink":"/docs/deployment","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/deployment.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"Deploy your Docusaurus app for production on a range of static site hosting services."},"sidebar":"docs","previous":{"title":"Using Plugins","permalink":"/docs/using-plugins"},"next":{"title":"i18n - Introduction","permalink":"/docs/i18n/introduction"}},{"id":"docusaurus-core","title":"Docusaurus Client API","description":"Docusaurus provides some APIs on the clients that can be helpful to you when building your site.","source":"@site/docs/docusaurus-core.mdx","sourceDirName":".","slug":"/docusaurus-core","permalink":"/docs/docusaurus-core","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/docusaurus-core.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"sidebar_label":"Client API"},"sidebar":"api","previous":{"title":"CLI","permalink":"/docs/cli"},"next":{"title":"docusaurus.config.js","permalink":"/docs/api/docusaurus-config"}},{"id":"guides/creating-pages","title":"Creating Pages","description":"In this section, we will learn about creating pages in Docusaurus.","source":"@site/docs/guides/creating-pages.mdx","sourceDirName":"guides","slug":"/creating-pages","permalink":"/docs/creating-pages","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/creating-pages.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/creating-pages","sidebar_label":"Pages"},"sidebar":"docs","previous":{"title":"Guides","permalink":"/docs/category/guides"},"next":{"title":"Introduction","permalink":"/docs/docs-introduction"}},{"id":"guides/docs/create-doc","title":"Create a doc","description":"Create a Markdown Document","source":"@site/docs/guides/docs/docs-create-doc.mdx","sourceDirName":"guides/docs","slug":"/create-doc","permalink":"/docs/create-doc","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/docs-create-doc.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"create-doc","description":"Create a Markdown Document","slug":"/create-doc"},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/docs/docs-introduction"},"next":{"title":"Sidebar","permalink":"/docs/sidebar"}},{"id":"guides/docs/introduction","title":"Docs Introduction","description":"The docs feature provides users with a way to organize Markdown files in a hierarchical format.","source":"@site/docs/guides/docs/docs-introduction.mdx","sourceDirName":"guides/docs","slug":"/docs-introduction","permalink":"/docs/docs-introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/docs-introduction.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"introduction","sidebar_label":"Introduction","slug":"/docs-introduction"},"sidebar":"docs","previous":{"title":"Pages","permalink":"/docs/creating-pages"},"next":{"title":"Create a doc","permalink":"/docs/create-doc"}},{"id":"guides/docs/multi-instance","title":"Docs Multi-instance","description":"Use multiple docs plugin instances on a single Docusaurus site.","source":"@site/docs/guides/docs/docs-multi-instance.mdx","sourceDirName":"guides/docs","slug":"/docs-multi-instance","permalink":"/docs/docs-multi-instance","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/docs-multi-instance.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"multi-instance","description":"Use multiple docs plugin instances on a single Docusaurus site.","slug":"/docs-multi-instance"},"sidebar":"docs","previous":{"title":"Versioning","permalink":"/docs/versioning"},"next":{"title":"Blog","permalink":"/docs/blog"}},{"id":"guides/docs/sidebar/autogenerated","title":"Autogenerated","description":"Docusaurus can create a sidebar automatically from your filesystem structure: each folder creates a sidebar category, and each file creates a doc link.","source":"@site/docs/guides/docs/sidebar/autogenerated.mdx","sourceDirName":"guides/docs/sidebar","slug":"/sidebar/autogenerated","permalink":"/docs/sidebar/autogenerated","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/sidebar/autogenerated.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/sidebar/autogenerated"},"sidebar":"docs","previous":{"title":"Sidebar items","permalink":"/docs/sidebar/items"},"next":{"title":"Using multiple sidebars","permalink":"/docs/sidebar/multiple-sidebars"}},{"id":"guides/docs/sidebar/index","title":"Sidebar","description":"Creating a sidebar is useful to:","source":"@site/docs/guides/docs/sidebar/index.mdx","sourceDirName":"guides/docs/sidebar","slug":"/sidebar","permalink":"/docs/sidebar","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/sidebar/index.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/sidebar"},"sidebar":"docs","previous":{"title":"Create a doc","permalink":"/docs/create-doc"},"next":{"title":"Sidebar items","permalink":"/docs/sidebar/items"}},{"id":"guides/docs/sidebar/items","title":"Sidebar items","description":"We have introduced three types of item types in the example in the previous section autogenerated, which we will explain in detail later.","source":"@site/docs/guides/docs/sidebar/items.mdx","sourceDirName":"guides/docs/sidebar","slug":"/sidebar/items","permalink":"/docs/sidebar/items","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/sidebar/items.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_max_heading_level":4,"slug":"/sidebar/items"},"sidebar":"docs","previous":{"title":"Sidebar","permalink":"/docs/sidebar"},"next":{"title":"Autogenerated","permalink":"/docs/sidebar/autogenerated"}},{"id":"guides/docs/sidebar/multiple-sidebars","title":"Using multiple sidebars","description":"You can create a sidebar for each set of Markdown files that you want to group together.","source":"@site/docs/guides/docs/sidebar/multiple-sidebars.mdx","sourceDirName":"guides/docs/sidebar","slug":"/sidebar/multiple-sidebars","permalink":"/docs/sidebar/multiple-sidebars","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/sidebar/multiple-sidebars.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/sidebar/multiple-sidebars"},"sidebar":"docs","previous":{"title":"Autogenerated","permalink":"/docs/sidebar/autogenerated"},"next":{"title":"Versioning","permalink":"/docs/versioning"}},{"id":"guides/docs/versioning","title":"Versioning","description":"You can use the versioning CLI to create a new documentation version based on the latest content in the docs directory. That specific set of documentation will then be preserved and accessible even as the documentation in the docs directory continues to evolve.","source":"@site/docs/guides/docs/versioning.mdx","sourceDirName":"guides/docs","slug":"/versioning","permalink":"/docs/versioning","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/versioning.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/versioning"},"sidebar":"docs","previous":{"title":"Using multiple sidebars","permalink":"/docs/sidebar/multiple-sidebars"},"next":{"title":"Docs Multi-instance","permalink":"/docs/docs-multi-instance"}},{"id":"guides/markdown-features/admonitions","title":"Admonitions","description":"Handling admonitions/callouts in Docusaurus Markdown","source":"@site/docs/guides/markdown-features/markdown-features-admonitions.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/admonitions","permalink":"/docs/markdown-features/admonitions","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-admonitions.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"admonitions","description":"Handling admonitions/callouts in Docusaurus Markdown","slug":"/markdown-features/admonitions"},"sidebar":"docs","previous":{"title":"Code blocks","permalink":"/docs/markdown-features/code-blocks"},"next":{"title":"Headings and Table of contents","permalink":"/docs/markdown-features/toc"}},{"id":"guides/markdown-features/assets","title":"Assets","description":"Handling assets in Docusaurus Markdown","source":"@site/docs/guides/markdown-features/markdown-features-assets.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/assets","permalink":"/docs/markdown-features/assets","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-assets.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"assets","description":"Handling assets in Docusaurus Markdown","slug":"/markdown-features/assets"},"sidebar":"docs","previous":{"title":"Headings and Table of contents","permalink":"/docs/markdown-features/toc"},"next":{"title":"Markdown links","permalink":"/docs/markdown-features/links"}},{"id":"guides/markdown-features/code-blocks","title":"Code blocks","description":"Handling code blocks in Docusaurus Markdown","source":"@site/docs/guides/markdown-features/markdown-features-code-blocks.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/code-blocks","permalink":"/docs/markdown-features/code-blocks","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-code-blocks.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"code-blocks","description":"Handling code blocks in Docusaurus Markdown","slug":"/markdown-features/code-blocks"},"sidebar":"docs","previous":{"title":"Tabs","permalink":"/docs/markdown-features/tabs"},"next":{"title":"Admonitions","permalink":"/docs/markdown-features/admonitions"}},{"id":"guides/markdown-features/diagrams","title":"Diagrams","description":"Writing diagrams with Mermaid","source":"@site/docs/guides/markdown-features/markdown-features-diagrams.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/diagrams","permalink":"/docs/markdown-features/diagrams","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-diagrams.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"diagrams","title":"Diagrams","description":"Writing diagrams with Mermaid","slug":"/markdown-features/diagrams"},"sidebar":"docs","previous":{"title":"Math Equations","permalink":"/docs/markdown-features/math-equations"},"next":{"title":"Head metadata","permalink":"/docs/markdown-features/head-metadata"}},{"id":"guides/markdown-features/head-metadata","title":"Head metadata","description":"Declaring page-specific head metadata through MDX","source":"@site/docs/guides/markdown-features/markdown-features-head-metadata.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/head-metadata","permalink":"/docs/markdown-features/head-metadata","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-head-metadata.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"head-metadata","description":"Declaring page-specific head metadata through MDX","slug":"/markdown-features/head-metadata"},"sidebar":"docs","previous":{"title":"Diagrams","permalink":"/docs/markdown-features/diagrams"},"next":{"title":"Styling and Layout","permalink":"/docs/styling-layout"}},{"id":"guides/markdown-features/introduction","title":"Markdown Features","description":"Docusaurus uses MDX. Find out more about Docusaurus-specific features when writing Markdown.","source":"@site/docs/guides/markdown-features/markdown-features-intro.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features","permalink":"/docs/markdown-features","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-intro.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"introduction","description":"Docusaurus uses MDX. Find out more about Docusaurus-specific features when writing Markdown.","slug":"/markdown-features"},"sidebar":"docs","previous":{"title":"Blog","permalink":"/docs/blog"},"next":{"title":"MDX and React","permalink":"/docs/markdown-features/react"}},{"id":"guides/markdown-features/links","title":"Markdown links","description":"Links to other pages in Markdown","source":"@site/docs/guides/markdown-features/markdown-features-links.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/links","permalink":"/docs/markdown-features/links","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-links.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"links","description":"Links to other pages in Markdown","slug":"/markdown-features/links"},"sidebar":"docs","previous":{"title":"Assets","permalink":"/docs/markdown-features/assets"},"next":{"title":"MDX Plugins","permalink":"/docs/markdown-features/plugins"}},{"id":"guides/markdown-features/math-equations","title":"Math Equations","description":"Writing LaTeX Math Equations","source":"@site/docs/guides/markdown-features/markdown-features-math-equations.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/math-equations","permalink":"/docs/markdown-features/math-equations","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-math-equations.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"math-equations","description":"Writing LaTeX Math Equations","slug":"/markdown-features/math-equations"},"sidebar":"docs","previous":{"title":"MDX Plugins","permalink":"/docs/markdown-features/plugins"},"next":{"title":"Diagrams","permalink":"/docs/markdown-features/diagrams"}},{"id":"guides/markdown-features/plugins","title":"MDX Plugins","description":"Using MDX plugins to expand Docusaurus Markdown functionalities","source":"@site/docs/guides/markdown-features/markdown-features-plugins.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/plugins","permalink":"/docs/markdown-features/plugins","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-plugins.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"plugins","description":"Using MDX plugins to expand Docusaurus Markdown functionalities","slug":"/markdown-features/plugins"},"sidebar":"docs","previous":{"title":"Markdown links","permalink":"/docs/markdown-features/links"},"next":{"title":"Math Equations","permalink":"/docs/markdown-features/math-equations"}},{"id":"guides/markdown-features/react","title":"MDX and React","description":"Using the power of React in Docusaurus Markdown documents, thanks to MDX","source":"@site/docs/guides/markdown-features/markdown-features-react.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/react","permalink":"/docs/markdown-features/react","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-react.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"react","description":"Using the power of React in Docusaurus Markdown documents, thanks to MDX","slug":"/markdown-features/react"},"sidebar":"docs","previous":{"title":"Markdown Features","permalink":"/docs/markdown-features"},"next":{"title":"Tabs","permalink":"/docs/markdown-features/tabs"}},{"id":"guides/markdown-features/tabs","title":"Tabs","description":"Using tabs inside Docusaurus Markdown","source":"@site/docs/guides/markdown-features/markdown-features-tabs.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/tabs","permalink":"/docs/markdown-features/tabs","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-tabs.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"tabs","description":"Using tabs inside Docusaurus Markdown","slug":"/markdown-features/tabs"},"sidebar":"docs","previous":{"title":"MDX and React","permalink":"/docs/markdown-features/react"},"next":{"title":"Code blocks","permalink":"/docs/markdown-features/code-blocks"}},{"id":"guides/markdown-features/toc","title":"Headings and Table of contents","description":"Customizing headings and table-of-contents in Markdown","source":"@site/docs/guides/markdown-features/markdown-features-toc.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/toc","permalink":"/docs/markdown-features/toc","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-toc.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"toc","description":"Customizing headings and table-of-contents in Markdown","slug":"/markdown-features/toc"},"sidebar":"docs","previous":{"title":"Admonitions","permalink":"/docs/markdown-features/admonitions"},"next":{"title":"Assets","permalink":"/docs/markdown-features/assets"}},{"id":"guides/whats-next","title":"What\'s next?","description":"Congratulations! You have understood most core features of Docusaurus now. You have:","source":"@site/docs/guides/whats-next.mdx","sourceDirName":"guides","slug":"/guides/whats-next","permalink":"/docs/guides/whats-next","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/whats-next.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"docs","previous":{"title":"Using Crowdin","permalink":"/docs/i18n/crowdin"},"next":{"title":"Advanced Tutorials","permalink":"/docs/advanced/"}},{"id":"i18n/crowdin","title":"i18n - Using Crowdin","description":"The i18n system of Docusaurus is decoupled from any translation software.","source":"@site/docs/i18n/i18n-crowdin.mdx","sourceDirName":"i18n","slug":"/i18n/crowdin","permalink":"/docs/i18n/crowdin","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/i18n/i18n-crowdin.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"crowdin","slug":"/i18n/crowdin","toc_max_heading_level":4},"sidebar":"docs","previous":{"title":"Using Git","permalink":"/docs/i18n/git"},"next":{"title":"What\'s next?","permalink":"/docs/guides/whats-next"}},{"id":"i18n/git","title":"i18n - Using git","description":"A possible translation strategy is to version control the translation files with Git (or any other VCS).","source":"@site/docs/i18n/i18n-git.mdx","sourceDirName":"i18n","slug":"/i18n/git","permalink":"/docs/i18n/git","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/i18n/i18n-git.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"git","slug":"/i18n/git"},"sidebar":"docs","previous":{"title":"Tutorial","permalink":"/docs/i18n/tutorial"},"next":{"title":"Using Crowdin","permalink":"/docs/i18n/crowdin"}},{"id":"i18n/introduction","title":"i18n - Introduction","description":"It is easy to translate a Docusaurus website with its internationalization (i18n) support.","source":"@site/docs/i18n/i18n-introduction.mdx","sourceDirName":"i18n","slug":"/i18n/introduction","permalink":"/docs/i18n/introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/i18n/i18n-introduction.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"introduction","slug":"/i18n/introduction"},"sidebar":"docs","previous":{"title":"Deployment","permalink":"/docs/deployment"},"next":{"title":"Tutorial","permalink":"/docs/i18n/tutorial"}},{"id":"i18n/tutorial","title":"i18n - Tutorial","description":"This tutorial will walk you through the basics of the Docusaurus i18n system.","source":"@site/docs/i18n/i18n-tutorial.mdx","sourceDirName":"i18n","slug":"/i18n/tutorial","permalink":"/docs/i18n/tutorial","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/i18n/i18n-tutorial.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"tutorial","description":"This tutorial will walk you through the basics of the Docusaurus i18n system.","slug":"/i18n/tutorial"},"sidebar":"docs","previous":{"title":"i18n - Introduction","permalink":"/docs/i18n/introduction"},"next":{"title":"Using Git","permalink":"/docs/i18n/git"}},{"id":"installation","title":"Installation","description":"How to install Docusaurus locally, and start a Docusaurus site in no time.","source":"@site/docs/installation.mdx","sourceDirName":".","slug":"/installation","permalink":"/docs/installation","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/installation.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"How to install Docusaurus locally, and start a Docusaurus site in no time."},"sidebar":"docs","previous":{"title":"Getting Started","permalink":"/docs/category/getting-started"},"next":{"title":"Configuration","permalink":"/docs/configuration"}},{"id":"introduction","title":"Introduction","description":"Docusaurus was designed from the ground up to be easily installed and used to get your website up and running quickly.","source":"@site/docs/introduction.mdx","sourceDirName":".","slug":"/","permalink":"/docs/","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/introduction.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"Docusaurus was designed from the ground up to be easily installed and used to get your website up and running quickly.","slug":"/"},"sidebar":"docs","next":{"title":"Getting Started","permalink":"/docs/category/getting-started"}},{"id":"migration/index","title":"Upgrading Docusaurus","description":"Docusaurus versioning is based on the major.minor.patch scheme and respects Semantic Versioning.","source":"@site/docs/migration/index.mdx","sourceDirName":"migration","slug":"/migration","permalink":"/docs/migration","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/index.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/migration"},"sidebar":"docs","previous":{"title":"Client architecture","permalink":"/docs/advanced/client"},"next":{"title":"To Docusaurus v3","permalink":"/docs/migration/v3"}},{"id":"migration/v2/migration-automated","title":"Automated migration","description":"The migration CLI automatically migrates your v1 website to a v2 website.","source":"@site/docs/migration/v2/migration-automated.mdx","sourceDirName":"migration/v2","slug":"/migration/v2/automated","permalink":"/docs/migration/v2/automated","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/v2/migration-automated.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/migration/v2/automated"},"sidebar":"docs","previous":{"title":"Overview","permalink":"/docs/migration/v2"},"next":{"title":"Manual migration","permalink":"/docs/migration/v2/manual"}},{"id":"migration/v2/migration-manual","title":"Manual migration","description":"This manual migration process should be run after the automated migration process, to complete the missing parts, or debug issues in the migration CLI output.","source":"@site/docs/migration/v2/migration-manual.mdx","sourceDirName":"migration/v2","slug":"/migration/v2/manual","permalink":"/docs/migration/v2/manual","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/v2/migration-manual.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/migration/v2/manual","toc_max_heading_level":4},"sidebar":"docs","previous":{"title":"Automated migration","permalink":"/docs/migration/v2/automated"},"next":{"title":"Versioned sites","permalink":"/docs/migration/v2/versioned-sites"}},{"id":"migration/v2/migration-overview","title":"Overview","description":"This doc guides you through migrating an existing Docusaurus 1 site to Docusaurus 2.","source":"@site/docs/migration/v2/migration-overview.mdx","sourceDirName":"migration/v2","slug":"/migration/v2","permalink":"/docs/migration/v2","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/v2/migration-overview.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/migration/v2"},"sidebar":"docs","previous":{"title":"To Docusaurus v3","permalink":"/docs/migration/v3"},"next":{"title":"Automated migration","permalink":"/docs/migration/v2/automated"}},{"id":"migration/v2/migration-translated-sites","title":"Translated sites","description":"This page explains how migrate a translated Docusaurus v1 site to Docusaurus v2.","source":"@site/docs/migration/v2/migration-translated-sites.mdx","sourceDirName":"migration/v2","slug":"/migration/v2/translated-sites","permalink":"/docs/migration/v2/translated-sites","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/v2/migration-translated-sites.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/migration/v2/translated-sites"},"sidebar":"docs","previous":{"title":"Versioned sites","permalink":"/docs/migration/v2/versioned-sites"}},{"id":"migration/v2/migration-versioned-sites","title":"Versioned sites","description":"Read up https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2#versioning first for problems in v1\'s approach.","source":"@site/docs/migration/v2/migration-versioned-sites.mdx","sourceDirName":"migration/v2","slug":"/migration/v2/versioned-sites","permalink":"/docs/migration/v2/versioned-sites","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/v2/migration-versioned-sites.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/migration/v2/versioned-sites"},"sidebar":"docs","previous":{"title":"Manual migration","permalink":"/docs/migration/v2/manual"},"next":{"title":"Translated sites","permalink":"/docs/migration/v2/translated-sites"}},{"id":"migration/v3","title":"Upgrading to Docusaurus v3","description":"This documentation will help you upgrade your site from Docusaurus v2 to Docusaurus v3.","source":"@site/docs/migration/v3.mdx","sourceDirName":"migration","slug":"/migration/v3","permalink":"/docs/migration/v3","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/v3.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/migration/v3","sidebar_label":"To Docusaurus v3"},"sidebar":"docs","previous":{"title":"Upgrading Docusaurus","permalink":"/docs/migration"},"next":{"title":"Overview","permalink":"/docs/migration/v2"}},{"id":"playground","title":"Playground","description":"Playgrounds allow you to run Docusaurus in your browser, without installing anything!","source":"@site/docs/playground.mdx","sourceDirName":".","slug":"/playground","permalink":"/docs/playground","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/playground.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"docs","previous":{"title":"Configuration","permalink":"/docs/configuration"},"next":{"title":"TypeScript Support","permalink":"/docs/typescript-support"}},{"id":"search","title":"Search","description":"There are a few options you can use to add search to your website:","source":"@site/docs/search.mdx","sourceDirName":".","slug":"/search","permalink":"/docs/search","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/search.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"keywords":["algolia","search"]},"sidebar":"docs","previous":{"title":"Static Assets","permalink":"/docs/static-assets"},"next":{"title":"Browser support","permalink":"/docs/browser-support"}},{"id":"seo","title":"Search engine optimization (SEO)","description":"How to make your Docusaurus site maximally search-engine-friendly.","source":"@site/docs/seo.mdx","sourceDirName":".","slug":"/seo","permalink":"/docs/seo","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/seo.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"How to make your Docusaurus site maximally search-engine-friendly.","sidebar_label":"SEO","keywords":["seo","positioning"]},"sidebar":"docs","previous":{"title":"Browser support","permalink":"/docs/browser-support"},"next":{"title":"Using Plugins","permalink":"/docs/using-plugins"}},{"id":"static-assets","title":"Static Assets","description":"Static assets are the non-code files that are directly copied to the build output. Learn about how they are handled and what the best practices of using static assets are.","source":"@site/docs/static-assets.mdx","sourceDirName":".","slug":"/static-assets","permalink":"/docs/static-assets","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/static-assets.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"Static assets are the non-code files that are directly copied to the build output. Learn about how they are handled and what the best practices of using static assets are."},"sidebar":"docs","previous":{"title":"Swizzling","permalink":"/docs/swizzling"},"next":{"title":"Search","permalink":"/docs/search"}},{"id":"styling-layout","title":"Styling and Layout","description":"A Docusaurus site is a pre-rendered single-page React application. You can style it the way you style React apps.","source":"@site/docs/styling-layout.mdx","sourceDirName":".","slug":"/styling-layout","permalink":"/docs/styling-layout","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/styling-layout.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"A Docusaurus site is a pre-rendered single-page React application. You can style it the way you style React apps."},"sidebar":"docs","previous":{"title":"Head metadata","permalink":"/docs/markdown-features/head-metadata"},"next":{"title":"Swizzling","permalink":"/docs/swizzling"}},{"id":"swizzling","title":"Swizzling","description":"Customize your site\'s appearance through creating your own theme components","source":"@site/docs/swizzling.mdx","sourceDirName":".","slug":"/swizzling","permalink":"/docs/swizzling","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/swizzling.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"Customize your site\'s appearance through creating your own theme components"},"sidebar":"docs","previous":{"title":"Styling and Layout","permalink":"/docs/styling-layout"},"next":{"title":"Static Assets","permalink":"/docs/static-assets"}},{"id":"typescript-support","title":"TypeScript Support","description":"Docusaurus is written in TypeScript and provides first-class TypeScript support.","source":"@site/docs/typescript-support.mdx","sourceDirName":".","slug":"/typescript-support","permalink":"/docs/typescript-support","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/typescript-support.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"Docusaurus is written in TypeScript and provides first-class TypeScript support."},"sidebar":"docs","previous":{"title":"Playground","permalink":"/docs/playground"},"next":{"title":"Guides","permalink":"/docs/category/guides"}},{"id":"using-plugins","title":"Using Plugins","description":"The Docusaurus core doesn\'t provide any feature of its own. All features are delegated to individual plugins: the docs feature provided by the docs plugin; the blog feature provided by the blog plugin; or individual pages provided by the pages plugin. If there are no plugins installed, the site won\'t contain any routes.","source":"@site/docs/using-plugins.mdx","sourceDirName":".","slug":"/using-plugins","permalink":"/docs/using-plugins","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/using-plugins.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"docs","previous":{"title":"SEO","permalink":"/docs/seo"},"next":{"title":"Deployment","permalink":"/docs/deployment"}}],"drafts":[],"sidebars":{"docs":[{"type":"doc","id":"introduction"},{"type":"category","label":"Getting Started","link":{"type":"generated-index","slug":"/category/getting-started","permalink":"/docs/category/getting-started"},"collapsed":false,"items":[{"type":"doc","id":"installation"},{"type":"doc","id":"configuration"},{"type":"doc","id":"playground"},{"type":"doc","id":"typescript-support"}],"collapsible":true},{"type":"category","label":"Guides","link":{"type":"generated-index","title":"Docusaurus Guides","description":"Let\'s learn about the most important Docusaurus concepts!","keywords":["guides"],"image":"/img/docusaurus.png","slug":"/category/guides","permalink":"/docs/category/guides"},"items":[{"type":"doc","id":"guides/creating-pages"},{"type":"category","label":"Docs","link":{"type":"doc","id":"guides/docs/introduction"},"items":[{"type":"doc","id":"guides/docs/create-doc"},{"type":"category","label":"Sidebar","link":{"type":"doc","id":"guides/docs/sidebar/index"},"items":[{"type":"doc","id":"guides/docs/sidebar/items"},{"type":"doc","id":"guides/docs/sidebar/autogenerated"},{"type":"doc","id":"guides/docs/sidebar/multiple-sidebars"}],"collapsed":true,"collapsible":true},{"type":"doc","id":"guides/docs/versioning"},{"type":"doc","id":"guides/docs/multi-instance"}],"collapsed":true,"collapsible":true},{"type":"doc","id":"blog"},{"type":"category","label":"Markdown Features","link":{"type":"doc","id":"guides/markdown-features/introduction"},"items":[{"type":"doc","id":"guides/markdown-features/react"},{"type":"doc","id":"guides/markdown-features/tabs"},{"type":"doc","id":"guides/markdown-features/code-blocks"},{"type":"doc","id":"guides/markdown-features/admonitions"},{"type":"doc","id":"guides/markdown-features/toc"},{"type":"doc","id":"guides/markdown-features/assets"},{"type":"doc","id":"guides/markdown-features/links"},{"type":"doc","id":"guides/markdown-features/plugins"},{"type":"doc","id":"guides/markdown-features/math-equations"},{"type":"doc","id":"guides/markdown-features/diagrams"},{"type":"doc","id":"guides/markdown-features/head-metadata"}],"collapsed":true,"collapsible":true},{"type":"doc","id":"styling-layout"},{"type":"doc","id":"swizzling"},{"type":"doc","id":"static-assets"},{"type":"doc","id":"search"},{"type":"doc","id":"browser-support"},{"type":"doc","id":"seo"},{"type":"doc","id":"using-plugins"},{"type":"doc","id":"deployment"},{"type":"category","label":"Internationalization","link":{"type":"doc","id":"i18n/introduction"},"items":[{"type":"doc","id":"i18n/tutorial","label":"Tutorial","translatable":true},{"type":"doc","id":"i18n/git","label":"Using Git","translatable":true},{"type":"doc","id":"i18n/crowdin","label":"Using Crowdin","translatable":true}],"collapsed":true,"collapsible":true},{"type":"doc","id":"guides/whats-next"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Advanced Guides","link":{"type":"doc","id":"advanced/index"},"items":[{"type":"doc","id":"advanced/architecture"},{"type":"doc","id":"advanced/plugins"},{"type":"doc","id":"advanced/routing"},{"type":"doc","id":"advanced/ssg"},{"type":"doc","id":"advanced/client"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Upgrading","link":{"type":"doc","id":"migration/index"},"items":[{"type":"doc","id":"migration/v3"},{"type":"category","label":"To Docusaurus v2","items":[{"type":"doc","id":"migration/v2/migration-overview"},{"type":"doc","id":"migration/v2/migration-automated"},{"type":"doc","id":"migration/v2/migration-manual"},{"type":"doc","id":"migration/v2/migration-versioned-sites"},{"type":"doc","id":"migration/v2/migration-translated-sites"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"api":[{"type":"doc","id":"cli"},{"type":"doc","id":"docusaurus-core"},{"type":"doc","id":"api/docusaurus.config.js"},{"type":"category","label":"Plugin method references","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"api/plugin-methods/lifecycle-apis"},{"type":"doc","id":"api/plugin-methods/extend-infrastructure"},{"type":"doc","id":"api/plugin-methods/i18n-lifecycles"},{"type":"doc","id":"api/plugin-methods/static-methods"}],"link":{"type":"doc","id":"api/plugin-methods/README"}},{"type":"category","label":"Plugins","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"api/plugins/plugin-content-docs"},{"type":"doc","id":"api/plugins/plugin-content-blog"},{"type":"doc","id":"api/plugins/plugin-content-pages"},{"type":"doc","id":"api/plugins/plugin-client-redirects"},{"type":"doc","id":"api/plugins/plugin-debug"},{"type":"doc","id":"api/plugins/plugin-google-analytics"},{"type":"doc","id":"api/plugins/plugin-google-gtag"},{"type":"doc","id":"api/plugins/plugin-google-tag-manager"},{"type":"doc","id":"api/plugins/plugin-ideal-image"},{"type":"doc","id":"api/plugins/plugin-pwa"},{"type":"doc","id":"api/plugins/plugin-sitemap"},{"type":"doc","id":"api/plugins/plugin-vercel-analytics"}],"link":{"type":"doc","id":"api/plugins/plugins-overview"}},{"type":"category","label":"Themes","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"api/themes/theme-configuration","label":"Configuration"},{"type":"doc","id":"api/themes/theme-classic"},{"type":"doc","id":"api/themes/theme-live-codeblock"},{"type":"doc","id":"api/themes/theme-search-algolia"},{"type":"doc","id":"api/themes/theme-mermaid"}],"link":{"type":"doc","id":"api/themes/themes-overview"}},{"type":"category","label":"Miscellaneous","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"api/misc/create-docusaurus"},{"type":"category","label":"\u{1F4E6} eslint-plugin","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"api/misc/eslint-plugin/no-html-links"},{"type":"doc","id":"api/misc/eslint-plugin/no-untranslated-text"},{"type":"doc","id":"api/misc/eslint-plugin/prefer-docusaurus-heading"},{"type":"doc","id":"api/misc/eslint-plugin/string-literal-i18n-messages"}],"link":{"type":"doc","id":"api/misc/eslint-plugin/README"}},{"type":"doc","label":"\u{1F4E6} logger","id":"api/misc/logger/logger"}]}]}}]},"community":{"loadedVersions":[{"versionName":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","path":"/community","tagsPath":"/community/tags","isLast":true,"routePriority":-1,"sidebarFilePath":"/home/runner/work/docusaurus/docusaurus/website/sidebarsCommunity.js","contentPath":"/home/runner/work/docusaurus/docusaurus/website/community","contentPathLocalized":"/home/runner/work/docusaurus/docusaurus/website/i18n/en/docusaurus-plugin-content-docs-community/current","docs":[{"id":"canary","title":"Canary releases","description":"Docusaurus has a canary releases system.","source":"@site/community/4-canary.mdx","sourceDirName":".","slug":"/canary","permalink":"/community/canary","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/4-canary.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":4,"frontMatter":{},"sidebar":"community","previous":{"title":"Contributing","permalink":"/community/contributing"},"next":{"title":"Release process","permalink":"/community/release-process"}},{"id":"contributing","title":"Contributing","description":"","source":"@site/community/3-contributing.mdx","sourceDirName":".","slug":"/contributing","permalink":"/community/contributing","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/3-contributing.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":3,"frontMatter":{"title":"Contributing","hide_title":true,"sidebar_label":"Contributing"},"sidebar":"community","previous":{"title":"Awesome Resources","permalink":"/community/resources"},"next":{"title":"Canary releases","permalink":"/community/canary"}},{"id":"release-process","title":"Release process","description":"Let\'s see how Docusaurus handles versioning, releases and breaking changes.","source":"@site/community/5-release-process.mdx","sourceDirName":".","slug":"/release-process","permalink":"/community/release-process","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/5-release-process.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":5,"frontMatter":{},"sidebar":"community","previous":{"title":"Canary releases","permalink":"/community/canary"}},{"id":"resources","title":"Awesome Resources","description":"A curated list of interesting Docusaurus community projects.","source":"@site/community/2-resources.mdx","sourceDirName":".","slug":"/resources","permalink":"/community/resources","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/2-resources.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":2,"frontMatter":{},"sidebar":"community","previous":{"title":"Team","permalink":"/community/team"},"next":{"title":"Contributing","permalink":"/community/contributing"}},{"id":"support","title":"Support","description":"Docusaurus has a community of thousands of developers.","source":"@site/community/0-support.mdx","sourceDirName":".","slug":"/support","permalink":"/community/support","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/0-support.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":0,"frontMatter":{},"sidebar":"community","next":{"title":"Team","permalink":"/community/team"}},{"id":"team","title":"Team","description":"Active Team","source":"@site/community/1-team.mdx","sourceDirName":".","slug":"/team","permalink":"/community/team","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/1-team.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":1,"frontMatter":{},"sidebar":"community","previous":{"title":"Support","permalink":"/community/support"},"next":{"title":"Awesome Resources","permalink":"/community/resources"}}],"drafts":[],"sidebars":{"community":[{"type":"doc","id":"support"},{"type":"doc","id":"team"},{"type":"doc","id":"resources"},{"type":"doc","id":"contributing","label":"Contributing"},{"type":"doc","id":"canary"},{"type":"doc","id":"release-process"},{"type":"link","href":"/changelog","label":"Changelog"},{"type":"link","href":"/showcase","label":"Showcase"},{"type":"link","href":"/feature-requests","label":"Feature Requests"},{"type":"link","label":"Chat with us on Discord","href":"https://discord.gg/docusaurus"}]}}]},"docs-tests":{"loadedVersions":[{"versionName":"current","label":"Next","banner":null,"badge":false,"noIndex":true,"className":"docs-version-current","path":"/tests/docs","tagsPath":"/tests/docs/tags","isLast":true,"routePriority":-1,"sidebarFilePath":"/home/runner/work/docusaurus/docusaurus/website/_dogfooding/docs-tests-sidebars.js","contentPath":"/home/runner/work/docusaurus/docusaurus/website/_dogfooding/_docs tests","contentPathLocalized":"/home/runner/work/docusaurus/docusaurus/website/i18n/en/docusaurus-plugin-content-docs-docs-tests/current","docs":[{"id":"beginner\'s guide","title":"Beginner\'s guide","description":"#9160","source":"@site/_dogfooding/_docs tests/beginner\'s guide.mdx","sourceDirName":".","slug":"/beginner\'s guide","permalink":"/tests/docs/beginner\'s guide","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{}},{"id":"doc-with-another-sidebar","title":"Doc with another sidebar","description":"My link appears in a sidebar, but I want to display another sidebar...","source":"@site/_dogfooding/_docs tests/doc-with-another-sidebar.mdx","sourceDirName":".","slug":"/doc-with-another-sidebar","permalink":"/tests/docs/doc-with-another-sidebar","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"displayed_sidebar":"anotherSidebar"},"sidebar":"anotherSidebar"},{"id":"doc-with-last-update","title":"Doc With Last Update Front Matter","description":"","source":"@site/_dogfooding/_docs tests/doc-with-last-update.mdx","sourceDirName":".","slug":"/doc-with-last-update","permalink":"/tests/docs/doc-with-last-update","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"custom author","lastUpdatedAt":946684800000,"frontMatter":{"last_update":{"author":"custom author","date":"1/1/2000"}},"sidebar":"sidebar","previous":{"title":"Doc with another sidebar","permalink":"/tests/docs/doc-with-another-sidebar"},"next":{"title":"Tests","permalink":"/tests/docs/category/tests"}},{"id":"doc-without-sidebar","title":"Doc without sidebar","description":"My link appears in a sidebar, but I don\'t want to display that...","source":"@site/_dogfooding/_docs tests/doc-without-sidebar.mdx","sourceDirName":".","slug":"/doc-without-sidebar","permalink":"/tests/docs/doc-without-sidebar","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"displayed_sidebar":null}},{"id":"dummy","title":"Just a dummy page","description":"","source":"@site/_dogfooding/_docs tests/dummy.mdx","sourceDirName":".","slug":"/dummy.html","permalink":"/tests/docs/dummy.html","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"dummy.html"},"sidebar":"anotherSidebar"},{"id":"folder with space/doc 1","title":"Doc 1","description":"Inside folder with space","source":"@site/_dogfooding/_docs tests/folder with space/doc 1.mdx","sourceDirName":"folder with space","slug":"/folder with space/doc 1","permalink":"/tests/docs/folder with space/doc 1","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{}},{"id":"folder with space/doc 2","title":"Doc 2","description":"Inside folder with space","source":"@site/_dogfooding/_docs tests/folder with space/doc 2.mdx","sourceDirName":"folder with space","slug":"/folder with space/doc 2","permalink":"/tests/docs/folder with space/doc 2","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{}},{"id":"index","title":"Docs tests","description":"This Docusaurus docs plugin instance is meant to test fancy edge-cases that regular unit tests don\'t really cover.","source":"@site/_dogfooding/_docs tests/index.mdx","sourceDirName":".","slug":"/","permalink":"/tests/docs/","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"A","permalink":"/tests/docs/tags/a","description":"Description for tag a"},{"inline":false,"label":"Label for tag b","permalink":"/tests/docs/tags/b"},{"inline":false,"label":"C","permalink":"/tests/docs/tags/permalink-for-tag-c"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/","tags":["a","b","c"],"unlisted":true,"id":"index","sidebar_label":"Docs tests"},"sidebar":"sidebar"},{"id":"more-test","title":"Another test page","description":"Test link","source":"@site/_dogfooding/_docs tests/more-test.mdx","sourceDirName":".","slug":"/more-test","permalink":"/tests/docs/more-test","draft":false,"unlisted":false,"tags":[{"inline":false,"label":"A","permalink":"/tests/docs/tags/a","description":"Description for tag a"},{"inline":false,"label":"Label for tag e","permalink":"/tests/docs/tags/permalink-for-tag-e","description":"Description for tag e"},{"inline":false,"label":"Some-tag","permalink":"/tests/docs/tags/some-tag"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"tags":["a","e","some-tag"]},"sidebar":"sidebar","previous":{"title":"Another category with index","permalink":"/tests/docs/category/another-category-with-index"},"next":{"title":"toc-2-2","permalink":"/tests/docs/toc/toc-2-2"}},{"id":"standalone","title":"Standalone doc","description":"This doc is not in any sidebar, on purpose, to measure the build size impact of the huge sidebar","source":"@site/_dogfooding/_docs tests/standalone.mdx","sourceDirName":".","slug":"/standalone","permalink":"/tests/docs/standalone","draft":false,"unlisted":false,"tags":[{"inline":false,"label":"Label for tag b","permalink":"/tests/docs/tags/b"},{"inline":false,"label":"D","permalink":"/tests/docs/tags/d"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"tags":["b","d"]}},{"id":"tests/admonitions","title":"Admonitions tests","description":"Empty content","source":"@site/_dogfooding/_docs tests/tests/admonitions.mdx","sourceDirName":"tests","slug":"/tests/admonitions","permalink":"/tests/docs/tests/admonitions","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Case-Sensitive doc","permalink":"/tests/docs/tests/Case-Sentitive-Doc"},"next":{"title":"\xe6\xf8\xe5","permalink":"/tests/docs/tests/ascii/folder/\xe6\xf8\xe5"}},{"id":"tests/ascii/\xe6\xf8\xe5/index","title":"index","description":"Dogfood test for https://github.com/facebook/docusaurus/pull/8137","source":"@site/_dogfooding/_docs tests/tests/ascii/\xe6\xf8\xe5/index.mdx","sourceDirName":"tests/ascii/\xe6\xf8\xe5","slug":"/tests/ascii/\xe6\xf8\xe5/","permalink":"/tests/docs/tests/ascii/\xe6\xf8\xe5/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"\xe6\xf8\xe5","permalink":"/tests/docs/tests/ascii/folder/\xe6\xf8\xe5"},"next":{"title":"Category Links","permalink":"/tests/docs/category-links-generated-index-slug"}},{"id":"tests/ascii/folder/\xe6\xf8\xe5","title":"\xe6\xf8\xe5","description":"Dogfood test for https://github.com/facebook/docusaurus/pull/8137","source":"@site/_dogfooding/_docs tests/tests/ascii/folder/\xe6\xf8\xe5.mdx","sourceDirName":"tests/ascii/folder","slug":"/tests/ascii/folder/\xe6\xf8\xe5","permalink":"/tests/docs/tests/ascii/folder/\xe6\xf8\xe5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Admonitions tests","permalink":"/tests/docs/tests/admonitions"},"next":{"title":"index","permalink":"/tests/docs/tests/ascii/\xe6\xf8\xe5/"}},{"id":"tests/Case-Sentitive-Doc","title":"Case-Sensitive doc","description":"This doc has uppercase and lowercase chars in its filename, and thus in its path / slug.","source":"@site/_dogfooding/_docs tests/tests/Case-Sentitive-Doc.mdx","sourceDirName":"tests","slug":"/tests/Case-Sentitive-Doc","permalink":"/tests/docs/tests/Case-Sentitive-Doc","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Tests","permalink":"/tests/docs/category/tests"},"next":{"title":"Admonitions tests","permalink":"/tests/docs/tests/admonitions"}},{"id":"tests/category-links/custom-index-convention/intro","title":"Introduction","description":"This file is called intro.md. Typically, it won\'t be selected by the convention; however, it is in this case, because we have used a custom one.","source":"@site/_dogfooding/_docs tests/tests/category-links/custom-index-convention/intro.mdx","sourceDirName":"tests/category-links/custom-index-convention","slug":"/tests/category-links/custom-index-convention/intro","permalink":"/tests/docs/tests/category-links/custom-index-convention/intro","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Category Links","permalink":"/tests/docs/category-links-generated-index-slug"},"next":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/custom-index-convention/sample-doc"}},{"id":"tests/category-links/custom-index-convention/sample-doc","title":"Sample doc","description":"Lorem Ipsum","source":"@site/_dogfooding/_docs tests/tests/category-links/custom-index-convention/sample-doc.mdx","sourceDirName":"tests/category-links/custom-index-convention","slug":"/tests/category-links/custom-index-convention/sample-doc","permalink":"/tests/docs/tests/category-links/custom-index-convention/sample-doc","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Introduction","permalink":"/tests/docs/tests/category-links/custom-index-convention/intro"},"next":{"title":"Index","permalink":"/tests/docs/tests/category-links/no-index-doc/"}},{"id":"tests/category-links/no-index-doc/index","title":"Index","description":"This file (index.md) is supposed to be a category index, but it isn\'t because we have set link: null in the category.json.","source":"@site/_dogfooding/_docs tests/tests/category-links/no-index-doc/index.mdx","sourceDirName":"tests/category-links/no-index-doc","slug":"/tests/category-links/no-index-doc/","permalink":"/tests/docs/tests/category-links/no-index-doc/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/custom-index-convention/sample-doc"},"next":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/no-index-doc/sample-doc"}},{"id":"tests/category-links/no-index-doc/sample-doc","title":"Sample doc","description":"Lorem Ipsum","source":"@site/_dogfooding/_docs tests/tests/category-links/no-index-doc/sample-doc.mdx","sourceDirName":"tests/category-links/no-index-doc","slug":"/tests/category-links/no-index-doc/sample-doc","permalink":"/tests/docs/tests/category-links/no-index-doc/sample-doc","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Index","permalink":"/tests/docs/tests/category-links/no-index-doc/"},"next":{"title":"No sub-docs","permalink":"/tests/docs/tests/category-links/no-subdoc/"}},{"id":"tests/category-links/no-subdoc/index","title":"No sub-docs","description":"The only doc of this category is the index page. It should show up as a regular doc link.","source":"@site/_dogfooding/_docs tests/tests/category-links/no-subdoc/index.mdx","sourceDirName":"tests/category-links/no-subdoc","slug":"/tests/category-links/no-subdoc/","permalink":"/tests/docs/tests/category-links/no-subdoc/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/no-index-doc/sample-doc"},"next":{"title":"Readme","permalink":"/tests/docs/tests/category-links/"}},{"id":"tests/category-links/readme","title":"Readme","description":"This readme.md should not be used as the category index due to the category.json link","source":"@site/_dogfooding/_docs tests/tests/category-links/readme.mdx","sourceDirName":"tests/category-links","slug":"/tests/category-links/","permalink":"/tests/docs/tests/category-links/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"No sub-docs","permalink":"/tests/docs/tests/category-links/no-subdoc/"},"next":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/regular-category/sample-doc"}},{"id":"tests/category-links/regular-category/sample-doc","title":"Sample doc","description":"Lorem Ipsum","source":"@site/_dogfooding/_docs tests/tests/category-links/regular-category/sample-doc.mdx","sourceDirName":"tests/category-links/regular-category","slug":"/tests/category-links/regular-category/sample-doc","permalink":"/tests/docs/tests/category-links/regular-category/sample-doc","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Readme","permalink":"/tests/docs/tests/category-links/"},"next":{"title":"Category with a doc of category\'s name","permalink":"/tests/docs/tests/category-links/with-category-name-doc/"}},{"id":"tests/category-links/with-category-name-doc/sample-doc","title":"Sample doc","description":"Lorem Ipsum","source":"@site/_dogfooding/_docs tests/tests/category-links/with-category-name-doc/sample-doc.mdx","sourceDirName":"tests/category-links/with-category-name-doc","slug":"/tests/category-links/with-category-name-doc/sample-doc","permalink":"/tests/docs/tests/category-links/with-category-name-doc/sample-doc","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Category with a doc of category\'s name","permalink":"/tests/docs/tests/category-links/with-category-name-doc/"},"next":{"title":"Category with index.md doc","permalink":"/tests/docs/tests/category-links/with-index-doc/"}},{"id":"tests/category-links/with-category-name-doc/with-category-name-doc","title":"Category with a doc of category\'s name","description":"You should be able to click on the category and browse this /.md doc","source":"@site/_dogfooding/_docs tests/tests/category-links/with-category-name-doc/with-category-name-doc.mdx","sourceDirName":"tests/category-links/with-category-name-doc","slug":"/tests/category-links/with-category-name-doc/","permalink":"/tests/docs/tests/category-links/with-category-name-doc/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/regular-category/sample-doc"},"next":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/with-category-name-doc/sample-doc"}},{"id":"tests/category-links/with-index-doc/index","title":"Category with index.md doc","description":"You should be able to click on the category and browse this index.md doc","source":"@site/_dogfooding/_docs tests/tests/category-links/with-index-doc/index.mdx","sourceDirName":"tests/category-links/with-index-doc","slug":"/tests/category-links/with-index-doc/","permalink":"/tests/docs/tests/category-links/with-index-doc/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/with-category-name-doc/sample-doc"},"next":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/with-index-doc/sample-doc"}},{"id":"tests/category-links/with-index-doc/sample-doc","title":"Sample doc","description":"Lorem Ipsum","source":"@site/_dogfooding/_docs tests/tests/category-links/with-index-doc/sample-doc.mdx","sourceDirName":"tests/category-links/with-index-doc","slug":"/tests/category-links/with-index-doc/sample-doc","permalink":"/tests/docs/tests/category-links/with-index-doc/sample-doc","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Category with index.md doc","permalink":"/tests/docs/tests/category-links/with-index-doc/"},"next":{"title":"Category with readme.md doc","permalink":"/tests/docs/tests/category-links/with-readme-doc/"}},{"id":"tests/category-links/with-readme-doc/README","title":"Category with readme.md doc","description":"You should be able to click on the category and browse this readme.md doc","source":"@site/_dogfooding/_docs tests/tests/category-links/with-readme-doc/README.mdx","sourceDirName":"tests/category-links/with-readme-doc","slug":"/tests/category-links/with-readme-doc/","permalink":"/tests/docs/tests/category-links/with-readme-doc/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/with-index-doc/sample-doc"},"next":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/with-readme-doc/sample-doc"}},{"id":"tests/category-links/with-readme-doc/sample-doc","title":"Sample doc","description":"Lorem Ipsum","source":"@site/_dogfooding/_docs tests/tests/category-links/with-readme-doc/sample-doc.mdx","sourceDirName":"tests/category-links/with-readme-doc","slug":"/tests/category-links/with-readme-doc/sample-doc","permalink":"/tests/docs/tests/category-links/with-readme-doc/sample-doc","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Category with readme.md doc","permalink":"/tests/docs/tests/category-links/with-readme-doc/"},"next":{"title":"Custom Props","permalink":"/tests/docs/tests/custom-props/"}},{"id":"tests/custom-props/doc-with-custom-props","title":"Doc with Custom Props","description":"This doc has custom props.","source":"@site/_dogfooding/_docs tests/tests/custom-props/doc-with-custom-props.mdx","sourceDirName":"tests/custom-props","slug":"/tests/custom-props/doc-with-custom-props","permalink":"/tests/docs/tests/custom-props/doc-with-custom-props","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"sidebar_custom_props":{"prop":"custom","number":1,"boolean":true}},"sidebar":"sidebar","previous":{"title":"Custom Props","permalink":"/tests/docs/tests/custom-props/"},"next":{"title":"Doc Without Custom Props","permalink":"/tests/docs/tests/custom-props/doc-without-custom-props"}},{"id":"tests/custom-props/doc-without-custom-props","title":"Doc Without Custom Props","description":"This doc doesn\'t have custom props.","source":"@site/_dogfooding/_docs tests/tests/custom-props/doc-without-custom-props.mdx","sourceDirName":"tests/custom-props","slug":"/tests/custom-props/doc-without-custom-props","permalink":"/tests/docs/tests/custom-props/doc-without-custom-props","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Doc with Custom Props","permalink":"/tests/docs/tests/custom-props/doc-with-custom-props"},"next":{"title":"Image tests","permalink":"/tests/docs/tests/img-tests"}},{"id":"tests/custom-props/index","title":"Custom Props","description":"","source":"@site/_dogfooding/_docs tests/tests/custom-props/index.mdx","sourceDirName":"tests/custom-props","slug":"/tests/custom-props/","permalink":"/tests/docs/tests/custom-props/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/with-readme-doc/sample-doc"},"next":{"title":"Doc with Custom Props","permalink":"/tests/docs/tests/custom-props/doc-with-custom-props"}},{"id":"tests/img-tests","title":"Image tests","description":"URL encoded image","source":"@site/_dogfooding/_docs tests/tests/img-tests.mdx","sourceDirName":"tests","slug":"/tests/img-tests","permalink":"/tests/docs/tests/img-tests","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"image":"./img/oss_logo.png"},"sidebar":"sidebar","previous":{"title":"Doc Without Custom Props","permalink":"/tests/docs/tests/custom-props/doc-without-custom-props"},"next":{"title":"Import Bad Package","permalink":"/tests/docs/tests/import-bad-package"}},{"id":"tests/import-bad-package","title":"Import Bad Package","description":"We are importing MDX content from a file that is in a package that has a bad React version.","source":"@site/_dogfooding/_docs tests/tests/import-bad-package.mdx","sourceDirName":"tests","slug":"/tests/import-bad-package","permalink":"/tests/docs/tests/import-bad-package","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Image tests","permalink":"/tests/docs/tests/img-tests"},"next":{"title":"Broken Anchors tests","permalink":"/tests/docs/tests/links/broken-anchors-tests"}},{"id":"tests/links/broken-anchors-tests","title":"Broken Anchors tests","description":"Markdown link to above anchor","source":"@site/_dogfooding/_docs tests/tests/links/broken-anchors-tests.mdx","sourceDirName":"tests/links","slug":"/tests/links/broken-anchors-tests","permalink":"/tests/docs/tests/links/broken-anchors-tests","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Import Bad Package","permalink":"/tests/docs/tests/import-bad-package"},"next":{"title":"Target doc","permalink":"/tests/docs/tests/links/target-doc-slug"}},{"id":"tests/links/target","title":"Target doc","description":"This is just a doc meant to be linked to by other docs.","source":"@site/_dogfooding/_docs tests/tests/links/target.mdx","sourceDirName":"tests/links","slug":"/tests/links/target-doc-slug","permalink":"/tests/docs/tests/links/target-doc-slug","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"target-doc-slug"},"sidebar":"sidebar","previous":{"title":"Broken Anchors tests","permalink":"/tests/docs/tests/links/broken-anchors-tests"},"next":{"title":"Test links","permalink":"/tests/docs/tests/links/test-markdown-links"}},{"id":"tests/links/test-markdown-links","title":"Test links","description":"These are dogfood tests showing that Markdown links with md/mdx file references are resolved correctly.","source":"@site/_dogfooding/_docs tests/tests/links/test-markdown-links.mdx","sourceDirName":"tests/links","slug":"/tests/links/test-markdown-links","permalink":"/tests/docs/tests/links/test-markdown-links","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Target doc","permalink":"/tests/docs/tests/links/target-doc-slug"},"next":{"title":"TOC partial test","permalink":"/tests/docs/tests/toc-partials/"}},{"id":"tests/toc-partials/index","title":"TOC partial test","description":"This page tests that MDX-imported content appears correctly in the table-of-contents","source":"@site/_dogfooding/_docs tests/tests/toc-partials/index.mdx","sourceDirName":"tests/toc-partials","slug":"/tests/toc-partials/","permalink":"/tests/docs/tests/toc-partials/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Test links","permalink":"/tests/docs/tests/links/test-markdown-links"},"next":{"title":"Visibility","permalink":"/tests/docs/tests/visibility/"}},{"id":"tests/visibility/force-unlisted","title":"force_unlisted_parseFrontMatter_test","description":"This doc is hidden despite unlisted: false","source":"@site/_dogfooding/_docs tests/tests/visibility/force-unlisted.mdx","sourceDirName":"tests/visibility","slug":"/tests/visibility/force-unlisted","permalink":"/tests/docs/tests/visibility/force-unlisted","draft":false,"unlisted":true,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"unlisted":true,"force_unlisted_parseFrontMatter_test":true},"sidebar":"sidebar"},{"id":"tests/visibility/index","title":"Visibility","description":"A category to play with draft/unlisted front matter.","source":"@site/_dogfooding/_docs tests/tests/visibility/index.mdx","sourceDirName":"tests/visibility","slug":"/tests/visibility/","permalink":"/tests/docs/tests/visibility/","draft":false,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"tags":["visibility"]},"sidebar":"sidebar","previous":{"title":"TOC partial test","permalink":"/tests/docs/tests/toc-partials/"},"next":{"title":"Some Drafts - Listed 1","permalink":"/tests/docs/tests/visibility/some-drafts/draft-subcategory/listed1"}},{"id":"tests/visibility/only-unlisteds/unlisted-subcategory/index","title":"Only Unlisteds - Subcategory index unlisted","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-unlisteds/unlisted-subcategory/index.mdx","sourceDirName":"tests/visibility/only-unlisteds/unlisted-subcategory","slug":"/tests/visibility/only-unlisteds/unlisted-subcategory/","permalink":"/tests/docs/tests/visibility/only-unlisteds/unlisted-subcategory/","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"},{"id":"tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3","title":"Only Unlisteds - Unlisted 3","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3.mdx","sourceDirName":"tests/visibility/only-unlisteds/unlisted-subcategory","slug":"/tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3","permalink":"/tests/docs/tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"},{"id":"tests/visibility/only-unlisteds/unlisted1","title":"Only Unlisteds - Unlisted 1","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-unlisteds/unlisted1.mdx","sourceDirName":"tests/visibility/only-unlisteds","slug":"/tests/visibility/only-unlisteds/unlisted1","permalink":"/tests/docs/tests/visibility/only-unlisteds/unlisted1","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"},{"id":"tests/visibility/only-unlisteds/unlisted2","title":"Only Unlisteds - Unlisted 2","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-unlisteds/unlisted2.mdx","sourceDirName":"tests/visibility/only-unlisteds","slug":"/tests/visibility/only-unlisteds/unlisted2","permalink":"/tests/docs/tests/visibility/only-unlisteds/unlisted2","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"},{"id":"tests/visibility/some-drafts/draft-subcategory/listed1","title":"Some Drafts - Listed 1","description":"Regular doc","source":"@site/_dogfooding/_docs tests/tests/visibility/some-drafts/draft-subcategory/listed1.mdx","sourceDirName":"tests/visibility/some-drafts/draft-subcategory","slug":"/tests/visibility/some-drafts/draft-subcategory/listed1","permalink":"/tests/docs/tests/visibility/some-drafts/draft-subcategory/listed1","draft":false,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Listed","permalink":"/tests/docs/tags/listed"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"tags":["visibility","listed"]},"sidebar":"sidebar","previous":{"title":"Visibility","permalink":"/tests/docs/tests/visibility/"},"next":{"title":"Some Unlisteds - Listed 1","permalink":"/tests/docs/tests/visibility/some-unlisteds/unlisted-subcategory/listed1"}},{"id":"tests/visibility/some-unlisteds/unlisted-subcategory/index","title":"Some Unlisteds - Subcategory index unlisted","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-unlisteds/unlisted-subcategory/index.mdx","sourceDirName":"tests/visibility/some-unlisteds/unlisted-subcategory","slug":"/tests/visibility/some-unlisteds/unlisted-subcategory/","permalink":"/tests/docs/tests/visibility/some-unlisteds/unlisted-subcategory/","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"},{"id":"tests/visibility/some-unlisteds/unlisted-subcategory/listed1","title":"Some Unlisteds - Listed 1","description":"Regular doc","source":"@site/_dogfooding/_docs tests/tests/visibility/some-unlisteds/unlisted-subcategory/listed1.mdx","sourceDirName":"tests/visibility/some-unlisteds/unlisted-subcategory","slug":"/tests/visibility/some-unlisteds/unlisted-subcategory/listed1","permalink":"/tests/docs/tests/visibility/some-unlisteds/unlisted-subcategory/listed1","draft":false,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Listed","permalink":"/tests/docs/tags/listed"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"tags":["visibility","listed"]},"sidebar":"sidebar","previous":{"title":"Some Drafts - Listed 1","permalink":"/tests/docs/tests/visibility/some-drafts/draft-subcategory/listed1"},"next":{"title":"Sidebar item description tests","permalink":"/tests/docs/category/sidebar-item-description-tests"}},{"id":"tests/visibility/some-unlisteds/unlisted-subcategory/unlisted3","title":"Some Unlisteds - Unlisted 3","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-unlisteds/unlisted-subcategory/unlisted3.mdx","sourceDirName":"tests/visibility/some-unlisteds/unlisted-subcategory","slug":"/tests/visibility/some-unlisteds/unlisted-subcategory/unlisted3","permalink":"/tests/docs/tests/visibility/some-unlisteds/unlisted-subcategory/unlisted3","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"},{"id":"tests/visibility/some-unlisteds/unlisted1","title":"Some Unlisteds - Unlisted 1","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-unlisteds/unlisted1.mdx","sourceDirName":"tests/visibility/some-unlisteds","slug":"/tests/visibility/some-unlisteds/unlisted1","permalink":"/tests/docs/tests/visibility/some-unlisteds/unlisted1","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"},{"id":"tests/visibility/some-unlisteds/unlisted2","title":"Some Unlisteds - Unlisted 2","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-unlisteds/unlisted2.mdx","sourceDirName":"tests/visibility/some-unlisteds","slug":"/tests/visibility/some-unlisteds/unlisted2","permalink":"/tests/docs/tests/visibility/some-unlisteds/unlisted2","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"},{"id":"toc/toc-_-_","title":"toc-_-_","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-_-_.mdx","sourceDirName":"toc","slug":"/toc/toc-_-_","permalink":"/tests/docs/toc/toc-_-_","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"toc-_-5","permalink":"/tests/docs/toc/toc-_-5"},"next":{"title":"toc-test-bad","permalink":"/tests/docs/toc/toc-test-bad"}},{"id":"toc/toc-_-5","title":"toc-_-5","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-_-5.mdx","sourceDirName":"toc","slug":"/toc/toc-_-5","permalink":"/tests/docs/toc/toc-_-5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_max_heading_level":5},"sidebar":"sidebar","previous":{"title":"toc-5-5","permalink":"/tests/docs/toc/toc-5-5"},"next":{"title":"toc-_-_","permalink":"/tests/docs/toc/toc-_-_"}},{"id":"toc/toc-2-2","title":"toc-2-2","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-2-2.mdx","sourceDirName":"toc","slug":"/toc/toc-2-2","permalink":"/tests/docs/toc/toc-2-2","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":2},"sidebar":"sidebar","previous":{"title":"Another test page","permalink":"/tests/docs/more-test"},"next":{"title":"toc-2-3","permalink":"/tests/docs/toc/toc-2-3"}},{"id":"toc/toc-2-3","title":"toc-2-3","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-2-3.mdx","sourceDirName":"toc","slug":"/toc/toc-2-3","permalink":"/tests/docs/toc/toc-2-3","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":3},"sidebar":"sidebar","previous":{"title":"toc-2-2","permalink":"/tests/docs/toc/toc-2-2"},"next":{"title":"toc-2-4","permalink":"/tests/docs/toc/toc-2-4"}},{"id":"toc/toc-2-4","title":"toc-2-4","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-2-4.mdx","sourceDirName":"toc","slug":"/toc/toc-2-4","permalink":"/tests/docs/toc/toc-2-4","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":4},"sidebar":"sidebar","previous":{"title":"toc-2-3","permalink":"/tests/docs/toc/toc-2-3"},"next":{"title":"toc-2-5","permalink":"/tests/docs/toc/toc-2-5"}},{"id":"toc/toc-2-5","title":"toc-2-5","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-2-5.mdx","sourceDirName":"toc","slug":"/toc/toc-2-5","permalink":"/tests/docs/toc/toc-2-5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":5},"sidebar":"sidebar","previous":{"title":"toc-2-4","permalink":"/tests/docs/toc/toc-2-4"},"next":{"title":"toc-3-5","permalink":"/tests/docs/toc/toc-3-5"}},{"id":"toc/toc-3-_","title":"toc-3-_","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-3-_.mdx","sourceDirName":"toc","slug":"/toc/toc-3-_","permalink":"/tests/docs/toc/toc-3-_","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_min_heading_level":3},"sidebar":"sidebar","previous":{"title":"toc-3-5","permalink":"/tests/docs/toc/toc-3-5"},"next":{"title":"toc-4-5","permalink":"/tests/docs/toc/toc-4-5"}},{"id":"toc/toc-3-5","title":"toc-3-5","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-3-5.mdx","sourceDirName":"toc","slug":"/toc/toc-3-5","permalink":"/tests/docs/toc/toc-3-5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_min_heading_level":3,"toc_max_heading_level":5},"sidebar":"sidebar","previous":{"title":"toc-2-5","permalink":"/tests/docs/toc/toc-2-5"},"next":{"title":"toc-3-_","permalink":"/tests/docs/toc/toc-3-_"}},{"id":"toc/toc-4-5","title":"toc-4-5","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-4-5.mdx","sourceDirName":"toc","slug":"/toc/toc-4-5","permalink":"/tests/docs/toc/toc-4-5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_min_heading_level":4,"toc_max_heading_level":5},"sidebar":"sidebar","previous":{"title":"toc-3-_","permalink":"/tests/docs/toc/toc-3-_"},"next":{"title":"toc-5-5","permalink":"/tests/docs/toc/toc-5-5"}},{"id":"toc/toc-5-5","title":"toc-5-5","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-5-5.mdx","sourceDirName":"toc","slug":"/toc/toc-5-5","permalink":"/tests/docs/toc/toc-5-5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_min_heading_level":5,"toc_max_heading_level":5},"sidebar":"sidebar","previous":{"title":"toc-4-5","permalink":"/tests/docs/toc/toc-4-5"},"next":{"title":"toc-_-5","permalink":"/tests/docs/toc/toc-_-5"}},{"id":"toc/toc-test-bad","title":"toc-test-bad","description":"Test the TOC behavior of a real-world MD doc with invalid headings","source":"@site/_dogfooding/_docs tests/toc/toc-test-bad.mdx","sourceDirName":"toc","slug":"/toc/toc-test-bad","permalink":"/tests/docs/toc/toc-test-bad","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":6},"sidebar":"sidebar","previous":{"title":"toc-_-_","permalink":"/tests/docs/toc/toc-_-_"},"next":{"title":"toc-test-good","permalink":"/tests/docs/toc/toc-test-good"}},{"id":"toc/toc-test-good","title":"toc-test-good","description":"Test the TOC behavior of a real-world MD doc with valid headings","source":"@site/_dogfooding/_docs tests/toc/toc-test-good.mdx","sourceDirName":"toc","slug":"/toc/toc-test-good","permalink":"/tests/docs/toc/toc-test-good","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":6},"sidebar":"sidebar","previous":{"title":"toc-test-bad","permalink":"/tests/docs/toc/toc-test-bad"}}],"drafts":[{"id":"tests/another-draft","title":"Another Draft","description":"This page should only be visible in local development","source":"@site/_dogfooding/_docs tests/tests/another-draft.mdx","sourceDirName":"tests","slug":"/tests/another-draft","permalink":"/tests/docs/tests/another-draft","draft":true,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"draft":true}},{"id":"tests/visibility/only-drafts/draft1","title":"Only Drafts - Draft 1","description":"Doc with draft front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-drafts/draft1.mdx","sourceDirName":"tests/visibility/only-drafts","slug":"/tests/visibility/only-drafts/draft1","permalink":"/tests/docs/tests/visibility/only-drafts/draft1","draft":true,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Draft","permalink":"/tests/docs/tags/draft"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"draft":true,"tags":["visibility","draft"]}},{"id":"tests/visibility/only-drafts/draft2","title":"Only Drafts - Draft 2","description":"Doc with draft front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-drafts/draft2.mdx","sourceDirName":"tests/visibility/only-drafts","slug":"/tests/visibility/only-drafts/draft2","permalink":"/tests/docs/tests/visibility/only-drafts/draft2","draft":true,"unlisted":false,"tags":[{"inline":false,"label":"Draft","permalink":"/tests/docs/tags/draft"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"draft":true,"tags":["draft"]}},{"id":"tests/visibility/some-drafts/draft1","title":"Some Drafts - Draft 1","description":"Doc with draft front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-drafts/draft1.mdx","sourceDirName":"tests/visibility/some-drafts","slug":"/tests/visibility/some-drafts/draft1","permalink":"/tests/docs/tests/visibility/some-drafts/draft1","draft":true,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Draft","permalink":"/tests/docs/tags/draft"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"draft":true,"tags":["visibility","draft"]}},{"id":"tests/visibility/some-drafts/draft2","title":"Some Drafts - Draft 2","description":"Doc with draft front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-drafts/draft2.mdx","sourceDirName":"tests/visibility/some-drafts","slug":"/tests/visibility/some-drafts/draft2","permalink":"/tests/docs/tests/visibility/some-drafts/draft2","draft":true,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Draft","permalink":"/tests/docs/tags/draft"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"draft":true,"tags":["visibility","draft"]}},{"id":"tests/visibility/only-drafts/draft-subcategory/draft3","title":"Only Drafts - Draft 3","description":"Doc with draft front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-drafts/draft-subcategory/draft3.mdx","sourceDirName":"tests/visibility/only-drafts/draft-subcategory","slug":"/tests/visibility/only-drafts/draft-subcategory/draft3","permalink":"/tests/docs/tests/visibility/only-drafts/draft-subcategory/draft3","draft":true,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Draft","permalink":"/tests/docs/tags/draft"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"draft":true,"tags":["visibility","draft"]}},{"id":"tests/visibility/only-drafts/draft-subcategory/index","title":"Only Drafts - Subcategory index draft","description":"Doc with draft front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-drafts/draft-subcategory/index.mdx","sourceDirName":"tests/visibility/only-drafts/draft-subcategory","slug":"/tests/visibility/only-drafts/draft-subcategory/","permalink":"/tests/docs/tests/visibility/only-drafts/draft-subcategory/","draft":true,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Draft","permalink":"/tests/docs/tags/draft"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"draft":true,"tags":["visibility","draft"]}},{"id":"tests/visibility/some-drafts/draft-subcategory/draft3","title":"Some Drafts - Draft 3","description":"Doc with draft front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-drafts/draft-subcategory/draft3.mdx","sourceDirName":"tests/visibility/some-drafts/draft-subcategory","slug":"/tests/visibility/some-drafts/draft-subcategory/draft3","permalink":"/tests/docs/tests/visibility/some-drafts/draft-subcategory/draft3","draft":true,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Draft","permalink":"/tests/docs/tags/draft"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"draft":true,"tags":["visibility","draft"]}},{"id":"tests/visibility/some-drafts/draft-subcategory/index","title":"Some Drafts - Subcategory index draft","description":"Doc with draft front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-drafts/draft-subcategory/index.mdx","sourceDirName":"tests/visibility/some-drafts/draft-subcategory","slug":"/tests/visibility/some-drafts/draft-subcategory/","permalink":"/tests/docs/tests/visibility/some-drafts/draft-subcategory/","draft":true,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Draft","permalink":"/tests/docs/tags/draft"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"draft":true,"tags":["visibility","draft"]}}],"sidebars":{"sidebar":[{"type":"doc","id":"index","className":"red","label":"Index","translatable":true},{"type":"doc","id":"doc-without-sidebar"},{"type":"doc","id":"doc-with-another-sidebar"},{"type":"doc","id":"doc-with-last-update"},{"type":"category","label":"Tests","link":{"type":"generated-index","slug":"/category/tests","permalink":"/tests/docs/category/tests"},"items":[{"type":"doc","id":"tests/Case-Sentitive-Doc"},{"type":"doc","id":"tests/admonitions"},{"type":"category","label":"ascii","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"folder","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/ascii/folder/\xe6\xf8\xe5"}]},{"type":"doc","label":"index","id":"tests/ascii/\xe6\xf8\xe5/index"}]},{"type":"category","label":"Category Links","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Introduction","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/category-links/custom-index-convention/sample-doc"}],"link":{"type":"doc","id":"tests/category-links/custom-index-convention/intro"}},{"type":"category","label":"no-index-doc","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/category-links/no-index-doc/index"},{"type":"doc","id":"tests/category-links/no-index-doc/sample-doc"}]},{"type":"doc","label":"No sub-docs","id":"tests/category-links/no-subdoc/index"},{"type":"doc","id":"tests/category-links/readme"},{"type":"category","label":"regular-category","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/category-links/regular-category/sample-doc"}]},{"type":"category","label":"Category with a doc of category\'s name","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/category-links/with-category-name-doc/sample-doc"}],"link":{"type":"doc","id":"tests/category-links/with-category-name-doc/with-category-name-doc"}},{"type":"category","label":"Category with index.md doc","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/category-links/with-index-doc/sample-doc"}],"link":{"type":"doc","id":"tests/category-links/with-index-doc/index"}},{"type":"category","label":"Category with readme.md doc","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/category-links/with-readme-doc/sample-doc"}],"link":{"type":"doc","id":"tests/category-links/with-readme-doc/README"}}],"description":"Category Links - Custom Description","link":{"type":"generated-index","slug":"/category-links-generated-index-slug","permalink":"/tests/docs/category-links-generated-index-slug"}},{"type":"category","label":"Custom Props","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/custom-props/doc-with-custom-props","customProps":{"prop":"custom","number":1,"boolean":true}},{"type":"doc","id":"tests/custom-props/doc-without-custom-props"}],"link":{"type":"doc","id":"tests/custom-props/index"}},{"type":"doc","id":"tests/img-tests"},{"type":"doc","id":"tests/import-bad-package"},{"type":"category","label":"links","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/links/broken-anchors-tests"},{"type":"doc","id":"tests/links/target"},{"type":"doc","id":"tests/links/test-markdown-links"}]},{"type":"doc","label":"TOC partial test","id":"tests/toc-partials/index"},{"type":"category","label":"Visibility","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/visibility/force-unlisted"},{"type":"category","label":"only-unlisteds","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Only Unlisteds - Subcategory index unlisted","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3"}],"link":{"type":"doc","id":"tests/visibility/only-unlisteds/unlisted-subcategory/index"}},{"type":"doc","id":"tests/visibility/only-unlisteds/unlisted1"},{"type":"doc","id":"tests/visibility/only-unlisteds/unlisted2"}]},{"type":"category","label":"some-drafts","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"draft-subcategory","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/visibility/some-drafts/draft-subcategory/listed1"}]}]},{"type":"category","label":"some-unlisteds","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Some Unlisteds - Subcategory index unlisted","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/visibility/some-unlisteds/unlisted-subcategory/listed1"},{"type":"doc","id":"tests/visibility/some-unlisteds/unlisted-subcategory/unlisted3"}],"link":{"type":"doc","id":"tests/visibility/some-unlisteds/unlisted-subcategory/index"}},{"type":"doc","id":"tests/visibility/some-unlisteds/unlisted1"},{"type":"doc","id":"tests/visibility/some-unlisteds/unlisted2"}]}],"link":{"type":"doc","id":"tests/visibility/index"}},{"type":"link","label":"External Link test","href":"https://docusaurus.io"},{"type":"category","label":"Sidebar item description tests","description":"Some custom category description","link":{"type":"generated-index","slug":"/category/sidebar-item-description-tests","permalink":"/tests/docs/category/sidebar-item-description-tests"},"items":[{"type":"link","label":"Link without description","href":"https://docusaurus.io"},{"type":"link","label":"Link with description","href":"https://docusaurus.io","description":"Some link description"},{"type":"category","label":"Category without description","items":[{"type":"link","label":"Link ","href":"https://docusaurus.io"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category with description","description":"Some category description","items":[{"type":"link","label":"Link ","href":"https://docusaurus.io"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Another category with index","collapsible":false,"link":{"type":"generated-index","slug":"/category/another-category-with-index","permalink":"/tests/docs/category/another-category-with-index"},"items":[{"type":"doc","id":"more-test"}],"collapsed":false},{"type":"category","label":"Huge sidebar category","items":[{"type":"link","href":"/","label":"Test Test test test test test test"},{"type":"link","href":"/","label":"Link 0 (level 1)"},{"type":"link","href":"/","label":"Link 1 (level 1)"},{"type":"link","href":"/","label":"Link 2 (level 1)"},{"type":"link","href":"/","label":"Link 3 (level 1)"},{"type":"link","href":"/","label":"Link 4 (level 1)"},{"type":"link","href":"/","label":"Link 5 (level 1)"},{"type":"link","href":"/","label":"Link 6 (level 1)"},{"type":"link","href":"/","label":"Link 7 (level 1)"},{"type":"category","label":"Category 0 (level 1)","items":[{"type":"link","href":"/","label":"Link 0 (level 2)"},{"type":"link","href":"/","label":"Link 1 (level 2)"},{"type":"link","href":"/","label":"Link 2 (level 2)"},{"type":"link","href":"/","label":"Link 3 (level 2)"},{"type":"link","href":"/","label":"Link 4 (level 2)"},{"type":"link","href":"/","label":"Link 5 (level 2)"},{"type":"link","href":"/","label":"Link 6 (level 2)"},{"type":"link","href":"/","label":"Link 7 (level 2)"},{"type":"category","label":"Category 0 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 1)","items":[{"type":"link","href":"/","label":"Link 0 (level 2)"},{"type":"link","href":"/","label":"Link 1 (level 2)"},{"type":"link","href":"/","label":"Link 2 (level 2)"},{"type":"link","href":"/","label":"Link 3 (level 2)"},{"type":"link","href":"/","label":"Link 4 (level 2)"},{"type":"link","href":"/","label":"Link 5 (level 2)"},{"type":"link","href":"/","label":"Link 6 (level 2)"},{"type":"link","href":"/","label":"Link 7 (level 2)"},{"type":"category","label":"Category 0 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 1)","items":[{"type":"link","href":"/","label":"Link 0 (level 2)"},{"type":"link","href":"/","label":"Link 1 (level 2)"},{"type":"link","href":"/","label":"Link 2 (level 2)"},{"type":"link","href":"/","label":"Link 3 (level 2)"},{"type":"link","href":"/","label":"Link 4 (level 2)"},{"type":"link","href":"/","label":"Link 5 (level 2)"},{"type":"link","href":"/","label":"Link 6 (level 2)"},{"type":"link","href":"/","label":"Link 7 (level 2)"},{"type":"category","label":"Category 0 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 1)","items":[{"type":"link","href":"/","label":"Link 0 (level 2)"},{"type":"link","href":"/","label":"Link 1 (level 2)"},{"type":"link","href":"/","label":"Link 2 (level 2)"},{"type":"link","href":"/","label":"Link 3 (level 2)"},{"type":"link","href":"/","label":"Link 4 (level 2)"},{"type":"link","href":"/","label":"Link 5 (level 2)"},{"type":"link","href":"/","label":"Link 6 (level 2)"},{"type":"link","href":"/","label":"Link 7 (level 2)"},{"type":"category","label":"Category 0 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 1)","items":[{"type":"link","href":"/","label":"Link 0 (level 2)"},{"type":"link","href":"/","label":"Link 1 (level 2)"},{"type":"link","href":"/","label":"Link 2 (level 2)"},{"type":"link","href":"/","label":"Link 3 (level 2)"},{"type":"link","href":"/","label":"Link 4 (level 2)"},{"type":"link","href":"/","label":"Link 5 (level 2)"},{"type":"link","href":"/","label":"Link 6 (level 2)"},{"type":"link","href":"/","label":"Link 7 (level 2)"},{"type":"category","label":"Category 0 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 1)","items":[{"type":"link","href":"/","label":"Link 0 (level 2)"},{"type":"link","href":"/","label":"Link 1 (level 2)"},{"type":"link","href":"/","label":"Link 2 (level 2)"},{"type":"link","href":"/","label":"Link 3 (level 2)"},{"type":"link","href":"/","label":"Link 4 (level 2)"},{"type":"link","href":"/","label":"Link 5 (level 2)"},{"type":"link","href":"/","label":"Link 6 (level 2)"},{"type":"link","href":"/","label":"Link 7 (level 2)"},{"type":"category","label":"Category 0 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 1)","items":[{"type":"link","href":"/","label":"Link 0 (level 2)"},{"type":"link","href":"/","label":"Link 1 (level 2)"},{"type":"link","href":"/","label":"Link 2 (level 2)"},{"type":"link","href":"/","label":"Link 3 (level 2)"},{"type":"link","href":"/","label":"Link 4 (level 2)"},{"type":"link","href":"/","label":"Link 5 (level 2)"},{"type":"link","href":"/","label":"Link 6 (level 2)"},{"type":"link","href":"/","label":"Link 7 (level 2)"},{"type":"category","label":"Category 0 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 1)","items":[{"type":"link","href":"/","label":"Link 0 (level 2)"},{"type":"link","href":"/","label":"Link 1 (level 2)"},{"type":"link","href":"/","label":"Link 2 (level 2)"},{"type":"link","href":"/","label":"Link 3 (level 2)"},{"type":"link","href":"/","label":"Link 4 (level 2)"},{"type":"link","href":"/","label":"Link 5 (level 2)"},{"type":"link","href":"/","label":"Link 6 (level 2)"},{"type":"link","href":"/","label":"Link 7 (level 2)"},{"type":"category","label":"Category 0 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Link tests","className":"red","items":[{"type":"link","label":"External link absolute","href":"https://github.com/facebook/docusaurus"},{"type":"link","label":"pathname:/// link","href":"pathname:///some/local/path"},{"type":"link","label":"pathname:/// link (no baseUrl)","href":"pathname:///some/local/path","autoAddBaseUrl":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"TOC tests","className":"red","items":[{"type":"doc","id":"toc/toc-2-2"},{"type":"doc","id":"toc/toc-2-3"},{"type":"doc","id":"toc/toc-2-4"},{"type":"doc","id":"toc/toc-2-5"},{"type":"doc","id":"toc/toc-3-5"},{"type":"doc","id":"toc/toc-3-_"},{"type":"doc","id":"toc/toc-4-5"},{"type":"doc","id":"toc/toc-5-5"},{"type":"doc","id":"toc/toc-_-5"},{"type":"doc","id":"toc/toc-_-_"},{"type":"doc","id":"toc/toc-test-bad"},{"type":"doc","id":"toc/toc-test-good"}],"collapsed":true,"collapsible":true},{"type":"category","label":"HTML items tests","collapsed":false,"collapsible":false,"items":[{"type":"html","value":"Some Text","defaultStyle":true},{"type":"html","value":"<span style=\\"border-top: 1px solid var(--ifm-color-gray-500); display: block;margin: 0.5rem 0 0.25rem 1rem;\\" />"},{"type":"html","defaultStyle":true,"value":"\\n <span style=\\"font-size: 0.5rem; color: lightgrey;\\">Powered by</span>\\n <img style=\\"width: 100px; height: 100px; display: block;\\" src=\\"/img/docusaurus.png\\" alt=\\"Docusaurus Logo\\" />\\n "}]}],"anotherSidebar":[{"type":"doc","id":"dummy"}]}}]}},"docusaurus-plugin-content-blog":{"default":{"blogSidebarTitle":"All our posts","blogPosts":[{"id":"/releases/3.5","metadata":{"permalink":"/blog/releases/3.5","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.5/index.mdx","source":"@site/blog/releases/3.5/index.mdx","title":"Docusaurus 3.5","description":"We are happy to announce Docusaurus 3.5.","date":"2024-08-09T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.91,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.5","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-08-09T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","nextItem":{"title":"Docusaurus 3.4","permalink":"/blog/releases/3.4"}},"content":"We are happy to announce **Docusaurus 3.5**.\\n\\nThis release contains many **new exciting blog features**.\\n\\nUpgrading should be easy. Our [release process](/community/release-process) respects [Semantic Versioning](https://semver.org/). Minor versions do not include any breaking changes.\\n\\n![Docusaurus blog post social card](./img/social-card.png)\\n\\n{/* truncate */}\\n\\n## Highlights\\n\\n### Blog Social Icons\\n\\nIn [#10222](https://github.com/facebook/docusaurus/pull/10222), we added the possibility to associate social links to blog authors, for inline authors declared in front matter or global through the `authors.yml` file.\\n\\n```yml title=\\"blog/authors.yml\\"\\nslorber:\\n name: S\xe9bastien Lorber\\n # other author properties...\\n # highlight-start\\n socials:\\n x: sebastienlorber\\n linkedin: sebastienlorber\\n github: slorber\\n newsletter: https://thisweekinreact.com\\n # highlight-end\\n```\\n\\n![Author socials screenshot displaying `slorber` author with 4 social platform icons](./img/author-socials.png)\\n\\nIcons and handle shortcuts are provided for pre-defined platforms `x`, `linkedin`, `github` and `stackoverflow`. It\'s possible to provide any additional platform entry (like `newsletter` in the example above) with a full URL.\\n\\n### Blog Authors Pages\\n\\nIn [#10216](https://github.com/facebook/docusaurus/pull/10216), we added the possibility for [global blog authors](/docs/blog#global-authors) (declared in `authors.yml`) to have their own dedicated page listing all the blog posts they contributed to.\\n\\nThis feature is opt-in and mostly relevant for **multi-author blogs**. You can turn it on for a specific author by setting the `page: true` property:\\n\\n```yml title=\\"blog/authors.yml\\"\\nslorber:\\n name: S\xe9bastien Lorber\\n # the description will be displayed on the author\'s page\\n description: \'A freelance React and React-Native developer...\'\\n # highlight-next-line\\n page: true # Turns the feature on\\n```\\n\\nThis creates a [dedicated author page](/blog/authors/slorber) at `/blog/authors/slorber`.\\n\\n![Author page screenshot for `slorber` global author](./img/author-page.png)\\n\\nAn [authors index page](/blog/authors) is also created, listing all the blog authors.\\n\\n![Author index page listing multiple authors](./img/author-index.png)\\n\\nCheck the [blog authors pages guide](/docs/blog#authors-pages) for details.\\n\\n### Blog Feeds Styling\\n\\nIn [#9252](https://github.com/facebook/docusaurus/pull/9252), we added support for [styling your blog feeds](https://darekkay.com/blog/rss-styling/) by providing custom XSLT `.xls` files for the RSS and Atom feeds. This allows browsers to render the feeds in a more visually appealing way, like a regular HTML page, instead of the default XML view.\\n\\n```js title=\\"website/docusaurus.config.js\\"\\nconst blogOptions = {\\n feedOptions: {\\n // highlight-start\\n xslt: {\\n rss: \'custom-rss.xsl\',\\n atom: \'custom-atom.xsl\',\\n },\\n // highlight-end\\n },\\n};\\n```\\n\\nWriting your own XSLT can be complex, but you can also use `xslt: true` to turn on the built-in style:\\n\\n```js title=\\"website/docusaurus.config.js\\"\\nconst blogOptions = {\\n feedOptions: {\\n // highlight-start\\n xslt: true,\\n // highlight-end\\n },\\n};\\n```\\n\\n![Screenshot of the Docusaurus blog RSS feed, beautifully styled](./img/blog-feed-xslt.png)\\n\\n### Blog Sidebar Grouping\\n\\nIn [#10252](https://github.com/facebook/docusaurus/pull/10252), we added support for grouping blog posts by years in the blog sidebar.\\n\\n![Screenshot of the Docusaurus blog, in particular the sidebar items grouped by year](./img/blog-sidebar-years.png)\\n\\nThis feature is now turned on by default, but can be disabled with `themeConfig.blog.sidebar.groupByYear: false`.\\n\\n### Blog Consistency Options\\n\\nWe added new blog options to enforce recommended practices for your blog posts:\\n\\n#### `onInlineAuthors`\\n\\nWe believe large multi-blogs are easier to manage by using [global authors](/docs/blog#global-authors), declared in `authors.yml`. This notably permits to avoids duplicating author information across multiple blog posts, and now permits to generate [author pages](/docs/blog#authors-pages).\\n\\nIn [#10224](https://github.com/facebook/docusaurus/pull/10224), we added the `onInlineAuthors` option. Use `onInlineAuthors: \'throw\'` to forbid [inline authors](/docs/blog#inline-authors), and enforce a consistent usage of [global authors](/docs/blog#global-authors).\\n\\n#### `onUntruncatedBlogPosts`\\n\\nWe believe blog posts are better using [truncation markers](/docs/blog#blog-list) (`<!-- truncate -->` or `{/* truncate */}`). On paginated lists (blog home, tags pages, authors pages), this permits to render a more concise preview of the blog post instead of a full blog post.\\n\\nIn [#10375](https://github.com/facebook/docusaurus/pull/10375), we added the `onUntruncatedBlogPosts` option. Use `onUntruncatedBlogPosts: \'throw\'` to enforce a consistent usage of [truncation markers](/docs/blog#blog-list).\\n\\n## Translations\\n\\n- \u{1F1EA}\u{1F1EA} [#10339](https://github.com/facebook/docusaurus/pull/10339): Add Estonian theme translations.\\n- \u{1F1EE}\u{1F1E9} [#10325](https://github.com/facebook/docusaurus/pull/10325): Add Indonesian theme translations.\\n- \u{1F1EA}\u{1F1F8} [#10360](https://github.com/facebook/docusaurus/pull/10360): Improve Spanish theme translations.\\n- \u{1F1E9}\u{1F1EA} [#10235](https://github.com/facebook/docusaurus/pull/10235): Improve German theme translations.\\n- \u{1F1E8}\u{1F1F3} [#10257](https://github.com/facebook/docusaurus/pull/10257): Improve Traditional Chinese (zh-Hant) theme translations.\\n\\n## Other changes\\n\\nOther notable changes include:\\n\\n- [#10369](https://github.com/facebook/docusaurus/pull/10369): Add support for [pkg.pr.new](https://pkg.pr.new) continuous releases so that you can test any pull-request code in a StackBlitz playground.\\n- [#10376](https://github.com/facebook/docusaurus/pull/10376): Theme unlisted/draft banners are also shown in dev so that you don\'t forget to publish your content.\\n- [#10335](https://github.com/facebook/docusaurus/pull/10335): The Markdown top-level headings `# title` are automatically wrapped in `<header>` for consistency with front matter `title: Title`.\\n- [#10286](https://github.com/facebook/docusaurus/pull/10286): Allows Docusaurus plugins to self-disable by returning `null`.\\n- [#10241](https://github.com/facebook/docusaurus/pull/10241): Add support for [MDX processor `recmaPlugins` option](https://mdxjs.com/packages/mdx/#processoroptions) to modify the MDX Estree AST.\\n- [#10324](https://github.com/facebook/docusaurus/pull/10324): The docs autogenerated `_category_.json` accepts a new `description` property that gets displayed on generated index pages.\\n- [#10368](https://github.com/facebook/docusaurus/pull/10368): The CLI command `docusaurus --version` now actually returns the Docusaurus version.\\n- [#10240](https://github.com/facebook/docusaurus/pull/10240): Markdown `mdx-code-block` now supports indentation.\\n- [#10219](https://github.com/facebook/docusaurus/pull/10219): Fix `<TabItem lazy>` support the for `className` prop.\\n- [#10313](https://github.com/facebook/docusaurus/pull/10313): Blog-related `@docusaurus/theme-common/internal` APIs have been moved to `@docusaurus/plugin-content-blog/client`.\\n- [#10316](https://github.com/facebook/docusaurus/pull/10316): Docs-related `@docusaurus/theme-common/internal` APIs have been moved to `@docusaurus/plugin-content-docs/client`.\\n\\nCheck the **[3.5.0 changelog entry](/changelog/3.5.0)** for an exhaustive list of changes."},{"id":"/releases/3.4","metadata":{"permalink":"/blog/releases/3.4","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.4/index.mdx","source":"@site/blog/releases/3.4/index.mdx","title":"Docusaurus 3.4","description":"We are happy to announce Docusaurus 3.4.","date":"2024-05-31T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.045,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.4","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-05-31T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 3.5","permalink":"/blog/releases/3.5"},"nextItem":{"title":"Docusaurus 3.3","permalink":"/blog/releases/3.3"}},"content":"We are happy to announce **Docusaurus 3.4**.\\n\\nUpgrading should be easy. Our [release process](/community/release-process) respects [Semantic Versioning](https://semver.org/). Minor versions do not include any breaking changes.\\n\\n![Docusaurus blog post social card](./img/social-card.png)\\n\\n<!--truncate-->\\n\\n## Highlights\\n\\n### Tags files\\n\\nThe docs and blog plugins both already supported a `tags` front matter attribute, enabling you to group related content. But tags declared inline in the front matter are not always ideal.\\n\\nWith [#10137](https://github.com/facebook/docusaurus/pull/10137), you can now declare a list of pre-defined tags in a `tags.yml` file:\\n\\n```yml title=\\"blog/tags.yml\\"\\ntag1:\\n label: \'Tag 1\'\\n description: \'Tag 1 description\'\\n permalink: /tag-1-permalink\\n\\ntag2:\\n label: \'Tag 2\'\\n description: \'Tag 2 description\'\\n permalink: /tag-2-permalink\\n```\\n\\nThese predefined tags can be used in the front matter of your blog or docs files:\\n\\n```md title=\\"blog/2024-05-31-my-blog-post.md\\"\\n---\\ntags: [tag1, tag2]\\n---\\n\\n# Title\\n\\nContent\\n```\\n\\n:::tip Keeping tags usage consistent\\n\\nUse the new `onInlineTags: \'throw\'` plugin option to enforce the usage of predefined tags and prevent contributors from creating new unwanted tags.\\n\\n:::\\n\\n### Hash Router - Experimental\\n\\nWith [9859](https://github.com/facebook/docusaurus/pull/9859), we added a new **experimental** hash router config option, useful for **offline browsing** by opening your site locally through the `file://` protocol.\\n\\n```tsx title=\\"docusaurus.config.js\\"\\nexport default {\\n future: {\\n experimental_router: \'hash\',\\n },\\n};\\n```\\n\\n:::warning\\n\\nThis mode is **not recommended for sites deployed through a web server**.\\n\\n:::\\n\\nWhen this mode is turned on, Docusaurus will opt out of static site rendering, and build a client-side single page application where all routes are prefixed with `/#/`. A single `index.html` file is generated. This file can be opened locally in your browser by simply clicking it, using the browser `file://` protocol. This makes it possible to distribute a Docusaurus site as a `.zip` file so that readers can browse it offline, without having to install anything complex on their computer apart a web browser.\\n\\n![Docusaurus hash router - local browsing using the file:// protocol](./img/hash.png)\\n\\nTry browsing our own Docusaurus site built with the hash router:\\n\\n- [Docusaurus website - Hash Router web deployment](https://facebook.github.io/docusaurus/#/)\\n- [Docusaurus website - Hash Router downloadable GitHub artifacts](https://github.com/facebook/docusaurus/actions/workflows/build-hash-router.yml)\\n\\n:::caution Experimental\\n\\nThis feature is **experimental**. If you try it out, please let us know how it works for you [here](https://github.com/facebook/docusaurus/issues/3825).\\n\\n:::\\n\\n### Site Storage - Experimental\\n\\nDocusaurus uses the browser `localStorage` API to persist UI state.\\n\\nBut sometimes the storage space is \\"shared\\" between multiple sites using the same domain, leading to **storage key conflicts**. This generally happens in two cases\\n\\n- when working on multiple `http://localhost:3000` sites\\n- when hosting multiple sites under the same domain: `https://example.com/site1/` and `https://example.com/site2/`\\n\\nFor this reason, we introduced a new **experimental** `siteStorage` configuration option:\\n\\n```tsx\\nexport default {\\n future: {\\n experimental_storage: {\\n type: \'localStorage\',\\n namespace: true,\\n },\\n },\\n};\\n```\\n\\nWhen `namespace: true` is set, we apply a hash suffix to all the storage keys, making them unique to the current site (based on `config.url` and `config.baseUrl`. For example, the `theme` storage key becomes `theme-x6f`. It is also possible to provide your own custom suffix `namespace: \'suffix\'`. We also made it possible to use `type: \'sessionStorage\'` instead of the default `localStorage`.\\n\\n:::caution Experimental\\n\\nThis feature is **experimental**. If you try it out, please let us know how it works for you [here](https://github.com/facebook/docusaurus/pull/10121).\\n\\n:::\\n\\n## Other changes\\n\\nOther notable changes include:\\n\\n- [#10151](https://github.com/facebook/docusaurus/pull/10151): add Turkmen (tk) theme translations\\n- [#10111](https://github.com/facebook/docusaurus/pull/10111): add Bulgarian (bg) theme translations\\n- [#10168](https://github.com/facebook/docusaurus/pull/10168): fix many long overdue Markdown link resolution bugs\\n- [#10178](https://github.com/facebook/docusaurus/pull/10178): the `/search` page now respects the `contextualSearch: false` setting\\n- [#10118](https://github.com/facebook/docusaurus/pull/10118): fix bad pluralization on docs generated index category card description\\n- [#10130](https://github.com/facebook/docusaurus/pull/10130): fix false positives reported by the broken anchor checker due to trailing slashes\\n\\nCheck the **[3.4.0 changelog entry](/changelog/3.4.0)** for an exhaustive list of changes."},{"id":"/releases/3.3","metadata":{"permalink":"/blog/releases/3.3","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.3/index.mdx","source":"@site/blog/releases/3.3/index.mdx","title":"Docusaurus 3.3","description":"We are happy to announce Docusaurus 3.3.","date":"2024-05-03T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":2.56,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.3","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-05-03T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 3.4","permalink":"/blog/releases/3.4"},"nextItem":{"title":"Docusaurus 3.2","permalink":"/blog/releases/3.2"}},"content":"We are happy to announce **Docusaurus 3.3**.\\n\\nUpgrading should be easy. Our [release process](/community/release-process) respects [Semantic Versioning](https://semver.org/). Minor versions do not include any breaking changes.\\n\\n![Docusaurus blog post social card](./img/social-card.png)\\n\\n<!--truncate-->\\n\\nimport BrowserWindow from \'@site/src/components/BrowserWindow\';\\nimport IframeWindow from \'@site/src/components/BrowserWindow/IframeWindow\';\\n\\n## Highlights\\n\\n### Prepare for React 19\\n\\nThe React core team recently [released the first **React 19 beta**](https://react.dev/blog/2024/04/25/react-19). They also [published an upgrade guide and a **React v18.3 release**](https://react.dev/blog/2024/04/25/react-19-upgrade-guide) with new warnings to help us identify issues **before upgrading to React 19**.\\n\\nDocusaurus v3 depends on React `18.x`. When initializing a new Docusaurus sites, it will use that new React `18.3` release. It\'s also the case if you decide to upgrade your dependencies, or re-generate your package manager lockfile.\\n\\nIt turns out in its current state, **Docusaurus had a few of those extra warnings to fix**, notably this one immediately appearing on your dev console on any page load and navigation:\\n\\n> Warning: LoadableComponent uses the legacy contextTypes API which is no longer supported and will be removed in the next major release. Use React.createContext() with static contextType instead.\\n\\nIn [#10079](https://github.com/facebook/docusaurus/pull/10079), we got Docusaurus ready for React 19. We fixed all the React 18.3 warnings we encountered. In case we missed any, don\'t hesitate to [**report new warnings**](https://github.com/facebook/docusaurus/issues/10099) if you see them, to us but also to other Docusaurus third-party plugin authors.\\n\\n### `createSitemapItems`\\n\\nIn [#10083](https://github.com/facebook/docusaurus/pull/10083), we introduced a new flexible `createSitemapItems()` hook to the sitemap plugin. This enables users to create/filter/transform/enhance the sitemap items with their own custom logic.\\n\\n```ts\\nexport default {\\n presets: [\\n [\\n \'@docusaurus/preset-classic\',\\n {\\n sitemap: {\\n // highlight-start\\n createSitemapItems: async ({\\n defaultCreateSitemapItems,\\n ...params\\n }) => {\\n const items = await defaultCreateSitemapItems(params);\\n return items.filter((item) => !item.url.includes(\'/tags/\'));\\n },\\n // highlight-end\\n },\\n },\\n ],\\n ],\\n};\\n```\\n\\n### Pages plugin improvements\\n\\nThe Docusaurus [pages plugin](/docs/api/plugins/@docusaurus/plugin-content-pages) has historically been lagging behind the docs and blog plugins in terms of available feature.\\n\\nIn [#10032](https://github.com/facebook/docusaurus/pull/10032) we normalized the options available on each core content plugins by adding a few the missing page plugins APIs related to the edit url and the last update metadata displayed at the bottom on Markdown pages.\\n\\n```js\\nexport default {\\n presets: [\\n [\\n \'@docusaurus/preset-classic\',\\n {\\n pages: {\\n // highlight-start\\n editUrl:\\n \'https://github.com/facebook/docusaurus/tree/main/website/src/pages\',\\n editLocalizedFiles: true,\\n showLastUpdateAuthor: true,\\n showLastUpdateTime: true,\\n // highlight-end\\n },\\n },\\n ],\\n ],\\n};\\n```\\n\\n<IframeWindow url=\\"/examples/markdownPageExample\\" />\\n\\n:::note Only for Markdown pages\\n\\nThese new plugin options only apply to Markdown pages, and have no effect on React pages for which you have full control over the layout with JSX.\\n\\n:::\\n\\n## Other changes\\n\\nOther notable changes include:\\n\\n- [#10064](https://github.com/facebook/docusaurus/pull/10064): new site config option `siteConfig.markdown.anchors.maintainCase`\\n- [#9767](https://github.com/facebook/docusaurus/pull/9767): new `docusaurus deploy --target-dir` option\\n- [#10042](https://github.com/facebook/docusaurus/pull/10042): new (experimental) plugin API: `route.props`\\n- [#10060](https://github.com/facebook/docusaurus/pull/10060): optimizes the App entrypoint, avoid useless re-renders on navigations\\n- [#10080](https://github.com/facebook/docusaurus/pull/10080): `<Admonition>` component can render properly without heading/icon\\n- [#10091](https://github.com/facebook/docusaurus/pull/10091): `<Tabs>` props can now override defaults\\n- [#10090](https://github.com/facebook/docusaurus/pull/10090): `docusaurus serve` works better with a `/baseUrl/` pathname prefix\\n- [#10070](https://github.com/facebook/docusaurus/pull/10070): add missing theme translations for `pt-BR`\\n- [#10025](https://github.com/facebook/docusaurus/pull/10025): doc sidebar item label now impacts the doc pagination label\\n\\nCheck the **[3.3.0 changelog entry](/changelog/3.3.0)** for an exhaustive list of changes."},{"id":"/releases/3.2","metadata":{"permalink":"/blog/releases/3.2","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.2/index.mdx","source":"@site/blog/releases/3.2/index.mdx","title":"Docusaurus 3.2","description":"We are happy to announce Docusaurus 3.2.","date":"2024-03-29T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.475,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.2","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-03-29T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 3.3","permalink":"/blog/releases/3.3"},"nextItem":{"title":"Docusaurus 3.1","permalink":"/blog/releases/3.1"}},"content":"We are happy to announce **Docusaurus 3.2**.\\n\\nThe upgrade should be easy: as explained in our [release process documentation](/community/release-process), minor versions respect [Semantic Versioning](https://semver.org/).\\n\\n![Docusaurus blog post social card](./img/social-card.png)\\n\\n<!--truncate-->\\n\\nimport BrowserWindow from \'@site/src/components/BrowserWindow\';\\nimport IframeWindow from \'@site/src/components/BrowserWindow/IframeWindow\';\\nimport ErrorBoundaryTestButton from \'@site/src/components/ErrorBoundaryTestButton\';\\n\\n## Highlights\\n\\n### Faster builds\\n\\nWe worked hard to reduce the time it takes to build a Docusaurus site in production mode.\\n\\nBetween v3.1.0 and v3.2.0, several changes have been made, leading to significantly faster production builds for many sites.\\n\\nLet\'s take an example. Our benchmark on the [React Native website upgrading to v3.2](https://github.com/facebook/react-native-website/pull/4072) reports the following results:\\n\\n- \u{1F525} Cold builds: 95s \u27A1\uFE0F 66s (~30% faster)\\n- \u{1F525} Incremental builds: 55s \u27A1\uFE0F 22s (~60% faster)\\n\\nThe results will vary depending on your site\'s topology and the options you turned on, but we expect the largest sites will see the most significant improvements.\\n\\nNote that this is only the beginning, and Docusaurus performance can still be significantly improved, notably the bundling time and the memory consumption. Track our [performance issue](https://github.com/facebook/docusaurus/issues/4765) for upcoming improvements.\\n\\n<details>\\n <summary>What is the difference between a cold build and an incremental build?</summary>\\n\\nA cold build is when the Docusaurus caches are empty, generally after running `docusaurus clear`.\\n\\nAn incremental build happens when you run another time the `docusaurus build` command. Docusaurus automatically tries to \\"re-use\\" computations from former builds to make subsequent builds faster. In practice it\'s based on [Webpack persistent caching](https://webpack.js.org/guides/build-performance/#persistent-cache). To enable incremental builds on your CI server, you can persist the `node_modules/.cache` folder across builds.\\n\\n</details>\\n\\n### Faster Dev Server\\n\\nWe also worked on improving the performance of the dev server, so that you can get a faster feedback when editing Markdown/MDX files.\\n\\nThe way we initially implemented content reloading wasn\'t great. For example, editing a blog post file would also trigger a useless reload of the unrelated docs plugin. From now on, when editing a plugin\'s content, only that plugin will reload. It\'s hard to measure precisely the impact of this change, but I estimate edits should appear in your browser at least 50% faster \u{1F525}.\\n\\nWe plan to keep improving the speed of our dev server, with even more granular hot reloads, ensuring we don\'t run useless computations that would always keep giving the same result.\\n\\n### MDX partials table-of-contents\\n\\nWith [#9684](https://github.com/facebook/docusaurus/pull/9684), Docusaurus is now able to render headings coming from an imported partial into the table-of-contents.\\n\\nDocusaurus and MDX allows you to [import one Markdown file into another](/docs/markdown-features/react#importing-markdown). We usually call the imported Markdown file a \\"partial\\", and use the `_` prefix so that this file does not lead to the creation of a new page.\\n\\n```md title=\\"myDoc.mdx\\"\\n# My Doc\\n\\n## Doc heading\\n\\nContent is imported from another MDX file:\\n\\nimport ImportedDoc from \'./\\\\_importedDoc.mdx\';\\n\\n<ImportedDoc />\\n```\\n\\n```md title=\\"_myPartial.mdx\\"\\n## Partial heading\\n\\nSome paragraph\\n```\\n\\nPreviously, the heading `Partial heading` did not appear in the table-of-contents, but now it will!\\n\\n### Blog improvements\\n\\nWe improved the blog plugin with several new options to make it even more powerful and flexible:\\n\\n- [#9912](https://github.com/facebook/docusaurus/pull/9912): you can now display the last update time and author of a blog post, a feature the docs plugin already had.\\n- [#9886](https://github.com/facebook/docusaurus/pull/9886): a new `processBlogPosts` option allow you to filter/transform/sort blog posts.\\n- [#9838](https://github.com/facebook/docusaurus/pull/9838): a new `pageBasePath` option allows you to customize the blog pagination URL segment (`/blog/page/2`)\\n\\n### Sitemap lastmod\\n\\nWith [#9954](https://github.com/facebook/docusaurus/pull/9954), the sitemap plugin has a new `lastmod` option that can now emit a `<lastmod>` tag on the XML. The value is read from the Git history by default, but can be overridden with docs and blog `last_update` front matter.\\n\\nWe also made it possible to opt-out of emitting `<priority>` and `<frequency>` tags, which are generally ignored by crawlers (notably [Google](https://developers.google.com/search/blog/2023/06/sitemaps-lastmod-ping)).\\n\\nWe recommend using the following sitemap plugin config, that will become the default in Docusaurus V4:\\n\\n```js\\n{\\n lastmod: \'date\',\\n priority: null,\\n changefreq: null,\\n}\\n```\\n\\n## Other changes\\n\\n- [#9687](https://github.com/facebook/docusaurus/pull/9687): new Vercel Analytics plugin\\n- [#9681](https://github.com/facebook/docusaurus/pull/9681) and [#9442](https://github.com/facebook/docusaurus/pull/9442): `docusaurus swizzle` and `create-docusaurus` CLIs now ask users if they prefer to use TypeScript\\n- [#9928](https://github.com/facebook/docusaurus/pull/9928): new Icelandic translation\\n- [#9928](https://github.com/facebook/docusaurus/pull/9931): new `allContentLoaded` plugin lifecycle (experimental)\\n\\nCheck the **[3.2.0 changelog entry](/changelog/3.2.0)** for an exhaustive list of changes."},{"id":"/releases/3.1","metadata":{"permalink":"/blog/releases/3.1","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.1/index.mdx","source":"@site/blog/releases/3.1/index.mdx","title":"Docusaurus 3.1","description":"We are happy to announce Docusaurus 3.1.","date":"2024-01-05T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":1.665,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.1","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-01-05T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 3.2","permalink":"/blog/releases/3.2"},"nextItem":{"title":"Announcing Docusaurus 3.0","permalink":"/blog/releases/3.0"}},"content":"We are happy to announce **Docusaurus 3.1**.\\n\\nThe upgrade should be easy: as explained in our [release process documentation](/community/release-process), minor versions respect [Semantic Versioning](https://semver.org/).\\n\\n![Docusaurus blog post social card](./img/social-card.png)\\n\\n<!--truncate-->\\n\\nimport BrowserWindow from \'@site/src/components/BrowserWindow\';\\nimport IframeWindow from \'@site/src/components/BrowserWindow/IframeWindow\';\\nimport ErrorBoundaryTestButton from \'@site/src/components/ErrorBoundaryTestButton\';\\n\\n## Highlights\\n\\n### Broken anchors checker\\n\\nIn [#9528](https://github.com/facebook/docusaurus/pull/9528), we improved the built-in broken links checker to also detect broken anchors.\\n\\n![Docusaurus blog post social card](./img/broken-anchor.jpg)\\n\\n:::tip[Make it fail fast]\\n\\nThe new [`onBrokenAnchors`](/docs/api/docusaurus-config#onBrokenAnchors) option has value `warn` by default, for retro-compatibility reasons.\\n\\nWe recommend to turn it to `throw` and fail your CI builds instead of deploying broken anchors to productions.\\n\\n:::\\n\\n:::note\\n\\nFor users and plugin authors implementing custom `<Heading>` and `<Link>` components, we provide a new [`useBrokenLinks`](/docs/docusaurus-core#useBrokenLinks) React hook API.\\n\\n**Most Docusaurus users don\'t need to care about it**, built-in components (`docusaurus/Link` and `@theme/Heading`) already use it internally.\\n\\n:::\\n\\n### `parseFrontMatter` hook\\n\\nIn [#9624](https://github.com/facebook/docusaurus/pull/9624), we added a new [`siteConfig.markdown.parseFrontMatter` function hook](/docs/api/docusaurus-config#markdown).\\n\\nThis makes it possible to implement convenient front matter transformations, shortcuts, or to integrate with external systems using front matter that Docusaurus plugins do not support.\\n\\n```js title=\\"docusaurus.config.js\\"\\nexport default {\\n markdown: {\\n // highlight-start\\n parseFrontMatter: async (params) => {\\n // Reuse the default parser\\n const result = await params.defaultParseFrontMatter(params);\\n\\n // Process front matter description placeholders\\n result.frontMatter.description =\\n result.frontMatter.description?.replaceAll(\'{{MY_VAR}}\', \'MY_VALUE\');\\n\\n // Create your own front matter shortcut\\n if (result.frontMatter.i_do_not_want_docs_pagination) {\\n result.frontMatter.pagination_prev = null;\\n result.frontMatter.pagination_next = null;\\n }\\n\\n // Rename an unsupported front matter coming from another system\\n if (result.frontMatter.cms_seo_summary) {\\n result.frontMatter.description = result.frontMatter.cms_seo_summary;\\n delete result.frontMatter.cms_seo_summary;\\n }\\n\\n return result;\\n },\\n // highlight-end\\n },\\n};\\n```\\n\\nRead the [front matter guide](/docs/markdown-features#front-matter) and the [`parseFrontMatter` API ref](/docs/api/docusaurus-config#markdown) for details.\\n\\n## Other changes\\n\\nOther notable changes include:\\n\\n- [#9674](https://github.com/facebook/docusaurus/pull/9674): add `siteConfig.markdown.remarkRehypeOptions` to pass options to `remark-rehype`, letting you customize things such as MDX footnote label\\n- [#9671](https://github.com/facebook/docusaurus/pull/9671): add code block MagicComments support for (Visual) Basic/Batch/Fortran/COBOL/ML\\n- [#9610](https://github.com/facebook/docusaurus/pull/9610): enable CLI port configuration via `PORT` environment variable\\n- [#9477](https://github.com/facebook/docusaurus/pull/9477): complete Brazilian Portuguese (pt-BR) translations\\n\\nCheck the **[3.1.0 changelog entry](/changelog/3.1.0)** for an exhaustive list of changes."},{"id":"/releases/3.0","metadata":{"permalink":"/blog/releases/3.0","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.0/index.mdx","source":"@site/blog/releases/3.0/index.mdx","title":"Announcing Docusaurus 3.0","description":"Today, we are happy to announce Docusaurus 3.0! \u{1F973}","date":"2023-10-31T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":10.515,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Announcing Docusaurus 3.0","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2023-10-31T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 3.1","permalink":"/blog/releases/3.1"},"nextItem":{"title":"Preparing your site for Docusaurus v3","permalink":"/blog/preparing-your-site-for-docusaurus-v3"}},"content":"Today, we are happy to **announce Docusaurus 3.0**! \u{1F973}\\n\\nAt [**Meta Open Source**](https://opensource.fb.com/), we believe Docusaurus will help you build the **best documentation websites** with **minimal effort**, letting you **focus on what really matters**: writing the content.\\n\\nThis is a new **major version** of Docusaurus, coming with **new exciting features** and upgraded dependencies.\\n\\nIn line with the [**Semantic Versioning**](https://semver.org/) principles, this release includes **breaking changes** we documented thoroughly in the [**v3 upgrade guide**](/docs/migration/v3/). Breaking changes can be bothersome, but they are necessary to set the ground for a **new wave of Docusaurus features** we plan to implement.\\n\\n![v3.0 social-card image](./img/social-card.png)\\n\\n{/* truncate */}\\n\\nWe initially planned to release more frequent major versions, but Docusaurus v3 has taken longer than expected. Among the breaking changes that we accrued, **upgrading to MDX v3** is probably the main challenge to the adoption of this new version. We went the extra mile to make this upgrade as easy as possible, notably by adding [compatibility options for MDX v1](/docs/api/docusaurus-config#markdown).\\n\\nThe simplest sites will only need to upgrade a few npm dependencies. For more complex sites, we came up with a few strategies that can help you upgrade more confidently:\\n\\n- [Prepare your site](/blog/preparing-your-site-for-docusaurus-v3) ahead of time, incrementally, while staying on Docusaurus v2\\n- [Set up visual regression tests](/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing) to catch unexpected visual changes happening during the upgrade\\n\\n:::info About Docusaurus v2\\n\\nAccording to our [release process](/community/release-process#stable-version), Docusaurus v2 has now entered **maintenance mode**. It will only receive support for major security issues for 3 months, until 31 January 2024. It is recommended to upgrade within that time frame to v3.\\n\\n:::\\n\\nimport IframeWindow from \'@site/src/components/BrowserWindow/IframeWindow\';\\n\\n## Breaking changes\\n\\nThis section only gives you a quick glance. All the breaking changes are thoroughly documented in the [**v3 upgrade guide**](/docs/migration/v3).\\n\\nDocusaurus v3 upgraded a few dependencies to new major versions, each coming with its own breaking changes:\\n\\n- Node.js v16 \u27A1\uFE0F v18\\n- React v17 \u27A1\uFE0F v18\\n- MDX v1 \u27A1\uFE0F v3\\n- TypeScript v4 \u27A1\uFE0F v5\\n- prism-react-renderer v1 \u27A1\uFE0F v2\\n- react-live v2 \u27A1\uFE0F v4\\n- Mermaid v9 \u27A1\uFE0F v10\\n- import-fresh v3 \u27A1\uFE0F jiti v1\\n- remark-emoji v2 \u27A1\uFE0F v4\\n\\nA typical `package.json` dependency upgrade looks like:\\n\\n```diff title=\\"package.json\\"\\n {\\n \\"dependencies\\": {\\n // upgrade to Docusaurus v3\\n- \\"@docusaurus/core\\": \\"2.4.3\\",\\n- \\"@docusaurus/preset-classic\\": \\"2.4.3\\",\\n+ \\"@docusaurus/core\\": \\"3.0.0\\",\\n+ \\"@docusaurus/preset-classic\\": \\"3.0.0\\",\\n // upgrade to MDX v3\\n- \\"@mdx-js/react\\": \\"^1.6.22\\",\\n+ \\"@mdx-js/react\\": \\"^3.0.0\\",\\n // upgrade to prism-react-renderer v2.0+\\n- \\"prism-react-renderer\\": \\"^1.3.5\\",\\n+ \\"prism-react-renderer\\": \\"^2.1.0\\",\\n // upgrade to React v18.0+\\n- \\"react\\": \\"^17.0.2\\",\\n- \\"react-dom\\": \\"^17.0.2\\"\\n+ \\"react\\": \\"^18.2.0\\",\\n+ \\"react-dom\\": \\"^18.2.0\\"\\n },\\n \\"devDependencies\\": {\\n // upgrade Docusaurus dev dependencies to v3\\n- \\"@docusaurus/module-type-aliases\\": \\"2.4.3\\",\\n- \\"@docusaurus/types\\": \\"2.4.3\\"\\n+ \\"@docusaurus/module-type-aliases\\": \\"3.0.0\\",\\n+ \\"@docusaurus/types\\": \\"3.0.0\\"\\n }\\n \\"engines\\": {\\n // require Node.js 18.0+\\n- \\"node\\": \\">=16.14\\"\\n+ \\"node\\": \\">=18.0\\"\\n }\\n }\\n```\\n\\nApart from MDX v3, most breaking changes coming with those upgraded dependencies have been handled internally for you: most of the time, you shouldn\'t have to do anything. Outside of dependencies, the only functional breaking changes coming explicitly from the Docusaurus codebase are:\\n\\n- [#9189](https://github.com/facebook/docusaurus/pull/9189): new default blog RSS feed limit of 20 entries\\n- [#9308](https://github.com/facebook/docusaurus/pull/9308): fix and re-introduce the `:::warning` admonition, deprecate `:::caution`\\n- [#9310](https://github.com/facebook/docusaurus/pull/9310): remove the legacy versioned sidebar id prefix, used for sites versioned before `v2.0.0-beta.10` (December 2021)\\n- [#7966](https://github.com/facebook/docusaurus/pull/7966): refactor docs theme components, eventually requiring to you re-swizzle them\\n\\n## Highlights\\n\\nBelow is a non-exhaustive list of new useful features coming with this new version. All the features are listed in the [**Docusaurus v3.0.0 release notes**](https://github.com/facebook/docusaurus/releases/tag/v3.0.0).\\n\\n### Markdown\\n\\nDocusaurus v3 upgraded from MDX v1 to MDX v3:\\n\\n- in [#8288](https://github.com/facebook/docusaurus/pull/8288), we upgraded to [**MDX v2**](https://mdxjs.com/blog/v2/) ([migration guide](https://mdxjs.com/migrating/v2/))\\n- in [#9451](https://github.com/facebook/docusaurus/pull/9451), we upgraded to [**MDX v3**](https://mdxjs.com/blog/v3/) ([migration guide](https://mdxjs.com/migrating/v3/))\\n\\nThis new MDX version is **much better for content writers and plugin authors**, and lays the ground for implementing new exciting Markdown features.\\n\\n:::warning MDX v3 - the main challenge\\n\\nThe transition from MDX v1 to MDX v3 is the **main challenge** to the adoption of Docusaurus v3.\\n\\nSome documents that compiled successfully under Docusaurus v2 might now **fail to compile** under Docusaurus v3, while others might **render differently**.\\n\\nMost breaking changes come from [MDX v2](https://mdxjs.com/blog/v2/), and [MDX v3](https://mdxjs.com/blog/v3/) is a relatively small release. The [MDX v2 migration guide](https://mdxjs.com/migrating/v2/) has a section on how to [update MDX files](https://mdxjs.com/migrating/v2/#update-mdx-files) that will be particularly relevant to us. Also make sure to read the [Troubleshooting MDX](https://mdxjs.com/docs/troubleshooting-mdx/) page that can help you interpret common MDX error messages.\\n\\n**Don\'t be intimidated**. Most problems are **easy to fix** and often related to `{` and `<` characters that you now need to escape. However, depending on the size of your site, you might need to edit many files and feel overwhelmed. For this reason, we provide a command [`npx docusaurus-mdx-checker`](https://github.com/slorber/docusaurus-mdx-checker) to help you get an estimate of the work to be done, and we recommend to [prepare your site in advance](/blog/preparing-your-site-for-docusaurus-v3).\\n\\nIf you created custom [MDX plugins](/docs/markdown-features/plugins) (Remark/Rehype), the AST is slightly different, and you might need to refactor them.\\n\\n:::\\n\\nThis notably enables us to add a [CommonMark mode](/docs/markdown-features#mdx-vs-commonmark) that should make it easier for existing documentations to adopt Docusaurus. It is currently opt-in and **experimental** and limited ([some Docusaurus features will not work](https://github.com/facebook/docusaurus/issues/9092)). In Docusaurus v3, all files are still interpreted as MDX, but we plan to interpret `.md` files as CommonMark in an upcoming major version, and recommend to use the `.mdx` extension for any file using JSX or ES modules.\\n\\nWe also introduced a new way to [configure Markdown globally for your site](/docs/api/docusaurus-config#markdown), and plan to add more flexible options later.\\n\\n```js title=\\"docusaurus.config.js\\"\\nexport default {\\n markdown: {\\n format: \'mdx\',\\n mermaid: true,\\n preprocessor: ({filePath, fileContent}) => {\\n return fileContent.replaceAll(\'{{MY_VAR}}\', \'MY_VALUE\');\\n },\\n mdx1Compat: {\\n comments: true,\\n admonitions: true,\\n headingIds: true,\\n },\\n },\\n};\\n```\\n\\nDocusaurus now uses the [remark-directive](https://github.com/remarkjs/remark-directive) plugin to support admonitions. This also offers you the ability to create your own Remark plugins to extend Markdown with your own [custom directives](https://talk.commonmark.org/t/generic-directives-plugins-syntax/444) such as `:textDirective`, `::leafDirective` or `:::containerDirective`.\\n\\n### ESM and TypeScript configs {#esm-ts-configs}\\n\\nIn [#9317](https://github.com/facebook/docusaurus/pull/9317), we added support for ES Modules and TypeScript config files, including site config, docs sidebars, plugins and presets.\\n\\nHere are 2 TypeScript examples, giving you a modern experience with IDE autocompletion:\\n\\n```ts title=\\"docusaurus.config.ts\\"\\nimport type {Config} from \'@docusaurus/types\';\\nimport type * as Preset from \'@docusaurus/preset-classic\';\\n\\nconst config: Config = {\\n title: \'My Site\',\\n favicon: \'img/favicon.ico\',\\n // your site config ...\\n presets: [\\n [\\n \'classic\',\\n {\\n // your preset config ...\\n } satisfies Preset.Options,\\n ],\\n ],\\n themeConfig: {\\n // your theme config ...\\n } satisfies Preset.ThemeConfig,\\n};\\n\\nexport default config;\\n```\\n\\n```ts title=\\"sidebars.ts\\"\\nimport type {SidebarsConfig} from \'@docusaurus/plugin-content-docs\';\\n\\nconst sidebars: SidebarsConfig = {\\n docs: [\'introduction\'],\\n};\\n\\nexport default sidebars;\\n```\\n\\n### Unlisted content\\n\\nDocusaurus already supported a `draft: true` front matter option in our 3 content plugins (docs, blog, pages), which allows you to remove some pages from your production builds.\\n\\nIn [#8004](https://github.com/facebook/docusaurus/pull/8004), we introduced a new `unlisted: true` front matter option, which will keep your pages available in production builds, while \\"hiding\\" them and making them impossible to discover unless you have the url. This enables convenient workflows where you can easily ask for feedback on a piece of content before the final publication.\\n\\nUnlisted content will:\\n\\n- be excluded from `sitemap.xml`\\n- be excluded from SEO results thanks to `<meta name=\\"robots\\" content=\\"noindex, nofollow\\" />`\\n- be excluded from blog RSS feeds\\n- be excluded from Algolia DocSearch results\\n- be filtered from site navbar items, docs sidebars, blog sidebar, blog archives, tags pages...\\n\\nUnlisted content will also display a banner so that you don\'t forget to turn it off once your content is ready for prime time. Here\'s an example of an [unlisted blog post](/tests/blog/unlisted-post):\\n\\n<IframeWindow url=\\"/tests/blog/unlisted-post\\" />\\n\\n### React 18\\n\\nIn [#8961](https://github.com/facebook/docusaurus/pull/8961), we upgraded to React 18. This is important, notably for the [gradual adoption of Concurrent React features](https://react.dev/blog/2022/03/29/react-v18#gradually-adopting-concurrent-features), as well as upcoming exciting features such as [build-time React Server Components](https://github.com/facebook/docusaurus/issues/9089).\\n\\nThis new version of React should be a drop-in replacement for most Docusaurus sites. It comes with breaking changes that we handled internally in the Docusaurus codebase. If your site is using a lot of custom React code, we recommend you to take a look at the official article on [How to Upgrade to React 18](https://react.dev/blog/2022/03/08/react-18-upgrade-guide), notably the new [automatic batching](https://react.dev/blog/2022/03/08/react-18-upgrade-guide#automatic-batching) behavior.\\n\\n:::danger Experimental support for React 18 features\\n\\nReact 18 comes with new features:\\n\\n- `<Suspense>`\\n- `React.lazy()`\\n- `startTransition()`\\n\\nTheir Docusaurus support is considered as **experimental**. We might have to adjust the integration in the future, leading to a different runtime behavior.\\n\\n:::\\n\\n### Automatic JSX runtime\\n\\nDocusaurus now uses the [\\"automatic\\" JSX runtime](https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html).\\n\\nIt is not needed anymore to import React in JSX files that do not use any React API.\\n\\n```diff title=\\"src/components/MyComponent.js\\"\\n- import React from \'react\';\\n\\n export default function MyComponent() {\\n return <div>Hello</div>;\\n }\\n```\\n\\n### Debug builds\\n\\nIt is now possible to build your static site in dev mode.\\n\\n```bash\\ndocusaurus build --dev\\n```\\n\\n:::tip Debug React-related problems\\n\\nDocusaurus will log more errors to the console, notably React 18 hydration errors through the new [`onRecoverableError` callback](https://react.dev/reference/react-dom/client/hydrateRoot#parameters).\\n\\nThis new build mode is particularly helpful for **troubleshooting React problems**. Docusaurus will use the development build of React, thus producing detailed and readable error messages instead of minified ones linking to the [React Error Decoder page](https://reactjs.org/docs/error-decoder.html/).\\n\\n:::\\n\\n### TypeScript\\n\\nDocusaurus v3 now requires a minimum version of TypeScript 5.0.\\n\\nWe re-internalized the base recommended TypeScript config to a new official package:\\n\\n```diff title=\\"tsconfig.json\\"\\n {\\n- \\"extends\\": \\"@tsconfig/docusaurus/tsconfig.json\\",\\n+ \\"extends\\": \\"@docusaurus/tsconfig\\",\\n \\"compilerOptions\\": {\\n \\"baseUrl\\": \\".\\"\\n }\\n }\\n```\\n\\nWe also have cleaner, normalized exports for Docusaurus core type, plugin, and preset options, which you can use within the brand-new [TypeScript config files](#esm-ts-configs):\\n\\n```ts title=\\"docusaurus.config.ts\\"\\nimport type {Config} from \'@docusaurus/types\';\\nimport type {Options, ThemeConfig} from \'@docusaurus/preset-classic\';\\nimport type {SidebarsConfig} from \'@docusaurus/plugin-content-docs\';\\n```\\n\\n### Code blocks\\n\\nIn [#9316](https://github.com/facebook/docusaurus/pull/9316), we improved on syntax highlighting thanks to the [prism-react-renderer](https://github.com/FormidableLabs/prism-react-renderer) v2 upgrade. For example, a bash param `--save` is now colored:\\n\\n```bash\\nnpm install --save some-package\\n```\\n\\nThe [interactive code editor](/docs/markdown-features/code-blocks#interactive-code-editor) also upgrades to [react-live](https://github.com/FormidableLabs/react-live) v4, coming with a new [sucrase](https://github.com/alangpierce/sucrase) compiler. It is faster, lighter, and supports modern features, notably TypeScript type annotations.\\n\\n```js live\\nfunction Hello() {\\n const name: string = \'World\';\\n return <div>Hello {name}</div>;\\n}\\n```\\n\\nIn [#8982](https://github.com/facebook/docusaurus/pull/8982) and [#8870](https://github.com/facebook/docusaurus/pull/8870), we also added [magic comments](/docs/markdown-features/code-blocks#custom-magic-comments) support for TeX-like, Haskell-like, and WebAssembly comment syntax.\\n\\n```haskell title=\\"haskell.hs\\"\\nstringLength :: String -> Int\\n-- highlight-next-line\\nstringLength [] = 0\\nstringLength (x:xs) = 1 + stringLength xs\\n```\\n\\n```matlab title=\\"matlab.m\\"\\n% highlight-start\\nfunction result = times2(n)\\n result = n * 2;\\nend\\n% highlight-end\\nx = 10;\\n% highlight-next-line\\ny = times2(x);\\n```\\n\\n### Mermaid diagrams\\n\\nIn [#9305](https://github.com/facebook/docusaurus/pull/9305), we upgraded to Mermaid v10.4 and added support for async diagram rendering. Docusaurus is now able to render new types of diagrams.\\n\\n<details>\\n <summary>Mindmap</summary>\\n\\n```mermaid\\nmindmap\\n root((mindmap))\\n Research\\n Creative techniques\\n Strategic planning\\n Argument mapping\\n Tools\\n Pen and paper\\n Mermaid\\n```\\n\\n</details>\\n\\n<details>\\n <summary>Quadrant chart</summary>\\n\\n```mermaid\\nquadrantChart\\n title Reach and engagement of campaigns\\n x-axis Low Reach --> High Reach\\n y-axis Low Engagement --> High Engagement\\n quadrant-1 We should expand\\n quadrant-2 Need to promote\\n quadrant-3 Re-evaluate\\n quadrant-4 May be improved\\n Campaign A: [0.3, 0.6]\\n Campaign B: [0.45, 0.23]\\n Campaign C: [0.57, 0.69]\\n Campaign D: [0.78, 0.34]\\n Campaign E: [0.40, 0.34]\\n Campaign F: [0.35, 0.78]\\n```\\n\\n</details>\\n\\n### Query-string data attributes\\n\\nIn [#9028](https://github.com/facebook/docusaurus/pull/9028), we made it possible to set custom HTML [data attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/data-*) though `docusaurus-data-x` query-string parameters. This makes it easier to embed a Docusaurus iframe on another site, and lets you customize the appearance of the embedded version with CSS.\\n\\n```css title=\\"/src/css/custom.css\\"\\nhtml[data-navbar=\'false\'] .navbar {\\n display: none;\\n}\\n\\nhtml[data-red-border] div#__docusaurus {\\n border: red solid thick;\\n}\\n```\\n\\n<IframeWindow url=\\"/docs/?docusaurus-data-navbar=false&docusaurus-data-red-border\\" />\\n\\n### Other features\\n\\nOther new features worth mentioning:\\n\\n- [#9189](https://github.com/facebook/docusaurus/pull/9189): new blog `feedOptions.limit` option\\n- [#9071](https://github.com/facebook/docusaurus/pull/9071): add normalized SEO front matter support for the pages plugin\\n- [#9171](https://github.com/facebook/docusaurus/pull/9028): the client-redirects plugin now supports fully qualified urls and query-string/hash in destination url\\n- [#9171](https://github.com/facebook/docusaurus/pull/9171): new ESLint rule [`no-html-links`](/docs/api/misc/@docusaurus/eslint-plugin/no-html-links)\\n- [#8384](https://github.com/facebook/docusaurus/pull/8384): new ESLint rule [`prefer-docusaurus-heading`](/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading)\\n\\nRead [**Docusaurus v3.0.0 release notes**](https://github.com/facebook/docusaurus/releases/tag/v3.0.0) for an exhaustive list of changes.\\n\\n## Conclusion\\n\\nThis release comes with a few features, but more importantly **upgrades many pieces of the Docusaurus infrastructure**.\\n\\nThe **MDX upgrade** consumed a lot of our time this year, and we worked hard to make this important upgrade less difficult for all of you.\\n\\nNow that we\'ve caught up with our infrastructure, we\'ll be back **delivering useful documentation features** very soon, in upcoming minor versions.\\n\\nWe would like to thank you for using Docusaurus over the years. The documentation framework space is becoming more competitive lately, and we will do our best to ensure that Docusaurus remains a **competitive solution** that stands out for its great **flexibility**."},{"id":"/preparing-your-site-for-docusaurus-v3","metadata":{"permalink":"/blog/preparing-your-site-for-docusaurus-v3","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2023/09-29-preparing-your-site-for-docusaurus-v3/index.mdx","source":"@site/blog/2023/09-29-preparing-your-site-for-docusaurus-v3/index.mdx","title":"Preparing your site for Docusaurus v3","description":"This blog post was written when Docusaurus v3 was in beta. There are some changes in dependency versions and upgrade steps you should be aware of if upgrading to Docusaurus v3 current stable releases. Use the upgrade guide for the most up-to-date migration steps.","date":"2023-09-29T00:00:00.000Z","tags":[{"inline":false,"label":"Maintenance","permalink":"/blog/tags/maintenance"}],"readingTime":13.975,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Preparing your site for Docusaurus v3","authors":["slorber"],"tags":["maintenance"],"slug":"/preparing-your-site-for-docusaurus-v3","image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Announcing Docusaurus 3.0","permalink":"/blog/releases/3.0"},"nextItem":{"title":"Upgrading frontend dependencies with confidence","permalink":"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing"}},"content":":::warning\\n\\nThis blog post was written when Docusaurus v3 was in beta. There are some changes in dependency versions and upgrade steps you should be aware of if upgrading to Docusaurus v3 current stable releases. Use the [upgrade guide](https://docusaurus.io/docs/next/migration/v3) for the most up-to-date migration steps.\\n\\n:::\\n\\n**Docusaurus v3** is now [**in beta**](https://github.com/facebook/docusaurus/discussions/9312) and the official release is around the corner. This is the perfect time to start **preparing your site** for this new major version.\\n\\nDocusaurus v3 comes with a few **breaking changes**, many of which can be **handled today under Docusaurus v2**. Preparing your site ahead of time can be done incrementally, and will make it easier to upgrade to v3.\\n\\nThe main breaking change is the upgrade from MDX v1 to MDX v3. Read the [**MDX v2**](https://mdxjs.com/blog/v2/) and [**MDX v3**](https://mdxjs.com/blog/v3/) release notes for details. MDX will now compile your Markdown content **more strictly** and with **subtle differences**.\\n\\nThis article will mostly focus on how to prepare your content for this new MDX version, and will also list a few other breaking changes that you can handle today.\\n\\n![Preparing your site for Docusaurus v3 - social card](./img/social-card.png)\\n\\n<!--truncate-->\\n\\n:::warning\\n\\nThis article mentions most Docusaurus v3 breaking changes, but is not exhaustive. Read the [v3.0.0-beta.0 release notes](https://github.com/facebook/docusaurus/discussions/9312) for an exhaustive list.\\n\\n:::\\n\\n:::tip Don\'t be afraid\\n\\nThere\'s a lot of content in this blog post, but many Docusaurus v2 sites can upgrade with very few changes.\\n\\nIf your site is relatively small, with only a few customizations, you can probably [upgrade to Docusaurus v3](#try-docusaurus-v3-today) immediately.\\n\\n:::\\n\\n## Preparatory work\\n\\nBefore preparing for the Docusaurus v3 upgrade, we recommend upgrading to the latest [Docusaurus v2 version](/versions).\\n\\nDepending on the complexity of your site, it may be a good idea to adopt the [visual regression testing workflow](/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing) that we recently presented. It could help you catch unexpected visual side effects occurring during the Docusaurus v3 upgrade.\\n\\nWe also recommend using the `.mdx` extension whenever you use JSX, `import`, or `export` (i.e. MDX features) inside a Markdown file. It is semantically more correct and improves compatibility with external tools (IDEs, formatters, linters, etc.). In future versions of Docusaurus, `.md` files will be parsed as standard [CommonMark](https://commonmark.org/), which does not support these features. In Docusaurus v3, `.md` files keep being compiled as MDX files, but it will be possible to [opt-in for CommonMark](https://github.com/facebook/docusaurus/issues/3018).\\n\\n## Preparing content for MDX v3\\n\\nMDX is a major dependency of Docusaurus responsible for compiling your `.md` and `.mdx` files to React components.\\n\\nMDX v3 is much better, but also comes with changes that probably require you to refactor your content a bit. MDX v3 is stricter, and some components that compiled fine under v1 might now fail to compile under v3, most likely because of `{` and `<` characters.\\n\\nUpgrading MDX comes with all the breaking changes documented on the [MDX v2](https://mdxjs.com/blog/v2/) and [MDX v3](https://mdxjs.com/blog/v3/) release blog posts. Most breaking changes come from MDX v2. The [MDX v2 migration guide](https://mdxjs.com/migrating/v2/) has a section on how to [update MDX files](https://mdxjs.com/migrating/v2/#update-mdx-files) that will be particularly relevant to us. Also make sure to read the [Troubleshooting MDX](https://mdxjs.com/docs/troubleshooting-mdx/) page that can help you interpret common MDX error messages.\\n\\nMake sure to also read our updated [**MDX and React**](/docs/markdown-features/react) documentation page.\\n\\n:::tip Ask for help\\n\\nWe have a dedicated [MDX v3 - Upgrade Support](https://github.com/facebook/docusaurus/discussions/9053) discussion.\\n\\n:::\\n\\n### Using the MDX playground\\n\\nThe MDX playground is your new best friend. It permits to understand how your content is **compiled to React components**, and troubleshoot compilation or rendering issues in isolation.\\n\\nEach MDX version comes with its own playground:\\n\\n- [MDX playground - current version](https://mdxjs.com/playground/)\\n- [MDX playground - v1](https://mdx-git-renovate-babel-monorepo-mdx.vercel.app/playground/)\\n\\n<details>\\n <summary>Configuring the MDX playground options for Docusaurus</summary>\\n\\nTo obtain a compilation behavior similar to what Docusaurus v2 uses, please turn on these options on the [MDX playground](https://mdxjs.com/playground/):\\n\\n- Use `MDX`\\n- Use `remark-gfm`\\n- Use `remark-directive`\\n\\n![Screenshot of the MDX playground\'s options panel, with only the \\"Use `MDX`\\", \\"Use `remark-gfm`\\", and \\"Use `remark-directive`\\" options checked](./img/mdx2-playground-options.png)\\n\\n</details>\\n\\nUsing the two MDX playgrounds side-by-side, you will soon notice that some content is compiled differently or fails to compile in v3.\\n\\n:::tip Making your content future-proof\\n\\nThe goal will be to refactor your problematic content so that it **works fine with both versions of MDX**. This way, when you upgrade to Docusaurus v3, this content will already work out-of-the-box.\\n\\n:::\\n\\n### Using the MDX checker CLI\\n\\nWe provide a [docusaurus-mdx-checker](https://github.com/slorber/docusaurus-mdx-checker) CLI that permits to easily spot problematic content. Run this command today on your Docusaurus v2 site to obtain a list of files that will fail to compile under MDX v3.\\n\\n```bash\\nnpx docusaurus-mdx-checker\\n```\\n\\nFor each compilation issue, the CLI will log the file path and a line number to look at.\\n\\n![Screenshot of the terminal showing an example MDX checker CLI output, with a few error messages](./img/mdx-checker-output.png)\\n\\n:::tip\\n\\nUse this CLI to estimate of how much work will be required to make your content compatible with MDX v3.\\n\\n:::\\n\\n:::warning\\n\\nThis CLI is a best effort, and will only report compilation errors.\\n\\nIt will not report subtle compilation changes that do not produce errors but can affect how your content is displayed. To catch these problems, we recommend using [visual regression tests](/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing).\\n\\n:::\\n\\n### Common MDX problems\\n\\nWe upgraded a few Docusaurus sites to Docusaurus v3 and MDX v3:\\n\\n- [Docusaurus PR](https://github.com/facebook/docusaurus/pull/8288)\\n- [React-Native PR](https://github.com/facebook/react-native-website/pull/3780)\\n- [Jest PR](https://github.com/jestjs/jest/pull/14463)\\n\\nThese upgrades permitted us to aggregate the most common content problems, and document how to best handle them.\\n\\n#### Bad usage of `{`\\n\\nThe `{` character is used for opening [JavaScript expressions](https://mdxjs.com/docs/what-is-mdx/#expressions). MDX will now fail if what you put inside `{expression}` is not a valid expression.\\n\\n```md title=\\"example.md\\"\\nThe object shape looks like {username: string, age: number}\\n```\\n\\n:::danger Error message\\n\\n> Could not parse expression with acorn: Unexpected content after expression\\n\\n:::\\n\\n:::tip How to prepare\\n\\nAvailable options to fix this error:\\n\\n- Use inline code: `{username: string, age: number}`\\n- Use the HTML code: `{`\\n- Escape it: `\\\\{`\\n\\n:::\\n\\n#### Bad usage of `<`\\n\\nThe `<` character is used for opening [JSX tags](https://mdxjs.com/docs/what-is-mdx/#jsx). MDX will now fail if it thinks your JSX is invalid.\\n\\n```md title=\\"example.md\\"\\nUse Android version <5\\n\\nYou can use a generic type like Array<T>\\n\\nFollow the template \\"Road to <YOUR_MINOR_VERSION>\\"\\n```\\n\\n:::danger Error messages\\n\\n> Unexpected character `5` (U+0035) before name, expected a character that can start a name, such as a letter, `$`, or `_`\\n\\n> Expected a closing tag for `<T>` (1:6-1:9) before the end of `paragraph` end-tag-mismatch mdast-util-mdx-jsx\\n\\n> Expected a closing tag for `<YOUR_MINOR_VERSION>` (134:19-134:39) before the end of `paragraph`\\n\\n:::\\n\\n:::tip How to prepare\\n\\nAvailable options to fix this error:\\n\\n- Use inline code: `Array<T>`\\n- Use the HTML code: `<` or `<`\\n- Escape it: `\\\\<` (unfortunately the `\\\\` will be displayed under MDX v1)\\n\\n:::\\n\\n#### Bad usage of GFM Autolink\\n\\nDocusaurus supports [GitHub Flavored Markdown (GFM)](https://github.github.com/gfm/), but [autolink](https://github.github.com/gfm/#autolinks) using the `<link>` syntax is not supported anymore by MDX.\\n\\n```md title=\\"example.md\\"\\n<sebastien@thisweekinreact.com>\\n\\n<http://localhost:3000>\\n```\\n\\n:::danger Error messages\\n\\n> Unexpected character `@` (U+0040) in name, expected a name character such as letters, digits, `$`, or `_`; whitespace before attributes; or the end of the tag (note: to create a link in MDX, use `[text](url)`)\\n\\n> Unexpected character `/` (U+002F) before local name, expected a character that can start a name, such as a letter, `$`, or `_` (note: to create a link in MDX, use `[text](url)`)\\n\\n:::\\n\\n:::tip How to prepare\\n\\nUse regular Markdown links, or remove the `<` and `>`. MDX and GFM are able to autolink literals already.\\n\\n{/* prettier-ignore */}\\n```md title=\\"example.md\\"\\nsebastien@thisweekinreact.com\\n[sebastien@thisweekinreact.com](mailto:sebastien@thisweekinreact.com)\\n\\nhttp://localhost:3000\\n[http://localhost:3000](http://localhost:3000)\\n```\\n\\n:::\\n\\n#### Lower-case MDXComponent mapping\\n\\nFor users providing a [custom `MDXComponent`mapping](/docs/markdown-features/react#mdx-component-scope), components are now \\"sandboxed\\":\\n\\n- a `MDXComponent` mapping for `h1` only gets used for `# hi` but not for `<h1>hi</h1>`\\n- a **lower-cased** custom element name will not be substituted by its respective `MDXComponent` component anymore\\n\\n:::danger visual difference\\n\\nYour [`MDXComponent` component mapping](/docs/markdown-features/react#mdx-component-scope) might not be applied as before, and your custom components might no longer be used.\\n\\n:::\\n\\n:::tip How to prepare\\n\\nFor native Markdown elements, you can keep using **lower-case**: `p`, `h1`, `img`, `a`...\\n\\nFor any other element, **use upper-case names**.\\n\\n```diff title=\\"src/theme/MDXComponents.js\\"\\n import MDXComponents from \'@theme-original/MDXComponents\';\\n\\n export default {\\n ...MDXComponents,\\n p: (props) => <p {...props} className=\\"my-paragraph\\"/>\\n- myElement: (props) => <div {...props} className=\\"my-class\\" />,\\n+ MyElement: (props) => <div {...props} className=\\"my-class\\" />,\\n };\\n```\\n\\n:::\\n\\n#### Unintended extra paragraphs\\n\\nIn MDX, it is now possible to interleave JSX and Markdown more easily without requiring extra line breaks. Writing content on multiple lines can also produce new expected `<p>` tags.\\n\\n:::danger visual difference\\n\\nSee how this content is rendered differently by MDX v1 and v3.\\n\\n```md title=\\"example.md\\"\\n<div>Some **Markdown** content</div>\\n<div>\\n Some **Markdown** content\\n</div>\\n```\\n\\n{/* prettier-ignore */}\\n```html title=\\"MDX v1 output\\"\\n<div>Some **Markdown** content</div>\\n<div>Some **Markdown** content</div>\\n```\\n\\n{/* prettier-ignore */}\\n```html title=\\"MDX v3 output\\"\\n<div>Some <strong>Markdown</strong> content</div>\\n<div><p>Some <strong>Markdown</strong> content</p></div>\\n```\\n\\n:::\\n\\n:::tip How to prepare\\n\\nIf you don\'t want an extra `<p>` tag, refactor content on a case by case basis to use a single-line JSX tag.\\n\\n```diff\\n <figure>\\n <img src=\\"/img/myImage.png\\" alt=\\"My alt\\" />\\n- <figcaption>\\n- My image caption\\n- </figcaption>\\n+ <figcaption>My image caption</figcaption>\\n </figure>\\n```\\n\\nIf your content contains \\"Markdown inlines\\" (`**`, `*`, `_`, `[link](/path)`), you might not be able to refactor it ahead of time, and will have to do it alongside the Docusaurus v3 upgrade.\\n\\n:::\\n\\n#### Unintended usage of directives\\n\\nDocusaurus v3 now uses [Markdown Directives](https://talk.commonmark.org/t/generic-directives-plugins-syntax/444) (implemented with [remark-directive](https://github.com/remarkjs/remark-directive)) as a generic way to provide support for admonitions, and other upcoming Docusaurus features.\\n\\n```md title=\\"example.md\\"\\nThis is a :textDirective\\n\\n::leafDirective\\n\\n:::containerDirective\\n\\nContainer directive content\\n\\n:::\\n```\\n\\n:::danger Visual change\\n\\nDirectives are parsed with the purpose of being handled by other Remark plugins. Unhandled directives will be ignored, and won\'t be rendered back in their original form.\\n\\n```md title=\\"example.md\\"\\nThe AWS re:Invent conf is great\\n```\\n\\nDue to `:Invent` being parsed as a text directive, this will now be rendered as:\\n\\n```\\nThe AWS re\\nconf is great\\n```\\n\\n:::\\n\\n:::tip How to prepare\\n\\n- Use the HTML code: `:`\\n- Add a space after `:` (if it makes sense): `: text`\\n- Escape it: `\\\\:` (unfortunately the `\\\\` will be displayed under MDX v1)\\n\\n:::\\n\\n#### Unsupported indented code blocks\\n\\nMDX does not transform indented text as code blocks anymore.\\n\\n```md title=\\"example.md\\"\\n console.log(\\"hello\\");\\n```\\n\\n:::danger Visual change\\n\\nThe upgrade does not generally produce new MDX compilation errors, but can lead to content being rendered in an unexpected way because there isn\'t a code block anymore.\\n\\n:::\\n\\n:::tip How to prepare\\n\\nUse the regular code block syntax instead of indentation:\\n\\n````md title=\\"example.md\\"\\n```js\\nconsole.log(\'hello\');\\n```\\n````\\n\\n:::\\n\\n### MDX plugins\\n\\nAll the official packages (Unified, Remark, Rehype...) in the MDX ecosystem are now [**ES Modules only**](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c) and do not support [CommonJS](https://nodejs.org/api/modules.html#modules-commonjs-modules) anymore.\\n\\nIn practice this means that you can\'t do `require(\\"remark-plugin\\")` anymore.\\n\\n:::tip How to prepare\\n\\nDocusaurus v3 now supports [**ES Modules**](https://flaviocopes.com/es-modules/) configuration files. We recommend that you migrate your config file to ES module, that enables you to import the Remark plugins easily:\\n\\n```js title=\\"docusaurus.config.js\\"\\nimport remarkPlugin from \'remark-plugin\';\\n\\nexport default {\\n title: \'Docusaurus\',\\n /* site config using remark plugins here */\\n};\\n```\\n\\nIf you want to keep using CommonJS modules, you can use dynamic imports as a workaround that enables you to import ES modules inside a CommonJS module. Fortunately, the [Docusaurus config supports the usage of an async function](/docs/configuration#syntax-to-declare-docusaurus-config) to let you do so.\\n\\n```js title=\\"docusaurus.config.js\\"\\nmodule.exports = async function () {\\n const myPlugin = (await import(\'remark-plugin\')).default;\\n return {\\n // site config...\\n };\\n};\\n```\\n\\n:::\\n\\n:::info For plugin authors\\n\\nIf you created custom Remark or Rehype plugins, you may need to refactor those, or eventually rewrite them completely, due to how the new AST is structured. We have created a [dedicated support discussion](https://github.com/facebook/docusaurus/discussions/9337) to help plugin authors upgrade their code.\\n\\n:::\\n\\n## Other breaking changes\\n\\nApart from MDX, there are other breaking changes that you can already prepare your site for, notably major version upgrades of important dependencies.\\n\\n### Node.js 18.0\\n\\nNode.js 16 [reached End-of-Life](https://nodejs.org/en/blog/announcements/nodejs16-eol), and Docusaurus v3 now requires **Node.js >= 18.0**.\\n\\n:::tip How to prepare\\n\\nUpgrade your Docusaurus v2 site to Node.js 18 before upgrading to Docusaurus v3.\\n\\n:::\\n\\n### React 18.0\\n\\nDocusaurus v3 now requires **React >= 18.0**.\\n\\nReact 18 comes with its own breaking changes that should be relatively easy to handle, depending on the amount of custom React code you created for your site.\\n\\nSimple Docusaurus sites that only use our official theme code without swizzling do not have anything to do.\\n\\n:::tip How to prepare\\n\\nRead the official [React v18.0](https://react.dev/blog/2022/03/29/react-v18) and [How to Upgrade to React 18](https://react.dev/blog/2022/03/08/react-18-upgrade-guide), and look at your first-party React code to figure out which components might be affected this React 18 upgrade.\\n\\nWe recommend to particularly look for:\\n\\n- Automatic batching for stateful components\\n- New React hydration errors reported to the console\\n\\n:::\\n\\n### TypeScript 5.0\\n\\nDocusaurus v3 now requires **TypeScript >= 5.0**.\\n\\n:::tip How to prepare\\n\\nUpgrade your Docusaurus v2 site to TypeScript 5 before upgrading to Docusaurus v3.\\n\\n:::\\n\\n### TypeScript base config\\n\\nThe official Docusaurus TypeScript config has been re-internalized from the external package [`@tsconfig/docusaurus`](https://www.npmjs.com/package/@tsconfig/docusaurus) to our new monorepo package [`@docusaurus/tsconfig`](https://www.npmjs.com/package/@docusaurus/tsconfig).\\n\\nThis new package is versioned alongside all the other Docusaurus core packages, and will be used to ensure TypeScript retro-compatibility and breaking changes on major version upgrades.\\n\\n:::tip How to prepare\\n\\nThe new Docusaurus v3 TypeScript config is sensibly the same as the former Docusaurus v2 TypeScript config. If you upgraded to TypeScript 5, using the Docusaurus v3 config on a v2 site is already possible:\\n\\n```diff title=\\"package.json\\"\\n {\\n \\"devDependencies\\": {\\n- \\"@tsconfig/docusaurus\\": \\"^1.0.7\\",\\n+ \\"@docusaurus/tsconfig\\": \\"^3.0.0-beta.0\\",\\n }\\n }\\n```\\n\\n```diff title=\\"tsconfig.json\\"\\n {\\n- \\"extends\\": \\"@tsconfig/docusaurus/tsconfig.json\\",\\n+ \\"extends\\": \\"@docusaurus/tsconfig\\",\\n \\"compilerOptions\\": {\\n \\"baseUrl\\": \\".\\"\\n }\\n }\\n```\\n\\n:::\\n\\n### Admonition warning\\n\\nFor historical reasons, we support an undocumented admonition `:::warning` that renders with a red color.\\n\\n:::danger Warning\\n\\nThis is a Docusaurus v2 `:::warning` admonition.\\n\\n:::\\n\\nHowever, the color and icon is historically wrong. Docusaurus v3 re-introduces `:::warning` admonition officially, documents it, and fix the color and icon.\\n\\n:::warning\\n\\nThis is a Docusaurus v3 `:::warning` admonition.\\n\\n:::\\n\\n:::tip How to prepare\\n\\nIf you previously used the undocumented `:::warning` admonition, make sure to verify for each usage if yellow is now an appropriate color. If you want to keep the red color, use `:::danger` instead.\\n\\nDocusaurus v3 also [deprecated the `:::caution`](https://github.com/facebook/docusaurus/pull/9308) admonition. Please refactor `:::caution` (yellow) to either `:::warning` (yellow) or `:::danger` (red).\\n\\n:::\\n\\n### Versioned sidebars\\n\\nThis breaking change will only affect **Docusaurus v2 early adopters** who versioned their docs before `v2.0.0-beta.10` (December 2021).\\n\\nWhen creating version `v1.0.0`, the sidebar file contained a prefix `version-v1.0.0/` that [Docusaurus v3 does not support anymore](https://github.com/facebook/docusaurus/pull/9310).\\n\\n```json title=\\"versioned_sidebars/version-v1.0.0-sidebars.json\\"\\n{\\n \\"version-v1.0.0/docs\\": [\\n \\"version-v1.0.0/introduction\\",\\n \\"version-v1.0.0/prerequisites\\"\\n ]\\n}\\n```\\n\\n:::tip How to prepare\\n\\nYour Docusaurus v2 site is able to handle the 2 sidebar formats similarly.\\n\\nYou can remove the useless versioned prefix from your versioned sidebars.\\n\\n```json title=\\"versioned_sidebars/version-v1.0.0-sidebars.json\\"\\n{\\n \\"docs\\": [\\"introduction\\", \\"prerequisites\\"]\\n}\\n```\\n\\n:::\\n\\n## Try Docusaurus v3 today {#try-docusaurus-v3-today}\\n\\nDocusaurus v3 is now [in beta](https://github.com/facebook/docusaurus/discussions/9312), and already used in production by [React-Native](https://reactnative.dev), [Jest](https://jestjs.io), and [our own website](https://docusaurus.io/).\\n\\nWe think this new Docusaurus version is **robust and ready to be deployed in production**. It should be released officially soon, after receiving a positive feedback from early adopters of our community.\\n\\nWe would really appreciate it if you try upgrading and report issues on the [3.0.0-beta.0 release discussion thread](https://github.com/facebook/docusaurus/discussions/9312).\\n\\nFor most sites, the upgrade should be easy. If you prepared your site ahead of time as documented here, upgrading the following dependencies should be enough:\\n\\n```diff title=\\"package.json\\"\\n {\\n \\"dependencies\\": {\\n- \\"@docusaurus/core\\": \\"2.4.3\\",\\n- \\"@docusaurus/preset-classic\\": \\"2.4.3\\",\\n- \\"@mdx-js/react\\": \\"^1.6.22\\",\\n+ \\"@docusaurus/core\\": \\"3.0.0-beta.0\\",\\n+ \\"@docusaurus/preset-classic\\": \\"3.0.0-beta.0\\",\\n+ \\"@mdx-js/react\\": \\"^3.0.0\\",\\n \\"clsx\\": \\"^2.0.0\\",\\n \\"prism-react-renderer\\": \\"^1.3.5\\",\\n- \\"react\\": \\"^17.0.2\\",\\n- \\"react-dom\\": \\"^17.0.2\\"\\n+ \\"react\\": \\"^18.2.0\\",\\n+ \\"react-dom\\": \\"^18.2.0\\"\\n },\\n \\"devDependencies\\": {\\n- \\"@docusaurus/module-type-aliases\\": \\"2.4.3\\"\\n+ \\"@docusaurus/module-type-aliases\\": \\"3.0.0-beta.0\\"\\n }\\n }\\n```\\n\\n## Ask for help\\n\\nWe will be there to help you upgrade through the following support channels:\\n\\n- [Docusaurus v3 - Upgrade Support](https://github.com/facebook/docusaurus/discussions/9336)\\n- [Docusaurus v3 - Discord channel #migration-v2-to-v3](https://discord.com/channels/398180168688074762/1154771869094912090)\\n- [MDX v3 - Upgrade Support](https://github.com/facebook/docusaurus/discussions/9053)\\n- [MDX v3 - Remark/Rehype Plugins Support](https://github.com/facebook/docusaurus/discussions/9337)\\n- [MDX v3 - Discord channel #migration-mdx-v3](https://discord.com/channels/398180168688074762/1116724556976111616)\\n\\nAlternatively, you can look for a paid [Docusaurus Service Provider](https://github.com/facebook/docusaurus/discussions/9281) to execute this upgrade for you. If your site is open source, you can also ask our community for [free, benevolent help](https://github.com/facebook/docusaurus/discussions/9283).\\n\\n## Conclusion\\n\\nDocusaurus v3 is ready to try, and will be released soon. This article already gives you a good idea of all the major changes required to upgrade.\\n\\nThe initial 3.0 release is focusing on dependency and infrastructure upgrades that will permit us to implement new exciting features. It also comes with a few useful features that we will detail in the final release notes."},{"id":"/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing","metadata":{"permalink":"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2023/09-22-upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing/index.mdx","source":"@site/blog/2023/09-22-upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing/index.mdx","title":"Upgrading frontend dependencies with confidence","description":"Upgrade npm dependencies with confidence thanks to a visual regression testing workflow using GitHub Actions, Playwright and Argos.","date":"2023-09-22T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":8.355,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"authors":["slorber"],"tags":["release"],"slug":"/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing","description":"Upgrade npm dependencies with confidence thanks to a visual regression testing workflow using GitHub Actions, Playwright and Argos.","image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Preparing your site for Docusaurus v3","permalink":"/blog/preparing-your-site-for-docusaurus-v3"},"nextItem":{"title":"Docusaurus 2.4","permalink":"/blog/releases/2.4"}},"content":"Frontend developers often need to **upgrade npm dependencies**, but those upgrades can feel scary and lead to **subtle UI side effects** not caught by your regular test suite.\\n\\nUpgrading Docusaurus is a good example: without reviewing all the pages one by one, it\'s hard to be sure there\'s no visual regression. **Docusaurus v3 is around the corner** (currently in [beta](https://github.com/facebook/docusaurus/discussions/9312)), and we would like to help you do this upgrade with confidence.\\n\\nThis article introduces a **visual regression testing** workflow based on [**GitHub Actions**](https://github.com/features/actions), [**Playwright**](https://playwright.dev/), and [**Argos**](https://argos-ci.com/). It is not directly coupled to Docusaurus or React, and can be adapted to work with other frontend applications and frameworks.\\n\\n![Upgrading frontend dependencies with confidence - social card](./img/social-card.png)\\n\\n<!--truncate-->\\n\\nThis workflow has been tested while upgrading Docusaurus v2 to v3, and already helped catch a few visual regressions on sites such as [React Native](https://reactnative.dev/), [Jest](https://jestjs.io/), and the [Docusaurus](https://docusaurus.io/) site itself.\\n\\nDocusaurus v3 comes with infrastructure changes and major dependency upgrades such as [MDX v3](https://mdxjs.com/blog/v3/) and [React 18](https://react.dev/blog/2022/03/29/react-v18), which can produce unexpected side effects. It would have been difficult to notice all the visual regressions without such a workflow. That\'s why we encourage site owners to consider adopting visual regression testing, especially for highly customized sites.\\n\\n## Workflow overview\\n\\nThe general idea is pretty simple:\\n\\n- Build your site in CI with [GitHub Actions](https://github.com/features/actions)\\n- Take screenshots of all `sitemap.xml` pages with [Playwright](https://playwright.dev/)\\n- Upload them to [Argos](https://argos-ci.com/)\\n- Do this for both Git branches `main` and `pr-branch`\\n- Compare the screenshots side-by-side in [Argos](https://argos-ci.com/)\\n\\nArgos will then **report visual differences** found between `main` and `pr-branch` as a GitHub commit status and pull-request comment. This can help you detect visual regressions ahead of time in an automated way.\\n\\n![Argos GitHub commit status](./img/argos-github-status.png)\\n\\n![Argos GitHub PR comment](./img/argos-github-comment.png)\\n\\nArgos creates a report referencing all the visual differences found while comparing the 2 Git branches sites side-by-side, and provides a convenient UX to easily spot the difference.\\n\\nCheck the [Docusaurus Argos page](https://app.argos-ci.com/meta-open-source/docusaurus) to explore our own website reports.\\n\\nHere is a more concrete example of Argos [reporting a visual regression](https://app.argos-ci.com/slorber/rnw-visual-tests/builds/32/56012838) found while upgrading the React-Native website:\\n\\n[![Argos GitHub PR comment](./img/argos-react-native-regression.png)](https://app.argos-ci.com/slorber/rnw-visual-tests/builds/32/56012838)\\n\\n## Workflow implementation\\n\\nThis section will describe the implementation details of each step of the workflow.\\n\\nYou will need to [sign up to Argos](https://app.argos-ci.com/signup) and [connect Argos to your GitHub repository](https://argos-ci.com/docs/github)\\n\\n### Dependencies\\n\\nThis workflow requires the following dev dependencies, in addition to the usual Docusaurus ones:\\n\\n```bash\\nyarn add -D @argos-ci/cli @argos-ci/playwright @playwright/test cheerio\\n```\\n\\n### GitHub Action\\n\\nThe GitHub action is responsible for executing the workflow for each Git branch.\\n\\nA minimal workflow could look like:\\n\\n```yaml title=\\".github/workflows/argos.yml\\"\\nname: Argos CI Screenshots\\n\\non:\\n push:\\n branches: [main]\\n pull_request:\\n branches: [main]\\n\\njobs:\\n take-screenshots:\\n runs-on: ubuntu-latest\\n steps:\\n - name: Check out repository code\\n uses: actions/checkout@v4\\n\\n - name: Use Node.js\\n uses: actions/setup-node@v3\\n with:\\n node-version: current\\n\\n - name: Install dependencies\\n run: yarn install --frozen-lockfile\\n\\n - name: Install Playwright browsers\\n run: yarn playwright install --with-deps chromium\\n\\n - name: Build the website\\n run: yarn docusaurus build\\n\\n - name: Take screenshots with Playwright\\n run: yarn playwright test\\n\\n - name: Upload screenshots to Argos\\n run: yarn argos upload ./screenshots\\n```\\n\\n### Playwright config\\n\\nPlaywright is responsible for taking screenshots of the website previously built locally by the GitHub action.\\n\\nA minimal [Playwright config](https://playwright.dev/docs/test-configuration) could look like:\\n\\n```ts title=\\"playwright.config.ts\\"\\nimport {devices} from \'@playwright/test\';\\nimport type {PlaywrightTestConfig} from \'@playwright/test\';\\n\\nconst config: PlaywrightTestConfig = {\\n webServer: {\\n port: 3000,\\n command: \'yarn docusaurus serve\',\\n },\\n projects: [\\n {\\n name: \'chromium\',\\n use: {\\n ...devices[\'Desktop Chrome\'],\\n },\\n },\\n ],\\n};\\n\\nexport default config;\\n```\\n\\n### Playwright test\\n\\nA Playwright config is not enough: we also need to write a Playwright test file to generate the site screenshots.\\n\\n```ts title=\\"screenshot.spec.ts\\"\\nimport * as fs from \'fs\';\\nimport {test} from \'@playwright/test\';\\nimport {argosScreenshot} from \'@argos-ci/playwright\';\\nimport {extractSitemapPathnames, pathnameToArgosName} from \'./utils\';\\n\\n// Constants\\nconst siteUrl = \'http://localhost:3000\';\\nconst sitemapPath = \'./build/sitemap.xml\';\\nconst stylesheetPath = \'./screenshot.css\';\\nconst stylesheet = fs.readFileSync(stylesheetPath).toString();\\n\\n// Wait for hydration, requires Docusaurus v2.4.3+\\n// Docusaurus adds a <html data-has-hydrated=\\"true\\"> once hydrated\\n// See https://github.com/facebook/docusaurus/pull/9256\\nfunction waitForDocusaurusHydration() {\\n return document.documentElement.dataset.hasHydrated === \'true\';\\n}\\n\\nfunction screenshotPathname(pathname: string) {\\n test(`pathname ${pathname}`, async ({page}) => {\\n const url = siteUrl + pathname;\\n await page.goto(url);\\n await page.waitForFunction(waitForDocusaurusHydration);\\n await page.addStyleTag({content: stylesheet});\\n await argosScreenshot(page, pathnameToArgosName(pathname));\\n });\\n}\\n\\ntest.describe(\'Docusaurus site screenshots\', () => {\\n const pathnames = extractSitemapPathnames(sitemapPath);\\n console.log(\'Pathnames to screenshot:\', pathnames);\\n pathnames.forEach(screenshotPathname);\\n});\\n```\\n\\n<details>\\n <summary>Why do we take screenshots with Argos instead of Playwright?</summary>\\n\\nArgos has a [Playwright integration](https://argos-ci.com/docs/playwright) that wraps the original Playwright screenshot API and provides better defaults to make screenshots more deterministic.\\n\\n</details>\\n\\n<details>\\n<summary>What\'s inside <code>utils.ts</code>?</summary>\\n\\nThis module contains implementation details that we choose to hide for clarity.\\n\\n```ts\\nimport * as cheerio from \'cheerio\';\\nimport * as fs from \'fs\';\\n\\n// Extract a list of pathnames, given a fs path to a sitemap.xml file\\n// Docusaurus generates a build/sitemap.xml file for you!\\nexport function extractSitemapPathnames(sitemapPath: string): string[] {\\n const sitemap = fs.readFileSync(sitemapPath).toString();\\n const $ = cheerio.load(sitemap, {xmlMode: true});\\n const urls: string[] = [];\\n $(\'loc\').each(function handleLoc() {\\n urls.push($(this).text());\\n });\\n return urls.map((url) => new URL(url).pathname);\\n}\\n\\n// Converts a pathname to a decent screenshot name\\nexport function pathnameToArgosName(pathname: string): string {\\n return pathname.replace(/^\\\\/|\\\\/$/g, \'\') || \'index\';\\n}\\n```\\n\\n</details>\\n\\n### Stylesheet\\n\\nScreenshots are not always deterministic, and taking a screenshot of a page twice can lead to subtle variations that will be reported by Argos as **false positive** visual regressions.\\n\\nFor this reason, we recommend injecting an extra stylesheet to hide the problematic elements. You will probably need to add new CSS rules to this base stylesheet, according to flaky elements found on your own site. Read [Argos - About flaky tests docs](https://argos-ci.com/docs/about-flaky) for details.\\n\\n```css title=\\"screenshot.css\\"\\n/* Iframes can load lazily */\\niframe,\\n/* Avatars can be flaky due to using external sources: GitHub/Unavatar */\\n.avatar__photo,\\n/* Gifs load lazily and are animated */\\nimg[src$=\'.gif\'],\\n/* Algolia keyboard shortcuts appear with a little delay */\\n.DocSearch-Button-Keys > kbd,\\n/* The live playground preview can often display dates/counters */\\n[class*=\'playgroundPreview\'] {\\n visibility: hidden;\\n}\\n\\n/* Different docs last-update dates can alter layout */\\n.theme-last-updated,\\n/* Mermaid diagrams are rendered client-side and produce layout shifts */\\n.docusaurus-mermaid-container {\\n display: none;\\n}\\n```\\n\\n:::tip prevent layout shifts\\n\\nWe recommend hiding flaky UI elements affecting layout with `display: none;`.\\n\\nFor example, the docs \\"Last Updated on\\" might render on more than 1 line, eventually \\"pushing\\" the rest of your content further down, leading to Argos detecting many different pixels.\\n\\n:::\\n\\n## Example repository\\n\\nThe [slorber/docusaurus-argos-example](https://github.com/slorber/docusaurus-argos-example) repo shows a complete example of implementing this workflow on a newly initialized Docusaurus v2 site, using a Yarn monorepo.\\n\\n[![Docusaurus + Argos monorepo example screenshot](./img/docusaurus-argos-example-repo-screenshot.png)](https://github.com/slorber/docusaurus-argos-example)\\n\\nRelevant pull-requests:\\n\\n- [PR - Set up GitHub Action + Playwright + Argos](https://github.com/slorber/docusaurus-argos-example/pull/1): implements the minimal workflow described above\\n- [PR - Upgrading Docusaurus from v2 to v3](https://github.com/slorber/docusaurus-argos-example/pull/2): shows how Argos caught 3 visual regressions while upgrading\\n\\n:::tip More advanced example?\\n\\nBrowse the Docusaurus repository for a more advanced integration:\\n\\n- [GitHub Action](https://github.com/facebook/docusaurus/blob/main/.github/workflows/argos.yml)\\n- [Playwright + Argos tests](https://github.com/facebook/docusaurus/tree/main/argos)\\n\\n:::\\n\\n## Make it cheap\\n\\nThe tools we choose are implementation details of this visual regression testing workflow.\\n\\nFor Docusaurus, we choose [Argos](https://argos-ci.com/): it works well for us, and offers [free](https://argos-ci.com/pricing) and [open source](https://argos-ci.com/docs/open-source) plans. However, you are free to adopt alternative tools.\\n\\nIn case you don\'t mind storing large screenshots in Git, you can also try the free, self-hosted [Playwright Visual Comparisons](https://playwright.dev/docs/test-snapshots) and browse visual differences with `npx playwright show-report`. However, we found using a dedicated external tool is more convenient.\\n\\nExternal tools can be expensive, but generally offer free plans with an ample quota of screenshots. You can reduce your screenshot consumption by implementing a few tricks below.\\n\\n### Limit the number of pathnames\\n\\nThe base setup involves taking a screenshot of every single pathname found in `sitemap.xml`. For large sites, that can lead to a lot of screenshots.\\n\\nYou can decide to filter the pathnames to only take screenshots of the most critical pages.\\n\\nFor the Docusaurus website, do not take screenshots for versioned docs pages:\\n\\n```ts title=\\"screenshot.spec.ts\\"\\n// highlight-start\\nfunction isVersionedDocsPathname(pathname: string): boolean {\\n return pathname.match(/^\\\\/docs\\\\/((\\\\d\\\\.\\\\d\\\\.\\\\d)|(next))\\\\//);\\n}\\n// highlight-end\\n\\ntest.describe(\'Docusaurus site screenshots\', () => {\\n const pathnames = extractSitemapPathnames(sitemapPath)\\n // highlight-next-line\\n .filter(isVersionedDocsPathname);\\n\\n pathnames.forEach(screenshotPathname);\\n});\\n```\\n\\n### Limit the workflow concurrency\\n\\nImplementing [GitHub Actions concurrency groups](https://docs.github.com/en/actions/using-jobs/using-concurrency) will prevent successive commits to trigger multiple useless workflow runs. The workflow will only be executed for the last commit, and previous commits will be canceled automatically.\\n\\n```yaml title=\\".github/workflows/argos.yml\\"\\nconcurrency:\\n group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}\\n cancel-in-progress: true\\n```\\n\\n### Run your workflow conditionally\\n\\nIt\'s not worth running this workflow for every single commit and pull-request.\\n\\nFor example, if someone corrects a typo in your documentation, you probably don\'t want to take hundreds of screenshots and have Argos to point out that only the modified page has a visual difference: duh, that\'s a bit expected!\\n\\nFor the Docusaurus website, we only run the workflow for pull-request having the `Argos` label:\\n\\n```yaml title=\\".github/workflows/argos.yml\\"\\nname: Argos CI Screenshots\\n\\non:\\n push:\\n branches: [main]\\n pull_request:\\n branches: [main]\\n # highlight-start\\n types:\\n - opened\\n - synchronize\\n - reopened\\n - labeled\\n # highlight-end\\n\\njobs:\\n take-screenshots:\\n # highlight-start\\n if: ${{ github.ref_name == \'main\' || (github.event_name == \'pull_request\' && contains(github.event.pull_request.labels.*.name, \'Argos\')) }}\\n # highlight-end\\n runs-on: ubuntu-latest\\n steps:\\n # Your job steps here ...\\n```\\n\\nThere are many options to explore, such as [triggering the workflow manually](https://docs.github.com/en/actions/using-workflows/manually-running-a-workflow) or [only when files matching a specific pattern are modified](https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#example-including-paths).\\n\\n## Conclusion\\n\\nI believe **visual regression testing is underused** in the frontend ecosystem.\\n\\nTaking full-page screenshots is a **low-hanging fruit** that is easy to set up and can help you **catch a new class of bugs** that your regular test suite would miss. This technique shines not only for npm package upgrades, but also for **any kind of refactoring** that shouldn\'t change the user interface.\\n\\nSo why not give it a try?\\n\\nHappy hacking!\\n\\n## See also\\n\\nUseful documentation links:\\n\\n- [Playwright - Installation](https://playwright.dev/docs/intro)\\n- [Playwright - Test config guide](https://playwright.dev/docs/test-configuration)\\n- [Playwright - Test config API](https://playwright.dev/docs/api/class-testconfig)\\n- [Argos - Installation](https://argos-ci.com/docs/installation)\\n- [Argos - Use with GitHub Actions](https://argos-ci.com/docs/github-actions)\\n- [Argos - Use with Playwright](https://argos-ci.com/docs/playwright)\\n- [Argos - About flaky tests](https://argos-ci.com/docs/about-flaky)"},{"id":"/releases/2.4","metadata":{"permalink":"/blog/releases/2.4","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/2.4/index.mdx","source":"@site/blog/releases/2.4/index.mdx","title":"Docusaurus 2.4","description":"We are happy to announce Docusaurus 2.4.","date":"2023-03-23T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.05,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.4","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2023-03-23T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Upgrading frontend dependencies with confidence","permalink":"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing"},"nextItem":{"title":"Docusaurus 2.3","permalink":"/blog/releases/2.3"}},"content":"We are happy to announce **Docusaurus 2.4**.\\n\\nThe upgrade should be easy: as explained in our [release process documentation](/community/release-process), minor versions respect [Semantic Versioning](https://semver.org/).\\n\\n![Docusaurus blog post social card](./img/social-card.png)\\n\\n<!--truncate-->\\n\\nimport BrowserWindow from \'@site/src/components/BrowserWindow\';\\nimport IframeWindow from \'@site/src/components/BrowserWindow/IframeWindow\';\\nimport ErrorBoundaryTestButton from \'@site/src/components/ErrorBoundaryTestButton\';\\n\\n## Highlights\\n\\n### Sidebar item description\\n\\nIn [#8236](https://github.com/facebook/docusaurus/pull/8236), we made it possible to provide a new `description` attribute for docs sidebar items of type `link` and `category`.\\n\\n```tsx title=\\"sidebars.js\\"\\n[\\n {\\n type: \'link\',\\n label: \'Link with description\',\\n href: \'https://docusaurus.io\',\\n // highlight-next-line\\n description: \'Some link description\',\\n },\\n {\\n type: \'category\',\\n label: \'Category with description\',\\n // highlight-next-line\\n description: \'Some category description\',\\n items: [],\\n },\\n];\\n```\\n\\nThese descriptions will be used in category generated index pages.\\n\\n![Show sidebar category generated index with custom descriptions](./img/sidebar-item-description.jpg)\\n\\n### Theme Query String\\n\\nIn [#8708](https://github.com/facebook/docusaurus/pull/8708), we added the possibility to force Docusaurus to initialize itself in `light` or `dark` mode through a new `docusaurus-theme` query-string parameter.\\n\\nThis is useful to ensure a consistent theme when embedding an existing Docusaurus page into an iframe or WebView.\\n\\n<IframeWindow url=\\"/docs/?docusaurus-theme=light\\" />\\n<IframeWindow url=\\"/docs/?docusaurus-theme=dark\\" />\\n\\n### Remark plugin npm2yarn upgrade\\n\\nIn [#8690](https://github.com/facebook/docusaurus/pull/8690), we upgraded our Remark plugin [@docusaurus/remark-plugin-npm2yarn](https://github.com/facebook/docusaurus/tree/main/packages/docusaurus-remark-plugin-npm2yarn) with many conversion bug fixes, first-class support for pnpm, and the ability to register custom converters producing new tabs.\\n\\n````markdown\\nRun these commands!\\n\\n```bash npm2yarn\\nnpm install\\nnpm run build\\nnpm run myCustomScript -- --some-arg\\n```\\n````\\n\\n<BrowserWindow>\\n\\n```bash npm2yarn\\nnpm install\\nnpm run build\\nnpm run myCustomScript -- --some-arg\\n```\\n\\n</BrowserWindow>\\n\\n### gtag support for multiple tracking IDs\\n\\nIn [#8620](https://github.com/facebook/docusaurus/pull/8620) we added support for the [@docusaurus/plugin-google-gtag](/docs/api/plugins/@docusaurus/plugin-google-gtag) plugin to declare multiple tracking IDs.\\n\\n```js title=\\"docusaurus.config.js\\"\\nmodule.exports = {\\n presets: [\\n [\\n \'@docusaurus/preset-classic\',\\n {\\n gtag: {\\n trackingID: [\\n // highlight-next-line\\n \'G-<YOUR-NEW-GA4-ID>\',\\n // highlight-next-line\\n \'UA-<YOUR-OLD-UA-ID>\',\\n ],\\n },\\n },\\n ],\\n ],\\n};\\n```\\n\\n:::warning Google is sunsetting Universal Analytics\\n\\n**[Google will sunset its Universal Analytics](https://blog.google/products/marketingplatform/analytics/prepare-for-future-with-google-analytics-4/)** on **July 1, 2023**.\\n\\nDocusaurus users should migrate to Google Analytics 4. Google **does not permit to migrate your existing Universal Analytics data** to your new Google Analytics 4 property.\\n\\nTo preserve the continuity of your analytics, we temporarily recommend that you report events to 2 tracking IDs at the same time: the old one (`UA-*`) and new one (`G-*`). Refer to the **[dedicated issue](https://github.com/facebook/docusaurus/issues/7221)** for details.\\n\\n:::\\n\\n### Developer Experience\\n\\nIn [#8736](https://github.com/facebook/docusaurus/pull/8736), we improved how we render error messages and added initial support to render the full causal chain of an error (see [ES2022 Error Cause](https://h3manth.com/ES2022/#error-cause)).\\n\\n:::tip\\n\\nTo see it in action, click here: <ErrorBoundaryTestButton cause=\\"Probably undefined is not a function \u{1F604}\\"/>\\n\\n:::\\n\\nIn [#8735](https://github.com/facebook/docusaurus/pull/8735) we also made navbar-related error messages clearer to help users understand what they did wrong.\\n\\n![Docusaurus navbar error message screenshot](./img/navbar-error.jpg)\\n\\n### Translations\\n\\nWe made it possible to translate some new elements:\\n\\n- [#8677](https://github.com/facebook/docusaurus/pull/8677) introduces a new `process.env.DOCUSAURUS_CURRENT_LOCALE` (experimental) allowing you to localize your config file, including site title, tagline, announcement bar, baseUrl...\\n- [#8616](https://github.com/facebook/docusaurus/pull/8616) allows to translate the navbar and footer logo alt text\\n\\nWe added default theme translation support for multiple languages:\\n\\n- \u{1F1ED}\u{1F1FA} [#8668](https://github.com/facebook/docusaurus/pull/8668): Hungarian\\n- \u{1F1F3}\u{1F1F4} [#8631](https://github.com/facebook/docusaurus/pull/8631): Norwegian (Bokm\xe5l)\\n\\n:::tip\\n\\nCompleting theme translations is an [ongoing effort](https://github.com/facebook/docusaurus/issues/3526) and an easy way to contribute to Docusaurus. We add new theme features regularly, for which we often [need new translations](https://github.com/facebook/docusaurus/issues/3526).\\n\\n:::\\n\\n## Other changes\\n\\nOther notable changes include:\\n\\n- [#8674](https://github.com/facebook/docusaurus/pull/8674): respect `prefers-reduced-motion: reduce` media query\\n- [#8712](https://github.com/facebook/docusaurus/pull/8712): use a navbar item of type `docSidebar` in template\\n- [#8801](https://github.com/facebook/docusaurus/pull/8801): allow tabs children to be falsy\\n- [#8757](https://github.com/facebook/docusaurus/pull/8757): make search page react to external query-string changes\\n- [#8803](https://github.com/facebook/docusaurus/pull/8803): fix code block buttons position in RTL\\n- [#8615](https://github.com/facebook/docusaurus/pull/8615): fix color mode toggle when using dark navbar\\n- [#8699](https://github.com/facebook/docusaurus/pull/8699): fix navbar dropdown tab focus bug\\n\\nCheck the **[2.4.0 changelog entry](/changelog/2.4.0)** for an exhaustive list of changes."},{"id":"/releases/2.3","metadata":{"permalink":"/blog/releases/2.3","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/2.3/index.mdx","source":"@site/blog/releases/2.3/index.mdx","title":"Docusaurus 2.3","description":"We are happy to announce Docusaurus 2.3.","date":"2023-01-27T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":2.89,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.3","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2023-01-27T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 2.4","permalink":"/blog/releases/2.4"},"nextItem":{"title":"Docusaurus 2.2","permalink":"/blog/releases/2.2"}},"content":"We are happy to announce **Docusaurus 2.3**.\\n\\nThe upgrade should be easy: as explained in our [release process documentation](/community/release-process), minor versions respect [Semantic Versioning](https://semver.org/).\\n\\n![Docusaurus 2.2 social card](./img/social-card.png)\\n\\n<!--truncate-->\\n\\n## Highlights\\n\\n### Google Tag Manager plugin\\n\\nGoogle Tag Manager is a tag management system that allows great flexibility. It enables analytics and marketing teams to easily load other third-party trackers and fire analytics tags.\\n\\nWe now have a [`@docusaurus/plugin-google-tag-manager`](/docs/api/plugins/@docusaurus/plugin-google-tag-manager/) package that you can use alongside or as an alternative to the existing [gtag.js plugin](/docs/api/plugins/@docusaurus/plugin-google-gtag/) (refer to [this doc](https://support.google.com/tagmanager/answer/7582054) to understand when to use which solution).\\n\\n:::warning Google is sunsetting Universal Analytics\\n\\n[Google will sunset its Universal Analytics](https://blog.google/products/marketingplatform/analytics/prepare-for-future-with-google-analytics-4/) on **July 1, 2023**, and ask users to migrate to **Google Analytics 4**.\\n\\nTherefore, we are also **deprecating our existing [`@docusaurus/plugin-google-analytics`](/docs/api/plugins/@docusaurus/plugin-google-analytics)** package. Docusaurus users should create a new Google Analytics 4 property, and migrate to the [gtag.js plugin](/docs/api/plugins/@docusaurus/plugin-google-gtag/), or the [Google Tag Manager plugin](/docs/api/plugins/@docusaurus/plugin-google-tag-manager/). Refer to the [dedicated Docusaurus issue](https://github.com/facebook/docusaurus/issues/7221) for details and questions.\\n\\n:::\\n\\n### Tabs Query String Support\\n\\nIt is now possible to link a selected tab to a query string parameter. When a tab is selected, it will be stored in your browser URL as a `?qs-param=tab-value` search parameter.\\n\\nThis feature allows deep-linking to a specific documentation tab that will pre-selected on page load.\\n\\nWhen used alongside the `groupId` prop, the query string tab value takes precedence over the `localStorage` value.\\n\\nMake sure to check the [documentation](/docs/markdown-features/tabs#query-string) and the demo below to understand how it works:\\n\\nimport BrowserWindow from \'@site/src/components/BrowserWindow\';\\nimport Tabs from \'@theme/Tabs\';\\nimport TabItem from \'@theme/TabItem\';\\n\\n```tsx\\n<Tabs groupId=\\"current-os\\" queryString>\\n <TabItem value=\\"android\\" label=\\"Android\\">\\n Android\\n </TabItem>\\n <TabItem value=\\"ios\\" label=\\"iOS\\">\\n iOS\\n </TabItem>\\n</Tabs>\\n```\\n\\n<BrowserWindow>\\n <Tabs groupId=\\"current-os\\" queryString>\\n <TabItem value=\\"android\\" label=\\"Android\\">\\n Android\\n </TabItem>\\n <TabItem value=\\"ios\\" label=\\"iOS\\">\\n iOS\\n </TabItem>\\n </Tabs>\\n</BrowserWindow>\\n\\n### Nested admonitions\\n\\nIt is now possible to nest one admonition within another by adding extra colons for the outer/enclosing admonition:\\n\\n```md\\n::::tip nested admonitions\\n\\nYou can now nest one admonition within another!\\n\\n:::danger\\n\\nUse this sparingly when it makes sense.\\n\\n:::\\n\\n::::\\n```\\n\\n::::tip nested admonitions\\n\\nYou can now nest one admonition within another!\\n\\n:::danger\\n\\nUse this sparingly when it makes sense.\\n\\n:::\\n\\n::::\\n\\n### Blog `createFeedItems`\\n\\nA new blog plugin option [`feedOptions.createFeedItems`](/docs/api/plugins/@docusaurus/plugin-content-blog/#CreateFeedItemsFn) gives you more control over the RSS/Atom feed generation. It is now possible to transform/filter/limit feed items through a new callback.\\n\\n```tsx title=\\"docusaurus.config.js\\"\\n[\\n \'@docusaurus/preset-classic\',\\n {\\n blog: {\\n feedOptions: {\\n // highlight-start\\n createFeedItems: async (params) => {\\n const {blogPosts, defaultCreateFeedItems, ...rest} = params;\\n return defaultCreateFeedItems({\\n // keep only the 10 most recent blog posts in the feed\\n blogPosts: blogPosts.filter((item, index) => index < 10),\\n ...rest,\\n });\\n },\\n // highlight-end\\n },\\n },\\n },\\n];\\n```\\n\\n### Translations\\n\\nWe added or completed the default theme translation support for multiple languages:\\n\\n- \u{1F1F8}\u{1F1EE} [#8541](https://github.com/facebook/docusaurus/pull/8541) Slovenian\\n- \u{1F1F9}\u{1F1F7} [#8289](https://github.com/facebook/docusaurus/pull/8289) Turkish\\n- \u{1F1EE}\u{1F1F7} [#8406](https://github.com/facebook/docusaurus/pull/8406) Farsi\\n- \u{1F1F5}\u{1F1F1} [#8525](https://github.com/facebook/docusaurus/pull/8525) Polish\\n- \u{1F1E8}\u{1F1F3} [#8423](https://github.com/facebook/docusaurus/pull/8423) Chinese\\n- \u{1F1F8}\u{1F1EA} [#8312](https://github.com/facebook/docusaurus/pull/8312) Swedish\\n- \u{1F1FB}\u{1F1F3} [#8450](https://github.com/facebook/docusaurus/pull/8450) Vietnamese\\n\\n:::tip\\n\\nCompleting theme translations is an [ongoing effort](https://github.com/facebook/docusaurus/issues/3526) and an easy way to contribute to Docusaurus. We add new theme features regularly, for which we often [need new translations](https://github.com/facebook/docusaurus/issues/3526).\\n\\n:::\\n\\n## Other changes\\n\\nOther notable changes include:\\n\\n- [#8463](https://github.com/facebook/docusaurus/pull/8463) and [#8328](https://github.com/facebook/docusaurus/pull/8328): fix some annoying Docusaurus layout issues\\n- [#8539](https://github.com/facebook/docusaurus/pull/8539): Algolia plugin `options.searchPagePath` should be correctly applied to search modal footer\\n- [#8462](https://github.com/facebook/docusaurus/pull/8462): Algolia plugin now makes it easier to transform displayed search results with custom logic\\n- [#8397](https://github.com/facebook/docusaurus/pull/8397): the `deploy` CLI now understands git url `insteadOf` config\\n\\nCheck the **[2.3.0 changelog entry](/changelog/2.3.0)** for an exhaustive list of changes."},{"id":"/releases/2.2","metadata":{"permalink":"/blog/releases/2.2","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/2.2/index.mdx","source":"@site/blog/releases/2.2/index.mdx","title":"Docusaurus 2.2","description":"We are happy to announce Docusaurus 2.2.","date":"2022-10-29T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":2.2,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.2","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2022-10-29T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 2.3","permalink":"/blog/releases/2.3"},"nextItem":{"title":"Docusaurus 2.1","permalink":"/blog/2022/09/01/docusaurus-2.1"}},"content":"We are happy to announce **Docusaurus 2.2**.\\n\\nThe upgrade should be easy: as explained in our [release process documentation](/community/release-process), minor versions respect [Semantic Versioning](https://semver.org/).\\n\\n![Docusaurus 2.2 social card](./img/social-card.png)\\n\\n{/* truncate */}\\n\\n## Highlights\\n\\n### Mermaid diagrams\\n\\nIn [#7490](https://github.com/facebook/docusaurus/pull/7490), we added support for Mermaid diagrams. This fills the gap between GitHub Flavored Markdown which also [added support recently](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/). You can create Mermaid diagrams using Markdown code blocks:\\n\\n````md\\n```mermaid\\nsequenceDiagram\\n participant Alice\\n participant Bob\\n Alice->>John: Hello John, how are you?\\n loop Health check\\n John->>John: Fight against hypochondria\\n end\\n Note right of John: Rational thoughts <br/>prevail!\\n John-->>Alice: Great!\\n John->>Bob: How about you?\\n Bob-->>John: Jolly good!\\n```\\n````\\n\\n````mdx-code-block\\nimport BrowserWindow from \'@site/src/components/BrowserWindow\';\\n\\n<BrowserWindow>\\n\\n```mermaid\\nsequenceDiagram\\n participant Alice\\n participant Bob\\n Alice->>John: Hello John, how are you?\\n loop Health check\\n John->>John: Fight against hypochondria\\n end\\n Note right of John: Rational thoughts <br/>prevail!\\n John-->>Alice: Great!\\n John->>Bob: How about you?\\n Bob-->>John: Jolly good!\\n```\\n\\n</BrowserWindow>\\n\\n````\\n\\nMake sure to check the [documentation](/docs/markdown-features/diagrams), and the [more advanced examples](/tests/pages/diagrams)\\n\\n### Config `headTags`\\n\\nIn [#8151](https://github.com/facebook/docusaurus/pull/8151), we added the ability to apply arbitrary HTML `<head>` tags to all pages of your site.\\n\\n```js title=\\"docusaurus.config.js\\"\\nmodule.exports = {\\n headTags: [\\n {\\n tagName: \'link\',\\n attributes: {\\n rel: \'icon\',\\n href: \'/img/docusaurus.png\',\\n },\\n },\\n ],\\n};\\n```\\n\\n### Accessibility\\n\\nWe did several accessibility improvements:\\n\\n- [#8207](https://github.com/facebook/docusaurus/pull/8207): improves keyboard navigation for mobile drawer hamburger button\\n- [#8161](https://github.com/facebook/docusaurus/pull/8161): improves keyboard navigation for tabs\\n- [#8204](https://github.com/facebook/docusaurus/pull/8204): makes the skip to content button support progressive enhancement\\n- [#8174](https://github.com/facebook/docusaurus/pull/8174): improves screen reader announcement when toggling between light/dark mode\\n\\n### Developer Experience\\n\\nWe made validation stricter and improved error messages:\\n\\n- [#8234](https://github.com/facebook/docusaurus/pull/8234): in case of doc processing failure, prints the problematic markdown file path in the error message\\n- [#8192](https://github.com/facebook/docusaurus/pull/8192) and [#8159](https://github.com/facebook/docusaurus/pull/8159): validates `siteConfig.url` more strictly and with better error message\\n- [#8066](https://github.com/facebook/docusaurus/pull/8066): makes config `url` and `baseUrl` fail-safe and less sensitive to the presence or absence of a leading or trailing slash\\n\\n### Translations\\n\\nWe completed the default theme translation support for multiple languages:\\n\\n- \u{1F1F9}\u{1F1F7} [#8105](https://github.com/facebook/docusaurus/pull/8105): completes Turkish translations\\n- \u{1F1F7}\u{1F1FA} [#8253](https://github.com/facebook/docusaurus/pull/8253): completes Russian translations\\n- \u{1F1EB}\u{1F1F7} [#8243](https://github.com/facebook/docusaurus/pull/8243): completes French translations\\n- \u{1F1EF}\u{1F1F5} [#8075](https://github.com/facebook/docusaurus/pull/8075): completes Japanese translations\\n\\n:::tip\\n\\nCompleting theme translations is an [ongoing effort](https://github.com/facebook/docusaurus/issues/3526) and an easy way to contribute to Docusaurus. We add new theme features regularly, for which we often [need new translations](https://github.com/facebook/docusaurus/issues/3526).\\n\\n:::\\n\\n## Other changes\\n\\nOther notable changes include:\\n\\n- [#8210](https://github.com/facebook/docusaurus/pull/8210): the `docusaurus swizzle` CLI has a new `--config` option\\n- [#8109](https://github.com/facebook/docusaurus/pull/8109): mobile navigation performance optimizations, prefetch resources earlier\\n- [#8059](https://github.com/facebook/docusaurus/pull/8059): versions/locales navbar dropdowns preserve hash and querystring on navigation\\n- [#8227](https://github.com/facebook/docusaurus/pull/8227): the client redirect plugin preserves hash and querystring on redirect\\n\\nCheck the **[2.2.0 changelog entry](/changelog/2.2.0)** for an exhaustive list of changes."},{"id":"/2022/09/01/docusaurus-2.1","metadata":{"permalink":"/blog/2022/09/01/docusaurus-2.1","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2022/09-01-docusaurus-2.1/index.mdx","source":"@site/blog/2022/09-01-docusaurus-2.1/index.mdx","title":"Docusaurus 2.1","description":"We are happy to announce Docusaurus 2.1, our very first minor version release.","date":"2022-09-01T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":1.725,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.1","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 2.2","permalink":"/blog/releases/2.2"},"nextItem":{"title":"Announcing Docusaurus 2.0","permalink":"/blog/2022/08/01/announcing-docusaurus-2.0"}},"content":"We are happy to announce **Docusaurus 2.1**, our very first minor version release.\\n\\nThe upgrade should be easy: as explained in our [release process documentation](/community/release-process), minor versions respect [Semantic Versioning](https://semver.org/).\\n\\n![Docusaurus 2.1 social card](./img/social-card.png)\\n\\n<!--truncate-->\\n\\n## Highlights\\n\\n### DocCardList improvements\\n\\nIn [#8008](https://github.com/facebook/docusaurus/pull/8008), we simplified the usage of the`<DocCardList>` component, that is notably used on sidebar category generated index pages.\\n\\nThe `items` prop is now optional, and will be automatically inferred from the content of the parent sidebar category:\\n\\n```diff\\nimport DocCardList from \'@theme/DocCardList\';\\n- import {useCurrentSidebarCategory} from \'@docusaurus/theme-common\';\\n\\n- <DocCardList items={useCurrentSidebarCategory().items}/>\\n+ <DocCardList/>\\n```\\n\\nAlso, we made it possible to use it on any document, including regular docs not linked to any sidebar category.\\n\\n![simplified DocCardList component](./img/doc-card-list.png)\\n\\n### `noindex` improvements\\n\\nWe improved the support of the [`noindex` meta `robots` directive](https://developers.google.com/search/docs/advanced/crawling/block-indexing), a way to signal search engines you don\'t want a specific page to be indexed.\\n\\nIn [#7963](https://github.com/facebook/docusaurus/pull/7963), we allow `noindex` to be configured on a per-docs-version basis.\\n\\nUse the following plugin options to tell crawlers you don\'t want the `1.0.0` version to be indexed:\\n\\n```jsx\\nconst options = {\\n versions: {\\n \'1.0.0\': {\\n noIndex: true,\\n },\\n },\\n};\\n```\\n\\nIn practice, Docusaurus will add the following meta to each page of that version:\\n\\n```html\\n<meta name=\\"robots\\" content=\\"noindex, nofollow\\" />\\n```\\n\\nIn [#7964](https://github.com/facebook/docusaurus/pull/7964), we also fixed a bug where the sitemap plugin would still contain pages that have a `noindex` directive. Now the sitemap plugin will reliably filter out all the pages containing `noindex` directives.\\n\\n### Overriding default meta tags\\n\\nIn [#7952](https://github.com/facebook/docusaurus/pull/7952), it becomes possible to override default html meta tags you couldn\'t before:\\n\\n```jsx\\n<>\\n {siteConfig.noIndex && <meta name=\\"robots\\" content=\\"nofollow, noindex\\" />}\\n <meta name=\\"viewport\\" content=\\"width=device-width, initial-scale=1.0\\" />\\n</>\\n```\\n\\nIt is now possible to use `<Head>` or `themeConfig.metadata`:\\n\\n- to override the `viewport` meta\\n- to override the `robots` meta: you could mark your site as `noIndex`, but except for specific pages that should be indexed\\n\\n### Ukrainian translations\\n\\nIn [#7953](https://github.com/facebook/docusaurus/pull/7953), we added default classic theme translations for the Ukrainian language.\\n\\n## Other changes\\n\\nCheck the [2.1.0 changelog entry](/changelog/2.1.0) for an exhaustive list of changes."},{"id":"/2022/08/01/announcing-docusaurus-2.0","metadata":{"permalink":"/blog/2022/08/01/announcing-docusaurus-2.0","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2022/08-01-announcing-docusaurus-2.0/index.mdx","source":"@site/blog/2022/08-01-announcing-docusaurus-2.0/index.mdx","title":"Announcing Docusaurus 2.0","description":"Today we are extremely happy to finally announce Docusaurus 2.0! \u{1F973}\uFE0F","date":"2022-08-01T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":12.075,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"},{"name":"Joshua Chen","title":"Working hard on Docusaurus","url":"https://joshcena.com/","email":"sidachen2003@gmail.com","page":{"permalink":"/blog/authors/josh-cena"},"imageURL":"https://github.com/josh-cena.png","key":"Josh-Cena"},{"name":"Yangshun Tay","title":"Front End Engineer at Meta","url":"https://github.com/yangshun","page":{"permalink":"/blog/authors/yangshun"},"socials":{"x":"https://x.com/yangshunz","github":"https://github.com/yangshun"},"imageURL":"https://github.com/yangshun.png","key":"yangshun"},{"name":"Alexey Pyltsyn","title":"Open-source enthusiast","url":"https://github.com/lex111","email":"lex@php.net","page":{"permalink":"/blog/authors/lex-111"},"imageURL":"https://github.com/lex111.png","key":"lex111"},{"name":"Paul O\u2019Shannessy","title":"Engineering Manager at Meta","url":"https://x.com/zpao","page":{"permalink":"/blog/authors/zpao"},"socials":{"x":"https://x.com/zpao","github":"https://github.com/zpao"},"imageURL":"https://github.com/zpao.png","key":"zpao"},{"name":"Joel Marcey","title":"Co-creator of Docusaurus 1","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Announcing Docusaurus 2.0","authors":["slorber","Josh-Cena","yangshun","lex111","zpao",{"key":"JMarcey","title":"Co-creator of Docusaurus 1"}],"tags":["release"],"image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 2.1","permalink":"/blog/2022/09/01/docusaurus-2.1"},"nextItem":{"title":"Docusaurus 2021 Recap","permalink":"/blog/2022/01/24/docusaurus-2021-recap"}},"content":"```mdx-code-block\\nimport LiteYouTubeEmbed from \'react-lite-youtube-embed\';\\nimport \'react-lite-youtube-embed/dist/LiteYouTubeEmbed.css\';\\nimport BrowserWindow from \'@site/src/components/BrowserWindow\';\\nimport ProductHuntCard from \'@site/src/components/ProductHuntCard\';\\nimport HackerNewsIcon from \'@site/src/components/HackerNewsIcon\';\\nimport ColorModeToggle from \'@theme/Navbar/ColorModeToggle\';\\nimport useBaseUrl from \'@docusaurus/useBaseUrl\';\\nimport ThemedImage from \'@theme/ThemedImage\';\\nimport {ShowcaseCarouselV1, ShowcaseCarouselV2, ShowcaseCarouselV2Theming} from \'./ShowcaseCarousel\';\\n```\\n\\nToday we are extremely happy to finally **announce Docusaurus 2.0**! \u{1F973}\uFE0F\\n\\nAt [**Meta Open Source**](https://opensource.fb.com/), we believe Docusaurus will help you build the **best documentation websites** with **minimal effort**, letting you **focus on what really matters**: writing the content.\\n\\nAfter **4 years of work, [75 alphas](https://github.com/facebook/docusaurus/releases/tag/v2.0.0-alpha.75) and [22 betas](https://github.com/facebook/docusaurus/releases/tag/v2.0.0-beta.22)**, the next generation of Docusaurus is **ready for prime time**. From now on, we now plan to **respect [Semantic Versioning](https://semver.org/)** and will release **major versions more frequently**.\\n\\n![social-card image](./img/social-card.png)\\n\\n{/* truncate */}\\n\\n:::info We are on [ProductHunt](https://www.producthunt.com/posts/docusaurus-2-0) and [Hacker News](https://news.ycombinator.com/item?id=32303052)!\\n\\n**Now** is the best time to show your love for Docusaurus!\\n\\n<div style={{display: \'flex\'}}>\\n <ProductHuntCard />\\n <HackerNewsIcon />\\n</div>\\n\\n:::\\n\\n:::tip\\n\\nIn a hurry? Check [what\'s new in Docusaurus 2.0](#whats-new-in-20)!\\n\\n:::\\n\\n## What is Docusaurus exactly?\\n\\nDocusaurus is a **static site generator** that helps you ship **beautiful documentation websites** in **no time**.\\n\\nFocus on your content: just write **Markdown files**. Docusaurus will generate an optimized **website** for you that\'s easy to **host anywhere**.\\n\\nDocusaurus is **full-featured** and very **flexible**: we ship with well-designed docs and blog layout, as well as out-of-the-box versioning, search, and internationalization functionalities, with a call to accessibility and search engine optimizations. Its flexible theming system permits to **adapt the UI to match your branding** so that it integrates nicely with your main website or documentation portal. Its usage of **React** enables a **modern client-side navigation**, and the ability to build an **interactive documentation**.\\n\\n![Introducing Slash](/img/slash-introducing.svg)\\n\\nThe Docusaurus philosophy is akin to the **Pareto principle**: you can get **80% of the results** for **20% of the effort**. This enables you to compete with top-notch documentation sites with **minimal effort**.\\n\\n<TweetQuote\\n url=\\"https://x.com/rachelnabors/status/1452697991039660038\\"\\n handle=\\"rachelnabors\\"\\n name=\\"Rachel Nabors\\"\\n job=\\"Former ReactJS & React-Native docs manager\\">\\n Unless you\'re spinning up a documentation team with engineering resources, you\\n probably want Docusaurus!\\n</TweetQuote>\\n\\nDocusaurus aims to be the **best documentation tool**, but you can use it for **other use-cases** as well: a blog, a knowledge base, a developer portfolio, a second brain, or even to scaffold landing pages!\\n\\n<TweetQuote\\n url=\\"https://x.com/johnny_reilly/status/1551861926334025728\\"\\n handle=\\"johnny_reilly\\"\\n name=\\"Johnny Reilly\\"\\n job=\\"Group Principal Engineer at Investec\\">\\n Using Docusaurus for my tech blog has been a fantastic choice. It looks\\n tremendous out-of-the-box and the awesome DX means I write way more\\n</TweetQuote>\\n\\n:::tip\\n\\nTry Docusaurus now with our [online playgrounds](/docs/playground) and [5 minutes tutorial](https://tutorial.docusaurus.io/) \u23F1\uFE0F\\n\\n:::\\n\\n## The story behind Docusaurus\\n\\nDocusaurus was created at **Facebook Open Source** in **2017** (now [Meta Open Source](https://opensource.fb.com/)). We had a lot of internal and open source projects to document. It\'s **complicated enough to write good documentation**, let alone to create the HTML, CSS, and JavaScript for a good-looking website. We wanted project leaders to be able to **focus on the content**, and **Markdown** is great for that.\\n\\nAt that time, our solution was to **copy/paste a Jekyll template** over and over again. This naturally became **hard to maintain**, so we created a tool to **solve our own pain** once for all.\\n\\n**[Docusaurus v1 was born](/blog/2017/12-14-introducing-docusaurus.mdx)!**\\n\\n![Birth of Slash](/img/slash-birth.png)\\n\\nIt quickly built momentum at Facebook and in the frontend ecosystem, adopted by many popular projects such as [Prettier](https://prettier.io/), [Babel](https://babeljs.io/), [React-Native](https://archive.reactnative.dev/), [KaTeX](https://katex.org/docs/), and of course [Docusaurus v1](http://v1.docusaurus.io/) itself.\\n\\n<ShowcaseCarouselV1 />\\n\\n<br />\\n\\n:::note\\n\\nNotice that the sample sites above use different colors, but still look quite the same.\\n\\n:::\\n\\n## Toward Docusaurus 2.0\\n\\n[**Docusaurus v1**](http://v1.docusaurus.io/) has been very successful, but we started to **question some architectural choices**:\\n\\n- React was only used as a **server-side templating language**, and not used on the client\\n- **Theming system was pretty limited**, and apart from changing a few colors with CSS, it was difficult to do more advanced customizations\\n- The **docs versioning system was confusing**, since it was based on a diff algorithm\\n- The codebase was **monolithic**, neither well-tested nor easy to extend\\n\\n[**Docusaurus v2**](https://docusaurus.io/) was **rebuilt** from the ground up with a new **modular architecture**:\\n\\n- React is now also used on the client, enabling a **modern Single Page Application navigation**\\n- **Plugins** empower the community to contribute useful features as third-party packages\\n- **Theming** is more **flexible** than ever\\n- Docs versioning is now based on snapshot copies, much easier to understand\\n- We kept **everything good from v1**: docs, blog, pages, versioning, i18n...\\n- We implemented **several new features**\\n\\nMore details in the [Docusaurus 2 project announcement](/blog/2018/09-11-Towards-Docusaurus-2.mdx) and [v1 to v2 migration guide](https://docusaurus.io/docs/migration)\\n\\n## Who uses Docusaurus 2.0?\\n\\nDespite being in pre-release, it didn\'t take long for **Docusaurus v2 to outgrow Docusaurus v1** in terms of NPM downloads:\\n\\n[![NPM downloads: v2 outgrows v1](./img/npm-downloads.png)](https://npmtrends.com/docusaurus-vs-@docusaurus/core)\\n\\nOur GitHub star trend is very positive, competing with major frameworks:\\n\\n[![GitHub stars: Docusaurus is well-positioned](./img/star-history.png)](https://star-history.com/#facebook/docusaurus&vercel/next.js&gatsbyjs/gatsby&hexojs/hexo&nuxt/nuxt.js&vuejs/vuepress&11ty/eleventy&gohugoio/hugo&remix-run/remix&mkdocs/mkdocs&Timeline)\\n\\nToday, Docusaurus v2 has already been a great success even before its launch:\\n\\n- We received so many [lovely testimonials](https://x.com/sebastienlorber/timelines/1392048416872706049)\\n- Companies like [1Password](https://blog.1password.com/docusaurus-documentation-framework/) and [Courier](https://www.courier.com/blog/how-we-built-our-documentation/) are writing down their positive experience\\n- Our [site showcase](/showcase) references hundreds of sites, and this is only the tip of the iceberg.\\n\\n<ShowcaseCarouselV2 />\\n\\n<br />\\n\\n:::tip\\n\\nPlease add your site to our [site showcase](/showcase)! It only takes a few seconds: just [post a comment here](https://github.com/facebook/docusaurus/discussions/7826).\\n\\n:::\\n\\n<TweetQuote\\n url=\\"https://x.com/maxlynch/status/1549415692704825346\\"\\n handle=\\"maxlynch\\"\\n name=\\"Max Lynch\\"\\n job=\\"Ionic co-founder and CEO\\">\\n We use Docusaurus everywhere now and love it\\n</TweetQuote>\\n\\n<TweetQuote\\n url=\\"https://x.com/supabase/status/1328960757149671425\\"\\n handle=\\"supabase\\"\\n name=\\"Supabase\\"\\n job=\\"Open Source Firebase alternative\\">\\n We\'ve been using V2 since January and it has been great\\n</TweetQuote>\\n\\n<TweetQuote\\n url=\\"https://x.com/gabrielcsapo/status/1415061312917233665\\"\\n handle=\\"gabrielcsapo\\"\\n name=\\"Gabriel Csapo\\"\\n job=\\"Staff Software Engineer at LinkedIn\\">\\n Docusaurus is next level easy for literally everything you would need for\\n documentation in your project.\\n</TweetQuote>\\n\\n<TweetQuote\\n url=\\"https://x.com/ItWasMattGregg/status/1526682295075102721\\"\\n handle=\\"ItWasMattGregg\\"\\n name=\\"Matt Gregg\\"\\n job=\\"Senior Front End Developer at Shopify\\">\\n Docusaurus is awesome. We use it\\n</TweetQuote>\\n\\n## What\'s New in 2.0?\\n\\nIt would be difficult to describe every single new feature coming with Docusaurus v2. Let\'s focus on the features we believe are the **most impactful**.\\n\\n### MDX\\n\\n[MDX](https://github.com/mdx-js/mdx) allows you to **interleave React components** in Markdown. This enables you to build top-notch **interactive documentation experiences** very easily.\\n\\nA demo is worth a thousand words:\\n\\n```md title=\\"docs/my-document.mdx\\"\\n### Give it a try: press that button!\\n\\nimport ColorModeToggle from \'@theme/ColorModeToggle\';\\n\\n<ColorModeToggle/>\\n```\\n\\n```mdx-code-block\\n<BrowserWindow>\\n\\n<h3>Give it a try: press that button!</h3>\\n\\n<ColorModeToggle/>\\n\\n</BrowserWindow>\\n```\\n\\n:::info\\n\\nMDX has its own [plugin system](https://mdxjs.com/docs/extending-mdx/). You to customize your Markdown authoring experience, and even create your own Markdown syntax.\\n\\n:::\\n\\n<TweetQuote\\n url=\\"https://x.com/HamelHusain/status/1551962275250053123\\"\\n handle=\\"HamelHusain\\"\\n name=\\"Hamel Husain\\"\\n job=\\"Head Of Data Science at Outerbounds\\">\\n Docusaurus + MDX is great: we were able to implement a beautiful two-pane\\n layout and give the author fine-grained control on the placement of code and\\n corresponding prose.\\n</TweetQuote>\\n\\n### File system conventions\\n\\nOur goal is to make Docusaurus very **intuitive** to use. We added file system conventions, and adding a doc page is as easy as creating one Markdown file.\\n\\n<LiteYouTubeEmbed\\n id=\\"T3S8GyFIXjo\\"\\n params=\\"autoplay=1&autohide=1&showinfo=0&rel=0\\"\\n title=\\"Explain Like I\'m 5: Docusaurus\\"\\n poster=\\"maxresdefault\\"\\n webp\\n/>\\n\\n<br />\\n\\n<TweetQuote\\n url=\\"https://x.com/paularmstrong/status/1552005085168865281\\"\\n handle=\\"paularmstrong\\"\\n name=\\"Paul Armstrong\\"\\n job=\\"Principal Engineer at Microsoft\\">\\n Using the auto-generated sidebars makes it so simple to just create a page and\\n not worry about any other configuration.\\n</TweetQuote>\\n\\n### Plugins\\n\\nDocusaurus now has a **modular architecture** with a plugin system \u2014 our **core features** like docs, blog, pages, and search are all powered by individual plugins.\\n\\nMore importantly, it enables our community to **enhance Docusaurus** with additional features.\\n\\nLet\'s highlight some examples:\\n\\n- [redocusaurus](https://github.com/rohit-gohri/redocusaurus): seamless integration with [OpenAPI](https://www.openapis.org/) and [Redoc](https://github.com/Redocly/redoc)\\n\\n![redocusaurus plugin example](./img/plugins/redocusaurus.png)\\n\\n- [docusaurus-preset-shiki-twoslash](https://www.npmjs.com/package/docusaurus-preset-shiki-twoslash): use [Shiki](https://github.com/shikijs/shiki) code block syntax highlighting with [TwoSlash](https://shikijs.github.io/twoslash/) TypeScript compiler hints\\n\\n![shiki-twoslash plugin example](./img/plugins/shiki-twoslash.png)\\n\\n<TweetQuote\\n url=\\"https://x.com/orta\\"\\n handle=\\"orta\\"\\n name=\\"Orta Therox\\"\\n job=\\"Former TypeScript core team at Microsoft\\">\\n The plugin API was a breeze to use, and powerful enough that I could port the\\n code sample renderer from the TypeScript website site in a couple of hours.\\n</TweetQuote>\\n\\n- [docusaurus-search-local](https://github.com/easyops-cn/docusaurus-search-local): one of the various local search alternatives to the built-in Algolia plugin\\n\\n![local search plugin example](./img/plugins/search.png)\\n\\n:::tip\\n\\nWe have a curated list of outstanding plugins in our [community resources](/community/resources) page.\\n\\n:::\\n\\n<TweetQuote\\n url=\\"https://x.com/jodyheavener/status/1551974535452311552\\"\\n handle=\\"jodyheavener\\"\\n name=\\"Jody Heavener\\"\\n job=\\"Senior Developer at 1Password\\">\\n The plugin system in Docusaurus v2 has made expanding 1Password\'s developer\\n portal so easy and fun. Super excited to show you what we\'ve got cooking up.\\n</TweetQuote>\\n\\n### Theming\\n\\nTheming is one of the most important features of Docusaurus: we believe a professional documentation site should **respect your company\'s branding** and create a consistent experience.\\n\\nDocusaurus theming gives a lot of **flexibility** on multiple levels:\\n\\n- Customize CSS variables to adjust colors, fonts, and more\\n- Provide your own CSS stylesheets\\n- Implement your own theme from scratch\\n- **Override any React component** provided by our default theme: we call this [swizzling](https://docusaurus.io/docs/swizzling)\\n\\n<TweetQuote\\n url=\\"https://x.com/hung_dev/status/1546918275065741312\\"\\n handle=\\"hung_dev\\"\\n name=\\"\\nHung Viet Nguyen\\"\\n job=\\"Creator of JestPreview\\">\\n I love Docusaurus Swizzling feature. It\u2019s opinionated and flexible at the same\\n time. This is super cool since a framework usually needs to sacrifice one for\\n the other.\\n</TweetQuote>\\n\\nThis enables users willing to invest a bit more time on **customizations** to build sites that **look different** from others.\\n\\n<ShowcaseCarouselV2Theming />\\n\\n<TweetQuote\\n url=\\"https://x.com/dabit3/status/1382855449813389315\\"\\n handle=\\"dabit3\\"\\n name=\\"Nader Dabit\\"\\n job=\\"Web3 developer, Developer DAO founder\\">\\n So far it\u2019s working out really nicely. It\u2019s been really easy to style up the\\n way that we wanted it to look. No blockers at all.\\n</TweetQuote>\\n\\n### Other features\\n\\nDocusaurus 2 comes with a very long list of useful features:\\n\\n- Theme: dark mode, better UI and UX, flexible `themeConfig` options...\\n- Docs versioning: flexible plugin options to adapt to your workflow\\n- Docs sidebar: collapsible category, category index pages...\\n- Blog: multiple authors, authors map, archive page...\\n- Markdown: tabs, math equations, live code blocks, linking, flexible front matter...\\n- Search: use the new Algolia DocSearch 3 experience\\n- Assets: make it easy to incorporate images and other kinds of files\\n- Internationalization: config options, default theme translations...\\n- Accessibility: aria labels, color contrasts, skip-to-content, keyboard navigation, progressive enhancement...\\n- SEO: sensible defaults, easy to customize, canonical url, social card, no-index, sitemap, microdata, hreflang...\\n- PWA: add offline support to your site, and make it installable\\n- Fail-fast: strict config validation, detect broken links, and prevent bad production deployments\\n- TypeScript support for config files, plugins, custom pages and theme authors\\n- Playgrounds: assess Docusaurus easily from your browser with [docusaurus.new](https://docusaurus.new)\\n- Canary releases: use the @canary npm tag to use the upcoming release before anyone else\\n- Tests: Docusaurus is well-tested, we dogfood features and ensure they keep working\\n\\n<TweetQuote\\n url=\\"https://x.com/alexbdebrie/status/1540010328335032320\\"\\n handle=\\"alexbdebrie\\"\\n name=\\"Alex DeBrie\\"\\n job=\\"AWS Data Hero, author of The DynamoDB Book\\">\\n Recently, I was shocked at how good Docusaurus is out of the box. Super solid,\\n a good bit of configuration without being overwhelming, and the ability to\\n really customize the styling if you\'re braver than I am.\\n</TweetQuote>\\n\\n## Why 2.0 now?\\n\\nMany enthusiastic followers of ours have been curious **why it took us 4 years to release Docusaurus 2.0**, considering the beta is already successful and **widely used in production**.\\n\\nThe reason is that we aim to **respect [Semantic Versioning](https://semver.org/)**, which means we will be incrementing the major version number whenever we release a **breaking change**.\\n\\nIt is important for multiple reasons:\\n\\n- It **guarantees simple minor version upgrades**, as long as you only use the [public API](/community/release-process#public-api-surface)\\n- It follows front-end ecosystem conventions\\n- A new major version is an opportunity to thoroughly document breaking changes\\n- A new major/minor version is an opportunity to communicate new features through a blog post\\n\\nThe problem is that our flexible theming system inherently creates a very **implicit API surface** on which it is **hard to know what is a breaking change** in the first place. Highly customized Docusaurus sites sometimes have a hard time upgrading Docusaurus because they achieve customizations using internal APIs. We dedicated time to extensive theme refactors and clearly defining our [public API](/community/release-process#public-api-surface), so that future code changes can be made more safely. We will continue to expand this public theming API so that the most common site customizations do not need to use any internal API.\\n\\n:::info\\n\\nFrom now on, Docusaurus will **release new major versions more frequently**. In practice, you can expect a **new major version every 2 to 4 months**.\\n\\n[Major version numbers are not sacred](https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html), but we still group breaking changes together and avoid releasing major versions too often.\\n\\nCheck our [release process](/community/release-process) documentation for details.\\n\\n:::\\n\\n## What\'s Next?\\n\\n![Slash Up and Running](/img/slash-up-and-running.png)\\n\\nThe work on Docusaurus 3.0 has started, and this next version will be released only in a few months. We will **backport retro-compatible changes in Docusaurus 2.x** minor versions to make them available as soon as possible to the community on a stable channel.\\n\\nA sample of the features on our roadmap for the upcoming major versions of Docusaurus:\\n\\n- [Upgrade to MDX 2.0](https://github.com/facebook/docusaurus/issues/4029)\\n- [Improve Markdown infrastructure](https://github.com/facebook/docusaurus/issues/4625)\\n- [Improve theming and swizzle](https://github.com/facebook/docusaurus/issues/6114)\\n- [TailwindCSS theme](https://github.com/facebook/docusaurus/issues/2961)\\n- [Theme; support custom item types for navbar, doc sidebar, blog sidebar, footer](https://github.com/facebook/docusaurus/issues/7227)\\n- [Dynamic navbar: navbar item activation strategies](https://github.com/facebook/docusaurus/issues/4389)\\n- [Custom Social Cards](https://github.com/facebook/docusaurus/issues/2968)\\n- [CSS-in-JS support](https://github.com/facebook/docusaurus/issues/3236)\\n- [Use Node.js ES Modules](https://github.com/facebook/docusaurus/issues/6520)\\n- [Improve build time performance](https://github.com/facebook/docusaurus/issues/4765)\\n- [Extend Docusaurus plugins, CMS integration](https://github.com/facebook/docusaurus/issues/4138)\\n\\n## Thank You\\n\\nWe\'d like to express our gratitude to [all our contributors](https://github.com/facebook/docusaurus/graphs/contributors), including:\\n\\n- The Docusaurus core team: [Alexey Pyltsyn](https://github.com/lex111), [Joshua Chen](https://github.com/Josh-Cena), [S\xe9bastien Lorber](https://github.com/slorber), [Yangshun Tay](https://github.com/yangshun) and all our [former team members](https://docusaurus.io/community/team)\\n- [Joel Marcey](https://github.com/JoelMarcey) for creating Docusaurus 1.0 and supporting the Docusaurus 2.0 project at Meta Open Source\\n- [Paul O\u2019Shannessy](https://github.com/zpao) for supporting the development of all the next versions of Docusaurus at Meta Open Source\\n- [Eric Nakagawa](https://github.com/ericnakagawa) for creating our cutest mascot Slash\\n- [Endilie Yacop Sucipto](https://github.com/endiliey) for his significant [initial work on Docusaurus v2](/blog/2020/01-07-tribute-to-endi.mdx)\\n- [Cl\xe9ment Vannicatte](https://github.com/shortcuts), [Kevin Granger](https://github.com/Shipow) and the whole Algolia team for their support\\n- All the community members for making valuable code contributions, improving our documentation, and answering questions on [Discord](https://discordapp.com/invite/docusaurus)\\n\\nWe\'d like to thank in particular all our **Docusaurus 2.0 early adopters** for assessing its alpha, beta and canary releases, providing a ton of **invaluable feedback**. We sincerely hope you had a great experience using it, and that you will continue to provide feedback on the upcoming pre-releases of Docusaurus 3.0.\\n\\nAt [Meta Open Source](https://opensource.fb.com/), Docusaurus is one of our **most successful projects**. We can\'t wait to see all the outstanding documentation websites that you will create! Don\'t forget to **submit them to our [site showcase](/showcase)**!\\n\\n**Now, let your imagination run wild \u{1F92A}!**\\n\\n\u2014 Slash\\n\\n:::info We are on [ProductHunt](https://www.producthunt.com/posts/docusaurus-2-0) and [Hacker News](https://news.ycombinator.com/item?id=32303052)!\\n\\n\u{1F64F} Share your experience using Docusaurus with the community!\\n\\n<div style={{display: \'flex\'}}>\\n <ProductHuntCard />\\n <HackerNewsIcon />\\n</div>\\n\\n:::\\n\\n![Slash plushies](./img/slash-plushies.jpg)"},{"id":"/2022/01/24/docusaurus-2021-recap","metadata":{"permalink":"/blog/2022/01/24/docusaurus-2021-recap","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2022/01-24-docusaurus-2021-recap/index.mdx","source":"@site/blog/2022/01-24-docusaurus-2021-recap/index.mdx","title":"Docusaurus 2021 Recap","description":"Docusaurus has made great progress in 2021! We\'ve seen a lot of traction and just crossed 30k stars on GitHub!","date":"2022-01-24T00:00:00.000Z","tags":[{"inline":false,"label":"Recap","permalink":"/blog/tags/recap","description":"Blog posts about Docusaurus\' year recaps"}],"readingTime":6.01,"hasTruncateMarker":true,"authors":[{"name":"Joshua Chen","title":"Working hard on Docusaurus","url":"https://joshcena.com/","email":"sidachen2003@gmail.com","page":{"permalink":"/blog/authors/josh-cena"},"imageURL":"https://github.com/josh-cena.png","key":"Josh-Cena"}],"frontMatter":{"title":"Docusaurus 2021 Recap","authors":["Josh-Cena"],"tags":["recap"],"image":"./img/thumbnail.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Announcing Docusaurus 2.0","permalink":"/blog/2022/08/01/announcing-docusaurus-2.0"},"nextItem":{"title":"DocSearch migration","permalink":"/blog/2021/11/21/algolia-docsearch-migration"}},"content":"Docusaurus has made great progress in 2021! We\'ve seen a lot of traction and just crossed **30k stars on GitHub**!\\n\\nWe\'ve **reached full feature parity** with v1 after [the release of internationalization](/blog/2021/03-09-releasing-docusaurus-i18n.mdx), [announced our **first beta**](/blog/2021/05-12-announcing-docusaurus-two-beta/index.mdx), and welcomed **significantly more users** this year.\\n\\nThe **official v2 release** is just around the corner! Follow the [roadmap issue](https://github.com/facebook/docusaurus/issues/6113) for any latest news.\\n\\n![](./img/thumbnail.png)\\n\\n<!--truncate-->\\n\\n## Highlights\\n\\nLet\'s begin by going over a few highlights this year. Remember the [todo-list](/blog/2021/05-12-announcing-docusaurus-two-beta/index.mdx#whats-next) from half a year ago? Time to take it out again and see how far we\'ve come!\\n\\n- **Internationalization**: officially released four months after its initial landing in late 2020. Seen great success in [many projects](/showcase?tags=i18n)\\n- **Autogenerated sidebars**: no need to maintain a big `sidebars.js` anymore\\n- **Webpack 5**: significantly improved build performance\\n- **Trailing slash config**: seamless integration with any content hosting provider\\n- **Redesigned mobile navigation**: mobile users now enjoy all navigation features as on desktop\\n- **UI improvements**: more accessible quotes, better admonitions, back-to-top button...\\n- **Blog multi-authors**: credit all the amazing contributors that collaborated on one blog post!\\n- **More blog features**: archive page, structured data for SEO, full post content in feeds \u2013 empowering you to ship a fully-featured blog in no time\\n- **Asset collocation**: no need for a bloated static folder anymore: colocate your images with Markdown files\\n- **Sidebar category index pages**: category labels can now be associated with pages, enabling better doc organization\\n\\nOur codebase has been polished over time as well. We have improved test coverage, migrated all packages to TypeScript, and reduced our published bundle size by a maximum of 60%!\\n\\n## Trends\\n\\n### npm\\n\\nDocusaurus v2 continues to grow steadily. V2 installation is now 8 times more than v1. In terms of weekly downloads, we have witnessed another three-fold increase (+209.4%), growing from 28,066 in early January to a peak of 86,846 in mid-December.\\n\\n[![Docusaurus v1 vs. v2 npm trends of the year 2021. The installations of Docusaurus v2 is constantly rising, while v1 is almost constant. V1 stays at 10000, while v2 grows from 30000 to almost 90000. There\'s a sharp drop from 90000 to 40000 just before the Jan 2022 line.](./img/npm-trend.png)](https://www.npmtrends.com/docusaurus-vs-@docusaurus/core)\\n\\n(Ah, the classic Christmas dip...)\\n\\nWe released 18 versions, going from `2.0.0-alpha.71` to `2.0.0-beta.14`. That\'s one release every 20 days!\\n\\n### GitHub\\n\\n- **Stars**: 20,460 \u2192 29,679 (+45.1% y/y). And, just before this blog post is published, we have reached 30k stars!\\n- **Total contributors**: 512 \u2192 773 (+51.0% y/y)\\n- **Dependents**: 5,039 \u2192 14,579 (+189.3% y/y) for v2, and 6,311 \u2192 7,581 (+20.1% y/y) for v1\\n- **Commits**: 1,187 commits in the past year, averaging 23 commits every week\\n- **Issues**: 619 issues opened, 505 of them eventually resolved\\n- A [**new core team member**](https://github.com/Josh-Cena) (yep, that\'s me \u{1F61D})\\n\\nOur star trend is also very positive. Compared to similar projects, we are **growing at a faster rate**:\\n\\n![Stars trend by year of 9 static site generators. Next.js grows the fastest, with Docusaurus at the 4th place in terms of growth rate.](./img/star-history.png)\\n\\nWith an 8.4k increase in stars, we are ranked number 3 in this year\'s [JavaScript rising stars of static site generators](https://risingstars.js.org/2021/en#section-ssg), preceded only by Next.js and Astro.\\n\\n![Docusaurus placing 3rd in the \\"Static Sites\\" ranking list](./img/rising-stars.png)\\n\\n## Featured adoptions\\n\\nOur showcase has welcomed a few new [\\"favorite\\" sites](/showcase?tags=favorite) that showcase the true potential of Docusaurus 2\'s pluggable architecture.\\n\\n- [**IOTA-wiki**](https://wiki.iota.org/)\\n\\n![Iota wiki light mode](./img/iota-light.png#gh-light-mode-only)![Iota wiki dark mode](./img/iota-dark.png#gh-dark-mode-only)\\n\\n- [**Dyte**](https://docs.dyte.io/docs/home/introduction/)\\n\\n![Dyte light mode](./img/dyte-light.png#gh-light-mode-only)![Dyte dark mode](./img/dyte-dark.png#gh-dark-mode-only)\\n\\n- [**Ionic**](https://ionicframework.com/docs)\\n\\n![Ionic light mode](./img/ionic-light.png#gh-light-mode-only)![Ionic dark mode](./img/ionic-dark.png#gh-dark-mode-only)\\n\\n- [**Courier**](https://www.courier.com/docs/)\\n\\n![Courier](./img/courier.png)\\n\\nThe creativity of Docusaurus users is beyond our imagination \u{1F929} We look forward to more and more adopters leveraging the content features of Docusaurus while exploring original theme designs! If your site uses Docusaurus, we would love to [have it in our showcase](https://github.com/facebook/docusaurus/edit/main/website/src/data/users.tsx).\\n\\n## Community\\n\\nAs an active moderator on [Discord](https://discord.gg/docusaurus), I can clearly see the community thriving. Many frequently asked questions are now integrated into our documentation, and some feature requests have been implemented as well. The project and the community reciprocally benefit each other \u2013 case in point, I was formerly a community contributor before becoming a maintainer.\\n\\nWe are constantly mentioned on X with inspirational feedback:\\n\\n> **@docusaurus** is amazing! cant believe it\'s THAT simple to use.\\n\\n> No extra plugins, tooling or compilation steps. It just works out of the box.\\n\\n> I love **@docusaurus**. I couldn\'t have built the APIs, tutorials, and blogs contained in my site efficiently and beautifully in my workflow without Docusaurus.\\n\\nAnd we keep every one of them in [our little box](https://x.com/sebastienlorber/timelines/1392048416872706049) \u{1F604} If you enjoy Docusaurus yourself, keep tagging us with your comments!\\n\\nAs we approach the official release, we are interested in knowing more about what people are doing out there: [plugin authors](https://github.com/facebook/docusaurus/discussions/4025), [creators of customized sites](https://github.com/facebook/docusaurus/discussions/5468), and [all new users](https://github.com/facebook/docusaurus/discussions/4610) \u2013 please keep us posted about your achievements so we can steer our development to better serve your needs.\\n\\n## Going forward\\n\\nIn the past few months, we have been constantly speaking about the release-candidate phase of Docusaurus, and yes, it\'s almost there. We have created a dedicated [milestone](https://github.com/facebook/docusaurus/milestone/15) to keep track of all issues to solve before we can confidently progress to the next stage. In short, we want to build a **more robust theming workflow**, empowering creative site creators to customize our default theme without fearing breaking changes as they upgrade. This will include:\\n\\n- Guidelines on **component organization**. We want the theme components to have the right granularity so when you want to customize a part of your site, there\'s always a component doing just what you need.\\n- Improvements to the **swizzle CLI**. We want users to use it with delight and let it aid you through all possible swizzling scenarios.\\n- Refactoring our **theme APIs**. We want all swizzlable components to be actually appropriate for swizzling, so non-UI components will be re-located.\\n- **Docs**. We want our docs to be maximally accessible to everyone \u2013 from first-time coders to experienced web developers. We will organize it as a more progressive tutorial that can be beneficial for every skill level.\\n\\nRead more about plans for Docusaurus 2.0 in this [roadmap issue](https://github.com/facebook/docusaurus/issues/6113). 2.0 will be a greater release with the help from the community, so please share your opinions and suggestions under any of the milestone issues!\\n\\nAs the core team is working hard to ship the general availability release, we plan to release other useful features as minor versions after 2.0. We have even made further plans for [architectural changes in 3.0](https://github.com/facebook/docusaurus/milestone/16)!\\n\\nWith the official release of Docusaurus 2.0, we are confident to see much more new adoptions and migrations from v1.\\n\\nWe\'d like to express our gratitude to [all the contributors in 2021](https://github.com/facebook/docusaurus/graphs/contributors?from=2021-01-01&to=2022-01-01&type=c), including:\\n\\n- The core team: [Alexey Pyltsyn](https://github.com/lex111), [S\xe9bastien Lorber](https://github.com/slorber), [Joshua Chen](https://github.com/Josh-Cena), and [Yangshun Tay](https://github.com/yangshun) for moderating the community, publicizing Docusaurus, triaging issues, and implementing new features\\n- [Joel Marcey](https://github.com/JoelMarcey) for creating Docusaurus and supporting its development all along\\n- The Algolia team for helping Docusaurus users [migrate to the new DocSearch](/blog/2021/11-21-algolia-docsearch-migration/index.mdx) and answering search-related questions\\n- All the active community members for making valuable code contributions, improving our documentation, and answering questions on Discord\\n\\nSo long, 2021, and let\'s greet a great 2022!"},{"id":"/2021/11/21/algolia-docsearch-migration","metadata":{"permalink":"/blog/2021/11/21/algolia-docsearch-migration","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2021/11-21-algolia-docsearch-migration/index.mdx","source":"@site/blog/2021/11-21-algolia-docsearch-migration/index.mdx","title":"DocSearch migration","description":"DocSearch is migrating to a new, more powerful system, which gives users their own Algolia application and new credentials.","date":"2021-11-21T00:00:00.000Z","tags":[{"inline":false,"label":"Search","permalink":"/blog/tags/search"}],"readingTime":2.96,"hasTruncateMarker":true,"authors":[{"name":"Cl\xe9ment Vannicatte","title":"Software Engineer @ Algolia","url":"https://github.com/shortcuts","socials":{"x":"https://x.com/sh0rtcts","github":"https://github.com/shortcuts"},"imageURL":"https://github.com/shortcuts.png","key":"shortcuts","page":null},{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"DocSearch migration","authors":["shortcuts","slorber"],"tags":["search"],"image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 2021 Recap","permalink":"/blog/2022/01/24/docusaurus-2021-recap"},"nextItem":{"title":"Announcing Docusaurus 2 Beta","permalink":"/blog/2021/05/12/announcing-docusaurus-two-beta"}},"content":"[DocSearch](https://docsearch.algolia.com/) is migrating to a new, more powerful system, which gives users their own Algolia application and new credentials.\\n\\nDocusaurus site owners should upgrade their configuration with their new credentials **by February 1, 2022**, existing search indexes will be frozen and become read-only after this date.\\n\\n<!--truncate-->\\n\\n## Upgrading your Docusaurus site\\n\\nIn the next few weeks, Docusaurus site owners will receive an email inviting them to join their personal Algolia application.\\n\\nThis email will include a new `appId` and `apiKey` to use in your Docusaurus configuration.\\n\\nThe only things you have to do:\\n\\n- Join the Algolia application (eventually creating a new Algolia account)\\n- Update your site configuration.\\n\\n```js title=\\"docusaurus.config.js\\"\\nconst config = {\\n themeConfig: {\\n algolia: {\\n // highlight-start\\n appId: \'<NEW_APP_ID>\',\\n apiKey: \'<NEW_SEARCH_API_KEY>\',\\n // highlight-end\\n },\\n },\\n};\\n\\nmodule.exports = config;\\n```\\n\\n:::info\\n\\n`appId` is now **required**.\\n\\nThese keys are not secrets and can be added to your Git repository.\\n\\n:::\\n\\n## DocSearch has a new home!\\n\\n### What is DocSearch?\\n\\n[DocSearch](https://docsearch.algolia.com/) is a program created by [Algolia](http://algolia.com/), which offers search to technical documentation of Open Source projects and technical blogs **for free**.\\n\\nYou can [read more here](https://docsearch.algolia.com/docs/what-is-docsearch/), and [apply](https://docsearch.algolia.com/apply) if you\'d like to give it a try!\\n\\n## What is this migration about?\\n\\n### Motivation\\n\\nWith the upcoming stable release of [DocSearch UI](https://docsearch.algolia.com/docs/DocSearch-v3), we wanted to go further and provide better tooling for our users to improve their search, but also leverage the full potential of Algolia.\\n\\n### What\'s new?\\n\\nDocSearch now leverages the [Algolia Crawler](https://www.algolia.com/products/search-and-discovery/crawler/), which includes a web interface that will allow you to:\\n\\n- Start, schedule and monitor your crawls\\n- Edit your config file from a live editor\\n- Test your results with DocSearch v3\\n\\n![The Algolia crawler front page showing the project\'s overview, such as last complete crawl and indices](./img/crawler-overview.png)\\n\\n![The Algolia config editor opened to the docusaurus-2 config. The right pane shows the results for index and various facet filters.](./img/editor.png)\\n\\nBut also, more Algolia features in **your own Algolia app**:\\n\\n- Team management\\n- Browse and see how your records are indexed in Algolia\\n- Try other Algolia features with free trials\\n\\n![The Algolia index overview page, showing various filters and the details of every single index](./img/index-overview.png)\\n\\n![The Algolia index analytics page, showing trends for total users, total searches, etc.](./img/index-analytics.png)\\n\\nAnd of course, **a lot more, for free**.\\n\\n## FAQ\\n\\n### I\'m using Docusaurus and DocSearch, can I migrate? {#im-using-docusaurus-and-docsearch-can-i-migrate}\\n\\nAt the time we are writing this, we are still at an early stage of the migration. We are doing small batches every week but will increase the load shortly, so please be patient and keep an eye out in your mailbox, you\'ll be contacted as soon as your Algolia app is ready!\\n\\n### Where can I read more about this?\\n\\nWe wrote a small [migration guide](https://docsearch.algolia.com/docs/migrating-from-legacy) but you\'ll have more detailed information in the migration email.\\n\\n### I received the migration email but the invite expired\\n\\nPlease contact us via either [email](mailto:docsearch@algolia.com) or [DocSearch\'s Discord](https://discord.gg/bRTacwYrfX) or on [Docusaurus\'s Discord #algolia channel](https://discordapp.com/invite/docusaurus)\\n\\n### I have feedback!\\n\\nFor any feedback regarding our documentation or the DocSearch UI component, you can open an issue [on our GitHub repository](https://github.com/algolia/docsearch/issues), but also contact us via the methods above.\\n\\n### Can I still run my own DocSearch instance?\\n\\nIn favor of the new infrastructure and DocSearch v3, we will no longer maintain our beloved [DocSearch scraper](https://github.com/algolia/docsearch-scraper) and [DocSearch v2](https://github.com/algolia/docsearch/tree/master), but the repositories will still be available and open to pull requests.\\n\\nThe previous documentation (now called `legacy`) remains available as well as our [`run your own`](https://docsearch.algolia.com/docs/legacy/run-your-own) guide."},{"id":"/2021/05/12/announcing-docusaurus-two-beta","metadata":{"permalink":"/blog/2021/05/12/announcing-docusaurus-two-beta","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2021/05-12-announcing-docusaurus-two-beta/index.mdx","source":"@site/blog/2021/05-12-announcing-docusaurus-two-beta/index.mdx","title":"Announcing Docusaurus 2 Beta","description":"After a lengthy alpha stage in order to ensure feature parity and quality, we are excited to officially release the first Docusaurus 2 beta.","date":"2021-05-12T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"},{"inline":false,"label":"Beta","permalink":"/blog/tags/beta"}],"readingTime":3.52,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{},"imageURL":"./img/slorber.png","key":"slorber","image_url":"./img/slorber.png"},{"name":"Joel Marcey","title":"Developer Advocate at Meta","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{"x":"https://x.com/joelmarcey","github":"https://github.com/JoelMarcey"},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"},{"name":"Yangshun Tay","title":"Front End Engineer at Meta","url":"https://github.com/yangshun","page":{"permalink":"/blog/authors/yangshun"},"socials":{"x":"https://x.com/yangshunz","github":"https://github.com/yangshun"},"imageURL":"https://github.com/yangshun.png","key":"yangshun"},{"name":"Alexey Pyltsyn","title":"Open-source enthusiast","url":"https://github.com/lex111","email":"lex@php.net","page":{"permalink":"/blog/authors/lex-111"},"imageURL":"https://github.com/lex111.png","key":"lex111"}],"frontMatter":{"title":"Announcing Docusaurus 2 Beta","authors":[{"key":"slorber","image_url":"./img/slorber.png","imageURL":"./img/slorber.png"},"JMarcey","yangshun","lex111"],"tags":["release","beta"],"image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"DocSearch migration","permalink":"/blog/2021/11/21/algolia-docsearch-migration"},"nextItem":{"title":"Releasing Docusaurus i18n","permalink":"/blog/2021/03/09/releasing-docusaurus-i18n"}},"content":"After a lengthy alpha stage in order to ensure feature parity and quality, we are excited to officially release the first **[Docusaurus 2 beta](https://github.com/facebook/docusaurus/releases/tag/v2.0.0-beta.0)**.\\n\\nWith the announcement of this beta, the team is even more confident that Docusaurus 2 is **ready for mainstream adoption**!\\n\\n![](./img/image_cropped.png)\\n\\n<!--truncate-->\\n\\n## Docusaurus adoption\\n\\n**Don\'t fear the beta tag!**\\n\\nDocusaurus 2 is widely adopted and growing fast:\\n\\n[![Docusaurus v1 vs. v2 npm trends from 2019 to mid 2021. The installations of Docusaurus v2 is sharply rising, while v1 is mostly stable. V1 fluctuates between 10000 and 20000, while v2 starts at 0 and ends at almost 60000. The intersection happens around June 2020.](./img/trend.png)](https://www.npmtrends.com/docusaurus-vs-@docusaurus/core)\\n\\nTo get a fuller understanding of the quality of current Docusaurus 2 sites, our new [showcase](https://docusaurus.io/showcase) page allows you to filter Docusaurus sites by features, so you may get inspired by real-world production sites with a similar use-case as yours!\\n\\nDon\'t miss our [favorite](https://docusaurus.io/showcase?tags=favorite) sites; they all stand out with something unique:\\n\\n[![A screenshot of the showcase\'s favorites section, with 12 cards each displaying the information and preview of one site](./img/favorites.png)](https://docusaurus.io/showcase?tags=favorite)\\n\\n## Why was Docusaurus v2 in alpha for so long?\\n\\nIt\'s hard to believe that the first alpha release [v2.0.0-alpha.0](https://github.com/facebook/docusaurus/releases/tag/v2.0.0-alpha.0) was 2 years ago \u{1F633} , unusually long for a software alpha.\\n\\nAs this was a substantial re-architecture of the code base, we wanted to ensure that we had confidence in the stability and features of Docusaurus 2 before moving on to a beta stage, since beta suggests a high level of quality. We are happy to say that Docusaurus 2 has reached **feature parity** with Docusaurus 1 with **[i18n](https://docusaurus.io/blog/2021/03/09/releasing-docusaurus-i18n)**, and it has been **successfully adopted** by many Docusaurus sites (see [i18n showcase](https://docusaurus.io/showcase?tags=i18n)).\\n\\nWe\'re now quite confident that the core features of Docusaurus 2 are stable enough to be in beta.\\n\\n## What are the goals of the beta?\\n\\nNow that Docusaurus 2 is stable and major feature complete, the goal of the beta is to inspire confidence in new users on the production-readiness of Docusaurus 2, migrate more remaining Docusaurus 1 users to version 2, and officially deprecate Docusaurus 1. We will, of course, continue to resolve any issues and bugs that may be discovered.\\n\\nIn addition, we will use the beta phase to **improve our theming system**.\\n\\nWe want to make it:\\n\\n- **easier to implement a custom theme**, including for ourselves. We want to provide [multiple official themes](https://github.com/facebook/docusaurus/issues/3522) (including [Tailwind CSS](https://github.com/facebook/docusaurus/issues/2961)) for a long time.\\n\\n- **safer to extend an existing theme**: it can be painful to upgrade a highly customized Docusaurus site, as customizations can conflict with internal changes. We need to make the theme public API surface more explicit, and make it clear what is safe to customize.\\n\\nWe will build a better **theming infrastructure** and refactor the classic theme to use it.\\n\\nIf you customize your site, you may find these planned improvements quite valuable.\\n\\n## What\'s new?\\n\\nIn case you missed it, we recently shipped two major improvements:\\n\\n- [Auto-generated sidebars](https://docusaurus.io/docs/sidebar#sidebar-item-autogenerated): no need to maintain a `sidebars.js` file anymore!\\n- [Webpack 5 / PostCSS 8](https://github.com/facebook/docusaurus/issues/4027): persistent caching significantly speeds up **rebuild time**!\\n\\n## What\'s next?\\n\\nShipping the official 2.0 release!\\n\\nTo get there, we will continue to **fix bugs** and implement the **most wanted features**, including:\\n\\n- [Sidebar category index pages](https://github.com/facebook/docusaurus/issues/2643)\\n- [Better mobile navigation UX](https://github.com/facebook/docusaurus/issues/2220)\\n- [Better admonition design](https://github.com/facebookincubator/infima/issues/55)\\n- [CSS-in-JS support](https://github.com/facebook/docusaurus/issues/3236)\\n- [Improve build time performance](https://github.com/facebook/docusaurus/issues/4765)\\n- [Extend Docusaurus plugins, CMS integration](https://github.com/facebook/docusaurus/issues/4138)\\n- [Fix trailing slashes and relative link issues](https://github.com/facebook/docusaurus/issues/3372)\\n- [Better compatibility with CommonMark](https://github.com/facebook/docusaurus/issues/3018)\\n- [Upgrade to MDX 2.0](https://github.com/facebook/docusaurus/issues/4029)\\n\\n## Conclusion\\n\\nThis is an exciting time for Docusaurus.\\n\\nWe are inspired by the [positive feedback](https://x.com/sebastienlorber/timelines/1392048416872706049) about Docusaurus, and discover new sites online every single day.\\n\\nWe are so excited for this beta release. We strove for quality and stability while continuing to try to increase the adoption of Docusaurus. For those that have been on the fence from migrating an existing Docusaurus site to Docusaurus 2, it is a great time to upgrade. We want you running on the latest infrastructure when we deprecate Docusaurus 1 at the end of this beta period. Let us know how we can help.\\n\\nThank you to everyone for reading and to the entire community who supports Docusaurus. \u{1F917}"},{"id":"/2021/03/09/releasing-docusaurus-i18n","metadata":{"permalink":"/blog/2021/03/09/releasing-docusaurus-i18n","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2021/03-09-releasing-docusaurus-i18n.mdx","source":"@site/blog/2021/03-09-releasing-docusaurus-i18n.mdx","title":"Releasing Docusaurus i18n","description":"Today, we officially release Docusaurus 2 i18n (internationalization), as part of 2.0.0-alpha.71.","date":"2021-03-09T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"},{"inline":false,"label":"I18n","permalink":"/blog/tags/i-18-n"}],"readingTime":3.445,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Releasing Docusaurus i18n","authors":["slorber"],"tags":["release","i18n"],"image":"/img/blog/2021-03-09-releasing-docusaurus-i18n/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Announcing Docusaurus 2 Beta","permalink":"/blog/2021/05/12/announcing-docusaurus-two-beta"},"nextItem":{"title":"Docusaurus 2020 Recap","permalink":"/blog/2021/01/19/docusaurus-2020-recap"}},"content":"Today, we officially release **[Docusaurus 2 i18n](https://docusaurus.io/docs/i18n/introduction)** ([internationalization](https://en.wikipedia.org/wiki/Internationalization_and_localization)), as part of [2.0.0-alpha.71](https://github.com/facebook/docusaurus/releases/tag/v2.0.0-alpha.71).\\n\\nDocusaurus 2 has now reached **full feature parity with Docusaurus 1**. \u{1F389} And soon, after a few additional infrastructure updates and a bit more testing, the **first Docusaurus 2 beta** will be released.\\n\\n**We went the extra mile**, and the new i18n support is **even better than in Docusaurus 1**.\\n\\nIn this post, we will present you the **translation workflow**, explain some **design decisions** and **showcase early adopter sites** that just went live: [Jest](https://jestjs.io/), [Redwood](https://learn.redwoodjs.com/), and [Datagit](https://datagit.ir/).\\n\\nWe also **dogfood** the i18n support on the **Docusaurus 2 site itself**, and this post is already available in [English](https://docusaurus.io/blog/2021/03/09/releasing-docusaurus-i18n) and [French](https://docusaurus.io/fr/blog/2021/03/09/releasing-docusaurus-i18n)!\\n\\n<!--truncate-->\\n\\n## Translate your site\\n\\nYou can translate a Docusaurus site in **3 simple steps**:\\n\\n1. **Configure**: declare the default locale and alternative locales in `docusaurus.config.js`\\n1. **Translate**: put the translation files at the [correct filesystem location](https://docusaurus.io/docs/next/i18n/introduction#translation-files-location)\\n1. **Deploy**: build and deploy your site using a single or multi-domain strategy\\n\\nThe i18n support is **very flexible** and based on the **filesystem**.\\n\\nThe **[i18n tutorial](https://docusaurus.io/docs/i18n/tutorial)** is the best way to get started, and we provide help to use **[Git](https://docusaurus.io/docs/i18n/git)** or **[Crowdin](https://docusaurus.io/docs/i18n/crowdin)**.\\n\\n## Design decisions\\n\\nThe goals of the Docusaurus i18n system are:\\n\\n- **Simple**: just put the translated files in the [correct filesystem location](https://docusaurus.io/docs/next/i18n/introduction#translation-files-location)\\n- **Flexible translation workflows**: use Git (monorepo, forks, or submodules), SaaS software, FTP\\n- **Flexible deployment options**: single, multiple domains, or hybrid\\n- **Modular**: allow plugin authors to provide i18n support\\n- **Low-overhead runtime**: documentation is mostly static and does not require a heavy JS library or polyfills\\n- **Scalable build-times**: allow building and deploying localized sites independently\\n- **Localize assets**: an image of your site might contain text that should be translated\\n- **No coupling**: not forced to use any SaaS, yet integrations are possible\\n- **Easy to use with [Crowdin](https://crowdin.com/)**: multiple Docusaurus 1 sites use Crowdin, and should be able to migrate to v2\\n- **Good SEO defaults**: we set useful SEO headers like [`hreflang`](https://developers.google.com/search/docs/advanced/crawling/localized-versions) for you\\n- **RTL support**: locales reading right-to-left (Arabic, Hebrew, etc.) are supported and easy to implement\\n- **Default translations**: classic theme labels are translated for you in [many languages](https://github.com/facebook/docusaurus/tree/main/packages/docusaurus-theme-translations/locales)\\n\\n## Showcase\\n\\nWe worked with a few volunteers to **dogfood the i18n support** before releasing it.\\n\\n### Jest: upgrading Docusaurus\\n\\nWe have made it possible to **upgrade** a **translated Docusaurus 1 site** to Docusaurus 2.\\n\\n**[Jest](https://jestjs.io)**, using Docusaurus 1 and Crowdin was one of those sites.\\n\\nThe Docusaurus 2 migration was successful and the new site is now deployed in production ([announcement post](https://jestjs.io/blog/2021/03/09/jest-website-upgrade)).\\n\\n[![Jest\'s website front page in Japanese](/img/blog/2021-03-09-releasing-docusaurus-i18n/jest.png)](https://jestjs.io)\\n\\n### Redwood: adopting Docusaurus\\n\\n[Redwood](https://redwoodjs.com/) is a React full-stack Jamstack framework.\\n\\nThey were looking for a solution to create an **internationalized learning platform**, and became early adopters of Docusaurus 2 i18n for [learn.redwoodjs.com](https://learn.redwoodjs.com/), using Crowdin to get it translated to French.\\n\\n[![Redwood\'s doc page in French](/img/blog/2021-03-09-releasing-docusaurus-i18n/redwood.png)](https://learn.redwoodjs.com/)\\n\\n### Datagit: using LTR support\\n\\nThe i18n system should work with any language, including **Right-to-Left languages**.\\n\\n[Datagit.ir](https://datagit.ir/) is using Farsi, and a simple configuration option is able to **flip the Docusaurus theme** to add the required Right-to-Left support.\\n\\n[![Datagit\'s website in Persian, a right-to-left language. The sidebar appears on the right of the window and the TOC appears on the left.](/img/blog/2021-03-09-releasing-docusaurus-i18n/datagit.png)](https://datagit.ir/)\\n\\n## Conclusion\\n\\nWe sincerely hope you will adopt and like the new i18n support.\\n\\nThis feature has not been an easy one, and we would like to thank everyone that got involved in this journey:\\n\\n- [Alexey](https://github.com/lex111) for his help to make the i18n support exhaustive and even better than v1\\n- [Simen](https://github.com/SimenB) for volunteering and supporting the Jest migration\\n- [Claire](https://github.com/clairefro) for adopting Docusaurus 2 on the new Redwood platform and providing many feedbacks\\n- [Massoud](https://github.com/massoudmaboudi) for reviewing my work on LTR and adopting it on Datagit\\n- [Crowdin](https://crowdin.com/) for their support and willingness to improve their translation SaaS\\n- The Docusaurus community for their patience, and providing many useful feedbacks on GitHub\\n\\nThanks for reading.\\n\\n\u{1F64F} And please, add your brand new i18n sites to our [showcase page](https://docusaurus.io/showcase). We accept any all polished Docusaurus site here, and we are working on a [redesign](https://github.com/facebook/docusaurus/issues/4238) allowing you to filter sites by features."},{"id":"/2021/01/19/docusaurus-2020-recap","metadata":{"permalink":"/blog/2021/01/19/docusaurus-2020-recap","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2021/01-19-docusaurus-2020-recap.mdx","source":"@site/blog/2021/01-19-docusaurus-2020-recap.mdx","title":"Docusaurus 2020 Recap","description":"2020 was great for Docusaurus, despite a regrettable start and a tumultuous year for everyone.","date":"2021-01-19T00:00:00.000Z","tags":[{"inline":false,"label":"Recap","permalink":"/blog/tags/recap","description":"Blog posts about Docusaurus\' year recaps"}],"readingTime":5.04,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2020 Recap","authors":["slorber"],"tags":["recap"],"image":"/img/docusaurus-2020-recap.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Releasing Docusaurus i18n","permalink":"/blog/2021/03/09/releasing-docusaurus-i18n"},"nextItem":{"title":"Tribute to Endi","permalink":"/blog/2020/01/07/tribute-to-endi"}},"content":"**2020 was great for Docusaurus**, despite [a regrettable start](https://docusaurus.io/blog/2020/01/07/tribute-to-endi) and a tumultuous year for everyone.\\n\\nWe continued to invest in [Docusaurus 2](https://docusaurus.io/), and made it reach **full feature parity** with [Docusaurus 1](https://v1.docusaurus.io/).\\n\\nWe now **recommend Docusaurus 2** as the **default choice** to start a new Docusaurus project and encourage v1 users to [migrate to Docusaurus 2](https://docusaurus.io/docs/migration).\\n\\nWe are **still in alpha**, but expect **some good news very soon**!\\n\\n![Three Docusaurus plushies laid side-by-side on the table](/img/blog/2020-recap/docusaurus-plushie-banner.jpeg)\\n\\n<!--truncate-->\\n\\n## Docusaurus 2 highlights\\n\\nWe have worked on many features this year, and would like to highlight the most significant ones:\\n\\n- **i18n**: easily translate your Docusaurus site, released soon! ([preview](https://github.com/facebook/docusaurus/pull/3325), [doc](https://docusaurus.io/docs/next/i18n/introduction))\\n- **Version dropdown**: enable contextual version switch\\n- **Versioning options**: solving the most common pain-points users had with versioning\\n- **Contextual search**: search in the current version, use the brand-new DocSearch 3 experience\\n- **Markdown pages**: use Markdown instead of React components to create standalone pages\\n- **Better theme**: various UI, UX and accessibility improvements\\n- **PWA**: add offline support to your site, and make it installable\\n- **Fail-fast**: strict config validation, detect broken links, and prevent bad production deployments\\n- **Multi-instance**: use the docs plugin twice on a single site (e.g. iOS/Android SDK docs)\\n- **Migration CLI**: automate the upgrade from Docusaurus 1\\n- **CodeSandbox**: assess Docusaurus easily from your browser with [new.docusaurus.io](https://new.docusaurus.io/)\\n- **Canary releases**: use the `@canary` npm tag to use the upcoming release before anyone else\\n- **TypeScript**: progressive adoption for internal code, and improve usage for users\\n- **Publish Infima**: it is now [open-source](https://github.com/facebookincubator/infima)\\n\\n## Docusaurus 2 growth\\n\\nThe plan to [rebuild Docusaurus from scratch in 2019](https://docusaurus.io/blog/2019/12/30/docusaurus-2019-recap) paid off: after a slow start, Docusaurus 2 has been widely adopted and has **already outgrown Docusaurus 1** usage.\\n\\n![Docusaurus v1 vs. v2 npm trends of the year 2020. The installations of Docusaurus v2 is visibly up-growing, while v1 is slightly downward. V1 starts at 15000 and ends at 10000, while v2 starts at 2000 and ends at 25000. The intersection happens around June 2020.](/img/blog/2020-recap/docusaurus-npm-trends.png)\\n\\nNotable **projects, startups, large companies, and individuals** adopted Docusaurus 2 ([showcase](https://docusaurus.io/showcase)):\\n\\n- [Supabase](https://supabase.io)\\n- [React Navigation](https://reactnavigation.org)\\n- [React Redux](https://react-redux.js.org/)\\n- [Vector](https://vector.dev)\\n- [Algolia DocSearch](https://docsearch.algolia.com)\\n- [SAP Cloud SDK](https://sap.github.io/cloud-sdk)\\n- [Palo Alto Cortex XSOAR](https://xsoar.pan.dev)\\n- [Qudd\xfas George\'s website](https://portfoliosaurus.now.sh)\\n\\nWe helped **large scale Docusaurus 1 sites to upgrade**, ensuring a proper **migration path** and **feature parity**.\\n\\n[React Native](https://reactnative.dev/) was successfully upgraded to Docusaurus 2 ([archived v1 site](http://archive.reactnative.dev/)):\\n\\n![React Native\'s new website built with Docusaurus v2](/img/blog/2020-recap/react-native-screenshot.png)\\n\\nLocalized Docusaurus 1 sites (like **Jest**) will be able to upgrade too:\\n\\n![Jest\'s new website built with Docusaurus v2 in Japanese](/img/blog/2020-recap/jest-screenshot.png)\\n\\nWe also saw the **[first right-to-left](https://datagit.ir/)** Docusaurus 2 site published:\\n\\n![Datagit\'s website in Persian, a right-to-left language. The sidebar appears on the right of the window and the TOC appears on the left.](/img/blog/2020-recap/datagit-rtl-screenshot.png)\\n\\n## GitHub Activity\\n\\n- **Stars**: 14632 \u2192 20946 (+43.2% y/y)\\n- **Total Contributors**: 303 \u2192 512 (+68.9% y/y). Most of which are non-Facebook contributors\\n- **Weekly npm Downloads**: 2356 \u2192 25592 (+986% y/y)\\n- **On GitHub**, Docusaurus 1 is used by 6311 projects (+62.9% y/y) while Docusaurus 2 is used by 5039 projects (+1940% y/y)\\n\\n## Collaboration with Major League Hacking\\n\\nWe have welcomed [Major League Hacking](https://mlh.io/) (MLH) fellows for 2 seasons already.\\n\\nWe are very thankful for the **various contributions** they made, such as:\\n\\n- Writing the foundations of the v1 to v2 migration CLI\\n- Help migrate the React Native website from v1 to v2\\n- Making the config validation more strict and exhaustive, returning helpful error messages\\n- Adding CodeSandbox support\\n- Improving the CI pipelines: build size and Lighthouse bots\\n\\nWe look forward to continuing this collaboration in 2021.\\n\\n## Media\\n\\nDmitry Vinnik (Developer Advocate @ Facebook) explains Docusaurus in [60 seconds](https://www.youtube.com/watch?v=_An9EsKPhp0) or [15min](https://www.youtube.com/watch?v=Yhyx7otSksg) videos.\\n\\nRachel Nabors (Documentation Engineer @ Facebook) talked a bit about Docusaurus in [React Native Radio 178 (podcast)](https://reactnativeradio.com/episodes/178-documenting-react-native-with-rachel-nabors-gWxwySPl), and William Candillon the [React Native website migration (video)](https://www.youtube.com/watch?v=-zhjq2ECKq4).\\n\\nMany blog posts have been published:\\n\\n- [To the Makers of Docusaurus](https://portfoliosaurus.now.sh/blog/toTheMakers) by Quddus George\\n- [Richer API documentation with Redoc and Docusaurus](https://davidgoss.co/blog/api-documentation-redoc-docusaurus/) by David Goss\\n- [How to Build a Plugin for Docusaurus v2](https://aknapen.nl/blog/how-to-build-a-plugin-for-docusaurus-v2/) by Adriaan Knapen\\n- [React Tracked Documentation Website with Docusaurus v2](https://blog.axlight.com/posts/react-tracked-documentation-website-with-docusaurus-v2/) by Daishi Kato\\n- [Easy documentation with Docusaurus](https://blog.logrocket.com/easy-documentation-with-docusaurus/) by Anshul Goyal (MLH fellow)\\n- [Build Beautiful Documentation Websites with Docusaurus](https://lo-victoria.com/build-beautiful-documentation-websites-with-docusaurus) by Victoria Lo\\n\\n## Community\\n\\nThe Docusaurus community continues to grow, the [Discord](https://discord.gg/docusaurus) server is quite active, and [Stack Overflow questions](https://stackoverflow.com/questions/tagged/docusaurus) keep being posted.\\n\\nThe **modular architecture** of Docusaurus 2 allowed the community to build and publish [third-party plugins](https://docusaurus.io/community/resources#community-plugins-). As we would like to federate better our community, if you are building a plugin, please [let us know](https://github.com/facebook/docusaurus/discussions/4025).\\n\\n## What\'s next?\\n\\nAs the **core features of Docusaurus 2** have finally been built, we will be able to dedicate more time to solve the pain points and bugs reported by the community, and make Docusaurus stable and convenient enough to enter the **beta and release-candidate phase**.\\n\\nWith proper support for **i18n and versioning**, and **large scale migrations** such as **React Native** and **Jest**, we now have a clear migration path for all Docusaurus 1 sites.\\n\\nWe still have a few **major features** that we would like to work on:\\n\\n- [Create a theme gallery](https://github.com/facebook/docusaurus/issues/3522), make it easy to switch from one another, and include **first-class Tailwind support**\\n- [Upgrade to Webpack 5](https://github.com/facebook/docusaurus/issues/4027), improve performances and build times\\n- [Better compatibility with CommonMark](https://github.com/facebook/docusaurus/issues/3018), as MDX and makes it harder for CommonMark-based sites to adopt Docusaurus\\n- [Upgrade to MDX 2.0](https://github.com/facebook/docusaurus/issues/4029)\\n- Other tasks that we might discover during 2021\\n\\nHuge thanks to the community for [their contributions in 2020](https://github.com/facebook/docusaurus/graphs/contributors?from=2020-01-01&to=2021-01-01&type=c), especially:\\n\\n- [Joel Marcey](https://github.com/JoelMarcey) for creating Docusaurus and supporting the project all this time\\n- the core team - [Alexey Pyltsyn](https://github.com/lex111), [S\xe9bastien Lorber](https://sebastienlorber.com), [Yangshun Tay](https://x.com/yangshunz)\\n- the Major League Hacking and Facebook interns for their significant impact\\n- the Algolia team for DocSearch 3 and their support\\n- [Bartosz Kaszubowski](https://github.com/Simek) for his investment in the React Native migration\\n- the whole community for their contributions, and providing support to each other\\n\\nCheers to a great 2021! \u{1F389}"},{"id":"/2020/01/07/tribute-to-endi","metadata":{"permalink":"/blog/2020/01/07/tribute-to-endi","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2020/01-07-tribute-to-endi.mdx","source":"@site/blog/2020/01-07-tribute-to-endi.mdx","title":"Tribute to Endi","description":"It is with great sadness to announce that our primary external Docusaurus contributor, Endilie Yacop Sucipto (Endi to those who knew him), passed away over the weekend after an illness associated with his bout with cancer.","date":"2020-01-07T00:00:00.000Z","tags":[{"inline":false,"label":"Endi","permalink":"/blog/tags/endi"},{"inline":false,"label":"Tribute","permalink":"/blog/tags/tribute"}],"readingTime":0.895,"hasTruncateMarker":true,"authors":[{"name":"Joel Marcey","title":"Developer Advocate at Meta","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{"x":"https://x.com/joelmarcey","github":"https://github.com/JoelMarcey"},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Tribute to Endi","authors":"JMarcey","tags":["endi","tribute"]},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 2020 Recap","permalink":"/blog/2021/01/19/docusaurus-2020-recap"},"nextItem":{"title":"Docusaurus 2019 Recap","permalink":"/blog/2019/12/30/docusaurus-2019-recap"}},"content":"It is with great sadness to announce that our primary external Docusaurus contributor, [Endilie Yacop Sucipto](https://github.com/endiliey) (Endi to those who knew him), [passed away](https://give.asia/campaign/help_endi_beat_cancer#/updates) over the weekend after an illness associated with his bout with cancer.\\n\\n<!--truncate-->\\n\\nIt is impossible to overstate Endi\'s impact on this project:\\n\\n- Docusaurus\' top contributor, [by far](https://github.com/facebook/docusaurus/graphs/contributors).\\n- [Lead developer](https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2) on the nearly complete [version 2 of Docusaurus](https://docusaurus.io/blog/2019/12/30/docusaurus-2019-recap).\\n- Overall passionate advocate of the project on [X](https://x.com/endiliey), [Discord](https://discord.gg/docusaurus) and other social media\\n\\nThinking about it now, it is absolutely amazing how much Endi accomplished on Docusaurus given what he was battling with his health.\\n\\nWe are working on ways to honor Endi\'s contributions - a commemorative sticker, possibly - and we are open to ideas. Leave a comment here or [tweet](https://x.com/docusaurus) if you have a suggestion.\\n\\nThe Docusaurus project will not be the same without Endi, and those of us who worked with him will miss him greatly. \u{1F614}\\n\\n![A photo from behind Endi\'s back, with Endi sitting on a rock cliff, facing the vast sea. His right hand forms a V pose.](/img/endi.jpg)"},{"id":"/2019/12/30/docusaurus-2019-recap","metadata":{"permalink":"/blog/2019/12/30/docusaurus-2019-recap","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2019/12-30-docusaurus-2019-recap.mdx","source":"@site/blog/2019/12-30-docusaurus-2019-recap.mdx","title":"Docusaurus 2019 Recap","description":"2019 was a great year for Docusaurus - we\'ve made tremendous progress on Docusaurus 2. Current Docusaurus 1 users who aren\'t using the translations feature can feel free to check it out and migrate to it! Otherwise we will work with you to make that happen in 2020 :)","date":"2019-12-30T00:00:00.000Z","tags":[{"inline":false,"label":"Recap","permalink":"/blog/tags/recap","description":"Blog posts about Docusaurus\' year recaps"}],"readingTime":2.72,"hasTruncateMarker":true,"authors":[{"name":"Yangshun Tay","title":"Front End Engineer at Meta","url":"https://github.com/yangshun","page":{"permalink":"/blog/authors/yangshun"},"socials":{"x":"https://x.com/yangshunz","github":"https://github.com/yangshun"},"imageURL":"https://github.com/yangshun.png","key":"yangshun"}],"frontMatter":{"title":"Docusaurus 2019 Recap","authors":"yangshun","tags":["recap"]},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Tribute to Endi","permalink":"/blog/2020/01/07/tribute-to-endi"},"nextItem":{"title":"Happy 1st Birthday Slash!","permalink":"/blog/2018/12/14/Happy-First-Birthday-Slash"}},"content":"2019 was a great year for Docusaurus - we\'ve made tremendous progress on [Docusaurus 2](https://docusaurus.io/). Current Docusaurus 1 users who aren\'t using the translations feature can feel free to check it out and [migrate](https://docusaurus.io/docs/migration) to it! Otherwise we will work with you to make that happen in 2020 :)\\n\\n<!--truncate-->\\n\\n## Docusaurus 2 (D2)\\n\\nIn 2018, we proposed to rebuild [Docusaurus from the ground up](https://github.com/facebook/docusaurus/issues/789). It involved a major rearchitecture effort - we created a content-centric CSS framework from scratch, a plugins system, and moved from static HTML pages to be a single page-app with prerendered routes. It was a wild adventure and a tough feat, especially with no dedicated FTE working on the project. With the help of [@endilie](https://github.com/endiliey), our ex-intern-turned-contributor-turned-maintainer, we made really good progress on D2 and are currently on version 2.0.0-alpha.40. All features in Docusaurus 1 except for translations have been ported over.\\n\\nD2\'s killer features are **Dark Mode** and its **superb performance**. D2 has dark mode support out-of-the-box and it is near effortless to create a dark mode-friendly documentation site. Endilie put in great effort into optimizing the performance of the site and a bunch of performance optimization tricks have been done under the hood by default - optimized images, prerendering every route to static HTML and client-side routing thereafter, prefetching assets needed by future navigations whenever the user hovers over a navigation link, etc.\\n\\nLast but not least, we implemented a plugins architecture and turned the repo into a [Lerna monorepo](https://github.com/facebook/docusaurus/tree/main/packages). We believe this plugin architecture will be helpful towards building a community and also allowing users to build their own features for their unique use cases.\\n\\n## GitHub Activity\\n\\n- Stars: 10050 \u2192 14632 (+45.6% y/y)\\n- Total Contributors: 182 \u2192 303 (+66.4% y/y). Most of which are non-Facebook contributors\\n- Daily npm Downloads: 728 \u2192 2320 (+218.7% y/y). The peak was in November\\n- D1 is currently used by 3872 projects on GitHub while D2 is used by 247 projects on GitHub\\n- We now have 4 active core contributors! (+100% y/y)\\n\\n## Notable Users\\n\\nA good portion of the projects within the Open Source community use Docusaurus. This half we also onboarded more notable projects onto Docusaurus 2:\\n\\n- [Create React App](https://create-react-app.dev/)\\n- [Redux](https://redux.js.org/)\\n- [Draft.js](https://draftjs.org/)\\n- [Flux](http://facebook.github.io/flux/)\\n\\nAnd welcomed more projects to Docusaurus 1:\\n\\n- [Libra](https://developers.libra.org/)\\n- [MobX](https://mobx.js.org/)\\n- [Immer](https://immerjs.github.io/immer/)\\n- [Sorbet](https://sorbet.org/)\\n\\n## Media\\n\\nYangshun gave a classroom session during F8 about [Using Docusaurus to Create Open Source Websites](https://www.youtube.com/watch?v=QcGJsf6mgZE).\\n\\n## Community\\n\\nA few third-party hosting/development services also has first-class integration with a Docusaurus setup:\\n\\n- [Vercel deployment](https://github.com/vercel/vercel/tree/main/examples/docusaurus)\\n- [CodeSandbox](https://codesandbox.io/s/docusaurus-template-x3vg9)\\n- [Render](https://render.com/docs/deploy-docusaurus)\\n\\n## Looking Ahead\\n\\nD2 has gained some traction among the [developer community](https://docusaurus.io/showcase). In 2020, we want to achieve full feature parity with D1 by the first half and help the remaining Facebook projects on D1 move to D2. It would also be great if we could use Docusaurus for internal documentation, but that is a non-trivial undertaking. If you have a need for it or have some ideas, come speak with us!\\n\\nHuge thanks to the community for their contributions, especially the core team - [Endilie Yacop Sucipto](https://github.com/endiliey), [Alexey Pyltsyn](https://github.com/lex111), [Wei Gao](https://github.com/wgao19). Lastly, thank you [Joel Marcey](https://github.com/JoelMarcey) for starting Docusaurus and supporting the project all this time.\\n\\nCheers to a great 2020! \u{1F389}"},{"id":"/2018/12/14/Happy-First-Birthday-Slash","metadata":{"permalink":"/blog/2018/12/14/Happy-First-Birthday-Slash","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2018/12-14-Happy-First-Birthday-Slash.mdx","source":"@site/blog/2018/12-14-Happy-First-Birthday-Slash.mdx","title":"Happy 1st Birthday Slash!","description":"Docusaurus makes 1 year! Happy Birthday Slash!","date":"2018-12-14T00:00:00.000Z","tags":[{"inline":false,"label":"Birth","permalink":"/blog/tags/birth"}],"readingTime":0.615,"hasTruncateMarker":true,"authors":[{"name":"Joel Marcey","title":"Co-creator of Docusaurus","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Happy 1st Birthday Slash!","authors":[{"key":"JMarcey","title":"Co-creator of Docusaurus"}],"tags":["birth"]},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 2019 Recap","permalink":"/blog/2019/12/30/docusaurus-2019-recap"},"nextItem":{"title":"Towards Docusaurus 2","permalink":"/blog/2018/09/11/Towards-Docusaurus-2"}},"content":"![Docusaurus makes 1 year! Happy Birthday Slash!](/img/docusaurus-slash-first-birthday.svg)\\n\\nDocusaurus [went live](https://v1.docusaurus.io/blog/2017/12/14/introducing-docusaurus) on December 14, 2017. At the time, we had [8 early adopters](https://v1.docusaurus.io/blog/2017/12/14/introducing-docusaurus#acknowledgements).\\n\\n<!--truncate-->\\n\\nWe now have nearly [60 known users of Docusaurus](https://v1.docusaurus.io/en/users), and probably more that we don\'t know about. We have [9K GitHub stars](https://github.com/facebook/docusaurus) and an active community, particularly [Yangshun Tay](https://x.com/yangshunz) and [Endilie Yacop Sucipto](https://x.com/endiliey), both of whom are the lead maintainers helping keep this project [moving forward](https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2).\\n\\nThank you to everyone for your support and use of this project! I am super proud of how far this project has come in just a year.\\n\\n> Special thanks to [Eric Nakagawa](https://x.com/ericnakagawa), creator of Slash, for creating this 1-year image of Slash enjoying cake. The Slash brand has been a boon for us!"},{"id":"/2018/09/11/Towards-Docusaurus-2","metadata":{"permalink":"/blog/2018/09/11/Towards-Docusaurus-2","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2018/09-11-Towards-Docusaurus-2.mdx","source":"@site/blog/2018/09-11-Towards-Docusaurus-2.mdx","title":"Towards Docusaurus 2","description":"Docusaurus was officially announced over nine months ago as a way to easily build open source documentation websites. Since then, it has amassed over 8,600 GitHub Stars, and is used by many popular open source projects such as React Native, Babel, Jest, Reason and Prettier.","date":"2018-09-11T00:00:00.000Z","tags":[{"inline":false,"label":"New","permalink":"/blog/tags/new"},{"inline":false,"label":"Adoption","permalink":"/blog/tags/adoption"}],"readingTime":9.25,"hasTruncateMarker":true,"authors":[{"name":"Endilie Yacop Sucipto","title":"Maintainer of Docusaurus","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null}],"frontMatter":{"title":"Towards Docusaurus 2","authors":"endiliey","tags":["new","adoption"]},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Happy 1st Birthday Slash!","permalink":"/blog/2018/12/14/Happy-First-Birthday-Slash"},"nextItem":{"title":"How I Converted Profilo to Docusaurus in Under 2 Hours","permalink":"/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"}},"content":"Docusaurus was [officially announced](https://v1.docusaurus.io/blog/2017/12/14/introducing-docusaurus) over nine months ago as a way to easily build open source documentation websites. Since then, it has amassed over 8,600 GitHub Stars, and is used by many popular open source projects such as [React Native](https://facebook.github.io/react-native/), [Babel](https://babeljs.io/), [Jest](https://jestjs.io/), [Reason](https://reasonml.github.io/) and [Prettier](https://prettier.io/).\\n\\nThere is a saying that the very best software is constantly evolving, and the very worst is not. In case you are not aware, we have been planning and working on the next version of Docusaurus \u{1F389}.\\n\\n<!--truncate-->\\n\\n## Introduction\\n\\nIt all started with this [RFC issue](https://github.com/facebook/docusaurus/issues/789) opened by [Yangshun](https://github.com/yangshun) towards the end of June 2018.\\n\\n<blockquote>\\n <h4>\\n <a href=\\"https://github.com/facebook/docusaurus/issues/789\\">\\n {\'[RFC] Docusaurus v2 \xb7 Issue #789 \xb7 facebook/docusaurus\'}\\n </a>\\n </h4>\\n These are some of the problems I\'m seeing in Docusaurus now and also how we can\\n address them in v2. A number of the ideas here were inspired by VuePress and other\\n static site generators. In the current static site generators ecosystem, t...\\n</blockquote>\\n\\nMost of the suggested improvements are mentioned in the issue; I will provide details on some of issues in Docusaurus 1 and how we are going to address them in Docusaurus 2.\\n\\n## Infrastructure\\n\\n### Content\\n\\nA Docusaurus 1 website is, in fact, built into a bunch of static HTML pages. Despite using React, we were not fully utilizing the features React offered, such as component state, which allows for dynamic and interactive pages. React was only used as a templating engine for static content and interactivity has to be added through script tags and `dangerouslySetInnerHTML` \u{1F631}.\\n\\nIn addition, there is not an easy way to change how Docusaurus loads content. For example, adding CSS preprocessors such as Sass and Less was not supported natively and involved many user hacks of adding custom scripts.\\n\\nFor Docusaurus 2, we will be using [webpack](https://webpack.js.org/) as a module bundler and we are changing the way we serve content. Adding CSS preprocessors will be as easy as adding a webpack loader. Instead of a pure static HTML, **during build time we will create a server-rendered version of the app** and render the corresponding HTML. A Docusaurus site will be essentially an isomorphic/universal application. This approach is heavily inspired by [Gatsby](https://github.com/gatsbyjs/gatsby).\\n\\n### Versioning\\n\\nIf you have been using Docusaurus for a while, you might notice that Docusaurus creates versioned docs **if and only if** the docs content are **different**.\\n\\nFor example, if we have `docs/hello.md`:\\n\\n```text\\n---\\nid: hello\\ntitle: hello\\n---\\nHello world !\\n```\\n\\nAnd **we cut version 1.0.0,** Docusaurus will create `versioned_docs/version-1.0.0/hello.md`:\\n\\n```text\\n---\\nid: version-1.0.0-hello\\ntitle: hello\\noriginal_id: hello\\n---\\nHello world !\\n```\\n\\nHowever, if there are no changes to `hello.md` when cutting v2.0.0, Docusaurus will not create any versioned docs for that document. In other words, `versioned_docs/version-2.0.0/hello.md` will not exist.\\n\\nThis can be very confusing for users; if they want to edit the v2.0.0 docs, they have to edit `versioned_docs/version-1.0.0/hello.md` or manually add `versioned_docs/version-2.0.0/hello.md`. This could potentially lead to unwanted bugs. Here is a [real scenario in Jest](https://github.com/facebook/jest/pull/6758#issuecomment-408274413).\\n\\nIn addition, this adds complexity within the codebase as we require a mechanism for version fallbacks. And during build time, Docusaurus has to replace the linking to the correct version. This is also the cause of a bug where [renaming docs breaks links in old versions](https://github.com/facebook/docusaurus/issues/845).\\n\\nFor Docusaurus 2, **every time we cut a new version, we will instead take a snapshot of all the docs**. We will not require the content of a document to have changed. This is a space complexity trade-off for a better developer and user experience. We will use more space for better separation of concerns and guaranteed correctness.\\n\\n### Translation\\n\\nDocusaurus allows for easy translation functionality by using [Crowdin](https://crowdin.com/). Documentation files written in English are uploaded to Crowdin for translation by users within a community. We always assumed that **English** is the default language, but this might not be the case for all users. We have seen plenty of non-English open source projects using Docusaurus.\\n\\nFor Docusaurus 2, **we will not assume English is the default language**. When a user enables internationalization, they have to set a default language in `siteConfig.js`. We will then assume that all the files in `docs` are written in that language.\\n\\nIn addition, after working on the MVP of Docusaurus 2, I realized that it is possible not to use Crowdin for translations. Thus, we might need to add an additional workflow to enable that scenario. However, we will still strongly recommend people use Crowdin for easier integration.\\n\\n## Customizability\\n\\n### Layout\\n\\nThe current state of Docusaurus is that it is in charge of the entire layout and styling, unintentionally making it very hard for users to customize their site\'s appearance to their wishes.\\n\\nFor Docusaurus 2, **layout and styling should be controlled by the user**. Docusaurus will handle the content generation, routing, translation, and versioning. Inspired by [create-react-app](https://github.com/facebook/create-react-app) and [VuePress](https://vuepress.vuejs.org/), Docusaurus will still provide a default theme, which the user can eject from, for further layout and styling customization. This means that it is very possible for the user to even change the HTML meta by using [React Helmet](https://github.com/nfl/react-helmet). Community-based themes are also very possible. This approach of allowing users to be in charge of layout and styling is taken by most static site generators.\\n\\n### Markdown\\n\\nOur Markdown parsing is currently powered by [Remarkable](https://github.com/jonschlinkert/remarkable). What if the user wants to use [Markdown-it](https://github.com/Markdown-it/Markdown-it) or even [MDX](https://github.com/mdx-js/mdx)? And then there is an issue of which syntax highlighter to use, (e.g: [Prism](https://prismjs.com/) vs [Highlight.js](https://highlightjs.org/)). We should leave these choices open to the user.\\n\\nFor Docusaurus 2, **users can eject and choose their own Markdown parser**. It does not matter if they want to use another Markdown parser such as [Remark](https://github.com/remarkjs/remark), or even their own in-house Markdown parser. As a rule of thumb, the user has to provide a React component, in which we will provide a children props containing the _RAW string of Markdown_. By default, we will use Remarkable for the Markdown parser and Highlight.js for the syntax highlighting. The default parser could still change in the future as we\'re still experimenting with different Markdown parsers.\\n\\n### Search\\n\\nOur core search functionality is based on [Algolia](https://www.algolia.com/). There are requests by users to be able to use different search offerings, such as `lunrjs` for offline search.\\n\\nI personally like Algolia and we have a great experience working with them. They are very responsive; we can easily submit a pull request to Algolia since their `DocSearch` is open source. For example, I recently submitted [this PR that enables DocSearch to scrape alternate languages in sitemap](https://github.com/algolia/docsearch-scraper/pull/387).\\n\\nFor Docusaurus 2, **we will allow users to customize the search box**. Users simply need to eject from the default theme and modify the Search UI (a React component). However, we will still use Algolia in the default theme.\\n\\n## Stability\\n\\nSoftware is never going to be perfect, but we want Docusaurus to not break as we add new features. When Docusaurus was first released, it did not have any strong automated test suites. As a result, there were a lot of regressions not caught early. Although we have recently added a lot of tests, the test coverage is still relatively low.\\n\\nFor Docusaurus 2, **we are adding tests as we develop** since we are going for a fresh rewrite. Hence, I believe that it should be more stable than ever and it should be harder to break things compared to Docusaurus 1.\\n\\n## Frequently Asked Questions\\n\\n### Will there be any breaking changes?\\n\\nIf you\'ve read the post up until to this point, you should be able to notice that there will be breaking changes. While we will try to **minimize the number of breaking changes** and make it backward compatible as much as possible, we believe that some breaking changes are required. This is mostly due to Docusaurus 2 being a **major rewrite and re-architecting** of the codebase.\\n\\nThe exact list of breaking changes is not totally known yet as development is not 100% finalized. However, one thing that I will highlight is that we will deprecate a lot of options in `siteConfig.js` and we plan to keep it as lean as possible. For example, the `cleanUrl` siteConfig will be deprecated as all the URL for Docusaurus 2 sites will be without the `.html` suffix.\\n\\nOur goal is that most sites should be able to upgrade to Docusaurus 2 without a lot of pain. We will also include a migration guide when we release Docusaurus 2. When the times come, feel free to ping us on [Discord](https://discord.gg/docusaurus) or [X](https://x.com/docusaurus) for questions and help.\\n\\n### When is the release of Docusaurus 2?\\n\\nAs of now, we do not have an exact date planned for the release. I personally estimate that we might be able to release an alpha version in the next one to two months, but this is, of course, just an estimate.\\n\\nOne thing that I would like to share is that while Docusaurus is part of [Facebook Open Source](https://opensource.fb.com/) and most of the team are Facebook employees, the maintenance and development work is mostly done outside of normal working hours. I am currently a final year undergraduate student at [NTU Singapore](https://x.com/NTUsg), so I had to juggle between doing my coursework, my final year project and maintaining/developing Docusaurus. However, that does not mean that we do not want to make Docusaurus better. In fact, **we want to make it as awesome as possible**.\\n\\nFor now, the actual Docusaurus 2 work is still hosted in a private repository. In the near future, we will move them into the [public repository](https://github.com/facebook/docusaurus). When that time arrives, I encourage everyone to look into it and hopefully contribute in some way. Before then, please stay tuned \u{1F609}!\\n\\n## Final Thoughts\\n\\nDocusaurus has had a large impact on the open source community as seen from the [many popular projects](https://v1.docusaurus.io/en/users) which use Docusaurus for documentation. In order to move faster in the future, we are taking the opportunity to fix some core problems with Docusaurus 1 and striving to make Docusaurus better for everyone. In fact, it is safe to say that Docusaurus 2 is not just a plan any longer; the work on it has started and, hopefully, we will be able to see it materialize in the near future.\\n\\nDocusaurus\' mission has always been to make it really easy for you to get a website with documentation up and running out of the box. That mission does not change with Docusaurus 2.\\n\\nWe also want to let people know that **due to work on Docusaurus 2, we will be less likely to accept new features/major changes on Docusaurus 1.**\\n\\nIf you are using Docusaurus, you are part of our community; keep letting us know how we can make Docusaurus better for you. If you appreciate the work we\'re doing, you can support [Docusaurus on Open Collective](https://opencollective.com/Docusaurus).\\n\\n> If you are sponsoring our work on [Open Collective](https://opencollective.com/Docusaurus), we\'ll personally offer you a helping hand for maintenance and upgrading of Docusaurus website.\\n\\nLastly, if you haven\'t done so already, click the **star** and **watch** button on [GitHub](https://github.com/facebook/docusaurus), and follow us on [X](https://x.com/docusaurus)."},{"id":"/2018/04/30/How-I-Converted-Profilo-To-Docusaurus","metadata":{"permalink":"/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2018/04-30-How-I-Converted-Profilo-To-Docusaurus.mdx","source":"@site/blog/2018/04-30-How-I-Converted-Profilo-To-Docusaurus.mdx","title":"How I Converted Profilo to Docusaurus in Under 2 Hours","description":"\u201CJoel and I were discussing having a website and how it would have been great to launch with it. So I challenged myself to add Docusaurus support. It took just over an hour and a half. I\'m going to send you a PR with the addition so you can take a look and see if you like it. Your workflow for adding docs wouldn\'t be much different from editing those Markdown files.\u201D","date":"2018-04-30T00:00:00.000Z","tags":[{"inline":false,"label":"Profilo","permalink":"/blog/tags/profilo"},{"inline":false,"label":"Adoption","permalink":"/blog/tags/adoption"}],"readingTime":5.95,"hasTruncateMarker":true,"authors":[{"name":"Christine Abernathy","url":"http://x.com/abernathyca","socials":{"x":"https://x.com/abernathyca"},"imageURL":"https://github.com/caabernathy.png","key":"abernathyca","page":null}],"frontMatter":{"title":"How I Converted Profilo to Docusaurus in Under 2 Hours","authors":["abernathyca"],"tags":["profilo","adoption"]},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Towards Docusaurus 2","permalink":"/blog/2018/09/11/Towards-Docusaurus-2"},"nextItem":{"title":"Introducing Docusaurus","permalink":"/blog/2017/12/14/introducing-docusaurus"}},"content":"> _\u201CJoel and I were discussing having a website and how it would have been great to launch with it. So I challenged myself to add Docusaurus support. It took just over an hour and a half. I\'m going to send you a PR with the addition so you can take a look and see if you like it. Your workflow for adding docs wouldn\'t be much different from editing those Markdown files.\u201D_\\n>\\n> _\u2014 Note sent to the Profilo team_\\n\\nThis is the story of the rather short journey it took to create the [Profilo](https://facebookincubator.github.io/profilo/) website using Docusaurus.\\n\\nProfilo, an Android library for collecting performance traces from production, [was announced](https://code.fb.com/android/profilo-understanding-app-performance-in-the-wild/) earlier this year. The project was [published on GitHub](https://github.com/facebookincubator/profilo/tree/802042f90f990998a272387e371b893af52465b8) with a less than [a handful or Markdown files](https://github.com/facebookincubator/profilo/tree/802042f90f990998a272387e371b893af52465b8/docs) to describe its functionality and no website to showcase any branding and highlight the logo. The task at hand was to turn these existing docs and logo into a website.\\n\\n<!--truncate-->\\n\\nIn general, when creating a website with Docusaurus you do the following:\\n\\n1. Generate a template website using Docusaurus scripts.\\n1. Customize the generated template files for your desired site colors and your project configuration (ex: website and GitHub links).\\n1. Create the website content:\\n 1. Add your docs and any supporting assets.\\n 1. Customize the default landing page provided by Docusaurus to suit your needs.\\n 1. Configure the default site navigation file.\\n1. Publish the website and set up how it will be published for future changes.\\n\\nGiven I had pre-existing Markdown files, I didn\'t have to generate the core content but simply make sure that Docusaurus could process the files by adding the expected metadata to them. Most of the work would therefore consist of customizing the defaults provided by Docusaurus.\\n\\n## Overview of Steps Taken\\n\\nHere\'s an overview of the steps taken to convert to a website. I\'ll discuss some of the design aspects in a later section.\\n\\n**Design and colors:**\\n\\n1. Got all the desired logo formats from designer. I had to create the _.favicon_ one.\\n1. Worked out some passable primary and secondary website colors using the http://paletton.com/ tools - very handy!\\n\\n**Initial website setup:**\\n\\n1. Forked the [Profilo project](https://github.com/facebookincubator/profilo/) on GitHub and created a local clone of the fork to set up the website.\\n1. Created the initial Docusaurus website using the [installation instructions](https://v1.docusaurus.io/docs/en/installation.html).\\n1. Deleted the `docs-examples-from-docusaurus` and `website/blog-examples-from-docusaurus` folders as these would not be needed. Profilo had existing docs we could use and there was no need for blogs at this time.\\n\\n**Content creation:**\\n\\n1. Added metadata to the existing Markdown files found in the `docs` folder, for example:\\n\\n ```md\\n ---\\n id: architecture\\n title: Architecture\\n sidebar_label: Architecture\\n ---\\n ```\\n\\n2. Added the logo assets to the `website/static/img` folder.\\n3. Modified `website/pages/en/index.js`, the landing page, to highlight Profilo features.\\n4. Modified `website/core/Footer.js`, the footer, to simplify it for Profilo.\\n5. Edited `website/siteConfig.js` (website configuration file) to specify the previously chosen primary and secondary colors.\\n6. Modified `website/sidebars.json` that specifies the sidebar navigation. Listed all the docs and customized it based on the metadata added to the Markdown files.\\n7. Edited the website configuration file to specify the GitHub properties, logo images, header links, and the website link.\\n8. Tested the website locally throughout this phase. (I ran `yarn start` from the `website` folder to start the server.)\\n\\n**Feedback and review changes:**\\n\\n1. Sent a [pull request](https://github.com/facebookincubator/profilo/pull/6) to the project.\\n2. Updated the colors after the designer rightly gasped at the ones I had chosen (IANAD).\\n3. Updated the colors and updated the PR.\\n4. The PR was then accepted and [merged](https://github.com/facebookincubator/profilo/commit/6ad033aaf5a7d54e6d842f45a5bccd051a8e45ad). Yay!\\n\\n**Website publishing:**\\n\\n1. Pushed the first website version by running the Docusaurus publish script from the command line:\\n\\n ```bash\\n USE_SSH=true \\\\\\n GIT_USER=caabernathy \\\\\\n CURRENT_BRANCH=master \\\\\\n yarn run publish-gh-pages\\n ```\\n\\n2. Configured CircleCI using the [provided Docusaurus instructions](https://v1.docusaurus.io/docs/en/publishing.html#automating-deployments-using-continuous-integration). There were 2 PRs for this, [the first](https://github.com/facebookincubator/profilo/pull/8)for the initial config and [the second](https://github.com/facebookincubator/profilo/pull/12) to make sure CircleCI only triggered for changes in the master branch (thanks Joel Marcey!).\\n\\nThe final website was published on https://facebookincubator.github.io/profilo/. It had taken 1.5 hours to get to the initial PR stage and another half an hour or so to respond to review feedback and publish the website.\\n\\n## Design\\n\\nHere\'s what the initial website looked like when the first pull request was sent out:\\n\\n![The website\'s front page, with a quite bright and saturated red color as the primary color, closely resembling the Profilo logo color, making the logo unrecognizable in the navbar](/img/profilo_blog_post_website_initial.png)\\n\\nMost of the time in the content creation was spent picking colors that worked reasonably well with the given logo. These colors were a good jumping off point for designer feedback. I used Photoshop to sample various portions of the logo.\\n\\n![Picking colors in Photoshop, with the Profilo logo and the main working area in the background and a color picker dialog in the foreground, selected to a red shade](/img/profilo_blog_post_photoshop_color_picker.png)\\n\\nI then took the RGB representation of the color and set it as the baseline color on [Paletton](http://paletton.com/). The website then gave me various color options to try on the website by editing the Docusaurus website configuration file.\\n\\n![Using Paletton to generate a full palette from the red shade selected. There\'s a color wheel showing all hues on the left, and a square showing various shades of red on the right.](/img/profilo_blog_post_palette_website_color_picker.png)\\n\\nThe selected primary and secondary colors were a good jumping off point for designer feedback.\\n\\nThere were also modifications made to the default website generated by Docusaurus. These changes were mainly around simplifying the footer and creating a customized landing page for Profilo that listed the project\'s features.\\n\\nHere\'s what the final website looked like:\\n\\n![The website\'s front page, with a much darker red color as the primary color, making both the logo and the primary-colored title text clearly legible.](/img/profilo_blog_post_website_final.png)\\n\\nThis is an example page showing the core content, in this case the Getting Started page:\\n\\n![A doc page with the sidebar on the left quarter of the screen and the main content occupying the rest. Some text is using the primary color and the main body uses multiple kinds of typesetting including bold, list, and code](/img/profilo_blog_post_website_final_docs.png)\\n\\nThis also shows the sidebar structure that was set up through editing `website/sidebars.json`.\\n\\nLastly, I didn\'t have to worry about handling responsive design. You get this out of the box with Docusaurus!\\n\\n![Mobile screenshots of the front page and sample doc page. The layout is automatically adjusted to make it appear more natural. The doc sidebar is hidden behind a button.](/img/profilo_blog_post_android_ios.png)\\n\\n## Final Thoughts\\n\\nThe Profilo engineers were happy to see that they didn\'t have to change their workflow to update existing content. They were able to continue working with Markdown files. This will still be true in the future if new docs are added, although there may be some config changes needed if the sidebar navigation needs to be updated.\\n\\nThe infrastructure provided by Docusaurus made it easy to convert Markdown files into a working website. Even though the project had only three docs, this gave Profilo a more professional look. So, it was well worth the short time investment to get it done."},{"id":"/2017/12/14/introducing-docusaurus","metadata":{"permalink":"/blog/2017/12/14/introducing-docusaurus","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2017/12-14-introducing-docusaurus.mdx","source":"@site/blog/2017/12-14-introducing-docusaurus.mdx","title":"Introducing Docusaurus","description":"We are very happy to introduce Docusaurus to help you manage one or many open source websites.","date":"2017-12-14T00:00:00.000Z","tags":[{"inline":false,"label":"Documentation","permalink":"/blog/tags/documentation"},{"inline":false,"label":"Blog","permalink":"/blog/tags/blog"},{"inline":false,"label":"Docusaurus","permalink":"/blog/tags/docusaurus"}],"readingTime":8.215,"hasTruncateMarker":true,"authors":[{"name":"Joel Marcey","title":"Developer Advocate at Meta","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{"x":"https://x.com/joelmarcey","github":"https://github.com/JoelMarcey"},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Introducing Docusaurus","authors":"JMarcey","tags":["documentation","blog","docusaurus"]},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"How I Converted Profilo to Docusaurus in Under 2 Hours","permalink":"/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"}},"content":"![](/img/slash-introducing.svg)\\n\\nWe are very happy to introduce [Docusaurus](https://github.com/facebook/docusaurus) to help you manage one or many open source websites.\\n\\nWe created [Docusaurus](https://docusaurus.io) for the following reasons:\\n\\n1. To put the focus on writing good documentation instead of worrying about the infrastructure of a website.\\n1. To provide features that many of our open source websites need like blog support, search and versioning.\\n1. To make it easy to push updates, new features, and bug fixes to everyone all at once.\\n1. And, finally, to provide a consistent look and feel across all of our open source projects.\\n\\n<!--truncate-->\\n\\nDocusaurus is a tool designed to make it easy for teams to publish documentation websites without having to worry about the infrastructure and design details. At its core, all a user has to provide are documentation files written in Markdown, customization of a provided home page written in React, and a few configuration modifications. Docusaurus handles the rest by providing default styles, site formatting, and simple document navigation. Getting started is easy, as users can [install](https://v1.docusaurus.io/docs/en/installation.html) it using `npm` or `yarn` via a simple initialization script that [creates a working example website out of the box](https://v1.docusaurus.io/docs/en/site-preparation.html).\\n\\nDocusaurus also provides core website and documentation features out-of-the-box including [blog support](https://v1.docusaurus.io/docs/en/blog.html), [internationalization](https://v1.docusaurus.io/docs/en/translation.html), [search](https://v1.docusaurus.io/docs/en/search.html), and [versioning](https://v1.docusaurus.io/docs/en/versioning.html). While some projects may not require any of these features, enabling them is generally a matter of updating configuration options instead of having to add the infrastructure from the ground up. As more features get added to Docusaurus, users just can easily update to the latest version. This can be done by simply running npm or yarn update and updating configuration options. Users or teams will no longer need to manually rework their entire website infrastructure each time a new feature gets added.\\n\\n## The Birth of docusaurus\\n\\n![](/img/slash-birth.png)\\n\\nWhen Facebook first started their open source program, many teams implemented a custom website for each of their open source projects. This approach presented challenges when the open source program team was asked to help the project teams improve their documentation. Since each site was unique, adding basic infrastructure such as a blog, consistent navigation, search, etc. became challenging undertakings.\\n\\nThe open source team tried to help mitigate this problem by coming up with a standard template, based on Jekyll, that could be used as a starting point for a project website. We asked our new projects to manually copy our template source to their repo, write their docs, and publish. This template approach was adopted by most of open source projects launched; some existing projects even converted their custom website implementations to the new template as well.\\n\\nThe problem with the \\"copy the template to your repo\\" approach is that, even though the platform is consistent, pushing updates becomes unmaintainable across an entire suite of projects already using the template. This is because we lost control of the template after a project copied it to their repo. Projects were free to modify the template as desired and apply their own project-specific features to it. So while projects share the same site generation platform, they have now diverted enough where they cannot take advantage of the new features we have added to the template over time. There was no easy way we could ask all current projects to \\"copy\\" a new version of the template since it might break their existing site or remove features that they have added on their own. Instead, we would have to apply the updates manually to each project one-by-one. This became very problematic when projects started asking for our team for internationalization support within the template, requiring low-level changes to how the template was structured and generated.\\n\\nSo we started thinking about what we could do to help mitigate the challenge of keeping sites updated and consistent across our entire portfolio. We also wanted multiple projects to share the same site generation software. We wanted them to start out with the same template, and yet have the flexibility to customize and adapt their site theme to suit their needs. They should be able to extend and customize their site, but when we update the underlying infrastructure with fixes and features, the project should be able update simply and without any breaking changes.\\n\\nDocusaurus was born!\\n\\nAt Facebook, Docusaurus allows us to quickly get different projects up and running with documentation websites, especially for teams who don\'t have much experience with web development or primarily want a basic site to showcase their project. Docusaurus already supports sites needing more advanced features like internationalization for Jest and versioning for React Native. As different projects request new features for their sites, they are added to Docusaurus and simultaneously provided to all projects! All together, this ends up greatly reducing the work needed to maintain different sites for different projects. Our teams are able to focus on keeping their projects healthier by spending more time adding features, fixing bugs, and writing documentation.\\n\\n## Getting Up and Running\\n\\n![](/img/slash-up-and-running.png)\\n\\nAt its core, we wanted sites running Docusaurus to be simple to use. With one [installation](https://v1.docusaurus.io/docs/en/installation.html) command and some simple [configuration](https://v1.docusaurus.io/docs/en/site-preparation.html), you can actually have a default running website.\\n\\nWhen you run `docusaurus-init`, you will see a structure similar to:\\n\\n```bash\\nroot-of-repo\\n\u251C\u2500\u2500 docs-examples-from-docusaurus\\n\u2502 \u251C\u2500\u2500 doc1.md\\n\u2502 \u251C\u2500\u2500 doc2.md\\n\u2502 \u251C\u2500\u2500 doc3.md\\n\u2502 \u251C\u2500\u2500 example-doc4.md\\n\u2502 \u2514\u2500\u2500 example-doc5.md\\n\u251C\u2500\u2500 website\\n\u2502 \u251C\u2500\u2500 blog-examples-from-docusaurus\\n\u2502 \u2502 \u251C\u2500\u2500 2016-03-11-blog-post.md\\n\u2502 \u2502 \u2514\u2500\u2500 2017-04-10-blog-post-two.md\\n\u2502 \u251C\u2500\u2500 core\\n\u2502 \u2502 \u2514\u2500\u2500 Footer.js\\n\u2502 \u251C\u2500\u2500 node_modules\\n\u2502 \u251C\u2500\u2500 package.json\\n\u2502 \u251C\u2500\u2500 pages\\n\u2502 \u251C\u2500\u2500 sidebars.json\\n\u2502 \u251C\u2500\u2500 siteConfig.js\\n\u2502 \u2514\u2500\u2500 static\\n```\\n\\nWith the exception of node_modules and package.json, all the directories and files you see are where you customize and add content to your Docusaurus-based website. The docs folder is where you add your Markdown that represents your documentation; the blog folder is where you add your Markdown for your [blog posts](https://v1.docusaurus.io/docs/en/blog.html); `siteConfig.js` is where you make most of the [customizations](https://v1.docusaurus.io/docs/en/site-config.html) for your site; `sidebars.json` is where you maintain the layout and content of the [sidebar](https://v1.docusaurus.io/docs/en/navigation.html) for your documentation; the `pages` folder is where you add [custom](https://v1.docusaurus.io/docs/en/custom-pages.html) pages for your site; the `static` folder is where all of your static assets go (e.g., CSS stylesheets and images); and the `core` folder is where you can customize core components of the site, in this case the footer.\\n\\n## How does Docusaurus work?\\n\\nDocusaurus is written primarily in JavaScript and [React](https://facebook.github.io/react), replacing Jekyll which we used in the old template. We use [Remarkable](https://github.com/jonschlinkert/remarkable) for our Markdown rendering and [highlight.js](https://highlightjs.org/) for our code block syntax highlighting. The core of Docusaurus\' functionality is in the [lib directory](https://github.com/facebookexperimental/Docusaurus/tree/master/lib) of the [Docusaurus repo](https://github.com/facebook/docusaurus/). The general structure looks like:\\n\\n```bash\\nroot-of-Docusaurus\\n\u251C\u2500\u2500 lib\\n\u2502 \u251C\u2500\u2500 core\\n\u2502 \u251C\u2500\u2500 server\\n\u2502 \u2502 \u251C\u2500\u2500 generate.js\\n\u2502 \u2502 \u251C\u2500\u2500 server.js\\n\u2502 \u2502 \u2514\u2500\u2500 ...and more files\\n\u2502 \u251C\u2500\u2500 static\\n\u2502 \u251C\u2500\u2500 build-files.js\\n\u2502 \u251C\u2500\u2500 copy-examples.js\\n\u2502 \u251C\u2500\u2500 generate-feed.js\\n\u2502 \u251C\u2500\u2500 publish-gh-pages.js\\n\u2502 \u251C\u2500\u2500 rename-version.js\\n\u2502 \u251C\u2500\u2500 start-server.js\\n\u2502 \u251C\u2500\u2500 versions.js\\n\u2502 \u2514\u2500\u2500 write-translations.js\\n```\\n\\nThe key files here are build-files.js and start-server.js. There are many similarities between these two files: `build-files.js` is used to build the physical artifacts for serving by an external web server. `start-server.js` is used to run the Docusaurus server and locally test your site. Both go through the following general process to take all of the Markdown and configuration to create a runnable website:\\n\\n1. Process your website settings in `siteConfig.js`\\n1. Read the document metadata that exists in all the Markdown files in your docs directory.\\n1. Create a table of contents for your documents based upon the IDs extracted from the metadata.\\n1. Convert the Markdown to HTML, including doing link replacement.\\n1. These files will go in a build/docs directory of the compiled site, and any translated versions will go into a language specific folder within the build/docs folder.\\n1. Repeat 1-3 for blog posts.\\n1. The blog file will go in a build/blog directory of the compiled site.\\n1. Read the main.css file and concatenate any user-defined css into master css file that will be in the build/css directory of the compiled site.\\n1. Copy images into an build/img directory of the compiled site.\\n1. Take any custom pages that were added to the pages folder of the site and compile/copy those into the root build directory of the compiled site. Any translated versions will go into a language specific folder within build.\\n1. Create CNAME and sitemap.xml files and add those to build.\\n\\nNote that this process does not take into full account how translations or versioning works. The underlying details of those features will be saved for future blog posts.\\n\\nThe final structure of your compiled site will look similar to:\\n\\n```bash\\nbuild\\n\u251C\u2500\u2500 website\\n\u2502 \u251C\u2500\u2500 CNAME\\n\u2502 \u251C\u2500\u2500 blog\\n\u2502 \u251C\u2500\u2500 css\\n\u2502 \u251C\u2500\u2500 docs\\n\u2502 \u251C\u2500\u2500 en\\n\u2502 \u251C\u2500\u2500 help.html # custom page\\n\u2502 \u251C\u2500\u2500 img\\n\u2502 \u251C\u2500\u2500 index.html # landing page\\n\u2502 \u251C\u2500\u2500 sitemap.xml\\n\u2502 \u2514\u2500\u2500 users.html # custom page\\n```\\n\\n## Community\\n\\n![](/img/docusaurus.svg)\\n\\nWe welcome your [contributions](https://github.com/facebook/docusaurus/blob/master/CONTRIBUTING.md) to Docusaurus, whether you want to use it for your own site, you want to [contribute](https://github.com/facebook/docusaurus/blob/master/CONTRIBUTING.md) to the Docusaurus core or just have questions. Follow us on [GitHub](https://github.com/facebook/docusaurus) and [X)](https://x.com/docusaurus).\\n\\n## Acknowledgements\\n\\nDocusaurus wouldn\'t exist without the work of the rest of the core Docusaurus team: [Eric Nakagawa](http://x.com/ericnakagawa), [Hector Ramos](https://x.com/hectorramos), [Eric Vicenti](https://x.com/EricVicenti) and [Frank Li](https://github.com/deltice) \u2014 a former intern at Facebook who implemented the core technology and features.\\n\\nSpecial thanks also goes out to our earliest [adopters](https://v1.docusaurus.io/en/users.html) of Docusaurus:\\n\\n- [BuckleScript](https://bucklescript.github.io/)\\n- [FastText](https://fasttext.cc)\\n- [Jest](https://jestjs.io)\\n- [Make It Open](http://makeitopen.com)\\n- [Prettier](https://prettier.io/)\\n- [Reason-react](https://reasonml.github.io/reason-react/)\\n- [React Native](https://facebook.github.io/react-native/)\\n- [Relay](https://facebook.github.io/relay/)\\n\\nWithout their dedication to creating or migrating their websites over to the platform, we would have not have been in the position where we are today.\\n\\n## Resources\\n\\n- [Read our documentation](https://v1.docusaurus.io)\\n- [Follow our X feed](https://x.com/docusaurus)\\n- [Follow us on GitHub](https://github.com/facebook/docusaurus)\\n- [About Slash, the Docusaurus mascot](https://v1.docusaurus.io/about-slash.html)"}],"blogListPaginated":[{"items":["/releases/3.5","/releases/3.4","/releases/3.3","/releases/3.2","/releases/3.1"],"metadata":{"permalink":"/blog","page":1,"postsPerPage":5,"totalPages":5,"totalCount":24,"nextPage":"/blog/page/2","blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}},{"items":["/releases/3.0","/preparing-your-site-for-docusaurus-v3","/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing","/releases/2.4","/releases/2.3"],"metadata":{"permalink":"/blog/page/2","page":2,"postsPerPage":5,"totalPages":5,"totalCount":24,"previousPage":"/blog","nextPage":"/blog/page/3","blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}},{"items":["/releases/2.2","/2022/09/01/docusaurus-2.1","/2022/08/01/announcing-docusaurus-2.0","/2022/01/24/docusaurus-2021-recap","/2021/11/21/algolia-docsearch-migration"],"metadata":{"permalink":"/blog/page/3","page":3,"postsPerPage":5,"totalPages":5,"totalCount":24,"previousPage":"/blog/page/2","nextPage":"/blog/page/4","blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}},{"items":["/2021/05/12/announcing-docusaurus-two-beta","/2021/03/09/releasing-docusaurus-i18n","/2021/01/19/docusaurus-2020-recap","/2020/01/07/tribute-to-endi","/2019/12/30/docusaurus-2019-recap"],"metadata":{"permalink":"/blog/page/4","page":4,"postsPerPage":5,"totalPages":5,"totalCount":24,"previousPage":"/blog/page/3","nextPage":"/blog/page/5","blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}},{"items":["/2018/12/14/Happy-First-Birthday-Slash","/2018/09/11/Towards-Docusaurus-2","/2018/04/30/How-I-Converted-Profilo-To-Docusaurus","/2017/12/14/introducing-docusaurus"],"metadata":{"permalink":"/blog/page/5","page":5,"postsPerPage":5,"totalPages":5,"totalCount":24,"previousPage":"/blog/page/4","blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"blogTags":{"/blog/tags/release":{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases","items":["/releases/3.5","/releases/3.4","/releases/3.3","/releases/3.2","/releases/3.1","/releases/3.0","/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing","/releases/2.4","/releases/2.3","/releases/2.2","/2022/09/01/docusaurus-2.1","/2022/08/01/announcing-docusaurus-2.0","/2021/05/12/announcing-docusaurus-two-beta","/2021/03/09/releasing-docusaurus-i18n"],"pages":[{"items":["/releases/3.5","/releases/3.4","/releases/3.3","/releases/3.2","/releases/3.1"],"metadata":{"permalink":"/blog/tags/release","page":1,"postsPerPage":5,"totalPages":3,"totalCount":14,"nextPage":"/blog/tags/release/page/2","blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}},{"items":["/releases/3.0","/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing","/releases/2.4","/releases/2.3","/releases/2.2"],"metadata":{"permalink":"/blog/tags/release/page/2","page":2,"postsPerPage":5,"totalPages":3,"totalCount":14,"previousPage":"/blog/tags/release","nextPage":"/blog/tags/release/page/3","blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}},{"items":["/2022/09/01/docusaurus-2.1","/2022/08/01/announcing-docusaurus-2.0","/2021/05/12/announcing-docusaurus-two-beta","/2021/03/09/releasing-docusaurus-i18n"],"metadata":{"permalink":"/blog/tags/release/page/3","page":3,"postsPerPage":5,"totalPages":3,"totalCount":14,"previousPage":"/blog/tags/release/page/2","blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/maintenance":{"inline":false,"label":"Maintenance","permalink":"/blog/tags/maintenance","items":["/preparing-your-site-for-docusaurus-v3"],"pages":[{"items":["/preparing-your-site-for-docusaurus-v3"],"metadata":{"permalink":"/blog/tags/maintenance","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/recap":{"inline":false,"label":"Recap","permalink":"/blog/tags/recap","description":"Blog posts about Docusaurus\' year recaps","items":["/2022/01/24/docusaurus-2021-recap","/2021/01/19/docusaurus-2020-recap","/2019/12/30/docusaurus-2019-recap"],"pages":[{"items":["/2022/01/24/docusaurus-2021-recap","/2021/01/19/docusaurus-2020-recap","/2019/12/30/docusaurus-2019-recap"],"metadata":{"permalink":"/blog/tags/recap","page":1,"postsPerPage":5,"totalPages":1,"totalCount":3,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/search":{"inline":false,"label":"Search","permalink":"/blog/tags/search","items":["/2021/11/21/algolia-docsearch-migration"],"pages":[{"items":["/2021/11/21/algolia-docsearch-migration"],"metadata":{"permalink":"/blog/tags/search","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/beta":{"inline":false,"label":"Beta","permalink":"/blog/tags/beta","items":["/2021/05/12/announcing-docusaurus-two-beta"],"pages":[{"items":["/2021/05/12/announcing-docusaurus-two-beta"],"metadata":{"permalink":"/blog/tags/beta","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/i-18-n":{"inline":false,"label":"I18n","permalink":"/blog/tags/i-18-n","items":["/2021/03/09/releasing-docusaurus-i18n"],"pages":[{"items":["/2021/03/09/releasing-docusaurus-i18n"],"metadata":{"permalink":"/blog/tags/i-18-n","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/endi":{"inline":false,"label":"Endi","permalink":"/blog/tags/endi","items":["/2020/01/07/tribute-to-endi"],"pages":[{"items":["/2020/01/07/tribute-to-endi"],"metadata":{"permalink":"/blog/tags/endi","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/tribute":{"inline":false,"label":"Tribute","permalink":"/blog/tags/tribute","items":["/2020/01/07/tribute-to-endi"],"pages":[{"items":["/2020/01/07/tribute-to-endi"],"metadata":{"permalink":"/blog/tags/tribute","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/birth":{"inline":false,"label":"Birth","permalink":"/blog/tags/birth","items":["/2018/12/14/Happy-First-Birthday-Slash"],"pages":[{"items":["/2018/12/14/Happy-First-Birthday-Slash"],"metadata":{"permalink":"/blog/tags/birth","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/new":{"inline":false,"label":"New","permalink":"/blog/tags/new","items":["/2018/09/11/Towards-Docusaurus-2"],"pages":[{"items":["/2018/09/11/Towards-Docusaurus-2"],"metadata":{"permalink":"/blog/tags/new","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/adoption":{"inline":false,"label":"Adoption","permalink":"/blog/tags/adoption","items":["/2018/09/11/Towards-Docusaurus-2","/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"],"pages":[{"items":["/2018/09/11/Towards-Docusaurus-2","/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"],"metadata":{"permalink":"/blog/tags/adoption","page":1,"postsPerPage":5,"totalPages":1,"totalCount":2,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/profilo":{"inline":false,"label":"Profilo","permalink":"/blog/tags/profilo","items":["/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"],"pages":[{"items":["/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"],"metadata":{"permalink":"/blog/tags/profilo","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/documentation":{"inline":false,"label":"Documentation","permalink":"/blog/tags/documentation","items":["/2017/12/14/introducing-docusaurus"],"pages":[{"items":["/2017/12/14/introducing-docusaurus"],"metadata":{"permalink":"/blog/tags/documentation","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/blog":{"inline":false,"label":"Blog","permalink":"/blog/tags/blog","items":["/2017/12/14/introducing-docusaurus"],"pages":[{"items":["/2017/12/14/introducing-docusaurus"],"metadata":{"permalink":"/blog/tags/blog","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/docusaurus":{"inline":false,"label":"Docusaurus","permalink":"/blog/tags/docusaurus","items":["/2017/12/14/introducing-docusaurus"],"pages":[{"items":["/2017/12/14/introducing-docusaurus"],"metadata":{"permalink":"/blog/tags/docusaurus","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false}},"blogTagsListPath":"/blog/tags","authorsMap":{"JMarcey":{"name":"Joel Marcey","title":"Developer Advocate at Meta","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{"x":"https://x.com/joelmarcey","github":"https://github.com/JoelMarcey"},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"},"zpao":{"name":"Paul O\u2019Shannessy","title":"Engineering Manager at Meta","url":"https://x.com/zpao","page":{"permalink":"/blog/authors/zpao"},"socials":{"x":"https://x.com/zpao","github":"https://github.com/zpao"},"imageURL":"https://github.com/zpao.png","key":"zpao"},"slorber":{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"},"yangshun":{"name":"Yangshun Tay","title":"Front End Engineer at Meta","url":"https://github.com/yangshun","page":{"permalink":"/blog/authors/yangshun"},"socials":{"x":"https://x.com/yangshunz","github":"https://github.com/yangshun"},"imageURL":"https://github.com/yangshun.png","key":"yangshun"},"lex111":{"name":"Alexey Pyltsyn","title":"Open-source enthusiast","url":"https://github.com/lex111","email":"lex@php.net","page":{"permalink":"/blog/authors/lex-111"},"imageURL":"https://github.com/lex111.png","key":"lex111"},"Josh-Cena":{"name":"Joshua Chen","title":"Working hard on Docusaurus","url":"https://joshcena.com/","email":"sidachen2003@gmail.com","page":{"permalink":"/blog/authors/josh-cena"},"imageURL":"https://github.com/josh-cena.png","key":"Josh-Cena"},"endiliey":{"name":"Endilie Yacop Sucipto","title":"Maintainer of Docusaurus","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null},"abernathyca":{"name":"Christine Abernathy","url":"http://x.com/abernathyca","socials":{"x":"https://x.com/abernathyca"},"imageURL":"https://github.com/caabernathy.png","key":"abernathyca","page":null},"shortcuts":{"name":"Cl\xe9ment Vannicatte","title":"Software Engineer @ Algolia","url":"https://github.com/shortcuts","socials":{"x":"https://x.com/sh0rtcts","github":"https://github.com/shortcuts"},"imageURL":"https://github.com/shortcuts.png","key":"shortcuts","page":null}}},"blog-tests":{"blogSidebarTitle":"Recent posts","blogPosts":[{"id":"/2024/07/03/dual-author","metadata":{"permalink":"/tests/blog/2024/07/03/dual-author","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2024-07-03-dual-author.mdx","source":"@site/_dogfooding/_blog tests/2024-07-03-dual-author.mdx","title":"Dual author socials","description":"Content","date":"2024-07-03T00:00:00.000Z","tags":[],"readingTime":1.4,"hasTruncateMarker":false,"authors":[{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"x":"https://x.com/sebastienlorber","github":"https://github.com/slorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","newsletter":"https://thisweekinreact.com/newsletter"},"key":null,"page":null},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"x":"https://x.com/sebastienlorber","github":"https://github.com/slorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","newsletter":"https://thisweekinreact.com/newsletter"},"key":null,"page":null}],"frontMatter":{"title":"Dual author socials","authors":[{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"x":"https://x.com/sebastienlorber","github":"https://github.com/slorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","newsletter":"https://thisweekinreact.com/newsletter"}},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"x":"https://x.com/sebastienlorber","github":"https://github.com/slorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","newsletter":"https://thisweekinreact.com/newsletter"}}]},"unlisted":false,"nextItem":{"title":"How multiple authors with socials looks","permalink":"/tests/blog/2024/07/03/multiple-authors"}},"content":"## Content\\n\\nContent about the blog post"},{"id":"/2024/07/03/multiple-authors","metadata":{"permalink":"/tests/blog/2024/07/03/multiple-authors","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2024-07-03-multiple-authors.mdx","source":"@site/_dogfooding/_blog tests/2024-07-03-multiple-authors.mdx","title":"How multiple authors with socials looks","description":"Content","date":"2024-07-03T00:00:00.000Z","tags":[],"readingTime":1.4,"hasTruncateMarker":false,"authors":[{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor editor editor editor editor editor editor editor","socials":{"x":"https://x.com/sebastienlorber","github":"https://github.com/slorber","stackoverflow":"https://stackoverflow.com/users/82609/sebastien-lorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","newsletter":"https://thisweekinreact.com/newsletter"},"key":null,"page":null},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"x":"https://x.com/sebastienlorber"},"key":null,"page":null},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor","socials":{},"key":null,"page":null},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor editor editor editor editor editor editor editor","socials":{},"key":null,"page":null},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor","socials":{},"key":null,"page":null},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"github":"https://github.com/slorber","x":"https://x.com/sebastienlorber"},"key":null,"page":null},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor editor editor editor editor editor editor editor","socials":{"github":"https://github.com/slorber","x":"https://x.com/sebastienlorber"},"key":null,"page":null},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"a":"https://thisweekinreact.com/newsletter","b":"https://thisweekinreact.com/newsletter","c":"https://thisweekinreact.com/newsletter","d":"https://thisweekinreact.com/newsletter","e":"https://thisweekinreact.com/newsletter","f":"https://thisweekinreact.com/newsletter","g":"https://thisweekinreact.com/newsletter","h":"https://thisweekinreact.com/newsletter","i":"https://thisweekinreact.com/newsletter","j":"https://thisweekinreact.com/newsletter","k":"https://thisweekinreact.com/newsletter","l":"https://thisweekinreact.com/newsletter","m":"https://thisweekinreact.com/newsletter","n":"https://thisweekinreact.com/newsletter","o":"https://thisweekinreact.com/newsletter","p":"https://thisweekinreact.com/newsletter"},"key":null,"page":null},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"a":"https://thisweekinreact.com/newsletter","b":"https://thisweekinreact.com/newsletter","c":"https://thisweekinreact.com/newsletter","d":"https://thisweekinreact.com/newsletter","e":"https://thisweekinreact.com/newsletter","f":"https://thisweekinreact.com/newsletter","g":"https://thisweekinreact.com/newsletter","h":"https://thisweekinreact.com/newsletter","i":"https://thisweekinreact.com/newsletter","j":"https://thisweekinreact.com/newsletter","k":"https://thisweekinreact.com/newsletter","l":"https://thisweekinreact.com/newsletter","m":"https://thisweekinreact.com/newsletter","n":"https://thisweekinreact.com/newsletter","o":"https://thisweekinreact.com/newsletter","p":"https://thisweekinreact.com/newsletter","q":"https://thisweekinreact.com/newsletter","r":"https://thisweekinreact.com/newsletter","s":"https://thisweekinreact.com/newsletter","t":"https://thisweekinreact.com/newsletter","u":"https://thisweekinreact.com/newsletter","v":"https://thisweekinreact.com/newsletter","w":"https://thisweekinreact.com/newsletter","x":"https://thisweekinreact.com/newsletter","y":"https://thisweekinreact.com/newsletter","z":"https://thisweekinreact.com/newsletter"},"key":null,"page":null}],"frontMatter":{"title":"How multiple authors with socials looks","authors":[{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor editor editor editor editor editor editor editor","socials":{"x":"https://x.com/sebastienlorber","github":"https://github.com/slorber","stackoverflow":"https://stackoverflow.com/users/82609/sebastien-lorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","newsletter":"https://thisweekinreact.com/newsletter"}},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"x":"https://x.com/sebastienlorber"}},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor"},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor editor editor editor editor editor editor editor"},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor"},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"github":"https://github.com/slorber","x":"https://x.com/sebastienlorber"}},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor editor editor editor editor editor editor editor","socials":{"github":"https://github.com/slorber","x":"https://x.com/sebastienlorber"}},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"a":"https://thisweekinreact.com/newsletter","b":"https://thisweekinreact.com/newsletter","c":"https://thisweekinreact.com/newsletter","d":"https://thisweekinreact.com/newsletter","e":"https://thisweekinreact.com/newsletter","f":"https://thisweekinreact.com/newsletter","g":"https://thisweekinreact.com/newsletter","h":"https://thisweekinreact.com/newsletter","i":"https://thisweekinreact.com/newsletter","j":"https://thisweekinreact.com/newsletter","k":"https://thisweekinreact.com/newsletter","l":"https://thisweekinreact.com/newsletter","m":"https://thisweekinreact.com/newsletter","n":"https://thisweekinreact.com/newsletter","o":"https://thisweekinreact.com/newsletter","p":"https://thisweekinreact.com/newsletter"}},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"a":"https://thisweekinreact.com/newsletter","b":"https://thisweekinreact.com/newsletter","c":"https://thisweekinreact.com/newsletter","d":"https://thisweekinreact.com/newsletter","e":"https://thisweekinreact.com/newsletter","f":"https://thisweekinreact.com/newsletter","g":"https://thisweekinreact.com/newsletter","h":"https://thisweekinreact.com/newsletter","i":"https://thisweekinreact.com/newsletter","j":"https://thisweekinreact.com/newsletter","k":"https://thisweekinreact.com/newsletter","l":"https://thisweekinreact.com/newsletter","m":"https://thisweekinreact.com/newsletter","n":"https://thisweekinreact.com/newsletter","o":"https://thisweekinreact.com/newsletter","p":"https://thisweekinreact.com/newsletter","q":"https://thisweekinreact.com/newsletter","r":"https://thisweekinreact.com/newsletter","s":"https://thisweekinreact.com/newsletter","t":"https://thisweekinreact.com/newsletter","u":"https://thisweekinreact.com/newsletter","v":"https://thisweekinreact.com/newsletter","w":"https://thisweekinreact.com/newsletter","x":"https://thisweekinreact.com/newsletter","y":"https://thisweekinreact.com/newsletter","z":"https://thisweekinreact.com/newsletter"}}]},"unlisted":false,"prevItem":{"title":"Dual author socials","permalink":"/tests/blog/2024/07/03/dual-author"},"nextItem":{"title":"Single author socials","permalink":"/tests/blog/2024/07/03/single-author"}},"content":"## Content\\n\\nContent about the blog post"},{"id":"/2024/07/03/single-author","metadata":{"permalink":"/tests/blog/2024/07/03/single-author","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2024-07-03-single-author.mdx","source":"@site/_dogfooding/_blog tests/2024-07-03-single-author.mdx","title":"Single author socials","description":"Content","date":"2024-07-03T00:00:00.000Z","tags":[],"readingTime":1.4,"hasTruncateMarker":false,"authors":[{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor editor editor editor editor editor editor editor editor editor editor editor editor editor","socials":{"x":"https://x.com/sebastienlorber","github":"https://github.com/slorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","newsletter":"https://thisweekinreact.com/newsletter"},"key":null,"page":null}],"frontMatter":{"title":"Single author socials","authors":[{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor editor editor editor editor editor editor editor editor editor editor editor editor editor","socials":{"x":"https://x.com/sebastienlorber","github":"https://github.com/slorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","newsletter":"https://thisweekinreact.com/newsletter"}}]},"unlisted":false,"prevItem":{"title":"How multiple authors with socials looks","permalink":"/tests/blog/2024/07/03/multiple-authors"},"nextItem":{"title":"Ensure heading anchor slugs respect GitHub emoji behavior","permalink":"/tests/blog/2023/08/05/"}},"content":"## Content\\n\\nContent about the blog post"},{"id":"/2023/08/05/","metadata":{"permalink":"/tests/blog/2023/08/05/","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2023-08-05.mdx","source":"@site/_dogfooding/_blog tests/2023-08-05.mdx","title":"Ensure heading anchor slugs respect GitHub emoji behavior","description":"This is a friendly header","date":"2023-08-05T00:00:00.000Z","tags":[],"readingTime":3.2,"hasTruncateMarker":false,"authors":[],"frontMatter":{"title":"Ensure heading anchor slugs respect GitHub emoji behavior","date":"2023-08-05T00:00:00.000Z"},"unlisted":false,"prevItem":{"title":"Single author socials","permalink":"/tests/blog/2024/07/03/single-author"},"nextItem":{"title":"Test if href in feed resolved correctly","permalink":"/tests/blog/2023/07/19/a"}},"content":"## :smiley: This is a friendly header\\n\\n## \u{1F603} This is a friendly header (real smiley)"},{"id":"/2023/07/19/a","metadata":{"permalink":"/tests/blog/2023/07/19/a","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2023-07-19-a.mdx","source":"@site/_dogfooding/_blog tests/2023-07-19-a.mdx","title":"Test if href in feed resolved correctly","description":"absolute full url","date":"2023-07-19T00:00:00.000Z","tags":[],"readingTime":2.2,"hasTruncateMarker":false,"authors":[],"frontMatter":{"title":"Test if href in feed resolved correctly"},"unlisted":false,"prevItem":{"title":"Ensure heading anchor slugs respect GitHub emoji behavior","permalink":"/tests/blog/2023/08/05/"},"nextItem":{"title":"Test Relative Path","permalink":"/tests/blog/2023/07/19/b"}},"content":"[absolute full url](https://github.com/facebook/docusaurus)\\n\\n[absolute url with implicit domain name](/tests/blog/2023/07/19/b)\\n\\n[relative url](2023-07-19-b.mdx)"},{"id":"/2023/07/19/b","metadata":{"permalink":"/tests/blog/2023/07/19/b","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2023-07-19-b.mdx","source":"@site/_dogfooding/_blog tests/2023-07-19-b.mdx","title":"Test Relative Path","description":"","date":"2023-07-19T00:00:00.000Z","tags":[],"readingTime":0,"hasTruncateMarker":false,"authors":[],"frontMatter":{},"unlisted":false,"prevItem":{"title":"Test if href in feed resolved correctly","permalink":"/tests/blog/2023/07/19/a"},"nextItem":{"title":"A post with html slug","permalink":"/tests/blog/x/y/z.html"}},"content":""},{"id":"/x/y/z.html","metadata":{"permalink":"/tests/blog/x/y/z.html","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2022-10-02-html-slug.mdx","source":"@site/_dogfooding/_blog tests/2022-10-02-html-slug.mdx","title":"A post with html slug","description":"This is a blog post with an html slug!","date":"2022-10-02T00:00:00.000Z","tags":[{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"}],"readingTime":3.4,"hasTruncateMarker":false,"authors":[],"frontMatter":{"title":"A post with html slug","tags":["paginated-tag"],"slug":"/x/y/z.html"},"unlisted":false,"prevItem":{"title":"Test Relative Path","permalink":"/tests/blog/2023/07/19/b"},"nextItem":{"title":"First post with footnote to test posts with same footnote reference.","permalink":"/tests/blog/2022/04/20/dup-footnote"}},"content":"This is a blog post with an html slug!\\n\\n```mdx-code-block\\nimport Partial from \\"./_partial.mdx\\"\\n\\n<Partial />\\n```"},{"id":"/unlisted-post","metadata":{"permalink":"/tests/blog/unlisted-post","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2022-08-24-post-unlisted.mdx","source":"@site/_dogfooding/_blog tests/2022-08-24-post-unlisted.mdx","title":"Unlisted blog post","description":"This unlisted blog post should be \\"hidden\\" in production, but remain accessible.","date":"2022-08-24T00:00:00.000Z","tags":[{"inline":false,"label":"Blog","permalink":"/tests/blog/tags/blog"},{"inline":false,"label":"Visibility","permalink":"/tests/blog/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/blog/tags/unlisted"}],"readingTime":4.2,"hasTruncateMarker":false,"authors":[],"frontMatter":{"title":"Unlisted blog post","unlisted":true,"tags":["blog","visibility","unlisted"],"slug":"/unlisted-post"},"unlisted":true},"content":"This unlisted blog post should be \\"hidden\\" in production, but remain accessible.\\n\\nIt is filtered from the sidebar, sitemap, SEO indexation..."},{"id":"/2022/04/20/dup-footnote","metadata":{"permalink":"/tests/blog/2022/04/20/dup-footnote","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2022-04-20-dup-footnote.mdx","source":"@site/_dogfooding/_blog tests/2022-04-20-dup-footnote.mdx","title":"First post with footnote to test posts with same footnote reference.","description":"foo","date":"2022-04-20T00:00:00.000Z","tags":[],"readingTime":1.8,"hasTruncateMarker":false,"authors":[],"frontMatter":{"title":"First post with footnote to test posts with same footnote reference."},"unlisted":false,"prevItem":{"title":"A post with html slug","permalink":"/tests/blog/x/y/z.html"},"nextItem":{"title":"Second post with footnote to test posts with same footnote reference.","permalink":"/tests/blog/2022/01/22/dup-footnote"}},"content":"foo[^1]\\n\\nbar[^2]\\n\\nbaz[^3]\\n\\n[^1]: foo\\n[^2]: bar\\n[^3]: baz"},{"id":"/2022/01/22/dup-footnote","metadata":{"permalink":"/tests/blog/2022/01/22/dup-footnote","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2022-01-22-dup-footnote.mdx","source":"@site/_dogfooding/_blog tests/2022-01-22-dup-footnote.mdx","title":"Second post with footnote to test posts with same footnote reference.","description":"foo","date":"2022-01-22T00:00:00.000Z","tags":[],"readingTime":1.8,"hasTruncateMarker":false,"authors":[],"frontMatter":{"title":"Second post with footnote to test posts with same footnote reference."},"unlisted":false,"prevItem":{"title":"First post with footnote to test posts with same footnote reference.","permalink":"/tests/blog/2022/04/20/dup-footnote"},"nextItem":{"title":"Third post with footnote to test posts with same footnote reference.","permalink":"/tests/blog/2022/01/21/dup-footnote"}},"content":"foo[^1]\\n\\nbar[^2]\\n\\nbaz[^3]\\n\\n[^1]: foo\\n[^2]: bar\\n[^3]: baz"},{"id":"/2022/01/21/dup-footnote","metadata":{"permalink":"/tests/blog/2022/01/21/dup-footnote","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2022-01-21-dup-footnote.mdx","source":"@site/_dogfooding/_blog tests/2022-01-21-dup-footnote.mdx","title":"Third post with footnote to test posts with same footnote reference.","description":"foo","date":"2022-01-21T00:00:00.000Z","tags":[],"readingTime":1.8,"hasTruncateMarker":false,"authors":[],"frontMatter":{"title":"Third post with footnote to test posts with same footnote reference."},"unlisted":false,"prevItem":{"title":"Second post with footnote to test posts with same footnote reference.","permalink":"/tests/blog/2022/01/22/dup-footnote"},"nextItem":{"title":"Image-only authors","permalink":"/tests/blog/2022/01/20/image-only-authors"}},"content":"foo[^1]\\n\\nbar[^2]\\n\\nbaz[^3]\\n\\n[^1]: foo\\n[^2]: bar\\n[^3]: baz"},{"id":"/2022/01/20/image-only-authors","metadata":{"permalink":"/tests/blog/2022/01/20/image-only-authors","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2022-01-20-image-only-authors.mdx","source":"@site/_dogfooding/_blog tests/2022-01-20-image-only-authors.mdx","title":"Image-only authors","description":"You can make a compact authors list without author names!","date":"2022-01-20T00:00:00.000Z","tags":[{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"}],"readingTime":2,"hasTruncateMarker":false,"authors":[{"image_url":"https://github.com/endiliey.png","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/lex111.png","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/slorber.png","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/yangshun.png","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/JoelMarcey.png","url":"https://github.com/JoelMarcey","imageURL":"https://github.com/JoelMarcey.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/Josh-Cena.png","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/deltice.png","url":"https://github.com/deltice","imageURL":"https://github.com/deltice.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/SamChou19815.png","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/ericnakagawa.png","url":"https://github.com/ericnakagawa","imageURL":"https://github.com/ericnakagawa.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/Simek.png","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/hramos.png","url":"https://github.com/hramos","imageURL":"https://github.com/hramos.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/wgao19.png","url":"https://github.com/wgao19","imageURL":"https://github.com/wgao19.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/rickyvetter.png","url":"https://github.com/rickyvetter","imageURL":"https://github.com/rickyvetter.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/fanny.png","url":"https://github.com/fanny","imageURL":"https://github.com/fanny.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/armano2.png","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/RDIL.png","url":"https://github.com/RDIL","imageURL":"https://github.com/RDIL.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/teikjun.png","url":"https://github.com/teikjun","imageURL":"https://github.com/teikjun.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/hong4rc.png","url":"https://github.com/hong4rc","imageURL":"https://github.com/hong4rc.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/anshulrgoyal.png","url":"https://github.com/anshulrgoyal","imageURL":"https://github.com/anshulrgoyal.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/italicize.png","url":"https://github.com/italicize","imageURL":"https://github.com/italicize.png","socials":{},"key":null,"page":null}],"frontMatter":{"authors":[{"image_url":"https://github.com/endiliey.png","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png"},{"image_url":"https://github.com/lex111.png","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png"},{"image_url":"https://github.com/slorber.png","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png"},{"image_url":"https://github.com/yangshun.png","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png"},{"image_url":"https://github.com/JoelMarcey.png","url":"https://github.com/JoelMarcey","imageURL":"https://github.com/JoelMarcey.png"},{"image_url":"https://github.com/Josh-Cena.png","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png"},{"image_url":"https://github.com/deltice.png","url":"https://github.com/deltice","imageURL":"https://github.com/deltice.png"},{"image_url":"https://github.com/SamChou19815.png","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png"},{"image_url":"https://github.com/ericnakagawa.png","url":"https://github.com/ericnakagawa","imageURL":"https://github.com/ericnakagawa.png"},{"image_url":"https://github.com/Simek.png","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png"},{"image_url":"https://github.com/hramos.png","url":"https://github.com/hramos","imageURL":"https://github.com/hramos.png"},{"image_url":"https://github.com/wgao19.png","url":"https://github.com/wgao19","imageURL":"https://github.com/wgao19.png"},{"image_url":"https://github.com/rickyvetter.png","url":"https://github.com/rickyvetter","imageURL":"https://github.com/rickyvetter.png"},{"image_url":"https://github.com/fanny.png","url":"https://github.com/fanny","imageURL":"https://github.com/fanny.png"},{"image_url":"https://github.com/armano2.png","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png"},{"image_url":"https://github.com/RDIL.png","url":"https://github.com/RDIL","imageURL":"https://github.com/RDIL.png"},{"image_url":"https://github.com/teikjun.png","url":"https://github.com/teikjun","imageURL":"https://github.com/teikjun.png"},{"image_url":"https://github.com/hong4rc.png","url":"https://github.com/hong4rc","imageURL":"https://github.com/hong4rc.png"},{"image_url":"https://github.com/anshulrgoyal.png","url":"https://github.com/anshulrgoyal","imageURL":"https://github.com/anshulrgoyal.png"},{"image_url":"https://github.com/italicize.png","url":"https://github.com/italicize","imageURL":"https://github.com/italicize.png"}],"tags":["paginated-tag"]},"unlisted":false,"prevItem":{"title":"Third post with footnote to test posts with same footnote reference.","permalink":"/tests/blog/2022/01/21/dup-footnote"},"nextItem":{"title":"Post with duplicate title","permalink":"/tests/blog/2021/11/13/dup-title"}},"content":"You can make a compact authors list without author names!"},{"id":"/2021/11/13/dup-title","metadata":{"permalink":"/tests/blog/2021/11/13/dup-title","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2021-11-13-dup-title.mdx","source":"@site/_dogfooding/_blog tests/2021-11-13-dup-title.mdx","title":"Post with duplicate title","description":"I hope I\'m still here","date":"2021-11-13T00:00:00.000Z","tags":[{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"}],"readingTime":1,"hasTruncateMarker":false,"authors":[],"frontMatter":{"tags":["paginated-tag"]},"unlisted":false,"prevItem":{"title":"Image-only authors","permalink":"/tests/blog/2022/01/20/image-only-authors"},"nextItem":{"title":"Blog post MDX require Feed tests","permalink":"/tests/blog/2021/10/08/blog-post-mdx-require-feed-tests"}},"content":"I hope I\'m still here"},{"id":"/2021/10/08/blog-post-mdx-require-feed-tests","metadata":{"permalink":"/tests/blog/2021/10/08/blog-post-mdx-require-feed-tests","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2021-10-08-blog-post-mdx-require-feed-tests.mdx","source":"@site/_dogfooding/_blog tests/2021-10-08-blog-post-mdx-require-feed-tests.mdx","title":"Blog post MDX require Feed tests","description":"Some MDX tests, mostly to test how the RSS feed render those","date":"2021-10-08T00:00:00.000Z","tags":[{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"},{"inline":false,"label":"Blog","permalink":"/tests/blog/tags/blog"},{"inline":false,"label":"Docusaurus","permalink":"/tests/blog/tags/docusaurus"},{"inline":false,"label":"Long-long","permalink":"/tests/blog/tags/long-long"},{"inline":false,"label":"Long-long-long","permalink":"/tests/blog/tags/long-long-long"},{"inline":false,"label":"Long-long-long-long","permalink":"/tests/blog/tags/long-long-long-long"}],"readingTime":6.6,"hasTruncateMarker":true,"authors":[{"name":"Sebastien Lorber","title":"Docusaurus maintainer","url":"https://sebastienlorber.com","page":{"permalink":"/tests/blog/authors/slorber"},"socials":{"x":"https://x.com/sebastienlorber"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Blog post MDX require Feed tests","authors":["slorber"],"tags":["paginated-tag","blog","docusaurus","long-long","long-long-long","long-long-long-long"]},"unlisted":false,"prevItem":{"title":"Post with duplicate title","permalink":"/tests/blog/2021/11/13/dup-title"},"nextItem":{"title":"Blog post MDX Feed tests","permalink":"/tests/blog/2021/10/07/blog-post-mdx-feed-tests"}},"content":"Some MDX tests, mostly to test how the RSS feed render those\\n\\n{/* truncate */}\\n\\nTest MDX with require calls\\n\\nimport useBaseUrl from \'@docusaurus/useBaseUrl\';\\n\\n<img src={useBaseUrl(\'/img/docusaurus.png\')} />\\n\\n<img src={require(\'../../static/img/docusaurus.png\').default} />\\n\\n<img src={require(\'@site/static/img/docusaurus.png\').default} />"},{"id":"/2021/10/07/blog-post-mdx-feed-tests","metadata":{"permalink":"/tests/blog/2021/10/07/blog-post-mdx-feed-tests","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2021-10-07-blog-post-mdx-feed-tests.mdx","source":"@site/_dogfooding/_blog tests/2021-10-07-blog-post-mdx-feed-tests.mdx","title":"Blog post MDX Feed tests","description":"Some MDX tests, mostly to test how the RSS feed render those","date":"2021-10-07T00:00:00.000Z","tags":[{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"},{"inline":false,"label":"Blog","permalink":"/tests/blog/tags/blog"},{"inline":false,"label":"Docusaurus","permalink":"/tests/blog/tags/docusaurus"},{"inline":false,"label":"Long-long","permalink":"/tests/blog/tags/long-long"},{"inline":false,"label":"Long-long-long","permalink":"/tests/blog/tags/long-long-long"},{"inline":false,"label":"Long-long-long-long","permalink":"/tests/blog/tags/long-long-long-long"}],"hasTruncateMarker":true,"authors":[{"name":"Sebastien Lorber","title":"Docusaurus maintainer","url":"https://sebastienlorber.com","page":{"permalink":"/tests/blog/authors/slorber"},"socials":{"x":"https://x.com/sebastienlorber"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Blog post MDX Feed tests","authors":["slorber"],"tags":["paginated-tag","blog","docusaurus","long-long","long-long-long","long-long-long-long"],"hide_reading_time":true},"unlisted":false,"prevItem":{"title":"Blog post MDX require Feed tests","permalink":"/tests/blog/2021/10/08/blog-post-mdx-require-feed-tests"},"nextItem":{"title":"Post with duplicate title","permalink":"/tests/blog/2021/09/13/dup-title"}},"content":"Some MDX tests, mostly to test how the RSS feed render those\\n\\n{/* truncate */}\\n\\n## Imports\\n\\nHere are some imports:\\n\\nimport Tabs from \'@theme/Tabs\';\\nimport TabItem from \'@theme/TabItem\';\\n\\n## Exports\\n\\nHere are some exports:\\n\\nexport const someExport = 42;\\n\\n## Tabs test\\n\\nHere are some tabs:\\n\\n<Tabs>\\n <TabItem value=\\"apple\\" label=\\"Apple\\">\\n This is an apple \u{1F34E}\\n </TabItem>\\n <TabItem value=\\"orange\\" label=\\"Orange\\">\\n This is an orange \u{1F34A}\\n </TabItem>\\n</Tabs>\\n\\nHere are some tabs, inside `mdx-code-block`:\\n\\n```mdx-code-block\\n<Tabs>\\n <TabItem value=\\"apple\\" label=\\"Apple\\">\\n This is an apple \u{1F34E}\\n </TabItem>\\n <TabItem value=\\"orange\\" label=\\"Orange\\">\\n This is an orange \u{1F34A}\\n </TabItem>\\n</Tabs>\\n```"},{"id":"/2021/09/13/dup-title","metadata":{"permalink":"/tests/blog/2021/09/13/dup-title","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2021-09-13-dup-title.mdx","source":"@site/_dogfooding/_blog tests/2021-09-13-dup-title.mdx","title":"Post with duplicate title","description":"See https://github.com/facebook/docusaurus/issues/6059. This one and 2021-11-13-dup-title.md should both show up.","date":"2021-09-13T00:00:00.000Z","tags":[{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"}],"readingTime":2,"hasTruncateMarker":false,"authors":[{"name":"Josh-Cena1","socials":{},"key":null,"page":null},{"name":"Josh-Cena2","image_url":"https://github.com/Josh-Cena.png","imageURL":"https://github.com/Josh-Cena.png","socials":{},"key":null,"page":null},{"name":"Josh-Cena3","url":"https://github.com/Josh-Cena","socials":{},"key":null,"page":null},{"name":"Josh-Cena4","email":"sidechen2003@gmail.com","socials":{},"key":null,"page":null}],"frontMatter":{"tags":["paginated-tag"],"authors":[{"name":"Josh-Cena1"},{"name":"Josh-Cena2","image_url":"https://github.com/Josh-Cena.png","imageURL":"https://github.com/Josh-Cena.png"},{"name":"Josh-Cena3","url":"https://github.com/Josh-Cena"},{"name":"Josh-Cena4","email":"sidechen2003@gmail.com"}]},"unlisted":false,"prevItem":{"title":"Blog post MDX Feed tests","permalink":"/tests/blog/2021/10/07/blog-post-mdx-feed-tests"},"nextItem":{"title":"Multiple authors","permalink":"/tests/blog/2021/08/23/multiple-authors"}},"content":"See https://github.com/facebook/docusaurus/issues/6059. This one and [2021-11-13-dup-title.md](./2021-11-13-dup-title.mdx) should both show up."},{"id":"/2021/08/23/multiple-authors","metadata":{"permalink":"/tests/blog/2021/08/23/multiple-authors","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2021-08-23-multiple-authors.mdx","source":"@site/_dogfooding/_blog tests/2021-08-23-multiple-authors.mdx","title":"Multiple authors","description":"You can have multiple authors for one blog post!","date":"2021-08-23T00:00:00.000Z","tags":[{"inline":false,"label":"Blog","permalink":"/tests/blog/tags/blog"},{"inline":false,"label":"Docusaurus","permalink":"/tests/blog/tags/docusaurus"},{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"},{"inline":false,"label":"Long","permalink":"/tests/blog/tags/long"},{"inline":false,"label":"Long-long","permalink":"/tests/blog/tags/long-long"},{"inline":false,"label":"Long-long-long","permalink":"/tests/blog/tags/long-long-long"},{"inline":false,"label":"Long-long-long-long","permalink":"/tests/blog/tags/long-long-long-long"},{"inline":false,"label":"Long-long-long-long-long","permalink":"/tests/blog/tags/long-long-long-long-long"}],"readingTime":1.8,"hasTruncateMarker":false,"authors":[{"name":"Sebastien Lorber","title":"Docusaurus maintainer","url":"https://sebastienlorber.com","page":{"permalink":"/tests/blog/authors/slorber"},"socials":{"x":"https://x.com/sebastienlorber"},"imageURL":"https://github.com/slorber.png","key":"slorber"},{"name":"Josh-Cena","image_url":"https://avatars.githubusercontent.com/u/55398995?v=4","url":"https://joshcena.com","imageURL":"https://avatars.githubusercontent.com/u/55398995?v=4","socials":{},"key":null,"page":null}],"frontMatter":{"authors":["slorber",{"name":"Josh-Cena","image_url":"https://avatars.githubusercontent.com/u/55398995?v=4","url":"https://joshcena.com","imageURL":"https://avatars.githubusercontent.com/u/55398995?v=4"}],"tags":["blog","docusaurus","paginated-tag","long","long-long","long-long-long","long-long-long-long","long-long-long-long-long"]},"unlisted":false,"prevItem":{"title":"Post with duplicate title","permalink":"/tests/blog/2021/09/13/dup-title"},"nextItem":{"title":"Hmmm!","permalink":"/tests/blog/2021/08/22/no-author"}},"content":"You can have multiple authors for one blog post!"},{"id":"/2021/08/22/no-author","metadata":{"permalink":"/tests/blog/2021/08/22/no-author","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2021-08-22-no-author.mdx","source":"@site/_dogfooding/_blog tests/2021-08-22-no-author.mdx","title":"Hmmm!","description":"This is a blog post from an anonymous author!","date":"2021-08-22T00:00:00.000Z","tags":[{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"}],"readingTime":3.4,"hasTruncateMarker":false,"authors":[],"frontMatter":{"tags":["paginated-tag"]},"unlisted":false,"prevItem":{"title":"Multiple authors","permalink":"/tests/blog/2021/08/23/multiple-authors"},"nextItem":{"title":"Blog TOC FrontMatter tests","permalink":"/tests/blog/2021/08/21/blog-post-toc-tests"}},"content":"This is a blog post from an anonymous author!\\n\\n```mdx-code-block\\nimport Partial from \\"./_partial.mdx\\"\\n\\n<Partial />\\n```"},{"id":"/2021/08/21/blog-post-toc-tests","metadata":{"permalink":"/tests/blog/2021/08/21/blog-post-toc-tests","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2021-08-21-blog-post-toc-tests.mdx","source":"@site/_dogfooding/_blog tests/2021-08-21-blog-post-toc-tests.mdx","title":"Blog TOC FrontMatter tests","description":"{/ truncate /}","date":"2021-08-21T00:00:00.000Z","tags":[{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"}],"readingTime":1.8,"hasTruncateMarker":true,"authors":[{"name":"Sebastien Lorber","title":"Docusaurus maintainer","url":"https://sebastienlorber.com","page":{"permalink":"/tests/blog/authors/slorber"},"socials":{"x":"https://x.com/sebastienlorber"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Blog TOC FrontMatter tests","authors":["slorber"],"toc_min_heading_level":2,"toc_max_heading_level":4,"tags":["paginated-tag"]},"unlisted":false,"prevItem":{"title":"Hmmm!","permalink":"/tests/blog/2021/08/22/no-author"},"nextItem":{"title":"Using twice the blog plugin","permalink":"/tests/blog/2020/08/03/demo/second-blog-intro"}},"content":"{/* truncate */}\\n\\nimport Content from \'@site/_dogfooding/_partials/toc-tests.mdx\';\\n\\n<Content />"},{"id":"/2020/08/03/demo/second-blog-intro","metadata":{"permalink":"/tests/blog/2020/08/03/demo/second-blog-intro","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/demo/2020-08-03-second-blog-intro.mdx","source":"@site/_dogfooding/_blog tests/demo/2020-08-03-second-blog-intro.mdx","title":"Using twice the blog plugin","description":"Did you know you can use multiple instances of the same plugin?","date":"2020-08-03T00:00:00.000Z","tags":[{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"},{"inline":false,"label":"Blog","permalink":"/tests/blog/tags/blog"},{"inline":false,"label":"Docusaurus","permalink":"/tests/blog/tags/docusaurus"}],"readingTime":7,"hasTruncateMarker":true,"authors":[{"name":"Sebastien Lorber","title":"Docusaurus maintainer","url":"https://sebastienlorber.com","page":{"permalink":"/tests/blog/authors/slorber"},"socials":{"x":"https://x.com/sebastienlorber"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Using twice the blog plugin","authors":["slorber"],"tags":["paginated-tag","blog","docusaurus"]},"unlisted":false,"prevItem":{"title":"Blog TOC FrontMatter tests","permalink":"/tests/blog/2021/08/21/blog-post-toc-tests"}},"content":"Did you know you can use multiple instances of the same plugin?\\n\\n{/* truncate */}\\n\\n:::tip\\n\\nUsing twice the blog plugin permits you to create more than one blog on the same Docusaurus website!\\n\\n:::"}],"blogListPaginated":[{"items":["/2024/07/03/dual-author","/2024/07/03/multiple-authors","/2024/07/03/single-author"],"metadata":{"permalink":"/tests/blog","page":1,"postsPerPage":3,"totalPages":7,"totalCount":19,"nextPage":"/tests/blog/page/2","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2023/08/05/","/2023/07/19/a","/2023/07/19/b"],"metadata":{"permalink":"/tests/blog/page/2","page":2,"postsPerPage":3,"totalPages":7,"totalCount":19,"previousPage":"/tests/blog","nextPage":"/tests/blog/page/3","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/x/y/z.html","/2022/04/20/dup-footnote","/2022/01/22/dup-footnote"],"metadata":{"permalink":"/tests/blog/page/3","page":3,"postsPerPage":3,"totalPages":7,"totalCount":19,"previousPage":"/tests/blog/page/2","nextPage":"/tests/blog/page/4","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2022/01/21/dup-footnote","/2022/01/20/image-only-authors","/2021/11/13/dup-title"],"metadata":{"permalink":"/tests/blog/page/4","page":4,"postsPerPage":3,"totalPages":7,"totalCount":19,"previousPage":"/tests/blog/page/3","nextPage":"/tests/blog/page/5","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/09/13/dup-title"],"metadata":{"permalink":"/tests/blog/page/5","page":5,"postsPerPage":3,"totalPages":7,"totalCount":19,"previousPage":"/tests/blog/page/4","nextPage":"/tests/blog/page/6","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2021/08/23/multiple-authors","/2021/08/22/no-author","/2021/08/21/blog-post-toc-tests"],"metadata":{"permalink":"/tests/blog/page/6","page":6,"postsPerPage":3,"totalPages":7,"totalCount":19,"previousPage":"/tests/blog/page/5","nextPage":"/tests/blog/page/7","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2020/08/03/demo/second-blog-intro"],"metadata":{"permalink":"/tests/blog/page/7","page":7,"postsPerPage":3,"totalPages":7,"totalCount":19,"previousPage":"/tests/blog/page/6","blogDescription":"Blog","blogTitle":"Blog"}}],"blogTags":{"/tests/blog/tags/paginated-tag":{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag","items":["/x/y/z.html","/2022/01/20/image-only-authors","/2021/11/13/dup-title","/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/09/13/dup-title","/2021/08/23/multiple-authors","/2021/08/22/no-author","/2021/08/21/blog-post-toc-tests","/2020/08/03/demo/second-blog-intro"],"pages":[{"items":["/x/y/z.html","/2022/01/20/image-only-authors","/2021/11/13/dup-title"],"metadata":{"permalink":"/tests/blog/tags/paginated-tag","page":1,"postsPerPage":3,"totalPages":4,"totalCount":10,"nextPage":"/tests/blog/tags/paginated-tag/page/2","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/09/13/dup-title"],"metadata":{"permalink":"/tests/blog/tags/paginated-tag/page/2","page":2,"postsPerPage":3,"totalPages":4,"totalCount":10,"previousPage":"/tests/blog/tags/paginated-tag","nextPage":"/tests/blog/tags/paginated-tag/page/3","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2021/08/23/multiple-authors","/2021/08/22/no-author","/2021/08/21/blog-post-toc-tests"],"metadata":{"permalink":"/tests/blog/tags/paginated-tag/page/3","page":3,"postsPerPage":3,"totalPages":4,"totalCount":10,"previousPage":"/tests/blog/tags/paginated-tag/page/2","nextPage":"/tests/blog/tags/paginated-tag/page/4","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2020/08/03/demo/second-blog-intro"],"metadata":{"permalink":"/tests/blog/tags/paginated-tag/page/4","page":4,"postsPerPage":3,"totalPages":4,"totalCount":10,"previousPage":"/tests/blog/tags/paginated-tag/page/3","blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":false},"/tests/blog/tags/blog":{"inline":false,"label":"Blog","permalink":"/tests/blog/tags/blog","items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors","/2020/08/03/demo/second-blog-intro"],"pages":[{"items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors"],"metadata":{"permalink":"/tests/blog/tags/blog","page":1,"postsPerPage":3,"totalPages":2,"totalCount":4,"nextPage":"/tests/blog/tags/blog/page/2","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2020/08/03/demo/second-blog-intro"],"metadata":{"permalink":"/tests/blog/tags/blog/page/2","page":2,"postsPerPage":3,"totalPages":2,"totalCount":4,"previousPage":"/tests/blog/tags/blog","blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":false},"/tests/blog/tags/visibility":{"inline":false,"label":"Visibility","permalink":"/tests/blog/tags/visibility","items":["/unlisted-post"],"pages":[{"items":["/unlisted-post"],"metadata":{"permalink":"/tests/blog/tags/visibility","page":1,"postsPerPage":3,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":true},"/tests/blog/tags/unlisted":{"inline":false,"label":"Unlisted","permalink":"/tests/blog/tags/unlisted","items":["/unlisted-post"],"pages":[{"items":["/unlisted-post"],"metadata":{"permalink":"/tests/blog/tags/unlisted","page":1,"postsPerPage":3,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":true},"/tests/blog/tags/docusaurus":{"inline":false,"label":"Docusaurus","permalink":"/tests/blog/tags/docusaurus","items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors","/2020/08/03/demo/second-blog-intro"],"pages":[{"items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors"],"metadata":{"permalink":"/tests/blog/tags/docusaurus","page":1,"postsPerPage":3,"totalPages":2,"totalCount":4,"nextPage":"/tests/blog/tags/docusaurus/page/2","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2020/08/03/demo/second-blog-intro"],"metadata":{"permalink":"/tests/blog/tags/docusaurus/page/2","page":2,"postsPerPage":3,"totalPages":2,"totalCount":4,"previousPage":"/tests/blog/tags/docusaurus","blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":false},"/tests/blog/tags/long-long":{"inline":false,"label":"Long-long","permalink":"/tests/blog/tags/long-long","items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors"],"pages":[{"items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors"],"metadata":{"permalink":"/tests/blog/tags/long-long","page":1,"postsPerPage":3,"totalPages":1,"totalCount":3,"blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":false},"/tests/blog/tags/long-long-long":{"inline":false,"label":"Long-long-long","permalink":"/tests/blog/tags/long-long-long","items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors"],"pages":[{"items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors"],"metadata":{"permalink":"/tests/blog/tags/long-long-long","page":1,"postsPerPage":3,"totalPages":1,"totalCount":3,"blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":false},"/tests/blog/tags/long-long-long-long":{"inline":false,"label":"Long-long-long-long","permalink":"/tests/blog/tags/long-long-long-long","items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors"],"pages":[{"items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors"],"metadata":{"permalink":"/tests/blog/tags/long-long-long-long","page":1,"postsPerPage":3,"totalPages":1,"totalCount":3,"blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":false},"/tests/blog/tags/long":{"inline":false,"label":"Long","permalink":"/tests/blog/tags/long","items":["/2021/08/23/multiple-authors"],"pages":[{"items":["/2021/08/23/multiple-authors"],"metadata":{"permalink":"/tests/blog/tags/long","page":1,"postsPerPage":3,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":false},"/tests/blog/tags/long-long-long-long-long":{"inline":false,"label":"Long-long-long-long-long","permalink":"/tests/blog/tags/long-long-long-long-long","items":["/2021/08/23/multiple-authors"],"pages":[{"items":["/2021/08/23/multiple-authors"],"metadata":{"permalink":"/tests/blog/tags/long-long-long-long-long","page":1,"postsPerPage":3,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":false}},"blogTagsListPath":"/tests/blog/tags","authorsMap":{"slorber":{"name":"Sebastien Lorber","title":"Docusaurus maintainer","url":"https://sebastienlorber.com","page":{"permalink":"/tests/blog/authors/slorber"},"socials":{"x":"https://x.com/sebastienlorber"},"imageURL":"https://github.com/slorber.png","key":"slorber"},"ozaki":{"name":"ozaki","page":{"permalink":"/tests/blog/authors/custom/ozaki/permalink"},"key":"ozaki"}}}},"docusaurus-plugin-content-pages":{"default":[{"type":"jsx","permalink":"/","source":"@site/src/pages/index.tsx"},{"type":"mdx","permalink":"/tests","source":"@site/src/pages/tests.mdx","title":"Tests","description":"Docusaurus use some extra plugin instances for testing / dogfooding purpose:","frontMatter":{},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/src/pages/tests.mdx","unlisted":false},{"type":"jsx","permalink":"/versions","source":"@site/src/pages/versions.tsx"},{"type":"mdx","permalink":"/examples/markdownPageExample","source":"@site/src/pages/examples/markdownPageExample.mdx","title":"Markdown Page example","description":"Markdown Page example","frontMatter":{"title":"Markdown Page example","description":"Markdown Page example","wrapperClassName":"docusaurus-markdown-example"},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/src/pages/examples/markdownPageExample.mdx","unlisted":false},{"type":"mdx","permalink":"/examples/noIndex","source":"@site/src/pages/examples/noIndex.mdx","title":"No Index Page example","description":"This page will not be indexed by search engines because it contains the page following page metadata markup:","frontMatter":{},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/src/pages/examples/noIndex.mdx","unlisted":false},{"type":"jsx","permalink":"/showcase/","source":"@site/src/pages/showcase/index.tsx"}],"pages-tests":[{"type":"jsx","permalink":"/tests/pages/analytics","source":"@site/_dogfooding/_pages tests/analytics.tsx"},{"type":"mdx","permalink":"/tests/pages/code-block-tests","source":"@site/_dogfooding/_pages tests/code-block-tests.mdx","title":"Code block tests","description":"This test page is quite outdated: MDX v2 lowercase tags are not substituted anymore in the same way as they were in v1.","frontMatter":{},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/code-block-tests.mdx","unlisted":false},{"type":"jsx","permalink":"/tests/pages/crashTest","source":"@site/_dogfooding/_pages tests/crashTest.tsx"},{"type":"mdx","permalink":"/tests/pages/diagrams","source":"@site/_dogfooding/_pages tests/diagrams.mdx","title":"Diagram Examples","description":"Invalid Diagrams","frontMatter":{},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/diagrams.mdx","unlisted":false},{"type":"jsx","permalink":"/tests/pages/embeds","source":"@site/_dogfooding/_pages tests/embeds.tsx"},{"type":"jsx","permalink":"/tests/pages/error-boundary-tests","source":"@site/_dogfooding/_pages tests/error-boundary-tests.tsx"},{"type":"mdx","permalink":"/tests/pages/head-metadata","source":"@site/_dogfooding/_pages tests/head-metadata.mdx","description":"Head Metadata tests","frontMatter":{},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/head-metadata.mdx","unlisted":false},{"type":"jsx","permalink":"/tests/pages/hydration-tests","source":"@site/_dogfooding/_pages tests/hydration-tests.tsx"},{"type":"mdx","permalink":"/tests/pages/","source":"@site/_dogfooding/_pages tests/index.mdx","description":"Page","frontMatter":{},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/index.mdx","unlisted":false},{"type":"jsx","permalink":"/tests/pages/layout-no-children","source":"@site/_dogfooding/_pages tests/layout-no-children.tsx"},{"type":"jsx","permalink":"/tests/pages/link-tests","source":"@site/_dogfooding/_pages tests/link-tests.tsx"},{"type":"mdx","permalink":"/tests/pages/markdown-tests-md","source":"@site/_dogfooding/_pages tests/markdown-tests-md.md","title":"Markdown Page tests title","description":"Markdown Page tests description","frontMatter":{"title":"Markdown Page tests title","description":"Markdown Page tests description","wrapperClassName":"docusaurus-markdown-example"},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/markdown-tests-md.md","unlisted":false},{"type":"mdx","permalink":"/tests/pages/markdown-tests-mdx","source":"@site/_dogfooding/_pages tests/markdown-tests-mdx.mdx","title":"Markdown Page tests title","description":"Markdown Page tests description","frontMatter":{"title":"Markdown Page tests title","description":"Markdown Page tests description","wrapperClassName":"docusaurus-markdown-example"},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/markdown-tests-mdx.mdx","unlisted":false},{"type":"mdx","permalink":"/tests/pages/navbar-dropdown-tests","source":"@site/_dogfooding/_pages tests/navbar-dropdown-tests.mdx","title":"navbar-dropdown-tests","description":"1. Make sure that the theme switcher is placed immediately after the language switcher in the navbar.","frontMatter":{},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/navbar-dropdown-tests.mdx","unlisted":false},{"type":"mdx","permalink":"/tests/pages/page-toc-tests","source":"@site/_dogfooding/_pages tests/page-toc-tests.mdx","frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":4},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/page-toc-tests.mdx","unlisted":false},{"type":"mdx","permalink":"/tests/pages/seo","source":"@site/_dogfooding/_pages tests/seo.md","title":"custom SEO title","description":"custom SEO description","frontMatter":{"title":"custom SEO title","description":"custom SEO description","keywords":["custom","keywords"],"image":"./local-image.png"},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/seo.md","unlisted":false},{"type":"mdx","permalink":"/tests/pages/tabs-tests","source":"@site/_dogfooding/_pages tests/tabs-tests.mdx","title":"Tabs tests","description":"Tabs with dynamic default value","frontMatter":{},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/tabs-tests.mdx","unlisted":false},{"type":"mdx","permalink":"/tests/pages/unlisted","source":"@site/_dogfooding/_pages tests/unlisted.mdx","title":"Unlisted page","description":"This unlisted page should always be directly accessible, but hidden from search engines","frontMatter":{"unlisted":true},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/unlisted.mdx","unlisted":true},{"type":"jsx","permalink":"/tests/pages/z-index-tests","source":"@site/_dogfooding/_pages tests/z-index-tests.tsx"},{"type":"jsx","permalink":"/tests/pages/react-18/","source":"@site/_dogfooding/_pages tests/react-18/index.tsx"}]},"docusaurus-plugin-debug":{},"docusaurus-plugin-google-gtag":{},"docusaurus-theme-classic":{},"docusaurus-theme-search-algolia":{},"changelog-plugin":{"default":{"blogSidebarTitle":"Changelog","blogPosts":[{"id":"/3.5.2","metadata":{"permalink":"/changelog/3.5.2","source":"@site/changelog/source/3.5.2.md","title":"3.5.2","description":"Bug Fix","date":"2024-08-13T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Christian Stangerup","alias":"cstangerup","url":"https://github.com/cstangerup","imageURL":"https://github.com/cstangerup.png","key":"cstangerup","page":null},{"name":"Gatien Boquet","alias":"GatienBoquet","url":"https://github.com/GatienBoquet","imageURL":"https://github.com/GatienBoquet.png","key":"GatienBoquet","page":null},{"name":"Josh Wong","alias":"josh-wong","url":"https://github.com/josh-wong","imageURL":"https://github.com/josh-wong.png","key":"josh-wong","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-08-13T20:00","authors":["cstangerup","GatienBoquet","josh-wong","slorber"]},"unlisted":false,"nextItem":{"title":"3.5.1","permalink":"/changelog/3.5.1"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-common`\\n - [#10397](https://github.com/facebook/docusaurus/pull/10397) fix(theme-common): restore useContextualSearchFilters public API for retrocompatibility ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#10391](https://github.com/facebook/docusaurus/pull/10391) fix(core): always alias React/ReactDOM to site dependency so that importing MDX from anywhere works ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-plugin-content-blog`\\n - [#10392](https://github.com/facebook/docusaurus/pull/10392) fix(create-docusaurus): Improve init templates blog setup + fix warnings ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#10390](https://github.com/facebook/docusaurus/pull/10390) fix(theme): Adjust blog authors line height to show descenders in lowercase letters (`g`, `j`, `p`, `q`, and `y`) ([@josh-wong](https://github.com/josh-wong))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`\\n - [#10394](https://github.com/facebook/docusaurus/pull/10394) fix(translations): change casing of some en labels ([@cstangerup](https://github.com/cstangerup))\\n\\n## :memo: Documentation\\n\\n- [#10393](https://github.com/facebook/docusaurus/pull/10393) docs(showcase): remove sites not using Docusaurus anymore ([@GatienBoquet](https://github.com/GatienBoquet))\\n\\n## :robot: Dependencies\\n\\n- [#10396](https://github.com/facebook/docusaurus/pull/10396) chore(deps): bump github/codeql-action from 3.25.13 to 3.26.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n\\n## Committers: 4\\n\\n- Christian Stangerup ([@cstangerup](https://github.com/cstangerup))\\n- Gatien Boquet ([@GatienBoquet](https://github.com/GatienBoquet))\\n- Josh Wong ([@josh-wong](https://github.com/josh-wong))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))"},{"id":"/3.5.1","metadata":{"permalink":"/changelog/3.5.1","source":"@site/changelog/source/3.5.1.md","title":"3.5.1","description":"Bug Fix","date":"2024-08-09T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Sunghyun Cho","alias":"anaclumos","url":"https://github.com/anaclumos","imageURL":"https://github.com/anaclumos.png","key":"anaclumos","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-08-09T20:00","authors":["anaclumos","slorber"]},"unlisted":false,"prevItem":{"title":"3.5.2","permalink":"/changelog/3.5.2"},"nextItem":{"title":"3.5.0","permalink":"/changelog/3.5.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-search-algolia`\\n - [#10384](https://github.com/facebook/docusaurus/pull/10384) fix(core): algolia context import ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-search-algolia`\\n - [#10382](https://github.com/facebook/docusaurus/pull/10382) fix(theme-algolia): useDocusaurusContext import error ([@anaclumos](https://github.com/anaclumos))\\n\\n## Committers: 2\\n\\n- Sunghyun Cho ([@anaclumos](https://github.com/anaclumos))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))"},{"id":"/3.5.0","metadata":{"permalink":"/changelog/3.5.0","source":"@site/changelog/source/3.5.0.md","title":"3.5.0","description":"New Feature","date":"2024-08-09T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Alice Zhao","alias":"alicelovescake","url":"https://github.com/alicelovescake","imageURL":"https://github.com/alicelovescake.png","key":"alicelovescake","page":null},{"name":"Ashiq Firoz","alias":"ashiq-firoz","url":"https://github.com/ashiq-firoz","imageURL":"https://github.com/ashiq-firoz.png","key":"ashiq-firoz","page":null},{"name":"Mohammad Bagher Abiyat","alias":"Aslemammad","url":"https://github.com/Aslemammad","imageURL":"https://github.com/Aslemammad.png","key":"Aslemammad","page":null},{"name":"Bharatesh","alias":"bharateshwq","url":"https://github.com/bharateshwq","imageURL":"https://github.com/bharateshwq.png","key":"bharateshwq","page":null},{"name":"\uC815\uBCF4\uD604 Bohyun Jung","alias":"bohyunjung","url":"https://github.com/bohyunjung","imageURL":"https://github.com/bohyunjung.png","key":"bohyunjung","page":null},{"name":"Markus Tamm","alias":"chirbard","url":"https://github.com/chirbard","imageURL":"https://github.com/chirbard.png","key":"chirbard","page":null},{"name":"Daniel Li","alias":"d4nyll","url":"https://github.com/d4nyll","imageURL":"https://github.com/d4nyll.png","key":"d4nyll","page":null},{"name":"Dhaya","alias":"dhayab","url":"https://github.com/dhayab","imageURL":"https://github.com/dhayab.png","key":"dhayab","page":null},{"name":"franzd1","alias":"franzd1","url":"https://github.com/franzd1","imageURL":"https://github.com/franzd1.png","key":"franzd1","page":null},{"name":"Robin Otter","alias":"Gekd","url":"https://github.com/Gekd","imageURL":"https://github.com/Gekd.png","key":"Gekd","page":null},{"name":"Hichem Fantar","alias":"hichemfantar","url":"https://github.com/hichemfantar","imageURL":"https://github.com/hichemfantar.png","key":"hichemfantar","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Balthasar Hofer","alias":"lebalz","url":"https://github.com/lebalz","imageURL":"https://github.com/lebalz.png","key":"lebalz","page":null},{"name":"Max Schmitt","alias":"mxschmitt","url":"https://github.com/mxschmitt","imageURL":"https://github.com/mxschmitt.png","key":"mxschmitt","page":null},{"name":"ozaki","alias":"OzakIOne","url":"https://github.com/OzakIOne","imageURL":"https://github.com/OzakIOne.png","key":"OzakIOne","page":null},{"name":"Paneedah","alias":"Paneedah","url":"https://github.com/Paneedah","imageURL":"https://github.com/Paneedah.png","key":"Paneedah","page":null},{"name":"Aaron Chen","alias":"pjchender","url":"https://github.com/pjchender","imageURL":"https://github.com/pjchender.png","key":"pjchender","page":null},{"name":"Priyadi Iman Nurcahyo","alias":"priyadi","url":"https://github.com/priyadi","imageURL":"https://github.com/priyadi.png","key":"priyadi","page":null},{"name":"Sergio","alias":"sergioalmela","url":"https://github.com/sergioalmela","imageURL":"https://github.com/sergioalmela.png","key":"sergioalmela","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tatsunori Uchino","alias":"tats-u","url":"https://github.com/tats-u","imageURL":"https://github.com/tats-u.png","key":"tats-u","page":null},{"name":"Julian V","alias":"ultimate","url":"https://github.com/ultimate","imageURL":"https://github.com/ultimate.png","key":"ultimate","page":null},{"name":"Rohan Thakur","alias":"Xebec19","url":"https://github.com/Xebec19","imageURL":"https://github.com/Xebec19.png","key":"Xebec19","page":null},{"name":"yujonglee","alias":"yujonglee","url":"https://github.com/yujonglee","imageURL":"https://github.com/yujonglee.png","key":"yujonglee","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-08-09T19:00","authors":["alicelovescake","ashiq-firoz","Aslemammad","bharateshwq","bohyunjung","chirbard","d4nyll","dhayab","franzd1","Gekd","hichemfantar","johnnyreilly","Josh-Cena","lebalz","mxschmitt","OzakIOne","Paneedah","pjchender","priyadi","sergioalmela","slorber","tats-u","ultimate","Xebec19","yujonglee"]},"unlisted":false,"prevItem":{"title":"3.5.1","permalink":"/changelog/3.5.1"},"nextItem":{"title":"3.4.0","permalink":"/changelog/3.4.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-blog`\\n - [#10375](https://github.com/facebook/docusaurus/pull/10375) feat(blog): add `onUntruncatedBlogPosts` blog options ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`\\n - [#10376](https://github.com/facebook/docusaurus/pull/10376) feat(theme): show unlisted/draft banners in dev mode ([@OzakIOne](https://github.com/OzakIOne))\\n- `create-docusaurus`, `docusaurus-plugin-content-blog`\\n - [#9252](https://github.com/facebook/docusaurus/pull/9252) feat(blog): add feed xlst options to render beautiful RSS and Atom feeds ([@Xebec19](https://github.com/Xebec19))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`, `docusaurus-utils`\\n - [#10216](https://github.com/facebook/docusaurus/pull/10216) feat(blog): authors page ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-theme-translations`\\n - [#10339](https://github.com/facebook/docusaurus/pull/10339) feat(translation): add Estonian default translation ([@chirbard](https://github.com/chirbard))\\n - [#10325](https://github.com/facebook/docusaurus/pull/10325) feat(translations): Indonesian translation ([@priyadi](https://github.com/priyadi))\\n- `docusaurus-mdx-loader`\\n - [#10335](https://github.com/facebook/docusaurus/pull/10335) feat(mdx-loader): wrap mdx content title (`# Title`) in `<header>` for concistency ([@OzakIOne](https://github.com/OzakIOne))\\n- `create-docusaurus`, `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-utils`\\n - [#10222](https://github.com/facebook/docusaurus/pull/10222) feat(blog): author header social icons ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-plugin-vercel-analytics`, `docusaurus-types`, `docusaurus`\\n - [#10286](https://github.com/facebook/docusaurus/pull/10286) feat(core): allow plugins to self-disable by returning null ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#10252](https://github.com/facebook/docusaurus/pull/10252) feat(blog): group sidebar items by year (`themeConfig.blog.sidebar.groupByYear`) ([@alicelovescake](https://github.com/alicelovescake))\\n- `docusaurus-plugin-content-blog`, `docusaurus-utils`\\n - [#10224](https://github.com/facebook/docusaurus/pull/10224) feat(blog): warn duplicate and inline authors ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils-validation`\\n - [#10241](https://github.com/facebook/docusaurus/pull/10241) feat(mdx): support recma plugins ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-translations`\\n - [#10344](https://github.com/facebook/docusaurus/pull/10344) fix(translations): fix wrong Estonian (et) translations and typos ([@Gekd](https://github.com/Gekd))\\n - [#10360](https://github.com/facebook/docusaurus/pull/10360) fix(translations): Fix and Improve Spanish translations ([@sergioalmela](https://github.com/sergioalmela))\\n - [#10235](https://github.com/facebook/docusaurus/pull/10235) fix(theme-translation): add missing German (de) theme.admonition translations ([@franzd1](https://github.com/franzd1))\\n- `docusaurus-theme-search-algolia`\\n - [#10342](https://github.com/facebook/docusaurus/pull/10342) fix(search): fix algolia search ignore ctrl + F in search input ([@mxschmitt](https://github.com/mxschmitt))\\n- `docusaurus-plugin-content-docs`\\n - [#10324](https://github.com/facebook/docusaurus/pull/10324) fix(docs): the _category_.json description attribute should display on generated index pages ([@bharateshwq](https://github.com/bharateshwq))\\n - [#10309](https://github.com/facebook/docusaurus/pull/10309) fix(theme): docsVersionDropdown navbar item not showing the appropriate version ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus`\\n - [#10368](https://github.com/facebook/docusaurus/pull/10368) fix(cli): Fix bad docusaurus CLI behavior on for --version, -V, --help, -h ([@ashiq-firoz](https://github.com/ashiq-firoz))\\n - [#10311](https://github.com/facebook/docusaurus/pull/10311) fix(core): revert wrong anchor link implementation change ([@slorber](https://github.com/slorber))\\n - [#10239](https://github.com/facebook/docusaurus/pull/10239) fix(core): fail fast if plugin has no name ([@slorber](https://github.com/slorber))\\n - [#10225](https://github.com/facebook/docusaurus/pull/10225) fix(core): fix sites unable to start/build without a static dir ([@slorber](https://github.com/slorber))\\n - [#10223](https://github.com/facebook/docusaurus/pull/10223) fix: escape period ([@d4nyll](https://github.com/d4nyll))\\n- `docusaurus-theme-classic`\\n - [#10288](https://github.com/facebook/docusaurus/pull/10288) fix(theme): fix DocsVersionDropdownNavbarItem version link target ([@slorber](https://github.com/slorber))\\n - [#10219](https://github.com/facebook/docusaurus/pull/10219) fix(theme): ignored className attribute on lazy loaded TabItem ([@lebalz](https://github.com/lebalz))\\n- `docusaurus-utils`\\n - [#10240](https://github.com/facebook/docusaurus/pull/10240) fix(markdown): mdx-code-block should support intentation ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-translations`\\n - [#10257](https://github.com/facebook/docusaurus/pull/10257) chore(theme-translations): add more Traditional Chinese(zh-Hant) translations ([@pjchender](https://github.com/pjchender))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#10361](https://github.com/facebook/docusaurus/pull/10361) docs: rename @getcanary/docusaurus-pagefind in docs ([@yujonglee](https://github.com/yujonglee))\\n - [#10345](https://github.com/facebook/docusaurus/pull/10345) docs: Add @getcanary/docusaurus-pagefind in docs ([@yujonglee](https://github.com/yujonglee))\\n - [#10337](https://github.com/facebook/docusaurus/pull/10337) docs: fix default value for `docRootComponent` ([@ultimate](https://github.com/ultimate))\\n - [#10310](https://github.com/facebook/docusaurus/pull/10310) docs: remove deprecated partial toc warning ([@slorber](https://github.com/slorber))\\n - [#10245](https://github.com/facebook/docusaurus/pull/10245) docs: add emoji for consistency ([@Paneedah](https://github.com/Paneedah))\\n - [#10180](https://github.com/facebook/docusaurus/pull/10180) docs: backport #10173 to v3.3 + v3.4 & revise the content ([@tats-u](https://github.com/tats-u))\\n - [#10233](https://github.com/facebook/docusaurus/pull/10233) docs(search): update docsearch api url ([@dhayab](https://github.com/dhayab))\\n- `docusaurus-plugin-google-gtag`\\n - [#10338](https://github.com/facebook/docusaurus/pull/10338) docs(plugin-google-gtag): replace the broken Google Developers links with valid ones ([@bohyunjung](https://github.com/bohyunjung))\\n\\n## :robot: Dependencies\\n\\n- [#10330](https://github.com/facebook/docusaurus/pull/10330) chore(deps): bump github/codeql-action from 3.25.12 to 3.25.13 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10299](https://github.com/facebook/docusaurus/pull/10299) chore(deps): bump actions/dependency-review-action from 4.3.3 to 4.3.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10300](https://github.com/facebook/docusaurus/pull/10300) chore(deps): bump github/codeql-action from 3.25.11 to 3.25.12 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10259](https://github.com/facebook/docusaurus/pull/10259) chore(deps): bump github/codeql-action from 3.25.10 to 3.25.11 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10247](https://github.com/facebook/docusaurus/pull/10247) chore(deps): bump treosh/lighthouse-ci-action from 11.4.0 to 12.1.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10226](https://github.com/facebook/docusaurus/pull/10226) chore(deps): bump github/codeql-action from 3.25.8 to 3.25.10 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10227](https://github.com/facebook/docusaurus/pull/10227) chore(deps): bump ws from 7.5.9 to 7.5.10 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10210](https://github.com/facebook/docusaurus/pull/10210) chore(deps): bump braces from 3.0.2 to 3.0.3 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10209](https://github.com/facebook/docusaurus/pull/10209) chore(deps): bump actions/dependency-review-action from 4.3.2 to 4.3.3 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10208](https://github.com/facebook/docusaurus/pull/10208) chore(deps): bump github/codeql-action from 3.25.7 to 3.25.8 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10195](https://github.com/facebook/docusaurus/pull/10195) chore(deps): bump github/codeql-action from 3.25.6 to 3.25.7 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n\\n## :wrench: Maintenance\\n\\n- Other\\n - [#10369](https://github.com/facebook/docusaurus/pull/10369) feat(ci): continuous releases for main and PRs with pkg.pr.new ([@Aslemammad](https://github.com/Aslemammad))\\n- `docusaurus-theme-classic`\\n - [#10343](https://github.com/facebook/docusaurus/pull/10343) chore(deps): update infima npm dependency to version 0.2.0-alpha.44 ([@hichemfantar](https://github.com/hichemfantar))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`\\n - [#10316](https://github.com/facebook/docusaurus/pull/10316) refactor(docs): theme-common shouldn\'t depend on docs content ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#10313](https://github.com/facebook/docusaurus/pull/10313) refactor(blog): theme-common shouldn\'t depend on blog content plugins ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-plugin-vercel-analytics`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`, `stylelint-copyright`\\n - [#10256](https://github.com/facebook/docusaurus/pull/10256) chore: simplify TypeScript configs, use TS 5.5 configDir placeholder ([@slorber](https://github.com/slorber))\\n\\n## Committers: 25\\n\\n- Aaron Chen ([@pjchender](https://github.com/pjchender))\\n- Alice Zhao ([@alicelovescake](https://github.com/alicelovescake))\\n- Ashiq Firoz ([@ashiq-firoz](https://github.com/ashiq-firoz))\\n- Balthasar Hofer ([@lebalz](https://github.com/lebalz))\\n- Bharatesh ([@bharateshwq](https://github.com/bharateshwq))\\n- Daniel Li ([@d4nyll](https://github.com/d4nyll))\\n- Dhaya ([@dhayab](https://github.com/dhayab))\\n- Hichem Fantar ([@hichemfantar](https://github.com/hichemfantar))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Julian V ([@ultimate](https://github.com/ultimate))\\n- Markus Tamm ([@chirbard](https://github.com/chirbard))\\n- Max Schmitt ([@mxschmitt](https://github.com/mxschmitt))\\n- Mohammad Bagher Abiyat ([@Aslemammad](https://github.com/Aslemammad))\\n- Paneedah ([@Paneedah](https://github.com/Paneedah))\\n- Priyadi Iman Nurcahyo ([@priyadi](https://github.com/priyadi))\\n- Robin Otter ([@Gekd](https://github.com/Gekd))\\n- Rohan Thakur ([@Xebec19](https://github.com/Xebec19))\\n- Sergio ([@sergioalmela](https://github.com/sergioalmela))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tatsunori Uchino ([@tats-u](https://github.com/tats-u))\\n- [@franzd1](https://github.com/franzd1)\\n- ozaki ([@OzakIOne](https://github.com/OzakIOne))\\n- yujonglee ([@yujonglee](https://github.com/yujonglee))\\n- \uC815\uBCF4\uD604 Bohyun Jung ([@bohyunjung](https://github.com/bohyunjung))"},{"id":"/3.4.0","metadata":{"permalink":"/changelog/3.4.0","source":"@site/changelog/source/3.4.0.md","title":"3.4.0","description":"New Feature","date":"2024-05-31T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Azzedine E.","alias":"Arsero","url":"https://github.com/Arsero","imageURL":"https://github.com/Arsero.png","key":"Arsero","page":null},{"name":"CodeDoctor","alias":"CodeDoctorDE","url":"https://github.com/CodeDoctorDE","imageURL":"https://github.com/CodeDoctorDE.png","key":"CodeDoctorDE","page":null},{"name":"Mikey O\'Toole","alias":"homotechsual","url":"https://github.com/homotechsual","imageURL":"https://github.com/homotechsual.png","key":"homotechsual","page":null},{"name":"Mahri Ilmedova","alias":"ilmedova","url":"https://github.com/ilmedova","imageURL":"https://github.com/ilmedova.png","key":"ilmedova","page":null},{"name":"Nguy\u1EC5n Th\xe0nh Nam","alias":"namnguyenthanhwork","url":"https://github.com/namnguyenthanhwork","imageURL":"https://github.com/namnguyenthanhwork.png","key":"namnguyenthanhwork","page":null},{"name":"Nick Coughlin","alias":"ncoughlin","url":"https://github.com/ncoughlin","imageURL":"https://github.com/ncoughlin.png","key":"ncoughlin","page":null},{"name":"ozaki","alias":"OzakIOne","url":"https://github.com/OzakIOne","imageURL":"https://github.com/OzakIOne.png","key":"OzakIOne","page":null},{"name":"Petar_mc","alias":"PetarMc1","url":"https://github.com/PetarMc1","imageURL":"https://github.com/PetarMc1.png","key":"PetarMc1","page":null},{"name":"Yongmin Hong","alias":"revi","url":"https://github.com/revi","imageURL":"https://github.com/revi.png","key":"revi","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tatsunori Uchino","alias":"tats-u","url":"https://github.com/tats-u","imageURL":"https://github.com/tats-u.png","key":"tats-u","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-05-31T20:00","authors":["Arsero","CodeDoctorDE","homotechsual","ilmedova","namnguyenthanhwork","ncoughlin","OzakIOne","PetarMc1","revi","slorber","tats-u"]},"unlisted":false,"prevItem":{"title":"3.5.0","permalink":"/changelog/3.5.0"},"nextItem":{"title":"3.3.2","permalink":"/changelog/3.3.2"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `create-docusaurus`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils-validation`, `docusaurus-utils`\\n - [#10137](https://github.com/facebook/docusaurus/pull/10137) feat(docs, blog): add support for `tags.yml`, predefined list of tags ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-theme-translations`\\n - [#10151](https://github.com/facebook/docusaurus/pull/10151) feat(theme-translations): Added Turkmen (tk) default theme translations ([@ilmedova](https://github.com/ilmedova))\\n - [#10111](https://github.com/facebook/docusaurus/pull/10111) feat(theme-translations): Add Bulgarian default theme translations (bg) ([@PetarMc1](https://github.com/PetarMc1))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#9859](https://github.com/facebook/docusaurus/pull/9859) feat(core): hash router option - browse site offline (experimental) ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus`\\n - [#10121](https://github.com/facebook/docusaurus/pull/10121) feat(core): site storage config options (experimental) ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#10185](https://github.com/facebook/docusaurus/pull/10185) fix(docs, blog): Markdown link resolution does not support hot reload ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-search-algolia`\\n - [#10178](https://github.com/facebook/docusaurus/pull/10178) fix(theme): SearchPage should respect `contextualSearch: false` setting ([@ncoughlin](https://github.com/ncoughlin))\\n - [#10164](https://github.com/facebook/docusaurus/pull/10164) fix(search): fix algolia search container bug ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils`\\n - [#10168](https://github.com/facebook/docusaurus/pull/10168) fix(mdx-loader): resolve Markdown/MDX links with Remark instead of RegExp ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-translations`\\n - [#10165](https://github.com/facebook/docusaurus/pull/10165) fix(theme-translation): add missing Korean (ko) theme translations ([@revi](https://github.com/revi))\\n - [#10157](https://github.com/facebook/docusaurus/pull/10157) fix(theme-translations): complete Vietnamese theme translations ([@namnguyenthanhwork](https://github.com/namnguyenthanhwork))\\n- `docusaurus`\\n - [#10145](https://github.com/facebook/docusaurus/pull/10145) fix(core): fix serve workaround regexp ([@slorber](https://github.com/slorber))\\n - [#10142](https://github.com/facebook/docusaurus/pull/10142) fix(core): fix `docusaurus serve` broken for assets when using trailingSlash ([@slorber](https://github.com/slorber))\\n - [#10130](https://github.com/facebook/docusaurus/pull/10130) fix(core): the broken anchor checker should not be sensitive pathname trailing slashes ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#10144](https://github.com/facebook/docusaurus/pull/10144) fix(theme): fix announcement bar layout shift due to missing storage key namespace ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#10132](https://github.com/facebook/docusaurus/pull/10132) fix(core): `configurePostCss()` should run after `configureWebpack()` ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`, `docusaurus`\\n - [#10131](https://github.com/facebook/docusaurus/pull/10131) fix(core): codegen should generate unique route prop filenames ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-translations`\\n - [#10118](https://github.com/facebook/docusaurus/pull/10118) fix(theme-translations): fix missing pluralization for label DocCard.categoryDescription.plurals ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- [#10176](https://github.com/facebook/docusaurus/pull/10176) docs: add community plugin docusaurus-graph ([@Arsero](https://github.com/Arsero))\\n- [#10173](https://github.com/facebook/docusaurus/pull/10173) docs: improve how to use `<details>` ([@tats-u](https://github.com/tats-u))\\n- [#10167](https://github.com/facebook/docusaurus/pull/10167) docs: suggest using `{<...>...</...>}` if don\'t use Markdown in migra\u2026 ([@tats-u](https://github.com/tats-u))\\n- [#10143](https://github.com/facebook/docusaurus/pull/10143) docs: recommend users to remove hast-util-is-element in migration to v3 ([@tats-u](https://github.com/tats-u))\\n- [#10124](https://github.com/facebook/docusaurus/pull/10124) docs: v3 prepare your site blog post should point users to the upgrade guide ([@homotechsual](https://github.com/homotechsual))\\n\\n## :robot: Dependencies\\n\\n- [#10155](https://github.com/facebook/docusaurus/pull/10155) chore(deps): bump peaceiris/actions-gh-pages from 3 to 4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10154](https://github.com/facebook/docusaurus/pull/10154) chore(deps): bump github/codeql-action from 2.13.4 to 3.25.6 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10112](https://github.com/facebook/docusaurus/pull/10112) chore(deps): bump actions/dependency-review-action from 4.3.1 to 4.3.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n\\n## Committers: 11\\n\\n- Azzedine E. ([@Arsero](https://github.com/Arsero))\\n- CodeDoctor ([@CodeDoctorDE](https://github.com/CodeDoctorDE))\\n- Mahri Ilmedova ([@ilmedova](https://github.com/ilmedova))\\n- Mikey O\'Toole ([@homotechsual](https://github.com/homotechsual))\\n- Nguy\u1EC5n Th\xe0nh Nam ([@namnguyenthanhwork](https://github.com/namnguyenthanhwork))\\n- Nick Coughlin ([@ncoughlin](https://github.com/ncoughlin))\\n- Petar_mc ([@PetarMc1](https://github.com/PetarMc1))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tatsunori Uchino ([@tats-u](https://github.com/tats-u))\\n- Yongmin ([@revi](https://github.com/revi))\\n- ozaki ([@OzakIOne](https://github.com/OzakIOne))"},{"id":"/3.3.2","metadata":{"permalink":"/changelog/3.3.2","source":"@site/changelog/source/3.3.2.md","title":"3.3.2","description":"Bug Fix","date":"2024-05-03T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-05-03T20:00","authors":["slorber"]},"unlisted":false,"prevItem":{"title":"3.4.0","permalink":"/changelog/3.4.0"},"nextItem":{"title":"3.3.1","permalink":"/changelog/3.3.1"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-module-type-aliases`, `docusaurus`\\n - [#10103](https://github.com/facebook/docusaurus/pull/10103) fix(core): do not recreate ReactDOM Root, fix React warning on hot reload ([@slorber](https://github.com/slorber))\\n\\n## Committers: 1\\n\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))"},{"id":"/3.3.1","metadata":{"permalink":"/changelog/3.3.1","source":"@site/changelog/source/3.3.1.md","title":"3.3.1","description":"Failed release","date":"2024-05-03T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2024-05-03T19:00"},"unlisted":false,"prevItem":{"title":"3.3.2","permalink":"/changelog/3.3.2"},"nextItem":{"title":"3.3.0","permalink":"/changelog/3.3.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\nFailed release"},{"id":"/3.3.0","metadata":{"permalink":"/changelog/3.3.0","source":"@site/changelog/source/3.3.0.md","title":"3.3.0","description":"New Feature","date":"2024-05-03T18:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Abdullah Saud","alias":"Abdullah-03","url":"https://github.com/Abdullah-03","imageURL":"https://github.com/Abdullah-03.png","key":"Abdullah-03","page":null},{"name":"Andrea Mazzucchelli","alias":"andrmaz","url":"https://github.com/andrmaz","imageURL":"https://github.com/andrmaz.png","key":"andrmaz","page":null},{"name":"Daniel Li","alias":"d4nyll","url":"https://github.com/d4nyll","imageURL":"https://github.com/d4nyll.png","key":"d4nyll","page":null},{"name":"Can Eldem","alias":"eldemcan","url":"https://github.com/eldemcan","imageURL":"https://github.com/eldemcan.png","key":"eldemcan","page":null},{"name":"Guille","alias":"gagdiez","url":"https://github.com/gagdiez","imageURL":"https://github.com/gagdiez.png","key":"gagdiez","page":null},{"name":"H3NR1KE","alias":"h3nr1ke","url":"https://github.com/h3nr1ke","imageURL":"https://github.com/h3nr1ke.png","key":"h3nr1ke","page":null},{"name":"Mikey O\'Toole","alias":"homotechsual","url":"https://github.com/homotechsual","imageURL":"https://github.com/homotechsual.png","key":"homotechsual","page":null},{"name":"Alexey Ivanov","alias":"iAdramelk","url":"https://github.com/iAdramelk","imageURL":"https://github.com/iAdramelk.png","key":"iAdramelk","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Kai Hoffman","alias":"kaihoffman","url":"https://github.com/kaihoffman","imageURL":"https://github.com/kaihoffman.png","key":"kaihoffman","page":null},{"name":"Balthasar Hofer","alias":"lebalz","url":"https://github.com/lebalz","imageURL":"https://github.com/lebalz.png","key":"lebalz","page":null},{"name":"ozaki","alias":"OzakIOne","url":"https://github.com/OzakIOne","imageURL":"https://github.com/OzakIOne.png","key":"OzakIOne","page":null},{"name":"Bairui Su","alias":"pearmini","url":"https://github.com/pearmini","imageURL":"https://github.com/pearmini.png","key":"pearmini","page":null},{"name":"Alexander Sandor","alias":"SandPod","url":"https://github.com/SandPod","imageURL":"https://github.com/SandPod.png","key":"SandPod","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tommaso Sotte","alias":"tomsotte","url":"https://github.com/tomsotte","imageURL":"https://github.com/tomsotte.png","key":"tomsotte","page":null},{"name":"Tomy Hsieh","alias":"tomy0000000","url":"https://github.com/tomy0000000","imageURL":"https://github.com/tomy0000000.png","key":"tomy0000000","page":null},{"name":"Virgil993","alias":"Virgil993","url":"https://github.com/Virgil993","imageURL":"https://github.com/Virgil993.png","key":"Virgil993","page":null},{"name":"volcanofr","alias":"volcanofr","url":"https://github.com/volcanofr","imageURL":"https://github.com/volcanofr.png","key":"volcanofr","page":null},{"name":"Zwyx","alias":"Zwyx","url":"https://github.com/Zwyx","imageURL":"https://github.com/Zwyx.png","key":"Zwyx","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-05-03T18:00","authors":["Abdullah-03","andrmaz","d4nyll","eldemcan","gagdiez","h3nr1ke","homotechsual","iAdramelk","johnnyreilly","kaihoffman","lebalz","OzakIOne","pearmini","SandPod","slorber","tomsotte","tomy0000000","Virgil993","volcanofr","Zwyx"]},"unlisted":false,"prevItem":{"title":"3.3.1","permalink":"/changelog/3.3.1"},"nextItem":{"title":"3.2.1","permalink":"/changelog/3.2.1"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-sitemap`\\n - [#10083](https://github.com/facebook/docusaurus/pull/10083) feat: add createSitemapItems hook ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `docusaurus-mdx-loader`, `docusaurus-types`, `docusaurus`\\n - [#10064](https://github.com/facebook/docusaurus/pull/10064) feat(core): add new site config option `siteConfig.markdown.anchors.maintainCase` ([@iAdramelk](https://github.com/iAdramelk))\\n- `docusaurus`\\n - [#9767](https://github.com/facebook/docusaurus/pull/9767) feat(cli): docusaurus deploy should support a --target-dir option ([@SandPod](https://github.com/SandPod))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-types`, `docusaurus`\\n - [#10042](https://github.com/facebook/docusaurus/pull/10042) feat(core): simplify plugin API, support route.props ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#10032](https://github.com/facebook/docusaurus/pull/10032) feat(pages): add LastUpdateAuthor & LastUpdateTime & editUrl ([@OzakIOne](https://github.com/OzakIOne))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-cssnano-preset`, `docusaurus-utils`, `docusaurus`\\n - [#10092](https://github.com/facebook/docusaurus/pull/10092) chore: Upgrade svgr / svgo / cssnano ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#10091](https://github.com/facebook/docusaurus/pull/10091) fix(theme): `<Tabs>` props should allow overriding defaults ([@gagdiez](https://github.com/gagdiez))\\n - [#10080](https://github.com/facebook/docusaurus/pull/10080) fix(theme): `<Admonition>` should render properly without heading/icon ([@andrmaz](https://github.com/andrmaz))\\n- `docusaurus`\\n - [#10090](https://github.com/facebook/docusaurus/pull/10090) fix(core): `docusaurus serve` redirects should include the site `/baseUrl/` prefix ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus`\\n - [#10079](https://github.com/facebook/docusaurus/pull/10079) fix: handle React v18.3 warnings ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-translations`\\n - [#10070](https://github.com/facebook/docusaurus/pull/10070) fix(theme-translations): add missing theme translations for pt-BR ([@h3nr1ke](https://github.com/h3nr1ke))\\n - [#10051](https://github.com/facebook/docusaurus/pull/10051) fix(theme-translations): correct label for tip admonition in italian ([@tomsotte](https://github.com/tomsotte))\\n- `docusaurus-theme-search-algolia`\\n - [#10048](https://github.com/facebook/docusaurus/pull/10048) fix(algolia): add insights property on Algolia Theme Config object TS definition ([@Virgil993](https://github.com/Virgil993))\\n- `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#10054](https://github.com/facebook/docusaurus/pull/10054) fix(core): sortRoutes shouldn\'t have a default baseUrl value, this led to a bug ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#10025](https://github.com/facebook/docusaurus/pull/10025) fix(docs): sidebar item label impact the pagination label of docs ([@Abdullah-03](https://github.com/Abdullah-03))\\n- `docusaurus-utils`\\n - [#10022](https://github.com/facebook/docusaurus/pull/10022) fix(utils): getFileCommitDate should support `log.showSignature=true` ([@slorber](https://github.com/slorber))\\n\\n## :running: Performance\\n\\n- `docusaurus`\\n - [#10060](https://github.com/facebook/docusaurus/pull/10060) refactor(core): optimize App entrypoint, it should not re-render when navigating ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#10061](https://github.com/facebook/docusaurus/pull/10061) refactor(theme): simplify CSS solution to solve empty search container ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-common`\\n - [#10023](https://github.com/facebook/docusaurus/pull/10023) refactor(website): refactor showcase components ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- [#10096](https://github.com/facebook/docusaurus/pull/10096) docs: Fix `d\xe9ja` to `d\xe9j\xe0` in `swizzling.mdx` ([@Zwyx](https://github.com/Zwyx))\\n- [#10093](https://github.com/facebook/docusaurus/pull/10093) docs: Fix dead Typesense links ([@kaihoffman](https://github.com/kaihoffman))\\n- [#10085](https://github.com/facebook/docusaurus/pull/10085) docs: make `ThemedImage` example work out of the box ([@lebalz](https://github.com/lebalz))\\n- [#10082](https://github.com/facebook/docusaurus/pull/10082) docs: add note regarding ts extension for config file. ([@homotechsual](https://github.com/homotechsual))\\n- [#9490](https://github.com/facebook/docusaurus/pull/9490) docs: add troubleshooting steps to migration/upgrade page ([@homotechsual](https://github.com/homotechsual))\\n- [#10056](https://github.com/facebook/docusaurus/pull/10056) docs(search): Algolia troubleshooting section for index configuration problems ([@slorber](https://github.com/slorber))\\n- [#10039](https://github.com/facebook/docusaurus/pull/10039) docs: visit is a named export of unist-util-visit ([@pearmini](https://github.com/pearmini))\\n- [#10020](https://github.com/facebook/docusaurus/pull/10020) docs: Fix wrong path example ([@tomy0000000](https://github.com/tomy0000000))\\n- [#10011](https://github.com/facebook/docusaurus/pull/10011) docs: add stormkit as deployment platform ([@eldemcan](https://github.com/eldemcan))\\n\\n## :robot: Dependencies\\n\\n- [#10097](https://github.com/facebook/docusaurus/pull/10097) chore(deps): bump ejs from 3.1.9 to 3.1.10 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10089](https://github.com/facebook/docusaurus/pull/10089) chore(deps): bump actions/dependency-review-action from 4.2.5 to 4.3.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10088](https://github.com/facebook/docusaurus/pull/10088) chore(deps): bump preactjs/compressed-size-action from 2.5.0 to 2.6.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10034](https://github.com/facebook/docusaurus/pull/10034) chore(deps): bump semver from 7.3.4 to 7.6.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n\\n## :wrench: Maintenance\\n\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-plugin-vercel-analytics`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`, `stylelint-copyright`\\n - [#10065](https://github.com/facebook/docusaurus/pull/10065) refactor: extract base TS client config + upgrade TS + refactor TS setup ([@slorber](https://github.com/slorber))\\n- Other\\n - [#10063](https://github.com/facebook/docusaurus/pull/10063) test(e2e): TypeCheck website/starter in min/max range of TS versions ([@slorber](https://github.com/slorber))\\n - [#10049](https://github.com/facebook/docusaurus/pull/10049) fix(website): fix website manifest.json name \\"Docusaurus v2\\" to just \\"Docusaurus\\" ([@volcanofr](https://github.com/volcanofr))\\n\\n## Committers: 20\\n\\n- Abdullah Saud ([@Abdullah-03](https://github.com/Abdullah-03))\\n- Alexander Sandor ([@SandPod](https://github.com/SandPod))\\n- Alexey Ivanov ([@iAdramelk](https://github.com/iAdramelk))\\n- Andrea Mazzucchelli ([@andrmaz](https://github.com/andrmaz))\\n- Bairui Su ([@pearmini](https://github.com/pearmini))\\n- Balthasar Hofer ([@lebalz](https://github.com/lebalz))\\n- Can Eldem ([@eldemcan](https://github.com/eldemcan))\\n- Daniel Li ([@d4nyll](https://github.com/d4nyll))\\n- Guille ([@gagdiez](https://github.com/gagdiez))\\n- H3NR1KE ([@h3nr1ke](https://github.com/h3nr1ke))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Kai Hoffman ([@kaihoffman](https://github.com/kaihoffman))\\n- Mikey O\'Toole ([@homotechsual](https://github.com/homotechsual))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tommaso Sotte ([@tomsotte](https://github.com/tomsotte))\\n- Tomy Hsieh ([@tomy0000000](https://github.com/tomy0000000))\\n- Zwyx ([@Zwyx](https://github.com/Zwyx))\\n- [@Virgil993](https://github.com/Virgil993)\\n- [@volcanofr](https://github.com/volcanofr)\\n- ozaki ([@OzakIOne](https://github.com/OzakIOne))"},{"id":"/3.2.1","metadata":{"permalink":"/changelog/3.2.1","source":"@site/changelog/source/3.2.1.md","title":"3.2.1","description":"Bug Fix","date":"2024-04-04T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"ozaki","alias":"OzakIOne","url":"https://github.com/OzakIOne","imageURL":"https://github.com/OzakIOne.png","key":"OzakIOne","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-04-04T20:00","authors":["OzakIOne","slorber"]},"unlisted":false,"prevItem":{"title":"3.3.0","permalink":"/changelog/3.3.0"},"nextItem":{"title":"3.2.0","permalink":"/changelog/3.2.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#10012](https://github.com/facebook/docusaurus/pull/10012) fix(core): fix configurePostCss v3.2 regression ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- [#9980](https://github.com/facebook/docusaurus/pull/9980) docs: remove old github action description ([@OzakIOne](https://github.com/OzakIOne))\\n- [#10014](https://github.com/facebook/docusaurus/pull/10014) docs(website): fix SEO docs headTags example ([@OzakIOne](https://github.com/OzakIOne))\\n- [#10004](https://github.com/facebook/docusaurus/pull/10004) docs(website): Announce v3.2 on website/homepage ([@slorber](https://github.com/slorber))\\n\\n## :robot: Dependencies\\n\\n- [#10006](https://github.com/facebook/docusaurus/pull/10006) chore(deps): bump actions/dependency-review-action from 4.2.4 to 4.2.5 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n\\n## Committers: 2\\n\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- ozaki ([@OzakIOne](https://github.com/OzakIOne))"},{"id":"/3.2.0","metadata":{"permalink":"/changelog/3.2.0","source":"@site/changelog/source/3.2.0.md","title":"3.2.0","description":"New Feature","date":"2024-03-29T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Josue [4tro] A","alias":"4troDev","url":"https://github.com/4troDev","imageURL":"https://github.com/4troDev.png","key":"4troDev","page":null},{"name":"Anatoly Kopyl","alias":"anatolykopyl","url":"https://github.com/anatolykopyl","imageURL":"https://github.com/anatolykopyl.png","key":"anatolykopyl","page":null},{"name":"axel7083","alias":"axel7083","url":"https://github.com/axel7083","imageURL":"https://github.com/axel7083.png","key":"axel7083","page":null},{"name":"\u041D\u0443\u0440\u0438\u043B\u044C \u0411\u0430\u0440\u0430\u0434\u0443\u0441\u043E\u0432","alias":"baradusov","url":"https://github.com/baradusov","imageURL":"https://github.com/baradusov.png","key":"baradusov","page":null},{"name":"Chris Bateman","alias":"chris-bateman","url":"https://github.com/chris-bateman","imageURL":"https://github.com/chris-bateman.png","key":"chris-bateman","page":null},{"name":"Zed Spencer-Milnes","alias":"GingerGeek","url":"https://github.com/GingerGeek","imageURL":"https://github.com/GingerGeek.png","key":"GingerGeek","page":null},{"name":"Hallbj\xf6rn Magn\xfasson","alias":"Hallinn","url":"https://github.com/Hallinn","imageURL":"https://github.com/Hallinn.png","key":"Hallinn","page":null},{"name":"Liviu Ionescu","alias":"ilg-ul","url":"https://github.com/ilg-ul","imageURL":"https://github.com/ilg-ul.png","key":"ilg-ul","page":null},{"name":"n4n5","alias":"Its-Just-Nans","url":"https://github.com/Its-Just-Nans","imageURL":"https://github.com/Its-Just-Nans.png","key":"Its-Just-Nans","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"krinza.eth","alias":"kaymomin","url":"https://github.com/kaymomin","imageURL":"https://github.com/kaymomin.png","key":"kaymomin","page":null},{"name":"Max Schmitt","alias":"mxschmitt","url":"https://github.com/mxschmitt","imageURL":"https://github.com/mxschmitt.png","key":"mxschmitt","page":null},{"name":"Aolin","alias":"Oreoxmt","url":"https://github.com/Oreoxmt","imageURL":"https://github.com/Oreoxmt.png","key":"Oreoxmt","page":null},{"name":"ozaki","alias":"OzakIOne","url":"https://github.com/OzakIOne","imageURL":"https://github.com/OzakIOne.png","key":"OzakIOne","page":null},{"name":"Rafael Martins","alias":"Rafael-Martins","url":"https://github.com/Rafael-Martins","imageURL":"https://github.com/Rafael-Martins.png","key":"Rafael-Martins","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"suenryu","alias":"Suenaga-Ryuya","url":"https://github.com/Suenaga-Ryuya","imageURL":"https://github.com/Suenaga-Ryuya.png","key":"Suenaga-Ryuya","page":null},{"name":"Fafowora Sunkanmi","alias":"sunkanmii","url":"https://github.com/sunkanmii","imageURL":"https://github.com/sunkanmii.png","key":"sunkanmii","page":null},{"name":"Vahid Naderi","alias":"VahidNaderi","url":"https://github.com/VahidNaderi","imageURL":"https://github.com/VahidNaderi.png","key":"VahidNaderi","page":null},{"name":"Vlad Nestorov","alias":"vlad-nestorov","url":"https://github.com/vlad-nestorov","imageURL":"https://github.com/vlad-nestorov.png","key":"vlad-nestorov","page":null},{"name":"\u7FCA\u5C0F\u4E45","alias":"yixiaojiu","url":"https://github.com/yixiaojiu","imageURL":"https://github.com/yixiaojiu.png","key":"yixiaojiu","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-03-29T20:00","authors":["4troDev","anatolykopyl","axel7083","baradusov","chris-bateman","GingerGeek","Hallinn","ilg-ul","Its-Just-Nans","johnnyreilly","Josh-Cena","kaymomin","mxschmitt","Oreoxmt","OzakIOne","Rafael-Martins","slorber","Suenaga-Ryuya","sunkanmii","VahidNaderi","vlad-nestorov","yixiaojiu"]},"unlisted":false,"prevItem":{"title":"3.2.1","permalink":"/changelog/3.2.1"},"nextItem":{"title":"3.1.1","permalink":"/changelog/3.1.1"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#9954](https://github.com/facebook/docusaurus/pull/9954) feat(sitemap): add support for \\"lastmod\\" ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus-utils`\\n - [#9912](https://github.com/facebook/docusaurus/pull/9912) feat(blog): add LastUpdateAuthor & LastUpdateTime ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-plugin-debug`, `docusaurus-types`, `docusaurus`\\n - [#9931](https://github.com/facebook/docusaurus/pull/9931) feat(core): add new plugin allContentLoaded lifecycle ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-translations`\\n - [#9928](https://github.com/facebook/docusaurus/pull/9928) feat(theme-translations) Icelandic (is) ([@Hallinn](https://github.com/Hallinn))\\n- `docusaurus-plugin-content-blog`\\n - [#9886](https://github.com/facebook/docusaurus/pull/9886) feat(blog): allow processing blog posts through a processBlogPosts function ([@OzakIOne](https://github.com/OzakIOne))\\n - [#9838](https://github.com/facebook/docusaurus/pull/9838) feat(blog): add blog pageBasePath plugin option ([@ilg-ul](https://github.com/ilg-ul))\\n- `docusaurus`\\n - [#9681](https://github.com/facebook/docusaurus/pull/9681) feat(swizzle): ask user preferred language if no language CLI option provided ([@yixiaojiu](https://github.com/yixiaojiu))\\n- `create-docusaurus`, `docusaurus-utils`\\n - [#9442](https://github.com/facebook/docusaurus/pull/9442) feat(create-docusaurus): ask user for preferred language when no language CLI option provided ([@Rafael-Martins](https://github.com/Rafael-Martins))\\n- `docusaurus-plugin-vercel-analytics`\\n - [#9687](https://github.com/facebook/docusaurus/pull/9687) feat(plugin-vercel-analytics): add new vercel analytics plugin ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-mdx-loader`\\n - [#9684](https://github.com/facebook/docusaurus/pull/9684) feat(mdx-loader): the table-of-contents should display toc/headings of imported MDX partials ([@anatolykopyl](https://github.com/anatolykopyl))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-mdx-loader`\\n - [#9999](https://github.com/facebook/docusaurus/pull/9999) fix(mdx-loader): Ignore contentTitle coming after Markdown thematicBreak ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-search-algolia`\\n - [#9945](https://github.com/facebook/docusaurus/pull/9945) fix(a11y): move focus algolia-search focus back to search input on Escape ([@mxschmitt](https://github.com/mxschmitt))\\n- `docusaurus-plugin-content-blog`\\n - [#9920](https://github.com/facebook/docusaurus/pull/9920) fix(blog): apply trailing slash to blog feed ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-theme-classic`\\n - [#9944](https://github.com/facebook/docusaurus/pull/9944) fix(theme): improve a11y of DocSidebarItemCategory expand/collapsed button ([@mxschmitt](https://github.com/mxschmitt))\\n- `docusaurus-theme-translations`\\n - [#9915](https://github.com/facebook/docusaurus/pull/9915) fix(theme-translations): complete and modify Japanese translations ([@Suenaga-Ryuya](https://github.com/Suenaga-Ryuya))\\n - [#9910](https://github.com/facebook/docusaurus/pull/9910) fix(theme-translations): add Japanese translations ([@Suenaga-Ryuya](https://github.com/Suenaga-Ryuya))\\n - [#9872](https://github.com/facebook/docusaurus/pull/9872) fix(theme-translations): complete and improve Spanish theme translations ([@4troDev](https://github.com/4troDev))\\n - [#9812](https://github.com/facebook/docusaurus/pull/9812) fix(i18n): add missing theme translations for fa locale ([@VahidNaderi](https://github.com/VahidNaderi))\\n- `docusaurus-utils`\\n - [#9897](https://github.com/facebook/docusaurus/pull/9897) fix(mdx-loader): mdx-code-block should support CRLF ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#9878](https://github.com/facebook/docusaurus/pull/9878) fix(core): fix default i18n calendar used, infer it from locale if possible ([@slorber](https://github.com/slorber))\\n - [#9852](https://github.com/facebook/docusaurus/pull/9852) fix(core): ensure core error boundary is able to render theme layout ([@slorber](https://github.com/slorber))\\n- `docusaurus-remark-plugin-npm2yarn`\\n - [#9861](https://github.com/facebook/docusaurus/pull/9861) fix(remark-npm2yarn): update npm-to-yarn from 2.0.0 to 2.2.1, fix pnpm extra args syntax ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-theme-classic`, `docusaurus-theme-translations`\\n - [#9851](https://github.com/facebook/docusaurus/pull/9851) fix(theme-classic): should use plurals for category items description ([@baradusov](https://github.com/baradusov))\\n\\n## :running: Performance\\n\\n- `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#9975](https://github.com/facebook/docusaurus/pull/9975) refactor(core): improve dev perf, fine-grained site reloads - part 3 ([@slorber](https://github.com/slorber))\\n- `docusaurus-types`, `docusaurus`\\n - [#9968](https://github.com/facebook/docusaurus/pull/9968) refactor(core): improve dev perf, fine-grained site reloads - part2 ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-types`, `docusaurus`\\n - [#9903](https://github.com/facebook/docusaurus/pull/9903) refactor(core): improve dev perf, fine-grained site reloads - part1 ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#9890](https://github.com/facebook/docusaurus/pull/9890) perf: optimize getFileCommitDate, make it async ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#9798](https://github.com/facebook/docusaurus/pull/9798) refactor(core): internalize, simplify and optimize the SSG logic ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#9868](https://github.com/facebook/docusaurus/pull/9868) refactor(theme): dates should be formatted on the client-side instead of in nodejs code ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`\\n - [#9669](https://github.com/facebook/docusaurus/pull/9669) refactor(theme): use JSON-LD instead of microdata for blog structured data ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `docusaurus-plugin-content-docs`\\n - [#9839](https://github.com/facebook/docusaurus/pull/9839) refactor(blog): improve doc global data hook error message + add doc warning to blogOnly mode ([@OzakIOne](https://github.com/OzakIOne))\\n\\n## :memo: Documentation\\n\\n- [#9937](https://github.com/facebook/docusaurus/pull/9937) docs: use official GitHub Action to deploy to GitHub Pages ([@vlad-nestorov](https://github.com/vlad-nestorov))\\n- [#9971](https://github.com/facebook/docusaurus/pull/9971) docs: replace VuePress by VitePress on tool comparison section ([@sunkanmii](https://github.com/sunkanmii))\\n- [#9914](https://github.com/facebook/docusaurus/pull/9914) docs: update legacy MDX v1 links to markdown links ([@OzakIOne](https://github.com/OzakIOne))\\n- [#9913](https://github.com/facebook/docusaurus/pull/9913) docs: update legacy MDX v1 links to markdown links ([@OzakIOne](https://github.com/OzakIOne))\\n- [#9906](https://github.com/facebook/docusaurus/pull/9906) docs: emphasize \\"index slug\\" convention ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#9877](https://github.com/facebook/docusaurus/pull/9877) docs: fix typos in deployment.mdx ([@Oreoxmt](https://github.com/Oreoxmt))\\n- [#9845](https://github.com/facebook/docusaurus/pull/9845) docs: typo ([@OzakIOne](https://github.com/OzakIOne))\\n- [#9816](https://github.com/facebook/docusaurus/pull/9816) docs: Add docs for Mermaid Component ([@Its-Just-Nans](https://github.com/Its-Just-Nans))\\n\\n## :robot: Dependencies\\n\\n- [#9981](https://github.com/facebook/docusaurus/pull/9981) chore(deps): bump actions/dependency-review-action from 4.1.3 to 4.2.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9982](https://github.com/facebook/docusaurus/pull/9982) chore(deps): bump katex from 0.16.8 to 0.16.10 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9983](https://github.com/facebook/docusaurus/pull/9983) chore(deps): bump express from 4.18.2 to 4.19.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9977](https://github.com/facebook/docusaurus/pull/9977) chore(deps): bump webpack-dev-middleware from 5.3.3 to 5.3.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9958](https://github.com/facebook/docusaurus/pull/9958) chore(deps): bump follow-redirects from 1.15.4 to 1.15.6 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9892](https://github.com/facebook/docusaurus/pull/9892) chore(deps): bump actions/dependency-review-action from 4.1.2 to 4.1.3 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9869](https://github.com/facebook/docusaurus/pull/9869) chore(deps): bump actions/dependency-review-action from 4.0.0 to 4.1.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9874](https://github.com/facebook/docusaurus/pull/9874) chore(deps): bump ip from 2.0.0 to 2.0.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9843](https://github.com/facebook/docusaurus/pull/9843) chore(deps): bump actions/setup-node from 4.0.1 to 4.0.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9824](https://github.com/facebook/docusaurus/pull/9824) chore(deps): bump treosh/lighthouse-ci-action from 10.1.0 to 11.4.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9823](https://github.com/facebook/docusaurus/pull/9823) chore(deps): bump marocchino/sticky-pull-request-comment from 2.8.0 to 2.9.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n\\n## :wrench: Maintenance\\n\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-docs`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#9972](https://github.com/facebook/docusaurus/pull/9972) refactor(utils): remove duplicated function ([@OzakIOne](https://github.com/OzakIOne))\\n- Other\\n - [#9965](https://github.com/facebook/docusaurus/pull/9965) refactor(website): organise blog posts by year ([@GingerGeek](https://github.com/GingerGeek))\\n - [#9865](https://github.com/facebook/docusaurus/pull/9865) chore(website): update @crowdin/crowdin-api-client ([@chris-bateman](https://github.com/chris-bateman))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils`\\n - [#9963](https://github.com/facebook/docusaurus/pull/9963) refactor(docs,blog): last update timestamp should be in milliseconds instead of seconds ([@slorber](https://github.com/slorber))\\n\\n## Committers: 22\\n\\n- Aolin ([@Oreoxmt](https://github.com/Oreoxmt))\\n- Anatoly Kopyl ([@anatolykopyl](https://github.com/anatolykopyl))\\n- Chris Bateman ([@chris-bateman](https://github.com/chris-bateman))\\n- Fafowora Sunkanmi ([@sunkanmii](https://github.com/sunkanmii))\\n- Hallbj\xf6rn Magn\xfasson ([@Hallinn](https://github.com/Hallinn))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Josue [4tro] A ([@4troDev](https://github.com/4troDev))\\n- Liviu Ionescu ([@ilg-ul](https://github.com/ilg-ul))\\n- Max Schmitt ([@mxschmitt](https://github.com/mxschmitt))\\n- Rafael Martins ([@Rafael-Martins](https://github.com/Rafael-Martins))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Vahid Naderi ([@VahidNaderi](https://github.com/VahidNaderi))\\n- Vlad Nestorov ([@vlad-nestorov](https://github.com/vlad-nestorov))\\n- Zed Spencer-Milnes ([@GingerGeek](https://github.com/GingerGeek))\\n- axel7083 ([@axel7083](https://github.com/axel7083))\\n- krinza.eth ([@kaymomin](https://github.com/kaymomin))\\n- n4n5 ([@Its-Just-Nans](https://github.com/Its-Just-Nans))\\n- ozaki ([@OzakIOne](https://github.com/OzakIOne))\\n- suenryu ([@Suenaga-Ryuya](https://github.com/Suenaga-Ryuya))\\n- \u041D\u0443\u0440\u0438\u043B\u044C \u0411\u0430\u0440\u0430\u0434\u0443\u0441\u043E\u0432 ([@baradusov](https://github.com/baradusov))\\n- \u7FCA\u5C0F\u4E45 ([@yixiaojiu](https://github.com/yixiaojiu))"},{"id":"/3.1.1","metadata":{"permalink":"/changelog/3.1.1","source":"@site/changelog/source/3.1.1.md","title":"3.1.1","description":"Bug Fix","date":"2024-01-26T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"dawei-wang","alias":"dawei-wang","url":"https://github.com/dawei-wang","imageURL":"https://github.com/dawei-wang.png","key":"dawei-wang","page":null},{"name":"eitsupi","alias":"eitsupi","url":"https://github.com/eitsupi","imageURL":"https://github.com/eitsupi.png","key":"eitsupi","page":null},{"name":"Jack Robson","alias":"jack-robson","url":"https://github.com/jack-robson","imageURL":"https://github.com/jack-robson.png","key":"jack-robson","page":null},{"name":"Sanjaiyan Parthipan","alias":"sanjaiyan-dev","url":"https://github.com/sanjaiyan-dev","imageURL":"https://github.com/sanjaiyan-dev.png","key":"sanjaiyan-dev","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tatsunori Uchino","alias":"tats-u","url":"https://github.com/tats-u","imageURL":"https://github.com/tats-u.png","key":"tats-u","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-01-26T20:00","authors":["dawei-wang","eitsupi","jack-robson","sanjaiyan-dev","slorber","tats-u"]},"unlisted":false,"prevItem":{"title":"3.2.0","permalink":"/changelog/3.2.0"},"nextItem":{"title":"3.1.0","permalink":"/changelog/3.1.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-types`, `docusaurus`\\n - [#9791](https://github.com/facebook/docusaurus/pull/9791) fix(core): broken links optimization behaves differently than non-optimized logic ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#9788](https://github.com/facebook/docusaurus/pull/9788) fix(core): links with target \\"\\\\_blank\\" should no be checked by the broken link checker ([@slorber](https://github.com/slorber))\\n - [#9407](https://github.com/facebook/docusaurus/pull/9407) fix(core): conditionally include `hostname` parameter when using\u2026 ([@jack-robson](https://github.com/jack-robson))\\n- `docusaurus-utils`\\n - [#9776](https://github.com/facebook/docusaurus/pull/9776) fix(mdx-loader): allow spaces before `mdx-code-block` info string ([@eitsupi](https://github.com/eitsupi))\\n- `create-docusaurus`\\n - [#9783](https://github.com/facebook/docusaurus/pull/9783) fix(create-docusaurus): fix typo in init template sample docs ([@dawei-wang](https://github.com/dawei-wang))\\n- `docusaurus-theme-common`\\n - [#9727](https://github.com/facebook/docusaurus/pull/9727) fix(theme-common): fix missing code block MagicComments style in Visual Basic (.NET) 16 ([@tats-u](https://github.com/tats-u))\\n- `docusaurus-theme-classic`, `docusaurus-theme-mermaid`\\n - [#9733](https://github.com/facebook/docusaurus/pull/9733) fix: remove old useless mdx typedefs ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`\\n - [#9732](https://github.com/facebook/docusaurus/pull/9732) fix(core): various broken anchor link fixes ([@slorber](https://github.com/slorber))\\n\\n## :running: Performance\\n\\n- `docusaurus`\\n - [#9778](https://github.com/facebook/docusaurus/pull/9778) perf(core): optimize broken links checker ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#9470](https://github.com/facebook/docusaurus/pull/9470) polish(theme): MDX images should use async decoding ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))\\n\\n## Committers: 6\\n\\n- Jack Robson ([@jack-robson](https://github.com/jack-robson))\\n- Sanjaiyan Parthipan ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tatsunori Uchino ([@tats-u](https://github.com/tats-u))\\n- [@dawei-wang](https://github.com/dawei-wang)\\n- [@eitsupi](https://github.com/eitsupi)"},{"id":"/3.1.0","metadata":{"permalink":"/changelog/3.1.0","source":"@site/changelog/source/3.1.0.md","title":"3.1.0","description":"New Feature","date":"2024-01-05T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"axmmisaka","alias":"axmmisaka","url":"https://github.com/axmmisaka","imageURL":"https://github.com/axmmisaka.png","key":"axmmisaka","page":null},{"name":"c0h1b4","alias":"c0h1b4","url":"https://github.com/c0h1b4","imageURL":"https://github.com/c0h1b4.png","key":"c0h1b4","page":null},{"name":"Janessa Garrow","alias":"jgarrow","url":"https://github.com/jgarrow","imageURL":"https://github.com/jgarrow.png","key":"jgarrow","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"ozaki","alias":"OzakIOne","url":"https://github.com/OzakIOne","imageURL":"https://github.com/OzakIOne.png","key":"OzakIOne","page":null},{"name":"Simen Bekkhus","alias":"SimenB","url":"https://github.com/SimenB","imageURL":"https://github.com/SimenB.png","key":"SimenB","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tatsunori Uchino","alias":"tats-u","url":"https://github.com/tats-u","imageURL":"https://github.com/tats-u.png","key":"tats-u","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-01-05T20:00","authors":["axmmisaka","c0h1b4","jgarrow","Josh-Cena","OzakIOne","SimenB","slorber","tats-u"]},"unlisted":false,"prevItem":{"title":"3.1.1","permalink":"/changelog/3.1.1"},"nextItem":{"title":"3.0.1","permalink":"/changelog/3.0.1"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-mdx-loader`, `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#9528](https://github.com/facebook/docusaurus/pull/9528) feat(core): make broken link checker detect broken anchors - add `onBrokenAnchors` config ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-mdx-loader`, `docusaurus-types`, `docusaurus`\\n - [#9674](https://github.com/facebook/docusaurus/pull/9674) feat(mdx-loader): add support for siteConfig.markdown.remarkRehypeOptions ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-common`\\n - [#9671](https://github.com/facebook/docusaurus/pull/9671) feat(theme-common): code block MagicComments support for (Visual) Basic/Batch/Fortran/COBOL/ML ([@tats-u](https://github.com/tats-u))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#9624](https://github.com/facebook/docusaurus/pull/9624) feat: siteConfig.markdown.parseFrontMatter hook ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`\\n - [#9610](https://github.com/facebook/docusaurus/pull/9610) feat(core): enable port configuration via environment variable ([@OzakIOne](https://github.com/OzakIOne))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#9704](https://github.com/facebook/docusaurus/pull/9704) fix(theme): allow empty code blocks and live playgrounds ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`\\n - [#9696](https://github.com/facebook/docusaurus/pull/9696) fix(create-docusaurus): fix init template code blocks, and little improvements ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-pwa`\\n - [#9668](https://github.com/facebook/docusaurus/pull/9668) fix(pwa-plugin): upgrade workbox ([@SimenB](https://github.com/SimenB))\\n- `docusaurus`\\n - [#9648](https://github.com/facebook/docusaurus/pull/9648) fix(cli): output help when no conventional config + no subcommand ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-live-codeblock`\\n - [#9631](https://github.com/facebook/docusaurus/pull/9631) fix(live-codeblock): stabilize react-live transformCode callback, fix editor/preview desync ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`\\n - [#9617](https://github.com/facebook/docusaurus/pull/9617) fix(utils): Markdown link replacement with <> but no spaces ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`\\n - [#9612](https://github.com/facebook/docusaurus/pull/9612) fix(type-aliases): add `title` prop for imported inline SVG React components ([@axmmisaka](https://github.com/axmmisaka))\\n- `docusaurus-plugin-content-blog`\\n - [#9581](https://github.com/facebook/docusaurus/pull/9581) fix(content-blog): add baseUrl for author.image_url ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-theme-translations`\\n - [#9477](https://github.com/facebook/docusaurus/pull/9477) fix(i18n): complete translations for theme-common.json Brazilian Portuguese (pt-BR) ([@c0h1b4](https://github.com/c0h1b4))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-common`\\n - [#9335](https://github.com/facebook/docusaurus/pull/9335) refactor(theme-common): allow optional desktopBreakpoint param in useWindowSize ([@jgarrow](https://github.com/jgarrow))\\n\\n## :wrench: Maintenance\\n\\n- `docusaurus-theme-search-algolia`\\n - [#9604](https://github.com/facebook/docusaurus/pull/9604) chore: add lint autofix CI job ([@slorber](https://github.com/slorber))\\n\\n## Committers: 8\\n\\n- Janessa Garrow ([@jgarrow](https://github.com/jgarrow))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Simen Bekkhus ([@SimenB](https://github.com/SimenB))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tatsunori Uchino ([@tats-u](https://github.com/tats-u))\\n- [@c0h1b4](https://github.com/c0h1b4)\\n- axmmisaka ([@axmmisaka](https://github.com/axmmisaka))\\n- ozaki ([@OzakIOne](https://github.com/OzakIOne))"},{"id":"/3.0.1","metadata":{"permalink":"/changelog/3.0.1","source":"@site/changelog/source/3.0.1.md","title":"3.0.1","description":"Bug Fix","date":"2023-11-30T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Chongyi Zheng","alias":"harryzcy","url":"https://github.com/harryzcy","imageURL":"https://github.com/harryzcy.png","key":"harryzcy","page":null},{"name":"MCR Studio","alias":"mcrstudio","url":"https://github.com/mcrstudio","imageURL":"https://github.com/mcrstudio.png","key":"mcrstudio","page":null},{"name":"Nick Gerleman","alias":"NickGerleman","url":"https://github.com/NickGerleman","imageURL":"https://github.com/NickGerleman.png","key":"NickGerleman","page":null},{"name":"reece-white","alias":"reece-white","url":"https://github.com/reece-white","imageURL":"https://github.com/reece-white.png","key":"reece-white","page":null},{"name":"Shreesh Nautiyal","alias":"Shreesh09","url":"https://github.com/Shreesh09","imageURL":"https://github.com/Shreesh09.png","key":"Shreesh09","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2023-11-30T20:00","authors":["harryzcy","mcrstudio","NickGerleman","reece-white","Shreesh09","slorber"]},"unlisted":false,"prevItem":{"title":"3.1.0","permalink":"/changelog/3.1.0"},"nextItem":{"title":"3.0.0","permalink":"/changelog/3.0.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-utils`\\n - [#9570](https://github.com/facebook/docusaurus/pull/9570) fix: add v2 retrocompatible support for quoted admonitions ([@slorber](https://github.com/slorber))\\n - [#9535](https://github.com/facebook/docusaurus/pull/9535) fix: v3 admonitions should support v2 title syntax for nested admonitions ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#9567](https://github.com/facebook/docusaurus/pull/9567) fix(theme): upgrade prism-react-renderer, fix html script and style tag highlighting ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-common`\\n - [#9531](https://github.com/facebook/docusaurus/pull/9531) fix(theme): docs html sidebar items should always be visible ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#9530](https://github.com/facebook/docusaurus/pull/9530) fix(theme): fix firefox CSS :has() support bug ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`\\n - [#9487](https://github.com/facebook/docusaurus/pull/9487) fix(create-docusaurus): fix readme docusaurus 2 ref ([@slorber](https://github.com/slorber))\\n\\n## :robot: Dependencies\\n\\n- `docusaurus-plugin-debug`\\n - [#9566](https://github.com/facebook/docusaurus/pull/9566) chore(debug-plugin): migrate to a new maintained JSON Viewer ([@mcrstudio](https://github.com/mcrstudio))\\n- `create-docusaurus`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#9572](https://github.com/facebook/docusaurus/pull/9572) chore: upgrade prism-react-renderer to 2.3.0 to avoid older clsx ([@harryzcy](https://github.com/harryzcy))\\n - [#9567](https://github.com/facebook/docusaurus/pull/9567) fix(theme): upgrade prism-react-renderer, fix html script and style tag highlighting ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`\\n - [#9464](https://github.com/facebook/docusaurus/pull/9464) chore: Upgrade clsx to 2.0.0 ([@harryzcy](https://github.com/harryzcy))\\n- `docusaurus`\\n - [#9547](https://github.com/facebook/docusaurus/pull/9547) chore(core): replace `wait-on` dependency with custom lighter code ([@NickGerleman](https://github.com/NickGerleman))\\n- `docusaurus-plugin-pwa`, `docusaurus`\\n - [#9529](https://github.com/facebook/docusaurus/pull/9529) chore: ugrade babel dependencies to v7.23.3 ([@reece-white](https://github.com/reece-white))\\n\\n## Committers: 6\\n\\n- Chongyi Zheng ([@harryzcy](https://github.com/harryzcy))\\n- MCR Studio ([@mcrstudio](https://github.com/mcrstudio))\\n- Nick Gerleman ([@NickGerleman](https://github.com/NickGerleman))\\n- Shreesh Nautiyal ([@Shreesh09](https://github.com/Shreesh09))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- [@reece-white](https://github.com/reece-white)"},{"id":"/3.0.0","metadata":{"permalink":"/changelog/3.0.0","source":"@site/changelog/source/3.0.0.md","title":"3.0.0","description":"Breaking Change","date":"2023-10-31T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Wan Sim","alias":"0420syj","url":"https://github.com/0420syj","imageURL":"https://github.com/0420syj.png","key":"0420syj","page":null},{"name":"Abhinandan Wadhwa","alias":"abhinandanwadwa","url":"https://github.com/abhinandanwadwa","imageURL":"https://github.com/abhinandanwadwa.png","key":"abhinandanwadwa","page":null},{"name":"Abinash Satapathy","alias":"Abinashbunty","url":"https://github.com/Abinashbunty","imageURL":"https://github.com/Abinashbunty.png","key":"Abinashbunty","page":null},{"name":"Adam Patterson","alias":"adampatterson","url":"https://github.com/adampatterson","imageURL":"https://github.com/adampatterson.png","key":"adampatterson","page":null},{"name":"Adithya Krishna","alias":"adithyaakrishna","url":"https://github.com/adithyaakrishna","imageURL":"https://github.com/adithyaakrishna.png","key":"adithyaakrishna","page":null},{"name":"Hayden Hong","alias":"AFRUITPIE","url":"https://github.com/AFRUITPIE","imageURL":"https://github.com/AFRUITPIE.png","key":"AFRUITPIE","page":null},{"name":"Craigory Coppola","alias":"AgentEnder","url":"https://github.com/AgentEnder","imageURL":"https://github.com/AgentEnder.png","key":"AgentEnder","page":null},{"name":"Akshay Bhalotia","alias":"akshaybhalotia","url":"https://github.com/akshaybhalotia","imageURL":"https://github.com/akshaybhalotia.png","key":"akshaybhalotia","page":null},{"name":"allyw2002","alias":"allyw2002","url":"https://github.com/allyw2002","imageURL":"https://github.com/allyw2002.png","key":"allyw2002","page":null},{"name":"Ahmad Shrif","alias":"amdshrif","url":"https://github.com/amdshrif","imageURL":"https://github.com/amdshrif.png","key":"amdshrif","page":null},{"name":"Ahmed Mustafa Malik","alias":"amm98d","url":"https://github.com/amm98d","imageURL":"https://github.com/amm98d.png","key":"amm98d","page":null},{"name":"Sunghyun Cho","alias":"anaclumos","url":"https://github.com/anaclumos","imageURL":"https://github.com/anaclumos.png","key":"anaclumos","page":null},{"name":"Andrew Lyons","alias":"andrewnicols","url":"https://github.com/andrewnicols","imageURL":"https://github.com/andrewnicols.png","key":"andrewnicols","page":null},{"name":"Anton Kastritskii","alias":"antonk52","url":"https://github.com/antonk52","imageURL":"https://github.com/antonk52.png","key":"antonk52","page":null},{"name":"Antony Onipko","alias":"antonyoni","url":"https://github.com/antonyoni","imageURL":"https://github.com/antonyoni.png","key":"antonyoni","page":null},{"name":"Aqueeb","alias":"aqueeb","url":"https://github.com/aqueeb","imageURL":"https://github.com/aqueeb.png","key":"aqueeb","page":null},{"name":"Martin Adamko","alias":"attitude","url":"https://github.com/attitude","imageURL":"https://github.com/attitude.png","key":"attitude","page":null},{"name":"Billy Chan","alias":"billy1624","url":"https://github.com/billy1624","imageURL":"https://github.com/billy1624.png","key":"billy1624","page":null},{"name":"biplavmz","alias":"biplavmz","url":"https://github.com/biplavmz","imageURL":"https://github.com/biplavmz.png","key":"biplavmz","page":null},{"name":"bitpredator","alias":"bitpredator","url":"https://github.com/bitpredator","imageURL":"https://github.com/bitpredator.png","key":"bitpredator","page":null},{"name":"Joe Williams","alias":"BubbaJoe","url":"https://github.com/BubbaJoe","imageURL":"https://github.com/BubbaJoe.png","key":"BubbaJoe","page":null},{"name":"Dinh Bao Dang","alias":"chillinPanda","url":"https://github.com/chillinPanda","imageURL":"https://github.com/chillinPanda.png","key":"chillinPanda","page":null},{"name":"Bei Chu","alias":"chubei","url":"https://github.com/chubei","imageURL":"https://github.com/chubei.png","key":"chubei","page":null},{"name":"\u521D\u51AC","alias":"chudongvip","url":"https://github.com/chudongvip","imageURL":"https://github.com/chudongvip.png","key":"chudongvip","page":null},{"name":"Ryosuke Igarashi","alias":"cm-igarashi-ryosuke","url":"https://github.com/cm-igarashi-ryosuke","imageURL":"https://github.com/cm-igarashi-ryosuke.png","key":"cm-igarashi-ryosuke","page":null},{"name":"Colin McDonnell","alias":"colinhacks","url":"https://github.com/colinhacks","imageURL":"https://github.com/colinhacks.png","key":"colinhacks","page":null},{"name":"conlacda","alias":"conlacda","url":"https://github.com/conlacda","imageURL":"https://github.com/conlacda.png","key":"conlacda","page":null},{"name":"Dan Dascalescu","alias":"dandv","url":"https://github.com/dandv","imageURL":"https://github.com/dandv.png","key":"dandv","page":null},{"name":"Danilo Woznica","alias":"danilowoz","url":"https://github.com/danilowoz","imageURL":"https://github.com/danilowoz.png","key":"danilowoz","page":null},{"name":"Dan Roscigno","alias":"DanRoscigno","url":"https://github.com/DanRoscigno","imageURL":"https://github.com/DanRoscigno.png","key":"DanRoscigno","page":null},{"name":"David J. Felix","alias":"DavidJFelix","url":"https://github.com/DavidJFelix","imageURL":"https://github.com/DavidJFelix.png","key":"DavidJFelix","page":null},{"name":"dawei-wang","alias":"dawei-wang","url":"https://github.com/dawei-wang","imageURL":"https://github.com/dawei-wang.png","key":"dawei-wang","page":null},{"name":"Debbie O\'Brien","alias":"debs-obrien","url":"https://github.com/debs-obrien","imageURL":"https://github.com/debs-obrien.png","key":"debs-obrien","page":null},{"name":"Devansu Yadav","alias":"Devansu-Yadav","url":"https://github.com/Devansu-Yadav","imageURL":"https://github.com/Devansu-Yadav.png","key":"Devansu-Yadav","page":null},{"name":"Dongjoon Lee","alias":"Djunnni","url":"https://github.com/Djunnni","imageURL":"https://github.com/Djunnni.png","key":"Djunnni","page":null},{"name":"Dr-Electron","alias":"Dr-Electron","url":"https://github.com/Dr-Electron","imageURL":"https://github.com/Dr-Electron.png","key":"Dr-Electron","page":null},{"name":"Eduardo M\xednguez","alias":"e-minguez","url":"https://github.com/e-minguez","imageURL":"https://github.com/e-minguez.png","key":"e-minguez","page":null},{"name":"Gr\xe9gory Heitz","alias":"edno","url":"https://github.com/edno","imageURL":"https://github.com/edno.png","key":"edno","page":null},{"name":"FlorinaPacurar","alias":"FlorinaPacurar","url":"https://github.com/FlorinaPacurar","imageURL":"https://github.com/FlorinaPacurar.png","key":"FlorinaPacurar","page":null},{"name":"Charles Killer","alias":"Foosballfan","url":"https://github.com/Foosballfan","imageURL":"https://github.com/Foosballfan.png","key":"Foosballfan","page":null},{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},{"name":"Francesco Ciulla","alias":"FrancescoXX","url":"https://github.com/FrancescoXX","imageURL":"https://github.com/FrancescoXX.png","key":"FrancescoXX","page":null},{"name":"Fredrik Stave","alias":"fredrikstave","url":"https://github.com/fredrikstave","imageURL":"https://github.com/fredrikstave.png","key":"fredrikstave","page":null},{"name":"Fxpby","alias":"fxpby","url":"https://github.com/fxpby","imageURL":"https://github.com/fxpby.png","key":"fxpby","page":null},{"name":"Gabriel Csapo","alias":"gabrielcsapo","url":"https://github.com/gabrielcsapo","imageURL":"https://github.com/gabrielcsapo.png","key":"gabrielcsapo","page":null},{"name":"Alexander Nguyen","alias":"GalexyN","url":"https://github.com/GalexyN","imageURL":"https://github.com/GalexyN.png","key":"GalexyN","page":null},{"name":"Gustav Ton\xe9r","alias":"gazab","url":"https://github.com/gazab","imageURL":"https://github.com/gazab.png","key":"gazab","page":null},{"name":"Eunkwang Shin","alias":"gracefullight","url":"https://github.com/gracefullight","imageURL":"https://github.com/gracefullight.png","key":"gracefullight","page":null},{"name":"Greg Berg\xe9","alias":"gregberge","url":"https://github.com/gregberge","imageURL":"https://github.com/gregberge.png","key":"gregberge","page":null},{"name":"Chongyi Zheng","alias":"harryzcy","url":"https://github.com/harryzcy","imageURL":"https://github.com/harryzcy.png","key":"harryzcy","page":null},{"name":"Sujal Gupta","alias":"heysujal","url":"https://github.com/heysujal","imageURL":"https://github.com/heysujal.png","key":"heysujal","page":null},{"name":"Hidde de Vries","alias":"hidde","url":"https://github.com/hidde","imageURL":"https://github.com/hidde.png","key":"hidde","page":null},{"name":"Mikey O\'Toole","alias":"homotechsual","url":"https://github.com/homotechsual","imageURL":"https://github.com/homotechsual.png","key":"homotechsual","page":null},{"name":"Hyunseung","alias":"hslee2008","url":"https://github.com/hslee2008","imageURL":"https://github.com/hslee2008.png","key":"hslee2008","page":null},{"name":"Anna","alias":"HumbleDeer","url":"https://github.com/HumbleDeer","imageURL":"https://github.com/HumbleDeer.png","key":"HumbleDeer","page":null},{"name":"Coupy","alias":"HyeokjinKang","url":"https://github.com/HyeokjinKang","imageURL":"https://github.com/HyeokjinKang.png","key":"HyeokjinKang","page":null},{"name":"Jean Humann","alias":"jean-humann","url":"https://github.com/jean-humann","imageURL":"https://github.com/jean-humann.png","key":"jean-humann","page":null},{"name":"Jesper Engberg","alias":"jeengbe","url":"https://github.com/jeengbe","imageURL":"https://github.com/jeengbe.png","key":"jeengbe","page":null},{"name":"John Cao","alias":"jhcao23","url":"https://github.com/jhcao23","imageURL":"https://github.com/jhcao23.png","key":"jhcao23","page":null},{"name":"JJ Style","alias":"jj-style","url":"https://github.com/jj-style","imageURL":"https://github.com/jj-style.png","key":"jj-style","page":null},{"name":"Jody Heavener","alias":"jodyheavener","url":"https://github.com/jodyheavener","imageURL":"https://github.com/jodyheavener.png","key":"jodyheavener","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Viktor Malmedal","alias":"JohnVicke","url":"https://github.com/JohnVicke","imageURL":"https://github.com/JohnVicke.png","key":"JohnVicke","page":null},{"name":"Jorens Merenjanu","alias":"JorensM","url":"https://github.com/JorensM","imageURL":"https://github.com/JorensM.png","key":"JorensM","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Juan Picado","alias":"juanpicado","url":"https://github.com/juanpicado","imageURL":"https://github.com/juanpicado.png","key":"juanpicado","page":null},{"name":"0x24Karthick","alias":"KarthickSakthi","url":"https://github.com/KarthickSakthi","imageURL":"https://github.com/KarthickSakthi.png","key":"KarthickSakthi","page":null},{"name":"Serenus","alias":"Kesyau","url":"https://github.com/Kesyau","imageURL":"https://github.com/Kesyau.png","key":"Kesyau","page":null},{"name":"Naffy Dharni","alias":"knownasnaffy","url":"https://github.com/knownasnaffy","imageURL":"https://github.com/knownasnaffy.png","key":"knownasnaffy","page":null},{"name":"la55u","alias":"la55u","url":"https://github.com/la55u","imageURL":"https://github.com/la55u.png","key":"la55u","page":null},{"name":"Lane Goolsby","alias":"lanegoolsby","url":"https://github.com/lanegoolsby","imageURL":"https://github.com/lanegoolsby.png","key":"lanegoolsby","page":null},{"name":"Oleksandr Fediashov","alias":"layershifter","url":"https://github.com/layershifter","imageURL":"https://github.com/layershifter.png","key":"layershifter","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Lorenzo Lewis","alias":"lorenzolewis","url":"https://github.com/lorenzolewis","imageURL":"https://github.com/lorenzolewis.png","key":"lorenzolewis","page":null},{"name":"Silvestar Bistrovi\u0107","alias":"maliMirkec","url":"https://github.com/maliMirkec","imageURL":"https://github.com/maliMirkec.png","key":"maliMirkec","page":null},{"name":"Manuel","alias":"manuel-rw","url":"https://github.com/manuel-rw","imageURL":"https://github.com/manuel-rw.png","key":"manuel-rw","page":null},{"name":"Markshawn","alias":"MarkShawn2020","url":"https://github.com/MarkShawn2020","imageURL":"https://github.com/MarkShawn2020.png","key":"MarkShawn2020","page":null},{"name":"mcallisto","alias":"mcallisto","url":"https://github.com/mcallisto","imageURL":"https://github.com/mcallisto.png","key":"mcallisto","page":null},{"name":"Michael Remediakis","alias":"mickremedi","url":"https://github.com/mickremedi","imageURL":"https://github.com/mickremedi.png","key":"mickremedi","page":null},{"name":"ModupeD","alias":"ModupeD","url":"https://github.com/ModupeD","imageURL":"https://github.com/ModupeD.png","key":"ModupeD","page":null},{"name":"Mogyuchi","alias":"Mogyuchi","url":"https://github.com/Mogyuchi","imageURL":"https://github.com/Mogyuchi.png","key":"Mogyuchi","page":null},{"name":"Mu-Jing-Tsai","alias":"moojing","url":"https://github.com/moojing","imageURL":"https://github.com/moojing.png","key":"moojing","page":null},{"name":"Tom Mrazauskas","alias":"mrazauskas","url":"https://github.com/mrazauskas","imageURL":"https://github.com/mrazauskas.png","key":"mrazauskas","page":null},{"name":"Marco Stroppel","alias":"mstroppel","url":"https://github.com/mstroppel","imageURL":"https://github.com/mstroppel.png","key":"mstroppel","page":null},{"name":"Max Schmitt","alias":"mxschmitt","url":"https://github.com/mxschmitt","imageURL":"https://github.com/mxschmitt.png","key":"mxschmitt","page":null},{"name":"Mysterious_Dev","alias":"Mysterious-Dev","url":"https://github.com/Mysterious-Dev","imageURL":"https://github.com/Mysterious-Dev.png","key":"Mysterious-Dev","page":null},{"name":"Naman Garg","alias":"NamanGarg2075","url":"https://github.com/NamanGarg2075","imageURL":"https://github.com/NamanGarg2075.png","key":"NamanGarg2075","page":null},{"name":"Nathaniel Tucker","alias":"ntucker","url":"https://github.com/ntucker","imageURL":"https://github.com/ntucker.png","key":"ntucker","page":null},{"name":"Oluwatobi Sofela","alias":"oluwatobiss","url":"https://github.com/oluwatobiss","imageURL":"https://github.com/oluwatobiss.png","key":"oluwatobiss","page":null},{"name":"Aolin","alias":"Oreoxmt","url":"https://github.com/Oreoxmt","imageURL":"https://github.com/Oreoxmt.png","key":"Oreoxmt","page":null},{"name":"ozaki","alias":"OzakIOne","url":"https://github.com/OzakIOne","imageURL":"https://github.com/OzakIOne.png","key":"OzakIOne","page":null},{"name":"Maciek Palmowski","alias":"palmiak","url":"https://github.com/palmiak","imageURL":"https://github.com/palmiak.png","key":"palmiak","page":null},{"name":"Paul Razvan Berg","alias":"PaulRBerg","url":"https://github.com/PaulRBerg","imageURL":"https://github.com/PaulRBerg.png","key":"PaulRBerg","page":null},{"name":"Pinaki Bhattacharjee","alias":"pinakipb2","url":"https://github.com/pinakipb2","imageURL":"https://github.com/pinakipb2.png","key":"pinakipb2","page":null},{"name":"prateekbytes","alias":"prateekbytes","url":"https://github.com/prateekbytes","imageURL":"https://github.com/prateekbytes.png","key":"prateekbytes","page":null},{"name":"qwerzl","alias":"qwerzl","url":"https://github.com/qwerzl","imageURL":"https://github.com/qwerzl.png","key":"qwerzl","page":null},{"name":"Rashid","alias":"rashidmya","url":"https://github.com/rashidmya","imageURL":"https://github.com/rashidmya.png","key":"rashidmya","page":null},{"name":"Kolja","alias":"razzeee","url":"https://github.com/razzeee","imageURL":"https://github.com/razzeee.png","key":"razzeee","page":null},{"name":"Rapha\xebl Barbazza","alias":"rbarbazz","url":"https://github.com/rbarbazz","imageURL":"https://github.com/rbarbazz.png","key":"rbarbazz","page":null},{"name":"Bruce Song","alias":"recallwei","url":"https://github.com/recallwei","imageURL":"https://github.com/recallwei.png","key":"recallwei","page":null},{"name":"Chua Chee How","alias":"rojakcoder","url":"https://github.com/rojakcoder","imageURL":"https://github.com/rojakcoder.png","key":"rojakcoder","page":null},{"name":"rsteele6","alias":"rsteele6","url":"https://github.com/rsteele6","imageURL":"https://github.com/rsteele6.png","key":"rsteele6","page":null},{"name":"SADIK KUZU","alias":"sadikkuzu","url":"https://github.com/sadikkuzu","imageURL":"https://github.com/sadikkuzu.png","key":"sadikkuzu","page":null},{"name":"Sainan","alias":"Sainan","url":"https://github.com/Sainan","imageURL":"https://github.com/Sainan.png","key":"Sainan","page":null},{"name":"samatt14","alias":"samatt14","url":"https://github.com/samatt14","imageURL":"https://github.com/samatt14.png","key":"samatt14","page":null},{"name":"Sanjaiyan Parthipan","alias":"sanjaiyan-dev","url":"https://github.com/sanjaiyan-dev","imageURL":"https://github.com/sanjaiyan-dev.png","key":"sanjaiyan-dev","page":null},{"name":"Alex","alias":"sashashura","url":"https://github.com/sashashura","imageURL":"https://github.com/sashashura.png","key":"sashashura","page":null},{"name":"Marie","alias":"schneegansm","url":"https://github.com/schneegansm","imageURL":"https://github.com/schneegansm.png","key":"schneegansm","page":null},{"name":"Marco Kuper","alias":"scubamaggo","url":"https://github.com/scubamaggo","imageURL":"https://github.com/scubamaggo.png","key":"scubamaggo","page":null},{"name":"Shahriar","alias":"ShahriarKh","url":"https://github.com/ShahriarKh","imageURL":"https://github.com/ShahriarKh.png","key":"ShahriarKh","page":null},{"name":"Shashank Kumar","alias":"shawshankkumar","url":"https://github.com/shawshankkumar","imageURL":"https://github.com/shawshankkumar.png","key":"shawshankkumar","page":null},{"name":"Cl\xe9ment Vannicatte","alias":"shortcuts","url":"https://github.com/shortcuts","imageURL":"https://github.com/shortcuts.png","key":"shortcuts","page":null},{"name":"Shun Wakatsuki","alias":"shwaka","url":"https://github.com/shwaka","imageURL":"https://github.com/shwaka.png","key":"shwaka","page":null},{"name":"Gareth Dwyer","alias":"sixhobbits","url":"https://github.com/sixhobbits","imageURL":"https://github.com/sixhobbits.png","key":"sixhobbits","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Surav Shrestha","alias":"suravshrestha","url":"https://github.com/suravshrestha","imageURL":"https://github.com/suravshrestha.png","key":"suravshrestha","page":null},{"name":"sykp241095","alias":"sykp241095","url":"https://github.com/sykp241095","imageURL":"https://github.com/sykp241095.png","key":"sykp241095","page":null},{"name":"Tamal Anwar Chowdhury","alias":"tamalchowdhury","url":"https://github.com/tamalchowdhury","imageURL":"https://github.com/tamalchowdhury.png","key":"tamalchowdhury","page":null},{"name":"Tarun Chauhan","alias":"tarunrajput","url":"https://github.com/tarunrajput","imageURL":"https://github.com/tarunrajput.png","key":"tarunrajput","page":null},{"name":"Tatsunori Uchino","alias":"tats-u","url":"https://github.com/tats-u","imageURL":"https://github.com/tats-u.png","key":"tats-u","page":null},{"name":"Thad Guidry","alias":"thadguidry","url":"https://github.com/thadguidry","imageURL":"https://github.com/thadguidry.png","key":"thadguidry","page":null},{"name":"James Kerrane","alias":"thatrobotdev","url":"https://github.com/thatrobotdev","imageURL":"https://github.com/thatrobotdev.png","key":"thatrobotdev","page":null},{"name":"thedevwonder","alias":"thedevwonder","url":"https://github.com/thedevwonder","imageURL":"https://github.com/thedevwonder.png","key":"thedevwonder","page":null},{"name":"Andr\xe9s Villanueva","alias":"Villanuevand","url":"https://github.com/Villanuevand","imageURL":"https://github.com/Villanuevand.png","key":"Villanuevand","page":null},{"name":"VinceCYLiao","alias":"VinceCYLiao","url":"https://github.com/VinceCYLiao","imageURL":"https://github.com/VinceCYLiao.png","key":"VinceCYLiao","page":null},{"name":"Waldir Pimenta","alias":"waldyrious","url":"https://github.com/waldyrious","imageURL":"https://github.com/waldyrious.png","key":"waldyrious","page":null},{"name":"Will Ceolin","alias":"wceolin","url":"https://github.com/wceolin","imageURL":"https://github.com/wceolin.png","key":"wceolin","page":null},{"name":"Webber Takken","alias":"webbertakken","url":"https://github.com/webbertakken","imageURL":"https://github.com/webbertakken.png","key":"webbertakken","page":null},{"name":"Jordan Manley","alias":"werner33","url":"https://github.com/werner33","imageURL":"https://github.com/werner33.png","key":"werner33","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null},{"name":"yosukekato165","alias":"yosukekato165","url":"https://github.com/yosukekato165","imageURL":"https://github.com/yosukekato165.png","key":"yosukekato165","page":null},{"name":"Zwyx","alias":"Zwyx","url":"https://github.com/Zwyx","imageURL":"https://github.com/Zwyx.png","key":"Zwyx","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2023-10-31T20:00","authors":["0420syj","abhinandanwadwa","Abinashbunty","adampatterson","adithyaakrishna","AFRUITPIE","AgentEnder","akshaybhalotia","allyw2002","amdshrif","amm98d","anaclumos","andrewnicols","antonk52","antonyoni","aqueeb","attitude","billy1624","biplavmz","bitpredator","BubbaJoe","chillinPanda","chubei","chudongvip","cm-igarashi-ryosuke","colinhacks","conlacda","dandv","danilowoz","DanRoscigno","DavidJFelix","dawei-wang","debs-obrien","Devansu-Yadav","Djunnni","Dr-Electron","e-minguez","edno","FlorinaPacurar","Foosballfan","forresst","FrancescoXX","fredrikstave","fxpby","gabrielcsapo","GalexyN","gazab","gracefullight","gregberge","harryzcy","heysujal","hidde","homotechsual","hslee2008","HumbleDeer","HyeokjinKang","jean-humann","jeengbe","jhcao23","jj-style","jodyheavener","johnnyreilly","JohnVicke","JorensM","Josh-Cena","juanpicado","KarthickSakthi","Kesyau","knownasnaffy","la55u","lanegoolsby","layershifter","lex111","lorenzolewis","maliMirkec","manuel-rw","MarkShawn2020","mcallisto","mickremedi","ModupeD","Mogyuchi","moojing","mrazauskas","mstroppel","mxschmitt","Mysterious-Dev","NamanGarg2075","ntucker","oluwatobiss","Oreoxmt","OzakIOne","palmiak","PaulRBerg","pinakipb2","prateekbytes","qwerzl","rashidmya","razzeee","rbarbazz","recallwei","rojakcoder","rsteele6","sadikkuzu","Sainan","samatt14","sanjaiyan-dev","sashashura","schneegansm","scubamaggo","ShahriarKh","shawshankkumar","shortcuts","shwaka","sixhobbits","slorber","suravshrestha","sykp241095","tamalchowdhury","tarunrajput","tats-u","thadguidry","thatrobotdev","thedevwonder","Villanuevand","VinceCYLiao","waldyrious","wceolin","webbertakken","werner33","yangshun","yosukekato165","Zwyx"]},"unlisted":false,"prevItem":{"title":"3.0.1","permalink":"/changelog/3.0.1"},"nextItem":{"title":"2.4.3","permalink":"/changelog/2.4.3"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`\\n - [#9451](https://github.com/facebook/docusaurus/pull/9451) feat(mdx-loader): upgrade to MDX v3 ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#9317](https://github.com/facebook/docusaurus/pull/9317) feat(core): support TypeScript + ESM configuration ([@harryzcy](https://github.com/harryzcy))\\n- `create-docusaurus`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus`\\n - [#9316](https://github.com/facebook/docusaurus/pull/9316) chore: upgrade syntax highlighting dependencies, `prism-react-renderer` to v2, `react-live` to v4 ([@harryzcy](https://github.com/harryzcy))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`\\n - [#9348](https://github.com/facebook/docusaurus/pull/9348) chore: update node engine version 18 ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#9310](https://github.com/facebook/docusaurus/pull/9310) chore(plugin-docs): remove legacy versioned prefix on doc ids and sidebar names in versioned sidebars ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-translations`\\n - [#9308](https://github.com/facebook/docusaurus/pull/9308) fix(theme): make warning a first-class admonition, and deprecate caution admonition ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`\\n - [#9305](https://github.com/facebook/docusaurus/pull/9305) feat(theme-mermaid): upgrade Mermaid to v10.4 - handle async rendering ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-tsconfig`, `docusaurus`\\n - [#9258](https://github.com/facebook/docusaurus/pull/9258) feat: Docusaurus v3 upgrades and require TypeScript 5 ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`\\n - [#9189](https://github.com/facebook/docusaurus/pull/9189) feat(blog-plugin): limit option for blog feedOptions ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `create-docusaurus`, `docusaurus-tsconfig`\\n - [#9050](https://github.com/facebook/docusaurus/pull/9050) feat: create official TypeScript base config @docusaurus/tsconfig ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus`\\n - [#8961](https://github.com/facebook/docusaurus/pull/8961) feat: React 18 + automatic JSX runtime + build --dev ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`\\n - [#9026](https://github.com/facebook/docusaurus/pull/9026) chore: remove facebook template ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-mermaid`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#8288](https://github.com/facebook/docusaurus/pull/8288) feat: upgrade to MDX v2 ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus`\\n - [#7966](https://github.com/facebook/docusaurus/pull/7966) fix(plugin-docs,theme): refactor docs plugin routes and component tree ([@slorber](https://github.com/slorber))\\n\\n## :rocket: New Feature\\n\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`\\n - [#9451](https://github.com/facebook/docusaurus/pull/9451) feat(mdx-loader): upgrade to MDX v3 ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-utils`\\n - [#9394](https://github.com/facebook/docusaurus/pull/9394) feat(mdx-loader): Remark plugin to report unused MDX / Markdown directives ([@OzakIOne](https://github.com/OzakIOne))\\n- `create-docusaurus`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#9317](https://github.com/facebook/docusaurus/pull/9317) feat(core): support TypeScript + ESM configuration ([@harryzcy](https://github.com/harryzcy))\\n- `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`\\n - [#9305](https://github.com/facebook/docusaurus/pull/9305) feat(theme-mermaid): upgrade Mermaid to v10.4 - handle async rendering ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`\\n - [#9241](https://github.com/facebook/docusaurus/pull/9241) feat: support bun package manager in `create-docusaurus` ([@colinhacks](https://github.com/colinhacks))\\n- `docusaurus-plugin-content-blog`\\n - [#9189](https://github.com/facebook/docusaurus/pull/9189) feat(blog-plugin): limit option for blog feedOptions ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `docusaurus-theme-classic`\\n - [#9152](https://github.com/facebook/docusaurus/pull/9152) feat(theme): add support for meta og locale and alternates ([@FlorinaPacurar](https://github.com/FlorinaPacurar))\\n - [#9028](https://github.com/facebook/docusaurus/pull/9028) feat(theme): add ability to inject data attributes from query-string - possibility to create an iframe/embed variant of a page ([@slorber](https://github.com/slorber))\\n - [#8915](https://github.com/facebook/docusaurus/pull/8915) feat(theme): add queryString option to localeDropdown ([@wceolin](https://github.com/wceolin))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-utils-validation`\\n - [#9171](https://github.com/facebook/docusaurus/pull/9171) feat(client-redirects-plugin): support fully qualified urls and querystring/hash in destination/to url ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#9102](https://github.com/facebook/docusaurus/pull/9102) feat(cli): deploy command should allow customizing git config user.name / user.email in deployment branch (#9101) ([@amdshrif](https://github.com/amdshrif))\\n- `docusaurus-mdx-loader`, `docusaurus-types`, `docusaurus`\\n - [#9097](https://github.com/facebook/docusaurus/pull/9097) feat(mdx): add siteConfig.markdown.format to configure the default content parser (MDX / CommonMark) ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`\\n - [#9071](https://github.com/facebook/docusaurus/pull/9071) feat(pages): add support for missing SEO front matter + improve SEO docs ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-tsconfig`\\n - [#9050](https://github.com/facebook/docusaurus/pull/9050) feat: create official TypeScript base config @docusaurus/tsconfig ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus`\\n - [#8961](https://github.com/facebook/docusaurus/pull/8961) feat: React 18 + automatic JSX runtime + build --dev ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-common`\\n - [#8982](https://github.com/facebook/docusaurus/pull/8982) feat(theme-common): code block MagicComments support for TeX/LaTeX/Matlab ([@jj-style](https://github.com/jj-style))\\n - [#8870](https://github.com/facebook/docusaurus/pull/8870) feat(theme-common): code block MagicComments support for Lua/Haskell -- and WebAssembly ;; ([@tarunrajput](https://github.com/tarunrajput))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-mermaid`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#8288](https://github.com/facebook/docusaurus/pull/8288) feat: upgrade to MDX v2 ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8890](https://github.com/facebook/docusaurus/pull/8890) feat(theme): create more generic ThemedComponent util from ThemedImage ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `eslint-plugin`\\n - [#8384](https://github.com/facebook/docusaurus/pull/8384) feat(eslint-plugin): new prefer-docusaurus-heading rule ([@Devansu-Yadav](https://github.com/Devansu-Yadav))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus`, `eslint-plugin`\\n - [#8156](https://github.com/facebook/docusaurus/pull/8156) feat: add eslint plugin no-html-links ([@JohnVicke](https://github.com/JohnVicke))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`, `docusaurus-utils-validation`, `docusaurus-utils`\\n - [#8004](https://github.com/facebook/docusaurus/pull/8004) feat(docs,blog,pages): add support for \\"unlisted\\" front matter - hide md content in production ([@jodyheavener](https://github.com/jodyheavener))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-common`\\n - [#9446](https://github.com/facebook/docusaurus/pull/9446) fix(theme): fix useWindowSize React hydration issue ([@slorber](https://github.com/slorber))\\n - [#9276](https://github.com/facebook/docusaurus/pull/9276) fix(theme-common): remove useless useSyncExternalStore shim ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`\\n - [#9437](https://github.com/facebook/docusaurus/pull/9437) fix(plugin-blog): blog archive should hide unlisted blog posts ([@slorber](https://github.com/slorber))\\n - [#9151](https://github.com/facebook/docusaurus/pull/9151) fix(content-blog): links in feed should be absolute ([@VinceCYLiao](https://github.com/VinceCYLiao))\\n- `docusaurus`\\n - [#9387](https://github.com/facebook/docusaurus/pull/9387) fix(core): log missing errorInfo in React 18 onRecoverableError callback ([@johnnyreilly](https://github.com/johnnyreilly))\\n - [#9309](https://github.com/facebook/docusaurus/pull/9309) fix(cli): disable vertical borders of the update notification ([@qwerzl](https://github.com/qwerzl))\\n - [#9112](https://github.com/facebook/docusaurus/pull/9112) fix(core): throw error if build folder already exists on initial clean ([@thedevwonder](https://github.com/thedevwonder))\\n - [#9006](https://github.com/facebook/docusaurus/pull/9006) fix(core): docusaurus CLI should detect the correct yarn version when suggesting upgrades ([@0420syj](https://github.com/0420syj))\\n - [#7951](https://github.com/facebook/docusaurus/pull/7951) fix(core): make webpack HMR always listen to current location ([@jeengbe](https://github.com/jeengbe))\\n- `docusaurus-mdx-loader`\\n - [#9386](https://github.com/facebook/docusaurus/pull/9386) fix(mdx-loader): get correct error line numbers, handle front matter + contentTitle with remark ([@slorber](https://github.com/slorber))\\n - [#9262](https://github.com/facebook/docusaurus/pull/9262) fix(mdx-loader): improve mdxJsxTextElementToHtml ([@slorber](https://github.com/slorber))\\n - [#9202](https://github.com/facebook/docusaurus/pull/9202) fix(mdx-loader): ensure heading anchor slugs respect GitHub emoji behavior ([@yosukekato165](https://github.com/yosukekato165))\\n - [#9100](https://github.com/facebook/docusaurus/pull/9100) fix(mdx): fix for html multi-line comments ([@slorber](https://github.com/slorber))\\n - [#9091](https://github.com/facebook/docusaurus/pull/9091) fix(mdx-loader): loader error message should display stacktrace if no extra MDX details ([@slorber](https://github.com/slorber))\\n - [#8960](https://github.com/facebook/docusaurus/pull/8960) fix: allow html syntax in MDX v2 with format md ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#9385](https://github.com/facebook/docusaurus/pull/9385) fix(theme): avoid rendering empty search container if site has no search plugin ([@slorber](https://github.com/slorber))\\n - [#9183](https://github.com/facebook/docusaurus/pull/9183) fix(theme): make Prism code block language / additionalLanguages case insensitive ([@heysujal](https://github.com/heysujal))\\n - [#9216](https://github.com/facebook/docusaurus/pull/9216) fix(theme): fix typo in swizzle component config ([@sixhobbits](https://github.com/sixhobbits))\\n - [#9093](https://github.com/facebook/docusaurus/pull/9093) fix(theme): support details/summary in CommonMark + add md dogfood test cases ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-utils`\\n - [#9369](https://github.com/facebook/docusaurus/pull/9369) fix(mdx-loader): prevent Open Graph images from being inserted as base64 ([@Zwyx](https://github.com/Zwyx))\\n- `docusaurus-theme-translations`\\n - [#9362](https://github.com/facebook/docusaurus/pull/9362) fix(theme-translations): add Japanese translation for \\"warning\\" ([@tats-u](https://github.com/tats-u))\\n - [#9321](https://github.com/facebook/docusaurus/pull/9321) fix(theme-translations): add missing zh-Hans messages ([@chudongvip](https://github.com/chudongvip))\\n - [#9338](https://github.com/facebook/docusaurus/pull/9338) fix(theme-translations): complete and fix hungarian translations ([@la55u](https://github.com/la55u))\\n - [#9292](https://github.com/facebook/docusaurus/pull/9292) fix(theme-translations): add missing Spanish theme translations ([@Villanuevand](https://github.com/Villanuevand))\\n - [#9021](https://github.com/facebook/docusaurus/pull/9021) fix(theme-transalations): fix Swedish translation of \\"last updated\\" ([@gazab](https://github.com/gazab))\\n- `docusaurus-theme-classic`, `docusaurus-theme-translations`\\n - [#9308](https://github.com/facebook/docusaurus/pull/9308) fix(theme): make warning a first-class admonition, and deprecate caution admonition ([@slorber](https://github.com/slorber))\\n - [#9269](https://github.com/facebook/docusaurus/pull/9269) fix(theme): improve docs sidebar category caret aria-label accessibility ([@pinakipb2](https://github.com/pinakipb2))\\n- Other\\n - [#9260](https://github.com/facebook/docusaurus/pull/9260) fix(website): fix showcase search input ([@biplavmz](https://github.com/biplavmz))\\n - [#8193](https://github.com/facebook/docusaurus/pull/8193) fix(website): mobile scroll on homepage announcement ([@maliMirkec](https://github.com/maliMirkec))\\n - [#8042](https://github.com/facebook/docusaurus/pull/8042) fix(website): fix blog post social card ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`\\n - [#9217](https://github.com/facebook/docusaurus/pull/9217) fix(create-docusaurus): increase Browserslist support query in dev ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`, `docusaurus`\\n - [#9160](https://github.com/facebook/docusaurus/pull/9160) fix(core): handle single quotes inside file paths ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-debug`\\n - [#9116](https://github.com/facebook/docusaurus/pull/9116) fix(debug-plugin): upgrade react-json-view to maintained React-18 compatible fork ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`\\n - [#9046](https://github.com/facebook/docusaurus/pull/9046) fix(utils): better handling of code blocks in link replacement ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#8927](https://github.com/facebook/docusaurus/pull/8927) fix(utils): make Markdown link replacement much more rigorous ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7864](https://github.com/facebook/docusaurus/pull/7864) fix(utils): always match exclusion root dirs as complete folder paths ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7801](https://github.com/facebook/docusaurus/pull/7801) fix(utils): recognize ~~~ as code fences in link replacement ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-pwa`, `docusaurus`\\n - [#8872](https://github.com/facebook/docusaurus/pull/8872) fix(core): better error logging on SSR/dev failures + log stacktraces and error causes ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils-validation`, `docusaurus`\\n - [#8258](https://github.com/facebook/docusaurus/pull/8258) fix(docusaurus-utils-validation): baseUrl + routeBasePath: allow empty string, normalized as \\"/\\" ([@Djunnni](https://github.com/Djunnni))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8319](https://github.com/facebook/docusaurus/pull/8319) fix(docs,theme): auto-generated category index should not display unlisted content ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`\\n - [#8015](https://github.com/facebook/docusaurus/pull/8015) fix(live-codeblock): add error boundary to live code preview ([@rashidmya](https://github.com/rashidmya))\\n- `docusaurus-mdx-loader`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus`\\n - [#7945](https://github.com/facebook/docusaurus/pull/7945) refactor(theme): split admonitions, make swizzle easier, better retrocompatibility ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus`\\n - [#7966](https://github.com/facebook/docusaurus/pull/7966) fix(plugin-docs,theme): refactor docs plugin routes and component tree ([@slorber](https://github.com/slorber))\\n\\n## :running: Performance\\n\\n- `docusaurus`\\n - [#9051](https://github.com/facebook/docusaurus/pull/9051) perf(core): use React 18 startTransition for hydration ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))\\n - [#8081](https://github.com/facebook/docusaurus/pull/8081) perf(core): move scripts to document head + defer ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus`\\n - [#8972](https://github.com/facebook/docusaurus/pull/8972) fix: remove useless js-loader in front of mdx-loader ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#9438](https://github.com/facebook/docusaurus/pull/9438) refactor(blog-plugin): blog archive reverse ordering of posts ([@slorber](https://github.com/slorber))\\n - [#9184](https://github.com/facebook/docusaurus/pull/9184) fix(theme): change schema.org itemType prop urls from http to https ([@thedevwonder](https://github.com/thedevwonder))\\n- `docusaurus`\\n - [#9381](https://github.com/facebook/docusaurus/pull/9381) feat(core): throw error when official docusaurus dependencies use different versions ([@JorensM](https://github.com/JorensM))\\n- `docusaurus-theme-translations`\\n - [#9302](https://github.com/facebook/docusaurus/pull/9302) chore(theme-translations): complete zh-Hant translations ([@qwerzl](https://github.com/qwerzl))\\n - [#9025](https://github.com/facebook/docusaurus/pull/9025) chore(theme-translations): complete it translations ([@bitpredator](https://github.com/bitpredator))\\n- `create-docusaurus`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus`\\n - [#9133](https://github.com/facebook/docusaurus/pull/9133) fix(init): change initial site URL to one that is safe for the future ([@tats-u](https://github.com/tats-u))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8150](https://github.com/facebook/docusaurus/pull/8150) fix(theme-classic): polish admonition details, render title-only admonitions ([@attitude](https://github.com/attitude))\\n- `docusaurus-plugin-google-gtag`\\n - [#8143](https://github.com/facebook/docusaurus/pull/8143) refactor(plugin-gtag): update gtag plugin to modern SPA recommendations ([@lanegoolsby](https://github.com/lanegoolsby))\\n- `docusaurus-mdx-loader`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus`\\n - [#7945](https://github.com/facebook/docusaurus/pull/7945) refactor(theme): split admonitions, make swizzle easier, better retrocompatibility ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#9452](https://github.com/facebook/docusaurus/pull/9452) docs: v3 upgrade guide should mention MDX v1 compat options ([@slorber](https://github.com/slorber))\\n - [#9430](https://github.com/facebook/docusaurus/pull/9430) docs: update Kinsta deployment documentation ([@palmiak](https://github.com/palmiak))\\n - [#9417](https://github.com/facebook/docusaurus/pull/9417) docs: add Docusaurus v3.0 upgrade guide ([@slorber](https://github.com/slorber))\\n - [#9396](https://github.com/facebook/docusaurus/pull/9396) docs: fix typos in website/docs/i18n/i18n-git.mdx ([@suravshrestha](https://github.com/suravshrestha))\\n - [#9397](https://github.com/facebook/docusaurus/pull/9397) docs: fix typos in website/docs/migration/migration-manual.mdx ([@suravshrestha](https://github.com/suravshrestha))\\n - [#9388](https://github.com/facebook/docusaurus/pull/9388) docs: fix algolia crowler config template link for v3 ([@slorber](https://github.com/slorber))\\n - [#9377](https://github.com/facebook/docusaurus/pull/9377) docs(deployment): add permissions config to github action file in v2.4.3 ([@chillinPanda](https://github.com/chillinPanda))\\n - [#9333](https://github.com/facebook/docusaurus/pull/9333) docs: \\"Preparing your site for Docusaurus v3\\" blog post ([@slorber](https://github.com/slorber))\\n - [#9330](https://github.com/facebook/docusaurus/pull/9330) docs: \\"Upgrading frontend dependencies with confidence\\" blog post ([@slorber](https://github.com/slorber))\\n - [#9288](https://github.com/facebook/docusaurus/pull/9288) docs: fix bad link for create doc ([@forresst](https://github.com/forresst))\\n - [#9267](https://github.com/facebook/docusaurus/pull/9267) docs: fix typo in docs-introduction ([@HyeokjinKang](https://github.com/HyeokjinKang))\\n - [#9247](https://github.com/facebook/docusaurus/pull/9247) docs: Reword comparison between React authoring and CSS authoring ([@hidde](https://github.com/hidde))\\n - [#9223](https://github.com/facebook/docusaurus/pull/9223) docs: fix grammatical error, rewrite sentence to make clearer ([@thatrobotdev](https://github.com/thatrobotdev))\\n - [#9233](https://github.com/facebook/docusaurus/pull/9233) docs(website): Add a \\"clearAll\\" Feature to site showcase ([@biplavmz](https://github.com/biplavmz))\\n - [#9180](https://github.com/facebook/docusaurus/pull/9180) docs: remove \'import type\' declaration in javascript snippet ([@oluwatobiss](https://github.com/oluwatobiss))\\n - [#9177](https://github.com/facebook/docusaurus/pull/9177) docs: improve the opening sentence\'s clarity ([@oluwatobiss](https://github.com/oluwatobiss))\\n - [#9149](https://github.com/facebook/docusaurus/pull/9149) docs: improve yarn deps upgrade command ([@webbertakken](https://github.com/webbertakken))\\n - [#9139](https://github.com/facebook/docusaurus/pull/9139) docs: add Flightcontrol as a deployment option ([@ModupeD](https://github.com/ModupeD))\\n - [#9082](https://github.com/facebook/docusaurus/pull/9082) docs: fix themeConfig.prism.defaultLanguage table api ref docs ([@razzeee](https://github.com/razzeee))\\n - [#9074](https://github.com/facebook/docusaurus/pull/9074) docs: fix filenames in docs/swizzling.mdx ([@shwaka](https://github.com/shwaka))\\n - [#9065](https://github.com/facebook/docusaurus/pull/9065) docs: update link for commonly used languages ([@heysujal](https://github.com/heysujal))\\n - [#9055](https://github.com/facebook/docusaurus/pull/9055) docs: update outdated links in showcase ([@manuel-rw](https://github.com/manuel-rw))\\n - [#9063](https://github.com/facebook/docusaurus/pull/9063) docs: add @markprompt/docusaurus-theme-search ([@schneegansm](https://github.com/schneegansm))\\n - [#9033](https://github.com/facebook/docusaurus/pull/9033) docs: update info for community plugin docusaurus2-graphql-doc-generator ([@edno](https://github.com/edno))\\n - [#9044](https://github.com/facebook/docusaurus/pull/9044) docs: fix prism theme broken link in code blocks docs ([@adithyaakrishna](https://github.com/adithyaakrishna))\\n - [#9043](https://github.com/facebook/docusaurus/pull/9043) docs: fix grammar typo in swizzling.mdx ([@adampatterson](https://github.com/adampatterson))\\n - [#9018](https://github.com/facebook/docusaurus/pull/9018) docs: fix link to rehype ([@Mogyuchi](https://github.com/Mogyuchi))\\n - [#8993](https://github.com/facebook/docusaurus/pull/8993) docs: fix broken link in code blocks docs ([@NamanGarg2075](https://github.com/NamanGarg2075))\\n - [#8975](https://github.com/facebook/docusaurus/pull/8975) docs: update link in md code blocks section ([@rbarbazz](https://github.com/rbarbazz))\\n - [#8976](https://github.com/facebook/docusaurus/pull/8976) docs: update broken links theme configuration page ([@rbarbazz](https://github.com/rbarbazz))\\n - [#8904](https://github.com/facebook/docusaurus/pull/8904) docs: fix broken link to Prism includeLangs.js default list of languages ([@conlacda](https://github.com/conlacda))\\n - [#8951](https://github.com/facebook/docusaurus/pull/8951) docs: mention equivalent config syntaxes ([@thadguidry](https://github.com/thadguidry))\\n - [#8950](https://github.com/facebook/docusaurus/pull/8950) docs: bidirectional link between api config and guide config ([@thadguidry](https://github.com/thadguidry))\\n - [#8953](https://github.com/facebook/docusaurus/pull/8953) docs: mention blog truncating marker edge case ([@allyw2002](https://github.com/allyw2002))\\n - [#8941](https://github.com/facebook/docusaurus/pull/8941) docs: rewrite some docs for mdx v2 ([@slorber](https://github.com/slorber))\\n - [#8943](https://github.com/facebook/docusaurus/pull/8943) docs: mention docusaurus.community site in resources ([@thadguidry](https://github.com/thadguidry))\\n - [#8920](https://github.com/facebook/docusaurus/pull/8920) docs: mdx-js is using v2 for next edition ([@jhcao23](https://github.com/jhcao23))\\n - [#8888](https://github.com/facebook/docusaurus/pull/8888) docs: improve sidebar items custom props docs ([@slorber](https://github.com/slorber))\\n - [#8877](https://github.com/facebook/docusaurus/pull/8877) docs: add \\"permissions.content: write\\" to GH workflow examples ([@e-minguez](https://github.com/e-minguez))\\n - [#8845](https://github.com/facebook/docusaurus/pull/8845) docs: add description on blog post file/folder naming conventions and date extraction patterns ([@rojakcoder](https://github.com/rojakcoder))\\n - [#8865](https://github.com/facebook/docusaurus/pull/8865) docs: correct small grammar error ([@werner33](https://github.com/werner33))\\n - [#8830](https://github.com/facebook/docusaurus/pull/8830) docs: link to mermaid config types ([@PaulRBerg](https://github.com/PaulRBerg))\\n - [#8804](https://github.com/facebook/docusaurus/pull/8804) docs: update suggestion for OSS meta projects ([@antonk52](https://github.com/antonk52))\\n - [#8788](https://github.com/facebook/docusaurus/pull/8788) docs: remove problematic mdx2 anchor id docs for MDX 2 migration ([@slorber](https://github.com/slorber))\\n - [#8780](https://github.com/facebook/docusaurus/pull/8780) docs: fix localhost url without link ([@slorber](https://github.com/slorber))\\n - [#8779](https://github.com/facebook/docusaurus/pull/8779) docs: v2 docs should discourage the usage of a lower-case MDX component (will not work in v3) ([@slorber](https://github.com/slorber))\\n - [#8761](https://github.com/facebook/docusaurus/pull/8761) docs: add mention that themeConfig.footer.copyright supports html strings ([@fxpby](https://github.com/fxpby))\\n - [#8723](https://github.com/facebook/docusaurus/pull/8723) docs: add TypeScript playgrounds to docusaurus.new + Playground page ([@slorber](https://github.com/slorber))\\n - [#8709](https://github.com/facebook/docusaurus/pull/8709) docs: add dark mode version of BrowserStack logo ([@fredrikstave](https://github.com/fredrikstave))\\n - [#8642](https://github.com/facebook/docusaurus/pull/8642) docs: clarify query string behavior ([@homotechsual](https://github.com/homotechsual))\\n - [#8576](https://github.com/facebook/docusaurus/pull/8576) docs(playground): use CodeSandbox cloud sandboxes ([@danilowoz](https://github.com/danilowoz))\\n - [#8543](https://github.com/facebook/docusaurus/pull/8543) docs: add link to pluralization docs ([@homotechsual](https://github.com/homotechsual))\\n - [#8556](https://github.com/facebook/docusaurus/pull/8556) docs: document plugin-content-pages wrapperClassName frontmatter. ([@homotechsual](https://github.com/homotechsual))\\n - [#8548](https://github.com/facebook/docusaurus/pull/8548) docs: fix typo \'validationOptions\' ([@gracefullight](https://github.com/gracefullight))\\n - [#8509](https://github.com/facebook/docusaurus/pull/8509) docs(website): fix broken external links wrongly modified to use the .mdx extension (ex: github README.mdx) ([@Kesyau](https://github.com/Kesyau))\\n - [#8507](https://github.com/facebook/docusaurus/pull/8507) docs: blog + community + dogfood docs should use .mdx extension ([@slorber](https://github.com/slorber))\\n - [#8490](https://github.com/facebook/docusaurus/pull/8490) docs(website): use .mdx extension for every docs ([@slorber](https://github.com/slorber))\\n - [#8484](https://github.com/facebook/docusaurus/pull/8484) docs: `plugin-content-sitemap` -> `plugin-sitemap` ([@chubei](https://github.com/chubei))\\n - [#8454](https://github.com/facebook/docusaurus/pull/8454) fix(docs): Update link for tooljet website(broken) ([@shawshankkumar](https://github.com/shawshankkumar))\\n - [#8443](https://github.com/facebook/docusaurus/pull/8443) docs: fix website home testimonials broken image URLs ([@abhinandanwadwa](https://github.com/abhinandanwadwa))\\n - [#8438](https://github.com/facebook/docusaurus/pull/8438) docs: add hyperlink to swizzling in Search page ([@dandv](https://github.com/dandv))\\n - [#8431](https://github.com/facebook/docusaurus/pull/8431) docs: add diagrams page to 2.2.0 sidebar ([@homotechsual](https://github.com/homotechsual))\\n - [#8307](https://github.com/facebook/docusaurus/pull/8307) docs: clarify additionalLanguages with custom language definitions. ([@homotechsual](https://github.com/homotechsual))\\n - [#8390](https://github.com/facebook/docusaurus/pull/8390) docs: changed actions/checkout version from 2 to 3 ([@cm-igarashi-ryosuke](https://github.com/cm-igarashi-ryosuke))\\n - [#8262](https://github.com/facebook/docusaurus/pull/8262) docs: fix links to external plugin description ([@scubamaggo](https://github.com/scubamaggo))\\n - [#8375](https://github.com/facebook/docusaurus/pull/8375) docs: add Kinsta to deployment page ([@palmiak](https://github.com/palmiak))\\n - [#8417](https://github.com/facebook/docusaurus/pull/8417) docs: document theme-mermaid in API sidebar ([@homotechsual](https://github.com/homotechsual))\\n - [#8392](https://github.com/facebook/docusaurus/pull/8392) docs: add i18n guide doc should link to i18n core config doc ([@mcallisto](https://github.com/mcallisto))\\n - [#8388](https://github.com/facebook/docusaurus/pull/8388) docs: point to where commit types are listed ([@dandv](https://github.com/dandv))\\n - [#8352](https://github.com/facebook/docusaurus/pull/8352) docs: actually demo the zero-width space workaround in MDX ([@waldyrious](https://github.com/waldyrious))\\n - [#8363](https://github.com/facebook/docusaurus/pull/8363) docs: fix unclosed admonition code block ([@Zwyx](https://github.com/Zwyx))\\n - [#8364](https://github.com/facebook/docusaurus/pull/8364) docs: autogenerated page comment does not matching dirName in examples ([@HumbleDeer](https://github.com/HumbleDeer))\\n - [#8359](https://github.com/facebook/docusaurus/pull/8359) docs: fix anchor link `#customFields` ([@Zwyx](https://github.com/Zwyx))\\n - [#8320](https://github.com/facebook/docusaurus/pull/8320) docs: remove blog.johnnyreilly.com Google Analytics tag from docs part 2 ([@johnnyreilly](https://github.com/johnnyreilly))\\n - [#8335](https://github.com/facebook/docusaurus/pull/8335) docs: use Mermaid diagram for routing page ([@Mysterious-Dev](https://github.com/Mysterious-Dev))\\n - [#8313](https://github.com/facebook/docusaurus/pull/8313) docs: link to migration guide from Blogger to Docusaurus / remove blog.johnnyreilly.com Google Analytics tag from docs ([@johnnyreilly](https://github.com/johnnyreilly))\\n - [#8292](https://github.com/facebook/docusaurus/pull/8292) docs: document tag types for insertHtmlContent ([@homotechsual](https://github.com/homotechsual))\\n - [#8272](https://github.com/facebook/docusaurus/pull/8272) docs: fix mermaid theme options typo ([@ntucker](https://github.com/ntucker))\\n - [#8209](https://github.com/facebook/docusaurus/pull/8209) docs: removing community resource docusaurus-plugin-relative-paths ([@ShahriarKh](https://github.com/ShahriarKh))\\n - [#8146](https://github.com/facebook/docusaurus/pull/8146) docs(content-docs): add api doc for displayed_sidebar front matter ([@slorber](https://github.com/slorber))\\n - [#8115](https://github.com/facebook/docusaurus/pull/8115) docs: add caveat about using Translate in string contexts ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#8053](https://github.com/facebook/docusaurus/pull/8053) docs: document usage of docs `frontMatter.custom_edit_url: null` ([@homotechsual](https://github.com/homotechsual))\\n - [#8010](https://github.com/facebook/docusaurus/pull/8010) docs(showcase): add 74 new showcase sites ([@slorber](https://github.com/slorber))\\n - [#7955](https://github.com/facebook/docusaurus/pull/7955) docs: add docusaurus-post-generator to community resource list ([@moojing](https://github.com/moojing))\\n - [#7906](https://github.com/facebook/docusaurus/pull/7906) docs: add TOC heading level options to guide ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7884](https://github.com/facebook/docusaurus/pull/7884) docs: add baseUrl to example tsconfig ([@Foosballfan](https://github.com/Foosballfan))\\n - [#7835](https://github.com/facebook/docusaurus/pull/7835) docs: update workbox doc link ([@hslee2008](https://github.com/hslee2008))\\n - [#7799](https://github.com/facebook/docusaurus/pull/7799) docs: formally document how admonitions can be customized ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7796](https://github.com/facebook/docusaurus/pull/7796) docs: modify the description of deploying to Netlify ([@Oreoxmt](https://github.com/Oreoxmt))\\n- `docusaurus-logger`\\n - [#9210](https://github.com/facebook/docusaurus/pull/9210) docs: add the missing import logger statement ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#8047](https://github.com/facebook/docusaurus/pull/8047) docs: improve alt messages ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#8944](https://github.com/facebook/docusaurus/pull/8944) polish(create-docusaurus): add comment in config to mention different ways to declare config + doc link ([@thadguidry](https://github.com/thadguidry))\\n - [#8323](https://github.com/facebook/docusaurus/pull/8323) docs: fix typo \'internalization\' ([@dandv](https://github.com/dandv))\\n- `docusaurus-plugin-ideal-image`\\n - [#8630](https://github.com/facebook/docusaurus/pull/8630) docs: normalize README for ideal-image plugin ([@Mysterious-Dev](https://github.com/Mysterious-Dev))\\n- `docusaurus-mdx-loader`\\n - [#8419](https://github.com/facebook/docusaurus/pull/8419) docs: document siteConfig.markdown + better mdx-loader retrocompat ([@slorber](https://github.com/slorber))\\n\\n## :robot: Dependencies\\n\\n- Other\\n - [#9440](https://github.com/facebook/docusaurus/pull/9440) chore(deps): bump actions/setup-node from 3 to 4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9441](https://github.com/facebook/docusaurus/pull/9441) chore(deps): bump actions/checkout from 4.1.0 to 4.1.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9367](https://github.com/facebook/docusaurus/pull/9367) chore(deps): bump postcss from 8.4.26 to 8.4.31 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9344](https://github.com/facebook/docusaurus/pull/9344) chore(deps): bump actions/checkout from 4.0.0 to 4.1.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9298](https://github.com/facebook/docusaurus/pull/9298) chore(deps): bump actions/dependency-review-action from 3.0.8 to 3.1.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9277](https://github.com/facebook/docusaurus/pull/9277) chore(deps): bump actions/checkout from 3 to 4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9251](https://github.com/facebook/docusaurus/pull/9251) chore(deps): bump actions/dependency-review-action from 3.0.7 to 3.0.8 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9250](https://github.com/facebook/docusaurus/pull/9250) chore(deps): bump marocchino/sticky-pull-request-comment from 2.7.0 to 2.8.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9227](https://github.com/facebook/docusaurus/pull/9227) chore(deps): bump actions/dependency-review-action from 3.0.6 to 3.0.7 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9174](https://github.com/facebook/docusaurus/pull/9174) chore(deps): bump marocchino/sticky-pull-request-comment from 2.6.2 to 2.7.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9096](https://github.com/facebook/docusaurus/pull/9096) chore(deps): bump semver from 7.3.8 to 7.5.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9061](https://github.com/facebook/docusaurus/pull/9061) chore(deps): bump github/codeql-action from 2.3.6 to 2.13.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9038](https://github.com/facebook/docusaurus/pull/9038) chore(deps): bump github/codeql-action from 2.3.5 to 2.3.6 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9039](https://github.com/facebook/docusaurus/pull/9039) chore(deps): bump actions/dependency-review-action from 3.0.4 to 3.0.6 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9019](https://github.com/facebook/docusaurus/pull/9019) chore(deps): bump github/codeql-action from 2.3.3 to 2.3.5 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8964](https://github.com/facebook/docusaurus/pull/8964) chore(deps): bump github/codeql-action from 2.3.2 to 2.3.3 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8955](https://github.com/facebook/docusaurus/pull/8955) chore(deps): bump github/codeql-action from 2.3.0 to 2.3.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8922](https://github.com/facebook/docusaurus/pull/8922) chore(deps): bump marocchino/sticky-pull-request-comment from 2.5.0 to 2.6.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8923](https://github.com/facebook/docusaurus/pull/8923) chore(deps): bump treosh/lighthouse-ci-action from 9.6.8 to 10.1.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8924](https://github.com/facebook/docusaurus/pull/8924) chore(deps): bump github/codeql-action from 2.2.12 to 2.3.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8899](https://github.com/facebook/docusaurus/pull/8899) chore(deps): bump github/codeql-action from 2.2.11 to 2.2.12 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8900](https://github.com/facebook/docusaurus/pull/8900) chore(deps): bump actions/checkout from 3.5.0 to 3.5.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8879](https://github.com/facebook/docusaurus/pull/8879) chore(deps): bump actions/github-script from 6.4.0 to 6.4.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8878](https://github.com/facebook/docusaurus/pull/8878) chore(deps): bump github/codeql-action from 2.2.9 to 2.2.11 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8836](https://github.com/facebook/docusaurus/pull/8836) chore(deps): bump github/codeql-action from 2.2.7 to 2.2.9 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8837](https://github.com/facebook/docusaurus/pull/8837) chore(deps): bump actions/checkout from 3.4.0 to 3.5.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8797](https://github.com/facebook/docusaurus/pull/8797) chore(deps): bump actions/checkout from 3.3.0 to 3.4.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8796](https://github.com/facebook/docusaurus/pull/8796) chore(deps): bump actions/dependency-review-action from 3.0.3 to 3.0.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8795](https://github.com/facebook/docusaurus/pull/8795) chore(deps): bump github/codeql-action from 2.2.6 to 2.2.7 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8766](https://github.com/facebook/docusaurus/pull/8766) chore(deps): bump treosh/lighthouse-ci-action from 9.3.1 to 9.6.8 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8767](https://github.com/facebook/docusaurus/pull/8767) chore(deps): bump github/codeql-action from 2.2.5 to 2.2.6 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8739](https://github.com/facebook/docusaurus/pull/8739) chore(deps): bump github/codeql-action from 2.2.4 to 2.2.5 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8663](https://github.com/facebook/docusaurus/pull/8663) chore(deps): bump marocchino/sticky-pull-request-comment from 2.3.1 to 2.5.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8662](https://github.com/facebook/docusaurus/pull/8662) chore(deps): bump github/codeql-action from 2.2.2 to 2.2.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8638](https://github.com/facebook/docusaurus/pull/8638) chore(deps): bump github/codeql-action from 2.2.1 to 2.2.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8624](https://github.com/facebook/docusaurus/pull/8624) chore(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8604](https://github.com/facebook/docusaurus/pull/8604) chore(deps): bump actions/github-script from 6.3.3 to 6.4.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8605](https://github.com/facebook/docusaurus/pull/8605) chore(deps): bump github/codeql-action from 2.1.39 to 2.2.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8572](https://github.com/facebook/docusaurus/pull/8572) chore(deps): bump github/codeql-action from 2.1.38 to 2.1.39 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8553](https://github.com/facebook/docusaurus/pull/8553) chore(deps): bump github/codeql-action from 2.1.37 to 2.1.38 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8531](https://github.com/facebook/docusaurus/pull/8531) chore(deps): bump actions/checkout from 3.2.0 to 3.3.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8532](https://github.com/facebook/docusaurus/pull/8532) chore(deps): bump actions/dependency-review-action from 3.0.2 to 3.0.3 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8533](https://github.com/facebook/docusaurus/pull/8533) chore(deps): bump actions/setup-node from 3.5.1 to 3.6.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8496](https://github.com/facebook/docusaurus/pull/8496) chore(deps): bump jakepartusch/wait-for-netlify-action from 1.3 to 1.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8464](https://github.com/facebook/docusaurus/pull/8464) chore(deps): bump actions/dependency-review-action from 3.0.1 to 3.0.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8440](https://github.com/facebook/docusaurus/pull/8440) chore(deps): bump github/codeql-action from 2.1.36 to 2.1.37 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8435](https://github.com/facebook/docusaurus/pull/8435) chore(deps): bump github/codeql-action from 2.1.35 to 2.1.36 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8434](https://github.com/facebook/docusaurus/pull/8434) chore(deps): bump actions/checkout from 3.1.0 to 3.2.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8412](https://github.com/facebook/docusaurus/pull/8412) chore(deps): bump github/codeql-action from 2.1.32 to 2.1.35 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8385](https://github.com/facebook/docusaurus/pull/8385) chore(deps): bump marocchino/sticky-pull-request-comment from 2.3.0 to 2.3.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8360](https://github.com/facebook/docusaurus/pull/8360) chore(deps): bump actions/dependency-review-action from 3.0.0 to 3.0.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8341](https://github.com/facebook/docusaurus/pull/8341) chore(deps): bump github/codeql-action from 2.1.31 to 2.1.32 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8340](https://github.com/facebook/docusaurus/pull/8340) chore(deps): bump actions/dependency-review-action from 2.5.1 to 3.0.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8339](https://github.com/facebook/docusaurus/pull/8339) chore(deps): bump treosh/lighthouse-ci-action from 9.3.0 to 9.3.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8295](https://github.com/facebook/docusaurus/pull/8295) chore(deps): bump github/codeql-action from 2.1.29 to 2.1.31 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8271](https://github.com/facebook/docusaurus/pull/8271) chore(deps): bump github/codeql-action from 2.1.28 to 2.1.29 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8270](https://github.com/facebook/docusaurus/pull/8270) chore(deps): bump marocchino/sticky-pull-request-comment from 2.2.1 to 2.3.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8240](https://github.com/facebook/docusaurus/pull/8240) chore(deps): bump actions/dependency-review-action from 2.5.0 to 2.5.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8241](https://github.com/facebook/docusaurus/pull/8241) chore(deps): bump github/codeql-action from 2.1.27 to 2.1.28 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8221](https://github.com/facebook/docusaurus/pull/8221) chore(deps): bump marocchino/sticky-pull-request-comment from 2.2.0 to 2.2.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8220](https://github.com/facebook/docusaurus/pull/8220) chore(deps): bump actions/dependency-review-action from 2.4.0 to 2.5.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8219](https://github.com/facebook/docusaurus/pull/8219) chore(deps): bump actions/github-script from 6.3.1 to 6.3.3 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8222](https://github.com/facebook/docusaurus/pull/8222) chore(deps): bump actions/setup-node from 3.5.0 to 3.5.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8200](https://github.com/facebook/docusaurus/pull/8200) chore(deps): bump github/codeql-action from 2.1.26 to 2.1.27 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8199](https://github.com/facebook/docusaurus/pull/8199) chore(deps): bump actions/checkout from 3.0.2 to 3.1.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8169](https://github.com/facebook/docusaurus/pull/8169) chore(deps): bump github/codeql-action from 2.1.22 to 2.1.26 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8170](https://github.com/facebook/docusaurus/pull/8170) chore(deps): bump actions/setup-node from 3.4.1 to 3.5.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8167](https://github.com/facebook/docusaurus/pull/8167) chore(deps): bump actions/github-script from 6.2.0 to 6.3.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8168](https://github.com/facebook/docusaurus/pull/8168) chore(deps): bump actions/dependency-review-action from 2.1.0 to 2.4.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8064](https://github.com/facebook/docusaurus/pull/8064) chore: bump react-medium-image-zoom ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#8051](https://github.com/facebook/docusaurus/pull/8051) chore(deps): bump github/codeql-action from 2.1.21 to 2.1.22 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8019](https://github.com/facebook/docusaurus/pull/8019) chore(deps): bump actions/github-script from 6.1.1 to 6.2.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8020](https://github.com/facebook/docusaurus/pull/8020) chore(deps): bump github/codeql-action from 2.1.20 to 2.1.21 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#7988](https://github.com/facebook/docusaurus/pull/7988) chore(deps): bump actions/dependency-review-action from 2.0.4 to 2.1.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#7987](https://github.com/facebook/docusaurus/pull/7987) chore(deps): bump github/codeql-action from 2.1.18 to 2.1.20 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#7957](https://github.com/facebook/docusaurus/pull/7957) chore(deps): bump actions/github-script from 6.1.0 to 6.1.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#7925](https://github.com/facebook/docusaurus/pull/7925) chore(deps): bump github/codeql-action from 2.1.17 to 2.1.18 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#7879](https://github.com/facebook/docusaurus/pull/7879) chore(deps): bump github/codeql-action from 2.1.16 to 2.1.17 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#7804](https://github.com/facebook/docusaurus/pull/7804) chore(deps): bump github/codeql-action from 2.1.15 to 2.1.16 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#7805](https://github.com/facebook/docusaurus/pull/7805) chore(deps): bump actions/dependency-review-action from 2.0.2 to 2.0.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#7806](https://github.com/facebook/docusaurus/pull/7806) chore(deps): bump actions/setup-node from 3.4.0 to 3.4.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`, `stylelint-copyright`\\n - [#9148](https://github.com/facebook/docusaurus/pull/9148) chore: upgrade dependencies (non-major) ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#8749](https://github.com/facebook/docusaurus/pull/8749) chore: upgrade dependencies (non-major) ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#8534](https://github.com/facebook/docusaurus/pull/8534) chore: upgrade dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#8926](https://github.com/facebook/docusaurus/pull/8926) chore: upgrade TypeScript to v5.0 ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`\\n - [#8537](https://github.com/facebook/docusaurus/pull/8537) chore: bump dependencies major versions ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`, `stylelint-copyright`\\n - [#7993](https://github.com/facebook/docusaurus/pull/7993) chore: upgrade dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`\\n - [#7883](https://github.com/facebook/docusaurus/pull/7883) chore: upgrade dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-pwa`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`\\n - [#7822](https://github.com/facebook/docusaurus/pull/7822) chore: upgrade dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-plugin-pwa`, `docusaurus`, `eslint-plugin`\\n - [#7794](https://github.com/facebook/docusaurus/pull/7794) chore: upgrade dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :wrench: Maintenance\\n\\n- `docusaurus-migrate`\\n - [#9400](https://github.com/facebook/docusaurus/pull/9400) chore: remove docusaurus-migrate ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-search-algolia`\\n - [#9320](https://github.com/facebook/docusaurus/pull/9320) chore(theme-search-algolia): revert docsearch package range downgrade after bugfix release ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-translations`\\n - [#9304](https://github.com/facebook/docusaurus/pull/9304) chore(theme-translations): complete French translations ([@forresst](https://github.com/forresst))\\n- Other\\n - [#9264](https://github.com/facebook/docusaurus/pull/9264) ci: only install Chromium for Playwright Argos tests ([@mxschmitt](https://github.com/mxschmitt))\\n - [#9245](https://github.com/facebook/docusaurus/pull/9245) chore: bump devcontainer to Ubuntu 22.04 to resolve arm64 incompatibility ([@AFRUITPIE](https://github.com/AFRUITPIE))\\n - [#8947](https://github.com/facebook/docusaurus/pull/8947) test: add visual regression tests with Argos CI ([@slorber](https://github.com/slorber))\\n - [#8911](https://github.com/facebook/docusaurus/pull/8911) chore: migrate website config to createConfigAsync ([@slorber](https://github.com/slorber))\\n - [#8578](https://github.com/facebook/docusaurus/pull/8578) docs: fix dead anchor for issue reporting guidelines in template ([@Sainan](https://github.com/Sainan))\\n - [#8447](https://github.com/facebook/docusaurus/pull/8447) chore: update lerna to v6.2.0 ([@AgentEnder](https://github.com/AgentEnder))\\n - [#7967](https://github.com/facebook/docusaurus/pull/7967) test: improve e2e verdaccio configuration ([@juanpicado](https://github.com/juanpicado))\\n - [#7863](https://github.com/facebook/docusaurus/pull/7863) docs: publish 2.0.0 release blog post + adapt website for the launch ([@slorber](https://github.com/slorber))\\n - [#7828](https://github.com/facebook/docusaurus/pull/7828) misc: change showcase submission process, use GitHub discussion ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`\\n - [#9195](https://github.com/facebook/docusaurus/pull/9195) test(blog-plugin): fix ability to generate proper blog website fixture build snapshot ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-theme-classic`\\n - [#9024](https://github.com/facebook/docusaurus/pull/9024) docs: remove Meta Data Policy footer link on website ([@KarthickSakthi](https://github.com/KarthickSakthi))\\n- `docusaurus`\\n - [#8660](https://github.com/facebook/docusaurus/pull/8660) chore: bump update-notifier ([@layershifter](https://github.com/layershifter))\\n\\n## Committers: 132\\n\\n- 0x24Karthick ([@KarthickSakthi](https://github.com/KarthickSakthi))\\n- Abhinandan Wadhwa ([@abhinandanwadwa](https://github.com/abhinandanwadwa))\\n- Abinash Satapathy ([@Abinashbunty](https://github.com/Abinashbunty))\\n- Adam Patterson ([@adampatterson](https://github.com/adampatterson))\\n- Adithya Krishna ([@adithyaakrishna](https://github.com/adithyaakrishna))\\n- Ahmad Shrif ([@amdshrif](https://github.com/amdshrif))\\n- Ahmed Mustafa Malik ([@amm98d](https://github.com/amm98d))\\n- Akshay Bhalotia ([@akshaybhalotia](https://github.com/akshaybhalotia))\\n- Alex ([@sashashura](https://github.com/sashashura))\\n- Alexander Nguyen ([@GalexyN](https://github.com/GalexyN))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Andrew Lyons ([@andrewnicols](https://github.com/andrewnicols))\\n- Andr\xe9s Villanueva ([@Villanuevand](https://github.com/Villanuevand))\\n- Anna ([@HumbleDeer](https://github.com/HumbleDeer))\\n- Anton Kastritskii ([@antonk52](https://github.com/antonk52))\\n- Antony Onipko ([@antonyoni](https://github.com/antonyoni))\\n- Aolin ([@Oreoxmt](https://github.com/Oreoxmt))\\n- Aqueeb ([@aqueeb](https://github.com/aqueeb))\\n- Bei Chu ([@chubei](https://github.com/chubei))\\n- Billy Chan ([@billy1624](https://github.com/billy1624))\\n- Biplav Kumar Mazumdar ([@biplavmz](https://github.com/biplavmz))\\n- Bruce ([@recallwei](https://github.com/recallwei))\\n- Charles Killer ([@Foosballfan](https://github.com/Foosballfan))\\n- Chongyi Zheng ([@harryzcy](https://github.com/harryzcy))\\n- Chua Chee How ([@rojakcoder](https://github.com/rojakcoder))\\n- Cl\xe9ment Vannicatte ([@shortcuts](https://github.com/shortcuts))\\n- Colin McDonnell ([@colinhacks](https://github.com/colinhacks))\\n- Coupy ([@HyeokjinKang](https://github.com/HyeokjinKang))\\n- Craigory Coppola ([@AgentEnder](https://github.com/AgentEnder))\\n- Dan Dascalescu ([@dandv](https://github.com/dandv))\\n- Dan Roscigno ([@DanRoscigno](https://github.com/DanRoscigno))\\n- Danilo Woznica ([@danilowoz](https://github.com/danilowoz))\\n- David J. Felix ([@DavidJFelix](https://github.com/DavidJFelix))\\n- Debbie O\'Brien ([@debs-obrien](https://github.com/debs-obrien))\\n- Devansu Yadav ([@Devansu-Yadav](https://github.com/Devansu-Yadav))\\n- Dinh Bao Dang ([@chillinPanda](https://github.com/chillinPanda))\\n- Dongjoon Lee ([@Djunnni](https://github.com/Djunnni))\\n- Eduardo M\xednguez ([@e-minguez](https://github.com/e-minguez))\\n- Eunkwang Shin ([@gracefullight](https://github.com/gracefullight))\\n- Forresst ([@forresst](https://github.com/forresst))\\n- Francesco Ciulla ([@FrancescoXX](https://github.com/FrancescoXX))\\n- Fredrik Stave ([@fredrikstave](https://github.com/fredrikstave))\\n- Fxpby ([@fxpby](https://github.com/fxpby))\\n- Gabriel Csapo ([@gabrielcsapo](https://github.com/gabrielcsapo))\\n- Gareth Dwyer ([@sixhobbits](https://github.com/sixhobbits))\\n- Greg Berg\xe9 ([@gregberge](https://github.com/gregberge))\\n- Gr\xe9gory Heitz ([@edno](https://github.com/edno))\\n- Gustav Ton\xe9r ([@gazab](https://github.com/gazab))\\n- Hayden Hong ([@AFRUITPIE](https://github.com/AFRUITPIE))\\n- Hidde de Vries ([@hidde](https://github.com/hidde))\\n- Hyunseung ([@hslee2008](https://github.com/hslee2008))\\n- JJ Style ([@jj-style](https://github.com/jj-style))\\n- James Kerrane ([@thatrobotdev](https://github.com/thatrobotdev))\\n- Jean Humann ([@jean-humann](https://github.com/jean-humann))\\n- Jesper Engberg ([@jeengbe](https://github.com/jeengbe))\\n- Jody Heavener ([@jodyheavener](https://github.com/jodyheavener))\\n- Joe Williams ([@BubbaJoe](https://github.com/BubbaJoe))\\n- John Cao ([@jhcao23](https://github.com/jhcao23))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Jordan Manley ([@werner33](https://github.com/werner33))\\n- Jorens Merenjanu ([@JorensM](https://github.com/JorensM))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Juan Picado ([@juanpicado](https://github.com/juanpicado))\\n- Kolja ([@razzeee](https://github.com/razzeee))\\n- Lane Goolsby ([@lanegoolsby](https://github.com/lanegoolsby))\\n- Lorenzo Lewis ([@lorenzolewis](https://github.com/lorenzolewis))\\n- Maciek Palmowski ([@palmiak](https://github.com/palmiak))\\n- Manuel ([@manuel-rw](https://github.com/manuel-rw))\\n- Marco Kuper ([@scubamaggo](https://github.com/scubamaggo))\\n- Marco Stroppel ([@mstroppel](https://github.com/mstroppel))\\n- Marie ([@schneegansm](https://github.com/schneegansm))\\n- Markshawn ([@MarkShawn2020](https://github.com/MarkShawn2020))\\n- Martin Adamko ([@attitude](https://github.com/attitude))\\n- Max Schmitt ([@mxschmitt](https://github.com/mxschmitt))\\n- Michael Remediakis ([@mickremedi](https://github.com/mickremedi))\\n- Mikey O\'Toole ([@homotechsual](https://github.com/homotechsual))\\n- ModupeD ([@ModupeD](https://github.com/ModupeD))\\n- Mu-Jing-Tsai ([@moojing](https://github.com/moojing))\\n- Mysterious_Dev ([@Mysterious-Dev](https://github.com/Mysterious-Dev))\\n- Naffy Dharni ([@knownasnaffy](https://github.com/knownasnaffy))\\n- Naman Garg ([@NamanGarg2075](https://github.com/NamanGarg2075))\\n- Nathaniel Tucker ([@ntucker](https://github.com/ntucker))\\n- Oleksandr Fediashov ([@layershifter](https://github.com/layershifter))\\n- Oluwatobi Sofela ([@oluwatobiss](https://github.com/oluwatobiss))\\n- Paul Razvan Berg ([@PaulRBerg](https://github.com/PaulRBerg))\\n- Pinaki Bhattacharjee ([@pinakipb2](https://github.com/pinakipb2))\\n- Rapha\xebl Barbazza ([@rbarbazz](https://github.com/rbarbazz))\\n- Rashid ([@rashidmya](https://github.com/rashidmya))\\n- Ryosuke Igarashi ([@cm-igarashi-ryosuke](https://github.com/cm-igarashi-ryosuke))\\n- SADIK KUZU ([@sadikkuzu](https://github.com/sadikkuzu))\\n- Sanjaiyan Parthipan ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))\\n- Serenus ([@Kesyau](https://github.com/Kesyau))\\n- Shahriar ([@ShahriarKh](https://github.com/ShahriarKh))\\n- Shashank Kumar ([@shawshankkumar](https://github.com/shawshankkumar))\\n- Shun Wakatsuki ([@shwaka](https://github.com/shwaka))\\n- Silvestar Bistrovi\u0107 ([@maliMirkec](https://github.com/maliMirkec))\\n- Sujal Gupta ([@heysujal](https://github.com/heysujal))\\n- Sunghyun Cho ([@anaclumos](https://github.com/anaclumos))\\n- Surav Shrestha ([@suravshrestha](https://github.com/suravshrestha))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tamal Anwar Chowdhury ([@tamalchowdhury](https://github.com/tamalchowdhury))\\n- Tarun Chauhan ([@tarunrajput](https://github.com/tarunrajput))\\n- Tatsunori Uchino ([@tats-u](https://github.com/tats-u))\\n- Thad Guidry ([@thadguidry](https://github.com/thadguidry))\\n- Tom Mrazauskas ([@mrazauskas](https://github.com/mrazauskas))\\n- Viktor Malmedal ([@JohnVicke](https://github.com/JohnVicke))\\n- Waldir Pimenta ([@waldyrious](https://github.com/waldyrious))\\n- Wan Sim ([@0420syj](https://github.com/0420syj))\\n- Webber Takken ([@webbertakken](https://github.com/webbertakken))\\n- Will Ceolin ([@wceolin](https://github.com/wceolin))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- Zwyx ([@Zwyx](https://github.com/Zwyx))\\n- [@Dr-Electron](https://github.com/Dr-Electron)\\n- [@FlorinaPacurar](https://github.com/FlorinaPacurar)\\n- [@Mogyuchi](https://github.com/Mogyuchi)\\n- [@Sainan](https://github.com/Sainan)\\n- [@VinceCYLiao](https://github.com/VinceCYLiao)\\n- [@allyw2002](https://github.com/allyw2002)\\n- [@bitpredator](https://github.com/bitpredator)\\n- [@conlacda](https://github.com/conlacda)\\n- [@dawei-wang](https://github.com/dawei-wang)\\n- [@la55u](https://github.com/la55u)\\n- [@mcallisto](https://github.com/mcallisto)\\n- [@prateekbytes](https://github.com/prateekbytes)\\n- [@qwerzl](https://github.com/qwerzl)\\n- [@rsteele6](https://github.com/rsteele6)\\n- [@samatt14](https://github.com/samatt14)\\n- [@thedevwonder](https://github.com/thedevwonder)\\n- [@yosukekato165](https://github.com/yosukekato165)\\n- ozaki ([@OzakIOne](https://github.com/OzakIOne))\\n- sykp241095 ([@sykp241095](https://github.com/sykp241095))\\n- \u521D\u51AC ([@chudongvip](https://github.com/chudongvip))"},{"id":"/2.4.3","metadata":{"permalink":"/changelog/2.4.3","source":"@site/changelog/source/2.4.3.md","title":"2.4.3","description":"Bug Fix","date":"2023-09-20T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Mikey O\'Toole","alias":"homotechsual","url":"https://github.com/homotechsual","imageURL":"https://github.com/homotechsual.png","key":"homotechsual","page":null},{"name":"Ori Shalom","alias":"ori-shalom","url":"https://github.com/ori-shalom","imageURL":"https://github.com/ori-shalom.png","key":"ori-shalom","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"TheCatLady","alias":"TheCatLady","url":"https://github.com/TheCatLady","imageURL":"https://github.com/TheCatLady.png","key":"TheCatLady","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2023-09-20T20:00","authors":["homotechsual","ori-shalom","slorber","TheCatLady"]},"unlisted":false,"prevItem":{"title":"3.0.0","permalink":"/changelog/3.0.0"},"nextItem":{"title":"2.4.2","permalink":"/changelog/2.4.2"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-docs`\\n - [#9107](https://github.com/facebook/docusaurus/pull/9107) fix(content-docs): sidebar generator should return customProps for doc items ([@TheCatLady](https://github.com/TheCatLady))\\n- `docusaurus-theme-classic`\\n - [#9108](https://github.com/facebook/docusaurus/pull/9108) feat(theme-classic): add description & keywords microdata to blog posts ([@TheCatLady](https://github.com/TheCatLady))\\n - [#9099](https://github.com/facebook/docusaurus/pull/9099) fix(theme): only set classname on ul elements if they have an existing class ([@homotechsual](https://github.com/homotechsual))\\n - [#9243](https://github.com/facebook/docusaurus/pull/9243) fix(theme-common): ThemedComponent should display something when JS is disabled ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#9130](https://github.com/facebook/docusaurus/pull/9130) fix(theme): canonical url should be not change after hydration if url accessed with/without trailing slash ([@ori-shalom](https://github.com/ori-shalom))\\n\\n## Committers: 4\\n\\n- Mikey O\'Toole ([@homotechsual](https://github.com/homotechsual))\\n- Ori Shalom ([@ori-shalom](https://github.com/ori-shalom))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- [@TheCatLady](https://github.com/TheCatLady)"},{"id":"/2.4.2","metadata":{"permalink":"/changelog/2.4.2","source":"@site/changelog/source/2.4.2.md","title":"2.4.2","description":"Bad npm publish, please use 2.4.3","date":"2023-09-20T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2023-09-20T19:00"},"unlisted":false,"prevItem":{"title":"2.4.3","permalink":"/changelog/2.4.3"},"nextItem":{"title":"2.4.1","permalink":"/changelog/2.4.1"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\nBad npm publish, please use 2.4.3"},{"id":"/2.4.1","metadata":{"permalink":"/changelog/2.4.1","source":"@site/changelog/source/2.4.1.md","title":"2.4.1","description":"Bug Fix","date":"2023-05-15T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Andrew Lyons","alias":"andrewnicols","url":"https://github.com/andrewnicols","imageURL":"https://github.com/andrewnicols.png","key":"andrewnicols","page":null},{"name":"Armano","alias":"armano2","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png","key":"armano2","page":null},{"name":"MetuMortis","alias":"LiberaTeMetuMortis","url":"https://github.com/LiberaTeMetuMortis","imageURL":"https://github.com/LiberaTeMetuMortis.png","key":"LiberaTeMetuMortis","page":null},{"name":"Aleksandr Vladykin","alias":"morsko1","url":"https://github.com/morsko1","imageURL":"https://github.com/morsko1.png","key":"morsko1","page":null},{"name":"Sachin Nanayakkara","alias":"SACHINnANYAKKARA","url":"https://github.com/SACHINnANYAKKARA","imageURL":"https://github.com/SACHINnANYAKKARA.png","key":"SACHINnANYAKKARA","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tarun Chauhan","alias":"tarunrajput","url":"https://github.com/tarunrajput","imageURL":"https://github.com/tarunrajput.png","key":"tarunrajput","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2023-05-15T20:00","authors":["andrewnicols","armano2","LiberaTeMetuMortis","morsko1","SACHINnANYAKKARA","slorber","tarunrajput"]},"unlisted":false,"prevItem":{"title":"2.4.2","permalink":"/changelog/2.4.2"},"nextItem":{"title":"2.4.0","permalink":"/changelog/2.4.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8971](https://github.com/facebook/docusaurus/pull/8971) fix(theme): fix collapsible sidebar behavior when prefers-reduced-motion ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-translations`\\n - [#8933](https://github.com/facebook/docusaurus/pull/8933) fix(theme-translations): fix Turkish translation for aria label \\"Enter key\\" ([@LiberaTeMetuMortis](https://github.com/LiberaTeMetuMortis))\\n- `docusaurus`\\n - [#8908](https://github.com/facebook/docusaurus/pull/8908) fix(core): Correct yarn upgrade command for yarn 2.x ([@andrewnicols](https://github.com/andrewnicols))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-common`, `docusaurus-utils-common`, `docusaurus`\\n - [#8909](https://github.com/facebook/docusaurus/pull/8909) fix(theme): add \\\\_\\\\_ prefix to technical anchors, search crawlers (Algolia) should ignore them ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-common`\\n - [#8906](https://github.com/facebook/docusaurus/pull/8906) fix(theme-common): fix collapsible component with prefers-reduced-motion ([@slorber](https://github.com/slorber))\\n - [#8873](https://github.com/facebook/docusaurus/pull/8873) fix(theme-common): fix confusing theme error message: bad sidebar id suggestions ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`\\n - [#8874](https://github.com/facebook/docusaurus/pull/8874) fix(utils): handle Markdown links with spaces to route correctly ([@morsko1](https://github.com/morsko1))\\n- `docusaurus-theme-classic`, `docusaurus-theme-translations`\\n - [#8842](https://github.com/facebook/docusaurus/pull/8842) fix(theme-translations): remove redundant navigation text in aria label ([@tarunrajput](https://github.com/tarunrajput))\\n- `create-docusaurus`\\n - [#8831](https://github.com/facebook/docusaurus/pull/8831) fix(create): add missing await ([@SACHINnANYAKKARA](https://github.com/SACHINnANYAKKARA))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#8862](https://github.com/facebook/docusaurus/pull/8862) refactor(theme): expose copy, success and word-wrap icons as standalone components ([@armano2](https://github.com/armano2))\\n\\n## Committers: 7\\n\\n- Aleksandr Vladykin ([@morsko1](https://github.com/morsko1))\\n- Andrew Lyons ([@andrewnicols](https://github.com/andrewnicols))\\n- Armano ([@armano2](https://github.com/armano2))\\n- MetuMortis ([@LiberaTeMetuMortis](https://github.com/LiberaTeMetuMortis))\\n- Sachin Nanayakkara ([@SACHINnANYAKKARA](https://github.com/SACHINnANYAKKARA))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tarun Chauhan ([@tarunrajput](https://github.com/tarunrajput))"},{"id":"/2.4.0","metadata":{"permalink":"/changelog/2.4.0","source":"@site/changelog/source/2.4.0.md","title":"2.4.0","description":"New Feature","date":"2023-03-23T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Anas","alias":"Anasqx","url":"https://github.com/Anasqx","imageURL":"https://github.com/Anasqx.png","key":"Anasqx","page":null},{"name":"Armano","alias":"armano2","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png","key":"armano2","page":null},{"name":"biplavmz","alias":"biplavmz","url":"https://github.com/biplavmz","imageURL":"https://github.com/biplavmz.png","key":"biplavmz","page":null},{"name":"Dewansh Thakur","alias":"dewanshDT","url":"https://github.com/dewanshDT","imageURL":"https://github.com/dewanshDT.png","key":"dewanshDT","page":null},{"name":"Petter Dr\xf8nnen","alias":"dr0nn1","url":"https://github.com/dr0nn1","imageURL":"https://github.com/dr0nn1.png","key":"dr0nn1","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Kagan","alias":"kagankan","url":"https://github.com/kagankan","imageURL":"https://github.com/kagankan.png","key":"kagankan","page":null},{"name":"Mysterious_Dev","alias":"Mysterious-Dev","url":"https://github.com/Mysterious-Dev","imageURL":"https://github.com/Mysterious-Dev.png","key":"Mysterious-Dev","page":null},{"name":"Moritz St\xfcckler","alias":"pReya","url":"https://github.com/pReya","imageURL":"https://github.com/pReya.png","key":"pReya","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tanner Dolby","alias":"tannerdolby","url":"https://github.com/tannerdolby","imageURL":"https://github.com/tannerdolby.png","key":"tannerdolby","page":null},{"name":"TrueQAP","alias":"trueqap","url":"https://github.com/trueqap","imageURL":"https://github.com/trueqap.png","key":"trueqap","page":null},{"name":"Vishruta Patil","alias":"Vishruta-Patil","url":"https://github.com/Vishruta-Patil","imageURL":"https://github.com/Vishruta-Patil.png","key":"Vishruta-Patil","page":null},{"name":"Davide Donadio","alias":"ZarakiKanzaki","url":"https://github.com/ZarakiKanzaki","imageURL":"https://github.com/ZarakiKanzaki.png","key":"ZarakiKanzaki","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2023-03-23T20:00","authors":["Anasqx","armano2","biplavmz","dewanshDT","dr0nn1","Josh-Cena","kagankan","Mysterious-Dev","pReya","slorber","tannerdolby","trueqap","Vishruta-Patil","ZarakiKanzaki"]},"unlisted":false,"prevItem":{"title":"2.4.1","permalink":"/changelog/2.4.1"},"nextItem":{"title":"2.3.1","permalink":"/changelog/2.3.1"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#8236](https://github.com/facebook/docusaurus/pull/8236) feat(content-docs): add support for sidebar item category/link descriptions in generated index page ([@ZarakiKanzaki](https://github.com/ZarakiKanzaki))\\n- `docusaurus-theme-classic`\\n - [#8708](https://github.com/facebook/docusaurus/pull/8708) feat(theme): allow to load a Docusaurus page with theme from query-string: ?docusaurus-theme=dark ([@slorber](https://github.com/slorber))\\n - [#8616](https://github.com/facebook/docusaurus/pull/8616) feat(theme): add ability to translate navbar+footer logo alt text ([@Mysterious-Dev](https://github.com/Mysterious-Dev))\\n- `docusaurus-remark-plugin-npm2yarn`\\n - [#8690](https://github.com/facebook/docusaurus/pull/8690) feat(npm-to-yarn): add support for PnPm and custom converters ([@armano2](https://github.com/armano2))\\n- `docusaurus`\\n - [#8677](https://github.com/facebook/docusaurus/pull/8677) feat(core): add script env variables: NODE_ENV + BABEL_ENV + DOCUSAURUS_CURRENT_LOCALE (temporary i18n workaround) ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8674](https://github.com/facebook/docusaurus/pull/8674) feat(theme-classic): respect `prefers-reduced-motion: reduce` mediaquery, bump Infima to alpha.43 ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-translations`\\n - [#8668](https://github.com/facebook/docusaurus/pull/8668) feat(theme-translations): add Hungarian theme translations ([@trueqap](https://github.com/trueqap))\\n - [#8631](https://github.com/facebook/docusaurus/pull/8631) feat(theme-translations): add Norwegian (Bokm\xe5l) theme translation ([@dr0nn1](https://github.com/dr0nn1))\\n- `docusaurus-theme-common`\\n - [#8656](https://github.com/facebook/docusaurus/pull/8656) feat(theme-common): allow passing a string for details summary ([@pReya](https://github.com/pReya))\\n- `docusaurus-plugin-google-gtag`\\n - [#8620](https://github.com/facebook/docusaurus/pull/8620) feat(gtag-plugin): gtag should support multiple tracking ids, notably for the UA => GA4 transition ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#8803](https://github.com/facebook/docusaurus/pull/8803) fix(theme): codeblock buttons should be kept on the right when using RTL locale ([@Vishruta-Patil](https://github.com/Vishruta-Patil))\\n - [#8615](https://github.com/facebook/docusaurus/pull/8615) fix(theme): improve color toggle when using dark navbar ([@dewanshDT](https://github.com/dewanshDT))\\n - [#8699](https://github.com/facebook/docusaurus/pull/8699) fix(theme-classic): fix tab focus bug in dropdown (#8697) ([@kagankan](https://github.com/kagankan))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8801](https://github.com/facebook/docusaurus/pull/8801) fix(theme): allow tabs children to be falsy ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-common`, `docusaurus-theme-search-algolia`\\n - [#8757](https://github.com/facebook/docusaurus/pull/8757) fix(search): search page should react to querystring changes + cleanup/refactor ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#8746](https://github.com/facebook/docusaurus/pull/8746) fix(core): baseUrl error banner link anchor case ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-translations`\\n - [#8744](https://github.com/facebook/docusaurus/pull/8744) fix(theme-translations): fix wrong arabic words (tip/next) ([@Anasqx](https://github.com/Anasqx))\\n\\n## :nail_care: Polish\\n\\n- `create-docusaurus`\\n - [#8712](https://github.com/facebook/docusaurus/pull/8712) polish(create-docusaurus): the starter template should use a navbar item \\"docSidebar\\" instead of \\"doc\\" (less fragile on updates) ([@biplavmz](https://github.com/biplavmz))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-common`, `docusaurus`\\n - [#8735](https://github.com/facebook/docusaurus/pull/8735) polish(theme): better error messages on navbar item rendering failures + ErrorCauseBoundary API ([@tannerdolby](https://github.com/tannerdolby))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus`\\n - [#8736](https://github.com/facebook/docusaurus/pull/8736) polish(core): better styling for error screens ([@tannerdolby](https://github.com/tannerdolby))\\n\\n## Committers: 14\\n\\n- Anas ([@Anasqx](https://github.com/Anasqx))\\n- Armano ([@armano2](https://github.com/armano2))\\n- Davide Donadio ([@ZarakiKanzaki](https://github.com/ZarakiKanzaki))\\n- Dewansh Thakur ([@dewanshDT](https://github.com/dewanshDT))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Kagan ([@kagankan](https://github.com/kagankan))\\n- Moritz St\xfcckler ([@pReya](https://github.com/pReya))\\n- Mysterious_Dev ([@Mysterious-Dev](https://github.com/Mysterious-Dev))\\n- Petter Dr\xf8nnen ([@dr0nn1](https://github.com/dr0nn1))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tanner Dolby ([@tannerdolby](https://github.com/tannerdolby))\\n- TrueQAP ([@trueqap](https://github.com/trueqap))\\n- Vishruta Patil ([@Vishruta-Patil](https://github.com/Vishruta-Patil))\\n- [@biplavmz](https://github.com/biplavmz)"},{"id":"/2.3.1","metadata":{"permalink":"/changelog/2.3.1","source":"@site/changelog/source/2.3.1.md","title":"2.3.1","description":"Bug Fix","date":"2023-02-03T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"S\xe9bastien Castiel","alias":"scastiel","url":"https://github.com/scastiel","imageURL":"https://github.com/scastiel.png","key":"scastiel","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2023-02-03T20:00","authors":["Josh-Cena","scastiel","slorber"]},"unlisted":false,"prevItem":{"title":"2.4.0","permalink":"/changelog/2.4.0"},"nextItem":{"title":"2.3.0","permalink":"/changelog/2.3.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-common`\\n - [#8628](https://github.com/facebook/docusaurus/pull/8628) fix(theme-common): fix issue in tab scroll position restoration on tab click ([@slorber](https://github.com/slorber))\\n - [#8619](https://github.com/facebook/docusaurus/pull/8619) fix(theme-common): localStorage utils dispatch too many storage events leading to infinite loop ([@slorber](https://github.com/slorber))\\n - [#8618](https://github.com/facebook/docusaurus/pull/8618) fix(theme-common): prepare usage of useSyncExternalStore compatibility with React 18 ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8593](https://github.com/facebook/docusaurus/pull/8593) fix(theme-classic): allow rendering single tab item ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-utils`\\n - [#8606](https://github.com/facebook/docusaurus/pull/8606) fix(utils): handle CRLF when parsing MDX imports ([@scastiel](https://github.com/scastiel))\\n- `docusaurus-preset-classic`\\n - [#8597](https://github.com/facebook/docusaurus/pull/8597) fix(preset-classic): install the right plugin for googleTagManager ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-translations`\\n - [#8614](https://github.com/facebook/docusaurus/pull/8614) chore(theme-translations): complete zh translations ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :robot: Dependencies\\n\\n- `docusaurus-plugin-client-redirects`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#8610](https://github.com/facebook/docusaurus/pull/8610) chore(deps): bump eta from 1.12.3 to 2.0.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n\\n## Committers: 3\\n\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- S\xe9bastien Castiel ([@scastiel](https://github.com/scastiel))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))"},{"id":"/2.3.0","metadata":{"permalink":"/changelog/2.3.0","source":"@site/changelog/source/2.3.0.md","title":"2.3.0","description":"New Feature","date":"2023-01-26T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Danny Kim","alias":"0916dhkim","url":"https://github.com/0916dhkim","imageURL":"https://github.com/0916dhkim.png","key":"0916dhkim","page":null},{"name":"Riccardo","alias":"3v0k4","url":"https://github.com/3v0k4","imageURL":"https://github.com/3v0k4.png","key":"3v0k4","page":null},{"name":"Denis Al-Khelali","alias":"denis-alkhelali","url":"https://github.com/denis-alkhelali","imageURL":"https://github.com/denis-alkhelali.png","key":"denis-alkhelali","page":null},{"name":"Dongjoon Lee","alias":"Djunnni","url":"https://github.com/Djunnni","imageURL":"https://github.com/Djunnni.png","key":"Djunnni","page":null},{"name":"Frieder Bluemle","alias":"friederbluemle","url":"https://github.com/friederbluemle","imageURL":"https://github.com/friederbluemle.png","key":"friederbluemle","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Josh Goldberg","alias":"JoshuaKGoldberg","url":"https://github.com/JoshuaKGoldberg","imageURL":"https://github.com/JoshuaKGoldberg.png","key":"JoshuaKGoldberg","page":null},{"name":"Lachlan Heywood","alias":"lachieh","url":"https://github.com/lachieh","imageURL":"https://github.com/lachieh.png","key":"lachieh","page":null},{"name":"Lane Goolsby","alias":"lanegoolsby","url":"https://github.com/lanegoolsby","imageURL":"https://github.com/lanegoolsby.png","key":"lanegoolsby","page":null},{"name":"Matija Sirk","alias":"MatijaSi","url":"https://github.com/MatijaSi","imageURL":"https://github.com/MatijaSi.png","key":"MatijaSi","page":null},{"name":"Muhammad Hammad","alias":"mhnaeem","url":"https://github.com/mhnaeem","imageURL":"https://github.com/mhnaeem.png","key":"mhnaeem","page":null},{"name":"mturoci","alias":"mturoci","url":"https://github.com/mturoci","imageURL":"https://github.com/mturoci.png","key":"mturoci","page":null},{"name":"\u5B8B\u9526\u4E30","alias":"SJFCS","url":"https://github.com/SJFCS","imageURL":"https://github.com/SJFCS.png","key":"SJFCS","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Stefan Norberg","alias":"stnor","url":"https://github.com/stnor","imageURL":"https://github.com/stnor.png","key":"stnor","page":null},{"name":"Thomas.CA","alias":"Thomascogez","url":"https://github.com/Thomascogez","imageURL":"https://github.com/Thomascogez.png","key":"Thomascogez","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2023-01-26T20:00","authors":["0916dhkim","3v0k4","denis-alkhelali","Djunnni","friederbluemle","johnnyreilly","Josh-Cena","JoshuaKGoldberg","lachieh","lanegoolsby","MatijaSi","mhnaeem","mturoci","SJFCS","slorber","stnor","Thomascogez"]},"unlisted":false,"prevItem":{"title":"2.3.1","permalink":"/changelog/2.3.1"},"nextItem":{"title":"2.2.0","permalink":"/changelog/2.2.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-translations`\\n - [#8541](https://github.com/facebook/docusaurus/pull/8541) feat(theme-translations): default translations for Slovenian (sl-SI) ([@MatijaSi](https://github.com/MatijaSi))\\n- `docusaurus-plugin-content-blog`\\n - [#8378](https://github.com/facebook/docusaurus/pull/8378) feat(blog): add options.createFeedItems to filter/limit/transform feed items ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus`\\n - [#8225](https://github.com/facebook/docusaurus/pull/8225) feat(theme-classic): store selected tab in query string. ([@mturoci](https://github.com/mturoci))\\n- `docusaurus`\\n - [#8397](https://github.com/facebook/docusaurus/pull/8397) feat(core): deploy CLI - add support for git url \\"insteadOf\\": use \'remote get-url\' to determine source repo url ([@friederbluemle](https://github.com/friederbluemle))\\n- `docusaurus-theme-search-algolia`\\n - [#8428](https://github.com/facebook/docusaurus/pull/8428) feat(theme-algolia): add option.replaceSearchResultPathname to process/replaceAll search result urls\\n- `docusaurus-plugin-google-tag-manager`\\n - [#8470](https://github.com/facebook/docusaurus/pull/8470) feat(plugin-google-tag-manager): add new google-tag-manager plugin + deprecate google-analytics plugin ([@lanegoolsby](https://github.com/lanegoolsby))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-mdx-loader`\\n - [#8303](https://github.com/facebook/docusaurus/pull/8303) fix(mdx-loader): support nested admonitions\\n - [#8282](https://github.com/facebook/docusaurus/pull/8282) fix(mermaid): fix Mermaid integration for v9.2 release\\n- `docusaurus-theme-common`\\n - [#8539](https://github.com/facebook/docusaurus/pull/8539) fix(algolia): make search footer respect searchPagePath ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#8538](https://github.com/facebook/docusaurus/pull/8538) fix(core): avoid hash collision when generating chunk names ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#8481](https://github.com/facebook/docusaurus/pull/8481) fix(core): explicitly define CopyWebpackPlugin toType: \'dir\' ([@Thomascogez](https://github.com/Thomascogez))\\n - [#8342](https://github.com/facebook/docusaurus/pull/8342) fix(core): normalize input for poll option ([@mhnaeem](https://github.com/mhnaeem))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#8445](https://github.com/facebook/docusaurus/pull/8445) fix(theme-classic) extract HomeBreadcrumbItem + fix swizzle bugs ([@3v0k4](https://github.com/3v0k4))\\n- `docusaurus-theme-search-algolia`\\n - [#8462](https://github.com/facebook/docusaurus/pull/8462) fix(search-algolia): pass custom transformItems function to SearchBar ([@mturoci](https://github.com/mturoci))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8486](https://github.com/facebook/docusaurus/pull/8486) fix(theme): refactor Tabs, make groupId + queryString work fine together ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#8463](https://github.com/facebook/docusaurus/pull/8463) fix(theme-classic): content container grow to take all the available space ([@Djunnni](https://github.com/Djunnni))\\n - [#8328](https://github.com/facebook/docusaurus/pull/8328) fix(theme): preserve sidebar height on collapse ([@0916dhkim](https://github.com/0916dhkim))\\n - [#8350](https://github.com/facebook/docusaurus/pull/8350) fix(theme): forward className prop in theme-classic\'s Heading ([@JoshuaKGoldberg](https://github.com/JoshuaKGoldberg))\\n- `docusaurus-theme-translations`\\n - [#8424](https://github.com/facebook/docusaurus/pull/8424) fix(translations): typo in lastUpdatedAtBy Vietnamese translation ([@slorber](https://github.com/slorber))\\n - [#8289](https://github.com/facebook/docusaurus/pull/8289) fix(theme-translations): complete Turkish theme translations\\n - [#8406](https://github.com/facebook/docusaurus/pull/8406) fix(translations): complete farsi theme translations\\n - [#8450](https://github.com/facebook/docusaurus/pull/8450) fix(theme-translations): complete Vietnamese theme translations\\n - [#8525](https://github.com/facebook/docusaurus/pull/8525) chore(theme-translations): complete pl translations\\n- `docusaurus-plugin-content-blog`\\n - [#8381](https://github.com/facebook/docusaurus/pull/8381) fix(content-blog): blog Atom feed id + RSS feed guid should be fully qualified urls ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `docusaurus-plugin-content-docs`\\n - [#8275](https://github.com/facebook/docusaurus/pull/8275) fix(content-docs): add trailing slash to contentDirs, before passing it to isMDXPartial ([@denis-alkhelali](https://github.com/denis-alkhelali))\\n- `docusaurus-utils`\\n - [#8314](https://github.com/facebook/docusaurus/pull/8314) fix(utils): allow partially backticked markdown h1 contentTitles ([@JoshuaKGoldberg](https://github.com/JoshuaKGoldberg))\\n- `create-docusaurus`, `docusaurus-theme-classic`\\n - [#8279](https://github.com/facebook/docusaurus/pull/8279) fix(create-docusaurus): improve init template misleading doc + add Docuaurus social card ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#8445](https://github.com/facebook/docusaurus/pull/8445) fix(theme-classic) extract HomeBreadcrumbItem + fix swizzle bugs ([@3v0k4](https://github.com/3v0k4))\\n- `docusaurus-theme-translations`\\n - [#8423](https://github.com/facebook/docusaurus/pull/8423) fix(translations): complete Chinese theme translations ([@SJFCS](https://github.com/SJFCS))\\n - [#8312](https://github.com/facebook/docusaurus/pull/8312) fix(theme-translations): complete Swedish theme translations ([@stnor](https://github.com/stnor))\\n- `eslint-plugin`\\n - [#8281](https://github.com/facebook/docusaurus/pull/8281) feat(eslint-plugin): add plugin to exported configs ([@lachieh](https://github.com/lachieh))\\n\\n## Committers: 16\\n\\n- Danny Kim ([@0916dhkim](https://github.com/0916dhkim))\\n- Denis Al-Khelali ([@denis-alkhelali](https://github.com/denis-alkhelali))\\n- Dongjoon Lee ([@Djunnni](https://github.com/Djunnni))\\n- Frieder Bluemle ([@friederbluemle](https://github.com/friederbluemle))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Josh Goldberg ([@JoshuaKGoldberg](https://github.com/JoshuaKGoldberg))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Lachlan Heywood ([@lachieh](https://github.com/lachieh))\\n- Lane Goolsby ([@lanegoolsby](https://github.com/lanegoolsby))\\n- Matija Sirk ([@MatijaSi](https://github.com/MatijaSi))\\n- Muhammad Hammad ([@mhnaeem](https://github.com/mhnaeem))\\n- Riccardo ([@3v0k4](https://github.com/3v0k4))\\n- Stefan Norberg ([@stnor](https://github.com/stnor))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Thomas.CA ([@Thomascogez](https://github.com/Thomascogez))\\n- [@mturoci](https://github.com/mturoci)\\n- \u5B8B\u9526\u4E30 ([@SJFCS](https://github.com/SJFCS))"},{"id":"/2.2.0","metadata":{"permalink":"/changelog/2.2.0","source":"@site/changelog/source/2.2.0.md","title":"2.2.0","description":"New Feature","date":"2022-10-29T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Adnan Hashmi","alias":"adnanhashmi09","url":"https://github.com/adnanhashmi09","imageURL":"https://github.com/adnanhashmi09.png","key":"adnanhashmi09","page":null},{"name":"Johan Fagerberg","alias":"birjj","url":"https://github.com/birjj","imageURL":"https://github.com/birjj.png","key":"birjj","page":null},{"name":"evan","alias":"e-im","url":"https://github.com/e-im","imageURL":"https://github.com/e-im.png","key":"e-im","page":null},{"name":"forgeRW","alias":"forgeRW","url":"https://github.com/forgeRW","imageURL":"https://github.com/forgeRW.png","key":"forgeRW","page":null},{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},{"name":"Mikey O\'Toole","alias":"homotechsual","url":"https://github.com/homotechsual","imageURL":"https://github.com/homotechsual.png","key":"homotechsual","page":null},{"name":"Jeferson S. Brito","alias":"jeferson-sb","url":"https://github.com/jeferson-sb","imageURL":"https://github.com/jeferson-sb.png","key":"jeferson-sb","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Jan Peer St\xf6cklmair","alias":"JPeer264","url":"https://github.com/JPeer264","imageURL":"https://github.com/JPeer264.png","key":"JPeer264","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"LittleboyHarry","alias":"LittleboyHarry","url":"https://github.com/LittleboyHarry","imageURL":"https://github.com/LittleboyHarry.png","key":"LittleboyHarry","page":null},{"name":"mturoci","alias":"mturoci","url":"https://github.com/mturoci","imageURL":"https://github.com/mturoci.png","key":"mturoci","page":null},{"name":"Nguy\u1EC5n Th\xe0nh Nam","alias":"namnguyenthanhwork","url":"https://github.com/namnguyenthanhwork","imageURL":"https://github.com/namnguyenthanhwork.png","key":"namnguyenthanhwork","page":null},{"name":"Masahiko Hara","alias":"pasora","url":"https://github.com/pasora","imageURL":"https://github.com/pasora.png","key":"pasora","page":null},{"name":"Pranav Joglekar","alias":"Pranav2612000","url":"https://github.com/Pranav2612000","imageURL":"https://github.com/Pranav2612000.png","key":"Pranav2612000","page":null},{"name":"Ramazan SANCAR","alias":"ramazansancar","url":"https://github.com/ramazansancar","imageURL":"https://github.com/ramazansancar.png","key":"ramazansancar","page":null},{"name":"Sanjaiyan Parthipan","alias":"sanjaiyan-dev","url":"https://github.com/sanjaiyan-dev","imageURL":"https://github.com/sanjaiyan-dev.png","key":"sanjaiyan-dev","page":null},{"name":"Shanmughapriyan S","alias":"shanpriyan","url":"https://github.com/shanpriyan","imageURL":"https://github.com/shanpriyan.png","key":"shanpriyan","page":null},{"name":"Sam Wall","alias":"sjwall","url":"https://github.com/sjwall","imageURL":"https://github.com/sjwall.png","key":"sjwall","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Xabier Lahuerta Vazquez","alias":"Xabilahu","url":"https://github.com/Xabilahu","imageURL":"https://github.com/Xabilahu.png","key":"Xabilahu","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-10-29T20:00","authors":["adnanhashmi09","birjj","e-im","forgeRW","forresst","homotechsual","jeferson-sb","johnnyreilly","Josh-Cena","JPeer264","lex111","LittleboyHarry","mturoci","namnguyenthanhwork","pasora","Pranav2612000","ramazansancar","sanjaiyan-dev","shanpriyan","sjwall","slorber","Xabilahu"]},"unlisted":false,"prevItem":{"title":"2.3.0","permalink":"/changelog/2.3.0"},"nextItem":{"title":"2.1.0","permalink":"/changelog/2.1.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-client-redirects`\\n - [#8227](https://github.com/facebook/docusaurus/pull/8227) feat(plugin-client-redirects): keep the query string + hash ([@Xabilahu](https://github.com/Xabilahu))\\n- `docusaurus`\\n - [#8210](https://github.com/facebook/docusaurus/pull/8210) feat(core): add --config param to swizzle command ([@e-im](https://github.com/e-im))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-mermaid`, `docusaurus-types`, `docusaurus`\\n - [#7490](https://github.com/facebook/docusaurus/pull/7490) feat: support mermaid code blocks in Markdown ([@sjwall](https://github.com/sjwall))\\n- `docusaurus-types`, `docusaurus`\\n - [#8151](https://github.com/facebook/docusaurus/pull/8151) feat(core): siteConfig.headTags API to render extra tags in document head ([@johnnyreilly](https://github.com/johnnyreilly))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-ideal-image`\\n - [#8250](https://github.com/facebook/docusaurus/pull/8250) fix(ideal-image): do not pass down `img` prop ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-common`\\n - [#8246](https://github.com/facebook/docusaurus/pull/8246) fix(mdx-loader): properly unwrap mdxAdmonitionTitle placeholder ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`\\n - [#8234](https://github.com/facebook/docusaurus/pull/8234) fix(plugin-content-docs): fix error message context (error cause) when doc processing fails ([@shanpriyan](https://github.com/shanpriyan))\\n- `docusaurus-theme-classic`, `docusaurus-theme-translations`\\n - [#8207](https://github.com/facebook/docusaurus/pull/8207) fix(theme-classic): hamburger menu control navigation by keyboard ([@jeferson-sb](https://github.com/jeferson-sb))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8204](https://github.com/facebook/docusaurus/pull/8204) fix(theme-classic): fix SkipToContent without JS , refactor, make it public theming API ([@mturoci](https://github.com/mturoci))\\n - [#8059](https://github.com/facebook/docusaurus/pull/8059) fix(theme): preserve url ?search#hash on navbar version/locale dropdowns navigations ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#8192](https://github.com/facebook/docusaurus/pull/8192) fix(core): throw error for invalid URL in config file ([@forgeRW](https://github.com/forgeRW))\\n- `docusaurus-theme-classic`\\n - [#8174](https://github.com/facebook/docusaurus/pull/8174) fix(theme): announce theme switches ([@mturoci](https://github.com/mturoci))\\n - [#8190](https://github.com/facebook/docusaurus/pull/8190) fix(theme): add more tag names to inline code element set ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#8163](https://github.com/facebook/docusaurus/pull/8163) fix(theme): mobile navbar & skipToContent should cover announcementBar ([@adnanhashmi09](https://github.com/adnanhashmi09))\\n - [#8068](https://github.com/facebook/docusaurus/pull/8068) fix(theme): preserve line breaks when copying code with showLineNumbers in Firefox ([@LittleboyHarry](https://github.com/LittleboyHarry))\\n- `docusaurus-utils`\\n - [#8137](https://github.com/facebook/docusaurus/pull/8137) fix(utils): remove non-ASCII limitation for path normalization ([@birjj](https://github.com/birjj))\\n - [#8158](https://github.com/facebook/docusaurus/pull/8158) fix(content-blog): make RSS feed generation work with slugs with .html extension ([@Pranav2612000](https://github.com/Pranav2612000))\\n- `docusaurus-theme-translations`\\n - [#8105](https://github.com/facebook/docusaurus/pull/8105) fix(theme-translations): complete turkish theme default translations ([@ramazansancar](https://github.com/ramazansancar))\\n - [#8087](https://github.com/facebook/docusaurus/pull/8087) fix(theme-translations): remove extra vi translations ([@namnguyenthanhwork](https://github.com/namnguyenthanhwork))\\n- `docusaurus-plugin-client-redirects`\\n - [#8067](https://github.com/facebook/docusaurus/pull/8067) fix(redirect): tolerate trailing slash difference if config is undefined ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-translations`\\n - [#8253](https://github.com/facebook/docusaurus/pull/8253) chore(theme-translations): complete ru translations ([@lex111](https://github.com/lex111))\\n - [#8243](https://github.com/facebook/docusaurus/pull/8243) chore(theme-translations): complete French translations ([@forresst](https://github.com/forresst))\\n - [#8075](https://github.com/facebook/docusaurus/pull/8075) fix(theme-translation): complete Japanese theme default translation ([@pasora](https://github.com/pasora))\\n- `docusaurus`\\n - [#8159](https://github.com/facebook/docusaurus/pull/8159) fix(core): throw error for invalid URL in config file ([@forgeRW](https://github.com/forgeRW))\\n - [#8109](https://github.com/facebook/docusaurus/pull/8109) feat(core): prefetch on mobile touchstart ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))\\n- `docusaurus-theme-classic`\\n - [#8161](https://github.com/facebook/docusaurus/pull/8161) fix(theme): do not show tab content when tabbing over it; show after selection only ([@mturoci](https://github.com/mturoci))\\n - [#8062](https://github.com/facebook/docusaurus/pull/8062) refactor(theme): remove hard-coded tag border-radius ([@homotechsual](https://github.com/homotechsual))\\n- `docusaurus-utils-validation`, `docusaurus`\\n - [#8066](https://github.com/facebook/docusaurus/pull/8066) fix(core): normalize slashes for url/baseUrl instead of throwing ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 22\\n\\n- Adnan Hashmi ([@adnanhashmi09](https://github.com/adnanhashmi09))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Forresst ([@forresst](https://github.com/forresst))\\n- Jan Peer St\xf6cklmair ([@JPeer264](https://github.com/JPeer264))\\n- Jeferson S. Brito ([@jeferson-sb](https://github.com/jeferson-sb))\\n- Johan Fagerberg ([@birjj](https://github.com/birjj))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- LittleboyHarry ([@LittleboyHarry](https://github.com/LittleboyHarry))\\n- Masahiko Hara ([@pasora](https://github.com/pasora))\\n- Mikey O\'Toole ([@homotechsual](https://github.com/homotechsual))\\n- Nguy\u1EC5n Th\xe0nh Nam ([@namnguyenthanhwork](https://github.com/namnguyenthanhwork))\\n- Pranav Joglekar ([@Pranav2612000](https://github.com/Pranav2612000))\\n- Ramazan SANCAR ([@ramazansancar](https://github.com/ramazansancar))\\n- Sam Wall ([@sjwall](https://github.com/sjwall))\\n- Sanjaiyan Parthipan ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))\\n- Shanmughapriyan S ([@shanpriyan](https://github.com/shanpriyan))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Xabier Lahuerta Vazquez ([@Xabilahu](https://github.com/Xabilahu))\\n- [@forgeRW](https://github.com/forgeRW)\\n- [@mturoci](https://github.com/mturoci)\\n- evan ([@e-im](https://github.com/e-im))"},{"id":"/2.1.0","metadata":{"permalink":"/changelog/2.1.0","source":"@site/changelog/source/2.1.0.md","title":"2.1.0","description":"New Feature","date":"2022-09-01T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"adventure-yunfei","alias":"adventure-yunfei","url":"https://github.com/adventure-yunfei","imageURL":"https://github.com/adventure-yunfei.png","key":"adventure-yunfei","page":null},{"name":"Bagdasar Ovsepyan","alias":"b-ovsepian","url":"https://github.com/b-ovsepian","imageURL":"https://github.com/b-ovsepian.png","key":"b-ovsepian","page":null},{"name":"Ng\xf4 Qu\u1ED1c \u0110\u1EA1t","alias":"datlechin","url":"https://github.com/datlechin","imageURL":"https://github.com/datlechin.png","key":"datlechin","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Kevin \xd8sterkilde","alias":"Kosai106","url":"https://github.com/Kosai106","imageURL":"https://github.com/Kosai106.png","key":"Kosai106","page":null},{"name":"Morgane Dubus","alias":"mdubus","url":"https://github.com/mdubus","imageURL":"https://github.com/mdubus.png","key":"mdubus","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"whiteand","alias":"whiteand","url":"https://github.com/whiteand","imageURL":"https://github.com/whiteand.png","key":"whiteand","page":null},{"name":"Yoni Chechik","alias":"YoniChechik","url":"https://github.com/YoniChechik","imageURL":"https://github.com/YoniChechik.png","key":"YoniChechik","page":null},{"name":"yzhe819","alias":"yzhe819","url":"https://github.com/yzhe819","imageURL":"https://github.com/yzhe819.png","key":"yzhe819","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-09-01T20:00","authors":["adventure-yunfei","b-ovsepian","datlechin","Josh-Cena","Kosai106","mdubus","slorber","whiteand","YoniChechik","yzhe819"]},"unlisted":false,"prevItem":{"title":"2.2.0","permalink":"/changelog/2.2.0"},"nextItem":{"title":"2.0.1","permalink":"/changelog/2.0.1"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8008](https://github.com/facebook/docusaurus/pull/8008) feat(theme): ability to use `<DocCardList>` without items prop, on any doc page ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#7963](https://github.com/facebook/docusaurus/pull/7963) feat(docs): allow to configure noIndex per doc version ([@slorber](https://github.com/slorber))\\n - [#7949](https://github.com/facebook/docusaurus/pull/7949) feat(plugin-docs): docs sidebar item link: support \\"autoAddBaseUrl\\" attribute ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-translations`\\n - [#7953](https://github.com/facebook/docusaurus/pull/7953) feat(theme): adds Ukrainian default theme translations ([@b-ovsepian](https://github.com/b-ovsepian))\\n\\n## :bug: Bug Fix\\n\\n- `create-docusaurus`\\n - [#8032](https://github.com/facebook/docusaurus/pull/8032) fix(create-docusaurus): tutorial and init template improvements ([@slorber](https://github.com/slorber))\\n- `docusaurus-preset-classic`\\n - [#8029](https://github.com/facebook/docusaurus/pull/8029) fix(preset-classic): broken link in \\"unrecognized keys\\" error message ([@mdubus](https://github.com/mdubus))\\n- `docusaurus`\\n - [#7977](https://github.com/facebook/docusaurus/pull/7977) fix(core): preload should support encoded page links ([@adventure-yunfei](https://github.com/adventure-yunfei))\\n - [#7996](https://github.com/facebook/docusaurus/pull/7996) fix(core): CLI command write-translations should extract translations from @docu\u2026 ([@slorber](https://github.com/slorber))\\n - [#7952](https://github.com/facebook/docusaurus/pull/7952) fix(core): allow overriding ssr/dev template meta tags ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-sitemap`\\n - [#7964](https://github.com/facebook/docusaurus/pull/7964) fix(sitemap): filter all routes with robots meta containing noindex ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#7910](https://github.com/facebook/docusaurus/pull/7910) fix(theme-classic): code block line number display with line wrapping ([@yzhe819](https://github.com/yzhe819))\\n - [#7786](https://github.com/facebook/docusaurus/pull/7786) fix: collapse siblings when first category is selected ([@whiteand](https://github.com/whiteand))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#7982](https://github.com/facebook/docusaurus/pull/7982) fix(theme): add aria-label to skip to content link region ([@YoniChechik](https://github.com/YoniChechik))\\n - [#7940](https://github.com/facebook/docusaurus/pull/7940) refactor(theme-classic): split AnnouncementBar, increase z-index, use shadow ([@slorber](https://github.com/slorber))\\n - [#7876](https://github.com/facebook/docusaurus/pull/7876) refactor(theme-classic): make tag text visually certered ([@Kosai106](https://github.com/Kosai106))\\n- `docusaurus-utils`\\n - [#7941](https://github.com/facebook/docusaurus/pull/7941) feat(core): add new Webpack file-loader extensions: avif, mov, mkv, mpg, avi... ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-types`\\n - [#7942](https://github.com/facebook/docusaurus/pull/7942) feat(theme-classic): use lang attribute in navbar locale dropdown items ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-translations`\\n - [#7928](https://github.com/facebook/docusaurus/pull/7928) chore(theme-translations): complete vi translations ([@datlechin](https://github.com/datlechin))\\n\\n## :memo: Documentation\\n\\n- `create-docusaurus`\\n - [#8032](https://github.com/facebook/docusaurus/pull/8032) fix(create-docusaurus): tutorial and init template improvements ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`\\n - [#7905](https://github.com/facebook/docusaurus/pull/7905) docs: remove mention of beta ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 10\\n\\n- Bagdasar Ovsepyan ([@b-ovsepian](https://github.com/b-ovsepian))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Kevin \xd8sterkilde ([@Kosai106](https://github.com/Kosai106))\\n- Morgane Dubus ([@mdubus](https://github.com/mdubus))\\n- Ng\xf4 Qu\u1ED1c \u0110\u1EA1t ([@datlechin](https://github.com/datlechin))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Yoni Chechik ([@YoniChechik](https://github.com/YoniChechik))\\n- [@whiteand](https://github.com/whiteand)\\n- [@yzhe819](https://github.com/yzhe819)\\n- adventure-yunfei ([@adventure-yunfei](https://github.com/adventure-yunfei))"},{"id":"/2.0.1","metadata":{"permalink":"/changelog/2.0.1","source":"@site/changelog/source/2.0.1.md","title":"2.0.1","description":"Fix bad npm publish of 2.0.0","date":"2022-08-01T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-08-01T20:00","authors":["slorber"]},"unlisted":false,"prevItem":{"title":"2.1.0","permalink":"/changelog/2.1.0"},"nextItem":{"title":"2.0.0","permalink":"/changelog/2.0.0"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\nFix bad npm publish of 2.0.0\\n\\n## Committers: 1\\n\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))"},{"id":"/2.0.0","metadata":{"permalink":"/changelog/2.0.0","source":"@site/changelog/source/2.0.0.md","title":"2.0.0","description":"Bad npm publish, please use 2.0.1","date":"2022-08-01T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-08-01T19:00","authors":["Josh-Cena","slorber"]},"unlisted":false,"prevItem":{"title":"2.0.1","permalink":"/changelog/2.0.1"},"nextItem":{"title":"2.0.0-rc.1","permalink":"/changelog/2.0.0-rc.1"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\nBad npm publish, please use 2.0.1\\n\\n## :nail_care: Polish\\n\\n- `docusaurus`\\n - [#7781](https://github.com/facebook/docusaurus/pull/7781) refactor(core): log Docusaurus & Node version before exiting ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 2\\n\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))"},{"id":"/2.0.0-rc.1","metadata":{"permalink":"/changelog/2.0.0-rc.1","source":"@site/changelog/source/2.0.0-rc.1.md","title":"2.0.0-rc.1","description":"Bug Fix","date":"2022-07-14T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Sunghyun Cho","alias":"anaclumos","url":"https://github.com/anaclumos","imageURL":"https://github.com/anaclumos.png","key":"anaclumos","page":null},{"name":"Evan","alias":"DigiPie","url":"https://github.com/DigiPie","imageURL":"https://github.com/DigiPie.png","key":"DigiPie","page":null},{"name":"\u51F1\u6069 Kane","alias":"Gary50613","url":"https://github.com/Gary50613","imageURL":"https://github.com/Gary50613.png","key":"Gary50613","page":null},{"name":"Wes McNamee","alias":"ghostsquad","url":"https://github.com/ghostsquad","imageURL":"https://github.com/ghostsquad.png","key":"ghostsquad","page":null},{"name":"Jeffrey Aven","alias":"jeffreyaven","url":"https://github.com/jeffreyaven","imageURL":"https://github.com/jeffreyaven.png","key":"jeffreyaven","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"LichLord91","alias":"LichLord91","url":"https://github.com/LichLord91","imageURL":"https://github.com/LichLord91.png","key":"LichLord91","page":null},{"name":"Bruce Song","alias":"recallwei","url":"https://github.com/recallwei","imageURL":"https://github.com/recallwei.png","key":"recallwei","page":null},{"name":"Arthur Brugi\xe8re","alias":"RoiArthurB","url":"https://github.com/RoiArthurB","imageURL":"https://github.com/RoiArthurB.png","key":"RoiArthurB","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"The Nguyen","alias":"treoden","url":"https://github.com/treoden","imageURL":"https://github.com/treoden.png","key":"treoden","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-07-14T20:00","authors":["anaclumos","DigiPie","Gary50613","ghostsquad","jeffreyaven","Josh-Cena","LichLord91","recallwei","RoiArthurB","slorber","treoden"]},"unlisted":false,"prevItem":{"title":"2.0.0","permalink":"/changelog/2.0.0"},"nextItem":{"title":"2.0.0-beta.22","permalink":"/changelog/2.0.0-beta.22"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#7776](https://github.com/facebook/docusaurus/pull/7776) fix(core): swizzle --eject js should not copy theme .d.ts files ([@slorber](https://github.com/slorber))\\n - [#7750](https://github.com/facebook/docusaurus/pull/7750) fix(deploy): revert \\"feat(deploy): copy local git config to tmp repo (#7702)\\" ([@ghostsquad](https://github.com/ghostsquad))\\n- `docusaurus-plugin-sitemap`\\n - [#7774](https://github.com/facebook/docusaurus/pull/7774) fix(sitemap): complete gracefully when all pages have noIndex meta ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#7771](https://github.com/facebook/docusaurus/pull/7771) chore: bump Infima to 0.2.0-alpha.42, fix a:hover link bug ([@slorber](https://github.com/slorber))\\n - [#7755](https://github.com/facebook/docusaurus/pull/7755) fix(theme-classic): validate options properly ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7752](https://github.com/facebook/docusaurus/pull/7752) fix(theme-classic): fix Layout theme height CSS ([@LichLord91](https://github.com/LichLord91))\\n- `docusaurus-migrate`\\n - [#7766](https://github.com/facebook/docusaurus/pull/7766) fix(migrate): import siteConfig with file extension ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-search-algolia`\\n - [#7761](https://github.com/facebook/docusaurus/pull/7761) fix(algolia-search): test for canUseIntersectionObserver ([@RoiArthurB](https://github.com/RoiArthurB))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-translations`\\n - [#7762](https://github.com/facebook/docusaurus/pull/7762) chore(theme-translations): complete ko translations ([@anaclumos](https://github.com/anaclumos))\\n\\n## :memo: Documentation\\n\\n- `docusaurus-plugin-content-docs`\\n - [#7706](https://github.com/facebook/docusaurus/pull/7706) docs: release process, versioning, breaking changes, public API surface ([@slorber](https://github.com/slorber))\\n\\n## :wrench: Maintenance\\n\\n- `docusaurus-theme-classic`\\n - [#7777](https://github.com/facebook/docusaurus/pull/7777) refactor(theme): fix duplicate page metadata usage ([@slorber](https://github.com/slorber))\\n - [#7771](https://github.com/facebook/docusaurus/pull/7771) chore: bump Infima to 0.2.0-alpha.42, fix a:hover link bug ([@slorber](https://github.com/slorber))\\n\\n## Committers: 11\\n\\n- Arthur Brugi\xe8re ([@RoiArthurB](https://github.com/RoiArthurB))\\n- Bruce Song ([@recallwei](https://github.com/recallwei))\\n- Evan ([@DigiPie](https://github.com/DigiPie))\\n- Jeffrey Aven ([@jeffreyaven](https://github.com/jeffreyaven))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Sunghyun Cho ([@anaclumos](https://github.com/anaclumos))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- The Nguyen ([@treoden](https://github.com/treoden))\\n- Wes McNamee ([@ghostsquad](https://github.com/ghostsquad))\\n- [@LichLord91](https://github.com/LichLord91)\\n- \u51F1\u6069 Kane ([@Gary50613](https://github.com/Gary50613))"},{"id":"/2.0.0-beta.22","metadata":{"permalink":"/changelog/2.0.0-beta.22","source":"@site/changelog/source/2.0.0-beta.22.md","title":"2.0.0-beta.22","description":"Breaking Change","date":"2022-07-08T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Fl\xe1vio Silva","alias":"201flaviosilva","url":"https://github.com/201flaviosilva","imageURL":"https://github.com/201flaviosilva.png","key":"201flaviosilva","page":null},{"name":"7Wate","alias":"7Wate","url":"https://github.com/7Wate","imageURL":"https://github.com/7Wate.png","key":"7Wate","page":null},{"name":"\u8D64\u57CE\u7ED3\u8863","alias":"AkagiYui","url":"https://github.com/AkagiYui","imageURL":"https://github.com/AkagiYui.png","key":"AkagiYui","page":null},{"name":"alewolf","alias":"alewolf","url":"https://github.com/alewolf","imageURL":"https://github.com/alewolf.png","key":"alewolf","page":null},{"name":"Alexander Nestorov","alias":"alexandernst","url":"https://github.com/alexandernst","imageURL":"https://github.com/alexandernst.png","key":"alexandernst","page":null},{"name":"Ahmed Altomy","alias":"Altomy","url":"https://github.com/Altomy","imageURL":"https://github.com/Altomy.png","key":"Altomy","page":null},{"name":"Sunghyun Cho","alias":"anaclumos","url":"https://github.com/anaclumos","imageURL":"https://github.com/anaclumos.png","key":"anaclumos","page":null},{"name":"Benjamin Cabanes","alias":"bcabanes","url":"https://github.com/bcabanes","imageURL":"https://github.com/bcabanes.png","key":"bcabanes","page":null},{"name":"Ben Myers","alias":"BenDMyers","url":"https://github.com/BenDMyers","imageURL":"https://github.com/BenDMyers.png","key":"BenDMyers","page":null},{"name":"Boulet","alias":"Boulet-","url":"https://github.com/Boulet-","imageURL":"https://github.com/Boulet-.png","key":"Boulet-","page":null},{"name":"Charles Ancheta","alias":"cbebe","url":"https://github.com/cbebe","imageURL":"https://github.com/cbebe.png","key":"cbebe","page":null},{"name":"Clemie McCartney","alias":"clemiee","url":"https://github.com/clemiee","imageURL":"https://github.com/clemiee.png","key":"clemiee","page":null},{"name":"Ng\xf4 Qu\u1ED1c \u0110\u1EA1t","alias":"datlechin","url":"https://github.com/datlechin","imageURL":"https://github.com/datlechin.png","key":"datlechin","page":null},{"name":"Dharsan B","alias":"DharsanB","url":"https://github.com/DharsanB","imageURL":"https://github.com/DharsanB.png","key":"DharsanB","page":null},{"name":"dht","alias":"dht","url":"https://github.com/dht","imageURL":"https://github.com/dht.png","key":"dht","page":null},{"name":"Diego Fran\xe7a","alias":"difranca","url":"https://github.com/difranca","imageURL":"https://github.com/difranca.png","key":"difranca","page":null},{"name":"dpang314","alias":"dpang314","url":"https://github.com/dpang314","imageURL":"https://github.com/dpang314.png","key":"dpang314","page":null},{"name":"emattia","alias":"emattia","url":"https://github.com/emattia","imageURL":"https://github.com/emattia.png","key":"emattia","page":null},{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},{"name":"\u51F1\u6069 Kane","alias":"Gary50613","url":"https://github.com/Gary50613","imageURL":"https://github.com/Gary50613.png","key":"Gary50613","page":null},{"name":"Wes McNamee","alias":"ghostsquad","url":"https://github.com/ghostsquad","imageURL":"https://github.com/ghostsquad.png","key":"ghostsquad","page":null},{"name":"Hyunseung Lee","alias":"HyunseungLee-Travis","url":"https://github.com/HyunseungLee-Travis","imageURL":"https://github.com/HyunseungLee-Travis.png","key":"HyunseungLee-Travis","page":null},{"name":"DOLLE","alias":"JeremyDolle","url":"https://github.com/JeremyDolle","imageURL":"https://github.com/JeremyDolle.png","key":"JeremyDolle","page":null},{"name":"Johnie Hjelm","alias":"johnie","url":"https://github.com/johnie","imageURL":"https://github.com/johnie.png","key":"johnie","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"JP","alias":"jpdriver","url":"https://github.com/jpdriver","imageURL":"https://github.com/jpdriver.png","key":"jpdriver","page":null},{"name":"Joshua Schmitt","alias":"jqshuv","url":"https://github.com/jqshuv","imageURL":"https://github.com/jqshuv.png","key":"jqshuv","page":null},{"name":"K\xfcr\u015Fat \u015Eim\u015Fek","alias":"kursatsmsek","url":"https://github.com/kursatsmsek","imageURL":"https://github.com/kursatsmsek.png","key":"kursatsmsek","page":null},{"name":"Lane Goolsby","alias":"lanegoolsby","url":"https://github.com/lanegoolsby","imageURL":"https://github.com/lanegoolsby.png","key":"lanegoolsby","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Matthias Koch","alias":"matkoch","url":"https://github.com/matkoch","imageURL":"https://github.com/matkoch.png","key":"matkoch","page":null},{"name":"\u674E\u5C0F\u96E8","alias":"metal-young","url":"https://github.com/metal-young","imageURL":"https://github.com/metal-young.png","key":"metal-young","page":null},{"name":"Tom Mrazauskas","alias":"mrazauskas","url":"https://github.com/mrazauskas","imageURL":"https://github.com/mrazauskas.png","key":"mrazauskas","page":null},{"name":"pincman","alias":"pincman","url":"https://github.com/pincman","imageURL":"https://github.com/pincman.png","key":"pincman","page":null},{"name":"Redcamel","alias":"redcamel","url":"https://github.com/redcamel","imageURL":"https://github.com/redcamel.png","key":"redcamel","page":null},{"name":"Rein van Haaren","alias":"reinvanhaaren","url":"https://github.com/reinvanhaaren","imageURL":"https://github.com/reinvanhaaren.png","key":"reinvanhaaren","page":null},{"name":"Rudra Sen","alias":"RudraSen2","url":"https://github.com/RudraSen2","imageURL":"https://github.com/RudraSen2.png","key":"RudraSen2","page":null},{"name":"sado","alias":"sado0823","url":"https://github.com/sado0823","imageURL":"https://github.com/sado0823.png","key":"sado0823","page":null},{"name":"Dzung Do","alias":"saosangmo","url":"https://github.com/saosangmo","imageURL":"https://github.com/saosangmo.png","key":"saosangmo","page":null},{"name":"Dima Grossman","alias":"scopsy","url":"https://github.com/scopsy","imageURL":"https://github.com/scopsy.png","key":"scopsy","page":null},{"name":"SheetJSDev","alias":"SheetJSDev","url":"https://github.com/SheetJSDev","imageURL":"https://github.com/SheetJSDev.png","key":"SheetJSDev","page":null},{"name":"Joe Harrison","alias":"sigwinch28","url":"https://github.com/sigwinch28","imageURL":"https://github.com/sigwinch28.png","key":"sigwinch28","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Huy Nguyen","alias":"Smilefounder","url":"https://github.com/Smilefounder","imageURL":"https://github.com/Smilefounder.png","key":"Smilefounder","page":null},{"name":"Steven Serrata","alias":"sserrata","url":"https://github.com/sserrata","imageURL":"https://github.com/sserrata.png","key":"sserrata","page":null},{"name":"Szil\xe1rd D\xf3r\xf3","alias":"szilarddoro","url":"https://github.com/szilarddoro","imageURL":"https://github.com/szilarddoro.png","key":"szilarddoro","page":null},{"name":"Le Thi Van","alias":"vannyle","url":"https://github.com/vannyle","imageURL":"https://github.com/vannyle.png","key":"vannyle","page":null},{"name":"Webber Takken","alias":"webbertakken","url":"https://github.com/webbertakken","imageURL":"https://github.com/webbertakken.png","key":"webbertakken","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null},{"name":"Paul O\u2019Shannessy","alias":"zpao","url":"https://github.com/zpao","imageURL":"https://github.com/zpao.png","key":"zpao","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-07-08T20:00","authors":["201flaviosilva","7Wate","AkagiYui","alewolf","alexandernst","Altomy","anaclumos","bcabanes","BenDMyers","Boulet-","cbebe","clemiee","datlechin","DharsanB","dht","difranca","dpang314","emattia","forresst","Gary50613","ghostsquad","HyunseungLee-Travis","JeremyDolle","johnie","johnnyreilly","Josh-Cena","jpdriver","jqshuv","kursatsmsek","lanegoolsby","lex111","matkoch","metal-young","mrazauskas","pincman","redcamel","reinvanhaaren","RudraSen2","sado0823","saosangmo","scopsy","SheetJSDev","sigwinch28","slorber","Smilefounder","sserrata","szilarddoro","vannyle","webbertakken","yangshun","zpao"]},"unlisted":false,"prevItem":{"title":"2.0.0-rc.1","permalink":"/changelog/2.0.0-rc.1"},"nextItem":{"title":"2.0.0-beta.21","permalink":"/changelog/2.0.0-beta.21"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-theme-classic`\\n - [#7740](https://github.com/facebook/docusaurus/pull/7740) refactor(theme): nest theme icons under subfolder @theme/Icon/\\\\* ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7716](https://github.com/facebook/docusaurus/pull/7716) refactor(theme): split BlogPostItem into smaller theme subcomponents ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`\\n - [#7660](https://github.com/facebook/docusaurus/pull/7660) refactor(theme-common): split package into public/internal API entrypoints ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7644](https://github.com/facebook/docusaurus/pull/7644) refactor(docs,theme): split DocItem comp, useDoc hook ([@slorber](https://github.com/slorber))\\n- `docusaurus-logger`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#7642](https://github.com/facebook/docusaurus/pull/7642) refactor: remove \\"error\\" reporting level, move reportMessage to logger ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-utils-validation`, `docusaurus`\\n - [#7152](https://github.com/facebook/docusaurus/pull/7152) refactor: handle all admonitions via JSX component ([@lex111](https://github.com/lex111))\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-translations`\\n - [#7732](https://github.com/facebook/docusaurus/pull/7732) feat(theme-translations): Dutch translation ([@reinvanhaaren](https://github.com/reinvanhaaren))\\n - [#7715](https://github.com/facebook/docusaurus/pull/7715) feat(theme-translations): Swedish translation ([@johnie](https://github.com/johnie))\\n- `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`\\n - [#7666](https://github.com/facebook/docusaurus/pull/7666) feat(algolia-search): allow translating search modal ([@forresst](https://github.com/forresst))\\n- `create-docusaurus`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7643](https://github.com/facebook/docusaurus/pull/7643) feat(theme-classic): themeConfig navbar/footer logos accept className/style + update Meta Open-Source Logo ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`\\n - [#7649](https://github.com/facebook/docusaurus/pull/7649) feat(client-redirects): make plugin respect onDuplicateRoutes config ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#7624](https://github.com/facebook/docusaurus/pull/7624) feat: allow customizing localization path of each locale ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#7581](https://github.com/facebook/docusaurus/pull/7581) feat(core): allow opting out of HTML minification ([@alexandernst](https://github.com/alexandernst))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7557](https://github.com/facebook/docusaurus/pull/7557) feat: allow specifying custom target for FooterLogo ([@vannyle](https://github.com/vannyle))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`\\n - [#7556](https://github.com/facebook/docusaurus/pull/7556) feat: add admonition type title translations ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#7386](https://github.com/facebook/docusaurus/pull/7386) feat(core): allow customizing the i18n directory path ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-live-codeblock`\\n - [#7514](https://github.com/facebook/docusaurus/pull/7514) feat(live-codeblock): add support for noInline to interactive code blocks ([@jpdriver](https://github.com/jpdriver))\\n- `docusaurus-plugin-content-docs`\\n - [#7461](https://github.com/facebook/docusaurus/pull/7461) feat(content-docs): last_update front matter ([@dpang314](https://github.com/dpang314))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#7727](https://github.com/facebook/docusaurus/pull/7727) fix(theme): show blog post edit link even when no tag & not truncated ([@anaclumos](https://github.com/anaclumos))\\n - [#7659](https://github.com/facebook/docusaurus/pull/7659) fix(theme-classic): expose empty string alt text in navbar logos ([@BenDMyers](https://github.com/BenDMyers))\\n - [#7595](https://github.com/facebook/docusaurus/pull/7595) fix(content-pages): add article wrapper around MDXContent ([@matkoch](https://github.com/matkoch))\\n- `docusaurus-theme-translations`\\n - [#7694](https://github.com/facebook/docusaurus/pull/7694) fix(theme-translations): typo in vi locale ([@saosangmo](https://github.com/saosangmo))\\n- `docusaurus-plugin-content-docs`\\n - [#7638](https://github.com/facebook/docusaurus/pull/7638) fix(docs): forward doc frontMatter.sidebar_custom_props to linking sidebar category ([@slorber](https://github.com/slorber))\\n - [#7634](https://github.com/facebook/docusaurus/pull/7634) fix(content-docs): allow translating doc labels in sidebars.js ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-utils`\\n - [#7604](https://github.com/facebook/docusaurus/pull/7604) fix(utils): allow any non-boundary characters in Markdown heading ID ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-cssnano-preset`\\n - [#7593](https://github.com/facebook/docusaurus/pull/7593) fix(cssnano-preset): disable z-index minification ([@dpang314](https://github.com/dpang314))\\n- `docusaurus-theme-common`\\n - [#7551](https://github.com/facebook/docusaurus/pull/7551) fix(theme-classic): code block wrap mode should allow wrapping in the middle of a word ([@slorber](https://github.com/slorber))\\n - [#7485](https://github.com/facebook/docusaurus/pull/7485) fix(theme-classic): inconsistent code block wrapping ([@dpang314](https://github.com/dpang314))\\n- `docusaurus-mdx-loader`, `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus-utils`\\n - [#7521](https://github.com/facebook/docusaurus/pull/7521) fix: make type-checking work in Yarn PnP ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-translations`\\n - [#7696](https://github.com/facebook/docusaurus/pull/7696) fix(theme-translations): improve grammar of zh translation ([@AkagiYui](https://github.com/AkagiYui))\\n - [#7691](https://github.com/facebook/docusaurus/pull/7691) chore(theme-translations): complete vi translations ([@datlechin](https://github.com/datlechin))\\n - [#7683](https://github.com/facebook/docusaurus/pull/7683) chore(theme-translations): complete ar translations ([@Altomy](https://github.com/Altomy))\\n - [#7633](https://github.com/facebook/docusaurus/pull/7633) chore(theme-translations): complete ko translations ([@HyunseungLee-Travis](https://github.com/HyunseungLee-Travis))\\n- `docusaurus`\\n - [#7702](https://github.com/facebook/docusaurus/pull/7702) feat(deploy): copy local git config to tmp repo ([@ghostsquad](https://github.com/ghostsquad))\\n - [#7600](https://github.com/facebook/docusaurus/pull/7600) fix: force refresh on chunk preload error ([@yangshun](https://github.com/yangshun))\\n- `docusaurus-plugin-content-docs`\\n - [#7673](https://github.com/facebook/docusaurus/pull/7673) fix(content-docs): format last update date as \\"Jun 19, 2020\\" ([@sigwinch28](https://github.com/sigwinch28))\\n- `docusaurus-theme-common`, `docusaurus-theme-search-algolia`\\n - [#7671](https://github.com/facebook/docusaurus/pull/7671) refactor(theme-common): rename useDynamicCallback to useEvent ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-common`\\n - [#7648](https://github.com/facebook/docusaurus/pull/7648) fix(theme-common): make useShallowMemoObject key-order-insensitive ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#7639](https://github.com/facebook/docusaurus/pull/7639) chore(create): update the facebook template with current assets ([@zpao](https://github.com/zpao))\\n - [#7520](https://github.com/facebook/docusaurus/pull/7520) feat: add engines field to templates\' package.json ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus`\\n - [#7579](https://github.com/facebook/docusaurus/pull/7579) refactor(pwa): simplify registerSW code, fix ESLint errors ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`\\n - [#7545](https://github.com/facebook/docusaurus/pull/7545) feat(analytics): allow query/hash changes to be sent to GA ([@lanegoolsby](https://github.com/lanegoolsby))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#7739](https://github.com/facebook/docusaurus/pull/7739) docs: swizzle react-live with eject ([@SheetJSDev](https://github.com/SheetJSDev))\\n - [#7723](https://github.com/facebook/docusaurus/pull/7723) docs: add GitHub pages deployment troubleshooting guide ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7705](https://github.com/facebook/docusaurus/pull/7705) docs: mention MDXContent ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7675](https://github.com/facebook/docusaurus/pull/7675) docs: add docusaurus-openapi-docs to resources ([@sserrata](https://github.com/sserrata))\\n - [#7677](https://github.com/facebook/docusaurus/pull/7677) docs: add more info on github cross repo deployment ([@bcabanes](https://github.com/bcabanes))\\n - [#7563](https://github.com/facebook/docusaurus/pull/7563) docs: add awesome-docusaurus resource ([@webbertakken](https://github.com/webbertakken))\\n - [#7665](https://github.com/facebook/docusaurus/pull/7665) docs: add link from every category index page to the guide page ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7519](https://github.com/facebook/docusaurus/pull/7519) docs: multiple documentation elaborations ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7518](https://github.com/facebook/docusaurus/pull/7518) docs: remove useless front matter ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7512](https://github.com/facebook/docusaurus/pull/7512) docs: update Kent C. Dodds Twitter avatar ([@DharsanB](https://github.com/DharsanB))\\n- `create-docusaurus`\\n - [#7611](https://github.com/facebook/docusaurus/pull/7611) docs: advise using Node 18 in deployment ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7582](https://github.com/facebook/docusaurus/pull/7582) docs: make localhost links clickable ([@dht](https://github.com/dht))\\n- `docusaurus-plugin-client-redirects`\\n - [#7607](https://github.com/facebook/docusaurus/pull/7607) refactor(client-redirects): elaborate documentation, minor refactor ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :wrench: Maintenance\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7676](https://github.com/facebook/docusaurus/pull/7676) refactor(theme): move LayoutProviders to Layout/Provider; composeProviders util ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#7674](https://github.com/facebook/docusaurus/pull/7674) chore: prevent importing theme components with relative paths ([@slorber](https://github.com/slorber))\\n - [#7664](https://github.com/facebook/docusaurus/pull/7664) chore: upgrade Infima to alpha.40 ([@slorber](https://github.com/slorber))\\n- Other\\n - [#7663](https://github.com/facebook/docusaurus/pull/7663) misc: share .vscode/extensions.json ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#7583](https://github.com/facebook/docusaurus/pull/7583) refactor(cli): make the CLI an even thinner wrapper around command functions ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7547](https://github.com/facebook/docusaurus/pull/7547) chore: update static-site-generator-webpack-plugin ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`, `stylelint-copyright`\\n - [#7586](https://github.com/facebook/docusaurus/pull/7586) chore: upgrade to TS 4.7, compile with NodeNext ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 51\\n\\n- 7Wate ([@7Wate](https://github.com/7Wate))\\n- Ahmed Altomy ([@Altomy](https://github.com/Altomy))\\n- Alexander Nestorov ([@alexandernst](https://github.com/alexandernst))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Ben Myers ([@BenDMyers](https://github.com/BenDMyers))\\n- Benjamin Cabanes ([@bcabanes](https://github.com/bcabanes))\\n- Boulet ([@Boulet-](https://github.com/Boulet-))\\n- Charles Ancheta ([@cbebe](https://github.com/cbebe))\\n- Clemie McCartney ([@clemiee](https://github.com/clemiee))\\n- DOLLE ([@JeremyDolle](https://github.com/JeremyDolle))\\n- Dharsan B ([@DharsanB](https://github.com/DharsanB))\\n- Diego Fran\xe7a ([@difranca](https://github.com/difranca))\\n- Dima Grossman ([@scopsy](https://github.com/scopsy))\\n- Dzung Do ([@saosangmo](https://github.com/saosangmo))\\n- Fl\xe1vio Silva ([@201flaviosilva](https://github.com/201flaviosilva))\\n- Forresst ([@forresst](https://github.com/forresst))\\n- Huy Nguyen ([@Smilefounder](https://github.com/Smilefounder))\\n- Hyunseung Lee ([@HyunseungLee-Travis](https://github.com/HyunseungLee-Travis))\\n- JP ([@jpdriver](https://github.com/jpdriver))\\n- Joe Harrison ([@sigwinch28](https://github.com/sigwinch28))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Johnie Hjelm ([@johnie](https://github.com/johnie))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Joshua Schmitt ([@jqshuv](https://github.com/jqshuv))\\n- K\xfcr\u015Fat \u015Eim\u015Fek ([@kursatsmsek](https://github.com/kursatsmsek))\\n- Lane Goolsby ([@lanegoolsby](https://github.com/lanegoolsby))\\n- Le Thi Van ([@vannyle](https://github.com/vannyle))\\n- Matthias Koch ([@matkoch](https://github.com/matkoch))\\n- Ng\xf4 Qu\u1ED1c \u0110\u1EA1t ([@datlechin](https://github.com/datlechin))\\n- Paul O\u2019Shannessy ([@zpao](https://github.com/zpao))\\n- Redcamel ([@redcamel](https://github.com/redcamel))\\n- Rein van Haaren ([@reinvanhaaren](https://github.com/reinvanhaaren))\\n- Rudra Sen ([@RudraSen2](https://github.com/RudraSen2))\\n- Steven Serrata ([@sserrata](https://github.com/sserrata))\\n- Sunghyun Cho ([@anaclumos](https://github.com/anaclumos))\\n- Szil\xe1rd D\xf3r\xf3 ([@szilarddoro](https://github.com/szilarddoro))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tom Mrazauskas ([@mrazauskas](https://github.com/mrazauskas))\\n- Webber Takken ([@webbertakken](https://github.com/webbertakken))\\n- Wes McNamee ([@ghostsquad](https://github.com/ghostsquad))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- [@SheetJSDev](https://github.com/SheetJSDev)\\n- [@alewolf](https://github.com/alewolf)\\n- [@dpang314](https://github.com/dpang314)\\n- dht ([@dht](https://github.com/dht))\\n- emattia ([@emattia](https://github.com/emattia))\\n- pincman ([@pincman](https://github.com/pincman))\\n- sado ([@sado0823](https://github.com/sado0823))\\n- \u51F1\u6069 Kane ([@Gary50613](https://github.com/Gary50613))\\n- \u674E\u5C0F\u96E8 ([@metal-young](https://github.com/metal-young))\\n- \u8D64\u57CE\u7ED3\u8863 ([@AkagiYui](https://github.com/AkagiYui))"},{"id":"/2.0.0-beta.21","metadata":{"permalink":"/changelog/2.0.0-beta.21","source":"@site/changelog/source/2.0.0-beta.21.md","title":"2.0.0-beta.21","description":"Breaking Change","date":"2022-05-27T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Benjamin Diolez","alias":"BenDz","url":"https://github.com/BenDz","imageURL":"https://github.com/BenDz.png","key":"BenDz","page":null},{"name":"Charles Korn","alias":"charleskorn","url":"https://github.com/charleskorn","imageURL":"https://github.com/charleskorn.png","key":"charleskorn","page":null},{"name":"Ng\xf4 Qu\u1ED1c \u0110\u1EA1t","alias":"datlechin","url":"https://github.com/datlechin","imageURL":"https://github.com/datlechin.png","key":"datlechin","page":null},{"name":"Designatory","alias":"Designatory","url":"https://github.com/Designatory","imageURL":"https://github.com/Designatory.png","key":"Designatory","page":null},{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},{"name":"\u51F1\u6069 Kane","alias":"Gary50613","url":"https://github.com/Gary50613","imageURL":"https://github.com/Gary50613.png","key":"Gary50613","page":null},{"name":"Ggicci","alias":"ggicci","url":"https://github.com/ggicci","imageURL":"https://github.com/ggicci.png","key":"ggicci","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Jan Peer St\xf6cklmair","alias":"JPeer264","url":"https://github.com/JPeer264","imageURL":"https://github.com/JPeer264.png","key":"JPeer264","page":null},{"name":"Jeremy","alias":"jrmyw92","url":"https://github.com/jrmyw92","imageURL":"https://github.com/jrmyw92.png","key":"jrmyw92","page":null},{"name":"Junjie","alias":"junjieweb","url":"https://github.com/junjieweb","imageURL":"https://github.com/junjieweb.png","key":"junjieweb","page":null},{"name":"Lane Goolsby","alias":"lanegoolsby","url":"https://github.com/lanegoolsby","imageURL":"https://github.com/lanegoolsby.png","key":"lanegoolsby","page":null},{"name":"Massoud Maboudi","alias":"massoudmaboudi","url":"https://github.com/massoudmaboudi","imageURL":"https://github.com/massoudmaboudi.png","key":"massoudmaboudi","page":null},{"name":"Matthias Koch","alias":"matkoch","url":"https://github.com/matkoch","imageURL":"https://github.com/matkoch.png","key":"matkoch","page":null},{"name":"Akara","alias":"Messiahhh","url":"https://github.com/Messiahhh","imageURL":"https://github.com/Messiahhh.png","key":"Messiahhh","page":null},{"name":"Michael Hughes","alias":"mhughes2k","url":"https://github.com/mhughes2k","imageURL":"https://github.com/mhughes2k.png","key":"mhughes2k","page":null},{"name":"Nitya Narasimhan","alias":"nitya","url":"https://github.com/nitya","imageURL":"https://github.com/nitya.png","key":"nitya","page":null},{"name":"Oluwatobi Sofela","alias":"oluwatobiss","url":"https://github.com/oluwatobiss","imageURL":"https://github.com/oluwatobiss.png","key":"oluwatobiss","page":null},{"name":"Ori Shalom","alias":"ori-shalom","url":"https://github.com/ori-shalom","imageURL":"https://github.com/ori-shalom.png","key":"ori-shalom","page":null},{"name":"Pranab Das","alias":"pranabdas","url":"https://github.com/pranabdas","imageURL":"https://github.com/pranabdas.png","key":"pranabdas","page":null},{"name":"Rui Peres","alias":"RuiAAPeres","url":"https://github.com/RuiAAPeres","imageURL":"https://github.com/RuiAAPeres.png","key":"RuiAAPeres","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"James","alias":"Zamiell","url":"https://github.com/Zamiell","imageURL":"https://github.com/Zamiell.png","key":"Zamiell","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-05-27T20:00","authors":["BenDz","charleskorn","datlechin","Designatory","forresst","Gary50613","ggicci","Josh-Cena","JPeer264","jrmyw92","junjieweb","lanegoolsby","massoudmaboudi","matkoch","Messiahhh","mhughes2k","nitya","oluwatobiss","ori-shalom","pranabdas","RuiAAPeres","slorber","Zamiell"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.22","permalink":"/changelog/2.0.0-beta.22"},"nextItem":{"title":"2.0.0-beta.20","permalink":"/changelog/2.0.0-beta.20"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-plugin-pwa`\\n - [#7422](https://github.com/facebook/docusaurus/pull/7422) refactor(pwa): remove reloadPopup option in favor of swizzling ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`\\n - [#7501](https://github.com/facebook/docusaurus/pull/7501) chore: require Node 16.14 ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-sitemap`\\n - [#7469](https://github.com/facebook/docusaurus/pull/7469) feat(sitemap): allow customizing the output name ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-utils`, `docusaurus`\\n - [#7371](https://github.com/facebook/docusaurus/pull/7371) feat(core): support docusaurus.config.cjs as default file name ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#7500](https://github.com/facebook/docusaurus/pull/7500) feat: make docusaurus serve automatically open in browser ([@Zamiell](https://github.com/Zamiell))\\n - [#7452](https://github.com/facebook/docusaurus/pull/7452) feat: add --no-minify flag to docusaurus start ([@lanegoolsby](https://github.com/lanegoolsby))\\n- `docusaurus-theme-classic`\\n - [#7357](https://github.com/facebook/docusaurus/pull/7357) feat(theme-classic): allow className as option for type: \\"search\\" ([@JPeer264](https://github.com/JPeer264))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#7362](https://github.com/facebook/docusaurus/pull/7362) fix: always emit SEO title + og:title meta ([@charleskorn](https://github.com/charleskorn))\\n - [#7453](https://github.com/facebook/docusaurus/pull/7453) fix(core): avoid using logger and fs.readJSON in SSR ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7369](https://github.com/facebook/docusaurus/pull/7369) fix(cli): output correct path when swizzling bare-file component in subfolder ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7360](https://github.com/facebook/docusaurus/pull/7360) fix(core): allow githubPort in config validation ([@mhughes2k](https://github.com/mhughes2k))\\n- `docusaurus-plugin-google-gtag`\\n - [#7424](https://github.com/facebook/docusaurus/pull/7424) fix(gtag): send the newly rendered page\'s title instead of the old one\'s ([@ori-shalom](https://github.com/ori-shalom))\\n- `create-docusaurus`, `docusaurus-utils`\\n - [#7507](https://github.com/facebook/docusaurus/pull/7507) fix(create-docusaurus): potential security issue with command injection ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus`\\n - [#7492](https://github.com/facebook/docusaurus/pull/7492) fix(core): always treat error boundary fallback as a callback ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#7438](https://github.com/facebook/docusaurus/pull/7438) fix(theme-classic): allow nested task lists to preserve the indent ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7430](https://github.com/facebook/docusaurus/pull/7430) fix(theme-classic): consistently apply the right active class name for all navbar items ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7411](https://github.com/facebook/docusaurus/pull/7411) fix(theme-classic): autocollapse sidebar categories when navigating with paginator ([@pranabdas](https://github.com/pranabdas))\\n - [#7363](https://github.com/facebook/docusaurus/pull/7363) fix(theme-classic): resolve customCss from site dir ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-utils`\\n - [#7464](https://github.com/facebook/docusaurus/pull/7464) fix(utils): fix Markdown link replacement when link text is same as href ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7458](https://github.com/facebook/docusaurus/pull/7458) fix(utils): avoid replacing Markdown links missing the directly next link ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`\\n - [#7392](https://github.com/facebook/docusaurus/pull/7392) fix(mdx-loader): use React.Fragment as fragment factory ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`\\n - [#7385](https://github.com/facebook/docusaurus/pull/7385) fix(content-docs): restore functionality when a category only has index page ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-translations`\\n - [#7493](https://github.com/facebook/docusaurus/pull/7493) chore(theme-translations): complete French translations ([@forresst](https://github.com/forresst))\\n - [#7474](https://github.com/facebook/docusaurus/pull/7474) chore(theme-translations): complete zh translations ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7400](https://github.com/facebook/docusaurus/pull/7400) chore(theme-translations): complete Farsi translations ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n- `docusaurus`\\n - [#7499](https://github.com/facebook/docusaurus/pull/7499) fix: avoid printing period after localhost URL ([@Zamiell](https://github.com/Zamiell))\\n- `create-docusaurus`\\n - [#7374](https://github.com/facebook/docusaurus/pull/7374) refactor(create): clean up logic when prompting for unspecified arguments ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :memo: Documentation\\n\\n- [#7503](https://github.com/facebook/docusaurus/pull/7503) docs: document MDXComponents scope ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#7497](https://github.com/facebook/docusaurus/pull/7497) docs: link every reference of types in API table to the type definition ([@Zamiell](https://github.com/Zamiell))\\n- [#7407](https://github.com/facebook/docusaurus/pull/7407) docs: add Azure SWA as deployment option ([@nitya](https://github.com/nitya))\\n- [#7390](https://github.com/facebook/docusaurus/pull/7390) fix(website): use react-lite-youtube-embed for lazy YouTube video ([@matkoch](https://github.com/matkoch))\\n\\n## :wrench: Maintenance\\n\\n- `create-docusaurus`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`, `stylelint-copyright`\\n - [#7477](https://github.com/facebook/docusaurus/pull/7477) refactor: fix a lot of errors in type-aware linting ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-translations`\\n - [#7447](https://github.com/facebook/docusaurus/pull/7447) refactor(theme-classic): migrate to tsc for build ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `stylelint-copyright`\\n - [#7441](https://github.com/facebook/docusaurus/pull/7441) refactor(stylelint-copyright): migrate to TS ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-cssnano-preset`\\n - [#7440](https://github.com/facebook/docusaurus/pull/7440) refactor(cssnano-preset): migrate to TS ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`\\n - [#7437](https://github.com/facebook/docusaurus/pull/7437) refactor: use TS project references instead of running tsc multiple times ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-pwa`\\n - [#7421](https://github.com/facebook/docusaurus/pull/7421) refactor(pwa): migrate client modules to TS ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#7415](https://github.com/facebook/docusaurus/pull/7415) refactor(theme-classic): always collocate stylesheets with components in one folder ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#7405](https://github.com/facebook/docusaurus/pull/7405) refactor(core): properly code-split NotFound page ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 23\\n\\n- Akara ([@Messiahhh](https://github.com/Messiahhh))\\n- Benjamin Diolez ([@BenDz](https://github.com/BenDz))\\n- Charles Korn ([@charleskorn](https://github.com/charleskorn))\\n- Designatory ([@Designatory](https://github.com/Designatory))\\n- Forresst ([@forresst](https://github.com/forresst))\\n- Ggicci ([@ggicci](https://github.com/ggicci))\\n- James ([@Zamiell](https://github.com/Zamiell))\\n- Jan Peer St\xf6cklmair ([@JPeer264](https://github.com/JPeer264))\\n- Jeremy ([@jrmyw92](https://github.com/jrmyw92))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Junjie ([@junjieweb](https://github.com/junjieweb))\\n- Lane Goolsby ([@lanegoolsby](https://github.com/lanegoolsby))\\n- Massoud Maboudi ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n- Matthias Koch ([@matkoch](https://github.com/matkoch))\\n- Michael Hughes ([@mhughes2k](https://github.com/mhughes2k))\\n- Ng\xf4 Qu\u1ED1c \u0110\u1EA1t ([@datlechin](https://github.com/datlechin))\\n- Nitya Narasimhan ([@nitya](https://github.com/nitya))\\n- Oluwatobi Sofela ([@oluwatobiss](https://github.com/oluwatobiss))\\n- Ori Shalom ([@ori-shalom](https://github.com/ori-shalom))\\n- Pranab Das ([@pranabdas](https://github.com/pranabdas))\\n- Rui Peres ([@RuiAAPeres](https://github.com/RuiAAPeres))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- \u51F1\u6069 Kane ([@Gary50613](https://github.com/Gary50613))"},{"id":"/2.0.0-beta.20","metadata":{"permalink":"/changelog/2.0.0-beta.20","source":"@site/changelog/source/2.0.0-beta.20.md","title":"2.0.0-beta.20","description":"Bug Fix","date":"2022-05-05T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Steven Hicks","alias":"pepopowitz","url":"https://github.com/pepopowitz","imageURL":"https://github.com/pepopowitz.png","key":"pepopowitz","page":null},{"name":"Reece Dunham","alias":"RDIL","url":"https://github.com/RDIL","imageURL":"https://github.com/RDIL.png","key":"RDIL","page":null},{"name":"Sergey Gromkov","alias":"sgromkov","url":"https://github.com/sgromkov","imageURL":"https://github.com/sgromkov.png","key":"sgromkov","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-05-05T20:00","authors":["Josh-Cena","lex111","pepopowitz","RDIL","sgromkov","slorber"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.21","permalink":"/changelog/2.0.0-beta.21"},"nextItem":{"title":"2.0.0-beta.19","permalink":"/changelog/2.0.0-beta.19"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#7342](https://github.com/facebook/docusaurus/pull/7342) fix: avoid flash of page scrolling to top on refresh ([@slorber](https://github.com/slorber))\\n - [#7329](https://github.com/facebook/docusaurus/pull/7329) fix(core): inject docusaurus version into SSR as local ([@RDIL](https://github.com/RDIL))\\n- `docusaurus-theme-classic`\\n - [#7341](https://github.com/facebook/docusaurus/pull/7341) fix(theme-classic): properly highlight code block line numbers ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :memo: Documentation\\n\\n- [#7334](https://github.com/facebook/docusaurus/pull/7334) feat(website): make canary release page display actual canary version name ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#7343](https://github.com/facebook/docusaurus/pull/7343) docs: add page for create-docusaurus API documentation ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#7340](https://github.com/facebook/docusaurus/pull/7340) docs: add Yandex Metrika plugin to community plugins ([@sgromkov](https://github.com/sgromkov))\\n- [#7336](https://github.com/facebook/docusaurus/pull/7336) fix(website): fix multiple accessibility issues around color contrast ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#7327](https://github.com/facebook/docusaurus/pull/7327) docs: add clarity to versioning behavior ([@pepopowitz](https://github.com/pepopowitz))\\n\\n## Committers: 6\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Reece Dunham ([@RDIL](https://github.com/RDIL))\\n- Sergey Gromkov ([@sgromkov](https://github.com/sgromkov))\\n- Steven Hicks ([@pepopowitz](https://github.com/pepopowitz))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))"},{"id":"/2.0.0-beta.19","metadata":{"permalink":"/changelog/2.0.0-beta.19","source":"@site/changelog/source/2.0.0-beta.19.md","title":"2.0.0-beta.19","description":"New Feature","date":"2022-05-04T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Aaron Nwabuoku","alias":"aerovulpe","url":"https://github.com/aerovulpe","imageURL":"https://github.com/aerovulpe.png","key":"aerovulpe","page":null},{"name":"AkiraVoid","alias":"AkiraVoid","url":"https://github.com/AkiraVoid","imageURL":"https://github.com/AkiraVoid.png","key":"AkiraVoid","page":null},{"name":"Andrew Lyons","alias":"andrewnicols","url":"https://github.com/andrewnicols","imageURL":"https://github.com/andrewnicols.png","key":"andrewnicols","page":null},{"name":"apq","alias":"AntonPalmqvist","url":"https://github.com/AntonPalmqvist","imageURL":"https://github.com/AntonPalmqvist.png","key":"AntonPalmqvist","page":null},{"name":"ApsarasX","alias":"ApsarasX","url":"https://github.com/ApsarasX","imageURL":"https://github.com/ApsarasX.png","key":"ApsarasX","page":null},{"name":"chelproc","alias":"chelproc","url":"https://github.com/chelproc","imageURL":"https://github.com/chelproc.png","key":"chelproc","page":null},{"name":"Viktor Chernodub","alias":"chernodub","url":"https://github.com/chernodub","imageURL":"https://github.com/chernodub.png","key":"chernodub","page":null},{"name":"curatorcat.pcc.eth","alias":"CuratorCat","url":"https://github.com/CuratorCat","imageURL":"https://github.com/CuratorCat.png","key":"CuratorCat","page":null},{"name":"Cwen Yin","alias":"cwen0","url":"https://github.com/cwen0","imageURL":"https://github.com/cwen0.png","key":"cwen0","page":null},{"name":"Fusang\u2740","alias":"cxOrz","url":"https://github.com/cxOrz","imageURL":"https://github.com/cxOrz.png","key":"cxOrz","page":null},{"name":"Dan Roscigno","alias":"DanRoscigno","url":"https://github.com/DanRoscigno","imageURL":"https://github.com/DanRoscigno.png","key":"DanRoscigno","page":null},{"name":"Andrei Canta","alias":"deiucanta","url":"https://github.com/deiucanta","imageURL":"https://github.com/deiucanta.png","key":"deiucanta","page":null},{"name":"deployn","alias":"deployn","url":"https://github.com/deployn","imageURL":"https://github.com/deployn.png","key":"deployn","page":null},{"name":"Dr-Electron","alias":"Dr-Electron","url":"https://github.com/Dr-Electron","imageURL":"https://github.com/Dr-Electron.png","key":"Dr-Electron","page":null},{"name":"Chinazaekpere Ngubo","alias":"dr-ngubo","url":"https://github.com/dr-ngubo","imageURL":"https://github.com/dr-ngubo.png","key":"dr-ngubo","page":null},{"name":"duanwilliam","alias":"duanwilliam","url":"https://github.com/duanwilliam","imageURL":"https://github.com/duanwilliam.png","key":"duanwilliam","page":null},{"name":"Elias Papavasileiou","alias":"elias-pap","url":"https://github.com/elias-pap","imageURL":"https://github.com/elias-pap.png","key":"elias-pap","page":null},{"name":"Indermohan Singh","alias":"imsingh","url":"https://github.com/imsingh","imageURL":"https://github.com/imsingh.png","key":"imsingh","page":null},{"name":"Jeffrey Aven","alias":"jeffreyaven","url":"https://github.com/jeffreyaven","imageURL":"https://github.com/jeffreyaven.png","key":"jeffreyaven","page":null},{"name":"Jody Heavener","alias":"jodyheavener","url":"https://github.com/jodyheavener","imageURL":"https://github.com/jodyheavener.png","key":"jodyheavener","page":null},{"name":"JMW","alias":"JohnnyMcWeed","url":"https://github.com/JohnnyMcWeed","imageURL":"https://github.com/JohnnyMcWeed.png","key":"JohnnyMcWeed","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Kayce Basques","alias":"kaycebasques","url":"https://github.com/kaycebasques","imageURL":"https://github.com/kaycebasques.png","key":"kaycebasques","page":null},{"name":"kgolubic","alias":"kgolubic","url":"https://github.com/kgolubic","imageURL":"https://github.com/kgolubic.png","key":"kgolubic","page":null},{"name":"loic","alias":"layerzzzio","url":"https://github.com/layerzzzio","imageURL":"https://github.com/layerzzzio.png","key":"layerzzzio","page":null},{"name":"Leedom","alias":"leedom92","url":"https://github.com/leedom92","imageURL":"https://github.com/leedom92.png","key":"leedom92","page":null},{"name":"Martin Blom","alias":"LeviticusMB","url":"https://github.com/LeviticusMB","imageURL":"https://github.com/LeviticusMB.png","key":"LeviticusMB","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Lukas Bach","alias":"lukasbach","url":"https://github.com/lukasbach","imageURL":"https://github.com/lukasbach.png","key":"lukasbach","page":null},{"name":"Karl Ward","alias":"mjau-mjau","url":"https://github.com/mjau-mjau","imageURL":"https://github.com/mjau-mjau.png","key":"mjau-mjau","page":null},{"name":"mehdim","alias":"mxhdx","url":"https://github.com/mxhdx","imageURL":"https://github.com/mxhdx.png","key":"mxhdx","page":null},{"name":"Chau Tran","alias":"nartc","url":"https://github.com/nartc","imageURL":"https://github.com/nartc.png","key":"nartc","page":null},{"name":"Naveen","alias":"naveensrinivasan","url":"https://github.com/naveensrinivasan","imageURL":"https://github.com/naveensrinivasan.png","key":"naveensrinivasan","page":null},{"name":"Pablo Cordon","alias":"pcordon","url":"https://github.com/pcordon","imageURL":"https://github.com/pcordon.png","key":"pcordon","page":null},{"name":"Lenz Weber-Tronic","alias":"phryneas","url":"https://github.com/phryneas","imageURL":"https://github.com/phryneas.png","key":"phryneas","page":null},{"name":"Pierre-Gilles Leymarie","alias":"Pierre-Gilles","url":"https://github.com/Pierre-Gilles","imageURL":"https://github.com/Pierre-Gilles.png","key":"Pierre-Gilles","page":null},{"name":"redhat123456","alias":"redhat123456","url":"https://github.com/redhat123456","imageURL":"https://github.com/redhat123456.png","key":"redhat123456","page":null},{"name":"rev","alias":"rev4324","url":"https://github.com/rev4324","imageURL":"https://github.com/rev4324.png","key":"rev4324","page":null},{"name":"Zac A","alias":"sandypockets","url":"https://github.com/sandypockets","imageURL":"https://github.com/sandypockets.png","key":"sandypockets","page":null},{"name":"czhen","alias":"shczhen","url":"https://github.com/shczhen","imageURL":"https://github.com/shczhen.png","key":"shczhen","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Evan","alias":"sulu5890","url":"https://github.com/sulu5890","imageURL":"https://github.com/sulu5890.png","key":"sulu5890","page":null},{"name":"surendran82","alias":"surendran82","url":"https://github.com/surendran82","imageURL":"https://github.com/surendran82.png","key":"surendran82","page":null},{"name":"svix-ken","alias":"svix-ken","url":"https://github.com/svix-ken","imageURL":"https://github.com/svix-ken.png","key":"svix-ken","page":null},{"name":"sykp241095","alias":"sykp241095","url":"https://github.com/sykp241095","imageURL":"https://github.com/sykp241095.png","key":"sykp241095","page":null},{"name":"Qi Zhang","alias":"zzzhangqi","url":"https://github.com/zzzhangqi","imageURL":"https://github.com/zzzhangqi.png","key":"zzzhangqi","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-05-04T20:00","authors":["aerovulpe","AkiraVoid","andrewnicols","AntonPalmqvist","ApsarasX","chelproc","chernodub","CuratorCat","cwen0","cxOrz","DanRoscigno","deiucanta","deployn","Dr-Electron","dr-ngubo","duanwilliam","elias-pap","imsingh","jeffreyaven","jodyheavener","JohnnyMcWeed","johnnyreilly","Josh-Cena","kaycebasques","kgolubic","layerzzzio","leedom92","LeviticusMB","lex111","lukasbach","mjau-mjau","mxhdx","nartc","naveensrinivasan","pcordon","phryneas","Pierre-Gilles","redhat123456","rev4324","sandypockets","shczhen","slorber","sulu5890","surendran82","svix-ken","sykp241095","zzzhangqi"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.20","permalink":"/changelog/2.0.0-beta.20"},"nextItem":{"title":"2.0.0-beta.18","permalink":"/changelog/2.0.0-beta.18"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7178](https://github.com/facebook/docusaurus/pull/7178) feat(theme-classic): extensible code block magic comment system ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7007](https://github.com/facebook/docusaurus/pull/7007) feat(theme-classic): code block showLineNumbers ([@lex111](https://github.com/lex111))\\n - [#7012](https://github.com/facebook/docusaurus/pull/7012) feat(theme-classic): show blog sidebar on mobile ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus`, `eslint-plugin`\\n - [#7206](https://github.com/facebook/docusaurus/pull/7206) feat: Docusaurus ESLint plugin to enforce best Docusaurus practices ([@elias-pap](https://github.com/elias-pap))\\n- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#6732](https://github.com/facebook/docusaurus/pull/6732) feat(core): rework client modules lifecycles, officially make API public ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#7231](https://github.com/facebook/docusaurus/pull/7231) feat: allow custom navbarItem types to pass through validation ([@slorber](https://github.com/slorber))\\n - [#7058](https://github.com/facebook/docusaurus/pull/7058) feat(theme-classic): new \'html\' type navbar item ([@lex111](https://github.com/lex111))\\n - [#7079](https://github.com/facebook/docusaurus/pull/7079) feat: allow using pure HTML as label in navbar links ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`\\n - [#7036](https://github.com/facebook/docusaurus/pull/7036) feat(theme-classic): toggle code wrap button ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6457](https://github.com/facebook/docusaurus/pull/6457) feat(content-docs): draft docs excluded from build & sidebars ([@jodyheavener](https://github.com/jodyheavener))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus`\\n - [#6430](https://github.com/facebook/docusaurus/pull/6430) feat: allow setting calendar for i18n date formatting ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus`\\n - [#7083](https://github.com/facebook/docusaurus/pull/7083) feat(core): fail-safe global data fetching ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`\\n - [#7106](https://github.com/facebook/docusaurus/pull/7106) feat(content-docs): make docs:version command work on localized docs ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-types`, `docusaurus`\\n - [#7082](https://github.com/facebook/docusaurus/pull/7082) feat(core): allow plugins to declare custom route context ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7124](https://github.com/facebook/docusaurus/pull/7124) feat(core): allow plugin/preset config to contain false/null ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-sitemap`, `docusaurus-utils`\\n - [#6979](https://github.com/facebook/docusaurus/pull/6979) feat(sitemap): add ignorePatterns option ([@ApsarasX](https://github.com/ApsarasX))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-types`, `docusaurus`\\n - [#7257](https://github.com/facebook/docusaurus/pull/7257) refactor: remove long-deprecated routesLoaded lifecycle ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7277](https://github.com/facebook/docusaurus/pull/7277) refactor(theme-classic): move all sidebar-related config under themeConfig.docs.sidebar ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#6732](https://github.com/facebook/docusaurus/pull/6732) feat(core): rework client modules lifecycles, officially make API public ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-theme-classic`\\n - [#7176](https://github.com/facebook/docusaurus/pull/7176) refactor: customize code block line highlight color via CSS var ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`\\n - [#7117](https://github.com/facebook/docusaurus/pull/7117) refactor(content-{blog,docs}): unify handling of tags ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#7027](https://github.com/facebook/docusaurus/pull/7027) refactor(content-docs): deduplicate types, JSDoc for some APIs ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#7304](https://github.com/facebook/docusaurus/pull/7304) fix(theme-classic): remove breadcrumb items without href from microdata ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7179](https://github.com/facebook/docusaurus/pull/7179) fix(theme-classic): do not add microdata item prop to trailing breadcrumb ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7173](https://github.com/facebook/docusaurus/pull/7173) fix(theme-classic): admonition title: disable text-transform on inline code blocks ([@chelproc](https://github.com/chelproc))\\n - [#7048](https://github.com/facebook/docusaurus/pull/7048) fix(theme-classic): add caret for dropdown on mobile ([@lex111](https://github.com/lex111))\\n - [#7025](https://github.com/facebook/docusaurus/pull/7025) fix: make docs page wrapper take full height ([@lex111](https://github.com/lex111))\\n - [#7013](https://github.com/facebook/docusaurus/pull/7013) fix(theme-classic): adjust shadow on code block ([@chernodub](https://github.com/chernodub))\\n - [#7015](https://github.com/facebook/docusaurus/pull/7015) fix(theme-classic): do not add caret for non-collapsible categories ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`\\n - [#7294](https://github.com/facebook/docusaurus/pull/7294) fix(\\\\*): make TypeScript realize that each plugin package has a default export ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#7285](https://github.com/facebook/docusaurus/pull/7285) fix(core): allow empty static directories ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7180](https://github.com/facebook/docusaurus/pull/7180) fix: pass pollOptions to webpack ([@JohnnyMcWeed](https://github.com/JohnnyMcWeed))\\n - [#7184](https://github.com/facebook/docusaurus/pull/7184) fix(core): prevent 404 when accessing /page.html ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7225](https://github.com/facebook/docusaurus/pull/7225) fix: allow swizzling a component\'s parent folder ([@slorber](https://github.com/slorber))\\n - [#7066](https://github.com/facebook/docusaurus/pull/7066) fix(core): all plugin lifecycles should receive translated content ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`\\n - [#7233](https://github.com/facebook/docusaurus/pull/7233) fix(content-docs): make category index text translatable ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-common`\\n - [#7200](https://github.com/facebook/docusaurus/pull/7200) fix(theme-common): do not persist color mode for OS-triggered changes ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7057](https://github.com/facebook/docusaurus/pull/7057) fix(theme-common): use native scrolling when smooth behavior set in CSS ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7033](https://github.com/facebook/docusaurus/pull/7033) fix(theme): only parse HTML- and JSX-style comments in MD code ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`\\n - [#7212](https://github.com/facebook/docusaurus/pull/7212) fix(content-blog): make footnote reference DOM ID unique on post listing page ([@AkiraVoid](https://github.com/AkiraVoid))\\n- `docusaurus-utils`, `docusaurus`\\n - [#7187](https://github.com/facebook/docusaurus/pull/7187) fix(core): handle case where package.json is not available at CWD ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-translations`\\n - [#7222](https://github.com/facebook/docusaurus/pull/7222) fix(theme-translations): fix invalid pluralization in cs ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7166](https://github.com/facebook/docusaurus/pull/7166) fix(theme-translations): always try all possible locale resolutions ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#7164](https://github.com/facebook/docusaurus/pull/7164) fix: adjust spacing for custom search properly ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-debug`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-types`, `docusaurus`\\n - [#7143](https://github.com/facebook/docusaurus/pull/7143) fix(sitemap): exclude pages with robots noindex from sitemap ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-types`\\n - [#7078](https://github.com/facebook/docusaurus/pull/7078) fix(create): install types for JS template as well ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-utils`\\n - [#7043](https://github.com/facebook/docusaurus/pull/7043) fix(utils): parse Markdown headings with CRLF line break ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils`, `docusaurus`\\n - [#7023](https://github.com/facebook/docusaurus/pull/7023) refactor: fix a few places of path handling ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-types`\\n - [#7014](https://github.com/facebook/docusaurus/pull/7014) fix(types): declare history and react-loadable as dependencies ([@sulu5890](https://github.com/sulu5890))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-translations`\\n - [#7299](https://github.com/facebook/docusaurus/pull/7299) refactor: minor improvements for breadcrumbs ([@lex111](https://github.com/lex111))\\n- `create-docusaurus`\\n - [#7290](https://github.com/facebook/docusaurus/pull/7290) refactor(create): add i18n config in init template ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7286](https://github.com/facebook/docusaurus/pull/7286) refactor(create): update screenshots in quick start tutorial ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7223](https://github.com/facebook/docusaurus/pull/7223) refactor: use generated-index in init templates ([@slorber](https://github.com/slorber))\\n - [#7118](https://github.com/facebook/docusaurus/pull/7118) refactor(create): mention that the edit links can be removed ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-debug`, `docusaurus-theme-classic`\\n - [#7306](https://github.com/facebook/docusaurus/pull/7306) chore: upgrade Infima to alpha.39 ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-debug`, `docusaurus-types`, `docusaurus`\\n - [#7291](https://github.com/facebook/docusaurus/pull/7291) feat(types): JSDoc for docusaurus config fields ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7267](https://github.com/facebook/docusaurus/pull/7267) fix(theme-common): allow details to not provide a summary ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7172](https://github.com/facebook/docusaurus/pull/7172) refactor: control base styling of code blocks via CSS vars ([@lex111](https://github.com/lex111))\\n - [#7129](https://github.com/facebook/docusaurus/pull/7129) refactor(theme-classic): fix a few margin inconsistencies ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#7248](https://github.com/facebook/docusaurus/pull/7248) refactor: normalize Markdown linkification behavior, elaborate in documentation ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#7244](https://github.com/facebook/docusaurus/pull/7244) refactor: semantic markup improvement, fix validation warnings ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7183](https://github.com/facebook/docusaurus/pull/7183) refactor: use SVG icon for home breadcrumb ([@Dr-Electron](https://github.com/Dr-Electron))\\n - [#7139](https://github.com/facebook/docusaurus/pull/7139) fix: proper spacing between generated card items on mobiles ([@lex111](https://github.com/lex111))\\n - [#7134](https://github.com/facebook/docusaurus/pull/7134) fix(theme-classic): fix docs sidebar layout shifts when expanding categories ([@slorber](https://github.com/slorber))\\n - [#7068](https://github.com/facebook/docusaurus/pull/7068) refactor(theme-classic): blog mobile secondary menu use consistent styles ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7004](https://github.com/facebook/docusaurus/pull/7004) fix(theme-classic): shrink title size on mobile ([@Pierre-Gilles](https://github.com/Pierre-Gilles))\\n- `docusaurus-theme-translations`\\n - [#7214](https://github.com/facebook/docusaurus/pull/7214) chore(theme-translations): complete Polish translations ([@rev4324](https://github.com/rev4324))\\n - [#7031](https://github.com/facebook/docusaurus/pull/7031) chore(theme-translations): complete German translations ([@deployn](https://github.com/deployn))\\n- `create-docusaurus`, `docusaurus-theme-classic`\\n - [#7176](https://github.com/facebook/docusaurus/pull/7176) refactor: customize code block line highlight color via CSS var ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#7218](https://github.com/facebook/docusaurus/pull/7218) fix(cli): always show error stack to unhandled rejection ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7142](https://github.com/facebook/docusaurus/pull/7142) refactor(core): lower timeout before rendering progress bar to 200ms ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7103](https://github.com/facebook/docusaurus/pull/7103) fix(core): preserve Interpolate children semantics ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7029](https://github.com/facebook/docusaurus/pull/7029) refactor: console output improvements ([@lex111](https://github.com/lex111))\\n - [#7017](https://github.com/facebook/docusaurus/pull/7017) refactor: remove copyright comment from swizzled components ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-preset-classic`, `docusaurus-theme-classic`\\n - [#7148](https://github.com/facebook/docusaurus/pull/7148) feat(preset-classic, content-docs/client): JSDoc ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-debug`, `docusaurus-preset-classic`\\n - [#7122](https://github.com/facebook/docusaurus/pull/7122) feat(preset-classic): exclude debug plugin routes from sitemap ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`\\n - [#7113](https://github.com/facebook/docusaurus/pull/7113) test: improve test coverage ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus`\\n - [#7080](https://github.com/facebook/docusaurus/pull/7080) refactor: replace non-prop interface with type; allow plugin lifecycles to have sync type ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-logger`, `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#7019](https://github.com/facebook/docusaurus/pull/7019) feat(logger): new \\"url\\" format, add double quotes around paths ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7006](https://github.com/facebook/docusaurus/pull/7006) refactor: split and cleanup theme/DocPage ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#7005](https://github.com/facebook/docusaurus/pull/7005) refactor: split DocSidebarItem by item type ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- `docusaurus-logger`\\n - [#7305](https://github.com/facebook/docusaurus/pull/7305) docs: update docs for logger, add API docs to website ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Other\\n - [#7284](https://github.com/facebook/docusaurus/pull/7284) docs: add a paragraph about SSR as an optimization technique ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7278](https://github.com/facebook/docusaurus/pull/7278) docs: enhance docs about Markdown TOC and metadata ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7271](https://github.com/facebook/docusaurus/pull/7271) docs: specify Node version requirement to a minor ([@DanRoscigno](https://github.com/DanRoscigno))\\n - [#7252](https://github.com/facebook/docusaurus/pull/7252) docs: update gtag docs to reflect what a GA4 tag looks like ([@johnnyreilly](https://github.com/johnnyreilly))\\n - [#7240](https://github.com/facebook/docusaurus/pull/7240) docs: add PCC Archive site to showcase ([@CuratorCat](https://github.com/CuratorCat))\\n - [#7239](https://github.com/facebook/docusaurus/pull/7239) docs: add Chaos mesh site to showcase ([@cwen0](https://github.com/cwen0))\\n - [#7235](https://github.com/facebook/docusaurus/pull/7235) docs: add TiDB community books to showcase ([@shczhen](https://github.com/shczhen))\\n - [#7236](https://github.com/facebook/docusaurus/pull/7236) docs: add documentation about pluralization ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7230](https://github.com/facebook/docusaurus/pull/7230) docs: add OSS Insight to showcase ([@sykp241095](https://github.com/sykp241095))\\n - [#7208](https://github.com/facebook/docusaurus/pull/7208) docs: remove mention of \\"template\\" from README installation guide ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7159](https://github.com/facebook/docusaurus/pull/7159) docs: explain more clearly the purpose of a ref sidebar type ([@andrewnicols](https://github.com/andrewnicols))\\n - [#7126](https://github.com/facebook/docusaurus/pull/7126) docs: multiple documentation improvements ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7123](https://github.com/facebook/docusaurus/pull/7123) refactor(showcase): enforce descriptions with maximum length of 120 characters ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7026](https://github.com/facebook/docusaurus/pull/7026) docs: correct plugin example filename ([@mxhdx](https://github.com/mxhdx))\\n - [#7110](https://github.com/facebook/docusaurus/pull/7110) docs: add a note about additional languages needing to be Prism component names ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6746](https://github.com/facebook/docusaurus/pull/6746) fix(website): lazy-load YT iframe ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7061](https://github.com/facebook/docusaurus/pull/7061) docs: add docusaurus-plugin-typedoc to resources ([@nartc](https://github.com/nartc))\\n - [#7059](https://github.com/facebook/docusaurus/pull/7059) docs: add firelordjs to showcase ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7050](https://github.com/facebook/docusaurus/pull/7050) docs: add import React statement in JSX file example ([@kaycebasques](https://github.com/kaycebasques))\\n - [#7022](https://github.com/facebook/docusaurus/pull/7022) docs: add Easypanel to showcase ([@deiucanta](https://github.com/deiucanta))\\n - [#7016](https://github.com/facebook/docusaurus/pull/7016) docs: consistently use sidebars.js filename ([@leedom92](https://github.com/leedom92))\\n - [#7020](https://github.com/facebook/docusaurus/pull/7020) docs: add Divine WSF and Ghostly to showcase ([@LeviticusMB](https://github.com/LeviticusMB))\\n - [#7000](https://github.com/facebook/docusaurus/pull/7000) docs: remove unnecessary semicolon ([@imsingh](https://github.com/imsingh))\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#7248](https://github.com/facebook/docusaurus/pull/7248) refactor: normalize Markdown linkification behavior, elaborate in documentation ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils`\\n - [#7081](https://github.com/facebook/docusaurus/pull/7081) docs: fix some casing inconsistencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :wrench: Maintenance\\n\\n- Other\\n - [#7309](https://github.com/facebook/docusaurus/pull/7309) chore: use \\"Maintenance\\" instead of \\"Internal\\" in changelog ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7300](https://github.com/facebook/docusaurus/pull/7300) misc: check doc page by Lighthouse CI ([@lex111](https://github.com/lex111))\\n - [#7266](https://github.com/facebook/docusaurus/pull/7266) misc: add links section to PR template ([@slorber](https://github.com/slorber))\\n - [#7224](https://github.com/facebook/docusaurus/pull/7224) chore: GitHub Actions cancel-in-progress ([@slorber](https://github.com/slorber))\\n - [#7216](https://github.com/facebook/docusaurus/pull/7216) chore: remove netlify-cli from devDependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7211](https://github.com/facebook/docusaurus/pull/7211) chore: replace node 17 with 18 in CI matrix ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7168](https://github.com/facebook/docusaurus/pull/7168) misc: add CI actions/dependency-review-action for security ([@slorber](https://github.com/slorber))\\n - [#6984](https://github.com/facebook/docusaurus/pull/6984) misc: pin actions to a full-length commit SHA ([@naveensrinivasan](https://github.com/naveensrinivasan))\\n - [#7002](https://github.com/facebook/docusaurus/pull/7002) chore: regen examples for 2.0 beta.18 ([@slorber](https://github.com/slorber))\\n- `docusaurus-logger`, `docusaurus-remark-plugin-npm2yarn`\\n - [#7295](https://github.com/facebook/docusaurus/pull/7295) refactor: use export = syntax for Node utility packages ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#7293](https://github.com/facebook/docusaurus/pull/7293) refactor(types): move non-core, non-public types out of the types package ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-types`, `docusaurus`\\n - [#7292](https://github.com/facebook/docusaurus/pull/7292) refactor(core): collocate CLI commands and their option types ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7084](https://github.com/facebook/docusaurus/pull/7084) refactor(core): code cleanup ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus`\\n - [#7282](https://github.com/facebook/docusaurus/pull/7282) refactor(core): prefetch/preload refactor ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7273](https://github.com/facebook/docusaurus/pull/7273) refactor(theme-classic): multiple re-arrangements ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7268](https://github.com/facebook/docusaurus/pull/7268) refactor(theme-classic): DocPage theme refactors polish ([@slorber](https://github.com/slorber))\\n - [#7269](https://github.com/facebook/docusaurus/pull/7269) refactor: extract useSkipToContent() ([@slorber](https://github.com/slorber))\\n - [#7175](https://github.com/facebook/docusaurus/pull/7175) refactor(theme-classic): split CodeBlock ([@slorber](https://github.com/slorber))\\n - [#7067](https://github.com/facebook/docusaurus/pull/7067) refactor(theme-classic): extract doc-related navbar items\' logic to theme-common ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7021](https://github.com/facebook/docusaurus/pull/7021) refactor(theme): extract plumbing code of BTT button into theme-common ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#7270](https://github.com/facebook/docusaurus/pull/7270) refactor(theme-classic): refactor TOC-related theme components ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#7220](https://github.com/facebook/docusaurus/pull/7220) refactor(cli): normalize the application of default option values ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7141](https://github.com/facebook/docusaurus/pull/7141) refactor(core): minor PendingNavigation refactor ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`\\n - [#7243](https://github.com/facebook/docusaurus/pull/7243) chore: upgrade Jest to 28; add GitHub-actions reporter ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7140](https://github.com/facebook/docusaurus/pull/7140) refactor(content-docs): split version handling into several files ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-live-codeblock`, `docusaurus`\\n - [#7194](https://github.com/facebook/docusaurus/pull/7194) fix: fix a few internal declaration semantic errors ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-migrate`, `docusaurus-theme-translations`, `docusaurus`\\n - [#7186](https://github.com/facebook/docusaurus/pull/7186) refactor: prefer fs.readJSON over readFile.then(JSON.parse) ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`\\n - [#7145](https://github.com/facebook/docusaurus/pull/7145) refactor: unify how MDX content types are represented ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#7138](https://github.com/facebook/docusaurus/pull/7138) chore: upgrade dependencies + upgrade React types ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#7131](https://github.com/facebook/docusaurus/pull/7131) chore: disable string escaping in snapshots ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#7054](https://github.com/facebook/docusaurus/pull/7054) refactor(core): refactor routes generation logic ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-types`, `docusaurus`\\n - [#7042](https://github.com/facebook/docusaurus/pull/7042) refactor(core): reorganize files ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`, `docusaurus`\\n - [#7037](https://github.com/facebook/docusaurus/pull/7037) refactor(core): reorganize functions ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#7027](https://github.com/facebook/docusaurus/pull/7027) refactor(content-docs): deduplicate types, JSDoc for some APIs ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :running: Performance\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-utils-common`\\n - [#7085](https://github.com/facebook/docusaurus/pull/7085) refactor: mark a few client-side packages as side-effect-free ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-remark-plugin-npm2yarn`\\n - [#4997](https://github.com/facebook/docusaurus/pull/4997) perf(mdx-loader): cache mdx/remark compiler instances ([@phryneas](https://github.com/phryneas))\\n\\n## Committers: 47\\n\\n- Aaron Nwabuoku ([@aerovulpe](https://github.com/aerovulpe))\\n- AkiraVoid ([@AkiraVoid](https://github.com/AkiraVoid))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Andrei Canta ([@deiucanta](https://github.com/deiucanta))\\n- Andrew Lyons ([@andrewnicols](https://github.com/andrewnicols))\\n- ApsarasX ([@ApsarasX](https://github.com/ApsarasX))\\n- Chau Tran ([@nartc](https://github.com/nartc))\\n- Chinazaekpere Ngubo ([@dr-ngubo](https://github.com/dr-ngubo))\\n- Cwen Yin ([@cwen0](https://github.com/cwen0))\\n- Dan Roscigno ([@DanRoscigno](https://github.com/DanRoscigno))\\n- Elias Papavasileiou ([@elias-pap](https://github.com/elias-pap))\\n- Evan ([@sulu5890](https://github.com/sulu5890))\\n- Fusang\u2740 ([@cxOrz](https://github.com/cxOrz))\\n- Indermohan Singh ([@imsingh](https://github.com/imsingh))\\n- JMW ([@JohnnyMcWeed](https://github.com/JohnnyMcWeed))\\n- Jeffrey Aven ([@jeffreyaven](https://github.com/jeffreyaven))\\n- Jody Heavener ([@jodyheavener](https://github.com/jodyheavener))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Karl Ward ([@mjau-mjau](https://github.com/mjau-mjau))\\n- Kayce Basques ([@kaycebasques](https://github.com/kaycebasques))\\n- Leedom ([@leedom92](https://github.com/leedom92))\\n- Lenz Weber-Tronic ([@phryneas](https://github.com/phryneas))\\n- Lukas Bach ([@lukasbach](https://github.com/lukasbach))\\n- Martin Blom ([@LeviticusMB](https://github.com/LeviticusMB))\\n- Naveen ([@naveensrinivasan](https://github.com/naveensrinivasan))\\n- Pablo Cordon ([@pcordon](https://github.com/pcordon))\\n- Pierre-Gilles Leymarie ([@Pierre-Gilles](https://github.com/Pierre-Gilles))\\n- Qi Zhang ([@zzzhangqi](https://github.com/zzzhangqi))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Viktor Chernodub ([@chernodub](https://github.com/chernodub))\\n- Zac A ([@sandypockets](https://github.com/sandypockets))\\n- [@Dr-Electron](https://github.com/Dr-Electron)\\n- [@chelproc](https://github.com/chelproc)\\n- [@deployn](https://github.com/deployn)\\n- [@duanwilliam](https://github.com/duanwilliam)\\n- [@kgolubic](https://github.com/kgolubic)\\n- [@redhat123456](https://github.com/redhat123456)\\n- [@surendran82](https://github.com/surendran82)\\n- [@svix-ken](https://github.com/svix-ken)\\n- apq ([@AntonPalmqvist](https://github.com/AntonPalmqvist))\\n- curatorcat.pcc.eth ([@CuratorCat](https://github.com/CuratorCat))\\n- czhen ([@shczhen](https://github.com/shczhen))\\n- loic ([@layerzzzio](https://github.com/layerzzzio))\\n- mehdim ([@mxhdx](https://github.com/mxhdx))\\n- rev ([@rev4324](https://github.com/rev4324))\\n- sykp241095 ([@sykp241095](https://github.com/sykp241095))"},{"id":"/2.0.0-beta.18","metadata":{"permalink":"/changelog/2.0.0-beta.18","source":"@site/changelog/source/2.0.0-beta.18.md","title":"2.0.0-beta.18","description":"New Feature","date":"2022-03-25T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Afonso Jorge Ramos","alias":"afonsojramos","url":"https://github.com/afonsojramos","imageURL":"https://github.com/afonsojramos.png","key":"afonsojramos","page":null},{"name":"Alessandro Festa","alias":"alefesta","url":"https://github.com/alefesta","imageURL":"https://github.com/alefesta.png","key":"alefesta","page":null},{"name":"Alois Klink","alias":"aloisklink","url":"https://github.com/aloisklink","imageURL":"https://github.com/aloisklink.png","key":"aloisklink","page":null},{"name":"Ariful Alam","alias":"arifszn","url":"https://github.com/arifszn","imageURL":"https://github.com/arifszn.png","key":"arifszn","page":null},{"name":"Billy Chan","alias":"billy1624","url":"https://github.com/billy1624","imageURL":"https://github.com/billy1624.png","key":"billy1624","page":null},{"name":"Ng\xf4 Qu\u1ED1c \u0110\u1EA1t","alias":"datlechin","url":"https://github.com/datlechin","imageURL":"https://github.com/datlechin.png","key":"datlechin","page":null},{"name":"Evan","alias":"DigiPie","url":"https://github.com/DigiPie","imageURL":"https://github.com/DigiPie.png","key":"DigiPie","page":null},{"name":"Bugo","alias":"dragomano","url":"https://github.com/dragomano","imageURL":"https://github.com/dragomano.png","key":"dragomano","page":null},{"name":"Felipe Santos","alias":"felipecrs","url":"https://github.com/felipecrs","imageURL":"https://github.com/felipecrs.png","key":"felipecrs","page":null},{"name":"Kyohei Fukuda","alias":"hand-dot","url":"https://github.com/hand-dot","imageURL":"https://github.com/hand-dot.png","key":"hand-dot","page":null},{"name":"WonChul Heo","alias":"heowc","url":"https://github.com/heowc","imageURL":"https://github.com/heowc.png","key":"heowc","page":null},{"name":"Jadon N","alias":"jadonn","url":"https://github.com/jadonn","imageURL":"https://github.com/jadonn.png","key":"jadonn","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Roberto Vidal","alias":"jrvidal","url":"https://github.com/jrvidal","imageURL":"https://github.com/jrvidal.png","key":"jrvidal","page":null},{"name":"Kayce Basques","alias":"kaycebasques","url":"https://github.com/kaycebasques","imageURL":"https://github.com/kaycebasques.png","key":"kaycebasques","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"moonrailgun","alias":"moonrailgun","url":"https://github.com/moonrailgun","imageURL":"https://github.com/moonrailgun.png","key":"moonrailgun","page":null},{"name":"nate contino","alias":"nathan-contino-mongo","url":"https://github.com/nathan-contino-mongo","imageURL":"https://github.com/nathan-contino-mongo.png","key":"nathan-contino-mongo","page":null},{"name":"Odarpi","alias":"odarpi","url":"https://github.com/odarpi","imageURL":"https://github.com/odarpi.png","key":"odarpi","page":null},{"name":"Nayan Patel","alias":"PatelN123","url":"https://github.com/PatelN123","imageURL":"https://github.com/PatelN123.png","key":"PatelN123","page":null},{"name":"Pawel Kowaluk","alias":"pkowaluk","url":"https://github.com/pkowaluk","imageURL":"https://github.com/pkowaluk.png","key":"pkowaluk","page":null},{"name":"Tsz W. TAM","alias":"rccttwd","url":"https://github.com/rccttwd","imageURL":"https://github.com/rccttwd.png","key":"rccttwd","page":null},{"name":"Sam Gutentag","alias":"samgutentag","url":"https://github.com/samgutentag","imageURL":"https://github.com/samgutentag.png","key":"samgutentag","page":null},{"name":"seladb","alias":"seladb","url":"https://github.com/seladb","imageURL":"https://github.com/seladb.png","key":"seladb","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"tae","alias":"taejs","url":"https://github.com/taejs","imageURL":"https://github.com/taejs.png","key":"taejs","page":null},{"name":"Begula","alias":"vedantmgoyal2009","url":"https://github.com/vedantmgoyal2009","imageURL":"https://github.com/vedantmgoyal2009.png","key":"vedantmgoyal2009","page":null},{"name":"Yorkie Liu","alias":"yorkie","url":"https://github.com/yorkie","imageURL":"https://github.com/yorkie.png","key":"yorkie","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-03-25T20:00","authors":["afonsojramos","alefesta","aloisklink","arifszn","billy1624","datlechin","DigiPie","dragomano","felipecrs","hand-dot","heowc","jadonn","Josh-Cena","jrvidal","kaycebasques","lex111","moonrailgun","nathan-contino-mongo","odarpi","PatelN123","pkowaluk","rccttwd","samgutentag","seladb","slorber","taejs","vedantmgoyal2009","yorkie"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.19","permalink":"/changelog/2.0.0-beta.19"},"nextItem":{"title":"2.0.0-beta.17","permalink":"/changelog/2.0.0-beta.17"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-mdx-loader`, `docusaurus-theme-classic`\\n - [#6990](https://github.com/facebook/docusaurus/pull/6990) feat: lazy-load external images + ability to customize image display ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus`\\n - [#6933](https://github.com/facebook/docusaurus/pull/6933) feat(core,theme): useRouteContext + HtmlClassNameProvider ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus`\\n - [#6921](https://github.com/facebook/docusaurus/pull/6921) feat(core): allow plugin lifecycles to return relative paths ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#6697](https://github.com/facebook/docusaurus/pull/6697) feat: add SEO microdata for doc breadcrumbs ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6842](https://github.com/facebook/docusaurus/pull/6842) feat(theme-classic): MDXContent wrapper component ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#6780](https://github.com/facebook/docusaurus/pull/6780) feat(content-docs): allow custom props through _category_.json ([@taejs](https://github.com/taejs))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-plugin-content-docs`\\n - [#6859](https://github.com/facebook/docusaurus/pull/6859) feat(content-docs): autogenerate category with linked doc metadata as fallback ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#6989](https://github.com/facebook/docusaurus/pull/6989) refactor: extract MDX components ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#6925](https://github.com/facebook/docusaurus/pull/6925) refactor(theme-{classic,common}): refactor site/page/search metadata + apply className on html element ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6895](https://github.com/facebook/docusaurus/pull/6895) refactor(theme-{classic,common}): split navbar into smaller components + cleanup + swizzle config ([@slorber](https://github.com/slorber))\\n - [#6930](https://github.com/facebook/docusaurus/pull/6930) refactor(theme-{classic,common}): refactor ColorModeToggle + useColorMode() hook ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#6993](https://github.com/facebook/docusaurus/pull/6993) fix(core): prevent useBaseUrl returning /base/base when on /base ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6936](https://github.com/facebook/docusaurus/pull/6936) fix: remove semicolon from HTML output ([@lex111](https://github.com/lex111))\\n - [#6849](https://github.com/facebook/docusaurus/pull/6849) fix(cli): write-heading-id should not generate colliding slugs when not overwriting ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#6983](https://github.com/facebook/docusaurus/pull/6983) fix(search): bump Infima, fix search issue due to broken CSS selector ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils-validation`\\n - [#6977](https://github.com/facebook/docusaurus/pull/6977) fix(validation): allow non-object params to remark/rehype plugins ([@aloisklink](https://github.com/aloisklink))\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#6973](https://github.com/facebook/docusaurus/pull/6973) fix(content-docs): suppress git error on multiple occurrences ([@felipecrs](https://github.com/felipecrs))\\n- `docusaurus-plugin-content-blog`\\n - [#6947](https://github.com/facebook/docusaurus/pull/6947) fix(content-blog): only create archive route if there are blog posts ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6918](https://github.com/facebook/docusaurus/pull/6918) fix(content-blog): remove double leading slash in blog-only paginated view ([@heowc](https://github.com/heowc))\\n- `docusaurus-theme-search-algolia`\\n - [#6888](https://github.com/facebook/docusaurus/pull/6888) fix(theme-algolia): declare content-docs as dependency ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-translations`\\n - [#6847](https://github.com/facebook/docusaurus/pull/6847) fix: minor Chinese translation fixes ([@rccttwd](https://github.com/rccttwd))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-plugin-content-docs`\\n - [#6859](https://github.com/facebook/docusaurus/pull/6859) feat(content-docs): autogenerate category with linked doc metadata as fallback ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6887](https://github.com/facebook/docusaurus/pull/6887) fix(content-docs): give context about sidebar loading failure ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils-validation`, `docusaurus`\\n - [#6997](https://github.com/facebook/docusaurus/pull/6997) fix(validation): improve error messages for a few schemas ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#6971](https://github.com/facebook/docusaurus/pull/6971) refactor: improve a11y of dropdown menu ([@lex111](https://github.com/lex111))\\n - [#6987](https://github.com/facebook/docusaurus/pull/6987) refactor(theme-classic): cleanup of code blocks ([@lex111](https://github.com/lex111))\\n - [#6950](https://github.com/facebook/docusaurus/pull/6950) refactor(theme-classic): clean up CSS of doc cards ([@lex111](https://github.com/lex111))\\n - [#6994](https://github.com/facebook/docusaurus/pull/6994) refactor: better external link icon positioning ([@lex111](https://github.com/lex111))\\n - [#6989](https://github.com/facebook/docusaurus/pull/6989) refactor: extract MDX components ([@slorber](https://github.com/slorber))\\n - [#6985](https://github.com/facebook/docusaurus/pull/6985) refactor(theme-classic): remove span wrappers from layout links ([@lex111](https://github.com/lex111))\\n - [#6986](https://github.com/facebook/docusaurus/pull/6986) fix(theme-classic): minor code copy button improvements ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6964](https://github.com/facebook/docusaurus/pull/6964) refactor: replace text-based copy code button with icons ([@lex111](https://github.com/lex111))\\n - [#6932](https://github.com/facebook/docusaurus/pull/6932) refactor(theme-classic): little breadcrumbs improvements ([@lex111](https://github.com/lex111))\\n - [#6914](https://github.com/facebook/docusaurus/pull/6914) feat(theme-classic): set aria-expanded on expandable sidebar categories ([@pkowaluk](https://github.com/pkowaluk))\\n - [#6844](https://github.com/facebook/docusaurus/pull/6844) refactor(theme-classic): split sidebar into smaller parts ([@slorber](https://github.com/slorber))\\n - [#6846](https://github.com/facebook/docusaurus/pull/6846) refactor(theme-classic): consistently add span wrapper for layout links ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#6980](https://github.com/facebook/docusaurus/pull/6980) feat(utils): JSDoc for all APIs ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-common`\\n - [#6974](https://github.com/facebook/docusaurus/pull/6974) feat(theme-common): JSDoc for all APIs ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#6784](https://github.com/facebook/docusaurus/pull/6784) feat(core): allow configureWebpack to return undefined ([@yorkie](https://github.com/yorkie))\\n - [#6941](https://github.com/facebook/docusaurus/pull/6941) refactor(core): improve error message when a page has no default-export ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6878](https://github.com/facebook/docusaurus/pull/6878) fix(core): ensure stable webpack theme aliases sorting ([@jrvidal](https://github.com/jrvidal))\\n - [#6854](https://github.com/facebook/docusaurus/pull/6854) fix(core): fix swizzle legend typo ([@DigiPie](https://github.com/DigiPie))\\n - [#6850](https://github.com/facebook/docusaurus/pull/6850) fix(core): make plugin lifecycles consistently bound to the plugin instance ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#6937](https://github.com/facebook/docusaurus/pull/6937) fix(content-docs): warn when files are not tracked ([@felipecrs](https://github.com/felipecrs))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#6925](https://github.com/facebook/docusaurus/pull/6925) refactor(theme-{classic,common}): refactor site/page/search metadata + apply className on html element ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6895](https://github.com/facebook/docusaurus/pull/6895) refactor(theme-{classic,common}): split navbar into smaller components + cleanup + swizzle config ([@slorber](https://github.com/slorber))\\n - [#6930](https://github.com/facebook/docusaurus/pull/6930) refactor(theme-{classic,common}): refactor ColorModeToggle + useColorMode() hook ([@lex111](https://github.com/lex111))\\n - [#6894](https://github.com/facebook/docusaurus/pull/6894) refactor(theme-classic): split theme footer into smaller components + swizzle config ([@slorber](https://github.com/slorber))\\n- `docusaurus-types`, `docusaurus`\\n - [#6929](https://github.com/facebook/docusaurus/pull/6929) refactor(core): minor routes type improvement ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`\\n - [#6928](https://github.com/facebook/docusaurus/pull/6928) chore(pwa, sitemap, client-redirects, ideal-image): JSDoc for types ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-utils`\\n - [#6922](https://github.com/facebook/docusaurus/pull/6922) refactor(content-blog): clean up type definitions; in-code documentation ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-translations`\\n - [#6781](https://github.com/facebook/docusaurus/pull/6781) feat(theme-translations): complete Russian translations ([@dragomano](https://github.com/dragomano))\\n - [#6877](https://github.com/facebook/docusaurus/pull/6877) chore(theme-translations): complete Vietnamese translations ([@datlechin](https://github.com/datlechin))\\n- `docusaurus-plugin-content-blog`\\n - [#6909](https://github.com/facebook/docusaurus/pull/6909) refactor(content-blog): improve error message of authors map validation ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#6860](https://github.com/facebook/docusaurus/pull/6860) fix(create): load entry file after node version checking ([@taejs](https://github.com/taejs))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#6988](https://github.com/facebook/docusaurus/pull/6988) docs: fix example admonition syntax ([@kaycebasques](https://github.com/kaycebasques))\\n - [#6978](https://github.com/facebook/docusaurus/pull/6978) docs: npm run tsc -> npx tsc ([@jadonn](https://github.com/jadonn))\\n - [#6952](https://github.com/facebook/docusaurus/pull/6952) docs: add K3ai to showcase ([@alefesta](https://github.com/alefesta))\\n - [#6948](https://github.com/facebook/docusaurus/pull/6948) docs: add pdfme docs to showcase ([@hand-dot](https://github.com/hand-dot))\\n - [#6943](https://github.com/facebook/docusaurus/pull/6943) docs: add SeaORM docs to showcase ([@billy1624](https://github.com/billy1624))\\n - [#6926](https://github.com/facebook/docusaurus/pull/6926) docs: clarify the usage of slug ([@kaycebasques](https://github.com/kaycebasques))\\n - [#6911](https://github.com/facebook/docusaurus/pull/6911) docs: add Reactive Button site to showcase ([@arifszn](https://github.com/arifszn))\\n - [#6904](https://github.com/facebook/docusaurus/pull/6904) docs: update image for digital support services ([@PatelN123](https://github.com/PatelN123))\\n - [#6892](https://github.com/facebook/docusaurus/pull/6892) docs: add EduLinks site to showcase ([@odarpi](https://github.com/odarpi))\\n - [#6889](https://github.com/facebook/docusaurus/pull/6889) docs: editorial fixes ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6883](https://github.com/facebook/docusaurus/pull/6883) docs(cli): add info about development on github codespaces ([@vedantmgoyal2009](https://github.com/vedantmgoyal2009))\\n - [#6856](https://github.com/facebook/docusaurus/pull/6856) docs: add Reddit Image Fetcher site to showcase ([@arifszn](https://github.com/arifszn))\\n - [#6875](https://github.com/facebook/docusaurus/pull/6875) docs: update TRPG Engine showcase ([@moonrailgun](https://github.com/moonrailgun))\\n - [#6871](https://github.com/facebook/docusaurus/pull/6871) docs: mark clutch and gulp as open-source ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6862](https://github.com/facebook/docusaurus/pull/6862) docs: update showcase data ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6837](https://github.com/facebook/docusaurus/pull/6837) docs: add PcapPlusPlus to showcase ([@seladb](https://github.com/seladb))\\n - [#6832](https://github.com/facebook/docusaurus/pull/6832) docs: add Spicetify site to showcase ([@afonsojramos](https://github.com/afonsojramos))\\n - [#6830](https://github.com/facebook/docusaurus/pull/6830) docs: simplify imported code blocks syntax ([@nathan-contino-mongo](https://github.com/nathan-contino-mongo))\\n- `docusaurus-types`\\n - [#6881](https://github.com/facebook/docusaurus/pull/6881) docs: mention configureWebpack devServer return value ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#6833](https://github.com/facebook/docusaurus/pull/6833) docs: make tutorial code block directly copyable ([@samgutentag](https://github.com/samgutentag))\\n\\n## :house: Internal\\n\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6995](https://github.com/facebook/docusaurus/pull/6995) refactor: ensure all types are using index signature instead of Record ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-plugin-pwa`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6991](https://github.com/facebook/docusaurus/pull/6991) chore: upgrade dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `lqip-loader`\\n - [#6992](https://github.com/facebook/docusaurus/pull/6992) refactor(lqip-loader): remove unused palette option ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#6975](https://github.com/facebook/docusaurus/pull/6975) chore: update static-site-generator-webpack-plugin ([@slorber](https://github.com/slorber))\\n- `stylelint-copyright`\\n - [#6967](https://github.com/facebook/docusaurus/pull/6967) chore: publish stylelint-copyright again ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus`\\n - [#6961](https://github.com/facebook/docusaurus/pull/6961) refactor: unify how validateOptions is handled ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-types`\\n - [#6957](https://github.com/facebook/docusaurus/pull/6957) chore(types): remove querystring from dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-common`, `docusaurus`\\n - [#6956](https://github.com/facebook/docusaurus/pull/6956) test: improve test coverage; reorder theme-common files ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6955](https://github.com/facebook/docusaurus/pull/6955) refactor(core): move browserContext and docusaurusContext out of client exports ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6944](https://github.com/facebook/docusaurus/pull/6944) chore: migrate Jest and website to SWC ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-utils`\\n - [#6951](https://github.com/facebook/docusaurus/pull/6951) test: fix Windows test for gitUtils ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`, `stylelint-copyright`\\n - [#6931](https://github.com/facebook/docusaurus/pull/6931) chore: tighten ESLint config ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`\\n - [#6924](https://github.com/facebook/docusaurus/pull/6924) refactor(client-redirects): migrate validation to validateOptions lifecycle ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6916](https://github.com/facebook/docusaurus/pull/6916) chore: upgrade dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-plugin-content-docs`, `docusaurus-theme-translations`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `stylelint-copyright`\\n - [#6912](https://github.com/facebook/docusaurus/pull/6912) test: improve test coverage; multiple internal refactors ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Other\\n - [#6910](https://github.com/facebook/docusaurus/pull/6910) refactor: convert Jest infrastructure to TS ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6838](https://github.com/facebook/docusaurus/pull/6838) fix(website): changelog plugin leads to CI bugs on release ([@slorber](https://github.com/slorber))\\n- `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`\\n - [#6908](https://github.com/facebook/docusaurus/pull/6908) chore: do not print prototype in jest snapshot ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-plugin-content-docs`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#6906](https://github.com/facebook/docusaurus/pull/6906) refactor: install eslint-plugin-regexp ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-docs`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`\\n - [#6905](https://github.com/facebook/docusaurus/pull/6905) test: improve test coverage; properly test core client APIs ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-sitemap`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`\\n - [#6903](https://github.com/facebook/docusaurus/pull/6903) chore: spell-check test files ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6902](https://github.com/facebook/docusaurus/pull/6902) test(theme-common): improve test coverage ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`, `stylelint-copyright`\\n - [#6900](https://github.com/facebook/docusaurus/pull/6900) test: enable a few jest eslint rules ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6898](https://github.com/facebook/docusaurus/pull/6898) refactor: import jest as global; unify import style of some modules ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6891](https://github.com/facebook/docusaurus/pull/6891) refactor(theme-classic): avoid using clsx class dict with CSS modules ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`\\n - [#6880](https://github.com/facebook/docusaurus/pull/6880) refactor: prefer fs.outputFile to ensureDir + writeFile ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-pwa`, `docusaurus-types`, `docusaurus`\\n - [#6866](https://github.com/facebook/docusaurus/pull/6866) refactor: improve types ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus`, `lqip-loader`\\n - [#6864](https://github.com/facebook/docusaurus/pull/6864) refactor: remove unnecessary default values normalized during validation ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-migrate`, `docusaurus`\\n - [#6861](https://github.com/facebook/docusaurus/pull/6861) refactor: make JS executables included in the tsconfig for editor hints ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus`\\n - [#6857](https://github.com/facebook/docusaurus/pull/6857) test: improve test coverage ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-utils-common`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6852](https://github.com/facebook/docusaurus/pull/6852) refactor: enable a few TS flags ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 28\\n\\n- Afonso Jorge Ramos ([@afonsojramos](https://github.com/afonsojramos))\\n- Alessandro Festa ([@alefesta](https://github.com/alefesta))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Alois Klink ([@aloisklink](https://github.com/aloisklink))\\n- Ariful Alam ([@arifszn](https://github.com/arifszn))\\n- Begula ([@vedantmgoyal2009](https://github.com/vedantmgoyal2009))\\n- Billy Chan ([@billy1624](https://github.com/billy1624))\\n- Bugo ([@dragomano](https://github.com/dragomano))\\n- Evan ([@DigiPie](https://github.com/DigiPie))\\n- Felipe Santos ([@felipecrs](https://github.com/felipecrs))\\n- Jadon N ([@jadonn](https://github.com/jadonn))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Kayce Basques ([@kaycebasques](https://github.com/kaycebasques))\\n- Kyohei Fukuda ([@hand-dot](https://github.com/hand-dot))\\n- Nayan Patel ([@PatelN123](https://github.com/PatelN123))\\n- Ng\xf4 Qu\u1ED1c \u0110\u1EA1t ([@datlechin](https://github.com/datlechin))\\n- Odarpi ([@odarpi](https://github.com/odarpi))\\n- Pawel Kowaluk ([@pkowaluk](https://github.com/pkowaluk))\\n- Roberto Vidal ([@jrvidal](https://github.com/jrvidal))\\n- Sam Gutentag ([@samgutentag](https://github.com/samgutentag))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tsz W. TAM ([@rccttwd](https://github.com/rccttwd))\\n- WonChul Heo ([@heowc](https://github.com/heowc))\\n- Yorkie Liu ([@yorkie](https://github.com/yorkie))\\n- [@seladb](https://github.com/seladb)\\n- moonrailgun ([@moonrailgun](https://github.com/moonrailgun))\\n- nate contino ([@nathan-contino-mongo](https://github.com/nathan-contino-mongo))\\n- tae ([@taejs](https://github.com/taejs))"},{"id":"/2.0.0-beta.17","metadata":{"permalink":"/changelog/2.0.0-beta.17","source":"@site/changelog/source/2.0.0-beta.17.md","title":"2.0.0-beta.17","description":"New Feature","date":"2022-03-03T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Alex Nicholls","alias":"anicholls","url":"https://github.com/anicholls","imageURL":"https://github.com/anicholls.png","key":"anicholls","page":null},{"name":"Ariful Alam","alias":"arifszn","url":"https://github.com/arifszn","imageURL":"https://github.com/arifszn.png","key":"arifszn","page":null},{"name":"Dmitry Vinnik","alias":"dmitryvinn","url":"https://github.com/dmitryvinn","imageURL":"https://github.com/dmitryvinn.png","key":"dmitryvinn","page":null},{"name":"David Stotijn","alias":"dstotijn","url":"https://github.com/dstotijn","imageURL":"https://github.com/dstotijn.png","key":"dstotijn","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Nayan Patel","alias":"PatelN123","url":"https://github.com/PatelN123","imageURL":"https://github.com/PatelN123.png","key":"PatelN123","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Vaibhav Shinde","alias":"vaibhavshn","url":"https://github.com/vaibhavshn","imageURL":"https://github.com/vaibhavshn.png","key":"vaibhavshn","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-03-03T20:00","authors":["anicholls","arifszn","dmitryvinn","dstotijn","Josh-Cena","PatelN123","slorber","vaibhavshn"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.18","permalink":"/changelog/2.0.0-beta.18"},"nextItem":{"title":"2.0.0-beta.16","permalink":"/changelog/2.0.0-beta.16"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#6783](https://github.com/facebook/docusaurus/pull/6783) feat: allow blog authors email ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6771](https://github.com/facebook/docusaurus/pull/6771) refactor(theme-classic): replace color mode toggle with button; remove switchConfig ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#6827](https://github.com/facebook/docusaurus/pull/6827) fix(theme-classic): restore docusaurus search meta ([@slorber](https://github.com/slorber))\\n - [#6767](https://github.com/facebook/docusaurus/pull/6767) fix(theme-classic): allow code tags containing inline elements to stay inline ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-common`\\n - [#6824](https://github.com/facebook/docusaurus/pull/6824) fix(theme-common): breadcrumbs home bug in docs-only ([@slorber](https://github.com/slorber))\\n - [#6816](https://github.com/facebook/docusaurus/pull/6816) fix(theme-common): docs breadcrumbs not working with baseUrl ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#6700](https://github.com/facebook/docusaurus/pull/6700) fix(content-docs): always sort autogenerated sidebar items by file/folder name by default ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#6812](https://github.com/facebook/docusaurus/pull/6812) fix(core): remove hash/query when filtering existing files for broken link check ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`\\n - [#6779](https://github.com/facebook/docusaurus/pull/6779) fix(mdx-loader): suppress image reading warning in Yarn PnP; log warning instead of error ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#6762](https://github.com/facebook/docusaurus/pull/6762) fix(create): update broken SVG paths in templates ([@anicholls](https://github.com/anicholls))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-common`\\n - [#6826](https://github.com/facebook/docusaurus/pull/6826) refactor(theme-common): unify missing context errors ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6771](https://github.com/facebook/docusaurus/pull/6771) refactor(theme-classic): replace color mode toggle with button; remove switchConfig ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#6769](https://github.com/facebook/docusaurus/pull/6769) refactor(theme-classic): use Material icon for language dropdown ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`\\n - [#6792](https://github.com/facebook/docusaurus/pull/6792) fix(mdx-loader): allow image paths to be URL encoded ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#6825](https://github.com/facebook/docusaurus/pull/6825) docs: Adds Netlify one click deploy to README ([@PatelN123](https://github.com/PatelN123))\\n - [#6818](https://github.com/facebook/docusaurus/pull/6818) docs: add deploy with vercel button to README ([@PatelN123](https://github.com/PatelN123))\\n - [#6817](https://github.com/facebook/docusaurus/pull/6817) docs: fix broken links ([@PatelN123](https://github.com/PatelN123))\\n - [#6811](https://github.com/facebook/docusaurus/pull/6811) docs: add homepage banner in support of Ukraine ([@dmitryvinn](https://github.com/dmitryvinn))\\n - [#6813](https://github.com/facebook/docusaurus/pull/6813) docs: mark dyte as opensource in showcase ([@vaibhavshn](https://github.com/vaibhavshn))\\n - [#6776](https://github.com/facebook/docusaurus/pull/6776) docs: make GitHub actions explanation aligned with the code ([@arifszn](https://github.com/arifszn))\\n - [#6772](https://github.com/facebook/docusaurus/pull/6772) docs: add basic documentation about client modules ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#6815](https://github.com/facebook/docusaurus/pull/6815) fix: consistently use `max-width: 996px` in media queries ([@dstotijn](https://github.com/dstotijn))\\n\\n## :house: Internal\\n\\n- `docusaurus-plugin-content-docs`\\n - [#6821](https://github.com/facebook/docusaurus/pull/6821) test(content-docs): refactor navigation test snapshot ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Other\\n - [#6768](https://github.com/facebook/docusaurus/pull/6768) test: add TypeScript template to E2E test matrix ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-utils`\\n - [#6773](https://github.com/facebook/docusaurus/pull/6773) refactor(utils): categorize functions into separate files ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`\\n - [#6761](https://github.com/facebook/docusaurus/pull/6761) chore: various internal fixes ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 8\\n\\n- Alex Nicholls ([@anicholls](https://github.com/anicholls))\\n- Ariful Alam ([@arifszn](https://github.com/arifszn))\\n- David Stotijn ([@dstotijn](https://github.com/dstotijn))\\n- Dmitry Vinnik ([@dmitryvinn](https://github.com/dmitryvinn))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Nayan Patel ([@PatelN123](https://github.com/PatelN123))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Vaibhav Shinde ([@vaibhavshn](https://github.com/vaibhavshn))"},{"id":"/2.0.0-beta.16","metadata":{"permalink":"/changelog/2.0.0-beta.16","source":"@site/changelog/source/2.0.0-beta.16.md","title":"2.0.0-beta.16","description":"New Feature","date":"2022-02-25T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Gaurish","alias":"apidev234","url":"https://github.com/apidev234","imageURL":"https://github.com/apidev234.png","key":"apidev234","page":null},{"name":"Artem Kovalov","alias":"artemkovalyov","url":"https://github.com/artemkovalyov","imageURL":"https://github.com/artemkovalyov.png","key":"artemkovalyov","page":null},{"name":"BigDataWriter","alias":"BigDataWriter","url":"https://github.com/BigDataWriter","imageURL":"https://github.com/BigDataWriter.png","key":"BigDataWriter","page":null},{"name":"Clement Demonchy","alias":"cdemonchy-pro","url":"https://github.com/cdemonchy-pro","imageURL":"https://github.com/cdemonchy-pro.png","key":"cdemonchy-pro","page":null},{"name":"CodeDoctor","alias":"CodeDoctorDE","url":"https://github.com/CodeDoctorDE","imageURL":"https://github.com/CodeDoctorDE.png","key":"CodeDoctorDE","page":null},{"name":"CookieJarApps","alias":"CookieJarApps","url":"https://github.com/CookieJarApps","imageURL":"https://github.com/CookieJarApps.png","key":"CookieJarApps","page":null},{"name":"Dmitry Vinnik","alias":"dmitryvinn","url":"https://github.com/dmitryvinn","imageURL":"https://github.com/dmitryvinn.png","key":"dmitryvinn","page":null},{"name":"Dmitry Vinnik | Meta","alias":"dmitryvinn-fb","url":"https://github.com/dmitryvinn-fb","imageURL":"https://github.com/dmitryvinn-fb.png","key":"dmitryvinn-fb","page":null},{"name":"Everardo J. Barojas M.","alias":"ebarojas","url":"https://github.com/ebarojas","imageURL":"https://github.com/ebarojas.png","key":"ebarojas","page":null},{"name":"Erick Zhao","alias":"erickzhao","url":"https://github.com/erickzhao","imageURL":"https://github.com/erickzhao.png","key":"erickzhao","page":null},{"name":"Felipe Santos","alias":"felipecrs","url":"https://github.com/felipecrs","imageURL":"https://github.com/felipecrs.png","key":"felipecrs","page":null},{"name":"Mikey O\'Toole","alias":"homotechsual","url":"https://github.com/homotechsual","imageURL":"https://github.com/homotechsual.png","key":"homotechsual","page":null},{"name":"Jody Heavener","alias":"jodyheavener","url":"https://github.com/jodyheavener","imageURL":"https://github.com/jodyheavener.png","key":"jodyheavener","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Daniel Kalevski","alias":"kalevski","url":"https://github.com/kalevski","imageURL":"https://github.com/kalevski.png","key":"kalevski","page":null},{"name":"Kishan Gajera","alias":"kgajera","url":"https://github.com/kgajera","imageURL":"https://github.com/kgajera.png","key":"kgajera","page":null},{"name":"Konstantin Tarkus","alias":"koistya","url":"https://github.com/koistya","imageURL":"https://github.com/koistya.png","key":"koistya","page":null},{"name":"Balthasar Hofer","alias":"lebalz","url":"https://github.com/lebalz","imageURL":"https://github.com/lebalz.png","key":"lebalz","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Miles Johnson","alias":"milesj","url":"https://github.com/milesj","imageURL":"https://github.com/milesj.png","key":"milesj","page":null},{"name":"Matheus Ricardo Brunelli","alias":"mrbrunelli","url":"https://github.com/mrbrunelli","imageURL":"https://github.com/mrbrunelli.png","key":"mrbrunelli","page":null},{"name":"Naseel Niyas","alias":"NaseelNiyas","url":"https://github.com/NaseelNiyas","imageURL":"https://github.com/NaseelNiyas.png","key":"NaseelNiyas","page":null},{"name":"nick-verida","alias":"nick-verida","url":"https://github.com/nick-verida","imageURL":"https://github.com/nick-verida.png","key":"nick-verida","page":null},{"name":"Nick Schonning","alias":"nschonni","url":"https://github.com/nschonni","imageURL":"https://github.com/nschonni.png","key":"nschonni","page":null},{"name":"Pranab Das","alias":"pranabdas","url":"https://github.com/pranabdas","imageURL":"https://github.com/pranabdas.png","key":"pranabdas","page":null},{"name":"Muhammad Redho Ayassa","alias":"redhoyasa","url":"https://github.com/redhoyasa","imageURL":"https://github.com/redhoyasa.png","key":"redhoyasa","page":null},{"name":"Yongmin Hong","alias":"revi","url":"https://github.com/revi","imageURL":"https://github.com/revi.png","key":"revi","page":null},{"name":"Ruben Arushanyan","alias":"Ruben-Arushanyan","url":"https://github.com/Ruben-Arushanyan","imageURL":"https://github.com/Ruben-Arushanyan.png","key":"Ruben-Arushanyan","page":null},{"name":"seyoon20087","alias":"seyoon20087","url":"https://github.com/seyoon20087","imageURL":"https://github.com/seyoon20087.png","key":"seyoon20087","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tamal Web","alias":"tamalweb","url":"https://github.com/tamalweb","imageURL":"https://github.com/tamalweb.png","key":"tamalweb","page":null},{"name":"TheCatLady","alias":"TheCatLady","url":"https://github.com/TheCatLady","imageURL":"https://github.com/TheCatLady.png","key":"TheCatLady","page":null},{"name":"Daniel Hanke","alias":"thedanielhanke","url":"https://github.com/thedanielhanke","imageURL":"https://github.com/thedanielhanke.png","key":"thedanielhanke","page":null},{"name":"toto6038","alias":"toto6038","url":"https://github.com/toto6038","imageURL":"https://github.com/toto6038.png","key":"toto6038","page":null},{"name":"Matthew Ailes","alias":"vidarc","url":"https://github.com/vidarc","imageURL":"https://github.com/vidarc.png","key":"vidarc","page":null},{"name":"\uC774\uC815\uD658","alias":"winterlood","url":"https://github.com/winterlood","imageURL":"https://github.com/winterlood.png","key":"winterlood","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-02-25T20:00","authors":["apidev234","artemkovalyov","BigDataWriter","cdemonchy-pro","CodeDoctorDE","CookieJarApps","dmitryvinn","dmitryvinn-fb","ebarojas","erickzhao","felipecrs","homotechsual","jodyheavener","johnnyreilly","Josh-Cena","kalevski","kgajera","koistya","lebalz","lex111","milesj","mrbrunelli","NaseelNiyas","nick-verida","nschonni","pranabdas","redhoyasa","revi","Ruben-Arushanyan","seyoon20087","slorber","tamalweb","TheCatLady","thedanielhanke","toto6038","vidarc","winterlood","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.17","permalink":"/changelog/2.0.0-beta.17"},"nextItem":{"title":"2.0.0-beta.15","permalink":"/changelog/2.0.0-beta.15"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-logger`, `docusaurus-module-type-aliases`, `docusaurus-plugin-debug`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus`\\n - [#6243](https://github.com/facebook/docusaurus/pull/6243) feat(core): brand new swizzle CLI experience ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#6750](https://github.com/facebook/docusaurus/pull/6750) feat(create): new --package-manager option; interactive package manager selection ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6610](https://github.com/facebook/docusaurus/pull/6610) feat(create): allow specifying a git clone strategy ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6723](https://github.com/facebook/docusaurus/pull/6723) feat: sync color mode between browser tabs ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-search-algolia`\\n - [#6692](https://github.com/facebook/docusaurus/pull/6692) feat(search-algolia): allow disabling search page and configuring path ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6517](https://github.com/facebook/docusaurus/pull/6517) feat(docs,theme-classic): docs breadcrumbs ([@jodyheavener](https://github.com/jodyheavener))\\n - [#6519](https://github.com/facebook/docusaurus/pull/6519) feat(content-docs): sidebar item type \\"html\\" for rendering pure markup ([@jodyheavener](https://github.com/jodyheavener))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#6593](https://github.com/facebook/docusaurus/pull/6593) feat(content-blog): infer blog post date from git history ([@felipecrs](https://github.com/felipecrs))\\n- `docusaurus-plugin-content-docs`\\n - [#6619](https://github.com/facebook/docusaurus/pull/6619) feat(content-docs): add custom props front matter ([@TheCatLady](https://github.com/TheCatLady))\\n - [#6452](https://github.com/facebook/docusaurus/pull/6452) feat(content-docs): allow explicitly disabling index page for generated category ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`\\n - [#6603](https://github.com/facebook/docusaurus/pull/6603) feat(content-blog): allow customizing blog archive component through option ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#6221](https://github.com/facebook/docusaurus/pull/6221) feat(content-blog): Allow pagination for BlogTagsPostsPage ([@redhoyasa](https://github.com/redhoyasa))\\n\\n## :boom: Breaking Change\\n\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`, `stylelint-copyright`\\n - [#6752](https://github.com/facebook/docusaurus/pull/6752) chore: upgrade docsearch-react to v3 stable, bump dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`\\n - [#6729](https://github.com/facebook/docusaurus/pull/6729) refactor: make MDX export a flat TOC list instead of tree ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus`\\n - [#6740](https://github.com/facebook/docusaurus/pull/6740) refactor: remove deprecated Webpack utils & validation escape hatch ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#6707](https://github.com/facebook/docusaurus/pull/6707) refactor(theme-classic): bias again search metadata toward Algolia DocSearch ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-common`, `docusaurus`\\n - [#6651](https://github.com/facebook/docusaurus/pull/6651) refactor: reduce exported members of docusaurus router ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-common`\\n - [#6758](https://github.com/facebook/docusaurus/pull/6758) fix(theme-common): isSamePath should be case-insensitive ([@slorber](https://github.com/slorber))\\n - [#6748](https://github.com/facebook/docusaurus/pull/6748) fix(theme-classic): temporarily disable toc heading autoscrolling ([@slorber](https://github.com/slorber))\\n - [#6696](https://github.com/facebook/docusaurus/pull/6696) fix(theme-common): do not run useLocationChange when hot reloading ([@lex111](https://github.com/lex111))\\n - [#6490](https://github.com/facebook/docusaurus/pull/6490) fix(theme-classic): do not switch color modes when printing ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6749](https://github.com/facebook/docusaurus/pull/6749) fix(theme-classic): fix breadcrumb home link bug with new useHomePageRoute() hook ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#6720](https://github.com/facebook/docusaurus/pull/6720) fix(content-docs): create assets for frontmatter images ([@lebalz](https://github.com/lebalz))\\n - [#6592](https://github.com/facebook/docusaurus/pull/6592) fix(content-docs): read last update from inner git repositories ([@felipecrs](https://github.com/felipecrs))\\n - [#6477](https://github.com/facebook/docusaurus/pull/6477) fix(content-docs): export versioning utils ([@milesj](https://github.com/milesj))\\n- `docusaurus-mdx-loader`\\n - [#6712](https://github.com/facebook/docusaurus/pull/6712) fix(mdx-loader): make headings containing links properly formatted in ToC ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#6701](https://github.com/facebook/docusaurus/pull/6701) fix(cli): disable directory listing in serve ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6607](https://github.com/facebook/docusaurus/pull/6607) fix(cli): log error itself on unhandled rejection ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6500](https://github.com/facebook/docusaurus/pull/6500) fix(cli): allow passing a list of file names to write-heading-ids ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6496](https://github.com/facebook/docusaurus/pull/6496) fix(core): configValidation should allow inline theme functions ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#6652](https://github.com/facebook/docusaurus/pull/6652) fix(theme-classic): minor BTT button fixes ([@lex111](https://github.com/lex111))\\n - [#6612](https://github.com/facebook/docusaurus/pull/6612) fix(theme-classic): make Prism additional languages properly server-side rendered ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6599](https://github.com/facebook/docusaurus/pull/6599) fix(theme-classic): add docSidebar as allowed item in dropdown ([@homotechsual](https://github.com/homotechsual))\\n - [#6531](https://github.com/facebook/docusaurus/pull/6531) fix(theme-classic): highlight active collapsible doc category properly ([@lex111](https://github.com/lex111))\\n - [#6515](https://github.com/facebook/docusaurus/pull/6515) fix(theme-classic): add key prop for SimpleLinks map ([@kgajera](https://github.com/kgajera))\\n - [#6508](https://github.com/facebook/docusaurus/pull/6508) fix(theme-classic): apply width/height for footer logos without href ([@kgajera](https://github.com/kgajera))\\n- `docusaurus-utils`\\n - [#6617](https://github.com/facebook/docusaurus/pull/6617) fix(utils): convert Markdown links in reference-style links with multiple spaces ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6489](https://github.com/facebook/docusaurus/pull/6489) fix(utils): do not resolve Markdown paths with @site prefix ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6478](https://github.com/facebook/docusaurus/pull/6478) fix(utils): Markdown linkification match local paths beginning with http ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#6495](https://github.com/facebook/docusaurus/pull/6495) fix(content-docs): render category with no subitems as a normal link ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6755](https://github.com/facebook/docusaurus/pull/6755) refactor: unify error handling behavior ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#6679](https://github.com/facebook/docusaurus/pull/6679) feat(create): better detection of package manager preference ([@lex111](https://github.com/lex111))\\n - [#6481](https://github.com/facebook/docusaurus/pull/6481) refactor(init): promote good practices; use site alias ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`\\n - [#6745](https://github.com/facebook/docusaurus/pull/6745) fix(content-docs): improve sidebar shorthand normalization error message ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6602](https://github.com/facebook/docusaurus/pull/6602) feat(content-docs): allow omitting enclosing array consistently for category shorthand ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6596](https://github.com/facebook/docusaurus/pull/6596) refactor(content-docs): clean up sidebars logic; validate generator returns ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6586](https://github.com/facebook/docusaurus/pull/6586) refactor(content-docs): read category metadata files before autogenerating ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus`\\n - [#6730](https://github.com/facebook/docusaurus/pull/6730) refactor: declare all props as interfaces ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-translations`\\n - [#6711](https://github.com/facebook/docusaurus/pull/6711) chore(theme-translations): complete Korean translations ([@revi](https://github.com/revi))\\n - [#6686](https://github.com/facebook/docusaurus/pull/6686) fix(theme-translations): improve Korean translations ([@winterlood](https://github.com/winterlood))\\n - [#6635](https://github.com/facebook/docusaurus/pull/6635) refactor(theme-translation): improve Traditional Chinese translation quality ([@toto6038](https://github.com/toto6038))\\n- `docusaurus-theme-classic`, `docusaurus-theme-translations`\\n - [#6674](https://github.com/facebook/docusaurus/pull/6674) fix(theme-classic): improve aria label of color mode toggle ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-theme-classic`\\n - [#6668](https://github.com/facebook/docusaurus/pull/6668) refactor: recommend using data-theme without html element selector ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#6622](https://github.com/facebook/docusaurus/pull/6622) refactor(theme-classic): clean up CSS of doc sidebar item ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#6644](https://github.com/facebook/docusaurus/pull/6644) fix(core): forward ref to Link\'s anchor element ([@koistya](https://github.com/koistya))\\n - [#6646](https://github.com/facebook/docusaurus/pull/6646) fix(cli): make docusaurus clear also remove .yarn/.cache folder ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6306](https://github.com/facebook/docusaurus/pull/6306) feat(core): use react-helmet-async ([@seyoon20087](https://github.com/seyoon20087))\\n- `docusaurus-utils-validation`\\n - [#6656](https://github.com/facebook/docusaurus/pull/6656) feat: allow numbers in plugin ID ([@cdemonchy-pro](https://github.com/cdemonchy-pro))\\n- `docusaurus-mdx-loader`, `docusaurus-utils`, `lqip-loader`\\n - [#6650](https://github.com/facebook/docusaurus/pull/6650) refactor(utils): replace hash with contenthash for file loader ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus-utils`\\n - [#6615](https://github.com/facebook/docusaurus/pull/6615) fix: remove more peer dependency warnings ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`\\n - [#6598](https://github.com/facebook/docusaurus/pull/6598) feat: make Markdown images lazy loaded ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6505](https://github.com/facebook/docusaurus/pull/6505) fix(theme-classic): make focused link outlined with JS disabled ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#6507](https://github.com/facebook/docusaurus/pull/6507) refactor: improve internal typing ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus-utils`\\n - [#6498](https://github.com/facebook/docusaurus/pull/6498) fix: updating peerDependency fields for yarn berry ([@vidarc](https://github.com/vidarc))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`\\n - [#6482](https://github.com/facebook/docusaurus/pull/6482) feat: mark some text labels as translatable ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#6727](https://github.com/facebook/docusaurus/pull/6727) docs: add Blog Matheus Brunelli site to showcase ([@mrbrunelli](https://github.com/mrbrunelli))\\n - [#6721](https://github.com/facebook/docusaurus/pull/6721) docs: add Butterfly Documentation to showcase ([@CodeDoctorDE](https://github.com/CodeDoctorDE))\\n - [#6710](https://github.com/facebook/docusaurus/pull/6710) docs(website): Add techharvesting to showcase ([@NaseelNiyas](https://github.com/NaseelNiyas))\\n - [#6708](https://github.com/facebook/docusaurus/pull/6708) docs: add doc for generated-index keyword/image metadata ([@slorber](https://github.com/slorber))\\n - [#6709](https://github.com/facebook/docusaurus/pull/6709) docs(website): fix video responsiveness ([@lex111](https://github.com/lex111))\\n - [#6687](https://github.com/facebook/docusaurus/pull/6687) docs: add deep dive video for Docusaurus ([@dmitryvinn](https://github.com/dmitryvinn))\\n - [#6704](https://github.com/facebook/docusaurus/pull/6704) docs(website): search doc typo searchParameters ([@slorber](https://github.com/slorber))\\n - [#6682](https://github.com/facebook/docusaurus/pull/6682) docs: add redux-cool site to showcase ([@Ruben-Arushanyan](https://github.com/Ruben-Arushanyan))\\n - [#6677](https://github.com/facebook/docusaurus/pull/6677) docs: add Rivalis to showcase ([@kalevski](https://github.com/kalevski))\\n - [#6676](https://github.com/facebook/docusaurus/pull/6676) docs: add SmartCookieWeb site to showcase ([@CookieJarApps](https://github.com/CookieJarApps))\\n - [#6675](https://github.com/facebook/docusaurus/pull/6675) docs: mention that all official themes are TypeScript-covered ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6673](https://github.com/facebook/docusaurus/pull/6673) docs: mention about blog date in front matter ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6672](https://github.com/facebook/docusaurus/pull/6672) refactor(website): extract homepage data from UI; feature text updates ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6670](https://github.com/facebook/docusaurus/pull/6670) docs: add CyberDrain Improved Partner Portal (CIPP) to showcase ([@homotechsual](https://github.com/homotechsual))\\n - [#6667](https://github.com/facebook/docusaurus/pull/6667) fix(website): make YT iframe responsive ([@lex111](https://github.com/lex111))\\n - [#6659](https://github.com/facebook/docusaurus/pull/6659) docs: add eli5 video to home page ([@dmitryvinn-fb](https://github.com/dmitryvinn-fb))\\n - [#6633](https://github.com/facebook/docusaurus/pull/6633) docs: improve wording of using Markdown file paths ([@BigDataWriter](https://github.com/BigDataWriter))\\n - [#6624](https://github.com/facebook/docusaurus/pull/6624) docs: add Resoto & Some Engineering Inc. to showcase ([@TheCatLady](https://github.com/TheCatLady))\\n - [#6611](https://github.com/facebook/docusaurus/pull/6611) docs: fix bad anchor link syntax ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6591](https://github.com/facebook/docusaurus/pull/6591) docs: improve GitHub Actions example jobs ([@ebarojas](https://github.com/ebarojas))\\n - [#6426](https://github.com/facebook/docusaurus/pull/6426) feat(website): add Tweets section ([@yangshun](https://github.com/yangshun))\\n - [#6532](https://github.com/facebook/docusaurus/pull/6532) docs: add SAP Cloud SDK to showcase ([@artemkovalyov](https://github.com/artemkovalyov))\\n - [#6513](https://github.com/facebook/docusaurus/pull/6513) docs: clean up CONTRIBUTING ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6501](https://github.com/facebook/docusaurus/pull/6501) docs: add Cloudflare pages deployment guide ([@apidev234](https://github.com/apidev234))\\n - [#6499](https://github.com/facebook/docusaurus/pull/6499) docs: mention how env vars can be read ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6492](https://github.com/facebook/docusaurus/pull/6492) docs: mention where to find the sitemap ([@tamalweb](https://github.com/tamalweb))\\n - [#6491](https://github.com/facebook/docusaurus/pull/6491) docs: add developers.verida to showcase ([@nick-verida](https://github.com/nick-verida))\\n - [#6414](https://github.com/facebook/docusaurus/pull/6414) feat(website): new plugin to load CHANGELOG and render as blog ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6404](https://github.com/facebook/docusaurus/pull/6404) docs: elaborate on Markdown asset linking; document pathname:// protocol ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6484](https://github.com/facebook/docusaurus/pull/6484) docs: remove mention that CDN resources are cached cross-domain ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6429](https://github.com/facebook/docusaurus/pull/6429) refactor: self-host KaTeX assets ([@pranabdas](https://github.com/pranabdas))\\n - [#6483](https://github.com/facebook/docusaurus/pull/6483) docs: mark a lot of website texts as translatable ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-preset-classic`\\n - [#6627](https://github.com/facebook/docusaurus/pull/6627) docs: fix presets documentation link ([@thedanielhanke](https://github.com/thedanielhanke))\\n\\n## :house: Internal\\n\\n- `docusaurus-theme-classic`\\n - [#6759](https://github.com/facebook/docusaurus/pull/6759) refactor(theme-classic): merge CSS files for Heading ([@slorber](https://github.com/slorber))\\n - [#6584](https://github.com/facebook/docusaurus/pull/6584) misc: enable jsx-key eslint rule ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`\\n - [#6756](https://github.com/facebook/docusaurus/pull/6756) test: sort migration test FS mock calls ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6609](https://github.com/facebook/docusaurus/pull/6609) refactor(migrate): change internal methods\' parameter style ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6476](https://github.com/facebook/docusaurus/pull/6476) chore: fix Stylelint globs for editor support ([@nschonni](https://github.com/nschonni))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#6744](https://github.com/facebook/docusaurus/pull/6744) fix(content-docs): properly display collocated social card image ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-types`, `docusaurus`\\n - [#6742](https://github.com/facebook/docusaurus/pull/6742) refactor: improve client modules types ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`\\n - [#6741](https://github.com/facebook/docusaurus/pull/6741) chore(module-type-aliases): add react as peer dependency ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6658](https://github.com/facebook/docusaurus/pull/6658) refactor(module-aliases): remove react-helmet dependency ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Other\\n - [#6726](https://github.com/facebook/docusaurus/pull/6726) misc: improve bug report template ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6512](https://github.com/facebook/docusaurus/pull/6512) misc: configure linguist behavior to show better language stats ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6487](https://github.com/facebook/docusaurus/pull/6487) chore: fix codesandbox example link + mention npm publish recovery ([@slorber](https://github.com/slorber))\\n - [#6486](https://github.com/facebook/docusaurus/pull/6486) chore: update examples for beta.15 ([@slorber](https://github.com/slorber))\\n - [#6485](https://github.com/facebook/docusaurus/pull/6485) fix(website): bad translate tags without default translation ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6716](https://github.com/facebook/docusaurus/pull/6716) refactor: ensure lodash is default-imported ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-logger`, `docusaurus-migrate`, `docusaurus`\\n - [#6661](https://github.com/facebook/docusaurus/pull/6661) refactor: convert CLI entry points to ESM; migrate create-docusaurus to ESM ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-common`, `docusaurus`\\n - [#6651](https://github.com/facebook/docusaurus/pull/6651) refactor: reduce exported members of docusaurus router ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#6629](https://github.com/facebook/docusaurus/pull/6629) refactor: move module declarations for non-route components to theme-classic ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-pwa`, `docusaurus-theme-classic`\\n - [#6614](https://github.com/facebook/docusaurus/pull/6614) refactor: remove Babel plugins that are included in preset-env ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-translations`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#6605](https://github.com/facebook/docusaurus/pull/6605) chore: fix ESLint warnings, restrict export all syntax ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`\\n - [#6583](https://github.com/facebook/docusaurus/pull/6583) refactor(live-codeblock): migrate theme to TS ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6524](https://github.com/facebook/docusaurus/pull/6524) refactor: enforce named capture groups; clean up regexes ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#6521](https://github.com/facebook/docusaurus/pull/6521) refactor: mark all functions that import external modules as async ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `stylelint-copyright`\\n - [#6514](https://github.com/facebook/docusaurus/pull/6514) chore: clean up ESLint config, enable a few rules ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-types`, `docusaurus`\\n - [#6511](https://github.com/facebook/docusaurus/pull/6511) refactor(core): convert theme-fallback to TS ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-utils`\\n - [#6506](https://github.com/facebook/docusaurus/pull/6506) test: add test for readOutputHTMLFile ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-theme-common`\\n - [#6502](https://github.com/facebook/docusaurus/pull/6502) refactor: fix all eslint warnings ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus`\\n - [#6474](https://github.com/facebook/docusaurus/pull/6474) test: rename \'fixtures\' to \'**fixtures**\' ([@nschonni](https://github.com/nschonni))\\n\\n## :running: Performance\\n\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`\\n - [#6725](https://github.com/facebook/docusaurus/pull/6725) refactor: convert all fs methods to async ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 38\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Artem Kovalov ([@artemkovalyov](https://github.com/artemkovalyov))\\n- Balthasar Hofer ([@lebalz](https://github.com/lebalz))\\n- Clement Demonchy ([@cdemonchy-pro](https://github.com/cdemonchy-pro))\\n- CodeDoctor ([@CodeDoctorDE](https://github.com/CodeDoctorDE))\\n- Daniel Hanke ([@thedanielhanke](https://github.com/thedanielhanke))\\n- Daniel Kalevski ([@kalevski](https://github.com/kalevski))\\n- Dmitry Vinnik ([@dmitryvinn](https://github.com/dmitryvinn))\\n- Dmitry Vinnik | Meta ([@dmitryvinn-fb](https://github.com/dmitryvinn-fb))\\n- Erick Zhao ([@erickzhao](https://github.com/erickzhao))\\n- Everardo J. Barojas M. ([@ebarojas](https://github.com/ebarojas))\\n- Felipe Santos ([@felipecrs](https://github.com/felipecrs))\\n- Gaurish ([@apidev234](https://github.com/apidev234))\\n- Hong Yongmin ([@revi](https://github.com/revi))\\n- Jody Heavener ([@jodyheavener](https://github.com/jodyheavener))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Kishan Gajera ([@kgajera](https://github.com/kgajera))\\n- Konstantin Tarkus ([@koistya](https://github.com/koistya))\\n- Matheus Ricardo Brunelli ([@mrbrunelli](https://github.com/mrbrunelli))\\n- Matthew Ailes ([@vidarc](https://github.com/vidarc))\\n- Mikey O\'Toole ([@homotechsual](https://github.com/homotechsual))\\n- Miles Johnson ([@milesj](https://github.com/milesj))\\n- Muhammad Redho Ayassa ([@redhoyasa](https://github.com/redhoyasa))\\n- Naseel Niyas ([@NaseelNiyas](https://github.com/NaseelNiyas))\\n- Nick Schonning ([@nschonni](https://github.com/nschonni))\\n- Pranab Das ([@pranabdas](https://github.com/pranabdas))\\n- Ruben Arushanyan ([@Ruben-Arushanyan](https://github.com/Ruben-Arushanyan))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tamal Web ([@tamalweb](https://github.com/tamalweb))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- [@BigDataWriter](https://github.com/BigDataWriter)\\n- [@CookieJarApps](https://github.com/CookieJarApps)\\n- [@TheCatLady](https://github.com/TheCatLady)\\n- [@nick-verida](https://github.com/nick-verida)\\n- [@seyoon20087](https://github.com/seyoon20087)\\n- [@toto6038](https://github.com/toto6038)\\n- \uC774\uC815\uD658 ([@winterlood](https://github.com/winterlood))"},{"id":"/2.0.0-beta.15","metadata":{"permalink":"/changelog/2.0.0-beta.15","source":"@site/changelog/source/2.0.0-beta.15.md","title":"2.0.0-beta.15","description":"New Feature","date":"2022-01-26T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"\u4E45\u67D3 | JiuRan","alias":"1084350607","url":"https://github.com/1084350607","imageURL":"https://github.com/1084350607.png","key":"1084350607","page":null},{"name":"Abdelrahman Ahmed","alias":"abahmed","url":"https://github.com/abahmed","imageURL":"https://github.com/abahmed.png","key":"abahmed","page":null},{"name":"AJ Rice","alias":"ajrice6713","url":"https://github.com/ajrice6713","imageURL":"https://github.com/ajrice6713.png","key":"ajrice6713","page":null},{"name":"Alexandru Grigoras","alias":"alexgrigoras","url":"https://github.com/alexgrigoras","imageURL":"https://github.com/alexgrigoras.png","key":"alexgrigoras","page":null},{"name":"Filipe Guerra","alias":"alias-mac","url":"https://github.com/alias-mac","imageURL":"https://github.com/alias-mac.png","key":"alias-mac","page":null},{"name":"Amir M. Mohamadi","alias":"amir2mi","url":"https://github.com/amir2mi","imageURL":"https://github.com/amir2mi.png","key":"amir2mi","page":null},{"name":"Anthony McCaigue","alias":"antmcc49","url":"https://github.com/antmcc49","imageURL":"https://github.com/antmcc49.png","key":"antmcc49","page":null},{"name":"Armano","alias":"armano2","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png","key":"armano2","page":null},{"name":"Brendan Nee","alias":"brendannee","url":"https://github.com/brendannee","imageURL":"https://github.com/brendannee.png","key":"brendannee","page":null},{"name":"Devtato","alias":"cerkiewny","url":"https://github.com/cerkiewny","imageURL":"https://github.com/cerkiewny.png","key":"cerkiewny","page":null},{"name":"Davide Bianchi","alias":"davidebianchi","url":"https://github.com/davidebianchi","imageURL":"https://github.com/davidebianchi.png","key":"davidebianchi","page":null},{"name":"Edouard Bonlieu","alias":"edouardb","url":"https://github.com/edouardb","imageURL":"https://github.com/edouardb.png","key":"edouardb","page":null},{"name":"Feodor Fitsner","alias":"FeodorFitsner","url":"https://github.com/FeodorFitsner","imageURL":"https://github.com/FeodorFitsner.png","key":"FeodorFitsner","page":null},{"name":"Gabriel Csapo","alias":"gabrielcsapo","url":"https://github.com/gabrielcsapo","imageURL":"https://github.com/gabrielcsapo.png","key":"gabrielcsapo","page":null},{"name":"Chen","alias":"HiChen404","url":"https://github.com/HiChen404","imageURL":"https://github.com/HiChen404.png","key":"HiChen404","page":null},{"name":"Mikey O\'Toole","alias":"homotechsual","url":"https://github.com/homotechsual","imageURL":"https://github.com/homotechsual.png","key":"homotechsual","page":null},{"name":"Jeffrey Aven","alias":"jeffreyaven","url":"https://github.com/jeffreyaven","imageURL":"https://github.com/jeffreyaven.png","key":"jeffreyaven","page":null},{"name":"Jody Heavener","alias":"jodyheavener","url":"https://github.com/jodyheavener","imageURL":"https://github.com/jodyheavener.png","key":"jodyheavener","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Joseph","alias":"josephriosIO","url":"https://github.com/josephriosIO","imageURL":"https://github.com/josephriosIO.png","key":"josephriosIO","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Josh Goldberg","alias":"JoshuaKGoldberg","url":"https://github.com/JoshuaKGoldberg","imageURL":"https://github.com/JoshuaKGoldberg.png","key":"JoshuaKGoldberg","page":null},{"name":"Jake Witz","alias":"jwitz","url":"https://github.com/jwitz","imageURL":"https://github.com/jwitz.png","key":"jwitz","page":null},{"name":"Kaustubh Kulkarni","alias":"kaustubhk24","url":"https://github.com/kaustubhk24","imageURL":"https://github.com/kaustubhk24.png","key":"kaustubhk24","page":null},{"name":"kuizuo","alias":"kuizuo","url":"https://github.com/kuizuo","imageURL":"https://github.com/kuizuo.png","key":"kuizuo","page":null},{"name":"Minh Pham","alias":"lmpham1","url":"https://github.com/lmpham1","imageURL":"https://github.com/lmpham1.png","key":"lmpham1","page":null},{"name":"Lars Mikkelsen","alias":"ltm","url":"https://github.com/ltm","imageURL":"https://github.com/ltm.png","key":"ltm","page":null},{"name":"mcallisto","alias":"mcallisto","url":"https://github.com/mcallisto","imageURL":"https://github.com/mcallisto.png","key":"mcallisto","page":null},{"name":"Sanjay Soundarajan","alias":"megasanjay","url":"https://github.com/megasanjay","imageURL":"https://github.com/megasanjay.png","key":"megasanjay","page":null},{"name":"Morooka Kotaro","alias":"MorookaKotaro","url":"https://github.com/MorookaKotaro","imageURL":"https://github.com/MorookaKotaro.png","key":"MorookaKotaro","page":null},{"name":"Yaroslav Serhieiev","alias":"noomorph","url":"https://github.com/noomorph","imageURL":"https://github.com/noomorph.png","key":"noomorph","page":null},{"name":"Nick Schonning","alias":"nschonni","url":"https://github.com/nschonni","imageURL":"https://github.com/nschonni.png","key":"nschonni","page":null},{"name":"\xd6mer Faruk APLAK","alias":"omeraplak","url":"https://github.com/omeraplak","imageURL":"https://github.com/omeraplak.png","key":"omeraplak","page":null},{"name":"Nayan Patel","alias":"PatelN123","url":"https://github.com/PatelN123","imageURL":"https://github.com/PatelN123.png","key":"PatelN123","page":null},{"name":"Pranab Das","alias":"pranabdas","url":"https://github.com/pranabdas","imageURL":"https://github.com/pranabdas.png","key":"pranabdas","page":null},{"name":"Reece Dunham","alias":"RDIL","url":"https://github.com/RDIL","imageURL":"https://github.com/RDIL.png","key":"RDIL","page":null},{"name":"Rishi Raj Jain","alias":"rishi-raj-jain","url":"https://github.com/rishi-raj-jain","imageURL":"https://github.com/rishi-raj-jain.png","key":"rishi-raj-jain","page":null},{"name":"roydukkey","alias":"roydukkey","url":"https://github.com/roydukkey","imageURL":"https://github.com/roydukkey.png","key":"roydukkey","page":null},{"name":"ruanqizhen","alias":"ruanqizhen","url":"https://github.com/ruanqizhen","imageURL":"https://github.com/ruanqizhen.png","key":"ruanqizhen","page":null},{"name":"sgenoud","alias":"sgenoud","url":"https://github.com/sgenoud","imageURL":"https://github.com/sgenoud.png","key":"sgenoud","page":null},{"name":"Shun Wakatsuki","alias":"shwaka","url":"https://github.com/shwaka","imageURL":"https://github.com/shwaka.png","key":"shwaka","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tapan Chudasama","alias":"tapanchudasama","url":"https://github.com/tapanchudasama","imageURL":"https://github.com/tapanchudasama.png","key":"tapanchudasama","page":null},{"name":"Vaibhav Shinde","alias":"vaibhavshn","url":"https://github.com/vaibhavshn","imageURL":"https://github.com/vaibhavshn.png","key":"vaibhavshn","page":null},{"name":"Vandr\xe9 Leal","alias":"vandreleal","url":"https://github.com/vandreleal","imageURL":"https://github.com/vandreleal.png","key":"vandreleal","page":null},{"name":"wood3n","alias":"wood3n","url":"https://github.com/wood3n","imageURL":"https://github.com/wood3n.png","key":"wood3n","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-01-26T20:00","authors":["1084350607","abahmed","ajrice6713","alexgrigoras","alias-mac","amir2mi","antmcc49","armano2","brendannee","cerkiewny","davidebianchi","edouardb","FeodorFitsner","gabrielcsapo","HiChen404","homotechsual","jeffreyaven","jodyheavener","johnnyreilly","josephriosIO","Josh-Cena","JoshuaKGoldberg","jwitz","kaustubhk24","kuizuo","lmpham1","ltm","mcallisto","megasanjay","MorookaKotaro","noomorph","nschonni","omeraplak","PatelN123","pranabdas","RDIL","rishi-raj-jain","roydukkey","ruanqizhen","sgenoud","shwaka","slorber","tapanchudasama","vaibhavshn","vandreleal","wood3n"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.16","permalink":"/changelog/2.0.0-beta.16"},"nextItem":{"title":"2.0.0-beta.14","permalink":"/changelog/2.0.0-beta.14"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-docs`\\n - [#6451](https://github.com/facebook/docusaurus/pull/6451) feat(content-docs): expose isCategoryIndex matcher to customize conventions ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5782](https://github.com/facebook/docusaurus/pull/5782) feat(content-docs): displayed_sidebar front matter ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6466](https://github.com/facebook/docusaurus/pull/6466) feat(theme-classic): add stable class for DocSidebarContainer ([@homotechsual](https://github.com/homotechsual))\\n - [#3811](https://github.com/facebook/docusaurus/pull/3811) feat(theme-classic): auto-collapse sibling categories in doc sidebar ([@josephriosIO](https://github.com/josephriosIO))\\n - [#6216](https://github.com/facebook/docusaurus/pull/6216) feat(theme-classic): usable CodeBlock outside markdown ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#6416](https://github.com/facebook/docusaurus/pull/6416) feat(content-blog): allow authors list to contain images only ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`\\n - [#6415](https://github.com/facebook/docusaurus/pull/6415) feat(content-blog): allow disabling generating archive ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6245](https://github.com/facebook/docusaurus/pull/6245) feat(content-blog): parse date from middle of file path ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6388](https://github.com/facebook/docusaurus/pull/6388) feat(content-blog): include tags in feed ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#6371](https://github.com/facebook/docusaurus/pull/6371) feat(core, theme-classic): allow overriding htmlLang ([@noomorph](https://github.com/noomorph))\\n- `docusaurus-mdx-loader`\\n - [#6323](https://github.com/facebook/docusaurus/pull/6323) feat(mdx-loader): preserve hash in image src; support GH themed images ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#6139](https://github.com/facebook/docusaurus/pull/6139) feat(theme-classic): new navbar item linking to a sidebar ([@lmpham1](https://github.com/lmpham1))\\n - [#6239](https://github.com/facebook/docusaurus/pull/6239) feat(content-docs): allow SEO metadata for category index pages ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-sitemap`\\n - [#6248](https://github.com/facebook/docusaurus/pull/6248) feat(sitemap): remove trailingSlash option; respect noIndex config ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-ideal-image`, `docusaurus-theme-translations`\\n - [#6173](https://github.com/facebook/docusaurus/pull/6173) feat(ideal-image): allow translating status messages ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-ideal-image`\\n - [#6155](https://github.com/facebook/docusaurus/pull/6155) feat(ideal-image): new option disableInDev ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-translations`\\n - [#6169](https://github.com/facebook/docusaurus/pull/6169) feat(theme-translations): add Italian translations ([@mcallisto](https://github.com/mcallisto))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-types`, `docusaurus`\\n - [#6166](https://github.com/facebook/docusaurus/pull/6166) feat: async plugin creator functions ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#6165](https://github.com/facebook/docusaurus/pull/6165) feat(core): async docusaurus.config.js creator function ([@slorber](https://github.com/slorber))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-theme-search-algolia`\\n - [#6407](https://github.com/facebook/docusaurus/pull/6407) feat(search): enable contextual search by default ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`\\n - [#6289](https://github.com/facebook/docusaurus/pull/6289) refactor: move @theme/hooks to @docusaurus/theme-common ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#6283](https://github.com/facebook/docusaurus/pull/6283) refactor(theme-classic): apply import/no-named-export eslint rule ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-sitemap`\\n - [#6248](https://github.com/facebook/docusaurus/pull/6248) feat(sitemap): remove trailingSlash option; respect noIndex config ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus-utils`, `docusaurus`\\n - [#6454](https://github.com/facebook/docusaurus/pull/6454) fix(content-blog): generate feed by reading build output ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#6468](https://github.com/facebook/docusaurus/pull/6468) fix(init): cd to correct path when installing ([@gabrielcsapo](https://github.com/gabrielcsapo))\\n- `docusaurus-mdx-loader`\\n - [#4827](https://github.com/facebook/docusaurus/pull/4827) fix: allow links to JSON in .md files to be transformed as asset links ([@antmcc49](https://github.com/antmcc49))\\n- `docusaurus-plugin-content-docs`\\n - [#6435](https://github.com/facebook/docusaurus/pull/6435) fix(content-docs): make getActivePlugin match plugin paths more exactly ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6310](https://github.com/facebook/docusaurus/pull/6310) fix: highlight appropriate navItem when browsing generated category index ([@tapanchudasama](https://github.com/tapanchudasama))\\n - [#6202](https://github.com/facebook/docusaurus/pull/6202) fix(content-docs): quotify path when retrieving git history ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#6424](https://github.com/facebook/docusaurus/pull/6424) fix(core): fix css url(\\"image.png\\"), use css-loader v6 with esModules: false ([@slorber](https://github.com/slorber))\\n - [#6378](https://github.com/facebook/docusaurus/pull/6378) fix(core): do not coerce webpack warning to string ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6197](https://github.com/facebook/docusaurus/pull/6197) fix(cli): quotify temp path in deploy command ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6168](https://github.com/facebook/docusaurus/pull/6168) fix(core): update webpack-dev-server + fix deprecation warning ([@slorber](https://github.com/slorber))\\n- `docusaurus-logger`, `docusaurus-utils`\\n - [#6384](https://github.com/facebook/docusaurus/pull/6384) fix(logger): properly stringify objects for logging ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus`\\n - [#6338](https://github.com/facebook/docusaurus/pull/6338) fix(core): error boundary should allow no children ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#6314](https://github.com/facebook/docusaurus/pull/6314) fix(theme-classic): fix mobile version dropdown label with only one version ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6288](https://github.com/facebook/docusaurus/pull/6288) fix(theme-classic): add missing role=region to SkipToContent ([@JoshuaKGoldberg](https://github.com/JoshuaKGoldberg))\\n - [#6213](https://github.com/facebook/docusaurus/pull/6213) refactor(theme-classic): extract common PaginatorNavLink component ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6177](https://github.com/facebook/docusaurus/pull/6177) fix(theme-classic): make React elements in pre render correctly ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#6300](https://github.com/facebook/docusaurus/pull/6300) refactor: move exported type definitions to declaration file ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`\\n - [#6276](https://github.com/facebook/docusaurus/pull/6276) fix(migrate): migration CLI should correctly migrate gtag options ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`\\n - [#6244](https://github.com/facebook/docusaurus/pull/6244) fix(content-blog): always convert front matter date as UTC ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-utils`, `docusaurus`\\n - [#6190](https://github.com/facebook/docusaurus/pull/6190) fix(utils): properly escape Windows paths ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-module-type-aliases`\\n - [#6469](https://github.com/facebook/docusaurus/pull/6469) fix(module-type-aliases): fix type def for translate params ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-search-algolia`\\n - [#6407](https://github.com/facebook/docusaurus/pull/6407) feat(search): enable contextual search by default ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`\\n - [#6443](https://github.com/facebook/docusaurus/pull/6443) refactor(mdx-loader): use vfile.path to access Markdown file path ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#6427](https://github.com/facebook/docusaurus/pull/6427) feat(theme-classic): add aria-current to sidebar category link ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6391](https://github.com/facebook/docusaurus/pull/6391) refactor(theme-classic): add comments to Prism setup; minor refactor ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6240](https://github.com/facebook/docusaurus/pull/6240) refactor(theme-classic): use front matter from metadata for BlogPostPage ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#6419](https://github.com/facebook/docusaurus/pull/6419) feat(core): warn users about hand-modifying generated files ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6405](https://github.com/facebook/docusaurus/pull/6405) feat(core): check imported API name when extracting translations ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6291](https://github.com/facebook/docusaurus/pull/6291) feat(core): improve error message for BrowserOnly; better docs ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#5822](https://github.com/facebook/docusaurus/pull/5822) feat: update website & init template palette to pass WCAG test; include contrast check in ColorGenerator ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6368](https://github.com/facebook/docusaurus/pull/6368) fix(create-docusaurus): add useBaseUrl for image URLs ([@alias-mac](https://github.com/alias-mac))\\n- `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`\\n - [#6400](https://github.com/facebook/docusaurus/pull/6400) feat(content-pages): front matter validation, include front matter in metadata ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-theme-classic`\\n - [#6339](https://github.com/facebook/docusaurus/pull/6339) feat(mdx-loader): read image dimensions when processing Markdown ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`\\n - [#6388](https://github.com/facebook/docusaurus/pull/6388) feat(content-blog): include tags in feed ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6189](https://github.com/facebook/docusaurus/pull/6189) feat(content-blog): include front matter in loaded content metadata ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-common`\\n - [#6317](https://github.com/facebook/docusaurus/pull/6317) feat(theme-classic): autoscroll TOC with active link ([@cerkiewny](https://github.com/cerkiewny))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#6303](https://github.com/facebook/docusaurus/pull/6303) test(utils, mdx-loader, core): improve coverage ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-preset-classic`\\n - [#6284](https://github.com/facebook/docusaurus/pull/6284) fix(preset-classic): throw if preset finds GA options in theme config ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus`\\n - [#6186](https://github.com/facebook/docusaurus/pull/6186) refactor: print trailing new line when outputting JSON ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#6296](https://github.com/facebook/docusaurus/pull/6296) docs: add advanced guides ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6459](https://github.com/facebook/docusaurus/pull/6459) docs: add replicad to showcase ([@sgenoud](https://github.com/sgenoud))\\n - [#6334](https://github.com/facebook/docusaurus/pull/6334) docs: 2021 recap blog post ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6458](https://github.com/facebook/docusaurus/pull/6458) docs: add Kuizuo\'s Personal Website to showcase ([@kuizuo](https://github.com/kuizuo))\\n - [#6431](https://github.com/facebook/docusaurus/pull/6431) docs: add Koyeb as a deployment option ([@edouardb](https://github.com/edouardb))\\n - [#6455](https://github.com/facebook/docusaurus/pull/6455) docs: add Sass Fairy to showcase ([@roydukkey](https://github.com/roydukkey))\\n - [#6453](https://github.com/facebook/docusaurus/pull/6453) docs: document embedding generated index in doc page ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6450](https://github.com/facebook/docusaurus/pull/6450) docs: split sidebar documentation into sections ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6449](https://github.com/facebook/docusaurus/pull/6449) docs: multiple doc improvements ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6448](https://github.com/facebook/docusaurus/pull/6448) fix(website): update colors correctly when palette is only customized in one color mode ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6385](https://github.com/facebook/docusaurus/pull/6385) chore: add height/width for front page images ([@nschonni](https://github.com/nschonni))\\n - [#6445](https://github.com/facebook/docusaurus/pull/6445) docs: update showcase data of InfraQL ([@jeffreyaven](https://github.com/jeffreyaven))\\n - [#6433](https://github.com/facebook/docusaurus/pull/6433) docs: add kube-green to showcase ([@davidebianchi](https://github.com/davidebianchi))\\n - [#6428](https://github.com/facebook/docusaurus/pull/6428) docs: elaborate on i18n tutorial ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6422](https://github.com/facebook/docusaurus/pull/6422) docs: add 404Lab wiki to showcase ([@HiChen404](https://github.com/HiChen404))\\n - [#6420](https://github.com/facebook/docusaurus/pull/6420) fix(website): restore some site CSS in light mode ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6410](https://github.com/facebook/docusaurus/pull/6410) docs: add SODA for SPARC to showcase ([@megasanjay](https://github.com/megasanjay))\\n - [#6417](https://github.com/facebook/docusaurus/pull/6417) docs: fix accessibility of search modal ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6406](https://github.com/facebook/docusaurus/pull/6406) docs(i18n): add docs for htmlLang config ([@noomorph](https://github.com/noomorph))\\n - [#6393](https://github.com/facebook/docusaurus/pull/6393) docs: update Algolia docs for new DocSearch infra ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6383](https://github.com/facebook/docusaurus/pull/6383) docs: elaborate on different CSS class names ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6348](https://github.com/facebook/docusaurus/pull/6348) docs: add KaustubhK24\'s site to showcase ([@kaustubhk24](https://github.com/kaustubhk24))\\n - [#6333](https://github.com/facebook/docusaurus/pull/6333) feat(website): search in showcase ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6344](https://github.com/facebook/docusaurus/pull/6344) fix(website): make ColorGenerator functional ([@shwaka](https://github.com/shwaka))\\n - [#6340](https://github.com/facebook/docusaurus/pull/6340) docs: minor fix in the sample config for ESM ([@pranabdas](https://github.com/pranabdas))\\n - [#6336](https://github.com/facebook/docusaurus/pull/6336) docs: make upgrade guide always show the latest version ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6320](https://github.com/facebook/docusaurus/pull/6320) chore: upgrade rehype-katex with ESM support, update docs ([@pranabdas](https://github.com/pranabdas))\\n - [#6335](https://github.com/facebook/docusaurus/pull/6335) docs: add Pglet website to showcase ([@FeodorFitsner](https://github.com/FeodorFitsner))\\n - [#6327](https://github.com/facebook/docusaurus/pull/6327) docs: remove typo bracket ([@MorookaKotaro](https://github.com/MorookaKotaro))\\n - [#6316](https://github.com/facebook/docusaurus/pull/6316) docs: add bandwidth.com to showcase ([@ajrice6713](https://github.com/ajrice6713))\\n - [#6313](https://github.com/facebook/docusaurus/pull/6313) docs: add Refine site to showcase ([@omeraplak](https://github.com/omeraplak))\\n - [#6318](https://github.com/facebook/docusaurus/pull/6318) fix(website): various anchor link fixes ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6308](https://github.com/facebook/docusaurus/pull/6308) fix(website): wrap details in mdx-code-block ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6307](https://github.com/facebook/docusaurus/pull/6307) docs: document MD and JSX interoperability issues ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6299](https://github.com/facebook/docusaurus/pull/6299) docs: add icodex to showcase ([@wood3n](https://github.com/wood3n))\\n - [#6297](https://github.com/facebook/docusaurus/pull/6297) docs: mention setup in monorepo ([@PatelN123](https://github.com/PatelN123))\\n - [#6293](https://github.com/facebook/docusaurus/pull/6293) docs: remove GraphQL mesh from showcase ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6231](https://github.com/facebook/docusaurus/pull/6231) docs: update showcase images; remove GraphQL Code Generator site ([@PatelN123](https://github.com/PatelN123))\\n - [#6285](https://github.com/facebook/docusaurus/pull/6285) refactor(website): further optimize showcase images ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6281](https://github.com/facebook/docusaurus/pull/6281) docs: Add kwatch to showcase ([@abahmed](https://github.com/abahmed))\\n - [#6280](https://github.com/facebook/docusaurus/pull/6280) docs: elaborate on doc versioning ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6043](https://github.com/facebook/docusaurus/pull/6043) fix(website): resize showcase images, tighten CI check ([@armano2](https://github.com/armano2))\\n - [#6274](https://github.com/facebook/docusaurus/pull/6274) docs: add dyte docs to showcase ([@vaibhavshn](https://github.com/vaibhavshn))\\n - [#6278](https://github.com/facebook/docusaurus/pull/6278) docs: add Khyron Realm to showcase ([@alexgrigoras](https://github.com/alexgrigoras))\\n - [#6271](https://github.com/facebook/docusaurus/pull/6271) docs: add FlatifyCSS to showcase ([@amir2mi](https://github.com/amir2mi))\\n - [#6275](https://github.com/facebook/docusaurus/pull/6275) fix(website): fix config-tabs breaking after translation ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6269](https://github.com/facebook/docusaurus/pull/6269) docs: add Ionic to showcase ([@ltm](https://github.com/ltm))\\n - [#6272](https://github.com/facebook/docusaurus/pull/6272) docs: make tsconfig work OOTB in typescript guide ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6265](https://github.com/facebook/docusaurus/pull/6265) docs: add Eric JiuRan\'s blog to showcase ([@1084350607](https://github.com/1084350607))\\n - [#6242](https://github.com/facebook/docusaurus/pull/6242) docs(showcase): update oxidizer website url ([@vandreleal](https://github.com/vandreleal))\\n - [#6226](https://github.com/facebook/docusaurus/pull/6226) docs: update showcase data for digital support notes ([@PatelN123](https://github.com/PatelN123))\\n - [#6224](https://github.com/facebook/docusaurus/pull/6224) docs: add TalentBrick to showcase ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6223](https://github.com/facebook/docusaurus/pull/6223) docs: normalize CodeBlock highlighting ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6214](https://github.com/facebook/docusaurus/pull/6214) feat(website): improve prism themes ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6215](https://github.com/facebook/docusaurus/pull/6215) docs: use BrowserWindow for Markdown demos ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6193](https://github.com/facebook/docusaurus/pull/6193) docs: normalize plugin API documentation ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6209](https://github.com/facebook/docusaurus/pull/6209) docs: elaborate on static asset resolution ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6207](https://github.com/facebook/docusaurus/pull/6207) docs: add default value for BrowserWindow URL field ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6206](https://github.com/facebook/docusaurus/pull/6206) docs: fix highlighting of YAML front matter ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6191](https://github.com/facebook/docusaurus/pull/6191) docs: fix react live scope button color in dark mode ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6188](https://github.com/facebook/docusaurus/pull/6188) docs: add Layer0 to deployment guide ([@rishi-raj-jain](https://github.com/rishi-raj-jain))\\n - [#6184](https://github.com/facebook/docusaurus/pull/6184) docs: remove mention of \'UA-\' in gtag ([@johnnyreilly](https://github.com/johnnyreilly))\\n - [#6181](https://github.com/facebook/docusaurus/pull/6181) docs: add GTFS-to-HTML to showcase ([@brendannee](https://github.com/brendannee))\\n - [#6178](https://github.com/facebook/docusaurus/pull/6178) docs: add Digital Support Notes to showcase ([@PatelN123](https://github.com/PatelN123))\\n - [#6170](https://github.com/facebook/docusaurus/pull/6170) docs: add LabVIEW coding experience to showcase ([@ruanqizhen](https://github.com/ruanqizhen))\\n - [#6164](https://github.com/facebook/docusaurus/pull/6164) docs: fix import module name of theme/Admonition ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6158](https://github.com/facebook/docusaurus/pull/6158) docs: add Astronomer to showcase ([@jwitz](https://github.com/jwitz))\\n- `create-docusaurus`\\n - [#5822](https://github.com/facebook/docusaurus/pull/5822) feat: update website & init template palette to pass WCAG test; include contrast check in ColorGenerator ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6187](https://github.com/facebook/docusaurus/pull/6187) docs: make installation guide more beginner-friendly ([@PatelN123](https://github.com/PatelN123))\\n- `docusaurus-utils`\\n - [#6204](https://github.com/facebook/docusaurus/pull/6204) docs: recommend highlighting with comments than number range ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-theme-classic`\\n - [#6203](https://github.com/facebook/docusaurus/pull/6203) docs: audit grammar issues ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :house: Internal\\n\\n- `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#6456](https://github.com/facebook/docusaurus/pull/6456) chore: add cSpell for spell checking ([@nschonni](https://github.com/nschonni))\\n- Other\\n - [#6444](https://github.com/facebook/docusaurus/pull/6444) misc: update nvmrc to 14.17.0 to meet dependency requirements ([@jodyheavener](https://github.com/jodyheavener))\\n - [#6441](https://github.com/facebook/docusaurus/pull/6441) misc: fix stylelint erroring when lint-staged passed ignored file ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6421](https://github.com/facebook/docusaurus/pull/6421) chore: fix yarn build:website:fast ([@slorber](https://github.com/slorber))\\n - [#6381](https://github.com/facebook/docusaurus/pull/6381) chore(website): set cache-control for static assets ([@nschonni](https://github.com/nschonni))\\n - [#6364](https://github.com/facebook/docusaurus/pull/6364) chore: remove Intl polyfills for Jest ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6325](https://github.com/facebook/docusaurus/pull/6325) chore: add Dependabot for dependency updates ([@nschonni](https://github.com/nschonni))\\n - [#6328](https://github.com/facebook/docusaurus/pull/6328) chore(ci): upgrade actions/github-script to v5 ([@nschonni](https://github.com/nschonni))\\n - [#6332](https://github.com/facebook/docusaurus/pull/6332) chore(deps): bump follow-redirects from 1.14.5 to 1.14.7 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#6326](https://github.com/facebook/docusaurus/pull/6326) misc(ci): remove redundant \\"CI: true\\" env ([@nschonni](https://github.com/nschonni))\\n - [#6304](https://github.com/facebook/docusaurus/pull/6304) chore: upgrade to Husky 7 ([@nschonni](https://github.com/nschonni))\\n - [#6222](https://github.com/facebook/docusaurus/pull/6222) test: ensure consistent CSS ordering ([@slorber](https://github.com/slorber))\\n - [#6159](https://github.com/facebook/docusaurus/pull/6159) docs: remove useless comment ([@slorber](https://github.com/slorber))\\n - [#6148](https://github.com/facebook/docusaurus/pull/6148) chore(examples): update examples to 2.0.0-beta.14 ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-debug`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#6442](https://github.com/facebook/docusaurus/pull/6442) chore: enable stylelint standard config ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus`\\n - [#6440](https://github.com/facebook/docusaurus/pull/6440) chore: remove some unused dependencies from package.json ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#6436](https://github.com/facebook/docusaurus/pull/6436) refactor(theme-classic): render BlogPostItem as one JSX element ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6283](https://github.com/facebook/docusaurus/pull/6283) refactor(theme-classic): apply import/no-named-export eslint rule ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-pages`\\n - [#6413](https://github.com/facebook/docusaurus/pull/6413) fix(content-pages): declare hide_table_of_contents as boolean ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus`\\n - [#6399](https://github.com/facebook/docusaurus/pull/6399) refactor: clean up TODO comments ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-cssnano-preset`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-common`, `docusaurus-theme-translations`, `docusaurus`\\n - [#6387](https://github.com/facebook/docusaurus/pull/6387) test: improve test coverage ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-utils`\\n - [#6380](https://github.com/facebook/docusaurus/pull/6380) chore: enable a few fixable ESLint rules ([@nschonni](https://github.com/nschonni))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-docs`, `docusaurus-utils`, `docusaurus`\\n - [#6377](https://github.com/facebook/docusaurus/pull/6377) refactor: use findAsyncSequential in a few places ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-utils-common`, `docusaurus-utils`, `docusaurus`, `stylelint-copyright`\\n - [#6375](https://github.com/facebook/docusaurus/pull/6375) chore: enable eslint-plugin-jest ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#6373](https://github.com/facebook/docusaurus/pull/6373) chore: enable react/jsx-closing-bracket-location ([@nschonni](https://github.com/nschonni))\\n- `docusaurus-theme-classic`, `stylelint-copyright`\\n - [#6374](https://github.com/facebook/docusaurus/pull/6374) feat(stylelint-copyright): autofix, stricter config ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-cssnano-preset`, `docusaurus-theme-classic`\\n - [#6372](https://github.com/facebook/docusaurus/pull/6372) chore: add baseline stylelint rules ([@nschonni](https://github.com/nschonni))\\n- `create-docusaurus`, `docusaurus-plugin-debug`, `docusaurus-theme-classic`\\n - [#6369](https://github.com/facebook/docusaurus/pull/6369) chore: upgrade lint-staged and globs ([@nschonni](https://github.com/nschonni))\\n- `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus`\\n - [#6341](https://github.com/facebook/docusaurus/pull/6341) chore: regenerate yarn.lock ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-pages`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus`\\n - [#6324](https://github.com/facebook/docusaurus/pull/6324) chore: minor typo cleanup ([@nschonni](https://github.com/nschonni))\\n- `create-docusaurus`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`, `stylelint-copyright`\\n - [#6286](https://github.com/facebook/docusaurus/pull/6286) misc: convert all internal scripts to ESM ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`\\n - [#6289](https://github.com/facebook/docusaurus/pull/6289) refactor: move @theme/hooks to @docusaurus/theme-common ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`\\n - [#6287](https://github.com/facebook/docusaurus/pull/6287) refactor: new @docusaurus/plugin-content-docs/client interface ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#6279](https://github.com/facebook/docusaurus/pull/6279) refactor(core): use native types from webpack-dev-server ([@RDIL](https://github.com/RDIL))\\n- `docusaurus-plugin-content-docs`\\n - [#6277](https://github.com/facebook/docusaurus/pull/6277) refactor(content-docs): make readVersionsMetadata async ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-types`, `docusaurus`\\n - [#6237](https://github.com/facebook/docusaurus/pull/6237) refactor(core): convert serverEntry.js to TS ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6230](https://github.com/facebook/docusaurus/pull/6230) refactor: enforce type import specifiers ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-plugin-content-blog`, `docusaurus-utils`, `docusaurus`\\n - [#6229](https://github.com/facebook/docusaurus/pull/6229) refactor(utils): reorganize functions; move authors file resolution to utils ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-translations`\\n - [#6225](https://github.com/facebook/docusaurus/pull/6225) refactor(theme-translations): improve typing for update script ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6174](https://github.com/facebook/docusaurus/pull/6174) misc(theme-translations): multiple improvements to the update CLI ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 46\\n\\n- AJ Rice ([@ajrice6713](https://github.com/ajrice6713))\\n- Abdelrahman Ahmed ([@abahmed](https://github.com/abahmed))\\n- Alexandru Grigoras ([@alexgrigoras](https://github.com/alexgrigoras))\\n- Amir M. Mohamadi ([@amir2mi](https://github.com/amir2mi))\\n- Anthony McCaigue ([@antmcc49](https://github.com/antmcc49))\\n- Armano ([@armano2](https://github.com/armano2))\\n- Brendan Nee ([@brendannee](https://github.com/brendannee))\\n- Chen ([@HiChen404](https://github.com/HiChen404))\\n- Davide Bianchi ([@davidebianchi](https://github.com/davidebianchi))\\n- Devtato ([@cerkiewny](https://github.com/cerkiewny))\\n- Edouard Bonlieu ([@edouardb](https://github.com/edouardb))\\n- Feodor Fitsner ([@FeodorFitsner](https://github.com/FeodorFitsner))\\n- Filipe Guerra ([@alias-mac](https://github.com/alias-mac))\\n- Gabriel Csapo ([@gabrielcsapo](https://github.com/gabrielcsapo))\\n- Jake Witz ([@jwitz](https://github.com/jwitz))\\n- Jeffrey Aven ([@jeffreyaven](https://github.com/jeffreyaven))\\n- Jody Heavener ([@jodyheavener](https://github.com/jodyheavener))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Joseph ([@josephriosIO](https://github.com/josephriosIO))\\n- Josh Goldberg ([@JoshuaKGoldberg](https://github.com/JoshuaKGoldberg))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Kaustubh Kulkarni ([@kaustubhk24](https://github.com/kaustubhk24))\\n- Lars Mikkelsen ([@ltm](https://github.com/ltm))\\n- Mikey O\'Toole ([@homotechsual](https://github.com/homotechsual))\\n- Minh Pham ([@lmpham1](https://github.com/lmpham1))\\n- Morooka Kotaro ([@MorookaKotaro](https://github.com/MorookaKotaro))\\n- Nayan Patel ([@PatelN123](https://github.com/PatelN123))\\n- Nick Schonning ([@nschonni](https://github.com/nschonni))\\n- Pranab Das ([@pranabdas](https://github.com/pranabdas))\\n- Reece Dunham ([@RDIL](https://github.com/RDIL))\\n- Rishi Raj Jain ([@rishi-raj-jain](https://github.com/rishi-raj-jain))\\n- Sanjay Soundarajan ([@megasanjay](https://github.com/megasanjay))\\n- Shun Wakatsuki ([@shwaka](https://github.com/shwaka))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tapan Chudasama ([@tapanchudasama](https://github.com/tapanchudasama))\\n- Vaibhav Shinde ([@vaibhavshn](https://github.com/vaibhavshn))\\n- Vandr\xe9 Leal ([@vandreleal](https://github.com/vandreleal))\\n- Yaroslav Serhieiev ([@noomorph](https://github.com/noomorph))\\n- [@mcallisto](https://github.com/mcallisto)\\n- [@ruanqizhen](https://github.com/ruanqizhen)\\n- [@wood3n](https://github.com/wood3n)\\n- kuizuo ([@kuizuo](https://github.com/kuizuo))\\n- sgenoud ([@sgenoud](https://github.com/sgenoud))\\n- trent ([@roydukkey](https://github.com/roydukkey))\\n- \xd6mer Faruk APLAK ([@omeraplak](https://github.com/omeraplak))\\n- \u4E45\u67D3 | JiuRan ([@1084350607](https://github.com/1084350607))"},{"id":"/2.0.0-beta.14","metadata":{"permalink":"/changelog/2.0.0-beta.14","source":"@site/changelog/source/2.0.0-beta.14.md","title":"2.0.0-beta.14","description":"New Feature","date":"2021-12-21T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"6543","alias":"6543","url":"https://github.com/6543","imageURL":"https://github.com/6543.png","key":"6543","page":null},{"name":"Christopher Klint","alias":"christopherklint97","url":"https://github.com/christopherklint97","imageURL":"https://github.com/christopherklint97.png","key":"christopherklint97","page":null},{"name":"colton","alias":"cmpadden","url":"https://github.com/cmpadden","imageURL":"https://github.com/cmpadden.png","key":"cmpadden","page":null},{"name":"Drylozu","alias":"Drylozu","url":"https://github.com/Drylozu","imageURL":"https://github.com/Drylozu.png","key":"Drylozu","page":null},{"name":"Jeroen Claassens","alias":"favna","url":"https://github.com/favna","imageURL":"https://github.com/favna.png","key":"favna","page":null},{"name":"Harsh Mishra","alias":"HarshCasper","url":"https://github.com/HarshCasper","imageURL":"https://github.com/HarshCasper.png","key":"HarshCasper","page":null},{"name":"Himanshu","alias":"himanshu007-creator","url":"https://github.com/himanshu007-creator","imageURL":"https://github.com/himanshu007-creator.png","key":"himanshu007-creator","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Kristoffer K.","alias":"merceyz","url":"https://github.com/merceyz","imageURL":"https://github.com/merceyz.png","key":"merceyz","page":null},{"name":"Yaroslav Serhieiev","alias":"noomorph","url":"https://github.com/noomorph","imageURL":"https://github.com/noomorph.png","key":"noomorph","page":null},{"name":"\u4E0D\u90D1","alias":"notzheng","url":"https://github.com/notzheng","imageURL":"https://github.com/notzheng.png","key":"notzheng","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Ziv","alias":"wewoor","url":"https://github.com/wewoor","imageURL":"https://github.com/wewoor.png","key":"wewoor","page":null},{"name":"Shubhendra Singh Chauhan","alias":"withshubh","url":"https://github.com/withshubh","imageURL":"https://github.com/withshubh.png","key":"withshubh","page":null},{"name":"Wout Vandesompele","alias":"wowtvds","url":"https://github.com/wowtvds","imageURL":"https://github.com/wowtvds.png","key":"wowtvds","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-12-21T20:00","authors":["6543","christopherklint97","cmpadden","Drylozu","favna","HarshCasper","himanshu007-creator","Josh-Cena","lex111","merceyz","noomorph","notzheng","slorber","wewoor","withshubh","wowtvds","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.15","permalink":"/changelog/2.0.0-beta.15"},"nextItem":{"title":"2.0.0-beta.13","permalink":"/changelog/2.0.0-beta.13"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6132](https://github.com/facebook/docusaurus/pull/6132) feat(theme-classic): new configuration syntax for a simple footer ([@christopherklint97](https://github.com/christopherklint97))\\n - [#6125](https://github.com/facebook/docusaurus/pull/6125) feat(theme-common): stable classname for code blocks ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#5848](https://github.com/facebook/docusaurus/pull/5848) feat(theme-classic): standalone Admonition component ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6082](https://github.com/facebook/docusaurus/pull/6082) feat(theme-classic): allow passing additional attributes to tab headings ([@Drylozu](https://github.com/Drylozu))\\n- `docusaurus-plugin-content-blog`\\n - [#6126](https://github.com/facebook/docusaurus/pull/6126) feat(content-blog): support json feed ([@notzheng](https://github.com/notzheng))\\n- `docusaurus`\\n - [#6107](https://github.com/facebook/docusaurus/pull/6107) feat(core): allow plugins to customize/override Webpack devServer config ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-migrate`\\n - [#6146](https://github.com/facebook/docusaurus/pull/6146) fix(migrate): do not modify non-MD files ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#6128](https://github.com/facebook/docusaurus/pull/6128) fix: do not use aria-hidden in heading anchor links ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`\\n - [#6124](https://github.com/facebook/docusaurus/pull/6124) fix(content-docs): restore behavior when pagination front matter is null ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6085](https://github.com/facebook/docusaurus/pull/6085) fix(content-docs): getMainDocId should return doc with both versioned or unversioned id ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-utils-validation`\\n - [#6097](https://github.com/facebook/docusaurus/pull/6097) fix: declare missing dependencies ([@merceyz](https://github.com/merceyz))\\n- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-pwa`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `lqip-loader`\\n - [#6094](https://github.com/facebook/docusaurus/pull/6094) fix: add missing dependencies on tslib ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-translations`\\n - [#6088](https://github.com/facebook/docusaurus/pull/6088) fix(theme-translations): publish theme-translation lib, including typedef ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#6053](https://github.com/facebook/docusaurus/pull/6053) feat(theme-classic): allow stylizing doc paginator arrows ([@noomorph](https://github.com/noomorph))\\n - [#6121](https://github.com/facebook/docusaurus/pull/6121) fix(theme-classic): add outline to focused code blocks ([@christopherklint97](https://github.com/christopherklint97))\\n - [#6118](https://github.com/facebook/docusaurus/pull/6118) refactor: remove some useless code ([@lex111](https://github.com/lex111))\\n- `create-docusaurus`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#5994](https://github.com/facebook/docusaurus/pull/5994) refactor: unify log format with new logger utility ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#6119](https://github.com/facebook/docusaurus/pull/6119) fix(create-docusaurus): make initial editUrl functional ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6095](https://github.com/facebook/docusaurus/pull/6095) fix(create-docusaurus): give a clearer message when installation failed ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :memo: Documentation\\n\\n- [#6142](https://github.com/facebook/docusaurus/pull/6142) docs: normalize usage of placeholders ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#5918](https://github.com/facebook/docusaurus/pull/5918) docs: refactor & refine lifecycle API docs ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#6138](https://github.com/facebook/docusaurus/pull/6138) docs: add Smart Docs to showcase ([@wowtvds](https://github.com/wowtvds))\\n- [#6137](https://github.com/facebook/docusaurus/pull/6137) docs: add ToolJet to showcase ([@withshubh](https://github.com/withshubh))\\n- [#6141](https://github.com/facebook/docusaurus/pull/6141) docs: add WoodpeckerCI to showcase ([@6543](https://github.com/6543))\\n- [#6135](https://github.com/facebook/docusaurus/pull/6135) docs: mention admonition quirks with Prettier ([@yangshun](https://github.com/yangshun))\\n- [#6131](https://github.com/facebook/docusaurus/pull/6131) docs: elaborate on \\"docs-only\\" and \\"blog-only\\" ([@himanshu007-creator](https://github.com/himanshu007-creator))\\n- [#6134](https://github.com/facebook/docusaurus/pull/6134) docs: update link to init template README.md ([@cmpadden](https://github.com/cmpadden))\\n- [#6130](https://github.com/facebook/docusaurus/pull/6130) docs: refactor docs sidebar doc ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#6129](https://github.com/facebook/docusaurus/pull/6129) docs: refactor styling/theming docs ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#6112](https://github.com/facebook/docusaurus/pull/6112) docs: mention that SEO through front matter is better than head tag ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#6120](https://github.com/facebook/docusaurus/pull/6120) refactor(website): make deploy preview open next version docs by default ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#6111](https://github.com/facebook/docusaurus/pull/6111) docs: add Molecule website to showcase ([@wewoor](https://github.com/wewoor))\\n- [#6089](https://github.com/facebook/docusaurus/pull/6089) docs: add Enarx website to showcase ([@HarshCasper](https://github.com/HarshCasper))\\n- [#6090](https://github.com/facebook/docusaurus/pull/6090) docs: add sapphire to showcase ([@favna](https://github.com/favna))\\n- [#6091](https://github.com/facebook/docusaurus/pull/6091) docs(showcase): \\"much more pages\\" => \\"many more pages\\" ([@favna](https://github.com/favna))\\n\\n## :house: Internal\\n\\n- `docusaurus-theme-classic`\\n - [#6144](https://github.com/facebook/docusaurus/pull/6144) fix(theme-classic): fix translation when footer has no links ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`\\n - [#6143](https://github.com/facebook/docusaurus/pull/6143) test: fix async tests resolved in random order ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6123](https://github.com/facebook/docusaurus/pull/6123) test: use snapshots for sidebar tests ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Other\\n - [#6122](https://github.com/facebook/docusaurus/pull/6122) fix(website): fix yarn build:website:fast ([@slorber](https://github.com/slorber))\\n - [#6080](https://github.com/facebook/docusaurus/pull/6080) chore: add npm and pnpm to E2E tests ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6092](https://github.com/facebook/docusaurus/pull/6092) misc: ignore some files during npm publish ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 17\\n\\n- 6543 ([@6543](https://github.com/6543))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Christopher Klint ([@christopherklint97](https://github.com/christopherklint97))\\n- Harsh Mishra ([@HarshCasper](https://github.com/HarshCasper))\\n- Himanshu ([@himanshu007-creator](https://github.com/himanshu007-creator))\\n- Jeroen Claassens ([@favna](https://github.com/favna))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Kristoffer K. ([@merceyz](https://github.com/merceyz))\\n- Shubhendra Singh Chauhan ([@withshubh](https://github.com/withshubh))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Wout Vandesompele ([@wowtvds](https://github.com/wowtvds))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- Yaroslav Serhieiev ([@noomorph](https://github.com/noomorph))\\n- Ziv ([@wewoor](https://github.com/wewoor))\\n- [@Drylozu](https://github.com/Drylozu)\\n- colton ([@cmpadden](https://github.com/cmpadden))\\n- \u4E0D\u90D1 ([@notzheng](https://github.com/notzheng))"},{"id":"/2.0.0-beta.13","metadata":{"permalink":"/changelog/2.0.0-beta.13","source":"@site/changelog/source/2.0.0-beta.13.md","title":"2.0.0-beta.13","description":"Good npm publish, same code as beta.11","date":"2021-12-10T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2021-12-10T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-beta.14","permalink":"/changelog/2.0.0-beta.14"},"nextItem":{"title":"2.0.0-beta.12","permalink":"/changelog/2.0.0-beta.12"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\nGood npm publish, same code as beta.11"},{"id":"/2.0.0-beta.12","metadata":{"permalink":"/changelog/2.0.0-beta.12","source":"@site/changelog/source/2.0.0-beta.12.md","title":"2.0.0-beta.12","description":"Bad npm publish, use beta.13 instead","date":"2021-12-10T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2021-12-10T19:00"},"unlisted":false,"prevItem":{"title":"2.0.0-beta.13","permalink":"/changelog/2.0.0-beta.13"},"nextItem":{"title":"2.0.0-beta.11","permalink":"/changelog/2.0.0-beta.11"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\nBad npm publish, use beta.13 instead"},{"id":"/2.0.0-beta.11","metadata":{"permalink":"/changelog/2.0.0-beta.11","source":"@site/changelog/source/2.0.0-beta.11.md","title":"2.0.0-beta.11","description":"Bug Fix","date":"2021-12-10T18:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Pranab Das","alias":"pranabdas","url":"https://github.com/pranabdas","imageURL":"https://github.com/pranabdas.png","key":"pranabdas","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-12-10T18:00","authors":["pranabdas","slorber"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.12","permalink":"/changelog/2.0.0-beta.12"},"nextItem":{"title":"2.0.0-beta.10","permalink":"/changelog/2.0.0-beta.10"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`\\n - [#6078](https://github.com/facebook/docusaurus/pull/6078) fix: move docusaurus core back to hard dependencies ([@pranabdas](https://github.com/pranabdas))\\n\\n## Committers: 2\\n\\n- Pranab Das ([@pranabdas](https://github.com/pranabdas))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))"},{"id":"/2.0.0-beta.10","metadata":{"permalink":"/changelog/2.0.0-beta.10","source":"@site/changelog/source/2.0.0-beta.10.md","title":"2.0.0-beta.10","description":"New Feature","date":"2021-12-09T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Afshin Mehrabani","alias":"afshinm","url":"https://github.com/afshinm","imageURL":"https://github.com/afshinm.png","key":"afshinm","page":null},{"name":"Rohit Agrawal","alias":"agrawal-rohit","url":"https://github.com/agrawal-rohit","imageURL":"https://github.com/agrawal-rohit.png","key":"agrawal-rohit","page":null},{"name":"Armano","alias":"armano2","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png","key":"armano2","page":null},{"name":"Christophe Chaudier","alias":"cchaudier","url":"https://github.com/cchaudier","imageURL":"https://github.com/cchaudier.png","key":"cchaudier","page":null},{"name":"Devtato","alias":"cerkiewny","url":"https://github.com/cerkiewny","imageURL":"https://github.com/cerkiewny.png","key":"cerkiewny","page":null},{"name":"chima ilo","alias":"chimailo","url":"https://github.com/chimailo","imageURL":"https://github.com/chimailo.png","key":"chimailo","page":null},{"name":"Shoaib Sajid","alias":"dexbiobot","url":"https://github.com/dexbiobot","imageURL":"https://github.com/dexbiobot.png","key":"dexbiobot","page":null},{"name":"Don","alias":"dsmmcken","url":"https://github.com/dsmmcken","imageURL":"https://github.com/dsmmcken.png","key":"dsmmcken","page":null},{"name":"duanwilliam","alias":"duanwilliam","url":"https://github.com/duanwilliam","imageURL":"https://github.com/duanwilliam.png","key":"duanwilliam","page":null},{"name":"Dmitriy Fishman","alias":"fishmandev","url":"https://github.com/fishmandev","imageURL":"https://github.com/fishmandev.png","key":"fishmandev","page":null},{"name":"Fernando Maia","alias":"fsmaia","url":"https://github.com/fsmaia","imageURL":"https://github.com/fsmaia.png","key":"fsmaia","page":null},{"name":"Hendrik Bulens","alias":"hbulens","url":"https://github.com/hbulens","imageURL":"https://github.com/hbulens.png","key":"hbulens","page":null},{"name":"Hemant Sachdeva","alias":"HemantSachdeva","url":"https://github.com/HemantSachdeva","imageURL":"https://github.com/HemantSachdeva.png","key":"HemantSachdeva","page":null},{"name":"Jarar","alias":"JararvisQ","url":"https://github.com/JararvisQ","imageURL":"https://github.com/JararvisQ.png","key":"JararvisQ","page":null},{"name":"Jeff Shillitto","alias":"jeffski","url":"https://github.com/jeffski","imageURL":"https://github.com/jeffski.png","key":"jeffski","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Matej Jellus","alias":"juffalow","url":"https://github.com/juffalow","imageURL":"https://github.com/juffalow.png","key":"juffalow","page":null},{"name":"\u741A\u81F4\u8FDC","alias":"juzhiyuan","url":"https://github.com/juzhiyuan","imageURL":"https://github.com/juzhiyuan.png","key":"juzhiyuan","page":null},{"name":"Konstantin Popov","alias":"KonstHardy","url":"https://github.com/KonstHardy","imageURL":"https://github.com/KonstHardy.png","key":"KonstHardy","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Ludovico Fischer","alias":"ludofischer","url":"https://github.com/ludofischer","imageURL":"https://github.com/ludofischer.png","key":"ludofischer","page":null},{"name":"Martin \u0160o\u0161i\u0107","alias":"Martinsos","url":"https://github.com/Martinsos","imageURL":"https://github.com/Martinsos.png","key":"Martinsos","page":null},{"name":"Matthijs Groen","alias":"matthijsgroen","url":"https://github.com/matthijsgroen","imageURL":"https://github.com/matthijsgroen.png","key":"matthijsgroen","page":null},{"name":"MisterFISHUP","alias":"MisterFISHUP","url":"https://github.com/MisterFISHUP","imageURL":"https://github.com/MisterFISHUP.png","key":"MisterFISHUP","page":null},{"name":"Molly White","alias":"molly","url":"https://github.com/molly","imageURL":"https://github.com/molly.png","key":"molly","page":null},{"name":"Morooka Kotaro","alias":"MorookaKotaro","url":"https://github.com/MorookaKotaro","imageURL":"https://github.com/MorookaKotaro.png","key":"MorookaKotaro","page":null},{"name":"Oliver Ullman","alias":"oriooctopus","url":"https://github.com/oriooctopus","imageURL":"https://github.com/oriooctopus.png","key":"oriooctopus","page":null},{"name":"pal-sig","alias":"pal-sig","url":"https://github.com/pal-sig","imageURL":"https://github.com/pal-sig.png","key":"pal-sig","page":null},{"name":"Patitotective","alias":"Patitotective","url":"https://github.com/Patitotective","imageURL":"https://github.com/Patitotective.png","key":"Patitotective","page":null},{"name":"Patrik M\xe4siar","alias":"patrikmasiar","url":"https://github.com/patrikmasiar","imageURL":"https://github.com/patrikmasiar.png","key":"patrikmasiar","page":null},{"name":"Paul Biggar","alias":"pbiggar","url":"https://github.com/pbiggar","imageURL":"https://github.com/pbiggar.png","key":"pbiggar","page":null},{"name":"Brennan Kinney","alias":"polarathene","url":"https://github.com/polarathene","imageURL":"https://github.com/polarathene.png","key":"polarathene","page":null},{"name":"Yongmin Hong","alias":"revi","url":"https://github.com/revi","imageURL":"https://github.com/revi.png","key":"revi","page":null},{"name":"Robin M\xe9tral","alias":"robinmetral","url":"https://github.com/robinmetral","imageURL":"https://github.com/robinmetral.png","key":"robinmetral","page":null},{"name":"Ronny Roeller","alias":"ronnyroeller","url":"https://github.com/ronnyroeller","imageURL":"https://github.com/ronnyroeller.png","key":"ronnyroeller","page":null},{"name":"Ivan Boothe","alias":"rootwork","url":"https://github.com/rootwork","imageURL":"https://github.com/rootwork.png","key":"rootwork","page":null},{"name":"Rey","alias":"rsapkf","url":"https://github.com/rsapkf","imageURL":"https://github.com/rsapkf.png","key":"rsapkf","page":null},{"name":"Sergio Moreno","alias":"semoal","url":"https://github.com/semoal","imageURL":"https://github.com/semoal.png","key":"semoal","page":null},{"name":"Can Olcer","alias":"shafy","url":"https://github.com/shafy","imageURL":"https://github.com/shafy.png","key":"shafy","page":null},{"name":"Varun Sivapalan","alias":"sivapalan","url":"https://github.com/sivapalan","imageURL":"https://github.com/sivapalan.png","key":"sivapalan","page":null},{"name":"Sharon Koech","alias":"skoech","url":"https://github.com/skoech","imageURL":"https://github.com/skoech.png","key":"skoech","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Soham Shah","alias":"sohamsshah","url":"https://github.com/sohamsshah","imageURL":"https://github.com/sohamsshah.png","key":"sohamsshah","page":null},{"name":"Paden Clayton","alias":"spyke01","url":"https://github.com/spyke01","imageURL":"https://github.com/spyke01.png","key":"spyke01","page":null},{"name":"Stan Kocken","alias":"StanKocken","url":"https://github.com/StanKocken","imageURL":"https://github.com/StanKocken.png","key":"StanKocken","page":null},{"name":"Swalah Amani","alias":"swalahamani","url":"https://github.com/swalahamani","imageURL":"https://github.com/swalahamani.png","key":"swalahamani","page":null},{"name":"Swapnil M Mane","alias":"swapnilmmane","url":"https://github.com/swapnilmmane","imageURL":"https://github.com/swapnilmmane.png","key":"swapnilmmane","page":null},{"name":"William Poetra Yoga","alias":"wpyoga","url":"https://github.com/wpyoga","imageURL":"https://github.com/wpyoga.png","key":"wpyoga","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-12-09T20:00","authors":["afshinm","agrawal-rohit","armano2","cchaudier","cerkiewny","chimailo","dexbiobot","dsmmcken","duanwilliam","fishmandev","fsmaia","hbulens","HemantSachdeva","JararvisQ","jeffski","Josh-Cena","juffalow","juzhiyuan","KonstHardy","lex111","ludofischer","Martinsos","matthijsgroen","MisterFISHUP","molly","MorookaKotaro","oriooctopus","pal-sig","Patitotective","patrikmasiar","pbiggar","polarathene","revi","robinmetral","ronnyroeller","rootwork","rsapkf","semoal","shafy","sivapalan","skoech","slorber","sohamsshah","spyke01","StanKocken","swalahamani","swapnilmmane","wpyoga"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.11","permalink":"/changelog/2.0.0-beta.11"},"nextItem":{"title":"2.0.0-beta.9","permalink":"/changelog/2.0.0-beta.9"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `create-docusaurus`, `docusaurus-types`, `docusaurus`\\n - [#5930](https://github.com/facebook/docusaurus/pull/5930) feat: shorthands for themes/plugins/presets configuration ([@fsmaia](https://github.com/fsmaia))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`\\n - [#5830](https://github.com/facebook/docusaurus/pull/5830) feat(content-docs): sidebar category linking to document or auto-generated index page ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-types`, `docusaurus`\\n - [#4095](https://github.com/facebook/docusaurus/pull/4095) feat(core): allow sourcing from multiple static directories ([@oriooctopus](https://github.com/oriooctopus))\\n- `create-docusaurus`\\n - [#3458](https://github.com/facebook/docusaurus/pull/3458) feat(create-docusaurus): allow using local folder as template ([@afshinm](https://github.com/afshinm))\\n- `docusaurus-plugin-content-blog`\\n - [#5787](https://github.com/facebook/docusaurus/pull/5787) feat(content-blog): allow sorting posts in ascending order ([@cerkiewny](https://github.com/cerkiewny))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus`\\n - [#3104](https://github.com/facebook/docusaurus/pull/3104) feat(core): Add React ErrorBoundary component + theme default boundaries ([@spyke01](https://github.com/spyke01))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-plugin-content-blog`\\n - [#6061](https://github.com/facebook/docusaurus/pull/6061) fix(content-blog): make post ID unique ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-plugin-content-docs`\\n - [#6065](https://github.com/facebook/docusaurus/pull/6065) refactor: remove deprecated docs homePageId option ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`\\n - [#6056](https://github.com/facebook/docusaurus/pull/6056) refactor: remove unused metadata field for homepage ([@lex111](https://github.com/lex111))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`\\n - [#5830](https://github.com/facebook/docusaurus/pull/5830) feat(content-docs): sidebar category linking to document or auto-generated index page ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-preset-classic`\\n - [#5832](https://github.com/facebook/docusaurus/pull/5832) refactor(ganalytics, gtag): move options out of themeConfig ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-utils`\\n - [#5871](https://github.com/facebook/docusaurus/pull/5871) misc: replace all \\"Metadatas\\" with \\"Metadata\\" ([@swalahamani](https://github.com/swalahamani))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-common`\\n - [#6070](https://github.com/facebook/docusaurus/pull/6070) fix(theme-common): useLocationChange fire un-necessarily twice ([@slorber](https://github.com/slorber))\\n - [#6040](https://github.com/facebook/docusaurus/pull/6040) fix: browser storage (localStorage) is unreliable: api should fail-safe ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#6047](https://github.com/facebook/docusaurus/pull/6047) fix: make Docusaurus PnP strict mode compatible ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#6052](https://github.com/facebook/docusaurus/pull/6052) fix(core): fix error boundary import disrupting CSS order ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`\\n - [#6061](https://github.com/facebook/docusaurus/pull/6061) fix(content-blog): make post ID unique ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#5983](https://github.com/facebook/docusaurus/pull/5983) fix(core): do not apply theme-init alias to user component ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5798](https://github.com/facebook/docusaurus/pull/5798) fix(cli): update notifier should be shown if current is less than latest ([@semoal](https://github.com/semoal))\\n - [#5864](https://github.com/facebook/docusaurus/pull/5864) fix: respect base URL when serving content by webpack dev server ([@lex111](https://github.com/lex111))\\n- `docusaurus-module-type-aliases`\\n - [#5945](https://github.com/facebook/docusaurus/pull/5945) fix(module-type-aliases): add svg declaration ([@MisterFISHUP](https://github.com/MisterFISHUP))\\n- `docusaurus-theme-classic`\\n - [#5873](https://github.com/facebook/docusaurus/pull/5873) fix(theme-classic): fix announcementBar css ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#6003](https://github.com/facebook/docusaurus/pull/6003) fix(theme-classic): make nav dropdowns focusable ([@robinmetral](https://github.com/robinmetral))\\n - [#6000](https://github.com/facebook/docusaurus/pull/6000) fix(theme-classic): make hash link in heading not selectable ([@JararvisQ](https://github.com/JararvisQ))\\n - [#5944](https://github.com/facebook/docusaurus/pull/5944) fix: translate all remaining english sentence in French ([@StanKocken](https://github.com/StanKocken))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#6048](https://github.com/facebook/docusaurus/pull/6048) refactor: capitalize locales when creating i18n config ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-translations`\\n - [#5976](https://github.com/facebook/docusaurus/pull/5976) feat(theme-translations): add extra Korean translation, fix typo ([@revi](https://github.com/revi))\\n - [#6060](https://github.com/facebook/docusaurus/pull/6060) chore(theme-translations): complete Chinese translations ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-plugin-content-docs`\\n - [#6065](https://github.com/facebook/docusaurus/pull/6065) refactor: remove deprecated docs homePageId option ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`\\n - [#6056](https://github.com/facebook/docusaurus/pull/6056) refactor: remove unused metadata field for homepage ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6049](https://github.com/facebook/docusaurus/pull/6049) refactor: simplify Toggle component ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-types`\\n - [#5981](https://github.com/facebook/docusaurus/pull/5981) refactor: minor ESLint improvements ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-pwa`\\n - [#5995](https://github.com/facebook/docusaurus/pull/5995) chore(plugin-pwa): change core-js version in package.json to v3 ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils`\\n - [#5849](https://github.com/facebook/docusaurus/pull/5849) refactor: define own translations in other themes ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-types`\\n - [#5959](https://github.com/facebook/docusaurus/pull/5959) refactor(types): correct HtmlTags types ([@armano2](https://github.com/armano2))\\n- `docusaurus`\\n - [#5829](https://github.com/facebook/docusaurus/pull/5829) refactor: optimize clone and checkout in deploy command ([@sivapalan](https://github.com/sivapalan))\\n - [#5899](https://github.com/facebook/docusaurus/pull/5899) feat(core): give more hints when plugins have duplicate IDs ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-preset-classic`\\n - [#5832](https://github.com/facebook/docusaurus/pull/5832) refactor(ganalytics, gtag): move options out of themeConfig ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus`\\n - [#5840](https://github.com/facebook/docusaurus/pull/5840) feat: allow GIT_USER env var to be unset if SSH is used ([@wpyoga](https://github.com/wpyoga))\\n- `create-docusaurus`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-utils`\\n - [#5871](https://github.com/facebook/docusaurus/pull/5871) misc: replace all \\"Metadatas\\" with \\"Metadata\\" ([@swalahamani](https://github.com/swalahamani))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#6063](https://github.com/facebook/docusaurus/pull/6063) docs: add moja global to showcase ([@sohamsshah](https://github.com/sohamsshah))\\n - [#6069](https://github.com/facebook/docusaurus/pull/6069) docs: update CONTRIBUTING for website ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6062](https://github.com/facebook/docusaurus/pull/6062) refactor(website): improve wording in comments of showcase data ([@sohamsshah](https://github.com/sohamsshah))\\n - [#6045](https://github.com/facebook/docusaurus/pull/6045) docs: add \\"discord resources\\" to showcase ([@dexbiobot](https://github.com/dexbiobot))\\n - [#6026](https://github.com/facebook/docusaurus/pull/6026) docs(deployment): add cost-benefit analysis with different options ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5955](https://github.com/facebook/docusaurus/pull/5955) docs: add Pearl UI website to showcase ([@agrawal-rohit](https://github.com/agrawal-rohit))\\n - [#5989](https://github.com/facebook/docusaurus/pull/5989) misc: update CONTRIBUTING to reflect status quo ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5845](https://github.com/facebook/docusaurus/pull/5845) docs(admin): update repo testing instructions to reflect v2 ([@wpyoga](https://github.com/wpyoga))\\n - [#6019](https://github.com/facebook/docusaurus/pull/6019) docs: update Netlify url config option in deployment instructions ([@rsapkf](https://github.com/rsapkf))\\n - [#6015](https://github.com/facebook/docusaurus/pull/6015) docs: add Tremor website to showcase page ([@skoech](https://github.com/skoech))\\n - [#5997](https://github.com/facebook/docusaurus/pull/5997) refactor(website): various fixes and improvements on Showcase page ([@lex111](https://github.com/lex111))\\n - [#6008](https://github.com/facebook/docusaurus/pull/6008) docs: improve algolia integration instructions ([@shafy](https://github.com/shafy))\\n - [#6006](https://github.com/facebook/docusaurus/pull/6006) docs: improve explanation for url config in GH Pages ([@Martinsos](https://github.com/Martinsos))\\n - [#6001](https://github.com/facebook/docusaurus/pull/6001) docs: add Dime.Scheduler SDK to showcase ([@hbulens](https://github.com/hbulens))\\n - [#5984](https://github.com/facebook/docusaurus/pull/5984) docs: add PREFS website to showcase ([@Patitotective](https://github.com/Patitotective))\\n - [#5967](https://github.com/facebook/docusaurus/pull/5967) docs(website): Add docsearch migration blog post ([@slorber](https://github.com/slorber))\\n - [#5968](https://github.com/facebook/docusaurus/pull/5968) refactor(website): shadow on showcase toggle ([@dsmmcken](https://github.com/dsmmcken))\\n - [#5979](https://github.com/facebook/docusaurus/pull/5979) docs: update links to default translations dir ([@lex111](https://github.com/lex111))\\n - [#5969](https://github.com/facebook/docusaurus/pull/5969) refactor(website): polish on Showcase page ([@slorber](https://github.com/slorber))\\n - [#5966](https://github.com/facebook/docusaurus/pull/5966) docs: add Darklang to showcase ([@pbiggar](https://github.com/pbiggar))\\n - [#5970](https://github.com/facebook/docusaurus/pull/5970) docs: add Remirror to showcase ([@ronnyroeller](https://github.com/ronnyroeller))\\n - [#5971](https://github.com/facebook/docusaurus/pull/5971) docs: add Webiny docs to showcase page ([@swapnilmmane](https://github.com/swapnilmmane))\\n - [#5953](https://github.com/facebook/docusaurus/pull/5953) docs: fix BrowserOnly return statement ([@MorookaKotaro](https://github.com/MorookaKotaro))\\n - [#5949](https://github.com/facebook/docusaurus/pull/5949) docs: update Signoz showcase details ([@pal-sig](https://github.com/pal-sig))\\n - [#5948](https://github.com/facebook/docusaurus/pull/5948) fix(website): fix APITable anchor ID having extra hash ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5947](https://github.com/facebook/docusaurus/pull/5947) fix(website): fix APITable anchor link ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5925](https://github.com/facebook/docusaurus/pull/5925) docs: add Froggit site to showcase page ([@cchaudier](https://github.com/cchaudier))\\n - [#5928](https://github.com/facebook/docusaurus/pull/5928) docs: Add Shotstack showcase user ([@jeffski](https://github.com/jeffski))\\n - [#5934](https://github.com/facebook/docusaurus/pull/5934) docs: fix a typo in CHANGELOG ([@KonstHardy](https://github.com/KonstHardy))\\n - [#5921](https://github.com/facebook/docusaurus/pull/5921) docs: add Signoz site to showcase site ([@pal-sig](https://github.com/pal-sig))\\n - [#5891](https://github.com/facebook/docusaurus/pull/5891) docs: new APITable comp to render large tables ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5917](https://github.com/facebook/docusaurus/pull/5917) docs: make API sidebar partially autogenerated ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5903](https://github.com/facebook/docusaurus/pull/5903) docs: refer to deployed branch as deployment rather than target ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5902](https://github.com/facebook/docusaurus/pull/5902) fix(website): fix i18n routes for Canny board ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5900](https://github.com/facebook/docusaurus/pull/5900) docs: document global variables in MDX scope ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#4409](https://github.com/facebook/docusaurus/pull/4409) docs: add example for GitHub Pages deployment; rewrite deployment section ([@polarathene](https://github.com/polarathene))\\n - [#5888](https://github.com/facebook/docusaurus/pull/5888) docs: update GitHub deployment instructions ([@rootwork](https://github.com/rootwork))\\n - [#5895](https://github.com/facebook/docusaurus/pull/5895) docs: Add juffalow.com to Docusaurus showcase ([@juffalow](https://github.com/juffalow))\\n - [#5881](https://github.com/facebook/docusaurus/pull/5881) docs: fix wrong code sample in docusaurus-core ([@matthijsgroen](https://github.com/matthijsgroen))\\n - [#5875](https://github.com/facebook/docusaurus/pull/5875) docs: add patrikmasiar website showcase ([@patrikmasiar](https://github.com/patrikmasiar))\\n - [#5876](https://github.com/facebook/docusaurus/pull/5876) docs: \'5 minutes tutorial\' -> \'5-minute tutorial\' ([@molly](https://github.com/molly))\\n - [#5759](https://github.com/facebook/docusaurus/pull/5759) docs: create SEO documentation page ([@cerkiewny](https://github.com/cerkiewny))\\n - [#5869](https://github.com/facebook/docusaurus/pull/5869) docs: remove duplicated appId property ([@juzhiyuan](https://github.com/juzhiyuan))\\n - [#5868](https://github.com/facebook/docusaurus/pull/5868) docs: fix a typo in using-themes.md ([@fishmandev](https://github.com/fishmandev))\\n - [#5862](https://github.com/facebook/docusaurus/pull/5862) misc: show only latest archive alpha/beta versions dropdown ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#5742](https://github.com/facebook/docusaurus/pull/5742) feat(website): redesign of showcase page ([@chimailo](https://github.com/chimailo))\\n\\n## :house: Internal\\n\\n- `create-docusaurus`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-common`, `docusaurus-theme-translations`, `docusaurus-utils-validation`, `docusaurus`\\n - [#6071](https://github.com/facebook/docusaurus/pull/6071) refactor: add blank lines below all copyright headers ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Other\\n - [#6068](https://github.com/facebook/docusaurus/pull/6068) chore: add prefix to needs triage label; separate Windows test workflow ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6031](https://github.com/facebook/docusaurus/pull/6031) chore: upgrade netlify-cli ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6012](https://github.com/facebook/docusaurus/pull/6012) chore(website): enable strict compiler option ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6002](https://github.com/facebook/docusaurus/pull/6002) chore(ci): add GitHub action for showcase testing ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5977](https://github.com/facebook/docusaurus/pull/5977) chore: generate dogfooding test for long pathname during CI ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5950](https://github.com/facebook/docusaurus/pull/5950) misc(codeowners): add @Josh-Cena to CODEOWNERS ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5919](https://github.com/facebook/docusaurus/pull/5919) misc(workflow): E2E tests should not be run with website changes ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5907](https://github.com/facebook/docusaurus/pull/5907) chore(workflow): merge jobs into one workflow & give each job a name ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5889](https://github.com/facebook/docusaurus/pull/5889) chore(website): enable eslint in website ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5870](https://github.com/facebook/docusaurus/pull/5870) chore(README): fix broken GitHub Actions Workflow Status icon ([@HemantSachdeva](https://github.com/HemantSachdeva))\\n- `docusaurus-module-type-aliases`, `docusaurus-types`, `docusaurus`\\n - [#6064](https://github.com/facebook/docusaurus/pull/6064) refactor(core): fix types for client code ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`\\n - [#6055](https://github.com/facebook/docusaurus/pull/6055) chore: clean up dev dependency declarations ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-plugin-ideal-image`, `docusaurus-theme-classic`\\n - [#6010](https://github.com/facebook/docusaurus/pull/6010) chore: upgrade prettier; rename prettier scripts as format ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus`\\n - [#5958](https://github.com/facebook/docusaurus/pull/5958) chore: update @svgr/webpack to version 6 ([@ludofischer](https://github.com/ludofischer))\\n- `docusaurus`\\n - [#5998](https://github.com/facebook/docusaurus/pull/5998) chore: upgrade webpack-dev-server to v4.5.0 ([@lex111](https://github.com/lex111))\\n - [#5965](https://github.com/facebook/docusaurus/pull/5965) fix(core): apply staticDirectories to base webpack config ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-ideal-image`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-common`, `docusaurus-utils`, `docusaurus`\\n - [#5985](https://github.com/facebook/docusaurus/pull/5985) chore: cleanup dependency declaration in package.json ([@armano2](https://github.com/armano2))\\n- `create-docusaurus`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`, `lqip-loader`, `stylelint-copyright`\\n - [#5963](https://github.com/facebook/docusaurus/pull/5963) chore: upgrade TypeScript & other ESLint related deps ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`\\n - [#5962](https://github.com/facebook/docusaurus/pull/5962) refactor(content-docs): move isCategoriesShorthand to utils ([@armano2](https://github.com/armano2))\\n - [#5906](https://github.com/facebook/docusaurus/pull/5906) fix(content-docs): do not echo git history to console ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5905](https://github.com/facebook/docusaurus/pull/5905) misc(plugin-docs): fix Windows test snapshot for git history retrieval ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5904](https://github.com/facebook/docusaurus/pull/5904) refactor(content-docs): use shelljs instead of execa ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-ideal-image`\\n - [#5940](https://github.com/facebook/docusaurus/pull/5940) refactor(plugin-ideal-image): migrate package to TS ([@armano2](https://github.com/armano2))\\n- `docusaurus-plugin-pwa`, `docusaurus-theme-classic`\\n - [#5941](https://github.com/facebook/docusaurus/pull/5941) refactor(plugin-pwa): migrate package to TS ([@armano2](https://github.com/armano2))\\n- `docusaurus-plugin-ideal-image`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`\\n - [#5935](https://github.com/facebook/docusaurus/pull/5935) refactor(theme-search-algolia): migrate package to TS ([@armano2](https://github.com/armano2))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`\\n - [#5946](https://github.com/facebook/docusaurus/pull/5946) refactor: move deps declarations into src ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-utils-common`, `docusaurus-utils`, `docusaurus`\\n - [#5914](https://github.com/facebook/docusaurus/pull/5914) refactor: improve setup of type declaration files ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5922](https://github.com/facebook/docusaurus/pull/5922) refactor(theme-classic): move some logic of CodeBlock to theme-common ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-remark-plugin-npm2yarn`\\n - [#5931](https://github.com/facebook/docusaurus/pull/5931) refactor(remark-plugin-npm2yarn): migrate package to TS ([@duanwilliam](https://github.com/duanwilliam))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils`\\n - [#5806](https://github.com/facebook/docusaurus/pull/5806) refactor: use js-yaml to parse both JSON and YAML ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 48\\n\\n- Afshin Mehrabani ([@afshinm](https://github.com/afshinm))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Armano ([@armano2](https://github.com/armano2))\\n- Brennan Kinney ([@polarathene](https://github.com/polarathene))\\n- Can Olcer ([@shafy](https://github.com/shafy))\\n- Christophe Chaudier ([@cchaudier](https://github.com/cchaudier))\\n- Devtato ([@cerkiewny](https://github.com/cerkiewny))\\n- Dmitriy Fishman ([@fishmandev](https://github.com/fishmandev))\\n- Don ([@dsmmcken](https://github.com/dsmmcken))\\n- FISH UP ([@MisterFISHUP](https://github.com/MisterFISHUP))\\n- Fernando Maia ([@fsmaia](https://github.com/fsmaia))\\n- Hemant Sachdeva ([@HemantSachdeva](https://github.com/HemantSachdeva))\\n- Hendrik Bulens ([@hbulens](https://github.com/hbulens))\\n- Ivan Boothe ([@rootwork](https://github.com/rootwork))\\n- Jarar ([@JararvisQ](https://github.com/JararvisQ))\\n- Jeff Shillitto ([@jeffski](https://github.com/jeffski))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Konstantin Popov ([@KonstHardy](https://github.com/KonstHardy))\\n- Ludovico Fischer ([@ludofischer](https://github.com/ludofischer))\\n- Martin \u0160o\u0161i\u0107 ([@Martinsos](https://github.com/Martinsos))\\n- Matej Jellus ([@juffalow](https://github.com/juffalow))\\n- Matthijs Groen ([@matthijsgroen](https://github.com/matthijsgroen))\\n- Molly White ([@molly](https://github.com/molly))\\n- Morooka Kotaro ([@MorookaKotaro](https://github.com/MorookaKotaro))\\n- Oliver Ullman ([@oriooctopus](https://github.com/oriooctopus))\\n- Paden Clayton ([@spyke01](https://github.com/spyke01))\\n- Patitotective ([@Patitotective](https://github.com/Patitotective))\\n- Patrik M\xe4siar ([@patrikmasiar](https://github.com/patrikmasiar))\\n- Paul Biggar ([@pbiggar](https://github.com/pbiggar))\\n- Rey ([@rsapkf](https://github.com/rsapkf))\\n- Robin M\xe9tral ([@robinmetral](https://github.com/robinmetral))\\n- Rohit Agrawal ([@agrawal-rohit](https://github.com/agrawal-rohit))\\n- Ronny Roeller ([@ronnyroeller](https://github.com/ronnyroeller))\\n- Sergio Moreno ([@semoal](https://github.com/semoal))\\n- Sharon Koech ([@skoech](https://github.com/skoech))\\n- Shoaib Sajid ([@dexbiobot](https://github.com/dexbiobot))\\n- Soham Shah ([@sohamsshah](https://github.com/sohamsshah))\\n- Stan Kocken ([@StanKocken](https://github.com/StanKocken))\\n- Swalah Amani ([@swalahamani](https://github.com/swalahamani))\\n- Swapnil M Mane ([@swapnilmmane](https://github.com/swapnilmmane))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Varun Sivapalan ([@sivapalan](https://github.com/sivapalan))\\n- William Poetra Yoga ([@wpyoga](https://github.com/wpyoga))\\n- Yongmin Hong ([@revi](https://github.com/revi))\\n- [@duanwilliam](https://github.com/duanwilliam)\\n- [@pal-sig](https://github.com/pal-sig)\\n- chima ilo ([@chimailo](https://github.com/chimailo))\\n- \u741A\u81F4\u8FDC ([@juzhiyuan](https://github.com/juzhiyuan))"},{"id":"/2.0.0-beta.9","metadata":{"permalink":"/changelog/2.0.0-beta.9","source":"@site/changelog/source/2.0.0-beta.9.md","title":"2.0.0-beta.9","description":"New Feature","date":"2021-11-02T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Avi Vahl","alias":"AviVahl","url":"https://github.com/AviVahl","imageURL":"https://github.com/AviVahl.png","key":"AviVahl","page":null},{"name":"Devtato","alias":"cerkiewny","url":"https://github.com/cerkiewny","imageURL":"https://github.com/cerkiewny.png","key":"cerkiewny","page":null},{"name":"Ng\xf4 Qu\u1ED1c \u0110\u1EA1t","alias":"datlechin","url":"https://github.com/datlechin","imageURL":"https://github.com/datlechin.png","key":"datlechin","page":null},{"name":"Dominik Meyer","alias":"dominikmeyersap","url":"https://github.com/dominikmeyersap","imageURL":"https://github.com/dominikmeyersap.png","key":"dominikmeyersap","page":null},{"name":"Dmitriy Fishman","alias":"fishmandev","url":"https://github.com/fishmandev","imageURL":"https://github.com/fishmandev.png","key":"fishmandev","page":null},{"name":"Gabriel Falc\xe3o","alias":"gabrielfalcao","url":"https://github.com/gabrielfalcao","imageURL":"https://github.com/gabrielfalcao.png","key":"gabrielfalcao","page":null},{"name":"Jeffrey Aven","alias":"jeffreyaven","url":"https://github.com/jeffreyaven","imageURL":"https://github.com/jeffreyaven.png","key":"jeffreyaven","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"\u741A\u81F4\u8FDC","alias":"juzhiyuan","url":"https://github.com/juzhiyuan","imageURL":"https://github.com/juzhiyuan.png","key":"juzhiyuan","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Oscar Dominguez","alias":"oscard0m","url":"https://github.com/oscard0m","imageURL":"https://github.com/oscard0m.png","key":"oscard0m","page":null},{"name":"Robbie Averill","alias":"robbieaverill","url":"https://github.com/robbieaverill","imageURL":"https://github.com/robbieaverill.png","key":"robbieaverill","page":null},{"name":"Sergio Moreno","alias":"semoal","url":"https://github.com/semoal","imageURL":"https://github.com/semoal.png","key":"semoal","page":null},{"name":"Varun Sivapalan","alias":"sivapalan","url":"https://github.com/sivapalan","imageURL":"https://github.com/sivapalan.png","key":"sivapalan","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Vladimir Tasic","alias":"utajum","url":"https://github.com/utajum","imageURL":"https://github.com/utajum.png","key":"utajum","page":null},{"name":"Ying Wang","alias":"wingclover","url":"https://github.com/wingclover","imageURL":"https://github.com/wingclover.png","key":"wingclover","page":null},{"name":"William Poetra Yoga","alias":"wpyoga","url":"https://github.com/wpyoga","imageURL":"https://github.com/wpyoga.png","key":"wpyoga","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-11-02T20:00","authors":["AviVahl","cerkiewny","datlechin","dominikmeyersap","fishmandev","gabrielfalcao","jeffreyaven","Josh-Cena","juzhiyuan","lex111","oscard0m","robbieaverill","semoal","sivapalan","slorber","utajum","wingclover","wpyoga"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.10","permalink":"/changelog/2.0.0-beta.10"},"nextItem":{"title":"2.0.0-beta.8","permalink":"/changelog/2.0.0-beta.8"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5770](https://github.com/facebook/docusaurus/pull/5770) feat(theme-classic): allow specifying width/height in logo ([@cerkiewny](https://github.com/cerkiewny))\\n- `docusaurus-types`, `docusaurus`\\n - [#5841](https://github.com/facebook/docusaurus/pull/5841) feat: allow user to specify deploymentBranch property in docusaurus.config.js ([@wpyoga](https://github.com/wpyoga))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`\\n - [#5795](https://github.com/facebook/docusaurus/pull/5795) feat(search-algolia): algolia externalUrl regex to navigate with window.href ([@semoal](https://github.com/semoal))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-types`, `docusaurus`\\n - [#5814](https://github.com/facebook/docusaurus/pull/5814) feat: Support Node 17 ([@slorber](https://github.com/slorber))\\n - [#5420](https://github.com/facebook/docusaurus/pull/5420) feat(core): upgrade to webpack-dev-server@4 ([@AviVahl](https://github.com/AviVahl))\\n- `docusaurus-theme-classic`\\n - [#5791](https://github.com/facebook/docusaurus/pull/5791) feat(theme-classic): add Serbian Cyrillic translation ([@utajum](https://github.com/utajum))\\n\\n## :boom: Breaking Change\\n\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#5812](https://github.com/facebook/docusaurus/pull/5812) chore: require Node 14 ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-blog`\\n - [#5835](https://github.com/facebook/docusaurus/pull/5835) fix(content-blog): Fix blog feeds not generated ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#5828](https://github.com/facebook/docusaurus/pull/5828) fix: include all branch tips for shallow clone in deploy command ([@sivapalan](https://github.com/sivapalan))\\n - [#5824](https://github.com/facebook/docusaurus/pull/5824) fix: baseUrl passed to sortConfig ([@semoal](https://github.com/semoal))\\n - [#5813](https://github.com/facebook/docusaurus/pull/5813) fix: handle SIGTERM in build command ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus`\\n - [#5819](https://github.com/facebook/docusaurus/pull/5819) fix: use @docusaurus/react-loadable as package alias + include types ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-preset-classic`\\n - [#5831](https://github.com/facebook/docusaurus/pull/5831) feat(preset-classic): guard against unknown keys in options ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#5815](https://github.com/facebook/docusaurus/pull/5815) refactor: some improvements for webpack-dev-server ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`\\n - [#5788](https://github.com/facebook/docusaurus/pull/5788) refactor: fix a few type inconsistencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#5781](https://github.com/facebook/docusaurus/pull/5781) refactor: Vietnamese translations ([@datlechin](https://github.com/datlechin))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#5853](https://github.com/facebook/docusaurus/pull/5853) docs: Fix a typo in CONTRIBUTING.md ([@fishmandev](https://github.com/fishmandev))\\n - [#5852](https://github.com/facebook/docusaurus/pull/5852) docs: Fix a typo in versioning.md ([@fishmandev](https://github.com/fishmandev))\\n - [#5847](https://github.com/facebook/docusaurus/pull/5847) docs: add InfraQL product docs website to showcase ([@jeffreyaven](https://github.com/jeffreyaven))\\n - [#5843](https://github.com/facebook/docusaurus/pull/5843) docs: fix i18n routes to feature requests ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5766](https://github.com/facebook/docusaurus/pull/5766) docs: elaborate on the usage of MDX plugins ([@cerkiewny](https://github.com/cerkiewny))\\n - [#5826](https://github.com/facebook/docusaurus/pull/5826) docs: fix lint issue ([@slorber](https://github.com/slorber))\\n - [#5801](https://github.com/facebook/docusaurus/pull/5801) docs: Update Drone Deployment docs ([@gabrielfalcao](https://github.com/gabrielfalcao))\\n - [#5821](https://github.com/facebook/docusaurus/pull/5821) docs: include navbar item type in the API table ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5820](https://github.com/facebook/docusaurus/pull/5820) docs: add @Josh-Cena to the team ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5818](https://github.com/facebook/docusaurus/pull/5818) doc: fix typo in \\"create a doc\\" ([@dominikmeyersap](https://github.com/dominikmeyersap))\\n - [#5797](https://github.com/facebook/docusaurus/pull/5797) docs: use \\"npx create-docusaurus\\" for init ([@slorber](https://github.com/slorber))\\n - [#5771](https://github.com/facebook/docusaurus/pull/5771) docs: Minor update to grammar in plugins overview page ([@robbieaverill](https://github.com/robbieaverill))\\n - [#5774](https://github.com/facebook/docusaurus/pull/5774) docs: update ssrTemplate ([@juzhiyuan](https://github.com/juzhiyuan))\\n - [#5784](https://github.com/facebook/docusaurus/pull/5784) docs: fix link for apply to DocSearch program ([@lex111](https://github.com/lex111))\\n- `create-docusaurus`\\n - [#5792](https://github.com/facebook/docusaurus/pull/5792) docs: fix typo ([@wingclover](https://github.com/wingclover))\\n\\n## :house: Internal\\n\\n- Other\\n - [#5842](https://github.com/facebook/docusaurus/pull/5842) misc: add \\"name\\" field for root package.json ([@wpyoga](https://github.com/wpyoga))\\n - [#5836](https://github.com/facebook/docusaurus/pull/5836) chore: switch to GitHub issue forms ([@lex111](https://github.com/lex111))\\n - [#5834](https://github.com/facebook/docusaurus/pull/5834) chore(issue templ): add \\"self service\\" section in templates ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5833](https://github.com/facebook/docusaurus/pull/5833) chore(workflow): remove v2 prefix from titles ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5697](https://github.com/facebook/docusaurus/pull/5697) chore(workflow): add cache to workflows using actions/setup-node ([@oscard0m](https://github.com/oscard0m))\\n - [#5825](https://github.com/facebook/docusaurus/pull/5825) chore: fix Crowdin again ([@slorber](https://github.com/slorber))\\n - [#5823](https://github.com/facebook/docusaurus/pull/5823) chore: replace doc sample .pdf file by .xlsx to solve Crowdin issue ([@slorber](https://github.com/slorber))\\n - [#5763](https://github.com/facebook/docusaurus/pull/5763) chore: update examples for beta.8 ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#5812](https://github.com/facebook/docusaurus/pull/5812) chore: require Node 14 ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus`\\n - [#5807](https://github.com/facebook/docusaurus/pull/5807) refactor: remove a few Lodash usages & ESLint enforcement ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`\\n - [#5808](https://github.com/facebook/docusaurus/pull/5808) refactor: clear a few ESLint warnings ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `lqip-loader`\\n - [#5779](https://github.com/facebook/docusaurus/pull/5779) refactor: migrate lqip-loader to TS, fix typing for Webpack Loaders ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 18\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Avi Vahl ([@AviVahl](https://github.com/AviVahl))\\n- Devtato ([@cerkiewny](https://github.com/cerkiewny))\\n- Dmitriy Fishman ([@fishmandev](https://github.com/fishmandev))\\n- Dominik Meyer ([@dominikmeyersap](https://github.com/dominikmeyersap))\\n- Gabriel Falc\xe3o ([@gabrielfalcao](https://github.com/gabrielfalcao))\\n- Jeffrey Aven ([@jeffreyaven](https://github.com/jeffreyaven))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Ng\xf4 Qu\u1ED1c \u0110\u1EA1t ([@datlechin](https://github.com/datlechin))\\n- Oscar Dominguez ([@oscard0m](https://github.com/oscard0m))\\n- Robbie Averill ([@robbieaverill](https://github.com/robbieaverill))\\n- Sergio Moreno ([@semoal](https://github.com/semoal))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Varun Sivapalan ([@sivapalan](https://github.com/sivapalan))\\n- Vladimir Tasic ([@utajum](https://github.com/utajum))\\n- William Poetra Yoga ([@wpyoga](https://github.com/wpyoga))\\n- Ying Wang ([@wingclover](https://github.com/wingclover))\\n- \u741A\u81F4\u8FDC ([@juzhiyuan](https://github.com/juzhiyuan))"},{"id":"/2.0.0-beta.8","metadata":{"permalink":"/changelog/2.0.0-beta.8","source":"@site/changelog/source/2.0.0-beta.8.md","title":"2.0.0-beta.8","description":"New Feature","date":"2021-10-21T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Andrew Taft","alias":"ataft","url":"https://github.com/ataft","imageURL":"https://github.com/ataft.png","key":"ataft","page":null},{"name":"Caner Canbaz","alias":"canercanbaz","url":"https://github.com/canercanbaz","imageURL":"https://github.com/canercanbaz.png","key":"canercanbaz","page":null},{"name":"Ng\xf4 Qu\u1ED1c \u0110\u1EA1t","alias":"datlechin","url":"https://github.com/datlechin","imageURL":"https://github.com/datlechin.png","key":"datlechin","page":null},{"name":"Dimi Mikadze","alias":"DimiMikadze","url":"https://github.com/DimiMikadze","imageURL":"https://github.com/DimiMikadze.png","key":"DimiMikadze","page":null},{"name":"Ilija Pavlic","alias":"ipavlic","url":"https://github.com/ipavlic","imageURL":"https://github.com/ipavlic.png","key":"ipavlic","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Nathaniel Furniss","alias":"nlfurniss","url":"https://github.com/nlfurniss","imageURL":"https://github.com/nlfurniss.png","key":"nlfurniss","page":null},{"name":"philipp985","alias":"philipp985","url":"https://github.com/philipp985","imageURL":"https://github.com/philipp985.png","key":"philipp985","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Thanasis Katsadas","alias":"thanasis00","url":"https://github.com/thanasis00","imageURL":"https://github.com/thanasis00.png","key":"thanasis00","page":null},{"name":"Xuqian","alias":"zxuqian","url":"https://github.com/zxuqian","imageURL":"https://github.com/zxuqian.png","key":"zxuqian","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-10-21T20:00","authors":["ataft","canercanbaz","datlechin","DimiMikadze","ipavlic","johnnyreilly","Josh-Cena","lex111","nlfurniss","philipp985","slorber","thanasis00","zxuqian"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.9","permalink":"/changelog/2.0.0-beta.9"},"nextItem":{"title":"2.0.0-beta.7","permalink":"/changelog/2.0.0-beta.7"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-blog`\\n - [#5702](https://github.com/facebook/docusaurus/pull/5702) feat(content-blog): new readingTime plugin option ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#5740](https://github.com/facebook/docusaurus/pull/5740) feat(core): write-heading-ids options maintainCasing, overwrite ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`\\n - [#5705](https://github.com/facebook/docusaurus/pull/5705) feat(content-docs): new front matter options to customize pagination ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-theme-search-algolia`\\n - [#5751](https://github.com/facebook/docusaurus/pull/5751) fix: stable callbacks in useSearchQuery + refactor ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-ideal-image`\\n - [#5760](https://github.com/facebook/docusaurus/pull/5760) fix(ideal-image): fix IdealImage in dev not handling ES import images properly ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#5732](https://github.com/facebook/docusaurus/pull/5732) fix(theme-classic): allow tabs with number as value ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5721](https://github.com/facebook/docusaurus/pull/5721) fix: handle rubber band scrolling in hideable navbar ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-search-algolia`\\n - [#5751](https://github.com/facebook/docusaurus/pull/5751) fix: stable callbacks in useSearchQuery + refactor ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#5717](https://github.com/facebook/docusaurus/pull/5717) refactor: Polish de translation ([@philipp985](https://github.com/philipp985))\\n - [#5725](https://github.com/facebook/docusaurus/pull/5725) refactor: add missing Turkish translations to theme-classic ([@canercanbaz](https://github.com/canercanbaz))\\n - [#5723](https://github.com/facebook/docusaurus/pull/5723) refactor(v2): update Vietnamese translations ([@datlechin](https://github.com/datlechin))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-ideal-image`, `docusaurus-theme-classic`, `docusaurus`\\n - [#5726](https://github.com/facebook/docusaurus/pull/5726) refactor(module-type-aliases): remove fallback aliases ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#5755](https://github.com/facebook/docusaurus/pull/5755) docs: rename docusaurus.config.js route + redirects cleanup ([@slorber](https://github.com/slorber))\\n - [#5750](https://github.com/facebook/docusaurus/pull/5750) docs(v2): Fix typo in using-plugins.md ([@thanasis00](https://github.com/thanasis00))\\n - [#5727](https://github.com/facebook/docusaurus/pull/5727) docs(v2): Add Fenghua Frontend Developer site to showcase page ([@zxuqian](https://github.com/zxuqian))\\n - [#5746](https://github.com/facebook/docusaurus/pull/5746) docs: Add plugin-image-zoom ([@ataft](https://github.com/ataft))\\n - [#5728](https://github.com/facebook/docusaurus/pull/5728) docs: add h4 into toc on certain pages ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5737](https://github.com/facebook/docusaurus/pull/5737) docs: Add Apex FP to showcase ([@ipavlic](https://github.com/ipavlic))\\n- `docusaurus-plugin-content-blog`\\n - [#5753](https://github.com/facebook/docusaurus/pull/5753) fix(content-blog): temporarily swallow feed mdxToHtml errors + feed refactor ([@slorber](https://github.com/slorber))\\n\\n## :house: Internal\\n\\n- `docusaurus`\\n - [#5761](https://github.com/facebook/docusaurus/pull/5761) chore: upgrade html-webpack-plugin, remove terser 4 ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#5714](https://github.com/facebook/docusaurus/pull/5714) chore: Enable ESLint rules of hooks + fix new lint errors ([@slorber](https://github.com/slorber))\\n- Other\\n - [#5722](https://github.com/facebook/docusaurus/pull/5722) chore: fix gen script to support TS template ([@lex111](https://github.com/lex111))\\n - [#5730](https://github.com/facebook/docusaurus/pull/5730) chore: fix typos / casing in issue template ([@johnnyreilly](https://github.com/johnnyreilly))\\n - [#5720](https://github.com/facebook/docusaurus/pull/5720) chore: regenerate beta.7 examples ([@lex111](https://github.com/lex111))\\n - [#5719](https://github.com/facebook/docusaurus/pull/5719) chore: remove beta.5 docs ([@lex111](https://github.com/lex111))\\n\\n## :running: Performance\\n\\n- `docusaurus`\\n - [#5748](https://github.com/facebook/docusaurus/pull/5748) refactor: perform shallow clone during deploy ([@nlfurniss](https://github.com/nlfurniss))\\n\\n## Committers: 13\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Andrew Taft ([@ataft](https://github.com/ataft))\\n- Caner Canbaz ([@canercanbaz](https://github.com/canercanbaz))\\n- Dimi Mikadze ([@DimiMikadze](https://github.com/DimiMikadze))\\n- Ilija Pavlic ([@ipavlic](https://github.com/ipavlic))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Nathaniel Furniss ([@nlfurniss](https://github.com/nlfurniss))\\n- Ng\xf4 Qu\u1ED1c \u0110\u1EA1t ([@datlechin](https://github.com/datlechin))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Thanasis Katsadas ([@thanasis00](https://github.com/thanasis00))\\n- Xuqian ([@zxuqian](https://github.com/zxuqian))\\n- [@philipp985](https://github.com/philipp985)"},{"id":"/2.0.0-beta.7","metadata":{"permalink":"/changelog/2.0.0-beta.7","source":"@site/changelog/source/2.0.0-beta.7.md","title":"2.0.0-beta.7","description":"New Feature","date":"2021-10-15T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Aditya Kajla","alias":"akajla09","url":"https://github.com/akajla09","imageURL":"https://github.com/akajla09.png","key":"akajla09","page":null},{"name":"Andrew Nguyen","alias":"Andrewnt219","url":"https://github.com/Andrewnt219","imageURL":"https://github.com/Andrewnt219.png","key":"Andrewnt219","page":null},{"name":"Palash Shrivastava","alias":"BattleOfPlassey","url":"https://github.com/BattleOfPlassey","imageURL":"https://github.com/BattleOfPlassey.png","key":"BattleOfPlassey","page":null},{"name":"Bharat Middha","alias":"bmiddha","url":"https://github.com/bmiddha","imageURL":"https://github.com/bmiddha.png","key":"bmiddha","page":null},{"name":"David Callizaya","alias":"caleeli","url":"https://github.com/caleeli","imageURL":"https://github.com/caleeli.png","key":"caleeli","page":null},{"name":"Chris Chinchilla","alias":"ChrisChinchilla","url":"https://github.com/ChrisChinchilla","imageURL":"https://github.com/ChrisChinchilla.png","key":"ChrisChinchilla","page":null},{"name":"djamaile","alias":"djamaile","url":"https://github.com/djamaile","imageURL":"https://github.com/djamaile.png","key":"djamaile","page":null},{"name":"Dr-Electron","alias":"Dr-Electron","url":"https://github.com/Dr-Electron","imageURL":"https://github.com/Dr-Electron.png","key":"Dr-Electron","page":null},{"name":"Darshan Gada","alias":"dr5hn","url":"https://github.com/dr5hn","imageURL":"https://github.com/dr5hn.png","key":"dr5hn","page":null},{"name":"Don","alias":"dsmmcken","url":"https://github.com/dsmmcken","imageURL":"https://github.com/dsmmcken.png","key":"dsmmcken","page":null},{"name":"Ekaterina Mozheiko","alias":"EkaterinaMozheiko","url":"https://github.com/EkaterinaMozheiko","imageURL":"https://github.com/EkaterinaMozheiko.png","key":"EkaterinaMozheiko","page":null},{"name":"Erick Zhao","alias":"erickzhao","url":"https://github.com/erickzhao","imageURL":"https://github.com/erickzhao.png","key":"erickzhao","page":null},{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},{"name":"Gabriel T. Nardy","alias":"gtnardy","url":"https://github.com/gtnardy","imageURL":"https://github.com/gtnardy.png","key":"gtnardy","page":null},{"name":"headline-design","alias":"headline-design","url":"https://github.com/headline-design","imageURL":"https://github.com/headline-design.png","key":"headline-design","page":null},{"name":"Hugh Lilly","alias":"hughlilly","url":"https://github.com/hughlilly","imageURL":"https://github.com/hughlilly.png","key":"hughlilly","page":null},{"name":"Ivar Conradi \xd8sthus","alias":"ivarconr","url":"https://github.com/ivarconr","imageURL":"https://github.com/ivarconr.png","key":"ivarconr","page":null},{"name":"Jason Bosco","alias":"jasonbosco","url":"https://github.com/jasonbosco","imageURL":"https://github.com/jasonbosco.png","key":"jasonbosco","page":null},{"name":"Jeffrey Aven","alias":"jeffreyaven","url":"https://github.com/jeffreyaven","imageURL":"https://github.com/jeffreyaven.png","key":"jeffreyaven","page":null},{"name":"Jordan Lee","alias":"jkhaui","url":"https://github.com/jkhaui","imageURL":"https://github.com/jkhaui.png","key":"jkhaui","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Robert Kingston","alias":"kingo55","url":"https://github.com/kingo55","imageURL":"https://github.com/kingo55.png","key":"kingo55","page":null},{"name":"Kyriet","alias":"KyrietS","url":"https://github.com/KyrietS","imageURL":"https://github.com/KyrietS.png","key":"KyrietS","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"moonrailgun","alias":"moonrailgun","url":"https://github.com/moonrailgun","imageURL":"https://github.com/moonrailgun.png","key":"moonrailgun","page":null},{"name":"Mahdi Hamldar","alias":"MrTechHunter","url":"https://github.com/MrTechHunter","imageURL":"https://github.com/MrTechHunter.png","key":"MrTechHunter","page":null},{"name":"Nathaniel Tucker","alias":"ntucker","url":"https://github.com/ntucker","imageURL":"https://github.com/ntucker.png","key":"ntucker","page":null},{"name":"Daniel Costrasel","alias":"ohkimur","url":"https://github.com/ohkimur","imageURL":"https://github.com/ohkimur.png","key":"ohkimur","page":null},{"name":"Ana Carolina","alias":"printf-ana","url":"https://github.com/printf-ana","imageURL":"https://github.com/printf-ana.png","key":"printf-ana","page":null},{"name":"Shrugsy","alias":"Shrugsy","url":"https://github.com/Shrugsy","imageURL":"https://github.com/Shrugsy.png","key":"Shrugsy","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Stefan Norberg","alias":"stnor","url":"https://github.com/stnor","imageURL":"https://github.com/stnor.png","key":"stnor","page":null},{"name":"swyx","alias":"sw-yx","url":"https://github.com/sw-yx","imageURL":"https://github.com/sw-yx.png","key":"sw-yx","page":null},{"name":"Vincent","alias":"vinckr","url":"https://github.com/vinckr","imageURL":"https://github.com/vinckr.png","key":"vinckr","page":null},{"name":"Whirl","alias":"Whirl21","url":"https://github.com/Whirl21","imageURL":"https://github.com/Whirl21.png","key":"Whirl21","page":null},{"name":"Paul O\u2019Shannessy","alias":"zpao","url":"https://github.com/zpao","imageURL":"https://github.com/zpao.png","key":"zpao","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-10-15T20:00","authors":["akajla09","Andrewnt219","BattleOfPlassey","bmiddha","caleeli","ChrisChinchilla","djamaile","Dr-Electron","dr5hn","dsmmcken","EkaterinaMozheiko","erickzhao","forresst","gtnardy","headline-design","hughlilly","ivarconr","jasonbosco","jeffreyaven","jkhaui","Josh-Cena","kingo55","KyrietS","lex111","moonrailgun","MrTechHunter","ntucker","ohkimur","printf-ana","Shrugsy","slorber","stnor","sw-yx","vinckr","Whirl21","zpao"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.8","permalink":"/changelog/2.0.0-beta.8"},"nextItem":{"title":"2.0.0-beta.6","permalink":"/changelog/2.0.0-beta.6"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-module-type-aliases`, `docusaurus`\\n - [#5683](https://github.com/facebook/docusaurus/pull/5683) feat: make Translate children optional ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5674](https://github.com/facebook/docusaurus/pull/5674) polish(theme-classic): guard against potential definition mistakes in Tabs ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5618](https://github.com/facebook/docusaurus/pull/5618) feat: maintain page position for clicked grouped tabs ([@Shrugsy](https://github.com/Shrugsy))\\n- `docusaurus-plugin-content-blog`, `docusaurus-utils`\\n - [#4330](https://github.com/facebook/docusaurus/pull/4330) feat(content-blog): add full blog post html into RSS/Atom feeds ([@moonrailgun](https://github.com/moonrailgun))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5642](https://github.com/facebook/docusaurus/pull/5642) feat(theme-classic, plugin-docs): sidebar item level-specific className + allow customization ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#5635](https://github.com/facebook/docusaurus/pull/5635) feat: npm init docusaurus, yarn create docusaurus ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`\\n - [#5589](https://github.com/facebook/docusaurus/pull/5589) feat: properly type-check the Docusaurus config of new sites ([@bmiddha](https://github.com/bmiddha))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils-validation`\\n - [#5578](https://github.com/facebook/docusaurus/pull/5578) feat(v2): allow specifying TOC max depth (themeConfig + frontMatter) ([@erickzhao](https://github.com/erickzhao))\\n- `docusaurus`\\n - [#5498](https://github.com/facebook/docusaurus/pull/5498) feat: make Webpack url-loader limit configurable (env variable) ([@stnor](https://github.com/stnor))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`\\n - [#5545](https://github.com/facebook/docusaurus/pull/5545) feat: make tags route path configurable ([@lex111](https://github.com/lex111))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5674](https://github.com/facebook/docusaurus/pull/5674) polish(theme-classic): guard against potential definition mistakes in Tabs ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5618](https://github.com/facebook/docusaurus/pull/5618) feat: maintain page position for clicked grouped tabs ([@Shrugsy](https://github.com/Shrugsy))\\n- `docusaurus-init`, `docusaurus-preset-bootstrap`, `docusaurus-theme-bootstrap`\\n - [#5634](https://github.com/facebook/docusaurus/pull/5634) chore: remove unused Bootstrap theme ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils-validation`\\n - [#5578](https://github.com/facebook/docusaurus/pull/5578) feat(v2): allow specifying TOC max depth (themeConfig + frontMatter) ([@erickzhao](https://github.com/erickzhao))\\n- `docusaurus-theme-classic`\\n - [#5592](https://github.com/facebook/docusaurus/pull/5592) refactor: use CSS Modules for toggle styles ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-common`\\n - [#5694](https://github.com/facebook/docusaurus/pull/5694) fix: proper collapsing of long element ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#5684](https://github.com/facebook/docusaurus/pull/5684) fix: use realpath for site dir to resolve symlink ([@lex111](https://github.com/lex111))\\n - [#5645](https://github.com/facebook/docusaurus/pull/5645) fix: place root route at the end ([@lex111](https://github.com/lex111))\\n - [#5629](https://github.com/facebook/docusaurus/pull/5629) fix: text/link hydration bug ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5699](https://github.com/facebook/docusaurus/pull/5699) fix: apply announcement bar class if only needed ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#5667](https://github.com/facebook/docusaurus/pull/5667) fix: expand tag column on truncated post ([@lex111](https://github.com/lex111))\\n - [#5668](https://github.com/facebook/docusaurus/pull/5668) fix: preserve line breaks when copy code in Firefox ([@lex111](https://github.com/lex111))\\n - [#5647](https://github.com/facebook/docusaurus/pull/5647) feat(theme-classic): make first tab the default tab ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5652](https://github.com/facebook/docusaurus/pull/5652) fix: restore duplicate Tabs rendering to fix hydration issue ([@slorber](https://github.com/slorber))\\n - [#5643](https://github.com/facebook/docusaurus/pull/5643) fix(theme-classic): reset default style for task lists ([@EkaterinaMozheiko](https://github.com/EkaterinaMozheiko))\\n - [#5571](https://github.com/facebook/docusaurus/pull/5571) fix: highlight active item in recent post list ([@lex111](https://github.com/lex111))\\n - [#5481](https://github.com/facebook/docusaurus/pull/5481) fix: use heading itself as anchor for better crawling ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-live-codeblock`\\n - [#5677](https://github.com/facebook/docusaurus/pull/5677) fix: Don\'t ignore options.transforms for buble ([@ntucker](https://github.com/ntucker))\\n - [#5556](https://github.com/facebook/docusaurus/pull/5556) fix: pin react-live due to possible mismatch React ([@lex111](https://github.com/lex111))\\n- `docusaurus-mdx-loader`\\n - [#5690](https://github.com/facebook/docusaurus/pull/5690) fix: preserve hash in asset link ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-ideal-image`\\n - [#5540](https://github.com/facebook/docusaurus/pull/5540) fix: do not use ideal image plugin in dev env ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`\\n - [#5606](https://github.com/facebook/docusaurus/pull/5606) fix(docs): create tags route if only tags exists ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`, `docusaurus-module-type-aliases`, `docusaurus-types`\\n - [#5601](https://github.com/facebook/docusaurus/pull/5601) fix(module-type-aliases): move @type packages to dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-utils`\\n - [#5495](https://github.com/facebook/docusaurus/pull/5495) fix: ignore code block lines when creating excerpt ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`\\n - [#5490](https://github.com/facebook/docusaurus/pull/5490) fix: install deps for new project via Yarn on Windows properly ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils-validation`\\n - [#5479](https://github.com/facebook/docusaurus/pull/5479) fix: add docs tag validation to solve #5478 ([@sw-yx](https://github.com/sw-yx))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5709](https://github.com/facebook/docusaurus/pull/5709) refactor: cleanup scroll handlers ([@lex111](https://github.com/lex111))\\n - [#5627](https://github.com/facebook/docusaurus/pull/5627) refactor: various TOC improvements ([@lex111](https://github.com/lex111))\\n - [#5469](https://github.com/facebook/docusaurus/pull/5469) refactor: Adjust styling of back top top button ([@dsmmcken](https://github.com/dsmmcken))\\n- `docusaurus-theme-classic`\\n - [#5708](https://github.com/facebook/docusaurus/pull/5708) refactor: hide hash link from crawlers ([@lex111](https://github.com/lex111))\\n - [#5649](https://github.com/facebook/docusaurus/pull/5649) refactor: improve pt-BR translation for classic theme ([@printf-ana](https://github.com/printf-ana))\\n - [#5646](https://github.com/facebook/docusaurus/pull/5646) refactor: complete missing and fix ES translations ([@caleeli](https://github.com/caleeli))\\n - [#5640](https://github.com/facebook/docusaurus/pull/5640) style: update Persian language translations ([@MrTechHunter](https://github.com/MrTechHunter))\\n - [#5630](https://github.com/facebook/docusaurus/pull/5630) refactor: standardize using media queries ([@lex111](https://github.com/lex111))\\n - [#5487](https://github.com/facebook/docusaurus/pull/5487) refactor: use only one close SVG icon ([@lex111](https://github.com/lex111))\\n - [#5592](https://github.com/facebook/docusaurus/pull/5592) refactor: use CSS Modules for toggle styles ([@lex111](https://github.com/lex111))\\n - [#5485](https://github.com/facebook/docusaurus/pull/5485) polish: prevent pop navigation on back if navbar sidebar is open ([@slorber](https://github.com/slorber))\\n - [#5472](https://github.com/facebook/docusaurus/pull/5472) polish(theme-classic): add Chinese translations ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#5636](https://github.com/facebook/docusaurus/pull/5636) refactor: make all Props defined as interface + readonly ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus`\\n - [#5560](https://github.com/facebook/docusaurus/pull/5560) polish: remove unused eslint-disable ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#5580](https://github.com/facebook/docusaurus/pull/5580) refactor(core): type improvements for `PendingNavigation` ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#5496](https://github.com/facebook/docusaurus/pull/5496) refactor: remove deprecated createRequireFromPath ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- [#5681](https://github.com/facebook/docusaurus/pull/5681) docs(v2): Add CountryStateCityAPI site to showcase page ([@dr5hn](https://github.com/dr5hn))\\n- [#5661](https://github.com/facebook/docusaurus/pull/5661) docs: updated cloudywithachanceofbigdata.com blog showcase ([@jeffreyaven](https://github.com/jeffreyaven))\\n- [#5658](https://github.com/facebook/docusaurus/pull/5658) docs: Algolia plugin must be enabled before crawling the site ([@slorber](https://github.com/slorber))\\n- [#5654](https://github.com/facebook/docusaurus/pull/5654) docs: Add Warrant Docs site to showcase page ([@akajla09](https://github.com/akajla09))\\n- [#5655](https://github.com/facebook/docusaurus/pull/5655) docs: Added cloudywithachanceofbigdata.com showcase blog ([@jeffreyaven](https://github.com/jeffreyaven))\\n- [#5648](https://github.com/facebook/docusaurus/pull/5648) docs: add ory documentation to showcase ([@vinckr](https://github.com/vinckr))\\n- [#5644](https://github.com/facebook/docusaurus/pull/5644) docs: add djamaile blog to site showcase ([@djamaile](https://github.com/djamaile))\\n- [#5641](https://github.com/facebook/docusaurus/pull/5641) docs: add Lux Algo to showcase ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#5638](https://github.com/facebook/docusaurus/pull/5638) docs: add nanos world docs to showcase ([@gtnardy](https://github.com/gtnardy))\\n- [#5610](https://github.com/facebook/docusaurus/pull/5610) docs: Add IOTA wiki to showcase ([@Dr-Electron](https://github.com/Dr-Electron))\\n- [#5489](https://github.com/facebook/docusaurus/pull/5489) docs: add additional search options, typesense and local search ([@jasonbosco](https://github.com/jasonbosco))\\n- [#5590](https://github.com/facebook/docusaurus/pull/5590) docs(website): document npm2yarn plugin + use new Tabs API everywhere ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#5591](https://github.com/facebook/docusaurus/pull/5591) docs: Add whirl.codes to showcase ([@Whirl21](https://github.com/Whirl21))\\n- [#5574](https://github.com/facebook/docusaurus/pull/5574) docs: add Pipeline UI to showcase ([@headline-design](https://github.com/headline-design))\\n- [#5585](https://github.com/facebook/docusaurus/pull/5585) docs: fix more references to Discord channels ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#5572](https://github.com/facebook/docusaurus/pull/5572) docs: add Blogasaurus to showcase ([@BattleOfPlassey](https://github.com/BattleOfPlassey))\\n- [#5575](https://github.com/facebook/docusaurus/pull/5575) docs: clarify MDX version used ([@lex111](https://github.com/lex111))\\n- [#5581](https://github.com/facebook/docusaurus/pull/5581) docs(website): update all Discord links ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#5566](https://github.com/facebook/docusaurus/pull/5566) docs: fix code example ([@ChrisChinchilla](https://github.com/ChrisChinchilla))\\n- [#5559](https://github.com/facebook/docusaurus/pull/5559) docs: minor grammatical correction ([@jkhaui](https://github.com/jkhaui))\\n- [#5543](https://github.com/facebook/docusaurus/pull/5543) docs: add note about files being ignored when prefixed with an unders\u2026 ([@KyrietS](https://github.com/KyrietS))\\n- [#5549](https://github.com/facebook/docusaurus/pull/5549) docs: Add Mint Metrics site to the Showcase ([@kingo55](https://github.com/kingo55))\\n- [#5546](https://github.com/facebook/docusaurus/pull/5546) docs: add unleash to showcase ([@ivarconr](https://github.com/ivarconr))\\n- [#5539](https://github.com/facebook/docusaurus/pull/5539) docs: improve escape pipe in Markdown tables ([@forresst](https://github.com/forresst))\\n- [#5486](https://github.com/facebook/docusaurus/pull/5486) docs: mention Netlify ignore build setting ([@slorber](https://github.com/slorber))\\n- [#5482](https://github.com/facebook/docusaurus/pull/5482) docs: update docusaurus-plugin-relative-paths description ([@ohkimur](https://github.com/ohkimur))\\n\\n## :house: Internal\\n\\n- `create-docusaurus`, `docusaurus-plugin-content-docs`\\n - [#5678](https://github.com/facebook/docusaurus/pull/5678) refactor(content-docs): refactor sidebars, Joi validation, generator rework, expose config types ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#5666](https://github.com/facebook/docusaurus/pull/5666) chore: upgrade Infima to alpha.34 ([@lex111](https://github.com/lex111))\\n - [#5639](https://github.com/facebook/docusaurus/pull/5639) misc: update base translation + remove extra char ([@lex111](https://github.com/lex111))\\n- Other\\n - [#5669](https://github.com/facebook/docusaurus/pull/5669) fix: allow ColorGenerator to parse colors with prefix `#` ([@Andrewnt219](https://github.com/Andrewnt219))\\n - [#5632](https://github.com/facebook/docusaurus/pull/5632) chore: prepare Algolia migration ([@slorber](https://github.com/slorber))\\n - [#5628](https://github.com/facebook/docusaurus/pull/5628) chore: fix warning after build ([@lex111](https://github.com/lex111))\\n - [#5573](https://github.com/facebook/docusaurus/pull/5573) misc: fix ungrammatical sentence about 5-min tutorial ([@hughlilly](https://github.com/hughlilly))\\n - [#5499](https://github.com/facebook/docusaurus/pull/5499) chore: set up CodeQL ([@zpao](https://github.com/zpao))\\n - [#5474](https://github.com/facebook/docusaurus/pull/5474) chore: remove beta.4 docs (already archived) ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-preset-bootstrap`, `docusaurus-theme-bootstrap`\\n - [#5634](https://github.com/facebook/docusaurus/pull/5634) chore: remove unused Bootstrap theme ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#5611](https://github.com/facebook/docusaurus/pull/5611) chore: upgrade Prettier + regenerate lock file ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-pwa`, `docusaurus`\\n - [#5609](https://github.com/facebook/docusaurus/pull/5609) chore: upgrade Terser-related dependencies ([@lex111](https://github.com/lex111))\\n- `docusaurus-cssnano-preset`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#5608](https://github.com/facebook/docusaurus/pull/5608) chore: upgrade dependencies ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#5605](https://github.com/facebook/docusaurus/pull/5605) refactor(core): enforce noImplicitAny ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-preset-classic`\\n - [#5603](https://github.com/facebook/docusaurus/pull/5603) fix(preset-classic): fix TS build issue ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-preset-classic`\\n - [#5561](https://github.com/facebook/docusaurus/pull/5561) refactor(plugin-google-gtag, plugin-google-analytics): migrate packages to TS ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`\\n - [#5579](https://github.com/facebook/docusaurus/pull/5579) refactor(preset-classic): migrate preset-classic to TypeScript ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-init`\\n - [#5484](https://github.com/facebook/docusaurus/pull/5484) chore: regenerate beta.6 examples + fix regen script ([@slorber](https://github.com/slorber))\\n\\n## Committers: 36\\n\\n- Aditya Kajla ([@akajla09](https://github.com/akajla09))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Ana Carolina ([@printf-ana](https://github.com/printf-ana))\\n- Andrew Nguyen ([@Andrewnt219](https://github.com/Andrewnt219))\\n- Bharat Middha ([@bmiddha](https://github.com/bmiddha))\\n- Chris Chinchilla ([@ChrisChinchilla](https://github.com/ChrisChinchilla))\\n- Daniel Costrasel ([@ohkimur](https://github.com/ohkimur))\\n- Darshan Gada ([@dr5hn](https://github.com/dr5hn))\\n- David Callizaya ([@caleeli](https://github.com/caleeli))\\n- Don ([@dsmmcken](https://github.com/dsmmcken))\\n- Ekaterina Mozheiko ([@EkaterinaMozheiko](https://github.com/EkaterinaMozheiko))\\n- Erick Zhao ([@erickzhao](https://github.com/erickzhao))\\n- Forresst ([@forresst](https://github.com/forresst))\\n- Gabriel T. Nardy ([@gtnardy](https://github.com/gtnardy))\\n- Hugh Lilly ([@hughlilly](https://github.com/hughlilly))\\n- Ivar Conradi \xd8sthus ([@ivarconr](https://github.com/ivarconr))\\n- Jason Bosco ([@jasonbosco](https://github.com/jasonbosco))\\n- Jeffrey Aven ([@jeffreyaven](https://github.com/jeffreyaven))\\n- Jordan Lee ([@jkhaui](https://github.com/jkhaui))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Kyriet ([@KyrietS](https://github.com/KyrietS))\\n- Mahdi Hamldar ([@MrTechHunter](https://github.com/MrTechHunter))\\n- Nathaniel Tucker ([@ntucker](https://github.com/ntucker))\\n- Palash Shrivastava ([@BattleOfPlassey](https://github.com/BattleOfPlassey))\\n- Paul O\u2019Shannessy ([@zpao](https://github.com/zpao))\\n- Robert Kingston ([@kingo55](https://github.com/kingo55))\\n- Stefan Norberg ([@stnor](https://github.com/stnor))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Vincent ([@vinckr](https://github.com/vinckr))\\n- Whirl ([@Whirl21](https://github.com/Whirl21))\\n- [@Dr-Electron](https://github.com/Dr-Electron)\\n- [@Shrugsy](https://github.com/Shrugsy)\\n- [@djamaile](https://github.com/djamaile)\\n- [@headline-design](https://github.com/headline-design)\\n- moonrailgun ([@moonrailgun](https://github.com/moonrailgun))\\n- swyx ([@sw-yx](https://github.com/sw-yx))"},{"id":"/2.0.0-beta.6","metadata":{"permalink":"/changelog/2.0.0-beta.6","source":"@site/changelog/source/2.0.0-beta.6.md","title":"2.0.0-beta.6","description":"New Feature","date":"2021-09-02T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Ali Saki","alias":"3alisaki","url":"https://github.com/3alisaki","imageURL":"https://github.com/3alisaki.png","key":"3alisaki","page":null},{"name":"Antony Messerli","alias":"antonym","url":"https://github.com/antonym","imageURL":"https://github.com/antonym.png","key":"antonym","page":null},{"name":"farshid","alias":"farshidinanloo","url":"https://github.com/farshidinanloo","imageURL":"https://github.com/farshidinanloo.png","key":"farshidinanloo","page":null},{"name":"Gabriel Csapo","alias":"gabrielcsapo","url":"https://github.com/gabrielcsapo","imageURL":"https://github.com/gabrielcsapo.png","key":"gabrielcsapo","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Daniel Costrasel","alias":"ohkimur","url":"https://github.com/ohkimur","imageURL":"https://github.com/ohkimur.png","key":"ohkimur","page":null},{"name":"Oscar Lorentzon","alias":"oscarlorentzon","url":"https://github.com/oscarlorentzon","imageURL":"https://github.com/oscarlorentzon.png","key":"oscarlorentzon","page":null},{"name":"Rohit Gohri","alias":"rohit-gohri","url":"https://github.com/rohit-gohri","imageURL":"https://github.com/rohit-gohri.png","key":"rohit-gohri","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-09-02T20:00","authors":["3alisaki","antonym","farshidinanloo","gabrielcsapo","Josh-Cena","lex111","ohkimur","oscarlorentzon","rohit-gohri","slorber"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.7","permalink":"/changelog/2.0.0-beta.7"},"nextItem":{"title":"2.0.0-beta.5","permalink":"/changelog/2.0.0-beta.5"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#5428](https://github.com/facebook/docusaurus/pull/5428) feat: adds blog archive route ([@gabrielcsapo](https://github.com/gabrielcsapo))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5462](https://github.com/facebook/docusaurus/pull/5462) feat: on back navigation, close mobile sidebar ([@slorber](https://github.com/slorber))\\n - [#5445](https://github.com/facebook/docusaurus/pull/5445) feat: Add docs-related stable classnames ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#5460](https://github.com/facebook/docusaurus/pull/5460) feat: infima 33 + navbar-sidebar close button ([@slorber](https://github.com/slorber))\\n - [#5442](https://github.com/facebook/docusaurus/pull/5442) feat(theme-classic): allow passing tab label and default value through TabItem ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#5454](https://github.com/facebook/docusaurus/pull/5454) feat: new docs options: versions.{badge,className} ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#5444](https://github.com/facebook/docusaurus/pull/5444) fix: fix some theme UI issues (blockquotes, navbar-sidebar font) with Infima alpha.32 ([@slorber](https://github.com/slorber))\\n - [#5431](https://github.com/facebook/docusaurus/pull/5431) fix: some beta.5 bugfixes ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#5437](https://github.com/facebook/docusaurus/pull/5437) fix: fix a few TS errors ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#5459](https://github.com/facebook/docusaurus/pull/5459) refactor(theme-classic): completely migrate package to TypeScript ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#5453](https://github.com/facebook/docusaurus/pull/5453) refactor: use SVG for closable button in announcement bar ([@lex111](https://github.com/lex111))\\n - [#5430](https://github.com/facebook/docusaurus/pull/5430) refactor: switch to Flexbox in announcement bar ([@lex111](https://github.com/lex111))\\n - [#5434](https://github.com/facebook/docusaurus/pull/5434) refactor: update Arabic and Persian translations ([@3alisaki](https://github.com/3alisaki))\\n - [#5410](https://github.com/facebook/docusaurus/pull/5410) refactor: add missing translations in fa.json ([@farshidinanloo](https://github.com/farshidinanloo))\\n\\n## :memo: Documentation\\n\\n- [#5471](https://github.com/facebook/docusaurus/pull/5471) docs: Add docusaurus-plugin-relative-paths ([@ohkimur](https://github.com/ohkimur))\\n- [#5464](https://github.com/facebook/docusaurus/pull/5464) docs: add mapillary-js to showcase ([@oscarlorentzon](https://github.com/oscarlorentzon))\\n- [#5433](https://github.com/facebook/docusaurus/pull/5433) docs: document doc tags + refinements ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#5435](https://github.com/facebook/docusaurus/pull/5435) docs: Add netboot.xyz to site showcase ([@antonym](https://github.com/antonym))\\n- [#5436](https://github.com/facebook/docusaurus/pull/5436) docs: add Redocusaurus in community plugin list ([@rohit-gohri](https://github.com/rohit-gohri))\\n\\n## :house: Internal\\n\\n- [#5455](https://github.com/facebook/docusaurus/pull/5455) fix: website bad version name in docusaurus.config.js ([@slorber](https://github.com/slorber))\\n\\n## Committers: 10\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Ali Saki ([@3alisaki](https://github.com/3alisaki))\\n- Antony Messerli ([@antonym](https://github.com/antonym))\\n- Daniel Costrasel ([@ohkimur](https://github.com/ohkimur))\\n- Gabriel Csapo ([@gabrielcsapo](https://github.com/gabrielcsapo))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Oscar Lorentzon ([@oscarlorentzon](https://github.com/oscarlorentzon))\\n- Rohit Gohri ([@rohit-gohri](https://github.com/rohit-gohri))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- farshid ([@farshidinanloo](https://github.com/farshidinanloo))"},{"id":"/2.0.0-beta.5","metadata":{"permalink":"/changelog/2.0.0-beta.5","source":"@site/changelog/source/2.0.0-beta.5.md","title":"2.0.0-beta.5","description":"New Feature","date":"2021-08-26T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Palash Shrivastava","alias":"BattleOfPlassey","url":"https://github.com/BattleOfPlassey","imageURL":"https://github.com/BattleOfPlassey.png","key":"BattleOfPlassey","page":null},{"name":"David Seal","alias":"dbseal","url":"https://github.com/dbseal","imageURL":"https://github.com/dbseal.png","key":"dbseal","page":null},{"name":"Deepak Prabhakara","alias":"deepakprabhakara","url":"https://github.com/deepakprabhakara","imageURL":"https://github.com/deepakprabhakara.png","key":"deepakprabhakara","page":null},{"name":"Erick Zhao","alias":"erickzhao","url":"https://github.com/erickzhao","imageURL":"https://github.com/erickzhao.png","key":"erickzhao","page":null},{"name":"Federico Aloi","alias":"faloi","url":"https://github.com/faloi","imageURL":"https://github.com/faloi.png","key":"faloi","page":null},{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},{"name":"Fouad Matin","alias":"fouad","url":"https://github.com/fouad","imageURL":"https://github.com/fouad.png","key":"fouad","page":null},{"name":"Julien Neuhart","alias":"gulien","url":"https://github.com/gulien","imageURL":"https://github.com/gulien.png","key":"gulien","page":null},{"name":"Hamza Hamidi","alias":"hamzahamidi","url":"https://github.com/hamzahamidi","imageURL":"https://github.com/hamzahamidi.png","key":"hamzahamidi","page":null},{"name":"HaochenQ","alias":"HaochenQ","url":"https://github.com/HaochenQ","imageURL":"https://github.com/HaochenQ.png","key":"HaochenQ","page":null},{"name":"Dmitry Zhifarsky","alias":"incendial","url":"https://github.com/incendial","imageURL":"https://github.com/incendial.png","key":"incendial","page":null},{"name":"Isaac Philip","alias":"isaac-philip","url":"https://github.com/isaac-philip","imageURL":"https://github.com/isaac-philip.png","key":"isaac-philip","page":null},{"name":"Yan Ivan Evdokimov","alias":"jansivans","url":"https://github.com/jansivans","imageURL":"https://github.com/jansivans.png","key":"jansivans","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Jonny Burger","alias":"JonnyBurger","url":"https://github.com/JonnyBurger","imageURL":"https://github.com/JonnyBurger.png","key":"JonnyBurger","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Massoud Maboudi","alias":"massoudmaboudi","url":"https://github.com/massoudmaboudi","imageURL":"https://github.com/massoudmaboudi.png","key":"massoudmaboudi","page":null},{"name":"Marko Saric","alias":"metmarkosaric","url":"https://github.com/metmarkosaric","imageURL":"https://github.com/metmarkosaric.png","key":"metmarkosaric","page":null},{"name":"Michal S\xe4nger","alias":"michalsanger","url":"https://github.com/michalsanger","imageURL":"https://github.com/michalsanger.png","key":"michalsanger","page":null},{"name":"Garry","alias":"neaped","url":"https://github.com/neaped","imageURL":"https://github.com/neaped.png","key":"neaped","page":null},{"name":"Pierre-Gilles Leymarie","alias":"Pierre-Gilles","url":"https://github.com/Pierre-Gilles","imageURL":"https://github.com/Pierre-Gilles.png","key":"Pierre-Gilles","page":null},{"name":"Sam Wall","alias":"sjwall","url":"https://github.com/sjwall","imageURL":"https://github.com/sjwall.png","key":"sjwall","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tunghsiao Liu","alias":"sparanoid","url":"https://github.com/sparanoid","imageURL":"https://github.com/sparanoid.png","key":"sparanoid","page":null},{"name":"wan-nyan-wan","alias":"wan-nyan-wan","url":"https://github.com/wan-nyan-wan","imageURL":"https://github.com/wan-nyan-wan.png","key":"wan-nyan-wan","page":null},{"name":"Paul O\u2019Shannessy","alias":"zpao","url":"https://github.com/zpao","imageURL":"https://github.com/zpao.png","key":"zpao","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-08-26T20:00","authors":["BattleOfPlassey","dbseal","deepakprabhakara","erickzhao","faloi","forresst","fouad","gulien","hamzahamidi","HaochenQ","incendial","isaac-philip","jansivans","johnnyreilly","JonnyBurger","Josh-Cena","lex111","massoudmaboudi","metmarkosaric","michalsanger","neaped","Pierre-Gilles","sjwall","slorber","sparanoid","wan-nyan-wan","zpao"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.6","permalink":"/changelog/2.0.0-beta.6"},"nextItem":{"title":"2.0.0-beta.4","permalink":"/changelog/2.0.0-beta.4"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-utils-validation`\\n - [#5396](https://github.com/facebook/docusaurus/pull/5396) feat(plugin-blog): multi-authors support + authors.yml global configuration ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#5371](https://github.com/facebook/docusaurus/pull/5371) feat: make blog config options and navbar versions dropdown label translatable ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5375](https://github.com/facebook/docusaurus/pull/5375) feat: add metatags support for seo / blogposts #5373 ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus-utils`\\n - [#3646](https://github.com/facebook/docusaurus/pull/3646) feat: doc tags (same as blog tags) ([@isaac-philip](https://github.com/isaac-philip))\\n- `docusaurus-plugin-content-blog`\\n - [#5354](https://github.com/facebook/docusaurus/pull/5354) feat(plugin-blog): allow `\'ALL\'` as `postsPerPage` option value ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#5330](https://github.com/facebook/docusaurus/pull/5330) feat: Markdown page-specific head metadatas ([@slorber](https://github.com/slorber))\\n - [#5322](https://github.com/facebook/docusaurus/pull/5322) feat: structured data for blog posts ([@johnnyreilly](https://github.com/johnnyreilly))\\n - [#5314](https://github.com/facebook/docusaurus/pull/5314) feat(v2): add cs (Czech) translations for docusaurus-theme-classic ([@michalsanger](https://github.com/michalsanger))\\n- `docusaurus-init`\\n - [#5233](https://github.com/facebook/docusaurus/pull/5233) feat: new init template classic-typescript ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#5309](https://github.com/facebook/docusaurus/pull/5309) feat: blog posts support /YYYY/MM/DD/blog-post/index.md pattern + blog frontmatter can reference relative images ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus`\\n - [#5299](https://github.com/facebook/docusaurus/pull/5299) feat: mdx loader fallback, allow importing mdx docs from anywhere ([@slorber](https://github.com/slorber))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus-utils`\\n - [#3646](https://github.com/facebook/docusaurus/pull/3646) feat: doc tags (same as blog tags) ([@isaac-philip](https://github.com/isaac-philip))\\n- `docusaurus-init`, `docusaurus-migrate`, `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus`\\n - [#5345](https://github.com/facebook/docusaurus/pull/5345) refactor: rename Git master branch to main ([@zpao](https://github.com/zpao))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-types`, `docusaurus`\\n - [#5349](https://github.com/facebook/docusaurus/pull/5349) refactor(core): replace useDocusaurusContext().isClient by useIsBrowser() ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#5264](https://github.com/facebook/docusaurus/pull/5264) fix: apply proper class for active doc item on mobiles + avoid duplicated classes ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#5425](https://github.com/facebook/docusaurus/pull/5425) fix: toc does not highlight clicked anchor + use scroll-margin-top ([@slorber](https://github.com/slorber))\\n - [#5424](https://github.com/facebook/docusaurus/pull/5424) refactor: make dynamic authors layout via CSS only ([@lex111](https://github.com/lex111))\\n - [#5422](https://github.com/facebook/docusaurus/pull/5422) fix: make tags wrapping properly ([@lex111](https://github.com/lex111))\\n - [#5419](https://github.com/facebook/docusaurus/pull/5419) fix: various fixes back-to-top button ([@lex111](https://github.com/lex111))\\n - [#5361](https://github.com/facebook/docusaurus/pull/5361) fix: refactor TOC highlighting + handle edge cases ([@slorber](https://github.com/slorber))\\n - [#5357](https://github.com/facebook/docusaurus/pull/5357) fix: code blocks should scroll in RTL direction ([@slorber](https://github.com/slorber))\\n - [#5346](https://github.com/facebook/docusaurus/pull/5346) fix: author/image adjustments in BlogPosting schema ([@lex111](https://github.com/lex111))\\n - [#5240](https://github.com/facebook/docusaurus/pull/5240) fix: remove top margin only from directly first element ([@lex111](https://github.com/lex111))\\n - [#5317](https://github.com/facebook/docusaurus/pull/5317) fix: make proper highlighting doc link if no sidebar ([@hamzahamidi](https://github.com/hamzahamidi))\\n - [#5316](https://github.com/facebook/docusaurus/pull/5316) fix: avoid extra default active class on doc sidebar item ([@lex111](https://github.com/lex111))\\n - [#5319](https://github.com/facebook/docusaurus/pull/5319) fix: unbreak highlighting regular navbar links ([@lex111](https://github.com/lex111))\\n - [#5264](https://github.com/facebook/docusaurus/pull/5264) fix: apply proper class for active doc item on mobiles + avoid duplicated classes ([@lex111](https://github.com/lex111))\\n - [#5275](https://github.com/facebook/docusaurus/pull/5275) fix: improve spanish translation ([@faloi](https://github.com/faloi))\\n - [#5262](https://github.com/facebook/docusaurus/pull/5262) fix: show secondary menu if even there is no main one ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#5426](https://github.com/facebook/docusaurus/pull/5426) fix: Make update-notifier fail-safe if no permission to read configStore ([@slorber](https://github.com/slorber))\\n - [#5398](https://github.com/facebook/docusaurus/pull/5398) fix: fix write-translations warning for theme-common translations ([@slorber](https://github.com/slorber))\\n - [#5381](https://github.com/facebook/docusaurus/pull/5381) fix: canary releases should ignore notifier updates ([@slorber](https://github.com/slorber))\\n - [#5339](https://github.com/facebook/docusaurus/pull/5339) fix: add admonitions support to mdx partials loaded through the fallback mdx loader ([@slorber](https://github.com/slorber))\\n - [#5311](https://github.com/facebook/docusaurus/pull/5311) fix: docusaurus serve logs wrong port if 3000 is taken ([@wan-nyan-wan](https://github.com/wan-nyan-wan))\\n - [#5308](https://github.com/facebook/docusaurus/pull/5308) fix: remove unexpected whitespaces in CSS bundle ([@lex111](https://github.com/lex111))\\n - [#5268](https://github.com/facebook/docusaurus/pull/5268) fix: fix wrong regex that removes extra letters from swizzled component names ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Other\\n - [#5399](https://github.com/facebook/docusaurus/pull/5399) fix: fix site unlocalized 404 pages + aggressive Netlify /assets caching ([@slorber](https://github.com/slorber))\\n - [#5249](https://github.com/facebook/docusaurus/pull/5249) fix: fix Crowdin mapping for pt-BR ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#5383](https://github.com/facebook/docusaurus/pull/5383) fix: fix Locale Dropdown RTL icon + Webpack aliases ordering ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`\\n - [#5370](https://github.com/facebook/docusaurus/pull/5370) fix(init): fix links to feature images in classic-typescript ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-common`\\n - [#5364](https://github.com/facebook/docusaurus/pull/5364) fix: unbreak Details component ([@lex111](https://github.com/lex111))\\n - [#5297](https://github.com/facebook/docusaurus/pull/5297) fix: fix constant value import ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-ideal-image`\\n - [#5334](https://github.com/facebook/docusaurus/pull/5334) fix: plugin ideal-image should generate filename with a hash even in development ([@Pierre-Gilles](https://github.com/Pierre-Gilles))\\n- `docusaurus-theme-search-algolia`\\n - [#5290](https://github.com/facebook/docusaurus/pull/5290) fix: make successful build if missing favicon ([@lex111](https://github.com/lex111))\\n- `docusaurus-utils`\\n - [#5270](https://github.com/facebook/docusaurus/pull/5270) fix: ability to link md files with relative paths when paths contain space ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-types`\\n - [#5261](https://github.com/facebook/docusaurus/pull/5261) fix: fix various TS errors ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-common`\\n - [#5402](https://github.com/facebook/docusaurus/pull/5402) refactor: improve styles of Details component ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#5386](https://github.com/facebook/docusaurus/pull/5386) refactor: various tags improvements ([@lex111](https://github.com/lex111))\\n - [#5377](https://github.com/facebook/docusaurus/pull/5377) refactor: make main heading font size changeable via CSS var ([@lex111](https://github.com/lex111))\\n - [#5355](https://github.com/facebook/docusaurus/pull/5355) refactor: add blog microdata in markup instead of use JSON-LD ([@lex111](https://github.com/lex111))\\n - [#5365](https://github.com/facebook/docusaurus/pull/5365) refactor(v2): improved Farsi default translations ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n - [#5280](https://github.com/facebook/docusaurus/pull/5280) refactor(v2): improved Farsi default translations ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n- Other\\n - [#5389](https://github.com/facebook/docusaurus/pull/5389) refactor: clean Canny integration + rename \'Feedback\' to \'Feature Requests\' + improve TS doc page ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5242](https://github.com/facebook/docusaurus/pull/5242) refactor: reduce ESLint warnings / better typing ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :memo: Documentation\\n\\n- [#5423](https://github.com/facebook/docusaurus/pull/5423) docs: clarify using custom attributes for navbar link ([@lex111](https://github.com/lex111))\\n- [#5421](https://github.com/facebook/docusaurus/pull/5421) docs: add Indent to showcase ([@fouad](https://github.com/fouad))\\n- [#5405](https://github.com/facebook/docusaurus/pull/5405) docs: add Gotenberg to showcase ([@gulien](https://github.com/gulien))\\n- [#5406](https://github.com/facebook/docusaurus/pull/5406) docs: specify proper min Node.js version for Travis CI example ([@BattleOfPlassey](https://github.com/BattleOfPlassey))\\n- [#5390](https://github.com/facebook/docusaurus/pull/5390) docs(v2): showcase BoxyHQ ([@deepakprabhakara](https://github.com/deepakprabhakara))\\n- [#5376](https://github.com/facebook/docusaurus/pull/5376) docs(v2): Update Datagit site to showcase page ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n- [#5372](https://github.com/facebook/docusaurus/pull/5372) docs: remove docusaurus-preset-name from preset doc ([@slorber](https://github.com/slorber))\\n- [#5366](https://github.com/facebook/docusaurus/pull/5366) docs: Add drayman to showcase ([@jansivans](https://github.com/jansivans))\\n- [#5369](https://github.com/facebook/docusaurus/pull/5369) docs(v2): Add Nocalhost website to showcase page ([@neaped](https://github.com/neaped))\\n- [#5351](https://github.com/facebook/docusaurus/pull/5351) docs(website): bump announcement bar + include Twitter link + refactor site colors ([@slorber](https://github.com/slorber))\\n- [#5352](https://github.com/facebook/docusaurus/pull/5352) docs: update `docusaurus-plugin-sass` instructions ([@erickzhao](https://github.com/erickzhao))\\n- [#5332](https://github.com/facebook/docusaurus/pull/5332) docs(v2): add mdx-mermaid to resources ([@sjwall](https://github.com/sjwall))\\n- [#5331](https://github.com/facebook/docusaurus/pull/5331) docs: Changelog page should display TOC with releases ([@slorber](https://github.com/slorber))\\n- [#5329](https://github.com/facebook/docusaurus/pull/5329) docs: add Haochen to showcase page ([@HaochenQ](https://github.com/HaochenQ))\\n- [#5313](https://github.com/facebook/docusaurus/pull/5313) docs: try to make plugin/preset config less confusing ([@slorber](https://github.com/slorber))\\n- [#5296](https://github.com/facebook/docusaurus/pull/5296) docs: update canary doc ([@slorber](https://github.com/slorber))\\n- [#5219](https://github.com/facebook/docusaurus/pull/5219) docs: refactor API documentation ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#5271](https://github.com/facebook/docusaurus/pull/5271) Add Plausible Analytics docs to showcase page ([@metmarkosaric](https://github.com/metmarkosaric))\\n- [#5283](https://github.com/facebook/docusaurus/pull/5283) docs: fix broken link to syncing tab choices section ([@lex111](https://github.com/lex111))\\n- [#5259](https://github.com/facebook/docusaurus/pull/5259) docs(v2): update Remotion website picture in showcase ([@JonnyBurger](https://github.com/JonnyBurger))\\n- [#5260](https://github.com/facebook/docusaurus/pull/5260) docs(v2): add Dart Code Metrics site to showcase page ([@incendial](https://github.com/incendial))\\n- [#5253](https://github.com/facebook/docusaurus/pull/5253) docs: Fix typo `2-resources.md` ([@forresst](https://github.com/forresst))\\n- [#5248](https://github.com/facebook/docusaurus/pull/5248) docs(v2): add docusaurus-prince-pdf to resources ([@sparanoid](https://github.com/sparanoid))\\n- [#5239](https://github.com/facebook/docusaurus/pull/5239) docs(v2): Add unmand site to showcase page ([@dbseal](https://github.com/dbseal))\\n\\n## :house: Internal\\n\\n- Other\\n - [#5397](https://github.com/facebook/docusaurus/pull/5397) chore: rename docusaurus-2-website package + refactor scripts ([@slorber](https://github.com/slorber))\\n - [#5342](https://github.com/facebook/docusaurus/pull/5342) chore: fix e2e yarn berry tests ([@slorber](https://github.com/slorber))\\n - [#5328](https://github.com/facebook/docusaurus/pull/5328) refactor(website): convert website to TypeScript ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5336](https://github.com/facebook/docusaurus/pull/5336) chore: bump url-parse from 1.5.1 to 1.5.3 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#5312](https://github.com/facebook/docusaurus/pull/5312) fix: fix changelog page mdx import for i18n ([@slorber](https://github.com/slorber))\\n - [#5295](https://github.com/facebook/docusaurus/pull/5295) fix: fix canary release versions ([@slorber](https://github.com/slorber))\\n - [#5285](https://github.com/facebook/docusaurus/pull/5285) fix: fix canary version names ([@slorber](https://github.com/slorber))\\n - [#5269](https://github.com/facebook/docusaurus/pull/5269) misc: enable pt-BR + archive older versions ([@slorber](https://github.com/slorber))\\n - [#5237](https://github.com/facebook/docusaurus/pull/5237) chore: enable pt-BR i18n locale on staging ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-migrate`, `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus`\\n - [#5345](https://github.com/facebook/docusaurus/pull/5345) refactor: rename Git master branch to main ([@zpao](https://github.com/zpao))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5341](https://github.com/facebook/docusaurus/pull/5341) polish: bind key listener to light/dark toggle + a11y lint fixes ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus`\\n - [#5347](https://github.com/facebook/docusaurus/pull/5347) chore(mdx-loader): migrate package to TypeScript ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus`\\n - [#5335](https://github.com/facebook/docusaurus/pull/5335) refactor: better typing + remove unnecessary eslint-disable ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`\\n - [#5338](https://github.com/facebook/docusaurus/pull/5338) refactor(plugin-blog): style improvements in blogUtils ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#5256](https://github.com/facebook/docusaurus/pull/5256) chore: upgrade Infima to alpha.30 ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`\\n - [#5315](https://github.com/facebook/docusaurus/pull/5315) refactor(init): share common files between templates ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5284](https://github.com/facebook/docusaurus/pull/5284) refactor: properly type docs version ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :running: Performance\\n\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-types`, `docusaurus`\\n - [#5349](https://github.com/facebook/docusaurus/pull/5349) refactor(core): replace useDocusaurusContext().isClient by useIsBrowser() ([@slorber](https://github.com/slorber))\\n\\n## Committers: 27\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- David Seal ([@dbseal](https://github.com/dbseal))\\n- Deepak Prabhakara ([@deepakprabhakara](https://github.com/deepakprabhakara))\\n- Dmitry Zhifarsky ([@incendial](https://github.com/incendial))\\n- Erick Zhao ([@erickzhao](https://github.com/erickzhao))\\n- Federico Aloi ([@faloi](https://github.com/faloi))\\n- Forresst ([@forresst](https://github.com/forresst))\\n- Fouad Matin ([@fouad](https://github.com/fouad))\\n- Garry ([@neaped](https://github.com/neaped))\\n- Hamza Hamidi ([@hamzahamidi](https://github.com/hamzahamidi))\\n- Isaac Philip ([@isaac-philip](https://github.com/isaac-philip))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Jonny Burger ([@JonnyBurger](https://github.com/JonnyBurger))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Julien Neuhart ([@gulien](https://github.com/gulien))\\n- Marko Saric ([@metmarkosaric](https://github.com/metmarkosaric))\\n- Massoud Maboudi ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n- Michal S\xe4nger ([@michalsanger](https://github.com/michalsanger))\\n- Palash Shrivastava ([@BattleOfPlassey](https://github.com/BattleOfPlassey))\\n- Paul O\u2019Shannessy ([@zpao](https://github.com/zpao))\\n- Pierre-Gilles Leymarie ([@Pierre-Gilles](https://github.com/Pierre-Gilles))\\n- Sam Wall ([@sjwall](https://github.com/sjwall))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tunghsiao Liu ([@sparanoid](https://github.com/sparanoid))\\n- Yan Ivan Evdokimov ([@jansivans](https://github.com/jansivans))\\n- [@HaochenQ](https://github.com/HaochenQ)\\n- wan-nyan-wan ([@wan-nyan-wan](https://github.com/wan-nyan-wan))"},{"id":"/2.0.0-beta.4","metadata":{"permalink":"/changelog/2.0.0-beta.4","source":"@site/changelog/source/2.0.0-beta.4.md","title":"2.0.0-beta.4","description":"New Feature","date":"2021-07-28T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"antonvasilev52","alias":"antonvasilev52","url":"https://github.com/antonvasilev52","imageURL":"https://github.com/antonvasilev52.png","key":"antonvasilev52","page":null},{"name":"Arnaud Jeannin","alias":"arnaudjnn","url":"https://github.com/arnaudjnn","imageURL":"https://github.com/arnaudjnn.png","key":"arnaudjnn","page":null},{"name":"Christian Flach","alias":"cmfcmf","url":"https://github.com/cmfcmf","imageURL":"https://github.com/cmfcmf.png","key":"cmfcmf","page":null},{"name":"Arijit Kundu","alias":"covalentbond","url":"https://github.com/covalentbond","imageURL":"https://github.com/covalentbond.png","key":"covalentbond","page":null},{"name":"David Zhao","alias":"davidzhao","url":"https://github.com/davidzhao","imageURL":"https://github.com/davidzhao.png","key":"davidzhao","page":null},{"name":"David Barrat","alias":"dbrrt","url":"https://github.com/dbrrt","imageURL":"https://github.com/dbrrt.png","key":"dbrrt","page":null},{"name":"Dan Gebhardt","alias":"dgeb","url":"https://github.com/dgeb","imageURL":"https://github.com/dgeb.png","key":"dgeb","page":null},{"name":"Fran\xe7ois Massot","alias":"fmassot","url":"https://github.com/fmassot","imageURL":"https://github.com/fmassot.png","key":"fmassot","page":null},{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Lennart Koopmann","alias":"lennartkoopmann","url":"https://github.com/lennartkoopmann","imageURL":"https://github.com/lennartkoopmann.png","key":"lennartkoopmann","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Lukas Bach","alias":"lukasbach","url":"https://github.com/lukasbach","imageURL":"https://github.com/lukasbach.png","key":"lukasbach","page":null},{"name":"Mar\xe7al Junior","alias":"marssaljr","url":"https://github.com/marssaljr","imageURL":"https://github.com/marssaljr.png","key":"marssaljr","page":null},{"name":"Massoud Maboudi","alias":"massoudmaboudi","url":"https://github.com/massoudmaboudi","imageURL":"https://github.com/massoudmaboudi.png","key":"massoudmaboudi","page":null},{"name":"Michel Weststrate","alias":"mweststrate","url":"https://github.com/mweststrate","imageURL":"https://github.com/mweststrate.png","key":"mweststrate","page":null},{"name":"Nazar","alias":"NazarStreletskyi","url":"https://github.com/NazarStreletskyi","imageURL":"https://github.com/NazarStreletskyi.png","key":"NazarStreletskyi","page":null},{"name":"nirtamir2","alias":"nirtamir2","url":"https://github.com/nirtamir2","imageURL":"https://github.com/nirtamir2.png","key":"nirtamir2","page":null},{"name":"Przemys\u0142aw Chojecki","alias":"pcho","url":"https://github.com/pcho","imageURL":"https://github.com/pcho.png","key":"pcho","page":null},{"name":"Philipp Muens","alias":"pmuens","url":"https://github.com/pmuens","imageURL":"https://github.com/pmuens.png","key":"pmuens","page":null},{"name":"Pranab Das","alias":"pranabdas","url":"https://github.com/pranabdas","imageURL":"https://github.com/pranabdas.png","key":"pranabdas","page":null},{"name":"Raz Luvaton","alias":"rluvaton","url":"https://github.com/rluvaton","imageURL":"https://github.com/rluvaton.png","key":"rluvaton","page":null},{"name":"Sergio Moreno","alias":"semoal","url":"https://github.com/semoal","imageURL":"https://github.com/semoal.png","key":"semoal","page":null},{"name":"Cl\xe9ment Vannicatte","alias":"shortcuts","url":"https://github.com/shortcuts","imageURL":"https://github.com/shortcuts.png","key":"shortcuts","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Taylor Reece","alias":"taylorreece","url":"https://github.com/taylorreece","imageURL":"https://github.com/taylorreece.png","key":"taylorreece","page":null},{"name":"tohid nateghi","alias":"tohidnateghi","url":"https://github.com/tohidnateghi","imageURL":"https://github.com/tohidnateghi.png","key":"tohidnateghi","page":null},{"name":"\u9648\u6768\u6587","alias":"wenerme","url":"https://github.com/wenerme","imageURL":"https://github.com/wenerme.png","key":"wenerme","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-07-28T20:00","authors":["antonvasilev52","arnaudjnn","cmfcmf","covalentbond","davidzhao","dbrrt","dgeb","fmassot","forresst","Josh-Cena","lennartkoopmann","lex111","lukasbach","marssaljr","massoudmaboudi","mweststrate","NazarStreletskyi","nirtamir2","pcho","pmuens","pranabdas","rluvaton","semoal","shortcuts","slorber","taylorreece","tohidnateghi","wenerme"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.5","permalink":"/changelog/2.0.0-beta.5"},"nextItem":{"title":"2.0.0-beta.3","permalink":"/changelog/2.0.0-beta.3"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#4912](https://github.com/facebook/docusaurus/pull/4912) feat(v2): add back to top button ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`\\n - [#5235](https://github.com/facebook/docusaurus/pull/5235) feat: docusaurus.new + improve StackBlitz playground integration ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5203](https://github.com/facebook/docusaurus/pull/5203) feat: docs plugin options sidebarCollapsible + sidebarCollapsed ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#5207](https://github.com/facebook/docusaurus/pull/5207) feat: multiple playground choices ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus`\\n - [#4273](https://github.com/facebook/docusaurus/pull/4273) feat(v2): redesign mobile UX: inline TOC + doc sidebar in main menu ([@lex111](https://github.com/lex111))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5203](https://github.com/facebook/docusaurus/pull/5203) feat: docs plugin options sidebarCollapsible + sidebarCollapsed ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils`, `docusaurus`\\n - [#5173](https://github.com/facebook/docusaurus/pull/5173) feat(v2): generalize usage of \\\\_ prefix convention to exclude content files/folders ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus`\\n - [#4273](https://github.com/facebook/docusaurus/pull/4273) feat(v2): redesign mobile UX: inline TOC + doc sidebar in main menu ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-blog`\\n - [#5232](https://github.com/facebook/docusaurus/pull/5232) fix(v2): blog should parse frontMatter.date even when time is present ([@wenerme](https://github.com/wenerme))\\n- `docusaurus-theme-classic`\\n - [#5230](https://github.com/facebook/docusaurus/pull/5230) fix(v2): remove top margin from first element inside doc article ([@lex111](https://github.com/lex111))\\n - [#5229](https://github.com/facebook/docusaurus/pull/5229) fix(v2): keep mobile TOC after hydration ([@lex111](https://github.com/lex111))\\n - [#5179](https://github.com/facebook/docusaurus/pull/5179) fix(v2): wrap dropdown item to missing li element + remove extra attributes ([@lex111](https://github.com/lex111))\\n - [#5183](https://github.com/facebook/docusaurus/pull/5183) fix(v2): pass all props to CodeBlock component ([@lex111](https://github.com/lex111))\\n - [#5176](https://github.com/facebook/docusaurus/pull/5176) fix(v2): Fix type for navlink label ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5172](https://github.com/facebook/docusaurus/pull/5172) fix(v2): hide mobile collapsible doc toc if no headings ([@slorber](https://github.com/slorber))\\n - [#5161](https://github.com/facebook/docusaurus/pull/5161) fix(v2): disable default behavior when click on collapsible item ([@lex111](https://github.com/lex111))\\n - [#5151](https://github.com/facebook/docusaurus/pull/5151) fix(v2): add missing french translations for mobile ([@forresst](https://github.com/forresst))\\n - [#5104](https://github.com/facebook/docusaurus/pull/5104) fix(v2): fix SkipToContent programmatic focus when updating querystring ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-search-algolia`\\n - [#5214](https://github.com/facebook/docusaurus/pull/5214) fix: upgrade Docsearch to avoid layout shift ([@slorber](https://github.com/slorber))\\n - [#5135](https://github.com/facebook/docusaurus/pull/5135) chore(v2): update @docsearch/react ([@shortcuts](https://github.com/shortcuts))\\n- `docusaurus`\\n - [#5204](https://github.com/facebook/docusaurus/pull/5204) fix: cli upgrade helper fail when no `package.dependencies` ([@mweststrate](https://github.com/mweststrate))\\n - [#5164](https://github.com/facebook/docusaurus/pull/5164) fix(v2): revert webpack.resolve.symlinks = false ([@slorber](https://github.com/slorber))\\n - [#5126](https://github.com/facebook/docusaurus/pull/5126) fix(v2): remove webpackConfig.resolve.symlinks: true ([@slorber](https://github.com/slorber))\\n - [#5110](https://github.com/facebook/docusaurus/pull/5110) fix(v2): Fix update-notifier not run at first and not notifying consistently ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils`\\n - [#5199](https://github.com/facebook/docusaurus/pull/5199) fix(v2): Fix MDX docs being considered as partials when siteDir match the \\\\_ prefix convention ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-pwa`\\n - [#5185](https://github.com/facebook/docusaurus/pull/5185) fix(v2): add base URL to content attribute of head tags PWA ([@lex111](https://github.com/lex111))\\n - [#5169](https://github.com/facebook/docusaurus/pull/5169) refactor(v2): automatically add base URL to PWA head tags ([@lex111](https://github.com/lex111))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils`, `docusaurus`\\n - [#5173](https://github.com/facebook/docusaurus/pull/5173) feat(v2): generalize usage of \\\\_ prefix convention to exclude content files/folders ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-common`\\n - [#5159](https://github.com/facebook/docusaurus/pull/5159) fix(v2): Fix Collapsible hydration layout shift ([@slorber](https://github.com/slorber))\\n - [#5146](https://github.com/facebook/docusaurus/pull/5146) fix(v2): improve work of useCollapsible hook with multiple clicks ([@lex111](https://github.com/lex111))\\n- `docusaurus-types`\\n - [#5129](https://github.com/facebook/docusaurus/pull/5129) fix(v2): fix d.ts lint error ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5116](https://github.com/facebook/docusaurus/pull/5116) fix(v2): introduce useCollapsible to fix collapsible animation perf issues ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-client-redirects`\\n - [#5102](https://github.com/facebook/docusaurus/pull/5102) fix(v2): fix redirect plugin when trailingSlash=false for .html extension ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#5228](https://github.com/facebook/docusaurus/pull/5228) refactor(v2): fix small typo in Russian translation ([@antonvasilev52](https://github.com/antonvasilev52))\\n - [#5222](https://github.com/facebook/docusaurus/pull/5222) chore(v2): update Infima to alpha 28 ([@lex111](https://github.com/lex111))\\n - [#5224](https://github.com/facebook/docusaurus/pull/5224) refactor(v2): update Russian translation ([@lex111](https://github.com/lex111))\\n - [#5217](https://github.com/facebook/docusaurus/pull/5217) refactor(v2): improved Farsi default translations ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n - [#5171](https://github.com/facebook/docusaurus/pull/5171) refactor(v2): increase content area if blog sidebar is off ([@lex111](https://github.com/lex111))\\n - [#5154](https://github.com/facebook/docusaurus/pull/5154) refactor(v2): Hindi translation for semantic doc sidebar ([@pranabdas](https://github.com/pranabdas))\\n - [#5145](https://github.com/facebook/docusaurus/pull/5145) refactor(v2): use Collapsible for mobile nav items ([@lex111](https://github.com/lex111))\\n - [#5138](https://github.com/facebook/docusaurus/pull/5138) refactor(v2): Update Hebrew translations ([@nirtamir2](https://github.com/nirtamir2))\\n - [#5140](https://github.com/facebook/docusaurus/pull/5140) refactor(v2): bn translation improvements for semantic doc sidebar ([@pranabdas](https://github.com/pranabdas))\\n - [#5139](https://github.com/facebook/docusaurus/pull/5139) feat(v2): complete Chinese code translations ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5118](https://github.com/facebook/docusaurus/pull/5118) refactor(v2): pt-BR translations improve semantic doc sidebar and tags ([@marssaljr](https://github.com/marssaljr))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#5215](https://github.com/facebook/docusaurus/pull/5215) refactor: make code block shadows consistent with new admonitions ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`\\n - [#5193](https://github.com/facebook/docusaurus/pull/5193) refactor: redesign admonitions/callouts/quotes ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5168](https://github.com/facebook/docusaurus/pull/5168) refactor(v2): mobile dropdown navbar: expand when subitem become active ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- [#5236](https://github.com/facebook/docusaurus/pull/5236) docs: add Verdaccio.org to showcase ([@semoal](https://github.com/semoal))\\n- [#5218](https://github.com/facebook/docusaurus/pull/5218) docs(v2): remove vector.dev from showcase ([@lex111](https://github.com/lex111))\\n- [#5212](https://github.com/facebook/docusaurus/pull/5212) docs: mention Link can be used for external links ([@slorber](https://github.com/slorber))\\n- [#5210](https://github.com/facebook/docusaurus/pull/5210) docs(v2): Elaboration of raw-loader in markdown react component ([@pranabdas](https://github.com/pranabdas))\\n- [#5191](https://github.com/facebook/docusaurus/pull/5191) docs: user should restart docusaurus after adding prism additionalLanguage ([@tohidnateghi](https://github.com/tohidnateghi))\\n- [#5175](https://github.com/facebook/docusaurus/pull/5175) docs: update API docs on navbar behavior ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#5189](https://github.com/facebook/docusaurus/pull/5189) docs(v2): Add orbitjs site to showcase page ([@dgeb](https://github.com/dgeb))\\n- [#5177](https://github.com/facebook/docusaurus/pull/5177) docs(v2): add easyjwt to users ([@dbrrt](https://github.com/dbrrt))\\n- [#5187](https://github.com/facebook/docusaurus/pull/5187) docs(v2): Add quickwit to user.js and png. ([@fmassot](https://github.com/fmassot))\\n- [#5184](https://github.com/facebook/docusaurus/pull/5184) docs(v2): Add react-complex-tree to users.js ([@lukasbach](https://github.com/lukasbach))\\n- [#5178](https://github.com/facebook/docusaurus/pull/5178) docs(v2): Update tutorial link ([@slorber](https://github.com/slorber))\\n- [#5158](https://github.com/facebook/docusaurus/pull/5158) docs(v2): Update deploy with Qovery docs for V2 ([@arnaudjnn](https://github.com/arnaudjnn))\\n- [#5152](https://github.com/facebook/docusaurus/pull/5152) docs(v2): Indent code example to improve readability ([@rluvaton](https://github.com/rluvaton))\\n- [#5133](https://github.com/facebook/docusaurus/pull/5133) docs(v2): GIF format is not suported ([@NazarStreletskyi](https://github.com/NazarStreletskyi))\\n- [#5117](https://github.com/facebook/docusaurus/pull/5117) docs(v2): Add Prismatic docs page to showcase. ([@taylorreece](https://github.com/taylorreece))\\n- [#5115](https://github.com/facebook/docusaurus/pull/5115) docs(v2): Add LiveKit to showcase ([@davidzhao](https://github.com/davidzhao))\\n- [#5114](https://github.com/facebook/docusaurus/pull/5114) docs(v2): add Blink Shell Documentation to Showcase ([@pcho](https://github.com/pcho))\\n- [#5112](https://github.com/facebook/docusaurus/pull/5112) docs(v2): clarify how to disable edit links entirely ([@lennartkoopmann](https://github.com/lennartkoopmann))\\n- [#5113](https://github.com/facebook/docusaurus/pull/5113) docs(v2): Add CryptoDevHub to Showcase ([@pmuens](https://github.com/pmuens))\\n\\n## :house: Internal\\n\\n- `docusaurus-theme-classic`\\n - [#5234](https://github.com/facebook/docusaurus/pull/5234) chore: Upgrade infima 29 ([@slorber](https://github.com/slorber))\\n - [#5130](https://github.com/facebook/docusaurus/pull/5130) test(v2): dogfooding: add huge sidebar for testing purposes ([@slorber](https://github.com/slorber))\\n- Other\\n - [#5223](https://github.com/facebook/docusaurus/pull/5223) chore: fix iframe background color in dark mode ([@lex111](https://github.com/lex111))\\n - [#5206](https://github.com/facebook/docusaurus/pull/5206) misc: add script to keep starters branch/repos up-to-date ([@slorber](https://github.com/slorber))\\n - [#5167](https://github.com/facebook/docusaurus/pull/5167) fix(v2): fix website PWA icon hrefs ([@slorber](https://github.com/slorber))\\n - [#5166](https://github.com/facebook/docusaurus/pull/5166) fix(v2): fix yarn clear command ([@slorber](https://github.com/slorber))\\n - [#5137](https://github.com/facebook/docusaurus/pull/5137) chore: upgrade crowdin ([@slorber](https://github.com/slorber))\\n - [#5111](https://github.com/facebook/docusaurus/pull/5111) misc: monitor site global data with build size bot ([@slorber](https://github.com/slorber))\\n\\n## :running: Performance\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5136](https://github.com/facebook/docusaurus/pull/5136) perf(v2): lazy sidebar categories / collapsibles, reduce html output / build times ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#5130](https://github.com/facebook/docusaurus/pull/5130) test(v2): dogfooding: add huge sidebar for testing purposes ([@slorber](https://github.com/slorber))\\n\\n## Committers: 28\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Arijit Kundu ([@covalentbond](https://github.com/covalentbond))\\n- Arnaud Jeannin ([@arnaudjnn](https://github.com/arnaudjnn))\\n- Christian Flach ([@cmfcmf](https://github.com/cmfcmf))\\n- Cl\xe9ment Vannicatte ([@shortcuts](https://github.com/shortcuts))\\n- Dan Gebhardt ([@dgeb](https://github.com/dgeb))\\n- David Barrat ([@dbrrt](https://github.com/dbrrt))\\n- David Zhao ([@davidzhao](https://github.com/davidzhao))\\n- Forresst ([@forresst](https://github.com/forresst))\\n- Fran\xe7ois Massot ([@fmassot](https://github.com/fmassot))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Lennart Koopmann ([@lennartkoopmann](https://github.com/lennartkoopmann))\\n- Lukas Bach ([@lukasbach](https://github.com/lukasbach))\\n- Mar\xe7al Junior ([@marssaljr](https://github.com/marssaljr))\\n- Massoud Maboudi ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n- Michel Weststrate ([@mweststrate](https://github.com/mweststrate))\\n- Nazar ([@NazarStreletskyi](https://github.com/NazarStreletskyi))\\n- Philipp Muens ([@pmuens](https://github.com/pmuens))\\n- Pranab Das ([@pranabdas](https://github.com/pranabdas))\\n- Przemys\u0142aw Chojecki ([@pcho](https://github.com/pcho))\\n- Raz Luvaton ([@rluvaton](https://github.com/rluvaton))\\n- Sergio Moreno ([@semoal](https://github.com/semoal))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Taylor Reece ([@taylorreece](https://github.com/taylorreece))\\n- [@antonvasilev52](https://github.com/antonvasilev52)\\n- [@nirtamir2](https://github.com/nirtamir2)\\n- tohid nateghi ([@tohidnateghi](https://github.com/tohidnateghi))\\n- \u9648\u6768\u6587 ([@wenerme](https://github.com/wenerme))"},{"id":"/2.0.0-beta.3","metadata":{"permalink":"/changelog/2.0.0-beta.3","source":"@site/changelog/source/2.0.0-beta.3.md","title":"2.0.0-beta.3","description":"New Feature","date":"2021-06-30T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Adam Uhl\xed\u0159","alias":"AuHau","url":"https://github.com/AuHau","imageURL":"https://github.com/AuHau.png","key":"AuHau","page":null},{"name":"bperlmutter","alias":"bperlmutter","url":"https://github.com/bperlmutter","imageURL":"https://github.com/bperlmutter.png","key":"bperlmutter","page":null},{"name":"dirslashls","alias":"dirslashls","url":"https://github.com/dirslashls","imageURL":"https://github.com/dirslashls.png","key":"dirslashls","page":null},{"name":"Ayush das","alias":"iamayushdas","url":"https://github.com/iamayushdas","imageURL":"https://github.com/iamayushdas.png","key":"iamayushdas","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Jules Sam. Randolph","alias":"jsamr","url":"https://github.com/jsamr","imageURL":"https://github.com/jsamr.png","key":"jsamr","page":null},{"name":"Danny Lin","alias":"kdrag0n","url":"https://github.com/kdrag0n","imageURL":"https://github.com/kdrag0n.png","key":"kdrag0n","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Rami Yushuvaev","alias":"ramiy","url":"https://github.com/ramiy","imageURL":"https://github.com/ramiy.png","key":"ramiy","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Taylor Reece","alias":"taylorreece","url":"https://github.com/taylorreece","imageURL":"https://github.com/taylorreece.png","key":"taylorreece","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-06-30T20:00","authors":["AuHau","bperlmutter","dirslashls","iamayushdas","Josh-Cena","jsamr","kdrag0n","lex111","ramiy","slorber","taylorreece"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.4","permalink":"/changelog/2.0.0-beta.4"},"nextItem":{"title":"2.0.0-beta.2","permalink":"/changelog/2.0.0-beta.2"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#5092](https://github.com/facebook/docusaurus/pull/5092) feat(v2): add icon to external footer links ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#5080](https://github.com/facebook/docusaurus/pull/5080) fix(v2): classic theme - semantic correct anchors links ([@AuHau](https://github.com/AuHau))\\n - [#5081](https://github.com/facebook/docusaurus/pull/5081) fix(v2): restore previous scroll position on back button click ([@lex111](https://github.com/lex111))\\n - [#5063](https://github.com/facebook/docusaurus/pull/5063) fix(v2): restore responsive menu ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#5094](https://github.com/facebook/docusaurus/pull/5094) fix(v2): fix typos in swizzle command ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5095](https://github.com/facebook/docusaurus/pull/5095) fix(v2): fix swizzle readComponent ([@slorber](https://github.com/slorber))\\n - [#5059](https://github.com/facebook/docusaurus/pull/5059) fix(v2): fix webpack SSG plugin error thrown due to new URL() / \\\\_\\\\_filename ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#5097](https://github.com/facebook/docusaurus/pull/5097) fix(v2): fix useEffect infinite loop in blogOnly mode ([@slorber](https://github.com/slorber))\\n - [#5074](https://github.com/facebook/docusaurus/pull/5074) fix(v2): allow negative sidebar positions ([@kdrag0n](https://github.com/kdrag0n))\\n- `docusaurus-plugin-client-redirects`\\n - [#5093](https://github.com/facebook/docusaurus/pull/5093) fix(v2): redirect from should work with trailingSlash: true ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-utils`\\n - [#5085](https://github.com/facebook/docusaurus/pull/5085) fix(v2): redirect plugin should emit redirect files with lower precedence than redirect target ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-sitemap`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus`\\n - [#5082](https://github.com/facebook/docusaurus/pull/5082) fix(v2): never remove trailing slash from site root like \'/baseUrl/\' ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-sitemap`\\n - [#5068](https://github.com/facebook/docusaurus/pull/5068) fix(v2): sitemap should respect the global trailingSlash config option. ([@taylorreece](https://github.com/taylorreece))\\n- `docusaurus-types`\\n - [#5058](https://github.com/facebook/docusaurus/pull/5058) fix(v2): fix bad @docusaurus/types Plugin type generics ([@jsamr](https://github.com/jsamr))\\n\\n## :memo: Documentation\\n\\n- [#5064](https://github.com/facebook/docusaurus/pull/5064) docs(v2): Rewrite markdown images section ([@ramiy](https://github.com/ramiy))\\n- [#5086](https://github.com/facebook/docusaurus/pull/5086) docs(v2): Add SQL Frames to the showcase ([@dirslashls](https://github.com/dirslashls))\\n- [#5073](https://github.com/facebook/docusaurus/pull/5073) docs(v2): update installation docs ([@iamayushdas](https://github.com/iamayushdas))\\n- [#5061](https://github.com/facebook/docusaurus/pull/5061) docs(v2:) Divide `markdown-features/code-blocks` to smaller sections ([@ramiy](https://github.com/ramiy))\\n- [#5066](https://github.com/facebook/docusaurus/pull/5066) docs(v2): correct typo ([@bperlmutter](https://github.com/bperlmutter))\\n\\n## :house: Internal\\n\\n- `docusaurus-types`\\n - [#5067](https://github.com/facebook/docusaurus/pull/5067) chore: unstable yarn.lock ([@slorber](https://github.com/slorber))\\n- Other\\n - [#5057](https://github.com/facebook/docusaurus/pull/5057) chore(v2): upgrade examples to beta.2 ([@slorber](https://github.com/slorber))\\n\\n## Committers: 11\\n\\n- Adam Uhl\xed\u0159 ([@AuHau](https://github.com/AuHau))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Ayush das ([@iamayushdas](https://github.com/iamayushdas))\\n- Danny Lin ([@kdrag0n](https://github.com/kdrag0n))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Jules Sam. Randolph ([@jsamr](https://github.com/jsamr))\\n- Rami Yushuvaev ([@ramiy](https://github.com/ramiy))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Taylor Reece ([@taylorreece](https://github.com/taylorreece))\\n- [@bperlmutter](https://github.com/bperlmutter)\\n- [@dirslashls](https://github.com/dirslashls)"},{"id":"/2.0.0-beta.2","metadata":{"permalink":"/changelog/2.0.0-beta.2","source":"@site/changelog/source/2.0.0-beta.2.md","title":"2.0.0-beta.2","description":"New Feature","date":"2021-06-24T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Eshan Tripathi","alias":"eshantri","url":"https://github.com/eshantri","imageURL":"https://github.com/eshantri.png","key":"eshantri","page":null},{"name":"Felipe Santos","alias":"felipecrs","url":"https://github.com/felipecrs","imageURL":"https://github.com/felipecrs.png","key":"felipecrs","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Jules Sam. Randolph","alias":"jsamr","url":"https://github.com/jsamr","imageURL":"https://github.com/jsamr.png","key":"jsamr","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"ZhengYuan Loo","alias":"loozhengyuan","url":"https://github.com/loozhengyuan","imageURL":"https://github.com/loozhengyuan.png","key":"loozhengyuan","page":null},{"name":"Manuel Meurer","alias":"manuelmeurer","url":"https://github.com/manuelmeurer","imageURL":"https://github.com/manuelmeurer.png","key":"manuelmeurer","page":null},{"name":"Rami Yushuvaev","alias":"ramiy","url":"https://github.com/ramiy","imageURL":"https://github.com/ramiy.png","key":"ramiy","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Teik Jun","alias":"teikjun","url":"https://github.com/teikjun","imageURL":"https://github.com/teikjun.png","key":"teikjun","page":null},{"name":"Tomasz Papiernik","alias":"tomekpapiernik","url":"https://github.com/tomekpapiernik","imageURL":"https://github.com/tomekpapiernik.png","key":"tomekpapiernik","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-06-24T20:00","authors":["eshantri","felipecrs","Josh-Cena","jsamr","lex111","loozhengyuan","manuelmeurer","ramiy","slorber","teikjun","tomekpapiernik"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.3","permalink":"/changelog/2.0.0-beta.3"},"nextItem":{"title":"2.0.0-beta.1","permalink":"/changelog/2.0.0-beta.1"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#5052](https://github.com/facebook/docusaurus/pull/5052) feat(v2): docs version banner configuration option ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus`\\n - [#5037](https://github.com/facebook/docusaurus/pull/5037) feat(v2): plugins injectHtmlTags + configureWebpack should receive content loaded ([@slorber](https://github.com/slorber))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-plugin-content-docs`\\n - [#5053](https://github.com/facebook/docusaurus/pull/5053) refactor(v2): remove deprecated docs option excludeNextVersionDocs ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#5052](https://github.com/facebook/docusaurus/pull/5052) feat(v2): docs version banner configuration option ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-types`, `docusaurus`\\n - [#5054](https://github.com/facebook/docusaurus/pull/5054) fix(v2): allow undefined favicon ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#5048](https://github.com/facebook/docusaurus/pull/5048) fix(v2): read last update from inner git repositories ([@felipecrs](https://github.com/felipecrs))\\n- `docusaurus-theme-classic`\\n - [#5050](https://github.com/facebook/docusaurus/pull/5050) fix(v2): add shadow to skip link on focus only ([@lex111](https://github.com/lex111))\\n - [#5035](https://github.com/facebook/docusaurus/pull/5035) fix(v2): fix some docs container/sidebar layout issues ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#5047](https://github.com/facebook/docusaurus/pull/5047) fix(v2): Fix Webpack persistent caching (evict on swizzle/alias/config change) ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5040](https://github.com/facebook/docusaurus/pull/5040) fix(v2): Fix announcementBar layout shifts ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#5034](https://github.com/facebook/docusaurus/pull/5034) fix(v2): dev css modules classnames should include filename ([@slorber](https://github.com/slorber))\\n - [#5016](https://github.com/facebook/docusaurus/pull/5016) fix(v2): add missing quote in build command output ([@manuelmeurer](https://github.com/manuelmeurer))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5023](https://github.com/facebook/docusaurus/pull/5023) fix(v2): ignore hash changes in useChangeRoute hook ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils-validation`\\n - [#5032](https://github.com/facebook/docusaurus/pull/5032) fix(v2): less strict blog/docs uri frontmatter validation ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-plugin-content-docs`\\n - [#5053](https://github.com/facebook/docusaurus/pull/5053) refactor(v2): remove deprecated docs option excludeNextVersionDocs ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#4993](https://github.com/facebook/docusaurus/pull/4993) style(v2): reduce number of ESLint warnings ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Other\\n - [#5017](https://github.com/facebook/docusaurus/pull/5017) chore(v2): remove badge for v1 tests ([@loozhengyuan](https://github.com/loozhengyuan))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#5049](https://github.com/facebook/docusaurus/pull/5049) docs(v2): Fix Gatsby theme name for docs site - Docz ([@ramiy](https://github.com/ramiy))\\n - [#5030](https://github.com/facebook/docusaurus/pull/5030) docs(v2): typo in deployment.mdx ([@eshantri](https://github.com/eshantri))\\n - [#5022](https://github.com/facebook/docusaurus/pull/5022) docs(v2): Add React Native Render HTML site to showcase page ([@jsamr](https://github.com/jsamr))\\n - [#5027](https://github.com/facebook/docusaurus/pull/5027) docs(v2): Add Buddy to deployment doc ([@tomekpapiernik](https://github.com/tomekpapiernik))\\n - [#5021](https://github.com/facebook/docusaurus/pull/5021) docs(v2): fix incorrect anchor links in website ([@teikjun](https://github.com/teikjun))\\n - [#5007](https://github.com/facebook/docusaurus/pull/5007) docs(v2): wrap mdx usage in mdx-code-block ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#5033](https://github.com/facebook/docusaurus/pull/5033) docs(v2): GH pages: recommend using trailingSlash ([@slorber](https://github.com/slorber))\\n\\n## :house: Internal\\n\\n- [#5005](https://github.com/facebook/docusaurus/pull/5005) chore: add archived versions system + archive alpha.73-75 ([@slorber](https://github.com/slorber))\\n\\n## Committers: 11\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Eshan Tripathi ([@eshantri](https://github.com/eshantri))\\n- Felipe Santos ([@felipecrs](https://github.com/felipecrs))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Jules Sam. Randolph ([@jsamr](https://github.com/jsamr))\\n- Manuel Meurer ([@manuelmeurer](https://github.com/manuelmeurer))\\n- Rami Yushuvaev ([@ramiy](https://github.com/ramiy))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Teik Jun ([@teikjun](https://github.com/teikjun))\\n- Tomasz Papiernik ([@tomekpapiernik](https://github.com/tomekpapiernik))\\n- ZhengYuan Loo ([@loozhengyuan](https://github.com/loozhengyuan))"},{"id":"/2.0.0-beta.1","metadata":{"permalink":"/changelog/2.0.0-beta.1","source":"@site/changelog/source/2.0.0-beta.1.md","title":"2.0.0-beta.1","description":"New Feature","date":"2021-06-18T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"antonygibbs","alias":"antonygibbs","url":"https://github.com/antonygibbs","imageURL":"https://github.com/antonygibbs.png","key":"antonygibbs","page":null},{"name":"Arthur","alias":"ArtFlag","url":"https://github.com/ArtFlag","imageURL":"https://github.com/ArtFlag.png","key":"ArtFlag","page":null},{"name":"besemuna","alias":"besemuna","url":"https://github.com/besemuna","imageURL":"https://github.com/besemuna.png","key":"besemuna","page":null},{"name":"Christopher Hsieh","alias":"Christopher-Hsieh","url":"https://github.com/Christopher-Hsieh","imageURL":"https://github.com/Christopher-Hsieh.png","key":"Christopher-Hsieh","page":null},{"name":"Ben Rometsch","alias":"dabeeeenster","url":"https://github.com/dabeeeenster","imageURL":"https://github.com/dabeeeenster.png","key":"dabeeeenster","page":null},{"name":"e271828-","alias":"e271828-","url":"https://github.com/e271828-","imageURL":"https://github.com/e271828-.png","key":"e271828-","page":null},{"name":"fgatti675","alias":"fgatti675","url":"https://github.com/fgatti675","imageURL":"https://github.com/fgatti675.png","key":"fgatti675","page":null},{"name":"Tina\xebl Devresse","alias":"HunteRoi","url":"https://github.com/HunteRoi","imageURL":"https://github.com/HunteRoi.png","key":"HunteRoi","page":null},{"name":"Jonathan Mazin","alias":"jmazin","url":"https://github.com/jmazin","imageURL":"https://github.com/jmazin.png","key":"jmazin","page":null},{"name":"Joel","alias":"Joelpo","url":"https://github.com/Joelpo","imageURL":"https://github.com/Joelpo.png","key":"Joelpo","page":null},{"name":"Jon Barker","alias":"jonbarker68","url":"https://github.com/jonbarker68","imageURL":"https://github.com/jonbarker68.png","key":"jonbarker68","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Louis Gallet","alias":"l0u1sg","url":"https://github.com/l0u1sg","imageURL":"https://github.com/l0u1sg.png","key":"l0u1sg","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Pablo Vidal","alias":"limkinZero","url":"https://github.com/limkinZero","imageURL":"https://github.com/limkinZero.png","key":"limkinZero","page":null},{"name":"Lior Heber","alias":"liorheber","url":"https://github.com/liorheber","imageURL":"https://github.com/liorheber.png","key":"liorheber","page":null},{"name":"Louis Grenard","alias":"louistiti","url":"https://github.com/louistiti","imageURL":"https://github.com/louistiti.png","key":"louistiti","page":null},{"name":"Massibian","alias":"Massibian","url":"https://github.com/Massibian","imageURL":"https://github.com/Massibian.png","key":"Massibian","page":null},{"name":"Nam Hoang Le","alias":"nam-hle","url":"https://github.com/nam-hle","imageURL":"https://github.com/nam-hle.png","key":"nam-hle","page":null},{"name":"Pratyay Banerjee","alias":"Neilblaze","url":"https://github.com/Neilblaze","imageURL":"https://github.com/Neilblaze.png","key":"Neilblaze","page":null},{"name":"nirtamir2","alias":"nirtamir2","url":"https://github.com/nirtamir2","imageURL":"https://github.com/nirtamir2.png","key":"nirtamir2","page":null},{"name":"phwt.smwt","alias":"phwt","url":"https://github.com/phwt","imageURL":"https://github.com/phwt.png","key":"phwt","page":null},{"name":"Pedro Queiroz","alias":"pmqueiroz","url":"https://github.com/pmqueiroz","imageURL":"https://github.com/pmqueiroz.png","key":"pmqueiroz","page":null},{"name":"Pranab Das","alias":"pranabdas","url":"https://github.com/pranabdas","imageURL":"https://github.com/pranabdas.png","key":"pranabdas","page":null},{"name":"PsychTech","alias":"PsychTechApS","url":"https://github.com/PsychTechApS","imageURL":"https://github.com/PsychTechApS.png","key":"PsychTechApS","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"silva-nick","alias":"silva-nick","url":"https://github.com/silva-nick","imageURL":"https://github.com/silva-nick.png","key":"silva-nick","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"mg","alias":"tiny-dancer","url":"https://github.com/tiny-dancer","imageURL":"https://github.com/tiny-dancer.png","key":"tiny-dancer","page":null},{"name":"Lucas Correia","alias":"tsirlucas","url":"https://github.com/tsirlucas","imageURL":"https://github.com/tsirlucas.png","key":"tsirlucas","page":null},{"name":"Fardeen Panjwani","alias":"wise-introvert","url":"https://github.com/wise-introvert","imageURL":"https://github.com/wise-introvert.png","key":"wise-introvert","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-06-18T20:00","authors":["antonygibbs","ArtFlag","besemuna","Christopher-Hsieh","dabeeeenster","e271828-","fgatti675","HunteRoi","jmazin","Joelpo","jonbarker68","Josh-Cena","l0u1sg","lex111","limkinZero","liorheber","louistiti","Massibian","nam-hle","Neilblaze","nirtamir2","phwt","pmqueiroz","pranabdas","PsychTechApS","SamChou19815","silva-nick","slorber","tiny-dancer","tsirlucas","wise-introvert"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.2","permalink":"/changelog/2.0.0-beta.2"},"nextItem":{"title":"2.0.0-beta.0","permalink":"/changelog/2.0.0-beta.0"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-docs`\\n - [#4982](https://github.com/facebook/docusaurus/pull/4982) feat(v2): add docs pagination_label frontmatter ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#4949](https://github.com/facebook/docusaurus/pull/4949) feat(v2): add icon to external navbar links ([@lex111](https://github.com/lex111))\\n - [#4939](https://github.com/facebook/docusaurus/pull/4939) feat(v2): theme default translations Bengali ([@Neilblaze](https://github.com/Neilblaze))\\n - [#4811](https://github.com/facebook/docusaurus/pull/4811) feat(v2): Add hebrew translations ([@slorber](https://github.com/slorber))\\n - [#4798](https://github.com/facebook/docusaurus/pull/4798) feat(v2): add theme Danish translation ([@PsychTechApS](https://github.com/PsychTechApS))\\n- `docusaurus-init`\\n - [#4968](https://github.com/facebook/docusaurus/pull/4968) feat(v2): add code block theming in init template ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#4908](https://github.com/facebook/docusaurus/pull/4908) feat(v2): add trailingSlash config option ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`\\n - [#4796](https://github.com/facebook/docusaurus/pull/4796) feat(v2): exhaustive docs frontmatter schema ([@nam-hle](https://github.com/nam-hle))\\n- `docusaurus-types`, `docusaurus`\\n - [#4618](https://github.com/facebook/docusaurus/pull/4618) feat(v2): allow config plugins as functions or [function,options] ([@besemuna](https://github.com/besemuna))\\n- `docusaurus-plugin-content-blog`, `docusaurus-utils-validation`\\n - [#4759](https://github.com/facebook/docusaurus/pull/4759) feat(v2): exhaustive BlogPostFrontMatter schema validation ([@nam-hle](https://github.com/nam-hle))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#5001](https://github.com/facebook/docusaurus/pull/5001) chore(v2): update Infima to alpha 26 ([@lex111](https://github.com/lex111))\\n - [#4986](https://github.com/facebook/docusaurus/pull/4986) fix(v2): fix UX for docsVersionDropdown on mobile for single version ([@slorber](https://github.com/slorber))\\n - [#4980](https://github.com/facebook/docusaurus/pull/4980) fix(v2): make proper data type for prependBaseUrlToHref field ([@lex111](https://github.com/lex111))\\n - [#4943](https://github.com/facebook/docusaurus/pull/4943) fix(v2): improve accessibility of code blocks ([@lex111](https://github.com/lex111))\\n - [#4917](https://github.com/facebook/docusaurus/pull/4917) fix(v2): tidy up Markdown page layout ([@lex111](https://github.com/lex111))\\n - [#4906](https://github.com/facebook/docusaurus/pull/4906) fix(v2): fix minor a11y issues ([@lex111](https://github.com/lex111))\\n - [#4900](https://github.com/facebook/docusaurus/pull/4900) fix(v2): adjust margin after content title ([@lex111](https://github.com/lex111))\\n - [#4855](https://github.com/facebook/docusaurus/pull/4855) chore(v2): update infima to alpha 24 ([@lex111](https://github.com/lex111))\\n - [#4819](https://github.com/facebook/docusaurus/pull/4819) fix(v2): Amend Hebrew translations ([@liorheber](https://github.com/liorheber))\\n - [#4815](https://github.com/facebook/docusaurus/pull/4815) fix(v2): Fix Hebrew translations ([@nirtamir2](https://github.com/nirtamir2))\\n - [#4792](https://github.com/facebook/docusaurus/pull/4792) fix(v2): fix minor a11y issue with headings ([@lex111](https://github.com/lex111))\\n - [#4793](https://github.com/facebook/docusaurus/pull/4793) fix(v2): unbreak enhanced width of doc item wrapper ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-utils-common`\\n - [#5000](https://github.com/facebook/docusaurus/pull/5000) fix(v2): fix theme array deduplication bug ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-utils-common`, `docusaurus-utils`, `docusaurus`\\n - [#4988](https://github.com/facebook/docusaurus/pull/4988) fix(v2): redirect plugin should use siteConfig.trailingSlash ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`\\n - [#4983](https://github.com/facebook/docusaurus/pull/4983) fix(v2): always use UTC when dealing with blog dates ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#4962](https://github.com/facebook/docusaurus/pull/4962) fix(v2): respect base url in RSS feeds ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#4985](https://github.com/facebook/docusaurus/pull/4985) fix(v2): navbar doc item fallback: search doc in lastVersion ([@slorber](https://github.com/slorber))\\n- `docusaurus-remark-plugin-npm2yarn`\\n - [#4964](https://github.com/facebook/docusaurus/pull/4964) fix(v2): avoid duplicated imports in npm2yarn plugin ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`\\n - [#4970](https://github.com/facebook/docusaurus/pull/4970) fix(v2): sidebar_label should be used to compute next/previous button labels ([@slorber](https://github.com/slorber))\\n - [#4861](https://github.com/facebook/docusaurus/pull/4861) fix(v2): allow relative sidebar path resolution in docs:version command ([@lex111](https://github.com/lex111))\\n - [#4859](https://github.com/facebook/docusaurus/pull/4859) fix(v2): use frontmatter title at first for paginated links ([@lex111](https://github.com/lex111))\\n - [#4775](https://github.com/facebook/docusaurus/pull/4775) fix(v2): improve dx sidebar config, ability to have no sidebars file ([@nam-hle](https://github.com/nam-hle))\\n- `docusaurus-plugin-sitemap`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#4950](https://github.com/facebook/docusaurus/pull/4950) fix(v2): sitemap plugin should handle siteConfig.trailingSlash automatically ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#4924](https://github.com/facebook/docusaurus/pull/4924) fix(v2): respect baseUrl in serving command ([@lex111](https://github.com/lex111))\\n - [#4935](https://github.com/facebook/docusaurus/pull/4935) fix(v2): render children in BrowserOnly after client is ready ([@lex111](https://github.com/lex111))\\n - [#4894](https://github.com/facebook/docusaurus/pull/4894) fix(v2): escape HTML entities in user tags attributes ([@lex111](https://github.com/lex111))\\n - [#4789](https://github.com/facebook/docusaurus/pull/4789) fix(v2): transpile libs with too recent syntax with babel ([@slorber](https://github.com/slorber))\\n - [#4784](https://github.com/facebook/docusaurus/pull/4784) fix(v2): update notifier should never suggest to downgrade ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-utils`\\n - [#4882](https://github.com/facebook/docusaurus/pull/4882) fix(v2): fix contentTitle issues when markdown h1 title contains code blocks ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`\\n - [#4862](https://github.com/facebook/docusaurus/pull/4862) fix(v2): remove Markdown heading id from excerpt ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4871](https://github.com/facebook/docusaurus/pull/4871) fix(v2): unbreak adding of custom HTML metadatas ([@lex111](https://github.com/lex111))\\n - [#4797](https://github.com/facebook/docusaurus/pull/4797) fix(v2): do not focus on skip link if page refreshed ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#4856](https://github.com/facebook/docusaurus/pull/4856) fix(v2): adjust padding when custom search box location ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`\\n - [#4830](https://github.com/facebook/docusaurus/pull/4830) fix(v2): pin prism-react-renderer version to 1.1.1 ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-ideal-image`, `lqip-loader`\\n - [#4806](https://github.com/facebook/docusaurus/pull/4806) chore(v2): update sharp to 0.28.2 ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#4995](https://github.com/facebook/docusaurus/pull/4995) refactor(v2): reduce top padding in doc content container ([@lex111](https://github.com/lex111))\\n - [#4918](https://github.com/facebook/docusaurus/pull/4918) refactor(v2): readjust footer of blog item ([@lex111](https://github.com/lex111))\\n - [#4959](https://github.com/facebook/docusaurus/pull/4959) refactor(v2): minor cleanups ([@lex111](https://github.com/lex111))\\n - [#4945](https://github.com/facebook/docusaurus/pull/4945) refactor(v2): remove extra padding from doc item container ([@lex111](https://github.com/lex111))\\n - [#4940](https://github.com/facebook/docusaurus/pull/4940) refactor(v2): improve semantic doc sidebar markup ([@lex111](https://github.com/lex111))\\n - [#4961](https://github.com/facebook/docusaurus/pull/4961) refactor(v2): improve semantic blog sidebar markup ([@lex111](https://github.com/lex111))\\n - [#4903](https://github.com/facebook/docusaurus/pull/4903) refactor(v2): make doc item layout more semantic ([@lex111](https://github.com/lex111))\\n - [#4877](https://github.com/facebook/docusaurus/pull/4877) refactor(v2): reduce vertical space in doc content container ([@lex111](https://github.com/lex111))\\n - [#4914](https://github.com/facebook/docusaurus/pull/4914) refactor(v2): use SVG for external link icon ([@lex111](https://github.com/lex111))\\n - [#4916](https://github.com/facebook/docusaurus/pull/4916) refactor(v2): replace strong with b in UI components ([@lex111](https://github.com/lex111))\\n - [#4926](https://github.com/facebook/docusaurus/pull/4926) refactor(v2): hide decorative SVGs from screen readers ([@lex111](https://github.com/lex111))\\n - [#4865](https://github.com/facebook/docusaurus/pull/4865) refactor(v2): make little better doc update block UI ([@lex111](https://github.com/lex111))\\n - [#4795](https://github.com/facebook/docusaurus/pull/4795) refactor(v2): remove transition on body element ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`\\n - [#4989](https://github.com/facebook/docusaurus/pull/4989) refactor(v2): blog/docs: add more context in error messages ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#4979](https://github.com/facebook/docusaurus/pull/4979) refactor(v2): cleanup console output ([@lex111](https://github.com/lex111))\\n- `docusaurus-utils-validation`, `docusaurus`\\n - [#4977](https://github.com/facebook/docusaurus/pull/4977) polish(v2): url-subpath config validation warning ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#4969](https://github.com/facebook/docusaurus/pull/4969) refactor(v2): include path in error about non-existent ids ([@lex111](https://github.com/lex111))\\n - [#4863](https://github.com/facebook/docusaurus/pull/4863) refactor(v2): remove sidebar_label filed from doc metadata file ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#4907](https://github.com/facebook/docusaurus/pull/4907) refactor(v2): remove type attribute from link and script tags ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-search-algolia`\\n - [#4919](https://github.com/facebook/docusaurus/pull/4919) refactor(v2): improve markup and styling on search page ([@lex111](https://github.com/lex111))\\n - [#4867](https://github.com/facebook/docusaurus/pull/4867) chore(v2): update @docsearch/react ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`\\n - [#4905](https://github.com/facebook/docusaurus/pull/4905) refactor(v2): do not generate RSS files for empty feed ([@lex111](https://github.com/lex111))\\n - [#4860](https://github.com/facebook/docusaurus/pull/4860) refactor(v2): use aliased path for blog list sidebar file ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#4870](https://github.com/facebook/docusaurus/pull/4870) refactor(v2): add exception handling if external command is fails ([@lex111](https://github.com/lex111))\\n - [#4875](https://github.com/facebook/docusaurus/pull/4875) refactor(v2): make even better SSR error notify and add tip ([@lex111](https://github.com/lex111))\\n - [#4866](https://github.com/facebook/docusaurus/pull/4866) refactor(v2): output URL to console only if it has changed ([@lex111](https://github.com/lex111))\\n- `docusaurus-utils`\\n - [#4814](https://github.com/facebook/docusaurus/pull/4814) refactor(v2): purify normalizeUrl ([@nam-hle](https://github.com/nam-hle))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#4987](https://github.com/facebook/docusaurus/pull/4987) docs(v2): document canary releases ([@slorber](https://github.com/slorber))\\n - [#4981](https://github.com/facebook/docusaurus/pull/4981) docs(v2): minor tweaks ([@lex111](https://github.com/lex111))\\n - [#4976](https://github.com/facebook/docusaurus/pull/4976) docs(v2): mention to install the algolia package in search doc ([@slorber](https://github.com/slorber))\\n - [#4953](https://github.com/facebook/docusaurus/pull/4953) docs(v2): add Flagsmith to showcase ([@dabeeeenster](https://github.com/dabeeeenster))\\n - [#4942](https://github.com/facebook/docusaurus/pull/4942) docs(v2): add info about `DefaultValue` prop in `Tabs` ([@ArtFlag](https://github.com/ArtFlag))\\n - [#4898](https://github.com/facebook/docusaurus/pull/4898) docs(v2): add ClarityChallenge to showcase ([@jonbarker68](https://github.com/jonbarker68))\\n - [#4896](https://github.com/facebook/docusaurus/pull/4896) docs(v2): fix incorrect link to plugin-ideal-image ([@phwt](https://github.com/phwt))\\n - [#4893](https://github.com/facebook/docusaurus/pull/4893) docs(v2): presets: fix typo in bootstrap preset ([@silva-nick](https://github.com/silva-nick))\\n - [#4887](https://github.com/facebook/docusaurus/pull/4887) docs(v2): Add Aide Jeune website to Docusaurus site showcase ([@l0u1sg](https://github.com/l0u1sg))\\n - [#4821](https://github.com/facebook/docusaurus/pull/4821) docs(v2): New doc page for math equations ([@pranabdas](https://github.com/pranabdas))\\n - [#4885](https://github.com/facebook/docusaurus/pull/4885) docs(v2): v2 migration guide: mention Algolia config update ([@slorber](https://github.com/slorber))\\n - [#4876](https://github.com/facebook/docusaurus/pull/4876) docs(v2): update steps in the github-actions section ([@wise-introvert](https://github.com/wise-introvert))\\n - [#4880](https://github.com/facebook/docusaurus/pull/4880) docs(v2): grammar typo in migration-overview.md ([@jmazin](https://github.com/jmazin))\\n - [#4879](https://github.com/facebook/docusaurus/pull/4879) docs(v2): Added FireCMS to the showcase ([@fgatti675](https://github.com/fgatti675))\\n - [#4849](https://github.com/facebook/docusaurus/pull/4849) docs(v2): fix Java syntax highlight in website ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#4818](https://github.com/facebook/docusaurus/pull/4818) docs(v2): add mr-pdf to resources ([@antonygibbs](https://github.com/antonygibbs))\\n - [#4835](https://github.com/facebook/docusaurus/pull/4835) docs(v2): fix grammar typo on Creating pages ([@Christopher-Hsieh](https://github.com/Christopher-Hsieh))\\n - [#4837](https://github.com/facebook/docusaurus/pull/4837) docs(v2): fix missing closing bracket ([@pmqueiroz](https://github.com/pmqueiroz))\\n - [#4820](https://github.com/facebook/docusaurus/pull/4820) docs(v2): Fix typo in doc: sidebar.md ([@pranabdas](https://github.com/pranabdas))\\n - [#4813](https://github.com/facebook/docusaurus/pull/4813) docs(v2): fix css snipped with missing color ([@slorber](https://github.com/slorber))\\n - [#4803](https://github.com/facebook/docusaurus/pull/4803) docs(v2): Add i18n tag and fix typo ([@HunteRoi](https://github.com/HunteRoi))\\n - [#4786](https://github.com/facebook/docusaurus/pull/4786) docs(v2): Add tinaeldevresse.eu to Docusaurus\' gallery ([@HunteRoi](https://github.com/HunteRoi))\\n - [#4780](https://github.com/facebook/docusaurus/pull/4780) docs(v2): remove docs for alpha 71 + 72 ([@slorber](https://github.com/slorber))\\n - [#4779](https://github.com/facebook/docusaurus/pull/4779) docs(v2): beta blog post edits ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`\\n - [#4973](https://github.com/facebook/docusaurus/pull/4973) docs(v2): replace `diff` codeblocks with line highlight ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#4756](https://github.com/facebook/docusaurus/pull/4756) docs(v2): Docusaurus 2 beta blog post ([@slorber](https://github.com/slorber))\\n\\n## :house: Internal\\n\\n- Other\\n - [#4994](https://github.com/facebook/docusaurus/pull/4994) misc: more issue template improvements ([@slorber](https://github.com/slorber))\\n - [#4951](https://github.com/facebook/docusaurus/pull/4951) misc: disable google-gtag plugin in Netlify deploys ([@lex111](https://github.com/lex111))\\n - [#4901](https://github.com/facebook/docusaurus/pull/4901) misc: optimize showcase images ([@lex111](https://github.com/lex111))\\n - [#4897](https://github.com/facebook/docusaurus/pull/4897) chore: fail CI if yarn.lock is modified on install ([@slorber](https://github.com/slorber))\\n - [#4858](https://github.com/facebook/docusaurus/pull/4858) chore(v2): add external link to community sidebar ([@lex111](https://github.com/lex111))\\n - [#4889](https://github.com/facebook/docusaurus/pull/4889) misc: issue template config typo ([@slorber](https://github.com/slorber))\\n - [#4886](https://github.com/facebook/docusaurus/pull/4886) misc: add github issue template config ([@slorber](https://github.com/slorber))\\n - [#4878](https://github.com/facebook/docusaurus/pull/4878) misc: improve bug report issue template ([@lex111](https://github.com/lex111))\\n - [#4791](https://github.com/facebook/docusaurus/pull/4791) chore: fix canary version name ([@slorber](https://github.com/slorber))\\n - [#4777](https://github.com/facebook/docusaurus/pull/4777) chore: regenerate examples on 2.0.0-beta.0 ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-migrate`, `docusaurus`\\n - [#4944](https://github.com/facebook/docusaurus/pull/4944) chore: lockfile cleanup ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`, `docusaurus-init-1.x`\\n - [#4902](https://github.com/facebook/docusaurus/pull/4902) chore: remove docusaurus v1 from master branch (moved to docusaurus-v1 branch) ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-ideal-image`\\n - [#4915](https://github.com/facebook/docusaurus/pull/4915) chore(v2): bump react-waypoint from 9.0.2 to 10.1.0 ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`\\n - [#4834](https://github.com/facebook/docusaurus/pull/4834) chore(v2): unlock prism-react-renderer version ([@lex111](https://github.com/lex111))\\n- `docusaurus-cssnano-preset`, `docusaurus`\\n - [#4833](https://github.com/facebook/docusaurus/pull/4833) chore(v2): bump cssnano packages ([@lex111](https://github.com/lex111))\\n- `docusaurus-cssnano-preset`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-debug`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#4816](https://github.com/facebook/docusaurus/pull/4816) chore(v2): upgrade dependencies ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4790](https://github.com/facebook/docusaurus/pull/4790) chore(v2): TypeScript, use isolatedModules ([@slorber](https://github.com/slorber))\\n\\n## Committers: 31\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Arthur ([@ArtFlag](https://github.com/ArtFlag))\\n- Ben Rometsch ([@dabeeeenster](https://github.com/dabeeeenster))\\n- Christopher Hsieh ([@Christopher-Hsieh](https://github.com/Christopher-Hsieh))\\n- Fardeen Panjwani ([@wise-introvert](https://github.com/wise-introvert))\\n- Joel ([@Joelpo](https://github.com/Joelpo))\\n- Jon Barker ([@jonbarker68](https://github.com/jonbarker68))\\n- Jonathan Mazin ([@jmazin](https://github.com/jmazin))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Lior Heber ([@liorheber](https://github.com/liorheber))\\n- Louis Gallet ([@l0u1sg](https://github.com/l0u1sg))\\n- Louis Grenard ([@louistiti](https://github.com/louistiti))\\n- Lucas Correia ([@tsirlucas](https://github.com/tsirlucas))\\n- Nam Hoang Le ([@nam-hle](https://github.com/nam-hle))\\n- Pablo Vidal ([@limkinZero](https://github.com/limkinZero))\\n- Pedro Queiroz ([@pmqueiroz](https://github.com/pmqueiroz))\\n- Pranab Das ([@pranabdas](https://github.com/pranabdas))\\n- Pratyay Banerjee ([@Neilblaze](https://github.com/Neilblaze))\\n- PsychTech ([@PsychTechApS](https://github.com/PsychTechApS))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tina\xebl Devresse ([@HunteRoi](https://github.com/HunteRoi))\\n- [@Massibian](https://github.com/Massibian)\\n- [@antonygibbs](https://github.com/antonygibbs)\\n- [@besemuna](https://github.com/besemuna)\\n- [@e271828-](https://github.com/e271828-)\\n- [@fgatti675](https://github.com/fgatti675)\\n- [@nirtamir2](https://github.com/nirtamir2)\\n- [@silva-nick](https://github.com/silva-nick)\\n- mg ([@tiny-dancer](https://github.com/tiny-dancer))\\n- phwt.smwt ([@phwt](https://github.com/phwt))"},{"id":"/2.0.0-beta.0","metadata":{"permalink":"/changelog/2.0.0-beta.0","source":"@site/changelog/source/2.0.0-beta.0.md","title":"2.0.0-beta.0","description":"Read the 2.0.0 beta blog post!","date":"2021-05-12T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Chris Owen","alias":"ChrisOwen101","url":"https://github.com/ChrisOwen101","imageURL":"https://github.com/ChrisOwen101.png","key":"ChrisOwen101","page":null},{"name":"Evan","alias":"DigiPie","url":"https://github.com/DigiPie","imageURL":"https://github.com/DigiPie.png","key":"DigiPie","page":null},{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},{"name":"Sergio Rafael Gianazza","alias":"gianu","url":"https://github.com/gianu","imageURL":"https://github.com/gianu.png","key":"gianu","page":null},{"name":"Joel Hans","alias":"joelhans","url":"https://github.com/joelhans","imageURL":"https://github.com/joelhans.png","key":"joelhans","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"\u041A\u043E\u0441\u0442\u044F \u0422\u0440\u0435\u0442\u044F\u043A","alias":"KostyaTretyak","url":"https://github.com/KostyaTretyak","imageURL":"https://github.com/KostyaTretyak.png","key":"KostyaTretyak","page":null},{"name":"Nam Hoang Le","alias":"nam-hle","url":"https://github.com/nam-hle","imageURL":"https://github.com/nam-hle.png","key":"nam-hle","page":null},{"name":"Rodrigo Moreno","alias":"rodmoreno","url":"https://github.com/rodmoreno","imageURL":"https://github.com/rodmoreno.png","key":"rodmoreno","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Ian Hornik","alias":"yiliansource","url":"https://github.com/yiliansource","imageURL":"https://github.com/yiliansource.png","key":"yiliansource","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-05-12T20:00","authors":["ChrisOwen101","DigiPie","forresst","gianu","joelhans","Josh-Cena","KostyaTretyak","nam-hle","rodmoreno","slorber","yiliansource"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.1","permalink":"/changelog/2.0.0-beta.1"},"nextItem":{"title":"2.0.0-alpha.75","permalink":"/changelog/2.0.0-alpha.75"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\nRead the [2.0.0 beta blog post](https://docusaurus.io/blog/2021/05/12/announcing-docusaurus-two-beta)!\\n\\n**Note**: this first beta release does not contain any new major feature. We are removing the alpha label, as we are confident Docusaurus 2 is stable enough.\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#4762](https://github.com/facebook/docusaurus/pull/4762) feat(v2): add es translations for docusaurus-theme-classic ([@rodmoreno](https://github.com/rodmoreno))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#4750](https://github.com/facebook/docusaurus/pull/4750) fix(v2): improve french translation for theme-classic ([@forresst](https://github.com/forresst))\\n- `docusaurus-mdx-loader`, `docusaurus-utils`\\n - [#4736](https://github.com/facebook/docusaurus/pull/4736) fix(v2): fix encoding of markdown image/file inline file-loaders ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`\\n - [#4735](https://github.com/facebook/docusaurus/pull/4735) fix(v2): markdown title parser should ignore all forms of MDX import statements ([@nam-hle](https://github.com/nam-hle))\\n - [#4729](https://github.com/facebook/docusaurus/pull/4729) fix(v2): optimize markdown parser regex (Closes [#4726](https://github.com/facebook/docusaurus/issues/4726)) ([@nam-hle](https://github.com/nam-hle))\\n\\n## :memo: Documentation\\n\\n- [#4770](https://github.com/facebook/docusaurus/pull/4770) docs(v2): Improve intro doc ([@slorber](https://github.com/slorber))\\n- [#4773](https://github.com/facebook/docusaurus/pull/4773) docs(v2): fix i18n doc: bad i18n page plugin path in code sample ([@KostyaTretyak](https://github.com/KostyaTretyak))\\n- [#4758](https://github.com/facebook/docusaurus/pull/4758) docs(v2): add browsers support documentation ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#4757](https://github.com/facebook/docusaurus/pull/4757) docs(v2): Add Netdata to showcase ([@joelhans](https://github.com/joelhans))\\n- [#4754](https://github.com/facebook/docusaurus/pull/4754) docs(v2): fix Jest showcase screenshot ([@slorber](https://github.com/slorber))\\n- [#4747](https://github.com/facebook/docusaurus/pull/4747) docs(v2): Update showcase page ([@slorber](https://github.com/slorber))\\n- [#4734](https://github.com/facebook/docusaurus/pull/4734) docs(v2): Added MediaMachine.io to showcase ([@gianu](https://github.com/gianu))\\n- [#4731](https://github.com/facebook/docusaurus/pull/4731) docs(v2): add CodeYourFuture to showcase ([@ChrisOwen101](https://github.com/ChrisOwen101))\\n- [#4703](https://github.com/facebook/docusaurus/pull/4703) docs(v2): specify google-analytics and gtag plugins ([@yiliansource](https://github.com/yiliansource))\\n- [#4727](https://github.com/facebook/docusaurus/pull/4727) docs(v2): fix doc lint ([@slorber](https://github.com/slorber))\\n- [#4725](https://github.com/facebook/docusaurus/pull/4725) docs(v2): emphasize subset of markdown supported languages ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#4711](https://github.com/facebook/docusaurus/pull/4711) docs(v2): showcase personal site evantay ([@DigiPie](https://github.com/DigiPie))\\n\\n## :house: Internal\\n\\n- [#4746](https://github.com/facebook/docusaurus/pull/4746) chore(v2): attempt to fix crowdin dl again ([@slorber](https://github.com/slorber))\\n- [#4743](https://github.com/facebook/docusaurus/pull/4743) chore(v2): fix prod deployment due to bad image path ([@slorber](https://github.com/slorber))\\n- [#4740](https://github.com/facebook/docusaurus/pull/4740) chore(v2): delay i18n-staging deployment to avoid Crowdin 409 errors ([@slorber](https://github.com/slorber))\\n- [#4739](https://github.com/facebook/docusaurus/pull/4739) chore(v2): Fix Crowdin 409 issues in CI ([@slorber](https://github.com/slorber))\\n\\n## Committers: 11\\n\\n- Chris Owen ([@ChrisOwen101](https://github.com/ChrisOwen101))\\n- Evan ([@DigiPie](https://github.com/DigiPie))\\n- Forresst ([@forresst](https://github.com/forresst))\\n- Ian Hornik ([@yiliansource](https://github.com/yiliansource))\\n- Joel Hans ([@joelhans](https://github.com/joelhans))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Nam Hoang Le ([@nam-hle](https://github.com/nam-hle))\\n- Rodrigo Moreno ([@rodmoreno](https://github.com/rodmoreno))\\n- Sergio Rafael Gianazza ([@gianu](https://github.com/gianu))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- \u041A\u043E\u0441\u0442\u044F \u0422\u0440\u0435\u0442\u044F\u043A ([@KostyaTretyak](https://github.com/KostyaTretyak))"},{"id":"/2.0.0-alpha.75","metadata":{"permalink":"/changelog/2.0.0-alpha.75","source":"@site/changelog/source/2.0.0-alpha.75.md","title":"2.0.0-alpha.75","description":"Breaking Change","date":"2021-04-30T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Geoffroy Empain","alias":"gempain","url":"https://github.com/gempain","imageURL":"https://github.com/gempain.png","key":"gempain","page":null},{"name":"Reece Dunham","alias":"RDIL","url":"https://github.com/RDIL","imageURL":"https://github.com/RDIL.png","key":"RDIL","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tommy Chen","alias":"tommy351","url":"https://github.com/tommy351","imageURL":"https://github.com/tommy351.png","key":"tommy351","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-04-30T20:00","authors":["gempain","RDIL","slorber","tommy351"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.0","permalink":"/changelog/2.0.0-beta.0"},"nextItem":{"title":"2.0.0-alpha.74","permalink":"/changelog/2.0.0-alpha.74"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-cssnano-preset`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus`, `lqip-loader`\\n - [#4089](https://github.com/facebook/docusaurus/pull/4089) feat(v2): Webpack 5, PostCSS 8 ([@RDIL](https://github.com/RDIL))\\n\\n## :memo: Documentation\\n\\n- [#4704](https://github.com/facebook/docusaurus/pull/4704) docs(v2): showcase meli ([@gempain](https://github.com/gempain))\\n- [#4699](https://github.com/facebook/docusaurus/pull/4699) docs(v2): Add Kosko to showcase ([@tommy351](https://github.com/tommy351))\\n\\n## Committers: 4\\n\\n- Geoffroy Empain ([@gempain](https://github.com/gempain))\\n- Reece Dunham ([@RDIL](https://github.com/RDIL))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tommy Chen ([@tommy351](https://github.com/tommy351))"},{"id":"/2.0.0-alpha.74","metadata":{"permalink":"/changelog/2.0.0-alpha.74","source":"@site/changelog/source/2.0.0-alpha.74.md","title":"2.0.0-alpha.74","description":"New Feature","date":"2021-04-27T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"alena-ko","alias":"alena-ko","url":"https://github.com/alena-ko","imageURL":"https://github.com/alena-ko.png","key":"alena-ko","page":null},{"name":"Arnaud Jeannin","alias":"arnaudjnn","url":"https://github.com/arnaudjnn","imageURL":"https://github.com/arnaudjnn.png","key":"arnaudjnn","page":null},{"name":"DOLLE","alias":"JeremyDolle","url":"https://github.com/JeremyDolle","imageURL":"https://github.com/JeremyDolle.png","key":"JeremyDolle","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"kazk","alias":"kazk","url":"https://github.com/kazk","imageURL":"https://github.com/kazk.png","key":"kazk","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Lisa Chandra","alias":"lisa761","url":"https://github.com/lisa761","imageURL":"https://github.com/lisa761.png","key":"lisa761","page":null},{"name":"Luis Medina Huerta","alias":"luism3861","url":"https://github.com/luism3861","imageURL":"https://github.com/luism3861.png","key":"luism3861","page":null},{"name":"MisterFISHUP","alias":"MisterFISHUP","url":"https://github.com/MisterFISHUP","imageURL":"https://github.com/MisterFISHUP.png","key":"MisterFISHUP","page":null},{"name":"Tommy","alias":"react-learner","url":"https://github.com/react-learner","imageURL":"https://github.com/react-learner.png","key":"react-learner","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-04-27T20:00","authors":["alena-ko","arnaudjnn","JeremyDolle","johnnyreilly","kazk","lex111","lisa761","luism3861","MisterFISHUP","react-learner","SamChou19815","slorber"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.75","permalink":"/changelog/2.0.0-alpha.75"},"nextItem":{"title":"2.0.0-alpha.73","permalink":"/changelog/2.0.0-alpha.73"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- Other\\n - [#4515](https://github.com/facebook/docusaurus/pull/4515) feat(v2): add tag filters to showcase page ([@lisa761](https://github.com/lisa761))\\n- `docusaurus-plugin-content-docs`\\n - [#4658](https://github.com/facebook/docusaurus/pull/4658) feat(v2): allow user to customize/enhance the default sidebar items generator ([@slorber](https://github.com/slorber))\\n - [#4655](https://github.com/facebook/docusaurus/pull/4655) feat(v2): docs, make numberPrefixParser configurable, better defaults, minor breaking-changes ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils`, `docusaurus`\\n - [#4688](https://github.com/facebook/docusaurus/pull/4688) fix(v2): fix title logic (meta vs heading) + ignore fixed anchor id syntax ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#4689](https://github.com/facebook/docusaurus/pull/4689) chore(v2): update infima to alpha 23 ([@slorber](https://github.com/slorber))\\n - [#4667](https://github.com/facebook/docusaurus/pull/4667) fix(v2): Unbreak blog post title by handling title fallback in `LayoutHead` ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-content-docs`\\n - [#4687](https://github.com/facebook/docusaurus/pull/4687) fix(v2): accept empty/null custom_edit_url docs frontmatter for retrocompat ([@slorber](https://github.com/slorber))\\n - [#4651](https://github.com/facebook/docusaurus/pull/4651) fix(v2): sidebar autogen from subfolder should read category metadata correctly ([@slorber](https://github.com/slorber))\\n - [#4629](https://github.com/facebook/docusaurus/pull/4629) fix(v2): fix validation rejecting admonitions false ([@kazk](https://github.com/kazk))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils-validation`\\n - [#4654](https://github.com/facebook/docusaurus/pull/4654) fix(v2): fix too strict markdown frontmatter validation ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `docusaurus-utils`\\n - [#4646](https://github.com/facebook/docusaurus/pull/4646) fix(v2): ignore imports when h1 heading parsing ([@lex111](https://github.com/lex111))\\n - [#4641](https://github.com/facebook/docusaurus/pull/4641) fix(v2): parse headings directly after h1 properly ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#4682](https://github.com/facebook/docusaurus/pull/4682) refactor(v2): align external icon on right ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- [#4496](https://github.com/facebook/docusaurus/pull/4496) docs(v2): Add Qovery to deployment doc ([@arnaudjnn](https://github.com/arnaudjnn))\\n- [#4680](https://github.com/facebook/docusaurus/pull/4680) docs(v2): Fix urls in deployment.md ([@luism3861](https://github.com/luism3861))\\n- [#4668](https://github.com/facebook/docusaurus/pull/4668) docs(v2): Add Hostman to deployment doc ([@alena-ko](https://github.com/alena-ko))\\n- [#4676](https://github.com/facebook/docusaurus/pull/4676) docs(v2): Add Daily Digest - COVID-19 IN FRANCE to showcase ([@MisterFISHUP](https://github.com/MisterFISHUP))\\n- [#4643](https://github.com/facebook/docusaurus/pull/4643) docs(v2): Fix typo in installation.md ([@react-learner](https://github.com/react-learner))\\n- [#4649](https://github.com/facebook/docusaurus/pull/4649) docs(v2): Add new showcase user ([@JeremyDolle](https://github.com/JeremyDolle))\\n\\n## :house: Internal\\n\\n- Other\\n - [#4670](https://github.com/facebook/docusaurus/pull/4670) chore: add some redirects to v1.docusaurus.io ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`\\n - [#4631](https://github.com/facebook/docusaurus/pull/4631) chore(v2): update examples to use alpha73 ([@slorber](https://github.com/slorber))\\n\\n## Committers: 12\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Arnaud Jeannin ([@arnaudjnn](https://github.com/arnaudjnn))\\n- DOLLE ([@JeremyDolle](https://github.com/JeremyDolle))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Lisa Chandra ([@lisa761](https://github.com/lisa761))\\n- Luis Medina Huerta ([@luism3861](https://github.com/luism3861))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tommy ([@react-learner](https://github.com/react-learner))\\n- [@MisterFISHUP](https://github.com/MisterFISHUP)\\n- [@alena-ko](https://github.com/alena-ko)\\n- kazk ([@kazk](https://github.com/kazk))"},{"id":"/2.0.0-alpha.73","metadata":{"permalink":"/changelog/2.0.0-alpha.73","source":"@site/changelog/source/2.0.0-alpha.73.md","title":"2.0.0-alpha.73","description":"New Feature","date":"2021-04-16T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"aehrea","alias":"aehrea","url":"https://github.com/aehrea","imageURL":"https://github.com/aehrea.png","key":"aehrea","page":null},{"name":"Ajeet Singh Raina, Docker Captain, RedisLabs","alias":"ajeetraina","url":"https://github.com/ajeetraina","imageURL":"https://github.com/ajeetraina.png","key":"ajeetraina","page":null},{"name":"akepecs","alias":"akepecs","url":"https://github.com/akepecs","imageURL":"https://github.com/akepecs.png","key":"akepecs","page":null},{"name":"Anthony Bobsin","alias":"AnthonyBobsin","url":"https://github.com/AnthonyBobsin","imageURL":"https://github.com/AnthonyBobsin.png","key":"AnthonyBobsin","page":null},{"name":"Armano","alias":"armano2","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png","key":"armano2","page":null},{"name":"Artur Carvalho","alias":"arturcarvalho","url":"https://github.com/arturcarvalho","imageURL":"https://github.com/arturcarvalho.png","key":"arturcarvalho","page":null},{"name":"Dennis Thompson","alias":"atomicpages","url":"https://github.com/atomicpages","imageURL":"https://github.com/atomicpages.png","key":"atomicpages","page":null},{"name":"besemuna","alias":"besemuna","url":"https://github.com/besemuna","imageURL":"https://github.com/besemuna.png","key":"besemuna","page":null},{"name":"Guillaume Claret","alias":"clarus","url":"https://github.com/clarus","imageURL":"https://github.com/clarus.png","key":"clarus","page":null},{"name":"Arijit Kundu","alias":"covalentbond","url":"https://github.com/covalentbond","imageURL":"https://github.com/covalentbond.png","key":"covalentbond","page":null},{"name":"Dick Wyn Yong","alias":"dickwyn","url":"https://github.com/dickwyn","imageURL":"https://github.com/dickwyn.png","key":"dickwyn","page":null},{"name":"duanwilliam","alias":"duanwilliam","url":"https://github.com/duanwilliam","imageURL":"https://github.com/duanwilliam.png","key":"duanwilliam","page":null},{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},{"name":"Foxeye-Rinx","alias":"Foxeye-Rinx","url":"https://github.com/Foxeye-Rinx","imageURL":"https://github.com/Foxeye-Rinx.png","key":"Foxeye-Rinx","page":null},{"name":"Brent Ely","alias":"gitbrent","url":"https://github.com/gitbrent","imageURL":"https://github.com/gitbrent.png","key":"gitbrent","page":null},{"name":"Marco Enrico","alias":"gumacahin","url":"https://github.com/gumacahin","imageURL":"https://github.com/gumacahin.png","key":"gumacahin","page":null},{"name":"John Knox","alias":"jknoxville","url":"https://github.com/jknoxville","imageURL":"https://github.com/jknoxville.png","key":"jknoxville","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Chris Kanich","alias":"kaytwo","url":"https://github.com/kaytwo","imageURL":"https://github.com/kaytwo.png","key":"kaytwo","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Lisa Chandra","alias":"lisa761","url":"https://github.com/lisa761","imageURL":"https://github.com/lisa761.png","key":"lisa761","page":null},{"name":"ZhengYuan Loo","alias":"loozhengyuan","url":"https://github.com/loozhengyuan","imageURL":"https://github.com/loozhengyuan.png","key":"loozhengyuan","page":null},{"name":"Lucas Alves","alias":"lucalves","url":"https://github.com/lucalves","imageURL":"https://github.com/lucalves.png","key":"lucalves","page":null},{"name":"miku86","alias":"miku86","url":"https://github.com/miku86","imageURL":"https://github.com/miku86.png","key":"miku86","page":null},{"name":"Pedro Pi\xf1era Buend\xeda","alias":"pepibumur","url":"https://github.com/pepibumur","imageURL":"https://github.com/pepibumur.png","key":"pepibumur","page":null},{"name":"Reece Dunham","alias":"RDIL","url":"https://github.com/RDIL","imageURL":"https://github.com/RDIL.png","key":"RDIL","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"serut","alias":"serut","url":"https://github.com/serut","imageURL":"https://github.com/serut.png","key":"serut","page":null},{"name":"Steven Hansel","alias":"ShinteiMai","url":"https://github.com/ShinteiMai","imageURL":"https://github.com/ShinteiMai.png","key":"ShinteiMai","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Steve","alias":"steveworley","url":"https://github.com/steveworley","imageURL":"https://github.com/steveworley.png","key":"steveworley","page":null},{"name":"guoxudong","alias":"sunny0826","url":"https://github.com/sunny0826","imageURL":"https://github.com/sunny0826.png","key":"sunny0826","page":null},{"name":"Tales Porto","alias":"talesporto","url":"https://github.com/talesporto","imageURL":"https://github.com/talesporto.png","key":"talesporto","page":null},{"name":"Thiago Sciotta","alias":"thiagog3","url":"https://github.com/thiagog3","imageURL":"https://github.com/thiagog3.png","key":"thiagog3","page":null},{"name":"Tiago Ribeiro","alias":"tiago-rr","url":"https://github.com/tiago-rr","imageURL":"https://github.com/tiago-rr.png","key":"tiago-rr","page":null},{"name":"Tom Raviv","alias":"tomrav","url":"https://github.com/tomrav","imageURL":"https://github.com/tomrav.png","key":"tomrav","page":null},{"name":"Tony Narlock","alias":"tony","url":"https://github.com/tony","imageURL":"https://github.com/tony.png","key":"tony","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-04-16T20:00","authors":["aehrea","ajeetraina","akepecs","AnthonyBobsin","armano2","arturcarvalho","atomicpages","besemuna","clarus","covalentbond","dickwyn","duanwilliam","forresst","Foxeye-Rinx","gitbrent","gumacahin","jknoxville","johnnyreilly","kaytwo","lex111","lisa761","loozhengyuan","lucalves","miku86","pepibumur","RDIL","SamChou19815","serut","ShinteiMai","slorber","steveworley","sunny0826","talesporto","thiagog3","tiago-rr","tomrav","tony"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.74","permalink":"/changelog/2.0.0-alpha.74"},"nextItem":{"title":"2.0.0-alpha.72","permalink":"/changelog/2.0.0-alpha.72"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#4624](https://github.com/facebook/docusaurus/pull/4624) feat(v2): Add Filipino default translations to theme ([@gumacahin](https://github.com/gumacahin))\\n - [#4596](https://github.com/facebook/docusaurus/pull/4596) feat(v2): theme default translations hindi ([@lisa761](https://github.com/lisa761))\\n - [#4536](https://github.com/facebook/docusaurus/pull/4536) feat(v2): add pt-PT translations for docusaurus-theme-classic ([@tiago-rr](https://github.com/tiago-rr))\\n - [#4525](https://github.com/facebook/docusaurus/pull/4525) feat(v2): add Brazilian Portuguese translation for docusaurus-theme-classic ([@thiagog3](https://github.com/thiagog3))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4511](https://github.com/facebook/docusaurus/pull/4511) feat(v2): add unique page/wrapper className to each theme pages ([@ShinteiMai](https://github.com/ShinteiMai))\\n- `docusaurus-init`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#4582](https://github.com/facebook/docusaurus/pull/4582) feat(v2): auto-generated sidebars, frontmatter-less sites ([@slorber](https://github.com/slorber))\\n- `docusaurus-types`, `docusaurus`\\n - [#4545](https://github.com/facebook/docusaurus/pull/4545) feat(v2): docusaurus deploy: ability to configure port in git url ([@talesporto](https://github.com/talesporto))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils`\\n - [#4590](https://github.com/facebook/docusaurus/pull/4590) feat(v2): various markdown string parsing improvements/fixes ([@slorber](https://github.com/slorber))\\n - [#4485](https://github.com/facebook/docusaurus/pull/4485) feat(v2): frontmatter-less: read first heading as title and use it in front-matter ([@armano2](https://github.com/armano2))\\n- `docusaurus-utils`\\n - [#4581](https://github.com/facebook/docusaurus/pull/4581) feat(v2): default theme translations: locale \\"pt\\" should load \\"pt-BR\\" translations ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#4495](https://github.com/facebook/docusaurus/pull/4495) feat(v2): include frontmatter in loadedContent doc metadatas ([@kaytwo](https://github.com/kaytwo))\\n - [#4500](https://github.com/facebook/docusaurus/pull/4500) feat(v2): provide doc sidebar_label through sidebars.js ([@besemuna](https://github.com/besemuna))\\n- `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#4449](https://github.com/facebook/docusaurus/pull/4449) feat(v2): infer default i18n locale config from locale code ([@slorber](https://github.com/slorber))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4619](https://github.com/facebook/docusaurus/pull/4619) refactor(v2): rename class main-docs-wrapper to docs-wrapper ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#4582](https://github.com/facebook/docusaurus/pull/4582) feat(v2): auto-generated sidebars, frontmatter-less sites ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#4627](https://github.com/facebook/docusaurus/pull/4627) chore(v2): update Infima to alpha.22 ([@slorber](https://github.com/slorber))\\n - [#4621](https://github.com/facebook/docusaurus/pull/4621) fix(v2): center align content if no sidebar exists ([@lex111](https://github.com/lex111))\\n - [#4620](https://github.com/facebook/docusaurus/pull/4620) fix(v2): restore toggle responsive sidebar button ([@lex111](https://github.com/lex111))\\n - [#4598](https://github.com/facebook/docusaurus/pull/4598) fix(v2): render escaped HTML entities inside code properly ([@lex111](https://github.com/lex111))\\n - [#4554](https://github.com/facebook/docusaurus/pull/4554) fix: DocNavbarItem error message ([@serut](https://github.com/serut))\\n - [#4468](https://github.com/facebook/docusaurus/pull/4468) fix(v2): select correct tab when items are incorrectly ordered ([@armano2](https://github.com/armano2))\\n - [#4461](https://github.com/facebook/docusaurus/pull/4461) fix(v2): Fix i18n staging deployment due to json typo ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4541](https://github.com/facebook/docusaurus/pull/4541) fix(v2): fix code block title parsing, support multiple metastring attributes ([@duanwilliam](https://github.com/duanwilliam))\\n - [#4600](https://github.com/facebook/docusaurus/pull/4600) fix(v2): use page title from config if not set ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4501](https://github.com/facebook/docusaurus/pull/4501) fix(v2): fail-safe usage of browser storage (localStorage/sessionStorage) when access is denied ([@jknoxville](https://github.com/jknoxville))\\n- `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus`\\n - [#4593](https://github.com/facebook/docusaurus/pull/4593) fix(v2): i18n perf issue: getTranslationFile() should not load content again ([@slorber](https://github.com/slorber))\\n- Other\\n - [#4574](https://github.com/facebook/docusaurus/pull/4574) fix(v2): examples should use Node 14 by default on CodeSandbox + regen with alpha72 ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#4547](https://github.com/facebook/docusaurus/pull/4547) feat(v2) : use symbols to denote swizzle safety ([@besemuna](https://github.com/besemuna))\\n - [#4575](https://github.com/facebook/docusaurus/pull/4575) fix(v2): fix i18n isLastLocale bug preventing docusaurus from building some locales ([@slorber](https://github.com/slorber))\\n - [#4506](https://github.com/facebook/docusaurus/pull/4506) fix(v2): remove no longer used postcss-present-env from dependencies ([@armano2](https://github.com/armano2))\\n - [#4444](https://github.com/facebook/docusaurus/pull/4444) fix(v2): Fix writeHeadingIds on Windows due to non-posix paths ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`\\n - [#4507](https://github.com/facebook/docusaurus/pull/4507) fix(v2): do not warn about duplicated title for pages ([@armano2](https://github.com/armano2))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus`\\n - [#4466](https://github.com/facebook/docusaurus/pull/4466) fix(v2): i18n fixes ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus`\\n - [#4459](https://github.com/facebook/docusaurus/pull/4459) fix(v2): Export Joi from validation-utils package ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#4626](https://github.com/facebook/docusaurus/pull/4626) refactor(v2): toggleResponsiveSidebar => more stable callback ([@slorber](https://github.com/slorber))\\n - [#4617](https://github.com/facebook/docusaurus/pull/4617) refactor(v2): simplify and optimize sidebar ([@slorber](https://github.com/slorber))\\n - [#4608](https://github.com/facebook/docusaurus/pull/4608) refactor(v2): replace react-toggle with own implementation ([@lex111](https://github.com/lex111))\\n - [#4601](https://github.com/facebook/docusaurus/pull/4601) refactor(v2): increase heading anchor offset ([@lex111](https://github.com/lex111))\\n - [#4467](https://github.com/facebook/docusaurus/pull/4467) refactor(v2): add missing types to theme-classic useTheme ([@armano2](https://github.com/armano2))\\n - [#4448](https://github.com/facebook/docusaurus/pull/4448) polish(v2): Add german translations ([@miku86](https://github.com/miku86))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4619](https://github.com/facebook/docusaurus/pull/4619) refactor(v2): rename class main-docs-wrapper to docs-wrapper ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus`\\n - [#4451](https://github.com/facebook/docusaurus/pull/4451) refactor(v2): correct client types and type aliases ([@armano2](https://github.com/armano2))\\n- `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#4450](https://github.com/facebook/docusaurus/pull/4450) chore(v2): Fix more linter warnings ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`\\n - [#4442](https://github.com/facebook/docusaurus/pull/4442) chore(v2): Fix linter warnings ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#4375](https://github.com/facebook/docusaurus/pull/4375) refactor(v2): TS config update: reduce the size of npm modules ([@RDIL](https://github.com/RDIL))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#4616](https://github.com/facebook/docusaurus/pull/4616) docs(v2): add showcase: kubevela ([@sunny0826](https://github.com/sunny0826))\\n - [#4612](https://github.com/facebook/docusaurus/pull/4612) docs(v2): Added IntelAGENT website to showcase. ([@akepecs](https://github.com/akepecs))\\n - [#4609](https://github.com/facebook/docusaurus/pull/4609) docs(v2): add clarity to tip in versioned using-themes page ([@dickwyn](https://github.com/dickwyn))\\n - [#4606](https://github.com/facebook/docusaurus/pull/4606) docs(v2): heading typo ([@arturcarvalho](https://github.com/arturcarvalho))\\n - [#4604](https://github.com/facebook/docusaurus/pull/4604) docs(v2): add clarity to tip in using-themes page ([@dickwyn](https://github.com/dickwyn))\\n - [#4602](https://github.com/facebook/docusaurus/pull/4602) docs(v2): Add \\"PptxGenJS\\" to showcase ([@gitbrent](https://github.com/gitbrent))\\n - [#4599](https://github.com/facebook/docusaurus/pull/4599) docs(v2): i18n site: enable ko + zh-CN locales ([@slorber](https://github.com/slorber))\\n - [#4595](https://github.com/facebook/docusaurus/pull/4595) docs(v2): fix typo theme-configuration.md ([@forresst](https://github.com/forresst))\\n - [#4594](https://github.com/facebook/docusaurus/pull/4594) docs(v2): Include docusaurus-protobuffet to community plugins ([@AnthonyBobsin](https://github.com/AnthonyBobsin))\\n - [#4558](https://github.com/facebook/docusaurus/pull/4558) docs(v2): fixed broken link in i18n-tutorial.md ([@covalentbond](https://github.com/covalentbond))\\n - [#4573](https://github.com/facebook/docusaurus/pull/4573) docs: update README badges ([@slorber](https://github.com/slorber))\\n - [#4559](https://github.com/facebook/docusaurus/pull/4559) docs(v2): fixed the directory of index.js ([@covalentbond](https://github.com/covalentbond))\\n - [#4568](https://github.com/facebook/docusaurus/pull/4568) docs(v2): add social-embed to showcase ([@tony](https://github.com/tony))\\n - [#4570](https://github.com/facebook/docusaurus/pull/4570) docs(v2): Add Redis Labs Developer Site to docusaurus showcase page ([@ajeetraina](https://github.com/ajeetraina))\\n - [#4543](https://github.com/facebook/docusaurus/pull/4543) docs(v2): fix run-on sentence ([@duanwilliam](https://github.com/duanwilliam))\\n - [#4539](https://github.com/facebook/docusaurus/pull/4539) docs(v2): fix typo deployment.mdx ([@forresst](https://github.com/forresst))\\n - [#4538](https://github.com/facebook/docusaurus/pull/4538) Add Tuist to the list of projects that use Docusaurus ([@pepibumur](https://github.com/pepibumur))\\n - [#4531](https://github.com/facebook/docusaurus/pull/4531) docs(v2): remove duplicate line on v1 docs ([@loozhengyuan](https://github.com/loozhengyuan))\\n - [#4524](https://github.com/facebook/docusaurus/pull/4524) docs(v2): config for self-hosted docsearch crawler ([@loozhengyuan](https://github.com/loozhengyuan))\\n - [#4526](https://github.com/facebook/docusaurus/pull/4526) docs(v2): fix markdown headings level 4 ([@forresst](https://github.com/forresst))\\n - [#4505](https://github.com/facebook/docusaurus/pull/4505) docs(v2): add more links to v1: announcementBar, versionDropdown, homepage ([@slorber](https://github.com/slorber))\\n - [#4497](https://github.com/facebook/docusaurus/pull/4497) docs: fix link to issue template ([@forresst](https://github.com/forresst))\\n - [#4481](https://github.com/facebook/docusaurus/pull/4481) docs(v2): fix grammar and improve wording ([@aehrea](https://github.com/aehrea))\\n - [#4472](https://github.com/facebook/docusaurus/pull/4472) docs(v2): fixed broken link in sidebar documentation ([@covalentbond](https://github.com/covalentbond))\\n - [#4470](https://github.com/facebook/docusaurus/pull/4470) docs(v2): Add missing i18n docs: API lifecycles + Crowdin migration guide ([@slorber](https://github.com/slorber))\\n - [#4460](https://github.com/facebook/docusaurus/pull/4460) docs(v2): use explicit heading IDs ([@lex111](https://github.com/lex111))\\n - [#4446](https://github.com/facebook/docusaurus/pull/4446) docs(v2): Add blog.johnnyreilly.com to showcase ([@johnnyreilly](https://github.com/johnnyreilly))\\n - [#4430](https://github.com/facebook/docusaurus/pull/4430) docs(v2): add Deploy with QuandCDN ([@steveworley](https://github.com/steveworley))\\n - [#4441](https://github.com/facebook/docusaurus/pull/4441) docs(v2): add stylable site to users showcase list ([@tomrav](https://github.com/tomrav))\\n- `docusaurus-init`\\n - [#4561](https://github.com/facebook/docusaurus/pull/4561) docs(v2): add a missing slug from the initial template ([@Foxeye-Rinx](https://github.com/Foxeye-Rinx))\\n - [#4560](https://github.com/facebook/docusaurus/pull/4560) docs(v2): fixed typos ([@covalentbond](https://github.com/covalentbond))\\n - [#4546](https://github.com/facebook/docusaurus/pull/4546) docs(v2): add a missing \\"export\\" from the initial template ([@Foxeye-Rinx](https://github.com/Foxeye-Rinx))\\n - [#4320](https://github.com/facebook/docusaurus/pull/4320) feat(v2): Improve the initial templates #4302 ([@besemuna](https://github.com/besemuna))\\n- `docusaurus-migrate`, `docusaurus`\\n - [#4479](https://github.com/facebook/docusaurus/pull/4479) docs(v2): fixed typos ([@covalentbond](https://github.com/covalentbond))\\n\\n## :house: Internal\\n\\n- `docusaurus-theme-classic`\\n - [#4627](https://github.com/facebook/docusaurus/pull/4627) chore(v2): update Infima to alpha.22 ([@slorber](https://github.com/slorber))\\n - [#4463](https://github.com/facebook/docusaurus/pull/4463) chore: fb json header commit typo ([@slorber](https://github.com/slorber))\\n- Other\\n - [#4613](https://github.com/facebook/docusaurus/pull/4613) chore(v2): fix yarn2 end2end test by using lerna publish --exact ([@slorber](https://github.com/slorber))\\n - [#4611](https://github.com/facebook/docusaurus/pull/4611) chore(v2): CI: do not build all locales when monitoring build time perf ([@slorber](https://github.com/slorber))\\n - [#4486](https://github.com/facebook/docusaurus/pull/4486) ci: enable yarn install cache ([@armano2](https://github.com/armano2))\\n - [#4508](https://github.com/facebook/docusaurus/pull/4508) ci: change default actions timeout from 6h to 30m ([@armano2](https://github.com/armano2))\\n - [#4488](https://github.com/facebook/docusaurus/pull/4488) chore(v2): fix typo in classic init template ([@clarus](https://github.com/clarus))\\n - [#4471](https://github.com/facebook/docusaurus/pull/4471) chore: fix GH actions lint problem matchers issue in PR ([@slorber](https://github.com/slorber))\\n - [#4458](https://github.com/facebook/docusaurus/pull/4458) chore(v2): enable staging locales: ko ja ([@slorber](https://github.com/slorber))\\n - [#4457](https://github.com/facebook/docusaurus/pull/4457) chore(v2): remove docs for alpha v70 ([@lex111](https://github.com/lex111))\\n - [#4452](https://github.com/facebook/docusaurus/pull/4452) chore(v2): update typescript-eslint to v4.18.0 ([@armano2](https://github.com/armano2))\\n- `docusaurus`\\n - [#4516](https://github.com/facebook/docusaurus/pull/4516) ci(v2): fail CI if build takes too much time ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#4490](https://github.com/facebook/docusaurus/pull/4490) chore: rename v2.docusaurus.io urls after domain switch + redirect + cleanups ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`\\n - [#4475](https://github.com/facebook/docusaurus/pull/4475) chore: prepare v1-v2 domain switch ([@slorber](https://github.com/slorber))\\n - [#4447](https://github.com/facebook/docusaurus/pull/4447) chore: simplify CI setup ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`, `docusaurus-init`\\n - [#4453](https://github.com/facebook/docusaurus/pull/4453) chore(v2): migrate babel-eslint to @babel/eslint-parser ([@armano2](https://github.com/armano2))\\n- `docusaurus-utils-validation`\\n - [#4464](https://github.com/facebook/docusaurus/pull/4464) chore(v2): Joi cyclic dep warning ([@slorber](https://github.com/slorber))\\n- `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-ideal-image`, `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`\\n - [#4462](https://github.com/facebook/docusaurus/pull/4462) chore: json files should be linted ([@slorber](https://github.com/slorber))\\n\\n## :running: Performance\\n\\n- `docusaurus-theme-classic`\\n - [#4626](https://github.com/facebook/docusaurus/pull/4626) refactor(v2): toggleResponsiveSidebar => more stable callback ([@slorber](https://github.com/slorber))\\n - [#4603](https://github.com/facebook/docusaurus/pull/4603) perf(v2): avoid rerender of sidebar items while scrolling ([@lex111](https://github.com/lex111))\\n - [#4473](https://github.com/facebook/docusaurus/pull/4473) perf(v2): reduce amount of component updates while scrolling ([@armano2](https://github.com/armano2))\\n\\n## Committers: 37\\n\\n- Ajeet Singh Raina, Docker Captain, RedisLabs ([@ajeetraina](https://github.com/ajeetraina))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Anthony Bobsin ([@AnthonyBobsin](https://github.com/AnthonyBobsin))\\n- Arijit Kundu ([@covalentbond](https://github.com/covalentbond))\\n- Armano ([@armano2](https://github.com/armano2))\\n- Artur Carvalho ([@arturcarvalho](https://github.com/arturcarvalho))\\n- Brent Ely ([@gitbrent](https://github.com/gitbrent))\\n- Chris Kanich ([@kaytwo](https://github.com/kaytwo))\\n- Dennis Thompson ([@atomicpages](https://github.com/atomicpages))\\n- Dick Wyn Yong ([@dickwyn](https://github.com/dickwyn))\\n- Forresst ([@forresst](https://github.com/forresst))\\n- Guillaume Claret ([@clarus](https://github.com/clarus))\\n- John Knox ([@jknoxville](https://github.com/jknoxville))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Lisa Chandra ([@lisa761](https://github.com/lisa761))\\n- Lucas Alves ([@lucalves](https://github.com/lucalves))\\n- Marco Enrico ([@gumacahin](https://github.com/gumacahin))\\n- Pedro Pi\xf1era Buend\xeda ([@pepibumur](https://github.com/pepibumur))\\n- Reece Dunham ([@RDIL](https://github.com/RDIL))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- Steve ([@steveworley](https://github.com/steveworley))\\n- Steven Hansel ([@ShinteiMai](https://github.com/ShinteiMai))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tales Porto ([@talesporto](https://github.com/talesporto))\\n- Thiago Sciotta ([@thiagog3](https://github.com/thiagog3))\\n- Tiago Ribeiro ([@tiago-rr](https://github.com/tiago-rr))\\n- Tom Raviv ([@tomrav](https://github.com/tomrav))\\n- Tony Narlock ([@tony](https://github.com/tony))\\n- ZhengYuan Loo ([@loozhengyuan](https://github.com/loozhengyuan))\\n- [@Foxeye-Rinx](https://github.com/Foxeye-Rinx)\\n- [@aehrea](https://github.com/aehrea)\\n- [@akepecs](https://github.com/akepecs)\\n- [@besemuna](https://github.com/besemuna)\\n- [@duanwilliam](https://github.com/duanwilliam)\\n- [@miku86](https://github.com/miku86)\\n- [@serut](https://github.com/serut)\\n- guoxudong ([@sunny0826](https://github.com/sunny0826))"},{"id":"/2.0.0-alpha.72","metadata":{"permalink":"/changelog/2.0.0-alpha.72","source":"@site/changelog/source/2.0.0-alpha.72.md","title":"2.0.0-alpha.72","description":"Breaking Change","date":"2021-03-16T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Armano","alias":"armano2","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png","key":"armano2","page":null},{"name":"Harvtronix","alias":"Harvtronix","url":"https://github.com/Harvtronix","imageURL":"https://github.com/Harvtronix.png","key":"Harvtronix","page":null},{"name":"Joon-Ha Lee","alias":"koko8829","url":"https://github.com/koko8829","imageURL":"https://github.com/koko8829.png","key":"koko8829","page":null},{"name":"Leandro Oriente","alias":"leandrooriente","url":"https://github.com/leandrooriente","imageURL":"https://github.com/leandrooriente.png","key":"leandrooriente","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Long Ho","alias":"longlho","url":"https://github.com/longlho","imageURL":"https://github.com/longlho.png","key":"longlho","page":null},{"name":"Lowen","alias":"lowenhere","url":"https://github.com/lowenhere","imageURL":"https://github.com/lowenhere.png","key":"lowenhere","page":null},{"name":"Pierre-Gilles Leymarie","alias":"Pierre-Gilles","url":"https://github.com/Pierre-Gilles","imageURL":"https://github.com/Pierre-Gilles.png","key":"Pierre-Gilles","page":null},{"name":"Quan","alias":"quanengineering","url":"https://github.com/quanengineering","imageURL":"https://github.com/quanengineering.png","key":"quanengineering","page":null},{"name":"Rhodanthe1116","alias":"Rhodanthe1116","url":"https://github.com/Rhodanthe1116","imageURL":"https://github.com/Rhodanthe1116.png","key":"Rhodanthe1116","page":null},{"name":"Steven Hansel","alias":"ShinteiMai","url":"https://github.com/ShinteiMai","imageURL":"https://github.com/ShinteiMai.png","key":"ShinteiMai","page":null},{"name":"Simen Bekkhus","alias":"SimenB","url":"https://github.com/SimenB","imageURL":"https://github.com/SimenB.png","key":"SimenB","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Zoltan Kochan","alias":"zkochan","url":"https://github.com/zkochan","imageURL":"https://github.com/zkochan.png","key":"zkochan","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-03-16T20:00","authors":["armano2","Harvtronix","koko8829","leandrooriente","lex111","longlho","lowenhere","Pierre-Gilles","quanengineering","Rhodanthe1116","ShinteiMai","SimenB","slorber","zkochan"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.73","permalink":"/changelog/2.0.0-alpha.73"},"nextItem":{"title":"2.0.0-alpha.71","permalink":"/changelog/2.0.0-alpha.71"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\nStarting with this release for a proper work of i18n functionality, you need to either use Node v14+ or in case of using earlier version of Node.js install [`full-icu` package](https://www.npmjs.com/package/full-icu) and set `NODE_ICU_DATA` environment variable in your npm scripts, for example:\\n\\n```json\\n\\"scripts\\": {\\n \\"start\\": \\"cross-env NODE_ICU_DATA=node_modules/full-icu docusaurus start\\"\\n}\\n```\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-init`\\n - [#4302](https://github.com/facebook/docusaurus/pull/4302) feat(v2): Improve the initial templates ([@ShinteiMai](https://github.com/ShinteiMai))\\n- `docusaurus-theme-classic`\\n - [#4390](https://github.com/facebook/docusaurus/pull/4390) feat(v2): Add korean default translations ([@koko8829](https://github.com/koko8829))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#4429](https://github.com/facebook/docusaurus/pull/4429) chore(v2): upgrade Infima to v0.2.0-alpha.21 ([@lex111](https://github.com/lex111))\\n - [#4428](https://github.com/facebook/docusaurus/pull/4428) fix(v2): allow using pre tag in Markdown directly ([@lex111](https://github.com/lex111))\\n - [#4381](https://github.com/facebook/docusaurus/pull/4381) fix(v2): specify proper TS path in classic theme ([@lex111](https://github.com/lex111))\\n - [#4383](https://github.com/facebook/docusaurus/pull/4383) fix(v2): set theme color mode for SSR ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-pwa`\\n - [#4424](https://github.com/facebook/docusaurus/pull/4424) fix(v2): add missing peer dep on @babel/core ([@SimenB](https://github.com/SimenB))\\n - [#4377](https://github.com/facebook/docusaurus/pull/4377) fix(v2): PWA issues + improve docs ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#4407](https://github.com/facebook/docusaurus/pull/4407) fix(v2): broken link checker should not report false positives when using encoded chars ([@Harvtronix](https://github.com/Harvtronix))\\n- Other\\n - [#4410](https://github.com/facebook/docusaurus/pull/4410) fix(v1): Fix v1 site deployment with Crowdin again... ([@slorber](https://github.com/slorber))\\n - [#4396](https://github.com/facebook/docusaurus/pull/4396) fix(v1): Temp fix v1 site deployment: fail-safe on Crowdin upload translations error ([@slorber](https://github.com/slorber))\\n - [#4395](https://github.com/facebook/docusaurus/pull/4395) fix(v1): fix v1 site deploy issues ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus`\\n - [#4418](https://github.com/facebook/docusaurus/pull/4418) refactor(v2): correct plugin types ([@armano2](https://github.com/armano2))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`\\n - [#4405](https://github.com/facebook/docusaurus/pull/4405) refactor(v2): i18n cleanups / refactors ([@longlho](https://github.com/longlho))\\n- `docusaurus-module-type-aliases`\\n - [#4387](https://github.com/facebook/docusaurus/pull/4387) refactor(v2): add ExecutionEnvironment, BrowserOnly, isInternalUrl to type aliases ([@armano2](https://github.com/armano2))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#4402](https://github.com/facebook/docusaurus/pull/4402) refactor(v2): merge linkify function used in blog and docs and align properties ([@armano2](https://github.com/armano2))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-docs`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus`\\n - [#4382](https://github.com/facebook/docusaurus/pull/4382) refactor(v2): correct some of type errors reported by eslint ([@armano2](https://github.com/armano2))\\n- `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4385](https://github.com/facebook/docusaurus/pull/4385) refactor(v2): add missing theme-classic types ([@armano2](https://github.com/armano2))\\n\\n## :memo: Documentation\\n\\n- [#4416](https://github.com/facebook/docusaurus/pull/4416) docs(v2): add Realtime Web Applications Workshop to showcase ([@lowenhere](https://github.com/lowenhere))\\n- [#4408](https://github.com/facebook/docusaurus/pull/4408) docs(v2): add gladysassistant.com to showcase ([@Pierre-Gilles](https://github.com/Pierre-Gilles))\\n- [#4386](https://github.com/facebook/docusaurus/pull/4386) docs(v2): Showcase the pnpm docs ([@zkochan](https://github.com/zkochan))\\n- [#4367](https://github.com/facebook/docusaurus/pull/4367) docs(v2): releasing i18n blog post ([@slorber](https://github.com/slorber))\\n\\n## :house: Internal\\n\\n- `docusaurus-1.x`\\n - [#4401](https://github.com/facebook/docusaurus/pull/4401) chore(v1): fix CircleCI v1 site deploy ([@slorber](https://github.com/slorber))\\n- Other\\n - [#4399](https://github.com/facebook/docusaurus/pull/4399) chore(v2): upgrade example projects ([@slorber](https://github.com/slorber))\\n - [#4398](https://github.com/facebook/docusaurus/pull/4398) chore(v1): trigger v1 site deploy through CI ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`\\n - [#4384](https://github.com/facebook/docusaurus/pull/4384) chore(v2): avoid bad publish of intl-locales-supported ([@lex111](https://github.com/lex111))\\n\\n## Committers: 14\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Armano ([@armano2](https://github.com/armano2))\\n- Harvtronix ([@Harvtronix](https://github.com/Harvtronix))\\n- Joon-Ha Lee ([@koko8829](https://github.com/koko8829))\\n- Leandro Oriente ([@leandrooriente](https://github.com/leandrooriente))\\n- Long Ho ([@longlho](https://github.com/longlho))\\n- Lowen ([@lowenhere](https://github.com/lowenhere))\\n- Pierre-Gilles Leymarie ([@Pierre-Gilles](https://github.com/Pierre-Gilles))\\n- Quan ([@quanengineering](https://github.com/quanengineering))\\n- Simen Bekkhus ([@SimenB](https://github.com/SimenB))\\n- Steven Hansel ([@ShinteiMai](https://github.com/ShinteiMai))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Zoltan Kochan ([@zkochan](https://github.com/zkochan))\\n- [@Rhodanthe1116](https://github.com/Rhodanthe1116)"},{"id":"/2.0.0-alpha.71","metadata":{"permalink":"/changelog/2.0.0-alpha.71","source":"@site/changelog/source/2.0.0-alpha.71.md","title":"2.0.0-alpha.71","description":"New Feature","date":"2021-03-09T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Ali Saki","alias":"3alisaki","url":"https://github.com/3alisaki","imageURL":"https://github.com/3alisaki.png","key":"3alisaki","page":null},{"name":"Joel M","alias":"9oelM","url":"https://github.com/9oelM","imageURL":"https://github.com/9oelM.png","key":"9oelM","page":null},{"name":"Apurva Ojas","alias":"apurvaojas","url":"https://github.com/apurvaojas","imageURL":"https://github.com/apurvaojas.png","key":"apurvaojas","page":null},{"name":"Armano","alias":"armano2","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png","key":"armano2","page":null},{"name":"Arthur","alias":"ArtFlag","url":"https://github.com/ArtFlag","imageURL":"https://github.com/ArtFlag.png","key":"ArtFlag","page":null},{"name":"Jola","alias":"asystentka-jolka","url":"https://github.com/asystentka-jolka","imageURL":"https://github.com/asystentka-jolka.png","key":"asystentka-jolka","page":null},{"name":"Andrew Taft","alias":"ataft","url":"https://github.com/ataft","imageURL":"https://github.com/ataft.png","key":"ataft","page":null},{"name":"aukokyong","alias":"aukokyong","url":"https://github.com/aukokyong","imageURL":"https://github.com/aukokyong.png","key":"aukokyong","page":null},{"name":"Nahiyan Kamal","alias":"ayonious","url":"https://github.com/ayonious","imageURL":"https://github.com/ayonious.png","key":"ayonious","page":null},{"name":"Martin Ad\xe1mek","alias":"B4nan","url":"https://github.com/B4nan","imageURL":"https://github.com/B4nan.png","key":"B4nan","page":null},{"name":"Ben","alias":"ben-qnimble","url":"https://github.com/ben-qnimble","imageURL":"https://github.com/ben-qnimble.png","key":"ben-qnimble","page":null},{"name":"BennoDev","alias":"bennodev19","url":"https://github.com/bennodev19","imageURL":"https://github.com/bennodev19.png","key":"bennodev19","page":null},{"name":"\xc7a\u011Flar Tural\u0131","alias":"caglarturali","url":"https://github.com/caglarturali","imageURL":"https://github.com/caglarturali.png","key":"caglarturali","page":null},{"name":"Christian Bromann","alias":"christian-bromann","url":"https://github.com/christian-bromann","imageURL":"https://github.com/christian-bromann.png","key":"christian-bromann","page":null},{"name":"David Barrat","alias":"dbrrt","url":"https://github.com/dbrrt","imageURL":"https://github.com/dbrrt.png","key":"dbrrt","page":null},{"name":"Gr\xe9gory Heitz","alias":"edno","url":"https://github.com/edno","imageURL":"https://github.com/edno.png","key":"edno","page":null},{"name":"Eduardo L\xe1zaro","alias":"edulazaro","url":"https://github.com/edulazaro","imageURL":"https://github.com/edulazaro.png","key":"edulazaro","page":null},{"name":"Eric Carboni","alias":"eric-hc","url":"https://github.com/eric-hc","imageURL":"https://github.com/eric-hc.png","key":"eric-hc","page":null},{"name":"Mohd Shad Mirza","alias":"iamshadmirza","url":"https://github.com/iamshadmirza","imageURL":"https://github.com/iamshadmirza.png","key":"iamshadmirza","page":null},{"name":"Bhargav Ponnapalli","alias":"imbhargav5","url":"https://github.com/imbhargav5","imageURL":"https://github.com/imbhargav5.png","key":"imbhargav5","page":null},{"name":"Ivan Ru\u017Eevi\u0107","alias":"iruzevic","url":"https://github.com/iruzevic","imageURL":"https://github.com/iruzevic.png","key":"iruzevic","page":null},{"name":"Jessica Lin","alias":"jlin27","url":"https://github.com/jlin27","imageURL":"https://github.com/jlin27.png","key":"jlin27","page":null},{"name":"Joel Marcey","alias":"JoelMarcey","url":"https://github.com/JoelMarcey","imageURL":"https://github.com/JoelMarcey.png","key":"JoelMarcey","page":null},{"name":"Juan Carlos Blanco Delgado","alias":"juancarlosjr97","url":"https://github.com/juancarlosjr97","imageURL":"https://github.com/juancarlosjr97.png","key":"juancarlosjr97","page":null},{"name":"\u741A\u81F4\u8FDC","alias":"juzhiyuan","url":"https://github.com/juzhiyuan","imageURL":"https://github.com/juzhiyuan.png","key":"juzhiyuan","page":null},{"name":"Kumar Aditya","alias":"kumaraditya303","url":"https://github.com/kumaraditya303","imageURL":"https://github.com/kumaraditya303.png","key":"kumaraditya303","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Pablo Vidal","alias":"limkinZero","url":"https://github.com/limkinZero","imageURL":"https://github.com/limkinZero.png","key":"limkinZero","page":null},{"name":"Power Lin","alias":"linyuxuanlin","url":"https://github.com/linyuxuanlin","imageURL":"https://github.com/linyuxuanlin.png","key":"linyuxuanlin","page":null},{"name":"Lisa Chandra","alias":"lisa761","url":"https://github.com/lisa761","imageURL":"https://github.com/lisa761.png","key":"lisa761","page":null},{"name":"LittleboyHarry","alias":"LittleboyHarry","url":"https://github.com/LittleboyHarry","imageURL":"https://github.com/LittleboyHarry.png","key":"LittleboyHarry","page":null},{"name":"Long Ho","alias":"longlho","url":"https://github.com/longlho","imageURL":"https://github.com/longlho.png","key":"longlho","page":null},{"name":"Matteo Manzinello","alias":"manzinello","url":"https://github.com/manzinello","imageURL":"https://github.com/manzinello.png","key":"manzinello","page":null},{"name":"Massoud Maboudi","alias":"massoudmaboudi","url":"https://github.com/massoudmaboudi","imageURL":"https://github.com/massoudmaboudi.png","key":"massoudmaboudi","page":null},{"name":"Matan Borenkraout","alias":"MatanBobi","url":"https://github.com/MatanBobi","imageURL":"https://github.com/MatanBobi.png","key":"MatanBobi","page":null},{"name":"Miroiu Emanuel","alias":"miroiu","url":"https://github.com/miroiu","imageURL":"https://github.com/miroiu.png","key":"miroiu","page":null},{"name":"MisterFISHUP","alias":"MisterFISHUP","url":"https://github.com/MisterFISHUP","imageURL":"https://github.com/MisterFISHUP.png","key":"MisterFISHUP","page":null},{"name":"moonrailgun","alias":"moonrailgun","url":"https://github.com/moonrailgun","imageURL":"https://github.com/moonrailgun.png","key":"moonrailgun","page":null},{"name":"Sean Campbell","alias":"natac13","url":"https://github.com/natac13","imageURL":"https://github.com/natac13.png","key":"natac13","page":null},{"name":"Nico Jansen","alias":"nicojs","url":"https://github.com/nicojs","imageURL":"https://github.com/nicojs.png","key":"nicojs","page":null},{"name":"Nikolay Samokhvalov","alias":"NikolayS","url":"https://github.com/NikolayS","imageURL":"https://github.com/NikolayS.png","key":"NikolayS","page":null},{"name":"Nathan Bosscher","alias":"ntbosscher","url":"https://github.com/ntbosscher","imageURL":"https://github.com/ntbosscher.png","key":"ntbosscher","page":null},{"name":"Matt Oestreich","alias":"oze4","url":"https://github.com/oze4","imageURL":"https://github.com/oze4.png","key":"oze4","page":null},{"name":"philipp985","alias":"philipp985","url":"https://github.com/philipp985","imageURL":"https://github.com/philipp985.png","key":"philipp985","page":null},{"name":"Reece Dunham","alias":"RDIL","url":"https://github.com/RDIL","imageURL":"https://github.com/RDIL.png","key":"RDIL","page":null},{"name":"roydukkey","alias":"roydukkey","url":"https://github.com/roydukkey","imageURL":"https://github.com/roydukkey.png","key":"roydukkey","page":null},{"name":"Saihajpreet Singh","alias":"saihaj","url":"https://github.com/saihaj","imageURL":"https://github.com/saihaj.png","key":"saihaj","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"Sam Hrncir","alias":"samhrncir","url":"https://github.com/samhrncir","imageURL":"https://github.com/samhrncir.png","key":"samhrncir","page":null},{"name":"sammychinedu2ky","alias":"sammychinedu2ky","url":"https://github.com/sammychinedu2ky","imageURL":"https://github.com/sammychinedu2ky.png","key":"sammychinedu2ky","page":null},{"name":"saydo17","alias":"saydo17","url":"https://github.com/saydo17","imageURL":"https://github.com/saydo17.png","key":"saydo17","page":null},{"name":"Sergio Moreno","alias":"semoal","url":"https://github.com/semoal","imageURL":"https://github.com/semoal.png","key":"semoal","page":null},{"name":"Siemienik Pawel","alias":"Siemienik","url":"https://github.com/Siemienik","imageURL":"https://github.com/Siemienik.png","key":"Siemienik","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"Sam Sam","alias":"sksamuel","url":"https://github.com/sksamuel","imageURL":"https://github.com/sksamuel.png","key":"sksamuel","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Ankur Kedia","alias":"theankurkedia","url":"https://github.com/theankurkedia","imageURL":"https://github.com/theankurkedia.png","key":"theankurkedia","page":null},{"name":"Theodore Chu","alias":"TheodoreChu","url":"https://github.com/TheodoreChu","imageURL":"https://github.com/TheodoreChu.png","key":"TheodoreChu","page":null},{"name":"Tien Vo Xuan","alias":"tienvx","url":"https://github.com/tienvx","imageURL":"https://github.com/tienvx.png","key":"tienvx","page":null},{"name":"tokarchyn","alias":"tokarchyn","url":"https://github.com/tokarchyn","imageURL":"https://github.com/tokarchyn.png","key":"tokarchyn","page":null},{"name":"Tomas Fernandez","alias":"tomsfernandez","url":"https://github.com/tomsfernandez","imageURL":"https://github.com/tomsfernandez.png","key":"tomsfernandez","page":null},{"name":"Vamsi Krishna Reddy Satti","alias":"vamsi3","url":"https://github.com/vamsi3","imageURL":"https://github.com/vamsi3.png","key":"vamsi3","page":null},{"name":"Kevin Viglucci","alias":"viglucci","url":"https://github.com/viglucci","imageURL":"https://github.com/viglucci.png","key":"viglucci","page":null},{"name":"Welly","alias":"wellyshen","url":"https://github.com/wellyshen","imageURL":"https://github.com/wellyshen.png","key":"wellyshen","page":null},{"name":"wolf20482","alias":"wolf20482","url":"https://github.com/wolf20482","imageURL":"https://github.com/wolf20482.png","key":"wolf20482","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null},{"name":"Yash Totale","alias":"YashTotale","url":"https://github.com/YashTotale","imageURL":"https://github.com/YashTotale.png","key":"YashTotale","page":null},{"name":"Yamagishi Kazutoshi","alias":"ykzts","url":"https://github.com/ykzts","imageURL":"https://github.com/ykzts.png","key":"ykzts","page":null},{"name":"Yuri Sulyma","alias":"ysulyma","url":"https://github.com/ysulyma","imageURL":"https://github.com/ysulyma.png","key":"ysulyma","page":null},{"name":"Yuval Hazaz","alias":"yuval-hazaz","url":"https://github.com/yuval-hazaz","imageURL":"https://github.com/yuval-hazaz.png","key":"yuval-hazaz","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-03-09T20:00","authors":["3alisaki","9oelM","apurvaojas","armano2","ArtFlag","asystentka-jolka","ataft","aukokyong","ayonious","B4nan","ben-qnimble","bennodev19","caglarturali","christian-bromann","dbrrt","edno","edulazaro","eric-hc","iamshadmirza","imbhargav5","iruzevic","jlin27","JoelMarcey","juancarlosjr97","juzhiyuan","kumaraditya303","lex111","limkinZero","linyuxuanlin","lisa761","LittleboyHarry","longlho","manzinello","massoudmaboudi","MatanBobi","miroiu","MisterFISHUP","moonrailgun","natac13","nicojs","NikolayS","ntbosscher","oze4","philipp985","RDIL","roydukkey","saihaj","SamChou19815","samhrncir","sammychinedu2ky","saydo17","semoal","Siemienik","Simek","sksamuel","slorber","theankurkedia","TheodoreChu","tienvx","tokarchyn","tomsfernandez","vamsi3","viglucci","wellyshen","wolf20482","yangshun","YashTotale","ykzts","ysulyma","yuval-hazaz"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.72","permalink":"/changelog/2.0.0-alpha.72"},"nextItem":{"title":"2.0.0-alpha.70","permalink":"/changelog/2.0.0-alpha.70"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-utils`, `docusaurus`\\n - [#4222](https://github.com/facebook/docusaurus/pull/4222) feat(v2): add ability to set custom heading id ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-live-codeblock`\\n - [#4328](https://github.com/facebook/docusaurus/pull/4328) feat(v2): Add playgroundPosition config for live codeblock ([@tokarchyn](https://github.com/tokarchyn))\\n- `docusaurus-theme-classic`\\n - [#4209](https://github.com/facebook/docusaurus/pull/4209) feat(v2): auto focus to tab if it is outside viewport ([@lex111](https://github.com/lex111))\\n - [#4329](https://github.com/facebook/docusaurus/pull/4329) feat(v2): add arabic translation ([@3alisaki](https://github.com/3alisaki))\\n - [#4325](https://github.com/facebook/docusaurus/pull/4325) feat(v2): [theme-classic] add Polish translation ([@Simek](https://github.com/Simek))\\n - [#4312](https://github.com/facebook/docusaurus/pull/4312) feat(v2): Add Turkish translations for theme labels ([@caglarturali](https://github.com/caglarturali))\\n - [#4271](https://github.com/facebook/docusaurus/pull/4271) feat(v2): add Farsi default translations ([@slorber](https://github.com/slorber))\\n - [#4261](https://github.com/facebook/docusaurus/pull/4261) feat(v2): add icon to generic sidebar link ([@lex111](https://github.com/lex111))\\n - [#4109](https://github.com/facebook/docusaurus/pull/4109) feat(v2): default canonical urls ([@slorber](https://github.com/slorber))\\n- `docusaurus-types`, `docusaurus`\\n - [#4308](https://github.com/facebook/docusaurus/pull/4308) feat(v2): add --config option to CLI ([@longlho](https://github.com/longlho))\\n - [#4185](https://github.com/facebook/docusaurus/pull/4185) feat(v2): allow extend PostCSS config ([@lex111](https://github.com/lex111))\\n - [#4021](https://github.com/facebook/docusaurus/pull/4021) feat(v2): Allow plugins to consume webpack stats ([@RDIL](https://github.com/RDIL))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#4303](https://github.com/facebook/docusaurus/pull/4303) feat(v2): add japanese translations ([@ykzts](https://github.com/ykzts))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus`\\n - [#4295](https://github.com/facebook/docusaurus/pull/4295) feat(v2): Add Interpolate / interpolate APIs + complete theme translations ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`\\n - [#4278](https://github.com/facebook/docusaurus/pull/4278) feat(v2): ability to \\"escape\\" JSX in MDX files as code blocks ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`\\n - [#4232](https://github.com/facebook/docusaurus/pull/4232) feat(v2): editUrl functions should receive md doc permalink ([@slorber](https://github.com/slorber))\\n - [#4121](https://github.com/facebook/docusaurus/pull/4121) feat(v2): editUrl function for advanced use-cases ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#4218](https://github.com/facebook/docusaurus/pull/4218) feat(v2): support/use React v17 by default ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#4215](https://github.com/facebook/docusaurus/pull/4215) feat(v2): Add i18n default code translation bundles ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#4140](https://github.com/facebook/docusaurus/pull/4140) feat(v2): add support for RTL direction ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4199](https://github.com/facebook/docusaurus/pull/4199) feat(v2): allow to change location of search bar ([@lex111](https://github.com/lex111))\\n - [#3993](https://github.com/facebook/docusaurus/pull/3993) feat(v2): themed logo in footer ([@natac13](https://github.com/natac13))\\n- `docusaurus`\\n - [#4198](https://github.com/facebook/docusaurus/pull/4198) feat(v2): add fonts loaders + webpack resolve.roots ([@slorber](https://github.com/slorber))\\n - [#3998](https://github.com/facebook/docusaurus/pull/3998) feat(v2): Cache hashed assets to dedicated folders ([@kumaraditya303](https://github.com/kumaraditya303))\\n - [#3979](https://github.com/facebook/docusaurus/pull/3979) feat(v2): better error message for invalid plugin config ([@9oelM](https://github.com/9oelM))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus`\\n - [#4168](https://github.com/facebook/docusaurus/pull/4168) feat(v2): Extract/translate hardcoded labels from classic theme ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`\\n - [#4098](https://github.com/facebook/docusaurus/pull/4098) feat(v2): improve templates, use JSDoc type annotation, improve `docusaurus.config.js` autocompletion ([@LittleboyHarry](https://github.com/LittleboyHarry))\\n- `docusaurus-init`, `docusaurus-migrate`\\n - [#3986](https://github.com/facebook/docusaurus/pull/3986) feat(v2): skip dependency install on docusaurus init ([@kumaraditya303](https://github.com/kumaraditya303))\\n- `docusaurus-plugin-content-docs`\\n - [#3949](https://github.com/facebook/docusaurus/pull/3949) feat(v2): new docs edit options: editCurrentVersion + editLocalizedDocs ([@slorber](https://github.com/slorber))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-1.x`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#4223](https://github.com/facebook/docusaurus/pull/4223) chore(v2): upgrade dependencies + require Node 12 ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#4366](https://github.com/facebook/docusaurus/pull/4366) fix(v2): align installed core-js version with babel config ([@armano2](https://github.com/armano2))\\n - [#4345](https://github.com/facebook/docusaurus/pull/4345) fix(v2): always extract translations from site/src ([@slorber](https://github.com/slorber))\\n - [#4342](https://github.com/facebook/docusaurus/pull/4342) chore(v2): bump clean-css to 5.1.1 ([@lex111](https://github.com/lex111))\\n - [#4212](https://github.com/facebook/docusaurus/pull/4212) fix(v2): typo in resolve.roots ([@slorber](https://github.com/slorber))\\n - [#4155](https://github.com/facebook/docusaurus/pull/4155) fix(v2): BaseUrl issue banner insertion should be prevented if JS can load ([@slorber](https://github.com/slorber))\\n - [#4137](https://github.com/facebook/docusaurus/pull/4137) fix(v2): escape apostrophes in route paths ([@lex111](https://github.com/lex111))\\n - [#4136](https://github.com/facebook/docusaurus/pull/4136) fix(v2): fix navigation from homepage ([@lex111](https://github.com/lex111))\\n - [#4125](https://github.com/facebook/docusaurus/pull/4125) fix(v2): baseUrl help banner should not be indexed by Google / SEO ([@slorber](https://github.com/slorber))\\n - [#4080](https://github.com/facebook/docusaurus/pull/4080) fix(v2): chokidar reloading debounced ([@semoal](https://github.com/semoal))\\n - [#3965](https://github.com/facebook/docusaurus/pull/3965) fix(v2): fix svg loader for CSS files ([@apurvaojas](https://github.com/apurvaojas))\\n - [#3943](https://github.com/facebook/docusaurus/pull/3943) fix(v2): disables all inlining in CleanCSS ([@lex111](https://github.com/lex111))\\n - [#3941](https://github.com/facebook/docusaurus/pull/3941) fix(v2): fix i18n build logging. ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#4349](https://github.com/facebook/docusaurus/pull/4349) fix(v2): fix update code translations script + update some translations ([@slorber](https://github.com/slorber))\\n - [#4311](https://github.com/facebook/docusaurus/pull/4311) fix(v2): fit footer in viewport when content area is too small ([@lex111](https://github.com/lex111))\\n - [#4340](https://github.com/facebook/docusaurus/pull/4340) fix(v2): prevent useless blog pages to be in search results ([@slorber](https://github.com/slorber))\\n - [#4274](https://github.com/facebook/docusaurus/pull/4274) fix(v2): theme classic should have lib-next prettified ([@slorber](https://github.com/slorber))\\n - [#4267](https://github.com/facebook/docusaurus/pull/4267) fix(v2): Allow null as valid for title of item in footer links. ([@ben-qnimble](https://github.com/ben-qnimble))\\n - [#4254](https://github.com/facebook/docusaurus/pull/4254) fix(v2): fix LTR PostCSS bug on Netlify and monorepo symlinks ([@slorber](https://github.com/slorber))\\n - [#4247](https://github.com/facebook/docusaurus/pull/4247) fix(v2): make doc container full width when hidden sidebar ([@lex111](https://github.com/lex111))\\n - [#4241](https://github.com/facebook/docusaurus/pull/4241) fix(v2): avoid horizontal scrolling when long lines of code ([@lex111](https://github.com/lex111))\\n - [#4200](https://github.com/facebook/docusaurus/pull/4200) fix(v2): various minor bugs with location hash ([@lex111](https://github.com/lex111))\\n - [#4195](https://github.com/facebook/docusaurus/pull/4195) fix(v2): restore hamburger menu ([@lex111](https://github.com/lex111))\\n - [#4189](https://github.com/facebook/docusaurus/pull/4189) fix(v2): prevent click on item menu with children on mobiles ([@lex111](https://github.com/lex111))\\n - [#4176](https://github.com/facebook/docusaurus/pull/4176) fix(v2): make locale dropdown accessible from keyboard ([@lex111](https://github.com/lex111))\\n - [#4163](https://github.com/facebook/docusaurus/pull/4163) fix(v2): fix warning and improve styling inline TOC ([@lex111](https://github.com/lex111))\\n - [#4162](https://github.com/facebook/docusaurus/pull/4162) fix(v2): make more accessible skip link ([@lex111](https://github.com/lex111))\\n - [#4160](https://github.com/facebook/docusaurus/pull/4160) fix(v2): fix hreflang headers ([@slorber](https://github.com/slorber))\\n - [#4147](https://github.com/facebook/docusaurus/pull/4147) fix(v2): avoid misuse section tag in blog posts ([@lex111](https://github.com/lex111))\\n - [#4146](https://github.com/facebook/docusaurus/pull/4146) fix(v2): use current color for language icon ([@lex111](https://github.com/lex111))\\n - [#4118](https://github.com/facebook/docusaurus/pull/4118) fix(v2): navbar dropdown subitems should be translated properly ([@slorber](https://github.com/slorber))\\n - [#4011](https://github.com/facebook/docusaurus/pull/4011) fix(v2): fix accessibility issue with IconArrow ([@natac13](https://github.com/natac13))\\n - [#3968](https://github.com/facebook/docusaurus/pull/3968) fix(v2): fix blog only contextual search ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#4315](https://github.com/facebook/docusaurus/pull/4315) fix(v2): make code blocks more standalone ([@lex111](https://github.com/lex111))\\n - [#4277](https://github.com/facebook/docusaurus/pull/4277) fix(v2): Code blocks should be LTR by default ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-live-codeblock`\\n - [#4318](https://github.com/facebook/docusaurus/pull/4318) fix(v2): evaluate code in live editor on client only ([@lex111](https://github.com/lex111))\\n - [#3954](https://github.com/facebook/docusaurus/pull/3954) fix(v2): allow async/await in live code editor ([@9oelM](https://github.com/9oelM))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#4339](https://github.com/facebook/docusaurus/pull/4339) fix(v2): search page results localization ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#4304](https://github.com/facebook/docusaurus/pull/4304) fix(v2): fix bad theme pluralization rules for some labels ([@slorber](https://github.com/slorber))\\n- `docusaurus-cssnano-preset`\\n - [#4240](https://github.com/facebook/docusaurus/pull/4240) fix(v2): remove PostCSS plugin for combine duplicated selectors ([@lex111](https://github.com/lex111))\\n- Other\\n - [#4234](https://github.com/facebook/docusaurus/pull/4234) fix(v2): fix website versions page ([@slorber](https://github.com/slorber))\\n - [#4233](https://github.com/facebook/docusaurus/pull/4233) fix(v2): website editUrl should target upstream docs ([@slorber](https://github.com/slorber))\\n - [#4067](https://github.com/facebook/docusaurus/pull/4067) fix(v2): Fix blog post url/date ([@slorber](https://github.com/slorber))\\n - [#3952](https://github.com/facebook/docusaurus/pull/3952) docs(v2): Fix invalid json ([@oze4](https://github.com/oze4))\\n- `docusaurus-theme-search-algolia`\\n - [#4188](https://github.com/facebook/docusaurus/pull/4188) fix(v2): prepend docsearch modal to body element ([@lex111](https://github.com/lex111))\\n - [#4154](https://github.com/facebook/docusaurus/pull/4154) fix(v2): add base url to opensearch.xml ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-ideal-image`\\n - [#4166](https://github.com/facebook/docusaurus/pull/4166) fix(v2): ideal image assets should be served under ./assets ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4092](https://github.com/facebook/docusaurus/pull/4092) fix(v2): fix/enhance minor i18n issues reported ([@slorber](https://github.com/slorber))\\n - [#3940](https://github.com/facebook/docusaurus/pull/3940) fix(v2): i18n should not crash theme without footer ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-sitemap`\\n - [#4004](https://github.com/facebook/docusaurus/pull/4004) fix(v2): Fix double trailingSlash in sitemap.xml ([@ntbosscher](https://github.com/ntbosscher))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils`\\n - [#3970](https://github.com/facebook/docusaurus/pull/3970) fix(v2): fix multi-instance mdx loaders not sandboxed correctly ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`\\n - [#3903](https://github.com/facebook/docusaurus/pull/3903) fix(v2): fix redirect toUrl (windows + trailing slash) ([@saydo17](https://github.com/saydo17))\\n- `docusaurus-utils`\\n - [#3944](https://github.com/facebook/docusaurus/pull/3944) fix(v2): ignore style imports in excerpt ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#4371](https://github.com/facebook/docusaurus/pull/4371) refactor(v2): update Russian translation in classic theme ([@lex111](https://github.com/lex111))\\n - [#4359](https://github.com/facebook/docusaurus/pull/4359) polish(v2): [theme-classic] slightly improve Japanese translation ([@MisterFISHUP](https://github.com/MisterFISHUP))\\n - [#4350](https://github.com/facebook/docusaurus/pull/4350) polish(v2): Updated theme label translations for Turkish ([@caglarturali](https://github.com/caglarturali))\\n - [#4351](https://github.com/facebook/docusaurus/pull/4351) polish(v2): add japanese translation for #4304 ([@ykzts](https://github.com/ykzts))\\n - [#4309](https://github.com/facebook/docusaurus/pull/4309) polish(v2): improved Farsi translation ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n - [#4279](https://github.com/facebook/docusaurus/pull/4279) polish(v2): theme default translations for language de / german ([@philipp985](https://github.com/philipp985))\\n - [#4275](https://github.com/facebook/docusaurus/pull/4275) polish(v2): Add more tags translations ([@slorber](https://github.com/slorber))\\n - [#4246](https://github.com/facebook/docusaurus/pull/4246) refactor(v2): add Russian translation for classic theme ([@lex111](https://github.com/lex111))\\n - [#4242](https://github.com/facebook/docusaurus/pull/4242) refactor(v2): use Link component for external links ([@lex111](https://github.com/lex111))\\n - [#4244](https://github.com/facebook/docusaurus/pull/4244) refactor(v2): clean-ups and fixes ([@lex111](https://github.com/lex111))\\n - [#4193](https://github.com/facebook/docusaurus/pull/4193) refactor(v2): update tabs to follow WAI-ARIA spec ([@lex111](https://github.com/lex111))\\n - [#4194](https://github.com/facebook/docusaurus/pull/4194) refactor(v2): use transform instead of top position for hideable navbar ([@lex111](https://github.com/lex111))\\n - [#4167](https://github.com/facebook/docusaurus/pull/4167) refactor(v2): minor styling improvements ([@lex111](https://github.com/lex111))\\n - [#4169](https://github.com/facebook/docusaurus/pull/4169) refactor(v2): remove delay after skip link pressed ([@lex111](https://github.com/lex111))\\n - [#4086](https://github.com/facebook/docusaurus/pull/4086) style(v2): add className to tab container ([@ArtFlag](https://github.com/ArtFlag))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#4352](https://github.com/facebook/docusaurus/pull/4352) refactor(v2): format last updated date using Intl ([@lex111](https://github.com/lex111))\\n - [#4243](https://github.com/facebook/docusaurus/pull/4243) refactor(v2): introduce Seo component for internal using ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-utils`\\n - [#4344](https://github.com/facebook/docusaurus/pull/4344) refactor(v2): format post date using Intl ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#4257](https://github.com/facebook/docusaurus/pull/4257) refactor(v2): improve notifier message ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#4219](https://github.com/facebook/docusaurus/pull/4219) refactor(v2): add more translatable strings ([@lex111](https://github.com/lex111))\\n- Other\\n - [#4074](https://github.com/facebook/docusaurus/pull/4074) polish(v2): improve codesandbox template package.json ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-debug`\\n - [#3953](https://github.com/facebook/docusaurus/pull/3953) refactor(v2): fix debug plugin name ([@RDIL](https://github.com/RDIL))\\n- `docusaurus-plugin-debug`, `docusaurus-theme-classic`\\n - [#3946](https://github.com/facebook/docusaurus/pull/3946) refactor(v2): minor a11y tweaks ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#4369](https://github.com/facebook/docusaurus/pull/4369) docs(v2): various improvements ([@lex111](https://github.com/lex111))\\n - [#4362](https://github.com/facebook/docusaurus/pull/4362) docs(v2): Add stryker-mutator.io to showcase ([@nicojs](https://github.com/nicojs))\\n - [#4354](https://github.com/facebook/docusaurus/pull/4354) docs(v2): add trpgengine showcase ([@moonrailgun](https://github.com/moonrailgun))\\n - [#4346](https://github.com/facebook/docusaurus/pull/4346) docs(v1): update phrasing for website dir relative to docs dir ([@aukokyong](https://github.com/aukokyong))\\n - [#4338](https://github.com/facebook/docusaurus/pull/4338) docs(v2): update showcase instruction regarding tags + fix site tags ([@slorber](https://github.com/slorber))\\n - [#4331](https://github.com/facebook/docusaurus/pull/4331) docs(v2): add ocpeasy to users ([@dbrrt](https://github.com/dbrrt))\\n - [#4307](https://github.com/facebook/docusaurus/pull/4307) docs(v2): Add RactivePlayer to showcase ([@ysulyma](https://github.com/ysulyma))\\n - [#4297](https://github.com/facebook/docusaurus/pull/4297) docs(v2): Fix examples by importing React ([@roydukkey](https://github.com/roydukkey))\\n - [#4296](https://github.com/facebook/docusaurus/pull/4296) docs(v2): move migrated sites from v1 to v2 showcase ([@lisa761](https://github.com/lisa761))\\n - [#4293](https://github.com/facebook/docusaurus/pull/4293) docs(v2): Added React Native ARIA to showcase ([@theankurkedia](https://github.com/theankurkedia))\\n - [#4284](https://github.com/facebook/docusaurus/pull/4284) docs(v2): Add AttoBot website to showcase page ([@wolf20482](https://github.com/wolf20482))\\n - [#4285](https://github.com/facebook/docusaurus/pull/4285) docs(v2): escape more jsx in mdx files for Crowdin ([@slorber](https://github.com/slorber))\\n - [#4283](https://github.com/facebook/docusaurus/pull/4283) docs(v2): Add Postgres.ai to showcase ([@NikolayS](https://github.com/NikolayS))\\n - [#4282](https://github.com/facebook/docusaurus/pull/4282) docs: update Netlify deploy status badge ([@slorber](https://github.com/slorber))\\n - [#4259](https://github.com/facebook/docusaurus/pull/4259) docs(v2): improve cli docs ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n - [#4266](https://github.com/facebook/docusaurus/pull/4266) docs(v2): update agilets banner ([@bennodev19](https://github.com/bennodev19))\\n - [#4263](https://github.com/facebook/docusaurus/pull/4263) docs(v2): remove npx and use github action to configure ssh key ([@MatanBobi](https://github.com/MatanBobi))\\n - [#4262](https://github.com/facebook/docusaurus/pull/4262) docs(v2): Added kotest to showcase ([@sksamuel](https://github.com/sksamuel))\\n - [#4256](https://github.com/facebook/docusaurus/pull/4256) docs(v2): Add docusaurus2-graphql-doc-generator to community resources ([@edno](https://github.com/edno))\\n - [#4252](https://github.com/facebook/docusaurus/pull/4252) docs(v2): Added mailgo to showcase ([@manzinello](https://github.com/manzinello))\\n - [#4251](https://github.com/facebook/docusaurus/pull/4251) docs(v2): Add Axioms to showcase ([@limkinZero](https://github.com/limkinZero))\\n - [#4237](https://github.com/facebook/docusaurus/pull/4237) docs(v2): Replace mbt-bundle by sicope-model ([@tienvx](https://github.com/tienvx))\\n - [#4236](https://github.com/facebook/docusaurus/pull/4236) docs(v2): v2 migration should mention RSS feed url change ([@slorber](https://github.com/slorber))\\n - [#4230](https://github.com/facebook/docusaurus/pull/4230) docs(v2): fix npm/yarn command example for swizzling TypeScript theme components ([@YashTotale](https://github.com/YashTotale))\\n - [#4229](https://github.com/facebook/docusaurus/pull/4229) docs(v2): Fix link to slash introduction svg ([@SamChou19815](https://github.com/SamChou19815))\\n - [#4226](https://github.com/facebook/docusaurus/pull/4226) docs(v2): Removing wrong parenthesis on image variable ([@juancarlosjr97](https://github.com/juancarlosjr97))\\n - [#4225](https://github.com/facebook/docusaurus/pull/4225) docs(v2): added Apache APISIX ([@juzhiyuan](https://github.com/juzhiyuan))\\n - [#4224](https://github.com/facebook/docusaurus/pull/4224) docs(v2): Add MikroORM site to showcase page ([@B4nan](https://github.com/B4nan))\\n - [#4220](https://github.com/facebook/docusaurus/pull/4220) Add WebdriverIO docs page as showcase ([@christian-bromann](https://github.com/christian-bromann))\\n - [#4210](https://github.com/facebook/docusaurus/pull/4210) misc: add requirements for sites being added to showcase ([@lex111](https://github.com/lex111))\\n - [#4207](https://github.com/facebook/docusaurus/pull/4207) docs(v2): Added Console Table Documentation Site to showcase ([@ayonious](https://github.com/ayonious))\\n - [#4204](https://github.com/facebook/docusaurus/pull/4204) docs(v1): fixing a broken link in blog posts ([@ayonious](https://github.com/ayonious))\\n - [#4178](https://github.com/facebook/docusaurus/pull/4178) docs(v2): localize 404 page with Netlify + docs ([@slorber](https://github.com/slorber))\\n - [#4177](https://github.com/facebook/docusaurus/pull/4177) docs(v2): Add docusaurus-plugin-remote-content to resources list ([@RDIL](https://github.com/RDIL))\\n - [#4172](https://github.com/facebook/docusaurus/pull/4172) docs(v2): Add react-hooks.org to showcase ([@imbhargav5](https://github.com/imbhargav5))\\n - [#4173](https://github.com/facebook/docusaurus/pull/4173) docs(v2): typo fixing double colon ([@ayonious](https://github.com/ayonious))\\n - [#4164](https://github.com/facebook/docusaurus/pull/4164) docs(v2): add a note for images not rendered on dev server ([@yuval-hazaz](https://github.com/yuval-hazaz))\\n - [#4161](https://github.com/facebook/docusaurus/pull/4161) docs(v2): Add docusaurus-theme-github-codeblock ([@christian-bromann](https://github.com/christian-bromann))\\n - [#4158](https://github.com/facebook/docusaurus/pull/4158) docs(v2): improve bad static assets doc + remove some useless useBaseUrl usage ([@slorber](https://github.com/slorber))\\n - [#4144](https://github.com/facebook/docusaurus/pull/4144) docs(v2): community docs typo fix ([@ayonious](https://github.com/ayonious))\\n - [#4143](https://github.com/facebook/docusaurus/pull/4143) docs(v2): guide docs typo fix ([@ayonious](https://github.com/ayonious))\\n - [#4141](https://github.com/facebook/docusaurus/pull/4141) docs(v2): plugins docs typo fix ([@ayonious](https://github.com/ayonious))\\n - [#4139](https://github.com/facebook/docusaurus/pull/4139) docs(v2): Add Rematch site to showcase page ([@semoal](https://github.com/semoal))\\n - [#4128](https://github.com/facebook/docusaurus/pull/4128) docs(v2): remove duplicate link from docs about Docusaurus1 ([@ayonious](https://github.com/ayonious))\\n - [#4129](https://github.com/facebook/docusaurus/pull/4129) docs(v2): typo fix in Migration Docs ([@ayonious](https://github.com/ayonious))\\n - [#4127](https://github.com/facebook/docusaurus/pull/4127) docs(v2): remove unnecessary brace from installation doc ([@ayonious](https://github.com/ayonious))\\n - [#4130](https://github.com/facebook/docusaurus/pull/4130) docs(v2): typo in i18n docs ([@ayonious](https://github.com/ayonious))\\n - [#4112](https://github.com/facebook/docusaurus/pull/4112) docs(v2): Do not encourage using the permalink prop ([@slorber](https://github.com/slorber))\\n - [#4106](https://github.com/facebook/docusaurus/pull/4106) docs(v2): update broken link on resources page ([@eric-hc](https://github.com/eric-hc))\\n - [#4084](https://github.com/facebook/docusaurus/pull/4084) docs(v2): Use the TOCInline component in config doc ([@slorber](https://github.com/slorber))\\n - [#4020](https://github.com/facebook/docusaurus/pull/4020) docs(v2): 2020 recap blog post ([@slorber](https://github.com/slorber))\\n - [#4009](https://github.com/facebook/docusaurus/pull/4009) docs(v2): add hideableSidebar option to config demo ([@natac13](https://github.com/natac13))\\n - [#4062](https://github.com/facebook/docusaurus/pull/4062) docs(v2): Add codesandbox integration ([@sammychinedu2ky](https://github.com/sammychinedu2ky))\\n - [#4058](https://github.com/facebook/docusaurus/pull/4058) docs(v2): Include new.docusaurus.io CodeSandbox in issue templates + README ([@slorber](https://github.com/slorber))\\n - [#4053](https://github.com/facebook/docusaurus/pull/4053) docs(v2): Add Eightshift Docs site to showcase page ([@iruzevic](https://github.com/iruzevic))\\n - [#4048](https://github.com/facebook/docusaurus/pull/4048) docs(v1): Docker: remind the user to use the --host flag ([@tomsfernandez](https://github.com/tomsfernandez))\\n - [#4047](https://github.com/facebook/docusaurus/pull/4047) docs(v1): version page should recommend v2 ([@slorber](https://github.com/slorber))\\n - [#4046](https://github.com/facebook/docusaurus/pull/4046) docs(v2): add sciwp to showcase ([@edulazaro](https://github.com/edulazaro))\\n - [#4036](https://github.com/facebook/docusaurus/pull/4036) docs(v2): Add Nodify to showcase ([@miroiu](https://github.com/miroiu))\\n - [#4038](https://github.com/facebook/docusaurus/pull/4038) docs(v1): suggest to use Docusaurus 2 even for non-FB websites ([@slorber](https://github.com/slorber))\\n - [#4026](https://github.com/facebook/docusaurus/pull/4026) docs(v2): Add FlexIt to showcase ([@ataft](https://github.com/ataft))\\n - [#4022](https://github.com/facebook/docusaurus/pull/4022) docs: fix typo from \'dissapear\' to \'disappear\' ([@vamsi3](https://github.com/vamsi3))\\n - [#4002](https://github.com/facebook/docusaurus/pull/4002) docs(v2): Add how to run your own DocSearch ([@TheodoreChu](https://github.com/TheodoreChu))\\n - [#3997](https://github.com/facebook/docusaurus/pull/3997) docs(v2): Add Datagit site to showcase page ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n - [#3990](https://github.com/facebook/docusaurus/pull/3990) docs(v2): Add wiki-powerto site showcase ([@linyuxuanlin](https://github.com/linyuxuanlin))\\n - [#3991](https://github.com/facebook/docusaurus/pull/3991) docs(v2): add overwriting css variables for dark mode ([@natac13](https://github.com/natac13))\\n - [#3987](https://github.com/facebook/docusaurus/pull/3987) docs(v2): Add AgileTs site to showcase page ([@bennodev19](https://github.com/bennodev19))\\n - [#3978](https://github.com/facebook/docusaurus/pull/3978) docs(v2): Add documentation for docs multi-instance support ([@slorber](https://github.com/slorber))\\n - [#3977](https://github.com/facebook/docusaurus/pull/3977) docs(v2): nudge users to add site to showcase ([@slorber](https://github.com/slorber))\\n - [#3975](https://github.com/facebook/docusaurus/pull/3975) docs(v2): Reorganize/split the guides doc / markdown sections ([@slorber](https://github.com/slorber))\\n - [#3976](https://github.com/facebook/docusaurus/pull/3976) docs(v2): Add AI-Speaker site to showcase page ([@asystentka-jolka](https://github.com/asystentka-jolka))\\n - [#3974](https://github.com/facebook/docusaurus/pull/3974) docs(v2): doc typo on sidebar admonition ([@slorber](https://github.com/slorber))\\n - [#3962](https://github.com/facebook/docusaurus/pull/3962) docs(v2): Add migration info doc regarding docs folder location ([@slorber](https://github.com/slorber))\\n - [#3950](https://github.com/facebook/docusaurus/pull/3950) docs(v2): update GitHub entreprise deployment doc ([@samhrncir](https://github.com/samhrncir))\\n - [#3945](https://github.com/facebook/docusaurus/pull/3945) docs(v2): Added information about setting `/` in routeBasePath ([@Siemienik](https://github.com/Siemienik))\\n- `docusaurus-theme-classic`\\n - [#4356](https://github.com/facebook/docusaurus/pull/4356) polish(v2): [theme-classic] add Chinese translations (zh-Hant & zh-Hans) ([@MisterFISHUP](https://github.com/MisterFISHUP))\\n- `docusaurus`\\n - [#4126](https://github.com/facebook/docusaurus/pull/4126) docs(v2): do not recommend using useBaseUrl() hook in most cases ([@slorber](https://github.com/slorber))\\n - [#4049](https://github.com/facebook/docusaurus/pull/4049) docs(v1): version page should recommend v2 (bis) ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-theme-classic`, `docusaurus`\\n - [#4014](https://github.com/facebook/docusaurus/pull/4014) docs(v2): i18n doc + polish ([@slorber](https://github.com/slorber))\\n- `docusaurus-cssnano-preset`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-bootstrap`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`, `stylelint-copyright`\\n - [#4034](https://github.com/facebook/docusaurus/pull/4034) docs(v2): Add READMEs to v2 packages ([@RDIL](https://github.com/RDIL))\\n- `docusaurus-init`\\n - [#3881](https://github.com/facebook/docusaurus/pull/3881) docs(v2): update FB OSS logo ([@Simek](https://github.com/Simek))\\n\\n## :house: Internal\\n\\n- Other\\n - [#4372](https://github.com/facebook/docusaurus/pull/4372) chore(v1): release docusaurus v1.14.7 ([@slorber](https://github.com/slorber))\\n - [#4368](https://github.com/facebook/docusaurus/pull/4368) chore(deps): bump elliptic from 6.5.3 to 6.5.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#4365](https://github.com/facebook/docusaurus/pull/4365) chore: unstable yarnlock ([@slorber](https://github.com/slorber))\\n - [#4337](https://github.com/facebook/docusaurus/pull/4337) misc: restore build size bot ([@slorber](https://github.com/slorber))\\n - [#4289](https://github.com/facebook/docusaurus/pull/4289) chore(v2): remove docs for alpha v69 ([@lex111](https://github.com/lex111))\\n - [#4253](https://github.com/facebook/docusaurus/pull/4253) chore(v2): remove docs for alpha v68 ([@lex111](https://github.com/lex111))\\n - [#4248](https://github.com/facebook/docusaurus/pull/4248) chore(v2): Fix build size bot ([@slorber](https://github.com/slorber))\\n - [#4214](https://github.com/facebook/docusaurus/pull/4214) chore(v2): setup for i18n staging deployment ([@slorber](https://github.com/slorber))\\n - [#4159](https://github.com/facebook/docusaurus/pull/4159) chore(v2): fix build size bot again ([@slorber](https://github.com/slorber))\\n - [#4156](https://github.com/facebook/docusaurus/pull/4156) chore(v2): fix build size bot monitoring of js/css assets ([@slorber](https://github.com/slorber))\\n - [#4100](https://github.com/facebook/docusaurus/pull/4100) chore(v2): remove docs for alpha v66 ([@lex111](https://github.com/lex111))\\n - [#4077](https://github.com/facebook/docusaurus/pull/4077) chore(v2): fix unstable master yarn.lock ([@slorber](https://github.com/slorber))\\n - [#4063](https://github.com/facebook/docusaurus/pull/4063) chore(v2): Regen codesandbox templates + add template: \\"docusaurus\\" ([@slorber](https://github.com/slorber))\\n - [#4056](https://github.com/facebook/docusaurus/pull/4056) chore(v2): update codesandbox redirect ([@slorber](https://github.com/slorber))\\n - [#4041](https://github.com/facebook/docusaurus/pull/4041) chore(v1): revert v1 netlify.toml ([@slorber](https://github.com/slorber))\\n - [#4040](https://github.com/facebook/docusaurus/pull/4040) chore(v1): upgrade v1 Crowdin cli + CI config ([@slorber](https://github.com/slorber))\\n - [#4030](https://github.com/facebook/docusaurus/pull/4030) chore(v2): install Crowdin cli through npm package ([@slorber](https://github.com/slorber))\\n - [#4003](https://github.com/facebook/docusaurus/pull/4003) chore: add DevContainer config for GitHub codespaces ([@kumaraditya303](https://github.com/kumaraditya303))\\n - [#4001](https://github.com/facebook/docusaurus/pull/4001) chore(v2): Upgrade crowdin ([@slorber](https://github.com/slorber))\\n - [#3995](https://github.com/facebook/docusaurus/pull/3995) chore(v2): remove docs for alpha v65 ([@lex111](https://github.com/lex111))\\n - [#3960](https://github.com/facebook/docusaurus/pull/3960) fix(v2): remove duplicate section on Versions page ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#4370](https://github.com/facebook/docusaurus/pull/4370) chore(v2): update infima ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#4361](https://github.com/facebook/docusaurus/pull/4361) refactor(v2): remove duplicated lodash dependencies and import only what needed ([@armano2](https://github.com/armano2))\\n- `docusaurus-1.x`, `docusaurus`\\n - [#4270](https://github.com/facebook/docusaurus/pull/4270) chore(v2): upgrade react-dev-utils ([@yangshun](https://github.com/yangshun))\\n- `docusaurus-init`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-types`, `docusaurus`\\n - [#4264](https://github.com/facebook/docusaurus/pull/4264) chore(v2): bump/align deps in monorepo: commander, semver, fs-extra ([@Simek](https://github.com/Simek))\\n- `docusaurus`\\n - [#4265](https://github.com/facebook/docusaurus/pull/4265) chore(v2): PostCSS peer dep fix ([@RDIL](https://github.com/RDIL))\\n - [#4091](https://github.com/facebook/docusaurus/pull/4091) refactor(v2): Switch from inquirer to prompts ([@RDIL](https://github.com/RDIL))\\n - [#4066](https://github.com/facebook/docusaurus/pull/4066) chore(v2): Update a few dependencies ([@RDIL](https://github.com/RDIL))\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#4148](https://github.com/facebook/docusaurus/pull/4148) chore(v2): upgrade dependencies ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-pwa`\\n - [#4120](https://github.com/facebook/docusaurus/pull/4120) chore(v2): Update workbox to v6 ([@RDIL](https://github.com/RDIL))\\n- `docusaurus-utils`, `docusaurus`\\n - [#4081](https://github.com/facebook/docusaurus/pull/4081) chore(v2): Update webpack-related dependencies, pre-work to migrate to Webpack 5 ([@RDIL](https://github.com/RDIL))\\n- `docusaurus-init`, `docusaurus`\\n - [#4012](https://github.com/facebook/docusaurus/pull/4012) chore(v2): docusaurus-init: switch from inquirer to prompts ([@RDIL](https://github.com/RDIL))\\n- `docusaurus-plugin-sitemap`\\n - [#4005](https://github.com/facebook/docusaurus/pull/4005) chore(v2): prettier fixes ([@slorber](https://github.com/slorber))\\n- `docusaurus-migrate`\\n - [#3988](https://github.com/facebook/docusaurus/pull/3988) chore(v2): fix date-sensitive test fixture ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-utils`, `docusaurus`, `stylelint-copyright`\\n - [#3959](https://github.com/facebook/docusaurus/pull/3959) chore(v2): fix windows Jest tests ([@slorber](https://github.com/slorber))\\n\\n## :running: Performance\\n\\n- `docusaurus-cssnano-preset`, `docusaurus-plugin-content-blog`, `docusaurus`\\n - [#4355](https://github.com/facebook/docusaurus/pull/4355) perf(v2): improve blog mdx-loader and postcss loader ([@lex111](https://github.com/lex111))\\n\\n## Committers: 70\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Ali Saki ([@3alisaki](https://github.com/3alisaki))\\n- Andrew Taft ([@ataft](https://github.com/ataft))\\n- Ankur Kedia ([@theankurkedia](https://github.com/theankurkedia))\\n- Apurva Ojas ([@apurvaojas](https://github.com/apurvaojas))\\n- Armano ([@armano2](https://github.com/armano2))\\n- Arthur ([@ArtFlag](https://github.com/ArtFlag))\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- Ben ([@ben-qnimble](https://github.com/ben-qnimble))\\n- BennoDev ([@bennodev19](https://github.com/bennodev19))\\n- Bhargav Ponnapalli ([@imbhargav5](https://github.com/imbhargav5))\\n- Christian Bromann ([@christian-bromann](https://github.com/christian-bromann))\\n- David Barrat ([@dbrrt](https://github.com/dbrrt))\\n- Eduardo L\xe1zaro ([@edulazaro](https://github.com/edulazaro))\\n- Eric Carboni ([@eric-hc](https://github.com/eric-hc))\\n- Gr\xe9gory Heitz ([@edno](https://github.com/edno))\\n- Ivan Ru\u017Eevi\u0107 ([@iruzevic](https://github.com/iruzevic))\\n- Jessica Lin ([@jlin27](https://github.com/jlin27))\\n- Joel M ([@9oelM](https://github.com/9oelM))\\n- Joel Marcey ([@JoelMarcey](https://github.com/JoelMarcey))\\n- Jola ([@asystentka-jolka](https://github.com/asystentka-jolka))\\n- Juan Carlos Blanco Delgado ([@juancarlosjr97](https://github.com/juancarlosjr97))\\n- Kevin Viglucci ([@viglucci](https://github.com/viglucci))\\n- Kumar Aditya ([@kumaraditya303](https://github.com/kumaraditya303))\\n- Lisa Chandra ([@lisa761](https://github.com/lisa761))\\n- LittleboyHarry ([@LittleboyHarry](https://github.com/LittleboyHarry))\\n- Long Ho ([@longlho](https://github.com/longlho))\\n- Martin Ad\xe1mek ([@B4nan](https://github.com/B4nan))\\n- Massoud Maboudi ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n- Matan Borenkraout ([@MatanBobi](https://github.com/MatanBobi))\\n- Matt Oestreich ([@oze4](https://github.com/oze4))\\n- Matteo Manzinello ([@manzinello](https://github.com/manzinello))\\n- Miroiu Emanuel ([@miroiu](https://github.com/miroiu))\\n- Mohd Shad Mirza ([@iamshadmirza](https://github.com/iamshadmirza))\\n- Nahiyan Kamal ([@ayonious](https://github.com/ayonious))\\n- Nathan Bosscher ([@ntbosscher](https://github.com/ntbosscher))\\n- Nico Jansen ([@nicojs](https://github.com/nicojs))\\n- Nikolay Samokhvalov ([@NikolayS](https://github.com/NikolayS))\\n- Pablo Vidal ([@limkinZero](https://github.com/limkinZero))\\n- Power Lin ([@linyuxuanlin](https://github.com/linyuxuanlin))\\n- Reece Dunham ([@RDIL](https://github.com/RDIL))\\n- Saihajpreet Singh ([@saihaj](https://github.com/saihaj))\\n- Sam Hrncir ([@samhrncir](https://github.com/samhrncir))\\n- Sam Sam ([@sksamuel](https://github.com/sksamuel))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- Sean Campbell ([@natac13](https://github.com/natac13))\\n- Sergio Moreno ([@semoal](https://github.com/semoal))\\n- Siemienik Pawel ([@Siemienik](https://github.com/Siemienik))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Theodore Chu ([@TheodoreChu](https://github.com/TheodoreChu))\\n- Tien Vo Xuan ([@tienvx](https://github.com/tienvx))\\n- Tomas Fernandez ([@tomsfernandez](https://github.com/tomsfernandez))\\n- Vamsi Krishna Reddy Satti ([@vamsi3](https://github.com/vamsi3))\\n- Welly ([@wellyshen](https://github.com/wellyshen))\\n- Yamagishi Kazutoshi ([@ykzts](https://github.com/ykzts))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- Yash Totale ([@YashTotale](https://github.com/YashTotale))\\n- Yuri Sulyma ([@ysulyma](https://github.com/ysulyma))\\n- Yuval Hazaz ([@yuval-hazaz](https://github.com/yuval-hazaz))\\n- [@MisterFISHUP](https://github.com/MisterFISHUP)\\n- [@aukokyong](https://github.com/aukokyong)\\n- [@philipp985](https://github.com/philipp985)\\n- [@roydukkey](https://github.com/roydukkey)\\n- [@sammychinedu2ky](https://github.com/sammychinedu2ky)\\n- [@saydo17](https://github.com/saydo17)\\n- [@tokarchyn](https://github.com/tokarchyn)\\n- [@wolf20482](https://github.com/wolf20482)\\n- moonrailgun ([@moonrailgun](https://github.com/moonrailgun))\\n- \xc7a\u011Flar Tural\u0131 ([@caglarturali](https://github.com/caglarturali))\\n- \u741A\u81F4\u8FDC ([@juzhiyuan](https://github.com/juzhiyuan))"},{"id":"/2.0.0-alpha.70","metadata":{"permalink":"/changelog/2.0.0-alpha.70","source":"@site/changelog/source/2.0.0-alpha.70.md","title":"2.0.0-alpha.70","description":"New Feature","date":"2020-12-17T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Aar\xf3n Garc\xeda Herv\xe1s","alias":"aarongarciah","url":"https://github.com/aarongarciah","imageURL":"https://github.com/aarongarciah.png","key":"aarongarciah","page":null},{"name":"hackerman","alias":"aeneasr","url":"https://github.com/aeneasr","imageURL":"https://github.com/aeneasr.png","key":"aeneasr","page":null},{"name":"Alex1304","alias":"Alex1304","url":"https://github.com/Alex1304","imageURL":"https://github.com/Alex1304.png","key":"Alex1304","page":null},{"name":"Arthur","alias":"ArtFlag","url":"https://github.com/ArtFlag","imageURL":"https://github.com/ArtFlag.png","key":"ArtFlag","page":null},{"name":"borool","alias":"borool","url":"https://github.com/borool","imageURL":"https://github.com/borool.png","key":"borool","page":null},{"name":"Cindy Gu","alias":"cindygu4","url":"https://github.com/cindygu4","imageURL":"https://github.com/cindygu4.png","key":"cindygu4","page":null},{"name":"davidmauskop","alias":"davidmauskop","url":"https://github.com/davidmauskop","imageURL":"https://github.com/davidmauskop.png","key":"davidmauskop","page":null},{"name":"Derric Gilling","alias":"dgilling","url":"https://github.com/dgilling","imageURL":"https://github.com/dgilling.png","key":"dgilling","page":null},{"name":"Fran\xe7ois Chalifour","alias":"francoischalifour","url":"https://github.com/francoischalifour","imageURL":"https://github.com/francoischalifour.png","key":"francoischalifour","page":null},{"name":"Hadrien Milano","alias":"hmil","url":"https://github.com/hmil","imageURL":"https://github.com/hmil.png","key":"hmil","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Lo\xefc Poullain","alias":"LoicPoullain","url":"https://github.com/LoicPoullain","imageURL":"https://github.com/LoicPoullain.png","key":"LoicPoullain","page":null},{"name":"Matteo Manzinello","alias":"manzinello","url":"https://github.com/manzinello","imageURL":"https://github.com/manzinello.png","key":"manzinello","page":null},{"name":"Matija Sosic","alias":"matijaSos","url":"https://github.com/matijaSos","imageURL":"https://github.com/matijaSos.png","key":"matijaSos","page":null},{"name":"M\xe9ril","alias":"mpsq","url":"https://github.com/mpsq","imageURL":"https://github.com/mpsq.png","key":"mpsq","page":null},{"name":"Oliver Ullman","alias":"oriooctopus","url":"https://github.com/oriooctopus","imageURL":"https://github.com/oriooctopus.png","key":"oriooctopus","page":null},{"name":"Rami","alias":"Romstar","url":"https://github.com/Romstar","imageURL":"https://github.com/Romstar.png","key":"Romstar","page":null},{"name":"Sarthak kundra","alias":"sarthakkundra","url":"https://github.com/sarthakkundra","imageURL":"https://github.com/sarthakkundra.png","key":"sarthakkundra","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"Kaartic Sivaraam","alias":"sivaraam","url":"https://github.com/sivaraam","imageURL":"https://github.com/sivaraam.png","key":"sivaraam","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Varshit Shah","alias":"Varshit07","url":"https://github.com/Varshit07","imageURL":"https://github.com/Varshit07.png","key":"Varshit07","page":null},{"name":"Stephen Woodruff","alias":"woodrufs","url":"https://github.com/woodrufs","imageURL":"https://github.com/woodrufs.png","key":"woodrufs","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-12-17T20:00","authors":["aarongarciah","aeneasr","Alex1304","ArtFlag","borool","cindygu4","davidmauskop","dgilling","francoischalifour","hmil","lex111","LoicPoullain","manzinello","matijaSos","mpsq","oriooctopus","Romstar","sarthakkundra","Simek","sivaraam","slorber","Varshit07","woodrufs"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.71","permalink":"/changelog/2.0.0-alpha.71"},"nextItem":{"title":"2.0.0-alpha.69","permalink":"/changelog/2.0.0-alpha.69"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus`\\n - [#3932](https://github.com/facebook/docusaurus/pull/3932) feat(v2): Add Root theme element ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#3916](https://github.com/facebook/docusaurus/pull/3916) feat(v2): Add localeDropdown navbar item type + i18n localeConfigs field ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-types`\\n - [#3904](https://github.com/facebook/docusaurus/pull/3904) feat(v2): inline table-of-contents + refactor TOC ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#3888](https://github.com/facebook/docusaurus/pull/3888) feat(v2): add custom props for consumption by swizzled sidebar ([@oriooctopus](https://github.com/oriooctopus))\\n- `docusaurus-plugin-content-blog`\\n - [#3842](https://github.com/facebook/docusaurus/pull/3842) feat(v2): enable feeds by default in blog plugin ([@cindygu4](https://github.com/cindygu4))\\n- Other\\n - [#3827](https://github.com/facebook/docusaurus/pull/3827) feat(v2): add automated canary releases ([@slorber](https://github.com/slorber))\\n - [#3761](https://github.com/facebook/docusaurus/pull/3761) feat(v2): Added Lighthouse CI to PR checks ([@sarthakkundra](https://github.com/sarthakkundra))\\n- `docusaurus-1.x`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#3325](https://github.com/facebook/docusaurus/pull/3325) feat(v2): core v2 i18n support + Docusaurus site Crowdin integration ([@slorber](https://github.com/slorber))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-types`\\n - [#3904](https://github.com/facebook/docusaurus/pull/3904) feat(v2): inline table-of-contents + refactor TOC ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`\\n - [#3842](https://github.com/facebook/docusaurus/pull/3842) feat(v2): enable feeds by default in blog plugin ([@cindygu4](https://github.com/cindygu4))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#3922](https://github.com/facebook/docusaurus/pull/3922) fix(v2): fix navbar items issue on Windows? ([@slorber](https://github.com/slorber))\\n - [#3920](https://github.com/facebook/docusaurus/pull/3920) fix(v2): i18n translation extractor should handle JSX formatting edge cases better ([@slorber](https://github.com/slorber))\\n - [#3896](https://github.com/facebook/docusaurus/pull/3896) fix(v2): do not treat at-rules during CSS minification ([@lex111](https://github.com/lex111))\\n - [#3869](https://github.com/facebook/docusaurus/pull/3869) fix(v2): load plugin commands async to fix broken plugin CLI commands `docs:version` ([@aeneasr](https://github.com/aeneasr))\\n- `docusaurus-theme-classic`\\n - [#3921](https://github.com/facebook/docusaurus/pull/3921) fix(v2): remove useless console log ([@slorber](https://github.com/slorber))\\n - [#3895](https://github.com/facebook/docusaurus/pull/3895) fix(v2): use proper element for pagination nav label ([@lex111](https://github.com/lex111))\\n - [#3882](https://github.com/facebook/docusaurus/pull/3882) fix(v2): improve Footer structure, add class names, use Infima transition ([@Simek](https://github.com/Simek))\\n - [#3877](https://github.com/facebook/docusaurus/pull/3877) fix(v2): dynamic dark mode detection without toggle widget ([@hmil](https://github.com/hmil))\\n - [#3854](https://github.com/facebook/docusaurus/pull/3854) fix(v2): refactor icons in theme-classic, fix swizzle issue ([@Simek](https://github.com/Simek))\\n - [#3823](https://github.com/facebook/docusaurus/pull/3823) fix(v2): support rendering of singular tabs ([@aeneasr](https://github.com/aeneasr))\\n - [#3817](https://github.com/facebook/docusaurus/pull/3817) fix(v2): Allow footer logo at attribute to be empty ([@aarongarciah](https://github.com/aarongarciah))\\n- `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`\\n - [#3900](https://github.com/facebook/docusaurus/pull/3900) fix(v2): correct typo in metas generated for Twitter cards ([@mpsq](https://github.com/mpsq))\\n- Other\\n - [#3872](https://github.com/facebook/docusaurus/pull/3872) chore: add missing v1 generated files to ignores ([@Simek](https://github.com/Simek))\\n - [#3833](https://github.com/facebook/docusaurus/pull/3833) fix(v2): temporary: disable crowdin until PR env variable permission fixed ([@slorber](https://github.com/slorber))\\n- `stylelint-copyright`\\n - [#3852](https://github.com/facebook/docusaurus/pull/3852) fix(v2): to fix the canary release GH workflow ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-search-algolia`\\n - [#3853](https://github.com/facebook/docusaurus/pull/3853) fix(v2): fix DocSearch keyboard navigator ([@francoischalifour](https://github.com/francoischalifour))\\n - [#3837](https://github.com/facebook/docusaurus/pull/3837) fix(v2): update SearchPage styling, fix appearance in dark mode ([@Simek](https://github.com/Simek))\\n - [#3828](https://github.com/facebook/docusaurus/pull/3828) fix(v2): restore Algolia search ([@lex111](https://github.com/lex111))\\n - [#3819](https://github.com/facebook/docusaurus/pull/3819) feat(search): update DocSearch to alpha.31 ([@francoischalifour](https://github.com/francoischalifour))\\n- `docusaurus-plugin-content-docs`\\n - [#3839](https://github.com/facebook/docusaurus/pull/3839) fix(v2): remove unnecessary backtick in output ([@sivaraam](https://github.com/sivaraam))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#3829](https://github.com/facebook/docusaurus/pull/3829) fix(v2): fix search ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus`\\n - [#3824](https://github.com/facebook/docusaurus/pull/3824) fix(v2): update notifier dist tag ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus`\\n - [#3880](https://github.com/facebook/docusaurus/pull/3880) polish(v2): improve docusaurus deploy logs ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- [#3931](https://github.com/facebook/docusaurus/pull/3931) docs(v2): blog.md with docs: false, for blog-only mode ([@Romstar](https://github.com/Romstar))\\n- [#3924](https://github.com/facebook/docusaurus/pull/3924) docs(v2): Removed unnecessary closing parenthesis ([@Varshit07](https://github.com/Varshit07))\\n- [#3928](https://github.com/facebook/docusaurus/pull/3928) docs(v2): add FoalTS to showcase page ([@LoicPoullain](https://github.com/LoicPoullain))\\n- [#3899](https://github.com/facebook/docusaurus/pull/3899) docs(v2): Move sidebar content to its own page ([@ArtFlag](https://github.com/ArtFlag))\\n- [#3856](https://github.com/facebook/docusaurus/pull/3856) docs(v2): typo ([@borool](https://github.com/borool))\\n- [#3891](https://github.com/facebook/docusaurus/pull/3891) docs(v2): Wrap section about custom domains in :::info ([@Alex1304](https://github.com/Alex1304))\\n- [#3871](https://github.com/facebook/docusaurus/pull/3871) docs(v2): missing `<ColorGenerator/>` mdx import ([@slorber](https://github.com/slorber))\\n- [#3873](https://github.com/facebook/docusaurus/pull/3873) docs(v2): From docusaurus-migrate to @docusaurus/migrate ([@manzinello](https://github.com/manzinello))\\n- [#3867](https://github.com/facebook/docusaurus/pull/3867) docs(v2): Add docusaurus-plugin-moesif to community plugins ([@dgilling](https://github.com/dgilling))\\n- [#3851](https://github.com/facebook/docusaurus/pull/3851) docs(v2): Fixed Typo: Hided => Hidden ([@woodrufs](https://github.com/woodrufs))\\n- [#3832](https://github.com/facebook/docusaurus/pull/3832) docs(v2): Add wasp to showcase ([@matijaSos](https://github.com/matijaSos))\\n- [#3813](https://github.com/facebook/docusaurus/pull/3813) docs(v2): render deployment doc ([@davidmauskop](https://github.com/davidmauskop))\\n- [#3835](https://github.com/facebook/docusaurus/pull/3835) docs(v2): update Client API docs page ([@Simek](https://github.com/Simek))\\n- [#3831](https://github.com/facebook/docusaurus/pull/3831) docs(v2): Docs refactoring and reorganization ([@slorber](https://github.com/slorber))\\n\\n## :house: Internal\\n\\n- Other\\n - [#3912](https://github.com/facebook/docusaurus/pull/3912) chore(v2): remove docs for alpha v64 ([@lex111](https://github.com/lex111))\\n - [#3907](https://github.com/facebook/docusaurus/pull/3907) chore(ci): fix canary release filtering ([@slorber](https://github.com/slorber))\\n - [#3902](https://github.com/facebook/docusaurus/pull/3902) chore(deps): bump ini from 1.3.5 to 1.3.7 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#3884](https://github.com/facebook/docusaurus/pull/3884) chore(ci): increase Lighthouse CI max_timeout ([@Simek](https://github.com/Simek))\\n - [#3883](https://github.com/facebook/docusaurus/pull/3883) chore(v2): remove docs for alpha v62-63 ([@lex111](https://github.com/lex111))\\n - [#3863](https://github.com/facebook/docusaurus/pull/3863) chore(ci): run V1 Build and Migration CLI tests conditionally on CI ([@Simek](https://github.com/Simek))\\n - [#3861](https://github.com/facebook/docusaurus/pull/3861) chore(ci): reduce number of jobs, remove build from lighthouse pipeline ([@Simek](https://github.com/Simek))\\n - [#3860](https://github.com/facebook/docusaurus/pull/3860) chore: add Yarn v2 cache directory to ignores ([@Simek](https://github.com/Simek))\\n - [#3858](https://github.com/facebook/docusaurus/pull/3858) chore(v2): disable Crowdin for deploy previews ([@slorber](https://github.com/slorber))\\n - [#3857](https://github.com/facebook/docusaurus/pull/3857) fix(v2): fix Crowdin ci commands ([@slorber](https://github.com/slorber))\\n - [#3849](https://github.com/facebook/docusaurus/pull/3849) chore(ci): CI scripts cleanup, add Node 14 runs, bump checkout action ([@Simek](https://github.com/Simek))\\n - [#3850](https://github.com/facebook/docusaurus/pull/3850) chore(v2): i18n CI: add write-translations call ([@slorber](https://github.com/slorber))\\n - [#3848](https://github.com/facebook/docusaurus/pull/3848) chore(v2): fix CI typo ([@slorber](https://github.com/slorber))\\n - [#3847](https://github.com/facebook/docusaurus/pull/3847) chore(v2): wire production Crowdin project + setup ([@slorber](https://github.com/slorber))\\n - [#3846](https://github.com/facebook/docusaurus/pull/3846) chore(v2): fix PRs not able to add lighthouse/buildsize comment from works ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`\\n - [#3865](https://github.com/facebook/docusaurus/pull/3865) chore(v2): fix ignore paths and Prettier commands in themes ([@Simek](https://github.com/Simek))\\n- `docusaurus-cssnano-preset`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#3844](https://github.com/facebook/docusaurus/pull/3844) chore(v2): fix several lint warnings, add missing types, cleanup ([@Simek](https://github.com/Simek))\\n- `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`\\n - [#3838](https://github.com/facebook/docusaurus/pull/3838) refactor(v2): extract site title formatter to theme-common util ([@Simek](https://github.com/Simek))\\n\\n## Committers: 23\\n\\n- Aar\xf3n Garc\xeda Herv\xe1s ([@aarongarciah](https://github.com/aarongarciah))\\n- Alex1304 ([@Alex1304](https://github.com/Alex1304))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Arthur ([@ArtFlag](https://github.com/ArtFlag))\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- Cindy Gu ([@cindygu4](https://github.com/cindygu4))\\n- Derric Gilling ([@dgilling](https://github.com/dgilling))\\n- Fran\xe7ois Chalifour ([@francoischalifour](https://github.com/francoischalifour))\\n- Hadrien Milano ([@hmil](https://github.com/hmil))\\n- Kaartic Sivaraam ([@sivaraam](https://github.com/sivaraam))\\n- Lo\xefc Poullain ([@LoicPoullain](https://github.com/LoicPoullain))\\n- Matija Sosic ([@matijaSos](https://github.com/matijaSos))\\n- Matteo Manzinello ([@manzinello](https://github.com/manzinello))\\n- M\xe9ril ([@mpsq](https://github.com/mpsq))\\n- Oliver Ullman ([@oriooctopus](https://github.com/oriooctopus))\\n- Rami ([@Romstar](https://github.com/Romstar))\\n- Sarthak kundra ([@sarthakkundra](https://github.com/sarthakkundra))\\n- Stephen Woodruff ([@woodrufs](https://github.com/woodrufs))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Varshit Shah ([@Varshit07](https://github.com/Varshit07))\\n- [@borool](https://github.com/borool)\\n- [@davidmauskop](https://github.com/davidmauskop)\\n- hackerman ([@aeneasr](https://github.com/aeneasr))"},{"id":"/2.0.0-alpha.69","metadata":{"permalink":"/changelog/2.0.0-alpha.69","source":"@site/changelog/source/2.0.0-alpha.69.md","title":"2.0.0-alpha.69","description":"New Feature","date":"2020-11-24T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Ma\xebl Nison","alias":"arcanis","url":"https://github.com/arcanis","imageURL":"https://github.com/arcanis.png","key":"arcanis","page":null},{"name":"camiluc","alias":"camiluc","url":"https://github.com/camiluc","imageURL":"https://github.com/camiluc.png","key":"camiluc","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-11-24T20:00","authors":["arcanis","camiluc","lex111","Simek","slorber"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.70","permalink":"/changelog/2.0.0-alpha.70"},"nextItem":{"title":"2.0.0-alpha.68","permalink":"/changelog/2.0.0-alpha.68"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-types`, `docusaurus`\\n - [#3802](https://github.com/facebook/docusaurus/pull/3802) feat(v2): add baseUrlIssueBanner configuration to disable banner ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#3807](https://github.com/facebook/docusaurus/pull/3807) chore(v2): upgrade Infima to v0.2.0-alpha.18 ([@lex111](https://github.com/lex111))\\n - [#3806](https://github.com/facebook/docusaurus/pull/3806) fix(v2): remove aria-hidden attr from anchor link of heading ([@lex111](https://github.com/lex111))\\n - [#3784](https://github.com/facebook/docusaurus/pull/3784) fix(v2): fix missing logo in dark theme when darkSrc was not set ([@Simek](https://github.com/Simek))\\n- `docusaurus-theme-search-algolia`\\n - [#3804](https://github.com/facebook/docusaurus/pull/3804) fix(v2): Algolia: allow contextualSearch + facetFilters ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#3796](https://github.com/facebook/docusaurus/pull/3796) Adds createRequire for preset resolution ([@arcanis](https://github.com/arcanis))\\n\\n## :memo: Documentation\\n\\n- [#3803](https://github.com/facebook/docusaurus/pull/3803) docs(v2): fix docusaurus init issue when not using @latest ([@slorber](https://github.com/slorber))\\n- [#3785](https://github.com/facebook/docusaurus/pull/3785) docs(v2): recommend Docusaurus 2 usage ([@slorber](https://github.com/slorber))\\n- [#3783](https://github.com/facebook/docusaurus/pull/3783) docs(v2): remove @next tags needed to install v2 packages ([@slorber](https://github.com/slorber))\\n- [#3781](https://github.com/facebook/docusaurus/pull/3781) docs(v2): rename zeit to vercel ([@camiluc](https://github.com/camiluc))\\n\\n## :house: Internal\\n\\n- [#3800](https://github.com/facebook/docusaurus/pull/3800) chore(v2): remove useless stylelint-copyright peerDependency ([@slorber](https://github.com/slorber))\\n- [#3786](https://github.com/facebook/docusaurus/pull/3786) chore(v2): ensure publishConfig.access presence with tests ([@slorber](https://github.com/slorber))\\n\\n## Committers: 5\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- Ma\xebl Nison ([@arcanis](https://github.com/arcanis))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- [@camiluc](https://github.com/camiluc)"},{"id":"/2.0.0-alpha.68","metadata":{"permalink":"/changelog/2.0.0-alpha.68","source":"@site/changelog/source/2.0.0-alpha.68.md","title":"2.0.0-alpha.68","description":"New Feature","date":"2020-11-18T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"iAmir","alias":"AmyrAhmady","url":"https://github.com/AmyrAhmady","imageURL":"https://github.com/AmyrAhmady.png","key":"AmyrAhmady","page":null},{"name":"Artem Kovalov","alias":"artemkovalyov","url":"https://github.com/artemkovalyov","imageURL":"https://github.com/artemkovalyov.png","key":"artemkovalyov","page":null},{"name":"Beno\xeet Lemaire","alias":"belemaire","url":"https://github.com/belemaire","imageURL":"https://github.com/belemaire.png","key":"belemaire","page":null},{"name":"Charles Korn","alias":"charleskorn","url":"https://github.com/charleskorn","imageURL":"https://github.com/charleskorn.png","key":"charleskorn","page":null},{"name":"David Goss","alias":"davidjgoss","url":"https://github.com/davidjgoss","imageURL":"https://github.com/davidjgoss.png","key":"davidjgoss","page":null},{"name":"Bright Egbo","alias":"egbobright","url":"https://github.com/egbobright","imageURL":"https://github.com/egbobright.png","key":"egbobright","page":null},{"name":"Hai","alias":"haivp3010","url":"https://github.com/haivp3010","imageURL":"https://github.com/haivp3010.png","key":"haivp3010","page":null},{"name":"Anh Hong","alias":"hong4rc","url":"https://github.com/hong4rc","imageURL":"https://github.com/hong4rc.png","key":"hong4rc","page":null},{"name":"Jainam Chirag Shah","alias":"jcs98","url":"https://github.com/jcs98","imageURL":"https://github.com/jcs98.png","key":"jcs98","page":null},{"name":"\u741A\u81F4\u8FDC","alias":"juzhiyuan","url":"https://github.com/juzhiyuan","imageURL":"https://github.com/juzhiyuan.png","key":"juzhiyuan","page":null},{"name":"Roman Bug","alias":"ka1bi4","url":"https://github.com/ka1bi4","imageURL":"https://github.com/ka1bi4.png","key":"ka1bi4","page":null},{"name":"kenve","alias":"kenve","url":"https://github.com/kenve","imageURL":"https://github.com/kenve.png","key":"kenve","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Nate Giraudeau","alias":"nategiraudeau","url":"https://github.com/nategiraudeau","imageURL":"https://github.com/nategiraudeau.png","key":"nategiraudeau","page":null},{"name":"Nico Domino","alias":"ndom91","url":"https://github.com/ndom91","imageURL":"https://github.com/ndom91.png","key":"ndom91","page":null},{"name":"Rhys Arkins","alias":"rarkins","url":"https://github.com/rarkins","imageURL":"https://github.com/rarkins.png","key":"rarkins","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"sammychinedu2ky","alias":"sammychinedu2ky","url":"https://github.com/sammychinedu2ky","imageURL":"https://github.com/sammychinedu2ky.png","key":"sammychinedu2ky","page":null},{"name":"Gergely Sinka","alias":"sigewuzhere","url":"https://github.com/sigewuzhere","imageURL":"https://github.com/sigewuzhere.png","key":"sigewuzhere","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Stephen McElhinney","alias":"smcelhinney","url":"https://github.com/smcelhinney","imageURL":"https://github.com/smcelhinney.png","key":"smcelhinney","page":null},{"name":"Thakur Karthik","alias":"ThakurKarthik","url":"https://github.com/ThakurKarthik","imageURL":"https://github.com/ThakurKarthik.png","key":"ThakurKarthik","page":null},{"name":"Marc Rabat Pla","alias":"vanbasten17","url":"https://github.com/vanbasten17","imageURL":"https://github.com/vanbasten17.png","key":"vanbasten17","page":null},{"name":"Shenwei Wang","alias":"weareoutman","url":"https://github.com/weareoutman","imageURL":"https://github.com/weareoutman.png","key":"weareoutman","page":null},{"name":"ylemkimon","alias":"ylemkimon","url":"https://github.com/ylemkimon","imageURL":"https://github.com/ylemkimon.png","key":"ylemkimon","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-11-18T20:00","authors":["AmyrAhmady","artemkovalyov","belemaire","charleskorn","davidjgoss","egbobright","haivp3010","hong4rc","jcs98","juzhiyuan","ka1bi4","kenve","lex111","nategiraudeau","ndom91","rarkins","SamChou19815","sammychinedu2ky","sigewuzhere","Simek","slorber","smcelhinney","ThakurKarthik","vanbasten17","weareoutman","ylemkimon"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.69","permalink":"/changelog/2.0.0-alpha.69"},"nextItem":{"title":"2.0.0-alpha.67","permalink":"/changelog/2.0.0-alpha.67"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- Other\\n - [#3717](https://github.com/facebook/docusaurus/pull/3717) feat(v2): official CodeSandbox support ([@sammychinedu2ky](https://github.com/sammychinedu2ky))\\n- `docusaurus-init`\\n - [#3729](https://github.com/facebook/docusaurus/pull/3729) feat(v2): allow init project via npm ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`\\n - [#3730](https://github.com/facebook/docusaurus/pull/3730) feat(v2): add ThemedImage component ([@Simek](https://github.com/Simek))\\n- `docusaurus-cssnano-preset`, `docusaurus-theme-classic`, `docusaurus`\\n - [#3716](https://github.com/facebook/docusaurus/pull/3716) feat(v2): introduce new minification of CSS bundle ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#3694](https://github.com/facebook/docusaurus/pull/3694) feat(v2): Added the ability to specify GIT_PASS in deploy command (for CI purposes) ([@smcelhinney](https://github.com/smcelhinney))\\n - [#3621](https://github.com/facebook/docusaurus/pull/3621) feat(v2): baseUrl config issues: show help message if css/js can\'t load ([@jcs98](https://github.com/jcs98))\\n - [#3594](https://github.com/facebook/docusaurus/pull/3594) feat(v2): add support for key,cert in https ([@ThakurKarthik](https://github.com/ThakurKarthik))\\n- `docusaurus-remark-plugin-npm2yarn`\\n - [#3705](https://github.com/facebook/docusaurus/pull/3705) feat(v2): add support for sync to npm2yarn tabs ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`, `docusaurus-migrate`, `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#3658](https://github.com/facebook/docusaurus/pull/3658) feat(v2): onBrokenMarkdownLinks config ([@AmyrAhmady](https://github.com/AmyrAhmady))\\n- `docusaurus-theme-classic`\\n - [#3640](https://github.com/facebook/docusaurus/pull/3640) feat(v2): add skip to content link ([@lex111](https://github.com/lex111))\\n - [#3615](https://github.com/facebook/docusaurus/pull/3615) feat(v2): add ability to hide doc sidebar ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#3749](https://github.com/facebook/docusaurus/pull/3749) fix(v2): add support for interleaving Markdown in code blocks ([@lex111](https://github.com/lex111))\\n - [#3739](https://github.com/facebook/docusaurus/pull/3739) fix(v2): add support for prefers-reduced-motion in hideable sidebar ([@lex111](https://github.com/lex111))\\n - [#3726](https://github.com/facebook/docusaurus/pull/3726) fix(v2): add thin scrollbar to proper element in TOC ([@lex111](https://github.com/lex111))\\n - [#3681](https://github.com/facebook/docusaurus/pull/3681) Revert \\"refactor(v2): improve regex matching code-block title\\" ([@lex111](https://github.com/lex111))\\n - [#3662](https://github.com/facebook/docusaurus/pull/3662) fix(v2): navbar dropdown crash when item.to is undefined ([@artemkovalyov](https://github.com/artemkovalyov))\\n - [#3669](https://github.com/facebook/docusaurus/pull/3669) fix(v2): make scrollbar styles consistent ([@nategiraudeau](https://github.com/nategiraudeau))\\n - [#3666](https://github.com/facebook/docusaurus/pull/3666) fix(v2): make optional title for footer links column ([@lex111](https://github.com/lex111))\\n - [#3647](https://github.com/facebook/docusaurus/pull/3647) fix(v2): do not set height for mobile dropdown during build ([@lex111](https://github.com/lex111))\\n - [#3650](https://github.com/facebook/docusaurus/pull/3650) fix(v2): add landmark for skip to content link ([@lex111](https://github.com/lex111))\\n - [#3627](https://github.com/facebook/docusaurus/pull/3627) fix(v2): disable tabbing on hidden doc sidebar ([@lex111](https://github.com/lex111))\\n - [#3637](https://github.com/facebook/docusaurus/pull/3637) fix(v2): wrap code blocks on print ([@haivp3010](https://github.com/haivp3010))\\n - [#3603](https://github.com/facebook/docusaurus/pull/3603) fix(v2): animate dropdown properly ([@lex111](https://github.com/lex111))\\n - [#3611](https://github.com/facebook/docusaurus/pull/3611) fix(v2): Added back support for optional logo field in theme-classic navbarConfig ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#3763](https://github.com/facebook/docusaurus/pull/3763) refactor(v2): various markup improvements ([@lex111](https://github.com/lex111))\\n - [#3724](https://github.com/facebook/docusaurus/pull/3724) fix(v2): add support for non-ASCII chars in anchor link scroll ([@lex111](https://github.com/lex111))\\n- `docusaurus-module-type-aliases`, `docusaurus`\\n - [#3723](https://github.com/facebook/docusaurus/pull/3723) fix(v2): restore prefetch functionality ([@lex111](https://github.com/lex111))\\n- Other\\n - [#3760](https://github.com/facebook/docusaurus/pull/3760) fix(v2): codesandbox generated examples should use published init package ([@slorber](https://github.com/slorber))\\n - [#3701](https://github.com/facebook/docusaurus/pull/3701) fix(v2): limit images height on showcase page ([@lex111](https://github.com/lex111))\\n- `docusaurus-mdx-loader`\\n - [#3757](https://github.com/facebook/docusaurus/pull/3757) fix(v2): escape alt text in img tag ([@lex111](https://github.com/lex111))\\n - [#3653](https://github.com/facebook/docusaurus/pull/3653) fix(v2): handle multiple asset links in one line properly ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-search-algolia`, `docusaurus-utils`\\n - [#3721](https://github.com/facebook/docusaurus/pull/3721) fix(v2): use swizzled SearchPage component if any ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#3725](https://github.com/facebook/docusaurus/pull/3725) fix(v2): fix inconsistent error output in swizzle command ([@lex111](https://github.com/lex111))\\n - [#3704](https://github.com/facebook/docusaurus/pull/3704) refactor(v2): allow adding plugins depending on condition ([@lex111](https://github.com/lex111))\\n - [#3691](https://github.com/facebook/docusaurus/pull/3691) fix(v2): use SVGO in webpack SVGR loader ([@charleskorn](https://github.com/charleskorn))\\n - [#3667](https://github.com/facebook/docusaurus/pull/3667) fix(v2): Fix typo in BaseUrlSuggestionWarning ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-utils`\\n - [#3703](https://github.com/facebook/docusaurus/pull/3703) fix(v2): ignore export declarations in excerpt ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-search-algolia`\\n - [#3639](https://github.com/facebook/docusaurus/pull/3639) fix(v2): restore infinite scroll pagination on search page ([@lex111](https://github.com/lex111))\\n- `docusaurus-types`, `docusaurus`\\n - [#3622](https://github.com/facebook/docusaurus/pull/3622) fix(v2): docusaurus start --poll 500 should work + better config load failure error ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus`\\n - [#3765](https://github.com/facebook/docusaurus/pull/3765) chore(v2): replace wait-file with wait-on to reduce npm warnings ([@lex111](https://github.com/lex111))\\n - [#3725](https://github.com/facebook/docusaurus/pull/3725) fix(v2): fix inconsistent error output in swizzle command ([@lex111](https://github.com/lex111))\\n - [#3609](https://github.com/facebook/docusaurus/pull/3609) refactor(v2): Improve SSR error message: log page path ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#3764](https://github.com/facebook/docusaurus/pull/3764) refactor(v2): make accessible anchor links from keyboard ([@lex111](https://github.com/lex111))\\n - [#3745](https://github.com/facebook/docusaurus/pull/3745) refactor(v2): introduce Logo component, remove useLogo hook ([@Simek](https://github.com/Simek))\\n - [#3706](https://github.com/facebook/docusaurus/pull/3706) refactor(v2): render all tab panels at once ([@lex111](https://github.com/lex111))\\n - [#3712](https://github.com/facebook/docusaurus/pull/3712) chore(v2): upgrade Infima to v0.2.0-alpha.15 ([@lex111](https://github.com/lex111))\\n - [#3685](https://github.com/facebook/docusaurus/pull/3685) refactor(v2): improve regex matching code-block title ([@hong4rc](https://github.com/hong4rc))\\n - [#3674](https://github.com/facebook/docusaurus/pull/3674) feat(v2): add additional wrapper class to blog pages ([@Simek](https://github.com/Simek))\\n - [#3671](https://github.com/facebook/docusaurus/pull/3671) refactor(v2): improve regex matching code-block title ([@hong4rc](https://github.com/hong4rc))\\n - [#3654](https://github.com/facebook/docusaurus/pull/3654) refactor(v2): clean up code blocks ([@lex111](https://github.com/lex111))\\n - [#3649](https://github.com/facebook/docusaurus/pull/3649) refactor(v2): make code blocks scrollable from keyboard ([@lex111](https://github.com/lex111))\\n - [#3626](https://github.com/facebook/docusaurus/pull/3626) refactor(v2): remove focus outline from mouse users ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`\\n - [#3709](https://github.com/facebook/docusaurus/pull/3709) chore(v2): adjust website npm package ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#3707](https://github.com/facebook/docusaurus/pull/3707) chore(v2): upgrade Infima to v0.2.0-alpha.14 ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus`\\n - [#3638](https://github.com/facebook/docusaurus/pull/3638) chore(v2): migrate hapi/joi to joi ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-search-algolia`\\n - [#3604](https://github.com/facebook/docusaurus/pull/3604) refactor(v2): use new way to get versions for search page ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#3762](https://github.com/facebook/docusaurus/pull/3762) Adding ConfigCat to showcase ([@sigewuzhere](https://github.com/sigewuzhere))\\n - [#3750](https://github.com/facebook/docusaurus/pull/3750) docs(v2): add npm2yarn to typescript install command ([@davidjgoss](https://github.com/davidjgoss))\\n - [#3743](https://github.com/facebook/docusaurus/pull/3743) docs(v2): convert teams page to MDX ([@slorber](https://github.com/slorber))\\n - [#3737](https://github.com/facebook/docusaurus/pull/3737) docs(v2): add Inline SVG color override example ([@Simek](https://github.com/Simek))\\n - [#3718](https://github.com/facebook/docusaurus/pull/3718) docs(v2): showcase Botonic ([@vanbasten17](https://github.com/vanbasten17))\\n - [#3696](https://github.com/facebook/docusaurus/pull/3696) docs(v2): normalize showcase preview images height ([@Simek](https://github.com/Simek))\\n - [#3699](https://github.com/facebook/docusaurus/pull/3699) docs(v2): deployment should use mdx extension ([@slorber](https://github.com/slorber))\\n - [#3695](https://github.com/facebook/docusaurus/pull/3695) docs(v2): add React Native website to the showcase ([@Simek](https://github.com/Simek))\\n - [#3645](https://github.com/facebook/docusaurus/pull/3645) Update Docusaurus v2 Showcase ([@ndom91](https://github.com/ndom91))\\n - [#3644](https://github.com/facebook/docusaurus/pull/3644) docs(v2): update the link of joi ([@kenve](https://github.com/kenve))\\n - [#3636](https://github.com/facebook/docusaurus/pull/3636) docs(v2): fix some misspellings ([@ka1bi4](https://github.com/ka1bi4))\\n - [#3630](https://github.com/facebook/docusaurus/pull/3630) docs: remove runme ([@juzhiyuan](https://github.com/juzhiyuan))\\n- `docusaurus-remark-plugin-npm2yarn`\\n - [#3624](https://github.com/facebook/docusaurus/pull/3624) Fix typo in remark-plugin-npm2yarn documentation ([@belemaire](https://github.com/belemaire))\\n\\n## :house: Internal\\n\\n- Other\\n - [#3769](https://github.com/facebook/docusaurus/pull/3769) docs(v2): fix statements background, update footer background ([@Simek](https://github.com/Simek))\\n - [#3744](https://github.com/facebook/docusaurus/pull/3744) chore(v2): add build size bot workflow GitHub CI workflow ([@jcs98](https://github.com/jcs98))\\n - [#3741](https://github.com/facebook/docusaurus/pull/3741) chore: update yarn lock again ([@slorber](https://github.com/slorber))\\n - [#3740](https://github.com/facebook/docusaurus/pull/3740) chore: update yarn lock ([@slorber](https://github.com/slorber))\\n - [#3738](https://github.com/facebook/docusaurus/pull/3738) chore(internal): add yarn deduplicate script, cleanup lock ([@Simek](https://github.com/Simek))\\n - [#3732](https://github.com/facebook/docusaurus/pull/3732) fix(internal): fix clear script from the main package.json ([@Simek](https://github.com/Simek))\\n - [#3708](https://github.com/facebook/docusaurus/pull/3708) chore(v2): remove docs for alpha v60-61 ([@lex111](https://github.com/lex111))\\n - [#3693](https://github.com/facebook/docusaurus/pull/3693) fix(v2): fix website scripts on Windows by using cross-env ([@Simek](https://github.com/Simek))\\n - [#3673](https://github.com/facebook/docusaurus/pull/3673) test(e2e): dogfood Yarn with enableGlobalCache ([@ylemkimon](https://github.com/ylemkimon))\\n - [#3641](https://github.com/facebook/docusaurus/pull/3641) misc: fix unbound env variable in test release script ([@lex111](https://github.com/lex111))\\n- `docusaurus-mdx-loader`, `docusaurus-migrate`, `lqip-loader`\\n - [#3766](https://github.com/facebook/docusaurus/pull/3766) chore(v2): fix several npm warnings ([@lex111](https://github.com/lex111))\\n- `docusaurus-mdx-loader`\\n - [#3753](https://github.com/facebook/docusaurus/pull/3753) chore(v2): fix mismatch peer dependency in MDX loader ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#3742](https://github.com/facebook/docusaurus/pull/3742) chore(v2): pin version of babel-plugin-dynamic-import-node to 2.3.0 ([@lex111](https://github.com/lex111))\\n - [#3734](https://github.com/facebook/docusaurus/pull/3734) chore(v2): downgrade babel-plugin-dynamic-import-node to 2.3.0 ([@lex111](https://github.com/lex111))\\n - [#3714](https://github.com/facebook/docusaurus/pull/3714) chore(v2): fix prettier formatting ([@slorber](https://github.com/slorber))\\n - [#3619](https://github.com/facebook/docusaurus/pull/3619) refactor(v2): add better error message for yarn workspace/monorepo/terser issue ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-pwa`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#3727](https://github.com/facebook/docusaurus/pull/3727) chore(v2): upgrade dependencies ([@lex111](https://github.com/lex111))\\n- `docusaurus-1.x`\\n - [#3715](https://github.com/facebook/docusaurus/pull/3715) chore(v2): update Browserslist ([@lex111](https://github.com/lex111))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-sitemap`\\n - [#3675](https://github.com/facebook/docusaurus/pull/3675) fix(v2): add missing \'react\' and \'webpack\' peer dependencies ([@ylemkimon](https://github.com/ylemkimon))\\n- `docusaurus-1.x`, `docusaurus-init-1.x`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`, `stylelint-copyright`\\n - [#3613](https://github.com/facebook/docusaurus/pull/3613) fix: add repository metadata to all packages ([@rarkins](https://github.com/rarkins))\\n\\n## Committers: 26\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Anh Hong ([@hong4rc](https://github.com/hong4rc))\\n- Artem Kovalov ([@artemkovalyov](https://github.com/artemkovalyov))\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- Beno\xeet Lemaire ([@belemaire](https://github.com/belemaire))\\n- Bright Egbo ([@egbobright](https://github.com/egbobright))\\n- Charles Korn ([@charleskorn](https://github.com/charleskorn))\\n- David Goss ([@davidjgoss](https://github.com/davidjgoss))\\n- Gergely Sinka ([@sigewuzhere](https://github.com/sigewuzhere))\\n- Hai ([@haivp3010](https://github.com/haivp3010))\\n- Jainam Chirag Shah ([@jcs98](https://github.com/jcs98))\\n- Marc Rabat Pla ([@vanbasten17](https://github.com/vanbasten17))\\n- Nate Giraudeau ([@nategiraudeau](https://github.com/nategiraudeau))\\n- Nico Domino ([@ndom91](https://github.com/ndom91))\\n- Rhys Arkins ([@rarkins](https://github.com/rarkins))\\n- Roman Bug ([@ka1bi4](https://github.com/ka1bi4))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- Shenwei Wang ([@weareoutman](https://github.com/weareoutman))\\n- Stephen McElhinney ([@smcelhinney](https://github.com/smcelhinney))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Thakur Karthik ([@ThakurKarthik](https://github.com/ThakurKarthik))\\n- [@sammychinedu2ky](https://github.com/sammychinedu2ky)\\n- iAmir ([@AmyrAhmady](https://github.com/AmyrAhmady))\\n- kenve ([@kenve](https://github.com/kenve))\\n- ylemkimon ([@ylemkimon](https://github.com/ylemkimon))\\n- \u741A\u81F4\u8FDC ([@juzhiyuan](https://github.com/juzhiyuan))"},{"id":"/2.0.0-alpha.67","metadata":{"permalink":"/changelog/2.0.0-alpha.67","source":"@site/changelog/source/2.0.0-alpha.67.md","title":"2.0.0-alpha.67","description":"Failed release","date":"2020-11-18T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2020-11-18T19:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.68","permalink":"/changelog/2.0.0-alpha.68"},"nextItem":{"title":"2.0.0-alpha.66","permalink":"/changelog/2.0.0-alpha.66"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\nFailed release"},{"id":"/2.0.0-alpha.66","metadata":{"permalink":"/changelog/2.0.0-alpha.66","source":"@site/changelog/source/2.0.0-alpha.66.md","title":"2.0.0-alpha.66","description":"New Feature","date":"2020-10-19T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"aakhtar3","alias":"aakhtar3","url":"https://github.com/aakhtar3","imageURL":"https://github.com/aakhtar3.png","key":"aakhtar3","page":null},{"name":"Abhishek Tiwari","alias":"abhishektiwari","url":"https://github.com/abhishektiwari","imageURL":"https://github.com/abhishektiwari.png","key":"abhishektiwari","page":null},{"name":"Christian Bromann","alias":"christian-bromann","url":"https://github.com/christian-bromann","imageURL":"https://github.com/christian-bromann.png","key":"christian-bromann","page":null},{"name":"Fanny","alias":"fanny","url":"https://github.com/fanny","imageURL":"https://github.com/fanny.png","key":"fanny","page":null},{"name":"Hamza Hamidi","alias":"hamzahamidi","url":"https://github.com/hamzahamidi","imageURL":"https://github.com/hamzahamidi.png","key":"hamzahamidi","page":null},{"name":"honlyHuang","alias":"honlyHuang","url":"https://github.com/honlyHuang","imageURL":"https://github.com/honlyHuang.png","key":"honlyHuang","page":null},{"name":"Shubham Kumar","alias":"imskr","url":"https://github.com/imskr","imageURL":"https://github.com/imskr.png","key":"imskr","page":null},{"name":"John Gracey","alias":"jagracey","url":"https://github.com/jagracey","imageURL":"https://github.com/jagracey.png","key":"jagracey","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Matan Borenkraout","alias":"MatanBobi","url":"https://github.com/MatanBobi","imageURL":"https://github.com/MatanBobi.png","key":"MatanBobi","page":null},{"name":"Russ Taylor","alias":"russtaylor","url":"https://github.com/russtaylor","imageURL":"https://github.com/russtaylor.png","key":"russtaylor","page":null},{"name":"SaintMalik","alias":"saintmalik","url":"https://github.com/saintmalik","imageURL":"https://github.com/saintmalik.png","key":"saintmalik","page":null},{"name":"Shubham Zanwar","alias":"shubhamzanwar","url":"https://github.com/shubhamzanwar","imageURL":"https://github.com/shubhamzanwar.png","key":"shubhamzanwar","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Umair Kamran","alias":"UmairKamran","url":"https://github.com/UmairKamran","imageURL":"https://github.com/UmairKamran.png","key":"UmairKamran","page":null},{"name":"Utkarsh Goel","alias":"utkarsh867","url":"https://github.com/utkarsh867","imageURL":"https://github.com/utkarsh867.png","key":"utkarsh867","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-10-19T20:00","authors":["aakhtar3","abhishektiwari","christian-bromann","fanny","hamzahamidi","honlyHuang","imskr","jagracey","lex111","MatanBobi","russtaylor","saintmalik","shubhamzanwar","Simek","slorber","UmairKamran","utkarsh867"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.67","permalink":"/changelog/2.0.0-alpha.67"},"nextItem":{"title":"2.0.0-alpha.65","permalink":"/changelog/2.0.0-alpha.65"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#3593](https://github.com/facebook/docusaurus/pull/3593) feat(v2): blog sidebar ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-remark-plugin-npm2yarn`\\n - [#3469](https://github.com/facebook/docusaurus/pull/3469) feat(v2): Extract npm2yarn plugin ([@fanny](https://github.com/fanny))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#3550](https://github.com/facebook/docusaurus/pull/3550) feat(v2): contextual search, dynamic Algolia facetFilters ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#3580](https://github.com/facebook/docusaurus/pull/3580) feat(v2): allow to define custom CSS class for Tabs component ([@Simek](https://github.com/Simek))\\n - [#3553](https://github.com/facebook/docusaurus/pull/3553) feat(v2): make dropdown menu collapsible on mobiles ([@lex111](https://github.com/lex111))\\n- `docusaurus-migrate`, `docusaurus-types`, `docusaurus`\\n - [#3573](https://github.com/facebook/docusaurus/pull/3573) feat(v2): Add themeConfig.noIndex option #3528 ([@hamzahamidi](https://github.com/hamzahamidi))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus`\\n - [#3543](https://github.com/facebook/docusaurus/pull/3543) feat(v2): persist docs preferred version ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#3548](https://github.com/facebook/docusaurus/pull/3548) feat(v2): version dropdown before/after items + move site \\"All Versions\\" link ([@slorber](https://github.com/slorber))\\n- `docusaurus-types`, `docusaurus`\\n - [#3545](https://github.com/facebook/docusaurus/pull/3545) feat(v2): site client modules ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#3539](https://github.com/facebook/docusaurus/pull/3539) feat(v2): doc navbar item type ([@slorber](https://github.com/slorber))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#3550](https://github.com/facebook/docusaurus/pull/3550) feat(v2): contextual search, dynamic Algolia facetFilters ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#3607](https://github.com/facebook/docusaurus/pull/3607) fix(v2): fix error with required href attr of link in mobiles ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#3602](https://github.com/facebook/docusaurus/pull/3602) fix(v2): make dropdown button clickable with mouse ([@lex111](https://github.com/lex111))\\n - [#3601](https://github.com/facebook/docusaurus/pull/3601) fix(v2): fix table-of-content scroll highlighting issues ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`\\n - [#3599](https://github.com/facebook/docusaurus/pull/3599) fix(v2): remove event listeners on Tabs component unmount ([@lex111](https://github.com/lex111))\\n- `docusaurus-types`, `docusaurus`\\n - [#3531](https://github.com/facebook/docusaurus/pull/3531) fix(v2): Fixes serve cli --port option ([@UmairKamran](https://github.com/UmairKamran))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#3585](https://github.com/facebook/docusaurus/pull/3585) refactor(v2): various dropdown improvements ([@lex111](https://github.com/lex111))\\n - [#3588](https://github.com/facebook/docusaurus/pull/3588) refactor(v2): make accessible copy code button from keyboard ([@lex111](https://github.com/lex111))\\n - [#3578](https://github.com/facebook/docusaurus/pull/3578) refactor(v2): apply common behavior to dropdowns ([@lex111](https://github.com/lex111))\\n - [#3546](https://github.com/facebook/docusaurus/pull/3546) docs: various fixes and improvements ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#3587](https://github.com/facebook/docusaurus/pull/3587) refactor(v2): various fixes ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#3569](https://github.com/facebook/docusaurus/pull/3569) refactor(v2): improve broken links error message ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#3576](https://github.com/facebook/docusaurus/pull/3576) docs(v2): removed obsolete \\"you\\" identifier ([@christian-bromann](https://github.com/christian-bromann))\\n - [#3589](https://github.com/facebook/docusaurus/pull/3589) docs(v2): add taro to users ([@honlyHuang](https://github.com/honlyHuang))\\n - [#3565](https://github.com/facebook/docusaurus/pull/3565) docs(v2): deployment, add required GitHub token scope infos ([@russtaylor](https://github.com/russtaylor))\\n - [#3574](https://github.com/facebook/docusaurus/pull/3574) docs(v2): adding vue-nodegui to users ([@shubhamzanwar](https://github.com/shubhamzanwar))\\n - [#3556](https://github.com/facebook/docusaurus/pull/3556) Added Axioms to users ([@abhishektiwari](https://github.com/abhishektiwari))\\n - [#3558](https://github.com/facebook/docusaurus/pull/3558) docs(v2): embedding real source code in MDX as a code block ([@slorber](https://github.com/slorber))\\n - [#3555](https://github.com/facebook/docusaurus/pull/3555) docs(v2): add \\"Wisdom\\" dev docs website to showcase. ([@jagracey](https://github.com/jagracey))\\n - [#3532](https://github.com/facebook/docusaurus/pull/3532) docs(v2): change package name in example script ([@MatanBobi](https://github.com/MatanBobi))\\n - [#3538](https://github.com/facebook/docusaurus/pull/3538) docs(v1): added drone for 1.0 #3491 ([@aakhtar3](https://github.com/aakhtar3))\\n - [#3533](https://github.com/facebook/docusaurus/pull/3533) docs(v1): Fix broken link in the documentation ([@saintmalik](https://github.com/saintmalik))\\n - [#3534](https://github.com/facebook/docusaurus/pull/3534) docs(v2): Fix url bugs in v2 docs ([@saintmalik](https://github.com/saintmalik))\\n- `docusaurus-theme-classic`\\n - [#3546](https://github.com/facebook/docusaurus/pull/3546) docs: various fixes and improvements ([@lex111](https://github.com/lex111))\\n\\n## :house: Internal\\n\\n- `docusaurus-theme-search-algolia`\\n - [#3591](https://github.com/facebook/docusaurus/pull/3591) chore(v2): enable new contextual search feature ([@slorber](https://github.com/slorber))\\n- Other\\n - [#3586](https://github.com/facebook/docusaurus/pull/3586) chore(v2): fix/upgrade react types ([@slorber](https://github.com/slorber))\\n - [#3577](https://github.com/facebook/docusaurus/pull/3577) refactor(v2): clarify versions page ([@lex111](https://github.com/lex111))\\n - [#3560](https://github.com/facebook/docusaurus/pull/3560) feat(v2): prevent using remote image urls in showcase ([@slorber](https://github.com/slorber))\\n - [#3554](https://github.com/facebook/docusaurus/pull/3554) fix(v2): use absolute path to manifest file ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#3394](https://github.com/facebook/docusaurus/pull/3394) refactor(v2): add useThemeConfig hook + cleanup useless theme default values ([@imskr](https://github.com/imskr))\\n\\n## Committers: 17\\n\\n- Abhishek Tiwari ([@abhishektiwari](https://github.com/abhishektiwari))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- Christian Bromann ([@christian-bromann](https://github.com/christian-bromann))\\n- Fanny ([@fanny](https://github.com/fanny))\\n- Hamza Hamidi ([@hamzahamidi](https://github.com/hamzahamidi))\\n- John Gracey ([@jagracey](https://github.com/jagracey))\\n- Matan Borenkraout ([@MatanBobi](https://github.com/MatanBobi))\\n- Russ Taylor ([@russtaylor](https://github.com/russtaylor))\\n- SaintMalik ([@saintmalik](https://github.com/saintmalik))\\n- Shubham Kumar ([@imskr](https://github.com/imskr))\\n- Shubham Zanwar ([@shubhamzanwar](https://github.com/shubhamzanwar))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Umair Kamran ([@UmairKamran](https://github.com/UmairKamran))\\n- Utkarsh Goel ([@utkarsh867](https://github.com/utkarsh867))\\n- [@aakhtar3](https://github.com/aakhtar3)\\n- honlyHuang ([@honlyHuang](https://github.com/honlyHuang))"},{"id":"/2.0.0-alpha.65","metadata":{"permalink":"/changelog/2.0.0-alpha.65","source":"@site/changelog/source/2.0.0-alpha.65.md","title":"2.0.0-alpha.65","description":"New Feature","date":"2020-10-02T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"aakhtar3","alias":"aakhtar3","url":"https://github.com/aakhtar3","imageURL":"https://github.com/aakhtar3.png","key":"aakhtar3","page":null},{"name":"Henry V\xe9lez","alias":"abadon7","url":"https://github.com/abadon7","imageURL":"https://github.com/abadon7.png","key":"abadon7","page":null},{"name":"hackerman","alias":"aeneasr","url":"https://github.com/aeneasr","imageURL":"https://github.com/aeneasr.png","key":"aeneasr","page":null},{"name":"Andrey Rublev","alias":"anru","url":"https://github.com/anru","imageURL":"https://github.com/anru.png","key":"anru","page":null},{"name":"Nahiyan Kamal","alias":"ayonious","url":"https://github.com/ayonious","imageURL":"https://github.com/ayonious.png","key":"ayonious","page":null},{"name":"R\xe9mi Doreau","alias":"ayshiff","url":"https://github.com/ayshiff","imageURL":"https://github.com/ayshiff.png","key":"ayshiff","page":null},{"name":"Gr\xe9gory Heitz","alias":"edno","url":"https://github.com/edno","imageURL":"https://github.com/edno.png","key":"edno","page":null},{"name":"Jeremy Hager","alias":"jeremyhager","url":"https://github.com/jeremyhager","imageURL":"https://github.com/jeremyhager.png","key":"jeremyhager","page":null},{"name":"Joel Marcey","alias":"JoelMarcey","url":"https://github.com/JoelMarcey","imageURL":"https://github.com/JoelMarcey.png","key":"JoelMarcey","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Long Ho","alias":"longlho","url":"https://github.com/longlho","imageURL":"https://github.com/longlho.png","key":"longlho","page":null},{"name":"moonrailgun","alias":"moonrailgun","url":"https://github.com/moonrailgun","imageURL":"https://github.com/moonrailgun.png","key":"moonrailgun","page":null},{"name":"Muskan Kumar","alias":"muskanvk","url":"https://github.com/muskanvk","imageURL":"https://github.com/muskanvk.png","key":"muskanvk","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tim Gates","alias":"timgates42","url":"https://github.com/timgates42","imageURL":"https://github.com/timgates42.png","key":"timgates42","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-10-02T20:00","authors":["aakhtar3","abadon7","aeneasr","anru","ayonious","ayshiff","edno","jeremyhager","JoelMarcey","lex111","longlho","moonrailgun","muskanvk","SamChou19815","Simek","slorber","timgates42","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.66","permalink":"/changelog/2.0.0-alpha.66"},"nextItem":{"title":"2.0.0-alpha.64","permalink":"/changelog/2.0.0-alpha.64"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus`\\n - [#3497](https://github.com/facebook/docusaurus/pull/3497) feat(v2): env variable TERSER_PARALLEL to customize TerserPlugin.parallel ([@aeneasr](https://github.com/aeneasr))\\n - [#3446](https://github.com/facebook/docusaurus/pull/3446) feat(v2): new docusaurus clear command ([@abadon7](https://github.com/abadon7))\\n - [#3485](https://github.com/facebook/docusaurus/pull/3485) feat(v2): Add @theme-init components to user theme ([@edno](https://github.com/edno))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`\\n - [#3467](https://github.com/facebook/docusaurus/pull/3467) feat(v2): add beforeDefaultRemarkPlugins/beforeDefaultRehypePlugins options to all md content plugins ([@ayshiff](https://github.com/ayshiff))\\n- `docusaurus-init`, `docusaurus-theme-bootstrap`\\n - [#3496](https://github.com/facebook/docusaurus/pull/3496) feat(v2): migrate bootstrap components to ts ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#3474](https://github.com/facebook/docusaurus/pull/3474) feat(v2): allow to use array of files in customCss field ([@Simek](https://github.com/Simek))\\n- `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`\\n - [#3457](https://github.com/facebook/docusaurus/pull/3457) feat(v2): add optional custom wrapper class name for pages based on theme classic Layout ([@Simek](https://github.com/Simek))\\n\\n## :bug: Bug Fix\\n\\n- Other\\n - [#3517](https://github.com/facebook/docusaurus/pull/3517) fix(v1): v1 deploy preview should be available ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#3498](https://github.com/facebook/docusaurus/pull/3498) fix(v2): fixed props being passed to @svgr/webpack loader ([@anru](https://github.com/anru))\\n- `docusaurus-theme-search-algolia`\\n - [#3456](https://github.com/facebook/docusaurus/pull/3456) fix(v2): use valid value for crossorigin attribute ([@lex111](https://github.com/lex111))\\n- `docusaurus-utils`\\n - [#3427](https://github.com/facebook/docusaurus/pull/3427) fix(v2): normalizeUrl edge cases ([@ayshiff](https://github.com/ayshiff))\\n- `docusaurus-theme-classic`\\n - [#3472](https://github.com/facebook/docusaurus/pull/3472) fix(v2): Show dropdown instead of a single button when there are two versions ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-content-docs`\\n - [#3441](https://github.com/facebook/docusaurus/pull/3441) fix(v2): fixing typo in error message ([@ayonious](https://github.com/ayonious))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#3499](https://github.com/facebook/docusaurus/pull/3499) chore(v2): upgrade Infima to 0.2.0-alpha.13 ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- `docusaurus`\\n - [#3502](https://github.com/facebook/docusaurus/pull/3502) docs(v2): add doc for wrapping theme components with @theme-original and @theme-init ([@slorber](https://github.com/slorber))\\n- Other\\n - [#3473](https://github.com/facebook/docusaurus/pull/3473) misc: add License to the documentation ([@muskanvk](https://github.com/muskanvk))\\n - [#3492](https://github.com/facebook/docusaurus/pull/3492) docs(v2): Added drone.io publish docs #3491 ([@aakhtar3](https://github.com/aakhtar3))\\n - [#3479](https://github.com/facebook/docusaurus/pull/3479) docs(v2): remove redundant new line in code block ([@lex111](https://github.com/lex111))\\n - [#3448](https://github.com/facebook/docusaurus/pull/3448) chore(v2): fix theme classic navbar style docs ([@Simek](https://github.com/Simek))\\n\\n## :house: Internal\\n\\n- `docusaurus-1.x`, `docusaurus-migrate`\\n - [#3504](https://github.com/facebook/docusaurus/pull/3504) chore(v1): move v1 docs inside website-1.x ([@slorber](https://github.com/slorber))\\n- Other\\n - [#3506](https://github.com/facebook/docusaurus/pull/3506) chore(v2): v2 website should make it easy to contribute to upstream docs ([@slorber](https://github.com/slorber))\\n - [#3511](https://github.com/facebook/docusaurus/pull/3511) misc: update CODEOWNERS ([@yangshun](https://github.com/yangshun))\\n - [#3477](https://github.com/facebook/docusaurus/pull/3477) chore(v2): remove alpha 58 doc ([@lex111](https://github.com/lex111))\\n- `docusaurus-utils-validation`\\n - [#3453](https://github.com/facebook/docusaurus/pull/3453) test(v2): add protocol relative uri validation test ([@moonrailgun](https://github.com/moonrailgun))\\n\\n## Committers: 18\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Andrey Rublev ([@anru](https://github.com/anru))\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- Gr\xe9gory Heitz ([@edno](https://github.com/edno))\\n- Henry V\xe9lez ([@abadon7](https://github.com/abadon7))\\n- Jeremy Hager ([@jeremyhager](https://github.com/jeremyhager))\\n- Joel Marcey ([@JoelMarcey](https://github.com/JoelMarcey))\\n- Long Ho ([@longlho](https://github.com/longlho))\\n- Muskan Kumar ([@muskanvk](https://github.com/muskanvk))\\n- Nahiyan Kamal ([@ayonious](https://github.com/ayonious))\\n- R\xe9mi Doreau ([@ayshiff](https://github.com/ayshiff))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tim Gates ([@timgates42](https://github.com/timgates42))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- [@aakhtar3](https://github.com/aakhtar3)\\n- hackerman ([@aeneasr](https://github.com/aeneasr))\\n- moonrailgun ([@moonrailgun](https://github.com/moonrailgun))"},{"id":"/2.0.0-alpha.64","metadata":{"permalink":"/changelog/2.0.0-alpha.64","source":"@site/changelog/source/2.0.0-alpha.64.md","title":"2.0.0-alpha.64","description":"New Feature","date":"2020-09-11T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Ash","alias":"ashscodes","url":"https://github.com/ashscodes","imageURL":"https://github.com/ashscodes.png","key":"ashscodes","page":null},{"name":"josephMG","alias":"josephMG","url":"https://github.com/josephMG","imageURL":"https://github.com/josephMG.png","key":"josephMG","page":null},{"name":"M\xe9ril","alias":"mpsq","url":"https://github.com/mpsq","imageURL":"https://github.com/mpsq.png","key":"mpsq","page":null},{"name":"Rutik Wankhade","alias":"rutikwankhade","url":"https://github.com/rutikwankhade","imageURL":"https://github.com/rutikwankhade.png","key":"rutikwankhade","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Thad Guidry","alias":"thadguidry","url":"https://github.com/thadguidry","imageURL":"https://github.com/thadguidry.png","key":"thadguidry","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-09-11T20:00","authors":["ashscodes","josephMG","mpsq","rutikwankhade","Simek","slorber","thadguidry"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.65","permalink":"/changelog/2.0.0-alpha.65"},"nextItem":{"title":"2.0.0-alpha.63","permalink":"/changelog/2.0.0-alpha.63"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#3432](https://github.com/facebook/docusaurus/pull/3432) feat(v2): add style property to theme-classic navbar ([@Simek](https://github.com/Simek))\\n - [#3406](https://github.com/facebook/docusaurus/pull/3406) feat(v2): ability to add/override theme html metadatas ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-sitemap`\\n - [#3426](https://github.com/facebook/docusaurus/pull/3426) feat(v2): add option to add trailing slash to urls in sitemap ([@mpsq](https://github.com/mpsq))\\n\\n## :bug: Bug Fix\\n\\n- Other\\n - [#3438](https://github.com/facebook/docusaurus/pull/3438) fix(v2): docusaurus 2 PWA should work under baseurl (deploy previews) ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`\\n - [#3435](https://github.com/facebook/docusaurus/pull/3435) fix(v2): fix empty link error message ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-pwa`\\n - [#3436](https://github.com/facebook/docusaurus/pull/3436) fix(v2): Correctly resolve sw.js path on windows ([@ashscodes](https://github.com/ashscodes))\\n- `docusaurus-theme-classic`\\n - [#3433](https://github.com/facebook/docusaurus/pull/3433) fix(v2): fix theme-classic announcement bar closeable style ([@Simek](https://github.com/Simek))\\n- `docusaurus-1.x`\\n - [#3429](https://github.com/facebook/docusaurus/pull/3429) fix(v1): versioned_docs and skip-next-release relative path issue ([@josephMG](https://github.com/josephMG))\\n- `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`\\n - [#3418](https://github.com/facebook/docusaurus/pull/3418) fix(v2): reset sidebar state on sidebar changes ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-debug`\\n - [#3405](https://github.com/facebook/docusaurus/pull/3405) fix(v2): fix debug plugin unscoped inline code global css ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- [#3428](https://github.com/facebook/docusaurus/pull/3428) docs(v2): fix grammar ([@thadguidry](https://github.com/thadguidry))\\n- [#3425](https://github.com/facebook/docusaurus/pull/3425) docs(v2): mention Eta in ssrTemplate section ([@mpsq](https://github.com/mpsq))\\n- [#3423](https://github.com/facebook/docusaurus/pull/3423) docs(v2): minor typo fix ([@rutikwankhade](https://github.com/rutikwankhade))\\n\\n## :house: Internal\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus`\\n - [#3439](https://github.com/facebook/docusaurus/pull/3439) chore(v2): fix serialize-javascript security issue by upgrading webpack/workbox ([@slorber](https://github.com/slorber))\\n- Other\\n - [#3401](https://github.com/facebook/docusaurus/pull/3401) chore(deps): bump decompress from 4.2.0 to 4.2.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n\\n## Committers: 7\\n\\n- Ash ([@ashscodes](https://github.com/ashscodes))\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- M\xe9ril ([@mpsq](https://github.com/mpsq))\\n- Rutik Wankhade ([@rutikwankhade](https://github.com/rutikwankhade))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Thad Guidry ([@thadguidry](https://github.com/thadguidry))\\n- [@josephMG](https://github.com/josephMG)"},{"id":"/2.0.0-alpha.63","metadata":{"permalink":"/changelog/2.0.0-alpha.63","source":"@site/changelog/source/2.0.0-alpha.63.md","title":"2.0.0-alpha.63","description":"New Feature","date":"2020-09-03T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"M\xe9ril","alias":"mpsq","url":"https://github.com/mpsq","imageURL":"https://github.com/mpsq.png","key":"mpsq","page":null},{"name":"Sam Ko","alias":"samsisle","url":"https://github.com/samsisle","imageURL":"https://github.com/samsisle.png","key":"samsisle","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Thad Guidry","alias":"thadguidry","url":"https://github.com/thadguidry","imageURL":"https://github.com/thadguidry.png","key":"thadguidry","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-09-03T20:00","authors":["mpsq","samsisle","Simek","slorber","thadguidry"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.64","permalink":"/changelog/2.0.0-alpha.64"},"nextItem":{"title":"2.0.0-alpha.62","permalink":"/changelog/2.0.0-alpha.62"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-types`, `docusaurus`\\n - [#3387](https://github.com/facebook/docusaurus/pull/3387) feat(v2): allow users to specify a custom ssr HTML template ([@mpsq](https://github.com/mpsq))\\n- `docusaurus-plugin-debug`\\n - [#3392](https://github.com/facebook/docusaurus/pull/3392) feat(v2): officially release @docusaurus/plugin-debug ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#3388](https://github.com/facebook/docusaurus/pull/3388) feat(v2): add isCloseable property for theme-classic announcement bar ([@Simek](https://github.com/Simek))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#3373](https://github.com/facebook/docusaurus/pull/3373) feat(v2): docs options.onlyIncludeVersions ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- Other\\n - [#3397](https://github.com/facebook/docusaurus/pull/3397) fix(v2): DocSearch should keep working after a new release (part 2/2) ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#3393](https://github.com/facebook/docusaurus/pull/3393) fix(v2): DocSearch should keep working after a new release (part 1/2) ([@slorber](https://github.com/slorber))\\n - [#3381](https://github.com/facebook/docusaurus/pull/3381) fix(v2): alpha 62 doc fixes ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#3385](https://github.com/facebook/docusaurus/pull/3385) fix(v2): scripts should allow unknown values ([@slorber](https://github.com/slorber))\\n- `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus`\\n - [#3382](https://github.com/facebook/docusaurus/pull/3382) fix(v2): allow using classic theme/preset without the docs plugin ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils-validation`\\n - [#3377](https://github.com/facebook/docusaurus/pull/3377) fix(v2): reject routeBasePath: \'\' ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- [#3390](https://github.com/facebook/docusaurus/pull/3390) docs(v1, v2): Update Deploy to Vercel guide ([@samsisle](https://github.com/samsisle))\\n- [#3344](https://github.com/facebook/docusaurus/pull/3344) docs(v2): Update Deploy to Vercel guide ([@samsisle](https://github.com/samsisle))\\n\\n## :house: Internal\\n\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus`\\n - [#3386](https://github.com/facebook/docusaurus/pull/3386) chore(v2): pin exact dependency versions ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`, `docusaurus-init-1.x`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`, `stylelint-copyright`\\n - [#3359](https://github.com/facebook/docusaurus/pull/3359) chore(v2): prepare v2.0.0.alpha-62 release ([@slorber](https://github.com/slorber))\\n\\n## Committers: 5\\n\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- M\xe9ril ([@mpsq](https://github.com/mpsq))\\n- Sam Ko ([@samsisle](https://github.com/samsisle))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Thad Guidry ([@thadguidry](https://github.com/thadguidry))"},{"id":"/2.0.0-alpha.62","metadata":{"permalink":"/changelog/2.0.0-alpha.62","source":"@site/changelog/source/2.0.0-alpha.62.md","title":"2.0.0-alpha.62","description":"New Feature","date":"2020-08-28T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"adinaja","alias":"adinaja","url":"https://github.com/adinaja","imageURL":"https://github.com/adinaja.png","key":"adinaja","page":null},{"name":"Franklyn Chisom","alias":"ajifrank75","url":"https://github.com/ajifrank75","imageURL":"https://github.com/ajifrank75.png","key":"ajifrank75","page":null},{"name":"Ali Hosseini","alias":"Ako92","url":"https://github.com/Ako92","imageURL":"https://github.com/Ako92.png","key":"Ako92","page":null},{"name":"Amy Lei","alias":"amy-lei","url":"https://github.com/amy-lei","imageURL":"https://github.com/amy-lei.png","key":"amy-lei","page":null},{"name":"Anshul Goyal","alias":"anshulrgoyal","url":"https://github.com/anshulrgoyal","imageURL":"https://github.com/anshulrgoyal.png","key":"anshulrgoyal","page":null},{"name":"Archit","alias":"arcvats","url":"https://github.com/arcvats","imageURL":"https://github.com/arcvats.png","key":"arcvats","page":null},{"name":"Arthur Flam","alias":"arthur-flam","url":"https://github.com/arthur-flam","imageURL":"https://github.com/arthur-flam.png","key":"arthur-flam","page":null},{"name":"Bogdan Doroschenko","alias":"BogdanDor","url":"https://github.com/BogdanDor","imageURL":"https://github.com/BogdanDor.png","key":"BogdanDor","page":null},{"name":"alex busnelli","alias":"boosh511","url":"https://github.com/boosh511","imageURL":"https://github.com/boosh511.png","key":"boosh511","page":null},{"name":"Daniel Wilkowski","alias":"Danon","url":"https://github.com/Danon","imageURL":"https://github.com/Danon.png","key":"Danon","page":null},{"name":"Drew Alexander","alias":"Drewbi","url":"https://github.com/Drewbi","imageURL":"https://github.com/Drewbi.png","key":"Drewbi","page":null},{"name":"Derek","alias":"dschaller","url":"https://github.com/dschaller","imageURL":"https://github.com/dschaller.png","key":"dschaller","page":null},{"name":"Fanny","alias":"fanny","url":"https://github.com/fanny","imageURL":"https://github.com/fanny.png","key":"fanny","page":null},{"name":"Nisarag","alias":"FocalChord","url":"https://github.com/FocalChord","imageURL":"https://github.com/FocalChord.png","key":"FocalChord","page":null},{"name":"Fran\xe7ois Chalifour","alias":"francoischalifour","url":"https://github.com/francoischalifour","imageURL":"https://github.com/francoischalifour.png","key":"francoischalifour","page":null},{"name":"Govardhan Srinivas","alias":"govardhan-srinivas","url":"https://github.com/govardhan-srinivas","imageURL":"https://github.com/govardhan-srinivas.png","key":"govardhan-srinivas","page":null},{"name":"Yang Luo","alias":"hsluoyz","url":"https://github.com/hsluoyz","imageURL":"https://github.com/hsluoyz.png","key":"hsluoyz","page":null},{"name":"Shubham Kumar","alias":"imskr","url":"https://github.com/imskr","imageURL":"https://github.com/imskr.png","key":"imskr","page":null},{"name":"Jean-Marc Saad","alias":"JeanMarcSaad","url":"https://github.com/JeanMarcSaad","imageURL":"https://github.com/JeanMarcSaad.png","key":"JeanMarcSaad","page":null},{"name":"Jonas Dellinger","alias":"JohnnyCrazy","url":"https://github.com/JohnnyCrazy","imageURL":"https://github.com/JohnnyCrazy.png","key":"JohnnyCrazy","page":null},{"name":"Jonathan","alias":"Jonathannsegal","url":"https://github.com/Jonathannsegal","imageURL":"https://github.com/Jonathannsegal.png","key":"Jonathannsegal","page":null},{"name":"lebogang Olifant","alias":"lebogangolifant","url":"https://github.com/lebogangolifant","imageURL":"https://github.com/lebogangolifant.png","key":"lebogangolifant","page":null},{"name":"leoigel","alias":"leoigel","url":"https://github.com/leoigel","imageURL":"https://github.com/leoigel.png","key":"leoigel","page":null},{"name":"Manuel Cepeda","alias":"mecm1993","url":"https://github.com/mecm1993","imageURL":"https://github.com/mecm1993.png","key":"mecm1993","page":null},{"name":"Mirzayev Farid","alias":"MirzayevFarid","url":"https://github.com/MirzayevFarid","imageURL":"https://github.com/MirzayevFarid.png","key":"MirzayevFarid","page":null},{"name":"Ben Gubler","alias":"nebrelbug","url":"https://github.com/nebrelbug","imageURL":"https://github.com/nebrelbug.png","key":"nebrelbug","page":null},{"name":"Olawanle Joel","alias":"olawanlejoel","url":"https://github.com/olawanlejoel","imageURL":"https://github.com/olawanlejoel.png","key":"olawanlejoel","page":null},{"name":"Orta Therox","alias":"orta","url":"https://github.com/orta","imageURL":"https://github.com/orta.png","key":"orta","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"shalinikumari50","alias":"shalinikumari50","url":"https://github.com/shalinikumari50","imageURL":"https://github.com/shalinikumari50.png","key":"shalinikumari50","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Sourav Dey","alias":"Souravdey777","url":"https://github.com/Souravdey777","imageURL":"https://github.com/Souravdey777.png","key":"Souravdey777","page":null},{"name":"Teik Jun","alias":"teikjun","url":"https://github.com/teikjun","imageURL":"https://github.com/teikjun.png","key":"teikjun","page":null},{"name":"Hani Mohammed","alias":"thehanimo","url":"https://github.com/thehanimo","imageURL":"https://github.com/thehanimo.png","key":"thehanimo","page":null},{"name":"Tolunay Akbulut","alias":"tolunayakbulut","url":"https://github.com/tolunayakbulut","imageURL":"https://github.com/tolunayakbulut.png","key":"tolunayakbulut","page":null},{"name":"Vandr\xe9 Leal","alias":"vandreleal","url":"https://github.com/vandreleal","imageURL":"https://github.com/vandreleal.png","key":"vandreleal","page":null},{"name":"Vincent","alias":"Vinnl","url":"https://github.com/Vinnl","imageURL":"https://github.com/Vinnl.png","key":"Vinnl","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null},{"name":"ylemkimon","alias":"ylemkimon","url":"https://github.com/ylemkimon","imageURL":"https://github.com/ylemkimon.png","key":"ylemkimon","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-08-28T20:00","authors":["adinaja","ajifrank75","Ako92","amy-lei","anshulrgoyal","arcvats","arthur-flam","BogdanDor","boosh511","Danon","Drewbi","dschaller","fanny","FocalChord","francoischalifour","govardhan-srinivas","hsluoyz","imskr","JeanMarcSaad","JohnnyCrazy","Jonathannsegal","lebogangolifant","leoigel","mecm1993","MirzayevFarid","nebrelbug","olawanlejoel","orta","SamChou19815","shalinikumari50","slorber","Souravdey777","teikjun","thehanimo","tolunayakbulut","vandreleal","Vinnl","yangshun","ylemkimon"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.63","permalink":"/changelog/2.0.0-alpha.63"},"nextItem":{"title":"2.0.0-alpha.61","permalink":"/changelog/2.0.0-alpha.61"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#3357](https://github.com/facebook/docusaurus/pull/3357) feat(v2): docs version configuration: lastVersion, version.{path,label} ([@slorber](https://github.com/slorber))\\n - [#3328](https://github.com/facebook/docusaurus/pull/3328) feat(v2): Provide docs plugin theme typing ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-theme-classic`\\n - [#3356](https://github.com/facebook/docusaurus/pull/3356) feat(v2): Provide type definitions for remaining theme-classic components ([@SamChou19815](https://github.com/SamChou19815))\\n - [#3274](https://github.com/facebook/docusaurus/pull/3274) feat(v2): add TOC to blog posts ([@amy-lei](https://github.com/amy-lei))\\n- `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`\\n - [#3354](https://github.com/facebook/docusaurus/pull/3354) feat(v2): Provide type definitions for MDXPage from page plugin ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#3348](https://github.com/facebook/docusaurus/pull/3348) feat(v2): Provide typing to most of the theme-classic components ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-init`, `docusaurus-plugin-content-blog`\\n - [#3284](https://github.com/facebook/docusaurus/pull/3284) feat(v2): blog slug frontmatter ([@JeanMarcSaad](https://github.com/JeanMarcSaad))\\n- `docusaurus-init`, `docusaurus-theme-bootstrap`\\n - [#2981](https://github.com/facebook/docusaurus/pull/2981) feat(v2): bootstrap theme, preset, template, CI previews ([@fanny](https://github.com/fanny))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#3267](https://github.com/facebook/docusaurus/pull/3267) feat(v2): Provide blog plugin theme typing ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-debug`, `docusaurus-preset-classic`, `docusaurus-theme-bootstrap`, `docusaurus-types`, `docusaurus`\\n - [#3229](https://github.com/facebook/docusaurus/pull/3229) feat(v2): debug pages + debug layout + ability to debug content ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#3021](https://github.com/facebook/docusaurus/pull/3021) feat(v2): update swizzle command to suggest component/theme ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-pages`\\n - [#3196](https://github.com/facebook/docusaurus/pull/3196) feat(v2): add support to ignore files in pages plugin ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils-validation`, `docusaurus`\\n - [#3204](https://github.com/facebook/docusaurus/pull/3204) feat(v2): blog + docs multi-instance plugins ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`\\n - [#3096](https://github.com/facebook/docusaurus/pull/3096) feat(v2): add support to import assets using relative link in markdown syntax ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-migrate`\\n - [#3358](https://github.com/facebook/docusaurus/pull/3358) fix(v2): fix migrate cli paths (sidebars/customcss) ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#3311](https://github.com/facebook/docusaurus/pull/3311) fix(v2): add https support in webpack devserver ([@arcvats](https://github.com/arcvats))\\n - [#3313](https://github.com/facebook/docusaurus/pull/3313) fix(v2): resolve webpack loaders from siteDir/node_modules ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n - [#3308](https://github.com/facebook/docusaurus/pull/3308) fix(v2): brokenLinks should not report links that belong to an existing folder if folder/index.html exists ([@slorber](https://github.com/slorber))\\n - [#3273](https://github.com/facebook/docusaurus/pull/3273) fix: logic error while deciding deploymentBranch ([@thehanimo](https://github.com/thehanimo))\\n - [#3281](https://github.com/facebook/docusaurus/pull/3281) fix(v2): allow swizzling of component even if case doesn\'t match ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n - [#3222](https://github.com/facebook/docusaurus/pull/3222) fix(v2): update react-loadable-ssr-addon to solve yarn2 error ([@slorber](https://github.com/slorber))\\n - [#3191](https://github.com/facebook/docusaurus/pull/3191) fix(v2): add missing `lodash.flatmap` dependency ([@ylemkimon](https://github.com/ylemkimon))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-bootstrap`, `docusaurus-theme-search-algolia`, `docusaurus-types`\\n - [#3355](https://github.com/facebook/docusaurus/pull/3355) fix(v2): Add missing dependencies to packages ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-theme-classic`\\n - [#3352](https://github.com/facebook/docusaurus/pull/3352) fix(v2): Allow the alt for the logo to be empty ([@Vinnl](https://github.com/Vinnl))\\n - [#3240](https://github.com/facebook/docusaurus/pull/3240) fix(v2): navbar dropdown opened with tab, not closing on click outside ([@Ako92](https://github.com/Ako92))\\n- `docusaurus-mdx-loader`, `docusaurus`\\n - [#3347](https://github.com/facebook/docusaurus/pull/3347) fix(v2): linking to asset or external html page -> don\'t use history.push() ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`\\n - [#3340](https://github.com/facebook/docusaurus/pull/3340) fix(v1): show images after one line code block ([@adinaja](https://github.com/adinaja))\\n- `docusaurus-1.x`, `docusaurus`\\n - [#3290](https://github.com/facebook/docusaurus/pull/3290) fix(v1,v2): Add initial-scale=1.0 to all meta viewport tags ([@nebrelbug](https://github.com/nebrelbug))\\n- `docusaurus-theme-search-algolia`\\n - [#3297](https://github.com/facebook/docusaurus/pull/3297) fix(v2): keep DocSearch state on remounts ([@francoischalifour](https://github.com/francoischalifour))\\n - [#3280](https://github.com/facebook/docusaurus/pull/3280) fix(v2): allow search page swizzle ([@Ako92](https://github.com/Ako92))\\n - [#3263](https://github.com/facebook/docusaurus/pull/3263) fix(v2): do not index search pages ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-pages`\\n - [#3283](https://github.com/facebook/docusaurus/pull/3283) fix(v2): pass images in static dir to webpack-loader ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- Other\\n - [#3269](https://github.com/facebook/docusaurus/pull/3269) fix(v2): website feedback page hydration bug ([@mecm1993](https://github.com/mecm1993))\\n - [#3200](https://github.com/facebook/docusaurus/pull/3200) fix(v1): self-host user images ([@leoigel](https://github.com/leoigel))\\n- `docusaurus-plugin-google-gtag`\\n - [#3243](https://github.com/facebook/docusaurus/pull/3243) fix(v2): GTM, send page_view events on navigate ([@govardhan-srinivas](https://github.com/govardhan-srinivas))\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#3262](https://github.com/facebook/docusaurus/pull/3262) fix(v2): doc path special char (space or other) should lead to a valid slug ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils-validation`, `docusaurus`\\n - [#3247](https://github.com/facebook/docusaurus/pull/3247) fix(v2): modify validation schema and tests for rehype/remark + remove duplicate dependency ([@teikjun](https://github.com/teikjun))\\n- `docusaurus-init`\\n - [#3258](https://github.com/facebook/docusaurus/pull/3258) fix(v2): fix template alt image prop ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils-validation`, `docusaurus`\\n - [#3227](https://github.com/facebook/docusaurus/pull/3227) fix(v2): relax URI validation ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- `docusaurus-init`, `docusaurus-plugin-content-docs`\\n - [#3228](https://github.com/facebook/docusaurus/pull/3228) fix(v2): deprecate docs homePageId in favor of frontmatter \\"slug: /\\" ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#3225](https://github.com/facebook/docusaurus/pull/3225) fix(v2): swizzle minor improvements ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#3210](https://github.com/facebook/docusaurus/pull/3210) fix(v2): fix theme validation for prism field and add tests ([@teikjun](https://github.com/teikjun))\\n- `docusaurus-plugin-content-docs`\\n - [#3192](https://github.com/facebook/docusaurus/pull/3192) fix(v2): add missing `chalk` and `lodash` dependencies ([@ylemkimon](https://github.com/ylemkimon))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-module-type-aliases`, `docusaurus`\\n - [#3244](https://github.com/facebook/docusaurus/pull/3244) chore(v2): tighten up the TypeScript onboarding ([@orta](https://github.com/orta))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils`, `docusaurus`\\n - [#3245](https://github.com/facebook/docusaurus/pull/3245) refactor(v2): docs plugin refactor ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#3188](https://github.com/facebook/docusaurus/pull/3188) fix(v2): Add a missing whitespace before prompt to use `npm run serve` ([@SamChou19815](https://github.com/SamChou19815))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#3346](https://github.com/facebook/docusaurus/pull/3346) docs(v2): add draft doc ([@imskr](https://github.com/imskr))\\n - [#3336](https://github.com/facebook/docusaurus/pull/3336) docs(v2): add Nisarag to Fellows section ([@FocalChord](https://github.com/FocalChord))\\n - [#3335](https://github.com/facebook/docusaurus/pull/3335) docs(v2): update team profile ([@yangshun](https://github.com/yangshun))\\n - [#3334](https://github.com/facebook/docusaurus/pull/3334) docs(v2): add Drew to Fellows section ([@Drewbi](https://github.com/Drewbi))\\n - [#3333](https://github.com/facebook/docusaurus/pull/3333) docs(v2): add anshul and teikjun to fellows section of team page ([@teikjun](https://github.com/teikjun))\\n - [#3326](https://github.com/facebook/docusaurus/pull/3326) docs(v1): showcase user Casbin ([@hsluoyz](https://github.com/hsluoyz))\\n - [#3316](https://github.com/facebook/docusaurus/pull/3316) docs(v1): add Global CTO Forum to users ([@MirzayevFarid](https://github.com/MirzayevFarid))\\n - [#3310](https://github.com/facebook/docusaurus/pull/3310) docs(v2): add \\"T-Regx\\" website to showcase ([@Danon](https://github.com/Danon))\\n - [#3307](https://github.com/facebook/docusaurus/pull/3307) docs(v2): showcase SpotifyAPI-NET ([@JohnnyCrazy](https://github.com/JohnnyCrazy))\\n - [#3295](https://github.com/facebook/docusaurus/pull/3295) docs(v2): showcase Oxidizer ([@vandreleal](https://github.com/vandreleal))\\n - [#3287](https://github.com/facebook/docusaurus/pull/3287) docs: update README.md with some grammatical corrections ([@shalinikumari50](https://github.com/shalinikumari50))\\n - [#3271](https://github.com/facebook/docusaurus/pull/3271) docs(v2): fix typo ([@thehanimo](https://github.com/thehanimo))\\n - [#3277](https://github.com/facebook/docusaurus/pull/3277) docs(v1): Add Radity to users ([@tolunayakbulut](https://github.com/tolunayakbulut))\\n - [#3276](https://github.com/facebook/docusaurus/pull/3276) docs: corrected some few typos in the docusaurus tech docs ([@ajifrank75](https://github.com/ajifrank75))\\n - [#3249](https://github.com/facebook/docusaurus/pull/3249) docs(v2): fix migration command ([@BogdanDor](https://github.com/BogdanDor))\\n - [#3248](https://github.com/facebook/docusaurus/pull/3248) Added twitter badge and modified discord Badges ([@Souravdey777](https://github.com/Souravdey777))\\n - [#3251](https://github.com/facebook/docusaurus/pull/3251) docs(v2): fix migration command for earlier versions ([@teikjun](https://github.com/teikjun))\\n - [#3252](https://github.com/facebook/docusaurus/pull/3252) docs(v2): docs typos ([@olawanlejoel](https://github.com/olawanlejoel))\\n - [#3111](https://github.com/facebook/docusaurus/pull/3111) docs(v2): clarify theme-original and theme-init ([@Jonathannsegal](https://github.com/Jonathannsegal))\\n - [#3232](https://github.com/facebook/docusaurus/pull/3232) docs(v2): showcase user QA-Board ([@arthur-flam](https://github.com/arthur-flam))\\n - [#3205](https://github.com/facebook/docusaurus/pull/3205) docs: format reference links ([@lebogangolifant](https://github.com/lebogangolifant))\\n - [#3194](https://github.com/facebook/docusaurus/pull/3194) docs(v2): Added switch config docs to theme-classic API ([@Drewbi](https://github.com/Drewbi))\\n - [#3201](https://github.com/facebook/docusaurus/pull/3201) docs(v2): removed duplicate text under \\"Using React\\" section ([@boosh511](https://github.com/boosh511))\\n - [#3186](https://github.com/facebook/docusaurus/pull/3186) docs(v1): formatting changelog ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#3202](https://github.com/facebook/docusaurus/pull/3202) fix(v2): fix svg loader ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n\\n## :house: Internal\\n\\n- `docusaurus-migrate`\\n - [#3323](https://github.com/facebook/docusaurus/pull/3323) test(v2): Add unit test for migration of config file ([@BogdanDor](https://github.com/BogdanDor))\\n- `docusaurus-theme-classic`\\n - [#3343](https://github.com/facebook/docusaurus/pull/3343) refactor(v2): announcement bar bad spelling + minor refactors ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`\\n - [#3339](https://github.com/facebook/docusaurus/pull/3339) test(v2): make blog posts unit test ordering determinate ([@BogdanDor](https://github.com/BogdanDor))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-types`\\n - [#3306](https://github.com/facebook/docusaurus/pull/3306) chore(v2): Define type for markdown right table of contents ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-module-type-aliases`, `docusaurus`\\n - [#3244](https://github.com/facebook/docusaurus/pull/3244) chore(v2): tighten up the TypeScript onboarding ([@orta](https://github.com/orta))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils`, `docusaurus`\\n - [#3245](https://github.com/facebook/docusaurus/pull/3245) refactor(v2): docs plugin refactor ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#3282](https://github.com/facebook/docusaurus/pull/3282) chore(v2): fix javascript-serialize vulnerability ([@slorber](https://github.com/slorber))\\n - [#3265](https://github.com/facebook/docusaurus/pull/3265) chore(v2): upgrade terser-webpack-plugin ([@dschaller](https://github.com/dschaller))\\n- Other\\n - [#3241](https://github.com/facebook/docusaurus/pull/3241) chore(deps): bump prismjs from 1.20.0 to 1.21.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#3259](https://github.com/facebook/docusaurus/pull/3259) chore(v2): fix slow commits due to lint-staged ([@slorber](https://github.com/slorber))\\n - [#3197](https://github.com/facebook/docusaurus/pull/3197) chore(v2): lockfile update ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`\\n - [#3218](https://github.com/facebook/docusaurus/pull/3218) chore(v1): release 1.14.6 ([@slorber](https://github.com/slorber))\\n\\n## :running: Performance\\n\\n- `docusaurus-plugin-client-redirects`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#3238](https://github.com/facebook/docusaurus/pull/3238) refactor(v2): precompile ETA templates ([@slorber](https://github.com/slorber))\\n\\n## Committers: 39\\n\\n- Ali Hosseini ([@Ako92](https://github.com/Ako92))\\n- Amy Lei ([@amy-lei](https://github.com/amy-lei))\\n- Anshul Goyal ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- Archit ([@arcvats](https://github.com/arcvats))\\n- Arthur Flam ([@arthur-flam](https://github.com/arthur-flam))\\n- Ben Gubler ([@nebrelbug](https://github.com/nebrelbug))\\n- Bogdan Doroschenko ([@BogdanDor](https://github.com/BogdanDor))\\n- Daniel Wilkowski ([@Danon](https://github.com/Danon))\\n- Derek ([@dschaller](https://github.com/dschaller))\\n- Drew Alexander ([@Drewbi](https://github.com/Drewbi))\\n- Fanny ([@fanny](https://github.com/fanny))\\n- Franklyn Chisom ([@ajifrank75](https://github.com/ajifrank75))\\n- Fran\xe7ois Chalifour ([@francoischalifour](https://github.com/francoischalifour))\\n- Govardhan Srinivas ([@govardhan-srinivas](https://github.com/govardhan-srinivas))\\n- Hani Mohammed ([@thehanimo](https://github.com/thehanimo))\\n- Jean-Marc Saad ([@JeanMarcSaad](https://github.com/JeanMarcSaad))\\n- Jonas Dellinger ([@JohnnyCrazy](https://github.com/JohnnyCrazy))\\n- Jonathan ([@Jonathannsegal](https://github.com/Jonathannsegal))\\n- Manuel Cepeda ([@mecm1993](https://github.com/mecm1993))\\n- Mirzayev Farid ([@MirzayevFarid](https://github.com/MirzayevFarid))\\n- Nisarag ([@FocalChord](https://github.com/FocalChord))\\n- Olawanle Joel ([@olawanlejoel](https://github.com/olawanlejoel))\\n- Orta Therox ([@orta](https://github.com/orta))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- Shubham Kumar ([@imskr](https://github.com/imskr))\\n- Sourav Dey ([@Souravdey777](https://github.com/Souravdey777))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Teik Jun ([@teikjun](https://github.com/teikjun))\\n- Tolunay Akbulut ([@tolunayakbulut](https://github.com/tolunayakbulut))\\n- Vandr\xe9 Leal ([@vandreleal](https://github.com/vandreleal))\\n- Vincent ([@Vinnl](https://github.com/Vinnl))\\n- Yang Luo ([@hsluoyz](https://github.com/hsluoyz))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- [@adinaja](https://github.com/adinaja)\\n- [@leoigel](https://github.com/leoigel)\\n- [@shalinikumari50](https://github.com/shalinikumari50)\\n- alex busnelli ([@boosh511](https://github.com/boosh511))\\n- lebogang Olifant ([@lebogangolifant](https://github.com/lebogangolifant))\\n- ylemkimon ([@ylemkimon](https://github.com/ylemkimon))"},{"id":"/2.0.0-alpha.61","metadata":{"permalink":"/changelog/2.0.0-alpha.61","source":"@site/changelog/source/2.0.0-alpha.61.md","title":"2.0.0-alpha.61","description":"New Feature","date":"2020-08-01T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Bucky Maler","alias":"BuckyMaler","url":"https://github.com/BuckyMaler","imageURL":"https://github.com/BuckyMaler.png","key":"BuckyMaler","page":null},{"name":"Drew Alexander","alias":"Drewbi","url":"https://github.com/Drewbi","imageURL":"https://github.com/Drewbi.png","key":"Drewbi","page":null},{"name":"Fran\xe7ois Chalifour","alias":"francoischalifour","url":"https://github.com/francoischalifour","imageURL":"https://github.com/francoischalifour.png","key":"francoischalifour","page":null},{"name":"Faizan","alias":"mdfaizan7","url":"https://github.com/mdfaizan7","imageURL":"https://github.com/mdfaizan7.png","key":"mdfaizan7","page":null},{"name":"M\xe9ril","alias":"mpsq","url":"https://github.com/mpsq","imageURL":"https://github.com/mpsq.png","key":"mpsq","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Teik Jun","alias":"teikjun","url":"https://github.com/teikjun","imageURL":"https://github.com/teikjun.png","key":"teikjun","page":null},{"name":"Xuqian","alias":"zxuqian","url":"https://github.com/zxuqian","imageURL":"https://github.com/zxuqian.png","key":"zxuqian","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-08-01T20:00","authors":["BuckyMaler","Drewbi","francoischalifour","mdfaizan7","mpsq","slorber","teikjun","zxuqian"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.62","permalink":"/changelog/2.0.0-alpha.62"},"nextItem":{"title":"2.0.0-alpha.60","permalink":"/changelog/2.0.0-alpha.60"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-types`, `docusaurus`\\n - [#3083](https://github.com/facebook/docusaurus/pull/3083) feat(v2): warn user when there are conflicting routes ([@teikjun](https://github.com/teikjun))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-utils-validation`, `docusaurus-utils`\\n - [#3158](https://github.com/facebook/docusaurus/pull/3158) feat(v2): markdown pages ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#3127](https://github.com/facebook/docusaurus/pull/3127) feat(v2): dark mode toggle customization ([@Drewbi](https://github.com/Drewbi))\\n- `docusaurus-theme-search-algolia`\\n - [#3166](https://github.com/facebook/docusaurus/pull/3166) feat(v2): improve Algolia search accessibility ([@francoischalifour](https://github.com/francoischalifour))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#2359](https://github.com/facebook/docusaurus/pull/2359) feat(v2): support custom description for blog-only mode ([@zxuqian](https://github.com/zxuqian))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-mdx-loader`, `docusaurus`\\n - [#3180](https://github.com/facebook/docusaurus/pull/3180) fix(v2): fix markdown images always using webpack url-loader ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#3171](https://github.com/facebook/docusaurus/pull/3171) fix(v2): tab label showing outline & background when clicked ([@mdfaizan7](https://github.com/mdfaizan7))\\n- `docusaurus-init`, `docusaurus-theme-classic`\\n - [#3168](https://github.com/facebook/docusaurus/pull/3168) fix(v2): fix link items refusing attributes like target, rel etc... ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#3162](https://github.com/facebook/docusaurus/pull/3162) fix(v2): inability for users to pin their docusaurus version ([@BuckyMaler](https://github.com/BuckyMaler))\\n\\n## :memo: Documentation\\n\\n- [#3163](https://github.com/facebook/docusaurus/pull/3163) docs(v2): showcase user questdb ([@mpsq](https://github.com/mpsq))\\n\\n## :house: Internal\\n\\n- Other\\n - [#3164](https://github.com/facebook/docusaurus/pull/3164) chore(deps): bump elliptic from 6.5.2 to 6.5.3 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#3157](https://github.com/facebook/docusaurus/pull/3157) chore(v2): remove alpha 59 doc ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`, `docusaurus-init-1.x`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`, `lqip-loader`, `stylelint-copyright`\\n - [#3154](https://github.com/facebook/docusaurus/pull/3154) chore(v2): prepare v2.0.0.alpha-60 release ([@slorber](https://github.com/slorber))\\n\\n## Committers: 8\\n\\n- Bucky Maler ([@BuckyMaler](https://github.com/BuckyMaler))\\n- Drew Alexander ([@Drewbi](https://github.com/Drewbi))\\n- Faizan ([@mdfaizan7](https://github.com/mdfaizan7))\\n- Fran\xe7ois Chalifour ([@francoischalifour](https://github.com/francoischalifour))\\n- M\xe9ril ([@mpsq](https://github.com/mpsq))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Teik Jun ([@teikjun](https://github.com/teikjun))\\n- Xuqian ([@zxuqian](https://github.com/zxuqian))"},{"id":"/2.0.0-alpha.60","metadata":{"permalink":"/changelog/2.0.0-alpha.60","source":"@site/changelog/source/2.0.0-alpha.60.md","title":"2.0.0-alpha.60","description":"New Feature","date":"2020-07-29T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Hob Adams","alias":"hobadams","url":"https://github.com/hobadams","imageURL":"https://github.com/hobadams.png","key":"hobadams","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Teik Jun","alias":"teikjun","url":"https://github.com/teikjun","imageURL":"https://github.com/teikjun.png","key":"teikjun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-07-29T20:00","authors":["hobadams","Simek","slorber","teikjun"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.61","permalink":"/changelog/2.0.0-alpha.61"},"nextItem":{"title":"2.0.0-alpha.59","permalink":"/changelog/2.0.0-alpha.59"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus`\\n - [#3134](https://github.com/facebook/docusaurus/pull/3134) feat(v2): add validation escape hatch ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`\\n - [#3124](https://github.com/facebook/docusaurus/pull/3124) feat(v1): add \'slugPreprocessor\' config option to allow users customize the hash links ([@Simek](https://github.com/Simek))\\n- `docusaurus-theme-search-algolia`\\n - [#3133](https://github.com/facebook/docusaurus/pull/3133) feat(v2): add themeConfig validation to algolia theme ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#3142](https://github.com/facebook/docusaurus/pull/3142) fix(v2): config validation fixes + add tests for config validation ([@teikjun](https://github.com/teikjun))\\n- `docusaurus`\\n - [#3149](https://github.com/facebook/docusaurus/pull/3149) fix(v2): BrowserOnly should not return undefined ([@slorber](https://github.com/slorber))\\n - [#3143](https://github.com/facebook/docusaurus/pull/3143) fix(v2): absolute Links should be automatically prefixed by baseurl ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus`\\n - [#3141](https://github.com/facebook/docusaurus/pull/3141) fix(v2): remove buggy routesLoaded + deprecate routesLoaded lifecycle ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#3140](https://github.com/facebook/docusaurus/pull/3140) fix(v2): navbar item links should allow unknown attributes ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-search-algolia`\\n - [#3138](https://github.com/facebook/docusaurus/pull/3138) fix(v2): add accessible label for Algolia search button ([@hobadams](https://github.com/hobadams))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus`\\n - [#3120](https://github.com/facebook/docusaurus/pull/3120) fix(v2): make config validation less strict ([@teikjun](https://github.com/teikjun))\\n\\n## :memo: Documentation\\n\\n- [#3145](https://github.com/facebook/docusaurus/pull/3145) docs(v2): add myself to /team page + add TeamProfileCard component ([@slorber](https://github.com/slorber))\\n- [#3146](https://github.com/facebook/docusaurus/pull/3146) docs(v2): prettier docs ([@slorber](https://github.com/slorber))\\n- [#3116](https://github.com/facebook/docusaurus/pull/3116) chore(v2): docs updates after release ([@slorber](https://github.com/slorber))\\n\\n## :house: Internal\\n\\n- Other\\n - [#3130](https://github.com/facebook/docusaurus/pull/3130) chore(v2): remove old versions ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`, `docusaurus-init-1.x`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`, `lqip-loader`, `stylelint-copyright`\\n - [#3114](https://github.com/facebook/docusaurus/pull/3114) chore(v2): prepare v2.0.0.alpha-59 release ([@slorber](https://github.com/slorber))\\n\\n## Committers: 4\\n\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- Hob Adams ([@hobadams](https://github.com/hobadams))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Teik Jun ([@teikjun](https://github.com/teikjun))"},{"id":"/2.0.0-alpha.59","metadata":{"permalink":"/changelog/2.0.0-alpha.59","source":"@site/changelog/source/2.0.0-alpha.59.md","title":"2.0.0-alpha.59","description":"New Feature","date":"2020-07-24T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Mahfoudh Arous","alias":"aladin002dz","url":"https://github.com/aladin002dz","imageURL":"https://github.com/aladin002dz.png","key":"aladin002dz","page":null},{"name":"Eric Dobbertin","alias":"aldeed","url":"https://github.com/aldeed","imageURL":"https://github.com/aldeed.png","key":"aldeed","page":null},{"name":"Amirul Ahmad","alias":"amirulahmad","url":"https://github.com/amirulahmad","imageURL":"https://github.com/amirulahmad.png","key":"amirulahmad","page":null},{"name":"Anshul Goyal","alias":"anshulrgoyal","url":"https://github.com/anshulrgoyal","imageURL":"https://github.com/anshulrgoyal.png","key":"anshulrgoyal","page":null},{"name":"Ayan Banerjee","alias":"ayan-b","url":"https://github.com/ayan-b","imageURL":"https://github.com/ayan-b.png","key":"ayan-b","page":null},{"name":"Jeremy Asuncion","alias":"codemonkey800","url":"https://github.com/codemonkey800","imageURL":"https://github.com/codemonkey800.png","key":"codemonkey800","page":null},{"name":"Daniel Hochman","alias":"danielhochman","url":"https://github.com/danielhochman","imageURL":"https://github.com/danielhochman.png","key":"danielhochman","page":null},{"name":"Deepak Giri","alias":"dpkg","url":"https://github.com/dpkg","imageURL":"https://github.com/dpkg.png","key":"dpkg","page":null},{"name":"ehsan jso","alias":"ehsanjso","url":"https://github.com/ehsanjso","imageURL":"https://github.com/ehsanjso.png","key":"ehsanjso","page":null},{"name":"Arsalan Khattak","alias":"eKhattak","url":"https://github.com/eKhattak","imageURL":"https://github.com/eKhattak.png","key":"eKhattak","page":null},{"name":"Fran\xe7ois Chalifour","alias":"francoischalifour","url":"https://github.com/francoischalifour","imageURL":"https://github.com/francoischalifour.png","key":"francoischalifour","page":null},{"name":"matbub","alias":"hi-matbub","url":"https://github.com/hi-matbub","imageURL":"https://github.com/hi-matbub.png","key":"hi-matbub","page":null},{"name":"John Knox","alias":"jknoxville","url":"https://github.com/jknoxville","imageURL":"https://github.com/jknoxville.png","key":"jknoxville","page":null},{"name":"Jordan Liu","alias":"jordanliu","url":"https://github.com/jordanliu","imageURL":"https://github.com/jordanliu.png","key":"jordanliu","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Ben Gubler","alias":"nebrelbug","url":"https://github.com/nebrelbug","imageURL":"https://github.com/nebrelbug.png","key":"nebrelbug","page":null},{"name":"Paul Cowgill","alias":"pcowgill","url":"https://github.com/pcowgill","imageURL":"https://github.com/pcowgill.png","key":"pcowgill","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Frida Hjelm","alias":"svtfrida","url":"https://github.com/svtfrida","imageURL":"https://github.com/svtfrida.png","key":"svtfrida","page":null},{"name":"Taylor Allen","alias":"taylorallen0913","url":"https://github.com/taylorallen0913","imageURL":"https://github.com/taylorallen0913.png","key":"taylorallen0913","page":null},{"name":"Teik Jun","alias":"teikjun","url":"https://github.com/teikjun","imageURL":"https://github.com/teikjun.png","key":"teikjun","page":null},{"name":"Vandr\xe9 Leal","alias":"vandreleal","url":"https://github.com/vandreleal","imageURL":"https://github.com/vandreleal.png","key":"vandreleal","page":null},{"name":"Rian Finnegan","alias":"xtellurian","url":"https://github.com/xtellurian","imageURL":"https://github.com/xtellurian.png","key":"xtellurian","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-07-24T20:00","authors":["aladin002dz","aldeed","amirulahmad","anshulrgoyal","ayan-b","codemonkey800","danielhochman","dpkg","ehsanjso","eKhattak","francoischalifour","hi-matbub","jknoxville","jordanliu","lex111","nebrelbug","pcowgill","SamChou19815","slorber","svtfrida","taylorallen0913","teikjun","vandreleal","xtellurian","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.60","permalink":"/changelog/2.0.0-alpha.60"},"nextItem":{"title":"2.0.0-alpha.58","permalink":"/changelog/2.0.0-alpha.58"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-migrate`, `docusaurus-plugin-client-redirects`\\n - [#3015](https://github.com/facebook/docusaurus/pull/3015) feat: automate migration from v1 to v2 ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- `docusaurus-init`\\n - [#3105](https://github.com/facebook/docusaurus/pull/3105) feat(v2): add docusaurus script for npm users ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-search-algolia`\\n - [#2815](https://github.com/facebook/docusaurus/pull/2815) feat(v2): introduce DocSearch v3 search ([@francoischalifour](https://github.com/francoischalifour))\\n- `docusaurus-init`, `docusaurus-types`, `docusaurus`\\n - [#3059](https://github.com/facebook/docusaurus/pull/3059) feat(v2): broken links detection ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#3084](https://github.com/facebook/docusaurus/pull/3084) feat(v2): absolute slugs and slug resolution system ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`\\n - [#3069](https://github.com/facebook/docusaurus/pull/3069) feat(v2): support for adding relative images and handling broken image links ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- `docusaurus-init`, `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-debug`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#2971](https://github.com/facebook/docusaurus/pull/2971) feat(v2): global data + useGlobalData + docs versions dropdown ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus`\\n - [#3080](https://github.com/facebook/docusaurus/pull/3080) feat(v2): add support for serve command ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-debug`, `docusaurus-types`, `docusaurus`\\n - [#3058](https://github.com/facebook/docusaurus/pull/3058) feat(v2): useDocusaurusContext().siteMetadata ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#3032](https://github.com/facebook/docusaurus/pull/3032) feat(v2): notify users when docusaurus version is outdated ([@teikjun](https://github.com/teikjun))\\n - [#3033](https://github.com/facebook/docusaurus/pull/3033) feat(v2): add useBaseUrlUtils() hook ([@slorber](https://github.com/slorber))\\n - [#3006](https://github.com/facebook/docusaurus/pull/3006) feat(v2): prompt user when default port is in use ([@taylorallen0913](https://github.com/taylorallen0913))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-debug`, `docusaurus`\\n - [#3050](https://github.com/facebook/docusaurus/pull/3050) feat(v2): Collect plugin versions to allow them to be inspected in debug plugin ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-theme-classic`\\n - [#3038](https://github.com/facebook/docusaurus/pull/3038) feat(v2): Support keywords meta in blog posts ([@dpkg](https://github.com/dpkg))\\n - [#2974](https://github.com/facebook/docusaurus/pull/2974) feat(v2): Error when hooks depends on context is used outside of Layout ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-pwa`, `docusaurus`\\n - [#2205](https://github.com/facebook/docusaurus/pull/2205) feat(v2): Plugin for Offline/PWA support ([@codemonkey800](https://github.com/codemonkey800))\\n- `docusaurus-plugin-ideal-image`, `docusaurus-types`, `docusaurus`\\n - [#2994](https://github.com/facebook/docusaurus/pull/2994) feat(v2): configureWebpack merge strategy + use file-loader for common asset types ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#2989](https://github.com/facebook/docusaurus/pull/2989) feat(v2): add disableVersioning config to docs plugin ([@slorber](https://github.com/slorber))\\n - [#2877](https://github.com/facebook/docusaurus/pull/2877) feat(v2): allow skipping build docs for next version ([@lex111](https://github.com/lex111))\\n- `docusaurus-1.x`\\n - [#2955](https://github.com/facebook/docusaurus/pull/2955) feat(v1): add deletedDocs config to fix unwanted versioning fallback ([@aldeed](https://github.com/aldeed))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-types`, `docusaurus`\\n - [#2943](https://github.com/facebook/docusaurus/pull/2943) feat(v2): option and config validation life cycle method for official plugins ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-init`, `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-debug`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#2971](https://github.com/facebook/docusaurus/pull/2971) feat(v2): global data + useGlobalData + docs versions dropdown ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#3012](https://github.com/facebook/docusaurus/pull/3012) fix(v2): refactor color mode system ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#3107](https://github.com/facebook/docusaurus/pull/3107) fix(v2): broken links detector: ignore existing folders ([@slorber](https://github.com/slorber))\\n - [#3112](https://github.com/facebook/docusaurus/pull/3112) fix(v2): baseUrl is wrongly appended to anchor links ([@slorber](https://github.com/slorber))\\n - [#3063](https://github.com/facebook/docusaurus/pull/3063) fix(v2): classify link hrefs with protocol identifier as internal ([@svtfrida](https://github.com/svtfrida))\\n- `docusaurus-theme-classic`\\n - [#3106](https://github.com/facebook/docusaurus/pull/3106) fix(v2): dropdown navbar item: validation too strict ([@slorber](https://github.com/slorber))\\n - [#3029](https://github.com/facebook/docusaurus/pull/3029) fix(v2): change description for blog post paginator ([@teikjun](https://github.com/teikjun))\\n- `docusaurus-plugin-content-docs`\\n - [#3108](https://github.com/facebook/docusaurus/pull/3108) fix(v2): fix docs instance path typo ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-pages`\\n - [#3025](https://github.com/facebook/docusaurus/pull/3025) fix(v2):pass siteConfig as prop to pages ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- `docusaurus-init`\\n - [#3008](https://github.com/facebook/docusaurus/pull/3008) chore(v2): Add E2E test for yarn v2 ([@SamChou19815](https://github.com/SamChou19815))\\n- Other\\n - [#3017](https://github.com/facebook/docusaurus/pull/3017) fix(v2): fix broken links on versions page ([@teikjun](https://github.com/teikjun))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#3012](https://github.com/facebook/docusaurus/pull/3012) fix(v2): refactor color mode system ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`, `docusaurus`\\n - [#3001](https://github.com/facebook/docusaurus/pull/3001) fix(v2): refactor routes.ts + add route hash for chunkNames key ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-utils`, `docusaurus`\\n - [#3010](https://github.com/facebook/docusaurus/pull/3010) fix(v2): make client-redirect-plugin not baseUrl sensitive ([@teikjun](https://github.com/teikjun))\\n- `docusaurus-1.x`\\n - [#2993](https://github.com/facebook/docusaurus/pull/2993) fix(relative path): last update date and by isn\u2019t generated if localh\u2026 ([@amirulahmad](https://github.com/amirulahmad))\\n- `docusaurus-plugin-client-redirects`\\n - [#2969](https://github.com/facebook/docusaurus/pull/2969) fix: fromExtensions and toExtensions translation when used with baseUrl ([@jknoxville](https://github.com/jknoxville))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#3088](https://github.com/facebook/docusaurus/pull/3088) improve navbar menu ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`\\n - [#3087](https://github.com/facebook/docusaurus/pull/3087) refactor(v2): async md image transformer + pathname protocol as an escape hatch ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-theme-live-codeblock`, `docusaurus-types`\\n - [#2970](https://github.com/facebook/docusaurus/pull/2970) feat(v2): add option validation for remaining official plugins ([@teikjun](https://github.com/teikjun))\\n- `docusaurus`\\n - [#2987](https://github.com/facebook/docusaurus/pull/2987) chore(v2): use joi for config validation ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n\\n## :memo: Documentation\\n\\n- [#3026](https://github.com/facebook/docusaurus/pull/3026) docs(v2): add documentation for migration command ([@teikjun](https://github.com/teikjun))\\n- [#3094](https://github.com/facebook/docusaurus/pull/3094) docs(v2): showcase user Clutch ([@danielhochman](https://github.com/danielhochman))\\n- [#3101](https://github.com/facebook/docusaurus/pull/3101) docs(v2):Add azure-pipelines CI guide ([@ayan-b](https://github.com/ayan-b))\\n- [#3098](https://github.com/facebook/docusaurus/pull/3098) docs: Add azure-pipelines CI guide ([@ayan-b](https://github.com/ayan-b))\\n- [#3086](https://github.com/facebook/docusaurus/pull/3086) doc(v2): replace heading position ([@eKhattak](https://github.com/eKhattak))\\n- [#3082](https://github.com/facebook/docusaurus/pull/3082) fixing few typos and enhancing few sentences clarity ([@aladin002dz](https://github.com/aladin002dz))\\n- [#3078](https://github.com/facebook/docusaurus/pull/3078) Updated link for #docusaurus-2-dev discord ([@jordanliu](https://github.com/jordanliu))\\n- [#3076](https://github.com/facebook/docusaurus/pull/3076) docs(v2): showcase Runlet ([@vandreleal](https://github.com/vandreleal))\\n- [#3040](https://github.com/facebook/docusaurus/pull/3040) docs(v2): correct the documentation for docs-only mode ([@teikjun](https://github.com/teikjun))\\n- [#3034](https://github.com/facebook/docusaurus/pull/3034) docs(v2): showcase user Tasit ([@pcowgill](https://github.com/pcowgill))\\n- [#3022](https://github.com/facebook/docusaurus/pull/3022) docs(v2): showcase Eta ([@nebrelbug](https://github.com/nebrelbug))\\n- [#3011](https://github.com/facebook/docusaurus/pull/3011) docs(v1): external links ([@slorber](https://github.com/slorber))\\n- [#2997](https://github.com/facebook/docusaurus/pull/2997) docs(v2): Document TypeScript support ([@SamChou19815](https://github.com/SamChou19815))\\n- [#2973](https://github.com/facebook/docusaurus/pull/2973) docs(v2): Fix typo in markdown-features ([@ehsanjso](https://github.com/ehsanjso))\\n- [#2991](https://github.com/facebook/docusaurus/pull/2991) Showcase Amphora Data ([@xtellurian](https://github.com/xtellurian))\\n- [#2983](https://github.com/facebook/docusaurus/pull/2983) docs(v2): add plugin redirects production build note ([@slorber](https://github.com/slorber))\\n- [#2967](https://github.com/facebook/docusaurus/pull/2967) docs(v2): fix typos in plugin-content examples ([@hi-matbub](https://github.com/hi-matbub))\\n- [#2960](https://github.com/facebook/docusaurus/pull/2960) doc(v2): publish doc update after alpha.58 release ([@slorber](https://github.com/slorber))\\n- [#2966](https://github.com/facebook/docusaurus/pull/2966) docs(v2): fix typo in plugin-content-pages example ([@hi-matbub](https://github.com/hi-matbub))\\n\\n## :house: Internal\\n\\n- `docusaurus-migrate`\\n - [#3113](https://github.com/facebook/docusaurus/pull/3113) chore(v2): ability to test the migration cli easily ([@slorber](https://github.com/slorber))\\n- Other\\n - [#3099](https://github.com/facebook/docusaurus/pull/3099) fix(v2): netlify.toml shouldn\'t affect v1 site deployment config ([@slorber](https://github.com/slorber))\\n - [#3068](https://github.com/facebook/docusaurus/pull/3068) chore(deps): bump lodash from 4.17.15 to 4.17.19 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#2958](https://github.com/facebook/docusaurus/pull/2958) docs(v2): rename 2.0.0-alpha.57 to 2.0.0-alpha.58 ([@yangshun](https://github.com/yangshun))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus`\\n - [#3093](https://github.com/facebook/docusaurus/pull/3093) fix(v2): fix recent baseurl issues ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`\\n - [#3087](https://github.com/facebook/docusaurus/pull/3087) refactor(v2): async md image transformer + pathname protocol as an escape hatch ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-pwa`, `docusaurus`\\n - [#3055](https://github.com/facebook/docusaurus/pull/3055) chore(v2): Adopt corejs 3 and only import at entry point ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-init`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-utils`, `docusaurus`\\n - [#2998](https://github.com/facebook/docusaurus/pull/2998) chore(v2): refactor yarn tsc to yarn build + add theme-classic watch mode ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`\\n - [#3008](https://github.com/facebook/docusaurus/pull/3008) chore(v2): Add E2E test for yarn v2 ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`, `docusaurus`\\n - [#3001](https://github.com/facebook/docusaurus/pull/3001) fix(v2): refactor routes.ts + add route hash for chunkNames key ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#3007](https://github.com/facebook/docusaurus/pull/3007) fix(v2): Add two missing docusaurus core babel dependency ([@SamChou19815](https://github.com/SamChou19815))\\n - [#2987](https://github.com/facebook/docusaurus/pull/2987) chore(v2): use joi for config validation ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n - [#2950](https://github.com/facebook/docusaurus/pull/2950) chore(v2): Implement a simple E2E testing mechanism for `docusausus start` ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-theme-live-codeblock`, `docusaurus-types`\\n - [#2970](https://github.com/facebook/docusaurus/pull/2970) feat(v2): add option validation for remaining official plugins ([@teikjun](https://github.com/teikjun))\\n- `docusaurus-theme-classic`\\n - [#2996](https://github.com/facebook/docusaurus/pull/2996) chore(v2): Merge devDependencies in theme-classic ([@SamChou19815](https://github.com/SamChou19815))\\n - [#2977](https://github.com/facebook/docusaurus/pull/2977) chore(v2): Remove extraneous package-lock.json ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-client-redirects`\\n - [#2962](https://github.com/facebook/docusaurus/pull/2962) Feat: replace yup with joi for cleaner validation ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- `docusaurus-init`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#2976](https://github.com/facebook/docusaurus/pull/2976) chore(v2): Fix more eslint errors ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-sitemap`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#2972](https://github.com/facebook/docusaurus/pull/2972) chore(v2): Fix a lot of eslint warnings ([@SamChou19815](https://github.com/SamChou19815))\\n\\n## Committers: 25\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Amirul Ahmad ([@amirulahmad](https://github.com/amirulahmad))\\n- Anshul Goyal ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- Arsalan Khattak ([@eKhattak](https://github.com/eKhattak))\\n- Ayan Banerjee ([@ayan-b](https://github.com/ayan-b))\\n- Ben Gubler ([@nebrelbug](https://github.com/nebrelbug))\\n- Daniel Hochman ([@danielhochman](https://github.com/danielhochman))\\n- Deepak Giri ([@dpkg](https://github.com/dpkg))\\n- Eric Dobbertin ([@aldeed](https://github.com/aldeed))\\n- Fran\xe7ois Chalifour ([@francoischalifour](https://github.com/francoischalifour))\\n- Frida Hjelm ([@svtfrida](https://github.com/svtfrida))\\n- Jeremy Asuncion ([@codemonkey800](https://github.com/codemonkey800))\\n- John Knox ([@jknoxville](https://github.com/jknoxville))\\n- Jordan Liu ([@jordanliu](https://github.com/jordanliu))\\n- Mahfoudh Arous ([@aladin002dz](https://github.com/aladin002dz))\\n- Paul Cowgill ([@pcowgill](https://github.com/pcowgill))\\n- Rian Finnegan ([@xtellurian](https://github.com/xtellurian))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Taylor Allen ([@taylorallen0913](https://github.com/taylorallen0913))\\n- Teik Jun ([@teikjun](https://github.com/teikjun))\\n- Vandr\xe9 Leal ([@vandreleal](https://github.com/vandreleal))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- ehsan jso ([@ehsanjso](https://github.com/ehsanjso))\\n- matbub ([@hi-matbub](https://github.com/hi-matbub))"},{"id":"/2.0.0-alpha.58","metadata":{"permalink":"/changelog/2.0.0-alpha.58","source":"@site/changelog/source/2.0.0-alpha.58.md","title":"2.0.0-alpha.58","description":"New Feature","date":"2020-06-18T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"hackerman","alias":"aeneasr","url":"https://github.com/aeneasr","imageURL":"https://github.com/aeneasr.png","key":"aeneasr","page":null},{"name":"Anshul Goyal","alias":"anshulrgoyal","url":"https://github.com/anshulrgoyal","imageURL":"https://github.com/anshulrgoyal.png","key":"anshulrgoyal","page":null},{"name":"belokonm","alias":"belokonm","url":"https://github.com/belokonm","imageURL":"https://github.com/belokonm.png","key":"belokonm","page":null},{"name":"Drew Alexander","alias":"Drewbi","url":"https://github.com/Drewbi","imageURL":"https://github.com/Drewbi.png","key":"Drewbi","page":null},{"name":"Fanny","alias":"fanny","url":"https://github.com/fanny","imageURL":"https://github.com/fanny.png","key":"fanny","page":null},{"name":"Guillaume Jacquart","alias":"guillaumejacquart","url":"https://github.com/guillaumejacquart","imageURL":"https://github.com/guillaumejacquart.png","key":"guillaumejacquart","page":null},{"name":"Joel Marcey","alias":"JoelMarcey","url":"https://github.com/JoelMarcey","imageURL":"https://github.com/JoelMarcey.png","key":"JoelMarcey","page":null},{"name":"JavaScript Joe","alias":"jsjoeio","url":"https://github.com/jsjoeio","imageURL":"https://github.com/jsjoeio.png","key":"jsjoeio","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"moonrailgun","alias":"moonrailgun","url":"https://github.com/moonrailgun","imageURL":"https://github.com/moonrailgun.png","key":"moonrailgun","page":null},{"name":"Koki Nishihara","alias":"Nishikoh","url":"https://github.com/Nishikoh","imageURL":"https://github.com/Nishikoh.png","key":"Nishikoh","page":null},{"name":"Paul Glezen","alias":"pglezen","url":"https://github.com/pglezen","imageURL":"https://github.com/pglezen.png","key":"pglezen","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Teik Jun","alias":"teikjun","url":"https://github.com/teikjun","imageURL":"https://github.com/teikjun.png","key":"teikjun","page":null},{"name":"tetunori","alias":"tetunori","url":"https://github.com/tetunori","imageURL":"https://github.com/tetunori.png","key":"tetunori","page":null},{"name":"Tom Brien","alias":"TomBrien","url":"https://github.com/TomBrien","imageURL":"https://github.com/TomBrien.png","key":"TomBrien","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-06-18T20:00","authors":["aeneasr","anshulrgoyal","belokonm","Drewbi","fanny","guillaumejacquart","JoelMarcey","jsjoeio","lex111","moonrailgun","Nishikoh","pglezen","SamChou19815","slorber","teikjun","tetunori","TomBrien","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.59","permalink":"/changelog/2.0.0-alpha.59"},"nextItem":{"title":"2.0.0-alpha.57","permalink":"/changelog/2.0.0-alpha.57"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#2916](https://github.com/facebook/docusaurus/pull/2916) feat(v2): add a banner that links to latest version of documentation ([@teikjun](https://github.com/teikjun))\\n - [#2682](https://github.com/facebook/docusaurus/pull/2682) feat(v2): expanded sidebar categories by default ([@jsjoeio](https://github.com/jsjoeio))\\n- `docusaurus-plugin-debug`, `docusaurus-preset-classic`\\n - [#2928](https://github.com/facebook/docusaurus/pull/2928) feat(v2): Implement proof-of-concept Docusaurus Debug Dashboard ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-init`, `docusaurus`\\n - [#2903](https://github.com/facebook/docusaurus/pull/2903) feat(v2): Allow configuring babel via babel.config.js ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-utils`\\n - [#2793](https://github.com/facebook/docusaurus/pull/2793) feat(v2): docusaurus-plugin-client-redirects ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-live-codeblock`\\n - [#2826](https://github.com/facebook/docusaurus/pull/2826) feat(v2): allow adding components to react-live scope ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#2856](https://github.com/facebook/docusaurus/pull/2856) feat(v2): allow specifying meta image for blog posts ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2841](https://github.com/facebook/docusaurus/pull/2841) feat(v2): Allow swizzling prism-include-languages in theme-classic ([@SamChou19815](https://github.com/SamChou19815))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-init`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#2895](https://github.com/facebook/docusaurus/pull/2895) chore(v2): replace classnames with clsx ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`\\n - [#2861](https://github.com/facebook/docusaurus/pull/2861) fix(v2): do not create route for document that serve as docs home page ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#2682](https://github.com/facebook/docusaurus/pull/2682) feat(v2): expanded sidebar categories by default ([@jsjoeio](https://github.com/jsjoeio))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`\\n - [#2905](https://github.com/facebook/docusaurus/pull/2905) fix(v2): fix docs homepage permalink issues ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#2932](https://github.com/facebook/docusaurus/pull/2932) fix(v2): Add hooks to detect window resize, toggle off sidebar and navbar in desktop ([@guillaumejacquart](https://github.com/guillaumejacquart))\\n - [#2909](https://github.com/facebook/docusaurus/pull/2909) fix(v2): adjust anchor offset when routes switched ([@lex111](https://github.com/lex111))\\n - [#2896](https://github.com/facebook/docusaurus/pull/2896) fix(v2): set correct canonical url for docs home page ([@lex111](https://github.com/lex111))\\n - [#2893](https://github.com/facebook/docusaurus/pull/2893) fix(v2): Do not automatically change tab when a non-existing option is selected ([@SamChou19815](https://github.com/SamChou19815))\\n - [#2888](https://github.com/facebook/docusaurus/pull/2888) fix(v2): restore styles for menu scrollbar ([@lex111](https://github.com/lex111))\\n - [#2857](https://github.com/facebook/docusaurus/pull/2857) fix(v2): treat inline code in raw HTML as native element ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2951](https://github.com/facebook/docusaurus/pull/2951) fix(v2): Add optional-chaining and nullish-coalescing babel plugin ([@SamChou19815](https://github.com/SamChou19815))\\n - [#2921](https://github.com/facebook/docusaurus/pull/2921) fix(v2): upgrade react-loadable-ssr-addon ([@slorber](https://github.com/slorber))\\n - [#2854](https://github.com/facebook/docusaurus/pull/2854) fix(v2): fix broken build when swizzled NotFound component exist ([@lex111](https://github.com/lex111))\\n - [#2829](https://github.com/facebook/docusaurus/pull/2829) fix(v2): Fix plugin path resolution ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-preset-classic`\\n - [#2944](https://github.com/facebook/docusaurus/pull/2944) fix(v2): Declare @docusaurus-plugin-debug as dependency of preset classic ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-init`\\n - [#2902](https://github.com/facebook/docusaurus/pull/2902) feat(v2): add nojekyll file to static folder for all templates ([@teikjun](https://github.com/teikjun))\\n- `docusaurus-theme-bootstrap`\\n - [#2860](https://github.com/facebook/docusaurus/pull/2860) fix(v2): bootstrap doc sidebar ([@fanny](https://github.com/fanny))\\n- Other\\n - [#2874](https://github.com/facebook/docusaurus/pull/2874) fix(v2): Getting Started URL ([@fanny](https://github.com/fanny))\\n- `docusaurus-plugin-content-docs`\\n - [#2861](https://github.com/facebook/docusaurus/pull/2861) fix(v2): do not create route for document that serve as docs home page ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#2867](https://github.com/facebook/docusaurus/pull/2867) fix(v2): fix FOUC in doc sidebar and various improvements ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-search-algolia`\\n - [#2838](https://github.com/facebook/docusaurus/pull/2838) fix(v2): use base url to navigate to search page ([@tetunori](https://github.com/tetunori))\\n- `docusaurus-utils`\\n - [#2855](https://github.com/facebook/docusaurus/pull/2855) fix(v2): strip images and footnotes for excerpt correctly ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-live-codeblock`\\n - [#2835](https://github.com/facebook/docusaurus/pull/2835) fix(v2): set proper font for live editor ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils`, `docusaurus`\\n - [#2884](https://github.com/facebook/docusaurus/pull/2884) polish(v2): improve Docusaurus 1 to 2 migration developer experience ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#2870](https://github.com/facebook/docusaurus/pull/2870) refactor(v2): combine nested theme providers into one ([@lex111](https://github.com/lex111))\\n - [#2880](https://github.com/facebook/docusaurus/pull/2880) fix(v2): render as regular text uncollapsible categories ([@lex111](https://github.com/lex111))\\n - [#2864](https://github.com/facebook/docusaurus/pull/2864) refactor(v2): add aria role for doc sidebar ([@lex111](https://github.com/lex111))\\n - [#2859](https://github.com/facebook/docusaurus/pull/2859) refactor(v2): add aria label to paginators ([@lex111](https://github.com/lex111))\\n - [#2858](https://github.com/facebook/docusaurus/pull/2858) refactor(v2): add missing main landmark for needed pages ([@lex111](https://github.com/lex111))\\n- Other\\n - [#2862](https://github.com/facebook/docusaurus/pull/2862) Updated banner in solidarity ([@JoelMarcey](https://github.com/JoelMarcey))\\n\\n## :memo: Documentation\\n\\n- [#2946](https://github.com/facebook/docusaurus/pull/2946) docs(v2): add require.resolve to plugin imports on remaining pages ([@teikjun](https://github.com/teikjun))\\n- [#2941](https://github.com/facebook/docusaurus/pull/2941) docs(v2): wrap all plugin imports in require.resolve() ([@TomBrien](https://github.com/TomBrien))\\n- [#2934](https://github.com/facebook/docusaurus/pull/2934) docs(v2): add useThemeContext note ([@Drewbi](https://github.com/Drewbi))\\n- [#2935](https://github.com/facebook/docusaurus/pull/2935) docs(v2): Add router implementation note ([@Drewbi](https://github.com/Drewbi))\\n- [#2933](https://github.com/facebook/docusaurus/pull/2933) docs(v2): add documentation for multiple blogs ([@teikjun](https://github.com/teikjun))\\n- [#2910](https://github.com/facebook/docusaurus/pull/2910) docs(v2): fix GitHub action workflow in docs ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- [#2886](https://github.com/facebook/docusaurus/pull/2886) docs(v2): fix typo in command on installation page ([@pglezen](https://github.com/pglezen))\\n- [#2887](https://github.com/facebook/docusaurus/pull/2887) docs(v2): make .nojekyll warning more obvious ([@yangshun](https://github.com/yangshun))\\n- [#2865](https://github.com/facebook/docusaurus/pull/2865) docs(v2): description field in frontmatter of blog post ([@lex111](https://github.com/lex111))\\n- [#2839](https://github.com/facebook/docusaurus/pull/2839) docs(v2): \\\\_index docs page does not show a sidebar ([@aeneasr](https://github.com/aeneasr))\\n- [#2852](https://github.com/facebook/docusaurus/pull/2852) misc: move runme demo in block quote about v2 ([@lex111](https://github.com/lex111))\\n- [#2842](https://github.com/facebook/docusaurus/pull/2842) docs(v2): Update ZEIT to Vercel ([@Nishikoh](https://github.com/Nishikoh))\\n\\n## :house: Internal\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`\\n - [#2948](https://github.com/facebook/docusaurus/pull/2948) refactor(v2): legacy export = syntax ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-utils`, `docusaurus`\\n - [#2922](https://github.com/facebook/docusaurus/pull/2922) misc(v2): better dx: yarn clear, yarn watch, yarn serve ([@slorber](https://github.com/slorber))\\n- Other\\n - [#2929](https://github.com/facebook/docusaurus/pull/2929) chore(v2): Run E2E tests in CI ([@SamChou19815](https://github.com/SamChou19815))\\n - [#2899](https://github.com/facebook/docusaurus/pull/2899) chore(deps): bump websocket-extensions from 0.1.3 to 0.1.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#2897](https://github.com/facebook/docusaurus/pull/2897) refactor(v2): synchronize yarn/npm command on site ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-bootstrap`\\n - [#2931](https://github.com/facebook/docusaurus/pull/2931) chore(v2): remove unused hooks from bootstrap theme ([@fanny](https://github.com/fanny))\\n- `docusaurus-1.x`, `docusaurus-plugin-content-docs`\\n - [#2906](https://github.com/facebook/docusaurus/pull/2906) chore(v2): fix async tests ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#2858](https://github.com/facebook/docusaurus/pull/2858) refactor(v2): add missing main landmark for needed pages ([@lex111](https://github.com/lex111))\\n\\n## :running: Performance\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-sitemap`\\n - [#2936](https://github.com/facebook/docusaurus/pull/2936) perf(v2): convert synchronous filewrite to asynchronous ([@moonrailgun](https://github.com/moonrailgun))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2900](https://github.com/facebook/docusaurus/pull/2900) chore(v2): replace Clipboard with copy-text-to-clipboard ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#2895](https://github.com/facebook/docusaurus/pull/2895) chore(v2): replace classnames with clsx ([@lex111](https://github.com/lex111))\\n\\n## Committers: 18\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Anshul Goyal ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- Drew Alexander ([@Drewbi](https://github.com/Drewbi))\\n- Fanny ([@fanny](https://github.com/fanny))\\n- Guillaume Jacquart ([@guillaumejacquart](https://github.com/guillaumejacquart))\\n- Joe Previte ([@jsjoeio](https://github.com/jsjoeio))\\n- Joel Marcey ([@JoelMarcey](https://github.com/JoelMarcey))\\n- Koki Nishihara ([@Nishikoh](https://github.com/Nishikoh))\\n- Paul Glezen ([@pglezen](https://github.com/pglezen))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Teik Jun ([@teikjun](https://github.com/teikjun))\\n- Tom Brien ([@TomBrien](https://github.com/TomBrien))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- [@belokonm](https://github.com/belokonm)\\n- hackerman ([@aeneasr](https://github.com/aeneasr))\\n- moonrailgun ([@moonrailgun](https://github.com/moonrailgun))\\n- tetunori ([@tetunori](https://github.com/tetunori))"},{"id":"/2.0.0-alpha.57","metadata":{"permalink":"/changelog/2.0.0-alpha.57","source":"@site/changelog/source/2.0.0-alpha.57.md","title":"2.0.0-alpha.57","description":"Bad release, check ## 2.0.0-alpha.58","date":"2020-06-18T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2020-06-18T19:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.58","permalink":"/changelog/2.0.0-alpha.58"},"nextItem":{"title":"2.0.0-alpha.56","permalink":"/changelog/2.0.0-alpha.56"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\nBad release, check ## 2.0.0-alpha.58"},{"id":"/2.0.0-alpha.56","metadata":{"permalink":"/changelog/2.0.0-alpha.56","source":"@site/changelog/source/2.0.0-alpha.56.md","title":"2.0.0-alpha.56","description":"Breaking Change","date":"2020-05-28T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"John Knox","alias":"jknoxville","url":"https://github.com/jknoxville","imageURL":"https://github.com/jknoxville.png","key":"jknoxville","page":null},{"name":"James McShane","alias":"jmcshane","url":"https://github.com/jmcshane","imageURL":"https://github.com/jmcshane.png","key":"jmcshane","page":null},{"name":"Kasper B\xf8gebjerg Pedersen","alias":"kasperp","url":"https://github.com/kasperp","imageURL":"https://github.com/kasperp.png","key":"kasperp","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Muhammad Ali","alias":"mrmuhammadali","url":"https://github.com/mrmuhammadali","imageURL":"https://github.com/mrmuhammadali.png","key":"mrmuhammadali","page":null},{"name":"Piotr Baran","alias":"piotros","url":"https://github.com/piotros","imageURL":"https://github.com/piotros.png","key":"piotros","page":null},{"name":"Sylvain Pace","alias":"s-pace","url":"https://github.com/s-pace","imageURL":"https://github.com/s-pace.png","key":"s-pace","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-05-28T20:00","authors":["jknoxville","jmcshane","kasperp","lex111","mrmuhammadali","piotros","s-pace","SamChou19815"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.57","permalink":"/changelog/2.0.0-alpha.57"},"nextItem":{"title":"2.0.0-alpha.55","permalink":"/changelog/2.0.0-alpha.55"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- If you refer to modules (plugins) in your config file in a string form, you will need to replace them with `require.resolve` calls, for example:\\n\\n```diff\\n- plugins: [\'@docusaurus/plugin-google-analytics\']\\n+ plugins: [require.resolve(\'@docusaurus/plugin-google-analytics\')]\\n```\\n\\n- `docusaurus-theme-classic`\\n - [#2818](https://github.com/facebook/docusaurus/pull/2818) feat(v2): automatically add base url to logo link ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#2791](https://github.com/facebook/docusaurus/pull/2791) refactor(v2): show search icon only on mobiles ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2780](https://github.com/facebook/docusaurus/pull/2780) feat(v2): open external links in new tab by default ([@jknoxville](https://github.com/jknoxville))\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-types`, `docusaurus`\\n - [#2770](https://github.com/facebook/docusaurus/pull/2770) feat(v2): allow deploy without building website ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2818](https://github.com/facebook/docusaurus/pull/2818) feat(v2): automatically add base url to logo link ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#2645](https://github.com/facebook/docusaurus/pull/2645) fix(v2): enable scrolling for sidebar menu only ([@lex111](https://github.com/lex111))\\n - [#2800](https://github.com/facebook/docusaurus/pull/2800) fix(v2): make proper h1 font size on mobiles ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2788](https://github.com/facebook/docusaurus/pull/2788) fix(v2): use `require.resolve` for all webpack presets and plugins ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-content-docs`\\n - [#2785](https://github.com/facebook/docusaurus/pull/2785) fix(v2): do not show sidebar on reserved docs home page ([@lex111](https://github.com/lex111))\\n - [#2777](https://github.com/facebook/docusaurus/pull/2777) fix(v2): check for docs homepage correctly ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#2820](https://github.com/facebook/docusaurus/pull/2820) chore(v2): upgrade Infima to 0.2.0-alpha.12 ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-search-algolia`\\n - [#2814](https://github.com/facebook/docusaurus/pull/2814) refactor(v2): align search icon to center on mobiles ([@lex111](https://github.com/lex111))\\n - [#2799](https://github.com/facebook/docusaurus/pull/2799) refactor(v2): increase search input on medium screens ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`\\n - [#2802](https://github.com/facebook/docusaurus/pull/2802) misc: minor improvements for init templates ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#2791](https://github.com/facebook/docusaurus/pull/2791) refactor(v2): show search icon only on mobiles ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2783](https://github.com/facebook/docusaurus/pull/2783) refactor(v2): make external links more secure ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- [#2809](https://github.com/facebook/docusaurus/pull/2809) docs(v2): add mention on DocSearch when you run the crawler on your own ([@s-pace](https://github.com/s-pace))\\n\\n## :house: Internal\\n\\n- [#2778](https://github.com/facebook/docusaurus/pull/2778) fix(v2): do not highlight root docs path in navbar ([@lex111](https://github.com/lex111))\\n\\n## Committers: 8\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- James McShane ([@jmcshane](https://github.com/jmcshane))\\n- John Knox ([@jknoxville](https://github.com/jknoxville))\\n- Kasper B\xf8gebjerg Pedersen ([@kasperp](https://github.com/kasperp))\\n- Muhammad Ali ([@mrmuhammadali](https://github.com/mrmuhammadali))\\n- Piotr Baran ([@piotros](https://github.com/piotros))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- Sylvain Pace ([@s-pace](https://github.com/s-pace))"},{"id":"/2.0.0-alpha.55","metadata":{"permalink":"/changelog/2.0.0-alpha.55","source":"@site/changelog/source/2.0.0-alpha.55.md","title":"2.0.0-alpha.55","description":"Breaking Change","date":"2020-05-19T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Artem Kovalov","alias":"artemkovalyov","url":"https://github.com/artemkovalyov","imageURL":"https://github.com/artemkovalyov.png","key":"artemkovalyov","page":null},{"name":"Fanny","alias":"fanny","url":"https://github.com/fanny","imageURL":"https://github.com/fanny.png","key":"fanny","page":null},{"name":"Rajiv Singh","alias":"iamrajiv","url":"https://github.com/iamrajiv","imageURL":"https://github.com/iamrajiv.png","key":"iamrajiv","page":null},{"name":"Jimmy","alias":"jcomack","url":"https://github.com/jcomack","imageURL":"https://github.com/jcomack.png","key":"jcomack","page":null},{"name":"Julien Deniau","alias":"jdeniau","url":"https://github.com/jdeniau","imageURL":"https://github.com/jdeniau.png","key":"jdeniau","page":null},{"name":"Jonny Nabors","alias":"jonnynabors","url":"https://github.com/jonnynabors","imageURL":"https://github.com/jonnynabors.png","key":"jonnynabors","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Marco Moretti","alias":"marcosvega91","url":"https://github.com/marcosvega91","imageURL":"https://github.com/marcosvega91.png","key":"marcosvega91","page":null},{"name":"Ben Gubler","alias":"nebrelbug","url":"https://github.com/nebrelbug","imageURL":"https://github.com/nebrelbug.png","key":"nebrelbug","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Taylor Reece","alias":"taylorreece","url":"https://github.com/taylorreece","imageURL":"https://github.com/taylorreece.png","key":"taylorreece","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null},{"name":"Yamagishi Kazutoshi","alias":"ykzts","url":"https://github.com/ykzts","imageURL":"https://github.com/ykzts.png","key":"ykzts","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-05-19T20:00","authors":["artemkovalyov","fanny","iamrajiv","jcomack","jdeniau","jonnynabors","lex111","marcosvega91","nebrelbug","slorber","taylorreece","yangshun","ykzts"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.56","permalink":"/changelog/2.0.0-alpha.56"},"nextItem":{"title":"2.0.0-alpha.54","permalink":"/changelog/2.0.0-alpha.54"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- `infima`\\n\\n - The following Infima classes have been renamed for consistency:\\n\\n - `page-item` \u2192 `pagination__item`\\n - `pagination-nav__link--label` \u2192 `pagination-nav__label`\\n - `pagination-nav__link--sublabel` \u2192 `pagination-nav__sublabel`\\n - `tab-item` \u2192 `tabs__item`\\n - `tab-item--active` \u2192 `tabs__item--active`\\n\\n If you have swizzled components, you need to replace these class names.\\n\\n- `docusaurus`\\n\\n - [#2764](https://github.com/facebook/docusaurus/pull/2764) feat(v2): allow import SVG images ([@lex111](https://github.com/lex111))\\n\\n## :rocket: New Feature\\n\\n- `docusaurus`\\n - [#2764](https://github.com/facebook/docusaurus/pull/2764) feat(v2): allow import SVG images ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2690](https://github.com/facebook/docusaurus/pull/2690) feat(v2): allow activeBaseTest in NavLink ([@nebrelbug](https://github.com/nebrelbug))\\n - [#2694](https://github.com/facebook/docusaurus/pull/2694) feat(v2): add canonical URL to `<head>` ([@jcomack](https://github.com/jcomack))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#2652](https://github.com/facebook/docusaurus/pull/2652) feat(v2): allow home page for docs ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#2756](https://github.com/facebook/docusaurus/pull/2756) feat(v2): add search page \u{1F50E} ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#2701](https://github.com/facebook/docusaurus/pull/2701) fix(v2): remove Markdown syntax from excerpt ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2765](https://github.com/facebook/docusaurus/pull/2765) fix(v2): remove invalid attr from mobile nav links ([@lex111](https://github.com/lex111))\\n - [#2760](https://github.com/facebook/docusaurus/pull/2760) fix(v2): move anchor link to right of heading ([@lex111](https://github.com/lex111))\\n - [#2758](https://github.com/facebook/docusaurus/pull/2758) fix(v2): remove extra top margin of tab item ([@lex111](https://github.com/lex111))\\n - [#2759](https://github.com/facebook/docusaurus/pull/2759) fix(v2): restore hiding of docs toc ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-search-algolia`\\n - [#2762](https://github.com/facebook/docusaurus/pull/2762) fix(v2): avoid duplication search input in navbar ([@lex111](https://github.com/lex111))\\n- `lqip-loader`\\n - [#2693](https://github.com/facebook/docusaurus/pull/2693) fix(v2): add support ES Module to lqip-loader ([@ykzts](https://github.com/ykzts))\\n- `docusaurus-init`\\n - [#2751](https://github.com/facebook/docusaurus/pull/2751) fix(v2): fix index page features.length when 0 ([@jdeniau](https://github.com/jdeniau))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#2773](https://github.com/facebook/docusaurus/pull/2773) chore(v2): upgrade Infima to 0.2.0-alpha.11 ([@lex111](https://github.com/lex111))\\n - [#2766](https://github.com/facebook/docusaurus/pull/2766) refactor(v2): remove extra active CSS class for menu item links ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-live-codeblock`\\n - [#2767](https://github.com/facebook/docusaurus/pull/2767) refactor(v2): add support for dark mode to live code blocks ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-search-algolia`\\n - [#2761](https://github.com/facebook/docusaurus/pull/2761) refactor(v2): improve UX of search page ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`\\n - [#2729](https://github.com/facebook/docusaurus/pull/2729) chore(v2): upgrade Infima to 0.2.0-alpha.10 ([@lex111](https://github.com/lex111))\\n- `docusaurus-utils`\\n - [#2696](https://github.com/facebook/docusaurus/pull/2696) refactor(v2): make semicolon optional in imports for excerpt ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- [#2768](https://github.com/facebook/docusaurus/pull/2768) docs(v2): various improvements ([@lex111](https://github.com/lex111))\\n- [#2670](https://github.com/facebook/docusaurus/pull/2670) docs(v2): add deployment workflow manual for GitHub Actions ([@artemkovalyov](https://github.com/artemkovalyov))\\n\\n## :house: Internal\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus`\\n - [#2464](https://github.com/facebook/docusaurus/pull/2464) refactor(v2): add @theme-init alias to give access to initial components ([@lex111](https://github.com/lex111))\\n\\n## :running: Performance\\n\\n- `docusaurus`\\n - [#2684](https://github.com/facebook/docusaurus/pull/2684) refactor(v2): replace EJS with Eta for SSR generation ([@nebrelbug](https://github.com/nebrelbug))\\n\\n## Committers: 13\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Artem Kovalov ([@artemkovalyov](https://github.com/artemkovalyov))\\n- Ben Gubler ([@nebrelbug](https://github.com/nebrelbug))\\n- Fanny ([@fanny](https://github.com/fanny))\\n- Jimmy ([@jcomack](https://github.com/jcomack))\\n- Jonny Nabors ([@jonnynabors](https://github.com/jonnynabors))\\n- Julien Deniau ([@jdeniau](https://github.com/jdeniau))\\n- Marco Moretti ([@marcosvega91](https://github.com/marcosvega91))\\n- Rajiv Singh ([@iamrajiv](https://github.com/iamrajiv))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Taylor Reece ([@taylorreece](https://github.com/taylorreece))\\n- Yamagishi Kazutoshi ([@ykzts](https://github.com/ykzts))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))"},{"id":"/2.0.0-alpha.54","metadata":{"permalink":"/changelog/2.0.0-alpha.54","source":"@site/changelog/source/2.0.0-alpha.54.md","title":"2.0.0-alpha.54","description":"HOTFIX for 2.0.0-alpha.53.","date":"2020-04-28T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"JavaScript Joe","alias":"jsjoeio","url":"https://github.com/jsjoeio","imageURL":"https://github.com/jsjoeio.png","key":"jsjoeio","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-04-28T20:00","authors":["jsjoeio","lex111","SamChou19815"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.55","permalink":"/changelog/2.0.0-alpha.55"},"nextItem":{"title":"2.0.0-alpha.53","permalink":"/changelog/2.0.0-alpha.53"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n**HOTFIX for 2.0.0-alpha.53**.\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#2688](https://github.com/facebook/docusaurus/pull/2688) fix(v2): add default value for options in theme classic ([@lex111](https://github.com/lex111))\\n- `docusaurus-module-type-aliases`\\n - [#2687](https://github.com/facebook/docusaurus/pull/2687) fix(v2): Add all webpack module aliases to type declaration file ([@SamChou19815](https://github.com/SamChou19815))\\n\\n## :memo: Documentation\\n\\n- [#2680](https://github.com/facebook/docusaurus/pull/2680) docs(v2): add swizzle example ([@jsjoeio](https://github.com/jsjoeio))\\n\\n## Committers: 3\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Joe Previte ([@jsjoeio](https://github.com/jsjoeio))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))"},{"id":"/2.0.0-alpha.53","metadata":{"permalink":"/changelog/2.0.0-alpha.53","source":"@site/changelog/source/2.0.0-alpha.53.md","title":"2.0.0-alpha.53","description":"HOTFIX for 2.0.0-alpha.51.","date":"2020-04-27T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-04-27T20:00","authors":["lex111"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.54","permalink":"/changelog/2.0.0-alpha.54"},"nextItem":{"title":"2.0.0-alpha.51","permalink":"/changelog/2.0.0-alpha.51"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n**HOTFIX for 2.0.0-alpha.51**.\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#2676](https://github.com/facebook/docusaurus/pull/2676) fix(v2): allow build website without custom css ([@lex111](https://github.com/lex111))\\n\\n## Committers: 1\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))"},{"id":"/2.0.0-alpha.51","metadata":{"permalink":"/changelog/2.0.0-alpha.51","source":"@site/changelog/source/2.0.0-alpha.51.md","title":"2.0.0-alpha.51","description":"Breaking Change","date":"2020-04-27T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Anayo Oleru","alias":"AnayoOleru","url":"https://github.com/AnayoOleru","imageURL":"https://github.com/AnayoOleru.png","key":"AnayoOleru","page":null},{"name":"Fanny","alias":"fanny","url":"https://github.com/fanny","imageURL":"https://github.com/fanny.png","key":"fanny","page":null},{"name":"Jay Lees","alias":"jaylees14","url":"https://github.com/jaylees14","imageURL":"https://github.com/jaylees14.png","key":"jaylees14","page":null},{"name":"Jos\xe9 Renan","alias":"JoseRenan","url":"https://github.com/JoseRenan","imageURL":"https://github.com/JoseRenan.png","key":"JoseRenan","page":null},{"name":"JavaScript Joe","alias":"jsjoeio","url":"https://github.com/jsjoeio","imageURL":"https://github.com/jsjoeio.png","key":"jsjoeio","page":null},{"name":"Kamil Kisiela","alias":"kamilkisiela","url":"https://github.com/kamilkisiela","imageURL":"https://github.com/kamilkisiela.png","key":"kamilkisiela","page":null},{"name":"Krist\xf3f Poduszl\xf3","alias":"kripod","url":"https://github.com/kripod","imageURL":"https://github.com/kripod.png","key":"kripod","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Noah Silvera","alias":"Noah-Silvera","url":"https://github.com/Noah-Silvera","imageURL":"https://github.com/Noah-Silvera.png","key":"Noah-Silvera","page":null},{"name":"Reece Dunham","alias":"RDIL","url":"https://github.com/RDIL","imageURL":"https://github.com/RDIL.png","key":"RDIL","page":null},{"name":"Sylvain Pace","alias":"s-pace","url":"https://github.com/s-pace","imageURL":"https://github.com/s-pace.png","key":"s-pace","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tom Brien","alias":"TomBrien","url":"https://github.com/TomBrien","imageURL":"https://github.com/TomBrien.png","key":"TomBrien","page":null},{"name":"Chris Watson","alias":"watzon","url":"https://github.com/watzon","imageURL":"https://github.com/watzon.png","key":"watzon","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null},{"name":"Mehmet Yatk\u0131","alias":"yatki","url":"https://github.com/yatki","imageURL":"https://github.com/yatki.png","key":"yatki","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-04-27T19:00","authors":["AnayoOleru","fanny","jaylees14","JoseRenan","jsjoeio","kamilkisiela","kripod","lex111","Noah-Silvera","RDIL","s-pace","SamChou19815","Simek","slorber","TomBrien","watzon","yangshun","yatki"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.53","permalink":"/changelog/2.0.0-alpha.53"},"nextItem":{"title":"2.0.0-alpha.50","permalink":"/changelog/2.0.0-alpha.50"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- `infima`\\n - The following infima variables have been renamed for consistency:\\n - `--ifm-font-base-color` \u2192 `--ifm-font-color-base`\\n - `--ifm-font-base-color-inverse` \u2192 `--ifm-font-color-base-inverse`\\n - `--ifm-font-color-secondary` \u2192 `--ifm-font-color-secondary`\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#2660](https://github.com/facebook/docusaurus/pull/2660) feat(v2): add ability to specify CSS class for navbar item ([@lex111](https://github.com/lex111))\\n - [#2597](https://github.com/facebook/docusaurus/pull/2597) feat(v2): add ability set dark mode by default ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2665](https://github.com/facebook/docusaurus/pull/2665) feat(v2): add fallback to BrowserOnly component ([@lex111](https://github.com/lex111))\\n- `docusaurus-types`, `docusaurus`\\n - [#2630](https://github.com/facebook/docusaurus/pull/2630) feat(v2): add CLI option for polling ([@TomBrien](https://github.com/TomBrien))\\n- `docusaurus-init`\\n - [#2541](https://github.com/facebook/docusaurus/pull/2541) feat(v2): add showReadingTime and editUrl to the templates ([@fanny](https://github.com/fanny))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils`\\n - [#2524](https://github.com/facebook/docusaurus/pull/2524) feat(v2): add edit url in post page ([@fanny](https://github.com/fanny))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#2531](https://github.com/facebook/docusaurus/pull/2531) feat(v2): add blog post estimated reading time ([@JoseRenan](https://github.com/JoseRenan))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#2672](https://github.com/facebook/docusaurus/pull/2672) fix(v2): add a11y support for dropdown ([@lex111](https://github.com/lex111))\\n - [#2649](https://github.com/facebook/docusaurus/pull/2649) fix(v2): hide sidebar after click on child item ([@lex111](https://github.com/lex111))\\n - [#2631](https://github.com/facebook/docusaurus/pull/2631) fix(v2): hide doc sidebar on mobiles ([@lex111](https://github.com/lex111))\\n - [#2626](https://github.com/facebook/docusaurus/pull/2626) fix(v2): make border right of doc sidebar equals doc page ([@lex111](https://github.com/lex111))\\n - [#2625](https://github.com/facebook/docusaurus/pull/2625) fix(v2): disable tab focus on collapsed doc sidebar items ([@lex111](https://github.com/lex111))\\n - [#2602](https://github.com/facebook/docusaurus/pull/2602) fix(v2): inherit color for announcement bar close icon ([@lex111](https://github.com/lex111))\\n - [#2582](https://github.com/facebook/docusaurus/pull/2582) fix(v2): remove horizontal scroll on docs page ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2666](https://github.com/facebook/docusaurus/pull/2666) chore(v2): upgrade prism-react-renderer to latest version ([@lex111](https://github.com/lex111))\\n - [#2533](https://github.com/facebook/docusaurus/pull/2533) fix(v2): add rounded corners in code blocks properly ([@lex111](https://github.com/lex111))\\n- `docusaurus-1.x`, `docusaurus-init-1.x`, `docusaurus-init`, `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#2661](https://github.com/facebook/docusaurus/pull/2661) chore: upgrade shelljs to 0.8.4 ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-preset-classic`, `docusaurus-theme-classic`\\n - [#2642](https://github.com/facebook/docusaurus/pull/2642) fix(v2): use remark-admonitions separately in each plugin instead of in preset only ([@lex111](https://github.com/lex111))\\n- `docusaurus-utils`\\n - [#2380](https://github.com/facebook/docusaurus/pull/2380) fix(v2): ignore import declarations in excerpt ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-sitemap`\\n - [#2616](https://github.com/facebook/docusaurus/pull/2616) fix(v2): don\'t include 404 page in sitemaps ([@RDIL](https://github.com/RDIL))\\n - [#2530](https://github.com/facebook/docusaurus/pull/2530) fix(v2): Use `writeFileSync` to write generated sitemap.xml to avoid early termination ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus`\\n - [#2558](https://github.com/facebook/docusaurus/pull/2558) fix(v2): properly link top-level github pages sites in deploy command ([@RDIL](https://github.com/RDIL))\\n - [#2580](https://github.com/facebook/docusaurus/pull/2580) fix(v2): do not process anchor links by router ([@lex111](https://github.com/lex111))\\n - [#2579](https://github.com/facebook/docusaurus/pull/2579) fix(v2): treat mailto and tel links properly ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`\\n - [#2540](https://github.com/facebook/docusaurus/pull/2540) fix(v2): use synchronous write for generate blog feeds ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#2656](https://github.com/facebook/docusaurus/pull/2656) refactor(v2): lose focus of active sidebar item after click on it ([@lex111](https://github.com/lex111))\\n - [#2627](https://github.com/facebook/docusaurus/pull/2627) refactor(v2): extract scroll position detection into separate hook ([@lex111](https://github.com/lex111))\\n - [#2595](https://github.com/facebook/docusaurus/pull/2595) refactor(v2): make margin top on blog pages as on other pages ([@lex111](https://github.com/lex111))\\n - [#2588](https://github.com/facebook/docusaurus/pull/2588) refactor(v2): remove redundant container on docs page ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#2585](https://github.com/facebook/docusaurus/pull/2585) refactor(v2): use nav link component only where needed ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2556](https://github.com/facebook/docusaurus/pull/2556) refactor(v2): enhance CLI experience ([@RDIL](https://github.com/RDIL))\\n - [#2529](https://github.com/facebook/docusaurus/pull/2529) refactor(v2): replace few Lodash methods with native counterparts ([@Simek](https://github.com/Simek))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2534](https://github.com/facebook/docusaurus/pull/2534) refactor(v2): make better code blocks ([@lex111](https://github.com/lex111))\\n - [#2526](https://github.com/facebook/docusaurus/pull/2526) fix(v2): make code block nicer again ([@yangshun](https://github.com/yangshun))\\n- `docusaurus-plugin-content-docs`\\n - [#2519](https://github.com/facebook/docusaurus/pull/2519) chore(v2): use single method Lodash packages in docs plugin ([@Simek](https://github.com/Simek))\\n\\n## :memo: Documentation\\n\\n- [#2659](https://github.com/facebook/docusaurus/pull/2659) fix(docs): mention that appID is optional ([@s-pace](https://github.com/s-pace))\\n- [#2596](https://github.com/facebook/docusaurus/pull/2596) docs(v2): remove duplicated package.json in installation directory structure ([@jaylees14](https://github.com/jaylees14))\\n- [#2572](https://github.com/facebook/docusaurus/pull/2572) docs(v2): mention that `plugin-ideal-image` only perform compression on a production build ([@Noah-Silvera](https://github.com/Noah-Silvera))\\n- [#2570](https://github.com/facebook/docusaurus/pull/2570) docs(v2): fix syntax error for @docusaurus/plugin-ideal-image example ([@Noah-Silvera](https://github.com/Noah-Silvera))\\n- [#2566](https://github.com/facebook/docusaurus/pull/2566) docs(v2): be more polite ([@lex111](https://github.com/lex111))\\n- [#2559](https://github.com/facebook/docusaurus/pull/2559) doc(v2): remove legacy blog metadata ([@RDIL](https://github.com/RDIL))\\n- [#2549](https://github.com/facebook/docusaurus/pull/2549) docs(v2): command for swizzling all components ([@fanny](https://github.com/fanny))\\n- [#2547](https://github.com/facebook/docusaurus/pull/2547) docs(v2): Fix typo in team page ([@SamChou19815](https://github.com/SamChou19815))\\n- [#2545](https://github.com/facebook/docusaurus/pull/2545) docs(v2): add community pages ([@yangshun](https://github.com/yangshun))\\n- [#2521](https://github.com/facebook/docusaurus/pull/2521) docs(v2): useThemeContext hook ([@lex111](https://github.com/lex111))\\n\\n## :house: Internal\\n\\n- `docusaurus-types`, `docusaurus`\\n - [#2578](https://github.com/facebook/docusaurus/pull/2578) refactor(v2): Convert docusaurus-core to TypeScript ([@SamChou19815](https://github.com/SamChou19815))\\n- Other\\n - [#2569](https://github.com/facebook/docusaurus/pull/2569) docs(v2): showcase user Tourmaline ([@watzon](https://github.com/watzon))\\n - [#2553](https://github.com/facebook/docusaurus/pull/2553) misc(v2): remove deprecated/useless lerna field ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`, `lqip-loader`\\n - [#2563](https://github.com/facebook/docusaurus/pull/2563) chore(v2): fix lint, tweak lqip-loader utils comment ([@Simek](https://github.com/Simek))\\n- `lqip-loader`\\n - [#2561](https://github.com/facebook/docusaurus/pull/2561) chore(v2): add lqip-loader tests, clarify loader code, improve README ([@Simek](https://github.com/Simek))\\n- `docusaurus-plugin-ideal-image`, `lqip-loader`\\n - [#2544](https://github.com/facebook/docusaurus/pull/2544) refactor(v2): import lqip-loader to monorepo, fix build on Node 13, fix lint-staged ([@Simek](https://github.com/Simek))\\n- `docusaurus-init`\\n - [#2542](https://github.com/facebook/docusaurus/pull/2542) chore(v2): update Prettier config ([@lex111](https://github.com/lex111))\\n- `docusaurus-1.x`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`, `stylelint-copyright`\\n - [#2538](https://github.com/facebook/docusaurus/pull/2538) chore(v2): upgrade devDependencies ([@yangshun](https://github.com/yangshun))\\n- `docusaurus-utils`\\n - [#2536](https://github.com/facebook/docusaurus/pull/2536) refactor(v2): replace Lodash with single methods packages in utils ([@Simek](https://github.com/Simek))\\n- `docusaurus`\\n - [#2535](https://github.com/facebook/docusaurus/pull/2535) refactor(v2): replace Lodash with single methods packages in core ([@Simek](https://github.com/Simek))\\n\\n## Committers: 18\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Anayo Oleru ([@AnayoOleru](https://github.com/AnayoOleru))\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- Chris Watson ([@watzon](https://github.com/watzon))\\n- Fanny ([@fanny](https://github.com/fanny))\\n- Jay Lees ([@jaylees14](https://github.com/jaylees14))\\n- Joe Previte ([@jsjoeio](https://github.com/jsjoeio))\\n- Jos\xe9 Renan ([@JoseRenan](https://github.com/JoseRenan))\\n- Kamil Kisiela ([@kamilkisiela](https://github.com/kamilkisiela))\\n- Krist\xf3f Poduszl\xf3 ([@kripod](https://github.com/kripod))\\n- Mehmet Yatk\u0131 ([@yatki](https://github.com/yatki))\\n- Noah Silvera ([@Noah-Silvera](https://github.com/Noah-Silvera))\\n- Reece Dunham ([@RDIL](https://github.com/RDIL))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- Sylvain Pace ([@s-pace](https://github.com/s-pace))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tom Brien ([@TomBrien](https://github.com/TomBrien))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))"},{"id":"/2.0.0-alpha.50","metadata":{"permalink":"/changelog/2.0.0-alpha.50","source":"@site/changelog/source/2.0.0-alpha.50.md","title":"2.0.0-alpha.50","description":"HOTFIX for 2.0.0-alpha.49.","date":"2020-04-02T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Can Gencer","alias":"cangencer","url":"https://github.com/cangencer","imageURL":"https://github.com/cangencer.png","key":"cangencer","page":null},{"name":"Richard Chan","alias":"iWun","url":"https://github.com/iWun","imageURL":"https://github.com/iWun.png","key":"iWun","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-04-02T20:00","authors":["cangencer","iWun","lex111","SamChou19815","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.51","permalink":"/changelog/2.0.0-alpha.51"},"nextItem":{"title":"2.0.0-alpha.49","permalink":"/changelog/2.0.0-alpha.49"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n**HOTFIX for 2.0.0-alpha.49**.\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2509](https://github.com/facebook/docusaurus/pull/2509) fix(v2): synchronize code block components changes ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2498](https://github.com/facebook/docusaurus/pull/2498) fix(v2): blog item styling ([@yangshun](https://github.com/yangshun))\\n - [#2489](https://github.com/facebook/docusaurus/pull/2489) fix(v2): fix HTML issues nav dropdown and highlight docs item ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2496](https://github.com/facebook/docusaurus/pull/2496) fix(v2): do not force terminate building when running deploy command ([@lex111](https://github.com/lex111))\\n- `docusaurus-utils`\\n - [#2497](https://github.com/facebook/docusaurus/pull/2497) fix(v2): unbreak blog-only mode routing by deplicating starting forward slashes ([@SamChou19815](https://github.com/SamChou19815))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#2505](https://github.com/facebook/docusaurus/pull/2505) fix(v2): tweak colors for announcement bar ([@yangshun](https://github.com/yangshun))\\n - [#2504](https://github.com/facebook/docusaurus/pull/2504) refactor(v2): improve announcement bar ([@lex111](https://github.com/lex111))\\n - [#2495](https://github.com/facebook/docusaurus/pull/2495) refactor(v2): update HTML markup of pagination for better a11y ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2502](https://github.com/facebook/docusaurus/pull/2502) fix(v2): make code block nicer ([@yangshun](https://github.com/yangshun))\\n- `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#2490](https://github.com/facebook/docusaurus/pull/2490) fix(v2): use lodash instead of array-map-polyfill ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- `docusaurus-theme-classic`\\n - [#2500](https://github.com/facebook/docusaurus/pull/2500) docs(v2): misc docs updates ([@yangshun](https://github.com/yangshun))\\n\\n## :house: Internal\\n\\n- [#2486](https://github.com/facebook/docusaurus/pull/2486) misc: add instructions about test release ([@lex111](https://github.com/lex111))\\n\\n## Committers: 5\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Can Gencer ([@cangencer](https://github.com/cangencer))\\n- Richard Chan ([@iWun](https://github.com/iWun))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))"},{"id":"/2.0.0-alpha.49","metadata":{"permalink":"/changelog/2.0.0-alpha.49","source":"@site/changelog/source/2.0.0-alpha.49.md","title":"2.0.0-alpha.49","description":"New Feature","date":"2020-04-01T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"38elements","alias":"38elements","url":"https://github.com/38elements","imageURL":"https://github.com/38elements.png","key":"38elements","page":null},{"name":"R\xe9mi Doreau","alias":"ayshiff","url":"https://github.com/ayshiff","imageURL":"https://github.com/ayshiff.png","key":"ayshiff","page":null},{"name":"bravo-kernel","alias":"bravo-kernel","url":"https://github.com/bravo-kernel","imageURL":"https://github.com/bravo-kernel.png","key":"bravo-kernel","page":null},{"name":"Elvis Wolcott","alias":"elviswolcott","url":"https://github.com/elviswolcott","imageURL":"https://github.com/elviswolcott.png","key":"elviswolcott","page":null},{"name":"Favour Kelvin","alias":"fakela","url":"https://github.com/fakela","imageURL":"https://github.com/fakela.png","key":"fakela","page":null},{"name":"Fanny","alias":"fanny","url":"https://github.com/fanny","imageURL":"https://github.com/fanny.png","key":"fanny","page":null},{"name":"GermaVinsmoke","alias":"GermaVinsmoke","url":"https://github.com/GermaVinsmoke","imageURL":"https://github.com/GermaVinsmoke.png","key":"GermaVinsmoke","page":null},{"name":"iamkun","alias":"iamkun","url":"https://github.com/iamkun","imageURL":"https://github.com/iamkun.png","key":"iamkun","page":null},{"name":"Jefferson Licet","alias":"jeffersonlicet","url":"https://github.com/jeffersonlicet","imageURL":"https://github.com/jeffersonlicet.png","key":"jeffersonlicet","page":null},{"name":"KohheePeace","alias":"KohheePeace","url":"https://github.com/KohheePeace","imageURL":"https://github.com/KohheePeace.png","key":"KohheePeace","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Luke Collier","alias":"lukecollier","url":"https://github.com/lukecollier","imageURL":"https://github.com/lukecollier.png","key":"lukecollier","page":null},{"name":"mohrash92","alias":"mohrash92","url":"https://github.com/mohrash92","imageURL":"https://github.com/mohrash92.png","key":"mohrash92","page":null},{"name":"Ben Gubler","alias":"nebrelbug","url":"https://github.com/nebrelbug","imageURL":"https://github.com/nebrelbug.png","key":"nebrelbug","page":null},{"name":"Nisar Hassan Naqvi","alias":"nisarhassan12","url":"https://github.com/nisarhassan12","imageURL":"https://github.com/nisarhassan12.png","key":"nisarhassan12","page":null},{"name":"Paul Armstrong","alias":"paularmstrong","url":"https://github.com/paularmstrong","imageURL":"https://github.com/paularmstrong.png","key":"paularmstrong","page":null},{"name":"Linus L\xe5ngberg","alias":"phoqe","url":"https://github.com/phoqe","imageURL":"https://github.com/phoqe.png","key":"phoqe","page":null},{"name":"Ram\xf3n Lamana","alias":"rlamana","url":"https://github.com/rlamana","imageURL":"https://github.com/rlamana.png","key":"rlamana","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Theodore Chu","alias":"TheodoreChu","url":"https://github.com/TheodoreChu","imageURL":"https://github.com/TheodoreChu.png","key":"TheodoreChu","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null},{"name":"ZachJW34","alias":"ZachJW34","url":"https://github.com/ZachJW34","imageURL":"https://github.com/ZachJW34.png","key":"ZachJW34","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-04-01T20:00","authors":["38elements","ayshiff","bravo-kernel","elviswolcott","fakela","fanny","GermaVinsmoke","iamkun","jeffersonlicet","KohheePeace","lex111","lukecollier","mohrash92","nebrelbug","nisarhassan12","paularmstrong","phoqe","rlamana","SamChou19815","Simek","slorber","TheodoreChu","yangshun","ZachJW34"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.50","permalink":"/changelog/2.0.0-alpha.50"},"nextItem":{"title":"2.0.0-alpha.48","permalink":"/changelog/2.0.0-alpha.48"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#2487](https://github.com/facebook/docusaurus/pull/2487) feat(v2): nav dropdown ([@yangshun](https://github.com/yangshun))\\n - [#2456](https://github.com/facebook/docusaurus/pull/2456) feat(v2): support comments for code highlighting ([@elviswolcott](https://github.com/elviswolcott))\\n - [#2330](https://github.com/facebook/docusaurus/pull/2330) feat(v2): add announcement bar ([@lex111](https://github.com/lex111))\\n - [#2440](https://github.com/facebook/docusaurus/pull/2440) feat(v2): make clickable sidebar logo ([@lex111](https://github.com/lex111))\\n - [#2366](https://github.com/facebook/docusaurus/pull/2366) feat(v2): support syncing tab choices ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus`\\n - [#2323](https://github.com/facebook/docusaurus/pull/2323) feat(v2): add a way to exclude components from build-time prerendering ([@lex111](https://github.com/lex111))\\n - [#2469](https://github.com/facebook/docusaurus/pull/2469) feat(v2): add TypeScript support for theme components ([@SamChou19815](https://github.com/SamChou19815))\\n - [#2455](https://github.com/facebook/docusaurus/pull/2455) feat(v2): add @theme-original alias to give access to pre-swizzled components ([@yangshun](https://github.com/yangshun))\\n - [#2438](https://github.com/facebook/docusaurus/pull/2438) feat(v2): add version to page\'s generated meta tags ([@lex111](https://github.com/lex111))\\n- `docusaurus-types`, `docusaurus`\\n - [#2474](https://github.com/facebook/docusaurus/pull/2474) feat(v2): add ability to create unminimized bundles ([@lex111](https://github.com/lex111))\\n - [#2417](https://github.com/facebook/docusaurus/pull/2417) feat(v2): allow custom output directory for build ([@ZachJW34](https://github.com/ZachJW34))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2346](https://github.com/facebook/docusaurus/pull/2346) feat(v2): add filename in CodeBlock ([@KohheePeace](https://github.com/KohheePeace))\\n- `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#2444](https://github.com/facebook/docusaurus/pull/2444) feat(v2): allow nested sidebar category shorthand syntax ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#2483](https://github.com/facebook/docusaurus/pull/2483) fix(v2): do not render sidebar logo if used sticky navbar ([@lex111](https://github.com/lex111))\\n - [#2475](https://github.com/facebook/docusaurus/pull/2475) fix(v2): make correct Open Graph title for doc page ([@lex111](https://github.com/lex111))\\n - [#2436](https://github.com/facebook/docusaurus/pull/2436) fix(v2): update twitter:card to summary_large_image ([@lex111](https://github.com/lex111))\\n - [#2434](https://github.com/facebook/docusaurus/pull/2434) fix(v2): add support dark logo for sidebar logo ([@lex111](https://github.com/lex111))\\n - [#2420](https://github.com/facebook/docusaurus/pull/2420) fix(v2): fix external URL for og:image tag ([@38elements](https://github.com/38elements))\\n- `docusaurus-theme-live-codeblock`\\n - [#2480](https://github.com/facebook/docusaurus/pull/2480) fix(v2): various improvements for accessibility ([@lex111](https://github.com/lex111))\\n- `docusaurus-mdx-loader`, `docusaurus-theme-classic`\\n - [#2479](https://github.com/facebook/docusaurus/pull/2479) chore(v2): upgrade MDX to 1.5.8 ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2476](https://github.com/facebook/docusaurus/pull/2476) fix(v2): improve code block scroll accessibility ([@lex111](https://github.com/lex111))\\n - [#2442](https://github.com/facebook/docusaurus/pull/2442) fix(v2): various improvements for accessibility ([@lex111](https://github.com/lex111))\\n- `docusaurus-preset-classic`, `docusaurus-theme-classic`\\n - [#2477](https://github.com/facebook/docusaurus/pull/2477) chore(v2): upgrade remark-admonitions for a11y fixes ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2462](https://github.com/facebook/docusaurus/pull/2462) fix(v2): do not force terminate building when bundle analyzer is on ([@lex111](https://github.com/lex111))\\n - [#2393](https://github.com/facebook/docusaurus/pull/2393) fix(v2): normalize location for route matching ([@rlamana](https://github.com/rlamana))\\n - [#2443](https://github.com/facebook/docusaurus/pull/2443) fix(v2): always exit after successful build ([@mohrash92](https://github.com/mohrash92))\\n - [#2437](https://github.com/facebook/docusaurus/pull/2437) fix(v2): do not force terminate building if client bundle failed in development mode ([@lex111](https://github.com/lex111))\\n - [#2424](https://github.com/facebook/docusaurus/pull/2424) fix(v2): make correct internal link check ([@lex111](https://github.com/lex111))\\n- `docusaurus-preset-classic`\\n - [#2451](https://github.com/facebook/docusaurus/pull/2451) fix(v2): pass options to remark-admonitions ([@elviswolcott](https://github.com/elviswolcott))\\n- `docusaurus-mdx-loader`\\n - [#2426](https://github.com/facebook/docusaurus/pull/2426) fix(v2): remove HTML from heading slug ([@lex111](https://github.com/lex111))\\n- `docusaurus-utils`\\n - [#2405](https://github.com/facebook/docusaurus/pull/2405) fix(v2): properly dedupe forward slashes in the entire URL path ([@rlamana](https://github.com/rlamana))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#2485](https://github.com/facebook/docusaurus/pull/2485) refactor(v2): remove unnecessary X-UA-Compatible meta tag ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`\\n - [#2460](https://github.com/facebook/docusaurus/pull/2460) refactor(v2): use single method package instead of whole Lodash package in blog plugin ([@Simek](https://github.com/Simek))\\n- Other\\n - [#2428](https://github.com/facebook/docusaurus/pull/2428) polish(v2): use npm-to-yarn for the npm2yarn remark plugin ([@nebrelbug](https://github.com/nebrelbug))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#2478](https://github.com/facebook/docusaurus/pull/2478) docs(v2): mark that in dev server some features may not work ([@lex111](https://github.com/lex111))\\n - [#2472](https://github.com/facebook/docusaurus/pull/2472) docs(v2): fix typo in deployment docs ([@GermaVinsmoke](https://github.com/GermaVinsmoke))\\n - [#2423](https://github.com/facebook/docusaurus/pull/2423) docs(v2): add Sass/SCSS under the styling section ([@rlamana](https://github.com/rlamana))\\n - [#2446](https://github.com/facebook/docusaurus/pull/2446) docs(v2): add docusaurus-plugin-sass to community plugins ([@rlamana](https://github.com/rlamana))\\n - [#2408](https://github.com/facebook/docusaurus/pull/2408) docs(v2): suggest Surge for quick deployment ([@fakela](https://github.com/fakela))\\n - [#2401](https://github.com/facebook/docusaurus/pull/2401) docs(v2): add resources page ([@yangshun](https://github.com/yangshun))\\n - [#2413](https://github.com/facebook/docusaurus/pull/2413) docs(v2): include appId key for Algolia ([@TheodoreChu](https://github.com/TheodoreChu))\\n - [#2411](https://github.com/facebook/docusaurus/pull/2411) docs:(v2): add Netlify configuration warning ([@bravo-kernel](https://github.com/bravo-kernel))\\n - [#2397](https://github.com/facebook/docusaurus/pull/2397) docs(v2):update alpha version to current version ([@fakela](https://github.com/fakela))\\n - [#2395](https://github.com/facebook/docusaurus/pull/2395) docs(v2): clarify instructions on docs-only mode ([@phoqe](https://github.com/phoqe))\\n- `docusaurus-init`\\n - [#2458](https://github.com/facebook/docusaurus/pull/2458) fix(v2): expand broken admonitions ([@elviswolcott](https://github.com/elviswolcott))\\n\\n## :house: Internal\\n\\n- `docusaurus`\\n - [#2461](https://github.com/facebook/docusaurus/pull/2461) chore(v2): upgrade react-dev-utils ([@lex111](https://github.com/lex111))\\n- Other\\n - [#2450](https://github.com/facebook/docusaurus/pull/2450) docs(v2): Adding Motion Layout to Docusaurus users ([@jeffersonlicet](https://github.com/jeffersonlicet))\\n - [#2450](https://github.com/facebook/docusaurus/pull/2450) docs(v2): Adding Motion Layout to Docusaurus users ([@jeffersonlicet](https://github.com/jeffersonlicet))\\n - [#2439](https://github.com/facebook/docusaurus/pull/2439) polish(v2): add logo for dark mode ([@lex111](https://github.com/lex111))\\n - [#2435](https://github.com/facebook/docusaurus/pull/2435) fix(v2): fix aspect ratio for Open Graph image ([@lex111](https://github.com/lex111))\\n - [#2433](https://github.com/facebook/docusaurus/pull/2433) chore(v2): ignore JetBrains editors .iml files ([@slorber](https://github.com/slorber))\\n - [#2416](https://github.com/facebook/docusaurus/pull/2416) docs(v2): Add Build Tracker to Showcase page ([@paularmstrong](https://github.com/paularmstrong))\\n - [#2388](https://github.com/facebook/docusaurus/pull/2388) docs(v1): showcase user Day.js ([@iamkun](https://github.com/iamkun))\\n- `stylelint-copyright`\\n - [#2415](https://github.com/facebook/docusaurus/pull/2415) misc: improve stylelint rule ([@ayshiff](https://github.com/ayshiff))\\n\\n## Committers: 24\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- Ben Gubler ([@nebrelbug](https://github.com/nebrelbug))\\n- Elvis Wolcott ([@elviswolcott](https://github.com/elviswolcott))\\n- Fanny ([@fanny](https://github.com/fanny))\\n- Favour Kelvin ([@fakela](https://github.com/fakela))\\n- Jefferson Licet ([@jeffersonlicet](https://github.com/jeffersonlicet))\\n- Kohhee Peace ([@KohheePeace](https://github.com/KohheePeace))\\n- Linus L\xe5ngberg ([@phoqe](https://github.com/phoqe))\\n- Luke Collier ([@lukecollier](https://github.com/lukecollier))\\n- Nisar Hassan Naqvi ([@nisarhassan12](https://github.com/nisarhassan12))\\n- Paul Armstrong ([@paularmstrong](https://github.com/paularmstrong))\\n- Ram\xf3n Lamana ([@rlamana](https://github.com/rlamana))\\n- R\xe9mi Doreau ([@ayshiff](https://github.com/ayshiff))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Theodore Chu ([@TheodoreChu](https://github.com/TheodoreChu))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- [@38elements](https://github.com/38elements)\\n- [@GermaVinsmoke](https://github.com/GermaVinsmoke)\\n- [@ZachJW34](https://github.com/ZachJW34)\\n- [@bravo-kernel](https://github.com/bravo-kernel)\\n- [@iamkun](https://github.com/iamkun)\\n- [@mohrash92](https://github.com/mohrash92)"},{"id":"/2.0.0-alpha.48","metadata":{"permalink":"/changelog/2.0.0-alpha.48","source":"@site/changelog/source/2.0.0-alpha.48.md","title":"2.0.0-alpha.48","description":"HOTFIX for 2.0.0-alpha.44.","date":"2020-03-08T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-03-08T20:00","authors":["lex111"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.49","permalink":"/changelog/2.0.0-alpha.49"},"nextItem":{"title":"2.0.0-alpha.44","permalink":"/changelog/2.0.0-alpha.44"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n**HOTFIX for 2.0.0-alpha.44**.\\n\\n## :bug: Bug Fix\\n\\n- Other\\n - [#2383](https://github.com/facebook/docusaurus/pull/2383) fix(v2): specify proper version for stylelint-copyright ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2382](https://github.com/facebook/docusaurus/pull/2382) fix(v2): add missing preset-typescript dependency ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2386](https://github.com/facebook/docusaurus/pull/2386) fix(v2): add missing prismjs dependency and Noop component ([@lex111](https://github.com/lex111))\\n\\n## Committers: 1\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))"},{"id":"/2.0.0-alpha.44","metadata":{"permalink":"/changelog/2.0.0-alpha.44","source":"@site/changelog/source/2.0.0-alpha.44.md","title":"2.0.0-alpha.44","description":"New Feature","date":"2020-03-08T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Amila Welihinda","alias":"amilajack","url":"https://github.com/amilajack","imageURL":"https://github.com/amilajack.png","key":"amilajack","page":null},{"name":"Paulus Schoutsen","alias":"balloob","url":"https://github.com/balloob","imageURL":"https://github.com/balloob.png","key":"balloob","page":null},{"name":"Robert","alias":"deniaz","url":"https://github.com/deniaz","imageURL":"https://github.com/deniaz.png","key":"deniaz","page":null},{"name":"Hassan Farid","alias":"hassanfarid","url":"https://github.com/hassanfarid","imageURL":"https://github.com/hassanfarid.png","key":"hassanfarid","page":null},{"name":"jartuso","alias":"jartuso","url":"https://github.com/jartuso","imageURL":"https://github.com/jartuso.png","key":"jartuso","page":null},{"name":"JavaScript Joe","alias":"jsjoeio","url":"https://github.com/jsjoeio","imageURL":"https://github.com/jsjoeio.png","key":"jsjoeio","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Mohamed Abdel Nasser","alias":"mohamedsgap","url":"https://github.com/mohamedsgap","imageURL":"https://github.com/mohamedsgap.png","key":"mohamedsgap","page":null},{"name":"Noah Silvera","alias":"Noah-Silvera","url":"https://github.com/Noah-Silvera","imageURL":"https://github.com/Noah-Silvera.png","key":"Noah-Silvera","page":null},{"name":"Linus L\xe5ngberg","alias":"phoqe","url":"https://github.com/phoqe","imageURL":"https://github.com/phoqe.png","key":"phoqe","page":null},{"name":"Ram\xf3n Lamana","alias":"rlamana","url":"https://github.com/rlamana","imageURL":"https://github.com/rlamana.png","key":"rlamana","page":null},{"name":"Sylvain Pace","alias":"s-pace","url":"https://github.com/s-pace","imageURL":"https://github.com/s-pace.png","key":"s-pace","page":null},{"name":"Scott Lee","alias":"scottilee","url":"https://github.com/scottilee","imageURL":"https://github.com/scottilee.png","key":"scottilee","page":null},{"name":"Theodore Chu","alias":"TheodoreChu","url":"https://github.com/TheodoreChu","imageURL":"https://github.com/TheodoreChu.png","key":"TheodoreChu","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null},{"name":"Zhenchao Cai","alias":"Zhencha0Cai","url":"https://github.com/Zhencha0Cai","imageURL":"https://github.com/Zhencha0Cai.png","key":"Zhencha0Cai","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-03-08T19:00","authors":["amilajack","balloob","deniaz","hassanfarid","jartuso","jsjoeio","lex111","mohamedsgap","Noah-Silvera","phoqe","rlamana","s-pace","scottilee","TheodoreChu","yangshun","Zhencha0Cai"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.48","permalink":"/changelog/2.0.0-alpha.48"},"nextItem":{"title":"2.0.0-alpha.43","permalink":"/changelog/2.0.0-alpha.43"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#2250](https://github.com/facebook/docusaurus/pull/2250) feat(v2): add support specify new languages for Prism ([@lex111](https://github.com/lex111))\\n - [#2344](https://github.com/facebook/docusaurus/pull/2344) feat(v2): allow specifying custom target for logo link ([@lex111](https://github.com/lex111))\\n - [#2327](https://github.com/facebook/docusaurus/pull/2327) feat(v2): add ability to use HTML in footer copyright ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`\\n - [#2335](https://github.com/facebook/docusaurus/pull/2335) feat(v2): add draft feature to blog posts ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`, `docusaurus-theme-classic`\\n - [#2303](https://github.com/facebook/docusaurus/pull/2303) docs(v2): Nav links activeBasePath ([@yangshun](https://github.com/yangshun))\\n- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus`\\n - [#2296](https://github.com/facebook/docusaurus/pull/2296) feat(v2): add ExecutionEnvironment API ([@yangshun](https://github.com/yangshun))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#2345](https://github.com/facebook/docusaurus/pull/2345) fix(v2): force terminate building if client bundle failed ([@lex111](https://github.com/lex111))\\n - [#2310](https://github.com/facebook/docusaurus/pull/2310) fix(v2): add @babel/preset-typescript to babel-loader ([@deniaz](https://github.com/deniaz))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2371](https://github.com/facebook/docusaurus/pull/2371) fix(v2): remove line break from end of code blocks ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`\\n - [#2326](https://github.com/facebook/docusaurus/pull/2326) fix(v2): linkify blog posts ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2324](https://github.com/facebook/docusaurus/pull/2324) fix(v2): properly set dark mode logo on build-time prerendering ([@lex111](https://github.com/lex111))\\n - [#2325](https://github.com/facebook/docusaurus/pull/2325) fix(v2): switch a toggle when system theme changed ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-pages`, `docusaurus-utils`\\n - [#2334](https://github.com/facebook/docusaurus/pull/2334) fix(v2): make proper path to pages in TS ([@lex111](https://github.com/lex111))\\n- Other\\n - [#2316](https://github.com/facebook/docusaurus/pull/2316) fix(v2): properly scale logo on IE 11 ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-search-algolia`\\n - [#2376](https://github.com/facebook/docusaurus/pull/2376) refactor(v2): clean up and improve Algolia styles ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#2372](https://github.com/facebook/docusaurus/pull/2372) chore(v2): upgrade Infima and remark-admonitions ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2367](https://github.com/facebook/docusaurus/pull/2367) refactor(v2): increase CSS specificity on application container ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`, `stylelint-copyright`\\n - [#2363](https://github.com/facebook/docusaurus/pull/2363) fix(v2): improve stylelint copyright header rule ([@yangshun](https://github.com/yangshun))\\n- `docusaurus-types`, `docusaurus`\\n - [#2342](https://github.com/facebook/docusaurus/pull/2342) chore(v2): mark tagline field as optional ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- [#2378](https://github.com/facebook/docusaurus/pull/2378) docs(v2): add section for docs-only mode ([@phoqe](https://github.com/phoqe))\\n- [#2357](https://github.com/facebook/docusaurus/pull/2357) docs(v2): fix getPathsToWatch() example syntax in lifecycle APIs ([@rlamana](https://github.com/rlamana))\\n- [#2351](https://github.com/facebook/docusaurus/pull/2351) docs(v2): add examples to plugin usage doc ([@Noah-Silvera](https://github.com/Noah-Silvera))\\n- [#2343](https://github.com/facebook/docusaurus/pull/2343) docs(v2): fix typo in remark-admonitions example ([@hassanfarid](https://github.com/hassanfarid))\\n- [#2340](https://github.com/facebook/docusaurus/pull/2340) docs(v2): mention about disabling Jekyll when using GitHub pages ([@amilajack](https://github.com/amilajack))\\n- [#2338](https://github.com/facebook/docusaurus/pull/2338) docs(v2): guide on upgrading Docusaurus within a project ([@TheodoreChu](https://github.com/TheodoreChu))\\n- [#2313](https://github.com/facebook/docusaurus/pull/2313) docs(v2): move the quotes to remark admonitions ([@Zhencha0Cai](https://github.com/Zhencha0Cai))\\n- [#2307](https://github.com/facebook/docusaurus/pull/2307) docs(v1): fix Windows instructions for GitHub Pages publishing ([@jartuso](https://github.com/jartuso))\\n- [#2300](https://github.com/facebook/docusaurus/pull/2300) docs(v2): make blog plugin config example valid ([@balloob](https://github.com/balloob))\\n- [#2289](https://github.com/facebook/docusaurus/pull/2289) docs(v2): add instructions on Travis CI deployment ([@mohamedsgap](https://github.com/mohamedsgap))\\n\\n## :house: Internal\\n\\n- Other\\n - [#2369](https://github.com/facebook/docusaurus/pull/2369) misc: mention about v2 in README file ([@lex111](https://github.com/lex111))\\n - [#2368](https://github.com/facebook/docusaurus/pull/2368) misc: add note about edits in versioned docs ([@lex111](https://github.com/lex111))\\n - [#2333](https://github.com/facebook/docusaurus/pull/2333) docs: update use of npm/yarn in contributing.md ([@jsjoeio](https://github.com/jsjoeio))\\n - [#2328](https://github.com/facebook/docusaurus/pull/2328) docs(v2): remove unwanted black line from DocSearch showcase image ([@s-pace](https://github.com/s-pace))\\n - [#2319](https://github.com/facebook/docusaurus/pull/2319) docs(v2): showcase user Algolia ([@scottilee](https://github.com/scottilee))\\n- `docusaurus-init`\\n - [#2322](https://github.com/facebook/docusaurus/pull/2322) docs(v2): fix misc styling ([@lex111](https://github.com/lex111))\\n\\n## Committers: 16\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Amila Welihinda ([@amilajack](https://github.com/amilajack))\\n- Hassan Farid ([@hassanfarid](https://github.com/hassanfarid))\\n- Joe Previte ([@jsjoeio](https://github.com/jsjoeio))\\n- Linus L\xe5ngberg ([@phoqe](https://github.com/phoqe))\\n- Mohamed Abdel Nasser ([@mohamedsgap](https://github.com/mohamedsgap))\\n- Noah Silvera ([@Noah-Silvera](https://github.com/Noah-Silvera))\\n- Paulus Schoutsen ([@balloob](https://github.com/balloob))\\n- Ram\xf3n Lamana ([@rlamana](https://github.com/rlamana))\\n- Robert ([@deniaz](https://github.com/deniaz))\\n- Scott Lee ([@scottilee](https://github.com/scottilee))\\n- Sylvain Pace ([@s-pace](https://github.com/s-pace))\\n- Theodore Chu ([@TheodoreChu](https://github.com/TheodoreChu))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- Zhenchao Cai ([@Zhencha0Cai](https://github.com/Zhencha0Cai))\\n- [@jartuso](https://github.com/jartuso)"},{"id":"/2.0.0-alpha.43","metadata":{"permalink":"/changelog/2.0.0-alpha.43","source":"@site/changelog/source/2.0.0-alpha.43.md","title":"2.0.0-alpha.43","description":"HOTFIX for 2.0.0-alpha.41.","date":"2020-02-18T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-02-18T20:00","authors":["lex111","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.44","permalink":"/changelog/2.0.0-alpha.44"},"nextItem":{"title":"2.0.0-alpha.41","permalink":"/changelog/2.0.0-alpha.41"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n**HOTFIX for 2.0.0-alpha.41**.\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#2292](https://github.com/facebook/docusaurus/pull/2292) chore(v2): update Infima to 0.2.0-alpha.4 ([@yangshun](https://github.com/yangshun))\\n - [#2291](https://github.com/facebook/docusaurus/pull/2291) fix(v2): fix build and deps install ([@lex111](https://github.com/lex111))\\n\\n## Committers: 2\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))"},{"id":"/2.0.0-alpha.41","metadata":{"permalink":"/changelog/2.0.0-alpha.41","source":"@site/changelog/source/2.0.0-alpha.41.md","title":"2.0.0-alpha.41","description":"New Feature","date":"2020-02-16T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"awalias","alias":"awalias","url":"https://github.com/awalias","imageURL":"https://github.com/awalias.png","key":"awalias","page":null},{"name":"Elie Dutheil","alias":"edwandr","url":"https://github.com/edwandr","imageURL":"https://github.com/edwandr.png","key":"edwandr","page":null},{"name":"Elvis Wolcott","alias":"elviswolcott","url":"https://github.com/elviswolcott","imageURL":"https://github.com/elviswolcott.png","key":"elviswolcott","page":null},{"name":"Evan Rubinton","alias":"erubi","url":"https://github.com/erubi","imageURL":"https://github.com/erubi.png","key":"erubi","page":null},{"name":"Gal Havivi","alias":"galhavivi","url":"https://github.com/galhavivi","imageURL":"https://github.com/galhavivi.png","key":"galhavivi","page":null},{"name":"Hendrik Bulens","alias":"hbulens","url":"https://github.com/hbulens","imageURL":"https://github.com/hbulens.png","key":"hbulens","page":null},{"name":"Ashley Jeffs","alias":"Jeffail","url":"https://github.com/Jeffail","imageURL":"https://github.com/Jeffail.png","key":"Jeffail","page":null},{"name":"Joshua Williams","alias":"jjwill","url":"https://github.com/jjwill","imageURL":"https://github.com/jjwill.png","key":"jjwill","page":null},{"name":"Joel Marcey","alias":"JoelMarcey","url":"https://github.com/JoelMarcey","imageURL":"https://github.com/JoelMarcey.png","key":"JoelMarcey","page":null},{"name":"Jonathan Delgado","alias":"jonathanrdelgado","url":"https://github.com/jonathanrdelgado","imageURL":"https://github.com/jonathanrdelgado.png","key":"jonathanrdelgado","page":null},{"name":"JavaScript Joe","alias":"jsjoeio","url":"https://github.com/jsjoeio","imageURL":"https://github.com/jsjoeio.png","key":"jsjoeio","page":null},{"name":"KohheePeace","alias":"KohheePeace","url":"https://github.com/KohheePeace","imageURL":"https://github.com/KohheePeace.png","key":"KohheePeace","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Mark Terrel","alias":"mterrel","url":"https://github.com/mterrel","imageURL":"https://github.com/mterrel.png","key":"mterrel","page":null},{"name":"Ond\u0159ej Nepo\u017Eitek","alias":"OndrejNepozitek","url":"https://github.com/OndrejNepozitek","imageURL":"https://github.com/OndrejNepozitek.png","key":"OndrejNepozitek","page":null},{"name":"Scott Dowding","alias":"sdowding","url":"https://github.com/sdowding","imageURL":"https://github.com/sdowding.png","key":"sdowding","page":null},{"name":"Hanseung Yoo","alias":"trustyoo86","url":"https://github.com/trustyoo86","imageURL":"https://github.com/trustyoo86.png","key":"trustyoo86","page":null},{"name":"Wei Gao","alias":"wgao19","url":"https://github.com/wgao19","imageURL":"https://github.com/wgao19.png","key":"wgao19","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-02-16T20:00","authors":["awalias","edwandr","elviswolcott","erubi","galhavivi","hbulens","Jeffail","jjwill","JoelMarcey","jonathanrdelgado","jsjoeio","KohheePeace","lex111","mterrel","OndrejNepozitek","sdowding","trustyoo86","wgao19"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.43","permalink":"/changelog/2.0.0-alpha.43"},"nextItem":{"title":"2.0.0-alpha.40","permalink":"/changelog/2.0.0-alpha.40"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-init`, `docusaurus-preset-classic`, `docusaurus-theme-classic`\\n - [#2224](https://github.com/facebook/docusaurus/pull/2224) feat(v2): add remark-admonitions to @docusaurus/preset-classic ([@elviswolcott](https://github.com/elviswolcott))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#2263](https://github.com/facebook/docusaurus/pull/2263) feat(v2): pluralize posts on tag\'s page ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2261](https://github.com/facebook/docusaurus/pull/2261) feat(v2): allow to specify different logo for dark mode ([@lex111](https://github.com/lex111))\\n - [#2253](https://github.com/facebook/docusaurus/pull/2253) feat(v2): allow specify custom link for logo ([@lex111](https://github.com/lex111))\\n - [#2255](https://github.com/facebook/docusaurus/pull/2255) feat(v2): add site title to meta title ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-pages`, `docusaurus-utils`, `docusaurus`\\n - [#2221](https://github.com/facebook/docusaurus/pull/2221) feat(v2): allow for TypeScript pages and components ([@jonathanrdelgado](https://github.com/jonathanrdelgado))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-theme-classic`\\n - [#2235](https://github.com/facebook/docusaurus/pull/2235) fix(v2): show doc sidebar on pages with case-sensitive paths ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2285](https://github.com/facebook/docusaurus/pull/2285) fix(v2): fix codeblock copy button not including blank lines ([@KohheePeace](https://github.com/KohheePeace))\\n - [#2241](https://github.com/facebook/docusaurus/pull/2241) fix(v2): make code blocks scrollable ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2259](https://github.com/facebook/docusaurus/pull/2259) fix(v2): use site title if enabled blog-only mode ([@lex111](https://github.com/lex111))\\n - [#2248](https://github.com/facebook/docusaurus/pull/2248) fix(v2): adjust correct behavior of navbar when active anchor ([@lex111](https://github.com/lex111))\\n - [#2235](https://github.com/facebook/docusaurus/pull/2235) fix(v2): show doc sidebar on pages with case-sensitive paths ([@lex111](https://github.com/lex111))\\n - [#2162](https://github.com/facebook/docusaurus/pull/2162) fix(v2): unify anchor behavior ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-search-algolia`\\n - [#2262](https://github.com/facebook/docusaurus/pull/2262) fix(v2): remove focus on search input when hovering over it ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#2240](https://github.com/facebook/docusaurus/pull/2240) fix(v2): hide read more button on non-truncated posts ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2237](https://github.com/facebook/docusaurus/pull/2237) fix(v2): include base url in 404 route ([@lex111](https://github.com/lex111))\\n- `docusaurus-mdx-loader`\\n - [#2236](https://github.com/facebook/docusaurus/pull/2236) fix(v2): escape link text in TOC ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-live-codeblock`\\n - [#2227](https://github.com/facebook/docusaurus/pull/2227) fix(v2): render correct theme for live code blocks on SSR ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2254](https://github.com/facebook/docusaurus/pull/2254) refactor(v2): avoid to use raw theme values ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- [#2281](https://github.com/facebook/docusaurus/pull/2281) docs: update windows deploy command ([@OndrejNepozitek](https://github.com/OndrejNepozitek))\\n- [#2257](https://github.com/facebook/docusaurus/pull/2257) docs(v2): require using JSX flavored style objects in mdx ([@wgao19](https://github.com/wgao19))\\n- [#2251](https://github.com/facebook/docusaurus/pull/2251) docs(v2): collapsible categories in sidebar ([@lex111](https://github.com/lex111))\\n- [#2218](https://github.com/facebook/docusaurus/pull/2218) docs(v2): update link to available prism themes ([@jsjoeio](https://github.com/jsjoeio))\\n- [#2216](https://github.com/facebook/docusaurus/pull/2216) docs(v2): fix plugin-content-docs config comment typo ([@sdowding](https://github.com/sdowding))\\n\\n## :house: Internal\\n\\n- Other\\n - [#2256](https://github.com/facebook/docusaurus/pull/2256) fix(v2): add title for Feedback page ([@lex111](https://github.com/lex111))\\n - [#2246](https://github.com/facebook/docusaurus/pull/2246) docs(v2): add Benthos to showcase ([@Jeffail](https://github.com/Jeffail))\\n - [#2242](https://github.com/facebook/docusaurus/pull/2242) docs(v1): showcase user Jafar ([@galhavivi](https://github.com/galhavivi))\\n - [#2238](https://github.com/facebook/docusaurus/pull/2238) docs(v1): showcase Dime ([@hbulens](https://github.com/hbulens))\\n - [#2233](https://github.com/facebook/docusaurus/pull/2233) docs(v2): showcase user supabase ([@awalias](https://github.com/awalias))\\n - [#2226](https://github.com/facebook/docusaurus/pull/2226) docs(v1): showcase user Adapt.js ([@mterrel](https://github.com/mterrel))\\n - [#2225](https://github.com/facebook/docusaurus/pull/2225) docs(v1): add The Diff Podcast to users ([@JoelMarcey](https://github.com/JoelMarcey))\\n - [#2219](https://github.com/facebook/docusaurus/pull/2219) chore(v1): Updated users list, removing sites not using docusaurus ([@jjwill](https://github.com/jjwill))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#2239](https://github.com/facebook/docusaurus/pull/2239) chore(eslint): require curly brackets on all blocks ([@lex111](https://github.com/lex111))\\n\\n## Committers: 18\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Ashley Jeffs ([@Jeffail](https://github.com/Jeffail))\\n- Elie Dutheil ([@edwandr](https://github.com/edwandr))\\n- Elvis Wolcott ([@elviswolcott](https://github.com/elviswolcott))\\n- Evan Rubinton ([@erubi](https://github.com/erubi))\\n- Gal Havivi ([@galhavivi](https://github.com/galhavivi))\\n- Hanseung Yoo ([@trustyoo86](https://github.com/trustyoo86))\\n- Hendrik Bulens ([@hbulens](https://github.com/hbulens))\\n- JavaScript Joe ([@jsjoeio](https://github.com/jsjoeio))\\n- Joel Marcey ([@JoelMarcey](https://github.com/JoelMarcey))\\n- Jonathan Delgado ([@jonathanrdelgado](https://github.com/jonathanrdelgado))\\n- Joshua Williams ([@jjwill](https://github.com/jjwill))\\n- KohheePeace ([@KohheePeace](https://github.com/KohheePeace))\\n- Mark Terrel ([@mterrel](https://github.com/mterrel))\\n- Ond\u0159ej Nepo\u017Eitek ([@OndrejNepozitek](https://github.com/OndrejNepozitek))\\n- Scott Dowding ([@sdowding](https://github.com/sdowding))\\n- Wei Gao ([@wgao19](https://github.com/wgao19))\\n- [@awalias](https://github.com/awalias)"},{"id":"/2.0.0-alpha.40","metadata":{"permalink":"/changelog/2.0.0-alpha.40","source":"@site/changelog/source/2.0.0-alpha.40.md","title":"2.0.0-alpha.40","description":"New Feature","date":"2019-12-25T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Endi","alias":"endiliey","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null},{"name":"Janko Marohni\u0107","alias":"janko","url":"https://github.com/janko","imageURL":"https://github.com/janko.png","key":"janko","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Nick McCurdy","alias":"nickmccurdy","url":"https://github.com/nickmccurdy","imageURL":"https://github.com/nickmccurdy.png","key":"nickmccurdy","page":null},{"name":"t11s","alias":"TransmissionsDev","url":"https://github.com/TransmissionsDev","imageURL":"https://github.com/TransmissionsDev.png","key":"TransmissionsDev","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2019-12-25T20:00","authors":["endiliey","janko","lex111","nickmccurdy","TransmissionsDev","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.41","permalink":"/changelog/2.0.0-alpha.41"},"nextItem":{"title":"2.0.0-alpha.39","permalink":"/changelog/2.0.0-alpha.39"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#2117](https://github.com/facebook/docusaurus/pull/2117) feat(v2): auto switch theme depending on the system theme ([@lex111](https://github.com/lex111))\\n - [#2055](https://github.com/facebook/docusaurus/pull/2055) feat(v2): hide navbar on scroll ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#2145](https://github.com/facebook/docusaurus/pull/2145) fix(v2): remove style-loader, use minicssextract in both dev & prod ([@endiliey](https://github.com/endiliey))\\n - [#2122](https://github.com/facebook/docusaurus/pull/2122) fix(v2): dont collapse whitespace in minified html ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`\\n - [#2105](https://github.com/facebook/docusaurus/pull/2105) fix(v2): move metadata export after compiling MDX to avoid weird MDX parsing error. ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-theme-classic`\\n - [#2113](https://github.com/facebook/docusaurus/pull/2113) fix(v2): set stored theme only if it exists ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#2129](https://github.com/facebook/docusaurus/pull/2129) fix(v2): disable scroll while mobile menu open ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#2127](https://github.com/facebook/docusaurus/pull/2127) refactor(v2): toggle data-theme with vanilla js instead of react helmet ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#2125](https://github.com/facebook/docusaurus/pull/2125) feat(v2): lazy load algolia css so its not render blocking ([@endiliey](https://github.com/endiliey))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#2135](https://github.com/facebook/docusaurus/pull/2135) docs(v1): add space between \\"out\\" and \\"Docusaurus\\" ([@TransmissionsDev](https://github.com/TransmissionsDev))\\n - [#2128](https://github.com/facebook/docusaurus/pull/2128) docs(v1): showcase user Shrine ([@janko](https://github.com/janko))\\n - [#2110](https://github.com/facebook/docusaurus/pull/2110) docs(v2): fix pages routing inaccurate info ([@endiliey](https://github.com/endiliey))\\n - [#2106](https://github.com/facebook/docusaurus/pull/2106) fix(v2): add missing hyphen in color generator ([@lex111](https://github.com/lex111))\\n - [#2104](https://github.com/facebook/docusaurus/pull/2104) feat(v2): add color generator for primary colors ([@yangshun](https://github.com/yangshun))\\n - [#2103](https://github.com/facebook/docusaurus/pull/2103) docs: mention about moving docs directory into website ([@yangshun](https://github.com/yangshun))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2114](https://github.com/facebook/docusaurus/pull/2114) fix(v2): add syntax highlight to generated colors ([@lex111](https://github.com/lex111))\\n\\n## :house: Internal\\n\\n- Other\\n - [#2126](https://github.com/facebook/docusaurus/pull/2126) docs: promote Docusaurus 2 usage ([@yangshun](https://github.com/yangshun))\\n - [#2119](https://github.com/facebook/docusaurus/pull/2119) fix(v2): align GH button in vertical center ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`\\n - [#2124](https://github.com/facebook/docusaurus/pull/2124) feat(v2): add Facebook Docusaurus 2 template ([@yangshun](https://github.com/yangshun))\\n- `docusaurus`\\n - [#2111](https://github.com/facebook/docusaurus/pull/2111) feat(v2): explicit babel/runtime version ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-1.x`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-theme-live-codeblock`, `docusaurus`\\n - [#2102](https://github.com/facebook/docusaurus/pull/2102) misc: add command to run prettier on docs ([@yangshun](https://github.com/yangshun))\\n\\n## :running: Performance\\n\\n- `docusaurus`\\n - [#2118](https://github.com/facebook/docusaurus/pull/2118) perf(v2): reduce HTML payload by eliminating chunk-map ([@endiliey](https://github.com/endiliey))\\n - [#2116](https://github.com/facebook/docusaurus/pull/2116) feat(v2): minify html ([@endiliey](https://github.com/endiliey))\\n\\n## Committers: 6\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Endi ([@endiliey](https://github.com/endiliey))\\n- Janko Marohni\u0107 ([@janko](https://github.com/janko))\\n- Nick McCurdy ([@nickmccurdy](https://github.com/nickmccurdy))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- t11s ([@TransmissionsDev](https://github.com/TransmissionsDev))"},{"id":"/2.0.0-alpha.39","metadata":{"permalink":"/changelog/2.0.0-alpha.39","source":"@site/changelog/source/2.0.0-alpha.39.md","title":"2.0.0-alpha.39","description":"Bug Fix","date":"2019-12-07T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Endi","alias":"endiliey","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2019-12-07T20:00","authors":["endiliey"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.40","permalink":"/changelog/2.0.0-alpha.40"},"nextItem":{"title":"2.0.0-alpha.38","permalink":"/changelog/2.0.0-alpha.38"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#2099](https://github.com/facebook/docusaurus/pull/2099) fix(v2): escape import path on windows ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`\\n - [#2095](https://github.com/facebook/docusaurus/pull/2095) fix(v2): metadata error if markdown does not have ending line ([@endiliey](https://github.com/endiliey))\\n\\n## :house: Internal\\n\\n- Other\\n - [#2100](https://github.com/facebook/docusaurus/pull/2100) chore(CI): docusaurus build on Windows with GitHub actions ([@endiliey](https://github.com/endiliey))\\n- `docusaurus`\\n - [#2096](https://github.com/facebook/docusaurus/pull/2096) feat(v2): better & nice looking error overlay ([@endiliey](https://github.com/endiliey))\\n\\n## Committers: 1\\n\\n- Endi ([@endiliey](https://github.com/endiliey))"},{"id":"/2.0.0-alpha.38","metadata":{"permalink":"/changelog/2.0.0-alpha.38","source":"@site/changelog/source/2.0.0-alpha.38.md","title":"2.0.0-alpha.38","description":"Breaking Change","date":"2019-12-06T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Endi","alias":"endiliey","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null},{"name":"KYY","alias":"FeynmanDNA","url":"https://github.com/FeynmanDNA","imageURL":"https://github.com/FeynmanDNA.png","key":"FeynmanDNA","page":null},{"name":"kaichu","alias":"qshiwu","url":"https://github.com/qshiwu","imageURL":"https://github.com/qshiwu.png","key":"qshiwu","page":null},{"name":"Shivangna Kaistha","alias":"shivangna","url":"https://github.com/shivangna","imageURL":"https://github.com/shivangna.png","key":"shivangna","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2019-12-06T20:00","authors":["endiliey","FeynmanDNA","qshiwu","shivangna"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.39","permalink":"/changelog/2.0.0-alpha.39"},"nextItem":{"title":"2.0.0-alpha.37","permalink":"/changelog/2.0.0-alpha.37"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-utils`\\n - [#2088](https://github.com/facebook/docusaurus/pull/2088) perf(v2): smaller bundlesize by embedding metadata to content ([@endiliey](https://github.com/endiliey))\\n\\nIf you have swizzled any Docs/Blog component that depends on metadata, you\'ll have to update. If you haven\'t, no action is needed.\\n\\nFor example, if you\'ve swizzled `@theme/DocItem`. You\'ll have to update\\n\\n```diff\\n- const {metadata, content: DocContent} = props;\\n+ const {content: DocContent} = props;\\n+ const {metadata} = DocContent;\\n```\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#2086](https://github.com/facebook/docusaurus/pull/2086) fix(v2): windows compatibility regression ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-plugin-ideal-image`\\n - [#2074](https://github.com/facebook/docusaurus/pull/2074) fix(v2): fix plugin-ideal-image breaking website (exports not defined) ([@endiliey](https://github.com/endiliey))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-mdx-loader`\\n - [#2085](https://github.com/facebook/docusaurus/pull/2085) misc(v2): update mdx loader plugin README ([@shivangna](https://github.com/shivangna))\\n\\n## :house: Internal\\n\\n- `docusaurus-1.x`\\n - [#2087](https://github.com/facebook/docusaurus/pull/2087) fix(v1): add key to versions.map in versions.js ([@FeynmanDNA](https://github.com/FeynmanDNA))\\n - [#2083](https://github.com/facebook/docusaurus/pull/2083) refactor(v1): fix props for ProjectTitle ([@FeynmanDNA](https://github.com/FeynmanDNA))\\n- `docusaurus`\\n - [#2081](https://github.com/facebook/docusaurus/pull/2081) refactor(v2): move scripts/stylesheets injection to server side ([@endiliey](https://github.com/endiliey))\\n - [#2080](https://github.com/facebook/docusaurus/pull/2080) refactor(v2): minor code refactoring on component creator ([@endiliey](https://github.com/endiliey))\\n\\n## :running: Performance\\n\\n- `docusaurus-utils`\\n - [#2089](https://github.com/facebook/docusaurus/pull/2089) perf(v2): improve dev build time by not overwriting file if possible ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-theme-search-algolia`\\n - [#2079](https://github.com/facebook/docusaurus/pull/2079) perf(v2): algolia search result no longer cause full page refresh ([@endiliey](https://github.com/endiliey))\\n - [#2076](https://github.com/facebook/docusaurus/pull/2076) perf(v2): load algolia JS only when user interacts with search ([@endiliey](https://github.com/endiliey))\\n\\n## Committers: 4\\n\\n- Endi ([@endiliey](https://github.com/endiliey))\\n- KYY ([@FeynmanDNA](https://github.com/FeynmanDNA))\\n- Shivangna Kaistha ([@shivangna](https://github.com/shivangna))\\n- kaichu ([@qshiwu](https://github.com/qshiwu))"},{"id":"/2.0.0-alpha.37","metadata":{"permalink":"/changelog/2.0.0-alpha.37","source":"@site/changelog/source/2.0.0-alpha.37.md","title":"2.0.0-alpha.37","description":"Breaking Change","date":"2019-12-01T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Binary Logic","alias":"binarylogic","url":"https://github.com/binarylogic","imageURL":"https://github.com/binarylogic.png","key":"binarylogic","page":null},{"name":"Endi","alias":"endiliey","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null},{"name":"Dongwoo Gim","alias":"gimdongwoo","url":"https://github.com/gimdongwoo","imageURL":"https://github.com/gimdongwoo.png","key":"gimdongwoo","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Wei Gao","alias":"wgao19","url":"https://github.com/wgao19","imageURL":"https://github.com/wgao19.png","key":"wgao19","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2019-12-01T20:00","authors":["binarylogic","endiliey","gimdongwoo","lex111","wgao19"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.38","permalink":"/changelog/2.0.0-alpha.38"},"nextItem":{"title":"2.0.0-alpha.36","permalink":"/changelog/2.0.0-alpha.36"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-init`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`\\n - [#2045](https://github.com/facebook/docusaurus/pull/2045) breaking(v2): minimum required nodejs version 8.9-> 8.10 so we can use es2017 ([@endiliey](https://github.com/endiliey))\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#2069](https://github.com/facebook/docusaurus/pull/2069) feat(v2): support prefers-color-scheme & fix dark mode FOUC on refresh ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-plugin-content-blog`\\n - [#2000](https://github.com/facebook/docusaurus/pull/2000) feat(v2): add meta RSS/Atom feed links to head ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus`\\n - [#2057](https://github.com/facebook/docusaurus/pull/2057) feat(v2): injectHtmlTags API to inject head and/or body html tags ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus`\\n - [#2032](https://github.com/facebook/docusaurus/pull/2032) feat(v2): allow non sidebar category to be first item of sidebar ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#1983](https://github.com/facebook/docusaurus/pull/1983) feat(v2): docs versioning \u2744\uFE0F\u{1F525} ([@endiliey](https://github.com/endiliey))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#2069](https://github.com/facebook/docusaurus/pull/2069) feat(v2): support prefers-color-scheme & fix dark mode FOUC on refresh ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-mdx-loader`\\n - [#2067](https://github.com/facebook/docusaurus/pull/2067) fix(v2): toc should not be broken for heading with html inline code ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-theme-classic`\\n - [#2064](https://github.com/facebook/docusaurus/pull/2064) fix(v2): markdown reference to file should not be page not found ([@endiliey](https://github.com/endiliey))\\n - [#2061](https://github.com/facebook/docusaurus/pull/2061) fix(v2): fix docs sidebar highlighting if link is partially matched ([@endiliey](https://github.com/endiliey))\\n- `docusaurus`\\n - [#2042](https://github.com/facebook/docusaurus/pull/2042) fix(v2): remove css order warning if css imports are not sorted ([@endiliey](https://github.com/endiliey))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#2066](https://github.com/facebook/docusaurus/pull/2066) refactor(v2): add title attribute to anchor link ([@lex111](https://github.com/lex111))\\n - [#1990](https://github.com/facebook/docusaurus/pull/1990) refactor(v2): make better a11y for tabs ([@lex111](https://github.com/lex111))\\n - [#2034](https://github.com/facebook/docusaurus/pull/2034) feat(v2): style sidebar on overflow ([@endiliey](https://github.com/endiliey))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#2068](https://github.com/facebook/docusaurus/pull/2068) docs(v2): quick proofread docs ([@endiliey](https://github.com/endiliey))\\n - [#2047](https://github.com/facebook/docusaurus/pull/2047) docs(v2): add manual migration guide for versioning ([@endiliey](https://github.com/endiliey))\\n - [#2036](https://github.com/facebook/docusaurus/pull/2036) docs(v2): Reorganize migration guide ([@wgao19](https://github.com/wgao19))\\n - [#2052](https://github.com/facebook/docusaurus/pull/2052) fix(v2): make proper spelling of Yarn in tabs ([@lex111](https://github.com/lex111))\\n - [#2040](https://github.com/facebook/docusaurus/pull/2040) docs(v2): showcase user vector.dev :) ([@binarylogic](https://github.com/binarylogic))\\n - [#2038](https://github.com/facebook/docusaurus/pull/2038) docs(v2): add documentation on versioning ([@endiliey](https://github.com/endiliey))\\n - [#2037](https://github.com/facebook/docusaurus/pull/2037) docs(v2): display yarn and npm command on website ([@endiliey](https://github.com/endiliey))\\n - [#2051](https://github.com/facebook/docusaurus/pull/2051) docs(v2): more examples on lifecycle apis, cleanup ([@endiliey](https://github.com/endiliey))\\n\\n## :house: Internal\\n\\n- `docusaurus-plugin-content-blog`\\n - [#2072](https://github.com/facebook/docusaurus/pull/2072) refactor(v2): stronger typing for blog plugin ([@endiliey](https://github.com/endiliey))\\n- `docusaurus`\\n - [#2060](https://github.com/facebook/docusaurus/pull/2060) fix(v2): clean generated manifest from previous build so we dont use the wrong one ([@endiliey](https://github.com/endiliey))\\n - [#2033](https://github.com/facebook/docusaurus/pull/2033) refactor(v2): move unused generated files out from build folder ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-types`, `docusaurus`\\n - [#2043](https://github.com/facebook/docusaurus/pull/2043) refactor(v2): stronger typing for route gen ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-ideal-image`, `docusaurus-types`, `docusaurus`\\n - [#2044](https://github.com/facebook/docusaurus/pull/2044) chore(v2): bump deps ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#2029](https://github.com/facebook/docusaurus/pull/2029) chore(v2): bump deps and remove unused deps ([@endiliey](https://github.com/endiliey))\\n\\n## :running: Performance\\n\\n- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`\\n - [#2070](https://github.com/facebook/docusaurus/pull/2070) perf(v2): more performant gtag and analytics plugin ([@endiliey](https://github.com/endiliey))\\n- `docusaurus`\\n - [#2046](https://github.com/facebook/docusaurus/pull/2046) perf(v2): use webpack future version of asset emitting logic to free memory ([@endiliey](https://github.com/endiliey))\\n - [#2039](https://github.com/facebook/docusaurus/pull/2039) perf(v2): replace unnecessary json stringify(string) with inline string ([@endiliey](https://github.com/endiliey))\\n - [#2035](https://github.com/facebook/docusaurus/pull/2035) perf(v2): use @babel/runtime plugin to reduce codesize ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-plugin-content-docs`\\n - [#2054](https://github.com/facebook/docusaurus/pull/2054) perf(v2): unblock metadata processing when possible ([@endiliey](https://github.com/endiliey))\\n\\n## Committers: 5\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Binary Logic ([@binarylogic](https://github.com/binarylogic))\\n- Dongwoo Gim ([@gimdongwoo](https://github.com/gimdongwoo))\\n- Endi ([@endiliey](https://github.com/endiliey))\\n- Wei Gao ([@wgao19](https://github.com/wgao19))"},{"id":"/2.0.0-alpha.36","metadata":{"permalink":"/changelog/2.0.0-alpha.36","source":"@site/changelog/source/2.0.0-alpha.36.md","title":"2.0.0-alpha.36","description":"Breaking Change","date":"2019-11-22T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Endi","alias":"endiliey","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2019-11-22T20:00","authors":["endiliey","lex111","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.37","permalink":"/changelog/2.0.0-alpha.37"},"nextItem":{"title":"2.0.0-alpha.35","permalink":"/changelog/2.0.0-alpha.35"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-init`, `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#1989](https://github.com/facebook/docusaurus/pull/1989) misc(v2): change blog front matter to snake_case ([@yangshun](https://github.com/yangshun))\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#2012](https://github.com/facebook/docusaurus/pull/2012) feat(v2): allow hiding docs table of contents ([@yangshun](https://github.com/yangshun))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#2007](https://github.com/facebook/docusaurus/pull/2007) feat(v2): only create one css file to avoid code-split css loading problem ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-theme-classic`\\n - [#2005](https://github.com/facebook/docusaurus/pull/2005) fix(v2): adjust first-level heading offset ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#2013](https://github.com/facebook/docusaurus/pull/2013) refactor(v2): split out dark mode toggle so it is easily swizzle-able ([@endiliey](https://github.com/endiliey))\\n - [#2017](https://github.com/facebook/docusaurus/pull/2017) feat(v2): style right sidebar scrollbar when overflow ([@endiliey](https://github.com/endiliey))\\n - [#2003](https://github.com/facebook/docusaurus/pull/2003) refactor(v2): improve semantic markup of blog ([@lex111](https://github.com/lex111))\\n\\n## :house: Internal\\n\\n- `docusaurus`\\n - [#2024](https://github.com/facebook/docusaurus/pull/2024) test(v2): babel exclude transpilation logic to prevent regression ([@endiliey](https://github.com/endiliey))\\n - [#2014](https://github.com/facebook/docusaurus/pull/2014) feat(v2): add meta generator docusaurus ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-ideal-image`\\n - [#2015](https://github.com/facebook/docusaurus/pull/2015) chore(v2): bump & remove unused deps ([@endiliey](https://github.com/endiliey))\\n- Other\\n - [#2009](https://github.com/facebook/docusaurus/pull/2009) misc(v2): branding update ([@yangshun](https://github.com/yangshun))\\n\\n## :memo: Documentation\\n\\n- [#2010](https://github.com/facebook/docusaurus/pull/2010) docs(v2): misc updates ([@yangshun](https://github.com/yangshun))\\n\\n## Committers: 3\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Endi ([@endiliey](https://github.com/endiliey))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))"},{"id":"/2.0.0-alpha.35","metadata":{"permalink":"/changelog/2.0.0-alpha.35","source":"@site/changelog/source/2.0.0-alpha.35.md","title":"2.0.0-alpha.35","description":"New Feature","date":"2019-11-17T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Endi","alias":"endiliey","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null},{"name":"Eric Carboni","alias":"ericcarboni","url":"https://github.com/ericcarboni","imageURL":"https://github.com/ericcarboni.png","key":"ericcarboni","page":null},{"name":"Jamie Davenport","alias":"jamiedavenport","url":"https://github.com/jamiedavenport","imageURL":"https://github.com/jamiedavenport.png","key":"jamiedavenport","page":null},{"name":"Nick McCormick","alias":"kenning","url":"https://github.com/kenning","imageURL":"https://github.com/kenning.png","key":"kenning","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Vincent van der Walt","alias":"vinnytheviking","url":"https://github.com/vinnytheviking","imageURL":"https://github.com/vinnytheviking.png","key":"vinnytheviking","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2019-11-17T20:00","authors":["endiliey","ericcarboni","jamiedavenport","kenning","lex111","vinnytheviking"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.36","permalink":"/changelog/2.0.0-alpha.36"},"nextItem":{"title":"2.0.0-alpha.34","permalink":"/changelog/2.0.0-alpha.34"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#1965](https://github.com/facebook/docusaurus/pull/1965) feat(v2): add ability specify link in footer logo ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-mdx-loader`, `docusaurus-theme-classic`\\n - [#1992](https://github.com/facebook/docusaurus/pull/1992) fix(v2): static phrasing content should be rendered correctly in TOC ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-theme-classic`\\n - [#1999](https://github.com/facebook/docusaurus/pull/1999) fix(v2): remove hashbang when click on category ([@lex111](https://github.com/lex111))\\n - [#1962](https://github.com/facebook/docusaurus/pull/1962) fix(v2): make not clickable post title on post item page ([@lex111](https://github.com/lex111))\\n - [#1980](https://github.com/facebook/docusaurus/pull/1980) fix(v2): remove invalid label attribute of footer links ([@lex111](https://github.com/lex111))\\n - [#1978](https://github.com/facebook/docusaurus/pull/1978) fix(v2): use regular div instead of main tag for wrapper layout page ([@lex111](https://github.com/lex111))\\n - [#1975](https://github.com/facebook/docusaurus/pull/1975) fix(v2): move header inside article tag in doc page ([@lex111](https://github.com/lex111))\\n - [#1974](https://github.com/facebook/docusaurus/pull/1974) fix(v2): remove invalid attributes of nav links ([@lex111](https://github.com/lex111))\\n - [#1963](https://github.com/facebook/docusaurus/pull/1963) fix(v2): remove empty containers when no data in blog pages ([@lex111](https://github.com/lex111))\\n - [#1966](https://github.com/facebook/docusaurus/pull/1966) fix(v2): remove duplicate meta tags ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`\\n - [#1994](https://github.com/facebook/docusaurus/pull/1994) fix(v2): throw error if first level item of a sidebar is not category ([@endiliey](https://github.com/endiliey))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-search-algolia`\\n - [#2001](https://github.com/facebook/docusaurus/pull/2001) fix(v2): improve UI of search ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#1991](https://github.com/facebook/docusaurus/pull/1991) fix(v2): remove accessible anchors via keyboard ([@lex111](https://github.com/lex111))\\n - [#1987](https://github.com/facebook/docusaurus/pull/1987) refactor(v2): replace h1 tag with h2 in blog list pages ([@lex111](https://github.com/lex111))\\n - [#1981](https://github.com/facebook/docusaurus/pull/1981) fix(v2): use tag time for showing last update of doc item ([@lex111](https://github.com/lex111))\\n - [#1977](https://github.com/facebook/docusaurus/pull/1977) feat(v2): add aria-label to read more links for a11y ([@lex111](https://github.com/lex111))\\n - [#1964](https://github.com/facebook/docusaurus/pull/1964) fix(v2): use tag time for showing post item date ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`\\n - [#1994](https://github.com/facebook/docusaurus/pull/1994) fix(v2): throw error if first level item of a sidebar is not category ([@endiliey](https://github.com/endiliey))\\n- Other\\n - [#1986](https://github.com/facebook/docusaurus/pull/1986) fix(v2): remove obsolete iframe attributes ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`\\n - [#1982](https://github.com/facebook/docusaurus/pull/1982) feat(v2): add FB link to footer ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`\\n - [#1968](https://github.com/facebook/docusaurus/pull/1968) refactor(v2): simplify blog truncate function ([@endiliey](https://github.com/endiliey))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#1988](https://github.com/facebook/docusaurus/pull/1988) docs(v2): fix syntax highlighting for YML code blocks ([@lex111](https://github.com/lex111))\\n - [#1976](https://github.com/facebook/docusaurus/pull/1976) docs(v2): Add section to blog document about feed location ([@vinnytheviking](https://github.com/vinnytheviking))\\n - [#1970](https://github.com/facebook/docusaurus/pull/1970) docs(v2): update configureWebpack utility functions ([@jamiedavenport](https://github.com/jamiedavenport))\\n- `docusaurus-1.x`\\n - [#1961](https://github.com/facebook/docusaurus/pull/1961) docs(v1): remove exclusive language ([@ericcarboni](https://github.com/ericcarboni))\\n\\n## :house: Internal\\n\\n- Other\\n - [#2002](https://github.com/facebook/docusaurus/pull/2002) fix(v2): fix browser window menu icon on smaller screen ([@lex111](https://github.com/lex111))\\n - [#1986](https://github.com/facebook/docusaurus/pull/1986) fix(v2): remove obsolete iframe attributes ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`\\n - [#1982](https://github.com/facebook/docusaurus/pull/1982) feat(v2): add FB link to footer ([@lex111](https://github.com/lex111))\\n- `docusaurus-1.x`, `docusaurus-init-1.x`, `docusaurus-init`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-types`, `docusaurus`\\n - [#1985](https://github.com/facebook/docusaurus/pull/1985) chore(v2): update dependencies ([@endiliey](https://github.com/endiliey))\\n\\n## :running: Performance\\n\\n- `docusaurus`\\n - [#1979](https://github.com/facebook/docusaurus/pull/1979) perf(v2): reduce main bundle size by using es5 if possible ([@endiliey](https://github.com/endiliey))\\n\\n## Committers: 6\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Endi ([@endiliey](https://github.com/endiliey))\\n- Eric Carboni ([@ericcarboni](https://github.com/ericcarboni))\\n- Jamie Davenport ([@jamiedavenport](https://github.com/jamiedavenport))\\n- Nick McCormick ([@kenning](https://github.com/kenning))\\n- Vincent van der Walt ([@vinnytheviking](https://github.com/vinnytheviking))"},{"id":"/2.0.0-alpha.34","metadata":{"permalink":"/changelog/2.0.0-alpha.34","source":"@site/changelog/source/2.0.0-alpha.34.md","title":"2.0.0-alpha.34","description":"New Feature","date":"2019-11-11T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Endi","alias":"endiliey","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2019-11-11T20:00","authors":["endiliey","lex111","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.35","permalink":"/changelog/2.0.0-alpha.35"},"nextItem":{"title":"2.0.0-alpha.33","permalink":"/changelog/2.0.0-alpha.33"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#1956](https://github.com/facebook/docusaurus/pull/1956) feat(v2): add ability hide dark mode toggle ([@lex111](https://github.com/lex111))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-plugin-content-docs`\\n - [#1958](https://github.com/facebook/docusaurus/pull/1958) breaking(v2): editUrl should point to website instead of docsDir ([@endiliey](https://github.com/endiliey))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#1959](https://github.com/facebook/docusaurus/pull/1959) fix(v2): useTOC hooks should not be called in each nested children ([@endiliey](https://github.com/endiliey))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#1957](https://github.com/facebook/docusaurus/pull/1957) refactor(v2): avoid synchronous/ blocking operation when possible ([@endiliey](https://github.com/endiliey))\\n\\n## :memo: Documentation\\n\\n- [#1953](https://github.com/facebook/docusaurus/pull/1953) fix(v2): update Infima website URL ([@yangshun](https://github.com/yangshun))\\n\\n## :house: Internal\\n\\n- `docusaurus-1.x`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#1955](https://github.com/facebook/docusaurus/pull/1955) chore: bump dev dependencies ([@endiliey](https://github.com/endiliey))\\n- Other\\n - [#1952](https://github.com/facebook/docusaurus/pull/1952) chore(v2): add lerna-changelog ([@endiliey](https://github.com/endiliey))\\n\\n## :running: Performance\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`, `docusaurus`\\n - [#1951](https://github.com/facebook/docusaurus/pull/1951) perf(v2): skip runtime fileHash cache in prod & get timestamp asynchronously ([@endiliey](https://github.com/endiliey))\\n - [#1950](https://github.com/facebook/docusaurus/pull/1950) perf(v2): more efficient hot reload & consistent filegen ([@endiliey](https://github.com/endiliey))\\n\\n## Committers: 3\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Endi ([@endiliey](https://github.com/endiliey))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))"},{"id":"/2.0.0-alpha.33","metadata":{"permalink":"/changelog/2.0.0-alpha.33","source":"@site/changelog/source/2.0.0-alpha.33.md","title":"2.0.0-alpha.33","description":"Features","date":"2019-11-08T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-11-08T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.34","permalink":"/changelog/2.0.0-alpha.34"},"nextItem":{"title":"2.0.0-alpha.32","permalink":"/changelog/2.0.0-alpha.32"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n## Features\\n\\n- Table of contents is now highlighted depending on current active headings. (thanks to awesome @SantiagoGdaR) [#1896](https://github.com/facebook/docusaurus/pull/1896)\\n- Official blog plugin can now generate feed for blog posts. (thanks to awesome @moozzyk) [#1916](https://github.com/facebook/docusaurus/pull/1916)\\n- **BREAKING** `prismTheme` is renamed to `theme` as part new `prism` object in `themeConfig` field in your `docusaurus.config.js`. Eg:\\n ```diff\\n themeConfig: {\\n - prismTheme: require(\'prism-react-renderer/themes/dracula\'),\\n + prism: {\\n + theme: require(\'prism-react-renderer/themes/dracula\'),\\n + },\\n },\\n ```\\n- Added new `prism` option `defaultLanguage` that is used if the language is not specified in code blocks. [#1910](https://github.com/facebook/docusaurus/pull/1910)\\n\\n## Fixes\\n\\n- Fix babel/env not picking the correct browserslist configuration during development. When running `docusaurus start`, `process.env.NODE_ENV` is now consistently set to `development`.\\n- Ensure routes config generation to be more consistent in ordering. Nested routes should be placed last in routes.js. This will allow user to create `src/pages/docs.js` to create custom docs page for `/docs` or even `src/pages/docs/super.js` to create page for `/docs/super/`;\\n- Fix watcher does not trigger reload on windows.\\n- Fix build compilation error if exists only one code tab.\\n- Add minor padding to docs container so that hash-link won\'t be cut off.\\n\\n## Others\\n\\n- Misc dependency upgrades.\\n- Stability improvement (more tests) & refactoring on docs plugin to prevent regression."},{"id":"/2.0.0-alpha.32","metadata":{"permalink":"/changelog/2.0.0-alpha.32","source":"@site/changelog/source/2.0.0-alpha.32.md","title":"2.0.0-alpha.32","description":"Features","date":"2019-11-04T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-11-04T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.33","permalink":"/changelog/2.0.0-alpha.33"},"nextItem":{"title":"2.0.0-alpha.31","permalink":"/changelog/2.0.0-alpha.31"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n## Features\\n\\n- Add `<Redirect>` component for client side redirect. Example Usage:\\n\\n```js\\nimport React from \'react\';\\nimport {Redirect} from \'@docusaurus/router\';\\n\\nfunction Home() {\\n return <Redirect to=\\"/docs/test\\" />;\\n}\\n```\\n\\n- Allow user to add custom HTML to footer items. [#1905](https://github.com/facebook/docusaurus/pull/1905)\\n- Added code block line highlighting feature (thanks @lex111)! If you have previously swizzled the `CodeBlock` theme component, it is recommended to update your source code to have this feature. ([#1860](https://github.com/facebook/Docusaurus/issues/1860))\\n\\n## Bug Fixes\\n\\n- Fix `@theme/Tabs` component to be able to create tabs with only one item.\\n- Fix MDX `@theme/Heading` component. If there is no id, it should not create anchor link.\\n- Fixed a bug in which if `themeConfig.algolia` is not defined, the custom searchbar won\'t appear. If you\'ve swizzled Algolia `SearchBar` component before, please update your source code otherwise CSS might break. See [#1909](https://github.com/facebook/docusaurus/pull/1909/files) for reference.\\n\\n```js\\n- <Fragment>\\n+ <div className=\\"navbar__search\\" key=\\"search-box\\">\\n```\\n\\n- Slightly adjust search icon position to be more aligned on small width device. ([#1893](https://github.com/facebook/Docusaurus/issues/1893))\\n- Fix algolia styling bug, previously search suggestion result is sometimes hidden. ([#1915](https://github.com/facebook/Docusaurus/issues/1915))\\n- Changed the way we read the `USE_SSH` env variable during deployment to be the same as in v1.\\n- Fix accessing `docs/` or `/docs/xxxx` that does not match any existing doc page should return 404 (Not found) page, not blank page. ([#1903](https://github.com/facebook/Docusaurus/issues/1903))\\n- Prioritize `@docusaurus/core` dependencies/ node_modules over user\'s node_modules. This fix a bug whereby if user has core-js@3 on its own node_modules but docusaurus depends on core-js@2, we previously encounter `Module not found: core-js/modules/xxxx` (because core-js@3 doesn\'t have that).\\n- Fix a bug where docs plugin add `/docs` route even if docs folder is empty. We also improved docs plugin test coverage to 100% for stability before working on docs versioning. ([#1912](https://github.com/facebook/Docusaurus/issues/1912))\\n\\n## Performance Improvement\\n\\n- Reduce memory usage consumption. ([#1900](https://github.com/facebook/Docusaurus/issues/1900))\\n- Significantly reduce main bundle size and initial HTML payload on production build. Generated files from webpack is also shorter in name. ([#1898](https://github.com/facebook/Docusaurus/issues/1898))\\n- Simplify blog metadata. Previously, accessing `/blog/post-xxx` will request for next and prev blog post metadata too aside from target post metadata. We should only request target post metadata. ([#1908](https://github.com/facebook/Docusaurus/issues/1908))\\n\\n## Others\\n\\n- Convert sitemap plugin to TypeScript. ([#1894](https://github.com/facebook/Docusaurus/issues/1894))\\n- Refactor dark mode toggle into a hook. ([#1899](https://github.com/facebook/Docusaurus/issues/1899))"},{"id":"/2.0.0-alpha.31","metadata":{"permalink":"/changelog/2.0.0-alpha.31","source":"@site/changelog/source/2.0.0-alpha.31.md","title":"2.0.0-alpha.31","description":"- Footer is now sticky/ pinned to the bottom of the viewport in desktop browsers.","date":"2019-10-26T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-10-26T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.32","permalink":"/changelog/2.0.0-alpha.32"},"nextItem":{"title":"2.0.0-alpha.30","permalink":"/changelog/2.0.0-alpha.30"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Footer is now sticky/ pinned to the bottom of the viewport in desktop browsers.\\n- Footer is now also displayed in docs page for consistency.\\n- Remove empty doc sidebar container if sidebar for a particular doc page does not exist. Otherwise, it will cause an additional empty space.\\n- Default PostCSS loader now only polyfills stage 3+ features (previously it was stage 2) like Create React App. Stage 2 CSS is considered relatively unstable and subject to change while Stage 3 features will likely become a standard.\\n- Fix search bar focus bug. When you put the focus on search input, previously the focus will remain although we have clicked to other area outside of the search input.\\n- New themeConfig option `sidebarCollapsible`. It is on by default. If explicitly set to `false`, all doc items in sidebar is expanded. Otherwise, it will still be a collapsible sidebar.\\n- Disable adding hashes to the generated class names of CSS modules in dev mode. Generating unique identifiers takes some time, which can be saved since including paths to files in class names is enough to avoid collisions.\\n- Fix showing sidebar category with empty items.\\n- Update infima from 0.2.0-alpha.2 to 0.2.0-alpha.3\\n - Fix pagination nav and right sidebar color contrast ratio\\n - Fix sidebar arrow color in dark mode\\n - Fix footer mobile issue\\n - Increase sidebar width\\n - etc"},{"id":"/2.0.0-alpha.30","metadata":{"permalink":"/changelog/2.0.0-alpha.30","source":"@site/changelog/source/2.0.0-alpha.30.md","title":"2.0.0-alpha.30","description":"- Fix babel transpilation include/exclude logic to be more efficient. This also fix a very weird bug TypeError: Cannot assign to read only property \'exports\' of object \'#\'.(#1868)","date":"2019-10-22T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-10-22T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.31","permalink":"/changelog/2.0.0-alpha.31"},"nextItem":{"title":"2.0.0-alpha.29","permalink":"/changelog/2.0.0-alpha.29"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Fix babel transpilation include/exclude logic to be more efficient. This also fix a very weird bug `TypeError: Cannot assign to read only property \'exports\' of object \'#<Object>\'`.([#1868](https://github.com/facebook/docusaurus/pull/1868))\\n\\nIf you are still encountering the error. Please check whether you use `module.exports` for your `.js` file instead of doing `export` (mixing CJS and ES). See https://github.com/webpack/webpack/issues/4039#issuecomment-477779322 and https://github.com/webpack/webpack/issues/4039#issuecomment-273804003 for more context."},{"id":"/2.0.0-alpha.29","metadata":{"permalink":"/changelog/2.0.0-alpha.29","source":"@site/changelog/source/2.0.0-alpha.29.md","title":"2.0.0-alpha.29","description":"HOTFIX for 2.0.0-alpha.28.","date":"2019-10-21T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-10-21T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.30","permalink":"/changelog/2.0.0-alpha.30"},"nextItem":{"title":"2.0.0-alpha.28","permalink":"/changelog/2.0.0-alpha.28"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n**HOTFIX for 2.0.0-alpha.28**.\\n\\n- Fix missing `core-js` dependencies on `@docusaurus/core`.\\n- Fix wrong `@babel/env` preset configuration that causes build compilation error.\\n- New UI for webpack compilation progress bar."},{"id":"/2.0.0-alpha.28","metadata":{"permalink":"/changelog/2.0.0-alpha.28","source":"@site/changelog/source/2.0.0-alpha.28.md","title":"2.0.0-alpha.28","description":"- Further reduce memory usage to avoid heap memory allocation failure.","date":"2019-10-21T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-10-21T19:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.29","permalink":"/changelog/2.0.0-alpha.29"},"nextItem":{"title":"2.0.0-alpha.27","permalink":"/changelog/2.0.0-alpha.27"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Further reduce memory usage to avoid heap memory allocation failure.\\n- Fix `keywords` frontmatter for SEO not working properly.\\n- Fix `swizzle` command not passing context properly to theme packages.\\n- Add `extendCli` api for plugins. This will allow plugin to further extend Docusaurus CLI.\\n- Fix `swizzle` command not being able to swizzle single js file.\\n- Fix logo URL in footer to be appended with baseUrl automatically.\\n- Add the option `--no-open` for `start` command.\\n- Set `@babel/env` useBuiltins to `usage`. This will automatically use browserlist and import polyfills required.\\n- Modified TerserWebpackPlugin `terserOptions` for better cross-browser compatibility.\\n- **BREAKING** `withBaseUrl` is renamed to `useBaseUrl` because its a React Hooks. Make sure you import/rename it correctly. Eg: `import useBaseUrl from \'@docusaurus/useBaseUrl`;\\n- Fix potential security vulnerability because we\'re exposing the directory structure of the host machine.\\n- Upgrade dependencies."},{"id":"/2.0.0-alpha.27","metadata":{"permalink":"/changelog/2.0.0-alpha.27","source":"@site/changelog/source/2.0.0-alpha.27.md","title":"2.0.0-alpha.27","description":"- Add @theme/Tabs which can be used to implement multi-language code tabs.","date":"2019-10-14T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-10-14T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.28","permalink":"/changelog/2.0.0-alpha.28"},"nextItem":{"title":"2.0.0-alpha.26","permalink":"/changelog/2.0.0-alpha.26"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Add `@theme/Tabs` which can be used to implement multi-language code tabs.\\n- Implement `custom_edit_url` and `hide_title` markdown header for docusaurus v1 feature parity.\\n- Reduce memory usage and slightly faster production build.\\n- Misc dependency upgrades."},{"id":"/2.0.0-alpha.26","metadata":{"permalink":"/changelog/2.0.0-alpha.26","source":"@site/changelog/source/2.0.0-alpha.26.md","title":"2.0.0-alpha.26","description":"- Docs, pages plugin is rewritten in TypeScript","date":"2019-10-12T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-10-12T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.27","permalink":"/changelog/2.0.0-alpha.27"},"nextItem":{"title":"2.0.0-alpha.25","permalink":"/changelog/2.0.0-alpha.25"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Docs, pages plugin is rewritten in TypeScript\\n- Docs improvements and tweaks\\n - Improved metadata which results in smaller bundle size.\\n - Docs sidebar can now be more than one level deep, theoretically up to infinity\\n - Collapsible docs sidebar!\\n - Make doc page title larger\\n - Add `editUrl` option (URL for editing) to docs plugin. If this field is set, there will be an \\"Edit this page\\" link for each doc page. Example: \'https://github.com/facebook/docusaurus/edit/master/docs\'\\n - Add `showLastUpdateTime` and `showLastUpdateAuthor` options to docs plugin to further achieve v1 parity of showing last update data for a particular doc\\n- Slight tweaks to the Blog components - blog title is larger now\\n- Code Blocks\\n - Change default theme from Night Owl to Palenight\\n - Slight tweaks to playground/preview components\\n- Add `scripts` and `stylesheets` field to `docusaurus.config.js`\\n- More documentation..."},{"id":"/2.0.0-alpha.25","metadata":{"permalink":"/changelog/2.0.0-alpha.25","source":"@site/changelog/source/2.0.0-alpha.25.md","title":"2.0.0-alpha.25","description":"- Blog plugin is rewritten in TypeScript and can now support CJK","date":"2019-10-01T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-10-01T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.26","permalink":"/changelog/2.0.0-alpha.26"},"nextItem":{"title":"2.0.0-alpha.24","permalink":"/changelog/2.0.0-alpha.24"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Blog plugin is rewritten in TypeScript and can now support CJK\\n- Upgrade key direct dependencies such as webpack, mdx and babel to latest\\n- Do not escape html and body attributes\\n- For devices with very small viewport width, the searchbar is replaced with a search icon. On tap of the search icon the searchbar is expanded and the text beside the logo is hidden and remains hidden while the search bar is expanded.\\n- Add `date` frontMatter support for blog plugin\\n- Add `truncateMarker` option to blog plugin, support string or regex.\\n- Webpack `optimization.removeAvailableModules` is now disabled for performance gain. See https://github.com/webpack/webpack/releases/tag/v4.38.0 for more context."},{"id":"/2.0.0-alpha.24","metadata":{"permalink":"/changelog/2.0.0-alpha.24","source":"@site/changelog/source/2.0.0-alpha.24.md","title":"2.0.0-alpha.24","description":"- Remove unused metadata for pages. This minimize number of http request & smaller bundle size.","date":"2019-07-24T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-07-24T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.25","permalink":"/changelog/2.0.0-alpha.25"},"nextItem":{"title":"2.0.0-alpha.23","permalink":"/changelog/2.0.0-alpha.23"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Remove unused metadata for pages. This minimize number of http request & smaller bundle size.\\n- Upgrade dependencies of css-loader from 2.x to 3.x. CSS modules localIdentName hash now only use the last 4 characters instead of 8.\\n- Fix broken markdown linking replacement for mdx files\\n- Fix potential security vulnerability because we\'re exposing the directory structure of the host machine. Instead of absolute path, we use relative path from site directory. Resulting in shorter webpack chunk naming and smaller bundle size.\\n- Use contenthash instead of chunkhash for better long term caching\\n- Allow user to customize generated heading from MDX. Swizzle `@theme/Heading`"},{"id":"/2.0.0-alpha.23","metadata":{"permalink":"/changelog/2.0.0-alpha.23","source":"@site/changelog/source/2.0.0-alpha.23.md","title":"2.0.0-alpha.23","description":"- Fix docusaurus route config generation for certain edge case","date":"2019-07-21T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-07-21T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.24","permalink":"/changelog/2.0.0-alpha.24"},"nextItem":{"title":"2.0.0-alpha.22","permalink":"/changelog/2.0.0-alpha.22"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Fix docusaurus route config generation for certain edge case"},{"id":"/2.0.0-alpha.22","metadata":{"permalink":"/changelog/2.0.0-alpha.22","source":"@site/changelog/source/2.0.0-alpha.22.md","title":"2.0.0-alpha.22","description":"- Add missing dependencies on @docusaurus/preset-classic","date":"2019-07-20T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-07-20T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.23","permalink":"/changelog/2.0.0-alpha.23"},"nextItem":{"title":"2.0.0-alpha.21","permalink":"/changelog/2.0.0-alpha.21"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Add missing dependencies on `@docusaurus/preset-classic`\\n- New plugin `@docusaurus/plugin-ideal-image` to generate an almost ideal image (responsive, lazy-loading, and low quality placeholder)\\n- Better Twitter/discord image preview. Previously the size is too zoomed\\n- Allow prism syntax highlighting theme customization. Refer to https://docusaurus.io/docs/markdown-features#syntax-highlighting\\n- CSS is now autoprefixed using postcss\\n- Faster, lighter webpack bundle size\\n- `@docusaurus/theme-live-codeblock` is now much smaller in size and no longer only load on viewport\\n- Blog markdown files now support using the id field to specify the path"},{"id":"/2.0.0-alpha.21","metadata":{"permalink":"/changelog/2.0.0-alpha.21","source":"@site/changelog/source/2.0.0-alpha.21.md","title":"2.0.0-alpha.21","description":"- Fix babel-loader not transpiling docusaurus package","date":"2019-07-14T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-07-14T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.22","permalink":"/changelog/2.0.0-alpha.22"},"nextItem":{"title":"2.0.0-alpha.20","permalink":"/changelog/2.0.0-alpha.20"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Fix babel-loader not transpiling docusaurus package"},{"id":"/2.0.0-alpha.20","metadata":{"permalink":"/changelog/2.0.0-alpha.20","source":"@site/changelog/source/2.0.0-alpha.20.md","title":"2.0.0-alpha.20","description":"- Add copy codeblock button","date":"2019-07-14T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-07-14T19:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.21","permalink":"/changelog/2.0.0-alpha.21"},"nextItem":{"title":"2.0.0-alpha.19","permalink":"/changelog/2.0.0-alpha.19"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Add copy codeblock button\\n- Add Google analytics and Google gtag plugins.\\n- Move source components to `/src`. Please create a `website/src` directory and move your `/pages` and `/theme` code into it. This is to make it easier to integrate your website with external build/static analysis tooling (you can now just pass in `src/**/*.js` as the path to process).\\n- Adde more documentation thanks to @wgao19.\\n- Deprecate the current docs plugin. The docs plugin as of 2.0.0-alpha.19 is heavily based on V1 specifications and we intend to create a better one that fixes some of the inconsistencies in V1. If you have swizzled any doc components, you will have to update their names. You are highly encourages to not swizzle the legacy doc components until we have completed the new docs plugin.\\n- Separate v2 init command to new package @docusaurus/init\\n- Render 404.html page\\n- Improve SEO\\n- Clicking on the logo in the mobile sliding navigation will now bring you to the homepage.\\n- Performance\\n - Disable webpack output pathinfo. Webpack has the ability to generate path info in the output bundle. However, this puts garbage collection pressure on projects that bundle thousands of modules. Not very useful for our case\\n - Drop cache-loader in CI and test environment because it has an initial overhead. We always start from scratch in vm instance like CI so cache-loader is useless\\n - Better splitchunks and babel default webpack config"},{"id":"/2.0.0-alpha.19","metadata":{"permalink":"/changelog/2.0.0-alpha.19","source":"@site/changelog/source/2.0.0-alpha.19.md","title":"2.0.0-alpha.19","description":"- Add a sensible default for browserslist config.","date":"2019-06-07T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-06-07T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.20","permalink":"/changelog/2.0.0-alpha.20"},"nextItem":{"title":"V2 Changelog","permalink":"/changelog/V2 Changelog"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Add a sensible default for browserslist config.\\n- UI\\n - Add sun and moon emoji to the dark mode toggle.\\n - Mobile responsive menu.\\n - Right table of contents for docs is now sticky.\\n- Plugins\\n - Change plugin definitions from classes to functions. Refer to the new plugin docs.\\n - Implement Clients module API.\\n - Change format within `docusaurus.config.js` to be like presets.\\n- Deps\\n - Infima CSS is now locked down to specific versions and not relying upon the CDN which reads from trunk.\\n - Update dependencies to latest\\n- Customize/ Override infima CSS variables by passing options into the classic preset.\\n\\n```\\npresets: [\\n [\\n \'@docusaurus/preset-classic\',\\n {\\n theme: {\\n customCss: require.resolve(\'./css/custom.css\'),\\n },\\n ...\\n },\\n ],\\n],\\n```\\n\\n- Allow passing remark and rehype plugins to mdx-loader for docs and blog plugin\\n- Move themes component of docs and blog to be part of theme-classic\\n- Use composition style for prism syntax highlighting instead of doing it via rehype plugin\\n- Pass MDXProvider to docs and blog. To change the provided MDX components, run `docusaurus swizzle @docusaurus/theme-classic MDXComponents`\\n- Add @docusaurus/theme-livecodeblock plugin\\n- Better run-time code generation & webpack splitchunks optimization\\n- Minify css for production build\\n- Fix weird scrolling problem when navigating to a route with a `hash` location"},{"id":"/V2 Changelog","metadata":{"permalink":"/changelog/V2 Changelog","source":"@site/changelog/source/V2 Changelog.md","title":"V2 Changelog","description":"siteConfig.js changes","date":"2019-04-10T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-04-10T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.19","permalink":"/changelog/2.0.0-alpha.19"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n### `siteConfig.js` changes\\n\\n- `siteConfig.js` renamed to `docusaurus.config.js`.\\n- Remove the following config options:\\n - `docsUrl`. Use the plugin option on `docusaurus-plugin-content-docs` instead.\\n - `customDocsPath`. Use the plugin option on `docusaurus-plugin-content-docs` instead.\\n - `sidebars.json` now has to be explicitly loaded by users and passed into the plugin option on `docusaurus-plugin-content-docs`.\\n - `headerLinks` doc, page, blog is deprecated and has been to moved into `themeConfig` under the name `navbar`. The syntax is now:\\n\\n```js\\nthemeConfig: {\\n navbar: {\\n title: \'Docusaurus\',\\n logo: {\\n alt: \'Docusaurus Logo\',\\n src: \'img/docusaurus.svg\',\\n },\\n links: [\\n {to: \'docs/introduction\', label: \'Docs\', position: \'left\'},\\n {to: \'blog\', label: \'Blog\', position: \'left\'},\\n {to: \'feedback\', label: \'Feedback\', position: \'left\'},\\n {\\n href: \'https://github.com/facebook/docusaurus\',\\n label: \'GitHub\',\\n position: \'right\',\\n },\\n ],\\n },\\n}\\n```\\n\\n### Migration Guide\\n\\n_Work in Progress_\\n\\n### Presets\\n\\n- Add presets for plugins that follow the [Babel preset convention](https://babeljs.io/docs/en/presets)."}],"blogListPaginated":[{"items":["/3.5.2","/3.5.1","/3.5.0","/3.4.0","/3.3.2","/3.3.1","/3.3.0","/3.2.1","/3.2.0","/3.1.1","/3.1.0","/3.0.1","/3.0.0","/2.4.3","/2.4.2","/2.4.1","/2.4.0","/2.3.1","/2.3.0","/2.2.0"],"metadata":{"permalink":"/changelog","page":1,"postsPerPage":20,"totalPages":5,"totalCount":100,"nextPage":"/changelog/page/2","blogDescription":"Keep yourself up-to-date about new features in every release","blogTitle":"Docusaurus changelog"}},{"items":["/2.1.0","/2.0.1","/2.0.0","/2.0.0-rc.1","/2.0.0-beta.22","/2.0.0-beta.21","/2.0.0-beta.20","/2.0.0-beta.19","/2.0.0-beta.18","/2.0.0-beta.17","/2.0.0-beta.16","/2.0.0-beta.15","/2.0.0-beta.14","/2.0.0-beta.13","/2.0.0-beta.12","/2.0.0-beta.11","/2.0.0-beta.10","/2.0.0-beta.9","/2.0.0-beta.8","/2.0.0-beta.7"],"metadata":{"permalink":"/changelog/page/2","page":2,"postsPerPage":20,"totalPages":5,"totalCount":100,"previousPage":"/changelog","nextPage":"/changelog/page/3","blogDescription":"Keep yourself up-to-date about new features in every release","blogTitle":"Docusaurus changelog"}},{"items":["/2.0.0-beta.6","/2.0.0-beta.5","/2.0.0-beta.4","/2.0.0-beta.3","/2.0.0-beta.2","/2.0.0-beta.1","/2.0.0-beta.0","/2.0.0-alpha.75","/2.0.0-alpha.74","/2.0.0-alpha.73","/2.0.0-alpha.72","/2.0.0-alpha.71","/2.0.0-alpha.70","/2.0.0-alpha.69","/2.0.0-alpha.68","/2.0.0-alpha.67","/2.0.0-alpha.66","/2.0.0-alpha.65","/2.0.0-alpha.64","/2.0.0-alpha.63"],"metadata":{"permalink":"/changelog/page/3","page":3,"postsPerPage":20,"totalPages":5,"totalCount":100,"previousPage":"/changelog/page/2","nextPage":"/changelog/page/4","blogDescription":"Keep yourself up-to-date about new features in every release","blogTitle":"Docusaurus changelog"}},{"items":["/2.0.0-alpha.62","/2.0.0-alpha.61","/2.0.0-alpha.60","/2.0.0-alpha.59","/2.0.0-alpha.58","/2.0.0-alpha.57","/2.0.0-alpha.56","/2.0.0-alpha.55","/2.0.0-alpha.54","/2.0.0-alpha.53","/2.0.0-alpha.51","/2.0.0-alpha.50","/2.0.0-alpha.49","/2.0.0-alpha.48","/2.0.0-alpha.44","/2.0.0-alpha.43","/2.0.0-alpha.41","/2.0.0-alpha.40","/2.0.0-alpha.39","/2.0.0-alpha.38"],"metadata":{"permalink":"/changelog/page/4","page":4,"postsPerPage":20,"totalPages":5,"totalCount":100,"previousPage":"/changelog/page/3","nextPage":"/changelog/page/5","blogDescription":"Keep yourself up-to-date about new features in every release","blogTitle":"Docusaurus changelog"}},{"items":["/2.0.0-alpha.37","/2.0.0-alpha.36","/2.0.0-alpha.35","/2.0.0-alpha.34","/2.0.0-alpha.33","/2.0.0-alpha.32","/2.0.0-alpha.31","/2.0.0-alpha.30","/2.0.0-alpha.29","/2.0.0-alpha.28","/2.0.0-alpha.27","/2.0.0-alpha.26","/2.0.0-alpha.25","/2.0.0-alpha.24","/2.0.0-alpha.23","/2.0.0-alpha.22","/2.0.0-alpha.21","/2.0.0-alpha.20","/2.0.0-alpha.19","/V2 Changelog"],"metadata":{"permalink":"/changelog/page/5","page":5,"postsPerPage":20,"totalPages":5,"totalCount":100,"previousPage":"/changelog/page/4","blogDescription":"Keep yourself up-to-date about new features in every release","blogTitle":"Docusaurus changelog"}}],"blogTags":{},"blogTagsListPath":"/changelog/tags","authorsMap":{"6543":{"name":"6543","alias":"6543","url":"https://github.com/6543","imageURL":"https://github.com/6543.png","key":"6543","page":null},"1084350607":{"name":"\u4E45\u67D3 | JiuRan","alias":"1084350607","url":"https://github.com/1084350607","imageURL":"https://github.com/1084350607.png","key":"1084350607","page":null},"cstangerup":{"name":"Christian Stangerup","alias":"cstangerup","url":"https://github.com/cstangerup","imageURL":"https://github.com/cstangerup.png","key":"cstangerup","page":null},"GatienBoquet":{"name":"Gatien Boquet","alias":"GatienBoquet","url":"https://github.com/GatienBoquet","imageURL":"https://github.com/GatienBoquet.png","key":"GatienBoquet","page":null},"josh-wong":{"name":"Josh Wong","alias":"josh-wong","url":"https://github.com/josh-wong","imageURL":"https://github.com/josh-wong.png","key":"josh-wong","page":null},"slorber":{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},"anaclumos":{"name":"Sunghyun Cho","alias":"anaclumos","url":"https://github.com/anaclumos","imageURL":"https://github.com/anaclumos.png","key":"anaclumos","page":null},"alicelovescake":{"name":"Alice Zhao","alias":"alicelovescake","url":"https://github.com/alicelovescake","imageURL":"https://github.com/alicelovescake.png","key":"alicelovescake","page":null},"ashiq-firoz":{"name":"Ashiq Firoz","alias":"ashiq-firoz","url":"https://github.com/ashiq-firoz","imageURL":"https://github.com/ashiq-firoz.png","key":"ashiq-firoz","page":null},"Aslemammad":{"name":"Mohammad Bagher Abiyat","alias":"Aslemammad","url":"https://github.com/Aslemammad","imageURL":"https://github.com/Aslemammad.png","key":"Aslemammad","page":null},"bharateshwq":{"name":"Bharatesh","alias":"bharateshwq","url":"https://github.com/bharateshwq","imageURL":"https://github.com/bharateshwq.png","key":"bharateshwq","page":null},"bohyunjung":{"name":"\uC815\uBCF4\uD604 Bohyun Jung","alias":"bohyunjung","url":"https://github.com/bohyunjung","imageURL":"https://github.com/bohyunjung.png","key":"bohyunjung","page":null},"chirbard":{"name":"Markus Tamm","alias":"chirbard","url":"https://github.com/chirbard","imageURL":"https://github.com/chirbard.png","key":"chirbard","page":null},"d4nyll":{"name":"Daniel Li","alias":"d4nyll","url":"https://github.com/d4nyll","imageURL":"https://github.com/d4nyll.png","key":"d4nyll","page":null},"dhayab":{"name":"Dhaya","alias":"dhayab","url":"https://github.com/dhayab","imageURL":"https://github.com/dhayab.png","key":"dhayab","page":null},"franzd1":{"name":"franzd1","alias":"franzd1","url":"https://github.com/franzd1","imageURL":"https://github.com/franzd1.png","key":"franzd1","page":null},"Gekd":{"name":"Robin Otter","alias":"Gekd","url":"https://github.com/Gekd","imageURL":"https://github.com/Gekd.png","key":"Gekd","page":null},"hichemfantar":{"name":"Hichem Fantar","alias":"hichemfantar","url":"https://github.com/hichemfantar","imageURL":"https://github.com/hichemfantar.png","key":"hichemfantar","page":null},"johnnyreilly":{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},"Josh-Cena":{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},"lebalz":{"name":"Balthasar Hofer","alias":"lebalz","url":"https://github.com/lebalz","imageURL":"https://github.com/lebalz.png","key":"lebalz","page":null},"mxschmitt":{"name":"Max Schmitt","alias":"mxschmitt","url":"https://github.com/mxschmitt","imageURL":"https://github.com/mxschmitt.png","key":"mxschmitt","page":null},"OzakIOne":{"name":"ozaki","alias":"OzakIOne","url":"https://github.com/OzakIOne","imageURL":"https://github.com/OzakIOne.png","key":"OzakIOne","page":null},"Paneedah":{"name":"Paneedah","alias":"Paneedah","url":"https://github.com/Paneedah","imageURL":"https://github.com/Paneedah.png","key":"Paneedah","page":null},"pjchender":{"name":"Aaron Chen","alias":"pjchender","url":"https://github.com/pjchender","imageURL":"https://github.com/pjchender.png","key":"pjchender","page":null},"priyadi":{"name":"Priyadi Iman Nurcahyo","alias":"priyadi","url":"https://github.com/priyadi","imageURL":"https://github.com/priyadi.png","key":"priyadi","page":null},"sergioalmela":{"name":"Sergio","alias":"sergioalmela","url":"https://github.com/sergioalmela","imageURL":"https://github.com/sergioalmela.png","key":"sergioalmela","page":null},"tats-u":{"name":"Tatsunori Uchino","alias":"tats-u","url":"https://github.com/tats-u","imageURL":"https://github.com/tats-u.png","key":"tats-u","page":null},"ultimate":{"name":"Julian V","alias":"ultimate","url":"https://github.com/ultimate","imageURL":"https://github.com/ultimate.png","key":"ultimate","page":null},"Xebec19":{"name":"Rohan Thakur","alias":"Xebec19","url":"https://github.com/Xebec19","imageURL":"https://github.com/Xebec19.png","key":"Xebec19","page":null},"yujonglee":{"name":"yujonglee","alias":"yujonglee","url":"https://github.com/yujonglee","imageURL":"https://github.com/yujonglee.png","key":"yujonglee","page":null},"Arsero":{"name":"Azzedine E.","alias":"Arsero","url":"https://github.com/Arsero","imageURL":"https://github.com/Arsero.png","key":"Arsero","page":null},"CodeDoctorDE":{"name":"CodeDoctor","alias":"CodeDoctorDE","url":"https://github.com/CodeDoctorDE","imageURL":"https://github.com/CodeDoctorDE.png","key":"CodeDoctorDE","page":null},"homotechsual":{"name":"Mikey O\'Toole","alias":"homotechsual","url":"https://github.com/homotechsual","imageURL":"https://github.com/homotechsual.png","key":"homotechsual","page":null},"ilmedova":{"name":"Mahri Ilmedova","alias":"ilmedova","url":"https://github.com/ilmedova","imageURL":"https://github.com/ilmedova.png","key":"ilmedova","page":null},"namnguyenthanhwork":{"name":"Nguy\u1EC5n Th\xe0nh Nam","alias":"namnguyenthanhwork","url":"https://github.com/namnguyenthanhwork","imageURL":"https://github.com/namnguyenthanhwork.png","key":"namnguyenthanhwork","page":null},"ncoughlin":{"name":"Nick Coughlin","alias":"ncoughlin","url":"https://github.com/ncoughlin","imageURL":"https://github.com/ncoughlin.png","key":"ncoughlin","page":null},"PetarMc1":{"name":"Petar_mc","alias":"PetarMc1","url":"https://github.com/PetarMc1","imageURL":"https://github.com/PetarMc1.png","key":"PetarMc1","page":null},"revi":{"name":"Yongmin Hong","alias":"revi","url":"https://github.com/revi","imageURL":"https://github.com/revi.png","key":"revi","page":null},"Abdullah-03":{"name":"Abdullah Saud","alias":"Abdullah-03","url":"https://github.com/Abdullah-03","imageURL":"https://github.com/Abdullah-03.png","key":"Abdullah-03","page":null},"andrmaz":{"name":"Andrea Mazzucchelli","alias":"andrmaz","url":"https://github.com/andrmaz","imageURL":"https://github.com/andrmaz.png","key":"andrmaz","page":null},"eldemcan":{"name":"Can Eldem","alias":"eldemcan","url":"https://github.com/eldemcan","imageURL":"https://github.com/eldemcan.png","key":"eldemcan","page":null},"gagdiez":{"name":"Guille","alias":"gagdiez","url":"https://github.com/gagdiez","imageURL":"https://github.com/gagdiez.png","key":"gagdiez","page":null},"h3nr1ke":{"name":"H3NR1KE","alias":"h3nr1ke","url":"https://github.com/h3nr1ke","imageURL":"https://github.com/h3nr1ke.png","key":"h3nr1ke","page":null},"iAdramelk":{"name":"Alexey Ivanov","alias":"iAdramelk","url":"https://github.com/iAdramelk","imageURL":"https://github.com/iAdramelk.png","key":"iAdramelk","page":null},"kaihoffman":{"name":"Kai Hoffman","alias":"kaihoffman","url":"https://github.com/kaihoffman","imageURL":"https://github.com/kaihoffman.png","key":"kaihoffman","page":null},"pearmini":{"name":"Bairui Su","alias":"pearmini","url":"https://github.com/pearmini","imageURL":"https://github.com/pearmini.png","key":"pearmini","page":null},"SandPod":{"name":"Alexander Sandor","alias":"SandPod","url":"https://github.com/SandPod","imageURL":"https://github.com/SandPod.png","key":"SandPod","page":null},"tomsotte":{"name":"Tommaso Sotte","alias":"tomsotte","url":"https://github.com/tomsotte","imageURL":"https://github.com/tomsotte.png","key":"tomsotte","page":null},"tomy0000000":{"name":"Tomy Hsieh","alias":"tomy0000000","url":"https://github.com/tomy0000000","imageURL":"https://github.com/tomy0000000.png","key":"tomy0000000","page":null},"Virgil993":{"name":"Virgil993","alias":"Virgil993","url":"https://github.com/Virgil993","imageURL":"https://github.com/Virgil993.png","key":"Virgil993","page":null},"volcanofr":{"name":"volcanofr","alias":"volcanofr","url":"https://github.com/volcanofr","imageURL":"https://github.com/volcanofr.png","key":"volcanofr","page":null},"Zwyx":{"name":"Zwyx","alias":"Zwyx","url":"https://github.com/Zwyx","imageURL":"https://github.com/Zwyx.png","key":"Zwyx","page":null},"4troDev":{"name":"Josue [4tro] A","alias":"4troDev","url":"https://github.com/4troDev","imageURL":"https://github.com/4troDev.png","key":"4troDev","page":null},"anatolykopyl":{"name":"Anatoly Kopyl","alias":"anatolykopyl","url":"https://github.com/anatolykopyl","imageURL":"https://github.com/anatolykopyl.png","key":"anatolykopyl","page":null},"axel7083":{"name":"axel7083","alias":"axel7083","url":"https://github.com/axel7083","imageURL":"https://github.com/axel7083.png","key":"axel7083","page":null},"baradusov":{"name":"\u041D\u0443\u0440\u0438\u043B\u044C \u0411\u0430\u0440\u0430\u0434\u0443\u0441\u043E\u0432","alias":"baradusov","url":"https://github.com/baradusov","imageURL":"https://github.com/baradusov.png","key":"baradusov","page":null},"chris-bateman":{"name":"Chris Bateman","alias":"chris-bateman","url":"https://github.com/chris-bateman","imageURL":"https://github.com/chris-bateman.png","key":"chris-bateman","page":null},"GingerGeek":{"name":"Zed Spencer-Milnes","alias":"GingerGeek","url":"https://github.com/GingerGeek","imageURL":"https://github.com/GingerGeek.png","key":"GingerGeek","page":null},"Hallinn":{"name":"Hallbj\xf6rn Magn\xfasson","alias":"Hallinn","url":"https://github.com/Hallinn","imageURL":"https://github.com/Hallinn.png","key":"Hallinn","page":null},"ilg-ul":{"name":"Liviu Ionescu","alias":"ilg-ul","url":"https://github.com/ilg-ul","imageURL":"https://github.com/ilg-ul.png","key":"ilg-ul","page":null},"Its-Just-Nans":{"name":"n4n5","alias":"Its-Just-Nans","url":"https://github.com/Its-Just-Nans","imageURL":"https://github.com/Its-Just-Nans.png","key":"Its-Just-Nans","page":null},"kaymomin":{"name":"krinza.eth","alias":"kaymomin","url":"https://github.com/kaymomin","imageURL":"https://github.com/kaymomin.png","key":"kaymomin","page":null},"Oreoxmt":{"name":"Aolin","alias":"Oreoxmt","url":"https://github.com/Oreoxmt","imageURL":"https://github.com/Oreoxmt.png","key":"Oreoxmt","page":null},"Rafael-Martins":{"name":"Rafael Martins","alias":"Rafael-Martins","url":"https://github.com/Rafael-Martins","imageURL":"https://github.com/Rafael-Martins.png","key":"Rafael-Martins","page":null},"Suenaga-Ryuya":{"name":"suenryu","alias":"Suenaga-Ryuya","url":"https://github.com/Suenaga-Ryuya","imageURL":"https://github.com/Suenaga-Ryuya.png","key":"Suenaga-Ryuya","page":null},"sunkanmii":{"name":"Fafowora Sunkanmi","alias":"sunkanmii","url":"https://github.com/sunkanmii","imageURL":"https://github.com/sunkanmii.png","key":"sunkanmii","page":null},"VahidNaderi":{"name":"Vahid Naderi","alias":"VahidNaderi","url":"https://github.com/VahidNaderi","imageURL":"https://github.com/VahidNaderi.png","key":"VahidNaderi","page":null},"vlad-nestorov":{"name":"Vlad Nestorov","alias":"vlad-nestorov","url":"https://github.com/vlad-nestorov","imageURL":"https://github.com/vlad-nestorov.png","key":"vlad-nestorov","page":null},"yixiaojiu":{"name":"\u7FCA\u5C0F\u4E45","alias":"yixiaojiu","url":"https://github.com/yixiaojiu","imageURL":"https://github.com/yixiaojiu.png","key":"yixiaojiu","page":null},"dawei-wang":{"name":"dawei-wang","alias":"dawei-wang","url":"https://github.com/dawei-wang","imageURL":"https://github.com/dawei-wang.png","key":"dawei-wang","page":null},"eitsupi":{"name":"eitsupi","alias":"eitsupi","url":"https://github.com/eitsupi","imageURL":"https://github.com/eitsupi.png","key":"eitsupi","page":null},"jack-robson":{"name":"Jack Robson","alias":"jack-robson","url":"https://github.com/jack-robson","imageURL":"https://github.com/jack-robson.png","key":"jack-robson","page":null},"sanjaiyan-dev":{"name":"Sanjaiyan Parthipan","alias":"sanjaiyan-dev","url":"https://github.com/sanjaiyan-dev","imageURL":"https://github.com/sanjaiyan-dev.png","key":"sanjaiyan-dev","page":null},"axmmisaka":{"name":"axmmisaka","alias":"axmmisaka","url":"https://github.com/axmmisaka","imageURL":"https://github.com/axmmisaka.png","key":"axmmisaka","page":null},"c0h1b4":{"name":"c0h1b4","alias":"c0h1b4","url":"https://github.com/c0h1b4","imageURL":"https://github.com/c0h1b4.png","key":"c0h1b4","page":null},"jgarrow":{"name":"Janessa Garrow","alias":"jgarrow","url":"https://github.com/jgarrow","imageURL":"https://github.com/jgarrow.png","key":"jgarrow","page":null},"SimenB":{"name":"Simen Bekkhus","alias":"SimenB","url":"https://github.com/SimenB","imageURL":"https://github.com/SimenB.png","key":"SimenB","page":null},"harryzcy":{"name":"Chongyi Zheng","alias":"harryzcy","url":"https://github.com/harryzcy","imageURL":"https://github.com/harryzcy.png","key":"harryzcy","page":null},"mcrstudio":{"name":"MCR Studio","alias":"mcrstudio","url":"https://github.com/mcrstudio","imageURL":"https://github.com/mcrstudio.png","key":"mcrstudio","page":null},"NickGerleman":{"name":"Nick Gerleman","alias":"NickGerleman","url":"https://github.com/NickGerleman","imageURL":"https://github.com/NickGerleman.png","key":"NickGerleman","page":null},"reece-white":{"name":"reece-white","alias":"reece-white","url":"https://github.com/reece-white","imageURL":"https://github.com/reece-white.png","key":"reece-white","page":null},"Shreesh09":{"name":"Shreesh Nautiyal","alias":"Shreesh09","url":"https://github.com/Shreesh09","imageURL":"https://github.com/Shreesh09.png","key":"Shreesh09","page":null},"0420syj":{"name":"Wan Sim","alias":"0420syj","url":"https://github.com/0420syj","imageURL":"https://github.com/0420syj.png","key":"0420syj","page":null},"abhinandanwadwa":{"name":"Abhinandan Wadhwa","alias":"abhinandanwadwa","url":"https://github.com/abhinandanwadwa","imageURL":"https://github.com/abhinandanwadwa.png","key":"abhinandanwadwa","page":null},"Abinashbunty":{"name":"Abinash Satapathy","alias":"Abinashbunty","url":"https://github.com/Abinashbunty","imageURL":"https://github.com/Abinashbunty.png","key":"Abinashbunty","page":null},"adampatterson":{"name":"Adam Patterson","alias":"adampatterson","url":"https://github.com/adampatterson","imageURL":"https://github.com/adampatterson.png","key":"adampatterson","page":null},"adithyaakrishna":{"name":"Adithya Krishna","alias":"adithyaakrishna","url":"https://github.com/adithyaakrishna","imageURL":"https://github.com/adithyaakrishna.png","key":"adithyaakrishna","page":null},"AFRUITPIE":{"name":"Hayden Hong","alias":"AFRUITPIE","url":"https://github.com/AFRUITPIE","imageURL":"https://github.com/AFRUITPIE.png","key":"AFRUITPIE","page":null},"AgentEnder":{"name":"Craigory Coppola","alias":"AgentEnder","url":"https://github.com/AgentEnder","imageURL":"https://github.com/AgentEnder.png","key":"AgentEnder","page":null},"akshaybhalotia":{"name":"Akshay Bhalotia","alias":"akshaybhalotia","url":"https://github.com/akshaybhalotia","imageURL":"https://github.com/akshaybhalotia.png","key":"akshaybhalotia","page":null},"allyw2002":{"name":"allyw2002","alias":"allyw2002","url":"https://github.com/allyw2002","imageURL":"https://github.com/allyw2002.png","key":"allyw2002","page":null},"amdshrif":{"name":"Ahmad Shrif","alias":"amdshrif","url":"https://github.com/amdshrif","imageURL":"https://github.com/amdshrif.png","key":"amdshrif","page":null},"amm98d":{"name":"Ahmed Mustafa Malik","alias":"amm98d","url":"https://github.com/amm98d","imageURL":"https://github.com/amm98d.png","key":"amm98d","page":null},"andrewnicols":{"name":"Andrew Lyons","alias":"andrewnicols","url":"https://github.com/andrewnicols","imageURL":"https://github.com/andrewnicols.png","key":"andrewnicols","page":null},"antonk52":{"name":"Anton Kastritskii","alias":"antonk52","url":"https://github.com/antonk52","imageURL":"https://github.com/antonk52.png","key":"antonk52","page":null},"antonyoni":{"name":"Antony Onipko","alias":"antonyoni","url":"https://github.com/antonyoni","imageURL":"https://github.com/antonyoni.png","key":"antonyoni","page":null},"aqueeb":{"name":"Aqueeb","alias":"aqueeb","url":"https://github.com/aqueeb","imageURL":"https://github.com/aqueeb.png","key":"aqueeb","page":null},"attitude":{"name":"Martin Adamko","alias":"attitude","url":"https://github.com/attitude","imageURL":"https://github.com/attitude.png","key":"attitude","page":null},"billy1624":{"name":"Billy Chan","alias":"billy1624","url":"https://github.com/billy1624","imageURL":"https://github.com/billy1624.png","key":"billy1624","page":null},"biplavmz":{"name":"biplavmz","alias":"biplavmz","url":"https://github.com/biplavmz","imageURL":"https://github.com/biplavmz.png","key":"biplavmz","page":null},"bitpredator":{"name":"bitpredator","alias":"bitpredator","url":"https://github.com/bitpredator","imageURL":"https://github.com/bitpredator.png","key":"bitpredator","page":null},"BubbaJoe":{"name":"Joe Williams","alias":"BubbaJoe","url":"https://github.com/BubbaJoe","imageURL":"https://github.com/BubbaJoe.png","key":"BubbaJoe","page":null},"chillinPanda":{"name":"Dinh Bao Dang","alias":"chillinPanda","url":"https://github.com/chillinPanda","imageURL":"https://github.com/chillinPanda.png","key":"chillinPanda","page":null},"chubei":{"name":"Bei Chu","alias":"chubei","url":"https://github.com/chubei","imageURL":"https://github.com/chubei.png","key":"chubei","page":null},"chudongvip":{"name":"\u521D\u51AC","alias":"chudongvip","url":"https://github.com/chudongvip","imageURL":"https://github.com/chudongvip.png","key":"chudongvip","page":null},"cm-igarashi-ryosuke":{"name":"Ryosuke Igarashi","alias":"cm-igarashi-ryosuke","url":"https://github.com/cm-igarashi-ryosuke","imageURL":"https://github.com/cm-igarashi-ryosuke.png","key":"cm-igarashi-ryosuke","page":null},"colinhacks":{"name":"Colin McDonnell","alias":"colinhacks","url":"https://github.com/colinhacks","imageURL":"https://github.com/colinhacks.png","key":"colinhacks","page":null},"conlacda":{"name":"conlacda","alias":"conlacda","url":"https://github.com/conlacda","imageURL":"https://github.com/conlacda.png","key":"conlacda","page":null},"dandv":{"name":"Dan Dascalescu","alias":"dandv","url":"https://github.com/dandv","imageURL":"https://github.com/dandv.png","key":"dandv","page":null},"danilowoz":{"name":"Danilo Woznica","alias":"danilowoz","url":"https://github.com/danilowoz","imageURL":"https://github.com/danilowoz.png","key":"danilowoz","page":null},"DanRoscigno":{"name":"Dan Roscigno","alias":"DanRoscigno","url":"https://github.com/DanRoscigno","imageURL":"https://github.com/DanRoscigno.png","key":"DanRoscigno","page":null},"DavidJFelix":{"name":"David J. Felix","alias":"DavidJFelix","url":"https://github.com/DavidJFelix","imageURL":"https://github.com/DavidJFelix.png","key":"DavidJFelix","page":null},"debs-obrien":{"name":"Debbie O\'Brien","alias":"debs-obrien","url":"https://github.com/debs-obrien","imageURL":"https://github.com/debs-obrien.png","key":"debs-obrien","page":null},"Devansu-Yadav":{"name":"Devansu Yadav","alias":"Devansu-Yadav","url":"https://github.com/Devansu-Yadav","imageURL":"https://github.com/Devansu-Yadav.png","key":"Devansu-Yadav","page":null},"Djunnni":{"name":"Dongjoon Lee","alias":"Djunnni","url":"https://github.com/Djunnni","imageURL":"https://github.com/Djunnni.png","key":"Djunnni","page":null},"Dr-Electron":{"name":"Dr-Electron","alias":"Dr-Electron","url":"https://github.com/Dr-Electron","imageURL":"https://github.com/Dr-Electron.png","key":"Dr-Electron","page":null},"e-minguez":{"name":"Eduardo M\xednguez","alias":"e-minguez","url":"https://github.com/e-minguez","imageURL":"https://github.com/e-minguez.png","key":"e-minguez","page":null},"edno":{"name":"Gr\xe9gory Heitz","alias":"edno","url":"https://github.com/edno","imageURL":"https://github.com/edno.png","key":"edno","page":null},"FlorinaPacurar":{"name":"FlorinaPacurar","alias":"FlorinaPacurar","url":"https://github.com/FlorinaPacurar","imageURL":"https://github.com/FlorinaPacurar.png","key":"FlorinaPacurar","page":null},"Foosballfan":{"name":"Charles Killer","alias":"Foosballfan","url":"https://github.com/Foosballfan","imageURL":"https://github.com/Foosballfan.png","key":"Foosballfan","page":null},"forresst":{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},"FrancescoXX":{"name":"Francesco Ciulla","alias":"FrancescoXX","url":"https://github.com/FrancescoXX","imageURL":"https://github.com/FrancescoXX.png","key":"FrancescoXX","page":null},"fredrikstave":{"name":"Fredrik Stave","alias":"fredrikstave","url":"https://github.com/fredrikstave","imageURL":"https://github.com/fredrikstave.png","key":"fredrikstave","page":null},"fxpby":{"name":"Fxpby","alias":"fxpby","url":"https://github.com/fxpby","imageURL":"https://github.com/fxpby.png","key":"fxpby","page":null},"gabrielcsapo":{"name":"Gabriel Csapo","alias":"gabrielcsapo","url":"https://github.com/gabrielcsapo","imageURL":"https://github.com/gabrielcsapo.png","key":"gabrielcsapo","page":null},"GalexyN":{"name":"Alexander Nguyen","alias":"GalexyN","url":"https://github.com/GalexyN","imageURL":"https://github.com/GalexyN.png","key":"GalexyN","page":null},"gazab":{"name":"Gustav Ton\xe9r","alias":"gazab","url":"https://github.com/gazab","imageURL":"https://github.com/gazab.png","key":"gazab","page":null},"gracefullight":{"name":"Eunkwang Shin","alias":"gracefullight","url":"https://github.com/gracefullight","imageURL":"https://github.com/gracefullight.png","key":"gracefullight","page":null},"gregberge":{"name":"Greg Berg\xe9","alias":"gregberge","url":"https://github.com/gregberge","imageURL":"https://github.com/gregberge.png","key":"gregberge","page":null},"heysujal":{"name":"Sujal Gupta","alias":"heysujal","url":"https://github.com/heysujal","imageURL":"https://github.com/heysujal.png","key":"heysujal","page":null},"hidde":{"name":"Hidde de Vries","alias":"hidde","url":"https://github.com/hidde","imageURL":"https://github.com/hidde.png","key":"hidde","page":null},"hslee2008":{"name":"Hyunseung","alias":"hslee2008","url":"https://github.com/hslee2008","imageURL":"https://github.com/hslee2008.png","key":"hslee2008","page":null},"HumbleDeer":{"name":"Anna","alias":"HumbleDeer","url":"https://github.com/HumbleDeer","imageURL":"https://github.com/HumbleDeer.png","key":"HumbleDeer","page":null},"HyeokjinKang":{"name":"Coupy","alias":"HyeokjinKang","url":"https://github.com/HyeokjinKang","imageURL":"https://github.com/HyeokjinKang.png","key":"HyeokjinKang","page":null},"jean-humann":{"name":"Jean Humann","alias":"jean-humann","url":"https://github.com/jean-humann","imageURL":"https://github.com/jean-humann.png","key":"jean-humann","page":null},"jeengbe":{"name":"Jesper Engberg","alias":"jeengbe","url":"https://github.com/jeengbe","imageURL":"https://github.com/jeengbe.png","key":"jeengbe","page":null},"jhcao23":{"name":"John Cao","alias":"jhcao23","url":"https://github.com/jhcao23","imageURL":"https://github.com/jhcao23.png","key":"jhcao23","page":null},"jj-style":{"name":"JJ Style","alias":"jj-style","url":"https://github.com/jj-style","imageURL":"https://github.com/jj-style.png","key":"jj-style","page":null},"jodyheavener":{"name":"Jody Heavener","alias":"jodyheavener","url":"https://github.com/jodyheavener","imageURL":"https://github.com/jodyheavener.png","key":"jodyheavener","page":null},"JohnVicke":{"name":"Viktor Malmedal","alias":"JohnVicke","url":"https://github.com/JohnVicke","imageURL":"https://github.com/JohnVicke.png","key":"JohnVicke","page":null},"JorensM":{"name":"Jorens Merenjanu","alias":"JorensM","url":"https://github.com/JorensM","imageURL":"https://github.com/JorensM.png","key":"JorensM","page":null},"juanpicado":{"name":"Juan Picado","alias":"juanpicado","url":"https://github.com/juanpicado","imageURL":"https://github.com/juanpicado.png","key":"juanpicado","page":null},"KarthickSakthi":{"name":"0x24Karthick","alias":"KarthickSakthi","url":"https://github.com/KarthickSakthi","imageURL":"https://github.com/KarthickSakthi.png","key":"KarthickSakthi","page":null},"Kesyau":{"name":"Serenus","alias":"Kesyau","url":"https://github.com/Kesyau","imageURL":"https://github.com/Kesyau.png","key":"Kesyau","page":null},"knownasnaffy":{"name":"Naffy Dharni","alias":"knownasnaffy","url":"https://github.com/knownasnaffy","imageURL":"https://github.com/knownasnaffy.png","key":"knownasnaffy","page":null},"la55u":{"name":"la55u","alias":"la55u","url":"https://github.com/la55u","imageURL":"https://github.com/la55u.png","key":"la55u","page":null},"lanegoolsby":{"name":"Lane Goolsby","alias":"lanegoolsby","url":"https://github.com/lanegoolsby","imageURL":"https://github.com/lanegoolsby.png","key":"lanegoolsby","page":null},"layershifter":{"name":"Oleksandr Fediashov","alias":"layershifter","url":"https://github.com/layershifter","imageURL":"https://github.com/layershifter.png","key":"layershifter","page":null},"lex111":{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},"lorenzolewis":{"name":"Lorenzo Lewis","alias":"lorenzolewis","url":"https://github.com/lorenzolewis","imageURL":"https://github.com/lorenzolewis.png","key":"lorenzolewis","page":null},"maliMirkec":{"name":"Silvestar Bistrovi\u0107","alias":"maliMirkec","url":"https://github.com/maliMirkec","imageURL":"https://github.com/maliMirkec.png","key":"maliMirkec","page":null},"manuel-rw":{"name":"Manuel","alias":"manuel-rw","url":"https://github.com/manuel-rw","imageURL":"https://github.com/manuel-rw.png","key":"manuel-rw","page":null},"MarkShawn2020":{"name":"Markshawn","alias":"MarkShawn2020","url":"https://github.com/MarkShawn2020","imageURL":"https://github.com/MarkShawn2020.png","key":"MarkShawn2020","page":null},"mcallisto":{"name":"mcallisto","alias":"mcallisto","url":"https://github.com/mcallisto","imageURL":"https://github.com/mcallisto.png","key":"mcallisto","page":null},"mickremedi":{"name":"Michael Remediakis","alias":"mickremedi","url":"https://github.com/mickremedi","imageURL":"https://github.com/mickremedi.png","key":"mickremedi","page":null},"ModupeD":{"name":"ModupeD","alias":"ModupeD","url":"https://github.com/ModupeD","imageURL":"https://github.com/ModupeD.png","key":"ModupeD","page":null},"Mogyuchi":{"name":"Mogyuchi","alias":"Mogyuchi","url":"https://github.com/Mogyuchi","imageURL":"https://github.com/Mogyuchi.png","key":"Mogyuchi","page":null},"moojing":{"name":"Mu-Jing-Tsai","alias":"moojing","url":"https://github.com/moojing","imageURL":"https://github.com/moojing.png","key":"moojing","page":null},"mrazauskas":{"name":"Tom Mrazauskas","alias":"mrazauskas","url":"https://github.com/mrazauskas","imageURL":"https://github.com/mrazauskas.png","key":"mrazauskas","page":null},"mstroppel":{"name":"Marco Stroppel","alias":"mstroppel","url":"https://github.com/mstroppel","imageURL":"https://github.com/mstroppel.png","key":"mstroppel","page":null},"Mysterious-Dev":{"name":"Mysterious_Dev","alias":"Mysterious-Dev","url":"https://github.com/Mysterious-Dev","imageURL":"https://github.com/Mysterious-Dev.png","key":"Mysterious-Dev","page":null},"NamanGarg2075":{"name":"Naman Garg","alias":"NamanGarg2075","url":"https://github.com/NamanGarg2075","imageURL":"https://github.com/NamanGarg2075.png","key":"NamanGarg2075","page":null},"ntucker":{"name":"Nathaniel Tucker","alias":"ntucker","url":"https://github.com/ntucker","imageURL":"https://github.com/ntucker.png","key":"ntucker","page":null},"oluwatobiss":{"name":"Oluwatobi Sofela","alias":"oluwatobiss","url":"https://github.com/oluwatobiss","imageURL":"https://github.com/oluwatobiss.png","key":"oluwatobiss","page":null},"palmiak":{"name":"Maciek Palmowski","alias":"palmiak","url":"https://github.com/palmiak","imageURL":"https://github.com/palmiak.png","key":"palmiak","page":null},"PaulRBerg":{"name":"Paul Razvan Berg","alias":"PaulRBerg","url":"https://github.com/PaulRBerg","imageURL":"https://github.com/PaulRBerg.png","key":"PaulRBerg","page":null},"pinakipb2":{"name":"Pinaki Bhattacharjee","alias":"pinakipb2","url":"https://github.com/pinakipb2","imageURL":"https://github.com/pinakipb2.png","key":"pinakipb2","page":null},"prateekbytes":{"name":"prateekbytes","alias":"prateekbytes","url":"https://github.com/prateekbytes","imageURL":"https://github.com/prateekbytes.png","key":"prateekbytes","page":null},"qwerzl":{"name":"qwerzl","alias":"qwerzl","url":"https://github.com/qwerzl","imageURL":"https://github.com/qwerzl.png","key":"qwerzl","page":null},"rashidmya":{"name":"Rashid","alias":"rashidmya","url":"https://github.com/rashidmya","imageURL":"https://github.com/rashidmya.png","key":"rashidmya","page":null},"razzeee":{"name":"Kolja","alias":"razzeee","url":"https://github.com/razzeee","imageURL":"https://github.com/razzeee.png","key":"razzeee","page":null},"rbarbazz":{"name":"Rapha\xebl Barbazza","alias":"rbarbazz","url":"https://github.com/rbarbazz","imageURL":"https://github.com/rbarbazz.png","key":"rbarbazz","page":null},"recallwei":{"name":"Bruce Song","alias":"recallwei","url":"https://github.com/recallwei","imageURL":"https://github.com/recallwei.png","key":"recallwei","page":null},"rojakcoder":{"name":"Chua Chee How","alias":"rojakcoder","url":"https://github.com/rojakcoder","imageURL":"https://github.com/rojakcoder.png","key":"rojakcoder","page":null},"rsteele6":{"name":"rsteele6","alias":"rsteele6","url":"https://github.com/rsteele6","imageURL":"https://github.com/rsteele6.png","key":"rsteele6","page":null},"sadikkuzu":{"name":"SADIK KUZU","alias":"sadikkuzu","url":"https://github.com/sadikkuzu","imageURL":"https://github.com/sadikkuzu.png","key":"sadikkuzu","page":null},"Sainan":{"name":"Sainan","alias":"Sainan","url":"https://github.com/Sainan","imageURL":"https://github.com/Sainan.png","key":"Sainan","page":null},"samatt14":{"name":"samatt14","alias":"samatt14","url":"https://github.com/samatt14","imageURL":"https://github.com/samatt14.png","key":"samatt14","page":null},"sashashura":{"name":"Alex","alias":"sashashura","url":"https://github.com/sashashura","imageURL":"https://github.com/sashashura.png","key":"sashashura","page":null},"schneegansm":{"name":"Marie","alias":"schneegansm","url":"https://github.com/schneegansm","imageURL":"https://github.com/schneegansm.png","key":"schneegansm","page":null},"scubamaggo":{"name":"Marco Kuper","alias":"scubamaggo","url":"https://github.com/scubamaggo","imageURL":"https://github.com/scubamaggo.png","key":"scubamaggo","page":null},"ShahriarKh":{"name":"Shahriar","alias":"ShahriarKh","url":"https://github.com/ShahriarKh","imageURL":"https://github.com/ShahriarKh.png","key":"ShahriarKh","page":null},"shawshankkumar":{"name":"Shashank Kumar","alias":"shawshankkumar","url":"https://github.com/shawshankkumar","imageURL":"https://github.com/shawshankkumar.png","key":"shawshankkumar","page":null},"shortcuts":{"name":"Cl\xe9ment Vannicatte","alias":"shortcuts","url":"https://github.com/shortcuts","imageURL":"https://github.com/shortcuts.png","key":"shortcuts","page":null},"shwaka":{"name":"Shun Wakatsuki","alias":"shwaka","url":"https://github.com/shwaka","imageURL":"https://github.com/shwaka.png","key":"shwaka","page":null},"sixhobbits":{"name":"Gareth Dwyer","alias":"sixhobbits","url":"https://github.com/sixhobbits","imageURL":"https://github.com/sixhobbits.png","key":"sixhobbits","page":null},"suravshrestha":{"name":"Surav Shrestha","alias":"suravshrestha","url":"https://github.com/suravshrestha","imageURL":"https://github.com/suravshrestha.png","key":"suravshrestha","page":null},"sykp241095":{"name":"sykp241095","alias":"sykp241095","url":"https://github.com/sykp241095","imageURL":"https://github.com/sykp241095.png","key":"sykp241095","page":null},"tamalchowdhury":{"name":"Tamal Anwar Chowdhury","alias":"tamalchowdhury","url":"https://github.com/tamalchowdhury","imageURL":"https://github.com/tamalchowdhury.png","key":"tamalchowdhury","page":null},"tarunrajput":{"name":"Tarun Chauhan","alias":"tarunrajput","url":"https://github.com/tarunrajput","imageURL":"https://github.com/tarunrajput.png","key":"tarunrajput","page":null},"thadguidry":{"name":"Thad Guidry","alias":"thadguidry","url":"https://github.com/thadguidry","imageURL":"https://github.com/thadguidry.png","key":"thadguidry","page":null},"thatrobotdev":{"name":"James Kerrane","alias":"thatrobotdev","url":"https://github.com/thatrobotdev","imageURL":"https://github.com/thatrobotdev.png","key":"thatrobotdev","page":null},"thedevwonder":{"name":"thedevwonder","alias":"thedevwonder","url":"https://github.com/thedevwonder","imageURL":"https://github.com/thedevwonder.png","key":"thedevwonder","page":null},"Villanuevand":{"name":"Andr\xe9s Villanueva","alias":"Villanuevand","url":"https://github.com/Villanuevand","imageURL":"https://github.com/Villanuevand.png","key":"Villanuevand","page":null},"VinceCYLiao":{"name":"VinceCYLiao","alias":"VinceCYLiao","url":"https://github.com/VinceCYLiao","imageURL":"https://github.com/VinceCYLiao.png","key":"VinceCYLiao","page":null},"waldyrious":{"name":"Waldir Pimenta","alias":"waldyrious","url":"https://github.com/waldyrious","imageURL":"https://github.com/waldyrious.png","key":"waldyrious","page":null},"wceolin":{"name":"Will Ceolin","alias":"wceolin","url":"https://github.com/wceolin","imageURL":"https://github.com/wceolin.png","key":"wceolin","page":null},"webbertakken":{"name":"Webber Takken","alias":"webbertakken","url":"https://github.com/webbertakken","imageURL":"https://github.com/webbertakken.png","key":"webbertakken","page":null},"werner33":{"name":"Jordan Manley","alias":"werner33","url":"https://github.com/werner33","imageURL":"https://github.com/werner33.png","key":"werner33","page":null},"yangshun":{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null},"yosukekato165":{"name":"yosukekato165","alias":"yosukekato165","url":"https://github.com/yosukekato165","imageURL":"https://github.com/yosukekato165.png","key":"yosukekato165","page":null},"ori-shalom":{"name":"Ori Shalom","alias":"ori-shalom","url":"https://github.com/ori-shalom","imageURL":"https://github.com/ori-shalom.png","key":"ori-shalom","page":null},"TheCatLady":{"name":"TheCatLady","alias":"TheCatLady","url":"https://github.com/TheCatLady","imageURL":"https://github.com/TheCatLady.png","key":"TheCatLady","page":null},"armano2":{"name":"Armano","alias":"armano2","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png","key":"armano2","page":null},"LiberaTeMetuMortis":{"name":"MetuMortis","alias":"LiberaTeMetuMortis","url":"https://github.com/LiberaTeMetuMortis","imageURL":"https://github.com/LiberaTeMetuMortis.png","key":"LiberaTeMetuMortis","page":null},"morsko1":{"name":"Aleksandr Vladykin","alias":"morsko1","url":"https://github.com/morsko1","imageURL":"https://github.com/morsko1.png","key":"morsko1","page":null},"SACHINnANYAKKARA":{"name":"Sachin Nanayakkara","alias":"SACHINnANYAKKARA","url":"https://github.com/SACHINnANYAKKARA","imageURL":"https://github.com/SACHINnANYAKKARA.png","key":"SACHINnANYAKKARA","page":null},"Anasqx":{"name":"Anas","alias":"Anasqx","url":"https://github.com/Anasqx","imageURL":"https://github.com/Anasqx.png","key":"Anasqx","page":null},"dewanshDT":{"name":"Dewansh Thakur","alias":"dewanshDT","url":"https://github.com/dewanshDT","imageURL":"https://github.com/dewanshDT.png","key":"dewanshDT","page":null},"dr0nn1":{"name":"Petter Dr\xf8nnen","alias":"dr0nn1","url":"https://github.com/dr0nn1","imageURL":"https://github.com/dr0nn1.png","key":"dr0nn1","page":null},"kagankan":{"name":"Kagan","alias":"kagankan","url":"https://github.com/kagankan","imageURL":"https://github.com/kagankan.png","key":"kagankan","page":null},"pReya":{"name":"Moritz St\xfcckler","alias":"pReya","url":"https://github.com/pReya","imageURL":"https://github.com/pReya.png","key":"pReya","page":null},"tannerdolby":{"name":"Tanner Dolby","alias":"tannerdolby","url":"https://github.com/tannerdolby","imageURL":"https://github.com/tannerdolby.png","key":"tannerdolby","page":null},"trueqap":{"name":"TrueQAP","alias":"trueqap","url":"https://github.com/trueqap","imageURL":"https://github.com/trueqap.png","key":"trueqap","page":null},"Vishruta-Patil":{"name":"Vishruta Patil","alias":"Vishruta-Patil","url":"https://github.com/Vishruta-Patil","imageURL":"https://github.com/Vishruta-Patil.png","key":"Vishruta-Patil","page":null},"ZarakiKanzaki":{"name":"Davide Donadio","alias":"ZarakiKanzaki","url":"https://github.com/ZarakiKanzaki","imageURL":"https://github.com/ZarakiKanzaki.png","key":"ZarakiKanzaki","page":null},"scastiel":{"name":"S\xe9bastien Castiel","alias":"scastiel","url":"https://github.com/scastiel","imageURL":"https://github.com/scastiel.png","key":"scastiel","page":null},"0916dhkim":{"name":"Danny Kim","alias":"0916dhkim","url":"https://github.com/0916dhkim","imageURL":"https://github.com/0916dhkim.png","key":"0916dhkim","page":null},"3v0k4":{"name":"Riccardo","alias":"3v0k4","url":"https://github.com/3v0k4","imageURL":"https://github.com/3v0k4.png","key":"3v0k4","page":null},"denis-alkhelali":{"name":"Denis Al-Khelali","alias":"denis-alkhelali","url":"https://github.com/denis-alkhelali","imageURL":"https://github.com/denis-alkhelali.png","key":"denis-alkhelali","page":null},"friederbluemle":{"name":"Frieder Bluemle","alias":"friederbluemle","url":"https://github.com/friederbluemle","imageURL":"https://github.com/friederbluemle.png","key":"friederbluemle","page":null},"JoshuaKGoldberg":{"name":"Josh Goldberg","alias":"JoshuaKGoldberg","url":"https://github.com/JoshuaKGoldberg","imageURL":"https://github.com/JoshuaKGoldberg.png","key":"JoshuaKGoldberg","page":null},"lachieh":{"name":"Lachlan Heywood","alias":"lachieh","url":"https://github.com/lachieh","imageURL":"https://github.com/lachieh.png","key":"lachieh","page":null},"MatijaSi":{"name":"Matija Sirk","alias":"MatijaSi","url":"https://github.com/MatijaSi","imageURL":"https://github.com/MatijaSi.png","key":"MatijaSi","page":null},"mhnaeem":{"name":"Muhammad Hammad","alias":"mhnaeem","url":"https://github.com/mhnaeem","imageURL":"https://github.com/mhnaeem.png","key":"mhnaeem","page":null},"mturoci":{"name":"mturoci","alias":"mturoci","url":"https://github.com/mturoci","imageURL":"https://github.com/mturoci.png","key":"mturoci","page":null},"SJFCS":{"name":"\u5B8B\u9526\u4E30","alias":"SJFCS","url":"https://github.com/SJFCS","imageURL":"https://github.com/SJFCS.png","key":"SJFCS","page":null},"stnor":{"name":"Stefan Norberg","alias":"stnor","url":"https://github.com/stnor","imageURL":"https://github.com/stnor.png","key":"stnor","page":null},"Thomascogez":{"name":"Thomas.CA","alias":"Thomascogez","url":"https://github.com/Thomascogez","imageURL":"https://github.com/Thomascogez.png","key":"Thomascogez","page":null},"adnanhashmi09":{"name":"Adnan Hashmi","alias":"adnanhashmi09","url":"https://github.com/adnanhashmi09","imageURL":"https://github.com/adnanhashmi09.png","key":"adnanhashmi09","page":null},"birjj":{"name":"Johan Fagerberg","alias":"birjj","url":"https://github.com/birjj","imageURL":"https://github.com/birjj.png","key":"birjj","page":null},"e-im":{"name":"evan","alias":"e-im","url":"https://github.com/e-im","imageURL":"https://github.com/e-im.png","key":"e-im","page":null},"forgeRW":{"name":"forgeRW","alias":"forgeRW","url":"https://github.com/forgeRW","imageURL":"https://github.com/forgeRW.png","key":"forgeRW","page":null},"jeferson-sb":{"name":"Jeferson S. Brito","alias":"jeferson-sb","url":"https://github.com/jeferson-sb","imageURL":"https://github.com/jeferson-sb.png","key":"jeferson-sb","page":null},"JPeer264":{"name":"Jan Peer St\xf6cklmair","alias":"JPeer264","url":"https://github.com/JPeer264","imageURL":"https://github.com/JPeer264.png","key":"JPeer264","page":null},"LittleboyHarry":{"name":"LittleboyHarry","alias":"LittleboyHarry","url":"https://github.com/LittleboyHarry","imageURL":"https://github.com/LittleboyHarry.png","key":"LittleboyHarry","page":null},"pasora":{"name":"Masahiko Hara","alias":"pasora","url":"https://github.com/pasora","imageURL":"https://github.com/pasora.png","key":"pasora","page":null},"Pranav2612000":{"name":"Pranav Joglekar","alias":"Pranav2612000","url":"https://github.com/Pranav2612000","imageURL":"https://github.com/Pranav2612000.png","key":"Pranav2612000","page":null},"ramazansancar":{"name":"Ramazan SANCAR","alias":"ramazansancar","url":"https://github.com/ramazansancar","imageURL":"https://github.com/ramazansancar.png","key":"ramazansancar","page":null},"shanpriyan":{"name":"Shanmughapriyan S","alias":"shanpriyan","url":"https://github.com/shanpriyan","imageURL":"https://github.com/shanpriyan.png","key":"shanpriyan","page":null},"sjwall":{"name":"Sam Wall","alias":"sjwall","url":"https://github.com/sjwall","imageURL":"https://github.com/sjwall.png","key":"sjwall","page":null},"Xabilahu":{"name":"Xabier Lahuerta Vazquez","alias":"Xabilahu","url":"https://github.com/Xabilahu","imageURL":"https://github.com/Xabilahu.png","key":"Xabilahu","page":null},"adventure-yunfei":{"name":"adventure-yunfei","alias":"adventure-yunfei","url":"https://github.com/adventure-yunfei","imageURL":"https://github.com/adventure-yunfei.png","key":"adventure-yunfei","page":null},"b-ovsepian":{"name":"Bagdasar Ovsepyan","alias":"b-ovsepian","url":"https://github.com/b-ovsepian","imageURL":"https://github.com/b-ovsepian.png","key":"b-ovsepian","page":null},"datlechin":{"name":"Ng\xf4 Qu\u1ED1c \u0110\u1EA1t","alias":"datlechin","url":"https://github.com/datlechin","imageURL":"https://github.com/datlechin.png","key":"datlechin","page":null},"Kosai106":{"name":"Kevin \xd8sterkilde","alias":"Kosai106","url":"https://github.com/Kosai106","imageURL":"https://github.com/Kosai106.png","key":"Kosai106","page":null},"mdubus":{"name":"Morgane Dubus","alias":"mdubus","url":"https://github.com/mdubus","imageURL":"https://github.com/mdubus.png","key":"mdubus","page":null},"whiteand":{"name":"whiteand","alias":"whiteand","url":"https://github.com/whiteand","imageURL":"https://github.com/whiteand.png","key":"whiteand","page":null},"YoniChechik":{"name":"Yoni Chechik","alias":"YoniChechik","url":"https://github.com/YoniChechik","imageURL":"https://github.com/YoniChechik.png","key":"YoniChechik","page":null},"yzhe819":{"name":"yzhe819","alias":"yzhe819","url":"https://github.com/yzhe819","imageURL":"https://github.com/yzhe819.png","key":"yzhe819","page":null},"DigiPie":{"name":"Evan","alias":"DigiPie","url":"https://github.com/DigiPie","imageURL":"https://github.com/DigiPie.png","key":"DigiPie","page":null},"Gary50613":{"name":"\u51F1\u6069 Kane","alias":"Gary50613","url":"https://github.com/Gary50613","imageURL":"https://github.com/Gary50613.png","key":"Gary50613","page":null},"ghostsquad":{"name":"Wes McNamee","alias":"ghostsquad","url":"https://github.com/ghostsquad","imageURL":"https://github.com/ghostsquad.png","key":"ghostsquad","page":null},"jeffreyaven":{"name":"Jeffrey Aven","alias":"jeffreyaven","url":"https://github.com/jeffreyaven","imageURL":"https://github.com/jeffreyaven.png","key":"jeffreyaven","page":null},"LichLord91":{"name":"LichLord91","alias":"LichLord91","url":"https://github.com/LichLord91","imageURL":"https://github.com/LichLord91.png","key":"LichLord91","page":null},"RoiArthurB":{"name":"Arthur Brugi\xe8re","alias":"RoiArthurB","url":"https://github.com/RoiArthurB","imageURL":"https://github.com/RoiArthurB.png","key":"RoiArthurB","page":null},"treoden":{"name":"The Nguyen","alias":"treoden","url":"https://github.com/treoden","imageURL":"https://github.com/treoden.png","key":"treoden","page":null},"201flaviosilva":{"name":"Fl\xe1vio Silva","alias":"201flaviosilva","url":"https://github.com/201flaviosilva","imageURL":"https://github.com/201flaviosilva.png","key":"201flaviosilva","page":null},"7Wate":{"name":"7Wate","alias":"7Wate","url":"https://github.com/7Wate","imageURL":"https://github.com/7Wate.png","key":"7Wate","page":null},"AkagiYui":{"name":"\u8D64\u57CE\u7ED3\u8863","alias":"AkagiYui","url":"https://github.com/AkagiYui","imageURL":"https://github.com/AkagiYui.png","key":"AkagiYui","page":null},"alewolf":{"name":"alewolf","alias":"alewolf","url":"https://github.com/alewolf","imageURL":"https://github.com/alewolf.png","key":"alewolf","page":null},"alexandernst":{"name":"Alexander Nestorov","alias":"alexandernst","url":"https://github.com/alexandernst","imageURL":"https://github.com/alexandernst.png","key":"alexandernst","page":null},"Altomy":{"name":"Ahmed Altomy","alias":"Altomy","url":"https://github.com/Altomy","imageURL":"https://github.com/Altomy.png","key":"Altomy","page":null},"bcabanes":{"name":"Benjamin Cabanes","alias":"bcabanes","url":"https://github.com/bcabanes","imageURL":"https://github.com/bcabanes.png","key":"bcabanes","page":null},"BenDMyers":{"name":"Ben Myers","alias":"BenDMyers","url":"https://github.com/BenDMyers","imageURL":"https://github.com/BenDMyers.png","key":"BenDMyers","page":null},"Boulet-":{"name":"Boulet","alias":"Boulet-","url":"https://github.com/Boulet-","imageURL":"https://github.com/Boulet-.png","key":"Boulet-","page":null},"cbebe":{"name":"Charles Ancheta","alias":"cbebe","url":"https://github.com/cbebe","imageURL":"https://github.com/cbebe.png","key":"cbebe","page":null},"clemiee":{"name":"Clemie McCartney","alias":"clemiee","url":"https://github.com/clemiee","imageURL":"https://github.com/clemiee.png","key":"clemiee","page":null},"DharsanB":{"name":"Dharsan B","alias":"DharsanB","url":"https://github.com/DharsanB","imageURL":"https://github.com/DharsanB.png","key":"DharsanB","page":null},"dht":{"name":"dht","alias":"dht","url":"https://github.com/dht","imageURL":"https://github.com/dht.png","key":"dht","page":null},"difranca":{"name":"Diego Fran\xe7a","alias":"difranca","url":"https://github.com/difranca","imageURL":"https://github.com/difranca.png","key":"difranca","page":null},"dpang314":{"name":"dpang314","alias":"dpang314","url":"https://github.com/dpang314","imageURL":"https://github.com/dpang314.png","key":"dpang314","page":null},"emattia":{"name":"emattia","alias":"emattia","url":"https://github.com/emattia","imageURL":"https://github.com/emattia.png","key":"emattia","page":null},"HyunseungLee-Travis":{"name":"Hyunseung Lee","alias":"HyunseungLee-Travis","url":"https://github.com/HyunseungLee-Travis","imageURL":"https://github.com/HyunseungLee-Travis.png","key":"HyunseungLee-Travis","page":null},"JeremyDolle":{"name":"DOLLE","alias":"JeremyDolle","url":"https://github.com/JeremyDolle","imageURL":"https://github.com/JeremyDolle.png","key":"JeremyDolle","page":null},"johnie":{"name":"Johnie Hjelm","alias":"johnie","url":"https://github.com/johnie","imageURL":"https://github.com/johnie.png","key":"johnie","page":null},"jpdriver":{"name":"JP","alias":"jpdriver","url":"https://github.com/jpdriver","imageURL":"https://github.com/jpdriver.png","key":"jpdriver","page":null},"jqshuv":{"name":"Joshua Schmitt","alias":"jqshuv","url":"https://github.com/jqshuv","imageURL":"https://github.com/jqshuv.png","key":"jqshuv","page":null},"kursatsmsek":{"name":"K\xfcr\u015Fat \u015Eim\u015Fek","alias":"kursatsmsek","url":"https://github.com/kursatsmsek","imageURL":"https://github.com/kursatsmsek.png","key":"kursatsmsek","page":null},"matkoch":{"name":"Matthias Koch","alias":"matkoch","url":"https://github.com/matkoch","imageURL":"https://github.com/matkoch.png","key":"matkoch","page":null},"metal-young":{"name":"\u674E\u5C0F\u96E8","alias":"metal-young","url":"https://github.com/metal-young","imageURL":"https://github.com/metal-young.png","key":"metal-young","page":null},"pincman":{"name":"pincman","alias":"pincman","url":"https://github.com/pincman","imageURL":"https://github.com/pincman.png","key":"pincman","page":null},"redcamel":{"name":"Redcamel","alias":"redcamel","url":"https://github.com/redcamel","imageURL":"https://github.com/redcamel.png","key":"redcamel","page":null},"reinvanhaaren":{"name":"Rein van Haaren","alias":"reinvanhaaren","url":"https://github.com/reinvanhaaren","imageURL":"https://github.com/reinvanhaaren.png","key":"reinvanhaaren","page":null},"RudraSen2":{"name":"Rudra Sen","alias":"RudraSen2","url":"https://github.com/RudraSen2","imageURL":"https://github.com/RudraSen2.png","key":"RudraSen2","page":null},"sado0823":{"name":"sado","alias":"sado0823","url":"https://github.com/sado0823","imageURL":"https://github.com/sado0823.png","key":"sado0823","page":null},"saosangmo":{"name":"Dzung Do","alias":"saosangmo","url":"https://github.com/saosangmo","imageURL":"https://github.com/saosangmo.png","key":"saosangmo","page":null},"scopsy":{"name":"Dima Grossman","alias":"scopsy","url":"https://github.com/scopsy","imageURL":"https://github.com/scopsy.png","key":"scopsy","page":null},"SheetJSDev":{"name":"SheetJSDev","alias":"SheetJSDev","url":"https://github.com/SheetJSDev","imageURL":"https://github.com/SheetJSDev.png","key":"SheetJSDev","page":null},"sigwinch28":{"name":"Joe Harrison","alias":"sigwinch28","url":"https://github.com/sigwinch28","imageURL":"https://github.com/sigwinch28.png","key":"sigwinch28","page":null},"Smilefounder":{"name":"Huy Nguyen","alias":"Smilefounder","url":"https://github.com/Smilefounder","imageURL":"https://github.com/Smilefounder.png","key":"Smilefounder","page":null},"sserrata":{"name":"Steven Serrata","alias":"sserrata","url":"https://github.com/sserrata","imageURL":"https://github.com/sserrata.png","key":"sserrata","page":null},"szilarddoro":{"name":"Szil\xe1rd D\xf3r\xf3","alias":"szilarddoro","url":"https://github.com/szilarddoro","imageURL":"https://github.com/szilarddoro.png","key":"szilarddoro","page":null},"vannyle":{"name":"Le Thi Van","alias":"vannyle","url":"https://github.com/vannyle","imageURL":"https://github.com/vannyle.png","key":"vannyle","page":null},"zpao":{"name":"Paul O\u2019Shannessy","alias":"zpao","url":"https://github.com/zpao","imageURL":"https://github.com/zpao.png","key":"zpao","page":null},"BenDz":{"name":"Benjamin Diolez","alias":"BenDz","url":"https://github.com/BenDz","imageURL":"https://github.com/BenDz.png","key":"BenDz","page":null},"charleskorn":{"name":"Charles Korn","alias":"charleskorn","url":"https://github.com/charleskorn","imageURL":"https://github.com/charleskorn.png","key":"charleskorn","page":null},"Designatory":{"name":"Designatory","alias":"Designatory","url":"https://github.com/Designatory","imageURL":"https://github.com/Designatory.png","key":"Designatory","page":null},"ggicci":{"name":"Ggicci","alias":"ggicci","url":"https://github.com/ggicci","imageURL":"https://github.com/ggicci.png","key":"ggicci","page":null},"jrmyw92":{"name":"Jeremy","alias":"jrmyw92","url":"https://github.com/jrmyw92","imageURL":"https://github.com/jrmyw92.png","key":"jrmyw92","page":null},"junjieweb":{"name":"Junjie","alias":"junjieweb","url":"https://github.com/junjieweb","imageURL":"https://github.com/junjieweb.png","key":"junjieweb","page":null},"massoudmaboudi":{"name":"Massoud Maboudi","alias":"massoudmaboudi","url":"https://github.com/massoudmaboudi","imageURL":"https://github.com/massoudmaboudi.png","key":"massoudmaboudi","page":null},"Messiahhh":{"name":"Akara","alias":"Messiahhh","url":"https://github.com/Messiahhh","imageURL":"https://github.com/Messiahhh.png","key":"Messiahhh","page":null},"mhughes2k":{"name":"Michael Hughes","alias":"mhughes2k","url":"https://github.com/mhughes2k","imageURL":"https://github.com/mhughes2k.png","key":"mhughes2k","page":null},"nitya":{"name":"Nitya Narasimhan","alias":"nitya","url":"https://github.com/nitya","imageURL":"https://github.com/nitya.png","key":"nitya","page":null},"pranabdas":{"name":"Pranab Das","alias":"pranabdas","url":"https://github.com/pranabdas","imageURL":"https://github.com/pranabdas.png","key":"pranabdas","page":null},"RuiAAPeres":{"name":"Rui Peres","alias":"RuiAAPeres","url":"https://github.com/RuiAAPeres","imageURL":"https://github.com/RuiAAPeres.png","key":"RuiAAPeres","page":null},"Zamiell":{"name":"James","alias":"Zamiell","url":"https://github.com/Zamiell","imageURL":"https://github.com/Zamiell.png","key":"Zamiell","page":null},"pepopowitz":{"name":"Steven Hicks","alias":"pepopowitz","url":"https://github.com/pepopowitz","imageURL":"https://github.com/pepopowitz.png","key":"pepopowitz","page":null},"RDIL":{"name":"Reece Dunham","alias":"RDIL","url":"https://github.com/RDIL","imageURL":"https://github.com/RDIL.png","key":"RDIL","page":null},"sgromkov":{"name":"Sergey Gromkov","alias":"sgromkov","url":"https://github.com/sgromkov","imageURL":"https://github.com/sgromkov.png","key":"sgromkov","page":null},"aerovulpe":{"name":"Aaron Nwabuoku","alias":"aerovulpe","url":"https://github.com/aerovulpe","imageURL":"https://github.com/aerovulpe.png","key":"aerovulpe","page":null},"AkiraVoid":{"name":"AkiraVoid","alias":"AkiraVoid","url":"https://github.com/AkiraVoid","imageURL":"https://github.com/AkiraVoid.png","key":"AkiraVoid","page":null},"AntonPalmqvist":{"name":"apq","alias":"AntonPalmqvist","url":"https://github.com/AntonPalmqvist","imageURL":"https://github.com/AntonPalmqvist.png","key":"AntonPalmqvist","page":null},"ApsarasX":{"name":"ApsarasX","alias":"ApsarasX","url":"https://github.com/ApsarasX","imageURL":"https://github.com/ApsarasX.png","key":"ApsarasX","page":null},"chelproc":{"name":"chelproc","alias":"chelproc","url":"https://github.com/chelproc","imageURL":"https://github.com/chelproc.png","key":"chelproc","page":null},"chernodub":{"name":"Viktor Chernodub","alias":"chernodub","url":"https://github.com/chernodub","imageURL":"https://github.com/chernodub.png","key":"chernodub","page":null},"CuratorCat":{"name":"curatorcat.pcc.eth","alias":"CuratorCat","url":"https://github.com/CuratorCat","imageURL":"https://github.com/CuratorCat.png","key":"CuratorCat","page":null},"cwen0":{"name":"Cwen Yin","alias":"cwen0","url":"https://github.com/cwen0","imageURL":"https://github.com/cwen0.png","key":"cwen0","page":null},"cxOrz":{"name":"Fusang\u2740","alias":"cxOrz","url":"https://github.com/cxOrz","imageURL":"https://github.com/cxOrz.png","key":"cxOrz","page":null},"deiucanta":{"name":"Andrei Canta","alias":"deiucanta","url":"https://github.com/deiucanta","imageURL":"https://github.com/deiucanta.png","key":"deiucanta","page":null},"deployn":{"name":"deployn","alias":"deployn","url":"https://github.com/deployn","imageURL":"https://github.com/deployn.png","key":"deployn","page":null},"dr-ngubo":{"name":"Chinazaekpere Ngubo","alias":"dr-ngubo","url":"https://github.com/dr-ngubo","imageURL":"https://github.com/dr-ngubo.png","key":"dr-ngubo","page":null},"duanwilliam":{"name":"duanwilliam","alias":"duanwilliam","url":"https://github.com/duanwilliam","imageURL":"https://github.com/duanwilliam.png","key":"duanwilliam","page":null},"elias-pap":{"name":"Elias Papavasileiou","alias":"elias-pap","url":"https://github.com/elias-pap","imageURL":"https://github.com/elias-pap.png","key":"elias-pap","page":null},"imsingh":{"name":"Indermohan Singh","alias":"imsingh","url":"https://github.com/imsingh","imageURL":"https://github.com/imsingh.png","key":"imsingh","page":null},"JohnnyMcWeed":{"name":"JMW","alias":"JohnnyMcWeed","url":"https://github.com/JohnnyMcWeed","imageURL":"https://github.com/JohnnyMcWeed.png","key":"JohnnyMcWeed","page":null},"kaycebasques":{"name":"Kayce Basques","alias":"kaycebasques","url":"https://github.com/kaycebasques","imageURL":"https://github.com/kaycebasques.png","key":"kaycebasques","page":null},"kgolubic":{"name":"kgolubic","alias":"kgolubic","url":"https://github.com/kgolubic","imageURL":"https://github.com/kgolubic.png","key":"kgolubic","page":null},"layerzzzio":{"name":"loic","alias":"layerzzzio","url":"https://github.com/layerzzzio","imageURL":"https://github.com/layerzzzio.png","key":"layerzzzio","page":null},"leedom92":{"name":"Leedom","alias":"leedom92","url":"https://github.com/leedom92","imageURL":"https://github.com/leedom92.png","key":"leedom92","page":null},"LeviticusMB":{"name":"Martin Blom","alias":"LeviticusMB","url":"https://github.com/LeviticusMB","imageURL":"https://github.com/LeviticusMB.png","key":"LeviticusMB","page":null},"lukasbach":{"name":"Lukas Bach","alias":"lukasbach","url":"https://github.com/lukasbach","imageURL":"https://github.com/lukasbach.png","key":"lukasbach","page":null},"mjau-mjau":{"name":"Karl Ward","alias":"mjau-mjau","url":"https://github.com/mjau-mjau","imageURL":"https://github.com/mjau-mjau.png","key":"mjau-mjau","page":null},"mxhdx":{"name":"mehdim","alias":"mxhdx","url":"https://github.com/mxhdx","imageURL":"https://github.com/mxhdx.png","key":"mxhdx","page":null},"nartc":{"name":"Chau Tran","alias":"nartc","url":"https://github.com/nartc","imageURL":"https://github.com/nartc.png","key":"nartc","page":null},"naveensrinivasan":{"name":"Naveen","alias":"naveensrinivasan","url":"https://github.com/naveensrinivasan","imageURL":"https://github.com/naveensrinivasan.png","key":"naveensrinivasan","page":null},"pcordon":{"name":"Pablo Cordon","alias":"pcordon","url":"https://github.com/pcordon","imageURL":"https://github.com/pcordon.png","key":"pcordon","page":null},"phryneas":{"name":"Lenz Weber-Tronic","alias":"phryneas","url":"https://github.com/phryneas","imageURL":"https://github.com/phryneas.png","key":"phryneas","page":null},"Pierre-Gilles":{"name":"Pierre-Gilles Leymarie","alias":"Pierre-Gilles","url":"https://github.com/Pierre-Gilles","imageURL":"https://github.com/Pierre-Gilles.png","key":"Pierre-Gilles","page":null},"redhat123456":{"name":"redhat123456","alias":"redhat123456","url":"https://github.com/redhat123456","imageURL":"https://github.com/redhat123456.png","key":"redhat123456","page":null},"rev4324":{"name":"rev","alias":"rev4324","url":"https://github.com/rev4324","imageURL":"https://github.com/rev4324.png","key":"rev4324","page":null},"sandypockets":{"name":"Zac A","alias":"sandypockets","url":"https://github.com/sandypockets","imageURL":"https://github.com/sandypockets.png","key":"sandypockets","page":null},"shczhen":{"name":"czhen","alias":"shczhen","url":"https://github.com/shczhen","imageURL":"https://github.com/shczhen.png","key":"shczhen","page":null},"sulu5890":{"name":"Evan","alias":"sulu5890","url":"https://github.com/sulu5890","imageURL":"https://github.com/sulu5890.png","key":"sulu5890","page":null},"surendran82":{"name":"surendran82","alias":"surendran82","url":"https://github.com/surendran82","imageURL":"https://github.com/surendran82.png","key":"surendran82","page":null},"svix-ken":{"name":"svix-ken","alias":"svix-ken","url":"https://github.com/svix-ken","imageURL":"https://github.com/svix-ken.png","key":"svix-ken","page":null},"zzzhangqi":{"name":"Qi Zhang","alias":"zzzhangqi","url":"https://github.com/zzzhangqi","imageURL":"https://github.com/zzzhangqi.png","key":"zzzhangqi","page":null},"afonsojramos":{"name":"Afonso Jorge Ramos","alias":"afonsojramos","url":"https://github.com/afonsojramos","imageURL":"https://github.com/afonsojramos.png","key":"afonsojramos","page":null},"alefesta":{"name":"Alessandro Festa","alias":"alefesta","url":"https://github.com/alefesta","imageURL":"https://github.com/alefesta.png","key":"alefesta","page":null},"aloisklink":{"name":"Alois Klink","alias":"aloisklink","url":"https://github.com/aloisklink","imageURL":"https://github.com/aloisklink.png","key":"aloisklink","page":null},"arifszn":{"name":"Ariful Alam","alias":"arifszn","url":"https://github.com/arifszn","imageURL":"https://github.com/arifszn.png","key":"arifszn","page":null},"dragomano":{"name":"Bugo","alias":"dragomano","url":"https://github.com/dragomano","imageURL":"https://github.com/dragomano.png","key":"dragomano","page":null},"felipecrs":{"name":"Felipe Santos","alias":"felipecrs","url":"https://github.com/felipecrs","imageURL":"https://github.com/felipecrs.png","key":"felipecrs","page":null},"hand-dot":{"name":"Kyohei Fukuda","alias":"hand-dot","url":"https://github.com/hand-dot","imageURL":"https://github.com/hand-dot.png","key":"hand-dot","page":null},"heowc":{"name":"WonChul Heo","alias":"heowc","url":"https://github.com/heowc","imageURL":"https://github.com/heowc.png","key":"heowc","page":null},"jadonn":{"name":"Jadon N","alias":"jadonn","url":"https://github.com/jadonn","imageURL":"https://github.com/jadonn.png","key":"jadonn","page":null},"jrvidal":{"name":"Roberto Vidal","alias":"jrvidal","url":"https://github.com/jrvidal","imageURL":"https://github.com/jrvidal.png","key":"jrvidal","page":null},"moonrailgun":{"name":"moonrailgun","alias":"moonrailgun","url":"https://github.com/moonrailgun","imageURL":"https://github.com/moonrailgun.png","key":"moonrailgun","page":null},"nathan-contino-mongo":{"name":"nate contino","alias":"nathan-contino-mongo","url":"https://github.com/nathan-contino-mongo","imageURL":"https://github.com/nathan-contino-mongo.png","key":"nathan-contino-mongo","page":null},"odarpi":{"name":"Odarpi","alias":"odarpi","url":"https://github.com/odarpi","imageURL":"https://github.com/odarpi.png","key":"odarpi","page":null},"PatelN123":{"name":"Nayan Patel","alias":"PatelN123","url":"https://github.com/PatelN123","imageURL":"https://github.com/PatelN123.png","key":"PatelN123","page":null},"pkowaluk":{"name":"Pawel Kowaluk","alias":"pkowaluk","url":"https://github.com/pkowaluk","imageURL":"https://github.com/pkowaluk.png","key":"pkowaluk","page":null},"rccttwd":{"name":"Tsz W. TAM","alias":"rccttwd","url":"https://github.com/rccttwd","imageURL":"https://github.com/rccttwd.png","key":"rccttwd","page":null},"samgutentag":{"name":"Sam Gutentag","alias":"samgutentag","url":"https://github.com/samgutentag","imageURL":"https://github.com/samgutentag.png","key":"samgutentag","page":null},"seladb":{"name":"seladb","alias":"seladb","url":"https://github.com/seladb","imageURL":"https://github.com/seladb.png","key":"seladb","page":null},"taejs":{"name":"tae","alias":"taejs","url":"https://github.com/taejs","imageURL":"https://github.com/taejs.png","key":"taejs","page":null},"vedantmgoyal2009":{"name":"Begula","alias":"vedantmgoyal2009","url":"https://github.com/vedantmgoyal2009","imageURL":"https://github.com/vedantmgoyal2009.png","key":"vedantmgoyal2009","page":null},"yorkie":{"name":"Yorkie Liu","alias":"yorkie","url":"https://github.com/yorkie","imageURL":"https://github.com/yorkie.png","key":"yorkie","page":null},"anicholls":{"name":"Alex Nicholls","alias":"anicholls","url":"https://github.com/anicholls","imageURL":"https://github.com/anicholls.png","key":"anicholls","page":null},"dmitryvinn":{"name":"Dmitry Vinnik","alias":"dmitryvinn","url":"https://github.com/dmitryvinn","imageURL":"https://github.com/dmitryvinn.png","key":"dmitryvinn","page":null},"dstotijn":{"name":"David Stotijn","alias":"dstotijn","url":"https://github.com/dstotijn","imageURL":"https://github.com/dstotijn.png","key":"dstotijn","page":null},"vaibhavshn":{"name":"Vaibhav Shinde","alias":"vaibhavshn","url":"https://github.com/vaibhavshn","imageURL":"https://github.com/vaibhavshn.png","key":"vaibhavshn","page":null},"apidev234":{"name":"Gaurish","alias":"apidev234","url":"https://github.com/apidev234","imageURL":"https://github.com/apidev234.png","key":"apidev234","page":null},"artemkovalyov":{"name":"Artem Kovalov","alias":"artemkovalyov","url":"https://github.com/artemkovalyov","imageURL":"https://github.com/artemkovalyov.png","key":"artemkovalyov","page":null},"BigDataWriter":{"name":"BigDataWriter","alias":"BigDataWriter","url":"https://github.com/BigDataWriter","imageURL":"https://github.com/BigDataWriter.png","key":"BigDataWriter","page":null},"cdemonchy-pro":{"name":"Clement Demonchy","alias":"cdemonchy-pro","url":"https://github.com/cdemonchy-pro","imageURL":"https://github.com/cdemonchy-pro.png","key":"cdemonchy-pro","page":null},"CookieJarApps":{"name":"CookieJarApps","alias":"CookieJarApps","url":"https://github.com/CookieJarApps","imageURL":"https://github.com/CookieJarApps.png","key":"CookieJarApps","page":null},"dmitryvinn-fb":{"name":"Dmitry Vinnik | Meta","alias":"dmitryvinn-fb","url":"https://github.com/dmitryvinn-fb","imageURL":"https://github.com/dmitryvinn-fb.png","key":"dmitryvinn-fb","page":null},"ebarojas":{"name":"Everardo J. Barojas M.","alias":"ebarojas","url":"https://github.com/ebarojas","imageURL":"https://github.com/ebarojas.png","key":"ebarojas","page":null},"erickzhao":{"name":"Erick Zhao","alias":"erickzhao","url":"https://github.com/erickzhao","imageURL":"https://github.com/erickzhao.png","key":"erickzhao","page":null},"kalevski":{"name":"Daniel Kalevski","alias":"kalevski","url":"https://github.com/kalevski","imageURL":"https://github.com/kalevski.png","key":"kalevski","page":null},"kgajera":{"name":"Kishan Gajera","alias":"kgajera","url":"https://github.com/kgajera","imageURL":"https://github.com/kgajera.png","key":"kgajera","page":null},"koistya":{"name":"Konstantin Tarkus","alias":"koistya","url":"https://github.com/koistya","imageURL":"https://github.com/koistya.png","key":"koistya","page":null},"milesj":{"name":"Miles Johnson","alias":"milesj","url":"https://github.com/milesj","imageURL":"https://github.com/milesj.png","key":"milesj","page":null},"mrbrunelli":{"name":"Matheus Ricardo Brunelli","alias":"mrbrunelli","url":"https://github.com/mrbrunelli","imageURL":"https://github.com/mrbrunelli.png","key":"mrbrunelli","page":null},"NaseelNiyas":{"name":"Naseel Niyas","alias":"NaseelNiyas","url":"https://github.com/NaseelNiyas","imageURL":"https://github.com/NaseelNiyas.png","key":"NaseelNiyas","page":null},"nick-verida":{"name":"nick-verida","alias":"nick-verida","url":"https://github.com/nick-verida","imageURL":"https://github.com/nick-verida.png","key":"nick-verida","page":null},"nschonni":{"name":"Nick Schonning","alias":"nschonni","url":"https://github.com/nschonni","imageURL":"https://github.com/nschonni.png","key":"nschonni","page":null},"redhoyasa":{"name":"Muhammad Redho Ayassa","alias":"redhoyasa","url":"https://github.com/redhoyasa","imageURL":"https://github.com/redhoyasa.png","key":"redhoyasa","page":null},"Ruben-Arushanyan":{"name":"Ruben Arushanyan","alias":"Ruben-Arushanyan","url":"https://github.com/Ruben-Arushanyan","imageURL":"https://github.com/Ruben-Arushanyan.png","key":"Ruben-Arushanyan","page":null},"seyoon20087":{"name":"seyoon20087","alias":"seyoon20087","url":"https://github.com/seyoon20087","imageURL":"https://github.com/seyoon20087.png","key":"seyoon20087","page":null},"tamalweb":{"name":"Tamal Web","alias":"tamalweb","url":"https://github.com/tamalweb","imageURL":"https://github.com/tamalweb.png","key":"tamalweb","page":null},"thedanielhanke":{"name":"Daniel Hanke","alias":"thedanielhanke","url":"https://github.com/thedanielhanke","imageURL":"https://github.com/thedanielhanke.png","key":"thedanielhanke","page":null},"toto6038":{"name":"toto6038","alias":"toto6038","url":"https://github.com/toto6038","imageURL":"https://github.com/toto6038.png","key":"toto6038","page":null},"vidarc":{"name":"Matthew Ailes","alias":"vidarc","url":"https://github.com/vidarc","imageURL":"https://github.com/vidarc.png","key":"vidarc","page":null},"winterlood":{"name":"\uC774\uC815\uD658","alias":"winterlood","url":"https://github.com/winterlood","imageURL":"https://github.com/winterlood.png","key":"winterlood","page":null},"abahmed":{"name":"Abdelrahman Ahmed","alias":"abahmed","url":"https://github.com/abahmed","imageURL":"https://github.com/abahmed.png","key":"abahmed","page":null},"ajrice6713":{"name":"AJ Rice","alias":"ajrice6713","url":"https://github.com/ajrice6713","imageURL":"https://github.com/ajrice6713.png","key":"ajrice6713","page":null},"alexgrigoras":{"name":"Alexandru Grigoras","alias":"alexgrigoras","url":"https://github.com/alexgrigoras","imageURL":"https://github.com/alexgrigoras.png","key":"alexgrigoras","page":null},"alias-mac":{"name":"Filipe Guerra","alias":"alias-mac","url":"https://github.com/alias-mac","imageURL":"https://github.com/alias-mac.png","key":"alias-mac","page":null},"amir2mi":{"name":"Amir M. Mohamadi","alias":"amir2mi","url":"https://github.com/amir2mi","imageURL":"https://github.com/amir2mi.png","key":"amir2mi","page":null},"antmcc49":{"name":"Anthony McCaigue","alias":"antmcc49","url":"https://github.com/antmcc49","imageURL":"https://github.com/antmcc49.png","key":"antmcc49","page":null},"brendannee":{"name":"Brendan Nee","alias":"brendannee","url":"https://github.com/brendannee","imageURL":"https://github.com/brendannee.png","key":"brendannee","page":null},"cerkiewny":{"name":"Devtato","alias":"cerkiewny","url":"https://github.com/cerkiewny","imageURL":"https://github.com/cerkiewny.png","key":"cerkiewny","page":null},"davidebianchi":{"name":"Davide Bianchi","alias":"davidebianchi","url":"https://github.com/davidebianchi","imageURL":"https://github.com/davidebianchi.png","key":"davidebianchi","page":null},"edouardb":{"name":"Edouard Bonlieu","alias":"edouardb","url":"https://github.com/edouardb","imageURL":"https://github.com/edouardb.png","key":"edouardb","page":null},"FeodorFitsner":{"name":"Feodor Fitsner","alias":"FeodorFitsner","url":"https://github.com/FeodorFitsner","imageURL":"https://github.com/FeodorFitsner.png","key":"FeodorFitsner","page":null},"HiChen404":{"name":"Chen","alias":"HiChen404","url":"https://github.com/HiChen404","imageURL":"https://github.com/HiChen404.png","key":"HiChen404","page":null},"josephriosIO":{"name":"Joseph","alias":"josephriosIO","url":"https://github.com/josephriosIO","imageURL":"https://github.com/josephriosIO.png","key":"josephriosIO","page":null},"jwitz":{"name":"Jake Witz","alias":"jwitz","url":"https://github.com/jwitz","imageURL":"https://github.com/jwitz.png","key":"jwitz","page":null},"kaustubhk24":{"name":"Kaustubh Kulkarni","alias":"kaustubhk24","url":"https://github.com/kaustubhk24","imageURL":"https://github.com/kaustubhk24.png","key":"kaustubhk24","page":null},"kuizuo":{"name":"kuizuo","alias":"kuizuo","url":"https://github.com/kuizuo","imageURL":"https://github.com/kuizuo.png","key":"kuizuo","page":null},"lmpham1":{"name":"Minh Pham","alias":"lmpham1","url":"https://github.com/lmpham1","imageURL":"https://github.com/lmpham1.png","key":"lmpham1","page":null},"ltm":{"name":"Lars Mikkelsen","alias":"ltm","url":"https://github.com/ltm","imageURL":"https://github.com/ltm.png","key":"ltm","page":null},"megasanjay":{"name":"Sanjay Soundarajan","alias":"megasanjay","url":"https://github.com/megasanjay","imageURL":"https://github.com/megasanjay.png","key":"megasanjay","page":null},"MorookaKotaro":{"name":"Morooka Kotaro","alias":"MorookaKotaro","url":"https://github.com/MorookaKotaro","imageURL":"https://github.com/MorookaKotaro.png","key":"MorookaKotaro","page":null},"noomorph":{"name":"Yaroslav Serhieiev","alias":"noomorph","url":"https://github.com/noomorph","imageURL":"https://github.com/noomorph.png","key":"noomorph","page":null},"omeraplak":{"name":"\xd6mer Faruk APLAK","alias":"omeraplak","url":"https://github.com/omeraplak","imageURL":"https://github.com/omeraplak.png","key":"omeraplak","page":null},"rishi-raj-jain":{"name":"Rishi Raj Jain","alias":"rishi-raj-jain","url":"https://github.com/rishi-raj-jain","imageURL":"https://github.com/rishi-raj-jain.png","key":"rishi-raj-jain","page":null},"roydukkey":{"name":"roydukkey","alias":"roydukkey","url":"https://github.com/roydukkey","imageURL":"https://github.com/roydukkey.png","key":"roydukkey","page":null},"ruanqizhen":{"name":"ruanqizhen","alias":"ruanqizhen","url":"https://github.com/ruanqizhen","imageURL":"https://github.com/ruanqizhen.png","key":"ruanqizhen","page":null},"sgenoud":{"name":"sgenoud","alias":"sgenoud","url":"https://github.com/sgenoud","imageURL":"https://github.com/sgenoud.png","key":"sgenoud","page":null},"tapanchudasama":{"name":"Tapan Chudasama","alias":"tapanchudasama","url":"https://github.com/tapanchudasama","imageURL":"https://github.com/tapanchudasama.png","key":"tapanchudasama","page":null},"vandreleal":{"name":"Vandr\xe9 Leal","alias":"vandreleal","url":"https://github.com/vandreleal","imageURL":"https://github.com/vandreleal.png","key":"vandreleal","page":null},"wood3n":{"name":"wood3n","alias":"wood3n","url":"https://github.com/wood3n","imageURL":"https://github.com/wood3n.png","key":"wood3n","page":null},"christopherklint97":{"name":"Christopher Klint","alias":"christopherklint97","url":"https://github.com/christopherklint97","imageURL":"https://github.com/christopherklint97.png","key":"christopherklint97","page":null},"cmpadden":{"name":"colton","alias":"cmpadden","url":"https://github.com/cmpadden","imageURL":"https://github.com/cmpadden.png","key":"cmpadden","page":null},"Drylozu":{"name":"Drylozu","alias":"Drylozu","url":"https://github.com/Drylozu","imageURL":"https://github.com/Drylozu.png","key":"Drylozu","page":null},"favna":{"name":"Jeroen Claassens","alias":"favna","url":"https://github.com/favna","imageURL":"https://github.com/favna.png","key":"favna","page":null},"HarshCasper":{"name":"Harsh Mishra","alias":"HarshCasper","url":"https://github.com/HarshCasper","imageURL":"https://github.com/HarshCasper.png","key":"HarshCasper","page":null},"himanshu007-creator":{"name":"Himanshu","alias":"himanshu007-creator","url":"https://github.com/himanshu007-creator","imageURL":"https://github.com/himanshu007-creator.png","key":"himanshu007-creator","page":null},"merceyz":{"name":"Kristoffer K.","alias":"merceyz","url":"https://github.com/merceyz","imageURL":"https://github.com/merceyz.png","key":"merceyz","page":null},"notzheng":{"name":"\u4E0D\u90D1","alias":"notzheng","url":"https://github.com/notzheng","imageURL":"https://github.com/notzheng.png","key":"notzheng","page":null},"wewoor":{"name":"Ziv","alias":"wewoor","url":"https://github.com/wewoor","imageURL":"https://github.com/wewoor.png","key":"wewoor","page":null},"withshubh":{"name":"Shubhendra Singh Chauhan","alias":"withshubh","url":"https://github.com/withshubh","imageURL":"https://github.com/withshubh.png","key":"withshubh","page":null},"wowtvds":{"name":"Wout Vandesompele","alias":"wowtvds","url":"https://github.com/wowtvds","imageURL":"https://github.com/wowtvds.png","key":"wowtvds","page":null},"afshinm":{"name":"Afshin Mehrabani","alias":"afshinm","url":"https://github.com/afshinm","imageURL":"https://github.com/afshinm.png","key":"afshinm","page":null},"agrawal-rohit":{"name":"Rohit Agrawal","alias":"agrawal-rohit","url":"https://github.com/agrawal-rohit","imageURL":"https://github.com/agrawal-rohit.png","key":"agrawal-rohit","page":null},"cchaudier":{"name":"Christophe Chaudier","alias":"cchaudier","url":"https://github.com/cchaudier","imageURL":"https://github.com/cchaudier.png","key":"cchaudier","page":null},"chimailo":{"name":"chima ilo","alias":"chimailo","url":"https://github.com/chimailo","imageURL":"https://github.com/chimailo.png","key":"chimailo","page":null},"dexbiobot":{"name":"Shoaib Sajid","alias":"dexbiobot","url":"https://github.com/dexbiobot","imageURL":"https://github.com/dexbiobot.png","key":"dexbiobot","page":null},"dsmmcken":{"name":"Don","alias":"dsmmcken","url":"https://github.com/dsmmcken","imageURL":"https://github.com/dsmmcken.png","key":"dsmmcken","page":null},"fishmandev":{"name":"Dmitriy Fishman","alias":"fishmandev","url":"https://github.com/fishmandev","imageURL":"https://github.com/fishmandev.png","key":"fishmandev","page":null},"fsmaia":{"name":"Fernando Maia","alias":"fsmaia","url":"https://github.com/fsmaia","imageURL":"https://github.com/fsmaia.png","key":"fsmaia","page":null},"hbulens":{"name":"Hendrik Bulens","alias":"hbulens","url":"https://github.com/hbulens","imageURL":"https://github.com/hbulens.png","key":"hbulens","page":null},"HemantSachdeva":{"name":"Hemant Sachdeva","alias":"HemantSachdeva","url":"https://github.com/HemantSachdeva","imageURL":"https://github.com/HemantSachdeva.png","key":"HemantSachdeva","page":null},"JararvisQ":{"name":"Jarar","alias":"JararvisQ","url":"https://github.com/JararvisQ","imageURL":"https://github.com/JararvisQ.png","key":"JararvisQ","page":null},"jeffski":{"name":"Jeff Shillitto","alias":"jeffski","url":"https://github.com/jeffski","imageURL":"https://github.com/jeffski.png","key":"jeffski","page":null},"juffalow":{"name":"Matej Jellus","alias":"juffalow","url":"https://github.com/juffalow","imageURL":"https://github.com/juffalow.png","key":"juffalow","page":null},"juzhiyuan":{"name":"\u741A\u81F4\u8FDC","alias":"juzhiyuan","url":"https://github.com/juzhiyuan","imageURL":"https://github.com/juzhiyuan.png","key":"juzhiyuan","page":null},"KonstHardy":{"name":"Konstantin Popov","alias":"KonstHardy","url":"https://github.com/KonstHardy","imageURL":"https://github.com/KonstHardy.png","key":"KonstHardy","page":null},"ludofischer":{"name":"Ludovico Fischer","alias":"ludofischer","url":"https://github.com/ludofischer","imageURL":"https://github.com/ludofischer.png","key":"ludofischer","page":null},"Martinsos":{"name":"Martin \u0160o\u0161i\u0107","alias":"Martinsos","url":"https://github.com/Martinsos","imageURL":"https://github.com/Martinsos.png","key":"Martinsos","page":null},"matthijsgroen":{"name":"Matthijs Groen","alias":"matthijsgroen","url":"https://github.com/matthijsgroen","imageURL":"https://github.com/matthijsgroen.png","key":"matthijsgroen","page":null},"MisterFISHUP":{"name":"MisterFISHUP","alias":"MisterFISHUP","url":"https://github.com/MisterFISHUP","imageURL":"https://github.com/MisterFISHUP.png","key":"MisterFISHUP","page":null},"molly":{"name":"Molly White","alias":"molly","url":"https://github.com/molly","imageURL":"https://github.com/molly.png","key":"molly","page":null},"oriooctopus":{"name":"Oliver Ullman","alias":"oriooctopus","url":"https://github.com/oriooctopus","imageURL":"https://github.com/oriooctopus.png","key":"oriooctopus","page":null},"pal-sig":{"name":"pal-sig","alias":"pal-sig","url":"https://github.com/pal-sig","imageURL":"https://github.com/pal-sig.png","key":"pal-sig","page":null},"Patitotective":{"name":"Patitotective","alias":"Patitotective","url":"https://github.com/Patitotective","imageURL":"https://github.com/Patitotective.png","key":"Patitotective","page":null},"patrikmasiar":{"name":"Patrik M\xe4siar","alias":"patrikmasiar","url":"https://github.com/patrikmasiar","imageURL":"https://github.com/patrikmasiar.png","key":"patrikmasiar","page":null},"pbiggar":{"name":"Paul Biggar","alias":"pbiggar","url":"https://github.com/pbiggar","imageURL":"https://github.com/pbiggar.png","key":"pbiggar","page":null},"polarathene":{"name":"Brennan Kinney","alias":"polarathene","url":"https://github.com/polarathene","imageURL":"https://github.com/polarathene.png","key":"polarathene","page":null},"robinmetral":{"name":"Robin M\xe9tral","alias":"robinmetral","url":"https://github.com/robinmetral","imageURL":"https://github.com/robinmetral.png","key":"robinmetral","page":null},"ronnyroeller":{"name":"Ronny Roeller","alias":"ronnyroeller","url":"https://github.com/ronnyroeller","imageURL":"https://github.com/ronnyroeller.png","key":"ronnyroeller","page":null},"rootwork":{"name":"Ivan Boothe","alias":"rootwork","url":"https://github.com/rootwork","imageURL":"https://github.com/rootwork.png","key":"rootwork","page":null},"rsapkf":{"name":"Rey","alias":"rsapkf","url":"https://github.com/rsapkf","imageURL":"https://github.com/rsapkf.png","key":"rsapkf","page":null},"semoal":{"name":"Sergio Moreno","alias":"semoal","url":"https://github.com/semoal","imageURL":"https://github.com/semoal.png","key":"semoal","page":null},"shafy":{"name":"Can Olcer","alias":"shafy","url":"https://github.com/shafy","imageURL":"https://github.com/shafy.png","key":"shafy","page":null},"sivapalan":{"name":"Varun Sivapalan","alias":"sivapalan","url":"https://github.com/sivapalan","imageURL":"https://github.com/sivapalan.png","key":"sivapalan","page":null},"skoech":{"name":"Sharon Koech","alias":"skoech","url":"https://github.com/skoech","imageURL":"https://github.com/skoech.png","key":"skoech","page":null},"sohamsshah":{"name":"Soham Shah","alias":"sohamsshah","url":"https://github.com/sohamsshah","imageURL":"https://github.com/sohamsshah.png","key":"sohamsshah","page":null},"spyke01":{"name":"Paden Clayton","alias":"spyke01","url":"https://github.com/spyke01","imageURL":"https://github.com/spyke01.png","key":"spyke01","page":null},"StanKocken":{"name":"Stan Kocken","alias":"StanKocken","url":"https://github.com/StanKocken","imageURL":"https://github.com/StanKocken.png","key":"StanKocken","page":null},"swalahamani":{"name":"Swalah Amani","alias":"swalahamani","url":"https://github.com/swalahamani","imageURL":"https://github.com/swalahamani.png","key":"swalahamani","page":null},"swapnilmmane":{"name":"Swapnil M Mane","alias":"swapnilmmane","url":"https://github.com/swapnilmmane","imageURL":"https://github.com/swapnilmmane.png","key":"swapnilmmane","page":null},"wpyoga":{"name":"William Poetra Yoga","alias":"wpyoga","url":"https://github.com/wpyoga","imageURL":"https://github.com/wpyoga.png","key":"wpyoga","page":null},"AviVahl":{"name":"Avi Vahl","alias":"AviVahl","url":"https://github.com/AviVahl","imageURL":"https://github.com/AviVahl.png","key":"AviVahl","page":null},"dominikmeyersap":{"name":"Dominik Meyer","alias":"dominikmeyersap","url":"https://github.com/dominikmeyersap","imageURL":"https://github.com/dominikmeyersap.png","key":"dominikmeyersap","page":null},"gabrielfalcao":{"name":"Gabriel Falc\xe3o","alias":"gabrielfalcao","url":"https://github.com/gabrielfalcao","imageURL":"https://github.com/gabrielfalcao.png","key":"gabrielfalcao","page":null},"oscard0m":{"name":"Oscar Dominguez","alias":"oscard0m","url":"https://github.com/oscard0m","imageURL":"https://github.com/oscard0m.png","key":"oscard0m","page":null},"robbieaverill":{"name":"Robbie Averill","alias":"robbieaverill","url":"https://github.com/robbieaverill","imageURL":"https://github.com/robbieaverill.png","key":"robbieaverill","page":null},"utajum":{"name":"Vladimir Tasic","alias":"utajum","url":"https://github.com/utajum","imageURL":"https://github.com/utajum.png","key":"utajum","page":null},"wingclover":{"name":"Ying Wang","alias":"wingclover","url":"https://github.com/wingclover","imageURL":"https://github.com/wingclover.png","key":"wingclover","page":null},"ataft":{"name":"Andrew Taft","alias":"ataft","url":"https://github.com/ataft","imageURL":"https://github.com/ataft.png","key":"ataft","page":null},"canercanbaz":{"name":"Caner Canbaz","alias":"canercanbaz","url":"https://github.com/canercanbaz","imageURL":"https://github.com/canercanbaz.png","key":"canercanbaz","page":null},"DimiMikadze":{"name":"Dimi Mikadze","alias":"DimiMikadze","url":"https://github.com/DimiMikadze","imageURL":"https://github.com/DimiMikadze.png","key":"DimiMikadze","page":null},"ipavlic":{"name":"Ilija Pavlic","alias":"ipavlic","url":"https://github.com/ipavlic","imageURL":"https://github.com/ipavlic.png","key":"ipavlic","page":null},"nlfurniss":{"name":"Nathaniel Furniss","alias":"nlfurniss","url":"https://github.com/nlfurniss","imageURL":"https://github.com/nlfurniss.png","key":"nlfurniss","page":null},"philipp985":{"name":"philipp985","alias":"philipp985","url":"https://github.com/philipp985","imageURL":"https://github.com/philipp985.png","key":"philipp985","page":null},"thanasis00":{"name":"Thanasis Katsadas","alias":"thanasis00","url":"https://github.com/thanasis00","imageURL":"https://github.com/thanasis00.png","key":"thanasis00","page":null},"zxuqian":{"name":"Xuqian","alias":"zxuqian","url":"https://github.com/zxuqian","imageURL":"https://github.com/zxuqian.png","key":"zxuqian","page":null},"akajla09":{"name":"Aditya Kajla","alias":"akajla09","url":"https://github.com/akajla09","imageURL":"https://github.com/akajla09.png","key":"akajla09","page":null},"Andrewnt219":{"name":"Andrew Nguyen","alias":"Andrewnt219","url":"https://github.com/Andrewnt219","imageURL":"https://github.com/Andrewnt219.png","key":"Andrewnt219","page":null},"BattleOfPlassey":{"name":"Palash Shrivastava","alias":"BattleOfPlassey","url":"https://github.com/BattleOfPlassey","imageURL":"https://github.com/BattleOfPlassey.png","key":"BattleOfPlassey","page":null},"bmiddha":{"name":"Bharat Middha","alias":"bmiddha","url":"https://github.com/bmiddha","imageURL":"https://github.com/bmiddha.png","key":"bmiddha","page":null},"caleeli":{"name":"David Callizaya","alias":"caleeli","url":"https://github.com/caleeli","imageURL":"https://github.com/caleeli.png","key":"caleeli","page":null},"ChrisChinchilla":{"name":"Chris Chinchilla","alias":"ChrisChinchilla","url":"https://github.com/ChrisChinchilla","imageURL":"https://github.com/ChrisChinchilla.png","key":"ChrisChinchilla","page":null},"djamaile":{"name":"djamaile","alias":"djamaile","url":"https://github.com/djamaile","imageURL":"https://github.com/djamaile.png","key":"djamaile","page":null},"dr5hn":{"name":"Darshan Gada","alias":"dr5hn","url":"https://github.com/dr5hn","imageURL":"https://github.com/dr5hn.png","key":"dr5hn","page":null},"EkaterinaMozheiko":{"name":"Ekaterina Mozheiko","alias":"EkaterinaMozheiko","url":"https://github.com/EkaterinaMozheiko","imageURL":"https://github.com/EkaterinaMozheiko.png","key":"EkaterinaMozheiko","page":null},"gtnardy":{"name":"Gabriel T. Nardy","alias":"gtnardy","url":"https://github.com/gtnardy","imageURL":"https://github.com/gtnardy.png","key":"gtnardy","page":null},"headline-design":{"name":"headline-design","alias":"headline-design","url":"https://github.com/headline-design","imageURL":"https://github.com/headline-design.png","key":"headline-design","page":null},"hughlilly":{"name":"Hugh Lilly","alias":"hughlilly","url":"https://github.com/hughlilly","imageURL":"https://github.com/hughlilly.png","key":"hughlilly","page":null},"ivarconr":{"name":"Ivar Conradi \xd8sthus","alias":"ivarconr","url":"https://github.com/ivarconr","imageURL":"https://github.com/ivarconr.png","key":"ivarconr","page":null},"jasonbosco":{"name":"Jason Bosco","alias":"jasonbosco","url":"https://github.com/jasonbosco","imageURL":"https://github.com/jasonbosco.png","key":"jasonbosco","page":null},"jkhaui":{"name":"Jordan Lee","alias":"jkhaui","url":"https://github.com/jkhaui","imageURL":"https://github.com/jkhaui.png","key":"jkhaui","page":null},"kingo55":{"name":"Robert Kingston","alias":"kingo55","url":"https://github.com/kingo55","imageURL":"https://github.com/kingo55.png","key":"kingo55","page":null},"KyrietS":{"name":"Kyriet","alias":"KyrietS","url":"https://github.com/KyrietS","imageURL":"https://github.com/KyrietS.png","key":"KyrietS","page":null},"MrTechHunter":{"name":"Mahdi Hamldar","alias":"MrTechHunter","url":"https://github.com/MrTechHunter","imageURL":"https://github.com/MrTechHunter.png","key":"MrTechHunter","page":null},"ohkimur":{"name":"Daniel Costrasel","alias":"ohkimur","url":"https://github.com/ohkimur","imageURL":"https://github.com/ohkimur.png","key":"ohkimur","page":null},"printf-ana":{"name":"Ana Carolina","alias":"printf-ana","url":"https://github.com/printf-ana","imageURL":"https://github.com/printf-ana.png","key":"printf-ana","page":null},"Shrugsy":{"name":"Shrugsy","alias":"Shrugsy","url":"https://github.com/Shrugsy","imageURL":"https://github.com/Shrugsy.png","key":"Shrugsy","page":null},"sw-yx":{"name":"swyx","alias":"sw-yx","url":"https://github.com/sw-yx","imageURL":"https://github.com/sw-yx.png","key":"sw-yx","page":null},"vinckr":{"name":"Vincent","alias":"vinckr","url":"https://github.com/vinckr","imageURL":"https://github.com/vinckr.png","key":"vinckr","page":null},"Whirl21":{"name":"Whirl","alias":"Whirl21","url":"https://github.com/Whirl21","imageURL":"https://github.com/Whirl21.png","key":"Whirl21","page":null},"3alisaki":{"name":"Ali Saki","alias":"3alisaki","url":"https://github.com/3alisaki","imageURL":"https://github.com/3alisaki.png","key":"3alisaki","page":null},"antonym":{"name":"Antony Messerli","alias":"antonym","url":"https://github.com/antonym","imageURL":"https://github.com/antonym.png","key":"antonym","page":null},"farshidinanloo":{"name":"farshid","alias":"farshidinanloo","url":"https://github.com/farshidinanloo","imageURL":"https://github.com/farshidinanloo.png","key":"farshidinanloo","page":null},"oscarlorentzon":{"name":"Oscar Lorentzon","alias":"oscarlorentzon","url":"https://github.com/oscarlorentzon","imageURL":"https://github.com/oscarlorentzon.png","key":"oscarlorentzon","page":null},"rohit-gohri":{"name":"Rohit Gohri","alias":"rohit-gohri","url":"https://github.com/rohit-gohri","imageURL":"https://github.com/rohit-gohri.png","key":"rohit-gohri","page":null},"dbseal":{"name":"David Seal","alias":"dbseal","url":"https://github.com/dbseal","imageURL":"https://github.com/dbseal.png","key":"dbseal","page":null},"deepakprabhakara":{"name":"Deepak Prabhakara","alias":"deepakprabhakara","url":"https://github.com/deepakprabhakara","imageURL":"https://github.com/deepakprabhakara.png","key":"deepakprabhakara","page":null},"faloi":{"name":"Federico Aloi","alias":"faloi","url":"https://github.com/faloi","imageURL":"https://github.com/faloi.png","key":"faloi","page":null},"fouad":{"name":"Fouad Matin","alias":"fouad","url":"https://github.com/fouad","imageURL":"https://github.com/fouad.png","key":"fouad","page":null},"gulien":{"name":"Julien Neuhart","alias":"gulien","url":"https://github.com/gulien","imageURL":"https://github.com/gulien.png","key":"gulien","page":null},"hamzahamidi":{"name":"Hamza Hamidi","alias":"hamzahamidi","url":"https://github.com/hamzahamidi","imageURL":"https://github.com/hamzahamidi.png","key":"hamzahamidi","page":null},"HaochenQ":{"name":"HaochenQ","alias":"HaochenQ","url":"https://github.com/HaochenQ","imageURL":"https://github.com/HaochenQ.png","key":"HaochenQ","page":null},"incendial":{"name":"Dmitry Zhifarsky","alias":"incendial","url":"https://github.com/incendial","imageURL":"https://github.com/incendial.png","key":"incendial","page":null},"isaac-philip":{"name":"Isaac Philip","alias":"isaac-philip","url":"https://github.com/isaac-philip","imageURL":"https://github.com/isaac-philip.png","key":"isaac-philip","page":null},"jansivans":{"name":"Yan Ivan Evdokimov","alias":"jansivans","url":"https://github.com/jansivans","imageURL":"https://github.com/jansivans.png","key":"jansivans","page":null},"JonnyBurger":{"name":"Jonny Burger","alias":"JonnyBurger","url":"https://github.com/JonnyBurger","imageURL":"https://github.com/JonnyBurger.png","key":"JonnyBurger","page":null},"metmarkosaric":{"name":"Marko Saric","alias":"metmarkosaric","url":"https://github.com/metmarkosaric","imageURL":"https://github.com/metmarkosaric.png","key":"metmarkosaric","page":null},"michalsanger":{"name":"Michal S\xe4nger","alias":"michalsanger","url":"https://github.com/michalsanger","imageURL":"https://github.com/michalsanger.png","key":"michalsanger","page":null},"neaped":{"name":"Garry","alias":"neaped","url":"https://github.com/neaped","imageURL":"https://github.com/neaped.png","key":"neaped","page":null},"sparanoid":{"name":"Tunghsiao Liu","alias":"sparanoid","url":"https://github.com/sparanoid","imageURL":"https://github.com/sparanoid.png","key":"sparanoid","page":null},"wan-nyan-wan":{"name":"wan-nyan-wan","alias":"wan-nyan-wan","url":"https://github.com/wan-nyan-wan","imageURL":"https://github.com/wan-nyan-wan.png","key":"wan-nyan-wan","page":null},"antonvasilev52":{"name":"antonvasilev52","alias":"antonvasilev52","url":"https://github.com/antonvasilev52","imageURL":"https://github.com/antonvasilev52.png","key":"antonvasilev52","page":null},"arnaudjnn":{"name":"Arnaud Jeannin","alias":"arnaudjnn","url":"https://github.com/arnaudjnn","imageURL":"https://github.com/arnaudjnn.png","key":"arnaudjnn","page":null},"cmfcmf":{"name":"Christian Flach","alias":"cmfcmf","url":"https://github.com/cmfcmf","imageURL":"https://github.com/cmfcmf.png","key":"cmfcmf","page":null},"covalentbond":{"name":"Arijit Kundu","alias":"covalentbond","url":"https://github.com/covalentbond","imageURL":"https://github.com/covalentbond.png","key":"covalentbond","page":null},"davidzhao":{"name":"David Zhao","alias":"davidzhao","url":"https://github.com/davidzhao","imageURL":"https://github.com/davidzhao.png","key":"davidzhao","page":null},"dbrrt":{"name":"David Barrat","alias":"dbrrt","url":"https://github.com/dbrrt","imageURL":"https://github.com/dbrrt.png","key":"dbrrt","page":null},"dgeb":{"name":"Dan Gebhardt","alias":"dgeb","url":"https://github.com/dgeb","imageURL":"https://github.com/dgeb.png","key":"dgeb","page":null},"fmassot":{"name":"Fran\xe7ois Massot","alias":"fmassot","url":"https://github.com/fmassot","imageURL":"https://github.com/fmassot.png","key":"fmassot","page":null},"lennartkoopmann":{"name":"Lennart Koopmann","alias":"lennartkoopmann","url":"https://github.com/lennartkoopmann","imageURL":"https://github.com/lennartkoopmann.png","key":"lennartkoopmann","page":null},"marssaljr":{"name":"Mar\xe7al Junior","alias":"marssaljr","url":"https://github.com/marssaljr","imageURL":"https://github.com/marssaljr.png","key":"marssaljr","page":null},"mweststrate":{"name":"Michel Weststrate","alias":"mweststrate","url":"https://github.com/mweststrate","imageURL":"https://github.com/mweststrate.png","key":"mweststrate","page":null},"NazarStreletskyi":{"name":"Nazar","alias":"NazarStreletskyi","url":"https://github.com/NazarStreletskyi","imageURL":"https://github.com/NazarStreletskyi.png","key":"NazarStreletskyi","page":null},"nirtamir2":{"name":"nirtamir2","alias":"nirtamir2","url":"https://github.com/nirtamir2","imageURL":"https://github.com/nirtamir2.png","key":"nirtamir2","page":null},"pcho":{"name":"Przemys\u0142aw Chojecki","alias":"pcho","url":"https://github.com/pcho","imageURL":"https://github.com/pcho.png","key":"pcho","page":null},"pmuens":{"name":"Philipp Muens","alias":"pmuens","url":"https://github.com/pmuens","imageURL":"https://github.com/pmuens.png","key":"pmuens","page":null},"rluvaton":{"name":"Raz Luvaton","alias":"rluvaton","url":"https://github.com/rluvaton","imageURL":"https://github.com/rluvaton.png","key":"rluvaton","page":null},"taylorreece":{"name":"Taylor Reece","alias":"taylorreece","url":"https://github.com/taylorreece","imageURL":"https://github.com/taylorreece.png","key":"taylorreece","page":null},"tohidnateghi":{"name":"tohid nateghi","alias":"tohidnateghi","url":"https://github.com/tohidnateghi","imageURL":"https://github.com/tohidnateghi.png","key":"tohidnateghi","page":null},"wenerme":{"name":"\u9648\u6768\u6587","alias":"wenerme","url":"https://github.com/wenerme","imageURL":"https://github.com/wenerme.png","key":"wenerme","page":null},"AuHau":{"name":"Adam Uhl\xed\u0159","alias":"AuHau","url":"https://github.com/AuHau","imageURL":"https://github.com/AuHau.png","key":"AuHau","page":null},"bperlmutter":{"name":"bperlmutter","alias":"bperlmutter","url":"https://github.com/bperlmutter","imageURL":"https://github.com/bperlmutter.png","key":"bperlmutter","page":null},"dirslashls":{"name":"dirslashls","alias":"dirslashls","url":"https://github.com/dirslashls","imageURL":"https://github.com/dirslashls.png","key":"dirslashls","page":null},"iamayushdas":{"name":"Ayush das","alias":"iamayushdas","url":"https://github.com/iamayushdas","imageURL":"https://github.com/iamayushdas.png","key":"iamayushdas","page":null},"jsamr":{"name":"Jules Sam. Randolph","alias":"jsamr","url":"https://github.com/jsamr","imageURL":"https://github.com/jsamr.png","key":"jsamr","page":null},"kdrag0n":{"name":"Danny Lin","alias":"kdrag0n","url":"https://github.com/kdrag0n","imageURL":"https://github.com/kdrag0n.png","key":"kdrag0n","page":null},"ramiy":{"name":"Rami Yushuvaev","alias":"ramiy","url":"https://github.com/ramiy","imageURL":"https://github.com/ramiy.png","key":"ramiy","page":null},"eshantri":{"name":"Eshan Tripathi","alias":"eshantri","url":"https://github.com/eshantri","imageURL":"https://github.com/eshantri.png","key":"eshantri","page":null},"loozhengyuan":{"name":"ZhengYuan Loo","alias":"loozhengyuan","url":"https://github.com/loozhengyuan","imageURL":"https://github.com/loozhengyuan.png","key":"loozhengyuan","page":null},"manuelmeurer":{"name":"Manuel Meurer","alias":"manuelmeurer","url":"https://github.com/manuelmeurer","imageURL":"https://github.com/manuelmeurer.png","key":"manuelmeurer","page":null},"teikjun":{"name":"Teik Jun","alias":"teikjun","url":"https://github.com/teikjun","imageURL":"https://github.com/teikjun.png","key":"teikjun","page":null},"tomekpapiernik":{"name":"Tomasz Papiernik","alias":"tomekpapiernik","url":"https://github.com/tomekpapiernik","imageURL":"https://github.com/tomekpapiernik.png","key":"tomekpapiernik","page":null},"antonygibbs":{"name":"antonygibbs","alias":"antonygibbs","url":"https://github.com/antonygibbs","imageURL":"https://github.com/antonygibbs.png","key":"antonygibbs","page":null},"ArtFlag":{"name":"Arthur","alias":"ArtFlag","url":"https://github.com/ArtFlag","imageURL":"https://github.com/ArtFlag.png","key":"ArtFlag","page":null},"besemuna":{"name":"besemuna","alias":"besemuna","url":"https://github.com/besemuna","imageURL":"https://github.com/besemuna.png","key":"besemuna","page":null},"Christopher-Hsieh":{"name":"Christopher Hsieh","alias":"Christopher-Hsieh","url":"https://github.com/Christopher-Hsieh","imageURL":"https://github.com/Christopher-Hsieh.png","key":"Christopher-Hsieh","page":null},"dabeeeenster":{"name":"Ben Rometsch","alias":"dabeeeenster","url":"https://github.com/dabeeeenster","imageURL":"https://github.com/dabeeeenster.png","key":"dabeeeenster","page":null},"e271828-":{"name":"e271828-","alias":"e271828-","url":"https://github.com/e271828-","imageURL":"https://github.com/e271828-.png","key":"e271828-","page":null},"fgatti675":{"name":"fgatti675","alias":"fgatti675","url":"https://github.com/fgatti675","imageURL":"https://github.com/fgatti675.png","key":"fgatti675","page":null},"HunteRoi":{"name":"Tina\xebl Devresse","alias":"HunteRoi","url":"https://github.com/HunteRoi","imageURL":"https://github.com/HunteRoi.png","key":"HunteRoi","page":null},"jmazin":{"name":"Jonathan Mazin","alias":"jmazin","url":"https://github.com/jmazin","imageURL":"https://github.com/jmazin.png","key":"jmazin","page":null},"Joelpo":{"name":"Joel","alias":"Joelpo","url":"https://github.com/Joelpo","imageURL":"https://github.com/Joelpo.png","key":"Joelpo","page":null},"jonbarker68":{"name":"Jon Barker","alias":"jonbarker68","url":"https://github.com/jonbarker68","imageURL":"https://github.com/jonbarker68.png","key":"jonbarker68","page":null},"l0u1sg":{"name":"Louis Gallet","alias":"l0u1sg","url":"https://github.com/l0u1sg","imageURL":"https://github.com/l0u1sg.png","key":"l0u1sg","page":null},"limkinZero":{"name":"Pablo Vidal","alias":"limkinZero","url":"https://github.com/limkinZero","imageURL":"https://github.com/limkinZero.png","key":"limkinZero","page":null},"liorheber":{"name":"Lior Heber","alias":"liorheber","url":"https://github.com/liorheber","imageURL":"https://github.com/liorheber.png","key":"liorheber","page":null},"louistiti":{"name":"Louis Grenard","alias":"louistiti","url":"https://github.com/louistiti","imageURL":"https://github.com/louistiti.png","key":"louistiti","page":null},"Massibian":{"name":"Massibian","alias":"Massibian","url":"https://github.com/Massibian","imageURL":"https://github.com/Massibian.png","key":"Massibian","page":null},"nam-hle":{"name":"Nam Hoang Le","alias":"nam-hle","url":"https://github.com/nam-hle","imageURL":"https://github.com/nam-hle.png","key":"nam-hle","page":null},"Neilblaze":{"name":"Pratyay Banerjee","alias":"Neilblaze","url":"https://github.com/Neilblaze","imageURL":"https://github.com/Neilblaze.png","key":"Neilblaze","page":null},"phwt":{"name":"phwt.smwt","alias":"phwt","url":"https://github.com/phwt","imageURL":"https://github.com/phwt.png","key":"phwt","page":null},"pmqueiroz":{"name":"Pedro Queiroz","alias":"pmqueiroz","url":"https://github.com/pmqueiroz","imageURL":"https://github.com/pmqueiroz.png","key":"pmqueiroz","page":null},"PsychTechApS":{"name":"PsychTech","alias":"PsychTechApS","url":"https://github.com/PsychTechApS","imageURL":"https://github.com/PsychTechApS.png","key":"PsychTechApS","page":null},"SamChou19815":{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},"silva-nick":{"name":"silva-nick","alias":"silva-nick","url":"https://github.com/silva-nick","imageURL":"https://github.com/silva-nick.png","key":"silva-nick","page":null},"tiny-dancer":{"name":"mg","alias":"tiny-dancer","url":"https://github.com/tiny-dancer","imageURL":"https://github.com/tiny-dancer.png","key":"tiny-dancer","page":null},"tsirlucas":{"name":"Lucas Correia","alias":"tsirlucas","url":"https://github.com/tsirlucas","imageURL":"https://github.com/tsirlucas.png","key":"tsirlucas","page":null},"wise-introvert":{"name":"Fardeen Panjwani","alias":"wise-introvert","url":"https://github.com/wise-introvert","imageURL":"https://github.com/wise-introvert.png","key":"wise-introvert","page":null},"ChrisOwen101":{"name":"Chris Owen","alias":"ChrisOwen101","url":"https://github.com/ChrisOwen101","imageURL":"https://github.com/ChrisOwen101.png","key":"ChrisOwen101","page":null},"gianu":{"name":"Sergio Rafael Gianazza","alias":"gianu","url":"https://github.com/gianu","imageURL":"https://github.com/gianu.png","key":"gianu","page":null},"joelhans":{"name":"Joel Hans","alias":"joelhans","url":"https://github.com/joelhans","imageURL":"https://github.com/joelhans.png","key":"joelhans","page":null},"KostyaTretyak":{"name":"\u041A\u043E\u0441\u0442\u044F \u0422\u0440\u0435\u0442\u044F\u043A","alias":"KostyaTretyak","url":"https://github.com/KostyaTretyak","imageURL":"https://github.com/KostyaTretyak.png","key":"KostyaTretyak","page":null},"rodmoreno":{"name":"Rodrigo Moreno","alias":"rodmoreno","url":"https://github.com/rodmoreno","imageURL":"https://github.com/rodmoreno.png","key":"rodmoreno","page":null},"yiliansource":{"name":"Ian Hornik","alias":"yiliansource","url":"https://github.com/yiliansource","imageURL":"https://github.com/yiliansource.png","key":"yiliansource","page":null},"gempain":{"name":"Geoffroy Empain","alias":"gempain","url":"https://github.com/gempain","imageURL":"https://github.com/gempain.png","key":"gempain","page":null},"tommy351":{"name":"Tommy Chen","alias":"tommy351","url":"https://github.com/tommy351","imageURL":"https://github.com/tommy351.png","key":"tommy351","page":null},"alena-ko":{"name":"alena-ko","alias":"alena-ko","url":"https://github.com/alena-ko","imageURL":"https://github.com/alena-ko.png","key":"alena-ko","page":null},"kazk":{"name":"kazk","alias":"kazk","url":"https://github.com/kazk","imageURL":"https://github.com/kazk.png","key":"kazk","page":null},"lisa761":{"name":"Lisa Chandra","alias":"lisa761","url":"https://github.com/lisa761","imageURL":"https://github.com/lisa761.png","key":"lisa761","page":null},"luism3861":{"name":"Luis Medina Huerta","alias":"luism3861","url":"https://github.com/luism3861","imageURL":"https://github.com/luism3861.png","key":"luism3861","page":null},"react-learner":{"name":"Tommy","alias":"react-learner","url":"https://github.com/react-learner","imageURL":"https://github.com/react-learner.png","key":"react-learner","page":null},"aehrea":{"name":"aehrea","alias":"aehrea","url":"https://github.com/aehrea","imageURL":"https://github.com/aehrea.png","key":"aehrea","page":null},"ajeetraina":{"name":"Ajeet Singh Raina, Docker Captain, RedisLabs","alias":"ajeetraina","url":"https://github.com/ajeetraina","imageURL":"https://github.com/ajeetraina.png","key":"ajeetraina","page":null},"akepecs":{"name":"akepecs","alias":"akepecs","url":"https://github.com/akepecs","imageURL":"https://github.com/akepecs.png","key":"akepecs","page":null},"AnthonyBobsin":{"name":"Anthony Bobsin","alias":"AnthonyBobsin","url":"https://github.com/AnthonyBobsin","imageURL":"https://github.com/AnthonyBobsin.png","key":"AnthonyBobsin","page":null},"arturcarvalho":{"name":"Artur Carvalho","alias":"arturcarvalho","url":"https://github.com/arturcarvalho","imageURL":"https://github.com/arturcarvalho.png","key":"arturcarvalho","page":null},"atomicpages":{"name":"Dennis Thompson","alias":"atomicpages","url":"https://github.com/atomicpages","imageURL":"https://github.com/atomicpages.png","key":"atomicpages","page":null},"clarus":{"name":"Guillaume Claret","alias":"clarus","url":"https://github.com/clarus","imageURL":"https://github.com/clarus.png","key":"clarus","page":null},"dickwyn":{"name":"Dick Wyn Yong","alias":"dickwyn","url":"https://github.com/dickwyn","imageURL":"https://github.com/dickwyn.png","key":"dickwyn","page":null},"Foxeye-Rinx":{"name":"Foxeye-Rinx","alias":"Foxeye-Rinx","url":"https://github.com/Foxeye-Rinx","imageURL":"https://github.com/Foxeye-Rinx.png","key":"Foxeye-Rinx","page":null},"gitbrent":{"name":"Brent Ely","alias":"gitbrent","url":"https://github.com/gitbrent","imageURL":"https://github.com/gitbrent.png","key":"gitbrent","page":null},"gumacahin":{"name":"Marco Enrico","alias":"gumacahin","url":"https://github.com/gumacahin","imageURL":"https://github.com/gumacahin.png","key":"gumacahin","page":null},"jknoxville":{"name":"John Knox","alias":"jknoxville","url":"https://github.com/jknoxville","imageURL":"https://github.com/jknoxville.png","key":"jknoxville","page":null},"kaytwo":{"name":"Chris Kanich","alias":"kaytwo","url":"https://github.com/kaytwo","imageURL":"https://github.com/kaytwo.png","key":"kaytwo","page":null},"lucalves":{"name":"Lucas Alves","alias":"lucalves","url":"https://github.com/lucalves","imageURL":"https://github.com/lucalves.png","key":"lucalves","page":null},"miku86":{"name":"miku86","alias":"miku86","url":"https://github.com/miku86","imageURL":"https://github.com/miku86.png","key":"miku86","page":null},"pepibumur":{"name":"Pedro Pi\xf1era Buend\xeda","alias":"pepibumur","url":"https://github.com/pepibumur","imageURL":"https://github.com/pepibumur.png","key":"pepibumur","page":null},"serut":{"name":"serut","alias":"serut","url":"https://github.com/serut","imageURL":"https://github.com/serut.png","key":"serut","page":null},"ShinteiMai":{"name":"Steven Hansel","alias":"ShinteiMai","url":"https://github.com/ShinteiMai","imageURL":"https://github.com/ShinteiMai.png","key":"ShinteiMai","page":null},"steveworley":{"name":"Steve","alias":"steveworley","url":"https://github.com/steveworley","imageURL":"https://github.com/steveworley.png","key":"steveworley","page":null},"sunny0826":{"name":"guoxudong","alias":"sunny0826","url":"https://github.com/sunny0826","imageURL":"https://github.com/sunny0826.png","key":"sunny0826","page":null},"talesporto":{"name":"Tales Porto","alias":"talesporto","url":"https://github.com/talesporto","imageURL":"https://github.com/talesporto.png","key":"talesporto","page":null},"thiagog3":{"name":"Thiago Sciotta","alias":"thiagog3","url":"https://github.com/thiagog3","imageURL":"https://github.com/thiagog3.png","key":"thiagog3","page":null},"tiago-rr":{"name":"Tiago Ribeiro","alias":"tiago-rr","url":"https://github.com/tiago-rr","imageURL":"https://github.com/tiago-rr.png","key":"tiago-rr","page":null},"tomrav":{"name":"Tom Raviv","alias":"tomrav","url":"https://github.com/tomrav","imageURL":"https://github.com/tomrav.png","key":"tomrav","page":null},"tony":{"name":"Tony Narlock","alias":"tony","url":"https://github.com/tony","imageURL":"https://github.com/tony.png","key":"tony","page":null},"Harvtronix":{"name":"Harvtronix","alias":"Harvtronix","url":"https://github.com/Harvtronix","imageURL":"https://github.com/Harvtronix.png","key":"Harvtronix","page":null},"koko8829":{"name":"Joon-Ha Lee","alias":"koko8829","url":"https://github.com/koko8829","imageURL":"https://github.com/koko8829.png","key":"koko8829","page":null},"leandrooriente":{"name":"Leandro Oriente","alias":"leandrooriente","url":"https://github.com/leandrooriente","imageURL":"https://github.com/leandrooriente.png","key":"leandrooriente","page":null},"longlho":{"name":"Long Ho","alias":"longlho","url":"https://github.com/longlho","imageURL":"https://github.com/longlho.png","key":"longlho","page":null},"lowenhere":{"name":"Lowen","alias":"lowenhere","url":"https://github.com/lowenhere","imageURL":"https://github.com/lowenhere.png","key":"lowenhere","page":null},"quanengineering":{"name":"Quan","alias":"quanengineering","url":"https://github.com/quanengineering","imageURL":"https://github.com/quanengineering.png","key":"quanengineering","page":null},"Rhodanthe1116":{"name":"Rhodanthe1116","alias":"Rhodanthe1116","url":"https://github.com/Rhodanthe1116","imageURL":"https://github.com/Rhodanthe1116.png","key":"Rhodanthe1116","page":null},"zkochan":{"name":"Zoltan Kochan","alias":"zkochan","url":"https://github.com/zkochan","imageURL":"https://github.com/zkochan.png","key":"zkochan","page":null},"9oelM":{"name":"Joel M","alias":"9oelM","url":"https://github.com/9oelM","imageURL":"https://github.com/9oelM.png","key":"9oelM","page":null},"apurvaojas":{"name":"Apurva Ojas","alias":"apurvaojas","url":"https://github.com/apurvaojas","imageURL":"https://github.com/apurvaojas.png","key":"apurvaojas","page":null},"asystentka-jolka":{"name":"Jola","alias":"asystentka-jolka","url":"https://github.com/asystentka-jolka","imageURL":"https://github.com/asystentka-jolka.png","key":"asystentka-jolka","page":null},"aukokyong":{"name":"aukokyong","alias":"aukokyong","url":"https://github.com/aukokyong","imageURL":"https://github.com/aukokyong.png","key":"aukokyong","page":null},"ayonious":{"name":"Nahiyan Kamal","alias":"ayonious","url":"https://github.com/ayonious","imageURL":"https://github.com/ayonious.png","key":"ayonious","page":null},"B4nan":{"name":"Martin Ad\xe1mek","alias":"B4nan","url":"https://github.com/B4nan","imageURL":"https://github.com/B4nan.png","key":"B4nan","page":null},"ben-qnimble":{"name":"Ben","alias":"ben-qnimble","url":"https://github.com/ben-qnimble","imageURL":"https://github.com/ben-qnimble.png","key":"ben-qnimble","page":null},"bennodev19":{"name":"BennoDev","alias":"bennodev19","url":"https://github.com/bennodev19","imageURL":"https://github.com/bennodev19.png","key":"bennodev19","page":null},"caglarturali":{"name":"\xc7a\u011Flar Tural\u0131","alias":"caglarturali","url":"https://github.com/caglarturali","imageURL":"https://github.com/caglarturali.png","key":"caglarturali","page":null},"christian-bromann":{"name":"Christian Bromann","alias":"christian-bromann","url":"https://github.com/christian-bromann","imageURL":"https://github.com/christian-bromann.png","key":"christian-bromann","page":null},"edulazaro":{"name":"Eduardo L\xe1zaro","alias":"edulazaro","url":"https://github.com/edulazaro","imageURL":"https://github.com/edulazaro.png","key":"edulazaro","page":null},"eric-hc":{"name":"Eric Carboni","alias":"eric-hc","url":"https://github.com/eric-hc","imageURL":"https://github.com/eric-hc.png","key":"eric-hc","page":null},"iamshadmirza":{"name":"Mohd Shad Mirza","alias":"iamshadmirza","url":"https://github.com/iamshadmirza","imageURL":"https://github.com/iamshadmirza.png","key":"iamshadmirza","page":null},"imbhargav5":{"name":"Bhargav Ponnapalli","alias":"imbhargav5","url":"https://github.com/imbhargav5","imageURL":"https://github.com/imbhargav5.png","key":"imbhargav5","page":null},"iruzevic":{"name":"Ivan Ru\u017Eevi\u0107","alias":"iruzevic","url":"https://github.com/iruzevic","imageURL":"https://github.com/iruzevic.png","key":"iruzevic","page":null},"jlin27":{"name":"Jessica Lin","alias":"jlin27","url":"https://github.com/jlin27","imageURL":"https://github.com/jlin27.png","key":"jlin27","page":null},"JoelMarcey":{"name":"Joel Marcey","alias":"JoelMarcey","url":"https://github.com/JoelMarcey","imageURL":"https://github.com/JoelMarcey.png","key":"JoelMarcey","page":null},"juancarlosjr97":{"name":"Juan Carlos Blanco Delgado","alias":"juancarlosjr97","url":"https://github.com/juancarlosjr97","imageURL":"https://github.com/juancarlosjr97.png","key":"juancarlosjr97","page":null},"kumaraditya303":{"name":"Kumar Aditya","alias":"kumaraditya303","url":"https://github.com/kumaraditya303","imageURL":"https://github.com/kumaraditya303.png","key":"kumaraditya303","page":null},"linyuxuanlin":{"name":"Power Lin","alias":"linyuxuanlin","url":"https://github.com/linyuxuanlin","imageURL":"https://github.com/linyuxuanlin.png","key":"linyuxuanlin","page":null},"manzinello":{"name":"Matteo Manzinello","alias":"manzinello","url":"https://github.com/manzinello","imageURL":"https://github.com/manzinello.png","key":"manzinello","page":null},"MatanBobi":{"name":"Matan Borenkraout","alias":"MatanBobi","url":"https://github.com/MatanBobi","imageURL":"https://github.com/MatanBobi.png","key":"MatanBobi","page":null},"miroiu":{"name":"Miroiu Emanuel","alias":"miroiu","url":"https://github.com/miroiu","imageURL":"https://github.com/miroiu.png","key":"miroiu","page":null},"natac13":{"name":"Sean Campbell","alias":"natac13","url":"https://github.com/natac13","imageURL":"https://github.com/natac13.png","key":"natac13","page":null},"nicojs":{"name":"Nico Jansen","alias":"nicojs","url":"https://github.com/nicojs","imageURL":"https://github.com/nicojs.png","key":"nicojs","page":null},"NikolayS":{"name":"Nikolay Samokhvalov","alias":"NikolayS","url":"https://github.com/NikolayS","imageURL":"https://github.com/NikolayS.png","key":"NikolayS","page":null},"ntbosscher":{"name":"Nathan Bosscher","alias":"ntbosscher","url":"https://github.com/ntbosscher","imageURL":"https://github.com/ntbosscher.png","key":"ntbosscher","page":null},"oze4":{"name":"Matt Oestreich","alias":"oze4","url":"https://github.com/oze4","imageURL":"https://github.com/oze4.png","key":"oze4","page":null},"saihaj":{"name":"Saihajpreet Singh","alias":"saihaj","url":"https://github.com/saihaj","imageURL":"https://github.com/saihaj.png","key":"saihaj","page":null},"samhrncir":{"name":"Sam Hrncir","alias":"samhrncir","url":"https://github.com/samhrncir","imageURL":"https://github.com/samhrncir.png","key":"samhrncir","page":null},"sammychinedu2ky":{"name":"sammychinedu2ky","alias":"sammychinedu2ky","url":"https://github.com/sammychinedu2ky","imageURL":"https://github.com/sammychinedu2ky.png","key":"sammychinedu2ky","page":null},"saydo17":{"name":"saydo17","alias":"saydo17","url":"https://github.com/saydo17","imageURL":"https://github.com/saydo17.png","key":"saydo17","page":null},"Siemienik":{"name":"Siemienik Pawel","alias":"Siemienik","url":"https://github.com/Siemienik","imageURL":"https://github.com/Siemienik.png","key":"Siemienik","page":null},"Simek":{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},"sksamuel":{"name":"Sam Sam","alias":"sksamuel","url":"https://github.com/sksamuel","imageURL":"https://github.com/sksamuel.png","key":"sksamuel","page":null},"theankurkedia":{"name":"Ankur Kedia","alias":"theankurkedia","url":"https://github.com/theankurkedia","imageURL":"https://github.com/theankurkedia.png","key":"theankurkedia","page":null},"TheodoreChu":{"name":"Theodore Chu","alias":"TheodoreChu","url":"https://github.com/TheodoreChu","imageURL":"https://github.com/TheodoreChu.png","key":"TheodoreChu","page":null},"tienvx":{"name":"Tien Vo Xuan","alias":"tienvx","url":"https://github.com/tienvx","imageURL":"https://github.com/tienvx.png","key":"tienvx","page":null},"tokarchyn":{"name":"tokarchyn","alias":"tokarchyn","url":"https://github.com/tokarchyn","imageURL":"https://github.com/tokarchyn.png","key":"tokarchyn","page":null},"tomsfernandez":{"name":"Tomas Fernandez","alias":"tomsfernandez","url":"https://github.com/tomsfernandez","imageURL":"https://github.com/tomsfernandez.png","key":"tomsfernandez","page":null},"vamsi3":{"name":"Vamsi Krishna Reddy Satti","alias":"vamsi3","url":"https://github.com/vamsi3","imageURL":"https://github.com/vamsi3.png","key":"vamsi3","page":null},"viglucci":{"name":"Kevin Viglucci","alias":"viglucci","url":"https://github.com/viglucci","imageURL":"https://github.com/viglucci.png","key":"viglucci","page":null},"wellyshen":{"name":"Welly","alias":"wellyshen","url":"https://github.com/wellyshen","imageURL":"https://github.com/wellyshen.png","key":"wellyshen","page":null},"wolf20482":{"name":"wolf20482","alias":"wolf20482","url":"https://github.com/wolf20482","imageURL":"https://github.com/wolf20482.png","key":"wolf20482","page":null},"YashTotale":{"name":"Yash Totale","alias":"YashTotale","url":"https://github.com/YashTotale","imageURL":"https://github.com/YashTotale.png","key":"YashTotale","page":null},"ykzts":{"name":"Yamagishi Kazutoshi","alias":"ykzts","url":"https://github.com/ykzts","imageURL":"https://github.com/ykzts.png","key":"ykzts","page":null},"ysulyma":{"name":"Yuri Sulyma","alias":"ysulyma","url":"https://github.com/ysulyma","imageURL":"https://github.com/ysulyma.png","key":"ysulyma","page":null},"yuval-hazaz":{"name":"Yuval Hazaz","alias":"yuval-hazaz","url":"https://github.com/yuval-hazaz","imageURL":"https://github.com/yuval-hazaz.png","key":"yuval-hazaz","page":null},"aarongarciah":{"name":"Aar\xf3n Garc\xeda Herv\xe1s","alias":"aarongarciah","url":"https://github.com/aarongarciah","imageURL":"https://github.com/aarongarciah.png","key":"aarongarciah","page":null},"aeneasr":{"name":"hackerman","alias":"aeneasr","url":"https://github.com/aeneasr","imageURL":"https://github.com/aeneasr.png","key":"aeneasr","page":null},"Alex1304":{"name":"Alex1304","alias":"Alex1304","url":"https://github.com/Alex1304","imageURL":"https://github.com/Alex1304.png","key":"Alex1304","page":null},"borool":{"name":"borool","alias":"borool","url":"https://github.com/borool","imageURL":"https://github.com/borool.png","key":"borool","page":null},"cindygu4":{"name":"Cindy Gu","alias":"cindygu4","url":"https://github.com/cindygu4","imageURL":"https://github.com/cindygu4.png","key":"cindygu4","page":null},"davidmauskop":{"name":"davidmauskop","alias":"davidmauskop","url":"https://github.com/davidmauskop","imageURL":"https://github.com/davidmauskop.png","key":"davidmauskop","page":null},"dgilling":{"name":"Derric Gilling","alias":"dgilling","url":"https://github.com/dgilling","imageURL":"https://github.com/dgilling.png","key":"dgilling","page":null},"francoischalifour":{"name":"Fran\xe7ois Chalifour","alias":"francoischalifour","url":"https://github.com/francoischalifour","imageURL":"https://github.com/francoischalifour.png","key":"francoischalifour","page":null},"hmil":{"name":"Hadrien Milano","alias":"hmil","url":"https://github.com/hmil","imageURL":"https://github.com/hmil.png","key":"hmil","page":null},"LoicPoullain":{"name":"Lo\xefc Poullain","alias":"LoicPoullain","url":"https://github.com/LoicPoullain","imageURL":"https://github.com/LoicPoullain.png","key":"LoicPoullain","page":null},"matijaSos":{"name":"Matija Sosic","alias":"matijaSos","url":"https://github.com/matijaSos","imageURL":"https://github.com/matijaSos.png","key":"matijaSos","page":null},"mpsq":{"name":"M\xe9ril","alias":"mpsq","url":"https://github.com/mpsq","imageURL":"https://github.com/mpsq.png","key":"mpsq","page":null},"Romstar":{"name":"Rami","alias":"Romstar","url":"https://github.com/Romstar","imageURL":"https://github.com/Romstar.png","key":"Romstar","page":null},"sarthakkundra":{"name":"Sarthak kundra","alias":"sarthakkundra","url":"https://github.com/sarthakkundra","imageURL":"https://github.com/sarthakkundra.png","key":"sarthakkundra","page":null},"sivaraam":{"name":"Kaartic Sivaraam","alias":"sivaraam","url":"https://github.com/sivaraam","imageURL":"https://github.com/sivaraam.png","key":"sivaraam","page":null},"Varshit07":{"name":"Varshit Shah","alias":"Varshit07","url":"https://github.com/Varshit07","imageURL":"https://github.com/Varshit07.png","key":"Varshit07","page":null},"woodrufs":{"name":"Stephen Woodruff","alias":"woodrufs","url":"https://github.com/woodrufs","imageURL":"https://github.com/woodrufs.png","key":"woodrufs","page":null},"arcanis":{"name":"Ma\xebl Nison","alias":"arcanis","url":"https://github.com/arcanis","imageURL":"https://github.com/arcanis.png","key":"arcanis","page":null},"camiluc":{"name":"camiluc","alias":"camiluc","url":"https://github.com/camiluc","imageURL":"https://github.com/camiluc.png","key":"camiluc","page":null},"AmyrAhmady":{"name":"iAmir","alias":"AmyrAhmady","url":"https://github.com/AmyrAhmady","imageURL":"https://github.com/AmyrAhmady.png","key":"AmyrAhmady","page":null},"belemaire":{"name":"Beno\xeet Lemaire","alias":"belemaire","url":"https://github.com/belemaire","imageURL":"https://github.com/belemaire.png","key":"belemaire","page":null},"davidjgoss":{"name":"David Goss","alias":"davidjgoss","url":"https://github.com/davidjgoss","imageURL":"https://github.com/davidjgoss.png","key":"davidjgoss","page":null},"egbobright":{"name":"Bright Egbo","alias":"egbobright","url":"https://github.com/egbobright","imageURL":"https://github.com/egbobright.png","key":"egbobright","page":null},"haivp3010":{"name":"Hai","alias":"haivp3010","url":"https://github.com/haivp3010","imageURL":"https://github.com/haivp3010.png","key":"haivp3010","page":null},"hong4rc":{"name":"Anh Hong","alias":"hong4rc","url":"https://github.com/hong4rc","imageURL":"https://github.com/hong4rc.png","key":"hong4rc","page":null},"jcs98":{"name":"Jainam Chirag Shah","alias":"jcs98","url":"https://github.com/jcs98","imageURL":"https://github.com/jcs98.png","key":"jcs98","page":null},"ka1bi4":{"name":"Roman Bug","alias":"ka1bi4","url":"https://github.com/ka1bi4","imageURL":"https://github.com/ka1bi4.png","key":"ka1bi4","page":null},"kenve":{"name":"kenve","alias":"kenve","url":"https://github.com/kenve","imageURL":"https://github.com/kenve.png","key":"kenve","page":null},"nategiraudeau":{"name":"Nate Giraudeau","alias":"nategiraudeau","url":"https://github.com/nategiraudeau","imageURL":"https://github.com/nategiraudeau.png","key":"nategiraudeau","page":null},"ndom91":{"name":"Nico Domino","alias":"ndom91","url":"https://github.com/ndom91","imageURL":"https://github.com/ndom91.png","key":"ndom91","page":null},"rarkins":{"name":"Rhys Arkins","alias":"rarkins","url":"https://github.com/rarkins","imageURL":"https://github.com/rarkins.png","key":"rarkins","page":null},"sigewuzhere":{"name":"Gergely Sinka","alias":"sigewuzhere","url":"https://github.com/sigewuzhere","imageURL":"https://github.com/sigewuzhere.png","key":"sigewuzhere","page":null},"smcelhinney":{"name":"Stephen McElhinney","alias":"smcelhinney","url":"https://github.com/smcelhinney","imageURL":"https://github.com/smcelhinney.png","key":"smcelhinney","page":null},"ThakurKarthik":{"name":"Thakur Karthik","alias":"ThakurKarthik","url":"https://github.com/ThakurKarthik","imageURL":"https://github.com/ThakurKarthik.png","key":"ThakurKarthik","page":null},"vanbasten17":{"name":"Marc Rabat Pla","alias":"vanbasten17","url":"https://github.com/vanbasten17","imageURL":"https://github.com/vanbasten17.png","key":"vanbasten17","page":null},"weareoutman":{"name":"Shenwei Wang","alias":"weareoutman","url":"https://github.com/weareoutman","imageURL":"https://github.com/weareoutman.png","key":"weareoutman","page":null},"ylemkimon":{"name":"ylemkimon","alias":"ylemkimon","url":"https://github.com/ylemkimon","imageURL":"https://github.com/ylemkimon.png","key":"ylemkimon","page":null},"aakhtar3":{"name":"aakhtar3","alias":"aakhtar3","url":"https://github.com/aakhtar3","imageURL":"https://github.com/aakhtar3.png","key":"aakhtar3","page":null},"abhishektiwari":{"name":"Abhishek Tiwari","alias":"abhishektiwari","url":"https://github.com/abhishektiwari","imageURL":"https://github.com/abhishektiwari.png","key":"abhishektiwari","page":null},"fanny":{"name":"Fanny","alias":"fanny","url":"https://github.com/fanny","imageURL":"https://github.com/fanny.png","key":"fanny","page":null},"honlyHuang":{"name":"honlyHuang","alias":"honlyHuang","url":"https://github.com/honlyHuang","imageURL":"https://github.com/honlyHuang.png","key":"honlyHuang","page":null},"imskr":{"name":"Shubham Kumar","alias":"imskr","url":"https://github.com/imskr","imageURL":"https://github.com/imskr.png","key":"imskr","page":null},"jagracey":{"name":"John Gracey","alias":"jagracey","url":"https://github.com/jagracey","imageURL":"https://github.com/jagracey.png","key":"jagracey","page":null},"russtaylor":{"name":"Russ Taylor","alias":"russtaylor","url":"https://github.com/russtaylor","imageURL":"https://github.com/russtaylor.png","key":"russtaylor","page":null},"saintmalik":{"name":"SaintMalik","alias":"saintmalik","url":"https://github.com/saintmalik","imageURL":"https://github.com/saintmalik.png","key":"saintmalik","page":null},"shubhamzanwar":{"name":"Shubham Zanwar","alias":"shubhamzanwar","url":"https://github.com/shubhamzanwar","imageURL":"https://github.com/shubhamzanwar.png","key":"shubhamzanwar","page":null},"UmairKamran":{"name":"Umair Kamran","alias":"UmairKamran","url":"https://github.com/UmairKamran","imageURL":"https://github.com/UmairKamran.png","key":"UmairKamran","page":null},"utkarsh867":{"name":"Utkarsh Goel","alias":"utkarsh867","url":"https://github.com/utkarsh867","imageURL":"https://github.com/utkarsh867.png","key":"utkarsh867","page":null},"abadon7":{"name":"Henry V\xe9lez","alias":"abadon7","url":"https://github.com/abadon7","imageURL":"https://github.com/abadon7.png","key":"abadon7","page":null},"anru":{"name":"Andrey Rublev","alias":"anru","url":"https://github.com/anru","imageURL":"https://github.com/anru.png","key":"anru","page":null},"ayshiff":{"name":"R\xe9mi Doreau","alias":"ayshiff","url":"https://github.com/ayshiff","imageURL":"https://github.com/ayshiff.png","key":"ayshiff","page":null},"jeremyhager":{"name":"Jeremy Hager","alias":"jeremyhager","url":"https://github.com/jeremyhager","imageURL":"https://github.com/jeremyhager.png","key":"jeremyhager","page":null},"muskanvk":{"name":"Muskan Kumar","alias":"muskanvk","url":"https://github.com/muskanvk","imageURL":"https://github.com/muskanvk.png","key":"muskanvk","page":null},"timgates42":{"name":"Tim Gates","alias":"timgates42","url":"https://github.com/timgates42","imageURL":"https://github.com/timgates42.png","key":"timgates42","page":null},"ashscodes":{"name":"Ash","alias":"ashscodes","url":"https://github.com/ashscodes","imageURL":"https://github.com/ashscodes.png","key":"ashscodes","page":null},"josephMG":{"name":"josephMG","alias":"josephMG","url":"https://github.com/josephMG","imageURL":"https://github.com/josephMG.png","key":"josephMG","page":null},"rutikwankhade":{"name":"Rutik Wankhade","alias":"rutikwankhade","url":"https://github.com/rutikwankhade","imageURL":"https://github.com/rutikwankhade.png","key":"rutikwankhade","page":null},"samsisle":{"name":"Sam Ko","alias":"samsisle","url":"https://github.com/samsisle","imageURL":"https://github.com/samsisle.png","key":"samsisle","page":null},"adinaja":{"name":"adinaja","alias":"adinaja","url":"https://github.com/adinaja","imageURL":"https://github.com/adinaja.png","key":"adinaja","page":null},"ajifrank75":{"name":"Franklyn Chisom","alias":"ajifrank75","url":"https://github.com/ajifrank75","imageURL":"https://github.com/ajifrank75.png","key":"ajifrank75","page":null},"Ako92":{"name":"Ali Hosseini","alias":"Ako92","url":"https://github.com/Ako92","imageURL":"https://github.com/Ako92.png","key":"Ako92","page":null},"amy-lei":{"name":"Amy Lei","alias":"amy-lei","url":"https://github.com/amy-lei","imageURL":"https://github.com/amy-lei.png","key":"amy-lei","page":null},"anshulrgoyal":{"name":"Anshul Goyal","alias":"anshulrgoyal","url":"https://github.com/anshulrgoyal","imageURL":"https://github.com/anshulrgoyal.png","key":"anshulrgoyal","page":null},"arcvats":{"name":"Archit","alias":"arcvats","url":"https://github.com/arcvats","imageURL":"https://github.com/arcvats.png","key":"arcvats","page":null},"arthur-flam":{"name":"Arthur Flam","alias":"arthur-flam","url":"https://github.com/arthur-flam","imageURL":"https://github.com/arthur-flam.png","key":"arthur-flam","page":null},"BogdanDor":{"name":"Bogdan Doroschenko","alias":"BogdanDor","url":"https://github.com/BogdanDor","imageURL":"https://github.com/BogdanDor.png","key":"BogdanDor","page":null},"boosh511":{"name":"alex busnelli","alias":"boosh511","url":"https://github.com/boosh511","imageURL":"https://github.com/boosh511.png","key":"boosh511","page":null},"Danon":{"name":"Daniel Wilkowski","alias":"Danon","url":"https://github.com/Danon","imageURL":"https://github.com/Danon.png","key":"Danon","page":null},"Drewbi":{"name":"Drew Alexander","alias":"Drewbi","url":"https://github.com/Drewbi","imageURL":"https://github.com/Drewbi.png","key":"Drewbi","page":null},"dschaller":{"name":"Derek","alias":"dschaller","url":"https://github.com/dschaller","imageURL":"https://github.com/dschaller.png","key":"dschaller","page":null},"FocalChord":{"name":"Nisarag","alias":"FocalChord","url":"https://github.com/FocalChord","imageURL":"https://github.com/FocalChord.png","key":"FocalChord","page":null},"govardhan-srinivas":{"name":"Govardhan Srinivas","alias":"govardhan-srinivas","url":"https://github.com/govardhan-srinivas","imageURL":"https://github.com/govardhan-srinivas.png","key":"govardhan-srinivas","page":null},"hsluoyz":{"name":"Yang Luo","alias":"hsluoyz","url":"https://github.com/hsluoyz","imageURL":"https://github.com/hsluoyz.png","key":"hsluoyz","page":null},"JeanMarcSaad":{"name":"Jean-Marc Saad","alias":"JeanMarcSaad","url":"https://github.com/JeanMarcSaad","imageURL":"https://github.com/JeanMarcSaad.png","key":"JeanMarcSaad","page":null},"JohnnyCrazy":{"name":"Jonas Dellinger","alias":"JohnnyCrazy","url":"https://github.com/JohnnyCrazy","imageURL":"https://github.com/JohnnyCrazy.png","key":"JohnnyCrazy","page":null},"Jonathannsegal":{"name":"Jonathan","alias":"Jonathannsegal","url":"https://github.com/Jonathannsegal","imageURL":"https://github.com/Jonathannsegal.png","key":"Jonathannsegal","page":null},"lebogangolifant":{"name":"lebogang Olifant","alias":"lebogangolifant","url":"https://github.com/lebogangolifant","imageURL":"https://github.com/lebogangolifant.png","key":"lebogangolifant","page":null},"leoigel":{"name":"leoigel","alias":"leoigel","url":"https://github.com/leoigel","imageURL":"https://github.com/leoigel.png","key":"leoigel","page":null},"mecm1993":{"name":"Manuel Cepeda","alias":"mecm1993","url":"https://github.com/mecm1993","imageURL":"https://github.com/mecm1993.png","key":"mecm1993","page":null},"MirzayevFarid":{"name":"Mirzayev Farid","alias":"MirzayevFarid","url":"https://github.com/MirzayevFarid","imageURL":"https://github.com/MirzayevFarid.png","key":"MirzayevFarid","page":null},"nebrelbug":{"name":"Ben Gubler","alias":"nebrelbug","url":"https://github.com/nebrelbug","imageURL":"https://github.com/nebrelbug.png","key":"nebrelbug","page":null},"olawanlejoel":{"name":"Olawanle Joel","alias":"olawanlejoel","url":"https://github.com/olawanlejoel","imageURL":"https://github.com/olawanlejoel.png","key":"olawanlejoel","page":null},"orta":{"name":"Orta Therox","alias":"orta","url":"https://github.com/orta","imageURL":"https://github.com/orta.png","key":"orta","page":null},"shalinikumari50":{"name":"shalinikumari50","alias":"shalinikumari50","url":"https://github.com/shalinikumari50","imageURL":"https://github.com/shalinikumari50.png","key":"shalinikumari50","page":null},"Souravdey777":{"name":"Sourav Dey","alias":"Souravdey777","url":"https://github.com/Souravdey777","imageURL":"https://github.com/Souravdey777.png","key":"Souravdey777","page":null},"thehanimo":{"name":"Hani Mohammed","alias":"thehanimo","url":"https://github.com/thehanimo","imageURL":"https://github.com/thehanimo.png","key":"thehanimo","page":null},"tolunayakbulut":{"name":"Tolunay Akbulut","alias":"tolunayakbulut","url":"https://github.com/tolunayakbulut","imageURL":"https://github.com/tolunayakbulut.png","key":"tolunayakbulut","page":null},"Vinnl":{"name":"Vincent","alias":"Vinnl","url":"https://github.com/Vinnl","imageURL":"https://github.com/Vinnl.png","key":"Vinnl","page":null},"BuckyMaler":{"name":"Bucky Maler","alias":"BuckyMaler","url":"https://github.com/BuckyMaler","imageURL":"https://github.com/BuckyMaler.png","key":"BuckyMaler","page":null},"mdfaizan7":{"name":"Faizan","alias":"mdfaizan7","url":"https://github.com/mdfaizan7","imageURL":"https://github.com/mdfaizan7.png","key":"mdfaizan7","page":null},"hobadams":{"name":"Hob Adams","alias":"hobadams","url":"https://github.com/hobadams","imageURL":"https://github.com/hobadams.png","key":"hobadams","page":null},"aladin002dz":{"name":"Mahfoudh Arous","alias":"aladin002dz","url":"https://github.com/aladin002dz","imageURL":"https://github.com/aladin002dz.png","key":"aladin002dz","page":null},"aldeed":{"name":"Eric Dobbertin","alias":"aldeed","url":"https://github.com/aldeed","imageURL":"https://github.com/aldeed.png","key":"aldeed","page":null},"amirulahmad":{"name":"Amirul Ahmad","alias":"amirulahmad","url":"https://github.com/amirulahmad","imageURL":"https://github.com/amirulahmad.png","key":"amirulahmad","page":null},"ayan-b":{"name":"Ayan Banerjee","alias":"ayan-b","url":"https://github.com/ayan-b","imageURL":"https://github.com/ayan-b.png","key":"ayan-b","page":null},"codemonkey800":{"name":"Jeremy Asuncion","alias":"codemonkey800","url":"https://github.com/codemonkey800","imageURL":"https://github.com/codemonkey800.png","key":"codemonkey800","page":null},"danielhochman":{"name":"Daniel Hochman","alias":"danielhochman","url":"https://github.com/danielhochman","imageURL":"https://github.com/danielhochman.png","key":"danielhochman","page":null},"dpkg":{"name":"Deepak Giri","alias":"dpkg","url":"https://github.com/dpkg","imageURL":"https://github.com/dpkg.png","key":"dpkg","page":null},"ehsanjso":{"name":"ehsan jso","alias":"ehsanjso","url":"https://github.com/ehsanjso","imageURL":"https://github.com/ehsanjso.png","key":"ehsanjso","page":null},"eKhattak":{"name":"Arsalan Khattak","alias":"eKhattak","url":"https://github.com/eKhattak","imageURL":"https://github.com/eKhattak.png","key":"eKhattak","page":null},"hi-matbub":{"name":"matbub","alias":"hi-matbub","url":"https://github.com/hi-matbub","imageURL":"https://github.com/hi-matbub.png","key":"hi-matbub","page":null},"jordanliu":{"name":"Jordan Liu","alias":"jordanliu","url":"https://github.com/jordanliu","imageURL":"https://github.com/jordanliu.png","key":"jordanliu","page":null},"pcowgill":{"name":"Paul Cowgill","alias":"pcowgill","url":"https://github.com/pcowgill","imageURL":"https://github.com/pcowgill.png","key":"pcowgill","page":null},"svtfrida":{"name":"Frida Hjelm","alias":"svtfrida","url":"https://github.com/svtfrida","imageURL":"https://github.com/svtfrida.png","key":"svtfrida","page":null},"taylorallen0913":{"name":"Taylor Allen","alias":"taylorallen0913","url":"https://github.com/taylorallen0913","imageURL":"https://github.com/taylorallen0913.png","key":"taylorallen0913","page":null},"xtellurian":{"name":"Rian Finnegan","alias":"xtellurian","url":"https://github.com/xtellurian","imageURL":"https://github.com/xtellurian.png","key":"xtellurian","page":null},"belokonm":{"name":"belokonm","alias":"belokonm","url":"https://github.com/belokonm","imageURL":"https://github.com/belokonm.png","key":"belokonm","page":null},"guillaumejacquart":{"name":"Guillaume Jacquart","alias":"guillaumejacquart","url":"https://github.com/guillaumejacquart","imageURL":"https://github.com/guillaumejacquart.png","key":"guillaumejacquart","page":null},"jsjoeio":{"name":"JavaScript Joe","alias":"jsjoeio","url":"https://github.com/jsjoeio","imageURL":"https://github.com/jsjoeio.png","key":"jsjoeio","page":null},"Nishikoh":{"name":"Koki Nishihara","alias":"Nishikoh","url":"https://github.com/Nishikoh","imageURL":"https://github.com/Nishikoh.png","key":"Nishikoh","page":null},"pglezen":{"name":"Paul Glezen","alias":"pglezen","url":"https://github.com/pglezen","imageURL":"https://github.com/pglezen.png","key":"pglezen","page":null},"tetunori":{"name":"tetunori","alias":"tetunori","url":"https://github.com/tetunori","imageURL":"https://github.com/tetunori.png","key":"tetunori","page":null},"TomBrien":{"name":"Tom Brien","alias":"TomBrien","url":"https://github.com/TomBrien","imageURL":"https://github.com/TomBrien.png","key":"TomBrien","page":null},"jmcshane":{"name":"James McShane","alias":"jmcshane","url":"https://github.com/jmcshane","imageURL":"https://github.com/jmcshane.png","key":"jmcshane","page":null},"kasperp":{"name":"Kasper B\xf8gebjerg Pedersen","alias":"kasperp","url":"https://github.com/kasperp","imageURL":"https://github.com/kasperp.png","key":"kasperp","page":null},"mrmuhammadali":{"name":"Muhammad Ali","alias":"mrmuhammadali","url":"https://github.com/mrmuhammadali","imageURL":"https://github.com/mrmuhammadali.png","key":"mrmuhammadali","page":null},"piotros":{"name":"Piotr Baran","alias":"piotros","url":"https://github.com/piotros","imageURL":"https://github.com/piotros.png","key":"piotros","page":null},"s-pace":{"name":"Sylvain Pace","alias":"s-pace","url":"https://github.com/s-pace","imageURL":"https://github.com/s-pace.png","key":"s-pace","page":null},"iamrajiv":{"name":"Rajiv Singh","alias":"iamrajiv","url":"https://github.com/iamrajiv","imageURL":"https://github.com/iamrajiv.png","key":"iamrajiv","page":null},"jcomack":{"name":"Jimmy","alias":"jcomack","url":"https://github.com/jcomack","imageURL":"https://github.com/jcomack.png","key":"jcomack","page":null},"jdeniau":{"name":"Julien Deniau","alias":"jdeniau","url":"https://github.com/jdeniau","imageURL":"https://github.com/jdeniau.png","key":"jdeniau","page":null},"jonnynabors":{"name":"Jonny Nabors","alias":"jonnynabors","url":"https://github.com/jonnynabors","imageURL":"https://github.com/jonnynabors.png","key":"jonnynabors","page":null},"marcosvega91":{"name":"Marco Moretti","alias":"marcosvega91","url":"https://github.com/marcosvega91","imageURL":"https://github.com/marcosvega91.png","key":"marcosvega91","page":null},"AnayoOleru":{"name":"Anayo Oleru","alias":"AnayoOleru","url":"https://github.com/AnayoOleru","imageURL":"https://github.com/AnayoOleru.png","key":"AnayoOleru","page":null},"jaylees14":{"name":"Jay Lees","alias":"jaylees14","url":"https://github.com/jaylees14","imageURL":"https://github.com/jaylees14.png","key":"jaylees14","page":null},"JoseRenan":{"name":"Jos\xe9 Renan","alias":"JoseRenan","url":"https://github.com/JoseRenan","imageURL":"https://github.com/JoseRenan.png","key":"JoseRenan","page":null},"kamilkisiela":{"name":"Kamil Kisiela","alias":"kamilkisiela","url":"https://github.com/kamilkisiela","imageURL":"https://github.com/kamilkisiela.png","key":"kamilkisiela","page":null},"kripod":{"name":"Krist\xf3f Poduszl\xf3","alias":"kripod","url":"https://github.com/kripod","imageURL":"https://github.com/kripod.png","key":"kripod","page":null},"Noah-Silvera":{"name":"Noah Silvera","alias":"Noah-Silvera","url":"https://github.com/Noah-Silvera","imageURL":"https://github.com/Noah-Silvera.png","key":"Noah-Silvera","page":null},"watzon":{"name":"Chris Watson","alias":"watzon","url":"https://github.com/watzon","imageURL":"https://github.com/watzon.png","key":"watzon","page":null},"yatki":{"name":"Mehmet Yatk\u0131","alias":"yatki","url":"https://github.com/yatki","imageURL":"https://github.com/yatki.png","key":"yatki","page":null},"cangencer":{"name":"Can Gencer","alias":"cangencer","url":"https://github.com/cangencer","imageURL":"https://github.com/cangencer.png","key":"cangencer","page":null},"iWun":{"name":"Richard Chan","alias":"iWun","url":"https://github.com/iWun","imageURL":"https://github.com/iWun.png","key":"iWun","page":null},"38elements":{"name":"38elements","alias":"38elements","url":"https://github.com/38elements","imageURL":"https://github.com/38elements.png","key":"38elements","page":null},"bravo-kernel":{"name":"bravo-kernel","alias":"bravo-kernel","url":"https://github.com/bravo-kernel","imageURL":"https://github.com/bravo-kernel.png","key":"bravo-kernel","page":null},"elviswolcott":{"name":"Elvis Wolcott","alias":"elviswolcott","url":"https://github.com/elviswolcott","imageURL":"https://github.com/elviswolcott.png","key":"elviswolcott","page":null},"fakela":{"name":"Favour Kelvin","alias":"fakela","url":"https://github.com/fakela","imageURL":"https://github.com/fakela.png","key":"fakela","page":null},"GermaVinsmoke":{"name":"GermaVinsmoke","alias":"GermaVinsmoke","url":"https://github.com/GermaVinsmoke","imageURL":"https://github.com/GermaVinsmoke.png","key":"GermaVinsmoke","page":null},"iamkun":{"name":"iamkun","alias":"iamkun","url":"https://github.com/iamkun","imageURL":"https://github.com/iamkun.png","key":"iamkun","page":null},"jeffersonlicet":{"name":"Jefferson Licet","alias":"jeffersonlicet","url":"https://github.com/jeffersonlicet","imageURL":"https://github.com/jeffersonlicet.png","key":"jeffersonlicet","page":null},"KohheePeace":{"name":"KohheePeace","alias":"KohheePeace","url":"https://github.com/KohheePeace","imageURL":"https://github.com/KohheePeace.png","key":"KohheePeace","page":null},"lukecollier":{"name":"Luke Collier","alias":"lukecollier","url":"https://github.com/lukecollier","imageURL":"https://github.com/lukecollier.png","key":"lukecollier","page":null},"mohrash92":{"name":"mohrash92","alias":"mohrash92","url":"https://github.com/mohrash92","imageURL":"https://github.com/mohrash92.png","key":"mohrash92","page":null},"nisarhassan12":{"name":"Nisar Hassan Naqvi","alias":"nisarhassan12","url":"https://github.com/nisarhassan12","imageURL":"https://github.com/nisarhassan12.png","key":"nisarhassan12","page":null},"paularmstrong":{"name":"Paul Armstrong","alias":"paularmstrong","url":"https://github.com/paularmstrong","imageURL":"https://github.com/paularmstrong.png","key":"paularmstrong","page":null},"phoqe":{"name":"Linus L\xe5ngberg","alias":"phoqe","url":"https://github.com/phoqe","imageURL":"https://github.com/phoqe.png","key":"phoqe","page":null},"rlamana":{"name":"Ram\xf3n Lamana","alias":"rlamana","url":"https://github.com/rlamana","imageURL":"https://github.com/rlamana.png","key":"rlamana","page":null},"ZachJW34":{"name":"ZachJW34","alias":"ZachJW34","url":"https://github.com/ZachJW34","imageURL":"https://github.com/ZachJW34.png","key":"ZachJW34","page":null},"amilajack":{"name":"Amila Welihinda","alias":"amilajack","url":"https://github.com/amilajack","imageURL":"https://github.com/amilajack.png","key":"amilajack","page":null},"balloob":{"name":"Paulus Schoutsen","alias":"balloob","url":"https://github.com/balloob","imageURL":"https://github.com/balloob.png","key":"balloob","page":null},"deniaz":{"name":"Robert","alias":"deniaz","url":"https://github.com/deniaz","imageURL":"https://github.com/deniaz.png","key":"deniaz","page":null},"hassanfarid":{"name":"Hassan Farid","alias":"hassanfarid","url":"https://github.com/hassanfarid","imageURL":"https://github.com/hassanfarid.png","key":"hassanfarid","page":null},"jartuso":{"name":"jartuso","alias":"jartuso","url":"https://github.com/jartuso","imageURL":"https://github.com/jartuso.png","key":"jartuso","page":null},"mohamedsgap":{"name":"Mohamed Abdel Nasser","alias":"mohamedsgap","url":"https://github.com/mohamedsgap","imageURL":"https://github.com/mohamedsgap.png","key":"mohamedsgap","page":null},"scottilee":{"name":"Scott Lee","alias":"scottilee","url":"https://github.com/scottilee","imageURL":"https://github.com/scottilee.png","key":"scottilee","page":null},"Zhencha0Cai":{"name":"Zhenchao Cai","alias":"Zhencha0Cai","url":"https://github.com/Zhencha0Cai","imageURL":"https://github.com/Zhencha0Cai.png","key":"Zhencha0Cai","page":null},"awalias":{"name":"awalias","alias":"awalias","url":"https://github.com/awalias","imageURL":"https://github.com/awalias.png","key":"awalias","page":null},"edwandr":{"name":"Elie Dutheil","alias":"edwandr","url":"https://github.com/edwandr","imageURL":"https://github.com/edwandr.png","key":"edwandr","page":null},"erubi":{"name":"Evan Rubinton","alias":"erubi","url":"https://github.com/erubi","imageURL":"https://github.com/erubi.png","key":"erubi","page":null},"galhavivi":{"name":"Gal Havivi","alias":"galhavivi","url":"https://github.com/galhavivi","imageURL":"https://github.com/galhavivi.png","key":"galhavivi","page":null},"Jeffail":{"name":"Ashley Jeffs","alias":"Jeffail","url":"https://github.com/Jeffail","imageURL":"https://github.com/Jeffail.png","key":"Jeffail","page":null},"jjwill":{"name":"Joshua Williams","alias":"jjwill","url":"https://github.com/jjwill","imageURL":"https://github.com/jjwill.png","key":"jjwill","page":null},"jonathanrdelgado":{"name":"Jonathan Delgado","alias":"jonathanrdelgado","url":"https://github.com/jonathanrdelgado","imageURL":"https://github.com/jonathanrdelgado.png","key":"jonathanrdelgado","page":null},"mterrel":{"name":"Mark Terrel","alias":"mterrel","url":"https://github.com/mterrel","imageURL":"https://github.com/mterrel.png","key":"mterrel","page":null},"OndrejNepozitek":{"name":"Ond\u0159ej Nepo\u017Eitek","alias":"OndrejNepozitek","url":"https://github.com/OndrejNepozitek","imageURL":"https://github.com/OndrejNepozitek.png","key":"OndrejNepozitek","page":null},"sdowding":{"name":"Scott Dowding","alias":"sdowding","url":"https://github.com/sdowding","imageURL":"https://github.com/sdowding.png","key":"sdowding","page":null},"trustyoo86":{"name":"Hanseung Yoo","alias":"trustyoo86","url":"https://github.com/trustyoo86","imageURL":"https://github.com/trustyoo86.png","key":"trustyoo86","page":null},"wgao19":{"name":"Wei Gao","alias":"wgao19","url":"https://github.com/wgao19","imageURL":"https://github.com/wgao19.png","key":"wgao19","page":null},"endiliey":{"name":"Endi","alias":"endiliey","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null},"janko":{"name":"Janko Marohni\u0107","alias":"janko","url":"https://github.com/janko","imageURL":"https://github.com/janko.png","key":"janko","page":null},"nickmccurdy":{"name":"Nick McCurdy","alias":"nickmccurdy","url":"https://github.com/nickmccurdy","imageURL":"https://github.com/nickmccurdy.png","key":"nickmccurdy","page":null},"TransmissionsDev":{"name":"t11s","alias":"TransmissionsDev","url":"https://github.com/TransmissionsDev","imageURL":"https://github.com/TransmissionsDev.png","key":"TransmissionsDev","page":null},"FeynmanDNA":{"name":"KYY","alias":"FeynmanDNA","url":"https://github.com/FeynmanDNA","imageURL":"https://github.com/FeynmanDNA.png","key":"FeynmanDNA","page":null},"qshiwu":{"name":"kaichu","alias":"qshiwu","url":"https://github.com/qshiwu","imageURL":"https://github.com/qshiwu.png","key":"qshiwu","page":null},"shivangna":{"name":"Shivangna Kaistha","alias":"shivangna","url":"https://github.com/shivangna","imageURL":"https://github.com/shivangna.png","key":"shivangna","page":null},"binarylogic":{"name":"Binary Logic","alias":"binarylogic","url":"https://github.com/binarylogic","imageURL":"https://github.com/binarylogic.png","key":"binarylogic","page":null},"gimdongwoo":{"name":"Dongwoo Gim","alias":"gimdongwoo","url":"https://github.com/gimdongwoo","imageURL":"https://github.com/gimdongwoo.png","key":"gimdongwoo","page":null},"ericcarboni":{"name":"Eric Carboni","alias":"ericcarboni","url":"https://github.com/ericcarboni","imageURL":"https://github.com/ericcarboni.png","key":"ericcarboni","page":null},"jamiedavenport":{"name":"Jamie Davenport","alias":"jamiedavenport","url":"https://github.com/jamiedavenport","imageURL":"https://github.com/jamiedavenport.png","key":"jamiedavenport","page":null},"kenning":{"name":"Nick McCormick","alias":"kenning","url":"https://github.com/kenning","imageURL":"https://github.com/kenning.png","key":"kenning","page":null},"vinnytheviking":{"name":"Vincent van der Walt","alias":"vinnytheviking","url":"https://github.com/vinnytheviking","imageURL":"https://github.com/vinnytheviking.png","key":"vinnytheviking","page":null}}}},"docusaurus-plugin-ideal-image":{},"docusaurus-theme-mermaid":{},"feature-requests-plugin":{},"client-module-test-plugin":{},"docusaurus-theme-live-codeblock":{},"swizzle-theme-tests":{},"docusaurus-bootstrap-plugin":{},"docusaurus-mdx-fallback-plugin":{}}}')}}]); \ No newline at end of file diff --git a/assets/js/3c0a97de.d9b567db.js b/assets/js/3c0a97de.d9b567db.js deleted file mode 100644 index ac41d20bab..0000000000 --- a/assets/js/3c0a97de.d9b567db.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[18597],{73343:e=>{e.exports=JSON.parse('{"allContent":{"docusaurus-plugin-content-docs":{"default":{"loadedVersions":[{"versionName":"current","label":"Canary \u{1F6A7}","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","path":"/docs","tagsPath":"/docs/tags","isLast":true,"routePriority":-1,"sidebarFilePath":"/home/runner/work/docusaurus/docusaurus/website/sidebars.ts","contentPath":"/home/runner/work/docusaurus/docusaurus/website/docs","contentPathLocalized":"/home/runner/work/docusaurus/docusaurus/website/i18n/en/docusaurus-plugin-content-docs/current","docs":[{"id":"advanced/architecture","title":"Architecture","description":"How Docusaurus works to build your app","source":"@site/docs/advanced/architecture.mdx","sourceDirName":"advanced","slug":"/advanced/architecture","permalink":"/docs/advanced/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/advanced/architecture.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"How Docusaurus works to build your app"},"sidebar":"docs","previous":{"title":"Advanced Tutorials","permalink":"/docs/advanced/"},"next":{"title":"Plugins","permalink":"/docs/advanced/plugins"}},{"id":"advanced/client","title":"Client architecture","description":"How the Docusaurus client is structured","source":"@site/docs/advanced/client.mdx","sourceDirName":"advanced","slug":"/advanced/client","permalink":"/docs/advanced/client","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/advanced/client.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"How the Docusaurus client is structured"},"sidebar":"docs","previous":{"title":"Static site generation","permalink":"/docs/advanced/ssg"},"next":{"title":"Upgrading Docusaurus","permalink":"/docs/migration"}},{"id":"advanced/index","title":"Advanced Tutorials","description":"This section is not going to be very structured, but we will cover the following topics:","source":"@site/docs/advanced/index.mdx","sourceDirName":"advanced","slug":"/advanced/","permalink":"/docs/advanced/","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/advanced/index.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"docs","previous":{"title":"What\'s next?","permalink":"/docs/guides/whats-next"},"next":{"title":"Architecture","permalink":"/docs/advanced/architecture"}},{"id":"advanced/plugins","title":"Plugins","description":"Plugins are the building blocks of features in a Docusaurus site. Each plugin handles its own individual feature. Plugins may work and be distributed as part of a bundle via presets.","source":"@site/docs/advanced/plugins.mdx","sourceDirName":"advanced","slug":"/advanced/plugins","permalink":"/docs/advanced/plugins","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/advanced/plugins.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"docs","previous":{"title":"Architecture","permalink":"/docs/advanced/architecture"},"next":{"title":"Routing","permalink":"/docs/advanced/routing"}},{"id":"advanced/routing","title":"Routing","description":"Docusaurus\' routing system follows single-page application conventions: one route, one component.","source":"@site/docs/advanced/routing.mdx","sourceDirName":"advanced","slug":"/advanced/routing","permalink":"/docs/advanced/routing","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/advanced/routing.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"Docusaurus\' routing system follows single-page application conventions: one route, one component."},"sidebar":"docs","previous":{"title":"Plugins","permalink":"/docs/advanced/plugins"},"next":{"title":"Static site generation","permalink":"/docs/advanced/ssg"}},{"id":"advanced/ssg","title":"Static site generation (SSG)","description":"Docusaurus statically renders your React code into HTML, allowing faster load speed and better SEO.","source":"@site/docs/advanced/ssg.mdx","sourceDirName":"advanced","slug":"/advanced/ssg","permalink":"/docs/advanced/ssg","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/advanced/ssg.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"sidebar_label":"Static site generation","description":"Docusaurus statically renders your React code into HTML, allowing faster load speed and better SEO."},"sidebar":"docs","previous":{"title":"Routing","permalink":"/docs/advanced/routing"},"next":{"title":"Client architecture","permalink":"/docs/advanced/client"}},{"id":"api/docusaurus.config.js","title":"docusaurus.config.js","description":"API reference for Docusaurus configuration file.","source":"@site/docs/api/docusaurus.config.js.mdx","sourceDirName":"api","slug":"/api/docusaurus-config","permalink":"/docs/api/docusaurus-config","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/docusaurus.config.js.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":0,"frontMatter":{"sidebar_position":0,"description":"API reference for Docusaurus configuration file.","slug":"/api/docusaurus-config"},"sidebar":"api","previous":{"title":"Client API","permalink":"/docs/docusaurus-core"},"next":{"title":"Plugin Method References","permalink":"/docs/api/plugin-methods/"}},{"id":"api/misc/create-docusaurus","title":"\u{1F4E6} create-docusaurus","description":"A scaffolding utility to help you instantly set up a functional Docusaurus app.","source":"@site/docs/api/misc/create-docusaurus.mdx","sourceDirName":"api/misc","slug":"/api/misc/create-docusaurus","permalink":"/docs/api/misc/create-docusaurus","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/create-docusaurus.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":0,"frontMatter":{"sidebar_position":0,"slug":"/api/misc/create-docusaurus"},"sidebar":"api","previous":{"title":"\u{1F4E6} theme-mermaid","permalink":"/docs/api/themes/@docusaurus/theme-mermaid"},"next":{"title":"\u{1F4E6} eslint-plugin","permalink":"/docs/api/misc/@docusaurus/eslint-plugin"}},{"id":"api/misc/eslint-plugin/no-html-links","title":"no-html-links","description":"Ensure that the Docusaurus ` component is used instead of ` tags.","source":"@site/docs/api/misc/eslint-plugin/no-html-links.mdx","sourceDirName":"api/misc/eslint-plugin","slug":"/api/misc/@docusaurus/eslint-plugin/no-html-links","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/no-html-links","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/eslint-plugin/no-html-links.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/api/misc/@docusaurus/eslint-plugin/no-html-links"},"sidebar":"api","previous":{"title":"\u{1F4E6} eslint-plugin","permalink":"/docs/api/misc/@docusaurus/eslint-plugin"},"next":{"title":"no-untranslated-text","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/no-untranslated-text"}},{"id":"api/misc/eslint-plugin/no-untranslated-text","title":"no-untranslated-text","description":"Enforce text labels in JSX to be wrapped by translate calls.","source":"@site/docs/api/misc/eslint-plugin/no-untranslated-text.mdx","sourceDirName":"api/misc/eslint-plugin","slug":"/api/misc/@docusaurus/eslint-plugin/no-untranslated-text","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/no-untranslated-text","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/eslint-plugin/no-untranslated-text.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/api/misc/@docusaurus/eslint-plugin/no-untranslated-text"},"sidebar":"api","previous":{"title":"no-html-links","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/no-html-links"},"next":{"title":"prefer-docusaurus-heading","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading"}},{"id":"api/misc/eslint-plugin/prefer-docusaurus-heading","title":"prefer-docusaurus-heading","description":"Ensures that the @theme/Heading theme component provided by Docusaurus theme-classic is used instead of `` tags for headings.","source":"@site/docs/api/misc/eslint-plugin/prefer-docusaurus-heading.mdx","sourceDirName":"api/misc/eslint-plugin","slug":"/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/eslint-plugin/prefer-docusaurus-heading.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading"},"sidebar":"api","previous":{"title":"no-untranslated-text","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/no-untranslated-text"},"next":{"title":"string-literal-i18n-messages","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages"}},{"id":"api/misc/eslint-plugin/README","title":"\u{1F4E6} eslint-plugin","description":"ESLint is a tool that statically analyzes your code and reports problems or suggests best practices through editor hints and command line. Docusaurus provides an ESLint plugin to enforce best Docusaurus practices.","source":"@site/docs/api/misc/eslint-plugin/README.mdx","sourceDirName":"api/misc/eslint-plugin","slug":"/api/misc/@docusaurus/eslint-plugin","permalink":"/docs/api/misc/@docusaurus/eslint-plugin","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/eslint-plugin/README.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1,"slug":"/api/misc/@docusaurus/eslint-plugin"},"sidebar":"api","previous":{"title":"\u{1F4E6} create-docusaurus","permalink":"/docs/api/misc/create-docusaurus"},"next":{"title":"no-html-links","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/no-html-links"}},{"id":"api/misc/eslint-plugin/string-literal-i18n-messages","title":"string-literal-i18n-messages","description":"Enforce translate APIs to be called on plain text labels.","source":"@site/docs/api/misc/eslint-plugin/string-literal-i18n-messages.mdx","sourceDirName":"api/misc/eslint-plugin","slug":"/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/eslint-plugin/string-literal-i18n-messages.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages"},"sidebar":"api","previous":{"title":"prefer-docusaurus-heading","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading"},"next":{"title":"\u{1F4E6} logger","permalink":"/docs/api/misc/@docusaurus/logger"}},{"id":"api/misc/logger/logger","title":"\u{1F4E6} logger","description":"An encapsulated logger for semantically formatting console messages.","source":"@site/docs/api/misc/logger/logger.mdx","sourceDirName":"api/misc/logger","slug":"/api/misc/@docusaurus/logger","permalink":"/docs/api/misc/@docusaurus/logger","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/logger/logger.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":2,"frontMatter":{"sidebar_position":2,"slug":"/api/misc/@docusaurus/logger"},"sidebar":"api","previous":{"title":"string-literal-i18n-messages","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages"}},{"id":"api/plugin-methods/extend-infrastructure","title":"Extending infrastructure","description":"Docusaurus has some infrastructure like hot reloading, CLI, and swizzling, that can be extended by external plugins.","source":"@site/docs/api/plugin-methods/extend-infrastructure.mdx","sourceDirName":"api/plugin-methods","slug":"/api/plugin-methods/extend-infrastructure","permalink":"/docs/api/plugin-methods/extend-infrastructure","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugin-methods/extend-infrastructure.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":2,"frontMatter":{"sidebar_position":2},"sidebar":"api","previous":{"title":"Lifecycle APIs","permalink":"/docs/api/plugin-methods/lifecycle-apis"},"next":{"title":"I18n lifecycles","permalink":"/docs/api/plugin-methods/i18n-lifecycles"}},{"id":"api/plugin-methods/i18n-lifecycles","title":"I18n lifecycles","description":"Plugins use these lifecycles to load i18n-related data.","source":"@site/docs/api/plugin-methods/i18n-lifecycles.mdx","sourceDirName":"api/plugin-methods","slug":"/api/plugin-methods/i18n-lifecycles","permalink":"/docs/api/plugin-methods/i18n-lifecycles","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugin-methods/i18n-lifecycles.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":3,"frontMatter":{"sidebar_position":3},"sidebar":"api","previous":{"title":"Extending infrastructure","permalink":"/docs/api/plugin-methods/extend-infrastructure"},"next":{"title":"Static methods","permalink":"/docs/api/plugin-methods/static-methods"}},{"id":"api/plugin-methods/lifecycle-apis","title":"Lifecycle APIs","description":"During the build, plugins are loaded in parallel to fetch their own contents and render them to routes. Plugins may also configure webpack or post-process the generated files.","source":"@site/docs/api/plugin-methods/lifecycle-apis.mdx","sourceDirName":"api/plugin-methods","slug":"/api/plugin-methods/lifecycle-apis","permalink":"/docs/api/plugin-methods/lifecycle-apis","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugin-methods/lifecycle-apis.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1,"toc_max_heading_level":4},"sidebar":"api","previous":{"title":"Plugin Method References","permalink":"/docs/api/plugin-methods/"},"next":{"title":"Extending infrastructure","permalink":"/docs/api/plugin-methods/extend-infrastructure"}},{"id":"api/plugin-methods/README","title":"Plugin Method References","description":"This section is a work in progress. Anchor links or even URLs are not guaranteed to be stable.","source":"@site/docs/api/plugin-methods/README.mdx","sourceDirName":"api/plugin-methods","slug":"/api/plugin-methods/","permalink":"/docs/api/plugin-methods/","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugin-methods/README.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"api","previous":{"title":"docusaurus.config.js","permalink":"/docs/api/docusaurus-config"},"next":{"title":"Lifecycle APIs","permalink":"/docs/api/plugin-methods/lifecycle-apis"}},{"id":"api/plugin-methods/static-methods","title":"Static methods","description":"Static methods are not part of the plugin instance\u2014they are attached to the constructor function. These methods are used to validate and normalize the plugin options and theme config, which are then used as constructor parameters to initialize the plugin instance.","source":"@site/docs/api/plugin-methods/static-methods.mdx","sourceDirName":"api/plugin-methods","slug":"/api/plugin-methods/static-methods","permalink":"/docs/api/plugin-methods/static-methods","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugin-methods/static-methods.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":4,"frontMatter":{"sidebar_position":4},"sidebar":"api","previous":{"title":"I18n lifecycles","permalink":"/docs/api/plugin-methods/i18n-lifecycles"},"next":{"title":"Plugins overview","permalink":"/docs/api/plugins"}},{"id":"api/plugins/plugin-client-redirects","title":"\u{1F4E6} plugin-client-redirects","description":"Docusaurus Plugin to generate client-side redirects.","source":"@site/docs/api/plugins/plugin-client-redirects.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-client-redirects","permalink":"/docs/api/plugins/@docusaurus/plugin-client-redirects","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-client-redirects.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":4,"frontMatter":{"sidebar_position":4,"slug":"/api/plugins/@docusaurus/plugin-client-redirects"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-content-pages","permalink":"/docs/api/plugins/@docusaurus/plugin-content-pages"},"next":{"title":"\u{1F4E6} plugin-debug","permalink":"/docs/api/plugins/@docusaurus/plugin-debug"}},{"id":"api/plugins/plugin-content-blog","title":"\u{1F4E6} plugin-content-blog","description":"Provides the Blog feature and is the default blog plugin for Docusaurus.","source":"@site/docs/api/plugins/plugin-content-blog.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-content-blog","permalink":"/docs/api/plugins/@docusaurus/plugin-content-blog","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-content-blog.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":2,"frontMatter":{"sidebar_position":2,"slug":"/api/plugins/@docusaurus/plugin-content-blog"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-content-docs","permalink":"/docs/api/plugins/@docusaurus/plugin-content-docs"},"next":{"title":"\u{1F4E6} plugin-content-pages","permalink":"/docs/api/plugins/@docusaurus/plugin-content-pages"}},{"id":"api/plugins/plugin-content-docs","title":"\u{1F4E6} plugin-content-docs","description":"Provides the Docs functionality and is the default docs plugin for Docusaurus.","source":"@site/docs/api/plugins/plugin-content-docs.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-content-docs","permalink":"/docs/api/plugins/@docusaurus/plugin-content-docs","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-content-docs.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1,"slug":"/api/plugins/@docusaurus/plugin-content-docs"},"sidebar":"api","previous":{"title":"Plugins overview","permalink":"/docs/api/plugins"},"next":{"title":"\u{1F4E6} plugin-content-blog","permalink":"/docs/api/plugins/@docusaurus/plugin-content-blog"}},{"id":"api/plugins/plugin-content-pages","title":"\u{1F4E6} plugin-content-pages","description":"The default pages plugin for Docusaurus. The classic template ships with this plugin with default configurations. This plugin provides creating pages functionality.","source":"@site/docs/api/plugins/plugin-content-pages.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-content-pages","permalink":"/docs/api/plugins/@docusaurus/plugin-content-pages","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-content-pages.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":3,"frontMatter":{"sidebar_position":3,"slug":"/api/plugins/@docusaurus/plugin-content-pages"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-content-blog","permalink":"/docs/api/plugins/@docusaurus/plugin-content-blog"},"next":{"title":"\u{1F4E6} plugin-client-redirects","permalink":"/docs/api/plugins/@docusaurus/plugin-client-redirects"}},{"id":"api/plugins/plugin-debug","title":"\u{1F4E6} plugin-debug","description":"The debug plugin will display useful debug information at http3000/docusaurus/debug.","source":"@site/docs/api/plugins/plugin-debug.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-debug","permalink":"/docs/api/plugins/@docusaurus/plugin-debug","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-debug.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":5,"frontMatter":{"sidebar_position":5,"slug":"/api/plugins/@docusaurus/plugin-debug"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-client-redirects","permalink":"/docs/api/plugins/@docusaurus/plugin-client-redirects"},"next":{"title":"\u{1F4E6} plugin-google-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-google-analytics"}},{"id":"api/plugins/plugin-google-analytics","title":"\u{1F4E6} plugin-google-analytics","description":"The default Google Analytics plugin. It is a JavaScript library for measuring how users interact with your website in the production build. If you are using Google Analytics 4 you might need to consider using plugin-google-gtag instead.","source":"@site/docs/api/plugins/plugin-google-analytics.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-google-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-google-analytics","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-google-analytics.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":6,"frontMatter":{"sidebar_position":6,"slug":"/api/plugins/@docusaurus/plugin-google-analytics"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-debug","permalink":"/docs/api/plugins/@docusaurus/plugin-debug"},"next":{"title":"\u{1F4E6} plugin-google-gtag","permalink":"/docs/api/plugins/@docusaurus/plugin-google-gtag"}},{"id":"api/plugins/plugin-google-gtag","title":"\u{1F4E6} plugin-google-gtag","description":"The default Global Site Tag (gtag.js) plugin. It is a JavaScript tagging framework and API that allows you to send event data to Google Analytics, Google Ads, and Google Marketing Platform. This section describes how to configure a Docusaurus site to enable global site tag for Google Analytics.","source":"@site/docs/api/plugins/plugin-google-gtag.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-google-gtag","permalink":"/docs/api/plugins/@docusaurus/plugin-google-gtag","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-google-gtag.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":7,"frontMatter":{"sidebar_position":7,"slug":"/api/plugins/@docusaurus/plugin-google-gtag"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-google-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-google-analytics"},"next":{"title":"\u{1F4E6} plugin-google-tag-manager","permalink":"/docs/api/plugins/@docusaurus/plugin-google-tag-manager"}},{"id":"api/plugins/plugin-google-tag-manager","title":"\u{1F4E6} plugin-google-tag-manager","description":"A plugin for adding Google Tag Manager (gtm.js) to a Docusaurus site. Use this plugin in conjunction with the standard gtag plugin for in-depth analysis of how users are using your site.","source":"@site/docs/api/plugins/plugin-google-tag-manager.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-google-tag-manager","permalink":"/docs/api/plugins/@docusaurus/plugin-google-tag-manager","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-google-tag-manager.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":8,"frontMatter":{"sidebar_position":8,"slug":"/api/plugins/@docusaurus/plugin-google-tag-manager"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-google-gtag","permalink":"/docs/api/plugins/@docusaurus/plugin-google-gtag"},"next":{"title":"\u{1F4E6} plugin-ideal-image","permalink":"/docs/api/plugins/@docusaurus/plugin-ideal-image"}},{"id":"api/plugins/plugin-ideal-image","title":"\u{1F4E6} plugin-ideal-image","description":"Docusaurus Plugin to generate an almost ideal image (responsive, lazy-loading, and low quality placeholder).","source":"@site/docs/api/plugins/plugin-ideal-image.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-ideal-image","permalink":"/docs/api/plugins/@docusaurus/plugin-ideal-image","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-ideal-image.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":8,"frontMatter":{"sidebar_position":8,"slug":"/api/plugins/@docusaurus/plugin-ideal-image"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-google-tag-manager","permalink":"/docs/api/plugins/@docusaurus/plugin-google-tag-manager"},"next":{"title":"\u{1F4E6} plugin-pwa","permalink":"/docs/api/plugins/@docusaurus/plugin-pwa"}},{"id":"api/plugins/plugin-pwa","title":"\u{1F4E6} plugin-pwa","description":"Docusaurus Plugin to add PWA support using Workbox. This plugin generates a Service Worker in production build only, and allows you to create fully PWA-compliant documentation site with offline and installation support.","source":"@site/docs/api/plugins/plugin-pwa.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-pwa","permalink":"/docs/api/plugins/@docusaurus/plugin-pwa","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-pwa.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":9,"frontMatter":{"sidebar_position":9,"slug":"/api/plugins/@docusaurus/plugin-pwa"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-ideal-image","permalink":"/docs/api/plugins/@docusaurus/plugin-ideal-image"},"next":{"title":"\u{1F4E6} plugin-sitemap","permalink":"/docs/api/plugins/@docusaurus/plugin-sitemap"}},{"id":"api/plugins/plugin-sitemap","title":"\u{1F4E6} plugin-sitemap","description":"This plugin creates sitemaps for your site so that search engine crawlers can crawl your site more accurately.","source":"@site/docs/api/plugins/plugin-sitemap.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-sitemap","permalink":"/docs/api/plugins/@docusaurus/plugin-sitemap","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-sitemap.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":10,"frontMatter":{"sidebar_position":10,"slug":"/api/plugins/@docusaurus/plugin-sitemap"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-pwa","permalink":"/docs/api/plugins/@docusaurus/plugin-pwa"},"next":{"title":"\u{1F4E6} plugin-vercel-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-vercel-analytics"}},{"id":"api/plugins/plugin-vercel-analytics","title":"\u{1F4E6} plugin-vercel-analytics","description":"Vercel Analytics provides comprehensive insights into your website\'s visitors, tracking top pages, referrers, and demographics like location, operating systems, and browser info.","source":"@site/docs/api/plugins/plugin-vercel-analytics.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-vercel-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-vercel-analytics","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-vercel-analytics.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":11,"frontMatter":{"sidebar_position":11,"slug":"/api/plugins/@docusaurus/plugin-vercel-analytics"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-sitemap","permalink":"/docs/api/plugins/@docusaurus/plugin-sitemap"},"next":{"title":"Themes overview","permalink":"/docs/api/themes"}},{"id":"api/plugins/plugins-overview","title":"Docusaurus plugins","description":"We provide official Docusaurus plugins.","source":"@site/docs/api/plugins/overview.mdx","sourceDirName":"api/plugins","slug":"/api/plugins","permalink":"/docs/api/plugins","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/overview.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":0,"frontMatter":{"sidebar_position":0,"id":"plugins-overview","sidebar_label":"Plugins overview","slug":"/api/plugins"},"sidebar":"api","previous":{"title":"Static methods","permalink":"/docs/api/plugin-methods/static-methods"},"next":{"title":"\u{1F4E6} plugin-content-docs","permalink":"/docs/api/plugins/@docusaurus/plugin-content-docs"}},{"id":"api/themes/theme-classic","title":"\u{1F4E6} theme-classic","description":"The classic theme for Docusaurus.","source":"@site/docs/api/themes/theme-classic.mdx","sourceDirName":"api/themes","slug":"/api/themes/@docusaurus/theme-classic","permalink":"/docs/api/themes/@docusaurus/theme-classic","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/theme-classic.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":2,"frontMatter":{"sidebar_position":2,"slug":"/api/themes/@docusaurus/theme-classic"},"sidebar":"api","previous":{"title":"Configuration","permalink":"/docs/api/themes/configuration"},"next":{"title":"\u{1F4E6} theme-live-codeblock","permalink":"/docs/api/themes/@docusaurus/theme-live-codeblock"}},{"id":"api/themes/theme-configuration","title":"Theme configuration","description":"This configuration applies to all main themes.","source":"@site/docs/api/themes/theme-configuration.mdx","sourceDirName":"api/themes","slug":"/api/themes/configuration","permalink":"/docs/api/themes/configuration","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/theme-configuration.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"Configuration","slug":"/api/themes/configuration","toc_max_heading_level":4},"sidebar":"api","previous":{"title":"Themes overview","permalink":"/docs/api/themes"},"next":{"title":"\u{1F4E6} theme-classic","permalink":"/docs/api/themes/@docusaurus/theme-classic"}},{"id":"api/themes/theme-live-codeblock","title":"\u{1F4E6} theme-live-codeblock","description":"This theme provides a @theme/CodeBlock component that is powered by react-live. You can read more on interactive code editor documentation.","source":"@site/docs/api/themes/theme-live-codeblock.mdx","sourceDirName":"api/themes","slug":"/api/themes/@docusaurus/theme-live-codeblock","permalink":"/docs/api/themes/@docusaurus/theme-live-codeblock","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/theme-live-codeblock.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":3,"frontMatter":{"sidebar_position":3,"slug":"/api/themes/@docusaurus/theme-live-codeblock"},"sidebar":"api","previous":{"title":"\u{1F4E6} theme-classic","permalink":"/docs/api/themes/@docusaurus/theme-classic"},"next":{"title":"\u{1F4E6} theme-search-algolia","permalink":"/docs/api/themes/@docusaurus/theme-search-algolia"}},{"id":"api/themes/theme-mermaid","title":"\u{1F4E6} theme-mermaid","description":"This theme provides a @theme/Mermaid component that is powered by mermaid. You can read more on diagrams documentation.","source":"@site/docs/api/themes/theme-mermaid.mdx","sourceDirName":"api/themes","slug":"/api/themes/@docusaurus/theme-mermaid","permalink":"/docs/api/themes/@docusaurus/theme-mermaid","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/theme-mermaid.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":5,"frontMatter":{"sidebar_position":5,"slug":"/api/themes/@docusaurus/theme-mermaid"},"sidebar":"api","previous":{"title":"\u{1F4E6} theme-search-algolia","permalink":"/docs/api/themes/@docusaurus/theme-search-algolia"},"next":{"title":"\u{1F4E6} create-docusaurus","permalink":"/docs/api/misc/create-docusaurus"}},{"id":"api/themes/theme-search-algolia","title":"\u{1F4E6} theme-search-algolia","description":"This theme provides a @theme/SearchBar component that integrates with Algolia DocSearch easily. Combined with @docusaurus/theme-classic, it provides a very easy search integration. You can read more on search documentation.","source":"@site/docs/api/themes/theme-search-algolia.mdx","sourceDirName":"api/themes","slug":"/api/themes/@docusaurus/theme-search-algolia","permalink":"/docs/api/themes/@docusaurus/theme-search-algolia","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/theme-search-algolia.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":4,"frontMatter":{"sidebar_position":4,"slug":"/api/themes/@docusaurus/theme-search-algolia"},"sidebar":"api","previous":{"title":"\u{1F4E6} theme-live-codeblock","permalink":"/docs/api/themes/@docusaurus/theme-live-codeblock"},"next":{"title":"\u{1F4E6} theme-mermaid","permalink":"/docs/api/themes/@docusaurus/theme-mermaid"}},{"id":"api/themes/themes-overview","title":"Docusaurus themes","description":"We provide official Docusaurus themes.","source":"@site/docs/api/themes/overview.mdx","sourceDirName":"api/themes","slug":"/api/themes","permalink":"/docs/api/themes","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/overview.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":0,"frontMatter":{"sidebar_position":0,"id":"themes-overview","sidebar_label":"Themes overview","slug":"/api/themes"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-vercel-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-vercel-analytics"},"next":{"title":"Configuration","permalink":"/docs/api/themes/configuration"}},{"id":"blog","title":"Blog","description":"Deploy a full-featured blog in no time with Docusaurus.","source":"@site/docs/blog.mdx","sourceDirName":".","slug":"/blog","permalink":"/docs/blog","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/blog.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"Deploy a full-featured blog in no time with Docusaurus."},"sidebar":"docs","previous":{"title":"Docs Multi-instance","permalink":"/docs/docs-multi-instance"},"next":{"title":"Markdown Features","permalink":"/docs/markdown-features"}},{"id":"browser-support","title":"Browser support","description":"How to keep a reasonable bundle size while ensuring sufficient browser support.","source":"@site/docs/browser-support.mdx","sourceDirName":".","slug":"/browser-support","permalink":"/docs/browser-support","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/browser-support.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"How to keep a reasonable bundle size while ensuring sufficient browser support."},"sidebar":"docs","previous":{"title":"Search","permalink":"/docs/search"},"next":{"title":"SEO","permalink":"/docs/seo"}},{"id":"cli","title":"CLI","description":"Docusaurus provides a set of scripts to help you generate, serve, and deploy your website.","source":"@site/docs/cli.mdx","sourceDirName":".","slug":"/cli","permalink":"/docs/cli","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/cli.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"Docusaurus provides a set of scripts to help you generate, serve, and deploy your website."},"sidebar":"api","next":{"title":"Client API","permalink":"/docs/docusaurus-core"}},{"id":"configuration","title":"Configuration","description":"Configuring your site\'s behavior through docusaurus.config.js and more.","source":"@site/docs/configuration.mdx","sourceDirName":".","slug":"/configuration","permalink":"/docs/configuration","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/configuration.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"Configuring your site\'s behavior through docusaurus.config.js and more."},"sidebar":"docs","previous":{"title":"Installation","permalink":"/docs/installation"},"next":{"title":"Playground","permalink":"/docs/playground"}},{"id":"deployment","title":"Deployment","description":"Deploy your Docusaurus app for production on a range of static site hosting services.","source":"@site/docs/deployment.mdx","sourceDirName":".","slug":"/deployment","permalink":"/docs/deployment","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/deployment.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"Deploy your Docusaurus app for production on a range of static site hosting services."},"sidebar":"docs","previous":{"title":"Using Plugins","permalink":"/docs/using-plugins"},"next":{"title":"i18n - Introduction","permalink":"/docs/i18n/introduction"}},{"id":"docusaurus-core","title":"Docusaurus Client API","description":"Docusaurus provides some APIs on the clients that can be helpful to you when building your site.","source":"@site/docs/docusaurus-core.mdx","sourceDirName":".","slug":"/docusaurus-core","permalink":"/docs/docusaurus-core","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/docusaurus-core.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"sidebar_label":"Client API"},"sidebar":"api","previous":{"title":"CLI","permalink":"/docs/cli"},"next":{"title":"docusaurus.config.js","permalink":"/docs/api/docusaurus-config"}},{"id":"guides/creating-pages","title":"Creating Pages","description":"In this section, we will learn about creating pages in Docusaurus.","source":"@site/docs/guides/creating-pages.mdx","sourceDirName":"guides","slug":"/creating-pages","permalink":"/docs/creating-pages","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/creating-pages.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/creating-pages","sidebar_label":"Pages"},"sidebar":"docs","previous":{"title":"Guides","permalink":"/docs/category/guides"},"next":{"title":"Introduction","permalink":"/docs/docs-introduction"}},{"id":"guides/docs/create-doc","title":"Create a doc","description":"Create a Markdown Document","source":"@site/docs/guides/docs/docs-create-doc.mdx","sourceDirName":"guides/docs","slug":"/create-doc","permalink":"/docs/create-doc","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/docs-create-doc.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"create-doc","description":"Create a Markdown Document","slug":"/create-doc"},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/docs/docs-introduction"},"next":{"title":"Sidebar","permalink":"/docs/sidebar"}},{"id":"guides/docs/introduction","title":"Docs Introduction","description":"The docs feature provides users with a way to organize Markdown files in a hierarchical format.","source":"@site/docs/guides/docs/docs-introduction.mdx","sourceDirName":"guides/docs","slug":"/docs-introduction","permalink":"/docs/docs-introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/docs-introduction.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"introduction","sidebar_label":"Introduction","slug":"/docs-introduction"},"sidebar":"docs","previous":{"title":"Pages","permalink":"/docs/creating-pages"},"next":{"title":"Create a doc","permalink":"/docs/create-doc"}},{"id":"guides/docs/multi-instance","title":"Docs Multi-instance","description":"Use multiple docs plugin instances on a single Docusaurus site.","source":"@site/docs/guides/docs/docs-multi-instance.mdx","sourceDirName":"guides/docs","slug":"/docs-multi-instance","permalink":"/docs/docs-multi-instance","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/docs-multi-instance.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"multi-instance","description":"Use multiple docs plugin instances on a single Docusaurus site.","slug":"/docs-multi-instance"},"sidebar":"docs","previous":{"title":"Versioning","permalink":"/docs/versioning"},"next":{"title":"Blog","permalink":"/docs/blog"}},{"id":"guides/docs/sidebar/autogenerated","title":"Autogenerated","description":"Docusaurus can create a sidebar automatically from your filesystem structure: each folder creates a sidebar category, and each file creates a doc link.","source":"@site/docs/guides/docs/sidebar/autogenerated.mdx","sourceDirName":"guides/docs/sidebar","slug":"/sidebar/autogenerated","permalink":"/docs/sidebar/autogenerated","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/sidebar/autogenerated.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/sidebar/autogenerated"},"sidebar":"docs","previous":{"title":"Sidebar items","permalink":"/docs/sidebar/items"},"next":{"title":"Using multiple sidebars","permalink":"/docs/sidebar/multiple-sidebars"}},{"id":"guides/docs/sidebar/index","title":"Sidebar","description":"Creating a sidebar is useful to:","source":"@site/docs/guides/docs/sidebar/index.mdx","sourceDirName":"guides/docs/sidebar","slug":"/sidebar","permalink":"/docs/sidebar","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/sidebar/index.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/sidebar"},"sidebar":"docs","previous":{"title":"Create a doc","permalink":"/docs/create-doc"},"next":{"title":"Sidebar items","permalink":"/docs/sidebar/items"}},{"id":"guides/docs/sidebar/items","title":"Sidebar items","description":"We have introduced three types of item types in the example in the previous section autogenerated, which we will explain in detail later.","source":"@site/docs/guides/docs/sidebar/items.mdx","sourceDirName":"guides/docs/sidebar","slug":"/sidebar/items","permalink":"/docs/sidebar/items","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/sidebar/items.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_max_heading_level":4,"slug":"/sidebar/items"},"sidebar":"docs","previous":{"title":"Sidebar","permalink":"/docs/sidebar"},"next":{"title":"Autogenerated","permalink":"/docs/sidebar/autogenerated"}},{"id":"guides/docs/sidebar/multiple-sidebars","title":"Using multiple sidebars","description":"You can create a sidebar for each set of Markdown files that you want to group together.","source":"@site/docs/guides/docs/sidebar/multiple-sidebars.mdx","sourceDirName":"guides/docs/sidebar","slug":"/sidebar/multiple-sidebars","permalink":"/docs/sidebar/multiple-sidebars","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/sidebar/multiple-sidebars.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/sidebar/multiple-sidebars"},"sidebar":"docs","previous":{"title":"Autogenerated","permalink":"/docs/sidebar/autogenerated"},"next":{"title":"Versioning","permalink":"/docs/versioning"}},{"id":"guides/docs/versioning","title":"Versioning","description":"You can use the versioning CLI to create a new documentation version based on the latest content in the docs directory. That specific set of documentation will then be preserved and accessible even as the documentation in the docs directory continues to evolve.","source":"@site/docs/guides/docs/versioning.mdx","sourceDirName":"guides/docs","slug":"/versioning","permalink":"/docs/versioning","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/versioning.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/versioning"},"sidebar":"docs","previous":{"title":"Using multiple sidebars","permalink":"/docs/sidebar/multiple-sidebars"},"next":{"title":"Docs Multi-instance","permalink":"/docs/docs-multi-instance"}},{"id":"guides/markdown-features/admonitions","title":"Admonitions","description":"Handling admonitions/callouts in Docusaurus Markdown","source":"@site/docs/guides/markdown-features/markdown-features-admonitions.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/admonitions","permalink":"/docs/markdown-features/admonitions","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-admonitions.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"admonitions","description":"Handling admonitions/callouts in Docusaurus Markdown","slug":"/markdown-features/admonitions"},"sidebar":"docs","previous":{"title":"Code blocks","permalink":"/docs/markdown-features/code-blocks"},"next":{"title":"Headings and Table of contents","permalink":"/docs/markdown-features/toc"}},{"id":"guides/markdown-features/assets","title":"Assets","description":"Handling assets in Docusaurus Markdown","source":"@site/docs/guides/markdown-features/markdown-features-assets.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/assets","permalink":"/docs/markdown-features/assets","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-assets.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"assets","description":"Handling assets in Docusaurus Markdown","slug":"/markdown-features/assets"},"sidebar":"docs","previous":{"title":"Headings and Table of contents","permalink":"/docs/markdown-features/toc"},"next":{"title":"Markdown links","permalink":"/docs/markdown-features/links"}},{"id":"guides/markdown-features/code-blocks","title":"Code blocks","description":"Handling code blocks in Docusaurus Markdown","source":"@site/docs/guides/markdown-features/markdown-features-code-blocks.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/code-blocks","permalink":"/docs/markdown-features/code-blocks","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-code-blocks.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"code-blocks","description":"Handling code blocks in Docusaurus Markdown","slug":"/markdown-features/code-blocks"},"sidebar":"docs","previous":{"title":"Tabs","permalink":"/docs/markdown-features/tabs"},"next":{"title":"Admonitions","permalink":"/docs/markdown-features/admonitions"}},{"id":"guides/markdown-features/diagrams","title":"Diagrams","description":"Writing diagrams with Mermaid","source":"@site/docs/guides/markdown-features/markdown-features-diagrams.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/diagrams","permalink":"/docs/markdown-features/diagrams","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-diagrams.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"diagrams","title":"Diagrams","description":"Writing diagrams with Mermaid","slug":"/markdown-features/diagrams"},"sidebar":"docs","previous":{"title":"Math Equations","permalink":"/docs/markdown-features/math-equations"},"next":{"title":"Head metadata","permalink":"/docs/markdown-features/head-metadata"}},{"id":"guides/markdown-features/head-metadata","title":"Head metadata","description":"Declaring page-specific head metadata through MDX","source":"@site/docs/guides/markdown-features/markdown-features-head-metadata.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/head-metadata","permalink":"/docs/markdown-features/head-metadata","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-head-metadata.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"head-metadata","description":"Declaring page-specific head metadata through MDX","slug":"/markdown-features/head-metadata"},"sidebar":"docs","previous":{"title":"Diagrams","permalink":"/docs/markdown-features/diagrams"},"next":{"title":"Styling and Layout","permalink":"/docs/styling-layout"}},{"id":"guides/markdown-features/introduction","title":"Markdown Features","description":"Docusaurus uses MDX. Find out more about Docusaurus-specific features when writing Markdown.","source":"@site/docs/guides/markdown-features/markdown-features-intro.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features","permalink":"/docs/markdown-features","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-intro.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"introduction","description":"Docusaurus uses MDX. Find out more about Docusaurus-specific features when writing Markdown.","slug":"/markdown-features"},"sidebar":"docs","previous":{"title":"Blog","permalink":"/docs/blog"},"next":{"title":"MDX and React","permalink":"/docs/markdown-features/react"}},{"id":"guides/markdown-features/links","title":"Markdown links","description":"Links to other pages in Markdown","source":"@site/docs/guides/markdown-features/markdown-features-links.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/links","permalink":"/docs/markdown-features/links","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-links.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"links","description":"Links to other pages in Markdown","slug":"/markdown-features/links"},"sidebar":"docs","previous":{"title":"Assets","permalink":"/docs/markdown-features/assets"},"next":{"title":"MDX Plugins","permalink":"/docs/markdown-features/plugins"}},{"id":"guides/markdown-features/math-equations","title":"Math Equations","description":"Writing LaTeX Math Equations","source":"@site/docs/guides/markdown-features/markdown-features-math-equations.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/math-equations","permalink":"/docs/markdown-features/math-equations","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-math-equations.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"math-equations","description":"Writing LaTeX Math Equations","slug":"/markdown-features/math-equations"},"sidebar":"docs","previous":{"title":"MDX Plugins","permalink":"/docs/markdown-features/plugins"},"next":{"title":"Diagrams","permalink":"/docs/markdown-features/diagrams"}},{"id":"guides/markdown-features/plugins","title":"MDX Plugins","description":"Using MDX plugins to expand Docusaurus Markdown functionalities","source":"@site/docs/guides/markdown-features/markdown-features-plugins.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/plugins","permalink":"/docs/markdown-features/plugins","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-plugins.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"plugins","description":"Using MDX plugins to expand Docusaurus Markdown functionalities","slug":"/markdown-features/plugins"},"sidebar":"docs","previous":{"title":"Markdown links","permalink":"/docs/markdown-features/links"},"next":{"title":"Math Equations","permalink":"/docs/markdown-features/math-equations"}},{"id":"guides/markdown-features/react","title":"MDX and React","description":"Using the power of React in Docusaurus Markdown documents, thanks to MDX","source":"@site/docs/guides/markdown-features/markdown-features-react.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/react","permalink":"/docs/markdown-features/react","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-react.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"react","description":"Using the power of React in Docusaurus Markdown documents, thanks to MDX","slug":"/markdown-features/react"},"sidebar":"docs","previous":{"title":"Markdown Features","permalink":"/docs/markdown-features"},"next":{"title":"Tabs","permalink":"/docs/markdown-features/tabs"}},{"id":"guides/markdown-features/tabs","title":"Tabs","description":"Using tabs inside Docusaurus Markdown","source":"@site/docs/guides/markdown-features/markdown-features-tabs.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/tabs","permalink":"/docs/markdown-features/tabs","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-tabs.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"tabs","description":"Using tabs inside Docusaurus Markdown","slug":"/markdown-features/tabs"},"sidebar":"docs","previous":{"title":"MDX and React","permalink":"/docs/markdown-features/react"},"next":{"title":"Code blocks","permalink":"/docs/markdown-features/code-blocks"}},{"id":"guides/markdown-features/toc","title":"Headings and Table of contents","description":"Customizing headings and table-of-contents in Markdown","source":"@site/docs/guides/markdown-features/markdown-features-toc.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/toc","permalink":"/docs/markdown-features/toc","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-toc.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"toc","description":"Customizing headings and table-of-contents in Markdown","slug":"/markdown-features/toc"},"sidebar":"docs","previous":{"title":"Admonitions","permalink":"/docs/markdown-features/admonitions"},"next":{"title":"Assets","permalink":"/docs/markdown-features/assets"}},{"id":"guides/whats-next","title":"What\'s next?","description":"Congratulations! You have understood most core features of Docusaurus now. You have:","source":"@site/docs/guides/whats-next.mdx","sourceDirName":"guides","slug":"/guides/whats-next","permalink":"/docs/guides/whats-next","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/whats-next.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"docs","previous":{"title":"Using Crowdin","permalink":"/docs/i18n/crowdin"},"next":{"title":"Advanced Tutorials","permalink":"/docs/advanced/"}},{"id":"i18n/crowdin","title":"i18n - Using Crowdin","description":"The i18n system of Docusaurus is decoupled from any translation software.","source":"@site/docs/i18n/i18n-crowdin.mdx","sourceDirName":"i18n","slug":"/i18n/crowdin","permalink":"/docs/i18n/crowdin","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/i18n/i18n-crowdin.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"crowdin","slug":"/i18n/crowdin","toc_max_heading_level":4},"sidebar":"docs","previous":{"title":"Using Git","permalink":"/docs/i18n/git"},"next":{"title":"What\'s next?","permalink":"/docs/guides/whats-next"}},{"id":"i18n/git","title":"i18n - Using git","description":"A possible translation strategy is to version control the translation files with Git (or any other VCS).","source":"@site/docs/i18n/i18n-git.mdx","sourceDirName":"i18n","slug":"/i18n/git","permalink":"/docs/i18n/git","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/i18n/i18n-git.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"git","slug":"/i18n/git"},"sidebar":"docs","previous":{"title":"Tutorial","permalink":"/docs/i18n/tutorial"},"next":{"title":"Using Crowdin","permalink":"/docs/i18n/crowdin"}},{"id":"i18n/introduction","title":"i18n - Introduction","description":"It is easy to translate a Docusaurus website with its internationalization (i18n) support.","source":"@site/docs/i18n/i18n-introduction.mdx","sourceDirName":"i18n","slug":"/i18n/introduction","permalink":"/docs/i18n/introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/i18n/i18n-introduction.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"introduction","slug":"/i18n/introduction"},"sidebar":"docs","previous":{"title":"Deployment","permalink":"/docs/deployment"},"next":{"title":"Tutorial","permalink":"/docs/i18n/tutorial"}},{"id":"i18n/tutorial","title":"i18n - Tutorial","description":"This tutorial will walk you through the basics of the Docusaurus i18n system.","source":"@site/docs/i18n/i18n-tutorial.mdx","sourceDirName":"i18n","slug":"/i18n/tutorial","permalink":"/docs/i18n/tutorial","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/i18n/i18n-tutorial.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"tutorial","description":"This tutorial will walk you through the basics of the Docusaurus i18n system.","slug":"/i18n/tutorial"},"sidebar":"docs","previous":{"title":"i18n - Introduction","permalink":"/docs/i18n/introduction"},"next":{"title":"Using Git","permalink":"/docs/i18n/git"}},{"id":"installation","title":"Installation","description":"How to install Docusaurus locally, and start a Docusaurus site in no time.","source":"@site/docs/installation.mdx","sourceDirName":".","slug":"/installation","permalink":"/docs/installation","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/installation.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"How to install Docusaurus locally, and start a Docusaurus site in no time."},"sidebar":"docs","previous":{"title":"Getting Started","permalink":"/docs/category/getting-started"},"next":{"title":"Configuration","permalink":"/docs/configuration"}},{"id":"introduction","title":"Introduction","description":"Docusaurus was designed from the ground up to be easily installed and used to get your website up and running quickly.","source":"@site/docs/introduction.mdx","sourceDirName":".","slug":"/","permalink":"/docs/","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/introduction.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"Docusaurus was designed from the ground up to be easily installed and used to get your website up and running quickly.","slug":"/"},"sidebar":"docs","next":{"title":"Getting Started","permalink":"/docs/category/getting-started"}},{"id":"migration/index","title":"Upgrading Docusaurus","description":"Docusaurus versioning is based on the major.minor.patch scheme and respects Semantic Versioning.","source":"@site/docs/migration/index.mdx","sourceDirName":"migration","slug":"/migration","permalink":"/docs/migration","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/index.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/migration"},"sidebar":"docs","previous":{"title":"Client architecture","permalink":"/docs/advanced/client"},"next":{"title":"To Docusaurus v3","permalink":"/docs/migration/v3"}},{"id":"migration/v2/migration-automated","title":"Automated migration","description":"The migration CLI automatically migrates your v1 website to a v2 website.","source":"@site/docs/migration/v2/migration-automated.mdx","sourceDirName":"migration/v2","slug":"/migration/v2/automated","permalink":"/docs/migration/v2/automated","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/v2/migration-automated.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/migration/v2/automated"},"sidebar":"docs","previous":{"title":"Overview","permalink":"/docs/migration/v2"},"next":{"title":"Manual migration","permalink":"/docs/migration/v2/manual"}},{"id":"migration/v2/migration-manual","title":"Manual migration","description":"This manual migration process should be run after the automated migration process, to complete the missing parts, or debug issues in the migration CLI output.","source":"@site/docs/migration/v2/migration-manual.mdx","sourceDirName":"migration/v2","slug":"/migration/v2/manual","permalink":"/docs/migration/v2/manual","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/v2/migration-manual.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/migration/v2/manual","toc_max_heading_level":4},"sidebar":"docs","previous":{"title":"Automated migration","permalink":"/docs/migration/v2/automated"},"next":{"title":"Versioned sites","permalink":"/docs/migration/v2/versioned-sites"}},{"id":"migration/v2/migration-overview","title":"Overview","description":"This doc guides you through migrating an existing Docusaurus 1 site to Docusaurus 2.","source":"@site/docs/migration/v2/migration-overview.mdx","sourceDirName":"migration/v2","slug":"/migration/v2","permalink":"/docs/migration/v2","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/v2/migration-overview.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/migration/v2"},"sidebar":"docs","previous":{"title":"To Docusaurus v3","permalink":"/docs/migration/v3"},"next":{"title":"Automated migration","permalink":"/docs/migration/v2/automated"}},{"id":"migration/v2/migration-translated-sites","title":"Translated sites","description":"This page explains how migrate a translated Docusaurus v1 site to Docusaurus v2.","source":"@site/docs/migration/v2/migration-translated-sites.mdx","sourceDirName":"migration/v2","slug":"/migration/v2/translated-sites","permalink":"/docs/migration/v2/translated-sites","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/v2/migration-translated-sites.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/migration/v2/translated-sites"},"sidebar":"docs","previous":{"title":"Versioned sites","permalink":"/docs/migration/v2/versioned-sites"}},{"id":"migration/v2/migration-versioned-sites","title":"Versioned sites","description":"Read up https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2#versioning first for problems in v1\'s approach.","source":"@site/docs/migration/v2/migration-versioned-sites.mdx","sourceDirName":"migration/v2","slug":"/migration/v2/versioned-sites","permalink":"/docs/migration/v2/versioned-sites","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/v2/migration-versioned-sites.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/migration/v2/versioned-sites"},"sidebar":"docs","previous":{"title":"Manual migration","permalink":"/docs/migration/v2/manual"},"next":{"title":"Translated sites","permalink":"/docs/migration/v2/translated-sites"}},{"id":"migration/v3","title":"Upgrading to Docusaurus v3","description":"This documentation will help you upgrade your site from Docusaurus v2 to Docusaurus v3.","source":"@site/docs/migration/v3.mdx","sourceDirName":"migration","slug":"/migration/v3","permalink":"/docs/migration/v3","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/v3.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/migration/v3","sidebar_label":"To Docusaurus v3"},"sidebar":"docs","previous":{"title":"Upgrading Docusaurus","permalink":"/docs/migration"},"next":{"title":"Overview","permalink":"/docs/migration/v2"}},{"id":"playground","title":"Playground","description":"Playgrounds allow you to run Docusaurus in your browser, without installing anything!","source":"@site/docs/playground.mdx","sourceDirName":".","slug":"/playground","permalink":"/docs/playground","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/playground.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"docs","previous":{"title":"Configuration","permalink":"/docs/configuration"},"next":{"title":"TypeScript Support","permalink":"/docs/typescript-support"}},{"id":"search","title":"Search","description":"There are a few options you can use to add search to your website:","source":"@site/docs/search.mdx","sourceDirName":".","slug":"/search","permalink":"/docs/search","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/search.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"keywords":["algolia","search"]},"sidebar":"docs","previous":{"title":"Static Assets","permalink":"/docs/static-assets"},"next":{"title":"Browser support","permalink":"/docs/browser-support"}},{"id":"seo","title":"Search engine optimization (SEO)","description":"How to make your Docusaurus site maximally search-engine-friendly.","source":"@site/docs/seo.mdx","sourceDirName":".","slug":"/seo","permalink":"/docs/seo","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/seo.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"How to make your Docusaurus site maximally search-engine-friendly.","sidebar_label":"SEO","keywords":["seo","positioning"]},"sidebar":"docs","previous":{"title":"Browser support","permalink":"/docs/browser-support"},"next":{"title":"Using Plugins","permalink":"/docs/using-plugins"}},{"id":"static-assets","title":"Static Assets","description":"Static assets are the non-code files that are directly copied to the build output. Learn about how they are handled and what the best practices of using static assets are.","source":"@site/docs/static-assets.mdx","sourceDirName":".","slug":"/static-assets","permalink":"/docs/static-assets","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/static-assets.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"Static assets are the non-code files that are directly copied to the build output. Learn about how they are handled and what the best practices of using static assets are."},"sidebar":"docs","previous":{"title":"Swizzling","permalink":"/docs/swizzling"},"next":{"title":"Search","permalink":"/docs/search"}},{"id":"styling-layout","title":"Styling and Layout","description":"A Docusaurus site is a pre-rendered single-page React application. You can style it the way you style React apps.","source":"@site/docs/styling-layout.mdx","sourceDirName":".","slug":"/styling-layout","permalink":"/docs/styling-layout","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/styling-layout.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"A Docusaurus site is a pre-rendered single-page React application. You can style it the way you style React apps."},"sidebar":"docs","previous":{"title":"Head metadata","permalink":"/docs/markdown-features/head-metadata"},"next":{"title":"Swizzling","permalink":"/docs/swizzling"}},{"id":"swizzling","title":"Swizzling","description":"Customize your site\'s appearance through creating your own theme components","source":"@site/docs/swizzling.mdx","sourceDirName":".","slug":"/swizzling","permalink":"/docs/swizzling","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/swizzling.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"Customize your site\'s appearance through creating your own theme components"},"sidebar":"docs","previous":{"title":"Styling and Layout","permalink":"/docs/styling-layout"},"next":{"title":"Static Assets","permalink":"/docs/static-assets"}},{"id":"typescript-support","title":"TypeScript Support","description":"Docusaurus is written in TypeScript and provides first-class TypeScript support.","source":"@site/docs/typescript-support.mdx","sourceDirName":".","slug":"/typescript-support","permalink":"/docs/typescript-support","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/typescript-support.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"Docusaurus is written in TypeScript and provides first-class TypeScript support."},"sidebar":"docs","previous":{"title":"Playground","permalink":"/docs/playground"},"next":{"title":"Guides","permalink":"/docs/category/guides"}},{"id":"using-plugins","title":"Using Plugins","description":"The Docusaurus core doesn\'t provide any feature of its own. All features are delegated to individual plugins: the docs feature provided by the docs plugin; the blog feature provided by the blog plugin; or individual pages provided by the pages plugin. If there are no plugins installed, the site won\'t contain any routes.","source":"@site/docs/using-plugins.mdx","sourceDirName":".","slug":"/using-plugins","permalink":"/docs/using-plugins","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/using-plugins.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"docs","previous":{"title":"SEO","permalink":"/docs/seo"},"next":{"title":"Deployment","permalink":"/docs/deployment"}}],"drafts":[],"sidebars":{"docs":[{"type":"doc","id":"introduction"},{"type":"category","label":"Getting Started","link":{"type":"generated-index","slug":"/category/getting-started","permalink":"/docs/category/getting-started"},"collapsed":false,"items":[{"type":"doc","id":"installation"},{"type":"doc","id":"configuration"},{"type":"doc","id":"playground"},{"type":"doc","id":"typescript-support"}],"collapsible":true},{"type":"category","label":"Guides","link":{"type":"generated-index","title":"Docusaurus Guides","description":"Let\'s learn about the most important Docusaurus concepts!","keywords":["guides"],"image":"/img/docusaurus.png","slug":"/category/guides","permalink":"/docs/category/guides"},"items":[{"type":"doc","id":"guides/creating-pages"},{"type":"category","label":"Docs","link":{"type":"doc","id":"guides/docs/introduction"},"items":[{"type":"doc","id":"guides/docs/create-doc"},{"type":"category","label":"Sidebar","link":{"type":"doc","id":"guides/docs/sidebar/index"},"items":[{"type":"doc","id":"guides/docs/sidebar/items"},{"type":"doc","id":"guides/docs/sidebar/autogenerated"},{"type":"doc","id":"guides/docs/sidebar/multiple-sidebars"}],"collapsed":true,"collapsible":true},{"type":"doc","id":"guides/docs/versioning"},{"type":"doc","id":"guides/docs/multi-instance"}],"collapsed":true,"collapsible":true},{"type":"doc","id":"blog"},{"type":"category","label":"Markdown Features","link":{"type":"doc","id":"guides/markdown-features/introduction"},"items":[{"type":"doc","id":"guides/markdown-features/react"},{"type":"doc","id":"guides/markdown-features/tabs"},{"type":"doc","id":"guides/markdown-features/code-blocks"},{"type":"doc","id":"guides/markdown-features/admonitions"},{"type":"doc","id":"guides/markdown-features/toc"},{"type":"doc","id":"guides/markdown-features/assets"},{"type":"doc","id":"guides/markdown-features/links"},{"type":"doc","id":"guides/markdown-features/plugins"},{"type":"doc","id":"guides/markdown-features/math-equations"},{"type":"doc","id":"guides/markdown-features/diagrams"},{"type":"doc","id":"guides/markdown-features/head-metadata"}],"collapsed":true,"collapsible":true},{"type":"doc","id":"styling-layout"},{"type":"doc","id":"swizzling"},{"type":"doc","id":"static-assets"},{"type":"doc","id":"search"},{"type":"doc","id":"browser-support"},{"type":"doc","id":"seo"},{"type":"doc","id":"using-plugins"},{"type":"doc","id":"deployment"},{"type":"category","label":"Internationalization","link":{"type":"doc","id":"i18n/introduction"},"items":[{"type":"doc","id":"i18n/tutorial","label":"Tutorial","translatable":true},{"type":"doc","id":"i18n/git","label":"Using Git","translatable":true},{"type":"doc","id":"i18n/crowdin","label":"Using Crowdin","translatable":true}],"collapsed":true,"collapsible":true},{"type":"doc","id":"guides/whats-next"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Advanced Guides","link":{"type":"doc","id":"advanced/index"},"items":[{"type":"doc","id":"advanced/architecture"},{"type":"doc","id":"advanced/plugins"},{"type":"doc","id":"advanced/routing"},{"type":"doc","id":"advanced/ssg"},{"type":"doc","id":"advanced/client"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Upgrading","link":{"type":"doc","id":"migration/index"},"items":[{"type":"doc","id":"migration/v3"},{"type":"category","label":"To Docusaurus v2","items":[{"type":"doc","id":"migration/v2/migration-overview"},{"type":"doc","id":"migration/v2/migration-automated"},{"type":"doc","id":"migration/v2/migration-manual"},{"type":"doc","id":"migration/v2/migration-versioned-sites"},{"type":"doc","id":"migration/v2/migration-translated-sites"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"api":[{"type":"doc","id":"cli"},{"type":"doc","id":"docusaurus-core"},{"type":"doc","id":"api/docusaurus.config.js"},{"type":"category","label":"Plugin method references","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"api/plugin-methods/lifecycle-apis"},{"type":"doc","id":"api/plugin-methods/extend-infrastructure"},{"type":"doc","id":"api/plugin-methods/i18n-lifecycles"},{"type":"doc","id":"api/plugin-methods/static-methods"}],"link":{"type":"doc","id":"api/plugin-methods/README"}},{"type":"category","label":"Plugins","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"api/plugins/plugin-content-docs"},{"type":"doc","id":"api/plugins/plugin-content-blog"},{"type":"doc","id":"api/plugins/plugin-content-pages"},{"type":"doc","id":"api/plugins/plugin-client-redirects"},{"type":"doc","id":"api/plugins/plugin-debug"},{"type":"doc","id":"api/plugins/plugin-google-analytics"},{"type":"doc","id":"api/plugins/plugin-google-gtag"},{"type":"doc","id":"api/plugins/plugin-google-tag-manager"},{"type":"doc","id":"api/plugins/plugin-ideal-image"},{"type":"doc","id":"api/plugins/plugin-pwa"},{"type":"doc","id":"api/plugins/plugin-sitemap"},{"type":"doc","id":"api/plugins/plugin-vercel-analytics"}],"link":{"type":"doc","id":"api/plugins/plugins-overview"}},{"type":"category","label":"Themes","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"api/themes/theme-configuration","label":"Configuration"},{"type":"doc","id":"api/themes/theme-classic"},{"type":"doc","id":"api/themes/theme-live-codeblock"},{"type":"doc","id":"api/themes/theme-search-algolia"},{"type":"doc","id":"api/themes/theme-mermaid"}],"link":{"type":"doc","id":"api/themes/themes-overview"}},{"type":"category","label":"Miscellaneous","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"api/misc/create-docusaurus"},{"type":"category","label":"\u{1F4E6} eslint-plugin","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"api/misc/eslint-plugin/no-html-links"},{"type":"doc","id":"api/misc/eslint-plugin/no-untranslated-text"},{"type":"doc","id":"api/misc/eslint-plugin/prefer-docusaurus-heading"},{"type":"doc","id":"api/misc/eslint-plugin/string-literal-i18n-messages"}],"link":{"type":"doc","id":"api/misc/eslint-plugin/README"}},{"type":"doc","label":"\u{1F4E6} logger","id":"api/misc/logger/logger"}]}]}}]},"community":{"loadedVersions":[{"versionName":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","path":"/community","tagsPath":"/community/tags","isLast":true,"routePriority":-1,"sidebarFilePath":"/home/runner/work/docusaurus/docusaurus/website/sidebarsCommunity.js","contentPath":"/home/runner/work/docusaurus/docusaurus/website/community","contentPathLocalized":"/home/runner/work/docusaurus/docusaurus/website/i18n/en/docusaurus-plugin-content-docs-community/current","docs":[{"id":"canary","title":"Canary releases","description":"Docusaurus has a canary releases system.","source":"@site/community/4-canary.mdx","sourceDirName":".","slug":"/canary","permalink":"/community/canary","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/4-canary.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":4,"frontMatter":{},"sidebar":"community","previous":{"title":"Contributing","permalink":"/community/contributing"},"next":{"title":"Release process","permalink":"/community/release-process"}},{"id":"contributing","title":"Contributing","description":"","source":"@site/community/3-contributing.mdx","sourceDirName":".","slug":"/contributing","permalink":"/community/contributing","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/3-contributing.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":3,"frontMatter":{"title":"Contributing","hide_title":true,"sidebar_label":"Contributing"},"sidebar":"community","previous":{"title":"Awesome Resources","permalink":"/community/resources"},"next":{"title":"Canary releases","permalink":"/community/canary"}},{"id":"release-process","title":"Release process","description":"Let\'s see how Docusaurus handles versioning, releases and breaking changes.","source":"@site/community/5-release-process.mdx","sourceDirName":".","slug":"/release-process","permalink":"/community/release-process","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/5-release-process.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":5,"frontMatter":{},"sidebar":"community","previous":{"title":"Canary releases","permalink":"/community/canary"}},{"id":"resources","title":"Awesome Resources","description":"A curated list of interesting Docusaurus community projects.","source":"@site/community/2-resources.mdx","sourceDirName":".","slug":"/resources","permalink":"/community/resources","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/2-resources.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":2,"frontMatter":{},"sidebar":"community","previous":{"title":"Team","permalink":"/community/team"},"next":{"title":"Contributing","permalink":"/community/contributing"}},{"id":"support","title":"Support","description":"Docusaurus has a community of thousands of developers.","source":"@site/community/0-support.mdx","sourceDirName":".","slug":"/support","permalink":"/community/support","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/0-support.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":0,"frontMatter":{},"sidebar":"community","next":{"title":"Team","permalink":"/community/team"}},{"id":"team","title":"Team","description":"Active Team","source":"@site/community/1-team.mdx","sourceDirName":".","slug":"/team","permalink":"/community/team","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/1-team.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":1,"frontMatter":{},"sidebar":"community","previous":{"title":"Support","permalink":"/community/support"},"next":{"title":"Awesome Resources","permalink":"/community/resources"}}],"drafts":[],"sidebars":{"community":[{"type":"doc","id":"support"},{"type":"doc","id":"team"},{"type":"doc","id":"resources"},{"type":"doc","id":"contributing","label":"Contributing"},{"type":"doc","id":"canary"},{"type":"doc","id":"release-process"},{"type":"link","href":"/changelog","label":"Changelog"},{"type":"link","href":"/showcase","label":"Showcase"},{"type":"link","href":"/feature-requests","label":"Feature Requests"},{"type":"link","label":"Chat with us on Discord","href":"https://discord.gg/docusaurus"}]}}]},"docs-tests":{"loadedVersions":[{"versionName":"current","label":"Next","banner":null,"badge":false,"noIndex":true,"className":"docs-version-current","path":"/tests/docs","tagsPath":"/tests/docs/tags","isLast":true,"routePriority":-1,"sidebarFilePath":"/home/runner/work/docusaurus/docusaurus/website/_dogfooding/docs-tests-sidebars.js","contentPath":"/home/runner/work/docusaurus/docusaurus/website/_dogfooding/_docs tests","contentPathLocalized":"/home/runner/work/docusaurus/docusaurus/website/i18n/en/docusaurus-plugin-content-docs-docs-tests/current","docs":[{"id":"beginner\'s guide","title":"Beginner\'s guide","description":"#9160","source":"@site/_dogfooding/_docs tests/beginner\'s guide.mdx","sourceDirName":".","slug":"/beginner\'s guide","permalink":"/tests/docs/beginner\'s guide","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{}},{"id":"doc-with-another-sidebar","title":"Doc with another sidebar","description":"My link appears in a sidebar, but I want to display another sidebar...","source":"@site/_dogfooding/_docs tests/doc-with-another-sidebar.mdx","sourceDirName":".","slug":"/doc-with-another-sidebar","permalink":"/tests/docs/doc-with-another-sidebar","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"displayed_sidebar":"anotherSidebar"},"sidebar":"anotherSidebar"},{"id":"doc-with-last-update","title":"Doc With Last Update Front Matter","description":"","source":"@site/_dogfooding/_docs tests/doc-with-last-update.mdx","sourceDirName":".","slug":"/doc-with-last-update","permalink":"/tests/docs/doc-with-last-update","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"custom author","lastUpdatedAt":946684800000,"frontMatter":{"last_update":{"author":"custom author","date":"1/1/2000"}},"sidebar":"sidebar","previous":{"title":"Doc with another sidebar","permalink":"/tests/docs/doc-with-another-sidebar"},"next":{"title":"Tests","permalink":"/tests/docs/category/tests"}},{"id":"doc-without-sidebar","title":"Doc without sidebar","description":"My link appears in a sidebar, but I don\'t want to display that...","source":"@site/_dogfooding/_docs tests/doc-without-sidebar.mdx","sourceDirName":".","slug":"/doc-without-sidebar","permalink":"/tests/docs/doc-without-sidebar","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"displayed_sidebar":null}},{"id":"dummy","title":"Just a dummy page","description":"","source":"@site/_dogfooding/_docs tests/dummy.mdx","sourceDirName":".","slug":"/dummy.html","permalink":"/tests/docs/dummy.html","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"dummy.html"},"sidebar":"anotherSidebar"},{"id":"folder with space/doc 1","title":"Doc 1","description":"Inside folder with space","source":"@site/_dogfooding/_docs tests/folder with space/doc 1.mdx","sourceDirName":"folder with space","slug":"/folder with space/doc 1","permalink":"/tests/docs/folder with space/doc 1","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{}},{"id":"folder with space/doc 2","title":"Doc 2","description":"Inside folder with space","source":"@site/_dogfooding/_docs tests/folder with space/doc 2.mdx","sourceDirName":"folder with space","slug":"/folder with space/doc 2","permalink":"/tests/docs/folder with space/doc 2","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{}},{"id":"index","title":"Docs tests","description":"This Docusaurus docs plugin instance is meant to test fancy edge-cases that regular unit tests don\'t really cover.","source":"@site/_dogfooding/_docs tests/index.mdx","sourceDirName":".","slug":"/","permalink":"/tests/docs/","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"A","permalink":"/tests/docs/tags/a","description":"Description for tag a"},{"inline":false,"label":"Label for tag b","permalink":"/tests/docs/tags/b"},{"inline":false,"label":"C","permalink":"/tests/docs/tags/permalink-for-tag-c"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/","tags":["a","b","c"],"unlisted":true,"id":"index","sidebar_label":"Docs tests"},"sidebar":"sidebar"},{"id":"more-test","title":"Another test page","description":"Test link","source":"@site/_dogfooding/_docs tests/more-test.mdx","sourceDirName":".","slug":"/more-test","permalink":"/tests/docs/more-test","draft":false,"unlisted":false,"tags":[{"inline":false,"label":"A","permalink":"/tests/docs/tags/a","description":"Description for tag a"},{"inline":false,"label":"Label for tag e","permalink":"/tests/docs/tags/permalink-for-tag-e","description":"Description for tag e"},{"inline":false,"label":"Some-tag","permalink":"/tests/docs/tags/some-tag"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"tags":["a","e","some-tag"]},"sidebar":"sidebar","previous":{"title":"Another category with index","permalink":"/tests/docs/category/another-category-with-index"},"next":{"title":"toc-2-2","permalink":"/tests/docs/toc/toc-2-2"}},{"id":"standalone","title":"Standalone doc","description":"This doc is not in any sidebar, on purpose, to measure the build size impact of the huge sidebar","source":"@site/_dogfooding/_docs tests/standalone.mdx","sourceDirName":".","slug":"/standalone","permalink":"/tests/docs/standalone","draft":false,"unlisted":false,"tags":[{"inline":false,"label":"Label for tag b","permalink":"/tests/docs/tags/b"},{"inline":false,"label":"D","permalink":"/tests/docs/tags/d"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"tags":["b","d"]}},{"id":"tests/admonitions","title":"Admonitions tests","description":"Empty content","source":"@site/_dogfooding/_docs tests/tests/admonitions.mdx","sourceDirName":"tests","slug":"/tests/admonitions","permalink":"/tests/docs/tests/admonitions","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Case-Sensitive doc","permalink":"/tests/docs/tests/Case-Sentitive-Doc"},"next":{"title":"\xe6\xf8\xe5","permalink":"/tests/docs/tests/ascii/folder/\xe6\xf8\xe5"}},{"id":"tests/ascii/\xe6\xf8\xe5/index","title":"index","description":"Dogfood test for https://github.com/facebook/docusaurus/pull/8137","source":"@site/_dogfooding/_docs tests/tests/ascii/\xe6\xf8\xe5/index.mdx","sourceDirName":"tests/ascii/\xe6\xf8\xe5","slug":"/tests/ascii/\xe6\xf8\xe5/","permalink":"/tests/docs/tests/ascii/\xe6\xf8\xe5/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"\xe6\xf8\xe5","permalink":"/tests/docs/tests/ascii/folder/\xe6\xf8\xe5"},"next":{"title":"Category Links","permalink":"/tests/docs/category-links-generated-index-slug"}},{"id":"tests/ascii/folder/\xe6\xf8\xe5","title":"\xe6\xf8\xe5","description":"Dogfood test for https://github.com/facebook/docusaurus/pull/8137","source":"@site/_dogfooding/_docs tests/tests/ascii/folder/\xe6\xf8\xe5.mdx","sourceDirName":"tests/ascii/folder","slug":"/tests/ascii/folder/\xe6\xf8\xe5","permalink":"/tests/docs/tests/ascii/folder/\xe6\xf8\xe5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Admonitions tests","permalink":"/tests/docs/tests/admonitions"},"next":{"title":"index","permalink":"/tests/docs/tests/ascii/\xe6\xf8\xe5/"}},{"id":"tests/Case-Sentitive-Doc","title":"Case-Sensitive doc","description":"This doc has uppercase and lowercase chars in its filename, and thus in its path / slug.","source":"@site/_dogfooding/_docs tests/tests/Case-Sentitive-Doc.mdx","sourceDirName":"tests","slug":"/tests/Case-Sentitive-Doc","permalink":"/tests/docs/tests/Case-Sentitive-Doc","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Tests","permalink":"/tests/docs/category/tests"},"next":{"title":"Admonitions tests","permalink":"/tests/docs/tests/admonitions"}},{"id":"tests/category-links/custom-index-convention/intro","title":"Introduction","description":"This file is called intro.md. Typically, it won\'t be selected by the convention; however, it is in this case, because we have used a custom one.","source":"@site/_dogfooding/_docs tests/tests/category-links/custom-index-convention/intro.mdx","sourceDirName":"tests/category-links/custom-index-convention","slug":"/tests/category-links/custom-index-convention/intro","permalink":"/tests/docs/tests/category-links/custom-index-convention/intro","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Category Links","permalink":"/tests/docs/category-links-generated-index-slug"},"next":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/custom-index-convention/sample-doc"}},{"id":"tests/category-links/custom-index-convention/sample-doc","title":"Sample doc","description":"Lorem Ipsum","source":"@site/_dogfooding/_docs tests/tests/category-links/custom-index-convention/sample-doc.mdx","sourceDirName":"tests/category-links/custom-index-convention","slug":"/tests/category-links/custom-index-convention/sample-doc","permalink":"/tests/docs/tests/category-links/custom-index-convention/sample-doc","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Introduction","permalink":"/tests/docs/tests/category-links/custom-index-convention/intro"},"next":{"title":"Index","permalink":"/tests/docs/tests/category-links/no-index-doc/"}},{"id":"tests/category-links/no-index-doc/index","title":"Index","description":"This file (index.md) is supposed to be a category index, but it isn\'t because we have set link: null in the category.json.","source":"@site/_dogfooding/_docs tests/tests/category-links/no-index-doc/index.mdx","sourceDirName":"tests/category-links/no-index-doc","slug":"/tests/category-links/no-index-doc/","permalink":"/tests/docs/tests/category-links/no-index-doc/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/custom-index-convention/sample-doc"},"next":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/no-index-doc/sample-doc"}},{"id":"tests/category-links/no-index-doc/sample-doc","title":"Sample doc","description":"Lorem Ipsum","source":"@site/_dogfooding/_docs tests/tests/category-links/no-index-doc/sample-doc.mdx","sourceDirName":"tests/category-links/no-index-doc","slug":"/tests/category-links/no-index-doc/sample-doc","permalink":"/tests/docs/tests/category-links/no-index-doc/sample-doc","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Index","permalink":"/tests/docs/tests/category-links/no-index-doc/"},"next":{"title":"No sub-docs","permalink":"/tests/docs/tests/category-links/no-subdoc/"}},{"id":"tests/category-links/no-subdoc/index","title":"No sub-docs","description":"The only doc of this category is the index page. It should show up as a regular doc link.","source":"@site/_dogfooding/_docs tests/tests/category-links/no-subdoc/index.mdx","sourceDirName":"tests/category-links/no-subdoc","slug":"/tests/category-links/no-subdoc/","permalink":"/tests/docs/tests/category-links/no-subdoc/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/no-index-doc/sample-doc"},"next":{"title":"Readme","permalink":"/tests/docs/tests/category-links/"}},{"id":"tests/category-links/readme","title":"Readme","description":"This readme.md should not be used as the category index due to the category.json link","source":"@site/_dogfooding/_docs tests/tests/category-links/readme.mdx","sourceDirName":"tests/category-links","slug":"/tests/category-links/","permalink":"/tests/docs/tests/category-links/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"No sub-docs","permalink":"/tests/docs/tests/category-links/no-subdoc/"},"next":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/regular-category/sample-doc"}},{"id":"tests/category-links/regular-category/sample-doc","title":"Sample doc","description":"Lorem Ipsum","source":"@site/_dogfooding/_docs tests/tests/category-links/regular-category/sample-doc.mdx","sourceDirName":"tests/category-links/regular-category","slug":"/tests/category-links/regular-category/sample-doc","permalink":"/tests/docs/tests/category-links/regular-category/sample-doc","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Readme","permalink":"/tests/docs/tests/category-links/"},"next":{"title":"Category with a doc of category\'s name","permalink":"/tests/docs/tests/category-links/with-category-name-doc/"}},{"id":"tests/category-links/with-category-name-doc/sample-doc","title":"Sample doc","description":"Lorem Ipsum","source":"@site/_dogfooding/_docs tests/tests/category-links/with-category-name-doc/sample-doc.mdx","sourceDirName":"tests/category-links/with-category-name-doc","slug":"/tests/category-links/with-category-name-doc/sample-doc","permalink":"/tests/docs/tests/category-links/with-category-name-doc/sample-doc","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Category with a doc of category\'s name","permalink":"/tests/docs/tests/category-links/with-category-name-doc/"},"next":{"title":"Category with index.md doc","permalink":"/tests/docs/tests/category-links/with-index-doc/"}},{"id":"tests/category-links/with-category-name-doc/with-category-name-doc","title":"Category with a doc of category\'s name","description":"You should be able to click on the category and browse this /.md doc","source":"@site/_dogfooding/_docs tests/tests/category-links/with-category-name-doc/with-category-name-doc.mdx","sourceDirName":"tests/category-links/with-category-name-doc","slug":"/tests/category-links/with-category-name-doc/","permalink":"/tests/docs/tests/category-links/with-category-name-doc/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/regular-category/sample-doc"},"next":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/with-category-name-doc/sample-doc"}},{"id":"tests/category-links/with-index-doc/index","title":"Category with index.md doc","description":"You should be able to click on the category and browse this index.md doc","source":"@site/_dogfooding/_docs tests/tests/category-links/with-index-doc/index.mdx","sourceDirName":"tests/category-links/with-index-doc","slug":"/tests/category-links/with-index-doc/","permalink":"/tests/docs/tests/category-links/with-index-doc/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/with-category-name-doc/sample-doc"},"next":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/with-index-doc/sample-doc"}},{"id":"tests/category-links/with-index-doc/sample-doc","title":"Sample doc","description":"Lorem Ipsum","source":"@site/_dogfooding/_docs tests/tests/category-links/with-index-doc/sample-doc.mdx","sourceDirName":"tests/category-links/with-index-doc","slug":"/tests/category-links/with-index-doc/sample-doc","permalink":"/tests/docs/tests/category-links/with-index-doc/sample-doc","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Category with index.md doc","permalink":"/tests/docs/tests/category-links/with-index-doc/"},"next":{"title":"Category with readme.md doc","permalink":"/tests/docs/tests/category-links/with-readme-doc/"}},{"id":"tests/category-links/with-readme-doc/README","title":"Category with readme.md doc","description":"You should be able to click on the category and browse this readme.md doc","source":"@site/_dogfooding/_docs tests/tests/category-links/with-readme-doc/README.mdx","sourceDirName":"tests/category-links/with-readme-doc","slug":"/tests/category-links/with-readme-doc/","permalink":"/tests/docs/tests/category-links/with-readme-doc/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/with-index-doc/sample-doc"},"next":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/with-readme-doc/sample-doc"}},{"id":"tests/category-links/with-readme-doc/sample-doc","title":"Sample doc","description":"Lorem Ipsum","source":"@site/_dogfooding/_docs tests/tests/category-links/with-readme-doc/sample-doc.mdx","sourceDirName":"tests/category-links/with-readme-doc","slug":"/tests/category-links/with-readme-doc/sample-doc","permalink":"/tests/docs/tests/category-links/with-readme-doc/sample-doc","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Category with readme.md doc","permalink":"/tests/docs/tests/category-links/with-readme-doc/"},"next":{"title":"Custom Props","permalink":"/tests/docs/tests/custom-props/"}},{"id":"tests/custom-props/doc-with-custom-props","title":"Doc with Custom Props","description":"This doc has custom props.","source":"@site/_dogfooding/_docs tests/tests/custom-props/doc-with-custom-props.mdx","sourceDirName":"tests/custom-props","slug":"/tests/custom-props/doc-with-custom-props","permalink":"/tests/docs/tests/custom-props/doc-with-custom-props","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"sidebar_custom_props":{"prop":"custom","number":1,"boolean":true}},"sidebar":"sidebar","previous":{"title":"Custom Props","permalink":"/tests/docs/tests/custom-props/"},"next":{"title":"Doc Without Custom Props","permalink":"/tests/docs/tests/custom-props/doc-without-custom-props"}},{"id":"tests/custom-props/doc-without-custom-props","title":"Doc Without Custom Props","description":"This doc doesn\'t have custom props.","source":"@site/_dogfooding/_docs tests/tests/custom-props/doc-without-custom-props.mdx","sourceDirName":"tests/custom-props","slug":"/tests/custom-props/doc-without-custom-props","permalink":"/tests/docs/tests/custom-props/doc-without-custom-props","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Doc with Custom Props","permalink":"/tests/docs/tests/custom-props/doc-with-custom-props"},"next":{"title":"Image tests","permalink":"/tests/docs/tests/img-tests"}},{"id":"tests/custom-props/index","title":"Custom Props","description":"","source":"@site/_dogfooding/_docs tests/tests/custom-props/index.mdx","sourceDirName":"tests/custom-props","slug":"/tests/custom-props/","permalink":"/tests/docs/tests/custom-props/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/with-readme-doc/sample-doc"},"next":{"title":"Doc with Custom Props","permalink":"/tests/docs/tests/custom-props/doc-with-custom-props"}},{"id":"tests/img-tests","title":"Image tests","description":"URL encoded image","source":"@site/_dogfooding/_docs tests/tests/img-tests.mdx","sourceDirName":"tests","slug":"/tests/img-tests","permalink":"/tests/docs/tests/img-tests","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"image":"./img/oss_logo.png"},"sidebar":"sidebar","previous":{"title":"Doc Without Custom Props","permalink":"/tests/docs/tests/custom-props/doc-without-custom-props"},"next":{"title":"Import Bad Package","permalink":"/tests/docs/tests/import-bad-package"}},{"id":"tests/import-bad-package","title":"Import Bad Package","description":"We are importing MDX content from a file that is in a package that has a bad React version.","source":"@site/_dogfooding/_docs tests/tests/import-bad-package.mdx","sourceDirName":"tests","slug":"/tests/import-bad-package","permalink":"/tests/docs/tests/import-bad-package","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Image tests","permalink":"/tests/docs/tests/img-tests"},"next":{"title":"Broken Anchors tests","permalink":"/tests/docs/tests/links/broken-anchors-tests"}},{"id":"tests/links/broken-anchors-tests","title":"Broken Anchors tests","description":"Markdown link to above anchor","source":"@site/_dogfooding/_docs tests/tests/links/broken-anchors-tests.mdx","sourceDirName":"tests/links","slug":"/tests/links/broken-anchors-tests","permalink":"/tests/docs/tests/links/broken-anchors-tests","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Import Bad Package","permalink":"/tests/docs/tests/import-bad-package"},"next":{"title":"Target doc","permalink":"/tests/docs/tests/links/target-doc-slug"}},{"id":"tests/links/target","title":"Target doc","description":"This is just a doc meant to be linked to by other docs.","source":"@site/_dogfooding/_docs tests/tests/links/target.mdx","sourceDirName":"tests/links","slug":"/tests/links/target-doc-slug","permalink":"/tests/docs/tests/links/target-doc-slug","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"target-doc-slug"},"sidebar":"sidebar","previous":{"title":"Broken Anchors tests","permalink":"/tests/docs/tests/links/broken-anchors-tests"},"next":{"title":"Test links","permalink":"/tests/docs/tests/links/test-markdown-links"}},{"id":"tests/links/test-markdown-links","title":"Test links","description":"These are dogfood tests showing that Markdown links with md/mdx file references are resolved correctly.","source":"@site/_dogfooding/_docs tests/tests/links/test-markdown-links.mdx","sourceDirName":"tests/links","slug":"/tests/links/test-markdown-links","permalink":"/tests/docs/tests/links/test-markdown-links","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Target doc","permalink":"/tests/docs/tests/links/target-doc-slug"},"next":{"title":"TOC partial test","permalink":"/tests/docs/tests/toc-partials/"}},{"id":"tests/toc-partials/index","title":"TOC partial test","description":"This page tests that MDX-imported content appears correctly in the table-of-contents","source":"@site/_dogfooding/_docs tests/tests/toc-partials/index.mdx","sourceDirName":"tests/toc-partials","slug":"/tests/toc-partials/","permalink":"/tests/docs/tests/toc-partials/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Test links","permalink":"/tests/docs/tests/links/test-markdown-links"},"next":{"title":"Visibility","permalink":"/tests/docs/tests/visibility/"}},{"id":"tests/visibility/force-unlisted","title":"force_unlisted_parseFrontMatter_test","description":"This doc is hidden despite unlisted: false","source":"@site/_dogfooding/_docs tests/tests/visibility/force-unlisted.mdx","sourceDirName":"tests/visibility","slug":"/tests/visibility/force-unlisted","permalink":"/tests/docs/tests/visibility/force-unlisted","draft":false,"unlisted":true,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"unlisted":true,"force_unlisted_parseFrontMatter_test":true},"sidebar":"sidebar"},{"id":"tests/visibility/index","title":"Visibility","description":"A category to play with draft/unlisted front matter.","source":"@site/_dogfooding/_docs tests/tests/visibility/index.mdx","sourceDirName":"tests/visibility","slug":"/tests/visibility/","permalink":"/tests/docs/tests/visibility/","draft":false,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"tags":["visibility"]},"sidebar":"sidebar","previous":{"title":"TOC partial test","permalink":"/tests/docs/tests/toc-partials/"},"next":{"title":"Some Drafts - Listed 1","permalink":"/tests/docs/tests/visibility/some-drafts/draft-subcategory/listed1"}},{"id":"tests/visibility/only-unlisteds/unlisted-subcategory/index","title":"Only Unlisteds - Subcategory index unlisted","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-unlisteds/unlisted-subcategory/index.mdx","sourceDirName":"tests/visibility/only-unlisteds/unlisted-subcategory","slug":"/tests/visibility/only-unlisteds/unlisted-subcategory/","permalink":"/tests/docs/tests/visibility/only-unlisteds/unlisted-subcategory/","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"},{"id":"tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3","title":"Only Unlisteds - Unlisted 3","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3.mdx","sourceDirName":"tests/visibility/only-unlisteds/unlisted-subcategory","slug":"/tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3","permalink":"/tests/docs/tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"},{"id":"tests/visibility/only-unlisteds/unlisted1","title":"Only Unlisteds - Unlisted 1","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-unlisteds/unlisted1.mdx","sourceDirName":"tests/visibility/only-unlisteds","slug":"/tests/visibility/only-unlisteds/unlisted1","permalink":"/tests/docs/tests/visibility/only-unlisteds/unlisted1","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"},{"id":"tests/visibility/only-unlisteds/unlisted2","title":"Only Unlisteds - Unlisted 2","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-unlisteds/unlisted2.mdx","sourceDirName":"tests/visibility/only-unlisteds","slug":"/tests/visibility/only-unlisteds/unlisted2","permalink":"/tests/docs/tests/visibility/only-unlisteds/unlisted2","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"},{"id":"tests/visibility/some-drafts/draft-subcategory/listed1","title":"Some Drafts - Listed 1","description":"Regular doc","source":"@site/_dogfooding/_docs tests/tests/visibility/some-drafts/draft-subcategory/listed1.mdx","sourceDirName":"tests/visibility/some-drafts/draft-subcategory","slug":"/tests/visibility/some-drafts/draft-subcategory/listed1","permalink":"/tests/docs/tests/visibility/some-drafts/draft-subcategory/listed1","draft":false,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Listed","permalink":"/tests/docs/tags/listed"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"tags":["visibility","listed"]},"sidebar":"sidebar","previous":{"title":"Visibility","permalink":"/tests/docs/tests/visibility/"},"next":{"title":"Some Unlisteds - Listed 1","permalink":"/tests/docs/tests/visibility/some-unlisteds/unlisted-subcategory/listed1"}},{"id":"tests/visibility/some-unlisteds/unlisted-subcategory/index","title":"Some Unlisteds - Subcategory index unlisted","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-unlisteds/unlisted-subcategory/index.mdx","sourceDirName":"tests/visibility/some-unlisteds/unlisted-subcategory","slug":"/tests/visibility/some-unlisteds/unlisted-subcategory/","permalink":"/tests/docs/tests/visibility/some-unlisteds/unlisted-subcategory/","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"},{"id":"tests/visibility/some-unlisteds/unlisted-subcategory/listed1","title":"Some Unlisteds - Listed 1","description":"Regular doc","source":"@site/_dogfooding/_docs tests/tests/visibility/some-unlisteds/unlisted-subcategory/listed1.mdx","sourceDirName":"tests/visibility/some-unlisteds/unlisted-subcategory","slug":"/tests/visibility/some-unlisteds/unlisted-subcategory/listed1","permalink":"/tests/docs/tests/visibility/some-unlisteds/unlisted-subcategory/listed1","draft":false,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Listed","permalink":"/tests/docs/tags/listed"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"tags":["visibility","listed"]},"sidebar":"sidebar","previous":{"title":"Some Drafts - Listed 1","permalink":"/tests/docs/tests/visibility/some-drafts/draft-subcategory/listed1"},"next":{"title":"Sidebar item description tests","permalink":"/tests/docs/category/sidebar-item-description-tests"}},{"id":"tests/visibility/some-unlisteds/unlisted-subcategory/unlisted3","title":"Some Unlisteds - Unlisted 3","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-unlisteds/unlisted-subcategory/unlisted3.mdx","sourceDirName":"tests/visibility/some-unlisteds/unlisted-subcategory","slug":"/tests/visibility/some-unlisteds/unlisted-subcategory/unlisted3","permalink":"/tests/docs/tests/visibility/some-unlisteds/unlisted-subcategory/unlisted3","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"},{"id":"tests/visibility/some-unlisteds/unlisted1","title":"Some Unlisteds - Unlisted 1","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-unlisteds/unlisted1.mdx","sourceDirName":"tests/visibility/some-unlisteds","slug":"/tests/visibility/some-unlisteds/unlisted1","permalink":"/tests/docs/tests/visibility/some-unlisteds/unlisted1","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"},{"id":"tests/visibility/some-unlisteds/unlisted2","title":"Some Unlisteds - Unlisted 2","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-unlisteds/unlisted2.mdx","sourceDirName":"tests/visibility/some-unlisteds","slug":"/tests/visibility/some-unlisteds/unlisted2","permalink":"/tests/docs/tests/visibility/some-unlisteds/unlisted2","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"},{"id":"toc/toc-_-_","title":"toc-_-_","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-_-_.mdx","sourceDirName":"toc","slug":"/toc/toc-_-_","permalink":"/tests/docs/toc/toc-_-_","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"toc-_-5","permalink":"/tests/docs/toc/toc-_-5"},"next":{"title":"toc-test-bad","permalink":"/tests/docs/toc/toc-test-bad"}},{"id":"toc/toc-_-5","title":"toc-_-5","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-_-5.mdx","sourceDirName":"toc","slug":"/toc/toc-_-5","permalink":"/tests/docs/toc/toc-_-5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_max_heading_level":5},"sidebar":"sidebar","previous":{"title":"toc-5-5","permalink":"/tests/docs/toc/toc-5-5"},"next":{"title":"toc-_-_","permalink":"/tests/docs/toc/toc-_-_"}},{"id":"toc/toc-2-2","title":"toc-2-2","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-2-2.mdx","sourceDirName":"toc","slug":"/toc/toc-2-2","permalink":"/tests/docs/toc/toc-2-2","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":2},"sidebar":"sidebar","previous":{"title":"Another test page","permalink":"/tests/docs/more-test"},"next":{"title":"toc-2-3","permalink":"/tests/docs/toc/toc-2-3"}},{"id":"toc/toc-2-3","title":"toc-2-3","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-2-3.mdx","sourceDirName":"toc","slug":"/toc/toc-2-3","permalink":"/tests/docs/toc/toc-2-3","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":3},"sidebar":"sidebar","previous":{"title":"toc-2-2","permalink":"/tests/docs/toc/toc-2-2"},"next":{"title":"toc-2-4","permalink":"/tests/docs/toc/toc-2-4"}},{"id":"toc/toc-2-4","title":"toc-2-4","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-2-4.mdx","sourceDirName":"toc","slug":"/toc/toc-2-4","permalink":"/tests/docs/toc/toc-2-4","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":4},"sidebar":"sidebar","previous":{"title":"toc-2-3","permalink":"/tests/docs/toc/toc-2-3"},"next":{"title":"toc-2-5","permalink":"/tests/docs/toc/toc-2-5"}},{"id":"toc/toc-2-5","title":"toc-2-5","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-2-5.mdx","sourceDirName":"toc","slug":"/toc/toc-2-5","permalink":"/tests/docs/toc/toc-2-5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":5},"sidebar":"sidebar","previous":{"title":"toc-2-4","permalink":"/tests/docs/toc/toc-2-4"},"next":{"title":"toc-3-5","permalink":"/tests/docs/toc/toc-3-5"}},{"id":"toc/toc-3-_","title":"toc-3-_","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-3-_.mdx","sourceDirName":"toc","slug":"/toc/toc-3-_","permalink":"/tests/docs/toc/toc-3-_","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_min_heading_level":3},"sidebar":"sidebar","previous":{"title":"toc-3-5","permalink":"/tests/docs/toc/toc-3-5"},"next":{"title":"toc-4-5","permalink":"/tests/docs/toc/toc-4-5"}},{"id":"toc/toc-3-5","title":"toc-3-5","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-3-5.mdx","sourceDirName":"toc","slug":"/toc/toc-3-5","permalink":"/tests/docs/toc/toc-3-5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_min_heading_level":3,"toc_max_heading_level":5},"sidebar":"sidebar","previous":{"title":"toc-2-5","permalink":"/tests/docs/toc/toc-2-5"},"next":{"title":"toc-3-_","permalink":"/tests/docs/toc/toc-3-_"}},{"id":"toc/toc-4-5","title":"toc-4-5","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-4-5.mdx","sourceDirName":"toc","slug":"/toc/toc-4-5","permalink":"/tests/docs/toc/toc-4-5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_min_heading_level":4,"toc_max_heading_level":5},"sidebar":"sidebar","previous":{"title":"toc-3-_","permalink":"/tests/docs/toc/toc-3-_"},"next":{"title":"toc-5-5","permalink":"/tests/docs/toc/toc-5-5"}},{"id":"toc/toc-5-5","title":"toc-5-5","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-5-5.mdx","sourceDirName":"toc","slug":"/toc/toc-5-5","permalink":"/tests/docs/toc/toc-5-5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_min_heading_level":5,"toc_max_heading_level":5},"sidebar":"sidebar","previous":{"title":"toc-4-5","permalink":"/tests/docs/toc/toc-4-5"},"next":{"title":"toc-_-5","permalink":"/tests/docs/toc/toc-_-5"}},{"id":"toc/toc-test-bad","title":"toc-test-bad","description":"Test the TOC behavior of a real-world MD doc with invalid headings","source":"@site/_dogfooding/_docs tests/toc/toc-test-bad.mdx","sourceDirName":"toc","slug":"/toc/toc-test-bad","permalink":"/tests/docs/toc/toc-test-bad","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":6},"sidebar":"sidebar","previous":{"title":"toc-_-_","permalink":"/tests/docs/toc/toc-_-_"},"next":{"title":"toc-test-good","permalink":"/tests/docs/toc/toc-test-good"}},{"id":"toc/toc-test-good","title":"toc-test-good","description":"Test the TOC behavior of a real-world MD doc with valid headings","source":"@site/_dogfooding/_docs tests/toc/toc-test-good.mdx","sourceDirName":"toc","slug":"/toc/toc-test-good","permalink":"/tests/docs/toc/toc-test-good","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":6},"sidebar":"sidebar","previous":{"title":"toc-test-bad","permalink":"/tests/docs/toc/toc-test-bad"}}],"drafts":[{"id":"tests/another-draft","title":"Another Draft","description":"This page should only be visible in local development","source":"@site/_dogfooding/_docs tests/tests/another-draft.mdx","sourceDirName":"tests","slug":"/tests/another-draft","permalink":"/tests/docs/tests/another-draft","draft":true,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"draft":true}},{"id":"tests/visibility/only-drafts/draft1","title":"Only Drafts - Draft 1","description":"Doc with draft front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-drafts/draft1.mdx","sourceDirName":"tests/visibility/only-drafts","slug":"/tests/visibility/only-drafts/draft1","permalink":"/tests/docs/tests/visibility/only-drafts/draft1","draft":true,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Draft","permalink":"/tests/docs/tags/draft"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"draft":true,"tags":["visibility","draft"]}},{"id":"tests/visibility/only-drafts/draft2","title":"Only Drafts - Draft 2","description":"Doc with draft front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-drafts/draft2.mdx","sourceDirName":"tests/visibility/only-drafts","slug":"/tests/visibility/only-drafts/draft2","permalink":"/tests/docs/tests/visibility/only-drafts/draft2","draft":true,"unlisted":false,"tags":[{"inline":false,"label":"Draft","permalink":"/tests/docs/tags/draft"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"draft":true,"tags":["draft"]}},{"id":"tests/visibility/some-drafts/draft1","title":"Some Drafts - Draft 1","description":"Doc with draft front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-drafts/draft1.mdx","sourceDirName":"tests/visibility/some-drafts","slug":"/tests/visibility/some-drafts/draft1","permalink":"/tests/docs/tests/visibility/some-drafts/draft1","draft":true,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Draft","permalink":"/tests/docs/tags/draft"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"draft":true,"tags":["visibility","draft"]}},{"id":"tests/visibility/some-drafts/draft2","title":"Some Drafts - Draft 2","description":"Doc with draft front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-drafts/draft2.mdx","sourceDirName":"tests/visibility/some-drafts","slug":"/tests/visibility/some-drafts/draft2","permalink":"/tests/docs/tests/visibility/some-drafts/draft2","draft":true,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Draft","permalink":"/tests/docs/tags/draft"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"draft":true,"tags":["visibility","draft"]}},{"id":"tests/visibility/only-drafts/draft-subcategory/draft3","title":"Only Drafts - Draft 3","description":"Doc with draft front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-drafts/draft-subcategory/draft3.mdx","sourceDirName":"tests/visibility/only-drafts/draft-subcategory","slug":"/tests/visibility/only-drafts/draft-subcategory/draft3","permalink":"/tests/docs/tests/visibility/only-drafts/draft-subcategory/draft3","draft":true,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Draft","permalink":"/tests/docs/tags/draft"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"draft":true,"tags":["visibility","draft"]}},{"id":"tests/visibility/only-drafts/draft-subcategory/index","title":"Only Drafts - Subcategory index draft","description":"Doc with draft front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/only-drafts/draft-subcategory/index.mdx","sourceDirName":"tests/visibility/only-drafts/draft-subcategory","slug":"/tests/visibility/only-drafts/draft-subcategory/","permalink":"/tests/docs/tests/visibility/only-drafts/draft-subcategory/","draft":true,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Draft","permalink":"/tests/docs/tags/draft"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"draft":true,"tags":["visibility","draft"]}},{"id":"tests/visibility/some-drafts/draft-subcategory/draft3","title":"Some Drafts - Draft 3","description":"Doc with draft front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-drafts/draft-subcategory/draft3.mdx","sourceDirName":"tests/visibility/some-drafts/draft-subcategory","slug":"/tests/visibility/some-drafts/draft-subcategory/draft3","permalink":"/tests/docs/tests/visibility/some-drafts/draft-subcategory/draft3","draft":true,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Draft","permalink":"/tests/docs/tags/draft"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"draft":true,"tags":["visibility","draft"]}},{"id":"tests/visibility/some-drafts/draft-subcategory/index","title":"Some Drafts - Subcategory index draft","description":"Doc with draft front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-drafts/draft-subcategory/index.mdx","sourceDirName":"tests/visibility/some-drafts/draft-subcategory","slug":"/tests/visibility/some-drafts/draft-subcategory/","permalink":"/tests/docs/tests/visibility/some-drafts/draft-subcategory/","draft":true,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Draft","permalink":"/tests/docs/tags/draft"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"draft":true,"tags":["visibility","draft"]}}],"sidebars":{"sidebar":[{"type":"doc","id":"index","className":"red","label":"Index","translatable":true},{"type":"doc","id":"doc-without-sidebar"},{"type":"doc","id":"doc-with-another-sidebar"},{"type":"doc","id":"doc-with-last-update"},{"type":"category","label":"Tests","link":{"type":"generated-index","slug":"/category/tests","permalink":"/tests/docs/category/tests"},"items":[{"type":"doc","id":"tests/Case-Sentitive-Doc"},{"type":"doc","id":"tests/admonitions"},{"type":"category","label":"ascii","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"folder","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/ascii/folder/\xe6\xf8\xe5"}]},{"type":"doc","label":"index","id":"tests/ascii/\xe6\xf8\xe5/index"}]},{"type":"category","label":"Category Links","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Introduction","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/category-links/custom-index-convention/sample-doc"}],"link":{"type":"doc","id":"tests/category-links/custom-index-convention/intro"}},{"type":"category","label":"no-index-doc","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/category-links/no-index-doc/index"},{"type":"doc","id":"tests/category-links/no-index-doc/sample-doc"}]},{"type":"doc","label":"No sub-docs","id":"tests/category-links/no-subdoc/index"},{"type":"doc","id":"tests/category-links/readme"},{"type":"category","label":"regular-category","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/category-links/regular-category/sample-doc"}]},{"type":"category","label":"Category with a doc of category\'s name","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/category-links/with-category-name-doc/sample-doc"}],"link":{"type":"doc","id":"tests/category-links/with-category-name-doc/with-category-name-doc"}},{"type":"category","label":"Category with index.md doc","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/category-links/with-index-doc/sample-doc"}],"link":{"type":"doc","id":"tests/category-links/with-index-doc/index"}},{"type":"category","label":"Category with readme.md doc","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/category-links/with-readme-doc/sample-doc"}],"link":{"type":"doc","id":"tests/category-links/with-readme-doc/README"}}],"description":"Category Links - Custom Description","link":{"type":"generated-index","slug":"/category-links-generated-index-slug","permalink":"/tests/docs/category-links-generated-index-slug"}},{"type":"category","label":"Custom Props","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/custom-props/doc-with-custom-props","customProps":{"prop":"custom","number":1,"boolean":true}},{"type":"doc","id":"tests/custom-props/doc-without-custom-props"}],"link":{"type":"doc","id":"tests/custom-props/index"}},{"type":"doc","id":"tests/img-tests"},{"type":"doc","id":"tests/import-bad-package"},{"type":"category","label":"links","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/links/broken-anchors-tests"},{"type":"doc","id":"tests/links/target"},{"type":"doc","id":"tests/links/test-markdown-links"}]},{"type":"doc","label":"TOC partial test","id":"tests/toc-partials/index"},{"type":"category","label":"Visibility","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/visibility/force-unlisted"},{"type":"category","label":"only-unlisteds","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Only Unlisteds - Subcategory index unlisted","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/visibility/only-unlisteds/unlisted-subcategory/unlisted3"}],"link":{"type":"doc","id":"tests/visibility/only-unlisteds/unlisted-subcategory/index"}},{"type":"doc","id":"tests/visibility/only-unlisteds/unlisted1"},{"type":"doc","id":"tests/visibility/only-unlisteds/unlisted2"}]},{"type":"category","label":"some-drafts","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"draft-subcategory","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/visibility/some-drafts/draft-subcategory/listed1"}]}]},{"type":"category","label":"some-unlisteds","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Some Unlisteds - Subcategory index unlisted","collapsible":true,"collapsed":true,"items":[{"type":"doc","id":"tests/visibility/some-unlisteds/unlisted-subcategory/listed1"},{"type":"doc","id":"tests/visibility/some-unlisteds/unlisted-subcategory/unlisted3"}],"link":{"type":"doc","id":"tests/visibility/some-unlisteds/unlisted-subcategory/index"}},{"type":"doc","id":"tests/visibility/some-unlisteds/unlisted1"},{"type":"doc","id":"tests/visibility/some-unlisteds/unlisted2"}]}],"link":{"type":"doc","id":"tests/visibility/index"}},{"type":"link","label":"External Link test","href":"https://docusaurus.io"},{"type":"category","label":"Sidebar item description tests","description":"Some custom category description","link":{"type":"generated-index","slug":"/category/sidebar-item-description-tests","permalink":"/tests/docs/category/sidebar-item-description-tests"},"items":[{"type":"link","label":"Link without description","href":"https://docusaurus.io"},{"type":"link","label":"Link with description","href":"https://docusaurus.io","description":"Some link description"},{"type":"category","label":"Category without description","items":[{"type":"link","label":"Link ","href":"https://docusaurus.io"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category with description","description":"Some category description","items":[{"type":"link","label":"Link ","href":"https://docusaurus.io"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Another category with index","collapsible":false,"link":{"type":"generated-index","slug":"/category/another-category-with-index","permalink":"/tests/docs/category/another-category-with-index"},"items":[{"type":"doc","id":"more-test"}],"collapsed":false},{"type":"category","label":"Huge sidebar category","items":[{"type":"link","href":"/","label":"Test Test test test test test test"},{"type":"link","href":"/","label":"Link 0 (level 1)"},{"type":"link","href":"/","label":"Link 1 (level 1)"},{"type":"link","href":"/","label":"Link 2 (level 1)"},{"type":"link","href":"/","label":"Link 3 (level 1)"},{"type":"link","href":"/","label":"Link 4 (level 1)"},{"type":"link","href":"/","label":"Link 5 (level 1)"},{"type":"link","href":"/","label":"Link 6 (level 1)"},{"type":"link","href":"/","label":"Link 7 (level 1)"},{"type":"category","label":"Category 0 (level 1)","items":[{"type":"link","href":"/","label":"Link 0 (level 2)"},{"type":"link","href":"/","label":"Link 1 (level 2)"},{"type":"link","href":"/","label":"Link 2 (level 2)"},{"type":"link","href":"/","label":"Link 3 (level 2)"},{"type":"link","href":"/","label":"Link 4 (level 2)"},{"type":"link","href":"/","label":"Link 5 (level 2)"},{"type":"link","href":"/","label":"Link 6 (level 2)"},{"type":"link","href":"/","label":"Link 7 (level 2)"},{"type":"category","label":"Category 0 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 1)","items":[{"type":"link","href":"/","label":"Link 0 (level 2)"},{"type":"link","href":"/","label":"Link 1 (level 2)"},{"type":"link","href":"/","label":"Link 2 (level 2)"},{"type":"link","href":"/","label":"Link 3 (level 2)"},{"type":"link","href":"/","label":"Link 4 (level 2)"},{"type":"link","href":"/","label":"Link 5 (level 2)"},{"type":"link","href":"/","label":"Link 6 (level 2)"},{"type":"link","href":"/","label":"Link 7 (level 2)"},{"type":"category","label":"Category 0 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 1)","items":[{"type":"link","href":"/","label":"Link 0 (level 2)"},{"type":"link","href":"/","label":"Link 1 (level 2)"},{"type":"link","href":"/","label":"Link 2 (level 2)"},{"type":"link","href":"/","label":"Link 3 (level 2)"},{"type":"link","href":"/","label":"Link 4 (level 2)"},{"type":"link","href":"/","label":"Link 5 (level 2)"},{"type":"link","href":"/","label":"Link 6 (level 2)"},{"type":"link","href":"/","label":"Link 7 (level 2)"},{"type":"category","label":"Category 0 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 1)","items":[{"type":"link","href":"/","label":"Link 0 (level 2)"},{"type":"link","href":"/","label":"Link 1 (level 2)"},{"type":"link","href":"/","label":"Link 2 (level 2)"},{"type":"link","href":"/","label":"Link 3 (level 2)"},{"type":"link","href":"/","label":"Link 4 (level 2)"},{"type":"link","href":"/","label":"Link 5 (level 2)"},{"type":"link","href":"/","label":"Link 6 (level 2)"},{"type":"link","href":"/","label":"Link 7 (level 2)"},{"type":"category","label":"Category 0 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 1)","items":[{"type":"link","href":"/","label":"Link 0 (level 2)"},{"type":"link","href":"/","label":"Link 1 (level 2)"},{"type":"link","href":"/","label":"Link 2 (level 2)"},{"type":"link","href":"/","label":"Link 3 (level 2)"},{"type":"link","href":"/","label":"Link 4 (level 2)"},{"type":"link","href":"/","label":"Link 5 (level 2)"},{"type":"link","href":"/","label":"Link 6 (level 2)"},{"type":"link","href":"/","label":"Link 7 (level 2)"},{"type":"category","label":"Category 0 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 1)","items":[{"type":"link","href":"/","label":"Link 0 (level 2)"},{"type":"link","href":"/","label":"Link 1 (level 2)"},{"type":"link","href":"/","label":"Link 2 (level 2)"},{"type":"link","href":"/","label":"Link 3 (level 2)"},{"type":"link","href":"/","label":"Link 4 (level 2)"},{"type":"link","href":"/","label":"Link 5 (level 2)"},{"type":"link","href":"/","label":"Link 6 (level 2)"},{"type":"link","href":"/","label":"Link 7 (level 2)"},{"type":"category","label":"Category 0 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 1)","items":[{"type":"link","href":"/","label":"Link 0 (level 2)"},{"type":"link","href":"/","label":"Link 1 (level 2)"},{"type":"link","href":"/","label":"Link 2 (level 2)"},{"type":"link","href":"/","label":"Link 3 (level 2)"},{"type":"link","href":"/","label":"Link 4 (level 2)"},{"type":"link","href":"/","label":"Link 5 (level 2)"},{"type":"link","href":"/","label":"Link 6 (level 2)"},{"type":"link","href":"/","label":"Link 7 (level 2)"},{"type":"category","label":"Category 0 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 1)","items":[{"type":"link","href":"/","label":"Link 0 (level 2)"},{"type":"link","href":"/","label":"Link 1 (level 2)"},{"type":"link","href":"/","label":"Link 2 (level 2)"},{"type":"link","href":"/","label":"Link 3 (level 2)"},{"type":"link","href":"/","label":"Link 4 (level 2)"},{"type":"link","href":"/","label":"Link 5 (level 2)"},{"type":"link","href":"/","label":"Link 6 (level 2)"},{"type":"link","href":"/","label":"Link 7 (level 2)"},{"type":"category","label":"Category 0 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 2)","items":[{"type":"link","href":"/","label":"Link 0 (level 3)"},{"type":"link","href":"/","label":"Link 1 (level 3)"},{"type":"link","href":"/","label":"Link 2 (level 3)"},{"type":"link","href":"/","label":"Link 3 (level 3)"},{"type":"link","href":"/","label":"Link 4 (level 3)"},{"type":"link","href":"/","label":"Link 5 (level 3)"},{"type":"link","href":"/","label":"Link 6 (level 3)"},{"type":"link","href":"/","label":"Link 7 (level 3)"},{"type":"category","label":"Category 0 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 1 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 2 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 3 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 4 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 5 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 6 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Category 7 (level 3)","items":[{"type":"link","href":"/","label":"Link (level 4)"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Link tests","className":"red","items":[{"type":"link","label":"External link absolute","href":"https://github.com/facebook/docusaurus"},{"type":"link","label":"pathname:/// link","href":"pathname:///some/local/path"},{"type":"link","label":"pathname:/// link (no baseUrl)","href":"pathname:///some/local/path","autoAddBaseUrl":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"TOC tests","className":"red","items":[{"type":"doc","id":"toc/toc-2-2"},{"type":"doc","id":"toc/toc-2-3"},{"type":"doc","id":"toc/toc-2-4"},{"type":"doc","id":"toc/toc-2-5"},{"type":"doc","id":"toc/toc-3-5"},{"type":"doc","id":"toc/toc-3-_"},{"type":"doc","id":"toc/toc-4-5"},{"type":"doc","id":"toc/toc-5-5"},{"type":"doc","id":"toc/toc-_-5"},{"type":"doc","id":"toc/toc-_-_"},{"type":"doc","id":"toc/toc-test-bad"},{"type":"doc","id":"toc/toc-test-good"}],"collapsed":true,"collapsible":true},{"type":"category","label":"HTML items tests","collapsed":false,"collapsible":false,"items":[{"type":"html","value":"Some Text","defaultStyle":true},{"type":"html","value":"<span style=\\"border-top: 1px solid var(--ifm-color-gray-500); display: block;margin: 0.5rem 0 0.25rem 1rem;\\" />"},{"type":"html","defaultStyle":true,"value":"\\n <span style=\\"font-size: 0.5rem; color: lightgrey;\\">Powered by</span>\\n <img style=\\"width: 100px; height: 100px; display: block;\\" src=\\"/img/docusaurus.png\\" alt=\\"Docusaurus Logo\\" />\\n "}]}],"anotherSidebar":[{"type":"doc","id":"dummy"}]}}]}},"docusaurus-plugin-content-blog":{"default":{"blogSidebarTitle":"All our posts","blogPosts":[{"id":"/releases/3.5","metadata":{"permalink":"/blog/releases/3.5","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.5/index.mdx","source":"@site/blog/releases/3.5/index.mdx","title":"Docusaurus 3.5","description":"We are happy to announce Docusaurus 3.5.","date":"2024-08-09T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.91,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.5","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-08-09T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","nextItem":{"title":"Docusaurus 3.4","permalink":"/blog/releases/3.4"}},"content":"We are happy to announce **Docusaurus 3.5**.\\n\\nThis release contains many **new exciting blog features**.\\n\\nUpgrading should be easy. Our [release process](/community/release-process) respects [Semantic Versioning](https://semver.org/). Minor versions do not include any breaking changes.\\n\\n![Docusaurus blog post social card](./img/social-card.png)\\n\\n{/* truncate */}\\n\\n## Highlights\\n\\n### Blog Social Icons\\n\\nIn [#10222](https://github.com/facebook/docusaurus/pull/10222), we added the possibility to associate social links to blog authors, for inline authors declared in front matter or global through the `authors.yml` file.\\n\\n```yml title=\\"blog/authors.yml\\"\\nslorber:\\n name: S\xe9bastien Lorber\\n # other author properties...\\n # highlight-start\\n socials:\\n x: sebastienlorber\\n linkedin: sebastienlorber\\n github: slorber\\n newsletter: https://thisweekinreact.com\\n # highlight-end\\n```\\n\\n![Author socials screenshot displaying `slorber` author with 4 social platform icons](./img/author-socials.png)\\n\\nIcons and handle shortcuts are provided for pre-defined platforms `x`, `linkedin`, `github` and `stackoverflow`. It\'s possible to provide any additional platform entry (like `newsletter` in the example above) with a full URL.\\n\\n### Blog Authors Pages\\n\\nIn [#10216](https://github.com/facebook/docusaurus/pull/10216), we added the possibility for [global blog authors](/docs/blog#global-authors) (declared in `authors.yml`) to have their own dedicated page listing all the blog posts they contributed to.\\n\\nThis feature is opt-in and mostly relevant for **multi-author blogs**. You can turn it on for a specific author by setting the `page: true` property:\\n\\n```yml title=\\"blog/authors.yml\\"\\nslorber:\\n name: S\xe9bastien Lorber\\n # the description will be displayed on the author\'s page\\n description: \'A freelance React and React-Native developer...\'\\n # highlight-next-line\\n page: true # Turns the feature on\\n```\\n\\nThis creates a [dedicated author page](/blog/authors/slorber) at `/blog/authors/slorber`.\\n\\n![Author page screenshot for `slorber` global author](./img/author-page.png)\\n\\nAn [authors index page](/blog/authors) is also created, listing all the blog authors.\\n\\n![Author index page listing multiple authors](./img/author-index.png)\\n\\nCheck the [blog authors pages guide](/docs/blog#authors-pages) for details.\\n\\n### Blog Feeds Styling\\n\\nIn [#9252](https://github.com/facebook/docusaurus/pull/9252), we added support for [styling your blog feeds](https://darekkay.com/blog/rss-styling/) by providing custom XSLT `.xls` files for the RSS and Atom feeds. This allows browsers to render the feeds in a more visually appealing way, like a regular HTML page, instead of the default XML view.\\n\\n```js title=\\"website/docusaurus.config.js\\"\\nconst blogOptions = {\\n feedOptions: {\\n // highlight-start\\n xslt: {\\n rss: \'custom-rss.xsl\',\\n atom: \'custom-atom.xsl\',\\n },\\n // highlight-end\\n },\\n};\\n```\\n\\nWriting your own XSLT can be complex, but you can also use `xslt: true` to turn on the built-in style:\\n\\n```js title=\\"website/docusaurus.config.js\\"\\nconst blogOptions = {\\n feedOptions: {\\n // highlight-start\\n xslt: true,\\n // highlight-end\\n },\\n};\\n```\\n\\n![Screenshot of the Docusaurus blog RSS feed, beautifully styled](./img/blog-feed-xslt.png)\\n\\n### Blog Sidebar Grouping\\n\\nIn [#10252](https://github.com/facebook/docusaurus/pull/10252), we added support for grouping blog posts by years in the blog sidebar.\\n\\n![Screenshot of the Docusaurus blog, in particular the sidebar items grouped by year](./img/blog-sidebar-years.png)\\n\\nThis feature is now turned on by default, but can be disabled with `themeConfig.blog.sidebar.groupByYear: false`.\\n\\n### Blog Consistency Options\\n\\nWe added new blog options to enforce recommended practices for your blog posts:\\n\\n#### `onInlineAuthors`\\n\\nWe believe large multi-blogs are easier to manage by using [global authors](/docs/blog#global-authors), declared in `authors.yml`. This notably permits to avoids duplicating author information across multiple blog posts, and now permits to generate [author pages](/docs/blog#authors-pages).\\n\\nIn [#10224](https://github.com/facebook/docusaurus/pull/10224), we added the `onInlineAuthors` option. Use `onInlineAuthors: \'throw\'` to forbid [inline authors](/docs/blog#inline-authors), and enforce a consistent usage of [global authors](/docs/blog#global-authors).\\n\\n#### `onUntruncatedBlogPosts`\\n\\nWe believe blog posts are better using [truncation markers](/docs/blog#blog-list) (`<!-- truncate -->` or `{/* truncate */}`). On paginated lists (blog home, tags pages, authors pages), this permits to render a more concise preview of the blog post instead of a full blog post.\\n\\nIn [#10375](https://github.com/facebook/docusaurus/pull/10375), we added the `onUntruncatedBlogPosts` option. Use `onUntruncatedBlogPosts: \'throw\'` to enforce a consistent usage of [truncation markers](/docs/blog#blog-list).\\n\\n## Translations\\n\\n- \u{1F1EA}\u{1F1EA} [#10339](https://github.com/facebook/docusaurus/pull/10339): Add Estonian theme translations.\\n- \u{1F1EE}\u{1F1E9} [#10325](https://github.com/facebook/docusaurus/pull/10325): Add Indonesian theme translations.\\n- \u{1F1EA}\u{1F1F8} [#10360](https://github.com/facebook/docusaurus/pull/10360): Improve Spanish theme translations.\\n- \u{1F1E9}\u{1F1EA} [#10235](https://github.com/facebook/docusaurus/pull/10235): Improve German theme translations.\\n- \u{1F1E8}\u{1F1F3} [#10257](https://github.com/facebook/docusaurus/pull/10257): Improve Traditional Chinese (zh-Hant) theme translations.\\n\\n## Other changes\\n\\nOther notable changes include:\\n\\n- [#10369](https://github.com/facebook/docusaurus/pull/10369): Add support for [pkg.pr.new](https://pkg.pr.new) continuous releases so that you can test any pull-request code in a StackBlitz playground.\\n- [#10376](https://github.com/facebook/docusaurus/pull/10376): Theme unlisted/draft banners are also shown in dev so that you don\'t forget to publish your content.\\n- [#10335](https://github.com/facebook/docusaurus/pull/10335): The Markdown top-level headings `# title` are automatically wrapped in `<header>` for consistency with front matter `title: Title`.\\n- [#10286](https://github.com/facebook/docusaurus/pull/10286): Allows Docusaurus plugins to self-disable by returning `null`.\\n- [#10241](https://github.com/facebook/docusaurus/pull/10241): Add support for [MDX processor `recmaPlugins` option](https://mdxjs.com/packages/mdx/#processoroptions) to modify the MDX Estree AST.\\n- [#10324](https://github.com/facebook/docusaurus/pull/10324): The docs autogenerated `_category_.json` accepts a new `description` property that gets displayed on generated index pages.\\n- [#10368](https://github.com/facebook/docusaurus/pull/10368): The CLI command `docusaurus --version` now actually returns the Docusaurus version.\\n- [#10240](https://github.com/facebook/docusaurus/pull/10240): Markdown `mdx-code-block` now supports indentation.\\n- [#10219](https://github.com/facebook/docusaurus/pull/10219): Fix `<TabItem lazy>` support the for `className` prop.\\n- [#10313](https://github.com/facebook/docusaurus/pull/10313): Blog-related `@docusaurus/theme-common/internal` APIs have been moved to `@docusaurus/plugin-content-blog/client`.\\n- [#10316](https://github.com/facebook/docusaurus/pull/10316): Docs-related `@docusaurus/theme-common/internal` APIs have been moved to `@docusaurus/plugin-content-docs/client`.\\n\\nCheck the **[3.5.0 changelog entry](/changelog/3.5.0)** for an exhaustive list of changes."},{"id":"/releases/3.4","metadata":{"permalink":"/blog/releases/3.4","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.4/index.mdx","source":"@site/blog/releases/3.4/index.mdx","title":"Docusaurus 3.4","description":"We are happy to announce Docusaurus 3.4.","date":"2024-05-31T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.045,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.4","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-05-31T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 3.5","permalink":"/blog/releases/3.5"},"nextItem":{"title":"Docusaurus 3.3","permalink":"/blog/releases/3.3"}},"content":"We are happy to announce **Docusaurus 3.4**.\\n\\nUpgrading should be easy. Our [release process](/community/release-process) respects [Semantic Versioning](https://semver.org/). Minor versions do not include any breaking changes.\\n\\n![Docusaurus blog post social card](./img/social-card.png)\\n\\n<!--truncate-->\\n\\n## Highlights\\n\\n### Tags files\\n\\nThe docs and blog plugins both already supported a `tags` front matter attribute, enabling you to group related content. But tags declared inline in the front matter are not always ideal.\\n\\nWith [#10137](https://github.com/facebook/docusaurus/pull/10137), you can now declare a list of pre-defined tags in a `tags.yml` file:\\n\\n```yml title=\\"blog/tags.yml\\"\\ntag1:\\n label: \'Tag 1\'\\n description: \'Tag 1 description\'\\n permalink: /tag-1-permalink\\n\\ntag2:\\n label: \'Tag 2\'\\n description: \'Tag 2 description\'\\n permalink: /tag-2-permalink\\n```\\n\\nThese predefined tags can be used in the front matter of your blog or docs files:\\n\\n```md title=\\"blog/2024-05-31-my-blog-post.md\\"\\n---\\ntags: [tag1, tag2]\\n---\\n\\n# Title\\n\\nContent\\n```\\n\\n:::tip Keeping tags usage consistent\\n\\nUse the new `onInlineTags: \'throw\'` plugin option to enforce the usage of predefined tags and prevent contributors from creating new unwanted tags.\\n\\n:::\\n\\n### Hash Router - Experimental\\n\\nWith [9859](https://github.com/facebook/docusaurus/pull/9859), we added a new **experimental** hash router config option, useful for **offline browsing** by opening your site locally through the `file://` protocol.\\n\\n```tsx title=\\"docusaurus.config.js\\"\\nexport default {\\n future: {\\n experimental_router: \'hash\',\\n },\\n};\\n```\\n\\n:::warning\\n\\nThis mode is **not recommended for sites deployed through a web server**.\\n\\n:::\\n\\nWhen this mode is turned on, Docusaurus will opt out of static site rendering, and build a client-side single page application where all routes are prefixed with `/#/`. A single `index.html` file is generated. This file can be opened locally in your browser by simply clicking it, using the browser `file://` protocol. This makes it possible to distribute a Docusaurus site as a `.zip` file so that readers can browse it offline, without having to install anything complex on their computer apart a web browser.\\n\\n![Docusaurus hash router - local browsing using the file:// protocol](./img/hash.png)\\n\\nTry browsing our own Docusaurus site built with the hash router:\\n\\n- [Docusaurus website - Hash Router web deployment](https://facebook.github.io/docusaurus/#/)\\n- [Docusaurus website - Hash Router downloadable GitHub artifacts](https://github.com/facebook/docusaurus/actions/workflows/build-hash-router.yml)\\n\\n:::caution Experimental\\n\\nThis feature is **experimental**. If you try it out, please let us know how it works for you [here](https://github.com/facebook/docusaurus/issues/3825).\\n\\n:::\\n\\n### Site Storage - Experimental\\n\\nDocusaurus uses the browser `localStorage` API to persist UI state.\\n\\nBut sometimes the storage space is \\"shared\\" between multiple sites using the same domain, leading to **storage key conflicts**. This generally happens in two cases\\n\\n- when working on multiple `http://localhost:3000` sites\\n- when hosting multiple sites under the same domain: `https://example.com/site1/` and `https://example.com/site2/`\\n\\nFor this reason, we introduced a new **experimental** `siteStorage` configuration option:\\n\\n```tsx\\nexport default {\\n future: {\\n experimental_storage: {\\n type: \'localStorage\',\\n namespace: true,\\n },\\n },\\n};\\n```\\n\\nWhen `namespace: true` is set, we apply a hash suffix to all the storage keys, making them unique to the current site (based on `config.url` and `config.baseUrl`. For example, the `theme` storage key becomes `theme-x6f`. It is also possible to provide your own custom suffix `namespace: \'suffix\'`. We also made it possible to use `type: \'sessionStorage\'` instead of the default `localStorage`.\\n\\n:::caution Experimental\\n\\nThis feature is **experimental**. If you try it out, please let us know how it works for you [here](https://github.com/facebook/docusaurus/pull/10121).\\n\\n:::\\n\\n## Other changes\\n\\nOther notable changes include:\\n\\n- [#10151](https://github.com/facebook/docusaurus/pull/10151): add Turkmen (tk) theme translations\\n- [#10111](https://github.com/facebook/docusaurus/pull/10111): add Bulgarian (bg) theme translations\\n- [#10168](https://github.com/facebook/docusaurus/pull/10168): fix many long overdue Markdown link resolution bugs\\n- [#10178](https://github.com/facebook/docusaurus/pull/10178): the `/search` page now respects the `contextualSearch: false` setting\\n- [#10118](https://github.com/facebook/docusaurus/pull/10118): fix bad pluralization on docs generated index category card description\\n- [#10130](https://github.com/facebook/docusaurus/pull/10130): fix false positives reported by the broken anchor checker due to trailing slashes\\n\\nCheck the **[3.4.0 changelog entry](/changelog/3.4.0)** for an exhaustive list of changes."},{"id":"/releases/3.3","metadata":{"permalink":"/blog/releases/3.3","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.3/index.mdx","source":"@site/blog/releases/3.3/index.mdx","title":"Docusaurus 3.3","description":"We are happy to announce Docusaurus 3.3.","date":"2024-05-03T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":2.56,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.3","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-05-03T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 3.4","permalink":"/blog/releases/3.4"},"nextItem":{"title":"Docusaurus 3.2","permalink":"/blog/releases/3.2"}},"content":"We are happy to announce **Docusaurus 3.3**.\\n\\nUpgrading should be easy. Our [release process](/community/release-process) respects [Semantic Versioning](https://semver.org/). Minor versions do not include any breaking changes.\\n\\n![Docusaurus blog post social card](./img/social-card.png)\\n\\n<!--truncate-->\\n\\nimport BrowserWindow from \'@site/src/components/BrowserWindow\';\\nimport IframeWindow from \'@site/src/components/BrowserWindow/IframeWindow\';\\n\\n## Highlights\\n\\n### Prepare for React 19\\n\\nThe React core team recently [released the first **React 19 beta**](https://react.dev/blog/2024/04/25/react-19). They also [published an upgrade guide and a **React v18.3 release**](https://react.dev/blog/2024/04/25/react-19-upgrade-guide) with new warnings to help us identify issues **before upgrading to React 19**.\\n\\nDocusaurus v3 depends on React `18.x`. When initializing a new Docusaurus sites, it will use that new React `18.3` release. It\'s also the case if you decide to upgrade your dependencies, or re-generate your package manager lockfile.\\n\\nIt turns out in its current state, **Docusaurus had a few of those extra warnings to fix**, notably this one immediately appearing on your dev console on any page load and navigation:\\n\\n> Warning: LoadableComponent uses the legacy contextTypes API which is no longer supported and will be removed in the next major release. Use React.createContext() with static contextType instead.\\n\\nIn [#10079](https://github.com/facebook/docusaurus/pull/10079), we got Docusaurus ready for React 19. We fixed all the React 18.3 warnings we encountered. In case we missed any, don\'t hesitate to [**report new warnings**](https://github.com/facebook/docusaurus/issues/10099) if you see them, to us but also to other Docusaurus third-party plugin authors.\\n\\n### `createSitemapItems`\\n\\nIn [#10083](https://github.com/facebook/docusaurus/pull/10083), we introduced a new flexible `createSitemapItems()` hook to the sitemap plugin. This enables users to create/filter/transform/enhance the sitemap items with their own custom logic.\\n\\n```ts\\nexport default {\\n presets: [\\n [\\n \'@docusaurus/preset-classic\',\\n {\\n sitemap: {\\n // highlight-start\\n createSitemapItems: async ({\\n defaultCreateSitemapItems,\\n ...params\\n }) => {\\n const items = await defaultCreateSitemapItems(params);\\n return items.filter((item) => !item.url.includes(\'/tags/\'));\\n },\\n // highlight-end\\n },\\n },\\n ],\\n ],\\n};\\n```\\n\\n### Pages plugin improvements\\n\\nThe Docusaurus [pages plugin](/docs/api/plugins/@docusaurus/plugin-content-pages) has historically been lagging behind the docs and blog plugins in terms of available feature.\\n\\nIn [#10032](https://github.com/facebook/docusaurus/pull/10032) we normalized the options available on each core content plugins by adding a few the missing page plugins APIs related to the edit url and the last update metadata displayed at the bottom on Markdown pages.\\n\\n```js\\nexport default {\\n presets: [\\n [\\n \'@docusaurus/preset-classic\',\\n {\\n pages: {\\n // highlight-start\\n editUrl:\\n \'https://github.com/facebook/docusaurus/tree/main/website/src/pages\',\\n editLocalizedFiles: true,\\n showLastUpdateAuthor: true,\\n showLastUpdateTime: true,\\n // highlight-end\\n },\\n },\\n ],\\n ],\\n};\\n```\\n\\n<IframeWindow url=\\"/examples/markdownPageExample\\" />\\n\\n:::note Only for Markdown pages\\n\\nThese new plugin options only apply to Markdown pages, and have no effect on React pages for which you have full control over the layout with JSX.\\n\\n:::\\n\\n## Other changes\\n\\nOther notable changes include:\\n\\n- [#10064](https://github.com/facebook/docusaurus/pull/10064): new site config option `siteConfig.markdown.anchors.maintainCase`\\n- [#9767](https://github.com/facebook/docusaurus/pull/9767): new `docusaurus deploy --target-dir` option\\n- [#10042](https://github.com/facebook/docusaurus/pull/10042): new (experimental) plugin API: `route.props`\\n- [#10060](https://github.com/facebook/docusaurus/pull/10060): optimizes the App entrypoint, avoid useless re-renders on navigations\\n- [#10080](https://github.com/facebook/docusaurus/pull/10080): `<Admonition>` component can render properly without heading/icon\\n- [#10091](https://github.com/facebook/docusaurus/pull/10091): `<Tabs>` props can now override defaults\\n- [#10090](https://github.com/facebook/docusaurus/pull/10090): `docusaurus serve` works better with a `/baseUrl/` pathname prefix\\n- [#10070](https://github.com/facebook/docusaurus/pull/10070): add missing theme translations for `pt-BR`\\n- [#10025](https://github.com/facebook/docusaurus/pull/10025): doc sidebar item label now impacts the doc pagination label\\n\\nCheck the **[3.3.0 changelog entry](/changelog/3.3.0)** for an exhaustive list of changes."},{"id":"/releases/3.2","metadata":{"permalink":"/blog/releases/3.2","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.2/index.mdx","source":"@site/blog/releases/3.2/index.mdx","title":"Docusaurus 3.2","description":"We are happy to announce Docusaurus 3.2.","date":"2024-03-29T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.475,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.2","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-03-29T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 3.3","permalink":"/blog/releases/3.3"},"nextItem":{"title":"Docusaurus 3.1","permalink":"/blog/releases/3.1"}},"content":"We are happy to announce **Docusaurus 3.2**.\\n\\nThe upgrade should be easy: as explained in our [release process documentation](/community/release-process), minor versions respect [Semantic Versioning](https://semver.org/).\\n\\n![Docusaurus blog post social card](./img/social-card.png)\\n\\n<!--truncate-->\\n\\nimport BrowserWindow from \'@site/src/components/BrowserWindow\';\\nimport IframeWindow from \'@site/src/components/BrowserWindow/IframeWindow\';\\nimport ErrorBoundaryTestButton from \'@site/src/components/ErrorBoundaryTestButton\';\\n\\n## Highlights\\n\\n### Faster builds\\n\\nWe worked hard to reduce the time it takes to build a Docusaurus site in production mode.\\n\\nBetween v3.1.0 and v3.2.0, several changes have been made, leading to significantly faster production builds for many sites.\\n\\nLet\'s take an example. Our benchmark on the [React Native website upgrading to v3.2](https://github.com/facebook/react-native-website/pull/4072) reports the following results:\\n\\n- \u{1F525} Cold builds: 95s \u27A1\uFE0F 66s (~30% faster)\\n- \u{1F525} Incremental builds: 55s \u27A1\uFE0F 22s (~60% faster)\\n\\nThe results will vary depending on your site\'s topology and the options you turned on, but we expect the largest sites will see the most significant improvements.\\n\\nNote that this is only the beginning, and Docusaurus performance can still be significantly improved, notably the bundling time and the memory consumption. Track our [performance issue](https://github.com/facebook/docusaurus/issues/4765) for upcoming improvements.\\n\\n<details>\\n <summary>What is the difference between a cold build and an incremental build?</summary>\\n\\nA cold build is when the Docusaurus caches are empty, generally after running `docusaurus clear`.\\n\\nAn incremental build happens when you run another time the `docusaurus build` command. Docusaurus automatically tries to \\"re-use\\" computations from former builds to make subsequent builds faster. In practice it\'s based on [Webpack persistent caching](https://webpack.js.org/guides/build-performance/#persistent-cache). To enable incremental builds on your CI server, you can persist the `node_modules/.cache` folder across builds.\\n\\n</details>\\n\\n### Faster Dev Server\\n\\nWe also worked on improving the performance of the dev server, so that you can get a faster feedback when editing Markdown/MDX files.\\n\\nThe way we initially implemented content reloading wasn\'t great. For example, editing a blog post file would also trigger a useless reload of the unrelated docs plugin. From now on, when editing a plugin\'s content, only that plugin will reload. It\'s hard to measure precisely the impact of this change, but I estimate edits should appear in your browser at least 50% faster \u{1F525}.\\n\\nWe plan to keep improving the speed of our dev server, with even more granular hot reloads, ensuring we don\'t run useless computations that would always keep giving the same result.\\n\\n### MDX partials table-of-contents\\n\\nWith [#9684](https://github.com/facebook/docusaurus/pull/9684), Docusaurus is now able to render headings coming from an imported partial into the table-of-contents.\\n\\nDocusaurus and MDX allows you to [import one Markdown file into another](/docs/markdown-features/react#importing-markdown). We usually call the imported Markdown file a \\"partial\\", and use the `_` prefix so that this file does not lead to the creation of a new page.\\n\\n```md title=\\"myDoc.mdx\\"\\n# My Doc\\n\\n## Doc heading\\n\\nContent is imported from another MDX file:\\n\\nimport ImportedDoc from \'./\\\\_importedDoc.mdx\';\\n\\n<ImportedDoc />\\n```\\n\\n```md title=\\"_myPartial.mdx\\"\\n## Partial heading\\n\\nSome paragraph\\n```\\n\\nPreviously, the heading `Partial heading` did not appear in the table-of-contents, but now it will!\\n\\n### Blog improvements\\n\\nWe improved the blog plugin with several new options to make it even more powerful and flexible:\\n\\n- [#9912](https://github.com/facebook/docusaurus/pull/9912): you can now display the last update time and author of a blog post, a feature the docs plugin already had.\\n- [#9886](https://github.com/facebook/docusaurus/pull/9886): a new `processBlogPosts` option allow you to filter/transform/sort blog posts.\\n- [#9838](https://github.com/facebook/docusaurus/pull/9838): a new `pageBasePath` option allows you to customize the blog pagination URL segment (`/blog/page/2`)\\n\\n### Sitemap lastmod\\n\\nWith [#9954](https://github.com/facebook/docusaurus/pull/9954), the sitemap plugin has a new `lastmod` option that can now emit a `<lastmod>` tag on the XML. The value is read from the Git history by default, but can be overridden with docs and blog `last_update` front matter.\\n\\nWe also made it possible to opt-out of emitting `<priority>` and `<frequency>` tags, which are generally ignored by crawlers (notably [Google](https://developers.google.com/search/blog/2023/06/sitemaps-lastmod-ping)).\\n\\nWe recommend using the following sitemap plugin config, that will become the default in Docusaurus V4:\\n\\n```js\\n{\\n lastmod: \'date\',\\n priority: null,\\n changefreq: null,\\n}\\n```\\n\\n## Other changes\\n\\n- [#9687](https://github.com/facebook/docusaurus/pull/9687): new Vercel Analytics plugin\\n- [#9681](https://github.com/facebook/docusaurus/pull/9681) and [#9442](https://github.com/facebook/docusaurus/pull/9442): `docusaurus swizzle` and `create-docusaurus` CLIs now ask users if they prefer to use TypeScript\\n- [#9928](https://github.com/facebook/docusaurus/pull/9928): new Icelandic translation\\n- [#9928](https://github.com/facebook/docusaurus/pull/9931): new `allContentLoaded` plugin lifecycle (experimental)\\n\\nCheck the **[3.2.0 changelog entry](/changelog/3.2.0)** for an exhaustive list of changes."},{"id":"/releases/3.1","metadata":{"permalink":"/blog/releases/3.1","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.1/index.mdx","source":"@site/blog/releases/3.1/index.mdx","title":"Docusaurus 3.1","description":"We are happy to announce Docusaurus 3.1.","date":"2024-01-05T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":1.665,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.1","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-01-05T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 3.2","permalink":"/blog/releases/3.2"},"nextItem":{"title":"Announcing Docusaurus 3.0","permalink":"/blog/releases/3.0"}},"content":"We are happy to announce **Docusaurus 3.1**.\\n\\nThe upgrade should be easy: as explained in our [release process documentation](/community/release-process), minor versions respect [Semantic Versioning](https://semver.org/).\\n\\n![Docusaurus blog post social card](./img/social-card.png)\\n\\n<!--truncate-->\\n\\nimport BrowserWindow from \'@site/src/components/BrowserWindow\';\\nimport IframeWindow from \'@site/src/components/BrowserWindow/IframeWindow\';\\nimport ErrorBoundaryTestButton from \'@site/src/components/ErrorBoundaryTestButton\';\\n\\n## Highlights\\n\\n### Broken anchors checker\\n\\nIn [#9528](https://github.com/facebook/docusaurus/pull/9528), we improved the built-in broken links checker to also detect broken anchors.\\n\\n![Docusaurus blog post social card](./img/broken-anchor.jpg)\\n\\n:::tip[Make it fail fast]\\n\\nThe new [`onBrokenAnchors`](/docs/api/docusaurus-config#onBrokenAnchors) option has value `warn` by default, for retro-compatibility reasons.\\n\\nWe recommend to turn it to `throw` and fail your CI builds instead of deploying broken anchors to productions.\\n\\n:::\\n\\n:::note\\n\\nFor users and plugin authors implementing custom `<Heading>` and `<Link>` components, we provide a new [`useBrokenLinks`](/docs/docusaurus-core#useBrokenLinks) React hook API.\\n\\n**Most Docusaurus users don\'t need to care about it**, built-in components (`docusaurus/Link` and `@theme/Heading`) already use it internally.\\n\\n:::\\n\\n### `parseFrontMatter` hook\\n\\nIn [#9624](https://github.com/facebook/docusaurus/pull/9624), we added a new [`siteConfig.markdown.parseFrontMatter` function hook](/docs/api/docusaurus-config#markdown).\\n\\nThis makes it possible to implement convenient front matter transformations, shortcuts, or to integrate with external systems using front matter that Docusaurus plugins do not support.\\n\\n```js title=\\"docusaurus.config.js\\"\\nexport default {\\n markdown: {\\n // highlight-start\\n parseFrontMatter: async (params) => {\\n // Reuse the default parser\\n const result = await params.defaultParseFrontMatter(params);\\n\\n // Process front matter description placeholders\\n result.frontMatter.description =\\n result.frontMatter.description?.replaceAll(\'{{MY_VAR}}\', \'MY_VALUE\');\\n\\n // Create your own front matter shortcut\\n if (result.frontMatter.i_do_not_want_docs_pagination) {\\n result.frontMatter.pagination_prev = null;\\n result.frontMatter.pagination_next = null;\\n }\\n\\n // Rename an unsupported front matter coming from another system\\n if (result.frontMatter.cms_seo_summary) {\\n result.frontMatter.description = result.frontMatter.cms_seo_summary;\\n delete result.frontMatter.cms_seo_summary;\\n }\\n\\n return result;\\n },\\n // highlight-end\\n },\\n};\\n```\\n\\nRead the [front matter guide](/docs/markdown-features#front-matter) and the [`parseFrontMatter` API ref](/docs/api/docusaurus-config#markdown) for details.\\n\\n## Other changes\\n\\nOther notable changes include:\\n\\n- [#9674](https://github.com/facebook/docusaurus/pull/9674): add `siteConfig.markdown.remarkRehypeOptions` to pass options to `remark-rehype`, letting you customize things such as MDX footnote label\\n- [#9671](https://github.com/facebook/docusaurus/pull/9671): add code block MagicComments support for (Visual) Basic/Batch/Fortran/COBOL/ML\\n- [#9610](https://github.com/facebook/docusaurus/pull/9610): enable CLI port configuration via `PORT` environment variable\\n- [#9477](https://github.com/facebook/docusaurus/pull/9477): complete Brazilian Portuguese (pt-BR) translations\\n\\nCheck the **[3.1.0 changelog entry](/changelog/3.1.0)** for an exhaustive list of changes."},{"id":"/releases/3.0","metadata":{"permalink":"/blog/releases/3.0","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.0/index.mdx","source":"@site/blog/releases/3.0/index.mdx","title":"Announcing Docusaurus 3.0","description":"Today, we are happy to announce Docusaurus 3.0! \u{1F973}","date":"2023-10-31T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":10.515,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Announcing Docusaurus 3.0","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2023-10-31T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 3.1","permalink":"/blog/releases/3.1"},"nextItem":{"title":"Preparing your site for Docusaurus v3","permalink":"/blog/preparing-your-site-for-docusaurus-v3"}},"content":"Today, we are happy to **announce Docusaurus 3.0**! \u{1F973}\\n\\nAt [**Meta Open Source**](https://opensource.fb.com/), we believe Docusaurus will help you build the **best documentation websites** with **minimal effort**, letting you **focus on what really matters**: writing the content.\\n\\nThis is a new **major version** of Docusaurus, coming with **new exciting features** and upgraded dependencies.\\n\\nIn line with the [**Semantic Versioning**](https://semver.org/) principles, this release includes **breaking changes** we documented thoroughly in the [**v3 upgrade guide**](/docs/migration/v3/). Breaking changes can be bothersome, but they are necessary to set the ground for a **new wave of Docusaurus features** we plan to implement.\\n\\n![v3.0 social-card image](./img/social-card.png)\\n\\n{/* truncate */}\\n\\nWe initially planned to release more frequent major versions, but Docusaurus v3 has taken longer than expected. Among the breaking changes that we accrued, **upgrading to MDX v3** is probably the main challenge to the adoption of this new version. We went the extra mile to make this upgrade as easy as possible, notably by adding [compatibility options for MDX v1](/docs/api/docusaurus-config#markdown).\\n\\nThe simplest sites will only need to upgrade a few npm dependencies. For more complex sites, we came up with a few strategies that can help you upgrade more confidently:\\n\\n- [Prepare your site](/blog/preparing-your-site-for-docusaurus-v3) ahead of time, incrementally, while staying on Docusaurus v2\\n- [Set up visual regression tests](/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing) to catch unexpected visual changes happening during the upgrade\\n\\n:::info About Docusaurus v2\\n\\nAccording to our [release process](/community/release-process#stable-version), Docusaurus v2 has now entered **maintenance mode**. It will only receive support for major security issues for 3 months, until 31 January 2024. It is recommended to upgrade within that time frame to v3.\\n\\n:::\\n\\nimport IframeWindow from \'@site/src/components/BrowserWindow/IframeWindow\';\\n\\n## Breaking changes\\n\\nThis section only gives you a quick glance. All the breaking changes are thoroughly documented in the [**v3 upgrade guide**](/docs/migration/v3).\\n\\nDocusaurus v3 upgraded a few dependencies to new major versions, each coming with its own breaking changes:\\n\\n- Node.js v16 \u27A1\uFE0F v18\\n- React v17 \u27A1\uFE0F v18\\n- MDX v1 \u27A1\uFE0F v3\\n- TypeScript v4 \u27A1\uFE0F v5\\n- prism-react-renderer v1 \u27A1\uFE0F v2\\n- react-live v2 \u27A1\uFE0F v4\\n- Mermaid v9 \u27A1\uFE0F v10\\n- import-fresh v3 \u27A1\uFE0F jiti v1\\n- remark-emoji v2 \u27A1\uFE0F v4\\n\\nA typical `package.json` dependency upgrade looks like:\\n\\n```diff title=\\"package.json\\"\\n {\\n \\"dependencies\\": {\\n // upgrade to Docusaurus v3\\n- \\"@docusaurus/core\\": \\"2.4.3\\",\\n- \\"@docusaurus/preset-classic\\": \\"2.4.3\\",\\n+ \\"@docusaurus/core\\": \\"3.0.0\\",\\n+ \\"@docusaurus/preset-classic\\": \\"3.0.0\\",\\n // upgrade to MDX v3\\n- \\"@mdx-js/react\\": \\"^1.6.22\\",\\n+ \\"@mdx-js/react\\": \\"^3.0.0\\",\\n // upgrade to prism-react-renderer v2.0+\\n- \\"prism-react-renderer\\": \\"^1.3.5\\",\\n+ \\"prism-react-renderer\\": \\"^2.1.0\\",\\n // upgrade to React v18.0+\\n- \\"react\\": \\"^17.0.2\\",\\n- \\"react-dom\\": \\"^17.0.2\\"\\n+ \\"react\\": \\"^18.2.0\\",\\n+ \\"react-dom\\": \\"^18.2.0\\"\\n },\\n \\"devDependencies\\": {\\n // upgrade Docusaurus dev dependencies to v3\\n- \\"@docusaurus/module-type-aliases\\": \\"2.4.3\\",\\n- \\"@docusaurus/types\\": \\"2.4.3\\"\\n+ \\"@docusaurus/module-type-aliases\\": \\"3.0.0\\",\\n+ \\"@docusaurus/types\\": \\"3.0.0\\"\\n }\\n \\"engines\\": {\\n // require Node.js 18.0+\\n- \\"node\\": \\">=16.14\\"\\n+ \\"node\\": \\">=18.0\\"\\n }\\n }\\n```\\n\\nApart from MDX v3, most breaking changes coming with those upgraded dependencies have been handled internally for you: most of the time, you shouldn\'t have to do anything. Outside of dependencies, the only functional breaking changes coming explicitly from the Docusaurus codebase are:\\n\\n- [#9189](https://github.com/facebook/docusaurus/pull/9189): new default blog RSS feed limit of 20 entries\\n- [#9308](https://github.com/facebook/docusaurus/pull/9308): fix and re-introduce the `:::warning` admonition, deprecate `:::caution`\\n- [#9310](https://github.com/facebook/docusaurus/pull/9310): remove the legacy versioned sidebar id prefix, used for sites versioned before `v2.0.0-beta.10` (December 2021)\\n- [#7966](https://github.com/facebook/docusaurus/pull/7966): refactor docs theme components, eventually requiring to you re-swizzle them\\n\\n## Highlights\\n\\nBelow is a non-exhaustive list of new useful features coming with this new version. All the features are listed in the [**Docusaurus v3.0.0 release notes**](https://github.com/facebook/docusaurus/releases/tag/v3.0.0).\\n\\n### Markdown\\n\\nDocusaurus v3 upgraded from MDX v1 to MDX v3:\\n\\n- in [#8288](https://github.com/facebook/docusaurus/pull/8288), we upgraded to [**MDX v2**](https://mdxjs.com/blog/v2/) ([migration guide](https://mdxjs.com/migrating/v2/))\\n- in [#9451](https://github.com/facebook/docusaurus/pull/9451), we upgraded to [**MDX v3**](https://mdxjs.com/blog/v3/) ([migration guide](https://mdxjs.com/migrating/v3/))\\n\\nThis new MDX version is **much better for content writers and plugin authors**, and lays the ground for implementing new exciting Markdown features.\\n\\n:::warning MDX v3 - the main challenge\\n\\nThe transition from MDX v1 to MDX v3 is the **main challenge** to the adoption of Docusaurus v3.\\n\\nSome documents that compiled successfully under Docusaurus v2 might now **fail to compile** under Docusaurus v3, while others might **render differently**.\\n\\nMost breaking changes come from [MDX v2](https://mdxjs.com/blog/v2/), and [MDX v3](https://mdxjs.com/blog/v3/) is a relatively small release. The [MDX v2 migration guide](https://mdxjs.com/migrating/v2/) has a section on how to [update MDX files](https://mdxjs.com/migrating/v2/#update-mdx-files) that will be particularly relevant to us. Also make sure to read the [Troubleshooting MDX](https://mdxjs.com/docs/troubleshooting-mdx/) page that can help you interpret common MDX error messages.\\n\\n**Don\'t be intimidated**. Most problems are **easy to fix** and often related to `{` and `<` characters that you now need to escape. However, depending on the size of your site, you might need to edit many files and feel overwhelmed. For this reason, we provide a command [`npx docusaurus-mdx-checker`](https://github.com/slorber/docusaurus-mdx-checker) to help you get an estimate of the work to be done, and we recommend to [prepare your site in advance](/blog/preparing-your-site-for-docusaurus-v3).\\n\\nIf you created custom [MDX plugins](/docs/markdown-features/plugins) (Remark/Rehype), the AST is slightly different, and you might need to refactor them.\\n\\n:::\\n\\nThis notably enables us to add a [CommonMark mode](/docs/markdown-features#mdx-vs-commonmark) that should make it easier for existing documentations to adopt Docusaurus. It is currently opt-in and **experimental** and limited ([some Docusaurus features will not work](https://github.com/facebook/docusaurus/issues/9092)). In Docusaurus v3, all files are still interpreted as MDX, but we plan to interpret `.md` files as CommonMark in an upcoming major version, and recommend to use the `.mdx` extension for any file using JSX or ES modules.\\n\\nWe also introduced a new way to [configure Markdown globally for your site](/docs/api/docusaurus-config#markdown), and plan to add more flexible options later.\\n\\n```js title=\\"docusaurus.config.js\\"\\nexport default {\\n markdown: {\\n format: \'mdx\',\\n mermaid: true,\\n preprocessor: ({filePath, fileContent}) => {\\n return fileContent.replaceAll(\'{{MY_VAR}}\', \'MY_VALUE\');\\n },\\n mdx1Compat: {\\n comments: true,\\n admonitions: true,\\n headingIds: true,\\n },\\n },\\n};\\n```\\n\\nDocusaurus now uses the [remark-directive](https://github.com/remarkjs/remark-directive) plugin to support admonitions. This also offers you the ability to create your own Remark plugins to extend Markdown with your own [custom directives](https://talk.commonmark.org/t/generic-directives-plugins-syntax/444) such as `:textDirective`, `::leafDirective` or `:::containerDirective`.\\n\\n### ESM and TypeScript configs {#esm-ts-configs}\\n\\nIn [#9317](https://github.com/facebook/docusaurus/pull/9317), we added support for ES Modules and TypeScript config files, including site config, docs sidebars, plugins and presets.\\n\\nHere are 2 TypeScript examples, giving you a modern experience with IDE autocompletion:\\n\\n```ts title=\\"docusaurus.config.ts\\"\\nimport type {Config} from \'@docusaurus/types\';\\nimport type * as Preset from \'@docusaurus/preset-classic\';\\n\\nconst config: Config = {\\n title: \'My Site\',\\n favicon: \'img/favicon.ico\',\\n // your site config ...\\n presets: [\\n [\\n \'classic\',\\n {\\n // your preset config ...\\n } satisfies Preset.Options,\\n ],\\n ],\\n themeConfig: {\\n // your theme config ...\\n } satisfies Preset.ThemeConfig,\\n};\\n\\nexport default config;\\n```\\n\\n```ts title=\\"sidebars.ts\\"\\nimport type {SidebarsConfig} from \'@docusaurus/plugin-content-docs\';\\n\\nconst sidebars: SidebarsConfig = {\\n docs: [\'introduction\'],\\n};\\n\\nexport default sidebars;\\n```\\n\\n### Unlisted content\\n\\nDocusaurus already supported a `draft: true` front matter option in our 3 content plugins (docs, blog, pages), which allows you to remove some pages from your production builds.\\n\\nIn [#8004](https://github.com/facebook/docusaurus/pull/8004), we introduced a new `unlisted: true` front matter option, which will keep your pages available in production builds, while \\"hiding\\" them and making them impossible to discover unless you have the url. This enables convenient workflows where you can easily ask for feedback on a piece of content before the final publication.\\n\\nUnlisted content will:\\n\\n- be excluded from `sitemap.xml`\\n- be excluded from SEO results thanks to `<meta name=\\"robots\\" content=\\"noindex, nofollow\\" />`\\n- be excluded from blog RSS feeds\\n- be excluded from Algolia DocSearch results\\n- be filtered from site navbar items, docs sidebars, blog sidebar, blog archives, tags pages...\\n\\nUnlisted content will also display a banner so that you don\'t forget to turn it off once your content is ready for prime time. Here\'s an example of an [unlisted blog post](/tests/blog/unlisted-post):\\n\\n<IframeWindow url=\\"/tests/blog/unlisted-post\\" />\\n\\n### React 18\\n\\nIn [#8961](https://github.com/facebook/docusaurus/pull/8961), we upgraded to React 18. This is important, notably for the [gradual adoption of Concurrent React features](https://react.dev/blog/2022/03/29/react-v18#gradually-adopting-concurrent-features), as well as upcoming exciting features such as [build-time React Server Components](https://github.com/facebook/docusaurus/issues/9089).\\n\\nThis new version of React should be a drop-in replacement for most Docusaurus sites. It comes with breaking changes that we handled internally in the Docusaurus codebase. If your site is using a lot of custom React code, we recommend you to take a look at the official article on [How to Upgrade to React 18](https://react.dev/blog/2022/03/08/react-18-upgrade-guide), notably the new [automatic batching](https://react.dev/blog/2022/03/08/react-18-upgrade-guide#automatic-batching) behavior.\\n\\n:::danger Experimental support for React 18 features\\n\\nReact 18 comes with new features:\\n\\n- `<Suspense>`\\n- `React.lazy()`\\n- `startTransition()`\\n\\nTheir Docusaurus support is considered as **experimental**. We might have to adjust the integration in the future, leading to a different runtime behavior.\\n\\n:::\\n\\n### Automatic JSX runtime\\n\\nDocusaurus now uses the [\\"automatic\\" JSX runtime](https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html).\\n\\nIt is not needed anymore to import React in JSX files that do not use any React API.\\n\\n```diff title=\\"src/components/MyComponent.js\\"\\n- import React from \'react\';\\n\\n export default function MyComponent() {\\n return <div>Hello</div>;\\n }\\n```\\n\\n### Debug builds\\n\\nIt is now possible to build your static site in dev mode.\\n\\n```bash\\ndocusaurus build --dev\\n```\\n\\n:::tip Debug React-related problems\\n\\nDocusaurus will log more errors to the console, notably React 18 hydration errors through the new [`onRecoverableError` callback](https://react.dev/reference/react-dom/client/hydrateRoot#parameters).\\n\\nThis new build mode is particularly helpful for **troubleshooting React problems**. Docusaurus will use the development build of React, thus producing detailed and readable error messages instead of minified ones linking to the [React Error Decoder page](https://reactjs.org/docs/error-decoder.html/).\\n\\n:::\\n\\n### TypeScript\\n\\nDocusaurus v3 now requires a minimum version of TypeScript 5.0.\\n\\nWe re-internalized the base recommended TypeScript config to a new official package:\\n\\n```diff title=\\"tsconfig.json\\"\\n {\\n- \\"extends\\": \\"@tsconfig/docusaurus/tsconfig.json\\",\\n+ \\"extends\\": \\"@docusaurus/tsconfig\\",\\n \\"compilerOptions\\": {\\n \\"baseUrl\\": \\".\\"\\n }\\n }\\n```\\n\\nWe also have cleaner, normalized exports for Docusaurus core type, plugin, and preset options, which you can use within the brand-new [TypeScript config files](#esm-ts-configs):\\n\\n```ts title=\\"docusaurus.config.ts\\"\\nimport type {Config} from \'@docusaurus/types\';\\nimport type {Options, ThemeConfig} from \'@docusaurus/preset-classic\';\\nimport type {SidebarsConfig} from \'@docusaurus/plugin-content-docs\';\\n```\\n\\n### Code blocks\\n\\nIn [#9316](https://github.com/facebook/docusaurus/pull/9316), we improved on syntax highlighting thanks to the [prism-react-renderer](https://github.com/FormidableLabs/prism-react-renderer) v2 upgrade. For example, a bash param `--save` is now colored:\\n\\n```bash\\nnpm install --save some-package\\n```\\n\\nThe [interactive code editor](/docs/markdown-features/code-blocks#interactive-code-editor) also upgrades to [react-live](https://github.com/FormidableLabs/react-live) v4, coming with a new [sucrase](https://github.com/alangpierce/sucrase) compiler. It is faster, lighter, and supports modern features, notably TypeScript type annotations.\\n\\n```js live\\nfunction Hello() {\\n const name: string = \'World\';\\n return <div>Hello {name}</div>;\\n}\\n```\\n\\nIn [#8982](https://github.com/facebook/docusaurus/pull/8982) and [#8870](https://github.com/facebook/docusaurus/pull/8870), we also added [magic comments](/docs/markdown-features/code-blocks#custom-magic-comments) support for TeX-like, Haskell-like, and WebAssembly comment syntax.\\n\\n```haskell title=\\"haskell.hs\\"\\nstringLength :: String -> Int\\n-- highlight-next-line\\nstringLength [] = 0\\nstringLength (x:xs) = 1 + stringLength xs\\n```\\n\\n```matlab title=\\"matlab.m\\"\\n% highlight-start\\nfunction result = times2(n)\\n result = n * 2;\\nend\\n% highlight-end\\nx = 10;\\n% highlight-next-line\\ny = times2(x);\\n```\\n\\n### Mermaid diagrams\\n\\nIn [#9305](https://github.com/facebook/docusaurus/pull/9305), we upgraded to Mermaid v10.4 and added support for async diagram rendering. Docusaurus is now able to render new types of diagrams.\\n\\n<details>\\n <summary>Mindmap</summary>\\n\\n```mermaid\\nmindmap\\n root((mindmap))\\n Research\\n Creative techniques\\n Strategic planning\\n Argument mapping\\n Tools\\n Pen and paper\\n Mermaid\\n```\\n\\n</details>\\n\\n<details>\\n <summary>Quadrant chart</summary>\\n\\n```mermaid\\nquadrantChart\\n title Reach and engagement of campaigns\\n x-axis Low Reach --> High Reach\\n y-axis Low Engagement --> High Engagement\\n quadrant-1 We should expand\\n quadrant-2 Need to promote\\n quadrant-3 Re-evaluate\\n quadrant-4 May be improved\\n Campaign A: [0.3, 0.6]\\n Campaign B: [0.45, 0.23]\\n Campaign C: [0.57, 0.69]\\n Campaign D: [0.78, 0.34]\\n Campaign E: [0.40, 0.34]\\n Campaign F: [0.35, 0.78]\\n```\\n\\n</details>\\n\\n### Query-string data attributes\\n\\nIn [#9028](https://github.com/facebook/docusaurus/pull/9028), we made it possible to set custom HTML [data attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/data-*) though `docusaurus-data-x` query-string parameters. This makes it easier to embed a Docusaurus iframe on another site, and lets you customize the appearance of the embedded version with CSS.\\n\\n```css title=\\"/src/css/custom.css\\"\\nhtml[data-navbar=\'false\'] .navbar {\\n display: none;\\n}\\n\\nhtml[data-red-border] div#__docusaurus {\\n border: red solid thick;\\n}\\n```\\n\\n<IframeWindow url=\\"/docs/?docusaurus-data-navbar=false&docusaurus-data-red-border\\" />\\n\\n### Other features\\n\\nOther new features worth mentioning:\\n\\n- [#9189](https://github.com/facebook/docusaurus/pull/9189): new blog `feedOptions.limit` option\\n- [#9071](https://github.com/facebook/docusaurus/pull/9071): add normalized SEO front matter support for the pages plugin\\n- [#9171](https://github.com/facebook/docusaurus/pull/9028): the client-redirects plugin now supports fully qualified urls and query-string/hash in destination url\\n- [#9171](https://github.com/facebook/docusaurus/pull/9171): new ESLint rule [`no-html-links`](/docs/api/misc/@docusaurus/eslint-plugin/no-html-links)\\n- [#8384](https://github.com/facebook/docusaurus/pull/8384): new ESLint rule [`prefer-docusaurus-heading`](/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading)\\n\\nRead [**Docusaurus v3.0.0 release notes**](https://github.com/facebook/docusaurus/releases/tag/v3.0.0) for an exhaustive list of changes.\\n\\n## Conclusion\\n\\nThis release comes with a few features, but more importantly **upgrades many pieces of the Docusaurus infrastructure**.\\n\\nThe **MDX upgrade** consumed a lot of our time this year, and we worked hard to make this important upgrade less difficult for all of you.\\n\\nNow that we\'ve caught up with our infrastructure, we\'ll be back **delivering useful documentation features** very soon, in upcoming minor versions.\\n\\nWe would like to thank you for using Docusaurus over the years. The documentation framework space is becoming more competitive lately, and we will do our best to ensure that Docusaurus remains a **competitive solution** that stands out for its great **flexibility**."},{"id":"/preparing-your-site-for-docusaurus-v3","metadata":{"permalink":"/blog/preparing-your-site-for-docusaurus-v3","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2023/09-29-preparing-your-site-for-docusaurus-v3/index.mdx","source":"@site/blog/2023/09-29-preparing-your-site-for-docusaurus-v3/index.mdx","title":"Preparing your site for Docusaurus v3","description":"This blog post was written when Docusaurus v3 was in beta. There are some changes in dependency versions and upgrade steps you should be aware of if upgrading to Docusaurus v3 current stable releases. Use the upgrade guide for the most up-to-date migration steps.","date":"2023-09-29T00:00:00.000Z","tags":[{"inline":false,"label":"Maintenance","permalink":"/blog/tags/maintenance"}],"readingTime":13.975,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Preparing your site for Docusaurus v3","authors":["slorber"],"tags":["maintenance"],"slug":"/preparing-your-site-for-docusaurus-v3","image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Announcing Docusaurus 3.0","permalink":"/blog/releases/3.0"},"nextItem":{"title":"Upgrading frontend dependencies with confidence","permalink":"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing"}},"content":":::warning\\n\\nThis blog post was written when Docusaurus v3 was in beta. There are some changes in dependency versions and upgrade steps you should be aware of if upgrading to Docusaurus v3 current stable releases. Use the [upgrade guide](https://docusaurus.io/docs/next/migration/v3) for the most up-to-date migration steps.\\n\\n:::\\n\\n**Docusaurus v3** is now [**in beta**](https://github.com/facebook/docusaurus/discussions/9312) and the official release is around the corner. This is the perfect time to start **preparing your site** for this new major version.\\n\\nDocusaurus v3 comes with a few **breaking changes**, many of which can be **handled today under Docusaurus v2**. Preparing your site ahead of time can be done incrementally, and will make it easier to upgrade to v3.\\n\\nThe main breaking change is the upgrade from MDX v1 to MDX v3. Read the [**MDX v2**](https://mdxjs.com/blog/v2/) and [**MDX v3**](https://mdxjs.com/blog/v3/) release notes for details. MDX will now compile your Markdown content **more strictly** and with **subtle differences**.\\n\\nThis article will mostly focus on how to prepare your content for this new MDX version, and will also list a few other breaking changes that you can handle today.\\n\\n![Preparing your site for Docusaurus v3 - social card](./img/social-card.png)\\n\\n<!--truncate-->\\n\\n:::warning\\n\\nThis article mentions most Docusaurus v3 breaking changes, but is not exhaustive. Read the [v3.0.0-beta.0 release notes](https://github.com/facebook/docusaurus/discussions/9312) for an exhaustive list.\\n\\n:::\\n\\n:::tip Don\'t be afraid\\n\\nThere\'s a lot of content in this blog post, but many Docusaurus v2 sites can upgrade with very few changes.\\n\\nIf your site is relatively small, with only a few customizations, you can probably [upgrade to Docusaurus v3](#try-docusaurus-v3-today) immediately.\\n\\n:::\\n\\n## Preparatory work\\n\\nBefore preparing for the Docusaurus v3 upgrade, we recommend upgrading to the latest [Docusaurus v2 version](/versions).\\n\\nDepending on the complexity of your site, it may be a good idea to adopt the [visual regression testing workflow](/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing) that we recently presented. It could help you catch unexpected visual side effects occurring during the Docusaurus v3 upgrade.\\n\\nWe also recommend using the `.mdx` extension whenever you use JSX, `import`, or `export` (i.e. MDX features) inside a Markdown file. It is semantically more correct and improves compatibility with external tools (IDEs, formatters, linters, etc.). In future versions of Docusaurus, `.md` files will be parsed as standard [CommonMark](https://commonmark.org/), which does not support these features. In Docusaurus v3, `.md` files keep being compiled as MDX files, but it will be possible to [opt-in for CommonMark](https://github.com/facebook/docusaurus/issues/3018).\\n\\n## Preparing content for MDX v3\\n\\nMDX is a major dependency of Docusaurus responsible for compiling your `.md` and `.mdx` files to React components.\\n\\nMDX v3 is much better, but also comes with changes that probably require you to refactor your content a bit. MDX v3 is stricter, and some components that compiled fine under v1 might now fail to compile under v3, most likely because of `{` and `<` characters.\\n\\nUpgrading MDX comes with all the breaking changes documented on the [MDX v2](https://mdxjs.com/blog/v2/) and [MDX v3](https://mdxjs.com/blog/v3/) release blog posts. Most breaking changes come from MDX v2. The [MDX v2 migration guide](https://mdxjs.com/migrating/v2/) has a section on how to [update MDX files](https://mdxjs.com/migrating/v2/#update-mdx-files) that will be particularly relevant to us. Also make sure to read the [Troubleshooting MDX](https://mdxjs.com/docs/troubleshooting-mdx/) page that can help you interpret common MDX error messages.\\n\\nMake sure to also read our updated [**MDX and React**](/docs/markdown-features/react) documentation page.\\n\\n:::tip Ask for help\\n\\nWe have a dedicated [MDX v3 - Upgrade Support](https://github.com/facebook/docusaurus/discussions/9053) discussion.\\n\\n:::\\n\\n### Using the MDX playground\\n\\nThe MDX playground is your new best friend. It permits to understand how your content is **compiled to React components**, and troubleshoot compilation or rendering issues in isolation.\\n\\nEach MDX version comes with its own playground:\\n\\n- [MDX playground - current version](https://mdxjs.com/playground/)\\n- [MDX playground - v1](https://mdx-git-renovate-babel-monorepo-mdx.vercel.app/playground/)\\n\\n<details>\\n <summary>Configuring the MDX playground options for Docusaurus</summary>\\n\\nTo obtain a compilation behavior similar to what Docusaurus v2 uses, please turn on these options on the [MDX playground](https://mdxjs.com/playground/):\\n\\n- Use `MDX`\\n- Use `remark-gfm`\\n- Use `remark-directive`\\n\\n![Screenshot of the MDX playground\'s options panel, with only the \\"Use `MDX`\\", \\"Use `remark-gfm`\\", and \\"Use `remark-directive`\\" options checked](./img/mdx2-playground-options.png)\\n\\n</details>\\n\\nUsing the two MDX playgrounds side-by-side, you will soon notice that some content is compiled differently or fails to compile in v3.\\n\\n:::tip Making your content future-proof\\n\\nThe goal will be to refactor your problematic content so that it **works fine with both versions of MDX**. This way, when you upgrade to Docusaurus v3, this content will already work out-of-the-box.\\n\\n:::\\n\\n### Using the MDX checker CLI\\n\\nWe provide a [docusaurus-mdx-checker](https://github.com/slorber/docusaurus-mdx-checker) CLI that permits to easily spot problematic content. Run this command today on your Docusaurus v2 site to obtain a list of files that will fail to compile under MDX v3.\\n\\n```bash\\nnpx docusaurus-mdx-checker\\n```\\n\\nFor each compilation issue, the CLI will log the file path and a line number to look at.\\n\\n![Screenshot of the terminal showing an example MDX checker CLI output, with a few error messages](./img/mdx-checker-output.png)\\n\\n:::tip\\n\\nUse this CLI to estimate of how much work will be required to make your content compatible with MDX v3.\\n\\n:::\\n\\n:::warning\\n\\nThis CLI is a best effort, and will only report compilation errors.\\n\\nIt will not report subtle compilation changes that do not produce errors but can affect how your content is displayed. To catch these problems, we recommend using [visual regression tests](/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing).\\n\\n:::\\n\\n### Common MDX problems\\n\\nWe upgraded a few Docusaurus sites to Docusaurus v3 and MDX v3:\\n\\n- [Docusaurus PR](https://github.com/facebook/docusaurus/pull/8288)\\n- [React-Native PR](https://github.com/facebook/react-native-website/pull/3780)\\n- [Jest PR](https://github.com/jestjs/jest/pull/14463)\\n\\nThese upgrades permitted us to aggregate the most common content problems, and document how to best handle them.\\n\\n#### Bad usage of `{`\\n\\nThe `{` character is used for opening [JavaScript expressions](https://mdxjs.com/docs/what-is-mdx/#expressions). MDX will now fail if what you put inside `{expression}` is not a valid expression.\\n\\n```md title=\\"example.md\\"\\nThe object shape looks like {username: string, age: number}\\n```\\n\\n:::danger Error message\\n\\n> Could not parse expression with acorn: Unexpected content after expression\\n\\n:::\\n\\n:::tip How to prepare\\n\\nAvailable options to fix this error:\\n\\n- Use inline code: `{username: string, age: number}`\\n- Use the HTML code: `{`\\n- Escape it: `\\\\{`\\n\\n:::\\n\\n#### Bad usage of `<`\\n\\nThe `<` character is used for opening [JSX tags](https://mdxjs.com/docs/what-is-mdx/#jsx). MDX will now fail if it thinks your JSX is invalid.\\n\\n```md title=\\"example.md\\"\\nUse Android version <5\\n\\nYou can use a generic type like Array<T>\\n\\nFollow the template \\"Road to <YOUR_MINOR_VERSION>\\"\\n```\\n\\n:::danger Error messages\\n\\n> Unexpected character `5` (U+0035) before name, expected a character that can start a name, such as a letter, `$`, or `_`\\n\\n> Expected a closing tag for `<T>` (1:6-1:9) before the end of `paragraph` end-tag-mismatch mdast-util-mdx-jsx\\n\\n> Expected a closing tag for `<YOUR_MINOR_VERSION>` (134:19-134:39) before the end of `paragraph`\\n\\n:::\\n\\n:::tip How to prepare\\n\\nAvailable options to fix this error:\\n\\n- Use inline code: `Array<T>`\\n- Use the HTML code: `<` or `<`\\n- Escape it: `\\\\<` (unfortunately the `\\\\` will be displayed under MDX v1)\\n\\n:::\\n\\n#### Bad usage of GFM Autolink\\n\\nDocusaurus supports [GitHub Flavored Markdown (GFM)](https://github.github.com/gfm/), but [autolink](https://github.github.com/gfm/#autolinks) using the `<link>` syntax is not supported anymore by MDX.\\n\\n```md title=\\"example.md\\"\\n<sebastien@thisweekinreact.com>\\n\\n<http://localhost:3000>\\n```\\n\\n:::danger Error messages\\n\\n> Unexpected character `@` (U+0040) in name, expected a name character such as letters, digits, `$`, or `_`; whitespace before attributes; or the end of the tag (note: to create a link in MDX, use `[text](url)`)\\n\\n> Unexpected character `/` (U+002F) before local name, expected a character that can start a name, such as a letter, `$`, or `_` (note: to create a link in MDX, use `[text](url)`)\\n\\n:::\\n\\n:::tip How to prepare\\n\\nUse regular Markdown links, or remove the `<` and `>`. MDX and GFM are able to autolink literals already.\\n\\n{/* prettier-ignore */}\\n```md title=\\"example.md\\"\\nsebastien@thisweekinreact.com\\n[sebastien@thisweekinreact.com](mailto:sebastien@thisweekinreact.com)\\n\\nhttp://localhost:3000\\n[http://localhost:3000](http://localhost:3000)\\n```\\n\\n:::\\n\\n#### Lower-case MDXComponent mapping\\n\\nFor users providing a [custom `MDXComponent`mapping](/docs/markdown-features/react#mdx-component-scope), components are now \\"sandboxed\\":\\n\\n- a `MDXComponent` mapping for `h1` only gets used for `# hi` but not for `<h1>hi</h1>`\\n- a **lower-cased** custom element name will not be substituted by its respective `MDXComponent` component anymore\\n\\n:::danger visual difference\\n\\nYour [`MDXComponent` component mapping](/docs/markdown-features/react#mdx-component-scope) might not be applied as before, and your custom components might no longer be used.\\n\\n:::\\n\\n:::tip How to prepare\\n\\nFor native Markdown elements, you can keep using **lower-case**: `p`, `h1`, `img`, `a`...\\n\\nFor any other element, **use upper-case names**.\\n\\n```diff title=\\"src/theme/MDXComponents.js\\"\\n import MDXComponents from \'@theme-original/MDXComponents\';\\n\\n export default {\\n ...MDXComponents,\\n p: (props) => <p {...props} className=\\"my-paragraph\\"/>\\n- myElement: (props) => <div {...props} className=\\"my-class\\" />,\\n+ MyElement: (props) => <div {...props} className=\\"my-class\\" />,\\n };\\n```\\n\\n:::\\n\\n#### Unintended extra paragraphs\\n\\nIn MDX, it is now possible to interleave JSX and Markdown more easily without requiring extra line breaks. Writing content on multiple lines can also produce new expected `<p>` tags.\\n\\n:::danger visual difference\\n\\nSee how this content is rendered differently by MDX v1 and v3.\\n\\n```md title=\\"example.md\\"\\n<div>Some **Markdown** content</div>\\n<div>\\n Some **Markdown** content\\n</div>\\n```\\n\\n{/* prettier-ignore */}\\n```html title=\\"MDX v1 output\\"\\n<div>Some **Markdown** content</div>\\n<div>Some **Markdown** content</div>\\n```\\n\\n{/* prettier-ignore */}\\n```html title=\\"MDX v3 output\\"\\n<div>Some <strong>Markdown</strong> content</div>\\n<div><p>Some <strong>Markdown</strong> content</p></div>\\n```\\n\\n:::\\n\\n:::tip How to prepare\\n\\nIf you don\'t want an extra `<p>` tag, refactor content on a case by case basis to use a single-line JSX tag.\\n\\n```diff\\n <figure>\\n <img src=\\"/img/myImage.png\\" alt=\\"My alt\\" />\\n- <figcaption>\\n- My image caption\\n- </figcaption>\\n+ <figcaption>My image caption</figcaption>\\n </figure>\\n```\\n\\nIf your content contains \\"Markdown inlines\\" (`**`, `*`, `_`, `[link](/path)`), you might not be able to refactor it ahead of time, and will have to do it alongside the Docusaurus v3 upgrade.\\n\\n:::\\n\\n#### Unintended usage of directives\\n\\nDocusaurus v3 now uses [Markdown Directives](https://talk.commonmark.org/t/generic-directives-plugins-syntax/444) (implemented with [remark-directive](https://github.com/remarkjs/remark-directive)) as a generic way to provide support for admonitions, and other upcoming Docusaurus features.\\n\\n```md title=\\"example.md\\"\\nThis is a :textDirective\\n\\n::leafDirective\\n\\n:::containerDirective\\n\\nContainer directive content\\n\\n:::\\n```\\n\\n:::danger Visual change\\n\\nDirectives are parsed with the purpose of being handled by other Remark plugins. Unhandled directives will be ignored, and won\'t be rendered back in their original form.\\n\\n```md title=\\"example.md\\"\\nThe AWS re:Invent conf is great\\n```\\n\\nDue to `:Invent` being parsed as a text directive, this will now be rendered as:\\n\\n```\\nThe AWS re\\nconf is great\\n```\\n\\n:::\\n\\n:::tip How to prepare\\n\\n- Use the HTML code: `:`\\n- Add a space after `:` (if it makes sense): `: text`\\n- Escape it: `\\\\:` (unfortunately the `\\\\` will be displayed under MDX v1)\\n\\n:::\\n\\n#### Unsupported indented code blocks\\n\\nMDX does not transform indented text as code blocks anymore.\\n\\n```md title=\\"example.md\\"\\n console.log(\\"hello\\");\\n```\\n\\n:::danger Visual change\\n\\nThe upgrade does not generally produce new MDX compilation errors, but can lead to content being rendered in an unexpected way because there isn\'t a code block anymore.\\n\\n:::\\n\\n:::tip How to prepare\\n\\nUse the regular code block syntax instead of indentation:\\n\\n````md title=\\"example.md\\"\\n```js\\nconsole.log(\'hello\');\\n```\\n````\\n\\n:::\\n\\n### MDX plugins\\n\\nAll the official packages (Unified, Remark, Rehype...) in the MDX ecosystem are now [**ES Modules only**](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c) and do not support [CommonJS](https://nodejs.org/api/modules.html#modules-commonjs-modules) anymore.\\n\\nIn practice this means that you can\'t do `require(\\"remark-plugin\\")` anymore.\\n\\n:::tip How to prepare\\n\\nDocusaurus v3 now supports [**ES Modules**](https://flaviocopes.com/es-modules/) configuration files. We recommend that you migrate your config file to ES module, that enables you to import the Remark plugins easily:\\n\\n```js title=\\"docusaurus.config.js\\"\\nimport remarkPlugin from \'remark-plugin\';\\n\\nexport default {\\n title: \'Docusaurus\',\\n /* site config using remark plugins here */\\n};\\n```\\n\\nIf you want to keep using CommonJS modules, you can use dynamic imports as a workaround that enables you to import ES modules inside a CommonJS module. Fortunately, the [Docusaurus config supports the usage of an async function](/docs/configuration#syntax-to-declare-docusaurus-config) to let you do so.\\n\\n```js title=\\"docusaurus.config.js\\"\\nmodule.exports = async function () {\\n const myPlugin = (await import(\'remark-plugin\')).default;\\n return {\\n // site config...\\n };\\n};\\n```\\n\\n:::\\n\\n:::info For plugin authors\\n\\nIf you created custom Remark or Rehype plugins, you may need to refactor those, or eventually rewrite them completely, due to how the new AST is structured. We have created a [dedicated support discussion](https://github.com/facebook/docusaurus/discussions/9337) to help plugin authors upgrade their code.\\n\\n:::\\n\\n## Other breaking changes\\n\\nApart from MDX, there are other breaking changes that you can already prepare your site for, notably major version upgrades of important dependencies.\\n\\n### Node.js 18.0\\n\\nNode.js 16 [reached End-of-Life](https://nodejs.org/en/blog/announcements/nodejs16-eol), and Docusaurus v3 now requires **Node.js >= 18.0**.\\n\\n:::tip How to prepare\\n\\nUpgrade your Docusaurus v2 site to Node.js 18 before upgrading to Docusaurus v3.\\n\\n:::\\n\\n### React 18.0\\n\\nDocusaurus v3 now requires **React >= 18.0**.\\n\\nReact 18 comes with its own breaking changes that should be relatively easy to handle, depending on the amount of custom React code you created for your site.\\n\\nSimple Docusaurus sites that only use our official theme code without swizzling do not have anything to do.\\n\\n:::tip How to prepare\\n\\nRead the official [React v18.0](https://react.dev/blog/2022/03/29/react-v18) and [How to Upgrade to React 18](https://react.dev/blog/2022/03/08/react-18-upgrade-guide), and look at your first-party React code to figure out which components might be affected this React 18 upgrade.\\n\\nWe recommend to particularly look for:\\n\\n- Automatic batching for stateful components\\n- New React hydration errors reported to the console\\n\\n:::\\n\\n### TypeScript 5.0\\n\\nDocusaurus v3 now requires **TypeScript >= 5.0**.\\n\\n:::tip How to prepare\\n\\nUpgrade your Docusaurus v2 site to TypeScript 5 before upgrading to Docusaurus v3.\\n\\n:::\\n\\n### TypeScript base config\\n\\nThe official Docusaurus TypeScript config has been re-internalized from the external package [`@tsconfig/docusaurus`](https://www.npmjs.com/package/@tsconfig/docusaurus) to our new monorepo package [`@docusaurus/tsconfig`](https://www.npmjs.com/package/@docusaurus/tsconfig).\\n\\nThis new package is versioned alongside all the other Docusaurus core packages, and will be used to ensure TypeScript retro-compatibility and breaking changes on major version upgrades.\\n\\n:::tip How to prepare\\n\\nThe new Docusaurus v3 TypeScript config is sensibly the same as the former Docusaurus v2 TypeScript config. If you upgraded to TypeScript 5, using the Docusaurus v3 config on a v2 site is already possible:\\n\\n```diff title=\\"package.json\\"\\n {\\n \\"devDependencies\\": {\\n- \\"@tsconfig/docusaurus\\": \\"^1.0.7\\",\\n+ \\"@docusaurus/tsconfig\\": \\"^3.0.0-beta.0\\",\\n }\\n }\\n```\\n\\n```diff title=\\"tsconfig.json\\"\\n {\\n- \\"extends\\": \\"@tsconfig/docusaurus/tsconfig.json\\",\\n+ \\"extends\\": \\"@docusaurus/tsconfig\\",\\n \\"compilerOptions\\": {\\n \\"baseUrl\\": \\".\\"\\n }\\n }\\n```\\n\\n:::\\n\\n### Admonition warning\\n\\nFor historical reasons, we support an undocumented admonition `:::warning` that renders with a red color.\\n\\n:::danger Warning\\n\\nThis is a Docusaurus v2 `:::warning` admonition.\\n\\n:::\\n\\nHowever, the color and icon is historically wrong. Docusaurus v3 re-introduces `:::warning` admonition officially, documents it, and fix the color and icon.\\n\\n:::warning\\n\\nThis is a Docusaurus v3 `:::warning` admonition.\\n\\n:::\\n\\n:::tip How to prepare\\n\\nIf you previously used the undocumented `:::warning` admonition, make sure to verify for each usage if yellow is now an appropriate color. If you want to keep the red color, use `:::danger` instead.\\n\\nDocusaurus v3 also [deprecated the `:::caution`](https://github.com/facebook/docusaurus/pull/9308) admonition. Please refactor `:::caution` (yellow) to either `:::warning` (yellow) or `:::danger` (red).\\n\\n:::\\n\\n### Versioned sidebars\\n\\nThis breaking change will only affect **Docusaurus v2 early adopters** who versioned their docs before `v2.0.0-beta.10` (December 2021).\\n\\nWhen creating version `v1.0.0`, the sidebar file contained a prefix `version-v1.0.0/` that [Docusaurus v3 does not support anymore](https://github.com/facebook/docusaurus/pull/9310).\\n\\n```json title=\\"versioned_sidebars/version-v1.0.0-sidebars.json\\"\\n{\\n \\"version-v1.0.0/docs\\": [\\n \\"version-v1.0.0/introduction\\",\\n \\"version-v1.0.0/prerequisites\\"\\n ]\\n}\\n```\\n\\n:::tip How to prepare\\n\\nYour Docusaurus v2 site is able to handle the 2 sidebar formats similarly.\\n\\nYou can remove the useless versioned prefix from your versioned sidebars.\\n\\n```json title=\\"versioned_sidebars/version-v1.0.0-sidebars.json\\"\\n{\\n \\"docs\\": [\\"introduction\\", \\"prerequisites\\"]\\n}\\n```\\n\\n:::\\n\\n## Try Docusaurus v3 today {#try-docusaurus-v3-today}\\n\\nDocusaurus v3 is now [in beta](https://github.com/facebook/docusaurus/discussions/9312), and already used in production by [React-Native](https://reactnative.dev), [Jest](https://jestjs.io), and [our own website](https://docusaurus.io/).\\n\\nWe think this new Docusaurus version is **robust and ready to be deployed in production**. It should be released officially soon, after receiving a positive feedback from early adopters of our community.\\n\\nWe would really appreciate it if you try upgrading and report issues on the [3.0.0-beta.0 release discussion thread](https://github.com/facebook/docusaurus/discussions/9312).\\n\\nFor most sites, the upgrade should be easy. If you prepared your site ahead of time as documented here, upgrading the following dependencies should be enough:\\n\\n```diff title=\\"package.json\\"\\n {\\n \\"dependencies\\": {\\n- \\"@docusaurus/core\\": \\"2.4.3\\",\\n- \\"@docusaurus/preset-classic\\": \\"2.4.3\\",\\n- \\"@mdx-js/react\\": \\"^1.6.22\\",\\n+ \\"@docusaurus/core\\": \\"3.0.0-beta.0\\",\\n+ \\"@docusaurus/preset-classic\\": \\"3.0.0-beta.0\\",\\n+ \\"@mdx-js/react\\": \\"^3.0.0\\",\\n \\"clsx\\": \\"^2.0.0\\",\\n \\"prism-react-renderer\\": \\"^1.3.5\\",\\n- \\"react\\": \\"^17.0.2\\",\\n- \\"react-dom\\": \\"^17.0.2\\"\\n+ \\"react\\": \\"^18.2.0\\",\\n+ \\"react-dom\\": \\"^18.2.0\\"\\n },\\n \\"devDependencies\\": {\\n- \\"@docusaurus/module-type-aliases\\": \\"2.4.3\\"\\n+ \\"@docusaurus/module-type-aliases\\": \\"3.0.0-beta.0\\"\\n }\\n }\\n```\\n\\n## Ask for help\\n\\nWe will be there to help you upgrade through the following support channels:\\n\\n- [Docusaurus v3 - Upgrade Support](https://github.com/facebook/docusaurus/discussions/9336)\\n- [Docusaurus v3 - Discord channel #migration-v2-to-v3](https://discord.com/channels/398180168688074762/1154771869094912090)\\n- [MDX v3 - Upgrade Support](https://github.com/facebook/docusaurus/discussions/9053)\\n- [MDX v3 - Remark/Rehype Plugins Support](https://github.com/facebook/docusaurus/discussions/9337)\\n- [MDX v3 - Discord channel #migration-mdx-v3](https://discord.com/channels/398180168688074762/1116724556976111616)\\n\\nAlternatively, you can look for a paid [Docusaurus Service Provider](https://github.com/facebook/docusaurus/discussions/9281) to execute this upgrade for you. If your site is open source, you can also ask our community for [free, benevolent help](https://github.com/facebook/docusaurus/discussions/9283).\\n\\n## Conclusion\\n\\nDocusaurus v3 is ready to try, and will be released soon. This article already gives you a good idea of all the major changes required to upgrade.\\n\\nThe initial 3.0 release is focusing on dependency and infrastructure upgrades that will permit us to implement new exciting features. It also comes with a few useful features that we will detail in the final release notes."},{"id":"/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing","metadata":{"permalink":"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2023/09-22-upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing/index.mdx","source":"@site/blog/2023/09-22-upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing/index.mdx","title":"Upgrading frontend dependencies with confidence","description":"Upgrade npm dependencies with confidence thanks to a visual regression testing workflow using GitHub Actions, Playwright and Argos.","date":"2023-09-22T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":8.355,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"authors":["slorber"],"tags":["release"],"slug":"/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing","description":"Upgrade npm dependencies with confidence thanks to a visual regression testing workflow using GitHub Actions, Playwright and Argos.","image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Preparing your site for Docusaurus v3","permalink":"/blog/preparing-your-site-for-docusaurus-v3"},"nextItem":{"title":"Docusaurus 2.4","permalink":"/blog/releases/2.4"}},"content":"Frontend developers often need to **upgrade npm dependencies**, but those upgrades can feel scary and lead to **subtle UI side effects** not caught by your regular test suite.\\n\\nUpgrading Docusaurus is a good example: without reviewing all the pages one by one, it\'s hard to be sure there\'s no visual regression. **Docusaurus v3 is around the corner** (currently in [beta](https://github.com/facebook/docusaurus/discussions/9312)), and we would like to help you do this upgrade with confidence.\\n\\nThis article introduces a **visual regression testing** workflow based on [**GitHub Actions**](https://github.com/features/actions), [**Playwright**](https://playwright.dev/), and [**Argos**](https://argos-ci.com/). It is not directly coupled to Docusaurus or React, and can be adapted to work with other frontend applications and frameworks.\\n\\n![Upgrading frontend dependencies with confidence - social card](./img/social-card.png)\\n\\n<!--truncate-->\\n\\nThis workflow has been tested while upgrading Docusaurus v2 to v3, and already helped catch a few visual regressions on sites such as [React Native](https://reactnative.dev/), [Jest](https://jestjs.io/), and the [Docusaurus](https://docusaurus.io/) site itself.\\n\\nDocusaurus v3 comes with infrastructure changes and major dependency upgrades such as [MDX v3](https://mdxjs.com/blog/v3/) and [React 18](https://react.dev/blog/2022/03/29/react-v18), which can produce unexpected side effects. It would have been difficult to notice all the visual regressions without such a workflow. That\'s why we encourage site owners to consider adopting visual regression testing, especially for highly customized sites.\\n\\n## Workflow overview\\n\\nThe general idea is pretty simple:\\n\\n- Build your site in CI with [GitHub Actions](https://github.com/features/actions)\\n- Take screenshots of all `sitemap.xml` pages with [Playwright](https://playwright.dev/)\\n- Upload them to [Argos](https://argos-ci.com/)\\n- Do this for both Git branches `main` and `pr-branch`\\n- Compare the screenshots side-by-side in [Argos](https://argos-ci.com/)\\n\\nArgos will then **report visual differences** found between `main` and `pr-branch` as a GitHub commit status and pull-request comment. This can help you detect visual regressions ahead of time in an automated way.\\n\\n![Argos GitHub commit status](./img/argos-github-status.png)\\n\\n![Argos GitHub PR comment](./img/argos-github-comment.png)\\n\\nArgos creates a report referencing all the visual differences found while comparing the 2 Git branches sites side-by-side, and provides a convenient UX to easily spot the difference.\\n\\nCheck the [Docusaurus Argos page](https://app.argos-ci.com/meta-open-source/docusaurus) to explore our own website reports.\\n\\nHere is a more concrete example of Argos [reporting a visual regression](https://app.argos-ci.com/slorber/rnw-visual-tests/builds/32/56012838) found while upgrading the React-Native website:\\n\\n[![Argos GitHub PR comment](./img/argos-react-native-regression.png)](https://app.argos-ci.com/slorber/rnw-visual-tests/builds/32/56012838)\\n\\n## Workflow implementation\\n\\nThis section will describe the implementation details of each step of the workflow.\\n\\nYou will need to [sign up to Argos](https://app.argos-ci.com/signup) and [connect Argos to your GitHub repository](https://argos-ci.com/docs/github)\\n\\n### Dependencies\\n\\nThis workflow requires the following dev dependencies, in addition to the usual Docusaurus ones:\\n\\n```bash\\nyarn add -D @argos-ci/cli @argos-ci/playwright @playwright/test cheerio\\n```\\n\\n### GitHub Action\\n\\nThe GitHub action is responsible for executing the workflow for each Git branch.\\n\\nA minimal workflow could look like:\\n\\n```yaml title=\\".github/workflows/argos.yml\\"\\nname: Argos CI Screenshots\\n\\non:\\n push:\\n branches: [main]\\n pull_request:\\n branches: [main]\\n\\njobs:\\n take-screenshots:\\n runs-on: ubuntu-latest\\n steps:\\n - name: Check out repository code\\n uses: actions/checkout@v4\\n\\n - name: Use Node.js\\n uses: actions/setup-node@v3\\n with:\\n node-version: current\\n\\n - name: Install dependencies\\n run: yarn install --frozen-lockfile\\n\\n - name: Install Playwright browsers\\n run: yarn playwright install --with-deps chromium\\n\\n - name: Build the website\\n run: yarn docusaurus build\\n\\n - name: Take screenshots with Playwright\\n run: yarn playwright test\\n\\n - name: Upload screenshots to Argos\\n run: yarn argos upload ./screenshots\\n```\\n\\n### Playwright config\\n\\nPlaywright is responsible for taking screenshots of the website previously built locally by the GitHub action.\\n\\nA minimal [Playwright config](https://playwright.dev/docs/test-configuration) could look like:\\n\\n```ts title=\\"playwright.config.ts\\"\\nimport {devices} from \'@playwright/test\';\\nimport type {PlaywrightTestConfig} from \'@playwright/test\';\\n\\nconst config: PlaywrightTestConfig = {\\n webServer: {\\n port: 3000,\\n command: \'yarn docusaurus serve\',\\n },\\n projects: [\\n {\\n name: \'chromium\',\\n use: {\\n ...devices[\'Desktop Chrome\'],\\n },\\n },\\n ],\\n};\\n\\nexport default config;\\n```\\n\\n### Playwright test\\n\\nA Playwright config is not enough: we also need to write a Playwright test file to generate the site screenshots.\\n\\n```ts title=\\"screenshot.spec.ts\\"\\nimport * as fs from \'fs\';\\nimport {test} from \'@playwright/test\';\\nimport {argosScreenshot} from \'@argos-ci/playwright\';\\nimport {extractSitemapPathnames, pathnameToArgosName} from \'./utils\';\\n\\n// Constants\\nconst siteUrl = \'http://localhost:3000\';\\nconst sitemapPath = \'./build/sitemap.xml\';\\nconst stylesheetPath = \'./screenshot.css\';\\nconst stylesheet = fs.readFileSync(stylesheetPath).toString();\\n\\n// Wait for hydration, requires Docusaurus v2.4.3+\\n// Docusaurus adds a <html data-has-hydrated=\\"true\\"> once hydrated\\n// See https://github.com/facebook/docusaurus/pull/9256\\nfunction waitForDocusaurusHydration() {\\n return document.documentElement.dataset.hasHydrated === \'true\';\\n}\\n\\nfunction screenshotPathname(pathname: string) {\\n test(`pathname ${pathname}`, async ({page}) => {\\n const url = siteUrl + pathname;\\n await page.goto(url);\\n await page.waitForFunction(waitForDocusaurusHydration);\\n await page.addStyleTag({content: stylesheet});\\n await argosScreenshot(page, pathnameToArgosName(pathname));\\n });\\n}\\n\\ntest.describe(\'Docusaurus site screenshots\', () => {\\n const pathnames = extractSitemapPathnames(sitemapPath);\\n console.log(\'Pathnames to screenshot:\', pathnames);\\n pathnames.forEach(screenshotPathname);\\n});\\n```\\n\\n<details>\\n <summary>Why do we take screenshots with Argos instead of Playwright?</summary>\\n\\nArgos has a [Playwright integration](https://argos-ci.com/docs/playwright) that wraps the original Playwright screenshot API and provides better defaults to make screenshots more deterministic.\\n\\n</details>\\n\\n<details>\\n<summary>What\'s inside <code>utils.ts</code>?</summary>\\n\\nThis module contains implementation details that we choose to hide for clarity.\\n\\n```ts\\nimport * as cheerio from \'cheerio\';\\nimport * as fs from \'fs\';\\n\\n// Extract a list of pathnames, given a fs path to a sitemap.xml file\\n// Docusaurus generates a build/sitemap.xml file for you!\\nexport function extractSitemapPathnames(sitemapPath: string): string[] {\\n const sitemap = fs.readFileSync(sitemapPath).toString();\\n const $ = cheerio.load(sitemap, {xmlMode: true});\\n const urls: string[] = [];\\n $(\'loc\').each(function handleLoc() {\\n urls.push($(this).text());\\n });\\n return urls.map((url) => new URL(url).pathname);\\n}\\n\\n// Converts a pathname to a decent screenshot name\\nexport function pathnameToArgosName(pathname: string): string {\\n return pathname.replace(/^\\\\/|\\\\/$/g, \'\') || \'index\';\\n}\\n```\\n\\n</details>\\n\\n### Stylesheet\\n\\nScreenshots are not always deterministic, and taking a screenshot of a page twice can lead to subtle variations that will be reported by Argos as **false positive** visual regressions.\\n\\nFor this reason, we recommend injecting an extra stylesheet to hide the problematic elements. You will probably need to add new CSS rules to this base stylesheet, according to flaky elements found on your own site. Read [Argos - About flaky tests docs](https://argos-ci.com/docs/about-flaky) for details.\\n\\n```css title=\\"screenshot.css\\"\\n/* Iframes can load lazily */\\niframe,\\n/* Avatars can be flaky due to using external sources: GitHub/Unavatar */\\n.avatar__photo,\\n/* Gifs load lazily and are animated */\\nimg[src$=\'.gif\'],\\n/* Algolia keyboard shortcuts appear with a little delay */\\n.DocSearch-Button-Keys > kbd,\\n/* The live playground preview can often display dates/counters */\\n[class*=\'playgroundPreview\'] {\\n visibility: hidden;\\n}\\n\\n/* Different docs last-update dates can alter layout */\\n.theme-last-updated,\\n/* Mermaid diagrams are rendered client-side and produce layout shifts */\\n.docusaurus-mermaid-container {\\n display: none;\\n}\\n```\\n\\n:::tip prevent layout shifts\\n\\nWe recommend hiding flaky UI elements affecting layout with `display: none;`.\\n\\nFor example, the docs \\"Last Updated on\\" might render on more than 1 line, eventually \\"pushing\\" the rest of your content further down, leading to Argos detecting many different pixels.\\n\\n:::\\n\\n## Example repository\\n\\nThe [slorber/docusaurus-argos-example](https://github.com/slorber/docusaurus-argos-example) repo shows a complete example of implementing this workflow on a newly initialized Docusaurus v2 site, using a Yarn monorepo.\\n\\n[![Docusaurus + Argos monorepo example screenshot](./img/docusaurus-argos-example-repo-screenshot.png)](https://github.com/slorber/docusaurus-argos-example)\\n\\nRelevant pull-requests:\\n\\n- [PR - Set up GitHub Action + Playwright + Argos](https://github.com/slorber/docusaurus-argos-example/pull/1): implements the minimal workflow described above\\n- [PR - Upgrading Docusaurus from v2 to v3](https://github.com/slorber/docusaurus-argos-example/pull/2): shows how Argos caught 3 visual regressions while upgrading\\n\\n:::tip More advanced example?\\n\\nBrowse the Docusaurus repository for a more advanced integration:\\n\\n- [GitHub Action](https://github.com/facebook/docusaurus/blob/main/.github/workflows/argos.yml)\\n- [Playwright + Argos tests](https://github.com/facebook/docusaurus/tree/main/argos)\\n\\n:::\\n\\n## Make it cheap\\n\\nThe tools we choose are implementation details of this visual regression testing workflow.\\n\\nFor Docusaurus, we choose [Argos](https://argos-ci.com/): it works well for us, and offers [free](https://argos-ci.com/pricing) and [open source](https://argos-ci.com/docs/open-source) plans. However, you are free to adopt alternative tools.\\n\\nIn case you don\'t mind storing large screenshots in Git, you can also try the free, self-hosted [Playwright Visual Comparisons](https://playwright.dev/docs/test-snapshots) and browse visual differences with `npx playwright show-report`. However, we found using a dedicated external tool is more convenient.\\n\\nExternal tools can be expensive, but generally offer free plans with an ample quota of screenshots. You can reduce your screenshot consumption by implementing a few tricks below.\\n\\n### Limit the number of pathnames\\n\\nThe base setup involves taking a screenshot of every single pathname found in `sitemap.xml`. For large sites, that can lead to a lot of screenshots.\\n\\nYou can decide to filter the pathnames to only take screenshots of the most critical pages.\\n\\nFor the Docusaurus website, do not take screenshots for versioned docs pages:\\n\\n```ts title=\\"screenshot.spec.ts\\"\\n// highlight-start\\nfunction isVersionedDocsPathname(pathname: string): boolean {\\n return pathname.match(/^\\\\/docs\\\\/((\\\\d\\\\.\\\\d\\\\.\\\\d)|(next))\\\\//);\\n}\\n// highlight-end\\n\\ntest.describe(\'Docusaurus site screenshots\', () => {\\n const pathnames = extractSitemapPathnames(sitemapPath)\\n // highlight-next-line\\n .filter(isVersionedDocsPathname);\\n\\n pathnames.forEach(screenshotPathname);\\n});\\n```\\n\\n### Limit the workflow concurrency\\n\\nImplementing [GitHub Actions concurrency groups](https://docs.github.com/en/actions/using-jobs/using-concurrency) will prevent successive commits to trigger multiple useless workflow runs. The workflow will only be executed for the last commit, and previous commits will be canceled automatically.\\n\\n```yaml title=\\".github/workflows/argos.yml\\"\\nconcurrency:\\n group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}\\n cancel-in-progress: true\\n```\\n\\n### Run your workflow conditionally\\n\\nIt\'s not worth running this workflow for every single commit and pull-request.\\n\\nFor example, if someone corrects a typo in your documentation, you probably don\'t want to take hundreds of screenshots and have Argos to point out that only the modified page has a visual difference: duh, that\'s a bit expected!\\n\\nFor the Docusaurus website, we only run the workflow for pull-request having the `Argos` label:\\n\\n```yaml title=\\".github/workflows/argos.yml\\"\\nname: Argos CI Screenshots\\n\\non:\\n push:\\n branches: [main]\\n pull_request:\\n branches: [main]\\n # highlight-start\\n types:\\n - opened\\n - synchronize\\n - reopened\\n - labeled\\n # highlight-end\\n\\njobs:\\n take-screenshots:\\n # highlight-start\\n if: ${{ github.ref_name == \'main\' || (github.event_name == \'pull_request\' && contains(github.event.pull_request.labels.*.name, \'Argos\')) }}\\n # highlight-end\\n runs-on: ubuntu-latest\\n steps:\\n # Your job steps here ...\\n```\\n\\nThere are many options to explore, such as [triggering the workflow manually](https://docs.github.com/en/actions/using-workflows/manually-running-a-workflow) or [only when files matching a specific pattern are modified](https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#example-including-paths).\\n\\n## Conclusion\\n\\nI believe **visual regression testing is underused** in the frontend ecosystem.\\n\\nTaking full-page screenshots is a **low-hanging fruit** that is easy to set up and can help you **catch a new class of bugs** that your regular test suite would miss. This technique shines not only for npm package upgrades, but also for **any kind of refactoring** that shouldn\'t change the user interface.\\n\\nSo why not give it a try?\\n\\nHappy hacking!\\n\\n## See also\\n\\nUseful documentation links:\\n\\n- [Playwright - Installation](https://playwright.dev/docs/intro)\\n- [Playwright - Test config guide](https://playwright.dev/docs/test-configuration)\\n- [Playwright - Test config API](https://playwright.dev/docs/api/class-testconfig)\\n- [Argos - Installation](https://argos-ci.com/docs/installation)\\n- [Argos - Use with GitHub Actions](https://argos-ci.com/docs/github-actions)\\n- [Argos - Use with Playwright](https://argos-ci.com/docs/playwright)\\n- [Argos - About flaky tests](https://argos-ci.com/docs/about-flaky)"},{"id":"/releases/2.4","metadata":{"permalink":"/blog/releases/2.4","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/2.4/index.mdx","source":"@site/blog/releases/2.4/index.mdx","title":"Docusaurus 2.4","description":"We are happy to announce Docusaurus 2.4.","date":"2023-03-23T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.05,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.4","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2023-03-23T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Upgrading frontend dependencies with confidence","permalink":"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing"},"nextItem":{"title":"Docusaurus 2.3","permalink":"/blog/releases/2.3"}},"content":"We are happy to announce **Docusaurus 2.4**.\\n\\nThe upgrade should be easy: as explained in our [release process documentation](/community/release-process), minor versions respect [Semantic Versioning](https://semver.org/).\\n\\n![Docusaurus blog post social card](./img/social-card.png)\\n\\n<!--truncate-->\\n\\nimport BrowserWindow from \'@site/src/components/BrowserWindow\';\\nimport IframeWindow from \'@site/src/components/BrowserWindow/IframeWindow\';\\nimport ErrorBoundaryTestButton from \'@site/src/components/ErrorBoundaryTestButton\';\\n\\n## Highlights\\n\\n### Sidebar item description\\n\\nIn [#8236](https://github.com/facebook/docusaurus/pull/8236), we made it possible to provide a new `description` attribute for docs sidebar items of type `link` and `category`.\\n\\n```tsx title=\\"sidebars.js\\"\\n[\\n {\\n type: \'link\',\\n label: \'Link with description\',\\n href: \'https://docusaurus.io\',\\n // highlight-next-line\\n description: \'Some link description\',\\n },\\n {\\n type: \'category\',\\n label: \'Category with description\',\\n // highlight-next-line\\n description: \'Some category description\',\\n items: [],\\n },\\n];\\n```\\n\\nThese descriptions will be used in category generated index pages.\\n\\n![Show sidebar category generated index with custom descriptions](./img/sidebar-item-description.jpg)\\n\\n### Theme Query String\\n\\nIn [#8708](https://github.com/facebook/docusaurus/pull/8708), we added the possibility to force Docusaurus to initialize itself in `light` or `dark` mode through a new `docusaurus-theme` query-string parameter.\\n\\nThis is useful to ensure a consistent theme when embedding an existing Docusaurus page into an iframe or WebView.\\n\\n<IframeWindow url=\\"/docs/?docusaurus-theme=light\\" />\\n<IframeWindow url=\\"/docs/?docusaurus-theme=dark\\" />\\n\\n### Remark plugin npm2yarn upgrade\\n\\nIn [#8690](https://github.com/facebook/docusaurus/pull/8690), we upgraded our Remark plugin [@docusaurus/remark-plugin-npm2yarn](https://github.com/facebook/docusaurus/tree/main/packages/docusaurus-remark-plugin-npm2yarn) with many conversion bug fixes, first-class support for pnpm, and the ability to register custom converters producing new tabs.\\n\\n````markdown\\nRun these commands!\\n\\n```bash npm2yarn\\nnpm install\\nnpm run build\\nnpm run myCustomScript -- --some-arg\\n```\\n````\\n\\n<BrowserWindow>\\n\\n```bash npm2yarn\\nnpm install\\nnpm run build\\nnpm run myCustomScript -- --some-arg\\n```\\n\\n</BrowserWindow>\\n\\n### gtag support for multiple tracking IDs\\n\\nIn [#8620](https://github.com/facebook/docusaurus/pull/8620) we added support for the [@docusaurus/plugin-google-gtag](/docs/api/plugins/@docusaurus/plugin-google-gtag) plugin to declare multiple tracking IDs.\\n\\n```js title=\\"docusaurus.config.js\\"\\nmodule.exports = {\\n presets: [\\n [\\n \'@docusaurus/preset-classic\',\\n {\\n gtag: {\\n trackingID: [\\n // highlight-next-line\\n \'G-<YOUR-NEW-GA4-ID>\',\\n // highlight-next-line\\n \'UA-<YOUR-OLD-UA-ID>\',\\n ],\\n },\\n },\\n ],\\n ],\\n};\\n```\\n\\n:::warning Google is sunsetting Universal Analytics\\n\\n**[Google will sunset its Universal Analytics](https://blog.google/products/marketingplatform/analytics/prepare-for-future-with-google-analytics-4/)** on **July 1, 2023**.\\n\\nDocusaurus users should migrate to Google Analytics 4. Google **does not permit to migrate your existing Universal Analytics data** to your new Google Analytics 4 property.\\n\\nTo preserve the continuity of your analytics, we temporarily recommend that you report events to 2 tracking IDs at the same time: the old one (`UA-*`) and new one (`G-*`). Refer to the **[dedicated issue](https://github.com/facebook/docusaurus/issues/7221)** for details.\\n\\n:::\\n\\n### Developer Experience\\n\\nIn [#8736](https://github.com/facebook/docusaurus/pull/8736), we improved how we render error messages and added initial support to render the full causal chain of an error (see [ES2022 Error Cause](https://h3manth.com/ES2022/#error-cause)).\\n\\n:::tip\\n\\nTo see it in action, click here: <ErrorBoundaryTestButton cause=\\"Probably undefined is not a function \u{1F604}\\"/>\\n\\n:::\\n\\nIn [#8735](https://github.com/facebook/docusaurus/pull/8735) we also made navbar-related error messages clearer to help users understand what they did wrong.\\n\\n![Docusaurus navbar error message screenshot](./img/navbar-error.jpg)\\n\\n### Translations\\n\\nWe made it possible to translate some new elements:\\n\\n- [#8677](https://github.com/facebook/docusaurus/pull/8677) introduces a new `process.env.DOCUSAURUS_CURRENT_LOCALE` (experimental) allowing you to localize your config file, including site title, tagline, announcement bar, baseUrl...\\n- [#8616](https://github.com/facebook/docusaurus/pull/8616) allows to translate the navbar and footer logo alt text\\n\\nWe added default theme translation support for multiple languages:\\n\\n- \u{1F1ED}\u{1F1FA} [#8668](https://github.com/facebook/docusaurus/pull/8668): Hungarian\\n- \u{1F1F3}\u{1F1F4} [#8631](https://github.com/facebook/docusaurus/pull/8631): Norwegian (Bokm\xe5l)\\n\\n:::tip\\n\\nCompleting theme translations is an [ongoing effort](https://github.com/facebook/docusaurus/issues/3526) and an easy way to contribute to Docusaurus. We add new theme features regularly, for which we often [need new translations](https://github.com/facebook/docusaurus/issues/3526).\\n\\n:::\\n\\n## Other changes\\n\\nOther notable changes include:\\n\\n- [#8674](https://github.com/facebook/docusaurus/pull/8674): respect `prefers-reduced-motion: reduce` media query\\n- [#8712](https://github.com/facebook/docusaurus/pull/8712): use a navbar item of type `docSidebar` in template\\n- [#8801](https://github.com/facebook/docusaurus/pull/8801): allow tabs children to be falsy\\n- [#8757](https://github.com/facebook/docusaurus/pull/8757): make search page react to external query-string changes\\n- [#8803](https://github.com/facebook/docusaurus/pull/8803): fix code block buttons position in RTL\\n- [#8615](https://github.com/facebook/docusaurus/pull/8615): fix color mode toggle when using dark navbar\\n- [#8699](https://github.com/facebook/docusaurus/pull/8699): fix navbar dropdown tab focus bug\\n\\nCheck the **[2.4.0 changelog entry](/changelog/2.4.0)** for an exhaustive list of changes."},{"id":"/releases/2.3","metadata":{"permalink":"/blog/releases/2.3","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/2.3/index.mdx","source":"@site/blog/releases/2.3/index.mdx","title":"Docusaurus 2.3","description":"We are happy to announce Docusaurus 2.3.","date":"2023-01-27T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":2.89,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.3","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2023-01-27T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 2.4","permalink":"/blog/releases/2.4"},"nextItem":{"title":"Docusaurus 2.2","permalink":"/blog/releases/2.2"}},"content":"We are happy to announce **Docusaurus 2.3**.\\n\\nThe upgrade should be easy: as explained in our [release process documentation](/community/release-process), minor versions respect [Semantic Versioning](https://semver.org/).\\n\\n![Docusaurus 2.2 social card](./img/social-card.png)\\n\\n<!--truncate-->\\n\\n## Highlights\\n\\n### Google Tag Manager plugin\\n\\nGoogle Tag Manager is a tag management system that allows great flexibility. It enables analytics and marketing teams to easily load other third-party trackers and fire analytics tags.\\n\\nWe now have a [`@docusaurus/plugin-google-tag-manager`](/docs/api/plugins/@docusaurus/plugin-google-tag-manager/) package that you can use alongside or as an alternative to the existing [gtag.js plugin](/docs/api/plugins/@docusaurus/plugin-google-gtag/) (refer to [this doc](https://support.google.com/tagmanager/answer/7582054) to understand when to use which solution).\\n\\n:::warning Google is sunsetting Universal Analytics\\n\\n[Google will sunset its Universal Analytics](https://blog.google/products/marketingplatform/analytics/prepare-for-future-with-google-analytics-4/) on **July 1, 2023**, and ask users to migrate to **Google Analytics 4**.\\n\\nTherefore, we are also **deprecating our existing [`@docusaurus/plugin-google-analytics`](/docs/api/plugins/@docusaurus/plugin-google-analytics)** package. Docusaurus users should create a new Google Analytics 4 property, and migrate to the [gtag.js plugin](/docs/api/plugins/@docusaurus/plugin-google-gtag/), or the [Google Tag Manager plugin](/docs/api/plugins/@docusaurus/plugin-google-tag-manager/). Refer to the [dedicated Docusaurus issue](https://github.com/facebook/docusaurus/issues/7221) for details and questions.\\n\\n:::\\n\\n### Tabs Query String Support\\n\\nIt is now possible to link a selected tab to a query string parameter. When a tab is selected, it will be stored in your browser URL as a `?qs-param=tab-value` search parameter.\\n\\nThis feature allows deep-linking to a specific documentation tab that will pre-selected on page load.\\n\\nWhen used alongside the `groupId` prop, the query string tab value takes precedence over the `localStorage` value.\\n\\nMake sure to check the [documentation](/docs/markdown-features/tabs#query-string) and the demo below to understand how it works:\\n\\nimport BrowserWindow from \'@site/src/components/BrowserWindow\';\\nimport Tabs from \'@theme/Tabs\';\\nimport TabItem from \'@theme/TabItem\';\\n\\n```tsx\\n<Tabs groupId=\\"current-os\\" queryString>\\n <TabItem value=\\"android\\" label=\\"Android\\">\\n Android\\n </TabItem>\\n <TabItem value=\\"ios\\" label=\\"iOS\\">\\n iOS\\n </TabItem>\\n</Tabs>\\n```\\n\\n<BrowserWindow>\\n <Tabs groupId=\\"current-os\\" queryString>\\n <TabItem value=\\"android\\" label=\\"Android\\">\\n Android\\n </TabItem>\\n <TabItem value=\\"ios\\" label=\\"iOS\\">\\n iOS\\n </TabItem>\\n </Tabs>\\n</BrowserWindow>\\n\\n### Nested admonitions\\n\\nIt is now possible to nest one admonition within another by adding extra colons for the outer/enclosing admonition:\\n\\n```md\\n::::tip nested admonitions\\n\\nYou can now nest one admonition within another!\\n\\n:::danger\\n\\nUse this sparingly when it makes sense.\\n\\n:::\\n\\n::::\\n```\\n\\n::::tip nested admonitions\\n\\nYou can now nest one admonition within another!\\n\\n:::danger\\n\\nUse this sparingly when it makes sense.\\n\\n:::\\n\\n::::\\n\\n### Blog `createFeedItems`\\n\\nA new blog plugin option [`feedOptions.createFeedItems`](/docs/api/plugins/@docusaurus/plugin-content-blog/#CreateFeedItemsFn) gives you more control over the RSS/Atom feed generation. It is now possible to transform/filter/limit feed items through a new callback.\\n\\n```tsx title=\\"docusaurus.config.js\\"\\n[\\n \'@docusaurus/preset-classic\',\\n {\\n blog: {\\n feedOptions: {\\n // highlight-start\\n createFeedItems: async (params) => {\\n const {blogPosts, defaultCreateFeedItems, ...rest} = params;\\n return defaultCreateFeedItems({\\n // keep only the 10 most recent blog posts in the feed\\n blogPosts: blogPosts.filter((item, index) => index < 10),\\n ...rest,\\n });\\n },\\n // highlight-end\\n },\\n },\\n },\\n];\\n```\\n\\n### Translations\\n\\nWe added or completed the default theme translation support for multiple languages:\\n\\n- \u{1F1F8}\u{1F1EE} [#8541](https://github.com/facebook/docusaurus/pull/8541) Slovenian\\n- \u{1F1F9}\u{1F1F7} [#8289](https://github.com/facebook/docusaurus/pull/8289) Turkish\\n- \u{1F1EE}\u{1F1F7} [#8406](https://github.com/facebook/docusaurus/pull/8406) Farsi\\n- \u{1F1F5}\u{1F1F1} [#8525](https://github.com/facebook/docusaurus/pull/8525) Polish\\n- \u{1F1E8}\u{1F1F3} [#8423](https://github.com/facebook/docusaurus/pull/8423) Chinese\\n- \u{1F1F8}\u{1F1EA} [#8312](https://github.com/facebook/docusaurus/pull/8312) Swedish\\n- \u{1F1FB}\u{1F1F3} [#8450](https://github.com/facebook/docusaurus/pull/8450) Vietnamese\\n\\n:::tip\\n\\nCompleting theme translations is an [ongoing effort](https://github.com/facebook/docusaurus/issues/3526) and an easy way to contribute to Docusaurus. We add new theme features regularly, for which we often [need new translations](https://github.com/facebook/docusaurus/issues/3526).\\n\\n:::\\n\\n## Other changes\\n\\nOther notable changes include:\\n\\n- [#8463](https://github.com/facebook/docusaurus/pull/8463) and [#8328](https://github.com/facebook/docusaurus/pull/8328): fix some annoying Docusaurus layout issues\\n- [#8539](https://github.com/facebook/docusaurus/pull/8539): Algolia plugin `options.searchPagePath` should be correctly applied to search modal footer\\n- [#8462](https://github.com/facebook/docusaurus/pull/8462): Algolia plugin now makes it easier to transform displayed search results with custom logic\\n- [#8397](https://github.com/facebook/docusaurus/pull/8397): the `deploy` CLI now understands git url `insteadOf` config\\n\\nCheck the **[2.3.0 changelog entry](/changelog/2.3.0)** for an exhaustive list of changes."},{"id":"/releases/2.2","metadata":{"permalink":"/blog/releases/2.2","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/2.2/index.mdx","source":"@site/blog/releases/2.2/index.mdx","title":"Docusaurus 2.2","description":"We are happy to announce Docusaurus 2.2.","date":"2022-10-29T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":2.2,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.2","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2022-10-29T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 2.3","permalink":"/blog/releases/2.3"},"nextItem":{"title":"Docusaurus 2.1","permalink":"/blog/2022/09/01/docusaurus-2.1"}},"content":"We are happy to announce **Docusaurus 2.2**.\\n\\nThe upgrade should be easy: as explained in our [release process documentation](/community/release-process), minor versions respect [Semantic Versioning](https://semver.org/).\\n\\n![Docusaurus 2.2 social card](./img/social-card.png)\\n\\n{/* truncate */}\\n\\n## Highlights\\n\\n### Mermaid diagrams\\n\\nIn [#7490](https://github.com/facebook/docusaurus/pull/7490), we added support for Mermaid diagrams. This fills the gap between GitHub Flavored Markdown which also [added support recently](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/). You can create Mermaid diagrams using Markdown code blocks:\\n\\n````md\\n```mermaid\\nsequenceDiagram\\n participant Alice\\n participant Bob\\n Alice->>John: Hello John, how are you?\\n loop Health check\\n John->>John: Fight against hypochondria\\n end\\n Note right of John: Rational thoughts <br/>prevail!\\n John-->>Alice: Great!\\n John->>Bob: How about you?\\n Bob-->>John: Jolly good!\\n```\\n````\\n\\n````mdx-code-block\\nimport BrowserWindow from \'@site/src/components/BrowserWindow\';\\n\\n<BrowserWindow>\\n\\n```mermaid\\nsequenceDiagram\\n participant Alice\\n participant Bob\\n Alice->>John: Hello John, how are you?\\n loop Health check\\n John->>John: Fight against hypochondria\\n end\\n Note right of John: Rational thoughts <br/>prevail!\\n John-->>Alice: Great!\\n John->>Bob: How about you?\\n Bob-->>John: Jolly good!\\n```\\n\\n</BrowserWindow>\\n\\n````\\n\\nMake sure to check the [documentation](/docs/markdown-features/diagrams), and the [more advanced examples](/tests/pages/diagrams)\\n\\n### Config `headTags`\\n\\nIn [#8151](https://github.com/facebook/docusaurus/pull/8151), we added the ability to apply arbitrary HTML `<head>` tags to all pages of your site.\\n\\n```js title=\\"docusaurus.config.js\\"\\nmodule.exports = {\\n headTags: [\\n {\\n tagName: \'link\',\\n attributes: {\\n rel: \'icon\',\\n href: \'/img/docusaurus.png\',\\n },\\n },\\n ],\\n};\\n```\\n\\n### Accessibility\\n\\nWe did several accessibility improvements:\\n\\n- [#8207](https://github.com/facebook/docusaurus/pull/8207): improves keyboard navigation for mobile drawer hamburger button\\n- [#8161](https://github.com/facebook/docusaurus/pull/8161): improves keyboard navigation for tabs\\n- [#8204](https://github.com/facebook/docusaurus/pull/8204): makes the skip to content button support progressive enhancement\\n- [#8174](https://github.com/facebook/docusaurus/pull/8174): improves screen reader announcement when toggling between light/dark mode\\n\\n### Developer Experience\\n\\nWe made validation stricter and improved error messages:\\n\\n- [#8234](https://github.com/facebook/docusaurus/pull/8234): in case of doc processing failure, prints the problematic markdown file path in the error message\\n- [#8192](https://github.com/facebook/docusaurus/pull/8192) and [#8159](https://github.com/facebook/docusaurus/pull/8159): validates `siteConfig.url` more strictly and with better error message\\n- [#8066](https://github.com/facebook/docusaurus/pull/8066): makes config `url` and `baseUrl` fail-safe and less sensitive to the presence or absence of a leading or trailing slash\\n\\n### Translations\\n\\nWe completed the default theme translation support for multiple languages:\\n\\n- \u{1F1F9}\u{1F1F7} [#8105](https://github.com/facebook/docusaurus/pull/8105): completes Turkish translations\\n- \u{1F1F7}\u{1F1FA} [#8253](https://github.com/facebook/docusaurus/pull/8253): completes Russian translations\\n- \u{1F1EB}\u{1F1F7} [#8243](https://github.com/facebook/docusaurus/pull/8243): completes French translations\\n- \u{1F1EF}\u{1F1F5} [#8075](https://github.com/facebook/docusaurus/pull/8075): completes Japanese translations\\n\\n:::tip\\n\\nCompleting theme translations is an [ongoing effort](https://github.com/facebook/docusaurus/issues/3526) and an easy way to contribute to Docusaurus. We add new theme features regularly, for which we often [need new translations](https://github.com/facebook/docusaurus/issues/3526).\\n\\n:::\\n\\n## Other changes\\n\\nOther notable changes include:\\n\\n- [#8210](https://github.com/facebook/docusaurus/pull/8210): the `docusaurus swizzle` CLI has a new `--config` option\\n- [#8109](https://github.com/facebook/docusaurus/pull/8109): mobile navigation performance optimizations, prefetch resources earlier\\n- [#8059](https://github.com/facebook/docusaurus/pull/8059): versions/locales navbar dropdowns preserve hash and querystring on navigation\\n- [#8227](https://github.com/facebook/docusaurus/pull/8227): the client redirect plugin preserves hash and querystring on redirect\\n\\nCheck the **[2.2.0 changelog entry](/changelog/2.2.0)** for an exhaustive list of changes."},{"id":"/2022/09/01/docusaurus-2.1","metadata":{"permalink":"/blog/2022/09/01/docusaurus-2.1","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2022/09-01-docusaurus-2.1/index.mdx","source":"@site/blog/2022/09-01-docusaurus-2.1/index.mdx","title":"Docusaurus 2.1","description":"We are happy to announce Docusaurus 2.1, our very first minor version release.","date":"2022-09-01T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":1.725,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.1","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 2.2","permalink":"/blog/releases/2.2"},"nextItem":{"title":"Announcing Docusaurus 2.0","permalink":"/blog/2022/08/01/announcing-docusaurus-2.0"}},"content":"We are happy to announce **Docusaurus 2.1**, our very first minor version release.\\n\\nThe upgrade should be easy: as explained in our [release process documentation](/community/release-process), minor versions respect [Semantic Versioning](https://semver.org/).\\n\\n![Docusaurus 2.1 social card](./img/social-card.png)\\n\\n<!--truncate-->\\n\\n## Highlights\\n\\n### DocCardList improvements\\n\\nIn [#8008](https://github.com/facebook/docusaurus/pull/8008), we simplified the usage of the`<DocCardList>` component, that is notably used on sidebar category generated index pages.\\n\\nThe `items` prop is now optional, and will be automatically inferred from the content of the parent sidebar category:\\n\\n```diff\\nimport DocCardList from \'@theme/DocCardList\';\\n- import {useCurrentSidebarCategory} from \'@docusaurus/theme-common\';\\n\\n- <DocCardList items={useCurrentSidebarCategory().items}/>\\n+ <DocCardList/>\\n```\\n\\nAlso, we made it possible to use it on any document, including regular docs not linked to any sidebar category.\\n\\n![simplified DocCardList component](./img/doc-card-list.png)\\n\\n### `noindex` improvements\\n\\nWe improved the support of the [`noindex` meta `robots` directive](https://developers.google.com/search/docs/advanced/crawling/block-indexing), a way to signal search engines you don\'t want a specific page to be indexed.\\n\\nIn [#7963](https://github.com/facebook/docusaurus/pull/7963), we allow `noindex` to be configured on a per-docs-version basis.\\n\\nUse the following plugin options to tell crawlers you don\'t want the `1.0.0` version to be indexed:\\n\\n```jsx\\nconst options = {\\n versions: {\\n \'1.0.0\': {\\n noIndex: true,\\n },\\n },\\n};\\n```\\n\\nIn practice, Docusaurus will add the following meta to each page of that version:\\n\\n```html\\n<meta name=\\"robots\\" content=\\"noindex, nofollow\\" />\\n```\\n\\nIn [#7964](https://github.com/facebook/docusaurus/pull/7964), we also fixed a bug where the sitemap plugin would still contain pages that have a `noindex` directive. Now the sitemap plugin will reliably filter out all the pages containing `noindex` directives.\\n\\n### Overriding default meta tags\\n\\nIn [#7952](https://github.com/facebook/docusaurus/pull/7952), it becomes possible to override default html meta tags you couldn\'t before:\\n\\n```jsx\\n<>\\n {siteConfig.noIndex && <meta name=\\"robots\\" content=\\"nofollow, noindex\\" />}\\n <meta name=\\"viewport\\" content=\\"width=device-width, initial-scale=1.0\\" />\\n</>\\n```\\n\\nIt is now possible to use `<Head>` or `themeConfig.metadata`:\\n\\n- to override the `viewport` meta\\n- to override the `robots` meta: you could mark your site as `noIndex`, but except for specific pages that should be indexed\\n\\n### Ukrainian translations\\n\\nIn [#7953](https://github.com/facebook/docusaurus/pull/7953), we added default classic theme translations for the Ukrainian language.\\n\\n## Other changes\\n\\nCheck the [2.1.0 changelog entry](/changelog/2.1.0) for an exhaustive list of changes."},{"id":"/2022/08/01/announcing-docusaurus-2.0","metadata":{"permalink":"/blog/2022/08/01/announcing-docusaurus-2.0","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2022/08-01-announcing-docusaurus-2.0/index.mdx","source":"@site/blog/2022/08-01-announcing-docusaurus-2.0/index.mdx","title":"Announcing Docusaurus 2.0","description":"Today we are extremely happy to finally announce Docusaurus 2.0! \u{1F973}\uFE0F","date":"2022-08-01T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":12.075,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"},{"name":"Joshua Chen","title":"Working hard on Docusaurus","url":"https://joshcena.com/","email":"sidachen2003@gmail.com","page":{"permalink":"/blog/authors/josh-cena"},"imageURL":"https://github.com/josh-cena.png","key":"Josh-Cena"},{"name":"Yangshun Tay","title":"Front End Engineer at Meta","url":"https://github.com/yangshun","page":{"permalink":"/blog/authors/yangshun"},"socials":{"x":"https://x.com/yangshunz","github":"https://github.com/yangshun"},"imageURL":"https://github.com/yangshun.png","key":"yangshun"},{"name":"Alexey Pyltsyn","title":"Open-source enthusiast","url":"https://github.com/lex111","email":"lex@php.net","page":{"permalink":"/blog/authors/lex-111"},"imageURL":"https://github.com/lex111.png","key":"lex111"},{"name":"Paul O\u2019Shannessy","title":"Engineering Manager at Meta","url":"https://x.com/zpao","page":{"permalink":"/blog/authors/zpao"},"socials":{"x":"https://x.com/zpao","github":"https://github.com/zpao"},"imageURL":"https://github.com/zpao.png","key":"zpao"},{"name":"Joel Marcey","title":"Co-creator of Docusaurus 1","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Announcing Docusaurus 2.0","authors":["slorber","Josh-Cena","yangshun","lex111","zpao",{"key":"JMarcey","title":"Co-creator of Docusaurus 1"}],"tags":["release"],"image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 2.1","permalink":"/blog/2022/09/01/docusaurus-2.1"},"nextItem":{"title":"Docusaurus 2021 Recap","permalink":"/blog/2022/01/24/docusaurus-2021-recap"}},"content":"```mdx-code-block\\nimport LiteYouTubeEmbed from \'react-lite-youtube-embed\';\\nimport \'react-lite-youtube-embed/dist/LiteYouTubeEmbed.css\';\\nimport BrowserWindow from \'@site/src/components/BrowserWindow\';\\nimport ProductHuntCard from \'@site/src/components/ProductHuntCard\';\\nimport HackerNewsIcon from \'@site/src/components/HackerNewsIcon\';\\nimport ColorModeToggle from \'@theme/Navbar/ColorModeToggle\';\\nimport useBaseUrl from \'@docusaurus/useBaseUrl\';\\nimport ThemedImage from \'@theme/ThemedImage\';\\nimport {ShowcaseCarouselV1, ShowcaseCarouselV2, ShowcaseCarouselV2Theming} from \'./ShowcaseCarousel\';\\n```\\n\\nToday we are extremely happy to finally **announce Docusaurus 2.0**! \u{1F973}\uFE0F\\n\\nAt [**Meta Open Source**](https://opensource.fb.com/), we believe Docusaurus will help you build the **best documentation websites** with **minimal effort**, letting you **focus on what really matters**: writing the content.\\n\\nAfter **4 years of work, [75 alphas](https://github.com/facebook/docusaurus/releases/tag/v2.0.0-alpha.75) and [22 betas](https://github.com/facebook/docusaurus/releases/tag/v2.0.0-beta.22)**, the next generation of Docusaurus is **ready for prime time**. From now on, we now plan to **respect [Semantic Versioning](https://semver.org/)** and will release **major versions more frequently**.\\n\\n![social-card image](./img/social-card.png)\\n\\n{/* truncate */}\\n\\n:::info We are on [ProductHunt](https://www.producthunt.com/posts/docusaurus-2-0) and [Hacker News](https://news.ycombinator.com/item?id=32303052)!\\n\\n**Now** is the best time to show your love for Docusaurus!\\n\\n<div style={{display: \'flex\'}}>\\n <ProductHuntCard />\\n <HackerNewsIcon />\\n</div>\\n\\n:::\\n\\n:::tip\\n\\nIn a hurry? Check [what\'s new in Docusaurus 2.0](#whats-new-in-20)!\\n\\n:::\\n\\n## What is Docusaurus exactly?\\n\\nDocusaurus is a **static site generator** that helps you ship **beautiful documentation websites** in **no time**.\\n\\nFocus on your content: just write **Markdown files**. Docusaurus will generate an optimized **website** for you that\'s easy to **host anywhere**.\\n\\nDocusaurus is **full-featured** and very **flexible**: we ship with well-designed docs and blog layout, as well as out-of-the-box versioning, search, and internationalization functionalities, with a call to accessibility and search engine optimizations. Its flexible theming system permits to **adapt the UI to match your branding** so that it integrates nicely with your main website or documentation portal. Its usage of **React** enables a **modern client-side navigation**, and the ability to build an **interactive documentation**.\\n\\n![Introducing Slash](/img/slash-introducing.svg)\\n\\nThe Docusaurus philosophy is akin to the **Pareto principle**: you can get **80% of the results** for **20% of the effort**. This enables you to compete with top-notch documentation sites with **minimal effort**.\\n\\n<TweetQuote\\n url=\\"https://x.com/rachelnabors/status/1452697991039660038\\"\\n handle=\\"rachelnabors\\"\\n name=\\"Rachel Nabors\\"\\n job=\\"Former ReactJS & React-Native docs manager\\">\\n Unless you\'re spinning up a documentation team with engineering resources, you\\n probably want Docusaurus!\\n</TweetQuote>\\n\\nDocusaurus aims to be the **best documentation tool**, but you can use it for **other use-cases** as well: a blog, a knowledge base, a developer portfolio, a second brain, or even to scaffold landing pages!\\n\\n<TweetQuote\\n url=\\"https://x.com/johnny_reilly/status/1551861926334025728\\"\\n handle=\\"johnny_reilly\\"\\n name=\\"Johnny Reilly\\"\\n job=\\"Group Principal Engineer at Investec\\">\\n Using Docusaurus for my tech blog has been a fantastic choice. It looks\\n tremendous out-of-the-box and the awesome DX means I write way more\\n</TweetQuote>\\n\\n:::tip\\n\\nTry Docusaurus now with our [online playgrounds](/docs/playground) and [5 minutes tutorial](https://tutorial.docusaurus.io/) \u23F1\uFE0F\\n\\n:::\\n\\n## The story behind Docusaurus\\n\\nDocusaurus was created at **Facebook Open Source** in **2017** (now [Meta Open Source](https://opensource.fb.com/)). We had a lot of internal and open source projects to document. It\'s **complicated enough to write good documentation**, let alone to create the HTML, CSS, and JavaScript for a good-looking website. We wanted project leaders to be able to **focus on the content**, and **Markdown** is great for that.\\n\\nAt that time, our solution was to **copy/paste a Jekyll template** over and over again. This naturally became **hard to maintain**, so we created a tool to **solve our own pain** once for all.\\n\\n**[Docusaurus v1 was born](/blog/2017/12-14-introducing-docusaurus.mdx)!**\\n\\n![Birth of Slash](/img/slash-birth.png)\\n\\nIt quickly built momentum at Facebook and in the frontend ecosystem, adopted by many popular projects such as [Prettier](https://prettier.io/), [Babel](https://babeljs.io/), [React-Native](https://archive.reactnative.dev/), [KaTeX](https://katex.org/docs/), and of course [Docusaurus v1](http://v1.docusaurus.io/) itself.\\n\\n<ShowcaseCarouselV1 />\\n\\n<br />\\n\\n:::note\\n\\nNotice that the sample sites above use different colors, but still look quite the same.\\n\\n:::\\n\\n## Toward Docusaurus 2.0\\n\\n[**Docusaurus v1**](http://v1.docusaurus.io/) has been very successful, but we started to **question some architectural choices**:\\n\\n- React was only used as a **server-side templating language**, and not used on the client\\n- **Theming system was pretty limited**, and apart from changing a few colors with CSS, it was difficult to do more advanced customizations\\n- The **docs versioning system was confusing**, since it was based on a diff algorithm\\n- The codebase was **monolithic**, neither well-tested nor easy to extend\\n\\n[**Docusaurus v2**](https://docusaurus.io/) was **rebuilt** from the ground up with a new **modular architecture**:\\n\\n- React is now also used on the client, enabling a **modern Single Page Application navigation**\\n- **Plugins** empower the community to contribute useful features as third-party packages\\n- **Theming** is more **flexible** than ever\\n- Docs versioning is now based on snapshot copies, much easier to understand\\n- We kept **everything good from v1**: docs, blog, pages, versioning, i18n...\\n- We implemented **several new features**\\n\\nMore details in the [Docusaurus 2 project announcement](/blog/2018/09-11-Towards-Docusaurus-2.mdx) and [v1 to v2 migration guide](https://docusaurus.io/docs/migration)\\n\\n## Who uses Docusaurus 2.0?\\n\\nDespite being in pre-release, it didn\'t take long for **Docusaurus v2 to outgrow Docusaurus v1** in terms of NPM downloads:\\n\\n[![NPM downloads: v2 outgrows v1](./img/npm-downloads.png)](https://npmtrends.com/docusaurus-vs-@docusaurus/core)\\n\\nOur GitHub star trend is very positive, competing with major frameworks:\\n\\n[![GitHub stars: Docusaurus is well-positioned](./img/star-history.png)](https://star-history.com/#facebook/docusaurus&vercel/next.js&gatsbyjs/gatsby&hexojs/hexo&nuxt/nuxt.js&vuejs/vuepress&11ty/eleventy&gohugoio/hugo&remix-run/remix&mkdocs/mkdocs&Timeline)\\n\\nToday, Docusaurus v2 has already been a great success even before its launch:\\n\\n- We received so many [lovely testimonials](https://x.com/sebastienlorber/timelines/1392048416872706049)\\n- Companies like [1Password](https://blog.1password.com/docusaurus-documentation-framework/) and [Courier](https://www.courier.com/blog/how-we-built-our-documentation/) are writing down their positive experience\\n- Our [site showcase](/showcase) references hundreds of sites, and this is only the tip of the iceberg.\\n\\n<ShowcaseCarouselV2 />\\n\\n<br />\\n\\n:::tip\\n\\nPlease add your site to our [site showcase](/showcase)! It only takes a few seconds: just [post a comment here](https://github.com/facebook/docusaurus/discussions/7826).\\n\\n:::\\n\\n<TweetQuote\\n url=\\"https://x.com/maxlynch/status/1549415692704825346\\"\\n handle=\\"maxlynch\\"\\n name=\\"Max Lynch\\"\\n job=\\"Ionic co-founder and CEO\\">\\n We use Docusaurus everywhere now and love it\\n</TweetQuote>\\n\\n<TweetQuote\\n url=\\"https://x.com/supabase/status/1328960757149671425\\"\\n handle=\\"supabase\\"\\n name=\\"Supabase\\"\\n job=\\"Open Source Firebase alternative\\">\\n We\'ve been using V2 since January and it has been great\\n</TweetQuote>\\n\\n<TweetQuote\\n url=\\"https://x.com/gabrielcsapo/status/1415061312917233665\\"\\n handle=\\"gabrielcsapo\\"\\n name=\\"Gabriel Csapo\\"\\n job=\\"Staff Software Engineer at LinkedIn\\">\\n Docusaurus is next level easy for literally everything you would need for\\n documentation in your project.\\n</TweetQuote>\\n\\n<TweetQuote\\n url=\\"https://x.com/ItWasMattGregg/status/1526682295075102721\\"\\n handle=\\"ItWasMattGregg\\"\\n name=\\"Matt Gregg\\"\\n job=\\"Senior Front End Developer at Shopify\\">\\n Docusaurus is awesome. We use it\\n</TweetQuote>\\n\\n## What\'s New in 2.0?\\n\\nIt would be difficult to describe every single new feature coming with Docusaurus v2. Let\'s focus on the features we believe are the **most impactful**.\\n\\n### MDX\\n\\n[MDX](https://github.com/mdx-js/mdx) allows you to **interleave React components** in Markdown. This enables you to build top-notch **interactive documentation experiences** very easily.\\n\\nA demo is worth a thousand words:\\n\\n```md title=\\"docs/my-document.mdx\\"\\n### Give it a try: press that button!\\n\\nimport ColorModeToggle from \'@theme/ColorModeToggle\';\\n\\n<ColorModeToggle/>\\n```\\n\\n```mdx-code-block\\n<BrowserWindow>\\n\\n<h3>Give it a try: press that button!</h3>\\n\\n<ColorModeToggle/>\\n\\n</BrowserWindow>\\n```\\n\\n:::info\\n\\nMDX has its own [plugin system](https://mdxjs.com/docs/extending-mdx/). You to customize your Markdown authoring experience, and even create your own Markdown syntax.\\n\\n:::\\n\\n<TweetQuote\\n url=\\"https://x.com/HamelHusain/status/1551962275250053123\\"\\n handle=\\"HamelHusain\\"\\n name=\\"Hamel Husain\\"\\n job=\\"Head Of Data Science at Outerbounds\\">\\n Docusaurus + MDX is great: we were able to implement a beautiful two-pane\\n layout and give the author fine-grained control on the placement of code and\\n corresponding prose.\\n</TweetQuote>\\n\\n### File system conventions\\n\\nOur goal is to make Docusaurus very **intuitive** to use. We added file system conventions, and adding a doc page is as easy as creating one Markdown file.\\n\\n<LiteYouTubeEmbed\\n id=\\"T3S8GyFIXjo\\"\\n params=\\"autoplay=1&autohide=1&showinfo=0&rel=0\\"\\n title=\\"Explain Like I\'m 5: Docusaurus\\"\\n poster=\\"maxresdefault\\"\\n webp\\n/>\\n\\n<br />\\n\\n<TweetQuote\\n url=\\"https://x.com/paularmstrong/status/1552005085168865281\\"\\n handle=\\"paularmstrong\\"\\n name=\\"Paul Armstrong\\"\\n job=\\"Principal Engineer at Microsoft\\">\\n Using the auto-generated sidebars makes it so simple to just create a page and\\n not worry about any other configuration.\\n</TweetQuote>\\n\\n### Plugins\\n\\nDocusaurus now has a **modular architecture** with a plugin system \u2014 our **core features** like docs, blog, pages, and search are all powered by individual plugins.\\n\\nMore importantly, it enables our community to **enhance Docusaurus** with additional features.\\n\\nLet\'s highlight some examples:\\n\\n- [redocusaurus](https://github.com/rohit-gohri/redocusaurus): seamless integration with [OpenAPI](https://www.openapis.org/) and [Redoc](https://github.com/Redocly/redoc)\\n\\n![redocusaurus plugin example](./img/plugins/redocusaurus.png)\\n\\n- [docusaurus-preset-shiki-twoslash](https://www.npmjs.com/package/docusaurus-preset-shiki-twoslash): use [Shiki](https://github.com/shikijs/shiki) code block syntax highlighting with [TwoSlash](https://shikijs.github.io/twoslash/) TypeScript compiler hints\\n\\n![shiki-twoslash plugin example](./img/plugins/shiki-twoslash.png)\\n\\n<TweetQuote\\n url=\\"https://x.com/orta\\"\\n handle=\\"orta\\"\\n name=\\"Orta Therox\\"\\n job=\\"Former TypeScript core team at Microsoft\\">\\n The plugin API was a breeze to use, and powerful enough that I could port the\\n code sample renderer from the TypeScript website site in a couple of hours.\\n</TweetQuote>\\n\\n- [docusaurus-search-local](https://github.com/easyops-cn/docusaurus-search-local): one of the various local search alternatives to the built-in Algolia plugin\\n\\n![local search plugin example](./img/plugins/search.png)\\n\\n:::tip\\n\\nWe have a curated list of outstanding plugins in our [community resources](/community/resources) page.\\n\\n:::\\n\\n<TweetQuote\\n url=\\"https://x.com/jodyheavener/status/1551974535452311552\\"\\n handle=\\"jodyheavener\\"\\n name=\\"Jody Heavener\\"\\n job=\\"Senior Developer at 1Password\\">\\n The plugin system in Docusaurus v2 has made expanding 1Password\'s developer\\n portal so easy and fun. Super excited to show you what we\'ve got cooking up.\\n</TweetQuote>\\n\\n### Theming\\n\\nTheming is one of the most important features of Docusaurus: we believe a professional documentation site should **respect your company\'s branding** and create a consistent experience.\\n\\nDocusaurus theming gives a lot of **flexibility** on multiple levels:\\n\\n- Customize CSS variables to adjust colors, fonts, and more\\n- Provide your own CSS stylesheets\\n- Implement your own theme from scratch\\n- **Override any React component** provided by our default theme: we call this [swizzling](https://docusaurus.io/docs/swizzling)\\n\\n<TweetQuote\\n url=\\"https://x.com/hung_dev/status/1546918275065741312\\"\\n handle=\\"hung_dev\\"\\n name=\\"\\nHung Viet Nguyen\\"\\n job=\\"Creator of JestPreview\\">\\n I love Docusaurus Swizzling feature. It\u2019s opinionated and flexible at the same\\n time. This is super cool since a framework usually needs to sacrifice one for\\n the other.\\n</TweetQuote>\\n\\nThis enables users willing to invest a bit more time on **customizations** to build sites that **look different** from others.\\n\\n<ShowcaseCarouselV2Theming />\\n\\n<TweetQuote\\n url=\\"https://x.com/dabit3/status/1382855449813389315\\"\\n handle=\\"dabit3\\"\\n name=\\"Nader Dabit\\"\\n job=\\"Web3 developer, Developer DAO founder\\">\\n So far it\u2019s working out really nicely. It\u2019s been really easy to style up the\\n way that we wanted it to look. No blockers at all.\\n</TweetQuote>\\n\\n### Other features\\n\\nDocusaurus 2 comes with a very long list of useful features:\\n\\n- Theme: dark mode, better UI and UX, flexible `themeConfig` options...\\n- Docs versioning: flexible plugin options to adapt to your workflow\\n- Docs sidebar: collapsible category, category index pages...\\n- Blog: multiple authors, authors map, archive page...\\n- Markdown: tabs, math equations, live code blocks, linking, flexible front matter...\\n- Search: use the new Algolia DocSearch 3 experience\\n- Assets: make it easy to incorporate images and other kinds of files\\n- Internationalization: config options, default theme translations...\\n- Accessibility: aria labels, color contrasts, skip-to-content, keyboard navigation, progressive enhancement...\\n- SEO: sensible defaults, easy to customize, canonical url, social card, no-index, sitemap, microdata, hreflang...\\n- PWA: add offline support to your site, and make it installable\\n- Fail-fast: strict config validation, detect broken links, and prevent bad production deployments\\n- TypeScript support for config files, plugins, custom pages and theme authors\\n- Playgrounds: assess Docusaurus easily from your browser with [docusaurus.new](https://docusaurus.new)\\n- Canary releases: use the @canary npm tag to use the upcoming release before anyone else\\n- Tests: Docusaurus is well-tested, we dogfood features and ensure they keep working\\n\\n<TweetQuote\\n url=\\"https://x.com/alexbdebrie/status/1540010328335032320\\"\\n handle=\\"alexbdebrie\\"\\n name=\\"Alex DeBrie\\"\\n job=\\"AWS Data Hero, author of The DynamoDB Book\\">\\n Recently, I was shocked at how good Docusaurus is out of the box. Super solid,\\n a good bit of configuration without being overwhelming, and the ability to\\n really customize the styling if you\'re braver than I am.\\n</TweetQuote>\\n\\n## Why 2.0 now?\\n\\nMany enthusiastic followers of ours have been curious **why it took us 4 years to release Docusaurus 2.0**, considering the beta is already successful and **widely used in production**.\\n\\nThe reason is that we aim to **respect [Semantic Versioning](https://semver.org/)**, which means we will be incrementing the major version number whenever we release a **breaking change**.\\n\\nIt is important for multiple reasons:\\n\\n- It **guarantees simple minor version upgrades**, as long as you only use the [public API](/community/release-process#public-api-surface)\\n- It follows front-end ecosystem conventions\\n- A new major version is an opportunity to thoroughly document breaking changes\\n- A new major/minor version is an opportunity to communicate new features through a blog post\\n\\nThe problem is that our flexible theming system inherently creates a very **implicit API surface** on which it is **hard to know what is a breaking change** in the first place. Highly customized Docusaurus sites sometimes have a hard time upgrading Docusaurus because they achieve customizations using internal APIs. We dedicated time to extensive theme refactors and clearly defining our [public API](/community/release-process#public-api-surface), so that future code changes can be made more safely. We will continue to expand this public theming API so that the most common site customizations do not need to use any internal API.\\n\\n:::info\\n\\nFrom now on, Docusaurus will **release new major versions more frequently**. In practice, you can expect a **new major version every 2 to 4 months**.\\n\\n[Major version numbers are not sacred](https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html), but we still group breaking changes together and avoid releasing major versions too often.\\n\\nCheck our [release process](/community/release-process) documentation for details.\\n\\n:::\\n\\n## What\'s Next?\\n\\n![Slash Up and Running](/img/slash-up-and-running.png)\\n\\nThe work on Docusaurus 3.0 has started, and this next version will be released only in a few months. We will **backport retro-compatible changes in Docusaurus 2.x** minor versions to make them available as soon as possible to the community on a stable channel.\\n\\nA sample of the features on our roadmap for the upcoming major versions of Docusaurus:\\n\\n- [Upgrade to MDX 2.0](https://github.com/facebook/docusaurus/issues/4029)\\n- [Improve Markdown infrastructure](https://github.com/facebook/docusaurus/issues/4625)\\n- [Improve theming and swizzle](https://github.com/facebook/docusaurus/issues/6114)\\n- [TailwindCSS theme](https://github.com/facebook/docusaurus/issues/2961)\\n- [Theme; support custom item types for navbar, doc sidebar, blog sidebar, footer](https://github.com/facebook/docusaurus/issues/7227)\\n- [Dynamic navbar: navbar item activation strategies](https://github.com/facebook/docusaurus/issues/4389)\\n- [Custom Social Cards](https://github.com/facebook/docusaurus/issues/2968)\\n- [CSS-in-JS support](https://github.com/facebook/docusaurus/issues/3236)\\n- [Use Node.js ES Modules](https://github.com/facebook/docusaurus/issues/6520)\\n- [Improve build time performance](https://github.com/facebook/docusaurus/issues/4765)\\n- [Extend Docusaurus plugins, CMS integration](https://github.com/facebook/docusaurus/issues/4138)\\n\\n## Thank You\\n\\nWe\'d like to express our gratitude to [all our contributors](https://github.com/facebook/docusaurus/graphs/contributors), including:\\n\\n- The Docusaurus core team: [Alexey Pyltsyn](https://github.com/lex111), [Joshua Chen](https://github.com/Josh-Cena), [S\xe9bastien Lorber](https://github.com/slorber), [Yangshun Tay](https://github.com/yangshun) and all our [former team members](https://docusaurus.io/community/team)\\n- [Joel Marcey](https://github.com/JoelMarcey) for creating Docusaurus 1.0 and supporting the Docusaurus 2.0 project at Meta Open Source\\n- [Paul O\u2019Shannessy](https://github.com/zpao) for supporting the development of all the next versions of Docusaurus at Meta Open Source\\n- [Eric Nakagawa](https://github.com/ericnakagawa) for creating our cutest mascot Slash\\n- [Endilie Yacop Sucipto](https://github.com/endiliey) for his significant [initial work on Docusaurus v2](/blog/2020/01-07-tribute-to-endi.mdx)\\n- [Cl\xe9ment Vannicatte](https://github.com/shortcuts), [Kevin Granger](https://github.com/Shipow) and the whole Algolia team for their support\\n- All the community members for making valuable code contributions, improving our documentation, and answering questions on [Discord](https://discordapp.com/invite/docusaurus)\\n\\nWe\'d like to thank in particular all our **Docusaurus 2.0 early adopters** for assessing its alpha, beta and canary releases, providing a ton of **invaluable feedback**. We sincerely hope you had a great experience using it, and that you will continue to provide feedback on the upcoming pre-releases of Docusaurus 3.0.\\n\\nAt [Meta Open Source](https://opensource.fb.com/), Docusaurus is one of our **most successful projects**. We can\'t wait to see all the outstanding documentation websites that you will create! Don\'t forget to **submit them to our [site showcase](/showcase)**!\\n\\n**Now, let your imagination run wild \u{1F92A}!**\\n\\n\u2014 Slash\\n\\n:::info We are on [ProductHunt](https://www.producthunt.com/posts/docusaurus-2-0) and [Hacker News](https://news.ycombinator.com/item?id=32303052)!\\n\\n\u{1F64F} Share your experience using Docusaurus with the community!\\n\\n<div style={{display: \'flex\'}}>\\n <ProductHuntCard />\\n <HackerNewsIcon />\\n</div>\\n\\n:::\\n\\n![Slash plushies](./img/slash-plushies.jpg)"},{"id":"/2022/01/24/docusaurus-2021-recap","metadata":{"permalink":"/blog/2022/01/24/docusaurus-2021-recap","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2022/01-24-docusaurus-2021-recap/index.mdx","source":"@site/blog/2022/01-24-docusaurus-2021-recap/index.mdx","title":"Docusaurus 2021 Recap","description":"Docusaurus has made great progress in 2021! We\'ve seen a lot of traction and just crossed 30k stars on GitHub!","date":"2022-01-24T00:00:00.000Z","tags":[{"inline":false,"label":"Recap","permalink":"/blog/tags/recap","description":"Blog posts about Docusaurus\' year recaps"}],"readingTime":6.01,"hasTruncateMarker":true,"authors":[{"name":"Joshua Chen","title":"Working hard on Docusaurus","url":"https://joshcena.com/","email":"sidachen2003@gmail.com","page":{"permalink":"/blog/authors/josh-cena"},"imageURL":"https://github.com/josh-cena.png","key":"Josh-Cena"}],"frontMatter":{"title":"Docusaurus 2021 Recap","authors":["Josh-Cena"],"tags":["recap"],"image":"./img/thumbnail.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Announcing Docusaurus 2.0","permalink":"/blog/2022/08/01/announcing-docusaurus-2.0"},"nextItem":{"title":"DocSearch migration","permalink":"/blog/2021/11/21/algolia-docsearch-migration"}},"content":"Docusaurus has made great progress in 2021! We\'ve seen a lot of traction and just crossed **30k stars on GitHub**!\\n\\nWe\'ve **reached full feature parity** with v1 after [the release of internationalization](/blog/2021/03-09-releasing-docusaurus-i18n.mdx), [announced our **first beta**](/blog/2021/05-12-announcing-docusaurus-two-beta/index.mdx), and welcomed **significantly more users** this year.\\n\\nThe **official v2 release** is just around the corner! Follow the [roadmap issue](https://github.com/facebook/docusaurus/issues/6113) for any latest news.\\n\\n![](./img/thumbnail.png)\\n\\n<!--truncate-->\\n\\n## Highlights\\n\\nLet\'s begin by going over a few highlights this year. Remember the [todo-list](/blog/2021/05-12-announcing-docusaurus-two-beta/index.mdx#whats-next) from half a year ago? Time to take it out again and see how far we\'ve come!\\n\\n- **Internationalization**: officially released four months after its initial landing in late 2020. Seen great success in [many projects](/showcase?tags=i18n)\\n- **Autogenerated sidebars**: no need to maintain a big `sidebars.js` anymore\\n- **Webpack 5**: significantly improved build performance\\n- **Trailing slash config**: seamless integration with any content hosting provider\\n- **Redesigned mobile navigation**: mobile users now enjoy all navigation features as on desktop\\n- **UI improvements**: more accessible quotes, better admonitions, back-to-top button...\\n- **Blog multi-authors**: credit all the amazing contributors that collaborated on one blog post!\\n- **More blog features**: archive page, structured data for SEO, full post content in feeds \u2013 empowering you to ship a fully-featured blog in no time\\n- **Asset collocation**: no need for a bloated static folder anymore: colocate your images with Markdown files\\n- **Sidebar category index pages**: category labels can now be associated with pages, enabling better doc organization\\n\\nOur codebase has been polished over time as well. We have improved test coverage, migrated all packages to TypeScript, and reduced our published bundle size by a maximum of 60%!\\n\\n## Trends\\n\\n### npm\\n\\nDocusaurus v2 continues to grow steadily. V2 installation is now 8 times more than v1. In terms of weekly downloads, we have witnessed another three-fold increase (+209.4%), growing from 28,066 in early January to a peak of 86,846 in mid-December.\\n\\n[![Docusaurus v1 vs. v2 npm trends of the year 2021. The installations of Docusaurus v2 is constantly rising, while v1 is almost constant. V1 stays at 10000, while v2 grows from 30000 to almost 90000. There\'s a sharp drop from 90000 to 40000 just before the Jan 2022 line.](./img/npm-trend.png)](https://www.npmtrends.com/docusaurus-vs-@docusaurus/core)\\n\\n(Ah, the classic Christmas dip...)\\n\\nWe released 18 versions, going from `2.0.0-alpha.71` to `2.0.0-beta.14`. That\'s one release every 20 days!\\n\\n### GitHub\\n\\n- **Stars**: 20,460 \u2192 29,679 (+45.1% y/y). And, just before this blog post is published, we have reached 30k stars!\\n- **Total contributors**: 512 \u2192 773 (+51.0% y/y)\\n- **Dependents**: 5,039 \u2192 14,579 (+189.3% y/y) for v2, and 6,311 \u2192 7,581 (+20.1% y/y) for v1\\n- **Commits**: 1,187 commits in the past year, averaging 23 commits every week\\n- **Issues**: 619 issues opened, 505 of them eventually resolved\\n- A [**new core team member**](https://github.com/Josh-Cena) (yep, that\'s me \u{1F61D})\\n\\nOur star trend is also very positive. Compared to similar projects, we are **growing at a faster rate**:\\n\\n![Stars trend by year of 9 static site generators. Next.js grows the fastest, with Docusaurus at the 4th place in terms of growth rate.](./img/star-history.png)\\n\\nWith an 8.4k increase in stars, we are ranked number 3 in this year\'s [JavaScript rising stars of static site generators](https://risingstars.js.org/2021/en#section-ssg), preceded only by Next.js and Astro.\\n\\n![Docusaurus placing 3rd in the \\"Static Sites\\" ranking list](./img/rising-stars.png)\\n\\n## Featured adoptions\\n\\nOur showcase has welcomed a few new [\\"favorite\\" sites](/showcase?tags=favorite) that showcase the true potential of Docusaurus 2\'s pluggable architecture.\\n\\n- [**IOTA-wiki**](https://wiki.iota.org/)\\n\\n![Iota wiki light mode](./img/iota-light.png#gh-light-mode-only)![Iota wiki dark mode](./img/iota-dark.png#gh-dark-mode-only)\\n\\n- [**Dyte**](https://docs.dyte.io/docs/home/introduction/)\\n\\n![Dyte light mode](./img/dyte-light.png#gh-light-mode-only)![Dyte dark mode](./img/dyte-dark.png#gh-dark-mode-only)\\n\\n- [**Ionic**](https://ionicframework.com/docs)\\n\\n![Ionic light mode](./img/ionic-light.png#gh-light-mode-only)![Ionic dark mode](./img/ionic-dark.png#gh-dark-mode-only)\\n\\n- [**Courier**](https://www.courier.com/docs/)\\n\\n![Courier](./img/courier.png)\\n\\nThe creativity of Docusaurus users is beyond our imagination \u{1F929} We look forward to more and more adopters leveraging the content features of Docusaurus while exploring original theme designs! If your site uses Docusaurus, we would love to [have it in our showcase](https://github.com/facebook/docusaurus/edit/main/website/src/data/users.tsx).\\n\\n## Community\\n\\nAs an active moderator on [Discord](https://discord.gg/docusaurus), I can clearly see the community thriving. Many frequently asked questions are now integrated into our documentation, and some feature requests have been implemented as well. The project and the community reciprocally benefit each other \u2013 case in point, I was formerly a community contributor before becoming a maintainer.\\n\\nWe are constantly mentioned on X with inspirational feedback:\\n\\n> **@docusaurus** is amazing! cant believe it\'s THAT simple to use.\\n\\n> No extra plugins, tooling or compilation steps. It just works out of the box.\\n\\n> I love **@docusaurus**. I couldn\'t have built the APIs, tutorials, and blogs contained in my site efficiently and beautifully in my workflow without Docusaurus.\\n\\nAnd we keep every one of them in [our little box](https://x.com/sebastienlorber/timelines/1392048416872706049) \u{1F604} If you enjoy Docusaurus yourself, keep tagging us with your comments!\\n\\nAs we approach the official release, we are interested in knowing more about what people are doing out there: [plugin authors](https://github.com/facebook/docusaurus/discussions/4025), [creators of customized sites](https://github.com/facebook/docusaurus/discussions/5468), and [all new users](https://github.com/facebook/docusaurus/discussions/4610) \u2013 please keep us posted about your achievements so we can steer our development to better serve your needs.\\n\\n## Going forward\\n\\nIn the past few months, we have been constantly speaking about the release-candidate phase of Docusaurus, and yes, it\'s almost there. We have created a dedicated [milestone](https://github.com/facebook/docusaurus/milestone/15) to keep track of all issues to solve before we can confidently progress to the next stage. In short, we want to build a **more robust theming workflow**, empowering creative site creators to customize our default theme without fearing breaking changes as they upgrade. This will include:\\n\\n- Guidelines on **component organization**. We want the theme components to have the right granularity so when you want to customize a part of your site, there\'s always a component doing just what you need.\\n- Improvements to the **swizzle CLI**. We want users to use it with delight and let it aid you through all possible swizzling scenarios.\\n- Refactoring our **theme APIs**. We want all swizzlable components to be actually appropriate for swizzling, so non-UI components will be re-located.\\n- **Docs**. We want our docs to be maximally accessible to everyone \u2013 from first-time coders to experienced web developers. We will organize it as a more progressive tutorial that can be beneficial for every skill level.\\n\\nRead more about plans for Docusaurus 2.0 in this [roadmap issue](https://github.com/facebook/docusaurus/issues/6113). 2.0 will be a greater release with the help from the community, so please share your opinions and suggestions under any of the milestone issues!\\n\\nAs the core team is working hard to ship the general availability release, we plan to release other useful features as minor versions after 2.0. We have even made further plans for [architectural changes in 3.0](https://github.com/facebook/docusaurus/milestone/16)!\\n\\nWith the official release of Docusaurus 2.0, we are confident to see much more new adoptions and migrations from v1.\\n\\nWe\'d like to express our gratitude to [all the contributors in 2021](https://github.com/facebook/docusaurus/graphs/contributors?from=2021-01-01&to=2022-01-01&type=c), including:\\n\\n- The core team: [Alexey Pyltsyn](https://github.com/lex111), [S\xe9bastien Lorber](https://github.com/slorber), [Joshua Chen](https://github.com/Josh-Cena), and [Yangshun Tay](https://github.com/yangshun) for moderating the community, publicizing Docusaurus, triaging issues, and implementing new features\\n- [Joel Marcey](https://github.com/JoelMarcey) for creating Docusaurus and supporting its development all along\\n- The Algolia team for helping Docusaurus users [migrate to the new DocSearch](/blog/2021/11-21-algolia-docsearch-migration/index.mdx) and answering search-related questions\\n- All the active community members for making valuable code contributions, improving our documentation, and answering questions on Discord\\n\\nSo long, 2021, and let\'s greet a great 2022!"},{"id":"/2021/11/21/algolia-docsearch-migration","metadata":{"permalink":"/blog/2021/11/21/algolia-docsearch-migration","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2021/11-21-algolia-docsearch-migration/index.mdx","source":"@site/blog/2021/11-21-algolia-docsearch-migration/index.mdx","title":"DocSearch migration","description":"DocSearch is migrating to a new, more powerful system, which gives users their own Algolia application and new credentials.","date":"2021-11-21T00:00:00.000Z","tags":[{"inline":false,"label":"Search","permalink":"/blog/tags/search"}],"readingTime":2.96,"hasTruncateMarker":true,"authors":[{"name":"Cl\xe9ment Vannicatte","title":"Software Engineer @ Algolia","url":"https://github.com/shortcuts","socials":{"x":"https://x.com/sh0rtcts","github":"https://github.com/shortcuts"},"imageURL":"https://github.com/shortcuts.png","key":"shortcuts","page":null},{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"DocSearch migration","authors":["shortcuts","slorber"],"tags":["search"],"image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 2021 Recap","permalink":"/blog/2022/01/24/docusaurus-2021-recap"},"nextItem":{"title":"Announcing Docusaurus 2 Beta","permalink":"/blog/2021/05/12/announcing-docusaurus-two-beta"}},"content":"[DocSearch](https://docsearch.algolia.com/) is migrating to a new, more powerful system, which gives users their own Algolia application and new credentials.\\n\\nDocusaurus site owners should upgrade their configuration with their new credentials **by February 1, 2022**, existing search indexes will be frozen and become read-only after this date.\\n\\n<!--truncate-->\\n\\n## Upgrading your Docusaurus site\\n\\nIn the next few weeks, Docusaurus site owners will receive an email inviting them to join their personal Algolia application.\\n\\nThis email will include a new `appId` and `apiKey` to use in your Docusaurus configuration.\\n\\nThe only things you have to do:\\n\\n- Join the Algolia application (eventually creating a new Algolia account)\\n- Update your site configuration.\\n\\n```js title=\\"docusaurus.config.js\\"\\nconst config = {\\n themeConfig: {\\n algolia: {\\n // highlight-start\\n appId: \'<NEW_APP_ID>\',\\n apiKey: \'<NEW_SEARCH_API_KEY>\',\\n // highlight-end\\n },\\n },\\n};\\n\\nmodule.exports = config;\\n```\\n\\n:::info\\n\\n`appId` is now **required**.\\n\\nThese keys are not secrets and can be added to your Git repository.\\n\\n:::\\n\\n## DocSearch has a new home!\\n\\n### What is DocSearch?\\n\\n[DocSearch](https://docsearch.algolia.com/) is a program created by [Algolia](http://algolia.com/), which offers search to technical documentation of Open Source projects and technical blogs **for free**.\\n\\nYou can [read more here](https://docsearch.algolia.com/docs/what-is-docsearch/), and [apply](https://docsearch.algolia.com/apply) if you\'d like to give it a try!\\n\\n## What is this migration about?\\n\\n### Motivation\\n\\nWith the upcoming stable release of [DocSearch UI](https://docsearch.algolia.com/docs/DocSearch-v3), we wanted to go further and provide better tooling for our users to improve their search, but also leverage the full potential of Algolia.\\n\\n### What\'s new?\\n\\nDocSearch now leverages the [Algolia Crawler](https://www.algolia.com/products/search-and-discovery/crawler/), which includes a web interface that will allow you to:\\n\\n- Start, schedule and monitor your crawls\\n- Edit your config file from a live editor\\n- Test your results with DocSearch v3\\n\\n![The Algolia crawler front page showing the project\'s overview, such as last complete crawl and indices](./img/crawler-overview.png)\\n\\n![The Algolia config editor opened to the docusaurus-2 config. The right pane shows the results for index and various facet filters.](./img/editor.png)\\n\\nBut also, more Algolia features in **your own Algolia app**:\\n\\n- Team management\\n- Browse and see how your records are indexed in Algolia\\n- Try other Algolia features with free trials\\n\\n![The Algolia index overview page, showing various filters and the details of every single index](./img/index-overview.png)\\n\\n![The Algolia index analytics page, showing trends for total users, total searches, etc.](./img/index-analytics.png)\\n\\nAnd of course, **a lot more, for free**.\\n\\n## FAQ\\n\\n### I\'m using Docusaurus and DocSearch, can I migrate? {#im-using-docusaurus-and-docsearch-can-i-migrate}\\n\\nAt the time we are writing this, we are still at an early stage of the migration. We are doing small batches every week but will increase the load shortly, so please be patient and keep an eye out in your mailbox, you\'ll be contacted as soon as your Algolia app is ready!\\n\\n### Where can I read more about this?\\n\\nWe wrote a small [migration guide](https://docsearch.algolia.com/docs/migrating-from-legacy) but you\'ll have more detailed information in the migration email.\\n\\n### I received the migration email but the invite expired\\n\\nPlease contact us via either [email](mailto:docsearch@algolia.com) or [DocSearch\'s Discord](https://discord.gg/bRTacwYrfX) or on [Docusaurus\'s Discord #algolia channel](https://discordapp.com/invite/docusaurus)\\n\\n### I have feedback!\\n\\nFor any feedback regarding our documentation or the DocSearch UI component, you can open an issue [on our GitHub repository](https://github.com/algolia/docsearch/issues), but also contact us via the methods above.\\n\\n### Can I still run my own DocSearch instance?\\n\\nIn favor of the new infrastructure and DocSearch v3, we will no longer maintain our beloved [DocSearch scraper](https://github.com/algolia/docsearch-scraper) and [DocSearch v2](https://github.com/algolia/docsearch/tree/master), but the repositories will still be available and open to pull requests.\\n\\nThe previous documentation (now called `legacy`) remains available as well as our [`run your own`](https://docsearch.algolia.com/docs/legacy/run-your-own) guide."},{"id":"/2021/05/12/announcing-docusaurus-two-beta","metadata":{"permalink":"/blog/2021/05/12/announcing-docusaurus-two-beta","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2021/05-12-announcing-docusaurus-two-beta/index.mdx","source":"@site/blog/2021/05-12-announcing-docusaurus-two-beta/index.mdx","title":"Announcing Docusaurus 2 Beta","description":"After a lengthy alpha stage in order to ensure feature parity and quality, we are excited to officially release the first Docusaurus 2 beta.","date":"2021-05-12T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"},{"inline":false,"label":"Beta","permalink":"/blog/tags/beta"}],"readingTime":3.52,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{},"imageURL":"./img/slorber.png","key":"slorber","image_url":"./img/slorber.png"},{"name":"Joel Marcey","title":"Developer Advocate at Meta","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{"x":"https://x.com/joelmarcey","github":"https://github.com/JoelMarcey"},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"},{"name":"Yangshun Tay","title":"Front End Engineer at Meta","url":"https://github.com/yangshun","page":{"permalink":"/blog/authors/yangshun"},"socials":{"x":"https://x.com/yangshunz","github":"https://github.com/yangshun"},"imageURL":"https://github.com/yangshun.png","key":"yangshun"},{"name":"Alexey Pyltsyn","title":"Open-source enthusiast","url":"https://github.com/lex111","email":"lex@php.net","page":{"permalink":"/blog/authors/lex-111"},"imageURL":"https://github.com/lex111.png","key":"lex111"}],"frontMatter":{"title":"Announcing Docusaurus 2 Beta","authors":[{"key":"slorber","image_url":"./img/slorber.png","imageURL":"./img/slorber.png"},"JMarcey","yangshun","lex111"],"tags":["release","beta"],"image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"DocSearch migration","permalink":"/blog/2021/11/21/algolia-docsearch-migration"},"nextItem":{"title":"Releasing Docusaurus i18n","permalink":"/blog/2021/03/09/releasing-docusaurus-i18n"}},"content":"After a lengthy alpha stage in order to ensure feature parity and quality, we are excited to officially release the first **[Docusaurus 2 beta](https://github.com/facebook/docusaurus/releases/tag/v2.0.0-beta.0)**.\\n\\nWith the announcement of this beta, the team is even more confident that Docusaurus 2 is **ready for mainstream adoption**!\\n\\n![](./img/image_cropped.png)\\n\\n<!--truncate-->\\n\\n## Docusaurus adoption\\n\\n**Don\'t fear the beta tag!**\\n\\nDocusaurus 2 is widely adopted and growing fast:\\n\\n[![Docusaurus v1 vs. v2 npm trends from 2019 to mid 2021. The installations of Docusaurus v2 is sharply rising, while v1 is mostly stable. V1 fluctuates between 10000 and 20000, while v2 starts at 0 and ends at almost 60000. The intersection happens around June 2020.](./img/trend.png)](https://www.npmtrends.com/docusaurus-vs-@docusaurus/core)\\n\\nTo get a fuller understanding of the quality of current Docusaurus 2 sites, our new [showcase](https://docusaurus.io/showcase) page allows you to filter Docusaurus sites by features, so you may get inspired by real-world production sites with a similar use-case as yours!\\n\\nDon\'t miss our [favorite](https://docusaurus.io/showcase?tags=favorite) sites; they all stand out with something unique:\\n\\n[![A screenshot of the showcase\'s favorites section, with 12 cards each displaying the information and preview of one site](./img/favorites.png)](https://docusaurus.io/showcase?tags=favorite)\\n\\n## Why was Docusaurus v2 in alpha for so long?\\n\\nIt\'s hard to believe that the first alpha release [v2.0.0-alpha.0](https://github.com/facebook/docusaurus/releases/tag/v2.0.0-alpha.0) was 2 years ago \u{1F633} , unusually long for a software alpha.\\n\\nAs this was a substantial re-architecture of the code base, we wanted to ensure that we had confidence in the stability and features of Docusaurus 2 before moving on to a beta stage, since beta suggests a high level of quality. We are happy to say that Docusaurus 2 has reached **feature parity** with Docusaurus 1 with **[i18n](https://docusaurus.io/blog/2021/03/09/releasing-docusaurus-i18n)**, and it has been **successfully adopted** by many Docusaurus sites (see [i18n showcase](https://docusaurus.io/showcase?tags=i18n)).\\n\\nWe\'re now quite confident that the core features of Docusaurus 2 are stable enough to be in beta.\\n\\n## What are the goals of the beta?\\n\\nNow that Docusaurus 2 is stable and major feature complete, the goal of the beta is to inspire confidence in new users on the production-readiness of Docusaurus 2, migrate more remaining Docusaurus 1 users to version 2, and officially deprecate Docusaurus 1. We will, of course, continue to resolve any issues and bugs that may be discovered.\\n\\nIn addition, we will use the beta phase to **improve our theming system**.\\n\\nWe want to make it:\\n\\n- **easier to implement a custom theme**, including for ourselves. We want to provide [multiple official themes](https://github.com/facebook/docusaurus/issues/3522) (including [Tailwind CSS](https://github.com/facebook/docusaurus/issues/2961)) for a long time.\\n\\n- **safer to extend an existing theme**: it can be painful to upgrade a highly customized Docusaurus site, as customizations can conflict with internal changes. We need to make the theme public API surface more explicit, and make it clear what is safe to customize.\\n\\nWe will build a better **theming infrastructure** and refactor the classic theme to use it.\\n\\nIf you customize your site, you may find these planned improvements quite valuable.\\n\\n## What\'s new?\\n\\nIn case you missed it, we recently shipped two major improvements:\\n\\n- [Auto-generated sidebars](https://docusaurus.io/docs/sidebar#sidebar-item-autogenerated): no need to maintain a `sidebars.js` file anymore!\\n- [Webpack 5 / PostCSS 8](https://github.com/facebook/docusaurus/issues/4027): persistent caching significantly speeds up **rebuild time**!\\n\\n## What\'s next?\\n\\nShipping the official 2.0 release!\\n\\nTo get there, we will continue to **fix bugs** and implement the **most wanted features**, including:\\n\\n- [Sidebar category index pages](https://github.com/facebook/docusaurus/issues/2643)\\n- [Better mobile navigation UX](https://github.com/facebook/docusaurus/issues/2220)\\n- [Better admonition design](https://github.com/facebookincubator/infima/issues/55)\\n- [CSS-in-JS support](https://github.com/facebook/docusaurus/issues/3236)\\n- [Improve build time performance](https://github.com/facebook/docusaurus/issues/4765)\\n- [Extend Docusaurus plugins, CMS integration](https://github.com/facebook/docusaurus/issues/4138)\\n- [Fix trailing slashes and relative link issues](https://github.com/facebook/docusaurus/issues/3372)\\n- [Better compatibility with CommonMark](https://github.com/facebook/docusaurus/issues/3018)\\n- [Upgrade to MDX 2.0](https://github.com/facebook/docusaurus/issues/4029)\\n\\n## Conclusion\\n\\nThis is an exciting time for Docusaurus.\\n\\nWe are inspired by the [positive feedback](https://x.com/sebastienlorber/timelines/1392048416872706049) about Docusaurus, and discover new sites online every single day.\\n\\nWe are so excited for this beta release. We strove for quality and stability while continuing to try to increase the adoption of Docusaurus. For those that have been on the fence from migrating an existing Docusaurus site to Docusaurus 2, it is a great time to upgrade. We want you running on the latest infrastructure when we deprecate Docusaurus 1 at the end of this beta period. Let us know how we can help.\\n\\nThank you to everyone for reading and to the entire community who supports Docusaurus. \u{1F917}"},{"id":"/2021/03/09/releasing-docusaurus-i18n","metadata":{"permalink":"/blog/2021/03/09/releasing-docusaurus-i18n","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2021/03-09-releasing-docusaurus-i18n.mdx","source":"@site/blog/2021/03-09-releasing-docusaurus-i18n.mdx","title":"Releasing Docusaurus i18n","description":"Today, we officially release Docusaurus 2 i18n (internationalization), as part of 2.0.0-alpha.71.","date":"2021-03-09T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"},{"inline":false,"label":"I18n","permalink":"/blog/tags/i-18-n"}],"readingTime":3.445,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Releasing Docusaurus i18n","authors":["slorber"],"tags":["release","i18n"],"image":"/img/blog/2021-03-09-releasing-docusaurus-i18n/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Announcing Docusaurus 2 Beta","permalink":"/blog/2021/05/12/announcing-docusaurus-two-beta"},"nextItem":{"title":"Docusaurus 2020 Recap","permalink":"/blog/2021/01/19/docusaurus-2020-recap"}},"content":"Today, we officially release **[Docusaurus 2 i18n](https://docusaurus.io/docs/i18n/introduction)** ([internationalization](https://en.wikipedia.org/wiki/Internationalization_and_localization)), as part of [2.0.0-alpha.71](https://github.com/facebook/docusaurus/releases/tag/v2.0.0-alpha.71).\\n\\nDocusaurus 2 has now reached **full feature parity with Docusaurus 1**. \u{1F389} And soon, after a few additional infrastructure updates and a bit more testing, the **first Docusaurus 2 beta** will be released.\\n\\n**We went the extra mile**, and the new i18n support is **even better than in Docusaurus 1**.\\n\\nIn this post, we will present you the **translation workflow**, explain some **design decisions** and **showcase early adopter sites** that just went live: [Jest](https://jestjs.io/), [Redwood](https://learn.redwoodjs.com/), and [Datagit](https://datagit.ir/).\\n\\nWe also **dogfood** the i18n support on the **Docusaurus 2 site itself**, and this post is already available in [English](https://docusaurus.io/blog/2021/03/09/releasing-docusaurus-i18n) and [French](https://docusaurus.io/fr/blog/2021/03/09/releasing-docusaurus-i18n)!\\n\\n<!--truncate-->\\n\\n## Translate your site\\n\\nYou can translate a Docusaurus site in **3 simple steps**:\\n\\n1. **Configure**: declare the default locale and alternative locales in `docusaurus.config.js`\\n1. **Translate**: put the translation files at the [correct filesystem location](https://docusaurus.io/docs/next/i18n/introduction#translation-files-location)\\n1. **Deploy**: build and deploy your site using a single or multi-domain strategy\\n\\nThe i18n support is **very flexible** and based on the **filesystem**.\\n\\nThe **[i18n tutorial](https://docusaurus.io/docs/i18n/tutorial)** is the best way to get started, and we provide help to use **[Git](https://docusaurus.io/docs/i18n/git)** or **[Crowdin](https://docusaurus.io/docs/i18n/crowdin)**.\\n\\n## Design decisions\\n\\nThe goals of the Docusaurus i18n system are:\\n\\n- **Simple**: just put the translated files in the [correct filesystem location](https://docusaurus.io/docs/next/i18n/introduction#translation-files-location)\\n- **Flexible translation workflows**: use Git (monorepo, forks, or submodules), SaaS software, FTP\\n- **Flexible deployment options**: single, multiple domains, or hybrid\\n- **Modular**: allow plugin authors to provide i18n support\\n- **Low-overhead runtime**: documentation is mostly static and does not require a heavy JS library or polyfills\\n- **Scalable build-times**: allow building and deploying localized sites independently\\n- **Localize assets**: an image of your site might contain text that should be translated\\n- **No coupling**: not forced to use any SaaS, yet integrations are possible\\n- **Easy to use with [Crowdin](https://crowdin.com/)**: multiple Docusaurus 1 sites use Crowdin, and should be able to migrate to v2\\n- **Good SEO defaults**: we set useful SEO headers like [`hreflang`](https://developers.google.com/search/docs/advanced/crawling/localized-versions) for you\\n- **RTL support**: locales reading right-to-left (Arabic, Hebrew, etc.) are supported and easy to implement\\n- **Default translations**: classic theme labels are translated for you in [many languages](https://github.com/facebook/docusaurus/tree/main/packages/docusaurus-theme-translations/locales)\\n\\n## Showcase\\n\\nWe worked with a few volunteers to **dogfood the i18n support** before releasing it.\\n\\n### Jest: upgrading Docusaurus\\n\\nWe have made it possible to **upgrade** a **translated Docusaurus 1 site** to Docusaurus 2.\\n\\n**[Jest](https://jestjs.io)**, using Docusaurus 1 and Crowdin was one of those sites.\\n\\nThe Docusaurus 2 migration was successful and the new site is now deployed in production ([announcement post](https://jestjs.io/blog/2021/03/09/jest-website-upgrade)).\\n\\n[![Jest\'s website front page in Japanese](/img/blog/2021-03-09-releasing-docusaurus-i18n/jest.png)](https://jestjs.io)\\n\\n### Redwood: adopting Docusaurus\\n\\n[Redwood](https://redwoodjs.com/) is a React full-stack Jamstack framework.\\n\\nThey were looking for a solution to create an **internationalized learning platform**, and became early adopters of Docusaurus 2 i18n for [learn.redwoodjs.com](https://learn.redwoodjs.com/), using Crowdin to get it translated to French.\\n\\n[![Redwood\'s doc page in French](/img/blog/2021-03-09-releasing-docusaurus-i18n/redwood.png)](https://learn.redwoodjs.com/)\\n\\n### Datagit: using LTR support\\n\\nThe i18n system should work with any language, including **Right-to-Left languages**.\\n\\n[Datagit.ir](https://datagit.ir/) is using Farsi, and a simple configuration option is able to **flip the Docusaurus theme** to add the required Right-to-Left support.\\n\\n[![Datagit\'s website in Persian, a right-to-left language. The sidebar appears on the right of the window and the TOC appears on the left.](/img/blog/2021-03-09-releasing-docusaurus-i18n/datagit.png)](https://datagit.ir/)\\n\\n## Conclusion\\n\\nWe sincerely hope you will adopt and like the new i18n support.\\n\\nThis feature has not been an easy one, and we would like to thank everyone that got involved in this journey:\\n\\n- [Alexey](https://github.com/lex111) for his help to make the i18n support exhaustive and even better than v1\\n- [Simen](https://github.com/SimenB) for volunteering and supporting the Jest migration\\n- [Claire](https://github.com/clairefro) for adopting Docusaurus 2 on the new Redwood platform and providing many feedbacks\\n- [Massoud](https://github.com/massoudmaboudi) for reviewing my work on LTR and adopting it on Datagit\\n- [Crowdin](https://crowdin.com/) for their support and willingness to improve their translation SaaS\\n- The Docusaurus community for their patience, and providing many useful feedbacks on GitHub\\n\\nThanks for reading.\\n\\n\u{1F64F} And please, add your brand new i18n sites to our [showcase page](https://docusaurus.io/showcase). We accept any all polished Docusaurus site here, and we are working on a [redesign](https://github.com/facebook/docusaurus/issues/4238) allowing you to filter sites by features."},{"id":"/2021/01/19/docusaurus-2020-recap","metadata":{"permalink":"/blog/2021/01/19/docusaurus-2020-recap","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2021/01-19-docusaurus-2020-recap.mdx","source":"@site/blog/2021/01-19-docusaurus-2020-recap.mdx","title":"Docusaurus 2020 Recap","description":"2020 was great for Docusaurus, despite a regrettable start and a tumultuous year for everyone.","date":"2021-01-19T00:00:00.000Z","tags":[{"inline":false,"label":"Recap","permalink":"/blog/tags/recap","description":"Blog posts about Docusaurus\' year recaps"}],"readingTime":5.04,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2020 Recap","authors":["slorber"],"tags":["recap"],"image":"/img/docusaurus-2020-recap.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Releasing Docusaurus i18n","permalink":"/blog/2021/03/09/releasing-docusaurus-i18n"},"nextItem":{"title":"Tribute to Endi","permalink":"/blog/2020/01/07/tribute-to-endi"}},"content":"**2020 was great for Docusaurus**, despite [a regrettable start](https://docusaurus.io/blog/2020/01/07/tribute-to-endi) and a tumultuous year for everyone.\\n\\nWe continued to invest in [Docusaurus 2](https://docusaurus.io/), and made it reach **full feature parity** with [Docusaurus 1](https://v1.docusaurus.io/).\\n\\nWe now **recommend Docusaurus 2** as the **default choice** to start a new Docusaurus project and encourage v1 users to [migrate to Docusaurus 2](https://docusaurus.io/docs/migration).\\n\\nWe are **still in alpha**, but expect **some good news very soon**!\\n\\n![Three Docusaurus plushies laid side-by-side on the table](/img/blog/2020-recap/docusaurus-plushie-banner.jpeg)\\n\\n<!--truncate-->\\n\\n## Docusaurus 2 highlights\\n\\nWe have worked on many features this year, and would like to highlight the most significant ones:\\n\\n- **i18n**: easily translate your Docusaurus site, released soon! ([preview](https://github.com/facebook/docusaurus/pull/3325), [doc](https://docusaurus.io/docs/next/i18n/introduction))\\n- **Version dropdown**: enable contextual version switch\\n- **Versioning options**: solving the most common pain-points users had with versioning\\n- **Contextual search**: search in the current version, use the brand-new DocSearch 3 experience\\n- **Markdown pages**: use Markdown instead of React components to create standalone pages\\n- **Better theme**: various UI, UX and accessibility improvements\\n- **PWA**: add offline support to your site, and make it installable\\n- **Fail-fast**: strict config validation, detect broken links, and prevent bad production deployments\\n- **Multi-instance**: use the docs plugin twice on a single site (e.g. iOS/Android SDK docs)\\n- **Migration CLI**: automate the upgrade from Docusaurus 1\\n- **CodeSandbox**: assess Docusaurus easily from your browser with [new.docusaurus.io](https://new.docusaurus.io/)\\n- **Canary releases**: use the `@canary` npm tag to use the upcoming release before anyone else\\n- **TypeScript**: progressive adoption for internal code, and improve usage for users\\n- **Publish Infima**: it is now [open-source](https://github.com/facebookincubator/infima)\\n\\n## Docusaurus 2 growth\\n\\nThe plan to [rebuild Docusaurus from scratch in 2019](https://docusaurus.io/blog/2019/12/30/docusaurus-2019-recap) paid off: after a slow start, Docusaurus 2 has been widely adopted and has **already outgrown Docusaurus 1** usage.\\n\\n![Docusaurus v1 vs. v2 npm trends of the year 2020. The installations of Docusaurus v2 is visibly up-growing, while v1 is slightly downward. V1 starts at 15000 and ends at 10000, while v2 starts at 2000 and ends at 25000. The intersection happens around June 2020.](/img/blog/2020-recap/docusaurus-npm-trends.png)\\n\\nNotable **projects, startups, large companies, and individuals** adopted Docusaurus 2 ([showcase](https://docusaurus.io/showcase)):\\n\\n- [Supabase](https://supabase.io)\\n- [React Navigation](https://reactnavigation.org)\\n- [React Redux](https://react-redux.js.org/)\\n- [Vector](https://vector.dev)\\n- [Algolia DocSearch](https://docsearch.algolia.com)\\n- [SAP Cloud SDK](https://sap.github.io/cloud-sdk)\\n- [Palo Alto Cortex XSOAR](https://xsoar.pan.dev)\\n- [Qudd\xfas George\'s website](https://portfoliosaurus.now.sh)\\n\\nWe helped **large scale Docusaurus 1 sites to upgrade**, ensuring a proper **migration path** and **feature parity**.\\n\\n[React Native](https://reactnative.dev/) was successfully upgraded to Docusaurus 2 ([archived v1 site](http://archive.reactnative.dev/)):\\n\\n![React Native\'s new website built with Docusaurus v2](/img/blog/2020-recap/react-native-screenshot.png)\\n\\nLocalized Docusaurus 1 sites (like **Jest**) will be able to upgrade too:\\n\\n![Jest\'s new website built with Docusaurus v2 in Japanese](/img/blog/2020-recap/jest-screenshot.png)\\n\\nWe also saw the **[first right-to-left](https://datagit.ir/)** Docusaurus 2 site published:\\n\\n![Datagit\'s website in Persian, a right-to-left language. The sidebar appears on the right of the window and the TOC appears on the left.](/img/blog/2020-recap/datagit-rtl-screenshot.png)\\n\\n## GitHub Activity\\n\\n- **Stars**: 14632 \u2192 20946 (+43.2% y/y)\\n- **Total Contributors**: 303 \u2192 512 (+68.9% y/y). Most of which are non-Facebook contributors\\n- **Weekly npm Downloads**: 2356 \u2192 25592 (+986% y/y)\\n- **On GitHub**, Docusaurus 1 is used by 6311 projects (+62.9% y/y) while Docusaurus 2 is used by 5039 projects (+1940% y/y)\\n\\n## Collaboration with Major League Hacking\\n\\nWe have welcomed [Major League Hacking](https://mlh.io/) (MLH) fellows for 2 seasons already.\\n\\nWe are very thankful for the **various contributions** they made, such as:\\n\\n- Writing the foundations of the v1 to v2 migration CLI\\n- Help migrate the React Native website from v1 to v2\\n- Making the config validation more strict and exhaustive, returning helpful error messages\\n- Adding CodeSandbox support\\n- Improving the CI pipelines: build size and Lighthouse bots\\n\\nWe look forward to continuing this collaboration in 2021.\\n\\n## Media\\n\\nDmitry Vinnik (Developer Advocate @ Facebook) explains Docusaurus in [60 seconds](https://www.youtube.com/watch?v=_An9EsKPhp0) or [15min](https://www.youtube.com/watch?v=Yhyx7otSksg) videos.\\n\\nRachel Nabors (Documentation Engineer @ Facebook) talked a bit about Docusaurus in [React Native Radio 178 (podcast)](https://reactnativeradio.com/episodes/178-documenting-react-native-with-rachel-nabors-gWxwySPl), and William Candillon the [React Native website migration (video)](https://www.youtube.com/watch?v=-zhjq2ECKq4).\\n\\nMany blog posts have been published:\\n\\n- [To the Makers of Docusaurus](https://portfoliosaurus.now.sh/blog/toTheMakers) by Quddus George\\n- [Richer API documentation with Redoc and Docusaurus](https://davidgoss.co/blog/api-documentation-redoc-docusaurus/) by David Goss\\n- [How to Build a Plugin for Docusaurus v2](https://aknapen.nl/blog/how-to-build-a-plugin-for-docusaurus-v2/) by Adriaan Knapen\\n- [React Tracked Documentation Website with Docusaurus v2](https://blog.axlight.com/posts/react-tracked-documentation-website-with-docusaurus-v2/) by Daishi Kato\\n- [Easy documentation with Docusaurus](https://blog.logrocket.com/easy-documentation-with-docusaurus/) by Anshul Goyal (MLH fellow)\\n- [Build Beautiful Documentation Websites with Docusaurus](https://lo-victoria.com/build-beautiful-documentation-websites-with-docusaurus) by Victoria Lo\\n\\n## Community\\n\\nThe Docusaurus community continues to grow, the [Discord](https://discord.gg/docusaurus) server is quite active, and [Stack Overflow questions](https://stackoverflow.com/questions/tagged/docusaurus) keep being posted.\\n\\nThe **modular architecture** of Docusaurus 2 allowed the community to build and publish [third-party plugins](https://docusaurus.io/community/resources#community-plugins-). As we would like to federate better our community, if you are building a plugin, please [let us know](https://github.com/facebook/docusaurus/discussions/4025).\\n\\n## What\'s next?\\n\\nAs the **core features of Docusaurus 2** have finally been built, we will be able to dedicate more time to solve the pain points and bugs reported by the community, and make Docusaurus stable and convenient enough to enter the **beta and release-candidate phase**.\\n\\nWith proper support for **i18n and versioning**, and **large scale migrations** such as **React Native** and **Jest**, we now have a clear migration path for all Docusaurus 1 sites.\\n\\nWe still have a few **major features** that we would like to work on:\\n\\n- [Create a theme gallery](https://github.com/facebook/docusaurus/issues/3522), make it easy to switch from one another, and include **first-class Tailwind support**\\n- [Upgrade to Webpack 5](https://github.com/facebook/docusaurus/issues/4027), improve performances and build times\\n- [Better compatibility with CommonMark](https://github.com/facebook/docusaurus/issues/3018), as MDX and makes it harder for CommonMark-based sites to adopt Docusaurus\\n- [Upgrade to MDX 2.0](https://github.com/facebook/docusaurus/issues/4029)\\n- Other tasks that we might discover during 2021\\n\\nHuge thanks to the community for [their contributions in 2020](https://github.com/facebook/docusaurus/graphs/contributors?from=2020-01-01&to=2021-01-01&type=c), especially:\\n\\n- [Joel Marcey](https://github.com/JoelMarcey) for creating Docusaurus and supporting the project all this time\\n- the core team - [Alexey Pyltsyn](https://github.com/lex111), [S\xe9bastien Lorber](https://sebastienlorber.com), [Yangshun Tay](https://x.com/yangshunz)\\n- the Major League Hacking and Facebook interns for their significant impact\\n- the Algolia team for DocSearch 3 and their support\\n- [Bartosz Kaszubowski](https://github.com/Simek) for his investment in the React Native migration\\n- the whole community for their contributions, and providing support to each other\\n\\nCheers to a great 2021! \u{1F389}"},{"id":"/2020/01/07/tribute-to-endi","metadata":{"permalink":"/blog/2020/01/07/tribute-to-endi","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2020/01-07-tribute-to-endi.mdx","source":"@site/blog/2020/01-07-tribute-to-endi.mdx","title":"Tribute to Endi","description":"It is with great sadness to announce that our primary external Docusaurus contributor, Endilie Yacop Sucipto (Endi to those who knew him), passed away over the weekend after an illness associated with his bout with cancer.","date":"2020-01-07T00:00:00.000Z","tags":[{"inline":false,"label":"Endi","permalink":"/blog/tags/endi"},{"inline":false,"label":"Tribute","permalink":"/blog/tags/tribute"}],"readingTime":0.895,"hasTruncateMarker":true,"authors":[{"name":"Joel Marcey","title":"Developer Advocate at Meta","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{"x":"https://x.com/joelmarcey","github":"https://github.com/JoelMarcey"},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Tribute to Endi","authors":"JMarcey","tags":["endi","tribute"]},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 2020 Recap","permalink":"/blog/2021/01/19/docusaurus-2020-recap"},"nextItem":{"title":"Docusaurus 2019 Recap","permalink":"/blog/2019/12/30/docusaurus-2019-recap"}},"content":"It is with great sadness to announce that our primary external Docusaurus contributor, [Endilie Yacop Sucipto](https://github.com/endiliey) (Endi to those who knew him), [passed away](https://give.asia/campaign/help_endi_beat_cancer#/updates) over the weekend after an illness associated with his bout with cancer.\\n\\n<!--truncate-->\\n\\nIt is impossible to overstate Endi\'s impact on this project:\\n\\n- Docusaurus\' top contributor, [by far](https://github.com/facebook/docusaurus/graphs/contributors).\\n- [Lead developer](https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2) on the nearly complete [version 2 of Docusaurus](https://docusaurus.io/blog/2019/12/30/docusaurus-2019-recap).\\n- Overall passionate advocate of the project on [X](https://x.com/endiliey), [Discord](https://discord.gg/docusaurus) and other social media\\n\\nThinking about it now, it is absolutely amazing how much Endi accomplished on Docusaurus given what he was battling with his health.\\n\\nWe are working on ways to honor Endi\'s contributions - a commemorative sticker, possibly - and we are open to ideas. Leave a comment here or [tweet](https://x.com/docusaurus) if you have a suggestion.\\n\\nThe Docusaurus project will not be the same without Endi, and those of us who worked with him will miss him greatly. \u{1F614}\\n\\n![A photo from behind Endi\'s back, with Endi sitting on a rock cliff, facing the vast sea. His right hand forms a V pose.](/img/endi.jpg)"},{"id":"/2019/12/30/docusaurus-2019-recap","metadata":{"permalink":"/blog/2019/12/30/docusaurus-2019-recap","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2019/12-30-docusaurus-2019-recap.mdx","source":"@site/blog/2019/12-30-docusaurus-2019-recap.mdx","title":"Docusaurus 2019 Recap","description":"2019 was a great year for Docusaurus - we\'ve made tremendous progress on Docusaurus 2. Current Docusaurus 1 users who aren\'t using the translations feature can feel free to check it out and migrate to it! Otherwise we will work with you to make that happen in 2020 :)","date":"2019-12-30T00:00:00.000Z","tags":[{"inline":false,"label":"Recap","permalink":"/blog/tags/recap","description":"Blog posts about Docusaurus\' year recaps"}],"readingTime":2.72,"hasTruncateMarker":true,"authors":[{"name":"Yangshun Tay","title":"Front End Engineer at Meta","url":"https://github.com/yangshun","page":{"permalink":"/blog/authors/yangshun"},"socials":{"x":"https://x.com/yangshunz","github":"https://github.com/yangshun"},"imageURL":"https://github.com/yangshun.png","key":"yangshun"}],"frontMatter":{"title":"Docusaurus 2019 Recap","authors":"yangshun","tags":["recap"]},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Tribute to Endi","permalink":"/blog/2020/01/07/tribute-to-endi"},"nextItem":{"title":"Happy 1st Birthday Slash!","permalink":"/blog/2018/12/14/Happy-First-Birthday-Slash"}},"content":"2019 was a great year for Docusaurus - we\'ve made tremendous progress on [Docusaurus 2](https://docusaurus.io/). Current Docusaurus 1 users who aren\'t using the translations feature can feel free to check it out and [migrate](https://docusaurus.io/docs/migration) to it! Otherwise we will work with you to make that happen in 2020 :)\\n\\n<!--truncate-->\\n\\n## Docusaurus 2 (D2)\\n\\nIn 2018, we proposed to rebuild [Docusaurus from the ground up](https://github.com/facebook/docusaurus/issues/789). It involved a major rearchitecture effort - we created a content-centric CSS framework from scratch, a plugins system, and moved from static HTML pages to be a single page-app with prerendered routes. It was a wild adventure and a tough feat, especially with no dedicated FTE working on the project. With the help of [@endilie](https://github.com/endiliey), our ex-intern-turned-contributor-turned-maintainer, we made really good progress on D2 and are currently on version 2.0.0-alpha.40. All features in Docusaurus 1 except for translations have been ported over.\\n\\nD2\'s killer features are **Dark Mode** and its **superb performance**. D2 has dark mode support out-of-the-box and it is near effortless to create a dark mode-friendly documentation site. Endilie put in great effort into optimizing the performance of the site and a bunch of performance optimization tricks have been done under the hood by default - optimized images, prerendering every route to static HTML and client-side routing thereafter, prefetching assets needed by future navigations whenever the user hovers over a navigation link, etc.\\n\\nLast but not least, we implemented a plugins architecture and turned the repo into a [Lerna monorepo](https://github.com/facebook/docusaurus/tree/main/packages). We believe this plugin architecture will be helpful towards building a community and also allowing users to build their own features for their unique use cases.\\n\\n## GitHub Activity\\n\\n- Stars: 10050 \u2192 14632 (+45.6% y/y)\\n- Total Contributors: 182 \u2192 303 (+66.4% y/y). Most of which are non-Facebook contributors\\n- Daily npm Downloads: 728 \u2192 2320 (+218.7% y/y). The peak was in November\\n- D1 is currently used by 3872 projects on GitHub while D2 is used by 247 projects on GitHub\\n- We now have 4 active core contributors! (+100% y/y)\\n\\n## Notable Users\\n\\nA good portion of the projects within the Open Source community use Docusaurus. This half we also onboarded more notable projects onto Docusaurus 2:\\n\\n- [Create React App](https://create-react-app.dev/)\\n- [Redux](https://redux.js.org/)\\n- [Draft.js](https://draftjs.org/)\\n- [Flux](http://facebook.github.io/flux/)\\n\\nAnd welcomed more projects to Docusaurus 1:\\n\\n- [Libra](https://developers.libra.org/)\\n- [MobX](https://mobx.js.org/)\\n- [Immer](https://immerjs.github.io/immer/)\\n- [Sorbet](https://sorbet.org/)\\n\\n## Media\\n\\nYangshun gave a classroom session during F8 about [Using Docusaurus to Create Open Source Websites](https://www.youtube.com/watch?v=QcGJsf6mgZE).\\n\\n## Community\\n\\nA few third-party hosting/development services also has first-class integration with a Docusaurus setup:\\n\\n- [Vercel deployment](https://github.com/vercel/vercel/tree/main/examples/docusaurus)\\n- [CodeSandbox](https://codesandbox.io/s/docusaurus-template-x3vg9)\\n- [Render](https://render.com/docs/deploy-docusaurus)\\n\\n## Looking Ahead\\n\\nD2 has gained some traction among the [developer community](https://docusaurus.io/showcase). In 2020, we want to achieve full feature parity with D1 by the first half and help the remaining Facebook projects on D1 move to D2. It would also be great if we could use Docusaurus for internal documentation, but that is a non-trivial undertaking. If you have a need for it or have some ideas, come speak with us!\\n\\nHuge thanks to the community for their contributions, especially the core team - [Endilie Yacop Sucipto](https://github.com/endiliey), [Alexey Pyltsyn](https://github.com/lex111), [Wei Gao](https://github.com/wgao19). Lastly, thank you [Joel Marcey](https://github.com/JoelMarcey) for starting Docusaurus and supporting the project all this time.\\n\\nCheers to a great 2020! \u{1F389}"},{"id":"/2018/12/14/Happy-First-Birthday-Slash","metadata":{"permalink":"/blog/2018/12/14/Happy-First-Birthday-Slash","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2018/12-14-Happy-First-Birthday-Slash.mdx","source":"@site/blog/2018/12-14-Happy-First-Birthday-Slash.mdx","title":"Happy 1st Birthday Slash!","description":"Docusaurus makes 1 year! Happy Birthday Slash!","date":"2018-12-14T00:00:00.000Z","tags":[{"inline":false,"label":"Birth","permalink":"/blog/tags/birth"}],"readingTime":0.615,"hasTruncateMarker":true,"authors":[{"name":"Joel Marcey","title":"Co-creator of Docusaurus","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Happy 1st Birthday Slash!","authors":[{"key":"JMarcey","title":"Co-creator of Docusaurus"}],"tags":["birth"]},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 2019 Recap","permalink":"/blog/2019/12/30/docusaurus-2019-recap"},"nextItem":{"title":"Towards Docusaurus 2","permalink":"/blog/2018/09/11/Towards-Docusaurus-2"}},"content":"![Docusaurus makes 1 year! Happy Birthday Slash!](/img/docusaurus-slash-first-birthday.svg)\\n\\nDocusaurus [went live](https://v1.docusaurus.io/blog/2017/12/14/introducing-docusaurus) on December 14, 2017. At the time, we had [8 early adopters](https://v1.docusaurus.io/blog/2017/12/14/introducing-docusaurus#acknowledgements).\\n\\n<!--truncate-->\\n\\nWe now have nearly [60 known users of Docusaurus](https://v1.docusaurus.io/en/users), and probably more that we don\'t know about. We have [9K GitHub stars](https://github.com/facebook/docusaurus) and an active community, particularly [Yangshun Tay](https://x.com/yangshunz) and [Endilie Yacop Sucipto](https://x.com/endiliey), both of whom are the lead maintainers helping keep this project [moving forward](https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2).\\n\\nThank you to everyone for your support and use of this project! I am super proud of how far this project has come in just a year.\\n\\n> Special thanks to [Eric Nakagawa](https://x.com/ericnakagawa), creator of Slash, for creating this 1-year image of Slash enjoying cake. The Slash brand has been a boon for us!"},{"id":"/2018/09/11/Towards-Docusaurus-2","metadata":{"permalink":"/blog/2018/09/11/Towards-Docusaurus-2","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2018/09-11-Towards-Docusaurus-2.mdx","source":"@site/blog/2018/09-11-Towards-Docusaurus-2.mdx","title":"Towards Docusaurus 2","description":"Docusaurus was officially announced over nine months ago as a way to easily build open source documentation websites. Since then, it has amassed over 8,600 GitHub Stars, and is used by many popular open source projects such as React Native, Babel, Jest, Reason and Prettier.","date":"2018-09-11T00:00:00.000Z","tags":[{"inline":false,"label":"New","permalink":"/blog/tags/new"},{"inline":false,"label":"Adoption","permalink":"/blog/tags/adoption"}],"readingTime":9.25,"hasTruncateMarker":true,"authors":[{"name":"Endilie Yacop Sucipto","title":"Maintainer of Docusaurus","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null}],"frontMatter":{"title":"Towards Docusaurus 2","authors":"endiliey","tags":["new","adoption"]},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Happy 1st Birthday Slash!","permalink":"/blog/2018/12/14/Happy-First-Birthday-Slash"},"nextItem":{"title":"How I Converted Profilo to Docusaurus in Under 2 Hours","permalink":"/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"}},"content":"Docusaurus was [officially announced](https://v1.docusaurus.io/blog/2017/12/14/introducing-docusaurus) over nine months ago as a way to easily build open source documentation websites. Since then, it has amassed over 8,600 GitHub Stars, and is used by many popular open source projects such as [React Native](https://facebook.github.io/react-native/), [Babel](https://babeljs.io/), [Jest](https://jestjs.io/), [Reason](https://reasonml.github.io/) and [Prettier](https://prettier.io/).\\n\\nThere is a saying that the very best software is constantly evolving, and the very worst is not. In case you are not aware, we have been planning and working on the next version of Docusaurus \u{1F389}.\\n\\n<!--truncate-->\\n\\n## Introduction\\n\\nIt all started with this [RFC issue](https://github.com/facebook/docusaurus/issues/789) opened by [Yangshun](https://github.com/yangshun) towards the end of June 2018.\\n\\n<blockquote>\\n <h4>\\n <a href=\\"https://github.com/facebook/docusaurus/issues/789\\">\\n {\'[RFC] Docusaurus v2 \xb7 Issue #789 \xb7 facebook/docusaurus\'}\\n </a>\\n </h4>\\n These are some of the problems I\'m seeing in Docusaurus now and also how we can\\n address them in v2. A number of the ideas here were inspired by VuePress and other\\n static site generators. In the current static site generators ecosystem, t...\\n</blockquote>\\n\\nMost of the suggested improvements are mentioned in the issue; I will provide details on some of issues in Docusaurus 1 and how we are going to address them in Docusaurus 2.\\n\\n## Infrastructure\\n\\n### Content\\n\\nA Docusaurus 1 website is, in fact, built into a bunch of static HTML pages. Despite using React, we were not fully utilizing the features React offered, such as component state, which allows for dynamic and interactive pages. React was only used as a templating engine for static content and interactivity has to be added through script tags and `dangerouslySetInnerHTML` \u{1F631}.\\n\\nIn addition, there is not an easy way to change how Docusaurus loads content. For example, adding CSS preprocessors such as Sass and Less was not supported natively and involved many user hacks of adding custom scripts.\\n\\nFor Docusaurus 2, we will be using [webpack](https://webpack.js.org/) as a module bundler and we are changing the way we serve content. Adding CSS preprocessors will be as easy as adding a webpack loader. Instead of a pure static HTML, **during build time we will create a server-rendered version of the app** and render the corresponding HTML. A Docusaurus site will be essentially an isomorphic/universal application. This approach is heavily inspired by [Gatsby](https://github.com/gatsbyjs/gatsby).\\n\\n### Versioning\\n\\nIf you have been using Docusaurus for a while, you might notice that Docusaurus creates versioned docs **if and only if** the docs content are **different**.\\n\\nFor example, if we have `docs/hello.md`:\\n\\n```text\\n---\\nid: hello\\ntitle: hello\\n---\\nHello world !\\n```\\n\\nAnd **we cut version 1.0.0,** Docusaurus will create `versioned_docs/version-1.0.0/hello.md`:\\n\\n```text\\n---\\nid: version-1.0.0-hello\\ntitle: hello\\noriginal_id: hello\\n---\\nHello world !\\n```\\n\\nHowever, if there are no changes to `hello.md` when cutting v2.0.0, Docusaurus will not create any versioned docs for that document. In other words, `versioned_docs/version-2.0.0/hello.md` will not exist.\\n\\nThis can be very confusing for users; if they want to edit the v2.0.0 docs, they have to edit `versioned_docs/version-1.0.0/hello.md` or manually add `versioned_docs/version-2.0.0/hello.md`. This could potentially lead to unwanted bugs. Here is a [real scenario in Jest](https://github.com/facebook/jest/pull/6758#issuecomment-408274413).\\n\\nIn addition, this adds complexity within the codebase as we require a mechanism for version fallbacks. And during build time, Docusaurus has to replace the linking to the correct version. This is also the cause of a bug where [renaming docs breaks links in old versions](https://github.com/facebook/docusaurus/issues/845).\\n\\nFor Docusaurus 2, **every time we cut a new version, we will instead take a snapshot of all the docs**. We will not require the content of a document to have changed. This is a space complexity trade-off for a better developer and user experience. We will use more space for better separation of concerns and guaranteed correctness.\\n\\n### Translation\\n\\nDocusaurus allows for easy translation functionality by using [Crowdin](https://crowdin.com/). Documentation files written in English are uploaded to Crowdin for translation by users within a community. We always assumed that **English** is the default language, but this might not be the case for all users. We have seen plenty of non-English open source projects using Docusaurus.\\n\\nFor Docusaurus 2, **we will not assume English is the default language**. When a user enables internationalization, they have to set a default language in `siteConfig.js`. We will then assume that all the files in `docs` are written in that language.\\n\\nIn addition, after working on the MVP of Docusaurus 2, I realized that it is possible not to use Crowdin for translations. Thus, we might need to add an additional workflow to enable that scenario. However, we will still strongly recommend people use Crowdin for easier integration.\\n\\n## Customizability\\n\\n### Layout\\n\\nThe current state of Docusaurus is that it is in charge of the entire layout and styling, unintentionally making it very hard for users to customize their site\'s appearance to their wishes.\\n\\nFor Docusaurus 2, **layout and styling should be controlled by the user**. Docusaurus will handle the content generation, routing, translation, and versioning. Inspired by [create-react-app](https://github.com/facebook/create-react-app) and [VuePress](https://vuepress.vuejs.org/), Docusaurus will still provide a default theme, which the user can eject from, for further layout and styling customization. This means that it is very possible for the user to even change the HTML meta by using [React Helmet](https://github.com/nfl/react-helmet). Community-based themes are also very possible. This approach of allowing users to be in charge of layout and styling is taken by most static site generators.\\n\\n### Markdown\\n\\nOur Markdown parsing is currently powered by [Remarkable](https://github.com/jonschlinkert/remarkable). What if the user wants to use [Markdown-it](https://github.com/Markdown-it/Markdown-it) or even [MDX](https://github.com/mdx-js/mdx)? And then there is an issue of which syntax highlighter to use, (e.g: [Prism](https://prismjs.com/) vs [Highlight.js](https://highlightjs.org/)). We should leave these choices open to the user.\\n\\nFor Docusaurus 2, **users can eject and choose their own Markdown parser**. It does not matter if they want to use another Markdown parser such as [Remark](https://github.com/remarkjs/remark), or even their own in-house Markdown parser. As a rule of thumb, the user has to provide a React component, in which we will provide a children props containing the _RAW string of Markdown_. By default, we will use Remarkable for the Markdown parser and Highlight.js for the syntax highlighting. The default parser could still change in the future as we\'re still experimenting with different Markdown parsers.\\n\\n### Search\\n\\nOur core search functionality is based on [Algolia](https://www.algolia.com/). There are requests by users to be able to use different search offerings, such as `lunrjs` for offline search.\\n\\nI personally like Algolia and we have a great experience working with them. They are very responsive; we can easily submit a pull request to Algolia since their `DocSearch` is open source. For example, I recently submitted [this PR that enables DocSearch to scrape alternate languages in sitemap](https://github.com/algolia/docsearch-scraper/pull/387).\\n\\nFor Docusaurus 2, **we will allow users to customize the search box**. Users simply need to eject from the default theme and modify the Search UI (a React component). However, we will still use Algolia in the default theme.\\n\\n## Stability\\n\\nSoftware is never going to be perfect, but we want Docusaurus to not break as we add new features. When Docusaurus was first released, it did not have any strong automated test suites. As a result, there were a lot of regressions not caught early. Although we have recently added a lot of tests, the test coverage is still relatively low.\\n\\nFor Docusaurus 2, **we are adding tests as we develop** since we are going for a fresh rewrite. Hence, I believe that it should be more stable than ever and it should be harder to break things compared to Docusaurus 1.\\n\\n## Frequently Asked Questions\\n\\n### Will there be any breaking changes?\\n\\nIf you\'ve read the post up until to this point, you should be able to notice that there will be breaking changes. While we will try to **minimize the number of breaking changes** and make it backward compatible as much as possible, we believe that some breaking changes are required. This is mostly due to Docusaurus 2 being a **major rewrite and re-architecting** of the codebase.\\n\\nThe exact list of breaking changes is not totally known yet as development is not 100% finalized. However, one thing that I will highlight is that we will deprecate a lot of options in `siteConfig.js` and we plan to keep it as lean as possible. For example, the `cleanUrl` siteConfig will be deprecated as all the URL for Docusaurus 2 sites will be without the `.html` suffix.\\n\\nOur goal is that most sites should be able to upgrade to Docusaurus 2 without a lot of pain. We will also include a migration guide when we release Docusaurus 2. When the times come, feel free to ping us on [Discord](https://discord.gg/docusaurus) or [X](https://x.com/docusaurus) for questions and help.\\n\\n### When is the release of Docusaurus 2?\\n\\nAs of now, we do not have an exact date planned for the release. I personally estimate that we might be able to release an alpha version in the next one to two months, but this is, of course, just an estimate.\\n\\nOne thing that I would like to share is that while Docusaurus is part of [Facebook Open Source](https://opensource.fb.com/) and most of the team are Facebook employees, the maintenance and development work is mostly done outside of normal working hours. I am currently a final year undergraduate student at [NTU Singapore](https://x.com/NTUsg), so I had to juggle between doing my coursework, my final year project and maintaining/developing Docusaurus. However, that does not mean that we do not want to make Docusaurus better. In fact, **we want to make it as awesome as possible**.\\n\\nFor now, the actual Docusaurus 2 work is still hosted in a private repository. In the near future, we will move them into the [public repository](https://github.com/facebook/docusaurus). When that time arrives, I encourage everyone to look into it and hopefully contribute in some way. Before then, please stay tuned \u{1F609}!\\n\\n## Final Thoughts\\n\\nDocusaurus has had a large impact on the open source community as seen from the [many popular projects](https://v1.docusaurus.io/en/users) which use Docusaurus for documentation. In order to move faster in the future, we are taking the opportunity to fix some core problems with Docusaurus 1 and striving to make Docusaurus better for everyone. In fact, it is safe to say that Docusaurus 2 is not just a plan any longer; the work on it has started and, hopefully, we will be able to see it materialize in the near future.\\n\\nDocusaurus\' mission has always been to make it really easy for you to get a website with documentation up and running out of the box. That mission does not change with Docusaurus 2.\\n\\nWe also want to let people know that **due to work on Docusaurus 2, we will be less likely to accept new features/major changes on Docusaurus 1.**\\n\\nIf you are using Docusaurus, you are part of our community; keep letting us know how we can make Docusaurus better for you. If you appreciate the work we\'re doing, you can support [Docusaurus on Open Collective](https://opencollective.com/Docusaurus).\\n\\n> If you are sponsoring our work on [Open Collective](https://opencollective.com/Docusaurus), we\'ll personally offer you a helping hand for maintenance and upgrading of Docusaurus website.\\n\\nLastly, if you haven\'t done so already, click the **star** and **watch** button on [GitHub](https://github.com/facebook/docusaurus), and follow us on [X](https://x.com/docusaurus)."},{"id":"/2018/04/30/How-I-Converted-Profilo-To-Docusaurus","metadata":{"permalink":"/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2018/04-30-How-I-Converted-Profilo-To-Docusaurus.mdx","source":"@site/blog/2018/04-30-How-I-Converted-Profilo-To-Docusaurus.mdx","title":"How I Converted Profilo to Docusaurus in Under 2 Hours","description":"\u201CJoel and I were discussing having a website and how it would have been great to launch with it. So I challenged myself to add Docusaurus support. It took just over an hour and a half. I\'m going to send you a PR with the addition so you can take a look and see if you like it. Your workflow for adding docs wouldn\'t be much different from editing those Markdown files.\u201D","date":"2018-04-30T00:00:00.000Z","tags":[{"inline":false,"label":"Profilo","permalink":"/blog/tags/profilo"},{"inline":false,"label":"Adoption","permalink":"/blog/tags/adoption"}],"readingTime":5.95,"hasTruncateMarker":true,"authors":[{"name":"Christine Abernathy","url":"http://x.com/abernathyca","socials":{"x":"https://x.com/abernathyca"},"imageURL":"https://github.com/caabernathy.png","key":"abernathyca","page":null}],"frontMatter":{"title":"How I Converted Profilo to Docusaurus in Under 2 Hours","authors":["abernathyca"],"tags":["profilo","adoption"]},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Towards Docusaurus 2","permalink":"/blog/2018/09/11/Towards-Docusaurus-2"},"nextItem":{"title":"Introducing Docusaurus","permalink":"/blog/2017/12/14/introducing-docusaurus"}},"content":"> _\u201CJoel and I were discussing having a website and how it would have been great to launch with it. So I challenged myself to add Docusaurus support. It took just over an hour and a half. I\'m going to send you a PR with the addition so you can take a look and see if you like it. Your workflow for adding docs wouldn\'t be much different from editing those Markdown files.\u201D_\\n>\\n> _\u2014 Note sent to the Profilo team_\\n\\nThis is the story of the rather short journey it took to create the [Profilo](https://facebookincubator.github.io/profilo/) website using Docusaurus.\\n\\nProfilo, an Android library for collecting performance traces from production, [was announced](https://code.fb.com/android/profilo-understanding-app-performance-in-the-wild/) earlier this year. The project was [published on GitHub](https://github.com/facebookincubator/profilo/tree/802042f90f990998a272387e371b893af52465b8) with a less than [a handful or Markdown files](https://github.com/facebookincubator/profilo/tree/802042f90f990998a272387e371b893af52465b8/docs) to describe its functionality and no website to showcase any branding and highlight the logo. The task at hand was to turn these existing docs and logo into a website.\\n\\n<!--truncate-->\\n\\nIn general, when creating a website with Docusaurus you do the following:\\n\\n1. Generate a template website using Docusaurus scripts.\\n1. Customize the generated template files for your desired site colors and your project configuration (ex: website and GitHub links).\\n1. Create the website content:\\n 1. Add your docs and any supporting assets.\\n 1. Customize the default landing page provided by Docusaurus to suit your needs.\\n 1. Configure the default site navigation file.\\n1. Publish the website and set up how it will be published for future changes.\\n\\nGiven I had pre-existing Markdown files, I didn\'t have to generate the core content but simply make sure that Docusaurus could process the files by adding the expected metadata to them. Most of the work would therefore consist of customizing the defaults provided by Docusaurus.\\n\\n## Overview of Steps Taken\\n\\nHere\'s an overview of the steps taken to convert to a website. I\'ll discuss some of the design aspects in a later section.\\n\\n**Design and colors:**\\n\\n1. Got all the desired logo formats from designer. I had to create the _.favicon_ one.\\n1. Worked out some passable primary and secondary website colors using the http://paletton.com/ tools - very handy!\\n\\n**Initial website setup:**\\n\\n1. Forked the [Profilo project](https://github.com/facebookincubator/profilo/) on GitHub and created a local clone of the fork to set up the website.\\n1. Created the initial Docusaurus website using the [installation instructions](https://v1.docusaurus.io/docs/en/installation.html).\\n1. Deleted the `docs-examples-from-docusaurus` and `website/blog-examples-from-docusaurus` folders as these would not be needed. Profilo had existing docs we could use and there was no need for blogs at this time.\\n\\n**Content creation:**\\n\\n1. Added metadata to the existing Markdown files found in the `docs` folder, for example:\\n\\n ```md\\n ---\\n id: architecture\\n title: Architecture\\n sidebar_label: Architecture\\n ---\\n ```\\n\\n2. Added the logo assets to the `website/static/img` folder.\\n3. Modified `website/pages/en/index.js`, the landing page, to highlight Profilo features.\\n4. Modified `website/core/Footer.js`, the footer, to simplify it for Profilo.\\n5. Edited `website/siteConfig.js` (website configuration file) to specify the previously chosen primary and secondary colors.\\n6. Modified `website/sidebars.json` that specifies the sidebar navigation. Listed all the docs and customized it based on the metadata added to the Markdown files.\\n7. Edited the website configuration file to specify the GitHub properties, logo images, header links, and the website link.\\n8. Tested the website locally throughout this phase. (I ran `yarn start` from the `website` folder to start the server.)\\n\\n**Feedback and review changes:**\\n\\n1. Sent a [pull request](https://github.com/facebookincubator/profilo/pull/6) to the project.\\n2. Updated the colors after the designer rightly gasped at the ones I had chosen (IANAD).\\n3. Updated the colors and updated the PR.\\n4. The PR was then accepted and [merged](https://github.com/facebookincubator/profilo/commit/6ad033aaf5a7d54e6d842f45a5bccd051a8e45ad). Yay!\\n\\n**Website publishing:**\\n\\n1. Pushed the first website version by running the Docusaurus publish script from the command line:\\n\\n ```bash\\n USE_SSH=true \\\\\\n GIT_USER=caabernathy \\\\\\n CURRENT_BRANCH=master \\\\\\n yarn run publish-gh-pages\\n ```\\n\\n2. Configured CircleCI using the [provided Docusaurus instructions](https://v1.docusaurus.io/docs/en/publishing.html#automating-deployments-using-continuous-integration). There were 2 PRs for this, [the first](https://github.com/facebookincubator/profilo/pull/8)for the initial config and [the second](https://github.com/facebookincubator/profilo/pull/12) to make sure CircleCI only triggered for changes in the master branch (thanks Joel Marcey!).\\n\\nThe final website was published on https://facebookincubator.github.io/profilo/. It had taken 1.5 hours to get to the initial PR stage and another half an hour or so to respond to review feedback and publish the website.\\n\\n## Design\\n\\nHere\'s what the initial website looked like when the first pull request was sent out:\\n\\n![The website\'s front page, with a quite bright and saturated red color as the primary color, closely resembling the Profilo logo color, making the logo unrecognizable in the navbar](/img/profilo_blog_post_website_initial.png)\\n\\nMost of the time in the content creation was spent picking colors that worked reasonably well with the given logo. These colors were a good jumping off point for designer feedback. I used Photoshop to sample various portions of the logo.\\n\\n![Picking colors in Photoshop, with the Profilo logo and the main working area in the background and a color picker dialog in the foreground, selected to a red shade](/img/profilo_blog_post_photoshop_color_picker.png)\\n\\nI then took the RGB representation of the color and set it as the baseline color on [Paletton](http://paletton.com/). The website then gave me various color options to try on the website by editing the Docusaurus website configuration file.\\n\\n![Using Paletton to generate a full palette from the red shade selected. There\'s a color wheel showing all hues on the left, and a square showing various shades of red on the right.](/img/profilo_blog_post_palette_website_color_picker.png)\\n\\nThe selected primary and secondary colors were a good jumping off point for designer feedback.\\n\\nThere were also modifications made to the default website generated by Docusaurus. These changes were mainly around simplifying the footer and creating a customized landing page for Profilo that listed the project\'s features.\\n\\nHere\'s what the final website looked like:\\n\\n![The website\'s front page, with a much darker red color as the primary color, making both the logo and the primary-colored title text clearly legible.](/img/profilo_blog_post_website_final.png)\\n\\nThis is an example page showing the core content, in this case the Getting Started page:\\n\\n![A doc page with the sidebar on the left quarter of the screen and the main content occupying the rest. Some text is using the primary color and the main body uses multiple kinds of typesetting including bold, list, and code](/img/profilo_blog_post_website_final_docs.png)\\n\\nThis also shows the sidebar structure that was set up through editing `website/sidebars.json`.\\n\\nLastly, I didn\'t have to worry about handling responsive design. You get this out of the box with Docusaurus!\\n\\n![Mobile screenshots of the front page and sample doc page. The layout is automatically adjusted to make it appear more natural. The doc sidebar is hidden behind a button.](/img/profilo_blog_post_android_ios.png)\\n\\n## Final Thoughts\\n\\nThe Profilo engineers were happy to see that they didn\'t have to change their workflow to update existing content. They were able to continue working with Markdown files. This will still be true in the future if new docs are added, although there may be some config changes needed if the sidebar navigation needs to be updated.\\n\\nThe infrastructure provided by Docusaurus made it easy to convert Markdown files into a working website. Even though the project had only three docs, this gave Profilo a more professional look. So, it was well worth the short time investment to get it done."},{"id":"/2017/12/14/introducing-docusaurus","metadata":{"permalink":"/blog/2017/12/14/introducing-docusaurus","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2017/12-14-introducing-docusaurus.mdx","source":"@site/blog/2017/12-14-introducing-docusaurus.mdx","title":"Introducing Docusaurus","description":"We are very happy to introduce Docusaurus to help you manage one or many open source websites.","date":"2017-12-14T00:00:00.000Z","tags":[{"inline":false,"label":"Documentation","permalink":"/blog/tags/documentation"},{"inline":false,"label":"Blog","permalink":"/blog/tags/blog"},{"inline":false,"label":"Docusaurus","permalink":"/blog/tags/docusaurus"}],"readingTime":8.215,"hasTruncateMarker":true,"authors":[{"name":"Joel Marcey","title":"Developer Advocate at Meta","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{"x":"https://x.com/joelmarcey","github":"https://github.com/JoelMarcey"},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Introducing Docusaurus","authors":"JMarcey","tags":["documentation","blog","docusaurus"]},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"How I Converted Profilo to Docusaurus in Under 2 Hours","permalink":"/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"}},"content":"![](/img/slash-introducing.svg)\\n\\nWe are very happy to introduce [Docusaurus](https://github.com/facebook/docusaurus) to help you manage one or many open source websites.\\n\\nWe created [Docusaurus](https://docusaurus.io) for the following reasons:\\n\\n1. To put the focus on writing good documentation instead of worrying about the infrastructure of a website.\\n1. To provide features that many of our open source websites need like blog support, search and versioning.\\n1. To make it easy to push updates, new features, and bug fixes to everyone all at once.\\n1. And, finally, to provide a consistent look and feel across all of our open source projects.\\n\\n<!--truncate-->\\n\\nDocusaurus is a tool designed to make it easy for teams to publish documentation websites without having to worry about the infrastructure and design details. At its core, all a user has to provide are documentation files written in Markdown, customization of a provided home page written in React, and a few configuration modifications. Docusaurus handles the rest by providing default styles, site formatting, and simple document navigation. Getting started is easy, as users can [install](https://v1.docusaurus.io/docs/en/installation.html) it using `npm` or `yarn` via a simple initialization script that [creates a working example website out of the box](https://v1.docusaurus.io/docs/en/site-preparation.html).\\n\\nDocusaurus also provides core website and documentation features out-of-the-box including [blog support](https://v1.docusaurus.io/docs/en/blog.html), [internationalization](https://v1.docusaurus.io/docs/en/translation.html), [search](https://v1.docusaurus.io/docs/en/search.html), and [versioning](https://v1.docusaurus.io/docs/en/versioning.html). While some projects may not require any of these features, enabling them is generally a matter of updating configuration options instead of having to add the infrastructure from the ground up. As more features get added to Docusaurus, users just can easily update to the latest version. This can be done by simply running npm or yarn update and updating configuration options. Users or teams will no longer need to manually rework their entire website infrastructure each time a new feature gets added.\\n\\n## The Birth of docusaurus\\n\\n![](/img/slash-birth.png)\\n\\nWhen Facebook first started their open source program, many teams implemented a custom website for each of their open source projects. This approach presented challenges when the open source program team was asked to help the project teams improve their documentation. Since each site was unique, adding basic infrastructure such as a blog, consistent navigation, search, etc. became challenging undertakings.\\n\\nThe open source team tried to help mitigate this problem by coming up with a standard template, based on Jekyll, that could be used as a starting point for a project website. We asked our new projects to manually copy our template source to their repo, write their docs, and publish. This template approach was adopted by most of open source projects launched; some existing projects even converted their custom website implementations to the new template as well.\\n\\nThe problem with the \\"copy the template to your repo\\" approach is that, even though the platform is consistent, pushing updates becomes unmaintainable across an entire suite of projects already using the template. This is because we lost control of the template after a project copied it to their repo. Projects were free to modify the template as desired and apply their own project-specific features to it. So while projects share the same site generation platform, they have now diverted enough where they cannot take advantage of the new features we have added to the template over time. There was no easy way we could ask all current projects to \\"copy\\" a new version of the template since it might break their existing site or remove features that they have added on their own. Instead, we would have to apply the updates manually to each project one-by-one. This became very problematic when projects started asking for our team for internationalization support within the template, requiring low-level changes to how the template was structured and generated.\\n\\nSo we started thinking about what we could do to help mitigate the challenge of keeping sites updated and consistent across our entire portfolio. We also wanted multiple projects to share the same site generation software. We wanted them to start out with the same template, and yet have the flexibility to customize and adapt their site theme to suit their needs. They should be able to extend and customize their site, but when we update the underlying infrastructure with fixes and features, the project should be able update simply and without any breaking changes.\\n\\nDocusaurus was born!\\n\\nAt Facebook, Docusaurus allows us to quickly get different projects up and running with documentation websites, especially for teams who don\'t have much experience with web development or primarily want a basic site to showcase their project. Docusaurus already supports sites needing more advanced features like internationalization for Jest and versioning for React Native. As different projects request new features for their sites, they are added to Docusaurus and simultaneously provided to all projects! All together, this ends up greatly reducing the work needed to maintain different sites for different projects. Our teams are able to focus on keeping their projects healthier by spending more time adding features, fixing bugs, and writing documentation.\\n\\n## Getting Up and Running\\n\\n![](/img/slash-up-and-running.png)\\n\\nAt its core, we wanted sites running Docusaurus to be simple to use. With one [installation](https://v1.docusaurus.io/docs/en/installation.html) command and some simple [configuration](https://v1.docusaurus.io/docs/en/site-preparation.html), you can actually have a default running website.\\n\\nWhen you run `docusaurus-init`, you will see a structure similar to:\\n\\n```bash\\nroot-of-repo\\n\u251C\u2500\u2500 docs-examples-from-docusaurus\\n\u2502 \u251C\u2500\u2500 doc1.md\\n\u2502 \u251C\u2500\u2500 doc2.md\\n\u2502 \u251C\u2500\u2500 doc3.md\\n\u2502 \u251C\u2500\u2500 example-doc4.md\\n\u2502 \u2514\u2500\u2500 example-doc5.md\\n\u251C\u2500\u2500 website\\n\u2502 \u251C\u2500\u2500 blog-examples-from-docusaurus\\n\u2502 \u2502 \u251C\u2500\u2500 2016-03-11-blog-post.md\\n\u2502 \u2502 \u2514\u2500\u2500 2017-04-10-blog-post-two.md\\n\u2502 \u251C\u2500\u2500 core\\n\u2502 \u2502 \u2514\u2500\u2500 Footer.js\\n\u2502 \u251C\u2500\u2500 node_modules\\n\u2502 \u251C\u2500\u2500 package.json\\n\u2502 \u251C\u2500\u2500 pages\\n\u2502 \u251C\u2500\u2500 sidebars.json\\n\u2502 \u251C\u2500\u2500 siteConfig.js\\n\u2502 \u2514\u2500\u2500 static\\n```\\n\\nWith the exception of node_modules and package.json, all the directories and files you see are where you customize and add content to your Docusaurus-based website. The docs folder is where you add your Markdown that represents your documentation; the blog folder is where you add your Markdown for your [blog posts](https://v1.docusaurus.io/docs/en/blog.html); `siteConfig.js` is where you make most of the [customizations](https://v1.docusaurus.io/docs/en/site-config.html) for your site; `sidebars.json` is where you maintain the layout and content of the [sidebar](https://v1.docusaurus.io/docs/en/navigation.html) for your documentation; the `pages` folder is where you add [custom](https://v1.docusaurus.io/docs/en/custom-pages.html) pages for your site; the `static` folder is where all of your static assets go (e.g., CSS stylesheets and images); and the `core` folder is where you can customize core components of the site, in this case the footer.\\n\\n## How does Docusaurus work?\\n\\nDocusaurus is written primarily in JavaScript and [React](https://facebook.github.io/react), replacing Jekyll which we used in the old template. We use [Remarkable](https://github.com/jonschlinkert/remarkable) for our Markdown rendering and [highlight.js](https://highlightjs.org/) for our code block syntax highlighting. The core of Docusaurus\' functionality is in the [lib directory](https://github.com/facebookexperimental/Docusaurus/tree/master/lib) of the [Docusaurus repo](https://github.com/facebook/docusaurus/). The general structure looks like:\\n\\n```bash\\nroot-of-Docusaurus\\n\u251C\u2500\u2500 lib\\n\u2502 \u251C\u2500\u2500 core\\n\u2502 \u251C\u2500\u2500 server\\n\u2502 \u2502 \u251C\u2500\u2500 generate.js\\n\u2502 \u2502 \u251C\u2500\u2500 server.js\\n\u2502 \u2502 \u2514\u2500\u2500 ...and more files\\n\u2502 \u251C\u2500\u2500 static\\n\u2502 \u251C\u2500\u2500 build-files.js\\n\u2502 \u251C\u2500\u2500 copy-examples.js\\n\u2502 \u251C\u2500\u2500 generate-feed.js\\n\u2502 \u251C\u2500\u2500 publish-gh-pages.js\\n\u2502 \u251C\u2500\u2500 rename-version.js\\n\u2502 \u251C\u2500\u2500 start-server.js\\n\u2502 \u251C\u2500\u2500 versions.js\\n\u2502 \u2514\u2500\u2500 write-translations.js\\n```\\n\\nThe key files here are build-files.js and start-server.js. There are many similarities between these two files: `build-files.js` is used to build the physical artifacts for serving by an external web server. `start-server.js` is used to run the Docusaurus server and locally test your site. Both go through the following general process to take all of the Markdown and configuration to create a runnable website:\\n\\n1. Process your website settings in `siteConfig.js`\\n1. Read the document metadata that exists in all the Markdown files in your docs directory.\\n1. Create a table of contents for your documents based upon the IDs extracted from the metadata.\\n1. Convert the Markdown to HTML, including doing link replacement.\\n1. These files will go in a build/docs directory of the compiled site, and any translated versions will go into a language specific folder within the build/docs folder.\\n1. Repeat 1-3 for blog posts.\\n1. The blog file will go in a build/blog directory of the compiled site.\\n1. Read the main.css file and concatenate any user-defined css into master css file that will be in the build/css directory of the compiled site.\\n1. Copy images into an build/img directory of the compiled site.\\n1. Take any custom pages that were added to the pages folder of the site and compile/copy those into the root build directory of the compiled site. Any translated versions will go into a language specific folder within build.\\n1. Create CNAME and sitemap.xml files and add those to build.\\n\\nNote that this process does not take into full account how translations or versioning works. The underlying details of those features will be saved for future blog posts.\\n\\nThe final structure of your compiled site will look similar to:\\n\\n```bash\\nbuild\\n\u251C\u2500\u2500 website\\n\u2502 \u251C\u2500\u2500 CNAME\\n\u2502 \u251C\u2500\u2500 blog\\n\u2502 \u251C\u2500\u2500 css\\n\u2502 \u251C\u2500\u2500 docs\\n\u2502 \u251C\u2500\u2500 en\\n\u2502 \u251C\u2500\u2500 help.html # custom page\\n\u2502 \u251C\u2500\u2500 img\\n\u2502 \u251C\u2500\u2500 index.html # landing page\\n\u2502 \u251C\u2500\u2500 sitemap.xml\\n\u2502 \u2514\u2500\u2500 users.html # custom page\\n```\\n\\n## Community\\n\\n![](/img/docusaurus.svg)\\n\\nWe welcome your [contributions](https://github.com/facebook/docusaurus/blob/master/CONTRIBUTING.md) to Docusaurus, whether you want to use it for your own site, you want to [contribute](https://github.com/facebook/docusaurus/blob/master/CONTRIBUTING.md) to the Docusaurus core or just have questions. Follow us on [GitHub](https://github.com/facebook/docusaurus) and [X)](https://x.com/docusaurus).\\n\\n## Acknowledgements\\n\\nDocusaurus wouldn\'t exist without the work of the rest of the core Docusaurus team: [Eric Nakagawa](http://x.com/ericnakagawa), [Hector Ramos](https://x.com/hectorramos), [Eric Vicenti](https://x.com/EricVicenti) and [Frank Li](https://github.com/deltice) \u2014 a former intern at Facebook who implemented the core technology and features.\\n\\nSpecial thanks also goes out to our earliest [adopters](https://v1.docusaurus.io/en/users.html) of Docusaurus:\\n\\n- [BuckleScript](https://bucklescript.github.io/)\\n- [FastText](https://fasttext.cc)\\n- [Jest](https://jestjs.io)\\n- [Make It Open](http://makeitopen.com)\\n- [Prettier](https://prettier.io/)\\n- [Reason-react](https://reasonml.github.io/reason-react/)\\n- [React Native](https://facebook.github.io/react-native/)\\n- [Relay](https://facebook.github.io/relay/)\\n\\nWithout their dedication to creating or migrating their websites over to the platform, we would have not have been in the position where we are today.\\n\\n## Resources\\n\\n- [Read our documentation](https://v1.docusaurus.io)\\n- [Follow our X feed](https://x.com/docusaurus)\\n- [Follow us on GitHub](https://github.com/facebook/docusaurus)\\n- [About Slash, the Docusaurus mascot](https://v1.docusaurus.io/about-slash.html)"}],"blogListPaginated":[{"items":["/releases/3.5","/releases/3.4","/releases/3.3","/releases/3.2","/releases/3.1"],"metadata":{"permalink":"/blog","page":1,"postsPerPage":5,"totalPages":5,"totalCount":24,"nextPage":"/blog/page/2","blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}},{"items":["/releases/3.0","/preparing-your-site-for-docusaurus-v3","/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing","/releases/2.4","/releases/2.3"],"metadata":{"permalink":"/blog/page/2","page":2,"postsPerPage":5,"totalPages":5,"totalCount":24,"previousPage":"/blog","nextPage":"/blog/page/3","blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}},{"items":["/releases/2.2","/2022/09/01/docusaurus-2.1","/2022/08/01/announcing-docusaurus-2.0","/2022/01/24/docusaurus-2021-recap","/2021/11/21/algolia-docsearch-migration"],"metadata":{"permalink":"/blog/page/3","page":3,"postsPerPage":5,"totalPages":5,"totalCount":24,"previousPage":"/blog/page/2","nextPage":"/blog/page/4","blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}},{"items":["/2021/05/12/announcing-docusaurus-two-beta","/2021/03/09/releasing-docusaurus-i18n","/2021/01/19/docusaurus-2020-recap","/2020/01/07/tribute-to-endi","/2019/12/30/docusaurus-2019-recap"],"metadata":{"permalink":"/blog/page/4","page":4,"postsPerPage":5,"totalPages":5,"totalCount":24,"previousPage":"/blog/page/3","nextPage":"/blog/page/5","blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}},{"items":["/2018/12/14/Happy-First-Birthday-Slash","/2018/09/11/Towards-Docusaurus-2","/2018/04/30/How-I-Converted-Profilo-To-Docusaurus","/2017/12/14/introducing-docusaurus"],"metadata":{"permalink":"/blog/page/5","page":5,"postsPerPage":5,"totalPages":5,"totalCount":24,"previousPage":"/blog/page/4","blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"blogTags":{"/blog/tags/release":{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases","items":["/releases/3.5","/releases/3.4","/releases/3.3","/releases/3.2","/releases/3.1","/releases/3.0","/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing","/releases/2.4","/releases/2.3","/releases/2.2","/2022/09/01/docusaurus-2.1","/2022/08/01/announcing-docusaurus-2.0","/2021/05/12/announcing-docusaurus-two-beta","/2021/03/09/releasing-docusaurus-i18n"],"pages":[{"items":["/releases/3.5","/releases/3.4","/releases/3.3","/releases/3.2","/releases/3.1"],"metadata":{"permalink":"/blog/tags/release","page":1,"postsPerPage":5,"totalPages":3,"totalCount":14,"nextPage":"/blog/tags/release/page/2","blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}},{"items":["/releases/3.0","/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing","/releases/2.4","/releases/2.3","/releases/2.2"],"metadata":{"permalink":"/blog/tags/release/page/2","page":2,"postsPerPage":5,"totalPages":3,"totalCount":14,"previousPage":"/blog/tags/release","nextPage":"/blog/tags/release/page/3","blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}},{"items":["/2022/09/01/docusaurus-2.1","/2022/08/01/announcing-docusaurus-2.0","/2021/05/12/announcing-docusaurus-two-beta","/2021/03/09/releasing-docusaurus-i18n"],"metadata":{"permalink":"/blog/tags/release/page/3","page":3,"postsPerPage":5,"totalPages":3,"totalCount":14,"previousPage":"/blog/tags/release/page/2","blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/maintenance":{"inline":false,"label":"Maintenance","permalink":"/blog/tags/maintenance","items":["/preparing-your-site-for-docusaurus-v3"],"pages":[{"items":["/preparing-your-site-for-docusaurus-v3"],"metadata":{"permalink":"/blog/tags/maintenance","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/recap":{"inline":false,"label":"Recap","permalink":"/blog/tags/recap","description":"Blog posts about Docusaurus\' year recaps","items":["/2022/01/24/docusaurus-2021-recap","/2021/01/19/docusaurus-2020-recap","/2019/12/30/docusaurus-2019-recap"],"pages":[{"items":["/2022/01/24/docusaurus-2021-recap","/2021/01/19/docusaurus-2020-recap","/2019/12/30/docusaurus-2019-recap"],"metadata":{"permalink":"/blog/tags/recap","page":1,"postsPerPage":5,"totalPages":1,"totalCount":3,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/search":{"inline":false,"label":"Search","permalink":"/blog/tags/search","items":["/2021/11/21/algolia-docsearch-migration"],"pages":[{"items":["/2021/11/21/algolia-docsearch-migration"],"metadata":{"permalink":"/blog/tags/search","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/beta":{"inline":false,"label":"Beta","permalink":"/blog/tags/beta","items":["/2021/05/12/announcing-docusaurus-two-beta"],"pages":[{"items":["/2021/05/12/announcing-docusaurus-two-beta"],"metadata":{"permalink":"/blog/tags/beta","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/i-18-n":{"inline":false,"label":"I18n","permalink":"/blog/tags/i-18-n","items":["/2021/03/09/releasing-docusaurus-i18n"],"pages":[{"items":["/2021/03/09/releasing-docusaurus-i18n"],"metadata":{"permalink":"/blog/tags/i-18-n","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/endi":{"inline":false,"label":"Endi","permalink":"/blog/tags/endi","items":["/2020/01/07/tribute-to-endi"],"pages":[{"items":["/2020/01/07/tribute-to-endi"],"metadata":{"permalink":"/blog/tags/endi","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/tribute":{"inline":false,"label":"Tribute","permalink":"/blog/tags/tribute","items":["/2020/01/07/tribute-to-endi"],"pages":[{"items":["/2020/01/07/tribute-to-endi"],"metadata":{"permalink":"/blog/tags/tribute","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/birth":{"inline":false,"label":"Birth","permalink":"/blog/tags/birth","items":["/2018/12/14/Happy-First-Birthday-Slash"],"pages":[{"items":["/2018/12/14/Happy-First-Birthday-Slash"],"metadata":{"permalink":"/blog/tags/birth","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/new":{"inline":false,"label":"New","permalink":"/blog/tags/new","items":["/2018/09/11/Towards-Docusaurus-2"],"pages":[{"items":["/2018/09/11/Towards-Docusaurus-2"],"metadata":{"permalink":"/blog/tags/new","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/adoption":{"inline":false,"label":"Adoption","permalink":"/blog/tags/adoption","items":["/2018/09/11/Towards-Docusaurus-2","/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"],"pages":[{"items":["/2018/09/11/Towards-Docusaurus-2","/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"],"metadata":{"permalink":"/blog/tags/adoption","page":1,"postsPerPage":5,"totalPages":1,"totalCount":2,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/profilo":{"inline":false,"label":"Profilo","permalink":"/blog/tags/profilo","items":["/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"],"pages":[{"items":["/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"],"metadata":{"permalink":"/blog/tags/profilo","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/documentation":{"inline":false,"label":"Documentation","permalink":"/blog/tags/documentation","items":["/2017/12/14/introducing-docusaurus"],"pages":[{"items":["/2017/12/14/introducing-docusaurus"],"metadata":{"permalink":"/blog/tags/documentation","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/blog":{"inline":false,"label":"Blog","permalink":"/blog/tags/blog","items":["/2017/12/14/introducing-docusaurus"],"pages":[{"items":["/2017/12/14/introducing-docusaurus"],"metadata":{"permalink":"/blog/tags/blog","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false},"/blog/tags/docusaurus":{"inline":false,"label":"Docusaurus","permalink":"/blog/tags/docusaurus","items":["/2017/12/14/introducing-docusaurus"],"pages":[{"items":["/2017/12/14/introducing-docusaurus"],"metadata":{"permalink":"/blog/tags/docusaurus","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Read blog posts about Docusaurus from the team","blogTitle":"Docusaurus blog"}}],"unlisted":false}},"blogTagsListPath":"/blog/tags","authorsMap":{"JMarcey":{"name":"Joel Marcey","title":"Developer Advocate at Meta","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{"x":"https://x.com/joelmarcey","github":"https://github.com/JoelMarcey"},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"},"zpao":{"name":"Paul O\u2019Shannessy","title":"Engineering Manager at Meta","url":"https://x.com/zpao","page":{"permalink":"/blog/authors/zpao"},"socials":{"x":"https://x.com/zpao","github":"https://github.com/zpao"},"imageURL":"https://github.com/zpao.png","key":"zpao"},"slorber":{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"},"yangshun":{"name":"Yangshun Tay","title":"Front End Engineer at Meta","url":"https://github.com/yangshun","page":{"permalink":"/blog/authors/yangshun"},"socials":{"x":"https://x.com/yangshunz","github":"https://github.com/yangshun"},"imageURL":"https://github.com/yangshun.png","key":"yangshun"},"lex111":{"name":"Alexey Pyltsyn","title":"Open-source enthusiast","url":"https://github.com/lex111","email":"lex@php.net","page":{"permalink":"/blog/authors/lex-111"},"imageURL":"https://github.com/lex111.png","key":"lex111"},"Josh-Cena":{"name":"Joshua Chen","title":"Working hard on Docusaurus","url":"https://joshcena.com/","email":"sidachen2003@gmail.com","page":{"permalink":"/blog/authors/josh-cena"},"imageURL":"https://github.com/josh-cena.png","key":"Josh-Cena"},"endiliey":{"name":"Endilie Yacop Sucipto","title":"Maintainer of Docusaurus","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null},"abernathyca":{"name":"Christine Abernathy","url":"http://x.com/abernathyca","socials":{"x":"https://x.com/abernathyca"},"imageURL":"https://github.com/caabernathy.png","key":"abernathyca","page":null},"shortcuts":{"name":"Cl\xe9ment Vannicatte","title":"Software Engineer @ Algolia","url":"https://github.com/shortcuts","socials":{"x":"https://x.com/sh0rtcts","github":"https://github.com/shortcuts"},"imageURL":"https://github.com/shortcuts.png","key":"shortcuts","page":null}}},"blog-tests":{"blogSidebarTitle":"Recent posts","blogPosts":[{"id":"/2024/07/03/dual-author","metadata":{"permalink":"/tests/blog/2024/07/03/dual-author","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2024-07-03-dual-author.mdx","source":"@site/_dogfooding/_blog tests/2024-07-03-dual-author.mdx","title":"Dual author socials","description":"Content","date":"2024-07-03T00:00:00.000Z","tags":[],"readingTime":1.4,"hasTruncateMarker":false,"authors":[{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"x":"https://x.com/sebastienlorber","github":"https://github.com/slorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","newsletter":"https://thisweekinreact.com/newsletter"},"key":null,"page":null},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"x":"https://x.com/sebastienlorber","github":"https://github.com/slorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","newsletter":"https://thisweekinreact.com/newsletter"},"key":null,"page":null}],"frontMatter":{"title":"Dual author socials","authors":[{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"x":"https://x.com/sebastienlorber","github":"https://github.com/slorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","newsletter":"https://thisweekinreact.com/newsletter"}},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"x":"https://x.com/sebastienlorber","github":"https://github.com/slorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","newsletter":"https://thisweekinreact.com/newsletter"}}]},"unlisted":false,"nextItem":{"title":"How multiple authors with socials looks","permalink":"/tests/blog/2024/07/03/multiple-authors"}},"content":"## Content\\n\\nContent about the blog post"},{"id":"/2024/07/03/multiple-authors","metadata":{"permalink":"/tests/blog/2024/07/03/multiple-authors","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2024-07-03-multiple-authors.mdx","source":"@site/_dogfooding/_blog tests/2024-07-03-multiple-authors.mdx","title":"How multiple authors with socials looks","description":"Content","date":"2024-07-03T00:00:00.000Z","tags":[],"readingTime":1.4,"hasTruncateMarker":false,"authors":[{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor editor editor editor editor editor editor editor","socials":{"x":"https://x.com/sebastienlorber","github":"https://github.com/slorber","stackoverflow":"https://stackoverflow.com/users/82609/sebastien-lorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","newsletter":"https://thisweekinreact.com/newsletter"},"key":null,"page":null},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"x":"https://x.com/sebastienlorber"},"key":null,"page":null},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor","socials":{},"key":null,"page":null},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor editor editor editor editor editor editor editor","socials":{},"key":null,"page":null},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor","socials":{},"key":null,"page":null},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"github":"https://github.com/slorber","x":"https://x.com/sebastienlorber"},"key":null,"page":null},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor editor editor editor editor editor editor editor","socials":{"github":"https://github.com/slorber","x":"https://x.com/sebastienlorber"},"key":null,"page":null},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"a":"https://thisweekinreact.com/newsletter","b":"https://thisweekinreact.com/newsletter","c":"https://thisweekinreact.com/newsletter","d":"https://thisweekinreact.com/newsletter","e":"https://thisweekinreact.com/newsletter","f":"https://thisweekinreact.com/newsletter","g":"https://thisweekinreact.com/newsletter","h":"https://thisweekinreact.com/newsletter","i":"https://thisweekinreact.com/newsletter","j":"https://thisweekinreact.com/newsletter","k":"https://thisweekinreact.com/newsletter","l":"https://thisweekinreact.com/newsletter","m":"https://thisweekinreact.com/newsletter","n":"https://thisweekinreact.com/newsletter","o":"https://thisweekinreact.com/newsletter","p":"https://thisweekinreact.com/newsletter"},"key":null,"page":null},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"a":"https://thisweekinreact.com/newsletter","b":"https://thisweekinreact.com/newsletter","c":"https://thisweekinreact.com/newsletter","d":"https://thisweekinreact.com/newsletter","e":"https://thisweekinreact.com/newsletter","f":"https://thisweekinreact.com/newsletter","g":"https://thisweekinreact.com/newsletter","h":"https://thisweekinreact.com/newsletter","i":"https://thisweekinreact.com/newsletter","j":"https://thisweekinreact.com/newsletter","k":"https://thisweekinreact.com/newsletter","l":"https://thisweekinreact.com/newsletter","m":"https://thisweekinreact.com/newsletter","n":"https://thisweekinreact.com/newsletter","o":"https://thisweekinreact.com/newsletter","p":"https://thisweekinreact.com/newsletter","q":"https://thisweekinreact.com/newsletter","r":"https://thisweekinreact.com/newsletter","s":"https://thisweekinreact.com/newsletter","t":"https://thisweekinreact.com/newsletter","u":"https://thisweekinreact.com/newsletter","v":"https://thisweekinreact.com/newsletter","w":"https://thisweekinreact.com/newsletter","x":"https://thisweekinreact.com/newsletter","y":"https://thisweekinreact.com/newsletter","z":"https://thisweekinreact.com/newsletter"},"key":null,"page":null}],"frontMatter":{"title":"How multiple authors with socials looks","authors":[{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor editor editor editor editor editor editor editor","socials":{"x":"https://x.com/sebastienlorber","github":"https://github.com/slorber","stackoverflow":"https://stackoverflow.com/users/82609/sebastien-lorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","newsletter":"https://thisweekinreact.com/newsletter"}},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"x":"https://x.com/sebastienlorber"}},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor"},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor editor editor editor editor editor editor editor"},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor"},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"github":"https://github.com/slorber","x":"https://x.com/sebastienlorber"}},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor editor editor editor editor editor editor editor","socials":{"github":"https://github.com/slorber","x":"https://x.com/sebastienlorber"}},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"a":"https://thisweekinreact.com/newsletter","b":"https://thisweekinreact.com/newsletter","c":"https://thisweekinreact.com/newsletter","d":"https://thisweekinreact.com/newsletter","e":"https://thisweekinreact.com/newsletter","f":"https://thisweekinreact.com/newsletter","g":"https://thisweekinreact.com/newsletter","h":"https://thisweekinreact.com/newsletter","i":"https://thisweekinreact.com/newsletter","j":"https://thisweekinreact.com/newsletter","k":"https://thisweekinreact.com/newsletter","l":"https://thisweekinreact.com/newsletter","m":"https://thisweekinreact.com/newsletter","n":"https://thisweekinreact.com/newsletter","o":"https://thisweekinreact.com/newsletter","p":"https://thisweekinreact.com/newsletter"}},{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","socials":{"a":"https://thisweekinreact.com/newsletter","b":"https://thisweekinreact.com/newsletter","c":"https://thisweekinreact.com/newsletter","d":"https://thisweekinreact.com/newsletter","e":"https://thisweekinreact.com/newsletter","f":"https://thisweekinreact.com/newsletter","g":"https://thisweekinreact.com/newsletter","h":"https://thisweekinreact.com/newsletter","i":"https://thisweekinreact.com/newsletter","j":"https://thisweekinreact.com/newsletter","k":"https://thisweekinreact.com/newsletter","l":"https://thisweekinreact.com/newsletter","m":"https://thisweekinreact.com/newsletter","n":"https://thisweekinreact.com/newsletter","o":"https://thisweekinreact.com/newsletter","p":"https://thisweekinreact.com/newsletter","q":"https://thisweekinreact.com/newsletter","r":"https://thisweekinreact.com/newsletter","s":"https://thisweekinreact.com/newsletter","t":"https://thisweekinreact.com/newsletter","u":"https://thisweekinreact.com/newsletter","v":"https://thisweekinreact.com/newsletter","w":"https://thisweekinreact.com/newsletter","x":"https://thisweekinreact.com/newsletter","y":"https://thisweekinreact.com/newsletter","z":"https://thisweekinreact.com/newsletter"}}]},"unlisted":false,"prevItem":{"title":"Dual author socials","permalink":"/tests/blog/2024/07/03/dual-author"},"nextItem":{"title":"Single author socials","permalink":"/tests/blog/2024/07/03/single-author"}},"content":"## Content\\n\\nContent about the blog post"},{"id":"/2024/07/03/single-author","metadata":{"permalink":"/tests/blog/2024/07/03/single-author","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2024-07-03-single-author.mdx","source":"@site/_dogfooding/_blog tests/2024-07-03-single-author.mdx","title":"Single author socials","description":"Content","date":"2024-07-03T00:00:00.000Z","tags":[],"readingTime":1.4,"hasTruncateMarker":false,"authors":[{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor editor editor editor editor editor editor editor editor editor editor editor editor editor","socials":{"x":"https://x.com/sebastienlorber","github":"https://github.com/slorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","newsletter":"https://thisweekinreact.com/newsletter"},"key":null,"page":null}],"frontMatter":{"title":"Single author socials","authors":[{"name":"S\xe9bastien Lorber","imageURL":"https://github.com/slorber.png","title":"Docusaurus Maintainer and This Week In React editor editor editor editor editor editor editor editor editor editor editor editor editor editor","socials":{"x":"https://x.com/sebastienlorber","github":"https://github.com/slorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","newsletter":"https://thisweekinreact.com/newsletter"}}]},"unlisted":false,"prevItem":{"title":"How multiple authors with socials looks","permalink":"/tests/blog/2024/07/03/multiple-authors"},"nextItem":{"title":"Ensure heading anchor slugs respect GitHub emoji behavior","permalink":"/tests/blog/2023/08/05/"}},"content":"## Content\\n\\nContent about the blog post"},{"id":"/2023/08/05/","metadata":{"permalink":"/tests/blog/2023/08/05/","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2023-08-05.mdx","source":"@site/_dogfooding/_blog tests/2023-08-05.mdx","title":"Ensure heading anchor slugs respect GitHub emoji behavior","description":"This is a friendly header","date":"2023-08-05T00:00:00.000Z","tags":[],"readingTime":3.2,"hasTruncateMarker":false,"authors":[],"frontMatter":{"title":"Ensure heading anchor slugs respect GitHub emoji behavior","date":"2023-08-05T00:00:00.000Z"},"unlisted":false,"prevItem":{"title":"Single author socials","permalink":"/tests/blog/2024/07/03/single-author"},"nextItem":{"title":"Test if href in feed resolved correctly","permalink":"/tests/blog/2023/07/19/a"}},"content":"## :smiley: This is a friendly header\\n\\n## \u{1F603} This is a friendly header (real smiley)"},{"id":"/2023/07/19/a","metadata":{"permalink":"/tests/blog/2023/07/19/a","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2023-07-19-a.mdx","source":"@site/_dogfooding/_blog tests/2023-07-19-a.mdx","title":"Test if href in feed resolved correctly","description":"absolute full url","date":"2023-07-19T00:00:00.000Z","tags":[],"readingTime":2.2,"hasTruncateMarker":false,"authors":[],"frontMatter":{"title":"Test if href in feed resolved correctly"},"unlisted":false,"prevItem":{"title":"Ensure heading anchor slugs respect GitHub emoji behavior","permalink":"/tests/blog/2023/08/05/"},"nextItem":{"title":"Test Relative Path","permalink":"/tests/blog/2023/07/19/b"}},"content":"[absolute full url](https://github.com/facebook/docusaurus)\\n\\n[absolute url with implicit domain name](/tests/blog/2023/07/19/b)\\n\\n[relative url](2023-07-19-b.mdx)"},{"id":"/2023/07/19/b","metadata":{"permalink":"/tests/blog/2023/07/19/b","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2023-07-19-b.mdx","source":"@site/_dogfooding/_blog tests/2023-07-19-b.mdx","title":"Test Relative Path","description":"","date":"2023-07-19T00:00:00.000Z","tags":[],"readingTime":0,"hasTruncateMarker":false,"authors":[],"frontMatter":{},"unlisted":false,"prevItem":{"title":"Test if href in feed resolved correctly","permalink":"/tests/blog/2023/07/19/a"},"nextItem":{"title":"A post with html slug","permalink":"/tests/blog/x/y/z.html"}},"content":""},{"id":"/x/y/z.html","metadata":{"permalink":"/tests/blog/x/y/z.html","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2022-10-02-html-slug.mdx","source":"@site/_dogfooding/_blog tests/2022-10-02-html-slug.mdx","title":"A post with html slug","description":"This is a blog post with an html slug!","date":"2022-10-02T00:00:00.000Z","tags":[{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"}],"readingTime":3.4,"hasTruncateMarker":false,"authors":[],"frontMatter":{"title":"A post with html slug","tags":["paginated-tag"],"slug":"/x/y/z.html"},"unlisted":false,"prevItem":{"title":"Test Relative Path","permalink":"/tests/blog/2023/07/19/b"},"nextItem":{"title":"First post with footnote to test posts with same footnote reference.","permalink":"/tests/blog/2022/04/20/dup-footnote"}},"content":"This is a blog post with an html slug!\\n\\n```mdx-code-block\\nimport Partial from \\"./_partial.mdx\\"\\n\\n<Partial />\\n```"},{"id":"/unlisted-post","metadata":{"permalink":"/tests/blog/unlisted-post","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2022-08-24-post-unlisted.mdx","source":"@site/_dogfooding/_blog tests/2022-08-24-post-unlisted.mdx","title":"Unlisted blog post","description":"This unlisted blog post should be \\"hidden\\" in production, but remain accessible.","date":"2022-08-24T00:00:00.000Z","tags":[{"inline":false,"label":"Blog","permalink":"/tests/blog/tags/blog"},{"inline":false,"label":"Visibility","permalink":"/tests/blog/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/blog/tags/unlisted"}],"readingTime":4.2,"hasTruncateMarker":false,"authors":[],"frontMatter":{"title":"Unlisted blog post","unlisted":true,"tags":["blog","visibility","unlisted"],"slug":"/unlisted-post"},"unlisted":true},"content":"This unlisted blog post should be \\"hidden\\" in production, but remain accessible.\\n\\nIt is filtered from the sidebar, sitemap, SEO indexation..."},{"id":"/2022/04/20/dup-footnote","metadata":{"permalink":"/tests/blog/2022/04/20/dup-footnote","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2022-04-20-dup-footnote.mdx","source":"@site/_dogfooding/_blog tests/2022-04-20-dup-footnote.mdx","title":"First post with footnote to test posts with same footnote reference.","description":"foo","date":"2022-04-20T00:00:00.000Z","tags":[],"readingTime":1.8,"hasTruncateMarker":false,"authors":[],"frontMatter":{"title":"First post with footnote to test posts with same footnote reference."},"unlisted":false,"prevItem":{"title":"A post with html slug","permalink":"/tests/blog/x/y/z.html"},"nextItem":{"title":"Second post with footnote to test posts with same footnote reference.","permalink":"/tests/blog/2022/01/22/dup-footnote"}},"content":"foo[^1]\\n\\nbar[^2]\\n\\nbaz[^3]\\n\\n[^1]: foo\\n[^2]: bar\\n[^3]: baz"},{"id":"/2022/01/22/dup-footnote","metadata":{"permalink":"/tests/blog/2022/01/22/dup-footnote","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2022-01-22-dup-footnote.mdx","source":"@site/_dogfooding/_blog tests/2022-01-22-dup-footnote.mdx","title":"Second post with footnote to test posts with same footnote reference.","description":"foo","date":"2022-01-22T00:00:00.000Z","tags":[],"readingTime":1.8,"hasTruncateMarker":false,"authors":[],"frontMatter":{"title":"Second post with footnote to test posts with same footnote reference."},"unlisted":false,"prevItem":{"title":"First post with footnote to test posts with same footnote reference.","permalink":"/tests/blog/2022/04/20/dup-footnote"},"nextItem":{"title":"Third post with footnote to test posts with same footnote reference.","permalink":"/tests/blog/2022/01/21/dup-footnote"}},"content":"foo[^1]\\n\\nbar[^2]\\n\\nbaz[^3]\\n\\n[^1]: foo\\n[^2]: bar\\n[^3]: baz"},{"id":"/2022/01/21/dup-footnote","metadata":{"permalink":"/tests/blog/2022/01/21/dup-footnote","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2022-01-21-dup-footnote.mdx","source":"@site/_dogfooding/_blog tests/2022-01-21-dup-footnote.mdx","title":"Third post with footnote to test posts with same footnote reference.","description":"foo","date":"2022-01-21T00:00:00.000Z","tags":[],"readingTime":1.8,"hasTruncateMarker":false,"authors":[],"frontMatter":{"title":"Third post with footnote to test posts with same footnote reference."},"unlisted":false,"prevItem":{"title":"Second post with footnote to test posts with same footnote reference.","permalink":"/tests/blog/2022/01/22/dup-footnote"},"nextItem":{"title":"Image-only authors","permalink":"/tests/blog/2022/01/20/image-only-authors"}},"content":"foo[^1]\\n\\nbar[^2]\\n\\nbaz[^3]\\n\\n[^1]: foo\\n[^2]: bar\\n[^3]: baz"},{"id":"/2022/01/20/image-only-authors","metadata":{"permalink":"/tests/blog/2022/01/20/image-only-authors","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2022-01-20-image-only-authors.mdx","source":"@site/_dogfooding/_blog tests/2022-01-20-image-only-authors.mdx","title":"Image-only authors","description":"You can make a compact authors list without author names!","date":"2022-01-20T00:00:00.000Z","tags":[{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"}],"readingTime":2,"hasTruncateMarker":false,"authors":[{"image_url":"https://github.com/endiliey.png","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/lex111.png","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/slorber.png","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/yangshun.png","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/JoelMarcey.png","url":"https://github.com/JoelMarcey","imageURL":"https://github.com/JoelMarcey.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/Josh-Cena.png","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/deltice.png","url":"https://github.com/deltice","imageURL":"https://github.com/deltice.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/SamChou19815.png","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/ericnakagawa.png","url":"https://github.com/ericnakagawa","imageURL":"https://github.com/ericnakagawa.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/Simek.png","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/hramos.png","url":"https://github.com/hramos","imageURL":"https://github.com/hramos.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/wgao19.png","url":"https://github.com/wgao19","imageURL":"https://github.com/wgao19.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/rickyvetter.png","url":"https://github.com/rickyvetter","imageURL":"https://github.com/rickyvetter.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/fanny.png","url":"https://github.com/fanny","imageURL":"https://github.com/fanny.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/armano2.png","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/RDIL.png","url":"https://github.com/RDIL","imageURL":"https://github.com/RDIL.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/teikjun.png","url":"https://github.com/teikjun","imageURL":"https://github.com/teikjun.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/hong4rc.png","url":"https://github.com/hong4rc","imageURL":"https://github.com/hong4rc.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/anshulrgoyal.png","url":"https://github.com/anshulrgoyal","imageURL":"https://github.com/anshulrgoyal.png","socials":{},"key":null,"page":null},{"image_url":"https://github.com/italicize.png","url":"https://github.com/italicize","imageURL":"https://github.com/italicize.png","socials":{},"key":null,"page":null}],"frontMatter":{"authors":[{"image_url":"https://github.com/endiliey.png","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png"},{"image_url":"https://github.com/lex111.png","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png"},{"image_url":"https://github.com/slorber.png","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png"},{"image_url":"https://github.com/yangshun.png","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png"},{"image_url":"https://github.com/JoelMarcey.png","url":"https://github.com/JoelMarcey","imageURL":"https://github.com/JoelMarcey.png"},{"image_url":"https://github.com/Josh-Cena.png","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png"},{"image_url":"https://github.com/deltice.png","url":"https://github.com/deltice","imageURL":"https://github.com/deltice.png"},{"image_url":"https://github.com/SamChou19815.png","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png"},{"image_url":"https://github.com/ericnakagawa.png","url":"https://github.com/ericnakagawa","imageURL":"https://github.com/ericnakagawa.png"},{"image_url":"https://github.com/Simek.png","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png"},{"image_url":"https://github.com/hramos.png","url":"https://github.com/hramos","imageURL":"https://github.com/hramos.png"},{"image_url":"https://github.com/wgao19.png","url":"https://github.com/wgao19","imageURL":"https://github.com/wgao19.png"},{"image_url":"https://github.com/rickyvetter.png","url":"https://github.com/rickyvetter","imageURL":"https://github.com/rickyvetter.png"},{"image_url":"https://github.com/fanny.png","url":"https://github.com/fanny","imageURL":"https://github.com/fanny.png"},{"image_url":"https://github.com/armano2.png","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png"},{"image_url":"https://github.com/RDIL.png","url":"https://github.com/RDIL","imageURL":"https://github.com/RDIL.png"},{"image_url":"https://github.com/teikjun.png","url":"https://github.com/teikjun","imageURL":"https://github.com/teikjun.png"},{"image_url":"https://github.com/hong4rc.png","url":"https://github.com/hong4rc","imageURL":"https://github.com/hong4rc.png"},{"image_url":"https://github.com/anshulrgoyal.png","url":"https://github.com/anshulrgoyal","imageURL":"https://github.com/anshulrgoyal.png"},{"image_url":"https://github.com/italicize.png","url":"https://github.com/italicize","imageURL":"https://github.com/italicize.png"}],"tags":["paginated-tag"]},"unlisted":false,"prevItem":{"title":"Third post with footnote to test posts with same footnote reference.","permalink":"/tests/blog/2022/01/21/dup-footnote"},"nextItem":{"title":"Post with duplicate title","permalink":"/tests/blog/2021/11/13/dup-title"}},"content":"You can make a compact authors list without author names!"},{"id":"/2021/11/13/dup-title","metadata":{"permalink":"/tests/blog/2021/11/13/dup-title","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2021-11-13-dup-title.mdx","source":"@site/_dogfooding/_blog tests/2021-11-13-dup-title.mdx","title":"Post with duplicate title","description":"I hope I\'m still here","date":"2021-11-13T00:00:00.000Z","tags":[{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"}],"readingTime":1,"hasTruncateMarker":false,"authors":[],"frontMatter":{"tags":["paginated-tag"]},"unlisted":false,"prevItem":{"title":"Image-only authors","permalink":"/tests/blog/2022/01/20/image-only-authors"},"nextItem":{"title":"Blog post MDX require Feed tests","permalink":"/tests/blog/2021/10/08/blog-post-mdx-require-feed-tests"}},"content":"I hope I\'m still here"},{"id":"/2021/10/08/blog-post-mdx-require-feed-tests","metadata":{"permalink":"/tests/blog/2021/10/08/blog-post-mdx-require-feed-tests","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2021-10-08-blog-post-mdx-require-feed-tests.mdx","source":"@site/_dogfooding/_blog tests/2021-10-08-blog-post-mdx-require-feed-tests.mdx","title":"Blog post MDX require Feed tests","description":"Some MDX tests, mostly to test how the RSS feed render those","date":"2021-10-08T00:00:00.000Z","tags":[{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"},{"inline":false,"label":"Blog","permalink":"/tests/blog/tags/blog"},{"inline":false,"label":"Docusaurus","permalink":"/tests/blog/tags/docusaurus"},{"inline":false,"label":"Long-long","permalink":"/tests/blog/tags/long-long"},{"inline":false,"label":"Long-long-long","permalink":"/tests/blog/tags/long-long-long"},{"inline":false,"label":"Long-long-long-long","permalink":"/tests/blog/tags/long-long-long-long"}],"readingTime":6.6,"hasTruncateMarker":true,"authors":[{"name":"Sebastien Lorber","title":"Docusaurus maintainer","url":"https://sebastienlorber.com","page":{"permalink":"/tests/blog/authors/slorber"},"socials":{"x":"https://x.com/sebastienlorber"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Blog post MDX require Feed tests","authors":["slorber"],"tags":["paginated-tag","blog","docusaurus","long-long","long-long-long","long-long-long-long"]},"unlisted":false,"prevItem":{"title":"Post with duplicate title","permalink":"/tests/blog/2021/11/13/dup-title"},"nextItem":{"title":"Blog post MDX Feed tests","permalink":"/tests/blog/2021/10/07/blog-post-mdx-feed-tests"}},"content":"Some MDX tests, mostly to test how the RSS feed render those\\n\\n{/* truncate */}\\n\\nTest MDX with require calls\\n\\nimport useBaseUrl from \'@docusaurus/useBaseUrl\';\\n\\n<img src={useBaseUrl(\'/img/docusaurus.png\')} />\\n\\n<img src={require(\'../../static/img/docusaurus.png\').default} />\\n\\n<img src={require(\'@site/static/img/docusaurus.png\').default} />"},{"id":"/2021/10/07/blog-post-mdx-feed-tests","metadata":{"permalink":"/tests/blog/2021/10/07/blog-post-mdx-feed-tests","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2021-10-07-blog-post-mdx-feed-tests.mdx","source":"@site/_dogfooding/_blog tests/2021-10-07-blog-post-mdx-feed-tests.mdx","title":"Blog post MDX Feed tests","description":"Some MDX tests, mostly to test how the RSS feed render those","date":"2021-10-07T00:00:00.000Z","tags":[{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"},{"inline":false,"label":"Blog","permalink":"/tests/blog/tags/blog"},{"inline":false,"label":"Docusaurus","permalink":"/tests/blog/tags/docusaurus"},{"inline":false,"label":"Long-long","permalink":"/tests/blog/tags/long-long"},{"inline":false,"label":"Long-long-long","permalink":"/tests/blog/tags/long-long-long"},{"inline":false,"label":"Long-long-long-long","permalink":"/tests/blog/tags/long-long-long-long"}],"hasTruncateMarker":true,"authors":[{"name":"Sebastien Lorber","title":"Docusaurus maintainer","url":"https://sebastienlorber.com","page":{"permalink":"/tests/blog/authors/slorber"},"socials":{"x":"https://x.com/sebastienlorber"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Blog post MDX Feed tests","authors":["slorber"],"tags":["paginated-tag","blog","docusaurus","long-long","long-long-long","long-long-long-long"],"hide_reading_time":true},"unlisted":false,"prevItem":{"title":"Blog post MDX require Feed tests","permalink":"/tests/blog/2021/10/08/blog-post-mdx-require-feed-tests"},"nextItem":{"title":"Post with duplicate title","permalink":"/tests/blog/2021/09/13/dup-title"}},"content":"Some MDX tests, mostly to test how the RSS feed render those\\n\\n{/* truncate */}\\n\\n## Imports\\n\\nHere are some imports:\\n\\nimport Tabs from \'@theme/Tabs\';\\nimport TabItem from \'@theme/TabItem\';\\n\\n## Exports\\n\\nHere are some exports:\\n\\nexport const someExport = 42;\\n\\n## Tabs test\\n\\nHere are some tabs:\\n\\n<Tabs>\\n <TabItem value=\\"apple\\" label=\\"Apple\\">\\n This is an apple \u{1F34E}\\n </TabItem>\\n <TabItem value=\\"orange\\" label=\\"Orange\\">\\n This is an orange \u{1F34A}\\n </TabItem>\\n</Tabs>\\n\\nHere are some tabs, inside `mdx-code-block`:\\n\\n```mdx-code-block\\n<Tabs>\\n <TabItem value=\\"apple\\" label=\\"Apple\\">\\n This is an apple \u{1F34E}\\n </TabItem>\\n <TabItem value=\\"orange\\" label=\\"Orange\\">\\n This is an orange \u{1F34A}\\n </TabItem>\\n</Tabs>\\n```"},{"id":"/2021/09/13/dup-title","metadata":{"permalink":"/tests/blog/2021/09/13/dup-title","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2021-09-13-dup-title.mdx","source":"@site/_dogfooding/_blog tests/2021-09-13-dup-title.mdx","title":"Post with duplicate title","description":"See https://github.com/facebook/docusaurus/issues/6059. This one and 2021-11-13-dup-title.md should both show up.","date":"2021-09-13T00:00:00.000Z","tags":[{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"}],"readingTime":2,"hasTruncateMarker":false,"authors":[{"name":"Josh-Cena1","socials":{},"key":null,"page":null},{"name":"Josh-Cena2","image_url":"https://github.com/Josh-Cena.png","imageURL":"https://github.com/Josh-Cena.png","socials":{},"key":null,"page":null},{"name":"Josh-Cena3","url":"https://github.com/Josh-Cena","socials":{},"key":null,"page":null},{"name":"Josh-Cena4","email":"sidechen2003@gmail.com","socials":{},"key":null,"page":null}],"frontMatter":{"tags":["paginated-tag"],"authors":[{"name":"Josh-Cena1"},{"name":"Josh-Cena2","image_url":"https://github.com/Josh-Cena.png","imageURL":"https://github.com/Josh-Cena.png"},{"name":"Josh-Cena3","url":"https://github.com/Josh-Cena"},{"name":"Josh-Cena4","email":"sidechen2003@gmail.com"}]},"unlisted":false,"prevItem":{"title":"Blog post MDX Feed tests","permalink":"/tests/blog/2021/10/07/blog-post-mdx-feed-tests"},"nextItem":{"title":"Multiple authors","permalink":"/tests/blog/2021/08/23/multiple-authors"}},"content":"See https://github.com/facebook/docusaurus/issues/6059. This one and [2021-11-13-dup-title.md](./2021-11-13-dup-title.mdx) should both show up."},{"id":"/2021/08/23/multiple-authors","metadata":{"permalink":"/tests/blog/2021/08/23/multiple-authors","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2021-08-23-multiple-authors.mdx","source":"@site/_dogfooding/_blog tests/2021-08-23-multiple-authors.mdx","title":"Multiple authors","description":"You can have multiple authors for one blog post!","date":"2021-08-23T00:00:00.000Z","tags":[{"inline":false,"label":"Blog","permalink":"/tests/blog/tags/blog"},{"inline":false,"label":"Docusaurus","permalink":"/tests/blog/tags/docusaurus"},{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"},{"inline":false,"label":"Long","permalink":"/tests/blog/tags/long"},{"inline":false,"label":"Long-long","permalink":"/tests/blog/tags/long-long"},{"inline":false,"label":"Long-long-long","permalink":"/tests/blog/tags/long-long-long"},{"inline":false,"label":"Long-long-long-long","permalink":"/tests/blog/tags/long-long-long-long"},{"inline":false,"label":"Long-long-long-long-long","permalink":"/tests/blog/tags/long-long-long-long-long"}],"readingTime":1.8,"hasTruncateMarker":false,"authors":[{"name":"Sebastien Lorber","title":"Docusaurus maintainer","url":"https://sebastienlorber.com","page":{"permalink":"/tests/blog/authors/slorber"},"socials":{"x":"https://x.com/sebastienlorber"},"imageURL":"https://github.com/slorber.png","key":"slorber"},{"name":"Josh-Cena","image_url":"https://avatars.githubusercontent.com/u/55398995?v=4","url":"https://joshcena.com","imageURL":"https://avatars.githubusercontent.com/u/55398995?v=4","socials":{},"key":null,"page":null}],"frontMatter":{"authors":["slorber",{"name":"Josh-Cena","image_url":"https://avatars.githubusercontent.com/u/55398995?v=4","url":"https://joshcena.com","imageURL":"https://avatars.githubusercontent.com/u/55398995?v=4"}],"tags":["blog","docusaurus","paginated-tag","long","long-long","long-long-long","long-long-long-long","long-long-long-long-long"]},"unlisted":false,"prevItem":{"title":"Post with duplicate title","permalink":"/tests/blog/2021/09/13/dup-title"},"nextItem":{"title":"Hmmm!","permalink":"/tests/blog/2021/08/22/no-author"}},"content":"You can have multiple authors for one blog post!"},{"id":"/2021/08/22/no-author","metadata":{"permalink":"/tests/blog/2021/08/22/no-author","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2021-08-22-no-author.mdx","source":"@site/_dogfooding/_blog tests/2021-08-22-no-author.mdx","title":"Hmmm!","description":"This is a blog post from an anonymous author!","date":"2021-08-22T00:00:00.000Z","tags":[{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"}],"readingTime":3.4,"hasTruncateMarker":false,"authors":[],"frontMatter":{"tags":["paginated-tag"]},"unlisted":false,"prevItem":{"title":"Multiple authors","permalink":"/tests/blog/2021/08/23/multiple-authors"},"nextItem":{"title":"Blog TOC FrontMatter tests","permalink":"/tests/blog/2021/08/21/blog-post-toc-tests"}},"content":"This is a blog post from an anonymous author!\\n\\n```mdx-code-block\\nimport Partial from \\"./_partial.mdx\\"\\n\\n<Partial />\\n```"},{"id":"/2021/08/21/blog-post-toc-tests","metadata":{"permalink":"/tests/blog/2021/08/21/blog-post-toc-tests","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/2021-08-21-blog-post-toc-tests.mdx","source":"@site/_dogfooding/_blog tests/2021-08-21-blog-post-toc-tests.mdx","title":"Blog TOC FrontMatter tests","description":"{/ truncate /}","date":"2021-08-21T00:00:00.000Z","tags":[{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"}],"readingTime":1.8,"hasTruncateMarker":true,"authors":[{"name":"Sebastien Lorber","title":"Docusaurus maintainer","url":"https://sebastienlorber.com","page":{"permalink":"/tests/blog/authors/slorber"},"socials":{"x":"https://x.com/sebastienlorber"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Blog TOC FrontMatter tests","authors":["slorber"],"toc_min_heading_level":2,"toc_max_heading_level":4,"tags":["paginated-tag"]},"unlisted":false,"prevItem":{"title":"Hmmm!","permalink":"/tests/blog/2021/08/22/no-author"},"nextItem":{"title":"Using twice the blog plugin","permalink":"/tests/blog/2020/08/03/demo/second-blog-intro"}},"content":"{/* truncate */}\\n\\nimport Content from \'@site/_dogfooding/_partials/toc-tests.mdx\';\\n\\n<Content />"},{"id":"/2020/08/03/demo/second-blog-intro","metadata":{"permalink":"/tests/blog/2020/08/03/demo/second-blog-intro","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests/_dogfooding/_blog tests/demo/2020-08-03-second-blog-intro.mdx","source":"@site/_dogfooding/_blog tests/demo/2020-08-03-second-blog-intro.mdx","title":"Using twice the blog plugin","description":"Did you know you can use multiple instances of the same plugin?","date":"2020-08-03T00:00:00.000Z","tags":[{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag"},{"inline":false,"label":"Blog","permalink":"/tests/blog/tags/blog"},{"inline":false,"label":"Docusaurus","permalink":"/tests/blog/tags/docusaurus"}],"readingTime":7,"hasTruncateMarker":true,"authors":[{"name":"Sebastien Lorber","title":"Docusaurus maintainer","url":"https://sebastienlorber.com","page":{"permalink":"/tests/blog/authors/slorber"},"socials":{"x":"https://x.com/sebastienlorber"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Using twice the blog plugin","authors":["slorber"],"tags":["paginated-tag","blog","docusaurus"]},"unlisted":false,"prevItem":{"title":"Blog TOC FrontMatter tests","permalink":"/tests/blog/2021/08/21/blog-post-toc-tests"}},"content":"Did you know you can use multiple instances of the same plugin?\\n\\n{/* truncate */}\\n\\n:::tip\\n\\nUsing twice the blog plugin permits you to create more than one blog on the same Docusaurus website!\\n\\n:::"}],"blogListPaginated":[{"items":["/2024/07/03/dual-author","/2024/07/03/multiple-authors","/2024/07/03/single-author"],"metadata":{"permalink":"/tests/blog","page":1,"postsPerPage":3,"totalPages":7,"totalCount":19,"nextPage":"/tests/blog/page/2","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2023/08/05/","/2023/07/19/a","/2023/07/19/b"],"metadata":{"permalink":"/tests/blog/page/2","page":2,"postsPerPage":3,"totalPages":7,"totalCount":19,"previousPage":"/tests/blog","nextPage":"/tests/blog/page/3","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/x/y/z.html","/2022/04/20/dup-footnote","/2022/01/22/dup-footnote"],"metadata":{"permalink":"/tests/blog/page/3","page":3,"postsPerPage":3,"totalPages":7,"totalCount":19,"previousPage":"/tests/blog/page/2","nextPage":"/tests/blog/page/4","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2022/01/21/dup-footnote","/2022/01/20/image-only-authors","/2021/11/13/dup-title"],"metadata":{"permalink":"/tests/blog/page/4","page":4,"postsPerPage":3,"totalPages":7,"totalCount":19,"previousPage":"/tests/blog/page/3","nextPage":"/tests/blog/page/5","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/09/13/dup-title"],"metadata":{"permalink":"/tests/blog/page/5","page":5,"postsPerPage":3,"totalPages":7,"totalCount":19,"previousPage":"/tests/blog/page/4","nextPage":"/tests/blog/page/6","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2021/08/23/multiple-authors","/2021/08/22/no-author","/2021/08/21/blog-post-toc-tests"],"metadata":{"permalink":"/tests/blog/page/6","page":6,"postsPerPage":3,"totalPages":7,"totalCount":19,"previousPage":"/tests/blog/page/5","nextPage":"/tests/blog/page/7","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2020/08/03/demo/second-blog-intro"],"metadata":{"permalink":"/tests/blog/page/7","page":7,"postsPerPage":3,"totalPages":7,"totalCount":19,"previousPage":"/tests/blog/page/6","blogDescription":"Blog","blogTitle":"Blog"}}],"blogTags":{"/tests/blog/tags/paginated-tag":{"inline":false,"label":"Paginated-tag","permalink":"/tests/blog/tags/paginated-tag","items":["/x/y/z.html","/2022/01/20/image-only-authors","/2021/11/13/dup-title","/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/09/13/dup-title","/2021/08/23/multiple-authors","/2021/08/22/no-author","/2021/08/21/blog-post-toc-tests","/2020/08/03/demo/second-blog-intro"],"pages":[{"items":["/x/y/z.html","/2022/01/20/image-only-authors","/2021/11/13/dup-title"],"metadata":{"permalink":"/tests/blog/tags/paginated-tag","page":1,"postsPerPage":3,"totalPages":4,"totalCount":10,"nextPage":"/tests/blog/tags/paginated-tag/page/2","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/09/13/dup-title"],"metadata":{"permalink":"/tests/blog/tags/paginated-tag/page/2","page":2,"postsPerPage":3,"totalPages":4,"totalCount":10,"previousPage":"/tests/blog/tags/paginated-tag","nextPage":"/tests/blog/tags/paginated-tag/page/3","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2021/08/23/multiple-authors","/2021/08/22/no-author","/2021/08/21/blog-post-toc-tests"],"metadata":{"permalink":"/tests/blog/tags/paginated-tag/page/3","page":3,"postsPerPage":3,"totalPages":4,"totalCount":10,"previousPage":"/tests/blog/tags/paginated-tag/page/2","nextPage":"/tests/blog/tags/paginated-tag/page/4","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2020/08/03/demo/second-blog-intro"],"metadata":{"permalink":"/tests/blog/tags/paginated-tag/page/4","page":4,"postsPerPage":3,"totalPages":4,"totalCount":10,"previousPage":"/tests/blog/tags/paginated-tag/page/3","blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":false},"/tests/blog/tags/blog":{"inline":false,"label":"Blog","permalink":"/tests/blog/tags/blog","items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors","/2020/08/03/demo/second-blog-intro"],"pages":[{"items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors"],"metadata":{"permalink":"/tests/blog/tags/blog","page":1,"postsPerPage":3,"totalPages":2,"totalCount":4,"nextPage":"/tests/blog/tags/blog/page/2","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2020/08/03/demo/second-blog-intro"],"metadata":{"permalink":"/tests/blog/tags/blog/page/2","page":2,"postsPerPage":3,"totalPages":2,"totalCount":4,"previousPage":"/tests/blog/tags/blog","blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":false},"/tests/blog/tags/visibility":{"inline":false,"label":"Visibility","permalink":"/tests/blog/tags/visibility","items":["/unlisted-post"],"pages":[{"items":["/unlisted-post"],"metadata":{"permalink":"/tests/blog/tags/visibility","page":1,"postsPerPage":3,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":true},"/tests/blog/tags/unlisted":{"inline":false,"label":"Unlisted","permalink":"/tests/blog/tags/unlisted","items":["/unlisted-post"],"pages":[{"items":["/unlisted-post"],"metadata":{"permalink":"/tests/blog/tags/unlisted","page":1,"postsPerPage":3,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":true},"/tests/blog/tags/docusaurus":{"inline":false,"label":"Docusaurus","permalink":"/tests/blog/tags/docusaurus","items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors","/2020/08/03/demo/second-blog-intro"],"pages":[{"items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors"],"metadata":{"permalink":"/tests/blog/tags/docusaurus","page":1,"postsPerPage":3,"totalPages":2,"totalCount":4,"nextPage":"/tests/blog/tags/docusaurus/page/2","blogDescription":"Blog","blogTitle":"Blog"}},{"items":["/2020/08/03/demo/second-blog-intro"],"metadata":{"permalink":"/tests/blog/tags/docusaurus/page/2","page":2,"postsPerPage":3,"totalPages":2,"totalCount":4,"previousPage":"/tests/blog/tags/docusaurus","blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":false},"/tests/blog/tags/long-long":{"inline":false,"label":"Long-long","permalink":"/tests/blog/tags/long-long","items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors"],"pages":[{"items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors"],"metadata":{"permalink":"/tests/blog/tags/long-long","page":1,"postsPerPage":3,"totalPages":1,"totalCount":3,"blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":false},"/tests/blog/tags/long-long-long":{"inline":false,"label":"Long-long-long","permalink":"/tests/blog/tags/long-long-long","items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors"],"pages":[{"items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors"],"metadata":{"permalink":"/tests/blog/tags/long-long-long","page":1,"postsPerPage":3,"totalPages":1,"totalCount":3,"blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":false},"/tests/blog/tags/long-long-long-long":{"inline":false,"label":"Long-long-long-long","permalink":"/tests/blog/tags/long-long-long-long","items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors"],"pages":[{"items":["/2021/10/08/blog-post-mdx-require-feed-tests","/2021/10/07/blog-post-mdx-feed-tests","/2021/08/23/multiple-authors"],"metadata":{"permalink":"/tests/blog/tags/long-long-long-long","page":1,"postsPerPage":3,"totalPages":1,"totalCount":3,"blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":false},"/tests/blog/tags/long":{"inline":false,"label":"Long","permalink":"/tests/blog/tags/long","items":["/2021/08/23/multiple-authors"],"pages":[{"items":["/2021/08/23/multiple-authors"],"metadata":{"permalink":"/tests/blog/tags/long","page":1,"postsPerPage":3,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":false},"/tests/blog/tags/long-long-long-long-long":{"inline":false,"label":"Long-long-long-long-long","permalink":"/tests/blog/tags/long-long-long-long-long","items":["/2021/08/23/multiple-authors"],"pages":[{"items":["/2021/08/23/multiple-authors"],"metadata":{"permalink":"/tests/blog/tags/long-long-long-long-long","page":1,"postsPerPage":3,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}],"unlisted":false}},"blogTagsListPath":"/tests/blog/tags","authorsMap":{"slorber":{"name":"Sebastien Lorber","title":"Docusaurus maintainer","url":"https://sebastienlorber.com","page":{"permalink":"/tests/blog/authors/slorber"},"socials":{"x":"https://x.com/sebastienlorber"},"imageURL":"https://github.com/slorber.png","key":"slorber"},"ozaki":{"name":"ozaki","page":{"permalink":"/tests/blog/authors/custom/ozaki/permalink"},"key":"ozaki"}}}},"docusaurus-plugin-content-pages":{"default":[{"type":"jsx","permalink":"/","source":"@site/src/pages/index.tsx"},{"type":"mdx","permalink":"/tests","source":"@site/src/pages/tests.mdx","title":"Tests","description":"Docusaurus use some extra plugin instances for testing / dogfooding purpose:","frontMatter":{},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/src/pages/tests.mdx","unlisted":false},{"type":"jsx","permalink":"/versions","source":"@site/src/pages/versions.tsx"},{"type":"mdx","permalink":"/examples/markdownPageExample","source":"@site/src/pages/examples/markdownPageExample.mdx","title":"Markdown Page example","description":"Markdown Page example","frontMatter":{"title":"Markdown Page example","description":"Markdown Page example","wrapperClassName":"docusaurus-markdown-example"},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/src/pages/examples/markdownPageExample.mdx","unlisted":false},{"type":"mdx","permalink":"/examples/noIndex","source":"@site/src/pages/examples/noIndex.mdx","title":"No Index Page example","description":"This page will not be indexed by search engines because it contains the page following page metadata markup:","frontMatter":{},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/src/pages/examples/noIndex.mdx","unlisted":false},{"type":"jsx","permalink":"/showcase/","source":"@site/src/pages/showcase/index.tsx"}],"pages-tests":[{"type":"jsx","permalink":"/tests/pages/analytics","source":"@site/_dogfooding/_pages tests/analytics.tsx"},{"type":"mdx","permalink":"/tests/pages/code-block-tests","source":"@site/_dogfooding/_pages tests/code-block-tests.mdx","title":"Code block tests","description":"This test page is quite outdated: MDX v2 lowercase tags are not substituted anymore in the same way as they were in v1.","frontMatter":{},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/code-block-tests.mdx","unlisted":false},{"type":"jsx","permalink":"/tests/pages/crashTest","source":"@site/_dogfooding/_pages tests/crashTest.tsx"},{"type":"mdx","permalink":"/tests/pages/diagrams","source":"@site/_dogfooding/_pages tests/diagrams.mdx","title":"Diagram Examples","description":"Invalid Diagrams","frontMatter":{},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/diagrams.mdx","unlisted":false},{"type":"jsx","permalink":"/tests/pages/embeds","source":"@site/_dogfooding/_pages tests/embeds.tsx"},{"type":"jsx","permalink":"/tests/pages/error-boundary-tests","source":"@site/_dogfooding/_pages tests/error-boundary-tests.tsx"},{"type":"mdx","permalink":"/tests/pages/head-metadata","source":"@site/_dogfooding/_pages tests/head-metadata.mdx","description":"Head Metadata tests","frontMatter":{},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/head-metadata.mdx","unlisted":false},{"type":"jsx","permalink":"/tests/pages/hydration-tests","source":"@site/_dogfooding/_pages tests/hydration-tests.tsx"},{"type":"mdx","permalink":"/tests/pages/","source":"@site/_dogfooding/_pages tests/index.mdx","description":"Page","frontMatter":{},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/index.mdx","unlisted":false},{"type":"jsx","permalink":"/tests/pages/layout-no-children","source":"@site/_dogfooding/_pages tests/layout-no-children.tsx"},{"type":"jsx","permalink":"/tests/pages/link-tests","source":"@site/_dogfooding/_pages tests/link-tests.tsx"},{"type":"mdx","permalink":"/tests/pages/markdown-tests-md","source":"@site/_dogfooding/_pages tests/markdown-tests-md.md","title":"Markdown Page tests title","description":"Markdown Page tests description","frontMatter":{"title":"Markdown Page tests title","description":"Markdown Page tests description","wrapperClassName":"docusaurus-markdown-example"},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/markdown-tests-md.md","unlisted":false},{"type":"mdx","permalink":"/tests/pages/markdown-tests-mdx","source":"@site/_dogfooding/_pages tests/markdown-tests-mdx.mdx","title":"Markdown Page tests title","description":"Markdown Page tests description","frontMatter":{"title":"Markdown Page tests title","description":"Markdown Page tests description","wrapperClassName":"docusaurus-markdown-example"},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/markdown-tests-mdx.mdx","unlisted":false},{"type":"mdx","permalink":"/tests/pages/navbar-dropdown-tests","source":"@site/_dogfooding/_pages tests/navbar-dropdown-tests.mdx","title":"navbar-dropdown-tests","description":"1. Make sure that the theme switcher is placed immediately after the language switcher in the navbar.","frontMatter":{},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/navbar-dropdown-tests.mdx","unlisted":false},{"type":"mdx","permalink":"/tests/pages/page-toc-tests","source":"@site/_dogfooding/_pages tests/page-toc-tests.mdx","frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":4},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/page-toc-tests.mdx","unlisted":false},{"type":"mdx","permalink":"/tests/pages/seo","source":"@site/_dogfooding/_pages tests/seo.md","title":"custom SEO title","description":"custom SEO description","frontMatter":{"title":"custom SEO title","description":"custom SEO description","keywords":["custom","keywords"],"image":"./local-image.png"},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/seo.md","unlisted":false},{"type":"mdx","permalink":"/tests/pages/tabs-tests","source":"@site/_dogfooding/_pages tests/tabs-tests.mdx","title":"Tabs tests","description":"Tabs with dynamic default value","frontMatter":{},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/tabs-tests.mdx","unlisted":false},{"type":"mdx","permalink":"/tests/pages/unlisted","source":"@site/_dogfooding/_pages tests/unlisted.mdx","title":"Unlisted page","description":"This unlisted page should always be directly accessible, but hidden from search engines","frontMatter":{"unlisted":true},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/unlisted.mdx","unlisted":true},{"type":"jsx","permalink":"/tests/pages/z-index-tests","source":"@site/_dogfooding/_pages tests/z-index-tests.tsx"},{"type":"jsx","permalink":"/tests/pages/react-18/","source":"@site/_dogfooding/_pages tests/react-18/index.tsx"}]},"docusaurus-plugin-debug":{},"docusaurus-plugin-google-gtag":{},"docusaurus-theme-classic":{},"docusaurus-theme-search-algolia":{},"changelog-plugin":{"default":{"blogSidebarTitle":"Changelog","blogPosts":[{"id":"/3.5.2","metadata":{"permalink":"/changelog/3.5.2","source":"@site/changelog/source/3.5.2.md","title":"3.5.2","description":"Bug Fix","date":"2024-08-13T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Christian Stangerup","alias":"cstangerup","url":"https://github.com/cstangerup","imageURL":"https://github.com/cstangerup.png","key":"cstangerup","page":null},{"name":"Gatien Boquet","alias":"GatienBoquet","url":"https://github.com/GatienBoquet","imageURL":"https://github.com/GatienBoquet.png","key":"GatienBoquet","page":null},{"name":"Josh Wong","alias":"josh-wong","url":"https://github.com/josh-wong","imageURL":"https://github.com/josh-wong.png","key":"josh-wong","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-08-13T20:00","authors":["cstangerup","GatienBoquet","josh-wong","slorber"]},"unlisted":false,"nextItem":{"title":"3.5.1","permalink":"/changelog/3.5.1"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-common`\\n - [#10397](https://github.com/facebook/docusaurus/pull/10397) fix(theme-common): restore useContextualSearchFilters public API for retrocompatibility ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#10391](https://github.com/facebook/docusaurus/pull/10391) fix(core): always alias React/ReactDOM to site dependency so that importing MDX from anywhere works ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-plugin-content-blog`\\n - [#10392](https://github.com/facebook/docusaurus/pull/10392) fix(create-docusaurus): Improve init templates blog setup + fix warnings ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#10390](https://github.com/facebook/docusaurus/pull/10390) fix(theme): Adjust blog authors line height to show descenders in lowercase letters (`g`, `j`, `p`, `q`, and `y`) ([@josh-wong](https://github.com/josh-wong))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`\\n - [#10394](https://github.com/facebook/docusaurus/pull/10394) fix(translations): change casing of some en labels ([@cstangerup](https://github.com/cstangerup))\\n\\n## :memo: Documentation\\n\\n- [#10393](https://github.com/facebook/docusaurus/pull/10393) docs(showcase): remove sites not using Docusaurus anymore ([@GatienBoquet](https://github.com/GatienBoquet))\\n\\n## :robot: Dependencies\\n\\n- [#10396](https://github.com/facebook/docusaurus/pull/10396) chore(deps): bump github/codeql-action from 3.25.13 to 3.26.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n\\n## Committers: 4\\n\\n- Christian Stangerup ([@cstangerup](https://github.com/cstangerup))\\n- Gatien Boquet ([@GatienBoquet](https://github.com/GatienBoquet))\\n- Josh Wong ([@josh-wong](https://github.com/josh-wong))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))"},{"id":"/3.5.1","metadata":{"permalink":"/changelog/3.5.1","source":"@site/changelog/source/3.5.1.md","title":"3.5.1","description":"Bug Fix","date":"2024-08-09T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Sunghyun Cho","alias":"anaclumos","url":"https://github.com/anaclumos","imageURL":"https://github.com/anaclumos.png","key":"anaclumos","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-08-09T20:00","authors":["anaclumos","slorber"]},"unlisted":false,"prevItem":{"title":"3.5.2","permalink":"/changelog/3.5.2"},"nextItem":{"title":"3.5.0","permalink":"/changelog/3.5.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-search-algolia`\\n - [#10384](https://github.com/facebook/docusaurus/pull/10384) fix(core): algolia context import ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-search-algolia`\\n - [#10382](https://github.com/facebook/docusaurus/pull/10382) fix(theme-algolia): useDocusaurusContext import error ([@anaclumos](https://github.com/anaclumos))\\n\\n## Committers: 2\\n\\n- Sunghyun Cho ([@anaclumos](https://github.com/anaclumos))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))"},{"id":"/3.5.0","metadata":{"permalink":"/changelog/3.5.0","source":"@site/changelog/source/3.5.0.md","title":"3.5.0","description":"New Feature","date":"2024-08-09T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Alice Zhao","alias":"alicelovescake","url":"https://github.com/alicelovescake","imageURL":"https://github.com/alicelovescake.png","key":"alicelovescake","page":null},{"name":"Ashiq Firoz","alias":"ashiq-firoz","url":"https://github.com/ashiq-firoz","imageURL":"https://github.com/ashiq-firoz.png","key":"ashiq-firoz","page":null},{"name":"Mohammad Bagher Abiyat","alias":"Aslemammad","url":"https://github.com/Aslemammad","imageURL":"https://github.com/Aslemammad.png","key":"Aslemammad","page":null},{"name":"Bharatesh","alias":"bharateshwq","url":"https://github.com/bharateshwq","imageURL":"https://github.com/bharateshwq.png","key":"bharateshwq","page":null},{"name":"\uC815\uBCF4\uD604 Bohyun Jung","alias":"bohyunjung","url":"https://github.com/bohyunjung","imageURL":"https://github.com/bohyunjung.png","key":"bohyunjung","page":null},{"name":"Markus Tamm","alias":"chirbard","url":"https://github.com/chirbard","imageURL":"https://github.com/chirbard.png","key":"chirbard","page":null},{"name":"Daniel Li","alias":"d4nyll","url":"https://github.com/d4nyll","imageURL":"https://github.com/d4nyll.png","key":"d4nyll","page":null},{"name":"Dhaya","alias":"dhayab","url":"https://github.com/dhayab","imageURL":"https://github.com/dhayab.png","key":"dhayab","page":null},{"name":"franzd1","alias":"franzd1","url":"https://github.com/franzd1","imageURL":"https://github.com/franzd1.png","key":"franzd1","page":null},{"name":"Robin Otter","alias":"Gekd","url":"https://github.com/Gekd","imageURL":"https://github.com/Gekd.png","key":"Gekd","page":null},{"name":"Hichem Fantar","alias":"hichemfantar","url":"https://github.com/hichemfantar","imageURL":"https://github.com/hichemfantar.png","key":"hichemfantar","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Balthasar Hofer","alias":"lebalz","url":"https://github.com/lebalz","imageURL":"https://github.com/lebalz.png","key":"lebalz","page":null},{"name":"Max Schmitt","alias":"mxschmitt","url":"https://github.com/mxschmitt","imageURL":"https://github.com/mxschmitt.png","key":"mxschmitt","page":null},{"name":"ozaki","alias":"OzakIOne","url":"https://github.com/OzakIOne","imageURL":"https://github.com/OzakIOne.png","key":"OzakIOne","page":null},{"name":"Paneedah","alias":"Paneedah","url":"https://github.com/Paneedah","imageURL":"https://github.com/Paneedah.png","key":"Paneedah","page":null},{"name":"Aaron Chen","alias":"pjchender","url":"https://github.com/pjchender","imageURL":"https://github.com/pjchender.png","key":"pjchender","page":null},{"name":"Priyadi Iman Nurcahyo","alias":"priyadi","url":"https://github.com/priyadi","imageURL":"https://github.com/priyadi.png","key":"priyadi","page":null},{"name":"Sergio","alias":"sergioalmela","url":"https://github.com/sergioalmela","imageURL":"https://github.com/sergioalmela.png","key":"sergioalmela","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tatsunori Uchino","alias":"tats-u","url":"https://github.com/tats-u","imageURL":"https://github.com/tats-u.png","key":"tats-u","page":null},{"name":"Julian V","alias":"ultimate","url":"https://github.com/ultimate","imageURL":"https://github.com/ultimate.png","key":"ultimate","page":null},{"name":"Rohan Thakur","alias":"Xebec19","url":"https://github.com/Xebec19","imageURL":"https://github.com/Xebec19.png","key":"Xebec19","page":null},{"name":"yujonglee","alias":"yujonglee","url":"https://github.com/yujonglee","imageURL":"https://github.com/yujonglee.png","key":"yujonglee","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-08-09T19:00","authors":["alicelovescake","ashiq-firoz","Aslemammad","bharateshwq","bohyunjung","chirbard","d4nyll","dhayab","franzd1","Gekd","hichemfantar","johnnyreilly","Josh-Cena","lebalz","mxschmitt","OzakIOne","Paneedah","pjchender","priyadi","sergioalmela","slorber","tats-u","ultimate","Xebec19","yujonglee"]},"unlisted":false,"prevItem":{"title":"3.5.1","permalink":"/changelog/3.5.1"},"nextItem":{"title":"3.4.0","permalink":"/changelog/3.4.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-blog`\\n - [#10375](https://github.com/facebook/docusaurus/pull/10375) feat(blog): add `onUntruncatedBlogPosts` blog options ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`\\n - [#10376](https://github.com/facebook/docusaurus/pull/10376) feat(theme): show unlisted/draft banners in dev mode ([@OzakIOne](https://github.com/OzakIOne))\\n- `create-docusaurus`, `docusaurus-plugin-content-blog`\\n - [#9252](https://github.com/facebook/docusaurus/pull/9252) feat(blog): add feed xlst options to render beautiful RSS and Atom feeds ([@Xebec19](https://github.com/Xebec19))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`, `docusaurus-utils`\\n - [#10216](https://github.com/facebook/docusaurus/pull/10216) feat(blog): authors page ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-theme-translations`\\n - [#10339](https://github.com/facebook/docusaurus/pull/10339) feat(translation): add Estonian default translation ([@chirbard](https://github.com/chirbard))\\n - [#10325](https://github.com/facebook/docusaurus/pull/10325) feat(translations): Indonesian translation ([@priyadi](https://github.com/priyadi))\\n- `docusaurus-mdx-loader`\\n - [#10335](https://github.com/facebook/docusaurus/pull/10335) feat(mdx-loader): wrap mdx content title (`# Title`) in `<header>` for concistency ([@OzakIOne](https://github.com/OzakIOne))\\n- `create-docusaurus`, `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-utils`\\n - [#10222](https://github.com/facebook/docusaurus/pull/10222) feat(blog): author header social icons ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-plugin-vercel-analytics`, `docusaurus-types`, `docusaurus`\\n - [#10286](https://github.com/facebook/docusaurus/pull/10286) feat(core): allow plugins to self-disable by returning null ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#10252](https://github.com/facebook/docusaurus/pull/10252) feat(blog): group sidebar items by year (`themeConfig.blog.sidebar.groupByYear`) ([@alicelovescake](https://github.com/alicelovescake))\\n- `docusaurus-plugin-content-blog`, `docusaurus-utils`\\n - [#10224](https://github.com/facebook/docusaurus/pull/10224) feat(blog): warn duplicate and inline authors ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils-validation`\\n - [#10241](https://github.com/facebook/docusaurus/pull/10241) feat(mdx): support recma plugins ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-translations`\\n - [#10344](https://github.com/facebook/docusaurus/pull/10344) fix(translations): fix wrong Estonian (et) translations and typos ([@Gekd](https://github.com/Gekd))\\n - [#10360](https://github.com/facebook/docusaurus/pull/10360) fix(translations): Fix and Improve Spanish translations ([@sergioalmela](https://github.com/sergioalmela))\\n - [#10235](https://github.com/facebook/docusaurus/pull/10235) fix(theme-translation): add missing German (de) theme.admonition translations ([@franzd1](https://github.com/franzd1))\\n- `docusaurus-theme-search-algolia`\\n - [#10342](https://github.com/facebook/docusaurus/pull/10342) fix(search): fix algolia search ignore ctrl + F in search input ([@mxschmitt](https://github.com/mxschmitt))\\n- `docusaurus-plugin-content-docs`\\n - [#10324](https://github.com/facebook/docusaurus/pull/10324) fix(docs): the _category_.json description attribute should display on generated index pages ([@bharateshwq](https://github.com/bharateshwq))\\n - [#10309](https://github.com/facebook/docusaurus/pull/10309) fix(theme): docsVersionDropdown navbar item not showing the appropriate version ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus`\\n - [#10368](https://github.com/facebook/docusaurus/pull/10368) fix(cli): Fix bad docusaurus CLI behavior on for --version, -V, --help, -h ([@ashiq-firoz](https://github.com/ashiq-firoz))\\n - [#10311](https://github.com/facebook/docusaurus/pull/10311) fix(core): revert wrong anchor link implementation change ([@slorber](https://github.com/slorber))\\n - [#10239](https://github.com/facebook/docusaurus/pull/10239) fix(core): fail fast if plugin has no name ([@slorber](https://github.com/slorber))\\n - [#10225](https://github.com/facebook/docusaurus/pull/10225) fix(core): fix sites unable to start/build without a static dir ([@slorber](https://github.com/slorber))\\n - [#10223](https://github.com/facebook/docusaurus/pull/10223) fix: escape period ([@d4nyll](https://github.com/d4nyll))\\n- `docusaurus-theme-classic`\\n - [#10288](https://github.com/facebook/docusaurus/pull/10288) fix(theme): fix DocsVersionDropdownNavbarItem version link target ([@slorber](https://github.com/slorber))\\n - [#10219](https://github.com/facebook/docusaurus/pull/10219) fix(theme): ignored className attribute on lazy loaded TabItem ([@lebalz](https://github.com/lebalz))\\n- `docusaurus-utils`\\n - [#10240](https://github.com/facebook/docusaurus/pull/10240) fix(markdown): mdx-code-block should support intentation ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-translations`\\n - [#10257](https://github.com/facebook/docusaurus/pull/10257) chore(theme-translations): add more Traditional Chinese(zh-Hant) translations ([@pjchender](https://github.com/pjchender))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#10361](https://github.com/facebook/docusaurus/pull/10361) docs: rename @getcanary/docusaurus-pagefind in docs ([@yujonglee](https://github.com/yujonglee))\\n - [#10345](https://github.com/facebook/docusaurus/pull/10345) docs: Add @getcanary/docusaurus-pagefind in docs ([@yujonglee](https://github.com/yujonglee))\\n - [#10337](https://github.com/facebook/docusaurus/pull/10337) docs: fix default value for `docRootComponent` ([@ultimate](https://github.com/ultimate))\\n - [#10310](https://github.com/facebook/docusaurus/pull/10310) docs: remove deprecated partial toc warning ([@slorber](https://github.com/slorber))\\n - [#10245](https://github.com/facebook/docusaurus/pull/10245) docs: add emoji for consistency ([@Paneedah](https://github.com/Paneedah))\\n - [#10180](https://github.com/facebook/docusaurus/pull/10180) docs: backport #10173 to v3.3 + v3.4 & revise the content ([@tats-u](https://github.com/tats-u))\\n - [#10233](https://github.com/facebook/docusaurus/pull/10233) docs(search): update docsearch api url ([@dhayab](https://github.com/dhayab))\\n- `docusaurus-plugin-google-gtag`\\n - [#10338](https://github.com/facebook/docusaurus/pull/10338) docs(plugin-google-gtag): replace the broken Google Developers links with valid ones ([@bohyunjung](https://github.com/bohyunjung))\\n\\n## :robot: Dependencies\\n\\n- [#10330](https://github.com/facebook/docusaurus/pull/10330) chore(deps): bump github/codeql-action from 3.25.12 to 3.25.13 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10299](https://github.com/facebook/docusaurus/pull/10299) chore(deps): bump actions/dependency-review-action from 4.3.3 to 4.3.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10300](https://github.com/facebook/docusaurus/pull/10300) chore(deps): bump github/codeql-action from 3.25.11 to 3.25.12 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10259](https://github.com/facebook/docusaurus/pull/10259) chore(deps): bump github/codeql-action from 3.25.10 to 3.25.11 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10247](https://github.com/facebook/docusaurus/pull/10247) chore(deps): bump treosh/lighthouse-ci-action from 11.4.0 to 12.1.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10226](https://github.com/facebook/docusaurus/pull/10226) chore(deps): bump github/codeql-action from 3.25.8 to 3.25.10 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10227](https://github.com/facebook/docusaurus/pull/10227) chore(deps): bump ws from 7.5.9 to 7.5.10 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10210](https://github.com/facebook/docusaurus/pull/10210) chore(deps): bump braces from 3.0.2 to 3.0.3 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10209](https://github.com/facebook/docusaurus/pull/10209) chore(deps): bump actions/dependency-review-action from 4.3.2 to 4.3.3 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10208](https://github.com/facebook/docusaurus/pull/10208) chore(deps): bump github/codeql-action from 3.25.7 to 3.25.8 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10195](https://github.com/facebook/docusaurus/pull/10195) chore(deps): bump github/codeql-action from 3.25.6 to 3.25.7 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n\\n## :wrench: Maintenance\\n\\n- Other\\n - [#10369](https://github.com/facebook/docusaurus/pull/10369) feat(ci): continuous releases for main and PRs with pkg.pr.new ([@Aslemammad](https://github.com/Aslemammad))\\n- `docusaurus-theme-classic`\\n - [#10343](https://github.com/facebook/docusaurus/pull/10343) chore(deps): update infima npm dependency to version 0.2.0-alpha.44 ([@hichemfantar](https://github.com/hichemfantar))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`\\n - [#10316](https://github.com/facebook/docusaurus/pull/10316) refactor(docs): theme-common shouldn\'t depend on docs content ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#10313](https://github.com/facebook/docusaurus/pull/10313) refactor(blog): theme-common shouldn\'t depend on blog content plugins ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-plugin-vercel-analytics`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`, `stylelint-copyright`\\n - [#10256](https://github.com/facebook/docusaurus/pull/10256) chore: simplify TypeScript configs, use TS 5.5 configDir placeholder ([@slorber](https://github.com/slorber))\\n\\n## Committers: 25\\n\\n- Aaron Chen ([@pjchender](https://github.com/pjchender))\\n- Alice Zhao ([@alicelovescake](https://github.com/alicelovescake))\\n- Ashiq Firoz ([@ashiq-firoz](https://github.com/ashiq-firoz))\\n- Balthasar Hofer ([@lebalz](https://github.com/lebalz))\\n- Bharatesh ([@bharateshwq](https://github.com/bharateshwq))\\n- Daniel Li ([@d4nyll](https://github.com/d4nyll))\\n- Dhaya ([@dhayab](https://github.com/dhayab))\\n- Hichem Fantar ([@hichemfantar](https://github.com/hichemfantar))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Julian V ([@ultimate](https://github.com/ultimate))\\n- Markus Tamm ([@chirbard](https://github.com/chirbard))\\n- Max Schmitt ([@mxschmitt](https://github.com/mxschmitt))\\n- Mohammad Bagher Abiyat ([@Aslemammad](https://github.com/Aslemammad))\\n- Paneedah ([@Paneedah](https://github.com/Paneedah))\\n- Priyadi Iman Nurcahyo ([@priyadi](https://github.com/priyadi))\\n- Robin Otter ([@Gekd](https://github.com/Gekd))\\n- Rohan Thakur ([@Xebec19](https://github.com/Xebec19))\\n- Sergio ([@sergioalmela](https://github.com/sergioalmela))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tatsunori Uchino ([@tats-u](https://github.com/tats-u))\\n- [@franzd1](https://github.com/franzd1)\\n- ozaki ([@OzakIOne](https://github.com/OzakIOne))\\n- yujonglee ([@yujonglee](https://github.com/yujonglee))\\n- \uC815\uBCF4\uD604 Bohyun Jung ([@bohyunjung](https://github.com/bohyunjung))"},{"id":"/3.4.0","metadata":{"permalink":"/changelog/3.4.0","source":"@site/changelog/source/3.4.0.md","title":"3.4.0","description":"New Feature","date":"2024-05-31T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Azzedine E.","alias":"Arsero","url":"https://github.com/Arsero","imageURL":"https://github.com/Arsero.png","key":"Arsero","page":null},{"name":"CodeDoctor","alias":"CodeDoctorDE","url":"https://github.com/CodeDoctorDE","imageURL":"https://github.com/CodeDoctorDE.png","key":"CodeDoctorDE","page":null},{"name":"Mikey O\'Toole","alias":"homotechsual","url":"https://github.com/homotechsual","imageURL":"https://github.com/homotechsual.png","key":"homotechsual","page":null},{"name":"Mahri Ilmedova","alias":"ilmedova","url":"https://github.com/ilmedova","imageURL":"https://github.com/ilmedova.png","key":"ilmedova","page":null},{"name":"Nguy\u1EC5n Th\xe0nh Nam","alias":"namnguyenthanhwork","url":"https://github.com/namnguyenthanhwork","imageURL":"https://github.com/namnguyenthanhwork.png","key":"namnguyenthanhwork","page":null},{"name":"Nick Coughlin","alias":"ncoughlin","url":"https://github.com/ncoughlin","imageURL":"https://github.com/ncoughlin.png","key":"ncoughlin","page":null},{"name":"ozaki","alias":"OzakIOne","url":"https://github.com/OzakIOne","imageURL":"https://github.com/OzakIOne.png","key":"OzakIOne","page":null},{"name":"Petar_mc","alias":"PetarMc1","url":"https://github.com/PetarMc1","imageURL":"https://github.com/PetarMc1.png","key":"PetarMc1","page":null},{"name":"Yongmin Hong","alias":"revi","url":"https://github.com/revi","imageURL":"https://github.com/revi.png","key":"revi","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tatsunori Uchino","alias":"tats-u","url":"https://github.com/tats-u","imageURL":"https://github.com/tats-u.png","key":"tats-u","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-05-31T20:00","authors":["Arsero","CodeDoctorDE","homotechsual","ilmedova","namnguyenthanhwork","ncoughlin","OzakIOne","PetarMc1","revi","slorber","tats-u"]},"unlisted":false,"prevItem":{"title":"3.5.0","permalink":"/changelog/3.5.0"},"nextItem":{"title":"3.3.2","permalink":"/changelog/3.3.2"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `create-docusaurus`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils-validation`, `docusaurus-utils`\\n - [#10137](https://github.com/facebook/docusaurus/pull/10137) feat(docs, blog): add support for `tags.yml`, predefined list of tags ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-theme-translations`\\n - [#10151](https://github.com/facebook/docusaurus/pull/10151) feat(theme-translations): Added Turkmen (tk) default theme translations ([@ilmedova](https://github.com/ilmedova))\\n - [#10111](https://github.com/facebook/docusaurus/pull/10111) feat(theme-translations): Add Bulgarian default theme translations (bg) ([@PetarMc1](https://github.com/PetarMc1))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#9859](https://github.com/facebook/docusaurus/pull/9859) feat(core): hash router option - browse site offline (experimental) ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus`\\n - [#10121](https://github.com/facebook/docusaurus/pull/10121) feat(core): site storage config options (experimental) ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#10185](https://github.com/facebook/docusaurus/pull/10185) fix(docs, blog): Markdown link resolution does not support hot reload ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-search-algolia`\\n - [#10178](https://github.com/facebook/docusaurus/pull/10178) fix(theme): SearchPage should respect `contextualSearch: false` setting ([@ncoughlin](https://github.com/ncoughlin))\\n - [#10164](https://github.com/facebook/docusaurus/pull/10164) fix(search): fix algolia search container bug ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils`\\n - [#10168](https://github.com/facebook/docusaurus/pull/10168) fix(mdx-loader): resolve Markdown/MDX links with Remark instead of RegExp ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-translations`\\n - [#10165](https://github.com/facebook/docusaurus/pull/10165) fix(theme-translation): add missing Korean (ko) theme translations ([@revi](https://github.com/revi))\\n - [#10157](https://github.com/facebook/docusaurus/pull/10157) fix(theme-translations): complete Vietnamese theme translations ([@namnguyenthanhwork](https://github.com/namnguyenthanhwork))\\n- `docusaurus`\\n - [#10145](https://github.com/facebook/docusaurus/pull/10145) fix(core): fix serve workaround regexp ([@slorber](https://github.com/slorber))\\n - [#10142](https://github.com/facebook/docusaurus/pull/10142) fix(core): fix `docusaurus serve` broken for assets when using trailingSlash ([@slorber](https://github.com/slorber))\\n - [#10130](https://github.com/facebook/docusaurus/pull/10130) fix(core): the broken anchor checker should not be sensitive pathname trailing slashes ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#10144](https://github.com/facebook/docusaurus/pull/10144) fix(theme): fix announcement bar layout shift due to missing storage key namespace ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#10132](https://github.com/facebook/docusaurus/pull/10132) fix(core): `configurePostCss()` should run after `configureWebpack()` ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`, `docusaurus`\\n - [#10131](https://github.com/facebook/docusaurus/pull/10131) fix(core): codegen should generate unique route prop filenames ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-translations`\\n - [#10118](https://github.com/facebook/docusaurus/pull/10118) fix(theme-translations): fix missing pluralization for label DocCard.categoryDescription.plurals ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- [#10176](https://github.com/facebook/docusaurus/pull/10176) docs: add community plugin docusaurus-graph ([@Arsero](https://github.com/Arsero))\\n- [#10173](https://github.com/facebook/docusaurus/pull/10173) docs: improve how to use `<details>` ([@tats-u](https://github.com/tats-u))\\n- [#10167](https://github.com/facebook/docusaurus/pull/10167) docs: suggest using `{<...>...</...>}` if don\'t use Markdown in migra\u2026 ([@tats-u](https://github.com/tats-u))\\n- [#10143](https://github.com/facebook/docusaurus/pull/10143) docs: recommend users to remove hast-util-is-element in migration to v3 ([@tats-u](https://github.com/tats-u))\\n- [#10124](https://github.com/facebook/docusaurus/pull/10124) docs: v3 prepare your site blog post should point users to the upgrade guide ([@homotechsual](https://github.com/homotechsual))\\n\\n## :robot: Dependencies\\n\\n- [#10155](https://github.com/facebook/docusaurus/pull/10155) chore(deps): bump peaceiris/actions-gh-pages from 3 to 4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10154](https://github.com/facebook/docusaurus/pull/10154) chore(deps): bump github/codeql-action from 2.13.4 to 3.25.6 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10112](https://github.com/facebook/docusaurus/pull/10112) chore(deps): bump actions/dependency-review-action from 4.3.1 to 4.3.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n\\n## Committers: 11\\n\\n- Azzedine E. ([@Arsero](https://github.com/Arsero))\\n- CodeDoctor ([@CodeDoctorDE](https://github.com/CodeDoctorDE))\\n- Mahri Ilmedova ([@ilmedova](https://github.com/ilmedova))\\n- Mikey O\'Toole ([@homotechsual](https://github.com/homotechsual))\\n- Nguy\u1EC5n Th\xe0nh Nam ([@namnguyenthanhwork](https://github.com/namnguyenthanhwork))\\n- Nick Coughlin ([@ncoughlin](https://github.com/ncoughlin))\\n- Petar_mc ([@PetarMc1](https://github.com/PetarMc1))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tatsunori Uchino ([@tats-u](https://github.com/tats-u))\\n- Yongmin ([@revi](https://github.com/revi))\\n- ozaki ([@OzakIOne](https://github.com/OzakIOne))"},{"id":"/3.3.2","metadata":{"permalink":"/changelog/3.3.2","source":"@site/changelog/source/3.3.2.md","title":"3.3.2","description":"Bug Fix","date":"2024-05-03T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-05-03T20:00","authors":["slorber"]},"unlisted":false,"prevItem":{"title":"3.4.0","permalink":"/changelog/3.4.0"},"nextItem":{"title":"3.3.1","permalink":"/changelog/3.3.1"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-module-type-aliases`, `docusaurus`\\n - [#10103](https://github.com/facebook/docusaurus/pull/10103) fix(core): do not recreate ReactDOM Root, fix React warning on hot reload ([@slorber](https://github.com/slorber))\\n\\n## Committers: 1\\n\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))"},{"id":"/3.3.1","metadata":{"permalink":"/changelog/3.3.1","source":"@site/changelog/source/3.3.1.md","title":"3.3.1","description":"Failed release","date":"2024-05-03T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2024-05-03T19:00"},"unlisted":false,"prevItem":{"title":"3.3.2","permalink":"/changelog/3.3.2"},"nextItem":{"title":"3.3.0","permalink":"/changelog/3.3.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\nFailed release"},{"id":"/3.3.0","metadata":{"permalink":"/changelog/3.3.0","source":"@site/changelog/source/3.3.0.md","title":"3.3.0","description":"New Feature","date":"2024-05-03T18:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Abdullah Saud","alias":"Abdullah-03","url":"https://github.com/Abdullah-03","imageURL":"https://github.com/Abdullah-03.png","key":"Abdullah-03","page":null},{"name":"Andrea Mazzucchelli","alias":"andrmaz","url":"https://github.com/andrmaz","imageURL":"https://github.com/andrmaz.png","key":"andrmaz","page":null},{"name":"Daniel Li","alias":"d4nyll","url":"https://github.com/d4nyll","imageURL":"https://github.com/d4nyll.png","key":"d4nyll","page":null},{"name":"Can Eldem","alias":"eldemcan","url":"https://github.com/eldemcan","imageURL":"https://github.com/eldemcan.png","key":"eldemcan","page":null},{"name":"Guille","alias":"gagdiez","url":"https://github.com/gagdiez","imageURL":"https://github.com/gagdiez.png","key":"gagdiez","page":null},{"name":"H3NR1KE","alias":"h3nr1ke","url":"https://github.com/h3nr1ke","imageURL":"https://github.com/h3nr1ke.png","key":"h3nr1ke","page":null},{"name":"Mikey O\'Toole","alias":"homotechsual","url":"https://github.com/homotechsual","imageURL":"https://github.com/homotechsual.png","key":"homotechsual","page":null},{"name":"Alexey Ivanov","alias":"iAdramelk","url":"https://github.com/iAdramelk","imageURL":"https://github.com/iAdramelk.png","key":"iAdramelk","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Kai Hoffman","alias":"kaihoffman","url":"https://github.com/kaihoffman","imageURL":"https://github.com/kaihoffman.png","key":"kaihoffman","page":null},{"name":"Balthasar Hofer","alias":"lebalz","url":"https://github.com/lebalz","imageURL":"https://github.com/lebalz.png","key":"lebalz","page":null},{"name":"ozaki","alias":"OzakIOne","url":"https://github.com/OzakIOne","imageURL":"https://github.com/OzakIOne.png","key":"OzakIOne","page":null},{"name":"Bairui Su","alias":"pearmini","url":"https://github.com/pearmini","imageURL":"https://github.com/pearmini.png","key":"pearmini","page":null},{"name":"Alexander Sandor","alias":"SandPod","url":"https://github.com/SandPod","imageURL":"https://github.com/SandPod.png","key":"SandPod","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tommaso Sotte","alias":"tomsotte","url":"https://github.com/tomsotte","imageURL":"https://github.com/tomsotte.png","key":"tomsotte","page":null},{"name":"Tomy Hsieh","alias":"tomy0000000","url":"https://github.com/tomy0000000","imageURL":"https://github.com/tomy0000000.png","key":"tomy0000000","page":null},{"name":"Virgil993","alias":"Virgil993","url":"https://github.com/Virgil993","imageURL":"https://github.com/Virgil993.png","key":"Virgil993","page":null},{"name":"volcanofr","alias":"volcanofr","url":"https://github.com/volcanofr","imageURL":"https://github.com/volcanofr.png","key":"volcanofr","page":null},{"name":"Zwyx","alias":"Zwyx","url":"https://github.com/Zwyx","imageURL":"https://github.com/Zwyx.png","key":"Zwyx","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-05-03T18:00","authors":["Abdullah-03","andrmaz","d4nyll","eldemcan","gagdiez","h3nr1ke","homotechsual","iAdramelk","johnnyreilly","kaihoffman","lebalz","OzakIOne","pearmini","SandPod","slorber","tomsotte","tomy0000000","Virgil993","volcanofr","Zwyx"]},"unlisted":false,"prevItem":{"title":"3.3.1","permalink":"/changelog/3.3.1"},"nextItem":{"title":"3.2.1","permalink":"/changelog/3.2.1"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-sitemap`\\n - [#10083](https://github.com/facebook/docusaurus/pull/10083) feat: add createSitemapItems hook ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `docusaurus-mdx-loader`, `docusaurus-types`, `docusaurus`\\n - [#10064](https://github.com/facebook/docusaurus/pull/10064) feat(core): add new site config option `siteConfig.markdown.anchors.maintainCase` ([@iAdramelk](https://github.com/iAdramelk))\\n- `docusaurus`\\n - [#9767](https://github.com/facebook/docusaurus/pull/9767) feat(cli): docusaurus deploy should support a --target-dir option ([@SandPod](https://github.com/SandPod))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-types`, `docusaurus`\\n - [#10042](https://github.com/facebook/docusaurus/pull/10042) feat(core): simplify plugin API, support route.props ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#10032](https://github.com/facebook/docusaurus/pull/10032) feat(pages): add LastUpdateAuthor & LastUpdateTime & editUrl ([@OzakIOne](https://github.com/OzakIOne))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-cssnano-preset`, `docusaurus-utils`, `docusaurus`\\n - [#10092](https://github.com/facebook/docusaurus/pull/10092) chore: Upgrade svgr / svgo / cssnano ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#10091](https://github.com/facebook/docusaurus/pull/10091) fix(theme): `<Tabs>` props should allow overriding defaults ([@gagdiez](https://github.com/gagdiez))\\n - [#10080](https://github.com/facebook/docusaurus/pull/10080) fix(theme): `<Admonition>` should render properly without heading/icon ([@andrmaz](https://github.com/andrmaz))\\n- `docusaurus`\\n - [#10090](https://github.com/facebook/docusaurus/pull/10090) fix(core): `docusaurus serve` redirects should include the site `/baseUrl/` prefix ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus`\\n - [#10079](https://github.com/facebook/docusaurus/pull/10079) fix: handle React v18.3 warnings ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-translations`\\n - [#10070](https://github.com/facebook/docusaurus/pull/10070) fix(theme-translations): add missing theme translations for pt-BR ([@h3nr1ke](https://github.com/h3nr1ke))\\n - [#10051](https://github.com/facebook/docusaurus/pull/10051) fix(theme-translations): correct label for tip admonition in italian ([@tomsotte](https://github.com/tomsotte))\\n- `docusaurus-theme-search-algolia`\\n - [#10048](https://github.com/facebook/docusaurus/pull/10048) fix(algolia): add insights property on Algolia Theme Config object TS definition ([@Virgil993](https://github.com/Virgil993))\\n- `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#10054](https://github.com/facebook/docusaurus/pull/10054) fix(core): sortRoutes shouldn\'t have a default baseUrl value, this led to a bug ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#10025](https://github.com/facebook/docusaurus/pull/10025) fix(docs): sidebar item label impact the pagination label of docs ([@Abdullah-03](https://github.com/Abdullah-03))\\n- `docusaurus-utils`\\n - [#10022](https://github.com/facebook/docusaurus/pull/10022) fix(utils): getFileCommitDate should support `log.showSignature=true` ([@slorber](https://github.com/slorber))\\n\\n## :running: Performance\\n\\n- `docusaurus`\\n - [#10060](https://github.com/facebook/docusaurus/pull/10060) refactor(core): optimize App entrypoint, it should not re-render when navigating ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#10061](https://github.com/facebook/docusaurus/pull/10061) refactor(theme): simplify CSS solution to solve empty search container ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-common`\\n - [#10023](https://github.com/facebook/docusaurus/pull/10023) refactor(website): refactor showcase components ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- [#10096](https://github.com/facebook/docusaurus/pull/10096) docs: Fix `d\xe9ja` to `d\xe9j\xe0` in `swizzling.mdx` ([@Zwyx](https://github.com/Zwyx))\\n- [#10093](https://github.com/facebook/docusaurus/pull/10093) docs: Fix dead Typesense links ([@kaihoffman](https://github.com/kaihoffman))\\n- [#10085](https://github.com/facebook/docusaurus/pull/10085) docs: make `ThemedImage` example work out of the box ([@lebalz](https://github.com/lebalz))\\n- [#10082](https://github.com/facebook/docusaurus/pull/10082) docs: add note regarding ts extension for config file. ([@homotechsual](https://github.com/homotechsual))\\n- [#9490](https://github.com/facebook/docusaurus/pull/9490) docs: add troubleshooting steps to migration/upgrade page ([@homotechsual](https://github.com/homotechsual))\\n- [#10056](https://github.com/facebook/docusaurus/pull/10056) docs(search): Algolia troubleshooting section for index configuration problems ([@slorber](https://github.com/slorber))\\n- [#10039](https://github.com/facebook/docusaurus/pull/10039) docs: visit is a named export of unist-util-visit ([@pearmini](https://github.com/pearmini))\\n- [#10020](https://github.com/facebook/docusaurus/pull/10020) docs: Fix wrong path example ([@tomy0000000](https://github.com/tomy0000000))\\n- [#10011](https://github.com/facebook/docusaurus/pull/10011) docs: add stormkit as deployment platform ([@eldemcan](https://github.com/eldemcan))\\n\\n## :robot: Dependencies\\n\\n- [#10097](https://github.com/facebook/docusaurus/pull/10097) chore(deps): bump ejs from 3.1.9 to 3.1.10 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10089](https://github.com/facebook/docusaurus/pull/10089) chore(deps): bump actions/dependency-review-action from 4.2.5 to 4.3.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10088](https://github.com/facebook/docusaurus/pull/10088) chore(deps): bump preactjs/compressed-size-action from 2.5.0 to 2.6.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#10034](https://github.com/facebook/docusaurus/pull/10034) chore(deps): bump semver from 7.3.4 to 7.6.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n\\n## :wrench: Maintenance\\n\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-plugin-vercel-analytics`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`, `stylelint-copyright`\\n - [#10065](https://github.com/facebook/docusaurus/pull/10065) refactor: extract base TS client config + upgrade TS + refactor TS setup ([@slorber](https://github.com/slorber))\\n- Other\\n - [#10063](https://github.com/facebook/docusaurus/pull/10063) test(e2e): TypeCheck website/starter in min/max range of TS versions ([@slorber](https://github.com/slorber))\\n - [#10049](https://github.com/facebook/docusaurus/pull/10049) fix(website): fix website manifest.json name \\"Docusaurus v2\\" to just \\"Docusaurus\\" ([@volcanofr](https://github.com/volcanofr))\\n\\n## Committers: 20\\n\\n- Abdullah Saud ([@Abdullah-03](https://github.com/Abdullah-03))\\n- Alexander Sandor ([@SandPod](https://github.com/SandPod))\\n- Alexey Ivanov ([@iAdramelk](https://github.com/iAdramelk))\\n- Andrea Mazzucchelli ([@andrmaz](https://github.com/andrmaz))\\n- Bairui Su ([@pearmini](https://github.com/pearmini))\\n- Balthasar Hofer ([@lebalz](https://github.com/lebalz))\\n- Can Eldem ([@eldemcan](https://github.com/eldemcan))\\n- Daniel Li ([@d4nyll](https://github.com/d4nyll))\\n- Guille ([@gagdiez](https://github.com/gagdiez))\\n- H3NR1KE ([@h3nr1ke](https://github.com/h3nr1ke))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Kai Hoffman ([@kaihoffman](https://github.com/kaihoffman))\\n- Mikey O\'Toole ([@homotechsual](https://github.com/homotechsual))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tommaso Sotte ([@tomsotte](https://github.com/tomsotte))\\n- Tomy Hsieh ([@tomy0000000](https://github.com/tomy0000000))\\n- Zwyx ([@Zwyx](https://github.com/Zwyx))\\n- [@Virgil993](https://github.com/Virgil993)\\n- [@volcanofr](https://github.com/volcanofr)\\n- ozaki ([@OzakIOne](https://github.com/OzakIOne))"},{"id":"/3.2.1","metadata":{"permalink":"/changelog/3.2.1","source":"@site/changelog/source/3.2.1.md","title":"3.2.1","description":"Bug Fix","date":"2024-04-04T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"ozaki","alias":"OzakIOne","url":"https://github.com/OzakIOne","imageURL":"https://github.com/OzakIOne.png","key":"OzakIOne","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-04-04T20:00","authors":["OzakIOne","slorber"]},"unlisted":false,"prevItem":{"title":"3.3.0","permalink":"/changelog/3.3.0"},"nextItem":{"title":"3.2.0","permalink":"/changelog/3.2.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#10012](https://github.com/facebook/docusaurus/pull/10012) fix(core): fix configurePostCss v3.2 regression ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- [#9980](https://github.com/facebook/docusaurus/pull/9980) docs: remove old github action description ([@OzakIOne](https://github.com/OzakIOne))\\n- [#10014](https://github.com/facebook/docusaurus/pull/10014) docs(website): fix SEO docs headTags example ([@OzakIOne](https://github.com/OzakIOne))\\n- [#10004](https://github.com/facebook/docusaurus/pull/10004) docs(website): Announce v3.2 on website/homepage ([@slorber](https://github.com/slorber))\\n\\n## :robot: Dependencies\\n\\n- [#10006](https://github.com/facebook/docusaurus/pull/10006) chore(deps): bump actions/dependency-review-action from 4.2.4 to 4.2.5 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n\\n## Committers: 2\\n\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- ozaki ([@OzakIOne](https://github.com/OzakIOne))"},{"id":"/3.2.0","metadata":{"permalink":"/changelog/3.2.0","source":"@site/changelog/source/3.2.0.md","title":"3.2.0","description":"New Feature","date":"2024-03-29T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Josue [4tro] A","alias":"4troDev","url":"https://github.com/4troDev","imageURL":"https://github.com/4troDev.png","key":"4troDev","page":null},{"name":"Anatoly Kopyl","alias":"anatolykopyl","url":"https://github.com/anatolykopyl","imageURL":"https://github.com/anatolykopyl.png","key":"anatolykopyl","page":null},{"name":"axel7083","alias":"axel7083","url":"https://github.com/axel7083","imageURL":"https://github.com/axel7083.png","key":"axel7083","page":null},{"name":"\u041D\u0443\u0440\u0438\u043B\u044C \u0411\u0430\u0440\u0430\u0434\u0443\u0441\u043E\u0432","alias":"baradusov","url":"https://github.com/baradusov","imageURL":"https://github.com/baradusov.png","key":"baradusov","page":null},{"name":"Chris Bateman","alias":"chris-bateman","url":"https://github.com/chris-bateman","imageURL":"https://github.com/chris-bateman.png","key":"chris-bateman","page":null},{"name":"Zed Spencer-Milnes","alias":"GingerGeek","url":"https://github.com/GingerGeek","imageURL":"https://github.com/GingerGeek.png","key":"GingerGeek","page":null},{"name":"Hallbj\xf6rn Magn\xfasson","alias":"Hallinn","url":"https://github.com/Hallinn","imageURL":"https://github.com/Hallinn.png","key":"Hallinn","page":null},{"name":"Liviu Ionescu","alias":"ilg-ul","url":"https://github.com/ilg-ul","imageURL":"https://github.com/ilg-ul.png","key":"ilg-ul","page":null},{"name":"n4n5","alias":"Its-Just-Nans","url":"https://github.com/Its-Just-Nans","imageURL":"https://github.com/Its-Just-Nans.png","key":"Its-Just-Nans","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"krinza.eth","alias":"kaymomin","url":"https://github.com/kaymomin","imageURL":"https://github.com/kaymomin.png","key":"kaymomin","page":null},{"name":"Max Schmitt","alias":"mxschmitt","url":"https://github.com/mxschmitt","imageURL":"https://github.com/mxschmitt.png","key":"mxschmitt","page":null},{"name":"Aolin","alias":"Oreoxmt","url":"https://github.com/Oreoxmt","imageURL":"https://github.com/Oreoxmt.png","key":"Oreoxmt","page":null},{"name":"ozaki","alias":"OzakIOne","url":"https://github.com/OzakIOne","imageURL":"https://github.com/OzakIOne.png","key":"OzakIOne","page":null},{"name":"Rafael Martins","alias":"Rafael-Martins","url":"https://github.com/Rafael-Martins","imageURL":"https://github.com/Rafael-Martins.png","key":"Rafael-Martins","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"suenryu","alias":"Suenaga-Ryuya","url":"https://github.com/Suenaga-Ryuya","imageURL":"https://github.com/Suenaga-Ryuya.png","key":"Suenaga-Ryuya","page":null},{"name":"Fafowora Sunkanmi","alias":"sunkanmii","url":"https://github.com/sunkanmii","imageURL":"https://github.com/sunkanmii.png","key":"sunkanmii","page":null},{"name":"Vahid Naderi","alias":"VahidNaderi","url":"https://github.com/VahidNaderi","imageURL":"https://github.com/VahidNaderi.png","key":"VahidNaderi","page":null},{"name":"Vlad Nestorov","alias":"vlad-nestorov","url":"https://github.com/vlad-nestorov","imageURL":"https://github.com/vlad-nestorov.png","key":"vlad-nestorov","page":null},{"name":"\u7FCA\u5C0F\u4E45","alias":"yixiaojiu","url":"https://github.com/yixiaojiu","imageURL":"https://github.com/yixiaojiu.png","key":"yixiaojiu","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-03-29T20:00","authors":["4troDev","anatolykopyl","axel7083","baradusov","chris-bateman","GingerGeek","Hallinn","ilg-ul","Its-Just-Nans","johnnyreilly","Josh-Cena","kaymomin","mxschmitt","Oreoxmt","OzakIOne","Rafael-Martins","slorber","Suenaga-Ryuya","sunkanmii","VahidNaderi","vlad-nestorov","yixiaojiu"]},"unlisted":false,"prevItem":{"title":"3.2.1","permalink":"/changelog/3.2.1"},"nextItem":{"title":"3.1.1","permalink":"/changelog/3.1.1"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#9954](https://github.com/facebook/docusaurus/pull/9954) feat(sitemap): add support for \\"lastmod\\" ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus-utils`\\n - [#9912](https://github.com/facebook/docusaurus/pull/9912) feat(blog): add LastUpdateAuthor & LastUpdateTime ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-plugin-debug`, `docusaurus-types`, `docusaurus`\\n - [#9931](https://github.com/facebook/docusaurus/pull/9931) feat(core): add new plugin allContentLoaded lifecycle ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-translations`\\n - [#9928](https://github.com/facebook/docusaurus/pull/9928) feat(theme-translations) Icelandic (is) ([@Hallinn](https://github.com/Hallinn))\\n- `docusaurus-plugin-content-blog`\\n - [#9886](https://github.com/facebook/docusaurus/pull/9886) feat(blog): allow processing blog posts through a processBlogPosts function ([@OzakIOne](https://github.com/OzakIOne))\\n - [#9838](https://github.com/facebook/docusaurus/pull/9838) feat(blog): add blog pageBasePath plugin option ([@ilg-ul](https://github.com/ilg-ul))\\n- `docusaurus`\\n - [#9681](https://github.com/facebook/docusaurus/pull/9681) feat(swizzle): ask user preferred language if no language CLI option provided ([@yixiaojiu](https://github.com/yixiaojiu))\\n- `create-docusaurus`, `docusaurus-utils`\\n - [#9442](https://github.com/facebook/docusaurus/pull/9442) feat(create-docusaurus): ask user for preferred language when no language CLI option provided ([@Rafael-Martins](https://github.com/Rafael-Martins))\\n- `docusaurus-plugin-vercel-analytics`\\n - [#9687](https://github.com/facebook/docusaurus/pull/9687) feat(plugin-vercel-analytics): add new vercel analytics plugin ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-mdx-loader`\\n - [#9684](https://github.com/facebook/docusaurus/pull/9684) feat(mdx-loader): the table-of-contents should display toc/headings of imported MDX partials ([@anatolykopyl](https://github.com/anatolykopyl))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-mdx-loader`\\n - [#9999](https://github.com/facebook/docusaurus/pull/9999) fix(mdx-loader): Ignore contentTitle coming after Markdown thematicBreak ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-search-algolia`\\n - [#9945](https://github.com/facebook/docusaurus/pull/9945) fix(a11y): move focus algolia-search focus back to search input on Escape ([@mxschmitt](https://github.com/mxschmitt))\\n- `docusaurus-plugin-content-blog`\\n - [#9920](https://github.com/facebook/docusaurus/pull/9920) fix(blog): apply trailing slash to blog feed ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-theme-classic`\\n - [#9944](https://github.com/facebook/docusaurus/pull/9944) fix(theme): improve a11y of DocSidebarItemCategory expand/collapsed button ([@mxschmitt](https://github.com/mxschmitt))\\n- `docusaurus-theme-translations`\\n - [#9915](https://github.com/facebook/docusaurus/pull/9915) fix(theme-translations): complete and modify Japanese translations ([@Suenaga-Ryuya](https://github.com/Suenaga-Ryuya))\\n - [#9910](https://github.com/facebook/docusaurus/pull/9910) fix(theme-translations): add Japanese translations ([@Suenaga-Ryuya](https://github.com/Suenaga-Ryuya))\\n - [#9872](https://github.com/facebook/docusaurus/pull/9872) fix(theme-translations): complete and improve Spanish theme translations ([@4troDev](https://github.com/4troDev))\\n - [#9812](https://github.com/facebook/docusaurus/pull/9812) fix(i18n): add missing theme translations for fa locale ([@VahidNaderi](https://github.com/VahidNaderi))\\n- `docusaurus-utils`\\n - [#9897](https://github.com/facebook/docusaurus/pull/9897) fix(mdx-loader): mdx-code-block should support CRLF ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#9878](https://github.com/facebook/docusaurus/pull/9878) fix(core): fix default i18n calendar used, infer it from locale if possible ([@slorber](https://github.com/slorber))\\n - [#9852](https://github.com/facebook/docusaurus/pull/9852) fix(core): ensure core error boundary is able to render theme layout ([@slorber](https://github.com/slorber))\\n- `docusaurus-remark-plugin-npm2yarn`\\n - [#9861](https://github.com/facebook/docusaurus/pull/9861) fix(remark-npm2yarn): update npm-to-yarn from 2.0.0 to 2.2.1, fix pnpm extra args syntax ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-theme-classic`, `docusaurus-theme-translations`\\n - [#9851](https://github.com/facebook/docusaurus/pull/9851) fix(theme-classic): should use plurals for category items description ([@baradusov](https://github.com/baradusov))\\n\\n## :running: Performance\\n\\n- `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#9975](https://github.com/facebook/docusaurus/pull/9975) refactor(core): improve dev perf, fine-grained site reloads - part 3 ([@slorber](https://github.com/slorber))\\n- `docusaurus-types`, `docusaurus`\\n - [#9968](https://github.com/facebook/docusaurus/pull/9968) refactor(core): improve dev perf, fine-grained site reloads - part2 ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-types`, `docusaurus`\\n - [#9903](https://github.com/facebook/docusaurus/pull/9903) refactor(core): improve dev perf, fine-grained site reloads - part1 ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#9890](https://github.com/facebook/docusaurus/pull/9890) perf: optimize getFileCommitDate, make it async ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#9798](https://github.com/facebook/docusaurus/pull/9798) refactor(core): internalize, simplify and optimize the SSG logic ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#9868](https://github.com/facebook/docusaurus/pull/9868) refactor(theme): dates should be formatted on the client-side instead of in nodejs code ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`\\n - [#9669](https://github.com/facebook/docusaurus/pull/9669) refactor(theme): use JSON-LD instead of microdata for blog structured data ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `docusaurus-plugin-content-docs`\\n - [#9839](https://github.com/facebook/docusaurus/pull/9839) refactor(blog): improve doc global data hook error message + add doc warning to blogOnly mode ([@OzakIOne](https://github.com/OzakIOne))\\n\\n## :memo: Documentation\\n\\n- [#9937](https://github.com/facebook/docusaurus/pull/9937) docs: use official GitHub Action to deploy to GitHub Pages ([@vlad-nestorov](https://github.com/vlad-nestorov))\\n- [#9971](https://github.com/facebook/docusaurus/pull/9971) docs: replace VuePress by VitePress on tool comparison section ([@sunkanmii](https://github.com/sunkanmii))\\n- [#9914](https://github.com/facebook/docusaurus/pull/9914) docs: update legacy MDX v1 links to markdown links ([@OzakIOne](https://github.com/OzakIOne))\\n- [#9913](https://github.com/facebook/docusaurus/pull/9913) docs: update legacy MDX v1 links to markdown links ([@OzakIOne](https://github.com/OzakIOne))\\n- [#9906](https://github.com/facebook/docusaurus/pull/9906) docs: emphasize \\"index slug\\" convention ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#9877](https://github.com/facebook/docusaurus/pull/9877) docs: fix typos in deployment.mdx ([@Oreoxmt](https://github.com/Oreoxmt))\\n- [#9845](https://github.com/facebook/docusaurus/pull/9845) docs: typo ([@OzakIOne](https://github.com/OzakIOne))\\n- [#9816](https://github.com/facebook/docusaurus/pull/9816) docs: Add docs for Mermaid Component ([@Its-Just-Nans](https://github.com/Its-Just-Nans))\\n\\n## :robot: Dependencies\\n\\n- [#9981](https://github.com/facebook/docusaurus/pull/9981) chore(deps): bump actions/dependency-review-action from 4.1.3 to 4.2.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9982](https://github.com/facebook/docusaurus/pull/9982) chore(deps): bump katex from 0.16.8 to 0.16.10 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9983](https://github.com/facebook/docusaurus/pull/9983) chore(deps): bump express from 4.18.2 to 4.19.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9977](https://github.com/facebook/docusaurus/pull/9977) chore(deps): bump webpack-dev-middleware from 5.3.3 to 5.3.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9958](https://github.com/facebook/docusaurus/pull/9958) chore(deps): bump follow-redirects from 1.15.4 to 1.15.6 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9892](https://github.com/facebook/docusaurus/pull/9892) chore(deps): bump actions/dependency-review-action from 4.1.2 to 4.1.3 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9869](https://github.com/facebook/docusaurus/pull/9869) chore(deps): bump actions/dependency-review-action from 4.0.0 to 4.1.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9874](https://github.com/facebook/docusaurus/pull/9874) chore(deps): bump ip from 2.0.0 to 2.0.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9843](https://github.com/facebook/docusaurus/pull/9843) chore(deps): bump actions/setup-node from 4.0.1 to 4.0.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9824](https://github.com/facebook/docusaurus/pull/9824) chore(deps): bump treosh/lighthouse-ci-action from 10.1.0 to 11.4.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- [#9823](https://github.com/facebook/docusaurus/pull/9823) chore(deps): bump marocchino/sticky-pull-request-comment from 2.8.0 to 2.9.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n\\n## :wrench: Maintenance\\n\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-docs`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#9972](https://github.com/facebook/docusaurus/pull/9972) refactor(utils): remove duplicated function ([@OzakIOne](https://github.com/OzakIOne))\\n- Other\\n - [#9965](https://github.com/facebook/docusaurus/pull/9965) refactor(website): organise blog posts by year ([@GingerGeek](https://github.com/GingerGeek))\\n - [#9865](https://github.com/facebook/docusaurus/pull/9865) chore(website): update @crowdin/crowdin-api-client ([@chris-bateman](https://github.com/chris-bateman))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils`\\n - [#9963](https://github.com/facebook/docusaurus/pull/9963) refactor(docs,blog): last update timestamp should be in milliseconds instead of seconds ([@slorber](https://github.com/slorber))\\n\\n## Committers: 22\\n\\n- Aolin ([@Oreoxmt](https://github.com/Oreoxmt))\\n- Anatoly Kopyl ([@anatolykopyl](https://github.com/anatolykopyl))\\n- Chris Bateman ([@chris-bateman](https://github.com/chris-bateman))\\n- Fafowora Sunkanmi ([@sunkanmii](https://github.com/sunkanmii))\\n- Hallbj\xf6rn Magn\xfasson ([@Hallinn](https://github.com/Hallinn))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Josue [4tro] A ([@4troDev](https://github.com/4troDev))\\n- Liviu Ionescu ([@ilg-ul](https://github.com/ilg-ul))\\n- Max Schmitt ([@mxschmitt](https://github.com/mxschmitt))\\n- Rafael Martins ([@Rafael-Martins](https://github.com/Rafael-Martins))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Vahid Naderi ([@VahidNaderi](https://github.com/VahidNaderi))\\n- Vlad Nestorov ([@vlad-nestorov](https://github.com/vlad-nestorov))\\n- Zed Spencer-Milnes ([@GingerGeek](https://github.com/GingerGeek))\\n- axel7083 ([@axel7083](https://github.com/axel7083))\\n- krinza.eth ([@kaymomin](https://github.com/kaymomin))\\n- n4n5 ([@Its-Just-Nans](https://github.com/Its-Just-Nans))\\n- ozaki ([@OzakIOne](https://github.com/OzakIOne))\\n- suenryu ([@Suenaga-Ryuya](https://github.com/Suenaga-Ryuya))\\n- \u041D\u0443\u0440\u0438\u043B\u044C \u0411\u0430\u0440\u0430\u0434\u0443\u0441\u043E\u0432 ([@baradusov](https://github.com/baradusov))\\n- \u7FCA\u5C0F\u4E45 ([@yixiaojiu](https://github.com/yixiaojiu))"},{"id":"/3.1.1","metadata":{"permalink":"/changelog/3.1.1","source":"@site/changelog/source/3.1.1.md","title":"3.1.1","description":"Bug Fix","date":"2024-01-26T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"dawei-wang","alias":"dawei-wang","url":"https://github.com/dawei-wang","imageURL":"https://github.com/dawei-wang.png","key":"dawei-wang","page":null},{"name":"eitsupi","alias":"eitsupi","url":"https://github.com/eitsupi","imageURL":"https://github.com/eitsupi.png","key":"eitsupi","page":null},{"name":"Jack Robson","alias":"jack-robson","url":"https://github.com/jack-robson","imageURL":"https://github.com/jack-robson.png","key":"jack-robson","page":null},{"name":"Sanjaiyan Parthipan","alias":"sanjaiyan-dev","url":"https://github.com/sanjaiyan-dev","imageURL":"https://github.com/sanjaiyan-dev.png","key":"sanjaiyan-dev","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tatsunori Uchino","alias":"tats-u","url":"https://github.com/tats-u","imageURL":"https://github.com/tats-u.png","key":"tats-u","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-01-26T20:00","authors":["dawei-wang","eitsupi","jack-robson","sanjaiyan-dev","slorber","tats-u"]},"unlisted":false,"prevItem":{"title":"3.2.0","permalink":"/changelog/3.2.0"},"nextItem":{"title":"3.1.0","permalink":"/changelog/3.1.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-types`, `docusaurus`\\n - [#9791](https://github.com/facebook/docusaurus/pull/9791) fix(core): broken links optimization behaves differently than non-optimized logic ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#9788](https://github.com/facebook/docusaurus/pull/9788) fix(core): links with target \\"\\\\_blank\\" should no be checked by the broken link checker ([@slorber](https://github.com/slorber))\\n - [#9407](https://github.com/facebook/docusaurus/pull/9407) fix(core): conditionally include `hostname` parameter when using\u2026 ([@jack-robson](https://github.com/jack-robson))\\n- `docusaurus-utils`\\n - [#9776](https://github.com/facebook/docusaurus/pull/9776) fix(mdx-loader): allow spaces before `mdx-code-block` info string ([@eitsupi](https://github.com/eitsupi))\\n- `create-docusaurus`\\n - [#9783](https://github.com/facebook/docusaurus/pull/9783) fix(create-docusaurus): fix typo in init template sample docs ([@dawei-wang](https://github.com/dawei-wang))\\n- `docusaurus-theme-common`\\n - [#9727](https://github.com/facebook/docusaurus/pull/9727) fix(theme-common): fix missing code block MagicComments style in Visual Basic (.NET) 16 ([@tats-u](https://github.com/tats-u))\\n- `docusaurus-theme-classic`, `docusaurus-theme-mermaid`\\n - [#9733](https://github.com/facebook/docusaurus/pull/9733) fix: remove old useless mdx typedefs ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`\\n - [#9732](https://github.com/facebook/docusaurus/pull/9732) fix(core): various broken anchor link fixes ([@slorber](https://github.com/slorber))\\n\\n## :running: Performance\\n\\n- `docusaurus`\\n - [#9778](https://github.com/facebook/docusaurus/pull/9778) perf(core): optimize broken links checker ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#9470](https://github.com/facebook/docusaurus/pull/9470) polish(theme): MDX images should use async decoding ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))\\n\\n## Committers: 6\\n\\n- Jack Robson ([@jack-robson](https://github.com/jack-robson))\\n- Sanjaiyan Parthipan ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tatsunori Uchino ([@tats-u](https://github.com/tats-u))\\n- [@dawei-wang](https://github.com/dawei-wang)\\n- [@eitsupi](https://github.com/eitsupi)"},{"id":"/3.1.0","metadata":{"permalink":"/changelog/3.1.0","source":"@site/changelog/source/3.1.0.md","title":"3.1.0","description":"New Feature","date":"2024-01-05T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"axmmisaka","alias":"axmmisaka","url":"https://github.com/axmmisaka","imageURL":"https://github.com/axmmisaka.png","key":"axmmisaka","page":null},{"name":"c0h1b4","alias":"c0h1b4","url":"https://github.com/c0h1b4","imageURL":"https://github.com/c0h1b4.png","key":"c0h1b4","page":null},{"name":"Janessa Garrow","alias":"jgarrow","url":"https://github.com/jgarrow","imageURL":"https://github.com/jgarrow.png","key":"jgarrow","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"ozaki","alias":"OzakIOne","url":"https://github.com/OzakIOne","imageURL":"https://github.com/OzakIOne.png","key":"OzakIOne","page":null},{"name":"Simen Bekkhus","alias":"SimenB","url":"https://github.com/SimenB","imageURL":"https://github.com/SimenB.png","key":"SimenB","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tatsunori Uchino","alias":"tats-u","url":"https://github.com/tats-u","imageURL":"https://github.com/tats-u.png","key":"tats-u","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2024-01-05T20:00","authors":["axmmisaka","c0h1b4","jgarrow","Josh-Cena","OzakIOne","SimenB","slorber","tats-u"]},"unlisted":false,"prevItem":{"title":"3.1.1","permalink":"/changelog/3.1.1"},"nextItem":{"title":"3.0.1","permalink":"/changelog/3.0.1"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-mdx-loader`, `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#9528](https://github.com/facebook/docusaurus/pull/9528) feat(core): make broken link checker detect broken anchors - add `onBrokenAnchors` config ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-mdx-loader`, `docusaurus-types`, `docusaurus`\\n - [#9674](https://github.com/facebook/docusaurus/pull/9674) feat(mdx-loader): add support for siteConfig.markdown.remarkRehypeOptions ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-common`\\n - [#9671](https://github.com/facebook/docusaurus/pull/9671) feat(theme-common): code block MagicComments support for (Visual) Basic/Batch/Fortran/COBOL/ML ([@tats-u](https://github.com/tats-u))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#9624](https://github.com/facebook/docusaurus/pull/9624) feat: siteConfig.markdown.parseFrontMatter hook ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`\\n - [#9610](https://github.com/facebook/docusaurus/pull/9610) feat(core): enable port configuration via environment variable ([@OzakIOne](https://github.com/OzakIOne))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#9704](https://github.com/facebook/docusaurus/pull/9704) fix(theme): allow empty code blocks and live playgrounds ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`\\n - [#9696](https://github.com/facebook/docusaurus/pull/9696) fix(create-docusaurus): fix init template code blocks, and little improvements ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-pwa`\\n - [#9668](https://github.com/facebook/docusaurus/pull/9668) fix(pwa-plugin): upgrade workbox ([@SimenB](https://github.com/SimenB))\\n- `docusaurus`\\n - [#9648](https://github.com/facebook/docusaurus/pull/9648) fix(cli): output help when no conventional config + no subcommand ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-live-codeblock`\\n - [#9631](https://github.com/facebook/docusaurus/pull/9631) fix(live-codeblock): stabilize react-live transformCode callback, fix editor/preview desync ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`\\n - [#9617](https://github.com/facebook/docusaurus/pull/9617) fix(utils): Markdown link replacement with <> but no spaces ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`\\n - [#9612](https://github.com/facebook/docusaurus/pull/9612) fix(type-aliases): add `title` prop for imported inline SVG React components ([@axmmisaka](https://github.com/axmmisaka))\\n- `docusaurus-plugin-content-blog`\\n - [#9581](https://github.com/facebook/docusaurus/pull/9581) fix(content-blog): add baseUrl for author.image_url ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-theme-translations`\\n - [#9477](https://github.com/facebook/docusaurus/pull/9477) fix(i18n): complete translations for theme-common.json Brazilian Portuguese (pt-BR) ([@c0h1b4](https://github.com/c0h1b4))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-common`\\n - [#9335](https://github.com/facebook/docusaurus/pull/9335) refactor(theme-common): allow optional desktopBreakpoint param in useWindowSize ([@jgarrow](https://github.com/jgarrow))\\n\\n## :wrench: Maintenance\\n\\n- `docusaurus-theme-search-algolia`\\n - [#9604](https://github.com/facebook/docusaurus/pull/9604) chore: add lint autofix CI job ([@slorber](https://github.com/slorber))\\n\\n## Committers: 8\\n\\n- Janessa Garrow ([@jgarrow](https://github.com/jgarrow))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Simen Bekkhus ([@SimenB](https://github.com/SimenB))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tatsunori Uchino ([@tats-u](https://github.com/tats-u))\\n- [@c0h1b4](https://github.com/c0h1b4)\\n- axmmisaka ([@axmmisaka](https://github.com/axmmisaka))\\n- ozaki ([@OzakIOne](https://github.com/OzakIOne))"},{"id":"/3.0.1","metadata":{"permalink":"/changelog/3.0.1","source":"@site/changelog/source/3.0.1.md","title":"3.0.1","description":"Bug Fix","date":"2023-11-30T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Chongyi Zheng","alias":"harryzcy","url":"https://github.com/harryzcy","imageURL":"https://github.com/harryzcy.png","key":"harryzcy","page":null},{"name":"MCR Studio","alias":"mcrstudio","url":"https://github.com/mcrstudio","imageURL":"https://github.com/mcrstudio.png","key":"mcrstudio","page":null},{"name":"Nick Gerleman","alias":"NickGerleman","url":"https://github.com/NickGerleman","imageURL":"https://github.com/NickGerleman.png","key":"NickGerleman","page":null},{"name":"reece-white","alias":"reece-white","url":"https://github.com/reece-white","imageURL":"https://github.com/reece-white.png","key":"reece-white","page":null},{"name":"Shreesh Nautiyal","alias":"Shreesh09","url":"https://github.com/Shreesh09","imageURL":"https://github.com/Shreesh09.png","key":"Shreesh09","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2023-11-30T20:00","authors":["harryzcy","mcrstudio","NickGerleman","reece-white","Shreesh09","slorber"]},"unlisted":false,"prevItem":{"title":"3.1.0","permalink":"/changelog/3.1.0"},"nextItem":{"title":"3.0.0","permalink":"/changelog/3.0.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-utils`\\n - [#9570](https://github.com/facebook/docusaurus/pull/9570) fix: add v2 retrocompatible support for quoted admonitions ([@slorber](https://github.com/slorber))\\n - [#9535](https://github.com/facebook/docusaurus/pull/9535) fix: v3 admonitions should support v2 title syntax for nested admonitions ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#9567](https://github.com/facebook/docusaurus/pull/9567) fix(theme): upgrade prism-react-renderer, fix html script and style tag highlighting ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-common`\\n - [#9531](https://github.com/facebook/docusaurus/pull/9531) fix(theme): docs html sidebar items should always be visible ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#9530](https://github.com/facebook/docusaurus/pull/9530) fix(theme): fix firefox CSS :has() support bug ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`\\n - [#9487](https://github.com/facebook/docusaurus/pull/9487) fix(create-docusaurus): fix readme docusaurus 2 ref ([@slorber](https://github.com/slorber))\\n\\n## :robot: Dependencies\\n\\n- `docusaurus-plugin-debug`\\n - [#9566](https://github.com/facebook/docusaurus/pull/9566) chore(debug-plugin): migrate to a new maintained JSON Viewer ([@mcrstudio](https://github.com/mcrstudio))\\n- `create-docusaurus`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#9572](https://github.com/facebook/docusaurus/pull/9572) chore: upgrade prism-react-renderer to 2.3.0 to avoid older clsx ([@harryzcy](https://github.com/harryzcy))\\n - [#9567](https://github.com/facebook/docusaurus/pull/9567) fix(theme): upgrade prism-react-renderer, fix html script and style tag highlighting ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`\\n - [#9464](https://github.com/facebook/docusaurus/pull/9464) chore: Upgrade clsx to 2.0.0 ([@harryzcy](https://github.com/harryzcy))\\n- `docusaurus`\\n - [#9547](https://github.com/facebook/docusaurus/pull/9547) chore(core): replace `wait-on` dependency with custom lighter code ([@NickGerleman](https://github.com/NickGerleman))\\n- `docusaurus-plugin-pwa`, `docusaurus`\\n - [#9529](https://github.com/facebook/docusaurus/pull/9529) chore: ugrade babel dependencies to v7.23.3 ([@reece-white](https://github.com/reece-white))\\n\\n## Committers: 6\\n\\n- Chongyi Zheng ([@harryzcy](https://github.com/harryzcy))\\n- MCR Studio ([@mcrstudio](https://github.com/mcrstudio))\\n- Nick Gerleman ([@NickGerleman](https://github.com/NickGerleman))\\n- Shreesh Nautiyal ([@Shreesh09](https://github.com/Shreesh09))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- [@reece-white](https://github.com/reece-white)"},{"id":"/3.0.0","metadata":{"permalink":"/changelog/3.0.0","source":"@site/changelog/source/3.0.0.md","title":"3.0.0","description":"Breaking Change","date":"2023-10-31T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Wan Sim","alias":"0420syj","url":"https://github.com/0420syj","imageURL":"https://github.com/0420syj.png","key":"0420syj","page":null},{"name":"Abhinandan Wadhwa","alias":"abhinandanwadwa","url":"https://github.com/abhinandanwadwa","imageURL":"https://github.com/abhinandanwadwa.png","key":"abhinandanwadwa","page":null},{"name":"Abinash Satapathy","alias":"Abinashbunty","url":"https://github.com/Abinashbunty","imageURL":"https://github.com/Abinashbunty.png","key":"Abinashbunty","page":null},{"name":"Adam Patterson","alias":"adampatterson","url":"https://github.com/adampatterson","imageURL":"https://github.com/adampatterson.png","key":"adampatterson","page":null},{"name":"Adithya Krishna","alias":"adithyaakrishna","url":"https://github.com/adithyaakrishna","imageURL":"https://github.com/adithyaakrishna.png","key":"adithyaakrishna","page":null},{"name":"Hayden Hong","alias":"AFRUITPIE","url":"https://github.com/AFRUITPIE","imageURL":"https://github.com/AFRUITPIE.png","key":"AFRUITPIE","page":null},{"name":"Craigory Coppola","alias":"AgentEnder","url":"https://github.com/AgentEnder","imageURL":"https://github.com/AgentEnder.png","key":"AgentEnder","page":null},{"name":"Akshay Bhalotia","alias":"akshaybhalotia","url":"https://github.com/akshaybhalotia","imageURL":"https://github.com/akshaybhalotia.png","key":"akshaybhalotia","page":null},{"name":"allyw2002","alias":"allyw2002","url":"https://github.com/allyw2002","imageURL":"https://github.com/allyw2002.png","key":"allyw2002","page":null},{"name":"Ahmad Shrif","alias":"amdshrif","url":"https://github.com/amdshrif","imageURL":"https://github.com/amdshrif.png","key":"amdshrif","page":null},{"name":"Ahmed Mustafa Malik","alias":"amm98d","url":"https://github.com/amm98d","imageURL":"https://github.com/amm98d.png","key":"amm98d","page":null},{"name":"Sunghyun Cho","alias":"anaclumos","url":"https://github.com/anaclumos","imageURL":"https://github.com/anaclumos.png","key":"anaclumos","page":null},{"name":"Andrew Lyons","alias":"andrewnicols","url":"https://github.com/andrewnicols","imageURL":"https://github.com/andrewnicols.png","key":"andrewnicols","page":null},{"name":"Anton Kastritskii","alias":"antonk52","url":"https://github.com/antonk52","imageURL":"https://github.com/antonk52.png","key":"antonk52","page":null},{"name":"Antony Onipko","alias":"antonyoni","url":"https://github.com/antonyoni","imageURL":"https://github.com/antonyoni.png","key":"antonyoni","page":null},{"name":"Aqueeb","alias":"aqueeb","url":"https://github.com/aqueeb","imageURL":"https://github.com/aqueeb.png","key":"aqueeb","page":null},{"name":"Martin Adamko","alias":"attitude","url":"https://github.com/attitude","imageURL":"https://github.com/attitude.png","key":"attitude","page":null},{"name":"Billy Chan","alias":"billy1624","url":"https://github.com/billy1624","imageURL":"https://github.com/billy1624.png","key":"billy1624","page":null},{"name":"biplavmz","alias":"biplavmz","url":"https://github.com/biplavmz","imageURL":"https://github.com/biplavmz.png","key":"biplavmz","page":null},{"name":"bitpredator","alias":"bitpredator","url":"https://github.com/bitpredator","imageURL":"https://github.com/bitpredator.png","key":"bitpredator","page":null},{"name":"Joe Williams","alias":"BubbaJoe","url":"https://github.com/BubbaJoe","imageURL":"https://github.com/BubbaJoe.png","key":"BubbaJoe","page":null},{"name":"Dinh Bao Dang","alias":"chillinPanda","url":"https://github.com/chillinPanda","imageURL":"https://github.com/chillinPanda.png","key":"chillinPanda","page":null},{"name":"Bei Chu","alias":"chubei","url":"https://github.com/chubei","imageURL":"https://github.com/chubei.png","key":"chubei","page":null},{"name":"\u521D\u51AC","alias":"chudongvip","url":"https://github.com/chudongvip","imageURL":"https://github.com/chudongvip.png","key":"chudongvip","page":null},{"name":"Ryosuke Igarashi","alias":"cm-igarashi-ryosuke","url":"https://github.com/cm-igarashi-ryosuke","imageURL":"https://github.com/cm-igarashi-ryosuke.png","key":"cm-igarashi-ryosuke","page":null},{"name":"Colin McDonnell","alias":"colinhacks","url":"https://github.com/colinhacks","imageURL":"https://github.com/colinhacks.png","key":"colinhacks","page":null},{"name":"conlacda","alias":"conlacda","url":"https://github.com/conlacda","imageURL":"https://github.com/conlacda.png","key":"conlacda","page":null},{"name":"Dan Dascalescu","alias":"dandv","url":"https://github.com/dandv","imageURL":"https://github.com/dandv.png","key":"dandv","page":null},{"name":"Danilo Woznica","alias":"danilowoz","url":"https://github.com/danilowoz","imageURL":"https://github.com/danilowoz.png","key":"danilowoz","page":null},{"name":"Dan Roscigno","alias":"DanRoscigno","url":"https://github.com/DanRoscigno","imageURL":"https://github.com/DanRoscigno.png","key":"DanRoscigno","page":null},{"name":"David J. Felix","alias":"DavidJFelix","url":"https://github.com/DavidJFelix","imageURL":"https://github.com/DavidJFelix.png","key":"DavidJFelix","page":null},{"name":"dawei-wang","alias":"dawei-wang","url":"https://github.com/dawei-wang","imageURL":"https://github.com/dawei-wang.png","key":"dawei-wang","page":null},{"name":"Debbie O\'Brien","alias":"debs-obrien","url":"https://github.com/debs-obrien","imageURL":"https://github.com/debs-obrien.png","key":"debs-obrien","page":null},{"name":"Devansu Yadav","alias":"Devansu-Yadav","url":"https://github.com/Devansu-Yadav","imageURL":"https://github.com/Devansu-Yadav.png","key":"Devansu-Yadav","page":null},{"name":"Dongjoon Lee","alias":"Djunnni","url":"https://github.com/Djunnni","imageURL":"https://github.com/Djunnni.png","key":"Djunnni","page":null},{"name":"Dr-Electron","alias":"Dr-Electron","url":"https://github.com/Dr-Electron","imageURL":"https://github.com/Dr-Electron.png","key":"Dr-Electron","page":null},{"name":"Eduardo M\xednguez","alias":"e-minguez","url":"https://github.com/e-minguez","imageURL":"https://github.com/e-minguez.png","key":"e-minguez","page":null},{"name":"Gr\xe9gory Heitz","alias":"edno","url":"https://github.com/edno","imageURL":"https://github.com/edno.png","key":"edno","page":null},{"name":"FlorinaPacurar","alias":"FlorinaPacurar","url":"https://github.com/FlorinaPacurar","imageURL":"https://github.com/FlorinaPacurar.png","key":"FlorinaPacurar","page":null},{"name":"Charles Killer","alias":"Foosballfan","url":"https://github.com/Foosballfan","imageURL":"https://github.com/Foosballfan.png","key":"Foosballfan","page":null},{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},{"name":"Francesco Ciulla","alias":"FrancescoXX","url":"https://github.com/FrancescoXX","imageURL":"https://github.com/FrancescoXX.png","key":"FrancescoXX","page":null},{"name":"Fredrik Stave","alias":"fredrikstave","url":"https://github.com/fredrikstave","imageURL":"https://github.com/fredrikstave.png","key":"fredrikstave","page":null},{"name":"Fxpby","alias":"fxpby","url":"https://github.com/fxpby","imageURL":"https://github.com/fxpby.png","key":"fxpby","page":null},{"name":"Gabriel Csapo","alias":"gabrielcsapo","url":"https://github.com/gabrielcsapo","imageURL":"https://github.com/gabrielcsapo.png","key":"gabrielcsapo","page":null},{"name":"Alexander Nguyen","alias":"GalexyN","url":"https://github.com/GalexyN","imageURL":"https://github.com/GalexyN.png","key":"GalexyN","page":null},{"name":"Gustav Ton\xe9r","alias":"gazab","url":"https://github.com/gazab","imageURL":"https://github.com/gazab.png","key":"gazab","page":null},{"name":"Eunkwang Shin","alias":"gracefullight","url":"https://github.com/gracefullight","imageURL":"https://github.com/gracefullight.png","key":"gracefullight","page":null},{"name":"Greg Berg\xe9","alias":"gregberge","url":"https://github.com/gregberge","imageURL":"https://github.com/gregberge.png","key":"gregberge","page":null},{"name":"Chongyi Zheng","alias":"harryzcy","url":"https://github.com/harryzcy","imageURL":"https://github.com/harryzcy.png","key":"harryzcy","page":null},{"name":"Sujal Gupta","alias":"heysujal","url":"https://github.com/heysujal","imageURL":"https://github.com/heysujal.png","key":"heysujal","page":null},{"name":"Hidde de Vries","alias":"hidde","url":"https://github.com/hidde","imageURL":"https://github.com/hidde.png","key":"hidde","page":null},{"name":"Mikey O\'Toole","alias":"homotechsual","url":"https://github.com/homotechsual","imageURL":"https://github.com/homotechsual.png","key":"homotechsual","page":null},{"name":"Hyunseung","alias":"hslee2008","url":"https://github.com/hslee2008","imageURL":"https://github.com/hslee2008.png","key":"hslee2008","page":null},{"name":"Anna","alias":"HumbleDeer","url":"https://github.com/HumbleDeer","imageURL":"https://github.com/HumbleDeer.png","key":"HumbleDeer","page":null},{"name":"Coupy","alias":"HyeokjinKang","url":"https://github.com/HyeokjinKang","imageURL":"https://github.com/HyeokjinKang.png","key":"HyeokjinKang","page":null},{"name":"Jean Humann","alias":"jean-humann","url":"https://github.com/jean-humann","imageURL":"https://github.com/jean-humann.png","key":"jean-humann","page":null},{"name":"Jesper Engberg","alias":"jeengbe","url":"https://github.com/jeengbe","imageURL":"https://github.com/jeengbe.png","key":"jeengbe","page":null},{"name":"John Cao","alias":"jhcao23","url":"https://github.com/jhcao23","imageURL":"https://github.com/jhcao23.png","key":"jhcao23","page":null},{"name":"JJ Style","alias":"jj-style","url":"https://github.com/jj-style","imageURL":"https://github.com/jj-style.png","key":"jj-style","page":null},{"name":"Jody Heavener","alias":"jodyheavener","url":"https://github.com/jodyheavener","imageURL":"https://github.com/jodyheavener.png","key":"jodyheavener","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Viktor Malmedal","alias":"JohnVicke","url":"https://github.com/JohnVicke","imageURL":"https://github.com/JohnVicke.png","key":"JohnVicke","page":null},{"name":"Jorens Merenjanu","alias":"JorensM","url":"https://github.com/JorensM","imageURL":"https://github.com/JorensM.png","key":"JorensM","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Juan Picado","alias":"juanpicado","url":"https://github.com/juanpicado","imageURL":"https://github.com/juanpicado.png","key":"juanpicado","page":null},{"name":"0x24Karthick","alias":"KarthickSakthi","url":"https://github.com/KarthickSakthi","imageURL":"https://github.com/KarthickSakthi.png","key":"KarthickSakthi","page":null},{"name":"Serenus","alias":"Kesyau","url":"https://github.com/Kesyau","imageURL":"https://github.com/Kesyau.png","key":"Kesyau","page":null},{"name":"Naffy Dharni","alias":"knownasnaffy","url":"https://github.com/knownasnaffy","imageURL":"https://github.com/knownasnaffy.png","key":"knownasnaffy","page":null},{"name":"la55u","alias":"la55u","url":"https://github.com/la55u","imageURL":"https://github.com/la55u.png","key":"la55u","page":null},{"name":"Lane Goolsby","alias":"lanegoolsby","url":"https://github.com/lanegoolsby","imageURL":"https://github.com/lanegoolsby.png","key":"lanegoolsby","page":null},{"name":"Oleksandr Fediashov","alias":"layershifter","url":"https://github.com/layershifter","imageURL":"https://github.com/layershifter.png","key":"layershifter","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Lorenzo Lewis","alias":"lorenzolewis","url":"https://github.com/lorenzolewis","imageURL":"https://github.com/lorenzolewis.png","key":"lorenzolewis","page":null},{"name":"Silvestar Bistrovi\u0107","alias":"maliMirkec","url":"https://github.com/maliMirkec","imageURL":"https://github.com/maliMirkec.png","key":"maliMirkec","page":null},{"name":"Manuel","alias":"manuel-rw","url":"https://github.com/manuel-rw","imageURL":"https://github.com/manuel-rw.png","key":"manuel-rw","page":null},{"name":"Markshawn","alias":"MarkShawn2020","url":"https://github.com/MarkShawn2020","imageURL":"https://github.com/MarkShawn2020.png","key":"MarkShawn2020","page":null},{"name":"mcallisto","alias":"mcallisto","url":"https://github.com/mcallisto","imageURL":"https://github.com/mcallisto.png","key":"mcallisto","page":null},{"name":"Michael Remediakis","alias":"mickremedi","url":"https://github.com/mickremedi","imageURL":"https://github.com/mickremedi.png","key":"mickremedi","page":null},{"name":"ModupeD","alias":"ModupeD","url":"https://github.com/ModupeD","imageURL":"https://github.com/ModupeD.png","key":"ModupeD","page":null},{"name":"Mogyuchi","alias":"Mogyuchi","url":"https://github.com/Mogyuchi","imageURL":"https://github.com/Mogyuchi.png","key":"Mogyuchi","page":null},{"name":"Mu-Jing-Tsai","alias":"moojing","url":"https://github.com/moojing","imageURL":"https://github.com/moojing.png","key":"moojing","page":null},{"name":"Tom Mrazauskas","alias":"mrazauskas","url":"https://github.com/mrazauskas","imageURL":"https://github.com/mrazauskas.png","key":"mrazauskas","page":null},{"name":"Marco Stroppel","alias":"mstroppel","url":"https://github.com/mstroppel","imageURL":"https://github.com/mstroppel.png","key":"mstroppel","page":null},{"name":"Max Schmitt","alias":"mxschmitt","url":"https://github.com/mxschmitt","imageURL":"https://github.com/mxschmitt.png","key":"mxschmitt","page":null},{"name":"Mysterious_Dev","alias":"Mysterious-Dev","url":"https://github.com/Mysterious-Dev","imageURL":"https://github.com/Mysterious-Dev.png","key":"Mysterious-Dev","page":null},{"name":"Naman Garg","alias":"NamanGarg2075","url":"https://github.com/NamanGarg2075","imageURL":"https://github.com/NamanGarg2075.png","key":"NamanGarg2075","page":null},{"name":"Nathaniel Tucker","alias":"ntucker","url":"https://github.com/ntucker","imageURL":"https://github.com/ntucker.png","key":"ntucker","page":null},{"name":"Oluwatobi Sofela","alias":"oluwatobiss","url":"https://github.com/oluwatobiss","imageURL":"https://github.com/oluwatobiss.png","key":"oluwatobiss","page":null},{"name":"Aolin","alias":"Oreoxmt","url":"https://github.com/Oreoxmt","imageURL":"https://github.com/Oreoxmt.png","key":"Oreoxmt","page":null},{"name":"ozaki","alias":"OzakIOne","url":"https://github.com/OzakIOne","imageURL":"https://github.com/OzakIOne.png","key":"OzakIOne","page":null},{"name":"Maciek Palmowski","alias":"palmiak","url":"https://github.com/palmiak","imageURL":"https://github.com/palmiak.png","key":"palmiak","page":null},{"name":"Paul Razvan Berg","alias":"PaulRBerg","url":"https://github.com/PaulRBerg","imageURL":"https://github.com/PaulRBerg.png","key":"PaulRBerg","page":null},{"name":"Pinaki Bhattacharjee","alias":"pinakipb2","url":"https://github.com/pinakipb2","imageURL":"https://github.com/pinakipb2.png","key":"pinakipb2","page":null},{"name":"prateekbytes","alias":"prateekbytes","url":"https://github.com/prateekbytes","imageURL":"https://github.com/prateekbytes.png","key":"prateekbytes","page":null},{"name":"qwerzl","alias":"qwerzl","url":"https://github.com/qwerzl","imageURL":"https://github.com/qwerzl.png","key":"qwerzl","page":null},{"name":"Rashid","alias":"rashidmya","url":"https://github.com/rashidmya","imageURL":"https://github.com/rashidmya.png","key":"rashidmya","page":null},{"name":"Kolja","alias":"razzeee","url":"https://github.com/razzeee","imageURL":"https://github.com/razzeee.png","key":"razzeee","page":null},{"name":"Rapha\xebl Barbazza","alias":"rbarbazz","url":"https://github.com/rbarbazz","imageURL":"https://github.com/rbarbazz.png","key":"rbarbazz","page":null},{"name":"Bruce Song","alias":"recallwei","url":"https://github.com/recallwei","imageURL":"https://github.com/recallwei.png","key":"recallwei","page":null},{"name":"Chua Chee How","alias":"rojakcoder","url":"https://github.com/rojakcoder","imageURL":"https://github.com/rojakcoder.png","key":"rojakcoder","page":null},{"name":"rsteele6","alias":"rsteele6","url":"https://github.com/rsteele6","imageURL":"https://github.com/rsteele6.png","key":"rsteele6","page":null},{"name":"SADIK KUZU","alias":"sadikkuzu","url":"https://github.com/sadikkuzu","imageURL":"https://github.com/sadikkuzu.png","key":"sadikkuzu","page":null},{"name":"Sainan","alias":"Sainan","url":"https://github.com/Sainan","imageURL":"https://github.com/Sainan.png","key":"Sainan","page":null},{"name":"samatt14","alias":"samatt14","url":"https://github.com/samatt14","imageURL":"https://github.com/samatt14.png","key":"samatt14","page":null},{"name":"Sanjaiyan Parthipan","alias":"sanjaiyan-dev","url":"https://github.com/sanjaiyan-dev","imageURL":"https://github.com/sanjaiyan-dev.png","key":"sanjaiyan-dev","page":null},{"name":"Alex","alias":"sashashura","url":"https://github.com/sashashura","imageURL":"https://github.com/sashashura.png","key":"sashashura","page":null},{"name":"Marie","alias":"schneegansm","url":"https://github.com/schneegansm","imageURL":"https://github.com/schneegansm.png","key":"schneegansm","page":null},{"name":"Marco Kuper","alias":"scubamaggo","url":"https://github.com/scubamaggo","imageURL":"https://github.com/scubamaggo.png","key":"scubamaggo","page":null},{"name":"Shahriar","alias":"ShahriarKh","url":"https://github.com/ShahriarKh","imageURL":"https://github.com/ShahriarKh.png","key":"ShahriarKh","page":null},{"name":"Shashank Kumar","alias":"shawshankkumar","url":"https://github.com/shawshankkumar","imageURL":"https://github.com/shawshankkumar.png","key":"shawshankkumar","page":null},{"name":"Cl\xe9ment Vannicatte","alias":"shortcuts","url":"https://github.com/shortcuts","imageURL":"https://github.com/shortcuts.png","key":"shortcuts","page":null},{"name":"Shun Wakatsuki","alias":"shwaka","url":"https://github.com/shwaka","imageURL":"https://github.com/shwaka.png","key":"shwaka","page":null},{"name":"Gareth Dwyer","alias":"sixhobbits","url":"https://github.com/sixhobbits","imageURL":"https://github.com/sixhobbits.png","key":"sixhobbits","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Surav Shrestha","alias":"suravshrestha","url":"https://github.com/suravshrestha","imageURL":"https://github.com/suravshrestha.png","key":"suravshrestha","page":null},{"name":"sykp241095","alias":"sykp241095","url":"https://github.com/sykp241095","imageURL":"https://github.com/sykp241095.png","key":"sykp241095","page":null},{"name":"Tamal Anwar Chowdhury","alias":"tamalchowdhury","url":"https://github.com/tamalchowdhury","imageURL":"https://github.com/tamalchowdhury.png","key":"tamalchowdhury","page":null},{"name":"Tarun Chauhan","alias":"tarunrajput","url":"https://github.com/tarunrajput","imageURL":"https://github.com/tarunrajput.png","key":"tarunrajput","page":null},{"name":"Tatsunori Uchino","alias":"tats-u","url":"https://github.com/tats-u","imageURL":"https://github.com/tats-u.png","key":"tats-u","page":null},{"name":"Thad Guidry","alias":"thadguidry","url":"https://github.com/thadguidry","imageURL":"https://github.com/thadguidry.png","key":"thadguidry","page":null},{"name":"James Kerrane","alias":"thatrobotdev","url":"https://github.com/thatrobotdev","imageURL":"https://github.com/thatrobotdev.png","key":"thatrobotdev","page":null},{"name":"thedevwonder","alias":"thedevwonder","url":"https://github.com/thedevwonder","imageURL":"https://github.com/thedevwonder.png","key":"thedevwonder","page":null},{"name":"Andr\xe9s Villanueva","alias":"Villanuevand","url":"https://github.com/Villanuevand","imageURL":"https://github.com/Villanuevand.png","key":"Villanuevand","page":null},{"name":"VinceCYLiao","alias":"VinceCYLiao","url":"https://github.com/VinceCYLiao","imageURL":"https://github.com/VinceCYLiao.png","key":"VinceCYLiao","page":null},{"name":"Waldir Pimenta","alias":"waldyrious","url":"https://github.com/waldyrious","imageURL":"https://github.com/waldyrious.png","key":"waldyrious","page":null},{"name":"Will Ceolin","alias":"wceolin","url":"https://github.com/wceolin","imageURL":"https://github.com/wceolin.png","key":"wceolin","page":null},{"name":"Webber Takken","alias":"webbertakken","url":"https://github.com/webbertakken","imageURL":"https://github.com/webbertakken.png","key":"webbertakken","page":null},{"name":"Jordan Manley","alias":"werner33","url":"https://github.com/werner33","imageURL":"https://github.com/werner33.png","key":"werner33","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null},{"name":"yosukekato165","alias":"yosukekato165","url":"https://github.com/yosukekato165","imageURL":"https://github.com/yosukekato165.png","key":"yosukekato165","page":null},{"name":"Zwyx","alias":"Zwyx","url":"https://github.com/Zwyx","imageURL":"https://github.com/Zwyx.png","key":"Zwyx","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2023-10-31T20:00","authors":["0420syj","abhinandanwadwa","Abinashbunty","adampatterson","adithyaakrishna","AFRUITPIE","AgentEnder","akshaybhalotia","allyw2002","amdshrif","amm98d","anaclumos","andrewnicols","antonk52","antonyoni","aqueeb","attitude","billy1624","biplavmz","bitpredator","BubbaJoe","chillinPanda","chubei","chudongvip","cm-igarashi-ryosuke","colinhacks","conlacda","dandv","danilowoz","DanRoscigno","DavidJFelix","dawei-wang","debs-obrien","Devansu-Yadav","Djunnni","Dr-Electron","e-minguez","edno","FlorinaPacurar","Foosballfan","forresst","FrancescoXX","fredrikstave","fxpby","gabrielcsapo","GalexyN","gazab","gracefullight","gregberge","harryzcy","heysujal","hidde","homotechsual","hslee2008","HumbleDeer","HyeokjinKang","jean-humann","jeengbe","jhcao23","jj-style","jodyheavener","johnnyreilly","JohnVicke","JorensM","Josh-Cena","juanpicado","KarthickSakthi","Kesyau","knownasnaffy","la55u","lanegoolsby","layershifter","lex111","lorenzolewis","maliMirkec","manuel-rw","MarkShawn2020","mcallisto","mickremedi","ModupeD","Mogyuchi","moojing","mrazauskas","mstroppel","mxschmitt","Mysterious-Dev","NamanGarg2075","ntucker","oluwatobiss","Oreoxmt","OzakIOne","palmiak","PaulRBerg","pinakipb2","prateekbytes","qwerzl","rashidmya","razzeee","rbarbazz","recallwei","rojakcoder","rsteele6","sadikkuzu","Sainan","samatt14","sanjaiyan-dev","sashashura","schneegansm","scubamaggo","ShahriarKh","shawshankkumar","shortcuts","shwaka","sixhobbits","slorber","suravshrestha","sykp241095","tamalchowdhury","tarunrajput","tats-u","thadguidry","thatrobotdev","thedevwonder","Villanuevand","VinceCYLiao","waldyrious","wceolin","webbertakken","werner33","yangshun","yosukekato165","Zwyx"]},"unlisted":false,"prevItem":{"title":"3.0.1","permalink":"/changelog/3.0.1"},"nextItem":{"title":"2.4.3","permalink":"/changelog/2.4.3"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`\\n - [#9451](https://github.com/facebook/docusaurus/pull/9451) feat(mdx-loader): upgrade to MDX v3 ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#9317](https://github.com/facebook/docusaurus/pull/9317) feat(core): support TypeScript + ESM configuration ([@harryzcy](https://github.com/harryzcy))\\n- `create-docusaurus`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus`\\n - [#9316](https://github.com/facebook/docusaurus/pull/9316) chore: upgrade syntax highlighting dependencies, `prism-react-renderer` to v2, `react-live` to v4 ([@harryzcy](https://github.com/harryzcy))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`\\n - [#9348](https://github.com/facebook/docusaurus/pull/9348) chore: update node engine version 18 ([@OzakIOne](https://github.com/OzakIOne))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#9310](https://github.com/facebook/docusaurus/pull/9310) chore(plugin-docs): remove legacy versioned prefix on doc ids and sidebar names in versioned sidebars ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-translations`\\n - [#9308](https://github.com/facebook/docusaurus/pull/9308) fix(theme): make warning a first-class admonition, and deprecate caution admonition ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`\\n - [#9305](https://github.com/facebook/docusaurus/pull/9305) feat(theme-mermaid): upgrade Mermaid to v10.4 - handle async rendering ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-tsconfig`, `docusaurus`\\n - [#9258](https://github.com/facebook/docusaurus/pull/9258) feat: Docusaurus v3 upgrades and require TypeScript 5 ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`\\n - [#9189](https://github.com/facebook/docusaurus/pull/9189) feat(blog-plugin): limit option for blog feedOptions ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `create-docusaurus`, `docusaurus-tsconfig`\\n - [#9050](https://github.com/facebook/docusaurus/pull/9050) feat: create official TypeScript base config @docusaurus/tsconfig ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus`\\n - [#8961](https://github.com/facebook/docusaurus/pull/8961) feat: React 18 + automatic JSX runtime + build --dev ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`\\n - [#9026](https://github.com/facebook/docusaurus/pull/9026) chore: remove facebook template ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-mermaid`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#8288](https://github.com/facebook/docusaurus/pull/8288) feat: upgrade to MDX v2 ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus`\\n - [#7966](https://github.com/facebook/docusaurus/pull/7966) fix(plugin-docs,theme): refactor docs plugin routes and component tree ([@slorber](https://github.com/slorber))\\n\\n## :rocket: New Feature\\n\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`\\n - [#9451](https://github.com/facebook/docusaurus/pull/9451) feat(mdx-loader): upgrade to MDX v3 ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-utils`\\n - [#9394](https://github.com/facebook/docusaurus/pull/9394) feat(mdx-loader): Remark plugin to report unused MDX / Markdown directives ([@OzakIOne](https://github.com/OzakIOne))\\n- `create-docusaurus`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#9317](https://github.com/facebook/docusaurus/pull/9317) feat(core): support TypeScript + ESM configuration ([@harryzcy](https://github.com/harryzcy))\\n- `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`\\n - [#9305](https://github.com/facebook/docusaurus/pull/9305) feat(theme-mermaid): upgrade Mermaid to v10.4 - handle async rendering ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`\\n - [#9241](https://github.com/facebook/docusaurus/pull/9241) feat: support bun package manager in `create-docusaurus` ([@colinhacks](https://github.com/colinhacks))\\n- `docusaurus-plugin-content-blog`\\n - [#9189](https://github.com/facebook/docusaurus/pull/9189) feat(blog-plugin): limit option for blog feedOptions ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `docusaurus-theme-classic`\\n - [#9152](https://github.com/facebook/docusaurus/pull/9152) feat(theme): add support for meta og locale and alternates ([@FlorinaPacurar](https://github.com/FlorinaPacurar))\\n - [#9028](https://github.com/facebook/docusaurus/pull/9028) feat(theme): add ability to inject data attributes from query-string - possibility to create an iframe/embed variant of a page ([@slorber](https://github.com/slorber))\\n - [#8915](https://github.com/facebook/docusaurus/pull/8915) feat(theme): add queryString option to localeDropdown ([@wceolin](https://github.com/wceolin))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-utils-validation`\\n - [#9171](https://github.com/facebook/docusaurus/pull/9171) feat(client-redirects-plugin): support fully qualified urls and querystring/hash in destination/to url ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#9102](https://github.com/facebook/docusaurus/pull/9102) feat(cli): deploy command should allow customizing git config user.name / user.email in deployment branch (#9101) ([@amdshrif](https://github.com/amdshrif))\\n- `docusaurus-mdx-loader`, `docusaurus-types`, `docusaurus`\\n - [#9097](https://github.com/facebook/docusaurus/pull/9097) feat(mdx): add siteConfig.markdown.format to configure the default content parser (MDX / CommonMark) ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`\\n - [#9071](https://github.com/facebook/docusaurus/pull/9071) feat(pages): add support for missing SEO front matter + improve SEO docs ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-tsconfig`\\n - [#9050](https://github.com/facebook/docusaurus/pull/9050) feat: create official TypeScript base config @docusaurus/tsconfig ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus`\\n - [#8961](https://github.com/facebook/docusaurus/pull/8961) feat: React 18 + automatic JSX runtime + build --dev ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-common`\\n - [#8982](https://github.com/facebook/docusaurus/pull/8982) feat(theme-common): code block MagicComments support for TeX/LaTeX/Matlab ([@jj-style](https://github.com/jj-style))\\n - [#8870](https://github.com/facebook/docusaurus/pull/8870) feat(theme-common): code block MagicComments support for Lua/Haskell -- and WebAssembly ;; ([@tarunrajput](https://github.com/tarunrajput))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-mermaid`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#8288](https://github.com/facebook/docusaurus/pull/8288) feat: upgrade to MDX v2 ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8890](https://github.com/facebook/docusaurus/pull/8890) feat(theme): create more generic ThemedComponent util from ThemedImage ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `eslint-plugin`\\n - [#8384](https://github.com/facebook/docusaurus/pull/8384) feat(eslint-plugin): new prefer-docusaurus-heading rule ([@Devansu-Yadav](https://github.com/Devansu-Yadav))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus`, `eslint-plugin`\\n - [#8156](https://github.com/facebook/docusaurus/pull/8156) feat: add eslint plugin no-html-links ([@JohnVicke](https://github.com/JohnVicke))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`, `docusaurus-utils-validation`, `docusaurus-utils`\\n - [#8004](https://github.com/facebook/docusaurus/pull/8004) feat(docs,blog,pages): add support for \\"unlisted\\" front matter - hide md content in production ([@jodyheavener](https://github.com/jodyheavener))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-common`\\n - [#9446](https://github.com/facebook/docusaurus/pull/9446) fix(theme): fix useWindowSize React hydration issue ([@slorber](https://github.com/slorber))\\n - [#9276](https://github.com/facebook/docusaurus/pull/9276) fix(theme-common): remove useless useSyncExternalStore shim ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`\\n - [#9437](https://github.com/facebook/docusaurus/pull/9437) fix(plugin-blog): blog archive should hide unlisted blog posts ([@slorber](https://github.com/slorber))\\n - [#9151](https://github.com/facebook/docusaurus/pull/9151) fix(content-blog): links in feed should be absolute ([@VinceCYLiao](https://github.com/VinceCYLiao))\\n- `docusaurus`\\n - [#9387](https://github.com/facebook/docusaurus/pull/9387) fix(core): log missing errorInfo in React 18 onRecoverableError callback ([@johnnyreilly](https://github.com/johnnyreilly))\\n - [#9309](https://github.com/facebook/docusaurus/pull/9309) fix(cli): disable vertical borders of the update notification ([@qwerzl](https://github.com/qwerzl))\\n - [#9112](https://github.com/facebook/docusaurus/pull/9112) fix(core): throw error if build folder already exists on initial clean ([@thedevwonder](https://github.com/thedevwonder))\\n - [#9006](https://github.com/facebook/docusaurus/pull/9006) fix(core): docusaurus CLI should detect the correct yarn version when suggesting upgrades ([@0420syj](https://github.com/0420syj))\\n - [#7951](https://github.com/facebook/docusaurus/pull/7951) fix(core): make webpack HMR always listen to current location ([@jeengbe](https://github.com/jeengbe))\\n- `docusaurus-mdx-loader`\\n - [#9386](https://github.com/facebook/docusaurus/pull/9386) fix(mdx-loader): get correct error line numbers, handle front matter + contentTitle with remark ([@slorber](https://github.com/slorber))\\n - [#9262](https://github.com/facebook/docusaurus/pull/9262) fix(mdx-loader): improve mdxJsxTextElementToHtml ([@slorber](https://github.com/slorber))\\n - [#9202](https://github.com/facebook/docusaurus/pull/9202) fix(mdx-loader): ensure heading anchor slugs respect GitHub emoji behavior ([@yosukekato165](https://github.com/yosukekato165))\\n - [#9100](https://github.com/facebook/docusaurus/pull/9100) fix(mdx): fix for html multi-line comments ([@slorber](https://github.com/slorber))\\n - [#9091](https://github.com/facebook/docusaurus/pull/9091) fix(mdx-loader): loader error message should display stacktrace if no extra MDX details ([@slorber](https://github.com/slorber))\\n - [#8960](https://github.com/facebook/docusaurus/pull/8960) fix: allow html syntax in MDX v2 with format md ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#9385](https://github.com/facebook/docusaurus/pull/9385) fix(theme): avoid rendering empty search container if site has no search plugin ([@slorber](https://github.com/slorber))\\n - [#9183](https://github.com/facebook/docusaurus/pull/9183) fix(theme): make Prism code block language / additionalLanguages case insensitive ([@heysujal](https://github.com/heysujal))\\n - [#9216](https://github.com/facebook/docusaurus/pull/9216) fix(theme): fix typo in swizzle component config ([@sixhobbits](https://github.com/sixhobbits))\\n - [#9093](https://github.com/facebook/docusaurus/pull/9093) fix(theme): support details/summary in CommonMark + add md dogfood test cases ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-utils`\\n - [#9369](https://github.com/facebook/docusaurus/pull/9369) fix(mdx-loader): prevent Open Graph images from being inserted as base64 ([@Zwyx](https://github.com/Zwyx))\\n- `docusaurus-theme-translations`\\n - [#9362](https://github.com/facebook/docusaurus/pull/9362) fix(theme-translations): add Japanese translation for \\"warning\\" ([@tats-u](https://github.com/tats-u))\\n - [#9321](https://github.com/facebook/docusaurus/pull/9321) fix(theme-translations): add missing zh-Hans messages ([@chudongvip](https://github.com/chudongvip))\\n - [#9338](https://github.com/facebook/docusaurus/pull/9338) fix(theme-translations): complete and fix hungarian translations ([@la55u](https://github.com/la55u))\\n - [#9292](https://github.com/facebook/docusaurus/pull/9292) fix(theme-translations): add missing Spanish theme translations ([@Villanuevand](https://github.com/Villanuevand))\\n - [#9021](https://github.com/facebook/docusaurus/pull/9021) fix(theme-transalations): fix Swedish translation of \\"last updated\\" ([@gazab](https://github.com/gazab))\\n- `docusaurus-theme-classic`, `docusaurus-theme-translations`\\n - [#9308](https://github.com/facebook/docusaurus/pull/9308) fix(theme): make warning a first-class admonition, and deprecate caution admonition ([@slorber](https://github.com/slorber))\\n - [#9269](https://github.com/facebook/docusaurus/pull/9269) fix(theme): improve docs sidebar category caret aria-label accessibility ([@pinakipb2](https://github.com/pinakipb2))\\n- Other\\n - [#9260](https://github.com/facebook/docusaurus/pull/9260) fix(website): fix showcase search input ([@biplavmz](https://github.com/biplavmz))\\n - [#8193](https://github.com/facebook/docusaurus/pull/8193) fix(website): mobile scroll on homepage announcement ([@maliMirkec](https://github.com/maliMirkec))\\n - [#8042](https://github.com/facebook/docusaurus/pull/8042) fix(website): fix blog post social card ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`\\n - [#9217](https://github.com/facebook/docusaurus/pull/9217) fix(create-docusaurus): increase Browserslist support query in dev ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`, `docusaurus`\\n - [#9160](https://github.com/facebook/docusaurus/pull/9160) fix(core): handle single quotes inside file paths ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-debug`\\n - [#9116](https://github.com/facebook/docusaurus/pull/9116) fix(debug-plugin): upgrade react-json-view to maintained React-18 compatible fork ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`\\n - [#9046](https://github.com/facebook/docusaurus/pull/9046) fix(utils): better handling of code blocks in link replacement ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#8927](https://github.com/facebook/docusaurus/pull/8927) fix(utils): make Markdown link replacement much more rigorous ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7864](https://github.com/facebook/docusaurus/pull/7864) fix(utils): always match exclusion root dirs as complete folder paths ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7801](https://github.com/facebook/docusaurus/pull/7801) fix(utils): recognize ~~~ as code fences in link replacement ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-pwa`, `docusaurus`\\n - [#8872](https://github.com/facebook/docusaurus/pull/8872) fix(core): better error logging on SSR/dev failures + log stacktraces and error causes ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils-validation`, `docusaurus`\\n - [#8258](https://github.com/facebook/docusaurus/pull/8258) fix(docusaurus-utils-validation): baseUrl + routeBasePath: allow empty string, normalized as \\"/\\" ([@Djunnni](https://github.com/Djunnni))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8319](https://github.com/facebook/docusaurus/pull/8319) fix(docs,theme): auto-generated category index should not display unlisted content ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`\\n - [#8015](https://github.com/facebook/docusaurus/pull/8015) fix(live-codeblock): add error boundary to live code preview ([@rashidmya](https://github.com/rashidmya))\\n- `docusaurus-mdx-loader`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus`\\n - [#7945](https://github.com/facebook/docusaurus/pull/7945) refactor(theme): split admonitions, make swizzle easier, better retrocompatibility ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus`\\n - [#7966](https://github.com/facebook/docusaurus/pull/7966) fix(plugin-docs,theme): refactor docs plugin routes and component tree ([@slorber](https://github.com/slorber))\\n\\n## :running: Performance\\n\\n- `docusaurus`\\n - [#9051](https://github.com/facebook/docusaurus/pull/9051) perf(core): use React 18 startTransition for hydration ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))\\n - [#8081](https://github.com/facebook/docusaurus/pull/8081) perf(core): move scripts to document head + defer ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus`\\n - [#8972](https://github.com/facebook/docusaurus/pull/8972) fix: remove useless js-loader in front of mdx-loader ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#9438](https://github.com/facebook/docusaurus/pull/9438) refactor(blog-plugin): blog archive reverse ordering of posts ([@slorber](https://github.com/slorber))\\n - [#9184](https://github.com/facebook/docusaurus/pull/9184) fix(theme): change schema.org itemType prop urls from http to https ([@thedevwonder](https://github.com/thedevwonder))\\n- `docusaurus`\\n - [#9381](https://github.com/facebook/docusaurus/pull/9381) feat(core): throw error when official docusaurus dependencies use different versions ([@JorensM](https://github.com/JorensM))\\n- `docusaurus-theme-translations`\\n - [#9302](https://github.com/facebook/docusaurus/pull/9302) chore(theme-translations): complete zh-Hant translations ([@qwerzl](https://github.com/qwerzl))\\n - [#9025](https://github.com/facebook/docusaurus/pull/9025) chore(theme-translations): complete it translations ([@bitpredator](https://github.com/bitpredator))\\n- `create-docusaurus`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus`\\n - [#9133](https://github.com/facebook/docusaurus/pull/9133) fix(init): change initial site URL to one that is safe for the future ([@tats-u](https://github.com/tats-u))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8150](https://github.com/facebook/docusaurus/pull/8150) fix(theme-classic): polish admonition details, render title-only admonitions ([@attitude](https://github.com/attitude))\\n- `docusaurus-plugin-google-gtag`\\n - [#8143](https://github.com/facebook/docusaurus/pull/8143) refactor(plugin-gtag): update gtag plugin to modern SPA recommendations ([@lanegoolsby](https://github.com/lanegoolsby))\\n- `docusaurus-mdx-loader`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus`\\n - [#7945](https://github.com/facebook/docusaurus/pull/7945) refactor(theme): split admonitions, make swizzle easier, better retrocompatibility ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#9452](https://github.com/facebook/docusaurus/pull/9452) docs: v3 upgrade guide should mention MDX v1 compat options ([@slorber](https://github.com/slorber))\\n - [#9430](https://github.com/facebook/docusaurus/pull/9430) docs: update Kinsta deployment documentation ([@palmiak](https://github.com/palmiak))\\n - [#9417](https://github.com/facebook/docusaurus/pull/9417) docs: add Docusaurus v3.0 upgrade guide ([@slorber](https://github.com/slorber))\\n - [#9396](https://github.com/facebook/docusaurus/pull/9396) docs: fix typos in website/docs/i18n/i18n-git.mdx ([@suravshrestha](https://github.com/suravshrestha))\\n - [#9397](https://github.com/facebook/docusaurus/pull/9397) docs: fix typos in website/docs/migration/migration-manual.mdx ([@suravshrestha](https://github.com/suravshrestha))\\n - [#9388](https://github.com/facebook/docusaurus/pull/9388) docs: fix algolia crowler config template link for v3 ([@slorber](https://github.com/slorber))\\n - [#9377](https://github.com/facebook/docusaurus/pull/9377) docs(deployment): add permissions config to github action file in v2.4.3 ([@chillinPanda](https://github.com/chillinPanda))\\n - [#9333](https://github.com/facebook/docusaurus/pull/9333) docs: \\"Preparing your site for Docusaurus v3\\" blog post ([@slorber](https://github.com/slorber))\\n - [#9330](https://github.com/facebook/docusaurus/pull/9330) docs: \\"Upgrading frontend dependencies with confidence\\" blog post ([@slorber](https://github.com/slorber))\\n - [#9288](https://github.com/facebook/docusaurus/pull/9288) docs: fix bad link for create doc ([@forresst](https://github.com/forresst))\\n - [#9267](https://github.com/facebook/docusaurus/pull/9267) docs: fix typo in docs-introduction ([@HyeokjinKang](https://github.com/HyeokjinKang))\\n - [#9247](https://github.com/facebook/docusaurus/pull/9247) docs: Reword comparison between React authoring and CSS authoring ([@hidde](https://github.com/hidde))\\n - [#9223](https://github.com/facebook/docusaurus/pull/9223) docs: fix grammatical error, rewrite sentence to make clearer ([@thatrobotdev](https://github.com/thatrobotdev))\\n - [#9233](https://github.com/facebook/docusaurus/pull/9233) docs(website): Add a \\"clearAll\\" Feature to site showcase ([@biplavmz](https://github.com/biplavmz))\\n - [#9180](https://github.com/facebook/docusaurus/pull/9180) docs: remove \'import type\' declaration in javascript snippet ([@oluwatobiss](https://github.com/oluwatobiss))\\n - [#9177](https://github.com/facebook/docusaurus/pull/9177) docs: improve the opening sentence\'s clarity ([@oluwatobiss](https://github.com/oluwatobiss))\\n - [#9149](https://github.com/facebook/docusaurus/pull/9149) docs: improve yarn deps upgrade command ([@webbertakken](https://github.com/webbertakken))\\n - [#9139](https://github.com/facebook/docusaurus/pull/9139) docs: add Flightcontrol as a deployment option ([@ModupeD](https://github.com/ModupeD))\\n - [#9082](https://github.com/facebook/docusaurus/pull/9082) docs: fix themeConfig.prism.defaultLanguage table api ref docs ([@razzeee](https://github.com/razzeee))\\n - [#9074](https://github.com/facebook/docusaurus/pull/9074) docs: fix filenames in docs/swizzling.mdx ([@shwaka](https://github.com/shwaka))\\n - [#9065](https://github.com/facebook/docusaurus/pull/9065) docs: update link for commonly used languages ([@heysujal](https://github.com/heysujal))\\n - [#9055](https://github.com/facebook/docusaurus/pull/9055) docs: update outdated links in showcase ([@manuel-rw](https://github.com/manuel-rw))\\n - [#9063](https://github.com/facebook/docusaurus/pull/9063) docs: add @markprompt/docusaurus-theme-search ([@schneegansm](https://github.com/schneegansm))\\n - [#9033](https://github.com/facebook/docusaurus/pull/9033) docs: update info for community plugin docusaurus2-graphql-doc-generator ([@edno](https://github.com/edno))\\n - [#9044](https://github.com/facebook/docusaurus/pull/9044) docs: fix prism theme broken link in code blocks docs ([@adithyaakrishna](https://github.com/adithyaakrishna))\\n - [#9043](https://github.com/facebook/docusaurus/pull/9043) docs: fix grammar typo in swizzling.mdx ([@adampatterson](https://github.com/adampatterson))\\n - [#9018](https://github.com/facebook/docusaurus/pull/9018) docs: fix link to rehype ([@Mogyuchi](https://github.com/Mogyuchi))\\n - [#8993](https://github.com/facebook/docusaurus/pull/8993) docs: fix broken link in code blocks docs ([@NamanGarg2075](https://github.com/NamanGarg2075))\\n - [#8975](https://github.com/facebook/docusaurus/pull/8975) docs: update link in md code blocks section ([@rbarbazz](https://github.com/rbarbazz))\\n - [#8976](https://github.com/facebook/docusaurus/pull/8976) docs: update broken links theme configuration page ([@rbarbazz](https://github.com/rbarbazz))\\n - [#8904](https://github.com/facebook/docusaurus/pull/8904) docs: fix broken link to Prism includeLangs.js default list of languages ([@conlacda](https://github.com/conlacda))\\n - [#8951](https://github.com/facebook/docusaurus/pull/8951) docs: mention equivalent config syntaxes ([@thadguidry](https://github.com/thadguidry))\\n - [#8950](https://github.com/facebook/docusaurus/pull/8950) docs: bidirectional link between api config and guide config ([@thadguidry](https://github.com/thadguidry))\\n - [#8953](https://github.com/facebook/docusaurus/pull/8953) docs: mention blog truncating marker edge case ([@allyw2002](https://github.com/allyw2002))\\n - [#8941](https://github.com/facebook/docusaurus/pull/8941) docs: rewrite some docs for mdx v2 ([@slorber](https://github.com/slorber))\\n - [#8943](https://github.com/facebook/docusaurus/pull/8943) docs: mention docusaurus.community site in resources ([@thadguidry](https://github.com/thadguidry))\\n - [#8920](https://github.com/facebook/docusaurus/pull/8920) docs: mdx-js is using v2 for next edition ([@jhcao23](https://github.com/jhcao23))\\n - [#8888](https://github.com/facebook/docusaurus/pull/8888) docs: improve sidebar items custom props docs ([@slorber](https://github.com/slorber))\\n - [#8877](https://github.com/facebook/docusaurus/pull/8877) docs: add \\"permissions.content: write\\" to GH workflow examples ([@e-minguez](https://github.com/e-minguez))\\n - [#8845](https://github.com/facebook/docusaurus/pull/8845) docs: add description on blog post file/folder naming conventions and date extraction patterns ([@rojakcoder](https://github.com/rojakcoder))\\n - [#8865](https://github.com/facebook/docusaurus/pull/8865) docs: correct small grammar error ([@werner33](https://github.com/werner33))\\n - [#8830](https://github.com/facebook/docusaurus/pull/8830) docs: link to mermaid config types ([@PaulRBerg](https://github.com/PaulRBerg))\\n - [#8804](https://github.com/facebook/docusaurus/pull/8804) docs: update suggestion for OSS meta projects ([@antonk52](https://github.com/antonk52))\\n - [#8788](https://github.com/facebook/docusaurus/pull/8788) docs: remove problematic mdx2 anchor id docs for MDX 2 migration ([@slorber](https://github.com/slorber))\\n - [#8780](https://github.com/facebook/docusaurus/pull/8780) docs: fix localhost url without link ([@slorber](https://github.com/slorber))\\n - [#8779](https://github.com/facebook/docusaurus/pull/8779) docs: v2 docs should discourage the usage of a lower-case MDX component (will not work in v3) ([@slorber](https://github.com/slorber))\\n - [#8761](https://github.com/facebook/docusaurus/pull/8761) docs: add mention that themeConfig.footer.copyright supports html strings ([@fxpby](https://github.com/fxpby))\\n - [#8723](https://github.com/facebook/docusaurus/pull/8723) docs: add TypeScript playgrounds to docusaurus.new + Playground page ([@slorber](https://github.com/slorber))\\n - [#8709](https://github.com/facebook/docusaurus/pull/8709) docs: add dark mode version of BrowserStack logo ([@fredrikstave](https://github.com/fredrikstave))\\n - [#8642](https://github.com/facebook/docusaurus/pull/8642) docs: clarify query string behavior ([@homotechsual](https://github.com/homotechsual))\\n - [#8576](https://github.com/facebook/docusaurus/pull/8576) docs(playground): use CodeSandbox cloud sandboxes ([@danilowoz](https://github.com/danilowoz))\\n - [#8543](https://github.com/facebook/docusaurus/pull/8543) docs: add link to pluralization docs ([@homotechsual](https://github.com/homotechsual))\\n - [#8556](https://github.com/facebook/docusaurus/pull/8556) docs: document plugin-content-pages wrapperClassName frontmatter. ([@homotechsual](https://github.com/homotechsual))\\n - [#8548](https://github.com/facebook/docusaurus/pull/8548) docs: fix typo \'validationOptions\' ([@gracefullight](https://github.com/gracefullight))\\n - [#8509](https://github.com/facebook/docusaurus/pull/8509) docs(website): fix broken external links wrongly modified to use the .mdx extension (ex: github README.mdx) ([@Kesyau](https://github.com/Kesyau))\\n - [#8507](https://github.com/facebook/docusaurus/pull/8507) docs: blog + community + dogfood docs should use .mdx extension ([@slorber](https://github.com/slorber))\\n - [#8490](https://github.com/facebook/docusaurus/pull/8490) docs(website): use .mdx extension for every docs ([@slorber](https://github.com/slorber))\\n - [#8484](https://github.com/facebook/docusaurus/pull/8484) docs: `plugin-content-sitemap` -> `plugin-sitemap` ([@chubei](https://github.com/chubei))\\n - [#8454](https://github.com/facebook/docusaurus/pull/8454) fix(docs): Update link for tooljet website(broken) ([@shawshankkumar](https://github.com/shawshankkumar))\\n - [#8443](https://github.com/facebook/docusaurus/pull/8443) docs: fix website home testimonials broken image URLs ([@abhinandanwadwa](https://github.com/abhinandanwadwa))\\n - [#8438](https://github.com/facebook/docusaurus/pull/8438) docs: add hyperlink to swizzling in Search page ([@dandv](https://github.com/dandv))\\n - [#8431](https://github.com/facebook/docusaurus/pull/8431) docs: add diagrams page to 2.2.0 sidebar ([@homotechsual](https://github.com/homotechsual))\\n - [#8307](https://github.com/facebook/docusaurus/pull/8307) docs: clarify additionalLanguages with custom language definitions. ([@homotechsual](https://github.com/homotechsual))\\n - [#8390](https://github.com/facebook/docusaurus/pull/8390) docs: changed actions/checkout version from 2 to 3 ([@cm-igarashi-ryosuke](https://github.com/cm-igarashi-ryosuke))\\n - [#8262](https://github.com/facebook/docusaurus/pull/8262) docs: fix links to external plugin description ([@scubamaggo](https://github.com/scubamaggo))\\n - [#8375](https://github.com/facebook/docusaurus/pull/8375) docs: add Kinsta to deployment page ([@palmiak](https://github.com/palmiak))\\n - [#8417](https://github.com/facebook/docusaurus/pull/8417) docs: document theme-mermaid in API sidebar ([@homotechsual](https://github.com/homotechsual))\\n - [#8392](https://github.com/facebook/docusaurus/pull/8392) docs: add i18n guide doc should link to i18n core config doc ([@mcallisto](https://github.com/mcallisto))\\n - [#8388](https://github.com/facebook/docusaurus/pull/8388) docs: point to where commit types are listed ([@dandv](https://github.com/dandv))\\n - [#8352](https://github.com/facebook/docusaurus/pull/8352) docs: actually demo the zero-width space workaround in MDX ([@waldyrious](https://github.com/waldyrious))\\n - [#8363](https://github.com/facebook/docusaurus/pull/8363) docs: fix unclosed admonition code block ([@Zwyx](https://github.com/Zwyx))\\n - [#8364](https://github.com/facebook/docusaurus/pull/8364) docs: autogenerated page comment does not matching dirName in examples ([@HumbleDeer](https://github.com/HumbleDeer))\\n - [#8359](https://github.com/facebook/docusaurus/pull/8359) docs: fix anchor link `#customFields` ([@Zwyx](https://github.com/Zwyx))\\n - [#8320](https://github.com/facebook/docusaurus/pull/8320) docs: remove blog.johnnyreilly.com Google Analytics tag from docs part 2 ([@johnnyreilly](https://github.com/johnnyreilly))\\n - [#8335](https://github.com/facebook/docusaurus/pull/8335) docs: use Mermaid diagram for routing page ([@Mysterious-Dev](https://github.com/Mysterious-Dev))\\n - [#8313](https://github.com/facebook/docusaurus/pull/8313) docs: link to migration guide from Blogger to Docusaurus / remove blog.johnnyreilly.com Google Analytics tag from docs ([@johnnyreilly](https://github.com/johnnyreilly))\\n - [#8292](https://github.com/facebook/docusaurus/pull/8292) docs: document tag types for insertHtmlContent ([@homotechsual](https://github.com/homotechsual))\\n - [#8272](https://github.com/facebook/docusaurus/pull/8272) docs: fix mermaid theme options typo ([@ntucker](https://github.com/ntucker))\\n - [#8209](https://github.com/facebook/docusaurus/pull/8209) docs: removing community resource docusaurus-plugin-relative-paths ([@ShahriarKh](https://github.com/ShahriarKh))\\n - [#8146](https://github.com/facebook/docusaurus/pull/8146) docs(content-docs): add api doc for displayed_sidebar front matter ([@slorber](https://github.com/slorber))\\n - [#8115](https://github.com/facebook/docusaurus/pull/8115) docs: add caveat about using Translate in string contexts ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#8053](https://github.com/facebook/docusaurus/pull/8053) docs: document usage of docs `frontMatter.custom_edit_url: null` ([@homotechsual](https://github.com/homotechsual))\\n - [#8010](https://github.com/facebook/docusaurus/pull/8010) docs(showcase): add 74 new showcase sites ([@slorber](https://github.com/slorber))\\n - [#7955](https://github.com/facebook/docusaurus/pull/7955) docs: add docusaurus-post-generator to community resource list ([@moojing](https://github.com/moojing))\\n - [#7906](https://github.com/facebook/docusaurus/pull/7906) docs: add TOC heading level options to guide ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7884](https://github.com/facebook/docusaurus/pull/7884) docs: add baseUrl to example tsconfig ([@Foosballfan](https://github.com/Foosballfan))\\n - [#7835](https://github.com/facebook/docusaurus/pull/7835) docs: update workbox doc link ([@hslee2008](https://github.com/hslee2008))\\n - [#7799](https://github.com/facebook/docusaurus/pull/7799) docs: formally document how admonitions can be customized ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7796](https://github.com/facebook/docusaurus/pull/7796) docs: modify the description of deploying to Netlify ([@Oreoxmt](https://github.com/Oreoxmt))\\n- `docusaurus-logger`\\n - [#9210](https://github.com/facebook/docusaurus/pull/9210) docs: add the missing import logger statement ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#8047](https://github.com/facebook/docusaurus/pull/8047) docs: improve alt messages ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#8944](https://github.com/facebook/docusaurus/pull/8944) polish(create-docusaurus): add comment in config to mention different ways to declare config + doc link ([@thadguidry](https://github.com/thadguidry))\\n - [#8323](https://github.com/facebook/docusaurus/pull/8323) docs: fix typo \'internalization\' ([@dandv](https://github.com/dandv))\\n- `docusaurus-plugin-ideal-image`\\n - [#8630](https://github.com/facebook/docusaurus/pull/8630) docs: normalize README for ideal-image plugin ([@Mysterious-Dev](https://github.com/Mysterious-Dev))\\n- `docusaurus-mdx-loader`\\n - [#8419](https://github.com/facebook/docusaurus/pull/8419) docs: document siteConfig.markdown + better mdx-loader retrocompat ([@slorber](https://github.com/slorber))\\n\\n## :robot: Dependencies\\n\\n- Other\\n - [#9440](https://github.com/facebook/docusaurus/pull/9440) chore(deps): bump actions/setup-node from 3 to 4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9441](https://github.com/facebook/docusaurus/pull/9441) chore(deps): bump actions/checkout from 4.1.0 to 4.1.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9367](https://github.com/facebook/docusaurus/pull/9367) chore(deps): bump postcss from 8.4.26 to 8.4.31 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9344](https://github.com/facebook/docusaurus/pull/9344) chore(deps): bump actions/checkout from 4.0.0 to 4.1.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9298](https://github.com/facebook/docusaurus/pull/9298) chore(deps): bump actions/dependency-review-action from 3.0.8 to 3.1.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9277](https://github.com/facebook/docusaurus/pull/9277) chore(deps): bump actions/checkout from 3 to 4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9251](https://github.com/facebook/docusaurus/pull/9251) chore(deps): bump actions/dependency-review-action from 3.0.7 to 3.0.8 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9250](https://github.com/facebook/docusaurus/pull/9250) chore(deps): bump marocchino/sticky-pull-request-comment from 2.7.0 to 2.8.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9227](https://github.com/facebook/docusaurus/pull/9227) chore(deps): bump actions/dependency-review-action from 3.0.6 to 3.0.7 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9174](https://github.com/facebook/docusaurus/pull/9174) chore(deps): bump marocchino/sticky-pull-request-comment from 2.6.2 to 2.7.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9096](https://github.com/facebook/docusaurus/pull/9096) chore(deps): bump semver from 7.3.8 to 7.5.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9061](https://github.com/facebook/docusaurus/pull/9061) chore(deps): bump github/codeql-action from 2.3.6 to 2.13.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9038](https://github.com/facebook/docusaurus/pull/9038) chore(deps): bump github/codeql-action from 2.3.5 to 2.3.6 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9039](https://github.com/facebook/docusaurus/pull/9039) chore(deps): bump actions/dependency-review-action from 3.0.4 to 3.0.6 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#9019](https://github.com/facebook/docusaurus/pull/9019) chore(deps): bump github/codeql-action from 2.3.3 to 2.3.5 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8964](https://github.com/facebook/docusaurus/pull/8964) chore(deps): bump github/codeql-action from 2.3.2 to 2.3.3 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8955](https://github.com/facebook/docusaurus/pull/8955) chore(deps): bump github/codeql-action from 2.3.0 to 2.3.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8922](https://github.com/facebook/docusaurus/pull/8922) chore(deps): bump marocchino/sticky-pull-request-comment from 2.5.0 to 2.6.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8923](https://github.com/facebook/docusaurus/pull/8923) chore(deps): bump treosh/lighthouse-ci-action from 9.6.8 to 10.1.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8924](https://github.com/facebook/docusaurus/pull/8924) chore(deps): bump github/codeql-action from 2.2.12 to 2.3.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8899](https://github.com/facebook/docusaurus/pull/8899) chore(deps): bump github/codeql-action from 2.2.11 to 2.2.12 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8900](https://github.com/facebook/docusaurus/pull/8900) chore(deps): bump actions/checkout from 3.5.0 to 3.5.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8879](https://github.com/facebook/docusaurus/pull/8879) chore(deps): bump actions/github-script from 6.4.0 to 6.4.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8878](https://github.com/facebook/docusaurus/pull/8878) chore(deps): bump github/codeql-action from 2.2.9 to 2.2.11 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8836](https://github.com/facebook/docusaurus/pull/8836) chore(deps): bump github/codeql-action from 2.2.7 to 2.2.9 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8837](https://github.com/facebook/docusaurus/pull/8837) chore(deps): bump actions/checkout from 3.4.0 to 3.5.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8797](https://github.com/facebook/docusaurus/pull/8797) chore(deps): bump actions/checkout from 3.3.0 to 3.4.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8796](https://github.com/facebook/docusaurus/pull/8796) chore(deps): bump actions/dependency-review-action from 3.0.3 to 3.0.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8795](https://github.com/facebook/docusaurus/pull/8795) chore(deps): bump github/codeql-action from 2.2.6 to 2.2.7 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8766](https://github.com/facebook/docusaurus/pull/8766) chore(deps): bump treosh/lighthouse-ci-action from 9.3.1 to 9.6.8 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8767](https://github.com/facebook/docusaurus/pull/8767) chore(deps): bump github/codeql-action from 2.2.5 to 2.2.6 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8739](https://github.com/facebook/docusaurus/pull/8739) chore(deps): bump github/codeql-action from 2.2.4 to 2.2.5 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8663](https://github.com/facebook/docusaurus/pull/8663) chore(deps): bump marocchino/sticky-pull-request-comment from 2.3.1 to 2.5.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8662](https://github.com/facebook/docusaurus/pull/8662) chore(deps): bump github/codeql-action from 2.2.2 to 2.2.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8638](https://github.com/facebook/docusaurus/pull/8638) chore(deps): bump github/codeql-action from 2.2.1 to 2.2.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8624](https://github.com/facebook/docusaurus/pull/8624) chore(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8604](https://github.com/facebook/docusaurus/pull/8604) chore(deps): bump actions/github-script from 6.3.3 to 6.4.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8605](https://github.com/facebook/docusaurus/pull/8605) chore(deps): bump github/codeql-action from 2.1.39 to 2.2.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8572](https://github.com/facebook/docusaurus/pull/8572) chore(deps): bump github/codeql-action from 2.1.38 to 2.1.39 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8553](https://github.com/facebook/docusaurus/pull/8553) chore(deps): bump github/codeql-action from 2.1.37 to 2.1.38 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8531](https://github.com/facebook/docusaurus/pull/8531) chore(deps): bump actions/checkout from 3.2.0 to 3.3.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8532](https://github.com/facebook/docusaurus/pull/8532) chore(deps): bump actions/dependency-review-action from 3.0.2 to 3.0.3 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8533](https://github.com/facebook/docusaurus/pull/8533) chore(deps): bump actions/setup-node from 3.5.1 to 3.6.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8496](https://github.com/facebook/docusaurus/pull/8496) chore(deps): bump jakepartusch/wait-for-netlify-action from 1.3 to 1.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8464](https://github.com/facebook/docusaurus/pull/8464) chore(deps): bump actions/dependency-review-action from 3.0.1 to 3.0.2 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8440](https://github.com/facebook/docusaurus/pull/8440) chore(deps): bump github/codeql-action from 2.1.36 to 2.1.37 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8435](https://github.com/facebook/docusaurus/pull/8435) chore(deps): bump github/codeql-action from 2.1.35 to 2.1.36 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8434](https://github.com/facebook/docusaurus/pull/8434) chore(deps): bump actions/checkout from 3.1.0 to 3.2.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8412](https://github.com/facebook/docusaurus/pull/8412) chore(deps): bump github/codeql-action from 2.1.32 to 2.1.35 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8385](https://github.com/facebook/docusaurus/pull/8385) chore(deps): bump marocchino/sticky-pull-request-comment from 2.3.0 to 2.3.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8360](https://github.com/facebook/docusaurus/pull/8360) chore(deps): bump actions/dependency-review-action from 3.0.0 to 3.0.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8341](https://github.com/facebook/docusaurus/pull/8341) chore(deps): bump github/codeql-action from 2.1.31 to 2.1.32 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8340](https://github.com/facebook/docusaurus/pull/8340) chore(deps): bump actions/dependency-review-action from 2.5.1 to 3.0.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8339](https://github.com/facebook/docusaurus/pull/8339) chore(deps): bump treosh/lighthouse-ci-action from 9.3.0 to 9.3.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8295](https://github.com/facebook/docusaurus/pull/8295) chore(deps): bump github/codeql-action from 2.1.29 to 2.1.31 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8271](https://github.com/facebook/docusaurus/pull/8271) chore(deps): bump github/codeql-action from 2.1.28 to 2.1.29 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8270](https://github.com/facebook/docusaurus/pull/8270) chore(deps): bump marocchino/sticky-pull-request-comment from 2.2.1 to 2.3.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8240](https://github.com/facebook/docusaurus/pull/8240) chore(deps): bump actions/dependency-review-action from 2.5.0 to 2.5.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8241](https://github.com/facebook/docusaurus/pull/8241) chore(deps): bump github/codeql-action from 2.1.27 to 2.1.28 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8221](https://github.com/facebook/docusaurus/pull/8221) chore(deps): bump marocchino/sticky-pull-request-comment from 2.2.0 to 2.2.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8220](https://github.com/facebook/docusaurus/pull/8220) chore(deps): bump actions/dependency-review-action from 2.4.0 to 2.5.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8219](https://github.com/facebook/docusaurus/pull/8219) chore(deps): bump actions/github-script from 6.3.1 to 6.3.3 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8222](https://github.com/facebook/docusaurus/pull/8222) chore(deps): bump actions/setup-node from 3.5.0 to 3.5.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8200](https://github.com/facebook/docusaurus/pull/8200) chore(deps): bump github/codeql-action from 2.1.26 to 2.1.27 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8199](https://github.com/facebook/docusaurus/pull/8199) chore(deps): bump actions/checkout from 3.0.2 to 3.1.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8169](https://github.com/facebook/docusaurus/pull/8169) chore(deps): bump github/codeql-action from 2.1.22 to 2.1.26 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8170](https://github.com/facebook/docusaurus/pull/8170) chore(deps): bump actions/setup-node from 3.4.1 to 3.5.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8167](https://github.com/facebook/docusaurus/pull/8167) chore(deps): bump actions/github-script from 6.2.0 to 6.3.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8168](https://github.com/facebook/docusaurus/pull/8168) chore(deps): bump actions/dependency-review-action from 2.1.0 to 2.4.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8064](https://github.com/facebook/docusaurus/pull/8064) chore: bump react-medium-image-zoom ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#8051](https://github.com/facebook/docusaurus/pull/8051) chore(deps): bump github/codeql-action from 2.1.21 to 2.1.22 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8019](https://github.com/facebook/docusaurus/pull/8019) chore(deps): bump actions/github-script from 6.1.1 to 6.2.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#8020](https://github.com/facebook/docusaurus/pull/8020) chore(deps): bump github/codeql-action from 2.1.20 to 2.1.21 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#7988](https://github.com/facebook/docusaurus/pull/7988) chore(deps): bump actions/dependency-review-action from 2.0.4 to 2.1.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#7987](https://github.com/facebook/docusaurus/pull/7987) chore(deps): bump github/codeql-action from 2.1.18 to 2.1.20 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#7957](https://github.com/facebook/docusaurus/pull/7957) chore(deps): bump actions/github-script from 6.1.0 to 6.1.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#7925](https://github.com/facebook/docusaurus/pull/7925) chore(deps): bump github/codeql-action from 2.1.17 to 2.1.18 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#7879](https://github.com/facebook/docusaurus/pull/7879) chore(deps): bump github/codeql-action from 2.1.16 to 2.1.17 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#7804](https://github.com/facebook/docusaurus/pull/7804) chore(deps): bump github/codeql-action from 2.1.15 to 2.1.16 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#7805](https://github.com/facebook/docusaurus/pull/7805) chore(deps): bump actions/dependency-review-action from 2.0.2 to 2.0.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#7806](https://github.com/facebook/docusaurus/pull/7806) chore(deps): bump actions/setup-node from 3.4.0 to 3.4.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`, `stylelint-copyright`\\n - [#9148](https://github.com/facebook/docusaurus/pull/9148) chore: upgrade dependencies (non-major) ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#8749](https://github.com/facebook/docusaurus/pull/8749) chore: upgrade dependencies (non-major) ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#8534](https://github.com/facebook/docusaurus/pull/8534) chore: upgrade dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#8926](https://github.com/facebook/docusaurus/pull/8926) chore: upgrade TypeScript to v5.0 ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`\\n - [#8537](https://github.com/facebook/docusaurus/pull/8537) chore: bump dependencies major versions ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`, `stylelint-copyright`\\n - [#7993](https://github.com/facebook/docusaurus/pull/7993) chore: upgrade dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`\\n - [#7883](https://github.com/facebook/docusaurus/pull/7883) chore: upgrade dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-pwa`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`\\n - [#7822](https://github.com/facebook/docusaurus/pull/7822) chore: upgrade dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-plugin-pwa`, `docusaurus`, `eslint-plugin`\\n - [#7794](https://github.com/facebook/docusaurus/pull/7794) chore: upgrade dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :wrench: Maintenance\\n\\n- `docusaurus-migrate`\\n - [#9400](https://github.com/facebook/docusaurus/pull/9400) chore: remove docusaurus-migrate ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-search-algolia`\\n - [#9320](https://github.com/facebook/docusaurus/pull/9320) chore(theme-search-algolia): revert docsearch package range downgrade after bugfix release ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-translations`\\n - [#9304](https://github.com/facebook/docusaurus/pull/9304) chore(theme-translations): complete French translations ([@forresst](https://github.com/forresst))\\n- Other\\n - [#9264](https://github.com/facebook/docusaurus/pull/9264) ci: only install Chromium for Playwright Argos tests ([@mxschmitt](https://github.com/mxschmitt))\\n - [#9245](https://github.com/facebook/docusaurus/pull/9245) chore: bump devcontainer to Ubuntu 22.04 to resolve arm64 incompatibility ([@AFRUITPIE](https://github.com/AFRUITPIE))\\n - [#8947](https://github.com/facebook/docusaurus/pull/8947) test: add visual regression tests with Argos CI ([@slorber](https://github.com/slorber))\\n - [#8911](https://github.com/facebook/docusaurus/pull/8911) chore: migrate website config to createConfigAsync ([@slorber](https://github.com/slorber))\\n - [#8578](https://github.com/facebook/docusaurus/pull/8578) docs: fix dead anchor for issue reporting guidelines in template ([@Sainan](https://github.com/Sainan))\\n - [#8447](https://github.com/facebook/docusaurus/pull/8447) chore: update lerna to v6.2.0 ([@AgentEnder](https://github.com/AgentEnder))\\n - [#7967](https://github.com/facebook/docusaurus/pull/7967) test: improve e2e verdaccio configuration ([@juanpicado](https://github.com/juanpicado))\\n - [#7863](https://github.com/facebook/docusaurus/pull/7863) docs: publish 2.0.0 release blog post + adapt website for the launch ([@slorber](https://github.com/slorber))\\n - [#7828](https://github.com/facebook/docusaurus/pull/7828) misc: change showcase submission process, use GitHub discussion ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`\\n - [#9195](https://github.com/facebook/docusaurus/pull/9195) test(blog-plugin): fix ability to generate proper blog website fixture build snapshot ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-theme-classic`\\n - [#9024](https://github.com/facebook/docusaurus/pull/9024) docs: remove Meta Data Policy footer link on website ([@KarthickSakthi](https://github.com/KarthickSakthi))\\n- `docusaurus`\\n - [#8660](https://github.com/facebook/docusaurus/pull/8660) chore: bump update-notifier ([@layershifter](https://github.com/layershifter))\\n\\n## Committers: 132\\n\\n- 0x24Karthick ([@KarthickSakthi](https://github.com/KarthickSakthi))\\n- Abhinandan Wadhwa ([@abhinandanwadwa](https://github.com/abhinandanwadwa))\\n- Abinash Satapathy ([@Abinashbunty](https://github.com/Abinashbunty))\\n- Adam Patterson ([@adampatterson](https://github.com/adampatterson))\\n- Adithya Krishna ([@adithyaakrishna](https://github.com/adithyaakrishna))\\n- Ahmad Shrif ([@amdshrif](https://github.com/amdshrif))\\n- Ahmed Mustafa Malik ([@amm98d](https://github.com/amm98d))\\n- Akshay Bhalotia ([@akshaybhalotia](https://github.com/akshaybhalotia))\\n- Alex ([@sashashura](https://github.com/sashashura))\\n- Alexander Nguyen ([@GalexyN](https://github.com/GalexyN))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Andrew Lyons ([@andrewnicols](https://github.com/andrewnicols))\\n- Andr\xe9s Villanueva ([@Villanuevand](https://github.com/Villanuevand))\\n- Anna ([@HumbleDeer](https://github.com/HumbleDeer))\\n- Anton Kastritskii ([@antonk52](https://github.com/antonk52))\\n- Antony Onipko ([@antonyoni](https://github.com/antonyoni))\\n- Aolin ([@Oreoxmt](https://github.com/Oreoxmt))\\n- Aqueeb ([@aqueeb](https://github.com/aqueeb))\\n- Bei Chu ([@chubei](https://github.com/chubei))\\n- Billy Chan ([@billy1624](https://github.com/billy1624))\\n- Biplav Kumar Mazumdar ([@biplavmz](https://github.com/biplavmz))\\n- Bruce ([@recallwei](https://github.com/recallwei))\\n- Charles Killer ([@Foosballfan](https://github.com/Foosballfan))\\n- Chongyi Zheng ([@harryzcy](https://github.com/harryzcy))\\n- Chua Chee How ([@rojakcoder](https://github.com/rojakcoder))\\n- Cl\xe9ment Vannicatte ([@shortcuts](https://github.com/shortcuts))\\n- Colin McDonnell ([@colinhacks](https://github.com/colinhacks))\\n- Coupy ([@HyeokjinKang](https://github.com/HyeokjinKang))\\n- Craigory Coppola ([@AgentEnder](https://github.com/AgentEnder))\\n- Dan Dascalescu ([@dandv](https://github.com/dandv))\\n- Dan Roscigno ([@DanRoscigno](https://github.com/DanRoscigno))\\n- Danilo Woznica ([@danilowoz](https://github.com/danilowoz))\\n- David J. Felix ([@DavidJFelix](https://github.com/DavidJFelix))\\n- Debbie O\'Brien ([@debs-obrien](https://github.com/debs-obrien))\\n- Devansu Yadav ([@Devansu-Yadav](https://github.com/Devansu-Yadav))\\n- Dinh Bao Dang ([@chillinPanda](https://github.com/chillinPanda))\\n- Dongjoon Lee ([@Djunnni](https://github.com/Djunnni))\\n- Eduardo M\xednguez ([@e-minguez](https://github.com/e-minguez))\\n- Eunkwang Shin ([@gracefullight](https://github.com/gracefullight))\\n- Forresst ([@forresst](https://github.com/forresst))\\n- Francesco Ciulla ([@FrancescoXX](https://github.com/FrancescoXX))\\n- Fredrik Stave ([@fredrikstave](https://github.com/fredrikstave))\\n- Fxpby ([@fxpby](https://github.com/fxpby))\\n- Gabriel Csapo ([@gabrielcsapo](https://github.com/gabrielcsapo))\\n- Gareth Dwyer ([@sixhobbits](https://github.com/sixhobbits))\\n- Greg Berg\xe9 ([@gregberge](https://github.com/gregberge))\\n- Gr\xe9gory Heitz ([@edno](https://github.com/edno))\\n- Gustav Ton\xe9r ([@gazab](https://github.com/gazab))\\n- Hayden Hong ([@AFRUITPIE](https://github.com/AFRUITPIE))\\n- Hidde de Vries ([@hidde](https://github.com/hidde))\\n- Hyunseung ([@hslee2008](https://github.com/hslee2008))\\n- JJ Style ([@jj-style](https://github.com/jj-style))\\n- James Kerrane ([@thatrobotdev](https://github.com/thatrobotdev))\\n- Jean Humann ([@jean-humann](https://github.com/jean-humann))\\n- Jesper Engberg ([@jeengbe](https://github.com/jeengbe))\\n- Jody Heavener ([@jodyheavener](https://github.com/jodyheavener))\\n- Joe Williams ([@BubbaJoe](https://github.com/BubbaJoe))\\n- John Cao ([@jhcao23](https://github.com/jhcao23))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Jordan Manley ([@werner33](https://github.com/werner33))\\n- Jorens Merenjanu ([@JorensM](https://github.com/JorensM))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Juan Picado ([@juanpicado](https://github.com/juanpicado))\\n- Kolja ([@razzeee](https://github.com/razzeee))\\n- Lane Goolsby ([@lanegoolsby](https://github.com/lanegoolsby))\\n- Lorenzo Lewis ([@lorenzolewis](https://github.com/lorenzolewis))\\n- Maciek Palmowski ([@palmiak](https://github.com/palmiak))\\n- Manuel ([@manuel-rw](https://github.com/manuel-rw))\\n- Marco Kuper ([@scubamaggo](https://github.com/scubamaggo))\\n- Marco Stroppel ([@mstroppel](https://github.com/mstroppel))\\n- Marie ([@schneegansm](https://github.com/schneegansm))\\n- Markshawn ([@MarkShawn2020](https://github.com/MarkShawn2020))\\n- Martin Adamko ([@attitude](https://github.com/attitude))\\n- Max Schmitt ([@mxschmitt](https://github.com/mxschmitt))\\n- Michael Remediakis ([@mickremedi](https://github.com/mickremedi))\\n- Mikey O\'Toole ([@homotechsual](https://github.com/homotechsual))\\n- ModupeD ([@ModupeD](https://github.com/ModupeD))\\n- Mu-Jing-Tsai ([@moojing](https://github.com/moojing))\\n- Mysterious_Dev ([@Mysterious-Dev](https://github.com/Mysterious-Dev))\\n- Naffy Dharni ([@knownasnaffy](https://github.com/knownasnaffy))\\n- Naman Garg ([@NamanGarg2075](https://github.com/NamanGarg2075))\\n- Nathaniel Tucker ([@ntucker](https://github.com/ntucker))\\n- Oleksandr Fediashov ([@layershifter](https://github.com/layershifter))\\n- Oluwatobi Sofela ([@oluwatobiss](https://github.com/oluwatobiss))\\n- Paul Razvan Berg ([@PaulRBerg](https://github.com/PaulRBerg))\\n- Pinaki Bhattacharjee ([@pinakipb2](https://github.com/pinakipb2))\\n- Rapha\xebl Barbazza ([@rbarbazz](https://github.com/rbarbazz))\\n- Rashid ([@rashidmya](https://github.com/rashidmya))\\n- Ryosuke Igarashi ([@cm-igarashi-ryosuke](https://github.com/cm-igarashi-ryosuke))\\n- SADIK KUZU ([@sadikkuzu](https://github.com/sadikkuzu))\\n- Sanjaiyan Parthipan ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))\\n- Serenus ([@Kesyau](https://github.com/Kesyau))\\n- Shahriar ([@ShahriarKh](https://github.com/ShahriarKh))\\n- Shashank Kumar ([@shawshankkumar](https://github.com/shawshankkumar))\\n- Shun Wakatsuki ([@shwaka](https://github.com/shwaka))\\n- Silvestar Bistrovi\u0107 ([@maliMirkec](https://github.com/maliMirkec))\\n- Sujal Gupta ([@heysujal](https://github.com/heysujal))\\n- Sunghyun Cho ([@anaclumos](https://github.com/anaclumos))\\n- Surav Shrestha ([@suravshrestha](https://github.com/suravshrestha))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tamal Anwar Chowdhury ([@tamalchowdhury](https://github.com/tamalchowdhury))\\n- Tarun Chauhan ([@tarunrajput](https://github.com/tarunrajput))\\n- Tatsunori Uchino ([@tats-u](https://github.com/tats-u))\\n- Thad Guidry ([@thadguidry](https://github.com/thadguidry))\\n- Tom Mrazauskas ([@mrazauskas](https://github.com/mrazauskas))\\n- Viktor Malmedal ([@JohnVicke](https://github.com/JohnVicke))\\n- Waldir Pimenta ([@waldyrious](https://github.com/waldyrious))\\n- Wan Sim ([@0420syj](https://github.com/0420syj))\\n- Webber Takken ([@webbertakken](https://github.com/webbertakken))\\n- Will Ceolin ([@wceolin](https://github.com/wceolin))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- Zwyx ([@Zwyx](https://github.com/Zwyx))\\n- [@Dr-Electron](https://github.com/Dr-Electron)\\n- [@FlorinaPacurar](https://github.com/FlorinaPacurar)\\n- [@Mogyuchi](https://github.com/Mogyuchi)\\n- [@Sainan](https://github.com/Sainan)\\n- [@VinceCYLiao](https://github.com/VinceCYLiao)\\n- [@allyw2002](https://github.com/allyw2002)\\n- [@bitpredator](https://github.com/bitpredator)\\n- [@conlacda](https://github.com/conlacda)\\n- [@dawei-wang](https://github.com/dawei-wang)\\n- [@la55u](https://github.com/la55u)\\n- [@mcallisto](https://github.com/mcallisto)\\n- [@prateekbytes](https://github.com/prateekbytes)\\n- [@qwerzl](https://github.com/qwerzl)\\n- [@rsteele6](https://github.com/rsteele6)\\n- [@samatt14](https://github.com/samatt14)\\n- [@thedevwonder](https://github.com/thedevwonder)\\n- [@yosukekato165](https://github.com/yosukekato165)\\n- ozaki ([@OzakIOne](https://github.com/OzakIOne))\\n- sykp241095 ([@sykp241095](https://github.com/sykp241095))\\n- \u521D\u51AC ([@chudongvip](https://github.com/chudongvip))"},{"id":"/2.4.3","metadata":{"permalink":"/changelog/2.4.3","source":"@site/changelog/source/2.4.3.md","title":"2.4.3","description":"Bug Fix","date":"2023-09-20T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Mikey O\'Toole","alias":"homotechsual","url":"https://github.com/homotechsual","imageURL":"https://github.com/homotechsual.png","key":"homotechsual","page":null},{"name":"Ori Shalom","alias":"ori-shalom","url":"https://github.com/ori-shalom","imageURL":"https://github.com/ori-shalom.png","key":"ori-shalom","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"TheCatLady","alias":"TheCatLady","url":"https://github.com/TheCatLady","imageURL":"https://github.com/TheCatLady.png","key":"TheCatLady","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2023-09-20T20:00","authors":["homotechsual","ori-shalom","slorber","TheCatLady"]},"unlisted":false,"prevItem":{"title":"3.0.0","permalink":"/changelog/3.0.0"},"nextItem":{"title":"2.4.2","permalink":"/changelog/2.4.2"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-docs`\\n - [#9107](https://github.com/facebook/docusaurus/pull/9107) fix(content-docs): sidebar generator should return customProps for doc items ([@TheCatLady](https://github.com/TheCatLady))\\n- `docusaurus-theme-classic`\\n - [#9108](https://github.com/facebook/docusaurus/pull/9108) feat(theme-classic): add description & keywords microdata to blog posts ([@TheCatLady](https://github.com/TheCatLady))\\n - [#9099](https://github.com/facebook/docusaurus/pull/9099) fix(theme): only set classname on ul elements if they have an existing class ([@homotechsual](https://github.com/homotechsual))\\n - [#9243](https://github.com/facebook/docusaurus/pull/9243) fix(theme-common): ThemedComponent should display something when JS is disabled ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#9130](https://github.com/facebook/docusaurus/pull/9130) fix(theme): canonical url should be not change after hydration if url accessed with/without trailing slash ([@ori-shalom](https://github.com/ori-shalom))\\n\\n## Committers: 4\\n\\n- Mikey O\'Toole ([@homotechsual](https://github.com/homotechsual))\\n- Ori Shalom ([@ori-shalom](https://github.com/ori-shalom))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- [@TheCatLady](https://github.com/TheCatLady)"},{"id":"/2.4.2","metadata":{"permalink":"/changelog/2.4.2","source":"@site/changelog/source/2.4.2.md","title":"2.4.2","description":"Bad npm publish, please use 2.4.3","date":"2023-09-20T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2023-09-20T19:00"},"unlisted":false,"prevItem":{"title":"2.4.3","permalink":"/changelog/2.4.3"},"nextItem":{"title":"2.4.1","permalink":"/changelog/2.4.1"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\nBad npm publish, please use 2.4.3"},{"id":"/2.4.1","metadata":{"permalink":"/changelog/2.4.1","source":"@site/changelog/source/2.4.1.md","title":"2.4.1","description":"Bug Fix","date":"2023-05-15T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Andrew Lyons","alias":"andrewnicols","url":"https://github.com/andrewnicols","imageURL":"https://github.com/andrewnicols.png","key":"andrewnicols","page":null},{"name":"Armano","alias":"armano2","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png","key":"armano2","page":null},{"name":"MetuMortis","alias":"LiberaTeMetuMortis","url":"https://github.com/LiberaTeMetuMortis","imageURL":"https://github.com/LiberaTeMetuMortis.png","key":"LiberaTeMetuMortis","page":null},{"name":"Aleksandr Vladykin","alias":"morsko1","url":"https://github.com/morsko1","imageURL":"https://github.com/morsko1.png","key":"morsko1","page":null},{"name":"Sachin Nanayakkara","alias":"SACHINnANYAKKARA","url":"https://github.com/SACHINnANYAKKARA","imageURL":"https://github.com/SACHINnANYAKKARA.png","key":"SACHINnANYAKKARA","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tarun Chauhan","alias":"tarunrajput","url":"https://github.com/tarunrajput","imageURL":"https://github.com/tarunrajput.png","key":"tarunrajput","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2023-05-15T20:00","authors":["andrewnicols","armano2","LiberaTeMetuMortis","morsko1","SACHINnANYAKKARA","slorber","tarunrajput"]},"unlisted":false,"prevItem":{"title":"2.4.2","permalink":"/changelog/2.4.2"},"nextItem":{"title":"2.4.0","permalink":"/changelog/2.4.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8971](https://github.com/facebook/docusaurus/pull/8971) fix(theme): fix collapsible sidebar behavior when prefers-reduced-motion ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-translations`\\n - [#8933](https://github.com/facebook/docusaurus/pull/8933) fix(theme-translations): fix Turkish translation for aria label \\"Enter key\\" ([@LiberaTeMetuMortis](https://github.com/LiberaTeMetuMortis))\\n- `docusaurus`\\n - [#8908](https://github.com/facebook/docusaurus/pull/8908) fix(core): Correct yarn upgrade command for yarn 2.x ([@andrewnicols](https://github.com/andrewnicols))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-common`, `docusaurus-utils-common`, `docusaurus`\\n - [#8909](https://github.com/facebook/docusaurus/pull/8909) fix(theme): add \\\\_\\\\_ prefix to technical anchors, search crawlers (Algolia) should ignore them ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-common`\\n - [#8906](https://github.com/facebook/docusaurus/pull/8906) fix(theme-common): fix collapsible component with prefers-reduced-motion ([@slorber](https://github.com/slorber))\\n - [#8873](https://github.com/facebook/docusaurus/pull/8873) fix(theme-common): fix confusing theme error message: bad sidebar id suggestions ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`\\n - [#8874](https://github.com/facebook/docusaurus/pull/8874) fix(utils): handle Markdown links with spaces to route correctly ([@morsko1](https://github.com/morsko1))\\n- `docusaurus-theme-classic`, `docusaurus-theme-translations`\\n - [#8842](https://github.com/facebook/docusaurus/pull/8842) fix(theme-translations): remove redundant navigation text in aria label ([@tarunrajput](https://github.com/tarunrajput))\\n- `create-docusaurus`\\n - [#8831](https://github.com/facebook/docusaurus/pull/8831) fix(create): add missing await ([@SACHINnANYAKKARA](https://github.com/SACHINnANYAKKARA))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#8862](https://github.com/facebook/docusaurus/pull/8862) refactor(theme): expose copy, success and word-wrap icons as standalone components ([@armano2](https://github.com/armano2))\\n\\n## Committers: 7\\n\\n- Aleksandr Vladykin ([@morsko1](https://github.com/morsko1))\\n- Andrew Lyons ([@andrewnicols](https://github.com/andrewnicols))\\n- Armano ([@armano2](https://github.com/armano2))\\n- MetuMortis ([@LiberaTeMetuMortis](https://github.com/LiberaTeMetuMortis))\\n- Sachin Nanayakkara ([@SACHINnANYAKKARA](https://github.com/SACHINnANYAKKARA))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tarun Chauhan ([@tarunrajput](https://github.com/tarunrajput))"},{"id":"/2.4.0","metadata":{"permalink":"/changelog/2.4.0","source":"@site/changelog/source/2.4.0.md","title":"2.4.0","description":"New Feature","date":"2023-03-23T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Anas","alias":"Anasqx","url":"https://github.com/Anasqx","imageURL":"https://github.com/Anasqx.png","key":"Anasqx","page":null},{"name":"Armano","alias":"armano2","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png","key":"armano2","page":null},{"name":"biplavmz","alias":"biplavmz","url":"https://github.com/biplavmz","imageURL":"https://github.com/biplavmz.png","key":"biplavmz","page":null},{"name":"Dewansh Thakur","alias":"dewanshDT","url":"https://github.com/dewanshDT","imageURL":"https://github.com/dewanshDT.png","key":"dewanshDT","page":null},{"name":"Petter Dr\xf8nnen","alias":"dr0nn1","url":"https://github.com/dr0nn1","imageURL":"https://github.com/dr0nn1.png","key":"dr0nn1","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Kagan","alias":"kagankan","url":"https://github.com/kagankan","imageURL":"https://github.com/kagankan.png","key":"kagankan","page":null},{"name":"Mysterious_Dev","alias":"Mysterious-Dev","url":"https://github.com/Mysterious-Dev","imageURL":"https://github.com/Mysterious-Dev.png","key":"Mysterious-Dev","page":null},{"name":"Moritz St\xfcckler","alias":"pReya","url":"https://github.com/pReya","imageURL":"https://github.com/pReya.png","key":"pReya","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tanner Dolby","alias":"tannerdolby","url":"https://github.com/tannerdolby","imageURL":"https://github.com/tannerdolby.png","key":"tannerdolby","page":null},{"name":"TrueQAP","alias":"trueqap","url":"https://github.com/trueqap","imageURL":"https://github.com/trueqap.png","key":"trueqap","page":null},{"name":"Vishruta Patil","alias":"Vishruta-Patil","url":"https://github.com/Vishruta-Patil","imageURL":"https://github.com/Vishruta-Patil.png","key":"Vishruta-Patil","page":null},{"name":"Davide Donadio","alias":"ZarakiKanzaki","url":"https://github.com/ZarakiKanzaki","imageURL":"https://github.com/ZarakiKanzaki.png","key":"ZarakiKanzaki","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2023-03-23T20:00","authors":["Anasqx","armano2","biplavmz","dewanshDT","dr0nn1","Josh-Cena","kagankan","Mysterious-Dev","pReya","slorber","tannerdolby","trueqap","Vishruta-Patil","ZarakiKanzaki"]},"unlisted":false,"prevItem":{"title":"2.4.1","permalink":"/changelog/2.4.1"},"nextItem":{"title":"2.3.1","permalink":"/changelog/2.3.1"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#8236](https://github.com/facebook/docusaurus/pull/8236) feat(content-docs): add support for sidebar item category/link descriptions in generated index page ([@ZarakiKanzaki](https://github.com/ZarakiKanzaki))\\n- `docusaurus-theme-classic`\\n - [#8708](https://github.com/facebook/docusaurus/pull/8708) feat(theme): allow to load a Docusaurus page with theme from query-string: ?docusaurus-theme=dark ([@slorber](https://github.com/slorber))\\n - [#8616](https://github.com/facebook/docusaurus/pull/8616) feat(theme): add ability to translate navbar+footer logo alt text ([@Mysterious-Dev](https://github.com/Mysterious-Dev))\\n- `docusaurus-remark-plugin-npm2yarn`\\n - [#8690](https://github.com/facebook/docusaurus/pull/8690) feat(npm-to-yarn): add support for PnPm and custom converters ([@armano2](https://github.com/armano2))\\n- `docusaurus`\\n - [#8677](https://github.com/facebook/docusaurus/pull/8677) feat(core): add script env variables: NODE_ENV + BABEL_ENV + DOCUSAURUS_CURRENT_LOCALE (temporary i18n workaround) ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8674](https://github.com/facebook/docusaurus/pull/8674) feat(theme-classic): respect `prefers-reduced-motion: reduce` mediaquery, bump Infima to alpha.43 ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-translations`\\n - [#8668](https://github.com/facebook/docusaurus/pull/8668) feat(theme-translations): add Hungarian theme translations ([@trueqap](https://github.com/trueqap))\\n - [#8631](https://github.com/facebook/docusaurus/pull/8631) feat(theme-translations): add Norwegian (Bokm\xe5l) theme translation ([@dr0nn1](https://github.com/dr0nn1))\\n- `docusaurus-theme-common`\\n - [#8656](https://github.com/facebook/docusaurus/pull/8656) feat(theme-common): allow passing a string for details summary ([@pReya](https://github.com/pReya))\\n- `docusaurus-plugin-google-gtag`\\n - [#8620](https://github.com/facebook/docusaurus/pull/8620) feat(gtag-plugin): gtag should support multiple tracking ids, notably for the UA => GA4 transition ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#8803](https://github.com/facebook/docusaurus/pull/8803) fix(theme): codeblock buttons should be kept on the right when using RTL locale ([@Vishruta-Patil](https://github.com/Vishruta-Patil))\\n - [#8615](https://github.com/facebook/docusaurus/pull/8615) fix(theme): improve color toggle when using dark navbar ([@dewanshDT](https://github.com/dewanshDT))\\n - [#8699](https://github.com/facebook/docusaurus/pull/8699) fix(theme-classic): fix tab focus bug in dropdown (#8697) ([@kagankan](https://github.com/kagankan))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8801](https://github.com/facebook/docusaurus/pull/8801) fix(theme): allow tabs children to be falsy ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-common`, `docusaurus-theme-search-algolia`\\n - [#8757](https://github.com/facebook/docusaurus/pull/8757) fix(search): search page should react to querystring changes + cleanup/refactor ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#8746](https://github.com/facebook/docusaurus/pull/8746) fix(core): baseUrl error banner link anchor case ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-translations`\\n - [#8744](https://github.com/facebook/docusaurus/pull/8744) fix(theme-translations): fix wrong arabic words (tip/next) ([@Anasqx](https://github.com/Anasqx))\\n\\n## :nail_care: Polish\\n\\n- `create-docusaurus`\\n - [#8712](https://github.com/facebook/docusaurus/pull/8712) polish(create-docusaurus): the starter template should use a navbar item \\"docSidebar\\" instead of \\"doc\\" (less fragile on updates) ([@biplavmz](https://github.com/biplavmz))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-common`, `docusaurus`\\n - [#8735](https://github.com/facebook/docusaurus/pull/8735) polish(theme): better error messages on navbar item rendering failures + ErrorCauseBoundary API ([@tannerdolby](https://github.com/tannerdolby))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus`\\n - [#8736](https://github.com/facebook/docusaurus/pull/8736) polish(core): better styling for error screens ([@tannerdolby](https://github.com/tannerdolby))\\n\\n## Committers: 14\\n\\n- Anas ([@Anasqx](https://github.com/Anasqx))\\n- Armano ([@armano2](https://github.com/armano2))\\n- Davide Donadio ([@ZarakiKanzaki](https://github.com/ZarakiKanzaki))\\n- Dewansh Thakur ([@dewanshDT](https://github.com/dewanshDT))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Kagan ([@kagankan](https://github.com/kagankan))\\n- Moritz St\xfcckler ([@pReya](https://github.com/pReya))\\n- Mysterious_Dev ([@Mysterious-Dev](https://github.com/Mysterious-Dev))\\n- Petter Dr\xf8nnen ([@dr0nn1](https://github.com/dr0nn1))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tanner Dolby ([@tannerdolby](https://github.com/tannerdolby))\\n- TrueQAP ([@trueqap](https://github.com/trueqap))\\n- Vishruta Patil ([@Vishruta-Patil](https://github.com/Vishruta-Patil))\\n- [@biplavmz](https://github.com/biplavmz)"},{"id":"/2.3.1","metadata":{"permalink":"/changelog/2.3.1","source":"@site/changelog/source/2.3.1.md","title":"2.3.1","description":"Bug Fix","date":"2023-02-03T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"S\xe9bastien Castiel","alias":"scastiel","url":"https://github.com/scastiel","imageURL":"https://github.com/scastiel.png","key":"scastiel","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2023-02-03T20:00","authors":["Josh-Cena","scastiel","slorber"]},"unlisted":false,"prevItem":{"title":"2.4.0","permalink":"/changelog/2.4.0"},"nextItem":{"title":"2.3.0","permalink":"/changelog/2.3.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-common`\\n - [#8628](https://github.com/facebook/docusaurus/pull/8628) fix(theme-common): fix issue in tab scroll position restoration on tab click ([@slorber](https://github.com/slorber))\\n - [#8619](https://github.com/facebook/docusaurus/pull/8619) fix(theme-common): localStorage utils dispatch too many storage events leading to infinite loop ([@slorber](https://github.com/slorber))\\n - [#8618](https://github.com/facebook/docusaurus/pull/8618) fix(theme-common): prepare usage of useSyncExternalStore compatibility with React 18 ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8593](https://github.com/facebook/docusaurus/pull/8593) fix(theme-classic): allow rendering single tab item ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-utils`\\n - [#8606](https://github.com/facebook/docusaurus/pull/8606) fix(utils): handle CRLF when parsing MDX imports ([@scastiel](https://github.com/scastiel))\\n- `docusaurus-preset-classic`\\n - [#8597](https://github.com/facebook/docusaurus/pull/8597) fix(preset-classic): install the right plugin for googleTagManager ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-translations`\\n - [#8614](https://github.com/facebook/docusaurus/pull/8614) chore(theme-translations): complete zh translations ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :robot: Dependencies\\n\\n- `docusaurus-plugin-client-redirects`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#8610](https://github.com/facebook/docusaurus/pull/8610) chore(deps): bump eta from 1.12.3 to 2.0.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n\\n## Committers: 3\\n\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- S\xe9bastien Castiel ([@scastiel](https://github.com/scastiel))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))"},{"id":"/2.3.0","metadata":{"permalink":"/changelog/2.3.0","source":"@site/changelog/source/2.3.0.md","title":"2.3.0","description":"New Feature","date":"2023-01-26T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Danny Kim","alias":"0916dhkim","url":"https://github.com/0916dhkim","imageURL":"https://github.com/0916dhkim.png","key":"0916dhkim","page":null},{"name":"Riccardo","alias":"3v0k4","url":"https://github.com/3v0k4","imageURL":"https://github.com/3v0k4.png","key":"3v0k4","page":null},{"name":"Denis Al-Khelali","alias":"denis-alkhelali","url":"https://github.com/denis-alkhelali","imageURL":"https://github.com/denis-alkhelali.png","key":"denis-alkhelali","page":null},{"name":"Dongjoon Lee","alias":"Djunnni","url":"https://github.com/Djunnni","imageURL":"https://github.com/Djunnni.png","key":"Djunnni","page":null},{"name":"Frieder Bluemle","alias":"friederbluemle","url":"https://github.com/friederbluemle","imageURL":"https://github.com/friederbluemle.png","key":"friederbluemle","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Josh Goldberg","alias":"JoshuaKGoldberg","url":"https://github.com/JoshuaKGoldberg","imageURL":"https://github.com/JoshuaKGoldberg.png","key":"JoshuaKGoldberg","page":null},{"name":"Lachlan Heywood","alias":"lachieh","url":"https://github.com/lachieh","imageURL":"https://github.com/lachieh.png","key":"lachieh","page":null},{"name":"Lane Goolsby","alias":"lanegoolsby","url":"https://github.com/lanegoolsby","imageURL":"https://github.com/lanegoolsby.png","key":"lanegoolsby","page":null},{"name":"Matija Sirk","alias":"MatijaSi","url":"https://github.com/MatijaSi","imageURL":"https://github.com/MatijaSi.png","key":"MatijaSi","page":null},{"name":"Muhammad Hammad","alias":"mhnaeem","url":"https://github.com/mhnaeem","imageURL":"https://github.com/mhnaeem.png","key":"mhnaeem","page":null},{"name":"mturoci","alias":"mturoci","url":"https://github.com/mturoci","imageURL":"https://github.com/mturoci.png","key":"mturoci","page":null},{"name":"\u5B8B\u9526\u4E30","alias":"SJFCS","url":"https://github.com/SJFCS","imageURL":"https://github.com/SJFCS.png","key":"SJFCS","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Stefan Norberg","alias":"stnor","url":"https://github.com/stnor","imageURL":"https://github.com/stnor.png","key":"stnor","page":null},{"name":"Thomas.CA","alias":"Thomascogez","url":"https://github.com/Thomascogez","imageURL":"https://github.com/Thomascogez.png","key":"Thomascogez","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2023-01-26T20:00","authors":["0916dhkim","3v0k4","denis-alkhelali","Djunnni","friederbluemle","johnnyreilly","Josh-Cena","JoshuaKGoldberg","lachieh","lanegoolsby","MatijaSi","mhnaeem","mturoci","SJFCS","slorber","stnor","Thomascogez"]},"unlisted":false,"prevItem":{"title":"2.3.1","permalink":"/changelog/2.3.1"},"nextItem":{"title":"2.2.0","permalink":"/changelog/2.2.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-translations`\\n - [#8541](https://github.com/facebook/docusaurus/pull/8541) feat(theme-translations): default translations for Slovenian (sl-SI) ([@MatijaSi](https://github.com/MatijaSi))\\n- `docusaurus-plugin-content-blog`\\n - [#8378](https://github.com/facebook/docusaurus/pull/8378) feat(blog): add options.createFeedItems to filter/limit/transform feed items ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus`\\n - [#8225](https://github.com/facebook/docusaurus/pull/8225) feat(theme-classic): store selected tab in query string. ([@mturoci](https://github.com/mturoci))\\n- `docusaurus`\\n - [#8397](https://github.com/facebook/docusaurus/pull/8397) feat(core): deploy CLI - add support for git url \\"insteadOf\\": use \'remote get-url\' to determine source repo url ([@friederbluemle](https://github.com/friederbluemle))\\n- `docusaurus-theme-search-algolia`\\n - [#8428](https://github.com/facebook/docusaurus/pull/8428) feat(theme-algolia): add option.replaceSearchResultPathname to process/replaceAll search result urls\\n- `docusaurus-plugin-google-tag-manager`\\n - [#8470](https://github.com/facebook/docusaurus/pull/8470) feat(plugin-google-tag-manager): add new google-tag-manager plugin + deprecate google-analytics plugin ([@lanegoolsby](https://github.com/lanegoolsby))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-mdx-loader`\\n - [#8303](https://github.com/facebook/docusaurus/pull/8303) fix(mdx-loader): support nested admonitions\\n - [#8282](https://github.com/facebook/docusaurus/pull/8282) fix(mermaid): fix Mermaid integration for v9.2 release\\n- `docusaurus-theme-common`\\n - [#8539](https://github.com/facebook/docusaurus/pull/8539) fix(algolia): make search footer respect searchPagePath ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#8538](https://github.com/facebook/docusaurus/pull/8538) fix(core): avoid hash collision when generating chunk names ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#8481](https://github.com/facebook/docusaurus/pull/8481) fix(core): explicitly define CopyWebpackPlugin toType: \'dir\' ([@Thomascogez](https://github.com/Thomascogez))\\n - [#8342](https://github.com/facebook/docusaurus/pull/8342) fix(core): normalize input for poll option ([@mhnaeem](https://github.com/mhnaeem))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#8445](https://github.com/facebook/docusaurus/pull/8445) fix(theme-classic) extract HomeBreadcrumbItem + fix swizzle bugs ([@3v0k4](https://github.com/3v0k4))\\n- `docusaurus-theme-search-algolia`\\n - [#8462](https://github.com/facebook/docusaurus/pull/8462) fix(search-algolia): pass custom transformItems function to SearchBar ([@mturoci](https://github.com/mturoci))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8486](https://github.com/facebook/docusaurus/pull/8486) fix(theme): refactor Tabs, make groupId + queryString work fine together ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#8463](https://github.com/facebook/docusaurus/pull/8463) fix(theme-classic): content container grow to take all the available space ([@Djunnni](https://github.com/Djunnni))\\n - [#8328](https://github.com/facebook/docusaurus/pull/8328) fix(theme): preserve sidebar height on collapse ([@0916dhkim](https://github.com/0916dhkim))\\n - [#8350](https://github.com/facebook/docusaurus/pull/8350) fix(theme): forward className prop in theme-classic\'s Heading ([@JoshuaKGoldberg](https://github.com/JoshuaKGoldberg))\\n- `docusaurus-theme-translations`\\n - [#8424](https://github.com/facebook/docusaurus/pull/8424) fix(translations): typo in lastUpdatedAtBy Vietnamese translation ([@slorber](https://github.com/slorber))\\n - [#8289](https://github.com/facebook/docusaurus/pull/8289) fix(theme-translations): complete Turkish theme translations\\n - [#8406](https://github.com/facebook/docusaurus/pull/8406) fix(translations): complete farsi theme translations\\n - [#8450](https://github.com/facebook/docusaurus/pull/8450) fix(theme-translations): complete Vietnamese theme translations\\n - [#8525](https://github.com/facebook/docusaurus/pull/8525) chore(theme-translations): complete pl translations\\n- `docusaurus-plugin-content-blog`\\n - [#8381](https://github.com/facebook/docusaurus/pull/8381) fix(content-blog): blog Atom feed id + RSS feed guid should be fully qualified urls ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `docusaurus-plugin-content-docs`\\n - [#8275](https://github.com/facebook/docusaurus/pull/8275) fix(content-docs): add trailing slash to contentDirs, before passing it to isMDXPartial ([@denis-alkhelali](https://github.com/denis-alkhelali))\\n- `docusaurus-utils`\\n - [#8314](https://github.com/facebook/docusaurus/pull/8314) fix(utils): allow partially backticked markdown h1 contentTitles ([@JoshuaKGoldberg](https://github.com/JoshuaKGoldberg))\\n- `create-docusaurus`, `docusaurus-theme-classic`\\n - [#8279](https://github.com/facebook/docusaurus/pull/8279) fix(create-docusaurus): improve init template misleading doc + add Docuaurus social card ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#8445](https://github.com/facebook/docusaurus/pull/8445) fix(theme-classic) extract HomeBreadcrumbItem + fix swizzle bugs ([@3v0k4](https://github.com/3v0k4))\\n- `docusaurus-theme-translations`\\n - [#8423](https://github.com/facebook/docusaurus/pull/8423) fix(translations): complete Chinese theme translations ([@SJFCS](https://github.com/SJFCS))\\n - [#8312](https://github.com/facebook/docusaurus/pull/8312) fix(theme-translations): complete Swedish theme translations ([@stnor](https://github.com/stnor))\\n- `eslint-plugin`\\n - [#8281](https://github.com/facebook/docusaurus/pull/8281) feat(eslint-plugin): add plugin to exported configs ([@lachieh](https://github.com/lachieh))\\n\\n## Committers: 16\\n\\n- Danny Kim ([@0916dhkim](https://github.com/0916dhkim))\\n- Denis Al-Khelali ([@denis-alkhelali](https://github.com/denis-alkhelali))\\n- Dongjoon Lee ([@Djunnni](https://github.com/Djunnni))\\n- Frieder Bluemle ([@friederbluemle](https://github.com/friederbluemle))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Josh Goldberg ([@JoshuaKGoldberg](https://github.com/JoshuaKGoldberg))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Lachlan Heywood ([@lachieh](https://github.com/lachieh))\\n- Lane Goolsby ([@lanegoolsby](https://github.com/lanegoolsby))\\n- Matija Sirk ([@MatijaSi](https://github.com/MatijaSi))\\n- Muhammad Hammad ([@mhnaeem](https://github.com/mhnaeem))\\n- Riccardo ([@3v0k4](https://github.com/3v0k4))\\n- Stefan Norberg ([@stnor](https://github.com/stnor))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Thomas.CA ([@Thomascogez](https://github.com/Thomascogez))\\n- [@mturoci](https://github.com/mturoci)\\n- \u5B8B\u9526\u4E30 ([@SJFCS](https://github.com/SJFCS))"},{"id":"/2.2.0","metadata":{"permalink":"/changelog/2.2.0","source":"@site/changelog/source/2.2.0.md","title":"2.2.0","description":"New Feature","date":"2022-10-29T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Adnan Hashmi","alias":"adnanhashmi09","url":"https://github.com/adnanhashmi09","imageURL":"https://github.com/adnanhashmi09.png","key":"adnanhashmi09","page":null},{"name":"Johan Fagerberg","alias":"birjj","url":"https://github.com/birjj","imageURL":"https://github.com/birjj.png","key":"birjj","page":null},{"name":"evan","alias":"e-im","url":"https://github.com/e-im","imageURL":"https://github.com/e-im.png","key":"e-im","page":null},{"name":"forgeRW","alias":"forgeRW","url":"https://github.com/forgeRW","imageURL":"https://github.com/forgeRW.png","key":"forgeRW","page":null},{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},{"name":"Mikey O\'Toole","alias":"homotechsual","url":"https://github.com/homotechsual","imageURL":"https://github.com/homotechsual.png","key":"homotechsual","page":null},{"name":"Jeferson S. Brito","alias":"jeferson-sb","url":"https://github.com/jeferson-sb","imageURL":"https://github.com/jeferson-sb.png","key":"jeferson-sb","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Jan Peer St\xf6cklmair","alias":"JPeer264","url":"https://github.com/JPeer264","imageURL":"https://github.com/JPeer264.png","key":"JPeer264","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"LittleboyHarry","alias":"LittleboyHarry","url":"https://github.com/LittleboyHarry","imageURL":"https://github.com/LittleboyHarry.png","key":"LittleboyHarry","page":null},{"name":"mturoci","alias":"mturoci","url":"https://github.com/mturoci","imageURL":"https://github.com/mturoci.png","key":"mturoci","page":null},{"name":"Nguy\u1EC5n Th\xe0nh Nam","alias":"namnguyenthanhwork","url":"https://github.com/namnguyenthanhwork","imageURL":"https://github.com/namnguyenthanhwork.png","key":"namnguyenthanhwork","page":null},{"name":"Masahiko Hara","alias":"pasora","url":"https://github.com/pasora","imageURL":"https://github.com/pasora.png","key":"pasora","page":null},{"name":"Pranav Joglekar","alias":"Pranav2612000","url":"https://github.com/Pranav2612000","imageURL":"https://github.com/Pranav2612000.png","key":"Pranav2612000","page":null},{"name":"Ramazan SANCAR","alias":"ramazansancar","url":"https://github.com/ramazansancar","imageURL":"https://github.com/ramazansancar.png","key":"ramazansancar","page":null},{"name":"Sanjaiyan Parthipan","alias":"sanjaiyan-dev","url":"https://github.com/sanjaiyan-dev","imageURL":"https://github.com/sanjaiyan-dev.png","key":"sanjaiyan-dev","page":null},{"name":"Shanmughapriyan S","alias":"shanpriyan","url":"https://github.com/shanpriyan","imageURL":"https://github.com/shanpriyan.png","key":"shanpriyan","page":null},{"name":"Sam Wall","alias":"sjwall","url":"https://github.com/sjwall","imageURL":"https://github.com/sjwall.png","key":"sjwall","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Xabier Lahuerta Vazquez","alias":"Xabilahu","url":"https://github.com/Xabilahu","imageURL":"https://github.com/Xabilahu.png","key":"Xabilahu","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-10-29T20:00","authors":["adnanhashmi09","birjj","e-im","forgeRW","forresst","homotechsual","jeferson-sb","johnnyreilly","Josh-Cena","JPeer264","lex111","LittleboyHarry","mturoci","namnguyenthanhwork","pasora","Pranav2612000","ramazansancar","sanjaiyan-dev","shanpriyan","sjwall","slorber","Xabilahu"]},"unlisted":false,"prevItem":{"title":"2.3.0","permalink":"/changelog/2.3.0"},"nextItem":{"title":"2.1.0","permalink":"/changelog/2.1.0"},"listPageLink":"/changelog/"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-client-redirects`\\n - [#8227](https://github.com/facebook/docusaurus/pull/8227) feat(plugin-client-redirects): keep the query string + hash ([@Xabilahu](https://github.com/Xabilahu))\\n- `docusaurus`\\n - [#8210](https://github.com/facebook/docusaurus/pull/8210) feat(core): add --config param to swizzle command ([@e-im](https://github.com/e-im))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-mermaid`, `docusaurus-types`, `docusaurus`\\n - [#7490](https://github.com/facebook/docusaurus/pull/7490) feat: support mermaid code blocks in Markdown ([@sjwall](https://github.com/sjwall))\\n- `docusaurus-types`, `docusaurus`\\n - [#8151](https://github.com/facebook/docusaurus/pull/8151) feat(core): siteConfig.headTags API to render extra tags in document head ([@johnnyreilly](https://github.com/johnnyreilly))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-ideal-image`\\n - [#8250](https://github.com/facebook/docusaurus/pull/8250) fix(ideal-image): do not pass down `img` prop ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-common`\\n - [#8246](https://github.com/facebook/docusaurus/pull/8246) fix(mdx-loader): properly unwrap mdxAdmonitionTitle placeholder ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`\\n - [#8234](https://github.com/facebook/docusaurus/pull/8234) fix(plugin-content-docs): fix error message context (error cause) when doc processing fails ([@shanpriyan](https://github.com/shanpriyan))\\n- `docusaurus-theme-classic`, `docusaurus-theme-translations`\\n - [#8207](https://github.com/facebook/docusaurus/pull/8207) fix(theme-classic): hamburger menu control navigation by keyboard ([@jeferson-sb](https://github.com/jeferson-sb))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8204](https://github.com/facebook/docusaurus/pull/8204) fix(theme-classic): fix SkipToContent without JS , refactor, make it public theming API ([@mturoci](https://github.com/mturoci))\\n - [#8059](https://github.com/facebook/docusaurus/pull/8059) fix(theme): preserve url ?search#hash on navbar version/locale dropdowns navigations ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#8192](https://github.com/facebook/docusaurus/pull/8192) fix(core): throw error for invalid URL in config file ([@forgeRW](https://github.com/forgeRW))\\n- `docusaurus-theme-classic`\\n - [#8174](https://github.com/facebook/docusaurus/pull/8174) fix(theme): announce theme switches ([@mturoci](https://github.com/mturoci))\\n - [#8190](https://github.com/facebook/docusaurus/pull/8190) fix(theme): add more tag names to inline code element set ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#8163](https://github.com/facebook/docusaurus/pull/8163) fix(theme): mobile navbar & skipToContent should cover announcementBar ([@adnanhashmi09](https://github.com/adnanhashmi09))\\n - [#8068](https://github.com/facebook/docusaurus/pull/8068) fix(theme): preserve line breaks when copying code with showLineNumbers in Firefox ([@LittleboyHarry](https://github.com/LittleboyHarry))\\n- `docusaurus-utils`\\n - [#8137](https://github.com/facebook/docusaurus/pull/8137) fix(utils): remove non-ASCII limitation for path normalization ([@birjj](https://github.com/birjj))\\n - [#8158](https://github.com/facebook/docusaurus/pull/8158) fix(content-blog): make RSS feed generation work with slugs with .html extension ([@Pranav2612000](https://github.com/Pranav2612000))\\n- `docusaurus-theme-translations`\\n - [#8105](https://github.com/facebook/docusaurus/pull/8105) fix(theme-translations): complete turkish theme default translations ([@ramazansancar](https://github.com/ramazansancar))\\n - [#8087](https://github.com/facebook/docusaurus/pull/8087) fix(theme-translations): remove extra vi translations ([@namnguyenthanhwork](https://github.com/namnguyenthanhwork))\\n- `docusaurus-plugin-client-redirects`\\n - [#8067](https://github.com/facebook/docusaurus/pull/8067) fix(redirect): tolerate trailing slash difference if config is undefined ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-translations`\\n - [#8253](https://github.com/facebook/docusaurus/pull/8253) chore(theme-translations): complete ru translations ([@lex111](https://github.com/lex111))\\n - [#8243](https://github.com/facebook/docusaurus/pull/8243) chore(theme-translations): complete French translations ([@forresst](https://github.com/forresst))\\n - [#8075](https://github.com/facebook/docusaurus/pull/8075) fix(theme-translation): complete Japanese theme default translation ([@pasora](https://github.com/pasora))\\n- `docusaurus`\\n - [#8159](https://github.com/facebook/docusaurus/pull/8159) fix(core): throw error for invalid URL in config file ([@forgeRW](https://github.com/forgeRW))\\n - [#8109](https://github.com/facebook/docusaurus/pull/8109) feat(core): prefetch on mobile touchstart ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))\\n- `docusaurus-theme-classic`\\n - [#8161](https://github.com/facebook/docusaurus/pull/8161) fix(theme): do not show tab content when tabbing over it; show after selection only ([@mturoci](https://github.com/mturoci))\\n - [#8062](https://github.com/facebook/docusaurus/pull/8062) refactor(theme): remove hard-coded tag border-radius ([@homotechsual](https://github.com/homotechsual))\\n- `docusaurus-utils-validation`, `docusaurus`\\n - [#8066](https://github.com/facebook/docusaurus/pull/8066) fix(core): normalize slashes for url/baseUrl instead of throwing ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 22\\n\\n- Adnan Hashmi ([@adnanhashmi09](https://github.com/adnanhashmi09))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Forresst ([@forresst](https://github.com/forresst))\\n- Jan Peer St\xf6cklmair ([@JPeer264](https://github.com/JPeer264))\\n- Jeferson S. Brito ([@jeferson-sb](https://github.com/jeferson-sb))\\n- Johan Fagerberg ([@birjj](https://github.com/birjj))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- LittleboyHarry ([@LittleboyHarry](https://github.com/LittleboyHarry))\\n- Masahiko Hara ([@pasora](https://github.com/pasora))\\n- Mikey O\'Toole ([@homotechsual](https://github.com/homotechsual))\\n- Nguy\u1EC5n Th\xe0nh Nam ([@namnguyenthanhwork](https://github.com/namnguyenthanhwork))\\n- Pranav Joglekar ([@Pranav2612000](https://github.com/Pranav2612000))\\n- Ramazan SANCAR ([@ramazansancar](https://github.com/ramazansancar))\\n- Sam Wall ([@sjwall](https://github.com/sjwall))\\n- Sanjaiyan Parthipan ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))\\n- Shanmughapriyan S ([@shanpriyan](https://github.com/shanpriyan))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Xabier Lahuerta Vazquez ([@Xabilahu](https://github.com/Xabilahu))\\n- [@forgeRW](https://github.com/forgeRW)\\n- [@mturoci](https://github.com/mturoci)\\n- evan ([@e-im](https://github.com/e-im))"},{"id":"/2.1.0","metadata":{"permalink":"/changelog/2.1.0","source":"@site/changelog/source/2.1.0.md","title":"2.1.0","description":"New Feature","date":"2022-09-01T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"adventure-yunfei","alias":"adventure-yunfei","url":"https://github.com/adventure-yunfei","imageURL":"https://github.com/adventure-yunfei.png","key":"adventure-yunfei","page":null},{"name":"Bagdasar Ovsepyan","alias":"b-ovsepian","url":"https://github.com/b-ovsepian","imageURL":"https://github.com/b-ovsepian.png","key":"b-ovsepian","page":null},{"name":"Ng\xf4 Qu\u1ED1c \u0110\u1EA1t","alias":"datlechin","url":"https://github.com/datlechin","imageURL":"https://github.com/datlechin.png","key":"datlechin","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Kevin \xd8sterkilde","alias":"Kosai106","url":"https://github.com/Kosai106","imageURL":"https://github.com/Kosai106.png","key":"Kosai106","page":null},{"name":"Morgane Dubus","alias":"mdubus","url":"https://github.com/mdubus","imageURL":"https://github.com/mdubus.png","key":"mdubus","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"whiteand","alias":"whiteand","url":"https://github.com/whiteand","imageURL":"https://github.com/whiteand.png","key":"whiteand","page":null},{"name":"Yoni Chechik","alias":"YoniChechik","url":"https://github.com/YoniChechik","imageURL":"https://github.com/YoniChechik.png","key":"YoniChechik","page":null},{"name":"yzhe819","alias":"yzhe819","url":"https://github.com/yzhe819","imageURL":"https://github.com/yzhe819.png","key":"yzhe819","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-09-01T20:00","authors":["adventure-yunfei","b-ovsepian","datlechin","Josh-Cena","Kosai106","mdubus","slorber","whiteand","YoniChechik","yzhe819"]},"unlisted":false,"prevItem":{"title":"2.2.0","permalink":"/changelog/2.2.0"},"nextItem":{"title":"2.0.1","permalink":"/changelog/2.0.1"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#8008](https://github.com/facebook/docusaurus/pull/8008) feat(theme): ability to use `<DocCardList>` without items prop, on any doc page ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#7963](https://github.com/facebook/docusaurus/pull/7963) feat(docs): allow to configure noIndex per doc version ([@slorber](https://github.com/slorber))\\n - [#7949](https://github.com/facebook/docusaurus/pull/7949) feat(plugin-docs): docs sidebar item link: support \\"autoAddBaseUrl\\" attribute ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-translations`\\n - [#7953](https://github.com/facebook/docusaurus/pull/7953) feat(theme): adds Ukrainian default theme translations ([@b-ovsepian](https://github.com/b-ovsepian))\\n\\n## :bug: Bug Fix\\n\\n- `create-docusaurus`\\n - [#8032](https://github.com/facebook/docusaurus/pull/8032) fix(create-docusaurus): tutorial and init template improvements ([@slorber](https://github.com/slorber))\\n- `docusaurus-preset-classic`\\n - [#8029](https://github.com/facebook/docusaurus/pull/8029) fix(preset-classic): broken link in \\"unrecognized keys\\" error message ([@mdubus](https://github.com/mdubus))\\n- `docusaurus`\\n - [#7977](https://github.com/facebook/docusaurus/pull/7977) fix(core): preload should support encoded page links ([@adventure-yunfei](https://github.com/adventure-yunfei))\\n - [#7996](https://github.com/facebook/docusaurus/pull/7996) fix(core): CLI command write-translations should extract translations from @docu\u2026 ([@slorber](https://github.com/slorber))\\n - [#7952](https://github.com/facebook/docusaurus/pull/7952) fix(core): allow overriding ssr/dev template meta tags ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-sitemap`\\n - [#7964](https://github.com/facebook/docusaurus/pull/7964) fix(sitemap): filter all routes with robots meta containing noindex ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#7910](https://github.com/facebook/docusaurus/pull/7910) fix(theme-classic): code block line number display with line wrapping ([@yzhe819](https://github.com/yzhe819))\\n - [#7786](https://github.com/facebook/docusaurus/pull/7786) fix: collapse siblings when first category is selected ([@whiteand](https://github.com/whiteand))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#7982](https://github.com/facebook/docusaurus/pull/7982) fix(theme): add aria-label to skip to content link region ([@YoniChechik](https://github.com/YoniChechik))\\n - [#7940](https://github.com/facebook/docusaurus/pull/7940) refactor(theme-classic): split AnnouncementBar, increase z-index, use shadow ([@slorber](https://github.com/slorber))\\n - [#7876](https://github.com/facebook/docusaurus/pull/7876) refactor(theme-classic): make tag text visually certered ([@Kosai106](https://github.com/Kosai106))\\n- `docusaurus-utils`\\n - [#7941](https://github.com/facebook/docusaurus/pull/7941) feat(core): add new Webpack file-loader extensions: avif, mov, mkv, mpg, avi... ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-types`\\n - [#7942](https://github.com/facebook/docusaurus/pull/7942) feat(theme-classic): use lang attribute in navbar locale dropdown items ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-translations`\\n - [#7928](https://github.com/facebook/docusaurus/pull/7928) chore(theme-translations): complete vi translations ([@datlechin](https://github.com/datlechin))\\n\\n## :memo: Documentation\\n\\n- `create-docusaurus`\\n - [#8032](https://github.com/facebook/docusaurus/pull/8032) fix(create-docusaurus): tutorial and init template improvements ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`\\n - [#7905](https://github.com/facebook/docusaurus/pull/7905) docs: remove mention of beta ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 10\\n\\n- Bagdasar Ovsepyan ([@b-ovsepian](https://github.com/b-ovsepian))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Kevin \xd8sterkilde ([@Kosai106](https://github.com/Kosai106))\\n- Morgane Dubus ([@mdubus](https://github.com/mdubus))\\n- Ng\xf4 Qu\u1ED1c \u0110\u1EA1t ([@datlechin](https://github.com/datlechin))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Yoni Chechik ([@YoniChechik](https://github.com/YoniChechik))\\n- [@whiteand](https://github.com/whiteand)\\n- [@yzhe819](https://github.com/yzhe819)\\n- adventure-yunfei ([@adventure-yunfei](https://github.com/adventure-yunfei))"},{"id":"/2.0.1","metadata":{"permalink":"/changelog/2.0.1","source":"@site/changelog/source/2.0.1.md","title":"2.0.1","description":"Fix bad npm publish of 2.0.0","date":"2022-08-01T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-08-01T20:00","authors":["slorber"]},"unlisted":false,"prevItem":{"title":"2.1.0","permalink":"/changelog/2.1.0"},"nextItem":{"title":"2.0.0","permalink":"/changelog/2.0.0"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\nFix bad npm publish of 2.0.0\\n\\n## Committers: 1\\n\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))"},{"id":"/2.0.0","metadata":{"permalink":"/changelog/2.0.0","source":"@site/changelog/source/2.0.0.md","title":"2.0.0","description":"Bad npm publish, please use 2.0.1","date":"2022-08-01T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-08-01T19:00","authors":["Josh-Cena","slorber"]},"unlisted":false,"prevItem":{"title":"2.0.1","permalink":"/changelog/2.0.1"},"nextItem":{"title":"2.0.0-rc.1","permalink":"/changelog/2.0.0-rc.1"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\nBad npm publish, please use 2.0.1\\n\\n## :nail_care: Polish\\n\\n- `docusaurus`\\n - [#7781](https://github.com/facebook/docusaurus/pull/7781) refactor(core): log Docusaurus & Node version before exiting ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 2\\n\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))"},{"id":"/2.0.0-rc.1","metadata":{"permalink":"/changelog/2.0.0-rc.1","source":"@site/changelog/source/2.0.0-rc.1.md","title":"2.0.0-rc.1","description":"Bug Fix","date":"2022-07-14T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Sunghyun Cho","alias":"anaclumos","url":"https://github.com/anaclumos","imageURL":"https://github.com/anaclumos.png","key":"anaclumos","page":null},{"name":"Evan","alias":"DigiPie","url":"https://github.com/DigiPie","imageURL":"https://github.com/DigiPie.png","key":"DigiPie","page":null},{"name":"\u51F1\u6069 Kane","alias":"Gary50613","url":"https://github.com/Gary50613","imageURL":"https://github.com/Gary50613.png","key":"Gary50613","page":null},{"name":"Wes McNamee","alias":"ghostsquad","url":"https://github.com/ghostsquad","imageURL":"https://github.com/ghostsquad.png","key":"ghostsquad","page":null},{"name":"Jeffrey Aven","alias":"jeffreyaven","url":"https://github.com/jeffreyaven","imageURL":"https://github.com/jeffreyaven.png","key":"jeffreyaven","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"LichLord91","alias":"LichLord91","url":"https://github.com/LichLord91","imageURL":"https://github.com/LichLord91.png","key":"LichLord91","page":null},{"name":"Bruce Song","alias":"recallwei","url":"https://github.com/recallwei","imageURL":"https://github.com/recallwei.png","key":"recallwei","page":null},{"name":"Arthur Brugi\xe8re","alias":"RoiArthurB","url":"https://github.com/RoiArthurB","imageURL":"https://github.com/RoiArthurB.png","key":"RoiArthurB","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"The Nguyen","alias":"treoden","url":"https://github.com/treoden","imageURL":"https://github.com/treoden.png","key":"treoden","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-07-14T20:00","authors":["anaclumos","DigiPie","Gary50613","ghostsquad","jeffreyaven","Josh-Cena","LichLord91","recallwei","RoiArthurB","slorber","treoden"]},"unlisted":false,"prevItem":{"title":"2.0.0","permalink":"/changelog/2.0.0"},"nextItem":{"title":"2.0.0-beta.22","permalink":"/changelog/2.0.0-beta.22"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#7776](https://github.com/facebook/docusaurus/pull/7776) fix(core): swizzle --eject js should not copy theme .d.ts files ([@slorber](https://github.com/slorber))\\n - [#7750](https://github.com/facebook/docusaurus/pull/7750) fix(deploy): revert \\"feat(deploy): copy local git config to tmp repo (#7702)\\" ([@ghostsquad](https://github.com/ghostsquad))\\n- `docusaurus-plugin-sitemap`\\n - [#7774](https://github.com/facebook/docusaurus/pull/7774) fix(sitemap): complete gracefully when all pages have noIndex meta ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#7771](https://github.com/facebook/docusaurus/pull/7771) chore: bump Infima to 0.2.0-alpha.42, fix a:hover link bug ([@slorber](https://github.com/slorber))\\n - [#7755](https://github.com/facebook/docusaurus/pull/7755) fix(theme-classic): validate options properly ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7752](https://github.com/facebook/docusaurus/pull/7752) fix(theme-classic): fix Layout theme height CSS ([@LichLord91](https://github.com/LichLord91))\\n- `docusaurus-migrate`\\n - [#7766](https://github.com/facebook/docusaurus/pull/7766) fix(migrate): import siteConfig with file extension ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-search-algolia`\\n - [#7761](https://github.com/facebook/docusaurus/pull/7761) fix(algolia-search): test for canUseIntersectionObserver ([@RoiArthurB](https://github.com/RoiArthurB))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-translations`\\n - [#7762](https://github.com/facebook/docusaurus/pull/7762) chore(theme-translations): complete ko translations ([@anaclumos](https://github.com/anaclumos))\\n\\n## :memo: Documentation\\n\\n- `docusaurus-plugin-content-docs`\\n - [#7706](https://github.com/facebook/docusaurus/pull/7706) docs: release process, versioning, breaking changes, public API surface ([@slorber](https://github.com/slorber))\\n\\n## :wrench: Maintenance\\n\\n- `docusaurus-theme-classic`\\n - [#7777](https://github.com/facebook/docusaurus/pull/7777) refactor(theme): fix duplicate page metadata usage ([@slorber](https://github.com/slorber))\\n - [#7771](https://github.com/facebook/docusaurus/pull/7771) chore: bump Infima to 0.2.0-alpha.42, fix a:hover link bug ([@slorber](https://github.com/slorber))\\n\\n## Committers: 11\\n\\n- Arthur Brugi\xe8re ([@RoiArthurB](https://github.com/RoiArthurB))\\n- Bruce Song ([@recallwei](https://github.com/recallwei))\\n- Evan ([@DigiPie](https://github.com/DigiPie))\\n- Jeffrey Aven ([@jeffreyaven](https://github.com/jeffreyaven))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Sunghyun Cho ([@anaclumos](https://github.com/anaclumos))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- The Nguyen ([@treoden](https://github.com/treoden))\\n- Wes McNamee ([@ghostsquad](https://github.com/ghostsquad))\\n- [@LichLord91](https://github.com/LichLord91)\\n- \u51F1\u6069 Kane ([@Gary50613](https://github.com/Gary50613))"},{"id":"/2.0.0-beta.22","metadata":{"permalink":"/changelog/2.0.0-beta.22","source":"@site/changelog/source/2.0.0-beta.22.md","title":"2.0.0-beta.22","description":"Breaking Change","date":"2022-07-08T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Fl\xe1vio Silva","alias":"201flaviosilva","url":"https://github.com/201flaviosilva","imageURL":"https://github.com/201flaviosilva.png","key":"201flaviosilva","page":null},{"name":"7Wate","alias":"7Wate","url":"https://github.com/7Wate","imageURL":"https://github.com/7Wate.png","key":"7Wate","page":null},{"name":"\u8D64\u57CE\u7ED3\u8863","alias":"AkagiYui","url":"https://github.com/AkagiYui","imageURL":"https://github.com/AkagiYui.png","key":"AkagiYui","page":null},{"name":"alewolf","alias":"alewolf","url":"https://github.com/alewolf","imageURL":"https://github.com/alewolf.png","key":"alewolf","page":null},{"name":"Alexander Nestorov","alias":"alexandernst","url":"https://github.com/alexandernst","imageURL":"https://github.com/alexandernst.png","key":"alexandernst","page":null},{"name":"Ahmed Altomy","alias":"Altomy","url":"https://github.com/Altomy","imageURL":"https://github.com/Altomy.png","key":"Altomy","page":null},{"name":"Sunghyun Cho","alias":"anaclumos","url":"https://github.com/anaclumos","imageURL":"https://github.com/anaclumos.png","key":"anaclumos","page":null},{"name":"Benjamin Cabanes","alias":"bcabanes","url":"https://github.com/bcabanes","imageURL":"https://github.com/bcabanes.png","key":"bcabanes","page":null},{"name":"Ben Myers","alias":"BenDMyers","url":"https://github.com/BenDMyers","imageURL":"https://github.com/BenDMyers.png","key":"BenDMyers","page":null},{"name":"Boulet","alias":"Boulet-","url":"https://github.com/Boulet-","imageURL":"https://github.com/Boulet-.png","key":"Boulet-","page":null},{"name":"Charles Ancheta","alias":"cbebe","url":"https://github.com/cbebe","imageURL":"https://github.com/cbebe.png","key":"cbebe","page":null},{"name":"Clemie McCartney","alias":"clemiee","url":"https://github.com/clemiee","imageURL":"https://github.com/clemiee.png","key":"clemiee","page":null},{"name":"Ng\xf4 Qu\u1ED1c \u0110\u1EA1t","alias":"datlechin","url":"https://github.com/datlechin","imageURL":"https://github.com/datlechin.png","key":"datlechin","page":null},{"name":"Dharsan B","alias":"DharsanB","url":"https://github.com/DharsanB","imageURL":"https://github.com/DharsanB.png","key":"DharsanB","page":null},{"name":"dht","alias":"dht","url":"https://github.com/dht","imageURL":"https://github.com/dht.png","key":"dht","page":null},{"name":"Diego Fran\xe7a","alias":"difranca","url":"https://github.com/difranca","imageURL":"https://github.com/difranca.png","key":"difranca","page":null},{"name":"dpang314","alias":"dpang314","url":"https://github.com/dpang314","imageURL":"https://github.com/dpang314.png","key":"dpang314","page":null},{"name":"emattia","alias":"emattia","url":"https://github.com/emattia","imageURL":"https://github.com/emattia.png","key":"emattia","page":null},{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},{"name":"\u51F1\u6069 Kane","alias":"Gary50613","url":"https://github.com/Gary50613","imageURL":"https://github.com/Gary50613.png","key":"Gary50613","page":null},{"name":"Wes McNamee","alias":"ghostsquad","url":"https://github.com/ghostsquad","imageURL":"https://github.com/ghostsquad.png","key":"ghostsquad","page":null},{"name":"Hyunseung Lee","alias":"HyunseungLee-Travis","url":"https://github.com/HyunseungLee-Travis","imageURL":"https://github.com/HyunseungLee-Travis.png","key":"HyunseungLee-Travis","page":null},{"name":"DOLLE","alias":"JeremyDolle","url":"https://github.com/JeremyDolle","imageURL":"https://github.com/JeremyDolle.png","key":"JeremyDolle","page":null},{"name":"Johnie Hjelm","alias":"johnie","url":"https://github.com/johnie","imageURL":"https://github.com/johnie.png","key":"johnie","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"JP","alias":"jpdriver","url":"https://github.com/jpdriver","imageURL":"https://github.com/jpdriver.png","key":"jpdriver","page":null},{"name":"Joshua Schmitt","alias":"jqshuv","url":"https://github.com/jqshuv","imageURL":"https://github.com/jqshuv.png","key":"jqshuv","page":null},{"name":"K\xfcr\u015Fat \u015Eim\u015Fek","alias":"kursatsmsek","url":"https://github.com/kursatsmsek","imageURL":"https://github.com/kursatsmsek.png","key":"kursatsmsek","page":null},{"name":"Lane Goolsby","alias":"lanegoolsby","url":"https://github.com/lanegoolsby","imageURL":"https://github.com/lanegoolsby.png","key":"lanegoolsby","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Matthias Koch","alias":"matkoch","url":"https://github.com/matkoch","imageURL":"https://github.com/matkoch.png","key":"matkoch","page":null},{"name":"\u674E\u5C0F\u96E8","alias":"metal-young","url":"https://github.com/metal-young","imageURL":"https://github.com/metal-young.png","key":"metal-young","page":null},{"name":"Tom Mrazauskas","alias":"mrazauskas","url":"https://github.com/mrazauskas","imageURL":"https://github.com/mrazauskas.png","key":"mrazauskas","page":null},{"name":"pincman","alias":"pincman","url":"https://github.com/pincman","imageURL":"https://github.com/pincman.png","key":"pincman","page":null},{"name":"Redcamel","alias":"redcamel","url":"https://github.com/redcamel","imageURL":"https://github.com/redcamel.png","key":"redcamel","page":null},{"name":"Rein van Haaren","alias":"reinvanhaaren","url":"https://github.com/reinvanhaaren","imageURL":"https://github.com/reinvanhaaren.png","key":"reinvanhaaren","page":null},{"name":"Rudra Sen","alias":"RudraSen2","url":"https://github.com/RudraSen2","imageURL":"https://github.com/RudraSen2.png","key":"RudraSen2","page":null},{"name":"sado","alias":"sado0823","url":"https://github.com/sado0823","imageURL":"https://github.com/sado0823.png","key":"sado0823","page":null},{"name":"Dzung Do","alias":"saosangmo","url":"https://github.com/saosangmo","imageURL":"https://github.com/saosangmo.png","key":"saosangmo","page":null},{"name":"Dima Grossman","alias":"scopsy","url":"https://github.com/scopsy","imageURL":"https://github.com/scopsy.png","key":"scopsy","page":null},{"name":"SheetJSDev","alias":"SheetJSDev","url":"https://github.com/SheetJSDev","imageURL":"https://github.com/SheetJSDev.png","key":"SheetJSDev","page":null},{"name":"Joe Harrison","alias":"sigwinch28","url":"https://github.com/sigwinch28","imageURL":"https://github.com/sigwinch28.png","key":"sigwinch28","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Huy Nguyen","alias":"Smilefounder","url":"https://github.com/Smilefounder","imageURL":"https://github.com/Smilefounder.png","key":"Smilefounder","page":null},{"name":"Steven Serrata","alias":"sserrata","url":"https://github.com/sserrata","imageURL":"https://github.com/sserrata.png","key":"sserrata","page":null},{"name":"Szil\xe1rd D\xf3r\xf3","alias":"szilarddoro","url":"https://github.com/szilarddoro","imageURL":"https://github.com/szilarddoro.png","key":"szilarddoro","page":null},{"name":"Le Thi Van","alias":"vannyle","url":"https://github.com/vannyle","imageURL":"https://github.com/vannyle.png","key":"vannyle","page":null},{"name":"Webber Takken","alias":"webbertakken","url":"https://github.com/webbertakken","imageURL":"https://github.com/webbertakken.png","key":"webbertakken","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null},{"name":"Paul O\u2019Shannessy","alias":"zpao","url":"https://github.com/zpao","imageURL":"https://github.com/zpao.png","key":"zpao","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-07-08T20:00","authors":["201flaviosilva","7Wate","AkagiYui","alewolf","alexandernst","Altomy","anaclumos","bcabanes","BenDMyers","Boulet-","cbebe","clemiee","datlechin","DharsanB","dht","difranca","dpang314","emattia","forresst","Gary50613","ghostsquad","HyunseungLee-Travis","JeremyDolle","johnie","johnnyreilly","Josh-Cena","jpdriver","jqshuv","kursatsmsek","lanegoolsby","lex111","matkoch","metal-young","mrazauskas","pincman","redcamel","reinvanhaaren","RudraSen2","sado0823","saosangmo","scopsy","SheetJSDev","sigwinch28","slorber","Smilefounder","sserrata","szilarddoro","vannyle","webbertakken","yangshun","zpao"]},"unlisted":false,"prevItem":{"title":"2.0.0-rc.1","permalink":"/changelog/2.0.0-rc.1"},"nextItem":{"title":"2.0.0-beta.21","permalink":"/changelog/2.0.0-beta.21"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-theme-classic`\\n - [#7740](https://github.com/facebook/docusaurus/pull/7740) refactor(theme): nest theme icons under subfolder @theme/Icon/\\\\* ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7716](https://github.com/facebook/docusaurus/pull/7716) refactor(theme): split BlogPostItem into smaller theme subcomponents ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`\\n - [#7660](https://github.com/facebook/docusaurus/pull/7660) refactor(theme-common): split package into public/internal API entrypoints ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7644](https://github.com/facebook/docusaurus/pull/7644) refactor(docs,theme): split DocItem comp, useDoc hook ([@slorber](https://github.com/slorber))\\n- `docusaurus-logger`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#7642](https://github.com/facebook/docusaurus/pull/7642) refactor: remove \\"error\\" reporting level, move reportMessage to logger ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-utils-validation`, `docusaurus`\\n - [#7152](https://github.com/facebook/docusaurus/pull/7152) refactor: handle all admonitions via JSX component ([@lex111](https://github.com/lex111))\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-translations`\\n - [#7732](https://github.com/facebook/docusaurus/pull/7732) feat(theme-translations): Dutch translation ([@reinvanhaaren](https://github.com/reinvanhaaren))\\n - [#7715](https://github.com/facebook/docusaurus/pull/7715) feat(theme-translations): Swedish translation ([@johnie](https://github.com/johnie))\\n- `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`\\n - [#7666](https://github.com/facebook/docusaurus/pull/7666) feat(algolia-search): allow translating search modal ([@forresst](https://github.com/forresst))\\n- `create-docusaurus`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7643](https://github.com/facebook/docusaurus/pull/7643) feat(theme-classic): themeConfig navbar/footer logos accept className/style + update Meta Open-Source Logo ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`\\n - [#7649](https://github.com/facebook/docusaurus/pull/7649) feat(client-redirects): make plugin respect onDuplicateRoutes config ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#7624](https://github.com/facebook/docusaurus/pull/7624) feat: allow customizing localization path of each locale ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#7581](https://github.com/facebook/docusaurus/pull/7581) feat(core): allow opting out of HTML minification ([@alexandernst](https://github.com/alexandernst))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7557](https://github.com/facebook/docusaurus/pull/7557) feat: allow specifying custom target for FooterLogo ([@vannyle](https://github.com/vannyle))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`\\n - [#7556](https://github.com/facebook/docusaurus/pull/7556) feat: add admonition type title translations ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#7386](https://github.com/facebook/docusaurus/pull/7386) feat(core): allow customizing the i18n directory path ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-live-codeblock`\\n - [#7514](https://github.com/facebook/docusaurus/pull/7514) feat(live-codeblock): add support for noInline to interactive code blocks ([@jpdriver](https://github.com/jpdriver))\\n- `docusaurus-plugin-content-docs`\\n - [#7461](https://github.com/facebook/docusaurus/pull/7461) feat(content-docs): last_update front matter ([@dpang314](https://github.com/dpang314))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#7727](https://github.com/facebook/docusaurus/pull/7727) fix(theme): show blog post edit link even when no tag & not truncated ([@anaclumos](https://github.com/anaclumos))\\n - [#7659](https://github.com/facebook/docusaurus/pull/7659) fix(theme-classic): expose empty string alt text in navbar logos ([@BenDMyers](https://github.com/BenDMyers))\\n - [#7595](https://github.com/facebook/docusaurus/pull/7595) fix(content-pages): add article wrapper around MDXContent ([@matkoch](https://github.com/matkoch))\\n- `docusaurus-theme-translations`\\n - [#7694](https://github.com/facebook/docusaurus/pull/7694) fix(theme-translations): typo in vi locale ([@saosangmo](https://github.com/saosangmo))\\n- `docusaurus-plugin-content-docs`\\n - [#7638](https://github.com/facebook/docusaurus/pull/7638) fix(docs): forward doc frontMatter.sidebar_custom_props to linking sidebar category ([@slorber](https://github.com/slorber))\\n - [#7634](https://github.com/facebook/docusaurus/pull/7634) fix(content-docs): allow translating doc labels in sidebars.js ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-utils`\\n - [#7604](https://github.com/facebook/docusaurus/pull/7604) fix(utils): allow any non-boundary characters in Markdown heading ID ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-cssnano-preset`\\n - [#7593](https://github.com/facebook/docusaurus/pull/7593) fix(cssnano-preset): disable z-index minification ([@dpang314](https://github.com/dpang314))\\n- `docusaurus-theme-common`\\n - [#7551](https://github.com/facebook/docusaurus/pull/7551) fix(theme-classic): code block wrap mode should allow wrapping in the middle of a word ([@slorber](https://github.com/slorber))\\n - [#7485](https://github.com/facebook/docusaurus/pull/7485) fix(theme-classic): inconsistent code block wrapping ([@dpang314](https://github.com/dpang314))\\n- `docusaurus-mdx-loader`, `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus-utils`\\n - [#7521](https://github.com/facebook/docusaurus/pull/7521) fix: make type-checking work in Yarn PnP ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-translations`\\n - [#7696](https://github.com/facebook/docusaurus/pull/7696) fix(theme-translations): improve grammar of zh translation ([@AkagiYui](https://github.com/AkagiYui))\\n - [#7691](https://github.com/facebook/docusaurus/pull/7691) chore(theme-translations): complete vi translations ([@datlechin](https://github.com/datlechin))\\n - [#7683](https://github.com/facebook/docusaurus/pull/7683) chore(theme-translations): complete ar translations ([@Altomy](https://github.com/Altomy))\\n - [#7633](https://github.com/facebook/docusaurus/pull/7633) chore(theme-translations): complete ko translations ([@HyunseungLee-Travis](https://github.com/HyunseungLee-Travis))\\n- `docusaurus`\\n - [#7702](https://github.com/facebook/docusaurus/pull/7702) feat(deploy): copy local git config to tmp repo ([@ghostsquad](https://github.com/ghostsquad))\\n - [#7600](https://github.com/facebook/docusaurus/pull/7600) fix: force refresh on chunk preload error ([@yangshun](https://github.com/yangshun))\\n- `docusaurus-plugin-content-docs`\\n - [#7673](https://github.com/facebook/docusaurus/pull/7673) fix(content-docs): format last update date as \\"Jun 19, 2020\\" ([@sigwinch28](https://github.com/sigwinch28))\\n- `docusaurus-theme-common`, `docusaurus-theme-search-algolia`\\n - [#7671](https://github.com/facebook/docusaurus/pull/7671) refactor(theme-common): rename useDynamicCallback to useEvent ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-common`\\n - [#7648](https://github.com/facebook/docusaurus/pull/7648) fix(theme-common): make useShallowMemoObject key-order-insensitive ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#7639](https://github.com/facebook/docusaurus/pull/7639) chore(create): update the facebook template with current assets ([@zpao](https://github.com/zpao))\\n - [#7520](https://github.com/facebook/docusaurus/pull/7520) feat: add engines field to templates\' package.json ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus`\\n - [#7579](https://github.com/facebook/docusaurus/pull/7579) refactor(pwa): simplify registerSW code, fix ESLint errors ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`\\n - [#7545](https://github.com/facebook/docusaurus/pull/7545) feat(analytics): allow query/hash changes to be sent to GA ([@lanegoolsby](https://github.com/lanegoolsby))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#7739](https://github.com/facebook/docusaurus/pull/7739) docs: swizzle react-live with eject ([@SheetJSDev](https://github.com/SheetJSDev))\\n - [#7723](https://github.com/facebook/docusaurus/pull/7723) docs: add GitHub pages deployment troubleshooting guide ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7705](https://github.com/facebook/docusaurus/pull/7705) docs: mention MDXContent ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7675](https://github.com/facebook/docusaurus/pull/7675) docs: add docusaurus-openapi-docs to resources ([@sserrata](https://github.com/sserrata))\\n - [#7677](https://github.com/facebook/docusaurus/pull/7677) docs: add more info on github cross repo deployment ([@bcabanes](https://github.com/bcabanes))\\n - [#7563](https://github.com/facebook/docusaurus/pull/7563) docs: add awesome-docusaurus resource ([@webbertakken](https://github.com/webbertakken))\\n - [#7665](https://github.com/facebook/docusaurus/pull/7665) docs: add link from every category index page to the guide page ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7519](https://github.com/facebook/docusaurus/pull/7519) docs: multiple documentation elaborations ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7518](https://github.com/facebook/docusaurus/pull/7518) docs: remove useless front matter ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7512](https://github.com/facebook/docusaurus/pull/7512) docs: update Kent C. Dodds Twitter avatar ([@DharsanB](https://github.com/DharsanB))\\n- `create-docusaurus`\\n - [#7611](https://github.com/facebook/docusaurus/pull/7611) docs: advise using Node 18 in deployment ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7582](https://github.com/facebook/docusaurus/pull/7582) docs: make localhost links clickable ([@dht](https://github.com/dht))\\n- `docusaurus-plugin-client-redirects`\\n - [#7607](https://github.com/facebook/docusaurus/pull/7607) refactor(client-redirects): elaborate documentation, minor refactor ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :wrench: Maintenance\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7676](https://github.com/facebook/docusaurus/pull/7676) refactor(theme): move LayoutProviders to Layout/Provider; composeProviders util ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#7674](https://github.com/facebook/docusaurus/pull/7674) chore: prevent importing theme components with relative paths ([@slorber](https://github.com/slorber))\\n - [#7664](https://github.com/facebook/docusaurus/pull/7664) chore: upgrade Infima to alpha.40 ([@slorber](https://github.com/slorber))\\n- Other\\n - [#7663](https://github.com/facebook/docusaurus/pull/7663) misc: share .vscode/extensions.json ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#7583](https://github.com/facebook/docusaurus/pull/7583) refactor(cli): make the CLI an even thinner wrapper around command functions ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7547](https://github.com/facebook/docusaurus/pull/7547) chore: update static-site-generator-webpack-plugin ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`, `stylelint-copyright`\\n - [#7586](https://github.com/facebook/docusaurus/pull/7586) chore: upgrade to TS 4.7, compile with NodeNext ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 51\\n\\n- 7Wate ([@7Wate](https://github.com/7Wate))\\n- Ahmed Altomy ([@Altomy](https://github.com/Altomy))\\n- Alexander Nestorov ([@alexandernst](https://github.com/alexandernst))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Ben Myers ([@BenDMyers](https://github.com/BenDMyers))\\n- Benjamin Cabanes ([@bcabanes](https://github.com/bcabanes))\\n- Boulet ([@Boulet-](https://github.com/Boulet-))\\n- Charles Ancheta ([@cbebe](https://github.com/cbebe))\\n- Clemie McCartney ([@clemiee](https://github.com/clemiee))\\n- DOLLE ([@JeremyDolle](https://github.com/JeremyDolle))\\n- Dharsan B ([@DharsanB](https://github.com/DharsanB))\\n- Diego Fran\xe7a ([@difranca](https://github.com/difranca))\\n- Dima Grossman ([@scopsy](https://github.com/scopsy))\\n- Dzung Do ([@saosangmo](https://github.com/saosangmo))\\n- Fl\xe1vio Silva ([@201flaviosilva](https://github.com/201flaviosilva))\\n- Forresst ([@forresst](https://github.com/forresst))\\n- Huy Nguyen ([@Smilefounder](https://github.com/Smilefounder))\\n- Hyunseung Lee ([@HyunseungLee-Travis](https://github.com/HyunseungLee-Travis))\\n- JP ([@jpdriver](https://github.com/jpdriver))\\n- Joe Harrison ([@sigwinch28](https://github.com/sigwinch28))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Johnie Hjelm ([@johnie](https://github.com/johnie))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Joshua Schmitt ([@jqshuv](https://github.com/jqshuv))\\n- K\xfcr\u015Fat \u015Eim\u015Fek ([@kursatsmsek](https://github.com/kursatsmsek))\\n- Lane Goolsby ([@lanegoolsby](https://github.com/lanegoolsby))\\n- Le Thi Van ([@vannyle](https://github.com/vannyle))\\n- Matthias Koch ([@matkoch](https://github.com/matkoch))\\n- Ng\xf4 Qu\u1ED1c \u0110\u1EA1t ([@datlechin](https://github.com/datlechin))\\n- Paul O\u2019Shannessy ([@zpao](https://github.com/zpao))\\n- Redcamel ([@redcamel](https://github.com/redcamel))\\n- Rein van Haaren ([@reinvanhaaren](https://github.com/reinvanhaaren))\\n- Rudra Sen ([@RudraSen2](https://github.com/RudraSen2))\\n- Steven Serrata ([@sserrata](https://github.com/sserrata))\\n- Sunghyun Cho ([@anaclumos](https://github.com/anaclumos))\\n- Szil\xe1rd D\xf3r\xf3 ([@szilarddoro](https://github.com/szilarddoro))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tom Mrazauskas ([@mrazauskas](https://github.com/mrazauskas))\\n- Webber Takken ([@webbertakken](https://github.com/webbertakken))\\n- Wes McNamee ([@ghostsquad](https://github.com/ghostsquad))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- [@SheetJSDev](https://github.com/SheetJSDev)\\n- [@alewolf](https://github.com/alewolf)\\n- [@dpang314](https://github.com/dpang314)\\n- dht ([@dht](https://github.com/dht))\\n- emattia ([@emattia](https://github.com/emattia))\\n- pincman ([@pincman](https://github.com/pincman))\\n- sado ([@sado0823](https://github.com/sado0823))\\n- \u51F1\u6069 Kane ([@Gary50613](https://github.com/Gary50613))\\n- \u674E\u5C0F\u96E8 ([@metal-young](https://github.com/metal-young))\\n- \u8D64\u57CE\u7ED3\u8863 ([@AkagiYui](https://github.com/AkagiYui))"},{"id":"/2.0.0-beta.21","metadata":{"permalink":"/changelog/2.0.0-beta.21","source":"@site/changelog/source/2.0.0-beta.21.md","title":"2.0.0-beta.21","description":"Breaking Change","date":"2022-05-27T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Benjamin Diolez","alias":"BenDz","url":"https://github.com/BenDz","imageURL":"https://github.com/BenDz.png","key":"BenDz","page":null},{"name":"Charles Korn","alias":"charleskorn","url":"https://github.com/charleskorn","imageURL":"https://github.com/charleskorn.png","key":"charleskorn","page":null},{"name":"Ng\xf4 Qu\u1ED1c \u0110\u1EA1t","alias":"datlechin","url":"https://github.com/datlechin","imageURL":"https://github.com/datlechin.png","key":"datlechin","page":null},{"name":"Designatory","alias":"Designatory","url":"https://github.com/Designatory","imageURL":"https://github.com/Designatory.png","key":"Designatory","page":null},{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},{"name":"\u51F1\u6069 Kane","alias":"Gary50613","url":"https://github.com/Gary50613","imageURL":"https://github.com/Gary50613.png","key":"Gary50613","page":null},{"name":"Ggicci","alias":"ggicci","url":"https://github.com/ggicci","imageURL":"https://github.com/ggicci.png","key":"ggicci","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Jan Peer St\xf6cklmair","alias":"JPeer264","url":"https://github.com/JPeer264","imageURL":"https://github.com/JPeer264.png","key":"JPeer264","page":null},{"name":"Jeremy","alias":"jrmyw92","url":"https://github.com/jrmyw92","imageURL":"https://github.com/jrmyw92.png","key":"jrmyw92","page":null},{"name":"Junjie","alias":"junjieweb","url":"https://github.com/junjieweb","imageURL":"https://github.com/junjieweb.png","key":"junjieweb","page":null},{"name":"Lane Goolsby","alias":"lanegoolsby","url":"https://github.com/lanegoolsby","imageURL":"https://github.com/lanegoolsby.png","key":"lanegoolsby","page":null},{"name":"Massoud Maboudi","alias":"massoudmaboudi","url":"https://github.com/massoudmaboudi","imageURL":"https://github.com/massoudmaboudi.png","key":"massoudmaboudi","page":null},{"name":"Matthias Koch","alias":"matkoch","url":"https://github.com/matkoch","imageURL":"https://github.com/matkoch.png","key":"matkoch","page":null},{"name":"Akara","alias":"Messiahhh","url":"https://github.com/Messiahhh","imageURL":"https://github.com/Messiahhh.png","key":"Messiahhh","page":null},{"name":"Michael Hughes","alias":"mhughes2k","url":"https://github.com/mhughes2k","imageURL":"https://github.com/mhughes2k.png","key":"mhughes2k","page":null},{"name":"Nitya Narasimhan","alias":"nitya","url":"https://github.com/nitya","imageURL":"https://github.com/nitya.png","key":"nitya","page":null},{"name":"Oluwatobi Sofela","alias":"oluwatobiss","url":"https://github.com/oluwatobiss","imageURL":"https://github.com/oluwatobiss.png","key":"oluwatobiss","page":null},{"name":"Ori Shalom","alias":"ori-shalom","url":"https://github.com/ori-shalom","imageURL":"https://github.com/ori-shalom.png","key":"ori-shalom","page":null},{"name":"Pranab Das","alias":"pranabdas","url":"https://github.com/pranabdas","imageURL":"https://github.com/pranabdas.png","key":"pranabdas","page":null},{"name":"Rui Peres","alias":"RuiAAPeres","url":"https://github.com/RuiAAPeres","imageURL":"https://github.com/RuiAAPeres.png","key":"RuiAAPeres","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"James","alias":"Zamiell","url":"https://github.com/Zamiell","imageURL":"https://github.com/Zamiell.png","key":"Zamiell","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-05-27T20:00","authors":["BenDz","charleskorn","datlechin","Designatory","forresst","Gary50613","ggicci","Josh-Cena","JPeer264","jrmyw92","junjieweb","lanegoolsby","massoudmaboudi","matkoch","Messiahhh","mhughes2k","nitya","oluwatobiss","ori-shalom","pranabdas","RuiAAPeres","slorber","Zamiell"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.22","permalink":"/changelog/2.0.0-beta.22"},"nextItem":{"title":"2.0.0-beta.20","permalink":"/changelog/2.0.0-beta.20"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-plugin-pwa`\\n - [#7422](https://github.com/facebook/docusaurus/pull/7422) refactor(pwa): remove reloadPopup option in favor of swizzling ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`\\n - [#7501](https://github.com/facebook/docusaurus/pull/7501) chore: require Node 16.14 ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-sitemap`\\n - [#7469](https://github.com/facebook/docusaurus/pull/7469) feat(sitemap): allow customizing the output name ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-utils`, `docusaurus`\\n - [#7371](https://github.com/facebook/docusaurus/pull/7371) feat(core): support docusaurus.config.cjs as default file name ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#7500](https://github.com/facebook/docusaurus/pull/7500) feat: make docusaurus serve automatically open in browser ([@Zamiell](https://github.com/Zamiell))\\n - [#7452](https://github.com/facebook/docusaurus/pull/7452) feat: add --no-minify flag to docusaurus start ([@lanegoolsby](https://github.com/lanegoolsby))\\n- `docusaurus-theme-classic`\\n - [#7357](https://github.com/facebook/docusaurus/pull/7357) feat(theme-classic): allow className as option for type: \\"search\\" ([@JPeer264](https://github.com/JPeer264))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#7362](https://github.com/facebook/docusaurus/pull/7362) fix: always emit SEO title + og:title meta ([@charleskorn](https://github.com/charleskorn))\\n - [#7453](https://github.com/facebook/docusaurus/pull/7453) fix(core): avoid using logger and fs.readJSON in SSR ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7369](https://github.com/facebook/docusaurus/pull/7369) fix(cli): output correct path when swizzling bare-file component in subfolder ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7360](https://github.com/facebook/docusaurus/pull/7360) fix(core): allow githubPort in config validation ([@mhughes2k](https://github.com/mhughes2k))\\n- `docusaurus-plugin-google-gtag`\\n - [#7424](https://github.com/facebook/docusaurus/pull/7424) fix(gtag): send the newly rendered page\'s title instead of the old one\'s ([@ori-shalom](https://github.com/ori-shalom))\\n- `create-docusaurus`, `docusaurus-utils`\\n - [#7507](https://github.com/facebook/docusaurus/pull/7507) fix(create-docusaurus): potential security issue with command injection ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus`\\n - [#7492](https://github.com/facebook/docusaurus/pull/7492) fix(core): always treat error boundary fallback as a callback ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#7438](https://github.com/facebook/docusaurus/pull/7438) fix(theme-classic): allow nested task lists to preserve the indent ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7430](https://github.com/facebook/docusaurus/pull/7430) fix(theme-classic): consistently apply the right active class name for all navbar items ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7411](https://github.com/facebook/docusaurus/pull/7411) fix(theme-classic): autocollapse sidebar categories when navigating with paginator ([@pranabdas](https://github.com/pranabdas))\\n - [#7363](https://github.com/facebook/docusaurus/pull/7363) fix(theme-classic): resolve customCss from site dir ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-utils`\\n - [#7464](https://github.com/facebook/docusaurus/pull/7464) fix(utils): fix Markdown link replacement when link text is same as href ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7458](https://github.com/facebook/docusaurus/pull/7458) fix(utils): avoid replacing Markdown links missing the directly next link ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`\\n - [#7392](https://github.com/facebook/docusaurus/pull/7392) fix(mdx-loader): use React.Fragment as fragment factory ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`\\n - [#7385](https://github.com/facebook/docusaurus/pull/7385) fix(content-docs): restore functionality when a category only has index page ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-translations`\\n - [#7493](https://github.com/facebook/docusaurus/pull/7493) chore(theme-translations): complete French translations ([@forresst](https://github.com/forresst))\\n - [#7474](https://github.com/facebook/docusaurus/pull/7474) chore(theme-translations): complete zh translations ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7400](https://github.com/facebook/docusaurus/pull/7400) chore(theme-translations): complete Farsi translations ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n- `docusaurus`\\n - [#7499](https://github.com/facebook/docusaurus/pull/7499) fix: avoid printing period after localhost URL ([@Zamiell](https://github.com/Zamiell))\\n- `create-docusaurus`\\n - [#7374](https://github.com/facebook/docusaurus/pull/7374) refactor(create): clean up logic when prompting for unspecified arguments ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :memo: Documentation\\n\\n- [#7503](https://github.com/facebook/docusaurus/pull/7503) docs: document MDXComponents scope ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#7497](https://github.com/facebook/docusaurus/pull/7497) docs: link every reference of types in API table to the type definition ([@Zamiell](https://github.com/Zamiell))\\n- [#7407](https://github.com/facebook/docusaurus/pull/7407) docs: add Azure SWA as deployment option ([@nitya](https://github.com/nitya))\\n- [#7390](https://github.com/facebook/docusaurus/pull/7390) fix(website): use react-lite-youtube-embed for lazy YouTube video ([@matkoch](https://github.com/matkoch))\\n\\n## :wrench: Maintenance\\n\\n- `create-docusaurus`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`, `stylelint-copyright`\\n - [#7477](https://github.com/facebook/docusaurus/pull/7477) refactor: fix a lot of errors in type-aware linting ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-translations`\\n - [#7447](https://github.com/facebook/docusaurus/pull/7447) refactor(theme-classic): migrate to tsc for build ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `stylelint-copyright`\\n - [#7441](https://github.com/facebook/docusaurus/pull/7441) refactor(stylelint-copyright): migrate to TS ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-cssnano-preset`\\n - [#7440](https://github.com/facebook/docusaurus/pull/7440) refactor(cssnano-preset): migrate to TS ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`\\n - [#7437](https://github.com/facebook/docusaurus/pull/7437) refactor: use TS project references instead of running tsc multiple times ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-pwa`\\n - [#7421](https://github.com/facebook/docusaurus/pull/7421) refactor(pwa): migrate client modules to TS ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#7415](https://github.com/facebook/docusaurus/pull/7415) refactor(theme-classic): always collocate stylesheets with components in one folder ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#7405](https://github.com/facebook/docusaurus/pull/7405) refactor(core): properly code-split NotFound page ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 23\\n\\n- Akara ([@Messiahhh](https://github.com/Messiahhh))\\n- Benjamin Diolez ([@BenDz](https://github.com/BenDz))\\n- Charles Korn ([@charleskorn](https://github.com/charleskorn))\\n- Designatory ([@Designatory](https://github.com/Designatory))\\n- Forresst ([@forresst](https://github.com/forresst))\\n- Ggicci ([@ggicci](https://github.com/ggicci))\\n- James ([@Zamiell](https://github.com/Zamiell))\\n- Jan Peer St\xf6cklmair ([@JPeer264](https://github.com/JPeer264))\\n- Jeremy ([@jrmyw92](https://github.com/jrmyw92))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Junjie ([@junjieweb](https://github.com/junjieweb))\\n- Lane Goolsby ([@lanegoolsby](https://github.com/lanegoolsby))\\n- Massoud Maboudi ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n- Matthias Koch ([@matkoch](https://github.com/matkoch))\\n- Michael Hughes ([@mhughes2k](https://github.com/mhughes2k))\\n- Ng\xf4 Qu\u1ED1c \u0110\u1EA1t ([@datlechin](https://github.com/datlechin))\\n- Nitya Narasimhan ([@nitya](https://github.com/nitya))\\n- Oluwatobi Sofela ([@oluwatobiss](https://github.com/oluwatobiss))\\n- Ori Shalom ([@ori-shalom](https://github.com/ori-shalom))\\n- Pranab Das ([@pranabdas](https://github.com/pranabdas))\\n- Rui Peres ([@RuiAAPeres](https://github.com/RuiAAPeres))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- \u51F1\u6069 Kane ([@Gary50613](https://github.com/Gary50613))"},{"id":"/2.0.0-beta.20","metadata":{"permalink":"/changelog/2.0.0-beta.20","source":"@site/changelog/source/2.0.0-beta.20.md","title":"2.0.0-beta.20","description":"Bug Fix","date":"2022-05-05T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Steven Hicks","alias":"pepopowitz","url":"https://github.com/pepopowitz","imageURL":"https://github.com/pepopowitz.png","key":"pepopowitz","page":null},{"name":"Reece Dunham","alias":"RDIL","url":"https://github.com/RDIL","imageURL":"https://github.com/RDIL.png","key":"RDIL","page":null},{"name":"Sergey Gromkov","alias":"sgromkov","url":"https://github.com/sgromkov","imageURL":"https://github.com/sgromkov.png","key":"sgromkov","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-05-05T20:00","authors":["Josh-Cena","lex111","pepopowitz","RDIL","sgromkov","slorber"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.21","permalink":"/changelog/2.0.0-beta.21"},"nextItem":{"title":"2.0.0-beta.19","permalink":"/changelog/2.0.0-beta.19"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#7342](https://github.com/facebook/docusaurus/pull/7342) fix: avoid flash of page scrolling to top on refresh ([@slorber](https://github.com/slorber))\\n - [#7329](https://github.com/facebook/docusaurus/pull/7329) fix(core): inject docusaurus version into SSR as local ([@RDIL](https://github.com/RDIL))\\n- `docusaurus-theme-classic`\\n - [#7341](https://github.com/facebook/docusaurus/pull/7341) fix(theme-classic): properly highlight code block line numbers ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :memo: Documentation\\n\\n- [#7334](https://github.com/facebook/docusaurus/pull/7334) feat(website): make canary release page display actual canary version name ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#7343](https://github.com/facebook/docusaurus/pull/7343) docs: add page for create-docusaurus API documentation ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#7340](https://github.com/facebook/docusaurus/pull/7340) docs: add Yandex Metrika plugin to community plugins ([@sgromkov](https://github.com/sgromkov))\\n- [#7336](https://github.com/facebook/docusaurus/pull/7336) fix(website): fix multiple accessibility issues around color contrast ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#7327](https://github.com/facebook/docusaurus/pull/7327) docs: add clarity to versioning behavior ([@pepopowitz](https://github.com/pepopowitz))\\n\\n## Committers: 6\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Reece Dunham ([@RDIL](https://github.com/RDIL))\\n- Sergey Gromkov ([@sgromkov](https://github.com/sgromkov))\\n- Steven Hicks ([@pepopowitz](https://github.com/pepopowitz))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))"},{"id":"/2.0.0-beta.19","metadata":{"permalink":"/changelog/2.0.0-beta.19","source":"@site/changelog/source/2.0.0-beta.19.md","title":"2.0.0-beta.19","description":"New Feature","date":"2022-05-04T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Aaron Nwabuoku","alias":"aerovulpe","url":"https://github.com/aerovulpe","imageURL":"https://github.com/aerovulpe.png","key":"aerovulpe","page":null},{"name":"AkiraVoid","alias":"AkiraVoid","url":"https://github.com/AkiraVoid","imageURL":"https://github.com/AkiraVoid.png","key":"AkiraVoid","page":null},{"name":"Andrew Lyons","alias":"andrewnicols","url":"https://github.com/andrewnicols","imageURL":"https://github.com/andrewnicols.png","key":"andrewnicols","page":null},{"name":"apq","alias":"AntonPalmqvist","url":"https://github.com/AntonPalmqvist","imageURL":"https://github.com/AntonPalmqvist.png","key":"AntonPalmqvist","page":null},{"name":"ApsarasX","alias":"ApsarasX","url":"https://github.com/ApsarasX","imageURL":"https://github.com/ApsarasX.png","key":"ApsarasX","page":null},{"name":"chelproc","alias":"chelproc","url":"https://github.com/chelproc","imageURL":"https://github.com/chelproc.png","key":"chelproc","page":null},{"name":"Viktor Chernodub","alias":"chernodub","url":"https://github.com/chernodub","imageURL":"https://github.com/chernodub.png","key":"chernodub","page":null},{"name":"curatorcat.pcc.eth","alias":"CuratorCat","url":"https://github.com/CuratorCat","imageURL":"https://github.com/CuratorCat.png","key":"CuratorCat","page":null},{"name":"Cwen Yin","alias":"cwen0","url":"https://github.com/cwen0","imageURL":"https://github.com/cwen0.png","key":"cwen0","page":null},{"name":"Fusang\u2740","alias":"cxOrz","url":"https://github.com/cxOrz","imageURL":"https://github.com/cxOrz.png","key":"cxOrz","page":null},{"name":"Dan Roscigno","alias":"DanRoscigno","url":"https://github.com/DanRoscigno","imageURL":"https://github.com/DanRoscigno.png","key":"DanRoscigno","page":null},{"name":"Andrei Canta","alias":"deiucanta","url":"https://github.com/deiucanta","imageURL":"https://github.com/deiucanta.png","key":"deiucanta","page":null},{"name":"deployn","alias":"deployn","url":"https://github.com/deployn","imageURL":"https://github.com/deployn.png","key":"deployn","page":null},{"name":"Dr-Electron","alias":"Dr-Electron","url":"https://github.com/Dr-Electron","imageURL":"https://github.com/Dr-Electron.png","key":"Dr-Electron","page":null},{"name":"Chinazaekpere Ngubo","alias":"dr-ngubo","url":"https://github.com/dr-ngubo","imageURL":"https://github.com/dr-ngubo.png","key":"dr-ngubo","page":null},{"name":"duanwilliam","alias":"duanwilliam","url":"https://github.com/duanwilliam","imageURL":"https://github.com/duanwilliam.png","key":"duanwilliam","page":null},{"name":"Elias Papavasileiou","alias":"elias-pap","url":"https://github.com/elias-pap","imageURL":"https://github.com/elias-pap.png","key":"elias-pap","page":null},{"name":"Indermohan Singh","alias":"imsingh","url":"https://github.com/imsingh","imageURL":"https://github.com/imsingh.png","key":"imsingh","page":null},{"name":"Jeffrey Aven","alias":"jeffreyaven","url":"https://github.com/jeffreyaven","imageURL":"https://github.com/jeffreyaven.png","key":"jeffreyaven","page":null},{"name":"Jody Heavener","alias":"jodyheavener","url":"https://github.com/jodyheavener","imageURL":"https://github.com/jodyheavener.png","key":"jodyheavener","page":null},{"name":"JMW","alias":"JohnnyMcWeed","url":"https://github.com/JohnnyMcWeed","imageURL":"https://github.com/JohnnyMcWeed.png","key":"JohnnyMcWeed","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Kayce Basques","alias":"kaycebasques","url":"https://github.com/kaycebasques","imageURL":"https://github.com/kaycebasques.png","key":"kaycebasques","page":null},{"name":"kgolubic","alias":"kgolubic","url":"https://github.com/kgolubic","imageURL":"https://github.com/kgolubic.png","key":"kgolubic","page":null},{"name":"loic","alias":"layerzzzio","url":"https://github.com/layerzzzio","imageURL":"https://github.com/layerzzzio.png","key":"layerzzzio","page":null},{"name":"Leedom","alias":"leedom92","url":"https://github.com/leedom92","imageURL":"https://github.com/leedom92.png","key":"leedom92","page":null},{"name":"Martin Blom","alias":"LeviticusMB","url":"https://github.com/LeviticusMB","imageURL":"https://github.com/LeviticusMB.png","key":"LeviticusMB","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Lukas Bach","alias":"lukasbach","url":"https://github.com/lukasbach","imageURL":"https://github.com/lukasbach.png","key":"lukasbach","page":null},{"name":"Karl Ward","alias":"mjau-mjau","url":"https://github.com/mjau-mjau","imageURL":"https://github.com/mjau-mjau.png","key":"mjau-mjau","page":null},{"name":"mehdim","alias":"mxhdx","url":"https://github.com/mxhdx","imageURL":"https://github.com/mxhdx.png","key":"mxhdx","page":null},{"name":"Chau Tran","alias":"nartc","url":"https://github.com/nartc","imageURL":"https://github.com/nartc.png","key":"nartc","page":null},{"name":"Naveen","alias":"naveensrinivasan","url":"https://github.com/naveensrinivasan","imageURL":"https://github.com/naveensrinivasan.png","key":"naveensrinivasan","page":null},{"name":"Pablo Cordon","alias":"pcordon","url":"https://github.com/pcordon","imageURL":"https://github.com/pcordon.png","key":"pcordon","page":null},{"name":"Lenz Weber-Tronic","alias":"phryneas","url":"https://github.com/phryneas","imageURL":"https://github.com/phryneas.png","key":"phryneas","page":null},{"name":"Pierre-Gilles Leymarie","alias":"Pierre-Gilles","url":"https://github.com/Pierre-Gilles","imageURL":"https://github.com/Pierre-Gilles.png","key":"Pierre-Gilles","page":null},{"name":"redhat123456","alias":"redhat123456","url":"https://github.com/redhat123456","imageURL":"https://github.com/redhat123456.png","key":"redhat123456","page":null},{"name":"rev","alias":"rev4324","url":"https://github.com/rev4324","imageURL":"https://github.com/rev4324.png","key":"rev4324","page":null},{"name":"Zac A","alias":"sandypockets","url":"https://github.com/sandypockets","imageURL":"https://github.com/sandypockets.png","key":"sandypockets","page":null},{"name":"czhen","alias":"shczhen","url":"https://github.com/shczhen","imageURL":"https://github.com/shczhen.png","key":"shczhen","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Evan","alias":"sulu5890","url":"https://github.com/sulu5890","imageURL":"https://github.com/sulu5890.png","key":"sulu5890","page":null},{"name":"surendran82","alias":"surendran82","url":"https://github.com/surendran82","imageURL":"https://github.com/surendran82.png","key":"surendran82","page":null},{"name":"svix-ken","alias":"svix-ken","url":"https://github.com/svix-ken","imageURL":"https://github.com/svix-ken.png","key":"svix-ken","page":null},{"name":"sykp241095","alias":"sykp241095","url":"https://github.com/sykp241095","imageURL":"https://github.com/sykp241095.png","key":"sykp241095","page":null},{"name":"Qi Zhang","alias":"zzzhangqi","url":"https://github.com/zzzhangqi","imageURL":"https://github.com/zzzhangqi.png","key":"zzzhangqi","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-05-04T20:00","authors":["aerovulpe","AkiraVoid","andrewnicols","AntonPalmqvist","ApsarasX","chelproc","chernodub","CuratorCat","cwen0","cxOrz","DanRoscigno","deiucanta","deployn","Dr-Electron","dr-ngubo","duanwilliam","elias-pap","imsingh","jeffreyaven","jodyheavener","JohnnyMcWeed","johnnyreilly","Josh-Cena","kaycebasques","kgolubic","layerzzzio","leedom92","LeviticusMB","lex111","lukasbach","mjau-mjau","mxhdx","nartc","naveensrinivasan","pcordon","phryneas","Pierre-Gilles","redhat123456","rev4324","sandypockets","shczhen","slorber","sulu5890","surendran82","svix-ken","sykp241095","zzzhangqi"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.20","permalink":"/changelog/2.0.0-beta.20"},"nextItem":{"title":"2.0.0-beta.18","permalink":"/changelog/2.0.0-beta.18"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7178](https://github.com/facebook/docusaurus/pull/7178) feat(theme-classic): extensible code block magic comment system ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7007](https://github.com/facebook/docusaurus/pull/7007) feat(theme-classic): code block showLineNumbers ([@lex111](https://github.com/lex111))\\n - [#7012](https://github.com/facebook/docusaurus/pull/7012) feat(theme-classic): show blog sidebar on mobile ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus`, `eslint-plugin`\\n - [#7206](https://github.com/facebook/docusaurus/pull/7206) feat: Docusaurus ESLint plugin to enforce best Docusaurus practices ([@elias-pap](https://github.com/elias-pap))\\n- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#6732](https://github.com/facebook/docusaurus/pull/6732) feat(core): rework client modules lifecycles, officially make API public ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#7231](https://github.com/facebook/docusaurus/pull/7231) feat: allow custom navbarItem types to pass through validation ([@slorber](https://github.com/slorber))\\n - [#7058](https://github.com/facebook/docusaurus/pull/7058) feat(theme-classic): new \'html\' type navbar item ([@lex111](https://github.com/lex111))\\n - [#7079](https://github.com/facebook/docusaurus/pull/7079) feat: allow using pure HTML as label in navbar links ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`\\n - [#7036](https://github.com/facebook/docusaurus/pull/7036) feat(theme-classic): toggle code wrap button ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6457](https://github.com/facebook/docusaurus/pull/6457) feat(content-docs): draft docs excluded from build & sidebars ([@jodyheavener](https://github.com/jodyheavener))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus`\\n - [#6430](https://github.com/facebook/docusaurus/pull/6430) feat: allow setting calendar for i18n date formatting ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus`\\n - [#7083](https://github.com/facebook/docusaurus/pull/7083) feat(core): fail-safe global data fetching ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`\\n - [#7106](https://github.com/facebook/docusaurus/pull/7106) feat(content-docs): make docs:version command work on localized docs ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-types`, `docusaurus`\\n - [#7082](https://github.com/facebook/docusaurus/pull/7082) feat(core): allow plugins to declare custom route context ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7124](https://github.com/facebook/docusaurus/pull/7124) feat(core): allow plugin/preset config to contain false/null ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-sitemap`, `docusaurus-utils`\\n - [#6979](https://github.com/facebook/docusaurus/pull/6979) feat(sitemap): add ignorePatterns option ([@ApsarasX](https://github.com/ApsarasX))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-types`, `docusaurus`\\n - [#7257](https://github.com/facebook/docusaurus/pull/7257) refactor: remove long-deprecated routesLoaded lifecycle ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7277](https://github.com/facebook/docusaurus/pull/7277) refactor(theme-classic): move all sidebar-related config under themeConfig.docs.sidebar ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#6732](https://github.com/facebook/docusaurus/pull/6732) feat(core): rework client modules lifecycles, officially make API public ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-theme-classic`\\n - [#7176](https://github.com/facebook/docusaurus/pull/7176) refactor: customize code block line highlight color via CSS var ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`\\n - [#7117](https://github.com/facebook/docusaurus/pull/7117) refactor(content-{blog,docs}): unify handling of tags ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#7027](https://github.com/facebook/docusaurus/pull/7027) refactor(content-docs): deduplicate types, JSDoc for some APIs ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#7304](https://github.com/facebook/docusaurus/pull/7304) fix(theme-classic): remove breadcrumb items without href from microdata ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7179](https://github.com/facebook/docusaurus/pull/7179) fix(theme-classic): do not add microdata item prop to trailing breadcrumb ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7173](https://github.com/facebook/docusaurus/pull/7173) fix(theme-classic): admonition title: disable text-transform on inline code blocks ([@chelproc](https://github.com/chelproc))\\n - [#7048](https://github.com/facebook/docusaurus/pull/7048) fix(theme-classic): add caret for dropdown on mobile ([@lex111](https://github.com/lex111))\\n - [#7025](https://github.com/facebook/docusaurus/pull/7025) fix: make docs page wrapper take full height ([@lex111](https://github.com/lex111))\\n - [#7013](https://github.com/facebook/docusaurus/pull/7013) fix(theme-classic): adjust shadow on code block ([@chernodub](https://github.com/chernodub))\\n - [#7015](https://github.com/facebook/docusaurus/pull/7015) fix(theme-classic): do not add caret for non-collapsible categories ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`\\n - [#7294](https://github.com/facebook/docusaurus/pull/7294) fix(\\\\*): make TypeScript realize that each plugin package has a default export ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#7285](https://github.com/facebook/docusaurus/pull/7285) fix(core): allow empty static directories ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7180](https://github.com/facebook/docusaurus/pull/7180) fix: pass pollOptions to webpack ([@JohnnyMcWeed](https://github.com/JohnnyMcWeed))\\n - [#7184](https://github.com/facebook/docusaurus/pull/7184) fix(core): prevent 404 when accessing /page.html ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7225](https://github.com/facebook/docusaurus/pull/7225) fix: allow swizzling a component\'s parent folder ([@slorber](https://github.com/slorber))\\n - [#7066](https://github.com/facebook/docusaurus/pull/7066) fix(core): all plugin lifecycles should receive translated content ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`\\n - [#7233](https://github.com/facebook/docusaurus/pull/7233) fix(content-docs): make category index text translatable ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-common`\\n - [#7200](https://github.com/facebook/docusaurus/pull/7200) fix(theme-common): do not persist color mode for OS-triggered changes ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7057](https://github.com/facebook/docusaurus/pull/7057) fix(theme-common): use native scrolling when smooth behavior set in CSS ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7033](https://github.com/facebook/docusaurus/pull/7033) fix(theme): only parse HTML- and JSX-style comments in MD code ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`\\n - [#7212](https://github.com/facebook/docusaurus/pull/7212) fix(content-blog): make footnote reference DOM ID unique on post listing page ([@AkiraVoid](https://github.com/AkiraVoid))\\n- `docusaurus-utils`, `docusaurus`\\n - [#7187](https://github.com/facebook/docusaurus/pull/7187) fix(core): handle case where package.json is not available at CWD ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-translations`\\n - [#7222](https://github.com/facebook/docusaurus/pull/7222) fix(theme-translations): fix invalid pluralization in cs ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7166](https://github.com/facebook/docusaurus/pull/7166) fix(theme-translations): always try all possible locale resolutions ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#7164](https://github.com/facebook/docusaurus/pull/7164) fix: adjust spacing for custom search properly ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-debug`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-types`, `docusaurus`\\n - [#7143](https://github.com/facebook/docusaurus/pull/7143) fix(sitemap): exclude pages with robots noindex from sitemap ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-types`\\n - [#7078](https://github.com/facebook/docusaurus/pull/7078) fix(create): install types for JS template as well ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-utils`\\n - [#7043](https://github.com/facebook/docusaurus/pull/7043) fix(utils): parse Markdown headings with CRLF line break ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils`, `docusaurus`\\n - [#7023](https://github.com/facebook/docusaurus/pull/7023) refactor: fix a few places of path handling ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-types`\\n - [#7014](https://github.com/facebook/docusaurus/pull/7014) fix(types): declare history and react-loadable as dependencies ([@sulu5890](https://github.com/sulu5890))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-translations`\\n - [#7299](https://github.com/facebook/docusaurus/pull/7299) refactor: minor improvements for breadcrumbs ([@lex111](https://github.com/lex111))\\n- `create-docusaurus`\\n - [#7290](https://github.com/facebook/docusaurus/pull/7290) refactor(create): add i18n config in init template ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7286](https://github.com/facebook/docusaurus/pull/7286) refactor(create): update screenshots in quick start tutorial ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7223](https://github.com/facebook/docusaurus/pull/7223) refactor: use generated-index in init templates ([@slorber](https://github.com/slorber))\\n - [#7118](https://github.com/facebook/docusaurus/pull/7118) refactor(create): mention that the edit links can be removed ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-debug`, `docusaurus-theme-classic`\\n - [#7306](https://github.com/facebook/docusaurus/pull/7306) chore: upgrade Infima to alpha.39 ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-debug`, `docusaurus-types`, `docusaurus`\\n - [#7291](https://github.com/facebook/docusaurus/pull/7291) feat(types): JSDoc for docusaurus config fields ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7267](https://github.com/facebook/docusaurus/pull/7267) fix(theme-common): allow details to not provide a summary ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7172](https://github.com/facebook/docusaurus/pull/7172) refactor: control base styling of code blocks via CSS vars ([@lex111](https://github.com/lex111))\\n - [#7129](https://github.com/facebook/docusaurus/pull/7129) refactor(theme-classic): fix a few margin inconsistencies ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#7248](https://github.com/facebook/docusaurus/pull/7248) refactor: normalize Markdown linkification behavior, elaborate in documentation ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#7244](https://github.com/facebook/docusaurus/pull/7244) refactor: semantic markup improvement, fix validation warnings ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7183](https://github.com/facebook/docusaurus/pull/7183) refactor: use SVG icon for home breadcrumb ([@Dr-Electron](https://github.com/Dr-Electron))\\n - [#7139](https://github.com/facebook/docusaurus/pull/7139) fix: proper spacing between generated card items on mobiles ([@lex111](https://github.com/lex111))\\n - [#7134](https://github.com/facebook/docusaurus/pull/7134) fix(theme-classic): fix docs sidebar layout shifts when expanding categories ([@slorber](https://github.com/slorber))\\n - [#7068](https://github.com/facebook/docusaurus/pull/7068) refactor(theme-classic): blog mobile secondary menu use consistent styles ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7004](https://github.com/facebook/docusaurus/pull/7004) fix(theme-classic): shrink title size on mobile ([@Pierre-Gilles](https://github.com/Pierre-Gilles))\\n- `docusaurus-theme-translations`\\n - [#7214](https://github.com/facebook/docusaurus/pull/7214) chore(theme-translations): complete Polish translations ([@rev4324](https://github.com/rev4324))\\n - [#7031](https://github.com/facebook/docusaurus/pull/7031) chore(theme-translations): complete German translations ([@deployn](https://github.com/deployn))\\n- `create-docusaurus`, `docusaurus-theme-classic`\\n - [#7176](https://github.com/facebook/docusaurus/pull/7176) refactor: customize code block line highlight color via CSS var ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#7218](https://github.com/facebook/docusaurus/pull/7218) fix(cli): always show error stack to unhandled rejection ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7142](https://github.com/facebook/docusaurus/pull/7142) refactor(core): lower timeout before rendering progress bar to 200ms ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7103](https://github.com/facebook/docusaurus/pull/7103) fix(core): preserve Interpolate children semantics ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7029](https://github.com/facebook/docusaurus/pull/7029) refactor: console output improvements ([@lex111](https://github.com/lex111))\\n - [#7017](https://github.com/facebook/docusaurus/pull/7017) refactor: remove copyright comment from swizzled components ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-preset-classic`, `docusaurus-theme-classic`\\n - [#7148](https://github.com/facebook/docusaurus/pull/7148) feat(preset-classic, content-docs/client): JSDoc ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-debug`, `docusaurus-preset-classic`\\n - [#7122](https://github.com/facebook/docusaurus/pull/7122) feat(preset-classic): exclude debug plugin routes from sitemap ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`\\n - [#7113](https://github.com/facebook/docusaurus/pull/7113) test: improve test coverage ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus`\\n - [#7080](https://github.com/facebook/docusaurus/pull/7080) refactor: replace non-prop interface with type; allow plugin lifecycles to have sync type ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-logger`, `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#7019](https://github.com/facebook/docusaurus/pull/7019) feat(logger): new \\"url\\" format, add double quotes around paths ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7006](https://github.com/facebook/docusaurus/pull/7006) refactor: split and cleanup theme/DocPage ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#7005](https://github.com/facebook/docusaurus/pull/7005) refactor: split DocSidebarItem by item type ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- `docusaurus-logger`\\n - [#7305](https://github.com/facebook/docusaurus/pull/7305) docs: update docs for logger, add API docs to website ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Other\\n - [#7284](https://github.com/facebook/docusaurus/pull/7284) docs: add a paragraph about SSR as an optimization technique ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7278](https://github.com/facebook/docusaurus/pull/7278) docs: enhance docs about Markdown TOC and metadata ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7271](https://github.com/facebook/docusaurus/pull/7271) docs: specify Node version requirement to a minor ([@DanRoscigno](https://github.com/DanRoscigno))\\n - [#7252](https://github.com/facebook/docusaurus/pull/7252) docs: update gtag docs to reflect what a GA4 tag looks like ([@johnnyreilly](https://github.com/johnnyreilly))\\n - [#7240](https://github.com/facebook/docusaurus/pull/7240) docs: add PCC Archive site to showcase ([@CuratorCat](https://github.com/CuratorCat))\\n - [#7239](https://github.com/facebook/docusaurus/pull/7239) docs: add Chaos mesh site to showcase ([@cwen0](https://github.com/cwen0))\\n - [#7235](https://github.com/facebook/docusaurus/pull/7235) docs: add TiDB community books to showcase ([@shczhen](https://github.com/shczhen))\\n - [#7236](https://github.com/facebook/docusaurus/pull/7236) docs: add documentation about pluralization ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7230](https://github.com/facebook/docusaurus/pull/7230) docs: add OSS Insight to showcase ([@sykp241095](https://github.com/sykp241095))\\n - [#7208](https://github.com/facebook/docusaurus/pull/7208) docs: remove mention of \\"template\\" from README installation guide ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7159](https://github.com/facebook/docusaurus/pull/7159) docs: explain more clearly the purpose of a ref sidebar type ([@andrewnicols](https://github.com/andrewnicols))\\n - [#7126](https://github.com/facebook/docusaurus/pull/7126) docs: multiple documentation improvements ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7123](https://github.com/facebook/docusaurus/pull/7123) refactor(showcase): enforce descriptions with maximum length of 120 characters ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7026](https://github.com/facebook/docusaurus/pull/7026) docs: correct plugin example filename ([@mxhdx](https://github.com/mxhdx))\\n - [#7110](https://github.com/facebook/docusaurus/pull/7110) docs: add a note about additional languages needing to be Prism component names ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6746](https://github.com/facebook/docusaurus/pull/6746) fix(website): lazy-load YT iframe ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7061](https://github.com/facebook/docusaurus/pull/7061) docs: add docusaurus-plugin-typedoc to resources ([@nartc](https://github.com/nartc))\\n - [#7059](https://github.com/facebook/docusaurus/pull/7059) docs: add firelordjs to showcase ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7050](https://github.com/facebook/docusaurus/pull/7050) docs: add import React statement in JSX file example ([@kaycebasques](https://github.com/kaycebasques))\\n - [#7022](https://github.com/facebook/docusaurus/pull/7022) docs: add Easypanel to showcase ([@deiucanta](https://github.com/deiucanta))\\n - [#7016](https://github.com/facebook/docusaurus/pull/7016) docs: consistently use sidebars.js filename ([@leedom92](https://github.com/leedom92))\\n - [#7020](https://github.com/facebook/docusaurus/pull/7020) docs: add Divine WSF and Ghostly to showcase ([@LeviticusMB](https://github.com/LeviticusMB))\\n - [#7000](https://github.com/facebook/docusaurus/pull/7000) docs: remove unnecessary semicolon ([@imsingh](https://github.com/imsingh))\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#7248](https://github.com/facebook/docusaurus/pull/7248) refactor: normalize Markdown linkification behavior, elaborate in documentation ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils`\\n - [#7081](https://github.com/facebook/docusaurus/pull/7081) docs: fix some casing inconsistencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :wrench: Maintenance\\n\\n- Other\\n - [#7309](https://github.com/facebook/docusaurus/pull/7309) chore: use \\"Maintenance\\" instead of \\"Internal\\" in changelog ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7300](https://github.com/facebook/docusaurus/pull/7300) misc: check doc page by Lighthouse CI ([@lex111](https://github.com/lex111))\\n - [#7266](https://github.com/facebook/docusaurus/pull/7266) misc: add links section to PR template ([@slorber](https://github.com/slorber))\\n - [#7224](https://github.com/facebook/docusaurus/pull/7224) chore: GitHub Actions cancel-in-progress ([@slorber](https://github.com/slorber))\\n - [#7216](https://github.com/facebook/docusaurus/pull/7216) chore: remove netlify-cli from devDependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7211](https://github.com/facebook/docusaurus/pull/7211) chore: replace node 17 with 18 in CI matrix ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7168](https://github.com/facebook/docusaurus/pull/7168) misc: add CI actions/dependency-review-action for security ([@slorber](https://github.com/slorber))\\n - [#6984](https://github.com/facebook/docusaurus/pull/6984) misc: pin actions to a full-length commit SHA ([@naveensrinivasan](https://github.com/naveensrinivasan))\\n - [#7002](https://github.com/facebook/docusaurus/pull/7002) chore: regen examples for 2.0 beta.18 ([@slorber](https://github.com/slorber))\\n- `docusaurus-logger`, `docusaurus-remark-plugin-npm2yarn`\\n - [#7295](https://github.com/facebook/docusaurus/pull/7295) refactor: use export = syntax for Node utility packages ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#7293](https://github.com/facebook/docusaurus/pull/7293) refactor(types): move non-core, non-public types out of the types package ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-types`, `docusaurus`\\n - [#7292](https://github.com/facebook/docusaurus/pull/7292) refactor(core): collocate CLI commands and their option types ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7084](https://github.com/facebook/docusaurus/pull/7084) refactor(core): code cleanup ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus`\\n - [#7282](https://github.com/facebook/docusaurus/pull/7282) refactor(core): prefetch/preload refactor ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#7273](https://github.com/facebook/docusaurus/pull/7273) refactor(theme-classic): multiple re-arrangements ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7268](https://github.com/facebook/docusaurus/pull/7268) refactor(theme-classic): DocPage theme refactors polish ([@slorber](https://github.com/slorber))\\n - [#7269](https://github.com/facebook/docusaurus/pull/7269) refactor: extract useSkipToContent() ([@slorber](https://github.com/slorber))\\n - [#7175](https://github.com/facebook/docusaurus/pull/7175) refactor(theme-classic): split CodeBlock ([@slorber](https://github.com/slorber))\\n - [#7067](https://github.com/facebook/docusaurus/pull/7067) refactor(theme-classic): extract doc-related navbar items\' logic to theme-common ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7021](https://github.com/facebook/docusaurus/pull/7021) refactor(theme): extract plumbing code of BTT button into theme-common ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#7270](https://github.com/facebook/docusaurus/pull/7270) refactor(theme-classic): refactor TOC-related theme components ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#7220](https://github.com/facebook/docusaurus/pull/7220) refactor(cli): normalize the application of default option values ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7141](https://github.com/facebook/docusaurus/pull/7141) refactor(core): minor PendingNavigation refactor ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`\\n - [#7243](https://github.com/facebook/docusaurus/pull/7243) chore: upgrade Jest to 28; add GitHub-actions reporter ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#7140](https://github.com/facebook/docusaurus/pull/7140) refactor(content-docs): split version handling into several files ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-live-codeblock`, `docusaurus`\\n - [#7194](https://github.com/facebook/docusaurus/pull/7194) fix: fix a few internal declaration semantic errors ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-migrate`, `docusaurus-theme-translations`, `docusaurus`\\n - [#7186](https://github.com/facebook/docusaurus/pull/7186) refactor: prefer fs.readJSON over readFile.then(JSON.parse) ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`\\n - [#7145](https://github.com/facebook/docusaurus/pull/7145) refactor: unify how MDX content types are represented ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#7138](https://github.com/facebook/docusaurus/pull/7138) chore: upgrade dependencies + upgrade React types ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#7131](https://github.com/facebook/docusaurus/pull/7131) chore: disable string escaping in snapshots ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#7054](https://github.com/facebook/docusaurus/pull/7054) refactor(core): refactor routes generation logic ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-types`, `docusaurus`\\n - [#7042](https://github.com/facebook/docusaurus/pull/7042) refactor(core): reorganize files ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`, `docusaurus`\\n - [#7037](https://github.com/facebook/docusaurus/pull/7037) refactor(core): reorganize functions ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#7027](https://github.com/facebook/docusaurus/pull/7027) refactor(content-docs): deduplicate types, JSDoc for some APIs ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :running: Performance\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-utils-common`\\n - [#7085](https://github.com/facebook/docusaurus/pull/7085) refactor: mark a few client-side packages as side-effect-free ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-remark-plugin-npm2yarn`\\n - [#4997](https://github.com/facebook/docusaurus/pull/4997) perf(mdx-loader): cache mdx/remark compiler instances ([@phryneas](https://github.com/phryneas))\\n\\n## Committers: 47\\n\\n- Aaron Nwabuoku ([@aerovulpe](https://github.com/aerovulpe))\\n- AkiraVoid ([@AkiraVoid](https://github.com/AkiraVoid))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Andrei Canta ([@deiucanta](https://github.com/deiucanta))\\n- Andrew Lyons ([@andrewnicols](https://github.com/andrewnicols))\\n- ApsarasX ([@ApsarasX](https://github.com/ApsarasX))\\n- Chau Tran ([@nartc](https://github.com/nartc))\\n- Chinazaekpere Ngubo ([@dr-ngubo](https://github.com/dr-ngubo))\\n- Cwen Yin ([@cwen0](https://github.com/cwen0))\\n- Dan Roscigno ([@DanRoscigno](https://github.com/DanRoscigno))\\n- Elias Papavasileiou ([@elias-pap](https://github.com/elias-pap))\\n- Evan ([@sulu5890](https://github.com/sulu5890))\\n- Fusang\u2740 ([@cxOrz](https://github.com/cxOrz))\\n- Indermohan Singh ([@imsingh](https://github.com/imsingh))\\n- JMW ([@JohnnyMcWeed](https://github.com/JohnnyMcWeed))\\n- Jeffrey Aven ([@jeffreyaven](https://github.com/jeffreyaven))\\n- Jody Heavener ([@jodyheavener](https://github.com/jodyheavener))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Karl Ward ([@mjau-mjau](https://github.com/mjau-mjau))\\n- Kayce Basques ([@kaycebasques](https://github.com/kaycebasques))\\n- Leedom ([@leedom92](https://github.com/leedom92))\\n- Lenz Weber-Tronic ([@phryneas](https://github.com/phryneas))\\n- Lukas Bach ([@lukasbach](https://github.com/lukasbach))\\n- Martin Blom ([@LeviticusMB](https://github.com/LeviticusMB))\\n- Naveen ([@naveensrinivasan](https://github.com/naveensrinivasan))\\n- Pablo Cordon ([@pcordon](https://github.com/pcordon))\\n- Pierre-Gilles Leymarie ([@Pierre-Gilles](https://github.com/Pierre-Gilles))\\n- Qi Zhang ([@zzzhangqi](https://github.com/zzzhangqi))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Viktor Chernodub ([@chernodub](https://github.com/chernodub))\\n- Zac A ([@sandypockets](https://github.com/sandypockets))\\n- [@Dr-Electron](https://github.com/Dr-Electron)\\n- [@chelproc](https://github.com/chelproc)\\n- [@deployn](https://github.com/deployn)\\n- [@duanwilliam](https://github.com/duanwilliam)\\n- [@kgolubic](https://github.com/kgolubic)\\n- [@redhat123456](https://github.com/redhat123456)\\n- [@surendran82](https://github.com/surendran82)\\n- [@svix-ken](https://github.com/svix-ken)\\n- apq ([@AntonPalmqvist](https://github.com/AntonPalmqvist))\\n- curatorcat.pcc.eth ([@CuratorCat](https://github.com/CuratorCat))\\n- czhen ([@shczhen](https://github.com/shczhen))\\n- loic ([@layerzzzio](https://github.com/layerzzzio))\\n- mehdim ([@mxhdx](https://github.com/mxhdx))\\n- rev ([@rev4324](https://github.com/rev4324))\\n- sykp241095 ([@sykp241095](https://github.com/sykp241095))"},{"id":"/2.0.0-beta.18","metadata":{"permalink":"/changelog/2.0.0-beta.18","source":"@site/changelog/source/2.0.0-beta.18.md","title":"2.0.0-beta.18","description":"New Feature","date":"2022-03-25T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Afonso Jorge Ramos","alias":"afonsojramos","url":"https://github.com/afonsojramos","imageURL":"https://github.com/afonsojramos.png","key":"afonsojramos","page":null},{"name":"Alessandro Festa","alias":"alefesta","url":"https://github.com/alefesta","imageURL":"https://github.com/alefesta.png","key":"alefesta","page":null},{"name":"Alois Klink","alias":"aloisklink","url":"https://github.com/aloisklink","imageURL":"https://github.com/aloisklink.png","key":"aloisklink","page":null},{"name":"Ariful Alam","alias":"arifszn","url":"https://github.com/arifszn","imageURL":"https://github.com/arifszn.png","key":"arifszn","page":null},{"name":"Billy Chan","alias":"billy1624","url":"https://github.com/billy1624","imageURL":"https://github.com/billy1624.png","key":"billy1624","page":null},{"name":"Ng\xf4 Qu\u1ED1c \u0110\u1EA1t","alias":"datlechin","url":"https://github.com/datlechin","imageURL":"https://github.com/datlechin.png","key":"datlechin","page":null},{"name":"Evan","alias":"DigiPie","url":"https://github.com/DigiPie","imageURL":"https://github.com/DigiPie.png","key":"DigiPie","page":null},{"name":"Bugo","alias":"dragomano","url":"https://github.com/dragomano","imageURL":"https://github.com/dragomano.png","key":"dragomano","page":null},{"name":"Felipe Santos","alias":"felipecrs","url":"https://github.com/felipecrs","imageURL":"https://github.com/felipecrs.png","key":"felipecrs","page":null},{"name":"Kyohei Fukuda","alias":"hand-dot","url":"https://github.com/hand-dot","imageURL":"https://github.com/hand-dot.png","key":"hand-dot","page":null},{"name":"WonChul Heo","alias":"heowc","url":"https://github.com/heowc","imageURL":"https://github.com/heowc.png","key":"heowc","page":null},{"name":"Jadon N","alias":"jadonn","url":"https://github.com/jadonn","imageURL":"https://github.com/jadonn.png","key":"jadonn","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Roberto Vidal","alias":"jrvidal","url":"https://github.com/jrvidal","imageURL":"https://github.com/jrvidal.png","key":"jrvidal","page":null},{"name":"Kayce Basques","alias":"kaycebasques","url":"https://github.com/kaycebasques","imageURL":"https://github.com/kaycebasques.png","key":"kaycebasques","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"moonrailgun","alias":"moonrailgun","url":"https://github.com/moonrailgun","imageURL":"https://github.com/moonrailgun.png","key":"moonrailgun","page":null},{"name":"nate contino","alias":"nathan-contino-mongo","url":"https://github.com/nathan-contino-mongo","imageURL":"https://github.com/nathan-contino-mongo.png","key":"nathan-contino-mongo","page":null},{"name":"Odarpi","alias":"odarpi","url":"https://github.com/odarpi","imageURL":"https://github.com/odarpi.png","key":"odarpi","page":null},{"name":"Nayan Patel","alias":"PatelN123","url":"https://github.com/PatelN123","imageURL":"https://github.com/PatelN123.png","key":"PatelN123","page":null},{"name":"Pawel Kowaluk","alias":"pkowaluk","url":"https://github.com/pkowaluk","imageURL":"https://github.com/pkowaluk.png","key":"pkowaluk","page":null},{"name":"Tsz W. TAM","alias":"rccttwd","url":"https://github.com/rccttwd","imageURL":"https://github.com/rccttwd.png","key":"rccttwd","page":null},{"name":"Sam Gutentag","alias":"samgutentag","url":"https://github.com/samgutentag","imageURL":"https://github.com/samgutentag.png","key":"samgutentag","page":null},{"name":"seladb","alias":"seladb","url":"https://github.com/seladb","imageURL":"https://github.com/seladb.png","key":"seladb","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"tae","alias":"taejs","url":"https://github.com/taejs","imageURL":"https://github.com/taejs.png","key":"taejs","page":null},{"name":"Begula","alias":"vedantmgoyal2009","url":"https://github.com/vedantmgoyal2009","imageURL":"https://github.com/vedantmgoyal2009.png","key":"vedantmgoyal2009","page":null},{"name":"Yorkie Liu","alias":"yorkie","url":"https://github.com/yorkie","imageURL":"https://github.com/yorkie.png","key":"yorkie","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-03-25T20:00","authors":["afonsojramos","alefesta","aloisklink","arifszn","billy1624","datlechin","DigiPie","dragomano","felipecrs","hand-dot","heowc","jadonn","Josh-Cena","jrvidal","kaycebasques","lex111","moonrailgun","nathan-contino-mongo","odarpi","PatelN123","pkowaluk","rccttwd","samgutentag","seladb","slorber","taejs","vedantmgoyal2009","yorkie"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.19","permalink":"/changelog/2.0.0-beta.19"},"nextItem":{"title":"2.0.0-beta.17","permalink":"/changelog/2.0.0-beta.17"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-mdx-loader`, `docusaurus-theme-classic`\\n - [#6990](https://github.com/facebook/docusaurus/pull/6990) feat: lazy-load external images + ability to customize image display ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus`\\n - [#6933](https://github.com/facebook/docusaurus/pull/6933) feat(core,theme): useRouteContext + HtmlClassNameProvider ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus`\\n - [#6921](https://github.com/facebook/docusaurus/pull/6921) feat(core): allow plugin lifecycles to return relative paths ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#6697](https://github.com/facebook/docusaurus/pull/6697) feat: add SEO microdata for doc breadcrumbs ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6842](https://github.com/facebook/docusaurus/pull/6842) feat(theme-classic): MDXContent wrapper component ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#6780](https://github.com/facebook/docusaurus/pull/6780) feat(content-docs): allow custom props through _category_.json ([@taejs](https://github.com/taejs))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-plugin-content-docs`\\n - [#6859](https://github.com/facebook/docusaurus/pull/6859) feat(content-docs): autogenerate category with linked doc metadata as fallback ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#6989](https://github.com/facebook/docusaurus/pull/6989) refactor: extract MDX components ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#6925](https://github.com/facebook/docusaurus/pull/6925) refactor(theme-{classic,common}): refactor site/page/search metadata + apply className on html element ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6895](https://github.com/facebook/docusaurus/pull/6895) refactor(theme-{classic,common}): split navbar into smaller components + cleanup + swizzle config ([@slorber](https://github.com/slorber))\\n - [#6930](https://github.com/facebook/docusaurus/pull/6930) refactor(theme-{classic,common}): refactor ColorModeToggle + useColorMode() hook ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#6993](https://github.com/facebook/docusaurus/pull/6993) fix(core): prevent useBaseUrl returning /base/base when on /base ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6936](https://github.com/facebook/docusaurus/pull/6936) fix: remove semicolon from HTML output ([@lex111](https://github.com/lex111))\\n - [#6849](https://github.com/facebook/docusaurus/pull/6849) fix(cli): write-heading-id should not generate colliding slugs when not overwriting ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#6983](https://github.com/facebook/docusaurus/pull/6983) fix(search): bump Infima, fix search issue due to broken CSS selector ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils-validation`\\n - [#6977](https://github.com/facebook/docusaurus/pull/6977) fix(validation): allow non-object params to remark/rehype plugins ([@aloisklink](https://github.com/aloisklink))\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#6973](https://github.com/facebook/docusaurus/pull/6973) fix(content-docs): suppress git error on multiple occurrences ([@felipecrs](https://github.com/felipecrs))\\n- `docusaurus-plugin-content-blog`\\n - [#6947](https://github.com/facebook/docusaurus/pull/6947) fix(content-blog): only create archive route if there are blog posts ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6918](https://github.com/facebook/docusaurus/pull/6918) fix(content-blog): remove double leading slash in blog-only paginated view ([@heowc](https://github.com/heowc))\\n- `docusaurus-theme-search-algolia`\\n - [#6888](https://github.com/facebook/docusaurus/pull/6888) fix(theme-algolia): declare content-docs as dependency ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-translations`\\n - [#6847](https://github.com/facebook/docusaurus/pull/6847) fix: minor Chinese translation fixes ([@rccttwd](https://github.com/rccttwd))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-plugin-content-docs`\\n - [#6859](https://github.com/facebook/docusaurus/pull/6859) feat(content-docs): autogenerate category with linked doc metadata as fallback ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6887](https://github.com/facebook/docusaurus/pull/6887) fix(content-docs): give context about sidebar loading failure ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils-validation`, `docusaurus`\\n - [#6997](https://github.com/facebook/docusaurus/pull/6997) fix(validation): improve error messages for a few schemas ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#6971](https://github.com/facebook/docusaurus/pull/6971) refactor: improve a11y of dropdown menu ([@lex111](https://github.com/lex111))\\n - [#6987](https://github.com/facebook/docusaurus/pull/6987) refactor(theme-classic): cleanup of code blocks ([@lex111](https://github.com/lex111))\\n - [#6950](https://github.com/facebook/docusaurus/pull/6950) refactor(theme-classic): clean up CSS of doc cards ([@lex111](https://github.com/lex111))\\n - [#6994](https://github.com/facebook/docusaurus/pull/6994) refactor: better external link icon positioning ([@lex111](https://github.com/lex111))\\n - [#6989](https://github.com/facebook/docusaurus/pull/6989) refactor: extract MDX components ([@slorber](https://github.com/slorber))\\n - [#6985](https://github.com/facebook/docusaurus/pull/6985) refactor(theme-classic): remove span wrappers from layout links ([@lex111](https://github.com/lex111))\\n - [#6986](https://github.com/facebook/docusaurus/pull/6986) fix(theme-classic): minor code copy button improvements ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6964](https://github.com/facebook/docusaurus/pull/6964) refactor: replace text-based copy code button with icons ([@lex111](https://github.com/lex111))\\n - [#6932](https://github.com/facebook/docusaurus/pull/6932) refactor(theme-classic): little breadcrumbs improvements ([@lex111](https://github.com/lex111))\\n - [#6914](https://github.com/facebook/docusaurus/pull/6914) feat(theme-classic): set aria-expanded on expandable sidebar categories ([@pkowaluk](https://github.com/pkowaluk))\\n - [#6844](https://github.com/facebook/docusaurus/pull/6844) refactor(theme-classic): split sidebar into smaller parts ([@slorber](https://github.com/slorber))\\n - [#6846](https://github.com/facebook/docusaurus/pull/6846) refactor(theme-classic): consistently add span wrapper for layout links ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#6980](https://github.com/facebook/docusaurus/pull/6980) feat(utils): JSDoc for all APIs ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-common`\\n - [#6974](https://github.com/facebook/docusaurus/pull/6974) feat(theme-common): JSDoc for all APIs ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#6784](https://github.com/facebook/docusaurus/pull/6784) feat(core): allow configureWebpack to return undefined ([@yorkie](https://github.com/yorkie))\\n - [#6941](https://github.com/facebook/docusaurus/pull/6941) refactor(core): improve error message when a page has no default-export ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6878](https://github.com/facebook/docusaurus/pull/6878) fix(core): ensure stable webpack theme aliases sorting ([@jrvidal](https://github.com/jrvidal))\\n - [#6854](https://github.com/facebook/docusaurus/pull/6854) fix(core): fix swizzle legend typo ([@DigiPie](https://github.com/DigiPie))\\n - [#6850](https://github.com/facebook/docusaurus/pull/6850) fix(core): make plugin lifecycles consistently bound to the plugin instance ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#6937](https://github.com/facebook/docusaurus/pull/6937) fix(content-docs): warn when files are not tracked ([@felipecrs](https://github.com/felipecrs))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#6925](https://github.com/facebook/docusaurus/pull/6925) refactor(theme-{classic,common}): refactor site/page/search metadata + apply className on html element ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6895](https://github.com/facebook/docusaurus/pull/6895) refactor(theme-{classic,common}): split navbar into smaller components + cleanup + swizzle config ([@slorber](https://github.com/slorber))\\n - [#6930](https://github.com/facebook/docusaurus/pull/6930) refactor(theme-{classic,common}): refactor ColorModeToggle + useColorMode() hook ([@lex111](https://github.com/lex111))\\n - [#6894](https://github.com/facebook/docusaurus/pull/6894) refactor(theme-classic): split theme footer into smaller components + swizzle config ([@slorber](https://github.com/slorber))\\n- `docusaurus-types`, `docusaurus`\\n - [#6929](https://github.com/facebook/docusaurus/pull/6929) refactor(core): minor routes type improvement ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`\\n - [#6928](https://github.com/facebook/docusaurus/pull/6928) chore(pwa, sitemap, client-redirects, ideal-image): JSDoc for types ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-utils`\\n - [#6922](https://github.com/facebook/docusaurus/pull/6922) refactor(content-blog): clean up type definitions; in-code documentation ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-translations`\\n - [#6781](https://github.com/facebook/docusaurus/pull/6781) feat(theme-translations): complete Russian translations ([@dragomano](https://github.com/dragomano))\\n - [#6877](https://github.com/facebook/docusaurus/pull/6877) chore(theme-translations): complete Vietnamese translations ([@datlechin](https://github.com/datlechin))\\n- `docusaurus-plugin-content-blog`\\n - [#6909](https://github.com/facebook/docusaurus/pull/6909) refactor(content-blog): improve error message of authors map validation ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#6860](https://github.com/facebook/docusaurus/pull/6860) fix(create): load entry file after node version checking ([@taejs](https://github.com/taejs))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#6988](https://github.com/facebook/docusaurus/pull/6988) docs: fix example admonition syntax ([@kaycebasques](https://github.com/kaycebasques))\\n - [#6978](https://github.com/facebook/docusaurus/pull/6978) docs: npm run tsc -> npx tsc ([@jadonn](https://github.com/jadonn))\\n - [#6952](https://github.com/facebook/docusaurus/pull/6952) docs: add K3ai to showcase ([@alefesta](https://github.com/alefesta))\\n - [#6948](https://github.com/facebook/docusaurus/pull/6948) docs: add pdfme docs to showcase ([@hand-dot](https://github.com/hand-dot))\\n - [#6943](https://github.com/facebook/docusaurus/pull/6943) docs: add SeaORM docs to showcase ([@billy1624](https://github.com/billy1624))\\n - [#6926](https://github.com/facebook/docusaurus/pull/6926) docs: clarify the usage of slug ([@kaycebasques](https://github.com/kaycebasques))\\n - [#6911](https://github.com/facebook/docusaurus/pull/6911) docs: add Reactive Button site to showcase ([@arifszn](https://github.com/arifszn))\\n - [#6904](https://github.com/facebook/docusaurus/pull/6904) docs: update image for digital support services ([@PatelN123](https://github.com/PatelN123))\\n - [#6892](https://github.com/facebook/docusaurus/pull/6892) docs: add EduLinks site to showcase ([@odarpi](https://github.com/odarpi))\\n - [#6889](https://github.com/facebook/docusaurus/pull/6889) docs: editorial fixes ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6883](https://github.com/facebook/docusaurus/pull/6883) docs(cli): add info about development on github codespaces ([@vedantmgoyal2009](https://github.com/vedantmgoyal2009))\\n - [#6856](https://github.com/facebook/docusaurus/pull/6856) docs: add Reddit Image Fetcher site to showcase ([@arifszn](https://github.com/arifszn))\\n - [#6875](https://github.com/facebook/docusaurus/pull/6875) docs: update TRPG Engine showcase ([@moonrailgun](https://github.com/moonrailgun))\\n - [#6871](https://github.com/facebook/docusaurus/pull/6871) docs: mark clutch and gulp as open-source ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6862](https://github.com/facebook/docusaurus/pull/6862) docs: update showcase data ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6837](https://github.com/facebook/docusaurus/pull/6837) docs: add PcapPlusPlus to showcase ([@seladb](https://github.com/seladb))\\n - [#6832](https://github.com/facebook/docusaurus/pull/6832) docs: add Spicetify site to showcase ([@afonsojramos](https://github.com/afonsojramos))\\n - [#6830](https://github.com/facebook/docusaurus/pull/6830) docs: simplify imported code blocks syntax ([@nathan-contino-mongo](https://github.com/nathan-contino-mongo))\\n- `docusaurus-types`\\n - [#6881](https://github.com/facebook/docusaurus/pull/6881) docs: mention configureWebpack devServer return value ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#6833](https://github.com/facebook/docusaurus/pull/6833) docs: make tutorial code block directly copyable ([@samgutentag](https://github.com/samgutentag))\\n\\n## :house: Internal\\n\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6995](https://github.com/facebook/docusaurus/pull/6995) refactor: ensure all types are using index signature instead of Record ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-plugin-pwa`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6991](https://github.com/facebook/docusaurus/pull/6991) chore: upgrade dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `lqip-loader`\\n - [#6992](https://github.com/facebook/docusaurus/pull/6992) refactor(lqip-loader): remove unused palette option ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#6975](https://github.com/facebook/docusaurus/pull/6975) chore: update static-site-generator-webpack-plugin ([@slorber](https://github.com/slorber))\\n- `stylelint-copyright`\\n - [#6967](https://github.com/facebook/docusaurus/pull/6967) chore: publish stylelint-copyright again ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus`\\n - [#6961](https://github.com/facebook/docusaurus/pull/6961) refactor: unify how validateOptions is handled ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-types`\\n - [#6957](https://github.com/facebook/docusaurus/pull/6957) chore(types): remove querystring from dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-common`, `docusaurus`\\n - [#6956](https://github.com/facebook/docusaurus/pull/6956) test: improve test coverage; reorder theme-common files ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6955](https://github.com/facebook/docusaurus/pull/6955) refactor(core): move browserContext and docusaurusContext out of client exports ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6944](https://github.com/facebook/docusaurus/pull/6944) chore: migrate Jest and website to SWC ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-utils`\\n - [#6951](https://github.com/facebook/docusaurus/pull/6951) test: fix Windows test for gitUtils ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`, `stylelint-copyright`\\n - [#6931](https://github.com/facebook/docusaurus/pull/6931) chore: tighten ESLint config ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`\\n - [#6924](https://github.com/facebook/docusaurus/pull/6924) refactor(client-redirects): migrate validation to validateOptions lifecycle ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6916](https://github.com/facebook/docusaurus/pull/6916) chore: upgrade dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-plugin-content-docs`, `docusaurus-theme-translations`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `stylelint-copyright`\\n - [#6912](https://github.com/facebook/docusaurus/pull/6912) test: improve test coverage; multiple internal refactors ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Other\\n - [#6910](https://github.com/facebook/docusaurus/pull/6910) refactor: convert Jest infrastructure to TS ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6838](https://github.com/facebook/docusaurus/pull/6838) fix(website): changelog plugin leads to CI bugs on release ([@slorber](https://github.com/slorber))\\n- `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`\\n - [#6908](https://github.com/facebook/docusaurus/pull/6908) chore: do not print prototype in jest snapshot ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-plugin-content-docs`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#6906](https://github.com/facebook/docusaurus/pull/6906) refactor: install eslint-plugin-regexp ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-docs`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`\\n - [#6905](https://github.com/facebook/docusaurus/pull/6905) test: improve test coverage; properly test core client APIs ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-sitemap`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`\\n - [#6903](https://github.com/facebook/docusaurus/pull/6903) chore: spell-check test files ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6902](https://github.com/facebook/docusaurus/pull/6902) test(theme-common): improve test coverage ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`, `stylelint-copyright`\\n - [#6900](https://github.com/facebook/docusaurus/pull/6900) test: enable a few jest eslint rules ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6898](https://github.com/facebook/docusaurus/pull/6898) refactor: import jest as global; unify import style of some modules ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6891](https://github.com/facebook/docusaurus/pull/6891) refactor(theme-classic): avoid using clsx class dict with CSS modules ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`\\n - [#6880](https://github.com/facebook/docusaurus/pull/6880) refactor: prefer fs.outputFile to ensureDir + writeFile ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-pwa`, `docusaurus-types`, `docusaurus`\\n - [#6866](https://github.com/facebook/docusaurus/pull/6866) refactor: improve types ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus`, `lqip-loader`\\n - [#6864](https://github.com/facebook/docusaurus/pull/6864) refactor: remove unnecessary default values normalized during validation ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-migrate`, `docusaurus`\\n - [#6861](https://github.com/facebook/docusaurus/pull/6861) refactor: make JS executables included in the tsconfig for editor hints ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus`\\n - [#6857](https://github.com/facebook/docusaurus/pull/6857) test: improve test coverage ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-utils-common`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6852](https://github.com/facebook/docusaurus/pull/6852) refactor: enable a few TS flags ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 28\\n\\n- Afonso Jorge Ramos ([@afonsojramos](https://github.com/afonsojramos))\\n- Alessandro Festa ([@alefesta](https://github.com/alefesta))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Alois Klink ([@aloisklink](https://github.com/aloisklink))\\n- Ariful Alam ([@arifszn](https://github.com/arifszn))\\n- Begula ([@vedantmgoyal2009](https://github.com/vedantmgoyal2009))\\n- Billy Chan ([@billy1624](https://github.com/billy1624))\\n- Bugo ([@dragomano](https://github.com/dragomano))\\n- Evan ([@DigiPie](https://github.com/DigiPie))\\n- Felipe Santos ([@felipecrs](https://github.com/felipecrs))\\n- Jadon N ([@jadonn](https://github.com/jadonn))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Kayce Basques ([@kaycebasques](https://github.com/kaycebasques))\\n- Kyohei Fukuda ([@hand-dot](https://github.com/hand-dot))\\n- Nayan Patel ([@PatelN123](https://github.com/PatelN123))\\n- Ng\xf4 Qu\u1ED1c \u0110\u1EA1t ([@datlechin](https://github.com/datlechin))\\n- Odarpi ([@odarpi](https://github.com/odarpi))\\n- Pawel Kowaluk ([@pkowaluk](https://github.com/pkowaluk))\\n- Roberto Vidal ([@jrvidal](https://github.com/jrvidal))\\n- Sam Gutentag ([@samgutentag](https://github.com/samgutentag))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tsz W. TAM ([@rccttwd](https://github.com/rccttwd))\\n- WonChul Heo ([@heowc](https://github.com/heowc))\\n- Yorkie Liu ([@yorkie](https://github.com/yorkie))\\n- [@seladb](https://github.com/seladb)\\n- moonrailgun ([@moonrailgun](https://github.com/moonrailgun))\\n- nate contino ([@nathan-contino-mongo](https://github.com/nathan-contino-mongo))\\n- tae ([@taejs](https://github.com/taejs))"},{"id":"/2.0.0-beta.17","metadata":{"permalink":"/changelog/2.0.0-beta.17","source":"@site/changelog/source/2.0.0-beta.17.md","title":"2.0.0-beta.17","description":"New Feature","date":"2022-03-03T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Alex Nicholls","alias":"anicholls","url":"https://github.com/anicholls","imageURL":"https://github.com/anicholls.png","key":"anicholls","page":null},{"name":"Ariful Alam","alias":"arifszn","url":"https://github.com/arifszn","imageURL":"https://github.com/arifszn.png","key":"arifszn","page":null},{"name":"Dmitry Vinnik","alias":"dmitryvinn","url":"https://github.com/dmitryvinn","imageURL":"https://github.com/dmitryvinn.png","key":"dmitryvinn","page":null},{"name":"David Stotijn","alias":"dstotijn","url":"https://github.com/dstotijn","imageURL":"https://github.com/dstotijn.png","key":"dstotijn","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Nayan Patel","alias":"PatelN123","url":"https://github.com/PatelN123","imageURL":"https://github.com/PatelN123.png","key":"PatelN123","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Vaibhav Shinde","alias":"vaibhavshn","url":"https://github.com/vaibhavshn","imageURL":"https://github.com/vaibhavshn.png","key":"vaibhavshn","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-03-03T20:00","authors":["anicholls","arifszn","dmitryvinn","dstotijn","Josh-Cena","PatelN123","slorber","vaibhavshn"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.18","permalink":"/changelog/2.0.0-beta.18"},"nextItem":{"title":"2.0.0-beta.16","permalink":"/changelog/2.0.0-beta.16"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#6783](https://github.com/facebook/docusaurus/pull/6783) feat: allow blog authors email ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6771](https://github.com/facebook/docusaurus/pull/6771) refactor(theme-classic): replace color mode toggle with button; remove switchConfig ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#6827](https://github.com/facebook/docusaurus/pull/6827) fix(theme-classic): restore docusaurus search meta ([@slorber](https://github.com/slorber))\\n - [#6767](https://github.com/facebook/docusaurus/pull/6767) fix(theme-classic): allow code tags containing inline elements to stay inline ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-common`\\n - [#6824](https://github.com/facebook/docusaurus/pull/6824) fix(theme-common): breadcrumbs home bug in docs-only ([@slorber](https://github.com/slorber))\\n - [#6816](https://github.com/facebook/docusaurus/pull/6816) fix(theme-common): docs breadcrumbs not working with baseUrl ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#6700](https://github.com/facebook/docusaurus/pull/6700) fix(content-docs): always sort autogenerated sidebar items by file/folder name by default ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#6812](https://github.com/facebook/docusaurus/pull/6812) fix(core): remove hash/query when filtering existing files for broken link check ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`\\n - [#6779](https://github.com/facebook/docusaurus/pull/6779) fix(mdx-loader): suppress image reading warning in Yarn PnP; log warning instead of error ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#6762](https://github.com/facebook/docusaurus/pull/6762) fix(create): update broken SVG paths in templates ([@anicholls](https://github.com/anicholls))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-common`\\n - [#6826](https://github.com/facebook/docusaurus/pull/6826) refactor(theme-common): unify missing context errors ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6771](https://github.com/facebook/docusaurus/pull/6771) refactor(theme-classic): replace color mode toggle with button; remove switchConfig ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#6769](https://github.com/facebook/docusaurus/pull/6769) refactor(theme-classic): use Material icon for language dropdown ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`\\n - [#6792](https://github.com/facebook/docusaurus/pull/6792) fix(mdx-loader): allow image paths to be URL encoded ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#6825](https://github.com/facebook/docusaurus/pull/6825) docs: Adds Netlify one click deploy to README ([@PatelN123](https://github.com/PatelN123))\\n - [#6818](https://github.com/facebook/docusaurus/pull/6818) docs: add deploy with vercel button to README ([@PatelN123](https://github.com/PatelN123))\\n - [#6817](https://github.com/facebook/docusaurus/pull/6817) docs: fix broken links ([@PatelN123](https://github.com/PatelN123))\\n - [#6811](https://github.com/facebook/docusaurus/pull/6811) docs: add homepage banner in support of Ukraine ([@dmitryvinn](https://github.com/dmitryvinn))\\n - [#6813](https://github.com/facebook/docusaurus/pull/6813) docs: mark dyte as opensource in showcase ([@vaibhavshn](https://github.com/vaibhavshn))\\n - [#6776](https://github.com/facebook/docusaurus/pull/6776) docs: make GitHub actions explanation aligned with the code ([@arifszn](https://github.com/arifszn))\\n - [#6772](https://github.com/facebook/docusaurus/pull/6772) docs: add basic documentation about client modules ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#6815](https://github.com/facebook/docusaurus/pull/6815) fix: consistently use `max-width: 996px` in media queries ([@dstotijn](https://github.com/dstotijn))\\n\\n## :house: Internal\\n\\n- `docusaurus-plugin-content-docs`\\n - [#6821](https://github.com/facebook/docusaurus/pull/6821) test(content-docs): refactor navigation test snapshot ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Other\\n - [#6768](https://github.com/facebook/docusaurus/pull/6768) test: add TypeScript template to E2E test matrix ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-utils`\\n - [#6773](https://github.com/facebook/docusaurus/pull/6773) refactor(utils): categorize functions into separate files ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`\\n - [#6761](https://github.com/facebook/docusaurus/pull/6761) chore: various internal fixes ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 8\\n\\n- Alex Nicholls ([@anicholls](https://github.com/anicholls))\\n- Ariful Alam ([@arifszn](https://github.com/arifszn))\\n- David Stotijn ([@dstotijn](https://github.com/dstotijn))\\n- Dmitry Vinnik ([@dmitryvinn](https://github.com/dmitryvinn))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Nayan Patel ([@PatelN123](https://github.com/PatelN123))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Vaibhav Shinde ([@vaibhavshn](https://github.com/vaibhavshn))"},{"id":"/2.0.0-beta.16","metadata":{"permalink":"/changelog/2.0.0-beta.16","source":"@site/changelog/source/2.0.0-beta.16.md","title":"2.0.0-beta.16","description":"New Feature","date":"2022-02-25T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Gaurish","alias":"apidev234","url":"https://github.com/apidev234","imageURL":"https://github.com/apidev234.png","key":"apidev234","page":null},{"name":"Artem Kovalov","alias":"artemkovalyov","url":"https://github.com/artemkovalyov","imageURL":"https://github.com/artemkovalyov.png","key":"artemkovalyov","page":null},{"name":"BigDataWriter","alias":"BigDataWriter","url":"https://github.com/BigDataWriter","imageURL":"https://github.com/BigDataWriter.png","key":"BigDataWriter","page":null},{"name":"Clement Demonchy","alias":"cdemonchy-pro","url":"https://github.com/cdemonchy-pro","imageURL":"https://github.com/cdemonchy-pro.png","key":"cdemonchy-pro","page":null},{"name":"CodeDoctor","alias":"CodeDoctorDE","url":"https://github.com/CodeDoctorDE","imageURL":"https://github.com/CodeDoctorDE.png","key":"CodeDoctorDE","page":null},{"name":"CookieJarApps","alias":"CookieJarApps","url":"https://github.com/CookieJarApps","imageURL":"https://github.com/CookieJarApps.png","key":"CookieJarApps","page":null},{"name":"Dmitry Vinnik","alias":"dmitryvinn","url":"https://github.com/dmitryvinn","imageURL":"https://github.com/dmitryvinn.png","key":"dmitryvinn","page":null},{"name":"Dmitry Vinnik | Meta","alias":"dmitryvinn-fb","url":"https://github.com/dmitryvinn-fb","imageURL":"https://github.com/dmitryvinn-fb.png","key":"dmitryvinn-fb","page":null},{"name":"Everardo J. Barojas M.","alias":"ebarojas","url":"https://github.com/ebarojas","imageURL":"https://github.com/ebarojas.png","key":"ebarojas","page":null},{"name":"Erick Zhao","alias":"erickzhao","url":"https://github.com/erickzhao","imageURL":"https://github.com/erickzhao.png","key":"erickzhao","page":null},{"name":"Felipe Santos","alias":"felipecrs","url":"https://github.com/felipecrs","imageURL":"https://github.com/felipecrs.png","key":"felipecrs","page":null},{"name":"Mikey O\'Toole","alias":"homotechsual","url":"https://github.com/homotechsual","imageURL":"https://github.com/homotechsual.png","key":"homotechsual","page":null},{"name":"Jody Heavener","alias":"jodyheavener","url":"https://github.com/jodyheavener","imageURL":"https://github.com/jodyheavener.png","key":"jodyheavener","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Daniel Kalevski","alias":"kalevski","url":"https://github.com/kalevski","imageURL":"https://github.com/kalevski.png","key":"kalevski","page":null},{"name":"Kishan Gajera","alias":"kgajera","url":"https://github.com/kgajera","imageURL":"https://github.com/kgajera.png","key":"kgajera","page":null},{"name":"Konstantin Tarkus","alias":"koistya","url":"https://github.com/koistya","imageURL":"https://github.com/koistya.png","key":"koistya","page":null},{"name":"Balthasar Hofer","alias":"lebalz","url":"https://github.com/lebalz","imageURL":"https://github.com/lebalz.png","key":"lebalz","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Miles Johnson","alias":"milesj","url":"https://github.com/milesj","imageURL":"https://github.com/milesj.png","key":"milesj","page":null},{"name":"Matheus Ricardo Brunelli","alias":"mrbrunelli","url":"https://github.com/mrbrunelli","imageURL":"https://github.com/mrbrunelli.png","key":"mrbrunelli","page":null},{"name":"Naseel Niyas","alias":"NaseelNiyas","url":"https://github.com/NaseelNiyas","imageURL":"https://github.com/NaseelNiyas.png","key":"NaseelNiyas","page":null},{"name":"nick-verida","alias":"nick-verida","url":"https://github.com/nick-verida","imageURL":"https://github.com/nick-verida.png","key":"nick-verida","page":null},{"name":"Nick Schonning","alias":"nschonni","url":"https://github.com/nschonni","imageURL":"https://github.com/nschonni.png","key":"nschonni","page":null},{"name":"Pranab Das","alias":"pranabdas","url":"https://github.com/pranabdas","imageURL":"https://github.com/pranabdas.png","key":"pranabdas","page":null},{"name":"Muhammad Redho Ayassa","alias":"redhoyasa","url":"https://github.com/redhoyasa","imageURL":"https://github.com/redhoyasa.png","key":"redhoyasa","page":null},{"name":"Yongmin Hong","alias":"revi","url":"https://github.com/revi","imageURL":"https://github.com/revi.png","key":"revi","page":null},{"name":"Ruben Arushanyan","alias":"Ruben-Arushanyan","url":"https://github.com/Ruben-Arushanyan","imageURL":"https://github.com/Ruben-Arushanyan.png","key":"Ruben-Arushanyan","page":null},{"name":"seyoon20087","alias":"seyoon20087","url":"https://github.com/seyoon20087","imageURL":"https://github.com/seyoon20087.png","key":"seyoon20087","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tamal Web","alias":"tamalweb","url":"https://github.com/tamalweb","imageURL":"https://github.com/tamalweb.png","key":"tamalweb","page":null},{"name":"TheCatLady","alias":"TheCatLady","url":"https://github.com/TheCatLady","imageURL":"https://github.com/TheCatLady.png","key":"TheCatLady","page":null},{"name":"Daniel Hanke","alias":"thedanielhanke","url":"https://github.com/thedanielhanke","imageURL":"https://github.com/thedanielhanke.png","key":"thedanielhanke","page":null},{"name":"toto6038","alias":"toto6038","url":"https://github.com/toto6038","imageURL":"https://github.com/toto6038.png","key":"toto6038","page":null},{"name":"Matthew Ailes","alias":"vidarc","url":"https://github.com/vidarc","imageURL":"https://github.com/vidarc.png","key":"vidarc","page":null},{"name":"\uC774\uC815\uD658","alias":"winterlood","url":"https://github.com/winterlood","imageURL":"https://github.com/winterlood.png","key":"winterlood","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-02-25T20:00","authors":["apidev234","artemkovalyov","BigDataWriter","cdemonchy-pro","CodeDoctorDE","CookieJarApps","dmitryvinn","dmitryvinn-fb","ebarojas","erickzhao","felipecrs","homotechsual","jodyheavener","johnnyreilly","Josh-Cena","kalevski","kgajera","koistya","lebalz","lex111","milesj","mrbrunelli","NaseelNiyas","nick-verida","nschonni","pranabdas","redhoyasa","revi","Ruben-Arushanyan","seyoon20087","slorber","tamalweb","TheCatLady","thedanielhanke","toto6038","vidarc","winterlood","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.17","permalink":"/changelog/2.0.0-beta.17"},"nextItem":{"title":"2.0.0-beta.15","permalink":"/changelog/2.0.0-beta.15"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-logger`, `docusaurus-module-type-aliases`, `docusaurus-plugin-debug`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus`\\n - [#6243](https://github.com/facebook/docusaurus/pull/6243) feat(core): brand new swizzle CLI experience ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#6750](https://github.com/facebook/docusaurus/pull/6750) feat(create): new --package-manager option; interactive package manager selection ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6610](https://github.com/facebook/docusaurus/pull/6610) feat(create): allow specifying a git clone strategy ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6723](https://github.com/facebook/docusaurus/pull/6723) feat: sync color mode between browser tabs ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-search-algolia`\\n - [#6692](https://github.com/facebook/docusaurus/pull/6692) feat(search-algolia): allow disabling search page and configuring path ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6517](https://github.com/facebook/docusaurus/pull/6517) feat(docs,theme-classic): docs breadcrumbs ([@jodyheavener](https://github.com/jodyheavener))\\n - [#6519](https://github.com/facebook/docusaurus/pull/6519) feat(content-docs): sidebar item type \\"html\\" for rendering pure markup ([@jodyheavener](https://github.com/jodyheavener))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#6593](https://github.com/facebook/docusaurus/pull/6593) feat(content-blog): infer blog post date from git history ([@felipecrs](https://github.com/felipecrs))\\n- `docusaurus-plugin-content-docs`\\n - [#6619](https://github.com/facebook/docusaurus/pull/6619) feat(content-docs): add custom props front matter ([@TheCatLady](https://github.com/TheCatLady))\\n - [#6452](https://github.com/facebook/docusaurus/pull/6452) feat(content-docs): allow explicitly disabling index page for generated category ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`\\n - [#6603](https://github.com/facebook/docusaurus/pull/6603) feat(content-blog): allow customizing blog archive component through option ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#6221](https://github.com/facebook/docusaurus/pull/6221) feat(content-blog): Allow pagination for BlogTagsPostsPage ([@redhoyasa](https://github.com/redhoyasa))\\n\\n## :boom: Breaking Change\\n\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`, `stylelint-copyright`\\n - [#6752](https://github.com/facebook/docusaurus/pull/6752) chore: upgrade docsearch-react to v3 stable, bump dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`\\n - [#6729](https://github.com/facebook/docusaurus/pull/6729) refactor: make MDX export a flat TOC list instead of tree ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus`\\n - [#6740](https://github.com/facebook/docusaurus/pull/6740) refactor: remove deprecated Webpack utils & validation escape hatch ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#6707](https://github.com/facebook/docusaurus/pull/6707) refactor(theme-classic): bias again search metadata toward Algolia DocSearch ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-common`, `docusaurus`\\n - [#6651](https://github.com/facebook/docusaurus/pull/6651) refactor: reduce exported members of docusaurus router ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-common`\\n - [#6758](https://github.com/facebook/docusaurus/pull/6758) fix(theme-common): isSamePath should be case-insensitive ([@slorber](https://github.com/slorber))\\n - [#6748](https://github.com/facebook/docusaurus/pull/6748) fix(theme-classic): temporarily disable toc heading autoscrolling ([@slorber](https://github.com/slorber))\\n - [#6696](https://github.com/facebook/docusaurus/pull/6696) fix(theme-common): do not run useLocationChange when hot reloading ([@lex111](https://github.com/lex111))\\n - [#6490](https://github.com/facebook/docusaurus/pull/6490) fix(theme-classic): do not switch color modes when printing ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6749](https://github.com/facebook/docusaurus/pull/6749) fix(theme-classic): fix breadcrumb home link bug with new useHomePageRoute() hook ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#6720](https://github.com/facebook/docusaurus/pull/6720) fix(content-docs): create assets for frontmatter images ([@lebalz](https://github.com/lebalz))\\n - [#6592](https://github.com/facebook/docusaurus/pull/6592) fix(content-docs): read last update from inner git repositories ([@felipecrs](https://github.com/felipecrs))\\n - [#6477](https://github.com/facebook/docusaurus/pull/6477) fix(content-docs): export versioning utils ([@milesj](https://github.com/milesj))\\n- `docusaurus-mdx-loader`\\n - [#6712](https://github.com/facebook/docusaurus/pull/6712) fix(mdx-loader): make headings containing links properly formatted in ToC ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#6701](https://github.com/facebook/docusaurus/pull/6701) fix(cli): disable directory listing in serve ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6607](https://github.com/facebook/docusaurus/pull/6607) fix(cli): log error itself on unhandled rejection ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6500](https://github.com/facebook/docusaurus/pull/6500) fix(cli): allow passing a list of file names to write-heading-ids ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6496](https://github.com/facebook/docusaurus/pull/6496) fix(core): configValidation should allow inline theme functions ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#6652](https://github.com/facebook/docusaurus/pull/6652) fix(theme-classic): minor BTT button fixes ([@lex111](https://github.com/lex111))\\n - [#6612](https://github.com/facebook/docusaurus/pull/6612) fix(theme-classic): make Prism additional languages properly server-side rendered ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6599](https://github.com/facebook/docusaurus/pull/6599) fix(theme-classic): add docSidebar as allowed item in dropdown ([@homotechsual](https://github.com/homotechsual))\\n - [#6531](https://github.com/facebook/docusaurus/pull/6531) fix(theme-classic): highlight active collapsible doc category properly ([@lex111](https://github.com/lex111))\\n - [#6515](https://github.com/facebook/docusaurus/pull/6515) fix(theme-classic): add key prop for SimpleLinks map ([@kgajera](https://github.com/kgajera))\\n - [#6508](https://github.com/facebook/docusaurus/pull/6508) fix(theme-classic): apply width/height for footer logos without href ([@kgajera](https://github.com/kgajera))\\n- `docusaurus-utils`\\n - [#6617](https://github.com/facebook/docusaurus/pull/6617) fix(utils): convert Markdown links in reference-style links with multiple spaces ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6489](https://github.com/facebook/docusaurus/pull/6489) fix(utils): do not resolve Markdown paths with @site prefix ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6478](https://github.com/facebook/docusaurus/pull/6478) fix(utils): Markdown linkification match local paths beginning with http ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#6495](https://github.com/facebook/docusaurus/pull/6495) fix(content-docs): render category with no subitems as a normal link ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6755](https://github.com/facebook/docusaurus/pull/6755) refactor: unify error handling behavior ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#6679](https://github.com/facebook/docusaurus/pull/6679) feat(create): better detection of package manager preference ([@lex111](https://github.com/lex111))\\n - [#6481](https://github.com/facebook/docusaurus/pull/6481) refactor(init): promote good practices; use site alias ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`\\n - [#6745](https://github.com/facebook/docusaurus/pull/6745) fix(content-docs): improve sidebar shorthand normalization error message ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6602](https://github.com/facebook/docusaurus/pull/6602) feat(content-docs): allow omitting enclosing array consistently for category shorthand ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6596](https://github.com/facebook/docusaurus/pull/6596) refactor(content-docs): clean up sidebars logic; validate generator returns ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6586](https://github.com/facebook/docusaurus/pull/6586) refactor(content-docs): read category metadata files before autogenerating ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus`\\n - [#6730](https://github.com/facebook/docusaurus/pull/6730) refactor: declare all props as interfaces ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-translations`\\n - [#6711](https://github.com/facebook/docusaurus/pull/6711) chore(theme-translations): complete Korean translations ([@revi](https://github.com/revi))\\n - [#6686](https://github.com/facebook/docusaurus/pull/6686) fix(theme-translations): improve Korean translations ([@winterlood](https://github.com/winterlood))\\n - [#6635](https://github.com/facebook/docusaurus/pull/6635) refactor(theme-translation): improve Traditional Chinese translation quality ([@toto6038](https://github.com/toto6038))\\n- `docusaurus-theme-classic`, `docusaurus-theme-translations`\\n - [#6674](https://github.com/facebook/docusaurus/pull/6674) fix(theme-classic): improve aria label of color mode toggle ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-theme-classic`\\n - [#6668](https://github.com/facebook/docusaurus/pull/6668) refactor: recommend using data-theme without html element selector ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#6622](https://github.com/facebook/docusaurus/pull/6622) refactor(theme-classic): clean up CSS of doc sidebar item ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#6644](https://github.com/facebook/docusaurus/pull/6644) fix(core): forward ref to Link\'s anchor element ([@koistya](https://github.com/koistya))\\n - [#6646](https://github.com/facebook/docusaurus/pull/6646) fix(cli): make docusaurus clear also remove .yarn/.cache folder ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6306](https://github.com/facebook/docusaurus/pull/6306) feat(core): use react-helmet-async ([@seyoon20087](https://github.com/seyoon20087))\\n- `docusaurus-utils-validation`\\n - [#6656](https://github.com/facebook/docusaurus/pull/6656) feat: allow numbers in plugin ID ([@cdemonchy-pro](https://github.com/cdemonchy-pro))\\n- `docusaurus-mdx-loader`, `docusaurus-utils`, `lqip-loader`\\n - [#6650](https://github.com/facebook/docusaurus/pull/6650) refactor(utils): replace hash with contenthash for file loader ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus-utils`\\n - [#6615](https://github.com/facebook/docusaurus/pull/6615) fix: remove more peer dependency warnings ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`\\n - [#6598](https://github.com/facebook/docusaurus/pull/6598) feat: make Markdown images lazy loaded ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6505](https://github.com/facebook/docusaurus/pull/6505) fix(theme-classic): make focused link outlined with JS disabled ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#6507](https://github.com/facebook/docusaurus/pull/6507) refactor: improve internal typing ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus-utils`\\n - [#6498](https://github.com/facebook/docusaurus/pull/6498) fix: updating peerDependency fields for yarn berry ([@vidarc](https://github.com/vidarc))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`\\n - [#6482](https://github.com/facebook/docusaurus/pull/6482) feat: mark some text labels as translatable ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#6727](https://github.com/facebook/docusaurus/pull/6727) docs: add Blog Matheus Brunelli site to showcase ([@mrbrunelli](https://github.com/mrbrunelli))\\n - [#6721](https://github.com/facebook/docusaurus/pull/6721) docs: add Butterfly Documentation to showcase ([@CodeDoctorDE](https://github.com/CodeDoctorDE))\\n - [#6710](https://github.com/facebook/docusaurus/pull/6710) docs(website): Add techharvesting to showcase ([@NaseelNiyas](https://github.com/NaseelNiyas))\\n - [#6708](https://github.com/facebook/docusaurus/pull/6708) docs: add doc for generated-index keyword/image metadata ([@slorber](https://github.com/slorber))\\n - [#6709](https://github.com/facebook/docusaurus/pull/6709) docs(website): fix video responsiveness ([@lex111](https://github.com/lex111))\\n - [#6687](https://github.com/facebook/docusaurus/pull/6687) docs: add deep dive video for Docusaurus ([@dmitryvinn](https://github.com/dmitryvinn))\\n - [#6704](https://github.com/facebook/docusaurus/pull/6704) docs(website): search doc typo searchParameters ([@slorber](https://github.com/slorber))\\n - [#6682](https://github.com/facebook/docusaurus/pull/6682) docs: add redux-cool site to showcase ([@Ruben-Arushanyan](https://github.com/Ruben-Arushanyan))\\n - [#6677](https://github.com/facebook/docusaurus/pull/6677) docs: add Rivalis to showcase ([@kalevski](https://github.com/kalevski))\\n - [#6676](https://github.com/facebook/docusaurus/pull/6676) docs: add SmartCookieWeb site to showcase ([@CookieJarApps](https://github.com/CookieJarApps))\\n - [#6675](https://github.com/facebook/docusaurus/pull/6675) docs: mention that all official themes are TypeScript-covered ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6673](https://github.com/facebook/docusaurus/pull/6673) docs: mention about blog date in front matter ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6672](https://github.com/facebook/docusaurus/pull/6672) refactor(website): extract homepage data from UI; feature text updates ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6670](https://github.com/facebook/docusaurus/pull/6670) docs: add CyberDrain Improved Partner Portal (CIPP) to showcase ([@homotechsual](https://github.com/homotechsual))\\n - [#6667](https://github.com/facebook/docusaurus/pull/6667) fix(website): make YT iframe responsive ([@lex111](https://github.com/lex111))\\n - [#6659](https://github.com/facebook/docusaurus/pull/6659) docs: add eli5 video to home page ([@dmitryvinn-fb](https://github.com/dmitryvinn-fb))\\n - [#6633](https://github.com/facebook/docusaurus/pull/6633) docs: improve wording of using Markdown file paths ([@BigDataWriter](https://github.com/BigDataWriter))\\n - [#6624](https://github.com/facebook/docusaurus/pull/6624) docs: add Resoto & Some Engineering Inc. to showcase ([@TheCatLady](https://github.com/TheCatLady))\\n - [#6611](https://github.com/facebook/docusaurus/pull/6611) docs: fix bad anchor link syntax ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6591](https://github.com/facebook/docusaurus/pull/6591) docs: improve GitHub Actions example jobs ([@ebarojas](https://github.com/ebarojas))\\n - [#6426](https://github.com/facebook/docusaurus/pull/6426) feat(website): add Tweets section ([@yangshun](https://github.com/yangshun))\\n - [#6532](https://github.com/facebook/docusaurus/pull/6532) docs: add SAP Cloud SDK to showcase ([@artemkovalyov](https://github.com/artemkovalyov))\\n - [#6513](https://github.com/facebook/docusaurus/pull/6513) docs: clean up CONTRIBUTING ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6501](https://github.com/facebook/docusaurus/pull/6501) docs: add Cloudflare pages deployment guide ([@apidev234](https://github.com/apidev234))\\n - [#6499](https://github.com/facebook/docusaurus/pull/6499) docs: mention how env vars can be read ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6492](https://github.com/facebook/docusaurus/pull/6492) docs: mention where to find the sitemap ([@tamalweb](https://github.com/tamalweb))\\n - [#6491](https://github.com/facebook/docusaurus/pull/6491) docs: add developers.verida to showcase ([@nick-verida](https://github.com/nick-verida))\\n - [#6414](https://github.com/facebook/docusaurus/pull/6414) feat(website): new plugin to load CHANGELOG and render as blog ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6404](https://github.com/facebook/docusaurus/pull/6404) docs: elaborate on Markdown asset linking; document pathname:// protocol ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6484](https://github.com/facebook/docusaurus/pull/6484) docs: remove mention that CDN resources are cached cross-domain ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6429](https://github.com/facebook/docusaurus/pull/6429) refactor: self-host KaTeX assets ([@pranabdas](https://github.com/pranabdas))\\n - [#6483](https://github.com/facebook/docusaurus/pull/6483) docs: mark a lot of website texts as translatable ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-preset-classic`\\n - [#6627](https://github.com/facebook/docusaurus/pull/6627) docs: fix presets documentation link ([@thedanielhanke](https://github.com/thedanielhanke))\\n\\n## :house: Internal\\n\\n- `docusaurus-theme-classic`\\n - [#6759](https://github.com/facebook/docusaurus/pull/6759) refactor(theme-classic): merge CSS files for Heading ([@slorber](https://github.com/slorber))\\n - [#6584](https://github.com/facebook/docusaurus/pull/6584) misc: enable jsx-key eslint rule ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`\\n - [#6756](https://github.com/facebook/docusaurus/pull/6756) test: sort migration test FS mock calls ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6609](https://github.com/facebook/docusaurus/pull/6609) refactor(migrate): change internal methods\' parameter style ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6476](https://github.com/facebook/docusaurus/pull/6476) chore: fix Stylelint globs for editor support ([@nschonni](https://github.com/nschonni))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#6744](https://github.com/facebook/docusaurus/pull/6744) fix(content-docs): properly display collocated social card image ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-types`, `docusaurus`\\n - [#6742](https://github.com/facebook/docusaurus/pull/6742) refactor: improve client modules types ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`\\n - [#6741](https://github.com/facebook/docusaurus/pull/6741) chore(module-type-aliases): add react as peer dependency ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6658](https://github.com/facebook/docusaurus/pull/6658) refactor(module-aliases): remove react-helmet dependency ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Other\\n - [#6726](https://github.com/facebook/docusaurus/pull/6726) misc: improve bug report template ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6512](https://github.com/facebook/docusaurus/pull/6512) misc: configure linguist behavior to show better language stats ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6487](https://github.com/facebook/docusaurus/pull/6487) chore: fix codesandbox example link + mention npm publish recovery ([@slorber](https://github.com/slorber))\\n - [#6486](https://github.com/facebook/docusaurus/pull/6486) chore: update examples for beta.15 ([@slorber](https://github.com/slorber))\\n - [#6485](https://github.com/facebook/docusaurus/pull/6485) fix(website): bad translate tags without default translation ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6716](https://github.com/facebook/docusaurus/pull/6716) refactor: ensure lodash is default-imported ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-logger`, `docusaurus-migrate`, `docusaurus`\\n - [#6661](https://github.com/facebook/docusaurus/pull/6661) refactor: convert CLI entry points to ESM; migrate create-docusaurus to ESM ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-common`, `docusaurus`\\n - [#6651](https://github.com/facebook/docusaurus/pull/6651) refactor: reduce exported members of docusaurus router ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#6629](https://github.com/facebook/docusaurus/pull/6629) refactor: move module declarations for non-route components to theme-classic ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-pwa`, `docusaurus-theme-classic`\\n - [#6614](https://github.com/facebook/docusaurus/pull/6614) refactor: remove Babel plugins that are included in preset-env ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-translations`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#6605](https://github.com/facebook/docusaurus/pull/6605) chore: fix ESLint warnings, restrict export all syntax ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`\\n - [#6583](https://github.com/facebook/docusaurus/pull/6583) refactor(live-codeblock): migrate theme to TS ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6524](https://github.com/facebook/docusaurus/pull/6524) refactor: enforce named capture groups; clean up regexes ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#6521](https://github.com/facebook/docusaurus/pull/6521) refactor: mark all functions that import external modules as async ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `stylelint-copyright`\\n - [#6514](https://github.com/facebook/docusaurus/pull/6514) chore: clean up ESLint config, enable a few rules ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-types`, `docusaurus`\\n - [#6511](https://github.com/facebook/docusaurus/pull/6511) refactor(core): convert theme-fallback to TS ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-utils`\\n - [#6506](https://github.com/facebook/docusaurus/pull/6506) test: add test for readOutputHTMLFile ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-theme-common`\\n - [#6502](https://github.com/facebook/docusaurus/pull/6502) refactor: fix all eslint warnings ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus`\\n - [#6474](https://github.com/facebook/docusaurus/pull/6474) test: rename \'fixtures\' to \'**fixtures**\' ([@nschonni](https://github.com/nschonni))\\n\\n## :running: Performance\\n\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`\\n - [#6725](https://github.com/facebook/docusaurus/pull/6725) refactor: convert all fs methods to async ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 38\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Artem Kovalov ([@artemkovalyov](https://github.com/artemkovalyov))\\n- Balthasar Hofer ([@lebalz](https://github.com/lebalz))\\n- Clement Demonchy ([@cdemonchy-pro](https://github.com/cdemonchy-pro))\\n- CodeDoctor ([@CodeDoctorDE](https://github.com/CodeDoctorDE))\\n- Daniel Hanke ([@thedanielhanke](https://github.com/thedanielhanke))\\n- Daniel Kalevski ([@kalevski](https://github.com/kalevski))\\n- Dmitry Vinnik ([@dmitryvinn](https://github.com/dmitryvinn))\\n- Dmitry Vinnik | Meta ([@dmitryvinn-fb](https://github.com/dmitryvinn-fb))\\n- Erick Zhao ([@erickzhao](https://github.com/erickzhao))\\n- Everardo J. Barojas M. ([@ebarojas](https://github.com/ebarojas))\\n- Felipe Santos ([@felipecrs](https://github.com/felipecrs))\\n- Gaurish ([@apidev234](https://github.com/apidev234))\\n- Hong Yongmin ([@revi](https://github.com/revi))\\n- Jody Heavener ([@jodyheavener](https://github.com/jodyheavener))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Kishan Gajera ([@kgajera](https://github.com/kgajera))\\n- Konstantin Tarkus ([@koistya](https://github.com/koistya))\\n- Matheus Ricardo Brunelli ([@mrbrunelli](https://github.com/mrbrunelli))\\n- Matthew Ailes ([@vidarc](https://github.com/vidarc))\\n- Mikey O\'Toole ([@homotechsual](https://github.com/homotechsual))\\n- Miles Johnson ([@milesj](https://github.com/milesj))\\n- Muhammad Redho Ayassa ([@redhoyasa](https://github.com/redhoyasa))\\n- Naseel Niyas ([@NaseelNiyas](https://github.com/NaseelNiyas))\\n- Nick Schonning ([@nschonni](https://github.com/nschonni))\\n- Pranab Das ([@pranabdas](https://github.com/pranabdas))\\n- Ruben Arushanyan ([@Ruben-Arushanyan](https://github.com/Ruben-Arushanyan))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tamal Web ([@tamalweb](https://github.com/tamalweb))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- [@BigDataWriter](https://github.com/BigDataWriter)\\n- [@CookieJarApps](https://github.com/CookieJarApps)\\n- [@TheCatLady](https://github.com/TheCatLady)\\n- [@nick-verida](https://github.com/nick-verida)\\n- [@seyoon20087](https://github.com/seyoon20087)\\n- [@toto6038](https://github.com/toto6038)\\n- \uC774\uC815\uD658 ([@winterlood](https://github.com/winterlood))"},{"id":"/2.0.0-beta.15","metadata":{"permalink":"/changelog/2.0.0-beta.15","source":"@site/changelog/source/2.0.0-beta.15.md","title":"2.0.0-beta.15","description":"New Feature","date":"2022-01-26T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"\u4E45\u67D3 | JiuRan","alias":"1084350607","url":"https://github.com/1084350607","imageURL":"https://github.com/1084350607.png","key":"1084350607","page":null},{"name":"Abdelrahman Ahmed","alias":"abahmed","url":"https://github.com/abahmed","imageURL":"https://github.com/abahmed.png","key":"abahmed","page":null},{"name":"AJ Rice","alias":"ajrice6713","url":"https://github.com/ajrice6713","imageURL":"https://github.com/ajrice6713.png","key":"ajrice6713","page":null},{"name":"Alexandru Grigoras","alias":"alexgrigoras","url":"https://github.com/alexgrigoras","imageURL":"https://github.com/alexgrigoras.png","key":"alexgrigoras","page":null},{"name":"Filipe Guerra","alias":"alias-mac","url":"https://github.com/alias-mac","imageURL":"https://github.com/alias-mac.png","key":"alias-mac","page":null},{"name":"Amir M. Mohamadi","alias":"amir2mi","url":"https://github.com/amir2mi","imageURL":"https://github.com/amir2mi.png","key":"amir2mi","page":null},{"name":"Anthony McCaigue","alias":"antmcc49","url":"https://github.com/antmcc49","imageURL":"https://github.com/antmcc49.png","key":"antmcc49","page":null},{"name":"Armano","alias":"armano2","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png","key":"armano2","page":null},{"name":"Brendan Nee","alias":"brendannee","url":"https://github.com/brendannee","imageURL":"https://github.com/brendannee.png","key":"brendannee","page":null},{"name":"Devtato","alias":"cerkiewny","url":"https://github.com/cerkiewny","imageURL":"https://github.com/cerkiewny.png","key":"cerkiewny","page":null},{"name":"Davide Bianchi","alias":"davidebianchi","url":"https://github.com/davidebianchi","imageURL":"https://github.com/davidebianchi.png","key":"davidebianchi","page":null},{"name":"Edouard Bonlieu","alias":"edouardb","url":"https://github.com/edouardb","imageURL":"https://github.com/edouardb.png","key":"edouardb","page":null},{"name":"Feodor Fitsner","alias":"FeodorFitsner","url":"https://github.com/FeodorFitsner","imageURL":"https://github.com/FeodorFitsner.png","key":"FeodorFitsner","page":null},{"name":"Gabriel Csapo","alias":"gabrielcsapo","url":"https://github.com/gabrielcsapo","imageURL":"https://github.com/gabrielcsapo.png","key":"gabrielcsapo","page":null},{"name":"Chen","alias":"HiChen404","url":"https://github.com/HiChen404","imageURL":"https://github.com/HiChen404.png","key":"HiChen404","page":null},{"name":"Mikey O\'Toole","alias":"homotechsual","url":"https://github.com/homotechsual","imageURL":"https://github.com/homotechsual.png","key":"homotechsual","page":null},{"name":"Jeffrey Aven","alias":"jeffreyaven","url":"https://github.com/jeffreyaven","imageURL":"https://github.com/jeffreyaven.png","key":"jeffreyaven","page":null},{"name":"Jody Heavener","alias":"jodyheavener","url":"https://github.com/jodyheavener","imageURL":"https://github.com/jodyheavener.png","key":"jodyheavener","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Joseph","alias":"josephriosIO","url":"https://github.com/josephriosIO","imageURL":"https://github.com/josephriosIO.png","key":"josephriosIO","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Josh Goldberg","alias":"JoshuaKGoldberg","url":"https://github.com/JoshuaKGoldberg","imageURL":"https://github.com/JoshuaKGoldberg.png","key":"JoshuaKGoldberg","page":null},{"name":"Jake Witz","alias":"jwitz","url":"https://github.com/jwitz","imageURL":"https://github.com/jwitz.png","key":"jwitz","page":null},{"name":"Kaustubh Kulkarni","alias":"kaustubhk24","url":"https://github.com/kaustubhk24","imageURL":"https://github.com/kaustubhk24.png","key":"kaustubhk24","page":null},{"name":"kuizuo","alias":"kuizuo","url":"https://github.com/kuizuo","imageURL":"https://github.com/kuizuo.png","key":"kuizuo","page":null},{"name":"Minh Pham","alias":"lmpham1","url":"https://github.com/lmpham1","imageURL":"https://github.com/lmpham1.png","key":"lmpham1","page":null},{"name":"Lars Mikkelsen","alias":"ltm","url":"https://github.com/ltm","imageURL":"https://github.com/ltm.png","key":"ltm","page":null},{"name":"mcallisto","alias":"mcallisto","url":"https://github.com/mcallisto","imageURL":"https://github.com/mcallisto.png","key":"mcallisto","page":null},{"name":"Sanjay Soundarajan","alias":"megasanjay","url":"https://github.com/megasanjay","imageURL":"https://github.com/megasanjay.png","key":"megasanjay","page":null},{"name":"Morooka Kotaro","alias":"MorookaKotaro","url":"https://github.com/MorookaKotaro","imageURL":"https://github.com/MorookaKotaro.png","key":"MorookaKotaro","page":null},{"name":"Yaroslav Serhieiev","alias":"noomorph","url":"https://github.com/noomorph","imageURL":"https://github.com/noomorph.png","key":"noomorph","page":null},{"name":"Nick Schonning","alias":"nschonni","url":"https://github.com/nschonni","imageURL":"https://github.com/nschonni.png","key":"nschonni","page":null},{"name":"\xd6mer Faruk APLAK","alias":"omeraplak","url":"https://github.com/omeraplak","imageURL":"https://github.com/omeraplak.png","key":"omeraplak","page":null},{"name":"Nayan Patel","alias":"PatelN123","url":"https://github.com/PatelN123","imageURL":"https://github.com/PatelN123.png","key":"PatelN123","page":null},{"name":"Pranab Das","alias":"pranabdas","url":"https://github.com/pranabdas","imageURL":"https://github.com/pranabdas.png","key":"pranabdas","page":null},{"name":"Reece Dunham","alias":"RDIL","url":"https://github.com/RDIL","imageURL":"https://github.com/RDIL.png","key":"RDIL","page":null},{"name":"Rishi Raj Jain","alias":"rishi-raj-jain","url":"https://github.com/rishi-raj-jain","imageURL":"https://github.com/rishi-raj-jain.png","key":"rishi-raj-jain","page":null},{"name":"roydukkey","alias":"roydukkey","url":"https://github.com/roydukkey","imageURL":"https://github.com/roydukkey.png","key":"roydukkey","page":null},{"name":"ruanqizhen","alias":"ruanqizhen","url":"https://github.com/ruanqizhen","imageURL":"https://github.com/ruanqizhen.png","key":"ruanqizhen","page":null},{"name":"sgenoud","alias":"sgenoud","url":"https://github.com/sgenoud","imageURL":"https://github.com/sgenoud.png","key":"sgenoud","page":null},{"name":"Shun Wakatsuki","alias":"shwaka","url":"https://github.com/shwaka","imageURL":"https://github.com/shwaka.png","key":"shwaka","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tapan Chudasama","alias":"tapanchudasama","url":"https://github.com/tapanchudasama","imageURL":"https://github.com/tapanchudasama.png","key":"tapanchudasama","page":null},{"name":"Vaibhav Shinde","alias":"vaibhavshn","url":"https://github.com/vaibhavshn","imageURL":"https://github.com/vaibhavshn.png","key":"vaibhavshn","page":null},{"name":"Vandr\xe9 Leal","alias":"vandreleal","url":"https://github.com/vandreleal","imageURL":"https://github.com/vandreleal.png","key":"vandreleal","page":null},{"name":"wood3n","alias":"wood3n","url":"https://github.com/wood3n","imageURL":"https://github.com/wood3n.png","key":"wood3n","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2022-01-26T20:00","authors":["1084350607","abahmed","ajrice6713","alexgrigoras","alias-mac","amir2mi","antmcc49","armano2","brendannee","cerkiewny","davidebianchi","edouardb","FeodorFitsner","gabrielcsapo","HiChen404","homotechsual","jeffreyaven","jodyheavener","johnnyreilly","josephriosIO","Josh-Cena","JoshuaKGoldberg","jwitz","kaustubhk24","kuizuo","lmpham1","ltm","mcallisto","megasanjay","MorookaKotaro","noomorph","nschonni","omeraplak","PatelN123","pranabdas","RDIL","rishi-raj-jain","roydukkey","ruanqizhen","sgenoud","shwaka","slorber","tapanchudasama","vaibhavshn","vandreleal","wood3n"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.16","permalink":"/changelog/2.0.0-beta.16"},"nextItem":{"title":"2.0.0-beta.14","permalink":"/changelog/2.0.0-beta.14"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-docs`\\n - [#6451](https://github.com/facebook/docusaurus/pull/6451) feat(content-docs): expose isCategoryIndex matcher to customize conventions ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5782](https://github.com/facebook/docusaurus/pull/5782) feat(content-docs): displayed_sidebar front matter ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6466](https://github.com/facebook/docusaurus/pull/6466) feat(theme-classic): add stable class for DocSidebarContainer ([@homotechsual](https://github.com/homotechsual))\\n - [#3811](https://github.com/facebook/docusaurus/pull/3811) feat(theme-classic): auto-collapse sibling categories in doc sidebar ([@josephriosIO](https://github.com/josephriosIO))\\n - [#6216](https://github.com/facebook/docusaurus/pull/6216) feat(theme-classic): usable CodeBlock outside markdown ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#6416](https://github.com/facebook/docusaurus/pull/6416) feat(content-blog): allow authors list to contain images only ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`\\n - [#6415](https://github.com/facebook/docusaurus/pull/6415) feat(content-blog): allow disabling generating archive ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6245](https://github.com/facebook/docusaurus/pull/6245) feat(content-blog): parse date from middle of file path ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6388](https://github.com/facebook/docusaurus/pull/6388) feat(content-blog): include tags in feed ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#6371](https://github.com/facebook/docusaurus/pull/6371) feat(core, theme-classic): allow overriding htmlLang ([@noomorph](https://github.com/noomorph))\\n- `docusaurus-mdx-loader`\\n - [#6323](https://github.com/facebook/docusaurus/pull/6323) feat(mdx-loader): preserve hash in image src; support GH themed images ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#6139](https://github.com/facebook/docusaurus/pull/6139) feat(theme-classic): new navbar item linking to a sidebar ([@lmpham1](https://github.com/lmpham1))\\n - [#6239](https://github.com/facebook/docusaurus/pull/6239) feat(content-docs): allow SEO metadata for category index pages ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-sitemap`\\n - [#6248](https://github.com/facebook/docusaurus/pull/6248) feat(sitemap): remove trailingSlash option; respect noIndex config ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-ideal-image`, `docusaurus-theme-translations`\\n - [#6173](https://github.com/facebook/docusaurus/pull/6173) feat(ideal-image): allow translating status messages ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-ideal-image`\\n - [#6155](https://github.com/facebook/docusaurus/pull/6155) feat(ideal-image): new option disableInDev ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-translations`\\n - [#6169](https://github.com/facebook/docusaurus/pull/6169) feat(theme-translations): add Italian translations ([@mcallisto](https://github.com/mcallisto))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-types`, `docusaurus`\\n - [#6166](https://github.com/facebook/docusaurus/pull/6166) feat: async plugin creator functions ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#6165](https://github.com/facebook/docusaurus/pull/6165) feat(core): async docusaurus.config.js creator function ([@slorber](https://github.com/slorber))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-theme-search-algolia`\\n - [#6407](https://github.com/facebook/docusaurus/pull/6407) feat(search): enable contextual search by default ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`\\n - [#6289](https://github.com/facebook/docusaurus/pull/6289) refactor: move @theme/hooks to @docusaurus/theme-common ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#6283](https://github.com/facebook/docusaurus/pull/6283) refactor(theme-classic): apply import/no-named-export eslint rule ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-sitemap`\\n - [#6248](https://github.com/facebook/docusaurus/pull/6248) feat(sitemap): remove trailingSlash option; respect noIndex config ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus-utils`, `docusaurus`\\n - [#6454](https://github.com/facebook/docusaurus/pull/6454) fix(content-blog): generate feed by reading build output ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#6468](https://github.com/facebook/docusaurus/pull/6468) fix(init): cd to correct path when installing ([@gabrielcsapo](https://github.com/gabrielcsapo))\\n- `docusaurus-mdx-loader`\\n - [#4827](https://github.com/facebook/docusaurus/pull/4827) fix: allow links to JSON in .md files to be transformed as asset links ([@antmcc49](https://github.com/antmcc49))\\n- `docusaurus-plugin-content-docs`\\n - [#6435](https://github.com/facebook/docusaurus/pull/6435) fix(content-docs): make getActivePlugin match plugin paths more exactly ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6310](https://github.com/facebook/docusaurus/pull/6310) fix: highlight appropriate navItem when browsing generated category index ([@tapanchudasama](https://github.com/tapanchudasama))\\n - [#6202](https://github.com/facebook/docusaurus/pull/6202) fix(content-docs): quotify path when retrieving git history ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#6424](https://github.com/facebook/docusaurus/pull/6424) fix(core): fix css url(\\"image.png\\"), use css-loader v6 with esModules: false ([@slorber](https://github.com/slorber))\\n - [#6378](https://github.com/facebook/docusaurus/pull/6378) fix(core): do not coerce webpack warning to string ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6197](https://github.com/facebook/docusaurus/pull/6197) fix(cli): quotify temp path in deploy command ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6168](https://github.com/facebook/docusaurus/pull/6168) fix(core): update webpack-dev-server + fix deprecation warning ([@slorber](https://github.com/slorber))\\n- `docusaurus-logger`, `docusaurus-utils`\\n - [#6384](https://github.com/facebook/docusaurus/pull/6384) fix(logger): properly stringify objects for logging ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus`\\n - [#6338](https://github.com/facebook/docusaurus/pull/6338) fix(core): error boundary should allow no children ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#6314](https://github.com/facebook/docusaurus/pull/6314) fix(theme-classic): fix mobile version dropdown label with only one version ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6288](https://github.com/facebook/docusaurus/pull/6288) fix(theme-classic): add missing role=region to SkipToContent ([@JoshuaKGoldberg](https://github.com/JoshuaKGoldberg))\\n - [#6213](https://github.com/facebook/docusaurus/pull/6213) refactor(theme-classic): extract common PaginatorNavLink component ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6177](https://github.com/facebook/docusaurus/pull/6177) fix(theme-classic): make React elements in pre render correctly ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#6300](https://github.com/facebook/docusaurus/pull/6300) refactor: move exported type definitions to declaration file ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`\\n - [#6276](https://github.com/facebook/docusaurus/pull/6276) fix(migrate): migration CLI should correctly migrate gtag options ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`\\n - [#6244](https://github.com/facebook/docusaurus/pull/6244) fix(content-blog): always convert front matter date as UTC ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-utils`, `docusaurus`\\n - [#6190](https://github.com/facebook/docusaurus/pull/6190) fix(utils): properly escape Windows paths ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-module-type-aliases`\\n - [#6469](https://github.com/facebook/docusaurus/pull/6469) fix(module-type-aliases): fix type def for translate params ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-search-algolia`\\n - [#6407](https://github.com/facebook/docusaurus/pull/6407) feat(search): enable contextual search by default ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`\\n - [#6443](https://github.com/facebook/docusaurus/pull/6443) refactor(mdx-loader): use vfile.path to access Markdown file path ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#6427](https://github.com/facebook/docusaurus/pull/6427) feat(theme-classic): add aria-current to sidebar category link ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6391](https://github.com/facebook/docusaurus/pull/6391) refactor(theme-classic): add comments to Prism setup; minor refactor ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6240](https://github.com/facebook/docusaurus/pull/6240) refactor(theme-classic): use front matter from metadata for BlogPostPage ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#6419](https://github.com/facebook/docusaurus/pull/6419) feat(core): warn users about hand-modifying generated files ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6405](https://github.com/facebook/docusaurus/pull/6405) feat(core): check imported API name when extracting translations ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6291](https://github.com/facebook/docusaurus/pull/6291) feat(core): improve error message for BrowserOnly; better docs ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#5822](https://github.com/facebook/docusaurus/pull/5822) feat: update website & init template palette to pass WCAG test; include contrast check in ColorGenerator ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6368](https://github.com/facebook/docusaurus/pull/6368) fix(create-docusaurus): add useBaseUrl for image URLs ([@alias-mac](https://github.com/alias-mac))\\n- `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`\\n - [#6400](https://github.com/facebook/docusaurus/pull/6400) feat(content-pages): front matter validation, include front matter in metadata ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-theme-classic`\\n - [#6339](https://github.com/facebook/docusaurus/pull/6339) feat(mdx-loader): read image dimensions when processing Markdown ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`\\n - [#6388](https://github.com/facebook/docusaurus/pull/6388) feat(content-blog): include tags in feed ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6189](https://github.com/facebook/docusaurus/pull/6189) feat(content-blog): include front matter in loaded content metadata ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-common`\\n - [#6317](https://github.com/facebook/docusaurus/pull/6317) feat(theme-classic): autoscroll TOC with active link ([@cerkiewny](https://github.com/cerkiewny))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#6303](https://github.com/facebook/docusaurus/pull/6303) test(utils, mdx-loader, core): improve coverage ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-preset-classic`\\n - [#6284](https://github.com/facebook/docusaurus/pull/6284) fix(preset-classic): throw if preset finds GA options in theme config ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus`\\n - [#6186](https://github.com/facebook/docusaurus/pull/6186) refactor: print trailing new line when outputting JSON ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#6296](https://github.com/facebook/docusaurus/pull/6296) docs: add advanced guides ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6459](https://github.com/facebook/docusaurus/pull/6459) docs: add replicad to showcase ([@sgenoud](https://github.com/sgenoud))\\n - [#6334](https://github.com/facebook/docusaurus/pull/6334) docs: 2021 recap blog post ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6458](https://github.com/facebook/docusaurus/pull/6458) docs: add Kuizuo\'s Personal Website to showcase ([@kuizuo](https://github.com/kuizuo))\\n - [#6431](https://github.com/facebook/docusaurus/pull/6431) docs: add Koyeb as a deployment option ([@edouardb](https://github.com/edouardb))\\n - [#6455](https://github.com/facebook/docusaurus/pull/6455) docs: add Sass Fairy to showcase ([@roydukkey](https://github.com/roydukkey))\\n - [#6453](https://github.com/facebook/docusaurus/pull/6453) docs: document embedding generated index in doc page ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6450](https://github.com/facebook/docusaurus/pull/6450) docs: split sidebar documentation into sections ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6449](https://github.com/facebook/docusaurus/pull/6449) docs: multiple doc improvements ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6448](https://github.com/facebook/docusaurus/pull/6448) fix(website): update colors correctly when palette is only customized in one color mode ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6385](https://github.com/facebook/docusaurus/pull/6385) chore: add height/width for front page images ([@nschonni](https://github.com/nschonni))\\n - [#6445](https://github.com/facebook/docusaurus/pull/6445) docs: update showcase data of InfraQL ([@jeffreyaven](https://github.com/jeffreyaven))\\n - [#6433](https://github.com/facebook/docusaurus/pull/6433) docs: add kube-green to showcase ([@davidebianchi](https://github.com/davidebianchi))\\n - [#6428](https://github.com/facebook/docusaurus/pull/6428) docs: elaborate on i18n tutorial ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6422](https://github.com/facebook/docusaurus/pull/6422) docs: add 404Lab wiki to showcase ([@HiChen404](https://github.com/HiChen404))\\n - [#6420](https://github.com/facebook/docusaurus/pull/6420) fix(website): restore some site CSS in light mode ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6410](https://github.com/facebook/docusaurus/pull/6410) docs: add SODA for SPARC to showcase ([@megasanjay](https://github.com/megasanjay))\\n - [#6417](https://github.com/facebook/docusaurus/pull/6417) docs: fix accessibility of search modal ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6406](https://github.com/facebook/docusaurus/pull/6406) docs(i18n): add docs for htmlLang config ([@noomorph](https://github.com/noomorph))\\n - [#6393](https://github.com/facebook/docusaurus/pull/6393) docs: update Algolia docs for new DocSearch infra ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6383](https://github.com/facebook/docusaurus/pull/6383) docs: elaborate on different CSS class names ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6348](https://github.com/facebook/docusaurus/pull/6348) docs: add KaustubhK24\'s site to showcase ([@kaustubhk24](https://github.com/kaustubhk24))\\n - [#6333](https://github.com/facebook/docusaurus/pull/6333) feat(website): search in showcase ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6344](https://github.com/facebook/docusaurus/pull/6344) fix(website): make ColorGenerator functional ([@shwaka](https://github.com/shwaka))\\n - [#6340](https://github.com/facebook/docusaurus/pull/6340) docs: minor fix in the sample config for ESM ([@pranabdas](https://github.com/pranabdas))\\n - [#6336](https://github.com/facebook/docusaurus/pull/6336) docs: make upgrade guide always show the latest version ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6320](https://github.com/facebook/docusaurus/pull/6320) chore: upgrade rehype-katex with ESM support, update docs ([@pranabdas](https://github.com/pranabdas))\\n - [#6335](https://github.com/facebook/docusaurus/pull/6335) docs: add Pglet website to showcase ([@FeodorFitsner](https://github.com/FeodorFitsner))\\n - [#6327](https://github.com/facebook/docusaurus/pull/6327) docs: remove typo bracket ([@MorookaKotaro](https://github.com/MorookaKotaro))\\n - [#6316](https://github.com/facebook/docusaurus/pull/6316) docs: add bandwidth.com to showcase ([@ajrice6713](https://github.com/ajrice6713))\\n - [#6313](https://github.com/facebook/docusaurus/pull/6313) docs: add Refine site to showcase ([@omeraplak](https://github.com/omeraplak))\\n - [#6318](https://github.com/facebook/docusaurus/pull/6318) fix(website): various anchor link fixes ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6308](https://github.com/facebook/docusaurus/pull/6308) fix(website): wrap details in mdx-code-block ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6307](https://github.com/facebook/docusaurus/pull/6307) docs: document MD and JSX interoperability issues ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6299](https://github.com/facebook/docusaurus/pull/6299) docs: add icodex to showcase ([@wood3n](https://github.com/wood3n))\\n - [#6297](https://github.com/facebook/docusaurus/pull/6297) docs: mention setup in monorepo ([@PatelN123](https://github.com/PatelN123))\\n - [#6293](https://github.com/facebook/docusaurus/pull/6293) docs: remove GraphQL mesh from showcase ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6231](https://github.com/facebook/docusaurus/pull/6231) docs: update showcase images; remove GraphQL Code Generator site ([@PatelN123](https://github.com/PatelN123))\\n - [#6285](https://github.com/facebook/docusaurus/pull/6285) refactor(website): further optimize showcase images ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6281](https://github.com/facebook/docusaurus/pull/6281) docs: Add kwatch to showcase ([@abahmed](https://github.com/abahmed))\\n - [#6280](https://github.com/facebook/docusaurus/pull/6280) docs: elaborate on doc versioning ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6043](https://github.com/facebook/docusaurus/pull/6043) fix(website): resize showcase images, tighten CI check ([@armano2](https://github.com/armano2))\\n - [#6274](https://github.com/facebook/docusaurus/pull/6274) docs: add dyte docs to showcase ([@vaibhavshn](https://github.com/vaibhavshn))\\n - [#6278](https://github.com/facebook/docusaurus/pull/6278) docs: add Khyron Realm to showcase ([@alexgrigoras](https://github.com/alexgrigoras))\\n - [#6271](https://github.com/facebook/docusaurus/pull/6271) docs: add FlatifyCSS to showcase ([@amir2mi](https://github.com/amir2mi))\\n - [#6275](https://github.com/facebook/docusaurus/pull/6275) fix(website): fix config-tabs breaking after translation ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6269](https://github.com/facebook/docusaurus/pull/6269) docs: add Ionic to showcase ([@ltm](https://github.com/ltm))\\n - [#6272](https://github.com/facebook/docusaurus/pull/6272) docs: make tsconfig work OOTB in typescript guide ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6265](https://github.com/facebook/docusaurus/pull/6265) docs: add Eric JiuRan\'s blog to showcase ([@1084350607](https://github.com/1084350607))\\n - [#6242](https://github.com/facebook/docusaurus/pull/6242) docs(showcase): update oxidizer website url ([@vandreleal](https://github.com/vandreleal))\\n - [#6226](https://github.com/facebook/docusaurus/pull/6226) docs: update showcase data for digital support notes ([@PatelN123](https://github.com/PatelN123))\\n - [#6224](https://github.com/facebook/docusaurus/pull/6224) docs: add TalentBrick to showcase ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6223](https://github.com/facebook/docusaurus/pull/6223) docs: normalize CodeBlock highlighting ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6214](https://github.com/facebook/docusaurus/pull/6214) feat(website): improve prism themes ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6215](https://github.com/facebook/docusaurus/pull/6215) docs: use BrowserWindow for Markdown demos ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6193](https://github.com/facebook/docusaurus/pull/6193) docs: normalize plugin API documentation ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6209](https://github.com/facebook/docusaurus/pull/6209) docs: elaborate on static asset resolution ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6207](https://github.com/facebook/docusaurus/pull/6207) docs: add default value for BrowserWindow URL field ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6206](https://github.com/facebook/docusaurus/pull/6206) docs: fix highlighting of YAML front matter ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6191](https://github.com/facebook/docusaurus/pull/6191) docs: fix react live scope button color in dark mode ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6188](https://github.com/facebook/docusaurus/pull/6188) docs: add Layer0 to deployment guide ([@rishi-raj-jain](https://github.com/rishi-raj-jain))\\n - [#6184](https://github.com/facebook/docusaurus/pull/6184) docs: remove mention of \'UA-\' in gtag ([@johnnyreilly](https://github.com/johnnyreilly))\\n - [#6181](https://github.com/facebook/docusaurus/pull/6181) docs: add GTFS-to-HTML to showcase ([@brendannee](https://github.com/brendannee))\\n - [#6178](https://github.com/facebook/docusaurus/pull/6178) docs: add Digital Support Notes to showcase ([@PatelN123](https://github.com/PatelN123))\\n - [#6170](https://github.com/facebook/docusaurus/pull/6170) docs: add LabVIEW coding experience to showcase ([@ruanqizhen](https://github.com/ruanqizhen))\\n - [#6164](https://github.com/facebook/docusaurus/pull/6164) docs: fix import module name of theme/Admonition ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6158](https://github.com/facebook/docusaurus/pull/6158) docs: add Astronomer to showcase ([@jwitz](https://github.com/jwitz))\\n- `create-docusaurus`\\n - [#5822](https://github.com/facebook/docusaurus/pull/5822) feat: update website & init template palette to pass WCAG test; include contrast check in ColorGenerator ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6187](https://github.com/facebook/docusaurus/pull/6187) docs: make installation guide more beginner-friendly ([@PatelN123](https://github.com/PatelN123))\\n- `docusaurus-utils`\\n - [#6204](https://github.com/facebook/docusaurus/pull/6204) docs: recommend highlighting with comments than number range ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-theme-classic`\\n - [#6203](https://github.com/facebook/docusaurus/pull/6203) docs: audit grammar issues ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :house: Internal\\n\\n- `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#6456](https://github.com/facebook/docusaurus/pull/6456) chore: add cSpell for spell checking ([@nschonni](https://github.com/nschonni))\\n- Other\\n - [#6444](https://github.com/facebook/docusaurus/pull/6444) misc: update nvmrc to 14.17.0 to meet dependency requirements ([@jodyheavener](https://github.com/jodyheavener))\\n - [#6441](https://github.com/facebook/docusaurus/pull/6441) misc: fix stylelint erroring when lint-staged passed ignored file ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6421](https://github.com/facebook/docusaurus/pull/6421) chore: fix yarn build:website:fast ([@slorber](https://github.com/slorber))\\n - [#6381](https://github.com/facebook/docusaurus/pull/6381) chore(website): set cache-control for static assets ([@nschonni](https://github.com/nschonni))\\n - [#6364](https://github.com/facebook/docusaurus/pull/6364) chore: remove Intl polyfills for Jest ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6325](https://github.com/facebook/docusaurus/pull/6325) chore: add Dependabot for dependency updates ([@nschonni](https://github.com/nschonni))\\n - [#6328](https://github.com/facebook/docusaurus/pull/6328) chore(ci): upgrade actions/github-script to v5 ([@nschonni](https://github.com/nschonni))\\n - [#6332](https://github.com/facebook/docusaurus/pull/6332) chore(deps): bump follow-redirects from 1.14.5 to 1.14.7 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#6326](https://github.com/facebook/docusaurus/pull/6326) misc(ci): remove redundant \\"CI: true\\" env ([@nschonni](https://github.com/nschonni))\\n - [#6304](https://github.com/facebook/docusaurus/pull/6304) chore: upgrade to Husky 7 ([@nschonni](https://github.com/nschonni))\\n - [#6222](https://github.com/facebook/docusaurus/pull/6222) test: ensure consistent CSS ordering ([@slorber](https://github.com/slorber))\\n - [#6159](https://github.com/facebook/docusaurus/pull/6159) docs: remove useless comment ([@slorber](https://github.com/slorber))\\n - [#6148](https://github.com/facebook/docusaurus/pull/6148) chore(examples): update examples to 2.0.0-beta.14 ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-debug`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#6442](https://github.com/facebook/docusaurus/pull/6442) chore: enable stylelint standard config ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus`\\n - [#6440](https://github.com/facebook/docusaurus/pull/6440) chore: remove some unused dependencies from package.json ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#6436](https://github.com/facebook/docusaurus/pull/6436) refactor(theme-classic): render BlogPostItem as one JSX element ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6283](https://github.com/facebook/docusaurus/pull/6283) refactor(theme-classic): apply import/no-named-export eslint rule ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-pages`\\n - [#6413](https://github.com/facebook/docusaurus/pull/6413) fix(content-pages): declare hide_table_of_contents as boolean ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus`\\n - [#6399](https://github.com/facebook/docusaurus/pull/6399) refactor: clean up TODO comments ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-cssnano-preset`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-common`, `docusaurus-theme-translations`, `docusaurus`\\n - [#6387](https://github.com/facebook/docusaurus/pull/6387) test: improve test coverage ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-utils`\\n - [#6380](https://github.com/facebook/docusaurus/pull/6380) chore: enable a few fixable ESLint rules ([@nschonni](https://github.com/nschonni))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-docs`, `docusaurus-utils`, `docusaurus`\\n - [#6377](https://github.com/facebook/docusaurus/pull/6377) refactor: use findAsyncSequential in a few places ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-utils-common`, `docusaurus-utils`, `docusaurus`, `stylelint-copyright`\\n - [#6375](https://github.com/facebook/docusaurus/pull/6375) chore: enable eslint-plugin-jest ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#6373](https://github.com/facebook/docusaurus/pull/6373) chore: enable react/jsx-closing-bracket-location ([@nschonni](https://github.com/nschonni))\\n- `docusaurus-theme-classic`, `stylelint-copyright`\\n - [#6374](https://github.com/facebook/docusaurus/pull/6374) feat(stylelint-copyright): autofix, stricter config ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-cssnano-preset`, `docusaurus-theme-classic`\\n - [#6372](https://github.com/facebook/docusaurus/pull/6372) chore: add baseline stylelint rules ([@nschonni](https://github.com/nschonni))\\n- `create-docusaurus`, `docusaurus-plugin-debug`, `docusaurus-theme-classic`\\n - [#6369](https://github.com/facebook/docusaurus/pull/6369) chore: upgrade lint-staged and globs ([@nschonni](https://github.com/nschonni))\\n- `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus`\\n - [#6341](https://github.com/facebook/docusaurus/pull/6341) chore: regenerate yarn.lock ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-pages`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus`\\n - [#6324](https://github.com/facebook/docusaurus/pull/6324) chore: minor typo cleanup ([@nschonni](https://github.com/nschonni))\\n- `create-docusaurus`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`, `stylelint-copyright`\\n - [#6286](https://github.com/facebook/docusaurus/pull/6286) misc: convert all internal scripts to ESM ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`\\n - [#6289](https://github.com/facebook/docusaurus/pull/6289) refactor: move @theme/hooks to @docusaurus/theme-common ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`\\n - [#6287](https://github.com/facebook/docusaurus/pull/6287) refactor: new @docusaurus/plugin-content-docs/client interface ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#6279](https://github.com/facebook/docusaurus/pull/6279) refactor(core): use native types from webpack-dev-server ([@RDIL](https://github.com/RDIL))\\n- `docusaurus-plugin-content-docs`\\n - [#6277](https://github.com/facebook/docusaurus/pull/6277) refactor(content-docs): make readVersionsMetadata async ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-types`, `docusaurus`\\n - [#6237](https://github.com/facebook/docusaurus/pull/6237) refactor(core): convert serverEntry.js to TS ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6230](https://github.com/facebook/docusaurus/pull/6230) refactor: enforce type import specifiers ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-plugin-content-blog`, `docusaurus-utils`, `docusaurus`\\n - [#6229](https://github.com/facebook/docusaurus/pull/6229) refactor(utils): reorganize functions; move authors file resolution to utils ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-translations`\\n - [#6225](https://github.com/facebook/docusaurus/pull/6225) refactor(theme-translations): improve typing for update script ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6174](https://github.com/facebook/docusaurus/pull/6174) misc(theme-translations): multiple improvements to the update CLI ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 46\\n\\n- AJ Rice ([@ajrice6713](https://github.com/ajrice6713))\\n- Abdelrahman Ahmed ([@abahmed](https://github.com/abahmed))\\n- Alexandru Grigoras ([@alexgrigoras](https://github.com/alexgrigoras))\\n- Amir M. Mohamadi ([@amir2mi](https://github.com/amir2mi))\\n- Anthony McCaigue ([@antmcc49](https://github.com/antmcc49))\\n- Armano ([@armano2](https://github.com/armano2))\\n- Brendan Nee ([@brendannee](https://github.com/brendannee))\\n- Chen ([@HiChen404](https://github.com/HiChen404))\\n- Davide Bianchi ([@davidebianchi](https://github.com/davidebianchi))\\n- Devtato ([@cerkiewny](https://github.com/cerkiewny))\\n- Edouard Bonlieu ([@edouardb](https://github.com/edouardb))\\n- Feodor Fitsner ([@FeodorFitsner](https://github.com/FeodorFitsner))\\n- Filipe Guerra ([@alias-mac](https://github.com/alias-mac))\\n- Gabriel Csapo ([@gabrielcsapo](https://github.com/gabrielcsapo))\\n- Jake Witz ([@jwitz](https://github.com/jwitz))\\n- Jeffrey Aven ([@jeffreyaven](https://github.com/jeffreyaven))\\n- Jody Heavener ([@jodyheavener](https://github.com/jodyheavener))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Joseph ([@josephriosIO](https://github.com/josephriosIO))\\n- Josh Goldberg ([@JoshuaKGoldberg](https://github.com/JoshuaKGoldberg))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Kaustubh Kulkarni ([@kaustubhk24](https://github.com/kaustubhk24))\\n- Lars Mikkelsen ([@ltm](https://github.com/ltm))\\n- Mikey O\'Toole ([@homotechsual](https://github.com/homotechsual))\\n- Minh Pham ([@lmpham1](https://github.com/lmpham1))\\n- Morooka Kotaro ([@MorookaKotaro](https://github.com/MorookaKotaro))\\n- Nayan Patel ([@PatelN123](https://github.com/PatelN123))\\n- Nick Schonning ([@nschonni](https://github.com/nschonni))\\n- Pranab Das ([@pranabdas](https://github.com/pranabdas))\\n- Reece Dunham ([@RDIL](https://github.com/RDIL))\\n- Rishi Raj Jain ([@rishi-raj-jain](https://github.com/rishi-raj-jain))\\n- Sanjay Soundarajan ([@megasanjay](https://github.com/megasanjay))\\n- Shun Wakatsuki ([@shwaka](https://github.com/shwaka))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tapan Chudasama ([@tapanchudasama](https://github.com/tapanchudasama))\\n- Vaibhav Shinde ([@vaibhavshn](https://github.com/vaibhavshn))\\n- Vandr\xe9 Leal ([@vandreleal](https://github.com/vandreleal))\\n- Yaroslav Serhieiev ([@noomorph](https://github.com/noomorph))\\n- [@mcallisto](https://github.com/mcallisto)\\n- [@ruanqizhen](https://github.com/ruanqizhen)\\n- [@wood3n](https://github.com/wood3n)\\n- kuizuo ([@kuizuo](https://github.com/kuizuo))\\n- sgenoud ([@sgenoud](https://github.com/sgenoud))\\n- trent ([@roydukkey](https://github.com/roydukkey))\\n- \xd6mer Faruk APLAK ([@omeraplak](https://github.com/omeraplak))\\n- \u4E45\u67D3 | JiuRan ([@1084350607](https://github.com/1084350607))"},{"id":"/2.0.0-beta.14","metadata":{"permalink":"/changelog/2.0.0-beta.14","source":"@site/changelog/source/2.0.0-beta.14.md","title":"2.0.0-beta.14","description":"New Feature","date":"2021-12-21T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"6543","alias":"6543","url":"https://github.com/6543","imageURL":"https://github.com/6543.png","key":"6543","page":null},{"name":"Christopher Klint","alias":"christopherklint97","url":"https://github.com/christopherklint97","imageURL":"https://github.com/christopherklint97.png","key":"christopherklint97","page":null},{"name":"colton","alias":"cmpadden","url":"https://github.com/cmpadden","imageURL":"https://github.com/cmpadden.png","key":"cmpadden","page":null},{"name":"Drylozu","alias":"Drylozu","url":"https://github.com/Drylozu","imageURL":"https://github.com/Drylozu.png","key":"Drylozu","page":null},{"name":"Jeroen Claassens","alias":"favna","url":"https://github.com/favna","imageURL":"https://github.com/favna.png","key":"favna","page":null},{"name":"Harsh Mishra","alias":"HarshCasper","url":"https://github.com/HarshCasper","imageURL":"https://github.com/HarshCasper.png","key":"HarshCasper","page":null},{"name":"Himanshu","alias":"himanshu007-creator","url":"https://github.com/himanshu007-creator","imageURL":"https://github.com/himanshu007-creator.png","key":"himanshu007-creator","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Kristoffer K.","alias":"merceyz","url":"https://github.com/merceyz","imageURL":"https://github.com/merceyz.png","key":"merceyz","page":null},{"name":"Yaroslav Serhieiev","alias":"noomorph","url":"https://github.com/noomorph","imageURL":"https://github.com/noomorph.png","key":"noomorph","page":null},{"name":"\u4E0D\u90D1","alias":"notzheng","url":"https://github.com/notzheng","imageURL":"https://github.com/notzheng.png","key":"notzheng","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Ziv","alias":"wewoor","url":"https://github.com/wewoor","imageURL":"https://github.com/wewoor.png","key":"wewoor","page":null},{"name":"Shubhendra Singh Chauhan","alias":"withshubh","url":"https://github.com/withshubh","imageURL":"https://github.com/withshubh.png","key":"withshubh","page":null},{"name":"Wout Vandesompele","alias":"wowtvds","url":"https://github.com/wowtvds","imageURL":"https://github.com/wowtvds.png","key":"wowtvds","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-12-21T20:00","authors":["6543","christopherklint97","cmpadden","Drylozu","favna","HarshCasper","himanshu007-creator","Josh-Cena","lex111","merceyz","noomorph","notzheng","slorber","wewoor","withshubh","wowtvds","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.15","permalink":"/changelog/2.0.0-beta.15"},"nextItem":{"title":"2.0.0-beta.13","permalink":"/changelog/2.0.0-beta.13"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6132](https://github.com/facebook/docusaurus/pull/6132) feat(theme-classic): new configuration syntax for a simple footer ([@christopherklint97](https://github.com/christopherklint97))\\n - [#6125](https://github.com/facebook/docusaurus/pull/6125) feat(theme-common): stable classname for code blocks ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#5848](https://github.com/facebook/docusaurus/pull/5848) feat(theme-classic): standalone Admonition component ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6082](https://github.com/facebook/docusaurus/pull/6082) feat(theme-classic): allow passing additional attributes to tab headings ([@Drylozu](https://github.com/Drylozu))\\n- `docusaurus-plugin-content-blog`\\n - [#6126](https://github.com/facebook/docusaurus/pull/6126) feat(content-blog): support json feed ([@notzheng](https://github.com/notzheng))\\n- `docusaurus`\\n - [#6107](https://github.com/facebook/docusaurus/pull/6107) feat(core): allow plugins to customize/override Webpack devServer config ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-migrate`\\n - [#6146](https://github.com/facebook/docusaurus/pull/6146) fix(migrate): do not modify non-MD files ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#6128](https://github.com/facebook/docusaurus/pull/6128) fix: do not use aria-hidden in heading anchor links ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`\\n - [#6124](https://github.com/facebook/docusaurus/pull/6124) fix(content-docs): restore behavior when pagination front matter is null ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6085](https://github.com/facebook/docusaurus/pull/6085) fix(content-docs): getMainDocId should return doc with both versioned or unversioned id ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-utils-validation`\\n - [#6097](https://github.com/facebook/docusaurus/pull/6097) fix: declare missing dependencies ([@merceyz](https://github.com/merceyz))\\n- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-pwa`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `lqip-loader`\\n - [#6094](https://github.com/facebook/docusaurus/pull/6094) fix: add missing dependencies on tslib ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-translations`\\n - [#6088](https://github.com/facebook/docusaurus/pull/6088) fix(theme-translations): publish theme-translation lib, including typedef ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#6053](https://github.com/facebook/docusaurus/pull/6053) feat(theme-classic): allow stylizing doc paginator arrows ([@noomorph](https://github.com/noomorph))\\n - [#6121](https://github.com/facebook/docusaurus/pull/6121) fix(theme-classic): add outline to focused code blocks ([@christopherklint97](https://github.com/christopherklint97))\\n - [#6118](https://github.com/facebook/docusaurus/pull/6118) refactor: remove some useless code ([@lex111](https://github.com/lex111))\\n- `create-docusaurus`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#5994](https://github.com/facebook/docusaurus/pull/5994) refactor: unify log format with new logger utility ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#6119](https://github.com/facebook/docusaurus/pull/6119) fix(create-docusaurus): make initial editUrl functional ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6095](https://github.com/facebook/docusaurus/pull/6095) fix(create-docusaurus): give a clearer message when installation failed ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :memo: Documentation\\n\\n- [#6142](https://github.com/facebook/docusaurus/pull/6142) docs: normalize usage of placeholders ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#5918](https://github.com/facebook/docusaurus/pull/5918) docs: refactor & refine lifecycle API docs ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#6138](https://github.com/facebook/docusaurus/pull/6138) docs: add Smart Docs to showcase ([@wowtvds](https://github.com/wowtvds))\\n- [#6137](https://github.com/facebook/docusaurus/pull/6137) docs: add ToolJet to showcase ([@withshubh](https://github.com/withshubh))\\n- [#6141](https://github.com/facebook/docusaurus/pull/6141) docs: add WoodpeckerCI to showcase ([@6543](https://github.com/6543))\\n- [#6135](https://github.com/facebook/docusaurus/pull/6135) docs: mention admonition quirks with Prettier ([@yangshun](https://github.com/yangshun))\\n- [#6131](https://github.com/facebook/docusaurus/pull/6131) docs: elaborate on \\"docs-only\\" and \\"blog-only\\" ([@himanshu007-creator](https://github.com/himanshu007-creator))\\n- [#6134](https://github.com/facebook/docusaurus/pull/6134) docs: update link to init template README.md ([@cmpadden](https://github.com/cmpadden))\\n- [#6130](https://github.com/facebook/docusaurus/pull/6130) docs: refactor docs sidebar doc ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#6129](https://github.com/facebook/docusaurus/pull/6129) docs: refactor styling/theming docs ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#6112](https://github.com/facebook/docusaurus/pull/6112) docs: mention that SEO through front matter is better than head tag ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#6120](https://github.com/facebook/docusaurus/pull/6120) refactor(website): make deploy preview open next version docs by default ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#6111](https://github.com/facebook/docusaurus/pull/6111) docs: add Molecule website to showcase ([@wewoor](https://github.com/wewoor))\\n- [#6089](https://github.com/facebook/docusaurus/pull/6089) docs: add Enarx website to showcase ([@HarshCasper](https://github.com/HarshCasper))\\n- [#6090](https://github.com/facebook/docusaurus/pull/6090) docs: add sapphire to showcase ([@favna](https://github.com/favna))\\n- [#6091](https://github.com/facebook/docusaurus/pull/6091) docs(showcase): \\"much more pages\\" => \\"many more pages\\" ([@favna](https://github.com/favna))\\n\\n## :house: Internal\\n\\n- `docusaurus-theme-classic`\\n - [#6144](https://github.com/facebook/docusaurus/pull/6144) fix(theme-classic): fix translation when footer has no links ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`\\n - [#6143](https://github.com/facebook/docusaurus/pull/6143) test: fix async tests resolved in random order ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6123](https://github.com/facebook/docusaurus/pull/6123) test: use snapshots for sidebar tests ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Other\\n - [#6122](https://github.com/facebook/docusaurus/pull/6122) fix(website): fix yarn build:website:fast ([@slorber](https://github.com/slorber))\\n - [#6080](https://github.com/facebook/docusaurus/pull/6080) chore: add npm and pnpm to E2E tests ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#6092](https://github.com/facebook/docusaurus/pull/6092) misc: ignore some files during npm publish ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 17\\n\\n- 6543 ([@6543](https://github.com/6543))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Christopher Klint ([@christopherklint97](https://github.com/christopherklint97))\\n- Harsh Mishra ([@HarshCasper](https://github.com/HarshCasper))\\n- Himanshu ([@himanshu007-creator](https://github.com/himanshu007-creator))\\n- Jeroen Claassens ([@favna](https://github.com/favna))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Kristoffer K. ([@merceyz](https://github.com/merceyz))\\n- Shubhendra Singh Chauhan ([@withshubh](https://github.com/withshubh))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Wout Vandesompele ([@wowtvds](https://github.com/wowtvds))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- Yaroslav Serhieiev ([@noomorph](https://github.com/noomorph))\\n- Ziv ([@wewoor](https://github.com/wewoor))\\n- [@Drylozu](https://github.com/Drylozu)\\n- colton ([@cmpadden](https://github.com/cmpadden))\\n- \u4E0D\u90D1 ([@notzheng](https://github.com/notzheng))"},{"id":"/2.0.0-beta.13","metadata":{"permalink":"/changelog/2.0.0-beta.13","source":"@site/changelog/source/2.0.0-beta.13.md","title":"2.0.0-beta.13","description":"Good npm publish, same code as beta.11","date":"2021-12-10T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2021-12-10T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-beta.14","permalink":"/changelog/2.0.0-beta.14"},"nextItem":{"title":"2.0.0-beta.12","permalink":"/changelog/2.0.0-beta.12"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\nGood npm publish, same code as beta.11"},{"id":"/2.0.0-beta.12","metadata":{"permalink":"/changelog/2.0.0-beta.12","source":"@site/changelog/source/2.0.0-beta.12.md","title":"2.0.0-beta.12","description":"Bad npm publish, use beta.13 instead","date":"2021-12-10T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2021-12-10T19:00"},"unlisted":false,"prevItem":{"title":"2.0.0-beta.13","permalink":"/changelog/2.0.0-beta.13"},"nextItem":{"title":"2.0.0-beta.11","permalink":"/changelog/2.0.0-beta.11"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\nBad npm publish, use beta.13 instead"},{"id":"/2.0.0-beta.11","metadata":{"permalink":"/changelog/2.0.0-beta.11","source":"@site/changelog/source/2.0.0-beta.11.md","title":"2.0.0-beta.11","description":"Bug Fix","date":"2021-12-10T18:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Pranab Das","alias":"pranabdas","url":"https://github.com/pranabdas","imageURL":"https://github.com/pranabdas.png","key":"pranabdas","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-12-10T18:00","authors":["pranabdas","slorber"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.12","permalink":"/changelog/2.0.0-beta.12"},"nextItem":{"title":"2.0.0-beta.10","permalink":"/changelog/2.0.0-beta.10"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`\\n - [#6078](https://github.com/facebook/docusaurus/pull/6078) fix: move docusaurus core back to hard dependencies ([@pranabdas](https://github.com/pranabdas))\\n\\n## Committers: 2\\n\\n- Pranab Das ([@pranabdas](https://github.com/pranabdas))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))"},{"id":"/2.0.0-beta.10","metadata":{"permalink":"/changelog/2.0.0-beta.10","source":"@site/changelog/source/2.0.0-beta.10.md","title":"2.0.0-beta.10","description":"New Feature","date":"2021-12-09T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Afshin Mehrabani","alias":"afshinm","url":"https://github.com/afshinm","imageURL":"https://github.com/afshinm.png","key":"afshinm","page":null},{"name":"Rohit Agrawal","alias":"agrawal-rohit","url":"https://github.com/agrawal-rohit","imageURL":"https://github.com/agrawal-rohit.png","key":"agrawal-rohit","page":null},{"name":"Armano","alias":"armano2","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png","key":"armano2","page":null},{"name":"Christophe Chaudier","alias":"cchaudier","url":"https://github.com/cchaudier","imageURL":"https://github.com/cchaudier.png","key":"cchaudier","page":null},{"name":"Devtato","alias":"cerkiewny","url":"https://github.com/cerkiewny","imageURL":"https://github.com/cerkiewny.png","key":"cerkiewny","page":null},{"name":"chima ilo","alias":"chimailo","url":"https://github.com/chimailo","imageURL":"https://github.com/chimailo.png","key":"chimailo","page":null},{"name":"Shoaib Sajid","alias":"dexbiobot","url":"https://github.com/dexbiobot","imageURL":"https://github.com/dexbiobot.png","key":"dexbiobot","page":null},{"name":"Don","alias":"dsmmcken","url":"https://github.com/dsmmcken","imageURL":"https://github.com/dsmmcken.png","key":"dsmmcken","page":null},{"name":"duanwilliam","alias":"duanwilliam","url":"https://github.com/duanwilliam","imageURL":"https://github.com/duanwilliam.png","key":"duanwilliam","page":null},{"name":"Dmitriy Fishman","alias":"fishmandev","url":"https://github.com/fishmandev","imageURL":"https://github.com/fishmandev.png","key":"fishmandev","page":null},{"name":"Fernando Maia","alias":"fsmaia","url":"https://github.com/fsmaia","imageURL":"https://github.com/fsmaia.png","key":"fsmaia","page":null},{"name":"Hendrik Bulens","alias":"hbulens","url":"https://github.com/hbulens","imageURL":"https://github.com/hbulens.png","key":"hbulens","page":null},{"name":"Hemant Sachdeva","alias":"HemantSachdeva","url":"https://github.com/HemantSachdeva","imageURL":"https://github.com/HemantSachdeva.png","key":"HemantSachdeva","page":null},{"name":"Jarar","alias":"JararvisQ","url":"https://github.com/JararvisQ","imageURL":"https://github.com/JararvisQ.png","key":"JararvisQ","page":null},{"name":"Jeff Shillitto","alias":"jeffski","url":"https://github.com/jeffski","imageURL":"https://github.com/jeffski.png","key":"jeffski","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Matej Jellus","alias":"juffalow","url":"https://github.com/juffalow","imageURL":"https://github.com/juffalow.png","key":"juffalow","page":null},{"name":"\u741A\u81F4\u8FDC","alias":"juzhiyuan","url":"https://github.com/juzhiyuan","imageURL":"https://github.com/juzhiyuan.png","key":"juzhiyuan","page":null},{"name":"Konstantin Popov","alias":"KonstHardy","url":"https://github.com/KonstHardy","imageURL":"https://github.com/KonstHardy.png","key":"KonstHardy","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Ludovico Fischer","alias":"ludofischer","url":"https://github.com/ludofischer","imageURL":"https://github.com/ludofischer.png","key":"ludofischer","page":null},{"name":"Martin \u0160o\u0161i\u0107","alias":"Martinsos","url":"https://github.com/Martinsos","imageURL":"https://github.com/Martinsos.png","key":"Martinsos","page":null},{"name":"Matthijs Groen","alias":"matthijsgroen","url":"https://github.com/matthijsgroen","imageURL":"https://github.com/matthijsgroen.png","key":"matthijsgroen","page":null},{"name":"MisterFISHUP","alias":"MisterFISHUP","url":"https://github.com/MisterFISHUP","imageURL":"https://github.com/MisterFISHUP.png","key":"MisterFISHUP","page":null},{"name":"Molly White","alias":"molly","url":"https://github.com/molly","imageURL":"https://github.com/molly.png","key":"molly","page":null},{"name":"Morooka Kotaro","alias":"MorookaKotaro","url":"https://github.com/MorookaKotaro","imageURL":"https://github.com/MorookaKotaro.png","key":"MorookaKotaro","page":null},{"name":"Oliver Ullman","alias":"oriooctopus","url":"https://github.com/oriooctopus","imageURL":"https://github.com/oriooctopus.png","key":"oriooctopus","page":null},{"name":"pal-sig","alias":"pal-sig","url":"https://github.com/pal-sig","imageURL":"https://github.com/pal-sig.png","key":"pal-sig","page":null},{"name":"Patitotective","alias":"Patitotective","url":"https://github.com/Patitotective","imageURL":"https://github.com/Patitotective.png","key":"Patitotective","page":null},{"name":"Patrik M\xe4siar","alias":"patrikmasiar","url":"https://github.com/patrikmasiar","imageURL":"https://github.com/patrikmasiar.png","key":"patrikmasiar","page":null},{"name":"Paul Biggar","alias":"pbiggar","url":"https://github.com/pbiggar","imageURL":"https://github.com/pbiggar.png","key":"pbiggar","page":null},{"name":"Brennan Kinney","alias":"polarathene","url":"https://github.com/polarathene","imageURL":"https://github.com/polarathene.png","key":"polarathene","page":null},{"name":"Yongmin Hong","alias":"revi","url":"https://github.com/revi","imageURL":"https://github.com/revi.png","key":"revi","page":null},{"name":"Robin M\xe9tral","alias":"robinmetral","url":"https://github.com/robinmetral","imageURL":"https://github.com/robinmetral.png","key":"robinmetral","page":null},{"name":"Ronny Roeller","alias":"ronnyroeller","url":"https://github.com/ronnyroeller","imageURL":"https://github.com/ronnyroeller.png","key":"ronnyroeller","page":null},{"name":"Ivan Boothe","alias":"rootwork","url":"https://github.com/rootwork","imageURL":"https://github.com/rootwork.png","key":"rootwork","page":null},{"name":"Rey","alias":"rsapkf","url":"https://github.com/rsapkf","imageURL":"https://github.com/rsapkf.png","key":"rsapkf","page":null},{"name":"Sergio Moreno","alias":"semoal","url":"https://github.com/semoal","imageURL":"https://github.com/semoal.png","key":"semoal","page":null},{"name":"Can Olcer","alias":"shafy","url":"https://github.com/shafy","imageURL":"https://github.com/shafy.png","key":"shafy","page":null},{"name":"Varun Sivapalan","alias":"sivapalan","url":"https://github.com/sivapalan","imageURL":"https://github.com/sivapalan.png","key":"sivapalan","page":null},{"name":"Sharon Koech","alias":"skoech","url":"https://github.com/skoech","imageURL":"https://github.com/skoech.png","key":"skoech","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Soham Shah","alias":"sohamsshah","url":"https://github.com/sohamsshah","imageURL":"https://github.com/sohamsshah.png","key":"sohamsshah","page":null},{"name":"Paden Clayton","alias":"spyke01","url":"https://github.com/spyke01","imageURL":"https://github.com/spyke01.png","key":"spyke01","page":null},{"name":"Stan Kocken","alias":"StanKocken","url":"https://github.com/StanKocken","imageURL":"https://github.com/StanKocken.png","key":"StanKocken","page":null},{"name":"Swalah Amani","alias":"swalahamani","url":"https://github.com/swalahamani","imageURL":"https://github.com/swalahamani.png","key":"swalahamani","page":null},{"name":"Swapnil M Mane","alias":"swapnilmmane","url":"https://github.com/swapnilmmane","imageURL":"https://github.com/swapnilmmane.png","key":"swapnilmmane","page":null},{"name":"William Poetra Yoga","alias":"wpyoga","url":"https://github.com/wpyoga","imageURL":"https://github.com/wpyoga.png","key":"wpyoga","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-12-09T20:00","authors":["afshinm","agrawal-rohit","armano2","cchaudier","cerkiewny","chimailo","dexbiobot","dsmmcken","duanwilliam","fishmandev","fsmaia","hbulens","HemantSachdeva","JararvisQ","jeffski","Josh-Cena","juffalow","juzhiyuan","KonstHardy","lex111","ludofischer","Martinsos","matthijsgroen","MisterFISHUP","molly","MorookaKotaro","oriooctopus","pal-sig","Patitotective","patrikmasiar","pbiggar","polarathene","revi","robinmetral","ronnyroeller","rootwork","rsapkf","semoal","shafy","sivapalan","skoech","slorber","sohamsshah","spyke01","StanKocken","swalahamani","swapnilmmane","wpyoga"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.11","permalink":"/changelog/2.0.0-beta.11"},"nextItem":{"title":"2.0.0-beta.9","permalink":"/changelog/2.0.0-beta.9"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `create-docusaurus`, `docusaurus-types`, `docusaurus`\\n - [#5930](https://github.com/facebook/docusaurus/pull/5930) feat: shorthands for themes/plugins/presets configuration ([@fsmaia](https://github.com/fsmaia))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`\\n - [#5830](https://github.com/facebook/docusaurus/pull/5830) feat(content-docs): sidebar category linking to document or auto-generated index page ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-types`, `docusaurus`\\n - [#4095](https://github.com/facebook/docusaurus/pull/4095) feat(core): allow sourcing from multiple static directories ([@oriooctopus](https://github.com/oriooctopus))\\n- `create-docusaurus`\\n - [#3458](https://github.com/facebook/docusaurus/pull/3458) feat(create-docusaurus): allow using local folder as template ([@afshinm](https://github.com/afshinm))\\n- `docusaurus-plugin-content-blog`\\n - [#5787](https://github.com/facebook/docusaurus/pull/5787) feat(content-blog): allow sorting posts in ascending order ([@cerkiewny](https://github.com/cerkiewny))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus`\\n - [#3104](https://github.com/facebook/docusaurus/pull/3104) feat(core): Add React ErrorBoundary component + theme default boundaries ([@spyke01](https://github.com/spyke01))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-plugin-content-blog`\\n - [#6061](https://github.com/facebook/docusaurus/pull/6061) fix(content-blog): make post ID unique ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-plugin-content-docs`\\n - [#6065](https://github.com/facebook/docusaurus/pull/6065) refactor: remove deprecated docs homePageId option ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`\\n - [#6056](https://github.com/facebook/docusaurus/pull/6056) refactor: remove unused metadata field for homepage ([@lex111](https://github.com/lex111))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`\\n - [#5830](https://github.com/facebook/docusaurus/pull/5830) feat(content-docs): sidebar category linking to document or auto-generated index page ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-preset-classic`\\n - [#5832](https://github.com/facebook/docusaurus/pull/5832) refactor(ganalytics, gtag): move options out of themeConfig ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-utils`\\n - [#5871](https://github.com/facebook/docusaurus/pull/5871) misc: replace all \\"Metadatas\\" with \\"Metadata\\" ([@swalahamani](https://github.com/swalahamani))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-common`\\n - [#6070](https://github.com/facebook/docusaurus/pull/6070) fix(theme-common): useLocationChange fire un-necessarily twice ([@slorber](https://github.com/slorber))\\n - [#6040](https://github.com/facebook/docusaurus/pull/6040) fix: browser storage (localStorage) is unreliable: api should fail-safe ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#6047](https://github.com/facebook/docusaurus/pull/6047) fix: make Docusaurus PnP strict mode compatible ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#6052](https://github.com/facebook/docusaurus/pull/6052) fix(core): fix error boundary import disrupting CSS order ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`\\n - [#6061](https://github.com/facebook/docusaurus/pull/6061) fix(content-blog): make post ID unique ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#5983](https://github.com/facebook/docusaurus/pull/5983) fix(core): do not apply theme-init alias to user component ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5798](https://github.com/facebook/docusaurus/pull/5798) fix(cli): update notifier should be shown if current is less than latest ([@semoal](https://github.com/semoal))\\n - [#5864](https://github.com/facebook/docusaurus/pull/5864) fix: respect base URL when serving content by webpack dev server ([@lex111](https://github.com/lex111))\\n- `docusaurus-module-type-aliases`\\n - [#5945](https://github.com/facebook/docusaurus/pull/5945) fix(module-type-aliases): add svg declaration ([@MisterFISHUP](https://github.com/MisterFISHUP))\\n- `docusaurus-theme-classic`\\n - [#5873](https://github.com/facebook/docusaurus/pull/5873) fix(theme-classic): fix announcementBar css ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#6003](https://github.com/facebook/docusaurus/pull/6003) fix(theme-classic): make nav dropdowns focusable ([@robinmetral](https://github.com/robinmetral))\\n - [#6000](https://github.com/facebook/docusaurus/pull/6000) fix(theme-classic): make hash link in heading not selectable ([@JararvisQ](https://github.com/JararvisQ))\\n - [#5944](https://github.com/facebook/docusaurus/pull/5944) fix: translate all remaining english sentence in French ([@StanKocken](https://github.com/StanKocken))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#6048](https://github.com/facebook/docusaurus/pull/6048) refactor: capitalize locales when creating i18n config ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-translations`\\n - [#5976](https://github.com/facebook/docusaurus/pull/5976) feat(theme-translations): add extra Korean translation, fix typo ([@revi](https://github.com/revi))\\n - [#6060](https://github.com/facebook/docusaurus/pull/6060) chore(theme-translations): complete Chinese translations ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-plugin-content-docs`\\n - [#6065](https://github.com/facebook/docusaurus/pull/6065) refactor: remove deprecated docs homePageId option ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`\\n - [#6056](https://github.com/facebook/docusaurus/pull/6056) refactor: remove unused metadata field for homepage ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#6049](https://github.com/facebook/docusaurus/pull/6049) refactor: simplify Toggle component ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-types`\\n - [#5981](https://github.com/facebook/docusaurus/pull/5981) refactor: minor ESLint improvements ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-pwa`\\n - [#5995](https://github.com/facebook/docusaurus/pull/5995) chore(plugin-pwa): change core-js version in package.json to v3 ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils`\\n - [#5849](https://github.com/facebook/docusaurus/pull/5849) refactor: define own translations in other themes ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-types`\\n - [#5959](https://github.com/facebook/docusaurus/pull/5959) refactor(types): correct HtmlTags types ([@armano2](https://github.com/armano2))\\n- `docusaurus`\\n - [#5829](https://github.com/facebook/docusaurus/pull/5829) refactor: optimize clone and checkout in deploy command ([@sivapalan](https://github.com/sivapalan))\\n - [#5899](https://github.com/facebook/docusaurus/pull/5899) feat(core): give more hints when plugins have duplicate IDs ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-preset-classic`\\n - [#5832](https://github.com/facebook/docusaurus/pull/5832) refactor(ganalytics, gtag): move options out of themeConfig ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus`\\n - [#5840](https://github.com/facebook/docusaurus/pull/5840) feat: allow GIT_USER env var to be unset if SSH is used ([@wpyoga](https://github.com/wpyoga))\\n- `create-docusaurus`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-utils`\\n - [#5871](https://github.com/facebook/docusaurus/pull/5871) misc: replace all \\"Metadatas\\" with \\"Metadata\\" ([@swalahamani](https://github.com/swalahamani))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#6063](https://github.com/facebook/docusaurus/pull/6063) docs: add moja global to showcase ([@sohamsshah](https://github.com/sohamsshah))\\n - [#6069](https://github.com/facebook/docusaurus/pull/6069) docs: update CONTRIBUTING for website ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6062](https://github.com/facebook/docusaurus/pull/6062) refactor(website): improve wording in comments of showcase data ([@sohamsshah](https://github.com/sohamsshah))\\n - [#6045](https://github.com/facebook/docusaurus/pull/6045) docs: add \\"discord resources\\" to showcase ([@dexbiobot](https://github.com/dexbiobot))\\n - [#6026](https://github.com/facebook/docusaurus/pull/6026) docs(deployment): add cost-benefit analysis with different options ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5955](https://github.com/facebook/docusaurus/pull/5955) docs: add Pearl UI website to showcase ([@agrawal-rohit](https://github.com/agrawal-rohit))\\n - [#5989](https://github.com/facebook/docusaurus/pull/5989) misc: update CONTRIBUTING to reflect status quo ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5845](https://github.com/facebook/docusaurus/pull/5845) docs(admin): update repo testing instructions to reflect v2 ([@wpyoga](https://github.com/wpyoga))\\n - [#6019](https://github.com/facebook/docusaurus/pull/6019) docs: update Netlify url config option in deployment instructions ([@rsapkf](https://github.com/rsapkf))\\n - [#6015](https://github.com/facebook/docusaurus/pull/6015) docs: add Tremor website to showcase page ([@skoech](https://github.com/skoech))\\n - [#5997](https://github.com/facebook/docusaurus/pull/5997) refactor(website): various fixes and improvements on Showcase page ([@lex111](https://github.com/lex111))\\n - [#6008](https://github.com/facebook/docusaurus/pull/6008) docs: improve algolia integration instructions ([@shafy](https://github.com/shafy))\\n - [#6006](https://github.com/facebook/docusaurus/pull/6006) docs: improve explanation for url config in GH Pages ([@Martinsos](https://github.com/Martinsos))\\n - [#6001](https://github.com/facebook/docusaurus/pull/6001) docs: add Dime.Scheduler SDK to showcase ([@hbulens](https://github.com/hbulens))\\n - [#5984](https://github.com/facebook/docusaurus/pull/5984) docs: add PREFS website to showcase ([@Patitotective](https://github.com/Patitotective))\\n - [#5967](https://github.com/facebook/docusaurus/pull/5967) docs(website): Add docsearch migration blog post ([@slorber](https://github.com/slorber))\\n - [#5968](https://github.com/facebook/docusaurus/pull/5968) refactor(website): shadow on showcase toggle ([@dsmmcken](https://github.com/dsmmcken))\\n - [#5979](https://github.com/facebook/docusaurus/pull/5979) docs: update links to default translations dir ([@lex111](https://github.com/lex111))\\n - [#5969](https://github.com/facebook/docusaurus/pull/5969) refactor(website): polish on Showcase page ([@slorber](https://github.com/slorber))\\n - [#5966](https://github.com/facebook/docusaurus/pull/5966) docs: add Darklang to showcase ([@pbiggar](https://github.com/pbiggar))\\n - [#5970](https://github.com/facebook/docusaurus/pull/5970) docs: add Remirror to showcase ([@ronnyroeller](https://github.com/ronnyroeller))\\n - [#5971](https://github.com/facebook/docusaurus/pull/5971) docs: add Webiny docs to showcase page ([@swapnilmmane](https://github.com/swapnilmmane))\\n - [#5953](https://github.com/facebook/docusaurus/pull/5953) docs: fix BrowserOnly return statement ([@MorookaKotaro](https://github.com/MorookaKotaro))\\n - [#5949](https://github.com/facebook/docusaurus/pull/5949) docs: update Signoz showcase details ([@pal-sig](https://github.com/pal-sig))\\n - [#5948](https://github.com/facebook/docusaurus/pull/5948) fix(website): fix APITable anchor ID having extra hash ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5947](https://github.com/facebook/docusaurus/pull/5947) fix(website): fix APITable anchor link ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5925](https://github.com/facebook/docusaurus/pull/5925) docs: add Froggit site to showcase page ([@cchaudier](https://github.com/cchaudier))\\n - [#5928](https://github.com/facebook/docusaurus/pull/5928) docs: Add Shotstack showcase user ([@jeffski](https://github.com/jeffski))\\n - [#5934](https://github.com/facebook/docusaurus/pull/5934) docs: fix a typo in CHANGELOG ([@KonstHardy](https://github.com/KonstHardy))\\n - [#5921](https://github.com/facebook/docusaurus/pull/5921) docs: add Signoz site to showcase site ([@pal-sig](https://github.com/pal-sig))\\n - [#5891](https://github.com/facebook/docusaurus/pull/5891) docs: new APITable comp to render large tables ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5917](https://github.com/facebook/docusaurus/pull/5917) docs: make API sidebar partially autogenerated ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5903](https://github.com/facebook/docusaurus/pull/5903) docs: refer to deployed branch as deployment rather than target ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5902](https://github.com/facebook/docusaurus/pull/5902) fix(website): fix i18n routes for Canny board ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5900](https://github.com/facebook/docusaurus/pull/5900) docs: document global variables in MDX scope ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#4409](https://github.com/facebook/docusaurus/pull/4409) docs: add example for GitHub Pages deployment; rewrite deployment section ([@polarathene](https://github.com/polarathene))\\n - [#5888](https://github.com/facebook/docusaurus/pull/5888) docs: update GitHub deployment instructions ([@rootwork](https://github.com/rootwork))\\n - [#5895](https://github.com/facebook/docusaurus/pull/5895) docs: Add juffalow.com to Docusaurus showcase ([@juffalow](https://github.com/juffalow))\\n - [#5881](https://github.com/facebook/docusaurus/pull/5881) docs: fix wrong code sample in docusaurus-core ([@matthijsgroen](https://github.com/matthijsgroen))\\n - [#5875](https://github.com/facebook/docusaurus/pull/5875) docs: add patrikmasiar website showcase ([@patrikmasiar](https://github.com/patrikmasiar))\\n - [#5876](https://github.com/facebook/docusaurus/pull/5876) docs: \'5 minutes tutorial\' -> \'5-minute tutorial\' ([@molly](https://github.com/molly))\\n - [#5759](https://github.com/facebook/docusaurus/pull/5759) docs: create SEO documentation page ([@cerkiewny](https://github.com/cerkiewny))\\n - [#5869](https://github.com/facebook/docusaurus/pull/5869) docs: remove duplicated appId property ([@juzhiyuan](https://github.com/juzhiyuan))\\n - [#5868](https://github.com/facebook/docusaurus/pull/5868) docs: fix a typo in using-themes.md ([@fishmandev](https://github.com/fishmandev))\\n - [#5862](https://github.com/facebook/docusaurus/pull/5862) misc: show only latest archive alpha/beta versions dropdown ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#5742](https://github.com/facebook/docusaurus/pull/5742) feat(website): redesign of showcase page ([@chimailo](https://github.com/chimailo))\\n\\n## :house: Internal\\n\\n- `create-docusaurus`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-common`, `docusaurus-theme-translations`, `docusaurus-utils-validation`, `docusaurus`\\n - [#6071](https://github.com/facebook/docusaurus/pull/6071) refactor: add blank lines below all copyright headers ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Other\\n - [#6068](https://github.com/facebook/docusaurus/pull/6068) chore: add prefix to needs triage label; separate Windows test workflow ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6031](https://github.com/facebook/docusaurus/pull/6031) chore: upgrade netlify-cli ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6012](https://github.com/facebook/docusaurus/pull/6012) chore(website): enable strict compiler option ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#6002](https://github.com/facebook/docusaurus/pull/6002) chore(ci): add GitHub action for showcase testing ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5977](https://github.com/facebook/docusaurus/pull/5977) chore: generate dogfooding test for long pathname during CI ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5950](https://github.com/facebook/docusaurus/pull/5950) misc(codeowners): add @Josh-Cena to CODEOWNERS ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5919](https://github.com/facebook/docusaurus/pull/5919) misc(workflow): E2E tests should not be run with website changes ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5907](https://github.com/facebook/docusaurus/pull/5907) chore(workflow): merge jobs into one workflow & give each job a name ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5889](https://github.com/facebook/docusaurus/pull/5889) chore(website): enable eslint in website ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5870](https://github.com/facebook/docusaurus/pull/5870) chore(README): fix broken GitHub Actions Workflow Status icon ([@HemantSachdeva](https://github.com/HemantSachdeva))\\n- `docusaurus-module-type-aliases`, `docusaurus-types`, `docusaurus`\\n - [#6064](https://github.com/facebook/docusaurus/pull/6064) refactor(core): fix types for client code ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`\\n - [#6055](https://github.com/facebook/docusaurus/pull/6055) chore: clean up dev dependency declarations ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus-plugin-ideal-image`, `docusaurus-theme-classic`\\n - [#6010](https://github.com/facebook/docusaurus/pull/6010) chore: upgrade prettier; rename prettier scripts as format ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`, `docusaurus`\\n - [#5958](https://github.com/facebook/docusaurus/pull/5958) chore: update @svgr/webpack to version 6 ([@ludofischer](https://github.com/ludofischer))\\n- `docusaurus`\\n - [#5998](https://github.com/facebook/docusaurus/pull/5998) chore: upgrade webpack-dev-server to v4.5.0 ([@lex111](https://github.com/lex111))\\n - [#5965](https://github.com/facebook/docusaurus/pull/5965) fix(core): apply staticDirectories to base webpack config ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-ideal-image`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-common`, `docusaurus-utils`, `docusaurus`\\n - [#5985](https://github.com/facebook/docusaurus/pull/5985) chore: cleanup dependency declaration in package.json ([@armano2](https://github.com/armano2))\\n- `create-docusaurus`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`, `lqip-loader`, `stylelint-copyright`\\n - [#5963](https://github.com/facebook/docusaurus/pull/5963) chore: upgrade TypeScript & other ESLint related deps ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`\\n - [#5962](https://github.com/facebook/docusaurus/pull/5962) refactor(content-docs): move isCategoriesShorthand to utils ([@armano2](https://github.com/armano2))\\n - [#5906](https://github.com/facebook/docusaurus/pull/5906) fix(content-docs): do not echo git history to console ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5905](https://github.com/facebook/docusaurus/pull/5905) misc(plugin-docs): fix Windows test snapshot for git history retrieval ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5904](https://github.com/facebook/docusaurus/pull/5904) refactor(content-docs): use shelljs instead of execa ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-ideal-image`\\n - [#5940](https://github.com/facebook/docusaurus/pull/5940) refactor(plugin-ideal-image): migrate package to TS ([@armano2](https://github.com/armano2))\\n- `docusaurus-plugin-pwa`, `docusaurus-theme-classic`\\n - [#5941](https://github.com/facebook/docusaurus/pull/5941) refactor(plugin-pwa): migrate package to TS ([@armano2](https://github.com/armano2))\\n- `docusaurus-plugin-ideal-image`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`\\n - [#5935](https://github.com/facebook/docusaurus/pull/5935) refactor(theme-search-algolia): migrate package to TS ([@armano2](https://github.com/armano2))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`\\n - [#5946](https://github.com/facebook/docusaurus/pull/5946) refactor: move deps declarations into src ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-utils-common`, `docusaurus-utils`, `docusaurus`\\n - [#5914](https://github.com/facebook/docusaurus/pull/5914) refactor: improve setup of type declaration files ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5922](https://github.com/facebook/docusaurus/pull/5922) refactor(theme-classic): move some logic of CodeBlock to theme-common ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-remark-plugin-npm2yarn`\\n - [#5931](https://github.com/facebook/docusaurus/pull/5931) refactor(remark-plugin-npm2yarn): migrate package to TS ([@duanwilliam](https://github.com/duanwilliam))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils`\\n - [#5806](https://github.com/facebook/docusaurus/pull/5806) refactor: use js-yaml to parse both JSON and YAML ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 48\\n\\n- Afshin Mehrabani ([@afshinm](https://github.com/afshinm))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Armano ([@armano2](https://github.com/armano2))\\n- Brennan Kinney ([@polarathene](https://github.com/polarathene))\\n- Can Olcer ([@shafy](https://github.com/shafy))\\n- Christophe Chaudier ([@cchaudier](https://github.com/cchaudier))\\n- Devtato ([@cerkiewny](https://github.com/cerkiewny))\\n- Dmitriy Fishman ([@fishmandev](https://github.com/fishmandev))\\n- Don ([@dsmmcken](https://github.com/dsmmcken))\\n- FISH UP ([@MisterFISHUP](https://github.com/MisterFISHUP))\\n- Fernando Maia ([@fsmaia](https://github.com/fsmaia))\\n- Hemant Sachdeva ([@HemantSachdeva](https://github.com/HemantSachdeva))\\n- Hendrik Bulens ([@hbulens](https://github.com/hbulens))\\n- Ivan Boothe ([@rootwork](https://github.com/rootwork))\\n- Jarar ([@JararvisQ](https://github.com/JararvisQ))\\n- Jeff Shillitto ([@jeffski](https://github.com/jeffski))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Konstantin Popov ([@KonstHardy](https://github.com/KonstHardy))\\n- Ludovico Fischer ([@ludofischer](https://github.com/ludofischer))\\n- Martin \u0160o\u0161i\u0107 ([@Martinsos](https://github.com/Martinsos))\\n- Matej Jellus ([@juffalow](https://github.com/juffalow))\\n- Matthijs Groen ([@matthijsgroen](https://github.com/matthijsgroen))\\n- Molly White ([@molly](https://github.com/molly))\\n- Morooka Kotaro ([@MorookaKotaro](https://github.com/MorookaKotaro))\\n- Oliver Ullman ([@oriooctopus](https://github.com/oriooctopus))\\n- Paden Clayton ([@spyke01](https://github.com/spyke01))\\n- Patitotective ([@Patitotective](https://github.com/Patitotective))\\n- Patrik M\xe4siar ([@patrikmasiar](https://github.com/patrikmasiar))\\n- Paul Biggar ([@pbiggar](https://github.com/pbiggar))\\n- Rey ([@rsapkf](https://github.com/rsapkf))\\n- Robin M\xe9tral ([@robinmetral](https://github.com/robinmetral))\\n- Rohit Agrawal ([@agrawal-rohit](https://github.com/agrawal-rohit))\\n- Ronny Roeller ([@ronnyroeller](https://github.com/ronnyroeller))\\n- Sergio Moreno ([@semoal](https://github.com/semoal))\\n- Sharon Koech ([@skoech](https://github.com/skoech))\\n- Shoaib Sajid ([@dexbiobot](https://github.com/dexbiobot))\\n- Soham Shah ([@sohamsshah](https://github.com/sohamsshah))\\n- Stan Kocken ([@StanKocken](https://github.com/StanKocken))\\n- Swalah Amani ([@swalahamani](https://github.com/swalahamani))\\n- Swapnil M Mane ([@swapnilmmane](https://github.com/swapnilmmane))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Varun Sivapalan ([@sivapalan](https://github.com/sivapalan))\\n- William Poetra Yoga ([@wpyoga](https://github.com/wpyoga))\\n- Yongmin Hong ([@revi](https://github.com/revi))\\n- [@duanwilliam](https://github.com/duanwilliam)\\n- [@pal-sig](https://github.com/pal-sig)\\n- chima ilo ([@chimailo](https://github.com/chimailo))\\n- \u741A\u81F4\u8FDC ([@juzhiyuan](https://github.com/juzhiyuan))"},{"id":"/2.0.0-beta.9","metadata":{"permalink":"/changelog/2.0.0-beta.9","source":"@site/changelog/source/2.0.0-beta.9.md","title":"2.0.0-beta.9","description":"New Feature","date":"2021-11-02T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Avi Vahl","alias":"AviVahl","url":"https://github.com/AviVahl","imageURL":"https://github.com/AviVahl.png","key":"AviVahl","page":null},{"name":"Devtato","alias":"cerkiewny","url":"https://github.com/cerkiewny","imageURL":"https://github.com/cerkiewny.png","key":"cerkiewny","page":null},{"name":"Ng\xf4 Qu\u1ED1c \u0110\u1EA1t","alias":"datlechin","url":"https://github.com/datlechin","imageURL":"https://github.com/datlechin.png","key":"datlechin","page":null},{"name":"Dominik Meyer","alias":"dominikmeyersap","url":"https://github.com/dominikmeyersap","imageURL":"https://github.com/dominikmeyersap.png","key":"dominikmeyersap","page":null},{"name":"Dmitriy Fishman","alias":"fishmandev","url":"https://github.com/fishmandev","imageURL":"https://github.com/fishmandev.png","key":"fishmandev","page":null},{"name":"Gabriel Falc\xe3o","alias":"gabrielfalcao","url":"https://github.com/gabrielfalcao","imageURL":"https://github.com/gabrielfalcao.png","key":"gabrielfalcao","page":null},{"name":"Jeffrey Aven","alias":"jeffreyaven","url":"https://github.com/jeffreyaven","imageURL":"https://github.com/jeffreyaven.png","key":"jeffreyaven","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"\u741A\u81F4\u8FDC","alias":"juzhiyuan","url":"https://github.com/juzhiyuan","imageURL":"https://github.com/juzhiyuan.png","key":"juzhiyuan","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Oscar Dominguez","alias":"oscard0m","url":"https://github.com/oscard0m","imageURL":"https://github.com/oscard0m.png","key":"oscard0m","page":null},{"name":"Robbie Averill","alias":"robbieaverill","url":"https://github.com/robbieaverill","imageURL":"https://github.com/robbieaverill.png","key":"robbieaverill","page":null},{"name":"Sergio Moreno","alias":"semoal","url":"https://github.com/semoal","imageURL":"https://github.com/semoal.png","key":"semoal","page":null},{"name":"Varun Sivapalan","alias":"sivapalan","url":"https://github.com/sivapalan","imageURL":"https://github.com/sivapalan.png","key":"sivapalan","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Vladimir Tasic","alias":"utajum","url":"https://github.com/utajum","imageURL":"https://github.com/utajum.png","key":"utajum","page":null},{"name":"Ying Wang","alias":"wingclover","url":"https://github.com/wingclover","imageURL":"https://github.com/wingclover.png","key":"wingclover","page":null},{"name":"William Poetra Yoga","alias":"wpyoga","url":"https://github.com/wpyoga","imageURL":"https://github.com/wpyoga.png","key":"wpyoga","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-11-02T20:00","authors":["AviVahl","cerkiewny","datlechin","dominikmeyersap","fishmandev","gabrielfalcao","jeffreyaven","Josh-Cena","juzhiyuan","lex111","oscard0m","robbieaverill","semoal","sivapalan","slorber","utajum","wingclover","wpyoga"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.10","permalink":"/changelog/2.0.0-beta.10"},"nextItem":{"title":"2.0.0-beta.8","permalink":"/changelog/2.0.0-beta.8"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5770](https://github.com/facebook/docusaurus/pull/5770) feat(theme-classic): allow specifying width/height in logo ([@cerkiewny](https://github.com/cerkiewny))\\n- `docusaurus-types`, `docusaurus`\\n - [#5841](https://github.com/facebook/docusaurus/pull/5841) feat: allow user to specify deploymentBranch property in docusaurus.config.js ([@wpyoga](https://github.com/wpyoga))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`\\n - [#5795](https://github.com/facebook/docusaurus/pull/5795) feat(search-algolia): algolia externalUrl regex to navigate with window.href ([@semoal](https://github.com/semoal))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-types`, `docusaurus`\\n - [#5814](https://github.com/facebook/docusaurus/pull/5814) feat: Support Node 17 ([@slorber](https://github.com/slorber))\\n - [#5420](https://github.com/facebook/docusaurus/pull/5420) feat(core): upgrade to webpack-dev-server@4 ([@AviVahl](https://github.com/AviVahl))\\n- `docusaurus-theme-classic`\\n - [#5791](https://github.com/facebook/docusaurus/pull/5791) feat(theme-classic): add Serbian Cyrillic translation ([@utajum](https://github.com/utajum))\\n\\n## :boom: Breaking Change\\n\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#5812](https://github.com/facebook/docusaurus/pull/5812) chore: require Node 14 ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-blog`\\n - [#5835](https://github.com/facebook/docusaurus/pull/5835) fix(content-blog): Fix blog feeds not generated ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#5828](https://github.com/facebook/docusaurus/pull/5828) fix: include all branch tips for shallow clone in deploy command ([@sivapalan](https://github.com/sivapalan))\\n - [#5824](https://github.com/facebook/docusaurus/pull/5824) fix: baseUrl passed to sortConfig ([@semoal](https://github.com/semoal))\\n - [#5813](https://github.com/facebook/docusaurus/pull/5813) fix: handle SIGTERM in build command ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus`\\n - [#5819](https://github.com/facebook/docusaurus/pull/5819) fix: use @docusaurus/react-loadable as package alias + include types ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-preset-classic`\\n - [#5831](https://github.com/facebook/docusaurus/pull/5831) feat(preset-classic): guard against unknown keys in options ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#5815](https://github.com/facebook/docusaurus/pull/5815) refactor: some improvements for webpack-dev-server ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`\\n - [#5788](https://github.com/facebook/docusaurus/pull/5788) refactor: fix a few type inconsistencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#5781](https://github.com/facebook/docusaurus/pull/5781) refactor: Vietnamese translations ([@datlechin](https://github.com/datlechin))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#5853](https://github.com/facebook/docusaurus/pull/5853) docs: Fix a typo in CONTRIBUTING.md ([@fishmandev](https://github.com/fishmandev))\\n - [#5852](https://github.com/facebook/docusaurus/pull/5852) docs: Fix a typo in versioning.md ([@fishmandev](https://github.com/fishmandev))\\n - [#5847](https://github.com/facebook/docusaurus/pull/5847) docs: add InfraQL product docs website to showcase ([@jeffreyaven](https://github.com/jeffreyaven))\\n - [#5843](https://github.com/facebook/docusaurus/pull/5843) docs: fix i18n routes to feature requests ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5766](https://github.com/facebook/docusaurus/pull/5766) docs: elaborate on the usage of MDX plugins ([@cerkiewny](https://github.com/cerkiewny))\\n - [#5826](https://github.com/facebook/docusaurus/pull/5826) docs: fix lint issue ([@slorber](https://github.com/slorber))\\n - [#5801](https://github.com/facebook/docusaurus/pull/5801) docs: Update Drone Deployment docs ([@gabrielfalcao](https://github.com/gabrielfalcao))\\n - [#5821](https://github.com/facebook/docusaurus/pull/5821) docs: include navbar item type in the API table ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5820](https://github.com/facebook/docusaurus/pull/5820) docs: add @Josh-Cena to the team ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5818](https://github.com/facebook/docusaurus/pull/5818) doc: fix typo in \\"create a doc\\" ([@dominikmeyersap](https://github.com/dominikmeyersap))\\n - [#5797](https://github.com/facebook/docusaurus/pull/5797) docs: use \\"npx create-docusaurus\\" for init ([@slorber](https://github.com/slorber))\\n - [#5771](https://github.com/facebook/docusaurus/pull/5771) docs: Minor update to grammar in plugins overview page ([@robbieaverill](https://github.com/robbieaverill))\\n - [#5774](https://github.com/facebook/docusaurus/pull/5774) docs: update ssrTemplate ([@juzhiyuan](https://github.com/juzhiyuan))\\n - [#5784](https://github.com/facebook/docusaurus/pull/5784) docs: fix link for apply to DocSearch program ([@lex111](https://github.com/lex111))\\n- `create-docusaurus`\\n - [#5792](https://github.com/facebook/docusaurus/pull/5792) docs: fix typo ([@wingclover](https://github.com/wingclover))\\n\\n## :house: Internal\\n\\n- Other\\n - [#5842](https://github.com/facebook/docusaurus/pull/5842) misc: add \\"name\\" field for root package.json ([@wpyoga](https://github.com/wpyoga))\\n - [#5836](https://github.com/facebook/docusaurus/pull/5836) chore: switch to GitHub issue forms ([@lex111](https://github.com/lex111))\\n - [#5834](https://github.com/facebook/docusaurus/pull/5834) chore(issue templ): add \\"self service\\" section in templates ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5833](https://github.com/facebook/docusaurus/pull/5833) chore(workflow): remove v2 prefix from titles ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5697](https://github.com/facebook/docusaurus/pull/5697) chore(workflow): add cache to workflows using actions/setup-node ([@oscard0m](https://github.com/oscard0m))\\n - [#5825](https://github.com/facebook/docusaurus/pull/5825) chore: fix Crowdin again ([@slorber](https://github.com/slorber))\\n - [#5823](https://github.com/facebook/docusaurus/pull/5823) chore: replace doc sample .pdf file by .xlsx to solve Crowdin issue ([@slorber](https://github.com/slorber))\\n - [#5763](https://github.com/facebook/docusaurus/pull/5763) chore: update examples for beta.8 ([@slorber](https://github.com/slorber))\\n- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#5812](https://github.com/facebook/docusaurus/pull/5812) chore: require Node 14 ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus`\\n - [#5807](https://github.com/facebook/docusaurus/pull/5807) refactor: remove a few Lodash usages & ESLint enforcement ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`\\n - [#5808](https://github.com/facebook/docusaurus/pull/5808) refactor: clear a few ESLint warnings ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `lqip-loader`\\n - [#5779](https://github.com/facebook/docusaurus/pull/5779) refactor: migrate lqip-loader to TS, fix typing for Webpack Loaders ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## Committers: 18\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Avi Vahl ([@AviVahl](https://github.com/AviVahl))\\n- Devtato ([@cerkiewny](https://github.com/cerkiewny))\\n- Dmitriy Fishman ([@fishmandev](https://github.com/fishmandev))\\n- Dominik Meyer ([@dominikmeyersap](https://github.com/dominikmeyersap))\\n- Gabriel Falc\xe3o ([@gabrielfalcao](https://github.com/gabrielfalcao))\\n- Jeffrey Aven ([@jeffreyaven](https://github.com/jeffreyaven))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Ng\xf4 Qu\u1ED1c \u0110\u1EA1t ([@datlechin](https://github.com/datlechin))\\n- Oscar Dominguez ([@oscard0m](https://github.com/oscard0m))\\n- Robbie Averill ([@robbieaverill](https://github.com/robbieaverill))\\n- Sergio Moreno ([@semoal](https://github.com/semoal))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Varun Sivapalan ([@sivapalan](https://github.com/sivapalan))\\n- Vladimir Tasic ([@utajum](https://github.com/utajum))\\n- William Poetra Yoga ([@wpyoga](https://github.com/wpyoga))\\n- Ying Wang ([@wingclover](https://github.com/wingclover))\\n- \u741A\u81F4\u8FDC ([@juzhiyuan](https://github.com/juzhiyuan))"},{"id":"/2.0.0-beta.8","metadata":{"permalink":"/changelog/2.0.0-beta.8","source":"@site/changelog/source/2.0.0-beta.8.md","title":"2.0.0-beta.8","description":"New Feature","date":"2021-10-21T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Andrew Taft","alias":"ataft","url":"https://github.com/ataft","imageURL":"https://github.com/ataft.png","key":"ataft","page":null},{"name":"Caner Canbaz","alias":"canercanbaz","url":"https://github.com/canercanbaz","imageURL":"https://github.com/canercanbaz.png","key":"canercanbaz","page":null},{"name":"Ng\xf4 Qu\u1ED1c \u0110\u1EA1t","alias":"datlechin","url":"https://github.com/datlechin","imageURL":"https://github.com/datlechin.png","key":"datlechin","page":null},{"name":"Dimi Mikadze","alias":"DimiMikadze","url":"https://github.com/DimiMikadze","imageURL":"https://github.com/DimiMikadze.png","key":"DimiMikadze","page":null},{"name":"Ilija Pavlic","alias":"ipavlic","url":"https://github.com/ipavlic","imageURL":"https://github.com/ipavlic.png","key":"ipavlic","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Nathaniel Furniss","alias":"nlfurniss","url":"https://github.com/nlfurniss","imageURL":"https://github.com/nlfurniss.png","key":"nlfurniss","page":null},{"name":"philipp985","alias":"philipp985","url":"https://github.com/philipp985","imageURL":"https://github.com/philipp985.png","key":"philipp985","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Thanasis Katsadas","alias":"thanasis00","url":"https://github.com/thanasis00","imageURL":"https://github.com/thanasis00.png","key":"thanasis00","page":null},{"name":"Xuqian","alias":"zxuqian","url":"https://github.com/zxuqian","imageURL":"https://github.com/zxuqian.png","key":"zxuqian","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-10-21T20:00","authors":["ataft","canercanbaz","datlechin","DimiMikadze","ipavlic","johnnyreilly","Josh-Cena","lex111","nlfurniss","philipp985","slorber","thanasis00","zxuqian"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.9","permalink":"/changelog/2.0.0-beta.9"},"nextItem":{"title":"2.0.0-beta.7","permalink":"/changelog/2.0.0-beta.7"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-blog`\\n - [#5702](https://github.com/facebook/docusaurus/pull/5702) feat(content-blog): new readingTime plugin option ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#5740](https://github.com/facebook/docusaurus/pull/5740) feat(core): write-heading-ids options maintainCasing, overwrite ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`\\n - [#5705](https://github.com/facebook/docusaurus/pull/5705) feat(content-docs): new front matter options to customize pagination ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-theme-search-algolia`\\n - [#5751](https://github.com/facebook/docusaurus/pull/5751) fix: stable callbacks in useSearchQuery + refactor ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-ideal-image`\\n - [#5760](https://github.com/facebook/docusaurus/pull/5760) fix(ideal-image): fix IdealImage in dev not handling ES import images properly ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#5732](https://github.com/facebook/docusaurus/pull/5732) fix(theme-classic): allow tabs with number as value ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5721](https://github.com/facebook/docusaurus/pull/5721) fix: handle rubber band scrolling in hideable navbar ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-search-algolia`\\n - [#5751](https://github.com/facebook/docusaurus/pull/5751) fix: stable callbacks in useSearchQuery + refactor ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#5717](https://github.com/facebook/docusaurus/pull/5717) refactor: Polish de translation ([@philipp985](https://github.com/philipp985))\\n - [#5725](https://github.com/facebook/docusaurus/pull/5725) refactor: add missing Turkish translations to theme-classic ([@canercanbaz](https://github.com/canercanbaz))\\n - [#5723](https://github.com/facebook/docusaurus/pull/5723) refactor(v2): update Vietnamese translations ([@datlechin](https://github.com/datlechin))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-ideal-image`, `docusaurus-theme-classic`, `docusaurus`\\n - [#5726](https://github.com/facebook/docusaurus/pull/5726) refactor(module-type-aliases): remove fallback aliases ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#5755](https://github.com/facebook/docusaurus/pull/5755) docs: rename docusaurus.config.js route + redirects cleanup ([@slorber](https://github.com/slorber))\\n - [#5750](https://github.com/facebook/docusaurus/pull/5750) docs(v2): Fix typo in using-plugins.md ([@thanasis00](https://github.com/thanasis00))\\n - [#5727](https://github.com/facebook/docusaurus/pull/5727) docs(v2): Add Fenghua Frontend Developer site to showcase page ([@zxuqian](https://github.com/zxuqian))\\n - [#5746](https://github.com/facebook/docusaurus/pull/5746) docs: Add plugin-image-zoom ([@ataft](https://github.com/ataft))\\n - [#5728](https://github.com/facebook/docusaurus/pull/5728) docs: add h4 into toc on certain pages ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5737](https://github.com/facebook/docusaurus/pull/5737) docs: Add Apex FP to showcase ([@ipavlic](https://github.com/ipavlic))\\n- `docusaurus-plugin-content-blog`\\n - [#5753](https://github.com/facebook/docusaurus/pull/5753) fix(content-blog): temporarily swallow feed mdxToHtml errors + feed refactor ([@slorber](https://github.com/slorber))\\n\\n## :house: Internal\\n\\n- `docusaurus`\\n - [#5761](https://github.com/facebook/docusaurus/pull/5761) chore: upgrade html-webpack-plugin, remove terser 4 ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#5714](https://github.com/facebook/docusaurus/pull/5714) chore: Enable ESLint rules of hooks + fix new lint errors ([@slorber](https://github.com/slorber))\\n- Other\\n - [#5722](https://github.com/facebook/docusaurus/pull/5722) chore: fix gen script to support TS template ([@lex111](https://github.com/lex111))\\n - [#5730](https://github.com/facebook/docusaurus/pull/5730) chore: fix typos / casing in issue template ([@johnnyreilly](https://github.com/johnnyreilly))\\n - [#5720](https://github.com/facebook/docusaurus/pull/5720) chore: regenerate beta.7 examples ([@lex111](https://github.com/lex111))\\n - [#5719](https://github.com/facebook/docusaurus/pull/5719) chore: remove beta.5 docs ([@lex111](https://github.com/lex111))\\n\\n## :running: Performance\\n\\n- `docusaurus`\\n - [#5748](https://github.com/facebook/docusaurus/pull/5748) refactor: perform shallow clone during deploy ([@nlfurniss](https://github.com/nlfurniss))\\n\\n## Committers: 13\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Andrew Taft ([@ataft](https://github.com/ataft))\\n- Caner Canbaz ([@canercanbaz](https://github.com/canercanbaz))\\n- Dimi Mikadze ([@DimiMikadze](https://github.com/DimiMikadze))\\n- Ilija Pavlic ([@ipavlic](https://github.com/ipavlic))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Nathaniel Furniss ([@nlfurniss](https://github.com/nlfurniss))\\n- Ng\xf4 Qu\u1ED1c \u0110\u1EA1t ([@datlechin](https://github.com/datlechin))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Thanasis Katsadas ([@thanasis00](https://github.com/thanasis00))\\n- Xuqian ([@zxuqian](https://github.com/zxuqian))\\n- [@philipp985](https://github.com/philipp985)"},{"id":"/2.0.0-beta.7","metadata":{"permalink":"/changelog/2.0.0-beta.7","source":"@site/changelog/source/2.0.0-beta.7.md","title":"2.0.0-beta.7","description":"New Feature","date":"2021-10-15T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Aditya Kajla","alias":"akajla09","url":"https://github.com/akajla09","imageURL":"https://github.com/akajla09.png","key":"akajla09","page":null},{"name":"Andrew Nguyen","alias":"Andrewnt219","url":"https://github.com/Andrewnt219","imageURL":"https://github.com/Andrewnt219.png","key":"Andrewnt219","page":null},{"name":"Palash Shrivastava","alias":"BattleOfPlassey","url":"https://github.com/BattleOfPlassey","imageURL":"https://github.com/BattleOfPlassey.png","key":"BattleOfPlassey","page":null},{"name":"Bharat Middha","alias":"bmiddha","url":"https://github.com/bmiddha","imageURL":"https://github.com/bmiddha.png","key":"bmiddha","page":null},{"name":"David Callizaya","alias":"caleeli","url":"https://github.com/caleeli","imageURL":"https://github.com/caleeli.png","key":"caleeli","page":null},{"name":"Chris Chinchilla","alias":"ChrisChinchilla","url":"https://github.com/ChrisChinchilla","imageURL":"https://github.com/ChrisChinchilla.png","key":"ChrisChinchilla","page":null},{"name":"djamaile","alias":"djamaile","url":"https://github.com/djamaile","imageURL":"https://github.com/djamaile.png","key":"djamaile","page":null},{"name":"Dr-Electron","alias":"Dr-Electron","url":"https://github.com/Dr-Electron","imageURL":"https://github.com/Dr-Electron.png","key":"Dr-Electron","page":null},{"name":"Darshan Gada","alias":"dr5hn","url":"https://github.com/dr5hn","imageURL":"https://github.com/dr5hn.png","key":"dr5hn","page":null},{"name":"Don","alias":"dsmmcken","url":"https://github.com/dsmmcken","imageURL":"https://github.com/dsmmcken.png","key":"dsmmcken","page":null},{"name":"Ekaterina Mozheiko","alias":"EkaterinaMozheiko","url":"https://github.com/EkaterinaMozheiko","imageURL":"https://github.com/EkaterinaMozheiko.png","key":"EkaterinaMozheiko","page":null},{"name":"Erick Zhao","alias":"erickzhao","url":"https://github.com/erickzhao","imageURL":"https://github.com/erickzhao.png","key":"erickzhao","page":null},{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},{"name":"Gabriel T. Nardy","alias":"gtnardy","url":"https://github.com/gtnardy","imageURL":"https://github.com/gtnardy.png","key":"gtnardy","page":null},{"name":"headline-design","alias":"headline-design","url":"https://github.com/headline-design","imageURL":"https://github.com/headline-design.png","key":"headline-design","page":null},{"name":"Hugh Lilly","alias":"hughlilly","url":"https://github.com/hughlilly","imageURL":"https://github.com/hughlilly.png","key":"hughlilly","page":null},{"name":"Ivar Conradi \xd8sthus","alias":"ivarconr","url":"https://github.com/ivarconr","imageURL":"https://github.com/ivarconr.png","key":"ivarconr","page":null},{"name":"Jason Bosco","alias":"jasonbosco","url":"https://github.com/jasonbosco","imageURL":"https://github.com/jasonbosco.png","key":"jasonbosco","page":null},{"name":"Jeffrey Aven","alias":"jeffreyaven","url":"https://github.com/jeffreyaven","imageURL":"https://github.com/jeffreyaven.png","key":"jeffreyaven","page":null},{"name":"Jordan Lee","alias":"jkhaui","url":"https://github.com/jkhaui","imageURL":"https://github.com/jkhaui.png","key":"jkhaui","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Robert Kingston","alias":"kingo55","url":"https://github.com/kingo55","imageURL":"https://github.com/kingo55.png","key":"kingo55","page":null},{"name":"Kyriet","alias":"KyrietS","url":"https://github.com/KyrietS","imageURL":"https://github.com/KyrietS.png","key":"KyrietS","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"moonrailgun","alias":"moonrailgun","url":"https://github.com/moonrailgun","imageURL":"https://github.com/moonrailgun.png","key":"moonrailgun","page":null},{"name":"Mahdi Hamldar","alias":"MrTechHunter","url":"https://github.com/MrTechHunter","imageURL":"https://github.com/MrTechHunter.png","key":"MrTechHunter","page":null},{"name":"Nathaniel Tucker","alias":"ntucker","url":"https://github.com/ntucker","imageURL":"https://github.com/ntucker.png","key":"ntucker","page":null},{"name":"Daniel Costrasel","alias":"ohkimur","url":"https://github.com/ohkimur","imageURL":"https://github.com/ohkimur.png","key":"ohkimur","page":null},{"name":"Ana Carolina","alias":"printf-ana","url":"https://github.com/printf-ana","imageURL":"https://github.com/printf-ana.png","key":"printf-ana","page":null},{"name":"Shrugsy","alias":"Shrugsy","url":"https://github.com/Shrugsy","imageURL":"https://github.com/Shrugsy.png","key":"Shrugsy","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Stefan Norberg","alias":"stnor","url":"https://github.com/stnor","imageURL":"https://github.com/stnor.png","key":"stnor","page":null},{"name":"swyx","alias":"sw-yx","url":"https://github.com/sw-yx","imageURL":"https://github.com/sw-yx.png","key":"sw-yx","page":null},{"name":"Vincent","alias":"vinckr","url":"https://github.com/vinckr","imageURL":"https://github.com/vinckr.png","key":"vinckr","page":null},{"name":"Whirl","alias":"Whirl21","url":"https://github.com/Whirl21","imageURL":"https://github.com/Whirl21.png","key":"Whirl21","page":null},{"name":"Paul O\u2019Shannessy","alias":"zpao","url":"https://github.com/zpao","imageURL":"https://github.com/zpao.png","key":"zpao","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-10-15T20:00","authors":["akajla09","Andrewnt219","BattleOfPlassey","bmiddha","caleeli","ChrisChinchilla","djamaile","Dr-Electron","dr5hn","dsmmcken","EkaterinaMozheiko","erickzhao","forresst","gtnardy","headline-design","hughlilly","ivarconr","jasonbosco","jeffreyaven","jkhaui","Josh-Cena","kingo55","KyrietS","lex111","moonrailgun","MrTechHunter","ntucker","ohkimur","printf-ana","Shrugsy","slorber","stnor","sw-yx","vinckr","Whirl21","zpao"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.8","permalink":"/changelog/2.0.0-beta.8"},"nextItem":{"title":"2.0.0-beta.6","permalink":"/changelog/2.0.0-beta.6"},"listPageLink":"/changelog/page/2"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-module-type-aliases`, `docusaurus`\\n - [#5683](https://github.com/facebook/docusaurus/pull/5683) feat: make Translate children optional ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5674](https://github.com/facebook/docusaurus/pull/5674) polish(theme-classic): guard against potential definition mistakes in Tabs ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5618](https://github.com/facebook/docusaurus/pull/5618) feat: maintain page position for clicked grouped tabs ([@Shrugsy](https://github.com/Shrugsy))\\n- `docusaurus-plugin-content-blog`, `docusaurus-utils`\\n - [#4330](https://github.com/facebook/docusaurus/pull/4330) feat(content-blog): add full blog post html into RSS/Atom feeds ([@moonrailgun](https://github.com/moonrailgun))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5642](https://github.com/facebook/docusaurus/pull/5642) feat(theme-classic, plugin-docs): sidebar item level-specific className + allow customization ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `create-docusaurus`\\n - [#5635](https://github.com/facebook/docusaurus/pull/5635) feat: npm init docusaurus, yarn create docusaurus ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`\\n - [#5589](https://github.com/facebook/docusaurus/pull/5589) feat: properly type-check the Docusaurus config of new sites ([@bmiddha](https://github.com/bmiddha))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils-validation`\\n - [#5578](https://github.com/facebook/docusaurus/pull/5578) feat(v2): allow specifying TOC max depth (themeConfig + frontMatter) ([@erickzhao](https://github.com/erickzhao))\\n- `docusaurus`\\n - [#5498](https://github.com/facebook/docusaurus/pull/5498) feat: make Webpack url-loader limit configurable (env variable) ([@stnor](https://github.com/stnor))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`\\n - [#5545](https://github.com/facebook/docusaurus/pull/5545) feat: make tags route path configurable ([@lex111](https://github.com/lex111))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5674](https://github.com/facebook/docusaurus/pull/5674) polish(theme-classic): guard against potential definition mistakes in Tabs ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5618](https://github.com/facebook/docusaurus/pull/5618) feat: maintain page position for clicked grouped tabs ([@Shrugsy](https://github.com/Shrugsy))\\n- `docusaurus-init`, `docusaurus-preset-bootstrap`, `docusaurus-theme-bootstrap`\\n - [#5634](https://github.com/facebook/docusaurus/pull/5634) chore: remove unused Bootstrap theme ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils-validation`\\n - [#5578](https://github.com/facebook/docusaurus/pull/5578) feat(v2): allow specifying TOC max depth (themeConfig + frontMatter) ([@erickzhao](https://github.com/erickzhao))\\n- `docusaurus-theme-classic`\\n - [#5592](https://github.com/facebook/docusaurus/pull/5592) refactor: use CSS Modules for toggle styles ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-common`\\n - [#5694](https://github.com/facebook/docusaurus/pull/5694) fix: proper collapsing of long element ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#5684](https://github.com/facebook/docusaurus/pull/5684) fix: use realpath for site dir to resolve symlink ([@lex111](https://github.com/lex111))\\n - [#5645](https://github.com/facebook/docusaurus/pull/5645) fix: place root route at the end ([@lex111](https://github.com/lex111))\\n - [#5629](https://github.com/facebook/docusaurus/pull/5629) fix: text/link hydration bug ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5699](https://github.com/facebook/docusaurus/pull/5699) fix: apply announcement bar class if only needed ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#5667](https://github.com/facebook/docusaurus/pull/5667) fix: expand tag column on truncated post ([@lex111](https://github.com/lex111))\\n - [#5668](https://github.com/facebook/docusaurus/pull/5668) fix: preserve line breaks when copy code in Firefox ([@lex111](https://github.com/lex111))\\n - [#5647](https://github.com/facebook/docusaurus/pull/5647) feat(theme-classic): make first tab the default tab ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5652](https://github.com/facebook/docusaurus/pull/5652) fix: restore duplicate Tabs rendering to fix hydration issue ([@slorber](https://github.com/slorber))\\n - [#5643](https://github.com/facebook/docusaurus/pull/5643) fix(theme-classic): reset default style for task lists ([@EkaterinaMozheiko](https://github.com/EkaterinaMozheiko))\\n - [#5571](https://github.com/facebook/docusaurus/pull/5571) fix: highlight active item in recent post list ([@lex111](https://github.com/lex111))\\n - [#5481](https://github.com/facebook/docusaurus/pull/5481) fix: use heading itself as anchor for better crawling ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-live-codeblock`\\n - [#5677](https://github.com/facebook/docusaurus/pull/5677) fix: Don\'t ignore options.transforms for buble ([@ntucker](https://github.com/ntucker))\\n - [#5556](https://github.com/facebook/docusaurus/pull/5556) fix: pin react-live due to possible mismatch React ([@lex111](https://github.com/lex111))\\n- `docusaurus-mdx-loader`\\n - [#5690](https://github.com/facebook/docusaurus/pull/5690) fix: preserve hash in asset link ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-ideal-image`\\n - [#5540](https://github.com/facebook/docusaurus/pull/5540) fix: do not use ideal image plugin in dev env ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`\\n - [#5606](https://github.com/facebook/docusaurus/pull/5606) fix(docs): create tags route if only tags exists ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`, `docusaurus-module-type-aliases`, `docusaurus-types`\\n - [#5601](https://github.com/facebook/docusaurus/pull/5601) fix(module-type-aliases): move @type packages to dependencies ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-utils`\\n - [#5495](https://github.com/facebook/docusaurus/pull/5495) fix: ignore code block lines when creating excerpt ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`\\n - [#5490](https://github.com/facebook/docusaurus/pull/5490) fix: install deps for new project via Yarn on Windows properly ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils-validation`\\n - [#5479](https://github.com/facebook/docusaurus/pull/5479) fix: add docs tag validation to solve #5478 ([@sw-yx](https://github.com/sw-yx))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5709](https://github.com/facebook/docusaurus/pull/5709) refactor: cleanup scroll handlers ([@lex111](https://github.com/lex111))\\n - [#5627](https://github.com/facebook/docusaurus/pull/5627) refactor: various TOC improvements ([@lex111](https://github.com/lex111))\\n - [#5469](https://github.com/facebook/docusaurus/pull/5469) refactor: Adjust styling of back top top button ([@dsmmcken](https://github.com/dsmmcken))\\n- `docusaurus-theme-classic`\\n - [#5708](https://github.com/facebook/docusaurus/pull/5708) refactor: hide hash link from crawlers ([@lex111](https://github.com/lex111))\\n - [#5649](https://github.com/facebook/docusaurus/pull/5649) refactor: improve pt-BR translation for classic theme ([@printf-ana](https://github.com/printf-ana))\\n - [#5646](https://github.com/facebook/docusaurus/pull/5646) refactor: complete missing and fix ES translations ([@caleeli](https://github.com/caleeli))\\n - [#5640](https://github.com/facebook/docusaurus/pull/5640) style: update Persian language translations ([@MrTechHunter](https://github.com/MrTechHunter))\\n - [#5630](https://github.com/facebook/docusaurus/pull/5630) refactor: standardize using media queries ([@lex111](https://github.com/lex111))\\n - [#5487](https://github.com/facebook/docusaurus/pull/5487) refactor: use only one close SVG icon ([@lex111](https://github.com/lex111))\\n - [#5592](https://github.com/facebook/docusaurus/pull/5592) refactor: use CSS Modules for toggle styles ([@lex111](https://github.com/lex111))\\n - [#5485](https://github.com/facebook/docusaurus/pull/5485) polish: prevent pop navigation on back if navbar sidebar is open ([@slorber](https://github.com/slorber))\\n - [#5472](https://github.com/facebook/docusaurus/pull/5472) polish(theme-classic): add Chinese translations ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#5636](https://github.com/facebook/docusaurus/pull/5636) refactor: make all Props defined as interface + readonly ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus`\\n - [#5560](https://github.com/facebook/docusaurus/pull/5560) polish: remove unused eslint-disable ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#5580](https://github.com/facebook/docusaurus/pull/5580) refactor(core): type improvements for `PendingNavigation` ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#5496](https://github.com/facebook/docusaurus/pull/5496) refactor: remove deprecated createRequireFromPath ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- [#5681](https://github.com/facebook/docusaurus/pull/5681) docs(v2): Add CountryStateCityAPI site to showcase page ([@dr5hn](https://github.com/dr5hn))\\n- [#5661](https://github.com/facebook/docusaurus/pull/5661) docs: updated cloudywithachanceofbigdata.com blog showcase ([@jeffreyaven](https://github.com/jeffreyaven))\\n- [#5658](https://github.com/facebook/docusaurus/pull/5658) docs: Algolia plugin must be enabled before crawling the site ([@slorber](https://github.com/slorber))\\n- [#5654](https://github.com/facebook/docusaurus/pull/5654) docs: Add Warrant Docs site to showcase page ([@akajla09](https://github.com/akajla09))\\n- [#5655](https://github.com/facebook/docusaurus/pull/5655) docs: Added cloudywithachanceofbigdata.com showcase blog ([@jeffreyaven](https://github.com/jeffreyaven))\\n- [#5648](https://github.com/facebook/docusaurus/pull/5648) docs: add ory documentation to showcase ([@vinckr](https://github.com/vinckr))\\n- [#5644](https://github.com/facebook/docusaurus/pull/5644) docs: add djamaile blog to site showcase ([@djamaile](https://github.com/djamaile))\\n- [#5641](https://github.com/facebook/docusaurus/pull/5641) docs: add Lux Algo to showcase ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#5638](https://github.com/facebook/docusaurus/pull/5638) docs: add nanos world docs to showcase ([@gtnardy](https://github.com/gtnardy))\\n- [#5610](https://github.com/facebook/docusaurus/pull/5610) docs: Add IOTA wiki to showcase ([@Dr-Electron](https://github.com/Dr-Electron))\\n- [#5489](https://github.com/facebook/docusaurus/pull/5489) docs: add additional search options, typesense and local search ([@jasonbosco](https://github.com/jasonbosco))\\n- [#5590](https://github.com/facebook/docusaurus/pull/5590) docs(website): document npm2yarn plugin + use new Tabs API everywhere ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#5591](https://github.com/facebook/docusaurus/pull/5591) docs: Add whirl.codes to showcase ([@Whirl21](https://github.com/Whirl21))\\n- [#5574](https://github.com/facebook/docusaurus/pull/5574) docs: add Pipeline UI to showcase ([@headline-design](https://github.com/headline-design))\\n- [#5585](https://github.com/facebook/docusaurus/pull/5585) docs: fix more references to Discord channels ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#5572](https://github.com/facebook/docusaurus/pull/5572) docs: add Blogasaurus to showcase ([@BattleOfPlassey](https://github.com/BattleOfPlassey))\\n- [#5575](https://github.com/facebook/docusaurus/pull/5575) docs: clarify MDX version used ([@lex111](https://github.com/lex111))\\n- [#5581](https://github.com/facebook/docusaurus/pull/5581) docs(website): update all Discord links ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#5566](https://github.com/facebook/docusaurus/pull/5566) docs: fix code example ([@ChrisChinchilla](https://github.com/ChrisChinchilla))\\n- [#5559](https://github.com/facebook/docusaurus/pull/5559) docs: minor grammatical correction ([@jkhaui](https://github.com/jkhaui))\\n- [#5543](https://github.com/facebook/docusaurus/pull/5543) docs: add note about files being ignored when prefixed with an unders\u2026 ([@KyrietS](https://github.com/KyrietS))\\n- [#5549](https://github.com/facebook/docusaurus/pull/5549) docs: Add Mint Metrics site to the Showcase ([@kingo55](https://github.com/kingo55))\\n- [#5546](https://github.com/facebook/docusaurus/pull/5546) docs: add unleash to showcase ([@ivarconr](https://github.com/ivarconr))\\n- [#5539](https://github.com/facebook/docusaurus/pull/5539) docs: improve escape pipe in Markdown tables ([@forresst](https://github.com/forresst))\\n- [#5486](https://github.com/facebook/docusaurus/pull/5486) docs: mention Netlify ignore build setting ([@slorber](https://github.com/slorber))\\n- [#5482](https://github.com/facebook/docusaurus/pull/5482) docs: update docusaurus-plugin-relative-paths description ([@ohkimur](https://github.com/ohkimur))\\n\\n## :house: Internal\\n\\n- `create-docusaurus`, `docusaurus-plugin-content-docs`\\n - [#5678](https://github.com/facebook/docusaurus/pull/5678) refactor(content-docs): refactor sidebars, Joi validation, generator rework, expose config types ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#5666](https://github.com/facebook/docusaurus/pull/5666) chore: upgrade Infima to alpha.34 ([@lex111](https://github.com/lex111))\\n - [#5639](https://github.com/facebook/docusaurus/pull/5639) misc: update base translation + remove extra char ([@lex111](https://github.com/lex111))\\n- Other\\n - [#5669](https://github.com/facebook/docusaurus/pull/5669) fix: allow ColorGenerator to parse colors with prefix `#` ([@Andrewnt219](https://github.com/Andrewnt219))\\n - [#5632](https://github.com/facebook/docusaurus/pull/5632) chore: prepare Algolia migration ([@slorber](https://github.com/slorber))\\n - [#5628](https://github.com/facebook/docusaurus/pull/5628) chore: fix warning after build ([@lex111](https://github.com/lex111))\\n - [#5573](https://github.com/facebook/docusaurus/pull/5573) misc: fix ungrammatical sentence about 5-min tutorial ([@hughlilly](https://github.com/hughlilly))\\n - [#5499](https://github.com/facebook/docusaurus/pull/5499) chore: set up CodeQL ([@zpao](https://github.com/zpao))\\n - [#5474](https://github.com/facebook/docusaurus/pull/5474) chore: remove beta.4 docs (already archived) ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-preset-bootstrap`, `docusaurus-theme-bootstrap`\\n - [#5634](https://github.com/facebook/docusaurus/pull/5634) chore: remove unused Bootstrap theme ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#5611](https://github.com/facebook/docusaurus/pull/5611) chore: upgrade Prettier + regenerate lock file ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-pwa`, `docusaurus`\\n - [#5609](https://github.com/facebook/docusaurus/pull/5609) chore: upgrade Terser-related dependencies ([@lex111](https://github.com/lex111))\\n- `docusaurus-cssnano-preset`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#5608](https://github.com/facebook/docusaurus/pull/5608) chore: upgrade dependencies ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#5605](https://github.com/facebook/docusaurus/pull/5605) refactor(core): enforce noImplicitAny ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-preset-classic`\\n - [#5603](https://github.com/facebook/docusaurus/pull/5603) fix(preset-classic): fix TS build issue ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-preset-classic`\\n - [#5561](https://github.com/facebook/docusaurus/pull/5561) refactor(plugin-google-gtag, plugin-google-analytics): migrate packages to TS ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`\\n - [#5579](https://github.com/facebook/docusaurus/pull/5579) refactor(preset-classic): migrate preset-classic to TypeScript ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-init`\\n - [#5484](https://github.com/facebook/docusaurus/pull/5484) chore: regenerate beta.6 examples + fix regen script ([@slorber](https://github.com/slorber))\\n\\n## Committers: 36\\n\\n- Aditya Kajla ([@akajla09](https://github.com/akajla09))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Ana Carolina ([@printf-ana](https://github.com/printf-ana))\\n- Andrew Nguyen ([@Andrewnt219](https://github.com/Andrewnt219))\\n- Bharat Middha ([@bmiddha](https://github.com/bmiddha))\\n- Chris Chinchilla ([@ChrisChinchilla](https://github.com/ChrisChinchilla))\\n- Daniel Costrasel ([@ohkimur](https://github.com/ohkimur))\\n- Darshan Gada ([@dr5hn](https://github.com/dr5hn))\\n- David Callizaya ([@caleeli](https://github.com/caleeli))\\n- Don ([@dsmmcken](https://github.com/dsmmcken))\\n- Ekaterina Mozheiko ([@EkaterinaMozheiko](https://github.com/EkaterinaMozheiko))\\n- Erick Zhao ([@erickzhao](https://github.com/erickzhao))\\n- Forresst ([@forresst](https://github.com/forresst))\\n- Gabriel T. Nardy ([@gtnardy](https://github.com/gtnardy))\\n- Hugh Lilly ([@hughlilly](https://github.com/hughlilly))\\n- Ivar Conradi \xd8sthus ([@ivarconr](https://github.com/ivarconr))\\n- Jason Bosco ([@jasonbosco](https://github.com/jasonbosco))\\n- Jeffrey Aven ([@jeffreyaven](https://github.com/jeffreyaven))\\n- Jordan Lee ([@jkhaui](https://github.com/jkhaui))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Kyriet ([@KyrietS](https://github.com/KyrietS))\\n- Mahdi Hamldar ([@MrTechHunter](https://github.com/MrTechHunter))\\n- Nathaniel Tucker ([@ntucker](https://github.com/ntucker))\\n- Palash Shrivastava ([@BattleOfPlassey](https://github.com/BattleOfPlassey))\\n- Paul O\u2019Shannessy ([@zpao](https://github.com/zpao))\\n- Robert Kingston ([@kingo55](https://github.com/kingo55))\\n- Stefan Norberg ([@stnor](https://github.com/stnor))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Vincent ([@vinckr](https://github.com/vinckr))\\n- Whirl ([@Whirl21](https://github.com/Whirl21))\\n- [@Dr-Electron](https://github.com/Dr-Electron)\\n- [@Shrugsy](https://github.com/Shrugsy)\\n- [@djamaile](https://github.com/djamaile)\\n- [@headline-design](https://github.com/headline-design)\\n- moonrailgun ([@moonrailgun](https://github.com/moonrailgun))\\n- swyx ([@sw-yx](https://github.com/sw-yx))"},{"id":"/2.0.0-beta.6","metadata":{"permalink":"/changelog/2.0.0-beta.6","source":"@site/changelog/source/2.0.0-beta.6.md","title":"2.0.0-beta.6","description":"New Feature","date":"2021-09-02T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Ali Saki","alias":"3alisaki","url":"https://github.com/3alisaki","imageURL":"https://github.com/3alisaki.png","key":"3alisaki","page":null},{"name":"Antony Messerli","alias":"antonym","url":"https://github.com/antonym","imageURL":"https://github.com/antonym.png","key":"antonym","page":null},{"name":"farshid","alias":"farshidinanloo","url":"https://github.com/farshidinanloo","imageURL":"https://github.com/farshidinanloo.png","key":"farshidinanloo","page":null},{"name":"Gabriel Csapo","alias":"gabrielcsapo","url":"https://github.com/gabrielcsapo","imageURL":"https://github.com/gabrielcsapo.png","key":"gabrielcsapo","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Daniel Costrasel","alias":"ohkimur","url":"https://github.com/ohkimur","imageURL":"https://github.com/ohkimur.png","key":"ohkimur","page":null},{"name":"Oscar Lorentzon","alias":"oscarlorentzon","url":"https://github.com/oscarlorentzon","imageURL":"https://github.com/oscarlorentzon.png","key":"oscarlorentzon","page":null},{"name":"Rohit Gohri","alias":"rohit-gohri","url":"https://github.com/rohit-gohri","imageURL":"https://github.com/rohit-gohri.png","key":"rohit-gohri","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-09-02T20:00","authors":["3alisaki","antonym","farshidinanloo","gabrielcsapo","Josh-Cena","lex111","ohkimur","oscarlorentzon","rohit-gohri","slorber"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.7","permalink":"/changelog/2.0.0-beta.7"},"nextItem":{"title":"2.0.0-beta.5","permalink":"/changelog/2.0.0-beta.5"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#5428](https://github.com/facebook/docusaurus/pull/5428) feat: adds blog archive route ([@gabrielcsapo](https://github.com/gabrielcsapo))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5462](https://github.com/facebook/docusaurus/pull/5462) feat: on back navigation, close mobile sidebar ([@slorber](https://github.com/slorber))\\n - [#5445](https://github.com/facebook/docusaurus/pull/5445) feat: Add docs-related stable classnames ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#5460](https://github.com/facebook/docusaurus/pull/5460) feat: infima 33 + navbar-sidebar close button ([@slorber](https://github.com/slorber))\\n - [#5442](https://github.com/facebook/docusaurus/pull/5442) feat(theme-classic): allow passing tab label and default value through TabItem ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#5454](https://github.com/facebook/docusaurus/pull/5454) feat: new docs options: versions.{badge,className} ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#5444](https://github.com/facebook/docusaurus/pull/5444) fix: fix some theme UI issues (blockquotes, navbar-sidebar font) with Infima alpha.32 ([@slorber](https://github.com/slorber))\\n - [#5431](https://github.com/facebook/docusaurus/pull/5431) fix: some beta.5 bugfixes ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#5437](https://github.com/facebook/docusaurus/pull/5437) fix: fix a few TS errors ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#5459](https://github.com/facebook/docusaurus/pull/5459) refactor(theme-classic): completely migrate package to TypeScript ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#5453](https://github.com/facebook/docusaurus/pull/5453) refactor: use SVG for closable button in announcement bar ([@lex111](https://github.com/lex111))\\n - [#5430](https://github.com/facebook/docusaurus/pull/5430) refactor: switch to Flexbox in announcement bar ([@lex111](https://github.com/lex111))\\n - [#5434](https://github.com/facebook/docusaurus/pull/5434) refactor: update Arabic and Persian translations ([@3alisaki](https://github.com/3alisaki))\\n - [#5410](https://github.com/facebook/docusaurus/pull/5410) refactor: add missing translations in fa.json ([@farshidinanloo](https://github.com/farshidinanloo))\\n\\n## :memo: Documentation\\n\\n- [#5471](https://github.com/facebook/docusaurus/pull/5471) docs: Add docusaurus-plugin-relative-paths ([@ohkimur](https://github.com/ohkimur))\\n- [#5464](https://github.com/facebook/docusaurus/pull/5464) docs: add mapillary-js to showcase ([@oscarlorentzon](https://github.com/oscarlorentzon))\\n- [#5433](https://github.com/facebook/docusaurus/pull/5433) docs: document doc tags + refinements ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#5435](https://github.com/facebook/docusaurus/pull/5435) docs: Add netboot.xyz to site showcase ([@antonym](https://github.com/antonym))\\n- [#5436](https://github.com/facebook/docusaurus/pull/5436) docs: add Redocusaurus in community plugin list ([@rohit-gohri](https://github.com/rohit-gohri))\\n\\n## :house: Internal\\n\\n- [#5455](https://github.com/facebook/docusaurus/pull/5455) fix: website bad version name in docusaurus.config.js ([@slorber](https://github.com/slorber))\\n\\n## Committers: 10\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Ali Saki ([@3alisaki](https://github.com/3alisaki))\\n- Antony Messerli ([@antonym](https://github.com/antonym))\\n- Daniel Costrasel ([@ohkimur](https://github.com/ohkimur))\\n- Gabriel Csapo ([@gabrielcsapo](https://github.com/gabrielcsapo))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Oscar Lorentzon ([@oscarlorentzon](https://github.com/oscarlorentzon))\\n- Rohit Gohri ([@rohit-gohri](https://github.com/rohit-gohri))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- farshid ([@farshidinanloo](https://github.com/farshidinanloo))"},{"id":"/2.0.0-beta.5","metadata":{"permalink":"/changelog/2.0.0-beta.5","source":"@site/changelog/source/2.0.0-beta.5.md","title":"2.0.0-beta.5","description":"New Feature","date":"2021-08-26T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Palash Shrivastava","alias":"BattleOfPlassey","url":"https://github.com/BattleOfPlassey","imageURL":"https://github.com/BattleOfPlassey.png","key":"BattleOfPlassey","page":null},{"name":"David Seal","alias":"dbseal","url":"https://github.com/dbseal","imageURL":"https://github.com/dbseal.png","key":"dbseal","page":null},{"name":"Deepak Prabhakara","alias":"deepakprabhakara","url":"https://github.com/deepakprabhakara","imageURL":"https://github.com/deepakprabhakara.png","key":"deepakprabhakara","page":null},{"name":"Erick Zhao","alias":"erickzhao","url":"https://github.com/erickzhao","imageURL":"https://github.com/erickzhao.png","key":"erickzhao","page":null},{"name":"Federico Aloi","alias":"faloi","url":"https://github.com/faloi","imageURL":"https://github.com/faloi.png","key":"faloi","page":null},{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},{"name":"Fouad Matin","alias":"fouad","url":"https://github.com/fouad","imageURL":"https://github.com/fouad.png","key":"fouad","page":null},{"name":"Julien Neuhart","alias":"gulien","url":"https://github.com/gulien","imageURL":"https://github.com/gulien.png","key":"gulien","page":null},{"name":"Hamza Hamidi","alias":"hamzahamidi","url":"https://github.com/hamzahamidi","imageURL":"https://github.com/hamzahamidi.png","key":"hamzahamidi","page":null},{"name":"HaochenQ","alias":"HaochenQ","url":"https://github.com/HaochenQ","imageURL":"https://github.com/HaochenQ.png","key":"HaochenQ","page":null},{"name":"Dmitry Zhifarsky","alias":"incendial","url":"https://github.com/incendial","imageURL":"https://github.com/incendial.png","key":"incendial","page":null},{"name":"Isaac Philip","alias":"isaac-philip","url":"https://github.com/isaac-philip","imageURL":"https://github.com/isaac-philip.png","key":"isaac-philip","page":null},{"name":"Yan Ivan Evdokimov","alias":"jansivans","url":"https://github.com/jansivans","imageURL":"https://github.com/jansivans.png","key":"jansivans","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Jonny Burger","alias":"JonnyBurger","url":"https://github.com/JonnyBurger","imageURL":"https://github.com/JonnyBurger.png","key":"JonnyBurger","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Massoud Maboudi","alias":"massoudmaboudi","url":"https://github.com/massoudmaboudi","imageURL":"https://github.com/massoudmaboudi.png","key":"massoudmaboudi","page":null},{"name":"Marko Saric","alias":"metmarkosaric","url":"https://github.com/metmarkosaric","imageURL":"https://github.com/metmarkosaric.png","key":"metmarkosaric","page":null},{"name":"Michal S\xe4nger","alias":"michalsanger","url":"https://github.com/michalsanger","imageURL":"https://github.com/michalsanger.png","key":"michalsanger","page":null},{"name":"Garry","alias":"neaped","url":"https://github.com/neaped","imageURL":"https://github.com/neaped.png","key":"neaped","page":null},{"name":"Pierre-Gilles Leymarie","alias":"Pierre-Gilles","url":"https://github.com/Pierre-Gilles","imageURL":"https://github.com/Pierre-Gilles.png","key":"Pierre-Gilles","page":null},{"name":"Sam Wall","alias":"sjwall","url":"https://github.com/sjwall","imageURL":"https://github.com/sjwall.png","key":"sjwall","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tunghsiao Liu","alias":"sparanoid","url":"https://github.com/sparanoid","imageURL":"https://github.com/sparanoid.png","key":"sparanoid","page":null},{"name":"wan-nyan-wan","alias":"wan-nyan-wan","url":"https://github.com/wan-nyan-wan","imageURL":"https://github.com/wan-nyan-wan.png","key":"wan-nyan-wan","page":null},{"name":"Paul O\u2019Shannessy","alias":"zpao","url":"https://github.com/zpao","imageURL":"https://github.com/zpao.png","key":"zpao","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-08-26T20:00","authors":["BattleOfPlassey","dbseal","deepakprabhakara","erickzhao","faloi","forresst","fouad","gulien","hamzahamidi","HaochenQ","incendial","isaac-philip","jansivans","johnnyreilly","JonnyBurger","Josh-Cena","lex111","massoudmaboudi","metmarkosaric","michalsanger","neaped","Pierre-Gilles","sjwall","slorber","sparanoid","wan-nyan-wan","zpao"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.6","permalink":"/changelog/2.0.0-beta.6"},"nextItem":{"title":"2.0.0-beta.4","permalink":"/changelog/2.0.0-beta.4"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-utils-validation`\\n - [#5396](https://github.com/facebook/docusaurus/pull/5396) feat(plugin-blog): multi-authors support + authors.yml global configuration ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#5371](https://github.com/facebook/docusaurus/pull/5371) feat: make blog config options and navbar versions dropdown label translatable ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5375](https://github.com/facebook/docusaurus/pull/5375) feat: add metatags support for seo / blogposts #5373 ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus-utils`\\n - [#3646](https://github.com/facebook/docusaurus/pull/3646) feat: doc tags (same as blog tags) ([@isaac-philip](https://github.com/isaac-philip))\\n- `docusaurus-plugin-content-blog`\\n - [#5354](https://github.com/facebook/docusaurus/pull/5354) feat(plugin-blog): allow `\'ALL\'` as `postsPerPage` option value ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#5330](https://github.com/facebook/docusaurus/pull/5330) feat: Markdown page-specific head metadatas ([@slorber](https://github.com/slorber))\\n - [#5322](https://github.com/facebook/docusaurus/pull/5322) feat: structured data for blog posts ([@johnnyreilly](https://github.com/johnnyreilly))\\n - [#5314](https://github.com/facebook/docusaurus/pull/5314) feat(v2): add cs (Czech) translations for docusaurus-theme-classic ([@michalsanger](https://github.com/michalsanger))\\n- `docusaurus-init`\\n - [#5233](https://github.com/facebook/docusaurus/pull/5233) feat: new init template classic-typescript ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#5309](https://github.com/facebook/docusaurus/pull/5309) feat: blog posts support /YYYY/MM/DD/blog-post/index.md pattern + blog frontmatter can reference relative images ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus`\\n - [#5299](https://github.com/facebook/docusaurus/pull/5299) feat: mdx loader fallback, allow importing mdx docs from anywhere ([@slorber](https://github.com/slorber))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus-utils`\\n - [#3646](https://github.com/facebook/docusaurus/pull/3646) feat: doc tags (same as blog tags) ([@isaac-philip](https://github.com/isaac-philip))\\n- `docusaurus-init`, `docusaurus-migrate`, `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus`\\n - [#5345](https://github.com/facebook/docusaurus/pull/5345) refactor: rename Git master branch to main ([@zpao](https://github.com/zpao))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-types`, `docusaurus`\\n - [#5349](https://github.com/facebook/docusaurus/pull/5349) refactor(core): replace useDocusaurusContext().isClient by useIsBrowser() ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#5264](https://github.com/facebook/docusaurus/pull/5264) fix: apply proper class for active doc item on mobiles + avoid duplicated classes ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#5425](https://github.com/facebook/docusaurus/pull/5425) fix: toc does not highlight clicked anchor + use scroll-margin-top ([@slorber](https://github.com/slorber))\\n - [#5424](https://github.com/facebook/docusaurus/pull/5424) refactor: make dynamic authors layout via CSS only ([@lex111](https://github.com/lex111))\\n - [#5422](https://github.com/facebook/docusaurus/pull/5422) fix: make tags wrapping properly ([@lex111](https://github.com/lex111))\\n - [#5419](https://github.com/facebook/docusaurus/pull/5419) fix: various fixes back-to-top button ([@lex111](https://github.com/lex111))\\n - [#5361](https://github.com/facebook/docusaurus/pull/5361) fix: refactor TOC highlighting + handle edge cases ([@slorber](https://github.com/slorber))\\n - [#5357](https://github.com/facebook/docusaurus/pull/5357) fix: code blocks should scroll in RTL direction ([@slorber](https://github.com/slorber))\\n - [#5346](https://github.com/facebook/docusaurus/pull/5346) fix: author/image adjustments in BlogPosting schema ([@lex111](https://github.com/lex111))\\n - [#5240](https://github.com/facebook/docusaurus/pull/5240) fix: remove top margin only from directly first element ([@lex111](https://github.com/lex111))\\n - [#5317](https://github.com/facebook/docusaurus/pull/5317) fix: make proper highlighting doc link if no sidebar ([@hamzahamidi](https://github.com/hamzahamidi))\\n - [#5316](https://github.com/facebook/docusaurus/pull/5316) fix: avoid extra default active class on doc sidebar item ([@lex111](https://github.com/lex111))\\n - [#5319](https://github.com/facebook/docusaurus/pull/5319) fix: unbreak highlighting regular navbar links ([@lex111](https://github.com/lex111))\\n - [#5264](https://github.com/facebook/docusaurus/pull/5264) fix: apply proper class for active doc item on mobiles + avoid duplicated classes ([@lex111](https://github.com/lex111))\\n - [#5275](https://github.com/facebook/docusaurus/pull/5275) fix: improve spanish translation ([@faloi](https://github.com/faloi))\\n - [#5262](https://github.com/facebook/docusaurus/pull/5262) fix: show secondary menu if even there is no main one ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#5426](https://github.com/facebook/docusaurus/pull/5426) fix: Make update-notifier fail-safe if no permission to read configStore ([@slorber](https://github.com/slorber))\\n - [#5398](https://github.com/facebook/docusaurus/pull/5398) fix: fix write-translations warning for theme-common translations ([@slorber](https://github.com/slorber))\\n - [#5381](https://github.com/facebook/docusaurus/pull/5381) fix: canary releases should ignore notifier updates ([@slorber](https://github.com/slorber))\\n - [#5339](https://github.com/facebook/docusaurus/pull/5339) fix: add admonitions support to mdx partials loaded through the fallback mdx loader ([@slorber](https://github.com/slorber))\\n - [#5311](https://github.com/facebook/docusaurus/pull/5311) fix: docusaurus serve logs wrong port if 3000 is taken ([@wan-nyan-wan](https://github.com/wan-nyan-wan))\\n - [#5308](https://github.com/facebook/docusaurus/pull/5308) fix: remove unexpected whitespaces in CSS bundle ([@lex111](https://github.com/lex111))\\n - [#5268](https://github.com/facebook/docusaurus/pull/5268) fix: fix wrong regex that removes extra letters from swizzled component names ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Other\\n - [#5399](https://github.com/facebook/docusaurus/pull/5399) fix: fix site unlocalized 404 pages + aggressive Netlify /assets caching ([@slorber](https://github.com/slorber))\\n - [#5249](https://github.com/facebook/docusaurus/pull/5249) fix: fix Crowdin mapping for pt-BR ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#5383](https://github.com/facebook/docusaurus/pull/5383) fix: fix Locale Dropdown RTL icon + Webpack aliases ordering ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`\\n - [#5370](https://github.com/facebook/docusaurus/pull/5370) fix(init): fix links to feature images in classic-typescript ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-common`\\n - [#5364](https://github.com/facebook/docusaurus/pull/5364) fix: unbreak Details component ([@lex111](https://github.com/lex111))\\n - [#5297](https://github.com/facebook/docusaurus/pull/5297) fix: fix constant value import ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-ideal-image`\\n - [#5334](https://github.com/facebook/docusaurus/pull/5334) fix: plugin ideal-image should generate filename with a hash even in development ([@Pierre-Gilles](https://github.com/Pierre-Gilles))\\n- `docusaurus-theme-search-algolia`\\n - [#5290](https://github.com/facebook/docusaurus/pull/5290) fix: make successful build if missing favicon ([@lex111](https://github.com/lex111))\\n- `docusaurus-utils`\\n - [#5270](https://github.com/facebook/docusaurus/pull/5270) fix: ability to link md files with relative paths when paths contain space ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-types`\\n - [#5261](https://github.com/facebook/docusaurus/pull/5261) fix: fix various TS errors ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-common`\\n - [#5402](https://github.com/facebook/docusaurus/pull/5402) refactor: improve styles of Details component ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#5386](https://github.com/facebook/docusaurus/pull/5386) refactor: various tags improvements ([@lex111](https://github.com/lex111))\\n - [#5377](https://github.com/facebook/docusaurus/pull/5377) refactor: make main heading font size changeable via CSS var ([@lex111](https://github.com/lex111))\\n - [#5355](https://github.com/facebook/docusaurus/pull/5355) refactor: add blog microdata in markup instead of use JSON-LD ([@lex111](https://github.com/lex111))\\n - [#5365](https://github.com/facebook/docusaurus/pull/5365) refactor(v2): improved Farsi default translations ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n - [#5280](https://github.com/facebook/docusaurus/pull/5280) refactor(v2): improved Farsi default translations ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n- Other\\n - [#5389](https://github.com/facebook/docusaurus/pull/5389) refactor: clean Canny integration + rename \'Feedback\' to \'Feature Requests\' + improve TS doc page ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5242](https://github.com/facebook/docusaurus/pull/5242) refactor: reduce ESLint warnings / better typing ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :memo: Documentation\\n\\n- [#5423](https://github.com/facebook/docusaurus/pull/5423) docs: clarify using custom attributes for navbar link ([@lex111](https://github.com/lex111))\\n- [#5421](https://github.com/facebook/docusaurus/pull/5421) docs: add Indent to showcase ([@fouad](https://github.com/fouad))\\n- [#5405](https://github.com/facebook/docusaurus/pull/5405) docs: add Gotenberg to showcase ([@gulien](https://github.com/gulien))\\n- [#5406](https://github.com/facebook/docusaurus/pull/5406) docs: specify proper min Node.js version for Travis CI example ([@BattleOfPlassey](https://github.com/BattleOfPlassey))\\n- [#5390](https://github.com/facebook/docusaurus/pull/5390) docs(v2): showcase BoxyHQ ([@deepakprabhakara](https://github.com/deepakprabhakara))\\n- [#5376](https://github.com/facebook/docusaurus/pull/5376) docs(v2): Update Datagit site to showcase page ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n- [#5372](https://github.com/facebook/docusaurus/pull/5372) docs: remove docusaurus-preset-name from preset doc ([@slorber](https://github.com/slorber))\\n- [#5366](https://github.com/facebook/docusaurus/pull/5366) docs: Add drayman to showcase ([@jansivans](https://github.com/jansivans))\\n- [#5369](https://github.com/facebook/docusaurus/pull/5369) docs(v2): Add Nocalhost website to showcase page ([@neaped](https://github.com/neaped))\\n- [#5351](https://github.com/facebook/docusaurus/pull/5351) docs(website): bump announcement bar + include Twitter link + refactor site colors ([@slorber](https://github.com/slorber))\\n- [#5352](https://github.com/facebook/docusaurus/pull/5352) docs: update `docusaurus-plugin-sass` instructions ([@erickzhao](https://github.com/erickzhao))\\n- [#5332](https://github.com/facebook/docusaurus/pull/5332) docs(v2): add mdx-mermaid to resources ([@sjwall](https://github.com/sjwall))\\n- [#5331](https://github.com/facebook/docusaurus/pull/5331) docs: Changelog page should display TOC with releases ([@slorber](https://github.com/slorber))\\n- [#5329](https://github.com/facebook/docusaurus/pull/5329) docs: add Haochen to showcase page ([@HaochenQ](https://github.com/HaochenQ))\\n- [#5313](https://github.com/facebook/docusaurus/pull/5313) docs: try to make plugin/preset config less confusing ([@slorber](https://github.com/slorber))\\n- [#5296](https://github.com/facebook/docusaurus/pull/5296) docs: update canary doc ([@slorber](https://github.com/slorber))\\n- [#5219](https://github.com/facebook/docusaurus/pull/5219) docs: refactor API documentation ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#5271](https://github.com/facebook/docusaurus/pull/5271) Add Plausible Analytics docs to showcase page ([@metmarkosaric](https://github.com/metmarkosaric))\\n- [#5283](https://github.com/facebook/docusaurus/pull/5283) docs: fix broken link to syncing tab choices section ([@lex111](https://github.com/lex111))\\n- [#5259](https://github.com/facebook/docusaurus/pull/5259) docs(v2): update Remotion website picture in showcase ([@JonnyBurger](https://github.com/JonnyBurger))\\n- [#5260](https://github.com/facebook/docusaurus/pull/5260) docs(v2): add Dart Code Metrics site to showcase page ([@incendial](https://github.com/incendial))\\n- [#5253](https://github.com/facebook/docusaurus/pull/5253) docs: Fix typo `2-resources.md` ([@forresst](https://github.com/forresst))\\n- [#5248](https://github.com/facebook/docusaurus/pull/5248) docs(v2): add docusaurus-prince-pdf to resources ([@sparanoid](https://github.com/sparanoid))\\n- [#5239](https://github.com/facebook/docusaurus/pull/5239) docs(v2): Add unmand site to showcase page ([@dbseal](https://github.com/dbseal))\\n\\n## :house: Internal\\n\\n- Other\\n - [#5397](https://github.com/facebook/docusaurus/pull/5397) chore: rename docusaurus-2-website package + refactor scripts ([@slorber](https://github.com/slorber))\\n - [#5342](https://github.com/facebook/docusaurus/pull/5342) chore: fix e2e yarn berry tests ([@slorber](https://github.com/slorber))\\n - [#5328](https://github.com/facebook/docusaurus/pull/5328) refactor(website): convert website to TypeScript ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5336](https://github.com/facebook/docusaurus/pull/5336) chore: bump url-parse from 1.5.1 to 1.5.3 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#5312](https://github.com/facebook/docusaurus/pull/5312) fix: fix changelog page mdx import for i18n ([@slorber](https://github.com/slorber))\\n - [#5295](https://github.com/facebook/docusaurus/pull/5295) fix: fix canary release versions ([@slorber](https://github.com/slorber))\\n - [#5285](https://github.com/facebook/docusaurus/pull/5285) fix: fix canary version names ([@slorber](https://github.com/slorber))\\n - [#5269](https://github.com/facebook/docusaurus/pull/5269) misc: enable pt-BR + archive older versions ([@slorber](https://github.com/slorber))\\n - [#5237](https://github.com/facebook/docusaurus/pull/5237) chore: enable pt-BR i18n locale on staging ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-migrate`, `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus`\\n - [#5345](https://github.com/facebook/docusaurus/pull/5345) refactor: rename Git master branch to main ([@zpao](https://github.com/zpao))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5341](https://github.com/facebook/docusaurus/pull/5341) polish: bind key listener to light/dark toggle + a11y lint fixes ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus`\\n - [#5347](https://github.com/facebook/docusaurus/pull/5347) chore(mdx-loader): migrate package to TypeScript ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus`\\n - [#5335](https://github.com/facebook/docusaurus/pull/5335) refactor: better typing + remove unnecessary eslint-disable ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-blog`\\n - [#5338](https://github.com/facebook/docusaurus/pull/5338) refactor(plugin-blog): style improvements in blogUtils ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`\\n - [#5256](https://github.com/facebook/docusaurus/pull/5256) chore: upgrade Infima to alpha.30 ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`\\n - [#5315](https://github.com/facebook/docusaurus/pull/5315) refactor(init): share common files between templates ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5284](https://github.com/facebook/docusaurus/pull/5284) refactor: properly type docs version ([@Josh-Cena](https://github.com/Josh-Cena))\\n\\n## :running: Performance\\n\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-types`, `docusaurus`\\n - [#5349](https://github.com/facebook/docusaurus/pull/5349) refactor(core): replace useDocusaurusContext().isClient by useIsBrowser() ([@slorber](https://github.com/slorber))\\n\\n## Committers: 27\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- David Seal ([@dbseal](https://github.com/dbseal))\\n- Deepak Prabhakara ([@deepakprabhakara](https://github.com/deepakprabhakara))\\n- Dmitry Zhifarsky ([@incendial](https://github.com/incendial))\\n- Erick Zhao ([@erickzhao](https://github.com/erickzhao))\\n- Federico Aloi ([@faloi](https://github.com/faloi))\\n- Forresst ([@forresst](https://github.com/forresst))\\n- Fouad Matin ([@fouad](https://github.com/fouad))\\n- Garry ([@neaped](https://github.com/neaped))\\n- Hamza Hamidi ([@hamzahamidi](https://github.com/hamzahamidi))\\n- Isaac Philip ([@isaac-philip](https://github.com/isaac-philip))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Jonny Burger ([@JonnyBurger](https://github.com/JonnyBurger))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Julien Neuhart ([@gulien](https://github.com/gulien))\\n- Marko Saric ([@metmarkosaric](https://github.com/metmarkosaric))\\n- Massoud Maboudi ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n- Michal S\xe4nger ([@michalsanger](https://github.com/michalsanger))\\n- Palash Shrivastava ([@BattleOfPlassey](https://github.com/BattleOfPlassey))\\n- Paul O\u2019Shannessy ([@zpao](https://github.com/zpao))\\n- Pierre-Gilles Leymarie ([@Pierre-Gilles](https://github.com/Pierre-Gilles))\\n- Sam Wall ([@sjwall](https://github.com/sjwall))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tunghsiao Liu ([@sparanoid](https://github.com/sparanoid))\\n- Yan Ivan Evdokimov ([@jansivans](https://github.com/jansivans))\\n- [@HaochenQ](https://github.com/HaochenQ)\\n- wan-nyan-wan ([@wan-nyan-wan](https://github.com/wan-nyan-wan))"},{"id":"/2.0.0-beta.4","metadata":{"permalink":"/changelog/2.0.0-beta.4","source":"@site/changelog/source/2.0.0-beta.4.md","title":"2.0.0-beta.4","description":"New Feature","date":"2021-07-28T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"antonvasilev52","alias":"antonvasilev52","url":"https://github.com/antonvasilev52","imageURL":"https://github.com/antonvasilev52.png","key":"antonvasilev52","page":null},{"name":"Arnaud Jeannin","alias":"arnaudjnn","url":"https://github.com/arnaudjnn","imageURL":"https://github.com/arnaudjnn.png","key":"arnaudjnn","page":null},{"name":"Christian Flach","alias":"cmfcmf","url":"https://github.com/cmfcmf","imageURL":"https://github.com/cmfcmf.png","key":"cmfcmf","page":null},{"name":"Arijit Kundu","alias":"covalentbond","url":"https://github.com/covalentbond","imageURL":"https://github.com/covalentbond.png","key":"covalentbond","page":null},{"name":"David Zhao","alias":"davidzhao","url":"https://github.com/davidzhao","imageURL":"https://github.com/davidzhao.png","key":"davidzhao","page":null},{"name":"David Barrat","alias":"dbrrt","url":"https://github.com/dbrrt","imageURL":"https://github.com/dbrrt.png","key":"dbrrt","page":null},{"name":"Dan Gebhardt","alias":"dgeb","url":"https://github.com/dgeb","imageURL":"https://github.com/dgeb.png","key":"dgeb","page":null},{"name":"Fran\xe7ois Massot","alias":"fmassot","url":"https://github.com/fmassot","imageURL":"https://github.com/fmassot.png","key":"fmassot","page":null},{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Lennart Koopmann","alias":"lennartkoopmann","url":"https://github.com/lennartkoopmann","imageURL":"https://github.com/lennartkoopmann.png","key":"lennartkoopmann","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Lukas Bach","alias":"lukasbach","url":"https://github.com/lukasbach","imageURL":"https://github.com/lukasbach.png","key":"lukasbach","page":null},{"name":"Mar\xe7al Junior","alias":"marssaljr","url":"https://github.com/marssaljr","imageURL":"https://github.com/marssaljr.png","key":"marssaljr","page":null},{"name":"Massoud Maboudi","alias":"massoudmaboudi","url":"https://github.com/massoudmaboudi","imageURL":"https://github.com/massoudmaboudi.png","key":"massoudmaboudi","page":null},{"name":"Michel Weststrate","alias":"mweststrate","url":"https://github.com/mweststrate","imageURL":"https://github.com/mweststrate.png","key":"mweststrate","page":null},{"name":"Nazar","alias":"NazarStreletskyi","url":"https://github.com/NazarStreletskyi","imageURL":"https://github.com/NazarStreletskyi.png","key":"NazarStreletskyi","page":null},{"name":"nirtamir2","alias":"nirtamir2","url":"https://github.com/nirtamir2","imageURL":"https://github.com/nirtamir2.png","key":"nirtamir2","page":null},{"name":"Przemys\u0142aw Chojecki","alias":"pcho","url":"https://github.com/pcho","imageURL":"https://github.com/pcho.png","key":"pcho","page":null},{"name":"Philipp Muens","alias":"pmuens","url":"https://github.com/pmuens","imageURL":"https://github.com/pmuens.png","key":"pmuens","page":null},{"name":"Pranab Das","alias":"pranabdas","url":"https://github.com/pranabdas","imageURL":"https://github.com/pranabdas.png","key":"pranabdas","page":null},{"name":"Raz Luvaton","alias":"rluvaton","url":"https://github.com/rluvaton","imageURL":"https://github.com/rluvaton.png","key":"rluvaton","page":null},{"name":"Sergio Moreno","alias":"semoal","url":"https://github.com/semoal","imageURL":"https://github.com/semoal.png","key":"semoal","page":null},{"name":"Cl\xe9ment Vannicatte","alias":"shortcuts","url":"https://github.com/shortcuts","imageURL":"https://github.com/shortcuts.png","key":"shortcuts","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Taylor Reece","alias":"taylorreece","url":"https://github.com/taylorreece","imageURL":"https://github.com/taylorreece.png","key":"taylorreece","page":null},{"name":"tohid nateghi","alias":"tohidnateghi","url":"https://github.com/tohidnateghi","imageURL":"https://github.com/tohidnateghi.png","key":"tohidnateghi","page":null},{"name":"\u9648\u6768\u6587","alias":"wenerme","url":"https://github.com/wenerme","imageURL":"https://github.com/wenerme.png","key":"wenerme","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-07-28T20:00","authors":["antonvasilev52","arnaudjnn","cmfcmf","covalentbond","davidzhao","dbrrt","dgeb","fmassot","forresst","Josh-Cena","lennartkoopmann","lex111","lukasbach","marssaljr","massoudmaboudi","mweststrate","NazarStreletskyi","nirtamir2","pcho","pmuens","pranabdas","rluvaton","semoal","shortcuts","slorber","taylorreece","tohidnateghi","wenerme"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.5","permalink":"/changelog/2.0.0-beta.5"},"nextItem":{"title":"2.0.0-beta.3","permalink":"/changelog/2.0.0-beta.3"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#4912](https://github.com/facebook/docusaurus/pull/4912) feat(v2): add back to top button ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`\\n - [#5235](https://github.com/facebook/docusaurus/pull/5235) feat: docusaurus.new + improve StackBlitz playground integration ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5203](https://github.com/facebook/docusaurus/pull/5203) feat: docs plugin options sidebarCollapsible + sidebarCollapsed ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus`\\n - [#5207](https://github.com/facebook/docusaurus/pull/5207) feat: multiple playground choices ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus`\\n - [#4273](https://github.com/facebook/docusaurus/pull/4273) feat(v2): redesign mobile UX: inline TOC + doc sidebar in main menu ([@lex111](https://github.com/lex111))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5203](https://github.com/facebook/docusaurus/pull/5203) feat: docs plugin options sidebarCollapsible + sidebarCollapsed ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils`, `docusaurus`\\n - [#5173](https://github.com/facebook/docusaurus/pull/5173) feat(v2): generalize usage of \\\\_ prefix convention to exclude content files/folders ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus`\\n - [#4273](https://github.com/facebook/docusaurus/pull/4273) feat(v2): redesign mobile UX: inline TOC + doc sidebar in main menu ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-blog`\\n - [#5232](https://github.com/facebook/docusaurus/pull/5232) fix(v2): blog should parse frontMatter.date even when time is present ([@wenerme](https://github.com/wenerme))\\n- `docusaurus-theme-classic`\\n - [#5230](https://github.com/facebook/docusaurus/pull/5230) fix(v2): remove top margin from first element inside doc article ([@lex111](https://github.com/lex111))\\n - [#5229](https://github.com/facebook/docusaurus/pull/5229) fix(v2): keep mobile TOC after hydration ([@lex111](https://github.com/lex111))\\n - [#5179](https://github.com/facebook/docusaurus/pull/5179) fix(v2): wrap dropdown item to missing li element + remove extra attributes ([@lex111](https://github.com/lex111))\\n - [#5183](https://github.com/facebook/docusaurus/pull/5183) fix(v2): pass all props to CodeBlock component ([@lex111](https://github.com/lex111))\\n - [#5176](https://github.com/facebook/docusaurus/pull/5176) fix(v2): Fix type for navlink label ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5172](https://github.com/facebook/docusaurus/pull/5172) fix(v2): hide mobile collapsible doc toc if no headings ([@slorber](https://github.com/slorber))\\n - [#5161](https://github.com/facebook/docusaurus/pull/5161) fix(v2): disable default behavior when click on collapsible item ([@lex111](https://github.com/lex111))\\n - [#5151](https://github.com/facebook/docusaurus/pull/5151) fix(v2): add missing french translations for mobile ([@forresst](https://github.com/forresst))\\n - [#5104](https://github.com/facebook/docusaurus/pull/5104) fix(v2): fix SkipToContent programmatic focus when updating querystring ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-search-algolia`\\n - [#5214](https://github.com/facebook/docusaurus/pull/5214) fix: upgrade Docsearch to avoid layout shift ([@slorber](https://github.com/slorber))\\n - [#5135](https://github.com/facebook/docusaurus/pull/5135) chore(v2): update @docsearch/react ([@shortcuts](https://github.com/shortcuts))\\n- `docusaurus`\\n - [#5204](https://github.com/facebook/docusaurus/pull/5204) fix: cli upgrade helper fail when no `package.dependencies` ([@mweststrate](https://github.com/mweststrate))\\n - [#5164](https://github.com/facebook/docusaurus/pull/5164) fix(v2): revert webpack.resolve.symlinks = false ([@slorber](https://github.com/slorber))\\n - [#5126](https://github.com/facebook/docusaurus/pull/5126) fix(v2): remove webpackConfig.resolve.symlinks: true ([@slorber](https://github.com/slorber))\\n - [#5110](https://github.com/facebook/docusaurus/pull/5110) fix(v2): Fix update-notifier not run at first and not notifying consistently ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils`\\n - [#5199](https://github.com/facebook/docusaurus/pull/5199) fix(v2): Fix MDX docs being considered as partials when siteDir match the \\\\_ prefix convention ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-pwa`\\n - [#5185](https://github.com/facebook/docusaurus/pull/5185) fix(v2): add base URL to content attribute of head tags PWA ([@lex111](https://github.com/lex111))\\n - [#5169](https://github.com/facebook/docusaurus/pull/5169) refactor(v2): automatically add base URL to PWA head tags ([@lex111](https://github.com/lex111))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils`, `docusaurus`\\n - [#5173](https://github.com/facebook/docusaurus/pull/5173) feat(v2): generalize usage of \\\\_ prefix convention to exclude content files/folders ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-common`\\n - [#5159](https://github.com/facebook/docusaurus/pull/5159) fix(v2): Fix Collapsible hydration layout shift ([@slorber](https://github.com/slorber))\\n - [#5146](https://github.com/facebook/docusaurus/pull/5146) fix(v2): improve work of useCollapsible hook with multiple clicks ([@lex111](https://github.com/lex111))\\n- `docusaurus-types`\\n - [#5129](https://github.com/facebook/docusaurus/pull/5129) fix(v2): fix d.ts lint error ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5116](https://github.com/facebook/docusaurus/pull/5116) fix(v2): introduce useCollapsible to fix collapsible animation perf issues ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-client-redirects`\\n - [#5102](https://github.com/facebook/docusaurus/pull/5102) fix(v2): fix redirect plugin when trailingSlash=false for .html extension ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#5228](https://github.com/facebook/docusaurus/pull/5228) refactor(v2): fix small typo in Russian translation ([@antonvasilev52](https://github.com/antonvasilev52))\\n - [#5222](https://github.com/facebook/docusaurus/pull/5222) chore(v2): update Infima to alpha 28 ([@lex111](https://github.com/lex111))\\n - [#5224](https://github.com/facebook/docusaurus/pull/5224) refactor(v2): update Russian translation ([@lex111](https://github.com/lex111))\\n - [#5217](https://github.com/facebook/docusaurus/pull/5217) refactor(v2): improved Farsi default translations ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n - [#5171](https://github.com/facebook/docusaurus/pull/5171) refactor(v2): increase content area if blog sidebar is off ([@lex111](https://github.com/lex111))\\n - [#5154](https://github.com/facebook/docusaurus/pull/5154) refactor(v2): Hindi translation for semantic doc sidebar ([@pranabdas](https://github.com/pranabdas))\\n - [#5145](https://github.com/facebook/docusaurus/pull/5145) refactor(v2): use Collapsible for mobile nav items ([@lex111](https://github.com/lex111))\\n - [#5138](https://github.com/facebook/docusaurus/pull/5138) refactor(v2): Update Hebrew translations ([@nirtamir2](https://github.com/nirtamir2))\\n - [#5140](https://github.com/facebook/docusaurus/pull/5140) refactor(v2): bn translation improvements for semantic doc sidebar ([@pranabdas](https://github.com/pranabdas))\\n - [#5139](https://github.com/facebook/docusaurus/pull/5139) feat(v2): complete Chinese code translations ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5118](https://github.com/facebook/docusaurus/pull/5118) refactor(v2): pt-BR translations improve semantic doc sidebar and tags ([@marssaljr](https://github.com/marssaljr))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#5215](https://github.com/facebook/docusaurus/pull/5215) refactor: make code block shadows consistent with new admonitions ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`\\n - [#5193](https://github.com/facebook/docusaurus/pull/5193) refactor: redesign admonitions/callouts/quotes ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5168](https://github.com/facebook/docusaurus/pull/5168) refactor(v2): mobile dropdown navbar: expand when subitem become active ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- [#5236](https://github.com/facebook/docusaurus/pull/5236) docs: add Verdaccio.org to showcase ([@semoal](https://github.com/semoal))\\n- [#5218](https://github.com/facebook/docusaurus/pull/5218) docs(v2): remove vector.dev from showcase ([@lex111](https://github.com/lex111))\\n- [#5212](https://github.com/facebook/docusaurus/pull/5212) docs: mention Link can be used for external links ([@slorber](https://github.com/slorber))\\n- [#5210](https://github.com/facebook/docusaurus/pull/5210) docs(v2): Elaboration of raw-loader in markdown react component ([@pranabdas](https://github.com/pranabdas))\\n- [#5191](https://github.com/facebook/docusaurus/pull/5191) docs: user should restart docusaurus after adding prism additionalLanguage ([@tohidnateghi](https://github.com/tohidnateghi))\\n- [#5175](https://github.com/facebook/docusaurus/pull/5175) docs: update API docs on navbar behavior ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#5189](https://github.com/facebook/docusaurus/pull/5189) docs(v2): Add orbitjs site to showcase page ([@dgeb](https://github.com/dgeb))\\n- [#5177](https://github.com/facebook/docusaurus/pull/5177) docs(v2): add easyjwt to users ([@dbrrt](https://github.com/dbrrt))\\n- [#5187](https://github.com/facebook/docusaurus/pull/5187) docs(v2): Add quickwit to user.js and png. ([@fmassot](https://github.com/fmassot))\\n- [#5184](https://github.com/facebook/docusaurus/pull/5184) docs(v2): Add react-complex-tree to users.js ([@lukasbach](https://github.com/lukasbach))\\n- [#5178](https://github.com/facebook/docusaurus/pull/5178) docs(v2): Update tutorial link ([@slorber](https://github.com/slorber))\\n- [#5158](https://github.com/facebook/docusaurus/pull/5158) docs(v2): Update deploy with Qovery docs for V2 ([@arnaudjnn](https://github.com/arnaudjnn))\\n- [#5152](https://github.com/facebook/docusaurus/pull/5152) docs(v2): Indent code example to improve readability ([@rluvaton](https://github.com/rluvaton))\\n- [#5133](https://github.com/facebook/docusaurus/pull/5133) docs(v2): GIF format is not suported ([@NazarStreletskyi](https://github.com/NazarStreletskyi))\\n- [#5117](https://github.com/facebook/docusaurus/pull/5117) docs(v2): Add Prismatic docs page to showcase. ([@taylorreece](https://github.com/taylorreece))\\n- [#5115](https://github.com/facebook/docusaurus/pull/5115) docs(v2): Add LiveKit to showcase ([@davidzhao](https://github.com/davidzhao))\\n- [#5114](https://github.com/facebook/docusaurus/pull/5114) docs(v2): add Blink Shell Documentation to Showcase ([@pcho](https://github.com/pcho))\\n- [#5112](https://github.com/facebook/docusaurus/pull/5112) docs(v2): clarify how to disable edit links entirely ([@lennartkoopmann](https://github.com/lennartkoopmann))\\n- [#5113](https://github.com/facebook/docusaurus/pull/5113) docs(v2): Add CryptoDevHub to Showcase ([@pmuens](https://github.com/pmuens))\\n\\n## :house: Internal\\n\\n- `docusaurus-theme-classic`\\n - [#5234](https://github.com/facebook/docusaurus/pull/5234) chore: Upgrade infima 29 ([@slorber](https://github.com/slorber))\\n - [#5130](https://github.com/facebook/docusaurus/pull/5130) test(v2): dogfooding: add huge sidebar for testing purposes ([@slorber](https://github.com/slorber))\\n- Other\\n - [#5223](https://github.com/facebook/docusaurus/pull/5223) chore: fix iframe background color in dark mode ([@lex111](https://github.com/lex111))\\n - [#5206](https://github.com/facebook/docusaurus/pull/5206) misc: add script to keep starters branch/repos up-to-date ([@slorber](https://github.com/slorber))\\n - [#5167](https://github.com/facebook/docusaurus/pull/5167) fix(v2): fix website PWA icon hrefs ([@slorber](https://github.com/slorber))\\n - [#5166](https://github.com/facebook/docusaurus/pull/5166) fix(v2): fix yarn clear command ([@slorber](https://github.com/slorber))\\n - [#5137](https://github.com/facebook/docusaurus/pull/5137) chore: upgrade crowdin ([@slorber](https://github.com/slorber))\\n - [#5111](https://github.com/facebook/docusaurus/pull/5111) misc: monitor site global data with build size bot ([@slorber](https://github.com/slorber))\\n\\n## :running: Performance\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5136](https://github.com/facebook/docusaurus/pull/5136) perf(v2): lazy sidebar categories / collapsibles, reduce html output / build times ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#5130](https://github.com/facebook/docusaurus/pull/5130) test(v2): dogfooding: add huge sidebar for testing purposes ([@slorber](https://github.com/slorber))\\n\\n## Committers: 28\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Arijit Kundu ([@covalentbond](https://github.com/covalentbond))\\n- Arnaud Jeannin ([@arnaudjnn](https://github.com/arnaudjnn))\\n- Christian Flach ([@cmfcmf](https://github.com/cmfcmf))\\n- Cl\xe9ment Vannicatte ([@shortcuts](https://github.com/shortcuts))\\n- Dan Gebhardt ([@dgeb](https://github.com/dgeb))\\n- David Barrat ([@dbrrt](https://github.com/dbrrt))\\n- David Zhao ([@davidzhao](https://github.com/davidzhao))\\n- Forresst ([@forresst](https://github.com/forresst))\\n- Fran\xe7ois Massot ([@fmassot](https://github.com/fmassot))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Lennart Koopmann ([@lennartkoopmann](https://github.com/lennartkoopmann))\\n- Lukas Bach ([@lukasbach](https://github.com/lukasbach))\\n- Mar\xe7al Junior ([@marssaljr](https://github.com/marssaljr))\\n- Massoud Maboudi ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n- Michel Weststrate ([@mweststrate](https://github.com/mweststrate))\\n- Nazar ([@NazarStreletskyi](https://github.com/NazarStreletskyi))\\n- Philipp Muens ([@pmuens](https://github.com/pmuens))\\n- Pranab Das ([@pranabdas](https://github.com/pranabdas))\\n- Przemys\u0142aw Chojecki ([@pcho](https://github.com/pcho))\\n- Raz Luvaton ([@rluvaton](https://github.com/rluvaton))\\n- Sergio Moreno ([@semoal](https://github.com/semoal))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Taylor Reece ([@taylorreece](https://github.com/taylorreece))\\n- [@antonvasilev52](https://github.com/antonvasilev52)\\n- [@nirtamir2](https://github.com/nirtamir2)\\n- tohid nateghi ([@tohidnateghi](https://github.com/tohidnateghi))\\n- \u9648\u6768\u6587 ([@wenerme](https://github.com/wenerme))"},{"id":"/2.0.0-beta.3","metadata":{"permalink":"/changelog/2.0.0-beta.3","source":"@site/changelog/source/2.0.0-beta.3.md","title":"2.0.0-beta.3","description":"New Feature","date":"2021-06-30T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Adam Uhl\xed\u0159","alias":"AuHau","url":"https://github.com/AuHau","imageURL":"https://github.com/AuHau.png","key":"AuHau","page":null},{"name":"bperlmutter","alias":"bperlmutter","url":"https://github.com/bperlmutter","imageURL":"https://github.com/bperlmutter.png","key":"bperlmutter","page":null},{"name":"dirslashls","alias":"dirslashls","url":"https://github.com/dirslashls","imageURL":"https://github.com/dirslashls.png","key":"dirslashls","page":null},{"name":"Ayush das","alias":"iamayushdas","url":"https://github.com/iamayushdas","imageURL":"https://github.com/iamayushdas.png","key":"iamayushdas","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Jules Sam. Randolph","alias":"jsamr","url":"https://github.com/jsamr","imageURL":"https://github.com/jsamr.png","key":"jsamr","page":null},{"name":"Danny Lin","alias":"kdrag0n","url":"https://github.com/kdrag0n","imageURL":"https://github.com/kdrag0n.png","key":"kdrag0n","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Rami Yushuvaev","alias":"ramiy","url":"https://github.com/ramiy","imageURL":"https://github.com/ramiy.png","key":"ramiy","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Taylor Reece","alias":"taylorreece","url":"https://github.com/taylorreece","imageURL":"https://github.com/taylorreece.png","key":"taylorreece","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-06-30T20:00","authors":["AuHau","bperlmutter","dirslashls","iamayushdas","Josh-Cena","jsamr","kdrag0n","lex111","ramiy","slorber","taylorreece"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.4","permalink":"/changelog/2.0.0-beta.4"},"nextItem":{"title":"2.0.0-beta.2","permalink":"/changelog/2.0.0-beta.2"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#5092](https://github.com/facebook/docusaurus/pull/5092) feat(v2): add icon to external footer links ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#5080](https://github.com/facebook/docusaurus/pull/5080) fix(v2): classic theme - semantic correct anchors links ([@AuHau](https://github.com/AuHau))\\n - [#5081](https://github.com/facebook/docusaurus/pull/5081) fix(v2): restore previous scroll position on back button click ([@lex111](https://github.com/lex111))\\n - [#5063](https://github.com/facebook/docusaurus/pull/5063) fix(v2): restore responsive menu ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#5094](https://github.com/facebook/docusaurus/pull/5094) fix(v2): fix typos in swizzle command ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#5095](https://github.com/facebook/docusaurus/pull/5095) fix(v2): fix swizzle readComponent ([@slorber](https://github.com/slorber))\\n - [#5059](https://github.com/facebook/docusaurus/pull/5059) fix(v2): fix webpack SSG plugin error thrown due to new URL() / \\\\_\\\\_filename ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#5097](https://github.com/facebook/docusaurus/pull/5097) fix(v2): fix useEffect infinite loop in blogOnly mode ([@slorber](https://github.com/slorber))\\n - [#5074](https://github.com/facebook/docusaurus/pull/5074) fix(v2): allow negative sidebar positions ([@kdrag0n](https://github.com/kdrag0n))\\n- `docusaurus-plugin-client-redirects`\\n - [#5093](https://github.com/facebook/docusaurus/pull/5093) fix(v2): redirect from should work with trailingSlash: true ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-utils`\\n - [#5085](https://github.com/facebook/docusaurus/pull/5085) fix(v2): redirect plugin should emit redirect files with lower precedence than redirect target ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-sitemap`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus`\\n - [#5082](https://github.com/facebook/docusaurus/pull/5082) fix(v2): never remove trailing slash from site root like \'/baseUrl/\' ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-sitemap`\\n - [#5068](https://github.com/facebook/docusaurus/pull/5068) fix(v2): sitemap should respect the global trailingSlash config option. ([@taylorreece](https://github.com/taylorreece))\\n- `docusaurus-types`\\n - [#5058](https://github.com/facebook/docusaurus/pull/5058) fix(v2): fix bad @docusaurus/types Plugin type generics ([@jsamr](https://github.com/jsamr))\\n\\n## :memo: Documentation\\n\\n- [#5064](https://github.com/facebook/docusaurus/pull/5064) docs(v2): Rewrite markdown images section ([@ramiy](https://github.com/ramiy))\\n- [#5086](https://github.com/facebook/docusaurus/pull/5086) docs(v2): Add SQL Frames to the showcase ([@dirslashls](https://github.com/dirslashls))\\n- [#5073](https://github.com/facebook/docusaurus/pull/5073) docs(v2): update installation docs ([@iamayushdas](https://github.com/iamayushdas))\\n- [#5061](https://github.com/facebook/docusaurus/pull/5061) docs(v2:) Divide `markdown-features/code-blocks` to smaller sections ([@ramiy](https://github.com/ramiy))\\n- [#5066](https://github.com/facebook/docusaurus/pull/5066) docs(v2): correct typo ([@bperlmutter](https://github.com/bperlmutter))\\n\\n## :house: Internal\\n\\n- `docusaurus-types`\\n - [#5067](https://github.com/facebook/docusaurus/pull/5067) chore: unstable yarn.lock ([@slorber](https://github.com/slorber))\\n- Other\\n - [#5057](https://github.com/facebook/docusaurus/pull/5057) chore(v2): upgrade examples to beta.2 ([@slorber](https://github.com/slorber))\\n\\n## Committers: 11\\n\\n- Adam Uhl\xed\u0159 ([@AuHau](https://github.com/AuHau))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Ayush das ([@iamayushdas](https://github.com/iamayushdas))\\n- Danny Lin ([@kdrag0n](https://github.com/kdrag0n))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Jules Sam. Randolph ([@jsamr](https://github.com/jsamr))\\n- Rami Yushuvaev ([@ramiy](https://github.com/ramiy))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Taylor Reece ([@taylorreece](https://github.com/taylorreece))\\n- [@bperlmutter](https://github.com/bperlmutter)\\n- [@dirslashls](https://github.com/dirslashls)"},{"id":"/2.0.0-beta.2","metadata":{"permalink":"/changelog/2.0.0-beta.2","source":"@site/changelog/source/2.0.0-beta.2.md","title":"2.0.0-beta.2","description":"New Feature","date":"2021-06-24T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Eshan Tripathi","alias":"eshantri","url":"https://github.com/eshantri","imageURL":"https://github.com/eshantri.png","key":"eshantri","page":null},{"name":"Felipe Santos","alias":"felipecrs","url":"https://github.com/felipecrs","imageURL":"https://github.com/felipecrs.png","key":"felipecrs","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Jules Sam. Randolph","alias":"jsamr","url":"https://github.com/jsamr","imageURL":"https://github.com/jsamr.png","key":"jsamr","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"ZhengYuan Loo","alias":"loozhengyuan","url":"https://github.com/loozhengyuan","imageURL":"https://github.com/loozhengyuan.png","key":"loozhengyuan","page":null},{"name":"Manuel Meurer","alias":"manuelmeurer","url":"https://github.com/manuelmeurer","imageURL":"https://github.com/manuelmeurer.png","key":"manuelmeurer","page":null},{"name":"Rami Yushuvaev","alias":"ramiy","url":"https://github.com/ramiy","imageURL":"https://github.com/ramiy.png","key":"ramiy","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Teik Jun","alias":"teikjun","url":"https://github.com/teikjun","imageURL":"https://github.com/teikjun.png","key":"teikjun","page":null},{"name":"Tomasz Papiernik","alias":"tomekpapiernik","url":"https://github.com/tomekpapiernik","imageURL":"https://github.com/tomekpapiernik.png","key":"tomekpapiernik","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-06-24T20:00","authors":["eshantri","felipecrs","Josh-Cena","jsamr","lex111","loozhengyuan","manuelmeurer","ramiy","slorber","teikjun","tomekpapiernik"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.3","permalink":"/changelog/2.0.0-beta.3"},"nextItem":{"title":"2.0.0-beta.1","permalink":"/changelog/2.0.0-beta.1"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#5052](https://github.com/facebook/docusaurus/pull/5052) feat(v2): docs version banner configuration option ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus`\\n - [#5037](https://github.com/facebook/docusaurus/pull/5037) feat(v2): plugins injectHtmlTags + configureWebpack should receive content loaded ([@slorber](https://github.com/slorber))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-plugin-content-docs`\\n - [#5053](https://github.com/facebook/docusaurus/pull/5053) refactor(v2): remove deprecated docs option excludeNextVersionDocs ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#5052](https://github.com/facebook/docusaurus/pull/5052) feat(v2): docs version banner configuration option ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-types`, `docusaurus`\\n - [#5054](https://github.com/facebook/docusaurus/pull/5054) fix(v2): allow undefined favicon ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#5048](https://github.com/facebook/docusaurus/pull/5048) fix(v2): read last update from inner git repositories ([@felipecrs](https://github.com/felipecrs))\\n- `docusaurus-theme-classic`\\n - [#5050](https://github.com/facebook/docusaurus/pull/5050) fix(v2): add shadow to skip link on focus only ([@lex111](https://github.com/lex111))\\n - [#5035](https://github.com/facebook/docusaurus/pull/5035) fix(v2): fix some docs container/sidebar layout issues ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#5047](https://github.com/facebook/docusaurus/pull/5047) fix(v2): Fix Webpack persistent caching (evict on swizzle/alias/config change) ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5040](https://github.com/facebook/docusaurus/pull/5040) fix(v2): Fix announcementBar layout shifts ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#5034](https://github.com/facebook/docusaurus/pull/5034) fix(v2): dev css modules classnames should include filename ([@slorber](https://github.com/slorber))\\n - [#5016](https://github.com/facebook/docusaurus/pull/5016) fix(v2): add missing quote in build command output ([@manuelmeurer](https://github.com/manuelmeurer))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#5023](https://github.com/facebook/docusaurus/pull/5023) fix(v2): ignore hash changes in useChangeRoute hook ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils-validation`\\n - [#5032](https://github.com/facebook/docusaurus/pull/5032) fix(v2): less strict blog/docs uri frontmatter validation ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-plugin-content-docs`\\n - [#5053](https://github.com/facebook/docusaurus/pull/5053) refactor(v2): remove deprecated docs option excludeNextVersionDocs ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#4993](https://github.com/facebook/docusaurus/pull/4993) style(v2): reduce number of ESLint warnings ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Other\\n - [#5017](https://github.com/facebook/docusaurus/pull/5017) chore(v2): remove badge for v1 tests ([@loozhengyuan](https://github.com/loozhengyuan))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#5049](https://github.com/facebook/docusaurus/pull/5049) docs(v2): Fix Gatsby theme name for docs site - Docz ([@ramiy](https://github.com/ramiy))\\n - [#5030](https://github.com/facebook/docusaurus/pull/5030) docs(v2): typo in deployment.mdx ([@eshantri](https://github.com/eshantri))\\n - [#5022](https://github.com/facebook/docusaurus/pull/5022) docs(v2): Add React Native Render HTML site to showcase page ([@jsamr](https://github.com/jsamr))\\n - [#5027](https://github.com/facebook/docusaurus/pull/5027) docs(v2): Add Buddy to deployment doc ([@tomekpapiernik](https://github.com/tomekpapiernik))\\n - [#5021](https://github.com/facebook/docusaurus/pull/5021) docs(v2): fix incorrect anchor links in website ([@teikjun](https://github.com/teikjun))\\n - [#5007](https://github.com/facebook/docusaurus/pull/5007) docs(v2): wrap mdx usage in mdx-code-block ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#5033](https://github.com/facebook/docusaurus/pull/5033) docs(v2): GH pages: recommend using trailingSlash ([@slorber](https://github.com/slorber))\\n\\n## :house: Internal\\n\\n- [#5005](https://github.com/facebook/docusaurus/pull/5005) chore: add archived versions system + archive alpha.73-75 ([@slorber](https://github.com/slorber))\\n\\n## Committers: 11\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Eshan Tripathi ([@eshantri](https://github.com/eshantri))\\n- Felipe Santos ([@felipecrs](https://github.com/felipecrs))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Jules Sam. Randolph ([@jsamr](https://github.com/jsamr))\\n- Manuel Meurer ([@manuelmeurer](https://github.com/manuelmeurer))\\n- Rami Yushuvaev ([@ramiy](https://github.com/ramiy))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Teik Jun ([@teikjun](https://github.com/teikjun))\\n- Tomasz Papiernik ([@tomekpapiernik](https://github.com/tomekpapiernik))\\n- ZhengYuan Loo ([@loozhengyuan](https://github.com/loozhengyuan))"},{"id":"/2.0.0-beta.1","metadata":{"permalink":"/changelog/2.0.0-beta.1","source":"@site/changelog/source/2.0.0-beta.1.md","title":"2.0.0-beta.1","description":"New Feature","date":"2021-06-18T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"antonygibbs","alias":"antonygibbs","url":"https://github.com/antonygibbs","imageURL":"https://github.com/antonygibbs.png","key":"antonygibbs","page":null},{"name":"Arthur","alias":"ArtFlag","url":"https://github.com/ArtFlag","imageURL":"https://github.com/ArtFlag.png","key":"ArtFlag","page":null},{"name":"besemuna","alias":"besemuna","url":"https://github.com/besemuna","imageURL":"https://github.com/besemuna.png","key":"besemuna","page":null},{"name":"Christopher Hsieh","alias":"Christopher-Hsieh","url":"https://github.com/Christopher-Hsieh","imageURL":"https://github.com/Christopher-Hsieh.png","key":"Christopher-Hsieh","page":null},{"name":"Ben Rometsch","alias":"dabeeeenster","url":"https://github.com/dabeeeenster","imageURL":"https://github.com/dabeeeenster.png","key":"dabeeeenster","page":null},{"name":"e271828-","alias":"e271828-","url":"https://github.com/e271828-","imageURL":"https://github.com/e271828-.png","key":"e271828-","page":null},{"name":"fgatti675","alias":"fgatti675","url":"https://github.com/fgatti675","imageURL":"https://github.com/fgatti675.png","key":"fgatti675","page":null},{"name":"Tina\xebl Devresse","alias":"HunteRoi","url":"https://github.com/HunteRoi","imageURL":"https://github.com/HunteRoi.png","key":"HunteRoi","page":null},{"name":"Jonathan Mazin","alias":"jmazin","url":"https://github.com/jmazin","imageURL":"https://github.com/jmazin.png","key":"jmazin","page":null},{"name":"Joel","alias":"Joelpo","url":"https://github.com/Joelpo","imageURL":"https://github.com/Joelpo.png","key":"Joelpo","page":null},{"name":"Jon Barker","alias":"jonbarker68","url":"https://github.com/jonbarker68","imageURL":"https://github.com/jonbarker68.png","key":"jonbarker68","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"Louis Gallet","alias":"l0u1sg","url":"https://github.com/l0u1sg","imageURL":"https://github.com/l0u1sg.png","key":"l0u1sg","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Pablo Vidal","alias":"limkinZero","url":"https://github.com/limkinZero","imageURL":"https://github.com/limkinZero.png","key":"limkinZero","page":null},{"name":"Lior Heber","alias":"liorheber","url":"https://github.com/liorheber","imageURL":"https://github.com/liorheber.png","key":"liorheber","page":null},{"name":"Louis Grenard","alias":"louistiti","url":"https://github.com/louistiti","imageURL":"https://github.com/louistiti.png","key":"louistiti","page":null},{"name":"Massibian","alias":"Massibian","url":"https://github.com/Massibian","imageURL":"https://github.com/Massibian.png","key":"Massibian","page":null},{"name":"Nam Hoang Le","alias":"nam-hle","url":"https://github.com/nam-hle","imageURL":"https://github.com/nam-hle.png","key":"nam-hle","page":null},{"name":"Pratyay Banerjee","alias":"Neilblaze","url":"https://github.com/Neilblaze","imageURL":"https://github.com/Neilblaze.png","key":"Neilblaze","page":null},{"name":"nirtamir2","alias":"nirtamir2","url":"https://github.com/nirtamir2","imageURL":"https://github.com/nirtamir2.png","key":"nirtamir2","page":null},{"name":"phwt.smwt","alias":"phwt","url":"https://github.com/phwt","imageURL":"https://github.com/phwt.png","key":"phwt","page":null},{"name":"Pedro Queiroz","alias":"pmqueiroz","url":"https://github.com/pmqueiroz","imageURL":"https://github.com/pmqueiroz.png","key":"pmqueiroz","page":null},{"name":"Pranab Das","alias":"pranabdas","url":"https://github.com/pranabdas","imageURL":"https://github.com/pranabdas.png","key":"pranabdas","page":null},{"name":"PsychTech","alias":"PsychTechApS","url":"https://github.com/PsychTechApS","imageURL":"https://github.com/PsychTechApS.png","key":"PsychTechApS","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"silva-nick","alias":"silva-nick","url":"https://github.com/silva-nick","imageURL":"https://github.com/silva-nick.png","key":"silva-nick","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"mg","alias":"tiny-dancer","url":"https://github.com/tiny-dancer","imageURL":"https://github.com/tiny-dancer.png","key":"tiny-dancer","page":null},{"name":"Lucas Correia","alias":"tsirlucas","url":"https://github.com/tsirlucas","imageURL":"https://github.com/tsirlucas.png","key":"tsirlucas","page":null},{"name":"Fardeen Panjwani","alias":"wise-introvert","url":"https://github.com/wise-introvert","imageURL":"https://github.com/wise-introvert.png","key":"wise-introvert","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-06-18T20:00","authors":["antonygibbs","ArtFlag","besemuna","Christopher-Hsieh","dabeeeenster","e271828-","fgatti675","HunteRoi","jmazin","Joelpo","jonbarker68","Josh-Cena","l0u1sg","lex111","limkinZero","liorheber","louistiti","Massibian","nam-hle","Neilblaze","nirtamir2","phwt","pmqueiroz","pranabdas","PsychTechApS","SamChou19815","silva-nick","slorber","tiny-dancer","tsirlucas","wise-introvert"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.2","permalink":"/changelog/2.0.0-beta.2"},"nextItem":{"title":"2.0.0-beta.0","permalink":"/changelog/2.0.0-beta.0"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-docs`\\n - [#4982](https://github.com/facebook/docusaurus/pull/4982) feat(v2): add docs pagination_label frontmatter ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#4949](https://github.com/facebook/docusaurus/pull/4949) feat(v2): add icon to external navbar links ([@lex111](https://github.com/lex111))\\n - [#4939](https://github.com/facebook/docusaurus/pull/4939) feat(v2): theme default translations Bengali ([@Neilblaze](https://github.com/Neilblaze))\\n - [#4811](https://github.com/facebook/docusaurus/pull/4811) feat(v2): Add hebrew translations ([@slorber](https://github.com/slorber))\\n - [#4798](https://github.com/facebook/docusaurus/pull/4798) feat(v2): add theme Danish translation ([@PsychTechApS](https://github.com/PsychTechApS))\\n- `docusaurus-init`\\n - [#4968](https://github.com/facebook/docusaurus/pull/4968) feat(v2): add code block theming in init template ([@Josh-Cena](https://github.com/Josh-Cena))\\n- `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#4908](https://github.com/facebook/docusaurus/pull/4908) feat(v2): add trailingSlash config option ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`\\n - [#4796](https://github.com/facebook/docusaurus/pull/4796) feat(v2): exhaustive docs frontmatter schema ([@nam-hle](https://github.com/nam-hle))\\n- `docusaurus-types`, `docusaurus`\\n - [#4618](https://github.com/facebook/docusaurus/pull/4618) feat(v2): allow config plugins as functions or [function,options] ([@besemuna](https://github.com/besemuna))\\n- `docusaurus-plugin-content-blog`, `docusaurus-utils-validation`\\n - [#4759](https://github.com/facebook/docusaurus/pull/4759) feat(v2): exhaustive BlogPostFrontMatter schema validation ([@nam-hle](https://github.com/nam-hle))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#5001](https://github.com/facebook/docusaurus/pull/5001) chore(v2): update Infima to alpha 26 ([@lex111](https://github.com/lex111))\\n - [#4986](https://github.com/facebook/docusaurus/pull/4986) fix(v2): fix UX for docsVersionDropdown on mobile for single version ([@slorber](https://github.com/slorber))\\n - [#4980](https://github.com/facebook/docusaurus/pull/4980) fix(v2): make proper data type for prependBaseUrlToHref field ([@lex111](https://github.com/lex111))\\n - [#4943](https://github.com/facebook/docusaurus/pull/4943) fix(v2): improve accessibility of code blocks ([@lex111](https://github.com/lex111))\\n - [#4917](https://github.com/facebook/docusaurus/pull/4917) fix(v2): tidy up Markdown page layout ([@lex111](https://github.com/lex111))\\n - [#4906](https://github.com/facebook/docusaurus/pull/4906) fix(v2): fix minor a11y issues ([@lex111](https://github.com/lex111))\\n - [#4900](https://github.com/facebook/docusaurus/pull/4900) fix(v2): adjust margin after content title ([@lex111](https://github.com/lex111))\\n - [#4855](https://github.com/facebook/docusaurus/pull/4855) chore(v2): update infima to alpha 24 ([@lex111](https://github.com/lex111))\\n - [#4819](https://github.com/facebook/docusaurus/pull/4819) fix(v2): Amend Hebrew translations ([@liorheber](https://github.com/liorheber))\\n - [#4815](https://github.com/facebook/docusaurus/pull/4815) fix(v2): Fix Hebrew translations ([@nirtamir2](https://github.com/nirtamir2))\\n - [#4792](https://github.com/facebook/docusaurus/pull/4792) fix(v2): fix minor a11y issue with headings ([@lex111](https://github.com/lex111))\\n - [#4793](https://github.com/facebook/docusaurus/pull/4793) fix(v2): unbreak enhanced width of doc item wrapper ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-utils-common`\\n - [#5000](https://github.com/facebook/docusaurus/pull/5000) fix(v2): fix theme array deduplication bug ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-utils-common`, `docusaurus-utils`, `docusaurus`\\n - [#4988](https://github.com/facebook/docusaurus/pull/4988) fix(v2): redirect plugin should use siteConfig.trailingSlash ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`\\n - [#4983](https://github.com/facebook/docusaurus/pull/4983) fix(v2): always use UTC when dealing with blog dates ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#4962](https://github.com/facebook/docusaurus/pull/4962) fix(v2): respect base url in RSS feeds ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#4985](https://github.com/facebook/docusaurus/pull/4985) fix(v2): navbar doc item fallback: search doc in lastVersion ([@slorber](https://github.com/slorber))\\n- `docusaurus-remark-plugin-npm2yarn`\\n - [#4964](https://github.com/facebook/docusaurus/pull/4964) fix(v2): avoid duplicated imports in npm2yarn plugin ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`\\n - [#4970](https://github.com/facebook/docusaurus/pull/4970) fix(v2): sidebar_label should be used to compute next/previous button labels ([@slorber](https://github.com/slorber))\\n - [#4861](https://github.com/facebook/docusaurus/pull/4861) fix(v2): allow relative sidebar path resolution in docs:version command ([@lex111](https://github.com/lex111))\\n - [#4859](https://github.com/facebook/docusaurus/pull/4859) fix(v2): use frontmatter title at first for paginated links ([@lex111](https://github.com/lex111))\\n - [#4775](https://github.com/facebook/docusaurus/pull/4775) fix(v2): improve dx sidebar config, ability to have no sidebars file ([@nam-hle](https://github.com/nam-hle))\\n- `docusaurus-plugin-sitemap`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#4950](https://github.com/facebook/docusaurus/pull/4950) fix(v2): sitemap plugin should handle siteConfig.trailingSlash automatically ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#4924](https://github.com/facebook/docusaurus/pull/4924) fix(v2): respect baseUrl in serving command ([@lex111](https://github.com/lex111))\\n - [#4935](https://github.com/facebook/docusaurus/pull/4935) fix(v2): render children in BrowserOnly after client is ready ([@lex111](https://github.com/lex111))\\n - [#4894](https://github.com/facebook/docusaurus/pull/4894) fix(v2): escape HTML entities in user tags attributes ([@lex111](https://github.com/lex111))\\n - [#4789](https://github.com/facebook/docusaurus/pull/4789) fix(v2): transpile libs with too recent syntax with babel ([@slorber](https://github.com/slorber))\\n - [#4784](https://github.com/facebook/docusaurus/pull/4784) fix(v2): update notifier should never suggest to downgrade ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-utils`\\n - [#4882](https://github.com/facebook/docusaurus/pull/4882) fix(v2): fix contentTitle issues when markdown h1 title contains code blocks ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`\\n - [#4862](https://github.com/facebook/docusaurus/pull/4862) fix(v2): remove Markdown heading id from excerpt ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4871](https://github.com/facebook/docusaurus/pull/4871) fix(v2): unbreak adding of custom HTML metadatas ([@lex111](https://github.com/lex111))\\n - [#4797](https://github.com/facebook/docusaurus/pull/4797) fix(v2): do not focus on skip link if page refreshed ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#4856](https://github.com/facebook/docusaurus/pull/4856) fix(v2): adjust padding when custom search box location ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`\\n - [#4830](https://github.com/facebook/docusaurus/pull/4830) fix(v2): pin prism-react-renderer version to 1.1.1 ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-ideal-image`, `lqip-loader`\\n - [#4806](https://github.com/facebook/docusaurus/pull/4806) chore(v2): update sharp to 0.28.2 ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#4995](https://github.com/facebook/docusaurus/pull/4995) refactor(v2): reduce top padding in doc content container ([@lex111](https://github.com/lex111))\\n - [#4918](https://github.com/facebook/docusaurus/pull/4918) refactor(v2): readjust footer of blog item ([@lex111](https://github.com/lex111))\\n - [#4959](https://github.com/facebook/docusaurus/pull/4959) refactor(v2): minor cleanups ([@lex111](https://github.com/lex111))\\n - [#4945](https://github.com/facebook/docusaurus/pull/4945) refactor(v2): remove extra padding from doc item container ([@lex111](https://github.com/lex111))\\n - [#4940](https://github.com/facebook/docusaurus/pull/4940) refactor(v2): improve semantic doc sidebar markup ([@lex111](https://github.com/lex111))\\n - [#4961](https://github.com/facebook/docusaurus/pull/4961) refactor(v2): improve semantic blog sidebar markup ([@lex111](https://github.com/lex111))\\n - [#4903](https://github.com/facebook/docusaurus/pull/4903) refactor(v2): make doc item layout more semantic ([@lex111](https://github.com/lex111))\\n - [#4877](https://github.com/facebook/docusaurus/pull/4877) refactor(v2): reduce vertical space in doc content container ([@lex111](https://github.com/lex111))\\n - [#4914](https://github.com/facebook/docusaurus/pull/4914) refactor(v2): use SVG for external link icon ([@lex111](https://github.com/lex111))\\n - [#4916](https://github.com/facebook/docusaurus/pull/4916) refactor(v2): replace strong with b in UI components ([@lex111](https://github.com/lex111))\\n - [#4926](https://github.com/facebook/docusaurus/pull/4926) refactor(v2): hide decorative SVGs from screen readers ([@lex111](https://github.com/lex111))\\n - [#4865](https://github.com/facebook/docusaurus/pull/4865) refactor(v2): make little better doc update block UI ([@lex111](https://github.com/lex111))\\n - [#4795](https://github.com/facebook/docusaurus/pull/4795) refactor(v2): remove transition on body element ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`\\n - [#4989](https://github.com/facebook/docusaurus/pull/4989) refactor(v2): blog/docs: add more context in error messages ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#4979](https://github.com/facebook/docusaurus/pull/4979) refactor(v2): cleanup console output ([@lex111](https://github.com/lex111))\\n- `docusaurus-utils-validation`, `docusaurus`\\n - [#4977](https://github.com/facebook/docusaurus/pull/4977) polish(v2): url-subpath config validation warning ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#4969](https://github.com/facebook/docusaurus/pull/4969) refactor(v2): include path in error about non-existent ids ([@lex111](https://github.com/lex111))\\n - [#4863](https://github.com/facebook/docusaurus/pull/4863) refactor(v2): remove sidebar_label filed from doc metadata file ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#4907](https://github.com/facebook/docusaurus/pull/4907) refactor(v2): remove type attribute from link and script tags ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-search-algolia`\\n - [#4919](https://github.com/facebook/docusaurus/pull/4919) refactor(v2): improve markup and styling on search page ([@lex111](https://github.com/lex111))\\n - [#4867](https://github.com/facebook/docusaurus/pull/4867) chore(v2): update @docsearch/react ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`\\n - [#4905](https://github.com/facebook/docusaurus/pull/4905) refactor(v2): do not generate RSS files for empty feed ([@lex111](https://github.com/lex111))\\n - [#4860](https://github.com/facebook/docusaurus/pull/4860) refactor(v2): use aliased path for blog list sidebar file ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#4870](https://github.com/facebook/docusaurus/pull/4870) refactor(v2): add exception handling if external command is fails ([@lex111](https://github.com/lex111))\\n - [#4875](https://github.com/facebook/docusaurus/pull/4875) refactor(v2): make even better SSR error notify and add tip ([@lex111](https://github.com/lex111))\\n - [#4866](https://github.com/facebook/docusaurus/pull/4866) refactor(v2): output URL to console only if it has changed ([@lex111](https://github.com/lex111))\\n- `docusaurus-utils`\\n - [#4814](https://github.com/facebook/docusaurus/pull/4814) refactor(v2): purify normalizeUrl ([@nam-hle](https://github.com/nam-hle))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#4987](https://github.com/facebook/docusaurus/pull/4987) docs(v2): document canary releases ([@slorber](https://github.com/slorber))\\n - [#4981](https://github.com/facebook/docusaurus/pull/4981) docs(v2): minor tweaks ([@lex111](https://github.com/lex111))\\n - [#4976](https://github.com/facebook/docusaurus/pull/4976) docs(v2): mention to install the algolia package in search doc ([@slorber](https://github.com/slorber))\\n - [#4953](https://github.com/facebook/docusaurus/pull/4953) docs(v2): add Flagsmith to showcase ([@dabeeeenster](https://github.com/dabeeeenster))\\n - [#4942](https://github.com/facebook/docusaurus/pull/4942) docs(v2): add info about `DefaultValue` prop in `Tabs` ([@ArtFlag](https://github.com/ArtFlag))\\n - [#4898](https://github.com/facebook/docusaurus/pull/4898) docs(v2): add ClarityChallenge to showcase ([@jonbarker68](https://github.com/jonbarker68))\\n - [#4896](https://github.com/facebook/docusaurus/pull/4896) docs(v2): fix incorrect link to plugin-ideal-image ([@phwt](https://github.com/phwt))\\n - [#4893](https://github.com/facebook/docusaurus/pull/4893) docs(v2): presets: fix typo in bootstrap preset ([@silva-nick](https://github.com/silva-nick))\\n - [#4887](https://github.com/facebook/docusaurus/pull/4887) docs(v2): Add Aide Jeune website to Docusaurus site showcase ([@l0u1sg](https://github.com/l0u1sg))\\n - [#4821](https://github.com/facebook/docusaurus/pull/4821) docs(v2): New doc page for math equations ([@pranabdas](https://github.com/pranabdas))\\n - [#4885](https://github.com/facebook/docusaurus/pull/4885) docs(v2): v2 migration guide: mention Algolia config update ([@slorber](https://github.com/slorber))\\n - [#4876](https://github.com/facebook/docusaurus/pull/4876) docs(v2): update steps in the github-actions section ([@wise-introvert](https://github.com/wise-introvert))\\n - [#4880](https://github.com/facebook/docusaurus/pull/4880) docs(v2): grammar typo in migration-overview.md ([@jmazin](https://github.com/jmazin))\\n - [#4879](https://github.com/facebook/docusaurus/pull/4879) docs(v2): Added FireCMS to the showcase ([@fgatti675](https://github.com/fgatti675))\\n - [#4849](https://github.com/facebook/docusaurus/pull/4849) docs(v2): fix Java syntax highlight in website ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#4818](https://github.com/facebook/docusaurus/pull/4818) docs(v2): add mr-pdf to resources ([@antonygibbs](https://github.com/antonygibbs))\\n - [#4835](https://github.com/facebook/docusaurus/pull/4835) docs(v2): fix grammar typo on Creating pages ([@Christopher-Hsieh](https://github.com/Christopher-Hsieh))\\n - [#4837](https://github.com/facebook/docusaurus/pull/4837) docs(v2): fix missing closing bracket ([@pmqueiroz](https://github.com/pmqueiroz))\\n - [#4820](https://github.com/facebook/docusaurus/pull/4820) docs(v2): Fix typo in doc: sidebar.md ([@pranabdas](https://github.com/pranabdas))\\n - [#4813](https://github.com/facebook/docusaurus/pull/4813) docs(v2): fix css snipped with missing color ([@slorber](https://github.com/slorber))\\n - [#4803](https://github.com/facebook/docusaurus/pull/4803) docs(v2): Add i18n tag and fix typo ([@HunteRoi](https://github.com/HunteRoi))\\n - [#4786](https://github.com/facebook/docusaurus/pull/4786) docs(v2): Add tinaeldevresse.eu to Docusaurus\' gallery ([@HunteRoi](https://github.com/HunteRoi))\\n - [#4780](https://github.com/facebook/docusaurus/pull/4780) docs(v2): remove docs for alpha 71 + 72 ([@slorber](https://github.com/slorber))\\n - [#4779](https://github.com/facebook/docusaurus/pull/4779) docs(v2): beta blog post edits ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`\\n - [#4973](https://github.com/facebook/docusaurus/pull/4973) docs(v2): replace `diff` codeblocks with line highlight ([@Josh-Cena](https://github.com/Josh-Cena))\\n - [#4756](https://github.com/facebook/docusaurus/pull/4756) docs(v2): Docusaurus 2 beta blog post ([@slorber](https://github.com/slorber))\\n\\n## :house: Internal\\n\\n- Other\\n - [#4994](https://github.com/facebook/docusaurus/pull/4994) misc: more issue template improvements ([@slorber](https://github.com/slorber))\\n - [#4951](https://github.com/facebook/docusaurus/pull/4951) misc: disable google-gtag plugin in Netlify deploys ([@lex111](https://github.com/lex111))\\n - [#4901](https://github.com/facebook/docusaurus/pull/4901) misc: optimize showcase images ([@lex111](https://github.com/lex111))\\n - [#4897](https://github.com/facebook/docusaurus/pull/4897) chore: fail CI if yarn.lock is modified on install ([@slorber](https://github.com/slorber))\\n - [#4858](https://github.com/facebook/docusaurus/pull/4858) chore(v2): add external link to community sidebar ([@lex111](https://github.com/lex111))\\n - [#4889](https://github.com/facebook/docusaurus/pull/4889) misc: issue template config typo ([@slorber](https://github.com/slorber))\\n - [#4886](https://github.com/facebook/docusaurus/pull/4886) misc: add github issue template config ([@slorber](https://github.com/slorber))\\n - [#4878](https://github.com/facebook/docusaurus/pull/4878) misc: improve bug report issue template ([@lex111](https://github.com/lex111))\\n - [#4791](https://github.com/facebook/docusaurus/pull/4791) chore: fix canary version name ([@slorber](https://github.com/slorber))\\n - [#4777](https://github.com/facebook/docusaurus/pull/4777) chore: regenerate examples on 2.0.0-beta.0 ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-migrate`, `docusaurus`\\n - [#4944](https://github.com/facebook/docusaurus/pull/4944) chore: lockfile cleanup ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`, `docusaurus-init-1.x`\\n - [#4902](https://github.com/facebook/docusaurus/pull/4902) chore: remove docusaurus v1 from master branch (moved to docusaurus-v1 branch) ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-ideal-image`\\n - [#4915](https://github.com/facebook/docusaurus/pull/4915) chore(v2): bump react-waypoint from 9.0.2 to 10.1.0 ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`\\n - [#4834](https://github.com/facebook/docusaurus/pull/4834) chore(v2): unlock prism-react-renderer version ([@lex111](https://github.com/lex111))\\n- `docusaurus-cssnano-preset`, `docusaurus`\\n - [#4833](https://github.com/facebook/docusaurus/pull/4833) chore(v2): bump cssnano packages ([@lex111](https://github.com/lex111))\\n- `docusaurus-cssnano-preset`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-debug`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#4816](https://github.com/facebook/docusaurus/pull/4816) chore(v2): upgrade dependencies ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4790](https://github.com/facebook/docusaurus/pull/4790) chore(v2): TypeScript, use isolatedModules ([@slorber](https://github.com/slorber))\\n\\n## Committers: 31\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Arthur ([@ArtFlag](https://github.com/ArtFlag))\\n- Ben Rometsch ([@dabeeeenster](https://github.com/dabeeeenster))\\n- Christopher Hsieh ([@Christopher-Hsieh](https://github.com/Christopher-Hsieh))\\n- Fardeen Panjwani ([@wise-introvert](https://github.com/wise-introvert))\\n- Joel ([@Joelpo](https://github.com/Joelpo))\\n- Jon Barker ([@jonbarker68](https://github.com/jonbarker68))\\n- Jonathan Mazin ([@jmazin](https://github.com/jmazin))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Lior Heber ([@liorheber](https://github.com/liorheber))\\n- Louis Gallet ([@l0u1sg](https://github.com/l0u1sg))\\n- Louis Grenard ([@louistiti](https://github.com/louistiti))\\n- Lucas Correia ([@tsirlucas](https://github.com/tsirlucas))\\n- Nam Hoang Le ([@nam-hle](https://github.com/nam-hle))\\n- Pablo Vidal ([@limkinZero](https://github.com/limkinZero))\\n- Pedro Queiroz ([@pmqueiroz](https://github.com/pmqueiroz))\\n- Pranab Das ([@pranabdas](https://github.com/pranabdas))\\n- Pratyay Banerjee ([@Neilblaze](https://github.com/Neilblaze))\\n- PsychTech ([@PsychTechApS](https://github.com/PsychTechApS))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tina\xebl Devresse ([@HunteRoi](https://github.com/HunteRoi))\\n- [@Massibian](https://github.com/Massibian)\\n- [@antonygibbs](https://github.com/antonygibbs)\\n- [@besemuna](https://github.com/besemuna)\\n- [@e271828-](https://github.com/e271828-)\\n- [@fgatti675](https://github.com/fgatti675)\\n- [@nirtamir2](https://github.com/nirtamir2)\\n- [@silva-nick](https://github.com/silva-nick)\\n- mg ([@tiny-dancer](https://github.com/tiny-dancer))\\n- phwt.smwt ([@phwt](https://github.com/phwt))"},{"id":"/2.0.0-beta.0","metadata":{"permalink":"/changelog/2.0.0-beta.0","source":"@site/changelog/source/2.0.0-beta.0.md","title":"2.0.0-beta.0","description":"Read the 2.0.0 beta blog post!","date":"2021-05-12T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Chris Owen","alias":"ChrisOwen101","url":"https://github.com/ChrisOwen101","imageURL":"https://github.com/ChrisOwen101.png","key":"ChrisOwen101","page":null},{"name":"Evan","alias":"DigiPie","url":"https://github.com/DigiPie","imageURL":"https://github.com/DigiPie.png","key":"DigiPie","page":null},{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},{"name":"Sergio Rafael Gianazza","alias":"gianu","url":"https://github.com/gianu","imageURL":"https://github.com/gianu.png","key":"gianu","page":null},{"name":"Joel Hans","alias":"joelhans","url":"https://github.com/joelhans","imageURL":"https://github.com/joelhans.png","key":"joelhans","page":null},{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},{"name":"\u041A\u043E\u0441\u0442\u044F \u0422\u0440\u0435\u0442\u044F\u043A","alias":"KostyaTretyak","url":"https://github.com/KostyaTretyak","imageURL":"https://github.com/KostyaTretyak.png","key":"KostyaTretyak","page":null},{"name":"Nam Hoang Le","alias":"nam-hle","url":"https://github.com/nam-hle","imageURL":"https://github.com/nam-hle.png","key":"nam-hle","page":null},{"name":"Rodrigo Moreno","alias":"rodmoreno","url":"https://github.com/rodmoreno","imageURL":"https://github.com/rodmoreno.png","key":"rodmoreno","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Ian Hornik","alias":"yiliansource","url":"https://github.com/yiliansource","imageURL":"https://github.com/yiliansource.png","key":"yiliansource","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-05-12T20:00","authors":["ChrisOwen101","DigiPie","forresst","gianu","joelhans","Josh-Cena","KostyaTretyak","nam-hle","rodmoreno","slorber","yiliansource"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.1","permalink":"/changelog/2.0.0-beta.1"},"nextItem":{"title":"2.0.0-alpha.75","permalink":"/changelog/2.0.0-alpha.75"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\nRead the [2.0.0 beta blog post](https://docusaurus.io/blog/2021/05/12/announcing-docusaurus-two-beta)!\\n\\n**Note**: this first beta release does not contain any new major feature. We are removing the alpha label, as we are confident Docusaurus 2 is stable enough.\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#4762](https://github.com/facebook/docusaurus/pull/4762) feat(v2): add es translations for docusaurus-theme-classic ([@rodmoreno](https://github.com/rodmoreno))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#4750](https://github.com/facebook/docusaurus/pull/4750) fix(v2): improve french translation for theme-classic ([@forresst](https://github.com/forresst))\\n- `docusaurus-mdx-loader`, `docusaurus-utils`\\n - [#4736](https://github.com/facebook/docusaurus/pull/4736) fix(v2): fix encoding of markdown image/file inline file-loaders ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`\\n - [#4735](https://github.com/facebook/docusaurus/pull/4735) fix(v2): markdown title parser should ignore all forms of MDX import statements ([@nam-hle](https://github.com/nam-hle))\\n - [#4729](https://github.com/facebook/docusaurus/pull/4729) fix(v2): optimize markdown parser regex (Closes [#4726](https://github.com/facebook/docusaurus/issues/4726)) ([@nam-hle](https://github.com/nam-hle))\\n\\n## :memo: Documentation\\n\\n- [#4770](https://github.com/facebook/docusaurus/pull/4770) docs(v2): Improve intro doc ([@slorber](https://github.com/slorber))\\n- [#4773](https://github.com/facebook/docusaurus/pull/4773) docs(v2): fix i18n doc: bad i18n page plugin path in code sample ([@KostyaTretyak](https://github.com/KostyaTretyak))\\n- [#4758](https://github.com/facebook/docusaurus/pull/4758) docs(v2): add browsers support documentation ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#4757](https://github.com/facebook/docusaurus/pull/4757) docs(v2): Add Netdata to showcase ([@joelhans](https://github.com/joelhans))\\n- [#4754](https://github.com/facebook/docusaurus/pull/4754) docs(v2): fix Jest showcase screenshot ([@slorber](https://github.com/slorber))\\n- [#4747](https://github.com/facebook/docusaurus/pull/4747) docs(v2): Update showcase page ([@slorber](https://github.com/slorber))\\n- [#4734](https://github.com/facebook/docusaurus/pull/4734) docs(v2): Added MediaMachine.io to showcase ([@gianu](https://github.com/gianu))\\n- [#4731](https://github.com/facebook/docusaurus/pull/4731) docs(v2): add CodeYourFuture to showcase ([@ChrisOwen101](https://github.com/ChrisOwen101))\\n- [#4703](https://github.com/facebook/docusaurus/pull/4703) docs(v2): specify google-analytics and gtag plugins ([@yiliansource](https://github.com/yiliansource))\\n- [#4727](https://github.com/facebook/docusaurus/pull/4727) docs(v2): fix doc lint ([@slorber](https://github.com/slorber))\\n- [#4725](https://github.com/facebook/docusaurus/pull/4725) docs(v2): emphasize subset of markdown supported languages ([@Josh-Cena](https://github.com/Josh-Cena))\\n- [#4711](https://github.com/facebook/docusaurus/pull/4711) docs(v2): showcase personal site evantay ([@DigiPie](https://github.com/DigiPie))\\n\\n## :house: Internal\\n\\n- [#4746](https://github.com/facebook/docusaurus/pull/4746) chore(v2): attempt to fix crowdin dl again ([@slorber](https://github.com/slorber))\\n- [#4743](https://github.com/facebook/docusaurus/pull/4743) chore(v2): fix prod deployment due to bad image path ([@slorber](https://github.com/slorber))\\n- [#4740](https://github.com/facebook/docusaurus/pull/4740) chore(v2): delay i18n-staging deployment to avoid Crowdin 409 errors ([@slorber](https://github.com/slorber))\\n- [#4739](https://github.com/facebook/docusaurus/pull/4739) chore(v2): Fix Crowdin 409 issues in CI ([@slorber](https://github.com/slorber))\\n\\n## Committers: 11\\n\\n- Chris Owen ([@ChrisOwen101](https://github.com/ChrisOwen101))\\n- Evan ([@DigiPie](https://github.com/DigiPie))\\n- Forresst ([@forresst](https://github.com/forresst))\\n- Ian Hornik ([@yiliansource](https://github.com/yiliansource))\\n- Joel Hans ([@joelhans](https://github.com/joelhans))\\n- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))\\n- Nam Hoang Le ([@nam-hle](https://github.com/nam-hle))\\n- Rodrigo Moreno ([@rodmoreno](https://github.com/rodmoreno))\\n- Sergio Rafael Gianazza ([@gianu](https://github.com/gianu))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- \u041A\u043E\u0441\u0442\u044F \u0422\u0440\u0435\u0442\u044F\u043A ([@KostyaTretyak](https://github.com/KostyaTretyak))"},{"id":"/2.0.0-alpha.75","metadata":{"permalink":"/changelog/2.0.0-alpha.75","source":"@site/changelog/source/2.0.0-alpha.75.md","title":"2.0.0-alpha.75","description":"Breaking Change","date":"2021-04-30T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Geoffroy Empain","alias":"gempain","url":"https://github.com/gempain","imageURL":"https://github.com/gempain.png","key":"gempain","page":null},{"name":"Reece Dunham","alias":"RDIL","url":"https://github.com/RDIL","imageURL":"https://github.com/RDIL.png","key":"RDIL","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tommy Chen","alias":"tommy351","url":"https://github.com/tommy351","imageURL":"https://github.com/tommy351.png","key":"tommy351","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-04-30T20:00","authors":["gempain","RDIL","slorber","tommy351"]},"unlisted":false,"prevItem":{"title":"2.0.0-beta.0","permalink":"/changelog/2.0.0-beta.0"},"nextItem":{"title":"2.0.0-alpha.74","permalink":"/changelog/2.0.0-alpha.74"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-cssnano-preset`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus`, `lqip-loader`\\n - [#4089](https://github.com/facebook/docusaurus/pull/4089) feat(v2): Webpack 5, PostCSS 8 ([@RDIL](https://github.com/RDIL))\\n\\n## :memo: Documentation\\n\\n- [#4704](https://github.com/facebook/docusaurus/pull/4704) docs(v2): showcase meli ([@gempain](https://github.com/gempain))\\n- [#4699](https://github.com/facebook/docusaurus/pull/4699) docs(v2): Add Kosko to showcase ([@tommy351](https://github.com/tommy351))\\n\\n## Committers: 4\\n\\n- Geoffroy Empain ([@gempain](https://github.com/gempain))\\n- Reece Dunham ([@RDIL](https://github.com/RDIL))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tommy Chen ([@tommy351](https://github.com/tommy351))"},{"id":"/2.0.0-alpha.74","metadata":{"permalink":"/changelog/2.0.0-alpha.74","source":"@site/changelog/source/2.0.0-alpha.74.md","title":"2.0.0-alpha.74","description":"New Feature","date":"2021-04-27T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"alena-ko","alias":"alena-ko","url":"https://github.com/alena-ko","imageURL":"https://github.com/alena-ko.png","key":"alena-ko","page":null},{"name":"Arnaud Jeannin","alias":"arnaudjnn","url":"https://github.com/arnaudjnn","imageURL":"https://github.com/arnaudjnn.png","key":"arnaudjnn","page":null},{"name":"DOLLE","alias":"JeremyDolle","url":"https://github.com/JeremyDolle","imageURL":"https://github.com/JeremyDolle.png","key":"JeremyDolle","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"kazk","alias":"kazk","url":"https://github.com/kazk","imageURL":"https://github.com/kazk.png","key":"kazk","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Lisa Chandra","alias":"lisa761","url":"https://github.com/lisa761","imageURL":"https://github.com/lisa761.png","key":"lisa761","page":null},{"name":"Luis Medina Huerta","alias":"luism3861","url":"https://github.com/luism3861","imageURL":"https://github.com/luism3861.png","key":"luism3861","page":null},{"name":"MisterFISHUP","alias":"MisterFISHUP","url":"https://github.com/MisterFISHUP","imageURL":"https://github.com/MisterFISHUP.png","key":"MisterFISHUP","page":null},{"name":"Tommy","alias":"react-learner","url":"https://github.com/react-learner","imageURL":"https://github.com/react-learner.png","key":"react-learner","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-04-27T20:00","authors":["alena-ko","arnaudjnn","JeremyDolle","johnnyreilly","kazk","lex111","lisa761","luism3861","MisterFISHUP","react-learner","SamChou19815","slorber"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.75","permalink":"/changelog/2.0.0-alpha.75"},"nextItem":{"title":"2.0.0-alpha.73","permalink":"/changelog/2.0.0-alpha.73"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- Other\\n - [#4515](https://github.com/facebook/docusaurus/pull/4515) feat(v2): add tag filters to showcase page ([@lisa761](https://github.com/lisa761))\\n- `docusaurus-plugin-content-docs`\\n - [#4658](https://github.com/facebook/docusaurus/pull/4658) feat(v2): allow user to customize/enhance the default sidebar items generator ([@slorber](https://github.com/slorber))\\n - [#4655](https://github.com/facebook/docusaurus/pull/4655) feat(v2): docs, make numberPrefixParser configurable, better defaults, minor breaking-changes ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils`, `docusaurus`\\n - [#4688](https://github.com/facebook/docusaurus/pull/4688) fix(v2): fix title logic (meta vs heading) + ignore fixed anchor id syntax ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#4689](https://github.com/facebook/docusaurus/pull/4689) chore(v2): update infima to alpha 23 ([@slorber](https://github.com/slorber))\\n - [#4667](https://github.com/facebook/docusaurus/pull/4667) fix(v2): Unbreak blog post title by handling title fallback in `LayoutHead` ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-content-docs`\\n - [#4687](https://github.com/facebook/docusaurus/pull/4687) fix(v2): accept empty/null custom_edit_url docs frontmatter for retrocompat ([@slorber](https://github.com/slorber))\\n - [#4651](https://github.com/facebook/docusaurus/pull/4651) fix(v2): sidebar autogen from subfolder should read category metadata correctly ([@slorber](https://github.com/slorber))\\n - [#4629](https://github.com/facebook/docusaurus/pull/4629) fix(v2): fix validation rejecting admonitions false ([@kazk](https://github.com/kazk))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils-validation`\\n - [#4654](https://github.com/facebook/docusaurus/pull/4654) fix(v2): fix too strict markdown frontmatter validation ([@johnnyreilly](https://github.com/johnnyreilly))\\n- `docusaurus-utils`\\n - [#4646](https://github.com/facebook/docusaurus/pull/4646) fix(v2): ignore imports when h1 heading parsing ([@lex111](https://github.com/lex111))\\n - [#4641](https://github.com/facebook/docusaurus/pull/4641) fix(v2): parse headings directly after h1 properly ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#4682](https://github.com/facebook/docusaurus/pull/4682) refactor(v2): align external icon on right ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- [#4496](https://github.com/facebook/docusaurus/pull/4496) docs(v2): Add Qovery to deployment doc ([@arnaudjnn](https://github.com/arnaudjnn))\\n- [#4680](https://github.com/facebook/docusaurus/pull/4680) docs(v2): Fix urls in deployment.md ([@luism3861](https://github.com/luism3861))\\n- [#4668](https://github.com/facebook/docusaurus/pull/4668) docs(v2): Add Hostman to deployment doc ([@alena-ko](https://github.com/alena-ko))\\n- [#4676](https://github.com/facebook/docusaurus/pull/4676) docs(v2): Add Daily Digest - COVID-19 IN FRANCE to showcase ([@MisterFISHUP](https://github.com/MisterFISHUP))\\n- [#4643](https://github.com/facebook/docusaurus/pull/4643) docs(v2): Fix typo in installation.md ([@react-learner](https://github.com/react-learner))\\n- [#4649](https://github.com/facebook/docusaurus/pull/4649) docs(v2): Add new showcase user ([@JeremyDolle](https://github.com/JeremyDolle))\\n\\n## :house: Internal\\n\\n- Other\\n - [#4670](https://github.com/facebook/docusaurus/pull/4670) chore: add some redirects to v1.docusaurus.io ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`\\n - [#4631](https://github.com/facebook/docusaurus/pull/4631) chore(v2): update examples to use alpha73 ([@slorber](https://github.com/slorber))\\n\\n## Committers: 12\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Arnaud Jeannin ([@arnaudjnn](https://github.com/arnaudjnn))\\n- DOLLE ([@JeremyDolle](https://github.com/JeremyDolle))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Lisa Chandra ([@lisa761](https://github.com/lisa761))\\n- Luis Medina Huerta ([@luism3861](https://github.com/luism3861))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tommy ([@react-learner](https://github.com/react-learner))\\n- [@MisterFISHUP](https://github.com/MisterFISHUP)\\n- [@alena-ko](https://github.com/alena-ko)\\n- kazk ([@kazk](https://github.com/kazk))"},{"id":"/2.0.0-alpha.73","metadata":{"permalink":"/changelog/2.0.0-alpha.73","source":"@site/changelog/source/2.0.0-alpha.73.md","title":"2.0.0-alpha.73","description":"New Feature","date":"2021-04-16T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"aehrea","alias":"aehrea","url":"https://github.com/aehrea","imageURL":"https://github.com/aehrea.png","key":"aehrea","page":null},{"name":"Ajeet Singh Raina, Docker Captain, RedisLabs","alias":"ajeetraina","url":"https://github.com/ajeetraina","imageURL":"https://github.com/ajeetraina.png","key":"ajeetraina","page":null},{"name":"akepecs","alias":"akepecs","url":"https://github.com/akepecs","imageURL":"https://github.com/akepecs.png","key":"akepecs","page":null},{"name":"Anthony Bobsin","alias":"AnthonyBobsin","url":"https://github.com/AnthonyBobsin","imageURL":"https://github.com/AnthonyBobsin.png","key":"AnthonyBobsin","page":null},{"name":"Armano","alias":"armano2","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png","key":"armano2","page":null},{"name":"Artur Carvalho","alias":"arturcarvalho","url":"https://github.com/arturcarvalho","imageURL":"https://github.com/arturcarvalho.png","key":"arturcarvalho","page":null},{"name":"Dennis Thompson","alias":"atomicpages","url":"https://github.com/atomicpages","imageURL":"https://github.com/atomicpages.png","key":"atomicpages","page":null},{"name":"besemuna","alias":"besemuna","url":"https://github.com/besemuna","imageURL":"https://github.com/besemuna.png","key":"besemuna","page":null},{"name":"Guillaume Claret","alias":"clarus","url":"https://github.com/clarus","imageURL":"https://github.com/clarus.png","key":"clarus","page":null},{"name":"Arijit Kundu","alias":"covalentbond","url":"https://github.com/covalentbond","imageURL":"https://github.com/covalentbond.png","key":"covalentbond","page":null},{"name":"Dick Wyn Yong","alias":"dickwyn","url":"https://github.com/dickwyn","imageURL":"https://github.com/dickwyn.png","key":"dickwyn","page":null},{"name":"duanwilliam","alias":"duanwilliam","url":"https://github.com/duanwilliam","imageURL":"https://github.com/duanwilliam.png","key":"duanwilliam","page":null},{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},{"name":"Foxeye-Rinx","alias":"Foxeye-Rinx","url":"https://github.com/Foxeye-Rinx","imageURL":"https://github.com/Foxeye-Rinx.png","key":"Foxeye-Rinx","page":null},{"name":"Brent Ely","alias":"gitbrent","url":"https://github.com/gitbrent","imageURL":"https://github.com/gitbrent.png","key":"gitbrent","page":null},{"name":"Marco Enrico","alias":"gumacahin","url":"https://github.com/gumacahin","imageURL":"https://github.com/gumacahin.png","key":"gumacahin","page":null},{"name":"John Knox","alias":"jknoxville","url":"https://github.com/jknoxville","imageURL":"https://github.com/jknoxville.png","key":"jknoxville","page":null},{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},{"name":"Chris Kanich","alias":"kaytwo","url":"https://github.com/kaytwo","imageURL":"https://github.com/kaytwo.png","key":"kaytwo","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Lisa Chandra","alias":"lisa761","url":"https://github.com/lisa761","imageURL":"https://github.com/lisa761.png","key":"lisa761","page":null},{"name":"ZhengYuan Loo","alias":"loozhengyuan","url":"https://github.com/loozhengyuan","imageURL":"https://github.com/loozhengyuan.png","key":"loozhengyuan","page":null},{"name":"Lucas Alves","alias":"lucalves","url":"https://github.com/lucalves","imageURL":"https://github.com/lucalves.png","key":"lucalves","page":null},{"name":"miku86","alias":"miku86","url":"https://github.com/miku86","imageURL":"https://github.com/miku86.png","key":"miku86","page":null},{"name":"Pedro Pi\xf1era Buend\xeda","alias":"pepibumur","url":"https://github.com/pepibumur","imageURL":"https://github.com/pepibumur.png","key":"pepibumur","page":null},{"name":"Reece Dunham","alias":"RDIL","url":"https://github.com/RDIL","imageURL":"https://github.com/RDIL.png","key":"RDIL","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"serut","alias":"serut","url":"https://github.com/serut","imageURL":"https://github.com/serut.png","key":"serut","page":null},{"name":"Steven Hansel","alias":"ShinteiMai","url":"https://github.com/ShinteiMai","imageURL":"https://github.com/ShinteiMai.png","key":"ShinteiMai","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Steve","alias":"steveworley","url":"https://github.com/steveworley","imageURL":"https://github.com/steveworley.png","key":"steveworley","page":null},{"name":"guoxudong","alias":"sunny0826","url":"https://github.com/sunny0826","imageURL":"https://github.com/sunny0826.png","key":"sunny0826","page":null},{"name":"Tales Porto","alias":"talesporto","url":"https://github.com/talesporto","imageURL":"https://github.com/talesporto.png","key":"talesporto","page":null},{"name":"Thiago Sciotta","alias":"thiagog3","url":"https://github.com/thiagog3","imageURL":"https://github.com/thiagog3.png","key":"thiagog3","page":null},{"name":"Tiago Ribeiro","alias":"tiago-rr","url":"https://github.com/tiago-rr","imageURL":"https://github.com/tiago-rr.png","key":"tiago-rr","page":null},{"name":"Tom Raviv","alias":"tomrav","url":"https://github.com/tomrav","imageURL":"https://github.com/tomrav.png","key":"tomrav","page":null},{"name":"Tony Narlock","alias":"tony","url":"https://github.com/tony","imageURL":"https://github.com/tony.png","key":"tony","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-04-16T20:00","authors":["aehrea","ajeetraina","akepecs","AnthonyBobsin","armano2","arturcarvalho","atomicpages","besemuna","clarus","covalentbond","dickwyn","duanwilliam","forresst","Foxeye-Rinx","gitbrent","gumacahin","jknoxville","johnnyreilly","kaytwo","lex111","lisa761","loozhengyuan","lucalves","miku86","pepibumur","RDIL","SamChou19815","serut","ShinteiMai","slorber","steveworley","sunny0826","talesporto","thiagog3","tiago-rr","tomrav","tony"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.74","permalink":"/changelog/2.0.0-alpha.74"},"nextItem":{"title":"2.0.0-alpha.72","permalink":"/changelog/2.0.0-alpha.72"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#4624](https://github.com/facebook/docusaurus/pull/4624) feat(v2): Add Filipino default translations to theme ([@gumacahin](https://github.com/gumacahin))\\n - [#4596](https://github.com/facebook/docusaurus/pull/4596) feat(v2): theme default translations hindi ([@lisa761](https://github.com/lisa761))\\n - [#4536](https://github.com/facebook/docusaurus/pull/4536) feat(v2): add pt-PT translations for docusaurus-theme-classic ([@tiago-rr](https://github.com/tiago-rr))\\n - [#4525](https://github.com/facebook/docusaurus/pull/4525) feat(v2): add Brazilian Portuguese translation for docusaurus-theme-classic ([@thiagog3](https://github.com/thiagog3))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4511](https://github.com/facebook/docusaurus/pull/4511) feat(v2): add unique page/wrapper className to each theme pages ([@ShinteiMai](https://github.com/ShinteiMai))\\n- `docusaurus-init`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#4582](https://github.com/facebook/docusaurus/pull/4582) feat(v2): auto-generated sidebars, frontmatter-less sites ([@slorber](https://github.com/slorber))\\n- `docusaurus-types`, `docusaurus`\\n - [#4545](https://github.com/facebook/docusaurus/pull/4545) feat(v2): docusaurus deploy: ability to configure port in git url ([@talesporto](https://github.com/talesporto))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils`\\n - [#4590](https://github.com/facebook/docusaurus/pull/4590) feat(v2): various markdown string parsing improvements/fixes ([@slorber](https://github.com/slorber))\\n - [#4485](https://github.com/facebook/docusaurus/pull/4485) feat(v2): frontmatter-less: read first heading as title and use it in front-matter ([@armano2](https://github.com/armano2))\\n- `docusaurus-utils`\\n - [#4581](https://github.com/facebook/docusaurus/pull/4581) feat(v2): default theme translations: locale \\"pt\\" should load \\"pt-BR\\" translations ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#4495](https://github.com/facebook/docusaurus/pull/4495) feat(v2): include frontmatter in loadedContent doc metadatas ([@kaytwo](https://github.com/kaytwo))\\n - [#4500](https://github.com/facebook/docusaurus/pull/4500) feat(v2): provide doc sidebar_label through sidebars.js ([@besemuna](https://github.com/besemuna))\\n- `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#4449](https://github.com/facebook/docusaurus/pull/4449) feat(v2): infer default i18n locale config from locale code ([@slorber](https://github.com/slorber))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4619](https://github.com/facebook/docusaurus/pull/4619) refactor(v2): rename class main-docs-wrapper to docs-wrapper ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#4582](https://github.com/facebook/docusaurus/pull/4582) feat(v2): auto-generated sidebars, frontmatter-less sites ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#4627](https://github.com/facebook/docusaurus/pull/4627) chore(v2): update Infima to alpha.22 ([@slorber](https://github.com/slorber))\\n - [#4621](https://github.com/facebook/docusaurus/pull/4621) fix(v2): center align content if no sidebar exists ([@lex111](https://github.com/lex111))\\n - [#4620](https://github.com/facebook/docusaurus/pull/4620) fix(v2): restore toggle responsive sidebar button ([@lex111](https://github.com/lex111))\\n - [#4598](https://github.com/facebook/docusaurus/pull/4598) fix(v2): render escaped HTML entities inside code properly ([@lex111](https://github.com/lex111))\\n - [#4554](https://github.com/facebook/docusaurus/pull/4554) fix: DocNavbarItem error message ([@serut](https://github.com/serut))\\n - [#4468](https://github.com/facebook/docusaurus/pull/4468) fix(v2): select correct tab when items are incorrectly ordered ([@armano2](https://github.com/armano2))\\n - [#4461](https://github.com/facebook/docusaurus/pull/4461) fix(v2): Fix i18n staging deployment due to json typo ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4541](https://github.com/facebook/docusaurus/pull/4541) fix(v2): fix code block title parsing, support multiple metastring attributes ([@duanwilliam](https://github.com/duanwilliam))\\n - [#4600](https://github.com/facebook/docusaurus/pull/4600) fix(v2): use page title from config if not set ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4501](https://github.com/facebook/docusaurus/pull/4501) fix(v2): fail-safe usage of browser storage (localStorage/sessionStorage) when access is denied ([@jknoxville](https://github.com/jknoxville))\\n- `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus`\\n - [#4593](https://github.com/facebook/docusaurus/pull/4593) fix(v2): i18n perf issue: getTranslationFile() should not load content again ([@slorber](https://github.com/slorber))\\n- Other\\n - [#4574](https://github.com/facebook/docusaurus/pull/4574) fix(v2): examples should use Node 14 by default on CodeSandbox + regen with alpha72 ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#4547](https://github.com/facebook/docusaurus/pull/4547) feat(v2) : use symbols to denote swizzle safety ([@besemuna](https://github.com/besemuna))\\n - [#4575](https://github.com/facebook/docusaurus/pull/4575) fix(v2): fix i18n isLastLocale bug preventing docusaurus from building some locales ([@slorber](https://github.com/slorber))\\n - [#4506](https://github.com/facebook/docusaurus/pull/4506) fix(v2): remove no longer used postcss-present-env from dependencies ([@armano2](https://github.com/armano2))\\n - [#4444](https://github.com/facebook/docusaurus/pull/4444) fix(v2): Fix writeHeadingIds on Windows due to non-posix paths ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`\\n - [#4507](https://github.com/facebook/docusaurus/pull/4507) fix(v2): do not warn about duplicated title for pages ([@armano2](https://github.com/armano2))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus`\\n - [#4466](https://github.com/facebook/docusaurus/pull/4466) fix(v2): i18n fixes ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus`\\n - [#4459](https://github.com/facebook/docusaurus/pull/4459) fix(v2): Export Joi from validation-utils package ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#4626](https://github.com/facebook/docusaurus/pull/4626) refactor(v2): toggleResponsiveSidebar => more stable callback ([@slorber](https://github.com/slorber))\\n - [#4617](https://github.com/facebook/docusaurus/pull/4617) refactor(v2): simplify and optimize sidebar ([@slorber](https://github.com/slorber))\\n - [#4608](https://github.com/facebook/docusaurus/pull/4608) refactor(v2): replace react-toggle with own implementation ([@lex111](https://github.com/lex111))\\n - [#4601](https://github.com/facebook/docusaurus/pull/4601) refactor(v2): increase heading anchor offset ([@lex111](https://github.com/lex111))\\n - [#4467](https://github.com/facebook/docusaurus/pull/4467) refactor(v2): add missing types to theme-classic useTheme ([@armano2](https://github.com/armano2))\\n - [#4448](https://github.com/facebook/docusaurus/pull/4448) polish(v2): Add german translations ([@miku86](https://github.com/miku86))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4619](https://github.com/facebook/docusaurus/pull/4619) refactor(v2): rename class main-docs-wrapper to docs-wrapper ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus`\\n - [#4451](https://github.com/facebook/docusaurus/pull/4451) refactor(v2): correct client types and type aliases ([@armano2](https://github.com/armano2))\\n- `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#4450](https://github.com/facebook/docusaurus/pull/4450) chore(v2): Fix more linter warnings ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`\\n - [#4442](https://github.com/facebook/docusaurus/pull/4442) chore(v2): Fix linter warnings ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#4375](https://github.com/facebook/docusaurus/pull/4375) refactor(v2): TS config update: reduce the size of npm modules ([@RDIL](https://github.com/RDIL))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#4616](https://github.com/facebook/docusaurus/pull/4616) docs(v2): add showcase: kubevela ([@sunny0826](https://github.com/sunny0826))\\n - [#4612](https://github.com/facebook/docusaurus/pull/4612) docs(v2): Added IntelAGENT website to showcase. ([@akepecs](https://github.com/akepecs))\\n - [#4609](https://github.com/facebook/docusaurus/pull/4609) docs(v2): add clarity to tip in versioned using-themes page ([@dickwyn](https://github.com/dickwyn))\\n - [#4606](https://github.com/facebook/docusaurus/pull/4606) docs(v2): heading typo ([@arturcarvalho](https://github.com/arturcarvalho))\\n - [#4604](https://github.com/facebook/docusaurus/pull/4604) docs(v2): add clarity to tip in using-themes page ([@dickwyn](https://github.com/dickwyn))\\n - [#4602](https://github.com/facebook/docusaurus/pull/4602) docs(v2): Add \\"PptxGenJS\\" to showcase ([@gitbrent](https://github.com/gitbrent))\\n - [#4599](https://github.com/facebook/docusaurus/pull/4599) docs(v2): i18n site: enable ko + zh-CN locales ([@slorber](https://github.com/slorber))\\n - [#4595](https://github.com/facebook/docusaurus/pull/4595) docs(v2): fix typo theme-configuration.md ([@forresst](https://github.com/forresst))\\n - [#4594](https://github.com/facebook/docusaurus/pull/4594) docs(v2): Include docusaurus-protobuffet to community plugins ([@AnthonyBobsin](https://github.com/AnthonyBobsin))\\n - [#4558](https://github.com/facebook/docusaurus/pull/4558) docs(v2): fixed broken link in i18n-tutorial.md ([@covalentbond](https://github.com/covalentbond))\\n - [#4573](https://github.com/facebook/docusaurus/pull/4573) docs: update README badges ([@slorber](https://github.com/slorber))\\n - [#4559](https://github.com/facebook/docusaurus/pull/4559) docs(v2): fixed the directory of index.js ([@covalentbond](https://github.com/covalentbond))\\n - [#4568](https://github.com/facebook/docusaurus/pull/4568) docs(v2): add social-embed to showcase ([@tony](https://github.com/tony))\\n - [#4570](https://github.com/facebook/docusaurus/pull/4570) docs(v2): Add Redis Labs Developer Site to docusaurus showcase page ([@ajeetraina](https://github.com/ajeetraina))\\n - [#4543](https://github.com/facebook/docusaurus/pull/4543) docs(v2): fix run-on sentence ([@duanwilliam](https://github.com/duanwilliam))\\n - [#4539](https://github.com/facebook/docusaurus/pull/4539) docs(v2): fix typo deployment.mdx ([@forresst](https://github.com/forresst))\\n - [#4538](https://github.com/facebook/docusaurus/pull/4538) Add Tuist to the list of projects that use Docusaurus ([@pepibumur](https://github.com/pepibumur))\\n - [#4531](https://github.com/facebook/docusaurus/pull/4531) docs(v2): remove duplicate line on v1 docs ([@loozhengyuan](https://github.com/loozhengyuan))\\n - [#4524](https://github.com/facebook/docusaurus/pull/4524) docs(v2): config for self-hosted docsearch crawler ([@loozhengyuan](https://github.com/loozhengyuan))\\n - [#4526](https://github.com/facebook/docusaurus/pull/4526) docs(v2): fix markdown headings level 4 ([@forresst](https://github.com/forresst))\\n - [#4505](https://github.com/facebook/docusaurus/pull/4505) docs(v2): add more links to v1: announcementBar, versionDropdown, homepage ([@slorber](https://github.com/slorber))\\n - [#4497](https://github.com/facebook/docusaurus/pull/4497) docs: fix link to issue template ([@forresst](https://github.com/forresst))\\n - [#4481](https://github.com/facebook/docusaurus/pull/4481) docs(v2): fix grammar and improve wording ([@aehrea](https://github.com/aehrea))\\n - [#4472](https://github.com/facebook/docusaurus/pull/4472) docs(v2): fixed broken link in sidebar documentation ([@covalentbond](https://github.com/covalentbond))\\n - [#4470](https://github.com/facebook/docusaurus/pull/4470) docs(v2): Add missing i18n docs: API lifecycles + Crowdin migration guide ([@slorber](https://github.com/slorber))\\n - [#4460](https://github.com/facebook/docusaurus/pull/4460) docs(v2): use explicit heading IDs ([@lex111](https://github.com/lex111))\\n - [#4446](https://github.com/facebook/docusaurus/pull/4446) docs(v2): Add blog.johnnyreilly.com to showcase ([@johnnyreilly](https://github.com/johnnyreilly))\\n - [#4430](https://github.com/facebook/docusaurus/pull/4430) docs(v2): add Deploy with QuandCDN ([@steveworley](https://github.com/steveworley))\\n - [#4441](https://github.com/facebook/docusaurus/pull/4441) docs(v2): add stylable site to users showcase list ([@tomrav](https://github.com/tomrav))\\n- `docusaurus-init`\\n - [#4561](https://github.com/facebook/docusaurus/pull/4561) docs(v2): add a missing slug from the initial template ([@Foxeye-Rinx](https://github.com/Foxeye-Rinx))\\n - [#4560](https://github.com/facebook/docusaurus/pull/4560) docs(v2): fixed typos ([@covalentbond](https://github.com/covalentbond))\\n - [#4546](https://github.com/facebook/docusaurus/pull/4546) docs(v2): add a missing \\"export\\" from the initial template ([@Foxeye-Rinx](https://github.com/Foxeye-Rinx))\\n - [#4320](https://github.com/facebook/docusaurus/pull/4320) feat(v2): Improve the initial templates #4302 ([@besemuna](https://github.com/besemuna))\\n- `docusaurus-migrate`, `docusaurus`\\n - [#4479](https://github.com/facebook/docusaurus/pull/4479) docs(v2): fixed typos ([@covalentbond](https://github.com/covalentbond))\\n\\n## :house: Internal\\n\\n- `docusaurus-theme-classic`\\n - [#4627](https://github.com/facebook/docusaurus/pull/4627) chore(v2): update Infima to alpha.22 ([@slorber](https://github.com/slorber))\\n - [#4463](https://github.com/facebook/docusaurus/pull/4463) chore: fb json header commit typo ([@slorber](https://github.com/slorber))\\n- Other\\n - [#4613](https://github.com/facebook/docusaurus/pull/4613) chore(v2): fix yarn2 end2end test by using lerna publish --exact ([@slorber](https://github.com/slorber))\\n - [#4611](https://github.com/facebook/docusaurus/pull/4611) chore(v2): CI: do not build all locales when monitoring build time perf ([@slorber](https://github.com/slorber))\\n - [#4486](https://github.com/facebook/docusaurus/pull/4486) ci: enable yarn install cache ([@armano2](https://github.com/armano2))\\n - [#4508](https://github.com/facebook/docusaurus/pull/4508) ci: change default actions timeout from 6h to 30m ([@armano2](https://github.com/armano2))\\n - [#4488](https://github.com/facebook/docusaurus/pull/4488) chore(v2): fix typo in classic init template ([@clarus](https://github.com/clarus))\\n - [#4471](https://github.com/facebook/docusaurus/pull/4471) chore: fix GH actions lint problem matchers issue in PR ([@slorber](https://github.com/slorber))\\n - [#4458](https://github.com/facebook/docusaurus/pull/4458) chore(v2): enable staging locales: ko ja ([@slorber](https://github.com/slorber))\\n - [#4457](https://github.com/facebook/docusaurus/pull/4457) chore(v2): remove docs for alpha v70 ([@lex111](https://github.com/lex111))\\n - [#4452](https://github.com/facebook/docusaurus/pull/4452) chore(v2): update typescript-eslint to v4.18.0 ([@armano2](https://github.com/armano2))\\n- `docusaurus`\\n - [#4516](https://github.com/facebook/docusaurus/pull/4516) ci(v2): fail CI if build takes too much time ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#4490](https://github.com/facebook/docusaurus/pull/4490) chore: rename v2.docusaurus.io urls after domain switch + redirect + cleanups ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`\\n - [#4475](https://github.com/facebook/docusaurus/pull/4475) chore: prepare v1-v2 domain switch ([@slorber](https://github.com/slorber))\\n - [#4447](https://github.com/facebook/docusaurus/pull/4447) chore: simplify CI setup ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`, `docusaurus-init`\\n - [#4453](https://github.com/facebook/docusaurus/pull/4453) chore(v2): migrate babel-eslint to @babel/eslint-parser ([@armano2](https://github.com/armano2))\\n- `docusaurus-utils-validation`\\n - [#4464](https://github.com/facebook/docusaurus/pull/4464) chore(v2): Joi cyclic dep warning ([@slorber](https://github.com/slorber))\\n- `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-ideal-image`, `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`\\n - [#4462](https://github.com/facebook/docusaurus/pull/4462) chore: json files should be linted ([@slorber](https://github.com/slorber))\\n\\n## :running: Performance\\n\\n- `docusaurus-theme-classic`\\n - [#4626](https://github.com/facebook/docusaurus/pull/4626) refactor(v2): toggleResponsiveSidebar => more stable callback ([@slorber](https://github.com/slorber))\\n - [#4603](https://github.com/facebook/docusaurus/pull/4603) perf(v2): avoid rerender of sidebar items while scrolling ([@lex111](https://github.com/lex111))\\n - [#4473](https://github.com/facebook/docusaurus/pull/4473) perf(v2): reduce amount of component updates while scrolling ([@armano2](https://github.com/armano2))\\n\\n## Committers: 37\\n\\n- Ajeet Singh Raina, Docker Captain, RedisLabs ([@ajeetraina](https://github.com/ajeetraina))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Anthony Bobsin ([@AnthonyBobsin](https://github.com/AnthonyBobsin))\\n- Arijit Kundu ([@covalentbond](https://github.com/covalentbond))\\n- Armano ([@armano2](https://github.com/armano2))\\n- Artur Carvalho ([@arturcarvalho](https://github.com/arturcarvalho))\\n- Brent Ely ([@gitbrent](https://github.com/gitbrent))\\n- Chris Kanich ([@kaytwo](https://github.com/kaytwo))\\n- Dennis Thompson ([@atomicpages](https://github.com/atomicpages))\\n- Dick Wyn Yong ([@dickwyn](https://github.com/dickwyn))\\n- Forresst ([@forresst](https://github.com/forresst))\\n- Guillaume Claret ([@clarus](https://github.com/clarus))\\n- John Knox ([@jknoxville](https://github.com/jknoxville))\\n- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))\\n- Lisa Chandra ([@lisa761](https://github.com/lisa761))\\n- Lucas Alves ([@lucalves](https://github.com/lucalves))\\n- Marco Enrico ([@gumacahin](https://github.com/gumacahin))\\n- Pedro Pi\xf1era Buend\xeda ([@pepibumur](https://github.com/pepibumur))\\n- Reece Dunham ([@RDIL](https://github.com/RDIL))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- Steve ([@steveworley](https://github.com/steveworley))\\n- Steven Hansel ([@ShinteiMai](https://github.com/ShinteiMai))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tales Porto ([@talesporto](https://github.com/talesporto))\\n- Thiago Sciotta ([@thiagog3](https://github.com/thiagog3))\\n- Tiago Ribeiro ([@tiago-rr](https://github.com/tiago-rr))\\n- Tom Raviv ([@tomrav](https://github.com/tomrav))\\n- Tony Narlock ([@tony](https://github.com/tony))\\n- ZhengYuan Loo ([@loozhengyuan](https://github.com/loozhengyuan))\\n- [@Foxeye-Rinx](https://github.com/Foxeye-Rinx)\\n- [@aehrea](https://github.com/aehrea)\\n- [@akepecs](https://github.com/akepecs)\\n- [@besemuna](https://github.com/besemuna)\\n- [@duanwilliam](https://github.com/duanwilliam)\\n- [@miku86](https://github.com/miku86)\\n- [@serut](https://github.com/serut)\\n- guoxudong ([@sunny0826](https://github.com/sunny0826))"},{"id":"/2.0.0-alpha.72","metadata":{"permalink":"/changelog/2.0.0-alpha.72","source":"@site/changelog/source/2.0.0-alpha.72.md","title":"2.0.0-alpha.72","description":"Breaking Change","date":"2021-03-16T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Armano","alias":"armano2","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png","key":"armano2","page":null},{"name":"Harvtronix","alias":"Harvtronix","url":"https://github.com/Harvtronix","imageURL":"https://github.com/Harvtronix.png","key":"Harvtronix","page":null},{"name":"Joon-Ha Lee","alias":"koko8829","url":"https://github.com/koko8829","imageURL":"https://github.com/koko8829.png","key":"koko8829","page":null},{"name":"Leandro Oriente","alias":"leandrooriente","url":"https://github.com/leandrooriente","imageURL":"https://github.com/leandrooriente.png","key":"leandrooriente","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Long Ho","alias":"longlho","url":"https://github.com/longlho","imageURL":"https://github.com/longlho.png","key":"longlho","page":null},{"name":"Lowen","alias":"lowenhere","url":"https://github.com/lowenhere","imageURL":"https://github.com/lowenhere.png","key":"lowenhere","page":null},{"name":"Pierre-Gilles Leymarie","alias":"Pierre-Gilles","url":"https://github.com/Pierre-Gilles","imageURL":"https://github.com/Pierre-Gilles.png","key":"Pierre-Gilles","page":null},{"name":"Quan","alias":"quanengineering","url":"https://github.com/quanengineering","imageURL":"https://github.com/quanengineering.png","key":"quanengineering","page":null},{"name":"Rhodanthe1116","alias":"Rhodanthe1116","url":"https://github.com/Rhodanthe1116","imageURL":"https://github.com/Rhodanthe1116.png","key":"Rhodanthe1116","page":null},{"name":"Steven Hansel","alias":"ShinteiMai","url":"https://github.com/ShinteiMai","imageURL":"https://github.com/ShinteiMai.png","key":"ShinteiMai","page":null},{"name":"Simen Bekkhus","alias":"SimenB","url":"https://github.com/SimenB","imageURL":"https://github.com/SimenB.png","key":"SimenB","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Zoltan Kochan","alias":"zkochan","url":"https://github.com/zkochan","imageURL":"https://github.com/zkochan.png","key":"zkochan","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-03-16T20:00","authors":["armano2","Harvtronix","koko8829","leandrooriente","lex111","longlho","lowenhere","Pierre-Gilles","quanengineering","Rhodanthe1116","ShinteiMai","SimenB","slorber","zkochan"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.73","permalink":"/changelog/2.0.0-alpha.73"},"nextItem":{"title":"2.0.0-alpha.71","permalink":"/changelog/2.0.0-alpha.71"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\nStarting with this release for a proper work of i18n functionality, you need to either use Node v14+ or in case of using earlier version of Node.js install [`full-icu` package](https://www.npmjs.com/package/full-icu) and set `NODE_ICU_DATA` environment variable in your npm scripts, for example:\\n\\n```json\\n\\"scripts\\": {\\n \\"start\\": \\"cross-env NODE_ICU_DATA=node_modules/full-icu docusaurus start\\"\\n}\\n```\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-init`\\n - [#4302](https://github.com/facebook/docusaurus/pull/4302) feat(v2): Improve the initial templates ([@ShinteiMai](https://github.com/ShinteiMai))\\n- `docusaurus-theme-classic`\\n - [#4390](https://github.com/facebook/docusaurus/pull/4390) feat(v2): Add korean default translations ([@koko8829](https://github.com/koko8829))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#4429](https://github.com/facebook/docusaurus/pull/4429) chore(v2): upgrade Infima to v0.2.0-alpha.21 ([@lex111](https://github.com/lex111))\\n - [#4428](https://github.com/facebook/docusaurus/pull/4428) fix(v2): allow using pre tag in Markdown directly ([@lex111](https://github.com/lex111))\\n - [#4381](https://github.com/facebook/docusaurus/pull/4381) fix(v2): specify proper TS path in classic theme ([@lex111](https://github.com/lex111))\\n - [#4383](https://github.com/facebook/docusaurus/pull/4383) fix(v2): set theme color mode for SSR ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-pwa`\\n - [#4424](https://github.com/facebook/docusaurus/pull/4424) fix(v2): add missing peer dep on @babel/core ([@SimenB](https://github.com/SimenB))\\n - [#4377](https://github.com/facebook/docusaurus/pull/4377) fix(v2): PWA issues + improve docs ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#4407](https://github.com/facebook/docusaurus/pull/4407) fix(v2): broken link checker should not report false positives when using encoded chars ([@Harvtronix](https://github.com/Harvtronix))\\n- Other\\n - [#4410](https://github.com/facebook/docusaurus/pull/4410) fix(v1): Fix v1 site deployment with Crowdin again... ([@slorber](https://github.com/slorber))\\n - [#4396](https://github.com/facebook/docusaurus/pull/4396) fix(v1): Temp fix v1 site deployment: fail-safe on Crowdin upload translations error ([@slorber](https://github.com/slorber))\\n - [#4395](https://github.com/facebook/docusaurus/pull/4395) fix(v1): fix v1 site deploy issues ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus`\\n - [#4418](https://github.com/facebook/docusaurus/pull/4418) refactor(v2): correct plugin types ([@armano2](https://github.com/armano2))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`\\n - [#4405](https://github.com/facebook/docusaurus/pull/4405) refactor(v2): i18n cleanups / refactors ([@longlho](https://github.com/longlho))\\n- `docusaurus-module-type-aliases`\\n - [#4387](https://github.com/facebook/docusaurus/pull/4387) refactor(v2): add ExecutionEnvironment, BrowserOnly, isInternalUrl to type aliases ([@armano2](https://github.com/armano2))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#4402](https://github.com/facebook/docusaurus/pull/4402) refactor(v2): merge linkify function used in blog and docs and align properties ([@armano2](https://github.com/armano2))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-docs`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus`\\n - [#4382](https://github.com/facebook/docusaurus/pull/4382) refactor(v2): correct some of type errors reported by eslint ([@armano2](https://github.com/armano2))\\n- `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4385](https://github.com/facebook/docusaurus/pull/4385) refactor(v2): add missing theme-classic types ([@armano2](https://github.com/armano2))\\n\\n## :memo: Documentation\\n\\n- [#4416](https://github.com/facebook/docusaurus/pull/4416) docs(v2): add Realtime Web Applications Workshop to showcase ([@lowenhere](https://github.com/lowenhere))\\n- [#4408](https://github.com/facebook/docusaurus/pull/4408) docs(v2): add gladysassistant.com to showcase ([@Pierre-Gilles](https://github.com/Pierre-Gilles))\\n- [#4386](https://github.com/facebook/docusaurus/pull/4386) docs(v2): Showcase the pnpm docs ([@zkochan](https://github.com/zkochan))\\n- [#4367](https://github.com/facebook/docusaurus/pull/4367) docs(v2): releasing i18n blog post ([@slorber](https://github.com/slorber))\\n\\n## :house: Internal\\n\\n- `docusaurus-1.x`\\n - [#4401](https://github.com/facebook/docusaurus/pull/4401) chore(v1): fix CircleCI v1 site deploy ([@slorber](https://github.com/slorber))\\n- Other\\n - [#4399](https://github.com/facebook/docusaurus/pull/4399) chore(v2): upgrade example projects ([@slorber](https://github.com/slorber))\\n - [#4398](https://github.com/facebook/docusaurus/pull/4398) chore(v1): trigger v1 site deploy through CI ([@slorber](https://github.com/slorber))\\n- `docusaurus-utils`\\n - [#4384](https://github.com/facebook/docusaurus/pull/4384) chore(v2): avoid bad publish of intl-locales-supported ([@lex111](https://github.com/lex111))\\n\\n## Committers: 14\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Armano ([@armano2](https://github.com/armano2))\\n- Harvtronix ([@Harvtronix](https://github.com/Harvtronix))\\n- Joon-Ha Lee ([@koko8829](https://github.com/koko8829))\\n- Leandro Oriente ([@leandrooriente](https://github.com/leandrooriente))\\n- Long Ho ([@longlho](https://github.com/longlho))\\n- Lowen ([@lowenhere](https://github.com/lowenhere))\\n- Pierre-Gilles Leymarie ([@Pierre-Gilles](https://github.com/Pierre-Gilles))\\n- Quan ([@quanengineering](https://github.com/quanengineering))\\n- Simen Bekkhus ([@SimenB](https://github.com/SimenB))\\n- Steven Hansel ([@ShinteiMai](https://github.com/ShinteiMai))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Zoltan Kochan ([@zkochan](https://github.com/zkochan))\\n- [@Rhodanthe1116](https://github.com/Rhodanthe1116)"},{"id":"/2.0.0-alpha.71","metadata":{"permalink":"/changelog/2.0.0-alpha.71","source":"@site/changelog/source/2.0.0-alpha.71.md","title":"2.0.0-alpha.71","description":"New Feature","date":"2021-03-09T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Ali Saki","alias":"3alisaki","url":"https://github.com/3alisaki","imageURL":"https://github.com/3alisaki.png","key":"3alisaki","page":null},{"name":"Joel M","alias":"9oelM","url":"https://github.com/9oelM","imageURL":"https://github.com/9oelM.png","key":"9oelM","page":null},{"name":"Apurva Ojas","alias":"apurvaojas","url":"https://github.com/apurvaojas","imageURL":"https://github.com/apurvaojas.png","key":"apurvaojas","page":null},{"name":"Armano","alias":"armano2","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png","key":"armano2","page":null},{"name":"Arthur","alias":"ArtFlag","url":"https://github.com/ArtFlag","imageURL":"https://github.com/ArtFlag.png","key":"ArtFlag","page":null},{"name":"Jola","alias":"asystentka-jolka","url":"https://github.com/asystentka-jolka","imageURL":"https://github.com/asystentka-jolka.png","key":"asystentka-jolka","page":null},{"name":"Andrew Taft","alias":"ataft","url":"https://github.com/ataft","imageURL":"https://github.com/ataft.png","key":"ataft","page":null},{"name":"aukokyong","alias":"aukokyong","url":"https://github.com/aukokyong","imageURL":"https://github.com/aukokyong.png","key":"aukokyong","page":null},{"name":"Nahiyan Kamal","alias":"ayonious","url":"https://github.com/ayonious","imageURL":"https://github.com/ayonious.png","key":"ayonious","page":null},{"name":"Martin Ad\xe1mek","alias":"B4nan","url":"https://github.com/B4nan","imageURL":"https://github.com/B4nan.png","key":"B4nan","page":null},{"name":"Ben","alias":"ben-qnimble","url":"https://github.com/ben-qnimble","imageURL":"https://github.com/ben-qnimble.png","key":"ben-qnimble","page":null},{"name":"BennoDev","alias":"bennodev19","url":"https://github.com/bennodev19","imageURL":"https://github.com/bennodev19.png","key":"bennodev19","page":null},{"name":"\xc7a\u011Flar Tural\u0131","alias":"caglarturali","url":"https://github.com/caglarturali","imageURL":"https://github.com/caglarturali.png","key":"caglarturali","page":null},{"name":"Christian Bromann","alias":"christian-bromann","url":"https://github.com/christian-bromann","imageURL":"https://github.com/christian-bromann.png","key":"christian-bromann","page":null},{"name":"David Barrat","alias":"dbrrt","url":"https://github.com/dbrrt","imageURL":"https://github.com/dbrrt.png","key":"dbrrt","page":null},{"name":"Gr\xe9gory Heitz","alias":"edno","url":"https://github.com/edno","imageURL":"https://github.com/edno.png","key":"edno","page":null},{"name":"Eduardo L\xe1zaro","alias":"edulazaro","url":"https://github.com/edulazaro","imageURL":"https://github.com/edulazaro.png","key":"edulazaro","page":null},{"name":"Eric Carboni","alias":"eric-hc","url":"https://github.com/eric-hc","imageURL":"https://github.com/eric-hc.png","key":"eric-hc","page":null},{"name":"Mohd Shad Mirza","alias":"iamshadmirza","url":"https://github.com/iamshadmirza","imageURL":"https://github.com/iamshadmirza.png","key":"iamshadmirza","page":null},{"name":"Bhargav Ponnapalli","alias":"imbhargav5","url":"https://github.com/imbhargav5","imageURL":"https://github.com/imbhargav5.png","key":"imbhargav5","page":null},{"name":"Ivan Ru\u017Eevi\u0107","alias":"iruzevic","url":"https://github.com/iruzevic","imageURL":"https://github.com/iruzevic.png","key":"iruzevic","page":null},{"name":"Jessica Lin","alias":"jlin27","url":"https://github.com/jlin27","imageURL":"https://github.com/jlin27.png","key":"jlin27","page":null},{"name":"Joel Marcey","alias":"JoelMarcey","url":"https://github.com/JoelMarcey","imageURL":"https://github.com/JoelMarcey.png","key":"JoelMarcey","page":null},{"name":"Juan Carlos Blanco Delgado","alias":"juancarlosjr97","url":"https://github.com/juancarlosjr97","imageURL":"https://github.com/juancarlosjr97.png","key":"juancarlosjr97","page":null},{"name":"\u741A\u81F4\u8FDC","alias":"juzhiyuan","url":"https://github.com/juzhiyuan","imageURL":"https://github.com/juzhiyuan.png","key":"juzhiyuan","page":null},{"name":"Kumar Aditya","alias":"kumaraditya303","url":"https://github.com/kumaraditya303","imageURL":"https://github.com/kumaraditya303.png","key":"kumaraditya303","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Pablo Vidal","alias":"limkinZero","url":"https://github.com/limkinZero","imageURL":"https://github.com/limkinZero.png","key":"limkinZero","page":null},{"name":"Power Lin","alias":"linyuxuanlin","url":"https://github.com/linyuxuanlin","imageURL":"https://github.com/linyuxuanlin.png","key":"linyuxuanlin","page":null},{"name":"Lisa Chandra","alias":"lisa761","url":"https://github.com/lisa761","imageURL":"https://github.com/lisa761.png","key":"lisa761","page":null},{"name":"LittleboyHarry","alias":"LittleboyHarry","url":"https://github.com/LittleboyHarry","imageURL":"https://github.com/LittleboyHarry.png","key":"LittleboyHarry","page":null},{"name":"Long Ho","alias":"longlho","url":"https://github.com/longlho","imageURL":"https://github.com/longlho.png","key":"longlho","page":null},{"name":"Matteo Manzinello","alias":"manzinello","url":"https://github.com/manzinello","imageURL":"https://github.com/manzinello.png","key":"manzinello","page":null},{"name":"Massoud Maboudi","alias":"massoudmaboudi","url":"https://github.com/massoudmaboudi","imageURL":"https://github.com/massoudmaboudi.png","key":"massoudmaboudi","page":null},{"name":"Matan Borenkraout","alias":"MatanBobi","url":"https://github.com/MatanBobi","imageURL":"https://github.com/MatanBobi.png","key":"MatanBobi","page":null},{"name":"Miroiu Emanuel","alias":"miroiu","url":"https://github.com/miroiu","imageURL":"https://github.com/miroiu.png","key":"miroiu","page":null},{"name":"MisterFISHUP","alias":"MisterFISHUP","url":"https://github.com/MisterFISHUP","imageURL":"https://github.com/MisterFISHUP.png","key":"MisterFISHUP","page":null},{"name":"moonrailgun","alias":"moonrailgun","url":"https://github.com/moonrailgun","imageURL":"https://github.com/moonrailgun.png","key":"moonrailgun","page":null},{"name":"Sean Campbell","alias":"natac13","url":"https://github.com/natac13","imageURL":"https://github.com/natac13.png","key":"natac13","page":null},{"name":"Nico Jansen","alias":"nicojs","url":"https://github.com/nicojs","imageURL":"https://github.com/nicojs.png","key":"nicojs","page":null},{"name":"Nikolay Samokhvalov","alias":"NikolayS","url":"https://github.com/NikolayS","imageURL":"https://github.com/NikolayS.png","key":"NikolayS","page":null},{"name":"Nathan Bosscher","alias":"ntbosscher","url":"https://github.com/ntbosscher","imageURL":"https://github.com/ntbosscher.png","key":"ntbosscher","page":null},{"name":"Matt Oestreich","alias":"oze4","url":"https://github.com/oze4","imageURL":"https://github.com/oze4.png","key":"oze4","page":null},{"name":"philipp985","alias":"philipp985","url":"https://github.com/philipp985","imageURL":"https://github.com/philipp985.png","key":"philipp985","page":null},{"name":"Reece Dunham","alias":"RDIL","url":"https://github.com/RDIL","imageURL":"https://github.com/RDIL.png","key":"RDIL","page":null},{"name":"roydukkey","alias":"roydukkey","url":"https://github.com/roydukkey","imageURL":"https://github.com/roydukkey.png","key":"roydukkey","page":null},{"name":"Saihajpreet Singh","alias":"saihaj","url":"https://github.com/saihaj","imageURL":"https://github.com/saihaj.png","key":"saihaj","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"Sam Hrncir","alias":"samhrncir","url":"https://github.com/samhrncir","imageURL":"https://github.com/samhrncir.png","key":"samhrncir","page":null},{"name":"sammychinedu2ky","alias":"sammychinedu2ky","url":"https://github.com/sammychinedu2ky","imageURL":"https://github.com/sammychinedu2ky.png","key":"sammychinedu2ky","page":null},{"name":"saydo17","alias":"saydo17","url":"https://github.com/saydo17","imageURL":"https://github.com/saydo17.png","key":"saydo17","page":null},{"name":"Sergio Moreno","alias":"semoal","url":"https://github.com/semoal","imageURL":"https://github.com/semoal.png","key":"semoal","page":null},{"name":"Siemienik Pawel","alias":"Siemienik","url":"https://github.com/Siemienik","imageURL":"https://github.com/Siemienik.png","key":"Siemienik","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"Sam Sam","alias":"sksamuel","url":"https://github.com/sksamuel","imageURL":"https://github.com/sksamuel.png","key":"sksamuel","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Ankur Kedia","alias":"theankurkedia","url":"https://github.com/theankurkedia","imageURL":"https://github.com/theankurkedia.png","key":"theankurkedia","page":null},{"name":"Theodore Chu","alias":"TheodoreChu","url":"https://github.com/TheodoreChu","imageURL":"https://github.com/TheodoreChu.png","key":"TheodoreChu","page":null},{"name":"Tien Vo Xuan","alias":"tienvx","url":"https://github.com/tienvx","imageURL":"https://github.com/tienvx.png","key":"tienvx","page":null},{"name":"tokarchyn","alias":"tokarchyn","url":"https://github.com/tokarchyn","imageURL":"https://github.com/tokarchyn.png","key":"tokarchyn","page":null},{"name":"Tomas Fernandez","alias":"tomsfernandez","url":"https://github.com/tomsfernandez","imageURL":"https://github.com/tomsfernandez.png","key":"tomsfernandez","page":null},{"name":"Vamsi Krishna Reddy Satti","alias":"vamsi3","url":"https://github.com/vamsi3","imageURL":"https://github.com/vamsi3.png","key":"vamsi3","page":null},{"name":"Kevin Viglucci","alias":"viglucci","url":"https://github.com/viglucci","imageURL":"https://github.com/viglucci.png","key":"viglucci","page":null},{"name":"Welly","alias":"wellyshen","url":"https://github.com/wellyshen","imageURL":"https://github.com/wellyshen.png","key":"wellyshen","page":null},{"name":"wolf20482","alias":"wolf20482","url":"https://github.com/wolf20482","imageURL":"https://github.com/wolf20482.png","key":"wolf20482","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null},{"name":"Yash Totale","alias":"YashTotale","url":"https://github.com/YashTotale","imageURL":"https://github.com/YashTotale.png","key":"YashTotale","page":null},{"name":"Yamagishi Kazutoshi","alias":"ykzts","url":"https://github.com/ykzts","imageURL":"https://github.com/ykzts.png","key":"ykzts","page":null},{"name":"Yuri Sulyma","alias":"ysulyma","url":"https://github.com/ysulyma","imageURL":"https://github.com/ysulyma.png","key":"ysulyma","page":null},{"name":"Yuval Hazaz","alias":"yuval-hazaz","url":"https://github.com/yuval-hazaz","imageURL":"https://github.com/yuval-hazaz.png","key":"yuval-hazaz","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2021-03-09T20:00","authors":["3alisaki","9oelM","apurvaojas","armano2","ArtFlag","asystentka-jolka","ataft","aukokyong","ayonious","B4nan","ben-qnimble","bennodev19","caglarturali","christian-bromann","dbrrt","edno","edulazaro","eric-hc","iamshadmirza","imbhargav5","iruzevic","jlin27","JoelMarcey","juancarlosjr97","juzhiyuan","kumaraditya303","lex111","limkinZero","linyuxuanlin","lisa761","LittleboyHarry","longlho","manzinello","massoudmaboudi","MatanBobi","miroiu","MisterFISHUP","moonrailgun","natac13","nicojs","NikolayS","ntbosscher","oze4","philipp985","RDIL","roydukkey","saihaj","SamChou19815","samhrncir","sammychinedu2ky","saydo17","semoal","Siemienik","Simek","sksamuel","slorber","theankurkedia","TheodoreChu","tienvx","tokarchyn","tomsfernandez","vamsi3","viglucci","wellyshen","wolf20482","yangshun","YashTotale","ykzts","ysulyma","yuval-hazaz"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.72","permalink":"/changelog/2.0.0-alpha.72"},"nextItem":{"title":"2.0.0-alpha.70","permalink":"/changelog/2.0.0-alpha.70"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-utils`, `docusaurus`\\n - [#4222](https://github.com/facebook/docusaurus/pull/4222) feat(v2): add ability to set custom heading id ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-live-codeblock`\\n - [#4328](https://github.com/facebook/docusaurus/pull/4328) feat(v2): Add playgroundPosition config for live codeblock ([@tokarchyn](https://github.com/tokarchyn))\\n- `docusaurus-theme-classic`\\n - [#4209](https://github.com/facebook/docusaurus/pull/4209) feat(v2): auto focus to tab if it is outside viewport ([@lex111](https://github.com/lex111))\\n - [#4329](https://github.com/facebook/docusaurus/pull/4329) feat(v2): add arabic translation ([@3alisaki](https://github.com/3alisaki))\\n - [#4325](https://github.com/facebook/docusaurus/pull/4325) feat(v2): [theme-classic] add Polish translation ([@Simek](https://github.com/Simek))\\n - [#4312](https://github.com/facebook/docusaurus/pull/4312) feat(v2): Add Turkish translations for theme labels ([@caglarturali](https://github.com/caglarturali))\\n - [#4271](https://github.com/facebook/docusaurus/pull/4271) feat(v2): add Farsi default translations ([@slorber](https://github.com/slorber))\\n - [#4261](https://github.com/facebook/docusaurus/pull/4261) feat(v2): add icon to generic sidebar link ([@lex111](https://github.com/lex111))\\n - [#4109](https://github.com/facebook/docusaurus/pull/4109) feat(v2): default canonical urls ([@slorber](https://github.com/slorber))\\n- `docusaurus-types`, `docusaurus`\\n - [#4308](https://github.com/facebook/docusaurus/pull/4308) feat(v2): add --config option to CLI ([@longlho](https://github.com/longlho))\\n - [#4185](https://github.com/facebook/docusaurus/pull/4185) feat(v2): allow extend PostCSS config ([@lex111](https://github.com/lex111))\\n - [#4021](https://github.com/facebook/docusaurus/pull/4021) feat(v2): Allow plugins to consume webpack stats ([@RDIL](https://github.com/RDIL))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#4303](https://github.com/facebook/docusaurus/pull/4303) feat(v2): add japanese translations ([@ykzts](https://github.com/ykzts))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus`\\n - [#4295](https://github.com/facebook/docusaurus/pull/4295) feat(v2): Add Interpolate / interpolate APIs + complete theme translations ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`\\n - [#4278](https://github.com/facebook/docusaurus/pull/4278) feat(v2): ability to \\"escape\\" JSX in MDX files as code blocks ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`\\n - [#4232](https://github.com/facebook/docusaurus/pull/4232) feat(v2): editUrl functions should receive md doc permalink ([@slorber](https://github.com/slorber))\\n - [#4121](https://github.com/facebook/docusaurus/pull/4121) feat(v2): editUrl function for advanced use-cases ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#4218](https://github.com/facebook/docusaurus/pull/4218) feat(v2): support/use React v17 by default ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#4215](https://github.com/facebook/docusaurus/pull/4215) feat(v2): Add i18n default code translation bundles ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#4140](https://github.com/facebook/docusaurus/pull/4140) feat(v2): add support for RTL direction ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4199](https://github.com/facebook/docusaurus/pull/4199) feat(v2): allow to change location of search bar ([@lex111](https://github.com/lex111))\\n - [#3993](https://github.com/facebook/docusaurus/pull/3993) feat(v2): themed logo in footer ([@natac13](https://github.com/natac13))\\n- `docusaurus`\\n - [#4198](https://github.com/facebook/docusaurus/pull/4198) feat(v2): add fonts loaders + webpack resolve.roots ([@slorber](https://github.com/slorber))\\n - [#3998](https://github.com/facebook/docusaurus/pull/3998) feat(v2): Cache hashed assets to dedicated folders ([@kumaraditya303](https://github.com/kumaraditya303))\\n - [#3979](https://github.com/facebook/docusaurus/pull/3979) feat(v2): better error message for invalid plugin config ([@9oelM](https://github.com/9oelM))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus`\\n - [#4168](https://github.com/facebook/docusaurus/pull/4168) feat(v2): Extract/translate hardcoded labels from classic theme ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`\\n - [#4098](https://github.com/facebook/docusaurus/pull/4098) feat(v2): improve templates, use JSDoc type annotation, improve `docusaurus.config.js` autocompletion ([@LittleboyHarry](https://github.com/LittleboyHarry))\\n- `docusaurus-init`, `docusaurus-migrate`\\n - [#3986](https://github.com/facebook/docusaurus/pull/3986) feat(v2): skip dependency install on docusaurus init ([@kumaraditya303](https://github.com/kumaraditya303))\\n- `docusaurus-plugin-content-docs`\\n - [#3949](https://github.com/facebook/docusaurus/pull/3949) feat(v2): new docs edit options: editCurrentVersion + editLocalizedDocs ([@slorber](https://github.com/slorber))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-1.x`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#4223](https://github.com/facebook/docusaurus/pull/4223) chore(v2): upgrade dependencies + require Node 12 ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#4366](https://github.com/facebook/docusaurus/pull/4366) fix(v2): align installed core-js version with babel config ([@armano2](https://github.com/armano2))\\n - [#4345](https://github.com/facebook/docusaurus/pull/4345) fix(v2): always extract translations from site/src ([@slorber](https://github.com/slorber))\\n - [#4342](https://github.com/facebook/docusaurus/pull/4342) chore(v2): bump clean-css to 5.1.1 ([@lex111](https://github.com/lex111))\\n - [#4212](https://github.com/facebook/docusaurus/pull/4212) fix(v2): typo in resolve.roots ([@slorber](https://github.com/slorber))\\n - [#4155](https://github.com/facebook/docusaurus/pull/4155) fix(v2): BaseUrl issue banner insertion should be prevented if JS can load ([@slorber](https://github.com/slorber))\\n - [#4137](https://github.com/facebook/docusaurus/pull/4137) fix(v2): escape apostrophes in route paths ([@lex111](https://github.com/lex111))\\n - [#4136](https://github.com/facebook/docusaurus/pull/4136) fix(v2): fix navigation from homepage ([@lex111](https://github.com/lex111))\\n - [#4125](https://github.com/facebook/docusaurus/pull/4125) fix(v2): baseUrl help banner should not be indexed by Google / SEO ([@slorber](https://github.com/slorber))\\n - [#4080](https://github.com/facebook/docusaurus/pull/4080) fix(v2): chokidar reloading debounced ([@semoal](https://github.com/semoal))\\n - [#3965](https://github.com/facebook/docusaurus/pull/3965) fix(v2): fix svg loader for CSS files ([@apurvaojas](https://github.com/apurvaojas))\\n - [#3943](https://github.com/facebook/docusaurus/pull/3943) fix(v2): disables all inlining in CleanCSS ([@lex111](https://github.com/lex111))\\n - [#3941](https://github.com/facebook/docusaurus/pull/3941) fix(v2): fix i18n build logging. ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#4349](https://github.com/facebook/docusaurus/pull/4349) fix(v2): fix update code translations script + update some translations ([@slorber](https://github.com/slorber))\\n - [#4311](https://github.com/facebook/docusaurus/pull/4311) fix(v2): fit footer in viewport when content area is too small ([@lex111](https://github.com/lex111))\\n - [#4340](https://github.com/facebook/docusaurus/pull/4340) fix(v2): prevent useless blog pages to be in search results ([@slorber](https://github.com/slorber))\\n - [#4274](https://github.com/facebook/docusaurus/pull/4274) fix(v2): theme classic should have lib-next prettified ([@slorber](https://github.com/slorber))\\n - [#4267](https://github.com/facebook/docusaurus/pull/4267) fix(v2): Allow null as valid for title of item in footer links. ([@ben-qnimble](https://github.com/ben-qnimble))\\n - [#4254](https://github.com/facebook/docusaurus/pull/4254) fix(v2): fix LTR PostCSS bug on Netlify and monorepo symlinks ([@slorber](https://github.com/slorber))\\n - [#4247](https://github.com/facebook/docusaurus/pull/4247) fix(v2): make doc container full width when hidden sidebar ([@lex111](https://github.com/lex111))\\n - [#4241](https://github.com/facebook/docusaurus/pull/4241) fix(v2): avoid horizontal scrolling when long lines of code ([@lex111](https://github.com/lex111))\\n - [#4200](https://github.com/facebook/docusaurus/pull/4200) fix(v2): various minor bugs with location hash ([@lex111](https://github.com/lex111))\\n - [#4195](https://github.com/facebook/docusaurus/pull/4195) fix(v2): restore hamburger menu ([@lex111](https://github.com/lex111))\\n - [#4189](https://github.com/facebook/docusaurus/pull/4189) fix(v2): prevent click on item menu with children on mobiles ([@lex111](https://github.com/lex111))\\n - [#4176](https://github.com/facebook/docusaurus/pull/4176) fix(v2): make locale dropdown accessible from keyboard ([@lex111](https://github.com/lex111))\\n - [#4163](https://github.com/facebook/docusaurus/pull/4163) fix(v2): fix warning and improve styling inline TOC ([@lex111](https://github.com/lex111))\\n - [#4162](https://github.com/facebook/docusaurus/pull/4162) fix(v2): make more accessible skip link ([@lex111](https://github.com/lex111))\\n - [#4160](https://github.com/facebook/docusaurus/pull/4160) fix(v2): fix hreflang headers ([@slorber](https://github.com/slorber))\\n - [#4147](https://github.com/facebook/docusaurus/pull/4147) fix(v2): avoid misuse section tag in blog posts ([@lex111](https://github.com/lex111))\\n - [#4146](https://github.com/facebook/docusaurus/pull/4146) fix(v2): use current color for language icon ([@lex111](https://github.com/lex111))\\n - [#4118](https://github.com/facebook/docusaurus/pull/4118) fix(v2): navbar dropdown subitems should be translated properly ([@slorber](https://github.com/slorber))\\n - [#4011](https://github.com/facebook/docusaurus/pull/4011) fix(v2): fix accessibility issue with IconArrow ([@natac13](https://github.com/natac13))\\n - [#3968](https://github.com/facebook/docusaurus/pull/3968) fix(v2): fix blog only contextual search ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#4315](https://github.com/facebook/docusaurus/pull/4315) fix(v2): make code blocks more standalone ([@lex111](https://github.com/lex111))\\n - [#4277](https://github.com/facebook/docusaurus/pull/4277) fix(v2): Code blocks should be LTR by default ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-live-codeblock`\\n - [#4318](https://github.com/facebook/docusaurus/pull/4318) fix(v2): evaluate code in live editor on client only ([@lex111](https://github.com/lex111))\\n - [#3954](https://github.com/facebook/docusaurus/pull/3954) fix(v2): allow async/await in live code editor ([@9oelM](https://github.com/9oelM))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#4339](https://github.com/facebook/docusaurus/pull/4339) fix(v2): search page results localization ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#4304](https://github.com/facebook/docusaurus/pull/4304) fix(v2): fix bad theme pluralization rules for some labels ([@slorber](https://github.com/slorber))\\n- `docusaurus-cssnano-preset`\\n - [#4240](https://github.com/facebook/docusaurus/pull/4240) fix(v2): remove PostCSS plugin for combine duplicated selectors ([@lex111](https://github.com/lex111))\\n- Other\\n - [#4234](https://github.com/facebook/docusaurus/pull/4234) fix(v2): fix website versions page ([@slorber](https://github.com/slorber))\\n - [#4233](https://github.com/facebook/docusaurus/pull/4233) fix(v2): website editUrl should target upstream docs ([@slorber](https://github.com/slorber))\\n - [#4067](https://github.com/facebook/docusaurus/pull/4067) fix(v2): Fix blog post url/date ([@slorber](https://github.com/slorber))\\n - [#3952](https://github.com/facebook/docusaurus/pull/3952) docs(v2): Fix invalid json ([@oze4](https://github.com/oze4))\\n- `docusaurus-theme-search-algolia`\\n - [#4188](https://github.com/facebook/docusaurus/pull/4188) fix(v2): prepend docsearch modal to body element ([@lex111](https://github.com/lex111))\\n - [#4154](https://github.com/facebook/docusaurus/pull/4154) fix(v2): add base url to opensearch.xml ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-ideal-image`\\n - [#4166](https://github.com/facebook/docusaurus/pull/4166) fix(v2): ideal image assets should be served under ./assets ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-common`\\n - [#4092](https://github.com/facebook/docusaurus/pull/4092) fix(v2): fix/enhance minor i18n issues reported ([@slorber](https://github.com/slorber))\\n - [#3940](https://github.com/facebook/docusaurus/pull/3940) fix(v2): i18n should not crash theme without footer ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-sitemap`\\n - [#4004](https://github.com/facebook/docusaurus/pull/4004) fix(v2): Fix double trailingSlash in sitemap.xml ([@ntbosscher](https://github.com/ntbosscher))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils`\\n - [#3970](https://github.com/facebook/docusaurus/pull/3970) fix(v2): fix multi-instance mdx loaders not sandboxed correctly ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`\\n - [#3903](https://github.com/facebook/docusaurus/pull/3903) fix(v2): fix redirect toUrl (windows + trailing slash) ([@saydo17](https://github.com/saydo17))\\n- `docusaurus-utils`\\n - [#3944](https://github.com/facebook/docusaurus/pull/3944) fix(v2): ignore style imports in excerpt ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#4371](https://github.com/facebook/docusaurus/pull/4371) refactor(v2): update Russian translation in classic theme ([@lex111](https://github.com/lex111))\\n - [#4359](https://github.com/facebook/docusaurus/pull/4359) polish(v2): [theme-classic] slightly improve Japanese translation ([@MisterFISHUP](https://github.com/MisterFISHUP))\\n - [#4350](https://github.com/facebook/docusaurus/pull/4350) polish(v2): Updated theme label translations for Turkish ([@caglarturali](https://github.com/caglarturali))\\n - [#4351](https://github.com/facebook/docusaurus/pull/4351) polish(v2): add japanese translation for #4304 ([@ykzts](https://github.com/ykzts))\\n - [#4309](https://github.com/facebook/docusaurus/pull/4309) polish(v2): improved Farsi translation ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n - [#4279](https://github.com/facebook/docusaurus/pull/4279) polish(v2): theme default translations for language de / german ([@philipp985](https://github.com/philipp985))\\n - [#4275](https://github.com/facebook/docusaurus/pull/4275) polish(v2): Add more tags translations ([@slorber](https://github.com/slorber))\\n - [#4246](https://github.com/facebook/docusaurus/pull/4246) refactor(v2): add Russian translation for classic theme ([@lex111](https://github.com/lex111))\\n - [#4242](https://github.com/facebook/docusaurus/pull/4242) refactor(v2): use Link component for external links ([@lex111](https://github.com/lex111))\\n - [#4244](https://github.com/facebook/docusaurus/pull/4244) refactor(v2): clean-ups and fixes ([@lex111](https://github.com/lex111))\\n - [#4193](https://github.com/facebook/docusaurus/pull/4193) refactor(v2): update tabs to follow WAI-ARIA spec ([@lex111](https://github.com/lex111))\\n - [#4194](https://github.com/facebook/docusaurus/pull/4194) refactor(v2): use transform instead of top position for hideable navbar ([@lex111](https://github.com/lex111))\\n - [#4167](https://github.com/facebook/docusaurus/pull/4167) refactor(v2): minor styling improvements ([@lex111](https://github.com/lex111))\\n - [#4169](https://github.com/facebook/docusaurus/pull/4169) refactor(v2): remove delay after skip link pressed ([@lex111](https://github.com/lex111))\\n - [#4086](https://github.com/facebook/docusaurus/pull/4086) style(v2): add className to tab container ([@ArtFlag](https://github.com/ArtFlag))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#4352](https://github.com/facebook/docusaurus/pull/4352) refactor(v2): format last updated date using Intl ([@lex111](https://github.com/lex111))\\n - [#4243](https://github.com/facebook/docusaurus/pull/4243) refactor(v2): introduce Seo component for internal using ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-utils`\\n - [#4344](https://github.com/facebook/docusaurus/pull/4344) refactor(v2): format post date using Intl ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#4257](https://github.com/facebook/docusaurus/pull/4257) refactor(v2): improve notifier message ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#4219](https://github.com/facebook/docusaurus/pull/4219) refactor(v2): add more translatable strings ([@lex111](https://github.com/lex111))\\n- Other\\n - [#4074](https://github.com/facebook/docusaurus/pull/4074) polish(v2): improve codesandbox template package.json ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-debug`\\n - [#3953](https://github.com/facebook/docusaurus/pull/3953) refactor(v2): fix debug plugin name ([@RDIL](https://github.com/RDIL))\\n- `docusaurus-plugin-debug`, `docusaurus-theme-classic`\\n - [#3946](https://github.com/facebook/docusaurus/pull/3946) refactor(v2): minor a11y tweaks ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#4369](https://github.com/facebook/docusaurus/pull/4369) docs(v2): various improvements ([@lex111](https://github.com/lex111))\\n - [#4362](https://github.com/facebook/docusaurus/pull/4362) docs(v2): Add stryker-mutator.io to showcase ([@nicojs](https://github.com/nicojs))\\n - [#4354](https://github.com/facebook/docusaurus/pull/4354) docs(v2): add trpgengine showcase ([@moonrailgun](https://github.com/moonrailgun))\\n - [#4346](https://github.com/facebook/docusaurus/pull/4346) docs(v1): update phrasing for website dir relative to docs dir ([@aukokyong](https://github.com/aukokyong))\\n - [#4338](https://github.com/facebook/docusaurus/pull/4338) docs(v2): update showcase instruction regarding tags + fix site tags ([@slorber](https://github.com/slorber))\\n - [#4331](https://github.com/facebook/docusaurus/pull/4331) docs(v2): add ocpeasy to users ([@dbrrt](https://github.com/dbrrt))\\n - [#4307](https://github.com/facebook/docusaurus/pull/4307) docs(v2): Add RactivePlayer to showcase ([@ysulyma](https://github.com/ysulyma))\\n - [#4297](https://github.com/facebook/docusaurus/pull/4297) docs(v2): Fix examples by importing React ([@roydukkey](https://github.com/roydukkey))\\n - [#4296](https://github.com/facebook/docusaurus/pull/4296) docs(v2): move migrated sites from v1 to v2 showcase ([@lisa761](https://github.com/lisa761))\\n - [#4293](https://github.com/facebook/docusaurus/pull/4293) docs(v2): Added React Native ARIA to showcase ([@theankurkedia](https://github.com/theankurkedia))\\n - [#4284](https://github.com/facebook/docusaurus/pull/4284) docs(v2): Add AttoBot website to showcase page ([@wolf20482](https://github.com/wolf20482))\\n - [#4285](https://github.com/facebook/docusaurus/pull/4285) docs(v2): escape more jsx in mdx files for Crowdin ([@slorber](https://github.com/slorber))\\n - [#4283](https://github.com/facebook/docusaurus/pull/4283) docs(v2): Add Postgres.ai to showcase ([@NikolayS](https://github.com/NikolayS))\\n - [#4282](https://github.com/facebook/docusaurus/pull/4282) docs: update Netlify deploy status badge ([@slorber](https://github.com/slorber))\\n - [#4259](https://github.com/facebook/docusaurus/pull/4259) docs(v2): improve cli docs ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n - [#4266](https://github.com/facebook/docusaurus/pull/4266) docs(v2): update agilets banner ([@bennodev19](https://github.com/bennodev19))\\n - [#4263](https://github.com/facebook/docusaurus/pull/4263) docs(v2): remove npx and use github action to configure ssh key ([@MatanBobi](https://github.com/MatanBobi))\\n - [#4262](https://github.com/facebook/docusaurus/pull/4262) docs(v2): Added kotest to showcase ([@sksamuel](https://github.com/sksamuel))\\n - [#4256](https://github.com/facebook/docusaurus/pull/4256) docs(v2): Add docusaurus2-graphql-doc-generator to community resources ([@edno](https://github.com/edno))\\n - [#4252](https://github.com/facebook/docusaurus/pull/4252) docs(v2): Added mailgo to showcase ([@manzinello](https://github.com/manzinello))\\n - [#4251](https://github.com/facebook/docusaurus/pull/4251) docs(v2): Add Axioms to showcase ([@limkinZero](https://github.com/limkinZero))\\n - [#4237](https://github.com/facebook/docusaurus/pull/4237) docs(v2): Replace mbt-bundle by sicope-model ([@tienvx](https://github.com/tienvx))\\n - [#4236](https://github.com/facebook/docusaurus/pull/4236) docs(v2): v2 migration should mention RSS feed url change ([@slorber](https://github.com/slorber))\\n - [#4230](https://github.com/facebook/docusaurus/pull/4230) docs(v2): fix npm/yarn command example for swizzling TypeScript theme components ([@YashTotale](https://github.com/YashTotale))\\n - [#4229](https://github.com/facebook/docusaurus/pull/4229) docs(v2): Fix link to slash introduction svg ([@SamChou19815](https://github.com/SamChou19815))\\n - [#4226](https://github.com/facebook/docusaurus/pull/4226) docs(v2): Removing wrong parenthesis on image variable ([@juancarlosjr97](https://github.com/juancarlosjr97))\\n - [#4225](https://github.com/facebook/docusaurus/pull/4225) docs(v2): added Apache APISIX ([@juzhiyuan](https://github.com/juzhiyuan))\\n - [#4224](https://github.com/facebook/docusaurus/pull/4224) docs(v2): Add MikroORM site to showcase page ([@B4nan](https://github.com/B4nan))\\n - [#4220](https://github.com/facebook/docusaurus/pull/4220) Add WebdriverIO docs page as showcase ([@christian-bromann](https://github.com/christian-bromann))\\n - [#4210](https://github.com/facebook/docusaurus/pull/4210) misc: add requirements for sites being added to showcase ([@lex111](https://github.com/lex111))\\n - [#4207](https://github.com/facebook/docusaurus/pull/4207) docs(v2): Added Console Table Documentation Site to showcase ([@ayonious](https://github.com/ayonious))\\n - [#4204](https://github.com/facebook/docusaurus/pull/4204) docs(v1): fixing a broken link in blog posts ([@ayonious](https://github.com/ayonious))\\n - [#4178](https://github.com/facebook/docusaurus/pull/4178) docs(v2): localize 404 page with Netlify + docs ([@slorber](https://github.com/slorber))\\n - [#4177](https://github.com/facebook/docusaurus/pull/4177) docs(v2): Add docusaurus-plugin-remote-content to resources list ([@RDIL](https://github.com/RDIL))\\n - [#4172](https://github.com/facebook/docusaurus/pull/4172) docs(v2): Add react-hooks.org to showcase ([@imbhargav5](https://github.com/imbhargav5))\\n - [#4173](https://github.com/facebook/docusaurus/pull/4173) docs(v2): typo fixing double colon ([@ayonious](https://github.com/ayonious))\\n - [#4164](https://github.com/facebook/docusaurus/pull/4164) docs(v2): add a note for images not rendered on dev server ([@yuval-hazaz](https://github.com/yuval-hazaz))\\n - [#4161](https://github.com/facebook/docusaurus/pull/4161) docs(v2): Add docusaurus-theme-github-codeblock ([@christian-bromann](https://github.com/christian-bromann))\\n - [#4158](https://github.com/facebook/docusaurus/pull/4158) docs(v2): improve bad static assets doc + remove some useless useBaseUrl usage ([@slorber](https://github.com/slorber))\\n - [#4144](https://github.com/facebook/docusaurus/pull/4144) docs(v2): community docs typo fix ([@ayonious](https://github.com/ayonious))\\n - [#4143](https://github.com/facebook/docusaurus/pull/4143) docs(v2): guide docs typo fix ([@ayonious](https://github.com/ayonious))\\n - [#4141](https://github.com/facebook/docusaurus/pull/4141) docs(v2): plugins docs typo fix ([@ayonious](https://github.com/ayonious))\\n - [#4139](https://github.com/facebook/docusaurus/pull/4139) docs(v2): Add Rematch site to showcase page ([@semoal](https://github.com/semoal))\\n - [#4128](https://github.com/facebook/docusaurus/pull/4128) docs(v2): remove duplicate link from docs about Docusaurus1 ([@ayonious](https://github.com/ayonious))\\n - [#4129](https://github.com/facebook/docusaurus/pull/4129) docs(v2): typo fix in Migration Docs ([@ayonious](https://github.com/ayonious))\\n - [#4127](https://github.com/facebook/docusaurus/pull/4127) docs(v2): remove unnecessary brace from installation doc ([@ayonious](https://github.com/ayonious))\\n - [#4130](https://github.com/facebook/docusaurus/pull/4130) docs(v2): typo in i18n docs ([@ayonious](https://github.com/ayonious))\\n - [#4112](https://github.com/facebook/docusaurus/pull/4112) docs(v2): Do not encourage using the permalink prop ([@slorber](https://github.com/slorber))\\n - [#4106](https://github.com/facebook/docusaurus/pull/4106) docs(v2): update broken link on resources page ([@eric-hc](https://github.com/eric-hc))\\n - [#4084](https://github.com/facebook/docusaurus/pull/4084) docs(v2): Use the TOCInline component in config doc ([@slorber](https://github.com/slorber))\\n - [#4020](https://github.com/facebook/docusaurus/pull/4020) docs(v2): 2020 recap blog post ([@slorber](https://github.com/slorber))\\n - [#4009](https://github.com/facebook/docusaurus/pull/4009) docs(v2): add hideableSidebar option to config demo ([@natac13](https://github.com/natac13))\\n - [#4062](https://github.com/facebook/docusaurus/pull/4062) docs(v2): Add codesandbox integration ([@sammychinedu2ky](https://github.com/sammychinedu2ky))\\n - [#4058](https://github.com/facebook/docusaurus/pull/4058) docs(v2): Include new.docusaurus.io CodeSandbox in issue templates + README ([@slorber](https://github.com/slorber))\\n - [#4053](https://github.com/facebook/docusaurus/pull/4053) docs(v2): Add Eightshift Docs site to showcase page ([@iruzevic](https://github.com/iruzevic))\\n - [#4048](https://github.com/facebook/docusaurus/pull/4048) docs(v1): Docker: remind the user to use the --host flag ([@tomsfernandez](https://github.com/tomsfernandez))\\n - [#4047](https://github.com/facebook/docusaurus/pull/4047) docs(v1): version page should recommend v2 ([@slorber](https://github.com/slorber))\\n - [#4046](https://github.com/facebook/docusaurus/pull/4046) docs(v2): add sciwp to showcase ([@edulazaro](https://github.com/edulazaro))\\n - [#4036](https://github.com/facebook/docusaurus/pull/4036) docs(v2): Add Nodify to showcase ([@miroiu](https://github.com/miroiu))\\n - [#4038](https://github.com/facebook/docusaurus/pull/4038) docs(v1): suggest to use Docusaurus 2 even for non-FB websites ([@slorber](https://github.com/slorber))\\n - [#4026](https://github.com/facebook/docusaurus/pull/4026) docs(v2): Add FlexIt to showcase ([@ataft](https://github.com/ataft))\\n - [#4022](https://github.com/facebook/docusaurus/pull/4022) docs: fix typo from \'dissapear\' to \'disappear\' ([@vamsi3](https://github.com/vamsi3))\\n - [#4002](https://github.com/facebook/docusaurus/pull/4002) docs(v2): Add how to run your own DocSearch ([@TheodoreChu](https://github.com/TheodoreChu))\\n - [#3997](https://github.com/facebook/docusaurus/pull/3997) docs(v2): Add Datagit site to showcase page ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n - [#3990](https://github.com/facebook/docusaurus/pull/3990) docs(v2): Add wiki-powerto site showcase ([@linyuxuanlin](https://github.com/linyuxuanlin))\\n - [#3991](https://github.com/facebook/docusaurus/pull/3991) docs(v2): add overwriting css variables for dark mode ([@natac13](https://github.com/natac13))\\n - [#3987](https://github.com/facebook/docusaurus/pull/3987) docs(v2): Add AgileTs site to showcase page ([@bennodev19](https://github.com/bennodev19))\\n - [#3978](https://github.com/facebook/docusaurus/pull/3978) docs(v2): Add documentation for docs multi-instance support ([@slorber](https://github.com/slorber))\\n - [#3977](https://github.com/facebook/docusaurus/pull/3977) docs(v2): nudge users to add site to showcase ([@slorber](https://github.com/slorber))\\n - [#3975](https://github.com/facebook/docusaurus/pull/3975) docs(v2): Reorganize/split the guides doc / markdown sections ([@slorber](https://github.com/slorber))\\n - [#3976](https://github.com/facebook/docusaurus/pull/3976) docs(v2): Add AI-Speaker site to showcase page ([@asystentka-jolka](https://github.com/asystentka-jolka))\\n - [#3974](https://github.com/facebook/docusaurus/pull/3974) docs(v2): doc typo on sidebar admonition ([@slorber](https://github.com/slorber))\\n - [#3962](https://github.com/facebook/docusaurus/pull/3962) docs(v2): Add migration info doc regarding docs folder location ([@slorber](https://github.com/slorber))\\n - [#3950](https://github.com/facebook/docusaurus/pull/3950) docs(v2): update GitHub entreprise deployment doc ([@samhrncir](https://github.com/samhrncir))\\n - [#3945](https://github.com/facebook/docusaurus/pull/3945) docs(v2): Added information about setting `/` in routeBasePath ([@Siemienik](https://github.com/Siemienik))\\n- `docusaurus-theme-classic`\\n - [#4356](https://github.com/facebook/docusaurus/pull/4356) polish(v2): [theme-classic] add Chinese translations (zh-Hant & zh-Hans) ([@MisterFISHUP](https://github.com/MisterFISHUP))\\n- `docusaurus`\\n - [#4126](https://github.com/facebook/docusaurus/pull/4126) docs(v2): do not recommend using useBaseUrl() hook in most cases ([@slorber](https://github.com/slorber))\\n - [#4049](https://github.com/facebook/docusaurus/pull/4049) docs(v1): version page should recommend v2 (bis) ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-theme-classic`, `docusaurus`\\n - [#4014](https://github.com/facebook/docusaurus/pull/4014) docs(v2): i18n doc + polish ([@slorber](https://github.com/slorber))\\n- `docusaurus-cssnano-preset`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-bootstrap`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`, `stylelint-copyright`\\n - [#4034](https://github.com/facebook/docusaurus/pull/4034) docs(v2): Add READMEs to v2 packages ([@RDIL](https://github.com/RDIL))\\n- `docusaurus-init`\\n - [#3881](https://github.com/facebook/docusaurus/pull/3881) docs(v2): update FB OSS logo ([@Simek](https://github.com/Simek))\\n\\n## :house: Internal\\n\\n- Other\\n - [#4372](https://github.com/facebook/docusaurus/pull/4372) chore(v1): release docusaurus v1.14.7 ([@slorber](https://github.com/slorber))\\n - [#4368](https://github.com/facebook/docusaurus/pull/4368) chore(deps): bump elliptic from 6.5.3 to 6.5.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#4365](https://github.com/facebook/docusaurus/pull/4365) chore: unstable yarnlock ([@slorber](https://github.com/slorber))\\n - [#4337](https://github.com/facebook/docusaurus/pull/4337) misc: restore build size bot ([@slorber](https://github.com/slorber))\\n - [#4289](https://github.com/facebook/docusaurus/pull/4289) chore(v2): remove docs for alpha v69 ([@lex111](https://github.com/lex111))\\n - [#4253](https://github.com/facebook/docusaurus/pull/4253) chore(v2): remove docs for alpha v68 ([@lex111](https://github.com/lex111))\\n - [#4248](https://github.com/facebook/docusaurus/pull/4248) chore(v2): Fix build size bot ([@slorber](https://github.com/slorber))\\n - [#4214](https://github.com/facebook/docusaurus/pull/4214) chore(v2): setup for i18n staging deployment ([@slorber](https://github.com/slorber))\\n - [#4159](https://github.com/facebook/docusaurus/pull/4159) chore(v2): fix build size bot again ([@slorber](https://github.com/slorber))\\n - [#4156](https://github.com/facebook/docusaurus/pull/4156) chore(v2): fix build size bot monitoring of js/css assets ([@slorber](https://github.com/slorber))\\n - [#4100](https://github.com/facebook/docusaurus/pull/4100) chore(v2): remove docs for alpha v66 ([@lex111](https://github.com/lex111))\\n - [#4077](https://github.com/facebook/docusaurus/pull/4077) chore(v2): fix unstable master yarn.lock ([@slorber](https://github.com/slorber))\\n - [#4063](https://github.com/facebook/docusaurus/pull/4063) chore(v2): Regen codesandbox templates + add template: \\"docusaurus\\" ([@slorber](https://github.com/slorber))\\n - [#4056](https://github.com/facebook/docusaurus/pull/4056) chore(v2): update codesandbox redirect ([@slorber](https://github.com/slorber))\\n - [#4041](https://github.com/facebook/docusaurus/pull/4041) chore(v1): revert v1 netlify.toml ([@slorber](https://github.com/slorber))\\n - [#4040](https://github.com/facebook/docusaurus/pull/4040) chore(v1): upgrade v1 Crowdin cli + CI config ([@slorber](https://github.com/slorber))\\n - [#4030](https://github.com/facebook/docusaurus/pull/4030) chore(v2): install Crowdin cli through npm package ([@slorber](https://github.com/slorber))\\n - [#4003](https://github.com/facebook/docusaurus/pull/4003) chore: add DevContainer config for GitHub codespaces ([@kumaraditya303](https://github.com/kumaraditya303))\\n - [#4001](https://github.com/facebook/docusaurus/pull/4001) chore(v2): Upgrade crowdin ([@slorber](https://github.com/slorber))\\n - [#3995](https://github.com/facebook/docusaurus/pull/3995) chore(v2): remove docs for alpha v65 ([@lex111](https://github.com/lex111))\\n - [#3960](https://github.com/facebook/docusaurus/pull/3960) fix(v2): remove duplicate section on Versions page ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#4370](https://github.com/facebook/docusaurus/pull/4370) chore(v2): update infima ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#4361](https://github.com/facebook/docusaurus/pull/4361) refactor(v2): remove duplicated lodash dependencies and import only what needed ([@armano2](https://github.com/armano2))\\n- `docusaurus-1.x`, `docusaurus`\\n - [#4270](https://github.com/facebook/docusaurus/pull/4270) chore(v2): upgrade react-dev-utils ([@yangshun](https://github.com/yangshun))\\n- `docusaurus-init`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-types`, `docusaurus`\\n - [#4264](https://github.com/facebook/docusaurus/pull/4264) chore(v2): bump/align deps in monorepo: commander, semver, fs-extra ([@Simek](https://github.com/Simek))\\n- `docusaurus`\\n - [#4265](https://github.com/facebook/docusaurus/pull/4265) chore(v2): PostCSS peer dep fix ([@RDIL](https://github.com/RDIL))\\n - [#4091](https://github.com/facebook/docusaurus/pull/4091) refactor(v2): Switch from inquirer to prompts ([@RDIL](https://github.com/RDIL))\\n - [#4066](https://github.com/facebook/docusaurus/pull/4066) chore(v2): Update a few dependencies ([@RDIL](https://github.com/RDIL))\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#4148](https://github.com/facebook/docusaurus/pull/4148) chore(v2): upgrade dependencies ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-pwa`\\n - [#4120](https://github.com/facebook/docusaurus/pull/4120) chore(v2): Update workbox to v6 ([@RDIL](https://github.com/RDIL))\\n- `docusaurus-utils`, `docusaurus`\\n - [#4081](https://github.com/facebook/docusaurus/pull/4081) chore(v2): Update webpack-related dependencies, pre-work to migrate to Webpack 5 ([@RDIL](https://github.com/RDIL))\\n- `docusaurus-init`, `docusaurus`\\n - [#4012](https://github.com/facebook/docusaurus/pull/4012) chore(v2): docusaurus-init: switch from inquirer to prompts ([@RDIL](https://github.com/RDIL))\\n- `docusaurus-plugin-sitemap`\\n - [#4005](https://github.com/facebook/docusaurus/pull/4005) chore(v2): prettier fixes ([@slorber](https://github.com/slorber))\\n- `docusaurus-migrate`\\n - [#3988](https://github.com/facebook/docusaurus/pull/3988) chore(v2): fix date-sensitive test fixture ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-utils`, `docusaurus`, `stylelint-copyright`\\n - [#3959](https://github.com/facebook/docusaurus/pull/3959) chore(v2): fix windows Jest tests ([@slorber](https://github.com/slorber))\\n\\n## :running: Performance\\n\\n- `docusaurus-cssnano-preset`, `docusaurus-plugin-content-blog`, `docusaurus`\\n - [#4355](https://github.com/facebook/docusaurus/pull/4355) perf(v2): improve blog mdx-loader and postcss loader ([@lex111](https://github.com/lex111))\\n\\n## Committers: 70\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Ali Saki ([@3alisaki](https://github.com/3alisaki))\\n- Andrew Taft ([@ataft](https://github.com/ataft))\\n- Ankur Kedia ([@theankurkedia](https://github.com/theankurkedia))\\n- Apurva Ojas ([@apurvaojas](https://github.com/apurvaojas))\\n- Armano ([@armano2](https://github.com/armano2))\\n- Arthur ([@ArtFlag](https://github.com/ArtFlag))\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- Ben ([@ben-qnimble](https://github.com/ben-qnimble))\\n- BennoDev ([@bennodev19](https://github.com/bennodev19))\\n- Bhargav Ponnapalli ([@imbhargav5](https://github.com/imbhargav5))\\n- Christian Bromann ([@christian-bromann](https://github.com/christian-bromann))\\n- David Barrat ([@dbrrt](https://github.com/dbrrt))\\n- Eduardo L\xe1zaro ([@edulazaro](https://github.com/edulazaro))\\n- Eric Carboni ([@eric-hc](https://github.com/eric-hc))\\n- Gr\xe9gory Heitz ([@edno](https://github.com/edno))\\n- Ivan Ru\u017Eevi\u0107 ([@iruzevic](https://github.com/iruzevic))\\n- Jessica Lin ([@jlin27](https://github.com/jlin27))\\n- Joel M ([@9oelM](https://github.com/9oelM))\\n- Joel Marcey ([@JoelMarcey](https://github.com/JoelMarcey))\\n- Jola ([@asystentka-jolka](https://github.com/asystentka-jolka))\\n- Juan Carlos Blanco Delgado ([@juancarlosjr97](https://github.com/juancarlosjr97))\\n- Kevin Viglucci ([@viglucci](https://github.com/viglucci))\\n- Kumar Aditya ([@kumaraditya303](https://github.com/kumaraditya303))\\n- Lisa Chandra ([@lisa761](https://github.com/lisa761))\\n- LittleboyHarry ([@LittleboyHarry](https://github.com/LittleboyHarry))\\n- Long Ho ([@longlho](https://github.com/longlho))\\n- Martin Ad\xe1mek ([@B4nan](https://github.com/B4nan))\\n- Massoud Maboudi ([@massoudmaboudi](https://github.com/massoudmaboudi))\\n- Matan Borenkraout ([@MatanBobi](https://github.com/MatanBobi))\\n- Matt Oestreich ([@oze4](https://github.com/oze4))\\n- Matteo Manzinello ([@manzinello](https://github.com/manzinello))\\n- Miroiu Emanuel ([@miroiu](https://github.com/miroiu))\\n- Mohd Shad Mirza ([@iamshadmirza](https://github.com/iamshadmirza))\\n- Nahiyan Kamal ([@ayonious](https://github.com/ayonious))\\n- Nathan Bosscher ([@ntbosscher](https://github.com/ntbosscher))\\n- Nico Jansen ([@nicojs](https://github.com/nicojs))\\n- Nikolay Samokhvalov ([@NikolayS](https://github.com/NikolayS))\\n- Pablo Vidal ([@limkinZero](https://github.com/limkinZero))\\n- Power Lin ([@linyuxuanlin](https://github.com/linyuxuanlin))\\n- Reece Dunham ([@RDIL](https://github.com/RDIL))\\n- Saihajpreet Singh ([@saihaj](https://github.com/saihaj))\\n- Sam Hrncir ([@samhrncir](https://github.com/samhrncir))\\n- Sam Sam ([@sksamuel](https://github.com/sksamuel))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- Sean Campbell ([@natac13](https://github.com/natac13))\\n- Sergio Moreno ([@semoal](https://github.com/semoal))\\n- Siemienik Pawel ([@Siemienik](https://github.com/Siemienik))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Theodore Chu ([@TheodoreChu](https://github.com/TheodoreChu))\\n- Tien Vo Xuan ([@tienvx](https://github.com/tienvx))\\n- Tomas Fernandez ([@tomsfernandez](https://github.com/tomsfernandez))\\n- Vamsi Krishna Reddy Satti ([@vamsi3](https://github.com/vamsi3))\\n- Welly ([@wellyshen](https://github.com/wellyshen))\\n- Yamagishi Kazutoshi ([@ykzts](https://github.com/ykzts))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- Yash Totale ([@YashTotale](https://github.com/YashTotale))\\n- Yuri Sulyma ([@ysulyma](https://github.com/ysulyma))\\n- Yuval Hazaz ([@yuval-hazaz](https://github.com/yuval-hazaz))\\n- [@MisterFISHUP](https://github.com/MisterFISHUP)\\n- [@aukokyong](https://github.com/aukokyong)\\n- [@philipp985](https://github.com/philipp985)\\n- [@roydukkey](https://github.com/roydukkey)\\n- [@sammychinedu2ky](https://github.com/sammychinedu2ky)\\n- [@saydo17](https://github.com/saydo17)\\n- [@tokarchyn](https://github.com/tokarchyn)\\n- [@wolf20482](https://github.com/wolf20482)\\n- moonrailgun ([@moonrailgun](https://github.com/moonrailgun))\\n- \xc7a\u011Flar Tural\u0131 ([@caglarturali](https://github.com/caglarturali))\\n- \u741A\u81F4\u8FDC ([@juzhiyuan](https://github.com/juzhiyuan))"},{"id":"/2.0.0-alpha.70","metadata":{"permalink":"/changelog/2.0.0-alpha.70","source":"@site/changelog/source/2.0.0-alpha.70.md","title":"2.0.0-alpha.70","description":"New Feature","date":"2020-12-17T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Aar\xf3n Garc\xeda Herv\xe1s","alias":"aarongarciah","url":"https://github.com/aarongarciah","imageURL":"https://github.com/aarongarciah.png","key":"aarongarciah","page":null},{"name":"hackerman","alias":"aeneasr","url":"https://github.com/aeneasr","imageURL":"https://github.com/aeneasr.png","key":"aeneasr","page":null},{"name":"Alex1304","alias":"Alex1304","url":"https://github.com/Alex1304","imageURL":"https://github.com/Alex1304.png","key":"Alex1304","page":null},{"name":"Arthur","alias":"ArtFlag","url":"https://github.com/ArtFlag","imageURL":"https://github.com/ArtFlag.png","key":"ArtFlag","page":null},{"name":"borool","alias":"borool","url":"https://github.com/borool","imageURL":"https://github.com/borool.png","key":"borool","page":null},{"name":"Cindy Gu","alias":"cindygu4","url":"https://github.com/cindygu4","imageURL":"https://github.com/cindygu4.png","key":"cindygu4","page":null},{"name":"davidmauskop","alias":"davidmauskop","url":"https://github.com/davidmauskop","imageURL":"https://github.com/davidmauskop.png","key":"davidmauskop","page":null},{"name":"Derric Gilling","alias":"dgilling","url":"https://github.com/dgilling","imageURL":"https://github.com/dgilling.png","key":"dgilling","page":null},{"name":"Fran\xe7ois Chalifour","alias":"francoischalifour","url":"https://github.com/francoischalifour","imageURL":"https://github.com/francoischalifour.png","key":"francoischalifour","page":null},{"name":"Hadrien Milano","alias":"hmil","url":"https://github.com/hmil","imageURL":"https://github.com/hmil.png","key":"hmil","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Lo\xefc Poullain","alias":"LoicPoullain","url":"https://github.com/LoicPoullain","imageURL":"https://github.com/LoicPoullain.png","key":"LoicPoullain","page":null},{"name":"Matteo Manzinello","alias":"manzinello","url":"https://github.com/manzinello","imageURL":"https://github.com/manzinello.png","key":"manzinello","page":null},{"name":"Matija Sosic","alias":"matijaSos","url":"https://github.com/matijaSos","imageURL":"https://github.com/matijaSos.png","key":"matijaSos","page":null},{"name":"M\xe9ril","alias":"mpsq","url":"https://github.com/mpsq","imageURL":"https://github.com/mpsq.png","key":"mpsq","page":null},{"name":"Oliver Ullman","alias":"oriooctopus","url":"https://github.com/oriooctopus","imageURL":"https://github.com/oriooctopus.png","key":"oriooctopus","page":null},{"name":"Rami","alias":"Romstar","url":"https://github.com/Romstar","imageURL":"https://github.com/Romstar.png","key":"Romstar","page":null},{"name":"Sarthak kundra","alias":"sarthakkundra","url":"https://github.com/sarthakkundra","imageURL":"https://github.com/sarthakkundra.png","key":"sarthakkundra","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"Kaartic Sivaraam","alias":"sivaraam","url":"https://github.com/sivaraam","imageURL":"https://github.com/sivaraam.png","key":"sivaraam","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Varshit Shah","alias":"Varshit07","url":"https://github.com/Varshit07","imageURL":"https://github.com/Varshit07.png","key":"Varshit07","page":null},{"name":"Stephen Woodruff","alias":"woodrufs","url":"https://github.com/woodrufs","imageURL":"https://github.com/woodrufs.png","key":"woodrufs","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-12-17T20:00","authors":["aarongarciah","aeneasr","Alex1304","ArtFlag","borool","cindygu4","davidmauskop","dgilling","francoischalifour","hmil","lex111","LoicPoullain","manzinello","matijaSos","mpsq","oriooctopus","Romstar","sarthakkundra","Simek","sivaraam","slorber","Varshit07","woodrufs"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.71","permalink":"/changelog/2.0.0-alpha.71"},"nextItem":{"title":"2.0.0-alpha.69","permalink":"/changelog/2.0.0-alpha.69"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus`\\n - [#3932](https://github.com/facebook/docusaurus/pull/3932) feat(v2): Add Root theme element ([@slorber](https://github.com/slorber))\\n- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#3916](https://github.com/facebook/docusaurus/pull/3916) feat(v2): Add localeDropdown navbar item type + i18n localeConfigs field ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-types`\\n - [#3904](https://github.com/facebook/docusaurus/pull/3904) feat(v2): inline table-of-contents + refactor TOC ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#3888](https://github.com/facebook/docusaurus/pull/3888) feat(v2): add custom props for consumption by swizzled sidebar ([@oriooctopus](https://github.com/oriooctopus))\\n- `docusaurus-plugin-content-blog`\\n - [#3842](https://github.com/facebook/docusaurus/pull/3842) feat(v2): enable feeds by default in blog plugin ([@cindygu4](https://github.com/cindygu4))\\n- Other\\n - [#3827](https://github.com/facebook/docusaurus/pull/3827) feat(v2): add automated canary releases ([@slorber](https://github.com/slorber))\\n - [#3761](https://github.com/facebook/docusaurus/pull/3761) feat(v2): Added Lighthouse CI to PR checks ([@sarthakkundra](https://github.com/sarthakkundra))\\n- `docusaurus-1.x`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#3325](https://github.com/facebook/docusaurus/pull/3325) feat(v2): core v2 i18n support + Docusaurus site Crowdin integration ([@slorber](https://github.com/slorber))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-types`\\n - [#3904](https://github.com/facebook/docusaurus/pull/3904) feat(v2): inline table-of-contents + refactor TOC ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`\\n - [#3842](https://github.com/facebook/docusaurus/pull/3842) feat(v2): enable feeds by default in blog plugin ([@cindygu4](https://github.com/cindygu4))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#3922](https://github.com/facebook/docusaurus/pull/3922) fix(v2): fix navbar items issue on Windows? ([@slorber](https://github.com/slorber))\\n - [#3920](https://github.com/facebook/docusaurus/pull/3920) fix(v2): i18n translation extractor should handle JSX formatting edge cases better ([@slorber](https://github.com/slorber))\\n - [#3896](https://github.com/facebook/docusaurus/pull/3896) fix(v2): do not treat at-rules during CSS minification ([@lex111](https://github.com/lex111))\\n - [#3869](https://github.com/facebook/docusaurus/pull/3869) fix(v2): load plugin commands async to fix broken plugin CLI commands `docs:version` ([@aeneasr](https://github.com/aeneasr))\\n- `docusaurus-theme-classic`\\n - [#3921](https://github.com/facebook/docusaurus/pull/3921) fix(v2): remove useless console log ([@slorber](https://github.com/slorber))\\n - [#3895](https://github.com/facebook/docusaurus/pull/3895) fix(v2): use proper element for pagination nav label ([@lex111](https://github.com/lex111))\\n - [#3882](https://github.com/facebook/docusaurus/pull/3882) fix(v2): improve Footer structure, add class names, use Infima transition ([@Simek](https://github.com/Simek))\\n - [#3877](https://github.com/facebook/docusaurus/pull/3877) fix(v2): dynamic dark mode detection without toggle widget ([@hmil](https://github.com/hmil))\\n - [#3854](https://github.com/facebook/docusaurus/pull/3854) fix(v2): refactor icons in theme-classic, fix swizzle issue ([@Simek](https://github.com/Simek))\\n - [#3823](https://github.com/facebook/docusaurus/pull/3823) fix(v2): support rendering of singular tabs ([@aeneasr](https://github.com/aeneasr))\\n - [#3817](https://github.com/facebook/docusaurus/pull/3817) fix(v2): Allow footer logo at attribute to be empty ([@aarongarciah](https://github.com/aarongarciah))\\n- `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`\\n - [#3900](https://github.com/facebook/docusaurus/pull/3900) fix(v2): correct typo in metas generated for Twitter cards ([@mpsq](https://github.com/mpsq))\\n- Other\\n - [#3872](https://github.com/facebook/docusaurus/pull/3872) chore: add missing v1 generated files to ignores ([@Simek](https://github.com/Simek))\\n - [#3833](https://github.com/facebook/docusaurus/pull/3833) fix(v2): temporary: disable crowdin until PR env variable permission fixed ([@slorber](https://github.com/slorber))\\n- `stylelint-copyright`\\n - [#3852](https://github.com/facebook/docusaurus/pull/3852) fix(v2): to fix the canary release GH workflow ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-search-algolia`\\n - [#3853](https://github.com/facebook/docusaurus/pull/3853) fix(v2): fix DocSearch keyboard navigator ([@francoischalifour](https://github.com/francoischalifour))\\n - [#3837](https://github.com/facebook/docusaurus/pull/3837) fix(v2): update SearchPage styling, fix appearance in dark mode ([@Simek](https://github.com/Simek))\\n - [#3828](https://github.com/facebook/docusaurus/pull/3828) fix(v2): restore Algolia search ([@lex111](https://github.com/lex111))\\n - [#3819](https://github.com/facebook/docusaurus/pull/3819) feat(search): update DocSearch to alpha.31 ([@francoischalifour](https://github.com/francoischalifour))\\n- `docusaurus-plugin-content-docs`\\n - [#3839](https://github.com/facebook/docusaurus/pull/3839) fix(v2): remove unnecessary backtick in output ([@sivaraam](https://github.com/sivaraam))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#3829](https://github.com/facebook/docusaurus/pull/3829) fix(v2): fix search ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus`\\n - [#3824](https://github.com/facebook/docusaurus/pull/3824) fix(v2): update notifier dist tag ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus`\\n - [#3880](https://github.com/facebook/docusaurus/pull/3880) polish(v2): improve docusaurus deploy logs ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- [#3931](https://github.com/facebook/docusaurus/pull/3931) docs(v2): blog.md with docs: false, for blog-only mode ([@Romstar](https://github.com/Romstar))\\n- [#3924](https://github.com/facebook/docusaurus/pull/3924) docs(v2): Removed unnecessary closing parenthesis ([@Varshit07](https://github.com/Varshit07))\\n- [#3928](https://github.com/facebook/docusaurus/pull/3928) docs(v2): add FoalTS to showcase page ([@LoicPoullain](https://github.com/LoicPoullain))\\n- [#3899](https://github.com/facebook/docusaurus/pull/3899) docs(v2): Move sidebar content to its own page ([@ArtFlag](https://github.com/ArtFlag))\\n- [#3856](https://github.com/facebook/docusaurus/pull/3856) docs(v2): typo ([@borool](https://github.com/borool))\\n- [#3891](https://github.com/facebook/docusaurus/pull/3891) docs(v2): Wrap section about custom domains in :::info ([@Alex1304](https://github.com/Alex1304))\\n- [#3871](https://github.com/facebook/docusaurus/pull/3871) docs(v2): missing `<ColorGenerator/>` mdx import ([@slorber](https://github.com/slorber))\\n- [#3873](https://github.com/facebook/docusaurus/pull/3873) docs(v2): From docusaurus-migrate to @docusaurus/migrate ([@manzinello](https://github.com/manzinello))\\n- [#3867](https://github.com/facebook/docusaurus/pull/3867) docs(v2): Add docusaurus-plugin-moesif to community plugins ([@dgilling](https://github.com/dgilling))\\n- [#3851](https://github.com/facebook/docusaurus/pull/3851) docs(v2): Fixed Typo: Hided => Hidden ([@woodrufs](https://github.com/woodrufs))\\n- [#3832](https://github.com/facebook/docusaurus/pull/3832) docs(v2): Add wasp to showcase ([@matijaSos](https://github.com/matijaSos))\\n- [#3813](https://github.com/facebook/docusaurus/pull/3813) docs(v2): render deployment doc ([@davidmauskop](https://github.com/davidmauskop))\\n- [#3835](https://github.com/facebook/docusaurus/pull/3835) docs(v2): update Client API docs page ([@Simek](https://github.com/Simek))\\n- [#3831](https://github.com/facebook/docusaurus/pull/3831) docs(v2): Docs refactoring and reorganization ([@slorber](https://github.com/slorber))\\n\\n## :house: Internal\\n\\n- Other\\n - [#3912](https://github.com/facebook/docusaurus/pull/3912) chore(v2): remove docs for alpha v64 ([@lex111](https://github.com/lex111))\\n - [#3907](https://github.com/facebook/docusaurus/pull/3907) chore(ci): fix canary release filtering ([@slorber](https://github.com/slorber))\\n - [#3902](https://github.com/facebook/docusaurus/pull/3902) chore(deps): bump ini from 1.3.5 to 1.3.7 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#3884](https://github.com/facebook/docusaurus/pull/3884) chore(ci): increase Lighthouse CI max_timeout ([@Simek](https://github.com/Simek))\\n - [#3883](https://github.com/facebook/docusaurus/pull/3883) chore(v2): remove docs for alpha v62-63 ([@lex111](https://github.com/lex111))\\n - [#3863](https://github.com/facebook/docusaurus/pull/3863) chore(ci): run V1 Build and Migration CLI tests conditionally on CI ([@Simek](https://github.com/Simek))\\n - [#3861](https://github.com/facebook/docusaurus/pull/3861) chore(ci): reduce number of jobs, remove build from lighthouse pipeline ([@Simek](https://github.com/Simek))\\n - [#3860](https://github.com/facebook/docusaurus/pull/3860) chore: add Yarn v2 cache directory to ignores ([@Simek](https://github.com/Simek))\\n - [#3858](https://github.com/facebook/docusaurus/pull/3858) chore(v2): disable Crowdin for deploy previews ([@slorber](https://github.com/slorber))\\n - [#3857](https://github.com/facebook/docusaurus/pull/3857) fix(v2): fix Crowdin ci commands ([@slorber](https://github.com/slorber))\\n - [#3849](https://github.com/facebook/docusaurus/pull/3849) chore(ci): CI scripts cleanup, add Node 14 runs, bump checkout action ([@Simek](https://github.com/Simek))\\n - [#3850](https://github.com/facebook/docusaurus/pull/3850) chore(v2): i18n CI: add write-translations call ([@slorber](https://github.com/slorber))\\n - [#3848](https://github.com/facebook/docusaurus/pull/3848) chore(v2): fix CI typo ([@slorber](https://github.com/slorber))\\n - [#3847](https://github.com/facebook/docusaurus/pull/3847) chore(v2): wire production Crowdin project + setup ([@slorber](https://github.com/slorber))\\n - [#3846](https://github.com/facebook/docusaurus/pull/3846) chore(v2): fix PRs not able to add lighthouse/buildsize comment from works ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`\\n - [#3865](https://github.com/facebook/docusaurus/pull/3865) chore(v2): fix ignore paths and Prettier commands in themes ([@Simek](https://github.com/Simek))\\n- `docusaurus-cssnano-preset`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`\\n - [#3844](https://github.com/facebook/docusaurus/pull/3844) chore(v2): fix several lint warnings, add missing types, cleanup ([@Simek](https://github.com/Simek))\\n- `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`\\n - [#3838](https://github.com/facebook/docusaurus/pull/3838) refactor(v2): extract site title formatter to theme-common util ([@Simek](https://github.com/Simek))\\n\\n## Committers: 23\\n\\n- Aar\xf3n Garc\xeda Herv\xe1s ([@aarongarciah](https://github.com/aarongarciah))\\n- Alex1304 ([@Alex1304](https://github.com/Alex1304))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Arthur ([@ArtFlag](https://github.com/ArtFlag))\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- Cindy Gu ([@cindygu4](https://github.com/cindygu4))\\n- Derric Gilling ([@dgilling](https://github.com/dgilling))\\n- Fran\xe7ois Chalifour ([@francoischalifour](https://github.com/francoischalifour))\\n- Hadrien Milano ([@hmil](https://github.com/hmil))\\n- Kaartic Sivaraam ([@sivaraam](https://github.com/sivaraam))\\n- Lo\xefc Poullain ([@LoicPoullain](https://github.com/LoicPoullain))\\n- Matija Sosic ([@matijaSos](https://github.com/matijaSos))\\n- Matteo Manzinello ([@manzinello](https://github.com/manzinello))\\n- M\xe9ril ([@mpsq](https://github.com/mpsq))\\n- Oliver Ullman ([@oriooctopus](https://github.com/oriooctopus))\\n- Rami ([@Romstar](https://github.com/Romstar))\\n- Sarthak kundra ([@sarthakkundra](https://github.com/sarthakkundra))\\n- Stephen Woodruff ([@woodrufs](https://github.com/woodrufs))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Varshit Shah ([@Varshit07](https://github.com/Varshit07))\\n- [@borool](https://github.com/borool)\\n- [@davidmauskop](https://github.com/davidmauskop)\\n- hackerman ([@aeneasr](https://github.com/aeneasr))"},{"id":"/2.0.0-alpha.69","metadata":{"permalink":"/changelog/2.0.0-alpha.69","source":"@site/changelog/source/2.0.0-alpha.69.md","title":"2.0.0-alpha.69","description":"New Feature","date":"2020-11-24T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Ma\xebl Nison","alias":"arcanis","url":"https://github.com/arcanis","imageURL":"https://github.com/arcanis.png","key":"arcanis","page":null},{"name":"camiluc","alias":"camiluc","url":"https://github.com/camiluc","imageURL":"https://github.com/camiluc.png","key":"camiluc","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-11-24T20:00","authors":["arcanis","camiluc","lex111","Simek","slorber"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.70","permalink":"/changelog/2.0.0-alpha.70"},"nextItem":{"title":"2.0.0-alpha.68","permalink":"/changelog/2.0.0-alpha.68"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-types`, `docusaurus`\\n - [#3802](https://github.com/facebook/docusaurus/pull/3802) feat(v2): add baseUrlIssueBanner configuration to disable banner ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#3807](https://github.com/facebook/docusaurus/pull/3807) chore(v2): upgrade Infima to v0.2.0-alpha.18 ([@lex111](https://github.com/lex111))\\n - [#3806](https://github.com/facebook/docusaurus/pull/3806) fix(v2): remove aria-hidden attr from anchor link of heading ([@lex111](https://github.com/lex111))\\n - [#3784](https://github.com/facebook/docusaurus/pull/3784) fix(v2): fix missing logo in dark theme when darkSrc was not set ([@Simek](https://github.com/Simek))\\n- `docusaurus-theme-search-algolia`\\n - [#3804](https://github.com/facebook/docusaurus/pull/3804) fix(v2): Algolia: allow contextualSearch + facetFilters ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#3796](https://github.com/facebook/docusaurus/pull/3796) Adds createRequire for preset resolution ([@arcanis](https://github.com/arcanis))\\n\\n## :memo: Documentation\\n\\n- [#3803](https://github.com/facebook/docusaurus/pull/3803) docs(v2): fix docusaurus init issue when not using @latest ([@slorber](https://github.com/slorber))\\n- [#3785](https://github.com/facebook/docusaurus/pull/3785) docs(v2): recommend Docusaurus 2 usage ([@slorber](https://github.com/slorber))\\n- [#3783](https://github.com/facebook/docusaurus/pull/3783) docs(v2): remove @next tags needed to install v2 packages ([@slorber](https://github.com/slorber))\\n- [#3781](https://github.com/facebook/docusaurus/pull/3781) docs(v2): rename zeit to vercel ([@camiluc](https://github.com/camiluc))\\n\\n## :house: Internal\\n\\n- [#3800](https://github.com/facebook/docusaurus/pull/3800) chore(v2): remove useless stylelint-copyright peerDependency ([@slorber](https://github.com/slorber))\\n- [#3786](https://github.com/facebook/docusaurus/pull/3786) chore(v2): ensure publishConfig.access presence with tests ([@slorber](https://github.com/slorber))\\n\\n## Committers: 5\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- Ma\xebl Nison ([@arcanis](https://github.com/arcanis))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- [@camiluc](https://github.com/camiluc)"},{"id":"/2.0.0-alpha.68","metadata":{"permalink":"/changelog/2.0.0-alpha.68","source":"@site/changelog/source/2.0.0-alpha.68.md","title":"2.0.0-alpha.68","description":"New Feature","date":"2020-11-18T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"iAmir","alias":"AmyrAhmady","url":"https://github.com/AmyrAhmady","imageURL":"https://github.com/AmyrAhmady.png","key":"AmyrAhmady","page":null},{"name":"Artem Kovalov","alias":"artemkovalyov","url":"https://github.com/artemkovalyov","imageURL":"https://github.com/artemkovalyov.png","key":"artemkovalyov","page":null},{"name":"Beno\xeet Lemaire","alias":"belemaire","url":"https://github.com/belemaire","imageURL":"https://github.com/belemaire.png","key":"belemaire","page":null},{"name":"Charles Korn","alias":"charleskorn","url":"https://github.com/charleskorn","imageURL":"https://github.com/charleskorn.png","key":"charleskorn","page":null},{"name":"David Goss","alias":"davidjgoss","url":"https://github.com/davidjgoss","imageURL":"https://github.com/davidjgoss.png","key":"davidjgoss","page":null},{"name":"Bright Egbo","alias":"egbobright","url":"https://github.com/egbobright","imageURL":"https://github.com/egbobright.png","key":"egbobright","page":null},{"name":"Hai","alias":"haivp3010","url":"https://github.com/haivp3010","imageURL":"https://github.com/haivp3010.png","key":"haivp3010","page":null},{"name":"Anh Hong","alias":"hong4rc","url":"https://github.com/hong4rc","imageURL":"https://github.com/hong4rc.png","key":"hong4rc","page":null},{"name":"Jainam Chirag Shah","alias":"jcs98","url":"https://github.com/jcs98","imageURL":"https://github.com/jcs98.png","key":"jcs98","page":null},{"name":"\u741A\u81F4\u8FDC","alias":"juzhiyuan","url":"https://github.com/juzhiyuan","imageURL":"https://github.com/juzhiyuan.png","key":"juzhiyuan","page":null},{"name":"Roman Bug","alias":"ka1bi4","url":"https://github.com/ka1bi4","imageURL":"https://github.com/ka1bi4.png","key":"ka1bi4","page":null},{"name":"kenve","alias":"kenve","url":"https://github.com/kenve","imageURL":"https://github.com/kenve.png","key":"kenve","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Nate Giraudeau","alias":"nategiraudeau","url":"https://github.com/nategiraudeau","imageURL":"https://github.com/nategiraudeau.png","key":"nategiraudeau","page":null},{"name":"Nico Domino","alias":"ndom91","url":"https://github.com/ndom91","imageURL":"https://github.com/ndom91.png","key":"ndom91","page":null},{"name":"Rhys Arkins","alias":"rarkins","url":"https://github.com/rarkins","imageURL":"https://github.com/rarkins.png","key":"rarkins","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"sammychinedu2ky","alias":"sammychinedu2ky","url":"https://github.com/sammychinedu2ky","imageURL":"https://github.com/sammychinedu2ky.png","key":"sammychinedu2ky","page":null},{"name":"Gergely Sinka","alias":"sigewuzhere","url":"https://github.com/sigewuzhere","imageURL":"https://github.com/sigewuzhere.png","key":"sigewuzhere","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Stephen McElhinney","alias":"smcelhinney","url":"https://github.com/smcelhinney","imageURL":"https://github.com/smcelhinney.png","key":"smcelhinney","page":null},{"name":"Thakur Karthik","alias":"ThakurKarthik","url":"https://github.com/ThakurKarthik","imageURL":"https://github.com/ThakurKarthik.png","key":"ThakurKarthik","page":null},{"name":"Marc Rabat Pla","alias":"vanbasten17","url":"https://github.com/vanbasten17","imageURL":"https://github.com/vanbasten17.png","key":"vanbasten17","page":null},{"name":"Shenwei Wang","alias":"weareoutman","url":"https://github.com/weareoutman","imageURL":"https://github.com/weareoutman.png","key":"weareoutman","page":null},{"name":"ylemkimon","alias":"ylemkimon","url":"https://github.com/ylemkimon","imageURL":"https://github.com/ylemkimon.png","key":"ylemkimon","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-11-18T20:00","authors":["AmyrAhmady","artemkovalyov","belemaire","charleskorn","davidjgoss","egbobright","haivp3010","hong4rc","jcs98","juzhiyuan","ka1bi4","kenve","lex111","nategiraudeau","ndom91","rarkins","SamChou19815","sammychinedu2ky","sigewuzhere","Simek","slorber","smcelhinney","ThakurKarthik","vanbasten17","weareoutman","ylemkimon"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.69","permalink":"/changelog/2.0.0-alpha.69"},"nextItem":{"title":"2.0.0-alpha.67","permalink":"/changelog/2.0.0-alpha.67"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- Other\\n - [#3717](https://github.com/facebook/docusaurus/pull/3717) feat(v2): official CodeSandbox support ([@sammychinedu2ky](https://github.com/sammychinedu2ky))\\n- `docusaurus-init`\\n - [#3729](https://github.com/facebook/docusaurus/pull/3729) feat(v2): allow init project via npm ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`\\n - [#3730](https://github.com/facebook/docusaurus/pull/3730) feat(v2): add ThemedImage component ([@Simek](https://github.com/Simek))\\n- `docusaurus-cssnano-preset`, `docusaurus-theme-classic`, `docusaurus`\\n - [#3716](https://github.com/facebook/docusaurus/pull/3716) feat(v2): introduce new minification of CSS bundle ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#3694](https://github.com/facebook/docusaurus/pull/3694) feat(v2): Added the ability to specify GIT_PASS in deploy command (for CI purposes) ([@smcelhinney](https://github.com/smcelhinney))\\n - [#3621](https://github.com/facebook/docusaurus/pull/3621) feat(v2): baseUrl config issues: show help message if css/js can\'t load ([@jcs98](https://github.com/jcs98))\\n - [#3594](https://github.com/facebook/docusaurus/pull/3594) feat(v2): add support for key,cert in https ([@ThakurKarthik](https://github.com/ThakurKarthik))\\n- `docusaurus-remark-plugin-npm2yarn`\\n - [#3705](https://github.com/facebook/docusaurus/pull/3705) feat(v2): add support for sync to npm2yarn tabs ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`, `docusaurus-migrate`, `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#3658](https://github.com/facebook/docusaurus/pull/3658) feat(v2): onBrokenMarkdownLinks config ([@AmyrAhmady](https://github.com/AmyrAhmady))\\n- `docusaurus-theme-classic`\\n - [#3640](https://github.com/facebook/docusaurus/pull/3640) feat(v2): add skip to content link ([@lex111](https://github.com/lex111))\\n - [#3615](https://github.com/facebook/docusaurus/pull/3615) feat(v2): add ability to hide doc sidebar ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#3749](https://github.com/facebook/docusaurus/pull/3749) fix(v2): add support for interleaving Markdown in code blocks ([@lex111](https://github.com/lex111))\\n - [#3739](https://github.com/facebook/docusaurus/pull/3739) fix(v2): add support for prefers-reduced-motion in hideable sidebar ([@lex111](https://github.com/lex111))\\n - [#3726](https://github.com/facebook/docusaurus/pull/3726) fix(v2): add thin scrollbar to proper element in TOC ([@lex111](https://github.com/lex111))\\n - [#3681](https://github.com/facebook/docusaurus/pull/3681) Revert \\"refactor(v2): improve regex matching code-block title\\" ([@lex111](https://github.com/lex111))\\n - [#3662](https://github.com/facebook/docusaurus/pull/3662) fix(v2): navbar dropdown crash when item.to is undefined ([@artemkovalyov](https://github.com/artemkovalyov))\\n - [#3669](https://github.com/facebook/docusaurus/pull/3669) fix(v2): make scrollbar styles consistent ([@nategiraudeau](https://github.com/nategiraudeau))\\n - [#3666](https://github.com/facebook/docusaurus/pull/3666) fix(v2): make optional title for footer links column ([@lex111](https://github.com/lex111))\\n - [#3647](https://github.com/facebook/docusaurus/pull/3647) fix(v2): do not set height for mobile dropdown during build ([@lex111](https://github.com/lex111))\\n - [#3650](https://github.com/facebook/docusaurus/pull/3650) fix(v2): add landmark for skip to content link ([@lex111](https://github.com/lex111))\\n - [#3627](https://github.com/facebook/docusaurus/pull/3627) fix(v2): disable tabbing on hidden doc sidebar ([@lex111](https://github.com/lex111))\\n - [#3637](https://github.com/facebook/docusaurus/pull/3637) fix(v2): wrap code blocks on print ([@haivp3010](https://github.com/haivp3010))\\n - [#3603](https://github.com/facebook/docusaurus/pull/3603) fix(v2): animate dropdown properly ([@lex111](https://github.com/lex111))\\n - [#3611](https://github.com/facebook/docusaurus/pull/3611) fix(v2): Added back support for optional logo field in theme-classic navbarConfig ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#3763](https://github.com/facebook/docusaurus/pull/3763) refactor(v2): various markup improvements ([@lex111](https://github.com/lex111))\\n - [#3724](https://github.com/facebook/docusaurus/pull/3724) fix(v2): add support for non-ASCII chars in anchor link scroll ([@lex111](https://github.com/lex111))\\n- `docusaurus-module-type-aliases`, `docusaurus`\\n - [#3723](https://github.com/facebook/docusaurus/pull/3723) fix(v2): restore prefetch functionality ([@lex111](https://github.com/lex111))\\n- Other\\n - [#3760](https://github.com/facebook/docusaurus/pull/3760) fix(v2): codesandbox generated examples should use published init package ([@slorber](https://github.com/slorber))\\n - [#3701](https://github.com/facebook/docusaurus/pull/3701) fix(v2): limit images height on showcase page ([@lex111](https://github.com/lex111))\\n- `docusaurus-mdx-loader`\\n - [#3757](https://github.com/facebook/docusaurus/pull/3757) fix(v2): escape alt text in img tag ([@lex111](https://github.com/lex111))\\n - [#3653](https://github.com/facebook/docusaurus/pull/3653) fix(v2): handle multiple asset links in one line properly ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-search-algolia`, `docusaurus-utils`\\n - [#3721](https://github.com/facebook/docusaurus/pull/3721) fix(v2): use swizzled SearchPage component if any ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#3725](https://github.com/facebook/docusaurus/pull/3725) fix(v2): fix inconsistent error output in swizzle command ([@lex111](https://github.com/lex111))\\n - [#3704](https://github.com/facebook/docusaurus/pull/3704) refactor(v2): allow adding plugins depending on condition ([@lex111](https://github.com/lex111))\\n - [#3691](https://github.com/facebook/docusaurus/pull/3691) fix(v2): use SVGO in webpack SVGR loader ([@charleskorn](https://github.com/charleskorn))\\n - [#3667](https://github.com/facebook/docusaurus/pull/3667) fix(v2): Fix typo in BaseUrlSuggestionWarning ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-utils`\\n - [#3703](https://github.com/facebook/docusaurus/pull/3703) fix(v2): ignore export declarations in excerpt ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-search-algolia`\\n - [#3639](https://github.com/facebook/docusaurus/pull/3639) fix(v2): restore infinite scroll pagination on search page ([@lex111](https://github.com/lex111))\\n- `docusaurus-types`, `docusaurus`\\n - [#3622](https://github.com/facebook/docusaurus/pull/3622) fix(v2): docusaurus start --poll 500 should work + better config load failure error ([@slorber](https://github.com/slorber))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus`\\n - [#3765](https://github.com/facebook/docusaurus/pull/3765) chore(v2): replace wait-file with wait-on to reduce npm warnings ([@lex111](https://github.com/lex111))\\n - [#3725](https://github.com/facebook/docusaurus/pull/3725) fix(v2): fix inconsistent error output in swizzle command ([@lex111](https://github.com/lex111))\\n - [#3609](https://github.com/facebook/docusaurus/pull/3609) refactor(v2): Improve SSR error message: log page path ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#3764](https://github.com/facebook/docusaurus/pull/3764) refactor(v2): make accessible anchor links from keyboard ([@lex111](https://github.com/lex111))\\n - [#3745](https://github.com/facebook/docusaurus/pull/3745) refactor(v2): introduce Logo component, remove useLogo hook ([@Simek](https://github.com/Simek))\\n - [#3706](https://github.com/facebook/docusaurus/pull/3706) refactor(v2): render all tab panels at once ([@lex111](https://github.com/lex111))\\n - [#3712](https://github.com/facebook/docusaurus/pull/3712) chore(v2): upgrade Infima to v0.2.0-alpha.15 ([@lex111](https://github.com/lex111))\\n - [#3685](https://github.com/facebook/docusaurus/pull/3685) refactor(v2): improve regex matching code-block title ([@hong4rc](https://github.com/hong4rc))\\n - [#3674](https://github.com/facebook/docusaurus/pull/3674) feat(v2): add additional wrapper class to blog pages ([@Simek](https://github.com/Simek))\\n - [#3671](https://github.com/facebook/docusaurus/pull/3671) refactor(v2): improve regex matching code-block title ([@hong4rc](https://github.com/hong4rc))\\n - [#3654](https://github.com/facebook/docusaurus/pull/3654) refactor(v2): clean up code blocks ([@lex111](https://github.com/lex111))\\n - [#3649](https://github.com/facebook/docusaurus/pull/3649) refactor(v2): make code blocks scrollable from keyboard ([@lex111](https://github.com/lex111))\\n - [#3626](https://github.com/facebook/docusaurus/pull/3626) refactor(v2): remove focus outline from mouse users ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`\\n - [#3709](https://github.com/facebook/docusaurus/pull/3709) chore(v2): adjust website npm package ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#3707](https://github.com/facebook/docusaurus/pull/3707) chore(v2): upgrade Infima to v0.2.0-alpha.14 ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus`\\n - [#3638](https://github.com/facebook/docusaurus/pull/3638) chore(v2): migrate hapi/joi to joi ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-search-algolia`\\n - [#3604](https://github.com/facebook/docusaurus/pull/3604) refactor(v2): use new way to get versions for search page ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#3762](https://github.com/facebook/docusaurus/pull/3762) Adding ConfigCat to showcase ([@sigewuzhere](https://github.com/sigewuzhere))\\n - [#3750](https://github.com/facebook/docusaurus/pull/3750) docs(v2): add npm2yarn to typescript install command ([@davidjgoss](https://github.com/davidjgoss))\\n - [#3743](https://github.com/facebook/docusaurus/pull/3743) docs(v2): convert teams page to MDX ([@slorber](https://github.com/slorber))\\n - [#3737](https://github.com/facebook/docusaurus/pull/3737) docs(v2): add Inline SVG color override example ([@Simek](https://github.com/Simek))\\n - [#3718](https://github.com/facebook/docusaurus/pull/3718) docs(v2): showcase Botonic ([@vanbasten17](https://github.com/vanbasten17))\\n - [#3696](https://github.com/facebook/docusaurus/pull/3696) docs(v2): normalize showcase preview images height ([@Simek](https://github.com/Simek))\\n - [#3699](https://github.com/facebook/docusaurus/pull/3699) docs(v2): deployment should use mdx extension ([@slorber](https://github.com/slorber))\\n - [#3695](https://github.com/facebook/docusaurus/pull/3695) docs(v2): add React Native website to the showcase ([@Simek](https://github.com/Simek))\\n - [#3645](https://github.com/facebook/docusaurus/pull/3645) Update Docusaurus v2 Showcase ([@ndom91](https://github.com/ndom91))\\n - [#3644](https://github.com/facebook/docusaurus/pull/3644) docs(v2): update the link of joi ([@kenve](https://github.com/kenve))\\n - [#3636](https://github.com/facebook/docusaurus/pull/3636) docs(v2): fix some misspellings ([@ka1bi4](https://github.com/ka1bi4))\\n - [#3630](https://github.com/facebook/docusaurus/pull/3630) docs: remove runme ([@juzhiyuan](https://github.com/juzhiyuan))\\n- `docusaurus-remark-plugin-npm2yarn`\\n - [#3624](https://github.com/facebook/docusaurus/pull/3624) Fix typo in remark-plugin-npm2yarn documentation ([@belemaire](https://github.com/belemaire))\\n\\n## :house: Internal\\n\\n- Other\\n - [#3769](https://github.com/facebook/docusaurus/pull/3769) docs(v2): fix statements background, update footer background ([@Simek](https://github.com/Simek))\\n - [#3744](https://github.com/facebook/docusaurus/pull/3744) chore(v2): add build size bot workflow GitHub CI workflow ([@jcs98](https://github.com/jcs98))\\n - [#3741](https://github.com/facebook/docusaurus/pull/3741) chore: update yarn lock again ([@slorber](https://github.com/slorber))\\n - [#3740](https://github.com/facebook/docusaurus/pull/3740) chore: update yarn lock ([@slorber](https://github.com/slorber))\\n - [#3738](https://github.com/facebook/docusaurus/pull/3738) chore(internal): add yarn deduplicate script, cleanup lock ([@Simek](https://github.com/Simek))\\n - [#3732](https://github.com/facebook/docusaurus/pull/3732) fix(internal): fix clear script from the main package.json ([@Simek](https://github.com/Simek))\\n - [#3708](https://github.com/facebook/docusaurus/pull/3708) chore(v2): remove docs for alpha v60-61 ([@lex111](https://github.com/lex111))\\n - [#3693](https://github.com/facebook/docusaurus/pull/3693) fix(v2): fix website scripts on Windows by using cross-env ([@Simek](https://github.com/Simek))\\n - [#3673](https://github.com/facebook/docusaurus/pull/3673) test(e2e): dogfood Yarn with enableGlobalCache ([@ylemkimon](https://github.com/ylemkimon))\\n - [#3641](https://github.com/facebook/docusaurus/pull/3641) misc: fix unbound env variable in test release script ([@lex111](https://github.com/lex111))\\n- `docusaurus-mdx-loader`, `docusaurus-migrate`, `lqip-loader`\\n - [#3766](https://github.com/facebook/docusaurus/pull/3766) chore(v2): fix several npm warnings ([@lex111](https://github.com/lex111))\\n- `docusaurus-mdx-loader`\\n - [#3753](https://github.com/facebook/docusaurus/pull/3753) chore(v2): fix mismatch peer dependency in MDX loader ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#3742](https://github.com/facebook/docusaurus/pull/3742) chore(v2): pin version of babel-plugin-dynamic-import-node to 2.3.0 ([@lex111](https://github.com/lex111))\\n - [#3734](https://github.com/facebook/docusaurus/pull/3734) chore(v2): downgrade babel-plugin-dynamic-import-node to 2.3.0 ([@lex111](https://github.com/lex111))\\n - [#3714](https://github.com/facebook/docusaurus/pull/3714) chore(v2): fix prettier formatting ([@slorber](https://github.com/slorber))\\n - [#3619](https://github.com/facebook/docusaurus/pull/3619) refactor(v2): add better error message for yarn workspace/monorepo/terser issue ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-pwa`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#3727](https://github.com/facebook/docusaurus/pull/3727) chore(v2): upgrade dependencies ([@lex111](https://github.com/lex111))\\n- `docusaurus-1.x`\\n - [#3715](https://github.com/facebook/docusaurus/pull/3715) chore(v2): update Browserslist ([@lex111](https://github.com/lex111))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-sitemap`\\n - [#3675](https://github.com/facebook/docusaurus/pull/3675) fix(v2): add missing \'react\' and \'webpack\' peer dependencies ([@ylemkimon](https://github.com/ylemkimon))\\n- `docusaurus-1.x`, `docusaurus-init-1.x`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`, `stylelint-copyright`\\n - [#3613](https://github.com/facebook/docusaurus/pull/3613) fix: add repository metadata to all packages ([@rarkins](https://github.com/rarkins))\\n\\n## Committers: 26\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Anh Hong ([@hong4rc](https://github.com/hong4rc))\\n- Artem Kovalov ([@artemkovalyov](https://github.com/artemkovalyov))\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- Beno\xeet Lemaire ([@belemaire](https://github.com/belemaire))\\n- Bright Egbo ([@egbobright](https://github.com/egbobright))\\n- Charles Korn ([@charleskorn](https://github.com/charleskorn))\\n- David Goss ([@davidjgoss](https://github.com/davidjgoss))\\n- Gergely Sinka ([@sigewuzhere](https://github.com/sigewuzhere))\\n- Hai ([@haivp3010](https://github.com/haivp3010))\\n- Jainam Chirag Shah ([@jcs98](https://github.com/jcs98))\\n- Marc Rabat Pla ([@vanbasten17](https://github.com/vanbasten17))\\n- Nate Giraudeau ([@nategiraudeau](https://github.com/nategiraudeau))\\n- Nico Domino ([@ndom91](https://github.com/ndom91))\\n- Rhys Arkins ([@rarkins](https://github.com/rarkins))\\n- Roman Bug ([@ka1bi4](https://github.com/ka1bi4))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- Shenwei Wang ([@weareoutman](https://github.com/weareoutman))\\n- Stephen McElhinney ([@smcelhinney](https://github.com/smcelhinney))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Thakur Karthik ([@ThakurKarthik](https://github.com/ThakurKarthik))\\n- [@sammychinedu2ky](https://github.com/sammychinedu2ky)\\n- iAmir ([@AmyrAhmady](https://github.com/AmyrAhmady))\\n- kenve ([@kenve](https://github.com/kenve))\\n- ylemkimon ([@ylemkimon](https://github.com/ylemkimon))\\n- \u741A\u81F4\u8FDC ([@juzhiyuan](https://github.com/juzhiyuan))"},{"id":"/2.0.0-alpha.67","metadata":{"permalink":"/changelog/2.0.0-alpha.67","source":"@site/changelog/source/2.0.0-alpha.67.md","title":"2.0.0-alpha.67","description":"Failed release","date":"2020-11-18T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2020-11-18T19:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.68","permalink":"/changelog/2.0.0-alpha.68"},"nextItem":{"title":"2.0.0-alpha.66","permalink":"/changelog/2.0.0-alpha.66"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\nFailed release"},{"id":"/2.0.0-alpha.66","metadata":{"permalink":"/changelog/2.0.0-alpha.66","source":"@site/changelog/source/2.0.0-alpha.66.md","title":"2.0.0-alpha.66","description":"New Feature","date":"2020-10-19T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"aakhtar3","alias":"aakhtar3","url":"https://github.com/aakhtar3","imageURL":"https://github.com/aakhtar3.png","key":"aakhtar3","page":null},{"name":"Abhishek Tiwari","alias":"abhishektiwari","url":"https://github.com/abhishektiwari","imageURL":"https://github.com/abhishektiwari.png","key":"abhishektiwari","page":null},{"name":"Christian Bromann","alias":"christian-bromann","url":"https://github.com/christian-bromann","imageURL":"https://github.com/christian-bromann.png","key":"christian-bromann","page":null},{"name":"Fanny","alias":"fanny","url":"https://github.com/fanny","imageURL":"https://github.com/fanny.png","key":"fanny","page":null},{"name":"Hamza Hamidi","alias":"hamzahamidi","url":"https://github.com/hamzahamidi","imageURL":"https://github.com/hamzahamidi.png","key":"hamzahamidi","page":null},{"name":"honlyHuang","alias":"honlyHuang","url":"https://github.com/honlyHuang","imageURL":"https://github.com/honlyHuang.png","key":"honlyHuang","page":null},{"name":"Shubham Kumar","alias":"imskr","url":"https://github.com/imskr","imageURL":"https://github.com/imskr.png","key":"imskr","page":null},{"name":"John Gracey","alias":"jagracey","url":"https://github.com/jagracey","imageURL":"https://github.com/jagracey.png","key":"jagracey","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Matan Borenkraout","alias":"MatanBobi","url":"https://github.com/MatanBobi","imageURL":"https://github.com/MatanBobi.png","key":"MatanBobi","page":null},{"name":"Russ Taylor","alias":"russtaylor","url":"https://github.com/russtaylor","imageURL":"https://github.com/russtaylor.png","key":"russtaylor","page":null},{"name":"SaintMalik","alias":"saintmalik","url":"https://github.com/saintmalik","imageURL":"https://github.com/saintmalik.png","key":"saintmalik","page":null},{"name":"Shubham Zanwar","alias":"shubhamzanwar","url":"https://github.com/shubhamzanwar","imageURL":"https://github.com/shubhamzanwar.png","key":"shubhamzanwar","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Umair Kamran","alias":"UmairKamran","url":"https://github.com/UmairKamran","imageURL":"https://github.com/UmairKamran.png","key":"UmairKamran","page":null},{"name":"Utkarsh Goel","alias":"utkarsh867","url":"https://github.com/utkarsh867","imageURL":"https://github.com/utkarsh867.png","key":"utkarsh867","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-10-19T20:00","authors":["aakhtar3","abhishektiwari","christian-bromann","fanny","hamzahamidi","honlyHuang","imskr","jagracey","lex111","MatanBobi","russtaylor","saintmalik","shubhamzanwar","Simek","slorber","UmairKamran","utkarsh867"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.67","permalink":"/changelog/2.0.0-alpha.67"},"nextItem":{"title":"2.0.0-alpha.65","permalink":"/changelog/2.0.0-alpha.65"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#3593](https://github.com/facebook/docusaurus/pull/3593) feat(v2): blog sidebar ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-remark-plugin-npm2yarn`\\n - [#3469](https://github.com/facebook/docusaurus/pull/3469) feat(v2): Extract npm2yarn plugin ([@fanny](https://github.com/fanny))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#3550](https://github.com/facebook/docusaurus/pull/3550) feat(v2): contextual search, dynamic Algolia facetFilters ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#3580](https://github.com/facebook/docusaurus/pull/3580) feat(v2): allow to define custom CSS class for Tabs component ([@Simek](https://github.com/Simek))\\n - [#3553](https://github.com/facebook/docusaurus/pull/3553) feat(v2): make dropdown menu collapsible on mobiles ([@lex111](https://github.com/lex111))\\n- `docusaurus-migrate`, `docusaurus-types`, `docusaurus`\\n - [#3573](https://github.com/facebook/docusaurus/pull/3573) feat(v2): Add themeConfig.noIndex option #3528 ([@hamzahamidi](https://github.com/hamzahamidi))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus`\\n - [#3543](https://github.com/facebook/docusaurus/pull/3543) feat(v2): persist docs preferred version ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#3548](https://github.com/facebook/docusaurus/pull/3548) feat(v2): version dropdown before/after items + move site \\"All Versions\\" link ([@slorber](https://github.com/slorber))\\n- `docusaurus-types`, `docusaurus`\\n - [#3545](https://github.com/facebook/docusaurus/pull/3545) feat(v2): site client modules ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#3539](https://github.com/facebook/docusaurus/pull/3539) feat(v2): doc navbar item type ([@slorber](https://github.com/slorber))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#3550](https://github.com/facebook/docusaurus/pull/3550) feat(v2): contextual search, dynamic Algolia facetFilters ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#3607](https://github.com/facebook/docusaurus/pull/3607) fix(v2): fix error with required href attr of link in mobiles ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#3602](https://github.com/facebook/docusaurus/pull/3602) fix(v2): make dropdown button clickable with mouse ([@lex111](https://github.com/lex111))\\n - [#3601](https://github.com/facebook/docusaurus/pull/3601) fix(v2): fix table-of-content scroll highlighting issues ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`\\n - [#3599](https://github.com/facebook/docusaurus/pull/3599) fix(v2): remove event listeners on Tabs component unmount ([@lex111](https://github.com/lex111))\\n- `docusaurus-types`, `docusaurus`\\n - [#3531](https://github.com/facebook/docusaurus/pull/3531) fix(v2): Fixes serve cli --port option ([@UmairKamran](https://github.com/UmairKamran))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#3585](https://github.com/facebook/docusaurus/pull/3585) refactor(v2): various dropdown improvements ([@lex111](https://github.com/lex111))\\n - [#3588](https://github.com/facebook/docusaurus/pull/3588) refactor(v2): make accessible copy code button from keyboard ([@lex111](https://github.com/lex111))\\n - [#3578](https://github.com/facebook/docusaurus/pull/3578) refactor(v2): apply common behavior to dropdowns ([@lex111](https://github.com/lex111))\\n - [#3546](https://github.com/facebook/docusaurus/pull/3546) docs: various fixes and improvements ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#3587](https://github.com/facebook/docusaurus/pull/3587) refactor(v2): various fixes ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#3569](https://github.com/facebook/docusaurus/pull/3569) refactor(v2): improve broken links error message ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#3576](https://github.com/facebook/docusaurus/pull/3576) docs(v2): removed obsolete \\"you\\" identifier ([@christian-bromann](https://github.com/christian-bromann))\\n - [#3589](https://github.com/facebook/docusaurus/pull/3589) docs(v2): add taro to users ([@honlyHuang](https://github.com/honlyHuang))\\n - [#3565](https://github.com/facebook/docusaurus/pull/3565) docs(v2): deployment, add required GitHub token scope infos ([@russtaylor](https://github.com/russtaylor))\\n - [#3574](https://github.com/facebook/docusaurus/pull/3574) docs(v2): adding vue-nodegui to users ([@shubhamzanwar](https://github.com/shubhamzanwar))\\n - [#3556](https://github.com/facebook/docusaurus/pull/3556) Added Axioms to users ([@abhishektiwari](https://github.com/abhishektiwari))\\n - [#3558](https://github.com/facebook/docusaurus/pull/3558) docs(v2): embedding real source code in MDX as a code block ([@slorber](https://github.com/slorber))\\n - [#3555](https://github.com/facebook/docusaurus/pull/3555) docs(v2): add \\"Wisdom\\" dev docs website to showcase. ([@jagracey](https://github.com/jagracey))\\n - [#3532](https://github.com/facebook/docusaurus/pull/3532) docs(v2): change package name in example script ([@MatanBobi](https://github.com/MatanBobi))\\n - [#3538](https://github.com/facebook/docusaurus/pull/3538) docs(v1): added drone for 1.0 #3491 ([@aakhtar3](https://github.com/aakhtar3))\\n - [#3533](https://github.com/facebook/docusaurus/pull/3533) docs(v1): Fix broken link in the documentation ([@saintmalik](https://github.com/saintmalik))\\n - [#3534](https://github.com/facebook/docusaurus/pull/3534) docs(v2): Fix url bugs in v2 docs ([@saintmalik](https://github.com/saintmalik))\\n- `docusaurus-theme-classic`\\n - [#3546](https://github.com/facebook/docusaurus/pull/3546) docs: various fixes and improvements ([@lex111](https://github.com/lex111))\\n\\n## :house: Internal\\n\\n- `docusaurus-theme-search-algolia`\\n - [#3591](https://github.com/facebook/docusaurus/pull/3591) chore(v2): enable new contextual search feature ([@slorber](https://github.com/slorber))\\n- Other\\n - [#3586](https://github.com/facebook/docusaurus/pull/3586) chore(v2): fix/upgrade react types ([@slorber](https://github.com/slorber))\\n - [#3577](https://github.com/facebook/docusaurus/pull/3577) refactor(v2): clarify versions page ([@lex111](https://github.com/lex111))\\n - [#3560](https://github.com/facebook/docusaurus/pull/3560) feat(v2): prevent using remote image urls in showcase ([@slorber](https://github.com/slorber))\\n - [#3554](https://github.com/facebook/docusaurus/pull/3554) fix(v2): use absolute path to manifest file ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#3394](https://github.com/facebook/docusaurus/pull/3394) refactor(v2): add useThemeConfig hook + cleanup useless theme default values ([@imskr](https://github.com/imskr))\\n\\n## Committers: 17\\n\\n- Abhishek Tiwari ([@abhishektiwari](https://github.com/abhishektiwari))\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- Christian Bromann ([@christian-bromann](https://github.com/christian-bromann))\\n- Fanny ([@fanny](https://github.com/fanny))\\n- Hamza Hamidi ([@hamzahamidi](https://github.com/hamzahamidi))\\n- John Gracey ([@jagracey](https://github.com/jagracey))\\n- Matan Borenkraout ([@MatanBobi](https://github.com/MatanBobi))\\n- Russ Taylor ([@russtaylor](https://github.com/russtaylor))\\n- SaintMalik ([@saintmalik](https://github.com/saintmalik))\\n- Shubham Kumar ([@imskr](https://github.com/imskr))\\n- Shubham Zanwar ([@shubhamzanwar](https://github.com/shubhamzanwar))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Umair Kamran ([@UmairKamran](https://github.com/UmairKamran))\\n- Utkarsh Goel ([@utkarsh867](https://github.com/utkarsh867))\\n- [@aakhtar3](https://github.com/aakhtar3)\\n- honlyHuang ([@honlyHuang](https://github.com/honlyHuang))"},{"id":"/2.0.0-alpha.65","metadata":{"permalink":"/changelog/2.0.0-alpha.65","source":"@site/changelog/source/2.0.0-alpha.65.md","title":"2.0.0-alpha.65","description":"New Feature","date":"2020-10-02T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"aakhtar3","alias":"aakhtar3","url":"https://github.com/aakhtar3","imageURL":"https://github.com/aakhtar3.png","key":"aakhtar3","page":null},{"name":"Henry V\xe9lez","alias":"abadon7","url":"https://github.com/abadon7","imageURL":"https://github.com/abadon7.png","key":"abadon7","page":null},{"name":"hackerman","alias":"aeneasr","url":"https://github.com/aeneasr","imageURL":"https://github.com/aeneasr.png","key":"aeneasr","page":null},{"name":"Andrey Rublev","alias":"anru","url":"https://github.com/anru","imageURL":"https://github.com/anru.png","key":"anru","page":null},{"name":"Nahiyan Kamal","alias":"ayonious","url":"https://github.com/ayonious","imageURL":"https://github.com/ayonious.png","key":"ayonious","page":null},{"name":"R\xe9mi Doreau","alias":"ayshiff","url":"https://github.com/ayshiff","imageURL":"https://github.com/ayshiff.png","key":"ayshiff","page":null},{"name":"Gr\xe9gory Heitz","alias":"edno","url":"https://github.com/edno","imageURL":"https://github.com/edno.png","key":"edno","page":null},{"name":"Jeremy Hager","alias":"jeremyhager","url":"https://github.com/jeremyhager","imageURL":"https://github.com/jeremyhager.png","key":"jeremyhager","page":null},{"name":"Joel Marcey","alias":"JoelMarcey","url":"https://github.com/JoelMarcey","imageURL":"https://github.com/JoelMarcey.png","key":"JoelMarcey","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Long Ho","alias":"longlho","url":"https://github.com/longlho","imageURL":"https://github.com/longlho.png","key":"longlho","page":null},{"name":"moonrailgun","alias":"moonrailgun","url":"https://github.com/moonrailgun","imageURL":"https://github.com/moonrailgun.png","key":"moonrailgun","page":null},{"name":"Muskan Kumar","alias":"muskanvk","url":"https://github.com/muskanvk","imageURL":"https://github.com/muskanvk.png","key":"muskanvk","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tim Gates","alias":"timgates42","url":"https://github.com/timgates42","imageURL":"https://github.com/timgates42.png","key":"timgates42","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-10-02T20:00","authors":["aakhtar3","abadon7","aeneasr","anru","ayonious","ayshiff","edno","jeremyhager","JoelMarcey","lex111","longlho","moonrailgun","muskanvk","SamChou19815","Simek","slorber","timgates42","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.66","permalink":"/changelog/2.0.0-alpha.66"},"nextItem":{"title":"2.0.0-alpha.64","permalink":"/changelog/2.0.0-alpha.64"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus`\\n - [#3497](https://github.com/facebook/docusaurus/pull/3497) feat(v2): env variable TERSER_PARALLEL to customize TerserPlugin.parallel ([@aeneasr](https://github.com/aeneasr))\\n - [#3446](https://github.com/facebook/docusaurus/pull/3446) feat(v2): new docusaurus clear command ([@abadon7](https://github.com/abadon7))\\n - [#3485](https://github.com/facebook/docusaurus/pull/3485) feat(v2): Add @theme-init components to user theme ([@edno](https://github.com/edno))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`\\n - [#3467](https://github.com/facebook/docusaurus/pull/3467) feat(v2): add beforeDefaultRemarkPlugins/beforeDefaultRehypePlugins options to all md content plugins ([@ayshiff](https://github.com/ayshiff))\\n- `docusaurus-init`, `docusaurus-theme-bootstrap`\\n - [#3496](https://github.com/facebook/docusaurus/pull/3496) feat(v2): migrate bootstrap components to ts ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#3474](https://github.com/facebook/docusaurus/pull/3474) feat(v2): allow to use array of files in customCss field ([@Simek](https://github.com/Simek))\\n- `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`\\n - [#3457](https://github.com/facebook/docusaurus/pull/3457) feat(v2): add optional custom wrapper class name for pages based on theme classic Layout ([@Simek](https://github.com/Simek))\\n\\n## :bug: Bug Fix\\n\\n- Other\\n - [#3517](https://github.com/facebook/docusaurus/pull/3517) fix(v1): v1 deploy preview should be available ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#3498](https://github.com/facebook/docusaurus/pull/3498) fix(v2): fixed props being passed to @svgr/webpack loader ([@anru](https://github.com/anru))\\n- `docusaurus-theme-search-algolia`\\n - [#3456](https://github.com/facebook/docusaurus/pull/3456) fix(v2): use valid value for crossorigin attribute ([@lex111](https://github.com/lex111))\\n- `docusaurus-utils`\\n - [#3427](https://github.com/facebook/docusaurus/pull/3427) fix(v2): normalizeUrl edge cases ([@ayshiff](https://github.com/ayshiff))\\n- `docusaurus-theme-classic`\\n - [#3472](https://github.com/facebook/docusaurus/pull/3472) fix(v2): Show dropdown instead of a single button when there are two versions ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-content-docs`\\n - [#3441](https://github.com/facebook/docusaurus/pull/3441) fix(v2): fixing typo in error message ([@ayonious](https://github.com/ayonious))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#3499](https://github.com/facebook/docusaurus/pull/3499) chore(v2): upgrade Infima to 0.2.0-alpha.13 ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- `docusaurus`\\n - [#3502](https://github.com/facebook/docusaurus/pull/3502) docs(v2): add doc for wrapping theme components with @theme-original and @theme-init ([@slorber](https://github.com/slorber))\\n- Other\\n - [#3473](https://github.com/facebook/docusaurus/pull/3473) misc: add License to the documentation ([@muskanvk](https://github.com/muskanvk))\\n - [#3492](https://github.com/facebook/docusaurus/pull/3492) docs(v2): Added drone.io publish docs #3491 ([@aakhtar3](https://github.com/aakhtar3))\\n - [#3479](https://github.com/facebook/docusaurus/pull/3479) docs(v2): remove redundant new line in code block ([@lex111](https://github.com/lex111))\\n - [#3448](https://github.com/facebook/docusaurus/pull/3448) chore(v2): fix theme classic navbar style docs ([@Simek](https://github.com/Simek))\\n\\n## :house: Internal\\n\\n- `docusaurus-1.x`, `docusaurus-migrate`\\n - [#3504](https://github.com/facebook/docusaurus/pull/3504) chore(v1): move v1 docs inside website-1.x ([@slorber](https://github.com/slorber))\\n- Other\\n - [#3506](https://github.com/facebook/docusaurus/pull/3506) chore(v2): v2 website should make it easy to contribute to upstream docs ([@slorber](https://github.com/slorber))\\n - [#3511](https://github.com/facebook/docusaurus/pull/3511) misc: update CODEOWNERS ([@yangshun](https://github.com/yangshun))\\n - [#3477](https://github.com/facebook/docusaurus/pull/3477) chore(v2): remove alpha 58 doc ([@lex111](https://github.com/lex111))\\n- `docusaurus-utils-validation`\\n - [#3453](https://github.com/facebook/docusaurus/pull/3453) test(v2): add protocol relative uri validation test ([@moonrailgun](https://github.com/moonrailgun))\\n\\n## Committers: 18\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Andrey Rublev ([@anru](https://github.com/anru))\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- Gr\xe9gory Heitz ([@edno](https://github.com/edno))\\n- Henry V\xe9lez ([@abadon7](https://github.com/abadon7))\\n- Jeremy Hager ([@jeremyhager](https://github.com/jeremyhager))\\n- Joel Marcey ([@JoelMarcey](https://github.com/JoelMarcey))\\n- Long Ho ([@longlho](https://github.com/longlho))\\n- Muskan Kumar ([@muskanvk](https://github.com/muskanvk))\\n- Nahiyan Kamal ([@ayonious](https://github.com/ayonious))\\n- R\xe9mi Doreau ([@ayshiff](https://github.com/ayshiff))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tim Gates ([@timgates42](https://github.com/timgates42))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- [@aakhtar3](https://github.com/aakhtar3)\\n- hackerman ([@aeneasr](https://github.com/aeneasr))\\n- moonrailgun ([@moonrailgun](https://github.com/moonrailgun))"},{"id":"/2.0.0-alpha.64","metadata":{"permalink":"/changelog/2.0.0-alpha.64","source":"@site/changelog/source/2.0.0-alpha.64.md","title":"2.0.0-alpha.64","description":"New Feature","date":"2020-09-11T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Ash","alias":"ashscodes","url":"https://github.com/ashscodes","imageURL":"https://github.com/ashscodes.png","key":"ashscodes","page":null},{"name":"josephMG","alias":"josephMG","url":"https://github.com/josephMG","imageURL":"https://github.com/josephMG.png","key":"josephMG","page":null},{"name":"M\xe9ril","alias":"mpsq","url":"https://github.com/mpsq","imageURL":"https://github.com/mpsq.png","key":"mpsq","page":null},{"name":"Rutik Wankhade","alias":"rutikwankhade","url":"https://github.com/rutikwankhade","imageURL":"https://github.com/rutikwankhade.png","key":"rutikwankhade","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Thad Guidry","alias":"thadguidry","url":"https://github.com/thadguidry","imageURL":"https://github.com/thadguidry.png","key":"thadguidry","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-09-11T20:00","authors":["ashscodes","josephMG","mpsq","rutikwankhade","Simek","slorber","thadguidry"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.65","permalink":"/changelog/2.0.0-alpha.65"},"nextItem":{"title":"2.0.0-alpha.63","permalink":"/changelog/2.0.0-alpha.63"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#3432](https://github.com/facebook/docusaurus/pull/3432) feat(v2): add style property to theme-classic navbar ([@Simek](https://github.com/Simek))\\n - [#3406](https://github.com/facebook/docusaurus/pull/3406) feat(v2): ability to add/override theme html metadatas ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-sitemap`\\n - [#3426](https://github.com/facebook/docusaurus/pull/3426) feat(v2): add option to add trailing slash to urls in sitemap ([@mpsq](https://github.com/mpsq))\\n\\n## :bug: Bug Fix\\n\\n- Other\\n - [#3438](https://github.com/facebook/docusaurus/pull/3438) fix(v2): docusaurus 2 PWA should work under baseurl (deploy previews) ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`\\n - [#3435](https://github.com/facebook/docusaurus/pull/3435) fix(v2): fix empty link error message ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-pwa`\\n - [#3436](https://github.com/facebook/docusaurus/pull/3436) fix(v2): Correctly resolve sw.js path on windows ([@ashscodes](https://github.com/ashscodes))\\n- `docusaurus-theme-classic`\\n - [#3433](https://github.com/facebook/docusaurus/pull/3433) fix(v2): fix theme-classic announcement bar closeable style ([@Simek](https://github.com/Simek))\\n- `docusaurus-1.x`\\n - [#3429](https://github.com/facebook/docusaurus/pull/3429) fix(v1): versioned_docs and skip-next-release relative path issue ([@josephMG](https://github.com/josephMG))\\n- `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`\\n - [#3418](https://github.com/facebook/docusaurus/pull/3418) fix(v2): reset sidebar state on sidebar changes ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-debug`\\n - [#3405](https://github.com/facebook/docusaurus/pull/3405) fix(v2): fix debug plugin unscoped inline code global css ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- [#3428](https://github.com/facebook/docusaurus/pull/3428) docs(v2): fix grammar ([@thadguidry](https://github.com/thadguidry))\\n- [#3425](https://github.com/facebook/docusaurus/pull/3425) docs(v2): mention Eta in ssrTemplate section ([@mpsq](https://github.com/mpsq))\\n- [#3423](https://github.com/facebook/docusaurus/pull/3423) docs(v2): minor typo fix ([@rutikwankhade](https://github.com/rutikwankhade))\\n\\n## :house: Internal\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus`\\n - [#3439](https://github.com/facebook/docusaurus/pull/3439) chore(v2): fix serialize-javascript security issue by upgrading webpack/workbox ([@slorber](https://github.com/slorber))\\n- Other\\n - [#3401](https://github.com/facebook/docusaurus/pull/3401) chore(deps): bump decompress from 4.2.0 to 4.2.1 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n\\n## Committers: 7\\n\\n- Ash ([@ashscodes](https://github.com/ashscodes))\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- M\xe9ril ([@mpsq](https://github.com/mpsq))\\n- Rutik Wankhade ([@rutikwankhade](https://github.com/rutikwankhade))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Thad Guidry ([@thadguidry](https://github.com/thadguidry))\\n- [@josephMG](https://github.com/josephMG)"},{"id":"/2.0.0-alpha.63","metadata":{"permalink":"/changelog/2.0.0-alpha.63","source":"@site/changelog/source/2.0.0-alpha.63.md","title":"2.0.0-alpha.63","description":"New Feature","date":"2020-09-03T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"M\xe9ril","alias":"mpsq","url":"https://github.com/mpsq","imageURL":"https://github.com/mpsq.png","key":"mpsq","page":null},{"name":"Sam Ko","alias":"samsisle","url":"https://github.com/samsisle","imageURL":"https://github.com/samsisle.png","key":"samsisle","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Thad Guidry","alias":"thadguidry","url":"https://github.com/thadguidry","imageURL":"https://github.com/thadguidry.png","key":"thadguidry","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-09-03T20:00","authors":["mpsq","samsisle","Simek","slorber","thadguidry"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.64","permalink":"/changelog/2.0.0-alpha.64"},"nextItem":{"title":"2.0.0-alpha.62","permalink":"/changelog/2.0.0-alpha.62"},"listPageLink":"/changelog/page/3"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-types`, `docusaurus`\\n - [#3387](https://github.com/facebook/docusaurus/pull/3387) feat(v2): allow users to specify a custom ssr HTML template ([@mpsq](https://github.com/mpsq))\\n- `docusaurus-plugin-debug`\\n - [#3392](https://github.com/facebook/docusaurus/pull/3392) feat(v2): officially release @docusaurus/plugin-debug ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#3388](https://github.com/facebook/docusaurus/pull/3388) feat(v2): add isCloseable property for theme-classic announcement bar ([@Simek](https://github.com/Simek))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#3373](https://github.com/facebook/docusaurus/pull/3373) feat(v2): docs options.onlyIncludeVersions ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- Other\\n - [#3397](https://github.com/facebook/docusaurus/pull/3397) fix(v2): DocSearch should keep working after a new release (part 2/2) ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#3393](https://github.com/facebook/docusaurus/pull/3393) fix(v2): DocSearch should keep working after a new release (part 1/2) ([@slorber](https://github.com/slorber))\\n - [#3381](https://github.com/facebook/docusaurus/pull/3381) fix(v2): alpha 62 doc fixes ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#3385](https://github.com/facebook/docusaurus/pull/3385) fix(v2): scripts should allow unknown values ([@slorber](https://github.com/slorber))\\n- `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus`\\n - [#3382](https://github.com/facebook/docusaurus/pull/3382) fix(v2): allow using classic theme/preset without the docs plugin ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils-validation`\\n - [#3377](https://github.com/facebook/docusaurus/pull/3377) fix(v2): reject routeBasePath: \'\' ([@slorber](https://github.com/slorber))\\n\\n## :memo: Documentation\\n\\n- [#3390](https://github.com/facebook/docusaurus/pull/3390) docs(v1, v2): Update Deploy to Vercel guide ([@samsisle](https://github.com/samsisle))\\n- [#3344](https://github.com/facebook/docusaurus/pull/3344) docs(v2): Update Deploy to Vercel guide ([@samsisle](https://github.com/samsisle))\\n\\n## :house: Internal\\n\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus`\\n - [#3386](https://github.com/facebook/docusaurus/pull/3386) chore(v2): pin exact dependency versions ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`, `docusaurus-init-1.x`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `lqip-loader`, `stylelint-copyright`\\n - [#3359](https://github.com/facebook/docusaurus/pull/3359) chore(v2): prepare v2.0.0.alpha-62 release ([@slorber](https://github.com/slorber))\\n\\n## Committers: 5\\n\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- M\xe9ril ([@mpsq](https://github.com/mpsq))\\n- Sam Ko ([@samsisle](https://github.com/samsisle))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Thad Guidry ([@thadguidry](https://github.com/thadguidry))"},{"id":"/2.0.0-alpha.62","metadata":{"permalink":"/changelog/2.0.0-alpha.62","source":"@site/changelog/source/2.0.0-alpha.62.md","title":"2.0.0-alpha.62","description":"New Feature","date":"2020-08-28T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"adinaja","alias":"adinaja","url":"https://github.com/adinaja","imageURL":"https://github.com/adinaja.png","key":"adinaja","page":null},{"name":"Franklyn Chisom","alias":"ajifrank75","url":"https://github.com/ajifrank75","imageURL":"https://github.com/ajifrank75.png","key":"ajifrank75","page":null},{"name":"Ali Hosseini","alias":"Ako92","url":"https://github.com/Ako92","imageURL":"https://github.com/Ako92.png","key":"Ako92","page":null},{"name":"Amy Lei","alias":"amy-lei","url":"https://github.com/amy-lei","imageURL":"https://github.com/amy-lei.png","key":"amy-lei","page":null},{"name":"Anshul Goyal","alias":"anshulrgoyal","url":"https://github.com/anshulrgoyal","imageURL":"https://github.com/anshulrgoyal.png","key":"anshulrgoyal","page":null},{"name":"Archit","alias":"arcvats","url":"https://github.com/arcvats","imageURL":"https://github.com/arcvats.png","key":"arcvats","page":null},{"name":"Arthur Flam","alias":"arthur-flam","url":"https://github.com/arthur-flam","imageURL":"https://github.com/arthur-flam.png","key":"arthur-flam","page":null},{"name":"Bogdan Doroschenko","alias":"BogdanDor","url":"https://github.com/BogdanDor","imageURL":"https://github.com/BogdanDor.png","key":"BogdanDor","page":null},{"name":"alex busnelli","alias":"boosh511","url":"https://github.com/boosh511","imageURL":"https://github.com/boosh511.png","key":"boosh511","page":null},{"name":"Daniel Wilkowski","alias":"Danon","url":"https://github.com/Danon","imageURL":"https://github.com/Danon.png","key":"Danon","page":null},{"name":"Drew Alexander","alias":"Drewbi","url":"https://github.com/Drewbi","imageURL":"https://github.com/Drewbi.png","key":"Drewbi","page":null},{"name":"Derek","alias":"dschaller","url":"https://github.com/dschaller","imageURL":"https://github.com/dschaller.png","key":"dschaller","page":null},{"name":"Fanny","alias":"fanny","url":"https://github.com/fanny","imageURL":"https://github.com/fanny.png","key":"fanny","page":null},{"name":"Nisarag","alias":"FocalChord","url":"https://github.com/FocalChord","imageURL":"https://github.com/FocalChord.png","key":"FocalChord","page":null},{"name":"Fran\xe7ois Chalifour","alias":"francoischalifour","url":"https://github.com/francoischalifour","imageURL":"https://github.com/francoischalifour.png","key":"francoischalifour","page":null},{"name":"Govardhan Srinivas","alias":"govardhan-srinivas","url":"https://github.com/govardhan-srinivas","imageURL":"https://github.com/govardhan-srinivas.png","key":"govardhan-srinivas","page":null},{"name":"Yang Luo","alias":"hsluoyz","url":"https://github.com/hsluoyz","imageURL":"https://github.com/hsluoyz.png","key":"hsluoyz","page":null},{"name":"Shubham Kumar","alias":"imskr","url":"https://github.com/imskr","imageURL":"https://github.com/imskr.png","key":"imskr","page":null},{"name":"Jean-Marc Saad","alias":"JeanMarcSaad","url":"https://github.com/JeanMarcSaad","imageURL":"https://github.com/JeanMarcSaad.png","key":"JeanMarcSaad","page":null},{"name":"Jonas Dellinger","alias":"JohnnyCrazy","url":"https://github.com/JohnnyCrazy","imageURL":"https://github.com/JohnnyCrazy.png","key":"JohnnyCrazy","page":null},{"name":"Jonathan","alias":"Jonathannsegal","url":"https://github.com/Jonathannsegal","imageURL":"https://github.com/Jonathannsegal.png","key":"Jonathannsegal","page":null},{"name":"lebogang Olifant","alias":"lebogangolifant","url":"https://github.com/lebogangolifant","imageURL":"https://github.com/lebogangolifant.png","key":"lebogangolifant","page":null},{"name":"leoigel","alias":"leoigel","url":"https://github.com/leoigel","imageURL":"https://github.com/leoigel.png","key":"leoigel","page":null},{"name":"Manuel Cepeda","alias":"mecm1993","url":"https://github.com/mecm1993","imageURL":"https://github.com/mecm1993.png","key":"mecm1993","page":null},{"name":"Mirzayev Farid","alias":"MirzayevFarid","url":"https://github.com/MirzayevFarid","imageURL":"https://github.com/MirzayevFarid.png","key":"MirzayevFarid","page":null},{"name":"Ben Gubler","alias":"nebrelbug","url":"https://github.com/nebrelbug","imageURL":"https://github.com/nebrelbug.png","key":"nebrelbug","page":null},{"name":"Olawanle Joel","alias":"olawanlejoel","url":"https://github.com/olawanlejoel","imageURL":"https://github.com/olawanlejoel.png","key":"olawanlejoel","page":null},{"name":"Orta Therox","alias":"orta","url":"https://github.com/orta","imageURL":"https://github.com/orta.png","key":"orta","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"shalinikumari50","alias":"shalinikumari50","url":"https://github.com/shalinikumari50","imageURL":"https://github.com/shalinikumari50.png","key":"shalinikumari50","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Sourav Dey","alias":"Souravdey777","url":"https://github.com/Souravdey777","imageURL":"https://github.com/Souravdey777.png","key":"Souravdey777","page":null},{"name":"Teik Jun","alias":"teikjun","url":"https://github.com/teikjun","imageURL":"https://github.com/teikjun.png","key":"teikjun","page":null},{"name":"Hani Mohammed","alias":"thehanimo","url":"https://github.com/thehanimo","imageURL":"https://github.com/thehanimo.png","key":"thehanimo","page":null},{"name":"Tolunay Akbulut","alias":"tolunayakbulut","url":"https://github.com/tolunayakbulut","imageURL":"https://github.com/tolunayakbulut.png","key":"tolunayakbulut","page":null},{"name":"Vandr\xe9 Leal","alias":"vandreleal","url":"https://github.com/vandreleal","imageURL":"https://github.com/vandreleal.png","key":"vandreleal","page":null},{"name":"Vincent","alias":"Vinnl","url":"https://github.com/Vinnl","imageURL":"https://github.com/Vinnl.png","key":"Vinnl","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null},{"name":"ylemkimon","alias":"ylemkimon","url":"https://github.com/ylemkimon","imageURL":"https://github.com/ylemkimon.png","key":"ylemkimon","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-08-28T20:00","authors":["adinaja","ajifrank75","Ako92","amy-lei","anshulrgoyal","arcvats","arthur-flam","BogdanDor","boosh511","Danon","Drewbi","dschaller","fanny","FocalChord","francoischalifour","govardhan-srinivas","hsluoyz","imskr","JeanMarcSaad","JohnnyCrazy","Jonathannsegal","lebogangolifant","leoigel","mecm1993","MirzayevFarid","nebrelbug","olawanlejoel","orta","SamChou19815","shalinikumari50","slorber","Souravdey777","teikjun","thehanimo","tolunayakbulut","vandreleal","Vinnl","yangshun","ylemkimon"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.63","permalink":"/changelog/2.0.0-alpha.63"},"nextItem":{"title":"2.0.0-alpha.61","permalink":"/changelog/2.0.0-alpha.61"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#3357](https://github.com/facebook/docusaurus/pull/3357) feat(v2): docs version configuration: lastVersion, version.{path,label} ([@slorber](https://github.com/slorber))\\n - [#3328](https://github.com/facebook/docusaurus/pull/3328) feat(v2): Provide docs plugin theme typing ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-theme-classic`\\n - [#3356](https://github.com/facebook/docusaurus/pull/3356) feat(v2): Provide type definitions for remaining theme-classic components ([@SamChou19815](https://github.com/SamChou19815))\\n - [#3274](https://github.com/facebook/docusaurus/pull/3274) feat(v2): add TOC to blog posts ([@amy-lei](https://github.com/amy-lei))\\n- `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`\\n - [#3354](https://github.com/facebook/docusaurus/pull/3354) feat(v2): Provide type definitions for MDXPage from page plugin ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#3348](https://github.com/facebook/docusaurus/pull/3348) feat(v2): Provide typing to most of the theme-classic components ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-init`, `docusaurus-plugin-content-blog`\\n - [#3284](https://github.com/facebook/docusaurus/pull/3284) feat(v2): blog slug frontmatter ([@JeanMarcSaad](https://github.com/JeanMarcSaad))\\n- `docusaurus-init`, `docusaurus-theme-bootstrap`\\n - [#2981](https://github.com/facebook/docusaurus/pull/2981) feat(v2): bootstrap theme, preset, template, CI previews ([@fanny](https://github.com/fanny))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#3267](https://github.com/facebook/docusaurus/pull/3267) feat(v2): Provide blog plugin theme typing ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-debug`, `docusaurus-preset-classic`, `docusaurus-theme-bootstrap`, `docusaurus-types`, `docusaurus`\\n - [#3229](https://github.com/facebook/docusaurus/pull/3229) feat(v2): debug pages + debug layout + ability to debug content ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#3021](https://github.com/facebook/docusaurus/pull/3021) feat(v2): update swizzle command to suggest component/theme ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-pages`\\n - [#3196](https://github.com/facebook/docusaurus/pull/3196) feat(v2): add support to ignore files in pages plugin ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils-validation`, `docusaurus`\\n - [#3204](https://github.com/facebook/docusaurus/pull/3204) feat(v2): blog + docs multi-instance plugins ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`\\n - [#3096](https://github.com/facebook/docusaurus/pull/3096) feat(v2): add support to import assets using relative link in markdown syntax ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-migrate`\\n - [#3358](https://github.com/facebook/docusaurus/pull/3358) fix(v2): fix migrate cli paths (sidebars/customcss) ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#3311](https://github.com/facebook/docusaurus/pull/3311) fix(v2): add https support in webpack devserver ([@arcvats](https://github.com/arcvats))\\n - [#3313](https://github.com/facebook/docusaurus/pull/3313) fix(v2): resolve webpack loaders from siteDir/node_modules ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n - [#3308](https://github.com/facebook/docusaurus/pull/3308) fix(v2): brokenLinks should not report links that belong to an existing folder if folder/index.html exists ([@slorber](https://github.com/slorber))\\n - [#3273](https://github.com/facebook/docusaurus/pull/3273) fix: logic error while deciding deploymentBranch ([@thehanimo](https://github.com/thehanimo))\\n - [#3281](https://github.com/facebook/docusaurus/pull/3281) fix(v2): allow swizzling of component even if case doesn\'t match ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n - [#3222](https://github.com/facebook/docusaurus/pull/3222) fix(v2): update react-loadable-ssr-addon to solve yarn2 error ([@slorber](https://github.com/slorber))\\n - [#3191](https://github.com/facebook/docusaurus/pull/3191) fix(v2): add missing `lodash.flatmap` dependency ([@ylemkimon](https://github.com/ylemkimon))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-bootstrap`, `docusaurus-theme-search-algolia`, `docusaurus-types`\\n - [#3355](https://github.com/facebook/docusaurus/pull/3355) fix(v2): Add missing dependencies to packages ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-theme-classic`\\n - [#3352](https://github.com/facebook/docusaurus/pull/3352) fix(v2): Allow the alt for the logo to be empty ([@Vinnl](https://github.com/Vinnl))\\n - [#3240](https://github.com/facebook/docusaurus/pull/3240) fix(v2): navbar dropdown opened with tab, not closing on click outside ([@Ako92](https://github.com/Ako92))\\n- `docusaurus-mdx-loader`, `docusaurus`\\n - [#3347](https://github.com/facebook/docusaurus/pull/3347) fix(v2): linking to asset or external html page -> don\'t use history.push() ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`\\n - [#3340](https://github.com/facebook/docusaurus/pull/3340) fix(v1): show images after one line code block ([@adinaja](https://github.com/adinaja))\\n- `docusaurus-1.x`, `docusaurus`\\n - [#3290](https://github.com/facebook/docusaurus/pull/3290) fix(v1,v2): Add initial-scale=1.0 to all meta viewport tags ([@nebrelbug](https://github.com/nebrelbug))\\n- `docusaurus-theme-search-algolia`\\n - [#3297](https://github.com/facebook/docusaurus/pull/3297) fix(v2): keep DocSearch state on remounts ([@francoischalifour](https://github.com/francoischalifour))\\n - [#3280](https://github.com/facebook/docusaurus/pull/3280) fix(v2): allow search page swizzle ([@Ako92](https://github.com/Ako92))\\n - [#3263](https://github.com/facebook/docusaurus/pull/3263) fix(v2): do not index search pages ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-pages`\\n - [#3283](https://github.com/facebook/docusaurus/pull/3283) fix(v2): pass images in static dir to webpack-loader ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- Other\\n - [#3269](https://github.com/facebook/docusaurus/pull/3269) fix(v2): website feedback page hydration bug ([@mecm1993](https://github.com/mecm1993))\\n - [#3200](https://github.com/facebook/docusaurus/pull/3200) fix(v1): self-host user images ([@leoigel](https://github.com/leoigel))\\n- `docusaurus-plugin-google-gtag`\\n - [#3243](https://github.com/facebook/docusaurus/pull/3243) fix(v2): GTM, send page_view events on navigate ([@govardhan-srinivas](https://github.com/govardhan-srinivas))\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#3262](https://github.com/facebook/docusaurus/pull/3262) fix(v2): doc path special char (space or other) should lead to a valid slug ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils-validation`, `docusaurus`\\n - [#3247](https://github.com/facebook/docusaurus/pull/3247) fix(v2): modify validation schema and tests for rehype/remark + remove duplicate dependency ([@teikjun](https://github.com/teikjun))\\n- `docusaurus-init`\\n - [#3258](https://github.com/facebook/docusaurus/pull/3258) fix(v2): fix template alt image prop ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils-validation`, `docusaurus`\\n - [#3227](https://github.com/facebook/docusaurus/pull/3227) fix(v2): relax URI validation ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- `docusaurus-init`, `docusaurus-plugin-content-docs`\\n - [#3228](https://github.com/facebook/docusaurus/pull/3228) fix(v2): deprecate docs homePageId in favor of frontmatter \\"slug: /\\" ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#3225](https://github.com/facebook/docusaurus/pull/3225) fix(v2): swizzle minor improvements ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#3210](https://github.com/facebook/docusaurus/pull/3210) fix(v2): fix theme validation for prism field and add tests ([@teikjun](https://github.com/teikjun))\\n- `docusaurus-plugin-content-docs`\\n - [#3192](https://github.com/facebook/docusaurus/pull/3192) fix(v2): add missing `chalk` and `lodash` dependencies ([@ylemkimon](https://github.com/ylemkimon))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-module-type-aliases`, `docusaurus`\\n - [#3244](https://github.com/facebook/docusaurus/pull/3244) chore(v2): tighten up the TypeScript onboarding ([@orta](https://github.com/orta))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils`, `docusaurus`\\n - [#3245](https://github.com/facebook/docusaurus/pull/3245) refactor(v2): docs plugin refactor ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#3188](https://github.com/facebook/docusaurus/pull/3188) fix(v2): Add a missing whitespace before prompt to use `npm run serve` ([@SamChou19815](https://github.com/SamChou19815))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#3346](https://github.com/facebook/docusaurus/pull/3346) docs(v2): add draft doc ([@imskr](https://github.com/imskr))\\n - [#3336](https://github.com/facebook/docusaurus/pull/3336) docs(v2): add Nisarag to Fellows section ([@FocalChord](https://github.com/FocalChord))\\n - [#3335](https://github.com/facebook/docusaurus/pull/3335) docs(v2): update team profile ([@yangshun](https://github.com/yangshun))\\n - [#3334](https://github.com/facebook/docusaurus/pull/3334) docs(v2): add Drew to Fellows section ([@Drewbi](https://github.com/Drewbi))\\n - [#3333](https://github.com/facebook/docusaurus/pull/3333) docs(v2): add anshul and teikjun to fellows section of team page ([@teikjun](https://github.com/teikjun))\\n - [#3326](https://github.com/facebook/docusaurus/pull/3326) docs(v1): showcase user Casbin ([@hsluoyz](https://github.com/hsluoyz))\\n - [#3316](https://github.com/facebook/docusaurus/pull/3316) docs(v1): add Global CTO Forum to users ([@MirzayevFarid](https://github.com/MirzayevFarid))\\n - [#3310](https://github.com/facebook/docusaurus/pull/3310) docs(v2): add \\"T-Regx\\" website to showcase ([@Danon](https://github.com/Danon))\\n - [#3307](https://github.com/facebook/docusaurus/pull/3307) docs(v2): showcase SpotifyAPI-NET ([@JohnnyCrazy](https://github.com/JohnnyCrazy))\\n - [#3295](https://github.com/facebook/docusaurus/pull/3295) docs(v2): showcase Oxidizer ([@vandreleal](https://github.com/vandreleal))\\n - [#3287](https://github.com/facebook/docusaurus/pull/3287) docs: update README.md with some grammatical corrections ([@shalinikumari50](https://github.com/shalinikumari50))\\n - [#3271](https://github.com/facebook/docusaurus/pull/3271) docs(v2): fix typo ([@thehanimo](https://github.com/thehanimo))\\n - [#3277](https://github.com/facebook/docusaurus/pull/3277) docs(v1): Add Radity to users ([@tolunayakbulut](https://github.com/tolunayakbulut))\\n - [#3276](https://github.com/facebook/docusaurus/pull/3276) docs: corrected some few typos in the docusaurus tech docs ([@ajifrank75](https://github.com/ajifrank75))\\n - [#3249](https://github.com/facebook/docusaurus/pull/3249) docs(v2): fix migration command ([@BogdanDor](https://github.com/BogdanDor))\\n - [#3248](https://github.com/facebook/docusaurus/pull/3248) Added twitter badge and modified discord Badges ([@Souravdey777](https://github.com/Souravdey777))\\n - [#3251](https://github.com/facebook/docusaurus/pull/3251) docs(v2): fix migration command for earlier versions ([@teikjun](https://github.com/teikjun))\\n - [#3252](https://github.com/facebook/docusaurus/pull/3252) docs(v2): docs typos ([@olawanlejoel](https://github.com/olawanlejoel))\\n - [#3111](https://github.com/facebook/docusaurus/pull/3111) docs(v2): clarify theme-original and theme-init ([@Jonathannsegal](https://github.com/Jonathannsegal))\\n - [#3232](https://github.com/facebook/docusaurus/pull/3232) docs(v2): showcase user QA-Board ([@arthur-flam](https://github.com/arthur-flam))\\n - [#3205](https://github.com/facebook/docusaurus/pull/3205) docs: format reference links ([@lebogangolifant](https://github.com/lebogangolifant))\\n - [#3194](https://github.com/facebook/docusaurus/pull/3194) docs(v2): Added switch config docs to theme-classic API ([@Drewbi](https://github.com/Drewbi))\\n - [#3201](https://github.com/facebook/docusaurus/pull/3201) docs(v2): removed duplicate text under \\"Using React\\" section ([@boosh511](https://github.com/boosh511))\\n - [#3186](https://github.com/facebook/docusaurus/pull/3186) docs(v1): formatting changelog ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#3202](https://github.com/facebook/docusaurus/pull/3202) fix(v2): fix svg loader ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n\\n## :house: Internal\\n\\n- `docusaurus-migrate`\\n - [#3323](https://github.com/facebook/docusaurus/pull/3323) test(v2): Add unit test for migration of config file ([@BogdanDor](https://github.com/BogdanDor))\\n- `docusaurus-theme-classic`\\n - [#3343](https://github.com/facebook/docusaurus/pull/3343) refactor(v2): announcement bar bad spelling + minor refactors ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-blog`\\n - [#3339](https://github.com/facebook/docusaurus/pull/3339) test(v2): make blog posts unit test ordering determinate ([@BogdanDor](https://github.com/BogdanDor))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-types`\\n - [#3306](https://github.com/facebook/docusaurus/pull/3306) chore(v2): Define type for markdown right table of contents ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-module-type-aliases`, `docusaurus`\\n - [#3244](https://github.com/facebook/docusaurus/pull/3244) chore(v2): tighten up the TypeScript onboarding ([@orta](https://github.com/orta))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils`, `docusaurus`\\n - [#3245](https://github.com/facebook/docusaurus/pull/3245) refactor(v2): docs plugin refactor ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#3282](https://github.com/facebook/docusaurus/pull/3282) chore(v2): fix javascript-serialize vulnerability ([@slorber](https://github.com/slorber))\\n - [#3265](https://github.com/facebook/docusaurus/pull/3265) chore(v2): upgrade terser-webpack-plugin ([@dschaller](https://github.com/dschaller))\\n- Other\\n - [#3241](https://github.com/facebook/docusaurus/pull/3241) chore(deps): bump prismjs from 1.20.0 to 1.21.0 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#3259](https://github.com/facebook/docusaurus/pull/3259) chore(v2): fix slow commits due to lint-staged ([@slorber](https://github.com/slorber))\\n - [#3197](https://github.com/facebook/docusaurus/pull/3197) chore(v2): lockfile update ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`\\n - [#3218](https://github.com/facebook/docusaurus/pull/3218) chore(v1): release 1.14.6 ([@slorber](https://github.com/slorber))\\n\\n## :running: Performance\\n\\n- `docusaurus-plugin-client-redirects`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#3238](https://github.com/facebook/docusaurus/pull/3238) refactor(v2): precompile ETA templates ([@slorber](https://github.com/slorber))\\n\\n## Committers: 39\\n\\n- Ali Hosseini ([@Ako92](https://github.com/Ako92))\\n- Amy Lei ([@amy-lei](https://github.com/amy-lei))\\n- Anshul Goyal ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- Archit ([@arcvats](https://github.com/arcvats))\\n- Arthur Flam ([@arthur-flam](https://github.com/arthur-flam))\\n- Ben Gubler ([@nebrelbug](https://github.com/nebrelbug))\\n- Bogdan Doroschenko ([@BogdanDor](https://github.com/BogdanDor))\\n- Daniel Wilkowski ([@Danon](https://github.com/Danon))\\n- Derek ([@dschaller](https://github.com/dschaller))\\n- Drew Alexander ([@Drewbi](https://github.com/Drewbi))\\n- Fanny ([@fanny](https://github.com/fanny))\\n- Franklyn Chisom ([@ajifrank75](https://github.com/ajifrank75))\\n- Fran\xe7ois Chalifour ([@francoischalifour](https://github.com/francoischalifour))\\n- Govardhan Srinivas ([@govardhan-srinivas](https://github.com/govardhan-srinivas))\\n- Hani Mohammed ([@thehanimo](https://github.com/thehanimo))\\n- Jean-Marc Saad ([@JeanMarcSaad](https://github.com/JeanMarcSaad))\\n- Jonas Dellinger ([@JohnnyCrazy](https://github.com/JohnnyCrazy))\\n- Jonathan ([@Jonathannsegal](https://github.com/Jonathannsegal))\\n- Manuel Cepeda ([@mecm1993](https://github.com/mecm1993))\\n- Mirzayev Farid ([@MirzayevFarid](https://github.com/MirzayevFarid))\\n- Nisarag ([@FocalChord](https://github.com/FocalChord))\\n- Olawanle Joel ([@olawanlejoel](https://github.com/olawanlejoel))\\n- Orta Therox ([@orta](https://github.com/orta))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- Shubham Kumar ([@imskr](https://github.com/imskr))\\n- Sourav Dey ([@Souravdey777](https://github.com/Souravdey777))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Teik Jun ([@teikjun](https://github.com/teikjun))\\n- Tolunay Akbulut ([@tolunayakbulut](https://github.com/tolunayakbulut))\\n- Vandr\xe9 Leal ([@vandreleal](https://github.com/vandreleal))\\n- Vincent ([@Vinnl](https://github.com/Vinnl))\\n- Yang Luo ([@hsluoyz](https://github.com/hsluoyz))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- [@adinaja](https://github.com/adinaja)\\n- [@leoigel](https://github.com/leoigel)\\n- [@shalinikumari50](https://github.com/shalinikumari50)\\n- alex busnelli ([@boosh511](https://github.com/boosh511))\\n- lebogang Olifant ([@lebogangolifant](https://github.com/lebogangolifant))\\n- ylemkimon ([@ylemkimon](https://github.com/ylemkimon))"},{"id":"/2.0.0-alpha.61","metadata":{"permalink":"/changelog/2.0.0-alpha.61","source":"@site/changelog/source/2.0.0-alpha.61.md","title":"2.0.0-alpha.61","description":"New Feature","date":"2020-08-01T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Bucky Maler","alias":"BuckyMaler","url":"https://github.com/BuckyMaler","imageURL":"https://github.com/BuckyMaler.png","key":"BuckyMaler","page":null},{"name":"Drew Alexander","alias":"Drewbi","url":"https://github.com/Drewbi","imageURL":"https://github.com/Drewbi.png","key":"Drewbi","page":null},{"name":"Fran\xe7ois Chalifour","alias":"francoischalifour","url":"https://github.com/francoischalifour","imageURL":"https://github.com/francoischalifour.png","key":"francoischalifour","page":null},{"name":"Faizan","alias":"mdfaizan7","url":"https://github.com/mdfaizan7","imageURL":"https://github.com/mdfaizan7.png","key":"mdfaizan7","page":null},{"name":"M\xe9ril","alias":"mpsq","url":"https://github.com/mpsq","imageURL":"https://github.com/mpsq.png","key":"mpsq","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Teik Jun","alias":"teikjun","url":"https://github.com/teikjun","imageURL":"https://github.com/teikjun.png","key":"teikjun","page":null},{"name":"Xuqian","alias":"zxuqian","url":"https://github.com/zxuqian","imageURL":"https://github.com/zxuqian.png","key":"zxuqian","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-08-01T20:00","authors":["BuckyMaler","Drewbi","francoischalifour","mdfaizan7","mpsq","slorber","teikjun","zxuqian"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.62","permalink":"/changelog/2.0.0-alpha.62"},"nextItem":{"title":"2.0.0-alpha.60","permalink":"/changelog/2.0.0-alpha.60"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-types`, `docusaurus`\\n - [#3083](https://github.com/facebook/docusaurus/pull/3083) feat(v2): warn user when there are conflicting routes ([@teikjun](https://github.com/teikjun))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-utils-validation`, `docusaurus-utils`\\n - [#3158](https://github.com/facebook/docusaurus/pull/3158) feat(v2): markdown pages ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#3127](https://github.com/facebook/docusaurus/pull/3127) feat(v2): dark mode toggle customization ([@Drewbi](https://github.com/Drewbi))\\n- `docusaurus-theme-search-algolia`\\n - [#3166](https://github.com/facebook/docusaurus/pull/3166) feat(v2): improve Algolia search accessibility ([@francoischalifour](https://github.com/francoischalifour))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#2359](https://github.com/facebook/docusaurus/pull/2359) feat(v2): support custom description for blog-only mode ([@zxuqian](https://github.com/zxuqian))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-mdx-loader`, `docusaurus`\\n - [#3180](https://github.com/facebook/docusaurus/pull/3180) fix(v2): fix markdown images always using webpack url-loader ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#3171](https://github.com/facebook/docusaurus/pull/3171) fix(v2): tab label showing outline & background when clicked ([@mdfaizan7](https://github.com/mdfaizan7))\\n- `docusaurus-init`, `docusaurus-theme-classic`\\n - [#3168](https://github.com/facebook/docusaurus/pull/3168) fix(v2): fix link items refusing attributes like target, rel etc... ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#3162](https://github.com/facebook/docusaurus/pull/3162) fix(v2): inability for users to pin their docusaurus version ([@BuckyMaler](https://github.com/BuckyMaler))\\n\\n## :memo: Documentation\\n\\n- [#3163](https://github.com/facebook/docusaurus/pull/3163) docs(v2): showcase user questdb ([@mpsq](https://github.com/mpsq))\\n\\n## :house: Internal\\n\\n- Other\\n - [#3164](https://github.com/facebook/docusaurus/pull/3164) chore(deps): bump elliptic from 6.5.2 to 6.5.3 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#3157](https://github.com/facebook/docusaurus/pull/3157) chore(v2): remove alpha 59 doc ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`, `docusaurus-init-1.x`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`, `lqip-loader`, `stylelint-copyright`\\n - [#3154](https://github.com/facebook/docusaurus/pull/3154) chore(v2): prepare v2.0.0.alpha-60 release ([@slorber](https://github.com/slorber))\\n\\n## Committers: 8\\n\\n- Bucky Maler ([@BuckyMaler](https://github.com/BuckyMaler))\\n- Drew Alexander ([@Drewbi](https://github.com/Drewbi))\\n- Faizan ([@mdfaizan7](https://github.com/mdfaizan7))\\n- Fran\xe7ois Chalifour ([@francoischalifour](https://github.com/francoischalifour))\\n- M\xe9ril ([@mpsq](https://github.com/mpsq))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Teik Jun ([@teikjun](https://github.com/teikjun))\\n- Xuqian ([@zxuqian](https://github.com/zxuqian))"},{"id":"/2.0.0-alpha.60","metadata":{"permalink":"/changelog/2.0.0-alpha.60","source":"@site/changelog/source/2.0.0-alpha.60.md","title":"2.0.0-alpha.60","description":"New Feature","date":"2020-07-29T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Hob Adams","alias":"hobadams","url":"https://github.com/hobadams","imageURL":"https://github.com/hobadams.png","key":"hobadams","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Teik Jun","alias":"teikjun","url":"https://github.com/teikjun","imageURL":"https://github.com/teikjun.png","key":"teikjun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-07-29T20:00","authors":["hobadams","Simek","slorber","teikjun"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.61","permalink":"/changelog/2.0.0-alpha.61"},"nextItem":{"title":"2.0.0-alpha.59","permalink":"/changelog/2.0.0-alpha.59"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus`\\n - [#3134](https://github.com/facebook/docusaurus/pull/3134) feat(v2): add validation escape hatch ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`\\n - [#3124](https://github.com/facebook/docusaurus/pull/3124) feat(v1): add \'slugPreprocessor\' config option to allow users customize the hash links ([@Simek](https://github.com/Simek))\\n- `docusaurus-theme-search-algolia`\\n - [#3133](https://github.com/facebook/docusaurus/pull/3133) feat(v2): add themeConfig validation to algolia theme ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#3142](https://github.com/facebook/docusaurus/pull/3142) fix(v2): config validation fixes + add tests for config validation ([@teikjun](https://github.com/teikjun))\\n- `docusaurus`\\n - [#3149](https://github.com/facebook/docusaurus/pull/3149) fix(v2): BrowserOnly should not return undefined ([@slorber](https://github.com/slorber))\\n - [#3143](https://github.com/facebook/docusaurus/pull/3143) fix(v2): absolute Links should be automatically prefixed by baseurl ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus`\\n - [#3141](https://github.com/facebook/docusaurus/pull/3141) fix(v2): remove buggy routesLoaded + deprecate routesLoaded lifecycle ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#3140](https://github.com/facebook/docusaurus/pull/3140) fix(v2): navbar item links should allow unknown attributes ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-search-algolia`\\n - [#3138](https://github.com/facebook/docusaurus/pull/3138) fix(v2): add accessible label for Algolia search button ([@hobadams](https://github.com/hobadams))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus`\\n - [#3120](https://github.com/facebook/docusaurus/pull/3120) fix(v2): make config validation less strict ([@teikjun](https://github.com/teikjun))\\n\\n## :memo: Documentation\\n\\n- [#3145](https://github.com/facebook/docusaurus/pull/3145) docs(v2): add myself to /team page + add TeamProfileCard component ([@slorber](https://github.com/slorber))\\n- [#3146](https://github.com/facebook/docusaurus/pull/3146) docs(v2): prettier docs ([@slorber](https://github.com/slorber))\\n- [#3116](https://github.com/facebook/docusaurus/pull/3116) chore(v2): docs updates after release ([@slorber](https://github.com/slorber))\\n\\n## :house: Internal\\n\\n- Other\\n - [#3130](https://github.com/facebook/docusaurus/pull/3130) chore(v2): remove old versions ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`, `docusaurus-init-1.x`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-bootstrap`, `docusaurus-preset-classic`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`, `lqip-loader`, `stylelint-copyright`\\n - [#3114](https://github.com/facebook/docusaurus/pull/3114) chore(v2): prepare v2.0.0.alpha-59 release ([@slorber](https://github.com/slorber))\\n\\n## Committers: 4\\n\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- Hob Adams ([@hobadams](https://github.com/hobadams))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Teik Jun ([@teikjun](https://github.com/teikjun))"},{"id":"/2.0.0-alpha.59","metadata":{"permalink":"/changelog/2.0.0-alpha.59","source":"@site/changelog/source/2.0.0-alpha.59.md","title":"2.0.0-alpha.59","description":"New Feature","date":"2020-07-24T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Mahfoudh Arous","alias":"aladin002dz","url":"https://github.com/aladin002dz","imageURL":"https://github.com/aladin002dz.png","key":"aladin002dz","page":null},{"name":"Eric Dobbertin","alias":"aldeed","url":"https://github.com/aldeed","imageURL":"https://github.com/aldeed.png","key":"aldeed","page":null},{"name":"Amirul Ahmad","alias":"amirulahmad","url":"https://github.com/amirulahmad","imageURL":"https://github.com/amirulahmad.png","key":"amirulahmad","page":null},{"name":"Anshul Goyal","alias":"anshulrgoyal","url":"https://github.com/anshulrgoyal","imageURL":"https://github.com/anshulrgoyal.png","key":"anshulrgoyal","page":null},{"name":"Ayan Banerjee","alias":"ayan-b","url":"https://github.com/ayan-b","imageURL":"https://github.com/ayan-b.png","key":"ayan-b","page":null},{"name":"Jeremy Asuncion","alias":"codemonkey800","url":"https://github.com/codemonkey800","imageURL":"https://github.com/codemonkey800.png","key":"codemonkey800","page":null},{"name":"Daniel Hochman","alias":"danielhochman","url":"https://github.com/danielhochman","imageURL":"https://github.com/danielhochman.png","key":"danielhochman","page":null},{"name":"Deepak Giri","alias":"dpkg","url":"https://github.com/dpkg","imageURL":"https://github.com/dpkg.png","key":"dpkg","page":null},{"name":"ehsan jso","alias":"ehsanjso","url":"https://github.com/ehsanjso","imageURL":"https://github.com/ehsanjso.png","key":"ehsanjso","page":null},{"name":"Arsalan Khattak","alias":"eKhattak","url":"https://github.com/eKhattak","imageURL":"https://github.com/eKhattak.png","key":"eKhattak","page":null},{"name":"Fran\xe7ois Chalifour","alias":"francoischalifour","url":"https://github.com/francoischalifour","imageURL":"https://github.com/francoischalifour.png","key":"francoischalifour","page":null},{"name":"matbub","alias":"hi-matbub","url":"https://github.com/hi-matbub","imageURL":"https://github.com/hi-matbub.png","key":"hi-matbub","page":null},{"name":"John Knox","alias":"jknoxville","url":"https://github.com/jknoxville","imageURL":"https://github.com/jknoxville.png","key":"jknoxville","page":null},{"name":"Jordan Liu","alias":"jordanliu","url":"https://github.com/jordanliu","imageURL":"https://github.com/jordanliu.png","key":"jordanliu","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Ben Gubler","alias":"nebrelbug","url":"https://github.com/nebrelbug","imageURL":"https://github.com/nebrelbug.png","key":"nebrelbug","page":null},{"name":"Paul Cowgill","alias":"pcowgill","url":"https://github.com/pcowgill","imageURL":"https://github.com/pcowgill.png","key":"pcowgill","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Frida Hjelm","alias":"svtfrida","url":"https://github.com/svtfrida","imageURL":"https://github.com/svtfrida.png","key":"svtfrida","page":null},{"name":"Taylor Allen","alias":"taylorallen0913","url":"https://github.com/taylorallen0913","imageURL":"https://github.com/taylorallen0913.png","key":"taylorallen0913","page":null},{"name":"Teik Jun","alias":"teikjun","url":"https://github.com/teikjun","imageURL":"https://github.com/teikjun.png","key":"teikjun","page":null},{"name":"Vandr\xe9 Leal","alias":"vandreleal","url":"https://github.com/vandreleal","imageURL":"https://github.com/vandreleal.png","key":"vandreleal","page":null},{"name":"Rian Finnegan","alias":"xtellurian","url":"https://github.com/xtellurian","imageURL":"https://github.com/xtellurian.png","key":"xtellurian","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-07-24T20:00","authors":["aladin002dz","aldeed","amirulahmad","anshulrgoyal","ayan-b","codemonkey800","danielhochman","dpkg","ehsanjso","eKhattak","francoischalifour","hi-matbub","jknoxville","jordanliu","lex111","nebrelbug","pcowgill","SamChou19815","slorber","svtfrida","taylorallen0913","teikjun","vandreleal","xtellurian","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.60","permalink":"/changelog/2.0.0-alpha.60"},"nextItem":{"title":"2.0.0-alpha.58","permalink":"/changelog/2.0.0-alpha.58"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-migrate`, `docusaurus-plugin-client-redirects`\\n - [#3015](https://github.com/facebook/docusaurus/pull/3015) feat: automate migration from v1 to v2 ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- `docusaurus-init`\\n - [#3105](https://github.com/facebook/docusaurus/pull/3105) feat(v2): add docusaurus script for npm users ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-search-algolia`\\n - [#2815](https://github.com/facebook/docusaurus/pull/2815) feat(v2): introduce DocSearch v3 search ([@francoischalifour](https://github.com/francoischalifour))\\n- `docusaurus-init`, `docusaurus-types`, `docusaurus`\\n - [#3059](https://github.com/facebook/docusaurus/pull/3059) feat(v2): broken links detection ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#3084](https://github.com/facebook/docusaurus/pull/3084) feat(v2): absolute slugs and slug resolution system ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`\\n - [#3069](https://github.com/facebook/docusaurus/pull/3069) feat(v2): support for adding relative images and handling broken image links ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- `docusaurus-init`, `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-debug`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#2971](https://github.com/facebook/docusaurus/pull/2971) feat(v2): global data + useGlobalData + docs versions dropdown ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus`\\n - [#3080](https://github.com/facebook/docusaurus/pull/3080) feat(v2): add support for serve command ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-debug`, `docusaurus-types`, `docusaurus`\\n - [#3058](https://github.com/facebook/docusaurus/pull/3058) feat(v2): useDocusaurusContext().siteMetadata ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#3032](https://github.com/facebook/docusaurus/pull/3032) feat(v2): notify users when docusaurus version is outdated ([@teikjun](https://github.com/teikjun))\\n - [#3033](https://github.com/facebook/docusaurus/pull/3033) feat(v2): add useBaseUrlUtils() hook ([@slorber](https://github.com/slorber))\\n - [#3006](https://github.com/facebook/docusaurus/pull/3006) feat(v2): prompt user when default port is in use ([@taylorallen0913](https://github.com/taylorallen0913))\\n- `docusaurus-module-type-aliases`, `docusaurus-plugin-debug`, `docusaurus`\\n - [#3050](https://github.com/facebook/docusaurus/pull/3050) feat(v2): Collect plugin versions to allow them to be inspected in debug plugin ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-theme-classic`\\n - [#3038](https://github.com/facebook/docusaurus/pull/3038) feat(v2): Support keywords meta in blog posts ([@dpkg](https://github.com/dpkg))\\n - [#2974](https://github.com/facebook/docusaurus/pull/2974) feat(v2): Error when hooks depends on context is used outside of Layout ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-pwa`, `docusaurus`\\n - [#2205](https://github.com/facebook/docusaurus/pull/2205) feat(v2): Plugin for Offline/PWA support ([@codemonkey800](https://github.com/codemonkey800))\\n- `docusaurus-plugin-ideal-image`, `docusaurus-types`, `docusaurus`\\n - [#2994](https://github.com/facebook/docusaurus/pull/2994) feat(v2): configureWebpack merge strategy + use file-loader for common asset types ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`\\n - [#2989](https://github.com/facebook/docusaurus/pull/2989) feat(v2): add disableVersioning config to docs plugin ([@slorber](https://github.com/slorber))\\n - [#2877](https://github.com/facebook/docusaurus/pull/2877) feat(v2): allow skipping build docs for next version ([@lex111](https://github.com/lex111))\\n- `docusaurus-1.x`\\n - [#2955](https://github.com/facebook/docusaurus/pull/2955) feat(v1): add deletedDocs config to fix unwanted versioning fallback ([@aldeed](https://github.com/aldeed))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-types`, `docusaurus`\\n - [#2943](https://github.com/facebook/docusaurus/pull/2943) feat(v2): option and config validation life cycle method for official plugins ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-init`, `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-debug`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#2971](https://github.com/facebook/docusaurus/pull/2971) feat(v2): global data + useGlobalData + docs versions dropdown ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#3012](https://github.com/facebook/docusaurus/pull/3012) fix(v2): refactor color mode system ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#3107](https://github.com/facebook/docusaurus/pull/3107) fix(v2): broken links detector: ignore existing folders ([@slorber](https://github.com/slorber))\\n - [#3112](https://github.com/facebook/docusaurus/pull/3112) fix(v2): baseUrl is wrongly appended to anchor links ([@slorber](https://github.com/slorber))\\n - [#3063](https://github.com/facebook/docusaurus/pull/3063) fix(v2): classify link hrefs with protocol identifier as internal ([@svtfrida](https://github.com/svtfrida))\\n- `docusaurus-theme-classic`\\n - [#3106](https://github.com/facebook/docusaurus/pull/3106) fix(v2): dropdown navbar item: validation too strict ([@slorber](https://github.com/slorber))\\n - [#3029](https://github.com/facebook/docusaurus/pull/3029) fix(v2): change description for blog post paginator ([@teikjun](https://github.com/teikjun))\\n- `docusaurus-plugin-content-docs`\\n - [#3108](https://github.com/facebook/docusaurus/pull/3108) fix(v2): fix docs instance path typo ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-pages`\\n - [#3025](https://github.com/facebook/docusaurus/pull/3025) fix(v2):pass siteConfig as prop to pages ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- `docusaurus-init`\\n - [#3008](https://github.com/facebook/docusaurus/pull/3008) chore(v2): Add E2E test for yarn v2 ([@SamChou19815](https://github.com/SamChou19815))\\n- Other\\n - [#3017](https://github.com/facebook/docusaurus/pull/3017) fix(v2): fix broken links on versions page ([@teikjun](https://github.com/teikjun))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#3012](https://github.com/facebook/docusaurus/pull/3012) fix(v2): refactor color mode system ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`, `docusaurus`\\n - [#3001](https://github.com/facebook/docusaurus/pull/3001) fix(v2): refactor routes.ts + add route hash for chunkNames key ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-utils`, `docusaurus`\\n - [#3010](https://github.com/facebook/docusaurus/pull/3010) fix(v2): make client-redirect-plugin not baseUrl sensitive ([@teikjun](https://github.com/teikjun))\\n- `docusaurus-1.x`\\n - [#2993](https://github.com/facebook/docusaurus/pull/2993) fix(relative path): last update date and by isn\u2019t generated if localh\u2026 ([@amirulahmad](https://github.com/amirulahmad))\\n- `docusaurus-plugin-client-redirects`\\n - [#2969](https://github.com/facebook/docusaurus/pull/2969) fix: fromExtensions and toExtensions translation when used with baseUrl ([@jknoxville](https://github.com/jknoxville))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#3088](https://github.com/facebook/docusaurus/pull/3088) improve navbar menu ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`\\n - [#3087](https://github.com/facebook/docusaurus/pull/3087) refactor(v2): async md image transformer + pathname protocol as an escape hatch ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-theme-live-codeblock`, `docusaurus-types`\\n - [#2970](https://github.com/facebook/docusaurus/pull/2970) feat(v2): add option validation for remaining official plugins ([@teikjun](https://github.com/teikjun))\\n- `docusaurus`\\n - [#2987](https://github.com/facebook/docusaurus/pull/2987) chore(v2): use joi for config validation ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n\\n## :memo: Documentation\\n\\n- [#3026](https://github.com/facebook/docusaurus/pull/3026) docs(v2): add documentation for migration command ([@teikjun](https://github.com/teikjun))\\n- [#3094](https://github.com/facebook/docusaurus/pull/3094) docs(v2): showcase user Clutch ([@danielhochman](https://github.com/danielhochman))\\n- [#3101](https://github.com/facebook/docusaurus/pull/3101) docs(v2):Add azure-pipelines CI guide ([@ayan-b](https://github.com/ayan-b))\\n- [#3098](https://github.com/facebook/docusaurus/pull/3098) docs: Add azure-pipelines CI guide ([@ayan-b](https://github.com/ayan-b))\\n- [#3086](https://github.com/facebook/docusaurus/pull/3086) doc(v2): replace heading position ([@eKhattak](https://github.com/eKhattak))\\n- [#3082](https://github.com/facebook/docusaurus/pull/3082) fixing few typos and enhancing few sentences clarity ([@aladin002dz](https://github.com/aladin002dz))\\n- [#3078](https://github.com/facebook/docusaurus/pull/3078) Updated link for #docusaurus-2-dev discord ([@jordanliu](https://github.com/jordanliu))\\n- [#3076](https://github.com/facebook/docusaurus/pull/3076) docs(v2): showcase Runlet ([@vandreleal](https://github.com/vandreleal))\\n- [#3040](https://github.com/facebook/docusaurus/pull/3040) docs(v2): correct the documentation for docs-only mode ([@teikjun](https://github.com/teikjun))\\n- [#3034](https://github.com/facebook/docusaurus/pull/3034) docs(v2): showcase user Tasit ([@pcowgill](https://github.com/pcowgill))\\n- [#3022](https://github.com/facebook/docusaurus/pull/3022) docs(v2): showcase Eta ([@nebrelbug](https://github.com/nebrelbug))\\n- [#3011](https://github.com/facebook/docusaurus/pull/3011) docs(v1): external links ([@slorber](https://github.com/slorber))\\n- [#2997](https://github.com/facebook/docusaurus/pull/2997) docs(v2): Document TypeScript support ([@SamChou19815](https://github.com/SamChou19815))\\n- [#2973](https://github.com/facebook/docusaurus/pull/2973) docs(v2): Fix typo in markdown-features ([@ehsanjso](https://github.com/ehsanjso))\\n- [#2991](https://github.com/facebook/docusaurus/pull/2991) Showcase Amphora Data ([@xtellurian](https://github.com/xtellurian))\\n- [#2983](https://github.com/facebook/docusaurus/pull/2983) docs(v2): add plugin redirects production build note ([@slorber](https://github.com/slorber))\\n- [#2967](https://github.com/facebook/docusaurus/pull/2967) docs(v2): fix typos in plugin-content examples ([@hi-matbub](https://github.com/hi-matbub))\\n- [#2960](https://github.com/facebook/docusaurus/pull/2960) doc(v2): publish doc update after alpha.58 release ([@slorber](https://github.com/slorber))\\n- [#2966](https://github.com/facebook/docusaurus/pull/2966) docs(v2): fix typo in plugin-content-pages example ([@hi-matbub](https://github.com/hi-matbub))\\n\\n## :house: Internal\\n\\n- `docusaurus-migrate`\\n - [#3113](https://github.com/facebook/docusaurus/pull/3113) chore(v2): ability to test the migration cli easily ([@slorber](https://github.com/slorber))\\n- Other\\n - [#3099](https://github.com/facebook/docusaurus/pull/3099) fix(v2): netlify.toml shouldn\'t affect v1 site deployment config ([@slorber](https://github.com/slorber))\\n - [#3068](https://github.com/facebook/docusaurus/pull/3068) chore(deps): bump lodash from 4.17.15 to 4.17.19 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#2958](https://github.com/facebook/docusaurus/pull/2958) docs(v2): rename 2.0.0-alpha.57 to 2.0.0-alpha.58 ([@yangshun](https://github.com/yangshun))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus`\\n - [#3093](https://github.com/facebook/docusaurus/pull/3093) fix(v2): fix recent baseurl issues ([@slorber](https://github.com/slorber))\\n- `docusaurus-mdx-loader`\\n - [#3087](https://github.com/facebook/docusaurus/pull/3087) refactor(v2): async md image transformer + pathname protocol as an escape hatch ([@slorber](https://github.com/slorber))\\n- `docusaurus-plugin-pwa`, `docusaurus`\\n - [#3055](https://github.com/facebook/docusaurus/pull/3055) chore(v2): Adopt corejs 3 and only import at entry point ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-init`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-utils`, `docusaurus`\\n - [#2998](https://github.com/facebook/docusaurus/pull/2998) chore(v2): refactor yarn tsc to yarn build + add theme-classic watch mode ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`\\n - [#3008](https://github.com/facebook/docusaurus/pull/3008) chore(v2): Add E2E test for yarn v2 ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`, `docusaurus`\\n - [#3001](https://github.com/facebook/docusaurus/pull/3001) fix(v2): refactor routes.ts + add route hash for chunkNames key ([@slorber](https://github.com/slorber))\\n- `docusaurus`\\n - [#3007](https://github.com/facebook/docusaurus/pull/3007) fix(v2): Add two missing docusaurus core babel dependency ([@SamChou19815](https://github.com/SamChou19815))\\n - [#2987](https://github.com/facebook/docusaurus/pull/2987) chore(v2): use joi for config validation ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n - [#2950](https://github.com/facebook/docusaurus/pull/2950) chore(v2): Implement a simple E2E testing mechanism for `docusausus start` ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-theme-live-codeblock`, `docusaurus-types`\\n - [#2970](https://github.com/facebook/docusaurus/pull/2970) feat(v2): add option validation for remaining official plugins ([@teikjun](https://github.com/teikjun))\\n- `docusaurus-theme-classic`\\n - [#2996](https://github.com/facebook/docusaurus/pull/2996) chore(v2): Merge devDependencies in theme-classic ([@SamChou19815](https://github.com/SamChou19815))\\n - [#2977](https://github.com/facebook/docusaurus/pull/2977) chore(v2): Remove extraneous package-lock.json ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-client-redirects`\\n - [#2962](https://github.com/facebook/docusaurus/pull/2962) Feat: replace yup with joi for cleaner validation ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- `docusaurus-init`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#2976](https://github.com/facebook/docusaurus/pull/2976) chore(v2): Fix more eslint errors ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-sitemap`, `docusaurus-utils`, `docusaurus`, `lqip-loader`\\n - [#2972](https://github.com/facebook/docusaurus/pull/2972) chore(v2): Fix a lot of eslint warnings ([@SamChou19815](https://github.com/SamChou19815))\\n\\n## Committers: 25\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Amirul Ahmad ([@amirulahmad](https://github.com/amirulahmad))\\n- Anshul Goyal ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- Arsalan Khattak ([@eKhattak](https://github.com/eKhattak))\\n- Ayan Banerjee ([@ayan-b](https://github.com/ayan-b))\\n- Ben Gubler ([@nebrelbug](https://github.com/nebrelbug))\\n- Daniel Hochman ([@danielhochman](https://github.com/danielhochman))\\n- Deepak Giri ([@dpkg](https://github.com/dpkg))\\n- Eric Dobbertin ([@aldeed](https://github.com/aldeed))\\n- Fran\xe7ois Chalifour ([@francoischalifour](https://github.com/francoischalifour))\\n- Frida Hjelm ([@svtfrida](https://github.com/svtfrida))\\n- Jeremy Asuncion ([@codemonkey800](https://github.com/codemonkey800))\\n- John Knox ([@jknoxville](https://github.com/jknoxville))\\n- Jordan Liu ([@jordanliu](https://github.com/jordanliu))\\n- Mahfoudh Arous ([@aladin002dz](https://github.com/aladin002dz))\\n- Paul Cowgill ([@pcowgill](https://github.com/pcowgill))\\n- Rian Finnegan ([@xtellurian](https://github.com/xtellurian))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Taylor Allen ([@taylorallen0913](https://github.com/taylorallen0913))\\n- Teik Jun ([@teikjun](https://github.com/teikjun))\\n- Vandr\xe9 Leal ([@vandreleal](https://github.com/vandreleal))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- ehsan jso ([@ehsanjso](https://github.com/ehsanjso))\\n- matbub ([@hi-matbub](https://github.com/hi-matbub))"},{"id":"/2.0.0-alpha.58","metadata":{"permalink":"/changelog/2.0.0-alpha.58","source":"@site/changelog/source/2.0.0-alpha.58.md","title":"2.0.0-alpha.58","description":"New Feature","date":"2020-06-18T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"hackerman","alias":"aeneasr","url":"https://github.com/aeneasr","imageURL":"https://github.com/aeneasr.png","key":"aeneasr","page":null},{"name":"Anshul Goyal","alias":"anshulrgoyal","url":"https://github.com/anshulrgoyal","imageURL":"https://github.com/anshulrgoyal.png","key":"anshulrgoyal","page":null},{"name":"belokonm","alias":"belokonm","url":"https://github.com/belokonm","imageURL":"https://github.com/belokonm.png","key":"belokonm","page":null},{"name":"Drew Alexander","alias":"Drewbi","url":"https://github.com/Drewbi","imageURL":"https://github.com/Drewbi.png","key":"Drewbi","page":null},{"name":"Fanny","alias":"fanny","url":"https://github.com/fanny","imageURL":"https://github.com/fanny.png","key":"fanny","page":null},{"name":"Guillaume Jacquart","alias":"guillaumejacquart","url":"https://github.com/guillaumejacquart","imageURL":"https://github.com/guillaumejacquart.png","key":"guillaumejacquart","page":null},{"name":"Joel Marcey","alias":"JoelMarcey","url":"https://github.com/JoelMarcey","imageURL":"https://github.com/JoelMarcey.png","key":"JoelMarcey","page":null},{"name":"JavaScript Joe","alias":"jsjoeio","url":"https://github.com/jsjoeio","imageURL":"https://github.com/jsjoeio.png","key":"jsjoeio","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"moonrailgun","alias":"moonrailgun","url":"https://github.com/moonrailgun","imageURL":"https://github.com/moonrailgun.png","key":"moonrailgun","page":null},{"name":"Koki Nishihara","alias":"Nishikoh","url":"https://github.com/Nishikoh","imageURL":"https://github.com/Nishikoh.png","key":"Nishikoh","page":null},{"name":"Paul Glezen","alias":"pglezen","url":"https://github.com/pglezen","imageURL":"https://github.com/pglezen.png","key":"pglezen","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Teik Jun","alias":"teikjun","url":"https://github.com/teikjun","imageURL":"https://github.com/teikjun.png","key":"teikjun","page":null},{"name":"tetunori","alias":"tetunori","url":"https://github.com/tetunori","imageURL":"https://github.com/tetunori.png","key":"tetunori","page":null},{"name":"Tom Brien","alias":"TomBrien","url":"https://github.com/TomBrien","imageURL":"https://github.com/TomBrien.png","key":"TomBrien","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-06-18T20:00","authors":["aeneasr","anshulrgoyal","belokonm","Drewbi","fanny","guillaumejacquart","JoelMarcey","jsjoeio","lex111","moonrailgun","Nishikoh","pglezen","SamChou19815","slorber","teikjun","tetunori","TomBrien","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.59","permalink":"/changelog/2.0.0-alpha.59"},"nextItem":{"title":"2.0.0-alpha.57","permalink":"/changelog/2.0.0-alpha.57"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#2916](https://github.com/facebook/docusaurus/pull/2916) feat(v2): add a banner that links to latest version of documentation ([@teikjun](https://github.com/teikjun))\\n - [#2682](https://github.com/facebook/docusaurus/pull/2682) feat(v2): expanded sidebar categories by default ([@jsjoeio](https://github.com/jsjoeio))\\n- `docusaurus-plugin-debug`, `docusaurus-preset-classic`\\n - [#2928](https://github.com/facebook/docusaurus/pull/2928) feat(v2): Implement proof-of-concept Docusaurus Debug Dashboard ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-init`, `docusaurus`\\n - [#2903](https://github.com/facebook/docusaurus/pull/2903) feat(v2): Allow configuring babel via babel.config.js ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-client-redirects`, `docusaurus-utils`\\n - [#2793](https://github.com/facebook/docusaurus/pull/2793) feat(v2): docusaurus-plugin-client-redirects ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-live-codeblock`\\n - [#2826](https://github.com/facebook/docusaurus/pull/2826) feat(v2): allow adding components to react-live scope ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#2856](https://github.com/facebook/docusaurus/pull/2856) feat(v2): allow specifying meta image for blog posts ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2841](https://github.com/facebook/docusaurus/pull/2841) feat(v2): Allow swizzling prism-include-languages in theme-classic ([@SamChou19815](https://github.com/SamChou19815))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-init`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#2895](https://github.com/facebook/docusaurus/pull/2895) chore(v2): replace classnames with clsx ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`\\n - [#2861](https://github.com/facebook/docusaurus/pull/2861) fix(v2): do not create route for document that serve as docs home page ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#2682](https://github.com/facebook/docusaurus/pull/2682) feat(v2): expanded sidebar categories by default ([@jsjoeio](https://github.com/jsjoeio))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`\\n - [#2905](https://github.com/facebook/docusaurus/pull/2905) fix(v2): fix docs homepage permalink issues ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#2932](https://github.com/facebook/docusaurus/pull/2932) fix(v2): Add hooks to detect window resize, toggle off sidebar and navbar in desktop ([@guillaumejacquart](https://github.com/guillaumejacquart))\\n - [#2909](https://github.com/facebook/docusaurus/pull/2909) fix(v2): adjust anchor offset when routes switched ([@lex111](https://github.com/lex111))\\n - [#2896](https://github.com/facebook/docusaurus/pull/2896) fix(v2): set correct canonical url for docs home page ([@lex111](https://github.com/lex111))\\n - [#2893](https://github.com/facebook/docusaurus/pull/2893) fix(v2): Do not automatically change tab when a non-existing option is selected ([@SamChou19815](https://github.com/SamChou19815))\\n - [#2888](https://github.com/facebook/docusaurus/pull/2888) fix(v2): restore styles for menu scrollbar ([@lex111](https://github.com/lex111))\\n - [#2857](https://github.com/facebook/docusaurus/pull/2857) fix(v2): treat inline code in raw HTML as native element ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2951](https://github.com/facebook/docusaurus/pull/2951) fix(v2): Add optional-chaining and nullish-coalescing babel plugin ([@SamChou19815](https://github.com/SamChou19815))\\n - [#2921](https://github.com/facebook/docusaurus/pull/2921) fix(v2): upgrade react-loadable-ssr-addon ([@slorber](https://github.com/slorber))\\n - [#2854](https://github.com/facebook/docusaurus/pull/2854) fix(v2): fix broken build when swizzled NotFound component exist ([@lex111](https://github.com/lex111))\\n - [#2829](https://github.com/facebook/docusaurus/pull/2829) fix(v2): Fix plugin path resolution ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-preset-classic`\\n - [#2944](https://github.com/facebook/docusaurus/pull/2944) fix(v2): Declare @docusaurus-plugin-debug as dependency of preset classic ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-init`\\n - [#2902](https://github.com/facebook/docusaurus/pull/2902) feat(v2): add nojekyll file to static folder for all templates ([@teikjun](https://github.com/teikjun))\\n- `docusaurus-theme-bootstrap`\\n - [#2860](https://github.com/facebook/docusaurus/pull/2860) fix(v2): bootstrap doc sidebar ([@fanny](https://github.com/fanny))\\n- Other\\n - [#2874](https://github.com/facebook/docusaurus/pull/2874) fix(v2): Getting Started URL ([@fanny](https://github.com/fanny))\\n- `docusaurus-plugin-content-docs`\\n - [#2861](https://github.com/facebook/docusaurus/pull/2861) fix(v2): do not create route for document that serve as docs home page ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#2867](https://github.com/facebook/docusaurus/pull/2867) fix(v2): fix FOUC in doc sidebar and various improvements ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-search-algolia`\\n - [#2838](https://github.com/facebook/docusaurus/pull/2838) fix(v2): use base url to navigate to search page ([@tetunori](https://github.com/tetunori))\\n- `docusaurus-utils`\\n - [#2855](https://github.com/facebook/docusaurus/pull/2855) fix(v2): strip images and footnotes for excerpt correctly ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-live-codeblock`\\n - [#2835](https://github.com/facebook/docusaurus/pull/2835) fix(v2): set proper font for live editor ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils`, `docusaurus`\\n - [#2884](https://github.com/facebook/docusaurus/pull/2884) polish(v2): improve Docusaurus 1 to 2 migration developer experience ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#2870](https://github.com/facebook/docusaurus/pull/2870) refactor(v2): combine nested theme providers into one ([@lex111](https://github.com/lex111))\\n - [#2880](https://github.com/facebook/docusaurus/pull/2880) fix(v2): render as regular text uncollapsible categories ([@lex111](https://github.com/lex111))\\n - [#2864](https://github.com/facebook/docusaurus/pull/2864) refactor(v2): add aria role for doc sidebar ([@lex111](https://github.com/lex111))\\n - [#2859](https://github.com/facebook/docusaurus/pull/2859) refactor(v2): add aria label to paginators ([@lex111](https://github.com/lex111))\\n - [#2858](https://github.com/facebook/docusaurus/pull/2858) refactor(v2): add missing main landmark for needed pages ([@lex111](https://github.com/lex111))\\n- Other\\n - [#2862](https://github.com/facebook/docusaurus/pull/2862) Updated banner in solidarity ([@JoelMarcey](https://github.com/JoelMarcey))\\n\\n## :memo: Documentation\\n\\n- [#2946](https://github.com/facebook/docusaurus/pull/2946) docs(v2): add require.resolve to plugin imports on remaining pages ([@teikjun](https://github.com/teikjun))\\n- [#2941](https://github.com/facebook/docusaurus/pull/2941) docs(v2): wrap all plugin imports in require.resolve() ([@TomBrien](https://github.com/TomBrien))\\n- [#2934](https://github.com/facebook/docusaurus/pull/2934) docs(v2): add useThemeContext note ([@Drewbi](https://github.com/Drewbi))\\n- [#2935](https://github.com/facebook/docusaurus/pull/2935) docs(v2): Add router implementation note ([@Drewbi](https://github.com/Drewbi))\\n- [#2933](https://github.com/facebook/docusaurus/pull/2933) docs(v2): add documentation for multiple blogs ([@teikjun](https://github.com/teikjun))\\n- [#2910](https://github.com/facebook/docusaurus/pull/2910) docs(v2): fix GitHub action workflow in docs ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- [#2886](https://github.com/facebook/docusaurus/pull/2886) docs(v2): fix typo in command on installation page ([@pglezen](https://github.com/pglezen))\\n- [#2887](https://github.com/facebook/docusaurus/pull/2887) docs(v2): make .nojekyll warning more obvious ([@yangshun](https://github.com/yangshun))\\n- [#2865](https://github.com/facebook/docusaurus/pull/2865) docs(v2): description field in frontmatter of blog post ([@lex111](https://github.com/lex111))\\n- [#2839](https://github.com/facebook/docusaurus/pull/2839) docs(v2): \\\\_index docs page does not show a sidebar ([@aeneasr](https://github.com/aeneasr))\\n- [#2852](https://github.com/facebook/docusaurus/pull/2852) misc: move runme demo in block quote about v2 ([@lex111](https://github.com/lex111))\\n- [#2842](https://github.com/facebook/docusaurus/pull/2842) docs(v2): Update ZEIT to Vercel ([@Nishikoh](https://github.com/Nishikoh))\\n\\n## :house: Internal\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`\\n - [#2948](https://github.com/facebook/docusaurus/pull/2948) refactor(v2): legacy export = syntax ([@slorber](https://github.com/slorber))\\n- `docusaurus-init`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-utils`, `docusaurus`\\n - [#2922](https://github.com/facebook/docusaurus/pull/2922) misc(v2): better dx: yarn clear, yarn watch, yarn serve ([@slorber](https://github.com/slorber))\\n- Other\\n - [#2929](https://github.com/facebook/docusaurus/pull/2929) chore(v2): Run E2E tests in CI ([@SamChou19815](https://github.com/SamChou19815))\\n - [#2899](https://github.com/facebook/docusaurus/pull/2899) chore(deps): bump websocket-extensions from 0.1.3 to 0.1.4 ([@dependabot[bot]](https://github.com/apps/dependabot))\\n - [#2897](https://github.com/facebook/docusaurus/pull/2897) refactor(v2): synchronize yarn/npm command on site ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-bootstrap`\\n - [#2931](https://github.com/facebook/docusaurus/pull/2931) chore(v2): remove unused hooks from bootstrap theme ([@fanny](https://github.com/fanny))\\n- `docusaurus-1.x`, `docusaurus-plugin-content-docs`\\n - [#2906](https://github.com/facebook/docusaurus/pull/2906) chore(v2): fix async tests ([@slorber](https://github.com/slorber))\\n- `docusaurus-theme-classic`\\n - [#2858](https://github.com/facebook/docusaurus/pull/2858) refactor(v2): add missing main landmark for needed pages ([@lex111](https://github.com/lex111))\\n\\n## :running: Performance\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-sitemap`\\n - [#2936](https://github.com/facebook/docusaurus/pull/2936) perf(v2): convert synchronous filewrite to asynchronous ([@moonrailgun](https://github.com/moonrailgun))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2900](https://github.com/facebook/docusaurus/pull/2900) chore(v2): replace Clipboard with copy-text-to-clipboard ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#2895](https://github.com/facebook/docusaurus/pull/2895) chore(v2): replace classnames with clsx ([@lex111](https://github.com/lex111))\\n\\n## Committers: 18\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Anshul Goyal ([@anshulrgoyal](https://github.com/anshulrgoyal))\\n- Drew Alexander ([@Drewbi](https://github.com/Drewbi))\\n- Fanny ([@fanny](https://github.com/fanny))\\n- Guillaume Jacquart ([@guillaumejacquart](https://github.com/guillaumejacquart))\\n- Joe Previte ([@jsjoeio](https://github.com/jsjoeio))\\n- Joel Marcey ([@JoelMarcey](https://github.com/JoelMarcey))\\n- Koki Nishihara ([@Nishikoh](https://github.com/Nishikoh))\\n- Paul Glezen ([@pglezen](https://github.com/pglezen))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Teik Jun ([@teikjun](https://github.com/teikjun))\\n- Tom Brien ([@TomBrien](https://github.com/TomBrien))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- [@belokonm](https://github.com/belokonm)\\n- hackerman ([@aeneasr](https://github.com/aeneasr))\\n- moonrailgun ([@moonrailgun](https://github.com/moonrailgun))\\n- tetunori ([@tetunori](https://github.com/tetunori))"},{"id":"/2.0.0-alpha.57","metadata":{"permalink":"/changelog/2.0.0-alpha.57","source":"@site/changelog/source/2.0.0-alpha.57.md","title":"2.0.0-alpha.57","description":"Bad release, check ## 2.0.0-alpha.58","date":"2020-06-18T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2020-06-18T19:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.58","permalink":"/changelog/2.0.0-alpha.58"},"nextItem":{"title":"2.0.0-alpha.56","permalink":"/changelog/2.0.0-alpha.56"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\nBad release, check ## 2.0.0-alpha.58"},{"id":"/2.0.0-alpha.56","metadata":{"permalink":"/changelog/2.0.0-alpha.56","source":"@site/changelog/source/2.0.0-alpha.56.md","title":"2.0.0-alpha.56","description":"Breaking Change","date":"2020-05-28T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"John Knox","alias":"jknoxville","url":"https://github.com/jknoxville","imageURL":"https://github.com/jknoxville.png","key":"jknoxville","page":null},{"name":"James McShane","alias":"jmcshane","url":"https://github.com/jmcshane","imageURL":"https://github.com/jmcshane.png","key":"jmcshane","page":null},{"name":"Kasper B\xf8gebjerg Pedersen","alias":"kasperp","url":"https://github.com/kasperp","imageURL":"https://github.com/kasperp.png","key":"kasperp","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Muhammad Ali","alias":"mrmuhammadali","url":"https://github.com/mrmuhammadali","imageURL":"https://github.com/mrmuhammadali.png","key":"mrmuhammadali","page":null},{"name":"Piotr Baran","alias":"piotros","url":"https://github.com/piotros","imageURL":"https://github.com/piotros.png","key":"piotros","page":null},{"name":"Sylvain Pace","alias":"s-pace","url":"https://github.com/s-pace","imageURL":"https://github.com/s-pace.png","key":"s-pace","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-05-28T20:00","authors":["jknoxville","jmcshane","kasperp","lex111","mrmuhammadali","piotros","s-pace","SamChou19815"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.57","permalink":"/changelog/2.0.0-alpha.57"},"nextItem":{"title":"2.0.0-alpha.55","permalink":"/changelog/2.0.0-alpha.55"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- If you refer to modules (plugins) in your config file in a string form, you will need to replace them with `require.resolve` calls, for example:\\n\\n```diff\\n- plugins: [\'@docusaurus/plugin-google-analytics\']\\n+ plugins: [require.resolve(\'@docusaurus/plugin-google-analytics\')]\\n```\\n\\n- `docusaurus-theme-classic`\\n - [#2818](https://github.com/facebook/docusaurus/pull/2818) feat(v2): automatically add base url to logo link ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#2791](https://github.com/facebook/docusaurus/pull/2791) refactor(v2): show search icon only on mobiles ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2780](https://github.com/facebook/docusaurus/pull/2780) feat(v2): open external links in new tab by default ([@jknoxville](https://github.com/jknoxville))\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-types`, `docusaurus`\\n - [#2770](https://github.com/facebook/docusaurus/pull/2770) feat(v2): allow deploy without building website ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2818](https://github.com/facebook/docusaurus/pull/2818) feat(v2): automatically add base url to logo link ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#2645](https://github.com/facebook/docusaurus/pull/2645) fix(v2): enable scrolling for sidebar menu only ([@lex111](https://github.com/lex111))\\n - [#2800](https://github.com/facebook/docusaurus/pull/2800) fix(v2): make proper h1 font size on mobiles ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2788](https://github.com/facebook/docusaurus/pull/2788) fix(v2): use `require.resolve` for all webpack presets and plugins ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus-plugin-content-docs`\\n - [#2785](https://github.com/facebook/docusaurus/pull/2785) fix(v2): do not show sidebar on reserved docs home page ([@lex111](https://github.com/lex111))\\n - [#2777](https://github.com/facebook/docusaurus/pull/2777) fix(v2): check for docs homepage correctly ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#2820](https://github.com/facebook/docusaurus/pull/2820) chore(v2): upgrade Infima to 0.2.0-alpha.12 ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-search-algolia`\\n - [#2814](https://github.com/facebook/docusaurus/pull/2814) refactor(v2): align search icon to center on mobiles ([@lex111](https://github.com/lex111))\\n - [#2799](https://github.com/facebook/docusaurus/pull/2799) refactor(v2): increase search input on medium screens ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`\\n - [#2802](https://github.com/facebook/docusaurus/pull/2802) misc: minor improvements for init templates ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#2791](https://github.com/facebook/docusaurus/pull/2791) refactor(v2): show search icon only on mobiles ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2783](https://github.com/facebook/docusaurus/pull/2783) refactor(v2): make external links more secure ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- [#2809](https://github.com/facebook/docusaurus/pull/2809) docs(v2): add mention on DocSearch when you run the crawler on your own ([@s-pace](https://github.com/s-pace))\\n\\n## :house: Internal\\n\\n- [#2778](https://github.com/facebook/docusaurus/pull/2778) fix(v2): do not highlight root docs path in navbar ([@lex111](https://github.com/lex111))\\n\\n## Committers: 8\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- James McShane ([@jmcshane](https://github.com/jmcshane))\\n- John Knox ([@jknoxville](https://github.com/jknoxville))\\n- Kasper B\xf8gebjerg Pedersen ([@kasperp](https://github.com/kasperp))\\n- Muhammad Ali ([@mrmuhammadali](https://github.com/mrmuhammadali))\\n- Piotr Baran ([@piotros](https://github.com/piotros))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- Sylvain Pace ([@s-pace](https://github.com/s-pace))"},{"id":"/2.0.0-alpha.55","metadata":{"permalink":"/changelog/2.0.0-alpha.55","source":"@site/changelog/source/2.0.0-alpha.55.md","title":"2.0.0-alpha.55","description":"Breaking Change","date":"2020-05-19T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Artem Kovalov","alias":"artemkovalyov","url":"https://github.com/artemkovalyov","imageURL":"https://github.com/artemkovalyov.png","key":"artemkovalyov","page":null},{"name":"Fanny","alias":"fanny","url":"https://github.com/fanny","imageURL":"https://github.com/fanny.png","key":"fanny","page":null},{"name":"Rajiv Singh","alias":"iamrajiv","url":"https://github.com/iamrajiv","imageURL":"https://github.com/iamrajiv.png","key":"iamrajiv","page":null},{"name":"Jimmy","alias":"jcomack","url":"https://github.com/jcomack","imageURL":"https://github.com/jcomack.png","key":"jcomack","page":null},{"name":"Julien Deniau","alias":"jdeniau","url":"https://github.com/jdeniau","imageURL":"https://github.com/jdeniau.png","key":"jdeniau","page":null},{"name":"Jonny Nabors","alias":"jonnynabors","url":"https://github.com/jonnynabors","imageURL":"https://github.com/jonnynabors.png","key":"jonnynabors","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Marco Moretti","alias":"marcosvega91","url":"https://github.com/marcosvega91","imageURL":"https://github.com/marcosvega91.png","key":"marcosvega91","page":null},{"name":"Ben Gubler","alias":"nebrelbug","url":"https://github.com/nebrelbug","imageURL":"https://github.com/nebrelbug.png","key":"nebrelbug","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Taylor Reece","alias":"taylorreece","url":"https://github.com/taylorreece","imageURL":"https://github.com/taylorreece.png","key":"taylorreece","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null},{"name":"Yamagishi Kazutoshi","alias":"ykzts","url":"https://github.com/ykzts","imageURL":"https://github.com/ykzts.png","key":"ykzts","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-05-19T20:00","authors":["artemkovalyov","fanny","iamrajiv","jcomack","jdeniau","jonnynabors","lex111","marcosvega91","nebrelbug","slorber","taylorreece","yangshun","ykzts"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.56","permalink":"/changelog/2.0.0-alpha.56"},"nextItem":{"title":"2.0.0-alpha.54","permalink":"/changelog/2.0.0-alpha.54"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- `infima`\\n\\n - The following Infima classes have been renamed for consistency:\\n\\n - `page-item` \u2192 `pagination__item`\\n - `pagination-nav__link--label` \u2192 `pagination-nav__label`\\n - `pagination-nav__link--sublabel` \u2192 `pagination-nav__sublabel`\\n - `tab-item` \u2192 `tabs__item`\\n - `tab-item--active` \u2192 `tabs__item--active`\\n\\n If you have swizzled components, you need to replace these class names.\\n\\n- `docusaurus`\\n\\n - [#2764](https://github.com/facebook/docusaurus/pull/2764) feat(v2): allow import SVG images ([@lex111](https://github.com/lex111))\\n\\n## :rocket: New Feature\\n\\n- `docusaurus`\\n - [#2764](https://github.com/facebook/docusaurus/pull/2764) feat(v2): allow import SVG images ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2690](https://github.com/facebook/docusaurus/pull/2690) feat(v2): allow activeBaseTest in NavLink ([@nebrelbug](https://github.com/nebrelbug))\\n - [#2694](https://github.com/facebook/docusaurus/pull/2694) feat(v2): add canonical URL to `<head>` ([@jcomack](https://github.com/jcomack))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#2652](https://github.com/facebook/docusaurus/pull/2652) feat(v2): allow home page for docs ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#2756](https://github.com/facebook/docusaurus/pull/2756) feat(v2): add search page \u{1F50E} ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`\\n - [#2701](https://github.com/facebook/docusaurus/pull/2701) fix(v2): remove Markdown syntax from excerpt ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2765](https://github.com/facebook/docusaurus/pull/2765) fix(v2): remove invalid attr from mobile nav links ([@lex111](https://github.com/lex111))\\n - [#2760](https://github.com/facebook/docusaurus/pull/2760) fix(v2): move anchor link to right of heading ([@lex111](https://github.com/lex111))\\n - [#2758](https://github.com/facebook/docusaurus/pull/2758) fix(v2): remove extra top margin of tab item ([@lex111](https://github.com/lex111))\\n - [#2759](https://github.com/facebook/docusaurus/pull/2759) fix(v2): restore hiding of docs toc ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-search-algolia`\\n - [#2762](https://github.com/facebook/docusaurus/pull/2762) fix(v2): avoid duplication search input in navbar ([@lex111](https://github.com/lex111))\\n- `lqip-loader`\\n - [#2693](https://github.com/facebook/docusaurus/pull/2693) fix(v2): add support ES Module to lqip-loader ([@ykzts](https://github.com/ykzts))\\n- `docusaurus-init`\\n - [#2751](https://github.com/facebook/docusaurus/pull/2751) fix(v2): fix index page features.length when 0 ([@jdeniau](https://github.com/jdeniau))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#2773](https://github.com/facebook/docusaurus/pull/2773) chore(v2): upgrade Infima to 0.2.0-alpha.11 ([@lex111](https://github.com/lex111))\\n - [#2766](https://github.com/facebook/docusaurus/pull/2766) refactor(v2): remove extra active CSS class for menu item links ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-live-codeblock`\\n - [#2767](https://github.com/facebook/docusaurus/pull/2767) refactor(v2): add support for dark mode to live code blocks ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-search-algolia`\\n - [#2761](https://github.com/facebook/docusaurus/pull/2761) refactor(v2): improve UX of search page ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-bootstrap`, `docusaurus-theme-classic`\\n - [#2729](https://github.com/facebook/docusaurus/pull/2729) chore(v2): upgrade Infima to 0.2.0-alpha.10 ([@lex111](https://github.com/lex111))\\n- `docusaurus-utils`\\n - [#2696](https://github.com/facebook/docusaurus/pull/2696) refactor(v2): make semicolon optional in imports for excerpt ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- [#2768](https://github.com/facebook/docusaurus/pull/2768) docs(v2): various improvements ([@lex111](https://github.com/lex111))\\n- [#2670](https://github.com/facebook/docusaurus/pull/2670) docs(v2): add deployment workflow manual for GitHub Actions ([@artemkovalyov](https://github.com/artemkovalyov))\\n\\n## :house: Internal\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus`\\n - [#2464](https://github.com/facebook/docusaurus/pull/2464) refactor(v2): add @theme-init alias to give access to initial components ([@lex111](https://github.com/lex111))\\n\\n## :running: Performance\\n\\n- `docusaurus`\\n - [#2684](https://github.com/facebook/docusaurus/pull/2684) refactor(v2): replace EJS with Eta for SSR generation ([@nebrelbug](https://github.com/nebrelbug))\\n\\n## Committers: 13\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Artem Kovalov ([@artemkovalyov](https://github.com/artemkovalyov))\\n- Ben Gubler ([@nebrelbug](https://github.com/nebrelbug))\\n- Fanny ([@fanny](https://github.com/fanny))\\n- Jimmy ([@jcomack](https://github.com/jcomack))\\n- Jonny Nabors ([@jonnynabors](https://github.com/jonnynabors))\\n- Julien Deniau ([@jdeniau](https://github.com/jdeniau))\\n- Marco Moretti ([@marcosvega91](https://github.com/marcosvega91))\\n- Rajiv Singh ([@iamrajiv](https://github.com/iamrajiv))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Taylor Reece ([@taylorreece](https://github.com/taylorreece))\\n- Yamagishi Kazutoshi ([@ykzts](https://github.com/ykzts))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))"},{"id":"/2.0.0-alpha.54","metadata":{"permalink":"/changelog/2.0.0-alpha.54","source":"@site/changelog/source/2.0.0-alpha.54.md","title":"2.0.0-alpha.54","description":"HOTFIX for 2.0.0-alpha.53.","date":"2020-04-28T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"JavaScript Joe","alias":"jsjoeio","url":"https://github.com/jsjoeio","imageURL":"https://github.com/jsjoeio.png","key":"jsjoeio","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-04-28T20:00","authors":["jsjoeio","lex111","SamChou19815"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.55","permalink":"/changelog/2.0.0-alpha.55"},"nextItem":{"title":"2.0.0-alpha.53","permalink":"/changelog/2.0.0-alpha.53"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n**HOTFIX for 2.0.0-alpha.53**.\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#2688](https://github.com/facebook/docusaurus/pull/2688) fix(v2): add default value for options in theme classic ([@lex111](https://github.com/lex111))\\n- `docusaurus-module-type-aliases`\\n - [#2687](https://github.com/facebook/docusaurus/pull/2687) fix(v2): Add all webpack module aliases to type declaration file ([@SamChou19815](https://github.com/SamChou19815))\\n\\n## :memo: Documentation\\n\\n- [#2680](https://github.com/facebook/docusaurus/pull/2680) docs(v2): add swizzle example ([@jsjoeio](https://github.com/jsjoeio))\\n\\n## Committers: 3\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Joe Previte ([@jsjoeio](https://github.com/jsjoeio))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))"},{"id":"/2.0.0-alpha.53","metadata":{"permalink":"/changelog/2.0.0-alpha.53","source":"@site/changelog/source/2.0.0-alpha.53.md","title":"2.0.0-alpha.53","description":"HOTFIX for 2.0.0-alpha.51.","date":"2020-04-27T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-04-27T20:00","authors":["lex111"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.54","permalink":"/changelog/2.0.0-alpha.54"},"nextItem":{"title":"2.0.0-alpha.51","permalink":"/changelog/2.0.0-alpha.51"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n**HOTFIX for 2.0.0-alpha.51**.\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#2676](https://github.com/facebook/docusaurus/pull/2676) fix(v2): allow build website without custom css ([@lex111](https://github.com/lex111))\\n\\n## Committers: 1\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))"},{"id":"/2.0.0-alpha.51","metadata":{"permalink":"/changelog/2.0.0-alpha.51","source":"@site/changelog/source/2.0.0-alpha.51.md","title":"2.0.0-alpha.51","description":"Breaking Change","date":"2020-04-27T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Anayo Oleru","alias":"AnayoOleru","url":"https://github.com/AnayoOleru","imageURL":"https://github.com/AnayoOleru.png","key":"AnayoOleru","page":null},{"name":"Fanny","alias":"fanny","url":"https://github.com/fanny","imageURL":"https://github.com/fanny.png","key":"fanny","page":null},{"name":"Jay Lees","alias":"jaylees14","url":"https://github.com/jaylees14","imageURL":"https://github.com/jaylees14.png","key":"jaylees14","page":null},{"name":"Jos\xe9 Renan","alias":"JoseRenan","url":"https://github.com/JoseRenan","imageURL":"https://github.com/JoseRenan.png","key":"JoseRenan","page":null},{"name":"JavaScript Joe","alias":"jsjoeio","url":"https://github.com/jsjoeio","imageURL":"https://github.com/jsjoeio.png","key":"jsjoeio","page":null},{"name":"Kamil Kisiela","alias":"kamilkisiela","url":"https://github.com/kamilkisiela","imageURL":"https://github.com/kamilkisiela.png","key":"kamilkisiela","page":null},{"name":"Krist\xf3f Poduszl\xf3","alias":"kripod","url":"https://github.com/kripod","imageURL":"https://github.com/kripod.png","key":"kripod","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Noah Silvera","alias":"Noah-Silvera","url":"https://github.com/Noah-Silvera","imageURL":"https://github.com/Noah-Silvera.png","key":"Noah-Silvera","page":null},{"name":"Reece Dunham","alias":"RDIL","url":"https://github.com/RDIL","imageURL":"https://github.com/RDIL.png","key":"RDIL","page":null},{"name":"Sylvain Pace","alias":"s-pace","url":"https://github.com/s-pace","imageURL":"https://github.com/s-pace.png","key":"s-pace","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Tom Brien","alias":"TomBrien","url":"https://github.com/TomBrien","imageURL":"https://github.com/TomBrien.png","key":"TomBrien","page":null},{"name":"Chris Watson","alias":"watzon","url":"https://github.com/watzon","imageURL":"https://github.com/watzon.png","key":"watzon","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null},{"name":"Mehmet Yatk\u0131","alias":"yatki","url":"https://github.com/yatki","imageURL":"https://github.com/yatki.png","key":"yatki","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-04-27T19:00","authors":["AnayoOleru","fanny","jaylees14","JoseRenan","jsjoeio","kamilkisiela","kripod","lex111","Noah-Silvera","RDIL","s-pace","SamChou19815","Simek","slorber","TomBrien","watzon","yangshun","yatki"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.53","permalink":"/changelog/2.0.0-alpha.53"},"nextItem":{"title":"2.0.0-alpha.50","permalink":"/changelog/2.0.0-alpha.50"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- `infima`\\n - The following infima variables have been renamed for consistency:\\n - `--ifm-font-base-color` \u2192 `--ifm-font-color-base`\\n - `--ifm-font-base-color-inverse` \u2192 `--ifm-font-color-base-inverse`\\n - `--ifm-font-color-secondary` \u2192 `--ifm-font-color-secondary`\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#2660](https://github.com/facebook/docusaurus/pull/2660) feat(v2): add ability to specify CSS class for navbar item ([@lex111](https://github.com/lex111))\\n - [#2597](https://github.com/facebook/docusaurus/pull/2597) feat(v2): add ability set dark mode by default ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2665](https://github.com/facebook/docusaurus/pull/2665) feat(v2): add fallback to BrowserOnly component ([@lex111](https://github.com/lex111))\\n- `docusaurus-types`, `docusaurus`\\n - [#2630](https://github.com/facebook/docusaurus/pull/2630) feat(v2): add CLI option for polling ([@TomBrien](https://github.com/TomBrien))\\n- `docusaurus-init`\\n - [#2541](https://github.com/facebook/docusaurus/pull/2541) feat(v2): add showReadingTime and editUrl to the templates ([@fanny](https://github.com/fanny))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils`\\n - [#2524](https://github.com/facebook/docusaurus/pull/2524) feat(v2): add edit url in post page ([@fanny](https://github.com/fanny))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#2531](https://github.com/facebook/docusaurus/pull/2531) feat(v2): add blog post estimated reading time ([@JoseRenan](https://github.com/JoseRenan))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#2672](https://github.com/facebook/docusaurus/pull/2672) fix(v2): add a11y support for dropdown ([@lex111](https://github.com/lex111))\\n - [#2649](https://github.com/facebook/docusaurus/pull/2649) fix(v2): hide sidebar after click on child item ([@lex111](https://github.com/lex111))\\n - [#2631](https://github.com/facebook/docusaurus/pull/2631) fix(v2): hide doc sidebar on mobiles ([@lex111](https://github.com/lex111))\\n - [#2626](https://github.com/facebook/docusaurus/pull/2626) fix(v2): make border right of doc sidebar equals doc page ([@lex111](https://github.com/lex111))\\n - [#2625](https://github.com/facebook/docusaurus/pull/2625) fix(v2): disable tab focus on collapsed doc sidebar items ([@lex111](https://github.com/lex111))\\n - [#2602](https://github.com/facebook/docusaurus/pull/2602) fix(v2): inherit color for announcement bar close icon ([@lex111](https://github.com/lex111))\\n - [#2582](https://github.com/facebook/docusaurus/pull/2582) fix(v2): remove horizontal scroll on docs page ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2666](https://github.com/facebook/docusaurus/pull/2666) chore(v2): upgrade prism-react-renderer to latest version ([@lex111](https://github.com/lex111))\\n - [#2533](https://github.com/facebook/docusaurus/pull/2533) fix(v2): add rounded corners in code blocks properly ([@lex111](https://github.com/lex111))\\n- `docusaurus-1.x`, `docusaurus-init-1.x`, `docusaurus-init`, `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#2661](https://github.com/facebook/docusaurus/pull/2661) chore: upgrade shelljs to 0.8.4 ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-preset-classic`, `docusaurus-theme-classic`\\n - [#2642](https://github.com/facebook/docusaurus/pull/2642) fix(v2): use remark-admonitions separately in each plugin instead of in preset only ([@lex111](https://github.com/lex111))\\n- `docusaurus-utils`\\n - [#2380](https://github.com/facebook/docusaurus/pull/2380) fix(v2): ignore import declarations in excerpt ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-sitemap`\\n - [#2616](https://github.com/facebook/docusaurus/pull/2616) fix(v2): don\'t include 404 page in sitemaps ([@RDIL](https://github.com/RDIL))\\n - [#2530](https://github.com/facebook/docusaurus/pull/2530) fix(v2): Use `writeFileSync` to write generated sitemap.xml to avoid early termination ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus`\\n - [#2558](https://github.com/facebook/docusaurus/pull/2558) fix(v2): properly link top-level github pages sites in deploy command ([@RDIL](https://github.com/RDIL))\\n - [#2580](https://github.com/facebook/docusaurus/pull/2580) fix(v2): do not process anchor links by router ([@lex111](https://github.com/lex111))\\n - [#2579](https://github.com/facebook/docusaurus/pull/2579) fix(v2): treat mailto and tel links properly ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`\\n - [#2540](https://github.com/facebook/docusaurus/pull/2540) fix(v2): use synchronous write for generate blog feeds ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#2656](https://github.com/facebook/docusaurus/pull/2656) refactor(v2): lose focus of active sidebar item after click on it ([@lex111](https://github.com/lex111))\\n - [#2627](https://github.com/facebook/docusaurus/pull/2627) refactor(v2): extract scroll position detection into separate hook ([@lex111](https://github.com/lex111))\\n - [#2595](https://github.com/facebook/docusaurus/pull/2595) refactor(v2): make margin top on blog pages as on other pages ([@lex111](https://github.com/lex111))\\n - [#2588](https://github.com/facebook/docusaurus/pull/2588) refactor(v2): remove redundant container on docs page ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#2585](https://github.com/facebook/docusaurus/pull/2585) refactor(v2): use nav link component only where needed ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2556](https://github.com/facebook/docusaurus/pull/2556) refactor(v2): enhance CLI experience ([@RDIL](https://github.com/RDIL))\\n - [#2529](https://github.com/facebook/docusaurus/pull/2529) refactor(v2): replace few Lodash methods with native counterparts ([@Simek](https://github.com/Simek))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2534](https://github.com/facebook/docusaurus/pull/2534) refactor(v2): make better code blocks ([@lex111](https://github.com/lex111))\\n - [#2526](https://github.com/facebook/docusaurus/pull/2526) fix(v2): make code block nicer again ([@yangshun](https://github.com/yangshun))\\n- `docusaurus-plugin-content-docs`\\n - [#2519](https://github.com/facebook/docusaurus/pull/2519) chore(v2): use single method Lodash packages in docs plugin ([@Simek](https://github.com/Simek))\\n\\n## :memo: Documentation\\n\\n- [#2659](https://github.com/facebook/docusaurus/pull/2659) fix(docs): mention that appID is optional ([@s-pace](https://github.com/s-pace))\\n- [#2596](https://github.com/facebook/docusaurus/pull/2596) docs(v2): remove duplicated package.json in installation directory structure ([@jaylees14](https://github.com/jaylees14))\\n- [#2572](https://github.com/facebook/docusaurus/pull/2572) docs(v2): mention that `plugin-ideal-image` only perform compression on a production build ([@Noah-Silvera](https://github.com/Noah-Silvera))\\n- [#2570](https://github.com/facebook/docusaurus/pull/2570) docs(v2): fix syntax error for @docusaurus/plugin-ideal-image example ([@Noah-Silvera](https://github.com/Noah-Silvera))\\n- [#2566](https://github.com/facebook/docusaurus/pull/2566) docs(v2): be more polite ([@lex111](https://github.com/lex111))\\n- [#2559](https://github.com/facebook/docusaurus/pull/2559) doc(v2): remove legacy blog metadata ([@RDIL](https://github.com/RDIL))\\n- [#2549](https://github.com/facebook/docusaurus/pull/2549) docs(v2): command for swizzling all components ([@fanny](https://github.com/fanny))\\n- [#2547](https://github.com/facebook/docusaurus/pull/2547) docs(v2): Fix typo in team page ([@SamChou19815](https://github.com/SamChou19815))\\n- [#2545](https://github.com/facebook/docusaurus/pull/2545) docs(v2): add community pages ([@yangshun](https://github.com/yangshun))\\n- [#2521](https://github.com/facebook/docusaurus/pull/2521) docs(v2): useThemeContext hook ([@lex111](https://github.com/lex111))\\n\\n## :house: Internal\\n\\n- `docusaurus-types`, `docusaurus`\\n - [#2578](https://github.com/facebook/docusaurus/pull/2578) refactor(v2): Convert docusaurus-core to TypeScript ([@SamChou19815](https://github.com/SamChou19815))\\n- Other\\n - [#2569](https://github.com/facebook/docusaurus/pull/2569) docs(v2): showcase user Tourmaline ([@watzon](https://github.com/watzon))\\n - [#2553](https://github.com/facebook/docusaurus/pull/2553) misc(v2): remove deprecated/useless lerna field ([@slorber](https://github.com/slorber))\\n- `docusaurus-1.x`, `lqip-loader`\\n - [#2563](https://github.com/facebook/docusaurus/pull/2563) chore(v2): fix lint, tweak lqip-loader utils comment ([@Simek](https://github.com/Simek))\\n- `lqip-loader`\\n - [#2561](https://github.com/facebook/docusaurus/pull/2561) chore(v2): add lqip-loader tests, clarify loader code, improve README ([@Simek](https://github.com/Simek))\\n- `docusaurus-plugin-ideal-image`, `lqip-loader`\\n - [#2544](https://github.com/facebook/docusaurus/pull/2544) refactor(v2): import lqip-loader to monorepo, fix build on Node 13, fix lint-staged ([@Simek](https://github.com/Simek))\\n- `docusaurus-init`\\n - [#2542](https://github.com/facebook/docusaurus/pull/2542) chore(v2): update Prettier config ([@lex111](https://github.com/lex111))\\n- `docusaurus-1.x`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`, `stylelint-copyright`\\n - [#2538](https://github.com/facebook/docusaurus/pull/2538) chore(v2): upgrade devDependencies ([@yangshun](https://github.com/yangshun))\\n- `docusaurus-utils`\\n - [#2536](https://github.com/facebook/docusaurus/pull/2536) refactor(v2): replace Lodash with single methods packages in utils ([@Simek](https://github.com/Simek))\\n- `docusaurus`\\n - [#2535](https://github.com/facebook/docusaurus/pull/2535) refactor(v2): replace Lodash with single methods packages in core ([@Simek](https://github.com/Simek))\\n\\n## Committers: 18\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Anayo Oleru ([@AnayoOleru](https://github.com/AnayoOleru))\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- Chris Watson ([@watzon](https://github.com/watzon))\\n- Fanny ([@fanny](https://github.com/fanny))\\n- Jay Lees ([@jaylees14](https://github.com/jaylees14))\\n- Joe Previte ([@jsjoeio](https://github.com/jsjoeio))\\n- Jos\xe9 Renan ([@JoseRenan](https://github.com/JoseRenan))\\n- Kamil Kisiela ([@kamilkisiela](https://github.com/kamilkisiela))\\n- Krist\xf3f Poduszl\xf3 ([@kripod](https://github.com/kripod))\\n- Mehmet Yatk\u0131 ([@yatki](https://github.com/yatki))\\n- Noah Silvera ([@Noah-Silvera](https://github.com/Noah-Silvera))\\n- Reece Dunham ([@RDIL](https://github.com/RDIL))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- Sylvain Pace ([@s-pace](https://github.com/s-pace))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Tom Brien ([@TomBrien](https://github.com/TomBrien))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))"},{"id":"/2.0.0-alpha.50","metadata":{"permalink":"/changelog/2.0.0-alpha.50","source":"@site/changelog/source/2.0.0-alpha.50.md","title":"2.0.0-alpha.50","description":"HOTFIX for 2.0.0-alpha.49.","date":"2020-04-02T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Can Gencer","alias":"cangencer","url":"https://github.com/cangencer","imageURL":"https://github.com/cangencer.png","key":"cangencer","page":null},{"name":"Richard Chan","alias":"iWun","url":"https://github.com/iWun","imageURL":"https://github.com/iWun.png","key":"iWun","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-04-02T20:00","authors":["cangencer","iWun","lex111","SamChou19815","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.51","permalink":"/changelog/2.0.0-alpha.51"},"nextItem":{"title":"2.0.0-alpha.49","permalink":"/changelog/2.0.0-alpha.49"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n**HOTFIX for 2.0.0-alpha.49**.\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2509](https://github.com/facebook/docusaurus/pull/2509) fix(v2): synchronize code block components changes ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2498](https://github.com/facebook/docusaurus/pull/2498) fix(v2): blog item styling ([@yangshun](https://github.com/yangshun))\\n - [#2489](https://github.com/facebook/docusaurus/pull/2489) fix(v2): fix HTML issues nav dropdown and highlight docs item ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2496](https://github.com/facebook/docusaurus/pull/2496) fix(v2): do not force terminate building when running deploy command ([@lex111](https://github.com/lex111))\\n- `docusaurus-utils`\\n - [#2497](https://github.com/facebook/docusaurus/pull/2497) fix(v2): unbreak blog-only mode routing by deplicating starting forward slashes ([@SamChou19815](https://github.com/SamChou19815))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#2505](https://github.com/facebook/docusaurus/pull/2505) fix(v2): tweak colors for announcement bar ([@yangshun](https://github.com/yangshun))\\n - [#2504](https://github.com/facebook/docusaurus/pull/2504) refactor(v2): improve announcement bar ([@lex111](https://github.com/lex111))\\n - [#2495](https://github.com/facebook/docusaurus/pull/2495) refactor(v2): update HTML markup of pagination for better a11y ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2502](https://github.com/facebook/docusaurus/pull/2502) fix(v2): make code block nicer ([@yangshun](https://github.com/yangshun))\\n- `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#2490](https://github.com/facebook/docusaurus/pull/2490) fix(v2): use lodash instead of array-map-polyfill ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- `docusaurus-theme-classic`\\n - [#2500](https://github.com/facebook/docusaurus/pull/2500) docs(v2): misc docs updates ([@yangshun](https://github.com/yangshun))\\n\\n## :house: Internal\\n\\n- [#2486](https://github.com/facebook/docusaurus/pull/2486) misc: add instructions about test release ([@lex111](https://github.com/lex111))\\n\\n## Committers: 5\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Can Gencer ([@cangencer](https://github.com/cangencer))\\n- Richard Chan ([@iWun](https://github.com/iWun))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))"},{"id":"/2.0.0-alpha.49","metadata":{"permalink":"/changelog/2.0.0-alpha.49","source":"@site/changelog/source/2.0.0-alpha.49.md","title":"2.0.0-alpha.49","description":"New Feature","date":"2020-04-01T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"38elements","alias":"38elements","url":"https://github.com/38elements","imageURL":"https://github.com/38elements.png","key":"38elements","page":null},{"name":"R\xe9mi Doreau","alias":"ayshiff","url":"https://github.com/ayshiff","imageURL":"https://github.com/ayshiff.png","key":"ayshiff","page":null},{"name":"bravo-kernel","alias":"bravo-kernel","url":"https://github.com/bravo-kernel","imageURL":"https://github.com/bravo-kernel.png","key":"bravo-kernel","page":null},{"name":"Elvis Wolcott","alias":"elviswolcott","url":"https://github.com/elviswolcott","imageURL":"https://github.com/elviswolcott.png","key":"elviswolcott","page":null},{"name":"Favour Kelvin","alias":"fakela","url":"https://github.com/fakela","imageURL":"https://github.com/fakela.png","key":"fakela","page":null},{"name":"Fanny","alias":"fanny","url":"https://github.com/fanny","imageURL":"https://github.com/fanny.png","key":"fanny","page":null},{"name":"GermaVinsmoke","alias":"GermaVinsmoke","url":"https://github.com/GermaVinsmoke","imageURL":"https://github.com/GermaVinsmoke.png","key":"GermaVinsmoke","page":null},{"name":"iamkun","alias":"iamkun","url":"https://github.com/iamkun","imageURL":"https://github.com/iamkun.png","key":"iamkun","page":null},{"name":"Jefferson Licet","alias":"jeffersonlicet","url":"https://github.com/jeffersonlicet","imageURL":"https://github.com/jeffersonlicet.png","key":"jeffersonlicet","page":null},{"name":"KohheePeace","alias":"KohheePeace","url":"https://github.com/KohheePeace","imageURL":"https://github.com/KohheePeace.png","key":"KohheePeace","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Luke Collier","alias":"lukecollier","url":"https://github.com/lukecollier","imageURL":"https://github.com/lukecollier.png","key":"lukecollier","page":null},{"name":"mohrash92","alias":"mohrash92","url":"https://github.com/mohrash92","imageURL":"https://github.com/mohrash92.png","key":"mohrash92","page":null},{"name":"Ben Gubler","alias":"nebrelbug","url":"https://github.com/nebrelbug","imageURL":"https://github.com/nebrelbug.png","key":"nebrelbug","page":null},{"name":"Nisar Hassan Naqvi","alias":"nisarhassan12","url":"https://github.com/nisarhassan12","imageURL":"https://github.com/nisarhassan12.png","key":"nisarhassan12","page":null},{"name":"Paul Armstrong","alias":"paularmstrong","url":"https://github.com/paularmstrong","imageURL":"https://github.com/paularmstrong.png","key":"paularmstrong","page":null},{"name":"Linus L\xe5ngberg","alias":"phoqe","url":"https://github.com/phoqe","imageURL":"https://github.com/phoqe.png","key":"phoqe","page":null},{"name":"Ram\xf3n Lamana","alias":"rlamana","url":"https://github.com/rlamana","imageURL":"https://github.com/rlamana.png","key":"rlamana","page":null},{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},{"name":"Theodore Chu","alias":"TheodoreChu","url":"https://github.com/TheodoreChu","imageURL":"https://github.com/TheodoreChu.png","key":"TheodoreChu","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null},{"name":"ZachJW34","alias":"ZachJW34","url":"https://github.com/ZachJW34","imageURL":"https://github.com/ZachJW34.png","key":"ZachJW34","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-04-01T20:00","authors":["38elements","ayshiff","bravo-kernel","elviswolcott","fakela","fanny","GermaVinsmoke","iamkun","jeffersonlicet","KohheePeace","lex111","lukecollier","mohrash92","nebrelbug","nisarhassan12","paularmstrong","phoqe","rlamana","SamChou19815","Simek","slorber","TheodoreChu","yangshun","ZachJW34"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.50","permalink":"/changelog/2.0.0-alpha.50"},"nextItem":{"title":"2.0.0-alpha.48","permalink":"/changelog/2.0.0-alpha.48"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#2487](https://github.com/facebook/docusaurus/pull/2487) feat(v2): nav dropdown ([@yangshun](https://github.com/yangshun))\\n - [#2456](https://github.com/facebook/docusaurus/pull/2456) feat(v2): support comments for code highlighting ([@elviswolcott](https://github.com/elviswolcott))\\n - [#2330](https://github.com/facebook/docusaurus/pull/2330) feat(v2): add announcement bar ([@lex111](https://github.com/lex111))\\n - [#2440](https://github.com/facebook/docusaurus/pull/2440) feat(v2): make clickable sidebar logo ([@lex111](https://github.com/lex111))\\n - [#2366](https://github.com/facebook/docusaurus/pull/2366) feat(v2): support syncing tab choices ([@SamChou19815](https://github.com/SamChou19815))\\n- `docusaurus`\\n - [#2323](https://github.com/facebook/docusaurus/pull/2323) feat(v2): add a way to exclude components from build-time prerendering ([@lex111](https://github.com/lex111))\\n - [#2469](https://github.com/facebook/docusaurus/pull/2469) feat(v2): add TypeScript support for theme components ([@SamChou19815](https://github.com/SamChou19815))\\n - [#2455](https://github.com/facebook/docusaurus/pull/2455) feat(v2): add @theme-original alias to give access to pre-swizzled components ([@yangshun](https://github.com/yangshun))\\n - [#2438](https://github.com/facebook/docusaurus/pull/2438) feat(v2): add version to page\'s generated meta tags ([@lex111](https://github.com/lex111))\\n- `docusaurus-types`, `docusaurus`\\n - [#2474](https://github.com/facebook/docusaurus/pull/2474) feat(v2): add ability to create unminimized bundles ([@lex111](https://github.com/lex111))\\n - [#2417](https://github.com/facebook/docusaurus/pull/2417) feat(v2): allow custom output directory for build ([@ZachJW34](https://github.com/ZachJW34))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2346](https://github.com/facebook/docusaurus/pull/2346) feat(v2): add filename in CodeBlock ([@KohheePeace](https://github.com/KohheePeace))\\n- `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#2444](https://github.com/facebook/docusaurus/pull/2444) feat(v2): allow nested sidebar category shorthand syntax ([@slorber](https://github.com/slorber))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#2483](https://github.com/facebook/docusaurus/pull/2483) fix(v2): do not render sidebar logo if used sticky navbar ([@lex111](https://github.com/lex111))\\n - [#2475](https://github.com/facebook/docusaurus/pull/2475) fix(v2): make correct Open Graph title for doc page ([@lex111](https://github.com/lex111))\\n - [#2436](https://github.com/facebook/docusaurus/pull/2436) fix(v2): update twitter:card to summary_large_image ([@lex111](https://github.com/lex111))\\n - [#2434](https://github.com/facebook/docusaurus/pull/2434) fix(v2): add support dark logo for sidebar logo ([@lex111](https://github.com/lex111))\\n - [#2420](https://github.com/facebook/docusaurus/pull/2420) fix(v2): fix external URL for og:image tag ([@38elements](https://github.com/38elements))\\n- `docusaurus-theme-live-codeblock`\\n - [#2480](https://github.com/facebook/docusaurus/pull/2480) fix(v2): various improvements for accessibility ([@lex111](https://github.com/lex111))\\n- `docusaurus-mdx-loader`, `docusaurus-theme-classic`\\n - [#2479](https://github.com/facebook/docusaurus/pull/2479) chore(v2): upgrade MDX to 1.5.8 ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2476](https://github.com/facebook/docusaurus/pull/2476) fix(v2): improve code block scroll accessibility ([@lex111](https://github.com/lex111))\\n - [#2442](https://github.com/facebook/docusaurus/pull/2442) fix(v2): various improvements for accessibility ([@lex111](https://github.com/lex111))\\n- `docusaurus-preset-classic`, `docusaurus-theme-classic`\\n - [#2477](https://github.com/facebook/docusaurus/pull/2477) chore(v2): upgrade remark-admonitions for a11y fixes ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2462](https://github.com/facebook/docusaurus/pull/2462) fix(v2): do not force terminate building when bundle analyzer is on ([@lex111](https://github.com/lex111))\\n - [#2393](https://github.com/facebook/docusaurus/pull/2393) fix(v2): normalize location for route matching ([@rlamana](https://github.com/rlamana))\\n - [#2443](https://github.com/facebook/docusaurus/pull/2443) fix(v2): always exit after successful build ([@mohrash92](https://github.com/mohrash92))\\n - [#2437](https://github.com/facebook/docusaurus/pull/2437) fix(v2): do not force terminate building if client bundle failed in development mode ([@lex111](https://github.com/lex111))\\n - [#2424](https://github.com/facebook/docusaurus/pull/2424) fix(v2): make correct internal link check ([@lex111](https://github.com/lex111))\\n- `docusaurus-preset-classic`\\n - [#2451](https://github.com/facebook/docusaurus/pull/2451) fix(v2): pass options to remark-admonitions ([@elviswolcott](https://github.com/elviswolcott))\\n- `docusaurus-mdx-loader`\\n - [#2426](https://github.com/facebook/docusaurus/pull/2426) fix(v2): remove HTML from heading slug ([@lex111](https://github.com/lex111))\\n- `docusaurus-utils`\\n - [#2405](https://github.com/facebook/docusaurus/pull/2405) fix(v2): properly dedupe forward slashes in the entire URL path ([@rlamana](https://github.com/rlamana))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#2485](https://github.com/facebook/docusaurus/pull/2485) refactor(v2): remove unnecessary X-UA-Compatible meta tag ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`\\n - [#2460](https://github.com/facebook/docusaurus/pull/2460) refactor(v2): use single method package instead of whole Lodash package in blog plugin ([@Simek](https://github.com/Simek))\\n- Other\\n - [#2428](https://github.com/facebook/docusaurus/pull/2428) polish(v2): use npm-to-yarn for the npm2yarn remark plugin ([@nebrelbug](https://github.com/nebrelbug))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#2478](https://github.com/facebook/docusaurus/pull/2478) docs(v2): mark that in dev server some features may not work ([@lex111](https://github.com/lex111))\\n - [#2472](https://github.com/facebook/docusaurus/pull/2472) docs(v2): fix typo in deployment docs ([@GermaVinsmoke](https://github.com/GermaVinsmoke))\\n - [#2423](https://github.com/facebook/docusaurus/pull/2423) docs(v2): add Sass/SCSS under the styling section ([@rlamana](https://github.com/rlamana))\\n - [#2446](https://github.com/facebook/docusaurus/pull/2446) docs(v2): add docusaurus-plugin-sass to community plugins ([@rlamana](https://github.com/rlamana))\\n - [#2408](https://github.com/facebook/docusaurus/pull/2408) docs(v2): suggest Surge for quick deployment ([@fakela](https://github.com/fakela))\\n - [#2401](https://github.com/facebook/docusaurus/pull/2401) docs(v2): add resources page ([@yangshun](https://github.com/yangshun))\\n - [#2413](https://github.com/facebook/docusaurus/pull/2413) docs(v2): include appId key for Algolia ([@TheodoreChu](https://github.com/TheodoreChu))\\n - [#2411](https://github.com/facebook/docusaurus/pull/2411) docs:(v2): add Netlify configuration warning ([@bravo-kernel](https://github.com/bravo-kernel))\\n - [#2397](https://github.com/facebook/docusaurus/pull/2397) docs(v2):update alpha version to current version ([@fakela](https://github.com/fakela))\\n - [#2395](https://github.com/facebook/docusaurus/pull/2395) docs(v2): clarify instructions on docs-only mode ([@phoqe](https://github.com/phoqe))\\n- `docusaurus-init`\\n - [#2458](https://github.com/facebook/docusaurus/pull/2458) fix(v2): expand broken admonitions ([@elviswolcott](https://github.com/elviswolcott))\\n\\n## :house: Internal\\n\\n- `docusaurus`\\n - [#2461](https://github.com/facebook/docusaurus/pull/2461) chore(v2): upgrade react-dev-utils ([@lex111](https://github.com/lex111))\\n- Other\\n - [#2450](https://github.com/facebook/docusaurus/pull/2450) docs(v2): Adding Motion Layout to Docusaurus users ([@jeffersonlicet](https://github.com/jeffersonlicet))\\n - [#2450](https://github.com/facebook/docusaurus/pull/2450) docs(v2): Adding Motion Layout to Docusaurus users ([@jeffersonlicet](https://github.com/jeffersonlicet))\\n - [#2439](https://github.com/facebook/docusaurus/pull/2439) polish(v2): add logo for dark mode ([@lex111](https://github.com/lex111))\\n - [#2435](https://github.com/facebook/docusaurus/pull/2435) fix(v2): fix aspect ratio for Open Graph image ([@lex111](https://github.com/lex111))\\n - [#2433](https://github.com/facebook/docusaurus/pull/2433) chore(v2): ignore JetBrains editors .iml files ([@slorber](https://github.com/slorber))\\n - [#2416](https://github.com/facebook/docusaurus/pull/2416) docs(v2): Add Build Tracker to Showcase page ([@paularmstrong](https://github.com/paularmstrong))\\n - [#2388](https://github.com/facebook/docusaurus/pull/2388) docs(v1): showcase user Day.js ([@iamkun](https://github.com/iamkun))\\n- `stylelint-copyright`\\n - [#2415](https://github.com/facebook/docusaurus/pull/2415) misc: improve stylelint rule ([@ayshiff](https://github.com/ayshiff))\\n\\n## Committers: 24\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Bartosz Kaszubowski ([@Simek](https://github.com/Simek))\\n- Ben Gubler ([@nebrelbug](https://github.com/nebrelbug))\\n- Elvis Wolcott ([@elviswolcott](https://github.com/elviswolcott))\\n- Fanny ([@fanny](https://github.com/fanny))\\n- Favour Kelvin ([@fakela](https://github.com/fakela))\\n- Jefferson Licet ([@jeffersonlicet](https://github.com/jeffersonlicet))\\n- Kohhee Peace ([@KohheePeace](https://github.com/KohheePeace))\\n- Linus L\xe5ngberg ([@phoqe](https://github.com/phoqe))\\n- Luke Collier ([@lukecollier](https://github.com/lukecollier))\\n- Nisar Hassan Naqvi ([@nisarhassan12](https://github.com/nisarhassan12))\\n- Paul Armstrong ([@paularmstrong](https://github.com/paularmstrong))\\n- Ram\xf3n Lamana ([@rlamana](https://github.com/rlamana))\\n- R\xe9mi Doreau ([@ayshiff](https://github.com/ayshiff))\\n- Sam Zhou ([@SamChou19815](https://github.com/SamChou19815))\\n- S\xe9bastien Lorber ([@slorber](https://github.com/slorber))\\n- Theodore Chu ([@TheodoreChu](https://github.com/TheodoreChu))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- [@38elements](https://github.com/38elements)\\n- [@GermaVinsmoke](https://github.com/GermaVinsmoke)\\n- [@ZachJW34](https://github.com/ZachJW34)\\n- [@bravo-kernel](https://github.com/bravo-kernel)\\n- [@iamkun](https://github.com/iamkun)\\n- [@mohrash92](https://github.com/mohrash92)"},{"id":"/2.0.0-alpha.48","metadata":{"permalink":"/changelog/2.0.0-alpha.48","source":"@site/changelog/source/2.0.0-alpha.48.md","title":"2.0.0-alpha.48","description":"HOTFIX for 2.0.0-alpha.44.","date":"2020-03-08T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-03-08T20:00","authors":["lex111"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.49","permalink":"/changelog/2.0.0-alpha.49"},"nextItem":{"title":"2.0.0-alpha.44","permalink":"/changelog/2.0.0-alpha.44"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n**HOTFIX for 2.0.0-alpha.44**.\\n\\n## :bug: Bug Fix\\n\\n- Other\\n - [#2383](https://github.com/facebook/docusaurus/pull/2383) fix(v2): specify proper version for stylelint-copyright ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2382](https://github.com/facebook/docusaurus/pull/2382) fix(v2): add missing preset-typescript dependency ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2386](https://github.com/facebook/docusaurus/pull/2386) fix(v2): add missing prismjs dependency and Noop component ([@lex111](https://github.com/lex111))\\n\\n## Committers: 1\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))"},{"id":"/2.0.0-alpha.44","metadata":{"permalink":"/changelog/2.0.0-alpha.44","source":"@site/changelog/source/2.0.0-alpha.44.md","title":"2.0.0-alpha.44","description":"New Feature","date":"2020-03-08T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Amila Welihinda","alias":"amilajack","url":"https://github.com/amilajack","imageURL":"https://github.com/amilajack.png","key":"amilajack","page":null},{"name":"Paulus Schoutsen","alias":"balloob","url":"https://github.com/balloob","imageURL":"https://github.com/balloob.png","key":"balloob","page":null},{"name":"Robert","alias":"deniaz","url":"https://github.com/deniaz","imageURL":"https://github.com/deniaz.png","key":"deniaz","page":null},{"name":"Hassan Farid","alias":"hassanfarid","url":"https://github.com/hassanfarid","imageURL":"https://github.com/hassanfarid.png","key":"hassanfarid","page":null},{"name":"jartuso","alias":"jartuso","url":"https://github.com/jartuso","imageURL":"https://github.com/jartuso.png","key":"jartuso","page":null},{"name":"JavaScript Joe","alias":"jsjoeio","url":"https://github.com/jsjoeio","imageURL":"https://github.com/jsjoeio.png","key":"jsjoeio","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Mohamed Abdel Nasser","alias":"mohamedsgap","url":"https://github.com/mohamedsgap","imageURL":"https://github.com/mohamedsgap.png","key":"mohamedsgap","page":null},{"name":"Noah Silvera","alias":"Noah-Silvera","url":"https://github.com/Noah-Silvera","imageURL":"https://github.com/Noah-Silvera.png","key":"Noah-Silvera","page":null},{"name":"Linus L\xe5ngberg","alias":"phoqe","url":"https://github.com/phoqe","imageURL":"https://github.com/phoqe.png","key":"phoqe","page":null},{"name":"Ram\xf3n Lamana","alias":"rlamana","url":"https://github.com/rlamana","imageURL":"https://github.com/rlamana.png","key":"rlamana","page":null},{"name":"Sylvain Pace","alias":"s-pace","url":"https://github.com/s-pace","imageURL":"https://github.com/s-pace.png","key":"s-pace","page":null},{"name":"Scott Lee","alias":"scottilee","url":"https://github.com/scottilee","imageURL":"https://github.com/scottilee.png","key":"scottilee","page":null},{"name":"Theodore Chu","alias":"TheodoreChu","url":"https://github.com/TheodoreChu","imageURL":"https://github.com/TheodoreChu.png","key":"TheodoreChu","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null},{"name":"Zhenchao Cai","alias":"Zhencha0Cai","url":"https://github.com/Zhencha0Cai","imageURL":"https://github.com/Zhencha0Cai.png","key":"Zhencha0Cai","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-03-08T19:00","authors":["amilajack","balloob","deniaz","hassanfarid","jartuso","jsjoeio","lex111","mohamedsgap","Noah-Silvera","phoqe","rlamana","s-pace","scottilee","TheodoreChu","yangshun","Zhencha0Cai"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.48","permalink":"/changelog/2.0.0-alpha.48"},"nextItem":{"title":"2.0.0-alpha.43","permalink":"/changelog/2.0.0-alpha.43"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#2250](https://github.com/facebook/docusaurus/pull/2250) feat(v2): add support specify new languages for Prism ([@lex111](https://github.com/lex111))\\n - [#2344](https://github.com/facebook/docusaurus/pull/2344) feat(v2): allow specifying custom target for logo link ([@lex111](https://github.com/lex111))\\n - [#2327](https://github.com/facebook/docusaurus/pull/2327) feat(v2): add ability to use HTML in footer copyright ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`\\n - [#2335](https://github.com/facebook/docusaurus/pull/2335) feat(v2): add draft feature to blog posts ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`, `docusaurus-theme-classic`\\n - [#2303](https://github.com/facebook/docusaurus/pull/2303) docs(v2): Nav links activeBasePath ([@yangshun](https://github.com/yangshun))\\n- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus`\\n - [#2296](https://github.com/facebook/docusaurus/pull/2296) feat(v2): add ExecutionEnvironment API ([@yangshun](https://github.com/yangshun))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#2345](https://github.com/facebook/docusaurus/pull/2345) fix(v2): force terminate building if client bundle failed ([@lex111](https://github.com/lex111))\\n - [#2310](https://github.com/facebook/docusaurus/pull/2310) fix(v2): add @babel/preset-typescript to babel-loader ([@deniaz](https://github.com/deniaz))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2371](https://github.com/facebook/docusaurus/pull/2371) fix(v2): remove line break from end of code blocks ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`\\n - [#2326](https://github.com/facebook/docusaurus/pull/2326) fix(v2): linkify blog posts ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2324](https://github.com/facebook/docusaurus/pull/2324) fix(v2): properly set dark mode logo on build-time prerendering ([@lex111](https://github.com/lex111))\\n - [#2325](https://github.com/facebook/docusaurus/pull/2325) fix(v2): switch a toggle when system theme changed ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-pages`, `docusaurus-utils`\\n - [#2334](https://github.com/facebook/docusaurus/pull/2334) fix(v2): make proper path to pages in TS ([@lex111](https://github.com/lex111))\\n- Other\\n - [#2316](https://github.com/facebook/docusaurus/pull/2316) fix(v2): properly scale logo on IE 11 ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-search-algolia`\\n - [#2376](https://github.com/facebook/docusaurus/pull/2376) refactor(v2): clean up and improve Algolia styles ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`\\n - [#2372](https://github.com/facebook/docusaurus/pull/2372) chore(v2): upgrade Infima and remark-admonitions ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2367](https://github.com/facebook/docusaurus/pull/2367) refactor(v2): increase CSS specificity on application container ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`, `stylelint-copyright`\\n - [#2363](https://github.com/facebook/docusaurus/pull/2363) fix(v2): improve stylelint copyright header rule ([@yangshun](https://github.com/yangshun))\\n- `docusaurus-types`, `docusaurus`\\n - [#2342](https://github.com/facebook/docusaurus/pull/2342) chore(v2): mark tagline field as optional ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- [#2378](https://github.com/facebook/docusaurus/pull/2378) docs(v2): add section for docs-only mode ([@phoqe](https://github.com/phoqe))\\n- [#2357](https://github.com/facebook/docusaurus/pull/2357) docs(v2): fix getPathsToWatch() example syntax in lifecycle APIs ([@rlamana](https://github.com/rlamana))\\n- [#2351](https://github.com/facebook/docusaurus/pull/2351) docs(v2): add examples to plugin usage doc ([@Noah-Silvera](https://github.com/Noah-Silvera))\\n- [#2343](https://github.com/facebook/docusaurus/pull/2343) docs(v2): fix typo in remark-admonitions example ([@hassanfarid](https://github.com/hassanfarid))\\n- [#2340](https://github.com/facebook/docusaurus/pull/2340) docs(v2): mention about disabling Jekyll when using GitHub pages ([@amilajack](https://github.com/amilajack))\\n- [#2338](https://github.com/facebook/docusaurus/pull/2338) docs(v2): guide on upgrading Docusaurus within a project ([@TheodoreChu](https://github.com/TheodoreChu))\\n- [#2313](https://github.com/facebook/docusaurus/pull/2313) docs(v2): move the quotes to remark admonitions ([@Zhencha0Cai](https://github.com/Zhencha0Cai))\\n- [#2307](https://github.com/facebook/docusaurus/pull/2307) docs(v1): fix Windows instructions for GitHub Pages publishing ([@jartuso](https://github.com/jartuso))\\n- [#2300](https://github.com/facebook/docusaurus/pull/2300) docs(v2): make blog plugin config example valid ([@balloob](https://github.com/balloob))\\n- [#2289](https://github.com/facebook/docusaurus/pull/2289) docs(v2): add instructions on Travis CI deployment ([@mohamedsgap](https://github.com/mohamedsgap))\\n\\n## :house: Internal\\n\\n- Other\\n - [#2369](https://github.com/facebook/docusaurus/pull/2369) misc: mention about v2 in README file ([@lex111](https://github.com/lex111))\\n - [#2368](https://github.com/facebook/docusaurus/pull/2368) misc: add note about edits in versioned docs ([@lex111](https://github.com/lex111))\\n - [#2333](https://github.com/facebook/docusaurus/pull/2333) docs: update use of npm/yarn in contributing.md ([@jsjoeio](https://github.com/jsjoeio))\\n - [#2328](https://github.com/facebook/docusaurus/pull/2328) docs(v2): remove unwanted black line from DocSearch showcase image ([@s-pace](https://github.com/s-pace))\\n - [#2319](https://github.com/facebook/docusaurus/pull/2319) docs(v2): showcase user Algolia ([@scottilee](https://github.com/scottilee))\\n- `docusaurus-init`\\n - [#2322](https://github.com/facebook/docusaurus/pull/2322) docs(v2): fix misc styling ([@lex111](https://github.com/lex111))\\n\\n## Committers: 16\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Amila Welihinda ([@amilajack](https://github.com/amilajack))\\n- Hassan Farid ([@hassanfarid](https://github.com/hassanfarid))\\n- Joe Previte ([@jsjoeio](https://github.com/jsjoeio))\\n- Linus L\xe5ngberg ([@phoqe](https://github.com/phoqe))\\n- Mohamed Abdel Nasser ([@mohamedsgap](https://github.com/mohamedsgap))\\n- Noah Silvera ([@Noah-Silvera](https://github.com/Noah-Silvera))\\n- Paulus Schoutsen ([@balloob](https://github.com/balloob))\\n- Ram\xf3n Lamana ([@rlamana](https://github.com/rlamana))\\n- Robert ([@deniaz](https://github.com/deniaz))\\n- Scott Lee ([@scottilee](https://github.com/scottilee))\\n- Sylvain Pace ([@s-pace](https://github.com/s-pace))\\n- Theodore Chu ([@TheodoreChu](https://github.com/TheodoreChu))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- Zhenchao Cai ([@Zhencha0Cai](https://github.com/Zhencha0Cai))\\n- [@jartuso](https://github.com/jartuso)"},{"id":"/2.0.0-alpha.43","metadata":{"permalink":"/changelog/2.0.0-alpha.43","source":"@site/changelog/source/2.0.0-alpha.43.md","title":"2.0.0-alpha.43","description":"HOTFIX for 2.0.0-alpha.41.","date":"2020-02-18T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-02-18T20:00","authors":["lex111","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.44","permalink":"/changelog/2.0.0-alpha.44"},"nextItem":{"title":"2.0.0-alpha.41","permalink":"/changelog/2.0.0-alpha.41"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n**HOTFIX for 2.0.0-alpha.41**.\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#2292](https://github.com/facebook/docusaurus/pull/2292) chore(v2): update Infima to 0.2.0-alpha.4 ([@yangshun](https://github.com/yangshun))\\n - [#2291](https://github.com/facebook/docusaurus/pull/2291) fix(v2): fix build and deps install ([@lex111](https://github.com/lex111))\\n\\n## Committers: 2\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))"},{"id":"/2.0.0-alpha.41","metadata":{"permalink":"/changelog/2.0.0-alpha.41","source":"@site/changelog/source/2.0.0-alpha.41.md","title":"2.0.0-alpha.41","description":"New Feature","date":"2020-02-16T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"awalias","alias":"awalias","url":"https://github.com/awalias","imageURL":"https://github.com/awalias.png","key":"awalias","page":null},{"name":"Elie Dutheil","alias":"edwandr","url":"https://github.com/edwandr","imageURL":"https://github.com/edwandr.png","key":"edwandr","page":null},{"name":"Elvis Wolcott","alias":"elviswolcott","url":"https://github.com/elviswolcott","imageURL":"https://github.com/elviswolcott.png","key":"elviswolcott","page":null},{"name":"Evan Rubinton","alias":"erubi","url":"https://github.com/erubi","imageURL":"https://github.com/erubi.png","key":"erubi","page":null},{"name":"Gal Havivi","alias":"galhavivi","url":"https://github.com/galhavivi","imageURL":"https://github.com/galhavivi.png","key":"galhavivi","page":null},{"name":"Hendrik Bulens","alias":"hbulens","url":"https://github.com/hbulens","imageURL":"https://github.com/hbulens.png","key":"hbulens","page":null},{"name":"Ashley Jeffs","alias":"Jeffail","url":"https://github.com/Jeffail","imageURL":"https://github.com/Jeffail.png","key":"Jeffail","page":null},{"name":"Joshua Williams","alias":"jjwill","url":"https://github.com/jjwill","imageURL":"https://github.com/jjwill.png","key":"jjwill","page":null},{"name":"Joel Marcey","alias":"JoelMarcey","url":"https://github.com/JoelMarcey","imageURL":"https://github.com/JoelMarcey.png","key":"JoelMarcey","page":null},{"name":"Jonathan Delgado","alias":"jonathanrdelgado","url":"https://github.com/jonathanrdelgado","imageURL":"https://github.com/jonathanrdelgado.png","key":"jonathanrdelgado","page":null},{"name":"JavaScript Joe","alias":"jsjoeio","url":"https://github.com/jsjoeio","imageURL":"https://github.com/jsjoeio.png","key":"jsjoeio","page":null},{"name":"KohheePeace","alias":"KohheePeace","url":"https://github.com/KohheePeace","imageURL":"https://github.com/KohheePeace.png","key":"KohheePeace","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Mark Terrel","alias":"mterrel","url":"https://github.com/mterrel","imageURL":"https://github.com/mterrel.png","key":"mterrel","page":null},{"name":"Ond\u0159ej Nepo\u017Eitek","alias":"OndrejNepozitek","url":"https://github.com/OndrejNepozitek","imageURL":"https://github.com/OndrejNepozitek.png","key":"OndrejNepozitek","page":null},{"name":"Scott Dowding","alias":"sdowding","url":"https://github.com/sdowding","imageURL":"https://github.com/sdowding.png","key":"sdowding","page":null},{"name":"Hanseung Yoo","alias":"trustyoo86","url":"https://github.com/trustyoo86","imageURL":"https://github.com/trustyoo86.png","key":"trustyoo86","page":null},{"name":"Wei Gao","alias":"wgao19","url":"https://github.com/wgao19","imageURL":"https://github.com/wgao19.png","key":"wgao19","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2020-02-16T20:00","authors":["awalias","edwandr","elviswolcott","erubi","galhavivi","hbulens","Jeffail","jjwill","JoelMarcey","jonathanrdelgado","jsjoeio","KohheePeace","lex111","mterrel","OndrejNepozitek","sdowding","trustyoo86","wgao19"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.43","permalink":"/changelog/2.0.0-alpha.43"},"nextItem":{"title":"2.0.0-alpha.40","permalink":"/changelog/2.0.0-alpha.40"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-init`, `docusaurus-preset-classic`, `docusaurus-theme-classic`\\n - [#2224](https://github.com/facebook/docusaurus/pull/2224) feat(v2): add remark-admonitions to @docusaurus/preset-classic ([@elviswolcott](https://github.com/elviswolcott))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#2263](https://github.com/facebook/docusaurus/pull/2263) feat(v2): pluralize posts on tag\'s page ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2261](https://github.com/facebook/docusaurus/pull/2261) feat(v2): allow to specify different logo for dark mode ([@lex111](https://github.com/lex111))\\n - [#2253](https://github.com/facebook/docusaurus/pull/2253) feat(v2): allow specify custom link for logo ([@lex111](https://github.com/lex111))\\n - [#2255](https://github.com/facebook/docusaurus/pull/2255) feat(v2): add site title to meta title ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-pages`, `docusaurus-utils`, `docusaurus`\\n - [#2221](https://github.com/facebook/docusaurus/pull/2221) feat(v2): allow for TypeScript pages and components ([@jonathanrdelgado](https://github.com/jonathanrdelgado))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-theme-classic`\\n - [#2235](https://github.com/facebook/docusaurus/pull/2235) fix(v2): show doc sidebar on pages with case-sensitive paths ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2285](https://github.com/facebook/docusaurus/pull/2285) fix(v2): fix codeblock copy button not including blank lines ([@KohheePeace](https://github.com/KohheePeace))\\n - [#2241](https://github.com/facebook/docusaurus/pull/2241) fix(v2): make code blocks scrollable ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#2259](https://github.com/facebook/docusaurus/pull/2259) fix(v2): use site title if enabled blog-only mode ([@lex111](https://github.com/lex111))\\n - [#2248](https://github.com/facebook/docusaurus/pull/2248) fix(v2): adjust correct behavior of navbar when active anchor ([@lex111](https://github.com/lex111))\\n - [#2235](https://github.com/facebook/docusaurus/pull/2235) fix(v2): show doc sidebar on pages with case-sensitive paths ([@lex111](https://github.com/lex111))\\n - [#2162](https://github.com/facebook/docusaurus/pull/2162) fix(v2): unify anchor behavior ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-search-algolia`\\n - [#2262](https://github.com/facebook/docusaurus/pull/2262) fix(v2): remove focus on search input when hovering over it ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#2240](https://github.com/facebook/docusaurus/pull/2240) fix(v2): hide read more button on non-truncated posts ([@lex111](https://github.com/lex111))\\n- `docusaurus`\\n - [#2237](https://github.com/facebook/docusaurus/pull/2237) fix(v2): include base url in 404 route ([@lex111](https://github.com/lex111))\\n- `docusaurus-mdx-loader`\\n - [#2236](https://github.com/facebook/docusaurus/pull/2236) fix(v2): escape link text in TOC ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-live-codeblock`\\n - [#2227](https://github.com/facebook/docusaurus/pull/2227) fix(v2): render correct theme for live code blocks on SSR ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2254](https://github.com/facebook/docusaurus/pull/2254) refactor(v2): avoid to use raw theme values ([@lex111](https://github.com/lex111))\\n\\n## :memo: Documentation\\n\\n- [#2281](https://github.com/facebook/docusaurus/pull/2281) docs: update windows deploy command ([@OndrejNepozitek](https://github.com/OndrejNepozitek))\\n- [#2257](https://github.com/facebook/docusaurus/pull/2257) docs(v2): require using JSX flavored style objects in mdx ([@wgao19](https://github.com/wgao19))\\n- [#2251](https://github.com/facebook/docusaurus/pull/2251) docs(v2): collapsible categories in sidebar ([@lex111](https://github.com/lex111))\\n- [#2218](https://github.com/facebook/docusaurus/pull/2218) docs(v2): update link to available prism themes ([@jsjoeio](https://github.com/jsjoeio))\\n- [#2216](https://github.com/facebook/docusaurus/pull/2216) docs(v2): fix plugin-content-docs config comment typo ([@sdowding](https://github.com/sdowding))\\n\\n## :house: Internal\\n\\n- Other\\n - [#2256](https://github.com/facebook/docusaurus/pull/2256) fix(v2): add title for Feedback page ([@lex111](https://github.com/lex111))\\n - [#2246](https://github.com/facebook/docusaurus/pull/2246) docs(v2): add Benthos to showcase ([@Jeffail](https://github.com/Jeffail))\\n - [#2242](https://github.com/facebook/docusaurus/pull/2242) docs(v1): showcase user Jafar ([@galhavivi](https://github.com/galhavivi))\\n - [#2238](https://github.com/facebook/docusaurus/pull/2238) docs(v1): showcase Dime ([@hbulens](https://github.com/hbulens))\\n - [#2233](https://github.com/facebook/docusaurus/pull/2233) docs(v2): showcase user supabase ([@awalias](https://github.com/awalias))\\n - [#2226](https://github.com/facebook/docusaurus/pull/2226) docs(v1): showcase user Adapt.js ([@mterrel](https://github.com/mterrel))\\n - [#2225](https://github.com/facebook/docusaurus/pull/2225) docs(v1): add The Diff Podcast to users ([@JoelMarcey](https://github.com/JoelMarcey))\\n - [#2219](https://github.com/facebook/docusaurus/pull/2219) chore(v1): Updated users list, removing sites not using docusaurus ([@jjwill](https://github.com/jjwill))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#2239](https://github.com/facebook/docusaurus/pull/2239) chore(eslint): require curly brackets on all blocks ([@lex111](https://github.com/lex111))\\n\\n## Committers: 18\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Ashley Jeffs ([@Jeffail](https://github.com/Jeffail))\\n- Elie Dutheil ([@edwandr](https://github.com/edwandr))\\n- Elvis Wolcott ([@elviswolcott](https://github.com/elviswolcott))\\n- Evan Rubinton ([@erubi](https://github.com/erubi))\\n- Gal Havivi ([@galhavivi](https://github.com/galhavivi))\\n- Hanseung Yoo ([@trustyoo86](https://github.com/trustyoo86))\\n- Hendrik Bulens ([@hbulens](https://github.com/hbulens))\\n- JavaScript Joe ([@jsjoeio](https://github.com/jsjoeio))\\n- Joel Marcey ([@JoelMarcey](https://github.com/JoelMarcey))\\n- Jonathan Delgado ([@jonathanrdelgado](https://github.com/jonathanrdelgado))\\n- Joshua Williams ([@jjwill](https://github.com/jjwill))\\n- KohheePeace ([@KohheePeace](https://github.com/KohheePeace))\\n- Mark Terrel ([@mterrel](https://github.com/mterrel))\\n- Ond\u0159ej Nepo\u017Eitek ([@OndrejNepozitek](https://github.com/OndrejNepozitek))\\n- Scott Dowding ([@sdowding](https://github.com/sdowding))\\n- Wei Gao ([@wgao19](https://github.com/wgao19))\\n- [@awalias](https://github.com/awalias)"},{"id":"/2.0.0-alpha.40","metadata":{"permalink":"/changelog/2.0.0-alpha.40","source":"@site/changelog/source/2.0.0-alpha.40.md","title":"2.0.0-alpha.40","description":"New Feature","date":"2019-12-25T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Endi","alias":"endiliey","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null},{"name":"Janko Marohni\u0107","alias":"janko","url":"https://github.com/janko","imageURL":"https://github.com/janko.png","key":"janko","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Nick McCurdy","alias":"nickmccurdy","url":"https://github.com/nickmccurdy","imageURL":"https://github.com/nickmccurdy.png","key":"nickmccurdy","page":null},{"name":"t11s","alias":"TransmissionsDev","url":"https://github.com/TransmissionsDev","imageURL":"https://github.com/TransmissionsDev.png","key":"TransmissionsDev","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2019-12-25T20:00","authors":["endiliey","janko","lex111","nickmccurdy","TransmissionsDev","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.41","permalink":"/changelog/2.0.0-alpha.41"},"nextItem":{"title":"2.0.0-alpha.39","permalink":"/changelog/2.0.0-alpha.39"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#2117](https://github.com/facebook/docusaurus/pull/2117) feat(v2): auto switch theme depending on the system theme ([@lex111](https://github.com/lex111))\\n - [#2055](https://github.com/facebook/docusaurus/pull/2055) feat(v2): hide navbar on scroll ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#2145](https://github.com/facebook/docusaurus/pull/2145) fix(v2): remove style-loader, use minicssextract in both dev & prod ([@endiliey](https://github.com/endiliey))\\n - [#2122](https://github.com/facebook/docusaurus/pull/2122) fix(v2): dont collapse whitespace in minified html ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`\\n - [#2105](https://github.com/facebook/docusaurus/pull/2105) fix(v2): move metadata export after compiling MDX to avoid weird MDX parsing error. ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-theme-classic`\\n - [#2113](https://github.com/facebook/docusaurus/pull/2113) fix(v2): set stored theme only if it exists ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#2129](https://github.com/facebook/docusaurus/pull/2129) fix(v2): disable scroll while mobile menu open ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#2127](https://github.com/facebook/docusaurus/pull/2127) refactor(v2): toggle data-theme with vanilla js instead of react helmet ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-theme-search-algolia`, `docusaurus`\\n - [#2125](https://github.com/facebook/docusaurus/pull/2125) feat(v2): lazy load algolia css so its not render blocking ([@endiliey](https://github.com/endiliey))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#2135](https://github.com/facebook/docusaurus/pull/2135) docs(v1): add space between \\"out\\" and \\"Docusaurus\\" ([@TransmissionsDev](https://github.com/TransmissionsDev))\\n - [#2128](https://github.com/facebook/docusaurus/pull/2128) docs(v1): showcase user Shrine ([@janko](https://github.com/janko))\\n - [#2110](https://github.com/facebook/docusaurus/pull/2110) docs(v2): fix pages routing inaccurate info ([@endiliey](https://github.com/endiliey))\\n - [#2106](https://github.com/facebook/docusaurus/pull/2106) fix(v2): add missing hyphen in color generator ([@lex111](https://github.com/lex111))\\n - [#2104](https://github.com/facebook/docusaurus/pull/2104) feat(v2): add color generator for primary colors ([@yangshun](https://github.com/yangshun))\\n - [#2103](https://github.com/facebook/docusaurus/pull/2103) docs: mention about moving docs directory into website ([@yangshun](https://github.com/yangshun))\\n- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`\\n - [#2114](https://github.com/facebook/docusaurus/pull/2114) fix(v2): add syntax highlight to generated colors ([@lex111](https://github.com/lex111))\\n\\n## :house: Internal\\n\\n- Other\\n - [#2126](https://github.com/facebook/docusaurus/pull/2126) docs: promote Docusaurus 2 usage ([@yangshun](https://github.com/yangshun))\\n - [#2119](https://github.com/facebook/docusaurus/pull/2119) fix(v2): align GH button in vertical center ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`\\n - [#2124](https://github.com/facebook/docusaurus/pull/2124) feat(v2): add Facebook Docusaurus 2 template ([@yangshun](https://github.com/yangshun))\\n- `docusaurus`\\n - [#2111](https://github.com/facebook/docusaurus/pull/2111) feat(v2): explicit babel/runtime version ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-1.x`, `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-theme-live-codeblock`, `docusaurus`\\n - [#2102](https://github.com/facebook/docusaurus/pull/2102) misc: add command to run prettier on docs ([@yangshun](https://github.com/yangshun))\\n\\n## :running: Performance\\n\\n- `docusaurus`\\n - [#2118](https://github.com/facebook/docusaurus/pull/2118) perf(v2): reduce HTML payload by eliminating chunk-map ([@endiliey](https://github.com/endiliey))\\n - [#2116](https://github.com/facebook/docusaurus/pull/2116) feat(v2): minify html ([@endiliey](https://github.com/endiliey))\\n\\n## Committers: 6\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Endi ([@endiliey](https://github.com/endiliey))\\n- Janko Marohni\u0107 ([@janko](https://github.com/janko))\\n- Nick McCurdy ([@nickmccurdy](https://github.com/nickmccurdy))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))\\n- t11s ([@TransmissionsDev](https://github.com/TransmissionsDev))"},{"id":"/2.0.0-alpha.39","metadata":{"permalink":"/changelog/2.0.0-alpha.39","source":"@site/changelog/source/2.0.0-alpha.39.md","title":"2.0.0-alpha.39","description":"Bug Fix","date":"2019-12-07T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Endi","alias":"endiliey","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2019-12-07T20:00","authors":["endiliey"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.40","permalink":"/changelog/2.0.0-alpha.40"},"nextItem":{"title":"2.0.0-alpha.38","permalink":"/changelog/2.0.0-alpha.38"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#2099](https://github.com/facebook/docusaurus/pull/2099) fix(v2): escape import path on windows ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`\\n - [#2095](https://github.com/facebook/docusaurus/pull/2095) fix(v2): metadata error if markdown does not have ending line ([@endiliey](https://github.com/endiliey))\\n\\n## :house: Internal\\n\\n- Other\\n - [#2100](https://github.com/facebook/docusaurus/pull/2100) chore(CI): docusaurus build on Windows with GitHub actions ([@endiliey](https://github.com/endiliey))\\n- `docusaurus`\\n - [#2096](https://github.com/facebook/docusaurus/pull/2096) feat(v2): better & nice looking error overlay ([@endiliey](https://github.com/endiliey))\\n\\n## Committers: 1\\n\\n- Endi ([@endiliey](https://github.com/endiliey))"},{"id":"/2.0.0-alpha.38","metadata":{"permalink":"/changelog/2.0.0-alpha.38","source":"@site/changelog/source/2.0.0-alpha.38.md","title":"2.0.0-alpha.38","description":"Breaking Change","date":"2019-12-06T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Endi","alias":"endiliey","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null},{"name":"KYY","alias":"FeynmanDNA","url":"https://github.com/FeynmanDNA","imageURL":"https://github.com/FeynmanDNA.png","key":"FeynmanDNA","page":null},{"name":"kaichu","alias":"qshiwu","url":"https://github.com/qshiwu","imageURL":"https://github.com/qshiwu.png","key":"qshiwu","page":null},{"name":"Shivangna Kaistha","alias":"shivangna","url":"https://github.com/shivangna","imageURL":"https://github.com/shivangna.png","key":"shivangna","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2019-12-06T20:00","authors":["endiliey","FeynmanDNA","qshiwu","shivangna"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.39","permalink":"/changelog/2.0.0-alpha.39"},"nextItem":{"title":"2.0.0-alpha.37","permalink":"/changelog/2.0.0-alpha.37"},"listPageLink":"/changelog/page/4"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-utils`\\n - [#2088](https://github.com/facebook/docusaurus/pull/2088) perf(v2): smaller bundlesize by embedding metadata to content ([@endiliey](https://github.com/endiliey))\\n\\nIf you have swizzled any Docs/Blog component that depends on metadata, you\'ll have to update. If you haven\'t, no action is needed.\\n\\nFor example, if you\'ve swizzled `@theme/DocItem`. You\'ll have to update\\n\\n```diff\\n- const {metadata, content: DocContent} = props;\\n+ const {content: DocContent} = props;\\n+ const {metadata} = DocContent;\\n```\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#2086](https://github.com/facebook/docusaurus/pull/2086) fix(v2): windows compatibility regression ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-plugin-ideal-image`\\n - [#2074](https://github.com/facebook/docusaurus/pull/2074) fix(v2): fix plugin-ideal-image breaking website (exports not defined) ([@endiliey](https://github.com/endiliey))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-mdx-loader`\\n - [#2085](https://github.com/facebook/docusaurus/pull/2085) misc(v2): update mdx loader plugin README ([@shivangna](https://github.com/shivangna))\\n\\n## :house: Internal\\n\\n- `docusaurus-1.x`\\n - [#2087](https://github.com/facebook/docusaurus/pull/2087) fix(v1): add key to versions.map in versions.js ([@FeynmanDNA](https://github.com/FeynmanDNA))\\n - [#2083](https://github.com/facebook/docusaurus/pull/2083) refactor(v1): fix props for ProjectTitle ([@FeynmanDNA](https://github.com/FeynmanDNA))\\n- `docusaurus`\\n - [#2081](https://github.com/facebook/docusaurus/pull/2081) refactor(v2): move scripts/stylesheets injection to server side ([@endiliey](https://github.com/endiliey))\\n - [#2080](https://github.com/facebook/docusaurus/pull/2080) refactor(v2): minor code refactoring on component creator ([@endiliey](https://github.com/endiliey))\\n\\n## :running: Performance\\n\\n- `docusaurus-utils`\\n - [#2089](https://github.com/facebook/docusaurus/pull/2089) perf(v2): improve dev build time by not overwriting file if possible ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-theme-search-algolia`\\n - [#2079](https://github.com/facebook/docusaurus/pull/2079) perf(v2): algolia search result no longer cause full page refresh ([@endiliey](https://github.com/endiliey))\\n - [#2076](https://github.com/facebook/docusaurus/pull/2076) perf(v2): load algolia JS only when user interacts with search ([@endiliey](https://github.com/endiliey))\\n\\n## Committers: 4\\n\\n- Endi ([@endiliey](https://github.com/endiliey))\\n- KYY ([@FeynmanDNA](https://github.com/FeynmanDNA))\\n- Shivangna Kaistha ([@shivangna](https://github.com/shivangna))\\n- kaichu ([@qshiwu](https://github.com/qshiwu))"},{"id":"/2.0.0-alpha.37","metadata":{"permalink":"/changelog/2.0.0-alpha.37","source":"@site/changelog/source/2.0.0-alpha.37.md","title":"2.0.0-alpha.37","description":"Breaking Change","date":"2019-12-01T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Binary Logic","alias":"binarylogic","url":"https://github.com/binarylogic","imageURL":"https://github.com/binarylogic.png","key":"binarylogic","page":null},{"name":"Endi","alias":"endiliey","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null},{"name":"Dongwoo Gim","alias":"gimdongwoo","url":"https://github.com/gimdongwoo","imageURL":"https://github.com/gimdongwoo.png","key":"gimdongwoo","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Wei Gao","alias":"wgao19","url":"https://github.com/wgao19","imageURL":"https://github.com/wgao19.png","key":"wgao19","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2019-12-01T20:00","authors":["binarylogic","endiliey","gimdongwoo","lex111","wgao19"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.38","permalink":"/changelog/2.0.0-alpha.38"},"nextItem":{"title":"2.0.0-alpha.36","permalink":"/changelog/2.0.0-alpha.36"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-init`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`\\n - [#2045](https://github.com/facebook/docusaurus/pull/2045) breaking(v2): minimum required nodejs version 8.9-> 8.10 so we can use es2017 ([@endiliey](https://github.com/endiliey))\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#2069](https://github.com/facebook/docusaurus/pull/2069) feat(v2): support prefers-color-scheme & fix dark mode FOUC on refresh ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-plugin-content-blog`\\n - [#2000](https://github.com/facebook/docusaurus/pull/2000) feat(v2): add meta RSS/Atom feed links to head ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus`\\n - [#2057](https://github.com/facebook/docusaurus/pull/2057) feat(v2): injectHtmlTags API to inject head and/or body html tags ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus`\\n - [#2032](https://github.com/facebook/docusaurus/pull/2032) feat(v2): allow non sidebar category to be first item of sidebar ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`\\n - [#1983](https://github.com/facebook/docusaurus/pull/1983) feat(v2): docs versioning \u2744\uFE0F\u{1F525} ([@endiliey](https://github.com/endiliey))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`, `docusaurus`\\n - [#2069](https://github.com/facebook/docusaurus/pull/2069) feat(v2): support prefers-color-scheme & fix dark mode FOUC on refresh ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-mdx-loader`\\n - [#2067](https://github.com/facebook/docusaurus/pull/2067) fix(v2): toc should not be broken for heading with html inline code ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-theme-classic`\\n - [#2064](https://github.com/facebook/docusaurus/pull/2064) fix(v2): markdown reference to file should not be page not found ([@endiliey](https://github.com/endiliey))\\n - [#2061](https://github.com/facebook/docusaurus/pull/2061) fix(v2): fix docs sidebar highlighting if link is partially matched ([@endiliey](https://github.com/endiliey))\\n- `docusaurus`\\n - [#2042](https://github.com/facebook/docusaurus/pull/2042) fix(v2): remove css order warning if css imports are not sorted ([@endiliey](https://github.com/endiliey))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#2066](https://github.com/facebook/docusaurus/pull/2066) refactor(v2): add title attribute to anchor link ([@lex111](https://github.com/lex111))\\n - [#1990](https://github.com/facebook/docusaurus/pull/1990) refactor(v2): make better a11y for tabs ([@lex111](https://github.com/lex111))\\n - [#2034](https://github.com/facebook/docusaurus/pull/2034) feat(v2): style sidebar on overflow ([@endiliey](https://github.com/endiliey))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#2068](https://github.com/facebook/docusaurus/pull/2068) docs(v2): quick proofread docs ([@endiliey](https://github.com/endiliey))\\n - [#2047](https://github.com/facebook/docusaurus/pull/2047) docs(v2): add manual migration guide for versioning ([@endiliey](https://github.com/endiliey))\\n - [#2036](https://github.com/facebook/docusaurus/pull/2036) docs(v2): Reorganize migration guide ([@wgao19](https://github.com/wgao19))\\n - [#2052](https://github.com/facebook/docusaurus/pull/2052) fix(v2): make proper spelling of Yarn in tabs ([@lex111](https://github.com/lex111))\\n - [#2040](https://github.com/facebook/docusaurus/pull/2040) docs(v2): showcase user vector.dev :) ([@binarylogic](https://github.com/binarylogic))\\n - [#2038](https://github.com/facebook/docusaurus/pull/2038) docs(v2): add documentation on versioning ([@endiliey](https://github.com/endiliey))\\n - [#2037](https://github.com/facebook/docusaurus/pull/2037) docs(v2): display yarn and npm command on website ([@endiliey](https://github.com/endiliey))\\n - [#2051](https://github.com/facebook/docusaurus/pull/2051) docs(v2): more examples on lifecycle apis, cleanup ([@endiliey](https://github.com/endiliey))\\n\\n## :house: Internal\\n\\n- `docusaurus-plugin-content-blog`\\n - [#2072](https://github.com/facebook/docusaurus/pull/2072) refactor(v2): stronger typing for blog plugin ([@endiliey](https://github.com/endiliey))\\n- `docusaurus`\\n - [#2060](https://github.com/facebook/docusaurus/pull/2060) fix(v2): clean generated manifest from previous build so we dont use the wrong one ([@endiliey](https://github.com/endiliey))\\n - [#2033](https://github.com/facebook/docusaurus/pull/2033) refactor(v2): move unused generated files out from build folder ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-types`, `docusaurus`\\n - [#2043](https://github.com/facebook/docusaurus/pull/2043) refactor(v2): stronger typing for route gen ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-ideal-image`, `docusaurus-types`, `docusaurus`\\n - [#2044](https://github.com/facebook/docusaurus/pull/2044) chore(v2): bump deps ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-init`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#2029](https://github.com/facebook/docusaurus/pull/2029) chore(v2): bump deps and remove unused deps ([@endiliey](https://github.com/endiliey))\\n\\n## :running: Performance\\n\\n- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`\\n - [#2070](https://github.com/facebook/docusaurus/pull/2070) perf(v2): more performant gtag and analytics plugin ([@endiliey](https://github.com/endiliey))\\n- `docusaurus`\\n - [#2046](https://github.com/facebook/docusaurus/pull/2046) perf(v2): use webpack future version of asset emitting logic to free memory ([@endiliey](https://github.com/endiliey))\\n - [#2039](https://github.com/facebook/docusaurus/pull/2039) perf(v2): replace unnecessary json stringify(string) with inline string ([@endiliey](https://github.com/endiliey))\\n - [#2035](https://github.com/facebook/docusaurus/pull/2035) perf(v2): use @babel/runtime plugin to reduce codesize ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-plugin-content-docs`\\n - [#2054](https://github.com/facebook/docusaurus/pull/2054) perf(v2): unblock metadata processing when possible ([@endiliey](https://github.com/endiliey))\\n\\n## Committers: 5\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Binary Logic ([@binarylogic](https://github.com/binarylogic))\\n- Dongwoo Gim ([@gimdongwoo](https://github.com/gimdongwoo))\\n- Endi ([@endiliey](https://github.com/endiliey))\\n- Wei Gao ([@wgao19](https://github.com/wgao19))"},{"id":"/2.0.0-alpha.36","metadata":{"permalink":"/changelog/2.0.0-alpha.36","source":"@site/changelog/source/2.0.0-alpha.36.md","title":"2.0.0-alpha.36","description":"Breaking Change","date":"2019-11-22T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Endi","alias":"endiliey","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2019-11-22T20:00","authors":["endiliey","lex111","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.37","permalink":"/changelog/2.0.0-alpha.37"},"nextItem":{"title":"2.0.0-alpha.35","permalink":"/changelog/2.0.0-alpha.35"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-init`, `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`\\n - [#1989](https://github.com/facebook/docusaurus/pull/1989) misc(v2): change blog front matter to snake_case ([@yangshun](https://github.com/yangshun))\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`\\n - [#2012](https://github.com/facebook/docusaurus/pull/2012) feat(v2): allow hiding docs table of contents ([@yangshun](https://github.com/yangshun))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus`\\n - [#2007](https://github.com/facebook/docusaurus/pull/2007) feat(v2): only create one css file to avoid code-split css loading problem ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-theme-classic`\\n - [#2005](https://github.com/facebook/docusaurus/pull/2005) fix(v2): adjust first-level heading offset ([@lex111](https://github.com/lex111))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-classic`\\n - [#2013](https://github.com/facebook/docusaurus/pull/2013) refactor(v2): split out dark mode toggle so it is easily swizzle-able ([@endiliey](https://github.com/endiliey))\\n - [#2017](https://github.com/facebook/docusaurus/pull/2017) feat(v2): style right sidebar scrollbar when overflow ([@endiliey](https://github.com/endiliey))\\n - [#2003](https://github.com/facebook/docusaurus/pull/2003) refactor(v2): improve semantic markup of blog ([@lex111](https://github.com/lex111))\\n\\n## :house: Internal\\n\\n- `docusaurus`\\n - [#2024](https://github.com/facebook/docusaurus/pull/2024) test(v2): babel exclude transpilation logic to prevent regression ([@endiliey](https://github.com/endiliey))\\n - [#2014](https://github.com/facebook/docusaurus/pull/2014) feat(v2): add meta generator docusaurus ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-mdx-loader`, `docusaurus-plugin-ideal-image`\\n - [#2015](https://github.com/facebook/docusaurus/pull/2015) chore(v2): bump & remove unused deps ([@endiliey](https://github.com/endiliey))\\n- Other\\n - [#2009](https://github.com/facebook/docusaurus/pull/2009) misc(v2): branding update ([@yangshun](https://github.com/yangshun))\\n\\n## :memo: Documentation\\n\\n- [#2010](https://github.com/facebook/docusaurus/pull/2010) docs(v2): misc updates ([@yangshun](https://github.com/yangshun))\\n\\n## Committers: 3\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Endi ([@endiliey](https://github.com/endiliey))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))"},{"id":"/2.0.0-alpha.35","metadata":{"permalink":"/changelog/2.0.0-alpha.35","source":"@site/changelog/source/2.0.0-alpha.35.md","title":"2.0.0-alpha.35","description":"New Feature","date":"2019-11-17T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Endi","alias":"endiliey","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null},{"name":"Eric Carboni","alias":"ericcarboni","url":"https://github.com/ericcarboni","imageURL":"https://github.com/ericcarboni.png","key":"ericcarboni","page":null},{"name":"Jamie Davenport","alias":"jamiedavenport","url":"https://github.com/jamiedavenport","imageURL":"https://github.com/jamiedavenport.png","key":"jamiedavenport","page":null},{"name":"Nick McCormick","alias":"kenning","url":"https://github.com/kenning","imageURL":"https://github.com/kenning.png","key":"kenning","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Vincent van der Walt","alias":"vinnytheviking","url":"https://github.com/vinnytheviking","imageURL":"https://github.com/vinnytheviking.png","key":"vinnytheviking","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2019-11-17T20:00","authors":["endiliey","ericcarboni","jamiedavenport","kenning","lex111","vinnytheviking"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.36","permalink":"/changelog/2.0.0-alpha.36"},"nextItem":{"title":"2.0.0-alpha.34","permalink":"/changelog/2.0.0-alpha.34"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#1965](https://github.com/facebook/docusaurus/pull/1965) feat(v2): add ability specify link in footer logo ([@lex111](https://github.com/lex111))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-mdx-loader`, `docusaurus-theme-classic`\\n - [#1992](https://github.com/facebook/docusaurus/pull/1992) fix(v2): static phrasing content should be rendered correctly in TOC ([@endiliey](https://github.com/endiliey))\\n- `docusaurus-theme-classic`\\n - [#1999](https://github.com/facebook/docusaurus/pull/1999) fix(v2): remove hashbang when click on category ([@lex111](https://github.com/lex111))\\n - [#1962](https://github.com/facebook/docusaurus/pull/1962) fix(v2): make not clickable post title on post item page ([@lex111](https://github.com/lex111))\\n - [#1980](https://github.com/facebook/docusaurus/pull/1980) fix(v2): remove invalid label attribute of footer links ([@lex111](https://github.com/lex111))\\n - [#1978](https://github.com/facebook/docusaurus/pull/1978) fix(v2): use regular div instead of main tag for wrapper layout page ([@lex111](https://github.com/lex111))\\n - [#1975](https://github.com/facebook/docusaurus/pull/1975) fix(v2): move header inside article tag in doc page ([@lex111](https://github.com/lex111))\\n - [#1974](https://github.com/facebook/docusaurus/pull/1974) fix(v2): remove invalid attributes of nav links ([@lex111](https://github.com/lex111))\\n - [#1963](https://github.com/facebook/docusaurus/pull/1963) fix(v2): remove empty containers when no data in blog pages ([@lex111](https://github.com/lex111))\\n - [#1966](https://github.com/facebook/docusaurus/pull/1966) fix(v2): remove duplicate meta tags ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`\\n - [#1994](https://github.com/facebook/docusaurus/pull/1994) fix(v2): throw error if first level item of a sidebar is not category ([@endiliey](https://github.com/endiliey))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-theme-search-algolia`\\n - [#2001](https://github.com/facebook/docusaurus/pull/2001) fix(v2): improve UI of search ([@lex111](https://github.com/lex111))\\n- `docusaurus-theme-classic`\\n - [#1991](https://github.com/facebook/docusaurus/pull/1991) fix(v2): remove accessible anchors via keyboard ([@lex111](https://github.com/lex111))\\n - [#1987](https://github.com/facebook/docusaurus/pull/1987) refactor(v2): replace h1 tag with h2 in blog list pages ([@lex111](https://github.com/lex111))\\n - [#1981](https://github.com/facebook/docusaurus/pull/1981) fix(v2): use tag time for showing last update of doc item ([@lex111](https://github.com/lex111))\\n - [#1977](https://github.com/facebook/docusaurus/pull/1977) feat(v2): add aria-label to read more links for a11y ([@lex111](https://github.com/lex111))\\n - [#1964](https://github.com/facebook/docusaurus/pull/1964) fix(v2): use tag time for showing post item date ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-docs`\\n - [#1994](https://github.com/facebook/docusaurus/pull/1994) fix(v2): throw error if first level item of a sidebar is not category ([@endiliey](https://github.com/endiliey))\\n- Other\\n - [#1986](https://github.com/facebook/docusaurus/pull/1986) fix(v2): remove obsolete iframe attributes ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`\\n - [#1982](https://github.com/facebook/docusaurus/pull/1982) feat(v2): add FB link to footer ([@lex111](https://github.com/lex111))\\n- `docusaurus-plugin-content-blog`\\n - [#1968](https://github.com/facebook/docusaurus/pull/1968) refactor(v2): simplify blog truncate function ([@endiliey](https://github.com/endiliey))\\n\\n## :memo: Documentation\\n\\n- Other\\n - [#1988](https://github.com/facebook/docusaurus/pull/1988) docs(v2): fix syntax highlighting for YML code blocks ([@lex111](https://github.com/lex111))\\n - [#1976](https://github.com/facebook/docusaurus/pull/1976) docs(v2): Add section to blog document about feed location ([@vinnytheviking](https://github.com/vinnytheviking))\\n - [#1970](https://github.com/facebook/docusaurus/pull/1970) docs(v2): update configureWebpack utility functions ([@jamiedavenport](https://github.com/jamiedavenport))\\n- `docusaurus-1.x`\\n - [#1961](https://github.com/facebook/docusaurus/pull/1961) docs(v1): remove exclusive language ([@ericcarboni](https://github.com/ericcarboni))\\n\\n## :house: Internal\\n\\n- Other\\n - [#2002](https://github.com/facebook/docusaurus/pull/2002) fix(v2): fix browser window menu icon on smaller screen ([@lex111](https://github.com/lex111))\\n - [#1986](https://github.com/facebook/docusaurus/pull/1986) fix(v2): remove obsolete iframe attributes ([@lex111](https://github.com/lex111))\\n- `docusaurus-init`\\n - [#1982](https://github.com/facebook/docusaurus/pull/1982) feat(v2): add FB link to footer ([@lex111](https://github.com/lex111))\\n- `docusaurus-1.x`, `docusaurus-init-1.x`, `docusaurus-init`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-types`, `docusaurus`\\n - [#1985](https://github.com/facebook/docusaurus/pull/1985) chore(v2): update dependencies ([@endiliey](https://github.com/endiliey))\\n\\n## :running: Performance\\n\\n- `docusaurus`\\n - [#1979](https://github.com/facebook/docusaurus/pull/1979) perf(v2): reduce main bundle size by using es5 if possible ([@endiliey](https://github.com/endiliey))\\n\\n## Committers: 6\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Endi ([@endiliey](https://github.com/endiliey))\\n- Eric Carboni ([@ericcarboni](https://github.com/ericcarboni))\\n- Jamie Davenport ([@jamiedavenport](https://github.com/jamiedavenport))\\n- Nick McCormick ([@kenning](https://github.com/kenning))\\n- Vincent van der Walt ([@vinnytheviking](https://github.com/vinnytheviking))"},{"id":"/2.0.0-alpha.34","metadata":{"permalink":"/changelog/2.0.0-alpha.34","source":"@site/changelog/source/2.0.0-alpha.34.md","title":"2.0.0-alpha.34","description":"New Feature","date":"2019-11-11T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Endi","alias":"endiliey","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null},{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null}],"frontMatter":{"mdx":{"format":"md"},"date":"2019-11-11T20:00","authors":["endiliey","lex111","yangshun"]},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.35","permalink":"/changelog/2.0.0-alpha.35"},"nextItem":{"title":"2.0.0-alpha.33","permalink":"/changelog/2.0.0-alpha.33"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n## :rocket: New Feature\\n\\n- `docusaurus-theme-classic`\\n - [#1956](https://github.com/facebook/docusaurus/pull/1956) feat(v2): add ability hide dark mode toggle ([@lex111](https://github.com/lex111))\\n\\n## :boom: Breaking Change\\n\\n- `docusaurus-plugin-content-docs`\\n - [#1958](https://github.com/facebook/docusaurus/pull/1958) breaking(v2): editUrl should point to website instead of docsDir ([@endiliey](https://github.com/endiliey))\\n\\n## :bug: Bug Fix\\n\\n- `docusaurus-theme-classic`\\n - [#1959](https://github.com/facebook/docusaurus/pull/1959) fix(v2): useTOC hooks should not be called in each nested children ([@endiliey](https://github.com/endiliey))\\n\\n## :nail_care: Polish\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus`\\n - [#1957](https://github.com/facebook/docusaurus/pull/1957) refactor(v2): avoid synchronous/ blocking operation when possible ([@endiliey](https://github.com/endiliey))\\n\\n## :memo: Documentation\\n\\n- [#1953](https://github.com/facebook/docusaurus/pull/1953) fix(v2): update Infima website URL ([@yangshun](https://github.com/yangshun))\\n\\n## :house: Internal\\n\\n- `docusaurus-1.x`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`\\n - [#1955](https://github.com/facebook/docusaurus/pull/1955) chore: bump dev dependencies ([@endiliey](https://github.com/endiliey))\\n- Other\\n - [#1952](https://github.com/facebook/docusaurus/pull/1952) chore(v2): add lerna-changelog ([@endiliey](https://github.com/endiliey))\\n\\n## :running: Performance\\n\\n- `docusaurus-plugin-content-docs`, `docusaurus-utils`, `docusaurus`\\n - [#1951](https://github.com/facebook/docusaurus/pull/1951) perf(v2): skip runtime fileHash cache in prod & get timestamp asynchronously ([@endiliey](https://github.com/endiliey))\\n - [#1950](https://github.com/facebook/docusaurus/pull/1950) perf(v2): more efficient hot reload & consistent filegen ([@endiliey](https://github.com/endiliey))\\n\\n## Committers: 3\\n\\n- Alexey Pyltsyn ([@lex111](https://github.com/lex111))\\n- Endi ([@endiliey](https://github.com/endiliey))\\n- Yangshun Tay ([@yangshun](https://github.com/yangshun))"},{"id":"/2.0.0-alpha.33","metadata":{"permalink":"/changelog/2.0.0-alpha.33","source":"@site/changelog/source/2.0.0-alpha.33.md","title":"2.0.0-alpha.33","description":"Features","date":"2019-11-08T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-11-08T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.34","permalink":"/changelog/2.0.0-alpha.34"},"nextItem":{"title":"2.0.0-alpha.32","permalink":"/changelog/2.0.0-alpha.32"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n## Features\\n\\n- Table of contents is now highlighted depending on current active headings. (thanks to awesome @SantiagoGdaR) [#1896](https://github.com/facebook/docusaurus/pull/1896)\\n- Official blog plugin can now generate feed for blog posts. (thanks to awesome @moozzyk) [#1916](https://github.com/facebook/docusaurus/pull/1916)\\n- **BREAKING** `prismTheme` is renamed to `theme` as part new `prism` object in `themeConfig` field in your `docusaurus.config.js`. Eg:\\n ```diff\\n themeConfig: {\\n - prismTheme: require(\'prism-react-renderer/themes/dracula\'),\\n + prism: {\\n + theme: require(\'prism-react-renderer/themes/dracula\'),\\n + },\\n },\\n ```\\n- Added new `prism` option `defaultLanguage` that is used if the language is not specified in code blocks. [#1910](https://github.com/facebook/docusaurus/pull/1910)\\n\\n## Fixes\\n\\n- Fix babel/env not picking the correct browserslist configuration during development. When running `docusaurus start`, `process.env.NODE_ENV` is now consistently set to `development`.\\n- Ensure routes config generation to be more consistent in ordering. Nested routes should be placed last in routes.js. This will allow user to create `src/pages/docs.js` to create custom docs page for `/docs` or even `src/pages/docs/super.js` to create page for `/docs/super/`;\\n- Fix watcher does not trigger reload on windows.\\n- Fix build compilation error if exists only one code tab.\\n- Add minor padding to docs container so that hash-link won\'t be cut off.\\n\\n## Others\\n\\n- Misc dependency upgrades.\\n- Stability improvement (more tests) & refactoring on docs plugin to prevent regression."},{"id":"/2.0.0-alpha.32","metadata":{"permalink":"/changelog/2.0.0-alpha.32","source":"@site/changelog/source/2.0.0-alpha.32.md","title":"2.0.0-alpha.32","description":"Features","date":"2019-11-04T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-11-04T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.33","permalink":"/changelog/2.0.0-alpha.33"},"nextItem":{"title":"2.0.0-alpha.31","permalink":"/changelog/2.0.0-alpha.31"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n## Features\\n\\n- Add `<Redirect>` component for client side redirect. Example Usage:\\n\\n```js\\nimport React from \'react\';\\nimport {Redirect} from \'@docusaurus/router\';\\n\\nfunction Home() {\\n return <Redirect to=\\"/docs/test\\" />;\\n}\\n```\\n\\n- Allow user to add custom HTML to footer items. [#1905](https://github.com/facebook/docusaurus/pull/1905)\\n- Added code block line highlighting feature (thanks @lex111)! If you have previously swizzled the `CodeBlock` theme component, it is recommended to update your source code to have this feature. ([#1860](https://github.com/facebook/Docusaurus/issues/1860))\\n\\n## Bug Fixes\\n\\n- Fix `@theme/Tabs` component to be able to create tabs with only one item.\\n- Fix MDX `@theme/Heading` component. If there is no id, it should not create anchor link.\\n- Fixed a bug in which if `themeConfig.algolia` is not defined, the custom searchbar won\'t appear. If you\'ve swizzled Algolia `SearchBar` component before, please update your source code otherwise CSS might break. See [#1909](https://github.com/facebook/docusaurus/pull/1909/files) for reference.\\n\\n```js\\n- <Fragment>\\n+ <div className=\\"navbar__search\\" key=\\"search-box\\">\\n```\\n\\n- Slightly adjust search icon position to be more aligned on small width device. ([#1893](https://github.com/facebook/Docusaurus/issues/1893))\\n- Fix algolia styling bug, previously search suggestion result is sometimes hidden. ([#1915](https://github.com/facebook/Docusaurus/issues/1915))\\n- Changed the way we read the `USE_SSH` env variable during deployment to be the same as in v1.\\n- Fix accessing `docs/` or `/docs/xxxx` that does not match any existing doc page should return 404 (Not found) page, not blank page. ([#1903](https://github.com/facebook/Docusaurus/issues/1903))\\n- Prioritize `@docusaurus/core` dependencies/ node_modules over user\'s node_modules. This fix a bug whereby if user has core-js@3 on its own node_modules but docusaurus depends on core-js@2, we previously encounter `Module not found: core-js/modules/xxxx` (because core-js@3 doesn\'t have that).\\n- Fix a bug where docs plugin add `/docs` route even if docs folder is empty. We also improved docs plugin test coverage to 100% for stability before working on docs versioning. ([#1912](https://github.com/facebook/Docusaurus/issues/1912))\\n\\n## Performance Improvement\\n\\n- Reduce memory usage consumption. ([#1900](https://github.com/facebook/Docusaurus/issues/1900))\\n- Significantly reduce main bundle size and initial HTML payload on production build. Generated files from webpack is also shorter in name. ([#1898](https://github.com/facebook/Docusaurus/issues/1898))\\n- Simplify blog metadata. Previously, accessing `/blog/post-xxx` will request for next and prev blog post metadata too aside from target post metadata. We should only request target post metadata. ([#1908](https://github.com/facebook/Docusaurus/issues/1908))\\n\\n## Others\\n\\n- Convert sitemap plugin to TypeScript. ([#1894](https://github.com/facebook/Docusaurus/issues/1894))\\n- Refactor dark mode toggle into a hook. ([#1899](https://github.com/facebook/Docusaurus/issues/1899))"},{"id":"/2.0.0-alpha.31","metadata":{"permalink":"/changelog/2.0.0-alpha.31","source":"@site/changelog/source/2.0.0-alpha.31.md","title":"2.0.0-alpha.31","description":"- Footer is now sticky/ pinned to the bottom of the viewport in desktop browsers.","date":"2019-10-26T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-10-26T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.32","permalink":"/changelog/2.0.0-alpha.32"},"nextItem":{"title":"2.0.0-alpha.30","permalink":"/changelog/2.0.0-alpha.30"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Footer is now sticky/ pinned to the bottom of the viewport in desktop browsers.\\n- Footer is now also displayed in docs page for consistency.\\n- Remove empty doc sidebar container if sidebar for a particular doc page does not exist. Otherwise, it will cause an additional empty space.\\n- Default PostCSS loader now only polyfills stage 3+ features (previously it was stage 2) like Create React App. Stage 2 CSS is considered relatively unstable and subject to change while Stage 3 features will likely become a standard.\\n- Fix search bar focus bug. When you put the focus on search input, previously the focus will remain although we have clicked to other area outside of the search input.\\n- New themeConfig option `sidebarCollapsible`. It is on by default. If explicitly set to `false`, all doc items in sidebar is expanded. Otherwise, it will still be a collapsible sidebar.\\n- Disable adding hashes to the generated class names of CSS modules in dev mode. Generating unique identifiers takes some time, which can be saved since including paths to files in class names is enough to avoid collisions.\\n- Fix showing sidebar category with empty items.\\n- Update infima from 0.2.0-alpha.2 to 0.2.0-alpha.3\\n - Fix pagination nav and right sidebar color contrast ratio\\n - Fix sidebar arrow color in dark mode\\n - Fix footer mobile issue\\n - Increase sidebar width\\n - etc"},{"id":"/2.0.0-alpha.30","metadata":{"permalink":"/changelog/2.0.0-alpha.30","source":"@site/changelog/source/2.0.0-alpha.30.md","title":"2.0.0-alpha.30","description":"- Fix babel transpilation include/exclude logic to be more efficient. This also fix a very weird bug TypeError: Cannot assign to read only property \'exports\' of object \'#\'.(#1868)","date":"2019-10-22T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-10-22T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.31","permalink":"/changelog/2.0.0-alpha.31"},"nextItem":{"title":"2.0.0-alpha.29","permalink":"/changelog/2.0.0-alpha.29"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Fix babel transpilation include/exclude logic to be more efficient. This also fix a very weird bug `TypeError: Cannot assign to read only property \'exports\' of object \'#<Object>\'`.([#1868](https://github.com/facebook/docusaurus/pull/1868))\\n\\nIf you are still encountering the error. Please check whether you use `module.exports` for your `.js` file instead of doing `export` (mixing CJS and ES). See https://github.com/webpack/webpack/issues/4039#issuecomment-477779322 and https://github.com/webpack/webpack/issues/4039#issuecomment-273804003 for more context."},{"id":"/2.0.0-alpha.29","metadata":{"permalink":"/changelog/2.0.0-alpha.29","source":"@site/changelog/source/2.0.0-alpha.29.md","title":"2.0.0-alpha.29","description":"HOTFIX for 2.0.0-alpha.28.","date":"2019-10-21T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-10-21T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.30","permalink":"/changelog/2.0.0-alpha.30"},"nextItem":{"title":"2.0.0-alpha.28","permalink":"/changelog/2.0.0-alpha.28"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n**HOTFIX for 2.0.0-alpha.28**.\\n\\n- Fix missing `core-js` dependencies on `@docusaurus/core`.\\n- Fix wrong `@babel/env` preset configuration that causes build compilation error.\\n- New UI for webpack compilation progress bar."},{"id":"/2.0.0-alpha.28","metadata":{"permalink":"/changelog/2.0.0-alpha.28","source":"@site/changelog/source/2.0.0-alpha.28.md","title":"2.0.0-alpha.28","description":"- Further reduce memory usage to avoid heap memory allocation failure.","date":"2019-10-21T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-10-21T19:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.29","permalink":"/changelog/2.0.0-alpha.29"},"nextItem":{"title":"2.0.0-alpha.27","permalink":"/changelog/2.0.0-alpha.27"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Further reduce memory usage to avoid heap memory allocation failure.\\n- Fix `keywords` frontmatter for SEO not working properly.\\n- Fix `swizzle` command not passing context properly to theme packages.\\n- Add `extendCli` api for plugins. This will allow plugin to further extend Docusaurus CLI.\\n- Fix `swizzle` command not being able to swizzle single js file.\\n- Fix logo URL in footer to be appended with baseUrl automatically.\\n- Add the option `--no-open` for `start` command.\\n- Set `@babel/env` useBuiltins to `usage`. This will automatically use browserlist and import polyfills required.\\n- Modified TerserWebpackPlugin `terserOptions` for better cross-browser compatibility.\\n- **BREAKING** `withBaseUrl` is renamed to `useBaseUrl` because its a React Hooks. Make sure you import/rename it correctly. Eg: `import useBaseUrl from \'@docusaurus/useBaseUrl`;\\n- Fix potential security vulnerability because we\'re exposing the directory structure of the host machine.\\n- Upgrade dependencies."},{"id":"/2.0.0-alpha.27","metadata":{"permalink":"/changelog/2.0.0-alpha.27","source":"@site/changelog/source/2.0.0-alpha.27.md","title":"2.0.0-alpha.27","description":"- Add @theme/Tabs which can be used to implement multi-language code tabs.","date":"2019-10-14T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-10-14T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.28","permalink":"/changelog/2.0.0-alpha.28"},"nextItem":{"title":"2.0.0-alpha.26","permalink":"/changelog/2.0.0-alpha.26"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Add `@theme/Tabs` which can be used to implement multi-language code tabs.\\n- Implement `custom_edit_url` and `hide_title` markdown header for docusaurus v1 feature parity.\\n- Reduce memory usage and slightly faster production build.\\n- Misc dependency upgrades."},{"id":"/2.0.0-alpha.26","metadata":{"permalink":"/changelog/2.0.0-alpha.26","source":"@site/changelog/source/2.0.0-alpha.26.md","title":"2.0.0-alpha.26","description":"- Docs, pages plugin is rewritten in TypeScript","date":"2019-10-12T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-10-12T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.27","permalink":"/changelog/2.0.0-alpha.27"},"nextItem":{"title":"2.0.0-alpha.25","permalink":"/changelog/2.0.0-alpha.25"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Docs, pages plugin is rewritten in TypeScript\\n- Docs improvements and tweaks\\n - Improved metadata which results in smaller bundle size.\\n - Docs sidebar can now be more than one level deep, theoretically up to infinity\\n - Collapsible docs sidebar!\\n - Make doc page title larger\\n - Add `editUrl` option (URL for editing) to docs plugin. If this field is set, there will be an \\"Edit this page\\" link for each doc page. Example: \'https://github.com/facebook/docusaurus/edit/master/docs\'\\n - Add `showLastUpdateTime` and `showLastUpdateAuthor` options to docs plugin to further achieve v1 parity of showing last update data for a particular doc\\n- Slight tweaks to the Blog components - blog title is larger now\\n- Code Blocks\\n - Change default theme from Night Owl to Palenight\\n - Slight tweaks to playground/preview components\\n- Add `scripts` and `stylesheets` field to `docusaurus.config.js`\\n- More documentation..."},{"id":"/2.0.0-alpha.25","metadata":{"permalink":"/changelog/2.0.0-alpha.25","source":"@site/changelog/source/2.0.0-alpha.25.md","title":"2.0.0-alpha.25","description":"- Blog plugin is rewritten in TypeScript and can now support CJK","date":"2019-10-01T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-10-01T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.26","permalink":"/changelog/2.0.0-alpha.26"},"nextItem":{"title":"2.0.0-alpha.24","permalink":"/changelog/2.0.0-alpha.24"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Blog plugin is rewritten in TypeScript and can now support CJK\\n- Upgrade key direct dependencies such as webpack, mdx and babel to latest\\n- Do not escape html and body attributes\\n- For devices with very small viewport width, the searchbar is replaced with a search icon. On tap of the search icon the searchbar is expanded and the text beside the logo is hidden and remains hidden while the search bar is expanded.\\n- Add `date` frontMatter support for blog plugin\\n- Add `truncateMarker` option to blog plugin, support string or regex.\\n- Webpack `optimization.removeAvailableModules` is now disabled for performance gain. See https://github.com/webpack/webpack/releases/tag/v4.38.0 for more context."},{"id":"/2.0.0-alpha.24","metadata":{"permalink":"/changelog/2.0.0-alpha.24","source":"@site/changelog/source/2.0.0-alpha.24.md","title":"2.0.0-alpha.24","description":"- Remove unused metadata for pages. This minimize number of http request & smaller bundle size.","date":"2019-07-24T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-07-24T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.25","permalink":"/changelog/2.0.0-alpha.25"},"nextItem":{"title":"2.0.0-alpha.23","permalink":"/changelog/2.0.0-alpha.23"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Remove unused metadata for pages. This minimize number of http request & smaller bundle size.\\n- Upgrade dependencies of css-loader from 2.x to 3.x. CSS modules localIdentName hash now only use the last 4 characters instead of 8.\\n- Fix broken markdown linking replacement for mdx files\\n- Fix potential security vulnerability because we\'re exposing the directory structure of the host machine. Instead of absolute path, we use relative path from site directory. Resulting in shorter webpack chunk naming and smaller bundle size.\\n- Use contenthash instead of chunkhash for better long term caching\\n- Allow user to customize generated heading from MDX. Swizzle `@theme/Heading`"},{"id":"/2.0.0-alpha.23","metadata":{"permalink":"/changelog/2.0.0-alpha.23","source":"@site/changelog/source/2.0.0-alpha.23.md","title":"2.0.0-alpha.23","description":"- Fix docusaurus route config generation for certain edge case","date":"2019-07-21T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-07-21T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.24","permalink":"/changelog/2.0.0-alpha.24"},"nextItem":{"title":"2.0.0-alpha.22","permalink":"/changelog/2.0.0-alpha.22"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Fix docusaurus route config generation for certain edge case"},{"id":"/2.0.0-alpha.22","metadata":{"permalink":"/changelog/2.0.0-alpha.22","source":"@site/changelog/source/2.0.0-alpha.22.md","title":"2.0.0-alpha.22","description":"- Add missing dependencies on @docusaurus/preset-classic","date":"2019-07-20T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-07-20T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.23","permalink":"/changelog/2.0.0-alpha.23"},"nextItem":{"title":"2.0.0-alpha.21","permalink":"/changelog/2.0.0-alpha.21"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Add missing dependencies on `@docusaurus/preset-classic`\\n- New plugin `@docusaurus/plugin-ideal-image` to generate an almost ideal image (responsive, lazy-loading, and low quality placeholder)\\n- Better Twitter/discord image preview. Previously the size is too zoomed\\n- Allow prism syntax highlighting theme customization. Refer to https://docusaurus.io/docs/markdown-features#syntax-highlighting\\n- CSS is now autoprefixed using postcss\\n- Faster, lighter webpack bundle size\\n- `@docusaurus/theme-live-codeblock` is now much smaller in size and no longer only load on viewport\\n- Blog markdown files now support using the id field to specify the path"},{"id":"/2.0.0-alpha.21","metadata":{"permalink":"/changelog/2.0.0-alpha.21","source":"@site/changelog/source/2.0.0-alpha.21.md","title":"2.0.0-alpha.21","description":"- Fix babel-loader not transpiling docusaurus package","date":"2019-07-14T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-07-14T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.22","permalink":"/changelog/2.0.0-alpha.22"},"nextItem":{"title":"2.0.0-alpha.20","permalink":"/changelog/2.0.0-alpha.20"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Fix babel-loader not transpiling docusaurus package"},{"id":"/2.0.0-alpha.20","metadata":{"permalink":"/changelog/2.0.0-alpha.20","source":"@site/changelog/source/2.0.0-alpha.20.md","title":"2.0.0-alpha.20","description":"- Add copy codeblock button","date":"2019-07-14T19:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-07-14T19:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.21","permalink":"/changelog/2.0.0-alpha.21"},"nextItem":{"title":"2.0.0-alpha.19","permalink":"/changelog/2.0.0-alpha.19"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Add copy codeblock button\\n- Add Google analytics and Google gtag plugins.\\n- Move source components to `/src`. Please create a `website/src` directory and move your `/pages` and `/theme` code into it. This is to make it easier to integrate your website with external build/static analysis tooling (you can now just pass in `src/**/*.js` as the path to process).\\n- Adde more documentation thanks to @wgao19.\\n- Deprecate the current docs plugin. The docs plugin as of 2.0.0-alpha.19 is heavily based on V1 specifications and we intend to create a better one that fixes some of the inconsistencies in V1. If you have swizzled any doc components, you will have to update their names. You are highly encourages to not swizzle the legacy doc components until we have completed the new docs plugin.\\n- Separate v2 init command to new package @docusaurus/init\\n- Render 404.html page\\n- Improve SEO\\n- Clicking on the logo in the mobile sliding navigation will now bring you to the homepage.\\n- Performance\\n - Disable webpack output pathinfo. Webpack has the ability to generate path info in the output bundle. However, this puts garbage collection pressure on projects that bundle thousands of modules. Not very useful for our case\\n - Drop cache-loader in CI and test environment because it has an initial overhead. We always start from scratch in vm instance like CI so cache-loader is useless\\n - Better splitchunks and babel default webpack config"},{"id":"/2.0.0-alpha.19","metadata":{"permalink":"/changelog/2.0.0-alpha.19","source":"@site/changelog/source/2.0.0-alpha.19.md","title":"2.0.0-alpha.19","description":"- Add a sensible default for browserslist config.","date":"2019-06-07T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-06-07T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.20","permalink":"/changelog/2.0.0-alpha.20"},"nextItem":{"title":"V2 Changelog","permalink":"/changelog/V2 Changelog"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n- Add a sensible default for browserslist config.\\n- UI\\n - Add sun and moon emoji to the dark mode toggle.\\n - Mobile responsive menu.\\n - Right table of contents for docs is now sticky.\\n- Plugins\\n - Change plugin definitions from classes to functions. Refer to the new plugin docs.\\n - Implement Clients module API.\\n - Change format within `docusaurus.config.js` to be like presets.\\n- Deps\\n - Infima CSS is now locked down to specific versions and not relying upon the CDN which reads from trunk.\\n - Update dependencies to latest\\n- Customize/ Override infima CSS variables by passing options into the classic preset.\\n\\n```\\npresets: [\\n [\\n \'@docusaurus/preset-classic\',\\n {\\n theme: {\\n customCss: require.resolve(\'./css/custom.css\'),\\n },\\n ...\\n },\\n ],\\n],\\n```\\n\\n- Allow passing remark and rehype plugins to mdx-loader for docs and blog plugin\\n- Move themes component of docs and blog to be part of theme-classic\\n- Use composition style for prism syntax highlighting instead of doing it via rehype plugin\\n- Pass MDXProvider to docs and blog. To change the provided MDX components, run `docusaurus swizzle @docusaurus/theme-classic MDXComponents`\\n- Add @docusaurus/theme-livecodeblock plugin\\n- Better run-time code generation & webpack splitchunks optimization\\n- Minify css for production build\\n- Fix weird scrolling problem when navigating to a route with a `hash` location"},{"id":"/V2 Changelog","metadata":{"permalink":"/changelog/V2 Changelog","source":"@site/changelog/source/V2 Changelog.md","title":"V2 Changelog","description":"siteConfig.js changes","date":"2019-04-10T20:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"mdx":{"format":"md"},"date":"2019-04-10T20:00"},"unlisted":false,"prevItem":{"title":"2.0.0-alpha.19","permalink":"/changelog/2.0.0-alpha.19"},"listPageLink":"/changelog/page/5"},"content":"<!-- truncate -->\\n\\n### `siteConfig.js` changes\\n\\n- `siteConfig.js` renamed to `docusaurus.config.js`.\\n- Remove the following config options:\\n - `docsUrl`. Use the plugin option on `docusaurus-plugin-content-docs` instead.\\n - `customDocsPath`. Use the plugin option on `docusaurus-plugin-content-docs` instead.\\n - `sidebars.json` now has to be explicitly loaded by users and passed into the plugin option on `docusaurus-plugin-content-docs`.\\n - `headerLinks` doc, page, blog is deprecated and has been to moved into `themeConfig` under the name `navbar`. The syntax is now:\\n\\n```js\\nthemeConfig: {\\n navbar: {\\n title: \'Docusaurus\',\\n logo: {\\n alt: \'Docusaurus Logo\',\\n src: \'img/docusaurus.svg\',\\n },\\n links: [\\n {to: \'docs/introduction\', label: \'Docs\', position: \'left\'},\\n {to: \'blog\', label: \'Blog\', position: \'left\'},\\n {to: \'feedback\', label: \'Feedback\', position: \'left\'},\\n {\\n href: \'https://github.com/facebook/docusaurus\',\\n label: \'GitHub\',\\n position: \'right\',\\n },\\n ],\\n },\\n}\\n```\\n\\n### Migration Guide\\n\\n_Work in Progress_\\n\\n### Presets\\n\\n- Add presets for plugins that follow the [Babel preset convention](https://babeljs.io/docs/en/presets)."}],"blogListPaginated":[{"items":["/3.5.2","/3.5.1","/3.5.0","/3.4.0","/3.3.2","/3.3.1","/3.3.0","/3.2.1","/3.2.0","/3.1.1","/3.1.0","/3.0.1","/3.0.0","/2.4.3","/2.4.2","/2.4.1","/2.4.0","/2.3.1","/2.3.0","/2.2.0"],"metadata":{"permalink":"/changelog","page":1,"postsPerPage":20,"totalPages":5,"totalCount":100,"nextPage":"/changelog/page/2","blogDescription":"Keep yourself up-to-date about new features in every release","blogTitle":"Docusaurus changelog"}},{"items":["/2.1.0","/2.0.1","/2.0.0","/2.0.0-rc.1","/2.0.0-beta.22","/2.0.0-beta.21","/2.0.0-beta.20","/2.0.0-beta.19","/2.0.0-beta.18","/2.0.0-beta.17","/2.0.0-beta.16","/2.0.0-beta.15","/2.0.0-beta.14","/2.0.0-beta.13","/2.0.0-beta.12","/2.0.0-beta.11","/2.0.0-beta.10","/2.0.0-beta.9","/2.0.0-beta.8","/2.0.0-beta.7"],"metadata":{"permalink":"/changelog/page/2","page":2,"postsPerPage":20,"totalPages":5,"totalCount":100,"previousPage":"/changelog","nextPage":"/changelog/page/3","blogDescription":"Keep yourself up-to-date about new features in every release","blogTitle":"Docusaurus changelog"}},{"items":["/2.0.0-beta.6","/2.0.0-beta.5","/2.0.0-beta.4","/2.0.0-beta.3","/2.0.0-beta.2","/2.0.0-beta.1","/2.0.0-beta.0","/2.0.0-alpha.75","/2.0.0-alpha.74","/2.0.0-alpha.73","/2.0.0-alpha.72","/2.0.0-alpha.71","/2.0.0-alpha.70","/2.0.0-alpha.69","/2.0.0-alpha.68","/2.0.0-alpha.67","/2.0.0-alpha.66","/2.0.0-alpha.65","/2.0.0-alpha.64","/2.0.0-alpha.63"],"metadata":{"permalink":"/changelog/page/3","page":3,"postsPerPage":20,"totalPages":5,"totalCount":100,"previousPage":"/changelog/page/2","nextPage":"/changelog/page/4","blogDescription":"Keep yourself up-to-date about new features in every release","blogTitle":"Docusaurus changelog"}},{"items":["/2.0.0-alpha.62","/2.0.0-alpha.61","/2.0.0-alpha.60","/2.0.0-alpha.59","/2.0.0-alpha.58","/2.0.0-alpha.57","/2.0.0-alpha.56","/2.0.0-alpha.55","/2.0.0-alpha.54","/2.0.0-alpha.53","/2.0.0-alpha.51","/2.0.0-alpha.50","/2.0.0-alpha.49","/2.0.0-alpha.48","/2.0.0-alpha.44","/2.0.0-alpha.43","/2.0.0-alpha.41","/2.0.0-alpha.40","/2.0.0-alpha.39","/2.0.0-alpha.38"],"metadata":{"permalink":"/changelog/page/4","page":4,"postsPerPage":20,"totalPages":5,"totalCount":100,"previousPage":"/changelog/page/3","nextPage":"/changelog/page/5","blogDescription":"Keep yourself up-to-date about new features in every release","blogTitle":"Docusaurus changelog"}},{"items":["/2.0.0-alpha.37","/2.0.0-alpha.36","/2.0.0-alpha.35","/2.0.0-alpha.34","/2.0.0-alpha.33","/2.0.0-alpha.32","/2.0.0-alpha.31","/2.0.0-alpha.30","/2.0.0-alpha.29","/2.0.0-alpha.28","/2.0.0-alpha.27","/2.0.0-alpha.26","/2.0.0-alpha.25","/2.0.0-alpha.24","/2.0.0-alpha.23","/2.0.0-alpha.22","/2.0.0-alpha.21","/2.0.0-alpha.20","/2.0.0-alpha.19","/V2 Changelog"],"metadata":{"permalink":"/changelog/page/5","page":5,"postsPerPage":20,"totalPages":5,"totalCount":100,"previousPage":"/changelog/page/4","blogDescription":"Keep yourself up-to-date about new features in every release","blogTitle":"Docusaurus changelog"}}],"blogTags":{},"blogTagsListPath":"/changelog/tags","authorsMap":{"6543":{"name":"6543","alias":"6543","url":"https://github.com/6543","imageURL":"https://github.com/6543.png","key":"6543","page":null},"1084350607":{"name":"\u4E45\u67D3 | JiuRan","alias":"1084350607","url":"https://github.com/1084350607","imageURL":"https://github.com/1084350607.png","key":"1084350607","page":null},"cstangerup":{"name":"Christian Stangerup","alias":"cstangerup","url":"https://github.com/cstangerup","imageURL":"https://github.com/cstangerup.png","key":"cstangerup","page":null},"GatienBoquet":{"name":"Gatien Boquet","alias":"GatienBoquet","url":"https://github.com/GatienBoquet","imageURL":"https://github.com/GatienBoquet.png","key":"GatienBoquet","page":null},"josh-wong":{"name":"Josh Wong","alias":"josh-wong","url":"https://github.com/josh-wong","imageURL":"https://github.com/josh-wong.png","key":"josh-wong","page":null},"slorber":{"name":"S\xe9bastien Lorber","alias":"slorber","url":"https://github.com/slorber","imageURL":"https://github.com/slorber.png","key":"slorber","page":null},"anaclumos":{"name":"Sunghyun Cho","alias":"anaclumos","url":"https://github.com/anaclumos","imageURL":"https://github.com/anaclumos.png","key":"anaclumos","page":null},"alicelovescake":{"name":"Alice Zhao","alias":"alicelovescake","url":"https://github.com/alicelovescake","imageURL":"https://github.com/alicelovescake.png","key":"alicelovescake","page":null},"ashiq-firoz":{"name":"Ashiq Firoz","alias":"ashiq-firoz","url":"https://github.com/ashiq-firoz","imageURL":"https://github.com/ashiq-firoz.png","key":"ashiq-firoz","page":null},"Aslemammad":{"name":"Mohammad Bagher Abiyat","alias":"Aslemammad","url":"https://github.com/Aslemammad","imageURL":"https://github.com/Aslemammad.png","key":"Aslemammad","page":null},"bharateshwq":{"name":"Bharatesh","alias":"bharateshwq","url":"https://github.com/bharateshwq","imageURL":"https://github.com/bharateshwq.png","key":"bharateshwq","page":null},"bohyunjung":{"name":"\uC815\uBCF4\uD604 Bohyun Jung","alias":"bohyunjung","url":"https://github.com/bohyunjung","imageURL":"https://github.com/bohyunjung.png","key":"bohyunjung","page":null},"chirbard":{"name":"Markus Tamm","alias":"chirbard","url":"https://github.com/chirbard","imageURL":"https://github.com/chirbard.png","key":"chirbard","page":null},"d4nyll":{"name":"Daniel Li","alias":"d4nyll","url":"https://github.com/d4nyll","imageURL":"https://github.com/d4nyll.png","key":"d4nyll","page":null},"dhayab":{"name":"Dhaya","alias":"dhayab","url":"https://github.com/dhayab","imageURL":"https://github.com/dhayab.png","key":"dhayab","page":null},"franzd1":{"name":"franzd1","alias":"franzd1","url":"https://github.com/franzd1","imageURL":"https://github.com/franzd1.png","key":"franzd1","page":null},"Gekd":{"name":"Robin Otter","alias":"Gekd","url":"https://github.com/Gekd","imageURL":"https://github.com/Gekd.png","key":"Gekd","page":null},"hichemfantar":{"name":"Hichem Fantar","alias":"hichemfantar","url":"https://github.com/hichemfantar","imageURL":"https://github.com/hichemfantar.png","key":"hichemfantar","page":null},"johnnyreilly":{"name":"John Reilly","alias":"johnnyreilly","url":"https://github.com/johnnyreilly","imageURL":"https://github.com/johnnyreilly.png","key":"johnnyreilly","page":null},"Josh-Cena":{"name":"Joshua Chen","alias":"Josh-Cena","url":"https://github.com/Josh-Cena","imageURL":"https://github.com/Josh-Cena.png","key":"Josh-Cena","page":null},"lebalz":{"name":"Balthasar Hofer","alias":"lebalz","url":"https://github.com/lebalz","imageURL":"https://github.com/lebalz.png","key":"lebalz","page":null},"mxschmitt":{"name":"Max Schmitt","alias":"mxschmitt","url":"https://github.com/mxschmitt","imageURL":"https://github.com/mxschmitt.png","key":"mxschmitt","page":null},"OzakIOne":{"name":"ozaki","alias":"OzakIOne","url":"https://github.com/OzakIOne","imageURL":"https://github.com/OzakIOne.png","key":"OzakIOne","page":null},"Paneedah":{"name":"Paneedah","alias":"Paneedah","url":"https://github.com/Paneedah","imageURL":"https://github.com/Paneedah.png","key":"Paneedah","page":null},"pjchender":{"name":"Aaron Chen","alias":"pjchender","url":"https://github.com/pjchender","imageURL":"https://github.com/pjchender.png","key":"pjchender","page":null},"priyadi":{"name":"Priyadi Iman Nurcahyo","alias":"priyadi","url":"https://github.com/priyadi","imageURL":"https://github.com/priyadi.png","key":"priyadi","page":null},"sergioalmela":{"name":"Sergio","alias":"sergioalmela","url":"https://github.com/sergioalmela","imageURL":"https://github.com/sergioalmela.png","key":"sergioalmela","page":null},"tats-u":{"name":"Tatsunori Uchino","alias":"tats-u","url":"https://github.com/tats-u","imageURL":"https://github.com/tats-u.png","key":"tats-u","page":null},"ultimate":{"name":"Julian V","alias":"ultimate","url":"https://github.com/ultimate","imageURL":"https://github.com/ultimate.png","key":"ultimate","page":null},"Xebec19":{"name":"Rohan Thakur","alias":"Xebec19","url":"https://github.com/Xebec19","imageURL":"https://github.com/Xebec19.png","key":"Xebec19","page":null},"yujonglee":{"name":"yujonglee","alias":"yujonglee","url":"https://github.com/yujonglee","imageURL":"https://github.com/yujonglee.png","key":"yujonglee","page":null},"Arsero":{"name":"Azzedine E.","alias":"Arsero","url":"https://github.com/Arsero","imageURL":"https://github.com/Arsero.png","key":"Arsero","page":null},"CodeDoctorDE":{"name":"CodeDoctor","alias":"CodeDoctorDE","url":"https://github.com/CodeDoctorDE","imageURL":"https://github.com/CodeDoctorDE.png","key":"CodeDoctorDE","page":null},"homotechsual":{"name":"Mikey O\'Toole","alias":"homotechsual","url":"https://github.com/homotechsual","imageURL":"https://github.com/homotechsual.png","key":"homotechsual","page":null},"ilmedova":{"name":"Mahri Ilmedova","alias":"ilmedova","url":"https://github.com/ilmedova","imageURL":"https://github.com/ilmedova.png","key":"ilmedova","page":null},"namnguyenthanhwork":{"name":"Nguy\u1EC5n Th\xe0nh Nam","alias":"namnguyenthanhwork","url":"https://github.com/namnguyenthanhwork","imageURL":"https://github.com/namnguyenthanhwork.png","key":"namnguyenthanhwork","page":null},"ncoughlin":{"name":"Nick Coughlin","alias":"ncoughlin","url":"https://github.com/ncoughlin","imageURL":"https://github.com/ncoughlin.png","key":"ncoughlin","page":null},"PetarMc1":{"name":"Petar_mc","alias":"PetarMc1","url":"https://github.com/PetarMc1","imageURL":"https://github.com/PetarMc1.png","key":"PetarMc1","page":null},"revi":{"name":"Yongmin Hong","alias":"revi","url":"https://github.com/revi","imageURL":"https://github.com/revi.png","key":"revi","page":null},"Abdullah-03":{"name":"Abdullah Saud","alias":"Abdullah-03","url":"https://github.com/Abdullah-03","imageURL":"https://github.com/Abdullah-03.png","key":"Abdullah-03","page":null},"andrmaz":{"name":"Andrea Mazzucchelli","alias":"andrmaz","url":"https://github.com/andrmaz","imageURL":"https://github.com/andrmaz.png","key":"andrmaz","page":null},"eldemcan":{"name":"Can Eldem","alias":"eldemcan","url":"https://github.com/eldemcan","imageURL":"https://github.com/eldemcan.png","key":"eldemcan","page":null},"gagdiez":{"name":"Guille","alias":"gagdiez","url":"https://github.com/gagdiez","imageURL":"https://github.com/gagdiez.png","key":"gagdiez","page":null},"h3nr1ke":{"name":"H3NR1KE","alias":"h3nr1ke","url":"https://github.com/h3nr1ke","imageURL":"https://github.com/h3nr1ke.png","key":"h3nr1ke","page":null},"iAdramelk":{"name":"Alexey Ivanov","alias":"iAdramelk","url":"https://github.com/iAdramelk","imageURL":"https://github.com/iAdramelk.png","key":"iAdramelk","page":null},"kaihoffman":{"name":"Kai Hoffman","alias":"kaihoffman","url":"https://github.com/kaihoffman","imageURL":"https://github.com/kaihoffman.png","key":"kaihoffman","page":null},"pearmini":{"name":"Bairui Su","alias":"pearmini","url":"https://github.com/pearmini","imageURL":"https://github.com/pearmini.png","key":"pearmini","page":null},"SandPod":{"name":"Alexander Sandor","alias":"SandPod","url":"https://github.com/SandPod","imageURL":"https://github.com/SandPod.png","key":"SandPod","page":null},"tomsotte":{"name":"Tommaso Sotte","alias":"tomsotte","url":"https://github.com/tomsotte","imageURL":"https://github.com/tomsotte.png","key":"tomsotte","page":null},"tomy0000000":{"name":"Tomy Hsieh","alias":"tomy0000000","url":"https://github.com/tomy0000000","imageURL":"https://github.com/tomy0000000.png","key":"tomy0000000","page":null},"Virgil993":{"name":"Virgil993","alias":"Virgil993","url":"https://github.com/Virgil993","imageURL":"https://github.com/Virgil993.png","key":"Virgil993","page":null},"volcanofr":{"name":"volcanofr","alias":"volcanofr","url":"https://github.com/volcanofr","imageURL":"https://github.com/volcanofr.png","key":"volcanofr","page":null},"Zwyx":{"name":"Zwyx","alias":"Zwyx","url":"https://github.com/Zwyx","imageURL":"https://github.com/Zwyx.png","key":"Zwyx","page":null},"4troDev":{"name":"Josue [4tro] A","alias":"4troDev","url":"https://github.com/4troDev","imageURL":"https://github.com/4troDev.png","key":"4troDev","page":null},"anatolykopyl":{"name":"Anatoly Kopyl","alias":"anatolykopyl","url":"https://github.com/anatolykopyl","imageURL":"https://github.com/anatolykopyl.png","key":"anatolykopyl","page":null},"axel7083":{"name":"axel7083","alias":"axel7083","url":"https://github.com/axel7083","imageURL":"https://github.com/axel7083.png","key":"axel7083","page":null},"baradusov":{"name":"\u041D\u0443\u0440\u0438\u043B\u044C \u0411\u0430\u0440\u0430\u0434\u0443\u0441\u043E\u0432","alias":"baradusov","url":"https://github.com/baradusov","imageURL":"https://github.com/baradusov.png","key":"baradusov","page":null},"chris-bateman":{"name":"Chris Bateman","alias":"chris-bateman","url":"https://github.com/chris-bateman","imageURL":"https://github.com/chris-bateman.png","key":"chris-bateman","page":null},"GingerGeek":{"name":"Zed Spencer-Milnes","alias":"GingerGeek","url":"https://github.com/GingerGeek","imageURL":"https://github.com/GingerGeek.png","key":"GingerGeek","page":null},"Hallinn":{"name":"Hallbj\xf6rn Magn\xfasson","alias":"Hallinn","url":"https://github.com/Hallinn","imageURL":"https://github.com/Hallinn.png","key":"Hallinn","page":null},"ilg-ul":{"name":"Liviu Ionescu","alias":"ilg-ul","url":"https://github.com/ilg-ul","imageURL":"https://github.com/ilg-ul.png","key":"ilg-ul","page":null},"Its-Just-Nans":{"name":"n4n5","alias":"Its-Just-Nans","url":"https://github.com/Its-Just-Nans","imageURL":"https://github.com/Its-Just-Nans.png","key":"Its-Just-Nans","page":null},"kaymomin":{"name":"krinza.eth","alias":"kaymomin","url":"https://github.com/kaymomin","imageURL":"https://github.com/kaymomin.png","key":"kaymomin","page":null},"Oreoxmt":{"name":"Aolin","alias":"Oreoxmt","url":"https://github.com/Oreoxmt","imageURL":"https://github.com/Oreoxmt.png","key":"Oreoxmt","page":null},"Rafael-Martins":{"name":"Rafael Martins","alias":"Rafael-Martins","url":"https://github.com/Rafael-Martins","imageURL":"https://github.com/Rafael-Martins.png","key":"Rafael-Martins","page":null},"Suenaga-Ryuya":{"name":"suenryu","alias":"Suenaga-Ryuya","url":"https://github.com/Suenaga-Ryuya","imageURL":"https://github.com/Suenaga-Ryuya.png","key":"Suenaga-Ryuya","page":null},"sunkanmii":{"name":"Fafowora Sunkanmi","alias":"sunkanmii","url":"https://github.com/sunkanmii","imageURL":"https://github.com/sunkanmii.png","key":"sunkanmii","page":null},"VahidNaderi":{"name":"Vahid Naderi","alias":"VahidNaderi","url":"https://github.com/VahidNaderi","imageURL":"https://github.com/VahidNaderi.png","key":"VahidNaderi","page":null},"vlad-nestorov":{"name":"Vlad Nestorov","alias":"vlad-nestorov","url":"https://github.com/vlad-nestorov","imageURL":"https://github.com/vlad-nestorov.png","key":"vlad-nestorov","page":null},"yixiaojiu":{"name":"\u7FCA\u5C0F\u4E45","alias":"yixiaojiu","url":"https://github.com/yixiaojiu","imageURL":"https://github.com/yixiaojiu.png","key":"yixiaojiu","page":null},"dawei-wang":{"name":"dawei-wang","alias":"dawei-wang","url":"https://github.com/dawei-wang","imageURL":"https://github.com/dawei-wang.png","key":"dawei-wang","page":null},"eitsupi":{"name":"eitsupi","alias":"eitsupi","url":"https://github.com/eitsupi","imageURL":"https://github.com/eitsupi.png","key":"eitsupi","page":null},"jack-robson":{"name":"Jack Robson","alias":"jack-robson","url":"https://github.com/jack-robson","imageURL":"https://github.com/jack-robson.png","key":"jack-robson","page":null},"sanjaiyan-dev":{"name":"Sanjaiyan Parthipan","alias":"sanjaiyan-dev","url":"https://github.com/sanjaiyan-dev","imageURL":"https://github.com/sanjaiyan-dev.png","key":"sanjaiyan-dev","page":null},"axmmisaka":{"name":"axmmisaka","alias":"axmmisaka","url":"https://github.com/axmmisaka","imageURL":"https://github.com/axmmisaka.png","key":"axmmisaka","page":null},"c0h1b4":{"name":"c0h1b4","alias":"c0h1b4","url":"https://github.com/c0h1b4","imageURL":"https://github.com/c0h1b4.png","key":"c0h1b4","page":null},"jgarrow":{"name":"Janessa Garrow","alias":"jgarrow","url":"https://github.com/jgarrow","imageURL":"https://github.com/jgarrow.png","key":"jgarrow","page":null},"SimenB":{"name":"Simen Bekkhus","alias":"SimenB","url":"https://github.com/SimenB","imageURL":"https://github.com/SimenB.png","key":"SimenB","page":null},"harryzcy":{"name":"Chongyi Zheng","alias":"harryzcy","url":"https://github.com/harryzcy","imageURL":"https://github.com/harryzcy.png","key":"harryzcy","page":null},"mcrstudio":{"name":"MCR Studio","alias":"mcrstudio","url":"https://github.com/mcrstudio","imageURL":"https://github.com/mcrstudio.png","key":"mcrstudio","page":null},"NickGerleman":{"name":"Nick Gerleman","alias":"NickGerleman","url":"https://github.com/NickGerleman","imageURL":"https://github.com/NickGerleman.png","key":"NickGerleman","page":null},"reece-white":{"name":"reece-white","alias":"reece-white","url":"https://github.com/reece-white","imageURL":"https://github.com/reece-white.png","key":"reece-white","page":null},"Shreesh09":{"name":"Shreesh Nautiyal","alias":"Shreesh09","url":"https://github.com/Shreesh09","imageURL":"https://github.com/Shreesh09.png","key":"Shreesh09","page":null},"0420syj":{"name":"Wan Sim","alias":"0420syj","url":"https://github.com/0420syj","imageURL":"https://github.com/0420syj.png","key":"0420syj","page":null},"abhinandanwadwa":{"name":"Abhinandan Wadhwa","alias":"abhinandanwadwa","url":"https://github.com/abhinandanwadwa","imageURL":"https://github.com/abhinandanwadwa.png","key":"abhinandanwadwa","page":null},"Abinashbunty":{"name":"Abinash Satapathy","alias":"Abinashbunty","url":"https://github.com/Abinashbunty","imageURL":"https://github.com/Abinashbunty.png","key":"Abinashbunty","page":null},"adampatterson":{"name":"Adam Patterson","alias":"adampatterson","url":"https://github.com/adampatterson","imageURL":"https://github.com/adampatterson.png","key":"adampatterson","page":null},"adithyaakrishna":{"name":"Adithya Krishna","alias":"adithyaakrishna","url":"https://github.com/adithyaakrishna","imageURL":"https://github.com/adithyaakrishna.png","key":"adithyaakrishna","page":null},"AFRUITPIE":{"name":"Hayden Hong","alias":"AFRUITPIE","url":"https://github.com/AFRUITPIE","imageURL":"https://github.com/AFRUITPIE.png","key":"AFRUITPIE","page":null},"AgentEnder":{"name":"Craigory Coppola","alias":"AgentEnder","url":"https://github.com/AgentEnder","imageURL":"https://github.com/AgentEnder.png","key":"AgentEnder","page":null},"akshaybhalotia":{"name":"Akshay Bhalotia","alias":"akshaybhalotia","url":"https://github.com/akshaybhalotia","imageURL":"https://github.com/akshaybhalotia.png","key":"akshaybhalotia","page":null},"allyw2002":{"name":"allyw2002","alias":"allyw2002","url":"https://github.com/allyw2002","imageURL":"https://github.com/allyw2002.png","key":"allyw2002","page":null},"amdshrif":{"name":"Ahmad Shrif","alias":"amdshrif","url":"https://github.com/amdshrif","imageURL":"https://github.com/amdshrif.png","key":"amdshrif","page":null},"amm98d":{"name":"Ahmed Mustafa Malik","alias":"amm98d","url":"https://github.com/amm98d","imageURL":"https://github.com/amm98d.png","key":"amm98d","page":null},"andrewnicols":{"name":"Andrew Lyons","alias":"andrewnicols","url":"https://github.com/andrewnicols","imageURL":"https://github.com/andrewnicols.png","key":"andrewnicols","page":null},"antonk52":{"name":"Anton Kastritskii","alias":"antonk52","url":"https://github.com/antonk52","imageURL":"https://github.com/antonk52.png","key":"antonk52","page":null},"antonyoni":{"name":"Antony Onipko","alias":"antonyoni","url":"https://github.com/antonyoni","imageURL":"https://github.com/antonyoni.png","key":"antonyoni","page":null},"aqueeb":{"name":"Aqueeb","alias":"aqueeb","url":"https://github.com/aqueeb","imageURL":"https://github.com/aqueeb.png","key":"aqueeb","page":null},"attitude":{"name":"Martin Adamko","alias":"attitude","url":"https://github.com/attitude","imageURL":"https://github.com/attitude.png","key":"attitude","page":null},"billy1624":{"name":"Billy Chan","alias":"billy1624","url":"https://github.com/billy1624","imageURL":"https://github.com/billy1624.png","key":"billy1624","page":null},"biplavmz":{"name":"biplavmz","alias":"biplavmz","url":"https://github.com/biplavmz","imageURL":"https://github.com/biplavmz.png","key":"biplavmz","page":null},"bitpredator":{"name":"bitpredator","alias":"bitpredator","url":"https://github.com/bitpredator","imageURL":"https://github.com/bitpredator.png","key":"bitpredator","page":null},"BubbaJoe":{"name":"Joe Williams","alias":"BubbaJoe","url":"https://github.com/BubbaJoe","imageURL":"https://github.com/BubbaJoe.png","key":"BubbaJoe","page":null},"chillinPanda":{"name":"Dinh Bao Dang","alias":"chillinPanda","url":"https://github.com/chillinPanda","imageURL":"https://github.com/chillinPanda.png","key":"chillinPanda","page":null},"chubei":{"name":"Bei Chu","alias":"chubei","url":"https://github.com/chubei","imageURL":"https://github.com/chubei.png","key":"chubei","page":null},"chudongvip":{"name":"\u521D\u51AC","alias":"chudongvip","url":"https://github.com/chudongvip","imageURL":"https://github.com/chudongvip.png","key":"chudongvip","page":null},"cm-igarashi-ryosuke":{"name":"Ryosuke Igarashi","alias":"cm-igarashi-ryosuke","url":"https://github.com/cm-igarashi-ryosuke","imageURL":"https://github.com/cm-igarashi-ryosuke.png","key":"cm-igarashi-ryosuke","page":null},"colinhacks":{"name":"Colin McDonnell","alias":"colinhacks","url":"https://github.com/colinhacks","imageURL":"https://github.com/colinhacks.png","key":"colinhacks","page":null},"conlacda":{"name":"conlacda","alias":"conlacda","url":"https://github.com/conlacda","imageURL":"https://github.com/conlacda.png","key":"conlacda","page":null},"dandv":{"name":"Dan Dascalescu","alias":"dandv","url":"https://github.com/dandv","imageURL":"https://github.com/dandv.png","key":"dandv","page":null},"danilowoz":{"name":"Danilo Woznica","alias":"danilowoz","url":"https://github.com/danilowoz","imageURL":"https://github.com/danilowoz.png","key":"danilowoz","page":null},"DanRoscigno":{"name":"Dan Roscigno","alias":"DanRoscigno","url":"https://github.com/DanRoscigno","imageURL":"https://github.com/DanRoscigno.png","key":"DanRoscigno","page":null},"DavidJFelix":{"name":"David J. Felix","alias":"DavidJFelix","url":"https://github.com/DavidJFelix","imageURL":"https://github.com/DavidJFelix.png","key":"DavidJFelix","page":null},"debs-obrien":{"name":"Debbie O\'Brien","alias":"debs-obrien","url":"https://github.com/debs-obrien","imageURL":"https://github.com/debs-obrien.png","key":"debs-obrien","page":null},"Devansu-Yadav":{"name":"Devansu Yadav","alias":"Devansu-Yadav","url":"https://github.com/Devansu-Yadav","imageURL":"https://github.com/Devansu-Yadav.png","key":"Devansu-Yadav","page":null},"Djunnni":{"name":"Dongjoon Lee","alias":"Djunnni","url":"https://github.com/Djunnni","imageURL":"https://github.com/Djunnni.png","key":"Djunnni","page":null},"Dr-Electron":{"name":"Dr-Electron","alias":"Dr-Electron","url":"https://github.com/Dr-Electron","imageURL":"https://github.com/Dr-Electron.png","key":"Dr-Electron","page":null},"e-minguez":{"name":"Eduardo M\xednguez","alias":"e-minguez","url":"https://github.com/e-minguez","imageURL":"https://github.com/e-minguez.png","key":"e-minguez","page":null},"edno":{"name":"Gr\xe9gory Heitz","alias":"edno","url":"https://github.com/edno","imageURL":"https://github.com/edno.png","key":"edno","page":null},"FlorinaPacurar":{"name":"FlorinaPacurar","alias":"FlorinaPacurar","url":"https://github.com/FlorinaPacurar","imageURL":"https://github.com/FlorinaPacurar.png","key":"FlorinaPacurar","page":null},"Foosballfan":{"name":"Charles Killer","alias":"Foosballfan","url":"https://github.com/Foosballfan","imageURL":"https://github.com/Foosballfan.png","key":"Foosballfan","page":null},"forresst":{"name":"Forresst","alias":"forresst","url":"https://github.com/forresst","imageURL":"https://github.com/forresst.png","key":"forresst","page":null},"FrancescoXX":{"name":"Francesco Ciulla","alias":"FrancescoXX","url":"https://github.com/FrancescoXX","imageURL":"https://github.com/FrancescoXX.png","key":"FrancescoXX","page":null},"fredrikstave":{"name":"Fredrik Stave","alias":"fredrikstave","url":"https://github.com/fredrikstave","imageURL":"https://github.com/fredrikstave.png","key":"fredrikstave","page":null},"fxpby":{"name":"Fxpby","alias":"fxpby","url":"https://github.com/fxpby","imageURL":"https://github.com/fxpby.png","key":"fxpby","page":null},"gabrielcsapo":{"name":"Gabriel Csapo","alias":"gabrielcsapo","url":"https://github.com/gabrielcsapo","imageURL":"https://github.com/gabrielcsapo.png","key":"gabrielcsapo","page":null},"GalexyN":{"name":"Alexander Nguyen","alias":"GalexyN","url":"https://github.com/GalexyN","imageURL":"https://github.com/GalexyN.png","key":"GalexyN","page":null},"gazab":{"name":"Gustav Ton\xe9r","alias":"gazab","url":"https://github.com/gazab","imageURL":"https://github.com/gazab.png","key":"gazab","page":null},"gracefullight":{"name":"Eunkwang Shin","alias":"gracefullight","url":"https://github.com/gracefullight","imageURL":"https://github.com/gracefullight.png","key":"gracefullight","page":null},"gregberge":{"name":"Greg Berg\xe9","alias":"gregberge","url":"https://github.com/gregberge","imageURL":"https://github.com/gregberge.png","key":"gregberge","page":null},"heysujal":{"name":"Sujal Gupta","alias":"heysujal","url":"https://github.com/heysujal","imageURL":"https://github.com/heysujal.png","key":"heysujal","page":null},"hidde":{"name":"Hidde de Vries","alias":"hidde","url":"https://github.com/hidde","imageURL":"https://github.com/hidde.png","key":"hidde","page":null},"hslee2008":{"name":"Hyunseung","alias":"hslee2008","url":"https://github.com/hslee2008","imageURL":"https://github.com/hslee2008.png","key":"hslee2008","page":null},"HumbleDeer":{"name":"Anna","alias":"HumbleDeer","url":"https://github.com/HumbleDeer","imageURL":"https://github.com/HumbleDeer.png","key":"HumbleDeer","page":null},"HyeokjinKang":{"name":"Coupy","alias":"HyeokjinKang","url":"https://github.com/HyeokjinKang","imageURL":"https://github.com/HyeokjinKang.png","key":"HyeokjinKang","page":null},"jean-humann":{"name":"Jean Humann","alias":"jean-humann","url":"https://github.com/jean-humann","imageURL":"https://github.com/jean-humann.png","key":"jean-humann","page":null},"jeengbe":{"name":"Jesper Engberg","alias":"jeengbe","url":"https://github.com/jeengbe","imageURL":"https://github.com/jeengbe.png","key":"jeengbe","page":null},"jhcao23":{"name":"John Cao","alias":"jhcao23","url":"https://github.com/jhcao23","imageURL":"https://github.com/jhcao23.png","key":"jhcao23","page":null},"jj-style":{"name":"JJ Style","alias":"jj-style","url":"https://github.com/jj-style","imageURL":"https://github.com/jj-style.png","key":"jj-style","page":null},"jodyheavener":{"name":"Jody Heavener","alias":"jodyheavener","url":"https://github.com/jodyheavener","imageURL":"https://github.com/jodyheavener.png","key":"jodyheavener","page":null},"JohnVicke":{"name":"Viktor Malmedal","alias":"JohnVicke","url":"https://github.com/JohnVicke","imageURL":"https://github.com/JohnVicke.png","key":"JohnVicke","page":null},"JorensM":{"name":"Jorens Merenjanu","alias":"JorensM","url":"https://github.com/JorensM","imageURL":"https://github.com/JorensM.png","key":"JorensM","page":null},"juanpicado":{"name":"Juan Picado","alias":"juanpicado","url":"https://github.com/juanpicado","imageURL":"https://github.com/juanpicado.png","key":"juanpicado","page":null},"KarthickSakthi":{"name":"0x24Karthick","alias":"KarthickSakthi","url":"https://github.com/KarthickSakthi","imageURL":"https://github.com/KarthickSakthi.png","key":"KarthickSakthi","page":null},"Kesyau":{"name":"Serenus","alias":"Kesyau","url":"https://github.com/Kesyau","imageURL":"https://github.com/Kesyau.png","key":"Kesyau","page":null},"knownasnaffy":{"name":"Naffy Dharni","alias":"knownasnaffy","url":"https://github.com/knownasnaffy","imageURL":"https://github.com/knownasnaffy.png","key":"knownasnaffy","page":null},"la55u":{"name":"la55u","alias":"la55u","url":"https://github.com/la55u","imageURL":"https://github.com/la55u.png","key":"la55u","page":null},"lanegoolsby":{"name":"Lane Goolsby","alias":"lanegoolsby","url":"https://github.com/lanegoolsby","imageURL":"https://github.com/lanegoolsby.png","key":"lanegoolsby","page":null},"layershifter":{"name":"Oleksandr Fediashov","alias":"layershifter","url":"https://github.com/layershifter","imageURL":"https://github.com/layershifter.png","key":"layershifter","page":null},"lex111":{"name":"Alexey Pyltsyn","alias":"lex111","url":"https://github.com/lex111","imageURL":"https://github.com/lex111.png","key":"lex111","page":null},"lorenzolewis":{"name":"Lorenzo Lewis","alias":"lorenzolewis","url":"https://github.com/lorenzolewis","imageURL":"https://github.com/lorenzolewis.png","key":"lorenzolewis","page":null},"maliMirkec":{"name":"Silvestar Bistrovi\u0107","alias":"maliMirkec","url":"https://github.com/maliMirkec","imageURL":"https://github.com/maliMirkec.png","key":"maliMirkec","page":null},"manuel-rw":{"name":"Manuel","alias":"manuel-rw","url":"https://github.com/manuel-rw","imageURL":"https://github.com/manuel-rw.png","key":"manuel-rw","page":null},"MarkShawn2020":{"name":"Markshawn","alias":"MarkShawn2020","url":"https://github.com/MarkShawn2020","imageURL":"https://github.com/MarkShawn2020.png","key":"MarkShawn2020","page":null},"mcallisto":{"name":"mcallisto","alias":"mcallisto","url":"https://github.com/mcallisto","imageURL":"https://github.com/mcallisto.png","key":"mcallisto","page":null},"mickremedi":{"name":"Michael Remediakis","alias":"mickremedi","url":"https://github.com/mickremedi","imageURL":"https://github.com/mickremedi.png","key":"mickremedi","page":null},"ModupeD":{"name":"ModupeD","alias":"ModupeD","url":"https://github.com/ModupeD","imageURL":"https://github.com/ModupeD.png","key":"ModupeD","page":null},"Mogyuchi":{"name":"Mogyuchi","alias":"Mogyuchi","url":"https://github.com/Mogyuchi","imageURL":"https://github.com/Mogyuchi.png","key":"Mogyuchi","page":null},"moojing":{"name":"Mu-Jing-Tsai","alias":"moojing","url":"https://github.com/moojing","imageURL":"https://github.com/moojing.png","key":"moojing","page":null},"mrazauskas":{"name":"Tom Mrazauskas","alias":"mrazauskas","url":"https://github.com/mrazauskas","imageURL":"https://github.com/mrazauskas.png","key":"mrazauskas","page":null},"mstroppel":{"name":"Marco Stroppel","alias":"mstroppel","url":"https://github.com/mstroppel","imageURL":"https://github.com/mstroppel.png","key":"mstroppel","page":null},"Mysterious-Dev":{"name":"Mysterious_Dev","alias":"Mysterious-Dev","url":"https://github.com/Mysterious-Dev","imageURL":"https://github.com/Mysterious-Dev.png","key":"Mysterious-Dev","page":null},"NamanGarg2075":{"name":"Naman Garg","alias":"NamanGarg2075","url":"https://github.com/NamanGarg2075","imageURL":"https://github.com/NamanGarg2075.png","key":"NamanGarg2075","page":null},"ntucker":{"name":"Nathaniel Tucker","alias":"ntucker","url":"https://github.com/ntucker","imageURL":"https://github.com/ntucker.png","key":"ntucker","page":null},"oluwatobiss":{"name":"Oluwatobi Sofela","alias":"oluwatobiss","url":"https://github.com/oluwatobiss","imageURL":"https://github.com/oluwatobiss.png","key":"oluwatobiss","page":null},"palmiak":{"name":"Maciek Palmowski","alias":"palmiak","url":"https://github.com/palmiak","imageURL":"https://github.com/palmiak.png","key":"palmiak","page":null},"PaulRBerg":{"name":"Paul Razvan Berg","alias":"PaulRBerg","url":"https://github.com/PaulRBerg","imageURL":"https://github.com/PaulRBerg.png","key":"PaulRBerg","page":null},"pinakipb2":{"name":"Pinaki Bhattacharjee","alias":"pinakipb2","url":"https://github.com/pinakipb2","imageURL":"https://github.com/pinakipb2.png","key":"pinakipb2","page":null},"prateekbytes":{"name":"prateekbytes","alias":"prateekbytes","url":"https://github.com/prateekbytes","imageURL":"https://github.com/prateekbytes.png","key":"prateekbytes","page":null},"qwerzl":{"name":"qwerzl","alias":"qwerzl","url":"https://github.com/qwerzl","imageURL":"https://github.com/qwerzl.png","key":"qwerzl","page":null},"rashidmya":{"name":"Rashid","alias":"rashidmya","url":"https://github.com/rashidmya","imageURL":"https://github.com/rashidmya.png","key":"rashidmya","page":null},"razzeee":{"name":"Kolja","alias":"razzeee","url":"https://github.com/razzeee","imageURL":"https://github.com/razzeee.png","key":"razzeee","page":null},"rbarbazz":{"name":"Rapha\xebl Barbazza","alias":"rbarbazz","url":"https://github.com/rbarbazz","imageURL":"https://github.com/rbarbazz.png","key":"rbarbazz","page":null},"recallwei":{"name":"Bruce Song","alias":"recallwei","url":"https://github.com/recallwei","imageURL":"https://github.com/recallwei.png","key":"recallwei","page":null},"rojakcoder":{"name":"Chua Chee How","alias":"rojakcoder","url":"https://github.com/rojakcoder","imageURL":"https://github.com/rojakcoder.png","key":"rojakcoder","page":null},"rsteele6":{"name":"rsteele6","alias":"rsteele6","url":"https://github.com/rsteele6","imageURL":"https://github.com/rsteele6.png","key":"rsteele6","page":null},"sadikkuzu":{"name":"SADIK KUZU","alias":"sadikkuzu","url":"https://github.com/sadikkuzu","imageURL":"https://github.com/sadikkuzu.png","key":"sadikkuzu","page":null},"Sainan":{"name":"Sainan","alias":"Sainan","url":"https://github.com/Sainan","imageURL":"https://github.com/Sainan.png","key":"Sainan","page":null},"samatt14":{"name":"samatt14","alias":"samatt14","url":"https://github.com/samatt14","imageURL":"https://github.com/samatt14.png","key":"samatt14","page":null},"sashashura":{"name":"Alex","alias":"sashashura","url":"https://github.com/sashashura","imageURL":"https://github.com/sashashura.png","key":"sashashura","page":null},"schneegansm":{"name":"Marie","alias":"schneegansm","url":"https://github.com/schneegansm","imageURL":"https://github.com/schneegansm.png","key":"schneegansm","page":null},"scubamaggo":{"name":"Marco Kuper","alias":"scubamaggo","url":"https://github.com/scubamaggo","imageURL":"https://github.com/scubamaggo.png","key":"scubamaggo","page":null},"ShahriarKh":{"name":"Shahriar","alias":"ShahriarKh","url":"https://github.com/ShahriarKh","imageURL":"https://github.com/ShahriarKh.png","key":"ShahriarKh","page":null},"shawshankkumar":{"name":"Shashank Kumar","alias":"shawshankkumar","url":"https://github.com/shawshankkumar","imageURL":"https://github.com/shawshankkumar.png","key":"shawshankkumar","page":null},"shortcuts":{"name":"Cl\xe9ment Vannicatte","alias":"shortcuts","url":"https://github.com/shortcuts","imageURL":"https://github.com/shortcuts.png","key":"shortcuts","page":null},"shwaka":{"name":"Shun Wakatsuki","alias":"shwaka","url":"https://github.com/shwaka","imageURL":"https://github.com/shwaka.png","key":"shwaka","page":null},"sixhobbits":{"name":"Gareth Dwyer","alias":"sixhobbits","url":"https://github.com/sixhobbits","imageURL":"https://github.com/sixhobbits.png","key":"sixhobbits","page":null},"suravshrestha":{"name":"Surav Shrestha","alias":"suravshrestha","url":"https://github.com/suravshrestha","imageURL":"https://github.com/suravshrestha.png","key":"suravshrestha","page":null},"sykp241095":{"name":"sykp241095","alias":"sykp241095","url":"https://github.com/sykp241095","imageURL":"https://github.com/sykp241095.png","key":"sykp241095","page":null},"tamalchowdhury":{"name":"Tamal Anwar Chowdhury","alias":"tamalchowdhury","url":"https://github.com/tamalchowdhury","imageURL":"https://github.com/tamalchowdhury.png","key":"tamalchowdhury","page":null},"tarunrajput":{"name":"Tarun Chauhan","alias":"tarunrajput","url":"https://github.com/tarunrajput","imageURL":"https://github.com/tarunrajput.png","key":"tarunrajput","page":null},"thadguidry":{"name":"Thad Guidry","alias":"thadguidry","url":"https://github.com/thadguidry","imageURL":"https://github.com/thadguidry.png","key":"thadguidry","page":null},"thatrobotdev":{"name":"James Kerrane","alias":"thatrobotdev","url":"https://github.com/thatrobotdev","imageURL":"https://github.com/thatrobotdev.png","key":"thatrobotdev","page":null},"thedevwonder":{"name":"thedevwonder","alias":"thedevwonder","url":"https://github.com/thedevwonder","imageURL":"https://github.com/thedevwonder.png","key":"thedevwonder","page":null},"Villanuevand":{"name":"Andr\xe9s Villanueva","alias":"Villanuevand","url":"https://github.com/Villanuevand","imageURL":"https://github.com/Villanuevand.png","key":"Villanuevand","page":null},"VinceCYLiao":{"name":"VinceCYLiao","alias":"VinceCYLiao","url":"https://github.com/VinceCYLiao","imageURL":"https://github.com/VinceCYLiao.png","key":"VinceCYLiao","page":null},"waldyrious":{"name":"Waldir Pimenta","alias":"waldyrious","url":"https://github.com/waldyrious","imageURL":"https://github.com/waldyrious.png","key":"waldyrious","page":null},"wceolin":{"name":"Will Ceolin","alias":"wceolin","url":"https://github.com/wceolin","imageURL":"https://github.com/wceolin.png","key":"wceolin","page":null},"webbertakken":{"name":"Webber Takken","alias":"webbertakken","url":"https://github.com/webbertakken","imageURL":"https://github.com/webbertakken.png","key":"webbertakken","page":null},"werner33":{"name":"Jordan Manley","alias":"werner33","url":"https://github.com/werner33","imageURL":"https://github.com/werner33.png","key":"werner33","page":null},"yangshun":{"name":"Yangshun Tay","alias":"yangshun","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun","page":null},"yosukekato165":{"name":"yosukekato165","alias":"yosukekato165","url":"https://github.com/yosukekato165","imageURL":"https://github.com/yosukekato165.png","key":"yosukekato165","page":null},"ori-shalom":{"name":"Ori Shalom","alias":"ori-shalom","url":"https://github.com/ori-shalom","imageURL":"https://github.com/ori-shalom.png","key":"ori-shalom","page":null},"TheCatLady":{"name":"TheCatLady","alias":"TheCatLady","url":"https://github.com/TheCatLady","imageURL":"https://github.com/TheCatLady.png","key":"TheCatLady","page":null},"armano2":{"name":"Armano","alias":"armano2","url":"https://github.com/armano2","imageURL":"https://github.com/armano2.png","key":"armano2","page":null},"LiberaTeMetuMortis":{"name":"MetuMortis","alias":"LiberaTeMetuMortis","url":"https://github.com/LiberaTeMetuMortis","imageURL":"https://github.com/LiberaTeMetuMortis.png","key":"LiberaTeMetuMortis","page":null},"morsko1":{"name":"Aleksandr Vladykin","alias":"morsko1","url":"https://github.com/morsko1","imageURL":"https://github.com/morsko1.png","key":"morsko1","page":null},"SACHINnANYAKKARA":{"name":"Sachin Nanayakkara","alias":"SACHINnANYAKKARA","url":"https://github.com/SACHINnANYAKKARA","imageURL":"https://github.com/SACHINnANYAKKARA.png","key":"SACHINnANYAKKARA","page":null},"Anasqx":{"name":"Anas","alias":"Anasqx","url":"https://github.com/Anasqx","imageURL":"https://github.com/Anasqx.png","key":"Anasqx","page":null},"dewanshDT":{"name":"Dewansh Thakur","alias":"dewanshDT","url":"https://github.com/dewanshDT","imageURL":"https://github.com/dewanshDT.png","key":"dewanshDT","page":null},"dr0nn1":{"name":"Petter Dr\xf8nnen","alias":"dr0nn1","url":"https://github.com/dr0nn1","imageURL":"https://github.com/dr0nn1.png","key":"dr0nn1","page":null},"kagankan":{"name":"Kagan","alias":"kagankan","url":"https://github.com/kagankan","imageURL":"https://github.com/kagankan.png","key":"kagankan","page":null},"pReya":{"name":"Moritz St\xfcckler","alias":"pReya","url":"https://github.com/pReya","imageURL":"https://github.com/pReya.png","key":"pReya","page":null},"tannerdolby":{"name":"Tanner Dolby","alias":"tannerdolby","url":"https://github.com/tannerdolby","imageURL":"https://github.com/tannerdolby.png","key":"tannerdolby","page":null},"trueqap":{"name":"TrueQAP","alias":"trueqap","url":"https://github.com/trueqap","imageURL":"https://github.com/trueqap.png","key":"trueqap","page":null},"Vishruta-Patil":{"name":"Vishruta Patil","alias":"Vishruta-Patil","url":"https://github.com/Vishruta-Patil","imageURL":"https://github.com/Vishruta-Patil.png","key":"Vishruta-Patil","page":null},"ZarakiKanzaki":{"name":"Davide Donadio","alias":"ZarakiKanzaki","url":"https://github.com/ZarakiKanzaki","imageURL":"https://github.com/ZarakiKanzaki.png","key":"ZarakiKanzaki","page":null},"scastiel":{"name":"S\xe9bastien Castiel","alias":"scastiel","url":"https://github.com/scastiel","imageURL":"https://github.com/scastiel.png","key":"scastiel","page":null},"0916dhkim":{"name":"Danny Kim","alias":"0916dhkim","url":"https://github.com/0916dhkim","imageURL":"https://github.com/0916dhkim.png","key":"0916dhkim","page":null},"3v0k4":{"name":"Riccardo","alias":"3v0k4","url":"https://github.com/3v0k4","imageURL":"https://github.com/3v0k4.png","key":"3v0k4","page":null},"denis-alkhelali":{"name":"Denis Al-Khelali","alias":"denis-alkhelali","url":"https://github.com/denis-alkhelali","imageURL":"https://github.com/denis-alkhelali.png","key":"denis-alkhelali","page":null},"friederbluemle":{"name":"Frieder Bluemle","alias":"friederbluemle","url":"https://github.com/friederbluemle","imageURL":"https://github.com/friederbluemle.png","key":"friederbluemle","page":null},"JoshuaKGoldberg":{"name":"Josh Goldberg","alias":"JoshuaKGoldberg","url":"https://github.com/JoshuaKGoldberg","imageURL":"https://github.com/JoshuaKGoldberg.png","key":"JoshuaKGoldberg","page":null},"lachieh":{"name":"Lachlan Heywood","alias":"lachieh","url":"https://github.com/lachieh","imageURL":"https://github.com/lachieh.png","key":"lachieh","page":null},"MatijaSi":{"name":"Matija Sirk","alias":"MatijaSi","url":"https://github.com/MatijaSi","imageURL":"https://github.com/MatijaSi.png","key":"MatijaSi","page":null},"mhnaeem":{"name":"Muhammad Hammad","alias":"mhnaeem","url":"https://github.com/mhnaeem","imageURL":"https://github.com/mhnaeem.png","key":"mhnaeem","page":null},"mturoci":{"name":"mturoci","alias":"mturoci","url":"https://github.com/mturoci","imageURL":"https://github.com/mturoci.png","key":"mturoci","page":null},"SJFCS":{"name":"\u5B8B\u9526\u4E30","alias":"SJFCS","url":"https://github.com/SJFCS","imageURL":"https://github.com/SJFCS.png","key":"SJFCS","page":null},"stnor":{"name":"Stefan Norberg","alias":"stnor","url":"https://github.com/stnor","imageURL":"https://github.com/stnor.png","key":"stnor","page":null},"Thomascogez":{"name":"Thomas.CA","alias":"Thomascogez","url":"https://github.com/Thomascogez","imageURL":"https://github.com/Thomascogez.png","key":"Thomascogez","page":null},"adnanhashmi09":{"name":"Adnan Hashmi","alias":"adnanhashmi09","url":"https://github.com/adnanhashmi09","imageURL":"https://github.com/adnanhashmi09.png","key":"adnanhashmi09","page":null},"birjj":{"name":"Johan Fagerberg","alias":"birjj","url":"https://github.com/birjj","imageURL":"https://github.com/birjj.png","key":"birjj","page":null},"e-im":{"name":"evan","alias":"e-im","url":"https://github.com/e-im","imageURL":"https://github.com/e-im.png","key":"e-im","page":null},"forgeRW":{"name":"forgeRW","alias":"forgeRW","url":"https://github.com/forgeRW","imageURL":"https://github.com/forgeRW.png","key":"forgeRW","page":null},"jeferson-sb":{"name":"Jeferson S. Brito","alias":"jeferson-sb","url":"https://github.com/jeferson-sb","imageURL":"https://github.com/jeferson-sb.png","key":"jeferson-sb","page":null},"JPeer264":{"name":"Jan Peer St\xf6cklmair","alias":"JPeer264","url":"https://github.com/JPeer264","imageURL":"https://github.com/JPeer264.png","key":"JPeer264","page":null},"LittleboyHarry":{"name":"LittleboyHarry","alias":"LittleboyHarry","url":"https://github.com/LittleboyHarry","imageURL":"https://github.com/LittleboyHarry.png","key":"LittleboyHarry","page":null},"pasora":{"name":"Masahiko Hara","alias":"pasora","url":"https://github.com/pasora","imageURL":"https://github.com/pasora.png","key":"pasora","page":null},"Pranav2612000":{"name":"Pranav Joglekar","alias":"Pranav2612000","url":"https://github.com/Pranav2612000","imageURL":"https://github.com/Pranav2612000.png","key":"Pranav2612000","page":null},"ramazansancar":{"name":"Ramazan SANCAR","alias":"ramazansancar","url":"https://github.com/ramazansancar","imageURL":"https://github.com/ramazansancar.png","key":"ramazansancar","page":null},"shanpriyan":{"name":"Shanmughapriyan S","alias":"shanpriyan","url":"https://github.com/shanpriyan","imageURL":"https://github.com/shanpriyan.png","key":"shanpriyan","page":null},"sjwall":{"name":"Sam Wall","alias":"sjwall","url":"https://github.com/sjwall","imageURL":"https://github.com/sjwall.png","key":"sjwall","page":null},"Xabilahu":{"name":"Xabier Lahuerta Vazquez","alias":"Xabilahu","url":"https://github.com/Xabilahu","imageURL":"https://github.com/Xabilahu.png","key":"Xabilahu","page":null},"adventure-yunfei":{"name":"adventure-yunfei","alias":"adventure-yunfei","url":"https://github.com/adventure-yunfei","imageURL":"https://github.com/adventure-yunfei.png","key":"adventure-yunfei","page":null},"b-ovsepian":{"name":"Bagdasar Ovsepyan","alias":"b-ovsepian","url":"https://github.com/b-ovsepian","imageURL":"https://github.com/b-ovsepian.png","key":"b-ovsepian","page":null},"datlechin":{"name":"Ng\xf4 Qu\u1ED1c \u0110\u1EA1t","alias":"datlechin","url":"https://github.com/datlechin","imageURL":"https://github.com/datlechin.png","key":"datlechin","page":null},"Kosai106":{"name":"Kevin \xd8sterkilde","alias":"Kosai106","url":"https://github.com/Kosai106","imageURL":"https://github.com/Kosai106.png","key":"Kosai106","page":null},"mdubus":{"name":"Morgane Dubus","alias":"mdubus","url":"https://github.com/mdubus","imageURL":"https://github.com/mdubus.png","key":"mdubus","page":null},"whiteand":{"name":"whiteand","alias":"whiteand","url":"https://github.com/whiteand","imageURL":"https://github.com/whiteand.png","key":"whiteand","page":null},"YoniChechik":{"name":"Yoni Chechik","alias":"YoniChechik","url":"https://github.com/YoniChechik","imageURL":"https://github.com/YoniChechik.png","key":"YoniChechik","page":null},"yzhe819":{"name":"yzhe819","alias":"yzhe819","url":"https://github.com/yzhe819","imageURL":"https://github.com/yzhe819.png","key":"yzhe819","page":null},"DigiPie":{"name":"Evan","alias":"DigiPie","url":"https://github.com/DigiPie","imageURL":"https://github.com/DigiPie.png","key":"DigiPie","page":null},"Gary50613":{"name":"\u51F1\u6069 Kane","alias":"Gary50613","url":"https://github.com/Gary50613","imageURL":"https://github.com/Gary50613.png","key":"Gary50613","page":null},"ghostsquad":{"name":"Wes McNamee","alias":"ghostsquad","url":"https://github.com/ghostsquad","imageURL":"https://github.com/ghostsquad.png","key":"ghostsquad","page":null},"jeffreyaven":{"name":"Jeffrey Aven","alias":"jeffreyaven","url":"https://github.com/jeffreyaven","imageURL":"https://github.com/jeffreyaven.png","key":"jeffreyaven","page":null},"LichLord91":{"name":"LichLord91","alias":"LichLord91","url":"https://github.com/LichLord91","imageURL":"https://github.com/LichLord91.png","key":"LichLord91","page":null},"RoiArthurB":{"name":"Arthur Brugi\xe8re","alias":"RoiArthurB","url":"https://github.com/RoiArthurB","imageURL":"https://github.com/RoiArthurB.png","key":"RoiArthurB","page":null},"treoden":{"name":"The Nguyen","alias":"treoden","url":"https://github.com/treoden","imageURL":"https://github.com/treoden.png","key":"treoden","page":null},"201flaviosilva":{"name":"Fl\xe1vio Silva","alias":"201flaviosilva","url":"https://github.com/201flaviosilva","imageURL":"https://github.com/201flaviosilva.png","key":"201flaviosilva","page":null},"7Wate":{"name":"7Wate","alias":"7Wate","url":"https://github.com/7Wate","imageURL":"https://github.com/7Wate.png","key":"7Wate","page":null},"AkagiYui":{"name":"\u8D64\u57CE\u7ED3\u8863","alias":"AkagiYui","url":"https://github.com/AkagiYui","imageURL":"https://github.com/AkagiYui.png","key":"AkagiYui","page":null},"alewolf":{"name":"alewolf","alias":"alewolf","url":"https://github.com/alewolf","imageURL":"https://github.com/alewolf.png","key":"alewolf","page":null},"alexandernst":{"name":"Alexander Nestorov","alias":"alexandernst","url":"https://github.com/alexandernst","imageURL":"https://github.com/alexandernst.png","key":"alexandernst","page":null},"Altomy":{"name":"Ahmed Altomy","alias":"Altomy","url":"https://github.com/Altomy","imageURL":"https://github.com/Altomy.png","key":"Altomy","page":null},"bcabanes":{"name":"Benjamin Cabanes","alias":"bcabanes","url":"https://github.com/bcabanes","imageURL":"https://github.com/bcabanes.png","key":"bcabanes","page":null},"BenDMyers":{"name":"Ben Myers","alias":"BenDMyers","url":"https://github.com/BenDMyers","imageURL":"https://github.com/BenDMyers.png","key":"BenDMyers","page":null},"Boulet-":{"name":"Boulet","alias":"Boulet-","url":"https://github.com/Boulet-","imageURL":"https://github.com/Boulet-.png","key":"Boulet-","page":null},"cbebe":{"name":"Charles Ancheta","alias":"cbebe","url":"https://github.com/cbebe","imageURL":"https://github.com/cbebe.png","key":"cbebe","page":null},"clemiee":{"name":"Clemie McCartney","alias":"clemiee","url":"https://github.com/clemiee","imageURL":"https://github.com/clemiee.png","key":"clemiee","page":null},"DharsanB":{"name":"Dharsan B","alias":"DharsanB","url":"https://github.com/DharsanB","imageURL":"https://github.com/DharsanB.png","key":"DharsanB","page":null},"dht":{"name":"dht","alias":"dht","url":"https://github.com/dht","imageURL":"https://github.com/dht.png","key":"dht","page":null},"difranca":{"name":"Diego Fran\xe7a","alias":"difranca","url":"https://github.com/difranca","imageURL":"https://github.com/difranca.png","key":"difranca","page":null},"dpang314":{"name":"dpang314","alias":"dpang314","url":"https://github.com/dpang314","imageURL":"https://github.com/dpang314.png","key":"dpang314","page":null},"emattia":{"name":"emattia","alias":"emattia","url":"https://github.com/emattia","imageURL":"https://github.com/emattia.png","key":"emattia","page":null},"HyunseungLee-Travis":{"name":"Hyunseung Lee","alias":"HyunseungLee-Travis","url":"https://github.com/HyunseungLee-Travis","imageURL":"https://github.com/HyunseungLee-Travis.png","key":"HyunseungLee-Travis","page":null},"JeremyDolle":{"name":"DOLLE","alias":"JeremyDolle","url":"https://github.com/JeremyDolle","imageURL":"https://github.com/JeremyDolle.png","key":"JeremyDolle","page":null},"johnie":{"name":"Johnie Hjelm","alias":"johnie","url":"https://github.com/johnie","imageURL":"https://github.com/johnie.png","key":"johnie","page":null},"jpdriver":{"name":"JP","alias":"jpdriver","url":"https://github.com/jpdriver","imageURL":"https://github.com/jpdriver.png","key":"jpdriver","page":null},"jqshuv":{"name":"Joshua Schmitt","alias":"jqshuv","url":"https://github.com/jqshuv","imageURL":"https://github.com/jqshuv.png","key":"jqshuv","page":null},"kursatsmsek":{"name":"K\xfcr\u015Fat \u015Eim\u015Fek","alias":"kursatsmsek","url":"https://github.com/kursatsmsek","imageURL":"https://github.com/kursatsmsek.png","key":"kursatsmsek","page":null},"matkoch":{"name":"Matthias Koch","alias":"matkoch","url":"https://github.com/matkoch","imageURL":"https://github.com/matkoch.png","key":"matkoch","page":null},"metal-young":{"name":"\u674E\u5C0F\u96E8","alias":"metal-young","url":"https://github.com/metal-young","imageURL":"https://github.com/metal-young.png","key":"metal-young","page":null},"pincman":{"name":"pincman","alias":"pincman","url":"https://github.com/pincman","imageURL":"https://github.com/pincman.png","key":"pincman","page":null},"redcamel":{"name":"Redcamel","alias":"redcamel","url":"https://github.com/redcamel","imageURL":"https://github.com/redcamel.png","key":"redcamel","page":null},"reinvanhaaren":{"name":"Rein van Haaren","alias":"reinvanhaaren","url":"https://github.com/reinvanhaaren","imageURL":"https://github.com/reinvanhaaren.png","key":"reinvanhaaren","page":null},"RudraSen2":{"name":"Rudra Sen","alias":"RudraSen2","url":"https://github.com/RudraSen2","imageURL":"https://github.com/RudraSen2.png","key":"RudraSen2","page":null},"sado0823":{"name":"sado","alias":"sado0823","url":"https://github.com/sado0823","imageURL":"https://github.com/sado0823.png","key":"sado0823","page":null},"saosangmo":{"name":"Dzung Do","alias":"saosangmo","url":"https://github.com/saosangmo","imageURL":"https://github.com/saosangmo.png","key":"saosangmo","page":null},"scopsy":{"name":"Dima Grossman","alias":"scopsy","url":"https://github.com/scopsy","imageURL":"https://github.com/scopsy.png","key":"scopsy","page":null},"SheetJSDev":{"name":"SheetJSDev","alias":"SheetJSDev","url":"https://github.com/SheetJSDev","imageURL":"https://github.com/SheetJSDev.png","key":"SheetJSDev","page":null},"sigwinch28":{"name":"Joe Harrison","alias":"sigwinch28","url":"https://github.com/sigwinch28","imageURL":"https://github.com/sigwinch28.png","key":"sigwinch28","page":null},"Smilefounder":{"name":"Huy Nguyen","alias":"Smilefounder","url":"https://github.com/Smilefounder","imageURL":"https://github.com/Smilefounder.png","key":"Smilefounder","page":null},"sserrata":{"name":"Steven Serrata","alias":"sserrata","url":"https://github.com/sserrata","imageURL":"https://github.com/sserrata.png","key":"sserrata","page":null},"szilarddoro":{"name":"Szil\xe1rd D\xf3r\xf3","alias":"szilarddoro","url":"https://github.com/szilarddoro","imageURL":"https://github.com/szilarddoro.png","key":"szilarddoro","page":null},"vannyle":{"name":"Le Thi Van","alias":"vannyle","url":"https://github.com/vannyle","imageURL":"https://github.com/vannyle.png","key":"vannyle","page":null},"zpao":{"name":"Paul O\u2019Shannessy","alias":"zpao","url":"https://github.com/zpao","imageURL":"https://github.com/zpao.png","key":"zpao","page":null},"BenDz":{"name":"Benjamin Diolez","alias":"BenDz","url":"https://github.com/BenDz","imageURL":"https://github.com/BenDz.png","key":"BenDz","page":null},"charleskorn":{"name":"Charles Korn","alias":"charleskorn","url":"https://github.com/charleskorn","imageURL":"https://github.com/charleskorn.png","key":"charleskorn","page":null},"Designatory":{"name":"Designatory","alias":"Designatory","url":"https://github.com/Designatory","imageURL":"https://github.com/Designatory.png","key":"Designatory","page":null},"ggicci":{"name":"Ggicci","alias":"ggicci","url":"https://github.com/ggicci","imageURL":"https://github.com/ggicci.png","key":"ggicci","page":null},"jrmyw92":{"name":"Jeremy","alias":"jrmyw92","url":"https://github.com/jrmyw92","imageURL":"https://github.com/jrmyw92.png","key":"jrmyw92","page":null},"junjieweb":{"name":"Junjie","alias":"junjieweb","url":"https://github.com/junjieweb","imageURL":"https://github.com/junjieweb.png","key":"junjieweb","page":null},"massoudmaboudi":{"name":"Massoud Maboudi","alias":"massoudmaboudi","url":"https://github.com/massoudmaboudi","imageURL":"https://github.com/massoudmaboudi.png","key":"massoudmaboudi","page":null},"Messiahhh":{"name":"Akara","alias":"Messiahhh","url":"https://github.com/Messiahhh","imageURL":"https://github.com/Messiahhh.png","key":"Messiahhh","page":null},"mhughes2k":{"name":"Michael Hughes","alias":"mhughes2k","url":"https://github.com/mhughes2k","imageURL":"https://github.com/mhughes2k.png","key":"mhughes2k","page":null},"nitya":{"name":"Nitya Narasimhan","alias":"nitya","url":"https://github.com/nitya","imageURL":"https://github.com/nitya.png","key":"nitya","page":null},"pranabdas":{"name":"Pranab Das","alias":"pranabdas","url":"https://github.com/pranabdas","imageURL":"https://github.com/pranabdas.png","key":"pranabdas","page":null},"RuiAAPeres":{"name":"Rui Peres","alias":"RuiAAPeres","url":"https://github.com/RuiAAPeres","imageURL":"https://github.com/RuiAAPeres.png","key":"RuiAAPeres","page":null},"Zamiell":{"name":"James","alias":"Zamiell","url":"https://github.com/Zamiell","imageURL":"https://github.com/Zamiell.png","key":"Zamiell","page":null},"pepopowitz":{"name":"Steven Hicks","alias":"pepopowitz","url":"https://github.com/pepopowitz","imageURL":"https://github.com/pepopowitz.png","key":"pepopowitz","page":null},"RDIL":{"name":"Reece Dunham","alias":"RDIL","url":"https://github.com/RDIL","imageURL":"https://github.com/RDIL.png","key":"RDIL","page":null},"sgromkov":{"name":"Sergey Gromkov","alias":"sgromkov","url":"https://github.com/sgromkov","imageURL":"https://github.com/sgromkov.png","key":"sgromkov","page":null},"aerovulpe":{"name":"Aaron Nwabuoku","alias":"aerovulpe","url":"https://github.com/aerovulpe","imageURL":"https://github.com/aerovulpe.png","key":"aerovulpe","page":null},"AkiraVoid":{"name":"AkiraVoid","alias":"AkiraVoid","url":"https://github.com/AkiraVoid","imageURL":"https://github.com/AkiraVoid.png","key":"AkiraVoid","page":null},"AntonPalmqvist":{"name":"apq","alias":"AntonPalmqvist","url":"https://github.com/AntonPalmqvist","imageURL":"https://github.com/AntonPalmqvist.png","key":"AntonPalmqvist","page":null},"ApsarasX":{"name":"ApsarasX","alias":"ApsarasX","url":"https://github.com/ApsarasX","imageURL":"https://github.com/ApsarasX.png","key":"ApsarasX","page":null},"chelproc":{"name":"chelproc","alias":"chelproc","url":"https://github.com/chelproc","imageURL":"https://github.com/chelproc.png","key":"chelproc","page":null},"chernodub":{"name":"Viktor Chernodub","alias":"chernodub","url":"https://github.com/chernodub","imageURL":"https://github.com/chernodub.png","key":"chernodub","page":null},"CuratorCat":{"name":"curatorcat.pcc.eth","alias":"CuratorCat","url":"https://github.com/CuratorCat","imageURL":"https://github.com/CuratorCat.png","key":"CuratorCat","page":null},"cwen0":{"name":"Cwen Yin","alias":"cwen0","url":"https://github.com/cwen0","imageURL":"https://github.com/cwen0.png","key":"cwen0","page":null},"cxOrz":{"name":"Fusang\u2740","alias":"cxOrz","url":"https://github.com/cxOrz","imageURL":"https://github.com/cxOrz.png","key":"cxOrz","page":null},"deiucanta":{"name":"Andrei Canta","alias":"deiucanta","url":"https://github.com/deiucanta","imageURL":"https://github.com/deiucanta.png","key":"deiucanta","page":null},"deployn":{"name":"deployn","alias":"deployn","url":"https://github.com/deployn","imageURL":"https://github.com/deployn.png","key":"deployn","page":null},"dr-ngubo":{"name":"Chinazaekpere Ngubo","alias":"dr-ngubo","url":"https://github.com/dr-ngubo","imageURL":"https://github.com/dr-ngubo.png","key":"dr-ngubo","page":null},"duanwilliam":{"name":"duanwilliam","alias":"duanwilliam","url":"https://github.com/duanwilliam","imageURL":"https://github.com/duanwilliam.png","key":"duanwilliam","page":null},"elias-pap":{"name":"Elias Papavasileiou","alias":"elias-pap","url":"https://github.com/elias-pap","imageURL":"https://github.com/elias-pap.png","key":"elias-pap","page":null},"imsingh":{"name":"Indermohan Singh","alias":"imsingh","url":"https://github.com/imsingh","imageURL":"https://github.com/imsingh.png","key":"imsingh","page":null},"JohnnyMcWeed":{"name":"JMW","alias":"JohnnyMcWeed","url":"https://github.com/JohnnyMcWeed","imageURL":"https://github.com/JohnnyMcWeed.png","key":"JohnnyMcWeed","page":null},"kaycebasques":{"name":"Kayce Basques","alias":"kaycebasques","url":"https://github.com/kaycebasques","imageURL":"https://github.com/kaycebasques.png","key":"kaycebasques","page":null},"kgolubic":{"name":"kgolubic","alias":"kgolubic","url":"https://github.com/kgolubic","imageURL":"https://github.com/kgolubic.png","key":"kgolubic","page":null},"layerzzzio":{"name":"loic","alias":"layerzzzio","url":"https://github.com/layerzzzio","imageURL":"https://github.com/layerzzzio.png","key":"layerzzzio","page":null},"leedom92":{"name":"Leedom","alias":"leedom92","url":"https://github.com/leedom92","imageURL":"https://github.com/leedom92.png","key":"leedom92","page":null},"LeviticusMB":{"name":"Martin Blom","alias":"LeviticusMB","url":"https://github.com/LeviticusMB","imageURL":"https://github.com/LeviticusMB.png","key":"LeviticusMB","page":null},"lukasbach":{"name":"Lukas Bach","alias":"lukasbach","url":"https://github.com/lukasbach","imageURL":"https://github.com/lukasbach.png","key":"lukasbach","page":null},"mjau-mjau":{"name":"Karl Ward","alias":"mjau-mjau","url":"https://github.com/mjau-mjau","imageURL":"https://github.com/mjau-mjau.png","key":"mjau-mjau","page":null},"mxhdx":{"name":"mehdim","alias":"mxhdx","url":"https://github.com/mxhdx","imageURL":"https://github.com/mxhdx.png","key":"mxhdx","page":null},"nartc":{"name":"Chau Tran","alias":"nartc","url":"https://github.com/nartc","imageURL":"https://github.com/nartc.png","key":"nartc","page":null},"naveensrinivasan":{"name":"Naveen","alias":"naveensrinivasan","url":"https://github.com/naveensrinivasan","imageURL":"https://github.com/naveensrinivasan.png","key":"naveensrinivasan","page":null},"pcordon":{"name":"Pablo Cordon","alias":"pcordon","url":"https://github.com/pcordon","imageURL":"https://github.com/pcordon.png","key":"pcordon","page":null},"phryneas":{"name":"Lenz Weber-Tronic","alias":"phryneas","url":"https://github.com/phryneas","imageURL":"https://github.com/phryneas.png","key":"phryneas","page":null},"Pierre-Gilles":{"name":"Pierre-Gilles Leymarie","alias":"Pierre-Gilles","url":"https://github.com/Pierre-Gilles","imageURL":"https://github.com/Pierre-Gilles.png","key":"Pierre-Gilles","page":null},"redhat123456":{"name":"redhat123456","alias":"redhat123456","url":"https://github.com/redhat123456","imageURL":"https://github.com/redhat123456.png","key":"redhat123456","page":null},"rev4324":{"name":"rev","alias":"rev4324","url":"https://github.com/rev4324","imageURL":"https://github.com/rev4324.png","key":"rev4324","page":null},"sandypockets":{"name":"Zac A","alias":"sandypockets","url":"https://github.com/sandypockets","imageURL":"https://github.com/sandypockets.png","key":"sandypockets","page":null},"shczhen":{"name":"czhen","alias":"shczhen","url":"https://github.com/shczhen","imageURL":"https://github.com/shczhen.png","key":"shczhen","page":null},"sulu5890":{"name":"Evan","alias":"sulu5890","url":"https://github.com/sulu5890","imageURL":"https://github.com/sulu5890.png","key":"sulu5890","page":null},"surendran82":{"name":"surendran82","alias":"surendran82","url":"https://github.com/surendran82","imageURL":"https://github.com/surendran82.png","key":"surendran82","page":null},"svix-ken":{"name":"svix-ken","alias":"svix-ken","url":"https://github.com/svix-ken","imageURL":"https://github.com/svix-ken.png","key":"svix-ken","page":null},"zzzhangqi":{"name":"Qi Zhang","alias":"zzzhangqi","url":"https://github.com/zzzhangqi","imageURL":"https://github.com/zzzhangqi.png","key":"zzzhangqi","page":null},"afonsojramos":{"name":"Afonso Jorge Ramos","alias":"afonsojramos","url":"https://github.com/afonsojramos","imageURL":"https://github.com/afonsojramos.png","key":"afonsojramos","page":null},"alefesta":{"name":"Alessandro Festa","alias":"alefesta","url":"https://github.com/alefesta","imageURL":"https://github.com/alefesta.png","key":"alefesta","page":null},"aloisklink":{"name":"Alois Klink","alias":"aloisklink","url":"https://github.com/aloisklink","imageURL":"https://github.com/aloisklink.png","key":"aloisklink","page":null},"arifszn":{"name":"Ariful Alam","alias":"arifszn","url":"https://github.com/arifszn","imageURL":"https://github.com/arifszn.png","key":"arifszn","page":null},"dragomano":{"name":"Bugo","alias":"dragomano","url":"https://github.com/dragomano","imageURL":"https://github.com/dragomano.png","key":"dragomano","page":null},"felipecrs":{"name":"Felipe Santos","alias":"felipecrs","url":"https://github.com/felipecrs","imageURL":"https://github.com/felipecrs.png","key":"felipecrs","page":null},"hand-dot":{"name":"Kyohei Fukuda","alias":"hand-dot","url":"https://github.com/hand-dot","imageURL":"https://github.com/hand-dot.png","key":"hand-dot","page":null},"heowc":{"name":"WonChul Heo","alias":"heowc","url":"https://github.com/heowc","imageURL":"https://github.com/heowc.png","key":"heowc","page":null},"jadonn":{"name":"Jadon N","alias":"jadonn","url":"https://github.com/jadonn","imageURL":"https://github.com/jadonn.png","key":"jadonn","page":null},"jrvidal":{"name":"Roberto Vidal","alias":"jrvidal","url":"https://github.com/jrvidal","imageURL":"https://github.com/jrvidal.png","key":"jrvidal","page":null},"moonrailgun":{"name":"moonrailgun","alias":"moonrailgun","url":"https://github.com/moonrailgun","imageURL":"https://github.com/moonrailgun.png","key":"moonrailgun","page":null},"nathan-contino-mongo":{"name":"nate contino","alias":"nathan-contino-mongo","url":"https://github.com/nathan-contino-mongo","imageURL":"https://github.com/nathan-contino-mongo.png","key":"nathan-contino-mongo","page":null},"odarpi":{"name":"Odarpi","alias":"odarpi","url":"https://github.com/odarpi","imageURL":"https://github.com/odarpi.png","key":"odarpi","page":null},"PatelN123":{"name":"Nayan Patel","alias":"PatelN123","url":"https://github.com/PatelN123","imageURL":"https://github.com/PatelN123.png","key":"PatelN123","page":null},"pkowaluk":{"name":"Pawel Kowaluk","alias":"pkowaluk","url":"https://github.com/pkowaluk","imageURL":"https://github.com/pkowaluk.png","key":"pkowaluk","page":null},"rccttwd":{"name":"Tsz W. TAM","alias":"rccttwd","url":"https://github.com/rccttwd","imageURL":"https://github.com/rccttwd.png","key":"rccttwd","page":null},"samgutentag":{"name":"Sam Gutentag","alias":"samgutentag","url":"https://github.com/samgutentag","imageURL":"https://github.com/samgutentag.png","key":"samgutentag","page":null},"seladb":{"name":"seladb","alias":"seladb","url":"https://github.com/seladb","imageURL":"https://github.com/seladb.png","key":"seladb","page":null},"taejs":{"name":"tae","alias":"taejs","url":"https://github.com/taejs","imageURL":"https://github.com/taejs.png","key":"taejs","page":null},"vedantmgoyal2009":{"name":"Begula","alias":"vedantmgoyal2009","url":"https://github.com/vedantmgoyal2009","imageURL":"https://github.com/vedantmgoyal2009.png","key":"vedantmgoyal2009","page":null},"yorkie":{"name":"Yorkie Liu","alias":"yorkie","url":"https://github.com/yorkie","imageURL":"https://github.com/yorkie.png","key":"yorkie","page":null},"anicholls":{"name":"Alex Nicholls","alias":"anicholls","url":"https://github.com/anicholls","imageURL":"https://github.com/anicholls.png","key":"anicholls","page":null},"dmitryvinn":{"name":"Dmitry Vinnik","alias":"dmitryvinn","url":"https://github.com/dmitryvinn","imageURL":"https://github.com/dmitryvinn.png","key":"dmitryvinn","page":null},"dstotijn":{"name":"David Stotijn","alias":"dstotijn","url":"https://github.com/dstotijn","imageURL":"https://github.com/dstotijn.png","key":"dstotijn","page":null},"vaibhavshn":{"name":"Vaibhav Shinde","alias":"vaibhavshn","url":"https://github.com/vaibhavshn","imageURL":"https://github.com/vaibhavshn.png","key":"vaibhavshn","page":null},"apidev234":{"name":"Gaurish","alias":"apidev234","url":"https://github.com/apidev234","imageURL":"https://github.com/apidev234.png","key":"apidev234","page":null},"artemkovalyov":{"name":"Artem Kovalov","alias":"artemkovalyov","url":"https://github.com/artemkovalyov","imageURL":"https://github.com/artemkovalyov.png","key":"artemkovalyov","page":null},"BigDataWriter":{"name":"BigDataWriter","alias":"BigDataWriter","url":"https://github.com/BigDataWriter","imageURL":"https://github.com/BigDataWriter.png","key":"BigDataWriter","page":null},"cdemonchy-pro":{"name":"Clement Demonchy","alias":"cdemonchy-pro","url":"https://github.com/cdemonchy-pro","imageURL":"https://github.com/cdemonchy-pro.png","key":"cdemonchy-pro","page":null},"CookieJarApps":{"name":"CookieJarApps","alias":"CookieJarApps","url":"https://github.com/CookieJarApps","imageURL":"https://github.com/CookieJarApps.png","key":"CookieJarApps","page":null},"dmitryvinn-fb":{"name":"Dmitry Vinnik | Meta","alias":"dmitryvinn-fb","url":"https://github.com/dmitryvinn-fb","imageURL":"https://github.com/dmitryvinn-fb.png","key":"dmitryvinn-fb","page":null},"ebarojas":{"name":"Everardo J. Barojas M.","alias":"ebarojas","url":"https://github.com/ebarojas","imageURL":"https://github.com/ebarojas.png","key":"ebarojas","page":null},"erickzhao":{"name":"Erick Zhao","alias":"erickzhao","url":"https://github.com/erickzhao","imageURL":"https://github.com/erickzhao.png","key":"erickzhao","page":null},"kalevski":{"name":"Daniel Kalevski","alias":"kalevski","url":"https://github.com/kalevski","imageURL":"https://github.com/kalevski.png","key":"kalevski","page":null},"kgajera":{"name":"Kishan Gajera","alias":"kgajera","url":"https://github.com/kgajera","imageURL":"https://github.com/kgajera.png","key":"kgajera","page":null},"koistya":{"name":"Konstantin Tarkus","alias":"koistya","url":"https://github.com/koistya","imageURL":"https://github.com/koistya.png","key":"koistya","page":null},"milesj":{"name":"Miles Johnson","alias":"milesj","url":"https://github.com/milesj","imageURL":"https://github.com/milesj.png","key":"milesj","page":null},"mrbrunelli":{"name":"Matheus Ricardo Brunelli","alias":"mrbrunelli","url":"https://github.com/mrbrunelli","imageURL":"https://github.com/mrbrunelli.png","key":"mrbrunelli","page":null},"NaseelNiyas":{"name":"Naseel Niyas","alias":"NaseelNiyas","url":"https://github.com/NaseelNiyas","imageURL":"https://github.com/NaseelNiyas.png","key":"NaseelNiyas","page":null},"nick-verida":{"name":"nick-verida","alias":"nick-verida","url":"https://github.com/nick-verida","imageURL":"https://github.com/nick-verida.png","key":"nick-verida","page":null},"nschonni":{"name":"Nick Schonning","alias":"nschonni","url":"https://github.com/nschonni","imageURL":"https://github.com/nschonni.png","key":"nschonni","page":null},"redhoyasa":{"name":"Muhammad Redho Ayassa","alias":"redhoyasa","url":"https://github.com/redhoyasa","imageURL":"https://github.com/redhoyasa.png","key":"redhoyasa","page":null},"Ruben-Arushanyan":{"name":"Ruben Arushanyan","alias":"Ruben-Arushanyan","url":"https://github.com/Ruben-Arushanyan","imageURL":"https://github.com/Ruben-Arushanyan.png","key":"Ruben-Arushanyan","page":null},"seyoon20087":{"name":"seyoon20087","alias":"seyoon20087","url":"https://github.com/seyoon20087","imageURL":"https://github.com/seyoon20087.png","key":"seyoon20087","page":null},"tamalweb":{"name":"Tamal Web","alias":"tamalweb","url":"https://github.com/tamalweb","imageURL":"https://github.com/tamalweb.png","key":"tamalweb","page":null},"thedanielhanke":{"name":"Daniel Hanke","alias":"thedanielhanke","url":"https://github.com/thedanielhanke","imageURL":"https://github.com/thedanielhanke.png","key":"thedanielhanke","page":null},"toto6038":{"name":"toto6038","alias":"toto6038","url":"https://github.com/toto6038","imageURL":"https://github.com/toto6038.png","key":"toto6038","page":null},"vidarc":{"name":"Matthew Ailes","alias":"vidarc","url":"https://github.com/vidarc","imageURL":"https://github.com/vidarc.png","key":"vidarc","page":null},"winterlood":{"name":"\uC774\uC815\uD658","alias":"winterlood","url":"https://github.com/winterlood","imageURL":"https://github.com/winterlood.png","key":"winterlood","page":null},"abahmed":{"name":"Abdelrahman Ahmed","alias":"abahmed","url":"https://github.com/abahmed","imageURL":"https://github.com/abahmed.png","key":"abahmed","page":null},"ajrice6713":{"name":"AJ Rice","alias":"ajrice6713","url":"https://github.com/ajrice6713","imageURL":"https://github.com/ajrice6713.png","key":"ajrice6713","page":null},"alexgrigoras":{"name":"Alexandru Grigoras","alias":"alexgrigoras","url":"https://github.com/alexgrigoras","imageURL":"https://github.com/alexgrigoras.png","key":"alexgrigoras","page":null},"alias-mac":{"name":"Filipe Guerra","alias":"alias-mac","url":"https://github.com/alias-mac","imageURL":"https://github.com/alias-mac.png","key":"alias-mac","page":null},"amir2mi":{"name":"Amir M. Mohamadi","alias":"amir2mi","url":"https://github.com/amir2mi","imageURL":"https://github.com/amir2mi.png","key":"amir2mi","page":null},"antmcc49":{"name":"Anthony McCaigue","alias":"antmcc49","url":"https://github.com/antmcc49","imageURL":"https://github.com/antmcc49.png","key":"antmcc49","page":null},"brendannee":{"name":"Brendan Nee","alias":"brendannee","url":"https://github.com/brendannee","imageURL":"https://github.com/brendannee.png","key":"brendannee","page":null},"cerkiewny":{"name":"Devtato","alias":"cerkiewny","url":"https://github.com/cerkiewny","imageURL":"https://github.com/cerkiewny.png","key":"cerkiewny","page":null},"davidebianchi":{"name":"Davide Bianchi","alias":"davidebianchi","url":"https://github.com/davidebianchi","imageURL":"https://github.com/davidebianchi.png","key":"davidebianchi","page":null},"edouardb":{"name":"Edouard Bonlieu","alias":"edouardb","url":"https://github.com/edouardb","imageURL":"https://github.com/edouardb.png","key":"edouardb","page":null},"FeodorFitsner":{"name":"Feodor Fitsner","alias":"FeodorFitsner","url":"https://github.com/FeodorFitsner","imageURL":"https://github.com/FeodorFitsner.png","key":"FeodorFitsner","page":null},"HiChen404":{"name":"Chen","alias":"HiChen404","url":"https://github.com/HiChen404","imageURL":"https://github.com/HiChen404.png","key":"HiChen404","page":null},"josephriosIO":{"name":"Joseph","alias":"josephriosIO","url":"https://github.com/josephriosIO","imageURL":"https://github.com/josephriosIO.png","key":"josephriosIO","page":null},"jwitz":{"name":"Jake Witz","alias":"jwitz","url":"https://github.com/jwitz","imageURL":"https://github.com/jwitz.png","key":"jwitz","page":null},"kaustubhk24":{"name":"Kaustubh Kulkarni","alias":"kaustubhk24","url":"https://github.com/kaustubhk24","imageURL":"https://github.com/kaustubhk24.png","key":"kaustubhk24","page":null},"kuizuo":{"name":"kuizuo","alias":"kuizuo","url":"https://github.com/kuizuo","imageURL":"https://github.com/kuizuo.png","key":"kuizuo","page":null},"lmpham1":{"name":"Minh Pham","alias":"lmpham1","url":"https://github.com/lmpham1","imageURL":"https://github.com/lmpham1.png","key":"lmpham1","page":null},"ltm":{"name":"Lars Mikkelsen","alias":"ltm","url":"https://github.com/ltm","imageURL":"https://github.com/ltm.png","key":"ltm","page":null},"megasanjay":{"name":"Sanjay Soundarajan","alias":"megasanjay","url":"https://github.com/megasanjay","imageURL":"https://github.com/megasanjay.png","key":"megasanjay","page":null},"MorookaKotaro":{"name":"Morooka Kotaro","alias":"MorookaKotaro","url":"https://github.com/MorookaKotaro","imageURL":"https://github.com/MorookaKotaro.png","key":"MorookaKotaro","page":null},"noomorph":{"name":"Yaroslav Serhieiev","alias":"noomorph","url":"https://github.com/noomorph","imageURL":"https://github.com/noomorph.png","key":"noomorph","page":null},"omeraplak":{"name":"\xd6mer Faruk APLAK","alias":"omeraplak","url":"https://github.com/omeraplak","imageURL":"https://github.com/omeraplak.png","key":"omeraplak","page":null},"rishi-raj-jain":{"name":"Rishi Raj Jain","alias":"rishi-raj-jain","url":"https://github.com/rishi-raj-jain","imageURL":"https://github.com/rishi-raj-jain.png","key":"rishi-raj-jain","page":null},"roydukkey":{"name":"roydukkey","alias":"roydukkey","url":"https://github.com/roydukkey","imageURL":"https://github.com/roydukkey.png","key":"roydukkey","page":null},"ruanqizhen":{"name":"ruanqizhen","alias":"ruanqizhen","url":"https://github.com/ruanqizhen","imageURL":"https://github.com/ruanqizhen.png","key":"ruanqizhen","page":null},"sgenoud":{"name":"sgenoud","alias":"sgenoud","url":"https://github.com/sgenoud","imageURL":"https://github.com/sgenoud.png","key":"sgenoud","page":null},"tapanchudasama":{"name":"Tapan Chudasama","alias":"tapanchudasama","url":"https://github.com/tapanchudasama","imageURL":"https://github.com/tapanchudasama.png","key":"tapanchudasama","page":null},"vandreleal":{"name":"Vandr\xe9 Leal","alias":"vandreleal","url":"https://github.com/vandreleal","imageURL":"https://github.com/vandreleal.png","key":"vandreleal","page":null},"wood3n":{"name":"wood3n","alias":"wood3n","url":"https://github.com/wood3n","imageURL":"https://github.com/wood3n.png","key":"wood3n","page":null},"christopherklint97":{"name":"Christopher Klint","alias":"christopherklint97","url":"https://github.com/christopherklint97","imageURL":"https://github.com/christopherklint97.png","key":"christopherklint97","page":null},"cmpadden":{"name":"colton","alias":"cmpadden","url":"https://github.com/cmpadden","imageURL":"https://github.com/cmpadden.png","key":"cmpadden","page":null},"Drylozu":{"name":"Drylozu","alias":"Drylozu","url":"https://github.com/Drylozu","imageURL":"https://github.com/Drylozu.png","key":"Drylozu","page":null},"favna":{"name":"Jeroen Claassens","alias":"favna","url":"https://github.com/favna","imageURL":"https://github.com/favna.png","key":"favna","page":null},"HarshCasper":{"name":"Harsh Mishra","alias":"HarshCasper","url":"https://github.com/HarshCasper","imageURL":"https://github.com/HarshCasper.png","key":"HarshCasper","page":null},"himanshu007-creator":{"name":"Himanshu","alias":"himanshu007-creator","url":"https://github.com/himanshu007-creator","imageURL":"https://github.com/himanshu007-creator.png","key":"himanshu007-creator","page":null},"merceyz":{"name":"Kristoffer K.","alias":"merceyz","url":"https://github.com/merceyz","imageURL":"https://github.com/merceyz.png","key":"merceyz","page":null},"notzheng":{"name":"\u4E0D\u90D1","alias":"notzheng","url":"https://github.com/notzheng","imageURL":"https://github.com/notzheng.png","key":"notzheng","page":null},"wewoor":{"name":"Ziv","alias":"wewoor","url":"https://github.com/wewoor","imageURL":"https://github.com/wewoor.png","key":"wewoor","page":null},"withshubh":{"name":"Shubhendra Singh Chauhan","alias":"withshubh","url":"https://github.com/withshubh","imageURL":"https://github.com/withshubh.png","key":"withshubh","page":null},"wowtvds":{"name":"Wout Vandesompele","alias":"wowtvds","url":"https://github.com/wowtvds","imageURL":"https://github.com/wowtvds.png","key":"wowtvds","page":null},"afshinm":{"name":"Afshin Mehrabani","alias":"afshinm","url":"https://github.com/afshinm","imageURL":"https://github.com/afshinm.png","key":"afshinm","page":null},"agrawal-rohit":{"name":"Rohit Agrawal","alias":"agrawal-rohit","url":"https://github.com/agrawal-rohit","imageURL":"https://github.com/agrawal-rohit.png","key":"agrawal-rohit","page":null},"cchaudier":{"name":"Christophe Chaudier","alias":"cchaudier","url":"https://github.com/cchaudier","imageURL":"https://github.com/cchaudier.png","key":"cchaudier","page":null},"chimailo":{"name":"chima ilo","alias":"chimailo","url":"https://github.com/chimailo","imageURL":"https://github.com/chimailo.png","key":"chimailo","page":null},"dexbiobot":{"name":"Shoaib Sajid","alias":"dexbiobot","url":"https://github.com/dexbiobot","imageURL":"https://github.com/dexbiobot.png","key":"dexbiobot","page":null},"dsmmcken":{"name":"Don","alias":"dsmmcken","url":"https://github.com/dsmmcken","imageURL":"https://github.com/dsmmcken.png","key":"dsmmcken","page":null},"fishmandev":{"name":"Dmitriy Fishman","alias":"fishmandev","url":"https://github.com/fishmandev","imageURL":"https://github.com/fishmandev.png","key":"fishmandev","page":null},"fsmaia":{"name":"Fernando Maia","alias":"fsmaia","url":"https://github.com/fsmaia","imageURL":"https://github.com/fsmaia.png","key":"fsmaia","page":null},"hbulens":{"name":"Hendrik Bulens","alias":"hbulens","url":"https://github.com/hbulens","imageURL":"https://github.com/hbulens.png","key":"hbulens","page":null},"HemantSachdeva":{"name":"Hemant Sachdeva","alias":"HemantSachdeva","url":"https://github.com/HemantSachdeva","imageURL":"https://github.com/HemantSachdeva.png","key":"HemantSachdeva","page":null},"JararvisQ":{"name":"Jarar","alias":"JararvisQ","url":"https://github.com/JararvisQ","imageURL":"https://github.com/JararvisQ.png","key":"JararvisQ","page":null},"jeffski":{"name":"Jeff Shillitto","alias":"jeffski","url":"https://github.com/jeffski","imageURL":"https://github.com/jeffski.png","key":"jeffski","page":null},"juffalow":{"name":"Matej Jellus","alias":"juffalow","url":"https://github.com/juffalow","imageURL":"https://github.com/juffalow.png","key":"juffalow","page":null},"juzhiyuan":{"name":"\u741A\u81F4\u8FDC","alias":"juzhiyuan","url":"https://github.com/juzhiyuan","imageURL":"https://github.com/juzhiyuan.png","key":"juzhiyuan","page":null},"KonstHardy":{"name":"Konstantin Popov","alias":"KonstHardy","url":"https://github.com/KonstHardy","imageURL":"https://github.com/KonstHardy.png","key":"KonstHardy","page":null},"ludofischer":{"name":"Ludovico Fischer","alias":"ludofischer","url":"https://github.com/ludofischer","imageURL":"https://github.com/ludofischer.png","key":"ludofischer","page":null},"Martinsos":{"name":"Martin \u0160o\u0161i\u0107","alias":"Martinsos","url":"https://github.com/Martinsos","imageURL":"https://github.com/Martinsos.png","key":"Martinsos","page":null},"matthijsgroen":{"name":"Matthijs Groen","alias":"matthijsgroen","url":"https://github.com/matthijsgroen","imageURL":"https://github.com/matthijsgroen.png","key":"matthijsgroen","page":null},"MisterFISHUP":{"name":"MisterFISHUP","alias":"MisterFISHUP","url":"https://github.com/MisterFISHUP","imageURL":"https://github.com/MisterFISHUP.png","key":"MisterFISHUP","page":null},"molly":{"name":"Molly White","alias":"molly","url":"https://github.com/molly","imageURL":"https://github.com/molly.png","key":"molly","page":null},"oriooctopus":{"name":"Oliver Ullman","alias":"oriooctopus","url":"https://github.com/oriooctopus","imageURL":"https://github.com/oriooctopus.png","key":"oriooctopus","page":null},"pal-sig":{"name":"pal-sig","alias":"pal-sig","url":"https://github.com/pal-sig","imageURL":"https://github.com/pal-sig.png","key":"pal-sig","page":null},"Patitotective":{"name":"Patitotective","alias":"Patitotective","url":"https://github.com/Patitotective","imageURL":"https://github.com/Patitotective.png","key":"Patitotective","page":null},"patrikmasiar":{"name":"Patrik M\xe4siar","alias":"patrikmasiar","url":"https://github.com/patrikmasiar","imageURL":"https://github.com/patrikmasiar.png","key":"patrikmasiar","page":null},"pbiggar":{"name":"Paul Biggar","alias":"pbiggar","url":"https://github.com/pbiggar","imageURL":"https://github.com/pbiggar.png","key":"pbiggar","page":null},"polarathene":{"name":"Brennan Kinney","alias":"polarathene","url":"https://github.com/polarathene","imageURL":"https://github.com/polarathene.png","key":"polarathene","page":null},"robinmetral":{"name":"Robin M\xe9tral","alias":"robinmetral","url":"https://github.com/robinmetral","imageURL":"https://github.com/robinmetral.png","key":"robinmetral","page":null},"ronnyroeller":{"name":"Ronny Roeller","alias":"ronnyroeller","url":"https://github.com/ronnyroeller","imageURL":"https://github.com/ronnyroeller.png","key":"ronnyroeller","page":null},"rootwork":{"name":"Ivan Boothe","alias":"rootwork","url":"https://github.com/rootwork","imageURL":"https://github.com/rootwork.png","key":"rootwork","page":null},"rsapkf":{"name":"Rey","alias":"rsapkf","url":"https://github.com/rsapkf","imageURL":"https://github.com/rsapkf.png","key":"rsapkf","page":null},"semoal":{"name":"Sergio Moreno","alias":"semoal","url":"https://github.com/semoal","imageURL":"https://github.com/semoal.png","key":"semoal","page":null},"shafy":{"name":"Can Olcer","alias":"shafy","url":"https://github.com/shafy","imageURL":"https://github.com/shafy.png","key":"shafy","page":null},"sivapalan":{"name":"Varun Sivapalan","alias":"sivapalan","url":"https://github.com/sivapalan","imageURL":"https://github.com/sivapalan.png","key":"sivapalan","page":null},"skoech":{"name":"Sharon Koech","alias":"skoech","url":"https://github.com/skoech","imageURL":"https://github.com/skoech.png","key":"skoech","page":null},"sohamsshah":{"name":"Soham Shah","alias":"sohamsshah","url":"https://github.com/sohamsshah","imageURL":"https://github.com/sohamsshah.png","key":"sohamsshah","page":null},"spyke01":{"name":"Paden Clayton","alias":"spyke01","url":"https://github.com/spyke01","imageURL":"https://github.com/spyke01.png","key":"spyke01","page":null},"StanKocken":{"name":"Stan Kocken","alias":"StanKocken","url":"https://github.com/StanKocken","imageURL":"https://github.com/StanKocken.png","key":"StanKocken","page":null},"swalahamani":{"name":"Swalah Amani","alias":"swalahamani","url":"https://github.com/swalahamani","imageURL":"https://github.com/swalahamani.png","key":"swalahamani","page":null},"swapnilmmane":{"name":"Swapnil M Mane","alias":"swapnilmmane","url":"https://github.com/swapnilmmane","imageURL":"https://github.com/swapnilmmane.png","key":"swapnilmmane","page":null},"wpyoga":{"name":"William Poetra Yoga","alias":"wpyoga","url":"https://github.com/wpyoga","imageURL":"https://github.com/wpyoga.png","key":"wpyoga","page":null},"AviVahl":{"name":"Avi Vahl","alias":"AviVahl","url":"https://github.com/AviVahl","imageURL":"https://github.com/AviVahl.png","key":"AviVahl","page":null},"dominikmeyersap":{"name":"Dominik Meyer","alias":"dominikmeyersap","url":"https://github.com/dominikmeyersap","imageURL":"https://github.com/dominikmeyersap.png","key":"dominikmeyersap","page":null},"gabrielfalcao":{"name":"Gabriel Falc\xe3o","alias":"gabrielfalcao","url":"https://github.com/gabrielfalcao","imageURL":"https://github.com/gabrielfalcao.png","key":"gabrielfalcao","page":null},"oscard0m":{"name":"Oscar Dominguez","alias":"oscard0m","url":"https://github.com/oscard0m","imageURL":"https://github.com/oscard0m.png","key":"oscard0m","page":null},"robbieaverill":{"name":"Robbie Averill","alias":"robbieaverill","url":"https://github.com/robbieaverill","imageURL":"https://github.com/robbieaverill.png","key":"robbieaverill","page":null},"utajum":{"name":"Vladimir Tasic","alias":"utajum","url":"https://github.com/utajum","imageURL":"https://github.com/utajum.png","key":"utajum","page":null},"wingclover":{"name":"Ying Wang","alias":"wingclover","url":"https://github.com/wingclover","imageURL":"https://github.com/wingclover.png","key":"wingclover","page":null},"ataft":{"name":"Andrew Taft","alias":"ataft","url":"https://github.com/ataft","imageURL":"https://github.com/ataft.png","key":"ataft","page":null},"canercanbaz":{"name":"Caner Canbaz","alias":"canercanbaz","url":"https://github.com/canercanbaz","imageURL":"https://github.com/canercanbaz.png","key":"canercanbaz","page":null},"DimiMikadze":{"name":"Dimi Mikadze","alias":"DimiMikadze","url":"https://github.com/DimiMikadze","imageURL":"https://github.com/DimiMikadze.png","key":"DimiMikadze","page":null},"ipavlic":{"name":"Ilija Pavlic","alias":"ipavlic","url":"https://github.com/ipavlic","imageURL":"https://github.com/ipavlic.png","key":"ipavlic","page":null},"nlfurniss":{"name":"Nathaniel Furniss","alias":"nlfurniss","url":"https://github.com/nlfurniss","imageURL":"https://github.com/nlfurniss.png","key":"nlfurniss","page":null},"philipp985":{"name":"philipp985","alias":"philipp985","url":"https://github.com/philipp985","imageURL":"https://github.com/philipp985.png","key":"philipp985","page":null},"thanasis00":{"name":"Thanasis Katsadas","alias":"thanasis00","url":"https://github.com/thanasis00","imageURL":"https://github.com/thanasis00.png","key":"thanasis00","page":null},"zxuqian":{"name":"Xuqian","alias":"zxuqian","url":"https://github.com/zxuqian","imageURL":"https://github.com/zxuqian.png","key":"zxuqian","page":null},"akajla09":{"name":"Aditya Kajla","alias":"akajla09","url":"https://github.com/akajla09","imageURL":"https://github.com/akajla09.png","key":"akajla09","page":null},"Andrewnt219":{"name":"Andrew Nguyen","alias":"Andrewnt219","url":"https://github.com/Andrewnt219","imageURL":"https://github.com/Andrewnt219.png","key":"Andrewnt219","page":null},"BattleOfPlassey":{"name":"Palash Shrivastava","alias":"BattleOfPlassey","url":"https://github.com/BattleOfPlassey","imageURL":"https://github.com/BattleOfPlassey.png","key":"BattleOfPlassey","page":null},"bmiddha":{"name":"Bharat Middha","alias":"bmiddha","url":"https://github.com/bmiddha","imageURL":"https://github.com/bmiddha.png","key":"bmiddha","page":null},"caleeli":{"name":"David Callizaya","alias":"caleeli","url":"https://github.com/caleeli","imageURL":"https://github.com/caleeli.png","key":"caleeli","page":null},"ChrisChinchilla":{"name":"Chris Chinchilla","alias":"ChrisChinchilla","url":"https://github.com/ChrisChinchilla","imageURL":"https://github.com/ChrisChinchilla.png","key":"ChrisChinchilla","page":null},"djamaile":{"name":"djamaile","alias":"djamaile","url":"https://github.com/djamaile","imageURL":"https://github.com/djamaile.png","key":"djamaile","page":null},"dr5hn":{"name":"Darshan Gada","alias":"dr5hn","url":"https://github.com/dr5hn","imageURL":"https://github.com/dr5hn.png","key":"dr5hn","page":null},"EkaterinaMozheiko":{"name":"Ekaterina Mozheiko","alias":"EkaterinaMozheiko","url":"https://github.com/EkaterinaMozheiko","imageURL":"https://github.com/EkaterinaMozheiko.png","key":"EkaterinaMozheiko","page":null},"gtnardy":{"name":"Gabriel T. Nardy","alias":"gtnardy","url":"https://github.com/gtnardy","imageURL":"https://github.com/gtnardy.png","key":"gtnardy","page":null},"headline-design":{"name":"headline-design","alias":"headline-design","url":"https://github.com/headline-design","imageURL":"https://github.com/headline-design.png","key":"headline-design","page":null},"hughlilly":{"name":"Hugh Lilly","alias":"hughlilly","url":"https://github.com/hughlilly","imageURL":"https://github.com/hughlilly.png","key":"hughlilly","page":null},"ivarconr":{"name":"Ivar Conradi \xd8sthus","alias":"ivarconr","url":"https://github.com/ivarconr","imageURL":"https://github.com/ivarconr.png","key":"ivarconr","page":null},"jasonbosco":{"name":"Jason Bosco","alias":"jasonbosco","url":"https://github.com/jasonbosco","imageURL":"https://github.com/jasonbosco.png","key":"jasonbosco","page":null},"jkhaui":{"name":"Jordan Lee","alias":"jkhaui","url":"https://github.com/jkhaui","imageURL":"https://github.com/jkhaui.png","key":"jkhaui","page":null},"kingo55":{"name":"Robert Kingston","alias":"kingo55","url":"https://github.com/kingo55","imageURL":"https://github.com/kingo55.png","key":"kingo55","page":null},"KyrietS":{"name":"Kyriet","alias":"KyrietS","url":"https://github.com/KyrietS","imageURL":"https://github.com/KyrietS.png","key":"KyrietS","page":null},"MrTechHunter":{"name":"Mahdi Hamldar","alias":"MrTechHunter","url":"https://github.com/MrTechHunter","imageURL":"https://github.com/MrTechHunter.png","key":"MrTechHunter","page":null},"ohkimur":{"name":"Daniel Costrasel","alias":"ohkimur","url":"https://github.com/ohkimur","imageURL":"https://github.com/ohkimur.png","key":"ohkimur","page":null},"printf-ana":{"name":"Ana Carolina","alias":"printf-ana","url":"https://github.com/printf-ana","imageURL":"https://github.com/printf-ana.png","key":"printf-ana","page":null},"Shrugsy":{"name":"Shrugsy","alias":"Shrugsy","url":"https://github.com/Shrugsy","imageURL":"https://github.com/Shrugsy.png","key":"Shrugsy","page":null},"sw-yx":{"name":"swyx","alias":"sw-yx","url":"https://github.com/sw-yx","imageURL":"https://github.com/sw-yx.png","key":"sw-yx","page":null},"vinckr":{"name":"Vincent","alias":"vinckr","url":"https://github.com/vinckr","imageURL":"https://github.com/vinckr.png","key":"vinckr","page":null},"Whirl21":{"name":"Whirl","alias":"Whirl21","url":"https://github.com/Whirl21","imageURL":"https://github.com/Whirl21.png","key":"Whirl21","page":null},"3alisaki":{"name":"Ali Saki","alias":"3alisaki","url":"https://github.com/3alisaki","imageURL":"https://github.com/3alisaki.png","key":"3alisaki","page":null},"antonym":{"name":"Antony Messerli","alias":"antonym","url":"https://github.com/antonym","imageURL":"https://github.com/antonym.png","key":"antonym","page":null},"farshidinanloo":{"name":"farshid","alias":"farshidinanloo","url":"https://github.com/farshidinanloo","imageURL":"https://github.com/farshidinanloo.png","key":"farshidinanloo","page":null},"oscarlorentzon":{"name":"Oscar Lorentzon","alias":"oscarlorentzon","url":"https://github.com/oscarlorentzon","imageURL":"https://github.com/oscarlorentzon.png","key":"oscarlorentzon","page":null},"rohit-gohri":{"name":"Rohit Gohri","alias":"rohit-gohri","url":"https://github.com/rohit-gohri","imageURL":"https://github.com/rohit-gohri.png","key":"rohit-gohri","page":null},"dbseal":{"name":"David Seal","alias":"dbseal","url":"https://github.com/dbseal","imageURL":"https://github.com/dbseal.png","key":"dbseal","page":null},"deepakprabhakara":{"name":"Deepak Prabhakara","alias":"deepakprabhakara","url":"https://github.com/deepakprabhakara","imageURL":"https://github.com/deepakprabhakara.png","key":"deepakprabhakara","page":null},"faloi":{"name":"Federico Aloi","alias":"faloi","url":"https://github.com/faloi","imageURL":"https://github.com/faloi.png","key":"faloi","page":null},"fouad":{"name":"Fouad Matin","alias":"fouad","url":"https://github.com/fouad","imageURL":"https://github.com/fouad.png","key":"fouad","page":null},"gulien":{"name":"Julien Neuhart","alias":"gulien","url":"https://github.com/gulien","imageURL":"https://github.com/gulien.png","key":"gulien","page":null},"hamzahamidi":{"name":"Hamza Hamidi","alias":"hamzahamidi","url":"https://github.com/hamzahamidi","imageURL":"https://github.com/hamzahamidi.png","key":"hamzahamidi","page":null},"HaochenQ":{"name":"HaochenQ","alias":"HaochenQ","url":"https://github.com/HaochenQ","imageURL":"https://github.com/HaochenQ.png","key":"HaochenQ","page":null},"incendial":{"name":"Dmitry Zhifarsky","alias":"incendial","url":"https://github.com/incendial","imageURL":"https://github.com/incendial.png","key":"incendial","page":null},"isaac-philip":{"name":"Isaac Philip","alias":"isaac-philip","url":"https://github.com/isaac-philip","imageURL":"https://github.com/isaac-philip.png","key":"isaac-philip","page":null},"jansivans":{"name":"Yan Ivan Evdokimov","alias":"jansivans","url":"https://github.com/jansivans","imageURL":"https://github.com/jansivans.png","key":"jansivans","page":null},"JonnyBurger":{"name":"Jonny Burger","alias":"JonnyBurger","url":"https://github.com/JonnyBurger","imageURL":"https://github.com/JonnyBurger.png","key":"JonnyBurger","page":null},"metmarkosaric":{"name":"Marko Saric","alias":"metmarkosaric","url":"https://github.com/metmarkosaric","imageURL":"https://github.com/metmarkosaric.png","key":"metmarkosaric","page":null},"michalsanger":{"name":"Michal S\xe4nger","alias":"michalsanger","url":"https://github.com/michalsanger","imageURL":"https://github.com/michalsanger.png","key":"michalsanger","page":null},"neaped":{"name":"Garry","alias":"neaped","url":"https://github.com/neaped","imageURL":"https://github.com/neaped.png","key":"neaped","page":null},"sparanoid":{"name":"Tunghsiao Liu","alias":"sparanoid","url":"https://github.com/sparanoid","imageURL":"https://github.com/sparanoid.png","key":"sparanoid","page":null},"wan-nyan-wan":{"name":"wan-nyan-wan","alias":"wan-nyan-wan","url":"https://github.com/wan-nyan-wan","imageURL":"https://github.com/wan-nyan-wan.png","key":"wan-nyan-wan","page":null},"antonvasilev52":{"name":"antonvasilev52","alias":"antonvasilev52","url":"https://github.com/antonvasilev52","imageURL":"https://github.com/antonvasilev52.png","key":"antonvasilev52","page":null},"arnaudjnn":{"name":"Arnaud Jeannin","alias":"arnaudjnn","url":"https://github.com/arnaudjnn","imageURL":"https://github.com/arnaudjnn.png","key":"arnaudjnn","page":null},"cmfcmf":{"name":"Christian Flach","alias":"cmfcmf","url":"https://github.com/cmfcmf","imageURL":"https://github.com/cmfcmf.png","key":"cmfcmf","page":null},"covalentbond":{"name":"Arijit Kundu","alias":"covalentbond","url":"https://github.com/covalentbond","imageURL":"https://github.com/covalentbond.png","key":"covalentbond","page":null},"davidzhao":{"name":"David Zhao","alias":"davidzhao","url":"https://github.com/davidzhao","imageURL":"https://github.com/davidzhao.png","key":"davidzhao","page":null},"dbrrt":{"name":"David Barrat","alias":"dbrrt","url":"https://github.com/dbrrt","imageURL":"https://github.com/dbrrt.png","key":"dbrrt","page":null},"dgeb":{"name":"Dan Gebhardt","alias":"dgeb","url":"https://github.com/dgeb","imageURL":"https://github.com/dgeb.png","key":"dgeb","page":null},"fmassot":{"name":"Fran\xe7ois Massot","alias":"fmassot","url":"https://github.com/fmassot","imageURL":"https://github.com/fmassot.png","key":"fmassot","page":null},"lennartkoopmann":{"name":"Lennart Koopmann","alias":"lennartkoopmann","url":"https://github.com/lennartkoopmann","imageURL":"https://github.com/lennartkoopmann.png","key":"lennartkoopmann","page":null},"marssaljr":{"name":"Mar\xe7al Junior","alias":"marssaljr","url":"https://github.com/marssaljr","imageURL":"https://github.com/marssaljr.png","key":"marssaljr","page":null},"mweststrate":{"name":"Michel Weststrate","alias":"mweststrate","url":"https://github.com/mweststrate","imageURL":"https://github.com/mweststrate.png","key":"mweststrate","page":null},"NazarStreletskyi":{"name":"Nazar","alias":"NazarStreletskyi","url":"https://github.com/NazarStreletskyi","imageURL":"https://github.com/NazarStreletskyi.png","key":"NazarStreletskyi","page":null},"nirtamir2":{"name":"nirtamir2","alias":"nirtamir2","url":"https://github.com/nirtamir2","imageURL":"https://github.com/nirtamir2.png","key":"nirtamir2","page":null},"pcho":{"name":"Przemys\u0142aw Chojecki","alias":"pcho","url":"https://github.com/pcho","imageURL":"https://github.com/pcho.png","key":"pcho","page":null},"pmuens":{"name":"Philipp Muens","alias":"pmuens","url":"https://github.com/pmuens","imageURL":"https://github.com/pmuens.png","key":"pmuens","page":null},"rluvaton":{"name":"Raz Luvaton","alias":"rluvaton","url":"https://github.com/rluvaton","imageURL":"https://github.com/rluvaton.png","key":"rluvaton","page":null},"taylorreece":{"name":"Taylor Reece","alias":"taylorreece","url":"https://github.com/taylorreece","imageURL":"https://github.com/taylorreece.png","key":"taylorreece","page":null},"tohidnateghi":{"name":"tohid nateghi","alias":"tohidnateghi","url":"https://github.com/tohidnateghi","imageURL":"https://github.com/tohidnateghi.png","key":"tohidnateghi","page":null},"wenerme":{"name":"\u9648\u6768\u6587","alias":"wenerme","url":"https://github.com/wenerme","imageURL":"https://github.com/wenerme.png","key":"wenerme","page":null},"AuHau":{"name":"Adam Uhl\xed\u0159","alias":"AuHau","url":"https://github.com/AuHau","imageURL":"https://github.com/AuHau.png","key":"AuHau","page":null},"bperlmutter":{"name":"bperlmutter","alias":"bperlmutter","url":"https://github.com/bperlmutter","imageURL":"https://github.com/bperlmutter.png","key":"bperlmutter","page":null},"dirslashls":{"name":"dirslashls","alias":"dirslashls","url":"https://github.com/dirslashls","imageURL":"https://github.com/dirslashls.png","key":"dirslashls","page":null},"iamayushdas":{"name":"Ayush das","alias":"iamayushdas","url":"https://github.com/iamayushdas","imageURL":"https://github.com/iamayushdas.png","key":"iamayushdas","page":null},"jsamr":{"name":"Jules Sam. Randolph","alias":"jsamr","url":"https://github.com/jsamr","imageURL":"https://github.com/jsamr.png","key":"jsamr","page":null},"kdrag0n":{"name":"Danny Lin","alias":"kdrag0n","url":"https://github.com/kdrag0n","imageURL":"https://github.com/kdrag0n.png","key":"kdrag0n","page":null},"ramiy":{"name":"Rami Yushuvaev","alias":"ramiy","url":"https://github.com/ramiy","imageURL":"https://github.com/ramiy.png","key":"ramiy","page":null},"eshantri":{"name":"Eshan Tripathi","alias":"eshantri","url":"https://github.com/eshantri","imageURL":"https://github.com/eshantri.png","key":"eshantri","page":null},"loozhengyuan":{"name":"ZhengYuan Loo","alias":"loozhengyuan","url":"https://github.com/loozhengyuan","imageURL":"https://github.com/loozhengyuan.png","key":"loozhengyuan","page":null},"manuelmeurer":{"name":"Manuel Meurer","alias":"manuelmeurer","url":"https://github.com/manuelmeurer","imageURL":"https://github.com/manuelmeurer.png","key":"manuelmeurer","page":null},"teikjun":{"name":"Teik Jun","alias":"teikjun","url":"https://github.com/teikjun","imageURL":"https://github.com/teikjun.png","key":"teikjun","page":null},"tomekpapiernik":{"name":"Tomasz Papiernik","alias":"tomekpapiernik","url":"https://github.com/tomekpapiernik","imageURL":"https://github.com/tomekpapiernik.png","key":"tomekpapiernik","page":null},"antonygibbs":{"name":"antonygibbs","alias":"antonygibbs","url":"https://github.com/antonygibbs","imageURL":"https://github.com/antonygibbs.png","key":"antonygibbs","page":null},"ArtFlag":{"name":"Arthur","alias":"ArtFlag","url":"https://github.com/ArtFlag","imageURL":"https://github.com/ArtFlag.png","key":"ArtFlag","page":null},"besemuna":{"name":"besemuna","alias":"besemuna","url":"https://github.com/besemuna","imageURL":"https://github.com/besemuna.png","key":"besemuna","page":null},"Christopher-Hsieh":{"name":"Christopher Hsieh","alias":"Christopher-Hsieh","url":"https://github.com/Christopher-Hsieh","imageURL":"https://github.com/Christopher-Hsieh.png","key":"Christopher-Hsieh","page":null},"dabeeeenster":{"name":"Ben Rometsch","alias":"dabeeeenster","url":"https://github.com/dabeeeenster","imageURL":"https://github.com/dabeeeenster.png","key":"dabeeeenster","page":null},"e271828-":{"name":"e271828-","alias":"e271828-","url":"https://github.com/e271828-","imageURL":"https://github.com/e271828-.png","key":"e271828-","page":null},"fgatti675":{"name":"fgatti675","alias":"fgatti675","url":"https://github.com/fgatti675","imageURL":"https://github.com/fgatti675.png","key":"fgatti675","page":null},"HunteRoi":{"name":"Tina\xebl Devresse","alias":"HunteRoi","url":"https://github.com/HunteRoi","imageURL":"https://github.com/HunteRoi.png","key":"HunteRoi","page":null},"jmazin":{"name":"Jonathan Mazin","alias":"jmazin","url":"https://github.com/jmazin","imageURL":"https://github.com/jmazin.png","key":"jmazin","page":null},"Joelpo":{"name":"Joel","alias":"Joelpo","url":"https://github.com/Joelpo","imageURL":"https://github.com/Joelpo.png","key":"Joelpo","page":null},"jonbarker68":{"name":"Jon Barker","alias":"jonbarker68","url":"https://github.com/jonbarker68","imageURL":"https://github.com/jonbarker68.png","key":"jonbarker68","page":null},"l0u1sg":{"name":"Louis Gallet","alias":"l0u1sg","url":"https://github.com/l0u1sg","imageURL":"https://github.com/l0u1sg.png","key":"l0u1sg","page":null},"limkinZero":{"name":"Pablo Vidal","alias":"limkinZero","url":"https://github.com/limkinZero","imageURL":"https://github.com/limkinZero.png","key":"limkinZero","page":null},"liorheber":{"name":"Lior Heber","alias":"liorheber","url":"https://github.com/liorheber","imageURL":"https://github.com/liorheber.png","key":"liorheber","page":null},"louistiti":{"name":"Louis Grenard","alias":"louistiti","url":"https://github.com/louistiti","imageURL":"https://github.com/louistiti.png","key":"louistiti","page":null},"Massibian":{"name":"Massibian","alias":"Massibian","url":"https://github.com/Massibian","imageURL":"https://github.com/Massibian.png","key":"Massibian","page":null},"nam-hle":{"name":"Nam Hoang Le","alias":"nam-hle","url":"https://github.com/nam-hle","imageURL":"https://github.com/nam-hle.png","key":"nam-hle","page":null},"Neilblaze":{"name":"Pratyay Banerjee","alias":"Neilblaze","url":"https://github.com/Neilblaze","imageURL":"https://github.com/Neilblaze.png","key":"Neilblaze","page":null},"phwt":{"name":"phwt.smwt","alias":"phwt","url":"https://github.com/phwt","imageURL":"https://github.com/phwt.png","key":"phwt","page":null},"pmqueiroz":{"name":"Pedro Queiroz","alias":"pmqueiroz","url":"https://github.com/pmqueiroz","imageURL":"https://github.com/pmqueiroz.png","key":"pmqueiroz","page":null},"PsychTechApS":{"name":"PsychTech","alias":"PsychTechApS","url":"https://github.com/PsychTechApS","imageURL":"https://github.com/PsychTechApS.png","key":"PsychTechApS","page":null},"SamChou19815":{"name":"Sam Zhou","alias":"SamChou19815","url":"https://github.com/SamChou19815","imageURL":"https://github.com/SamChou19815.png","key":"SamChou19815","page":null},"silva-nick":{"name":"silva-nick","alias":"silva-nick","url":"https://github.com/silva-nick","imageURL":"https://github.com/silva-nick.png","key":"silva-nick","page":null},"tiny-dancer":{"name":"mg","alias":"tiny-dancer","url":"https://github.com/tiny-dancer","imageURL":"https://github.com/tiny-dancer.png","key":"tiny-dancer","page":null},"tsirlucas":{"name":"Lucas Correia","alias":"tsirlucas","url":"https://github.com/tsirlucas","imageURL":"https://github.com/tsirlucas.png","key":"tsirlucas","page":null},"wise-introvert":{"name":"Fardeen Panjwani","alias":"wise-introvert","url":"https://github.com/wise-introvert","imageURL":"https://github.com/wise-introvert.png","key":"wise-introvert","page":null},"ChrisOwen101":{"name":"Chris Owen","alias":"ChrisOwen101","url":"https://github.com/ChrisOwen101","imageURL":"https://github.com/ChrisOwen101.png","key":"ChrisOwen101","page":null},"gianu":{"name":"Sergio Rafael Gianazza","alias":"gianu","url":"https://github.com/gianu","imageURL":"https://github.com/gianu.png","key":"gianu","page":null},"joelhans":{"name":"Joel Hans","alias":"joelhans","url":"https://github.com/joelhans","imageURL":"https://github.com/joelhans.png","key":"joelhans","page":null},"KostyaTretyak":{"name":"\u041A\u043E\u0441\u0442\u044F \u0422\u0440\u0435\u0442\u044F\u043A","alias":"KostyaTretyak","url":"https://github.com/KostyaTretyak","imageURL":"https://github.com/KostyaTretyak.png","key":"KostyaTretyak","page":null},"rodmoreno":{"name":"Rodrigo Moreno","alias":"rodmoreno","url":"https://github.com/rodmoreno","imageURL":"https://github.com/rodmoreno.png","key":"rodmoreno","page":null},"yiliansource":{"name":"Ian Hornik","alias":"yiliansource","url":"https://github.com/yiliansource","imageURL":"https://github.com/yiliansource.png","key":"yiliansource","page":null},"gempain":{"name":"Geoffroy Empain","alias":"gempain","url":"https://github.com/gempain","imageURL":"https://github.com/gempain.png","key":"gempain","page":null},"tommy351":{"name":"Tommy Chen","alias":"tommy351","url":"https://github.com/tommy351","imageURL":"https://github.com/tommy351.png","key":"tommy351","page":null},"alena-ko":{"name":"alena-ko","alias":"alena-ko","url":"https://github.com/alena-ko","imageURL":"https://github.com/alena-ko.png","key":"alena-ko","page":null},"kazk":{"name":"kazk","alias":"kazk","url":"https://github.com/kazk","imageURL":"https://github.com/kazk.png","key":"kazk","page":null},"lisa761":{"name":"Lisa Chandra","alias":"lisa761","url":"https://github.com/lisa761","imageURL":"https://github.com/lisa761.png","key":"lisa761","page":null},"luism3861":{"name":"Luis Medina Huerta","alias":"luism3861","url":"https://github.com/luism3861","imageURL":"https://github.com/luism3861.png","key":"luism3861","page":null},"react-learner":{"name":"Tommy","alias":"react-learner","url":"https://github.com/react-learner","imageURL":"https://github.com/react-learner.png","key":"react-learner","page":null},"aehrea":{"name":"aehrea","alias":"aehrea","url":"https://github.com/aehrea","imageURL":"https://github.com/aehrea.png","key":"aehrea","page":null},"ajeetraina":{"name":"Ajeet Singh Raina, Docker Captain, RedisLabs","alias":"ajeetraina","url":"https://github.com/ajeetraina","imageURL":"https://github.com/ajeetraina.png","key":"ajeetraina","page":null},"akepecs":{"name":"akepecs","alias":"akepecs","url":"https://github.com/akepecs","imageURL":"https://github.com/akepecs.png","key":"akepecs","page":null},"AnthonyBobsin":{"name":"Anthony Bobsin","alias":"AnthonyBobsin","url":"https://github.com/AnthonyBobsin","imageURL":"https://github.com/AnthonyBobsin.png","key":"AnthonyBobsin","page":null},"arturcarvalho":{"name":"Artur Carvalho","alias":"arturcarvalho","url":"https://github.com/arturcarvalho","imageURL":"https://github.com/arturcarvalho.png","key":"arturcarvalho","page":null},"atomicpages":{"name":"Dennis Thompson","alias":"atomicpages","url":"https://github.com/atomicpages","imageURL":"https://github.com/atomicpages.png","key":"atomicpages","page":null},"clarus":{"name":"Guillaume Claret","alias":"clarus","url":"https://github.com/clarus","imageURL":"https://github.com/clarus.png","key":"clarus","page":null},"dickwyn":{"name":"Dick Wyn Yong","alias":"dickwyn","url":"https://github.com/dickwyn","imageURL":"https://github.com/dickwyn.png","key":"dickwyn","page":null},"Foxeye-Rinx":{"name":"Foxeye-Rinx","alias":"Foxeye-Rinx","url":"https://github.com/Foxeye-Rinx","imageURL":"https://github.com/Foxeye-Rinx.png","key":"Foxeye-Rinx","page":null},"gitbrent":{"name":"Brent Ely","alias":"gitbrent","url":"https://github.com/gitbrent","imageURL":"https://github.com/gitbrent.png","key":"gitbrent","page":null},"gumacahin":{"name":"Marco Enrico","alias":"gumacahin","url":"https://github.com/gumacahin","imageURL":"https://github.com/gumacahin.png","key":"gumacahin","page":null},"jknoxville":{"name":"John Knox","alias":"jknoxville","url":"https://github.com/jknoxville","imageURL":"https://github.com/jknoxville.png","key":"jknoxville","page":null},"kaytwo":{"name":"Chris Kanich","alias":"kaytwo","url":"https://github.com/kaytwo","imageURL":"https://github.com/kaytwo.png","key":"kaytwo","page":null},"lucalves":{"name":"Lucas Alves","alias":"lucalves","url":"https://github.com/lucalves","imageURL":"https://github.com/lucalves.png","key":"lucalves","page":null},"miku86":{"name":"miku86","alias":"miku86","url":"https://github.com/miku86","imageURL":"https://github.com/miku86.png","key":"miku86","page":null},"pepibumur":{"name":"Pedro Pi\xf1era Buend\xeda","alias":"pepibumur","url":"https://github.com/pepibumur","imageURL":"https://github.com/pepibumur.png","key":"pepibumur","page":null},"serut":{"name":"serut","alias":"serut","url":"https://github.com/serut","imageURL":"https://github.com/serut.png","key":"serut","page":null},"ShinteiMai":{"name":"Steven Hansel","alias":"ShinteiMai","url":"https://github.com/ShinteiMai","imageURL":"https://github.com/ShinteiMai.png","key":"ShinteiMai","page":null},"steveworley":{"name":"Steve","alias":"steveworley","url":"https://github.com/steveworley","imageURL":"https://github.com/steveworley.png","key":"steveworley","page":null},"sunny0826":{"name":"guoxudong","alias":"sunny0826","url":"https://github.com/sunny0826","imageURL":"https://github.com/sunny0826.png","key":"sunny0826","page":null},"talesporto":{"name":"Tales Porto","alias":"talesporto","url":"https://github.com/talesporto","imageURL":"https://github.com/talesporto.png","key":"talesporto","page":null},"thiagog3":{"name":"Thiago Sciotta","alias":"thiagog3","url":"https://github.com/thiagog3","imageURL":"https://github.com/thiagog3.png","key":"thiagog3","page":null},"tiago-rr":{"name":"Tiago Ribeiro","alias":"tiago-rr","url":"https://github.com/tiago-rr","imageURL":"https://github.com/tiago-rr.png","key":"tiago-rr","page":null},"tomrav":{"name":"Tom Raviv","alias":"tomrav","url":"https://github.com/tomrav","imageURL":"https://github.com/tomrav.png","key":"tomrav","page":null},"tony":{"name":"Tony Narlock","alias":"tony","url":"https://github.com/tony","imageURL":"https://github.com/tony.png","key":"tony","page":null},"Harvtronix":{"name":"Harvtronix","alias":"Harvtronix","url":"https://github.com/Harvtronix","imageURL":"https://github.com/Harvtronix.png","key":"Harvtronix","page":null},"koko8829":{"name":"Joon-Ha Lee","alias":"koko8829","url":"https://github.com/koko8829","imageURL":"https://github.com/koko8829.png","key":"koko8829","page":null},"leandrooriente":{"name":"Leandro Oriente","alias":"leandrooriente","url":"https://github.com/leandrooriente","imageURL":"https://github.com/leandrooriente.png","key":"leandrooriente","page":null},"longlho":{"name":"Long Ho","alias":"longlho","url":"https://github.com/longlho","imageURL":"https://github.com/longlho.png","key":"longlho","page":null},"lowenhere":{"name":"Lowen","alias":"lowenhere","url":"https://github.com/lowenhere","imageURL":"https://github.com/lowenhere.png","key":"lowenhere","page":null},"quanengineering":{"name":"Quan","alias":"quanengineering","url":"https://github.com/quanengineering","imageURL":"https://github.com/quanengineering.png","key":"quanengineering","page":null},"Rhodanthe1116":{"name":"Rhodanthe1116","alias":"Rhodanthe1116","url":"https://github.com/Rhodanthe1116","imageURL":"https://github.com/Rhodanthe1116.png","key":"Rhodanthe1116","page":null},"zkochan":{"name":"Zoltan Kochan","alias":"zkochan","url":"https://github.com/zkochan","imageURL":"https://github.com/zkochan.png","key":"zkochan","page":null},"9oelM":{"name":"Joel M","alias":"9oelM","url":"https://github.com/9oelM","imageURL":"https://github.com/9oelM.png","key":"9oelM","page":null},"apurvaojas":{"name":"Apurva Ojas","alias":"apurvaojas","url":"https://github.com/apurvaojas","imageURL":"https://github.com/apurvaojas.png","key":"apurvaojas","page":null},"asystentka-jolka":{"name":"Jola","alias":"asystentka-jolka","url":"https://github.com/asystentka-jolka","imageURL":"https://github.com/asystentka-jolka.png","key":"asystentka-jolka","page":null},"aukokyong":{"name":"aukokyong","alias":"aukokyong","url":"https://github.com/aukokyong","imageURL":"https://github.com/aukokyong.png","key":"aukokyong","page":null},"ayonious":{"name":"Nahiyan Kamal","alias":"ayonious","url":"https://github.com/ayonious","imageURL":"https://github.com/ayonious.png","key":"ayonious","page":null},"B4nan":{"name":"Martin Ad\xe1mek","alias":"B4nan","url":"https://github.com/B4nan","imageURL":"https://github.com/B4nan.png","key":"B4nan","page":null},"ben-qnimble":{"name":"Ben","alias":"ben-qnimble","url":"https://github.com/ben-qnimble","imageURL":"https://github.com/ben-qnimble.png","key":"ben-qnimble","page":null},"bennodev19":{"name":"BennoDev","alias":"bennodev19","url":"https://github.com/bennodev19","imageURL":"https://github.com/bennodev19.png","key":"bennodev19","page":null},"caglarturali":{"name":"\xc7a\u011Flar Tural\u0131","alias":"caglarturali","url":"https://github.com/caglarturali","imageURL":"https://github.com/caglarturali.png","key":"caglarturali","page":null},"christian-bromann":{"name":"Christian Bromann","alias":"christian-bromann","url":"https://github.com/christian-bromann","imageURL":"https://github.com/christian-bromann.png","key":"christian-bromann","page":null},"edulazaro":{"name":"Eduardo L\xe1zaro","alias":"edulazaro","url":"https://github.com/edulazaro","imageURL":"https://github.com/edulazaro.png","key":"edulazaro","page":null},"eric-hc":{"name":"Eric Carboni","alias":"eric-hc","url":"https://github.com/eric-hc","imageURL":"https://github.com/eric-hc.png","key":"eric-hc","page":null},"iamshadmirza":{"name":"Mohd Shad Mirza","alias":"iamshadmirza","url":"https://github.com/iamshadmirza","imageURL":"https://github.com/iamshadmirza.png","key":"iamshadmirza","page":null},"imbhargav5":{"name":"Bhargav Ponnapalli","alias":"imbhargav5","url":"https://github.com/imbhargav5","imageURL":"https://github.com/imbhargav5.png","key":"imbhargav5","page":null},"iruzevic":{"name":"Ivan Ru\u017Eevi\u0107","alias":"iruzevic","url":"https://github.com/iruzevic","imageURL":"https://github.com/iruzevic.png","key":"iruzevic","page":null},"jlin27":{"name":"Jessica Lin","alias":"jlin27","url":"https://github.com/jlin27","imageURL":"https://github.com/jlin27.png","key":"jlin27","page":null},"JoelMarcey":{"name":"Joel Marcey","alias":"JoelMarcey","url":"https://github.com/JoelMarcey","imageURL":"https://github.com/JoelMarcey.png","key":"JoelMarcey","page":null},"juancarlosjr97":{"name":"Juan Carlos Blanco Delgado","alias":"juancarlosjr97","url":"https://github.com/juancarlosjr97","imageURL":"https://github.com/juancarlosjr97.png","key":"juancarlosjr97","page":null},"kumaraditya303":{"name":"Kumar Aditya","alias":"kumaraditya303","url":"https://github.com/kumaraditya303","imageURL":"https://github.com/kumaraditya303.png","key":"kumaraditya303","page":null},"linyuxuanlin":{"name":"Power Lin","alias":"linyuxuanlin","url":"https://github.com/linyuxuanlin","imageURL":"https://github.com/linyuxuanlin.png","key":"linyuxuanlin","page":null},"manzinello":{"name":"Matteo Manzinello","alias":"manzinello","url":"https://github.com/manzinello","imageURL":"https://github.com/manzinello.png","key":"manzinello","page":null},"MatanBobi":{"name":"Matan Borenkraout","alias":"MatanBobi","url":"https://github.com/MatanBobi","imageURL":"https://github.com/MatanBobi.png","key":"MatanBobi","page":null},"miroiu":{"name":"Miroiu Emanuel","alias":"miroiu","url":"https://github.com/miroiu","imageURL":"https://github.com/miroiu.png","key":"miroiu","page":null},"natac13":{"name":"Sean Campbell","alias":"natac13","url":"https://github.com/natac13","imageURL":"https://github.com/natac13.png","key":"natac13","page":null},"nicojs":{"name":"Nico Jansen","alias":"nicojs","url":"https://github.com/nicojs","imageURL":"https://github.com/nicojs.png","key":"nicojs","page":null},"NikolayS":{"name":"Nikolay Samokhvalov","alias":"NikolayS","url":"https://github.com/NikolayS","imageURL":"https://github.com/NikolayS.png","key":"NikolayS","page":null},"ntbosscher":{"name":"Nathan Bosscher","alias":"ntbosscher","url":"https://github.com/ntbosscher","imageURL":"https://github.com/ntbosscher.png","key":"ntbosscher","page":null},"oze4":{"name":"Matt Oestreich","alias":"oze4","url":"https://github.com/oze4","imageURL":"https://github.com/oze4.png","key":"oze4","page":null},"saihaj":{"name":"Saihajpreet Singh","alias":"saihaj","url":"https://github.com/saihaj","imageURL":"https://github.com/saihaj.png","key":"saihaj","page":null},"samhrncir":{"name":"Sam Hrncir","alias":"samhrncir","url":"https://github.com/samhrncir","imageURL":"https://github.com/samhrncir.png","key":"samhrncir","page":null},"sammychinedu2ky":{"name":"sammychinedu2ky","alias":"sammychinedu2ky","url":"https://github.com/sammychinedu2ky","imageURL":"https://github.com/sammychinedu2ky.png","key":"sammychinedu2ky","page":null},"saydo17":{"name":"saydo17","alias":"saydo17","url":"https://github.com/saydo17","imageURL":"https://github.com/saydo17.png","key":"saydo17","page":null},"Siemienik":{"name":"Siemienik Pawel","alias":"Siemienik","url":"https://github.com/Siemienik","imageURL":"https://github.com/Siemienik.png","key":"Siemienik","page":null},"Simek":{"name":"Bartosz Kaszubowski","alias":"Simek","url":"https://github.com/Simek","imageURL":"https://github.com/Simek.png","key":"Simek","page":null},"sksamuel":{"name":"Sam Sam","alias":"sksamuel","url":"https://github.com/sksamuel","imageURL":"https://github.com/sksamuel.png","key":"sksamuel","page":null},"theankurkedia":{"name":"Ankur Kedia","alias":"theankurkedia","url":"https://github.com/theankurkedia","imageURL":"https://github.com/theankurkedia.png","key":"theankurkedia","page":null},"TheodoreChu":{"name":"Theodore Chu","alias":"TheodoreChu","url":"https://github.com/TheodoreChu","imageURL":"https://github.com/TheodoreChu.png","key":"TheodoreChu","page":null},"tienvx":{"name":"Tien Vo Xuan","alias":"tienvx","url":"https://github.com/tienvx","imageURL":"https://github.com/tienvx.png","key":"tienvx","page":null},"tokarchyn":{"name":"tokarchyn","alias":"tokarchyn","url":"https://github.com/tokarchyn","imageURL":"https://github.com/tokarchyn.png","key":"tokarchyn","page":null},"tomsfernandez":{"name":"Tomas Fernandez","alias":"tomsfernandez","url":"https://github.com/tomsfernandez","imageURL":"https://github.com/tomsfernandez.png","key":"tomsfernandez","page":null},"vamsi3":{"name":"Vamsi Krishna Reddy Satti","alias":"vamsi3","url":"https://github.com/vamsi3","imageURL":"https://github.com/vamsi3.png","key":"vamsi3","page":null},"viglucci":{"name":"Kevin Viglucci","alias":"viglucci","url":"https://github.com/viglucci","imageURL":"https://github.com/viglucci.png","key":"viglucci","page":null},"wellyshen":{"name":"Welly","alias":"wellyshen","url":"https://github.com/wellyshen","imageURL":"https://github.com/wellyshen.png","key":"wellyshen","page":null},"wolf20482":{"name":"wolf20482","alias":"wolf20482","url":"https://github.com/wolf20482","imageURL":"https://github.com/wolf20482.png","key":"wolf20482","page":null},"YashTotale":{"name":"Yash Totale","alias":"YashTotale","url":"https://github.com/YashTotale","imageURL":"https://github.com/YashTotale.png","key":"YashTotale","page":null},"ykzts":{"name":"Yamagishi Kazutoshi","alias":"ykzts","url":"https://github.com/ykzts","imageURL":"https://github.com/ykzts.png","key":"ykzts","page":null},"ysulyma":{"name":"Yuri Sulyma","alias":"ysulyma","url":"https://github.com/ysulyma","imageURL":"https://github.com/ysulyma.png","key":"ysulyma","page":null},"yuval-hazaz":{"name":"Yuval Hazaz","alias":"yuval-hazaz","url":"https://github.com/yuval-hazaz","imageURL":"https://github.com/yuval-hazaz.png","key":"yuval-hazaz","page":null},"aarongarciah":{"name":"Aar\xf3n Garc\xeda Herv\xe1s","alias":"aarongarciah","url":"https://github.com/aarongarciah","imageURL":"https://github.com/aarongarciah.png","key":"aarongarciah","page":null},"aeneasr":{"name":"hackerman","alias":"aeneasr","url":"https://github.com/aeneasr","imageURL":"https://github.com/aeneasr.png","key":"aeneasr","page":null},"Alex1304":{"name":"Alex1304","alias":"Alex1304","url":"https://github.com/Alex1304","imageURL":"https://github.com/Alex1304.png","key":"Alex1304","page":null},"borool":{"name":"borool","alias":"borool","url":"https://github.com/borool","imageURL":"https://github.com/borool.png","key":"borool","page":null},"cindygu4":{"name":"Cindy Gu","alias":"cindygu4","url":"https://github.com/cindygu4","imageURL":"https://github.com/cindygu4.png","key":"cindygu4","page":null},"davidmauskop":{"name":"davidmauskop","alias":"davidmauskop","url":"https://github.com/davidmauskop","imageURL":"https://github.com/davidmauskop.png","key":"davidmauskop","page":null},"dgilling":{"name":"Derric Gilling","alias":"dgilling","url":"https://github.com/dgilling","imageURL":"https://github.com/dgilling.png","key":"dgilling","page":null},"francoischalifour":{"name":"Fran\xe7ois Chalifour","alias":"francoischalifour","url":"https://github.com/francoischalifour","imageURL":"https://github.com/francoischalifour.png","key":"francoischalifour","page":null},"hmil":{"name":"Hadrien Milano","alias":"hmil","url":"https://github.com/hmil","imageURL":"https://github.com/hmil.png","key":"hmil","page":null},"LoicPoullain":{"name":"Lo\xefc Poullain","alias":"LoicPoullain","url":"https://github.com/LoicPoullain","imageURL":"https://github.com/LoicPoullain.png","key":"LoicPoullain","page":null},"matijaSos":{"name":"Matija Sosic","alias":"matijaSos","url":"https://github.com/matijaSos","imageURL":"https://github.com/matijaSos.png","key":"matijaSos","page":null},"mpsq":{"name":"M\xe9ril","alias":"mpsq","url":"https://github.com/mpsq","imageURL":"https://github.com/mpsq.png","key":"mpsq","page":null},"Romstar":{"name":"Rami","alias":"Romstar","url":"https://github.com/Romstar","imageURL":"https://github.com/Romstar.png","key":"Romstar","page":null},"sarthakkundra":{"name":"Sarthak kundra","alias":"sarthakkundra","url":"https://github.com/sarthakkundra","imageURL":"https://github.com/sarthakkundra.png","key":"sarthakkundra","page":null},"sivaraam":{"name":"Kaartic Sivaraam","alias":"sivaraam","url":"https://github.com/sivaraam","imageURL":"https://github.com/sivaraam.png","key":"sivaraam","page":null},"Varshit07":{"name":"Varshit Shah","alias":"Varshit07","url":"https://github.com/Varshit07","imageURL":"https://github.com/Varshit07.png","key":"Varshit07","page":null},"woodrufs":{"name":"Stephen Woodruff","alias":"woodrufs","url":"https://github.com/woodrufs","imageURL":"https://github.com/woodrufs.png","key":"woodrufs","page":null},"arcanis":{"name":"Ma\xebl Nison","alias":"arcanis","url":"https://github.com/arcanis","imageURL":"https://github.com/arcanis.png","key":"arcanis","page":null},"camiluc":{"name":"camiluc","alias":"camiluc","url":"https://github.com/camiluc","imageURL":"https://github.com/camiluc.png","key":"camiluc","page":null},"AmyrAhmady":{"name":"iAmir","alias":"AmyrAhmady","url":"https://github.com/AmyrAhmady","imageURL":"https://github.com/AmyrAhmady.png","key":"AmyrAhmady","page":null},"belemaire":{"name":"Beno\xeet Lemaire","alias":"belemaire","url":"https://github.com/belemaire","imageURL":"https://github.com/belemaire.png","key":"belemaire","page":null},"davidjgoss":{"name":"David Goss","alias":"davidjgoss","url":"https://github.com/davidjgoss","imageURL":"https://github.com/davidjgoss.png","key":"davidjgoss","page":null},"egbobright":{"name":"Bright Egbo","alias":"egbobright","url":"https://github.com/egbobright","imageURL":"https://github.com/egbobright.png","key":"egbobright","page":null},"haivp3010":{"name":"Hai","alias":"haivp3010","url":"https://github.com/haivp3010","imageURL":"https://github.com/haivp3010.png","key":"haivp3010","page":null},"hong4rc":{"name":"Anh Hong","alias":"hong4rc","url":"https://github.com/hong4rc","imageURL":"https://github.com/hong4rc.png","key":"hong4rc","page":null},"jcs98":{"name":"Jainam Chirag Shah","alias":"jcs98","url":"https://github.com/jcs98","imageURL":"https://github.com/jcs98.png","key":"jcs98","page":null},"ka1bi4":{"name":"Roman Bug","alias":"ka1bi4","url":"https://github.com/ka1bi4","imageURL":"https://github.com/ka1bi4.png","key":"ka1bi4","page":null},"kenve":{"name":"kenve","alias":"kenve","url":"https://github.com/kenve","imageURL":"https://github.com/kenve.png","key":"kenve","page":null},"nategiraudeau":{"name":"Nate Giraudeau","alias":"nategiraudeau","url":"https://github.com/nategiraudeau","imageURL":"https://github.com/nategiraudeau.png","key":"nategiraudeau","page":null},"ndom91":{"name":"Nico Domino","alias":"ndom91","url":"https://github.com/ndom91","imageURL":"https://github.com/ndom91.png","key":"ndom91","page":null},"rarkins":{"name":"Rhys Arkins","alias":"rarkins","url":"https://github.com/rarkins","imageURL":"https://github.com/rarkins.png","key":"rarkins","page":null},"sigewuzhere":{"name":"Gergely Sinka","alias":"sigewuzhere","url":"https://github.com/sigewuzhere","imageURL":"https://github.com/sigewuzhere.png","key":"sigewuzhere","page":null},"smcelhinney":{"name":"Stephen McElhinney","alias":"smcelhinney","url":"https://github.com/smcelhinney","imageURL":"https://github.com/smcelhinney.png","key":"smcelhinney","page":null},"ThakurKarthik":{"name":"Thakur Karthik","alias":"ThakurKarthik","url":"https://github.com/ThakurKarthik","imageURL":"https://github.com/ThakurKarthik.png","key":"ThakurKarthik","page":null},"vanbasten17":{"name":"Marc Rabat Pla","alias":"vanbasten17","url":"https://github.com/vanbasten17","imageURL":"https://github.com/vanbasten17.png","key":"vanbasten17","page":null},"weareoutman":{"name":"Shenwei Wang","alias":"weareoutman","url":"https://github.com/weareoutman","imageURL":"https://github.com/weareoutman.png","key":"weareoutman","page":null},"ylemkimon":{"name":"ylemkimon","alias":"ylemkimon","url":"https://github.com/ylemkimon","imageURL":"https://github.com/ylemkimon.png","key":"ylemkimon","page":null},"aakhtar3":{"name":"aakhtar3","alias":"aakhtar3","url":"https://github.com/aakhtar3","imageURL":"https://github.com/aakhtar3.png","key":"aakhtar3","page":null},"abhishektiwari":{"name":"Abhishek Tiwari","alias":"abhishektiwari","url":"https://github.com/abhishektiwari","imageURL":"https://github.com/abhishektiwari.png","key":"abhishektiwari","page":null},"fanny":{"name":"Fanny","alias":"fanny","url":"https://github.com/fanny","imageURL":"https://github.com/fanny.png","key":"fanny","page":null},"honlyHuang":{"name":"honlyHuang","alias":"honlyHuang","url":"https://github.com/honlyHuang","imageURL":"https://github.com/honlyHuang.png","key":"honlyHuang","page":null},"imskr":{"name":"Shubham Kumar","alias":"imskr","url":"https://github.com/imskr","imageURL":"https://github.com/imskr.png","key":"imskr","page":null},"jagracey":{"name":"John Gracey","alias":"jagracey","url":"https://github.com/jagracey","imageURL":"https://github.com/jagracey.png","key":"jagracey","page":null},"russtaylor":{"name":"Russ Taylor","alias":"russtaylor","url":"https://github.com/russtaylor","imageURL":"https://github.com/russtaylor.png","key":"russtaylor","page":null},"saintmalik":{"name":"SaintMalik","alias":"saintmalik","url":"https://github.com/saintmalik","imageURL":"https://github.com/saintmalik.png","key":"saintmalik","page":null},"shubhamzanwar":{"name":"Shubham Zanwar","alias":"shubhamzanwar","url":"https://github.com/shubhamzanwar","imageURL":"https://github.com/shubhamzanwar.png","key":"shubhamzanwar","page":null},"UmairKamran":{"name":"Umair Kamran","alias":"UmairKamran","url":"https://github.com/UmairKamran","imageURL":"https://github.com/UmairKamran.png","key":"UmairKamran","page":null},"utkarsh867":{"name":"Utkarsh Goel","alias":"utkarsh867","url":"https://github.com/utkarsh867","imageURL":"https://github.com/utkarsh867.png","key":"utkarsh867","page":null},"abadon7":{"name":"Henry V\xe9lez","alias":"abadon7","url":"https://github.com/abadon7","imageURL":"https://github.com/abadon7.png","key":"abadon7","page":null},"anru":{"name":"Andrey Rublev","alias":"anru","url":"https://github.com/anru","imageURL":"https://github.com/anru.png","key":"anru","page":null},"ayshiff":{"name":"R\xe9mi Doreau","alias":"ayshiff","url":"https://github.com/ayshiff","imageURL":"https://github.com/ayshiff.png","key":"ayshiff","page":null},"jeremyhager":{"name":"Jeremy Hager","alias":"jeremyhager","url":"https://github.com/jeremyhager","imageURL":"https://github.com/jeremyhager.png","key":"jeremyhager","page":null},"muskanvk":{"name":"Muskan Kumar","alias":"muskanvk","url":"https://github.com/muskanvk","imageURL":"https://github.com/muskanvk.png","key":"muskanvk","page":null},"timgates42":{"name":"Tim Gates","alias":"timgates42","url":"https://github.com/timgates42","imageURL":"https://github.com/timgates42.png","key":"timgates42","page":null},"ashscodes":{"name":"Ash","alias":"ashscodes","url":"https://github.com/ashscodes","imageURL":"https://github.com/ashscodes.png","key":"ashscodes","page":null},"josephMG":{"name":"josephMG","alias":"josephMG","url":"https://github.com/josephMG","imageURL":"https://github.com/josephMG.png","key":"josephMG","page":null},"rutikwankhade":{"name":"Rutik Wankhade","alias":"rutikwankhade","url":"https://github.com/rutikwankhade","imageURL":"https://github.com/rutikwankhade.png","key":"rutikwankhade","page":null},"samsisle":{"name":"Sam Ko","alias":"samsisle","url":"https://github.com/samsisle","imageURL":"https://github.com/samsisle.png","key":"samsisle","page":null},"adinaja":{"name":"adinaja","alias":"adinaja","url":"https://github.com/adinaja","imageURL":"https://github.com/adinaja.png","key":"adinaja","page":null},"ajifrank75":{"name":"Franklyn Chisom","alias":"ajifrank75","url":"https://github.com/ajifrank75","imageURL":"https://github.com/ajifrank75.png","key":"ajifrank75","page":null},"Ako92":{"name":"Ali Hosseini","alias":"Ako92","url":"https://github.com/Ako92","imageURL":"https://github.com/Ako92.png","key":"Ako92","page":null},"amy-lei":{"name":"Amy Lei","alias":"amy-lei","url":"https://github.com/amy-lei","imageURL":"https://github.com/amy-lei.png","key":"amy-lei","page":null},"anshulrgoyal":{"name":"Anshul Goyal","alias":"anshulrgoyal","url":"https://github.com/anshulrgoyal","imageURL":"https://github.com/anshulrgoyal.png","key":"anshulrgoyal","page":null},"arcvats":{"name":"Archit","alias":"arcvats","url":"https://github.com/arcvats","imageURL":"https://github.com/arcvats.png","key":"arcvats","page":null},"arthur-flam":{"name":"Arthur Flam","alias":"arthur-flam","url":"https://github.com/arthur-flam","imageURL":"https://github.com/arthur-flam.png","key":"arthur-flam","page":null},"BogdanDor":{"name":"Bogdan Doroschenko","alias":"BogdanDor","url":"https://github.com/BogdanDor","imageURL":"https://github.com/BogdanDor.png","key":"BogdanDor","page":null},"boosh511":{"name":"alex busnelli","alias":"boosh511","url":"https://github.com/boosh511","imageURL":"https://github.com/boosh511.png","key":"boosh511","page":null},"Danon":{"name":"Daniel Wilkowski","alias":"Danon","url":"https://github.com/Danon","imageURL":"https://github.com/Danon.png","key":"Danon","page":null},"Drewbi":{"name":"Drew Alexander","alias":"Drewbi","url":"https://github.com/Drewbi","imageURL":"https://github.com/Drewbi.png","key":"Drewbi","page":null},"dschaller":{"name":"Derek","alias":"dschaller","url":"https://github.com/dschaller","imageURL":"https://github.com/dschaller.png","key":"dschaller","page":null},"FocalChord":{"name":"Nisarag","alias":"FocalChord","url":"https://github.com/FocalChord","imageURL":"https://github.com/FocalChord.png","key":"FocalChord","page":null},"govardhan-srinivas":{"name":"Govardhan Srinivas","alias":"govardhan-srinivas","url":"https://github.com/govardhan-srinivas","imageURL":"https://github.com/govardhan-srinivas.png","key":"govardhan-srinivas","page":null},"hsluoyz":{"name":"Yang Luo","alias":"hsluoyz","url":"https://github.com/hsluoyz","imageURL":"https://github.com/hsluoyz.png","key":"hsluoyz","page":null},"JeanMarcSaad":{"name":"Jean-Marc Saad","alias":"JeanMarcSaad","url":"https://github.com/JeanMarcSaad","imageURL":"https://github.com/JeanMarcSaad.png","key":"JeanMarcSaad","page":null},"JohnnyCrazy":{"name":"Jonas Dellinger","alias":"JohnnyCrazy","url":"https://github.com/JohnnyCrazy","imageURL":"https://github.com/JohnnyCrazy.png","key":"JohnnyCrazy","page":null},"Jonathannsegal":{"name":"Jonathan","alias":"Jonathannsegal","url":"https://github.com/Jonathannsegal","imageURL":"https://github.com/Jonathannsegal.png","key":"Jonathannsegal","page":null},"lebogangolifant":{"name":"lebogang Olifant","alias":"lebogangolifant","url":"https://github.com/lebogangolifant","imageURL":"https://github.com/lebogangolifant.png","key":"lebogangolifant","page":null},"leoigel":{"name":"leoigel","alias":"leoigel","url":"https://github.com/leoigel","imageURL":"https://github.com/leoigel.png","key":"leoigel","page":null},"mecm1993":{"name":"Manuel Cepeda","alias":"mecm1993","url":"https://github.com/mecm1993","imageURL":"https://github.com/mecm1993.png","key":"mecm1993","page":null},"MirzayevFarid":{"name":"Mirzayev Farid","alias":"MirzayevFarid","url":"https://github.com/MirzayevFarid","imageURL":"https://github.com/MirzayevFarid.png","key":"MirzayevFarid","page":null},"nebrelbug":{"name":"Ben Gubler","alias":"nebrelbug","url":"https://github.com/nebrelbug","imageURL":"https://github.com/nebrelbug.png","key":"nebrelbug","page":null},"olawanlejoel":{"name":"Olawanle Joel","alias":"olawanlejoel","url":"https://github.com/olawanlejoel","imageURL":"https://github.com/olawanlejoel.png","key":"olawanlejoel","page":null},"orta":{"name":"Orta Therox","alias":"orta","url":"https://github.com/orta","imageURL":"https://github.com/orta.png","key":"orta","page":null},"shalinikumari50":{"name":"shalinikumari50","alias":"shalinikumari50","url":"https://github.com/shalinikumari50","imageURL":"https://github.com/shalinikumari50.png","key":"shalinikumari50","page":null},"Souravdey777":{"name":"Sourav Dey","alias":"Souravdey777","url":"https://github.com/Souravdey777","imageURL":"https://github.com/Souravdey777.png","key":"Souravdey777","page":null},"thehanimo":{"name":"Hani Mohammed","alias":"thehanimo","url":"https://github.com/thehanimo","imageURL":"https://github.com/thehanimo.png","key":"thehanimo","page":null},"tolunayakbulut":{"name":"Tolunay Akbulut","alias":"tolunayakbulut","url":"https://github.com/tolunayakbulut","imageURL":"https://github.com/tolunayakbulut.png","key":"tolunayakbulut","page":null},"Vinnl":{"name":"Vincent","alias":"Vinnl","url":"https://github.com/Vinnl","imageURL":"https://github.com/Vinnl.png","key":"Vinnl","page":null},"BuckyMaler":{"name":"Bucky Maler","alias":"BuckyMaler","url":"https://github.com/BuckyMaler","imageURL":"https://github.com/BuckyMaler.png","key":"BuckyMaler","page":null},"mdfaizan7":{"name":"Faizan","alias":"mdfaizan7","url":"https://github.com/mdfaizan7","imageURL":"https://github.com/mdfaizan7.png","key":"mdfaizan7","page":null},"hobadams":{"name":"Hob Adams","alias":"hobadams","url":"https://github.com/hobadams","imageURL":"https://github.com/hobadams.png","key":"hobadams","page":null},"aladin002dz":{"name":"Mahfoudh Arous","alias":"aladin002dz","url":"https://github.com/aladin002dz","imageURL":"https://github.com/aladin002dz.png","key":"aladin002dz","page":null},"aldeed":{"name":"Eric Dobbertin","alias":"aldeed","url":"https://github.com/aldeed","imageURL":"https://github.com/aldeed.png","key":"aldeed","page":null},"amirulahmad":{"name":"Amirul Ahmad","alias":"amirulahmad","url":"https://github.com/amirulahmad","imageURL":"https://github.com/amirulahmad.png","key":"amirulahmad","page":null},"ayan-b":{"name":"Ayan Banerjee","alias":"ayan-b","url":"https://github.com/ayan-b","imageURL":"https://github.com/ayan-b.png","key":"ayan-b","page":null},"codemonkey800":{"name":"Jeremy Asuncion","alias":"codemonkey800","url":"https://github.com/codemonkey800","imageURL":"https://github.com/codemonkey800.png","key":"codemonkey800","page":null},"danielhochman":{"name":"Daniel Hochman","alias":"danielhochman","url":"https://github.com/danielhochman","imageURL":"https://github.com/danielhochman.png","key":"danielhochman","page":null},"dpkg":{"name":"Deepak Giri","alias":"dpkg","url":"https://github.com/dpkg","imageURL":"https://github.com/dpkg.png","key":"dpkg","page":null},"ehsanjso":{"name":"ehsan jso","alias":"ehsanjso","url":"https://github.com/ehsanjso","imageURL":"https://github.com/ehsanjso.png","key":"ehsanjso","page":null},"eKhattak":{"name":"Arsalan Khattak","alias":"eKhattak","url":"https://github.com/eKhattak","imageURL":"https://github.com/eKhattak.png","key":"eKhattak","page":null},"hi-matbub":{"name":"matbub","alias":"hi-matbub","url":"https://github.com/hi-matbub","imageURL":"https://github.com/hi-matbub.png","key":"hi-matbub","page":null},"jordanliu":{"name":"Jordan Liu","alias":"jordanliu","url":"https://github.com/jordanliu","imageURL":"https://github.com/jordanliu.png","key":"jordanliu","page":null},"pcowgill":{"name":"Paul Cowgill","alias":"pcowgill","url":"https://github.com/pcowgill","imageURL":"https://github.com/pcowgill.png","key":"pcowgill","page":null},"svtfrida":{"name":"Frida Hjelm","alias":"svtfrida","url":"https://github.com/svtfrida","imageURL":"https://github.com/svtfrida.png","key":"svtfrida","page":null},"taylorallen0913":{"name":"Taylor Allen","alias":"taylorallen0913","url":"https://github.com/taylorallen0913","imageURL":"https://github.com/taylorallen0913.png","key":"taylorallen0913","page":null},"xtellurian":{"name":"Rian Finnegan","alias":"xtellurian","url":"https://github.com/xtellurian","imageURL":"https://github.com/xtellurian.png","key":"xtellurian","page":null},"belokonm":{"name":"belokonm","alias":"belokonm","url":"https://github.com/belokonm","imageURL":"https://github.com/belokonm.png","key":"belokonm","page":null},"guillaumejacquart":{"name":"Guillaume Jacquart","alias":"guillaumejacquart","url":"https://github.com/guillaumejacquart","imageURL":"https://github.com/guillaumejacquart.png","key":"guillaumejacquart","page":null},"jsjoeio":{"name":"JavaScript Joe","alias":"jsjoeio","url":"https://github.com/jsjoeio","imageURL":"https://github.com/jsjoeio.png","key":"jsjoeio","page":null},"Nishikoh":{"name":"Koki Nishihara","alias":"Nishikoh","url":"https://github.com/Nishikoh","imageURL":"https://github.com/Nishikoh.png","key":"Nishikoh","page":null},"pglezen":{"name":"Paul Glezen","alias":"pglezen","url":"https://github.com/pglezen","imageURL":"https://github.com/pglezen.png","key":"pglezen","page":null},"tetunori":{"name":"tetunori","alias":"tetunori","url":"https://github.com/tetunori","imageURL":"https://github.com/tetunori.png","key":"tetunori","page":null},"TomBrien":{"name":"Tom Brien","alias":"TomBrien","url":"https://github.com/TomBrien","imageURL":"https://github.com/TomBrien.png","key":"TomBrien","page":null},"jmcshane":{"name":"James McShane","alias":"jmcshane","url":"https://github.com/jmcshane","imageURL":"https://github.com/jmcshane.png","key":"jmcshane","page":null},"kasperp":{"name":"Kasper B\xf8gebjerg Pedersen","alias":"kasperp","url":"https://github.com/kasperp","imageURL":"https://github.com/kasperp.png","key":"kasperp","page":null},"mrmuhammadali":{"name":"Muhammad Ali","alias":"mrmuhammadali","url":"https://github.com/mrmuhammadali","imageURL":"https://github.com/mrmuhammadali.png","key":"mrmuhammadali","page":null},"piotros":{"name":"Piotr Baran","alias":"piotros","url":"https://github.com/piotros","imageURL":"https://github.com/piotros.png","key":"piotros","page":null},"s-pace":{"name":"Sylvain Pace","alias":"s-pace","url":"https://github.com/s-pace","imageURL":"https://github.com/s-pace.png","key":"s-pace","page":null},"iamrajiv":{"name":"Rajiv Singh","alias":"iamrajiv","url":"https://github.com/iamrajiv","imageURL":"https://github.com/iamrajiv.png","key":"iamrajiv","page":null},"jcomack":{"name":"Jimmy","alias":"jcomack","url":"https://github.com/jcomack","imageURL":"https://github.com/jcomack.png","key":"jcomack","page":null},"jdeniau":{"name":"Julien Deniau","alias":"jdeniau","url":"https://github.com/jdeniau","imageURL":"https://github.com/jdeniau.png","key":"jdeniau","page":null},"jonnynabors":{"name":"Jonny Nabors","alias":"jonnynabors","url":"https://github.com/jonnynabors","imageURL":"https://github.com/jonnynabors.png","key":"jonnynabors","page":null},"marcosvega91":{"name":"Marco Moretti","alias":"marcosvega91","url":"https://github.com/marcosvega91","imageURL":"https://github.com/marcosvega91.png","key":"marcosvega91","page":null},"AnayoOleru":{"name":"Anayo Oleru","alias":"AnayoOleru","url":"https://github.com/AnayoOleru","imageURL":"https://github.com/AnayoOleru.png","key":"AnayoOleru","page":null},"jaylees14":{"name":"Jay Lees","alias":"jaylees14","url":"https://github.com/jaylees14","imageURL":"https://github.com/jaylees14.png","key":"jaylees14","page":null},"JoseRenan":{"name":"Jos\xe9 Renan","alias":"JoseRenan","url":"https://github.com/JoseRenan","imageURL":"https://github.com/JoseRenan.png","key":"JoseRenan","page":null},"kamilkisiela":{"name":"Kamil Kisiela","alias":"kamilkisiela","url":"https://github.com/kamilkisiela","imageURL":"https://github.com/kamilkisiela.png","key":"kamilkisiela","page":null},"kripod":{"name":"Krist\xf3f Poduszl\xf3","alias":"kripod","url":"https://github.com/kripod","imageURL":"https://github.com/kripod.png","key":"kripod","page":null},"Noah-Silvera":{"name":"Noah Silvera","alias":"Noah-Silvera","url":"https://github.com/Noah-Silvera","imageURL":"https://github.com/Noah-Silvera.png","key":"Noah-Silvera","page":null},"watzon":{"name":"Chris Watson","alias":"watzon","url":"https://github.com/watzon","imageURL":"https://github.com/watzon.png","key":"watzon","page":null},"yatki":{"name":"Mehmet Yatk\u0131","alias":"yatki","url":"https://github.com/yatki","imageURL":"https://github.com/yatki.png","key":"yatki","page":null},"cangencer":{"name":"Can Gencer","alias":"cangencer","url":"https://github.com/cangencer","imageURL":"https://github.com/cangencer.png","key":"cangencer","page":null},"iWun":{"name":"Richard Chan","alias":"iWun","url":"https://github.com/iWun","imageURL":"https://github.com/iWun.png","key":"iWun","page":null},"38elements":{"name":"38elements","alias":"38elements","url":"https://github.com/38elements","imageURL":"https://github.com/38elements.png","key":"38elements","page":null},"bravo-kernel":{"name":"bravo-kernel","alias":"bravo-kernel","url":"https://github.com/bravo-kernel","imageURL":"https://github.com/bravo-kernel.png","key":"bravo-kernel","page":null},"elviswolcott":{"name":"Elvis Wolcott","alias":"elviswolcott","url":"https://github.com/elviswolcott","imageURL":"https://github.com/elviswolcott.png","key":"elviswolcott","page":null},"fakela":{"name":"Favour Kelvin","alias":"fakela","url":"https://github.com/fakela","imageURL":"https://github.com/fakela.png","key":"fakela","page":null},"GermaVinsmoke":{"name":"GermaVinsmoke","alias":"GermaVinsmoke","url":"https://github.com/GermaVinsmoke","imageURL":"https://github.com/GermaVinsmoke.png","key":"GermaVinsmoke","page":null},"iamkun":{"name":"iamkun","alias":"iamkun","url":"https://github.com/iamkun","imageURL":"https://github.com/iamkun.png","key":"iamkun","page":null},"jeffersonlicet":{"name":"Jefferson Licet","alias":"jeffersonlicet","url":"https://github.com/jeffersonlicet","imageURL":"https://github.com/jeffersonlicet.png","key":"jeffersonlicet","page":null},"KohheePeace":{"name":"KohheePeace","alias":"KohheePeace","url":"https://github.com/KohheePeace","imageURL":"https://github.com/KohheePeace.png","key":"KohheePeace","page":null},"lukecollier":{"name":"Luke Collier","alias":"lukecollier","url":"https://github.com/lukecollier","imageURL":"https://github.com/lukecollier.png","key":"lukecollier","page":null},"mohrash92":{"name":"mohrash92","alias":"mohrash92","url":"https://github.com/mohrash92","imageURL":"https://github.com/mohrash92.png","key":"mohrash92","page":null},"nisarhassan12":{"name":"Nisar Hassan Naqvi","alias":"nisarhassan12","url":"https://github.com/nisarhassan12","imageURL":"https://github.com/nisarhassan12.png","key":"nisarhassan12","page":null},"paularmstrong":{"name":"Paul Armstrong","alias":"paularmstrong","url":"https://github.com/paularmstrong","imageURL":"https://github.com/paularmstrong.png","key":"paularmstrong","page":null},"phoqe":{"name":"Linus L\xe5ngberg","alias":"phoqe","url":"https://github.com/phoqe","imageURL":"https://github.com/phoqe.png","key":"phoqe","page":null},"rlamana":{"name":"Ram\xf3n Lamana","alias":"rlamana","url":"https://github.com/rlamana","imageURL":"https://github.com/rlamana.png","key":"rlamana","page":null},"ZachJW34":{"name":"ZachJW34","alias":"ZachJW34","url":"https://github.com/ZachJW34","imageURL":"https://github.com/ZachJW34.png","key":"ZachJW34","page":null},"amilajack":{"name":"Amila Welihinda","alias":"amilajack","url":"https://github.com/amilajack","imageURL":"https://github.com/amilajack.png","key":"amilajack","page":null},"balloob":{"name":"Paulus Schoutsen","alias":"balloob","url":"https://github.com/balloob","imageURL":"https://github.com/balloob.png","key":"balloob","page":null},"deniaz":{"name":"Robert","alias":"deniaz","url":"https://github.com/deniaz","imageURL":"https://github.com/deniaz.png","key":"deniaz","page":null},"hassanfarid":{"name":"Hassan Farid","alias":"hassanfarid","url":"https://github.com/hassanfarid","imageURL":"https://github.com/hassanfarid.png","key":"hassanfarid","page":null},"jartuso":{"name":"jartuso","alias":"jartuso","url":"https://github.com/jartuso","imageURL":"https://github.com/jartuso.png","key":"jartuso","page":null},"mohamedsgap":{"name":"Mohamed Abdel Nasser","alias":"mohamedsgap","url":"https://github.com/mohamedsgap","imageURL":"https://github.com/mohamedsgap.png","key":"mohamedsgap","page":null},"scottilee":{"name":"Scott Lee","alias":"scottilee","url":"https://github.com/scottilee","imageURL":"https://github.com/scottilee.png","key":"scottilee","page":null},"Zhencha0Cai":{"name":"Zhenchao Cai","alias":"Zhencha0Cai","url":"https://github.com/Zhencha0Cai","imageURL":"https://github.com/Zhencha0Cai.png","key":"Zhencha0Cai","page":null},"awalias":{"name":"awalias","alias":"awalias","url":"https://github.com/awalias","imageURL":"https://github.com/awalias.png","key":"awalias","page":null},"edwandr":{"name":"Elie Dutheil","alias":"edwandr","url":"https://github.com/edwandr","imageURL":"https://github.com/edwandr.png","key":"edwandr","page":null},"erubi":{"name":"Evan Rubinton","alias":"erubi","url":"https://github.com/erubi","imageURL":"https://github.com/erubi.png","key":"erubi","page":null},"galhavivi":{"name":"Gal Havivi","alias":"galhavivi","url":"https://github.com/galhavivi","imageURL":"https://github.com/galhavivi.png","key":"galhavivi","page":null},"Jeffail":{"name":"Ashley Jeffs","alias":"Jeffail","url":"https://github.com/Jeffail","imageURL":"https://github.com/Jeffail.png","key":"Jeffail","page":null},"jjwill":{"name":"Joshua Williams","alias":"jjwill","url":"https://github.com/jjwill","imageURL":"https://github.com/jjwill.png","key":"jjwill","page":null},"jonathanrdelgado":{"name":"Jonathan Delgado","alias":"jonathanrdelgado","url":"https://github.com/jonathanrdelgado","imageURL":"https://github.com/jonathanrdelgado.png","key":"jonathanrdelgado","page":null},"mterrel":{"name":"Mark Terrel","alias":"mterrel","url":"https://github.com/mterrel","imageURL":"https://github.com/mterrel.png","key":"mterrel","page":null},"OndrejNepozitek":{"name":"Ond\u0159ej Nepo\u017Eitek","alias":"OndrejNepozitek","url":"https://github.com/OndrejNepozitek","imageURL":"https://github.com/OndrejNepozitek.png","key":"OndrejNepozitek","page":null},"sdowding":{"name":"Scott Dowding","alias":"sdowding","url":"https://github.com/sdowding","imageURL":"https://github.com/sdowding.png","key":"sdowding","page":null},"trustyoo86":{"name":"Hanseung Yoo","alias":"trustyoo86","url":"https://github.com/trustyoo86","imageURL":"https://github.com/trustyoo86.png","key":"trustyoo86","page":null},"wgao19":{"name":"Wei Gao","alias":"wgao19","url":"https://github.com/wgao19","imageURL":"https://github.com/wgao19.png","key":"wgao19","page":null},"endiliey":{"name":"Endi","alias":"endiliey","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endiliey","page":null},"janko":{"name":"Janko Marohni\u0107","alias":"janko","url":"https://github.com/janko","imageURL":"https://github.com/janko.png","key":"janko","page":null},"nickmccurdy":{"name":"Nick McCurdy","alias":"nickmccurdy","url":"https://github.com/nickmccurdy","imageURL":"https://github.com/nickmccurdy.png","key":"nickmccurdy","page":null},"TransmissionsDev":{"name":"t11s","alias":"TransmissionsDev","url":"https://github.com/TransmissionsDev","imageURL":"https://github.com/TransmissionsDev.png","key":"TransmissionsDev","page":null},"FeynmanDNA":{"name":"KYY","alias":"FeynmanDNA","url":"https://github.com/FeynmanDNA","imageURL":"https://github.com/FeynmanDNA.png","key":"FeynmanDNA","page":null},"qshiwu":{"name":"kaichu","alias":"qshiwu","url":"https://github.com/qshiwu","imageURL":"https://github.com/qshiwu.png","key":"qshiwu","page":null},"shivangna":{"name":"Shivangna Kaistha","alias":"shivangna","url":"https://github.com/shivangna","imageURL":"https://github.com/shivangna.png","key":"shivangna","page":null},"binarylogic":{"name":"Binary Logic","alias":"binarylogic","url":"https://github.com/binarylogic","imageURL":"https://github.com/binarylogic.png","key":"binarylogic","page":null},"gimdongwoo":{"name":"Dongwoo Gim","alias":"gimdongwoo","url":"https://github.com/gimdongwoo","imageURL":"https://github.com/gimdongwoo.png","key":"gimdongwoo","page":null},"ericcarboni":{"name":"Eric Carboni","alias":"ericcarboni","url":"https://github.com/ericcarboni","imageURL":"https://github.com/ericcarboni.png","key":"ericcarboni","page":null},"jamiedavenport":{"name":"Jamie Davenport","alias":"jamiedavenport","url":"https://github.com/jamiedavenport","imageURL":"https://github.com/jamiedavenport.png","key":"jamiedavenport","page":null},"kenning":{"name":"Nick McCormick","alias":"kenning","url":"https://github.com/kenning","imageURL":"https://github.com/kenning.png","key":"kenning","page":null},"vinnytheviking":{"name":"Vincent van der Walt","alias":"vinnytheviking","url":"https://github.com/vinnytheviking","imageURL":"https://github.com/vinnytheviking.png","key":"vinnytheviking","page":null}}}},"docusaurus-plugin-ideal-image":{},"docusaurus-theme-mermaid":{},"feature-requests-plugin":{},"client-module-test-plugin":{},"docusaurus-theme-live-codeblock":{},"swizzle-theme-tests":{},"docusaurus-bootstrap-plugin":{},"docusaurus-mdx-fallback-plugin":{}}}')}}]); \ No newline at end of file diff --git a/assets/js/3c616b11.26b8498c.js b/assets/js/3c616b11.26b8498c.js new file mode 100644 index 0000000000..8786d9850e --- /dev/null +++ b/assets/js/3c616b11.26b8498c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[14280],{14662:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>o,toc:()=>d});let o=JSON.parse('{"id":"tests/ascii/folder/\xe6\xf8\xe5","title":"\xe6\xf8\xe5","description":"Dogfood test for https://github.com/facebook/docusaurus/pull/8137","source":"@site/_dogfooding/_docs tests/tests/ascii/folder/\xe6\xf8\xe5.mdx","sourceDirName":"tests/ascii/folder","slug":"/tests/ascii/folder/\xe6\xf8\xe5","permalink":"/tests/docs/tests/ascii/folder/\xe6\xf8\xe5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Admonitions tests","permalink":"/tests/docs/tests/admonitions"},"next":{"title":"index","permalink":"/tests/docs/tests/ascii/\xe6\xf8\xe5/"}}');var n=s(62540),i=s(43023);let r={},a=void 0,c={},d=[];function l(t){let e={a:"a",p:"p",...(0,i.R)(),...t.components};return(0,n.jsxs)(e.p,{children:["Dogfood test for ",(0,n.jsx)(e.a,{href:"https://github.com/facebook/docusaurus/pull/8137",children:"https://github.com/facebook/docusaurus/pull/8137"})]})}function u(t={}){let{wrapper:e}={...(0,i.R)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(l,{...t})}):l(t)}u.displayName="MDXContent(_dogfooding/_docs tests/tests/ascii/folder/\xe6\xf8\xe5.mdx)"},43023:(t,e,s)=>{s.d(e,{R:()=>r,x:()=>a});var o=s(63696);let n={},i=o.createContext(n);function r(t){let e=o.useContext(i);return o.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:r(t.components),o.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/3c616b11.9f0a4b58.js b/assets/js/3c616b11.9f0a4b58.js deleted file mode 100644 index e0f141b09c..0000000000 --- a/assets/js/3c616b11.9f0a4b58.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[14280],{14662:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>o,toc:()=>d});let o=JSON.parse('{"id":"tests/ascii/folder/\xe6\xf8\xe5","title":"\xe6\xf8\xe5","description":"Dogfood test for https://github.com/facebook/docusaurus/pull/8137","source":"@site/_dogfooding/_docs tests/tests/ascii/folder/\xe6\xf8\xe5.mdx","sourceDirName":"tests/ascii/folder","slug":"/tests/ascii/folder/\xe6\xf8\xe5","permalink":"/tests/docs/tests/ascii/folder/\xe6\xf8\xe5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Admonitions tests","permalink":"/tests/docs/tests/admonitions"},"next":{"title":"index","permalink":"/tests/docs/tests/ascii/\xe6\xf8\xe5/"}}');var n=s(62540),i=s(43023);let r={},a=void 0,c={},d=[];function l(t){let e={a:"a",p:"p",...(0,i.R)(),...t.components};return(0,n.jsxs)(e.p,{children:["Dogfood test for ",(0,n.jsx)(e.a,{href:"https://github.com/facebook/docusaurus/pull/8137",children:"https://github.com/facebook/docusaurus/pull/8137"})]})}function u(t={}){let{wrapper:e}={...(0,i.R)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(l,{...t})}):l(t)}u.displayName="MDXContent(_dogfooding/_docs tests/tests/ascii/folder/\xe6\xf8\xe5.mdx)"},43023:(t,e,s)=>{s.d(e,{R:()=>r,x:()=>a});var o=s(63696);let n={},i=o.createContext(n);function r(t){let e=o.useContext(i);return o.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:r(t.components),o.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/3ce9624a.465d98b3.js b/assets/js/3ce9624a.465d98b3.js deleted file mode 100644 index 0bfb953c2f..0000000000 --- a/assets/js/3ce9624a.465d98b3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[72450],{61041:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>a,contentTitle:()=>u,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>c});let i=JSON.parse('{"id":"resources","title":"Awesome Resources","description":"A curated list of interesting Docusaurus community projects.","source":"@site/community/2-resources.mdx","sourceDirName":".","slug":"/resources","permalink":"/community/resources","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/2-resources.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":2,"frontMatter":{},"sidebar":"community","previous":{"title":"Team","permalink":"/community/team"},"next":{"title":"Contributing","permalink":"/community/contributing"}}');var t=r(62540),n=r(43023);let o={},u="Awesome Resources",a={},c=[{value:"Community documentation",id:"community-documentation",level:2},{value:"Videos",id:"videos",level:2},{value:"Articles",id:"articles",level:2},{value:"Showcase",id:"showcase",level:2},{value:"Community plugins",id:"community-plugins",level:2},{value:"Search",id:"search",level:3},{value:"Integrations",id:"integrations",level:3},{value:"Features",id:"features",level:3},{value:"Enterprise usage",id:"enterprise-usage",level:2}];function l(e){let s={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.header,{children:(0,t.jsx)(s.h1,{id:"awesome-resources",children:"Awesome Resources"})}),"\n",(0,t.jsx)(s.p,{children:"A curated list of interesting Docusaurus community projects."}),"\n",(0,t.jsx)(s.h2,{id:"community-documentation",children:"Community documentation"}),"\n",(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.strong,{children:(0,t.jsx)(s.a,{href:"https://docusaurus.community",children:"Docusaurus.community"})})," site extends the ",(0,t.jsx)(s.a,{href:"/docs",children:"official docs"})," with more complex examples and full articles that recommend best practices and provide solutions to common problems."]}),"\n",(0,t.jsx)(s.p,{children:"It is also a full Docusaurus application just like our main site, so customization and experimentation examples are perfectly suited to be hosted there."}),"\n",(0,t.jsxs)(s.admonition,{type:"info",children:[(0,t.jsx)(s.p,{children:"We might allow direct links to be added in our official documentation that point to the community documentation, on a case-by-case basis, if the community finds such links to articles useful."}),(0,t.jsx)(s.p,{children:"We are also contemplating further integration into the official documentation at some point in the future."})]}),"\n",(0,t.jsx)(s.h2,{id:"videos",children:"Videos"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://www.youtube.com/watch?v=QcGJsf6mgZE",children:"F8 2019: Using Docusaurus to Create Open Source Websites"})}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"articles",children:"Articles"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/webbertakken/awesome-docusaurus#readme",children:"Awesome Docusaurus"})," - Community curated list of Docusaurus resources."]}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://dev.to/mrmuhammadali/live-code-editing-in-docusaurus-ux-at-its-best-2hj1",children:"Live code editing in Docusaurus"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://blog.johnnyreilly.com/definitive-guide-to-migrating-from-blogger-to-docusaurus",children:"The definitive guide to migrating from Blogger to Docusaurus"})}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"showcase",children:"Showcase"}),"\n",(0,t.jsxs)(s.p,{children:["See the ",(0,t.jsx)("a",{href:r(27167).Ay("showcase"),children:"showcase"}),"."]}),"\n",(0,t.jsx)(s.h2,{id:"community-plugins",children:"Community plugins"}),"\n",(0,t.jsx)(s.h3,{id:"search",children:"Search"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/daldridge/docusaurus-plugin-lunr",children:"docusaurus-plugin-lunr"})," - Docusaurus plugin to create a local search index for use with Lunr.js"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/lelouch77/docusaurus-lunr-search",children:"docusaurus-lunr-search"})," - Offline Search for Docusaurus"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/cmfcmf/docusaurus-search-local",children:"docusaurus-search-local"})," - Offline/local search for Docusaurus"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/easyops-cn/docusaurus-search-local",children:"@easyops-cn/docusaurus-search-local"})," - Offline/local search for Docusaurus (language of zh supported)"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/typesense/docusaurus-theme-search-typesense",children:"docusaurus-theme-search-typesense"})," - Docusaurus plugin for ",(0,t.jsx)(s.a,{href:"https://typesense.org/docs/latest/guide/docsearch.html",children:"Typesense DocSearch"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/motifland/markprompt-js/tree/main/packages/docusaurus-theme-search",children:"@markprompt/docusaurus-theme-search"})," - Docusaurus plugin to add generative AI / LLM-powered docs search, powered by ",(0,t.jsx)(s.a,{href:"https://markprompt.com",children:"Markprompt"}),"."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/tauri-apps/meilisearch-docsearch",children:"meilisearch-docsearch"})," - Docusaurus plugin for ",(0,t.jsx)(s.a,{href:"https://www.meilisearch.com",children:"Meilisearch"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/askorama/orama/tree/main/packages/plugin-docusaurus",children:"@orama/plugin-docusaurus"})," - ",(0,t.jsx)(s.a,{href:"https://askorama.ai/",children:"Orama"})," plugin for Docusaurus v2"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/askorama/orama/tree/main/packages/plugin-docusaurus-v3",children:"@orama/plugin-docusaurus-v3"})," - ",(0,t.jsx)(s.a,{href:"https://askorama.ai/",children:"Orama"})," plugin for Docusaurus v3"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://getcanary.dev/docs/integrations/docusaurus.html",children:"@getcanary/docusaurus-theme-search-pagefind"})," - Create ",(0,t.jsx)(s.a,{href:"https://pagefind.app/",children:"Pagefind"})," index and use ",(0,t.jsx)(s.a,{href:"https://github.com/fastrepl/canary",children:"Canary"})," as UI primitives."]}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"integrations",children:"Integrations"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/jonnynabors/docusaurus2-dotenv",children:"docusaurus2-dotenv"})," - A Docusaurus plugin that supports dotenv and other environment variables"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/PostHog/posthog-docusaurus",children:"posthog-docusaurus"})," - Integrate ",(0,t.jsx)(s.a,{href:"https://posthog.com/",children:"PostHog"})," product analytics with Docusaurus"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/Moesif/docusaurus-plugin-moesif",children:"docusaurus-plugin-moesif"})," - Adds ",(0,t.jsx)(s.a,{href:"https://www.moesif.com/",children:"Moesif API Analytics"})," to track user behavior and pinpoint where developers drop off in your activation funnel."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/sgromkov/docusaurus-plugin-yandex-metrica",children:"docusaurus-plugin-yandex-metrica"})," - Adds ",(0,t.jsx)(s.a,{href:"https://metrika.yandex.ru/",children:"Yandex Metrika"})," counter for evaluating site traffic and analyzing user behavior."]}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"features",children:"Features"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/saucelabs/docusaurus-theme-github-codeblock",children:"docusaurus-theme-github-codeblock"}),". A Docusaurus plugin that supports referencing code examples from public GitHub repositories"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/jean-humann/docs-to-pdf",children:"docs-to-pdf"})," - Generate documentation into PDF format"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/rlamana/docusaurus-plugin-sass",children:"docusaurus-plugin-sass"})," - Sass/SCSS stylesheets support"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/rdilweb/docusaurus-plugin-remote-content",children:"docusaurus-plugin-remote-content"})," - A Docusaurus plugin that allows you to fetch content from remote sources"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/graphql-markdown/graphql-markdown",children:"@graphql-markdown/docusaurus"})," - A Docusaurus plugin for generating documentation from GraphQL schemas"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/atomicpages/docusaurus-plugin-react-docgen-typescript",children:"docusaurus-plugin-react-docgen-typescript"})," - A Docusaurus plugin for loading type annotations from ",(0,t.jsx)(s.code,{children:"react-docgen-typescript"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/atomicpages/docusaurus-plugin-react-docgen",children:"docusaurus-plugin-react-docgen"})," - A Docusaurus plugin for loading type annotations from ",(0,t.jsx)(s.code,{children:"react-docgen"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/atomicpages/docusaurus-plugin-module-alias",children:"docusaurus-plugin-module-alias"})," - A Docusaurus plugin for quickly aliasing local modules"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/protobuffet/docusaurus-protobuffet",children:"docusaurus-protobuffet"})," - Docusaurus toolset for Protobuf contract documentation"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/signcl/docusaurus-prince-pdf",children:"docusaurus-prince-pdf"})," - Generate PDF with PrinceXML for better font subsetting and ToC features. Support Docusaurus sites"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/rohit-gohri/redocusaurus",children:"redocusaurus"})," - A Docusaurus preset for integrating OpenAPI documentation into your docs with ",(0,t.jsx)(s.a,{href:"https://github.com/redocly/redoc",children:"Redoc"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/flexanalytics/plugin-image-zoom",children:"plugin-image-zoom"})," - An Image Zoom plugin for Docusaurus"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/tgreyuk/typedoc-plugin-markdown/tree/master/packages/docusaurus-plugin-typedoc",children:"docusaurus-plugin-typedoc"})," - A Docusaurus plugin to build documentation with ",(0,t.jsx)(s.a,{href:"https://typedoc.org/",children:"TypeDoc"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/PaloAltoNetworks/docusaurus-openapi-docs",children:"docusaurus-openapi-docs"})," - A Docusaurus plugin and theme for generating interactive OpenAPI docs"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/moojing/docusaurus-post-generator",children:"docusaurus-post-generator"})," - A command line tool for user to add a blog/doc file quickly by command like ",(0,t.jsx)(s.code,{children:"yarn gen-post new [template] [post_name]"}),"."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/Arsero/docusaurus-graph",children:"docusaurus-graph"})," - A Docusaurus plugin for generating a graph view showing links between documentation files."]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"enterprise-usage",children:"Enterprise usage"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Facebook"}),"\n",(0,t.jsx)(s.li,{children:"Google"}),"\n",(0,t.jsx)(s.li,{children:"Stripe"}),"\n",(0,t.jsx)(s.li,{children:"Algolia"}),"\n",(0,t.jsx)(s.li,{children:"Callstack"}),"\n",(0,t.jsx)(s.li,{children:"Sauce Labs"}),"\n"]})]})}function h(e={}){let{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},43023:(e,s,r)=>{r.d(s,{R:()=>o,x:()=>u});var i=r(63696);let t={},n=i.createContext(t);function o(e){let s=i.useContext(n);return i.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function u(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(n.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3ce9624a.8b089097.js b/assets/js/3ce9624a.8b089097.js new file mode 100644 index 0000000000..c976d253e5 --- /dev/null +++ b/assets/js/3ce9624a.8b089097.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[72450],{61041:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>a,contentTitle:()=>u,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>c});let i=JSON.parse('{"id":"resources","title":"Awesome Resources","description":"A curated list of interesting Docusaurus community projects.","source":"@site/community/2-resources.mdx","sourceDirName":".","slug":"/resources","permalink":"/community/resources","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/2-resources.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":2,"frontMatter":{},"sidebar":"community","previous":{"title":"Team","permalink":"/community/team"},"next":{"title":"Contributing","permalink":"/community/contributing"}}');var t=r(62540),n=r(43023);let o={},u="Awesome Resources",a={},c=[{value:"Community documentation",id:"community-documentation",level:2},{value:"Videos",id:"videos",level:2},{value:"Articles",id:"articles",level:2},{value:"Showcase",id:"showcase",level:2},{value:"Community plugins",id:"community-plugins",level:2},{value:"Search",id:"search",level:3},{value:"Integrations",id:"integrations",level:3},{value:"Features",id:"features",level:3},{value:"Enterprise usage",id:"enterprise-usage",level:2}];function l(e){let s={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.header,{children:(0,t.jsx)(s.h1,{id:"awesome-resources",children:"Awesome Resources"})}),"\n",(0,t.jsx)(s.p,{children:"A curated list of interesting Docusaurus community projects."}),"\n",(0,t.jsx)(s.h2,{id:"community-documentation",children:"Community documentation"}),"\n",(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.strong,{children:(0,t.jsx)(s.a,{href:"https://docusaurus.community",children:"Docusaurus.community"})})," site extends the ",(0,t.jsx)(s.a,{href:"/docs",children:"official docs"})," with more complex examples and full articles that recommend best practices and provide solutions to common problems."]}),"\n",(0,t.jsx)(s.p,{children:"It is also a full Docusaurus application just like our main site, so customization and experimentation examples are perfectly suited to be hosted there."}),"\n",(0,t.jsxs)(s.admonition,{type:"info",children:[(0,t.jsx)(s.p,{children:"We might allow direct links to be added in our official documentation that point to the community documentation, on a case-by-case basis, if the community finds such links to articles useful."}),(0,t.jsx)(s.p,{children:"We are also contemplating further integration into the official documentation at some point in the future."})]}),"\n",(0,t.jsx)(s.h2,{id:"videos",children:"Videos"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://www.youtube.com/watch?v=QcGJsf6mgZE",children:"F8 2019: Using Docusaurus to Create Open Source Websites"})}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"articles",children:"Articles"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/webbertakken/awesome-docusaurus#readme",children:"Awesome Docusaurus"})," - Community curated list of Docusaurus resources."]}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://dev.to/mrmuhammadali/live-code-editing-in-docusaurus-ux-at-its-best-2hj1",children:"Live code editing in Docusaurus"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://blog.johnnyreilly.com/definitive-guide-to-migrating-from-blogger-to-docusaurus",children:"The definitive guide to migrating from Blogger to Docusaurus"})}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"showcase",children:"Showcase"}),"\n",(0,t.jsxs)(s.p,{children:["See the ",(0,t.jsx)("a",{href:r(27167).Ay("showcase"),children:"showcase"}),"."]}),"\n",(0,t.jsx)(s.h2,{id:"community-plugins",children:"Community plugins"}),"\n",(0,t.jsx)(s.h3,{id:"search",children:"Search"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/daldridge/docusaurus-plugin-lunr",children:"docusaurus-plugin-lunr"})," - Docusaurus plugin to create a local search index for use with Lunr.js"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/lelouch77/docusaurus-lunr-search",children:"docusaurus-lunr-search"})," - Offline Search for Docusaurus"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/cmfcmf/docusaurus-search-local",children:"docusaurus-search-local"})," - Offline/local search for Docusaurus"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/easyops-cn/docusaurus-search-local",children:"@easyops-cn/docusaurus-search-local"})," - Offline/local search for Docusaurus (language of zh supported)"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/typesense/docusaurus-theme-search-typesense",children:"docusaurus-theme-search-typesense"})," - Docusaurus plugin for ",(0,t.jsx)(s.a,{href:"https://typesense.org/docs/latest/guide/docsearch.html",children:"Typesense DocSearch"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/motifland/markprompt-js/tree/main/packages/docusaurus-theme-search",children:"@markprompt/docusaurus-theme-search"})," - Docusaurus plugin to add generative AI / LLM-powered docs search, powered by ",(0,t.jsx)(s.a,{href:"https://markprompt.com",children:"Markprompt"}),"."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/tauri-apps/meilisearch-docsearch",children:"meilisearch-docsearch"})," - Docusaurus plugin for ",(0,t.jsx)(s.a,{href:"https://www.meilisearch.com",children:"Meilisearch"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/askorama/orama/tree/main/packages/plugin-docusaurus",children:"@orama/plugin-docusaurus"})," - ",(0,t.jsx)(s.a,{href:"https://askorama.ai/",children:"Orama"})," plugin for Docusaurus v2"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/askorama/orama/tree/main/packages/plugin-docusaurus-v3",children:"@orama/plugin-docusaurus-v3"})," - ",(0,t.jsx)(s.a,{href:"https://askorama.ai/",children:"Orama"})," plugin for Docusaurus v3"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://getcanary.dev/docs/integrations/docusaurus.html",children:"@getcanary/docusaurus-theme-search-pagefind"})," - Create ",(0,t.jsx)(s.a,{href:"https://pagefind.app/",children:"Pagefind"})," index and use ",(0,t.jsx)(s.a,{href:"https://github.com/fastrepl/canary",children:"Canary"})," as UI primitives."]}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"integrations",children:"Integrations"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/jonnynabors/docusaurus2-dotenv",children:"docusaurus2-dotenv"})," - A Docusaurus plugin that supports dotenv and other environment variables"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/PostHog/posthog-docusaurus",children:"posthog-docusaurus"})," - Integrate ",(0,t.jsx)(s.a,{href:"https://posthog.com/",children:"PostHog"})," product analytics with Docusaurus"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/Moesif/docusaurus-plugin-moesif",children:"docusaurus-plugin-moesif"})," - Adds ",(0,t.jsx)(s.a,{href:"https://www.moesif.com/",children:"Moesif API Analytics"})," to track user behavior and pinpoint where developers drop off in your activation funnel."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/sgromkov/docusaurus-plugin-yandex-metrica",children:"docusaurus-plugin-yandex-metrica"})," - Adds ",(0,t.jsx)(s.a,{href:"https://metrika.yandex.ru/",children:"Yandex Metrika"})," counter for evaluating site traffic and analyzing user behavior."]}),"\n"]}),"\n",(0,t.jsx)(s.h3,{id:"features",children:"Features"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/saucelabs/docusaurus-theme-github-codeblock",children:"docusaurus-theme-github-codeblock"}),". A Docusaurus plugin that supports referencing code examples from public GitHub repositories"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/jean-humann/docs-to-pdf",children:"docs-to-pdf"})," - Generate documentation into PDF format"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/rlamana/docusaurus-plugin-sass",children:"docusaurus-plugin-sass"})," - Sass/SCSS stylesheets support"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/rdilweb/docusaurus-plugin-remote-content",children:"docusaurus-plugin-remote-content"})," - A Docusaurus plugin that allows you to fetch content from remote sources"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/graphql-markdown/graphql-markdown",children:"@graphql-markdown/docusaurus"})," - A Docusaurus plugin for generating documentation from GraphQL schemas"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/atomicpages/docusaurus-plugin-react-docgen-typescript",children:"docusaurus-plugin-react-docgen-typescript"})," - A Docusaurus plugin for loading type annotations from ",(0,t.jsx)(s.code,{children:"react-docgen-typescript"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/atomicpages/docusaurus-plugin-react-docgen",children:"docusaurus-plugin-react-docgen"})," - A Docusaurus plugin for loading type annotations from ",(0,t.jsx)(s.code,{children:"react-docgen"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/atomicpages/docusaurus-plugin-module-alias",children:"docusaurus-plugin-module-alias"})," - A Docusaurus plugin for quickly aliasing local modules"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/protobuffet/docusaurus-protobuffet",children:"docusaurus-protobuffet"})," - Docusaurus toolset for Protobuf contract documentation"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/signcl/docusaurus-prince-pdf",children:"docusaurus-prince-pdf"})," - Generate PDF with PrinceXML for better font subsetting and ToC features. Support Docusaurus sites"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/rohit-gohri/redocusaurus",children:"redocusaurus"})," - A Docusaurus preset for integrating OpenAPI documentation into your docs with ",(0,t.jsx)(s.a,{href:"https://github.com/redocly/redoc",children:"Redoc"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/flexanalytics/plugin-image-zoom",children:"plugin-image-zoom"})," - An Image Zoom plugin for Docusaurus"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/tgreyuk/typedoc-plugin-markdown/tree/master/packages/docusaurus-plugin-typedoc",children:"docusaurus-plugin-typedoc"})," - A Docusaurus plugin to build documentation with ",(0,t.jsx)(s.a,{href:"https://typedoc.org/",children:"TypeDoc"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/PaloAltoNetworks/docusaurus-openapi-docs",children:"docusaurus-openapi-docs"})," - A Docusaurus plugin and theme for generating interactive OpenAPI docs"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/moojing/docusaurus-post-generator",children:"docusaurus-post-generator"})," - A command line tool for user to add a blog/doc file quickly by command like ",(0,t.jsx)(s.code,{children:"yarn gen-post new [template] [post_name]"}),"."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/Arsero/docusaurus-graph",children:"docusaurus-graph"})," - A Docusaurus plugin for generating a graph view showing links between documentation files."]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"enterprise-usage",children:"Enterprise usage"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Facebook"}),"\n",(0,t.jsx)(s.li,{children:"Google"}),"\n",(0,t.jsx)(s.li,{children:"Stripe"}),"\n",(0,t.jsx)(s.li,{children:"Algolia"}),"\n",(0,t.jsx)(s.li,{children:"Callstack"}),"\n",(0,t.jsx)(s.li,{children:"Sauce Labs"}),"\n"]})]})}function h(e={}){let{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},43023:(e,s,r)=>{r.d(s,{R:()=>o,x:()=>u});var i=r(63696);let t={},n=i.createContext(t);function o(e){let s=i.useContext(n);return i.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function u(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(n.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3dd2dc02.2b84db05.js b/assets/js/3dd2dc02.2b84db05.js new file mode 100644 index 0000000000..8c2ed3f6e5 --- /dev/null +++ b/assets/js/3dd2dc02.2b84db05.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[10797],{46552:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>r});let s=JSON.parse('{"id":"advanced/client","title":"Client architecture","description":"How the Docusaurus client is structured","source":"@site/docs/advanced/client.mdx","sourceDirName":"advanced","slug":"/advanced/client","permalink":"/docs/advanced/client","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/advanced/client.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"How the Docusaurus client is structured"},"sidebar":"docs","previous":{"title":"Static site generation","permalink":"/docs/advanced/ssg"},"next":{"title":"Upgrading Docusaurus","permalink":"/docs/migration"}}');var o=t(62540),i=t(43023);let l={description:"How the Docusaurus client is structured"},a="Client architecture",c={},r=[{value:"Theme aliases",id:"theme-aliases",level:2},{value:"Client modules",id:"client-modules",level:2},{value:"Client module lifecycles",id:"client-module-lifecycles",level:3}];function d(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"client-architecture",children:"Client architecture"})}),"\n",(0,o.jsx)(n.h2,{id:"theme-aliases",children:"Theme aliases"}),"\n",(0,o.jsxs)(n.p,{children:["A theme works by exporting a set of components, e.g. ",(0,o.jsx)(n.code,{children:"Navbar"}),", ",(0,o.jsx)(n.code,{children:"Layout"}),", ",(0,o.jsx)(n.code,{children:"Footer"}),", to render the data passed down from plugins. Docusaurus and users use these components by importing them using the ",(0,o.jsx)(n.code,{children:"@theme"})," webpack alias:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-js",children:"import Navbar from '@theme/Navbar';\n"})}),"\n",(0,o.jsxs)(n.p,{children:["The alias ",(0,o.jsx)(n.code,{children:"@theme"})," can refer to a few directories, in the following priority:"]}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["A user's ",(0,o.jsx)(n.code,{children:"website/src/theme"})," directory, which is a special directory that has the higher precedence."]}),"\n",(0,o.jsxs)(n.li,{children:["A Docusaurus theme package's ",(0,o.jsx)(n.code,{children:"theme"})," directory."]}),"\n",(0,o.jsx)(n.li,{children:"Fallback components provided by Docusaurus core (usually not needed)."}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["This is called a ",(0,o.jsx)(n.em,{children:"layered architecture"}),": a higher-priority layer providing the component would shadow a lower-priority layer, making swizzling possible. Given the following structure:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"website\n\u251C\u2500\u2500 node_modules\n\u2502 \u2514\u2500\u2500 @docusaurus/theme-classic\n\u2502 \u2514\u2500\u2500 theme\n\u2502 \u2514\u2500\u2500 Navbar.js\n\u2514\u2500\u2500 src\n \u2514\u2500\u2500 theme\n \u2514\u2500\u2500 Navbar.js\n"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"website/src/theme/Navbar.js"})," takes precedence whenever ",(0,o.jsx)(n.code,{children:"@theme/Navbar"})," is imported. This behavior is called component swizzling. If you are familiar with Objective C where a function's implementation can be swapped during runtime, it's the exact same concept here with changing the target ",(0,o.jsx)(n.code,{children:"@theme/Navbar"})," is pointing to!"]}),"\n",(0,o.jsxs)(n.p,{children:['We already talked about how the "userland theme" in ',(0,o.jsx)(n.code,{children:"src/theme"})," can re-use a theme component through the ",(0,o.jsx)(n.a,{href:"/docs/swizzling#wrapping",children:(0,o.jsx)(n.code,{children:"@theme-original"})})," alias. One theme package can also wrap a component from another theme, by importing the component from the initial theme, using the ",(0,o.jsx)(n.code,{children:"@theme-init"})," import."]}),"\n",(0,o.jsxs)(n.p,{children:["Here's an example of using this feature to enhance the default theme ",(0,o.jsx)(n.code,{children:"CodeBlock"})," component with a ",(0,o.jsx)(n.code,{children:"react-live"})," playground feature."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-js",children:"import InitialCodeBlock from '@theme-init/CodeBlock';\nimport React from 'react';\n\nexport default function CodeBlock(props) {\n return props.live ? (\n <ReactLivePlayground {...props} />\n ) : (\n <InitialCodeBlock {...props} />\n );\n}\n"})}),"\n",(0,o.jsxs)(n.p,{children:["Check the code of ",(0,o.jsx)(n.code,{children:"@docusaurus/theme-live-codeblock"})," for details."]}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsxs)(n.p,{children:['Unless you want to publish a re-usable "theme enhancer" (like ',(0,o.jsx)(n.code,{children:"@docusaurus/theme-live-codeblock"}),"), you likely don't need ",(0,o.jsx)(n.code,{children:"@theme-init"}),"."]})}),"\n",(0,o.jsx)(n.p,{children:'It can be quite hard to wrap your mind around these aliases. Let\'s imagine the following case with a super convoluted setup with three themes/plugins and the site itself all trying to define the same component. Internally, Docusaurus loads these themes as a "stack".'}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-text",children:"+-------------------------------------------------+\n| `website/src/theme/CodeBlock.js` | <-- `@theme/CodeBlock` always points to the top\n+-------------------------------------------------+\n| `theme-live-codeblock/theme/CodeBlock/index.js` | <-- `@theme-original/CodeBlock` points to the topmost non-swizzled component\n+-------------------------------------------------+\n| `plugin-awesome-codeblock/theme/CodeBlock.js` |\n+-------------------------------------------------+\n| `theme-classic/theme/CodeBlock/index.js` | <-- `@theme-init/CodeBlock` always points to the bottom\n+-------------------------------------------------+\n"})}),"\n",(0,o.jsxs)(n.p,{children:['The components in this "stack" are pushed in the order of ',(0,o.jsx)(n.code,{children:"preset plugins > preset themes > plugins > themes > site"}),", so the swizzled component in ",(0,o.jsx)(n.code,{children:"website/src/theme"})," always comes out on top because it's loaded last."]}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"@theme/*"})," always points to the topmost component\u2014when ",(0,o.jsx)(n.code,{children:"CodeBlock"})," is swizzled, all other components requesting ",(0,o.jsx)(n.code,{children:"@theme/CodeBlock"})," receive the swizzled version."]}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"@theme-original/*"})," always points to the topmost non-swizzled component. That's why you can import ",(0,o.jsx)(n.code,{children:"@theme-original/CodeBlock"}),' in the swizzled component\u2014it points to the next one in the "component stack", a theme-provided one. Plugin authors should not try to use this because your component could be the topmost component and cause a self-import.']}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"@theme-init/*"})," always points to the bottommost component\u2014usually, this comes from the theme or plugin that first provides this component. Individual plugins / themes trying to enhance code block can safely use ",(0,o.jsx)(n.code,{children:"@theme-init/CodeBlock"})," to get its basic version. Site creators should generally not use this because you likely want to enhance the ",(0,o.jsx)(n.em,{children:"topmost"})," instead of the ",(0,o.jsx)(n.em,{children:"bottommost"})," component. It's also possible that the ",(0,o.jsx)(n.code,{children:"@theme-init/CodeBlock"})," alias does not exist at all\u2014Docusaurus only creates it when it points to a different one from ",(0,o.jsx)(n.code,{children:"@theme-original/CodeBlock"}),", i.e. when it's provided by more than one theme. We don't waste aliases!"]}),"\n",(0,o.jsx)(n.h2,{id:"client-modules",children:"Client modules"}),"\n",(0,o.jsxs)(n.p,{children:["Client modules are part of your site's bundle, just like theme components. However, they are usually side-effect-ful. Client modules are anything that can be ",(0,o.jsx)(n.code,{children:"import"}),"ed by Webpack\u2014CSS, JS, etc. JS scripts usually work on the global context, like registering event listeners, creating global variables..."]}),"\n",(0,o.jsx)(n.p,{children:"These modules are imported globally before React even renders the initial UI."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-js",metastring:'title="@docusaurus/core/App.tsx"',children:"// How it works under the hood\nimport '@generated/client-modules';\n"})}),"\n",(0,o.jsxs)(n.p,{children:["Plugins and sites can both declare client modules, through ",(0,o.jsx)(n.a,{href:"/docs/api/plugin-methods/lifecycle-apis#getClientModules",children:(0,o.jsx)(n.code,{children:"getClientModules"})})," and ",(0,o.jsx)(n.a,{href:"/docs/api/docusaurus-config#clientModules",children:(0,o.jsx)(n.code,{children:"siteConfig.clientModules"})}),", respectively."]}),"\n",(0,o.jsxs)(n.p,{children:["Client modules are called during server-side rendering as well, so remember to check the ",(0,o.jsx)(n.a,{href:"/docs/advanced/ssg#escape-hatches",children:"execution environment"})," before accessing client-side globals."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-js",metastring:'title="mySiteGlobalJs.js"',children:"import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment';\n\nif (ExecutionEnvironment.canUseDOM) {\n // As soon as the site loads in the browser, register a global event listener\n window.addEventListener('keydown', (e) => {\n if (e.code === 'Period') {\n location.assign(location.href.replace('.com', '.dev'));\n }\n });\n}\n"})}),"\n",(0,o.jsxs)(n.p,{children:["CSS stylesheets imported as client modules are ",(0,o.jsx)(n.a,{href:"/docs/styling-layout#global-styles",children:"global"}),"."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-css",metastring:'title="mySiteGlobalCss.css"',children:"/* This stylesheet is global. */\n.globalSelector {\n color: red;\n}\n"})}),"\n",(0,o.jsx)(n.h3,{id:"client-module-lifecycles",children:"Client module lifecycles"}),"\n",(0,o.jsxs)(n.p,{children:["Besides introducing side-effects, client modules can optionally export two lifecycle functions: ",(0,o.jsx)(n.code,{children:"onRouteUpdate"})," and ",(0,o.jsx)(n.code,{children:"onRouteDidUpdate"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["Because Docusaurus builds a single-page application, ",(0,o.jsx)(n.code,{children:"script"})," tags will only be executed the first time the page loads, but will not re-execute on page transitions. These lifecycles are useful if you have some imperative JS logic that should execute every time a new page has loaded, e.g., to manipulate DOM elements, to send analytics data, etc."]}),"\n",(0,o.jsx)(n.p,{children:"For every route transition, there will be several important timings:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"The user clicks a link, which causes the router to change its current location."}),"\n",(0,o.jsx)(n.li,{children:"Docusaurus preloads the next route's assets, while keeping displaying the current page's content."}),"\n",(0,o.jsx)(n.li,{children:"The next route's assets have loaded."}),"\n",(0,o.jsx)(n.li,{children:"The new location's route component gets rendered to DOM."}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"onRouteUpdate"})," will be called at event (2), and ",(0,o.jsx)(n.code,{children:"onRouteDidUpdate"})," will be called at (4). They both receive the current location and the previous location (which can be ",(0,o.jsx)(n.code,{children:"null"}),", if this is the first screen)."]}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"onRouteUpdate"}),' can optionally return a "cleanup" callback, which will be called at (3). For example, if you want to display a progress bar, you can start a timeout in ',(0,o.jsx)(n.code,{children:"onRouteUpdate"}),", and clear the timeout in the callback. (The classic theme already provides an ",(0,o.jsx)(n.code,{children:"nprogress"})," integration this way.)"]}),"\n",(0,o.jsxs)(n.p,{children:["Note that the new page's DOM is only available during event (4). If you need to manipulate the new page's DOM, you'll likely want to use ",(0,o.jsx)(n.code,{children:"onRouteDidUpdate"}),", which will be fired as soon as the DOM on the new page has mounted."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-js",metastring:'title="myClientModule.js"',children:"export function onRouteDidUpdate({location, previousLocation}) {\n // Don't execute if we are still on the same page; the lifecycle may be fired\n // because the hash changes (e.g. when navigating between headings)\n if (location.pathname !== previousLocation?.pathname) {\n const title = document.getElementsByTagName('h1')[0];\n if (title) {\n title.innerText += '\u2764\uFE0F';\n }\n }\n}\n\nexport function onRouteUpdate({location, previousLocation}) {\n if (location.pathname !== previousLocation?.pathname) {\n const progressBarTimeout = window.setTimeout(() => {\n nprogress.start();\n }, delay);\n return () => window.clearTimeout(progressBarTimeout);\n }\n return undefined;\n}\n"})}),"\n",(0,o.jsx)(n.p,{children:"Or, if you are using TypeScript and you want to leverage contextual typing:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-ts",metastring:'title="myClientModule.ts"',children:"import type {ClientModule} from '@docusaurus/types';\n\nconst module: ClientModule = {\n onRouteUpdate({location, previousLocation}) {\n // ...\n },\n onRouteDidUpdate({location, previousLocation}) {\n // ...\n },\n};\nexport default module;\n"})}),"\n",(0,o.jsx)(n.p,{children:"Both lifecycles will fire on first render, but they will not fire on server-side, so you can safely access browser globals in them."}),"\n",(0,o.jsx)(n.admonition,{title:"Prefer using React",type:"tip",children:(0,o.jsxs)(n.p,{children:["Client module lifecycles are purely imperative, and you can't use React hooks or access React contexts within them. If your operations are state-driven or involve complicated DOM manipulations, you should consider ",(0,o.jsx)(n.a,{href:"/docs/swizzling",children:"swizzling components"})," instead."]})})]})}function h(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>l,x:()=>a});var s=t(63696);let o={},i=s.createContext(o);function l(e){let n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3dd2dc02.c5170734.js b/assets/js/3dd2dc02.c5170734.js deleted file mode 100644 index bd6b4e8db1..0000000000 --- a/assets/js/3dd2dc02.c5170734.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[10797],{46552:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>r});let s=JSON.parse('{"id":"advanced/client","title":"Client architecture","description":"How the Docusaurus client is structured","source":"@site/docs/advanced/client.mdx","sourceDirName":"advanced","slug":"/advanced/client","permalink":"/docs/advanced/client","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/advanced/client.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"How the Docusaurus client is structured"},"sidebar":"docs","previous":{"title":"Static site generation","permalink":"/docs/advanced/ssg"},"next":{"title":"Upgrading Docusaurus","permalink":"/docs/migration"}}');var o=t(62540),i=t(43023);let l={description:"How the Docusaurus client is structured"},a="Client architecture",c={},r=[{value:"Theme aliases",id:"theme-aliases",level:2},{value:"Client modules",id:"client-modules",level:2},{value:"Client module lifecycles",id:"client-module-lifecycles",level:3}];function d(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"client-architecture",children:"Client architecture"})}),"\n",(0,o.jsx)(n.h2,{id:"theme-aliases",children:"Theme aliases"}),"\n",(0,o.jsxs)(n.p,{children:["A theme works by exporting a set of components, e.g. ",(0,o.jsx)(n.code,{children:"Navbar"}),", ",(0,o.jsx)(n.code,{children:"Layout"}),", ",(0,o.jsx)(n.code,{children:"Footer"}),", to render the data passed down from plugins. Docusaurus and users use these components by importing them using the ",(0,o.jsx)(n.code,{children:"@theme"})," webpack alias:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-js",children:"import Navbar from '@theme/Navbar';\n"})}),"\n",(0,o.jsxs)(n.p,{children:["The alias ",(0,o.jsx)(n.code,{children:"@theme"})," can refer to a few directories, in the following priority:"]}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["A user's ",(0,o.jsx)(n.code,{children:"website/src/theme"})," directory, which is a special directory that has the higher precedence."]}),"\n",(0,o.jsxs)(n.li,{children:["A Docusaurus theme package's ",(0,o.jsx)(n.code,{children:"theme"})," directory."]}),"\n",(0,o.jsx)(n.li,{children:"Fallback components provided by Docusaurus core (usually not needed)."}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["This is called a ",(0,o.jsx)(n.em,{children:"layered architecture"}),": a higher-priority layer providing the component would shadow a lower-priority layer, making swizzling possible. Given the following structure:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"website\n\u251C\u2500\u2500 node_modules\n\u2502 \u2514\u2500\u2500 @docusaurus/theme-classic\n\u2502 \u2514\u2500\u2500 theme\n\u2502 \u2514\u2500\u2500 Navbar.js\n\u2514\u2500\u2500 src\n \u2514\u2500\u2500 theme\n \u2514\u2500\u2500 Navbar.js\n"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"website/src/theme/Navbar.js"})," takes precedence whenever ",(0,o.jsx)(n.code,{children:"@theme/Navbar"})," is imported. This behavior is called component swizzling. If you are familiar with Objective C where a function's implementation can be swapped during runtime, it's the exact same concept here with changing the target ",(0,o.jsx)(n.code,{children:"@theme/Navbar"})," is pointing to!"]}),"\n",(0,o.jsxs)(n.p,{children:['We already talked about how the "userland theme" in ',(0,o.jsx)(n.code,{children:"src/theme"})," can re-use a theme component through the ",(0,o.jsx)(n.a,{href:"/docs/swizzling#wrapping",children:(0,o.jsx)(n.code,{children:"@theme-original"})})," alias. One theme package can also wrap a component from another theme, by importing the component from the initial theme, using the ",(0,o.jsx)(n.code,{children:"@theme-init"})," import."]}),"\n",(0,o.jsxs)(n.p,{children:["Here's an example of using this feature to enhance the default theme ",(0,o.jsx)(n.code,{children:"CodeBlock"})," component with a ",(0,o.jsx)(n.code,{children:"react-live"})," playground feature."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-js",children:"import InitialCodeBlock from '@theme-init/CodeBlock';\nimport React from 'react';\n\nexport default function CodeBlock(props) {\n return props.live ? (\n <ReactLivePlayground {...props} />\n ) : (\n <InitialCodeBlock {...props} />\n );\n}\n"})}),"\n",(0,o.jsxs)(n.p,{children:["Check the code of ",(0,o.jsx)(n.code,{children:"@docusaurus/theme-live-codeblock"})," for details."]}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsxs)(n.p,{children:['Unless you want to publish a re-usable "theme enhancer" (like ',(0,o.jsx)(n.code,{children:"@docusaurus/theme-live-codeblock"}),"), you likely don't need ",(0,o.jsx)(n.code,{children:"@theme-init"}),"."]})}),"\n",(0,o.jsx)(n.p,{children:'It can be quite hard to wrap your mind around these aliases. Let\'s imagine the following case with a super convoluted setup with three themes/plugins and the site itself all trying to define the same component. Internally, Docusaurus loads these themes as a "stack".'}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-text",children:"+-------------------------------------------------+\n| `website/src/theme/CodeBlock.js` | <-- `@theme/CodeBlock` always points to the top\n+-------------------------------------------------+\n| `theme-live-codeblock/theme/CodeBlock/index.js` | <-- `@theme-original/CodeBlock` points to the topmost non-swizzled component\n+-------------------------------------------------+\n| `plugin-awesome-codeblock/theme/CodeBlock.js` |\n+-------------------------------------------------+\n| `theme-classic/theme/CodeBlock/index.js` | <-- `@theme-init/CodeBlock` always points to the bottom\n+-------------------------------------------------+\n"})}),"\n",(0,o.jsxs)(n.p,{children:['The components in this "stack" are pushed in the order of ',(0,o.jsx)(n.code,{children:"preset plugins > preset themes > plugins > themes > site"}),", so the swizzled component in ",(0,o.jsx)(n.code,{children:"website/src/theme"})," always comes out on top because it's loaded last."]}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"@theme/*"})," always points to the topmost component\u2014when ",(0,o.jsx)(n.code,{children:"CodeBlock"})," is swizzled, all other components requesting ",(0,o.jsx)(n.code,{children:"@theme/CodeBlock"})," receive the swizzled version."]}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"@theme-original/*"})," always points to the topmost non-swizzled component. That's why you can import ",(0,o.jsx)(n.code,{children:"@theme-original/CodeBlock"}),' in the swizzled component\u2014it points to the next one in the "component stack", a theme-provided one. Plugin authors should not try to use this because your component could be the topmost component and cause a self-import.']}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"@theme-init/*"})," always points to the bottommost component\u2014usually, this comes from the theme or plugin that first provides this component. Individual plugins / themes trying to enhance code block can safely use ",(0,o.jsx)(n.code,{children:"@theme-init/CodeBlock"})," to get its basic version. Site creators should generally not use this because you likely want to enhance the ",(0,o.jsx)(n.em,{children:"topmost"})," instead of the ",(0,o.jsx)(n.em,{children:"bottommost"})," component. It's also possible that the ",(0,o.jsx)(n.code,{children:"@theme-init/CodeBlock"})," alias does not exist at all\u2014Docusaurus only creates it when it points to a different one from ",(0,o.jsx)(n.code,{children:"@theme-original/CodeBlock"}),", i.e. when it's provided by more than one theme. We don't waste aliases!"]}),"\n",(0,o.jsx)(n.h2,{id:"client-modules",children:"Client modules"}),"\n",(0,o.jsxs)(n.p,{children:["Client modules are part of your site's bundle, just like theme components. However, they are usually side-effect-ful. Client modules are anything that can be ",(0,o.jsx)(n.code,{children:"import"}),"ed by Webpack\u2014CSS, JS, etc. JS scripts usually work on the global context, like registering event listeners, creating global variables..."]}),"\n",(0,o.jsx)(n.p,{children:"These modules are imported globally before React even renders the initial UI."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-js",metastring:'title="@docusaurus/core/App.tsx"',children:"// How it works under the hood\nimport '@generated/client-modules';\n"})}),"\n",(0,o.jsxs)(n.p,{children:["Plugins and sites can both declare client modules, through ",(0,o.jsx)(n.a,{href:"/docs/api/plugin-methods/lifecycle-apis#getClientModules",children:(0,o.jsx)(n.code,{children:"getClientModules"})})," and ",(0,o.jsx)(n.a,{href:"/docs/api/docusaurus-config#clientModules",children:(0,o.jsx)(n.code,{children:"siteConfig.clientModules"})}),", respectively."]}),"\n",(0,o.jsxs)(n.p,{children:["Client modules are called during server-side rendering as well, so remember to check the ",(0,o.jsx)(n.a,{href:"/docs/advanced/ssg#escape-hatches",children:"execution environment"})," before accessing client-side globals."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-js",metastring:'title="mySiteGlobalJs.js"',children:"import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment';\n\nif (ExecutionEnvironment.canUseDOM) {\n // As soon as the site loads in the browser, register a global event listener\n window.addEventListener('keydown', (e) => {\n if (e.code === 'Period') {\n location.assign(location.href.replace('.com', '.dev'));\n }\n });\n}\n"})}),"\n",(0,o.jsxs)(n.p,{children:["CSS stylesheets imported as client modules are ",(0,o.jsx)(n.a,{href:"/docs/styling-layout#global-styles",children:"global"}),"."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-css",metastring:'title="mySiteGlobalCss.css"',children:"/* This stylesheet is global. */\n.globalSelector {\n color: red;\n}\n"})}),"\n",(0,o.jsx)(n.h3,{id:"client-module-lifecycles",children:"Client module lifecycles"}),"\n",(0,o.jsxs)(n.p,{children:["Besides introducing side-effects, client modules can optionally export two lifecycle functions: ",(0,o.jsx)(n.code,{children:"onRouteUpdate"})," and ",(0,o.jsx)(n.code,{children:"onRouteDidUpdate"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["Because Docusaurus builds a single-page application, ",(0,o.jsx)(n.code,{children:"script"})," tags will only be executed the first time the page loads, but will not re-execute on page transitions. These lifecycles are useful if you have some imperative JS logic that should execute every time a new page has loaded, e.g., to manipulate DOM elements, to send analytics data, etc."]}),"\n",(0,o.jsx)(n.p,{children:"For every route transition, there will be several important timings:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"The user clicks a link, which causes the router to change its current location."}),"\n",(0,o.jsx)(n.li,{children:"Docusaurus preloads the next route's assets, while keeping displaying the current page's content."}),"\n",(0,o.jsx)(n.li,{children:"The next route's assets have loaded."}),"\n",(0,o.jsx)(n.li,{children:"The new location's route component gets rendered to DOM."}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"onRouteUpdate"})," will be called at event (2), and ",(0,o.jsx)(n.code,{children:"onRouteDidUpdate"})," will be called at (4). They both receive the current location and the previous location (which can be ",(0,o.jsx)(n.code,{children:"null"}),", if this is the first screen)."]}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"onRouteUpdate"}),' can optionally return a "cleanup" callback, which will be called at (3). For example, if you want to display a progress bar, you can start a timeout in ',(0,o.jsx)(n.code,{children:"onRouteUpdate"}),", and clear the timeout in the callback. (The classic theme already provides an ",(0,o.jsx)(n.code,{children:"nprogress"})," integration this way.)"]}),"\n",(0,o.jsxs)(n.p,{children:["Note that the new page's DOM is only available during event (4). If you need to manipulate the new page's DOM, you'll likely want to use ",(0,o.jsx)(n.code,{children:"onRouteDidUpdate"}),", which will be fired as soon as the DOM on the new page has mounted."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-js",metastring:'title="myClientModule.js"',children:"export function onRouteDidUpdate({location, previousLocation}) {\n // Don't execute if we are still on the same page; the lifecycle may be fired\n // because the hash changes (e.g. when navigating between headings)\n if (location.pathname !== previousLocation?.pathname) {\n const title = document.getElementsByTagName('h1')[0];\n if (title) {\n title.innerText += '\u2764\uFE0F';\n }\n }\n}\n\nexport function onRouteUpdate({location, previousLocation}) {\n if (location.pathname !== previousLocation?.pathname) {\n const progressBarTimeout = window.setTimeout(() => {\n nprogress.start();\n }, delay);\n return () => window.clearTimeout(progressBarTimeout);\n }\n return undefined;\n}\n"})}),"\n",(0,o.jsx)(n.p,{children:"Or, if you are using TypeScript and you want to leverage contextual typing:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-ts",metastring:'title="myClientModule.ts"',children:"import type {ClientModule} from '@docusaurus/types';\n\nconst module: ClientModule = {\n onRouteUpdate({location, previousLocation}) {\n // ...\n },\n onRouteDidUpdate({location, previousLocation}) {\n // ...\n },\n};\nexport default module;\n"})}),"\n",(0,o.jsx)(n.p,{children:"Both lifecycles will fire on first render, but they will not fire on server-side, so you can safely access browser globals in them."}),"\n",(0,o.jsx)(n.admonition,{title:"Prefer using React",type:"tip",children:(0,o.jsxs)(n.p,{children:["Client module lifecycles are purely imperative, and you can't use React hooks or access React contexts within them. If your operations are state-driven or involve complicated DOM manipulations, you should consider ",(0,o.jsx)(n.a,{href:"/docs/swizzling",children:"swizzling components"})," instead."]})})]})}function h(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>l,x:()=>a});var s=t(63696);let o={},i=s.createContext(o);function l(e){let n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3e206144.2a0806b6.js b/assets/js/3e206144.2a0806b6.js deleted file mode 100644 index 195b90bc83..0000000000 --- a/assets/js/3e206144.2a0806b6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[91898],{26329:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>r,toc:()=>c});let r=JSON.parse('{"id":"support","title":"Support","description":"Docusaurus has a community of thousands of developers.","source":"@site/community/0-support.mdx","sourceDirName":".","slug":"/support","permalink":"/community/support","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/0-support.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":0,"frontMatter":{},"sidebar":"community","next":{"title":"Team","permalink":"/community/team"}}');var o=t(62540),n=t(43023);let a={},i="Support",u={},c=[{value:"Stack Overflow",id:"stack-overflow",level:2},{value:"Discussion forums",id:"discussion-forums",level:2},{value:"Feature requests",id:"feature-requests",level:2},{value:"News",id:"news",level:2}];function l(e){let s={a:"a",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.header,{children:(0,o.jsx)(s.h1,{id:"support",children:"Support"})}),"\n",(0,o.jsx)(s.p,{children:"Docusaurus has a community of thousands of developers."}),"\n",(0,o.jsx)(s.p,{children:"On this page we've listed some Docusaurus-related communities that you can be a part of; see the other pages in this section for additional online and in-person learning materials."}),"\n",(0,o.jsxs)(s.p,{children:["Before participating in Docusaurus' communities, ",(0,o.jsx)(s.a,{href:"https://engineering.fb.com/codeofconduct/",children:"please read our Code of Conduct"}),". We have adopted the ",(0,o.jsx)(s.a,{href:"https://www.contributor-covenant.org/",children:"Contributor Covenant"})," and we expect that all community members adhere to the guidelines within."]}),"\n",(0,o.jsx)(s.h2,{id:"stack-overflow",children:"Stack Overflow"}),"\n",(0,o.jsxs)(s.p,{children:["Stack Overflow is a popular forum to ask code-level questions or if you're stuck with a specific error. Read through the ",(0,o.jsx)(s.a,{href:"https://stackoverflow.com/questions/tagged/docusaurus",children:"existing questions"})," tagged with ",(0,o.jsx)(s.strong,{children:"docusaurus"})," or ",(0,o.jsx)(s.a,{href:"https://stackoverflow.com/questions/ask?tags=docusaurus",children:"ask your own"}),"!"]}),"\n",(0,o.jsx)(s.h2,{id:"discussion-forums",children:"Discussion forums"}),"\n",(0,o.jsx)(s.p,{children:"There are many online forums for discussion about best practices and application architecture as well as the future of Docusaurus. If you have an answerable code-level question, Stack Overflow is usually a better fit."}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"https://discord.gg/docusaurus",children:"Docusaurus online chat"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"https://discord.gg/fwbcrQ3dHR",children:"#help-and-questions"})," for user help"]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"https://discord.gg/6g6ASPA",children:"#contributors"})," for contributing help"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(s.li,{children:(0,o.jsx)(s.a,{href:"https://www.reddit.com/r/docusaurus/",children:"Reddit's Docusaurus community"})}),"\n"]}),"\n",(0,o.jsx)(s.h2,{id:"feature-requests",children:"Feature requests"}),"\n",(0,o.jsxs)(s.p,{children:["For new feature requests, you can create a post on our ",(0,o.jsx)(s.a,{href:"/feature-requests",children:"feature requests board (Canny)"}),", which is a handy tool for road-mapping and allows for sorting by upvotes, which gives the core team a better indicator of what features are in high demand, as compared to GitHub issues which are harder to triage. Refrain from making a Pull Request for new features (especially large ones) as someone might already be working on it or will be part of our roadmap. Talk to us first!"]}),"\n",(0,o.jsx)(s.h2,{id:"news",children:"News"}),"\n",(0,o.jsxs)(s.p,{children:["For the latest news about Docusaurus, ",(0,o.jsxs)(s.a,{href:"https://x.com/docusaurus",children:["follow ",(0,o.jsx)(s.strong,{children:"@docusaurus"})," on X"]})," and the ",(0,o.jsx)(s.a,{href:"/blog",children:"official Docusaurus blog"})," on this website."]})]})}function d(e={}){let{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>a,x:()=>i});var r=t(63696);let o={},n=r.createContext(o);function a(e){let s=r.useContext(n);return r.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),r.createElement(n.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3e206144.9ab98900.js b/assets/js/3e206144.9ab98900.js new file mode 100644 index 0000000000..dd606b592c --- /dev/null +++ b/assets/js/3e206144.9ab98900.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[91898],{26329:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>r,toc:()=>c});let r=JSON.parse('{"id":"support","title":"Support","description":"Docusaurus has a community of thousands of developers.","source":"@site/community/0-support.mdx","sourceDirName":".","slug":"/support","permalink":"/community/support","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/0-support.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":0,"frontMatter":{},"sidebar":"community","next":{"title":"Team","permalink":"/community/team"}}');var o=t(62540),n=t(43023);let a={},i="Support",u={},c=[{value:"Stack Overflow",id:"stack-overflow",level:2},{value:"Discussion forums",id:"discussion-forums",level:2},{value:"Feature requests",id:"feature-requests",level:2},{value:"News",id:"news",level:2}];function l(e){let s={a:"a",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.header,{children:(0,o.jsx)(s.h1,{id:"support",children:"Support"})}),"\n",(0,o.jsx)(s.p,{children:"Docusaurus has a community of thousands of developers."}),"\n",(0,o.jsx)(s.p,{children:"On this page we've listed some Docusaurus-related communities that you can be a part of; see the other pages in this section for additional online and in-person learning materials."}),"\n",(0,o.jsxs)(s.p,{children:["Before participating in Docusaurus' communities, ",(0,o.jsx)(s.a,{href:"https://engineering.fb.com/codeofconduct/",children:"please read our Code of Conduct"}),". We have adopted the ",(0,o.jsx)(s.a,{href:"https://www.contributor-covenant.org/",children:"Contributor Covenant"})," and we expect that all community members adhere to the guidelines within."]}),"\n",(0,o.jsx)(s.h2,{id:"stack-overflow",children:"Stack Overflow"}),"\n",(0,o.jsxs)(s.p,{children:["Stack Overflow is a popular forum to ask code-level questions or if you're stuck with a specific error. Read through the ",(0,o.jsx)(s.a,{href:"https://stackoverflow.com/questions/tagged/docusaurus",children:"existing questions"})," tagged with ",(0,o.jsx)(s.strong,{children:"docusaurus"})," or ",(0,o.jsx)(s.a,{href:"https://stackoverflow.com/questions/ask?tags=docusaurus",children:"ask your own"}),"!"]}),"\n",(0,o.jsx)(s.h2,{id:"discussion-forums",children:"Discussion forums"}),"\n",(0,o.jsx)(s.p,{children:"There are many online forums for discussion about best practices and application architecture as well as the future of Docusaurus. If you have an answerable code-level question, Stack Overflow is usually a better fit."}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"https://discord.gg/docusaurus",children:"Docusaurus online chat"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"https://discord.gg/fwbcrQ3dHR",children:"#help-and-questions"})," for user help"]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"https://discord.gg/6g6ASPA",children:"#contributors"})," for contributing help"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(s.li,{children:(0,o.jsx)(s.a,{href:"https://www.reddit.com/r/docusaurus/",children:"Reddit's Docusaurus community"})}),"\n"]}),"\n",(0,o.jsx)(s.h2,{id:"feature-requests",children:"Feature requests"}),"\n",(0,o.jsxs)(s.p,{children:["For new feature requests, you can create a post on our ",(0,o.jsx)(s.a,{href:"/feature-requests",children:"feature requests board (Canny)"}),", which is a handy tool for road-mapping and allows for sorting by upvotes, which gives the core team a better indicator of what features are in high demand, as compared to GitHub issues which are harder to triage. Refrain from making a Pull Request for new features (especially large ones) as someone might already be working on it or will be part of our roadmap. Talk to us first!"]}),"\n",(0,o.jsx)(s.h2,{id:"news",children:"News"}),"\n",(0,o.jsxs)(s.p,{children:["For the latest news about Docusaurus, ",(0,o.jsxs)(s.a,{href:"https://x.com/docusaurus",children:["follow ",(0,o.jsx)(s.strong,{children:"@docusaurus"})," on X"]})," and the ",(0,o.jsx)(s.a,{href:"/blog",children:"official Docusaurus blog"})," on this website."]})]})}function d(e={}){let{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>a,x:()=>i});var r=t(63696);let o={},n=r.createContext(o);function a(e){let s=r.useContext(n);return r.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),r.createElement(n.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3ef80f0b.afc9a271.js b/assets/js/3ef80f0b.afc9a271.js deleted file mode 100644 index bfbb7e0cd1..0000000000 --- a/assets/js/3ef80f0b.afc9a271.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[18397],{72728:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>n,toc:()=>d});let n=JSON.parse('{"id":"browser-support","title":"Browser support","description":"How to keep a reasonable bundle size while ensuring sufficient browser support.","source":"@site/docs/browser-support.mdx","sourceDirName":".","slug":"/browser-support","permalink":"/docs/browser-support","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/browser-support.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"How to keep a reasonable bundle size while ensuring sufficient browser support."},"sidebar":"docs","previous":{"title":"Search","permalink":"/docs/search"},"next":{"title":"SEO","permalink":"/docs/seo"}}');var o=r(62540),t=r(43023);let i={description:"How to keep a reasonable bundle size while ensuring sufficient browser support."},a="Browser support",l={},d=[{value:"Purpose",id:"purpose",level:2},{value:"Default values",id:"default-values",level:2},{value:"Read more",id:"read-more",level:2}];function c(e){let s={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.header,{children:(0,o.jsx)(s.h1,{id:"browser-support",children:"Browser support"})}),"\n",(0,o.jsxs)(s.p,{children:["Docusaurus allows sites to define the list of supported browsers through a ",(0,o.jsx)(s.a,{href:"https://github.com/browserslist/browserslist",children:"browserslist configuration"}),"."]}),"\n",(0,o.jsx)(s.h2,{id:"purpose",children:"Purpose"}),"\n",(0,o.jsx)(s.p,{children:"Websites need to balance between backward compatibility and bundle size. As old browsers do not support modern APIs or syntax, more code is needed to implement the same functionality."}),"\n",(0,o.jsxs)(s.p,{children:["For example, you may use the ",(0,o.jsx)(s.a,{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining",children:"optional chaining syntax"}),":"]}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-js",children:"const value = obj?.prop?.val;\n"})}),"\n",(0,o.jsx)(s.p,{children:"...which unfortunately is only recognized by browser versions released after 2020. To be compatible with earlier browser versions, when building your site for production, our JS loader will transpile your code to a more verbose syntax:"}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-js",children:"var _obj, _obj$prop;\n\nconst value =\n (_obj = obj) === null || _obj === void 0\n ? void 0\n : (_obj$prop = _obj.prop) === null || _obj$prop === void 0\n ? void 0\n : _obj$prop.val;\n"})}),"\n",(0,o.jsx)(s.p,{children:"However, this penalizes all other users with increased site load time because the 29-character line now becomes 168 characters\u2014a 6-fold increase! (In practice, it will be better because the names used will be shorter.) As a tradeoff, the JS loader only transpiles the syntax to the degree that's supported by all browser versions defined in the browser list."}),"\n",(0,o.jsxs)(s.p,{children:["The browser list by default is provided through the ",(0,o.jsx)(s.code,{children:"package.json"})," file as a root ",(0,o.jsx)(s.code,{children:"browserslist"})," field."]}),"\n",(0,o.jsx)(s.admonition,{type:"warning",children:(0,o.jsx)(s.p,{children:"On old browsers, the compiled output will use unsupported (too recent) JS syntax, causing React to fail to initialize and end up with a static website with only HTML/CSS and no JS."})}),"\n",(0,o.jsx)(s.h2,{id:"default-values",children:"Default values"}),"\n",(0,o.jsxs)(s.p,{children:["Websites initialized with the default classic template has the following in ",(0,o.jsx)(s.code,{children:"package.json"}),":"]}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-json",metastring:'title="package.json"',children:'{\n "name": "docusaurus",\n // ...\n // highlight-start\n "browserslist": {\n "production": [">0.5%", "not dead", "not op_mini all"],\n "development": [\n "last 1 chrome version",\n "last 1 firefox version",\n "last 1 safari version"\n ]\n }\n // highlight-end\n // ...\n}\n'})}),"\n",(0,o.jsx)(s.p,{children:"Explained in natural language, the browsers supported in production are those:"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:["With more than 0.5% of market share; ",(0,o.jsx)(s.em,{children:"and"})]}),"\n",(0,o.jsxs)(s.li,{children:['Has official support or updates in the past 24 months (the opposite of "dead"); ',(0,o.jsx)(s.em,{children:"and"})]}),"\n",(0,o.jsx)(s.li,{children:"Is not Opera Mini."}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"And browsers used in development are:"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:["The latest version of Chrome ",(0,o.jsx)(s.em,{children:"or"})," Firefox ",(0,o.jsx)(s.em,{children:"or"})," Safari."]}),"\n"]}),"\n",(0,o.jsxs)(s.p,{children:['You can "evaluate" any config with the ',(0,o.jsx)(s.code,{children:"browserslist"})," CLI to obtain the actual list:"]}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-bash",children:'npx browserslist --env="production"\n'})}),"\n",(0,o.jsx)(s.p,{children:"The output is all browsers supported in production. Below is the output in January 2022:"}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-text",children:"and_chr 96\nand_uc 12.12\nchrome 96\nchrome 95\nchrome 94\nedge 96\nfirefox 95\nfirefox 94\nie 11\nios_saf 15.2\nios_saf 15.0-15.1\nios_saf 14.5-14.8\nios_saf 14.0-14.4\nios_saf 12.2-12.5\nopera 82\nopera 81\nsafari 15.1\nsafari 14.1\nsafari 13.1\n"})}),"\n",(0,o.jsx)(s.h2,{id:"read-more",children:"Read more"}),"\n",(0,o.jsxs)(s.p,{children:["You may wish to visit the ",(0,o.jsx)(s.a,{href:"https://github.com/browserslist/browserslist/blob/main/README.md",children:"browserslist documentation"})," for more specifications, especially the accepted ",(0,o.jsx)(s.a,{href:"https://github.com/browserslist/browserslist/blob/main/README.md#queries",children:"query values"})," and ",(0,o.jsx)(s.a,{href:"https://github.com/browserslist/browserslist/blob/main/README.md#best-practices",children:"best practices"}),"."]})]})}function p(e={}){let{wrapper:s}={...(0,t.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},43023:(e,s,r)=>{r.d(s,{R:()=>i,x:()=>a});var n=r(63696);let o={},t=n.createContext(o);function i(e){let s=n.useContext(t);return n.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(o):e.components||o:i(e.components),n.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3ef80f0b.c9e1d0a7.js b/assets/js/3ef80f0b.c9e1d0a7.js new file mode 100644 index 0000000000..4120253a72 --- /dev/null +++ b/assets/js/3ef80f0b.c9e1d0a7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[18397],{72728:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>n,toc:()=>d});let n=JSON.parse('{"id":"browser-support","title":"Browser support","description":"How to keep a reasonable bundle size while ensuring sufficient browser support.","source":"@site/docs/browser-support.mdx","sourceDirName":".","slug":"/browser-support","permalink":"/docs/browser-support","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/browser-support.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"How to keep a reasonable bundle size while ensuring sufficient browser support."},"sidebar":"docs","previous":{"title":"Search","permalink":"/docs/search"},"next":{"title":"SEO","permalink":"/docs/seo"}}');var o=r(62540),t=r(43023);let i={description:"How to keep a reasonable bundle size while ensuring sufficient browser support."},a="Browser support",l={},d=[{value:"Purpose",id:"purpose",level:2},{value:"Default values",id:"default-values",level:2},{value:"Read more",id:"read-more",level:2}];function c(e){let s={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.header,{children:(0,o.jsx)(s.h1,{id:"browser-support",children:"Browser support"})}),"\n",(0,o.jsxs)(s.p,{children:["Docusaurus allows sites to define the list of supported browsers through a ",(0,o.jsx)(s.a,{href:"https://github.com/browserslist/browserslist",children:"browserslist configuration"}),"."]}),"\n",(0,o.jsx)(s.h2,{id:"purpose",children:"Purpose"}),"\n",(0,o.jsx)(s.p,{children:"Websites need to balance between backward compatibility and bundle size. As old browsers do not support modern APIs or syntax, more code is needed to implement the same functionality."}),"\n",(0,o.jsxs)(s.p,{children:["For example, you may use the ",(0,o.jsx)(s.a,{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining",children:"optional chaining syntax"}),":"]}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-js",children:"const value = obj?.prop?.val;\n"})}),"\n",(0,o.jsx)(s.p,{children:"...which unfortunately is only recognized by browser versions released after 2020. To be compatible with earlier browser versions, when building your site for production, our JS loader will transpile your code to a more verbose syntax:"}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-js",children:"var _obj, _obj$prop;\n\nconst value =\n (_obj = obj) === null || _obj === void 0\n ? void 0\n : (_obj$prop = _obj.prop) === null || _obj$prop === void 0\n ? void 0\n : _obj$prop.val;\n"})}),"\n",(0,o.jsx)(s.p,{children:"However, this penalizes all other users with increased site load time because the 29-character line now becomes 168 characters\u2014a 6-fold increase! (In practice, it will be better because the names used will be shorter.) As a tradeoff, the JS loader only transpiles the syntax to the degree that's supported by all browser versions defined in the browser list."}),"\n",(0,o.jsxs)(s.p,{children:["The browser list by default is provided through the ",(0,o.jsx)(s.code,{children:"package.json"})," file as a root ",(0,o.jsx)(s.code,{children:"browserslist"})," field."]}),"\n",(0,o.jsx)(s.admonition,{type:"warning",children:(0,o.jsx)(s.p,{children:"On old browsers, the compiled output will use unsupported (too recent) JS syntax, causing React to fail to initialize and end up with a static website with only HTML/CSS and no JS."})}),"\n",(0,o.jsx)(s.h2,{id:"default-values",children:"Default values"}),"\n",(0,o.jsxs)(s.p,{children:["Websites initialized with the default classic template has the following in ",(0,o.jsx)(s.code,{children:"package.json"}),":"]}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-json",metastring:'title="package.json"',children:'{\n "name": "docusaurus",\n // ...\n // highlight-start\n "browserslist": {\n "production": [">0.5%", "not dead", "not op_mini all"],\n "development": [\n "last 1 chrome version",\n "last 1 firefox version",\n "last 1 safari version"\n ]\n }\n // highlight-end\n // ...\n}\n'})}),"\n",(0,o.jsx)(s.p,{children:"Explained in natural language, the browsers supported in production are those:"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:["With more than 0.5% of market share; ",(0,o.jsx)(s.em,{children:"and"})]}),"\n",(0,o.jsxs)(s.li,{children:['Has official support or updates in the past 24 months (the opposite of "dead"); ',(0,o.jsx)(s.em,{children:"and"})]}),"\n",(0,o.jsx)(s.li,{children:"Is not Opera Mini."}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"And browsers used in development are:"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:["The latest version of Chrome ",(0,o.jsx)(s.em,{children:"or"})," Firefox ",(0,o.jsx)(s.em,{children:"or"})," Safari."]}),"\n"]}),"\n",(0,o.jsxs)(s.p,{children:['You can "evaluate" any config with the ',(0,o.jsx)(s.code,{children:"browserslist"})," CLI to obtain the actual list:"]}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-bash",children:'npx browserslist --env="production"\n'})}),"\n",(0,o.jsx)(s.p,{children:"The output is all browsers supported in production. Below is the output in January 2022:"}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-text",children:"and_chr 96\nand_uc 12.12\nchrome 96\nchrome 95\nchrome 94\nedge 96\nfirefox 95\nfirefox 94\nie 11\nios_saf 15.2\nios_saf 15.0-15.1\nios_saf 14.5-14.8\nios_saf 14.0-14.4\nios_saf 12.2-12.5\nopera 82\nopera 81\nsafari 15.1\nsafari 14.1\nsafari 13.1\n"})}),"\n",(0,o.jsx)(s.h2,{id:"read-more",children:"Read more"}),"\n",(0,o.jsxs)(s.p,{children:["You may wish to visit the ",(0,o.jsx)(s.a,{href:"https://github.com/browserslist/browserslist/blob/main/README.md",children:"browserslist documentation"})," for more specifications, especially the accepted ",(0,o.jsx)(s.a,{href:"https://github.com/browserslist/browserslist/blob/main/README.md#queries",children:"query values"})," and ",(0,o.jsx)(s.a,{href:"https://github.com/browserslist/browserslist/blob/main/README.md#best-practices",children:"best practices"}),"."]})]})}function p(e={}){let{wrapper:s}={...(0,t.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},43023:(e,s,r)=>{r.d(s,{R:()=>i,x:()=>a});var n=r(63696);let o={},t=n.createContext(o);function i(e){let s=n.useContext(t);return n.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(o):e.components||o:i(e.components),n.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4052c491.08dd10dd.js b/assets/js/4052c491.fd252285.js similarity index 93% rename from assets/js/4052c491.08dd10dd.js rename to assets/js/4052c491.fd252285.js index 4feee5d92b..4839e774aa 100644 --- a/assets/js/4052c491.08dd10dd.js +++ b/assets/js/4052c491.fd252285.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[62285],{18695:(e,t,s)=>{s.d(t,{A:()=>i});let i=s.p+"assets/images/endi-f942c4eafb5f650832b4327bfbadae4f.jpg"},55321:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>n,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>u});var i=s(741),a=s(62540),o=s(43023);let r={title:"Tribute to Endi",authors:"JMarcey",tags:["endi","tribute"]},n=void 0,c={authorsImageUrls:[void 0]},u=[];function l(e){let t={a:"a",img:"img",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(t.p,{children:["It is with great sadness to announce that our primary external Docusaurus contributor, ",(0,a.jsx)(t.a,{href:"https://github.com/endiliey",children:"Endilie Yacop Sucipto"})," (Endi to those who knew him), ",(0,a.jsx)(t.a,{href:"https://give.asia/campaign/help_endi_beat_cancer#/updates",children:"passed away"})," over the weekend after an illness associated with his bout with cancer."]}),"\n",(0,a.jsx)(t.p,{children:"It is impossible to overstate Endi's impact on this project:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:["Docusaurus' top contributor, ",(0,a.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/graphs/contributors",children:"by far"}),"."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.a,{href:"https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2",children:"Lead developer"})," on the nearly complete ",(0,a.jsx)(t.a,{href:"https://docusaurus.io/blog/2019/12/30/docusaurus-2019-recap",children:"version 2 of Docusaurus"}),"."]}),"\n",(0,a.jsxs)(t.li,{children:["Overall passionate advocate of the project on ",(0,a.jsx)(t.a,{href:"https://x.com/endiliey",children:"X"}),", ",(0,a.jsx)(t.a,{href:"https://discord.gg/docusaurus",children:"Discord"})," and other social media"]}),"\n"]}),"\n",(0,a.jsx)(t.p,{children:"Thinking about it now, it is absolutely amazing how much Endi accomplished on Docusaurus given what he was battling with his health."}),"\n",(0,a.jsxs)(t.p,{children:["We are working on ways to honor Endi's contributions - a commemorative sticker, possibly - and we are open to ideas. Leave a comment here or ",(0,a.jsx)(t.a,{href:"https://x.com/docusaurus",children:"tweet"})," if you have a suggestion."]}),"\n",(0,a.jsx)(t.p,{children:"The Docusaurus project will not be the same without Endi, and those of us who worked with him will miss him greatly. \u{1F614}"}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{alt:"A photo from behind Endi's back, with Endi sitting on a rock cliff, facing the vast sea. His right hand forms a V pose.",src:s(18695).A+"",width:"1080",height:"1080"})})]})}function h(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},43023:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>n});var i=s(63696);let a={},o=i.createContext(a);function r(e){let t=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function n(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),i.createElement(o.Provider,{value:t},e.children)}},741:e=>{e.exports=JSON.parse('{"permalink":"/blog/2020/01/07/tribute-to-endi","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2020/01-07-tribute-to-endi.mdx","source":"@site/blog/2020/01-07-tribute-to-endi.mdx","title":"Tribute to Endi","description":"It is with great sadness to announce that our primary external Docusaurus contributor, Endilie Yacop Sucipto (Endi to those who knew him), passed away over the weekend after an illness associated with his bout with cancer.","date":"2020-01-07T00:00:00.000Z","tags":[{"inline":false,"label":"Endi","permalink":"/blog/tags/endi"},{"inline":false,"label":"Tribute","permalink":"/blog/tags/tribute"}],"readingTime":0.895,"hasTruncateMarker":true,"authors":[{"name":"Joel Marcey","title":"Developer Advocate at Meta","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{"x":"https://x.com/joelmarcey","github":"https://github.com/JoelMarcey"},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Tribute to Endi","authors":"JMarcey","tags":["endi","tribute"]},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 2020 Recap","permalink":"/blog/2021/01/19/docusaurus-2020-recap"},"nextItem":{"title":"Docusaurus 2019 Recap","permalink":"/blog/2019/12/30/docusaurus-2019-recap"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[62285],{18695:(e,t,s)=>{s.d(t,{A:()=>i});let i=s.p+"assets/images/endi-f942c4eafb5f650832b4327bfbadae4f.jpg"},55321:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>n,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>u});var i=s(741),a=s(62540),o=s(43023);let r={title:"Tribute to Endi",authors:"JMarcey",tags:["endi","tribute"]},n=void 0,c={authorsImageUrls:[void 0]},u=[];function l(e){let t={a:"a",img:"img",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(t.p,{children:["It is with great sadness to announce that our primary external Docusaurus contributor, ",(0,a.jsx)(t.a,{href:"https://github.com/endiliey",children:"Endilie Yacop Sucipto"})," (Endi to those who knew him), ",(0,a.jsx)(t.a,{href:"https://give.asia/campaign/help_endi_beat_cancer#/updates",children:"passed away"})," over the weekend after an illness associated with his bout with cancer."]}),"\n",(0,a.jsx)(t.p,{children:"It is impossible to overstate Endi's impact on this project:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:["Docusaurus' top contributor, ",(0,a.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/graphs/contributors",children:"by far"}),"."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.a,{href:"https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2",children:"Lead developer"})," on the nearly complete ",(0,a.jsx)(t.a,{href:"https://docusaurus.io/blog/2019/12/30/docusaurus-2019-recap",children:"version 2 of Docusaurus"}),"."]}),"\n",(0,a.jsxs)(t.li,{children:["Overall passionate advocate of the project on ",(0,a.jsx)(t.a,{href:"https://x.com/endiliey",children:"X"}),", ",(0,a.jsx)(t.a,{href:"https://discord.gg/docusaurus",children:"Discord"})," and other social media"]}),"\n"]}),"\n",(0,a.jsx)(t.p,{children:"Thinking about it now, it is absolutely amazing how much Endi accomplished on Docusaurus given what he was battling with his health."}),"\n",(0,a.jsxs)(t.p,{children:["We are working on ways to honor Endi's contributions - a commemorative sticker, possibly - and we are open to ideas. Leave a comment here or ",(0,a.jsx)(t.a,{href:"https://x.com/docusaurus",children:"tweet"})," if you have a suggestion."]}),"\n",(0,a.jsx)(t.p,{children:"The Docusaurus project will not be the same without Endi, and those of us who worked with him will miss him greatly. \u{1F614}"}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{alt:"A photo from behind Endi's back, with Endi sitting on a rock cliff, facing the vast sea. His right hand forms a V pose.",src:s(18695).A+"",width:"1080",height:"1080"})})]})}function h(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},43023:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>n});var i=s(63696);let a={},o=i.createContext(a);function r(e){let t=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function n(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),i.createElement(o.Provider,{value:t},e.children)}},741:e=>{e.exports=JSON.parse('{"permalink":"/blog/2020/01/07/tribute-to-endi","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2020/01-07-tribute-to-endi.mdx","source":"@site/blog/2020/01-07-tribute-to-endi.mdx","title":"Tribute to Endi","description":"It is with great sadness to announce that our primary external Docusaurus contributor, Endilie Yacop Sucipto (Endi to those who knew him), passed away over the weekend after an illness associated with his bout with cancer.","date":"2020-01-07T00:00:00.000Z","tags":[{"inline":false,"label":"Endi","permalink":"/blog/tags/endi"},{"inline":false,"label":"Tribute","permalink":"/blog/tags/tribute"}],"readingTime":0.895,"hasTruncateMarker":true,"authors":[{"name":"Joel Marcey","title":"Developer Advocate at Meta","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{"x":"https://x.com/joelmarcey","github":"https://github.com/JoelMarcey"},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Tribute to Endi","authors":"JMarcey","tags":["endi","tribute"]},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 2020 Recap","permalink":"/blog/2021/01/19/docusaurus-2020-recap"},"nextItem":{"title":"Docusaurus 2019 Recap","permalink":"/blog/2019/12/30/docusaurus-2019-recap"}}')}}]); \ No newline at end of file diff --git a/assets/js/42062.7a63e089.js b/assets/js/42062.7a63e089.js deleted file mode 100644 index 0f90b21389..0000000000 --- a/assets/js/42062.7a63e089.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[42062],{42062:(t,i,n)=>{n.d(i,{diagram:()=>h});var s=n(17367);n(95285),n(31546),n(93126),n(31234);var e=function(){var t=function(t,i,n,s){for(n=n||{},s=t.length;s--;n[t[s]]=i);return n},i=[6,9,10],n={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(t,i,n,s,e,r,h){switch(r.length,e){case 1:return s;case 4:break;case 6:s.setInfo(!0)}},table:[{3:1,4:[1,2]},{1:[3]},t(i,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},t(i,[2,3]),t(i,[2,4]),t(i,[2,5]),t(i,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,i){if(i.recoverable)this.trace(t);else{var n=Error(t);throw n.hash=i,n}},parse:function(t){var i=this,n=[0],s=[],e=[null],r=[],h=this.table,o="",l=0,c=0,a=r.slice.call(arguments,1),y=Object.create(this.lexer),u={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(u.yy[p]=this.yy[p]);y.setInput(t,u.yy),u.yy.lexer=y,u.yy.parser=this,void 0===y.yylloc&&(y.yylloc={});var f=y.yylloc;r.push(f);var g=y.options&&y.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,m,d,k,b,x,v,I,w={};;){if(m=n[n.length-1],this.defaultActions[m]?d=this.defaultActions[m]:(null==_&&(_=function(){var t;return"number"!=typeof(t=s.pop()||y.lex()||1)&&(t instanceof Array&&(t=(s=t).pop()),t=i.symbols_[t]||t),t}()),d=h[m]&&h[m][_]),void 0===d||!d.length||!d[0]){var S="";for(b in I=[],h[m])this.terminals_[b]&&b>2&&I.push("'"+this.terminals_[b]+"'");S=y.showPosition?"Parse error on line "+(l+1)+":\n"+y.showPosition()+"\nExpecting "+I.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==_?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(S,{text:y.match,token:this.terminals_[_]||_,line:y.yylineno,loc:f,expected:I})}if(d[0]instanceof Array&&d.length>1)throw Error("Parse Error: multiple actions possible at state: "+m+", token: "+_);switch(d[0]){case 1:n.push(_),e.push(y.yytext),r.push(y.yylloc),n.push(d[1]),_=null,c=y.yyleng,o=y.yytext,l=y.yylineno,f=y.yylloc;break;case 2:if(x=this.productions_[d[1]][1],w.$=e[e.length-x],w._$={first_line:r[r.length-(x||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(x||1)].first_column,last_column:r[r.length-1].last_column},g&&(w._$.range=[r[r.length-(x||1)].range[0],r[r.length-1].range[1]]),void 0!==(k=this.performAction.apply(w,[o,c,l,u.yy,d[1],e,r].concat(a))))return k;x&&(n=n.slice(0,-1*x*2),e=e.slice(0,-1*x),r=r.slice(0,-1*x)),n.push(this.productions_[d[1]][0]),e.push(w.$),r.push(w._$),v=h[n[n.length-2]][n[n.length-1]],n.push(v);break;case 3:return!0}}return!0}};function s(){this.yy={}}return n.lexer={EOF:1,parseError:function(t,i){if(this.yy.parser)this.yy.parser.parseError(t,i);else throw Error(t)},setInput:function(t,i){return this.yy=i||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var i=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===s.length?this.yylloc.first_column:0)+s[s.length-n.length].length-n[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-i]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),i=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+i+"^"},test_match:function(t,i){var n,s,e;if(this.options.backtrack_lexer&&(e={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(e.yylloc.range=this.yylloc.range.slice(0))),(s=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack)for(var r in e)this[r]=e[r];return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,i,n,s,e=this._currentRules(),r=0;r<e.length;r++)if((n=this._input.match(this.rules[e[r]]))&&(!i||n[0].length>i[0].length)){if(i=n,s=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,e[r])))return t;if(!this._backtrack)return!1;i=!1;continue}if(!this.options.flex)break}return i?!1!==(t=this.test_match(i,e[s]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,i,n,s){switch(n){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}},s.prototype=n,n.Parser=s,new s}();e.parser=e;let r=!1,h={parser:e,db:{clear:()=>{r=!1},setInfo:t=>{r=t},getInfo:()=>r},renderer:{draw:(t,i,n)=>{s.l.debug("rendering info diagram\n"+t);let e=(0,s.B)(i);(0,s.i)(e,100,400,!0),e.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${n}`)}}}}}]); \ No newline at end of file diff --git a/assets/js/4228388b.3b82b0ab.js b/assets/js/4228388b.2c689e9b.js similarity index 98% rename from assets/js/4228388b.3b82b0ab.js rename to assets/js/4228388b.2c689e9b.js index c520d807a5..e9cbbc3cf6 100644 --- a/assets/js/4228388b.3b82b0ab.js +++ b/assets/js/4228388b.2c689e9b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[98116],{60505:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/thumbnail-dbb46fec970f4431a6846603224dd2fe.png"},62373:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/courier-624bbae7cbef3b4e7533d1976e35f842.png"},93785:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/dyte-dark-b9748e4bcb4281880ff1856519d58b38.png"},3513:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/dyte-light-24caa76f96400453386185ae6bc06b8a.png"},10909:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/ionic-dark-17086f816052f02e84054fe002256ed9.png"},62565:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/ionic-light-b8a9c77c71a99f4c71a16584dac8ccf3.png"},22046:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/iota-dark-986d9518ba0e03583d734212ba93539d.png"},57696:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/iota-light-d899be0c1eb939a5ad13e2ecca4eb951.png"},87965:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/npm-trend-1e69b5c9e35be8bd6d9ac6fbaaf313d7.png"},42048:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/rising-stars-56326450d25b95f221f56db3b352c724.png"},60205:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/star-history-c7ba492b822fed1336d08fe449f87840.png"},12268:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/thumbnail-dbb46fec970f4431a6846603224dd2fe.png"},4313:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>o,metadata:()=>n,toc:()=>c});var n=t(84128),i=t(62540),r=t(43023);let o={title:"Docusaurus 2021 Recap",authors:["Josh-Cena"],tags:["recap"],image:"./img/thumbnail.png"},a=void 0,l={image:t(60505).A,authorsImageUrls:[void 0]},c=[{value:"Highlights",id:"highlights",level:2},{value:"Trends",id:"trends",level:2},{value:"npm",id:"npm",level:3},{value:"GitHub",id:"github",level:3},{value:"Featured adoptions",id:"featured-adoptions",level:2},{value:"Community",id:"community",level:2},{value:"Going forward",id:"going-forward",level:2}];function h(e){let s={a:"a",blockquote:"blockquote",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(s.p,{children:["Docusaurus has made great progress in 2021! We've seen a lot of traction and just crossed ",(0,i.jsx)(s.strong,{children:"30k stars on GitHub"}),"!"]}),"\n",(0,i.jsxs)(s.p,{children:["We've ",(0,i.jsx)(s.strong,{children:"reached full feature parity"})," with v1 after ",(0,i.jsx)(s.a,{href:"/blog/2021/03/09/releasing-docusaurus-i18n",children:"the release of internationalization"}),", ",(0,i.jsxs)(s.a,{href:"/blog/2021/05/12/announcing-docusaurus-two-beta",children:["announced our ",(0,i.jsx)(s.strong,{children:"first beta"})]}),", and welcomed ",(0,i.jsx)(s.strong,{children:"significantly more users"})," this year."]}),"\n",(0,i.jsxs)(s.p,{children:["The ",(0,i.jsx)(s.strong,{children:"official v2 release"})," is just around the corner! Follow the ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/6113",children:"roadmap issue"})," for any latest news."]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{src:t(12268).A+"",width:"1000",height:"562"})}),"\n",(0,i.jsx)(s.h2,{id:"highlights",children:"Highlights"}),"\n",(0,i.jsxs)(s.p,{children:["Let's begin by going over a few highlights this year. Remember the ",(0,i.jsx)(s.a,{href:"/blog/2021/05/12/announcing-docusaurus-two-beta#whats-next",children:"todo-list"})," from half a year ago? Time to take it out again and see how far we've come!"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Internationalization"}),": officially released four months after its initial landing in late 2020. Seen great success in ",(0,i.jsx)(s.a,{href:"/showcase?tags=i18n",children:"many projects"})]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Autogenerated sidebars"}),": no need to maintain a big ",(0,i.jsx)(s.code,{children:"sidebars.js"})," anymore"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Webpack 5"}),": significantly improved build performance"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Trailing slash config"}),": seamless integration with any content hosting provider"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Redesigned mobile navigation"}),": mobile users now enjoy all navigation features as on desktop"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"UI improvements"}),": more accessible quotes, better admonitions, back-to-top button..."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Blog multi-authors"}),": credit all the amazing contributors that collaborated on one blog post!"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"More blog features"}),": archive page, structured data for SEO, full post content in feeds \u2013 empowering you to ship a fully-featured blog in no time"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Asset collocation"}),": no need for a bloated static folder anymore: colocate your images with Markdown files"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Sidebar category index pages"}),": category labels can now be associated with pages, enabling better doc organization"]}),"\n"]}),"\n",(0,i.jsx)(s.p,{children:"Our codebase has been polished over time as well. We have improved test coverage, migrated all packages to TypeScript, and reduced our published bundle size by a maximum of 60%!"}),"\n",(0,i.jsx)(s.h2,{id:"trends",children:"Trends"}),"\n",(0,i.jsx)(s.h3,{id:"npm",children:"npm"}),"\n",(0,i.jsx)(s.p,{children:"Docusaurus v2 continues to grow steadily. V2 installation is now 8 times more than v1. In terms of weekly downloads, we have witnessed another three-fold increase (+209.4%), growing from 28,066 in early January to a peak of 86,846 in mid-December."}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://www.npmtrends.com/docusaurus-vs-@docusaurus/core",children:(0,i.jsx)(s.img,{alt:"Docusaurus v1 vs. v2 npm trends of the year 2021. The installations of Docusaurus v2 is constantly rising, while v1 is almost constant. V1 stays at 10000, while v2 grows from 30000 to almost 90000. There's a sharp drop from 90000 to 40000 just before the Jan 2022 line.",src:t(87965).A+"",width:"800",height:"483"})})}),"\n",(0,i.jsx)(s.p,{children:"(Ah, the classic Christmas dip...)"}),"\n",(0,i.jsxs)(s.p,{children:["We released 18 versions, going from ",(0,i.jsx)(s.code,{children:"2.0.0-alpha.71"})," to ",(0,i.jsx)(s.code,{children:"2.0.0-beta.14"}),". That's one release every 20 days!"]}),"\n",(0,i.jsx)(s.h3,{id:"github",children:"GitHub"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Stars"}),": 20,460 \u2192 29,679 (+45.1% y/y). And, just before this blog post is published, we have reached 30k stars!"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Total contributors"}),": 512 \u2192 773 (+51.0% y/y)"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Dependents"}),": 5,039 \u2192 14,579 (+189.3% y/y) for v2, and 6,311 \u2192 7,581 (+20.1% y/y) for v1"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Commits"}),": 1,187 commits in the past year, averaging 23 commits every week"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Issues"}),": 619 issues opened, 505 of them eventually resolved"]}),"\n",(0,i.jsxs)(s.li,{children:["A ",(0,i.jsx)(s.a,{href:"https://github.com/Josh-Cena",children:(0,i.jsx)(s.strong,{children:"new core team member"})})," (yep, that's me \u{1F61D})"]}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["Our star trend is also very positive. Compared to similar projects, we are ",(0,i.jsx)(s.strong,{children:"growing at a faster rate"}),":"]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Stars trend by year of 9 static site generators. Next.js grows the fastest, with Docusaurus at the 4th place in terms of growth rate.",src:t(60205).A+"",width:"800",height:"550"})}),"\n",(0,i.jsxs)(s.p,{children:["With an 8.4k increase in stars, we are ranked number 3 in this year's ",(0,i.jsx)(s.a,{href:"https://risingstars.js.org/2021/en#section-ssg",children:"JavaScript rising stars of static site generators"}),", preceded only by Next.js and Astro."]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Docusaurus placing 3rd in the "Static Sites" ranking list",src:t(42048).A+"",width:"600",height:"412"})}),"\n",(0,i.jsx)(s.h2,{id:"featured-adoptions",children:"Featured adoptions"}),"\n",(0,i.jsxs)(s.p,{children:["Our showcase has welcomed a few new ",(0,i.jsx)(s.a,{href:"/showcase?tags=favorite",children:'"favorite" sites'})," that showcase the true potential of Docusaurus 2's pluggable architecture."]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://wiki.iota.org/",children:(0,i.jsx)(s.strong,{children:"IOTA-wiki"})})}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.img,{alt:"Iota wiki light mode",src:t(57696).A+"#gh-light-mode-only",width:"800",height:"456"}),(0,i.jsx)(s.img,{alt:"Iota wiki dark mode",src:t(22046).A+"#gh-dark-mode-only",width:"800",height:"456"})]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://docs.dyte.io/docs/home/introduction/",children:(0,i.jsx)(s.strong,{children:"Dyte"})})}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.img,{alt:"Dyte light mode",src:t(3513).A+"#gh-light-mode-only",width:"800",height:"454"}),(0,i.jsx)(s.img,{alt:"Dyte dark mode",src:t(93785).A+"#gh-dark-mode-only",width:"800",height:"454"})]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://ionicframework.com/docs",children:(0,i.jsx)(s.strong,{children:"Ionic"})})}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.img,{alt:"Ionic light mode",src:t(62565).A+"#gh-light-mode-only",width:"800",height:"456"}),(0,i.jsx)(s.img,{alt:"Ionic dark mode",src:t(10909).A+"#gh-dark-mode-only",width:"800",height:"456"})]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://www.courier.com/docs/",children:(0,i.jsx)(s.strong,{children:"Courier"})})}),"\n"]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Courier",src:t(62373).A+"",width:"800",height:"454"})}),"\n",(0,i.jsxs)(s.p,{children:["The creativity of Docusaurus users is beyond our imagination \u{1F929} We look forward to more and more adopters leveraging the content features of Docusaurus while exploring original theme designs! If your site uses Docusaurus, we would love to ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/edit/main/website/src/data/users.tsx",children:"have it in our showcase"}),"."]}),"\n",(0,i.jsx)(s.h2,{id:"community",children:"Community"}),"\n",(0,i.jsxs)(s.p,{children:["As an active moderator on ",(0,i.jsx)(s.a,{href:"https://discord.gg/docusaurus",children:"Discord"}),", I can clearly see the community thriving. Many frequently asked questions are now integrated into our documentation, and some feature requests have been implemented as well. The project and the community reciprocally benefit each other \u2013 case in point, I was formerly a community contributor before becoming a maintainer."]}),"\n",(0,i.jsx)(s.p,{children:"We are constantly mentioned on X with inspirational feedback:"}),"\n",(0,i.jsxs)(s.blockquote,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"@docusaurus"})," is amazing! cant believe it's THAT simple to use."]}),"\n"]}),"\n",(0,i.jsxs)(s.blockquote,{children:["\n",(0,i.jsx)(s.p,{children:"No extra plugins, tooling or compilation steps. It just works out of the box."}),"\n"]}),"\n",(0,i.jsxs)(s.blockquote,{children:["\n",(0,i.jsxs)(s.p,{children:["I love ",(0,i.jsx)(s.strong,{children:"@docusaurus"}),". I couldn't have built the APIs, tutorials, and blogs contained in my site efficiently and beautifully in my workflow without Docusaurus."]}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["And we keep every one of them in ",(0,i.jsx)(s.a,{href:"https://x.com/sebastienlorber/timelines/1392048416872706049",children:"our little box"})," \u{1F604} If you enjoy Docusaurus yourself, keep tagging us with your comments!"]}),"\n",(0,i.jsxs)(s.p,{children:["As we approach the official release, we are interested in knowing more about what people are doing out there: ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/discussions/4025",children:"plugin authors"}),", ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/discussions/5468",children:"creators of customized sites"}),", and ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/discussions/4610",children:"all new users"})," \u2013 please keep us posted about your achievements so we can steer our development to better serve your needs."]}),"\n",(0,i.jsx)(s.h2,{id:"going-forward",children:"Going forward"}),"\n",(0,i.jsxs)(s.p,{children:["In the past few months, we have been constantly speaking about the release-candidate phase of Docusaurus, and yes, it's almost there. We have created a dedicated ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/milestone/15",children:"milestone"})," to keep track of all issues to solve before we can confidently progress to the next stage. In short, we want to build a ",(0,i.jsx)(s.strong,{children:"more robust theming workflow"}),", empowering creative site creators to customize our default theme without fearing breaking changes as they upgrade. This will include:"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Guidelines on ",(0,i.jsx)(s.strong,{children:"component organization"}),". We want the theme components to have the right granularity so when you want to customize a part of your site, there's always a component doing just what you need."]}),"\n",(0,i.jsxs)(s.li,{children:["Improvements to the ",(0,i.jsx)(s.strong,{children:"swizzle CLI"}),". We want users to use it with delight and let it aid you through all possible swizzling scenarios."]}),"\n",(0,i.jsxs)(s.li,{children:["Refactoring our ",(0,i.jsx)(s.strong,{children:"theme APIs"}),". We want all swizzlable components to be actually appropriate for swizzling, so non-UI components will be re-located."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Docs"}),". We want our docs to be maximally accessible to everyone \u2013 from first-time coders to experienced web developers. We will organize it as a more progressive tutorial that can be beneficial for every skill level."]}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["Read more about plans for Docusaurus 2.0 in this ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/6113",children:"roadmap issue"}),". 2.0 will be a greater release with the help from the community, so please share your opinions and suggestions under any of the milestone issues!"]}),"\n",(0,i.jsxs)(s.p,{children:["As the core team is working hard to ship the general availability release, we plan to release other useful features as minor versions after 2.0. We have even made further plans for ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/milestone/16",children:"architectural changes in 3.0"}),"!"]}),"\n",(0,i.jsx)(s.p,{children:"With the official release of Docusaurus 2.0, we are confident to see much more new adoptions and migrations from v1."}),"\n",(0,i.jsxs)(s.p,{children:["We'd like to express our gratitude to ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/graphs/contributors?from=2021-01-01&to=2022-01-01&type=c",children:"all the contributors in 2021"}),", including:"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["The core team: ",(0,i.jsx)(s.a,{href:"https://github.com/lex111",children:"Alexey Pyltsyn"}),", ",(0,i.jsx)(s.a,{href:"https://github.com/slorber",children:"S\xe9bastien Lorber"}),", ",(0,i.jsx)(s.a,{href:"https://github.com/Josh-Cena",children:"Joshua Chen"}),", and ",(0,i.jsx)(s.a,{href:"https://github.com/yangshun",children:"Yangshun Tay"})," for moderating the community, publicizing Docusaurus, triaging issues, and implementing new features"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/JoelMarcey",children:"Joel Marcey"})," for creating Docusaurus and supporting its development all along"]}),"\n",(0,i.jsxs)(s.li,{children:["The Algolia team for helping Docusaurus users ",(0,i.jsx)(s.a,{href:"/blog/2021/11/21/algolia-docsearch-migration",children:"migrate to the new DocSearch"})," and answering search-related questions"]}),"\n",(0,i.jsx)(s.li,{children:"All the active community members for making valuable code contributions, improving our documentation, and answering questions on Discord"}),"\n"]}),"\n",(0,i.jsx)(s.p,{children:"So long, 2021, and let's greet a great 2022!"})]})}function d(e={}){let{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>a});var n=t(63696);let i={},r=n.createContext(i);function o(e){let s=n.useContext(r);return n.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:o(e.components),n.createElement(r.Provider,{value:s},e.children)}},84128:e=>{e.exports=JSON.parse('{"permalink":"/blog/2022/01/24/docusaurus-2021-recap","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2022/01-24-docusaurus-2021-recap/index.mdx","source":"@site/blog/2022/01-24-docusaurus-2021-recap/index.mdx","title":"Docusaurus 2021 Recap","description":"Docusaurus has made great progress in 2021! We\'ve seen a lot of traction and just crossed 30k stars on GitHub!","date":"2022-01-24T00:00:00.000Z","tags":[{"inline":false,"label":"Recap","permalink":"/blog/tags/recap","description":"Blog posts about Docusaurus\' year recaps"}],"readingTime":6.01,"hasTruncateMarker":true,"authors":[{"name":"Joshua Chen","title":"Working hard on Docusaurus","url":"https://joshcena.com/","email":"sidachen2003@gmail.com","page":{"permalink":"/blog/authors/josh-cena"},"imageURL":"https://github.com/josh-cena.png","key":"Josh-Cena"}],"frontMatter":{"title":"Docusaurus 2021 Recap","authors":["Josh-Cena"],"tags":["recap"],"image":"./img/thumbnail.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Announcing Docusaurus 2.0","permalink":"/blog/2022/08/01/announcing-docusaurus-2.0"},"nextItem":{"title":"DocSearch migration","permalink":"/blog/2021/11/21/algolia-docsearch-migration"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[98116],{60505:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/thumbnail-dbb46fec970f4431a6846603224dd2fe.png"},62373:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/courier-624bbae7cbef3b4e7533d1976e35f842.png"},93785:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/dyte-dark-b9748e4bcb4281880ff1856519d58b38.png"},3513:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/dyte-light-24caa76f96400453386185ae6bc06b8a.png"},10909:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/ionic-dark-17086f816052f02e84054fe002256ed9.png"},62565:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/ionic-light-b8a9c77c71a99f4c71a16584dac8ccf3.png"},22046:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/iota-dark-986d9518ba0e03583d734212ba93539d.png"},57696:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/iota-light-d899be0c1eb939a5ad13e2ecca4eb951.png"},87965:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/npm-trend-1e69b5c9e35be8bd6d9ac6fbaaf313d7.png"},42048:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/rising-stars-56326450d25b95f221f56db3b352c724.png"},60205:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/star-history-c7ba492b822fed1336d08fe449f87840.png"},12268:(e,s,t)=>{t.d(s,{A:()=>n});let n=t.p+"assets/images/thumbnail-dbb46fec970f4431a6846603224dd2fe.png"},4313:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>o,metadata:()=>n,toc:()=>c});var n=t(84128),i=t(62540),r=t(43023);let o={title:"Docusaurus 2021 Recap",authors:["Josh-Cena"],tags:["recap"],image:"./img/thumbnail.png"},a=void 0,l={image:t(60505).A,authorsImageUrls:[void 0]},c=[{value:"Highlights",id:"highlights",level:2},{value:"Trends",id:"trends",level:2},{value:"npm",id:"npm",level:3},{value:"GitHub",id:"github",level:3},{value:"Featured adoptions",id:"featured-adoptions",level:2},{value:"Community",id:"community",level:2},{value:"Going forward",id:"going-forward",level:2}];function h(e){let s={a:"a",blockquote:"blockquote",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(s.p,{children:["Docusaurus has made great progress in 2021! We've seen a lot of traction and just crossed ",(0,i.jsx)(s.strong,{children:"30k stars on GitHub"}),"!"]}),"\n",(0,i.jsxs)(s.p,{children:["We've ",(0,i.jsx)(s.strong,{children:"reached full feature parity"})," with v1 after ",(0,i.jsx)(s.a,{href:"/blog/2021/03/09/releasing-docusaurus-i18n",children:"the release of internationalization"}),", ",(0,i.jsxs)(s.a,{href:"/blog/2021/05/12/announcing-docusaurus-two-beta",children:["announced our ",(0,i.jsx)(s.strong,{children:"first beta"})]}),", and welcomed ",(0,i.jsx)(s.strong,{children:"significantly more users"})," this year."]}),"\n",(0,i.jsxs)(s.p,{children:["The ",(0,i.jsx)(s.strong,{children:"official v2 release"})," is just around the corner! Follow the ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/6113",children:"roadmap issue"})," for any latest news."]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{src:t(12268).A+"",width:"1000",height:"562"})}),"\n",(0,i.jsx)(s.h2,{id:"highlights",children:"Highlights"}),"\n",(0,i.jsxs)(s.p,{children:["Let's begin by going over a few highlights this year. Remember the ",(0,i.jsx)(s.a,{href:"/blog/2021/05/12/announcing-docusaurus-two-beta#whats-next",children:"todo-list"})," from half a year ago? Time to take it out again and see how far we've come!"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Internationalization"}),": officially released four months after its initial landing in late 2020. Seen great success in ",(0,i.jsx)(s.a,{href:"/showcase?tags=i18n",children:"many projects"})]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Autogenerated sidebars"}),": no need to maintain a big ",(0,i.jsx)(s.code,{children:"sidebars.js"})," anymore"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Webpack 5"}),": significantly improved build performance"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Trailing slash config"}),": seamless integration with any content hosting provider"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Redesigned mobile navigation"}),": mobile users now enjoy all navigation features as on desktop"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"UI improvements"}),": more accessible quotes, better admonitions, back-to-top button..."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Blog multi-authors"}),": credit all the amazing contributors that collaborated on one blog post!"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"More blog features"}),": archive page, structured data for SEO, full post content in feeds \u2013 empowering you to ship a fully-featured blog in no time"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Asset collocation"}),": no need for a bloated static folder anymore: colocate your images with Markdown files"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Sidebar category index pages"}),": category labels can now be associated with pages, enabling better doc organization"]}),"\n"]}),"\n",(0,i.jsx)(s.p,{children:"Our codebase has been polished over time as well. We have improved test coverage, migrated all packages to TypeScript, and reduced our published bundle size by a maximum of 60%!"}),"\n",(0,i.jsx)(s.h2,{id:"trends",children:"Trends"}),"\n",(0,i.jsx)(s.h3,{id:"npm",children:"npm"}),"\n",(0,i.jsx)(s.p,{children:"Docusaurus v2 continues to grow steadily. V2 installation is now 8 times more than v1. In terms of weekly downloads, we have witnessed another three-fold increase (+209.4%), growing from 28,066 in early January to a peak of 86,846 in mid-December."}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.a,{href:"https://www.npmtrends.com/docusaurus-vs-@docusaurus/core",children:(0,i.jsx)(s.img,{alt:"Docusaurus v1 vs. v2 npm trends of the year 2021. The installations of Docusaurus v2 is constantly rising, while v1 is almost constant. V1 stays at 10000, while v2 grows from 30000 to almost 90000. There's a sharp drop from 90000 to 40000 just before the Jan 2022 line.",src:t(87965).A+"",width:"800",height:"483"})})}),"\n",(0,i.jsx)(s.p,{children:"(Ah, the classic Christmas dip...)"}),"\n",(0,i.jsxs)(s.p,{children:["We released 18 versions, going from ",(0,i.jsx)(s.code,{children:"2.0.0-alpha.71"})," to ",(0,i.jsx)(s.code,{children:"2.0.0-beta.14"}),". That's one release every 20 days!"]}),"\n",(0,i.jsx)(s.h3,{id:"github",children:"GitHub"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Stars"}),": 20,460 \u2192 29,679 (+45.1% y/y). And, just before this blog post is published, we have reached 30k stars!"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Total contributors"}),": 512 \u2192 773 (+51.0% y/y)"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Dependents"}),": 5,039 \u2192 14,579 (+189.3% y/y) for v2, and 6,311 \u2192 7,581 (+20.1% y/y) for v1"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Commits"}),": 1,187 commits in the past year, averaging 23 commits every week"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Issues"}),": 619 issues opened, 505 of them eventually resolved"]}),"\n",(0,i.jsxs)(s.li,{children:["A ",(0,i.jsx)(s.a,{href:"https://github.com/Josh-Cena",children:(0,i.jsx)(s.strong,{children:"new core team member"})})," (yep, that's me \u{1F61D})"]}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["Our star trend is also very positive. Compared to similar projects, we are ",(0,i.jsx)(s.strong,{children:"growing at a faster rate"}),":"]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Stars trend by year of 9 static site generators. Next.js grows the fastest, with Docusaurus at the 4th place in terms of growth rate.",src:t(60205).A+"",width:"800",height:"550"})}),"\n",(0,i.jsxs)(s.p,{children:["With an 8.4k increase in stars, we are ranked number 3 in this year's ",(0,i.jsx)(s.a,{href:"https://risingstars.js.org/2021/en#section-ssg",children:"JavaScript rising stars of static site generators"}),", preceded only by Next.js and Astro."]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Docusaurus placing 3rd in the "Static Sites" ranking list",src:t(42048).A+"",width:"600",height:"412"})}),"\n",(0,i.jsx)(s.h2,{id:"featured-adoptions",children:"Featured adoptions"}),"\n",(0,i.jsxs)(s.p,{children:["Our showcase has welcomed a few new ",(0,i.jsx)(s.a,{href:"/showcase?tags=favorite",children:'"favorite" sites'})," that showcase the true potential of Docusaurus 2's pluggable architecture."]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://wiki.iota.org/",children:(0,i.jsx)(s.strong,{children:"IOTA-wiki"})})}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.img,{alt:"Iota wiki light mode",src:t(57696).A+"#gh-light-mode-only",width:"800",height:"456"}),(0,i.jsx)(s.img,{alt:"Iota wiki dark mode",src:t(22046).A+"#gh-dark-mode-only",width:"800",height:"456"})]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://docs.dyte.io/docs/home/introduction/",children:(0,i.jsx)(s.strong,{children:"Dyte"})})}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.img,{alt:"Dyte light mode",src:t(3513).A+"#gh-light-mode-only",width:"800",height:"454"}),(0,i.jsx)(s.img,{alt:"Dyte dark mode",src:t(93785).A+"#gh-dark-mode-only",width:"800",height:"454"})]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://ionicframework.com/docs",children:(0,i.jsx)(s.strong,{children:"Ionic"})})}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.img,{alt:"Ionic light mode",src:t(62565).A+"#gh-light-mode-only",width:"800",height:"456"}),(0,i.jsx)(s.img,{alt:"Ionic dark mode",src:t(10909).A+"#gh-dark-mode-only",width:"800",height:"456"})]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://www.courier.com/docs/",children:(0,i.jsx)(s.strong,{children:"Courier"})})}),"\n"]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Courier",src:t(62373).A+"",width:"800",height:"454"})}),"\n",(0,i.jsxs)(s.p,{children:["The creativity of Docusaurus users is beyond our imagination \u{1F929} We look forward to more and more adopters leveraging the content features of Docusaurus while exploring original theme designs! If your site uses Docusaurus, we would love to ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/edit/main/website/src/data/users.tsx",children:"have it in our showcase"}),"."]}),"\n",(0,i.jsx)(s.h2,{id:"community",children:"Community"}),"\n",(0,i.jsxs)(s.p,{children:["As an active moderator on ",(0,i.jsx)(s.a,{href:"https://discord.gg/docusaurus",children:"Discord"}),", I can clearly see the community thriving. Many frequently asked questions are now integrated into our documentation, and some feature requests have been implemented as well. The project and the community reciprocally benefit each other \u2013 case in point, I was formerly a community contributor before becoming a maintainer."]}),"\n",(0,i.jsx)(s.p,{children:"We are constantly mentioned on X with inspirational feedback:"}),"\n",(0,i.jsxs)(s.blockquote,{children:["\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"@docusaurus"})," is amazing! cant believe it's THAT simple to use."]}),"\n"]}),"\n",(0,i.jsxs)(s.blockquote,{children:["\n",(0,i.jsx)(s.p,{children:"No extra plugins, tooling or compilation steps. It just works out of the box."}),"\n"]}),"\n",(0,i.jsxs)(s.blockquote,{children:["\n",(0,i.jsxs)(s.p,{children:["I love ",(0,i.jsx)(s.strong,{children:"@docusaurus"}),". I couldn't have built the APIs, tutorials, and blogs contained in my site efficiently and beautifully in my workflow without Docusaurus."]}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["And we keep every one of them in ",(0,i.jsx)(s.a,{href:"https://x.com/sebastienlorber/timelines/1392048416872706049",children:"our little box"})," \u{1F604} If you enjoy Docusaurus yourself, keep tagging us with your comments!"]}),"\n",(0,i.jsxs)(s.p,{children:["As we approach the official release, we are interested in knowing more about what people are doing out there: ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/discussions/4025",children:"plugin authors"}),", ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/discussions/5468",children:"creators of customized sites"}),", and ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/discussions/4610",children:"all new users"})," \u2013 please keep us posted about your achievements so we can steer our development to better serve your needs."]}),"\n",(0,i.jsx)(s.h2,{id:"going-forward",children:"Going forward"}),"\n",(0,i.jsxs)(s.p,{children:["In the past few months, we have been constantly speaking about the release-candidate phase of Docusaurus, and yes, it's almost there. We have created a dedicated ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/milestone/15",children:"milestone"})," to keep track of all issues to solve before we can confidently progress to the next stage. In short, we want to build a ",(0,i.jsx)(s.strong,{children:"more robust theming workflow"}),", empowering creative site creators to customize our default theme without fearing breaking changes as they upgrade. This will include:"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Guidelines on ",(0,i.jsx)(s.strong,{children:"component organization"}),". We want the theme components to have the right granularity so when you want to customize a part of your site, there's always a component doing just what you need."]}),"\n",(0,i.jsxs)(s.li,{children:["Improvements to the ",(0,i.jsx)(s.strong,{children:"swizzle CLI"}),". We want users to use it with delight and let it aid you through all possible swizzling scenarios."]}),"\n",(0,i.jsxs)(s.li,{children:["Refactoring our ",(0,i.jsx)(s.strong,{children:"theme APIs"}),". We want all swizzlable components to be actually appropriate for swizzling, so non-UI components will be re-located."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Docs"}),". We want our docs to be maximally accessible to everyone \u2013 from first-time coders to experienced web developers. We will organize it as a more progressive tutorial that can be beneficial for every skill level."]}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["Read more about plans for Docusaurus 2.0 in this ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/6113",children:"roadmap issue"}),". 2.0 will be a greater release with the help from the community, so please share your opinions and suggestions under any of the milestone issues!"]}),"\n",(0,i.jsxs)(s.p,{children:["As the core team is working hard to ship the general availability release, we plan to release other useful features as minor versions after 2.0. We have even made further plans for ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/milestone/16",children:"architectural changes in 3.0"}),"!"]}),"\n",(0,i.jsx)(s.p,{children:"With the official release of Docusaurus 2.0, we are confident to see much more new adoptions and migrations from v1."}),"\n",(0,i.jsxs)(s.p,{children:["We'd like to express our gratitude to ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/graphs/contributors?from=2021-01-01&to=2022-01-01&type=c",children:"all the contributors in 2021"}),", including:"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["The core team: ",(0,i.jsx)(s.a,{href:"https://github.com/lex111",children:"Alexey Pyltsyn"}),", ",(0,i.jsx)(s.a,{href:"https://github.com/slorber",children:"S\xe9bastien Lorber"}),", ",(0,i.jsx)(s.a,{href:"https://github.com/Josh-Cena",children:"Joshua Chen"}),", and ",(0,i.jsx)(s.a,{href:"https://github.com/yangshun",children:"Yangshun Tay"})," for moderating the community, publicizing Docusaurus, triaging issues, and implementing new features"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/JoelMarcey",children:"Joel Marcey"})," for creating Docusaurus and supporting its development all along"]}),"\n",(0,i.jsxs)(s.li,{children:["The Algolia team for helping Docusaurus users ",(0,i.jsx)(s.a,{href:"/blog/2021/11/21/algolia-docsearch-migration",children:"migrate to the new DocSearch"})," and answering search-related questions"]}),"\n",(0,i.jsx)(s.li,{children:"All the active community members for making valuable code contributions, improving our documentation, and answering questions on Discord"}),"\n"]}),"\n",(0,i.jsx)(s.p,{children:"So long, 2021, and let's greet a great 2022!"})]})}function d(e={}){let{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>a});var n=t(63696);let i={},r=n.createContext(i);function o(e){let s=n.useContext(r);return n.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:o(e.components),n.createElement(r.Provider,{value:s},e.children)}},84128:e=>{e.exports=JSON.parse('{"permalink":"/blog/2022/01/24/docusaurus-2021-recap","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2022/01-24-docusaurus-2021-recap/index.mdx","source":"@site/blog/2022/01-24-docusaurus-2021-recap/index.mdx","title":"Docusaurus 2021 Recap","description":"Docusaurus has made great progress in 2021! We\'ve seen a lot of traction and just crossed 30k stars on GitHub!","date":"2022-01-24T00:00:00.000Z","tags":[{"inline":false,"label":"Recap","permalink":"/blog/tags/recap","description":"Blog posts about Docusaurus\' year recaps"}],"readingTime":6.01,"hasTruncateMarker":true,"authors":[{"name":"Joshua Chen","title":"Working hard on Docusaurus","url":"https://joshcena.com/","email":"sidachen2003@gmail.com","page":{"permalink":"/blog/authors/josh-cena"},"imageURL":"https://github.com/josh-cena.png","key":"Josh-Cena"}],"frontMatter":{"title":"Docusaurus 2021 Recap","authors":["Josh-Cena"],"tags":["recap"],"image":"./img/thumbnail.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Announcing Docusaurus 2.0","permalink":"/blog/2022/08/01/announcing-docusaurus-2.0"},"nextItem":{"title":"DocSearch migration","permalink":"/blog/2021/11/21/algolia-docsearch-migration"}}')}}]); \ No newline at end of file diff --git a/assets/js/42c2afdc.0aac0cab.js b/assets/js/42c2afdc.0aac0cab.js deleted file mode 100644 index 3ed2e9d5cf..0000000000 --- a/assets/js/42c2afdc.0aac0cab.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[75396],{42126:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>d,default:()=>m,frontMatter:()=>a,metadata:()=>o,toc:()=>i});let o=JSON.parse('{"id":"tests/category-links/with-readme-doc/sample-doc","title":"Sample doc","description":"Lorem Ipsum","source":"@site/_dogfooding/_docs tests/tests/category-links/with-readme-doc/sample-doc.mdx","sourceDirName":"tests/category-links/with-readme-doc","slug":"/tests/category-links/with-readme-doc/sample-doc","permalink":"/tests/docs/tests/category-links/with-readme-doc/sample-doc","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Category with readme.md doc","permalink":"/tests/docs/tests/category-links/with-readme-doc/"},"next":{"title":"Custom Props","permalink":"/tests/docs/tests/custom-props/"}}');var n=s(62540),r=s(43023);let a={},d="Sample doc",c={},i=[];function l(e){let t={h1:"h1",header:"header",p:"p",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"sample-doc",children:"Sample doc"})}),"\n",(0,n.jsx)(t.p,{children:"Lorem Ipsum"})]})}function m(e={}){let{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}m.displayName="MDXContent(_dogfooding/_docs tests/tests/category-links/with-readme-doc/sample-doc.mdx)"},43023:(e,t,s)=>{s.d(t,{R:()=>a,x:()=>d});var o=s(63696);let n={},r=o.createContext(n);function a(e){let t=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/42c2afdc.817440f5.js b/assets/js/42c2afdc.817440f5.js new file mode 100644 index 0000000000..9e70469918 --- /dev/null +++ b/assets/js/42c2afdc.817440f5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[75396],{42126:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>d,default:()=>m,frontMatter:()=>a,metadata:()=>o,toc:()=>i});let o=JSON.parse('{"id":"tests/category-links/with-readme-doc/sample-doc","title":"Sample doc","description":"Lorem Ipsum","source":"@site/_dogfooding/_docs tests/tests/category-links/with-readme-doc/sample-doc.mdx","sourceDirName":"tests/category-links/with-readme-doc","slug":"/tests/category-links/with-readme-doc/sample-doc","permalink":"/tests/docs/tests/category-links/with-readme-doc/sample-doc","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Category with readme.md doc","permalink":"/tests/docs/tests/category-links/with-readme-doc/"},"next":{"title":"Custom Props","permalink":"/tests/docs/tests/custom-props/"}}');var r=s(62540),n=s(43023);let a={},d="Sample doc",c={},i=[];function l(e){let t={h1:"h1",header:"header",p:"p",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"sample-doc",children:"Sample doc"})}),"\n",(0,r.jsx)(t.p,{children:"Lorem Ipsum"})]})}function m(e={}){let{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}m.displayName="MDXContent(_dogfooding/_docs tests/tests/category-links/with-readme-doc/sample-doc.mdx)"},43023:(e,t,s)=>{s.d(t,{R:()=>a,x:()=>d});var o=s(63696);let r={},n=o.createContext(r);function a(e){let t=o.useContext(n);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),o.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/447738d4.4f0a807a.js b/assets/js/447738d4.4f0a807a.js new file mode 100644 index 0000000000..8ab0e281d3 --- /dev/null +++ b/assets/js/447738d4.4f0a807a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[53008],{15995:(e,n,t)=>{t.d(n,{A:()=>a});var r=t(62540);t(63696);var i=t(11750);function a({children:e,hidden:n,className:t}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,i.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>y});var r=t(62540),i=t(63696),a=t(11750),s=t(7846),o=t(49519),d=t(96439),l=t(19739),c=t(66904),u=t(79244);function h(e){var n,t;return null!==(t=null===(n=i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function m({value:e,tabValues:n}){return n.some(n=>n.value===e)}var g=t(10709);function p(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function f(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function x({className:e,block:n,selectedValue:t,selectValue:i,tabValues:o}){let d=[],{blockElementScrollPositionUntilNextRender:l}=(0,s.a_)(),c=e=>{let n=e.currentTarget,r=o[d.indexOf(n)].value;r!==t&&(l(n),i(r))},u=e=>{var n,t;let r=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{let t=d.indexOf(e.currentTarget)+1;r=null!==(n=d[t])&&void 0!==n?n:d[0];break}case"ArrowLeft":{let n=d.indexOf(e.currentTarget)-1;r=null!==(t=d[n])&&void 0!==t?t:d[d.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.A)("tabs",{"tabs--block":n},e),children:o.map(({value:e,label:n,attributes:i})=>(0,r.jsx)("li",f(p({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>d.push(e),onKeyDown:u,onClick:c},i),{className:(0,a.A)("tabs__item","tabItem_AQgk",null==i?void 0:i.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function b({lazy:e,children:n,selectedValue:t}){let s=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=s.find(e=>e.props.value===t);return e?(0,i.cloneElement)(e,{className:(0,a.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:s.map((e,n)=>(0,i.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function j(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,a=function(e){let{values:n,children:t}=e;return(0,i.useMemo)(()=>{let e=null!=n?n:h(t).map(({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r}));return!function(e){let n=(0,c.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[s,g]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!m({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:a})),[p,f]=function({queryString:e=!1,groupId:n}){let t=(0,o.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,l.aZ)(r),(0,i.useCallback)(e=>{var n,i;if(!r)return;let a=new URLSearchParams(t.location.search);a.set(r,e),t.replace((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},t.location),i=i={search:a.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(i)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(i,e))}),n))},[r,t])]}({queryString:t,groupId:r}),[x,b]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[t,r]=(0,u.Dv)(n);return[t,(0,i.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),j=(()=>{let e=null!=p?p:x;return m({value:e,tabValues:a})?e:null})();return(0,d.A)(()=>{j&&g(j)},[j]),{selectedValue:s,selectValue:(0,i.useCallback)(e=>{if(!m({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);g(e),f(e),b(e)},[f,b,a]),tabValues:a}}(e);return(0,r.jsxs)("div",{className:(0,a.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(x,p({},n,e)),(0,r.jsx)(b,p({},n,e))]})}function y(e){let n=(0,g.A)();return(0,r.jsx)(j,f(p({},e),{children:h(e.children)}),String(n))}},10049:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>d,metadata:()=>r,toc:()=>u});let r=JSON.parse('{"id":"guides/docs/sidebar/autogenerated","title":"Autogenerated","description":"Docusaurus can create a sidebar automatically from your filesystem structure: each folder creates a sidebar category, and each file creates a doc link.","source":"@site/docs/guides/docs/sidebar/autogenerated.mdx","sourceDirName":"guides/docs/sidebar","slug":"/sidebar/autogenerated","permalink":"/docs/sidebar/autogenerated","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/sidebar/autogenerated.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/sidebar/autogenerated"},"sidebar":"docs","previous":{"title":"Sidebar items","permalink":"/docs/sidebar/items"},"next":{"title":"Using multiple sidebars","permalink":"/docs/sidebar/multiple-sidebars"}}');var i=t(62540),a=t(43023),s=t(27446),o=t(15995);let d={slug:"/sidebar/autogenerated"},l="Autogenerated",c={},u=[{value:"Category index convention",id:"category-index-convention",level:2},{value:"Autogenerated sidebar metadata",id:"autogenerated-sidebar-metadata",level:2},{value:"Doc item metadata",id:"doc-item-metadata",level:3},{value:"Category item metadata",id:"category-item-metadata",level:3},{value:"Using number prefixes",id:"using-number-prefixes",level:2},{value:"Customize the sidebar items generator",id:"customize-the-sidebar-items-generator",level:2}];function h(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"autogenerated",children:"Autogenerated"})}),"\n","\n",(0,i.jsxs)(n.p,{children:["Docusaurus can ",(0,i.jsx)(n.strong,{children:"create a sidebar automatically"})," from your ",(0,i.jsx)(n.strong,{children:"filesystem structure"}),": each folder creates a sidebar category, and each file creates a doc link."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"type SidebarItemAutogenerated = {\n type: 'autogenerated';\n dirName: string; // Source folder to generate the sidebar slice from (relative to docs)\n};\n"})}),"\n",(0,i.jsx)(n.p,{children:"Docusaurus can generate a full sidebar from your docs folder:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n myAutogeneratedSidebar: [\n // highlight-start\n {\n type: 'autogenerated',\n dirName: '.', // '.' means the current docs folder\n },\n // highlight-end\n ],\n};\n"})}),"\n",(0,i.jsxs)(n.p,{children:["An ",(0,i.jsx)(n.code,{children:"autogenerated"})," item is converted by Docusaurus to a ",(0,i.jsx)(n.strong,{children:"sidebar slice"})," (also discussed in ",(0,i.jsx)(n.a,{href:"/docs/sidebar/items#category-shorthand",children:"category shorthands"}),"): a list of items of type ",(0,i.jsx)(n.code,{children:"doc"})," or ",(0,i.jsx)(n.code,{children:"category"}),", so you can splice ",(0,i.jsxs)(n.strong,{children:["multiple ",(0,i.jsx)(n.code,{children:"autogenerated"})," items"]})," from multiple directories, interleaving them with regular sidebar items, in one sidebar level."]}),"\n",(0,i.jsxs)(t,{children:[(0,i.jsx)("summary",{children:"A real-world example"}),(0,i.jsx)(n.p,{children:"Consider this file structure:"}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"docs\n\u251C\u2500\u2500 api\n\u2502 \u251C\u2500\u2500 product1-api\n\u2502 \u2502 \u2514\u2500\u2500 api.md\n\u2502 \u2514\u2500\u2500 product2-api\n\u2502 \u251C\u2500\u2500 basic-api.md\n\u2502 \u2514\u2500\u2500 pro-api.md\n\u251C\u2500\u2500 intro.md\n\u2514\u2500\u2500 tutorials\n \u251C\u2500\u2500 advanced\n \u2502 \u251C\u2500\u2500 advanced1.md\n \u2502 \u251C\u2500\u2500 advanced2.md\n \u2502 \u2514\u2500\u2500 read-more\n \u2502 \u251C\u2500\u2500 resource1.md\n \u2502 \u2514\u2500\u2500 resource2.md\n \u251C\u2500\u2500 easy\n \u2502 \u251C\u2500\u2500 easy1.md\n \u2502 \u2514\u2500\u2500 easy2.md\n \u251C\u2500\u2500 tutorial-end.md\n \u251C\u2500\u2500 tutorial-intro.md\n \u2514\u2500\u2500 tutorial-medium.md\n"})}),(0,i.jsx)(n.p,{children:"And assume every doc's ID is just its file name. If you define an autogenerated sidebar like this:"}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n mySidebar: [\n 'intro',\n {\n type: 'category',\n label: 'Tutorials',\n items: [\n 'tutorial-intro',\n // highlight-start\n {\n type: 'autogenerated',\n dirName: 'tutorials/easy', // Generate sidebar slice from docs/tutorials/easy\n },\n // highlight-end\n 'tutorial-medium',\n // highlight-start\n {\n type: 'autogenerated',\n dirName: 'tutorials/advanced', // Generate sidebar slice from docs/tutorials/advanced\n },\n // highlight-end\n 'tutorial-end',\n ],\n },\n // highlight-start\n {\n type: 'autogenerated',\n dirName: 'api', // Generate sidebar slice from docs/api\n },\n // highlight-end\n {\n type: 'category',\n label: 'Community',\n items: ['team', 'chat'],\n },\n ],\n};\n"})}),(0,i.jsx)(n.p,{children:"It would be resolved as:"}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n mySidebar: [\n 'intro',\n {\n type: 'category',\n label: 'Tutorials',\n items: [\n 'tutorial-intro',\n // highlight-start\n // Two files in docs/tutorials/easy\n 'easy1',\n 'easy2',\n // highlight-end\n 'tutorial-medium',\n // highlight-start\n // Two files and a folder in docs/tutorials/advanced\n 'advanced1',\n 'advanced2',\n {\n type: 'category',\n label: 'read-more',\n items: ['resource1', 'resource2'],\n },\n // highlight-end\n 'tutorial-end',\n ],\n },\n // highlight-start\n // Two folders in docs/api\n {\n type: 'category',\n label: 'product1-api',\n items: ['api'],\n },\n {\n type: 'category',\n label: 'product2-api',\n items: ['basic-api', 'pro-api'],\n },\n // highlight-end\n {\n type: 'category',\n label: 'Community',\n items: ['team', 'chat'],\n },\n ],\n};\n"})}),(0,i.jsx)(n.p,{children:'Note how the autogenerate source directories themselves don\'t become categories: only the items they contain do. This is what we mean by "sidebar slice".'})]}),"\n",(0,i.jsx)(n.h2,{id:"category-index-convention",children:"Category index convention"}),"\n",(0,i.jsx)(n.p,{children:"Docusaurus can automatically link a category to its index document."}),"\n",(0,i.jsx)(n.p,{children:"A category index document is a document following one of those filename conventions:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Named as ",(0,i.jsx)(n.code,{children:"index"})," (case-insensitive): ",(0,i.jsx)(n.code,{children:"docs/Guides/index.md"})]}),"\n",(0,i.jsxs)(n.li,{children:["Named as ",(0,i.jsx)(n.code,{children:"README"})," (case-insensitive): ",(0,i.jsx)(n.code,{children:"docs/Guides/README.mdx"})]}),"\n",(0,i.jsxs)(n.li,{children:["Same name as parent folder: ",(0,i.jsx)(n.code,{children:"docs/Guides/Guides.md"})]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["This is equivalent to using a category with a ",(0,i.jsx)(n.a,{href:"/docs/sidebar/items#category-doc-link",children:"doc link"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n docs: [\n // highlight-start\n {\n type: 'category',\n label: 'Guides',\n link: {type: 'doc', id: 'Guides/index'},\n items: [],\n },\n // highlight-end\n ],\n};\n"})}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsxs)(n.p,{children:["Naming your introductory document ",(0,i.jsx)(n.code,{children:"README.md"})," makes it show up when browsing the folder using the GitHub interface, while using ",(0,i.jsx)(n.code,{children:"index.md"})," makes the behavior more in line with how HTML files are served."]})}),"\n",(0,i.jsxs)(n.admonition,{type:"tip",children:[(0,i.jsxs)(n.p,{children:["If a folder only has one index page, it will be turned into a link instead of a category. This is useful for ",(0,i.jsx)(n.strong,{children:"asset collocation"}),":"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"some-doc\n\u251C\u2500\u2500 index.md\n\u251C\u2500\u2500 img1.png\n\u2514\u2500\u2500 img2.png\n"})})]}),"\n",(0,i.jsxs)(t,{children:[(0,i.jsx)("summary",{children:"Customizing category index matching"}),(0,i.jsxs)(n.p,{children:["It is possible to opt out any of the category index conventions, or define even more conventions. You can inject your own ",(0,i.jsx)(n.code,{children:"isCategoryIndex"})," matcher through the ",(0,i.jsx)(n.a,{href:"#customize-the-sidebar-items-generator",children:(0,i.jsx)(n.code,{children:"sidebarItemsGenerator"})})," callback. For example, you can also pick ",(0,i.jsx)(n.code,{children:"intro"})," as another file name eligible for automatically becoming the category index."]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n plugins: [\n [\n '@docusaurus/plugin-content-docs',\n {\n async sidebarItemsGenerator({\n ...args,\n isCategoryIndex: defaultCategoryIndexMatcher, // The default matcher implementation, given below\n defaultSidebarItemsGenerator,\n }) {\n return defaultSidebarItemsGenerator({\n ...args,\n // highlight-start\n isCategoryIndex(doc) {\n return (\n // Also pick intro.md in addition to the default ones\n doc.fileName.toLowerCase() === 'intro' ||\n defaultCategoryIndexMatcher(doc)\n );\n },\n // highlight-end\n });\n },\n },\n ],\n ],\n};\n"})}),(0,i.jsx)(n.p,{children:"Or choose to not have any category index convention."}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n plugins: [\n [\n '@docusaurus/plugin-content-docs',\n {\n async sidebarItemsGenerator({\n ...args,\n isCategoryIndex: defaultCategoryIndexMatcher, // The default matcher implementation, given below\n defaultSidebarItemsGenerator,\n }) {\n return defaultSidebarItemsGenerator({\n ...args,\n // highlight-start\n isCategoryIndex() {\n // No doc will be automatically picked as category index\n return false;\n },\n // highlight-end\n });\n },\n },\n ],\n ],\n};\n"})}),(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"isCategoryIndex"})," matcher will be provided with three fields:"]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"fileName"}),", the file's name without extension and with casing preserved"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"directories"}),", the list of directory names ",(0,i.jsx)(n.em,{children:"from the lowest level to the highest level"}),", relative to the docs root directory"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"extension"}),", the file's extension, with a leading dot."]}),"\n"]}),(0,i.jsxs)(n.p,{children:["For example, for a doc file at ",(0,i.jsx)(n.code,{children:"guides/sidebar/autogenerated.md"}),", the props the matcher receives are"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"const props = {\n fileName: 'autogenerated',\n directories: ['sidebar', 'guides'],\n extension: '.md',\n};\n"})}),(0,i.jsx)(n.p,{children:"The default implementation is:"}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"function isCategoryIndex({fileName, directories}) {\n const eligibleDocIndexNames = [\n 'index',\n 'readme',\n directories[0].toLowerCase(),\n ];\n return eligibleDocIndexNames.includes(fileName.toLowerCase());\n}\n"})})]}),"\n",(0,i.jsx)(n.h2,{id:"autogenerated-sidebar-metadata",children:"Autogenerated sidebar metadata"}),"\n",(0,i.jsxs)(n.p,{children:["For handwritten sidebar definitions, you would provide metadata to sidebar items through ",(0,i.jsx)(n.code,{children:"sidebars.js"}),"; for autogenerated, Docusaurus would read them from the item's respective file. In addition, you may want to adjust the relative position of each item because, by default, items within a sidebar slice will be generated in ",(0,i.jsx)(n.strong,{children:"alphabetical order"})," (using file and folder names)."]}),"\n",(0,i.jsx)(n.h3,{id:"doc-item-metadata",children:"Doc item metadata"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"label"}),", ",(0,i.jsx)(n.code,{children:"className"}),", and ",(0,i.jsx)(n.code,{children:"customProps"})," attributes are declared in front matter as ",(0,i.jsx)(n.code,{children:"sidebar_label"}),", ",(0,i.jsx)(n.code,{children:"sidebar_class_name"}),", and ",(0,i.jsx)(n.code,{children:"sidebar_custom_props"}),", respectively. Position can be specified in the same way, via ",(0,i.jsx)(n.code,{children:"sidebar_position"})," front matter."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",metastring:'title="docs/tutorials/tutorial-easy.md"',children:"---\n# highlight-start\nsidebar_position: 2\nsidebar_label: Easy\nsidebar_class_name: green\n# highlight-end\n---\n\n# Easy Tutorial\n\nThis is the easy tutorial!\n"})}),"\n",(0,i.jsx)(n.h3,{id:"category-item-metadata",children:"Category item metadata"}),"\n",(0,i.jsxs)(n.p,{children:["Add a ",(0,i.jsx)(n.code,{children:"_category_.json"})," or ",(0,i.jsx)(n.code,{children:"_category_.yml"})," file in the respective folder. You can specify any category metadata and also the ",(0,i.jsx)(n.code,{children:"position"})," metadata. ",(0,i.jsx)(n.code,{children:"label"}),", ",(0,i.jsx)(n.code,{children:"className"}),", ",(0,i.jsx)(n.code,{children:"position"}),", and ",(0,i.jsx)(n.code,{children:"customProps"})," will default to the respective values of the category's linked doc, if there is one."]}),"\n",(0,i.jsxs)(s.A,{children:[(0,i.jsx)(o.A,{value:"JSON",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",metastring:'title="docs/tutorials/_category_.json"',children:'{\n "position": 2.5,\n "label": "Tutorial",\n "collapsible": true,\n "collapsed": false,\n "className": "red",\n "link": {\n "type": "generated-index",\n "title": "Tutorial overview"\n },\n "customProps": {\n "description": "This description can be used in the swizzled DocCard"\n }\n}\n'})})}),(0,i.jsx)(o.A,{value:"YAML",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-yml",metastring:'title="docs/tutorials/_category_.yml"',children:"position: 2.5 # float position is supported\nlabel: 'Tutorial'\ncollapsible: true # make the category collapsible\ncollapsed: false # keep the category open by default\nclassName: red\nlink:\n type: generated-index\n title: Tutorial overview\ncustomProps:\n description: This description can be used in the swizzled DocCard\n"})})})]}),"\n",(0,i.jsxs)(n.admonition,{type:"info",children:[(0,i.jsxs)(n.p,{children:["If the ",(0,i.jsx)(n.code,{children:"link"})," is explicitly specified, Docusaurus will not apply any ",(0,i.jsx)(n.a,{href:"#category-index-convention",children:"default conventions"}),"."]}),(0,i.jsxs)(n.p,{children:["The doc links can be specified relatively, e.g. if the category is generated with the ",(0,i.jsx)(n.code,{children:"guides"})," directory, ",(0,i.jsx)(n.code,{children:'"link": {"type": "doc", "id": "intro"}'})," will be resolved to the ID ",(0,i.jsx)(n.code,{children:"guides/intro"}),", only falling back to ",(0,i.jsx)(n.code,{children:"intro"})," if a doc with the former ID doesn't exist."]}),(0,i.jsxs)(n.p,{children:["You can also use ",(0,i.jsx)(n.code,{children:"link: null"})," to opt out of default conventions and not generate any category index page."]})]}),"\n",(0,i.jsx)(n.admonition,{type:"info",children:(0,i.jsxs)(n.p,{children:["The position metadata is only used ",(0,i.jsx)(n.strong,{children:"within a sidebar slice"}),": Docusaurus does not re-order other items of your sidebar."]})}),"\n",(0,i.jsx)(n.h2,{id:"using-number-prefixes",children:"Using number prefixes"}),"\n",(0,i.jsx)(n.p,{children:"A simple way to order an autogenerated sidebar is to prefix docs and folders by number prefixes, which also makes them appear in the file system in the same order when sorted by file name:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"docs\n\u251C\u2500\u2500 01-Intro.md\n\u251C\u2500\u2500 02-Tutorial Easy\n\u2502 \u251C\u2500\u2500 01-First Part.md\n\u2502 \u251C\u2500\u2500 02-Second Part.md\n\u2502 \u2514\u2500\u2500 03-End.md\n\u251C\u2500\u2500 03-Tutorial Advanced\n\u2502 \u251C\u2500\u2500 01-First Part.md\n\u2502 \u251C\u2500\u2500 02-Second Part.md\n\u2502 \u251C\u2500\u2500 03-Third Part.md\n\u2502 \u2514\u2500\u2500 04-End.md\n\u2514\u2500\u2500 04-End.md\n"})}),"\n",(0,i.jsxs)(n.p,{children:["To make it ",(0,i.jsx)(n.strong,{children:"easier to adopt"}),", Docusaurus supports ",(0,i.jsx)(n.strong,{children:"multiple number prefix patterns"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["By default, Docusaurus will ",(0,i.jsx)(n.strong,{children:"remove the number prefix"})," from the doc id, title, label, and URL paths."]}),"\n",(0,i.jsxs)(n.admonition,{type:"warning",children:[(0,i.jsxs)(n.p,{children:[(0,i.jsxs)(n.strong,{children:["Prefer using ",(0,i.jsx)(n.a,{href:"#autogenerated-sidebar-metadata",children:"additional metadata"})]}),"."]}),(0,i.jsxs)(n.p,{children:["Updating a number prefix can be annoying, as it can require ",(0,i.jsx)(n.strong,{children:"updating multiple existing Markdown links"}),":"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-diff",metastring:'title="docs/02-Tutorial Easy/01-First Part.md"',children:"- Check the [Tutorial End](../04-End.mdx);\n+ Check the [Tutorial End](../05-End.mdx);\n"})})]}),"\n",(0,i.jsx)(n.h2,{id:"customize-the-sidebar-items-generator",children:"Customize the sidebar items generator"}),"\n",(0,i.jsxs)(n.p,{children:["You can provide a custom ",(0,i.jsx)(n.code,{children:"sidebarItemsGenerator"})," function in the docs plugin (or preset) config:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n plugins: [\n [\n '@docusaurus/plugin-content-docs',\n {\n // highlight-start\n async sidebarItemsGenerator({\n defaultSidebarItemsGenerator,\n numberPrefixParser,\n item,\n version,\n docs,\n categoriesMetadata,\n isCategoryIndex,\n }) {\n // Example: return an hardcoded list of static sidebar items\n return [\n {type: 'doc', id: 'doc1'},\n {type: 'doc', id: 'doc2'},\n ];\n },\n // highlight-end\n },\n ],\n ],\n};\n"})}),"\n",(0,i.jsxs)(n.admonition,{type:"tip",children:[(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Re-use and enhance the default generator"})," instead of writing a generator from scratch: ",(0,i.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/blob/main/packages/docusaurus-plugin-content-docs/src/sidebars/generator.ts",children:"the default generator we provide"})," is 250 lines long."]}),(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Add, update, filter, re-order"})," the sidebar items according to your use case:"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"// highlight-start\n// Reverse the sidebar items ordering (including nested category items)\nfunction reverseSidebarItems(items) {\n // Reverse items in categories\n const result = items.map((item) => {\n if (item.type === 'category') {\n return {...item, items: reverseSidebarItems(item.items)};\n }\n return item;\n });\n // Reverse items at current level\n result.reverse();\n return result;\n}\n// highlight-end\n\nexport default {\n plugins: [\n [\n '@docusaurus/plugin-content-docs',\n {\n // highlight-start\n async sidebarItemsGenerator({defaultSidebarItemsGenerator, ...args}) {\n const sidebarItems = await defaultSidebarItemsGenerator(args);\n return reverseSidebarItems(sidebarItems);\n },\n // highlight-end\n },\n ],\n ],\n};\n"})})]})]})}function m(e={}){let{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>o});var r=t(63696);let i={},a=r.createContext(i);function s(e){let n=r.useContext(a);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/447738d4.fd1b24c8.js b/assets/js/447738d4.fd1b24c8.js deleted file mode 100644 index 7319bb126e..0000000000 --- a/assets/js/447738d4.fd1b24c8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[53008],{15995:(e,n,t)=>{t.d(n,{A:()=>a});var r=t(62540);t(63696);var i=t(11750);function a({children:e,hidden:n,className:t}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,i.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>y});var r=t(62540),i=t(63696),a=t(11750),s=t(7846),o=t(49519),d=t(96439),l=t(19739),c=t(66904),u=t(79244);function h(e){var n,t;return null!==(t=null===(n=i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function m({value:e,tabValues:n}){return n.some(n=>n.value===e)}var g=t(10709);function p(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function f(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function x({className:e,block:n,selectedValue:t,selectValue:i,tabValues:o}){let d=[],{blockElementScrollPositionUntilNextRender:l}=(0,s.a_)(),c=e=>{let n=e.currentTarget,r=o[d.indexOf(n)].value;r!==t&&(l(n),i(r))},u=e=>{var n,t;let r=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{let t=d.indexOf(e.currentTarget)+1;r=null!==(n=d[t])&&void 0!==n?n:d[0];break}case"ArrowLeft":{let n=d.indexOf(e.currentTarget)-1;r=null!==(t=d[n])&&void 0!==t?t:d[d.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.A)("tabs",{"tabs--block":n},e),children:o.map(({value:e,label:n,attributes:i})=>(0,r.jsx)("li",f(p({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>d.push(e),onKeyDown:u,onClick:c},i),{className:(0,a.A)("tabs__item","tabItem_AQgk",null==i?void 0:i.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function b({lazy:e,children:n,selectedValue:t}){let s=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=s.find(e=>e.props.value===t);return e?(0,i.cloneElement)(e,{className:(0,a.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:s.map((e,n)=>(0,i.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function j(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,a=function(e){let{values:n,children:t}=e;return(0,i.useMemo)(()=>{let e=null!=n?n:h(t).map(({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r}));return!function(e){let n=(0,c.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[s,g]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!m({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:a})),[p,f]=function({queryString:e=!1,groupId:n}){let t=(0,o.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,l.aZ)(r),(0,i.useCallback)(e=>{var n,i;if(!r)return;let a=new URLSearchParams(t.location.search);a.set(r,e),t.replace((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},t.location),i=i={search:a.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(i)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(i,e))}),n))},[r,t])]}({queryString:t,groupId:r}),[x,b]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[t,r]=(0,u.Dv)(n);return[t,(0,i.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),j=(()=>{let e=null!=p?p:x;return m({value:e,tabValues:a})?e:null})();return(0,d.A)(()=>{j&&g(j)},[j]),{selectedValue:s,selectValue:(0,i.useCallback)(e=>{if(!m({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);g(e),f(e),b(e)},[f,b,a]),tabValues:a}}(e);return(0,r.jsxs)("div",{className:(0,a.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(x,p({},n,e)),(0,r.jsx)(b,p({},n,e))]})}function y(e){let n=(0,g.A)();return(0,r.jsx)(j,f(p({},e),{children:h(e.children)}),String(n))}},10049:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>d,metadata:()=>r,toc:()=>u});let r=JSON.parse('{"id":"guides/docs/sidebar/autogenerated","title":"Autogenerated","description":"Docusaurus can create a sidebar automatically from your filesystem structure: each folder creates a sidebar category, and each file creates a doc link.","source":"@site/docs/guides/docs/sidebar/autogenerated.mdx","sourceDirName":"guides/docs/sidebar","slug":"/sidebar/autogenerated","permalink":"/docs/sidebar/autogenerated","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/sidebar/autogenerated.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/sidebar/autogenerated"},"sidebar":"docs","previous":{"title":"Sidebar items","permalink":"/docs/sidebar/items"},"next":{"title":"Using multiple sidebars","permalink":"/docs/sidebar/multiple-sidebars"}}');var i=t(62540),a=t(43023),s=t(27446),o=t(15995);let d={slug:"/sidebar/autogenerated"},l="Autogenerated",c={},u=[{value:"Category index convention",id:"category-index-convention",level:2},{value:"Autogenerated sidebar metadata",id:"autogenerated-sidebar-metadata",level:2},{value:"Doc item metadata",id:"doc-item-metadata",level:3},{value:"Category item metadata",id:"category-item-metadata",level:3},{value:"Using number prefixes",id:"using-number-prefixes",level:2},{value:"Customize the sidebar items generator",id:"customize-the-sidebar-items-generator",level:2}];function h(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"autogenerated",children:"Autogenerated"})}),"\n","\n",(0,i.jsxs)(n.p,{children:["Docusaurus can ",(0,i.jsx)(n.strong,{children:"create a sidebar automatically"})," from your ",(0,i.jsx)(n.strong,{children:"filesystem structure"}),": each folder creates a sidebar category, and each file creates a doc link."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"type SidebarItemAutogenerated = {\n type: 'autogenerated';\n dirName: string; // Source folder to generate the sidebar slice from (relative to docs)\n};\n"})}),"\n",(0,i.jsx)(n.p,{children:"Docusaurus can generate a full sidebar from your docs folder:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n myAutogeneratedSidebar: [\n // highlight-start\n {\n type: 'autogenerated',\n dirName: '.', // '.' means the current docs folder\n },\n // highlight-end\n ],\n};\n"})}),"\n",(0,i.jsxs)(n.p,{children:["An ",(0,i.jsx)(n.code,{children:"autogenerated"})," item is converted by Docusaurus to a ",(0,i.jsx)(n.strong,{children:"sidebar slice"})," (also discussed in ",(0,i.jsx)(n.a,{href:"/docs/sidebar/items#category-shorthand",children:"category shorthands"}),"): a list of items of type ",(0,i.jsx)(n.code,{children:"doc"})," or ",(0,i.jsx)(n.code,{children:"category"}),", so you can splice ",(0,i.jsxs)(n.strong,{children:["multiple ",(0,i.jsx)(n.code,{children:"autogenerated"})," items"]})," from multiple directories, interleaving them with regular sidebar items, in one sidebar level."]}),"\n",(0,i.jsxs)(t,{children:[(0,i.jsx)("summary",{children:"A real-world example"}),(0,i.jsx)(n.p,{children:"Consider this file structure:"}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"docs\n\u251C\u2500\u2500 api\n\u2502 \u251C\u2500\u2500 product1-api\n\u2502 \u2502 \u2514\u2500\u2500 api.md\n\u2502 \u2514\u2500\u2500 product2-api\n\u2502 \u251C\u2500\u2500 basic-api.md\n\u2502 \u2514\u2500\u2500 pro-api.md\n\u251C\u2500\u2500 intro.md\n\u2514\u2500\u2500 tutorials\n \u251C\u2500\u2500 advanced\n \u2502 \u251C\u2500\u2500 advanced1.md\n \u2502 \u251C\u2500\u2500 advanced2.md\n \u2502 \u2514\u2500\u2500 read-more\n \u2502 \u251C\u2500\u2500 resource1.md\n \u2502 \u2514\u2500\u2500 resource2.md\n \u251C\u2500\u2500 easy\n \u2502 \u251C\u2500\u2500 easy1.md\n \u2502 \u2514\u2500\u2500 easy2.md\n \u251C\u2500\u2500 tutorial-end.md\n \u251C\u2500\u2500 tutorial-intro.md\n \u2514\u2500\u2500 tutorial-medium.md\n"})}),(0,i.jsx)(n.p,{children:"And assume every doc's ID is just its file name. If you define an autogenerated sidebar like this:"}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n mySidebar: [\n 'intro',\n {\n type: 'category',\n label: 'Tutorials',\n items: [\n 'tutorial-intro',\n // highlight-start\n {\n type: 'autogenerated',\n dirName: 'tutorials/easy', // Generate sidebar slice from docs/tutorials/easy\n },\n // highlight-end\n 'tutorial-medium',\n // highlight-start\n {\n type: 'autogenerated',\n dirName: 'tutorials/advanced', // Generate sidebar slice from docs/tutorials/advanced\n },\n // highlight-end\n 'tutorial-end',\n ],\n },\n // highlight-start\n {\n type: 'autogenerated',\n dirName: 'api', // Generate sidebar slice from docs/api\n },\n // highlight-end\n {\n type: 'category',\n label: 'Community',\n items: ['team', 'chat'],\n },\n ],\n};\n"})}),(0,i.jsx)(n.p,{children:"It would be resolved as:"}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n mySidebar: [\n 'intro',\n {\n type: 'category',\n label: 'Tutorials',\n items: [\n 'tutorial-intro',\n // highlight-start\n // Two files in docs/tutorials/easy\n 'easy1',\n 'easy2',\n // highlight-end\n 'tutorial-medium',\n // highlight-start\n // Two files and a folder in docs/tutorials/advanced\n 'advanced1',\n 'advanced2',\n {\n type: 'category',\n label: 'read-more',\n items: ['resource1', 'resource2'],\n },\n // highlight-end\n 'tutorial-end',\n ],\n },\n // highlight-start\n // Two folders in docs/api\n {\n type: 'category',\n label: 'product1-api',\n items: ['api'],\n },\n {\n type: 'category',\n label: 'product2-api',\n items: ['basic-api', 'pro-api'],\n },\n // highlight-end\n {\n type: 'category',\n label: 'Community',\n items: ['team', 'chat'],\n },\n ],\n};\n"})}),(0,i.jsx)(n.p,{children:'Note how the autogenerate source directories themselves don\'t become categories: only the items they contain do. This is what we mean by "sidebar slice".'})]}),"\n",(0,i.jsx)(n.h2,{id:"category-index-convention",children:"Category index convention"}),"\n",(0,i.jsx)(n.p,{children:"Docusaurus can automatically link a category to its index document."}),"\n",(0,i.jsx)(n.p,{children:"A category index document is a document following one of those filename conventions:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Named as ",(0,i.jsx)(n.code,{children:"index"})," (case-insensitive): ",(0,i.jsx)(n.code,{children:"docs/Guides/index.md"})]}),"\n",(0,i.jsxs)(n.li,{children:["Named as ",(0,i.jsx)(n.code,{children:"README"})," (case-insensitive): ",(0,i.jsx)(n.code,{children:"docs/Guides/README.mdx"})]}),"\n",(0,i.jsxs)(n.li,{children:["Same name as parent folder: ",(0,i.jsx)(n.code,{children:"docs/Guides/Guides.md"})]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["This is equivalent to using a category with a ",(0,i.jsx)(n.a,{href:"/docs/sidebar/items#category-doc-link",children:"doc link"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n docs: [\n // highlight-start\n {\n type: 'category',\n label: 'Guides',\n link: {type: 'doc', id: 'Guides/index'},\n items: [],\n },\n // highlight-end\n ],\n};\n"})}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsxs)(n.p,{children:["Naming your introductory document ",(0,i.jsx)(n.code,{children:"README.md"})," makes it show up when browsing the folder using the GitHub interface, while using ",(0,i.jsx)(n.code,{children:"index.md"})," makes the behavior more in line with how HTML files are served."]})}),"\n",(0,i.jsxs)(n.admonition,{type:"tip",children:[(0,i.jsxs)(n.p,{children:["If a folder only has one index page, it will be turned into a link instead of a category. This is useful for ",(0,i.jsx)(n.strong,{children:"asset collocation"}),":"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"some-doc\n\u251C\u2500\u2500 index.md\n\u251C\u2500\u2500 img1.png\n\u2514\u2500\u2500 img2.png\n"})})]}),"\n",(0,i.jsxs)(t,{children:[(0,i.jsx)("summary",{children:"Customizing category index matching"}),(0,i.jsxs)(n.p,{children:["It is possible to opt out any of the category index conventions, or define even more conventions. You can inject your own ",(0,i.jsx)(n.code,{children:"isCategoryIndex"})," matcher through the ",(0,i.jsx)(n.a,{href:"#customize-the-sidebar-items-generator",children:(0,i.jsx)(n.code,{children:"sidebarItemsGenerator"})})," callback. For example, you can also pick ",(0,i.jsx)(n.code,{children:"intro"})," as another file name eligible for automatically becoming the category index."]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n plugins: [\n [\n '@docusaurus/plugin-content-docs',\n {\n async sidebarItemsGenerator({\n ...args,\n isCategoryIndex: defaultCategoryIndexMatcher, // The default matcher implementation, given below\n defaultSidebarItemsGenerator,\n }) {\n return defaultSidebarItemsGenerator({\n ...args,\n // highlight-start\n isCategoryIndex(doc) {\n return (\n // Also pick intro.md in addition to the default ones\n doc.fileName.toLowerCase() === 'intro' ||\n defaultCategoryIndexMatcher(doc)\n );\n },\n // highlight-end\n });\n },\n },\n ],\n ],\n};\n"})}),(0,i.jsx)(n.p,{children:"Or choose to not have any category index convention."}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n plugins: [\n [\n '@docusaurus/plugin-content-docs',\n {\n async sidebarItemsGenerator({\n ...args,\n isCategoryIndex: defaultCategoryIndexMatcher, // The default matcher implementation, given below\n defaultSidebarItemsGenerator,\n }) {\n return defaultSidebarItemsGenerator({\n ...args,\n // highlight-start\n isCategoryIndex() {\n // No doc will be automatically picked as category index\n return false;\n },\n // highlight-end\n });\n },\n },\n ],\n ],\n};\n"})}),(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"isCategoryIndex"})," matcher will be provided with three fields:"]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"fileName"}),", the file's name without extension and with casing preserved"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"directories"}),", the list of directory names ",(0,i.jsx)(n.em,{children:"from the lowest level to the highest level"}),", relative to the docs root directory"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"extension"}),", the file's extension, with a leading dot."]}),"\n"]}),(0,i.jsxs)(n.p,{children:["For example, for a doc file at ",(0,i.jsx)(n.code,{children:"guides/sidebar/autogenerated.md"}),", the props the matcher receives are"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"const props = {\n fileName: 'autogenerated',\n directories: ['sidebar', 'guides'],\n extension: '.md',\n};\n"})}),(0,i.jsx)(n.p,{children:"The default implementation is:"}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"function isCategoryIndex({fileName, directories}) {\n const eligibleDocIndexNames = [\n 'index',\n 'readme',\n directories[0].toLowerCase(),\n ];\n return eligibleDocIndexNames.includes(fileName.toLowerCase());\n}\n"})})]}),"\n",(0,i.jsx)(n.h2,{id:"autogenerated-sidebar-metadata",children:"Autogenerated sidebar metadata"}),"\n",(0,i.jsxs)(n.p,{children:["For handwritten sidebar definitions, you would provide metadata to sidebar items through ",(0,i.jsx)(n.code,{children:"sidebars.js"}),"; for autogenerated, Docusaurus would read them from the item's respective file. In addition, you may want to adjust the relative position of each item because, by default, items within a sidebar slice will be generated in ",(0,i.jsx)(n.strong,{children:"alphabetical order"})," (using file and folder names)."]}),"\n",(0,i.jsx)(n.h3,{id:"doc-item-metadata",children:"Doc item metadata"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"label"}),", ",(0,i.jsx)(n.code,{children:"className"}),", and ",(0,i.jsx)(n.code,{children:"customProps"})," attributes are declared in front matter as ",(0,i.jsx)(n.code,{children:"sidebar_label"}),", ",(0,i.jsx)(n.code,{children:"sidebar_class_name"}),", and ",(0,i.jsx)(n.code,{children:"sidebar_custom_props"}),", respectively. Position can be specified in the same way, via ",(0,i.jsx)(n.code,{children:"sidebar_position"})," front matter."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-md",metastring:'title="docs/tutorials/tutorial-easy.md"',children:"---\n# highlight-start\nsidebar_position: 2\nsidebar_label: Easy\nsidebar_class_name: green\n# highlight-end\n---\n\n# Easy Tutorial\n\nThis is the easy tutorial!\n"})}),"\n",(0,i.jsx)(n.h3,{id:"category-item-metadata",children:"Category item metadata"}),"\n",(0,i.jsxs)(n.p,{children:["Add a ",(0,i.jsx)(n.code,{children:"_category_.json"})," or ",(0,i.jsx)(n.code,{children:"_category_.yml"})," file in the respective folder. You can specify any category metadata and also the ",(0,i.jsx)(n.code,{children:"position"})," metadata. ",(0,i.jsx)(n.code,{children:"label"}),", ",(0,i.jsx)(n.code,{children:"className"}),", ",(0,i.jsx)(n.code,{children:"position"}),", and ",(0,i.jsx)(n.code,{children:"customProps"})," will default to the respective values of the category's linked doc, if there is one."]}),"\n",(0,i.jsxs)(s.A,{children:[(0,i.jsx)(o.A,{value:"JSON",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",metastring:'title="docs/tutorials/_category_.json"',children:'{\n "position": 2.5,\n "label": "Tutorial",\n "collapsible": true,\n "collapsed": false,\n "className": "red",\n "link": {\n "type": "generated-index",\n "title": "Tutorial overview"\n },\n "customProps": {\n "description": "This description can be used in the swizzled DocCard"\n }\n}\n'})})}),(0,i.jsx)(o.A,{value:"YAML",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-yml",metastring:'title="docs/tutorials/_category_.yml"',children:"position: 2.5 # float position is supported\nlabel: 'Tutorial'\ncollapsible: true # make the category collapsible\ncollapsed: false # keep the category open by default\nclassName: red\nlink:\n type: generated-index\n title: Tutorial overview\ncustomProps:\n description: This description can be used in the swizzled DocCard\n"})})})]}),"\n",(0,i.jsxs)(n.admonition,{type:"info",children:[(0,i.jsxs)(n.p,{children:["If the ",(0,i.jsx)(n.code,{children:"link"})," is explicitly specified, Docusaurus will not apply any ",(0,i.jsx)(n.a,{href:"#category-index-convention",children:"default conventions"}),"."]}),(0,i.jsxs)(n.p,{children:["The doc links can be specified relatively, e.g. if the category is generated with the ",(0,i.jsx)(n.code,{children:"guides"})," directory, ",(0,i.jsx)(n.code,{children:'"link": {"type": "doc", "id": "intro"}'})," will be resolved to the ID ",(0,i.jsx)(n.code,{children:"guides/intro"}),", only falling back to ",(0,i.jsx)(n.code,{children:"intro"})," if a doc with the former ID doesn't exist."]}),(0,i.jsxs)(n.p,{children:["You can also use ",(0,i.jsx)(n.code,{children:"link: null"})," to opt out of default conventions and not generate any category index page."]})]}),"\n",(0,i.jsx)(n.admonition,{type:"info",children:(0,i.jsxs)(n.p,{children:["The position metadata is only used ",(0,i.jsx)(n.strong,{children:"within a sidebar slice"}),": Docusaurus does not re-order other items of your sidebar."]})}),"\n",(0,i.jsx)(n.h2,{id:"using-number-prefixes",children:"Using number prefixes"}),"\n",(0,i.jsx)(n.p,{children:"A simple way to order an autogenerated sidebar is to prefix docs and folders by number prefixes, which also makes them appear in the file system in the same order when sorted by file name:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"docs\n\u251C\u2500\u2500 01-Intro.md\n\u251C\u2500\u2500 02-Tutorial Easy\n\u2502 \u251C\u2500\u2500 01-First Part.md\n\u2502 \u251C\u2500\u2500 02-Second Part.md\n\u2502 \u2514\u2500\u2500 03-End.md\n\u251C\u2500\u2500 03-Tutorial Advanced\n\u2502 \u251C\u2500\u2500 01-First Part.md\n\u2502 \u251C\u2500\u2500 02-Second Part.md\n\u2502 \u251C\u2500\u2500 03-Third Part.md\n\u2502 \u2514\u2500\u2500 04-End.md\n\u2514\u2500\u2500 04-End.md\n"})}),"\n",(0,i.jsxs)(n.p,{children:["To make it ",(0,i.jsx)(n.strong,{children:"easier to adopt"}),", Docusaurus supports ",(0,i.jsx)(n.strong,{children:"multiple number prefix patterns"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["By default, Docusaurus will ",(0,i.jsx)(n.strong,{children:"remove the number prefix"})," from the doc id, title, label, and URL paths."]}),"\n",(0,i.jsxs)(n.admonition,{type:"warning",children:[(0,i.jsxs)(n.p,{children:[(0,i.jsxs)(n.strong,{children:["Prefer using ",(0,i.jsx)(n.a,{href:"#autogenerated-sidebar-metadata",children:"additional metadata"})]}),"."]}),(0,i.jsxs)(n.p,{children:["Updating a number prefix can be annoying, as it can require ",(0,i.jsx)(n.strong,{children:"updating multiple existing Markdown links"}),":"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-diff",metastring:'title="docs/02-Tutorial Easy/01-First Part.md"',children:"- Check the [Tutorial End](../04-End.mdx);\n+ Check the [Tutorial End](../05-End.mdx);\n"})})]}),"\n",(0,i.jsx)(n.h2,{id:"customize-the-sidebar-items-generator",children:"Customize the sidebar items generator"}),"\n",(0,i.jsxs)(n.p,{children:["You can provide a custom ",(0,i.jsx)(n.code,{children:"sidebarItemsGenerator"})," function in the docs plugin (or preset) config:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n plugins: [\n [\n '@docusaurus/plugin-content-docs',\n {\n // highlight-start\n async sidebarItemsGenerator({\n defaultSidebarItemsGenerator,\n numberPrefixParser,\n item,\n version,\n docs,\n categoriesMetadata,\n isCategoryIndex,\n }) {\n // Example: return an hardcoded list of static sidebar items\n return [\n {type: 'doc', id: 'doc1'},\n {type: 'doc', id: 'doc2'},\n ];\n },\n // highlight-end\n },\n ],\n ],\n};\n"})}),"\n",(0,i.jsxs)(n.admonition,{type:"tip",children:[(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Re-use and enhance the default generator"})," instead of writing a generator from scratch: ",(0,i.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/blob/main/packages/docusaurus-plugin-content-docs/src/sidebars/generator.ts",children:"the default generator we provide"})," is 250 lines long."]}),(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Add, update, filter, re-order"})," the sidebar items according to your use case:"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"// highlight-start\n// Reverse the sidebar items ordering (including nested category items)\nfunction reverseSidebarItems(items) {\n // Reverse items in categories\n const result = items.map((item) => {\n if (item.type === 'category') {\n return {...item, items: reverseSidebarItems(item.items)};\n }\n return item;\n });\n // Reverse items at current level\n result.reverse();\n return result;\n}\n// highlight-end\n\nexport default {\n plugins: [\n [\n '@docusaurus/plugin-content-docs',\n {\n // highlight-start\n async sidebarItemsGenerator({defaultSidebarItemsGenerator, ...args}) {\n const sidebarItems = await defaultSidebarItemsGenerator(args);\n return reverseSidebarItems(sidebarItems);\n },\n // highlight-end\n },\n ],\n ],\n};\n"})})]})]})}function m(e={}){let{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>o});var r=t(63696);let i={},a=r.createContext(i);function s(e){let n=r.useContext(a);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/46240.35fbc01d.js b/assets/js/46240.35fbc01d.js new file mode 100644 index 0000000000..9638a1f1ab --- /dev/null +++ b/assets/js/46240.35fbc01d.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[46240],{46240:(t,e,n)=>{n.d(e,{diagram:()=>H});var i=n(72912),r=n(89601);function s(t,e){let n;if(void 0===e)for(let e of t)null!=e&&(n>e||void 0===n&&e>=e)&&(n=e);else{let i=-1;for(let r of t)null!=(r=e(r,++i,t))&&(n>r||void 0===n&&r>=r)&&(n=r)}return n}function o(t){return t.target.depth}function l(t,e){return t.sourceLinks.length?t.depth:e-1}function h(t,e){let n=0;if(void 0===e)for(let e of t)(e=+e)&&(n+=e);else{let i=-1;for(let r of t)(r=+e(r,++i,t))&&(n+=r)}return n}function a(t,e){let n;if(void 0===e)for(let e of t)null!=e&&(n<e||void 0===n&&e>=e)&&(n=e);else{let i=-1;for(let r of t)null!=(r=e(r,++i,t))&&(n<r||void 0===n&&r>=r)&&(n=r)}return n}function c(t){return function(){return t}}function u(t,e){return y(t.source,e.source)||t.index-e.index}function f(t,e){return y(t.target,e.target)||t.index-e.index}function y(t,e){return t.y0-e.y0}function p(t){return t.value}function d(t){return t.index}function g(t){return t.nodes}function _(t){return t.links}function x(t,e){let n=t.get(e);if(!n)throw Error("missing: "+e);return n}function m({nodes:t}){for(let e of t){let t=e.y0,n=t;for(let n of e.sourceLinks)n.y0=t+n.width/2,t+=n.width;for(let t of e.targetLinks)t.y1=n+t.width/2,n+=t.width}}var k=Math.PI,v=2*k,b=v-1e-6;function w(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function S(){return new w}w.prototype=S.prototype={constructor:w,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,n,i){this._+="Q"+ +t+","+ +e+","+(this._x1=+n)+","+(this._y1=+i)},bezierCurveTo:function(t,e,n,i,r,s){this._+="C"+ +t+","+ +e+","+ +n+","+ +i+","+(this._x1=+r)+","+(this._y1=+s)},arcTo:function(t,e,n,i,r){t=+t,e=+e,n=+n,i=+i,r=+r;var s=this._x1,o=this._y1,l=n-t,h=i-e,a=s-t,c=o-e,u=a*a+c*c;if(r<0)throw Error("negative radius: "+r);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(u>1e-6){if(Math.abs(c*l-h*a)>1e-6&&r){var f=n-s,y=i-o,p=l*l+h*h,d=Math.sqrt(p),g=Math.sqrt(u),_=r*Math.tan((k-Math.acos((p+u-(f*f+y*y))/(2*d*g)))/2),x=_/g,m=_/d;Math.abs(x-1)>1e-6&&(this._+="L"+(t+x*a)+","+(e+x*c)),this._+="A"+r+","+r+",0,0,"+ +(c*f>a*y)+","+(this._x1=t+m*l)+","+(this._y1=e+m*h)}else this._+="L"+(this._x1=t)+","+(this._y1=e)}},arc:function(t,e,n,i,r,s){t=+t,e=+e,n=+n,s=!!s;var o=n*Math.cos(i),l=n*Math.sin(i),h=t+o,a=e+l,c=1^s,u=s?i-r:r-i;if(n<0)throw Error("negative radius: "+n);null===this._x1?this._+="M"+h+","+a:(Math.abs(this._x1-h)>1e-6||Math.abs(this._y1-a)>1e-6)&&(this._+="L"+h+","+a),n&&(u<0&&(u=u%v+v),u>b?this._+="A"+n+","+n+",0,1,"+c+","+(t-o)+","+(e-l)+"A"+n+","+n+",0,1,"+c+","+(this._x1=h)+","+(this._y1=a):u>1e-6&&(this._+="A"+n+","+n+",0,"+ +(u>=k)+","+c+","+(this._x1=t+n*Math.cos(r))+","+(this._y1=e+n*Math.sin(r))))},rect:function(t,e,n,i){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +i+"h"+-n+"Z"},toString:function(){return this._}};var E=Array.prototype.slice;function A(t){return function(){return t}}function K(t){return t[0]}function L(t){return t[1]}function M(t){return t.source}function I(t){return t.target}function T(t,e,n,i,r){t.moveTo(e,n),t.bezierCurveTo(e=(e+i)/2,n,e,r,i,r)}function D(t){return[t.source.x1,t.y0]}function P(t){return[t.target.x0,t.y1]}var C=function(){var t=(0,i.K2)(function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},"o"),e=[1,9],n=[1,10],r=[1,5,10,12],s={trace:(0,i.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:(0,i.K2)(function(t,e,n,i,r,s,o){var l=s.length-1;switch(r){case 7:let h=i.findOrCreateNode(s[l-4].trim().replaceAll('""','"')),a=i.findOrCreateNode(s[l-2].trim().replaceAll('""','"')),c=parseFloat(s[l].trim());i.addLink(h,a,c);break;case 8:case 9:case 11:this.$=s[l];break;case 10:this.$=s[l-1]}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:e,20:n},{1:[2,6],7:11,10:[1,12]},t(n,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(r,[2,8]),t(r,[2,9]),{19:[1,16]},t(r,[2,11]),{1:[2,1]},{1:[2,5]},t(n,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:e,20:n},{15:18,16:7,17:8,18:e,20:n},{18:[1,19]},t(n,[2,3]),{12:[1,20]},t(r,[2,10]),{15:21,16:7,17:8,18:e,20:n},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:(0,i.K2)(function(t,e){if(e.recoverable)this.trace(t);else{var n=Error(t);throw n.hash=e,n}},"parseError"),parse:(0,i.K2)(function(t){var e=this,n=[0],r=[],s=[null],o=[],l=this.table,h="",a=0,c=0,u=0,f=o.slice.call(arguments,1),y=Object.create(this.lexer),p={yy:{}};for(var d in this.yy)Object.prototype.hasOwnProperty.call(this.yy,d)&&(p.yy[d]=this.yy[d]);y.setInput(t,p.yy),p.yy.lexer=y,p.yy.parser=this,void 0===y.yylloc&&(y.yylloc={});var g=y.yylloc;o.push(g);var _=y.options&&y.options.ranges;function x(){var t;return"number"!=typeof(t=r.pop()||y.lex()||1)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,i.K2)(function(t){n.length=n.length-2*t,s.length=s.length-t,o.length=o.length-t},"popStack"),(0,i.K2)(x,"lex");for(var m,k,v,b,w,S,E,A,K,L={};;){if(v=n[n.length-1],this.defaultActions[v]?b=this.defaultActions[v]:(null==m&&(m=x()),b=l[v]&&l[v][m]),void 0===b||!b.length||!b[0]){var M="";for(S in K=[],l[v])this.terminals_[S]&&S>2&&K.push("'"+this.terminals_[S]+"'");M=y.showPosition?"Parse error on line "+(a+1)+":\n"+y.showPosition()+"\nExpecting "+K.join(", ")+", got '"+(this.terminals_[m]||m)+"'":"Parse error on line "+(a+1)+": Unexpected "+(1==m?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(M,{text:y.match,token:this.terminals_[m]||m,line:y.yylineno,loc:g,expected:K})}if(b[0]instanceof Array&&b.length>1)throw Error("Parse Error: multiple actions possible at state: "+v+", token: "+m);switch(b[0]){case 1:n.push(m),s.push(y.yytext),o.push(y.yylloc),n.push(b[1]),m=null,k?(m=k,k=null):(c=y.yyleng,h=y.yytext,a=y.yylineno,g=y.yylloc,u>0&&u--);break;case 2:if(E=this.productions_[b[1]][1],L.$=s[s.length-E],L._$={first_line:o[o.length-(E||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(E||1)].first_column,last_column:o[o.length-1].last_column},_&&(L._$.range=[o[o.length-(E||1)].range[0],o[o.length-1].range[1]]),void 0!==(w=this.performAction.apply(L,[h,c,a,p.yy,b[1],s,o].concat(f))))return w;E&&(n=n.slice(0,-1*E*2),s=s.slice(0,-1*E),o=o.slice(0,-1*E)),n.push(this.productions_[b[1]][0]),s.push(L.$),o.push(L._$),A=l[n[n.length-2]][n[n.length-1]],n.push(A);break;case 3:return!0}}return!0},"parse")},o={EOF:1,parseError:(0,i.K2)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,i.K2)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,i.K2)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,i.K2)(function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,i.K2)(function(){return this._more=!0,this},"more"),reject:(0,i.K2)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,i.K2)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,i.K2)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,i.K2)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,i.K2)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,i.K2)(function(t,e){var n,i,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack)for(var s in r)this[s]=r[s];return!1},"test_match"),next:(0,i.K2)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,n,i,r=this._currentRules(),s=0;s<r.length;s++)if((n=this._input.match(this.rules[r[s]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,r[s])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,r[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,i.K2)(function(){return this.next()||this.lex()},"lex"),begin:(0,i.K2)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,i.K2)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,i.K2)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,i.K2)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,i.K2)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,i.K2)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,i.K2)(function(t,e,n,i){switch(n){case 0:return this.pushState("csv"),4;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;case 5:return 20;case 6:return this.popState("escaped_text"),18;case 7:return 19}},"anonymous"),rules:[/^(?:sankey-beta\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};function l(){this.yy={}}return s.lexer=o,(0,i.K2)(l,"Parser"),l.prototype=s,s.Parser=l,new l}();C.parser=C;var N=[],O=[],$=new Map,j=(0,i.K2)(()=>{N=[],O=[],$=new Map,(0,i.IU)()},"clear"),z=class{constructor(t,e,n=0){this.source=t,this.target=e,this.value=n}static{(0,i.K2)(this,"SankeyLink")}},U=(0,i.K2)((t,e,n)=>{N.push(new z(t,e,n))},"addLink"),F=class{constructor(t){this.ID=t}static{(0,i.K2)(this,"SankeyNode")}},W=(0,i.K2)(t=>{t=i.Y2.sanitizeText(t,(0,i.D7)());let e=$.get(t);return void 0===e&&(e=new F(t),$.set(t,e),O.push(e)),e},"findOrCreateNode"),V=(0,i.K2)(()=>O,"getNodes"),G=(0,i.K2)(()=>N,"getLinks"),X=(0,i.K2)(()=>({nodes:O.map(t=>({id:t.ID})),links:N.map(t=>({source:t.source.ID,target:t.target.ID,value:t.value}))}),"getGraph"),Y={nodesMap:$,getConfig:(0,i.K2)(()=>(0,i.D7)().sankey,"getConfig"),getNodes:V,getLinks:G,getGraph:X,addLink:U,findOrCreateNode:W,getAccTitle:i.iN,setAccTitle:i.SV,getAccDescription:i.m7,setAccDescription:i.EI,getDiagramTitle:i.ab,setDiagramTitle:i.ke,clear:j},q=class t{static{(0,i.K2)(this,"Uid")}static{this.count=0}static next(e){return new t(e+ ++t.count)}constructor(t){this.id=t,this.href=`#${t}`}toString(){return"url("+this.href+")"}},Q={left:function(t){return t.depth},right:function(t,e){return e-1-t.height},center:function(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?s(t.sourceLinks,o)-1:0},justify:l},R=(0,i.K2)(function(t,e,n,o){let k,v;let{securityLevel:b,sankey:w}=(0,i.D7)(),C=i.ME.sankey;"sandbox"===b&&(k=(0,r.Ltv)("#i"+e));let N="sandbox"===b?(0,r.Ltv)(k.nodes()[0].contentDocument.body):(0,r.Ltv)("body"),O="sandbox"===b?N.select(`[id="${e}"]`):(0,r.Ltv)(`[id="${e}"]`),$=w?.width??C.width,j=w?.height??C.width,z=w?.useMaxWidth??C.useMaxWidth,U=w?.nodeAlignment??C.nodeAlignment,F=w?.prefix??C.prefix,W=w?.suffix??C.suffix,V=w?.showValues??C.showValues,G=o.db.getGraph(),X=Q[U];(function(){let t,e,n=0,i=0,r=1,o=1,k=24,v=8,b,w=d,S=l,E=g,A=_,K=6;function L(){let l={nodes:E.apply(null,arguments),links:A.apply(null,arguments)};return function({nodes:t,links:n}){for(let[e,n]of t.entries())n.index=e,n.sourceLinks=[],n.targetLinks=[];let i=new Map(t.map((e,n)=>[w(e,n,t),e]));for(let[t,e]of n.entries()){e.index=t;let{source:n,target:r}=e;"object"!=typeof n&&(n=e.source=x(i,n)),"object"!=typeof r&&(r=e.target=x(i,r)),n.sourceLinks.push(e),r.targetLinks.push(e)}if(null!=e)for(let{sourceLinks:n,targetLinks:i}of t)n.sort(e),i.sort(e)}(l),function({nodes:t}){for(let e of t)e.value=void 0===e.fixedValue?Math.max(h(e.sourceLinks,p),h(e.targetLinks,p)):e.fixedValue}(l),function({nodes:t}){let e=t.length,n=new Set(t),i=new Set,r=0;for(;n.size;){for(let t of n)for(let{target:e}of(t.depth=r,t.sourceLinks))i.add(e);if(++r>e)throw Error("circular link");n=i,i=new Set}}(l),function({nodes:t}){let e=t.length,n=new Set(t),i=new Set,r=0;for(;n.size;){for(let t of n)for(let{source:e}of(t.height=r,t.targetLinks))i.add(e);if(++r>e)throw Error("circular link");n=i,i=new Set}}(l),function(l){let c=function({nodes:e}){let i=a(e,t=>t.depth)+1,s=(r-n-k)/(i-1),o=Array(i);for(let t of e){let e=Math.max(0,Math.min(i-1,Math.floor(S.call(null,t,i))));t.layer=e,t.x0=n+e*s,t.x1=t.x0+k,o[e]?o[e].push(t):o[e]=[t]}if(t)for(let e of o)e.sort(t);return o}(l);b=Math.min(v,(o-i)/(a(c,t=>t.length)-1)),function(t){let n=s(t,t=>(o-i-(t.length-1)*b)/h(t,p));for(let r of t){let t=i;for(let e of r)for(let i of(e.y0=t,e.y1=t+e.value*n,t=e.y1+b,e.sourceLinks))i.width=i.value*n;t=(o-t+b)/(r.length+1);for(let e=0;e<r.length;++e){let n=r[e];n.y0+=t*(e+1),n.y1+=t*(e+1)}(function(t){if(void 0===e)for(let{sourceLinks:e,targetLinks:n}of t)e.sort(f),n.sort(u)})(r)}}(c);for(let e=0;e<K;++e){let n=Math.pow(.99,e),i=Math.max(1-n,(e+1)/K);(function(e,n,i){for(let r=e.length,s=r-2;s>=0;--s){let r=e[s];for(let t of r){let e=0,i=0;for(let{target:n,value:r}of t.sourceLinks){let s=r*(n.layer-t.layer);e+=function(t,e){let n=e.y0-(e.targetLinks.length-1)*b/2;for(let{source:i,width:r}of e.targetLinks){if(i===t)break;n+=r+b}for(let{target:i,width:r}of t.sourceLinks){if(i===e)break;n-=r}return n}(t,n)*s,i+=s}if(!(i>0))continue;let r=(e/i-t.y0)*n;t.y0+=r,t.y1+=r,D(t)}void 0===t&&r.sort(y),M(r,i)}})(c,n,i),function(e,n,i){for(let r=1,s=e.length;r<s;++r){let s=e[r];for(let t of s){let e=0,i=0;for(let{source:n,value:r}of t.targetLinks){let s=r*(t.layer-n.layer);e+=function(t,e){let n=t.y0-(t.sourceLinks.length-1)*b/2;for(let{target:i,width:r}of t.sourceLinks){if(i===e)break;n+=r+b}for(let{source:i,width:r}of e.targetLinks){if(i===t)break;n-=r}return n}(n,t)*s,i+=s}if(!(i>0))continue;let r=(e/i-t.y0)*n;t.y0+=r,t.y1+=r,D(t)}void 0===t&&s.sort(y),M(s,i)}}(c,n,i)}}(l),m(l),l}function M(t,e){let n=t.length>>1,r=t[n];T(t,r.y0-b,n-1,e),I(t,r.y1+b,n+1,e),T(t,o,t.length-1,e),I(t,i,0,e)}function I(t,e,n,i){for(;n<t.length;++n){let r=t[n],s=(e-r.y0)*i;s>1e-6&&(r.y0+=s,r.y1+=s),e=r.y1+b}}function T(t,e,n,i){for(;n>=0;--n){let r=t[n],s=(r.y1-e)*i;s>1e-6&&(r.y0-=s,r.y1-=s),e=r.y0-b}}function D({sourceLinks:t,targetLinks:n}){if(void 0===e){for(let{source:{sourceLinks:t}}of n)t.sort(f);for(let{target:{targetLinks:e}}of t)e.sort(u)}}return L.update=function(t){return m(t),t},L.nodeId=function(t){return arguments.length?(w="function"==typeof t?t:c(t),L):w},L.nodeAlign=function(t){return arguments.length?(S="function"==typeof t?t:c(t),L):S},L.nodeSort=function(e){return arguments.length?(t=e,L):t},L.nodeWidth=function(t){return arguments.length?(k=+t,L):k},L.nodePadding=function(t){return arguments.length?(v=b=+t,L):v},L.nodes=function(t){return arguments.length?(E="function"==typeof t?t:c(t),L):E},L.links=function(t){return arguments.length?(A="function"==typeof t?t:c(t),L):A},L.linkSort=function(t){return arguments.length?(e=t,L):e},L.size=function(t){return arguments.length?(n=i=0,r=+t[0],o=+t[1],L):[r-n,o-i]},L.extent=function(t){return arguments.length?(n=+t[0][0],r=+t[1][0],i=+t[0][1],o=+t[1][1],L):[[n,i],[r,o]]},L.iterations=function(t){return arguments.length?(K=+t,L):K},L})().nodeId(t=>t.id).nodeWidth(10).nodePadding(10+(V?15:0)).nodeAlign(X).extent([[0,0],[$,j]])(G);let Y=(0,r.UMr)(r.zt);O.append("g").attr("class","nodes").selectAll(".node").data(G.nodes).join("g").attr("class","node").attr("id",t=>(t.uid=q.next("node-")).id).attr("transform",function(t){return"translate("+t.x0+","+t.y0+")"}).attr("x",t=>t.x0).attr("y",t=>t.y0).append("rect").attr("height",t=>t.y1-t.y0).attr("width",t=>t.x1-t.x0).attr("fill",t=>Y(t.id));let R=(0,i.K2)(({id:t,value:e})=>V?`${t} +${F}${Math.round(100*e)/100}${W}`:t,"getText");O.append("g").attr("class","node-labels").attr("font-family","sans-serif").attr("font-size",14).selectAll("text").data(G.nodes).join("text").attr("x",t=>t.x0<$/2?t.x1+6:t.x0-6).attr("y",t=>(t.y1+t.y0)/2).attr("dy",`${V?"0":"0.35"}em`).attr("text-anchor",t=>t.x0<$/2?"start":"end").text(R);let B=O.append("g").attr("class","links").attr("fill","none").attr("stroke-opacity",.5).selectAll(".link").data(G.links).join("g").attr("class","link").style("mix-blend-mode","multiply"),Z=w?.linkColor??"gradient";if("gradient"===Z){let t=B.append("linearGradient").attr("id",t=>(t.uid=q.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",t=>t.source.x1).attr("x2",t=>t.target.x0);t.append("stop").attr("offset","0%").attr("stop-color",t=>Y(t.source.id)),t.append("stop").attr("offset","100%").attr("stop-color",t=>Y(t.target.id))}switch(Z){case"gradient":v=(0,i.K2)(t=>t.uid,"coloring");break;case"source":v=(0,i.K2)(t=>Y(t.source.id),"coloring");break;case"target":v=(0,i.K2)(t=>Y(t.target.id),"coloring");break;default:v=Z}B.append("path").attr("d",(function(t){var e=M,n=I,i=K,r=L,s=null;function o(){var o,l=E.call(arguments),h=e.apply(this,l),a=n.apply(this,l);if(s||(s=o=S()),t(s,+i.apply(this,(l[0]=h,l)),+r.apply(this,l),+i.apply(this,(l[0]=a,l)),+r.apply(this,l)),o)return s=null,o+""||null}return o.source=function(t){return arguments.length?(e=t,o):e},o.target=function(t){return arguments.length?(n=t,o):n},o.x=function(t){return arguments.length?(i="function"==typeof t?t:A(+t),o):i},o.y=function(t){return arguments.length?(r="function"==typeof t?t:A(+t),o):r},o.context=function(t){return arguments.length?(s=null==t?null:t,o):s},o})(T).source(D).target(P)).attr("stroke",v).attr("stroke-width",t=>Math.max(1,t.width)),(0,i.ot)(void 0,O,0,z)},"draw"),B=(0,i.K2)(t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,"\n").trim(),"prepareTextForParsing"),Z=C.parse.bind(C);C.parse=t=>Z(B(t));var H={parser:C,db:Y,renderer:{draw:R}}}}]); \ No newline at end of file diff --git a/assets/js/46f5ed35.63d8ac39.js b/assets/js/46f5ed35.63d8ac39.js deleted file mode 100644 index 60e922a385..0000000000 --- a/assets/js/46f5ed35.63d8ac39.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[82325],{14150:(e,n,s)=>{s.d(n,{A:()=>i});let i=s.p+"assets/images/demo-0e309a1a631b58ebe6d5f2d8014351e8.png"},25355:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>a});let i=JSON.parse('{"id":"api/misc/logger/logger","title":"\u{1F4E6} logger","description":"An encapsulated logger for semantically formatting console messages.","source":"@site/docs/api/misc/logger/logger.mdx","sourceDirName":"api/misc/logger","slug":"/api/misc/@docusaurus/logger","permalink":"/docs/api/misc/@docusaurus/logger","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/logger/logger.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":2,"frontMatter":{"sidebar_position":2,"slug":"/api/misc/@docusaurus/logger"},"sidebar":"api","previous":{"title":"string-literal-i18n-messages","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages"}}');var r=s(62540),t=s(43023);let o={sidebar_position:2,slug:"/api/misc/@docusaurus/logger"},l="\u{1F4E6} logger",d={},a=[{value:"APIs",id:"apis",level:2},{value:"Using the template literal tag",id:"using-the-template-literal-tag",level:3}];function c(e){let n={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",mdxAdmonitionTitle:"mdxAdmonitionTitle",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"-logger",children:"\u{1F4E6} logger"})}),"\n",(0,r.jsx)(n.p,{children:"An encapsulated logger for semantically formatting console messages."}),"\n",(0,r.jsx)(n.p,{children:"Authors of packages in the Docusaurus ecosystem are encouraged to use this package to provide unified log formats."}),"\n",(0,r.jsx)(n.h2,{id:"apis",children:"APIs"}),"\n",(0,r.jsxs)(n.p,{children:["It exports a single object as default export: ",(0,r.jsx)(n.code,{children:"logger"}),". ",(0,r.jsx)(n.code,{children:"logger"})," has the following properties:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Some useful colors.","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"red"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"yellow"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"green"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"bold"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"dim"})}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["Formatters. These functions all have the signature ",(0,r.jsx)(n.code,{children:"(msg: unknown) => string"}),". Note that their implementations are not guaranteed. You should only care about their semantics.","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"path"}),": formats a file path."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"url"}),": formats a URL."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"name"}),": formats an identifier."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"code"}),": formats a code snippet."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"subdue"}),": subdues the text."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"num"}),": formats a number."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["The ",(0,r.jsx)(n.code,{children:"interpolate"})," function. It is a template literal tag. The syntax can be found below."]}),"\n",(0,r.jsxs)(n.li,{children:["Logging functions. All logging functions can both be used as normal functions (similar to the ",(0,r.jsx)(n.code,{children:"console.log"})," family, but only accepts one parameter) or template literal tags.","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"info"}),": prints information."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"warn"}),": prints a warning that should be paid attention to."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"error"}),": prints an error (not necessarily halting the program) that signals significant problems."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"success"}),": prints a success message."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["The ",(0,r.jsx)(n.code,{children:"report"})," function. It takes a ",(0,r.jsx)(n.code,{children:"ReportingSeverity"})," value (",(0,r.jsx)(n.code,{children:"ignore"}),", ",(0,r.jsx)(n.code,{children:"log"}),", ",(0,r.jsx)(n.code,{children:"warn"}),", ",(0,r.jsx)(n.code,{children:"throw"}),") and reports a message according to the severity."]}),"\n"]}),"\n",(0,r.jsxs)(n.admonition,{type:"warning",children:[(0,r.jsxs)(n.mdxAdmonitionTitle,{children:["A word on the ",(0,r.jsx)(n.code,{children:"error"})," formatter"]}),(0,r.jsxs)(n.p,{children:["Beware that an ",(0,r.jsx)(n.code,{children:"error"})," message, even when it doesn't hang the program, is likely going to cause confusion. When users inspect logs and find an ",(0,r.jsx)(n.code,{children:"[ERROR]"}),", even when the build succeeds, they will assume something is going wrong. Use it sparingly."]}),(0,r.jsxs)(n.p,{children:["Docusaurus only uses ",(0,r.jsx)(n.code,{children:"logger.error"})," when printing messages immediately before throwing an error, or when user has set the reporting severity of ",(0,r.jsx)(n.code,{children:"onBrokenLink"}),", etc. to ",(0,r.jsx)(n.code,{children:'"error"'}),"."]}),(0,r.jsxs)(n.p,{children:["In addition, ",(0,r.jsx)(n.code,{children:"warn"})," and ",(0,r.jsx)(n.code,{children:"error"})," will color the ",(0,r.jsx)(n.strong,{children:"entire"})," message for better attention. If you are printing large blocks of help text about an error, better use ",(0,r.jsx)(n.code,{children:"logger.info"}),"."]})]}),"\n",(0,r.jsx)(n.h3,{id:"using-the-template-literal-tag",children:"Using the template literal tag"}),"\n",(0,r.jsxs)(n.p,{children:["The template literal tag evaluates the template and expressions embedded. ",(0,r.jsx)(n.code,{children:"interpolate"})," returns a new string, while other logging functions prints it. Below is a typical usage:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",children:"import logger from '@docusaurus/logger';\n\nlogger.info`Hello name=${name}! You have number=${money} dollars. Here are the ${\n items.length > 1 ? 'items' : 'item'\n} on the shelf: ${items}\nTo buy anything, enter code=${'buy x'} where code=${'x'} is the item's name; to quit, press code=${'Ctrl + C'}.`;\n"})}),"\n",(0,r.jsxs)(n.p,{children:["An embedded expression is optionally preceded by a flag in the form ",(0,r.jsx)(n.code,{children:"[a-z]+="})," (a few lowercase letters, followed by an equals sign, directly preceding the embedded expression). If the expression is not preceded by any flag, it's printed out as-is. Otherwise, it's formatted with one of the formatters:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"path="}),": ",(0,r.jsx)(n.code,{children:"path"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"url="}),": ",(0,r.jsx)(n.code,{children:"url"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"name="}),": ",(0,r.jsx)(n.code,{children:"name"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"code="}),": ",(0,r.jsx)(n.code,{children:"code"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"subdue="}),": ",(0,r.jsx)(n.code,{children:"subdue"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"number="}),": ",(0,r.jsx)(n.code,{children:"num"})]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["If the expression is an array, it's formatted by ",(0,r.jsx)(n.code,{children:"`\\n- ${array.join('\\n- ')}\\n`"})," (note it automatically gets a leading line end). Each member is formatted by itself and the bullet is not formatted. So you would see the above message printed as:"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Some text output in the terminal, containing array, code, name, and number formatting",src:s(14150).A+"",width:"1234",height:"150"})})]})}function h(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>l});var i=s(63696);let r={},t=i.createContext(r);function o(e){let n=i.useContext(t);return i.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(r):e.components||r:o(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/46f5ed35.9aeda84b.js b/assets/js/46f5ed35.9aeda84b.js new file mode 100644 index 0000000000..840e06ef79 --- /dev/null +++ b/assets/js/46f5ed35.9aeda84b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[82325],{14150:(e,n,s)=>{s.d(n,{A:()=>i});let i=s.p+"assets/images/demo-0e309a1a631b58ebe6d5f2d8014351e8.png"},25355:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>a});let i=JSON.parse('{"id":"api/misc/logger/logger","title":"\u{1F4E6} logger","description":"An encapsulated logger for semantically formatting console messages.","source":"@site/docs/api/misc/logger/logger.mdx","sourceDirName":"api/misc/logger","slug":"/api/misc/@docusaurus/logger","permalink":"/docs/api/misc/@docusaurus/logger","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/misc/logger/logger.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":2,"frontMatter":{"sidebar_position":2,"slug":"/api/misc/@docusaurus/logger"},"sidebar":"api","previous":{"title":"string-literal-i18n-messages","permalink":"/docs/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages"}}');var r=s(62540),t=s(43023);let o={sidebar_position:2,slug:"/api/misc/@docusaurus/logger"},l="\u{1F4E6} logger",d={},a=[{value:"APIs",id:"apis",level:2},{value:"Using the template literal tag",id:"using-the-template-literal-tag",level:3}];function c(e){let n={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",mdxAdmonitionTitle:"mdxAdmonitionTitle",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"-logger",children:"\u{1F4E6} logger"})}),"\n",(0,r.jsx)(n.p,{children:"An encapsulated logger for semantically formatting console messages."}),"\n",(0,r.jsx)(n.p,{children:"Authors of packages in the Docusaurus ecosystem are encouraged to use this package to provide unified log formats."}),"\n",(0,r.jsx)(n.h2,{id:"apis",children:"APIs"}),"\n",(0,r.jsxs)(n.p,{children:["It exports a single object as default export: ",(0,r.jsx)(n.code,{children:"logger"}),". ",(0,r.jsx)(n.code,{children:"logger"})," has the following properties:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Some useful colors.","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"red"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"yellow"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"green"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"bold"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"dim"})}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["Formatters. These functions all have the signature ",(0,r.jsx)(n.code,{children:"(msg: unknown) => string"}),". Note that their implementations are not guaranteed. You should only care about their semantics.","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"path"}),": formats a file path."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"url"}),": formats a URL."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"name"}),": formats an identifier."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"code"}),": formats a code snippet."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"subdue"}),": subdues the text."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"num"}),": formats a number."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["The ",(0,r.jsx)(n.code,{children:"interpolate"})," function. It is a template literal tag. The syntax can be found below."]}),"\n",(0,r.jsxs)(n.li,{children:["Logging functions. All logging functions can both be used as normal functions (similar to the ",(0,r.jsx)(n.code,{children:"console.log"})," family, but only accepts one parameter) or template literal tags.","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"info"}),": prints information."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"warn"}),": prints a warning that should be paid attention to."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"error"}),": prints an error (not necessarily halting the program) that signals significant problems."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"success"}),": prints a success message."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["The ",(0,r.jsx)(n.code,{children:"report"})," function. It takes a ",(0,r.jsx)(n.code,{children:"ReportingSeverity"})," value (",(0,r.jsx)(n.code,{children:"ignore"}),", ",(0,r.jsx)(n.code,{children:"log"}),", ",(0,r.jsx)(n.code,{children:"warn"}),", ",(0,r.jsx)(n.code,{children:"throw"}),") and reports a message according to the severity."]}),"\n"]}),"\n",(0,r.jsxs)(n.admonition,{type:"warning",children:[(0,r.jsxs)(n.mdxAdmonitionTitle,{children:["A word on the ",(0,r.jsx)(n.code,{children:"error"})," formatter"]}),(0,r.jsxs)(n.p,{children:["Beware that an ",(0,r.jsx)(n.code,{children:"error"})," message, even when it doesn't hang the program, is likely going to cause confusion. When users inspect logs and find an ",(0,r.jsx)(n.code,{children:"[ERROR]"}),", even when the build succeeds, they will assume something is going wrong. Use it sparingly."]}),(0,r.jsxs)(n.p,{children:["Docusaurus only uses ",(0,r.jsx)(n.code,{children:"logger.error"})," when printing messages immediately before throwing an error, or when user has set the reporting severity of ",(0,r.jsx)(n.code,{children:"onBrokenLink"}),", etc. to ",(0,r.jsx)(n.code,{children:'"error"'}),"."]}),(0,r.jsxs)(n.p,{children:["In addition, ",(0,r.jsx)(n.code,{children:"warn"})," and ",(0,r.jsx)(n.code,{children:"error"})," will color the ",(0,r.jsx)(n.strong,{children:"entire"})," message for better attention. If you are printing large blocks of help text about an error, better use ",(0,r.jsx)(n.code,{children:"logger.info"}),"."]})]}),"\n",(0,r.jsx)(n.h3,{id:"using-the-template-literal-tag",children:"Using the template literal tag"}),"\n",(0,r.jsxs)(n.p,{children:["The template literal tag evaluates the template and expressions embedded. ",(0,r.jsx)(n.code,{children:"interpolate"})," returns a new string, while other logging functions prints it. Below is a typical usage:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",children:"import logger from '@docusaurus/logger';\n\nlogger.info`Hello name=${name}! You have number=${money} dollars. Here are the ${\n items.length > 1 ? 'items' : 'item'\n} on the shelf: ${items}\nTo buy anything, enter code=${'buy x'} where code=${'x'} is the item's name; to quit, press code=${'Ctrl + C'}.`;\n"})}),"\n",(0,r.jsxs)(n.p,{children:["An embedded expression is optionally preceded by a flag in the form ",(0,r.jsx)(n.code,{children:"[a-z]+="})," (a few lowercase letters, followed by an equals sign, directly preceding the embedded expression). If the expression is not preceded by any flag, it's printed out as-is. Otherwise, it's formatted with one of the formatters:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"path="}),": ",(0,r.jsx)(n.code,{children:"path"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"url="}),": ",(0,r.jsx)(n.code,{children:"url"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"name="}),": ",(0,r.jsx)(n.code,{children:"name"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"code="}),": ",(0,r.jsx)(n.code,{children:"code"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"subdue="}),": ",(0,r.jsx)(n.code,{children:"subdue"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"number="}),": ",(0,r.jsx)(n.code,{children:"num"})]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["If the expression is an array, it's formatted by ",(0,r.jsx)(n.code,{children:"`\\n- ${array.join('\\n- ')}\\n`"})," (note it automatically gets a leading line end). Each member is formatted by itself and the bullet is not formatted. So you would see the above message printed as:"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Some text output in the terminal, containing array, code, name, and number formatting",src:s(14150).A+"",width:"1234",height:"150"})})]})}function h(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>l});var i=s(63696);let r={},t=i.createContext(r);function o(e){let n=i.useContext(t);return i.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(r):e.components||r:o(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/47773.0a75706c.js b/assets/js/47773.0a75706c.js deleted file mode 100644 index 38856c2b5e..0000000000 --- a/assets/js/47773.0a75706c.js +++ /dev/null @@ -1,88 +0,0 @@ -(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[47773],{29859:function(e,t,n){var r;r=function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=7)}([function(t,n){t.exports=e},function(e,t,n){"use strict";var r=n(0).FDLayoutConstants;function i(){}for(var a in r)i[a]=r[a];i.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,i.DEFAULT_RADIAL_SEPARATION=r.DEFAULT_EDGE_LENGTH,i.DEFAULT_COMPONENT_SEPERATION=60,i.TILE=!0,i.TILING_PADDING_VERTICAL=10,i.TILING_PADDING_HORIZONTAL=10,i.TREE_REDUCTION_ON_INCREMENTAL=!1,e.exports=i},function(e,t,n){"use strict";var r=n(0).FDLayoutEdge;function i(e,t,n){r.call(this,e,t,n)}for(var a in i.prototype=Object.create(r.prototype),r)i[a]=r[a];e.exports=i},function(e,t,n){"use strict";var r=n(0).LGraph;function i(e,t,n){r.call(this,e,t,n)}for(var a in i.prototype=Object.create(r.prototype),r)i[a]=r[a];e.exports=i},function(e,t,n){"use strict";var r=n(0).LGraphManager;function i(e){r.call(this,e)}for(var a in i.prototype=Object.create(r.prototype),r)i[a]=r[a];e.exports=i},function(e,t,n){"use strict";var r=n(0).FDLayoutNode,i=n(0).IMath;function a(e,t,n,i){r.call(this,e,t,n,i)}for(var o in a.prototype=Object.create(r.prototype),r)a[o]=r[o];a.prototype.move=function(){var e=this.graphManager.getLayout();this.displacementX=e.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=e.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>e.coolingFactor*e.maxNodeDisplacement&&(this.displacementX=e.coolingFactor*e.maxNodeDisplacement*i.sign(this.displacementX)),Math.abs(this.displacementY)>e.coolingFactor*e.maxNodeDisplacement&&(this.displacementY=e.coolingFactor*e.maxNodeDisplacement*i.sign(this.displacementY)),null==this.child?this.moveBy(this.displacementX,this.displacementY):0==this.child.getNodes().length?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),e.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},a.prototype.propogateDisplacementToChildren=function(e,t){for(var n,r=this.getChild().getNodes(),i=0;i<r.length;i++)null==(n=r[i]).getChild()?(n.moveBy(e,t),n.displacementX+=e,n.displacementY+=t):n.propogateDisplacementToChildren(e,t)},a.prototype.setPred1=function(e){this.pred1=e},a.prototype.getPred1=function(){return pred1},a.prototype.getPred2=function(){return pred2},a.prototype.setNext=function(e){this.next=e},a.prototype.getNext=function(){return next},a.prototype.setProcessed=function(e){this.processed=e},a.prototype.isProcessed=function(){return processed},e.exports=a},function(e,t,n){"use strict";var r=n(0).FDLayout,i=n(4),a=n(3),o=n(5),s=n(2),l=n(1),u=n(0).FDLayoutConstants,h=n(0).LayoutConstants,c=n(0).Point,d=n(0).PointD,p=n(0).Layout,g=n(0).Integer,f=n(0).IGeometry,v=n(0).LGraph,y=n(0).Transform;function b(){r.call(this),this.toBeTiled={}}for(var x in b.prototype=Object.create(r.prototype),r)b[x]=r[x];b.prototype.newGraphManager=function(){var e=new i(this);return this.graphManager=e,e},b.prototype.newGraph=function(e){return new a(null,this.graphManager,e)},b.prototype.newNode=function(e){return new o(this.graphManager,e)},b.prototype.newEdge=function(e){return new s(null,null,e)},b.prototype.initParameters=function(){r.prototype.initParameters.call(this,arguments),this.isSubLayout||(l.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=l.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=l.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.springConstant=u.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=u.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=u.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=u.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=u.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=u.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1,this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/u.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=u.CONVERGENCE_CHECK_PERIOD/this.maxIterations,this.coolingAdjuster=1)},b.prototype.layout=function(){return h.DEFAULT_CREATE_BENDS_AS_NEEDED&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},b.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(l.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var e=new Set(this.getAllNodes()),t=this.nodesWithGravity.filter(function(t){return e.has(t)});this.graphManager.setAllNodesToApplyGravitation(t)}}else{var n=this.getFlatForest();if(n.length>0)this.positionNodesRadially(n);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var e=new Set(this.getAllNodes()),t=this.nodesWithGravity.filter(function(t){return e.has(t)});this.graphManager.setAllNodesToApplyGravitation(t),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},b.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}if(this.totalIterations%u.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged()){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}this.coolingCycle++,0==this.layoutQuality?this.coolingAdjuster=this.coolingCycle:1==this.layoutQuality&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0){if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var e=new Set(this.getAllNodes()),t=this.nodesWithGravity.filter(function(t){return e.has(t)});this.graphManager.setAllNodesToApplyGravitation(t),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=u.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0}this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=u.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var n=!this.isTreeGrowing&&!this.isGrowthFinished,r=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(n,r),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},b.prototype.getPositionsData=function(){for(var e=this.graphManager.getAllNodes(),t={},n=0;n<e.length;n++){var r=e[n].rect,i=e[n].id;t[i]={id:i,x:r.getCenterX(),y:r.getCenterY(),w:r.width,h:r.height}}return t},b.prototype.runSpringEmbedder=function(){this.initialAnimationPeriod=25,this.animationPeriod=this.initialAnimationPeriod;var e=!1;if("during"===u.ANIMATE)this.emit("layoutstarted");else{for(;!e;)e=this.tick();this.graphManager.updateBounds()}},b.prototype.calculateNodesToApplyGravitationTo=function(){var e,t,n=[],r=this.graphManager.getGraphs(),i=r.length;for(t=0;t<i;t++)(e=r[t]).updateConnected(),e.isConnected||(n=n.concat(e.getNodes()));return n},b.prototype.createBendpoints=function(){var e=[];e=e.concat(this.graphManager.getAllEdges());var t=new Set;for(a=0;a<e.length;a++){var n=e[a];if(!t.has(n)){var r=n.getSource(),i=n.getTarget();if(r==i)n.getBendpoints().push(new d),n.getBendpoints().push(new d),this.createDummyNodesForBendpoints(n),t.add(n);else{var a,o,s=[];if(s=(s=s.concat(r.getEdgeListToNode(i))).concat(i.getEdgeListToNode(r)),!t.has(s[0])){if(s.length>1)for(o=0;o<s.length;o++){var l=s[o];l.getBendpoints().push(new d),this.createDummyNodesForBendpoints(l)}s.forEach(function(e){t.add(e)})}}}if(t.size==e.length)break}},b.prototype.positionNodesRadially=function(e){for(var t=new c(0,0),n=Math.ceil(Math.sqrt(e.length)),r=0,i=0,a=0,o=new d(0,0),s=0;s<e.length;s++){s%n==0&&(a=0,i=r,0!=s&&(i+=l.DEFAULT_COMPONENT_SEPERATION),r=0);var u=e[s],g=p.findCenterOfTree(u);t.x=a,t.y=i,(o=b.radialLayout(u,g,t)).y>r&&(r=Math.floor(o.y)),a=Math.floor(o.x+l.DEFAULT_COMPONENT_SEPERATION)}this.transform(new d(h.WORLD_CENTER_X-o.x/2,h.WORLD_CENTER_Y-o.y/2))},b.radialLayout=function(e,t,n){var r=Math.max(this.maxDiagonalInTree(e),l.DEFAULT_RADIAL_SEPARATION);b.branchRadialLayout(t,null,0,359,0,r);var i=v.calculateBounds(e),a=new y;a.setDeviceOrgX(i.getMinX()),a.setDeviceOrgY(i.getMinY()),a.setWorldOrgX(n.x),a.setWorldOrgY(n.y);for(var o=0;o<e.length;o++)e[o].transform(a);var s=new d(i.getMaxX(),i.getMaxY());return a.inverseTransformPoint(s)},b.branchRadialLayout=function(e,t,n,r,i,a){var o,s=(r-n+1)/2;s<0&&(s+=180);var l=(s+n)%360*f.TWO_PI/360,u=i*Math.cos(l),h=i*Math.sin(l);e.setCenter(u,h);var c=[],d=(c=c.concat(e.getEdges())).length;null!=t&&d--;for(var p=0,g=c.length,v=e.getEdgesBetween(t);v.length>1;){var y=v[0];v.splice(0,1);var x=c.indexOf(y);x>=0&&c.splice(x,1),g--,d--}o=null!=t?(c.indexOf(v[0])+1)%g:0;for(var w=Math.abs(r-n)/d,E=o;p!=d;E=++E%g){var T=c[E].getOtherEnd(e);if(T!=t){var _=(n+p*w)%360,D=(_+w)%360;b.branchRadialLayout(T,e,_,D,i+a,a),p++}}},b.maxDiagonalInTree=function(e){for(var t=g.MIN_VALUE,n=0;n<e.length;n++){var r=e[n].getDiagonal();r>t&&(t=r)}return t},b.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},b.prototype.groupZeroDegreeMembers=function(){var e=this,t={};this.memberGroups={},this.idToDummyNode={};for(var n=[],r=this.graphManager.getAllNodes(),i=0;i<r.length;i++){var a=r[i],s=a.getParent();0!==this.getNodeDegreeWithChildren(a)||void 0!=s.id&&this.getToBeTiled(s)||n.push(a)}for(var i=0;i<n.length;i++){var a=n[i],l=a.getParent().id;void 0===t[l]&&(t[l]=[]),t[l]=t[l].concat(a)}Object.keys(t).forEach(function(n){if(t[n].length>1){var r="DummyCompound_"+n;e.memberGroups[r]=t[n];var i=t[n][0].getParent(),a=new o(e.graphManager);a.id=r,a.paddingLeft=i.paddingLeft||0,a.paddingRight=i.paddingRight||0,a.paddingBottom=i.paddingBottom||0,a.paddingTop=i.paddingTop||0,e.idToDummyNode[r]=a;var s=e.getGraphManager().add(e.newGraph(),a),l=i.getChild();l.add(a);for(var u=0;u<t[n].length;u++){var h=t[n][u];l.remove(h),s.add(h)}}})},b.prototype.clearCompounds=function(){var e={},t={};this.performDFSOnCompounds();for(var n=0;n<this.compoundOrder.length;n++)t[this.compoundOrder[n].id]=this.compoundOrder[n],e[this.compoundOrder[n].id]=[].concat(this.compoundOrder[n].getChild().getNodes()),this.graphManager.remove(this.compoundOrder[n].getChild()),this.compoundOrder[n].child=null;this.graphManager.resetAllNodes(),this.tileCompoundMembers(e,t)},b.prototype.clearZeroDegreeMembers=function(){var e=this,t=this.tiledZeroDegreePack=[];Object.keys(this.memberGroups).forEach(function(n){var r=e.idToDummyNode[n];t[n]=e.tileNodes(e.memberGroups[n],r.paddingLeft+r.paddingRight),r.rect.width=t[n].width,r.rect.height=t[n].height})},b.prototype.repopulateCompounds=function(){for(var e=this.compoundOrder.length-1;e>=0;e--){var t=this.compoundOrder[e],n=t.id,r=t.paddingLeft,i=t.paddingTop;this.adjustLocations(this.tiledMemberPack[n],t.rect.x,t.rect.y,r,i)}},b.prototype.repopulateZeroDegreeMembers=function(){var e=this,t=this.tiledZeroDegreePack;Object.keys(t).forEach(function(n){var r=e.idToDummyNode[n],i=r.paddingLeft,a=r.paddingTop;e.adjustLocations(t[n],r.rect.x,r.rect.y,i,a)})},b.prototype.getToBeTiled=function(e){var t=e.id;if(null!=this.toBeTiled[t])return this.toBeTiled[t];var n=e.getChild();if(null==n)return this.toBeTiled[t]=!1,!1;for(var r=n.getNodes(),i=0;i<r.length;i++){var a=r[i];if(this.getNodeDegree(a)>0)return this.toBeTiled[t]=!1,!1;if(null==a.getChild()){this.toBeTiled[a.id]=!1;continue}if(!this.getToBeTiled(a))return this.toBeTiled[t]=!1,!1}return this.toBeTiled[t]=!0,!0},b.prototype.getNodeDegree=function(e){e.id;for(var t=e.getEdges(),n=0,r=0;r<t.length;r++){var i=t[r];i.getSource().id!==i.getTarget().id&&(n+=1)}return n},b.prototype.getNodeDegreeWithChildren=function(e){var t=this.getNodeDegree(e);if(null==e.getChild())return t;for(var n=e.getChild().getNodes(),r=0;r<n.length;r++){var i=n[r];t+=this.getNodeDegreeWithChildren(i)}return t},b.prototype.performDFSOnCompounds=function(){this.compoundOrder=[],this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes())},b.prototype.fillCompexOrderByDFS=function(e){for(var t=0;t<e.length;t++){var n=e[t];null!=n.getChild()&&this.fillCompexOrderByDFS(n.getChild().getNodes()),this.getToBeTiled(n)&&this.compoundOrder.push(n)}},b.prototype.adjustLocations=function(e,t,n,r,i){t+=r,n+=i;for(var a=t,o=0;o<e.rows.length;o++){var s=e.rows[o];t=a;for(var l=0,u=0;u<s.length;u++){var h=s[u];h.rect.x=t,h.rect.y=n,t+=h.rect.width+e.horizontalPadding,h.rect.height>l&&(l=h.rect.height)}n+=l+e.verticalPadding}},b.prototype.tileCompoundMembers=function(e,t){var n=this;this.tiledMemberPack=[],Object.keys(e).forEach(function(r){var i=t[r];n.tiledMemberPack[r]=n.tileNodes(e[r],i.paddingLeft+i.paddingRight),i.rect.width=n.tiledMemberPack[r].width,i.rect.height=n.tiledMemberPack[r].height})},b.prototype.tileNodes=function(e,t){var n={rows:[],rowWidth:[],rowHeight:[],width:0,height:t,verticalPadding:l.TILING_PADDING_VERTICAL,horizontalPadding:l.TILING_PADDING_HORIZONTAL};e.sort(function(e,t){return e.rect.width*e.rect.height>t.rect.width*t.rect.height?-1:e.rect.width*e.rect.height<t.rect.width*t.rect.height?1:0});for(var r=0;r<e.length;r++){var i=e[r];0==n.rows.length?this.insertNodeToRow(n,i,0,t):this.canAddHorizontal(n,i.rect.width,i.rect.height)?this.insertNodeToRow(n,i,this.getShortestRowIndex(n),t):this.insertNodeToRow(n,i,n.rows.length,t),this.shiftToLastRow(n)}return n},b.prototype.insertNodeToRow=function(e,t,n,r){n==e.rows.length&&(e.rows.push([]),e.rowWidth.push(r),e.rowHeight.push(0));var i=e.rowWidth[n]+t.rect.width;e.rows[n].length>0&&(i+=e.horizontalPadding),e.rowWidth[n]=i,e.width<i&&(e.width=i);var a=t.rect.height;n>0&&(a+=e.verticalPadding);var o=0;a>e.rowHeight[n]&&(o=e.rowHeight[n],e.rowHeight[n]=a,o=e.rowHeight[n]-o),e.height+=o,e.rows[n].push(t)},b.prototype.getShortestRowIndex=function(e){for(var t=-1,n=Number.MAX_VALUE,r=0;r<e.rows.length;r++)e.rowWidth[r]<n&&(t=r,n=e.rowWidth[r]);return t},b.prototype.getLongestRowIndex=function(e){for(var t=-1,n=Number.MIN_VALUE,r=0;r<e.rows.length;r++)e.rowWidth[r]>n&&(t=r,n=e.rowWidth[r]);return t},b.prototype.canAddHorizontal=function(e,t,n){var r,i,a=this.getShortestRowIndex(e);if(a<0)return!0;var o=e.rowWidth[a];if(o+e.horizontalPadding+t<=e.width)return!0;var s=0;return e.rowHeight[a]<n&&a>0&&(s=n+e.verticalPadding-e.rowHeight[a]),r=e.width-o>=t+e.horizontalPadding?(e.height+s)/(o+t+e.horizontalPadding):(e.height+s)/e.width,s=n+e.verticalPadding,(i=e.width<t?(e.height+s)/t:(e.height+s)/e.width)<1&&(i=1/i),r<1&&(r=1/r),r<i},b.prototype.shiftToLastRow=function(e){var t=this.getLongestRowIndex(e),n=e.rowWidth.length-1,r=e.rows[t],i=r[r.length-1],a=i.width+e.horizontalPadding;if(e.width-e.rowWidth[n]>a&&t!=n){r.splice(-1,1),e.rows[n].push(i),e.rowWidth[t]=e.rowWidth[t]-a,e.rowWidth[n]=e.rowWidth[n]+a,e.width=e.rowWidth[instance.getLongestRowIndex(e)];for(var o=Number.MIN_VALUE,s=0;s<r.length;s++)r[s].height>o&&(o=r[s].height);t>0&&(o+=e.verticalPadding);var l=e.rowHeight[t]+e.rowHeight[n];e.rowHeight[t]=o,e.rowHeight[n]<i.height+e.verticalPadding&&(e.rowHeight[n]=i.height+e.verticalPadding);var u=e.rowHeight[t]+e.rowHeight[n];e.height+=u-l,this.shiftToLastRow(e)}},b.prototype.tilingPreLayout=function(){l.TILE&&(this.groupZeroDegreeMembers(),this.clearCompounds(),this.clearZeroDegreeMembers())},b.prototype.tilingPostLayout=function(){l.TILE&&(this.repopulateZeroDegreeMembers(),this.repopulateCompounds())},b.prototype.reduceTrees=function(){for(var e,t=[],n=!0;n;){var r=this.graphManager.getAllNodes(),i=[];n=!1;for(var a=0;a<r.length;a++)1!=(e=r[a]).getEdges().length||e.getEdges()[0].isInterGraph||null!=e.getChild()||(i.push([e,e.getEdges()[0],e.getOwner()]),n=!0);if(!0==n){for(var o=[],s=0;s<i.length;s++)1==i[s][0].getEdges().length&&(o.push(i[s]),i[s][0].getOwner().remove(i[s][0]));t.push(o),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()}}this.prunedNodesAll=t},b.prototype.growTree=function(e){for(var t,n=e.length,r=e[n-1],i=0;i<r.length;i++)t=r[i],this.findPlaceforPrunedNode(t),t[2].add(t[0]),t[2].add(t[1],t[1].source,t[1].target);e.splice(e.length-1,1),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()},b.prototype.findPlaceforPrunedNode=function(e){var t,n,r,i,a=e[0],o=(n=a==e[1].source?e[1].target:e[1].source).startX,s=n.finishX,l=n.startY,h=n.finishY,c=[0,0,0,0];if(l>0)for(var d=o;d<=s;d++)c[0]+=this.grid[d][l-1].length+this.grid[d][l].length-1;if(s<this.grid.length-1)for(var d=l;d<=h;d++)c[1]+=this.grid[s+1][d].length+this.grid[s][d].length-1;if(h<this.grid[0].length-1)for(var d=o;d<=s;d++)c[2]+=this.grid[d][h+1].length+this.grid[d][h].length-1;if(o>0)for(var d=l;d<=h;d++)c[3]+=this.grid[o-1][d].length+this.grid[o][d].length-1;for(var p=g.MAX_VALUE,f=0;f<c.length;f++)c[f]<p?(p=c[f],r=1,i=f):c[f]==p&&r++;if(3==r&&0==p)0==c[0]&&0==c[1]&&0==c[2]?t=1:0==c[0]&&0==c[1]&&0==c[3]?t=0:0==c[0]&&0==c[2]&&0==c[3]?t=3:0==c[1]&&0==c[2]&&0==c[3]&&(t=2);else if(2==r&&0==p){var v=Math.floor(2*Math.random());t=0==c[0]&&0==c[1]?0==v?0:1:0==c[0]&&0==c[2]?0==v?0:2:0==c[0]&&0==c[3]?0==v?0:3:0==c[1]&&0==c[2]?0==v?1:2:0==c[1]&&0==c[3]?0==v?1:3:0==v?2:3}else if(4==r&&0==p){var v=Math.floor(4*Math.random());t=v}else t=i;0==t?a.setCenter(n.getCenterX(),n.getCenterY()-n.getHeight()/2-u.DEFAULT_EDGE_LENGTH-a.getHeight()/2):1==t?a.setCenter(n.getCenterX()+n.getWidth()/2+u.DEFAULT_EDGE_LENGTH+a.getWidth()/2,n.getCenterY()):2==t?a.setCenter(n.getCenterX(),n.getCenterY()+n.getHeight()/2+u.DEFAULT_EDGE_LENGTH+a.getHeight()/2):a.setCenter(n.getCenterX()-n.getWidth()/2-u.DEFAULT_EDGE_LENGTH-a.getWidth()/2,n.getCenterY())},e.exports=b},function(e,t,n){"use strict";var r={};r.layoutBase=n(0),r.CoSEConstants=n(1),r.CoSEEdge=n(2),r.CoSEGraph=n(3),r.CoSEGraphManager=n(4),r.CoSELayout=n(6),r.CoSENode=n(5),e.exports=r}])},e.exports=r(n(44467))},69165:function(e,t,n){var r;r=function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(t,n){t.exports=e},function(e,t,n){"use strict";var r=n(0).layoutBase.LayoutConstants,i=n(0).layoutBase.FDLayoutConstants,a=n(0).CoSEConstants,o=n(0).CoSELayout,s=n(0).CoSENode,l=n(0).layoutBase.PointD,u=n(0).layoutBase.DimensionD,h={ready:function(){},stop:function(){},quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function c(e){this.options=function(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n}(h,e),d(this.options)}var d=function(e){null!=e.nodeRepulsion&&(a.DEFAULT_REPULSION_STRENGTH=i.DEFAULT_REPULSION_STRENGTH=e.nodeRepulsion),null!=e.idealEdgeLength&&(a.DEFAULT_EDGE_LENGTH=i.DEFAULT_EDGE_LENGTH=e.idealEdgeLength),null!=e.edgeElasticity&&(a.DEFAULT_SPRING_STRENGTH=i.DEFAULT_SPRING_STRENGTH=e.edgeElasticity),null!=e.nestingFactor&&(a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=e.nestingFactor),null!=e.gravity&&(a.DEFAULT_GRAVITY_STRENGTH=i.DEFAULT_GRAVITY_STRENGTH=e.gravity),null!=e.numIter&&(a.MAX_ITERATIONS=i.MAX_ITERATIONS=e.numIter),null!=e.gravityRange&&(a.DEFAULT_GRAVITY_RANGE_FACTOR=i.DEFAULT_GRAVITY_RANGE_FACTOR=e.gravityRange),null!=e.gravityCompound&&(a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=i.DEFAULT_COMPOUND_GRAVITY_STRENGTH=e.gravityCompound),null!=e.gravityRangeCompound&&(a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=e.gravityRangeCompound),null!=e.initialEnergyOnIncremental&&(a.DEFAULT_COOLING_FACTOR_INCREMENTAL=i.DEFAULT_COOLING_FACTOR_INCREMENTAL=e.initialEnergyOnIncremental),"draft"==e.quality?r.QUALITY=0:"proof"==e.quality?r.QUALITY=2:r.QUALITY=1,a.NODE_DIMENSIONS_INCLUDE_LABELS=i.NODE_DIMENSIONS_INCLUDE_LABELS=r.NODE_DIMENSIONS_INCLUDE_LABELS=e.nodeDimensionsIncludeLabels,a.DEFAULT_INCREMENTAL=i.DEFAULT_INCREMENTAL=r.DEFAULT_INCREMENTAL=!e.randomize,a.ANIMATE=i.ANIMATE=r.ANIMATE=e.animate,a.TILE=e.tile,a.TILING_PADDING_VERTICAL="function"==typeof e.tilingPaddingVertical?e.tilingPaddingVertical.call():e.tilingPaddingVertical,a.TILING_PADDING_HORIZONTAL="function"==typeof e.tilingPaddingHorizontal?e.tilingPaddingHorizontal.call():e.tilingPaddingHorizontal};c.prototype.run=function(){var e,t,n=this.options;this.idToLNode={};var r=this.layout=new o,i=this;i.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this});var a=r.newGraphManager();this.gm=a;var s=this.options.eles.nodes(),l=this.options.eles.edges();this.root=a.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(s),r);for(var u=0;u<l.length;u++){var h=l[u],c=this.idToLNode[h.data("source")],d=this.idToLNode[h.data("target")];c!==d&&0==c.getEdgesBetween(d).length&&(a.add(r.newEdge(),c,d).id=h.id())}var p=function(e,t){"number"==typeof e&&(e=t);var n=e.data("id"),r=i.idToLNode[n];return{x:r.getRect().getCenterX(),y:r.getRect().getCenterY()}},g=function a(){for(var o,s=function(){n.fit&&n.cy.fit(n.eles,n.padding),e||(e=!0,i.cy.one("layoutready",n.ready),i.cy.trigger({type:"layoutready",layout:i}))},l=i.options.refresh,u=0;u<l&&!o;u++)o=i.stopped||i.layout.tick();if(o){r.checkLayoutSuccess()&&!r.isSubLayout&&r.doPostLayout(),r.tilingPostLayout&&r.tilingPostLayout(),r.isLayoutFinished=!0,i.options.eles.nodes().positions(p),s(),i.cy.one("layoutstop",i.options.stop),i.cy.trigger({type:"layoutstop",layout:i}),t&&cancelAnimationFrame(t),e=!1;return}var h=i.layout.getPositionsData();n.eles.nodes().positions(function(e,t){if("number"==typeof e&&(e=t),!e.isParent()){for(var n=e.id(),r=h[n],i=e;null==r&&(r=h[i.data("parent")]||h["DummyCompound_"+i.data("parent")],h[n]=r,void 0!=(i=i.parent()[0])););return null!=r?{x:r.x,y:r.y}:{x:e.position("x"),y:e.position("y")}}}),s(),t=requestAnimationFrame(a)};return r.addListener("layoutstarted",function(){"during"===i.options.animate&&(t=requestAnimationFrame(g))}),r.runLayout(),"during"!==this.options.animate&&(i.options.eles.nodes().not(":parent").layoutPositions(i,i.options,p),e=!1),this},c.prototype.getTopMostNodes=function(e){for(var t={},n=0;n<e.length;n++)t[e[n].id()]=!0;return e.filter(function(e,n){"number"==typeof e&&(e=n);for(var r=e.parent()[0];null!=r;){if(t[r.id()])return!1;r=r.parent()[0]}return!0})},c.prototype.processChildrenList=function(e,t,n){for(var r=t.length,i=0;i<r;i++){var a,o,h=t[i],c=h.children(),d=h.layoutDimensions({nodeDimensionsIncludeLabels:this.options.nodeDimensionsIncludeLabels});if((a=null!=h.outerWidth()&&null!=h.outerHeight()?e.add(new s(n.graphManager,new l(h.position("x")-d.w/2,h.position("y")-d.h/2),new u(parseFloat(d.w),parseFloat(d.h)))):e.add(new s(this.graphManager))).id=h.data("id"),a.paddingLeft=parseInt(h.css("padding")),a.paddingTop=parseInt(h.css("padding")),a.paddingRight=parseInt(h.css("padding")),a.paddingBottom=parseInt(h.css("padding")),this.options.nodeDimensionsIncludeLabels&&h.isParent()){var p=h.boundingBox({includeLabels:!0,includeNodes:!1}).w,g=h.boundingBox({includeLabels:!0,includeNodes:!1}).h,f=h.css("text-halign");a.labelWidth=p,a.labelHeight=g,a.labelPos=f}this.idToLNode[h.data("id")]=a,isNaN(a.rect.x)&&(a.rect.x=0),isNaN(a.rect.y)&&(a.rect.y=0),null!=c&&c.length>0&&(o=n.getGraphManager().add(n.newGraph(),a),this.processChildrenList(o,c,n))}},c.prototype.stop=function(){return this.stopped=!0,this};var p=function(e){e("layout","cose-bilkent",c)};"undefined"!=typeof cytoscape&&p(cytoscape),e.exports=p}])},e.exports=r(n(29859))},20138:function(e,t,n){var r;r=function(){"use strict";function e(t){return(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 t(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var a=[],o=!0,s=!1;try{for(i=i.call(e);!(o=(n=i.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{o||null==i.return||i.return()}finally{if(s)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var l,u,h,c,d,p,g,f,v,y,b,x,w,E,T,_,D="undefined"==typeof window?null:window,C=D?D.navigator:null;D&&D.document;var N=e(""),A=e({}),L=e(function(){}),S="undefined"==typeof HTMLElement?"undefined":e(HTMLElement),O=function(e){return e&&e.instanceString&&k(e.instanceString)?e.instanceString():null},I=function(t){return null!=t&&e(t)==N},k=function(t){return null!=t&&e(t)===L},M=function(e){return!F(e)&&(Array.isArray?Array.isArray(e):null!=e&&e instanceof Array)},P=function(t){return null!=t&&e(t)===A&&!M(t)&&t.constructor===Object},R=function(t){return null!=t&&e(t)===e(1)&&!isNaN(t)},B=function(e){if("undefined"!==S)return null!=e&&e instanceof HTMLElement},F=function(e){return z(e)||G(e)},z=function(e){return"collection"===O(e)&&e._private.single},G=function(e){return"collection"===O(e)&&!e._private.single},Y=function(e){return"core"===O(e)},X=function(e){return"stylesheet"===O(e)},V=function(e){return null==e||!!(""===e||e.match(/^\s+$/))},U=function(t){return null!=t&&e(t)===A&&k(t.then)},j=function(e,t){t||(t=function(){if(1==arguments.length)return arguments[0];if(0==arguments.length)return"undefined";for(var e=[],t=0;t<arguments.length;t++)e.push(arguments[t]);return e.join("$")});var n=function n(){var r,i=arguments,a=t.apply(this,i),o=n.cache;return(r=o[a])||(r=o[a]=e.apply(this,i)),r};return n.cache={},n},H=j(function(e){return e.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()})}),q=j(function(e){return e.replace(/(-\w)/g,function(e){return e[1].toUpperCase()})}),W=j(function(e,t){return e+t[0].toUpperCase()+t.substring(1)},function(e,t){return e+"$"+t}),$=function(e){return V(e)?e:e.charAt(0).toUpperCase()+e.substring(1)},K="(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))",Z="rgb[a]?\\(("+K+"[%]?)\\s*,\\s*("+K+"[%]?)\\s*,\\s*("+K+"[%]?)(?:\\s*,\\s*("+K+"))?\\)",Q="rgb[a]?\\((?:"+K+"[%]?)\\s*,\\s*(?:"+K+"[%]?)\\s*,\\s*(?:"+K+"[%]?)(?:\\s*,\\s*(?:"+K+"))?\\)",J="hsl[a]?\\(("+K+")\\s*,\\s*("+K+"[%])\\s*,\\s*("+K+"[%])(?:\\s*,\\s*("+K+"))?\\)",ee="hsl[a]?\\((?:"+K+")\\s*,\\s*(?:"+K+"[%])\\s*,\\s*(?:"+K+"[%])(?:\\s*,\\s*(?:"+K+"))?\\)",et=function(e,t){return e<t?-1:e>t?1:0},en=null!=Object.assign?Object.assign.bind(Object):function(e){for(var t=arguments,n=1;n<t.length;n++){var r=t[n];if(null!=r)for(var i=Object.keys(r),a=0;a<i.length;a++){var o=i[a];e[o]=r[o]}}return e},er=function(e){if((4===e.length||7===e.length)&&"#"===e[0]){var t,n,r;return 4===e.length?(t=parseInt(e[1]+e[1],16),n=parseInt(e[2]+e[2],16),r=parseInt(e[3]+e[3],16)):(t=parseInt(e[1]+e[2],16),n=parseInt(e[3]+e[4],16),r=parseInt(e[5]+e[6],16)),[t,n,r]}},ei=function(e){function t(e,t,n){return(n<0&&(n+=1),n>1&&(n-=1),n<1/6)?e+(t-e)*6*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}var n,r,i,a,o,s,l,u,h=RegExp("^"+J+"$").exec(e);if(h){if((r=parseInt(h[1]))<0?r=(360- -1*r%360)%360:r>360&&(r%=360),r/=360,(i=parseFloat(h[2]))<0||i>100||(i/=100,(a=parseFloat(h[3]))<0||a>100)||(a/=100,void 0!==(o=h[4])&&((o=parseFloat(o))<0||o>1)))return;if(0===i)s=l=u=Math.round(255*a);else{var c=a<.5?a*(1+i):a+i-a*i,d=2*a-c;s=Math.round(255*t(d,c,r+1/3)),l=Math.round(255*t(d,c,r)),u=Math.round(255*t(d,c,r-1/3))}n=[s,l,u,o]}return n},ea=function(e){var t,n=RegExp("^"+Z+"$").exec(e);if(n){t=[];for(var r=[],i=1;i<=3;i++){var a=n[i];if("%"===a[a.length-1]&&(r[i]=!0),a=parseFloat(a),r[i]&&(a=a/100*255),a<0||a>255)return;t.push(Math.floor(a))}var o=r[1]||r[2]||r[3],s=r[1]&&r[2]&&r[3];if(o&&!s)return;var l=n[4];if(void 0!==l){if((l=parseFloat(l))<0||l>1)return;t.push(l)}}return t},eo={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},es=function(e){for(var t=e.map,n=e.keys,r=n.length,i=0;i<r;i++){var a=n[i];if(P(a))throw Error("Tried to set map with object key");i<n.length-1?(null==t[a]&&(t[a]={}),t=t[a]):t[a]=e.value}},el=function(e){for(var t=e.map,n=e.keys,r=n.length,i=0;i<r;i++){var a=n[i];if(P(a))throw Error("Tried to get map with object key");if(null==(t=t[a]))break}return t},eu=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},eh="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:"undefined"!=typeof self?self:{},ec="object"==typeof eh&&eh&&eh.Object===Object&&eh,ed="object"==typeof self&&self&&self.Object===Object&&self,ep=ec||ed||Function("return this")(),eg=function(){return ep.Date.now()},ef=/\s/,ev=function(e){for(var t=e.length;t--&&ef.test(e.charAt(t)););return t},ey=/^\s+/,em=ep.Symbol,eb=Object.prototype,ex=eb.hasOwnProperty,ew=eb.toString,eE=em?em.toStringTag:void 0,eT=function(e){var t=ex.call(e,eE),n=e[eE];try{e[eE]=void 0;var r=!0}catch(e){}var i=ew.call(e);return r&&(t?e[eE]=n:delete e[eE]),i},e_=Object.prototype.toString,eD=em?em.toStringTag:void 0,eC=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":eD&&eD in Object(e)?eT(e):e_.call(e)},eN=function(e){return"symbol"==typeof e||null!=e&&"object"==typeof e&&"[object Symbol]"==eC(e)},eA=0/0,eL=/^[-+]0x[0-9a-f]+$/i,eS=/^0b[01]+$/i,eO=/^0o[0-7]+$/i,eI=parseInt,ek=function(e){if("number"==typeof e)return e;if(eN(e))return eA;if(eu(e)){var t,n="function"==typeof e.valueOf?e.valueOf():e;e=eu(n)?n+"":n}if("string"!=typeof e)return 0===e?e:+e;e=(t=e)?t.slice(0,ev(t)+1).replace(ey,""):t;var r=eS.test(e);return r||eO.test(e)?eI(e.slice(2),r?2:8):eL.test(e)?eA:+e},eM=Math.max,eP=Math.min,eR=function(e,t,n){var r,i,a,o,s,l,u=0,h=!1,c=!1,d=!0;if("function"!=typeof e)throw TypeError("Expected a function");function p(t){var n=r,a=i;return r=i=void 0,u=t,o=e.apply(a,n)}function g(e){var n=e-l,r=e-u;return void 0===l||n>=t||n<0||c&&r>=a}function f(){var e,n,r,i=eg();if(g(i))return v(i);s=setTimeout(f,(e=i-l,n=i-u,r=t-e,c?eP(r,a-n):r))}function v(e){return(s=void 0,d&&r)?p(e):(r=i=void 0,o)}function y(){var e,n=eg(),a=g(n);if(r=arguments,i=this,l=n,a){if(void 0===s)return u=e=l,s=setTimeout(f,t),h?p(e):o;if(c)return clearTimeout(s),s=setTimeout(f,t),p(l)}return void 0===s&&(s=setTimeout(f,t)),o}return t=ek(t)||0,eu(n)&&(h=!!n.leading,a=(c="maxWait"in n)?eM(ek(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d),y.cancel=function(){void 0!==s&&clearTimeout(s),u=0,r=l=i=s=void 0},y.flush=function(){return void 0===s?o:v(eg())},y},eB=D?D.performance:null,eF=eB&&eB.now?function(){return eB.now()}:function(){return Date.now()},ez=function(){if(D){if(D.requestAnimationFrame)return function(e){D.requestAnimationFrame(e)};if(D.mozRequestAnimationFrame)return function(e){D.mozRequestAnimationFrame(e)};if(D.webkitRequestAnimationFrame)return function(e){D.webkitRequestAnimationFrame(e)};if(D.msRequestAnimationFrame)return function(e){D.msRequestAnimationFrame(e)}}return function(e){e&&setTimeout(function(){e(eF())},1e3/60)}}(),eG=function(e){return ez(e)},eY=function(e){for(var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9261,r=n;!(t=e.next()).done;)r=65599*r+t.value|0;return r},eX=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9261;return 65599*t+e|0},eV=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5381;return(t<<5)+t+e|0},eU=function(e){return 2097152*e[0]+e[1]},ej=function(e,t){return[eX(e[0],t[0]),eV(e[1],t[1])]},eH=function(e,t){var n={value:0,done:!1},r=0,i=e.length;return eY({next:function(){return r<i?n.value=e[r++]:n.done=!0,n}},t)},eq=function(e,t){var n={value:0,done:!1},r=0,i=e.length;return eY({next:function(){return r<i?n.value=e.charCodeAt(r++):n.done=!0,n}},t)},eW=function(){return e$(arguments)},e$=function(e){for(var t,n=0;n<e.length;n++){var r=e[n];t=0===n?eq(r):eq(r,t)}return t},eK=!0,eZ=null!=console.warn,eQ=null!=console.trace,eJ=Number.MAX_SAFE_INTEGER||9007199254740991,e0=function(){return!0},e1=function(){return!1},e2=function(){return 0},e5=function(){},e3=function(e){throw Error(e)},e4=function(e){if(void 0===e)return eK;eK=!!e},e9=function(e){e4()&&(eZ?console.warn(e):(console.log(e),eQ&&console.trace()))},e6=function(e){return null==e?e:M(e)?e.slice():P(e)?en({},e):e},e8=function(e,t){for(t=e="";e++<36;t+=51*e&52?(15^e?8^Math.random()*(20^e?16:4):4).toString(16):"-");return t},e7={},te=function(){return e7},tt=function(e){var t=Object.keys(e);return function(n){for(var r={},i=0;i<t.length;i++){var a=t[i],o=null==n?void 0:n[a];r[a]=void 0===o?e[a]:o}return r}},tn=function(e,t,n){for(var r=e.length-1;r>=0&&(e[r]!==t||(e.splice(r,1),!n));r--);},tr=function(e){e.splice(0,e.length)},ti=function(e,t){for(var n=0;n<t.length;n++){var r=t[n];e.push(r)}},ta=function(e,t,n){return n&&(t=W(n,t)),e[t]},to=function(e,t,n,r){n&&(t=W(n,t)),e[t]=r},ts=function(){function e(){t(this,e),this._obj={}}return i(e,[{key:"set",value:function(e,t){return this._obj[e]=t,this}},{key:"delete",value:function(e){return this._obj[e]=void 0,this}},{key:"clear",value:function(){this._obj={}}},{key:"has",value:function(e){return void 0!==this._obj[e]}},{key:"get",value:function(e){return this._obj[e]}}]),e}(),tl="undefined"!=typeof Map?Map:ts,tu=function(){function e(n){if(t(this,e),this._obj=Object.create(null),this.size=0,null!=n){var r;r=null!=n.instanceString&&n.instanceString()===this.instanceString()?n.toArray():n;for(var i=0;i<r.length;i++)this.add(r[i])}}return i(e,[{key:"instanceString",value:function(){return"set"}},{key:"add",value:function(e){var t=this._obj;1!==t[e]&&(t[e]=1,this.size++)}},{key:"delete",value:function(e){var t=this._obj;1===t[e]&&(t[e]=0,this.size--)}},{key:"clear",value:function(){this._obj=Object.create(null)}},{key:"has",value:function(e){return 1===this._obj[e]}},{key:"toArray",value:function(){var e=this;return Object.keys(this._obj).filter(function(t){return e.has(t)})}},{key:"forEach",value:function(e,t){return this.toArray().forEach(e,t)}}]),e}(),th=("undefined"==typeof Set?"undefined":e(Set))!=="undefined"?Set:tu,tc=function(e,t){var n=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(void 0===e||void 0===t||!Y(e)){e3("An element must have a core reference and parameters set");return}var r=t.group;if(null==r&&(r=t.data&&null!=t.data.source&&null!=t.data.target?"edges":"nodes"),"nodes"!==r&&"edges"!==r){e3("An element must be of type `nodes` or `edges`; you specified `"+r+"`");return}this.length=1,this[0]=this;var i=this._private={cy:e,single:!0,data:t.data||{},position:t.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:r,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!t.selected,selectable:void 0===t.selectable||!!t.selectable,locked:!!t.locked,grabbed:!1,grabbable:void 0===t.grabbable||!!t.grabbable,pannable:void 0===t.pannable?"edges"===r:!!t.pannable,active:!1,classes:new th,animation:{current:[],queue:[]},rscratch:{},scratch:t.scratch||{},edges:[],children:[],parent:t.parent&&t.parent.isNode()?t.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(null==i.position.x&&(i.position.x=0),null==i.position.y&&(i.position.y=0),t.renderedPosition){var a=t.renderedPosition,o=e.pan(),s=e.zoom();i.position={x:(a.x-o.x)/s,y:(a.y-o.y)/s}}var l=[];M(t.classes)?l=t.classes:I(t.classes)&&(l=t.classes.split(/\s+/));for(var u=0,h=l.length;u<h;u++){var c=l[u];c&&""!==c&&i.classes.add(c)}this.createEmitter();var d=t.style||t.css;d&&(e9("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead."),this.style(d)),(void 0===n||n)&&this.restore()},td=function(e){return e={bfs:e.bfs||!e.dfs,dfs:e.dfs||!e.bfs},function(t,n,r){P(t)&&!F(t)&&(t=(i=t).roots||i.root,n=i.visit,r=i.directed),r=2!=arguments.length||k(n)?r:n,n=k(n)?n:function(){};for(var i,a,o=this._private.cy,s=t=I(t)?this.filter(t):t,l=[],u=[],h={},c={},d={},p=0,g=this.byGroup(),f=g.nodes,v=g.edges,y=0;y<s.length;y++){var b=s[y],x=b.id();b.isNode()&&(l.unshift(b),e.bfs&&(d[x]=!0,u.push(b)),c[x]=0)}for(;0!==l.length;){var w=function(){var t=e.bfs?l.shift():l.pop(),i=t.id();if(e.dfs){if(d[i])return"continue";d[i]=!0,u.push(t)}var o=c[i],s=h[i],g=null!=s?s.source():null,y=null!=s?s.target():null,b=null==s?void 0:t.same(g)?y[0]:g[0],x=void 0;if(!0===(x=n(t,s,b,p++,o)))return a=t,"break";if(!1===x)return"break";for(var w=t.connectedEdges().filter(function(e){return(!r||e.source().same(t))&&v.has(e)}),E=0;E<w.length;E++){var T=w[E],_=T.connectedNodes().filter(function(e){return!e.same(t)&&f.has(e)}),D=_.id();0===_.length||d[D]||(_=_[0],l.push(_),e.bfs&&(d[D]=!0,u.push(_)),h[D]=T,c[D]=c[i]+1)}}();if("continue"!==w&&"break"===w)break}for(var E=o.collection(),T=0;T<u.length;T++){var _=u[T],D=h[_.id()];null!=D&&E.push(D),E.push(_)}return{path:o.collection(E),found:o.collection(a)}}},tp={breadthFirstSearch:td({bfs:!0}),depthFirstSearch:td({dfs:!0})};tp.bfs=tp.breadthFirstSearch,tp.dfs=tp.depthFirstSearch;var tg=(function(e,t){(function(){var t,n,r,i,a,o,s,l,u,h,c,d,p,g,f,v;r=Math.floor,h=Math.min,n=function(e,t){return e<t?-1:e>t?1:0},u=function(e,t,i,a,o){var s;if(null==i&&(i=0),null==o&&(o=n),i<0)throw Error("lo must be non-negative");for(null==a&&(a=e.length);i<a;)0>o(t,e[s=r((i+a)/2)])?a=s:i=s+1;return[].splice.apply(e,[i,i-i].concat(t)),t},o=function(e,t,r){return null==r&&(r=n),e.push(t),g(e,0,e.length-1,r)},a=function(e,t){var r,i;return null==t&&(t=n),r=e.pop(),e.length?(i=e[0],e[0]=r,f(e,0,t)):i=r,i},l=function(e,t,r){var i;return null==r&&(r=n),i=e[0],e[0]=t,f(e,0,r),i},s=function(e,t,r){var i;return null==r&&(r=n),e.length&&0>r(e[0],t)&&(t=(i=[e[0],t])[0],e[0]=i[1],f(e,0,r)),t},i=function(e,t){var i,a,o,s,l,u;for(null==t&&(t=n),s=(function(){u=[];for(var t=0,n=r(e.length/2);0<=n?t<n:t>n;0<=n?t++:t--)u.push(t);return u}).apply(this).reverse(),l=[],a=0,o=s.length;a<o;a++)i=s[a],l.push(f(e,i,t));return l},p=function(e,t,r){var i;if(null==r&&(r=n),-1!==(i=e.indexOf(t)))return g(e,0,i,r),f(e,i,r)},c=function(e,t,r){var a,o,l,u;if(null==r&&(r=n),!(a=e.slice(0,t)).length)return a;for(i(a,r),o=0,l=(u=e.slice(t)).length;o<l;o++)s(a,u[o],r);return a.sort(r).reverse()},d=function(e,t,r){var o,s,l,c,d,p,g,f,v;if(null==r&&(r=n),10*t<=e.length){if(!(l=e.slice(0,t).sort(r)).length)return l;for(c=0,s=l[l.length-1],p=(g=e.slice(t)).length;c<p;c++)0>r(o=g[c],s)&&(u(l,o,0,null,r),l.pop(),s=l[l.length-1]);return l}for(i(e,r),v=[],d=0,f=h(t,e.length);0<=f?d<f:d>f;0<=f?++d:--d)v.push(a(e,r));return v},g=function(e,t,r,i){var a,o,s;for(null==i&&(i=n),a=e[r];r>t;){if(0>i(a,o=e[s=r-1>>1])){e[r]=o,r=s;continue}break}return e[r]=a},f=function(e,t,r){var i,a,o,s,l;for(null==r&&(r=n),a=e.length,l=t,o=e[t],i=2*t+1;i<a;)(s=i+1)<a&&!(0>r(e[i],e[s]))&&(i=s),e[t]=e[i],i=2*(t=i)+1;return e[t]=o,g(e,l,t,r)},t=function(){function e(e){this.cmp=null!=e?e:n,this.nodes=[]}return e.push=o,e.pop=a,e.replace=l,e.pushpop=s,e.heapify=i,e.updateItem=p,e.nlargest=c,e.nsmallest=d,e.prototype.push=function(e){return o(this.nodes,e,this.cmp)},e.prototype.pop=function(){return a(this.nodes,this.cmp)},e.prototype.peek=function(){return this.nodes[0]},e.prototype.contains=function(e){return -1!==this.nodes.indexOf(e)},e.prototype.replace=function(e){return l(this.nodes,e,this.cmp)},e.prototype.pushpop=function(e){return s(this.nodes,e,this.cmp)},e.prototype.heapify=function(){return i(this.nodes,this.cmp)},e.prototype.updateItem=function(e){return p(this.nodes,e,this.cmp)},e.prototype.clear=function(){return this.nodes=[]},e.prototype.empty=function(){return 0===this.nodes.length},e.prototype.size=function(){return this.nodes.length},e.prototype.clone=function(){var t;return(t=new e).nodes=this.nodes.slice(0),t},e.prototype.toArray=function(){return this.nodes.slice(0)},e.prototype.insert=e.prototype.push,e.prototype.top=e.prototype.peek,e.prototype.front=e.prototype.peek,e.prototype.has=e.prototype.contains,e.prototype.copy=e.prototype.clone,e}(),v=function(){return t},e.exports=v()}).call(eh)}(l={exports:{}},l.exports),l.exports),tf=tt({root:null,weight:function(e){return 1},directed:!1}),tv=tt({root:null,goal:null,weight:function(e){return 1},heuristic:function(e){return 0},directed:!1}),ty=tt({weight:function(e){return 1},directed:!1}),tm=tt({weight:function(e){return 1},directed:!1,root:null}),tb=Math.sqrt(2),tx=function(e,t,n){0===n.length&&e3("Karger-Stein must be run on a connected (sub)graph");for(var r=n[e],i=r[1],a=r[2],o=t[i],s=t[a],l=n.length-1;l>=0;l--){var u=n[l],h=u[1],c=u[2];(t[h]===o&&t[c]===s||t[h]===s&&t[c]===o)&&n.splice(l,1)}for(var d=0;d<n.length;d++){var p=n[d];p[1]===s?(n[d]=p.slice(),n[d][1]=o):p[2]===s&&(n[d]=p.slice(),n[d][2]=o)}for(var g=0;g<t.length;g++)t[g]===s&&(t[g]=o);return n},tw=function(e,t,n,r){for(;n>r;)t=tx(Math.floor(Math.random()*t.length),e,t),n--;return t},tE=function(e,t,n){return{x:e.x*t+n.x,y:e.y*t+n.y}},tT=function(e,t,n){return{x:(e.x-n.x)/t,y:(e.y-n.y)/t}},t_=function(e){return{x:e[0],y:e[1]}},tD=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=1/0,i=t;i<n;i++){var a=e[i];isFinite(a)&&(r=Math.min(a,r))}return r},tC=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=-1/0,i=t;i<n;i++){var a=e[i];isFinite(a)&&(r=Math.max(a,r))}return r},tN=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=0,i=0,a=t;a<n;a++){var o=e[a];isFinite(o)&&(r+=o,i++)}return r/i},tA=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=!(arguments.length>3)||void 0===arguments[3]||arguments[3],i=!(arguments.length>4)||void 0===arguments[4]||arguments[4],a=!(arguments.length>5)||void 0===arguments[5]||arguments[5];r?e=e.slice(t,n):(n<e.length&&e.splice(n,e.length-n),t>0&&e.splice(0,t));for(var o=0,s=e.length-1;s>=0;s--){var l=e[s];a?!isFinite(l)&&(e[s]=-1/0,o++):e.splice(s,1)}i&&e.sort(function(e,t){return e-t});var u=e.length,h=Math.floor(u/2);return u%2!=0?e[h+1+o]:(e[h-1+o]+e[h+o])/2},tL=function(e,t){return Math.atan2(t,e)-Math.PI/2},tS=Math.log2||function(e){return Math.log(e)/Math.log(2)},tO=function(e){return e>0?1:e<0?-1:0},tI=function(e,t){return Math.sqrt(tk(e,t))},tk=function(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r},tM=function(e){for(var t=e.length,n=0,r=0;r<t;r++)n+=e[r];for(var i=0;i<t;i++)e[i]=e[i]/n;return e},tP=function(e,t,n,r){return(1-r)*(1-r)*e+2*(1-r)*r*t+r*r*n},tR=function(e,t,n,r){return{x:tP(e.x,t.x,n.x,r),y:tP(e.y,t.y,n.y,r)}},tB=function(e,t,n,r){var i={x:t.x-e.x,y:t.y-e.y},a=tI(e,t),o={x:i.x/a,y:i.y/a};return n=null==n?0:n,r=null!=r?r:n*a,{x:e.x+o.x*r,y:e.y+o.y*r}},tF=function(e,t,n){return Math.max(e,Math.min(n,t))},tz=function(e){if(null==e)return{x1:1/0,y1:1/0,x2:-1/0,y2:-1/0,w:0,h:0};if(null!=e.x1&&null!=e.y1){if(null!=e.x2&&null!=e.y2&&e.x2>=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(null!=e.w&&null!=e.h&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},tG=function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},tY=function(e,t){e.x1=Math.min(e.x1,t.x1),e.x2=Math.max(e.x2,t.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,t.y1),e.y2=Math.max(e.y2,t.y2),e.h=e.y2-e.y1},tX=function(e,t,n){e.x1=Math.min(e.x1,t),e.x2=Math.max(e.x2,t),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},tV=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e.x1-=t,e.x2+=t,e.y1-=t,e.y2+=t,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},tU=function(e){var t,n,r,i,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0];if(1===a.length)t=n=r=i=a[0];else if(2===a.length)t=r=a[0],i=n=a[1];else if(4===a.length){var s=o(a,4);t=s[0],n=s[1],r=s[2],i=s[3]}return e.x1-=i,e.x2+=n,e.y1-=t,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},tj=function(e,t){e.x1=t.x1,e.y1=t.y1,e.x2=t.x2,e.y2=t.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},tH=function(e,t){return!(e.x1>t.x2)&&!(t.x1>e.x2)&&!(e.x2<t.x1)&&!(t.x2<e.x1)&&!(e.y2<t.y1)&&!(t.y2<e.y1)&&!(e.y1>t.y2)&&!(t.y1>e.y2)},tq=function(e,t,n){return e.x1<=t&&t<=e.x2&&e.y1<=n&&n<=e.y2},tW=function(e,t){return tq(e,t.x1,t.y1)&&tq(e,t.x2,t.y2)},t$=function(e,t,n,r,i,a,o){var s,l,u=nl(i,a),h=i/2,c=a/2,d=n-h+u-o,p=r-c-o,g=n+h-u+o;if((s=nt(e,t,n,r,d,p,g,p,!1)).length>0)return s;var f=n+h+o,v=r-c+u-o,y=r+c-u+o;if((s=nt(e,t,n,r,f,v,f,y,!1)).length>0)return s;var b=n-h+u-o,x=r+c+o,w=n+h-u+o;if((s=nt(e,t,n,r,b,x,w,x,!1)).length>0)return s;var E=n-h-o,T=r-c+u-o,_=r+c-u+o;if((s=nt(e,t,n,r,E,T,E,_,!1)).length>0)return s;var D=n-h+u,C=r-c+u;if((l=t7(e,t,n,r,D,C,u+o)).length>0&&l[0]<=D&&l[1]<=C)return[l[0],l[1]];var N=n+h-u,A=r-c+u;if((l=t7(e,t,n,r,N,A,u+o)).length>0&&l[0]>=N&&l[1]<=A)return[l[0],l[1]];var L=n+h-u,S=r+c-u;if((l=t7(e,t,n,r,L,S,u+o)).length>0&&l[0]>=L&&l[1]>=S)return[l[0],l[1]];var O=n-h+u,I=r+c-u;return(l=t7(e,t,n,r,O,I,u+o)).length>0&&l[0]<=O&&l[1]>=I?[l[0],l[1]]:[]},tK=function(e,t,n,r,i,a,o){var s=Math.min(n,i),l=Math.max(n,i),u=Math.min(r,a),h=Math.max(r,a);return s-o<=e&&e<=l+o&&u-o<=t&&t<=h+o},tZ=function(e,t,n,r,i,a,o,s,l){var u={x1:Math.min(n,o,i)-l,x2:Math.max(n,o,i)+l,y1:Math.min(r,s,a)-l,y2:Math.max(r,s,a)+l};return!(e<u.x1)&&!(e>u.x2)&&!(t<u.y1)&&!(t>u.y2)},tQ=function(e,t,n,r){var i=t*t-4*e*(n-=r);if(i<0)return[];var a=Math.sqrt(i),o=2*e;return[(-t+a)/o,(-t-a)/o]},tJ=function(e,t,n,r,i){var a,o,s,l,u,h,c,d;if(0===e&&(e=1e-5),t/=e,n/=e,r/=e,a=(o=(3*n-t*t)/9)*o*o+(s=(-(27*r)+t*(9*n-t*t*2))/54)*s,i[1]=0,c=t/3,a>0){u=(u=s+Math.sqrt(a))<0?-Math.pow(-u,1/3):Math.pow(u,1/3),h=(h=s-Math.sqrt(a))<0?-Math.pow(-h,1/3):Math.pow(h,1/3),i[0]=-c+u+h,c+=(u+h)/2,i[4]=i[2]=-c,c=Math.sqrt(3)*(-h+u)/2,i[3]=c,i[5]=-c;return}if(i[5]=i[3]=0,0===a){d=s<0?-Math.pow(-s,1/3):Math.pow(s,1/3),i[0]=-c+2*d,i[4]=i[2]=-(d+c);return}l=Math.acos(s/Math.sqrt(l=(o=-o)*o*o)),d=2*Math.sqrt(o),i[0]=-c+d*Math.cos(l/3),i[2]=-c+d*Math.cos((l+2*Math.PI)/3),i[4]=-c+d*Math.cos((l+4*Math.PI)/3)},t0=function(e,t,n,r,i,a,o,s){var l,u=[];tJ(1*n*n-4*n*i+2*n*o+4*i*i-4*i*o+o*o+r*r-4*r*a+2*r*s+4*a*a-4*a*s+s*s,9*n*i-3*n*n-3*n*o-6*i*i+3*i*o+9*r*a-3*r*r-3*r*s-6*a*a+3*a*s,3*n*n-6*n*i+n*o-n*e+2*i*i+2*i*e-o*e+3*r*r-6*r*a+r*s-r*t+2*a*a+2*a*t-s*t,1*n*i-n*n+n*e-i*e+r*a-r*r+r*t-a*t,u);for(var h=[],c=0;c<6;c+=2)1e-7>Math.abs(u[c+1])&&u[c]>=0&&u[c]<=1&&h.push(u[c]);h.push(1),h.push(0);for(var d=-1,p=0;p<h.length;p++)l=Math.pow(Math.pow(1-h[p],2)*n+2*(1-h[p])*h[p]*i+h[p]*h[p]*o-e,2)+Math.pow(Math.pow(1-h[p],2)*r+2*(1-h[p])*h[p]*a+h[p]*h[p]*s-t,2),d>=0?l<d&&(d=l):d=l;return d},t1=function(e,t,n,r,i,a){var o=[e-n,t-r],s=[i-n,a-r],l=s[0]*s[0]+s[1]*s[1],u=o[0]*o[0]+o[1]*o[1],h=o[0]*s[0]+o[1]*s[1],c=h*h/l;return h<0?u:c>l?(e-i)*(e-i)+(t-a)*(t-a):u-c},t2=function(e,t,n){for(var r,i,a,o,s=0,l=0;l<n.length/2;l++)if(r=n[2*l],i=n[2*l+1],l+1<n.length/2?(a=n[(l+1)*2],o=n[(l+1)*2+1]):(a=n[(l+1-n.length/2)*2],o=n[(l+1-n.length/2)*2+1]),r==e&&a==e);else{if((!(r>=e)||!(e>=a))&&(!(r<=e)||!(e<=a)))continue;(e-r)/(a-r)*(o-i)+i>t&&s++}return s%2!=0},t5=function(e,t,n,r,i,a,o,s,l){var u,h=Array(n.length);null!=s[0]?(u=Math.atan(s[1]/s[0]),s[0]<0?u+=Math.PI/2:u=-u-Math.PI/2):u=s;for(var c=Math.cos(-u),d=Math.sin(-u),p=0;p<h.length/2;p++)h[2*p]=a/2*(n[2*p]*c-n[2*p+1]*d),h[2*p+1]=o/2*(n[2*p+1]*c+n[2*p]*d),h[2*p]+=r,h[2*p+1]+=i;return t2(e,t,l>0?t4(t9(h,-l)):h)},t3=function(e,t,n,r,i,a,o){for(var s=Array(n.length),l=a/2,u=o/2,h=nu(a,o),c=h*h,d=0;d<n.length/4;d++){var p=void 0,g=void 0;p=0===d?n.length-2:4*d-2,g=4*d+2;var f=r+l*n[4*d],v=i+u*n[4*d+1],y=h/Math.tan(Math.acos(-n[p]*n[g]-n[p+1]*n[g+1])/2),b=f-y*n[p],x=v-y*n[p+1],w=f+y*n[g],E=v+y*n[g+1];s[4*d]=b,s[4*d+1]=x,s[4*d+2]=w,s[4*d+3]=E;var T=n[p+1],_=-n[p];if(T*n[g]+_*n[g+1]<0&&(T*=-1,_*=-1),Math.pow(b+T*h-e,2)+Math.pow(x+_*h-t,2)<=c)return!0}return t2(e,t,s)},t4=function(e){for(var t,n,r,i,a,o,s,l,u=Array(e.length/2),h=0;h<e.length/4;h++){t=e[4*h],n=e[4*h+1],r=e[4*h+2],i=e[4*h+3],h<e.length/4-1?(a=e[(h+1)*4],o=e[(h+1)*4+1],s=e[(h+1)*4+2],l=e[(h+1)*4+3]):(a=e[0],o=e[1],s=e[2],l=e[3]);var c=nt(t,n,r,i,a,o,s,l,!0);u[2*h]=c[0],u[2*h+1]=c[1]}return u},t9=function(e,t){for(var n,r,i,a,o=Array(2*e.length),s=0;s<e.length/2;s++){n=e[2*s],r=e[2*s+1],s<e.length/2-1?(i=e[(s+1)*2],a=e[(s+1)*2+1]):(i=e[0],a=e[1]);var l=a-r,u=-(i-n),h=Math.sqrt(l*l+u*u),c=l/h,d=u/h;o[4*s]=n+c*t,o[4*s+1]=r+d*t,o[4*s+2]=i+c*t,o[4*s+3]=a+d*t}return o},t6=function(e,t,n,r,i,a){var o=n-e,s=r-t,l=Math.sqrt((o/=i)*o+(s/=a)*s),u=l-1;if(u<0)return[];var h=u/l;return[(n-e)*h+e,(r-t)*h+t]},t8=function(e,t,n,r,i,a,o){return e-=i,t-=a,(e/=n/2+o)*e+(t/=r/2+o)*t<=1},t7=function(e,t,n,r,i,a,o){var s=[n-e,r-t],l=[e-i,t-a],u=s[0]*s[0]+s[1]*s[1],h=2*(l[0]*s[0]+l[1]*s[1]),c=h*h-4*u*(l[0]*l[0]+l[1]*l[1]-o*o);if(c<0)return[];var d=(-h+Math.sqrt(c))/(2*u),p=(-h-Math.sqrt(c))/(2*u),g=Math.min(d,p),f=Math.max(d,p),v=[];if(g>=0&&g<=1&&v.push(g),f>=0&&f<=1&&v.push(f),0===v.length)return[];var y=v[0]*s[0]+e,b=v[0]*s[1]+t;return v.length>1?v[0]==v[1]?[y,b]:[y,b,v[1]*s[0]+e,v[1]*s[1]+t]:[y,b]},ne=function(e,t,n){return t<=e&&e<=n||n<=e&&e<=t?e:e<=t&&t<=n||n<=t&&t<=e?t:n},nt=function(e,t,n,r,i,a,o,s,l){var u=e-i,h=n-e,c=o-i,d=t-a,p=r-t,g=s-a,f=c*d-g*u,v=h*d-p*u,y=g*h-c*p;if(0!==y){var b=f/y,x=v/y;return -.001<=b&&b<=1.001&&-.001<=x&&x<=1.001?[e+b*h,t+b*p]:l?[e+b*h,t+b*p]:[]}return 0!==f&&0!==v?[]:ne(e,n,o)===o?[o,s]:ne(e,n,i)===i?[i,a]:ne(i,o,n)===n?[n,r]:[]},nn=function(e,t,n,r,i,a,o,s){var l,u,h,c,d,p,g=[],f=Array(n.length),v=!0;if(null==a&&(v=!1),v){for(var y=0;y<f.length/2;y++)f[2*y]=n[2*y]*a+r,f[2*y+1]=n[2*y+1]*o+i;u=s>0?t4(t9(f,-s)):f}else u=n;for(var b=0;b<u.length/2;b++)h=u[2*b],c=u[2*b+1],b<u.length/2-1?(d=u[(b+1)*2],p=u[(b+1)*2+1]):(d=u[0],p=u[1]),0!==(l=nt(e,t,r,i,h,c,d,p)).length&&g.push(l[0],l[1]);return g},nr=function(e,t,n,r,i,a,o,s){for(var l,u=[],h=Array(n.length),c=a/2,d=o/2,p=nu(a,o),g=0;g<n.length/4;g++){var f=void 0,v=void 0;f=0===g?n.length-2:4*g-2,v=4*g+2;var y=r+c*n[4*g],b=i+d*n[4*g+1],x=p/Math.tan(Math.acos(-n[f]*n[v]-n[f+1]*n[v+1])/2),w=y-x*n[f],E=b-x*n[f+1],T=y+x*n[v],_=b+x*n[v+1];0===g?(h[n.length-2]=w,h[n.length-1]=E):(h[4*g-2]=w,h[4*g-1]=E),h[4*g]=T,h[4*g+1]=_;var D=n[f+1],C=-n[f];D*n[v]+C*n[v+1]<0&&(D*=-1,C*=-1),0!==(l=t7(e,t,r,i,w+D*p,E+C*p,p)).length&&u.push(l[0],l[1])}for(var N=0;N<h.length/4;N++)0!==(l=nt(e,t,r,i,h[4*N],h[4*N+1],h[4*N+2],h[4*N+3],!1)).length&&u.push(l[0],l[1]);if(u.length>2){for(var A=[u[0],u[1]],L=Math.pow(A[0]-e,2)+Math.pow(A[1]-t,2),S=1;S<u.length/2;S++){var O=Math.pow(u[2*S]-e,2)+Math.pow(u[2*S+1]-t,2);O<=L&&(A[0]=u[2*S],A[1]=u[2*S+1],L=O)}return A}return u},ni=function(e,t,n){var r=[e[0]-t[0],e[1]-t[1]],i=Math.sqrt(r[0]*r[0]+r[1]*r[1]),a=(i-n)/i;return a<0&&(a=1e-5),[t[0]+a*r[0],t[1]+a*r[1]]},na=function(e,t){return no(ns(e,t))},no=function(e){for(var t,n,r=e.length/2,i=1/0,a=1/0,o=-1/0,s=-1/0,l=0;l<r;l++)t=e[2*l],n=e[2*l+1],i=Math.min(i,t),o=Math.max(o,t),a=Math.min(a,n),s=Math.max(s,n);for(var u=2/(o-i),h=2/(s-a),c=0;c<r;c++)t=e[2*c]=e[2*c]*u,n=e[2*c+1]=e[2*c+1]*h,i=Math.min(i,t),o=Math.max(o,t),a=Math.min(a,n),s=Math.max(s,n);if(a<-1)for(var d=0;d<r;d++)n=e[2*d+1]=e[2*d+1]+(-1-a);return e},ns=function(e,t){var n,r=1/e*2*Math.PI,i=e%2==0?Math.PI/2+r/2:Math.PI/2;i+=t;for(var a=Array(2*e),o=0;o<e;o++)n=o*r+i,a[2*o]=Math.cos(n),a[2*o+1]=Math.sin(-n);return a},nl=function(e,t){return Math.min(e/4,t/4,8)},nu=function(e,t){return Math.min(e/10,t/10,8)},nh=function(){return 8},nc=function(e,t){return{heightOffset:Math.min(15,.05*t),widthOffset:Math.min(100,.25*e),ctrlPtOffsetPct:.05}},nd=tt({dampingFactor:.8,precision:1e-6,iterations:200,weight:function(e){return 1}}),np=tt({root:null,weight:function(e){return 1},directed:!1,alpha:0}),ng={degreeCentralityNormalized:function(e){e=np(e);var t=this.cy(),n=this.nodes(),r=n.length;if(e.directed){for(var i={},a={},o=0,s=0,l=0;l<r;l++){var u=n[l],h=u.id();e.root=u;var c=this.degreeCentrality(e);o<c.indegree&&(o=c.indegree),s<c.outdegree&&(s=c.outdegree),i[h]=c.indegree,a[h]=c.outdegree}return{indegree:function(e){return 0==o?0:(I(e)&&(e=t.filter(e)),i[e.id()]/o)},outdegree:function(e){return 0===s?0:(I(e)&&(e=t.filter(e)),a[e.id()]/s)}}}for(var d={},p=0,g=0;g<r;g++){var f=n[g];e.root=f;var v=this.degreeCentrality(e);p<v.degree&&(p=v.degree),d[f.id()]=v.degree}return{degree:function(e){return 0===p?0:(I(e)&&(e=t.filter(e)),d[e.id()]/p)}}},degreeCentrality:function(e){e=np(e);var t=this.cy(),n=this,r=e,i=r.root,a=r.weight,o=r.directed,s=r.alpha;if(i=t.collection(i)[0],o){for(var l=i.connectedEdges(),u=l.filter(function(e){return e.target().same(i)&&n.has(e)}),h=l.filter(function(e){return e.source().same(i)&&n.has(e)}),c=u.length,d=h.length,p=0,g=0,f=0;f<u.length;f++)p+=a(u[f]);for(var v=0;v<h.length;v++)g+=a(h[v]);return{indegree:Math.pow(c,1-s)*Math.pow(p,s),outdegree:Math.pow(d,1-s)*Math.pow(g,s)}}for(var y=i.connectedEdges().intersection(n),b=y.length,x=0,w=0;w<y.length;w++)x+=a(y[w]);return{degree:Math.pow(b,1-s)*Math.pow(x,s)}}};ng.dc=ng.degreeCentrality,ng.dcn=ng.degreeCentralityNormalised=ng.degreeCentralityNormalized;var nf=tt({harmonic:!0,weight:function(){return 1},directed:!1,root:null}),nv={closenessCentralityNormalized:function(e){for(var t=nf(e),n=t.harmonic,r=t.weight,i=t.directed,a=this.cy(),o={},s=0,l=this.nodes(),u=this.floydWarshall({weight:r,directed:i}),h=0;h<l.length;h++){for(var c=0,d=l[h],p=0;p<l.length;p++)if(h!==p){var g=u.distance(d,l[p]);n?c+=1/g:c+=g}n||(c=1/c),s<c&&(s=c),o[d.id()]=c}return{closeness:function(e){return 0==s?0:o[e=I(e)?a.filter(e)[0].id():e.id()]/s}}},closenessCentrality:function(e){var t=nf(e),n=t.root,r=t.weight,i=t.directed,a=t.harmonic;n=this.filter(n)[0];for(var o=this.dijkstra({root:n,weight:r,directed:i}),s=0,l=this.nodes(),u=0;u<l.length;u++){var h=l[u];if(!h.same(n)){var c=o.distanceTo(h);a?s+=1/c:s+=c}}return a?s:1/s}};nv.cc=nv.closenessCentrality,nv.ccn=nv.closenessCentralityNormalised=nv.closenessCentralityNormalized;var ny=tt({weight:null,directed:!1}),nm={betweennessCentrality:function(e){for(var t=ny(e),n=t.directed,r=t.weight,i=null!=r,a=this.cy(),o=this.nodes(),s={},l={},u=0,h={set:function(e,t){l[e]=t,t>u&&(u=t)},get:function(e){return l[e]}},c=0;c<o.length;c++){var d=o[c],p=d.id();n?s[p]=d.outgoers().nodes():s[p]=d.openNeighborhood().nodes(),h.set(p,0)}for(var g=0;g<o.length;g++)!function(e){for(var t=o[e].id(),n=[],l={},u={},c={},d=new tg(function(e,t){return c[e]-c[t]}),p=0;p<o.length;p++){var g=o[p].id();l[g]=[],u[g]=0,c[g]=1/0}for(u[t]=1,c[t]=0,d.push(t);!d.empty();){var f=d.pop();if(n.push(f),i)for(var v=0;v<s[f].length;v++){var y=s[f][v],b=a.getElementById(f),x=r(b.edgesTo(y).length>0?b.edgesTo(y)[0]:y.edgesTo(b)[0]);c[y=y.id()]>c[f]+x&&(c[y]=c[f]+x,0>d.nodes.indexOf(y)?d.push(y):d.updateItem(y),u[y]=0,l[y]=[]),c[y]==c[f]+x&&(u[y]=u[y]+u[f],l[y].push(f))}else for(var w=0;w<s[f].length;w++){var E=s[f][w].id();c[E]==1/0&&(d.push(E),c[E]=c[f]+1),c[E]==c[f]+1&&(u[E]=u[E]+u[f],l[E].push(f))}}for(var T={},_=0;_<o.length;_++)T[o[_].id()]=0;for(;n.length>0;){for(var D=n.pop(),C=0;C<l[D].length;C++){var N=l[D][C];T[N]=T[N]+u[N]/u[D]*(1+T[D])}D!=o[e].id()&&h.set(D,h.get(D)+T[D])}}(g);var f={betweenness:function(e){var t=a.collection(e).id();return h.get(t)},betweennessNormalized:function(e){if(0==u)return 0;var t=a.collection(e).id();return h.get(t)/u}};return f.betweennessNormalised=f.betweennessNormalized,f}};nm.bc=nm.betweennessCentrality;var nb=tt({expandFactor:2,inflateFactor:2,multFactor:1,maxIterations:20,attributes:[function(e){return 1}]}),nx=function(e,t){for(var n=0,r=0;r<t.length;r++)n+=t[r](e);return n},nw=function(e,t,n){for(var r=0;r<t;r++)e[r*t+r]=n},nE=function(e,t){for(var n,r=0;r<t;r++){n=0;for(var i=0;i<t;i++)n+=e[i*t+r];for(var a=0;a<t;a++)e[a*t+r]=e[a*t+r]/n}},nT=function(e,t,n){for(var r=Array(n*n),i=0;i<n;i++){for(var a=0;a<n;a++)r[i*n+a]=0;for(var o=0;o<n;o++)for(var s=0;s<n;s++)r[i*n+s]+=e[i*n+o]*t[o*n+s]}return r},n_=function(e,t,n){for(var r=e.slice(0),i=1;i<n;i++)e=nT(e,r,t);return e},nD=function(e,t,n){for(var r=Array(t*t),i=0;i<t*t;i++)r[i]=Math.pow(e[i],n);return nE(r,t),r},nC=function(e,t,n,r){for(var i=0;i<n;i++)if(Math.round(e[i]*Math.pow(10,r))/Math.pow(10,r)!=Math.round(t[i]*Math.pow(10,r))/Math.pow(10,r))return!1;return!0},nN=function(e,t,n,r){for(var i=[],a=0;a<t;a++){for(var o=[],s=0;s<t;s++)Math.round(1e3*e[a*t+s])/1e3>0&&o.push(n[s]);0!==o.length&&i.push(r.collection(o))}return i},nA=function(e,t){for(var n=0;n<e.length;n++)if(!t[n]||e[n].id()!==t[n].id())return!1;return!0},nL=function(e){for(var t=0;t<e.length;t++)for(var n=0;n<e.length;n++)t!=n&&nA(e[t],e[n])&&e.splice(n,1);return e},nS=function(e){for(var t=this.nodes(),n=this.edges(),r=this.cy(),i=nb(e),a={},o=0;o<t.length;o++)a[t[o].id()]=o;for(var s,l=t.length,u=l*l,h=Array(u),c=0;c<u;c++)h[c]=0;for(var d=0;d<n.length;d++){var p=n[d],g=a[p.source().id()],f=a[p.target().id()],v=nx(p,i.attributes);h[g*l+f]+=v,h[f*l+g]+=v}nw(h,l,i.multFactor),nE(h,l);for(var y=!0,b=0;y&&b<i.maxIterations;)y=!1,nC(h=nD(s=n_(h,l,i.expandFactor),l,i.inflateFactor),s,u,4)||(y=!0),b++;return nL(nN(h,l,t,r))},nO=function(e){return e},nI=function(e,t){return Math.abs(t-e)},nk=function(e,t,n){return e+nI(t,n)},nM=function(e,t,n){return e+Math.pow(n-t,2)},nP=function(e){return Math.sqrt(e)},nR=function(e,t,n){return Math.max(e,nI(t,n))},nB=function(e,t,n,r,i){for(var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:nO,o=r,s=0;s<e;s++)o=i(o,t(s),n(s));return a(o)},nF={euclidean:function(e,t,n){return e>=2?nB(e,t,n,0,nM,nP):nB(e,t,n,0,nk)},squaredEuclidean:function(e,t,n){return nB(e,t,n,0,nM)},manhattan:function(e,t,n){return nB(e,t,n,0,nk)},max:function(e,t,n){return nB(e,t,n,-1/0,nR)}};function nz(e,t,n,r,i,a){var o;return(o=k(e)?e:nF[e]||nF.euclidean,0===t&&k(e))?o(i,a):o(t,n,r,i,a)}nF["squared-euclidean"]=nF.squaredEuclidean,nF.squaredeuclidean=nF.squaredEuclidean;var nG=tt({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),nY=function(e){return nG(e)},nX=function(e,t,n,r,i){var a="kMedoids"!==i?function(e){return n[e]}:function(e){return r[e](n)};return nz(e,r.length,a,function(e){return r[e](t)},n,t)},nV=function(e,t,n){for(var r=n.length,i=Array(r),a=Array(r),o=Array(t),s=null,l=0;l<r;l++)i[l]=e.min(n[l]).value,a[l]=e.max(n[l]).value;for(var u=0;u<t;u++){s=[];for(var h=0;h<r;h++)s[h]=Math.random()*(a[h]-i[h])+i[h];o[u]=s}return o},nU=function(e,t,n,r,i){for(var a=1/0,o=0,s=0;s<t.length;s++){var l=nX(n,e,t[s],r,i);l<a&&(a=l,o=s)}return o},nj=function(e,t,n){for(var r=[],i=null,a=0;a<t.length;a++)n[(i=t[a]).id()]===e&&r.push(i);return r},nH=function(e,t,n){for(var r=0;r<e.length;r++)for(var i=0;i<e[r].length;i++)if(Math.abs(e[r][i]-t[r][i])>n)return!1;return!0},nq=function(e,t,n){for(var r=0;r<n;r++)if(e===t[r])return!0;return!1},nW=function(e,t){var n=Array(t);if(e.length<50)for(var r=0;r<t;r++){for(var i=e[Math.floor(Math.random()*e.length)];nq(i,n,r);)i=e[Math.floor(Math.random()*e.length)];n[r]=i}else for(var a=0;a<t;a++)n[a]=e[Math.floor(Math.random()*e.length)];return n},n$=function(e,t,n){for(var r=0,i=0;i<t.length;i++)r+=nX("manhattan",t[i],e,n,"kMedoids");return r},nK=function(e,t,n,r,i){for(var a,o,s=0;s<t.length;s++)for(var l=0;l<e.length;l++)r[s][l]=Math.pow(n[s][l],i.m);for(var u=0;u<e.length;u++)for(var h=0;h<i.attributes.length;h++){a=0,o=0;for(var c=0;c<t.length;c++)a+=r[c][u]*i.attributes[h](t[c]),o+=r[c][u];e[u][h]=a/o}},nZ=function(e,t,n,r,i){for(var a,o=0;o<e.length;o++)t[o]=e[o].slice();for(var s=2/(i.m-1),l=0;l<n.length;l++)for(var u=0;u<r.length;u++){a=0;for(var h=0;h<n.length;h++)a+=Math.pow(nX(i.distance,r[u],n[l],i.attributes,"cmeans")/nX(i.distance,r[u],n[h],i.attributes,"cmeans"),s);e[u][l]=1/a}},nQ=function(e,t,n,r){for(var i,a,o=Array(n.k),s=0;s<o.length;s++)o[s]=[];for(var l=0;l<t.length;l++){i=-1/0,a=-1;for(var u=0;u<t[0].length;u++)t[l][u]>i&&(i=t[l][u],a=u);o[a].push(e[l])}for(var h=0;h<o.length;h++)o[h]=r.collection(o[h]);return o},nJ=function(e){var t,n,r,i,a=this.cy(),o=this.nodes(),s=nY(e);r=Array(o.length);for(var l=0;l<o.length;l++)r[l]=Array(s.k);n=Array(o.length);for(var u=0;u<o.length;u++)n[u]=Array(s.k);for(var h=0;h<o.length;h++){for(var c=0,d=0;d<s.k;d++)n[h][d]=Math.random(),c+=n[h][d];for(var p=0;p<s.k;p++)n[h][p]=n[h][p]/c}t=Array(s.k);for(var g=0;g<s.k;g++)t[g]=Array(s.attributes.length);i=Array(o.length);for(var f=0;f<o.length;f++)i[f]=Array(s.k);for(var v=!0,y=0;v&&y<s.maxIterations;)v=!1,nK(t,o,n,i,s),nZ(n,r,t,o,s),nH(n,r,s.sensitivityThreshold)||(v=!0),y++;return{clusters:nQ(o,n,s,a),degreeOfMembership:n}},n0=tt({distance:"euclidean",linkage:"min",mode:"threshold",threshold:1/0,addDendrogram:!1,dendrogramDepth:0,attributes:[]}),n1={single:"min",complete:"max"},n2=function(e){var t=n0(e),n=n1[t.linkage];return null!=n&&(t.linkage=n),t},n5=function(e,t,n,r,i){for(var a,o,s=0,l=1/0,u=i.attributes,h=function(e,t){return nz(i.distance,u.length,function(t){return u[t](e)},function(e){return u[e](t)},e,t)},c=0;c<e.length;c++){var d=e[c].key,p=n[d][r[d]];p<l&&(s=d,l=p)}if("threshold"===i.mode&&l>=i.threshold||"dendrogram"===i.mode&&1===e.length)return!1;var g=t[s],f=t[r[s]];o="dendrogram"===i.mode?{left:g,right:f,key:g.key}:{value:g.value.concat(f.value),key:g.key},e[g.index]=o,e.splice(f.index,1),t[g.key]=o;for(var v=0;v<e.length;v++){var y=e[v];g.key===y.key?a=1/0:"min"===i.linkage?(a=n[g.key][y.key],n[g.key][y.key]>n[f.key][y.key]&&(a=n[f.key][y.key])):"max"===i.linkage?(a=n[g.key][y.key],n[g.key][y.key]<n[f.key][y.key]&&(a=n[f.key][y.key])):a="mean"===i.linkage?(n[g.key][y.key]*g.size+n[f.key][y.key]*f.size)/(g.size+f.size):"dendrogram"===i.mode?h(y.value,g.value):h(y.value[0],g.value[0]),n[g.key][y.key]=n[y.key][g.key]=a}for(var b=0;b<e.length;b++){var x=e[b].key;if(r[x]===g.key||r[x]===f.key){for(var w=x,E=0;E<e.length;E++){var T=e[E].key;n[x][T]<n[x][w]&&(w=T)}r[x]=w}e[b].index=b}return g.key=f.key=g.index=f.index=null,!0},n3=function e(t,n,r){t&&(t.value?n.push(t.value):(t.left&&e(t.left,n),t.right&&e(t.right,n)))},n4=function e(t,n){if(!t)return"";if(t.left&&t.right){var r=e(t.left,n),i=e(t.right,n),a=n.add({group:"nodes",data:{id:r+","+i}});return n.add({group:"edges",data:{source:r,target:a.id()}}),n.add({group:"edges",data:{source:i,target:a.id()}}),a.id()}if(t.value)return t.value.id()},n9=function e(t,n,r){if(!t)return[];var i=[],a=[],o=[];return 0===n?(t.left&&n3(t.left,i),t.right&&n3(t.right,a),o=i.concat(a),[r.collection(o)]):1===n?t.value?[r.collection(t.value)]:(t.left&&n3(t.left,i),t.right&&n3(t.right,a),[r.collection(i),r.collection(a)]):t.value?[r.collection(t.value)]:(t.left&&(i=e(t.left,n-1,r)),t.right&&(a=e(t.right,n-1,r)),i.concat(a))},n6=function(e){for(var t,n=this.cy(),r=this.nodes(),i=n2(e),a=i.attributes,o=function(e,t){return nz(i.distance,a.length,function(t){return a[t](e)},function(e){return a[e](t)},e,t)},s=[],l=[],u=[],h=[],c=0;c<r.length;c++){var d={value:"dendrogram"===i.mode?r[c]:[r[c]],key:c,index:c};s[c]=d,h[c]=d,l[c]=[],u[c]=0}for(var p=0;p<s.length;p++)for(var g=0;g<=p;g++){var f=void 0;f="dendrogram"===i.mode?p===g?1/0:o(s[p].value,s[g].value):p===g?1/0:o(s[p].value[0],s[g].value[0]),l[p][g]=f,l[g][p]=f,f<l[p][u[p]]&&(u[p]=g)}for(var v=n5(s,h,l,u,i);v;)v=n5(s,h,l,u,i);return"dendrogram"===i.mode?(t=n9(s[0],i.dendrogramDepth,n),i.addDendrogram&&n4(s[0],n)):(t=Array(s.length),s.forEach(function(e,r){e.key=e.index=null,t[r]=n.collection(e.value)})),t},n8=tt({distance:"euclidean",preference:"median",damping:.8,maxIterations:1e3,minIterations:100,attributes:[]}),n7=function(e){var t=e.damping,n=e.preference;.5<=t&&t<1||e3("Damping must range on [0.5, 1). Got: ".concat(t));var r=["median","mean","min","max"];return r.some(function(e){return e===n})||R(n)||e3("Preference must be one of [".concat(r.map(function(e){return"'".concat(e,"'")}).join(", "),"] or a number. Got: ").concat(n)),n8(e)},re=function(e,t,n,r){var i=function(e,t){return r[t](e)};return-nz(e,r.length,function(e){return i(t,e)},function(e){return i(n,e)},t,n)},rt=function(e,t,n){for(var r=[],i=0;i<e;i++)t[i*e+i]+n[i*e+i]>0&&r.push(i);return r},rn=function(e,t,n){for(var r=[],i=0;i<e;i++){for(var a=-1,o=-1/0,s=0;s<n.length;s++){var l=n[s];t[i*e+l]>o&&(a=l,o=t[i*e+l])}a>0&&r.push(a)}for(var u=0;u<n.length;u++)r[n[u]]=n[u];return r},rr=function(e,t,n){for(var r=rn(e,t,n),i=0;i<n.length;i++){for(var a=[],o=0;o<r.length;o++)r[o]===n[i]&&a.push(o);for(var s=-1,l=-1/0,u=0;u<a.length;u++){for(var h=0,c=0;c<a.length;c++)h+=t[a[c]*e+a[u]];h>l&&(s=u,l=h)}n[i]=a[s]}return rn(e,t,n)},ri=function(e){for(var t,n,r,i,a,o,s,l,u,h=this.cy(),c=this.nodes(),d=n7(e),p={},g=0;g<c.length;g++)p[c[g].id()]=g;a=Array(i=(r=c.length)*r);for(var f=0;f<i;f++)a[f]=-1/0;for(var v=0;v<r;v++)for(var y=0;y<r;y++)v!==y&&(a[v*r+y]=re(d.distance,c[v],c[y],d.attributes));t=a,o="median"===(n=d.preference)?tA(t):"mean"===n?tN(t):"min"===n?tD(t):"max"===n?tC(t):n;for(var b=0;b<r;b++)a[b*r+b]=o;s=Array(i);for(var x=0;x<i;x++)s[x]=0;l=Array(i);for(var w=0;w<i;w++)l[w]=0;for(var E=Array(r),T=Array(r),_=Array(r),D=0;D<r;D++)E[D]=0,T[D]=0,_[D]=0;for(var C=Array(r*d.minIterations),N=0;N<C.length;N++)C[N]=0;for(u=0;u<d.maxIterations;u++){for(var A=0;A<r;A++){for(var L=-1/0,S=-1/0,O=-1,I=0,k=0;k<r;k++)E[k]=s[A*r+k],(I=l[A*r+k]+a[A*r+k])>=L?(S=L,L=I,O=k):I>S&&(S=I);for(var M=0;M<r;M++)s[A*r+M]=(1-d.damping)*(a[A*r+M]-L)+d.damping*E[M];s[A*r+O]=(1-d.damping)*(a[A*r+O]-S)+d.damping*E[O]}for(var P=0;P<r;P++){for(var R=0,B=0;B<r;B++)E[B]=l[B*r+P],T[B]=Math.max(0,s[B*r+P]),R+=T[B];R-=T[P],T[P]=s[P*r+P],R+=T[P];for(var F=0;F<r;F++)l[F*r+P]=(1-d.damping)*Math.min(0,R-T[F])+d.damping*E[F];l[P*r+P]=(1-d.damping)*(R-T[P])+d.damping*E[P]}for(var z=0,G=0;G<r;G++){var Y=l[G*r+G]+s[G*r+G]>0?1:0;C[u%d.minIterations*r+G]=Y,z+=Y}if(z>0&&(u>=d.minIterations-1||u==d.maxIterations-1)){for(var X=0,V=0;V<r;V++){_[V]=0;for(var U=0;U<d.minIterations;U++)_[V]+=C[U*r+V];(0===_[V]||_[V]===d.minIterations)&&X++}if(X===r)break}}for(var j=rt(r,s,l),H=rr(r,a,j),q={},W=0;W<j.length;W++)q[j[W]]=[];for(var $=0;$<c.length;$++){var K=H[p[c[$].id()]];null!=K&&q[K].push(c[$])}for(var Z=Array(j.length),Q=0;Q<j.length;Q++)Z[Q]=h.collection(q[j[Q]]);return Z},ra=tt({root:void 0,directed:!1}),ro=function(){var e=this,t={},n=0,r=0,i=[],a=[],o={},s=function(n,r){for(var o=a.length-1,s=[],l=e.spawn();a[o].x!=n||a[o].y!=r;)s.push(a.pop().edge),o--;s.push(a.pop().edge),s.forEach(function(n){var r=n.connectedNodes().intersection(e);l.merge(n),r.forEach(function(n){var r=n.id(),i=n.connectedEdges().intersection(e);l.merge(n),t[r].cutVertex?l.merge(i.filter(function(e){return e.isLoop()})):l.merge(i)})}),i.push(l)},l=function l(u,h,c){u===c&&(r+=1),t[h]={id:n,low:n++,cutVertex:!1};var d,p,g,f,v=e.getElementById(h).connectedEdges().intersection(e);0===v.size()?i.push(e.spawn(e.getElementById(h))):v.forEach(function(e){d=e.source().id(),p=e.target().id(),(g=d===h?p:d)!==c&&(o[f=e.id()]||(o[f]=!0,a.push({x:h,y:g,edge:e})),g in t?t[h].low=Math.min(t[h].low,t[g].id):(l(u,g,h),t[h].low=Math.min(t[h].low,t[g].low),t[h].id<=t[g].low&&(t[h].cutVertex=!0,s(h,g))))})};e.forEach(function(e){if(e.isNode()){var n=e.id();n in t||(r=0,l(n,n),t[n].cutVertex=r>1)}});var u=Object.keys(t).filter(function(e){return t[e].cutVertex}).map(function(t){return e.getElementById(t)});return{cut:e.spawn(u),components:i}},rs=function(){var e=this,t={},n=0,r=[],i=[],a=e.spawn(e),o=function o(s){if(i.push(s),t[s]={index:n,low:n++,explored:!1},e.getElementById(s).connectedEdges().intersection(e).forEach(function(e){var n=e.target().id();n===s||(n in t||o(n),t[n].explored||(t[s].low=Math.min(t[s].low,t[n].low)))}),t[s].index===t[s].low){for(var l=e.spawn();;){var u=i.pop();if(l.merge(e.getElementById(u)),t[u].low=t[s].index,t[u].explored=!0,u===s)break}var h=l.edgesWith(l),c=l.merge(h);r.push(c),a=a.difference(c)}};return e.forEach(function(e){if(e.isNode()){var n=e.id();n in t||o(n)}}),{cut:a,components:r}},rl={};[tp,{dijkstra:function(e){if(!P(e)){var t=arguments;e={root:t[0],weight:t[1],directed:t[2]}}var n=tf(e),r=n.root,i=n.weight,a=n.directed,o=this,s=I(r)?this.filter(r)[0]:r[0],l={},u={},h={},c=this.byGroup(),d=c.nodes,p=c.edges;p.unmergeBy(function(e){return e.isLoop()});for(var g=function(e){return l[e.id()]},f=new tg(function(e,t){return g(e)-g(t)}),v=0;v<d.length;v++){var y=d[v];l[y.id()]=y.same(s)?0:1/0,f.push(y)}for(;f.size()>0;){var b=f.pop(),x=g(b);if(h[b.id()]=x,x!==1/0)for(var w=b.neighborhood().intersect(d),E=0;E<w.length;E++){var T=w[E],_=T.id(),D=function(e,t){for(var n,r=(a?e.edgesTo(t):e.edgesWith(t)).intersect(p),o=1/0,s=0;s<r.length;s++){var l=r[s],u=i(l);(u<o||!n)&&(o=u,n=l)}return{edge:n,dist:o}}(b,T),C=x+D.dist;C<g(T)&&(l[T.id()]=C,f.updateItem(T),u[_]={node:b,edge:D.edge})}}return{distanceTo:function(e){return h[(I(e)?d.filter(e)[0]:e[0]).id()]},pathTo:function(e){var t=I(e)?d.filter(e)[0]:e[0],n=[],r=t,i=r.id();if(t.length>0)for(n.unshift(t);u[i];){var a=u[i];n.unshift(a.edge),n.unshift(a.node),i=(r=a.node).id()}return o.spawn(n)}}}},{kruskal:function(e){e=e||function(e){return 1};for(var t=this.byGroup(),n=t.nodes,r=t.edges,i=n.length,a=Array(i),o=function(e){for(var t=0;t<a.length;t++)if(a[t].has(e))return t},s=0;s<i;s++)a[s]=this.spawn(n[s]);for(var l=r.sort(function(t,n){return e(t)-e(n)}),u=0;u<l.length;u++){var h=l[u],c=h.source()[0],d=h.target()[0],p=o(c),g=o(d),f=a[p],v=a[g];p!==g&&(n.merge(h),f.merge(v),a.splice(g,1))}return n}},{aStar:function(e){var t,n,r=this.cy(),i=tv(e),a=i.root,o=i.goal,s=i.heuristic,l=i.directed,u=i.weight;a=r.collection(a)[0],o=r.collection(o)[0];var h=a.id(),c=o.id(),d={},p={},g={},f=new tg(function(e,t){return p[e.id()]-p[t.id()]}),v=new th,y={},b={},x=function(e,t){f.push(e),v.add(t)};x(a,h),d[h]=0,p[h]=s(a);for(var w=0;f.size()>0;){if(n=(t=f.pop()).id(),v.delete(n),w++,n===c){for(var E=[],T=o,_=c,D=b[_];E.unshift(T),null!=D&&E.unshift(D),null!=(T=y[_]);)D=b[_=T.id()];return{found:!0,distance:d[n],path:this.spawn(E),steps:w}}g[n]=!0;for(var C=t._private.edges,N=0;N<C.length;N++){var A=C[N];if(this.hasElementWithId(A.id())&&(!l||A.data("source")===n)){var L=A.source(),S=A.target(),O=L.id()!==n?L:S,I=O.id();if(this.hasElementWithId(I)&&!g[I]){var k=d[n]+u(A);if(!v.has(I)){d[I]=k,p[I]=k+s(O),x(O,I),y[I]=t,b[I]=A;continue}k<d[I]&&(d[I]=k,p[I]=k+s(O),y[I]=t,b[I]=A)}}}}return{found:!1,distance:void 0,path:void 0,steps:w}}},{floydWarshall:function(e){for(var t=this.cy(),n=ty(e),r=n.weight,i=n.directed,a=this.byGroup(),o=a.nodes,s=a.edges,l=o.length,u=l*l,h=function(e){return o.indexOf(e)},c=function(e){return o[e]},d=Array(u),p=0;p<u;p++){var g=p%l;(p-g)/l===g?d[p]=0:d[p]=1/0}for(var f=Array(u),v=Array(u),y=0;y<s.length;y++){var b=s[y],x=b.source()[0],w=b.target()[0];if(x!==w){var E=h(x),T=h(w),_=E*l+T,D=r(b);if(d[_]>D&&(d[_]=D,f[_]=T,v[_]=b),!i){var C=T*l+E;!i&&d[C]>D&&(d[C]=D,f[C]=E,v[C]=b)}}}for(var N=0;N<l;N++)for(var A=0;A<l;A++)for(var L=A*l+N,S=0;S<l;S++){var O=A*l+S,k=N*l+S;d[L]+d[k]<d[O]&&(d[O]=d[L]+d[k],f[O]=f[L])}var M=function(e){return h((I(e)?t.filter(e):e)[0])};return{distance:function(e,t){return d[M(e)*l+M(t)]},path:function(e,n){var r,i=M(e),a=M(n),o=c(i);if(i===a)return o.collection();if(null==f[i*l+a])return t.collection();var s=t.collection(),u=i;for(s.merge(o);i!==a;)u=i,i=f[i*l+a],r=v[u*l+i],s.merge(r),s.merge(c(i));return s}}}},{bellmanFord:function(e){var t=this,n=tm(e),r=n.weight,i=n.directed,a=n.root,o=this,s=this.cy(),l=this.byGroup(),u=l.edges,h=l.nodes,c=h.length,d=new tl,p=!1,g=[];a=s.collection(a)[0],u.unmergeBy(function(e){return e.isLoop()});for(var f=u.length,v=function(e){var t=d.get(e.id());return t||(t={},d.set(e.id(),t)),t},y=function(e){return(I(e)?s.$(e):e)[0]},b=0;b<c;b++){var x=h[b],w=v(x);x.same(a)?w.dist=0:w.dist=1/0,w.pred=null,w.edge=null}for(var E=!1,T=function(e,t,n,r,i,a){var o=r.dist+a;o<i.dist&&!n.same(r.edge)&&(i.dist=o,i.pred=e,i.edge=n,E=!0)},_=1;_<c;_++){E=!1;for(var D=0;D<f;D++){var C=u[D],N=C.source(),A=C.target(),L=r(C),S=v(N),O=v(A);T(N,A,C,S,O,L),i||T(A,N,C,O,S,L)}if(!E)break}if(E)for(var k=[],M=0;M<f;M++){var P=u[M],R=P.source(),B=P.target(),F=r(P),z=v(R).dist,G=v(B).dist;if(z+F<G||!i&&G+F<z){if(p||(e9("Graph contains a negative weight cycle for Bellman-Ford"),p=!0),!1!==e.findNegativeWeightCycles){var Y=[];z+F<G&&Y.push(R),!i&&G+F<z&&Y.push(B);for(var X=Y.length,V=0;V<X;V++){var U=Y[V],j=[U];j.push(v(U).edge);for(var H=v(U).pred;-1===j.indexOf(H);)j.push(H),j.push(v(H).edge),H=v(H).pred;for(var q=(j=j.slice(j.indexOf(H)))[0].id(),W=0,$=2;$<j.length;$+=2)j[$].id()<q&&(q=j[$].id(),W=$);(j=j.slice(W).concat(j.slice(0,W))).push(j[0]);var K=j.map(function(e){return e.id()}).join(",");-1===k.indexOf(K)&&(g.push(o.spawn(j)),k.push(K))}}else break}}return{distanceTo:function(e){return v(y(e)).dist},pathTo:function(e){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a,r=y(e),i=[],s=r;;){if(null==s)return t.spawn();var l=v(s),u=l.edge,h=l.pred;if(i.unshift(s[0]),s.same(n)&&i.length>0)break;null!=u&&i.unshift(u),s=h}return o.spawn(i)},hasNegativeWeightCycle:p,negativeWeightCycles:g}}},{kargerStein:function(){var e=this,t=this.byGroup(),n=t.nodes,r=t.edges;r.unmergeBy(function(e){return e.isLoop()});var i=n.length,a=r.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),s=Math.floor(i/tb);if(i<2){e3("At least 2 nodes are required for Karger-Stein algorithm");return}for(var l=[],u=0;u<a;u++){var h=r[u];l.push([u,n.indexOf(h.source()),n.indexOf(h.target())])}for(var c=1/0,d=[],p=Array(i),g=Array(i),f=Array(i),v=function(e,t){for(var n=0;n<i;n++)t[n]=e[n]},y=0;y<=o;y++){for(var b=0;b<i;b++)g[b]=b;var x=tw(g,l.slice(),i,s),w=x.slice();v(g,f);var E=tw(g,x,s,2),T=tw(f,w,s,2);E.length<=T.length&&E.length<c?(c=E.length,d=E,v(g,p)):T.length<=E.length&&T.length<c&&(c=T.length,d=T,v(f,p))}for(var _=this.spawn(d.map(function(e){return r[e[0]]})),D=this.spawn(),C=this.spawn(),N=p[0],A=0;A<p.length;A++){var L=p[A],S=n[A];L===N?D.merge(S):C.merge(S)}var O=function(t){var n=e.spawn();return t.forEach(function(t){n.merge(t),t.connectedEdges().forEach(function(t){e.contains(t)&&!_.contains(t)&&n.merge(t)})}),n};return{cut:_,components:[O(D),O(C)],partition1:D,partition2:C}}},{pageRank:function(e){for(var t,n=nd(e),r=n.dampingFactor,i=n.precision,a=n.iterations,o=n.weight,s=this._private.cy,l=this.byGroup(),u=l.nodes,h=l.edges,c=u.length,d=c*c,p=h.length,g=Array(d),f=Array(c),v=(1-r)/c,y=0;y<c;y++){for(var b=0;b<c;b++)g[y*c+b]=0;f[y]=0}for(var x=0;x<p;x++){var w=h[x],E=w.data("source"),T=w.data("target");if(E!==T){var _=u.indexOfId(E),D=u.indexOfId(T),C=o(w),N=D*c+_;g[N]+=C,f[_]+=C}}for(var A=1/c+v,L=0;L<c;L++)if(0===f[L])for(var S=0;S<c;S++)g[S*c+L]=A;else for(var O=0;O<c;O++){var I=O*c+L;g[I]=g[I]/f[L]+v}for(var k=Array(c),M=Array(c),P=0;P<c;P++)k[P]=1;for(var R=0;R<a;R++){for(var B=0;B<c;B++)M[B]=0;for(var F=0;F<c;F++)for(var z=0;z<c;z++){var G=F*c+z;M[F]+=g[G]*k[z]}tM(M),t=k,k=M,M=t;for(var Y=0,X=0;X<c;X++){var V=t[X]-k[X];Y+=V*V}if(Y<i)break}return{rank:function(e){return e=s.collection(e)[0],k[u.indexOf(e)]}}}},ng,nv,nm,{markovClustering:nS,mcl:nS},{kMeans:function(t){var n,r=this.cy(),i=this.nodes(),a=null,o=nY(t),s=Array(o.k),l={};o.testMode?"number"==typeof o.testCentroids?(o.testCentroids,n=nV(i,o.k,o.attributes)):n="object"===e(o.testCentroids)?o.testCentroids:nV(i,o.k,o.attributes):n=nV(i,o.k,o.attributes);for(var u=!0,h=0;u&&h<o.maxIterations;){for(var c=0;c<i.length;c++)l[(a=i[c]).id()]=nU(a,n,o.distance,o.attributes,"kMeans");u=!1;for(var d=0;d<o.k;d++){var p=nj(d,i,l);if(0!==p.length){for(var g=o.attributes.length,f=n[d],v=Array(g),y=Array(g),b=0;b<g;b++){y[b]=0;for(var x,w=0;w<p.length;w++)a=p[w],y[b]+=o.attributes[b](a);v[b]=y[b]/p.length,x=v[b],Math.abs(f[b]-x)<=o.sensitivityThreshold||(u=!0)}n[d]=v,s[d]=r.collection(p)}}h++}return s},kMedoids:function(t){var n,r,i=this.cy(),a=this.nodes(),o=null,s=nY(t),l=Array(s.k),u={},h=Array(s.k);s.testMode?"number"==typeof s.testCentroids||(n="object"===e(s.testCentroids)?s.testCentroids:nW(a,s.k)):n=nW(a,s.k);for(var c=!0,d=0;c&&d<s.maxIterations;){for(var p=0;p<a.length;p++)u[(o=a[p]).id()]=nU(o,n,s.distance,s.attributes,"kMedoids");c=!1;for(var g=0;g<n.length;g++){var f=nj(g,a,u);if(0!==f.length){h[g]=n$(n[g],f,s.attributes);for(var v=0;v<f.length;v++)(r=n$(f[v],f,s.attributes))<h[g]&&(h[g]=r,n[g]=f[v],c=!0);l[g]=i.collection(f)}}d++}return l},fuzzyCMeans:nJ,fcm:nJ},{hierarchicalClustering:n6,hca:n6},{affinityPropagation:ri,ap:ri},{hierholzer:function(e){if(!P(e)){var t,n,r,i=arguments;e={root:i[0],directed:i[1]}}var a=ra(e),o=a.root,s=a.directed,l=!1;o&&(r=I(o)?this.filter(o)[0].id():o[0].id());var u={},h={};s?this.forEach(function(e){var r=e.id();if(e.isNode()){var i=e.indegree(!0),a=e.outdegree(!0),o=i-a,s=a-i;1==o?t?l=!0:t=r:1==s?n?l=!0:n=r:(s>1||o>1)&&(l=!0),u[r]=[],e.outgoers().forEach(function(e){e.isEdge()&&u[r].push(e.id())})}else h[r]=[void 0,e.target().id()]}):this.forEach(function(e){var r=e.id();e.isNode()?(e.degree(!0)%2&&(t?n?l=!0:n=r:t=r),u[r]=[],e.connectedEdges().forEach(function(e){return u[r].push(e.id())})):h[r]=[e.source().id(),e.target().id()]});var c={found:!1,trail:void 0};if(l)return c;if(n&&t){if(s){if(r&&n!=r)return c;r=n}else{if(r&&n!=r&&t!=r)return c;r||(r=n)}}else r||(r=this[0].id());var d=function(e){for(var t,n,r,i=e,a=[e];u[i].length;)n=h[t=u[i].shift()][0],i!=(r=h[t][1])?(u[r]=u[r].filter(function(e){return e!=t}),i=r):s||i==n||(u[n]=u[n].filter(function(e){return e!=t}),i=n),a.unshift(t),a.unshift(i);return a},p=[],g=[];for(g=d(r);1!=g.length;)0==u[g[0]].length?(p.unshift(this.getElementById(g.shift())),p.unshift(this.getElementById(g.shift()))):g=d(g.shift()).concat(g);for(var f in p.unshift(this.getElementById(g.shift())),u)if(u[f].length)return c;return c.found=!0,c.trail=this.spawn(p,!0),c}},{hopcroftTarjanBiconnected:ro,htbc:ro,htb:ro,hopcroftTarjanBiconnectedComponents:ro},{tarjanStronglyConnected:rs,tsc:rs,tscc:rs,tarjanStronglyConnectedComponents:rs}].forEach(function(e){en(rl,e)});var ru=function e(t){if(!(this instanceof e))return new e(t);this.id="Thenable/1.0.7",this.state=0,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},"function"==typeof t&&t.call(this,this.fulfill.bind(this),this.reject.bind(this))};ru.prototype={fulfill:function(e){return rh(this,1,"fulfillValue",e)},reject:function(e){return rh(this,2,"rejectReason",e)},then:function(e,t){var n=new ru;return this.onFulfilled.push(rp(e,n,"fulfill")),this.onRejected.push(rp(t,n,"reject")),rc(this),n.proxy}};var rh=function(e,t,n,r){return 0===e.state&&(e.state=t,e[n]=r,rc(e)),e},rc=function(e){1===e.state?rd(e,"onFulfilled",e.fulfillValue):2===e.state&&rd(e,"onRejected",e.rejectReason)},rd=function(e,t,n){if(0!==e[t].length){var r=e[t];e[t]=[];var i=function(){for(var e=0;e<r.length;e++)r[e](n)};"function"==typeof setImmediate?setImmediate(i):setTimeout(i,0)}},rp=function(e,t,n){return function(r){if("function"!=typeof e)t[n].call(t,r);else{var i;try{i=e(r)}catch(e){t.reject(e);return}rg(t,i)}}},rg=function t(n,r){if(n===r||n.proxy===r){n.reject(TypeError("cannot resolve promise with itself"));return}if("object"===e(r)&&null!==r||"function"==typeof r)try{i=r.then}catch(e){n.reject(e);return}if("function"==typeof i){var i,a=!1;try{i.call(r,function(e){a||(a=!0,e===r?n.reject(TypeError("circular thenable chain")):t(n,e))},function(e){a||(a=!0,n.reject(e))})}catch(e){a||n.reject(e)}return}n.fulfill(r)};ru.all=function(e){return new ru(function(t,n){for(var r=Array(e.length),i=0,a=function(n,a){r[n]=a,++i===e.length&&t(r)},o=0;o<e.length;o++)!function(t){var r=e[t];null!=r&&null!=r.then?r.then(function(e){a(t,e)},function(e){n(e)}):a(t,r)}(o)})},ru.resolve=function(e){return new ru(function(t,n){t(e)})},ru.reject=function(e){return new ru(function(t,n){n(e)})};var rf="undefined"!=typeof Promise?Promise:ru,rv=function(e,t,n){var r=Y(e),i=this._private=en({duration:1e3},t,n);if(i.target=e,i.style=i.style||i.css,i.started=!1,i.playing=!1,i.hooked=!1,i.applying=!1,i.progress=0,i.completes=[],i.frames=[],i.complete&&k(i.complete)&&i.completes.push(i.complete),!r){var a=e.position();i.startPosition=i.startPosition||{x:a.x,y:a.y},i.startStyle=i.startStyle||e.cy().style().getAnimationStartStyle(e,i.style)}if(r){var o=e.pan();i.startPan={x:o.x,y:o.y},i.startZoom=e.zoom()}this.length=1,this[0]=this},ry=rv.prototype;en(ry,{instanceString:function(){return"animation"},hook:function(){var e=this._private;if(!e.hooked){var t=e.target._private.animation;(e.queue?t.queue:t.current).push(this),F(e.target)&&e.target.cy().addToAnimationPool(e.target),e.hooked=!0}return this},play:function(){var e=this._private;return 1===e.progress&&(e.progress=0),e.playing=!0,e.started=!1,e.stopped=!1,this.hook(),this},playing:function(){return this._private.playing},apply:function(){var e=this._private;return e.applying=!0,e.started=!1,e.stopped=!1,this.hook(),this},applying:function(){return this._private.applying},pause:function(){var e=this._private;return e.playing=!1,e.started=!1,this},stop:function(){var e=this._private;return e.playing=!1,e.started=!1,e.stopped=!0,this},rewind:function(){return this.progress(0)},fastforward:function(){return this.progress(1)},time:function(e){var t=this._private;return void 0===e?t.progress*t.duration:this.progress(e/t.duration)},progress:function(e){var t=this._private,n=t.playing;return void 0===e?t.progress:(n&&this.pause(),t.progress=e,t.started=!1,n&&this.play(),this)},completed:function(){return 1===this._private.progress},reverse:function(){var e=this._private,t=e.playing;t&&this.pause(),e.progress=1-e.progress,e.started=!1;var n=function(t,n){var r=e[t];null!=r&&(e[t]=e[n],e[n]=r)};if(n("zoom","startZoom"),n("pan","startPan"),n("position","startPosition"),e.style)for(var r=0;r<e.style.length;r++){var i=e.style[r],a=i.name,o=e.startStyle[a];e.startStyle[a]=i,e.style[r]=o}return t&&this.play(),this},promise:function(e){var t,n=this._private;return t="frame"===e?n.frames:n.completes,new rf(function(e,n){t.push(function(){e()})})}}),ry.complete=ry.completed,ry.run=ry.play,ry.running=ry.playing;var rm=Array.isArray,rb=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,rx=/^\w*$/,rw=function(e,t){if(rm(e))return!1;var n=typeof e;return!!("number"==n||"symbol"==n||"boolean"==n||null==e||eN(e))||rx.test(e)||!rb.test(e)||null!=t&&e in Object(t)},rE=function(e){if(!eu(e))return!1;var t=eC(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},rT=ep["__core-js_shared__"],r_=(u=/[^.]+$/.exec(rT&&rT.keys&&rT.keys.IE_PROTO||""))?"Symbol(src)_1."+u:"",rD=Function.prototype.toString,rC=function(e){if(null!=e){try{return rD.call(e)}catch(e){}try{return e+""}catch(e){}}return""},rN=/^\[object .+?Constructor\]$/,rA=Object.prototype,rL=Function.prototype.toString,rS=rA.hasOwnProperty,rO=RegExp("^"+rL.call(rS).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),rI=function(e,t){var n,r=null==e?void 0:e[t];return eu(n=r)&&(!r_||!(r_ in n))&&(rE(n)?rO:rN).test(rC(n))?r:void 0},rk=rI(Object,"create"),rM=Object.prototype.hasOwnProperty,rP=Object.prototype.hasOwnProperty;function rR(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}rR.prototype.clear=function(){this.__data__=rk?rk(null):{},this.size=0},rR.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},rR.prototype.get=function(e){var t=this.__data__;if(rk){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return rM.call(t,e)?t[e]:void 0},rR.prototype.has=function(e){var t=this.__data__;return rk?void 0!==t[e]:rP.call(t,e)},rR.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=rk&&void 0===t?"__lodash_hash_undefined__":t,this};var rB=function(e,t){return e===t||e!=e&&t!=t},rF=function(e,t){for(var n=e.length;n--;)if(rB(e[n][0],t))return n;return -1},rz=Array.prototype.splice;function rG(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}rG.prototype.clear=function(){this.__data__=[],this.size=0},rG.prototype.delete=function(e){var t=this.__data__,n=rF(t,e);return!(n<0)&&(n==t.length-1?t.pop():rz.call(t,n,1),--this.size,!0)},rG.prototype.get=function(e){var t=this.__data__,n=rF(t,e);return n<0?void 0:t[n][1]},rG.prototype.has=function(e){return rF(this.__data__,e)>-1},rG.prototype.set=function(e,t){var n=this.__data__,r=rF(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var rY=rI(ep,"Map"),rX=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e},rV=function(e,t){var n=e.__data__;return rX(t)?n["string"==typeof t?"string":"hash"]:n.map};function rU(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function rj(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw TypeError("Expected a function");var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=e.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(rj.Cache||rU),n}rU.prototype.clear=function(){this.size=0,this.__data__={hash:new rR,map:new(rY||rG),string:new rR}},rU.prototype.delete=function(e){var t=rV(this,e).delete(e);return this.size-=t?1:0,t},rU.prototype.get=function(e){return rV(this,e).get(e)},rU.prototype.has=function(e){return rV(this,e).has(e)},rU.prototype.set=function(e,t){var n=rV(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},rj.Cache=rU;var rH=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rq=/\\(\\)?/g,rW=(c=(h=rj(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(rH,function(e,n,r,i){t.push(r?i.replace(rq,"$1"):n||e)}),t},function(e){return 500===c.size&&c.clear(),e})).cache,h),r$=function(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i},rK=1/0,rZ=em?em.prototype:void 0,rQ=rZ?rZ.toString:void 0,rJ=function e(t){if("string"==typeof t)return t;if(rm(t))return r$(t,e)+"";if(eN(t))return rQ?rQ.call(t):"";var n=t+"";return"0"==n&&1/t==-rK?"-0":n},r0=function(e){return null==e?"":rJ(e)},r1=function(e,t){return rm(e)?e:rw(e,t)?[e]:rW(r0(e))},r2=1/0,r5=function(e){if("string"==typeof e||eN(e))return e;var t=e+"";return"0"==t&&1/e==-r2?"-0":t},r3=function(e,t){t=r1(t,e);for(var n=0,r=t.length;null!=e&&n<r;)e=e[r5(t[n++])];return n&&n==r?e:void 0},r4=function(e,t,n){var r=null==e?void 0:r3(e,t);return void 0===r?n:r},r9=function(){try{var e=rI(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),r6=function(e,t,n){"__proto__"==t&&r9?r9(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n},r8=Object.prototype.hasOwnProperty,r7=function(e,t,n){var r=e[t];r8.call(e,t)&&rB(r,n)&&(void 0!==n||t in e)||r6(e,t,n)},ie=/^(?:0|[1-9]\d*)$/,it=function(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&ie.test(e))&&e>-1&&e%1==0&&e<t},ir=function(e,t,n,r){if(!eu(e))return e;t=r1(t,e);for(var i=-1,a=t.length,o=a-1,s=e;null!=s&&++i<a;){var l=r5(t[i]),u=n;if("__proto__"===l||"constructor"===l||"prototype"===l)break;if(i!=o){var h=s[l];void 0===(u=r?r(h,l,s):void 0)&&(u=eu(h)?h:it(t[i+1])?[]:{})}r7(s,l,u),s=s[l]}return e},ii=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t},ia={};[{animated:function(){return function(){var e=void 0!==this.length;if(!(this._private.cy||this).styleEnabled())return!1;var t=(e?this:[this])[0];if(t)return t._private.animation.current.length>0}},clearQueue:function(){return function(){var e=void 0!==this.length?this:[this];if(!(this._private.cy||this).styleEnabled())return this;for(var t=0;t<e.length;t++)e[t]._private.animation.queue=[];return this}},delay:function(){return function(e,t){return(this._private.cy||this).styleEnabled()?this.animate({delay:e,duration:e,complete:t}):this}},delayAnimation:function(){return function(e,t){return(this._private.cy||this).styleEnabled()?this.animation({delay:e,duration:e,complete:t}):this}},animation:function(){return function(e,t){var n=void 0!==this.length,r=n?this:[this],i=this._private.cy||this,a=!n,o=!a;if(!i.styleEnabled())return this;var s=i.style();if(0===Object.keys(e=en({},e,t)).length)return new rv(r[0],e);switch(void 0===e.duration&&(e.duration=400),e.duration){case"slow":e.duration=600;break;case"fast":e.duration=200}if(o&&(e.style=s.getPropsList(e.style||e.css),e.css=void 0),o&&null!=e.renderedPosition){var l=e.renderedPosition,u=i.pan(),h=i.zoom();e.position=tT(l,h,u)}if(a&&null!=e.panBy){var c=e.panBy,d=i.pan();e.pan={x:d.x+c.x,y:d.y+c.y}}var p=e.center||e.centre;if(a&&null!=p){var g=i.getCenterPan(p.eles,e.zoom);null!=g&&(e.pan=g)}if(a&&null!=e.fit){var f=e.fit,v=i.getFitViewport(f.eles||f.boundingBox,f.padding);null!=v&&(e.pan=v.pan,e.zoom=v.zoom)}if(a&&P(e.zoom)){var y=i.getZoomedViewport(e.zoom);null!=y?(y.zoomed&&(e.zoom=y.zoom),y.panned&&(e.pan=y.pan)):e.zoom=null}return new rv(r[0],e)}},animate:function(){return function(e,t){var n=void 0!==this.length?this:[this];if(!(this._private.cy||this).styleEnabled())return this;t&&(e=en({},e,t));for(var r=0;r<n.length;r++){var i=n[r],a=i.animated()&&(void 0===e.queue||e.queue);i.animation(e,a?{queue:!0}:void 0).play()}return this}},stop:function(){return function(e,t){var n=void 0!==this.length?this:[this],r=this._private.cy||this;if(!r.styleEnabled())return this;for(var i=0;i<n.length;i++){for(var a=n[i]._private,o=a.animation.current,s=0;s<o.length;s++){var l=o[s]._private;t&&(l.duration=0)}e&&(a.animation.queue=[]),t||(a.animation.current=[])}return r.notify("draw"),this}}},{data:function(e){return e=en({},{field:"data",bindingEvent:"data",allowBinding:!1,allowSetting:!1,allowGetting:!1,settingEvent:"data",settingTriggersEvent:!1,triggerFnName:"trigger",immutableKeys:{},updateStyle:!1,beforeGet:function(e){},beforeSet:function(e,t){},onSet:function(e){},canSet:function(e){return!0}},e),function(t,n){var r,i=e,o=void 0!==this.length,s=o?this:[this],l=o?this[0]:this;if(I(t)){var u=-1!==t.indexOf(".")&&(rm(t)?r$(t,r5):eN(t)?[t]:ii(rW(r0(t))));if(i.allowGetting&&void 0===n)return l&&(i.beforeGet(l),p=u&&void 0===l._private[i.field][t]?r4(l._private[i.field],u):l._private[i.field][t]),p;if(i.allowSetting&&void 0!==n&&!i.immutableKeys[t]){var h=a({},t,n);i.beforeSet(this,h);for(var c=0,d=s.length;c<d;c++){var p,g,f=s[c];i.canSet(f)&&(u&&void 0===l._private[i.field][t]?null==(g=f._private[i.field])||ir(g,u,n):f._private[i.field][t]=n)}i.updateStyle&&this.updateStyle(),i.onSet(this),i.settingTriggersEvent&&this[i.triggerFnName](i.settingEvent)}}else if(i.allowSetting&&P(t)){var v,y,b=Object.keys(t);i.beforeSet(this,t);for(var x=0;x<b.length;x++)if(y=t[v=b[x]],!i.immutableKeys[v])for(var w=0;w<s.length;w++){var E=s[w];i.canSet(E)&&(E._private[i.field][v]=y)}i.updateStyle&&this.updateStyle(),i.onSet(this),i.settingTriggersEvent&&this[i.triggerFnName](i.settingEvent)}else if(i.allowBinding&&k(t))this.on(i.bindingEvent,t);else if(i.allowGetting&&void 0===t)return l&&(i.beforeGet(l),r=l._private[i.field]),r;return this}},removeData:function(e){return e=en({},{field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!1,immutableKeys:{}},e),function(t){var n=e,r=void 0!==this.length?this:[this];if(I(t)){for(var i=t.split(/\s+/),a=i.length,o=0;o<a;o++){var s=i[o];if(!V(s)&&!n.immutableKeys[s])for(var l=0,u=r.length;l<u;l++)r[l]._private[n.field][s]=void 0}n.triggerEvent&&this[n.triggerFnName](n.event)}else if(void 0===t){for(var h=0,c=r.length;h<c;h++)for(var d=r[h]._private[n.field],p=Object.keys(d),g=0;g<p.length;g++){var f=p[g];n.immutableKeys[f]||(d[f]=void 0)}n.triggerEvent&&this[n.triggerFnName](n.event)}return this}}},{eventAliasesOn:function(e){e.addListener=e.listen=e.bind=e.on,e.unlisten=e.unbind=e.off=e.removeListener,e.trigger=e.emit,e.pon=e.promiseOn=function(e,t){var n=this,r=Array.prototype.slice.call(arguments,0);return new rf(function(e,t){var i=r.concat([function(t){n.off.apply(n,a),e(t)}]),a=i.concat([]);n.on.apply(n,i)})}}}].forEach(function(e){en(ia,e)});var io={animate:ia.animate(),animation:ia.animation(),animated:ia.animated(),clearQueue:ia.clearQueue(),delay:ia.delay(),delayAnimation:ia.delayAnimation(),stop:ia.stop()},is={classes:function(e){if(void 0===e){var t=[];return this[0]._private.classes.forEach(function(e){return t.push(e)}),t}M(e)||(e=(e||"").match(/\S+/g)||[]);for(var n=[],r=new th(e),i=0;i<this.length;i++){for(var a=this[i],o=a._private,s=o.classes,l=!1,u=0;u<e.length;u++){var h=e[u];if(!s.has(h)){l=!0;break}}l||(l=s.size!==e.length),l&&(o.classes=r,n.push(a))}return n.length>0&&this.spawn(n).updateStyle().emit("class"),this},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var t=this[0];return null!=t&&t._private.classes.has(e)},toggleClass:function(e,t){M(e)||(e=e.match(/\S+/g)||[]);for(var n=void 0===t,r=[],i=0,a=this.length;i<a;i++)for(var o=this[i],s=o._private.classes,l=!1,u=0;u<e.length;u++){var h=e[u],c=s.has(h),d=!1;t||n&&!c?(s.add(h),d=!0):(!t||n&&c)&&(s.delete(h),d=!0),!l&&d&&(r.push(o),l=!0)}return r.length>0&&this.spawn(r).updateStyle().emit("class"),this},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,t){var n=this;if(null==t)t=250;else if(0===t)return n;return n.addClass(e),setTimeout(function(){n.removeClass(e)},t),n}};is.className=is.classNames=is.classes;var il={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:"\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'",number:K,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};il.variable="(?:[\\w-.]|(?:\\\\"+il.metaChar+"))+",il.className="(?:[\\w-]|(?:\\\\"+il.metaChar+"))+",il.value=il.string+"|"+il.number,il.id=il.variable,function(){var e,t,n;for(n=0,e=il.comparatorOp.split("|");n<e.length;n++)t=e[n],il.comparatorOp+="|@"+t;for(n=0,e=il.comparatorOp.split("|");n<e.length;n++)(t=e[n]).indexOf("!")>=0||"="===t||(il.comparatorOp+="|\\!"+t)}();var iu=function(){return{checks:[]}},ih={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},ic=[{selector:":selected",matches:function(e){return e.selected()}},{selector:":unselected",matches:function(e){return!e.selected()}},{selector:":selectable",matches:function(e){return e.selectable()}},{selector:":unselectable",matches:function(e){return!e.selectable()}},{selector:":locked",matches:function(e){return e.locked()}},{selector:":unlocked",matches:function(e){return!e.locked()}},{selector:":visible",matches:function(e){return e.visible()}},{selector:":hidden",matches:function(e){return!e.visible()}},{selector:":transparent",matches:function(e){return e.transparent()}},{selector:":grabbed",matches:function(e){return e.grabbed()}},{selector:":free",matches:function(e){return!e.grabbed()}},{selector:":removed",matches:function(e){return e.removed()}},{selector:":inside",matches:function(e){return!e.removed()}},{selector:":grabbable",matches:function(e){return e.grabbable()}},{selector:":ungrabbable",matches:function(e){return!e.grabbable()}},{selector:":animated",matches:function(e){return e.animated()}},{selector:":unanimated",matches:function(e){return!e.animated()}},{selector:":parent",matches:function(e){return e.isParent()}},{selector:":childless",matches:function(e){return e.isChildless()}},{selector:":child",matches:function(e){return e.isChild()}},{selector:":orphan",matches:function(e){return e.isOrphan()}},{selector:":nonorphan",matches:function(e){return e.isChild()}},{selector:":compound",matches:function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()}},{selector:":loop",matches:function(e){return e.isLoop()}},{selector:":simple",matches:function(e){return e.isSimple()}},{selector:":active",matches:function(e){return e.active()}},{selector:":inactive",matches:function(e){return!e.active()}},{selector:":backgrounding",matches:function(e){return e.backgrounding()}},{selector:":nonbackgrounding",matches:function(e){return!e.backgrounding()}}].sort(function(e,t){return -1*et(e.selector,t.selector)}),id=function(){for(var e,t={},n=0;n<ic.length;n++)t[(e=ic[n]).selector]=e.matches;return t}(),ip="("+ic.map(function(e){return e.selector}).join("|")+")",ig=function(e){return e.replace(RegExp("\\\\("+il.metaChar+")","g"),function(e,t){return t})},iv=function(e,t,n){e[e.length-1]=n},iy=[{name:"group",query:!0,regex:"("+il.group+")",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:ih.GROUP,value:"*"===r?r:r+"s"})}},{name:"state",query:!0,regex:ip,populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:ih.STATE,value:r})}},{name:"id",query:!0,regex:"\\#("+il.id+")",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:ih.ID,value:ig(r)})}},{name:"className",query:!0,regex:"\\.("+il.className+")",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:ih.CLASS,value:ig(r)})}},{name:"dataExists",query:!0,regex:"\\[\\s*("+il.variable+")\\s*\\]",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:ih.DATA_EXIST,field:ig(r)})}},{name:"dataCompare",query:!0,regex:"\\[\\s*("+il.variable+")\\s*("+il.comparatorOp+")\\s*("+il.value+")\\s*\\]",populate:function(e,t,n){var r=o(n,3),i=r[0],a=r[1],s=r[2];s=null!=RegExp("^"+il.string+"$").exec(s)?s.substring(1,s.length-1):parseFloat(s),t.checks.push({type:ih.DATA_COMPARE,field:ig(i),operator:a,value:s})}},{name:"dataBool",query:!0,regex:"\\[\\s*("+il.boolOp+")\\s*("+il.variable+")\\s*\\]",populate:function(e,t,n){var r=o(n,2),i=r[0],a=r[1];t.checks.push({type:ih.DATA_BOOL,field:ig(a),operator:i})}},{name:"metaCompare",query:!0,regex:"\\[\\[\\s*("+il.meta+")\\s*("+il.comparatorOp+")\\s*("+il.number+")\\s*\\]\\]",populate:function(e,t,n){var r=o(n,3),i=r[0],a=r[1],s=r[2];t.checks.push({type:ih.META_COMPARE,field:ig(i),operator:a,value:parseFloat(s)})}},{name:"nextQuery",separator:!0,regex:il.separator,populate:function(e,t){var n=e.currentSubject,r=e.edgeCount,i=e.compoundCount,a=e[e.length-1];return null!=n&&(a.subject=n,e.currentSubject=null),a.edgeCount=r,a.compoundCount=i,e.edgeCount=0,e.compoundCount=0,e[e.length++]=iu()}},{name:"directedEdge",separator:!0,regex:il.directedEdge,populate:function(e,t){if(null==e.currentSubject){var n=iu(),r=iu();return n.checks.push({type:ih.DIRECTED_EDGE,source:t,target:r}),iv(e,t,n),e.edgeCount++,r}var i=iu(),a=iu();return i.checks.push({type:ih.NODE_SOURCE,source:t,target:a}),iv(e,t,i),e.edgeCount++,a}},{name:"undirectedEdge",separator:!0,regex:il.undirectedEdge,populate:function(e,t){if(null==e.currentSubject){var n=iu(),r=iu();return n.checks.push({type:ih.UNDIRECTED_EDGE,nodes:[t,r]}),iv(e,t,n),e.edgeCount++,r}var i=iu(),a=iu();return i.checks.push({type:ih.NODE_NEIGHBOR,node:t,neighbor:a}),iv(e,t,i),a}},{name:"child",separator:!0,regex:il.child,populate:function(e,t){if(null==e.currentSubject){var n=iu(),r=iu(),i=e[e.length-1];return n.checks.push({type:ih.CHILD,parent:i,child:r}),iv(e,t,n),e.compoundCount++,r}if(e.currentSubject===t){var a=iu(),o=e[e.length-1],s=iu(),l=iu(),u=iu(),h=iu();return a.checks.push({type:ih.COMPOUND_SPLIT,left:o,right:s,subject:l}),l.checks=t.checks,t.checks=[{type:ih.TRUE}],h.checks.push({type:ih.TRUE}),s.checks.push({type:ih.PARENT,parent:h,child:u}),iv(e,o,a),e.currentSubject=l,e.compoundCount++,u}var c=iu(),d=iu(),p=[{type:ih.PARENT,parent:c,child:d}];return c.checks=t.checks,t.checks=p,e.compoundCount++,d}},{name:"descendant",separator:!0,regex:il.descendant,populate:function(e,t){if(null==e.currentSubject){var n=iu(),r=iu(),i=e[e.length-1];return n.checks.push({type:ih.DESCENDANT,ancestor:i,descendant:r}),iv(e,t,n),e.compoundCount++,r}if(e.currentSubject===t){var a=iu(),o=e[e.length-1],s=iu(),l=iu(),u=iu(),h=iu();return a.checks.push({type:ih.COMPOUND_SPLIT,left:o,right:s,subject:l}),l.checks=t.checks,t.checks=[{type:ih.TRUE}],h.checks.push({type:ih.TRUE}),s.checks.push({type:ih.ANCESTOR,ancestor:h,descendant:u}),iv(e,o,a),e.currentSubject=l,e.compoundCount++,u}var c=iu(),d=iu(),p=[{type:ih.ANCESTOR,ancestor:c,descendant:d}];return c.checks=t.checks,t.checks=p,e.compoundCount++,d}},{name:"subject",modifier:!0,regex:il.subject,populate:function(e,t){if(null!=e.currentSubject&&e.currentSubject!==t)return e9("Redefinition of subject in selector `"+e.toString()+"`"),!1;e.currentSubject=t;var n=e[e.length-1].checks[0],r=null==n?null:n.type;r===ih.DIRECTED_EDGE?n.type=ih.NODE_TARGET:r===ih.UNDIRECTED_EDGE&&(n.type=ih.NODE_NEIGHBOR,n.node=n.nodes[1],n.neighbor=n.nodes[0],n.nodes=null)}}];iy.forEach(function(e){return e.regexObj=RegExp("^"+e.regex)});var im=function(e){for(var t,n,r,i=0;i<iy.length;i++){var a=iy[i],o=a.name,s=e.match(a.regexObj);if(null!=s){n=s,t=a,r=o;var l=s[0];e=e.substring(l.length);break}}return{expr:t,match:n,name:r,remaining:e}},ib=function(e){var t=e.match(/^\s+/);if(t){var n=t[0];e=e.substring(n.length)}return e},ix=function(e,t,n){var r,i,a,o=I(e),s=R(e),l=I(n),u=!1,h=!1,c=!1;switch(t.indexOf("!")>=0&&(t=t.replace("!",""),h=!0),t.indexOf("@")>=0&&(t=t.replace("@",""),u=!0),(o||l||u)&&(i=o||s?""+e:"",a=""+n),u&&(e=i=i.toLowerCase(),n=a=a.toLowerCase()),t){case"*=":r=i.indexOf(a)>=0;break;case"$=":r=i.indexOf(a,i.length-a.length)>=0;break;case"^=":r=0===i.indexOf(a);break;case"=":r=e===n;break;case">":c=!0,r=e>n;break;case">=":c=!0,r=e>=n;break;case"<":c=!0,r=e<n;break;case"<=":c=!0,r=e<=n;break;default:r=!1}return h&&(null!=e||!c)&&(r=!r),r},iw=function(e,t){switch(t){case"?":return!!e;case"!":return!e;case"^":return void 0===e}},iE=function(e,t){return e.data(t)},iT=[],i_=function(e,t){return e.checks.every(function(e){return iT[e.type](e,t)})};iT[ih.GROUP]=function(e,t){var n=e.value;return"*"===n||n===t.group()},iT[ih.STATE]=function(e,t){return id[e.value](t)},iT[ih.ID]=function(e,t){var n=e.value;return t.id()===n},iT[ih.CLASS]=function(e,t){var n=e.value;return t.hasClass(n)},iT[ih.META_COMPARE]=function(e,t){var n=e.field,r=e.operator,i=e.value;return ix(t[n](),r,i)},iT[ih.DATA_COMPARE]=function(e,t){var n=e.field,r=e.operator,i=e.value;return ix(iE(t,n),r,i)},iT[ih.DATA_BOOL]=function(e,t){var n=e.field,r=e.operator;return iw(iE(t,n),r)},iT[ih.DATA_EXIST]=function(e,t){var n=e.field;return e.operator,void 0!==iE(t,n)},iT[ih.UNDIRECTED_EDGE]=function(e,t){var n=e.nodes[0],r=e.nodes[1],i=t.source(),a=t.target();return i_(n,i)&&i_(r,a)||i_(r,i)&&i_(n,a)},iT[ih.NODE_NEIGHBOR]=function(e,t){return i_(e.node,t)&&t.neighborhood().some(function(t){return t.isNode()&&i_(e.neighbor,t)})},iT[ih.DIRECTED_EDGE]=function(e,t){return i_(e.source,t.source())&&i_(e.target,t.target())},iT[ih.NODE_SOURCE]=function(e,t){return i_(e.source,t)&&t.outgoers().some(function(t){return t.isNode()&&i_(e.target,t)})},iT[ih.NODE_TARGET]=function(e,t){return i_(e.target,t)&&t.incomers().some(function(t){return t.isNode()&&i_(e.source,t)})},iT[ih.CHILD]=function(e,t){return i_(e.child,t)&&i_(e.parent,t.parent())},iT[ih.PARENT]=function(e,t){return i_(e.parent,t)&&t.children().some(function(t){return i_(e.child,t)})},iT[ih.DESCENDANT]=function(e,t){return i_(e.descendant,t)&&t.ancestors().some(function(t){return i_(e.ancestor,t)})},iT[ih.ANCESTOR]=function(e,t){return i_(e.ancestor,t)&&t.descendants().some(function(t){return i_(e.descendant,t)})},iT[ih.COMPOUND_SPLIT]=function(e,t){return i_(e.subject,t)&&i_(e.left,t)&&i_(e.right,t)},iT[ih.TRUE]=function(){return!0},iT[ih.COLLECTION]=function(e,t){return e.value.has(t)},iT[ih.FILTER]=function(e,t){return(0,e.value)(t)};var iD=function(e){this.inputText=e,this.currentSubject=null,this.compoundCount=0,this.edgeCount=0,this.length=0,null==e||I(e)&&e.match(/^\s*$/)||(F(e)?this.addQuery({checks:[{type:ih.COLLECTION,value:e.collection()}]}):k(e)?this.addQuery({checks:[{type:ih.FILTER,value:e}]}):I(e)?this.parse(e)||(this.invalid=!0):e3("A selector must be created from a string; found "))},iC=iD.prototype;[{parse:function(e){var t=this.inputText=e,n=this[0]=iu();for(this.length=1,t=ib(t);;){var r=im(t);if(null==r.expr)return e9("The selector `"+e+"`is invalid"),!1;var i=r.match.slice(1),a=r.expr.populate(this,n,i);if(!1===a)return!1;if(null!=a&&(n=a),(t=r.remaining).match(/^\s*$/))break}var o=this[this.length-1];null!=this.currentSubject&&(o.subject=this.currentSubject),o.edgeCount=this.edgeCount,o.compoundCount=this.compoundCount;for(var s=0;s<this.length;s++){var l=this[s];if(l.compoundCount>0&&l.edgeCount>0)return e9("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(l.edgeCount>1)return e9("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;1===l.edgeCount&&e9("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},toString:function(){if(null!=this.toStringCache)return this.toStringCache;for(var e=function(e){return null==e?"":e},t=function(t){return I(t)?'"'+t+'"':e(t)},n=function(e){return" "+e+" "},r=function(r,a){var o=r.type,s=r.value;switch(o){case ih.GROUP:var l=e(s);return l.substring(0,l.length-1);case ih.DATA_COMPARE:return"["+r.field+n(e(r.operator))+t(s)+"]";case ih.DATA_BOOL:var u=r.operator,h=r.field;return"["+e(u)+h+"]";case ih.DATA_EXIST:return"["+r.field+"]";case ih.META_COMPARE:var c=r.operator;return"[["+r.field+n(e(c))+t(s)+"]]";case ih.STATE:return s;case ih.ID:return"#"+s;case ih.CLASS:return"."+s;case ih.PARENT:case ih.CHILD:return i(r.parent,a)+n(">")+i(r.child,a);case ih.ANCESTOR:case ih.DESCENDANT:return i(r.ancestor,a)+" "+i(r.descendant,a);case ih.COMPOUND_SPLIT:var d=i(r.left,a),p=i(r.subject,a),g=i(r.right,a);return d+(d.length>0?" ":"")+p+g;case ih.TRUE:return""}},i=function(e,t){return e.checks.reduce(function(n,i,a){return n+(t===e&&0===a?"$":"")+r(i,t)},"")},a="",o=0;o<this.length;o++){var s=this[o];a+=i(s,s.subject),this.length>1&&o<this.length-1&&(a+=", ")}return this.toStringCache=a,a}},{matches:function(e){for(var t=0;t<this.length;t++)if(i_(this[t],e))return!0;return!1},filter:function(e){var t=this;if(1===t.length&&1===t[0].checks.length&&t[0].checks[0].type===ih.ID)return e.getElementById(t[0].checks[0].value).collection();var n=function(e){for(var n=0;n<t.length;n++)if(i_(t[n],e))return!0;return!1};return null==t.text()&&(n=function(){return!0}),e.filter(n)}}].forEach(function(e){return en(iC,e)}),iC.text=function(){return this.inputText},iC.size=function(){return this.length},iC.eq=function(e){return this[e]},iC.sameText=function(e){return!this.invalid&&!e.invalid&&this.text()===e.text()},iC.addQuery=function(e){this[this.length++]=e},iC.selector=iC.toString;var iN={allAre:function(e){var t=new iD(e);return this.every(function(e){return t.matches(e)})},is:function(e){var t=new iD(e);return this.some(function(e){return t.matches(e)})},some:function(e,t){for(var n=0;n<this.length;n++)if(t?e.apply(t,[this[n],n,this]):e(this[n],n,this))return!0;return!1},every:function(e,t){for(var n=0;n<this.length;n++)if(!(t?e.apply(t,[this[n],n,this]):e(this[n],n,this)))return!1;return!0},same:function(e){if(this===e)return!0;e=this.cy().collection(e);var t=this.length;return t===e.length&&(1===t?this[0]===e[0]:this.every(function(t){return e.hasElementWithId(t.id())}))},anySame:function(e){return e=this.cy().collection(e),this.some(function(t){return e.hasElementWithId(t.id())})},allAreNeighbors:function(e){e=this.cy().collection(e);var t=this.neighborhood();return e.every(function(e){return t.hasElementWithId(e.id())})},contains:function(e){e=this.cy().collection(e);var t=this;return e.every(function(e){return t.hasElementWithId(e.id())})}};iN.allAreNeighbours=iN.allAreNeighbors,iN.has=iN.contains,iN.equal=iN.equals=iN.same;var iA=function(e,t){return function(n,r,i,a){if(null==n?o="":F(n)&&1===n.length&&(o=n.id()),1!==this.length||!o)return e.call(this,n,r,i,a);var o,s=this[0]._private,l=s.traversalCache=s.traversalCache||{},u=l[t]=l[t]||[],h=eq(o);return u[h]||(u[h]=e.call(this,n,r,i,a))}},iL={parent:function(e){var t=[];if(1===this.length){var n=this[0]._private.parent;if(n)return n}for(var r=0;r<this.length;r++){var i=this[r]._private.parent;i&&t.push(i)}return this.spawn(t,!0).filter(e)},parents:function(e){for(var t=[],n=this.parent();n.nonempty();){for(var r=0;r<n.length;r++){var i=n[r];t.push(i)}n=n.parent()}return this.spawn(t,!0).filter(e)},commonAncestors:function(e){for(var t,n=0;n<this.length;n++){var r=this[n].parents();t=(t=t||r).intersect(r)}return t.filter(e)},orphans:function(e){return this.stdFilter(function(e){return e.isOrphan()}).filter(e)},nonorphans:function(e){return this.stdFilter(function(e){return e.isChild()}).filter(e)},children:iA(function(e){for(var t=[],n=0;n<this.length;n++)for(var r=this[n]._private.children,i=0;i<r.length;i++)t.push(r[i]);return this.spawn(t,!0).filter(e)},"children"),siblings:function(e){return this.parent().children().not(this).filter(e)},isParent:function(){var e=this[0];if(e)return e.isNode()&&0!==e._private.children.length},isChildless:function(){var e=this[0];if(e)return e.isNode()&&0===e._private.children.length},isChild:function(){var e=this[0];if(e)return e.isNode()&&null!=e._private.parent},isOrphan:function(){var e=this[0];if(e)return e.isNode()&&null==e._private.parent},descendants:function(e){var t=[];return function e(n){for(var r=0;r<n.length;r++){var i=n[r];t.push(i),i.children().nonempty()&&e(i.children())}}(this.children()),this.spawn(t,!0).filter(e)}};function iS(e,t,n,r){for(var i=[],a=new th,o=e.cy().hasCompoundNodes(),s=0;s<e.length;s++){var l=e[s];n?i.push(l):o&&r(i,a,l)}for(;i.length>0;){var u=i.shift();t(u),a.add(u.id()),o&&r(i,a,u)}return e}function iO(e,t,n){if(n.isParent())for(var r=n._private.children,i=0;i<r.length;i++){var a=r[i];t.has(a.id())||e.push(a)}}function iI(e,t,n){if(n.isChild()){var r=n._private.parent;t.has(r.id())||e.push(r)}}function ik(e,t,n){iI(e,t,n),iO(e,t,n)}iL.forEachDown=function(e){var t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return iS(this,e,t,iO)},iL.forEachUp=function(e){var t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return iS(this,e,t,iI)},iL.forEachUpAndDown=function(e){var t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return iS(this,e,t,ik)},iL.ancestors=iL.parents,(p=g={data:ia.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:ia.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:ia.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:ia.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:ia.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:ia.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}}).attr=p.data,p.removeAttr=p.removeData;var iM={};function iP(e){return function(t){if(void 0===t&&(t=!0),0!==this.length&&!(!this.isNode()||this.removed())){for(var n=0,r=this[0],i=r._private.edges,a=0;a<i.length;a++){var o=i[a];!t&&o.isLoop()||(n+=e(r,o))}return n}}}function iR(e,t){return function(n){for(var r,i=this.nodes(),a=0;a<i.length;a++){var o=i[a][e](n);void 0!==o&&(void 0===r||t(o,r))&&(r=o)}return r}}en(iM,{degree:iP(function(e,t){return t.source().same(t.target())?2:1}),indegree:iP(function(e,t){return t.target().same(e)?1:0}),outdegree:iP(function(e,t){return t.source().same(e)?1:0})}),en(iM,{minDegree:iR("degree",function(e,t){return e<t}),maxDegree:iR("degree",function(e,t){return e>t}),minIndegree:iR("indegree",function(e,t){return e<t}),maxIndegree:iR("indegree",function(e,t){return e>t}),minOutdegree:iR("outdegree",function(e,t){return e<t}),maxOutdegree:iR("outdegree",function(e,t){return e>t})}),en(iM,{totalDegree:function(e){for(var t=0,n=this.nodes(),r=0;r<n.length;r++)t+=n[r].degree(e);return t}});var iB=function(e,t,n){for(var r=0;r<e.length;r++){var i=e[r];if(!i.locked()){var a=i._private.position,o={x:null!=t.x?t.x-a.x:0,y:null!=t.y?t.y-a.y:0};i.isParent()&&!(0===o.x&&0===o.y)&&i.children().shift(o,n),i.dirtyBoundingBoxCache()}}},iF={field:"position",bindingEvent:"position",allowBinding:!0,allowSetting:!0,settingEvent:"position",settingTriggersEvent:!0,triggerFnName:"emitAndNotify",allowGetting:!0,validKeys:["x","y"],beforeGet:function(e){e.updateCompoundBounds()},beforeSet:function(e,t){iB(e,t,!1)},onSet:function(e){e.dirtyCompoundBoundsCache()},canSet:function(e){return!e.locked()}};(f=v={position:ia.data(iF),silentPosition:ia.data(en({},iF,{allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!1,beforeSet:function(e,t){iB(e,t,!0)},onSet:function(e){e.dirtyCompoundBoundsCache()}})),positions:function(e,t){if(P(e))t?this.silentPosition(e):this.position(e);else if(k(e)){var n=this.cy();n.startBatch();for(var r=0;r<this.length;r++){var i=this[r],a=void 0;(a=e(i,r))&&(t?i.silentPosition(a):i.position(a))}n.endBatch()}return this},silentPositions:function(e){return this.positions(e,!0)},shift:function(e,t,n){var r;if(P(e)?(r={x:R(e.x)?e.x:0,y:R(e.y)?e.y:0},n=t):I(e)&&R(t)&&((r={x:0,y:0})[e]=t),null!=r){var i=this.cy();i.startBatch();for(var a=0;a<this.length;a++){var o=this[a];if(!(i.hasCompoundNodes()&&o.isChild()&&o.ancestors().anySame(this))){var s=o.position(),l={x:s.x+r.x,y:s.y+r.y};n?o.silentPosition(l):o.position(l)}}i.endBatch()}return this},silentShift:function(e,t){return P(e)?this.shift(e,!0):I(e)&&R(t)&&this.shift(e,t,!0),this},renderedPosition:function(e,t){var n=this[0],r=this.cy(),i=r.zoom(),a=r.pan(),o=P(e)?e:void 0,s=void 0!==o||void 0!==t&&I(e);if(n&&n.isNode()){if(!s)return(o=tE(n.position(),i,a),void 0===e)?o:o[e];for(var l=0;l<this.length;l++){var u=this[l];void 0!==t?u.position(e,(t-a[e])/i):void 0!==o&&u.position(tT(o,i,a))}}else if(!s)return;return this},relativePosition:function(e,t){var n=this[0],r=this.cy(),i=P(e)?e:void 0,a=void 0!==i||void 0!==t&&I(e),o=r.hasCompoundNodes();if(n&&n.isNode()){if(a)for(var s=0;s<this.length;s++){var l=this[s],u=o?l.parent():null,h=u&&u.length>0;h&&(u=u[0]);var c=h?u.position():{x:0,y:0};void 0!==t?l.position(e,t+c[e]):void 0!==i&&l.position({x:i.x+c.x,y:i.y+c.y})}else{var d=n.position(),p=o?n.parent():null,g=p&&p.length>0;g&&(p=p[0]);var f=g?p.position():{x:0,y:0};return(i={x:d.x-f.x,y:d.y-f.y},void 0===e)?i:i[e]}}else if(!a)return;return this}}).modelPosition=f.point=f.position,f.modelPositions=f.points=f.positions,f.renderedPoint=f.renderedPosition,f.relativePoint=f.relativePosition,y=b={},b.renderedBoundingBox=function(e){var t=this.boundingBox(e),n=this.cy(),r=n.zoom(),i=n.pan(),a=t.x1*r+i.x,o=t.x2*r+i.x,s=t.y1*r+i.y,l=t.y2*r+i.y;return{x1:a,x2:o,y1:s,y2:l,w:o-a,h:l-s}},b.dirtyCompoundBoundsCache=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();return t.styleEnabled()&&t.hasCompoundNodes()&&this.forEachUp(function(t){if(t.isParent()){var n=t._private;n.compoundBoundsClean=!1,n.bbCache=null,e||t.emitAndNotify("bounds")}}),this},b.updateCompoundBounds=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes()||!e&&t.batching())return this;for(var n=0;n<this.length;n++){var r=this[n],i=r._private;i.compoundBoundsClean&&!e||(function(e){if(e.isParent()){var t=e._private,n=e.children(),r="include"===e.pstyle("compound-sizing-wrt-labels").value,i={width:{val:e.pstyle("min-width").pfValue,left:e.pstyle("min-width-bias-left"),right:e.pstyle("min-width-bias-right")},height:{val:e.pstyle("min-height").pfValue,top:e.pstyle("min-height-bias-top"),bottom:e.pstyle("min-height-bias-bottom")}},a=n.boundingBox({includeLabels:r,includeOverlays:!1,useCache:!1}),o=t.position;(0===a.w||0===a.h)&&((a={w:e.pstyle("width").pfValue,h:e.pstyle("height").pfValue}).x1=o.x-a.w/2,a.x2=o.x+a.w/2,a.y1=o.y-a.h/2,a.y2=o.y+a.h/2);var s=i.width.left.value;"px"===i.width.left.units&&i.width.val>0&&(s=100*s/i.width.val);var l=i.width.right.value;"px"===i.width.right.units&&i.width.val>0&&(l=100*l/i.width.val);var u=i.height.top.value;"px"===i.height.top.units&&i.height.val>0&&(u=100*u/i.height.val);var h=i.height.bottom.value;"px"===i.height.bottom.units&&i.height.val>0&&(h=100*h/i.height.val);var c=y(i.width.val-a.w,s,l),d=c.biasDiff,p=c.biasComplementDiff,g=y(i.height.val-a.h,u,h),f=g.biasDiff,v=g.biasComplementDiff;t.autoPadding=function(e,t,n,r){if("%"===n.units)switch(r){case"width":return e>0?n.pfValue*e:0;case"height":return t>0?n.pfValue*t:0;case"average":return e>0&&t>0?n.pfValue*(e+t)/2:0;case"min":return e>0&&t>0?e>t?n.pfValue*t:n.pfValue*e:0;case"max":return e>0&&t>0?e>t?n.pfValue*e:n.pfValue*t:0;default:return 0}else if("px"===n.units)return n.pfValue;else return 0}(a.w,a.h,e.pstyle("padding"),e.pstyle("padding-relative-to").value),t.autoWidth=Math.max(a.w,i.width.val),o.x=(-d+a.x1+a.x2+p)/2,t.autoHeight=Math.max(a.h,i.height.val),o.y=(-f+a.y1+a.y2+v)/2}function y(e,t,n){var r=0,i=0,a=t+n;return e>0&&a>0&&(r=t/a*e,i=n/a*e),{biasDiff:r,biasComplementDiff:i}}}(r),t.batching()||(i.compoundBoundsClean=!0))}return this};var iz=function(e){return e===1/0||e===-1/0?0:e},iG=function(e,t,n,r,i){r-t!=0&&i-n!=0&&null!=t&&null!=n&&null!=r&&null!=i&&(e.x1=t<e.x1?t:e.x1,e.x2=r>e.x2?r:e.x2,e.y1=n<e.y1?n:e.y1,e.y2=i>e.y2?i:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},iY=function(e,t){return null==t?e:iG(e,t.x1,t.y1,t.x2,t.y2)},iX=function(e,t,n){return ta(e,t,n)},iV=function(e,t,n){if(!t.cy().headless()){var r,i,a=t._private,o=a.rstyle,s=o.arrowWidth/2;if("none"!==t.pstyle(n+"-arrow-shape").value){"source"===n?(r=o.srcX,i=o.srcY):"target"===n?(r=o.tgtX,i=o.tgtY):(r=o.midX,i=o.midY);var l=a.arrowBounds=a.arrowBounds||{},u=l[n]=l[n]||{};u.x1=r-s,u.y1=i-s,u.x2=r+s,u.y2=i+s,u.w=u.x2-u.x1,u.h=u.y2-u.y1,tV(u,1),iG(e,u.x1,u.y1,u.x2,u.y2)}}},iU=function(e,t,n){if(!t.cy().headless()){a=n?n+"-":"";var r=t._private,i=r.rstyle;if(t.pstyle(a+"label").strValue){var a,o,s,l,u,h=t.pstyle("text-halign"),c=t.pstyle("text-valign"),d=iX(i,"labelWidth",n),p=iX(i,"labelHeight",n),g=iX(i,"labelX",n),f=iX(i,"labelY",n),v=t.pstyle(a+"text-margin-x").pfValue,y=t.pstyle(a+"text-margin-y").pfValue,b=t.isEdge(),x=t.pstyle(a+"text-rotation"),w=t.pstyle("text-outline-width").pfValue,E=t.pstyle("text-border-width").pfValue/2,T=t.pstyle("text-background-padding").pfValue,_=d/2,D=p/2;if(b)o=g-_,s=g+_,l=f-D,u=f+D;else{switch(h.value){case"left":o=g-d,s=g;break;case"center":o=g-_,s=g+_;break;case"right":o=g,s=g+d}switch(c.value){case"top":l=f-p,u=f;break;case"center":l=f-D,u=f+D;break;case"bottom":l=f,u=f+p}}o+=v-Math.max(w,E)-T-2,s+=v+Math.max(w,E)+T+2,l+=y-Math.max(w,E)-T-2,u+=y+Math.max(w,E)+T+2;var C=n||"main",N=r.labelBounds,A=N[C]=N[C]||{};A.x1=o,A.y1=l,A.x2=s,A.y2=u,A.w=s-o,A.h=u-l;var L=b&&"autorotate"===x.strValue,S=null!=x.pfValue&&0!==x.pfValue;if(L||S){var O=L?iX(r.rstyle,"labelAngle",n):x.pfValue,I=Math.cos(O),k=Math.sin(O),M=(o+s)/2,P=(l+u)/2;if(!b){switch(h.value){case"left":M=s;break;case"right":M=o}switch(c.value){case"top":P=u;break;case"bottom":P=l}}var R=function(e,t){return{x:(e-=M)*I-(t-=P)*k+M,y:e*k+t*I+P}},B=R(o,l),F=R(o,u),z=R(s,l),G=R(s,u);o=Math.min(B.x,F.x,z.x,G.x),s=Math.max(B.x,F.x,z.x,G.x),l=Math.min(B.y,F.y,z.y,G.y),u=Math.max(B.y,F.y,z.y,G.y)}var Y=C+"Rot",X=N[Y]=N[Y]||{};X.x1=o,X.y1=l,X.x2=s,X.y2=u,X.w=s-o,X.h=u-l,iG(e,o,l,s,u),iG(r.labelBounds.all,o,l,s,u)}return e}},ij=function(e,t){var n=e._private.cy,r=n.styleEnabled(),i=n.headless(),a=tz(),o=e._private,s=e.isNode(),l=e.isEdge(),u=o.rstyle,h=s&&r?e.pstyle("bounds-expansion").pfValue:[0],c=function(e){return"none"!==e.pstyle("display").value},d=!r||c(e)&&(!l||c(e.source())&&c(e.target()));if(d){var p=0;r&&t.includeOverlays&&0!==e.pstyle("overlay-opacity").value&&(p=e.pstyle("overlay-padding").value);var g=0;r&&t.includeUnderlays&&0!==e.pstyle("underlay-opacity").value&&(g=e.pstyle("underlay-padding").value);var f=Math.max(p,g),v=0;if(r&&(v=e.pstyle("width").pfValue/2),s&&t.includeNodes){var y=e.position();D=y.x,C=y.y;var b=e.outerWidth()/2,x=e.outerHeight()/2;w=D-b,E=D+b,iG(a,w,T=C-x,E,_=C+x)}else if(l&&t.includeEdges){if(r&&!i){var w,E,T,_,D,C,N,A=e.pstyle("curve-style").strValue;if(w=Math.min(u.srcX,u.midX,u.tgtX),E=Math.max(u.srcX,u.midX,u.tgtX),T=Math.min(u.srcY,u.midY,u.tgtY),_=Math.max(u.srcY,u.midY,u.tgtY),w-=v,E+=v,iG(a,w,T-=v,E,_+=v),"haystack"===A){var L=u.haystackPts;if(L&&2===L.length){if(w=L[0].x,T=L[0].y,E=L[1].x,_=L[1].y,w>E){var S=w;w=E,E=S}if(T>_){var O=T;T=_,_=O}iG(a,w-v,T-v,E+v,_+v)}}else if("bezier"===A||"unbundled-bezier"===A||"segments"===A||"taxi"===A){switch(A){case"bezier":case"unbundled-bezier":N=u.bezierPts;break;case"segments":case"taxi":N=u.linePts}if(null!=N)for(var I=0;I<N.length;I++){var k=N[I];w=k.x-v,E=k.x+v,iG(a,w,T=k.y-v,E,_=k.y+v)}}}else{var M=e.source().position(),P=e.target().position();if(w=M.x,E=P.x,T=M.y,_=P.y,w>E){var R=w;w=E,E=R}if(T>_){var B=T;T=_,_=B}w-=v,E+=v,iG(a,w,T-=v,E,_+=v)}}if(r&&t.includeEdges&&l&&(iV(a,e,"mid-source"),iV(a,e,"mid-target"),iV(a,e,"source"),iV(a,e,"target")),r&&"yes"===e.pstyle("ghost").value){var F=e.pstyle("ghost-offset-x").pfValue,z=e.pstyle("ghost-offset-y").pfValue;iG(a,a.x1+F,a.y1+z,a.x2+F,a.y2+z)}var G=o.bodyBounds=o.bodyBounds||{};tj(G,a),tU(G,h),tV(G,1),r&&(w=a.x1,E=a.x2,T=a.y1,_=a.y2,iG(a,w-f,T-f,E+f,_+f));var Y=o.overlayBounds=o.overlayBounds||{};tj(Y,a),tU(Y,h),tV(Y,1);var X=o.labelBounds=o.labelBounds||{};null!=X.all?tG(X.all):X.all=tz(),r&&t.includeLabels&&(t.includeMainLabels&&iU(a,e,null),l&&(t.includeSourceLabels&&iU(a,e,"source"),t.includeTargetLabels&&iU(a,e,"target")))}return a.x1=iz(a.x1),a.y1=iz(a.y1),a.x2=iz(a.x2),a.y2=iz(a.y2),a.w=iz(a.x2-a.x1),a.h=iz(a.y2-a.y1),a.w>0&&a.h>0&&d&&(tU(a,h),tV(a,1)),a},iH=function(e){var t=0,n=function(e){return(e?1:0)<<t++};return 0+n(e.incudeNodes)+n(e.includeEdges)+n(e.includeLabels)+n(e.includeMainLabels)+n(e.includeSourceLabels)+n(e.includeTargetLabels)+n(e.includeOverlays)},iq=function(e){if(!e.isEdge())return 0;var t=e.source().position(),n=e.target().position(),r=function(e){return Math.round(e)};return eH([r(t.x),r(t.y),r(n.x),r(n.y)])},iW=function(e,t){var n,r=e._private,i=e.isEdge(),a=null==t?iK:iH(t),o=iq(e),s=r.bbCachePosKey===o,l=t.useCache&&s,u=function(e){return null==e._private.bbCache||e._private.styleDirty};if(!l||u(e)||i&&u(e.source())||u(e.target())?(s||e.recalculateRenderedStyle(l),n=ij(e,i$),r.bbCache=n,r.bbCachePosKey=o):n=r.bbCache,a!==iK){var h=e.isNode();n=tz(),(t.includeNodes&&h||t.includeEdges&&!h)&&(t.includeOverlays?iY(n,r.overlayBounds):iY(n,r.bodyBounds)),t.includeLabels&&(t.includeMainLabels&&(!i||t.includeSourceLabels&&t.includeTargetLabels)?iY(n,r.labelBounds.all):(t.includeMainLabels&&iY(n,r.labelBounds.mainRot),t.includeSourceLabels&&iY(n,r.labelBounds.sourceRot),t.includeTargetLabels&&iY(n,r.labelBounds.targetRot))),n.w=n.x2-n.x1,n.h=n.y2-n.y1}return n},i$={includeNodes:!0,includeEdges:!0,includeLabels:!0,includeMainLabels:!0,includeSourceLabels:!0,includeTargetLabels:!0,includeOverlays:!0,includeUnderlays:!0,useCache:!0},iK=iH(i$),iZ=tt(i$);b.boundingBox=function(e){var t;if(1!==this.length||null==this[0]._private.bbCache||this[0]._private.styleDirty||void 0!==e&&void 0!==e.useCache&&!0!==e.useCache){t=tz();var n=iZ(e=e||i$);if(this.cy().styleEnabled())for(var r=0;r<this.length;r++){var i=this[r],a=i._private,o=iq(i),s=a.bbCachePosKey===o,l=n.useCache&&s&&!a.styleDirty;i.recalculateRenderedStyle(l)}this.updateCompoundBounds(!e.useCache);for(var u=0;u<this.length;u++)iY(t,iW(this[u],n))}else e=void 0===e?i$:iZ(e),t=iW(this[0],e);return t.x1=iz(t.x1),t.y1=iz(t.y1),t.x2=iz(t.x2),t.y2=iz(t.y2),t.w=iz(t.x2-t.x1),t.h=iz(t.y2-t.y1),t},b.dirtyBoundingBoxCache=function(){for(var e=0;e<this.length;e++){var t=this[e]._private;t.bbCache=null,t.bbCachePosKey=null,t.bodyBounds=null,t.overlayBounds=null,t.labelBounds.all=null,t.labelBounds.source=null,t.labelBounds.target=null,t.labelBounds.main=null,t.labelBounds.sourceRot=null,t.labelBounds.targetRot=null,t.labelBounds.mainRot=null,t.arrowBounds.source=null,t.arrowBounds.target=null,t.arrowBounds["mid-source"]=null,t.arrowBounds["mid-target"]=null}return this.emitAndNotify("bounds"),this},b.boundingBoxAt=function(e){var t,n=this.nodes(),r=this.cy(),i=r.hasCompoundNodes(),a=r.collection();if(i&&(a=n.filter(function(e){return e.isParent()}),n=n.not(a)),P(e)){var o=e;e=function(){return o}}r.startBatch(),n.forEach(function(t,n){return t._private.bbAtOldPos=e(t,n)}).silentPositions(e),i&&(a.dirtyCompoundBoundsCache(),a.dirtyBoundingBoxCache(),a.updateCompoundBounds(!0));var s={x1:(t=this.boundingBox({useCache:!1})).x1,x2:t.x2,w:t.w,y1:t.y1,y2:t.y2,h:t.h};return n.silentPositions(function(e){return e._private.bbAtOldPos}),i&&(a.dirtyCompoundBoundsCache(),a.dirtyBoundingBoxCache(),a.updateCompoundBounds(!0)),r.endBatch(),s},y.boundingbox=y.bb=y.boundingBox,y.renderedBoundingbox=y.renderedBoundingBox,x=w={};var iQ=function(e){e.uppercaseName=$(e.name),e.autoName="auto"+e.uppercaseName,e.labelName="label"+e.uppercaseName,e.outerName="outer"+e.uppercaseName,e.uppercaseOuterName=$(e.outerName),x[e.name]=function(){var t=this[0],n=t._private,r=n.cy._private.styleEnabled;if(t){if(!r)return 1;if(t.isParent())return t.updateCompoundBounds(),n[e.autoName]||0;var i=t.pstyle(e.name);return"label"===i.strValue?(t.recalculateRenderedStyle(),n.rstyle[e.labelName]||0):i.pfValue}},x["outer"+e.uppercaseName]=function(){var t=this[0],n=t._private.cy._private.styleEnabled;if(t)return n?t[e.name]()+t.pstyle("border-width").pfValue+2*t.padding():1},x["rendered"+e.uppercaseName]=function(){var t=this[0];if(t)return t[e.name]()*this.cy().zoom()},x["rendered"+e.uppercaseOuterName]=function(){var t=this[0];if(t)return t[e.outerName]()*this.cy().zoom()}};iQ({name:"width"}),iQ({name:"height"}),w.padding=function(){var e=this[0],t=e._private;return e.isParent()&&(e.updateCompoundBounds(),void 0!==t.autoPadding)?t.autoPadding:e.pstyle("padding").pfValue},w.paddedHeight=function(){var e=this[0];return e.height()+2*e.padding()},w.paddedWidth=function(){var e=this[0];return e.width()+2*e.padding()};var iJ=function(e,t){if(e.isEdge())return t(e)},i0=function(e,t){if(e.isEdge()){var n=e.cy();return tE(t(e),n.zoom(),n.pan())}},i1=function(e,t){if(e.isEdge()){var n=e.cy(),r=n.pan(),i=n.zoom();return t(e).map(function(e){return tE(e,i,r)})}},i2={controlPoints:{get:function(e){return e.renderer().getControlPoints(e)},mult:!0},segmentPoints:{get:function(e){return e.renderer().getSegmentPoints(e)},mult:!0},sourceEndpoint:{get:function(e){return e.renderer().getSourceEndpoint(e)}},targetEndpoint:{get:function(e){return e.renderer().getTargetEndpoint(e)}},midpoint:{get:function(e){return e.renderer().getEdgeMidpoint(e)}}},i5=en({},v,b,w,Object.keys(i2).reduce(function(e,t){var n=i2[t],r="rendered"+t[0].toUpperCase()+t.substr(1);return e[t]=function(){return iJ(this,n.get)},n.mult?e[r]=function(){return i1(this,n.get)}:e[r]=function(){return i0(this,n.get)},e},{})),i3=function(e,t){this.recycle(e,t)};function i4(){return!1}function i9(){return!0}i3.prototype={instanceString:function(){return"event"},recycle:function(e,t){if(this.isImmediatePropagationStopped=this.isPropagationStopped=this.isDefaultPrevented=i4,null!=e&&e.preventDefault?(this.type=e.type,this.isDefaultPrevented=e.defaultPrevented?i9:i4):null!=e&&e.type?t=e:this.type=e,null!=t&&(this.originalEvent=t.originalEvent,this.type=null!=t.type?t.type:this.type,this.cy=t.cy,this.target=t.target,this.position=t.position,this.renderedPosition=t.renderedPosition,this.namespace=t.namespace,this.layout=t.layout),null!=this.cy&&null!=this.position&&null==this.renderedPosition){var n=this.position,r=this.cy.zoom(),i=this.cy.pan();this.renderedPosition={x:n.x*r+i.x,y:n.y*r+i.y}}this.timeStamp=e&&e.timeStamp||Date.now()},preventDefault:function(){this.isDefaultPrevented=i9;var e=this.originalEvent;e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){this.isPropagationStopped=i9;var e=this.originalEvent;e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i9,this.stopPropagation()},isDefaultPrevented:i4,isPropagationStopped:i4,isImmediatePropagationStopped:i4};var i6=/^([^.]+)(\.(?:[^.]+))?$/,i8={qualifierCompare:function(e,t){return e===t},eventMatches:function(){return!0},addEventFields:function(){},callbackContext:function(e){return e},beforeEmit:function(){},afterEmit:function(){},bubble:function(){return!1},parent:function(){return null},context:null},i7=Object.keys(i8),ae={};function at(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ae,t=arguments.length>1?arguments[1]:void 0,n=0;n<i7.length;n++){var r=i7[n];this[r]=e[r]||i8[r]}this.context=t||this.context,this.listeners=[],this.emitting=0}var an=at.prototype,ar=function(e,t,n,r,i,a,o){k(r)&&(i=r,r=null),o&&(a=null==a?o:en({},a,o));for(var s=M(n)?n:n.split(/\s+/),l=0;l<s.length;l++){var u=s[l];if(!V(u)){var h=u.match(i6);if(h&&!1===t(e,u,h[1],h[2]?h[2]:null,r,i,a))break}}},ai=function(e,t){return e.addEventFields(e.context,t),new i3(t.type,t)},aa=function(e,t,n){if("event"===O(n)){t(e,n);return}if(P(n)){t(e,ai(e,n));return}for(var r=M(n)?n:n.split(/\s+/),i=0;i<r.length;i++){var a=r[i];if(!V(a)){var o=a.match(i6);if(o){var s=ai(e,{type:o[1],namespace:o[2]?o[2]:null,target:e.context});t(e,s)}}}};an.on=an.addListener=function(e,t,n,r,i){return ar(this,function(e,t,n,r,i,a,o){k(a)&&e.listeners.push({event:t,callback:a,type:n,namespace:r,qualifier:i,conf:o})},e,t,n,r,i),this},an.one=function(e,t,n,r){return this.on(e,t,n,r,{one:!0})},an.removeListener=an.off=function(e,t,n,r){var i=this;0!==this.emitting&&(this.listeners=this.listeners.slice());for(var a=this.listeners,o=function(o){var s=a[o];ar(i,function(t,n,r,i,l,u){if((s.type===r||"*"===e)&&(!i&&".*"!==s.namespace||s.namespace===i)&&(!l||t.qualifierCompare(s.qualifier,l))&&(!u||s.callback===u))return a.splice(o,1),!1},e,t,n,r)},s=a.length-1;s>=0;s--)o(s);return this},an.removeAllListeners=function(){return this.removeListener("*")},an.emit=an.trigger=function(e,t,n){var r=this.listeners,i=r.length;return this.emitting++,M(t)||(t=[t]),aa(this,function(e,a){null!=n&&(i=(r=[{event:a.event,type:a.type,namespace:a.namespace,callback:n}]).length);for(var o=0;o<i;o++)!function(n){var i=r[n];if(i.type===a.type&&(!i.namespace||i.namespace===a.namespace||".*"===i.namespace)&&e.eventMatches(e.context,i,a)){var o=[a];null!=t&&ti(o,t),e.beforeEmit(e.context,i,a),i.conf&&i.conf.one&&(e.listeners=e.listeners.filter(function(e){return e!==i}));var s=e.callbackContext(e.context,i,a),l=i.callback.apply(s,o);e.afterEmit(e.context,i,a),!1===l&&(a.stopPropagation(),a.preventDefault())}}(o);e.bubble(e.context)&&!a.isPropagationStopped()&&e.parent(e.context).emit(a,t)},e),this.emitting--,this};var ao={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&z(n.target)&&r.matches(n.target)},addEventFields:function(e,t){t.cy=e.cy(),t.target=e},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e},beforeEmit:function(e,t){t.conf&&t.conf.once&&t.conf.onceCollection.removeListener(t.event,t.qualifier,t.callback)},bubble:function(){return!0},parent:function(e){return e.isChild()?e.parent():e.cy()}},as=function(e){return I(e)?new iD(e):e},al={createEmitter:function(){for(var e=0;e<this.length;e++){var t=this[e],n=t._private;n.emitter||(n.emitter=new at(ao,t))}return this},emitter:function(){return this._private.emitter},on:function(e,t,n){for(var r=as(t),i=0;i<this.length;i++)this[i].emitter().on(e,r,n);return this},removeListener:function(e,t,n){for(var r=as(t),i=0;i<this.length;i++)this[i].emitter().removeListener(e,r,n);return this},removeAllListeners:function(){for(var e=0;e<this.length;e++)this[e].emitter().removeAllListeners();return this},one:function(e,t,n){for(var r=as(t),i=0;i<this.length;i++)this[i].emitter().one(e,r,n);return this},once:function(e,t,n){for(var r=as(t),i=0;i<this.length;i++)this[i].emitter().on(e,r,n,{once:!0,onceCollection:this})},emit:function(e,t){for(var n=0;n<this.length;n++)this[n].emitter().emit(e,t);return this},emitAndNotify:function(e,t){if(0!==this.length)return this.cy().notify(e,this),this.emit(e,t),this}};ia.eventAliasesOn(al);var au={nodes:function(e){return this.filter(function(e){return e.isNode()}).filter(e)},edges:function(e){return this.filter(function(e){return e.isEdge()}).filter(e)},byGroup:function(){for(var e=this.spawn(),t=this.spawn(),n=0;n<this.length;n++){var r=this[n];r.isNode()?e.push(r):t.push(r)}return{nodes:e,edges:t}},filter:function(e,t){if(void 0===e)return this;if(I(e)||F(e))return new iD(e).filter(this);if(k(e)){for(var n=this.spawn(),r=0;r<this.length;r++){var i=this[r];(t?e.apply(t,[i,r,this]):e(i,r,this))&&n.push(i)}return n}return this.spawn()},not:function(e){if(!e)return this;I(e)&&(e=this.filter(e));for(var t=this.spawn(),n=0;n<this.length;n++){var r=this[n];e.has(r)||t.push(r)}return t},absoluteComplement:function(){return this.cy().mutableElements().not(this)},intersect:function(e){if(I(e))return this.filter(e);for(var t=this.spawn(),n=this.length<e.length,r=n?this:e,i=n?e:this,a=0;a<r.length;a++){var o=r[a];i.has(o)&&t.push(o)}return t},xor:function(e){var t=this._private.cy;I(e)&&(e=t.$(e));var n=this.spawn(),r=e,i=function(e,t){for(var r=0;r<e.length;r++){var i=e[r],a=i._private.data.id;t.hasElementWithId(a)||n.push(i)}};return i(this,r),i(r,this),n},diff:function(e){var t=this._private.cy;I(e)&&(e=t.$(e));var n=this.spawn(),r=this.spawn(),i=this.spawn(),a=e,o=function(e,t,n){for(var r=0;r<e.length;r++){var a=e[r],o=a._private.data.id;t.hasElementWithId(o)?i.merge(a):n.push(a)}};return o(this,a,n),o(a,this,r),{left:n,right:r,both:i}},add:function(e){var t=this._private.cy;if(!e)return this;if(I(e)){var n=e;e=t.mutableElements().filter(n)}for(var r=this.spawnSelf(),i=0;i<e.length;i++){var a=e[i];this.has(a)||r.push(a)}return r},merge:function(e){var t=this._private,n=t.cy;if(!e)return this;if(e&&I(e)){var r=e;e=n.mutableElements().filter(r)}for(var i=t.map,a=0;a<e.length;a++){var o=e[a],s=o._private.data.id;if(!i.has(s)){var l=this.length++;this[l]=o,i.set(s,{ele:o,index:l})}}return this},unmergeAt:function(e){var t=this[e].id(),n=this._private.map;this[e]=void 0,n.delete(t);var r=e===this.length-1;if(this.length>1&&!r){var i=this.length-1,a=this[i],o=a._private.data.id;this[i]=void 0,this[e]=a,n.set(o,{ele:a,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var t=this._private,n=e._private.data.id,r=t.map.get(n);if(!r)return this;var i=r.index;return this.unmergeAt(i),this},unmerge:function(e){var t=this._private.cy;if(!e)return this;if(e&&I(e)){var n=e;e=t.mutableElements().filter(n)}for(var r=0;r<e.length;r++)this.unmergeOne(e[r]);return this},unmergeBy:function(e){for(var t=this.length-1;t>=0;t--)e(this[t])&&this.unmergeAt(t);return this},map:function(e,t){for(var n=[],r=0;r<this.length;r++){var i=this[r],a=t?e.apply(t,[i,r,this]):e(i,r,this);n.push(a)}return n},reduce:function(e,t){for(var n=t,r=0;r<this.length;r++)n=e(n,this[r],r,this);return n},max:function(e,t){for(var n,r=-1/0,i=0;i<this.length;i++){var a=this[i],o=t?e.apply(t,[a,i,this]):e(a,i,this);o>r&&(r=o,n=a)}return{value:r,ele:n}},min:function(e,t){for(var n,r=1/0,i=0;i<this.length;i++){var a=this[i],o=t?e.apply(t,[a,i,this]):e(a,i,this);o<r&&(r=o,n=a)}return{value:r,ele:n}}};au.u=au["|"]=au["+"]=au.union=au.or=au.add,au["\\"]=au["!"]=au["-"]=au.difference=au.relativeComplement=au.subtract=au.not,au.n=au["&"]=au["."]=au.and=au.intersection=au.intersect,au["^"]=au["(+)"]=au["(-)"]=au.symmetricDifference=au.symdiff=au.xor,au.fnFilter=au.filterFn=au.stdFilter=au.filter,au.complement=au.abscomp=au.absoluteComplement;var ah=function(e,t){var n=e.cy().hasCompoundNodes();function r(e){var t=e.pstyle("z-compound-depth");return"auto"===t.value?n?e.zDepth():0:"bottom"===t.value?-1:"top"===t.value?eJ:0}var i=r(e)-r(t);if(0!==i)return i;function a(e){return"auto"===e.pstyle("z-index-compare").value&&e.isNode()?1:0}var o=a(e)-a(t);if(0!==o)return o;var s=e.pstyle("z-index").value-t.pstyle("z-index").value;return 0!==s?s:e.poolIndex()-t.poolIndex()},ac={forEach:function(e,t){if(k(e))for(var n=this.length,r=0;r<n;r++){var i=this[r];if(!1===(t?e.apply(t,[i,r,this]):e(i,r,this)))break}return this},toArray:function(){for(var e=[],t=0;t<this.length;t++)e.push(this[t]);return e},slice:function(e,t){var n=[],r=this.length;null==t&&(t=r),null==e&&(e=0),e<0&&(e=r+e),t<0&&(t=r+t);for(var i=e;i>=0&&i<t&&i<r;i++)n.push(this[i]);return this.spawn(n)},size:function(){return this.length},eq:function(e){return this[e]||this.spawn()},first:function(){return this[0]||this.spawn()},last:function(){return this[this.length-1]||this.spawn()},empty:function(){return 0===this.length},nonempty:function(){return!this.empty()},sort:function(e){if(!k(e))return this;var t=this.toArray().sort(e);return this.spawn(t)},sortByZIndex:function(){return this.sort(ah)},zDepth:function(){var e=this[0];if(e){var t=e._private;if("nodes"===t.group){var n=t.data.parent?e.parents().size():0;return e.isParent()?n:eJ-1}var r=t.source,i=t.target;return Math.max(r.zDepth(),i.zDepth(),0)}}};ac.each=ac.forEach,d="undefined",("undefined"==typeof Symbol?"undefined":e(Symbol))!=d&&e(Symbol.iterator)!=d&&(ac[Symbol.iterator]=function(){var e=this,t={value:void 0,done:!1},n=0,r=this.length;return a({next:function(){return n<r?t.value=e[n++]:(t.value=void 0,t.done=!0),t}},Symbol.iterator,function(){return this})});var ad=tt({nodeDimensionsIncludeLabels:!1}),ap={layoutDimensions:function(e){if(e=ad(e),this.takesUpSpace()){if(e.nodeDimensionsIncludeLabels){var t,n=this.boundingBox();t={w:n.w,h:n.h}}else t={w:this.outerWidth(),h:this.outerHeight()}}else t={w:0,h:0};return(0===t.w||0===t.h)&&(t.w=t.h=1),t},layoutPositions:function(e,t,n){var r=this.nodes().filter(function(e){return!e.isParent()}),i=this.cy(),a=t.eles,o=function(e){return e.id()},s=j(n,o);e.emit({type:"layoutstart",layout:e}),e.animations=[];var l=function(e,t,n){var r={x:t.x1+t.w/2,y:t.y1+t.h/2},i={x:(n.x-r.x)*e,y:(n.y-r.y)*e};return{x:r.x+i.x,y:r.y+i.y}},u=t.spacingFactor&&1!==t.spacingFactor,h=function(){if(!u)return null;for(var e=tz(),t=0;t<r.length;t++){var n=s(r[t],t);tX(e,n.x,n.y)}return e}(),c=j(function(e,n){var r=s(e,n);return u&&(r=l(Math.abs(t.spacingFactor),h,r)),null!=t.transform&&(r=t.transform(e,r)),r},o);if(t.animate){for(var d=0;d<r.length;d++){var p=r[d],g=c(p,d);if(null==t.animateFilter||t.animateFilter(p,d)){var f=p.animation({position:g,duration:t.animationDuration,easing:t.animationEasing});e.animations.push(f)}else p.position(g)}if(t.fit){var v=i.animation({fit:{boundingBox:a.boundingBoxAt(c),padding:t.padding},duration:t.animationDuration,easing:t.animationEasing});e.animations.push(v)}else if(void 0!==t.zoom&&void 0!==t.pan){var y=i.animation({zoom:t.zoom,pan:t.pan,duration:t.animationDuration,easing:t.animationEasing});e.animations.push(y)}e.animations.forEach(function(e){return e.play()}),e.one("layoutready",t.ready),e.emit({type:"layoutready",layout:e}),rf.all(e.animations.map(function(e){return e.promise()})).then(function(){e.one("layoutstop",t.stop),e.emit({type:"layoutstop",layout:e})})}else r.positions(c),t.fit&&i.fit(t.eles,t.padding),null!=t.zoom&&i.zoom(t.zoom),t.pan&&i.pan(t.pan),e.one("layoutready",t.ready),e.emit({type:"layoutready",layout:e}),e.one("layoutstop",t.stop),e.emit({type:"layoutstop",layout:e});return this},layout:function(e){return this.cy().makeLayout(en({},e,{eles:this}))}};function ag(e,t,n){var r,i=n._private,a=i.styleCache=i.styleCache||[];return null!=(r=a[e])?r:r=a[e]=t(n)}function af(e,t){return e=eq(e),function(n){return ag(e,t,n)}}function av(e,t){e=eq(e);var n=function(e){return t.call(e)};return function(){var t=this[0];if(t)return ag(e,n,t)}}ap.createLayout=ap.makeLayout=ap.layout;var ay={recalculateRenderedStyle:function(e){var t=this.cy(),n=t.renderer(),r=t.styleEnabled();return n&&r&&n.recalculateRenderedStyle(this,e),this},dirtyStyleCache:function(){var e,t=this.cy(),n=function(e){return e._private.styleCache=null};return t.hasCompoundNodes()?((e=this.spawnSelf().merge(this.descendants()).merge(this.parents())).merge(e.connectedEdges()),e.forEach(n)):this.forEach(function(e){n(e),e.connectedEdges().forEach(n)}),this},updateStyle:function(e){var t=this._private.cy;if(!t.styleEnabled())return this;if(t.batching())return t._private.batchStyleEles.merge(this),this;var n=t.hasCompoundNodes(),r=this;e=!!e||void 0===e,n&&(r=this.spawnSelf().merge(this.descendants()).merge(this.parents()));var i=r;return e?i.emitAndNotify("style"):i.emit("style"),r.forEach(function(e){return e._private.styleDirty=!0}),this},cleanStyle:function(){var e=this.cy();if(e.styleEnabled())for(var t=0;t<this.length;t++){var n=this[t];n._private.styleDirty&&(n._private.styleDirty=!1,e.style().apply(n))}},parsedStyle:function(e){var t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],n=this[0],r=n.cy();if(r.styleEnabled()&&n){this.cleanStyle();var i=n._private.style[e];return null!=i?i:t?r.style().getDefaultProperty(e):null}},numericStyle:function(e){var t=this[0];if(t.cy().styleEnabled()&&t){var n=t.pstyle(e);return void 0!==n.pfValue?n.pfValue:n.value}},numericStyleUnits:function(e){var t=this[0];if(t.cy().styleEnabled()&&t)return t.pstyle(e).units},renderedStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=this[0];if(n)return t.style().getRenderedStyle(n,e)},style:function(e,t){var n=this.cy();if(!n.styleEnabled())return this;var r=n.style();if(P(e))r.applyBypass(this,e,!1),this.emitAndNotify("style");else if(I(e)){if(void 0===t){var i=this[0];return i?r.getStylePropertyValue(i,e):void 0}r.applyBypass(this,e,t,!1),this.emitAndNotify("style")}else if(void 0===e){var a=this[0];return a?r.getRawStyle(a):void 0}return this},removeStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=t.style();if(void 0===e)for(var r=0;r<this.length;r++){var i=this[r];n.removeAllBypasses(i,!1)}else{e=e.split(/\s+/);for(var a=0;a<this.length;a++){var o=this[a];n.removeBypasses(o,e,!1)}}return this.emitAndNotify("style"),this},show:function(){return this.css("display","element"),this},hide:function(){return this.css("display","none"),this},effectiveOpacity:function(){var e=this.cy();if(!e.styleEnabled())return 1;var t=e.hasCompoundNodes(),n=this[0];if(n){var r=n._private,i=n.pstyle("opacity").value;if(!t)return i;var a=r.data.parent?n.parents():null;if(a)for(var o=0;o<a.length;o++)i*=a[o].pstyle("opacity").value;return i}},transparent:function(){if(!this.cy().styleEnabled())return!1;var e=this[0],t=e.cy().hasCompoundNodes();if(e)return t?0===e.effectiveOpacity():0===e.pstyle("opacity").value},backgrounding:function(){return!!this.cy().styleEnabled()&&!!this[0]._private.backgrounding}};function am(e,t){var n=e._private.data.parent?e.parents():null;if(n){for(var r=0;r<n.length;r++)if(!t(n[r]))return!1}return!0}function ab(e){var t=e.ok,n=e.edgeOkViaNode||e.ok,r=e.parentOk||e.ok;return function(){var e=this.cy();if(!e.styleEnabled())return!0;var i=this[0],a=e.hasCompoundNodes();if(i){var o=i._private;if(!t(i))return!1;if(i.isNode())return!a||am(i,r);var s=o.source,l=o.target;return n(s)&&(!a||am(s,n))&&(s===l||n(l)&&(!a||am(l,n)))}}}var ax=af("eleTakesUpSpace",function(e){return"element"===e.pstyle("display").value&&0!==e.width()&&(!e.isNode()||0!==e.height())});ay.takesUpSpace=av("takesUpSpace",ab({ok:ax}));var aw=af("eleInteractive",function(e){return"yes"===e.pstyle("events").value&&"visible"===e.pstyle("visibility").value&&ax(e)}),aE=af("parentInteractive",function(e){return"visible"===e.pstyle("visibility").value&&ax(e)});ay.interactive=av("interactive",ab({ok:aw,parentOk:aE,edgeOkViaNode:ax})),ay.noninteractive=function(){var e=this[0];if(e)return!e.interactive()};var aT=af("eleVisible",function(e){return"visible"===e.pstyle("visibility").value&&0!==e.pstyle("opacity").pfValue&&ax(e)});ay.visible=av("visible",ab({ok:aT,edgeOkViaNode:ax})),ay.hidden=function(){var e=this[0];if(e)return!e.visible()},ay.isBundledBezier=av("isBundledBezier",function(){return!!this.cy().styleEnabled()&&!this.removed()&&"bezier"===this.pstyle("curve-style").value&&this.takesUpSpace()}),ay.bypass=ay.css=ay.style,ay.renderedCss=ay.renderedStyle,ay.removeBypass=ay.removeCss=ay.removeStyle,ay.pstyle=ay.parsedStyle;var a_={};function aD(e){return function(){var t=arguments,n=[];if(2===t.length){var r=t[0],i=t[1];this.on(e.event,r,i)}else if(1===t.length&&k(t[0])){var a=t[0];this.on(e.event,a)}else if(0===t.length||1===t.length&&M(t[0])){for(var o=1===t.length?t[0]:null,s=0;s<this.length;s++){var l=this[s],u=!e.ableField||l._private[e.ableField],h=l._private[e.field]!=e.value;if(e.overrideAble){var c=e.overrideAble(l);if(void 0!==c&&(u=c,!c))return this}u&&(l._private[e.field]=e.value,h&&n.push(l))}var d=this.spawn(n);d.updateStyle(),d.emit(e.event),o&&d.emit(o)}return this}}function aC(e){a_[e.field]=function(){var t=this[0];if(t){if(e.overrideField){var n=e.overrideField(t);if(void 0!==n)return n}return t._private[e.field]}},a_[e.on]=aD({event:e.on,field:e.field,ableField:e.ableField,overrideAble:e.overrideAble,value:!0}),a_[e.off]=aD({event:e.off,field:e.field,ableField:e.ableField,overrideAble:e.overrideAble,value:!1})}aC({field:"locked",overrideField:function(e){return!!e.cy().autolock()||void 0},on:"lock",off:"unlock"}),aC({field:"grabbable",overrideField:function(e){return!(e.cy().autoungrabify()||e.pannable())&&void 0},on:"grabify",off:"ungrabify"}),aC({field:"selected",ableField:"selectable",overrideAble:function(e){return!e.cy().autounselectify()&&void 0},on:"select",off:"unselect"}),aC({field:"selectable",overrideField:function(e){return!e.cy().autounselectify()&&void 0},on:"selectify",off:"unselectify"}),a_.deselect=a_.unselect,a_.grabbed=function(){var e=this[0];if(e)return e._private.grabbed},aC({field:"active",on:"activate",off:"unactivate"}),aC({field:"pannable",on:"panify",off:"unpanify"}),a_.inactive=function(){var e=this[0];if(e)return!e._private.active};var aN={},aA=function(e){return function(t){for(var n=[],r=0;r<this.length;r++){var i=this[r];if(i.isNode()){for(var a=!1,o=i.connectedEdges(),s=0;s<o.length;s++){var l=o[s],u=l.source(),h=l.target();if(e.noIncomingEdges&&h===i&&u!==i||e.noOutgoingEdges&&u===i&&h!==i){a=!0;break}}a||n.push(i)}}return this.spawn(n,!0).filter(t)}},aL=function(e){return function(t){for(var n=[],r=0;r<this.length;r++){var i=this[r];if(i.isNode())for(var a=i.connectedEdges(),o=0;o<a.length;o++){var s=a[o],l=s.source(),u=s.target();e.outgoing&&l===i?(n.push(s),n.push(u)):e.incoming&&u===i&&(n.push(s),n.push(l))}}return this.spawn(n,!0).filter(t)}},aS=function(e){return function(t){for(var n=this,r=[],i={};;){var a=e.outgoing?n.outgoers():n.incomers();if(0===a.length)break;for(var o=!1,s=0;s<a.length;s++){var l=a[s],u=l.id();i[u]||(i[u]=!0,r.push(l),o=!0)}if(!o)break;n=a}return this.spawn(r,!0).filter(t)}};function aO(e){return function(t){for(var n=[],r=0;r<this.length;r++){var i=this[r]._private[e.attr];i&&n.push(i)}return this.spawn(n,!0).filter(t)}}function aI(e){return function(t){var n=[],r=this._private.cy,i=e||{};I(t)&&(t=r.$(t));for(var a=0;a<t.length;a++)for(var o=t[a]._private.edges,s=0;s<o.length;s++){var l=o[s],u=l._private.data,h=this.hasElementWithId(u.source)&&t.hasElementWithId(u.target),c=t.hasElementWithId(u.source)&&this.hasElementWithId(u.target);(h||c)&&(!i.thisIsSrc&&!i.thisIsTgt||(!i.thisIsSrc||h)&&(!i.thisIsTgt||c))&&n.push(l)}return this.spawn(n,!0)}}function ak(e){return e=en({},{codirected:!1},e),function(t){for(var n=[],r=this.edges(),i=e,a=0;a<r.length;a++)for(var o=r[a]._private,s=o.source,l=s._private.data.id,u=o.data.target,h=s._private.edges,c=0;c<h.length;c++){var d=h[c],p=d._private.data,g=p.target,f=p.source,v=g===u&&f===l,y=l===g&&u===f;(i.codirected&&v||!i.codirected&&(v||y))&&n.push(d)}return this.spawn(n,!0).filter(t)}}aN.clearTraversalCache=function(){for(var e=0;e<this.length;e++)this[e]._private.traversalCache=null},en(aN,{roots:aA({noIncomingEdges:!0}),leaves:aA({noOutgoingEdges:!0}),outgoers:iA(aL({outgoing:!0}),"outgoers"),successors:aS({outgoing:!0}),incomers:iA(aL({incoming:!0}),"incomers"),predecessors:aS({incoming:!0})}),en(aN,{neighborhood:iA(function(e){for(var t=[],n=this.nodes(),r=0;r<n.length;r++)for(var i=n[r],a=i.connectedEdges(),o=0;o<a.length;o++){var s=a[o],l=s.source(),u=s.target(),h=i===l?u:l;h.length>0&&t.push(h[0]),t.push(s[0])}return this.spawn(t,!0).filter(e)},"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}}),aN.neighbourhood=aN.neighborhood,aN.closedNeighbourhood=aN.closedNeighborhood,aN.openNeighbourhood=aN.openNeighborhood,en(aN,{source:iA(function(e){var t,n=this[0];return n&&(t=n._private.source||n.cy().collection()),t&&e?t.filter(e):t},"source"),target:iA(function(e){var t,n=this[0];return n&&(t=n._private.target||n.cy().collection()),t&&e?t.filter(e):t},"target"),sources:aO({attr:"source"}),targets:aO({attr:"target"})}),en(aN,{edgesWith:iA(aI(),"edgesWith"),edgesTo:iA(aI({thisIsSrc:!0}),"edgesTo")}),en(aN,{connectedEdges:iA(function(e){for(var t=[],n=0;n<this.length;n++){var r=this[n];if(r.isNode())for(var i=r._private.edges,a=0;a<i.length;a++){var o=i[a];t.push(o)}}return this.spawn(t,!0).filter(e)},"connectedEdges"),connectedNodes:iA(function(e){for(var t=[],n=0;n<this.length;n++){var r=this[n];r.isEdge()&&(t.push(r.source()[0]),t.push(r.target()[0]))}return this.spawn(t,!0).filter(e)},"connectedNodes"),parallelEdges:iA(ak(),"parallelEdges"),codirectedEdges:iA(ak({codirected:!0}),"codirectedEdges")}),en(aN,{components:function(e){var t=this,n=t.cy(),r=n.collection(),i=null==e?t.nodes():e.nodes(),a=[];null!=e&&i.empty()&&(i=e.sources());var o=function(e,t){r.merge(e),i.unmerge(e),t.merge(e)};if(i.empty())return t.spawn();do!function(){var e=n.collection();a.push(e);var r=i[0];o(r,e),t.bfs({directed:!1,roots:r,visit:function(t){return o(t,e)}}),e.forEach(function(n){n.connectedEdges().forEach(function(n){t.has(n)&&e.has(n.source())&&e.has(n.target())&&e.merge(n)})})}();while(i.length>0)return a},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}}),aN.componentsOf=aN.components;var aM=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0===e){e3("A collection must have a reference to the core");return}var i=new tl,a=!1;if(t){if(t.length>0&&P(t[0])&&!z(t[0])){a=!0;for(var o=[],s=new th,l=0,u=t.length;l<u;l++){var h=t[l];null==h.data&&(h.data={});var c=h.data;if(null==c.id)c.id=e8();else if(e.hasElementWithId(c.id)||s.has(c.id))continue;var d=new tc(e,h,!1);o.push(d),s.add(c.id)}t=o}}else t=[];this.length=0;for(var p=0,g=t.length;p<g;p++){var f=t[p][0];if(null!=f){var v=f._private.data.id;(!n||!i.has(v))&&(n&&i.set(v,{index:this.length,ele:f}),this[this.length]=f,this.length++)}}this._private={eles:this,cy:e,get map(){return null==this.lazyMap&&this.rebuildMap(),this.lazyMap},set map(m){this.lazyMap=m},rebuildMap:function(){for(var e=this.lazyMap=new tl,t=this.eles,n=0;n<t.length;n++){var r=t[n];e.set(r.id(),{index:n,ele:r})}}},n&&(this._private.map=i),a&&!r&&this.restore()},aP=tc.prototype=aM.prototype=Object.create(Array.prototype);aP.instanceString=function(){return"collection"},aP.spawn=function(e,t){return new aM(this.cy(),e,t)},aP.spawnSelf=function(){return this.spawn(this)},aP.cy=function(){return this._private.cy},aP.renderer=function(){return this._private.cy.renderer()},aP.element=function(){return this[0]},aP.collection=function(){return G(this)?this:new aM(this._private.cy,[this])},aP.unique=function(){return new aM(this._private.cy,this,!0)},aP.hasElementWithId=function(e){return e=""+e,this._private.map.has(e)},aP.getElementById=function(e){e=""+e;var t=this._private.cy,n=this._private.map.get(e);return n?n.ele:new aM(t)},aP.$id=aP.getElementById,aP.poolIndex=function(){var e=this._private.cy._private.elements,t=this[0]._private.data.id;return e._private.map.get(t).index},aP.indexOf=function(e){var t=e[0]._private.data.id;return this._private.map.get(t).index},aP.indexOfId=function(e){return e=""+e,this._private.map.get(e).index},aP.json=function(e){var t=this.element(),n=this.cy();if(null==t&&e)return this;if(null!=t){var r=t._private;if(P(e)){if(n.startBatch(),e.data){t.data(e.data);var i=r.data;if(t.isEdge()){var a=!1,o={},s=e.data.source,l=e.data.target;null!=s&&s!=i.source&&(o.source=""+s,a=!0),null!=l&&l!=i.target&&(o.target=""+l,a=!0),a&&(t=t.move(o))}else{var u="parent"in e.data,h=e.data.parent;u&&(null!=h||null!=i.parent)&&h!=i.parent&&(void 0===h&&(h=null),null!=h&&(h=""+h),t=t.move({parent:h}))}}e.position&&t.position(e.position);var c=function(n,i,a){var o=e[n];null!=o&&o!==r[n]&&(o?t[i]():t[a]())};return c("removed","remove","restore"),c("selected","select","unselect"),c("selectable","selectify","unselectify"),c("locked","lock","unlock"),c("grabbable","grabify","ungrabify"),c("pannable","panify","unpanify"),null!=e.classes&&t.classes(e.classes),n.endBatch(),this}if(void 0===e){var d={data:e6(r.data),position:e6(r.position),group:r.group,removed:r.removed,selected:r.selected,selectable:r.selectable,locked:r.locked,grabbable:r.grabbable,pannable:r.pannable,classes:null};d.classes="";var p=0;return r.classes.forEach(function(e){return d.classes+=0==p++?e:" "+e}),d}}},aP.jsons=function(){for(var e=[],t=0;t<this.length;t++){var n=this[t].json();e.push(n)}return e},aP.clone=function(){for(var e=this.cy(),t=[],n=0;n<this.length;n++){var r=new tc(e,this[n].json(),!1);t.push(r)}return new aM(e,t)},aP.copy=aP.clone,aP.restore=function(){for(var e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],n=this.cy(),r=n._private,i=[],a=[],o=0,s=this.length;o<s;o++){var l=this[o];(!t||l.removed())&&(l.isNode()?i.push(l):a.push(l))}O=i.concat(a);var u=function(){O.splice(k,1),k--};for(k=0;k<O.length;k++){var h=O[k],c=h._private,d=c.data;if(h.clearTraversalCache(),t||c.removed){if(void 0===d.id)d.id=e8();else if(R(d.id))d.id=""+d.id;else if(V(d.id)||!I(d.id)){e3("Can not create element with invalid string ID `"+d.id+"`"),u();continue}else if(n.hasElementWithId(d.id)){e3("Can not create second element with ID `"+d.id+"`"),u();continue}}var p=d.id;if(h.isNode()){var g=c.position;null==g.x&&(g.x=0),null==g.y&&(g.y=0)}if(h.isEdge()){for(var f=["source","target"],v=f.length,y=!1,b=0;b<v;b++){var x=f[b],w=d[x];R(w)&&(w=d[x]=""+d[x]),null==w||""===w?(e3("Can not create edge `"+p+"` with unspecified "+x),y=!0):n.hasElementWithId(w)||(e3("Can not create edge `"+p+"` with nonexistant "+x+" `"+w+"`"),y=!0)}if(y){u();continue}var E=n.getElementById(d.source),T=n.getElementById(d.target);E.same(T)?E._private.edges.push(h):(E._private.edges.push(h),T._private.edges.push(h)),h._private.source=E,h._private.target=T}c.map=new tl,c.map.set(p,{ele:h,index:0}),c.removed=!1,t&&n.addToPool(h)}for(var _=0;_<i.length;_++){var D=i[_],C=D._private.data;R(C.parent)&&(C.parent=""+C.parent);var N=C.parent;if(null!=N||D._private.parent){var A=D._private.parent?n.collection().merge(D._private.parent):n.getElementById(N);if(A.empty())C.parent=void 0;else if(A[0].removed())e9("Node added with missing parent, reference to parent removed"),C.parent=void 0,D._private.parent=null;else{for(var L=!1,S=A;!S.empty();){if(D.same(S)){L=!0,C.parent=void 0;break}S=S.parent()}L||(A[0]._private.children.push(D),D._private.parent=A[0],r.hasCompoundNodes=!0)}}}if(O.length>0){for(var O,k,M=O.length===this.length?this:new aM(n,O),P=0;P<M.length;P++){var B=M[P];B.isNode()||(B.parallelEdges().clearTraversalCache(),B.source().clearTraversalCache(),B.target().clearTraversalCache())}(r.hasCompoundNodes?n.collection().merge(M).merge(M.connectedNodes()).merge(M.parent()):M).dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(e),e?M.emitAndNotify("add"):t&&M.emit("add")}return this},aP.removed=function(){var e=this[0];return e&&e._private.removed},aP.inside=function(){var e=this[0];return e&&!e._private.removed},aP.remove=function(){for(var e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],n=[],r={},i=this._private.cy,a=0,o=this.length;a<o;a++)(function e(i){var a=r[i.id()];t&&i.removed()||a||(r[i.id()]=!0,i.isNode()?(n.push(i),function(t){for(var n=t._private.edges,r=0;r<n.length;r++)e(n[r])}(i),function(t){for(var n=t._private.children,r=0;r<n.length;r++)e(n[r])}(i)):n.unshift(i))})(this[a]);function s(e,t){tn(e._private.edges,t),e.clearTraversalCache()}var l=[];l.ids={},this.dirtyCompoundBoundsCache(),t&&i.removeFromPool(n);for(var u=0;u<n.length;u++){var h=n[u];if(h.isEdge()){var c=h.source()[0],d=h.target()[0];s(c,h),s(d,h);for(var p=h.parallelEdges(),g=0;g<p.length;g++){var f=p[g];(function(e){e.clearTraversalCache()})(f),f.isBundledBezier()&&f.dirtyBoundingBoxCache()}}else{var v=h.parent();0!==v.length&&function(e,t){t=t[0];var n=(e=e[0])._private.children,r=e.id();tn(n,t),t._private.parent=null,l.ids[r]||(l.ids[r]=!0,l.push(e))}(v,h)}t&&(h._private.removed=!0)}var y=i._private.elements;i._private.hasCompoundNodes=!1;for(var b=0;b<y.length;b++)if(y[b].isParent()){i._private.hasCompoundNodes=!0;break}var x=new aM(this.cy(),n);x.size()>0&&(e?x.emitAndNotify("remove"):t&&x.emit("remove"));for(var w=0;w<l.length;w++){var E=l[w];t&&E.removed()||E.updateStyle()}return x},aP.move=function(e){var t=this._private.cy,n=this,r=function(e){return null==e?e:""+e};if(void 0!==e.source||void 0!==e.target){var i=r(e.source),a=r(e.target),o=null!=i&&t.hasElementWithId(i),s=null!=a&&t.hasElementWithId(a);(o||s)&&(t.batch(function(){n.remove(!1,!1),n.emitAndNotify("moveout");for(var e=0;e<n.length;e++){var t=n[e],r=t._private.data;t.isEdge()&&(o&&(r.source=i),s&&(r.target=a))}n.restore(!1,!1)}),n.emitAndNotify("move"))}else if(void 0!==e.parent){var l=r(e.parent);if(null===l||t.hasElementWithId(l)){var u=null===l?void 0:l;t.batch(function(){var e=n.remove(!1,!1);e.emitAndNotify("moveout");for(var t=0;t<n.length;t++){var r=n[t],i=r._private.data;r.isNode()&&(i.parent=u)}e.restore(!1,!1)}),n.emitAndNotify("move")}}return this},[rl,io,is,iN,iL,g,iM,i5,al,au,{isNode:function(){return"nodes"===this.group()},isEdge:function(){return"edges"===this.group()},isLoop:function(){return this.isEdge()&&this.source()[0]===this.target()[0]},isSimple:function(){return this.isEdge()&&this.source()[0]!==this.target()[0]},group:function(){var e=this[0];if(e)return e._private.group}},ac,ap,ay,a_,aN].forEach(function(e){en(aP,e)});var aR=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,n,r){var i={x:t.x+r.dx*n,v:t.v+r.dv*n,tension:t.tension,friction:t.friction};return{dx:i.v,dv:e(i)}}return function n(r,i,a){var o,s,l,u,h,c,d,p,g,f,v={x:-1,v:0,tension:null,friction:null},y=[0],b=0;for(r=parseFloat(r)||500,i=parseFloat(i)||20,a=a||null,v.tension=r,v.friction=i,g=(p=null!==a)?(b=n(r,i))/a*.016:.016;s={dx:(o=f||v).v,dv:e(o)},l=t(o,.5*g,s),u=t(o,.5*g,l),h=t(o,g,u),c=1/6*(s.dx+2*(l.dx+u.dx)+h.dx),d=1/6*(s.dv+2*(l.dv+u.dv)+h.dv),o.x=o.x+c*g,o.v=o.v+d*g,f=o,y.push(1+f.x),b+=16,Math.abs(f.x)>1e-4&&Math.abs(f.v)>1e-4;);return p?function(e){return y[e*(y.length-1)|0]}:b}}(),aB=function(e,t,n,r){var i=function(e,t,n,r){var i="undefined"!=typeof Float32Array;if(4!=arguments.length)return!1;for(var a=0;a<4;++a)if("number"!=typeof arguments[a]||isNaN(arguments[a])||!isFinite(arguments[a]))return!1;e=Math.min(e,1),n=Math.min(n,1),e=Math.max(e,0),n=Math.max(n,0);var o=i?new Float32Array(11):Array(11);function s(e,t,n){return(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e}function l(e,t,n){return 3*(1-3*n+3*t)*e*e+2*(3*n-6*t)*e+3*t}var u=!1,h=function(i){return(u||(u=!0,(e!==t||n!==r)&&function(){for(var t=0;t<11;++t)o[t]=s(.1*t,e,n)}()),e===t&&n===r)?i:0===i?0:1===i?1:s(function(t){for(var r=0,i=1;10!==i&&o[i]<=t;++i)r+=.1;var a=r+(t-o[--i])/(o[i+1]-o[i])*.1,u=l(a,e,n);return u>=.001?function(t,r){for(var i=0;i<4;++i){var a=l(r,e,n);if(0===a)break;var o=s(r,e,n)-t;r-=o/a}return r}(t,a):0===u?a:function(t,r,i){var a,o,l=0;do(a=s(o=r+(i-r)/2,e,n)-t)>0?i=o:r=o;while(Math.abs(a)>1e-7&&++l<10)return o}(t,r,r+.1)}(i),t,r)};h.getControlPoints=function(){return[{x:e,y:t},{x:n,y:r}]};var c="generateBezier("+[e,t,n,r]+")";return h.toString=function(){return c},h}(e,t,n,r);return function(e,t,n){return e+(t-e)*i(n)}},aF={linear:function(e,t,n){return e+(t-e)*n},ease:aB(.25,.1,.25,1),"ease-in":aB(.42,0,1,1),"ease-out":aB(0,0,.58,1),"ease-in-out":aB(.42,0,.58,1),"ease-in-sine":aB(.47,0,.745,.715),"ease-out-sine":aB(.39,.575,.565,1),"ease-in-out-sine":aB(.445,.05,.55,.95),"ease-in-quad":aB(.55,.085,.68,.53),"ease-out-quad":aB(.25,.46,.45,.94),"ease-in-out-quad":aB(.455,.03,.515,.955),"ease-in-cubic":aB(.55,.055,.675,.19),"ease-out-cubic":aB(.215,.61,.355,1),"ease-in-out-cubic":aB(.645,.045,.355,1),"ease-in-quart":aB(.895,.03,.685,.22),"ease-out-quart":aB(.165,.84,.44,1),"ease-in-out-quart":aB(.77,0,.175,1),"ease-in-quint":aB(.755,.05,.855,.06),"ease-out-quint":aB(.23,1,.32,1),"ease-in-out-quint":aB(.86,0,.07,1),"ease-in-expo":aB(.95,.05,.795,.035),"ease-out-expo":aB(.19,1,.22,1),"ease-in-out-expo":aB(1,0,0,1),"ease-in-circ":aB(.6,.04,.98,.335),"ease-out-circ":aB(.075,.82,.165,1),"ease-in-out-circ":aB(.785,.135,.15,.86),spring:function(e,t,n){if(0===n)return aF.linear;var r=aR(e,t,n);return function(e,t,n){return e+(t-e)*r(n)}},"cubic-bezier":aB};function az(e,t,n,r,i){if(1===r||t===n)return n;var a=i(t,n,r);return null==e||((e.roundValue||e.color)&&(a=Math.round(a)),void 0!==e.min&&(a=Math.max(a,e.min)),void 0!==e.max&&(a=Math.min(a,e.max))),a}function aG(e,t){return null==e.pfValue&&null==e.value?e:null!=e.pfValue&&(null==t||"%"!==t.type.units)?e.pfValue:e.value}function aY(e,t,n,r,i){var a=null!=i?i.type:null;n<0?n=0:n>1&&(n=1);var o=aG(e,i),s=aG(t,i);if(R(o)&&R(s))return az(a,o,s,n,r);if(M(o)&&M(s)){for(var l=[],u=0;u<s.length;u++){var h=o[u],c=s[u];if(null!=h&&null!=c){var d=az(a,h,c,n,r);l.push(d)}else l.push(c)}return l}}function aX(e,t){return null!=e&&null!=t&&(!!(R(e)&&R(t))||!!e&&!!t)}function aV(e,t){var n=t._private.aniEles,r=[];function i(t,n){var i=t._private,a=i.animation.current,o=i.animation.queue,s=!1;if(0===a.length){var l=o.shift();l&&a.push(l)}for(var u=function(e){for(var t=e.length-1;t>=0;t--)(0,e[t])();e.splice(0,e.length)},h=a.length-1;h>=0;h--){var c=a[h],d=c._private;if(d.stopped){a.splice(h,1),d.hooked=!1,d.playing=!1,d.started=!1,u(d.frames);continue}(d.playing||d.applying)&&(d.playing&&d.applying&&(d.applying=!1),d.started||function(e,t,n,r){var i=t._private;i.started=!0,i.startTime=n-i.progress*i.duration}(0,c,e),function(e,t,n,r){var i,a,o,s,l=!r,u=e._private,h=t._private,c=h.easing,d=h.startTime,p=(r?e:e.cy()).style();h.easingImpl||(null==c?h.easingImpl=aF.linear:(i=I(c)?p.parse("transition-timing-function",c).value:c,I(i)?(a=i,o=[]):(a=i[1],o=i.slice(2).map(function(e){return+e})),o.length>0?("spring"===a&&o.push(h.duration),h.easingImpl=aF[a].apply(null,o)):h.easingImpl=aF[a]));var g=h.easingImpl;if(s=0===h.duration?1:(n-d)/h.duration,h.applying&&(s=h.progress),s<0?s=0:s>1&&(s=1),null==h.delay){var f=h.startPosition,v=h.position;if(v&&l&&!e.locked()){var y={};aX(f.x,v.x)&&(y.x=aY(f.x,v.x,s,g)),aX(f.y,v.y)&&(y.y=aY(f.y,v.y,s,g)),e.position(y)}var b=h.startPan,x=h.pan,w=u.pan,E=null!=x&&r;E&&(aX(b.x,x.x)&&(w.x=aY(b.x,x.x,s,g)),aX(b.y,x.y)&&(w.y=aY(b.y,x.y,s,g)),e.emit("pan"));var T=h.startZoom,_=h.zoom,D=null!=_&&r;D&&(aX(T,_)&&(u.zoom=tF(u.minZoom,aY(T,_,s,g),u.maxZoom)),e.emit("zoom")),(E||D)&&e.emit("viewport");var C=h.style;if(C&&C.length>0&&l){for(var N=0;N<C.length;N++){var A=C[N],L=A.name,S=h.startStyle[L],O=p.properties[S.name],k=aY(S,A,s,g,O);p.overrideBypass(e,L,k)}e.emit("style")}}h.progress=s}(t,c,e,n),d.applying&&(d.applying=!1),u(d.frames),null!=d.step&&d.step(e),c.completed()&&(a.splice(h,1),d.hooked=!1,d.playing=!1,d.started=!1,u(d.completes)),s=!0)}return n||0!==a.length||0!==o.length||r.push(t),s}for(var a=!1,o=0;o<n.length;o++){var s=i(n[o]);a=a||s}var l=i(t,!0);(a||l)&&(n.length>0?t.notify("draw",n):t.notify("draw")),n.unmerge(r),t.emit("step")}var aU={animate:ia.animate(),animation:ia.animation(),animated:ia.animated(),clearQueue:ia.clearQueue(),delay:ia.delay(),delayAnimation:ia.delayAnimation(),stop:ia.stop(),addToAnimationPool:function(e){this.styleEnabled()&&this._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,e.styleEnabled()){var t=e.renderer();t&&t.beforeRender?t.beforeRender(function(t,n){aV(n,e)},t.beforeRenderPriorities.animations):function t(){e._private.animationsRunning&&eG(function(n){aV(n,e),t()})}()}}},aj={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&z(n.target)&&r.matches(n.target)},addEventFields:function(e,t){t.cy=e,t.target=e},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e}},aH=function(e){return I(e)?new iD(e):e},aq={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new at(aj,this)),this},emitter:function(){return this._private.emitter},on:function(e,t,n){return this.emitter().on(e,aH(t),n),this},removeListener:function(e,t,n){return this.emitter().removeListener(e,aH(t),n),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,n){return this.emitter().one(e,aH(t),n),this},once:function(e,t,n){return this.emitter().one(e,aH(t),n),this},emit:function(e,t){return this.emitter().emit(e,t),this},emitAndNotify:function(e,t){return this.emit(e),this.notify(e,t),this}};ia.eventAliasesOn(aq);var aW={png:function(e){return e=e||{},this._private.renderer.png(e)},jpg:function(e){var t=this._private.renderer;return(e=e||{}).bg=e.bg||"#fff",t.jpg(e)}};aW.jpeg=aW.jpg;var a$={layout:function(e){if(null==e){e3("Layout options must be specified to make a layout");return}if(null==e.name){e3("A `name` must be specified to make a layout");return}var t,n=e.name,r=this.extension("layout",n);if(null==r){e3("No such layout `"+n+"` found. Did you forget to import it and `cytoscape.use()` it?");return}return t=I(e.eles)?this.$(e.eles):null!=e.eles?e.eles:this.$(),new r(en({},e,{cy:this,eles:t}))}};a$.createLayout=a$.makeLayout=a$.layout;var aK=tt({hideEdgesOnViewport:!1,textureOnViewport:!1,motionBlur:!1,motionBlurOpacity:.05,pixelRatio:void 0,desktopTapThreshold:4,touchTapThreshold:8,wheelSensitivity:1,debug:!1,showFps:!1}),aZ={renderTo:function(e,t,n,r){return this._private.renderer.renderTo(e,t,n,r),this},renderer:function(){return this._private.renderer},forceRender:function(){return this.notify("draw"),this},resize:function(){return this.invalidateSize(),this.emitAndNotify("resize"),this},initRenderer:function(e){var t=this.extension("renderer",e.name);if(null==t){e3("Can not initialise: No such renderer `".concat(e.name,"` found. Did you forget to import it and `cytoscape.use()` it?"));return}void 0!==e.wheelSensitivity&&e9("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.");var n=aK(e);n.cy=this,this._private.renderer=new t(n),this.notify("init")},destroyRenderer:function(){this.notify("destroy");var e=this.container();if(e)for(e._cyreg=null;e.childNodes.length>0;)e.removeChild(e.childNodes[0]);this._private.renderer=null,this.mutableElements().forEach(function(e){var t=e._private;t.rscratch={},t.rstyle={},t.animation.current=[],t.animation.queue=[]})},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};aZ.invalidateDimensions=aZ.resize;var aQ={collection:function(e,t){return I(e)?this.$(e):F(e)?e.collection():M(e)?(t||(t={}),new aM(this,e,t.unique,t.removed)):new aM(this)},nodes:function(e){var t=this.$(function(e){return e.isNode()});return e?t.filter(e):t},edges:function(e){var t=this.$(function(e){return e.isEdge()});return e?t.filter(e):t},$:function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},mutableElements:function(){return this._private.elements}};aQ.elements=aQ.filter=aQ.$;var aJ={};aJ.apply=function(e){for(var t=this._private.cy.collection(),n=0;n<e.length;n++){var r=e[n],i=this.getContextMeta(r);if(!i.empty){var a=this.getContextStyle(i),o=this.applyContextStyle(i,a,r);r._private.appliedInitStyle?this.updateTransitions(r,o.diffProps):r._private.appliedInitStyle=!0,this.updateStyleHints(r)&&t.push(r)}}return t},aJ.getPropertiesDiff=function(e,t){var n=this._private.propDiffs=this._private.propDiffs||{},r=e+"-"+t,i=n[r];if(i)return i;for(var a=[],o={},s=0;s<this.length;s++){var l=this[s],u="t"===e[s],h="t"===t[s],c=u!==h,d=l.mappedProperties.length>0;if(c||h&&d){var p=void 0;c&&d?p=l.properties:c?p=l.properties:d&&(p=l.mappedProperties);for(var g=0;g<p.length;g++){for(var f=p[g],v=f.name,y=!1,b=s+1;b<this.length;b++){var x=this[b];if("t"===t[b]&&(y=null!=x.properties[f.name]))break}o[v]||y||(o[v]=!0,a.push(v))}}}return n[r]=a,a},aJ.getContextMeta=function(e){for(var t,n="",r=e._private.styleCxtKey||"",i=0;i<this.length;i++){var a=this[i];a.selector&&a.selector.matches(e)?n+="t":n+="f"}return t=this.getPropertiesDiff(r,n),e._private.styleCxtKey=n,{key:n,diffPropNames:t,empty:0===t.length}},aJ.getContextStyle=function(e){var t=e.key,n=this._private.contextStyles=this._private.contextStyles||{};if(n[t])return n[t];for(var r={_private:{key:t}},i=0;i<this.length;i++){var a=this[i];if("t"===t[i])for(var o=0;o<a.properties.length;o++){var s=a.properties[o];r[s.name]=s}}return n[t]=r,r},aJ.applyContextStyle=function(e,t,n){for(var r=e.diffPropNames,i={},a=this.types,o=0;o<r.length;o++){var s=r[o],l=t[s],u=n.pstyle(s);if(!l){if(!u)continue;l=u.bypass?{name:s,deleteBypassed:!0}:{name:s,delete:!0}}if(u!==l){if(l.mapped===a.fn&&null!=u&&null!=u.mapping&&u.mapping.value===l.value){var h=u.mapping;if((h.fnValue=l.value(n))===h.prevFnValue)continue}var c=i[s]={prev:u};this.applyParsedProperty(n,l),c.next=n.pstyle(s),c.next&&c.next.bypass&&(c.next=c.next.bypassed)}}return{diffProps:i}},aJ.updateStyleHints=function(e){var t=e._private,n=this,r=n.propertyGroupNames,i=n.propertyGroupKeys,a=function(e,t,r){return n.getPropertiesHash(e,t,r)},o=t.styleKey;if(e.removed())return!1;var s="nodes"===t.group,l=e._private.style;r=Object.keys(l);for(var u=0;u<i.length;u++){var h=i[u];t.styleKeys[h]=[9261,5381]}for(var c=function(e,n){return t.styleKeys[n][0]=eX(e,t.styleKeys[n][0])},d=function(e,n){return t.styleKeys[n][1]=eV(e,t.styleKeys[n][1])},p=function(e,t){for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);c(r,t),d(r,t)}},g=0;g<r.length;g++){var f,v,y=r[g],b=l[y];if(null!=b){var x=this.properties[y],w=x.type,E=x.groupKey,T=void 0;null!=x.hashOverride?T=x.hashOverride(e,b):null!=b.pfValue&&(T=b.pfValue);var _=null==x.enums?b.value:null,D=null!=T,C=null!=_,N=D||C,A=b.units;w.number&&N&&!w.multiple?(c(v=-128<(f=D?T:_)&&f<128&&Math.floor(f)!==f?2e9-(1024*f|0):f,E),d(v,E),D||null==A||p(A,E)):p(b.strValue,E)}}for(var L=[9261,5381],S=0;S<i.length;S++){var O=i[S],I=t.styleKeys[O];L[0]=eX(I[0],L[0]),L[1]=eV(I[1],L[1])}t.styleKey=2097152*L[0]+L[1];var k=t.styleKeys;t.labelDimsKey=eU(k.labelDimensions);var M=a(e,["label"],k.labelDimensions);if(t.labelKey=eU(M),t.labelStyleKey=eU(ej(k.commonLabel,M)),!s){var P=a(e,["source-label"],k.labelDimensions);t.sourceLabelKey=eU(P),t.sourceLabelStyleKey=eU(ej(k.commonLabel,P));var R=a(e,["target-label"],k.labelDimensions);t.targetLabelKey=eU(R),t.targetLabelStyleKey=eU(ej(k.commonLabel,R))}if(s){var B=t.styleKeys,F=B.nodeBody,z=B.nodeBorder,G=B.backgroundImage,Y=B.compound,X=B.pie,V=[F,z,G,Y,X].filter(function(e){return null!=e}).reduce(ej,[9261,5381]);t.nodeKey=eU(V),t.hasPie=null!=X&&9261!==X[0]&&5381!==X[1]}return o!==t.styleKey},aJ.clearStyleHints=function(e){var t=e._private;t.styleCxtKey="",t.styleKeys={},t.styleKey=null,t.labelKey=null,t.labelStyleKey=null,t.sourceLabelKey=null,t.sourceLabelStyleKey=null,t.targetLabelKey=null,t.targetLabelStyleKey=null,t.nodeKey=null,t.hasPie=null},aJ.applyParsedProperty=function(e,t){var n=this,r=t,i=e._private.style,a=n.types,o=n.properties[r.name].type,s=r.bypass,l=i[r.name],u=l&&l.bypass,h=e._private,c="mapping",d=function(e){return null==e?null:null!=e.pfValue?e.pfValue:e.value},p=function(){var t=d(l),i=d(r);n.checkTriggers(e,r.name,t,i)};if(r&&"pie"===r.name.substr(0,3)&&e9("The pie style properties are deprecated. Create charts using background images instead."),"curve-style"===t.name&&e.isEdge()&&("bezier"!==t.value&&e.isLoop()||"haystack"===t.value&&(e.source().isParent()||e.target().isParent()))&&(r=t=this.parse(t.name,"bezier",s)),r.delete)return i[r.name]=void 0,p(),!0;if(r.deleteBypassed)return l?!!l.bypass&&(l.bypassed=void 0,p(),!0):(p(),!0);if(r.deleteBypass)return l?!!l.bypass&&(i[r.name]=l.bypassed,p(),!0):(p(),!0);var g=function(){e9("Do not assign mappings to elements without corresponding data (i.e. ele `"+e.id()+"` has no mapping for property `"+r.name+"` with data field `"+r.field+"`); try a `["+r.field+"]` selector to limit scope to elements with `"+r.field+"` defined")};switch(r.mapped){case a.mapData:for(var f,v,y=r.field.split("."),b=h.data,x=0;x<y.length&&b;x++)b=b[y[x]];if(null==b)return g(),!1;if(!R(b))return e9("Do not use continuous mappers without specifying numeric data (i.e. `"+r.field+": "+b+"` for `"+e.id()+"` is non-numeric)"),!1;var w=r.fieldMax-r.fieldMin;if((v=0===w?0:(b-r.fieldMin)/w)<0?v=0:v>1&&(v=1),o.color){var E=r.valueMin[0],T=r.valueMax[0],_=r.valueMin[1],D=r.valueMax[1],C=r.valueMin[2],N=r.valueMax[2],A=null==r.valueMin[3]?1:r.valueMin[3],L=[Math.round(E+(T-E)*v),Math.round(_+(D-_)*v),Math.round(C+(N-C)*v),Math.round(A+((null==r.valueMax[3]?1:r.valueMax[3])-A)*v)];f={bypass:r.bypass,name:r.name,value:L,strValue:"rgb("+L[0]+", "+L[1]+", "+L[2]+")"}}else{if(!o.number)return!1;var S=r.valueMin+(r.valueMax-r.valueMin)*v;f=this.parse(r.name,S,r.bypass,c)}if(!f)return g(),!1;f.mapping=r,r=f;break;case a.data:for(var O=r.field.split("."),I=h.data,k=0;k<O.length&&I;k++)I=I[O[k]];if(null!=I&&(f=this.parse(r.name,I,r.bypass,c)),!f)return g(),!1;f.mapping=r,r=f;break;case a.fn:var M=r.value,P=null!=r.fnValue?r.fnValue:M(e);if(r.prevFnValue=P,null==P)return e9("Custom function mappers may not return null (i.e. `"+r.name+"` for ele `"+e.id()+"` is null)"),!1;if(!(f=this.parse(r.name,P,r.bypass,c)))return e9("Custom function mappers may not return invalid values for the property type (i.e. `"+r.name+"` for ele `"+e.id()+"` is invalid)"),!1;f.mapping=e6(r),r=f;break;case void 0:break;default:return!1}return s?(u?r.bypassed=l.bypassed:r.bypassed=l,i[r.name]=r):u?l.bypassed=r:i[r.name]=r,p(),!0},aJ.cleanElements=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(this.clearStyleHints(r),r.dirtyCompoundBoundsCache(),r.dirtyBoundingBoxCache(),t)for(var i=r._private.style,a=Object.keys(i),o=0;o<a.length;o++){var s=a[o],l=i[s];null!=l&&(l.bypass?l.bypassed=null:i[s]=null)}else r._private.style={}}},aJ.update=function(){this._private.cy.mutableElements().updateStyle()},aJ.updateTransitions=function(e,t){var n=this,r=e._private,i=e.pstyle("transition-property").value,a=e.pstyle("transition-duration").pfValue,o=e.pstyle("transition-delay").pfValue;if(i.length>0&&a>0){for(var s={},l=!1,u=0;u<i.length;u++){var h=i[u],c=e.pstyle(h),d=t[h];if(d){var p=d.prev,g=null!=d.next?d.next:c,f=!1,v=void 0;p&&(R(p.pfValue)&&R(g.pfValue)?(f=g.pfValue-p.pfValue,v=p.pfValue+1e-6*f):R(p.value)&&R(g.value)?(f=g.value-p.value,v=p.value+1e-6*f):M(p.value)&&M(g.value)&&(f=p.value[0]!==g.value[0]||p.value[1]!==g.value[1]||p.value[2]!==g.value[2],v=p.strValue),f&&(s[h]=g.strValue,this.applyBypass(e,h,v),l=!0))}}if(!l)return;r.transitioning=!0,new rf(function(t){o>0?e.delayAnimation(o).play().promise().then(t):t()}).then(function(){return e.animation({style:s,duration:a,easing:e.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){n.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1})}else r.transitioning&&(this.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1)},aJ.checkTrigger=function(e,t,n,r,i,a){var o=this.properties[t],s=i(o);null!=s&&s(n,r)&&a(o)},aJ.checkZOrderTrigger=function(e,t,n,r){var i=this;this.checkTrigger(e,t,n,r,function(e){return e.triggersZOrder},function(){i._private.cy.notify("zorder",e)})},aJ.checkBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,function(e){return e.triggersBounds},function(i){e.dirtyCompoundBoundsCache(),e.dirtyBoundingBoxCache(),i.triggersBoundsOfParallelBeziers&&("curve-style"===t&&("bezier"===n||"bezier"===r)||"display"===t&&("none"===n||"none"===r))&&e.parallelEdges().forEach(function(e){e.isBundledBezier()&&e.dirtyBoundingBoxCache()})})},aJ.checkTriggers=function(e,t,n,r){e.dirtyStyleCache(),this.checkZOrderTrigger(e,t,n,r),this.checkBoundsTrigger(e,t,n,r)};var a0={};a0.applyBypass=function(e,t,n,r){var i=[];if("*"===t||"**"===t){if(void 0!==n)for(var a=0;a<this.properties.length;a++){var o=this.properties[a].name,s=this.parse(o,n,!0);s&&i.push(s)}}else if(I(t)){var l=this.parse(t,n,!0);l&&i.push(l)}else{if(!P(t))return!1;r=n;for(var u=Object.keys(t),h=0;h<u.length;h++){var c=u[h],d=t[c];if(void 0===d&&(d=t[q(c)]),void 0!==d){var p=this.parse(c,d,!0);p&&i.push(p)}}}if(0===i.length)return!1;for(var g=!1,f=0;f<e.length;f++){for(var v=e[f],y={},b=void 0,x=0;x<i.length;x++){var w=i[x];if(r){var E=v.pstyle(w.name);b=y[w.name]={prev:E}}g=this.applyParsedProperty(v,e6(w))||g,r&&(b.next=v.pstyle(w.name))}g&&this.updateStyleHints(v),r&&this.updateTransitions(v,y,!0)}return g},a0.overrideBypass=function(e,t,n){t=H(t);for(var r=0;r<e.length;r++){var i=e[r],a=i._private.style[t],o=this.properties[t].type,s=o.color,l=o.mutiple,u=a?null!=a.pfValue?a.pfValue:a.value:null;a&&a.bypass?(a.value=n,null!=a.pfValue&&(a.pfValue=n),s?a.strValue="rgb("+n.join(",")+")":l?a.strValue=n.join(" "):a.strValue=""+n,this.updateStyleHints(i)):this.applyBypass(i,t,n),this.checkTriggers(i,t,u,n)}},a0.removeAllBypasses=function(e,t){return this.removeBypasses(e,this.propertyNames,t)},a0.removeBypasses=function(e,t,n){for(var r=0;r<e.length;r++){for(var i=e[r],a={},o=0;o<t.length;o++){var s=t[o],l=this.properties[s],u=i.pstyle(l.name);if(u&&u.bypass){var h=this.parse(s,"",!0),c=a[l.name]={prev:u};this.applyParsedProperty(i,h),c.next=i.pstyle(l.name)}}this.updateStyleHints(i),n&&this.updateTransitions(i,a,!0)}};var a1={};a1.getEmSizeInPixels=function(){var e=this.containerCss("font-size");return null!=e?parseFloat(e):1},a1.containerCss=function(e){var t=this._private.cy.container();if(D&&t&&D.getComputedStyle)return D.getComputedStyle(t).getPropertyValue(e)};var a2={};a2.getRenderedStyle=function(e,t){return t?this.getStylePropertyValue(e,t,!0):this.getRawStyle(e,!0)},a2.getRawStyle=function(e,t){if(e=e[0]){for(var n={},r=0;r<this.properties.length;r++){var i=this.properties[r],a=this.getStylePropertyValue(e,i.name,t);null!=a&&(n[i.name]=a,n[q(i.name)]=a)}return n}},a2.getIndexedStyle=function(e,t,n,r){var i=e.pstyle(t)[n][r];return null!=i?i:e.cy().style().getDefaultProperty(t)[n][0]},a2.getStylePropertyValue=function(e,t,n){if(e=e[0]){var r=this.properties[t];r.alias&&(r=r.pointsTo);var i=r.type,a=e.pstyle(r.name);if(a){var o=a.value,s=a.units,l=a.strValue;if(n&&i.number&&null!=o&&R(o)){var u=e.cy().zoom(),h=function(e){return e*u},c=function(e,t){return h(e)+t},d=M(o);return(d?s.every(function(e){return null!=e}):null!=s)?d?o.map(function(e,t){return c(e,s[t])}).join(" "):c(o,s):d?o.map(function(e){return I(e)?e:""+h(e)}).join(" "):""+h(o)}if(null!=l)return l}return null}},a2.getAnimationStartStyle=function(e,t){for(var n={},r=0;r<t.length;r++){var i=t[r].name,a=e.pstyle(i);void 0!==a&&(a=P(a)?this.parse(i,a.strValue):this.parse(i,a)),a&&(n[i]=a)}return n},a2.getPropsList=function(e){var t=[],n=this.properties;if(e)for(var r=Object.keys(e),i=0;i<r.length;i++){var a=r[i],o=e[a],s=n[a]||n[H(a)],l=this.parse(s.name,o);l&&t.push(l)}return t},a2.getNonDefaultPropertiesHash=function(e,t,n){var r,i,a,o,s,l,u=n.slice();for(s=0;s<t.length;s++)if(r=t[s],null!=(i=e.pstyle(r,!1))){if(null!=i.pfValue)u[0]=eX(o,u[0]),u[1]=eV(o,u[1]);else for(l=0,a=i.strValue;l<a.length;l++)o=a.charCodeAt(l),u[0]=eX(o,u[0]),u[1]=eV(o,u[1])}return u},a2.getPropertiesHash=a2.getNonDefaultPropertiesHash;var a5={};a5.appendFromJson=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=n.selector,i=n.style||n.css,a=Object.keys(i);this.selector(r);for(var o=0;o<a.length;o++){var s=a[o],l=i[s];this.css(s,l)}}return this},a5.fromJson=function(e){return this.resetToDefault(),this.appendFromJson(e),this},a5.json=function(){for(var e=[],t=this.defaultLength;t<this.length;t++){for(var n=this[t],r=n.selector,i=n.properties,a={},o=0;o<i.length;o++){var s=i[o];a[s.name]=s.strValue}e.push({selector:r?r.toString():"core",style:a})}return e};var a3={};a3.appendFromString=function(e){var t,n,r,i=""+e;function a(){i=i.length>t.length?i.substr(t.length):""}function o(){n=n.length>r.length?n.substr(r.length):""}for(i=i.replace(/[/][*](\s|.)+?[*][/]/g,"");!i.match(/^\s*$/);){var s=i.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!s){e9("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+i);break}t=s[0];var l=s[1];if("core"!==l&&new iD(l).invalid){e9("Skipping parsing of block: Invalid selector found in string stylesheet: "+l),a();continue}var u=s[2],h=!1;n=u;for(var c=[];!n.match(/^\s*$/);){var d=n.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!d){e9("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+u),h=!0;break}r=d[0];var p=d[1],g=d[2];if(!this.properties[p]){e9("Skipping property: Invalid property name in: "+r),o();continue}if(!this.parse(p,g)){e9("Skipping property: Invalid property definition in: "+r),o();continue}c.push({name:p,val:g}),o()}if(h){a();break}this.selector(l);for(var f=0;f<c.length;f++){var v=c[f];this.css(v.name,v.val)}a()}return this},a3.fromString=function(e){return this.resetToDefault(),this.appendFromString(e),this};var a4={};(function(){var e=function(e){return"^"+e+"\\s*\\(\\s*([\\w\\.]+)\\s*\\)$"},t=function(e){var t=K+"|\\w+|"+Q+"|"+ee+"|\\#[0-9a-fA-F]{3}|\\#[0-9a-fA-F]{6}";return"^"+e+"\\s*\\(([\\w\\.]+)\\s*\\,\\s*("+K+")\\s*\\,\\s*("+K+")\\s*,\\s*("+t+")\\s*\\,\\s*("+t+")\\)$"},n=["^url\\s*\\(\\s*['\"]?(.+?)['\"]?\\s*\\)$","^(none)$","^(.+)$"];a4.types={time:{number:!0,min:0,units:"s|ms",implicitUnits:"ms"},percent:{number:!0,min:0,max:100,units:"%",implicitUnits:"%"},percentages:{number:!0,min:0,max:100,units:"%",implicitUnits:"%",multiple:!0},zeroOneNumber:{number:!0,min:0,max:1,unitless:!0},zeroOneNumbers:{number:!0,min:0,max:1,unitless:!0,multiple:!0},nOneOneNumber:{number:!0,min:-1,max:1,unitless:!0},nonNegativeInt:{number:!0,min:0,integer:!0,unitless:!0},position:{enums:["parent","origin"]},nodeSize:{number:!0,min:0,enums:["label"]},number:{number:!0,unitless:!0},numbers:{number:!0,unitless:!0,multiple:!0},positiveNumber:{number:!0,unitless:!0,min:0,strictMin:!0},size:{number:!0,min:0},bidirectionalSize:{number:!0},bidirectionalSizeMaybePercent:{number:!0,allowPercent:!0},bidirectionalSizes:{number:!0,multiple:!0},sizeMaybePercent:{number:!0,min:0,allowPercent:!0},axisDirection:{enums:["horizontal","leftward","rightward","vertical","upward","downward","auto"]},paddingRelativeTo:{enums:["width","height","average","min","max"]},bgWH:{number:!0,min:0,allowPercent:!0,enums:["auto"],multiple:!0},bgPos:{number:!0,allowPercent:!0,multiple:!0},bgRelativeTo:{enums:["inner","include-padding"],multiple:!0},bgRepeat:{enums:["repeat","repeat-x","repeat-y","no-repeat"],multiple:!0},bgFit:{enums:["none","contain","cover"],multiple:!0},bgCrossOrigin:{enums:["anonymous","use-credentials","null"],multiple:!0},bgClip:{enums:["none","node"],multiple:!0},bgContainment:{enums:["inside","over"],multiple:!0},color:{color:!0},colors:{color:!0,multiple:!0},fill:{enums:["solid","linear-gradient","radial-gradient"]},bool:{enums:["yes","no"]},bools:{enums:["yes","no"],multiple:!0},lineStyle:{enums:["solid","dotted","dashed"]},lineCap:{enums:["butt","round","square"]},borderStyle:{enums:["solid","dotted","dashed","double"]},curveStyle:{enums:["bezier","unbundled-bezier","haystack","segments","straight","straight-triangle","taxi"]},fontFamily:{regex:'^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'},fontStyle:{enums:["italic","normal","oblique"]},fontWeight:{enums:["normal","bold","bolder","lighter","100","200","300","400","500","600","800","900",100,200,300,400,500,600,700,800,900]},textDecoration:{enums:["none","underline","overline","line-through"]},textTransform:{enums:["none","uppercase","lowercase"]},textWrap:{enums:["none","wrap","ellipsis"]},textOverflowWrap:{enums:["whitespace","anywhere"]},textBackgroundShape:{enums:["rectangle","roundrectangle","round-rectangle"]},nodeShape:{enums:["rectangle","roundrectangle","round-rectangle","cutrectangle","cut-rectangle","bottomroundrectangle","bottom-round-rectangle","barrel","ellipse","triangle","round-triangle","square","pentagon","round-pentagon","hexagon","round-hexagon","concavehexagon","concave-hexagon","heptagon","round-heptagon","octagon","round-octagon","tag","round-tag","star","diamond","round-diamond","vee","rhomboid","right-rhomboid","polygon"]},overlayShape:{enums:["roundrectangle","round-rectangle","ellipse"]},compoundIncludeLabels:{enums:["include","exclude"]},arrowShape:{enums:["tee","triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","square","circle","diamond","chevron","none"]},arrowFill:{enums:["filled","hollow"]},display:{enums:["element","none"]},visibility:{enums:["hidden","visible"]},zCompoundDepth:{enums:["bottom","orphan","auto","top"]},zIndexCompare:{enums:["auto","manual"]},valign:{enums:["top","center","bottom"]},halign:{enums:["left","center","right"]},justification:{enums:["left","center","right","auto"]},text:{string:!0},data:{mapping:!0,regex:e("data")},layoutData:{mapping:!0,regex:e("layoutData")},scratch:{mapping:!0,regex:e("scratch")},mapData:{mapping:!0,regex:t("mapData")},mapLayoutData:{mapping:!0,regex:t("mapLayoutData")},mapScratch:{mapping:!0,regex:t("mapScratch")},fn:{mapping:!0,fn:!0},url:{regexes:n,singleRegexMatchValue:!0},urls:{regexes:n,singleRegexMatchValue:!0,multiple:!0},propList:{propList:!0},angle:{number:!0,units:"deg|rad",implicitUnits:"rad"},textRotation:{number:!0,units:"deg|rad",implicitUnits:"rad",enums:["none","autorotate"]},polygonPointList:{number:!0,multiple:!0,evenMultiple:!0,min:-1,max:1,unitless:!0},edgeDistances:{enums:["intersection","node-position"]},edgeEndpoint:{number:!0,multiple:!0,units:"%|px|em|deg|rad",implicitUnits:"px",enums:["inside-to-node","outside-to-node","outside-to-node-or-label","outside-to-line","outside-to-line-or-label"],singleEnum:!0,validate:function(e,t){switch(e.length){case 2:return"deg"!==t[0]&&"rad"!==t[0]&&"deg"!==t[1]&&"rad"!==t[1];case 1:return I(e[0])||"deg"===t[0]||"rad"===t[0];default:return!1}}},easing:{regexes:["^(spring)\\s*\\(\\s*("+K+")\\s*,\\s*("+K+")\\s*\\)$","^(cubic-bezier)\\s*\\(\\s*("+K+")\\s*,\\s*("+K+")\\s*,\\s*("+K+")\\s*,\\s*("+K+")\\s*\\)$"],enums:["linear","ease","ease-in","ease-out","ease-in-out","ease-in-sine","ease-out-sine","ease-in-out-sine","ease-in-quad","ease-out-quad","ease-in-out-quad","ease-in-cubic","ease-out-cubic","ease-in-out-cubic","ease-in-quart","ease-out-quart","ease-in-out-quart","ease-in-quint","ease-out-quint","ease-in-out-quint","ease-in-expo","ease-out-expo","ease-in-out-expo","ease-in-circ","ease-out-circ","ease-in-out-circ"]},gradientDirection:{enums:["to-bottom","to-top","to-left","to-right","to-bottom-right","to-bottom-left","to-top-right","to-top-left","to-right-bottom","to-left-bottom","to-right-top","to-left-top"]},boundsExpansion:{number:!0,multiple:!0,min:0,validate:function(e){var t=e.length;return 1===t||2===t||4===t}}};var r=function(e,t){return(null==e||null==t)&&e!==t||0==e&&0!=t||0!=e&&0==t},i=function(e,t){return e!=t},a=a4.types,o=[{name:"label",type:a.text,triggersBounds:i,triggersZOrder:function(e,t){var n=V(e),r=V(t);return n&&!r||!n&&r}},{name:"text-rotation",type:a.textRotation,triggersBounds:i},{name:"text-margin-x",type:a.bidirectionalSize,triggersBounds:i},{name:"text-margin-y",type:a.bidirectionalSize,triggersBounds:i}],s=[{name:"source-label",type:a.text,triggersBounds:i},{name:"source-text-rotation",type:a.textRotation,triggersBounds:i},{name:"source-text-margin-x",type:a.bidirectionalSize,triggersBounds:i},{name:"source-text-margin-y",type:a.bidirectionalSize,triggersBounds:i},{name:"source-text-offset",type:a.size,triggersBounds:i}],l=[{name:"target-label",type:a.text,triggersBounds:i},{name:"target-text-rotation",type:a.textRotation,triggersBounds:i},{name:"target-text-margin-x",type:a.bidirectionalSize,triggersBounds:i},{name:"target-text-margin-y",type:a.bidirectionalSize,triggersBounds:i},{name:"target-text-offset",type:a.size,triggersBounds:i}],u=[{name:"font-family",type:a.fontFamily,triggersBounds:i},{name:"font-style",type:a.fontStyle,triggersBounds:i},{name:"font-weight",type:a.fontWeight,triggersBounds:i},{name:"font-size",type:a.size,triggersBounds:i},{name:"text-transform",type:a.textTransform,triggersBounds:i},{name:"text-wrap",type:a.textWrap,triggersBounds:i},{name:"text-overflow-wrap",type:a.textOverflowWrap,triggersBounds:i},{name:"text-max-width",type:a.size,triggersBounds:i},{name:"text-outline-width",type:a.size,triggersBounds:i},{name:"line-height",type:a.positiveNumber,triggersBounds:i}],h=[{name:"text-valign",type:a.valign,triggersBounds:i},{name:"text-halign",type:a.halign,triggersBounds:i},{name:"color",type:a.color},{name:"text-outline-color",type:a.color},{name:"text-outline-opacity",type:a.zeroOneNumber},{name:"text-background-color",type:a.color},{name:"text-background-opacity",type:a.zeroOneNumber},{name:"text-background-padding",type:a.size,triggersBounds:i},{name:"text-border-opacity",type:a.zeroOneNumber},{name:"text-border-color",type:a.color},{name:"text-border-width",type:a.size,triggersBounds:i},{name:"text-border-style",type:a.borderStyle,triggersBounds:i},{name:"text-background-shape",type:a.textBackgroundShape,triggersBounds:i},{name:"text-justification",type:a.justification}],c=[{name:"events",type:a.bool},{name:"text-events",type:a.bool}],d=[{name:"display",type:a.display,triggersZOrder:i,triggersBounds:i,triggersBoundsOfParallelBeziers:!0},{name:"visibility",type:a.visibility,triggersZOrder:i},{name:"opacity",type:a.zeroOneNumber,triggersZOrder:r},{name:"text-opacity",type:a.zeroOneNumber},{name:"min-zoomed-font-size",type:a.size},{name:"z-compound-depth",type:a.zCompoundDepth,triggersZOrder:i},{name:"z-index-compare",type:a.zIndexCompare,triggersZOrder:i},{name:"z-index",type:a.nonNegativeInt,triggersZOrder:i}],p=[{name:"overlay-padding",type:a.size,triggersBounds:i},{name:"overlay-color",type:a.color},{name:"overlay-opacity",type:a.zeroOneNumber,triggersBounds:r},{name:"overlay-shape",type:a.overlayShape,triggersBounds:i}],g=[{name:"underlay-padding",type:a.size,triggersBounds:i},{name:"underlay-color",type:a.color},{name:"underlay-opacity",type:a.zeroOneNumber,triggersBounds:r},{name:"underlay-shape",type:a.overlayShape,triggersBounds:i}],f=[{name:"transition-property",type:a.propList},{name:"transition-duration",type:a.time},{name:"transition-delay",type:a.time},{name:"transition-timing-function",type:a.easing}],v=function(e,t){return"label"===t.value?-e.poolIndex():t.pfValue},y=[{name:"height",type:a.nodeSize,triggersBounds:i,hashOverride:v},{name:"width",type:a.nodeSize,triggersBounds:i,hashOverride:v},{name:"shape",type:a.nodeShape,triggersBounds:i},{name:"shape-polygon-points",type:a.polygonPointList,triggersBounds:i},{name:"background-color",type:a.color},{name:"background-fill",type:a.fill},{name:"background-opacity",type:a.zeroOneNumber},{name:"background-blacken",type:a.nOneOneNumber},{name:"background-gradient-stop-colors",type:a.colors},{name:"background-gradient-stop-positions",type:a.percentages},{name:"background-gradient-direction",type:a.gradientDirection},{name:"padding",type:a.sizeMaybePercent,triggersBounds:i},{name:"padding-relative-to",type:a.paddingRelativeTo,triggersBounds:i},{name:"bounds-expansion",type:a.boundsExpansion,triggersBounds:i}],b=[{name:"border-color",type:a.color},{name:"border-opacity",type:a.zeroOneNumber},{name:"border-width",type:a.size,triggersBounds:i},{name:"border-style",type:a.borderStyle}],x=[{name:"background-image",type:a.urls},{name:"background-image-crossorigin",type:a.bgCrossOrigin},{name:"background-image-opacity",type:a.zeroOneNumbers},{name:"background-image-containment",type:a.bgContainment},{name:"background-image-smoothing",type:a.bools},{name:"background-position-x",type:a.bgPos},{name:"background-position-y",type:a.bgPos},{name:"background-width-relative-to",type:a.bgRelativeTo},{name:"background-height-relative-to",type:a.bgRelativeTo},{name:"background-repeat",type:a.bgRepeat},{name:"background-fit",type:a.bgFit},{name:"background-clip",type:a.bgClip},{name:"background-width",type:a.bgWH},{name:"background-height",type:a.bgWH},{name:"background-offset-x",type:a.bgPos},{name:"background-offset-y",type:a.bgPos}],w=[{name:"position",type:a.position,triggersBounds:i},{name:"compound-sizing-wrt-labels",type:a.compoundIncludeLabels,triggersBounds:i},{name:"min-width",type:a.size,triggersBounds:i},{name:"min-width-bias-left",type:a.sizeMaybePercent,triggersBounds:i},{name:"min-width-bias-right",type:a.sizeMaybePercent,triggersBounds:i},{name:"min-height",type:a.size,triggersBounds:i},{name:"min-height-bias-top",type:a.sizeMaybePercent,triggersBounds:i},{name:"min-height-bias-bottom",type:a.sizeMaybePercent,triggersBounds:i}],E=[{name:"line-style",type:a.lineStyle},{name:"line-color",type:a.color},{name:"line-fill",type:a.fill},{name:"line-cap",type:a.lineCap},{name:"line-opacity",type:a.zeroOneNumber},{name:"line-dash-pattern",type:a.numbers},{name:"line-dash-offset",type:a.number},{name:"line-gradient-stop-colors",type:a.colors},{name:"line-gradient-stop-positions",type:a.percentages},{name:"curve-style",type:a.curveStyle,triggersBounds:i,triggersBoundsOfParallelBeziers:!0},{name:"haystack-radius",type:a.zeroOneNumber,triggersBounds:i},{name:"source-endpoint",type:a.edgeEndpoint,triggersBounds:i},{name:"target-endpoint",type:a.edgeEndpoint,triggersBounds:i},{name:"control-point-step-size",type:a.size,triggersBounds:i},{name:"control-point-distances",type:a.bidirectionalSizes,triggersBounds:i},{name:"control-point-weights",type:a.numbers,triggersBounds:i},{name:"segment-distances",type:a.bidirectionalSizes,triggersBounds:i},{name:"segment-weights",type:a.numbers,triggersBounds:i},{name:"taxi-turn",type:a.bidirectionalSizeMaybePercent,triggersBounds:i},{name:"taxi-turn-min-distance",type:a.size,triggersBounds:i},{name:"taxi-direction",type:a.axisDirection,triggersBounds:i},{name:"edge-distances",type:a.edgeDistances,triggersBounds:i},{name:"arrow-scale",type:a.positiveNumber,triggersBounds:i},{name:"loop-direction",type:a.angle,triggersBounds:i},{name:"loop-sweep",type:a.angle,triggersBounds:i},{name:"source-distance-from-node",type:a.size,triggersBounds:i},{name:"target-distance-from-node",type:a.size,triggersBounds:i}],T=[{name:"ghost",type:a.bool,triggersBounds:i},{name:"ghost-offset-x",type:a.bidirectionalSize,triggersBounds:i},{name:"ghost-offset-y",type:a.bidirectionalSize,triggersBounds:i},{name:"ghost-opacity",type:a.zeroOneNumber}],_=[{name:"selection-box-color",type:a.color},{name:"selection-box-opacity",type:a.zeroOneNumber},{name:"selection-box-border-color",type:a.color},{name:"selection-box-border-width",type:a.size},{name:"active-bg-color",type:a.color},{name:"active-bg-opacity",type:a.zeroOneNumber},{name:"active-bg-size",type:a.size},{name:"outside-texture-bg-color",type:a.color},{name:"outside-texture-bg-opacity",type:a.zeroOneNumber}],D=[];a4.pieBackgroundN=16,D.push({name:"pie-size",type:a.sizeMaybePercent});for(var C=1;C<=a4.pieBackgroundN;C++)D.push({name:"pie-"+C+"-background-color",type:a.color}),D.push({name:"pie-"+C+"-background-size",type:a.percent}),D.push({name:"pie-"+C+"-background-opacity",type:a.zeroOneNumber});var N=[],A=a4.arrowPrefixes=["source","mid-source","target","mid-target"];[{name:"arrow-shape",type:a.arrowShape,triggersBounds:i},{name:"arrow-color",type:a.color},{name:"arrow-fill",type:a.arrowFill}].forEach(function(e){A.forEach(function(t){var n=t+"-"+e.name,r=e.type,i=e.triggersBounds;N.push({name:n,type:r,triggersBounds:i})})},{});var L=a4.properties=[].concat(c,f,d,p,g,T,h,u,o,s,l,y,b,x,D,w,E,N,_),S=a4.propertyGroups={behavior:c,transition:f,visibility:d,overlay:p,underlay:g,ghost:T,commonLabel:h,labelDimensions:u,mainLabel:o,sourceLabel:s,targetLabel:l,nodeBody:y,nodeBorder:b,backgroundImage:x,pie:D,compound:w,edgeLine:E,edgeArrow:N,core:_},O=a4.propertyGroupNames={};(a4.propertyGroupKeys=Object.keys(S)).forEach(function(e){O[e]=S[e].map(function(e){return e.name}),S[e].forEach(function(t){return t.groupKey=e})});var k=a4.aliases=[{name:"content",pointsTo:"label"},{name:"control-point-distance",pointsTo:"control-point-distances"},{name:"control-point-weight",pointsTo:"control-point-weights"},{name:"edge-text-rotation",pointsTo:"text-rotation"},{name:"padding-left",pointsTo:"padding"},{name:"padding-right",pointsTo:"padding"},{name:"padding-top",pointsTo:"padding"},{name:"padding-bottom",pointsTo:"padding"}];a4.propertyNames=L.map(function(e){return e.name});for(var M=0;M<L.length;M++){var P=L[M];L[P.name]=P}for(var R=0;R<k.length;R++){var B=k[R],F=L[B.pointsTo],z={name:B.name,alias:!0,pointsTo:F};L.push(z),L[B.name]=z}})(),a4.getDefaultProperty=function(e){return this.getDefaultProperties()[e]},a4.getDefaultProperties=function(){var e=this._private;if(null!=e.defaultProperties)return e.defaultProperties;for(var t=en({"selection-box-color":"#ddd","selection-box-opacity":.65,"selection-box-border-color":"#aaa","selection-box-border-width":1,"active-bg-color":"black","active-bg-opacity":.15,"active-bg-size":30,"outside-texture-bg-color":"#000","outside-texture-bg-opacity":.125,events:"yes","text-events":"no","text-valign":"top","text-halign":"center","text-justification":"auto","line-height":1,color:"#000","text-outline-color":"#000","text-outline-width":0,"text-outline-opacity":1,"text-opacity":1,"text-decoration":"none","text-transform":"none","text-wrap":"none","text-overflow-wrap":"whitespace","text-max-width":9999,"text-background-color":"#000","text-background-opacity":0,"text-background-shape":"rectangle","text-background-padding":0,"text-border-opacity":0,"text-border-width":0,"text-border-style":"solid","text-border-color":"#000","font-family":"Helvetica Neue, Helvetica, sans-serif","font-style":"normal","font-weight":"normal","font-size":16,"min-zoomed-font-size":0,"text-rotation":"none","source-text-rotation":"none","target-text-rotation":"none",visibility:"visible",display:"element",opacity:1,"z-compound-depth":"auto","z-index-compare":"auto","z-index":0,label:"","text-margin-x":0,"text-margin-y":0,"source-label":"","source-text-offset":0,"source-text-margin-x":0,"source-text-margin-y":0,"target-label":"","target-text-offset":0,"target-text-margin-x":0,"target-text-margin-y":0,"overlay-opacity":0,"overlay-color":"#000","overlay-padding":10,"overlay-shape":"round-rectangle","underlay-opacity":0,"underlay-color":"#000","underlay-padding":10,"underlay-shape":"round-rectangle","transition-property":"none","transition-duration":0,"transition-delay":0,"transition-timing-function":"linear","background-blacken":0,"background-color":"#999","background-fill":"solid","background-opacity":1,"background-image":"none","background-image-crossorigin":"anonymous","background-image-opacity":1,"background-image-containment":"inside","background-image-smoothing":"yes","background-position-x":"50%","background-position-y":"50%","background-offset-x":0,"background-offset-y":0,"background-width-relative-to":"include-padding","background-height-relative-to":"include-padding","background-repeat":"no-repeat","background-fit":"none","background-clip":"node","background-width":"auto","background-height":"auto","border-color":"#000","border-opacity":1,"border-width":0,"border-style":"solid",height:30,width:30,shape:"ellipse","shape-polygon-points":"-1, -1, 1, -1, 1, 1, -1, 1","bounds-expansion":0,"background-gradient-direction":"to-bottom","background-gradient-stop-colors":"#999","background-gradient-stop-positions":"0%",ghost:"no","ghost-offset-y":0,"ghost-offset-x":0,"ghost-opacity":0,padding:0,"padding-relative-to":"width",position:"origin","compound-sizing-wrt-labels":"include","min-width":0,"min-width-bias-left":0,"min-width-bias-right":0,"min-height":0,"min-height-bias-top":0,"min-height-bias-bottom":0},{"pie-size":"100%"},[{name:"pie-{{i}}-background-color",value:"black"},{name:"pie-{{i}}-background-size",value:"0%"},{name:"pie-{{i}}-background-opacity",value:1}].reduce(function(e,t){for(var n=1;n<=a4.pieBackgroundN;n++){var r=t.name.replace("{{i}}",n),i=t.value;e[r]=i}return e},{}),{"line-style":"solid","line-color":"#999","line-fill":"solid","line-cap":"butt","line-opacity":1,"line-gradient-stop-colors":"#999","line-gradient-stop-positions":"0%","control-point-step-size":40,"control-point-weights":.5,"segment-weights":.5,"segment-distances":20,"taxi-turn":"50%","taxi-turn-min-distance":10,"taxi-direction":"auto","edge-distances":"intersection","curve-style":"haystack","haystack-radius":0,"arrow-scale":1,"loop-direction":"-45deg","loop-sweep":"-90deg","source-distance-from-node":0,"target-distance-from-node":0,"source-endpoint":"outside-to-node","target-endpoint":"outside-to-node","line-dash-pattern":[6,3],"line-dash-offset":0},[{name:"arrow-shape",value:"none"},{name:"arrow-color",value:"#999"},{name:"arrow-fill",value:"filled"}].reduce(function(e,t){return a4.arrowPrefixes.forEach(function(n){var r=n+"-"+t.name,i=t.value;e[r]=i}),e},{})),n={},r=0;r<this.properties.length;r++){var i=this.properties[r];if(!i.pointsTo){var a=i.name,o=t[a],s=this.parse(a,o);n[a]=s}}return e.defaultProperties=n,e.defaultProperties},a4.addDefaultStylesheet=function(){this.selector(":parent").css({shape:"rectangle",padding:10,"background-color":"#eee","border-color":"#ccc","border-width":1}).selector("edge").css({width:3}).selector(":loop").css({"curve-style":"bezier"}).selector("edge:compound").css({"curve-style":"bezier","source-endpoint":"outside-to-line","target-endpoint":"outside-to-line"}).selector(":selected").css({"background-color":"#0169D9","line-color":"#0169D9","source-arrow-color":"#0169D9","target-arrow-color":"#0169D9","mid-source-arrow-color":"#0169D9","mid-target-arrow-color":"#0169D9"}).selector(":parent:selected").css({"background-color":"#CCE1F9","border-color":"#aec8e5"}).selector(":active").css({"overlay-color":"black","overlay-padding":10,"overlay-opacity":.25}),this.defaultLength=this.length};var a9={};a9.parse=function(e,t,n,r){if(k(t))return this.parseImplWarn(e,t,n,r);var i,a=eW(e,""+t,n?"t":"f","mapping"===r||!0===r||!1===r||null==r?"dontcare":r),o=this.propCache=this.propCache||[];return(i=o[a])||(i=o[a]=this.parseImplWarn(e,t,n,r)),(n||"mapping"===r)&&(i=e6(i))&&(i.value=e6(i.value)),i},a9.parseImplWarn=function(e,t,n,r){var i=this.parseImpl(e,t,n,r);return i||null==t||e9("The style property `".concat(e,": ").concat(t,"` is invalid")),i&&("width"===i.name||"height"===i.name)&&"label"===t&&e9("The style value of `label` is deprecated for `"+i.name+"`"),i},a9.parseImpl=function(e,t,n,r){e=H(e);var i=this.properties[e],a=t,o=this.types;if(!i||void 0===t)return null;i.alias&&(e=(i=i.pointsTo).name);var s=I(t);s&&(t=t.trim());var l=i.type;if(!l)return null;if(n&&(""===t||null===t))return{name:e,value:t,bypass:!0,deleteBypass:!0};if(k(t))return{name:e,value:t,strValue:"fn",mapped:o.fn,bypass:n};if(!s||r||t.length<7||"a"!==t[1]);else if(t.length>=7&&"d"===t[0]&&(f=new RegExp(o.data.regex).exec(t))){if(n)return!1;var u=o.data;return{name:e,value:f,strValue:""+t,mapped:u,field:f[1],bypass:n}}else if(t.length>=10&&"m"===t[0]&&(v=new RegExp(o.mapData.regex).exec(t))){if(n||l.multiple)return!1;var h=o.mapData;if(!(l.color||l.number))return!1;var c=this.parse(e,v[4]);if(!c||c.mapped)return!1;var d=this.parse(e,v[5]);if(!d||d.mapped)return!1;if(c.pfValue===d.pfValue||c.strValue===d.strValue)return e9("`"+e+": "+t+"` is not a valid mapper because the output range is zero; converting to `"+e+": "+c.strValue+"`"),this.parse(e,c.strValue);if(l.color){var p=c.value,g=d.value;if(p[0]===g[0]&&p[1]===g[1]&&p[2]===g[2]&&(p[3]===g[3]||(null==p[3]||1===p[3])&&(null==g[3]||1===g[3])))return!1}return{name:e,value:v,strValue:""+t,mapped:h,field:v[1],fieldMin:parseFloat(v[2]),fieldMax:parseFloat(v[3]),valueMin:c.value,valueMax:d.value,bypass:n}}if(l.multiple&&"multiple"!==r){if(y=s?t.split(/\s+/):M(t)?t:[t],l.evenMultiple&&y.length%2!=0)return null;for(var f,v,y,b=[],x=[],w=[],E="",T=!1,_=0;_<y.length;_++){var D=this.parse(e,y[_],n,"multiple");T=T||I(D.value),b.push(D.value),w.push(null!=D.pfValue?D.pfValue:D.value),x.push(D.units),E+=(_>0?" ":"")+D.strValue}return l.validate&&!l.validate(b,x)?null:l.singleEnum&&T?1===b.length&&I(b[0])?{name:e,value:b[0],strValue:b[0],bypass:n}:null:{name:e,value:b,pfValue:w,strValue:E,bypass:n,units:x}}var C=function(){for(var r=0;r<l.enums.length;r++)if(l.enums[r]===t)return{name:e,value:t,strValue:""+t,bypass:n};return null};if(l.number){var N,A,L="px";if(l.units&&(A=l.units),l.implicitUnits&&(L=l.implicitUnits),!l.unitless){if(s){var S="px|em"+(l.allowPercent?"|\\%":"");A&&(S=A);var O=t.match("^("+K+")("+S+")?$");O&&(t=O[1],A=O[2]||L)}else(!A||l.implicitUnits)&&(A=L)}if(isNaN(t=parseFloat(t))&&void 0===l.enums)return null;if(isNaN(t)&&void 0!==l.enums)return t=a,C();if(l.integer&&!(R(N=t)&&Math.floor(N)===N)||void 0!==l.min&&(t<l.min||l.strictMin&&t===l.min)||void 0!==l.max&&(t>l.max||l.strictMax&&t===l.max))return null;var P={name:e,value:t,strValue:""+t+(A||""),units:A,bypass:n};return l.unitless||"px"!==A&&"em"!==A?P.pfValue=t:P.pfValue="px"!==A&&A?this.getEmSizeInPixels()*t:t,("ms"===A||"s"===A)&&(P.pfValue="ms"===A?t:1e3*t),("deg"===A||"rad"===A)&&(P.pfValue="rad"===A?t:Math.PI*t/180),"%"===A&&(P.pfValue=t/100),P}if(l.propList){var B=[],F=""+t;if("none"===F);else{for(var z=F.split(/\s*,\s*|\s+/),G=0;G<z.length;G++){var Y=z[G].trim();this.properties[Y]?B.push(Y):e9("`"+Y+"` is not a valid property name")}if(0===B.length)return null}return{name:e,value:B,strValue:0===B.length?"none":B.join(" "),bypass:n}}if(l.color){var X,V=(M(X=t)?X:null)||eo[X.toLowerCase()]||er(X)||ea(X)||ei(X);return V?{name:e,value:V,pfValue:V,strValue:"rgb("+V[0]+","+V[1]+","+V[2]+")",bypass:n}:null}if(l.regex||l.regexes){if(l.enums){var U=C();if(U)return U}for(var j=l.regexes?l.regexes:[l.regex],q=0;q<j.length;q++){var W=new RegExp(j[q]).exec(t);if(W)return{name:e,value:l.singleRegexMatchValue?W[1]:W,strValue:""+t,bypass:n}}return null}return l.string?{name:e,value:""+t,strValue:""+t,bypass:n}:l.enums?C():null};var a6=function e(t){if(!(this instanceof e))return new e(t);if(!Y(t)){e3("A style must have a core reference");return}this._private={cy:t,coreStyle:{}},this.length=0,this.resetToDefault()},a8=a6.prototype;a8.instanceString=function(){return"style"},a8.clear=function(){for(var e=this._private,t=e.cy.elements(),n=0;n<this.length;n++)this[n]=void 0;return this.length=0,e.contextStyles={},e.propDiffs={},this.cleanElements(t,!0),t.forEach(function(e){var t=e[0]._private;t.styleDirty=!0,t.appliedInitStyle=!1}),this},a8.resetToDefault=function(){return this.clear(),this.addDefaultStylesheet(),this},a8.core=function(e){return this._private.coreStyle[e]||this.getDefaultProperty(e)},a8.selector=function(e){var t="core"===e?null:new iD(e),n=this.length++;return this[n]={selector:t,properties:[],mappedProperties:[],index:n},this},a8.css=function(){var e=arguments;if(1===e.length)for(var t=e[0],n=0;n<this.properties.length;n++){var r=this.properties[n],i=t[r.name];void 0===i&&(i=t[q(r.name)]),void 0!==i&&this.cssRule(r.name,i)}else 2===e.length&&this.cssRule(e[0],e[1]);return this},a8.style=a8.css,a8.cssRule=function(e,t){var n=this.parse(e,t);if(n){var r=this.length-1;this[r].properties.push(n),this[r].properties[n.name]=n,n.name.match(/pie-(\d+)-background-size/)&&n.value&&(this._private.hasPie=!0),n.mapped&&this[r].mappedProperties.push(n),this[r].selector||(this._private.coreStyle[n.name]=n)}return this},a8.append=function(e){return X(e)?e.appendToStyle(this):M(e)?this.appendFromJson(e):I(e)&&this.appendFromString(e),this},a6.fromJson=function(e,t){var n=new a6(e);return n.fromJson(t),n},a6.fromString=function(e,t){return new a6(e).fromString(t)},[aJ,a0,a1,a2,a5,a3,a4,a9].forEach(function(e){en(a8,e)}),a6.types=a8.types,a6.properties=a8.properties,a6.propertyGroups=a8.propertyGroups,a6.propertyGroupNames=a8.propertyGroupNames,a6.propertyGroupKeys=a8.propertyGroupKeys;var a7={autolock:function(e){return void 0===e?this._private.autolock:(this._private.autolock=!!e,this)},autoungrabify:function(e){return void 0===e?this._private.autoungrabify:(this._private.autoungrabify=!!e,this)},autounselectify:function(e){return void 0===e?this._private.autounselectify:(this._private.autounselectify=!!e,this)},selectionType:function(e){var t=this._private;return(null==t.selectionType&&(t.selectionType="single"),void 0===e)?t.selectionType:(("additive"===e||"single"===e)&&(t.selectionType=e),this)},panningEnabled:function(e){return void 0===e?this._private.panningEnabled:(this._private.panningEnabled=!!e,this)},userPanningEnabled:function(e){return void 0===e?this._private.userPanningEnabled:(this._private.userPanningEnabled=!!e,this)},zoomingEnabled:function(e){return void 0===e?this._private.zoomingEnabled:(this._private.zoomingEnabled=!!e,this)},userZoomingEnabled:function(e){return void 0===e?this._private.userZoomingEnabled:(this._private.userZoomingEnabled=!!e,this)},boxSelectionEnabled:function(e){return void 0===e?this._private.boxSelectionEnabled:(this._private.boxSelectionEnabled=!!e,this)},pan:function(){var e,t,n,r,i,a=arguments,o=this._private.pan;switch(a.length){case 0:return o;case 1:if(I(a[0]))return o[e=a[0]];if(P(a[0])){if(!this._private.panningEnabled)return this;r=(n=a[0]).x,i=n.y,R(r)&&(o.x=r),R(i)&&(o.y=i),this.emit("pan viewport")}break;case 2:if(!this._private.panningEnabled)return this;e=a[0],t=a[1],("x"===e||"y"===e)&&R(t)&&(o[e]=t),this.emit("pan viewport")}return this.notify("viewport"),this},panBy:function(e,t){var n,r,i,a=arguments,o=this._private.pan;if(!this._private.panningEnabled)return this;switch(a.length){case 1:P(e)&&(r=(n=a[0]).x,i=n.y,R(r)&&(o.x+=r),R(i)&&(o.y+=i),this.emit("pan viewport"));break;case 2:("x"===e||"y"===e)&&R(t)&&(o[e]+=t),this.emit("pan viewport")}return this.notify("viewport"),this},fit:function(e,t){var n=this.getFitViewport(e,t);if(n){var r=this._private;r.zoom=n.zoom,r.pan=n.pan,this.emit("pan zoom viewport"),this.notify("viewport")}return this},getFitViewport:function(e,t){if(R(e)&&void 0===t&&(t=e,e=void 0),this._private.panningEnabled&&this._private.zoomingEnabled){if(I(e)){var n,r,i,a=e;e=this.$(a)}else if(P(n=e)&&R(n.x1)&&R(n.x2)&&R(n.y1)&&R(n.y2)){var o=e;(r={x1:o.x1,y1:o.y1,x2:o.x2,y2:o.y2}).w=r.x2-r.x1,r.h=r.y2-r.y1}else F(e)||(e=this.mutableElements());if(!(F(e)&&e.empty())){r=r||e.boundingBox();var s=this.width(),l=this.height();if(t=R(t)?t:0,!isNaN(s)&&!isNaN(l)&&s>0&&l>0&&!isNaN(r.w)&&!isNaN(r.h)&&r.w>0&&r.h>0){i=(i=(i=Math.min((s-2*t)/r.w,(l-2*t)/r.h))>this._private.maxZoom?this._private.maxZoom:i)<this._private.minZoom?this._private.minZoom:i;var u={x:(s-i*(r.x1+r.x2))/2,y:(l-i*(r.y1+r.y2))/2};return{zoom:i,pan:u}}}}},zoomRange:function(e,t){var n=this._private;if(null==t){var r=e;e=r.min,t=r.max}return R(e)&&R(t)&&e<=t?(n.minZoom=e,n.maxZoom=t):R(e)&&void 0===t&&e<=n.maxZoom?n.minZoom=e:R(t)&&void 0===e&&t>=n.minZoom&&(n.maxZoom=t),this},minZoom:function(e){return void 0===e?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return void 0===e?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var t,n,r=this._private,i=r.pan,a=r.zoom,o=!1;if(r.zoomingEnabled||(o=!0),R(e)?n=e:P(e)&&(n=e.level,null!=e.position?t=tE(e.position,a,i):null!=e.renderedPosition&&(t=e.renderedPosition),null==t||r.panningEnabled||(o=!0)),n=(n=n>r.maxZoom?r.maxZoom:n)<r.minZoom?r.minZoom:n,o||!R(n)||n===a||null!=t&&(!R(t.x)||!R(t.y)))return null;if(null==t)return{zoomed:!0,panned:!1,zoom:n,pan:i};var s=n,l={x:-s/a*(t.x-i.x)+t.x,y:-s/a*(t.y-i.y)+t.y};return{zoomed:!0,panned:!0,zoom:s,pan:l}},zoom:function(e){if(void 0===e)return this._private.zoom;var t=this.getZoomedViewport(e),n=this._private;return null!=t&&t.zoomed&&(n.zoom=t.zoom,t.panned&&(n.pan.x=t.pan.x,n.pan.y=t.pan.y),this.emit("zoom"+(t.panned?" pan":"")+" viewport"),this.notify("viewport")),this},viewport:function(e){var t=this._private,n=!0,r=!0,i=[],a=!1,o=!1;if(!e||(R(e.zoom)||(n=!1),P(e.pan)||(r=!1),!n&&!r))return this;if(n){var s=e.zoom;s<t.minZoom||s>t.maxZoom||!t.zoomingEnabled?a=!0:(t.zoom=s,i.push("zoom"))}if(r&&(!a||!e.cancelOnFailedZoom)&&t.panningEnabled){var l=e.pan;R(l.x)&&(t.pan.x=l.x,o=!1),R(l.y)&&(t.pan.y=l.y,o=!1),o||i.push("pan")}return i.length>0&&(i.push("viewport"),this.emit(i.join(" ")),this.notify("viewport")),this},center:function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,t){if(this._private.panningEnabled){if(I(e)){var n=e;e=this.mutableElements().filter(n)}else F(e)||(e=this.mutableElements());if(0!==e.length){var r=e.boundingBox(),i=this.width(),a=this.height();return{x:(i-(t=void 0===t?this._private.zoom:t)*(r.x1+r.x2))/2,y:(a-t*(r.y1+r.y2))/2}}}},reset:function(){return this._private.panningEnabled&&this._private.zoomingEnabled&&this.viewport({pan:{x:0,y:0},zoom:1}),this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e,t,n=this._private,r=n.container;return n.sizeCache=n.sizeCache||(r?(e=D.getComputedStyle(r),t=function(t){return parseFloat(e.getPropertyValue(t))},{width:r.clientWidth-t("padding-left")-t("padding-right"),height:r.clientHeight-t("padding-top")-t("padding-bottom")}):{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,t=this._private.zoom,n=this.renderedExtent(),r={x1:(n.x1-e.x)/t,x2:(n.x2-e.x)/t,y1:(n.y1-e.y)/t,y2:(n.y2-e.y)/t};return r.w=r.x2-r.x1,r.h=r.y2-r.y1,r},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},multiClickDebounceTime:function(e){return e?(this._private.multiClickDebounceTime=e,this):this._private.multiClickDebounceTime}};a7.centre=a7.center,a7.autolockNodes=a7.autolock,a7.autoungrabifyNodes=a7.autoungrabify;var oe={data:ia.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:ia.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:ia.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:ia.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};oe.attr=oe.data,oe.removeAttr=oe.removeData;var ot=function(e){var t=this,n=(e=en({},e)).container;n&&!B(n)&&B(n[0])&&(n=n[0]);var r=n?n._cyreg:null;(r=r||{}).cy&&(r.cy.destroy(),r={});var i=r.readies=r.readies||[];n&&(n._cyreg=r),r.cy=t;var a=void 0!==D&&void 0!==n&&!e.headless,o=e;o.layout=en({name:a?"grid":"null"},o.layout),o.renderer=en({name:a?"canvas":"null"},o.renderer);var s=function(e,t,n){return void 0!==t?t:void 0!==n?n:e},l=this._private={container:n,ready:!1,options:o,elements:new aM(this),listeners:[],aniEles:new aM(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:s(!0,o.zoomingEnabled),userZoomingEnabled:s(!0,o.userZoomingEnabled),panningEnabled:s(!0,o.panningEnabled),userPanningEnabled:s(!0,o.userPanningEnabled),boxSelectionEnabled:s(!0,o.boxSelectionEnabled),autolock:s(!1,o.autolock,o.autolockNodes),autoungrabify:s(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:s(!1,o.autounselectify),styleEnabled:void 0===o.styleEnabled?a:o.styleEnabled,zoom:R(o.zoom)?o.zoom:1,pan:{x:P(o.pan)&&R(o.pan.x)?o.pan.x:0,y:P(o.pan)&&R(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:s(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom}),l.styleEnabled&&t.setStyle([]);var u=en({},o,o.renderer);t.initRenderer(u);var h=function(e,n,r){t.notifications(!1);var i=t.mutableElements();i.length>0&&i.remove(),null!=e&&(P(e)||M(e))&&t.add(e),t.one("layoutready",function(e){t.notifications(!0),t.emit(e),t.one("load",n),t.emitAndNotify("load")}).one("layoutstop",function(){t.one("done",r),t.emit("done")});var a=en({},t._private.options.layout);a.eles=t.elements(),t.layout(a).run()};!function(e,t){if(e.some(U))return rf.all(e).then(t);t(e)}([o.style,o.elements],function(e){var n=e[0],a=e[1];l.styleEnabled&&t.style().append(n),h(a,function(){t.startAnimationLoop(),l.ready=!0,k(o.ready)&&t.on("ready",o.ready);for(var e=0;e<i.length;e++){var n=i[e];t.on("ready",n)}r&&(r.readies=[]),t.emit("ready")},o.done)})},on=ot.prototype;en(on,{instanceString:function(){return"core"},isReady:function(){return this._private.ready},destroyed:function(){return this._private.destroyed},ready:function(e){return this.isReady()?this.emitter().emit("ready",[],e):this.on("ready",e),this},destroy:function(){if(!this.destroyed())return this.stopAnimationLoop(),this.destroyRenderer(),this.emit("destroy"),this._private.destroyed=!0,this},hasElementWithId:function(e){return this._private.elements.hasElementWithId(e)},getElementById:function(e){return this._private.elements.getElementById(e)},hasCompoundNodes:function(){return this._private.hasCompoundNodes},headless:function(){return this._private.renderer.isHeadless()},styleEnabled:function(){return this._private.styleEnabled},addToPool:function(e){return this._private.elements.merge(e),this},removeFromPool:function(e){return this._private.elements.unmerge(e),this},container:function(){return this._private.container||null},mount:function(e){if(null!=e){var t=this._private,n=t.options;return!B(e)&&B(e[0])&&(e=e[0]),this.stopAnimationLoop(),this.destroyRenderer(),t.container=e,t.styleEnabled=!0,this.invalidateSize(),this.initRenderer(en({},n,n.renderer,{name:"null"===n.renderer.name?"canvas":n.renderer.name})),this.startAnimationLoop(),this.style(n.style),this.emit("mount"),this}},unmount:function(){return this.stopAnimationLoop(),this.destroyRenderer(),this.initRenderer({name:"null"}),this.emit("unmount"),this},options:function(){return e6(this._private.options)},json:function(e){var t=this,n=t._private,r=t.mutableElements();if(P(e)){if(t.startBatch(),e.elements){var i={},a=function(e,n){for(var r=[],a=[],o=0;o<e.length;o++){var s=e[o];if(!s.data.id){e9("cy.json() cannot handle elements without an ID attribute");continue}var l=""+s.data.id,u=t.getElementById(l);i[l]=!0,0!==u.length?a.push({ele:u,json:s}):(n&&(s.group=n),r.push(s))}t.add(r);for(var h=0;h<a.length;h++){var c=a[h],d=c.ele,p=c.json;d.json(p)}};if(M(e.elements))a(e.elements);else for(var o=["nodes","edges"],s=0;s<o.length;s++){var l=o[s],u=e.elements[l];M(u)&&a(u,l)}var h=t.collection();r.filter(function(e){return!i[e.id()]}).forEach(function(e){e.isParent()?h.merge(e):e.remove()}),h.forEach(function(e){return e.children().move({parent:null})}),h.forEach(function(e){return t.getElementById(e.id()).remove()})}e.style&&t.style(e.style),null!=e.zoom&&e.zoom!==n.zoom&&t.zoom(e.zoom),e.pan&&(e.pan.x!==n.pan.x||e.pan.y!==n.pan.y)&&t.pan(e.pan),e.data&&t.data(e.data);for(var c=["minZoom","maxZoom","zoomingEnabled","userZoomingEnabled","panningEnabled","userPanningEnabled","boxSelectionEnabled","autolock","autoungrabify","autounselectify","multiClickDebounceTime"],d=0;d<c.length;d++){var p=c[d];null!=e[p]&&t[p](e[p])}return t.endBatch(),this}var g={};e?g.elements=this.elements().map(function(e){return e.json()}):(g.elements={},r.forEach(function(e){var t=e.group();g.elements[t]||(g.elements[t]=[]),g.elements[t].push(e.json())})),this._private.styleEnabled&&(g.style=t.style().json()),g.data=e6(t.data());var f=n.options;return g.zoomingEnabled=n.zoomingEnabled,g.userZoomingEnabled=n.userZoomingEnabled,g.zoom=n.zoom,g.minZoom=n.minZoom,g.maxZoom=n.maxZoom,g.panningEnabled=n.panningEnabled,g.userPanningEnabled=n.userPanningEnabled,g.pan=e6(n.pan),g.boxSelectionEnabled=n.boxSelectionEnabled,g.renderer=e6(f.renderer),g.hideEdgesOnViewport=f.hideEdgesOnViewport,g.textureOnViewport=f.textureOnViewport,g.wheelSensitivity=f.wheelSensitivity,g.motionBlur=f.motionBlur,g.multiClickDebounceTime=f.multiClickDebounceTime,g}}),on.$id=on.getElementById,[{add:function(e){var t;if(F(e)){if(e._private.cy===this)t=e.restore();else{for(var n=[],r=0;r<e.length;r++){var i=e[r];n.push(i.json())}t=new aM(this,n)}}else if(M(e))t=new aM(this,e);else if(P(e)&&(M(e.nodes)||M(e.edges))){for(var a=[],o=["nodes","edges"],s=0,l=o.length;s<l;s++){var u=o[s],h=e[u];if(M(h))for(var c=0,d=h.length;c<d;c++){var p=en({group:u},h[c]);a.push(p)}}t=new aM(this,a)}else t=new tc(this,e).collection();return t},remove:function(e){if(F(e));else if(I(e)){var t=e;e=this.$(t)}return e.remove()}},aU,aq,aW,a$,{notify:function(e,t){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var r=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();null!=t&&r.merge(t);return}if(n.notificationsEnabled){var i=this.renderer();!this.destroyed()&&i&&i.notify(e,t)}},notifications:function(e){var t=this._private;return void 0===e?t.notificationsEnabled:(t.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return null==e.batchCount&&(e.batchCount=0),0===e.batchCount&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch:function(){var e=this._private;if(0===e.batchCount)return this;if(e.batchCount--,0===e.batchCount){e.batchStyleEles.updateStyle();var t=this.renderer();Object.keys(e.batchNotifications).forEach(function(n){var r=e.batchNotifications[n];r.empty()?t.notify(n):t.notify(n,r)})}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var t=this;return this.batch(function(){for(var n=Object.keys(e),r=0;r<n.length;r++){var i=n[r],a=e[i];t.getElementById(i).data(a)}})}},aZ,aQ,{style:function(e){return e&&this.setStyle(e).update(),this._private.style},setStyle:function(e){var t=this._private;return X(e)?t.style=e.generateStyle(this):M(e)?t.style=a6.fromJson(this,e):I(e)?t.style=a6.fromString(this,e):t.style=a6(this),t.style},updateStyle:function(){this.mutableElements().updateStyle()}},a7,oe].forEach(function(e){en(on,e)});var or={fit:!0,directed:!1,padding:30,circle:!1,grid:!1,spacingFactor:1.75,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,roots:void 0,depthSort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}},oi={maximal:!1,acyclic:!1},oa=function(e){return e.scratch("breadthfirst")},oo=function(e,t){return e.scratch("breadthfirst",t)};function os(e){this.options=en({},or,oi,e)}os.prototype.run=function(){var e,t=this.options,n=t.cy,r=t.eles,i=r.nodes().filter(function(e){return!e.isParent()}),a=t.directed,o=t.acyclic||t.maximal||t.maximalAdjustments>0,s=tz(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()});if(F(t.roots))e=t.roots;else if(M(t.roots)){for(var l=[],u=0;u<t.roots.length;u++){var h=t.roots[u],c=n.getElementById(h);l.push(c)}e=n.collection(l)}else if(I(t.roots))e=n.$(t.roots);else if(a)e=i.roots();else{var d=r.components();e=n.collection();for(var p=0;p<d.length;p++)!function(t){var n=d[t],r=n.maxDegree(!1),i=n.filter(function(e){return e.degree(!1)===r});e=e.add(i)}(p)}var g=[],f={},v=function(e,t){null==g[t]&&(g[t]=[]);var n=g[t].length;g[t].push(e),oo(e,{index:n,depth:t})},y=function(e,t){var n=oa(e),r=n.depth,i=n.index;g[r][i]=null,v(e,t)};r.bfs({roots:e,directed:t.directed,visit:function(e,t,n,r,i){var a=e[0],o=a.id();v(a,i),f[o]=!0}});for(var b=[],x=0;x<i.length;x++){var w=i[x];f[w.id()]||b.push(w)}var E=function(e){for(var t=g[e],n=0;n<t.length;n++){var r=t[n];if(null==r){t.splice(n,1),n--;continue}oo(r,{depth:e,index:n})}},T=function(){for(var e=0;e<g.length;e++)E(e)};if(a&&o){var _=[],D={},C=function(e){return _.push(e)};for(i.forEach(function(e){return _.push(e)});_.length>0;){var N=_.shift(),A=function(e,n){for(var i=oa(e),a=e.incomers().filter(function(e){return e.isNode()&&r.has(e)}),o=-1,s=e.id(),l=0;l<a.length;l++)o=Math.max(o,oa(a[l]).depth);if(i.depth<=o){if(!t.acyclic&&n[s])return null;var u=o+1;return y(e,u),n[s]=u,!0}return!1}(N,D);if(A)N.outgoers().filter(function(e){return e.isNode()&&r.has(e)}).forEach(C);else if(null===A){e9("Detected double maximal shift for node `"+N.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}T();var L=0;if(t.avoidOverlap)for(var S=0;S<i.length;S++){var O=i[S].layoutDimensions(t),k=O.w,P=O.h;L=Math.max(L,k,P)}var R={},B=function(e){if(R[e.id()])return R[e.id()];for(var t=oa(e).depth,n=e.neighborhood(),r=0,a=0,o=0;o<n.length;o++){var s=n[o];if(!(s.isEdge()||s.isParent())&&i.has(s)){var l=oa(s);if(null!=l){var u=l.index,h=l.depth;if(null!=u&&null!=h){var c=g[h].length;h<t&&(r+=u/c,a++)}}}}return r/=a=Math.max(1,a),0===a&&(r=0),R[e.id()]=r,r},z=function(e,t){var n=B(e)-B(t);return 0===n?et(e.id(),t.id()):n};void 0!==t.depthSort&&(z=t.depthSort);for(var G=0;G<g.length;G++)g[G].sort(z),E(G);for(var Y=[],X=0;X<b.length;X++)Y.push(b[X]);g.unshift(Y),T();for(var V=0,U=0;U<g.length;U++)V=Math.max(g[U].length,V);var j={x:s.x1+s.w/2,y:s.x1+s.h/2},H=g.reduce(function(e,t){return Math.max(e,t.length)},0);return r.nodes().layoutPositions(this,t,function(e){var n=oa(e),r=n.depth,i=n.index,a=g[r].length,o=Math.max(s.w/((t.grid?H:a)+1),L),l=Math.max(s.h/(g.length+1),L),u=Math.min(s.w/2/g.length,s.h/2/g.length);if(u=Math.max(u,L),!t.circle)return{x:j.x+(i+1-(a+1)/2)*o,y:(r+1)*l};var h=u*r+u-(g.length>0&&g[0].length<=3?u/2:0),c=2*Math.PI/g[r].length*i;return 0===r&&1===g[0].length&&(h=1),{x:j.x+h*Math.cos(c),y:j.y+h*Math.sin(c)}}),this};var ol={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function ou(e){this.options=en({},ol,e)}ou.prototype.run=function(){var e,t=this.options,n=t.cy,r=t.eles,i=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,a=r.nodes().not(":parent");t.sort&&(a=a.sort(t.sort));for(var o=tz(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),s={x:o.x1+o.w/2,y:o.y1+o.h/2},l=(void 0===t.sweep?2*Math.PI-2*Math.PI/a.length:t.sweep)/Math.max(1,a.length-1),u=0,h=0;h<a.length;h++){var c=a[h].layoutDimensions(t);u=Math.max(u,c.w,c.h)}if(e=R(t.radius)?t.radius:a.length<=1?0:Math.min(o.h,o.w)/2-u,a.length>1&&t.avoidOverlap){var d=Math.cos(l)-1,p=Math.sin(l)-0;e=Math.max(Math.sqrt((u*=1.75)*u/(d*d+p*p)),e)}return r.nodes().layoutPositions(this,t,function(n,r){var a=t.startAngle+r*l*(i?1:-1),o=e*Math.cos(a),u=e*Math.sin(a);return{x:s.x+o,y:s.y+u}}),this};var oh={fit:!0,padding:30,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function oc(e){this.options=en({},oh,e)}oc.prototype.run=function(){for(var e=this.options,t=void 0!==e.counterclockwise?!e.counterclockwise:e.clockwise,n=e.cy,r=e.eles,i=r.nodes().not(":parent"),a=tz(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),o={x:a.x1+a.w/2,y:a.y1+a.h/2},s=[],l=0,u=0;u<i.length;u++){var h=i[u],c=void 0;c=e.concentric(h),s.push({value:c,node:h}),h._private.scratch.concentric=c}i.updateStyle();for(var d=0;d<i.length;d++){var p=i[d].layoutDimensions(e);l=Math.max(l,p.w,p.h)}s.sort(function(e,t){return t.value-e.value});for(var g=e.levelWidth(i),f=[[]],v=f[0],y=0;y<s.length;y++){var b=s[y];v.length>0&&Math.abs(v[0].value-b.value)>=g&&(v=[],f.push(v)),v.push(b)}var x=l+e.minNodeSpacing;if(!e.avoidOverlap){var w=f.length>0&&f[0].length>1,E=(Math.min(a.w,a.h)/2-x)/(f.length+w?1:0);x=Math.min(x,E)}for(var T=0,_=0;_<f.length;_++){var D=f[_],C=void 0===e.sweep?2*Math.PI-2*Math.PI/D.length:e.sweep,N=D.dTheta=C/Math.max(1,D.length-1);if(D.length>1&&e.avoidOverlap){var A=Math.cos(N)-1,L=Math.sin(N)-0;T=Math.max(Math.sqrt(x*x/(A*A+L*L)),T)}D.r=T,T+=x}if(e.equidistant){for(var S=0,O=0,I=0;I<f.length;I++)S=Math.max(S,f[I].r-O);O=0;for(var k=0;k<f.length;k++){var M=f[k];0===k&&(O=M.r),M.r=O,O+=S}}for(var P={},R=0;R<f.length;R++)for(var B=f[R],F=B.dTheta,z=B.r,G=0;G<B.length;G++){var Y=B[G],X=e.startAngle+(t?1:-1)*F*G,V={x:o.x+z*Math.cos(X),y:o.y+z*Math.sin(X)};P[Y.node.id()]=V}return r.nodes().layoutPositions(this,e,function(e){return P[e.id()]}),this};var od={ready:function(){},stop:function(){},animate:!0,animationEasing:void 0,animationDuration:void 0,animateFilter:function(e,t){return!0},animationThreshold:250,refresh:20,fit:!0,padding:30,boundingBox:void 0,nodeDimensionsIncludeLabels:!1,randomize:!1,componentSpacing:40,nodeRepulsion:function(e){return 2048},nodeOverlap:4,idealEdgeLength:function(e){return 32},edgeElasticity:function(e){return 32},nestingFactor:1.2,gravity:1,numIter:1e3,initialTemp:1e3,coolingFactor:.99,minTemp:1};function op(e){this.options=en({},od,e),this.options.layout=this}op.prototype.run=function(){var e=this.options,t=e.cy,n=this;n.stopped=!1,(!0===e.animate||!1===e.animate)&&n.emit({type:"layoutstart",layout:n}),E=!0===e.debug;var r=og(t,n,e);E&&T(r),e.randomize&&oy(r);var i=eF(),a=function(){ob(r,t,e),!0===e.fit&&t.fit(e.padding)},o=function(t){return!n.stopped&&!(t>=e.numIter)&&(ox(r,e),r.temperature=r.temperature*e.coolingFactor,!(r.temperature<e.minTemp))},s=function(){if(!0===e.animate||!1===e.animate)a(),n.one("layoutstop",e.stop),n.emit({type:"layoutstop",layout:n});else{var t=e.eles.nodes(),i=om(r,e,t);t.layoutPositions(n,e,i)}},l=0,u=!0;if(!0===e.animate)!function t(){for(var n=0;u&&n<e.refresh;)u=o(l),l++,n++;u?(eF()-i>=e.animationThreshold&&a(),eG(t)):(oI(r,e),s())}();else{for(;u;)u=o(l),l++;oI(r,e),s()}return this},op.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},op.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var og=function(e,t,n){for(var r=n.eles.edges(),i=n.eles.nodes(),a=tz(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:r.size(),temperature:n.initialTemp,clientWidth:a.w,clientHeight:a.h,boundingBox:a},s=n.eles.components(),l={},u=0;u<s.length;u++)for(var h=s[u],c=0;c<h.length;c++){var d=h[c];l[d.id()]=u}for(var u=0;u<o.nodeSize;u++){var p=i[u],g=p.layoutDimensions(n),f={};f.isLocked=p.locked(),f.id=p.data("id"),f.parentId=p.data("parent"),f.cmptId=l[p.id()],f.children=[],f.positionX=p.position("x"),f.positionY=p.position("y"),f.offsetX=0,f.offsetY=0,f.height=g.w,f.width=g.h,f.maxX=f.positionX+f.width/2,f.minX=f.positionX-f.width/2,f.maxY=f.positionY+f.height/2,f.minY=f.positionY-f.height/2,f.padLeft=parseFloat(p.style("padding")),f.padRight=parseFloat(p.style("padding")),f.padTop=parseFloat(p.style("padding")),f.padBottom=parseFloat(p.style("padding")),f.nodeRepulsion=k(n.nodeRepulsion)?n.nodeRepulsion(p):n.nodeRepulsion,o.layoutNodes.push(f),o.idToIndex[f.id]=u}for(var v=[],y=0,b=-1,x=[],u=0;u<o.nodeSize;u++){var p=o.layoutNodes[u],w=p.parentId;null!=w?o.layoutNodes[o.idToIndex[w]].children.push(p.id):(v[++b]=p.id,x.push(p.id))}for(o.graphSet.push(x);y<=b;){var E=v[y++],T=o.idToIndex[E],d=o.layoutNodes[T],_=d.children;if(_.length>0){o.graphSet.push(_);for(var u=0;u<_.length;u++)v[++b]=_[u]}}for(var u=0;u<o.graphSet.length;u++)for(var D=o.graphSet[u],c=0;c<D.length;c++){var C=o.idToIndex[D[c]];o.indexToGraph[C]=u}for(var u=0;u<o.edgeSize;u++){var N=r[u],A={};A.id=N.data("id"),A.sourceId=N.data("source"),A.targetId=N.data("target");var L=k(n.idealEdgeLength)?n.idealEdgeLength(N):n.idealEdgeLength,S=k(n.edgeElasticity)?n.edgeElasticity(N):n.edgeElasticity,O=o.idToIndex[A.sourceId],I=o.idToIndex[A.targetId];if(o.indexToGraph[O]!=o.indexToGraph[I]){for(var M=of(A.sourceId,A.targetId,o),P=o.graphSet[M],R=0,f=o.layoutNodes[O];-1===P.indexOf(f.id);)f=o.layoutNodes[o.idToIndex[f.parentId]],R++;for(f=o.layoutNodes[I];-1===P.indexOf(f.id);)f=o.layoutNodes[o.idToIndex[f.parentId]],R++;L*=R*n.nestingFactor}A.idealLength=L,A.elasticity=S,o.layoutEdges.push(A)}return o},of=function(e,t,n){var r=ov(e,t,0,n);return 2>r.count?0:r.graph},ov=function e(t,n,r,i){var a=i.graphSet[r];if(-1<a.indexOf(t)&&-1<a.indexOf(n))return{count:2,graph:r};for(var o=0,s=0;s<a.length;s++){var l=a[s],u=i.idToIndex[l],h=i.layoutNodes[u].children;if(0!==h.length){var c=e(t,n,i.indexToGraph[i.idToIndex[h[0]]],i);if(0!==c.count){if(1!==c.count)return c;if(2==++o)break}}}return{count:o,graph:r}},oy=function(e,t){for(var n=e.clientWidth,r=e.clientHeight,i=0;i<e.nodeSize;i++){var a=e.layoutNodes[i];0!==a.children.length||a.isLocked||(a.positionX=Math.random()*n,a.positionY=Math.random()*r)}},om=function(e,t,n){var r=e.boundingBox,i={x1:1/0,x2:-1/0,y1:1/0,y2:-1/0};return t.boundingBox&&(n.forEach(function(t){var n=e.layoutNodes[e.idToIndex[t.data("id")]];i.x1=Math.min(i.x1,n.positionX),i.x2=Math.max(i.x2,n.positionX),i.y1=Math.min(i.y1,n.positionY),i.y2=Math.max(i.y2,n.positionY)}),i.w=i.x2-i.x1,i.h=i.y2-i.y1),function(n,a){var o=e.layoutNodes[e.idToIndex[n.data("id")]];if(!t.boundingBox)return{x:o.positionX,y:o.positionY};var s=(o.positionX-i.x1)/i.w,l=(o.positionY-i.y1)/i.h;return{x:r.x1+s*r.w,y:r.y1+l*r.h}}},ob=function(e,t,n){var r=n.layout,i=n.eles.nodes(),a=om(e,n,i);i.positions(a),!0!==e.ready&&(e.ready=!0,r.one("layoutready",n.ready),r.emit({type:"layoutready",layout:this}))},ox=function(e,t,n){ow(e,t),oC(e),oN(e,t),oA(e),oL(e)},ow=function(e,t){for(var n=0;n<e.graphSet.length;n++)for(var r=e.graphSet[n],i=r.length,a=0;a<i;a++)for(var o=e.layoutNodes[e.idToIndex[r[a]]],s=a+1;s<i;s++)oT(o,e.layoutNodes[e.idToIndex[r[s]]],e,t)},oE=function(e){return-e+2*e*Math.random()},oT=function(e,t,n,r){if(e.cmptId===t.cmptId||n.isCompound){var i=t.positionX-e.positionX,a=t.positionY-e.positionY;0===i&&0===a&&(i=oE(1),a=oE(1));var o=o_(e,t,i,a);if(o>0)var s=r.nodeOverlap*o,l=Math.sqrt(i*i+a*a),u=s*i/l,h=s*a/l;else var c=oD(e,i,a),d=oD(t,-1*i,-1*a),p=d.x-c.x,g=d.y-c.y,f=p*p+g*g,l=Math.sqrt(f),s=(e.nodeRepulsion+t.nodeRepulsion)/f,u=s*p/l,h=s*g/l;e.isLocked||(e.offsetX-=u,e.offsetY-=h),t.isLocked||(t.offsetX+=u,t.offsetY+=h)}},o_=function(e,t,n,r){if(n>0)var i=e.maxX-t.minX;else var i=t.maxX-e.minX;if(r>0)var a=e.maxY-t.minY;else var a=t.maxY-e.minY;return i>=0&&a>=0?Math.sqrt(i*i+a*a):0},oD=function(e,t,n){var r=e.positionX,i=e.positionY,a=e.height||1,o=e.width||1,s=n/t,l=a/o,u={};return 0===t&&0<n||0===t&&0>n?(u.x=r,u.y=i+a/2):0<t&&-1*l<=s&&s<=l?(u.x=r+o/2,u.y=i+o*n/2/t):0>t&&-1*l<=s&&s<=l?(u.x=r-o/2,u.y=i-o*n/2/t):0<n&&(s<=-1*l||s>=l)?(u.x=r+a*t/2/n,u.y=i+a/2):0>n&&(s<=-1*l||s>=l)&&(u.x=r-a*t/2/n,u.y=i-a/2),u},oC=function(e,t){for(var n=0;n<e.edgeSize;n++){var r=e.layoutEdges[n],i=e.idToIndex[r.sourceId],a=e.layoutNodes[i],o=e.idToIndex[r.targetId],s=e.layoutNodes[o],l=s.positionX-a.positionX,u=s.positionY-a.positionY;if(0!==l||0!==u){var h=oD(a,l,u),c=oD(s,-1*l,-1*u),d=c.x-h.x,p=c.y-h.y,g=Math.sqrt(d*d+p*p),f=Math.pow(r.idealLength-g,2)/r.elasticity;if(0!==g)var v=f*d/g,y=f*p/g;else var v=0,y=0;a.isLocked||(a.offsetX+=v,a.offsetY+=y),s.isLocked||(s.offsetX-=v,s.offsetY-=y)}}},oN=function(e,t){if(0!==t.gravity)for(var n=0;n<e.graphSet.length;n++){var r=e.graphSet[n],i=r.length;if(0===n)var a=e.clientHeight/2,o=e.clientWidth/2;else var s=e.layoutNodes[e.idToIndex[r[0]]],l=e.layoutNodes[e.idToIndex[s.parentId]],a=l.positionX,o=l.positionY;for(var u=0;u<i;u++){var h=e.layoutNodes[e.idToIndex[r[u]]];if(!h.isLocked){var c=a-h.positionX,d=o-h.positionY,p=Math.sqrt(c*c+d*d);if(p>1){var g=t.gravity*c/p,f=t.gravity*d/p;h.offsetX+=g,h.offsetY+=f}}}}},oA=function(e,t){var n=[],r=0,i=-1;for(n.push.apply(n,e.graphSet[0]),i+=e.graphSet[0].length;r<=i;){var a=n[r++],o=e.idToIndex[a],s=e.layoutNodes[o],l=s.children;if(0<l.length&&!s.isLocked){for(var u=s.offsetX,h=s.offsetY,c=0;c<l.length;c++){var d=e.layoutNodes[e.idToIndex[l[c]]];d.offsetX+=u,d.offsetY+=h,n[++i]=l[c]}s.offsetX=0,s.offsetY=0}}},oL=function(e,t){for(var n=0;n<e.nodeSize;n++){var r=e.layoutNodes[n];0<r.children.length&&(r.maxX=void 0,r.minX=void 0,r.maxY=void 0,r.minY=void 0)}for(var n=0;n<e.nodeSize;n++){var r=e.layoutNodes[n];if(!(0<r.children.length)&&!r.isLocked){var i=oS(r.offsetX,r.offsetY,e.temperature);r.positionX+=i.x,r.positionY+=i.y,r.offsetX=0,r.offsetY=0,r.minX=r.positionX-r.width,r.maxX=r.positionX+r.width,r.minY=r.positionY-r.height,r.maxY=r.positionY+r.height,oO(r,e)}}for(var n=0;n<e.nodeSize;n++){var r=e.layoutNodes[n];0<r.children.length&&!r.isLocked&&(r.positionX=(r.maxX+r.minX)/2,r.positionY=(r.maxY+r.minY)/2,r.width=r.maxX-r.minX,r.height=r.maxY-r.minY)}},oS=function(e,t,n){var r=Math.sqrt(e*e+t*t);if(r>n)var i={x:n*e/r,y:n*t/r};else var i={x:e,y:t};return i},oO=function e(t,n){var r=t.parentId;if(null!=r){var i=n.layoutNodes[n.idToIndex[r]],a=!1;if((null==i.maxX||t.maxX+i.padRight>i.maxX)&&(i.maxX=t.maxX+i.padRight,a=!0),(null==i.minX||t.minX-i.padLeft<i.minX)&&(i.minX=t.minX-i.padLeft,a=!0),(null==i.maxY||t.maxY+i.padBottom>i.maxY)&&(i.maxY=t.maxY+i.padBottom,a=!0),(null==i.minY||t.minY-i.padTop<i.minY)&&(i.minY=t.minY-i.padTop,a=!0),a)return e(i,n)}},oI=function(e,t){for(var n=e.layoutNodes,r=[],i=0;i<n.length;i++){var a=n[i],o=a.cmptId;(r[o]=r[o]||[]).push(a)}for(var s=0,i=0;i<r.length;i++){var l=r[i];if(l){l.x1=1/0,l.x2=-1/0,l.y1=1/0,l.y2=-1/0;for(var u=0;u<l.length;u++){var h=l[u];l.x1=Math.min(l.x1,h.positionX-h.width/2),l.x2=Math.max(l.x2,h.positionX+h.width/2),l.y1=Math.min(l.y1,h.positionY-h.height/2),l.y2=Math.max(l.y2,h.positionY+h.height/2)}l.w=l.x2-l.x1,l.h=l.y2-l.y1,s+=l.w*l.h}}r.sort(function(e,t){return t.w*t.h-e.w*e.h});for(var c=0,d=0,p=0,g=0,f=Math.sqrt(s)*e.clientWidth/e.clientHeight,i=0;i<r.length;i++){var l=r[i];if(l){for(var u=0;u<l.length;u++){var h=l[u];h.isLocked||(h.positionX+=c-l.x1,h.positionY+=d-l.y1)}c+=l.w+t.componentSpacing,p+=l.w+t.componentSpacing,g=Math.max(g,l.h),p>f&&(d+=g+t.componentSpacing,c=0,p=0,g=0)}}},ok={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function oM(e){this.options=en({},ok,e)}oM.prototype.run=function(){var e=this.options,t=e.cy,n=e.eles,r=n.nodes().not(":parent");e.sort&&(r=r.sort(e.sort));var i=tz(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()});if(0===i.h||0===i.w)n.nodes().layoutPositions(this,e,function(e){return{x:i.x1,y:i.y1}});else{var a=r.size(),o=Math.sqrt(a*i.h/i.w),s=Math.round(o),l=Math.round(i.w/i.h*o),u=function(e){if(null==e)return Math.min(s,l);Math.min(s,l)==s?s=e:l=e},h=function(e){if(null==e)return Math.max(s,l);Math.max(s,l)==s?s=e:l=e},c=e.rows,d=null!=e.cols?e.cols:e.columns;if(null!=c&&null!=d)s=c,l=d;else if(null!=c&&null==d)l=Math.ceil(a/(s=c));else if(null==c&&null!=d)s=Math.ceil(a/(l=d));else if(l*s>a){var p=u(),g=h();(p-1)*g>=a?u(p-1):(g-1)*p>=a&&h(g-1)}else for(;l*s<a;){var f=u(),v=h();(v+1)*f>=a?h(v+1):u(f+1)}var y=i.w/l,b=i.h/s;if(e.condense&&(y=0,b=0),e.avoidOverlap)for(var x=0;x<r.length;x++){var w=r[x],E=w._private.position;(null==E.x||null==E.y)&&(E.x=0,E.y=0);var T=w.layoutDimensions(e),_=e.avoidOverlapPadding,D=T.w+_,C=T.h+_;y=Math.max(y,D),b=Math.max(b,C)}for(var N={},A=function(e,t){return!!N["c-"+e+"-"+t]},L=function(e,t){N["c-"+e+"-"+t]=!0},S=0,O=0,I=function(){++O>=l&&(O=0,S++)},k={},M=0;M<r.length;M++){var P=r[M],R=e.position(P);if(R&&(void 0!==R.row||void 0!==R.col)){var B={row:R.row,col:R.col};if(void 0===B.col)for(B.col=0;A(B.row,B.col);)B.col++;else if(void 0===B.row)for(B.row=0;A(B.row,B.col);)B.row++;k[P.id()]=B,L(B.row,B.col)}}r.layoutPositions(this,e,function(e,t){if(e.locked()||e.isParent())return!1;var n,r,a=k[e.id()];if(a)n=a.col*y+y/2+i.x1,r=a.row*b+b/2+i.y1;else{for(;A(S,O);)I();n=O*y+y/2+i.x1,r=S*b+b/2+i.y1,L(S,O),I()}return{x:n,y:r}})}return this};var oP={ready:function(){},stop:function(){}};function oR(e){this.options=en({},oP,e)}oR.prototype.run=function(){var e=this.options,t=e.eles;return e.cy,this.emit("layoutstart"),t.nodes().positions(function(){return{x:0,y:0}}),this.one("layoutready",e.ready),this.emit("layoutready"),this.one("layoutstop",e.stop),this.emit("layoutstop"),this},oR.prototype.stop=function(){return this};var oB={positions:void 0,zoom:void 0,pan:void 0,fit:!0,padding:30,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function oF(e){this.options=en({},oB,e)}oF.prototype.run=function(){var e=this.options,t=e.eles.nodes(),n=k(e.positions);return t.layoutPositions(this,e,function(t,r){var i=function(t){if(null==e.positions){var r;return{x:(r=t.position()).x,y:r.y}}if(n)return e.positions(t);var i=e.positions[t._private.data.id];return null==i?null:i}(t);return!t.locked()&&null!=i&&i}),this};var oz={fit:!0,padding:30,boundingBox:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function oG(e){this.options=en({},oz,e)}oG.prototype.run=function(){var e=this.options,t=e.cy,n=e.eles,r=tz(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()});return n.nodes().layoutPositions(this,e,function(e,t){return{x:r.x1+Math.round(Math.random()*r.w),y:r.y1+Math.round(Math.random()*r.h)}}),this};var oY=[{name:"breadthfirst",impl:os},{name:"circle",impl:ou},{name:"concentric",impl:oc},{name:"cose",impl:op},{name:"grid",impl:oM},{name:"null",impl:oR},{name:"preset",impl:oF},{name:"random",impl:oG}];function oX(e){this.options=e,this.notifications=0}var oV=function(){},oU=function(){throw Error("A headless instance can not render images")};oX.prototype={recalculateRenderedStyle:oV,notify:function(){this.notifications++},init:oV,isHeadless:function(){return!0},png:oU,jpg:oU};var oj={};oj.arrowShapeWidth=.3,oj.registerArrowShapes=function(){var e=this.arrowShapes={},t=this,n=function(e,t,n,r,i,a,o){var s=i.x-n/2-o,l=i.x+n/2+o,u=i.y-n/2-o,h=i.y+n/2+o;return s<=e&&e<=l&&u<=t&&t<=h},r=function(e,t,n,r,i){var a=e*Math.cos(r)-t*Math.sin(r),o=e*Math.sin(r)+t*Math.cos(r);return{x:a*n+i.x,y:o*n+i.y}},i=function(e,t,n,i){for(var a=[],o=0;o<e.length;o+=2){var s=e[o],l=e[o+1];a.push(r(s,l,t,n,i))}return a},a=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push(r.x,r.y)}return t},o=function(e){return e.pstyle("width").pfValue*e.pstyle("arrow-scale").pfValue*2},s=function(r,s){I(s)&&(s=e[s]),e[r]=en({name:r,points:[-.15,-.3,.15,-.3,.15,.3,-.15,.3],collide:function(e,t,n,r,o,s){return t2(e,t,a(i(this.points,n+2*s,r,o)))},roughCollide:n,draw:function(e,n,r,a){var o=i(this.points,n,r,a);t.arrowShapeImpl("polygon")(e,o)},spacing:function(e){return 0},gap:o},s)};s("none",{collide:e1,roughCollide:e1,draw:e5,spacing:e2,gap:e2}),s("triangle",{points:[-.15,-.3,0,0,.15,-.3]}),s("arrow","triangle"),s("triangle-backcurve",{points:e.triangle.points,controlPoint:[0,-.15],roughCollide:n,draw:function(e,n,a,o,s){var l=i(this.points,n,a,o),u=this.controlPoint,h=r(u[0],u[1],n,a,o);t.arrowShapeImpl(this.name)(e,l,h)},gap:function(e){return .8*o(e)}}),s("triangle-tee",{points:[0,0,.15,-.3,-.15,-.3,0,0],pointsTee:[-.15,-.4,-.15,-.5,.15,-.5,.15,-.4],collide:function(e,t,n,r,o,s,l){var u=a(i(this.points,n+2*l,r,o)),h=a(i(this.pointsTee,n+2*l,r,o));return t2(e,t,u)||t2(e,t,h)},draw:function(e,n,r,a,o){var s=i(this.points,n,r,a),l=i(this.pointsTee,n,r,a);t.arrowShapeImpl(this.name)(e,s,l)}}),s("circle-triangle",{radius:.15,pointsTr:[0,-.15,.15,-.45,-.15,-.45,0,-.15],collide:function(e,t,n,r,o,s,l){var u=Math.pow(o.x-e,2)+Math.pow(o.y-t,2)<=Math.pow((n+2*l)*this.radius,2);return t2(e,t,a(i(this.points,n+2*l,r,o)))||u},draw:function(e,n,r,a,o){var s=i(this.pointsTr,n,r,a);t.arrowShapeImpl(this.name)(e,s,a.x,a.y,this.radius*n)},spacing:function(e){return t.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.radius}}),s("triangle-cross",{points:[0,0,.15,-.3,-.15,-.3,0,0],baseCrossLinePts:[-.15,-.4,-.15,-.4,.15,-.4,.15,-.4],crossLinePts:function(e,t){var n=this.baseCrossLinePts.slice(),r=t/e;return n[3]=n[3]-r,n[5]=n[5]-r,n},collide:function(e,t,n,r,o,s,l){var u=a(i(this.points,n+2*l,r,o)),h=a(i(this.crossLinePts(n,s),n+2*l,r,o));return t2(e,t,u)||t2(e,t,h)},draw:function(e,n,r,a,o){var s=i(this.points,n,r,a),l=i(this.crossLinePts(n,o),n,r,a);t.arrowShapeImpl(this.name)(e,s,l)}}),s("vee",{points:[-.15,-.3,0,0,.15,-.3,0,-.15],gap:function(e){return .525*o(e)}}),s("circle",{radius:.15,collide:function(e,t,n,r,i,a,o){return Math.pow(i.x-e,2)+Math.pow(i.y-t,2)<=Math.pow((n+2*o)*this.radius,2)},draw:function(e,n,r,i,a){t.arrowShapeImpl(this.name)(e,i.x,i.y,this.radius*n)},spacing:function(e){return t.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.radius}}),s("tee",{points:[-.15,0,-.15,-.1,.15,-.1,.15,0],spacing:function(e){return 1},gap:function(e){return 1}}),s("square",{points:[-.15,0,.15,0,.15,-.3,-.15,-.3]}),s("diamond",{points:[-.15,-.15,0,-.3,.15,-.15,0,0],gap:function(e){return e.pstyle("width").pfValue*e.pstyle("arrow-scale").value}}),s("chevron",{points:[0,0,-.15,-.15,-.1,-.2,0,-.1,.1,-.2,.15,-.15],gap:function(e){return .95*e.pstyle("width").pfValue*e.pstyle("arrow-scale").value}})};var oH={};oH.projectIntoViewport=function(e,t){var n=this.cy,r=this.findContainerClientCoords(),i=r[0],a=r[1],o=r[4],s=n.pan(),l=n.zoom();return[((e-i)/o-s.x)/l,((t-a)/o-s.y)/l]},oH.findContainerClientCoords=function(){if(this.containerBB)return this.containerBB;var e=this.container,t=e.getBoundingClientRect(),n=D.getComputedStyle(e),r=function(e){return parseFloat(n.getPropertyValue(e))},i={left:r("padding-left"),right:r("padding-right"),top:r("padding-top"),bottom:r("padding-bottom")},a={left:r("border-left-width"),right:r("border-right-width"),top:r("border-top-width"),bottom:r("border-bottom-width")},o=e.clientWidth,s=e.clientHeight,l=i.left+i.right,u=i.top+i.bottom,h=a.left+a.right,c=t.width/(o+h),d=t.left+i.left+a.left,p=t.top+i.top+a.top;return this.containerBB=[d,p,o-l,s-u,c]},oH.invalidateContainerClientCoordsCache=function(){this.containerBB=null},oH.findNearestElement=function(e,t,n,r){return this.findNearestElements(e,t,n,r)[0]},oH.findNearestElements=function(e,t,n,r){var i,a,o=this,s=this,l=s.getCachedZSortedEles(),u=[],h=s.cy.zoom(),c=s.cy.hasCompoundNodes(),d=(r?24:8)/h,p=(r?8:2)/h,g=(r?8:2)/h,f=1/0;function v(e,t){if(e.isNode()){if(a)return;a=e,u.push(e)}if(e.isEdge()&&(null==t||t<f)){if(i){if(i.pstyle("z-compound-depth").value===e.pstyle("z-compound-depth").value&&i.pstyle("z-compound-depth").value===e.pstyle("z-compound-depth").value){for(var n=0;n<u.length;n++)if(u[n].isEdge()){u[n]=e,i=e,f=null!=t?t:f;break}}}else u.push(e),i=e,f=null!=t?t:f}}function y(n){var r=n.outerWidth()+2*p,i=n.outerHeight()+2*p,a=r/2,l=i/2,u=n.position();if(u.x-a<=e&&e<=u.x+a&&u.y-l<=t&&t<=u.y+l&&s.nodeShapes[o.getNodeShape(n)].checkPoint(e,t,0,r,i,u.x,u.y))return v(n,0),!0}function b(n,r){var i,a=n._private;i=r?r+"-":"",n.boundingBox();var o=a.labelBounds[r||"main"],s=n.pstyle(i+"label").value;if("yes"===n.pstyle("text-events").strValue&&s){var l=ta(a.rscratch,"labelX",r),u=ta(a.rscratch,"labelY",r),h=ta(a.rscratch,"labelAngle",r),c=n.pstyle(i+"text-margin-x").pfValue,d=n.pstyle(i+"text-margin-y").pfValue,p=o.x1-g-c,f=o.x2+g-c,y=o.y1-g-d,b=o.y2+g-d;if(h){var x=Math.cos(h),w=Math.sin(h),E=function(e,t){return{x:(e-=l)*x-(t-=u)*w+l,y:e*w+t*x+u}},T=E(p,y),_=E(p,b),D=E(f,y),C=E(f,b);if(t2(e,t,[T.x+c,T.y+d,D.x+c,D.y+d,C.x+c,C.y+d,_.x+c,_.y+d]))return v(n),!0}else if(tq(o,e,t))return v(n),!0}}n&&(l=l.interactive);for(var x=l.length-1;x>=0;x--){var w=l[x];w.isNode()?y(w)||b(w):function(n){var r,i=n._private,a=i.rscratch,l=n.pstyle("width").pfValue,h=n.pstyle("arrow-scale").value,p=l/2+d,g=p*p,f=2*p,b=i.source,x=i.target;if("segments"===a.edgeType||"straight"===a.edgeType||"haystack"===a.edgeType){for(var w=a.allpts,E=0;E+3<w.length;E+=2)if(tK(e,t,w[E],w[E+1],w[E+2],w[E+3],f)&&g>(r=t1(e,t,w[E],w[E+1],w[E+2],w[E+3])))return v(n,r),!0}else if("bezier"===a.edgeType||"multibezier"===a.edgeType||"self"===a.edgeType||"compound"===a.edgeType){for(var w=a.allpts,E=0;E+5<a.allpts.length;E+=4)if(tZ(e,t,w[E],w[E+1],w[E+2],w[E+3],w[E+4],w[E+5],f)&&g>(r=t0(e,t,w[E],w[E+1],w[E+2],w[E+3],w[E+4],w[E+5])))return v(n,r),!0}for(var b=b||i.source,x=x||i.target,T=o.getArrowWidth(l,h),_=[{name:"source",x:a.arrowStartX,y:a.arrowStartY,angle:a.srcArrowAngle},{name:"target",x:a.arrowEndX,y:a.arrowEndY,angle:a.tgtArrowAngle},{name:"mid-source",x:a.midX,y:a.midY,angle:a.midsrcArrowAngle},{name:"mid-target",x:a.midX,y:a.midY,angle:a.midtgtArrowAngle}],E=0;E<_.length;E++){var D=_[E],C=s.arrowShapes[n.pstyle(D.name+"-arrow-shape").value],N=n.pstyle("width").pfValue;if(C.roughCollide(e,t,T,D.angle,{x:D.x,y:D.y},N,d)&&C.collide(e,t,T,D.angle,{x:D.x,y:D.y},N,d))return v(n),!0}c&&u.length>0&&(y(b),y(x))}(w)||b(w)||b(w,"source")||b(w,"target")}return u},oH.getAllInBox=function(e,t,n,r){var i=this.getCachedZSortedEles().interactive,a=[],o=Math.min(e,n),s=Math.max(e,n),l=Math.min(t,r),u=Math.max(t,r);e=o,n=s;for(var h=tz({x1:e,y1:t=l,x2:n,y2:r=u}),c=0;c<i.length;c++){var d=i[c];if(d.isNode()){var p=d.boundingBox({includeNodes:!0,includeEdges:!1,includeLabels:!1});tH(h,p)&&!tW(p,h)&&a.push(d)}else{var g=d._private,f=g.rscratch;if(null!=f.startX&&null!=f.startY&&!tq(h,f.startX,f.startY)||null!=f.endX&&null!=f.endY&&!tq(h,f.endX,f.endY))continue;if("bezier"===f.edgeType||"multibezier"===f.edgeType||"self"===f.edgeType||"compound"===f.edgeType||"segments"===f.edgeType||"haystack"===f.edgeType){for(var v,y=g.rstyle.bezierPts||g.rstyle.linePts||g.rstyle.haystackPts,b=!0,x=0;x<y.length;x++)if(!tq(h,(v=y[x]).x,v.y)){b=!1;break}b&&a.push(d)}else("haystack"===f.edgeType||"straight"===f.edgeType)&&a.push(d)}}return a};var oq={};oq.calculateArrowAngles=function(e){var t=e._private.rscratch,n="haystack"===t.edgeType,r="bezier"===t.edgeType,i="multibezier"===t.edgeType,a="segments"===t.edgeType,o="compound"===t.edgeType,s="self"===t.edgeType;if(n?(b=t.haystackPts[0],x=t.haystackPts[1],w=t.haystackPts[2],E=t.haystackPts[3]):(b=t.arrowStartX,x=t.arrowStartY,w=t.arrowEndX,E=t.arrowEndY),c=t.midX,d=t.midY,a)v=b-t.segpts[0],y=x-t.segpts[1];else if(i||o||s||r){var l=t.allpts,u=tP(l[0],l[2],l[4],.1),h=tP(l[1],l[3],l[5],.1);v=b-u,y=x-h}else v=b-c,y=x-d;t.srcArrowAngle=tL(v,y);var c=t.midX,d=t.midY;if(n&&(c=(b+w)/2,d=(x+E)/2),v=w-b,y=E-x,a){var l=t.allpts;if(l.length/2%2==0){var p=l.length/2,g=p-2;v=l[p]-l[g],y=l[p+1]-l[g+1]}else{var p=l.length/2-1,g=p-2,f=p+2;v=l[p]-l[g],y=l[p+1]-l[g+1]}}else if(i||o||s){var v,y,b,x,w,E,c,d,T,_,D,C,l=t.allpts;if(t.ctrlpts.length/2%2==0){var N=l.length/2-1,A=N+2,L=A+2;T=tP(l[N],l[A],l[L],0),_=tP(l[N+1],l[A+1],l[L+1],0),D=tP(l[N],l[A],l[L],1e-4),C=tP(l[N+1],l[A+1],l[L+1],1e-4)}else{var A=l.length/2-1,N=A-2,L=A+2;T=tP(l[N],l[A],l[L],.4999),_=tP(l[N+1],l[A+1],l[L+1],.4999),D=tP(l[N],l[A],l[L],.5),C=tP(l[N+1],l[A+1],l[L+1],.5)}v=D-T,y=C-_}if(t.midtgtArrowAngle=tL(v,y),t.midDispX=v,t.midDispY=y,v*=-1,y*=-1,a){var l=t.allpts;if(l.length/2%2==0);else{var p=l.length/2-1,f=p+2;v=-(l[f]-l[p]),y=-(l[f+1]-l[p+1])}}if(t.midsrcArrowAngle=tL(v,y),a)v=w-t.segpts[t.segpts.length-2],y=E-t.segpts[t.segpts.length-1];else if(i||o||s||r){var l=t.allpts,S=l.length,u=tP(l[S-6],l[S-4],l[S-2],.9),h=tP(l[S-5],l[S-3],l[S-1],.9);v=w-u,y=E-h}else v=w-c,y=E-d;t.tgtArrowAngle=tL(v,y)},oq.getArrowWidth=oq.getArrowHeight=function(e,t){var n=this.arrowWidthCache=this.arrowWidthCache||{},r=n[e+", "+t];return r||(r=Math.max(Math.pow(13.37*e,.9),29)*t,n[e+", "+t]=r),r};var oW={};function o$(e){var t=[];if(null!=e){for(var n=0;n<e.length;n+=2){var r=e[n],i=e[n+1];t.push({x:r,y:i})}return t}}oW.findHaystackPoints=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=n._private,i=r.rscratch;if(!i.haystack){var a=2*Math.random()*Math.PI;i.source={x:Math.cos(a),y:Math.sin(a)},a=2*Math.random()*Math.PI,i.target={x:Math.cos(a),y:Math.sin(a)}}var o=r.source,s=r.target,l=o.position(),u=s.position(),h=o.width(),c=s.width(),d=o.height(),p=s.height(),g=n.pstyle("haystack-radius").value/2;i.haystackPts=i.allpts=[i.source.x*h*g+l.x,i.source.y*d*g+l.y,i.target.x*c*g+u.x,i.target.y*p*g+u.y],i.midX=(i.allpts[0]+i.allpts[2])/2,i.midY=(i.allpts[1]+i.allpts[3])/2,i.edgeType="haystack",i.haystack=!0,this.storeEdgeProjections(n),this.calculateArrowAngles(n),this.recalculateEdgeLabelProjections(n),this.calculateLabelAngles(n)}},oW.findSegmentsPoints=function(e,t){var n=e._private.rscratch,r=t.posPts,i=t.intersectionPts,a=t.vectorNormInverse,o=e.pstyle("edge-distances").value,s=e.pstyle("segment-weights"),l=e.pstyle("segment-distances"),u=Math.min(s.pfValue.length,l.pfValue.length);n.edgeType="segments",n.segpts=[];for(var h=0;h<u;h++){var c=s.pfValue[h],d=l.pfValue[h],p=1-c,g="node-position"===o?r:i,f={x:g.x1*p+g.x2*c,y:g.y1*p+g.y2*c};n.segpts.push(f.x+a.x*d,f.y+a.y*d)}},oW.findLoopPoints=function(e,t,n,r){var i=e._private.rscratch,a=t.dirCounts,o=t.srcPos,s=e.pstyle("control-point-distances"),l=s?s.pfValue[0]:void 0,u=e.pstyle("loop-direction").pfValue,h=e.pstyle("loop-sweep").pfValue,c=e.pstyle("control-point-step-size").pfValue;i.edgeType="self";var d=n,p=c;r&&(d=0,p=l);var g=u-Math.PI/2,f=g-h/2,v=g+h/2,y=String(u+"_"+h);d=void 0===a[y]?a[y]=0:++a[y],i.ctrlpts=[o.x+1.4*Math.cos(f)*p*(d/3+1),o.y+1.4*Math.sin(f)*p*(d/3+1),o.x+1.4*Math.cos(v)*p*(d/3+1),o.y+1.4*Math.sin(v)*p*(d/3+1)]},oW.findCompoundLoopPoints=function(e,t,n,r){var i=e._private.rscratch;i.edgeType="compound";var a=t.srcPos,o=t.tgtPos,s=t.srcW,l=t.srcH,u=t.tgtW,h=t.tgtH,c=e.pstyle("control-point-step-size").pfValue,d=e.pstyle("control-point-distances"),p=d?d.pfValue[0]:void 0,g=n,f=c;r&&(g=0,f=p);var v={x:a.x-s/2,y:a.y-l/2},y={x:o.x-u/2,y:o.y-h/2},b={x:Math.min(v.x,y.x),y:Math.min(v.y,y.y)},x=Math.max(.5,Math.log(.01*s)),w=Math.max(.5,Math.log(.01*u));i.ctrlpts=[b.x,b.y-1.7995514309304248*f*(g/3+1)*x,b.x-1.7995514309304248*f*(g/3+1)*w,b.y]},oW.findStraightEdgePoints=function(e){e._private.rscratch.edgeType="straight"},oW.findBezierPoints=function(e,t,n,r,i){var a=e._private.rscratch,o=t.vectorNormInverse,s=t.posPts,l=t.intersectionPts,u=e.pstyle("edge-distances").value,h=e.pstyle("control-point-step-size").pfValue,c=e.pstyle("control-point-distances"),d=e.pstyle("control-point-weights"),p=c&&d?Math.min(c.value.length,d.value.length):1,g=c?c.pfValue[0]:void 0,f=d.value[0];a.edgeType=r?"multibezier":"bezier",a.ctrlpts=[];for(var v=0;v<p;v++){var y=(.5-t.eles.length/2+n)*h*(i?-1:1),b=void 0,x=tO(y);r&&(g=c?c.pfValue[v]:h,f=d.value[v]);var w=void 0!==(b=r?g:void 0!==g?x*g:void 0)?b:y,E=1-f,T=f,_="node-position"===u?s:l,D={x:_.x1*E+_.x2*T,y:_.y1*E+_.y2*T};a.ctrlpts.push(D.x+o.x*w,D.y+o.y*w)}},oW.findTaxiPoints=function(e,t){var n,r=e._private.rscratch;r.edgeType="segments";var i="vertical",a="horizontal",o="leftward",s="rightward",l="downward",u="upward",h=t.posPts,c=t.srcW,d=t.srcH,p=t.tgtW,g=t.tgtH,f="node-position"!==e.pstyle("edge-distances").value,v=e.pstyle("taxi-direction").value,y=v,b=e.pstyle("taxi-turn"),x="%"===b.units,w=b.pfValue,E=e.pstyle("taxi-turn-min-distance").pfValue,T=h.x2-h.x1,_=h.y2-h.y1,D=function(e,t){return e>0?Math.max(e-t,0):Math.min(e+t,0)},C=D(T,f?(c+p)/2:0),N=D(_,f?(d+g)/2:0),A=!1;"auto"===y?v=Math.abs(C)>Math.abs(N)?a:i:y===u||y===l?(v=i,A=!0):(y===o||y===s)&&(v=a,A=!0);var L=v===i,S=L?N:C,O=L?_:T,I=tO(O),k=!1;!(A&&(x||w<0))&&(y===l&&O<0||y===u&&O>0||y===o&&O>0||y===s&&O<0)&&(I*=-1,S=I*Math.abs(S),k=!0);var M=function(e){return Math.abs(e)<E||Math.abs(e)>=Math.abs(S)},P=M(n=x?(w<0?1+w:w)*S:(w<0?S:0)+w*I),R=M(Math.abs(S)-Math.abs(n));if((P||R)&&!k){if(L){var B=Math.abs(T)<=p/2;if(Math.abs(O)<=d/2){var F=(h.x1+h.x2)/2,z=h.y1,G=h.y2;r.segpts=[F,z,F,G]}else if(B){var Y=(h.y1+h.y2)/2,X=h.x1,V=h.x2;r.segpts=[X,Y,V,Y]}else r.segpts=[h.x1,h.y2]}else{var U=Math.abs(_)<=g/2;if(Math.abs(O)<=c/2){var j=(h.y1+h.y2)/2,H=h.x1,q=h.x2;r.segpts=[H,j,q,j]}else if(U){var W=(h.x1+h.x2)/2,$=h.y1,K=h.y2;r.segpts=[W,$,W,K]}else r.segpts=[h.x2,h.y1]}}else if(L){var Z=h.y1+n+(f?d/2*I:0),Q=h.x1,J=h.x2;r.segpts=[Q,Z,J,Z]}else{var ee=h.x1+n+(f?c/2*I:0),et=h.y1,en=h.y2;r.segpts=[ee,et,ee,en]}},oW.tryToCorrectInvalidPoints=function(e,t){var n=e._private.rscratch;if("bezier"===n.edgeType){var r=t.srcPos,i=t.tgtPos,a=t.srcW,o=t.srcH,s=t.tgtW,l=t.tgtH,u=t.srcShape,h=t.tgtShape,c=!R(n.startX)||!R(n.startY),d=!R(n.arrowStartX)||!R(n.arrowStartY),p=!R(n.endX)||!R(n.endY),g=!R(n.arrowEndX)||!R(n.arrowEndY),f=3*(this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth),v=tI({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.startX,y:n.startY}),y=v<f,b=tI({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.endX,y:n.endY}),x=b<f,w=!1;if(c||d||y){w=!0;var E={x:n.ctrlpts[0]-r.x,y:n.ctrlpts[1]-r.y},T=Math.sqrt(E.x*E.x+E.y*E.y),_={x:E.x/T,y:E.y/T},D=Math.max(a,o),C={x:n.ctrlpts[0]+2*_.x*D,y:n.ctrlpts[1]+2*_.y*D},N=u.intersectLine(r.x,r.y,a,o,C.x,C.y,0);y?(n.ctrlpts[0]=n.ctrlpts[0]+_.x*(f-v),n.ctrlpts[1]=n.ctrlpts[1]+_.y*(f-v)):(n.ctrlpts[0]=N[0]+_.x*f,n.ctrlpts[1]=N[1]+_.y*f)}if(p||g||x){w=!0;var A={x:n.ctrlpts[0]-i.x,y:n.ctrlpts[1]-i.y},L=Math.sqrt(A.x*A.x+A.y*A.y),S={x:A.x/L,y:A.y/L},O=Math.max(a,o),I={x:n.ctrlpts[0]+2*S.x*O,y:n.ctrlpts[1]+2*S.y*O},k=h.intersectLine(i.x,i.y,s,l,I.x,I.y,0);x?(n.ctrlpts[0]=n.ctrlpts[0]+S.x*(f-b),n.ctrlpts[1]=n.ctrlpts[1]+S.y*(f-b)):(n.ctrlpts[0]=k[0]+S.x*f,n.ctrlpts[1]=k[1]+S.y*f)}w&&this.findEndpoints(e)}},oW.storeAllpts=function(e){var t=e._private.rscratch;if("multibezier"===t.edgeType||"bezier"===t.edgeType||"self"===t.edgeType||"compound"===t.edgeType){t.allpts=[],t.allpts.push(t.startX,t.startY);for(var n,r=0;r+1<t.ctrlpts.length;r+=2)t.allpts.push(t.ctrlpts[r],t.ctrlpts[r+1]),r+3<t.ctrlpts.length&&t.allpts.push((t.ctrlpts[r]+t.ctrlpts[r+2])/2,(t.ctrlpts[r+1]+t.ctrlpts[r+3])/2);(t.allpts.push(t.endX,t.endY),t.ctrlpts.length/2%2==0)?(n=t.allpts.length/2-1,t.midX=t.allpts[n],t.midY=t.allpts[n+1]):(n=t.allpts.length/2-3,t.midX=tP(t.allpts[n],t.allpts[n+2],t.allpts[n+4],.5),t.midY=tP(t.allpts[n+1],t.allpts[n+3],t.allpts[n+5],.5))}else if("straight"===t.edgeType)t.allpts=[t.startX,t.startY,t.endX,t.endY],t.midX=(t.startX+t.endX+t.arrowStartX+t.arrowEndX)/4,t.midY=(t.startY+t.endY+t.arrowStartY+t.arrowEndY)/4;else if("segments"===t.edgeType){if(t.allpts=[],t.allpts.push(t.startX,t.startY),t.allpts.push.apply(t.allpts,t.segpts),t.allpts.push(t.endX,t.endY),t.segpts.length%4==0){var i=t.segpts.length/2,a=i-2;t.midX=(t.segpts[a]+t.segpts[i])/2,t.midY=(t.segpts[a+1]+t.segpts[i+1])/2}else{var o=t.segpts.length/2-1;t.midX=t.segpts[o],t.midY=t.segpts[o+1]}}},oW.checkForInvalidEdgeWarning=function(e){var t=e[0]._private.rscratch;t.nodesOverlap||R(t.startX)&&R(t.startY)&&R(t.endX)&&R(t.endY)?t.loggedErr=!1:t.loggedErr||(t.loggedErr=!0,e9("Edge `"+e.id()+"` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap."))},oW.findEdgeControlPoints=function(e){var t=this;if(e&&0!==e.length){for(var n=this,r=n.cy.hasCompoundNodes(),i={map:new tl,get:function(e){var t=this.map.get(e[0]);return null!=t?t.get(e[1]):null},set:function(e,t){var n=this.map.get(e[0]);null==n&&(n=new tl,this.map.set(e[0],n)),n.set(e[1],t)}},a=[],o=[],s=0;s<e.length;s++){var l=e[s],u=l._private,h=l.pstyle("curve-style").value;if(!l.removed()&&l.takesUpSpace()){if("haystack"===h){o.push(l);continue}var c="unbundled-bezier"===h||"segments"===h||"straight"===h||"straight-triangle"===h||"taxi"===h,d="unbundled-bezier"===h||"bezier"===h,p=u.source,g=u.target,f=[p.poolIndex(),g.poolIndex()].sort(),v=i.get(f);null==v&&(v={eles:[]},i.set(f,v),a.push(f)),v.eles.push(l),c&&(v.hasUnbundled=!0),d&&(v.hasBezier=!0)}}for(var y=0;y<a.length;y++)!function(e){var o=a[e],s=i.get(o),l=void 0;if(!s.hasUnbundled){var u=s.eles[0].parallelEdges().filter(function(e){return e.isBundledBezier()});tr(s.eles),u.forEach(function(e){return s.eles.push(e)}),s.eles.sort(function(e,t){return e.poolIndex()-t.poolIndex()})}var h=s.eles[0],c=h.source(),d=h.target();if(c.poolIndex()>d.poolIndex()){var p=c;c=d,d=p}var g=s.srcPos=c.position(),f=s.tgtPos=d.position(),v=s.srcW=c.outerWidth(),y=s.srcH=c.outerHeight(),b=s.tgtW=d.outerWidth(),x=s.tgtH=d.outerHeight(),w=s.srcShape=n.nodeShapes[t.getNodeShape(c)],E=s.tgtShape=n.nodeShapes[t.getNodeShape(d)];s.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var T=0;T<s.eles.length;T++){var _=s.eles[T],D=_[0]._private.rscratch,C=_.pstyle("curve-style").value,N="unbundled-bezier"===C||"segments"===C||"taxi"===C,A=!c.same(_.source());if(!s.calculatedIntersection&&c!==d&&(s.hasBezier||s.hasUnbundled)){s.calculatedIntersection=!0;var L=w.intersectLine(g.x,g.y,v,y,f.x,f.y,0),S=s.srcIntn=L,O=E.intersectLine(f.x,f.y,b,x,g.x,g.y,0),I=s.tgtIntn=O,k=s.intersectionPts={x1:L[0],x2:O[0],y1:L[1],y2:O[1]},M=s.posPts={x1:g.x,x2:f.x,y1:g.y,y2:f.y},P=O[1]-L[1],B=O[0]-L[0],F=Math.sqrt(B*B+P*P),z=s.vector={x:B,y:P},G=s.vectorNorm={x:z.x/F,y:z.y/F},Y={x:-G.y,y:G.x};s.nodesOverlap=!R(F)||E.checkPoint(L[0],L[1],0,b,x,f.x,f.y)||w.checkPoint(O[0],O[1],0,v,y,g.x,g.y),s.vectorNormInverse=Y,l={nodesOverlap:s.nodesOverlap,dirCounts:s.dirCounts,calculatedIntersection:!0,hasBezier:s.hasBezier,hasUnbundled:s.hasUnbundled,eles:s.eles,srcPos:f,tgtPos:g,srcW:b,srcH:x,tgtW:v,tgtH:y,srcIntn:I,tgtIntn:S,srcShape:E,tgtShape:w,posPts:{x1:M.x2,y1:M.y2,x2:M.x1,y2:M.y1},intersectionPts:{x1:k.x2,y1:k.y2,x2:k.x1,y2:k.y1},vector:{x:-z.x,y:-z.y},vectorNorm:{x:-G.x,y:-G.y},vectorNormInverse:{x:-Y.x,y:-Y.y}}}var X=A?l:s;D.nodesOverlap=X.nodesOverlap,D.srcIntn=X.srcIntn,D.tgtIntn=X.tgtIntn,r&&(c.isParent()||c.isChild()||d.isParent()||d.isChild())&&(c.parents().anySame(d)||d.parents().anySame(c)||c.same(d)&&c.isParent())?t.findCompoundLoopPoints(_,X,T,N):c===d?t.findLoopPoints(_,X,T,N):"segments"===C?t.findSegmentsPoints(_,X):"taxi"===C?t.findTaxiPoints(_,X):"straight"!==C&&(N||s.eles.length%2!=1||T!==Math.floor(s.eles.length/2))?t.findBezierPoints(_,X,T,N,A):t.findStraightEdgePoints(_),t.findEndpoints(_),t.tryToCorrectInvalidPoints(_,X),t.checkForInvalidEdgeWarning(_),t.storeAllpts(_),t.storeEdgeProjections(_),t.calculateArrowAngles(_),t.recalculateEdgeLabelProjections(_),t.calculateLabelAngles(_)}}(y);this.findHaystackPoints(o)}},oW.getSegmentPoints=function(e){var t=e[0]._private.rscratch;if("segments"===t.edgeType)return this.recalculateRenderedStyle(e),o$(t.segpts)},oW.getControlPoints=function(e){var t=e[0]._private.rscratch,n=t.edgeType;if("bezier"===n||"multibezier"===n||"self"===n||"compound"===n)return this.recalculateRenderedStyle(e),o$(t.ctrlpts)},oW.getEdgeMidpoint=function(e){var t=e[0]._private.rscratch;return this.recalculateRenderedStyle(e),{x:t.midX,y:t.midY}};var oK={};oK.manualEndptToPx=function(e,t){var n=e.position(),r=e.outerWidth(),i=e.outerHeight();if(2===t.value.length){var a=[t.pfValue[0],t.pfValue[1]];return"%"===t.units[0]&&(a[0]=a[0]*r),"%"===t.units[1]&&(a[1]=a[1]*i),a[0]+=n.x,a[1]+=n.y,a}var o=t.pfValue[0];o=-Math.PI/2+o;var s=2*Math.max(r,i),l=[n.x+Math.cos(o)*s,n.y+Math.sin(o)*s];return this.nodeShapes[this.getNodeShape(e)].intersectLine(n.x,n.y,r,i,l[0],l[1],0)},oK.findEndpoints=function(e){var t,n,r,i,a,o=e.source()[0],s=e.target()[0],l=o.position(),u=s.position(),h=e.pstyle("target-arrow-shape").value,c=e.pstyle("source-arrow-shape").value,d=e.pstyle("target-distance-from-node").pfValue,p=e.pstyle("source-distance-from-node").pfValue,g=e.pstyle("curve-style").value,f=e._private.rscratch,v=f.edgeType,y="self"===v||"compound"===v,b="bezier"===v||"multibezier"===v||y,x="bezier"!==v,w="straight"===v||"segments"===v,E="segments"===v,T=y||"taxi"===g,_=e.pstyle("source-endpoint"),D=T?"outside-to-node":_.value,C=e.pstyle("target-endpoint"),N=T?"outside-to-node":C.value;if(f.srcManEndpt=_,f.tgtManEndpt=C,b){var A=[f.ctrlpts[0],f.ctrlpts[1]];n=x?[f.ctrlpts[f.ctrlpts.length-2],f.ctrlpts[f.ctrlpts.length-1]]:A,r=A}else if(w){var L=E?f.segpts.slice(0,2):[u.x,u.y];n=E?f.segpts.slice(f.segpts.length-2):[l.x,l.y],r=L}if("inside-to-node"===N)t=[u.x,u.y];else if(C.units)t=this.manualEndptToPx(s,C);else if("outside-to-line"===N)t=f.tgtIntn;else if("outside-to-node"===N||"outside-to-node-or-label"===N?i=n:("outside-to-line"===N||"outside-to-line-or-label"===N)&&(i=[l.x,l.y]),t=this.nodeShapes[this.getNodeShape(s)].intersectLine(u.x,u.y,s.outerWidth(),s.outerHeight(),i[0],i[1],0),"outside-to-node-or-label"===N||"outside-to-line-or-label"===N){var S=s._private.rscratch,O=S.labelWidth,I=S.labelHeight,k=S.labelX,M=S.labelY,P=O/2,B=I/2,F=s.pstyle("text-valign").value;"top"===F?M-=B:"bottom"===F&&(M+=B);var z=s.pstyle("text-halign").value;"left"===z?k-=P:"right"===z&&(k+=P);var G=nn(i[0],i[1],[k-P,M-B,k+P,M-B,k+P,M+B,k-P,M+B],u.x,u.y);if(G.length>0){var Y=tk(l,t_(t)),X=tk(l,t_(G)),V=Y;X<Y&&(t=G,V=X),G.length>2&&tk(l,{x:G[2],y:G[3]})<V&&(t=[G[2],G[3]])}}var U=ni(t,n,this.arrowShapes[h].spacing(e)+d),j=ni(t,n,this.arrowShapes[h].gap(e)+d);if(f.endX=j[0],f.endY=j[1],f.arrowEndX=U[0],f.arrowEndY=U[1],"inside-to-node"===D)t=[l.x,l.y];else if(_.units)t=this.manualEndptToPx(o,_);else if("outside-to-line"===D)t=f.srcIntn;else if("outside-to-node"===D||"outside-to-node-or-label"===D?a=r:("outside-to-line"===D||"outside-to-line-or-label"===D)&&(a=[u.x,u.y]),t=this.nodeShapes[this.getNodeShape(o)].intersectLine(l.x,l.y,o.outerWidth(),o.outerHeight(),a[0],a[1],0),"outside-to-node-or-label"===D||"outside-to-line-or-label"===D){var H=o._private.rscratch,q=H.labelWidth,W=H.labelHeight,$=H.labelX,K=H.labelY,Z=q/2,Q=W/2,J=o.pstyle("text-valign").value;"top"===J?K-=Q:"bottom"===J&&(K+=Q);var ee=o.pstyle("text-halign").value;"left"===ee?$-=Z:"right"===ee&&($+=Z);var et=nn(a[0],a[1],[$-Z,K-Q,$+Z,K-Q,$+Z,K+Q,$-Z,K+Q],l.x,l.y);if(et.length>0){var en=tk(u,t_(t)),er=tk(u,t_(et)),ei=en;er<en&&(t=[et[0],et[1]],ei=er),et.length>2&&tk(u,{x:et[2],y:et[3]})<ei&&(t=[et[2],et[3]])}}var ea=ni(t,r,this.arrowShapes[c].spacing(e)+p),eo=ni(t,r,this.arrowShapes[c].gap(e)+p);f.startX=eo[0],f.startY=eo[1],f.arrowStartX=ea[0],f.arrowStartY=ea[1],(b||x||w)&&(R(f.startX)&&R(f.startY)&&R(f.endX)&&R(f.endY)?f.badLine=!1:f.badLine=!0)},oK.getSourceEndpoint=function(e){var t=e[0]._private.rscratch;return(this.recalculateRenderedStyle(e),"haystack"===t.edgeType)?{x:t.haystackPts[0],y:t.haystackPts[1]}:{x:t.arrowStartX,y:t.arrowStartY}},oK.getTargetEndpoint=function(e){var t=e[0]._private.rscratch;return(this.recalculateRenderedStyle(e),"haystack"===t.edgeType)?{x:t.haystackPts[2],y:t.haystackPts[3]}:{x:t.arrowEndX,y:t.arrowEndY}};var oZ={};oZ.storeEdgeProjections=function(e){var t=e._private,n=t.rscratch,r=n.edgeType;if(t.rstyle.bezierPts=null,t.rstyle.linePts=null,t.rstyle.haystackPts=null,"multibezier"===r||"bezier"===r||"self"===r||"compound"===r){t.rstyle.bezierPts=[];for(var i=0;i+5<n.allpts.length;i+=4)!function(e,t,n){for(var r=function(e,t,n,r){return tP(e,t,n,r)},i=t._private.rstyle.bezierPts,a=0;a<e.bezierProjPcts.length;a++){var o=e.bezierProjPcts[a];i.push({x:r(n[0],n[2],n[4],o),y:r(n[1],n[3],n[5],o)})}}(this,e,n.allpts.slice(i,i+6))}else if("segments"===r)for(var a=t.rstyle.linePts=[],i=0;i+1<n.allpts.length;i+=2)a.push({x:n.allpts[i],y:n.allpts[i+1]});else if("haystack"===r){var o=n.haystackPts;t.rstyle.haystackPts=[{x:o[0],y:o[1]},{x:o[2],y:o[3]}]}t.rstyle.arrowWidth=this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth},oZ.recalculateEdgeProjections=function(e){this.findEdgeControlPoints(e)};var oQ={};oQ.recalculateNodeLabelProjection=function(e){if(!V(e.pstyle("label").strValue)){var t,n,r=e._private,i=e.width(),a=e.height(),o=e.padding(),s=e.position(),l=e.pstyle("text-halign").strValue,u=e.pstyle("text-valign").strValue,h=r.rscratch,c=r.rstyle;switch(l){case"left":t=s.x-i/2-o;break;case"right":t=s.x+i/2+o;break;default:t=s.x}switch(u){case"top":n=s.y-a/2-o;break;case"bottom":n=s.y+a/2+o;break;default:n=s.y}h.labelX=t,h.labelY=n,c.labelX=t,c.labelY=n,this.calculateLabelAngles(e),this.applyLabelDimensions(e)}};var oJ=function(e,t){var n=Math.atan(t/e);return 0===e&&n<0&&(n*=-1),n},o0=function(e,t){return oJ(t.x-e.x,t.y-e.y)},o1=function(e,t,n,r){var i=tF(0,r-.001,1),a=tF(0,r+.001,1);return o0(tR(e,t,n,i),tR(e,t,n,a))};oQ.recalculateEdgeLabelProjections=function(e){var t,n=e._private,r=n.rscratch,i=this,a={mid:e.pstyle("label").strValue,source:e.pstyle("source-label").strValue,target:e.pstyle("target-label").strValue};if(a.mid||a.source||a.target){t={x:r.midX,y:r.midY};var o=function(e,t,r){to(n.rscratch,e,t,r),to(n.rstyle,e,t,r)};o("labelX",null,t.x),o("labelY",null,t.y),o("labelAutoAngle",null,oJ(r.midDispX,r.midDispY));var s=function e(){if(e.cache)return e.cache;for(var t=[],a=0;a+5<r.allpts.length;a+=4){var o={x:r.allpts[a],y:r.allpts[a+1]},s={x:r.allpts[a+2],y:r.allpts[a+3]},l={x:r.allpts[a+4],y:r.allpts[a+5]};t.push({p0:o,p1:s,p2:l,startDist:0,length:0,segments:[]})}var u=n.rstyle.bezierPts,h=i.bezierProjPcts.length;function c(e,t,n,r,i){var a=tI(t,n),o=e.segments[e.segments.length-1],s={p0:t,p1:n,t0:r,t1:i,startDist:o?o.startDist+o.length:0,length:a};e.segments.push(s),e.length+=a}for(var d=0;d<t.length;d++){var p=t[d],g=t[d-1];g&&(p.startDist=g.startDist+g.length),c(p,p.p0,u[d*h],0,i.bezierProjPcts[0]);for(var f=0;f<h-1;f++)c(p,u[d*h+f],u[d*h+f+1],i.bezierProjPcts[f],i.bezierProjPcts[f+1]);c(p,u[d*h+h-1],p.p2,i.bezierProjPcts[h-1],1)}return e.cache=t},l=function(n){var i="source"===n;if(a[n]){var l=e.pstyle(n+"-text-offset").pfValue;switch(r.edgeType){case"self":case"compound":case"bezier":case"multibezier":for(var u,h,c=s(),d=0,p=0,g=0;g<c.length;g++){for(var f=c[i?g:c.length-1-g],v=0;v<f.segments.length;v++){var y=f.segments[i?v:f.segments.length-1-v],b=g===c.length-1&&v===f.segments.length-1;if(d=p,(p+=y.length)>=l||b){h={cp:f,segment:y};break}}if(h)break}var x=h.cp,w=h.segment,E=(l-d)/w.length,T=w.t1-w.t0,_=i?w.t0+T*E:w.t1-T*E;_=tF(0,_,1),t=tR(x.p0,x.p1,x.p2,_),u=o1(x.p0,x.p1,x.p2,_);break;case"straight":case"segments":case"haystack":for(var D,C,N,A,L=0,S=r.allpts.length,O=0;O+3<S&&(i?(D={x:r.allpts[O],y:r.allpts[O+1]},C={x:r.allpts[O+2],y:r.allpts[O+3]}):(D={x:r.allpts[S-2-O],y:r.allpts[S-1-O]},C={x:r.allpts[S-4-O],y:r.allpts[S-3-O]}),N=tI(D,C),A=L,!((L+=N)>=l));O+=2);var I=(l-A)/N;t=tB(D,C,I=tF(0,I,1)),u=o0(D,C)}o("labelX",n,t.x),o("labelY",n,t.y),o("labelAutoAngle",n,u)}};l("source"),l("target"),this.applyLabelDimensions(e)}},oQ.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))},oQ.applyPrefixedLabelDimensions=function(e,t){var n=e._private,r=this.getLabelText(e,t),i=this.calculateLabelDimensions(e,r),a=e.pstyle("line-height").pfValue,o=e.pstyle("text-wrap").strValue,s=ta(n.rscratch,"labelWrapCachedLines",t)||[],l="wrap"!==o?1:Math.max(s.length,1),u=i.height/l,h=i.width,c=i.height+(l-1)*(a-1)*u;to(n.rstyle,"labelWidth",t,h),to(n.rscratch,"labelWidth",t,h),to(n.rstyle,"labelHeight",t,c),to(n.rscratch,"labelHeight",t,c),to(n.rscratch,"labelLineHeight",t,u*a)},oQ.getLabelText=function(e,t){var n=e._private,r=t?t+"-":"",i=e.pstyle(r+"label").strValue,a=e.pstyle("text-transform").value,o=function(e,r){return r?(to(n.rscratch,e,t,r),r):ta(n.rscratch,e,t)};if(!i)return"";"none"==a||("uppercase"==a?i=i.toUpperCase():"lowercase"==a&&(i=i.toLowerCase()));var s=e.pstyle("text-wrap").value;if("wrap"===s){var l=o("labelKey");if(null!=l&&o("labelWrapKey")===l)return o("labelWrapCachedText");for(var u=i.split("\n"),h=e.pstyle("text-max-width").pfValue,c="anywhere"===e.pstyle("text-overflow-wrap").value,d=[],p=/[\s\u200b]+/,g=c?"":" ",f=0;f<u.length;f++){var v=u[f],y=this.calculateLabelDimensions(e,v).width;if(c&&(v=v.split("").join("\u200B")),y>h){for(var b=v.split(p),x="",w=0;w<b.length;w++){var E=b[w],T=0===x.length?E:x+g+E;this.calculateLabelDimensions(e,T).width<=h?x+=E+g:(x&&d.push(x),x=E+g)}x.match(/^[\s\u200b]+$/)||d.push(x)}else d.push(v)}o("labelWrapCachedLines",d),i=o("labelWrapCachedText",d.join("\n")),o("labelWrapKey",l)}else if("ellipsis"===s){var _=e.pstyle("text-max-width").pfValue,D="",C=!1;if(this.calculateLabelDimensions(e,i).width<_)return i;for(var N=0;N<i.length&&!(this.calculateLabelDimensions(e,D+i[N]+"\u2026").width>_);N++)D+=i[N],N===i.length-1&&(C=!0);return C||(D+="\u2026"),D}return i},oQ.getLabelJustification=function(e){var t=e.pstyle("text-justification").strValue,n=e.pstyle("text-halign").strValue;if("auto"!==t)return t;if(!e.isNode())return"center";switch(n){case"left":return"right";case"right":return"left";default:return"center"}},oQ.calculateLabelDimensions=function(e,t){var n=eq(t,e._private.labelDimsKey),r=this.labelDimCache||(this.labelDimCache=[]),i=r[n];if(null!=i)return i;var a=e.pstyle("font-style").strValue,o=e.pstyle("font-size").pfValue,s=e.pstyle("font-family").strValue,l=e.pstyle("font-weight").strValue,u=this.labelCalcCanvas,h=this.labelCalcCanvasContext;if(!u){u=this.labelCalcCanvas=document.createElement("canvas"),h=this.labelCalcCanvasContext=u.getContext("2d");var c=u.style;c.position="absolute",c.left="-9999px",c.top="-9999px",c.zIndex="-1",c.visibility="hidden",c.pointerEvents="none"}h.font="".concat(a," ").concat(l," ").concat(o,"px ").concat(s);for(var d=0,p=0,g=t.split("\n"),f=0;f<g.length;f++){var v=g[f];d=Math.max(Math.ceil(h.measureText(v).width),d),p+=o}return d+=0,p+=0,r[n]={width:d,height:p}},oQ.calculateLabelAngle=function(e,t){var n=e._private.rscratch,r=e.isEdge(),i=e.pstyle((t?t+"-":"")+"text-rotation"),a=i.strValue;return"none"===a?0:r&&"autorotate"===a?n.labelAutoAngle:"autorotate"===a?0:i.pfValue},oQ.calculateLabelAngles=function(e){var t=e.isEdge(),n=e._private.rscratch;n.labelAngle=this.calculateLabelAngle(e),t&&(n.sourceLabelAngle=this.calculateLabelAngle(e,"source"),n.targetLabelAngle=this.calculateLabelAngle(e,"target"))};var o2={},o5=!1;o2.getNodeShape=function(e){var t=e.pstyle("shape").value;if("cutrectangle"===t&&(28>e.width()||28>e.height()))return o5||(e9("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"),o5=!0),"rectangle";if(e.isParent())return"rectangle"===t||"roundrectangle"===t||"round-rectangle"===t||"cutrectangle"===t||"cut-rectangle"===t||"barrel"===t?t:"rectangle";if("polygon"===t){var n=e.pstyle("shape-polygon-points").value;return this.nodeShapes.makePolygon(n).name}return t};var o3={};o3.registerCalculationListeners=function(){var e=this.cy,t=e.collection(),n=this,r=function(e){var n=!(arguments.length>1)||void 0===arguments[1]||arguments[1];if(t.merge(e),n)for(var r=0;r<e.length;r++){var i=e[r]._private.rstyle;i.clean=!1,i.cleanConnected=!1}};n.binder(e).on("bounds.* dirty.*",function(e){r(e.target)}).on("style.* background.*",function(e){r(e.target,!1)});var i=function(i){if(i){var a=n.onUpdateEleCalcsFns;t.cleanStyle();for(var o=0;o<t.length;o++){var s=t[o],l=s._private.rstyle;s.isNode()&&!l.cleanConnected&&(r(s.connectedEdges()),l.cleanConnected=!0)}if(a)for(var u=0;u<a.length;u++)(0,a[u])(i,t);n.recalculateRenderedStyle(t),t=e.collection()}};n.flushRenderedStyleQueue=function(){i(!0)},n.beforeRender(i,n.beforeRenderPriorities.eleCalcs)},o3.onUpdateEleCalcs=function(e){(this.onUpdateEleCalcsFns=this.onUpdateEleCalcsFns||[]).push(e)},o3.recalculateRenderedStyle=function(e,t){var n=function(e){return e._private.rstyle.cleanConnected},r=[],i=[];if(!this.destroyed){void 0===t&&(t=!0);for(var a=0;a<e.length;a++){var o=e[a],s=o._private,l=s.rstyle;!o.isEdge()||n(o.source())&&n(o.target())||(l.clean=!1),t&&l.clean||o.removed()||"none"===o.pstyle("display").value||("nodes"===s.group?i.push(o):r.push(o),l.clean=!0)}for(var u=0;u<i.length;u++){var h=i[u],c=h._private.rstyle,d=h.position();this.recalculateNodeLabelProjection(h),c.nodeX=d.x,c.nodeY=d.y,c.nodeW=h.pstyle("width").pfValue,c.nodeH=h.pstyle("height").pfValue}this.recalculateEdgeProjections(r);for(var p=0;p<r.length;p++){var g=r[p]._private,f=g.rstyle,v=g.rscratch;f.srcX=v.arrowStartX,f.srcY=v.arrowStartY,f.tgtX=v.arrowEndX,f.tgtY=v.arrowEndY,f.midX=v.midX,f.midY=v.midY,f.labelAngle=v.labelAngle,f.sourceLabelAngle=v.sourceLabelAngle,f.targetLabelAngle=v.targetLabelAngle}}};var o4={};o4.updateCachedGrabbedEles=function(){var e=this.cachedZSortedEles;if(e){e.drag=[],e.nondrag=[];for(var t=[],n=0;n<e.length;n++){var r=e[n],i=r._private.rscratch;r.grabbed()&&!r.isParent()?t.push(r):i.inDragLayer?e.drag.push(r):e.nondrag.push(r)}for(var n=0;n<t.length;n++){var r=t[n];e.drag.push(r)}}},o4.invalidateCachedZSortedEles=function(){this.cachedZSortedEles=null},o4.getCachedZSortedEles=function(e){if(e||!this.cachedZSortedEles){var t=this.cy.mutableElements().toArray();t.sort(ah),t.interactive=t.filter(function(e){return e.interactive()}),this.cachedZSortedEles=t,this.updateCachedGrabbedEles()}else t=this.cachedZSortedEles;return t};var o9={};[oH,oq,oW,oK,oZ,oQ,o2,o3,o4].forEach(function(e){en(o9,e)});var o6={};o6.getCachedImage=function(e,t,n){var r=this.imageCache=this.imageCache||{},i=r[e];if(i)return i.image.complete||i.image.addEventListener("load",n),i.image;var a=(i=r[e]=r[e]||{}).image=new Image;a.addEventListener("load",n),a.addEventListener("error",function(){a.error=!0});var o="data:";return e.substring(0,o.length).toLowerCase()!==o&&(t="null"===t?null:t,a.crossOrigin=t),a.src=e,a};var o8={};o8.registerBinding=function(e,t,n,r){var i=Array.prototype.slice.apply(arguments,[1]),a=this.binder(e);return a.on.apply(a,i)},o8.binder=function(e){var t=this,n=e===window||e===document||e===document.body||"undefined"!=typeof HTMLElement&&e instanceof HTMLElement;if(null==t.supportsPassiveEvents){var r=!1;try{var i=Object.defineProperty({},"passive",{get:function(){return r=!0,!0}});window.addEventListener("test",null,i)}catch(e){}t.supportsPassiveEvents=r}var a=function(r,i,a){var o=Array.prototype.slice.call(arguments);return n&&t.supportsPassiveEvents&&(o[2]={capture:null!=a&&a,passive:!1,once:!1}),t.bindings.push({target:e,args:o}),(e.addEventListener||e.on).apply(e,o),this};return{on:a,addEventListener:a,addListener:a,bind:a}},o8.nodeIsDraggable=function(e){return e&&e.isNode()&&!e.locked()&&e.grabbable()},o8.nodeIsGrabbable=function(e){return this.nodeIsDraggable(e)&&e.interactive()},o8.load=function(){var e,t,n,r,i,a,o,s,l,u,h,c,d,p,g,f,v,y,b,x,w,E,T,_=this,D=function(e){return e.selected()},C=function(e,t,n,r){null==e&&(e=_.cy);for(var i=0;i<t.length;i++){var a=t[i];e.emit({originalEvent:n,type:a,position:r})}},N=function(e){return e.shiftKey||e.metaKey||e.ctrlKey},A=function(e,t){var n=!0;if(_.cy.hasCompoundNodes()&&e&&e.pannable())for(var r=0;t&&r<t.length;r++){var e=t[r];if(e.isNode()&&e.isParent()&&!e.pannable()){n=!1;break}}else n=!0;return n},L=function(e){e[0]._private.grabbed=!0},S=function(e){e[0]._private.grabbed=!1},O=function(e){e[0]._private.rscratch.inDragLayer=!0},I=function(e){e[0]._private.rscratch.inDragLayer=!1},k=function(e){e[0]._private.rscratch.isGrabTarget=!0},M=function(e){e[0]._private.rscratch.isGrabTarget=!1},P=function(e,t){var n=t.addToList;!n.has(e)&&e.grabbable()&&!e.locked()&&(n.merge(e),L(e))},B=function(e,t){if(e.cy().hasCompoundNodes()&&(null!=t.inDragLayer||null!=t.addToList)){var n=e.descendants();t.inDragLayer&&(n.forEach(O),n.connectedEdges().forEach(O)),t.addToList&&P(n,t)}},F=function(e,t){t=t||{};var n=e.cy().hasCompoundNodes();t.inDragLayer&&(e.forEach(O),e.neighborhood().stdFilter(function(e){return!n||e.isEdge()}).forEach(O)),t.addToList&&e.forEach(function(e){P(e,t)}),B(e,t),G(e,{inDragLayer:t.inDragLayer}),_.updateCachedGrabbedEles()},z=function(e){e&&(_.getCachedZSortedEles().forEach(function(e){S(e),I(e),M(e)}),_.updateCachedGrabbedEles())},G=function(e,t){if((null!=t.inDragLayer||null!=t.addToList)&&e.cy().hasCompoundNodes()){var n=e.ancestors().orphans();if(!n.same(e)){var r=n.descendants().spawnSelf().merge(n).unmerge(e).unmerge(e.descendants()),i=r.connectedEdges();t.inDragLayer&&(i.forEach(O),r.forEach(O)),t.addToList&&r.forEach(function(e){P(e,t)})}}},Y=function(){null!=document.activeElement&&null!=document.activeElement.blur&&document.activeElement.blur()},X="undefined"!=typeof MutationObserver,V="undefined"!=typeof ResizeObserver;X?(_.removeObserver=new MutationObserver(function(e){for(var t=0;t<e.length;t++){var n=e[t].removedNodes;if(n){for(var r=0;r<n.length;r++)if(n[r]===_.container){_.destroy();break}}}}),_.container.parentNode&&_.removeObserver.observe(_.container.parentNode,{childList:!0})):_.registerBinding(_.container,"DOMNodeRemoved",function(e){_.destroy()});var U=eR(function(){_.cy.resize()},100);X&&(_.styleObserver=new MutationObserver(U),_.styleObserver.observe(_.container,{attributes:!0})),_.registerBinding(window,"resize",U),V&&(_.resizeObserver=new ResizeObserver(U),_.resizeObserver.observe(_.container));var j=function(){_.invalidateContainerClientCoordsCache()};(function(e,t){for(;null!=e;)t(e),e=e.parentNode})(_.container,function(e){_.registerBinding(e,"transitionend",j),_.registerBinding(e,"animationend",j),_.registerBinding(e,"scroll",j)}),_.registerBinding(_.container,"contextmenu",function(e){e.preventDefault()});var H=function(e){for(var t=_.findContainerClientCoords(),n=t[0],r=t[1],i=t[2],a=t[3],o=e.touches?e.touches:[e],s=!1,l=0;l<o.length;l++){var u=o[l];if(n<=u.clientX&&u.clientX<=n+i&&r<=u.clientY&&u.clientY<=r+a){s=!0;break}}if(!s)return!1;for(var h=_.container,c=e.target.parentNode,d=!1;c;){if(c===h){d=!0;break}c=c.parentNode}return!!d};_.registerBinding(_.container,"mousedown",function(e){if(H(e)){e.preventDefault(),Y(),_.hoverData.capture=!0,_.hoverData.which=e.which;var t=_.cy,n=[e.clientX,e.clientY],r=_.projectIntoViewport(n[0],n[1]),i=_.selection,a=_.findNearestElements(r[0],r[1],!0,!1),o=a[0],s=_.dragData.possibleDragElements;if(_.hoverData.mdownPos=r,_.hoverData.mdownGPos=n,3==e.which){_.hoverData.cxtStarted=!0;var l={originalEvent:e,type:"cxttapstart",position:{x:r[0],y:r[1]}};o?(o.activate(),o.emit(l),_.hoverData.down=o):t.emit(l),_.hoverData.downTime=new Date().getTime(),_.hoverData.cxtDragged=!1}else if(1==e.which){if(o&&o.activate(),null!=o&&_.nodeIsGrabbable(o)){var u=function(t){return{originalEvent:e,type:t,position:{x:r[0],y:r[1]}}};if(k(o),o.selected()){s=_.dragData.possibleDragElements=t.collection();var h=t.$(function(e){return e.isNode()&&e.selected()&&_.nodeIsGrabbable(e)});F(h,{addToList:s}),o.emit(u("grabon")),h.forEach(function(e){e.emit(u("grab"))})}else F(o,{addToList:s=_.dragData.possibleDragElements=t.collection()}),o.emit(u("grabon")).emit(u("grab"));_.redrawHint("eles",!0),_.redrawHint("drag",!0)}_.hoverData.down=o,_.hoverData.downs=a,_.hoverData.downTime=new Date().getTime(),C(o,["mousedown","tapstart","vmousedown"],e,{x:r[0],y:r[1]}),null==o?(i[4]=1,_.data.bgActivePosistion={x:r[0],y:r[1]},_.redrawHint("select",!0),_.redraw()):o.pannable()&&(i[4]=1),_.hoverData.tapholdCancelled=!1,clearTimeout(_.hoverData.tapholdTimeout),_.hoverData.tapholdTimeout=setTimeout(function(){if(!_.hoverData.tapholdCancelled){var n=_.hoverData.down;n?n.emit({originalEvent:e,type:"taphold",position:{x:r[0],y:r[1]}}):t.emit({originalEvent:e,type:"taphold",position:{x:r[0],y:r[1]}})}},_.tapholdDuration)}i[0]=i[2]=r[0],i[1]=i[3]=r[1]}},!1),_.registerBinding(window,"mousemove",function(e){if(_.hoverData.capture||H(e)){var t=!1,n=_.cy,r=n.zoom(),i=[e.clientX,e.clientY],a=_.projectIntoViewport(i[0],i[1]),o=_.hoverData.mdownPos,s=_.hoverData.mdownGPos,l=_.selection,u=null;_.hoverData.draggingEles||_.hoverData.dragging||_.hoverData.selecting||(u=_.findNearestElement(a[0],a[1],!0,!1));var h=_.hoverData.last,c=_.hoverData.down,d=[a[0]-l[2],a[1]-l[3]],p=_.dragData.possibleDragElements;if(s){var g=i[0]-s[0],f=i[1]-s[1];_.hoverData.isOverThresholdDrag=w=g*g+f*f>=_.desktopTapThreshold2}var v=N(e);w&&(_.hoverData.tapholdCancelled=!0),t=!0,C(u,["mousemove","vmousemove","tapdrag"],e,{x:a[0],y:a[1]});var y=function(){_.data.bgActivePosistion=void 0,_.hoverData.selecting||n.emit({originalEvent:e,type:"boxstart",position:{x:a[0],y:a[1]}}),l[4]=1,_.hoverData.selecting=!0,_.redrawHint("select",!0),_.redraw()};if(3===_.hoverData.which){if(w){var b={originalEvent:e,type:"cxtdrag",position:{x:a[0],y:a[1]}};c?c.emit(b):n.emit(b),_.hoverData.cxtDragged=!0,(!_.hoverData.cxtOver||u!==_.hoverData.cxtOver)&&(_.hoverData.cxtOver&&_.hoverData.cxtOver.emit({originalEvent:e,type:"cxtdragout",position:{x:a[0],y:a[1]}}),_.hoverData.cxtOver=u,u&&u.emit({originalEvent:e,type:"cxtdragover",position:{x:a[0],y:a[1]}}))}}else if(_.hoverData.dragging){if(t=!0,n.panningEnabled()&&n.userPanningEnabled()){if(_.hoverData.justStartedPan){var x=_.hoverData.mdownPos;E={x:(a[0]-x[0])*r,y:(a[1]-x[1])*r},_.hoverData.justStartedPan=!1}else E={x:d[0]*r,y:d[1]*r};n.panBy(E),n.emit("dragpan"),_.hoverData.dragged=!0}a=_.projectIntoViewport(e.clientX,e.clientY)}else if(1==l[4]&&(null==c||c.pannable()))w&&(!_.hoverData.dragging&&n.boxSelectionEnabled()&&(v||!n.panningEnabled()||!n.userPanningEnabled())?y():!_.hoverData.selecting&&n.panningEnabled()&&n.userPanningEnabled()&&A(c,_.hoverData.downs)&&(_.hoverData.dragging=!0,_.hoverData.justStartedPan=!0,l[4]=0,_.data.bgActivePosistion=t_(o),_.redrawHint("select",!0),_.redraw()),c&&c.pannable()&&c.active()&&c.unactivate());else{if(c&&c.pannable()&&c.active()&&c.unactivate(),c&&c.grabbed()||u==h||(h&&C(h,["mouseout","tapdragout"],e,{x:a[0],y:a[1]}),u&&C(u,["mouseover","tapdragover"],e,{x:a[0],y:a[1]}),_.hoverData.last=u),c){if(w){if(n.boxSelectionEnabled()&&v)c&&c.grabbed()&&(z(p),c.emit("freeon"),p.emit("free"),_.dragData.didDrag&&(c.emit("dragfreeon"),p.emit("dragfree"))),y();else if(c&&c.grabbed()&&_.nodeIsDraggable(c)){var w,E,T,D=!_.dragData.didDrag;D&&_.redrawHint("eles",!0),_.dragData.didDrag=!0,_.hoverData.draggingEles||F(p,{inDragLayer:!0});var L={x:0,y:0};if(R(d[0])&&R(d[1])&&(L.x+=d[0],L.y+=d[1],D)){var S=_.hoverData.dragDelta;S&&R(S[0])&&R(S[1])&&(L.x+=S[0],L.y+=S[1])}_.hoverData.draggingEles=!0,p.silentShift(L).emit("position drag"),_.redrawHint("drag",!0),_.redraw()}}else 0===(T=_.hoverData.dragDelta=_.hoverData.dragDelta||[]).length?(T.push(d[0]),T.push(d[1])):(T[0]+=d[0],T[1]+=d[1])}t=!0}if(l[2]=a[0],l[3]=a[1],t)return e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),!1}},!1),_.registerBinding(window,"mouseup",function(r){if(_.hoverData.capture){_.hoverData.capture=!1;var i=_.cy,a=_.projectIntoViewport(r.clientX,r.clientY),o=_.selection,s=_.findNearestElement(a[0],a[1],!0,!1),l=_.dragData.possibleDragElements,u=_.hoverData.down,h=N(r);if(_.data.bgActivePosistion&&(_.redrawHint("select",!0),_.redraw()),_.hoverData.tapholdCancelled=!0,_.data.bgActivePosistion=void 0,u&&u.unactivate(),3===_.hoverData.which){var c={originalEvent:r,type:"cxttapend",position:{x:a[0],y:a[1]}};if(u?u.emit(c):i.emit(c),!_.hoverData.cxtDragged){var d={originalEvent:r,type:"cxttap",position:{x:a[0],y:a[1]}};u?u.emit(d):i.emit(d)}_.hoverData.cxtDragged=!1,_.hoverData.which=null}else if(1===_.hoverData.which){if(C(s,["mouseup","tapend","vmouseup"],r,{x:a[0],y:a[1]}),_.dragData.didDrag||_.hoverData.dragged||_.hoverData.selecting||_.hoverData.isOverThresholdDrag||(C(u,["click","tap","vclick"],r,{x:a[0],y:a[1]}),t=!1,r.timeStamp-n<=i.multiClickDebounceTime()?(e&&clearTimeout(e),t=!0,n=null,C(u,["dblclick","dbltap","vdblclick"],r,{x:a[0],y:a[1]})):(e=setTimeout(function(){t||C(u,["oneclick","onetap","voneclick"],r,{x:a[0],y:a[1]})},i.multiClickDebounceTime()),n=r.timeStamp)),null!=u||_.dragData.didDrag||_.hoverData.selecting||_.hoverData.dragged||N(r)||(i.$(D).unselect(["tapunselect"]),l.length>0&&_.redrawHint("eles",!0),_.dragData.possibleDragElements=l=i.collection()),s!=u||_.dragData.didDrag||_.hoverData.selecting||null==s||!s._private.selectable||(_.hoverData.dragging||("additive"===i.selectionType()||h?s.selected()?s.unselect(["tapunselect"]):s.select(["tapselect"]):h||(i.$(D).unmerge(s).unselect(["tapunselect"]),s.select(["tapselect"]))),_.redrawHint("eles",!0)),_.hoverData.selecting){var p=i.collection(_.getAllInBox(o[0],o[1],o[2],o[3]));_.redrawHint("select",!0),p.length>0&&_.redrawHint("eles",!0),i.emit({type:"boxend",originalEvent:r,position:{x:a[0],y:a[1]}}),"additive"!==i.selectionType()&&(h||i.$(D).unmerge(p).unselect()),p.emit("box").stdFilter(function(e){return e.selectable()&&!e.selected()}).select().emit("boxselect"),_.redraw()}if(_.hoverData.dragging&&(_.hoverData.dragging=!1,_.redrawHint("select",!0),_.redrawHint("eles",!0),_.redraw()),!o[4]){_.redrawHint("drag",!0),_.redrawHint("eles",!0);var g=u&&u.grabbed();z(l),g&&(u.emit("freeon"),l.emit("free"),_.dragData.didDrag&&(u.emit("dragfreeon"),l.emit("dragfree")))}}o[4]=0,_.hoverData.down=null,_.hoverData.cxtStarted=!1,_.hoverData.draggingEles=!1,_.hoverData.selecting=!1,_.hoverData.isOverThresholdDrag=!1,_.dragData.didDrag=!1,_.hoverData.dragged=!1,_.hoverData.dragDelta=[],_.hoverData.mdownPos=null,_.hoverData.mdownGPos=null}},!1);var q=function(e){if(!_.scrollingPage){var t=_.cy,n=t.zoom(),r=t.pan(),i=_.projectIntoViewport(e.clientX,e.clientY),a=[i[0]*n+r.x,i[1]*n+r.y];if(_.hoverData.draggingEles||_.hoverData.dragging||_.hoverData.cxtStarted||0!==_.selection[4]){e.preventDefault();return}if(t.panningEnabled()&&t.userPanningEnabled()&&t.zoomingEnabled()&&t.userZoomingEnabled()){e.preventDefault(),_.data.wheelZooming=!0,clearTimeout(_.data.wheelTimeout),_.data.wheelTimeout=setTimeout(function(){_.data.wheelZooming=!1,_.redrawHint("eles",!0),_.redraw()},150),o=(null!=e.deltaY?-(e.deltaY/250):null!=e.wheelDeltaY?e.wheelDeltaY/1e3:e.wheelDelta/1e3)*_.wheelSensitivity,1===e.deltaMode&&(o*=33);var o,s=t.zoom()*Math.pow(10,o);"gesturechange"===e.type&&(s=_.gestureStartZoom*e.scale),t.zoom({level:s,renderedPosition:{x:a[0],y:a[1]}}),t.emit("gesturechange"===e.type?"pinchzoom":"scrollzoom")}}};_.registerBinding(_.container,"wheel",q,!0),_.registerBinding(window,"scroll",function(e){_.scrollingPage=!0,clearTimeout(_.scrollingPageTimeout),_.scrollingPageTimeout=setTimeout(function(){_.scrollingPage=!1},250)},!0),_.registerBinding(_.container,"gesturestart",function(e){_.gestureStartZoom=_.cy.zoom(),_.hasTouchStarted||e.preventDefault()},!0),_.registerBinding(_.container,"gesturechange",function(e){_.hasTouchStarted||q(e)},!0),_.registerBinding(_.container,"mouseout",function(e){var t=_.projectIntoViewport(e.clientX,e.clientY);_.cy.emit({originalEvent:e,type:"mouseout",position:{x:t[0],y:t[1]}})},!1),_.registerBinding(_.container,"mouseover",function(e){var t=_.projectIntoViewport(e.clientX,e.clientY);_.cy.emit({originalEvent:e,type:"mouseover",position:{x:t[0],y:t[1]}})},!1);var W=function(e,t,n,r){return Math.sqrt((n-e)*(n-e)+(r-t)*(r-t))},$=function(e,t,n,r){return(n-e)*(n-e)+(r-t)*(r-t)};if(_.registerBinding(_.container,"touchstart",v=function(e){if(_.hasTouchStarted=!0,H(e)){Y(),_.touchData.capture=!0,_.data.bgActivePosistion=void 0;var t=_.cy,n=_.touchData.now,v=_.touchData.earlier;if(e.touches[0]){var y=_.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);n[0]=y[0],n[1]=y[1]}if(e.touches[1]){var y=_.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY);n[2]=y[0],n[3]=y[1]}if(e.touches[2]){var y=_.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY);n[4]=y[0],n[5]=y[1]}if(e.touches[1]){_.touchData.singleTouchMoved=!0,z(_.dragData.touchDragEles);var b=_.findContainerClientCoords();c=b[0],d=b[1],p=b[2],g=b[3],r=e.touches[0].clientX-c,i=e.touches[0].clientY-d,a=e.touches[1].clientX-c,o=e.touches[1].clientY-d,f=0<=r&&r<=p&&0<=a&&a<=p&&0<=i&&i<=g&&0<=o&&o<=g;var x=t.pan(),w=t.zoom();if(s=W(r,i,a,o),l=$(r,i,a,o),h=[((u=[(r+a)/2,(i+o)/2])[0]-x.x)/w,(u[1]-x.y)/w],l<4e4&&!e.touches[2]){var E=_.findNearestElement(n[0],n[1],!0,!0),T=_.findNearestElement(n[2],n[3],!0,!0);E&&E.isNode()?(E.activate().emit({originalEvent:e,type:"cxttapstart",position:{x:n[0],y:n[1]}}),_.touchData.start=E):T&&T.isNode()?(T.activate().emit({originalEvent:e,type:"cxttapstart",position:{x:n[0],y:n[1]}}),_.touchData.start=T):t.emit({originalEvent:e,type:"cxttapstart",position:{x:n[0],y:n[1]}}),_.touchData.start&&(_.touchData.start._private.grabbed=!1),_.touchData.cxt=!0,_.touchData.cxtDragged=!1,_.data.bgActivePosistion=void 0,_.redraw();return}}if(e.touches[2])t.boxSelectionEnabled()&&e.preventDefault();else if(e.touches[1]);else if(e.touches[0]){var D=_.findNearestElements(n[0],n[1],!0,!0),N=D[0];if(null!=N&&(N.activate(),_.touchData.start=N,_.touchData.starts=D,_.nodeIsGrabbable(N))){var A=_.dragData.touchDragEles=t.collection(),L=null;_.redrawHint("eles",!0),_.redrawHint("drag",!0),N.selected()?F(L=t.$(function(e){return e.selected()&&_.nodeIsGrabbable(e)}),{addToList:A}):F(N,{addToList:A}),k(N);var S=function(t){return{originalEvent:e,type:t,position:{x:n[0],y:n[1]}}};N.emit(S("grabon")),L?L.forEach(function(e){e.emit(S("grab"))}):N.emit(S("grab"))}C(N,["touchstart","tapstart","vmousedown"],e,{x:n[0],y:n[1]}),null==N&&(_.data.bgActivePosistion={x:y[0],y:y[1]},_.redrawHint("select",!0),_.redraw()),_.touchData.singleTouchMoved=!1,_.touchData.singleTouchStartTime=+new Date,clearTimeout(_.touchData.tapholdTimeout),_.touchData.tapholdTimeout=setTimeout(function(){!1!==_.touchData.singleTouchMoved||_.pinching||_.touchData.selecting||C(_.touchData.start,["taphold"],e,{x:n[0],y:n[1]})},_.tapholdDuration)}if(e.touches.length>=1){for(var O=_.touchData.startPosition=[],I=0;I<n.length;I++)O[I]=v[I]=n[I];var M=e.touches[0];_.touchData.startGPosition=[M.clientX,M.clientY]}}},!1),_.registerBinding(window,"touchmove",y=function(e){var t=_.touchData.capture;if(t||H(e)){var n=_.selection,u=_.cy,p=_.touchData.now,g=_.touchData.earlier,v=u.zoom();if(e.touches[0]){var y=_.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);p[0]=y[0],p[1]=y[1]}if(e.touches[1]){var y=_.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY);p[2]=y[0],p[3]=y[1]}if(e.touches[2]){var y=_.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY);p[4]=y[0],p[5]=y[1]}var b=_.touchData.startGPosition;if(t&&e.touches[0]&&b){for(var x=[],w=0;w<p.length;w++)x[w]=p[w]-g[w];var E=e.touches[0].clientX-b[0],T=E*E,D=e.touches[0].clientY-b[1];er=T+D*D>=_.touchTapThreshold2}if(t&&_.touchData.cxt){e.preventDefault();var N=e.touches[0].clientX-c,L=e.touches[0].clientY-d,S=e.touches[1].clientX-c,O=e.touches[1].clientY-d,I=$(N,L,S,O);if(I/l>=2.25||I>=22500){_.touchData.cxt=!1,_.data.bgActivePosistion=void 0,_.redrawHint("select",!0);var k={originalEvent:e,type:"cxttapend",position:{x:p[0],y:p[1]}};_.touchData.start?(_.touchData.start.unactivate().emit(k),_.touchData.start=null):u.emit(k)}}if(t&&_.touchData.cxt){var k={originalEvent:e,type:"cxtdrag",position:{x:p[0],y:p[1]}};_.data.bgActivePosistion=void 0,_.redrawHint("select",!0),_.touchData.start?_.touchData.start.emit(k):u.emit(k),_.touchData.start&&(_.touchData.start._private.grabbed=!1),_.touchData.cxtDragged=!0;var M=_.findNearestElement(p[0],p[1],!0,!0);(!_.touchData.cxtOver||M!==_.touchData.cxtOver)&&(_.touchData.cxtOver&&_.touchData.cxtOver.emit({originalEvent:e,type:"cxtdragout",position:{x:p[0],y:p[1]}}),_.touchData.cxtOver=M,M&&M.emit({originalEvent:e,type:"cxtdragover",position:{x:p[0],y:p[1]}}))}else if(t&&e.touches[2]&&u.boxSelectionEnabled())e.preventDefault(),_.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,_.touchData.selecting||u.emit({originalEvent:e,type:"boxstart",position:{x:p[0],y:p[1]}}),_.touchData.selecting=!0,_.touchData.didSelect=!0,n[4]=1,n&&0!==n.length&&void 0!==n[0]?(n[2]=(p[0]+p[2]+p[4])/3,n[3]=(p[1]+p[3]+p[5])/3):(n[0]=(p[0]+p[2]+p[4])/3,n[1]=(p[1]+p[3]+p[5])/3,n[2]=(p[0]+p[2]+p[4])/3+1,n[3]=(p[1]+p[3]+p[5])/3+1),_.redrawHint("select",!0),_.redraw();else if(t&&e.touches[1]&&!_.touchData.didSelect&&u.zoomingEnabled()&&u.panningEnabled()&&u.userZoomingEnabled()&&u.userPanningEnabled()){e.preventDefault(),_.data.bgActivePosistion=void 0,_.redrawHint("select",!0);var P=_.dragData.touchDragEles;if(P){_.redrawHint("drag",!0);for(var B=0;B<P.length;B++){var G=P[B]._private;G.grabbed=!1,G.rscratch.inDragLayer=!1}}var Y=_.touchData.start,N=e.touches[0].clientX-c,L=e.touches[0].clientY-d,S=e.touches[1].clientX-c,O=e.touches[1].clientY-d,X=W(N,L,S,O),V=X/s;if(f){var U=N-r,j=L-i,q=S-a,K=O-o,Z=u.zoom(),Q=Z*V,J=u.pan(),ee=h[0]*Z+J.x,et=h[1]*Z+J.y,en={x:-Q/Z*(ee-J.x-(U+q)/2)+ee,y:-Q/Z*(et-J.y-(j+K)/2)+et};if(Y&&Y.active()){var P=_.dragData.touchDragEles;z(P),_.redrawHint("drag",!0),_.redrawHint("eles",!0),Y.unactivate().emit("freeon"),P.emit("free"),_.dragData.didDrag&&(Y.emit("dragfreeon"),P.emit("dragfree"))}u.viewport({zoom:Q,pan:en,cancelOnFailedZoom:!0}),u.emit("pinchzoom"),s=X,r=N,i=L,a=S,o=O,_.pinching=!0}if(e.touches[0]){var y=_.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);p[0]=y[0],p[1]=y[1]}if(e.touches[1]){var y=_.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY);p[2]=y[0],p[3]=y[1]}if(e.touches[2]){var y=_.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY);p[4]=y[0],p[5]=y[1]}}else if(e.touches[0]&&!_.touchData.didSelect){var er,M,ei=_.touchData.start,ea=_.touchData.last;if(_.hoverData.draggingEles||_.swipePanning||(M=_.findNearestElement(p[0],p[1],!0,!0)),t&&null!=ei&&e.preventDefault(),t&&null!=ei&&_.nodeIsDraggable(ei)){if(er){var P=_.dragData.touchDragEles,eo=!_.dragData.didDrag;eo&&F(P,{inDragLayer:!0}),_.dragData.didDrag=!0;var es={x:0,y:0};if(R(x[0])&&R(x[1])&&(es.x+=x[0],es.y+=x[1],eo)){_.redrawHint("eles",!0);var el=_.touchData.dragDelta;el&&R(el[0])&&R(el[1])&&(es.x+=el[0],es.y+=el[1])}_.hoverData.draggingEles=!0,P.silentShift(es).emit("position drag"),_.redrawHint("drag",!0),_.touchData.startPosition[0]==g[0]&&_.touchData.startPosition[1]==g[1]&&_.redrawHint("eles",!0),_.redraw()}else{var el=_.touchData.dragDelta=_.touchData.dragDelta||[];0===el.length?(el.push(x[0]),el.push(x[1])):(el[0]+=x[0],el[1]+=x[1])}}if(C(ei||M,["touchmove","tapdrag","vmousemove"],e,{x:p[0],y:p[1]}),ei&&ei.grabbed()||M==ea||(ea&&ea.emit({originalEvent:e,type:"tapdragout",position:{x:p[0],y:p[1]}}),M&&M.emit({originalEvent:e,type:"tapdragover",position:{x:p[0],y:p[1]}})),_.touchData.last=M,t)for(var B=0;B<p.length;B++)p[B]&&_.touchData.startPosition[B]&&er&&(_.touchData.singleTouchMoved=!0);if(t&&(null==ei||ei.pannable())&&u.panningEnabled()&&u.userPanningEnabled()){A(ei,_.touchData.starts)&&(e.preventDefault(),_.data.bgActivePosistion||(_.data.bgActivePosistion=t_(_.touchData.startPosition)),_.swipePanning?(u.panBy({x:x[0]*v,y:x[1]*v}),u.emit("dragpan")):er&&(_.swipePanning=!0,u.panBy({x:E*v,y:D*v}),u.emit("dragpan"),ei&&(ei.unactivate(),_.redrawHint("select",!0),_.touchData.start=null)));var y=_.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);p[0]=y[0],p[1]=y[1]}}for(var w=0;w<p.length;w++)g[w]=p[w];t&&e.touches.length>0&&!_.hoverData.draggingEles&&!_.swipePanning&&null!=_.data.bgActivePosistion&&(_.data.bgActivePosistion=void 0,_.redrawHint("select",!0),_.redraw())}},!1),_.registerBinding(window,"touchcancel",b=function(e){var t=_.touchData.start;_.touchData.capture=!1,t&&t.unactivate()}),_.registerBinding(window,"touchend",x=function(e){var t,n=_.touchData.start;if(_.touchData.capture){0===e.touches.length&&(_.touchData.capture=!1),e.preventDefault();var r=_.selection;_.swipePanning=!1,_.hoverData.draggingEles=!1;var i=_.cy,a=i.zoom(),o=_.touchData.now,s=_.touchData.earlier;if(e.touches[0]){var l=_.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);o[0]=l[0],o[1]=l[1]}if(e.touches[1]){var l=_.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY);o[2]=l[0],o[3]=l[1]}if(e.touches[2]){var l=_.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY);o[4]=l[0],o[5]=l[1]}if(n&&n.unactivate(),_.touchData.cxt){if(t={originalEvent:e,type:"cxttapend",position:{x:o[0],y:o[1]}},n?n.emit(t):i.emit(t),!_.touchData.cxtDragged){var u={originalEvent:e,type:"cxttap",position:{x:o[0],y:o[1]}};n?n.emit(u):i.emit(u)}_.touchData.start&&(_.touchData.start._private.grabbed=!1),_.touchData.cxt=!1,_.touchData.start=null,_.redraw();return}if(!e.touches[2]&&i.boxSelectionEnabled()&&_.touchData.selecting){_.touchData.selecting=!1;var h=i.collection(_.getAllInBox(r[0],r[1],r[2],r[3]));r[0]=void 0,r[1]=void 0,r[2]=void 0,r[3]=void 0,r[4]=0,_.redrawHint("select",!0),i.emit({type:"boxend",originalEvent:e,position:{x:o[0],y:o[1]}}),h.emit("box").stdFilter(function(e){return e.selectable()&&!e.selected()}).select().emit("boxselect"),h.nonempty()&&_.redrawHint("eles",!0),_.redraw()}if(null!=n&&n.unactivate(),e.touches[2])_.data.bgActivePosistion=void 0,_.redrawHint("select",!0);else if(e.touches[1]);else if(e.touches[0]);else if(!e.touches[0]){_.data.bgActivePosistion=void 0,_.redrawHint("select",!0);var c=_.dragData.touchDragEles;if(null!=n){var d=n._private.grabbed;z(c),_.redrawHint("drag",!0),_.redrawHint("eles",!0),d&&(n.emit("freeon"),c.emit("free"),_.dragData.didDrag&&(n.emit("dragfreeon"),c.emit("dragfree"))),C(n,["touchend","tapend","vmouseup","tapdragout"],e,{x:o[0],y:o[1]}),n.unactivate(),_.touchData.start=null}else C(_.findNearestElement(o[0],o[1],!0,!0),["touchend","tapend","vmouseup","tapdragout"],e,{x:o[0],y:o[1]});var p=_.touchData.startPosition[0]-o[0],g=_.touchData.startPosition[1]-o[1];_.touchData.singleTouchMoved||(n||i.$(":selected").unselect(["tapunselect"]),C(n,["tap","vclick"],e,{x:o[0],y:o[1]}),w=!1,e.timeStamp-T<=i.multiClickDebounceTime()?(E&&clearTimeout(E),w=!0,T=null,C(n,["dbltap","vdblclick"],e,{x:o[0],y:o[1]})):(E=setTimeout(function(){w||C(n,["onetap","voneclick"],e,{x:o[0],y:o[1]})},i.multiClickDebounceTime()),T=e.timeStamp)),null!=n&&!_.dragData.didDrag&&n._private.selectable&&(p*p+g*g)*a*a<_.touchTapThreshold2&&!_.pinching&&("single"===i.selectionType()?(i.$(D).unmerge(n).unselect(["tapunselect"]),n.select(["tapselect"])):n.selected()?n.unselect(["tapunselect"]):n.select(["tapselect"]),_.redrawHint("eles",!0)),_.touchData.singleTouchMoved=!0}for(var f=0;f<o.length;f++)s[f]=o[f];_.dragData.didDrag=!1,0===e.touches.length&&(_.touchData.dragDelta=[],_.touchData.startPosition=null,_.touchData.startGPosition=null,_.touchData.didSelect=!1),e.touches.length<2&&(1===e.touches.length&&(_.touchData.startGPosition=[e.touches[0].clientX,e.touches[0].clientY]),_.pinching=!1,_.redrawHint("eles",!0),_.redraw())}},!1),"undefined"==typeof TouchEvent){var K=[],Z=function(e){return{clientX:e.clientX,clientY:e.clientY,force:1,identifier:e.pointerId,pageX:e.pageX,pageY:e.pageY,radiusX:e.width/2,radiusY:e.height/2,screenX:e.screenX,screenY:e.screenY,target:e.target}},Q=function(e){K.push({event:e,touch:Z(e)})},J=function(e){for(var t=0;t<K.length;t++)if(K[t].event.pointerId===e.pointerId){K.splice(t,1);return}},ee=function(e){var t=K.filter(function(t){return t.event.pointerId===e.pointerId})[0];t.event=e,t.touch=Z(e)},et=function(e){e.touches=K.map(function(e){return e.touch})},en=function(e){return"mouse"===e.pointerType||4===e.pointerType};_.registerBinding(_.container,"pointerdown",function(e){en(e)||(e.preventDefault(),Q(e),et(e),v(e))}),_.registerBinding(_.container,"pointerup",function(e){en(e)||(J(e),et(e),x(e))}),_.registerBinding(_.container,"pointercancel",function(e){en(e)||(J(e),et(e),b(e))}),_.registerBinding(_.container,"pointermove",function(e){en(e)||(e.preventDefault(),ee(e),et(e),y(e))})}};var o7={};o7.generatePolygon=function(e,t){return this.nodeShapes[e]={renderer:this,name:e,points:t,draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl("polygon",e,t,n,r,i,this.points)},intersectLine:function(e,t,n,r,i,a,o){return nn(i,a,this.points,e,t,n/2,r/2,o)},checkPoint:function(e,t,n,r,i,a,o){return t5(e,t,this.points,a,o,r,i,[0,-1],n)}}},o7.generateEllipse=function(){return this.nodeShapes.ellipse={renderer:this,name:"ellipse",draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,r,i,a,o){return t6(i,a,e,t,n/2+o,r/2+o)},checkPoint:function(e,t,n,r,i,a,o){return t8(e,t,r,i,a,o,n)}}},o7.generateRoundPolygon=function(e,t){for(var n=Array(2*t.length),r=0;r<t.length/2;r++){var i=2*r,a=void 0;a=r<t.length/2-1?(r+1)*2:0,n[4*r]=t[i],n[4*r+1]=t[i+1];var o=t[a]-t[i],s=t[a+1]-t[i+1],l=Math.sqrt(o*o+s*s);n[4*r+2]=o/l,n[4*r+3]=s/l}return this.nodeShapes[e]={renderer:this,name:e,points:n,draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl("round-polygon",e,t,n,r,i,this.points)},intersectLine:function(e,t,n,r,i,a,o){return nr(i,a,this.points,e,t,n,r)},checkPoint:function(e,t,n,r,i,a,o){return t3(e,t,this.points,a,o,r,i)}}},o7.generateRoundRectangle=function(){return this.nodeShapes["round-rectangle"]=this.nodeShapes.roundrectangle={renderer:this,name:"round-rectangle",points:na(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,r,i,a,o){return t$(i,a,e,t,n,r,o)},checkPoint:function(e,t,n,r,i,a,o){var s=nl(r,i),l=2*s;return!!(t5(e,t,this.points,a,o,r,i-l,[0,-1],n)||t5(e,t,this.points,a,o,r-l,i,[0,-1],n)||t8(e,t,l,l,a-r/2+s,o-i/2+s,n)||t8(e,t,l,l,a+r/2-s,o-i/2+s,n)||t8(e,t,l,l,a+r/2-s,o+i/2-s,n)||t8(e,t,l,l,a-r/2+s,o+i/2-s,n))}}},o7.generateCutRectangle=function(){return this.nodeShapes["cut-rectangle"]=this.nodeShapes.cutrectangle={renderer:this,name:"cut-rectangle",cornerLength:nh(),points:na(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},generateCutTrianglePts:function(e,t,n,r){var i=this.cornerLength,a=t/2,o=e/2,s=n-o,l=n+o,u=r-a,h=r+a;return{topLeft:[s,u+i,s+i,u,s+i,u+i],topRight:[l-i,u,l,u+i,l-i,u+i],bottomRight:[l,h-i,l-i,h,l-i,h-i],bottomLeft:[s+i,h,s,h-i,s+i,h-i]}},intersectLine:function(e,t,n,r,i,a,o){var s=this.generateCutTrianglePts(n+2*o,r+2*o,e,t);return nn(i,a,[].concat.apply([],[s.topLeft.splice(0,4),s.topRight.splice(0,4),s.bottomRight.splice(0,4),s.bottomLeft.splice(0,4)]),e,t)},checkPoint:function(e,t,n,r,i,a,o){if(t5(e,t,this.points,a,o,r,i-2*this.cornerLength,[0,-1],n)||t5(e,t,this.points,a,o,r-2*this.cornerLength,i,[0,-1],n))return!0;var s=this.generateCutTrianglePts(r,i,a,o);return t2(e,t,s.topLeft)||t2(e,t,s.topRight)||t2(e,t,s.bottomRight)||t2(e,t,s.bottomLeft)}}},o7.generateBarrel=function(){return this.nodeShapes.barrel={renderer:this,name:"barrel",points:na(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,r,i,a,o){var s=this.generateBarrelBezierPts(n+2*o,r+2*o,e,t),l=function(e){var t=tR({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},.15),n=tR({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},.5),r=tR({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},.85);return[e[0],e[1],t.x,t.y,n.x,n.y,r.x,r.y,e[4],e[5]]};return nn(i,a,[].concat(l(s.topLeft),l(s.topRight),l(s.bottomRight),l(s.bottomLeft)),e,t)},generateBarrelBezierPts:function(e,t,n,r){var i=t/2,a=e/2,o=n-a,s=n+a,l=r-i,u=r+i,h=nc(e,t),c=h.heightOffset,d=h.widthOffset,p=h.ctrlPtOffsetPct*e,g={topLeft:[o,l+c,o+p,l,o+d,l],topRight:[s-d,l,s-p,l,s,l+c],bottomRight:[s,u-c,s-p,u,s-d,u],bottomLeft:[o+d,u,o+p,u,o,u-c]};return g.topLeft.isTop=!0,g.topRight.isTop=!0,g.bottomLeft.isBottom=!0,g.bottomRight.isBottom=!0,g},checkPoint:function(e,t,n,r,i,a,o){var s=nc(r,i),l=s.heightOffset,u=s.widthOffset;if(t5(e,t,this.points,a,o,r,i-2*l,[0,-1],n)||t5(e,t,this.points,a,o,r-2*u,i,[0,-1],n))return!0;for(var h=this.generateBarrelBezierPts(r,i,a,o),c=Object.keys(h),d=0;d<c.length;d++){var p=h[c[d]],g=function(e,t,n){var r=n[4],i=n[2],a=n[0],o=n[5],s=n[1],l=Math.min(r,a),u=Math.max(r,a),h=Math.min(o,s),c=Math.max(o,s);if(l<=e&&e<=u&&h<=t&&t<=c){var d=[r-2*i+a,2*(i-r),r],p=tQ(d[0],d[1],d[2],e).filter(function(e){return 0<=e&&e<=1});if(p.length>0)return p[0]}return null}(e,t,p);if(null!=g){var f=tP(p[5],p[3],p[1],g);if(p.isTop&&f<=t||p.isBottom&&t<=f)return!0}}return!1}}},o7.generateBottomRoundrectangle=function(){return this.nodeShapes["bottom-round-rectangle"]=this.nodeShapes.bottomroundrectangle={renderer:this,name:"bottom-round-rectangle",points:na(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,r,i,a,o){var s=e-(n/2+o),l=t-(r/2+o),u=e+(n/2+o),h=nt(i,a,e,t,s,l,u,l,!1);return h.length>0?h:t$(i,a,e,t,n,r,o)},checkPoint:function(e,t,n,r,i,a,o){var s=nl(r,i),l=2*s;if(t5(e,t,this.points,a,o,r,i-l,[0,-1],n)||t5(e,t,this.points,a,o,r-l,i,[0,-1],n))return!0;var u=r/2+2*n,h=i/2+2*n;return!!(t2(e,t,[a-u,o-h,a-u,o,a+u,o,a+u,o-h])||t8(e,t,l,l,a+r/2-s,o+i/2-s,n)||t8(e,t,l,l,a-r/2+s,o+i/2-s,n))}}},o7.registerNodeShapes=function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon("triangle",na(3,0)),this.generateRoundPolygon("round-triangle",na(3,0)),this.generatePolygon("rectangle",na(4,0)),e.square=e.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();var n=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",n),this.generateRoundPolygon("round-diamond",n),this.generatePolygon("pentagon",na(5,0)),this.generateRoundPolygon("round-pentagon",na(5,0)),this.generatePolygon("hexagon",na(6,0)),this.generateRoundPolygon("round-hexagon",na(6,0)),this.generatePolygon("heptagon",na(7,0)),this.generateRoundPolygon("round-heptagon",na(7,0)),this.generatePolygon("octagon",na(8,0)),this.generateRoundPolygon("round-octagon",na(8,0));var r=Array(20),i=ns(5,0),a=ns(5,Math.PI/5),o=.5*(3-Math.sqrt(5));o*=1.57;for(var s=0;s<a.length/2;s++)a[2*s]*=o,a[2*s+1]*=o;for(var s=0;s<5;s++)r[4*s]=i[2*s],r[4*s+1]=i[2*s+1],r[4*s+2]=a[2*s],r[4*s+3]=a[2*s+1];r=no(r),this.generatePolygon("star",r),this.generatePolygon("vee",[-1,-1,0,-.333,1,-1,0,1]),this.generatePolygon("rhomboid",[-1,-1,.333,-1,1,1,-.333,1]),this.generatePolygon("right-rhomboid",[-.333,-1,1,-1,.333,1,-1,1]),this.nodeShapes.concavehexagon=this.generatePolygon("concave-hexagon",[-1,-.95,-.75,0,-1,.95,1,.95,.75,0,1,-.95]);var l=[-1,-1,.25,-1,1,0,.25,1,-1,1];this.generatePolygon("tag",l),this.generateRoundPolygon("round-tag",l),e.makePolygon=function(e){var n,r="polygon-"+e.join("$");return(n=this[r])?n:t.generatePolygon(r,e)}};var se={};se.timeToRender=function(){return this.redrawTotalTime/this.redrawCount},se.redraw=function(e){e=e||te(),void 0===this.averageRedrawTime&&(this.averageRedrawTime=0),void 0===this.lastRedrawTime&&(this.lastRedrawTime=0),void 0===this.lastDrawTime&&(this.lastDrawTime=0),this.requestedFrame=!0,this.renderOptions=e},se.beforeRender=function(e,t){if(!this.destroyed){null==t&&e3("Priority is not optional for beforeRender");var n=this.beforeRenderCallbacks;n.push({fn:e,priority:t}),n.sort(function(e,t){return t.priority-e.priority})}};var st=function(e,t,n){for(var r=e.beforeRenderCallbacks,i=0;i<r.length;i++)r[i].fn(t,n)};se.startRenderLoop=function(){var e=this,t=e.cy;e.renderLoopStarted||(e.renderLoopStarted=!0,eG(function n(r){if(!e.destroyed){if(t.batching());else if(e.requestedFrame&&!e.skipFrame){st(e,!0,r);var i=eF();e.render(e.renderOptions);var a=e.lastDrawTime=eF();void 0===e.averageRedrawTime&&(e.averageRedrawTime=a-i),void 0===e.redrawCount&&(e.redrawCount=0),e.redrawCount++,void 0===e.redrawTotalTime&&(e.redrawTotalTime=0);var o=a-i;e.redrawTotalTime+=o,e.lastRedrawTime=o,e.averageRedrawTime=e.averageRedrawTime/2+o/2,e.requestedFrame=!1}else st(e,!1,r);e.skipFrame=!1,eG(n)}}))};var sn=function(e){this.init(e)},sr=sn.prototype;sr.clientFunctions=["redrawHint","render","renderTo","matchCanvasSize","nodeShapeImpl","arrowShapeImpl"],sr.init=function(e){this.options=e,this.cy=e.cy;var t=this.container=e.cy.container();if(D){var n=D.document,r=n.head,i="__________cytoscape_stylesheet",a="__________cytoscape_container",o=null!=n.getElementById(i);if(0>t.className.indexOf(a)&&(t.className=(t.className||"")+" "+a),!o){var s=n.createElement("style");s.id=i,s.textContent="."+a+" { position: relative; }",r.insertBefore(s,r.children[0])}"static"===D.getComputedStyle(t).getPropertyValue("position")&&e9("A Cytoscape container has style position:static and so can not use UI extensions properly")}this.selection=[void 0,void 0,void 0,void 0,0],this.bezierProjPcts=[.05,.225,.4,.5,.6,.775,.95],this.hoverData={down:null,last:null,downTime:null,triggerMode:null,dragging:!1,initialPan:[null,null],capture:!1},this.dragData={possibleDragElements:[]},this.touchData={start:null,capture:!1,startPosition:[null,null,null,null,null,null],singleTouchStartTime:null,singleTouchMoved:!0,now:[null,null,null,null,null,null],earlier:[null,null,null,null,null,null]},this.redraws=0,this.showFps=e.showFps,this.debug=e.debug,this.hideEdgesOnViewport=e.hideEdgesOnViewport,this.textureOnViewport=e.textureOnViewport,this.wheelSensitivity=e.wheelSensitivity,this.motionBlurEnabled=e.motionBlur,this.forcedPixelRatio=R(e.pixelRatio)?e.pixelRatio:null,this.motionBlur=e.motionBlur,this.motionBlurOpacity=e.motionBlurOpacity,this.motionBlurTransparency=1-this.motionBlurOpacity,this.motionBlurPxRatio=1,this.mbPxRBlurry=1,this.minMbLowQualFrames=4,this.fullQualityMb=!1,this.clearedForMotionBlur=[],this.desktopTapThreshold=e.desktopTapThreshold,this.desktopTapThreshold2=e.desktopTapThreshold*e.desktopTapThreshold,this.touchTapThreshold=e.touchTapThreshold,this.touchTapThreshold2=e.touchTapThreshold*e.touchTapThreshold,this.tapholdDuration=500,this.bindings=[],this.beforeRenderCallbacks=[],this.beforeRenderPriorities={animations:400,eleCalcs:300,eleTxrDeq:200,lyrTxrDeq:150,lyrTxrSkip:100},this.registerNodeShapes(),this.registerArrowShapes(),this.registerCalculationListeners()},sr.notify=function(e,t){var n=this.cy;if(!this.destroyed){if("init"===e){this.load();return}if("destroy"===e){this.destroy();return}("add"===e||"remove"===e||"move"===e&&n.hasCompoundNodes()||"load"===e||"zorder"===e||"mount"===e)&&this.invalidateCachedZSortedEles(),"viewport"===e&&this.redrawHint("select",!0),("load"===e||"resize"===e||"mount"===e)&&(this.invalidateContainerClientCoordsCache(),this.matchCanvasSize(this.container)),this.redrawHint("eles",!0),this.redrawHint("drag",!0),this.startRenderLoop(),this.redraw()}},sr.destroy=function(){this.destroyed=!0,this.cy.stopAnimationLoop();for(var e=0;e<this.bindings.length;e++){var t=this.bindings[e],n=t.target;(n.off||n.removeEventListener).apply(n,t.args)}if(this.bindings=[],this.beforeRenderCallbacks=[],this.onUpdateEleCalcsFns=[],this.removeObserver&&this.removeObserver.disconnect(),this.styleObserver&&this.styleObserver.disconnect(),this.resizeObserver&&this.resizeObserver.disconnect(),this.labelCalcDiv)try{document.body.removeChild(this.labelCalcDiv)}catch(e){}},sr.isHeadless=function(){return!1},[oj,o9,o6,o8,o7,se].forEach(function(e){en(sr,e)});var si=1e3/60,sa=function(e){return function(){var t=this,n=this.renderer;if(!t.dequeueingSetup){t.dequeueingSetup=!0;var r=eR(function(){n.redrawHint("eles",!0),n.redrawHint("drag",!0),n.redraw()},e.deqRedrawThreshold),i=e.priority||e5;n.beforeRender(function(i,a){var o=eF(),s=n.averageRedrawTime,l=n.lastRedrawTime,u=[],h=n.cy.extent(),c=n.getPixelRatio();for(i||n.flushRenderedStyleQueue();;){var d=eF(),p=d-o,g=d-a;if(l<si){var f=si-(i?s:0);if(g>=e.deqFastCost*f)break}else if(i){if(p>=e.deqCost*l||p>=e.deqAvgCost*s)break}else if(g>=e.deqNoDrawCost*si)break;var v=e.deq(t,c,h);if(v.length>0)for(var y=0;y<v.length;y++)u.push(v[y]);else break}u.length>0&&(e.onDeqd(t,u),!i&&e.shouldRedraw(t,u,c,h)&&r())},i(t))}}},so=function(){function e(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e1;t(this,e),this.idsByKey=new tl,this.keyForId=new tl,this.cachesByLvl=new tl,this.lvls=[],this.getKey=n,this.doesEleInvalidateKey=r}return i(e,[{key:"getIdsFor",value:function(e){null==e&&e3("Can not get id list for null key");var t=this.idsByKey,n=this.idsByKey.get(e);return n||(n=new th,t.set(e,n)),n}},{key:"addIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).add(t)}},{key:"deleteIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).delete(t)}},{key:"getNumberOfIdsForKey",value:function(e){return null==e?0:this.getIdsFor(e).size}},{key:"updateKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t),r=this.getKey(e);this.deleteIdForKey(n,t),this.addIdForKey(r,t),this.keyForId.set(t,r)}},{key:"deleteKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteIdForKey(n,t),this.keyForId.delete(t)}},{key:"keyHasChangedFor",value:function(e){var t=e.id();return this.keyForId.get(t)!==this.getKey(e)}},{key:"isInvalid",value:function(e){return this.keyHasChangedFor(e)||this.doesEleInvalidateKey(e)}},{key:"getCachesAt",value:function(e){var t=this.cachesByLvl,n=this.lvls,r=t.get(e);return r||(r=new tl,t.set(e,r),n.push(e)),r}},{key:"getCache",value:function(e,t){return this.getCachesAt(t).get(e)}},{key:"get",value:function(e,t){var n=this.getKey(e),r=this.getCache(n,t);return null!=r&&this.updateKeyMappingFor(e),r}},{key:"getForCachedKey",value:function(e,t){var n=this.keyForId.get(e.id());return this.getCache(n,t)}},{key:"hasCache",value:function(e,t){return this.getCachesAt(t).has(e)}},{key:"has",value:function(e,t){var n=this.getKey(e);return this.hasCache(n,t)}},{key:"setCache",value:function(e,t,n){n.key=e,this.getCachesAt(t).set(e,n)}},{key:"set",value:function(e,t,n){var r=this.getKey(e);this.setCache(r,t,n),this.updateKeyMappingFor(e)}},{key:"deleteCache",value:function(e,t){this.getCachesAt(t).delete(e)}},{key:"delete",value:function(e,t){var n=this.getKey(e);this.deleteCache(n,t)}},{key:"invalidateKey",value:function(e){var t=this;this.lvls.forEach(function(n){return t.deleteCache(e,n)})}},{key:"invalidate",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteKeyMappingFor(e);var r=this.doesEleInvalidateKey(e);return r&&this.invalidateKey(n),r||0===this.getNumberOfIdsForKey(n)}}]),e}(),ss={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},sl=tt({getKey:null,doesEleInvalidateKey:e1,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:e0,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),su=function(e,t){this.renderer=e,this.onDequeues=[];var n=sl(t);en(this,n),this.lookup=new so(n.getKey,n.doesEleInvalidateKey),this.setupDequeueing()},sh=su.prototype;sh.reasons=ss,sh.getTextureQueue=function(e){return this.eleImgCaches=this.eleImgCaches||{},this.eleImgCaches[e]=this.eleImgCaches[e]||[]},sh.getRetiredTextureQueue=function(e){var t=this.eleImgCaches.retired=this.eleImgCaches.retired||{};return t[e]=t[e]||[]},sh.getElementQueue=function(){return this.eleCacheQueue=this.eleCacheQueue||new tg(function(e,t){return t.reqs-e.reqs})},sh.getElementKeyToQueue=function(){return this.eleKeyToCacheQueue=this.eleKeyToCacheQueue||{}},sh.getElement=function(e,t,n,r,i){var a,o,s,l=this,u=this.renderer,h=u.cy.zoom(),c=this.lookup;if(!t||0===t.w||0===t.h||isNaN(t.w)||isNaN(t.h)||!e.visible()||e.removed()||!l.allowEdgeTxrCaching&&e.isEdge()||!l.allowParentTxrCaching&&e.isParent())return null;if(null==r&&(r=Math.ceil(tS(h*n))),r<-4)r=-4;else if(h>=7.99||r>3)return null;var d=Math.pow(2,r),p=t.h*d,g=t.w*d,f=u.eleTextBiggerThanMin(e,d);if(!this.isVisible(e,f))return null;var v=c.get(e,r);if(v&&v.invalidated&&(v.invalidated=!1,v.texture.invalidatedWidth-=v.width),v)return v;if(a=p<=25?25:p<=50?50:50*Math.ceil(p/50),p>1024||g>1024)return null;var y=l.getTextureQueue(a),b=y[y.length-2],x=function(){return l.recycleTexture(a,g)||l.addTexture(a,g)};b||(b=y[y.length-1]),b||(b=x()),b.width-b.usedWidth<g&&(b=x());for(var w=function(e){return e&&e.scaledLabelShown===f},E=i&&i===ss.dequeue,T=i&&i===ss.highQuality,_=i&&i===ss.downscale,D=r+1;D<=3;D++){var C=c.get(e,D);if(C){o=C;break}}var N=o&&o.level===r+1?o:null,A=function(){b.context.drawImage(N.texture.canvas,N.x,0,N.width,N.height,b.usedWidth,0,g,p)};if(b.context.setTransform(1,0,0,1,0,0),b.context.clearRect(b.usedWidth,0,g,a),w(N))A();else if(w(o)){if(!T)return l.queueElement(e,o.level-1),o;for(var L=o.level;L>r;L--)N=l.getElement(e,t,n,L,ss.downscale);A()}else{if(!E&&!T&&!_)for(var S=r-1;S>=-4;S--){var O=c.get(e,S);if(O){s=O;break}}if(w(s))return l.queueElement(e,r),s;b.context.translate(b.usedWidth,0),b.context.scale(d,d),this.drawElement(b.context,e,t,f,!1),b.context.scale(1/d,1/d),b.context.translate(-b.usedWidth,0)}return v={x:b.usedWidth,texture:b,level:r,scale:d,width:g,height:p,scaledLabelShown:f},b.usedWidth+=Math.ceil(g+8),b.eleCaches.push(v),c.set(e,r,v),l.checkTextureFullness(b),v},sh.invalidateElements=function(e){for(var t=0;t<e.length;t++)this.invalidateElement(e[t])},sh.invalidateElement=function(e){var t=this.lookup,n=[];if(t.isInvalid(e)){for(var r=-4;r<=3;r++){var i=t.getForCachedKey(e,r);i&&n.push(i)}if(t.invalidate(e))for(var a=0;a<n.length;a++){var o=n[a],s=o.texture;s.invalidatedWidth+=o.width,o.invalidated=!0,this.checkTextureUtility(s)}this.removeFromQueue(e)}},sh.checkTextureUtility=function(e){e.invalidatedWidth>=.2*e.width&&this.retireTexture(e)},sh.checkTextureFullness=function(e){var t=this.getTextureQueue(e.height);e.usedWidth/e.width>.8&&e.fullnessChecks>=10?tn(t,e):e.fullnessChecks++},sh.retireTexture=function(e){var t=e.height,n=this.getTextureQueue(t),r=this.lookup;tn(n,e),e.retired=!0;for(var i=e.eleCaches,a=0;a<i.length;a++){var o=i[a];r.deleteCache(o.key,o.level)}tr(i),this.getRetiredTextureQueue(t).push(e)},sh.addTexture=function(e,t){var n=this.getTextureQueue(e),r={};return n.push(r),r.eleCaches=[],r.height=e,r.width=Math.max(1024,t),r.usedWidth=0,r.invalidatedWidth=0,r.fullnessChecks=0,r.canvas=this.renderer.makeOffscreenCanvas(r.width,r.height),r.context=r.canvas.getContext("2d"),r},sh.recycleTexture=function(e,t){for(var n=this.getTextureQueue(e),r=this.getRetiredTextureQueue(e),i=0;i<r.length;i++){var a=r[i];if(a.width>=t)return a.retired=!1,a.usedWidth=0,a.invalidatedWidth=0,a.fullnessChecks=0,tr(a.eleCaches),a.context.setTransform(1,0,0,1,0,0),a.context.clearRect(0,0,a.width,a.height),tn(r,a),n.push(a),a}},sh.queueElement=function(e,t){var n=this.getElementQueue(),r=this.getElementKeyToQueue(),i=this.getKey(e),a=r[i];if(a)a.level=Math.max(a.level,t),a.eles.merge(e),a.reqs++,n.updateItem(a);else{var o={eles:e.spawn().merge(e),level:t,reqs:1,key:i};n.push(o),r[i]=o}},sh.dequeue=function(e){for(var t=this.getElementQueue(),n=this.getElementKeyToQueue(),r=[],i=this.lookup,a=0;a<1;a++)if(t.size()>0){var o=t.pop(),s=o.key,l=o.eles[0],u=i.hasCache(l,o.level);if(n[s]=null,u)continue;r.push(o);var h=this.getBoundingBox(l);this.getElement(l,h,e,o.level,ss.dequeue)}else break;return r},sh.removeFromQueue=function(e){var t=this.getElementQueue(),n=this.getElementKeyToQueue(),r=this.getKey(e),i=n[r];null!=i&&(1===i.eles.length?(i.reqs=eJ,t.updateItem(i),t.pop(),n[r]=null):i.eles.unmerge(e))},sh.onDequeue=function(e){this.onDequeues.push(e)},sh.offDequeue=function(e){tn(this.onDequeues,e)},sh.setupDequeueing=sa({deqRedrawThreshold:100,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(e,t,n){return e.dequeue(t,n)},onDeqd:function(e,t){for(var n=0;n<e.onDequeues.length;n++)(0,e.onDequeues[n])(t)},shouldRedraw:function(e,t,n,r){for(var i=0;i<t.length;i++)for(var a=t[i].eles,o=0;o<a.length;o++)if(tH(a[o].boundingBox(),r))return!0;return!1},priority:function(e){return e.renderer.beforeRenderPriorities.eleTxrDeq}});var sc=function(e){var t=this,n=t.renderer=e,r=n.cy;t.layersByLevel={},t.firstGet=!0,t.lastInvalidationTime=eF()-500,t.skipping=!1,t.eleTxrDeqs=r.collection(),t.scheduleElementRefinement=eR(function(){t.refineElementTextures(t.eleTxrDeqs),t.eleTxrDeqs.unmerge(t.eleTxrDeqs)},50),n.beforeRender(function(e,n){n-t.lastInvalidationTime<=250?t.skipping=!0:t.skipping=!1},n.beforeRenderPriorities.lyrTxrSkip),t.layersQueue=new tg(function(e,t){return t.reqs-e.reqs}),t.setupDequeueing()},sd=sc.prototype,sp=0;sd.makeLayer=function(e,t){var n=Math.pow(2,t),r=Math.ceil(e.w*n),i=Math.ceil(e.h*n),a=this.renderer.makeOffscreenCanvas(r,i),o={id:sp=++sp%9007199254740991,bb:e,level:t,width:r,height:i,canvas:a,context:a.getContext("2d"),eles:[],elesQueue:[],reqs:0},s=o.context,l=-o.bb.x1,u=-o.bb.y1;return s.scale(n,n),s.translate(l,u),o},sd.getLayers=function(e,t,n){var r,i,a=this,o=a.renderer.cy.zoom(),s=a.firstGet;if(a.firstGet=!1,null==n){if((n=Math.ceil(tS(o*t)))<-4)n=-4;else if(o>=3.99||n>2)return null}a.validateLayersElesOrdering(n,e);var l=a.layersByLevel,u=Math.pow(2,n),h=l[n]=l[n]||[];if(a.levelIsComplete(n,e))return h;!function(){var t=function(t){if(a.validateLayersElesOrdering(t,e),a.levelIsComplete(t,e))return i=l[t],!0},r=function(e){if(!i)for(var r=n+e;-4<=r&&r<=2&&!t(r);r+=e);};r(1),r(-1);for(var o=h.length-1;o>=0;o--){var s=h[o];s.invalid&&tn(h,s)}}();var c=function(){if(!r){r=tz();for(var t=0;t<e.length;t++)tY(r,e[t].boundingBox())}return r};if(a.skipping&&!s)return null;for(var d=null,p=e.length/1,g=!s,f=0;f<e.length;f++){var v=e[f],y=v._private.rscratch,b=y.imgLayerCaches=y.imgLayerCaches||{},x=b[n];if(x){d=x;continue}if((!d||d.eles.length>=p||!tW(d.bb,v.boundingBox()))&&!(d=function(e){var t=(e=e||{}).after;if(c(),r.w*u*(r.h*u)>16e6)return null;var i=a.makeLayer(r,n);if(null!=t){var o=h.indexOf(t)+1;h.splice(o,0,i)}else(void 0===e.insert||e.insert)&&h.unshift(i);return i}({insert:!0,after:d})))return null;i||g?a.queueLayer(d,v):a.drawEleInLayer(d,v,n,t),d.eles.push(v),b[n]=d}return i||(g?null:h)},sd.getEleLevelForLayerLevel=function(e,t){return e},sd.drawEleInLayer=function(e,t,n,r){var i=this.renderer,a=e.context,o=t.boundingBox();0!==o.w&&0!==o.h&&t.visible()&&(n=this.getEleLevelForLayerLevel(n,r),i.setImgSmoothing(a,!1),i.drawCachedElement(a,t,null,null,n,!0),i.setImgSmoothing(a,!0))},sd.levelIsComplete=function(e,t){var n=this.layersByLevel[e];if(!n||0===n.length)return!1;for(var r=0,i=0;i<n.length;i++){var a=n[i];if(a.reqs>0||a.invalid)return!1;r+=a.eles.length}return r===t.length},sd.validateLayersElesOrdering=function(e,t){var n=this.layersByLevel[e];if(n)for(var r=0;r<n.length;r++){for(var i=n[r],a=-1,o=0;o<t.length;o++)if(i.eles[0]===t[o]){a=o;break}if(a<0){this.invalidateLayer(i);continue}for(var s=a,o=0;o<i.eles.length;o++)if(i.eles[o]!==t[s+o]){this.invalidateLayer(i);break}}},sd.updateElementsInLayers=function(e,t){for(var n=z(e[0]),r=0;r<e.length;r++)for(var i=n?null:e[r],a=n?e[r]:e[r].ele,o=a._private.rscratch,s=o.imgLayerCaches=o.imgLayerCaches||{},l=-4;l<=2;l++){var u=s[l];u&&(!i||this.getEleLevelForLayerLevel(u.level)===i.level)&&t(u,a,i)}},sd.haveLayers=function(){for(var e=!1,t=-4;t<=2;t++){var n=this.layersByLevel[t];if(n&&n.length>0){e=!0;break}}return e},sd.invalidateElements=function(e){var t=this;0!==e.length&&(t.lastInvalidationTime=eF(),0!==e.length&&t.haveLayers()&&t.updateElementsInLayers(e,function(e,n,r){t.invalidateLayer(e)}))},sd.invalidateLayer=function(e){if(this.lastInvalidationTime=eF(),!e.invalid){var t=e.level,n=e.eles;tn(this.layersByLevel[t],e),e.elesQueue=[],e.invalid=!0,e.replacement&&(e.replacement.invalid=!0);for(var r=0;r<n.length;r++){var i=n[r]._private.rscratch.imgLayerCaches;i&&(i[t]=null)}}},sd.refineElementTextures=function(e){var t=this;t.updateElementsInLayers(e,function(e,n,r){var i=e.replacement;if(i||((i=e.replacement=t.makeLayer(e.bb,e.level)).replaces=e,i.eles=e.eles),!i.reqs)for(var a=0;a<i.eles.length;a++)t.queueLayer(i,i.eles[a])})},sd.enqueueElementRefinement=function(e){this.eleTxrDeqs.merge(e),this.scheduleElementRefinement()},sd.queueLayer=function(e,t){var n=this.layersQueue,r=e.elesQueue,i=r.hasId=r.hasId||{};if(!e.replacement){if(t){if(i[t.id()])return;r.push(t),i[t.id()]=!0}e.reqs?(e.reqs++,n.updateItem(e)):(e.reqs=1,n.push(e))}},sd.dequeue=function(e){for(var t=this.layersQueue,n=[],r=0;r<1&&0!==t.size();){var i=t.peek();if(i.replacement||i.replaces&&i!==i.replaces.replacement||i.invalid){t.pop();continue}var a=i.elesQueue.shift();a&&(this.drawEleInLayer(i,a,i.level,e),r++),0===n.length&&n.push(!0),0===i.elesQueue.length&&(t.pop(),i.reqs=0,i.replaces&&this.applyLayerReplacement(i),this.requestRedraw())}return n},sd.applyLayerReplacement=function(e){var t=this.layersByLevel[e.level],n=e.replaces,r=t.indexOf(n);if(!(r<0)&&!n.invalid){t[r]=e;for(var i=0;i<e.eles.length;i++){var a=e.eles[i]._private,o=a.imgLayerCaches=a.imgLayerCaches||{};o&&(o[e.level]=e)}this.requestRedraw()}},sd.requestRedraw=eR(function(){var e=this.renderer;e.redrawHint("eles",!0),e.redrawHint("drag",!0),e.redraw()},100),sd.setupDequeueing=sa({deqRedrawThreshold:50,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(e,t){return e.dequeue(t)},onDeqd:e5,shouldRedraw:e0,priority:function(e){return e.renderer.beforeRenderPriorities.lyrTxrDeq}});var sg={};function sf(e,t){for(var n=0;n<t.length;n++){var r=t[n];e.lineTo(r.x,r.y)}}function sv(e,t,n){for(var r,i=0;i<t.length;i++){var a=t[i];0===i&&(r=a),e.lineTo(a.x,a.y)}e.quadraticCurveTo(n.x,n.y,r.x,r.y)}function sy(e,t,n){e.beginPath&&e.beginPath();for(var r=0;r<t.length;r++){var i=t[r];e.lineTo(i.x,i.y)}var a=n[0];e.moveTo(a.x,a.y);for(var r=1;r<n.length;r++){var i=n[r];e.lineTo(i.x,i.y)}e.closePath&&e.closePath()}function sm(e,t,n,r,i){e.beginPath&&e.beginPath(),e.arc(n,r,i,0,2*Math.PI,!1);var a=t[0];e.moveTo(a.x,a.y);for(var o=0;o<t.length;o++){var s=t[o];e.lineTo(s.x,s.y)}e.closePath&&e.closePath()}function sb(e,t,n,r){e.arc(t,n,r,0,2*Math.PI,!1)}sg.arrowShapeImpl=function(e){return(_||(_={polygon:sf,"triangle-backcurve":sv,"triangle-tee":sy,"circle-triangle":sm,"triangle-cross":sy,circle:sb}))[e]};var sx={};sx.drawElement=function(e,t,n,r,i,a){t.isNode()?this.drawNode(e,t,n,r,i,a):this.drawEdge(e,t,n,r,i,a)},sx.drawElementOverlay=function(e,t){t.isNode()?this.drawNodeOverlay(e,t):this.drawEdgeOverlay(e,t)},sx.drawElementUnderlay=function(e,t){t.isNode()?this.drawNodeUnderlay(e,t):this.drawEdgeUnderlay(e,t)},sx.drawCachedElementPortion=function(e,t,n,r,i,a,o,s){var l=n.getBoundingBox(t);if(0!==l.w&&0!==l.h){var u=n.getElement(t,l,r,i,a);if(null!=u){var h,c,d,p,g,f,v=s(this,t);if(0===v)return;var y=o(this,t),b=l.x1,x=l.y1,w=l.w,E=l.h;if(0!==y){var T=n.getRotationPoint(t);d=T.x,p=T.y,e.translate(d,p),e.rotate(y),(g=this.getImgSmoothing(e))||this.setImgSmoothing(e,!0);var _=n.getRotationOffset(t);h=_.x,c=_.y}else h=b,c=x;1!==v&&(f=e.globalAlpha,e.globalAlpha=f*v),e.drawImage(u.texture.canvas,u.x,0,u.width,u.height,h,c,w,E),1!==v&&(e.globalAlpha=f),0===y||(e.rotate(-y),e.translate(-d,-p),g||this.setImgSmoothing(e,!1))}else n.drawElement(e,t)}};var sw=function(){return 0},sE=function(e,t){return e.getTextAngle(t,null)},sT=function(e,t){return e.getTextAngle(t,"source")},s_=function(e,t){return e.getTextAngle(t,"target")},sD=function(e,t){return t.effectiveOpacity()},sC=function(e,t){return t.pstyle("text-opacity").pfValue*t.effectiveOpacity()};sx.drawCachedElement=function(e,t,n,r,i,a){var o=this.data,s=o.eleTxrCache,l=o.lblTxrCache,u=o.slbTxrCache,h=o.tlbTxrCache,c=t.boundingBox(),d=!0===a?s.reasons.highQuality:null;if(0!==c.w&&0!==c.h&&t.visible()&&(!r||tH(c,r))){var p=t.isEdge(),g=t.element()._private.rscratch.badLine;this.drawElementUnderlay(e,t),this.drawCachedElementPortion(e,t,s,n,i,d,sw,sD),p&&g||this.drawCachedElementPortion(e,t,l,n,i,d,sE,sC),p&&!g&&(this.drawCachedElementPortion(e,t,u,n,i,d,sT,sC),this.drawCachedElementPortion(e,t,h,n,i,d,s_,sC)),this.drawElementOverlay(e,t)}},sx.drawElements=function(e,t){for(var n=0;n<t.length;n++){var r=t[n];this.drawElement(e,r)}},sx.drawCachedElements=function(e,t,n,r){for(var i=0;i<t.length;i++){var a=t[i];this.drawCachedElement(e,a,n,r)}},sx.drawCachedNodes=function(e,t,n,r){for(var i=0;i<t.length;i++){var a=t[i];a.isNode()&&this.drawCachedElement(e,a,n,r)}},sx.drawLayeredElements=function(e,t,n,r){var i=this.data.lyrTxrCache.getLayers(t,n);if(i)for(var a=0;a<i.length;a++){var o=i[a],s=o.bb;0!==s.w&&0!==s.h&&e.drawImage(o.canvas,s.x1,s.y1,s.w,s.h)}else this.drawCachedElements(e,t,n,r)};var sN={};sN.drawEdge=function(e,t,n){var r,i=!(arguments.length>3)||void 0===arguments[3]||arguments[3],a=!(arguments.length>4)||void 0===arguments[4]||arguments[4],o=!(arguments.length>5)||void 0===arguments[5]||arguments[5],s=this,l=t._private.rscratch;if(!(o&&!t.visible()||l.badLine||null==l.allpts||isNaN(l.allpts[0]))){n&&(r=n,e.translate(-r.x1,-r.y1));var u=o?t.pstyle("opacity").value:1,h=o?t.pstyle("line-opacity").value:1,c=t.pstyle("curve-style").value,d=t.pstyle("line-style").value,p=t.pstyle("width").pfValue,g=t.pstyle("line-cap").value,f=u*h,v=u*h,y=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f;"straight-triangle"===c?(s.eleStrokeStyle(e,t,n),s.drawEdgeTrianglePath(t,e,l.allpts)):(e.lineWidth=p,e.lineCap=g,s.eleStrokeStyle(e,t,n),s.drawEdgePath(t,e,l.allpts,d),e.lineCap="butt")},b=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:v;s.drawArrowheads(e,t,n)};if(e.lineJoin="round","yes"===t.pstyle("ghost").value){var x=t.pstyle("ghost-offset-x").pfValue,w=t.pstyle("ghost-offset-y").pfValue,E=f*t.pstyle("ghost-opacity").value;e.translate(x,w),y(E),b(E),e.translate(-x,-w)}a&&s.drawEdgeUnderlay(e,t),y(),b(),a&&s.drawEdgeOverlay(e,t),s.drawElementText(e,t,null,i),n&&e.translate(r.x1,r.y1)}};var sA=function(e){if(!["overlay","underlay"].includes(e))throw Error("Invalid state");return function(t,n){if(n.visible()){var r=n.pstyle("".concat(e,"-opacity")).value;if(0!==r){var i=this.usePaths(),a=n._private.rscratch,o=n.pstyle("".concat(e,"-padding")).pfValue,s=n.pstyle("".concat(e,"-color")).value;t.lineWidth=2*o,"self"!==a.edgeType||i?t.lineCap="round":t.lineCap="butt",this.colorStrokeStyle(t,s[0],s[1],s[2],r),this.drawEdgePath(n,t,a.allpts,"solid")}}}};sN.drawEdgeOverlay=sA("overlay"),sN.drawEdgeUnderlay=sA("underlay"),sN.drawEdgePath=function(e,t,n,r){var i,a=e._private.rscratch,o=t,s=!1,l=this.usePaths(),u=e.pstyle("line-dash-pattern").pfValue,h=e.pstyle("line-dash-offset").pfValue;if(l){var c=n.join("$");a.pathCacheKey&&a.pathCacheKey===c?(i=t=a.pathCache,s=!0):(i=t=new Path2D,a.pathCacheKey=c,a.pathCache=i)}if(o.setLineDash)switch(r){case"dotted":o.setLineDash([1,1]);break;case"dashed":o.setLineDash(u),o.lineDashOffset=h;break;case"solid":o.setLineDash([])}if(!s&&!a.badLine)switch(t.beginPath&&t.beginPath(),t.moveTo(n[0],n[1]),a.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var d=2;d+3<n.length;d+=4)t.quadraticCurveTo(n[d],n[d+1],n[d+2],n[d+3]);break;case"straight":case"segments":case"haystack":for(var p=2;p+1<n.length;p+=2)t.lineTo(n[p],n[p+1])}t=o,l?t.stroke(i):t.stroke(),t.setLineDash&&t.setLineDash([])},sN.drawEdgeTrianglePath=function(e,t,n){t.fillStyle=t.strokeStyle;for(var r=e.pstyle("width").pfValue,i=0;i+1<n.length;i+=2){var a=[n[i+2]-n[i],n[i+3]-n[i+1]],o=Math.sqrt(a[0]*a[0]+a[1]*a[1]),s=[a[1]/o,-a[0]/o],l=[s[0]*r/2,s[1]*r/2];t.beginPath(),t.moveTo(n[i]-l[0],n[i+1]-l[1]),t.lineTo(n[i]+l[0],n[i+1]+l[1]),t.lineTo(n[i+2],n[i+3]),t.closePath(),t.fill()}},sN.drawArrowheads=function(e,t,n){var r=t._private.rscratch,i="haystack"===r.edgeType;i||this.drawArrowhead(e,t,"source",r.arrowStartX,r.arrowStartY,r.srcArrowAngle,n),this.drawArrowhead(e,t,"mid-target",r.midX,r.midY,r.midtgtArrowAngle,n),this.drawArrowhead(e,t,"mid-source",r.midX,r.midY,r.midsrcArrowAngle,n),i||this.drawArrowhead(e,t,"target",r.arrowEndX,r.arrowEndY,r.tgtArrowAngle,n)},sN.drawArrowhead=function(e,t,n,r,i,a,o){if(!(isNaN(r)||null==r||isNaN(i)||null==i||isNaN(a))&&null!=a){var s=t.pstyle(n+"-arrow-shape").value;if("none"!==s){var l="hollow"===t.pstyle(n+"-arrow-fill").value?"both":"filled",u=t.pstyle(n+"-arrow-fill").value,h=t.pstyle("width").pfValue,c=t.pstyle("opacity").value;void 0===o&&(o=c);var d=e.globalCompositeOperation;(1!==o||"hollow"===u)&&(e.globalCompositeOperation="destination-out",this.colorFillStyle(e,255,255,255,1),this.colorStrokeStyle(e,255,255,255,1),this.drawArrowShape(t,e,l,h,s,r,i,a),e.globalCompositeOperation=d);var p=t.pstyle(n+"-arrow-color").value;this.colorFillStyle(e,p[0],p[1],p[2],o),this.colorStrokeStyle(e,p[0],p[1],p[2],o),this.drawArrowShape(t,e,u,h,s,r,i,a)}}},sN.drawArrowShape=function(e,t,n,r,i,a,o,s){var l,u=this.usePaths()&&"triangle-cross"!==i,h=!1,c=t,d=e.pstyle("arrow-scale").value,p=this.getArrowWidth(r,d),g=this.arrowShapes[i];if(u){var f=this.arrowPathCache=this.arrowPathCache||[],v=eq(i),y=f[v];null!=y?(l=t=y,h=!0):(l=t=new Path2D,f[v]=l)}!h&&(t.beginPath&&t.beginPath(),u?g.draw(t,1,0,{x:0,y:0},1):g.draw(t,p,s,{x:a,y:o},r),t.closePath&&t.closePath()),t=c,u&&(t.translate(a,o),t.rotate(s),t.scale(p,p)),("filled"===n||"both"===n)&&(u?t.fill(l):t.fill()),("hollow"===n||"both"===n)&&(t.lineWidth=(g.matchEdgeWidth?r:1)/(u?p:1),t.lineJoin="miter",u?t.stroke(l):t.stroke()),u&&(t.scale(1/p,1/p),t.rotate(-s),t.translate(-a,-o))};var sL={};sL.safeDrawImage=function(e,t,n,r,i,a,o,s,l,u){if(!(i<=0)&&!(a<=0)&&!(l<=0)&&!(u<=0))try{e.drawImage(t,n,r,i,a,o,s,l,u)}catch(e){e9(e)}},sL.drawInscribedImage=function(e,t,n,r,i){var a=n.position(),o=a.x,s=a.y,l=n.cy().style(),u=l.getIndexedStyle.bind(l),h=u(n,"background-fit","value",r),c=u(n,"background-repeat","value",r),d=n.width(),p=n.height(),g=2*n.padding(),f=d+("inner"===u(n,"background-width-relative-to","value",r)?0:g),v=p+("inner"===u(n,"background-height-relative-to","value",r)?0:g),y=n._private.rscratch,b="node"===u(n,"background-clip","value",r),x=u(n,"background-image-opacity","value",r)*i,w=u(n,"background-image-smoothing","value",r),E=t.width||t.cachedW,T=t.height||t.cachedH;(null==E||null==T)&&(document.body.appendChild(t),E=t.cachedW=t.width||t.offsetWidth,T=t.cachedH=t.height||t.offsetHeight,document.body.removeChild(t));var _=E,D=T;if("auto"!==u(n,"background-width","value",r)&&(_="%"===u(n,"background-width","units",r)?u(n,"background-width","pfValue",r)*f:u(n,"background-width","pfValue",r)),"auto"!==u(n,"background-height","value",r)&&(D="%"===u(n,"background-height","units",r)?u(n,"background-height","pfValue",r)*v:u(n,"background-height","pfValue",r)),0!==_&&0!==D){if("contain"===h){var C=Math.min(f/_,v/D);_*=C,D*=C}else if("cover"===h){var C=Math.max(f/_,v/D);_*=C,D*=C}var N=o-f/2,A=u(n,"background-position-x","units",r),L=u(n,"background-position-x","pfValue",r);"%"===A?N+=(f-_)*L:N+=L;var S=u(n,"background-offset-x","units",r),O=u(n,"background-offset-x","pfValue",r);"%"===S?N+=(f-_)*O:N+=O;var I=s-v/2,k=u(n,"background-position-y","units",r),M=u(n,"background-position-y","pfValue",r);"%"===k?I+=(v-D)*M:I+=M;var P=u(n,"background-offset-y","units",r),R=u(n,"background-offset-y","pfValue",r);"%"===P?I+=(v-D)*R:I+=R,y.pathCache&&(N-=o,I-=s,o=0,s=0);var B=e.globalAlpha;e.globalAlpha=x;var F=this.getImgSmoothing(e),z=!1;if("no"===w&&F?(this.setImgSmoothing(e,!1),z=!0):"yes"!==w||F||(this.setImgSmoothing(e,!0),z=!0),"no-repeat"===c)b&&(e.save(),y.pathCache?e.clip(y.pathCache):(this.nodeShapes[this.getNodeShape(n)].draw(e,o,s,f,v),e.clip())),this.safeDrawImage(e,t,0,0,E,T,N,I,_,D),b&&e.restore();else{var G=e.createPattern(t,c);e.fillStyle=G,this.nodeShapes[this.getNodeShape(n)].draw(e,o,s,f,v),e.translate(N,I),e.fill(),e.translate(-N,-I)}e.globalAlpha=B,z&&this.setImgSmoothing(e,F)}};var sS={};sS.eleTextBiggerThanMin=function(e,t){return t||(t=Math.pow(2,Math.ceil(tS(e.cy().zoom()*this.getPixelRatio())))),!(e.pstyle("font-size").pfValue*t<e.pstyle("min-zoomed-font-size").pfValue)},sS.drawElementText=function(e,t,n,r,i){var a,o=!(arguments.length>5)||void 0===arguments[5]||arguments[5];if(null==r){if(o&&!this.eleTextBiggerThanMin(t))return}else if(!1===r)return;if(t.isNode()){var s=t.pstyle("label");if(!s||!s.value)return;var l=this.getLabelJustification(t);e.textAlign=l,e.textBaseline="bottom"}else{var u=t.element()._private.rscratch.badLine,h=t.pstyle("label"),c=t.pstyle("source-label"),d=t.pstyle("target-label");if(u||(!h||!h.value)&&(!c||!c.value)&&(!d||!d.value))return;e.textAlign="center",e.textBaseline="bottom"}var p=!n;n&&(a=n,e.translate(-a.x1,-a.y1)),null==i?(this.drawText(e,t,null,p,o),t.isEdge()&&(this.drawText(e,t,"source",p,o),this.drawText(e,t,"target",p,o))):this.drawText(e,t,i,p,o),n&&e.translate(a.x1,a.y1)},sS.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var n=0;n<this.fontCaches.length;n++)if((t=this.fontCaches[n]).context===e)return t;return t={context:e},this.fontCaches.push(t),t},sS.setupTextStyle=function(e,t){var n=!(arguments.length>2)||void 0===arguments[2]||arguments[2],r=t.pstyle("font-style").strValue,i=t.pstyle("font-size").pfValue+"px",a=t.pstyle("font-family").strValue,o=t.pstyle("font-weight").strValue,s=n?t.effectiveOpacity()*t.pstyle("text-opacity").value:1,l=t.pstyle("text-outline-opacity").value*s,u=t.pstyle("color").value,h=t.pstyle("text-outline-color").value;e.font=r+" "+o+" "+i+" "+a,e.lineJoin="round",this.colorFillStyle(e,u[0],u[1],u[2],s),this.colorStrokeStyle(e,h[0],h[1],h[2],l)},sS.getTextAngle=function(e,t){var n=e._private.rscratch,r=t?t+"-":"",i=e.pstyle(r+"text-rotation"),a=ta(n,"labelAngle",t);return"autorotate"===i.strValue?e.isEdge()?a:0:"none"===i.strValue?0:i.pfValue},sS.drawText=function(e,t,n){var r=!(arguments.length>3)||void 0===arguments[3]||arguments[3],i=!(arguments.length>4)||void 0===arguments[4]||arguments[4],a=t._private.rscratch,o=i?t.effectiveOpacity():1;if(!i||0!==o&&0!==t.pstyle("text-opacity").value){"main"===n&&(n=null);var s=ta(a,"labelX",n),l=ta(a,"labelY",n),u=this.getLabelText(t,n);if(null!=u&&""!==u&&!isNaN(s)&&!isNaN(l)){this.setupTextStyle(e,t,i);var h,c,d,p=n?n+"-":"",g=ta(a,"labelWidth",n),f=ta(a,"labelHeight",n),v=t.pstyle(p+"text-margin-x").pfValue,y=t.pstyle(p+"text-margin-y").pfValue,b=t.isEdge(),x=t.pstyle("text-halign").value,w=t.pstyle("text-valign").value;switch(b&&(x="center",w="center"),s+=v,l+=y,0!==(d=r?this.getTextAngle(t,n):0)&&(h=s,c=l,e.translate(h,c),e.rotate(d),s=0,l=0),w){case"top":break;case"center":l+=f/2;break;case"bottom":l+=f}var E=t.pstyle("text-background-opacity").value,T=t.pstyle("text-border-opacity").value,_=t.pstyle("text-border-width").pfValue,D=t.pstyle("text-background-padding").pfValue;if(E>0||_>0&&T>0){var C=s-D;switch(x){case"left":C-=g;break;case"center":C-=g/2}var N=l-f-D,A=g+2*D,L=f+2*D;if(E>0){var S=e.fillStyle,O=t.pstyle("text-background-color").value;e.fillStyle="rgba("+O[0]+","+O[1]+","+O[2]+","+E*o+")",0===t.pstyle("text-background-shape").strValue.indexOf("round")?function(e,t,n,r,i){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:5;e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+r-a,n),e.quadraticCurveTo(t+r,n,t+r,n+a),e.lineTo(t+r,n+i-a),e.quadraticCurveTo(t+r,n+i,t+r-a,n+i),e.lineTo(t+a,n+i),e.quadraticCurveTo(t,n+i,t,n+i-a),e.lineTo(t,n+a),e.quadraticCurveTo(t,n,t+a,n),e.closePath(),e.fill()}(e,C,N,A,L,2):e.fillRect(C,N,A,L),e.fillStyle=S}if(_>0&&T>0){var I=e.strokeStyle,k=e.lineWidth,M=t.pstyle("text-border-color").value,P=t.pstyle("text-border-style").value;if(e.strokeStyle="rgba("+M[0]+","+M[1]+","+M[2]+","+T*o+")",e.lineWidth=_,e.setLineDash)switch(P){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=_/4,e.setLineDash([]);break;case"solid":e.setLineDash([])}if(e.strokeRect(C,N,A,L),"double"===P){var R=_/2;e.strokeRect(C+R,N+R,A-2*R,L-2*R)}e.setLineDash&&e.setLineDash([]),e.lineWidth=k,e.strokeStyle=I}}var B=2*t.pstyle("text-outline-width").pfValue;if(B>0&&(e.lineWidth=B),"wrap"===t.pstyle("text-wrap").value){var F=ta(a,"labelWrapCachedLines",n),z=ta(a,"labelLineHeight",n),G=g/2,Y=this.getLabelJustification(t);switch("auto"===Y||("left"===x?"left"===Y?s+=-g:"center"===Y&&(s+=-G):"center"===x?"left"===Y?s+=-G:"right"===Y&&(s+=G):"right"===x&&("center"===Y?s+=G:"right"===Y&&(s+=g))),w){case"top":case"center":case"bottom":l-=(F.length-1)*z}for(var X=0;X<F.length;X++)B>0&&e.strokeText(F[X],s,l),e.fillText(F[X],s,l),l+=z}else B>0&&e.strokeText(u,s,l),e.fillText(u,s,l);0!==d&&(e.rotate(-d),e.translate(-h,-c))}}};var sO={};sO.drawNode=function(e,t,n){var r,i,a,o,s=!(arguments.length>3)||void 0===arguments[3]||arguments[3],l=!(arguments.length>4)||void 0===arguments[4]||arguments[4],u=!(arguments.length>5)||void 0===arguments[5]||arguments[5],h=this,c=t._private,d=c.rscratch,p=t.position();if(R(p.x)&&R(p.y)&&(!u||t.visible())){var g=u?t.effectiveOpacity():1,f=h.usePaths(),v=!1,y=t.padding();r=t.width()+2*y,i=t.height()+2*y,n&&(o=n,e.translate(-o.x1,-o.y1));for(var b=t.pstyle("background-image").value,x=Array(b.length),w=Array(b.length),E=0,T=0;T<b.length;T++){var _=b[T];if(x[T]=null!=_&&"none"!==_){var D=t.cy().style().getIndexedStyle(t,"background-image-crossorigin","value",T);E++,w[T]=h.getCachedImage(_,D,function(){c.backgroundTimestamp=Date.now(),t.emitAndNotify("background")})}}var C=t.pstyle("background-blacken").value,N=t.pstyle("border-width").pfValue,A=t.pstyle("background-opacity").value*g,L=t.pstyle("border-color").value,S=t.pstyle("border-style").value,O=t.pstyle("border-opacity").value*g;e.lineJoin="miter";var I=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:A;h.eleFillStyle(e,t,n)},k=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:O;h.colorStrokeStyle(e,L[0],L[1],L[2],t)},M=t.pstyle("shape").strValue,P=t.pstyle("shape-polygon-points").pfValue;if(f){e.translate(p.x,p.y);var B=h.nodePathCache=h.nodePathCache||[],F=eW("polygon"===M?M+","+P.join(","):M,""+i,""+r),z=B[F];null!=z?(a=z,v=!0,d.pathCache=a):(a=new Path2D,B[F]=d.pathCache=a)}var G=function(){if(!v){var n=p;f&&(n={x:0,y:0}),h.nodeShapes[h.getNodeShape(t)].draw(a||e,n.x,n.y,r,i)}f?e.fill(a):e.fill()},Y=function(){for(var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g,r=!(arguments.length>1)||void 0===arguments[1]||arguments[1],i=c.backgrounding,a=0,o=0;o<w.length;o++){var s=t.cy().style().getIndexedStyle(t,"background-image-containment","value",o);if(r&&"over"===s||!r&&"inside"===s){a++;continue}x[o]&&w[o].complete&&!w[o].error&&(a++,h.drawInscribedImage(e,w[o],t,o,n))}c.backgrounding=a!==E,i!==c.backgrounding&&t.updateStyle(!1)},X=function(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g;h.hasPie(t)&&(h.drawPie(e,t,a),n&&!f&&h.nodeShapes[h.getNodeShape(t)].draw(e,p.x,p.y,r,i))},V=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g,n=C>0?0:255;0!==C&&(h.colorFillStyle(e,n,n,n,(C>0?C:-C)*t),f?e.fill(a):e.fill())},U=function(){if(N>0){if(e.lineWidth=N,e.lineCap="butt",e.setLineDash)switch(S){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([])}if(f?e.stroke(a):e.stroke(),"double"===S){e.lineWidth=N/3;var t=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",f?e.stroke(a):e.stroke(),e.globalCompositeOperation=t}e.setLineDash&&e.setLineDash([])}};if("yes"===t.pstyle("ghost").value){var j=t.pstyle("ghost-offset-x").pfValue,H=t.pstyle("ghost-offset-y").pfValue,q=t.pstyle("ghost-opacity").value,W=q*g;e.translate(j,H),I(q*A),G(),Y(W,!0),k(q*O),U(),X(0!==C||0!==N),Y(W,!1),V(W),e.translate(-j,-H)}f&&e.translate(-p.x,-p.y),l&&h.drawNodeUnderlay(e,t,p,r,i),f&&e.translate(p.x,p.y),I(),G(),Y(g,!0),k(),U(),X(0!==C||0!==N),Y(g,!1),V(),f&&e.translate(-p.x,-p.y),h.drawElementText(e,t,null,s),l&&h.drawNodeOverlay(e,t,p,r,i),n&&e.translate(o.x1,o.y1)}};var sI=function(e){if(!["overlay","underlay"].includes(e))throw Error("Invalid state");return function(t,n,r,i,a){if(n.visible()){var o=n.pstyle("".concat(e,"-padding")).pfValue,s=n.pstyle("".concat(e,"-opacity")).value,l=n.pstyle("".concat(e,"-color")).value,u=n.pstyle("".concat(e,"-shape")).value;if(s>0){if(r=r||n.position(),null==i||null==a){var h=n.padding();i=n.width()+2*h,a=n.height()+2*h}this.colorFillStyle(t,l[0],l[1],l[2],s),this.nodeShapes[u].draw(t,r.x,r.y,i+2*o,a+2*o),t.fill()}}}};sO.drawNodeOverlay=sI("overlay"),sO.drawNodeUnderlay=sI("underlay"),sO.hasPie=function(e){return(e=e[0])._private.hasPie},sO.drawPie=function(e,t,n,r){t=t[0],r=r||t.position();var i=t.cy().style(),a=t.pstyle("pie-size"),o=r.x,s=r.y,l=Math.min(t.width(),t.height())/2,u=0;this.usePaths()&&(o=0,s=0),"%"===a.units?l*=a.pfValue:void 0!==a.pfValue&&(l=a.pfValue/2);for(var h=1;h<=i.pieBackgroundN;h++){var c=t.pstyle("pie-"+h+"-background-size").value,d=t.pstyle("pie-"+h+"-background-color").value,p=t.pstyle("pie-"+h+"-background-opacity").value*n,g=c/100;g+u>1&&(g=1-u);var f=1.5*Math.PI+2*Math.PI*u,v=f+2*Math.PI*g;0===c||u>=1||u+g>1||(e.beginPath(),e.moveTo(o,s),e.arc(o,s,l,f,v),e.closePath(),this.colorFillStyle(e,d[0],d[1],d[2],p),e.fill(),u+=g)}};var sk={};sk.getPixelRatio=function(){var e=this.data.contexts[0];if(null!=this.forcedPixelRatio)return this.forcedPixelRatio;var t=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(window.devicePixelRatio||1)/t},sk.paintCache=function(e){for(var t,n=this.paintCaches=this.paintCaches||[],r=!0,i=0;i<n.length;i++)if((t=n[i]).context===e){r=!1;break}return r&&(t={context:e},n.push(t)),t},sk.createGradientStyleFor=function(e,t,n,r,i){var a,o=this.usePaths(),s=n.pstyle(t+"-gradient-stop-colors").value,l=n.pstyle(t+"-gradient-stop-positions").pfValue;if("radial-gradient"===r){if(n.isEdge()){var u=n.sourceEndpoint(),h=n.targetEndpoint(),c=n.midpoint(),d=tI(u,c),p=tI(h,c);a=e.createRadialGradient(c.x,c.y,0,c.x,c.y,Math.max(d,p))}else{var g=o?{x:0,y:0}:n.position(),f=n.paddedWidth(),v=n.paddedHeight();a=e.createRadialGradient(g.x,g.y,0,g.x,g.y,Math.max(f,v))}}else if(n.isEdge()){var y=n.sourceEndpoint(),b=n.targetEndpoint();a=e.createLinearGradient(y.x,y.y,b.x,b.y)}else{var x=o?{x:0,y:0}:n.position(),w=n.paddedWidth(),E=n.paddedHeight(),T=w/2,_=E/2;switch(n.pstyle("background-gradient-direction").value){case"to-bottom":a=e.createLinearGradient(x.x,x.y-_,x.x,x.y+_);break;case"to-top":a=e.createLinearGradient(x.x,x.y+_,x.x,x.y-_);break;case"to-left":a=e.createLinearGradient(x.x+T,x.y,x.x-T,x.y);break;case"to-right":a=e.createLinearGradient(x.x-T,x.y,x.x+T,x.y);break;case"to-bottom-right":case"to-right-bottom":a=e.createLinearGradient(x.x-T,x.y-_,x.x+T,x.y+_);break;case"to-top-right":case"to-right-top":a=e.createLinearGradient(x.x-T,x.y+_,x.x+T,x.y-_);break;case"to-bottom-left":case"to-left-bottom":a=e.createLinearGradient(x.x+T,x.y-_,x.x-T,x.y+_);break;case"to-top-left":case"to-left-top":a=e.createLinearGradient(x.x+T,x.y+_,x.x-T,x.y-_)}}if(!a)return null;for(var D=l.length===s.length,C=s.length,N=0;N<C;N++)a.addColorStop(D?l[N]:N/(C-1),"rgba("+s[N][0]+","+s[N][1]+","+s[N][2]+","+i+")");return a},sk.gradientFillStyle=function(e,t,n,r){var i=this.createGradientStyleFor(e,"background",t,n,r);if(!i)return null;e.fillStyle=i},sk.colorFillStyle=function(e,t,n,r,i){e.fillStyle="rgba("+t+","+n+","+r+","+i+")"},sk.eleFillStyle=function(e,t,n){var r=t.pstyle("background-fill").value;if("linear-gradient"===r||"radial-gradient"===r)this.gradientFillStyle(e,t,r,n);else{var i=t.pstyle("background-color").value;this.colorFillStyle(e,i[0],i[1],i[2],n)}},sk.gradientStrokeStyle=function(e,t,n,r){var i=this.createGradientStyleFor(e,"line",t,n,r);if(!i)return null;e.strokeStyle=i},sk.colorStrokeStyle=function(e,t,n,r,i){e.strokeStyle="rgba("+t+","+n+","+r+","+i+")"},sk.eleStrokeStyle=function(e,t,n){var r=t.pstyle("line-fill").value;if("linear-gradient"===r||"radial-gradient"===r)this.gradientStrokeStyle(e,t,r,n);else{var i=t.pstyle("line-color").value;this.colorStrokeStyle(e,i[0],i[1],i[2],n)}},sk.matchCanvasSize=function(e){var t,n=this.data,r=this.findContainerClientCoords(),i=r[2],a=r[3],o=this.getPixelRatio(),s=this.motionBlurPxRatio;(e===this.data.bufferCanvases[this.MOTIONBLUR_BUFFER_NODE]||e===this.data.bufferCanvases[this.MOTIONBLUR_BUFFER_DRAG])&&(o=s);var l=i*o,u=a*o;if(l!==this.canvasWidth||u!==this.canvasHeight){this.fontCaches=null;var h=n.canvasContainer;h.style.width=i+"px",h.style.height=a+"px";for(var c=0;c<this.CANVAS_LAYERS;c++)(t=n.canvases[c]).width=l,t.height=u,t.style.width=i+"px",t.style.height=a+"px";for(var c=0;c<this.BUFFER_COUNT;c++)(t=n.bufferCanvases[c]).width=l,t.height=u,t.style.width=i+"px",t.style.height=a+"px";this.textureMult=1,o<=1&&(t=n.bufferCanvases[this.TEXTURE_BUFFER],this.textureMult=2,t.width=l*this.textureMult,t.height=u*this.textureMult),this.canvasWidth=l,this.canvasHeight=u}},sk.renderTo=function(e,t,n,r){this.render({forcedContext:e,forcedZoom:t,forcedPan:n,drawAllLayers:!0,forcedPxRatio:r})},sk.render=function(e){var t=(e=e||te()).forcedContext,n=e.drawAllLayers,r=e.drawOnlyNodeLayer,i=e.forcedZoom,a=e.forcedPan,o=this,s=void 0===e.forcedPxRatio?this.getPixelRatio():e.forcedPxRatio,l=o.cy,u=o.data,h=u.canvasNeedsRedraw,c=o.textureOnViewport&&!t&&(o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming),d=void 0!==e.motionBlur?e.motionBlur:o.motionBlur,p=o.motionBlurPxRatio,g=l.hasCompoundNodes(),f=o.hoverData.draggingEles,v=!!o.hoverData.selecting||!!o.touchData.selecting,y=d=d&&!t&&o.motionBlurEnabled&&!v;t||(o.prevPxRatio!==s&&(o.invalidateContainerClientCoordsCache(),o.matchCanvasSize(o.container),o.redrawHint("eles",!0),o.redrawHint("drag",!0)),o.prevPxRatio=s),!t&&o.motionBlurTimeout&&clearTimeout(o.motionBlurTimeout),d&&(null==o.mbFrames&&(o.mbFrames=0),o.mbFrames++,o.mbFrames<3&&(y=!1),o.mbFrames>o.minMbLowQualFrames&&(o.motionBlurPxRatio=o.mbPxRBlurry)),o.clearingMotionBlur&&(o.motionBlurPxRatio=1),o.textureDrawLastFrame&&!c&&(h[o.NODE]=!0,h[o.SELECT_BOX]=!0);var b=l.style(),x=l.zoom(),w=void 0!==i?i:x,E=l.pan(),T={x:E.x,y:E.y},_={zoom:x,pan:{x:E.x,y:E.y}},D=o.prevViewport;void 0===D||_.zoom!==D.zoom||_.pan.x!==D.pan.x||_.pan.y!==D.pan.y||f&&!g||(o.motionBlurPxRatio=1),a&&(T=a),w*=s,T.x*=s,T.y*=s;var C=o.getCachedZSortedEles();function N(e,t,n,r,i){var a=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",o.colorFillStyle(e,255,255,255,o.motionBlurTransparency),e.fillRect(t,n,r,i),e.globalCompositeOperation=a}function A(e,r){var s,l,h,c;o.clearingMotionBlur||e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]&&e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]?(s=T,l=w,h=o.canvasWidth,c=o.canvasHeight):(s={x:E.x*p,y:E.y*p},l=x*p,h=o.canvasWidth*p,c=o.canvasHeight*p),e.setTransform(1,0,0,1,0,0),"motionBlur"===r?N(e,0,0,h,c):!t&&(void 0===r||r)&&e.clearRect(0,0,h,c),n||(e.translate(s.x,s.y),e.scale(l,l)),a&&e.translate(a.x,a.y),i&&e.scale(i,i)}if(c||(o.textureDrawLastFrame=!1),c){if(o.textureDrawLastFrame=!0,!o.textureCache){o.textureCache={},o.textureCache.bb=l.mutableElements().boundingBox(),o.textureCache.texture=o.data.bufferCanvases[o.TEXTURE_BUFFER];var L=o.data.bufferContexts[o.TEXTURE_BUFFER];L.setTransform(1,0,0,1,0,0),L.clearRect(0,0,o.canvasWidth*o.textureMult,o.canvasHeight*o.textureMult),o.render({forcedContext:L,drawOnlyNodeLayer:!0,forcedPxRatio:s*o.textureMult});var _=o.textureCache.viewport={zoom:l.zoom(),pan:l.pan(),width:o.canvasWidth,height:o.canvasHeight};_.mpan={x:(0-_.pan.x)/_.zoom,y:(0-_.pan.y)/_.zoom}}h[o.DRAG]=!1,h[o.NODE]=!1;var S=u.contexts[o.NODE],O=o.textureCache.texture,_=o.textureCache.viewport;S.setTransform(1,0,0,1,0,0),d?N(S,0,0,_.width,_.height):S.clearRect(0,0,_.width,_.height);var I=b.core("outside-texture-bg-color").value,k=b.core("outside-texture-bg-opacity").value;o.colorFillStyle(S,I[0],I[1],I[2],k),S.fillRect(0,0,_.width,_.height);var x=l.zoom();A(S,!1),S.clearRect(_.mpan.x,_.mpan.y,_.width/_.zoom/s,_.height/_.zoom/s),S.drawImage(O,_.mpan.x,_.mpan.y,_.width/_.zoom/s,_.height/_.zoom/s)}else o.textureOnViewport&&!t&&(o.textureCache=null);var M=l.extent(),P=o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming||o.hoverData.draggingEles||o.cy.animated(),R=o.hideEdgesOnViewport&&P,B=[];if(B[o.NODE]=!h[o.NODE]&&d&&!o.clearedForMotionBlur[o.NODE]||o.clearingMotionBlur,B[o.NODE]&&(o.clearedForMotionBlur[o.NODE]=!0),B[o.DRAG]=!h[o.DRAG]&&d&&!o.clearedForMotionBlur[o.DRAG]||o.clearingMotionBlur,B[o.DRAG]&&(o.clearedForMotionBlur[o.DRAG]=!0),h[o.NODE]||n||r||B[o.NODE]){var F=d&&!B[o.NODE]&&1!==p,S=t||(F?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]:u.contexts[o.NODE]);A(S,d&&!F?"motionBlur":void 0),R?o.drawCachedNodes(S,C.nondrag,s,M):o.drawLayeredElements(S,C.nondrag,s,M),o.debug&&o.drawDebugPoints(S,C.nondrag),n||d||(h[o.NODE]=!1)}if(!r&&(h[o.DRAG]||n||B[o.DRAG])){var F=d&&!B[o.DRAG]&&1!==p,S=t||(F?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]:u.contexts[o.DRAG]);A(S,d&&!F?"motionBlur":void 0),R?o.drawCachedNodes(S,C.drag,s,M):o.drawCachedElements(S,C.drag,s,M),o.debug&&o.drawDebugPoints(S,C.drag),n||d||(h[o.DRAG]=!1)}if(o.showFps||!r&&h[o.SELECT_BOX]&&!n){var S=t||u.contexts[o.SELECT_BOX];if(A(S),1==o.selection[4]&&(o.hoverData.selecting||o.touchData.selecting)){var x=o.cy.zoom(),z=b.core("selection-box-border-width").value/x;S.lineWidth=z,S.fillStyle="rgba("+b.core("selection-box-color").value[0]+","+b.core("selection-box-color").value[1]+","+b.core("selection-box-color").value[2]+","+b.core("selection-box-opacity").value+")",S.fillRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]),z>0&&(S.strokeStyle="rgba("+b.core("selection-box-border-color").value[0]+","+b.core("selection-box-border-color").value[1]+","+b.core("selection-box-border-color").value[2]+","+b.core("selection-box-opacity").value+")",S.strokeRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]))}if(u.bgActivePosistion&&!o.hoverData.selecting){var x=o.cy.zoom(),G=u.bgActivePosistion;S.fillStyle="rgba("+b.core("active-bg-color").value[0]+","+b.core("active-bg-color").value[1]+","+b.core("active-bg-color").value[2]+","+b.core("active-bg-opacity").value+")",S.beginPath(),S.arc(G.x,G.y,b.core("active-bg-size").pfValue/x,0,2*Math.PI),S.fill()}var Y=o.lastRedrawTime;if(o.showFps&&Y){var X=Math.round(1e3/(Y=Math.round(Y)));S.setTransform(1,0,0,1,0,0),S.fillStyle="rgba(255, 0, 0, 0.75)",S.strokeStyle="rgba(255, 0, 0, 0.75)",S.lineWidth=1,S.fillText("1 frame = "+Y+" ms = "+X+" fps",0,20),S.strokeRect(0,30,250,20),S.fillRect(0,30,250*Math.min(X/60,1),20)}n||(h[o.SELECT_BOX]=!1)}if(d&&1!==p){var V=u.contexts[o.NODE],U=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_NODE],j=u.contexts[o.DRAG],H=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_DRAG],q=function(e,t,n){e.setTransform(1,0,0,1,0,0),n||!y?e.clearRect(0,0,o.canvasWidth,o.canvasHeight):N(e,0,0,o.canvasWidth,o.canvasHeight),e.drawImage(t,0,0,o.canvasWidth*p,o.canvasHeight*p,0,0,o.canvasWidth,o.canvasHeight)};(h[o.NODE]||B[o.NODE])&&(q(V,U,B[o.NODE]),h[o.NODE]=!1),(h[o.DRAG]||B[o.DRAG])&&(q(j,H,B[o.DRAG]),h[o.DRAG]=!1)}o.prevViewport=_,o.clearingMotionBlur&&(o.clearingMotionBlur=!1,o.motionBlurCleared=!0,o.motionBlur=!0),d&&(o.motionBlurTimeout=setTimeout(function(){o.motionBlurTimeout=null,o.clearedForMotionBlur[o.NODE]=!1,o.clearedForMotionBlur[o.DRAG]=!1,o.motionBlur=!1,o.clearingMotionBlur=!c,o.mbFrames=0,h[o.NODE]=!0,h[o.DRAG]=!0,o.redraw()},100)),t||l.emit("render")};var sM={};sM.drawPolygonPath=function(e,t,n,r,i,a){var o=r/2,s=i/2;e.beginPath&&e.beginPath(),e.moveTo(t+o*a[0],n+s*a[1]);for(var l=1;l<a.length/2;l++)e.lineTo(t+o*a[2*l],n+s*a[2*l+1]);e.closePath()},sM.drawRoundPolygonPath=function(e,t,n,r,i,a){var o=r/2,s=i/2,l=nu(r,i);e.beginPath&&e.beginPath();for(var u=0;u<a.length/4;u++){var h=void 0,c=void 0;h=0===u?a.length-2:4*u-2,c=4*u+2;var d=t+o*a[4*u],p=n+s*a[4*u+1],g=l/Math.tan(Math.acos(-a[h]*a[c]-a[h+1]*a[c+1])/2),f=d-g*a[h],v=p-g*a[h+1],y=d+g*a[c],b=p+g*a[c+1];0===u?e.moveTo(f,v):e.lineTo(f,v),e.arcTo(d,p,y,b,l)}e.closePath()},sM.drawRoundRectanglePath=function(e,t,n,r,i){var a=r/2,o=i/2,s=nl(r,i);e.beginPath&&e.beginPath(),e.moveTo(t,n-o),e.arcTo(t+a,n-o,t+a,n,s),e.arcTo(t+a,n+o,t,n+o,s),e.arcTo(t-a,n+o,t-a,n,s),e.arcTo(t-a,n-o,t,n-o,s),e.lineTo(t,n-o),e.closePath()},sM.drawBottomRoundRectanglePath=function(e,t,n,r,i){var a=r/2,o=i/2,s=nl(r,i);e.beginPath&&e.beginPath(),e.moveTo(t,n-o),e.lineTo(t+a,n-o),e.lineTo(t+a,n),e.arcTo(t+a,n+o,t,n+o,s),e.arcTo(t-a,n+o,t-a,n,s),e.lineTo(t-a,n-o),e.lineTo(t,n-o),e.closePath()},sM.drawCutRectanglePath=function(e,t,n,r,i){var a=r/2,o=i/2,s=nh();e.beginPath&&e.beginPath(),e.moveTo(t-a+s,n-o),e.lineTo(t+a-s,n-o),e.lineTo(t+a,n-o+s),e.lineTo(t+a,n+o-s),e.lineTo(t+a-s,n+o),e.lineTo(t-a+s,n+o),e.lineTo(t-a,n+o-s),e.lineTo(t-a,n-o+s),e.closePath()},sM.drawBarrelPath=function(e,t,n,r,i){var a=r/2,o=i/2,s=t-a,l=t+a,u=n-o,h=n+o,c=nc(r,i),d=c.widthOffset,p=c.heightOffset,g=c.ctrlPtOffsetPct*d;e.beginPath&&e.beginPath(),e.moveTo(s,u+p),e.lineTo(s,h-p),e.quadraticCurveTo(s+g,h,s+d,h),e.lineTo(l-d,h),e.quadraticCurveTo(l-g,h,l,h-p),e.lineTo(l,u+p),e.quadraticCurveTo(l-g,u,l-d,u),e.lineTo(s+d,u),e.quadraticCurveTo(s+g,u,s,u+p),e.closePath()};for(var sP={},sR={},sB=Math.PI/40,sF=0*Math.PI;sF<2*Math.PI;sF+=sB)sP[sF]=Math.sin(sF),sR[sF]=Math.cos(sF);sM.drawEllipsePath=function(e,t,n,r,i){if(e.beginPath&&e.beginPath(),e.ellipse)e.ellipse(t,n,r/2,i/2,0,0,2*Math.PI);else for(var a,o,s=r/2,l=i/2,u=0*Math.PI;u<2*Math.PI;u+=sB)a=t-s*sP[u]*0+s*sR[u]*1,o=n+l*sR[u]*0+l*sP[u]*1,0===u?e.moveTo(a,o):e.lineTo(a,o);e.closePath()};var sz={};function sG(e){var t=e.indexOf(",");return e.substr(t+1)}function sY(e,t,n){var r=function(){return t.toDataURL(n,e.quality)};switch(e.output){case"blob-promise":return new rf(function(r,i){try{t.toBlob(function(e){null!=e?r(e):i(Error("`canvas.toBlob()` sent a null value in its callback"))},n,e.quality)}catch(e){i(e)}});case"blob":return function(e,t){for(var n=atob(e),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return new Blob([r],{type:t})}(sG(r()),n);case"base64":return sG(r());default:return r()}}sz.createBuffer=function(e,t){var n=document.createElement("canvas");return n.width=e,n.height=t,[n,n.getContext("2d")]},sz.bufferCanvasImage=function(e){var t=this.cy,n=t.mutableElements().boundingBox(),r=this.findContainerClientCoords(),i=e.full?Math.ceil(n.w):r[2],a=e.full?Math.ceil(n.h):r[3],o=R(e.maxWidth)||R(e.maxHeight),s=this.getPixelRatio(),l=1;if(void 0!==e.scale)i*=e.scale,a*=e.scale,l=e.scale;else if(o){var u=1/0,h=1/0;R(e.maxWidth)&&(u=l*e.maxWidth/i),R(e.maxHeight)&&(h=l*e.maxHeight/a),i*=l=Math.min(u,h),a*=l}o||(i*=s,a*=s,l*=s);var c=document.createElement("canvas");c.width=i,c.height=a,c.style.width=i+"px",c.style.height=a+"px";var d=c.getContext("2d");if(i>0&&a>0){d.clearRect(0,0,i,a),d.globalCompositeOperation="source-over";var p=this.getCachedZSortedEles();if(e.full)d.translate(-n.x1*l,-n.y1*l),d.scale(l,l),this.drawElements(d,p),d.scale(1/l,1/l),d.translate(n.x1*l,n.y1*l);else{var g=t.pan(),f={x:g.x*l,y:g.y*l};l*=t.zoom(),d.translate(f.x,f.y),d.scale(l,l),this.drawElements(d,p),d.scale(1/l,1/l),d.translate(-f.x,-f.y)}e.bg&&(d.globalCompositeOperation="destination-over",d.fillStyle=e.bg,d.rect(0,0,i,a),d.fill())}return c},sz.png=function(e){return sY(e,this.bufferCanvasImage(e),"image/png")},sz.jpg=function(e){return sY(e,this.bufferCanvasImage(e),"image/jpeg")};var sX={};sX.nodeShapeImpl=function(e,t,n,r,i,a,o){switch(e){case"ellipse":return this.drawEllipsePath(t,n,r,i,a);case"polygon":return this.drawPolygonPath(t,n,r,i,a,o);case"round-polygon":return this.drawRoundPolygonPath(t,n,r,i,a,o);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(t,n,r,i,a);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(t,n,r,i,a);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(t,n,r,i,a);case"barrel":return this.drawBarrelPath(t,n,r,i,a)}};var sV=sU.prototype;function sU(e){var t=this;t.data={canvases:Array(sV.CANVAS_LAYERS),contexts:Array(sV.CANVAS_LAYERS),canvasNeedsRedraw:Array(sV.CANVAS_LAYERS),bufferCanvases:Array(sV.BUFFER_COUNT),bufferContexts:Array(sV.CANVAS_LAYERS)};var n="-webkit-tap-highlight-color",r="rgba(0,0,0,0)";t.data.canvasContainer=document.createElement("div");var i=t.data.canvasContainer.style;t.data.canvasContainer.style[n]=r,i.position="relative",i.zIndex="0",i.overflow="hidden";var a=e.cy.container();a.appendChild(t.data.canvasContainer),a.style[n]=r;var o={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};C&&C.userAgent.match(/msie|trident|edge/i)&&(o["-ms-touch-action"]="none",o["touch-action"]="none");for(var s=0;s<sV.CANVAS_LAYERS;s++){var l=t.data.canvases[s]=document.createElement("canvas");t.data.contexts[s]=l.getContext("2d"),Object.keys(o).forEach(function(e){l.style[e]=o[e]}),l.style.position="absolute",l.setAttribute("data-id","layer"+s),l.style.zIndex=String(sV.CANVAS_LAYERS-s),t.data.canvasContainer.appendChild(l),t.data.canvasNeedsRedraw[s]=!1}t.data.topCanvas=t.data.canvases[0],t.data.canvases[sV.NODE].setAttribute("data-id","layer"+sV.NODE+"-node"),t.data.canvases[sV.SELECT_BOX].setAttribute("data-id","layer"+sV.SELECT_BOX+"-selectbox"),t.data.canvases[sV.DRAG].setAttribute("data-id","layer"+sV.DRAG+"-drag");for(var s=0;s<sV.BUFFER_COUNT;s++)t.data.bufferCanvases[s]=document.createElement("canvas"),t.data.bufferContexts[s]=t.data.bufferCanvases[s].getContext("2d"),t.data.bufferCanvases[s].style.position="absolute",t.data.bufferCanvases[s].setAttribute("data-id","buffer"+s),t.data.bufferCanvases[s].style.zIndex=String(-s-1),t.data.bufferCanvases[s].style.visibility="hidden";t.pathsEnabled=!0;var u=tz(),h=function(e){return{x:-e.w/2,y:-e.h/2}},c=function(e){return e.boundingBox(),e[0]._private.bodyBounds},d=function(e){return e.boundingBox(),e[0]._private.labelBounds.main||u},p=function(e){return e.boundingBox(),e[0]._private.labelBounds.source||u},g=function(e){return e.boundingBox(),e[0]._private.labelBounds.target||u},f=function(e,t){return t},v=function(e,t,n){var r=e?e+"-":"";return{x:t.x+n.pstyle(r+"text-margin-x").pfValue,y:t.y+n.pstyle(r+"text-margin-y").pfValue}},y=function(e,t,n){var r=e[0]._private.rscratch;return{x:r[t],y:r[n]}},b=t.data.eleTxrCache=new su(t,{getKey:function(e){return e[0]._private.nodeKey},doesEleInvalidateKey:function(e){var t=e[0]._private;return t.oldBackgroundTimestamp!==t.backgroundTimestamp},drawElement:function(e,n,r,i,a){return t.drawElement(e,n,r,!1,!1,a)},getBoundingBox:c,getRotationPoint:function(e){var t;return{x:((t=c(e)).x1+t.x2)/2,y:(t.y1+t.y2)/2}},getRotationOffset:function(e){return h(c(e))},allowEdgeTxrCaching:!1,allowParentTxrCaching:!1}),x=t.data.lblTxrCache=new su(t,{getKey:function(e){return e[0]._private.labelStyleKey},drawElement:function(e,n,r,i,a){return t.drawElementText(e,n,r,i,"main",a)},getBoundingBox:d,getRotationPoint:function(e){return v("",y(e,"labelX","labelY"),e)},getRotationOffset:function(e){var t=d(e),n=h(d(e));if(e.isNode()){switch(e.pstyle("text-halign").value){case"left":n.x=-t.w;break;case"right":n.x=0}switch(e.pstyle("text-valign").value){case"top":n.y=-t.h;break;case"bottom":n.y=0}}return n},isVisible:f}),w=t.data.slbTxrCache=new su(t,{getKey:function(e){return e[0]._private.sourceLabelStyleKey},drawElement:function(e,n,r,i,a){return t.drawElementText(e,n,r,i,"source",a)},getBoundingBox:p,getRotationPoint:function(e){return v("source",y(e,"sourceLabelX","sourceLabelY"),e)},getRotationOffset:function(e){return h(p(e))},isVisible:f}),E=t.data.tlbTxrCache=new su(t,{getKey:function(e){return e[0]._private.targetLabelStyleKey},drawElement:function(e,n,r,i,a){return t.drawElementText(e,n,r,i,"target",a)},getBoundingBox:g,getRotationPoint:function(e){return v("target",y(e,"targetLabelX","targetLabelY"),e)},getRotationOffset:function(e){return h(g(e))},isVisible:f}),T=t.data.lyrTxrCache=new sc(t);t.onUpdateEleCalcs(function(e,t){b.invalidateElements(t),x.invalidateElements(t),w.invalidateElements(t),E.invalidateElements(t),T.invalidateElements(t);for(var n=0;n<t.length;n++){var r=t[n]._private;r.oldBackgroundTimestamp=r.backgroundTimestamp}});var _=function(e){for(var t=0;t<e.length;t++)T.enqueueElementRefinement(e[t].ele)};b.onDequeue(_),x.onDequeue(_),w.onDequeue(_),E.onDequeue(_)}sV.CANVAS_LAYERS=3,sV.SELECT_BOX=0,sV.DRAG=1,sV.NODE=2,sV.BUFFER_COUNT=3,sV.TEXTURE_BUFFER=0,sV.MOTIONBLUR_BUFFER_NODE=1,sV.MOTIONBLUR_BUFFER_DRAG=2,sV.redrawHint=function(e,t){switch(e){case"eles":this.data.canvasNeedsRedraw[sV.NODE]=t;break;case"drag":this.data.canvasNeedsRedraw[sV.DRAG]=t;break;case"select":this.data.canvasNeedsRedraw[sV.SELECT_BOX]=t}};var sj="undefined"!=typeof Path2D;sV.path2dEnabled=function(e){if(void 0===e)return this.pathsEnabled;this.pathsEnabled=!!e},sV.usePaths=function(){return sj&&this.pathsEnabled},sV.setImgSmoothing=function(e,t){null!=e.imageSmoothingEnabled?e.imageSmoothingEnabled=t:(e.webkitImageSmoothingEnabled=t,e.mozImageSmoothingEnabled=t,e.msImageSmoothingEnabled=t)},sV.getImgSmoothing=function(e){return null!=e.imageSmoothingEnabled?e.imageSmoothingEnabled:e.webkitImageSmoothingEnabled||e.mozImageSmoothingEnabled||e.msImageSmoothingEnabled},sV.makeOffscreenCanvas=function(t,n){var r;return("undefined"==typeof OffscreenCanvas?"undefined":e(OffscreenCanvas))!=="undefined"?r=new OffscreenCanvas(t,n):((r=document.createElement("canvas")).width=t,r.height=n),r},[sg,sx,sN,sL,sS,sO,sk,sM,sz,sX].forEach(function(e){en(sV,e)});var sH=[{name:"null",impl:oX},{name:"base",impl:sn},{name:"canvas",impl:sU}],sq={},sW={};function s$(e,t,n){var r=n,i=function(n){e9("Can not register `"+t+"` for `"+e+"` since `"+n+"` already exists in the prototype and can not be overridden")};if("core"===e){if(ot.prototype[t])return i(t);ot.prototype[t]=n}else if("collection"===e){if(aM.prototype[t])return i(t);aM.prototype[t]=n}else if("layout"===e){for(var a=function(e){this.options=e,n.call(this,e),P(this._private)||(this._private={}),this._private.cy=e.cy,this._private.listeners=[],this.createEmitter()},o=a.prototype=Object.create(n.prototype),s=[],l=0;l<s.length;l++){var u=s[l];o[u]=o[u]||function(){return this}}o.start&&!o.run?o.run=function(){return this.start(),this}:!o.start&&o.run&&(o.start=function(){return this.run(),this});var h=n.prototype.stop;o.stop=function(){var e=this.options;if(e&&e.animate){var t=this.animations;if(t)for(var n=0;n<t.length;n++)t[n].stop()}return h?h.call(this):this.emit("layoutstop"),this},o.destroy||(o.destroy=function(){return this}),o.cy=function(){return this._private.cy};var c=function(e){return e._private.cy},d={addEventFields:function(e,t){t.layout=e,t.cy=c(e),t.target=e},bubble:function(){return!0},parent:function(e){return c(e)}};en(o,{createEmitter:function(){return this._private.emitter=new at(d,this),this},emitter:function(){return this._private.emitter},on:function(e,t){return this.emitter().on(e,t),this},one:function(e,t){return this.emitter().one(e,t),this},once:function(e,t){return this.emitter().one(e,t),this},removeListener:function(e,t){return this.emitter().removeListener(e,t),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},emit:function(e,t){return this.emitter().emit(e,t),this}}),ia.eventAliasesOn(o),r=a}else if("renderer"===e&&"null"!==t&&"base"!==t){var p=sK("renderer","base"),g=p.prototype,f=n.prototype,v=function(){p.apply(this,arguments),n.apply(this,arguments)},y=v.prototype;for(var b in g){var x=g[b];if(null!=f[b])return i(b);y[b]=x}for(var w in f)y[w]=f[w];g.clientFunctions.forEach(function(e){y[e]=y[e]||function(){e3("Renderer does not implement `renderer."+e+"()` on its prototype")}}),r=v}else if("__proto__"===e||"constructor"===e||"prototype"===e)return e3(e+" is an illegal type to be registered, possibly lead to prototype pollutions");return es({map:sq,keys:[e,t],value:r})}function sK(e,t){return el({map:sq,keys:[e,t]})}function sZ(e,t,n,r,i){return es({map:sW,keys:[e,t,n,r],value:i})}function sQ(e,t,n,r){return el({map:sW,keys:[e,t,n,r]})}var sJ=function(){return 2==arguments.length?sK.apply(null,arguments):3==arguments.length?s$.apply(null,arguments):4==arguments.length?sQ.apply(null,arguments):5==arguments.length?sZ.apply(null,arguments):void e3("Invalid extension access syntax")};ot.prototype.extension=sJ,[{type:"layout",extensions:oY},{type:"renderer",extensions:sH}].forEach(function(e){e.extensions.forEach(function(t){s$(e.type,t.name,t.impl)})});var s0=function e(){if(!(this instanceof e))return new e;this.length=0},s1=s0.prototype;s1.instanceString=function(){return"stylesheet"},s1.selector=function(e){return this[this.length++]={selector:e,properties:[]},this},s1.css=function(e,t){var n=this.length-1;if(I(e))this[n].properties.push({name:e,value:t});else if(P(e))for(var r=Object.keys(e),i=0;i<r.length;i++){var a=r[i],o=e[a];if(null!=o){var s=a6.properties[a]||a6.properties[q(a)];if(null!=s){var l=s.name;this[n].properties.push({name:l,value:o})}}}return this},s1.style=s1.css,s1.generateStyle=function(e){var t=new a6(e);return this.appendToStyle(t)},s1.appendToStyle=function(e){for(var t=0;t<this.length;t++){var n=this[t],r=n.selector,i=n.properties;e.selector(r);for(var a=0;a<i.length;a++){var o=i[a];e.css(o.name,o.value)}}return e};var s2=function(e){return(void 0===e&&(e={}),P(e))?new ot(e):I(e)?sJ.apply(sJ,arguments):void 0};return s2.use=function(e){var t=Array.prototype.slice.call(arguments,1);return t.unshift(s2),e.apply(null,t),this},s2.warnings=function(e){return e4(e)},s2.version="3.25.0",s2.stylesheet=s2.Stylesheet=s0,s2},e.exports=r()},44467:function(e){var t;t=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=26)}([function(e,t,n){"use strict";function r(){}r.QUALITY=1,r.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,r.DEFAULT_INCREMENTAL=!1,r.DEFAULT_ANIMATION_ON_LAYOUT=!0,r.DEFAULT_ANIMATION_DURING_LAYOUT=!1,r.DEFAULT_ANIMATION_PERIOD=50,r.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,r.DEFAULT_GRAPH_MARGIN=15,r.NODE_DIMENSIONS_INCLUDE_LABELS=!1,r.SIMPLE_NODE_SIZE=40,r.SIMPLE_NODE_HALF_SIZE=r.SIMPLE_NODE_SIZE/2,r.EMPTY_COMPOUND_NODE_SIZE=40,r.MIN_EDGE_LENGTH=1,r.WORLD_BOUNDARY=1e6,r.INITIAL_WORLD_BOUNDARY=r.WORLD_BOUNDARY/1e3,r.WORLD_CENTER_X=1200,r.WORLD_CENTER_Y=900,e.exports=r},function(e,t,n){"use strict";var r=n(2),i=n(8),a=n(9);function o(e,t,n){r.call(this,n),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=n,this.bendpoints=[],this.source=e,this.target=t}for(var s in o.prototype=Object.create(r.prototype),r)o[s]=r[s];o.prototype.getSource=function(){return this.source},o.prototype.getTarget=function(){return this.target},o.prototype.isInterGraph=function(){return this.isInterGraph},o.prototype.getLength=function(){return this.length},o.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},o.prototype.getBendpoints=function(){return this.bendpoints},o.prototype.getLca=function(){return this.lca},o.prototype.getSourceInLca=function(){return this.sourceInLca},o.prototype.getTargetInLca=function(){return this.targetInLca},o.prototype.getOtherEnd=function(e){if(this.source===e)return this.target;if(this.target===e)return this.source;throw"Node is not incident with this edge"},o.prototype.getOtherEndInGraph=function(e,t){for(var n=this.getOtherEnd(e),r=t.getGraphManager().getRoot();;){if(n.getOwner()==t)return n;if(n.getOwner()==r)break;n=n.getOwner().getParent()}return null},o.prototype.updateLength=function(){var e=[,,,,];this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),e),this.isOverlapingSourceAndTarget||(this.lengthX=e[0]-e[2],this.lengthY=e[1]-e[3],1>Math.abs(this.lengthX)&&(this.lengthX=a.sign(this.lengthX)),1>Math.abs(this.lengthY)&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},o.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),1>Math.abs(this.lengthX)&&(this.lengthX=a.sign(this.lengthX)),1>Math.abs(this.lengthY)&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},e.exports=o},function(e,t,n){"use strict";e.exports=function(e){this.vGraphObject=e}},function(e,t,n){"use strict";var r=n(2),i=n(10),a=n(13),o=n(0),s=n(16),l=n(4);function u(e,t,n,o){null==n&&null==o&&(o=t),r.call(this,o),null!=e.graphManager&&(e=e.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=o,this.edges=[],this.graphManager=e,null!=n&&null!=t?this.rect=new a(t.x,t.y,n.width,n.height):this.rect=new a}for(var h in u.prototype=Object.create(r.prototype),r)u[h]=r[h];u.prototype.getEdges=function(){return this.edges},u.prototype.getChild=function(){return this.child},u.prototype.getOwner=function(){return this.owner},u.prototype.getWidth=function(){return this.rect.width},u.prototype.setWidth=function(e){this.rect.width=e},u.prototype.getHeight=function(){return this.rect.height},u.prototype.setHeight=function(e){this.rect.height=e},u.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},u.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},u.prototype.getCenter=function(){return new l(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},u.prototype.getLocation=function(){return new l(this.rect.x,this.rect.y)},u.prototype.getRect=function(){return this.rect},u.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},u.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},u.prototype.setRect=function(e,t){this.rect.x=e.x,this.rect.y=e.y,this.rect.width=t.width,this.rect.height=t.height},u.prototype.setCenter=function(e,t){this.rect.x=e-this.rect.width/2,this.rect.y=t-this.rect.height/2},u.prototype.setLocation=function(e,t){this.rect.x=e,this.rect.y=t},u.prototype.moveBy=function(e,t){this.rect.x+=e,this.rect.y+=t},u.prototype.getEdgeListToNode=function(e){var t=[],n=this;return n.edges.forEach(function(r){if(r.target==e){if(r.source!=n)throw"Incorrect edge source!";t.push(r)}}),t},u.prototype.getEdgesBetween=function(e){var t=[],n=this;return n.edges.forEach(function(r){if(!(r.source==n||r.target==n))throw"Incorrect edge source and/or target";(r.target==e||r.source==e)&&t.push(r)}),t},u.prototype.getNeighborsList=function(){var e=new Set,t=this;return t.edges.forEach(function(n){if(n.source==t)e.add(n.target);else{if(n.target!=t)throw"Incorrect incidency!";e.add(n.source)}}),e},u.prototype.withChildren=function(){var e=new Set;if(e.add(this),null!=this.child)for(var t=this.child.getNodes(),n=0;n<t.length;n++)t[n].withChildren().forEach(function(t){e.add(t)});return e},u.prototype.getNoOfChildren=function(){var e=0;if(null==this.child)e=1;else for(var t=this.child.getNodes(),n=0;n<t.length;n++)e+=t[n].getNoOfChildren();return 0==e&&(e=1),e},u.prototype.getEstimatedSize=function(){if(this.estimatedSize==i.MIN_VALUE)throw"assert failed";return this.estimatedSize},u.prototype.calcEstimatedSize=function(){return null==this.child?this.estimatedSize=(this.rect.width+this.rect.height)/2:(this.estimatedSize=this.child.calcEstimatedSize(),this.rect.width=this.estimatedSize,this.rect.height=this.estimatedSize,this.estimatedSize)},u.prototype.scatter=function(){var e,t,n=-o.INITIAL_WORLD_BOUNDARY,r=o.INITIAL_WORLD_BOUNDARY;e=o.WORLD_CENTER_X+s.nextDouble()*(r-n)+n;var i=-o.INITIAL_WORLD_BOUNDARY,a=o.INITIAL_WORLD_BOUNDARY;t=o.WORLD_CENTER_Y+s.nextDouble()*(a-i)+i,this.rect.x=e,this.rect.y=t},u.prototype.updateBounds=function(){if(null==this.getChild())throw"assert failed";if(0!=this.getChild().getNodes().length){var e=this.getChild();if(e.updateBounds(!0),this.rect.x=e.getLeft(),this.rect.y=e.getTop(),this.setWidth(e.getRight()-e.getLeft()),this.setHeight(e.getBottom()-e.getTop()),o.NODE_DIMENSIONS_INCLUDE_LABELS){var t=e.getRight()-e.getLeft(),n=e.getBottom()-e.getTop();this.labelWidth>t&&(this.rect.x-=(this.labelWidth-t)/2,this.setWidth(this.labelWidth)),this.labelHeight>n&&("center"==this.labelPos?this.rect.y-=(this.labelHeight-n)/2:"top"==this.labelPos&&(this.rect.y-=this.labelHeight-n),this.setHeight(this.labelHeight))}}},u.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},u.prototype.transform=function(e){var t=this.rect.x;t>o.WORLD_BOUNDARY?t=o.WORLD_BOUNDARY:t<-o.WORLD_BOUNDARY&&(t=-o.WORLD_BOUNDARY);var n=this.rect.y;n>o.WORLD_BOUNDARY?n=o.WORLD_BOUNDARY:n<-o.WORLD_BOUNDARY&&(n=-o.WORLD_BOUNDARY);var r=new l(t,n),i=e.inverseTransformPoint(r);this.setLocation(i.x,i.y)},u.prototype.getLeft=function(){return this.rect.x},u.prototype.getRight=function(){return this.rect.x+this.rect.width},u.prototype.getTop=function(){return this.rect.y},u.prototype.getBottom=function(){return this.rect.y+this.rect.height},u.prototype.getParent=function(){return null==this.owner?null:this.owner.getParent()},e.exports=u},function(e,t,n){"use strict";function r(e,t){null==e&&null==t?(this.x=0,this.y=0):(this.x=e,this.y=t)}r.prototype.getX=function(){return this.x},r.prototype.getY=function(){return this.y},r.prototype.setX=function(e){this.x=e},r.prototype.setY=function(e){this.y=e},r.prototype.getDifference=function(e){return new DimensionD(this.x-e.x,this.y-e.y)},r.prototype.getCopy=function(){return new r(this.x,this.y)},r.prototype.translate=function(e){return this.x+=e.width,this.y+=e.height,this},e.exports=r},function(e,t,n){"use strict";var r=n(2),i=n(10),a=n(0),o=n(6),s=n(3),l=n(1),u=n(13),h=n(12),c=n(11);function d(e,t,n){r.call(this,n),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=e,null!=t&&t instanceof o?this.graphManager=t:null!=t&&t instanceof Layout&&(this.graphManager=t.graphManager)}for(var p in d.prototype=Object.create(r.prototype),r)d[p]=r[p];d.prototype.getNodes=function(){return this.nodes},d.prototype.getEdges=function(){return this.edges},d.prototype.getGraphManager=function(){return this.graphManager},d.prototype.getParent=function(){return this.parent},d.prototype.getLeft=function(){return this.left},d.prototype.getRight=function(){return this.right},d.prototype.getTop=function(){return this.top},d.prototype.getBottom=function(){return this.bottom},d.prototype.isConnected=function(){return this.isConnected},d.prototype.add=function(e,t,n){if(null==t&&null==n){if(null==this.graphManager)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(e)>-1)throw"Node already in graph!";return e.owner=this,this.getNodes().push(e),e}if(!(this.getNodes().indexOf(t)>-1&&this.getNodes().indexOf(n)>-1))throw"Source or target not in graph!";if(!(t.owner==n.owner&&t.owner==this))throw"Both owners must be this graph!";return t.owner!=n.owner?null:(e.source=t,e.target=n,e.isInterGraph=!1,this.getEdges().push(e),t.edges.push(e),n!=t&&n.edges.push(e),e)},d.prototype.remove=function(e){if(e instanceof s){if(null==e)throw"Node is null!";if(!(null!=e.owner&&e.owner==this))throw"Owner graph is invalid!";if(null==this.graphManager)throw"Owner graph manager is invalid!";for(var t,n=e.edges.slice(),r=n.length,i=0;i<r;i++)(t=n[i]).isInterGraph?this.graphManager.remove(t):t.source.owner.remove(t);var a=this.nodes.indexOf(e);if(-1==a)throw"Node not in owner node list!";this.nodes.splice(a,1)}else if(e instanceof l){var t=e;if(null==t)throw"Edge is null!";if(!(null!=t.source&&null!=t.target))throw"Source and/or target is null!";if(!(null!=t.source.owner&&null!=t.target.owner&&t.source.owner==this&&t.target.owner==this))throw"Source and/or target owner is invalid!";var o=t.source.edges.indexOf(t),u=t.target.edges.indexOf(t);if(!(o>-1&&u>-1))throw"Source and/or target doesn't know this edge!";t.source.edges.splice(o,1),t.target!=t.source&&t.target.edges.splice(u,1);var a=t.source.owner.getEdges().indexOf(t);if(-1==a)throw"Not in owner's edge list!";t.source.owner.getEdges().splice(a,1)}},d.prototype.updateLeftTop=function(){for(var e,t,n,r=i.MAX_VALUE,a=i.MAX_VALUE,o=this.getNodes(),s=o.length,l=0;l<s;l++){var u=o[l];e=u.getTop(),t=u.getLeft(),r>e&&(r=e),a>t&&(a=t)}return r==i.MAX_VALUE?null:(n=void 0!=o[0].getParent().paddingLeft?o[0].getParent().paddingLeft:this.margin,this.left=a-n,this.top=r-n,new h(this.left,this.top))},d.prototype.updateBounds=function(e){for(var t,n,r,a,o,s=i.MAX_VALUE,l=-i.MAX_VALUE,h=i.MAX_VALUE,c=-i.MAX_VALUE,d=this.nodes,p=d.length,g=0;g<p;g++){var f=d[g];e&&null!=f.child&&f.updateBounds(),t=f.getLeft(),n=f.getRight(),r=f.getTop(),a=f.getBottom(),s>t&&(s=t),l<n&&(l=n),h>r&&(h=r),c<a&&(c=a)}var v=new u(s,h,l-s,c-h);s==i.MAX_VALUE&&(this.left=this.parent.getLeft(),this.right=this.parent.getRight(),this.top=this.parent.getTop(),this.bottom=this.parent.getBottom()),o=void 0!=d[0].getParent().paddingLeft?d[0].getParent().paddingLeft:this.margin,this.left=v.x-o,this.right=v.x+v.width+o,this.top=v.y-o,this.bottom=v.y+v.height+o},d.calculateBounds=function(e){for(var t,n,r,a,o=i.MAX_VALUE,s=-i.MAX_VALUE,l=i.MAX_VALUE,h=-i.MAX_VALUE,c=e.length,d=0;d<c;d++){var p=e[d];t=p.getLeft(),n=p.getRight(),r=p.getTop(),a=p.getBottom(),o>t&&(o=t),s<n&&(s=n),l>r&&(l=r),h<a&&(h=a)}return new u(o,l,s-o,h-l)},d.prototype.getInclusionTreeDepth=function(){return this==this.graphManager.getRoot()?1:this.parent.getInclusionTreeDepth()},d.prototype.getEstimatedSize=function(){if(this.estimatedSize==i.MIN_VALUE)throw"assert failed";return this.estimatedSize},d.prototype.calcEstimatedSize=function(){for(var e=0,t=this.nodes,n=t.length,r=0;r<n;r++)e+=t[r].calcEstimatedSize();return 0==e?this.estimatedSize=a.EMPTY_COMPOUND_NODE_SIZE:this.estimatedSize=e/Math.sqrt(this.nodes.length),this.estimatedSize},d.prototype.updateConnected=function(){var e,t,n=this;if(0==this.nodes.length){this.isConnected=!0;return}var r=new c,i=new Set,a=this.nodes[0];for(a.withChildren().forEach(function(e){r.push(e),i.add(e)});0!==r.length;)for(var o=(e=(a=r.shift()).getEdges()).length,s=0;s<o;s++)null==(t=e[s].getOtherEndInGraph(a,this))||i.has(t)||t.withChildren().forEach(function(e){r.push(e),i.add(e)});if(this.isConnected=!1,i.size>=this.nodes.length){var l=0;i.forEach(function(e){e.owner==n&&l++}),l==this.nodes.length&&(this.isConnected=!0)}},e.exports=d},function(e,t,n){"use strict";var r,i=n(1);function a(e){r=n(5),this.layout=e,this.graphs=[],this.edges=[]}a.prototype.addRoot=function(){var e=this.layout.newGraph(),t=this.layout.newNode(null),n=this.add(e,t);return this.setRootGraph(n),this.rootGraph},a.prototype.add=function(e,t,n,r,i){if(null==n&&null==r&&null==i){if(null==e)throw"Graph is null!";if(null==t)throw"Parent node is null!";if(this.graphs.indexOf(e)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(e),null!=e.parent)throw"Already has a parent!";if(null!=t.child)throw"Already has a child!";return e.parent=t,t.child=e,e}i=n,r=t,n=e;var a=r.getOwner(),o=i.getOwner();if(!(null!=a&&a.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(null!=o&&o.getGraphManager()==this))throw"Target not in this graph mgr!";if(a==o)return n.isInterGraph=!1,a.add(n,r,i);if(n.isInterGraph=!0,n.source=r,n.target=i,this.edges.indexOf(n)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(n),!(null!=n.source&&null!=n.target))throw"Edge source and/or target is null!";if(!(-1==n.source.edges.indexOf(n)&&-1==n.target.edges.indexOf(n)))throw"Edge already in source and/or target incidency list!";return n.source.edges.push(n),n.target.edges.push(n),n},a.prototype.remove=function(e){if(e instanceof r){if(e.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(e==this.rootGraph||null!=e.parent&&e.parent.graphManager==this))throw"Invalid parent node!";for(var t,n,a=[],o=(a=a.concat(e.getEdges())).length,s=0;s<o;s++)t=a[s],e.remove(t);var l=[];o=(l=l.concat(e.getNodes())).length;for(var s=0;s<o;s++)n=l[s],e.remove(n);e==this.rootGraph&&this.setRootGraph(null);var u=this.graphs.indexOf(e);this.graphs.splice(u,1),e.parent=null}else if(e instanceof i){if(null==(t=e))throw"Edge is null!";if(!t.isInterGraph)throw"Not an inter-graph edge!";if(!(null!=t.source&&null!=t.target))throw"Source and/or target is null!";if(!(-1!=t.source.edges.indexOf(t)&&-1!=t.target.edges.indexOf(t)))throw"Source and/or target doesn't know this edge!";var u=t.source.edges.indexOf(t);if(t.source.edges.splice(u,1),u=t.target.edges.indexOf(t),t.target.edges.splice(u,1),!(null!=t.source.owner&&null!=t.source.owner.getGraphManager()))throw"Edge owner graph or owner graph manager is null!";if(-1==t.source.owner.getGraphManager().edges.indexOf(t))throw"Not in owner graph manager's edge list!";var u=t.source.owner.getGraphManager().edges.indexOf(t);t.source.owner.getGraphManager().edges.splice(u,1)}},a.prototype.updateBounds=function(){this.rootGraph.updateBounds(!0)},a.prototype.getGraphs=function(){return this.graphs},a.prototype.getAllNodes=function(){if(null==this.allNodes){for(var e=[],t=this.getGraphs(),n=t.length,r=0;r<n;r++)e=e.concat(t[r].getNodes());this.allNodes=e}return this.allNodes},a.prototype.resetAllNodes=function(){this.allNodes=null},a.prototype.resetAllEdges=function(){this.allEdges=null},a.prototype.resetAllNodesToApplyGravitation=function(){this.allNodesToApplyGravitation=null},a.prototype.getAllEdges=function(){if(null==this.allEdges){var e=[],t=this.getGraphs();t.length;for(var n=0;n<t.length;n++)e=e.concat(t[n].getEdges());e=e.concat(this.edges),this.allEdges=e}return this.allEdges},a.prototype.getAllNodesToApplyGravitation=function(){return this.allNodesToApplyGravitation},a.prototype.setAllNodesToApplyGravitation=function(e){if(null!=this.allNodesToApplyGravitation)throw"assert failed";this.allNodesToApplyGravitation=e},a.prototype.getRoot=function(){return this.rootGraph},a.prototype.setRootGraph=function(e){if(e.getGraphManager()!=this)throw"Root not in this graph mgr!";this.rootGraph=e,null==e.parent&&(e.parent=this.layout.newNode("Root node"))},a.prototype.getLayout=function(){return this.layout},a.prototype.isOneAncestorOfOther=function(e,t){if(!(null!=e&&null!=t))throw"assert failed";if(e==t)return!0;for(var n,r=e.getOwner();null!=(n=r.getParent());){if(n==t)return!0;if(null==(r=n.getOwner()))break}for(r=t.getOwner();null!=(n=r.getParent());){if(n==e)return!0;if(null==(r=n.getOwner()))break}return!1},a.prototype.calcLowestCommonAncestors=function(){for(var e,t,n,r,i,a=this.getAllEdges(),o=a.length,s=0;s<o;s++){if(t=(e=a[s]).source,n=e.target,e.lca=null,e.sourceInLca=t,e.targetInLca=n,t==n){e.lca=t.getOwner();continue}for(r=t.getOwner();null==e.lca;){for(e.targetInLca=n,i=n.getOwner();null==e.lca;){if(i==r){e.lca=i;break}if(i==this.rootGraph)break;if(null!=e.lca)throw"assert failed";e.targetInLca=i.getParent(),i=e.targetInLca.getOwner()}if(r==this.rootGraph)break;null==e.lca&&(e.sourceInLca=r.getParent(),r=e.sourceInLca.getOwner())}if(null==e.lca)throw"assert failed"}},a.prototype.calcLowestCommonAncestor=function(e,t){if(e==t)return e.getOwner();for(var n=e.getOwner();null!=n;){for(var r=t.getOwner();null!=r;){if(r==n)return r;r=r.getParent().getOwner()}n=n.getParent().getOwner()}return n},a.prototype.calcInclusionTreeDepths=function(e,t){null==e&&null==t&&(e=this.rootGraph,t=1);for(var n,r=e.getNodes(),i=r.length,a=0;a<i;a++)(n=r[a]).inclusionTreeDepth=t,null!=n.child&&this.calcInclusionTreeDepths(n.child,t+1)},a.prototype.includesInvalidEdge=function(){for(var e,t=this.edges.length,n=0;n<t;n++)if(e=this.edges[n],this.isOneAncestorOfOther(e.source,e.target))return!0;return!1},e.exports=a},function(e,t,n){"use strict";var r=n(0);function i(){}for(var a in r)i[a]=r[a];i.MAX_ITERATIONS=2500,i.DEFAULT_EDGE_LENGTH=50,i.DEFAULT_SPRING_STRENGTH=.45,i.DEFAULT_REPULSION_STRENGTH=4500,i.DEFAULT_GRAVITY_STRENGTH=.4,i.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,i.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,i.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,i.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,i.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,i.COOLING_ADAPTATION_FACTOR=.33,i.ADAPTATION_LOWER_NODE_LIMIT=1e3,i.ADAPTATION_UPPER_NODE_LIMIT=5e3,i.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,i.MAX_NODE_DISPLACEMENT=3*i.MAX_NODE_DISPLACEMENT_INCREMENTAL,i.MIN_REPULSION_DIST=i.DEFAULT_EDGE_LENGTH/10,i.CONVERGENCE_CHECK_PERIOD=100,i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,i.MIN_EDGE_LENGTH=1,i.GRID_CALCULATION_CHECK_PERIOD=10,e.exports=i},function(e,t,n){"use strict";var r=n(12);function i(){}i.calcSeparationAmount=function(e,t,n,r){if(!e.intersects(t))throw"assert failed";var i=[,,];this.decideDirectionsForOverlappingNodes(e,t,i),n[0]=Math.min(e.getRight(),t.getRight())-Math.max(e.x,t.x),n[1]=Math.min(e.getBottom(),t.getBottom())-Math.max(e.y,t.y),e.getX()<=t.getX()&&e.getRight()>=t.getRight()?n[0]+=Math.min(t.getX()-e.getX(),e.getRight()-t.getRight()):t.getX()<=e.getX()&&t.getRight()>=e.getRight()&&(n[0]+=Math.min(e.getX()-t.getX(),t.getRight()-e.getRight())),e.getY()<=t.getY()&&e.getBottom()>=t.getBottom()?n[1]+=Math.min(t.getY()-e.getY(),e.getBottom()-t.getBottom()):t.getY()<=e.getY()&&t.getBottom()>=e.getBottom()&&(n[1]+=Math.min(e.getY()-t.getY(),t.getBottom()-e.getBottom()));var a=Math.abs((t.getCenterY()-e.getCenterY())/(t.getCenterX()-e.getCenterX()));t.getCenterY()===e.getCenterY()&&t.getCenterX()===e.getCenterX()&&(a=1);var o=a*n[0],s=n[1]/a;n[0]<s?s=n[0]:o=n[1],n[0]=-1*i[0]*(s/2+r),n[1]=-1*i[1]*(o/2+r)},i.decideDirectionsForOverlappingNodes=function(e,t,n){e.getCenterX()<t.getCenterX()?n[0]=-1:n[0]=1,e.getCenterY()<t.getCenterY()?n[1]=-1:n[1]=1},i.getIntersection2=function(e,t,n){var r=e.getCenterX(),i=e.getCenterY(),a=t.getCenterX(),o=t.getCenterY();if(e.intersects(t))return n[0]=r,n[1]=i,n[2]=a,n[3]=o,!0;var s=e.getX(),l=e.getY(),u=e.getRight(),h=e.getX(),c=e.getBottom(),d=e.getRight(),p=e.getWidthHalf(),g=e.getHeightHalf(),f=t.getX(),v=t.getY(),y=t.getRight(),b=t.getX(),x=t.getBottom(),w=t.getRight(),E=t.getWidthHalf(),T=t.getHeightHalf(),_=!1,D=!1;if(r===a)i>o?(n[0]=r,n[1]=l,n[2]=a,n[3]=x):i<o&&(n[0]=r,n[1]=c,n[2]=a,n[3]=v);else if(i===o)r>a?(n[0]=s,n[1]=i,n[2]=y,n[3]=o):r<a&&(n[0]=u,n[1]=i,n[2]=f,n[3]=o);else{var C=e.height/e.width,N=t.height/t.width,A=(o-i)/(a-r),L=void 0,S=void 0,O=void 0,I=void 0,k=void 0,M=void 0;if(-C===A?(r>a?(n[0]=h,n[1]=c):(n[0]=u,n[1]=l),_=!0):C===A&&(r>a?(n[0]=s,n[1]=l):(n[0]=d,n[1]=c),_=!0),-N===A?(a>r?(n[2]=b,n[3]=x):(n[2]=y,n[3]=v),D=!0):N===A&&(a>r?(n[2]=f,n[3]=v):(n[2]=w,n[3]=x),D=!0),_&&D)return!1;if(r>a?i>o?(L=this.getCardinalDirection(C,A,4),S=this.getCardinalDirection(N,A,2)):(L=this.getCardinalDirection(-C,A,3),S=this.getCardinalDirection(-N,A,1)):i>o?(L=this.getCardinalDirection(-C,A,1),S=this.getCardinalDirection(-N,A,3)):(L=this.getCardinalDirection(C,A,2),S=this.getCardinalDirection(N,A,4)),!_)switch(L){case 1:I=l,O=r+-g/A,n[0]=O,n[1]=I;break;case 2:O=d,I=i+p*A,n[0]=O,n[1]=I;break;case 3:I=c,O=r+g/A,n[0]=O,n[1]=I;break;case 4:O=h,I=i+-p*A,n[0]=O,n[1]=I}if(!D)switch(S){case 1:M=v,k=a+-T/A,n[2]=k,n[3]=M;break;case 2:k=w,M=o+E*A,n[2]=k,n[3]=M;break;case 3:M=x,k=a+T/A,n[2]=k,n[3]=M;break;case 4:k=b,M=o+-E*A,n[2]=k,n[3]=M}}return!1},i.getCardinalDirection=function(e,t,n){return e>t?n:1+n%4},i.getIntersection=function(e,t,n,i){if(null==i)return this.getIntersection2(e,t,n);var a=e.x,o=e.y,s=t.x,l=t.y,u=n.x,h=n.y,c=i.x,d=i.y,p=void 0,g=void 0,f=void 0,v=void 0,y=void 0,b=void 0,x=void 0;return(p=l-o,f=a-s,y=s*o-a*l,g=d-h,v=u-c,b=c*h-u*d,0==(x=p*v-g*f))?null:new r((f*b-v*y)/x,(g*y-p*b)/x)},i.angleOfVector=function(e,t,n,r){var i=void 0;return e!==n?(i=Math.atan((r-t)/(n-e)),n<e?i+=Math.PI:r<t&&(i+=this.TWO_PI)):i=r<t?this.ONE_AND_HALF_PI:this.HALF_PI,i},i.doIntersect=function(e,t,n,r){var i=e.x,a=e.y,o=t.x,s=t.y,l=n.x,u=n.y,h=r.x,c=r.y,d=(o-i)*(c-u)-(h-l)*(s-a);if(0===d)return!1;var p=((c-u)*(h-i)+(l-h)*(c-a))/d,g=((a-s)*(h-i)+(o-i)*(c-a))/d;return 0<p&&p<1&&0<g&&g<1},i.HALF_PI=.5*Math.PI,i.ONE_AND_HALF_PI=1.5*Math.PI,i.TWO_PI=2*Math.PI,i.THREE_PI=3*Math.PI,e.exports=i},function(e,t,n){"use strict";function r(){}r.sign=function(e){return e>0?1:e<0?-1:0},r.floor=function(e){return e<0?Math.ceil(e):Math.floor(e)},r.ceil=function(e){return e<0?Math.floor(e):Math.ceil(e)},e.exports=r},function(e,t,n){"use strict";function r(){}r.MAX_VALUE=2147483647,r.MIN_VALUE=-2147483648,e.exports=r},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=function(e){return{value:e,next:null,prev:null}},a=function(e,t,n,r){return null!==e?e.next=t:r.head=t,null!==n?n.prev=t:r.tail=t,t.prev=e,t.next=n,r.length++,t},o=function(e,t){var n=e.prev,r=e.next;return null!==n?n.next=r:t.head=r,null!==r?r.prev=n:t.tail=n,e.prev=e.next=null,t.length--,e},s=function(){function e(t){var n=this;(function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")})(this,e),this.length=0,this.head=null,this.tail=null,null!=t&&t.forEach(function(e){return n.push(e)})}return r(e,[{key:"size",value:function(){return this.length}},{key:"insertBefore",value:function(e,t){return a(t.prev,i(e),t,this)}},{key:"insertAfter",value:function(e,t){return a(t,i(e),t.next,this)}},{key:"insertNodeBefore",value:function(e,t){return a(t.prev,e,t,this)}},{key:"insertNodeAfter",value:function(e,t){return a(t,e,t.next,this)}},{key:"push",value:function(e){return a(this.tail,i(e),null,this)}},{key:"unshift",value:function(e){return a(null,i(e),this.head,this)}},{key:"remove",value:function(e){return o(e,this)}},{key:"pop",value:function(){return o(this.tail,this).value}},{key:"popNode",value:function(){return o(this.tail,this)}},{key:"shift",value:function(){return o(this.head,this).value}},{key:"shiftNode",value:function(){return o(this.head,this)}},{key:"get_object_at",value:function(e){if(e<=this.length()){for(var t=1,n=this.head;t<e;)n=n.next,t++;return n.value}}},{key:"set_object_at",value:function(e,t){if(e<=this.length()){for(var n=1,r=this.head;n<e;)r=r.next,n++;r.value=t}}}]),e}();e.exports=s},function(e,t,n){"use strict";function r(e,t,n){this.x=null,this.y=null,null==e&&null==t&&null==n?(this.x=0,this.y=0):"number"==typeof e&&"number"==typeof t&&null==n?(this.x=e,this.y=t):"Point"==e.constructor.name&&null==t&&null==n&&(n=e,this.x=n.x,this.y=n.y)}r.prototype.getX=function(){return this.x},r.prototype.getY=function(){return this.y},r.prototype.getLocation=function(){return new r(this.x,this.y)},r.prototype.setLocation=function(e,t,n){"Point"==e.constructor.name&&null==t&&null==n?(n=e,this.setLocation(n.x,n.y)):"number"==typeof e&&"number"==typeof t&&null==n&&(parseInt(e)==e&&parseInt(t)==t?this.move(e,t):(this.x=Math.floor(e+.5),this.y=Math.floor(t+.5)))},r.prototype.move=function(e,t){this.x=e,this.y=t},r.prototype.translate=function(e,t){this.x+=e,this.y+=t},r.prototype.equals=function(e){return"Point"==e.constructor.name?this.x==e.x&&this.y==e.y:this==e},r.prototype.toString=function(){return new r().constructor.name+"[x="+this.x+",y="+this.y+"]"},e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){this.x=0,this.y=0,this.width=0,this.height=0,null!=e&&null!=t&&null!=n&&null!=r&&(this.x=e,this.y=t,this.width=n,this.height=r)}r.prototype.getX=function(){return this.x},r.prototype.setX=function(e){this.x=e},r.prototype.getY=function(){return this.y},r.prototype.setY=function(e){this.y=e},r.prototype.getWidth=function(){return this.width},r.prototype.setWidth=function(e){this.width=e},r.prototype.getHeight=function(){return this.height},r.prototype.setHeight=function(e){this.height=e},r.prototype.getRight=function(){return this.x+this.width},r.prototype.getBottom=function(){return this.y+this.height},r.prototype.intersects=function(e){return!(this.getRight()<e.x||this.getBottom()<e.y||e.getRight()<this.x||e.getBottom()<this.y)},r.prototype.getCenterX=function(){return this.x+this.width/2},r.prototype.getMinX=function(){return this.getX()},r.prototype.getMaxX=function(){return this.getX()+this.width},r.prototype.getCenterY=function(){return this.y+this.height/2},r.prototype.getMinY=function(){return this.getY()},r.prototype.getMaxY=function(){return this.getY()+this.height},r.prototype.getWidthHalf=function(){return this.width/2},r.prototype.getHeightHalf=function(){return this.height/2},e.exports=r},function(e,t,n){"use strict";var r="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};function i(){}i.lastID=0,i.createID=function(e){return i.isPrimitive(e)?e:(null!=e.uniqueID||(e.uniqueID=i.getString(),i.lastID++),e.uniqueID)},i.getString=function(e){return null==e&&(e=i.lastID),"Object#"+e},i.isPrimitive=function(e){var t=void 0===e?"undefined":r(e);return null==e||"object"!=t&&"function"!=t},e.exports=i},function(e,t,n){"use strict";function r(e){if(!Array.isArray(e))return Array.from(e);for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}var i=n(0),a=n(6),o=n(3),s=n(1),l=n(5),u=n(4),h=n(17),c=n(27);function d(e){c.call(this),this.layoutQuality=i.QUALITY,this.createBendsAsNeeded=i.DEFAULT_CREATE_BENDS_AS_NEEDED,this.incremental=i.DEFAULT_INCREMENTAL,this.animationOnLayout=i.DEFAULT_ANIMATION_ON_LAYOUT,this.animationDuringLayout=i.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=i.DEFAULT_ANIMATION_PERIOD,this.uniformLeafNodeSizes=i.DEFAULT_UNIFORM_LEAF_NODE_SIZES,this.edgeToDummyNodes=new Map,this.graphManager=new a(this),this.isLayoutFinished=!1,this.isSubLayout=!1,this.isRemoteUse=!1,null!=e&&(this.isRemoteUse=e)}d.RANDOM_SEED=1,d.prototype=Object.create(c.prototype),d.prototype.getGraphManager=function(){return this.graphManager},d.prototype.getAllNodes=function(){return this.graphManager.getAllNodes()},d.prototype.getAllEdges=function(){return this.graphManager.getAllEdges()},d.prototype.getAllNodesToApplyGravitation=function(){return this.graphManager.getAllNodesToApplyGravitation()},d.prototype.newGraphManager=function(){var e=new a(this);return this.graphManager=e,e},d.prototype.newGraph=function(e){return new l(null,this.graphManager,e)},d.prototype.newNode=function(e){return new o(this.graphManager,e)},d.prototype.newEdge=function(e){return new s(null,null,e)},d.prototype.checkLayoutSuccess=function(){return null==this.graphManager.getRoot()||0==this.graphManager.getRoot().getNodes().length||this.graphManager.includesInvalidEdge()},d.prototype.runLayout=function(){var e;return this.isLayoutFinished=!1,this.tilingPreLayout&&this.tilingPreLayout(),this.initParameters(),e=!this.checkLayoutSuccess()&&this.layout(),"during"!==i.ANIMATE&&(e&&!this.isSubLayout&&this.doPostLayout(),this.tilingPostLayout&&this.tilingPostLayout(),this.isLayoutFinished=!0,e)},d.prototype.doPostLayout=function(){this.incremental||this.transform(),this.update()},d.prototype.update2=function(){if(this.createBendsAsNeeded&&(this.createBendpointsFromDummyNodes(),this.graphManager.resetAllEdges()),!this.isRemoteUse){for(var e=this.graphManager.getAllEdges(),t=0;t<e.length;t++)e[t];for(var n=this.graphManager.getRoot().getNodes(),t=0;t<n.length;t++)n[t];this.update(this.graphManager.getRoot())}},d.prototype.update=function(e){if(null==e)this.update2();else if(e instanceof o){if(null!=e.getChild())for(var t=e.getChild().getNodes(),n=0;n<t.length;n++)update(t[n]);null!=e.vGraphObject&&e.vGraphObject.update(e)}else e instanceof s?null!=e.vGraphObject&&e.vGraphObject.update(e):e instanceof l&&null!=e.vGraphObject&&e.vGraphObject.update(e)},d.prototype.initParameters=function(){this.isSubLayout||(this.layoutQuality=i.QUALITY,this.animationDuringLayout=i.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=i.DEFAULT_ANIMATION_PERIOD,this.animationOnLayout=i.DEFAULT_ANIMATION_ON_LAYOUT,this.incremental=i.DEFAULT_INCREMENTAL,this.createBendsAsNeeded=i.DEFAULT_CREATE_BENDS_AS_NEEDED,this.uniformLeafNodeSizes=i.DEFAULT_UNIFORM_LEAF_NODE_SIZES),this.animationDuringLayout&&(this.animationOnLayout=!1)},d.prototype.transform=function(e){if(void 0==e)this.transform(new u(0,0));else{var t=new h,n=this.graphManager.getRoot().updateLeftTop();if(null!=n){t.setWorldOrgX(e.x),t.setWorldOrgY(e.y),t.setDeviceOrgX(n.x),t.setDeviceOrgY(n.y);for(var r=this.getAllNodes(),i=0;i<r.length;i++)r[i].transform(t)}}},d.prototype.positionNodesRandomly=function(e){if(void 0==e)this.positionNodesRandomly(this.getGraphManager().getRoot()),this.getGraphManager().getRoot().updateBounds(!0);else for(var t,n,r=e.getNodes(),i=0;i<r.length;i++)null==(n=(t=r[i]).getChild())?t.scatter():0==n.getNodes().length?t.scatter():(this.positionNodesRandomly(n),t.updateBounds())},d.prototype.getFlatForest=function(){for(var e=[],t=!0,n=this.graphManager.getRoot().getNodes(),i=!0,a=0;a<n.length;a++)null!=n[a].getChild()&&(i=!1);if(!i)return e;var o=new Set,s=[],l=new Map,u=[];for(u=u.concat(n);u.length>0&&t;){for(s.push(u[0]);s.length>0&&t;){var h=s[0];s.splice(0,1),o.add(h);for(var c=h.getEdges(),a=0;a<c.length;a++){var d=c[a].getOtherEnd(h);if(l.get(h)!=d){if(o.has(d)){t=!1;break}s.push(d),l.set(d,h)}}}if(t){var p=[].concat(r(o));e.push(p);for(var a=0;a<p.length;a++){var g=p[a],f=u.indexOf(g);f>-1&&u.splice(f,1)}o=new Set,l=new Map}else e=[]}return e},d.prototype.createDummyNodesForBendpoints=function(e){for(var t=[],n=e.source,r=this.graphManager.calcLowestCommonAncestor(e.source,e.target),i=0;i<e.bendpoints.length;i++){var a=this.newNode(null);a.setRect(new Point(0,0),new Dimension(1,1)),r.add(a);var o=this.newEdge(null);this.graphManager.add(o,n,a),t.add(a),n=a}var o=this.newEdge(null);return this.graphManager.add(o,n,e.target),this.edgeToDummyNodes.set(e,t),e.isInterGraph()?this.graphManager.remove(e):r.remove(e),t},d.prototype.createBendpointsFromDummyNodes=function(){var e=[];e=e.concat(this.graphManager.getAllEdges()),e=[].concat(r(this.edgeToDummyNodes.keys())).concat(e);for(var t=0;t<e.length;t++){var n=e[t];if(n.bendpoints.length>0){for(var i=this.edgeToDummyNodes.get(n),a=0;a<i.length;a++){var o=i[a],s=new u(o.getCenterX(),o.getCenterY()),l=n.bendpoints.get(a);l.x=s.x,l.y=s.y,o.getOwner().remove(o)}this.graphManager.add(n,n.source,n.target)}}},d.transform=function(e,t,n,r){if(void 0==n||void 0==r)return e<=50?(i=9*t/500,a=t/10):(i=9*t/50,a=-8*t),i*e+a;var i,a,o=t;return e<=50?o-=(t-t/n)/50*(50-e):o+=(t*r-t)/50*(e-50),o},d.findCenterOfTree=function(e){var t=[];t=t.concat(e);var n=[],r=new Map,i=!1,a=null;(1==t.length||2==t.length)&&(i=!0,a=t[0]);for(var o=0;o<t.length;o++){var s=t[o],l=s.getNeighborsList().size;r.set(s,s.getNeighborsList().size),1==l&&n.push(s)}var u=[];for(u=u.concat(n);!i;){var h=[];h=h.concat(u),u=[];for(var o=0;o<t.length;o++){var s=t[o],c=t.indexOf(s);c>=0&&t.splice(c,1),s.getNeighborsList().forEach(function(e){if(0>n.indexOf(e)){var t=r.get(e)-1;1==t&&u.push(e),r.set(e,t)}})}n=n.concat(u),(1==t.length||2==t.length)&&(i=!0,a=t[0])}return a},d.prototype.setGraphManager=function(e){this.graphManager=e},e.exports=d},function(e,t,n){"use strict";function r(){}r.seed=1,r.x=0,r.nextDouble=function(){return r.x=1e4*Math.sin(r.seed++),r.x-Math.floor(r.x)},e.exports=r},function(e,t,n){"use strict";var r=n(4);function i(e,t){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(e){this.lworldOrgX=e},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(e){this.lworldOrgY=e},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(e){this.lworldExtX=e},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(e){this.lworldExtY=e},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(e){this.ldeviceOrgX=e},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(e){this.ldeviceOrgY=e},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(e){this.ldeviceExtX=e},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(e){this.ldeviceExtY=e},i.prototype.transformX=function(e){var t=0,n=this.lworldExtX;return 0!=n&&(t=this.ldeviceOrgX+(e-this.lworldOrgX)*this.ldeviceExtX/n),t},i.prototype.transformY=function(e){var t=0,n=this.lworldExtY;return 0!=n&&(t=this.ldeviceOrgY+(e-this.lworldOrgY)*this.ldeviceExtY/n),t},i.prototype.inverseTransformX=function(e){var t=0,n=this.ldeviceExtX;return 0!=n&&(t=this.lworldOrgX+(e-this.ldeviceOrgX)*this.lworldExtX/n),t},i.prototype.inverseTransformY=function(e){var t=0,n=this.ldeviceExtY;return 0!=n&&(t=this.lworldOrgY+(e-this.ldeviceOrgY)*this.lworldExtY/n),t},i.prototype.inverseTransformPoint=function(e){return new r(this.inverseTransformX(e.x),this.inverseTransformY(e.y))},e.exports=i},function(e,t,n){"use strict";var r=n(15),i=n(7),a=n(0),o=n(8),s=n(9);function l(){r.call(this),this.useSmartIdealEdgeLengthCalculation=i.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.idealEdgeLength=i.DEFAULT_EDGE_LENGTH,this.springConstant=i.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=i.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=i.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=i.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=i.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.displacementThresholdPerNode=3*i.DEFAULT_EDGE_LENGTH/100,this.coolingFactor=i.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.initialCoolingFactor=i.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.totalDisplacement=0,this.oldTotalDisplacement=0,this.maxIterations=i.MAX_ITERATIONS}for(var u in l.prototype=Object.create(r.prototype),r)l[u]=r[u];l.prototype.initParameters=function(){r.prototype.initParameters.call(this,arguments),this.totalIterations=0,this.notAnimatedIterations=0,this.useFRGridVariant=i.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION,this.grid=[]},l.prototype.calcIdealEdgeLengths=function(){for(var e,t,n,r,o,s,l=this.getGraphManager().getAllEdges(),u=0;u<l.length;u++)(e=l[u]).idealLength=this.idealEdgeLength,e.isInterGraph&&(n=e.getSource(),r=e.getTarget(),o=e.getSourceInLca().getEstimatedSize(),s=e.getTargetInLca().getEstimatedSize(),this.useSmartIdealEdgeLengthCalculation&&(e.idealLength+=o+s-2*a.SIMPLE_NODE_SIZE),t=e.getLca().getInclusionTreeDepth(),e.idealLength+=i.DEFAULT_EDGE_LENGTH*i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR*(n.getInclusionTreeDepth()+r.getInclusionTreeDepth()-2*t))},l.prototype.initSpringEmbedder=function(){var e=this.getAllNodes().length;this.incremental?(e>i.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*i.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(e-i.ADAPTATION_LOWER_NODE_LIMIT)/(i.ADAPTATION_UPPER_NODE_LIMIT-i.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-i.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=i.MAX_NODE_DISPLACEMENT_INCREMENTAL):(e>i.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(i.COOLING_ADAPTATION_FACTOR,1-(e-i.ADAPTATION_LOWER_NODE_LIMIT)/(i.ADAPTATION_UPPER_NODE_LIMIT-i.ADAPTATION_LOWER_NODE_LIMIT)*(1-i.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=i.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(5*this.getAllNodes().length,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},l.prototype.calcSpringForces=function(){for(var e,t=this.getAllEdges(),n=0;n<t.length;n++)e=t[n],this.calcSpringForce(e,e.idealLength)},l.prototype.calcRepulsionForces=function(){var e,t,n,r,a,o=!(arguments.length>0)||void 0===arguments[0]||arguments[0],s=arguments.length>1&&void 0!==arguments[1]&&arguments[1],l=this.getAllNodes();if(this.useFRGridVariant)for(this.totalIterations%i.GRID_CALCULATION_CHECK_PERIOD==1&&o&&this.updateGrid(),a=new Set,e=0;e<l.length;e++)n=l[e],this.calculateRepulsionForceOfANode(n,a,o,s),a.add(n);else for(e=0;e<l.length;e++)for(n=l[e],t=e+1;t<l.length;t++)r=l[t],n.getOwner()==r.getOwner()&&this.calcRepulsionForce(n,r)},l.prototype.calcGravitationalForces=function(){for(var e,t=this.getAllNodesToApplyGravitation(),n=0;n<t.length;n++)e=t[n],this.calcGravitationalForce(e)},l.prototype.moveNodes=function(){for(var e=this.getAllNodes(),t=0;t<e.length;t++)e[t].move()},l.prototype.calcSpringForce=function(e,t){var n,r,i,a,o=e.getSource(),s=e.getTarget();if(this.uniformLeafNodeSizes&&null==o.getChild()&&null==s.getChild())e.updateLengthSimple();else if(e.updateLength(),e.isOverlapingSourceAndTarget)return;0!=(n=e.getLength())&&(i=(r=this.springConstant*(n-t))*(e.lengthX/n),a=r*(e.lengthY/n),o.springForceX+=i,o.springForceY+=a,s.springForceX-=i,s.springForceY-=a)},l.prototype.calcRepulsionForce=function(e,t){var n,r,a,l,u,h,c,d=e.getRect(),p=t.getRect(),g=[,,],f=[,,,,];if(d.intersects(p)){o.calcSeparationAmount(d,p,g,i.DEFAULT_EDGE_LENGTH/2),h=2*g[0],c=2*g[1];var v=e.noOfChildren*t.noOfChildren/(e.noOfChildren+t.noOfChildren);e.repulsionForceX-=v*h,e.repulsionForceY-=v*c,t.repulsionForceX+=v*h,t.repulsionForceY+=v*c}else this.uniformLeafNodeSizes&&null==e.getChild()&&null==t.getChild()?(n=p.getCenterX()-d.getCenterX(),r=p.getCenterY()-d.getCenterY()):(o.getIntersection(d,p,f),n=f[2]-f[0],r=f[3]-f[1]),Math.abs(n)<i.MIN_REPULSION_DIST&&(n=s.sign(n)*i.MIN_REPULSION_DIST),Math.abs(r)<i.MIN_REPULSION_DIST&&(r=s.sign(r)*i.MIN_REPULSION_DIST),l=Math.sqrt(a=n*n+r*r),h=(u=this.repulsionConstant*e.noOfChildren*t.noOfChildren/a)*n/l,c=u*r/l,e.repulsionForceX-=h,e.repulsionForceY-=c,t.repulsionForceX+=h,t.repulsionForceY+=c},l.prototype.calcGravitationalForce=function(e){var t,n,r,i,a,o,s,l;n=((t=e.getOwner()).getRight()+t.getLeft())/2,r=(t.getTop()+t.getBottom())/2,i=e.getCenterX()-n,a=e.getCenterY()-r,o=Math.abs(i)+e.getWidth()/2,s=Math.abs(a)+e.getHeight()/2,e.getOwner()==this.graphManager.getRoot()?(o>(l=t.getEstimatedSize()*this.gravityRangeFactor)||s>l)&&(e.gravitationForceX=-this.gravityConstant*i,e.gravitationForceY=-this.gravityConstant*a):(o>(l=t.getEstimatedSize()*this.compoundGravityRangeFactor)||s>l)&&(e.gravitationForceX=-this.gravityConstant*i*this.compoundGravityConstant,e.gravitationForceY=-this.gravityConstant*a*this.compoundGravityConstant)},l.prototype.isConverged=function(){var e,t=!1;return this.totalIterations>this.maxIterations/3&&(t=2>Math.abs(this.totalDisplacement-this.oldTotalDisplacement)),e=this.totalDisplacement<this.totalDisplacementThreshold,this.oldTotalDisplacement=this.totalDisplacement,e||t},l.prototype.animate=function(){this.animationDuringLayout&&!this.isSubLayout&&(this.notAnimatedIterations==this.animationPeriod?(this.update(),this.notAnimatedIterations=0):this.notAnimatedIterations++)},l.prototype.calcNoOfChildrenForAllNodes=function(){for(var e,t=this.graphManager.getAllNodes(),n=0;n<t.length;n++)(e=t[n]).noOfChildren=e.getNoOfChildren()},l.prototype.calcGrid=function(e){var t=0,n=0;t=parseInt(Math.ceil((e.getRight()-e.getLeft())/this.repulsionRange)),n=parseInt(Math.ceil((e.getBottom()-e.getTop())/this.repulsionRange));for(var r=Array(t),i=0;i<t;i++)r[i]=Array(n);for(var i=0;i<t;i++)for(var a=0;a<n;a++)r[i][a]=[];return r},l.prototype.addNodeToGrid=function(e,t,n){var r=0,i=0,a=0,o=0;r=parseInt(Math.floor((e.getRect().x-t)/this.repulsionRange)),i=parseInt(Math.floor((e.getRect().width+e.getRect().x-t)/this.repulsionRange)),a=parseInt(Math.floor((e.getRect().y-n)/this.repulsionRange)),o=parseInt(Math.floor((e.getRect().height+e.getRect().y-n)/this.repulsionRange));for(var s=r;s<=i;s++)for(var l=a;l<=o;l++)this.grid[s][l].push(e),e.setGridCoordinates(r,i,a,o)},l.prototype.updateGrid=function(){var e,t,n=this.getAllNodes();for(e=0,this.grid=this.calcGrid(this.graphManager.getRoot());e<n.length;e++)t=n[e],this.addNodeToGrid(t,this.graphManager.getRoot().getLeft(),this.graphManager.getRoot().getTop())},l.prototype.calculateRepulsionForceOfANode=function(e,t,n,r){if(this.totalIterations%i.GRID_CALCULATION_CHECK_PERIOD==1&&n||r){var a,o=new Set;e.surrounding=[];for(var s=this.grid,l=e.startX-1;l<e.finishX+2;l++)for(var u=e.startY-1;u<e.finishY+2;u++)if(!(l<0||u<0||l>=s.length||u>=s[0].length)){for(var h=0;h<s[l][u].length;h++)if(a=s[l][u][h],e.getOwner()==a.getOwner()&&e!=a&&!t.has(a)&&!o.has(a)){var c=Math.abs(e.getCenterX()-a.getCenterX())-(e.getWidth()/2+a.getWidth()/2),d=Math.abs(e.getCenterY()-a.getCenterY())-(e.getHeight()/2+a.getHeight()/2);c<=this.repulsionRange&&d<=this.repulsionRange&&o.add(a)}}e.surrounding=[].concat(function(e){if(!Array.isArray(e))return Array.from(e);for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}(o))}for(l=0;l<e.surrounding.length;l++)this.calcRepulsionForce(e,e.surrounding[l])},l.prototype.calcRepulsionRange=function(){return 0},e.exports=l},function(e,t,n){"use strict";var r=n(1),i=n(7);function a(e,t,n){r.call(this,e,t,n),this.idealLength=i.DEFAULT_EDGE_LENGTH}for(var o in a.prototype=Object.create(r.prototype),r)a[o]=r[o];e.exports=a},function(e,t,n){"use strict";var r=n(3);function i(e,t,n,i){r.call(this,e,t,n,i),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0,this.startX=0,this.finishX=0,this.startY=0,this.finishY=0,this.surrounding=[]}for(var a in i.prototype=Object.create(r.prototype),r)i[a]=r[a];i.prototype.setGridCoordinates=function(e,t,n,r){this.startX=e,this.finishX=t,this.startY=n,this.finishY=r},e.exports=i},function(e,t,n){"use strict";function r(e,t){this.width=0,this.height=0,null!==e&&null!==t&&(this.height=t,this.width=e)}r.prototype.getWidth=function(){return this.width},r.prototype.setWidth=function(e){this.width=e},r.prototype.getHeight=function(){return this.height},r.prototype.setHeight=function(e){this.height=e},e.exports=r},function(e,t,n){"use strict";var r=n(14);function i(){this.map={},this.keys=[]}i.prototype.put=function(e,t){var n=r.createID(e);this.contains(n)||(this.map[n]=t,this.keys.push(e))},i.prototype.contains=function(e){return r.createID(e),null!=this.map[e]},i.prototype.get=function(e){var t=r.createID(e);return this.map[t]},i.prototype.keySet=function(){return this.keys},e.exports=i},function(e,t,n){"use strict";var r=n(14);function i(){this.set={}}i.prototype.add=function(e){var t=r.createID(e);this.contains(t)||(this.set[t]=e)},i.prototype.remove=function(e){delete this.set[r.createID(e)]},i.prototype.clear=function(){this.set={}},i.prototype.contains=function(e){return this.set[r.createID(e)]==e},i.prototype.isEmpty=function(){return 0===this.size()},i.prototype.size=function(){return Object.keys(this.set).length},i.prototype.addAllTo=function(e){for(var t=Object.keys(this.set),n=t.length,r=0;r<n;r++)e.push(this.set[t[r]])},i.prototype.size=function(){return Object.keys(this.set).length},i.prototype.addAll=function(e){for(var t=e.length,n=0;n<t;n++){var r=e[n];this.add(r)}},e.exports=i},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(11),a=function(){function e(t,n){(function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")})(this,e),(null!==n||void 0!==n)&&(this.compareFunction=this._defaultCompareFunction);var r=void 0;r=t instanceof i?t.size():t.length,this._quicksort(t,0,r-1)}return r(e,[{key:"_quicksort",value:function(e,t,n){if(t<n){var r=this._partition(e,t,n);this._quicksort(e,t,r),this._quicksort(e,r+1,n)}}},{key:"_partition",value:function(e,t,n){for(var r=this._get(e,t),i=t,a=n;;){for(;this.compareFunction(r,this._get(e,a));)a--;for(;this.compareFunction(this._get(e,i),r);)i++;if(!(i<a))return a;this._swap(e,i,a),i++,a--}}},{key:"_get",value:function(e,t){return e instanceof i?e.get_object_at(t):e[t]}},{key:"_set",value:function(e,t,n){e instanceof i?e.set_object_at(t,n):e[t]=n}},{key:"_swap",value:function(e,t,n){var r=this._get(e,t);this._set(e,t,this._get(e,n)),this._set(e,n,r)}},{key:"_defaultCompareFunction",value:function(e,t){return t>e}}]),e}();e.exports=a},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1;(function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")})(this,e),this.sequence1=t,this.sequence2=n,this.match_score=r,this.mismatch_penalty=i,this.gap_penalty=a,this.iMax=t.length+1,this.jMax=n.length+1,this.grid=Array(this.iMax);for(var o=0;o<this.iMax;o++){this.grid[o]=Array(this.jMax);for(var s=0;s<this.jMax;s++)this.grid[o][s]=0}this.tracebackGrid=Array(this.iMax);for(var l=0;l<this.iMax;l++){this.tracebackGrid[l]=Array(this.jMax);for(var u=0;u<this.jMax;u++)this.tracebackGrid[l][u]=[null,null,null]}this.alignments=[],this.score=-1,this.computeGrids()}return r(e,[{key:"getScore",value:function(){return this.score}},{key:"getAlignments",value:function(){return this.alignments}},{key:"computeGrids",value:function(){for(var e=1;e<this.jMax;e++)this.grid[0][e]=this.grid[0][e-1]+this.gap_penalty,this.tracebackGrid[0][e]=[!1,!1,!0];for(var t=1;t<this.iMax;t++)this.grid[t][0]=this.grid[t-1][0]+this.gap_penalty,this.tracebackGrid[t][0]=[!1,!0,!1];for(var n=1;n<this.iMax;n++)for(var r=1;r<this.jMax;r++){var i=[this.sequence1[n-1]===this.sequence2[r-1]?this.grid[n-1][r-1]+this.match_score:this.grid[n-1][r-1]+this.mismatch_penalty,this.grid[n-1][r]+this.gap_penalty,this.grid[n][r-1]+this.gap_penalty],a=this.arrayAllMaxIndexes(i);this.grid[n][r]=i[a[0]],this.tracebackGrid[n][r]=[a.includes(0),a.includes(1),a.includes(2)]}this.score=this.grid[this.iMax-1][this.jMax-1]}},{key:"alignmentTraceback",value:function(){var e=[];for(e.push({pos:[this.sequence1.length,this.sequence2.length],seq1:"",seq2:""});e[0];){var t=e[0],n=this.tracebackGrid[t.pos[0]][t.pos[1]];n[0]&&e.push({pos:[t.pos[0]-1,t.pos[1]-1],seq1:this.sequence1[t.pos[0]-1]+t.seq1,seq2:this.sequence2[t.pos[1]-1]+t.seq2}),n[1]&&e.push({pos:[t.pos[0]-1,t.pos[1]],seq1:this.sequence1[t.pos[0]-1]+t.seq1,seq2:"-"+t.seq2}),n[2]&&e.push({pos:[t.pos[0],t.pos[1]-1],seq1:"-"+t.seq1,seq2:this.sequence2[t.pos[1]-1]+t.seq2}),0===t.pos[0]&&0===t.pos[1]&&this.alignments.push({sequence1:t.seq1,sequence2:t.seq2}),e.shift()}return this.alignments}},{key:"getAllIndexes",value:function(e,t){for(var n=[],r=-1;-1!==(r=e.indexOf(t,r+1));)n.push(r);return n}},{key:"arrayAllMaxIndexes",value:function(e){return this.getAllIndexes(e,Math.max.apply(null,e))}}]),e}();e.exports=i},function(e,t,n){"use strict";var r=function(){};r.FDLayout=n(18),r.FDLayoutConstants=n(7),r.FDLayoutEdge=n(19),r.FDLayoutNode=n(20),r.DimensionD=n(21),r.HashMap=n(22),r.HashSet=n(23),r.IGeometry=n(8),r.IMath=n(9),r.Integer=n(10),r.Point=n(12),r.PointD=n(4),r.RandomSeed=n(16),r.RectangleD=n(13),r.Transform=n(17),r.UniqueIDGeneretor=n(14),r.Quicksort=n(24),r.LinkedList=n(11),r.LGraphObject=n(2),r.LGraph=n(5),r.LEdge=n(1),r.LGraphManager=n(6),r.LNode=n(3),r.Layout=n(15),r.LayoutConstants=n(0),r.NeedlemanWunsch=n(25),e.exports=r},function(e,t,n){"use strict";function r(){this.listeners=[]}var i=r.prototype;i.addListener=function(e,t){this.listeners.push({event:e,callback:t})},i.removeListener=function(e,t){for(var n=this.listeners.length;n>=0;n--){var r=this.listeners[n];r.event===e&&r.callback===t&&this.listeners.splice(n,1)}},i.emit=function(e,t){for(var n=0;n<this.listeners.length;n++){var r=this.listeners[n];e===r.event&&r.callback(t)}},e.exports=r}])},e.exports=t()},47773:(e,t,n)=>{"use strict";let r;n.d(t,{diagram:()=>M});var i=n(17367),a=n(93126),o=n(11336),s=n(20138),l=n(69165),u=n(71725),h=n(68459),c=n(57721);n(95285),n(31546),n(31234);var d=function(){var e=function(e,t,n,r){for(n=n||{},r=e.length;r--;n[e[r]]=t);return n},t=[1,4],n=[1,13],r=[1,12],i=[1,15],a=[1,16],o=[1,20],s=[1,19],l=[6,7,8],u=[1,26],h=[1,24],c=[1,25],d=[6,7,11],p=[1,6,13,15,16,19,22],g=[1,33],f=[1,34],v=[1,6,7,11,13,15,16,19,22],y={trace:function(){},yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 6:case 7:return r;case 8:r.getLogger().trace("Stop NL ");break;case 9:r.getLogger().trace("Stop EOF ");break;case 11:r.getLogger().trace("Stop NL2 ");break;case 12:r.getLogger().trace("Stop EOF2 ");break;case 15:r.getLogger().info("Node: ",a[s].id),r.addNode(a[s-1].length,a[s].id,a[s].descr,a[s].type);break;case 16:r.getLogger().trace("Icon: ",a[s]),r.decorateNode({icon:a[s]});break;case 17:case 21:r.decorateNode({class:a[s]});break;case 18:r.getLogger().trace("SPACELIST");break;case 19:r.getLogger().trace("Node: ",a[s].id),r.addNode(0,a[s].id,a[s].descr,a[s].type);break;case 20:r.decorateNode({icon:a[s]});break;case 25:r.getLogger().trace("node found ..",a[s-2]),this.$={id:a[s-1],descr:a[s-1],type:r.getType(a[s-2],a[s])};break;case 26:this.$={id:a[s],descr:a[s],type:r.nodeType.DEFAULT};break;case 27:r.getLogger().trace("node found ..",a[s-3]),this.$={id:a[s-3],descr:a[s-1],type:r.getType(a[s-2],a[s])}}},table:[{3:1,4:2,5:3,6:[1,5],8:t},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:t},{6:n,7:[1,10],9:9,12:11,13:r,14:14,15:i,16:a,17:17,18:18,19:o,22:s},e(l,[2,3]),{1:[2,2]},e(l,[2,4]),e(l,[2,5]),{1:[2,6],6:n,12:21,13:r,14:14,15:i,16:a,17:17,18:18,19:o,22:s},{6:n,9:22,12:11,13:r,14:14,15:i,16:a,17:17,18:18,19:o,22:s},{6:u,7:h,10:23,11:c},e(d,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:o,22:s}),e(d,[2,18]),e(d,[2,19]),e(d,[2,20]),e(d,[2,21]),e(d,[2,23]),e(d,[2,24]),e(d,[2,26],{19:[1,30]}),{20:[1,31]},{6:u,7:h,10:32,11:c},{1:[2,7],6:n,12:21,13:r,14:14,15:i,16:a,17:17,18:18,19:o,22:s},e(p,[2,14],{7:g,11:f}),e(v,[2,8]),e(v,[2,9]),e(v,[2,10]),e(d,[2,15]),e(d,[2,16]),e(d,[2,17]),{20:[1,35]},{21:[1,36]},e(p,[2,13],{7:g,11:f}),e(v,[2,11]),e(v,[2,12]),{21:[1,37]},e(d,[2,25]),e(d,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},parse:function(e){var t=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",l=0,u=0,h=a.slice.call(arguments,1),c=Object.create(this.lexer),d={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(d.yy[p]=this.yy[p]);c.setInput(e,d.yy),d.yy.lexer=c,d.yy.parser=this,void 0===c.yylloc&&(c.yylloc={});var g=c.yylloc;a.push(g);var f=c.options&&c.options.ranges;"function"==typeof d.yy.parseError?this.parseError=d.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,y,b,x,w,E,T,_,D={};;){if(y=n[n.length-1],this.defaultActions[y]?b=this.defaultActions[y]:(null==v&&(v=function(){var e;return"number"!=typeof(e=r.pop()||c.lex()||1)&&(e instanceof Array&&(e=(r=e).pop()),e=t.symbols_[e]||e),e}()),b=o[y]&&o[y][v]),void 0===b||!b.length||!b[0]){var C="";for(w in _=[],o[y])this.terminals_[w]&&w>2&&_.push("'"+this.terminals_[w]+"'");C=c.showPosition?"Parse error on line "+(l+1)+":\n"+c.showPosition()+"\nExpecting "+_.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==v?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(C,{text:c.match,token:this.terminals_[v]||v,line:c.yylineno,loc:g,expected:_})}if(b[0]instanceof Array&&b.length>1)throw Error("Parse Error: multiple actions possible at state: "+y+", token: "+v);switch(b[0]){case 1:n.push(v),i.push(c.yytext),a.push(c.yylloc),n.push(b[1]),v=null,u=c.yyleng,s=c.yytext,l=c.yylineno,g=c.yylloc;break;case 2:if(E=this.productions_[b[1]][1],D.$=i[i.length-E],D._$={first_line:a[a.length-(E||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(E||1)].first_column,last_column:a[a.length-1].last_column},f&&(D._$.range=[a[a.length-(E||1)].range[0],a[a.length-1].range[1]]),void 0!==(x=this.performAction.apply(D,[s,u,l,d.yy,b[1],i,a].concat(h))))return x;E&&(n=n.slice(0,-1*E*2),i=i.slice(0,-1*E),a=a.slice(0,-1*E)),n.push(this.productions_[b[1]][0]),i.push(D.$),a.push(D._$),T=o[n[n.length-2]][n[n.length-1]],n.push(T);break;case 3:return!0}}return!0}};function b(){this.yy={}}return y.lexer={EOF:1,parseError:function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack)for(var a in i)this[a]=i[a];return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var e,t,n,r,i=this._currentRules(),a=0;a<i.length;a++)if((n=this._input.match(this.rules[i[a]]))&&(!t||n[0].length>t[0].length)){if(t=n,r=a,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,i[a])))return e;if(!this._backtrack)return!1;t=!1;continue}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,i[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,t,n,r){switch(n){case 0:return e.getLogger().trace("Found comment",t.yytext),6;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:case 23:case 26:this.popState();break;case 5:e.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return e.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:e.getLogger().trace("end icon"),this.popState();break;case 10:return e.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return e.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return e.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return e.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:case 15:case 16:case 17:return this.begin("NODE"),19;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 24:e.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return e.getLogger().trace("description:",t.yytext),"NODE_DESCR";case 27:return this.popState(),e.getLogger().trace("node end ))"),"NODE_DEND";case 28:return this.popState(),e.getLogger().trace("node end )"),"NODE_DEND";case 29:return this.popState(),e.getLogger().trace("node end ...",t.yytext),"NODE_DEND";case 30:case 33:case 34:return this.popState(),e.getLogger().trace("node end (("),"NODE_DEND";case 31:case 32:return this.popState(),e.getLogger().trace("node end (-"),"NODE_DEND";case 35:case 36:return e.getLogger().trace("Long description:",t.yytext),20}},rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}},b.prototype=y,y.Parser=b,new b}();d.parser=d;let p=e=>(0,i.d)(e,(0,i.c)()),g=[],f=0,v={},y=function(e){for(let t=g.length-1;t>=0;t--)if(g[t].level<e)return g[t];return null},b={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},x=(e,t)=>{v[e]=t},w=e=>{switch(e){case b.DEFAULT:return"no-border";case b.RECT:return"rect";case b.ROUNDED_RECT:return"rounded-rect";case b.CIRCLE:return"circle";case b.CLOUD:return"cloud";case b.BANG:return"bang";case b.HEXAGON:return"hexgon";default:return"no-border"}},E=e=>v[e],T=Object.freeze(Object.defineProperty({__proto__:null,addNode:(e,t,n,r)=>{i.l.info("addNode",e,t,n,r);let a=(0,i.c)(),o={id:f++,nodeId:p(t),level:e,descr:p(n),type:r,children:[],width:(0,i.c)().mindmap.maxNodeWidth};switch(o.type){case b.ROUNDED_RECT:case b.RECT:case b.HEXAGON:o.padding=2*a.mindmap.padding;break;default:o.padding=a.mindmap.padding}let s=y(e);if(s)s.children.push(o),g.push(o);else if(0===g.length)g.push(o);else{let e=Error('There can be only one root. No parent could be found for ("'+o.descr+'")');throw e.hash={text:"branch "+name,token:"branch "+name,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+name+'"']},e}},clear:()=>{g=[],f=0,v={}},decorateNode:e=>{let t=g[g.length-1];e&&e.icon&&(t.icon=p(e.icon)),e&&e.class&&(t.class=p(e.class))},getElementById:E,getLogger:()=>i.l,getMindmap:()=>g.length>0?g[0]:null,getNodeById:e=>g[e],getType:(e,t)=>{switch(i.l.debug("In get type",e,t),e){case"[":return b.RECT;case"(":return")"===t?b.ROUNDED_RECT:b.CLOUD;case"((":return b.CIRCLE;case")":return b.CLOUD;case"))":return b.BANG;case"{{":return b.HEXAGON;default:return b.DEFAULT}},nodeType:b,get parseError(){return r},sanitizeText:p,setElementForId:x,setErrorHandler:e=>{r=e},type2Str:w},Symbol.toStringTag,{value:"Module"})),_=function(e,t,n){e.append("path").attr("id","node-"+t.id).attr("class","node-bkg node-"+w(t.type)).attr("d",`M0 ${t.height-5} v${-t.height+10} q0,-5 5,-5 h${t.width-10} q5,0 5,5 v${t.height-5} H0 Z`),e.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",t.height).attr("x2",t.width).attr("y2",t.height)},D=function(e,t){e.append("rect").attr("id","node-"+t.id).attr("class","node-bkg node-"+w(t.type)).attr("height",t.height).attr("width",t.width)},C=function(e,t){let n=t.width,r=t.height,i=.15*n,a=.25*n,o=.35*n,s=.2*n;e.append("path").attr("id","node-"+t.id).attr("class","node-bkg node-"+w(t.type)).attr("d",`M0 0 a${i},${i} 0 0,1 ${.25*n},${-1*n*.1} - a${o},${o} 1 0,1 ${.4*n},${-1*n*.1} - a${a},${a} 1 0,1 ${.35*n},${1*n*.2} - - a${i},${i} 1 0,1 ${.15*n},${1*r*.35} - a${s},${s} 1 0,1 ${-1*n*.15},${1*r*.65} - - a${a},${i} 1 0,1 ${-1*n*.25},${.15*n} - a${o},${o} 1 0,1 ${-1*n*.5},0 - a${i},${i} 1 0,1 ${-1*n*.25},${-1*n*.15} - - a${i},${i} 1 0,1 ${-1*n*.1},${-1*r*.35} - a${s},${s} 1 0,1 ${.1*n},${-1*r*.65} - - H0 V0 Z`)},N=function(e,t){let n=t.width,r=t.height,i=.15*n;e.append("path").attr("id","node-"+t.id).attr("class","node-bkg node-"+w(t.type)).attr("d",`M0 0 a${i},${i} 1 0,0 ${.25*n},${-1*r*.1} - a${i},${i} 1 0,0 ${.25*n},0 - a${i},${i} 1 0,0 ${.25*n},0 - a${i},${i} 1 0,0 ${.25*n},${1*r*.1} - - a${i},${i} 1 0,0 ${.15*n},${1*r*.33} - a${.8*i},${.8*i} 1 0,0 0,${1*r*.34} - a${i},${i} 1 0,0 ${-1*n*.15},${1*r*.33} - - a${i},${i} 1 0,0 ${-1*n*.25},${.15*r} - a${i},${i} 1 0,0 ${-1*n*.25},0 - a${i},${i} 1 0,0 ${-1*n*.25},0 - a${i},${i} 1 0,0 ${-1*n*.25},${-1*r*.15} - - a${i},${i} 1 0,0 ${-1*n*.1},${-1*r*.33} - a${.8*i},${.8*i} 1 0,0 0,${-1*r*.34} - a${i},${i} 1 0,0 ${.1*n},${-1*r*.33} - - H0 V0 Z`)},A=function(e,t){e.append("circle").attr("id","node-"+t.id).attr("class","node-bkg node-"+w(t.type)).attr("r",t.width/2)},L=function(e,t){var n;let r=t.height,i=r/4,a=t.width-t.padding+2*i;n=[{x:i,y:0},{x:a-i,y:0},{x:a,y:-r/2},{x:a-i,y:-r},{x:i,y:-r},{x:0,y:-r/2}],e.insert("polygon",":first-child").attr("points",n.map(function(e){return e.x+","+e.y}).join(" ")).attr("transform","translate("+(t.width-a)/2+", "+r+")")},S=function(e,t){e.append("rect").attr("id","node-"+t.id).attr("class","node-bkg node-"+w(t.type)).attr("height",t.height).attr("rx",t.padding).attr("ry",t.padding).attr("width",t.width)},O=function(e,t,n,r){let i=r.htmlLabels,a=n%11,s=e.append("g");t.section=a;let l="section-"+a;a<0&&(l+=" section-root"),s.attr("class",(t.class?t.class+" ":"")+"mindmap-node "+l);let u=s.append("g"),h=s.append("g"),c=t.descr.replace(/(<br\/*>)/g,"\n");(0,o.c)(h,c,{useHtmlLabels:i,width:t.width,classes:"mindmap-node-label"}),i||h.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");let d=h.node().getBBox(),p=r.fontSize.replace?r.fontSize.replace("px",""):r.fontSize;if(t.height=d.height+.55*p+t.padding,t.width=d.width+2*t.padding,t.icon){if(t.type===b.CIRCLE)t.height+=50,t.width+=50,s.append("foreignObject").attr("height","50px").attr("width",t.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+a+" "+t.icon),h.attr("transform","translate("+t.width/2+", "+(t.height/2-1.5*t.padding)+")");else{t.width+=50;let e=t.height;t.height=Math.max(e,60);let n=Math.abs(t.height-e);s.append("foreignObject").attr("width","60px").attr("height",t.height).attr("style","text-align: center;margin-top:"+n/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+a+" "+t.icon),h.attr("transform","translate("+(25+t.width/2)+", "+(n/2+t.padding/2)+")")}}else if(i){let e=(t.width-d.width)/2,n=(t.height-d.height)/2;h.attr("transform","translate("+e+", "+n+")")}else{let e=t.width/2,n=t.padding/2;h.attr("transform","translate("+e+", "+n+")")}switch(t.type){case b.DEFAULT:_(u,t,a);break;case b.ROUNDED_RECT:S(u,t);break;case b.RECT:D(u,t);break;case b.CIRCLE:u.attr("transform","translate("+t.width/2+", "+ +t.height/2+")"),A(u,t);break;case b.CLOUD:C(u,t);break;case b.BANG:N(u,t);break;case b.HEXAGON:L(u,t)}return x(t.id,s),t.height},I=function(e){let t=E(e.id),n=e.x||0,r=e.y||0;t.attr("transform","translate("+n+","+r+")")};s.use(l);let k=e=>{let t="";for(let t=0;t<e.THEME_COLOR_LIMIT;t++)e["lineColor"+t]=e["lineColor"+t]||e["cScaleInv"+t],(0,u.A)(e["lineColor"+t])?e["lineColor"+t]=(0,h.A)(e["lineColor"+t],20):e["lineColor"+t]=(0,c.A)(e["lineColor"+t],20);for(let n=0;n<e.THEME_COLOR_LIMIT;n++){let r=""+(17-3*n);t+=` - .section-${n-1} rect, .section-${n-1} path, .section-${n-1} circle, .section-${n-1} polygon, .section-${n-1} path { - fill: ${e["cScale"+n]}; - } - .section-${n-1} text { - fill: ${e["cScaleLabel"+n]}; - } - .node-icon-${n-1} { - font-size: 40px; - color: ${e["cScaleLabel"+n]}; - } - .section-edge-${n-1}{ - stroke: ${e["cScale"+n]}; - } - .edge-depth-${n-1}{ - stroke-width: ${r}; - } - .section-${n-1} line { - stroke: ${e["cScaleInv"+n]} ; - stroke-width: 3; - } - - .disabled, .disabled circle, .disabled text { - fill: lightgray; - } - .disabled text { - fill: #efefef; - } - `}return t},M={db:T,renderer:{draw:async(e,t,n,r)=>{let o;let l=(0,i.c)();l.htmlLabels=!1,i.l.debug("Rendering mindmap diagram\n"+e,r.parser);let u=(0,i.c)().securityLevel;"sandbox"===u&&(o=(0,a.Ltv)("#i"+t));let h=("sandbox"===u?(0,a.Ltv)(o.nodes()[0].contentDocument.body):(0,a.Ltv)("body")).select("#"+t);h.append("g");let c=r.db.getMindmap(),d=h.append("g");d.attr("class","mindmap-edges");let p=h.append("g");p.attr("class","mindmap-nodes"),function e(t,n,r,i){O(t,n,r,i),n.children&&n.children.forEach((n,a)=>{e(t,n,r<0?a:r,i)})}(p,c,-1,l);let g=await new Promise(e=>{let t=(0,a.Ltv)("body").append("div").attr("id","cy").attr("style","display:none"),n=s({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});t.remove(),function e(t,n,r,i){n.add({group:"nodes",data:{id:t.id,labelText:t.descr,height:t.height,width:t.width,level:i,nodeId:t.id,padding:t.padding,type:t.type},position:{x:t.x,y:t.y}}),t.children&&t.children.forEach(a=>{e(a,n,r,i+1),n.add({group:"edges",data:{id:`${t.id}_${a.id}`,source:t.id,target:a.id,depth:i,section:a.section}})})}(c,n,l,0),n.nodes().forEach(function(e){e.layoutDimensions=()=>{let t=e.data();return{w:t.width,h:t.height}}}),n.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),n.ready(t=>{i.l.info("Ready",t),e(n)})});!function(e,t){t.edges().map((t,n)=>{let r=t.data();if(t[0]._private.bodyBounds){let a=t[0]._private.rscratch;i.l.trace("Edge: ",n,r),e.insert("path").attr("d",`M ${a.startX},${a.startY} L ${a.midX},${a.midY} L${a.endX},${a.endY} `).attr("class","edge section-edge-"+r.section+" edge-depth-"+r.depth)}})}(d,g),function(e){e.nodes().map((e,t)=>{let n=e.data();n.x=e.position().x,n.y=e.position().y,I(n);let r=E(n.nodeId);i.l.info("Id:",t,"Position: (",e.position().x,", ",e.position().y,")",n),r.attr("transform",`translate(${e.position().x-n.width/2}, ${e.position().y-n.height/2})`),r.attr("attr",`apa-${t})`)})}(g),(0,i.p)(void 0,h,l.mindmap.padding,l.mindmap.useMaxWidth)}},parser:d,styles:e=>` - .edge { - stroke-width: 3; - } - ${k(e)} - .section-root rect, .section-root path, .section-root circle, .section-root polygon { - fill: ${e.git0}; - } - .section-root text { - fill: ${e.gitBranchLabel0}; - } - .icon-container { - height:100%; - display: flex; - justify-content: center; - align-items: center; - } - .edge { - fill: none; - } - .mindmap-node-label { - dy: 1em; - alignment-baseline: middle; - text-anchor: middle; - dominant-baseline: middle; - text-align: center; - } -`}}}]); \ No newline at end of file diff --git a/assets/js/48cbf216.c9fdfe74.js b/assets/js/48cbf216.c9fdfe74.js new file mode 100644 index 0000000000..dcab8a568b --- /dev/null +++ b/assets/js/48cbf216.c9fdfe74.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[26577],{43376:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>g,frontMatter:()=>p,metadata:()=>r,toc:()=>m});let r=JSON.parse('{"id":"tests/import-bad-package","title":"Import Bad Package","description":"We are importing MDX content from a file that is in a package that has a bad React version.","source":"@site/_dogfooding/_docs tests/tests/import-bad-package.mdx","sourceDirName":"tests","slug":"/tests/import-bad-package","permalink":"/tests/docs/tests/import-bad-package","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Image tests","permalink":"/tests/docs/tests/img-tests"},"next":{"title":"Broken Anchors tests","permalink":"/tests/docs/tests/links/broken-anchors-tests"}}');var n=s(62540),a=s(43023),o=s(63696),i=s(78325);function c(){let e={div:"div",...(0,a.R)()};if(!o.version.startsWith("18"))throw Error(`'test-bad-package/README.mdx' is rendered with bad React version: ${o.version}`);if(!o.version.startsWith("18"))throw Error(`'test-bad-package/README.mdx' is rendered with bad React-DOM version: ${i.version}`);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(e.div,{children:["React version: ",o.version]}),(0,n.jsxs)(e.div,{children:["React DOM version: ",i.version]})]})}function d(e){let t={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",hr:"hr",p:"p",pre:"pre",...(0,a.R)(),...e.components},{Details:s}=t;return s||function(e,t){throw Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"test-bad-package",children:"test-bad-package"})}),"\n",(0,n.jsx)(t.p,{children:"This package declares a wrong React version on purpose (16.14.0)"}),"\n",(0,n.jsx)(t.p,{children:"The goal is to test that the MD/MDX content of this package can still be imported/rendered by our website."}),"\n",(0,n.jsxs)(t.p,{children:["See related issue ",(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/9027",children:"https://github.com/facebook/docusaurus/issues/9027"})]}),"\n",(0,n.jsx)(t.hr,{}),"\n","\n","\n",(0,n.jsx)(c,{}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h2,{id:"mdx-components-work",children:"MDX Components work:"}),"\n",(0,n.jsxs)(s,{children:[(0,n.jsx)("summary",{children:"Summary"}),(0,n.jsx)(t.p,{children:"Details"})]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-js",children:"const age = 42;\n"})})]})}function h(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}let p={},l="Import Bad Package",u={},m=[{value:"MDX Components work:",id:"mdx-components-work",level:2}];function x(e){let t={a:"a",h1:"h1",header:"header",hr:"hr",p:"p",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"import-bad-package",children:"Import Bad Package"})}),"\n",(0,n.jsx)(t.p,{children:"We are importing MDX content from a file that is in a package that has a bad React version."}),"\n",(0,n.jsx)(t.p,{children:"This is expected to work despite the bad version."}),"\n",(0,n.jsxs)(t.p,{children:["See ",(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/9027",children:"https://github.com/facebook/docusaurus/issues/9027"})]}),"\n",(0,n.jsx)(t.hr,{}),"\n","\n",(0,n.jsx)(h,{})]})}function g(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(x,{...e})}):x(e)}g.displayName="MDXContent(_dogfooding/_docs tests/tests/import-bad-package.mdx)"},43023:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>i});var r=s(63696);let n={},a=r.createContext(n);function o(e){let t=r.useContext(a);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),r.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/48cbf216.deba4ebd.js b/assets/js/48cbf216.deba4ebd.js deleted file mode 100644 index a82e044b2e..0000000000 --- a/assets/js/48cbf216.deba4ebd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[26577],{43376:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>g,frontMatter:()=>p,metadata:()=>r,toc:()=>m});let r=JSON.parse('{"id":"tests/import-bad-package","title":"Import Bad Package","description":"We are importing MDX content from a file that is in a package that has a bad React version.","source":"@site/_dogfooding/_docs tests/tests/import-bad-package.mdx","sourceDirName":"tests","slug":"/tests/import-bad-package","permalink":"/tests/docs/tests/import-bad-package","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Image tests","permalink":"/tests/docs/tests/img-tests"},"next":{"title":"Broken Anchors tests","permalink":"/tests/docs/tests/links/broken-anchors-tests"}}');var n=s(62540),a=s(43023),o=s(63696),i=s(78325);function c(){let e={div:"div",...(0,a.R)()};if(!o.version.startsWith("18"))throw Error(`'test-bad-package/README.mdx' is rendered with bad React version: ${o.version}`);if(!o.version.startsWith("18"))throw Error(`'test-bad-package/README.mdx' is rendered with bad React-DOM version: ${i.version}`);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(e.div,{children:["React version: ",o.version]}),(0,n.jsxs)(e.div,{children:["React DOM version: ",i.version]})]})}function d(e){let t={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",hr:"hr",p:"p",pre:"pre",...(0,a.R)(),...e.components},{Details:s}=t;return s||function(e,t){throw Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"test-bad-package",children:"test-bad-package"})}),"\n",(0,n.jsx)(t.p,{children:"This package declares a wrong React version on purpose (16.14.0)"}),"\n",(0,n.jsx)(t.p,{children:"The goal is to test that the MD/MDX content of this package can still be imported/rendered by our website."}),"\n",(0,n.jsxs)(t.p,{children:["See related issue ",(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/9027",children:"https://github.com/facebook/docusaurus/issues/9027"})]}),"\n",(0,n.jsx)(t.hr,{}),"\n","\n","\n",(0,n.jsx)(c,{}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h2,{id:"mdx-components-work",children:"MDX Components work:"}),"\n",(0,n.jsxs)(s,{children:[(0,n.jsx)("summary",{children:"Summary"}),(0,n.jsx)(t.p,{children:"Details"})]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-js",children:"const age = 42;\n"})})]})}function h(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}let p={},l="Import Bad Package",u={},m=[{value:"MDX Components work:",id:"mdx-components-work",level:2}];function x(e){let t={a:"a",h1:"h1",header:"header",hr:"hr",p:"p",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"import-bad-package",children:"Import Bad Package"})}),"\n",(0,n.jsx)(t.p,{children:"We are importing MDX content from a file that is in a package that has a bad React version."}),"\n",(0,n.jsx)(t.p,{children:"This is expected to work despite the bad version."}),"\n",(0,n.jsxs)(t.p,{children:["See ",(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/9027",children:"https://github.com/facebook/docusaurus/issues/9027"})]}),"\n",(0,n.jsx)(t.hr,{}),"\n","\n",(0,n.jsx)(h,{})]})}function g(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(x,{...e})}):x(e)}g.displayName="MDXContent(_dogfooding/_docs tests/tests/import-bad-package.mdx)"},43023:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>i});var r=s(63696);let n={},a=r.createContext(n);function o(e){let t=r.useContext(a);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),r.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/492798ca.092fb84b.js b/assets/js/492798ca.3dd84dd4.js similarity index 50% rename from assets/js/492798ca.092fb84b.js rename to assets/js/492798ca.3dd84dd4.js index ae83adc090..8afcc526b6 100644 --- a/assets/js/492798ca.092fb84b.js +++ b/assets/js/492798ca.3dd84dd4.js @@ -1,2 +1,2 @@ "use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[10880],{15995:(e,n,r)=>{r.d(n,{A:()=>l});var t=r(62540);r(63696);var i=r(11750);function l({children:e,hidden:n,className:r}){return(0,t.jsx)("div",{role:"tabpanel",className:(0,i.A)("tabItem_pnkT",r),hidden:n,children:e})}},27446:(e,n,r)=>{r.d(n,{A:()=>y});var t=r(62540),i=r(63696),l=r(11750),a=r(7846),s=r(49519),o=r(96439),d=r(19739),c=r(66904),u=r(79244);function h(e){var n,r;return null!==(r=null===(n=i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==r?r:[]}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}var g=r(10709);function m(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.forEach(function(n){var t;t=r[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}function f(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r})(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))}),e}function j({className:e,block:n,selectedValue:r,selectValue:i,tabValues:s}){let o=[],{blockElementScrollPositionUntilNextRender:d}=(0,a.a_)(),c=e=>{let n=e.currentTarget,t=s[o.indexOf(n)].value;t!==r&&(d(n),i(t))},u=e=>{var n,r;let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{let r=o.indexOf(e.currentTarget)+1;t=null!==(n=o[r])&&void 0!==n?n:o[0];break}case"ArrowLeft":{let n=o.indexOf(e.currentTarget)-1;t=null!==(r=o[n])&&void 0!==r?r:o[o.length-1]}}null==t||t.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":n},e),children:s.map(({value:e,label:n,attributes:i})=>(0,t.jsx)("li",f(m({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,ref:e=>o.push(e),onKeyDown:u,onClick:c},i),{className:(0,l.A)("tabs__item","tabItem_AQgk",null==i?void 0:i.className,{"tabs__item--active":r===e}),children:null!=n?n:e}),e))})}function x({lazy:e,children:n,selectedValue:r}){let a=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=a.find(e=>e.props.value===r);return e?(0,i.cloneElement)(e,{className:(0,l.A)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:a.map((e,n)=>(0,i.cloneElement)(e,{key:n,hidden:e.props.value!==r}))})}function b(e){let n=function(e){let{defaultValue:n,queryString:r=!1,groupId:t}=e,l=function(e){let{values:n,children:r}=e;return(0,i.useMemo)(()=>{let e=null!=n?n:h(r).map(({props:{value:e,label:n,attributes:r,default:t}})=>({value:e,label:n,attributes:r,default:t}));return!function(e){let n=(0,c.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,r])}(e),[a,g]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){var r;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let t=null!==(r=n.find(e=>e.default))&&void 0!==r?r:n[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:n,tabValues:l})),[m,f]=function({queryString:e=!1,groupId:n}){let r=(0,s.W6)(),t=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,d.aZ)(t),(0,i.useCallback)(e=>{var n,i;if(!t)return;let l=new URLSearchParams(r.location.search);l.set(t,e),r.replace((n=function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.forEach(function(n){var t;t=r[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}({},r.location),i=i={search:l.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):(function(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r})(Object(i)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(i,e))}),n))},[t,r])]}({queryString:r,groupId:t}),[j,x]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[r,t]=(0,u.Dv)(n);return[r,(0,i.useCallback)(e=>{n&&t.set(e)},[n,t])]}({groupId:t}),b=(()=>{let e=null!=m?m:j;return p({value:e,tabValues:l})?e:null})();return(0,o.A)(()=>{b&&g(b)},[b]),{selectedValue:a,selectValue:(0,i.useCallback)(e=>{if(!p({value:e,tabValues:l}))throw Error(`Can't select invalid tab value=${e}`);g(e),f(e),x(e)},[f,x,l]),tabValues:l}}(e);return(0,t.jsxs)("div",{className:(0,l.A)("tabs-container","tabList_Qoir"),children:[(0,t.jsx)(j,m({},n,e)),(0,t.jsx)(x,m({},n,e))]})}function y(e){let n=(0,g.A)();return(0,t.jsx)(b,f(m({},e),{children:h(e.children)}),String(n))}},59273:(e,n,r)=>{r.d(n,{A:()=>o});var t=r(62540),i=r(63696),l=r(52711),a=r(49519);let s=i.forwardRef(function({name:e,children:n},r){let s=function(e){let n=e;for(;(0,i.isValidElement)(n);)[n]=i.Children.toArray(n.props.children);if("string"!=typeof n)throw Error(`Could not extract APITable row name from JSX tree: -${JSON.stringify(e,null,2)}`);return n}(n),o=e?`${e}-${s}`:s,d=`#${o}`,c=(0,a.W6)();return(0,l.A)().collectAnchor(o),(0,t.jsx)("tr",{id:o,tabIndex:0,ref:c.location.hash===d?r:void 0,onClick:e=>{"A"!==e.target.tagName.toUpperCase()&&c.push(d)},onKeyDown:e=>{"Enter"===e.key&&c.push(d)},children:n.props.children})});function o({children:e,name:n}){if("table"!==e.type)throw Error("Bad usage of APITable component.\nIt is probably that your Markdown table is malformed.\nMake sure to double-check you have the appropriate number of columns for each table row.");let[r,l]=i.Children.toArray(e.props.children),a=(0,i.useRef)(null);(0,i.useEffect)(()=>{var e;null===(e=a.current)||void 0===e||e.focus()},[a]);let o=i.Children.map(l.props.children,e=>(0,t.jsx)(s,{name:n,ref:a,children:e}));return(0,t.jsxs)("table",{className:"apiTable_e8hp",children:[r,(0,t.jsx)("tbody",{children:o})]})}},33790:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>u,contentTitle:()=>c,default:()=>g,frontMatter:()=>d,metadata:()=>t,toc:()=>h});let t=JSON.parse('{"id":"api/plugins/plugin-ideal-image","title":"\u{1F4E6} plugin-ideal-image","description":"Docusaurus Plugin to generate an almost ideal image (responsive, lazy-loading, and low quality placeholder).","source":"@site/docs/api/plugins/plugin-ideal-image.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-ideal-image","permalink":"/docs/api/plugins/@docusaurus/plugin-ideal-image","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-ideal-image.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":8,"frontMatter":{"sidebar_position":8,"slug":"/api/plugins/@docusaurus/plugin-ideal-image"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-google-tag-manager","permalink":"/docs/api/plugins/@docusaurus/plugin-google-tag-manager"},"next":{"title":"\u{1F4E6} plugin-pwa","permalink":"/docs/api/plugins/@docusaurus/plugin-pwa"}}');var i=r(62540),l=r(43023),a=r(27446),s=r(15995),o=r(59273);let d={sidebar_position:8,slug:"/api/plugins/@docusaurus/plugin-ideal-image"},c="\u{1F4E6} plugin-ideal-image",u={},h=[{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Example configuration",id:"ex-config",level:3}];function p(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"-plugin-ideal-image",children:"\u{1F4E6} plugin-ideal-image"})}),"\n","\n",(0,i.jsx)(n.p,{children:"Docusaurus Plugin to generate an almost ideal image (responsive, lazy-loading, and low quality placeholder)."}),"\n",(0,i.jsx)(n.admonition,{type:"info",children:(0,i.jsxs)(n.p,{children:["By default, the plugin is ",(0,i.jsx)(n.strong,{children:"inactive in development"})," so you could always view full-scale images. If you want to debug the ideal image behavior, you could set the ",(0,i.jsx)(n.a,{href:"#disableInDev",children:(0,i.jsx)(n.code,{children:"disableInDev"})})," option to ",(0,i.jsx)(n.code,{children:"false"}),"."]})}),"\n",(0,i.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,i.jsxs)(a.A,{groupId:"npm2yarn",children:[(0,i.jsx)(s.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm install --save @docusaurus/plugin-ideal-image\n"})})}),(0,i.jsx)(s.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn add @docusaurus/plugin-ideal-image\n"})})}),(0,i.jsx)(s.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm add @docusaurus/plugin-ideal-image\n"})})})]}),"\n",(0,i.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,i.jsx)(n.p,{children:"This plugin supports the PNG and JPG formats only."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import Image from '@theme/IdealImage';\nimport thumbnail from './path/to/img.png';\n\n// your React code\n<Image img={thumbnail} />\n\n// or\n<Image img={require('./path/to/img.png')} />\n"})}),"\n",(0,i.jsxs)(n.admonition,{type:"warning",children:[(0,i.jsxs)(n.p,{children:["This plugin registers a ",(0,i.jsx)(n.a,{href:"https://webpack.js.org/loaders/",children:"Webpack loader"})," that changes the type of imported/require images:"]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Before: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.li,{children:["After: ",(0,i.jsx)(n.code,{children:'{preSrc: string, src: import("@theme/IdealImage").SrcImage}'})]}),"\n"]})]}),"\n",(0,i.jsx)(n.h2,{id:"configuration",children:"Configuration"}),"\n",(0,i.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,i.jsx)(o.A,{children:(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Option"}),(0,i.jsx)(n.th,{children:"Type"}),(0,i.jsx)(n.th,{children:"Default"}),(0,i.jsx)(n.th,{children:"Description"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"name"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"string"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"ideal-img/[name].[hash:hex:7].[width].[ext]"})}),(0,i.jsx)(n.td,{children:"Filename template for output files."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"sizes"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"number[]"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.em,{children:"original size"})}),(0,i.jsx)(n.td,{children:"Specify all widths you want to use. If a specified size exceeds the original image's width, the latter will be used (i.e. images won't be scaled up)."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"size"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"number"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.em,{children:"original size"})}),(0,i.jsx)(n.td,{children:"Specify one width you want to use; if the specified size exceeds the original image's width, the latter will be used (i.e. images won't be scaled up)"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"min"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"number"})}),(0,i.jsx)(n.td,{}),(0,i.jsxs)(n.td,{children:["As an alternative to manually specifying ",(0,i.jsx)(n.code,{children:"sizes"}),", you can specify ",(0,i.jsx)(n.code,{children:"min"}),", ",(0,i.jsx)(n.code,{children:"max"})," and ",(0,i.jsx)(n.code,{children:"steps"}),", and the sizes will be generated for you."]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"max"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"number"})}),(0,i.jsx)(n.td,{}),(0,i.jsxs)(n.td,{children:["See ",(0,i.jsx)(n.code,{children:"min"})," above"]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"steps"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"number"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"4"})}),(0,i.jsxs)(n.td,{children:["Configure the number of images generated between ",(0,i.jsx)(n.code,{children:"min"})," and ",(0,i.jsx)(n.code,{children:"max"})," (inclusive)"]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"quality"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"number"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"85"})}),(0,i.jsx)(n.td,{children:"JPEG compression quality"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"disableInDev"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"boolean"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"true"})}),(0,i.jsxs)(n.td,{children:["You can test ideal image behavior in dev mode by setting this to ",(0,i.jsx)(n.code,{children:"false"}),". ",(0,i.jsx)(n.strong,{children:"Tip"}),": use ",(0,i.jsx)(n.a,{href:"https://www.browserstack.com/guide/how-to-perform-network-throttling-in-chrome",children:"network throttling"})," in your browser to simulate slow networks."]})]})]})]})}),"\n",(0,i.jsx)(n.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,i.jsx)(n.p,{children:"Here's an example configuration:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n plugins: [\n [\n '@docusaurus/plugin-ideal-image',\n // highlight-start\n {\n quality: 70,\n max: 1030, // max resized image's size.\n min: 640, // min resized image's size. if original is lower, use that size.\n steps: 2, // the max number of images generated between min and max (inclusive)\n disableInDev: false,\n },\n // highlight-end\n ],\n ],\n};\n"})})]})}function g(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},43023:(e,n,r)=>{r.d(n,{R:()=>a,x:()=>s});var t=r(63696);let i={},l=t.createContext(i);function a(e){let n=t.useContext(l);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file +${JSON.stringify(e,null,2)}`);return n}(n),o=e?`${e}-${s}`:s,d=`#${o}`,c=(0,a.W6)();return(0,l.A)().collectAnchor(o),(0,t.jsx)("tr",{id:o,tabIndex:0,ref:c.location.hash===d?r:void 0,onClick:e=>{"A"!==e.target.tagName.toUpperCase()&&c.push(d)},onKeyDown:e=>{"Enter"===e.key&&c.push(d)},children:n.props.children})});function o({children:e,name:n}){if("table"!==e.type)throw Error("Bad usage of APITable component.\nIt is probably that your Markdown table is malformed.\nMake sure to double-check you have the appropriate number of columns for each table row.");let[r,l]=i.Children.toArray(e.props.children),a=(0,i.useRef)(null);(0,i.useEffect)(()=>{var e;null===(e=a.current)||void 0===e||e.focus()},[a]);let o=i.Children.map(l.props.children,e=>(0,t.jsx)(s,{name:n,ref:a,children:e}));return(0,t.jsxs)("table",{className:"apiTable_e8hp",children:[r,(0,t.jsx)("tbody",{children:o})]})}},33790:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>u,contentTitle:()=>c,default:()=>g,frontMatter:()=>d,metadata:()=>t,toc:()=>h});let t=JSON.parse('{"id":"api/plugins/plugin-ideal-image","title":"\u{1F4E6} plugin-ideal-image","description":"Docusaurus Plugin to generate an almost ideal image (responsive, lazy-loading, and low quality placeholder).","source":"@site/docs/api/plugins/plugin-ideal-image.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-ideal-image","permalink":"/docs/api/plugins/@docusaurus/plugin-ideal-image","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-ideal-image.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":8,"frontMatter":{"sidebar_position":8,"slug":"/api/plugins/@docusaurus/plugin-ideal-image"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-google-tag-manager","permalink":"/docs/api/plugins/@docusaurus/plugin-google-tag-manager"},"next":{"title":"\u{1F4E6} plugin-pwa","permalink":"/docs/api/plugins/@docusaurus/plugin-pwa"}}');var i=r(62540),l=r(43023),a=r(27446),s=r(15995),o=r(59273);let d={sidebar_position:8,slug:"/api/plugins/@docusaurus/plugin-ideal-image"},c="\u{1F4E6} plugin-ideal-image",u={},h=[{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Example configuration",id:"ex-config",level:3}];function p(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"-plugin-ideal-image",children:"\u{1F4E6} plugin-ideal-image"})}),"\n","\n",(0,i.jsx)(n.p,{children:"Docusaurus Plugin to generate an almost ideal image (responsive, lazy-loading, and low quality placeholder)."}),"\n",(0,i.jsx)(n.admonition,{type:"info",children:(0,i.jsxs)(n.p,{children:["By default, the plugin is ",(0,i.jsx)(n.strong,{children:"inactive in development"})," so you could always view full-scale images. If you want to debug the ideal image behavior, you could set the ",(0,i.jsx)(n.a,{href:"#disableInDev",children:(0,i.jsx)(n.code,{children:"disableInDev"})})," option to ",(0,i.jsx)(n.code,{children:"false"}),"."]})}),"\n",(0,i.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,i.jsxs)(a.A,{groupId:"npm2yarn",children:[(0,i.jsx)(s.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm install --save @docusaurus/plugin-ideal-image\n"})})}),(0,i.jsx)(s.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn add @docusaurus/plugin-ideal-image\n"})})}),(0,i.jsx)(s.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm add @docusaurus/plugin-ideal-image\n"})})})]}),"\n",(0,i.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,i.jsx)(n.p,{children:"This plugin supports the PNG and JPG formats only."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import Image from '@theme/IdealImage';\nimport thumbnail from './path/to/img.png';\n\n// your React code\n<Image img={thumbnail} />\n\n// or\n<Image img={require('./path/to/img.png')} />\n"})}),"\n",(0,i.jsxs)(n.admonition,{type:"warning",children:[(0,i.jsxs)(n.p,{children:["This plugin registers a ",(0,i.jsx)(n.a,{href:"https://webpack.js.org/loaders/",children:"Webpack loader"})," that changes the type of imported/require images:"]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Before: ",(0,i.jsx)(n.code,{children:"string"})]}),"\n",(0,i.jsxs)(n.li,{children:["After: ",(0,i.jsx)(n.code,{children:'{preSrc: string, src: import("@theme/IdealImage").SrcImage}'})]}),"\n"]})]}),"\n",(0,i.jsx)(n.h2,{id:"configuration",children:"Configuration"}),"\n",(0,i.jsx)(n.p,{children:"Accepted fields:"}),"\n",(0,i.jsx)(o.A,{children:(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Option"}),(0,i.jsx)(n.th,{children:"Type"}),(0,i.jsx)(n.th,{children:"Default"}),(0,i.jsx)(n.th,{children:"Description"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"name"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"string"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"ideal-img/[name].[hash:hex:7].[width].[ext]"})}),(0,i.jsx)(n.td,{children:"Filename template for output files."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"sizes"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"number[]"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.em,{children:"original size"})}),(0,i.jsx)(n.td,{children:"Specify all widths you want to use. If a specified size exceeds the original image's width, the latter will be used (i.e. images won't be scaled up)."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"size"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"number"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.em,{children:"original size"})}),(0,i.jsx)(n.td,{children:"Specify one width you want to use; if the specified size exceeds the original image's width, the latter will be used (i.e. images won't be scaled up)"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"min"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"number"})}),(0,i.jsx)(n.td,{}),(0,i.jsxs)(n.td,{children:["As an alternative to manually specifying ",(0,i.jsx)(n.code,{children:"sizes"}),", you can specify ",(0,i.jsx)(n.code,{children:"min"}),", ",(0,i.jsx)(n.code,{children:"max"})," and ",(0,i.jsx)(n.code,{children:"steps"}),", and the sizes will be generated for you."]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"max"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"number"})}),(0,i.jsx)(n.td,{}),(0,i.jsxs)(n.td,{children:["See ",(0,i.jsx)(n.code,{children:"min"})," above"]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"steps"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"number"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"4"})}),(0,i.jsxs)(n.td,{children:["Configure the number of images generated between ",(0,i.jsx)(n.code,{children:"min"})," and ",(0,i.jsx)(n.code,{children:"max"})," (inclusive)"]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"quality"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"number"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"85"})}),(0,i.jsx)(n.td,{children:"JPEG compression quality"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"disableInDev"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"boolean"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"true"})}),(0,i.jsxs)(n.td,{children:["You can test ideal image behavior in dev mode by setting this to ",(0,i.jsx)(n.code,{children:"false"}),". ",(0,i.jsx)(n.strong,{children:"Tip"}),": use ",(0,i.jsx)(n.a,{href:"https://www.browserstack.com/guide/how-to-perform-network-throttling-in-chrome",children:"network throttling"})," in your browser to simulate slow networks."]})]})]})]})}),"\n",(0,i.jsx)(n.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,i.jsx)(n.p,{children:"Here's an example configuration:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n plugins: [\n [\n '@docusaurus/plugin-ideal-image',\n // highlight-start\n {\n quality: 70,\n max: 1030, // max resized image's size.\n min: 640, // min resized image's size. if original is lower, use that size.\n steps: 2, // the max number of images generated between min and max (inclusive)\n disableInDev: false,\n },\n // highlight-end\n ],\n ],\n};\n"})})]})}function g(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},43023:(e,n,r)=>{r.d(n,{R:()=>a,x:()=>s});var t=r(63696);let i={},l=t.createContext(i);function a(e){let n=t.useContext(l);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/49312.e3a4f331.js b/assets/js/49312.e3a4f331.js deleted file mode 100644 index ffb0442e1e..0000000000 --- a/assets/js/49312.e3a4f331.js +++ /dev/null @@ -1,56 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[49312],{49312:(t,e,i)=>{i.d(e,{diagram:()=>D});var n=i(17367),s=i(93126),r=i(71725),a=i(68459),l=i(57721);i(95285),i(31546),i(31234);var o=function(){var t=function(t,e,i,n){for(i=i||{},n=t.length;n--;i[t[n]]=e);return i},e=[1,2],i=[1,5],n=[6,9,11,17,18,20,22,23,26,27,28],s=[1,15],r=[1,16],a=[1,17],l=[1,18],o=[1,19],c=[1,23],h=[1,24],d=[1,27],u=[4,6,9,11,17,18,20,22,23,26,27,28],p={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,acc_title:18,acc_title_value:19,acc_descr:20,acc_descr_value:21,acc_descr_multiline_value:22,section:23,period_statement:24,event_statement:25,period:26,event:27,open_directive:28,type_directive:29,arg_directive:30,close_directive:31,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"acc_title",19:"acc_title_value",20:"acc_descr",21:"acc_descr_value",22:"acc_descr_multiline_value",23:"section",26:"period",27:"event",28:"open_directive",29:"type_directive",30:"arg_directive",31:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[24,1],[25,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,i,n,s,r,a){var l=r.length-1;switch(s){case 1:return r[l-1];case 3:case 7:case 8:this.$=[];break;case 4:r[l-1].push(r[l]),this.$=r[l-1];break;case 5:case 6:this.$=r[l];break;case 11:n.getCommonDb().setDiagramTitle(r[l].substr(6)),this.$=r[l].substr(6);break;case 12:this.$=r[l].trim(),n.getCommonDb().setAccTitle(this.$);break;case 13:case 14:this.$=r[l].trim(),n.getCommonDb().setAccDescription(this.$);break;case 15:n.addSection(r[l].substr(8)),this.$=r[l].substr(8);break;case 19:n.addTask(r[l],0,""),this.$=r[l];break;case 20:n.addEvent(r[l].substr(2)),this.$=r[l];break;case 21:n.parseDirective("%%{","open_directive");break;case 22:n.parseDirective(r[l],"type_directive");break;case 23:r[l]=r[l].trim().replace(/'/g,'"'),n.parseDirective(r[l],"arg_directive");break;case 24:n.parseDirective("}%%","close_directive","timeline")}},table:[{3:1,4:e,7:3,12:4,28:i},{1:[3]},t(n,[2,3],{5:6}),{3:7,4:e,7:3,12:4,28:i},{13:8,29:[1,9]},{29:[2,21]},{6:[1,10],7:22,8:11,9:[1,12],10:13,11:[1,14],12:4,17:s,18:r,20:a,22:l,23:o,24:20,25:21,26:c,27:h,28:i},{1:[2,2]},{14:25,15:[1,26],31:d},t([15,31],[2,22]),t(n,[2,8],{1:[2,1]}),t(n,[2,4]),{7:22,10:28,12:4,17:s,18:r,20:a,22:l,23:o,24:20,25:21,26:c,27:h,28:i},t(n,[2,6]),t(n,[2,7]),t(n,[2,11]),{19:[1,29]},{21:[1,30]},t(n,[2,14]),t(n,[2,15]),t(n,[2,16]),t(n,[2,17]),t(n,[2,18]),t(n,[2,19]),t(n,[2,20]),{11:[1,31]},{16:32,30:[1,33]},{11:[2,24]},t(n,[2,5]),t(n,[2,12]),t(n,[2,13]),t(u,[2,9]),{14:34,31:d},{31:[2,23]},{11:[1,35]},t(u,[2,10])],defaultActions:{5:[2,21],7:[2,2],27:[2,24],33:[2,23]},parseError:function(t,e){if(e.recoverable)this.trace(t);else{var i=Error(t);throw i.hash=e,i}},parse:function(t){var e=this,i=[0],n=[],s=[null],r=[],a=this.table,l="",o=0,c=0,h=r.slice.call(arguments,1),d=Object.create(this.lexer),u={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(u.yy[p]=this.yy[p]);d.setInput(t,u.yy),u.yy.lexer=d,u.yy.parser=this,void 0===d.yylloc&&(d.yylloc={});var g=d.yylloc;r.push(g);var y=d.options&&d.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var f,m,_,b,v,k,x,w,S={};;){if(m=i[i.length-1],this.defaultActions[m]?_=this.defaultActions[m]:(null==f&&(f=function(){var t;return"number"!=typeof(t=n.pop()||d.lex()||1)&&(t instanceof Array&&(t=(n=t).pop()),t=e.symbols_[t]||t),t}()),_=a[m]&&a[m][f]),void 0===_||!_.length||!_[0]){var $="";for(v in w=[],a[m])this.terminals_[v]&&v>2&&w.push("'"+this.terminals_[v]+"'");$=d.showPosition?"Parse error on line "+(o+1)+":\n"+d.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError($,{text:d.match,token:this.terminals_[f]||f,line:d.yylineno,loc:g,expected:w})}if(_[0]instanceof Array&&_.length>1)throw Error("Parse Error: multiple actions possible at state: "+m+", token: "+f);switch(_[0]){case 1:i.push(f),s.push(d.yytext),r.push(d.yylloc),i.push(_[1]),f=null,c=d.yyleng,l=d.yytext,o=d.yylineno,g=d.yylloc;break;case 2:if(k=this.productions_[_[1]][1],S.$=s[s.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},y&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(b=this.performAction.apply(S,[l,c,o,u.yy,_[1],s,r].concat(h))))return b;k&&(i=i.slice(0,-1*k*2),s=s.slice(0,-1*k),r=r.slice(0,-1*k)),i.push(this.productions_[_[1]][0]),s.push(S.$),r.push(S._$),x=a[i[i.length-2]][i[i.length-1]],i.push(x);break;case 3:return!0}}return!0}};function g(){this.yy={}}return p.lexer={EOF:1,parseError:function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var s=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===n.length?this.yylloc.first_column:0)+n[n.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[s[0],s[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var i,n,s;if(this.options.backtrack_lexer&&(s={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(s.yylloc.range=this.yylloc.range.slice(0))),(n=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var r in s)this[r]=s[r];return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,i,n,s=this._currentRules(),r=0;r<s.length;r++)if((i=this._input.match(this.rules[s[r]]))&&(!e||i[0].length>e[0].length)){if(e=i,n=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,s[r])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,s[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,i,n){switch(i){case 0:return this.begin("open_directive"),28;case 1:return this.begin("type_directive"),29;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),31;case 4:return 30;case 5:case 6:case 8:case 9:break;case 7:return 11;case 10:return 4;case 11:return 17;case 12:return this.begin("acc_title"),18;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),20;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:return 23;case 20:return 27;case 21:return 26;case 22:return 6;case 23:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?::\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23],inclusive:!0}}},g.prototype=p,p.Parser=g,new g}();o.parser=o;let c="",h=0,d=[],u=[],p=[],g=()=>n.M,y=(t,e,i)=>{(0,n.D)(globalThis,t,e,i)},f=function(){d.length=0,u.length=0,c="",p.length=0,(0,n.v)()},m=function(t){c=t,d.push(t)},_=function(){return d},b=function(){let t=w(),e=0;for(;!t&&e<100;)t=w(),e++;return u.push(...p),u},v=function(t,e,i){let n={id:h++,section:c,type:c,task:t,score:e||0,events:i?[i]:[]};p.push(n)},k=function(t){p.find(t=>t.id===h-1).events.push(t)},x=function(t){let e={section:c,type:c,description:t,task:t,classes:[]};u.push(e)},w=function(){let t=!0;for(let[e,i]of p.entries())p[e].processed,t=t&&i.processed;return t},S=Object.freeze(Object.defineProperty({__proto__:null,addEvent:k,addSection:m,addTask:v,addTaskOrg:x,clear:f,default:{clear:f,getCommonDb:g,addSection:m,getSections:_,getTasks:b,addTask:v,addTaskOrg:x,addEvent:k,parseDirective:y},getCommonDb:g,getSections:_,getTasks:b,parseDirective:y},Symbol.toStringTag,{value:"Module"}));function $(t,e){t.each(function(){var t,i=(0,s.Ltv)(this),n=i.text().split(/(\s+|<br>)/).reverse(),r=[],a=i.attr("y"),l=parseFloat(i.attr("dy")),o=i.text(null).append("tspan").attr("x",0).attr("y",a).attr("dy",l+"em");for(let s=0;s<n.length;s++)t=n[n.length-1-s],r.push(t),o.text(r.join(" ").trim()),(o.node().getComputedTextLength()>e||"<br>"===t)&&(r.pop(),o.text(r.join(" ").trim()),r="<br>"===t?[""]:[t],o=i.append("tspan").attr("x",0).attr("y",a).attr("dy","1.1em").text(t))})}!function(){function t(t,e){for(let i in e)i in e&&t.attr(i,e[i])}}();let E=function(t,e,i){t.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+e.type).attr("d",`M0 ${e.height-5} v${-e.height+10} q0,-5 5,-5 h${e.width-10} q5,0 5,5 v${e.height-5} H0 Z`),t.append("line").attr("class","node-line-"+i).attr("x1",0).attr("y1",e.height).attr("x2",e.width).attr("y2",e.height)},I={initGraphics:function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},drawNode:function(t,e,i,n){let s=i%12-1,r=t.append("g");e.section=s,r.attr("class",(e.class?e.class+" ":"")+"timeline-node section-"+s);let a=r.append("g"),l=r.append("g"),o=l.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call($,e.width).node().getBBox(),c=n.fontSize&&n.fontSize.replace?n.fontSize.replace("px",""):n.fontSize;return e.height=o.height+.55*c+e.padding,e.height=Math.max(e.height,e.maxHeight),e.width=e.width+2*e.padding,l.attr("transform","translate("+e.width/2+", "+e.padding/2+")"),E(a,e,s),e},getVirtualNodeHeight:function(t,e,i){let n=t.append("g"),s=n.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call($,e.width).node().getBBox(),r=i.fontSize&&i.fontSize.replace?i.fontSize.replace("px",""):i.fontSize;return n.remove(),s.height+.55*r+e.padding}},L=function(t,e,i,s,r,a,l,o,c,h,d){var u;for(let o of e){let e={descr:o.task,section:i,number:i,width:150,padding:20,maxHeight:a};n.l.debug("taskNode",e);let p=t.append("g").attr("class","taskWrapper"),g=I.drawNode(p,e,i,l).height;if(n.l.debug("taskHeight after draw",g),p.attr("transform",`translate(${s}, ${r})`),a=Math.max(a,g),o.events){let e=t.append("g").attr("class","lineWrapper");r+=100,A(t,o.events,i,s,r,l),r-=100,e.append("line").attr("x1",s+95).attr("y1",r+a).attr("x2",s+95).attr("y2",r+a+(d?a:h)+c+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}s+=200,d&&!(null==(u=l.timeline)?void 0:u.disableMulticolor)&&i++}},A=function(t,e,i,s,r,a){let l=0,o=r;for(let o of(r+=100,e)){let e={descr:o,section:i,number:i,width:150,padding:20,maxHeight:50};n.l.debug("eventNode",e);let c=t.append("g").attr("class","eventWrapper"),h=I.drawNode(c,e,i,a).height;l+=h,c.attr("transform",`translate(${s}, ${r})`),r=r+10+h}return r=o,l},N=t=>{let e="";for(let e=0;e<t.THEME_COLOR_LIMIT;e++)t["lineColor"+e]=t["lineColor"+e]||t["cScaleInv"+e],(0,r.A)(t["lineColor"+e])?t["lineColor"+e]=(0,a.A)(t["lineColor"+e],20):t["lineColor"+e]=(0,l.A)(t["lineColor"+e],20);for(let i=0;i<t.THEME_COLOR_LIMIT;i++){let n=""+(17-3*i);e+=` - .section-${i-1} rect, .section-${i-1} path, .section-${i-1} circle, .section-${i-1} path { - fill: ${t["cScale"+i]}; - } - .section-${i-1} text { - fill: ${t["cScaleLabel"+i]}; - } - .node-icon-${i-1} { - font-size: 40px; - color: ${t["cScaleLabel"+i]}; - } - .section-edge-${i-1}{ - stroke: ${t["cScale"+i]}; - } - .edge-depth-${i-1}{ - stroke-width: ${n}; - } - .section-${i-1} line { - stroke: ${t["cScaleInv"+i]} ; - stroke-width: 3; - } - - .lineWrapper line{ - stroke: ${t["cScaleLabel"+i]} ; - } - - .disabled, .disabled circle, .disabled text { - fill: lightgray; - } - .disabled text { - fill: #efefef; - } - `}return e},D={db:S,renderer:{setConf:()=>{},draw:function(t,e,i,r){var a,l;let o;let c=(0,n.c)(),h=c.leftMargin??50;n.l.debug("timeline",r.db);let d=c.securityLevel;"sandbox"===d&&(o=(0,s.Ltv)("#i"+e));let u=("sandbox"===d?(0,s.Ltv)(o.nodes()[0].contentDocument.body):(0,s.Ltv)("body")).select("#"+e);u.append("g");let p=r.db.getTasks(),g=r.db.getCommonDb().getDiagramTitle();n.l.debug("task",p),I.initGraphics(u);let y=r.db.getSections();n.l.debug("sections",y);let f=0,m=0,_=0,b=0,v=50+h,k=50;b=50;let x=0,w=!0;y.forEach(function(t){let e={number:x,descr:t,section:x,width:150,padding:20,maxHeight:f},i=I.getVirtualNodeHeight(u,e,c);n.l.debug("sectionHeight before draw",i),f=Math.max(f,i+20)});let S=0,$=0;for(let[t,e]of(n.l.debug("tasks.length",p.length),p.entries())){let i={number:t,descr:e,section:e.section,width:150,padding:20,maxHeight:m},s=I.getVirtualNodeHeight(u,i,c);n.l.debug("taskHeight before draw",s),m=Math.max(m,s+20),S=Math.max(S,e.events.length);let r=0;for(let t=0;t<e.events.length;t++){let i={descr:e.events[t],section:e.section,number:e.section,width:150,padding:20,maxHeight:50};r+=I.getVirtualNodeHeight(u,i,c)}$=Math.max($,r)}n.l.debug("maxSectionHeight before draw",f),n.l.debug("maxTaskHeight before draw",m),y&&y.length>0?y.forEach(t=>{let e=p.filter(e=>e.section===t),i={number:x,descr:t,section:x,width:200*Math.max(e.length,1)-50,padding:20,maxHeight:f};n.l.debug("sectionNode",i);let s=u.append("g"),r=I.drawNode(s,i,x,c);n.l.debug("sectionNode output",r),s.attr("transform",`translate(${v}, ${b})`),k+=f+50,e.length>0&&L(u,e,x,v,k,m,c,S,$,f,!1),v+=200*Math.max(e.length,1),k=b,x++}):(w=!1,L(u,p,x,v,k,m,c,S,$,f,!0));let E=u.node().getBBox();n.l.debug("bounds",E),g&&u.append("text").text(g).attr("x",E.width/2-h).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),_=w?f+m+150:m+100,u.append("g").attr("class","lineWrapper").append("line").attr("x1",h).attr("y1",_).attr("x2",E.width+3*h).attr("y2",_).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),(0,n.p)(void 0,u,(null==(a=c.timeline)?void 0:a.padding)??50,(null==(l=c.timeline)?void 0:l.useMaxWidth)??!1)}},parser:o,styles:t=>` - .edge { - stroke-width: 3; - } - ${N(t)} - .section-root rect, .section-root path, .section-root circle { - fill: ${t.git0}; - } - .section-root text { - fill: ${t.gitBranchLabel0}; - } - .icon-container { - height:100%; - display: flex; - justify-content: center; - align-items: center; - } - .edge { - fill: none; - } - .eventWrapper { - filter: brightness(120%); - } -`}}}]); \ No newline at end of file diff --git a/assets/js/49711.66149710.js b/assets/js/49711.66149710.js deleted file mode 100644 index f943c7be87..0000000000 --- a/assets/js/49711.66149710.js +++ /dev/null @@ -1,63 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[49711],{49711:(t,e,r)=>{r.d(e,{diagram:()=>B});var i=r(17367),a=r(93126);r(95285),r(31546),r(31234);var c=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,4],r=[1,7],i=[1,5],a=[1,9],c=[1,6],s=[2,6],n=[1,16],o=[6,8,14,20,22,24,25,27,29,32,37,40,50,55],l=[8,14,20,22,24,25,27,29,32,37,40],h=[8,13,14,20,22,24,25,27,29,32,37,40],m=[1,26],u=[6,8,14,50,55],y=[8,14,55],p=[1,53],g=[1,52],b=[8,14,30,33,35,38,55],d=[1,67],f=[1,68],k=[1,69],$=[8,14,33,35,42,55],_={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,GG:6,document:7,EOF:8,":":9,DIR:10,options:11,body:12,OPT:13,NL:14,line:15,statement:16,commitStatement:17,mergeStatement:18,cherryPickStatement:19,acc_title:20,acc_title_value:21,acc_descr:22,acc_descr_value:23,acc_descr_multiline_value:24,section:25,branchStatement:26,CHECKOUT:27,ref:28,BRANCH:29,ORDER:30,NUM:31,CHERRY_PICK:32,COMMIT_ID:33,STR:34,COMMIT_TAG:35,EMPTYSTR:36,MERGE:37,COMMIT_TYPE:38,commitType:39,COMMIT:40,commit_arg:41,COMMIT_MSG:42,NORMAL:43,REVERSE:44,HIGHLIGHT:45,openDirective:46,typeDirective:47,closeDirective:48,argDirective:49,open_directive:50,type_directive:51,arg_directive:52,close_directive:53,ID:54,";":55,$accept:0,$end:1},terminals_:{2:"error",6:"GG",8:"EOF",9:":",10:"DIR",13:"OPT",14:"NL",20:"acc_title",21:"acc_title_value",22:"acc_descr",23:"acc_descr_value",24:"acc_descr_multiline_value",25:"section",27:"CHECKOUT",29:"BRANCH",30:"ORDER",31:"NUM",32:"CHERRY_PICK",33:"COMMIT_ID",34:"STR",35:"COMMIT_TAG",36:"EMPTYSTR",37:"MERGE",38:"COMMIT_TYPE",40:"COMMIT",42:"COMMIT_MSG",43:"NORMAL",44:"REVERSE",45:"HIGHLIGHT",50:"open_directive",51:"type_directive",52:"arg_directive",53:"close_directive",54:"ID",55:";"},productions_:[0,[3,2],[3,2],[3,3],[3,4],[3,5],[7,0],[7,2],[11,2],[11,1],[12,0],[12,2],[15,2],[15,1],[16,1],[16,1],[16,1],[16,2],[16,2],[16,1],[16,1],[16,1],[16,2],[26,2],[26,4],[19,3],[19,5],[19,5],[19,5],[19,5],[18,2],[18,4],[18,4],[18,4],[18,6],[18,6],[18,6],[18,6],[18,6],[18,6],[18,8],[18,8],[18,8],[18,8],[18,8],[18,8],[17,2],[17,3],[17,3],[17,5],[17,5],[17,3],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,3],[17,5],[17,5],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[41,0],[41,1],[39,1],[39,1],[39,1],[5,3],[5,5],[46,1],[47,1],[49,1],[48,1],[28,1],[28,1],[4,1],[4,1],[4,1]],performAction:function(t,e,r,i,a,c,s){var n=c.length-1;switch(a){case 3:return c[n];case 4:return c[n-1];case 5:return i.setDirection(c[n-3]),c[n-1];case 7:i.setOptions(c[n-1]),this.$=c[n];break;case 8:c[n-1]+=c[n],this.$=c[n-1];break;case 10:this.$=[];break;case 11:c[n-1].push(c[n]),this.$=c[n-1];break;case 12:this.$=c[n-1];break;case 17:this.$=c[n].trim(),i.setAccTitle(this.$);break;case 18:case 19:this.$=c[n].trim(),i.setAccDescription(this.$);break;case 20:i.addSection(c[n].substr(8)),this.$=c[n].substr(8);break;case 22:i.checkout(c[n]);break;case 23:i.branch(c[n]);break;case 24:i.branch(c[n-2],c[n]);break;case 25:i.cherryPick(c[n],"",void 0);break;case 26:i.cherryPick(c[n-2],"",c[n]);break;case 27:case 29:i.cherryPick(c[n-2],"","");break;case 28:i.cherryPick(c[n],"",c[n-2]);break;case 30:i.merge(c[n],"","","");break;case 31:i.merge(c[n-2],c[n],"","");break;case 32:i.merge(c[n-2],"",c[n],"");break;case 33:i.merge(c[n-2],"","",c[n]);break;case 34:i.merge(c[n-4],c[n],"",c[n-2]);break;case 35:i.merge(c[n-4],"",c[n],c[n-2]);break;case 36:i.merge(c[n-4],"",c[n-2],c[n]);break;case 37:i.merge(c[n-4],c[n-2],c[n],"");break;case 38:i.merge(c[n-4],c[n-2],"",c[n]);break;case 39:i.merge(c[n-4],c[n],c[n-2],"");break;case 40:i.merge(c[n-6],c[n-4],c[n-2],c[n]);break;case 41:i.merge(c[n-6],c[n],c[n-4],c[n-2]);break;case 42:i.merge(c[n-6],c[n-4],c[n],c[n-2]);break;case 43:i.merge(c[n-6],c[n-2],c[n-4],c[n]);break;case 44:i.merge(c[n-6],c[n],c[n-2],c[n-4]);break;case 45:i.merge(c[n-6],c[n-2],c[n],c[n-4]);break;case 46:i.commit(c[n]);break;case 47:i.commit("","",i.commitType.NORMAL,c[n]);break;case 48:i.commit("","",c[n],"");break;case 49:i.commit("","",c[n],c[n-2]);break;case 50:i.commit("","",c[n-2],c[n]);break;case 51:i.commit("",c[n],i.commitType.NORMAL,"");break;case 52:i.commit("",c[n-2],i.commitType.NORMAL,c[n]);break;case 53:i.commit("",c[n],i.commitType.NORMAL,c[n-2]);break;case 54:i.commit("",c[n-2],c[n],"");break;case 55:i.commit("",c[n],c[n-2],"");break;case 56:i.commit("",c[n-4],c[n-2],c[n]);break;case 57:i.commit("",c[n-4],c[n],c[n-2]);break;case 58:i.commit("",c[n-2],c[n-4],c[n]);break;case 59:i.commit("",c[n],c[n-4],c[n-2]);break;case 60:i.commit("",c[n],c[n-2],c[n-4]);break;case 61:i.commit("",c[n-2],c[n],c[n-4]);break;case 62:i.commit(c[n],"",i.commitType.NORMAL,"");break;case 63:i.commit(c[n],"",i.commitType.NORMAL,c[n-2]);break;case 64:i.commit(c[n-2],"",i.commitType.NORMAL,c[n]);break;case 65:i.commit(c[n-2],"",c[n],"");break;case 66:i.commit(c[n],"",c[n-2],"");break;case 67:i.commit(c[n],c[n-2],i.commitType.NORMAL,"");break;case 68:i.commit(c[n-2],c[n],i.commitType.NORMAL,"");break;case 69:i.commit(c[n-4],"",c[n-2],c[n]);break;case 70:i.commit(c[n-4],"",c[n],c[n-2]);break;case 71:i.commit(c[n-2],"",c[n-4],c[n]);break;case 72:i.commit(c[n],"",c[n-4],c[n-2]);break;case 73:i.commit(c[n],"",c[n-2],c[n-4]);break;case 74:i.commit(c[n-2],"",c[n],c[n-4]);break;case 75:i.commit(c[n-4],c[n],c[n-2],"");break;case 76:i.commit(c[n-4],c[n-2],c[n],"");break;case 77:i.commit(c[n-2],c[n],c[n-4],"");break;case 78:i.commit(c[n],c[n-2],c[n-4],"");break;case 79:i.commit(c[n],c[n-4],c[n-2],"");break;case 80:i.commit(c[n-2],c[n-4],c[n],"");break;case 81:i.commit(c[n-4],c[n],i.commitType.NORMAL,c[n-2]);break;case 82:i.commit(c[n-4],c[n-2],i.commitType.NORMAL,c[n]);break;case 83:i.commit(c[n-2],c[n],i.commitType.NORMAL,c[n-4]);break;case 84:i.commit(c[n],c[n-2],i.commitType.NORMAL,c[n-4]);break;case 85:i.commit(c[n],c[n-4],i.commitType.NORMAL,c[n-2]);break;case 86:i.commit(c[n-2],c[n-4],i.commitType.NORMAL,c[n]);break;case 87:i.commit(c[n-6],c[n-4],c[n-2],c[n]);break;case 88:i.commit(c[n-6],c[n-4],c[n],c[n-2]);break;case 89:i.commit(c[n-6],c[n-2],c[n-4],c[n]);break;case 90:i.commit(c[n-6],c[n],c[n-4],c[n-2]);break;case 91:i.commit(c[n-6],c[n-2],c[n],c[n-4]);break;case 92:i.commit(c[n-6],c[n],c[n-2],c[n-4]);break;case 93:i.commit(c[n-4],c[n-6],c[n-2],c[n]);break;case 94:i.commit(c[n-4],c[n-6],c[n],c[n-2]);break;case 95:i.commit(c[n-2],c[n-6],c[n-4],c[n]);break;case 96:i.commit(c[n],c[n-6],c[n-4],c[n-2]);break;case 97:i.commit(c[n-2],c[n-6],c[n],c[n-4]);break;case 98:i.commit(c[n],c[n-6],c[n-2],c[n-4]);break;case 99:i.commit(c[n],c[n-4],c[n-2],c[n-6]);break;case 100:i.commit(c[n-2],c[n-4],c[n],c[n-6]);break;case 101:i.commit(c[n],c[n-2],c[n-4],c[n-6]);break;case 102:i.commit(c[n-2],c[n],c[n-4],c[n-6]);break;case 103:i.commit(c[n-4],c[n-2],c[n],c[n-6]);break;case 104:i.commit(c[n-4],c[n],c[n-2],c[n-6]);break;case 105:i.commit(c[n-2],c[n-4],c[n-6],c[n]);break;case 106:i.commit(c[n],c[n-4],c[n-6],c[n-2]);break;case 107:i.commit(c[n-2],c[n],c[n-6],c[n-4]);break;case 108:i.commit(c[n],c[n-2],c[n-6],c[n-4]);break;case 109:i.commit(c[n-4],c[n-2],c[n-6],c[n]);break;case 110:i.commit(c[n-4],c[n],c[n-6],c[n-2]);break;case 111:this.$="";break;case 112:this.$=c[n];break;case 113:this.$=i.commitType.NORMAL;break;case 114:this.$=i.commitType.REVERSE;break;case 115:this.$=i.commitType.HIGHLIGHT;break;case 118:i.parseDirective("%%{","open_directive");break;case 119:i.parseDirective(c[n],"type_directive");break;case 120:c[n]=c[n].trim().replace(/'/g,'"'),i.parseDirective(c[n],"arg_directive");break;case 121:i.parseDirective("}%%","close_directive","gitGraph")}},table:[{3:1,4:2,5:3,6:e,8:r,14:i,46:8,50:a,55:c},{1:[3]},{3:10,4:2,5:3,6:e,8:r,14:i,46:8,50:a,55:c},{3:11,4:2,5:3,6:e,8:r,14:i,46:8,50:a,55:c},{7:12,8:s,9:[1,13],10:[1,14],11:15,14:n},t(o,[2,124]),t(o,[2,125]),t(o,[2,126]),{47:17,51:[1,18]},{51:[2,118]},{1:[2,1]},{1:[2,2]},{8:[1,19]},{7:20,8:s,11:15,14:n},{9:[1,21]},t(l,[2,10],{12:22,13:[1,23]}),t(h,[2,9]),{9:[1,25],48:24,53:m},t([9,53],[2,119]),{1:[2,3]},{8:[1,27]},{7:28,8:s,11:15,14:n},{8:[2,7],14:[1,31],15:29,16:30,17:32,18:33,19:34,20:[1,35],22:[1,36],24:[1,37],25:[1,38],26:39,27:[1,40],29:[1,44],32:[1,43],37:[1,42],40:[1,41]},t(h,[2,8]),t(u,[2,116]),{49:45,52:[1,46]},t(u,[2,121]),{1:[2,4]},{8:[1,47]},t(l,[2,11]),{4:48,8:r,14:i,55:c},t(l,[2,13]),t(y,[2,14]),t(y,[2,15]),t(y,[2,16]),{21:[1,49]},{23:[1,50]},t(y,[2,19]),t(y,[2,20]),t(y,[2,21]),{28:51,34:p,54:g},t(y,[2,111],{41:54,33:[1,57],34:[1,59],35:[1,55],38:[1,56],42:[1,58]}),{28:60,34:p,54:g},{33:[1,61],35:[1,62]},{28:63,34:p,54:g},{48:64,53:m},{53:[2,120]},{1:[2,5]},t(l,[2,12]),t(y,[2,17]),t(y,[2,18]),t(y,[2,22]),t(b,[2,122]),t(b,[2,123]),t(y,[2,46]),{34:[1,65]},{39:66,43:d,44:f,45:k},{34:[1,70]},{34:[1,71]},t(y,[2,112]),t(y,[2,30],{33:[1,72],35:[1,74],38:[1,73]}),{34:[1,75]},{34:[1,76],36:[1,77]},t(y,[2,23],{30:[1,78]}),t(u,[2,117]),t(y,[2,47],{33:[1,80],38:[1,79],42:[1,81]}),t(y,[2,48],{33:[1,83],35:[1,82],42:[1,84]}),t($,[2,113]),t($,[2,114]),t($,[2,115]),t(y,[2,51],{35:[1,85],38:[1,86],42:[1,87]}),t(y,[2,62],{33:[1,90],35:[1,88],38:[1,89]}),{34:[1,91]},{39:92,43:d,44:f,45:k},{34:[1,93]},t(y,[2,25],{35:[1,94]}),{33:[1,95]},{33:[1,96]},{31:[1,97]},{39:98,43:d,44:f,45:k},{34:[1,99]},{34:[1,100]},{34:[1,101]},{34:[1,102]},{34:[1,103]},{34:[1,104]},{39:105,43:d,44:f,45:k},{34:[1,106]},{34:[1,107]},{39:108,43:d,44:f,45:k},{34:[1,109]},t(y,[2,31],{35:[1,111],38:[1,110]}),t(y,[2,32],{33:[1,113],35:[1,112]}),t(y,[2,33],{33:[1,114],38:[1,115]}),{34:[1,116],36:[1,117]},{34:[1,118]},{34:[1,119]},t(y,[2,24]),t(y,[2,49],{33:[1,120],42:[1,121]}),t(y,[2,53],{38:[1,122],42:[1,123]}),t(y,[2,63],{33:[1,125],38:[1,124]}),t(y,[2,50],{33:[1,126],42:[1,127]}),t(y,[2,55],{35:[1,128],42:[1,129]}),t(y,[2,66],{33:[1,131],35:[1,130]}),t(y,[2,52],{38:[1,132],42:[1,133]}),t(y,[2,54],{35:[1,134],42:[1,135]}),t(y,[2,67],{35:[1,137],38:[1,136]}),t(y,[2,64],{33:[1,139],38:[1,138]}),t(y,[2,65],{33:[1,141],35:[1,140]}),t(y,[2,68],{35:[1,143],38:[1,142]}),{39:144,43:d,44:f,45:k},{34:[1,145]},{34:[1,146]},{34:[1,147]},{34:[1,148]},{39:149,43:d,44:f,45:k},t(y,[2,26]),t(y,[2,27]),t(y,[2,28]),t(y,[2,29]),{34:[1,150]},{34:[1,151]},{39:152,43:d,44:f,45:k},{34:[1,153]},{39:154,43:d,44:f,45:k},{34:[1,155]},{34:[1,156]},{34:[1,157]},{34:[1,158]},{34:[1,159]},{34:[1,160]},{34:[1,161]},{39:162,43:d,44:f,45:k},{34:[1,163]},{34:[1,164]},{34:[1,165]},{39:166,43:d,44:f,45:k},{34:[1,167]},{39:168,43:d,44:f,45:k},{34:[1,169]},{34:[1,170]},{34:[1,171]},{39:172,43:d,44:f,45:k},{34:[1,173]},t(y,[2,37],{35:[1,174]}),t(y,[2,38],{38:[1,175]}),t(y,[2,36],{33:[1,176]}),t(y,[2,39],{35:[1,177]}),t(y,[2,34],{38:[1,178]}),t(y,[2,35],{33:[1,179]}),t(y,[2,60],{42:[1,180]}),t(y,[2,73],{33:[1,181]}),t(y,[2,61],{42:[1,182]}),t(y,[2,84],{38:[1,183]}),t(y,[2,74],{33:[1,184]}),t(y,[2,83],{38:[1,185]}),t(y,[2,59],{42:[1,186]}),t(y,[2,72],{33:[1,187]}),t(y,[2,58],{42:[1,188]}),t(y,[2,78],{35:[1,189]}),t(y,[2,71],{33:[1,190]}),t(y,[2,77],{35:[1,191]}),t(y,[2,57],{42:[1,192]}),t(y,[2,85],{38:[1,193]}),t(y,[2,56],{42:[1,194]}),t(y,[2,79],{35:[1,195]}),t(y,[2,80],{35:[1,196]}),t(y,[2,86],{38:[1,197]}),t(y,[2,70],{33:[1,198]}),t(y,[2,81],{38:[1,199]}),t(y,[2,69],{33:[1,200]}),t(y,[2,75],{35:[1,201]}),t(y,[2,76],{35:[1,202]}),t(y,[2,82],{38:[1,203]}),{34:[1,204]},{39:205,43:d,44:f,45:k},{34:[1,206]},{34:[1,207]},{39:208,43:d,44:f,45:k},{34:[1,209]},{34:[1,210]},{34:[1,211]},{34:[1,212]},{39:213,43:d,44:f,45:k},{34:[1,214]},{39:215,43:d,44:f,45:k},{34:[1,216]},{34:[1,217]},{34:[1,218]},{34:[1,219]},{34:[1,220]},{34:[1,221]},{34:[1,222]},{39:223,43:d,44:f,45:k},{34:[1,224]},{34:[1,225]},{34:[1,226]},{39:227,43:d,44:f,45:k},{34:[1,228]},{39:229,43:d,44:f,45:k},{34:[1,230]},{34:[1,231]},{34:[1,232]},{39:233,43:d,44:f,45:k},t(y,[2,40]),t(y,[2,42]),t(y,[2,41]),t(y,[2,43]),t(y,[2,45]),t(y,[2,44]),t(y,[2,101]),t(y,[2,102]),t(y,[2,99]),t(y,[2,100]),t(y,[2,104]),t(y,[2,103]),t(y,[2,108]),t(y,[2,107]),t(y,[2,106]),t(y,[2,105]),t(y,[2,110]),t(y,[2,109]),t(y,[2,98]),t(y,[2,97]),t(y,[2,96]),t(y,[2,95]),t(y,[2,93]),t(y,[2,94]),t(y,[2,92]),t(y,[2,91]),t(y,[2,90]),t(y,[2,89]),t(y,[2,87]),t(y,[2,88])],defaultActions:{9:[2,118],10:[2,1],11:[2,2],19:[2,3],27:[2,4],46:[2,120],47:[2,5]},parseError:function(t,e){if(e.recoverable)this.trace(t);else{var r=Error(t);throw r.hash=e,r}},parse:function(t){var e=this,r=[0],i=[],a=[null],c=[],s=this.table,n="",o=0,l=0,h=c.slice.call(arguments,1),m=Object.create(this.lexer),u={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(u.yy[y]=this.yy[y]);m.setInput(t,u.yy),u.yy.lexer=m,u.yy.parser=this,void 0===m.yylloc&&(m.yylloc={});var p=m.yylloc;c.push(p);var g=m.options&&m.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,d,f,k,$,_,x,E,v={};;){if(d=r[r.length-1],this.defaultActions[d]?f=this.defaultActions[d]:(null==b&&(b=function(){var t;return"number"!=typeof(t=i.pop()||m.lex()||1)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}()),f=s[d]&&s[d][b]),void 0===f||!f.length||!f[0]){var T="";for($ in E=[],s[d])this.terminals_[$]&&$>2&&E.push("'"+this.terminals_[$]+"'");T=m.showPosition?"Parse error on line "+(o+1)+":\n"+m.showPosition()+"\nExpecting "+E.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==b?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(T,{text:m.match,token:this.terminals_[b]||b,line:m.yylineno,loc:p,expected:E})}if(f[0]instanceof Array&&f.length>1)throw Error("Parse Error: multiple actions possible at state: "+d+", token: "+b);switch(f[0]){case 1:r.push(b),a.push(m.yytext),c.push(m.yylloc),r.push(f[1]),b=null,l=m.yyleng,n=m.yytext,o=m.yylineno,p=m.yylloc;break;case 2:if(_=this.productions_[f[1]][1],v.$=a[a.length-_],v._$={first_line:c[c.length-(_||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-(_||1)].first_column,last_column:c[c.length-1].last_column},g&&(v._$.range=[c[c.length-(_||1)].range[0],c[c.length-1].range[1]]),void 0!==(k=this.performAction.apply(v,[n,l,o,u.yy,f[1],a,c].concat(h))))return k;_&&(r=r.slice(0,-1*_*2),a=a.slice(0,-1*_),c=c.slice(0,-1*_)),r.push(this.productions_[f[1]][0]),a.push(v.$),c.push(v._$),x=s[r[r.length-2]][r[r.length-1]],r.push(x);break;case 3:return!0}}return!0}};function x(){this.yy={}}return _.lexer={EOF:1,parseError:function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack)for(var c in a)this[c]=a[c];return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,r,i,a=this._currentRules(),c=0;c<a.length;c++)if((r=this._input.match(this.rules[a[c]]))&&(!e||r[0].length>e[0].length)){if(e=r,i=c,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,a[c])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("open_directive"),50;case 1:return this.begin("type_directive"),51;case 2:return this.popState(),this.begin("arg_directive"),9;case 3:return this.popState(),this.popState(),53;case 4:return 52;case 5:return this.begin("acc_title"),20;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),22;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:case 34:case 38:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:return 14;case 13:case 14:break;case 15:return 6;case 16:return 40;case 17:return 33;case 18:return 38;case 19:return 42;case 20:return 43;case 21:return 44;case 22:return 45;case 23:return 35;case 24:return 29;case 25:return 30;case 26:return 37;case 27:return 32;case 28:return 27;case 29:case 30:return 10;case 31:return 9;case 32:return"CARET";case 33:this.begin("options");break;case 35:return 13;case 36:return 36;case 37:this.begin("string");break;case 39:return 34;case 40:return 31;case 41:return 54;case 42:return 8}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit(?=\s|$))/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\b)/i,/^(?:REVERSE\b)/i,/^(?:HIGHLIGHT\b)/i,/^(?:tag:)/i,/^(?:branch(?=\s|$))/i,/^(?:order:)/i,/^(?:merge(?=\s|$))/i,/^(?:cherry-pick(?=\s|$))/i,/^(?:checkout(?=\s|$))/i,/^(?:LR\b)/i,/^(?:TB\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:[ \r\n\t]+end\b)/i,/^(?:[\s\S]+(?=[ \r\n\t]+end))/i,/^(?:["]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+(?=\s|$))/i,/^(?:\w([-\./\w]*[-\w])?)/i,/^(?:$)/i,/^(?:\s+)/i],conditions:{acc_descr_multiline:{rules:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},options:{rules:[34,35],inclusive:!1},string:{rules:[38,39],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,36,37,40,41,42,43],inclusive:!0}}},x.prototype=_,_.Parser=x,new x}();c.parser=c;let s=(0,i.c)().gitGraph.mainBranchName,n=(0,i.c)().gitGraph.mainBranchOrder,o={},l=null,h={};h[s]={name:s,order:n};let m={};m[s]=l;let u=s,y="LR",p=0;function g(){return(0,i.y)({length:7})}let b={},d=function(t){if(void 0===m[t=i.e.sanitizeText(t,(0,i.c)())]){let e=Error('Trying to checkout branch which is not yet created. (Help try using "branch '+t+'")');throw e.hash={text:"checkout "+t,token:"checkout "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"branch '+t+'"']},e}l=o[m[u=t]]};function f(t,e,r){let i=t.indexOf(e);-1===i?t.push(r):t.splice(i,1,r)}let k=function(){let t=Object.keys(o).map(function(t){return o[t]});return t.forEach(function(t){i.l.debug(t.id)}),t.sort((t,e)=>t.seq-e.seq),t},$={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},_={parseDirective:function(t,e,r){i.m.parseDirective(this,t,e,r)},getConfig:()=>(0,i.c)().gitGraph,setDirection:function(t){y=t},setOptions:function(t){i.l.debug("options str",t),t=(t=t&&t.trim())||"{}";try{b=JSON.parse(t)}catch(t){i.l.error("error while parsing gitGraph options",t.message)}},getOptions:function(){return b},commit:function(t,e,r,a){i.l.debug("Entering commit:",t,e,r,a),e=i.e.sanitizeText(e,(0,i.c)()),t=i.e.sanitizeText(t,(0,i.c)()),a=i.e.sanitizeText(a,(0,i.c)());let c={id:e||p+"-"+g(),message:t,seq:p++,type:r||$.NORMAL,tag:a||"",parents:null==l?[]:[l.id],branch:u};l=c,o[c.id]=c,m[u]=c.id,i.l.debug("in pushCommit "+c.id)},branch:function(t,e){if(void 0===m[t=i.e.sanitizeText(t,(0,i.c)())])m[t]=null!=l?l.id:null,h[t]={name:t,order:e?parseInt(e,10):null},d(t),i.l.debug("in createBranch");else{let e=Error('Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout '+t+'")');throw e.hash={text:"branch "+t,token:"branch "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+t+'"']},e}},merge:function(t,e,r,a){t=i.e.sanitizeText(t,(0,i.c)()),e=i.e.sanitizeText(e,(0,i.c)());let c=o[m[u]],s=o[m[t]];if(u===t){let e=Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},e}if(void 0!==c&&c){if(void 0===m[t]){let e=Error('Incorrect usage of "merge". Branch to be merged ('+t+") does not exist");throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch "+t]},e}if(void 0!==s&&s){if(c===s){let e=Error('Incorrect usage of "merge". Both branches have same head');throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},e}if(e&&void 0!==o[e]){let i=Error('Incorrect usage of "merge". Commit with id:'+e+" already exists, use different custom Id");throw i.hash={text:"merge "+t+e+r+a,token:"merge "+t+e+r+a,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["merge "+t+" "+e+"_UNIQUE "+r+" "+a]},i}}else{let e=Error('Incorrect usage of "merge". Branch to be merged ('+t+") has no commits");throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"commit"']},e}}else{let e=Error('Incorrect usage of "merge". Current branch ('+u+")has no commits");throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["commit"]},e}let n={id:e||p+"-"+g(),message:"merged branch "+t+" into "+u,seq:p++,parents:[null==l?null:l.id,m[t]],branch:u,type:$.MERGE,customType:r,customId:!!e,tag:a||""};l=n,o[n.id]=n,m[u]=n.id,i.l.debug(m),i.l.debug("in mergeBranch")},cherryPick:function(t,e,r){if(i.l.debug("Entering cherryPick:",t,e,r),t=i.e.sanitizeText(t,(0,i.c)()),e=i.e.sanitizeText(e,(0,i.c)()),r=i.e.sanitizeText(r,(0,i.c)()),!t||void 0===o[t]){let r=Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw r.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},r}let a=o[t],c=a.branch;if(a.type===$.MERGE){let r=Error('Incorrect usage of "cherryPick". Source commit should not be a merge commit');throw r.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},r}if(!e||void 0===o[e]){if(c===u){let r=Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw r.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},r}let s=o[m[u]];if(void 0===s||!s){let r=Error('Incorrect usage of "cherry-pick". Current branch ('+u+")has no commits");throw r.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},r}let n={id:p+"-"+g(),message:"cherry-picked "+a+" into "+u,seq:p++,parents:[null==l?null:l.id,a.id],branch:u,type:$.CHERRY_PICK,tag:r??"cherry-pick:"+a.id};l=n,o[n.id]=n,m[u]=n.id,i.l.debug(m),i.l.debug("in cherryPick")}},checkout:d,prettyPrint:function(){i.l.debug(o),function t(e){let r=e.reduce((t,e)=>t.seq>e.seq?t:e,e[0]),a="";e.forEach(function(t){t===r?a+=" *":a+=" |"});let c=[a,r.id,r.seq];for(let t in m)m[t]===r.id&&c.push(t);if(i.l.debug(c.join(" ")),r.parents&&2==r.parents.length){let t=o[r.parents[0]];f(e,r,t),e.push(o[r.parents[1]])}else{if(0==r.parents.length)return;let t=o[r.parents];f(e,r,t)}t(e=function(t,e){let r=Object.create(null);return t.reduce((t,i)=>{let a=e(i);return r[a]||(r[a]=!0,t.push(i)),t},[])}(e,t=>t.id))}([k()[0]])},clear:function(){o={},l=null;let t=(0,i.c)().gitGraph.mainBranchName,e=(0,i.c)().gitGraph.mainBranchOrder;(m={})[t]=null,(h={})[t]={name:t,order:e},u=t,p=0,(0,i.v)()},getBranchesAsObjArray:function(){return Object.values(h).map((t,e)=>null!==t.order?t:{...t,order:parseFloat(`0.${e}`,10)}).sort((t,e)=>t.order-e.order).map(({name:t})=>({name:t}))},getBranches:function(){return m},getCommits:function(){return o},getCommitsArray:k,getCurrentBranch:function(){return u},getDirection:function(){return y},getHead:function(){return l},setAccTitle:i.s,getAccTitle:i.g,getAccDescription:i.a,setAccDescription:i.b,setDiagramTitle:i.r,getDiagramTitle:i.t,commitType:$},x={},E={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},v={},T={},w=[],L=0,R="LR",M=()=>{v={},T={},x={},L=0,w=[],R="LR"},I=t=>{let e=document.createElementNS("http://www.w3.org/2000/svg","text");for(let r of"string"==typeof t?t.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(t)?t:[]){let t=document.createElementNS("http://www.w3.org/2000/svg","tspan");t.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),t.setAttribute("dy","1em"),t.setAttribute("x","0"),t.setAttribute("class","row"),t.textContent=r.trim(),e.appendChild(t)}return e},A=(t,e,r)=>{let a=(0,i.z)().gitGraph,c=t.append("g").attr("class","commit-bullets"),s=t.append("g").attr("class","commit-labels"),n=0;"TB"===R&&(n=30),Object.keys(e).sort((t,r)=>e[t].seq-e[r].seq).forEach(t=>{let i=e[t],o="TB"===R?n+10:v[i.branch].pos,l="TB"===R?v[i.branch].pos:n+10;if(r){let t;let e=void 0!==i.customType&&""!==i.customType?i.customType:i.type;switch(e){case E.NORMAL:t="commit-normal";break;case E.REVERSE:t="commit-reverse";break;case E.HIGHLIGHT:t="commit-highlight";break;case E.MERGE:t="commit-merge";break;case E.CHERRY_PICK:t="commit-cherry-pick";break;default:t="commit-normal"}if(e===E.HIGHLIGHT){let e=c.append("rect");e.attr("x",l-10),e.attr("y",o-10),e.attr("height",20),e.attr("width",20),e.attr("class",`commit ${i.id} commit-highlight${v[i.branch].index%8} ${t}-outer`),c.append("rect").attr("x",l-6).attr("y",o-6).attr("height",12).attr("width",12).attr("class",`commit ${i.id} commit${v[i.branch].index%8} ${t}-inner`)}else if(e===E.CHERRY_PICK)c.append("circle").attr("cx",l).attr("cy",o).attr("r",10).attr("class",`commit ${i.id} ${t}`),c.append("circle").attr("cx",l-3).attr("cy",o+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${i.id} ${t}`),c.append("circle").attr("cx",l+3).attr("cy",o+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${i.id} ${t}`),c.append("line").attr("x1",l+3).attr("y1",o+1).attr("x2",l).attr("y2",o-5).attr("stroke","#fff").attr("class",`commit ${i.id} ${t}`),c.append("line").attr("x1",l-3).attr("y1",o+1).attr("x2",l).attr("y2",o-5).attr("stroke","#fff").attr("class",`commit ${i.id} ${t}`);else{let r=c.append("circle");if(r.attr("cx",l),r.attr("cy",o),r.attr("r",i.type===E.MERGE?9:10),r.attr("class",`commit ${i.id} commit${v[i.branch].index%8}`),e===E.MERGE){let e=c.append("circle");e.attr("cx",l),e.attr("cy",o),e.attr("r",6),e.attr("class",`commit ${t} ${i.id} commit${v[i.branch].index%8}`)}e===E.REVERSE&&c.append("path").attr("d",`M ${l-5},${o-5}L${l+5},${o+5}M${l-5},${o+5}L${l+5},${o-5}`).attr("class",`commit ${t} ${i.id} commit${v[i.branch].index%8}`)}}if("TB"===R?T[i.id]={x:l,y:n+10}:T[i.id]={x:n+10,y:o},r){if(i.type!==E.CHERRY_PICK&&(i.customId&&i.type===E.MERGE||i.type!==E.MERGE)&&a.showCommitLabel){let t=s.append("g"),e=t.insert("rect").attr("class","commit-label-bkg"),r=t.append("text").attr("x",n).attr("y",o+25).attr("class","commit-label").text(i.id),c=r.node().getBBox();if(e.attr("x",n+10-c.width/2-2).attr("y",o+13.5).attr("width",c.width+4).attr("height",c.height+4),"TB"===R&&(e.attr("x",l-(c.width+16+5)).attr("y",o-12),r.attr("x",l-(c.width+16)).attr("y",o+c.height-12)),"TB"!==R&&r.attr("x",n+10-c.width/2),a.rotateCommitLabel){if("TB"===R)r.attr("transform","rotate(-45, "+l+", "+o+")"),e.attr("transform","rotate(-45, "+l+", "+o+")");else{let e=-7.5-(c.width+10)/25*9.5,r=10+c.width/25*8.5;t.attr("transform","translate("+e+", "+r+") rotate(-45, "+n+", "+o+")")}}}if(i.tag){let t=s.insert("polygon"),e=s.append("circle"),r=s.append("text").attr("y",o-16).attr("class","tag-label").text(i.tag),a=r.node().getBBox();r.attr("x",n+10-a.width/2);let c=a.height/2,h=o-19.2;t.attr("class","tag-label-bkg").attr("points",` - ${n-a.width/2-2},${h+2} - ${n-a.width/2-2},${h-2} - ${n+10-a.width/2-4},${h-c-2} - ${n+10+a.width/2+4},${h-c-2} - ${n+10+a.width/2+4},${h+c+2} - ${n+10-a.width/2-4},${h+c+2}`),e.attr("cx",n-a.width/2+2).attr("cy",h).attr("r",1.5).attr("class","tag-hole"),"TB"===R&&(t.attr("class","tag-label-bkg").attr("points",` - ${l},${n+2} - ${l},${n-2} - ${l+10},${n-c-2} - ${l+10+a.width+4},${n-c-2} - ${l+10+a.width+4},${n+c+2} - ${l+10},${n+c+2}`).attr("transform","translate(12,12) rotate(45, "+l+","+n+")"),e.attr("cx",l+2).attr("cy",n).attr("transform","translate(12,12) rotate(45, "+l+","+n+")"),r.attr("x",l+5).attr("y",n+3).attr("transform","translate(14,14) rotate(45, "+l+","+n+")"))}}(n+=50)>L&&(L=n)})},C=(t,e,r)=>Object.keys(r).filter(i=>r[i].branch===e.branch&&r[i].seq>t.seq&&r[i].seq<e.seq).length>0,O=(t,e,r=0)=>{let i=t+Math.abs(t-e)/2;if(r>5)return i;if(w.every(t=>Math.abs(t-i)>=10))return w.push(i),i;let a=Math.abs(t-e);return O(t,e-a/5,r+1)},S=(t,e,r,i)=>{let a;let c=T[e.id],s=T[r.id],n=C(e,r,i),o="",l="",h=0,m=0,u=v[r.branch].index;if(n){o="A 10 10, 0, 0, 0,",l="A 10 10, 0, 0, 1,",h=10,m=10,u=v[r.branch].index;let t=c.y<s.y?O(c.y,s.y):O(s.y,c.y),e=c.x<s.x?O(c.x,s.x):O(s.x,c.x);a="TB"===R?c.x<s.x?`M ${c.x} ${c.y} L ${e-h} ${c.y} ${l} ${e} ${c.y+m} L ${e} ${s.y-h} ${o} ${e+m} ${s.y} L ${s.x} ${s.y}`:`M ${c.x} ${c.y} L ${e+h} ${c.y} ${o} ${e} ${c.y+m} L ${e} ${s.y-h} ${l} ${e-m} ${s.y} L ${s.x} ${s.y}`:c.y<s.y?`M ${c.x} ${c.y} L ${c.x} ${t-h} ${o} ${c.x+m} ${t} L ${s.x-h} ${t} ${l} ${s.x} ${t+m} L ${s.x} ${s.y}`:`M ${c.x} ${c.y} L ${c.x} ${t+h} ${l} ${c.x+m} ${t} L ${s.x-h} ${t} ${o} ${s.x} ${t-m} L ${s.x} ${s.y}`}else"TB"===R?(c.x<s.x&&(o="A 20 20, 0, 0, 0,",l="A 20 20, 0, 0, 1,",h=20,m=20,u=v[r.branch].index,a=`M ${c.x} ${c.y} L ${s.x-h} ${c.y} ${l} ${s.x} ${c.y+m} L ${s.x} ${s.y}`),c.x>s.x&&(o="A 20 20, 0, 0, 0,",l="A 20 20, 0, 0, 1,",h=20,m=20,u=v[e.branch].index,a=`M ${c.x} ${c.y} L ${c.x} ${s.y-h} ${l} ${c.x-m} ${s.y} L ${s.x} ${s.y}`),c.x===s.x&&(u=v[e.branch].index,a=`M ${c.x} ${c.y} L ${c.x+h} ${c.y} ${o} ${c.x+m} ${s.y+h} L ${s.x} ${s.y}`)):(c.y<s.y&&(o="A 20 20, 0, 0, 0,",h=20,m=20,u=v[r.branch].index,a=`M ${c.x} ${c.y} L ${c.x} ${s.y-h} ${o} ${c.x+m} ${s.y} L ${s.x} ${s.y}`),c.y>s.y&&(o="A 20 20, 0, 0, 0,",h=20,m=20,u=v[e.branch].index,a=`M ${c.x} ${c.y} L ${s.x-h} ${c.y} ${o} ${s.x} ${c.y-m} L ${s.x} ${s.y}`),c.y===s.y&&(u=v[e.branch].index,a=`M ${c.x} ${c.y} L ${c.x} ${s.y-h} ${o} ${c.x+m} ${s.y} L ${s.x} ${s.y}`));t.append("path").attr("d",a).attr("class","arrow arrow"+u%8)},G=(t,e)=>{let r=t.append("g").attr("class","commit-arrows");Object.keys(e).forEach(t=>{let i=e[t];i.parents&&i.parents.length>0&&i.parents.forEach(t=>{S(r,e[t],i,e)})})},P=(t,e)=>{let r=(0,i.z)().gitGraph,a=t.append("g");e.forEach((t,e)=>{let i=e%8,c=v[t.name].pos,s=a.append("line");s.attr("x1",0),s.attr("y1",c),s.attr("x2",L),s.attr("y2",c),s.attr("class","branch branch"+i),"TB"===R&&(s.attr("y1",30),s.attr("x1",c),s.attr("y2",L),s.attr("x2",c)),w.push(c);let n=I(t.name),o=a.insert("rect"),l=a.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+i);l.node().appendChild(n);let h=n.getBBox();o.attr("class","branchLabelBkg label"+i).attr("rx",4).attr("ry",4).attr("x",-h.width-4-(!0===r.rotateCommitLabel?30:0)).attr("y",-h.height/2+8).attr("width",h.width+18).attr("height",h.height+4),l.attr("transform","translate("+(-h.width-14-(!0===r.rotateCommitLabel?30:0))+", "+(c-h.height/2-1)+")"),"TB"===R&&(o.attr("x",c-h.width/2-10).attr("y",0),l.attr("transform","translate("+(c-h.width/2-5)+", 0)")),"TB"!==R&&o.attr("transform","translate(-19, "+(c-h.height/2)+")")})},B={parser:c,db:_,renderer:{draw:function(t,e,r,c){M();let s=(0,i.z)(),n=s.gitGraph;i.l.debug("in gitgraph renderer",t+"\n","id:",e,r),x=c.db.getCommits();let o=c.db.getBranchesAsObjArray();R=c.db.getDirection();let l=(0,a.Ltv)(`[id="${e}"]`),h=0;o.forEach((t,e)=>{let r=I(t.name),i=l.append("g"),a=i.insert("g").attr("class","branchLabel"),c=a.insert("g").attr("class","label branch-label");c.node().appendChild(r);let s=r.getBBox();v[t.name]={pos:h,index:e},h+=50+(n.rotateCommitLabel?40:0)+("TB"===R?s.width/2:0),c.remove(),a.remove(),i.remove()}),A(l,x,!1),n.showBranches&&P(l,o),G(l,x),A(l,x,!0),i.u.insertTitle(l,"gitTitleText",n.titleTopMargin,c.db.getDiagramTitle()),(0,i.A)(void 0,l,n.diagramPadding,n.useMaxWidth??s.useMaxWidth)}},styles:t=>` - .commit-id, - .commit-msg, - .branch-label { - fill: lightgrey; - color: lightgrey; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - } - ${[0,1,2,3,4,5,6,7].map(e=>` - .branch-label${e} { fill: ${t["gitBranchLabel"+e]}; } - .commit${e} { stroke: ${t["git"+e]}; fill: ${t["git"+e]}; } - .commit-highlight${e} { stroke: ${t["gitInv"+e]}; fill: ${t["gitInv"+e]}; } - .label${e} { fill: ${t["git"+e]}; } - .arrow${e} { stroke: ${t["git"+e]}; } - `).join("\n")} - - .branch { - stroke-width: 1; - stroke: ${t.lineColor}; - stroke-dasharray: 2; - } - .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelColor};} - .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelBackground}; opacity: 0.5; } - .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};} - .tag-label-bkg { fill: ${t.tagLabelBackground}; stroke: ${t.tagLabelBorder}; } - .tag-hole { fill: ${t.textColor}; } - - .commit-merge { - stroke: ${t.primaryColor}; - fill: ${t.primaryColor}; - } - .commit-reverse { - stroke: ${t.primaryColor}; - fill: ${t.primaryColor}; - stroke-width: 3; - } - .commit-highlight-outer { - } - .commit-highlight-inner { - stroke: ${t.primaryColor}; - fill: ${t.primaryColor}; - } - - .arrow { stroke-width: 8; stroke-linecap: round; fill: none} - .gitTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${t.textColor}; - } -`}}}]); \ No newline at end of file diff --git a/assets/js/4994aa22.72b9e5ff.js b/assets/js/4994aa22.72b9e5ff.js deleted file mode 100644 index f8a0a909c0..0000000000 --- a/assets/js/4994aa22.72b9e5ff.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[38431],{59096:(e,s,a)=>{a.d(s,{A:()=>t});let t=a.p+"assets/files/docusaurus-asset-example-93ea653de6d8636f7254aecab1adbcce.docx"},76665:(e,s,a)=>{a.d(s,{A:()=>t});let t=a.p+"assets/files/docusaurus-asset-example-93ea653de6d8636f7254aecab1adbcce.docx"},15995:(e,s,a)=>{a.d(s,{A:()=>r});var t=a(62540);a(63696);var n=a(11750);function r({children:e,hidden:s,className:a}){return(0,t.jsx)("div",{role:"tabpanel",className:(0,n.A)("tabItem_pnkT",a),hidden:s,children:e})}},27446:(e,s,a)=>{a.d(s,{A:()=>y});var t=a(62540),n=a(63696),r=a(11750),l=a(7846),i=a(49519),c=a(96439),o=a(19739),u=a(66904),d=a(79244);function h(e){var s,a;return null!==(a=null===(s=n.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,n.isValidElement)(e)&&function(e){let{props:s}=e;return!!s&&"object"==typeof s&&"value"in s}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===s?void 0:s.filter(Boolean))&&void 0!==a?a:[]}function m({value:e,tabValues:s}){return s.some(s=>s.value===e)}var p=a(10709);function g(e){for(var s=1;s<arguments.length;s++){var a=null!=arguments[s]?arguments[s]:{},t=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(a).filter(function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.forEach(function(s){var t;t=a[s],s in e?Object.defineProperty(e,s,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[s]=t})}return e}function f(e,s){return s=null!=s?s:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):(function(e,s){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a.push.apply(a,t)}return a})(Object(s)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(s,a))}),e}function b({className:e,block:s,selectedValue:a,selectValue:n,tabValues:i}){let c=[],{blockElementScrollPositionUntilNextRender:o}=(0,l.a_)(),u=e=>{let s=e.currentTarget,t=i[c.indexOf(s)].value;t!==a&&(o(s),n(t))},d=e=>{var s,a;let t=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let a=c.indexOf(e.currentTarget)+1;t=null!==(s=c[a])&&void 0!==s?s:c[0];break}case"ArrowLeft":{let s=c.indexOf(e.currentTarget)-1;t=null!==(a=c[s])&&void 0!==a?a:c[c.length-1]}}null==t||t.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":s},e),children:i.map(({value:e,label:s,attributes:n})=>(0,t.jsx)("li",f(g({role:"tab",tabIndex:a===e?0:-1,"aria-selected":a===e,ref:e=>c.push(e),onKeyDown:d,onClick:u},n),{className:(0,r.A)("tabs__item","tabItem_AQgk",null==n?void 0:n.className,{"tabs__item--active":a===e}),children:null!=s?s:e}),e))})}function x({lazy:e,children:s,selectedValue:a}){let l=(Array.isArray(s)?s:[s]).filter(Boolean);if(e){let e=l.find(e=>e.props.value===a);return e?(0,n.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:l.map((e,s)=>(0,n.cloneElement)(e,{key:s,hidden:e.props.value!==a}))})}function j(e){let s=function(e){let{defaultValue:s,queryString:a=!1,groupId:t}=e,r=function(e){let{values:s,children:a}=e;return(0,n.useMemo)(()=>{let e=null!=s?s:h(a).map(({props:{value:e,label:s,attributes:a,default:t}})=>({value:e,label:s,attributes:a,default:t}));return!function(e){let s=(0,u.XI)(e,(e,s)=>e.value===s.value);if(s.length>0)throw Error(`Docusaurus error: Duplicate values "${s.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[s,a])}(e),[l,p]=(0,n.useState)(()=>(function({defaultValue:e,tabValues:s}){var a;if(0===s.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!m({value:e,tabValues:s}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${s.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let t=null!==(a=s.find(e=>e.default))&&void 0!==a?a:s[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:s,tabValues:r})),[g,f]=function({queryString:e=!1,groupId:s}){let a=(0,i.W6)(),t=function({queryString:e=!1,groupId:s}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!s)throw Error('Docusaurus error: The <Tabs> 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 null!=s?s:null}({queryString:e,groupId:s});return[(0,o.aZ)(t),(0,n.useCallback)(e=>{var s,n;if(!t)return;let r=new URLSearchParams(a.location.search);r.set(t,e),a.replace((s=function(e){for(var s=1;s<arguments.length;s++){var a=null!=arguments[s]?arguments[s]:{},t=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(a).filter(function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.forEach(function(s){var t;t=a[s],s in e?Object.defineProperty(e,s,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[s]=t})}return e}({},a.location),n=n={search:r.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(n)):(function(e,s){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a.push.apply(a,t)}return a})(Object(n)).forEach(function(e){Object.defineProperty(s,e,Object.getOwnPropertyDescriptor(n,e))}),s))},[t,a])]}({queryString:a,groupId:t}),[b,x]=function({groupId:e}){let s=e?`docusaurus.tab.${e}`:null,[a,t]=(0,d.Dv)(s);return[a,(0,n.useCallback)(e=>{s&&t.set(e)},[s,t])]}({groupId:t}),j=(()=>{let e=null!=g?g:b;return m({value:e,tabValues:r})?e:null})();return(0,c.A)(()=>{j&&p(j)},[j]),{selectedValue:l,selectValue:(0,n.useCallback)(e=>{if(!m({value:e,tabValues:r}))throw Error(`Can't select invalid tab value=${e}`);p(e),f(e),x(e)},[f,x,r]),tabValues:r}}(e);return(0,t.jsxs)("div",{className:(0,r.A)("tabs-container","tabList_Qoir"),children:[(0,t.jsx)(b,g({},s,e)),(0,t.jsx)(x,g({},s,e))]})}function y(e){let s=(0,p.A)();return(0,t.jsx)(j,f(g({},e),{children:h(e.children)}),String(s))}},70361:(e,s,a)=>{a.d(s,{A:()=>i});var t=a(62540);a(63696);var n=a(11750);let r="dot_giz1",l="bar_rrRL";function i({children:e,minHeight:s,url:a="http://localhost:3000",style:i,bodyStyle:c}){var o,u;return(0,t.jsxs)("div",{className:"browserWindow_my1Q",style:(o=function(e){for(var s=1;s<arguments.length;s++){var a=null!=arguments[s]?arguments[s]:{},t=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(a).filter(function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.forEach(function(s){var t;t=a[s],s in e?Object.defineProperty(e,s,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[s]=t})}return e}({},i),u=u={minHeight:s},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(u)):(function(e,s){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a.push.apply(a,t)}return a})(Object(u)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(u,e))}),o),children:[(0,t.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,t.jsxs)("div",{className:"buttons_uHc7",children:[(0,t.jsx)("span",{className:r,style:{background:"#f25f58"}}),(0,t.jsx)("span",{className:r,style:{background:"#fbbe3c"}}),(0,t.jsx)("span",{className:r,style:{background:"#58cb42"}})]}),(0,t.jsx)("div",{className:(0,n.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:a}),(0,t.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:l}),(0,t.jsx)("span",{className:l}),(0,t.jsx)("span",{className:l})]})})]}),(0,t.jsx)("div",{className:"browserWindowBody_Idgs",style:c,children:e})]})}},95631:(e,s,a)=>{a.d(s,{A:()=>t});let t=a.p+"assets/images/docusaurus-asset-example-banner-63decf1180b7949f4c3d0f7b7ecfd162.png"},15911:(e,s,a)=>{a.d(s,{A:()=>t});let t=a.p+"assets/images/docusaurus_keytar-0cb85c4468d358b2028c7ab2a38aa3ff.svg"},2254:(e,s,a)=>{a.d(s,{A:()=>t});let t=a.p+"assets/images/docusaurus_speed-3cf95ee960d17fd7f1d2714e0d7525b2.svg"},86275:(e,s,a)=>{a.r(s),a.d(s,{assets:()=>b,contentTitle:()=>f,default:()=>y,frontMatter:()=>g,metadata:()=>t,toc:()=>x});let t=JSON.parse('{"id":"guides/markdown-features/assets","title":"Assets","description":"Handling assets in Docusaurus Markdown","source":"@site/docs/guides/markdown-features/markdown-features-assets.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/assets","permalink":"/docs/markdown-features/assets","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-assets.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"assets","description":"Handling assets in Docusaurus Markdown","slug":"/markdown-features/assets"},"sidebar":"docs","previous":{"title":"Headings and Table of contents","permalink":"/docs/markdown-features/toc"},"next":{"title":"Markdown links","permalink":"/docs/markdown-features/links"}}');var n,r=a(62540),l=a(43023),i=a(70361),c=a(27446),o=a(15995),u=a(63696);function d(){return(d=Object.assign?Object.assign.bind():function(e){for(var s=1;s<arguments.length;s++){var a=arguments[s];for(var t in a)({}).hasOwnProperty.call(a,t)&&(e[t]=a[t])}return e}).apply(null,arguments)}let h=e=>{let{title:s,titleId:a,...t}=e;return u.createElement("svg",d({xmlns:"http://www.w3.org/2000/svg",width:200,height:200,viewBox:"0 0 200 200","aria-labelledby":a},t),s?u.createElement("title",{id:a},s):null,n||(n=u.createElement("g",{fill:"none",fillRule:"evenodd"},u.createElement("path",{fill:"#FFF",d:"M99 52h84v34H99z"}),u.createElement("path",{fill:"#3ECC5F",d:"M23 163c-7.398 0-13.843-4.027-17.303-10A19.9 19.9 0 0 0 3 163c0 11.046 8.954 20 20 20h20v-20z"}),u.createElement("path",{fill:"#3ECC5F",d:"M112.98 57.376 183 53V43c0-11.046-8.954-20-20-20H73l-2.5-4.33c-1.112-1.925-3.889-1.925-5 0L63 23l-2.5-4.33c-1.111-1.925-3.889-1.925-5 0L53 23l-2.5-4.33c-1.111-1.925-3.889-1.925-5 0L43 23q-.032.002-.065.003l-4.142-4.141c-1.57-1.571-4.252-.853-4.828 1.294l-1.369 5.104-5.192-1.392c-2.148-.575-4.111 1.389-3.535 3.536l1.39 5.193-5.102 1.367c-2.148.576-2.867 3.259-1.296 4.83l4.142 4.142q-.002.031-.003.064l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 53l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 63l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 73l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 83l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 93l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 103l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 113l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 123l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 133l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 143l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 153l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 163c0 11.046 8.954 20 20 20h120c11.046 0 20-8.954 20-20V83l-70.02-4.376A10.645 10.645 0 0 1 103 68c0-5.621 4.37-10.273 9.98-10.624"}),u.createElement("path",{fill:"#3ECC5F",d:"M143 183h30v-40h-30z"}),u.createElement("path",{fill:"#44D860",d:"M193 158c-.219 0-.428.037-.639.064q-.055-.225-.116-.451A5 5 0 0 0 190.32 148a4.96 4.96 0 0 0-3.016 1.036 27 27 0 0 0-.335-.336 4.96 4.96 0 0 0 1.011-2.987 5 5 0 0 0-9.599-1.959c-.148-.042-.297-.077-.445-.115.027-.211.064-.42.064-.639a5 5 0 0 0-5-5 5 5 0 0 0-5 5c0 .219.037.428.064.639-.148.038-.297.073-.445.115a4.998 4.998 0 0 0-9.599 1.959c0 1.125.384 2.151 1.011 2.987-3.717 3.632-6.031 8.693-6.031 14.3 0 11.046 8.954 20 20 20 9.339 0 17.16-6.41 19.361-15.064.211.027.42.064.639.064a5 5 0 0 0 5-5 5 5 0 0 0-5-5"}),u.createElement("path",{fill:"#3ECC5F",d:"M153 123h30v-20h-30z"}),u.createElement("path",{fill:"#44D860",d:"M193 115.5a2.5 2.5 0 1 0 0-5c-.109 0-.214.019-.319.032q-.028-.113-.058-.225a2.501 2.501 0 0 0-.963-4.807c-.569 0-1.088.197-1.508.518a7 7 0 0 0-.168-.168c.314-.417.506-.931.506-1.494a2.5 2.5 0 0 0-4.8-.979A10 10 0 0 0 183 103c-5.522 0-10 4.478-10 10s4.478 10 10 10c.934 0 1.833-.138 2.69-.377a2.5 2.5 0 0 0 4.8-.979c0-.563-.192-1.077-.506-1.494q.085-.083.168-.168c.42.321.939.518 1.508.518a2.5 2.5 0 0 0 .963-4.807q.03-.112.058-.225c.105.013.21.032.319.032"}),u.createElement("path",{fill:"#000",d:"M63 55.5a2.5 2.5 0 0 1-2.5-2.5c0-4.136-3.364-7.5-7.5-7.5s-7.5 3.364-7.5 7.5a2.5 2.5 0 1 1-5 0c0-6.893 5.607-12.5 12.5-12.5S65.5 46.107 65.5 53a2.5 2.5 0 0 1-2.5 2.5"}),u.createElement("path",{fill:"#FFFF50",d:"M103 183h60c11.046 0 20-8.954 20-20V93h-60c-11.046 0-20 8.954-20 20z"}),u.createElement("path",{fill:"#000",d:"M168.02 124h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0-49.814h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 19.814h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2M183 61.611c-.012 0-.022-.006-.034-.005-3.09.105-4.552 3.196-5.842 5.923-1.346 2.85-2.387 4.703-4.093 4.647-1.889-.068-2.969-2.202-4.113-4.46-1.314-2.594-2.814-5.536-5.963-5.426-3.046.104-4.513 2.794-5.807 5.167-1.377 2.528-2.314 4.065-4.121 3.994-1.927-.07-2.951-1.805-4.136-3.813-1.321-2.236-2.848-4.75-5.936-4.664-2.994.103-4.465 2.385-5.763 4.4-1.373 2.13-2.335 3.428-4.165 3.351-1.973-.07-2.992-1.51-4.171-3.177-1.324-1.873-2.816-3.993-5.895-3.89-2.928.1-4.399 1.97-5.696 3.618-1.232 1.564-2.194 2.802-4.229 2.724a1 1 0 0 0-.072 2c3.017.101 4.545-1.8 5.872-3.487 1.177-1.496 2.193-2.787 4.193-2.855 1.926-.082 2.829 1.115 4.195 3.045 1.297 1.834 2.769 3.914 5.731 4.021 3.103.104 4.596-2.215 5.918-4.267 1.182-1.834 2.202-3.417 4.15-3.484 1.793-.067 2.769 1.35 4.145 3.681 1.297 2.197 2.766 4.686 5.787 4.796 3.125.108 4.634-2.62 5.949-5.035 1.139-2.088 2.214-4.06 4.119-4.126 1.793-.042 2.728 1.595 4.111 4.33 1.292 2.553 2.757 5.445 5.825 5.556l.169.003c3.064 0 4.518-3.075 5.805-5.794 1.139-2.41 2.217-4.68 4.067-4.773z"}),u.createElement("path",{fill:"#3ECC5F",d:"M83 183h40v-40H83z"}),u.createElement("path",{fill:"#44D860",d:"M143 158c-.219 0-.428.037-.639.064-.038-.15-.074-.301-.116-.451A5 5 0 0 0 140.32 148a4.96 4.96 0 0 0-3.016 1.036 27 27 0 0 0-.335-.336 4.96 4.96 0 0 0 1.011-2.987 5 5 0 0 0-9.599-1.959c-.148-.042-.297-.077-.445-.115.027-.211.064-.42.064-.639a5 5 0 0 0-5-5 5 5 0 0 0-5 5c0 .219.037.428.064.639-.148.038-.297.073-.445.115a4.998 4.998 0 0 0-9.599 1.959c0 1.125.384 2.151 1.011 2.987-3.717 3.632-6.031 8.693-6.031 14.3 0 11.046 8.954 20 20 20 9.339 0 17.16-6.41 19.361-15.064.211.027.42.064.639.064a5 5 0 0 0 5-5 5 5 0 0 0-5-5"}),u.createElement("path",{fill:"#3ECC5F",d:"M83 123h40v-20H83z"}),u.createElement("path",{fill:"#44D860",d:"M133 115.5a2.5 2.5 0 1 0 0-5c-.109 0-.214.019-.319.032q-.028-.113-.058-.225a2.501 2.501 0 0 0-.963-4.807c-.569 0-1.088.197-1.508.518a7 7 0 0 0-.168-.168c.314-.417.506-.931.506-1.494a2.5 2.5 0 0 0-4.8-.979A10 10 0 0 0 123 103c-5.522 0-10 4.478-10 10s4.478 10 10 10c.934 0 1.833-.138 2.69-.377a2.5 2.5 0 0 0 4.8-.979c0-.563-.192-1.077-.506-1.494q.085-.083.168-.168c.42.321.939.518 1.508.518a2.5 2.5 0 0 0 .963-4.807q.03-.112.058-.225c.105.013.21.032.319.032"}),u.createElement("path",{fill:"#000",d:"M143 41.75c-.16 0-.33-.02-.49-.05a2.5 2.5 0 0 1-.47-.14c-.15-.06-.29-.14-.431-.23-.13-.09-.259-.2-.38-.31-.109-.12-.219-.24-.309-.38s-.17-.28-.231-.43a2.6 2.6 0 0 1-.189-.96c0-.16.02-.33.05-.49s.08-.31.139-.47c.061-.15.141-.29.231-.43.09-.13.2-.26.309-.38.121-.11.25-.22.38-.31.141-.09.281-.17.431-.23s.31-.11.47-.14c.32-.07.65-.07.98 0 .159.03.32.08.47.14s.29.14.43.23c.13.09.259.2.38.31.11.12.22.25.31.38.09.14.17.28.23.43.06.16.11.31.14.47.029.16.05.33.05.49 0 .66-.271 1.31-.73 1.77-.121.11-.25.22-.38.31-.14.09-.281.17-.43.23a2.6 2.6 0 0 1-.96.19m20-1.25c-.66 0-1.3-.27-1.771-.73a4 4 0 0 1-.309-.38c-.09-.14-.17-.28-.231-.43a2.6 2.6 0 0 1-.189-.96c0-.66.27-1.3.729-1.77.121-.11.25-.22.38-.31.141-.09.281-.17.431-.23s.31-.11.47-.14c.32-.07.66-.07.98 0 .159.03.32.08.47.14s.29.14.43.23c.13.09.259.2.38.31.459.47.73 1.11.73 1.77 0 .16-.021.33-.05.49s-.08.32-.14.47c-.07.15-.14.29-.23.43-.09.13-.2.26-.31.38-.121.11-.25.22-.38.31-.14.09-.281.17-.43.23a2.6 2.6 0 0 1-.96.19"}))))};var m=a(27167),p=a(35688);let g={id:"assets",description:"Handling assets in Docusaurus Markdown",slug:"/markdown-features/assets"},f="Assets",b={},x=[{value:"Images",id:"images",level:2},{value:"Files",id:"files",level:2},{value:"Inline SVGs",id:"inline-svgs",level:2},{value:"Themed Images",id:"themed-images",level:2},{value:"GitHub-style themed images",id:"github-style-themed-images",level:3},{value:"Static assets",id:"static-assets",level:2}];function j(e){let s={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",...(0,l.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.header,{children:(0,r.jsx)(s.h1,{id:"assets",children:"Assets"})}),"\n","\n",(0,r.jsx)(s.p,{children:"Sometimes you want to link to assets (e.g. docx files, images...) directly from Markdown files, and it is convenient to co-locate the asset next to the Markdown file using it."}),"\n",(0,r.jsx)(s.p,{children:"Let's imagine the following file structure:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{children:"# Your doc\n/website/docs/myFeature.mdx\n\n# Some assets you want to use\n/website/docs/assets/docusaurus-asset-example-banner.png\n/website/docs/assets/docusaurus-asset-example.docx\n"})}),"\n",(0,r.jsx)(s.h2,{id:"images",children:"Images"}),"\n",(0,r.jsx)(s.p,{children:"You can display images in three different ways: Markdown syntax, CJS require, or ES imports syntax."}),"\n",(0,r.jsxs)(c.A,{children:[(0,r.jsxs)(o.A,{value:"Markdown syntax",children:[(0,r.jsx)(s.p,{children:"Display images using simple Markdown syntax:"}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-md",children:"![Example banner](./assets/docusaurus-asset-example-banner.png)\n"})})]}),(0,r.jsxs)(o.A,{value:"CommonJS require",children:[(0,r.jsxs)(s.p,{children:["Display images using inline CommonJS ",(0,r.jsx)(s.code,{children:"require"})," in JSX image tag:"]}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-jsx",children:"<img\n src={require('./assets/docusaurus-asset-example-banner.png').default}\n alt=\"Example banner\"\n/>\n"})})]}),(0,r.jsxs)(o.A,{value:"Import statement",children:[(0,r.jsxs)(s.p,{children:["Display images using ES ",(0,r.jsx)(s.code,{children:"import"})," syntax and JSX image tag:"]}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-jsx",children:"import myImageUrl from './assets/docusaurus-asset-example-banner.png';\n\n<img src={myImageUrl} alt=\"Example banner\" />;\n"})})]})]}),"\n",(0,r.jsx)(s.p,{children:"All of the above result in displaying the image:"}),"\n",(0,r.jsx)(i.A,{children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.img,{alt:"My image alternative text",src:a(95631).A+"",width:"422",height:"110"})})}),"\n",(0,r.jsx)(s.admonition,{type:"note",children:(0,r.jsxs)(s.p,{children:["If you are using ",(0,r.jsx)(s.a,{href:"/docs/api/plugins/@docusaurus/plugin-ideal-image",children:"@docusaurus/plugin-ideal-image"}),", you need to use the dedicated image component, as documented."]})}),"\n",(0,r.jsx)(s.h2,{id:"files",children:"Files"}),"\n",(0,r.jsxs)(s.p,{children:["In the same way, you can link to existing assets by ",(0,r.jsx)(s.code,{children:"require"}),"'ing them and using the returned URL in ",(0,r.jsx)(s.code,{children:"video"}),"s, ",(0,r.jsx)(s.code,{children:"a"})," anchor links, etc."]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-md",children:"# My Markdown page\n\n<a target=\"\\_blank\" href={require('./assets/docusaurus-asset-example.docx').default}> Download this docx </a>\n\nor\n\n[Download this docx using Markdown](./assets/docusaurus-asset-example.docx)\n"})}),"\n",(0,r.jsxs)(i.A,{children:[(0,r.jsx)("a",{target:"_blank",href:a(59096).A,children:"Download this docx"}),(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(76665).A+"",children:"Download this docx using Markdown"})})]}),"\n",(0,r.jsx)(s.admonition,{title:"Markdown links are always file paths",type:"info",children:(0,r.jsxs)(s.p,{children:["If you use the Markdown image or link syntax, all asset paths will be resolved as file paths by Docusaurus and automatically converted to ",(0,r.jsx)(s.code,{children:"require()"})," calls. You don't need to use ",(0,r.jsx)(s.code,{children:"require()"})," in Markdown unless you use the JSX syntax, which you do have to handle yourself."]})}),"\n",(0,r.jsx)(s.h2,{id:"inline-svgs",children:"Inline SVGs"}),"\n",(0,r.jsx)(s.p,{children:"Docusaurus supports inlining SVGs out of the box."}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-jsx",children:"import DocusaurusSvg from './docusaurus.svg';\n\n<DocusaurusSvg />;\n"})}),"\n",(0,r.jsx)(i.A,{children:(0,r.jsx)(h,{})}),"\n",(0,r.jsx)(s.p,{children:"This can be useful if you want to alter the part of the SVG image via CSS. For example, you can change one of the SVG colors based on the current theme."}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-jsx",children:"import DocusaurusSvg from './docusaurus.svg';\n\n<DocusaurusSvg className=\"themedDocusaurus\" />;\n"})}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-css",children:"[data-theme='light'] .themedDocusaurus [fill='#FFFF50'] {\n fill: greenyellow;\n}\n\n[data-theme='dark'] .themedDocusaurus [fill='#FFFF50'] {\n fill: seagreen;\n}\n"})}),"\n",(0,r.jsx)(i.A,{children:(0,r.jsx)(h,{className:"themedDocusaurus"})}),"\n",(0,r.jsx)(s.h2,{id:"themed-images",children:"Themed Images"}),"\n",(0,r.jsxs)(s.p,{children:["Docusaurus supports themed images: the ",(0,r.jsx)(s.code,{children:"ThemedImage"})," component (included in the themes) allows you to switch the image source based on the current theme."]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-jsx",children:"import useBaseUrl from '@docusaurus/useBaseUrl';\nimport ThemedImage from '@theme/ThemedImage';\n\n<ThemedImage\n alt=\"Docusaurus themed image\"\n // highlight-start\n sources={{\n light: useBaseUrl('/img/docusaurus_light.svg'),\n dark: useBaseUrl('/img/docusaurus_dark.svg'),\n }}\n // highlight-end\n/>;\n"})}),"\n","\n",(0,r.jsx)(i.A,{children:(0,r.jsx)(p.A,{alt:"Docusaurus themed image",sources:{light:(0,m.Ay)("/img/docusaurus_keytar.svg"),dark:(0,m.Ay)("/img/docusaurus_speed.svg")}})}),"\n",(0,r.jsx)(s.h3,{id:"github-style-themed-images",children:"GitHub-style themed images"}),"\n",(0,r.jsxs)(s.p,{children:["GitHub uses its own ",(0,r.jsx)(s.a,{href:"https://github.blog/changelog/2021-11-24-specify-theme-context-for-images-in-markdown/",children:"image theming approach"})," with path fragments, which you can easily implement yourself."]}),"\n",(0,r.jsxs)(s.p,{children:["To toggle the visibility of an image using the path fragment (for GitHub, it's ",(0,r.jsx)(s.code,{children:"#gh-dark-mode-only"})," and ",(0,r.jsx)(s.code,{children:"#gh-light-mode-only"}),"), add the following to your custom CSS (you can also use your own suffix if you don't want to be coupled to GitHub):"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-css",metastring:'title="src/css/custom.css"',children:"[data-theme='light'] img[src$='#gh-dark-mode-only'],\n[data-theme='dark'] img[src$='#gh-light-mode-only'] {\n display: none;\n}\n"})}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-md",children:"![Docusaurus themed image](/img/docusaurus_keytar.svg#gh-light-mode-only)![Docusaurus themed image](/img/docusaurus_speed.svg#gh-dark-mode-only)\n"})}),"\n",(0,r.jsx)(i.A,{children:(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.img,{alt:"Docusaurus themed image",src:a(15911).A+"#gh-light-mode-only",width:"200",height:"200"}),(0,r.jsx)(s.img,{alt:"Docusaurus themed image",src:a(2254).A+"#gh-dark-mode-only",width:"250",height:"200"})]})}),"\n",(0,r.jsx)(s.h2,{id:"static-assets",children:"Static assets"}),"\n",(0,r.jsxs)(s.p,{children:["If a Markdown link or image has an absolute path, the path will be seen as a file path and will be resolved from the static directories. For example, if you have configured ",(0,r.jsx)(s.a,{href:"/docs/static-assets",children:"static directories"})," to be ",(0,r.jsx)(s.code,{children:"['public', 'static']"}),", then for the following image:"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-md",metastring:'title="my-doc.md"',children:"![An image from the static](/img/docusaurus.png)\n"})}),"\n",(0,r.jsxs)(s.p,{children:["Docusaurus will try to look for it in both ",(0,r.jsx)(s.code,{children:"static/img/docusaurus.png"})," and ",(0,r.jsx)(s.code,{children:"public/img/docusaurus.png"}),". The link will then be converted to a ",(0,r.jsx)(s.code,{children:"require()"})," call instead of staying as a URL. This is desirable in two regards:"]}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsx)(s.li,{children:"You don't have to worry about the base URL, which Docusaurus will take care of when serving the asset;"}),"\n",(0,r.jsx)(s.li,{children:"The image enters Webpack's build pipeline and its name will be appended by a hash, which enables browsers to aggressively cache the image and improves your site's performance."}),"\n"]}),"\n",(0,r.jsxs)(s.p,{children:["If you intend to write URLs, you can use the ",(0,r.jsx)(s.code,{children:"pathname://"})," protocol to disable automatic asset linking."]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-md",children:"![banner](pathname:///img/docusaurus-asset-example-banner.png)\n"})}),"\n",(0,r.jsxs)(s.p,{children:["This link will be generated as ",(0,r.jsx)(s.code,{children:'<img src="/img/docusaurus-asset-example-banner.png" alt="banner" />'}),", without any processing or file existence checking."]})]})}function y(e={}){let{wrapper:s}={...(0,l.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(j,{...e})}):j(e)}},43023:(e,s,a)=>{a.d(s,{R:()=>l,x:()=>i});var t=a(63696);let n={},r=t.createContext(n);function l(e){let s=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),t.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4994aa22.9f30ab35.js b/assets/js/4994aa22.9f30ab35.js new file mode 100644 index 0000000000..e41772a54e --- /dev/null +++ b/assets/js/4994aa22.9f30ab35.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[38431],{59096:(e,s,a)=>{a.d(s,{A:()=>t});let t=a.p+"assets/files/docusaurus-asset-example-93ea653de6d8636f7254aecab1adbcce.docx"},76665:(e,s,a)=>{a.d(s,{A:()=>t});let t=a.p+"assets/files/docusaurus-asset-example-93ea653de6d8636f7254aecab1adbcce.docx"},15995:(e,s,a)=>{a.d(s,{A:()=>r});var t=a(62540);a(63696);var n=a(11750);function r({children:e,hidden:s,className:a}){return(0,t.jsx)("div",{role:"tabpanel",className:(0,n.A)("tabItem_pnkT",a),hidden:s,children:e})}},27446:(e,s,a)=>{a.d(s,{A:()=>y});var t=a(62540),n=a(63696),r=a(11750),l=a(7846),i=a(49519),c=a(96439),o=a(19739),u=a(66904),d=a(79244);function h(e){var s,a;return null!==(a=null===(s=n.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,n.isValidElement)(e)&&function(e){let{props:s}=e;return!!s&&"object"==typeof s&&"value"in s}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===s?void 0:s.filter(Boolean))&&void 0!==a?a:[]}function m({value:e,tabValues:s}){return s.some(s=>s.value===e)}var p=a(10709);function g(e){for(var s=1;s<arguments.length;s++){var a=null!=arguments[s]?arguments[s]:{},t=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(a).filter(function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.forEach(function(s){var t;t=a[s],s in e?Object.defineProperty(e,s,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[s]=t})}return e}function f(e,s){return s=null!=s?s:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):(function(e,s){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a.push.apply(a,t)}return a})(Object(s)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(s,a))}),e}function b({className:e,block:s,selectedValue:a,selectValue:n,tabValues:i}){let c=[],{blockElementScrollPositionUntilNextRender:o}=(0,l.a_)(),u=e=>{let s=e.currentTarget,t=i[c.indexOf(s)].value;t!==a&&(o(s),n(t))},d=e=>{var s,a;let t=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let a=c.indexOf(e.currentTarget)+1;t=null!==(s=c[a])&&void 0!==s?s:c[0];break}case"ArrowLeft":{let s=c.indexOf(e.currentTarget)-1;t=null!==(a=c[s])&&void 0!==a?a:c[c.length-1]}}null==t||t.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":s},e),children:i.map(({value:e,label:s,attributes:n})=>(0,t.jsx)("li",f(g({role:"tab",tabIndex:a===e?0:-1,"aria-selected":a===e,ref:e=>c.push(e),onKeyDown:d,onClick:u},n),{className:(0,r.A)("tabs__item","tabItem_AQgk",null==n?void 0:n.className,{"tabs__item--active":a===e}),children:null!=s?s:e}),e))})}function x({lazy:e,children:s,selectedValue:a}){let l=(Array.isArray(s)?s:[s]).filter(Boolean);if(e){let e=l.find(e=>e.props.value===a);return e?(0,n.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:l.map((e,s)=>(0,n.cloneElement)(e,{key:s,hidden:e.props.value!==a}))})}function j(e){let s=function(e){let{defaultValue:s,queryString:a=!1,groupId:t}=e,r=function(e){let{values:s,children:a}=e;return(0,n.useMemo)(()=>{let e=null!=s?s:h(a).map(({props:{value:e,label:s,attributes:a,default:t}})=>({value:e,label:s,attributes:a,default:t}));return!function(e){let s=(0,u.XI)(e,(e,s)=>e.value===s.value);if(s.length>0)throw Error(`Docusaurus error: Duplicate values "${s.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[s,a])}(e),[l,p]=(0,n.useState)(()=>(function({defaultValue:e,tabValues:s}){var a;if(0===s.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!m({value:e,tabValues:s}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${s.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let t=null!==(a=s.find(e=>e.default))&&void 0!==a?a:s[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:s,tabValues:r})),[g,f]=function({queryString:e=!1,groupId:s}){let a=(0,i.W6)(),t=function({queryString:e=!1,groupId:s}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!s)throw Error('Docusaurus error: The <Tabs> 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 null!=s?s:null}({queryString:e,groupId:s});return[(0,o.aZ)(t),(0,n.useCallback)(e=>{var s,n;if(!t)return;let r=new URLSearchParams(a.location.search);r.set(t,e),a.replace((s=function(e){for(var s=1;s<arguments.length;s++){var a=null!=arguments[s]?arguments[s]:{},t=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(a).filter(function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.forEach(function(s){var t;t=a[s],s in e?Object.defineProperty(e,s,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[s]=t})}return e}({},a.location),n=n={search:r.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(n)):(function(e,s){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a.push.apply(a,t)}return a})(Object(n)).forEach(function(e){Object.defineProperty(s,e,Object.getOwnPropertyDescriptor(n,e))}),s))},[t,a])]}({queryString:a,groupId:t}),[b,x]=function({groupId:e}){let s=e?`docusaurus.tab.${e}`:null,[a,t]=(0,d.Dv)(s);return[a,(0,n.useCallback)(e=>{s&&t.set(e)},[s,t])]}({groupId:t}),j=(()=>{let e=null!=g?g:b;return m({value:e,tabValues:r})?e:null})();return(0,c.A)(()=>{j&&p(j)},[j]),{selectedValue:l,selectValue:(0,n.useCallback)(e=>{if(!m({value:e,tabValues:r}))throw Error(`Can't select invalid tab value=${e}`);p(e),f(e),x(e)},[f,x,r]),tabValues:r}}(e);return(0,t.jsxs)("div",{className:(0,r.A)("tabs-container","tabList_Qoir"),children:[(0,t.jsx)(b,g({},s,e)),(0,t.jsx)(x,g({},s,e))]})}function y(e){let s=(0,p.A)();return(0,t.jsx)(j,f(g({},e),{children:h(e.children)}),String(s))}},70361:(e,s,a)=>{a.d(s,{A:()=>i});var t=a(62540);a(63696);var n=a(11750);let r="dot_giz1",l="bar_rrRL";function i({children:e,minHeight:s,url:a="http://localhost:3000",style:i,bodyStyle:c}){var o,u;return(0,t.jsxs)("div",{className:"browserWindow_my1Q",style:(o=function(e){for(var s=1;s<arguments.length;s++){var a=null!=arguments[s]?arguments[s]:{},t=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(a).filter(function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.forEach(function(s){var t;t=a[s],s in e?Object.defineProperty(e,s,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[s]=t})}return e}({},i),u=u={minHeight:s},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(u)):(function(e,s){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a.push.apply(a,t)}return a})(Object(u)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(u,e))}),o),children:[(0,t.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,t.jsxs)("div",{className:"buttons_uHc7",children:[(0,t.jsx)("span",{className:r,style:{background:"#f25f58"}}),(0,t.jsx)("span",{className:r,style:{background:"#fbbe3c"}}),(0,t.jsx)("span",{className:r,style:{background:"#58cb42"}})]}),(0,t.jsx)("div",{className:(0,n.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:a}),(0,t.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:l}),(0,t.jsx)("span",{className:l}),(0,t.jsx)("span",{className:l})]})})]}),(0,t.jsx)("div",{className:"browserWindowBody_Idgs",style:c,children:e})]})}},95631:(e,s,a)=>{a.d(s,{A:()=>t});let t=a.p+"assets/images/docusaurus-asset-example-banner-63decf1180b7949f4c3d0f7b7ecfd162.png"},15911:(e,s,a)=>{a.d(s,{A:()=>t});let t=a.p+"assets/images/docusaurus_keytar-0cb85c4468d358b2028c7ab2a38aa3ff.svg"},2254:(e,s,a)=>{a.d(s,{A:()=>t});let t=a.p+"assets/images/docusaurus_speed-3cf95ee960d17fd7f1d2714e0d7525b2.svg"},86275:(e,s,a)=>{a.r(s),a.d(s,{assets:()=>b,contentTitle:()=>f,default:()=>y,frontMatter:()=>g,metadata:()=>t,toc:()=>x});let t=JSON.parse('{"id":"guides/markdown-features/assets","title":"Assets","description":"Handling assets in Docusaurus Markdown","source":"@site/docs/guides/markdown-features/markdown-features-assets.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/assets","permalink":"/docs/markdown-features/assets","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-assets.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"assets","description":"Handling assets in Docusaurus Markdown","slug":"/markdown-features/assets"},"sidebar":"docs","previous":{"title":"Headings and Table of contents","permalink":"/docs/markdown-features/toc"},"next":{"title":"Markdown links","permalink":"/docs/markdown-features/links"}}');var n,r=a(62540),l=a(43023),i=a(70361),c=a(27446),o=a(15995),u=a(63696);function d(){return(d=Object.assign?Object.assign.bind():function(e){for(var s=1;s<arguments.length;s++){var a=arguments[s];for(var t in a)({}).hasOwnProperty.call(a,t)&&(e[t]=a[t])}return e}).apply(null,arguments)}let h=e=>{let{title:s,titleId:a,...t}=e;return u.createElement("svg",d({xmlns:"http://www.w3.org/2000/svg",width:200,height:200,viewBox:"0 0 200 200","aria-labelledby":a},t),s?u.createElement("title",{id:a},s):null,n||(n=u.createElement("g",{fill:"none",fillRule:"evenodd"},u.createElement("path",{fill:"#FFF",d:"M99 52h84v34H99z"}),u.createElement("path",{fill:"#3ECC5F",d:"M23 163c-7.398 0-13.843-4.027-17.303-10A19.9 19.9 0 0 0 3 163c0 11.046 8.954 20 20 20h20v-20z"}),u.createElement("path",{fill:"#3ECC5F",d:"M112.98 57.376 183 53V43c0-11.046-8.954-20-20-20H73l-2.5-4.33c-1.112-1.925-3.889-1.925-5 0L63 23l-2.5-4.33c-1.111-1.925-3.889-1.925-5 0L53 23l-2.5-4.33c-1.111-1.925-3.889-1.925-5 0L43 23q-.032.002-.065.003l-4.142-4.141c-1.57-1.571-4.252-.853-4.828 1.294l-1.369 5.104-5.192-1.392c-2.148-.575-4.111 1.389-3.535 3.536l1.39 5.193-5.102 1.367c-2.148.576-2.867 3.259-1.296 4.83l4.142 4.142q-.002.031-.003.064l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 53l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 63l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 73l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 83l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 93l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 103l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 113l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 123l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 133l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 143l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 153l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 163c0 11.046 8.954 20 20 20h120c11.046 0 20-8.954 20-20V83l-70.02-4.376A10.645 10.645 0 0 1 103 68c0-5.621 4.37-10.273 9.98-10.624"}),u.createElement("path",{fill:"#3ECC5F",d:"M143 183h30v-40h-30z"}),u.createElement("path",{fill:"#44D860",d:"M193 158c-.219 0-.428.037-.639.064q-.055-.225-.116-.451A5 5 0 0 0 190.32 148a4.96 4.96 0 0 0-3.016 1.036 27 27 0 0 0-.335-.336 4.96 4.96 0 0 0 1.011-2.987 5 5 0 0 0-9.599-1.959c-.148-.042-.297-.077-.445-.115.027-.211.064-.42.064-.639a5 5 0 0 0-5-5 5 5 0 0 0-5 5c0 .219.037.428.064.639-.148.038-.297.073-.445.115a4.998 4.998 0 0 0-9.599 1.959c0 1.125.384 2.151 1.011 2.987-3.717 3.632-6.031 8.693-6.031 14.3 0 11.046 8.954 20 20 20 9.339 0 17.16-6.41 19.361-15.064.211.027.42.064.639.064a5 5 0 0 0 5-5 5 5 0 0 0-5-5"}),u.createElement("path",{fill:"#3ECC5F",d:"M153 123h30v-20h-30z"}),u.createElement("path",{fill:"#44D860",d:"M193 115.5a2.5 2.5 0 1 0 0-5c-.109 0-.214.019-.319.032q-.028-.113-.058-.225a2.501 2.501 0 0 0-.963-4.807c-.569 0-1.088.197-1.508.518a7 7 0 0 0-.168-.168c.314-.417.506-.931.506-1.494a2.5 2.5 0 0 0-4.8-.979A10 10 0 0 0 183 103c-5.522 0-10 4.478-10 10s4.478 10 10 10c.934 0 1.833-.138 2.69-.377a2.5 2.5 0 0 0 4.8-.979c0-.563-.192-1.077-.506-1.494q.085-.083.168-.168c.42.321.939.518 1.508.518a2.5 2.5 0 0 0 .963-4.807q.03-.112.058-.225c.105.013.21.032.319.032"}),u.createElement("path",{fill:"#000",d:"M63 55.5a2.5 2.5 0 0 1-2.5-2.5c0-4.136-3.364-7.5-7.5-7.5s-7.5 3.364-7.5 7.5a2.5 2.5 0 1 1-5 0c0-6.893 5.607-12.5 12.5-12.5S65.5 46.107 65.5 53a2.5 2.5 0 0 1-2.5 2.5"}),u.createElement("path",{fill:"#FFFF50",d:"M103 183h60c11.046 0 20-8.954 20-20V93h-60c-11.046 0-20 8.954-20 20z"}),u.createElement("path",{fill:"#000",d:"M168.02 124h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0-49.814h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 19.814h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2M183 61.611c-.012 0-.022-.006-.034-.005-3.09.105-4.552 3.196-5.842 5.923-1.346 2.85-2.387 4.703-4.093 4.647-1.889-.068-2.969-2.202-4.113-4.46-1.314-2.594-2.814-5.536-5.963-5.426-3.046.104-4.513 2.794-5.807 5.167-1.377 2.528-2.314 4.065-4.121 3.994-1.927-.07-2.951-1.805-4.136-3.813-1.321-2.236-2.848-4.75-5.936-4.664-2.994.103-4.465 2.385-5.763 4.4-1.373 2.13-2.335 3.428-4.165 3.351-1.973-.07-2.992-1.51-4.171-3.177-1.324-1.873-2.816-3.993-5.895-3.89-2.928.1-4.399 1.97-5.696 3.618-1.232 1.564-2.194 2.802-4.229 2.724a1 1 0 0 0-.072 2c3.017.101 4.545-1.8 5.872-3.487 1.177-1.496 2.193-2.787 4.193-2.855 1.926-.082 2.829 1.115 4.195 3.045 1.297 1.834 2.769 3.914 5.731 4.021 3.103.104 4.596-2.215 5.918-4.267 1.182-1.834 2.202-3.417 4.15-3.484 1.793-.067 2.769 1.35 4.145 3.681 1.297 2.197 2.766 4.686 5.787 4.796 3.125.108 4.634-2.62 5.949-5.035 1.139-2.088 2.214-4.06 4.119-4.126 1.793-.042 2.728 1.595 4.111 4.33 1.292 2.553 2.757 5.445 5.825 5.556l.169.003c3.064 0 4.518-3.075 5.805-5.794 1.139-2.41 2.217-4.68 4.067-4.773z"}),u.createElement("path",{fill:"#3ECC5F",d:"M83 183h40v-40H83z"}),u.createElement("path",{fill:"#44D860",d:"M143 158c-.219 0-.428.037-.639.064-.038-.15-.074-.301-.116-.451A5 5 0 0 0 140.32 148a4.96 4.96 0 0 0-3.016 1.036 27 27 0 0 0-.335-.336 4.96 4.96 0 0 0 1.011-2.987 5 5 0 0 0-9.599-1.959c-.148-.042-.297-.077-.445-.115.027-.211.064-.42.064-.639a5 5 0 0 0-5-5 5 5 0 0 0-5 5c0 .219.037.428.064.639-.148.038-.297.073-.445.115a4.998 4.998 0 0 0-9.599 1.959c0 1.125.384 2.151 1.011 2.987-3.717 3.632-6.031 8.693-6.031 14.3 0 11.046 8.954 20 20 20 9.339 0 17.16-6.41 19.361-15.064.211.027.42.064.639.064a5 5 0 0 0 5-5 5 5 0 0 0-5-5"}),u.createElement("path",{fill:"#3ECC5F",d:"M83 123h40v-20H83z"}),u.createElement("path",{fill:"#44D860",d:"M133 115.5a2.5 2.5 0 1 0 0-5c-.109 0-.214.019-.319.032q-.028-.113-.058-.225a2.501 2.501 0 0 0-.963-4.807c-.569 0-1.088.197-1.508.518a7 7 0 0 0-.168-.168c.314-.417.506-.931.506-1.494a2.5 2.5 0 0 0-4.8-.979A10 10 0 0 0 123 103c-5.522 0-10 4.478-10 10s4.478 10 10 10c.934 0 1.833-.138 2.69-.377a2.5 2.5 0 0 0 4.8-.979c0-.563-.192-1.077-.506-1.494q.085-.083.168-.168c.42.321.939.518 1.508.518a2.5 2.5 0 0 0 .963-4.807q.03-.112.058-.225c.105.013.21.032.319.032"}),u.createElement("path",{fill:"#000",d:"M143 41.75c-.16 0-.33-.02-.49-.05a2.5 2.5 0 0 1-.47-.14c-.15-.06-.29-.14-.431-.23-.13-.09-.259-.2-.38-.31-.109-.12-.219-.24-.309-.38s-.17-.28-.231-.43a2.6 2.6 0 0 1-.189-.96c0-.16.02-.33.05-.49s.08-.31.139-.47c.061-.15.141-.29.231-.43.09-.13.2-.26.309-.38.121-.11.25-.22.38-.31.141-.09.281-.17.431-.23s.31-.11.47-.14c.32-.07.65-.07.98 0 .159.03.32.08.47.14s.29.14.43.23c.13.09.259.2.38.31.11.12.22.25.31.38.09.14.17.28.23.43.06.16.11.31.14.47.029.16.05.33.05.49 0 .66-.271 1.31-.73 1.77-.121.11-.25.22-.38.31-.14.09-.281.17-.43.23a2.6 2.6 0 0 1-.96.19m20-1.25c-.66 0-1.3-.27-1.771-.73a4 4 0 0 1-.309-.38c-.09-.14-.17-.28-.231-.43a2.6 2.6 0 0 1-.189-.96c0-.66.27-1.3.729-1.77.121-.11.25-.22.38-.31.141-.09.281-.17.431-.23s.31-.11.47-.14c.32-.07.66-.07.98 0 .159.03.32.08.47.14s.29.14.43.23c.13.09.259.2.38.31.459.47.73 1.11.73 1.77 0 .16-.021.33-.05.49s-.08.32-.14.47c-.07.15-.14.29-.23.43-.09.13-.2.26-.31.38-.121.11-.25.22-.38.31-.14.09-.281.17-.43.23a2.6 2.6 0 0 1-.96.19"}))))};var m=a(27167),p=a(35688);let g={id:"assets",description:"Handling assets in Docusaurus Markdown",slug:"/markdown-features/assets"},f="Assets",b={},x=[{value:"Images",id:"images",level:2},{value:"Files",id:"files",level:2},{value:"Inline SVGs",id:"inline-svgs",level:2},{value:"Themed Images",id:"themed-images",level:2},{value:"GitHub-style themed images",id:"github-style-themed-images",level:3},{value:"Static assets",id:"static-assets",level:2}];function j(e){let s={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",...(0,l.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.header,{children:(0,r.jsx)(s.h1,{id:"assets",children:"Assets"})}),"\n","\n",(0,r.jsx)(s.p,{children:"Sometimes you want to link to assets (e.g. docx files, images...) directly from Markdown files, and it is convenient to co-locate the asset next to the Markdown file using it."}),"\n",(0,r.jsx)(s.p,{children:"Let's imagine the following file structure:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{children:"# Your doc\n/website/docs/myFeature.mdx\n\n# Some assets you want to use\n/website/docs/assets/docusaurus-asset-example-banner.png\n/website/docs/assets/docusaurus-asset-example.docx\n"})}),"\n",(0,r.jsx)(s.h2,{id:"images",children:"Images"}),"\n",(0,r.jsx)(s.p,{children:"You can display images in three different ways: Markdown syntax, CJS require, or ES imports syntax."}),"\n",(0,r.jsxs)(c.A,{children:[(0,r.jsxs)(o.A,{value:"Markdown syntax",children:[(0,r.jsx)(s.p,{children:"Display images using simple Markdown syntax:"}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-md",children:"![Example banner](./assets/docusaurus-asset-example-banner.png)\n"})})]}),(0,r.jsxs)(o.A,{value:"CommonJS require",children:[(0,r.jsxs)(s.p,{children:["Display images using inline CommonJS ",(0,r.jsx)(s.code,{children:"require"})," in JSX image tag:"]}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-jsx",children:"<img\n src={require('./assets/docusaurus-asset-example-banner.png').default}\n alt=\"Example banner\"\n/>\n"})})]}),(0,r.jsxs)(o.A,{value:"Import statement",children:[(0,r.jsxs)(s.p,{children:["Display images using ES ",(0,r.jsx)(s.code,{children:"import"})," syntax and JSX image tag:"]}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-jsx",children:"import myImageUrl from './assets/docusaurus-asset-example-banner.png';\n\n<img src={myImageUrl} alt=\"Example banner\" />;\n"})})]})]}),"\n",(0,r.jsx)(s.p,{children:"All of the above result in displaying the image:"}),"\n",(0,r.jsx)(i.A,{children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.img,{alt:"My image alternative text",src:a(95631).A+"",width:"422",height:"110"})})}),"\n",(0,r.jsx)(s.admonition,{type:"note",children:(0,r.jsxs)(s.p,{children:["If you are using ",(0,r.jsx)(s.a,{href:"/docs/api/plugins/@docusaurus/plugin-ideal-image",children:"@docusaurus/plugin-ideal-image"}),", you need to use the dedicated image component, as documented."]})}),"\n",(0,r.jsx)(s.h2,{id:"files",children:"Files"}),"\n",(0,r.jsxs)(s.p,{children:["In the same way, you can link to existing assets by ",(0,r.jsx)(s.code,{children:"require"}),"'ing them and using the returned URL in ",(0,r.jsx)(s.code,{children:"video"}),"s, ",(0,r.jsx)(s.code,{children:"a"})," anchor links, etc."]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-md",children:"# My Markdown page\n\n<a target=\"\\_blank\" href={require('./assets/docusaurus-asset-example.docx').default}> Download this docx </a>\n\nor\n\n[Download this docx using Markdown](./assets/docusaurus-asset-example.docx)\n"})}),"\n",(0,r.jsxs)(i.A,{children:[(0,r.jsx)("a",{target:"_blank",href:a(59096).A,children:"Download this docx"}),(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(76665).A+"",children:"Download this docx using Markdown"})})]}),"\n",(0,r.jsx)(s.admonition,{title:"Markdown links are always file paths",type:"info",children:(0,r.jsxs)(s.p,{children:["If you use the Markdown image or link syntax, all asset paths will be resolved as file paths by Docusaurus and automatically converted to ",(0,r.jsx)(s.code,{children:"require()"})," calls. You don't need to use ",(0,r.jsx)(s.code,{children:"require()"})," in Markdown unless you use the JSX syntax, which you do have to handle yourself."]})}),"\n",(0,r.jsx)(s.h2,{id:"inline-svgs",children:"Inline SVGs"}),"\n",(0,r.jsx)(s.p,{children:"Docusaurus supports inlining SVGs out of the box."}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-jsx",children:"import DocusaurusSvg from './docusaurus.svg';\n\n<DocusaurusSvg />;\n"})}),"\n",(0,r.jsx)(i.A,{children:(0,r.jsx)(h,{})}),"\n",(0,r.jsx)(s.p,{children:"This can be useful if you want to alter the part of the SVG image via CSS. For example, you can change one of the SVG colors based on the current theme."}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-jsx",children:"import DocusaurusSvg from './docusaurus.svg';\n\n<DocusaurusSvg className=\"themedDocusaurus\" />;\n"})}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-css",children:"[data-theme='light'] .themedDocusaurus [fill='#FFFF50'] {\n fill: greenyellow;\n}\n\n[data-theme='dark'] .themedDocusaurus [fill='#FFFF50'] {\n fill: seagreen;\n}\n"})}),"\n",(0,r.jsx)(i.A,{children:(0,r.jsx)(h,{className:"themedDocusaurus"})}),"\n",(0,r.jsx)(s.h2,{id:"themed-images",children:"Themed Images"}),"\n",(0,r.jsxs)(s.p,{children:["Docusaurus supports themed images: the ",(0,r.jsx)(s.code,{children:"ThemedImage"})," component (included in the themes) allows you to switch the image source based on the current theme."]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-jsx",children:"import useBaseUrl from '@docusaurus/useBaseUrl';\nimport ThemedImage from '@theme/ThemedImage';\n\n<ThemedImage\n alt=\"Docusaurus themed image\"\n // highlight-start\n sources={{\n light: useBaseUrl('/img/docusaurus_light.svg'),\n dark: useBaseUrl('/img/docusaurus_dark.svg'),\n }}\n // highlight-end\n/>;\n"})}),"\n","\n",(0,r.jsx)(i.A,{children:(0,r.jsx)(p.A,{alt:"Docusaurus themed image",sources:{light:(0,m.Ay)("/img/docusaurus_keytar.svg"),dark:(0,m.Ay)("/img/docusaurus_speed.svg")}})}),"\n",(0,r.jsx)(s.h3,{id:"github-style-themed-images",children:"GitHub-style themed images"}),"\n",(0,r.jsxs)(s.p,{children:["GitHub uses its own ",(0,r.jsx)(s.a,{href:"https://github.blog/changelog/2021-11-24-specify-theme-context-for-images-in-markdown/",children:"image theming approach"})," with path fragments, which you can easily implement yourself."]}),"\n",(0,r.jsxs)(s.p,{children:["To toggle the visibility of an image using the path fragment (for GitHub, it's ",(0,r.jsx)(s.code,{children:"#gh-dark-mode-only"})," and ",(0,r.jsx)(s.code,{children:"#gh-light-mode-only"}),"), add the following to your custom CSS (you can also use your own suffix if you don't want to be coupled to GitHub):"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-css",metastring:'title="src/css/custom.css"',children:"[data-theme='light'] img[src$='#gh-dark-mode-only'],\n[data-theme='dark'] img[src$='#gh-light-mode-only'] {\n display: none;\n}\n"})}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-md",children:"![Docusaurus themed image](/img/docusaurus_keytar.svg#gh-light-mode-only)![Docusaurus themed image](/img/docusaurus_speed.svg#gh-dark-mode-only)\n"})}),"\n",(0,r.jsx)(i.A,{children:(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.img,{alt:"Docusaurus themed image",src:a(15911).A+"#gh-light-mode-only",width:"200",height:"200"}),(0,r.jsx)(s.img,{alt:"Docusaurus themed image",src:a(2254).A+"#gh-dark-mode-only",width:"250",height:"200"})]})}),"\n",(0,r.jsx)(s.h2,{id:"static-assets",children:"Static assets"}),"\n",(0,r.jsxs)(s.p,{children:["If a Markdown link or image has an absolute path, the path will be seen as a file path and will be resolved from the static directories. For example, if you have configured ",(0,r.jsx)(s.a,{href:"/docs/static-assets",children:"static directories"})," to be ",(0,r.jsx)(s.code,{children:"['public', 'static']"}),", then for the following image:"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-md",metastring:'title="my-doc.md"',children:"![An image from the static](/img/docusaurus.png)\n"})}),"\n",(0,r.jsxs)(s.p,{children:["Docusaurus will try to look for it in both ",(0,r.jsx)(s.code,{children:"static/img/docusaurus.png"})," and ",(0,r.jsx)(s.code,{children:"public/img/docusaurus.png"}),". The link will then be converted to a ",(0,r.jsx)(s.code,{children:"require()"})," call instead of staying as a URL. This is desirable in two regards:"]}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsx)(s.li,{children:"You don't have to worry about the base URL, which Docusaurus will take care of when serving the asset;"}),"\n",(0,r.jsx)(s.li,{children:"The image enters Webpack's build pipeline and its name will be appended by a hash, which enables browsers to aggressively cache the image and improves your site's performance."}),"\n"]}),"\n",(0,r.jsxs)(s.p,{children:["If you intend to write URLs, you can use the ",(0,r.jsx)(s.code,{children:"pathname://"})," protocol to disable automatic asset linking."]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-md",children:"![banner](pathname:///img/docusaurus-asset-example-banner.png)\n"})}),"\n",(0,r.jsxs)(s.p,{children:["This link will be generated as ",(0,r.jsx)(s.code,{children:'<img src="/img/docusaurus-asset-example-banner.png" alt="banner" />'}),", without any processing or file existence checking."]})]})}function y(e={}){let{wrapper:s}={...(0,l.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(j,{...e})}):j(e)}},43023:(e,s,a)=>{a.d(s,{R:()=>l,x:()=>i});var t=a(63696);let n={},r=t.createContext(n);function l(e){let s=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),t.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4a3883fa.32c3f8da.js b/assets/js/4a3883fa.32c3f8da.js new file mode 100644 index 0000000000..50accb366a --- /dev/null +++ b/assets/js/4a3883fa.32c3f8da.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[27335],{36650:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>l});let s=JSON.parse('{"type":"mdx","permalink":"/tests/pages/unlisted","source":"@site/_dogfooding/_pages tests/unlisted.mdx","title":"Unlisted page","description":"This unlisted page should always be directly accessible, but hidden from search engines","frontMatter":{"unlisted":true},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/unlisted.mdx","unlisted":true}');var i=n(62540),d=n(43023);let r={unlisted:!0},a="Unlisted page",o={},l=[];function u(e){let t={h1:"h1",header:"header",p:"p",...(0,d.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"unlisted-page",children:"Unlisted page"})}),"\n",(0,i.jsx)(t.p,{children:"This unlisted page should always be directly accessible, but hidden from search engines"})]})}function c(e={}){let{wrapper:t}={...(0,d.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(u,{...e})}):u(e)}},43023:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>a});var s=n(63696);let i={},d=s.createContext(i);function r(e){let t=s.useContext(d);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(d.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4a3883fa.ac9b0362.js b/assets/js/4a3883fa.ac9b0362.js deleted file mode 100644 index 26482402f2..0000000000 --- a/assets/js/4a3883fa.ac9b0362.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[27335],{36650:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>l});let s=JSON.parse('{"type":"mdx","permalink":"/tests/pages/unlisted","source":"@site/_dogfooding/_pages tests/unlisted.mdx","title":"Unlisted page","description":"This unlisted page should always be directly accessible, but hidden from search engines","frontMatter":{"unlisted":true},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/unlisted.mdx","unlisted":true}');var i=n(62540),d=n(43023);let r={unlisted:!0},a="Unlisted page",o={},l=[];function u(e){let t={h1:"h1",header:"header",p:"p",...(0,d.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"unlisted-page",children:"Unlisted page"})}),"\n",(0,i.jsx)(t.p,{children:"This unlisted page should always be directly accessible, but hidden from search engines"})]})}function c(e={}){let{wrapper:t}={...(0,d.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(u,{...e})}):u(e)}},43023:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>a});var s=n(63696);let i={},d=s.createContext(i);function r(e){let t=s.useContext(d);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(d.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4ab187ba.8efb6226.js b/assets/js/4ab187ba.8efb6226.js deleted file mode 100644 index a27c31cc88..0000000000 --- a/assets/js/4ab187ba.8efb6226.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6173],{11393:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>u,frontMatter:()=>c,metadata:()=>s,toc:()=>a});let s=JSON.parse('{"id":"tests/category-links/custom-index-convention/intro","title":"Introduction","description":"This file is called intro.md. Typically, it won\'t be selected by the convention; however, it is in this case, because we have used a custom one.","source":"@site/_dogfooding/_docs tests/tests/category-links/custom-index-convention/intro.mdx","sourceDirName":"tests/category-links/custom-index-convention","slug":"/tests/category-links/custom-index-convention/intro","permalink":"/tests/docs/tests/category-links/custom-index-convention/intro","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Category Links","permalink":"/tests/docs/category-links-generated-index-slug"},"next":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/custom-index-convention/sample-doc"}}');var o=n(62540),i=n(43023);let c={},r="Introduction",d={},a=[];function l(e){let t={code:"code",h1:"h1",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"introduction",children:"Introduction"})}),"\n",(0,o.jsxs)(t.p,{children:["This file is called ",(0,o.jsx)(t.code,{children:"intro.md"}),". Typically, it won't be selected by the convention; however, it is in this case, because we have used a custom one."]})]})}function u(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}u.displayName="MDXContent(_dogfooding/_docs tests/tests/category-links/custom-index-convention/intro.mdx)"},43023:(e,t,n)=>{n.d(t,{R:()=>c,x:()=>r});var s=n(63696);let o={},i=s.createContext(o);function c(e){let t=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4ab187ba.e0b3ba92.js b/assets/js/4ab187ba.e0b3ba92.js new file mode 100644 index 0000000000..6d86116a8e --- /dev/null +++ b/assets/js/4ab187ba.e0b3ba92.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6173],{11393:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>u,frontMatter:()=>c,metadata:()=>s,toc:()=>a});let s=JSON.parse('{"id":"tests/category-links/custom-index-convention/intro","title":"Introduction","description":"This file is called intro.md. Typically, it won\'t be selected by the convention; however, it is in this case, because we have used a custom one.","source":"@site/_dogfooding/_docs tests/tests/category-links/custom-index-convention/intro.mdx","sourceDirName":"tests/category-links/custom-index-convention","slug":"/tests/category-links/custom-index-convention/intro","permalink":"/tests/docs/tests/category-links/custom-index-convention/intro","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Category Links","permalink":"/tests/docs/category-links-generated-index-slug"},"next":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/custom-index-convention/sample-doc"}}');var o=n(62540),i=n(43023);let c={},r="Introduction",d={},a=[];function l(e){let t={code:"code",h1:"h1",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"introduction",children:"Introduction"})}),"\n",(0,o.jsxs)(t.p,{children:["This file is called ",(0,o.jsx)(t.code,{children:"intro.md"}),". Typically, it won't be selected by the convention; however, it is in this case, because we have used a custom one."]})]})}function u(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}u.displayName="MDXContent(_dogfooding/_docs tests/tests/category-links/custom-index-convention/intro.mdx)"},43023:(e,t,n)=>{n.d(t,{R:()=>c,x:()=>r});var s=n(63696);let o={},i=s.createContext(o);function c(e){let t=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4c9d8eaa.6f19364a.js b/assets/js/4c9d8eaa.6f19364a.js new file mode 100644 index 0000000000..e0ffd69219 --- /dev/null +++ b/assets/js/4c9d8eaa.6f19364a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[73116],{97079:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>x,contentTitle:()=>g,default:()=>y,frontMatter:()=>b,metadata:()=>i,toc:()=>j});let i=JSON.parse('{"id":"team","title":"Team","description":"Active Team","source":"@site/community/1-team.mdx","sourceDirName":".","slug":"/team","permalink":"/community/team","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/1-team.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":1,"frontMatter":{},"sidebar":"community","previous":{"title":"Support","permalink":"/community/support"},"next":{"title":"Awesome Resources","permalink":"/community/resources"}}');var r=n(62540),a=n(43023);n(63696);var o=n(81912),s=n(36372),l=n(37425);function h({to:e,children:t}){return(0,r.jsx)(s.A,{to:e,children:null!=t?t:(0,r.jsx)(o.A,{id:"team.profile.websiteLinkLabel",children:"website"})})}function c({className:e,name:t,children:n,githubUrl:i,xUrl:a}){return(0,r.jsx)("div",{className:e,children:(0,r.jsxs)("div",{className:"card card--full-height",children:[(0,r.jsx)("div",{className:"card__header",children:(0,r.jsxs)("div",{className:"avatar avatar--vertical",children:[(0,r.jsx)("img",{className:"avatar__photo avatar__photo--xl",src:`${i}.png`,alt:`${t}'s avatar`}),(0,r.jsx)("div",{className:"avatar__intro",children:(0,r.jsx)(l.A,{as:"h3",className:"avatar__name",children:t})})]})}),(0,r.jsx)("div",{className:"card__body",children:n}),(0,r.jsx)("div",{className:"card__footer",children:(0,r.jsxs)("div",{className:"button-group button-group--block",children:[i&&(0,r.jsx)(s.A,{className:"button button--secondary",href:i,children:"GitHub"}),a&&(0,r.jsx)(s.A,{className:"button button--secondary",href:a,children:"X"})]})})]})})}function d(e){var t,n;return(0,r.jsx)(c,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}({},e),n=n={className:"col col--6 margin-bottom--lg"},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n.push.apply(n,i)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}function u(){return(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)(d,{name:"S\xe9bastien Lorber",githubUrl:"https://github.com/slorber",xUrl:"https://x.com/sebastienlorber",children:(0,r.jsx)(o.A,{id:"team.profile.Sebastien Lorber.body",values:{website:(0,r.jsx)(h,{to:"https://sebastienlorber.com/"}),devto:(0,r.jsx)(s.A,{to:"https://dev.to/sebastienlorber",children:"Dev.to"})},children:"React lover since 2014. Freelance, helping Facebook ship Docusaurus v2. He writes regularly, on his {website} and {devto}."})}),(0,r.jsx)(d,{name:"Sida Chen",githubUrl:"https://github.com/Josh-Cena",xUrl:"https://x.com/SidaChen63",children:(0,r.jsx)(o.A,{id:"team.profile.Sida Chen.body",children:"Student from Shanghai, China. Enthusiastic open-source project creator, but never actually works hard on those projects he created."})}),(0,r.jsx)(d,{name:"Cl\xe9ment Couriol",githubUrl:"https://github.com/ozakione",children:(0,r.jsx)(o.A,{id:"team.profile.Clement Couriol.body",children:"Student from CPE Lyon, France. Passionate web developer who tries to become an expert web developer."})})]})}function m(){return(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)(d,{name:"Joel Marcey",githubUrl:"https://github.com/JoelMarcey",xUrl:"https://x.com/joelmarcey",children:(0,r.jsx)(o.A,{id:"team.profile.Joel Marcey.body",children:"Docusaurus founder and now ever grateful Docusaurus cheerleader to those who actually write code for it."})}),(0,r.jsx)(d,{name:"Alexey Pyltsyn",githubUrl:"https://github.com/lex111",children:(0,r.jsx)(o.A,{id:"team.profile.Alexey Pyltsyn.body",children:"Obsessed open-source enthusiast \u{1F44B} Eternal amateur at everything \u{1F937}\u200D\u2642\uFE0F Maintainer of Russian docs on PHP, React, Kubernetes and much more \u{1F9D0}"})}),(0,r.jsx)(d,{name:"Yangshun Tay",githubUrl:"https://github.com/yangshun",xUrl:"https://x.com/yangshunz",children:(0,r.jsx)(o.A,{id:"team.profile.Yangshun Tay.body",children:"Full Front End Stack developer who likes working on the Jamstack. Working on Docusaurus made him Facebook's unofficial part-time Open Source webmaster, which is an awesome role to be in."})}),(0,r.jsx)(d,{name:"Endilie Yacop Sucipto",githubUrl:"https://github.com/endiliey",xUrl:"https://x.com/endiliey",children:(0,r.jsx)(o.A,{id:"team.profile.Endilie Yacop Sucipto.body",children:"Maintainer @docusaurus \xb7 \u{1F525}\u{1F525}\u{1F525}"})}),(0,r.jsx)(d,{name:"Wei Gao",githubUrl:"https://github.com/wgao19",xUrl:"https://x.com/wgao19",children:(0,r.jsx)(o.A,{id:"team.profile.Wei Gao.body",children:"\u{1F3FB}\u200D\u{1F33E} Work in progress React developer, maintains Docusaurus, writes docs and spams this world with many websites."})})]})}function p(){return(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)(d,{name:"Anshul Goyal",githubUrl:"https://github.com/anshulrgoyal",xUrl:"https://x.com/ar_goyal",children:(0,r.jsx)(o.A,{id:"team.profile.Anshul Goyal.body",values:{websiteLink:(0,r.jsx)(s.A,{href:"https://anshulgoyal.dev/",children:(0,r.jsx)(o.A,{id:"team.profile.Anshul Goyal.body.websiteLink.label",children:"website"})})},children:"Fullstack developer who loves to code and try new technologies. In his free time, he contributes to open source, writes blog posts on his {websiteLink} and watches Anime."})}),(0,r.jsx)(d,{name:"Drew Alexander",githubUrl:"https://github.com/drewbi",children:(0,r.jsx)(o.A,{id:"team.profile.Drew Alexander.body",children:"Developer and Creative, trying to gain the skills to build whatever he can think of."})}),(0,r.jsx)(d,{name:"Fanny Vieira",githubUrl:"https://github.com/fanny",xUrl:"https://x.com/fannyvieiira",children:(0,r.jsx)(o.A,{id:"team.profile.Fanny Vieira.body",values:{blogLink:(0,r.jsx)(s.A,{href:"https://dev.to/fannyvieira",children:(0,r.jsx)(o.A,{id:"team.profile.Fanny Vieira.body.blogLink.label",children:"her blog"})}),spotifyLink:(0,r.jsx)(s.A,{href:"https://open.spotify.com/user/anotherfanny",children:(0,r.jsx)(o.A,{id:"team.profile.Fanny Vieira.body.spotifyLink.label",children:"Spotify playlists"})})},children:"Fanny got started with web development in high school, building a project for the school kitchen. In her free time she loves contributing to Open Source, occasionally writing on {blogLink} about her experiences, cooking, and creating {spotifyLink}."})}),(0,r.jsx)(d,{name:"Sam Zhou",githubUrl:"https://github.com/SamChou19815",xUrl:"https://x.com/SamChou19815",children:(0,r.jsx)(o.A,{id:"team.profile.Sam Zhou.body",values:{websiteLink:(0,r.jsx)(s.A,{href:"https://developersam.com",children:(0,r.jsx)(o.A,{id:"team.profile.Anshul Goyal.body.websiteLink.label",children:"website"})}),samLangLink:(0,r.jsx)(s.A,{href:"https://samlang.developersam.com/",children:(0,r.jsx)(o.A,{id:"team.profile.Sam Zhou.body.samLangLink.label",children:"programming language"})}),miniReactLink:(0,r.jsx)(s.A,{href:"https://github.com/SamChou19815/mini-react",children:(0,r.jsx)(o.A,{id:"team.profile.Sam Zhou.body.miniReactLink.label",children:"mini React"})})},children:"Sam started programming in 2011 and built his {websiteLink} in 2015. He is interested in programming languages, dev infra and web development, and has built his own {samLangLink} and {miniReactLink}."})}),(0,r.jsx)(d,{name:"Tan Teik Jun",githubUrl:"https://github.com/teikjun",xUrl:"https://x.com/teik_jun",children:(0,r.jsx)(o.A,{id:"team.profile.Tan Teik Jun.body",children:"Open-source enthusiast who aims to become as awesome as the other humans on this page. Working on Docusaurus brought him closer to his goal. \u{1F331}"})}),(0,r.jsx)(d,{name:"Nisarag Bhatt",githubUrl:"https://github.com/FocalChord",xUrl:"https://x.com/focalchord_",children:(0,r.jsx)(o.A,{id:"team.profile.Nisarag Bhatt.body",children:"Fullstack web developer who loves learning new technologies and applying them! Loves contributing to open source as well as writing content articles and tutorials."})})]})}let b={},g="Team",x={},j=[{value:"Active Team",id:"active-team",level:2},{value:"Honorary Alumni",id:"honorary-alumni",level:2},{value:"Student Fellows",id:"student-fellows",level:2},{value:"Acknowledgements",id:"acknowledgements",level:2}];function f(e){let t={a:"a",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",ul:"ul",...(0,a.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"team",children:"Team"})}),"\n","\n",(0,r.jsx)(t.h2,{id:"active-team",children:"Active Team"}),"\n",(0,r.jsx)(t.p,{children:"The Docusaurus team works on the core functionality, plugins for the classic theme, as well as the Docusaurus documentation website."}),"\n",(0,r.jsx)(t.p,{children:"Current members of the Docusaurus team are listed in alphabetical order below."}),"\n",(0,r.jsx)(u,{}),"\n",(0,r.jsx)(t.h2,{id:"honorary-alumni",children:"Honorary Alumni"}),"\n",(0,r.jsx)(t.p,{children:"Docusaurus would never be what it is today without the huge contributions from these folks who have moved on to bigger and greater things."}),"\n",(0,r.jsx)(m,{}),"\n",(0,r.jsx)(t.h2,{id:"student-fellows",children:"Student Fellows"}),"\n",(0,r.jsxs)(t.p,{children:["A handful of students have also worked on Docusaurus as part of their school term/internship and the ",(0,r.jsx)(t.a,{href:"https://fellowship.mlh.io/",children:"Major League Hacking Fellowship program"}),", contributing amazing features such as plugin options validation, migration tooling, and a Bootstrap theme."]}),"\n",(0,r.jsx)(p,{}),"\n",(0,r.jsx)(t.h2,{id:"acknowledgements",children:"Acknowledgements"}),"\n",(0,r.jsx)(t.p,{children:"Docusaurus was originally created by Joel Marcey. Today, Docusaurus has a few hundred open source contributors. We\u2019d like to recognize a few people who have made significant contributions to Docusaurus and its documentation in the past and have helped maintain them over the years:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/amyrlam",children:"Amy Lam"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/chenglou",children:"Cheng Lou"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/caabernathy",children:"Christine Abernathy"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/vjeux",children:"Christopher Chedeau"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/elviswolcott",children:"Elvis Wolcott"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/ericnakagawa",children:"Eric Nakagawa"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/fiennyangeln",children:"Fienny Angelina"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/deltice",children:"Frank Li"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/hramos",children:"H\xe9ctor Ramos"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/rlamana",children:"Ram\xf3n Lamana"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/rickyvetter",children:"Ricky Vetter"})}),"\n"]})]})}function y(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(f,{...e})}):f(e)}},43023:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>s});var i=n(63696);let r={},a=i.createContext(r);function o(e){let t=i.useContext(a);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4c9d8eaa.b0d110af.js b/assets/js/4c9d8eaa.b0d110af.js deleted file mode 100644 index 64c159041f..0000000000 --- a/assets/js/4c9d8eaa.b0d110af.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[73116],{97079:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>x,contentTitle:()=>g,default:()=>y,frontMatter:()=>b,metadata:()=>i,toc:()=>j});let i=JSON.parse('{"id":"team","title":"Team","description":"Active Team","source":"@site/community/1-team.mdx","sourceDirName":".","slug":"/team","permalink":"/community/team","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/1-team.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":1,"frontMatter":{},"sidebar":"community","previous":{"title":"Support","permalink":"/community/support"},"next":{"title":"Awesome Resources","permalink":"/community/resources"}}');var r=n(62540),a=n(43023);n(63696);var o=n(81912),s=n(36372),l=n(37425);function h({to:e,children:t}){return(0,r.jsx)(s.A,{to:e,children:null!=t?t:(0,r.jsx)(o.A,{id:"team.profile.websiteLinkLabel",children:"website"})})}function c({className:e,name:t,children:n,githubUrl:i,xUrl:a}){return(0,r.jsx)("div",{className:e,children:(0,r.jsxs)("div",{className:"card card--full-height",children:[(0,r.jsx)("div",{className:"card__header",children:(0,r.jsxs)("div",{className:"avatar avatar--vertical",children:[(0,r.jsx)("img",{className:"avatar__photo avatar__photo--xl",src:`${i}.png`,alt:`${t}'s avatar`}),(0,r.jsx)("div",{className:"avatar__intro",children:(0,r.jsx)(l.A,{as:"h3",className:"avatar__name",children:t})})]})}),(0,r.jsx)("div",{className:"card__body",children:n}),(0,r.jsx)("div",{className:"card__footer",children:(0,r.jsxs)("div",{className:"button-group button-group--block",children:[i&&(0,r.jsx)(s.A,{className:"button button--secondary",href:i,children:"GitHub"}),a&&(0,r.jsx)(s.A,{className:"button button--secondary",href:a,children:"X"})]})})]})})}function d(e){var t,n;return(0,r.jsx)(c,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}({},e),n=n={className:"col col--6 margin-bottom--lg"},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n.push.apply(n,i)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}function u(){return(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)(d,{name:"S\xe9bastien Lorber",githubUrl:"https://github.com/slorber",xUrl:"https://x.com/sebastienlorber",children:(0,r.jsx)(o.A,{id:"team.profile.Sebastien Lorber.body",values:{website:(0,r.jsx)(h,{to:"https://sebastienlorber.com/"}),devto:(0,r.jsx)(s.A,{to:"https://dev.to/sebastienlorber",children:"Dev.to"})},children:"React lover since 2014. Freelance, helping Facebook ship Docusaurus v2. He writes regularly, on his {website} and {devto}."})}),(0,r.jsx)(d,{name:"Sida Chen",githubUrl:"https://github.com/Josh-Cena",xUrl:"https://x.com/SidaChen63",children:(0,r.jsx)(o.A,{id:"team.profile.Sida Chen.body",children:"Student from Shanghai, China. Enthusiastic open-source project creator, but never actually works hard on those projects he created."})}),(0,r.jsx)(d,{name:"Cl\xe9ment Couriol",githubUrl:"https://github.com/ozakione",children:(0,r.jsx)(o.A,{id:"team.profile.Clement Couriol.body",children:"Student from CPE Lyon, France. Passionate web developer who tries to become an expert web developer."})})]})}function m(){return(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)(d,{name:"Joel Marcey",githubUrl:"https://github.com/JoelMarcey",xUrl:"https://x.com/joelmarcey",children:(0,r.jsx)(o.A,{id:"team.profile.Joel Marcey.body",children:"Docusaurus founder and now ever grateful Docusaurus cheerleader to those who actually write code for it."})}),(0,r.jsx)(d,{name:"Alexey Pyltsyn",githubUrl:"https://github.com/lex111",children:(0,r.jsx)(o.A,{id:"team.profile.Alexey Pyltsyn.body",children:"Obsessed open-source enthusiast \u{1F44B} Eternal amateur at everything \u{1F937}\u200D\u2642\uFE0F Maintainer of Russian docs on PHP, React, Kubernetes and much more \u{1F9D0}"})}),(0,r.jsx)(d,{name:"Yangshun Tay",githubUrl:"https://github.com/yangshun",xUrl:"https://x.com/yangshunz",children:(0,r.jsx)(o.A,{id:"team.profile.Yangshun Tay.body",children:"Full Front End Stack developer who likes working on the Jamstack. Working on Docusaurus made him Facebook's unofficial part-time Open Source webmaster, which is an awesome role to be in."})}),(0,r.jsx)(d,{name:"Endilie Yacop Sucipto",githubUrl:"https://github.com/endiliey",xUrl:"https://x.com/endiliey",children:(0,r.jsx)(o.A,{id:"team.profile.Endilie Yacop Sucipto.body",children:"Maintainer @docusaurus \xb7 \u{1F525}\u{1F525}\u{1F525}"})}),(0,r.jsx)(d,{name:"Wei Gao",githubUrl:"https://github.com/wgao19",xUrl:"https://x.com/wgao19",children:(0,r.jsx)(o.A,{id:"team.profile.Wei Gao.body",children:"\u{1F3FB}\u200D\u{1F33E} Work in progress React developer, maintains Docusaurus, writes docs and spams this world with many websites."})})]})}function p(){return(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)(d,{name:"Anshul Goyal",githubUrl:"https://github.com/anshulrgoyal",xUrl:"https://x.com/ar_goyal",children:(0,r.jsx)(o.A,{id:"team.profile.Anshul Goyal.body",values:{websiteLink:(0,r.jsx)(s.A,{href:"https://anshulgoyal.dev/",children:(0,r.jsx)(o.A,{id:"team.profile.Anshul Goyal.body.websiteLink.label",children:"website"})})},children:"Fullstack developer who loves to code and try new technologies. In his free time, he contributes to open source, writes blog posts on his {websiteLink} and watches Anime."})}),(0,r.jsx)(d,{name:"Drew Alexander",githubUrl:"https://github.com/drewbi",children:(0,r.jsx)(o.A,{id:"team.profile.Drew Alexander.body",children:"Developer and Creative, trying to gain the skills to build whatever he can think of."})}),(0,r.jsx)(d,{name:"Fanny Vieira",githubUrl:"https://github.com/fanny",xUrl:"https://x.com/fannyvieiira",children:(0,r.jsx)(o.A,{id:"team.profile.Fanny Vieira.body",values:{blogLink:(0,r.jsx)(s.A,{href:"https://dev.to/fannyvieira",children:(0,r.jsx)(o.A,{id:"team.profile.Fanny Vieira.body.blogLink.label",children:"her blog"})}),spotifyLink:(0,r.jsx)(s.A,{href:"https://open.spotify.com/user/anotherfanny",children:(0,r.jsx)(o.A,{id:"team.profile.Fanny Vieira.body.spotifyLink.label",children:"Spotify playlists"})})},children:"Fanny got started with web development in high school, building a project for the school kitchen. In her free time she loves contributing to Open Source, occasionally writing on {blogLink} about her experiences, cooking, and creating {spotifyLink}."})}),(0,r.jsx)(d,{name:"Sam Zhou",githubUrl:"https://github.com/SamChou19815",xUrl:"https://x.com/SamChou19815",children:(0,r.jsx)(o.A,{id:"team.profile.Sam Zhou.body",values:{websiteLink:(0,r.jsx)(s.A,{href:"https://developersam.com",children:(0,r.jsx)(o.A,{id:"team.profile.Anshul Goyal.body.websiteLink.label",children:"website"})}),samLangLink:(0,r.jsx)(s.A,{href:"https://samlang.developersam.com/",children:(0,r.jsx)(o.A,{id:"team.profile.Sam Zhou.body.samLangLink.label",children:"programming language"})}),miniReactLink:(0,r.jsx)(s.A,{href:"https://github.com/SamChou19815/mini-react",children:(0,r.jsx)(o.A,{id:"team.profile.Sam Zhou.body.miniReactLink.label",children:"mini React"})})},children:"Sam started programming in 2011 and built his {websiteLink} in 2015. He is interested in programming languages, dev infra and web development, and has built his own {samLangLink} and {miniReactLink}."})}),(0,r.jsx)(d,{name:"Tan Teik Jun",githubUrl:"https://github.com/teikjun",xUrl:"https://x.com/teik_jun",children:(0,r.jsx)(o.A,{id:"team.profile.Tan Teik Jun.body",children:"Open-source enthusiast who aims to become as awesome as the other humans on this page. Working on Docusaurus brought him closer to his goal. \u{1F331}"})}),(0,r.jsx)(d,{name:"Nisarag Bhatt",githubUrl:"https://github.com/FocalChord",xUrl:"https://x.com/focalchord_",children:(0,r.jsx)(o.A,{id:"team.profile.Nisarag Bhatt.body",children:"Fullstack web developer who loves learning new technologies and applying them! Loves contributing to open source as well as writing content articles and tutorials."})})]})}let b={},g="Team",x={},j=[{value:"Active Team",id:"active-team",level:2},{value:"Honorary Alumni",id:"honorary-alumni",level:2},{value:"Student Fellows",id:"student-fellows",level:2},{value:"Acknowledgements",id:"acknowledgements",level:2}];function f(e){let t={a:"a",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",ul:"ul",...(0,a.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"team",children:"Team"})}),"\n","\n",(0,r.jsx)(t.h2,{id:"active-team",children:"Active Team"}),"\n",(0,r.jsx)(t.p,{children:"The Docusaurus team works on the core functionality, plugins for the classic theme, as well as the Docusaurus documentation website."}),"\n",(0,r.jsx)(t.p,{children:"Current members of the Docusaurus team are listed in alphabetical order below."}),"\n",(0,r.jsx)(u,{}),"\n",(0,r.jsx)(t.h2,{id:"honorary-alumni",children:"Honorary Alumni"}),"\n",(0,r.jsx)(t.p,{children:"Docusaurus would never be what it is today without the huge contributions from these folks who have moved on to bigger and greater things."}),"\n",(0,r.jsx)(m,{}),"\n",(0,r.jsx)(t.h2,{id:"student-fellows",children:"Student Fellows"}),"\n",(0,r.jsxs)(t.p,{children:["A handful of students have also worked on Docusaurus as part of their school term/internship and the ",(0,r.jsx)(t.a,{href:"https://fellowship.mlh.io/",children:"Major League Hacking Fellowship program"}),", contributing amazing features such as plugin options validation, migration tooling, and a Bootstrap theme."]}),"\n",(0,r.jsx)(p,{}),"\n",(0,r.jsx)(t.h2,{id:"acknowledgements",children:"Acknowledgements"}),"\n",(0,r.jsx)(t.p,{children:"Docusaurus was originally created by Joel Marcey. Today, Docusaurus has a few hundred open source contributors. We\u2019d like to recognize a few people who have made significant contributions to Docusaurus and its documentation in the past and have helped maintain them over the years:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/amyrlam",children:"Amy Lam"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/chenglou",children:"Cheng Lou"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/caabernathy",children:"Christine Abernathy"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/vjeux",children:"Christopher Chedeau"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/elviswolcott",children:"Elvis Wolcott"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/ericnakagawa",children:"Eric Nakagawa"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/fiennyangeln",children:"Fienny Angelina"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/deltice",children:"Frank Li"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/hramos",children:"H\xe9ctor Ramos"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/rlamana",children:"Ram\xf3n Lamana"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/rickyvetter",children:"Ricky Vetter"})}),"\n"]})]})}function y(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(f,{...e})}):f(e)}},43023:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>s});var i=n(63696);let r={},a=i.createContext(r);function o(e){let t=i.useContext(a);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/50084.4a465655.js b/assets/js/50084.4a465655.js deleted file mode 100644 index efbf844c89..0000000000 --- a/assets/js/50084.4a465655.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[50084],{50084:(e,t,s)=>{s.d(t,{diagram:()=>V});var i=s(1475),a=s(62499),r=s(93126),o=s(17367),l=s(97027);s(95285),s(31546),s(31234),s(51822),s(46591);let d="rect",n="rectWithTitle",c="statediagram",p=`${c}-state`,b="transition",g=`${b} note-edge`,h=`${c}-note`,u=`${c}-cluster`,y=`${c}-cluster-alt`,f="parent",w="note",x="----",$=`${x}${w}`,m=`${x}${f}`,T="fill:none",S="fill: #333",k="text",D="normal",v={},A=0;function B(e="",t=0,s="",i=x){let a=null!==s&&s.length>0?`${i}${s}`:"";return`state-${e}${a}-${t}`}let C=(e,t,s,a,r,l)=>{var c;let b=s.id,x=null==(c=a[b])?"":c.classes?c.classes.join(" "):"";if("root"!==b){let t=d;!0===s.start&&(t="start"),!1===s.start&&(t="end"),s.type!==i.D&&(t=s.type),v[b]||(v[b]={id:b,shape:t,description:o.e.sanitizeText(b,(0,o.c)()),classes:`${x} ${p}`});let a=v[b];s.description&&(Array.isArray(a.description)?(a.shape=n,a.description.push(s.description)):a.description.length>0?(a.shape=n,a.description===b?a.description=[s.description]:a.description=[a.description,s.description]):(a.shape=d,a.description=s.description),a.description=o.e.sanitizeTextOrArray(a.description,(0,o.c)())),1===a.description.length&&a.shape===n&&(a.shape=d),!a.type&&s.doc&&(o.l.info("Setting cluster for ",b,L(s)),a.type="group",a.dir=L(s),a.shape=s.type===i.a?"divider":"roundedWithTitle",a.classes=a.classes+" "+u+" "+(l?y:""));let r={labelStyle:"",shape:a.shape,labelText:a.description,classes:a.classes,style:"",id:b,dir:a.dir,domId:B(b,A),type:a.type,padding:15};if(r.centerLabel=!0,s.note){let t={labelStyle:"",shape:"note",labelText:s.note.text,classes:h,style:"",id:b+$+"-"+A,domId:B(b,A,w),type:a.type,padding:15},i={labelStyle:"",shape:"noteGroup",labelText:s.note.text,classes:a.classes,style:"",id:b+m,domId:B(b,A,f),type:"group",padding:0};A++;let o=b+m;e.setNode(o,i),e.setNode(t.id,t),e.setNode(b,r),e.setParent(b,o),e.setParent(t.id,o);let l=b,d=t.id;"left of"===s.note.position&&(l=t.id,d=b),e.setEdge(l,d,{arrowhead:"none",arrowType:"",style:T,labelStyle:"",classes:g,arrowheadStyle:S,labelpos:"c",labelType:k,thickness:D})}else e.setNode(b,r)}t&&"root"!==t.id&&(o.l.trace("Setting node ",b," to be child of its parent ",t.id),e.setParent(b,t.id)),s.doc&&(o.l.trace("Adding nodes children "),E(e,s,s.doc,a,r,!l))},E=(e,t,s,a,r,l)=>{o.l.trace("items",s),s.forEach(s=>{switch(s.stmt){case i.b:case i.D:C(e,t,s,a,r,l);break;case i.S:{C(e,t,s.state1,a,r,l),C(e,t,s.state2,a,r,l);let i={id:"edge"+A,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:T,labelStyle:"",label:o.e.sanitizeText(s.description,(0,o.c)()),arrowheadStyle:S,labelpos:"c",labelType:k,thickness:D,classes:b};e.setEdge(s.state1.id,s.state2.id,i,A),A++}}})},L=(e,t=i.c)=>{let s=t;if(e.doc)for(let t=0;t<e.doc.length;t++){let i=e.doc[t];"dir"===i.stmt&&(s=i.value)}return s},R=async function(e,t,s,i){let n;o.l.info("Drawing state diagram (v2)",t),v={},i.db.getDirection();let{securityLevel:p,state:b}=(0,o.c)(),g=b.nodeSpacing||50,h=b.rankSpacing||50;o.l.info(i.db.getRootDocV2()),i.db.extract(i.db.getRootDocV2()),o.l.info(i.db.getRootDocV2());let u=i.db.getStates(),y=new a.T({multigraph:!0,compound:!0}).setGraph({rankdir:L(i.db.getRootDocV2()),nodesep:g,ranksep:h,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});C(y,void 0,i.db.getRootDocV2(),u,i.db,!0),"sandbox"===p&&(n=(0,r.Ltv)("#i"+t));let f="sandbox"===p?(0,r.Ltv)(n.nodes()[0].contentDocument.body):(0,r.Ltv)("body"),w=f.select(`[id="${t}"]`),x=f.select("#"+t+" g");await (0,l.r)(x,y,["barb"],c,t),o.u.insertTitle(w,"statediagramTitleText",b.titleTopMargin,i.db.getDiagramTitle());let $=w.node().getBBox(),m=$.width+16,T=$.height+16;w.attr("class",c);let S=w.node().getBBox();(0,o.i)(w,T,m,b.useMaxWidth);let k=`${S.x-8} ${S.y-8} ${m} ${T}`;for(let e of(o.l.debug(`viewBox ${k}`),w.attr("viewBox",k),document.querySelectorAll('[id="'+t+'"] .edgeLabel .label'))){let t=e.getBBox(),s=document.createElementNS("http://www.w3.org/2000/svg",d);s.setAttribute("rx",0),s.setAttribute("ry",0),s.setAttribute("width",t.width),s.setAttribute("height",t.height),e.insertBefore(s,e.firstChild)}},V={parser:i.p,db:i.d,renderer:{setConf:function(e){for(let t of Object.keys(e))e[t]},getClasses:function(e,t){return t.db.extract(t.db.getRootDocV2()),t.db.getClasses()},draw:R},styles:i.s,init:e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,i.d.clear()}}}}]); \ No newline at end of file diff --git a/assets/js/50337.10db4698.js b/assets/js/50337.10db4698.js new file mode 100644 index 0000000000..8c0a4126c0 --- /dev/null +++ b/assets/js/50337.10db4698.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[50337],{50337:(e,s,c)=>{c.d(s,{createPieServices:()=>i.f});var i=c(15475);c(69663)}}]); \ No newline at end of file diff --git a/assets/js/50a3e386.69cb7fc6.js b/assets/js/50a3e386.69cb7fc6.js deleted file mode 100644 index cd5179efdd..0000000000 --- a/assets/js/50a3e386.69cb7fc6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7938],{86757:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>d,default:()=>x,frontMatter:()=>l,metadata:()=>n,toc:()=>r});let n=JSON.parse('{"id":"toc/toc-5-5","title":"toc-5-5","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-5-5.mdx","sourceDirName":"toc","slug":"/toc/toc-5-5","permalink":"/tests/docs/toc/toc-5-5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_min_heading_level":5,"toc_max_heading_level":5},"sidebar":"sidebar","previous":{"title":"toc-4-5","permalink":"/tests/docs/toc/toc-4-5"},"next":{"title":"toc-_-5","permalink":"/tests/docs/toc/toc-_-5"}}');var i=t(62540),c=t(43023),o=t(25128);let l={toc_min_heading_level:5,toc_max_heading_level:5},d=void 0,u={},r=[...o.RM];function h(e){return(0,i.jsx)(o.Ay,{})}function x(e={}){let{wrapper:s}={...(0,c.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}x.displayName="MDXContent(_dogfooding/_docs tests/toc/toc-5-5.mdx)"},25128:(e,s,t)=>{t.d(s,{Ay:()=>l,RM:()=>c});var n=t(62540),i=t(43023);let c=[{value:"section 1",id:"section-1",level:2},{value:"subsection 1-1",id:"subsection-1-1",level:3},{value:"subsection 1-1-1",id:"subsection-1-1-1",level:4},{value:"subsection 1-1-1-1",id:"subsection-1-1-1-1",level:5},{value:"subsection 1-1-1-1-1",id:"subsection-1-1-1-1-1",level:6},{value:"subsection 1-1-1-1-2",id:"subsection-1-1-1-1-2",level:6},{value:"subsection 1-1-1-2",id:"subsection-1-1-1-2",level:5},{value:"subsection 1-1-2",id:"subsection-1-1-2",level:4},{value:"subsection 1-2",id:"subsection-1-2",level:3},{value:"subsection 1-3",id:"subsection-1-3",level:3},{value:"section 2",id:"section-2",level:2},{value:"subsection 2-1",id:"subsection-2-1",level:3},{value:"subsection 2-1",id:"subsection-2-1-1",level:3},{value:"section 3",id:"section-3",level:2},{value:"subsection 3-1",id:"subsection-3-1",level:3},{value:"subsection 3-2",id:"subsection-3-2",level:3}];function o(e){let s={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"title",children:"title"})}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-1",children:"section 1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-1",children:"subsection 1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-1",children:"subsection 1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-1",children:"subsection 1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-1",children:"subsection 1-1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-2",children:"subsection 1-1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-2",children:"subsection 1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-2",children:"subsection 1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-2",children:"subsection 1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-3",children:"subsection 1-3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-2",children:"section 2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-3",children:"section 3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-1",children:"subsection 3-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-2",children:"subsection 3-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"})]})}function l(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>l});var n=t(63696);let i={},c=n.createContext(i);function o(e){let s=n.useContext(c);return n.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),n.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/50a3e386.b2530496.js b/assets/js/50a3e386.b2530496.js new file mode 100644 index 0000000000..5945bf041d --- /dev/null +++ b/assets/js/50a3e386.b2530496.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7938],{86757:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>d,default:()=>x,frontMatter:()=>l,metadata:()=>n,toc:()=>r});let n=JSON.parse('{"id":"toc/toc-5-5","title":"toc-5-5","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-5-5.mdx","sourceDirName":"toc","slug":"/toc/toc-5-5","permalink":"/tests/docs/toc/toc-5-5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_min_heading_level":5,"toc_max_heading_level":5},"sidebar":"sidebar","previous":{"title":"toc-4-5","permalink":"/tests/docs/toc/toc-4-5"},"next":{"title":"toc-_-5","permalink":"/tests/docs/toc/toc-_-5"}}');var i=t(62540),c=t(43023),o=t(25128);let l={toc_min_heading_level:5,toc_max_heading_level:5},d=void 0,u={},r=[...o.RM];function h(e){return(0,i.jsx)(o.Ay,{})}function x(e={}){let{wrapper:s}={...(0,c.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}x.displayName="MDXContent(_dogfooding/_docs tests/toc/toc-5-5.mdx)"},25128:(e,s,t)=>{t.d(s,{Ay:()=>l,RM:()=>c});var n=t(62540),i=t(43023);let c=[{value:"section 1",id:"section-1",level:2},{value:"subsection 1-1",id:"subsection-1-1",level:3},{value:"subsection 1-1-1",id:"subsection-1-1-1",level:4},{value:"subsection 1-1-1-1",id:"subsection-1-1-1-1",level:5},{value:"subsection 1-1-1-1-1",id:"subsection-1-1-1-1-1",level:6},{value:"subsection 1-1-1-1-2",id:"subsection-1-1-1-1-2",level:6},{value:"subsection 1-1-1-2",id:"subsection-1-1-1-2",level:5},{value:"subsection 1-1-2",id:"subsection-1-1-2",level:4},{value:"subsection 1-2",id:"subsection-1-2",level:3},{value:"subsection 1-3",id:"subsection-1-3",level:3},{value:"section 2",id:"section-2",level:2},{value:"subsection 2-1",id:"subsection-2-1",level:3},{value:"subsection 2-1",id:"subsection-2-1-1",level:3},{value:"section 3",id:"section-3",level:2},{value:"subsection 3-1",id:"subsection-3-1",level:3},{value:"subsection 3-2",id:"subsection-3-2",level:3}];function o(e){let s={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"title",children:"title"})}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-1",children:"section 1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-1",children:"subsection 1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-1",children:"subsection 1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-1",children:"subsection 1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-1",children:"subsection 1-1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-2",children:"subsection 1-1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-2",children:"subsection 1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-2",children:"subsection 1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-2",children:"subsection 1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-3",children:"subsection 1-3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-2",children:"section 2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-3",children:"section 3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-1",children:"subsection 3-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-2",children:"subsection 3-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"})]})}function l(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>l});var n=t(63696);let i={},c=n.createContext(i);function o(e){let s=n.useContext(c);return n.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),n.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/514f0e36.0f3ee7f0.js b/assets/js/514f0e36.0f3ee7f0.js new file mode 100644 index 0000000000..c14963cfa3 --- /dev/null +++ b/assets/js/514f0e36.0f3ee7f0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[76261],{89192:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>p,contentTitle:()=>d,default:()=>m,frontMatter:()=>s,metadata:()=>n,toc:()=>i});let n=JSON.parse('{"type":"mdx","permalink":"/examples/markdownPageExample","source":"@site/src/pages/examples/markdownPageExample.mdx","title":"Markdown Page example","description":"Markdown Page example","frontMatter":{"title":"Markdown Page example","description":"Markdown Page example","wrapperClassName":"docusaurus-markdown-example"},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/src/pages/examples/markdownPageExample.mdx","unlisted":false}');var r=t(62540),o=t(43023);let s={title:"Markdown Page example",description:"Markdown Page example",wrapperClassName:"docusaurus-markdown-example"},d="Markdown page",p={},i=[];function l(e){let a={admonition:"admonition",h1:"h1",header:"header",p:"p",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.header,{children:(0,r.jsx)(a.h1,{id:"markdown-page",children:"Markdown page"})}),"\n",(0,r.jsx)(a.p,{children:"This is a page generated from markdown to illustrate the Markdown page feature."}),"\n",(0,r.jsx)(a.admonition,{type:"tip",children:(0,r.jsx)(a.p,{children:"Use Markdown pages when you just want to focus on content and the default layout is good enough"})})]})}function m(e={}){let{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,r.jsx)(a,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},43023:(e,a,t)=>{t.d(a,{R:()=>s,x:()=>d});var n=t(63696);let r={},o=n.createContext(r);function s(e){let a=n.useContext(o);return n.useMemo(function(){return"function"==typeof e?e(a):{...a,...e}},[a,e])}function d(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),n.createElement(o.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/514f0e36.880221ad.js b/assets/js/514f0e36.880221ad.js deleted file mode 100644 index 7d35c2fe38..0000000000 --- a/assets/js/514f0e36.880221ad.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[76261],{89192:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>p,contentTitle:()=>d,default:()=>m,frontMatter:()=>s,metadata:()=>n,toc:()=>l});let n=JSON.parse('{"type":"mdx","permalink":"/examples/markdownPageExample","source":"@site/src/pages/examples/markdownPageExample.mdx","title":"Markdown Page example","description":"Markdown Page example","frontMatter":{"title":"Markdown Page example","description":"Markdown Page example","wrapperClassName":"docusaurus-markdown-example"},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/src/pages/examples/markdownPageExample.mdx","unlisted":false}');var o=t(62540),r=t(43023);let s={title:"Markdown Page example",description:"Markdown Page example",wrapperClassName:"docusaurus-markdown-example"},d="Markdown page",p={},l=[];function i(e){let a={admonition:"admonition",h1:"h1",header:"header",p:"p",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.header,{children:(0,o.jsx)(a.h1,{id:"markdown-page",children:"Markdown page"})}),"\n",(0,o.jsx)(a.p,{children:"This is a page generated from markdown to illustrate the Markdown page feature."}),"\n",(0,o.jsx)(a.admonition,{type:"tip",children:(0,o.jsx)(a.p,{children:"Use Markdown pages when you just want to focus on content and the default layout is good enough"})})]})}function m(e={}){let{wrapper:a}={...(0,r.R)(),...e.components};return a?(0,o.jsx)(a,{...e,children:(0,o.jsx)(i,{...e})}):i(e)}},43023:(e,a,t)=>{t.d(a,{R:()=>s,x:()=>d});var n=t(63696);let o={},r=n.createContext(o);function s(e){let a=n.useContext(r);return n.useMemo(function(){return"function"==typeof e?e(a):{...a,...e}},[a,e])}function d(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),n.createElement(r.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/51508.4d02d2a3.js b/assets/js/51508.4d02d2a3.js deleted file mode 100644 index 1da6f82df3..0000000000 --- a/assets/js/51508.4d02d2a3.js +++ /dev/null @@ -1,117 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[51508],{51508:(t,e,a)=>{let r,i,s,n,o;a.d(e,{diagram:()=>tu});var c=a(17367),l=a(93126),h=a(12441),d=a(31546);a(95285),a(31234);var p=function(){var t=function(t,e,a,r){for(a=a||{},r=t.length;r--;a[t[r]]=e);return a},e=[1,2],a=[1,3],r=[1,5],i=[1,7],s=[2,5],n=[1,15],o=[1,17],c=[1,19],l=[1,20],h=[1,22],d=[1,23],p=[1,24],g=[1,30],u=[1,31],x=[1,32],y=[1,33],m=[1,34],f=[1,35],b=[1,36],T=[1,37],E=[1,38],w=[1,39],_=[1,40],v=[1,41],P=[1,42],k=[1,44],L=[1,45],I=[1,46],M=[1,48],N=[1,49],A=[1,50],S=[1,51],O=[1,52],D=[1,53],R=[1,56],C=[1,4,5,19,20,22,24,27,29,35,36,37,39,41,42,43,44,45,47,49,50,52,53,54,55,56,58,59,60,65,66,67,68,76,86],$=[4,5,22,56,58,59],Y=[4,5,19,20,22,24,27,29,35,36,37,39,41,42,43,44,45,47,49,50,52,56,58,59,60,65,66,67,68,76,86],B=[4,5,19,20,22,24,27,29,35,36,37,39,41,42,43,44,45,47,49,50,52,55,56,58,59,60,65,66,67,68,76,86],V=[4,5,19,20,22,24,27,29,35,36,37,39,41,42,43,44,45,47,49,50,52,54,56,58,59,60,65,66,67,68,76,86],F=[4,5,19,20,22,24,27,29,35,36,37,39,41,42,43,44,45,47,49,50,52,53,56,58,59,60,65,66,67,68,76,86],q=[74,75,76],W=[1,133],z=[1,4,5,7,19,20,22,24,27,29,35,36,37,39,41,42,43,44,45,47,49,50,52,53,54,55,56,58,59,60,65,66,67,68,76,86],H={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,directive:6,SD:7,document:8,line:9,statement:10,box_section:11,box_line:12,participant_statement:13,openDirective:14,typeDirective:15,closeDirective:16,":":17,argDirective:18,create:19,box:20,restOfLine:21,end:22,signal:23,autonumber:24,NUM:25,off:26,activate:27,actor:28,deactivate:29,note_statement:30,links_statement:31,link_statement:32,properties_statement:33,details_statement:34,title:35,legacy_title:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,loop:42,rect:43,opt:44,alt:45,else_sections:46,par:47,par_sections:48,par_over:49,critical:50,option_sections:51,break:52,option:53,and:54,else:55,participant:56,AS:57,participant_actor:58,destroy:59,note:60,placement:61,text2:62,over:63,actor_pair:64,links:65,link:66,properties:67,details:68,spaceList:69,",":70,left_of:71,right_of:72,signaltype:73,"+":74,"-":75,ACTOR:76,SOLID_OPEN_ARROW:77,DOTTED_OPEN_ARROW:78,SOLID_ARROW:79,DOTTED_ARROW:80,SOLID_CROSS:81,DOTTED_CROSS:82,SOLID_POINT:83,DOTTED_POINT:84,TXT:85,open_directive:86,type_directive:87,arg_directive:88,close_directive:89,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",7:"SD",17:":",19:"create",20:"box",21:"restOfLine",22:"end",24:"autonumber",25:"NUM",26:"off",27:"activate",29:"deactivate",35:"title",36:"legacy_title",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"loop",43:"rect",44:"opt",45:"alt",47:"par",49:"par_over",50:"critical",52:"break",53:"option",54:"and",55:"else",56:"participant",57:"AS",58:"participant_actor",59:"destroy",60:"note",63:"over",65:"links",66:"link",67:"properties",68:"details",70:",",71:"left_of",72:"right_of",74:"+",75:"-",76:"ACTOR",77:"SOLID_OPEN_ARROW",78:"DOTTED_OPEN_ARROW",79:"SOLID_ARROW",80:"DOTTED_ARROW",81:"SOLID_CROSS",82:"DOTTED_CROSS",83:"SOLID_POINT",84:"DOTTED_POINT",85:"TXT",86:"open_directive",87:"type_directive",88:"arg_directive",89:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[11,0],[11,2],[12,2],[12,1],[12,1],[6,4],[6,6],[10,1],[10,2],[10,4],[10,2],[10,4],[10,3],[10,3],[10,2],[10,3],[10,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,2],[10,2],[10,1],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,1],[51,1],[51,4],[48,1],[48,4],[46,1],[46,4],[13,5],[13,3],[13,5],[13,3],[13,3],[30,4],[30,4],[31,3],[32,3],[33,3],[34,3],[69,2],[69,1],[64,3],[64,1],[61,1],[61,1],[23,5],[23,5],[23,4],[28,1],[73,1],[73,1],[73,1],[73,1],[73,1],[73,1],[73,1],[73,1],[62,1],[14,1],[15,1],[18,1],[16,1]],performAction:function(t,e,a,r,i,s,n){var o=s.length-1;switch(i){case 4:return r.apply(s[o]),s[o];case 5:case 10:case 9:case 14:this.$=[];break;case 6:case 11:s[o-1].push(s[o]),this.$=s[o-1];break;case 7:case 8:case 12:case 13:case 66:this.$=s[o];break;case 18:s[o].type="createParticipant",this.$=s[o];break;case 19:s[o-1].unshift({type:"boxStart",boxData:r.parseBoxData(s[o-2])}),s[o-1].push({type:"boxEnd",boxText:s[o-2]}),this.$=s[o-1];break;case 21:this.$={type:"sequenceIndex",sequenceIndex:Number(s[o-2]),sequenceIndexStep:Number(s[o-1]),sequenceVisible:!0,signalType:r.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"sequenceIndex",sequenceIndex:Number(s[o-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:r.LINETYPE.AUTONUMBER};break;case 23:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:r.LINETYPE.AUTONUMBER};break;case 24:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:r.LINETYPE.AUTONUMBER};break;case 25:this.$={type:"activeStart",signalType:r.LINETYPE.ACTIVE_START,actor:s[o-1]};break;case 26:this.$={type:"activeEnd",signalType:r.LINETYPE.ACTIVE_END,actor:s[o-1]};break;case 32:r.setDiagramTitle(s[o].substring(6)),this.$=s[o].substring(6);break;case 33:r.setDiagramTitle(s[o].substring(7)),this.$=s[o].substring(7);break;case 34:this.$=s[o].trim(),r.setAccTitle(this.$);break;case 35:case 36:this.$=s[o].trim(),r.setAccDescription(this.$);break;case 37:s[o-1].unshift({type:"loopStart",loopText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.LOOP_START}),s[o-1].push({type:"loopEnd",loopText:s[o-2],signalType:r.LINETYPE.LOOP_END}),this.$=s[o-1];break;case 38:s[o-1].unshift({type:"rectStart",color:r.parseMessage(s[o-2]),signalType:r.LINETYPE.RECT_START}),s[o-1].push({type:"rectEnd",color:r.parseMessage(s[o-2]),signalType:r.LINETYPE.RECT_END}),this.$=s[o-1];break;case 39:s[o-1].unshift({type:"optStart",optText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.OPT_START}),s[o-1].push({type:"optEnd",optText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.OPT_END}),this.$=s[o-1];break;case 40:s[o-1].unshift({type:"altStart",altText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.ALT_START}),s[o-1].push({type:"altEnd",signalType:r.LINETYPE.ALT_END}),this.$=s[o-1];break;case 41:s[o-1].unshift({type:"parStart",parText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.PAR_START}),s[o-1].push({type:"parEnd",signalType:r.LINETYPE.PAR_END}),this.$=s[o-1];break;case 42:s[o-1].unshift({type:"parStart",parText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.PAR_OVER_START}),s[o-1].push({type:"parEnd",signalType:r.LINETYPE.PAR_END}),this.$=s[o-1];break;case 43:s[o-1].unshift({type:"criticalStart",criticalText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.CRITICAL_START}),s[o-1].push({type:"criticalEnd",signalType:r.LINETYPE.CRITICAL_END}),this.$=s[o-1];break;case 44:s[o-1].unshift({type:"breakStart",breakText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.BREAK_START}),s[o-1].push({type:"breakEnd",optText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.BREAK_END}),this.$=s[o-1];break;case 47:this.$=s[o-3].concat([{type:"option",optionText:r.parseMessage(s[o-1]),signalType:r.LINETYPE.CRITICAL_OPTION},s[o]]);break;case 49:this.$=s[o-3].concat([{type:"and",parText:r.parseMessage(s[o-1]),signalType:r.LINETYPE.PAR_AND},s[o]]);break;case 51:this.$=s[o-3].concat([{type:"else",altText:r.parseMessage(s[o-1]),signalType:r.LINETYPE.ALT_ELSE},s[o]]);break;case 52:s[o-3].draw="participant",s[o-3].type="addParticipant",s[o-3].description=r.parseMessage(s[o-1]),this.$=s[o-3];break;case 53:s[o-1].draw="participant",s[o-1].type="addParticipant",this.$=s[o-1];break;case 54:s[o-3].draw="actor",s[o-3].type="addParticipant",s[o-3].description=r.parseMessage(s[o-1]),this.$=s[o-3];break;case 55:s[o-1].draw="actor",s[o-1].type="addParticipant",this.$=s[o-1];break;case 56:s[o-1].type="destroyParticipant",this.$=s[o-1];break;case 57:this.$=[s[o-1],{type:"addNote",placement:s[o-2],actor:s[o-1].actor,text:s[o]}];break;case 58:s[o-2]=[].concat(s[o-1],s[o-1]).slice(0,2),s[o-2][0]=s[o-2][0].actor,s[o-2][1]=s[o-2][1].actor,this.$=[s[o-1],{type:"addNote",placement:r.PLACEMENT.OVER,actor:s[o-2].slice(0,2),text:s[o]}];break;case 59:this.$=[s[o-1],{type:"addLinks",actor:s[o-1].actor,text:s[o]}];break;case 60:this.$=[s[o-1],{type:"addALink",actor:s[o-1].actor,text:s[o]}];break;case 61:this.$=[s[o-1],{type:"addProperties",actor:s[o-1].actor,text:s[o]}];break;case 62:this.$=[s[o-1],{type:"addDetails",actor:s[o-1].actor,text:s[o]}];break;case 65:this.$=[s[o-2],s[o]];break;case 67:this.$=r.PLACEMENT.LEFTOF;break;case 68:this.$=r.PLACEMENT.RIGHTOF;break;case 69:this.$=[s[o-4],s[o-1],{type:"addMessage",from:s[o-4].actor,to:s[o-1].actor,signalType:s[o-3],msg:s[o]},{type:"activeStart",signalType:r.LINETYPE.ACTIVE_START,actor:s[o-1]}];break;case 70:this.$=[s[o-4],s[o-1],{type:"addMessage",from:s[o-4].actor,to:s[o-1].actor,signalType:s[o-3],msg:s[o]},{type:"activeEnd",signalType:r.LINETYPE.ACTIVE_END,actor:s[o-4]}];break;case 71:this.$=[s[o-3],s[o-1],{type:"addMessage",from:s[o-3].actor,to:s[o-1].actor,signalType:s[o-2],msg:s[o]}];break;case 72:this.$={type:"addParticipant",actor:s[o]};break;case 73:this.$=r.LINETYPE.SOLID_OPEN;break;case 74:this.$=r.LINETYPE.DOTTED_OPEN;break;case 75:this.$=r.LINETYPE.SOLID;break;case 76:this.$=r.LINETYPE.DOTTED;break;case 77:this.$=r.LINETYPE.SOLID_CROSS;break;case 78:this.$=r.LINETYPE.DOTTED_CROSS;break;case 79:this.$=r.LINETYPE.SOLID_POINT;break;case 80:this.$=r.LINETYPE.DOTTED_POINT;break;case 81:this.$=r.parseMessage(s[o].trim().substring(1));break;case 82:r.parseDirective("%%{","open_directive");break;case 83:r.parseDirective(s[o],"type_directive");break;case 84:s[o]=s[o].trim().replace(/'/g,'"'),r.parseDirective(s[o],"arg_directive");break;case 85:r.parseDirective("}%%","close_directive","sequence")}},table:[{3:1,4:e,5:a,6:4,7:r,14:6,86:i},{1:[3]},{3:8,4:e,5:a,6:4,7:r,14:6,86:i},{3:9,4:e,5:a,6:4,7:r,14:6,86:i},{3:10,4:e,5:a,6:4,7:r,14:6,86:i},t([1,4,5,19,20,24,27,29,35,36,37,39,41,42,43,44,45,47,49,50,52,56,58,59,60,65,66,67,68,76,86],s,{8:11}),{15:12,87:[1,13]},{87:[2,82]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:n,5:o,6:43,9:14,10:16,13:18,14:6,19:c,20:l,23:21,24:h,27:d,28:47,29:p,30:25,31:26,32:27,33:28,34:29,35:g,36:u,37:x,39:y,41:m,42:f,43:b,44:T,45:E,47:w,49:_,50:v,52:P,56:k,58:L,59:I,60:M,65:N,66:A,67:S,68:O,76:D,86:i},{16:54,17:[1,55],89:R},t([17,89],[2,83]),t(C,[2,6]),{6:43,10:57,13:18,14:6,19:c,20:l,23:21,24:h,27:d,28:47,29:p,30:25,31:26,32:27,33:28,34:29,35:g,36:u,37:x,39:y,41:m,42:f,43:b,44:T,45:E,47:w,49:_,50:v,52:P,56:k,58:L,59:I,60:M,65:N,66:A,67:S,68:O,76:D,86:i},t(C,[2,8]),t(C,[2,9]),t(C,[2,17]),{13:58,56:k,58:L,59:I},{21:[1,59]},{5:[1,60]},{5:[1,63],25:[1,61],26:[1,62]},{28:64,76:D},{28:65,76:D},{5:[1,66]},{5:[1,67]},{5:[1,68]},{5:[1,69]},{5:[1,70]},t(C,[2,32]),t(C,[2,33]),{38:[1,71]},{40:[1,72]},t(C,[2,36]),{21:[1,73]},{21:[1,74]},{21:[1,75]},{21:[1,76]},{21:[1,77]},{21:[1,78]},{21:[1,79]},{21:[1,80]},t(C,[2,45]),{28:81,76:D},{28:82,76:D},{28:83,76:D},{73:84,77:[1,85],78:[1,86],79:[1,87],80:[1,88],81:[1,89],82:[1,90],83:[1,91],84:[1,92]},{61:93,63:[1,94],71:[1,95],72:[1,96]},{28:97,76:D},{28:98,76:D},{28:99,76:D},{28:100,76:D},t([5,57,70,77,78,79,80,81,82,83,84,85],[2,72]),{5:[1,101]},{18:102,88:[1,103]},{5:[2,85]},t(C,[2,7]),t(C,[2,18]),t($,[2,10],{11:104}),t(C,[2,20]),{5:[1,106],25:[1,105]},{5:[1,107]},t(C,[2,24]),{5:[1,108]},{5:[1,109]},t(C,[2,27]),t(C,[2,28]),t(C,[2,29]),t(C,[2,30]),t(C,[2,31]),t(C,[2,34]),t(C,[2,35]),t(Y,s,{8:110}),t(Y,s,{8:111}),t(Y,s,{8:112}),t(B,s,{46:113,8:114}),t(V,s,{48:115,8:116}),t(V,s,{8:116,48:117}),t(F,s,{51:118,8:119}),t(Y,s,{8:120}),{5:[1,122],57:[1,121]},{5:[1,124],57:[1,123]},{5:[1,125]},{28:128,74:[1,126],75:[1,127],76:D},t(q,[2,73]),t(q,[2,74]),t(q,[2,75]),t(q,[2,76]),t(q,[2,77]),t(q,[2,78]),t(q,[2,79]),t(q,[2,80]),{28:129,76:D},{28:131,64:130,76:D},{76:[2,67]},{76:[2,68]},{62:132,85:W},{62:134,85:W},{62:135,85:W},{62:136,85:W},t(z,[2,15]),{16:137,89:R},{89:[2,84]},{4:[1,140],5:[1,142],12:139,13:141,22:[1,138],56:k,58:L,59:I},{5:[1,143]},t(C,[2,22]),t(C,[2,23]),t(C,[2,25]),t(C,[2,26]),{4:n,5:o,6:43,9:14,10:16,13:18,14:6,19:c,20:l,22:[1,144],23:21,24:h,27:d,28:47,29:p,30:25,31:26,32:27,33:28,34:29,35:g,36:u,37:x,39:y,41:m,42:f,43:b,44:T,45:E,47:w,49:_,50:v,52:P,56:k,58:L,59:I,60:M,65:N,66:A,67:S,68:O,76:D,86:i},{4:n,5:o,6:43,9:14,10:16,13:18,14:6,19:c,20:l,22:[1,145],23:21,24:h,27:d,28:47,29:p,30:25,31:26,32:27,33:28,34:29,35:g,36:u,37:x,39:y,41:m,42:f,43:b,44:T,45:E,47:w,49:_,50:v,52:P,56:k,58:L,59:I,60:M,65:N,66:A,67:S,68:O,76:D,86:i},{4:n,5:o,6:43,9:14,10:16,13:18,14:6,19:c,20:l,22:[1,146],23:21,24:h,27:d,28:47,29:p,30:25,31:26,32:27,33:28,34:29,35:g,36:u,37:x,39:y,41:m,42:f,43:b,44:T,45:E,47:w,49:_,50:v,52:P,56:k,58:L,59:I,60:M,65:N,66:A,67:S,68:O,76:D,86:i},{22:[1,147]},{4:n,5:o,6:43,9:14,10:16,13:18,14:6,19:c,20:l,22:[2,50],23:21,24:h,27:d,28:47,29:p,30:25,31:26,32:27,33:28,34:29,35:g,36:u,37:x,39:y,41:m,42:f,43:b,44:T,45:E,47:w,49:_,50:v,52:P,55:[1,148],56:k,58:L,59:I,60:M,65:N,66:A,67:S,68:O,76:D,86:i},{22:[1,149]},{4:n,5:o,6:43,9:14,10:16,13:18,14:6,19:c,20:l,22:[2,48],23:21,24:h,27:d,28:47,29:p,30:25,31:26,32:27,33:28,34:29,35:g,36:u,37:x,39:y,41:m,42:f,43:b,44:T,45:E,47:w,49:_,50:v,52:P,54:[1,150],56:k,58:L,59:I,60:M,65:N,66:A,67:S,68:O,76:D,86:i},{22:[1,151]},{22:[1,152]},{4:n,5:o,6:43,9:14,10:16,13:18,14:6,19:c,20:l,22:[2,46],23:21,24:h,27:d,28:47,29:p,30:25,31:26,32:27,33:28,34:29,35:g,36:u,37:x,39:y,41:m,42:f,43:b,44:T,45:E,47:w,49:_,50:v,52:P,53:[1,153],56:k,58:L,59:I,60:M,65:N,66:A,67:S,68:O,76:D,86:i},{4:n,5:o,6:43,9:14,10:16,13:18,14:6,19:c,20:l,22:[1,154],23:21,24:h,27:d,28:47,29:p,30:25,31:26,32:27,33:28,34:29,35:g,36:u,37:x,39:y,41:m,42:f,43:b,44:T,45:E,47:w,49:_,50:v,52:P,56:k,58:L,59:I,60:M,65:N,66:A,67:S,68:O,76:D,86:i},{21:[1,155]},t(C,[2,53]),{21:[1,156]},t(C,[2,55]),t(C,[2,56]),{28:157,76:D},{28:158,76:D},{62:159,85:W},{62:160,85:W},{62:161,85:W},{70:[1,162],85:[2,66]},{5:[2,59]},{5:[2,81]},{5:[2,60]},{5:[2,61]},{5:[2,62]},{5:[1,163]},t(C,[2,19]),t($,[2,11]),{13:164,56:k,58:L,59:I},t($,[2,13]),t($,[2,14]),t(C,[2,21]),t(C,[2,37]),t(C,[2,38]),t(C,[2,39]),t(C,[2,40]),{21:[1,165]},t(C,[2,41]),{21:[1,166]},t(C,[2,42]),t(C,[2,43]),{21:[1,167]},t(C,[2,44]),{5:[1,168]},{5:[1,169]},{62:170,85:W},{62:171,85:W},{5:[2,71]},{5:[2,57]},{5:[2,58]},{28:172,76:D},t(z,[2,16]),t($,[2,12]),t(B,s,{8:114,46:173}),t(V,s,{8:116,48:174}),t(F,s,{8:119,51:175}),t(C,[2,52]),t(C,[2,54]),{5:[2,69]},{5:[2,70]},{85:[2,65]},{22:[2,51]},{22:[2,49]},{22:[2,47]}],defaultActions:{7:[2,82],8:[2,1],9:[2,2],10:[2,3],56:[2,85],95:[2,67],96:[2,68],103:[2,84],132:[2,59],133:[2,81],134:[2,60],135:[2,61],136:[2,62],159:[2,71],160:[2,57],161:[2,58],170:[2,69],171:[2,70],172:[2,65],173:[2,51],174:[2,49],175:[2,47]},parseError:function(t,e){if(e.recoverable)this.trace(t);else{var a=Error(t);throw a.hash=e,a}},parse:function(t){var e=this,a=[0],r=[],i=[null],s=[],n=this.table,o="",c=0,l=0,h=s.slice.call(arguments,1),d=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);d.setInput(t,p.yy),p.yy.lexer=d,p.yy.parser=this,void 0===d.yylloc&&(d.yylloc={});var u=d.yylloc;s.push(u);var x=d.options&&d.options.ranges;"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var y,m,f,b,T,E,w,_,v={};;){if(m=a[a.length-1],this.defaultActions[m]?f=this.defaultActions[m]:(null==y&&(y=function(){var t;return"number"!=typeof(t=r.pop()||d.lex()||1)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}()),f=n[m]&&n[m][y]),void 0===f||!f.length||!f[0]){var P="";for(T in _=[],n[m])this.terminals_[T]&&T>2&&_.push("'"+this.terminals_[T]+"'");P=d.showPosition?"Parse error on line "+(c+1)+":\n"+d.showPosition()+"\nExpecting "+_.join(", ")+", got '"+(this.terminals_[y]||y)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==y?"end of input":"'"+(this.terminals_[y]||y)+"'"),this.parseError(P,{text:d.match,token:this.terminals_[y]||y,line:d.yylineno,loc:u,expected:_})}if(f[0]instanceof Array&&f.length>1)throw Error("Parse Error: multiple actions possible at state: "+m+", token: "+y);switch(f[0]){case 1:a.push(y),i.push(d.yytext),s.push(d.yylloc),a.push(f[1]),y=null,l=d.yyleng,o=d.yytext,c=d.yylineno,u=d.yylloc;break;case 2:if(E=this.productions_[f[1]][1],v.$=i[i.length-E],v._$={first_line:s[s.length-(E||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(E||1)].first_column,last_column:s[s.length-1].last_column},x&&(v._$.range=[s[s.length-(E||1)].range[0],s[s.length-1].range[1]]),void 0!==(b=this.performAction.apply(v,[o,l,c,p.yy,f[1],i,s].concat(h))))return b;E&&(a=a.slice(0,-1*E*2),i=i.slice(0,-1*E),s=s.slice(0,-1*E)),a.push(this.productions_[f[1]][0]),i.push(v.$),s.push(v._$),w=n[a[a.length-2]][a[a.length-1]],a.push(w);break;case 3:return!0}}return!0}};function U(){this.yy={}}return H.lexer={EOF:1,parseError:function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,a=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===r.length?this.yylloc.first_column:0)+r[r.length-a.length].length-a[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var a,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],a=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a)return a;if(this._backtrack)for(var s in i)this[s]=i[s];return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,a,r,i=this._currentRules(),s=0;s<i.length;s++)if((a=this._input.match(this.rules[i[s]]))&&(!e||a[0].length>e[0].length)){if(e=a,r=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(a,i[s])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,a,r){switch(a){case 0:return this.begin("open_directive"),86;case 1:return this.begin("type_directive"),87;case 2:return this.popState(),this.begin("arg_directive"),17;case 3:return this.popState(),this.popState(),89;case 4:return 88;case 5:case 56:case 69:return 5;case 6:case 7:case 8:case 9:case 10:break;case 11:return 25;case 12:return this.begin("LINE"),20;case 13:return this.begin("ID"),56;case 14:return this.begin("ID"),58;case 15:return 19;case 16:return this.begin("ID"),59;case 17:return e.yytext=e.yytext.trim(),this.begin("ALIAS"),76;case 18:return this.popState(),this.popState(),this.begin("LINE"),57;case 19:return this.popState(),this.popState(),5;case 20:return this.begin("LINE"),42;case 21:return this.begin("LINE"),43;case 22:return this.begin("LINE"),44;case 23:return this.begin("LINE"),45;case 24:return this.begin("LINE"),55;case 25:return this.begin("LINE"),47;case 26:return this.begin("LINE"),49;case 27:return this.begin("LINE"),54;case 28:return this.begin("LINE"),50;case 29:return this.begin("LINE"),53;case 30:return this.begin("LINE"),52;case 31:return this.popState(),21;case 32:return 22;case 33:return 71;case 34:return 72;case 35:return 65;case 36:return 66;case 37:return 67;case 38:return 68;case 39:return 63;case 40:return 60;case 41:return this.begin("ID"),27;case 42:return this.begin("ID"),29;case 43:return 35;case 44:return 36;case 45:return this.begin("acc_title"),37;case 46:return this.popState(),"acc_title_value";case 47:return this.begin("acc_descr"),39;case 48:return this.popState(),"acc_descr_value";case 49:this.begin("acc_descr_multiline");break;case 50:this.popState();break;case 51:return"acc_descr_multiline_value";case 52:return 7;case 53:return 24;case 54:return 26;case 55:return 70;case 57:return e.yytext=e.yytext.trim(),76;case 58:return 79;case 59:return 80;case 60:return 77;case 61:return 78;case 62:return 81;case 63:return 82;case 64:return 83;case 65:return 84;case 66:return 85;case 67:return 74;case 68:return 75;case 70:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:[^\->:\n,;]+?([\-]*[^\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[50,51],inclusive:!1},acc_descr:{rules:[48],inclusive:!1},acc_title:{rules:[46],inclusive:!1},open_directive:{rules:[1,8],inclusive:!1},type_directive:{rules:[2,3,8],inclusive:!1},arg_directive:{rules:[3,4,8],inclusive:!1},ID:{rules:[7,8,17],inclusive:!1},ALIAS:{rules:[7,8,18,19],inclusive:!1},LINE:{rules:[7,8,31],inclusive:!1},INITIAL:{rules:[0,5,6,8,9,10,11,12,13,14,15,16,20,21,22,23,24,25,26,27,28,29,30,32,33,34,35,36,37,38,39,40,41,42,43,44,45,47,49,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70],inclusive:!0}}},U.prototype=H,H.Parser=U,new U}();p.parser=p;let g={},u={},x={},y=[],m=[],f=!1,b=function(t){y.push({name:t.text,wrap:void 0===t.wrap&&v()||!!t.wrap,fill:t.color,actorKeys:[]}),s=y.slice(-1)[0]},T=function(t,e,a,r){let n=s,o=g[t];if(o){if(s&&o.box&&s!==o.box)throw Error("A same participant should only be defined in one Box: "+o.name+" can't be in '"+o.box.name+"' and in '"+s.name+"' at the same time.");if(n=o.box?o.box:s,o.box=n,o&&e===o.name&&null==a)return}(null==a||null==a.text)&&(a={text:e,wrap:null,type:r}),(null==r||null==a.text)&&(a={text:e,wrap:null,type:r}),g[t]={box:n,name:e,description:a.text,wrap:void 0===a.wrap&&v()||!!a.wrap,prevActor:i,links:{},properties:{},actorCnt:null,rectData:null,type:r||"participant"},i&&g[i]&&(g[i].nextActor=t),s&&s.actorKeys.push(t),i=t},E=t=>{let e;let a=0;for(e=0;e<m.length;e++)m[e].type===P.ACTIVE_START&&m[e].from.actor===t&&a++,m[e].type===P.ACTIVE_END&&m[e].from.actor===t&&a--;return a},w=function(t,e,a={text:void 0,wrap:void 0},r){if(r===P.ACTIVE_END&&1>E(t.actor)){let e=Error("Trying to inactivate an inactive participant ("+t.actor+")");throw e.hash={text:"->>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},e}return m.push({from:t,to:e,message:a.text,wrap:void 0===a.wrap&&v()||!!a.wrap,type:r}),!0},_=function(t){return g[t]},v=()=>void 0!==r?r:(0,c.c)().sequence.wrap,P={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32},k=function(t,e,a){a.text,void 0===a.wrap&&v()||a.wrap;let r=[].concat(t,t);m.push({from:r[0],to:r[1],message:a.text,wrap:void 0===a.wrap&&v()||!!a.wrap,type:P.NOTE,placement:e})},L=function(t,e){let a=_(t);try{let t=(0,c.d)(e.text,(0,c.c)());t=(t=t.replace(/&/g,"&")).replace(/=/g,"=");let r=JSON.parse(t);M(a,r)}catch(t){c.l.error("error while parsing actor link text",t)}},I=function(t,e){let a=_(t);try{let t={},n=(0,c.d)(e.text,(0,c.c)());var r=n.indexOf("@"),i=(n=(n=n.replace(/&/g,"&")).replace(/=/g,"=")).slice(0,r-1).trim(),s=n.slice(r+1).trim();t[i]=s,M(a,t)}catch(t){c.l.error("error while parsing actor link text",t)}};function M(t,e){if(null==t.links)t.links=e;else for(let a in e)t.links[a]=e[a]}let N=function(t,e){let a=_(t);try{let t=(0,c.d)(e.text,(0,c.c)()),r=JSON.parse(t);A(a,r)}catch(t){c.l.error("error while parsing actor properties text",t)}};function A(t,e){if(null==t.properties)t.properties=e;else for(let a in e)t.properties[a]=e[a]}let S=function(t,e){let a=_(t),r=document.getElementById(e.text);try{let t=r.innerHTML,e=JSON.parse(t);e.properties&&A(a,e.properties),e.links&&M(a,e.links)}catch(t){c.l.error("error while parsing actor details text",t)}},O=function(t){if(Array.isArray(t))t.forEach(function(t){O(t)});else switch(t.type){case"sequenceIndex":m.push({from:void 0,to:void 0,message:{start:t.sequenceIndex,step:t.sequenceIndexStep,visible:t.sequenceVisible},wrap:!1,type:t.signalType});break;case"addParticipant":T(t.actor,t.actor,t.description,t.draw);break;case"createParticipant":if(g[t.actor])throw Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");n=t.actor,T(t.actor,t.actor,t.description,t.draw),u[t.actor]=m.length;break;case"destroyParticipant":o=t.actor,x[t.actor]=m.length;break;case"activeStart":case"activeEnd":w(t.actor,void 0,void 0,t.signalType);break;case"addNote":k(t.actor,t.placement,t.text);break;case"addLinks":L(t.actor,t.text);break;case"addALink":I(t.actor,t.text);break;case"addProperties":N(t.actor,t.text);break;case"addDetails":S(t.actor,t.text);break;case"addMessage":if(n){if(t.to!==n)throw Error("The created participant "+n+" does not have an associated creating message after its declaration. Please check the sequence diagram.");n=void 0}else if(o){if(t.to!==o&&t.from!==o)throw Error("The destroyed participant "+o+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");o=void 0}w(t.from,t.to,t.msg,t.signalType);break;case"boxStart":b(t.boxData);break;case"boxEnd":s=void 0;break;case"loopStart":w(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":case"rectEnd":case"optEnd":case"altEnd":case"parEnd":case"criticalEnd":case"breakEnd":w(void 0,void 0,void 0,t.signalType);break;case"rectStart":w(void 0,void 0,t.color,t.signalType);break;case"optStart":w(void 0,void 0,t.optText,t.signalType);break;case"altStart":case"else":w(void 0,void 0,t.altText,t.signalType);break;case"setAccTitle":(0,c.s)(t.text);break;case"parStart":case"and":w(void 0,void 0,t.parText,t.signalType);break;case"criticalStart":w(void 0,void 0,t.criticalText,t.signalType);break;case"option":w(void 0,void 0,t.optionText,t.signalType);break;case"breakStart":w(void 0,void 0,t.breakText,t.signalType)}},D={addActor:T,addMessage:function(t,e,a,r){m.push({from:t,to:e,message:a.text,wrap:void 0===a.wrap&&v()||!!a.wrap,answer:r})},addSignal:w,addLinks:L,addDetails:S,addProperties:N,autoWrap:v,setWrap:function(t){r=t},enableSequenceNumbers:function(){f=!0},disableSequenceNumbers:function(){f=!1},showSequenceNumbers:()=>f,getMessages:function(){return m},getActors:function(){return g},getCreatedActors:function(){return u},getDestroyedActors:function(){return x},getActor:_,getActorKeys:function(){return Object.keys(g)},getActorProperty:function(t,e){if(void 0!==t&&void 0!==t.properties)return t.properties[e]},getAccTitle:c.g,getBoxes:function(){return y},getDiagramTitle:c.t,setDiagramTitle:c.r,parseDirective:function(t,e,a){c.m.parseDirective(this,t,e,a)},getConfig:()=>(0,c.c)().sequence,clear:function(){g={},u={},x={},y=[],m=[],f=!1,(0,c.v)()},parseMessage:function(t){let e=t.trim(),a={text:e.replace(/^:?(?:no)?wrap:/,"").trim(),wrap:null!==e.match(/^:?wrap:/)||null===e.match(/^:?nowrap:/)&&void 0};return c.l.debug("parseMessage:",a),a},parseBoxData:function(t){let e=t.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/),a=null!=e&&e[1]?e[1].trim():"transparent",r=null!=e&&e[2]?e[2].trim():void 0;if(window&&window.CSS)window.CSS.supports("color",a)||(a="transparent",r=t.trim());else{let e=new Option().style;e.color=a,e.color!==a&&(a="transparent",r=t.trim())}return{color:a,text:void 0!==r?(0,c.d)(r.replace(/^:?(?:no)?wrap:/,""),(0,c.c)()):void 0,wrap:void 0!==r?null!==r.match(/^:?wrap:/)||null===r.match(/^:?nowrap:/)&&void 0:void 0}},LINETYPE:P,ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},addNote:k,setAccTitle:c.s,apply:O,setAccDescription:c.b,getAccDescription:c.a,hasAtLeastOneBox:function(){return y.length>0},hasAtLeastOneBoxWithTitle:function(){return y.some(t=>t.name)}},R=function(t,e){return(0,h.d)(t,e)},C=(t,e)=>{(0,c.H)(()=>{let a=document.querySelectorAll(t);0!==a.length&&(a[0].addEventListener("mouseover",function(){$("actor"+e+"_popup")}),a[0].addEventListener("mouseout",function(){Y("actor"+e+"_popup")}))})},$=function(t){var e=document.getElementById(t);null!=e&&(e.style.display="block")},Y=function(t){var e=document.getElementById(t);null!=e&&(e.style.display="none")},B=function(t,e){let a=0,r=0,i=e.text.split(c.e.lineBreakRegex),[s,n]=(0,c.F)(e.fontSize),o=[],l=0,h=()=>e.y;if(void 0!==e.valign&&void 0!==e.textMargin&&e.textMargin>0)switch(e.valign){case"top":case"start":h=()=>Math.round(e.y+e.textMargin);break;case"middle":case"center":h=()=>Math.round(e.y+(a+r+e.textMargin)/2);break;case"bottom":case"end":h=()=>Math.round(e.y+(a+r+2*e.textMargin)-e.textMargin)}if(void 0!==e.anchor&&void 0!==e.textMargin&&void 0!==e.width)switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin),e.anchor="start",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2),e.anchor="middle",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor="end",e.dominantBaseline="middle",e.alignmentBaseline="middle"}for(let[d,p]of i.entries()){void 0!==e.textMargin&&0===e.textMargin&&void 0!==s&&(l=d*s);let i=t.append("text");i.attr("x",e.x),i.attr("y",h()),void 0!==e.anchor&&i.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),void 0!==e.fontFamily&&i.style("font-family",e.fontFamily),void 0!==n&&i.style("font-size",n),void 0!==e.fontWeight&&i.style("font-weight",e.fontWeight),void 0!==e.fill&&i.attr("fill",e.fill),void 0!==e.class&&i.attr("class",e.class),void 0!==e.dy?i.attr("dy",e.dy):0!==l&&i.attr("dy",l);let g=p||c.Z;if(e.tspan){let t=i.append("tspan");t.attr("x",e.x),void 0!==e.fill&&t.attr("fill",e.fill),t.text(g)}else i.text(g);void 0!==e.valign&&void 0!==e.textMargin&&e.textMargin>0&&(r+=(i._groups||i)[0][0].getBBox().height,a=r),o.push(i)}return o},V=function(t,e){var a,r,i,s;let n=t.append("polygon");return n.attr("points",(a=e.x,r=e.y,a+","+r+" "+(a+(i=e.width))+","+r+" "+(a+i)+","+(r+(s=e.height)-7)+" "+(a+i-8.4)+","+(r+s)+" "+a+","+(r+s))),n.attr("class","labelBox"),e.y=e.y+e.height/2,B(t,e),n},F=-1,q=(t,e,a,r)=>{t.select&&a.forEach(a=>{let i=e[a],s=t.select("#actor"+i.actorCnt);!r.mirrorActors&&i.stopy?s.attr("y2",i.stopy+i.height/2):r.mirrorActors&&s.attr("y2",i.stopy)})},W=function(t,e,a,r){let i=r?e.stopy:e.starty,s=e.x+e.width/2,n=i+5,o=t.append("g").lower();var c=o;r||(F++,c.append("line").attr("id","actor"+F).attr("x1",s).attr("y1",n).attr("x2",s).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),c=o.append("g"),e.actorCnt=F,null!=e.links&&(c.attr("id","root-"+F),C("#root-"+F,F)));let l=(0,h.g)();var d="actor";null!=e.properties&&e.properties.class?d=e.properties.class:l.fill="#eaeaea",l.x=e.x,l.y=i,l.width=e.width,l.height=e.height,l.class=d,l.rx=3,l.ry=3;let p=R(c,l);if(e.rectData=l,null!=e.properties&&e.properties.icon){let t=e.properties.icon.trim();"@"===t.charAt(0)?(0,h.b)(c,l.x+l.width-20,l.y+10,t.substr(1)):(0,h.c)(c,l.x+l.width-20,l.y+10,t)}j(a)(e.description,c,l.x,l.y,l.width,l.height,{class:"actor"},a);let g=e.height;if(p.node){let t=p.node().getBBox();e.height=t.height,g=t.height}return g},z=function(t,e,a,r){let i=r?e.stopy:e.starty,s=e.x+e.width/2,n=i+80;t.lower(),r||(F++,t.append("line").attr("id","actor"+F).attr("x1",s).attr("y1",n).attr("x2",s).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),e.actorCnt=F);let o=t.append("g");o.attr("class","actor-man");let c=(0,h.g)();c.x=e.x,c.y=i,c.fill="#eaeaea",c.width=e.width,c.height=e.height,c.class="actor",c.rx=3,c.ry=3,o.append("line").attr("id","actor-man-torso"+F).attr("x1",s).attr("y1",i+25).attr("x2",s).attr("y2",i+45),o.append("line").attr("id","actor-man-arms"+F).attr("x1",s-18).attr("y1",i+33).attr("x2",s+18).attr("y2",i+33),o.append("line").attr("x1",s-18).attr("y1",i+60).attr("x2",s).attr("y2",i+45),o.append("line").attr("x1",s).attr("y1",i+45).attr("x2",s+18-2).attr("y2",i+60);let l=o.append("circle");l.attr("cx",e.x+e.width/2),l.attr("cy",i+10),l.attr("r",15),l.attr("width",e.width),l.attr("height",e.height);let d=o.node().getBBox();return e.height=d.height,j(a)(e.description,o,c.x,c.y+35,c.width,c.height,{class:"actor"},a),e.height},H=function(t,e){(0,h.a)(t,e)},U=function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},j=function(){function t(t,e,a,i,s,n,o){r(e.append("text").attr("x",a+s/2).attr("y",i+n/2+5).style("text-anchor","middle").text(t),o)}function e(t,e,a,i,s,n,o,l){let{actorFontSize:h,actorFontFamily:d,actorFontWeight:p}=l,[g,u]=(0,c.F)(h),x=t.split(c.e.lineBreakRegex);for(let t=0;t<x.length;t++){let c=t*g-g*(x.length-1)/2,l=e.append("text").attr("x",a+s/2).attr("y",i).style("text-anchor","middle").style("font-size",u).style("font-weight",p).style("font-family",d);l.append("tspan").attr("x",a+s/2).attr("dy",c).text(x[t]),l.attr("y",i+n/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),r(l,o)}}function a(t,a,i,s,n,o,c,l){let h=a.append("switch"),d=h.append("foreignObject").attr("x",i).attr("y",s).attr("width",n).attr("height",o).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,h,i,s,n,o,c,l),r(d,c)}function r(t,e){for(let a in e)e.hasOwnProperty(a)&&t.attr(a,e[a])}return function(r){return"fo"===r.textPlacement?a:"old"===r.textPlacement?t:e}}(),K=function(){function t(t,e,a,i,s,n,o){r(e.append("text").attr("x",a).attr("y",i).style("text-anchor","start").text(t),o)}function e(t,e,a,i,s,n,o,l){let{actorFontSize:h,actorFontFamily:d,actorFontWeight:p}=l,g=t.split(c.e.lineBreakRegex);for(let t=0;t<g.length;t++){let s=t*h-h*(g.length-1)/2,c=e.append("text").attr("x",a).attr("y",i).style("text-anchor","start").style("font-size",h).style("font-weight",p).style("font-family",d);c.append("tspan").attr("x",a).attr("dy",s).text(g[t]),c.attr("y",i+n/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),r(c,o)}}function a(t,a,i,s,n,o,c,l){let h=a.append("switch"),d=h.append("foreignObject").attr("x",i).attr("y",s).attr("width",n).attr("height",o).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,h,i,s,n,o,c,l),r(d,c)}function r(t,e){for(let a in e)e.hasOwnProperty(a)&&t.attr(a,e[a])}return function(r){return"fo"===r.textPlacement?a:"old"===r.textPlacement?t:e}}(),X={drawRect:R,drawText:B,drawLabel:V,drawActor:function(t,e,a,r){switch(e.type){case"actor":return z(t,e,a,r);case"participant":return W(t,e,a,r)}},drawBox:function(t,e,a){let r=t.append("g");H(r,e),e.name&&j(a)(e.name,r,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},a),r.lower()},drawPopup:function(t,e,a,r,i){if(void 0===e.links||null===e.links||0===Object.keys(e.links).length)return{height:0,width:0};let s=e.links,n=e.actorCnt,o=e.rectData;var c="none";i&&(c="block !important");let l=t.append("g");l.attr("id","actor"+n+"_popup"),l.attr("class","actorPopupMenu"),l.attr("display",c),C("#actor"+n+"_popup",n);var h="";void 0!==o.class&&(h=" "+o.class);let p=o.width>a?o.width:a,g=l.append("rect");if(g.attr("class","actorPopupMenuPanel"+h),g.attr("x",o.x),g.attr("y",o.height),g.attr("fill",o.fill),g.attr("stroke",o.stroke),g.attr("width",p),g.attr("height",o.height),g.attr("rx",o.rx),g.attr("ry",o.ry),null!=s){var u=20;for(let t in s){var x=l.append("a"),y=(0,d.Jf)(s[t]);x.attr("xlink:href",y),x.attr("target","_blank"),K(r)(t,x,o.x+10,o.height+u,p,20,{class:"actor"},r),u+=30}}return g.attr("height",u),{height:o.height+u,width:p}},anchorElement:function(t){return t.append("g")},drawActivation:function(t,e,a,r,i){let s=(0,h.g)(),n=e.anchored;s.x=e.startx,s.y=e.starty,s.class="activation"+i%3,s.width=e.stopx-e.startx,s.height=a-e.starty,R(n,s)},drawLoop:function(t,e,a,r){let{boxMargin:i,boxTextMargin:s,labelBoxHeight:n,labelBoxWidth:o,messageFontFamily:c,messageFontSize:l,messageFontWeight:d}=r,p=t.append("g"),g=function(t,e,a,r){return p.append("line").attr("x1",t).attr("y1",e).attr("x2",a).attr("y2",r).attr("class","loopLine")};g(e.startx,e.starty,e.stopx,e.starty),g(e.stopx,e.starty,e.stopx,e.stopy),g(e.startx,e.stopy,e.stopx,e.stopy),g(e.startx,e.starty,e.startx,e.stopy),void 0!==e.sections&&e.sections.forEach(function(t){g(e.startx,t.y,e.stopx,t.y).style("stroke-dasharray","3, 3")});let u=(0,h.e)();return u.text=a,u.x=e.startx,u.y=e.starty,u.fontFamily=c,u.fontSize=l,u.fontWeight=d,u.anchor="middle",u.valign="middle",u.tspan=!1,u.width=o||50,u.height=n||20,u.textMargin=s,u.class="labelText",V(p,u),(u=U()).text=e.title,u.x=e.startx+o/2+(e.stopx-e.startx)/2,u.y=e.starty+i+s,u.anchor="middle",u.valign="middle",u.textMargin=s,u.class="loopText",u.fontFamily=c,u.fontSize=l,u.fontWeight=d,u.wrap=!0,B(p,u),void 0!==e.sectionTitles&&e.sectionTitles.forEach(function(t,a){if(t.message){u.text=t.message,u.x=e.startx+(e.stopx-e.startx)/2,u.y=e.sections[a].y+i+s,u.class="loopText",u.anchor="middle",u.valign="middle",u.tspan=!1,u.fontFamily=c,u.fontSize=l,u.fontWeight=d,u.wrap=e.wrap;let r=Math.round(B(p,u).map(t=>(t._groups||t)[0][0].getBBox().height).reduce((t,e)=>t+e));e.sections[a].height+=r-(i+s)}}),e.height=Math.round(e.stopy-e.starty),p},drawBackgroundRect:H,insertArrowHead:function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},insertArrowFilledHead:function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},insertSequenceNumber:function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},insertArrowCrossHead:function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},insertDatabaseIcon:function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},insertComputerIcon:function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},insertClockIcon:function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},getTextObj:U,getNoteRect:function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},popupMenu:function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = 'block'; }"},popdownMenu:function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = 'none'; }"},fixLifeLineHeights:q,sanitizeUrl:d.Jf},J={},G={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:function(){return Math.max.apply(null,0===this.actors.length?[0]:this.actors.map(t=>t.height||0))+(0===this.loops.length?0:this.loops.map(t=>t.height||0).reduce((t,e)=>t+e))+(0===this.messages.length?0:this.messages.map(t=>t.height||0).reduce((t,e)=>t+e))+(0===this.notes.length?0:this.notes.map(t=>t.height||0).reduce((t,e)=>t+e))},clear:function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},addBox:function(t){this.boxes.push(t)},addActor:function(t){this.actors.push(t)},addLoop:function(t){this.loops.push(t)},addMessage:function(t){this.messages.push(t)},addNote:function(t){this.notes.push(t)},lastActor:function(){return this.actors[this.actors.length-1]},lastLoop:function(){return this.loops[this.loops.length-1]},lastMessage:function(){return this.messages[this.messages.length-1]},lastNote:function(){return this.notes[this.notes.length-1]},actors:[],boxes:[],loops:[],messages:[],notes:[]},init:function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,tn((0,c.c)())},updateVal:function(t,e,a,r){void 0===t[e]?t[e]=a:t[e]=r(a,t[e])},updateBounds:function(t,e,a,r){let i=this,s=0;function n(n){return function(o){s++;let c=i.sequenceItems.length-s+1;i.updateVal(o,"starty",e-c*J.boxMargin,Math.min),i.updateVal(o,"stopy",r+c*J.boxMargin,Math.max),i.updateVal(G.data,"startx",t-c*J.boxMargin,Math.min),i.updateVal(G.data,"stopx",a+c*J.boxMargin,Math.max),"activation"!==n&&(i.updateVal(o,"startx",t-c*J.boxMargin,Math.min),i.updateVal(o,"stopx",a+c*J.boxMargin,Math.max),i.updateVal(G.data,"starty",e-c*J.boxMargin,Math.min),i.updateVal(G.data,"stopy",r+c*J.boxMargin,Math.max))}}this.sequenceItems.forEach(n()),this.activations.forEach(n("activation"))},insert:function(t,e,a,r){let i=c.e.getMin(t,a),s=c.e.getMax(t,a),n=c.e.getMin(e,r),o=c.e.getMax(e,r);this.updateVal(G.data,"startx",i,Math.min),this.updateVal(G.data,"starty",n,Math.min),this.updateVal(G.data,"stopx",s,Math.max),this.updateVal(G.data,"stopy",o,Math.max),this.updateBounds(i,n,s,o)},newActivation:function(t,e,a){let r=a[t.from.actor],i=to(t.from.actor).length||0,s=r.x+r.width/2+(i-1)*J.activationWidth/2;this.activations.push({startx:s,starty:this.verticalPos+2,stopx:s+J.activationWidth,stopy:void 0,actor:t.from.actor,anchored:X.anchorElement(e)})},endActivation:function(t){let e=this.activations.map(function(t){return t.actor}).lastIndexOf(t.from.actor);return this.activations.splice(e,1)[0]},createLoop:function(t={message:void 0,wrap:!1,width:void 0},e){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}},newLoop:function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},endLoop:function(){return this.sequenceItems.pop()},isLoopOverlap:function(){return!!this.sequenceItems.length&&this.sequenceItems[this.sequenceItems.length-1].overlap},addSectionToLoop:function(t){let e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:G.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},saveVerticalPos:function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},resetVerticalPos:function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=c.e.getMax(this.data.stopy,this.verticalPos)},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},Z=function(t,e){G.bumpVerticalPos(J.boxMargin),e.height=J.boxMargin,e.starty=G.getVerticalPos();let a=(0,h.g)();a.x=e.startx,a.y=e.starty,a.width=e.width||J.width,a.class="note";let r=t.append("g"),i=X.drawRect(r,a),s=(0,h.e)();s.x=e.startx,s.y=e.starty,s.width=a.width,s.dy="1em",s.text=e.message,s.class="noteText",s.fontFamily=J.noteFontFamily,s.fontSize=J.noteFontSize,s.fontWeight=J.noteFontWeight,s.anchor=J.noteAlign,s.textMargin=J.noteMargin,s.valign="center";let n=Math.round(B(r,s).map(t=>(t._groups||t)[0][0].getBBox().height).reduce((t,e)=>t+e));i.attr("height",n+2*J.noteMargin),e.height+=n+2*J.noteMargin,G.bumpVerticalPos(n+2*J.noteMargin),e.stopy=e.starty+n+2*J.noteMargin,e.stopx=e.startx+a.width,G.insert(e.startx,e.starty,e.stopx,e.stopy),G.models.addNote(e)},Q=t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),tt=t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),te=t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight}),ta=function(t,e,a,r){let i;let{startx:s,stopx:n,starty:o,message:l,type:d,sequenceIndex:p,sequenceVisible:g}=e,u=c.u.calculateTextDimensions(l,Q(J)),x=(0,h.e)();x.x=s,x.y=o+10,x.width=n-s,x.class="messageText",x.dy="1em",x.text=l,x.fontFamily=J.messageFontFamily,x.fontSize=J.messageFontSize,x.fontWeight=J.messageFontWeight,x.anchor=J.messageAlign,x.valign="center",x.textMargin=J.wrapPadding,x.tspan=!1,B(t,x);let y=u.width;s===n?i=J.rightAngles?t.append("path").attr("d",`M ${s},${a} H ${s+c.e.getMax(J.width/2,y/2)} V ${a+25} H ${s}`):t.append("path").attr("d","M "+s+","+a+" C "+(s+60)+","+(a-10)+" "+(s+60)+","+(a+30)+" "+s+","+(a+20)):((i=t.append("line")).attr("x1",s),i.attr("y1",a),i.attr("x2",n),i.attr("y2",a)),d===r.db.LINETYPE.DOTTED||d===r.db.LINETYPE.DOTTED_CROSS||d===r.db.LINETYPE.DOTTED_POINT||d===r.db.LINETYPE.DOTTED_OPEN?(i.style("stroke-dasharray","3, 3"),i.attr("class","messageLine1")):i.attr("class","messageLine0");let m="";J.arrowMarkerAbsolute&&(m=(m=(m=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),i.attr("stroke-width",2),i.attr("stroke","none"),i.style("fill","none"),(d===r.db.LINETYPE.SOLID||d===r.db.LINETYPE.DOTTED)&&i.attr("marker-end","url("+m+"#arrowhead)"),(d===r.db.LINETYPE.SOLID_POINT||d===r.db.LINETYPE.DOTTED_POINT)&&i.attr("marker-end","url("+m+"#filled-head)"),(d===r.db.LINETYPE.SOLID_CROSS||d===r.db.LINETYPE.DOTTED_CROSS)&&i.attr("marker-end","url("+m+"#crosshead)"),(g||J.showSequenceNumbers)&&(i.attr("marker-start","url("+m+"#sequencenumber)"),t.append("text").attr("x",s).attr("y",a+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(p))},tr=function(t,e,a,r,i,s,n){let o,l=0,h=0,d=0;for(let t of r){let r=e[t],s=r.box;o&&o!=s&&(n||G.models.addBox(o),h+=J.boxMargin+o.margin),s&&s!=o&&(n||(s.x=l+h,s.y=i),h+=s.margin),r.width=r.width||J.width,r.height=c.e.getMax(r.height||J.height,J.height),r.margin=r.margin||J.actorMargin,d=c.e.getMax(d,r.height),a[r.name]&&(h+=r.width/2),r.x=l+h,r.starty=G.getVerticalPos(),G.insert(r.x,i,r.x+r.width,r.height),l+=r.width+h,r.box&&(r.box.width=l+s.margin-r.box.x),h=r.margin,o=r.box,G.models.addActor(r)}o&&!n&&G.models.addBox(o),G.bumpVerticalPos(d)},ti=function(t,e,a,r){if(r){let r=0;for(let i of(G.bumpVerticalPos(2*J.boxMargin),a)){let a=e[i];a.stopy||(a.stopy=G.getVerticalPos());let s=X.drawActor(t,a,J,!0);r=c.e.getMax(r,s)}G.bumpVerticalPos(r+J.boxMargin)}else for(let r of a){let a=e[r];X.drawActor(t,a,J,!1)}},ts=function(t,e,a,r){let i=0,s=0;for(let n of a){let a=e[n],o=th(a),c=X.drawPopup(t,a,o,J,J.forceMenus,r);c.height>i&&(i=c.height),c.width+a.x>s&&(s=c.width+a.x)}return{maxHeight:i,maxWidth:s}},tn=function(t){(0,c.f)(J,t),t.fontFamily&&(J.actorFontFamily=J.noteFontFamily=J.messageFontFamily=t.fontFamily),t.fontSize&&(J.actorFontSize=J.noteFontSize=J.messageFontSize=t.fontSize),t.fontWeight&&(J.actorFontWeight=J.noteFontWeight=J.messageFontWeight=t.fontWeight)},to=function(t){return G.activations.filter(function(e){return e.actor===t})},tc=function(t,e){let a=e[t],r=to(t);return[r.reduce(function(t,e){return c.e.getMin(t,e.startx)},a.x+a.width/2),r.reduce(function(t,e){return c.e.getMax(t,e.stopx)},a.x+a.width/2)]};function tl(t,e,a,r,i){G.bumpVerticalPos(a);let s=r;if(e.id&&e.message&&t[e.id]){let a=t[e.id].width,i=Q(J);e.message=c.u.wrapLabel(`[${e.message}]`,a-2*J.wrapPadding,i),e.width=a,e.wrap=!0;let n=c.u.calculateTextDimensions(e.message,i),o=c.e.getMax(n.height,J.labelBoxHeight);s=r+o,c.l.debug(`${o} - ${e.message}`)}i(e),G.bumpVerticalPos(s)}let th=function(t){let e=0,a=te(J);for(let r in t.links){let t=c.u.calculateTextDimensions(r,a).width+2*J.wrapPadding+2*J.boxMargin;e<t&&(e=t)}return e},td=function(t,e,a){let r=e[t.from].x,i=e[t.to].x,s=t.wrap&&t.message,n=c.u.calculateTextDimensions(s?c.u.wrapLabel(t.message,J.width,tt(J)):t.message,tt(J)),o={width:s?J.width:c.e.getMax(J.width,n.width+2*J.noteMargin),height:0,startx:e[t.from].x,stopx:0,starty:0,stopy:0,message:t.message};return t.placement===a.db.PLACEMENT.RIGHTOF?(o.width=s?c.e.getMax(J.width,n.width):c.e.getMax(e[t.from].width/2+e[t.to].width/2,n.width+2*J.noteMargin),o.startx=r+(e[t.from].width+J.actorMargin)/2):t.placement===a.db.PLACEMENT.LEFTOF?(o.width=s?c.e.getMax(J.width,n.width+2*J.noteMargin):c.e.getMax(e[t.from].width/2+e[t.to].width/2,n.width+2*J.noteMargin),o.startx=r-o.width+(e[t.from].width-J.actorMargin)/2):t.to===t.from?(n=c.u.calculateTextDimensions(s?c.u.wrapLabel(t.message,c.e.getMax(J.width,e[t.from].width),tt(J)):t.message,tt(J)),o.width=s?c.e.getMax(J.width,e[t.from].width):c.e.getMax(e[t.from].width,J.width,n.width+2*J.noteMargin),o.startx=r+(e[t.from].width-o.width)/2):(o.width=Math.abs(r+e[t.from].width/2-(i+e[t.to].width/2))+J.actorMargin,o.startx=r<i?r+e[t.from].width/2-J.actorMargin/2:i+e[t.to].width/2-J.actorMargin/2),s&&(o.message=c.u.wrapLabel(t.message,o.width-2*J.wrapPadding,tt(J))),c.l.debug(`NM:[${o.startx},${o.stopx},${o.starty},${o.stopy}:${o.width},${o.height}=${t.message}]`),o},tp=function(t,e,a){let r=!1;if([a.db.LINETYPE.SOLID_OPEN,a.db.LINETYPE.DOTTED_OPEN,a.db.LINETYPE.SOLID,a.db.LINETYPE.DOTTED,a.db.LINETYPE.SOLID_CROSS,a.db.LINETYPE.DOTTED_CROSS,a.db.LINETYPE.SOLID_POINT,a.db.LINETYPE.DOTTED_POINT].includes(t.type)&&(r=!0),!r)return{};let i=tc(t.from,e),s=tc(t.to,e),n=i[0]<=s[0]?1:0,o=i[0]<s[0]?0:1,l=[...i,...s],h=Math.abs(s[o]-i[n]);t.wrap&&t.message&&(t.message=c.u.wrapLabel(t.message,c.e.getMax(h+2*J.wrapPadding,J.width),Q(J)));let d=c.u.calculateTextDimensions(t.message,Q(J));return{width:c.e.getMax(t.wrap?0:d.width+2*J.wrapPadding,h+2*J.wrapPadding,J.width),height:0,startx:i[n],stopx:s[o],starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,l),toBounds:Math.max.apply(null,l)}},tg=function(t,e,a,r){let i,s,n;let o={},l=[];return t.forEach(function(t){switch(t.id=c.u.random({length:10}),t.type){case r.db.LINETYPE.LOOP_START:case r.db.LINETYPE.ALT_START:case r.db.LINETYPE.OPT_START:case r.db.LINETYPE.PAR_START:case r.db.LINETYPE.PAR_OVER_START:case r.db.LINETYPE.CRITICAL_START:case r.db.LINETYPE.BREAK_START:l.push({id:t.id,msg:t.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case r.db.LINETYPE.ALT_ELSE:case r.db.LINETYPE.PAR_AND:case r.db.LINETYPE.CRITICAL_OPTION:t.message&&(o[(i=l.pop()).id]=i,o[t.id]=i,l.push(i));break;case r.db.LINETYPE.LOOP_END:case r.db.LINETYPE.ALT_END:case r.db.LINETYPE.OPT_END:case r.db.LINETYPE.PAR_END:case r.db.LINETYPE.CRITICAL_END:case r.db.LINETYPE.BREAK_END:o[(i=l.pop()).id]=i;break;case r.db.LINETYPE.ACTIVE_START:{let a=e[t.from?t.from.actor:t.to.actor],r=to(t.from?t.from.actor:t.to.actor).length,i=a.x+a.width/2+(r-1)*J.activationWidth/2,s={startx:i,stopx:i+J.activationWidth,actor:t.from.actor,enabled:!0};G.activations.push(s)}break;case r.db.LINETYPE.ACTIVE_END:{let e=G.activations.map(t=>t.actor).lastIndexOf(t.from.actor);delete G.activations.splice(e,1)[0]}}void 0!==t.placement?(s=td(t,e,r),t.noteModel=s,l.forEach(t=>{(i=t).from=c.e.getMin(i.from,s.startx),i.to=c.e.getMax(i.to,s.startx+s.width),i.width=c.e.getMax(i.width,Math.abs(i.from-i.to))-J.labelBoxWidth})):(n=tp(t,e,r),t.msgModel=n,n.startx&&n.stopx&&l.length>0&&l.forEach(a=>{if(i=a,n.startx===n.stopx){let a=e[t.from],r=e[t.to];i.from=c.e.getMin(a.x-n.width/2,a.x-a.width/2,i.from),i.to=c.e.getMax(r.x+n.width/2,r.x+a.width/2,i.to),i.width=c.e.getMax(i.width,Math.abs(i.to-i.from))-J.labelBoxWidth}else i.from=c.e.getMin(n.startx,i.from),i.to=c.e.getMax(n.stopx,i.to),i.width=c.e.getMax(i.width,n.width)-J.labelBoxWidth}))}),G.activations=[],c.l.debug("Loop type widths:",o),o},tu={parser:p,db:D,renderer:{bounds:G,drawActors:ti,drawActorsPopup:ts,setConf:tn,draw:function(t,e,a,r){let i;let{securityLevel:s,sequence:n}=(0,c.c)();J=n,"sandbox"===s&&(i=(0,l.Ltv)("#i"+e));let o="sandbox"===s?(0,l.Ltv)(i.nodes()[0].contentDocument.body):(0,l.Ltv)("body"),h="sandbox"===s?i.nodes()[0].contentDocument:document;G.init(),c.l.debug(r.db);let d="sandbox"===s?o.select(`[id="${e}"]`):(0,l.Ltv)(`[id="${e}"]`),p=r.db.getActors(),g=r.db.getCreatedActors(),u=r.db.getDestroyedActors(),x=r.db.getBoxes(),y=r.db.getActorKeys(),m=r.db.getMessages(),f=r.db.getDiagramTitle(),b=r.db.hasAtLeastOneBox(),T=r.db.hasAtLeastOneBoxWithTitle(),E=function(t,e,a){let r={};return e.forEach(function(e){if(t[e.to]&&t[e.from]){let i=t[e.to];if(e.placement===a.db.PLACEMENT.LEFTOF&&!i.prevActor||e.placement===a.db.PLACEMENT.RIGHTOF&&!i.nextActor)return;let s=void 0!==e.placement,n=!s,o=s?tt(J):Q(J),l=e.wrap?c.u.wrapLabel(e.message,J.width-2*J.wrapPadding,o):e.message,h=c.u.calculateTextDimensions(l,o).width+2*J.wrapPadding;n&&e.from===i.nextActor?r[e.to]=c.e.getMax(r[e.to]||0,h):n&&e.from===i.prevActor?r[e.from]=c.e.getMax(r[e.from]||0,h):n&&e.from===e.to?(r[e.from]=c.e.getMax(r[e.from]||0,h/2),r[e.to]=c.e.getMax(r[e.to]||0,h/2)):e.placement===a.db.PLACEMENT.RIGHTOF?r[e.from]=c.e.getMax(r[e.from]||0,h):e.placement===a.db.PLACEMENT.LEFTOF?r[i.prevActor]=c.e.getMax(r[i.prevActor]||0,h):e.placement===a.db.PLACEMENT.OVER&&(i.prevActor&&(r[i.prevActor]=c.e.getMax(r[i.prevActor]||0,h/2)),i.nextActor&&(r[e.from]=c.e.getMax(r[e.from]||0,h/2)))}}),c.l.debug("maxMessageWidthPerActor:",r),r}(p,m,r);if(J.height=function(t,e,a){let r=0;for(let a in Object.keys(t).forEach(e=>{let a=t[e];a.wrap&&(a.description=c.u.wrapLabel(a.description,J.width-2*J.wrapPadding,te(J)));let i=c.u.calculateTextDimensions(a.description,te(J));a.width=a.wrap?J.width:c.e.getMax(J.width,i.width+2*J.wrapPadding),a.height=a.wrap?c.e.getMax(i.height,J.height):J.height,r=c.e.getMax(r,a.height)}),e){let r=t[a];if(!r)continue;let i=t[r.nextActor];if(!i){let t=e[a]+J.actorMargin-r.width/2;r.margin=c.e.getMax(t,J.actorMargin);continue}let s=e[a]+J.actorMargin-r.width/2-i.width/2;r.margin=c.e.getMax(s,J.actorMargin)}let i=0;return a.forEach(e=>{let a=Q(J),r=e.actorKeys.reduce((e,a)=>e+=t[a].width+(t[a].margin||0),0);r-=2*J.boxTextMargin,e.wrap&&(e.name=c.u.wrapLabel(e.name,r-2*J.wrapPadding,a));let s=c.u.calculateTextDimensions(e.name,a);i=c.e.getMax(s.height,i);let n=c.e.getMax(r,s.width+2*J.wrapPadding);if(e.margin=J.boxTextMargin,r<n){let t=(n-r)/2;e.margin+=t}}),a.forEach(t=>t.textMaxHeight=i),c.e.getMax(r,J.height)}(p,E,x),X.insertComputerIcon(d),X.insertDatabaseIcon(d),X.insertClockIcon(d),b&&(G.bumpVerticalPos(J.boxMargin),T&&G.bumpVerticalPos(x[0].textMaxHeight)),!0===J.hideUnusedParticipants){let t=new Set;m.forEach(e=>{t.add(e.from),t.add(e.to)}),y=y.filter(e=>t.has(e))}tr(d,p,g,y,0,m,!1);let w=tg(m,p,E,r);X.insertArrowHead(d),X.insertArrowCrossHead(d),X.insertArrowFilledHead(d),X.insertSequenceNumber(d);let _=1,v=1,P=[],k=[];m.forEach(function(t,e){let a,i;switch(t.type){case r.db.LINETYPE.NOTE:G.resetVerticalPos(),Z(d,t.noteModel);break;case r.db.LINETYPE.ACTIVE_START:G.newActivation(t,d,p);break;case r.db.LINETYPE.ACTIVE_END:!function(t,e){let a=G.endActivation(t);a.starty+18>e&&(a.starty=e-6,e+=12),X.drawActivation(d,a,e,J,to(t.from.actor).length),G.insert(a.startx,e-10,a.stopx,e)}(t,G.getVerticalPos());break;case r.db.LINETYPE.LOOP_START:tl(w,t,J.boxMargin,J.boxMargin+J.boxTextMargin,t=>G.newLoop(t));break;case r.db.LINETYPE.LOOP_END:a=G.endLoop(),X.drawLoop(d,a,"loop",J),G.bumpVerticalPos(a.stopy-G.getVerticalPos()),G.models.addLoop(a);break;case r.db.LINETYPE.RECT_START:tl(w,t,J.boxMargin,J.boxMargin,t=>G.newLoop(void 0,t.message));break;case r.db.LINETYPE.RECT_END:a=G.endLoop(),k.push(a),G.models.addLoop(a),G.bumpVerticalPos(a.stopy-G.getVerticalPos());break;case r.db.LINETYPE.OPT_START:tl(w,t,J.boxMargin,J.boxMargin+J.boxTextMargin,t=>G.newLoop(t));break;case r.db.LINETYPE.OPT_END:a=G.endLoop(),X.drawLoop(d,a,"opt",J),G.bumpVerticalPos(a.stopy-G.getVerticalPos()),G.models.addLoop(a);break;case r.db.LINETYPE.ALT_START:tl(w,t,J.boxMargin,J.boxMargin+J.boxTextMargin,t=>G.newLoop(t));break;case r.db.LINETYPE.ALT_ELSE:tl(w,t,J.boxMargin+J.boxTextMargin,J.boxMargin,t=>G.addSectionToLoop(t));break;case r.db.LINETYPE.ALT_END:a=G.endLoop(),X.drawLoop(d,a,"alt",J),G.bumpVerticalPos(a.stopy-G.getVerticalPos()),G.models.addLoop(a);break;case r.db.LINETYPE.PAR_START:case r.db.LINETYPE.PAR_OVER_START:tl(w,t,J.boxMargin,J.boxMargin+J.boxTextMargin,t=>G.newLoop(t)),G.saveVerticalPos();break;case r.db.LINETYPE.PAR_AND:tl(w,t,J.boxMargin+J.boxTextMargin,J.boxMargin,t=>G.addSectionToLoop(t));break;case r.db.LINETYPE.PAR_END:a=G.endLoop(),X.drawLoop(d,a,"par",J),G.bumpVerticalPos(a.stopy-G.getVerticalPos()),G.models.addLoop(a);break;case r.db.LINETYPE.AUTONUMBER:_=t.message.start||_,v=t.message.step||v,t.message.visible?r.db.enableSequenceNumbers():r.db.disableSequenceNumbers();break;case r.db.LINETYPE.CRITICAL_START:tl(w,t,J.boxMargin,J.boxMargin+J.boxTextMargin,t=>G.newLoop(t));break;case r.db.LINETYPE.CRITICAL_OPTION:tl(w,t,J.boxMargin+J.boxTextMargin,J.boxMargin,t=>G.addSectionToLoop(t));break;case r.db.LINETYPE.CRITICAL_END:a=G.endLoop(),X.drawLoop(d,a,"critical",J),G.bumpVerticalPos(a.stopy-G.getVerticalPos()),G.models.addLoop(a);break;case r.db.LINETYPE.BREAK_START:tl(w,t,J.boxMargin,J.boxMargin+J.boxTextMargin,t=>G.newLoop(t));break;case r.db.LINETYPE.BREAK_END:a=G.endLoop(),X.drawLoop(d,a,"break",J),G.bumpVerticalPos(a.stopy-G.getVerticalPos()),G.models.addLoop(a);break;default:try{(i=t.msgModel).starty=G.getVerticalPos(),i.sequenceIndex=_,i.sequenceVisible=r.db.showSequenceNumbers();let a=function(t,e){let a;G.bumpVerticalPos(10);let{startx:r,stopx:i,message:s}=e,n=c.e.splitBreaks(s).length,o=c.u.calculateTextDimensions(s,Q(J)),l=o.height/n;e.height+=l,G.bumpVerticalPos(l);let h=o.height-10,d=o.width;if(r===i){a=G.getVerticalPos()+h,J.rightAngles||(h+=J.boxMargin,a=G.getVerticalPos()+h),h+=30;let t=c.e.getMax(d/2,J.width/2);G.insert(r-t,G.getVerticalPos()-10+h,i+t,G.getVerticalPos()+30+h)}else h+=J.boxMargin,a=G.getVerticalPos()+h,G.insert(r,a-10,i,a);return G.bumpVerticalPos(h),e.height+=h,e.stopy=e.starty+e.height,G.insert(e.fromBounds,e.starty,e.toBounds,e.stopy),a}(0,i);(function(t,e,a,r,i,s,n){function o(a,r){a.x<i[t.from].x?(G.insert(e.stopx-r,e.starty,e.startx,e.stopy+a.height/2+J.noteMargin),e.stopx=e.stopx+r):(G.insert(e.startx,e.starty,e.stopx+r,e.stopy+a.height/2+J.noteMargin),e.stopx=e.stopx-r)}if(s[t.to]==r){let e=i[t.to],r="actor"==e.type?21:e.width/2+3;o(e,r),e.starty=a-e.height/2,G.bumpVerticalPos(e.height/2)}else if(n[t.from]==r){let r=i[t.from];if(J.mirrorActors){let a="actor"==r.type?18:r.width/2;r.x<i[t.to].x?(G.insert(e.startx-a,e.starty,e.stopx,e.stopy+r.height/2+J.noteMargin),e.startx=e.startx+a):(G.insert(e.stopx,e.starty,e.startx+a,e.stopy+r.height/2+J.noteMargin),e.startx=e.startx-a)}r.stopy=a-r.height/2,G.bumpVerticalPos(r.height/2)}else if(n[t.to]==r){let e=i[t.to];if(J.mirrorActors){let t="actor"==e.type?21:e.width/2+3;o(e,t)}e.stopy=a-e.height/2,G.bumpVerticalPos(e.height/2)}})(t,i,a,e,p,g,u),P.push({messageModel:i,lineStartY:a}),G.models.addMessage(i)}catch(t){c.l.error("error while drawing message",t)}}[r.db.LINETYPE.SOLID_OPEN,r.db.LINETYPE.DOTTED_OPEN,r.db.LINETYPE.SOLID,r.db.LINETYPE.DOTTED,r.db.LINETYPE.SOLID_CROSS,r.db.LINETYPE.DOTTED_CROSS,r.db.LINETYPE.SOLID_POINT,r.db.LINETYPE.DOTTED_POINT].includes(t.type)&&(_+=v)}),c.l.debug("createdActors",g),c.l.debug("destroyedActors",u),ti(d,p,y,!1),P.forEach(t=>ta(d,t.messageModel,t.lineStartY,r)),J.mirrorActors&&ti(d,p,y,!0),k.forEach(t=>X.drawBackgroundRect(d,t)),q(d,p,y,J),G.models.boxes.forEach(function(t){t.height=G.getVerticalPos()-t.y,G.insert(t.x,t.y,t.x+t.width,t.height),t.startx=t.x,t.starty=t.y,t.stopx=t.startx+t.width,t.stopy=t.starty+t.height,t.stroke="rgb(0,0,0, 0.5)",X.drawBox(d,t,J)}),b&&G.bumpVerticalPos(J.boxMargin);let L=ts(d,p,y,h),{bounds:I}=G.getBounds(),M=I.stopy-I.starty;M<L.maxHeight&&(M=L.maxHeight);let N=M+2*J.diagramMarginY;J.mirrorActors&&(N=N-J.boxMargin+J.bottomMarginAdj);let A=I.stopx-I.startx;A<L.maxWidth&&(A=L.maxWidth);let S=A+2*J.diagramMarginX;f&&d.append("text").text(f).attr("x",(I.stopx-I.startx)/2-2*J.diagramMarginX).attr("y",-25),(0,c.i)(d,N,S,J.useMaxWidth);let O=f?40:0;d.attr("viewBox",I.startx-J.diagramMarginX+" -"+(J.diagramMarginY+O)+" "+S+" "+(N+O)),c.l.debug("models:",G.models)}},styles:t=>`.actor { - stroke: ${t.actorBorder}; - fill: ${t.actorBkg}; - } - - text.actor > tspan { - fill: ${t.actorTextColor}; - stroke: none; - } - - .actor-line { - stroke: ${t.actorLineColor}; - } - - .messageLine0 { - stroke-width: 1.5; - stroke-dasharray: none; - stroke: ${t.signalColor}; - } - - .messageLine1 { - stroke-width: 1.5; - stroke-dasharray: 2, 2; - stroke: ${t.signalColor}; - } - - #arrowhead path { - fill: ${t.signalColor}; - stroke: ${t.signalColor}; - } - - .sequenceNumber { - fill: ${t.sequenceNumberColor}; - } - - #sequencenumber { - fill: ${t.signalColor}; - } - - #crosshead path { - fill: ${t.signalColor}; - stroke: ${t.signalColor}; - } - - .messageText { - fill: ${t.signalTextColor}; - stroke: none; - } - - .labelBox { - stroke: ${t.labelBoxBorderColor}; - fill: ${t.labelBoxBkgColor}; - } - - .labelText, .labelText > tspan { - fill: ${t.labelTextColor}; - stroke: none; - } - - .loopText, .loopText > tspan { - fill: ${t.loopTextColor}; - stroke: none; - } - - .loopLine { - stroke-width: 2px; - stroke-dasharray: 2, 2; - stroke: ${t.labelBoxBorderColor}; - fill: ${t.labelBoxBorderColor}; - } - - .note { - //stroke: #decc93; - stroke: ${t.noteBorderColor}; - fill: ${t.noteBkgColor}; - } - - .noteText, .noteText > tspan { - fill: ${t.noteTextColor}; - stroke: none; - } - - .activation0 { - fill: ${t.activationBkgColor}; - stroke: ${t.activationBorderColor}; - } - - .activation1 { - fill: ${t.activationBkgColor}; - stroke: ${t.activationBorderColor}; - } - - .activation2 { - fill: ${t.activationBkgColor}; - stroke: ${t.activationBorderColor}; - } - - .actorPopupMenu { - position: absolute; - } - - .actorPopupMenuPanel { - position: absolute; - fill: ${t.actorBkg}; - box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); -} - .actor-man line { - stroke: ${t.actorBorder}; - fill: ${t.actorBkg}; - } - .actor-man circle, line { - stroke: ${t.actorBorder}; - fill: ${t.actorBkg}; - stroke-width: 2px; - } -`}},12441:(t,e,a)=>{a.d(e,{a:()=>n,b:()=>l,c:()=>c,d:()=>s,e:()=>d,f:()=>o,g:()=>h});var r=a(31546),i=a(17367);let s=(t,e)=>{let a=t.append("rect");if(a.attr("x",e.x),a.attr("y",e.y),a.attr("fill",e.fill),a.attr("stroke",e.stroke),a.attr("width",e.width),a.attr("height",e.height),void 0!==e.rx&&a.attr("rx",e.rx),void 0!==e.ry&&a.attr("ry",e.ry),void 0!==e.attrs)for(let t in e.attrs)a.attr(t,e.attrs[t]);return void 0!==e.class&&a.attr("class",e.class),a},n=(t,e)=>{s(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"}).lower()},o=(t,e)=>{let a=e.text.replace(i.J," "),r=t.append("text");r.attr("x",e.x),r.attr("y",e.y),r.attr("class","legend"),r.style("text-anchor",e.anchor),void 0!==e.class&&r.attr("class",e.class);let s=r.append("tspan");return s.attr("x",e.x+2*e.textMargin),s.text(a),r},c=(t,e,a,i)=>{let s=t.append("image");s.attr("x",e),s.attr("y",a);let n=(0,r.Jf)(i);s.attr("xlink:href",n)},l=(t,e,a,i)=>{let s=t.append("use");s.attr("x",e),s.attr("y",a);let n=(0,r.Jf)(i);s.attr("xlink:href",`#${n}`)},h=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),d=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0})}}]); \ No newline at end of file diff --git a/assets/js/5165.e488315a.js b/assets/js/5165.e488315a.js new file mode 100644 index 0000000000..f44f335895 --- /dev/null +++ b/assets/js/5165.e488315a.js @@ -0,0 +1,60 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5165],{44782:(e,t,r)=>{var n,i;t.Qi=t.XO=void 0;let a=r(89042),s=r(46357),o=r(26712);(i=n||(t.XO=n={})).None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:o.Event.None}),i.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:o.Event.None}),i.is=function(e){return e&&(e===i.None||e===i.Cancelled||s.boolean(e.isCancellationRequested)&&!!e.onCancellationRequested)};let l=Object.freeze(function(e,t){let r=(0,a.default)().timer.setTimeout(e.bind(t),0);return{dispose(){r.dispose()}}});class u{constructor(){this._isCancelled=!1}cancel(){!this._isCancelled&&(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?l:(this._emitter||(this._emitter=new o.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}t.Qi=class{get token(){return this._token||(this._token=new u),this._token}cancel(){this._token?this._token.cancel():this._token=n.Cancelled}dispose(){this._token?this._token instanceof u&&this._token.dispose():this._token=n.None}}},26712:(e,t,r)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.Emitter=t.Event=void 0;let i=r(89042);!function(e){let t={dispose(){}};e.None=function(){return t}}(n||(t.Event=n={}));class a{add(e,t=null,r){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(r)&&r.push({dispose:()=>this.remove(e,t)})}remove(e,t=null){if(!this._callbacks)return;let r=!1;for(let n=0,i=this._callbacks.length;n<i;n++)if(this._callbacks[n]===e){if(this._contexts[n]===t){this._callbacks.splice(n,1),this._contexts.splice(n,1);return}r=!0}if(r)throw Error("When adding a listener with a context, you should remove it with the same context")}invoke(...e){if(!this._callbacks)return[];let t=[],r=this._callbacks.slice(0),n=this._contexts.slice(0);for(let a=0,s=r.length;a<s;a++)try{t.push(r[a].apply(n[a],e))}catch(e){(0,i.default)().console.error(e)}return t}isEmpty(){return!this._callbacks||0===this._callbacks.length}dispose(){this._callbacks=void 0,this._contexts=void 0}}class s{constructor(e){this._options=e}get event(){return this._event||(this._event=(e,t,r)=>{this._callbacks||(this._callbacks=new a),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,t);let n={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,t),n.dispose=s._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(r)&&r.push(n),n}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}t.Emitter=s,s._noop=function(){}},46357:(e,t)=>{function r(e){return"string"==typeof e||e instanceof String}function n(e){return Array.isArray(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.stringArray=t.array=t.func=t.error=t.number=t.string=t.boolean=void 0,t.boolean=function(e){return!0===e||!1===e},t.string=r,t.number=function(e){return"number"==typeof e||e instanceof Number},t.error=function(e){return e instanceof Error},t.func=function(e){return"function"==typeof e},t.array=n,t.stringArray=function(e){return n(e)&&e.every(e=>r(e))}},89042:(e,t)=>{let r;function n(){if(void 0===r)throw Error("No runtime abstraction layer installed");return r}Object.defineProperty(t,"__esModule",{value:!0}),(n||(n={})).install=function(e){if(void 0===e)throw Error("No runtime abstraction layer provided");r=e},t.default=n},17e3:(e,t,r)=>{r.d(t,{v:()=>o});var n=r(69663),i=r(81192),a=class extends n.mR{static{(0,n.K2)(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},s={parser:{TokenBuilder:(0,n.K2)(()=>new a,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new n.Tm,"ValueConverter")}};function o(e=i.DD){let t=(0,i.WQ)((0,i.uM)(e),n.sr),r=(0,i.WQ)((0,i.tG)({shared:t}),n.e5,s);return t.ServiceRegistry.register(r),{shared:t,Info:r}}(0,n.K2)(o,"createInfoServices")},15475:(e,t,r)=>{r.d(t,{f:()=>l});var n=r(69663),i=r(81192),a=class extends n.mR{static{(0,n.K2)(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}},s=class extends n.dg{static{(0,n.K2)(this,"PieValueConverter")}runCustomConverter(e,t,r){if("PIE_SECTION_LABEL"===e.name)return t.replace(/"/g,"").trim()}},o={parser:{TokenBuilder:(0,n.K2)(()=>new a,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new s,"ValueConverter")}};function l(e=i.DD){let t=(0,i.WQ)((0,i.uM)(e),n.sr),r=(0,i.WQ)((0,i.tG)({shared:t}),n.KX,o);return t.ServiceRegistry.register(r),{shared:t,Pie:r}}(0,n.K2)(l,"createPieServices")},12739:(e,t,r)=>{r.d(t,{$:()=>o});var n=r(69663),i=r(81192),a=class extends n.mR{static{(0,n.K2)(this,"PacketTokenBuilder")}constructor(){super(["packet-beta"])}},s={parser:{TokenBuilder:(0,n.K2)(()=>new a,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new n.Tm,"ValueConverter")}};function o(e=i.DD){let t=(0,i.WQ)((0,i.uM)(e),n.sr),r=(0,i.WQ)((0,i.tG)({shared:t}),n.AM,s);return t.ServiceRegistry.register(r),{shared:t,Packet:r}}(0,n.K2)(o,"createPacketServices")},46554:(e,t,r)=>{r.d(t,{S:()=>l});var n=r(69663),i=r(81192),a=class extends n.mR{static{(0,n.K2)(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},s=class extends n.dg{static{(0,n.K2)(this,"ArchitectureValueConverter")}runCustomConverter(e,t,r){return"ARCH_ICON"===e.name?t.replace(/[()]/g,"").trim():"ARCH_TEXT_ICON"===e.name?t.replace(/["()]/g,""):"ARCH_TITLE"===e.name?t.replace(/[[\]]/g,"").trim():void 0}},o={parser:{TokenBuilder:(0,n.K2)(()=>new a,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new s,"ValueConverter")}};function l(e=i.DD){let t=(0,i.WQ)((0,i.uM)(e),n.sr),r=(0,i.WQ)((0,i.tG)({shared:t}),n.jE,o);return t.ServiceRegistry.register(r),{shared:t,Architecture:r}}(0,n.K2)(l,"createArchitectureServices")},43439:(e,t,r)=>{r.d(t,{b:()=>o});var n=r(69663),i=r(81192),a=class extends n.mR{static{(0,n.K2)(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},s={parser:{TokenBuilder:(0,n.K2)(()=>new a,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new n.Tm,"ValueConverter")}};function o(e=i.DD){let t=(0,i.WQ)((0,i.uM)(e),n.sr),r=(0,i.WQ)((0,i.tG)({shared:t}),n.eZ,s);return t.ServiceRegistry.register(r),{shared:t,GitGraph:r}}(0,n.K2)(o,"createGitGraphServices")},69663:(e,t,r)=>{r.d(t,{AM:()=>$,K2:()=>c,KX:()=>L,Tm:()=>P,dg:()=>_,e5:()=>C,eZ:()=>O,jE:()=>w,mR:()=>M,sr:()=>N});var n,i,a,s,o,l=r(81192),u=Object.defineProperty,c=(e,t)=>u(e,"name",{value:t,configurable:!0});c(function(e){return g.isInstance(e,"Architecture")},"isArchitecture");var d="Branch";c(function(e){return g.isInstance(e,d)},"isBranch");var h="Commit";c(function(e){return g.isInstance(e,h)},"isCommit"),c(function(e){return g.isInstance(e,"Common")},"isCommon");var f="GitGraph";c(function(e){return g.isInstance(e,f)},"isGitGraph"),c(function(e){return g.isInstance(e,"Info")},"isInfo");var p="Merge";c(function(e){return g.isInstance(e,p)},"isMerge"),c(function(e){return g.isInstance(e,"Packet")},"isPacket"),c(function(e){return g.isInstance(e,"PacketBlock")},"isPacketBlock"),c(function(e){return g.isInstance(e,"Pie")},"isPie"),c(function(e){return g.isInstance(e,"PieSection")},"isPieSection");var m=class extends l.kD{static{c(this,"MermaidAstReflection")}getAllTypes(){return["Architecture","Branch","Checkout","CherryPicking","Commit","Common","Direction","Edge","GitGraph","Group","Info","Junction","Merge","Packet","PacketBlock","Pie","PieSection","Service","Statement"]}computeIsSubtype(e,t){switch(e){case d:case"Checkout":case"CherryPicking":case h:case p:return this.isSubtype("Statement",t);case"Direction":return this.isSubtype(f,t);default:return!1}}getReferenceType(e){let t=`${e.container.$type}:${e.property}`;throw Error(`${t} is not a valid reference id.`)}getTypeMetaData(e){switch(e){case"Architecture":return{name:"Architecture",properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case"Branch":return{name:"Branch",properties:[{name:"name"},{name:"order"}]};case"Checkout":return{name:"Checkout",properties:[{name:"branch"}]};case"CherryPicking":return{name:"CherryPicking",properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case"Commit":return{name:"Commit",properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case"Common":return{name:"Common",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case"Edge":return{name:"Edge",properties:[{name:"lhsDir"},{name:"lhsGroup",defaultValue:!1},{name:"lhsId"},{name:"lhsInto",defaultValue:!1},{name:"rhsDir"},{name:"rhsGroup",defaultValue:!1},{name:"rhsId"},{name:"rhsInto",defaultValue:!1},{name:"title"}]};case"GitGraph":return{name:"GitGraph",properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case"Group":return{name:"Group",properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case"Info":return{name:"Info",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case"Junction":return{name:"Junction",properties:[{name:"id"},{name:"in"}]};case"Merge":return{name:"Merge",properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case"Packet":return{name:"Packet",properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case"PacketBlock":return{name:"PacketBlock",properties:[{name:"end"},{name:"label"},{name:"start"}]};case"Pie":return{name:"Pie",properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case"PieSection":return{name:"PieSection",properties:[{name:"label"},{name:"value"}]};case"Service":return{name:"Service",properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case"Direction":return{name:"Direction",properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};default:return{name:e,properties:[]}}}},g=new m,y=c(()=>n??(n=(0,l.y0)('{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","name":"Info","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"InfoGrammar"),A=c(()=>i??(i=(0,l.y0)(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","name":"Packet","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"packet-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}`)),"PacketGrammar"),T=c(()=>a??(a=(0,l.y0)('{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","name":"Pie","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"PIE_SECTION_LABEL","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]+\\"/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"PIE_SECTION_VALUE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(0|[1-9][0-9]*)(\\\\.[0-9]+)?/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"PieGrammar"),v=c(()=>s??(s=(0,l.y0)('{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","name":"Architecture","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","fragment":true,"definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LeftPort","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RightPort","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Arrow","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ID","definition":{"$type":"RegexToken","regex":"/[\\\\w]+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TEXT_ICON","definition":{"$type":"RegexToken","regex":"/\\\\(\\"[^\\"]+\\"\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"ArchitectureGrammar"),R=c(()=>o??(o=(0,l.y0)(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"rules":[{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"ParserRule","name":"GitGraph","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+(?=\\\\s)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[]}`)),"GitGraphGrammar"),E={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},k={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},I={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},x={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},S={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},N={AstReflection:c(()=>new m,"AstReflection")},C={Grammar:c(()=>y(),"Grammar"),LanguageMetaData:c(()=>E,"LanguageMetaData"),parser:{}},$={Grammar:c(()=>A(),"Grammar"),LanguageMetaData:c(()=>k,"LanguageMetaData"),parser:{}},L={Grammar:c(()=>T(),"Grammar"),LanguageMetaData:c(()=>I,"LanguageMetaData"),parser:{}},w={Grammar:c(()=>v(),"Grammar"),LanguageMetaData:c(()=>x,"LanguageMetaData"),parser:{}},O={Grammar:c(()=>R(),"Grammar"),LanguageMetaData:c(()=>S,"LanguageMetaData"),parser:{}},b={ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/accTitle[\t ]*:([^\n\r]*)/,TITLE:/title([\t ][^\n\r]*|)/},_=class extends l.dM{static{c(this,"AbstractMermaidValueConverter")}runConverter(e,t,r){let n=this.runCommonConverter(e,t,r);return(void 0===n&&(n=this.runCustomConverter(e,t,r)),void 0===n)?super.runConverter(e,t,r):n}runCommonConverter(e,t,r){let n=b[e.name];if(void 0===n)return;let i=n.exec(t);return null===i?void 0:void 0!==i[1]?i[1].trim().replace(/[\t ]{2,}/gm," "):void 0!==i[2]?i[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,"\n"):void 0}},P=class extends _{static{c(this,"CommonValueConverter")}runCustomConverter(e,t,r){}},M=class extends l.QU{static{c(this,"AbstractMermaidTokenBuilder")}constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,t,r){let n=super.buildKeywordTokens(e,t,r);return n.forEach(e=>{this.keywords.has(e.name)&&void 0!==e.PATTERN&&(e.PATTERN=RegExp(e.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),n}};(class extends M{static{c(this,"CommonTokenBuilder")}})},5165:(e,t,r)=>{r.d(t,{qg:()=>s}),r(43439),r(17e3),r(12739),r(15475),r(46554);var n=r(69663),i={},a={info:(0,n.K2)(async()=>{let{createInfoServices:e}=await r.e(80556).then(r.bind(r,80556)),t=e().Info.parser.LangiumParser;i.info=t},"info"),packet:(0,n.K2)(async()=>{let{createPacketServices:e}=await r.e(82450).then(r.bind(r,82450)),t=e().Packet.parser.LangiumParser;i.packet=t},"packet"),pie:(0,n.K2)(async()=>{let{createPieServices:e}=await r.e(50337).then(r.bind(r,50337)),t=e().Pie.parser.LangiumParser;i.pie=t},"pie"),architecture:(0,n.K2)(async()=>{let{createArchitectureServices:e}=await r.e(59818).then(r.bind(r,59818)),t=e().Architecture.parser.LangiumParser;i.architecture=t},"architecture"),gitGraph:(0,n.K2)(async()=>{let{createGitGraphServices:e}=await r.e(87585).then(r.bind(r,87585)),t=e().GitGraph.parser.LangiumParser;i.gitGraph=t},"gitGraph")};async function s(e,t){let r=a[e];if(!r)throw Error(`Unknown diagram type: ${e}`);i[e]||await r();let n=i[e].parse(t);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new o(n);return n.value}(0,n.K2)(s,"parse");var o=class extends Error{constructor(e){super(`Parsing failed: ${e.lexerErrors.map(e=>e.message).join("\n")} ${e.parserErrors.map(e=>e.message).join("\n")}`),this.result=e}static{(0,n.K2)(this,"MermaidParseError")}}},81192:(e,t,r)=>{function n(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$type}function i(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$refText}function a(e){return"object"==typeof e&&null!==e&&n(e.container)&&i(e.reference)&&"string"==typeof e.message}r.d(t,{kD:()=>s,QU:()=>oD,dM:()=>oU,DD:()=>lY,tG:()=>lF,uM:()=>lG,WQ:()=>lK,y0:()=>lQ});class s{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return n(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});let n=r[t];if(void 0!==n)return n;{let n=this.computeIsSubtype(e,t);return r[t]=n,n}}getAllSubTypes(e){let t=this.allSubtypes[e];if(t)return t;{let t=this.getAllTypes(),r=[];for(let n of t)this.isSubtype(n,e)&&r.push(n);return this.allSubtypes[e]=r,r}}}function o(e){return"object"==typeof e&&null!==e&&Array.isArray(e.content)}function l(e){return"object"==typeof e&&null!==e&&"object"==typeof e.tokenType}function u(e){return o(e)&&"string"==typeof e.fullText}class c{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){let e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let e=this.iterator(),t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){let e;let t=[],r=this.iterator();do void 0!==(e=r.next()).value&&t.push(e.value);while(!e.done)return t}toSet(){return new Set(this)}toMap(e,t){return new Map(this.map(r=>[e?e(r):r,t?t(r):r]))}toString(){return this.join()}concat(e){let t=e[Symbol.iterator]();return new c(()=>({first:this.startFn(),firstDone:!1}),e=>{let r;if(!e.firstDone){do if(!(r=this.nextFn(e.first)).done)return r;while(!r.done)e.firstDone=!0}do if(!(r=t.next()).done)return r;while(!r.done)return f})}join(e=","){let t;let r=this.iterator(),n="",i=!1;do{var a;(t=r.next()).done||(i&&(n+=e),n+="string"==typeof(a=t.value)?a:void 0===a?"undefined":"function"==typeof a.toString?a.toString():Object.prototype.toString.call(a)),i=!0}while(!t.done)return n}indexOf(e,t=0){let r=this.iterator(),n=0,i=r.next();for(;!i.done;){if(n>=t&&i.value===e)return n;i=r.next(),n++}return -1}every(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){let t=this.iterator(),r=0,n=t.next();for(;!n.done;)e(n.value,r),n=t.next(),r++}map(e){return new c(this.startFn,t=>{let{done:r,value:n}=this.nextFn(t);return r?f:{done:!1,value:e(n)}})}filter(e){return new c(this.startFn,t=>{let r;do if(!(r=this.nextFn(t)).done&&e(r.value))return r;while(!r.done)return f})}nonNullable(){return this.filter(e=>null!=e)}reduce(e,t){let r=this.iterator(),n=t,i=r.next();for(;!i.done;)n=void 0===n?i.value:e(n,i.value),i=r.next();return n}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){let n=e.next();if(n.done)return r;let i=this.recursiveReduce(e,t,r);return void 0===i?n.value:t(i,n.value)}find(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){let t=this.iterator(),r=0,n=t.next();for(;!n.done;){if(e(n.value))return r;n=t.next(),r++}return -1}includes(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new c(()=>({this:this.startFn()}),t=>{do{if(t.iterator){let e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}let{done:r,value:n}=this.nextFn(t.this);if(!r){let r=e(n);if(!d(r))return{done:!1,value:r};t.iterator=r[Symbol.iterator]()}}while(t.iterator)return f})}flat(e){if(void 0===e&&(e=1),e<=0)return this;let t=e>1?this.flat(e-1):this;return new c(()=>({this:t.startFn()}),e=>{do{if(e.iterator){let t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}let{done:r,value:n}=t.nextFn(e.this);if(!r){if(!d(n))return{done:!1,value:n};e.iterator=n[Symbol.iterator]()}}while(e.iterator)return f})}head(){let e=this.iterator().next();if(!e.done)return e.value}tail(e=1){return new c(()=>{let t=this.startFn();for(let r=0;r<e&&!this.nextFn(t).done;r++);return t},this.nextFn)}limit(e){return new c(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e)?f:this.nextFn(t.state))}distinct(e){let t=new Set;return this.filter(r=>{let n=e?e(r):r;return!t.has(n)&&(t.add(n),!0)})}exclude(e,t){let r=new Set;for(let n of e){let e=t?t(n):n;r.add(e)}return this.filter(e=>{let n=t?t(e):e;return!r.has(n)})}}function d(e){return!!e&&"function"==typeof e[Symbol.iterator]}let h=new c(()=>void 0,()=>f),f=Object.freeze({done:!0,value:void 0});function p(...e){if(1===e.length){let t=e[0];if(t instanceof c)return t;if(d(t))return new c(()=>t[Symbol.iterator](),e=>e.next());if("number"==typeof t.length)return new c(()=>({index:0}),e=>e.index<t.length?{done:!1,value:t[e.index++]}:f)}return e.length>1?new c(()=>({collIndex:0,arrIndex:0}),t=>{do{if(t.iterator){let e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}if(t.array){if(t.arrIndex<t.array.length)return{done:!1,value:t.array[t.arrIndex++]};t.array=void 0,t.arrIndex=0}if(t.collIndex<e.length){let r=e[t.collIndex++];d(r)?t.iterator=r[Symbol.iterator]():r&&"number"==typeof r.length&&(t.array=r)}}while(t.iterator||t.array||t.collIndex<e.length)return f}):h}class m extends c{constructor(e,t,r){super(()=>({iterators:(null==r?void 0:r.includeRoot)?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),e=>{for(e.pruned&&(e.iterators.pop(),e.pruned=!1);e.iterators.length>0;){let r=e.iterators[e.iterators.length-1].next();if(!r.done)return e.iterators.push(t(r.value)[Symbol.iterator]()),r;e.iterators.pop()}return f})}iterator(){let e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}function g(e){return new m(e,e=>o(e)?e.content:[],{includeRoot:!0})}function y(e){return{start:{character:e.startColumn-1,line:e.startLine-1},end:{character:e.endColumn,line:e.endLine-1}}}function A(e){if(!e)return;let{offset:t,end:r,range:n}=e;return{range:n,offset:t,end:r,length:r-t}}(t2=t6||(t6={})).sum=function(e){return e.reduce((e,t)=>e+t,0)},t2.product=function(e){return e.reduce((e,t)=>e*t,0)},t2.min=function(e){return e.reduce((e,t)=>Math.min(e,t))},t2.max=function(e){return e.reduce((e,t)=>Math.max(e,t))},(t4=t3||(t3={}))[t4.Before=0]="Before",t4[t4.After=1]="After",t4[t4.OverlapFront=2]="OverlapFront",t4[t4.OverlapBack=3]="OverlapBack",t4[t4.Inside=4]="Inside";let T=/^[\w\p{L}]$/u;function v(e,t){return l(e)&&t.includes(e.tokenType.name)}class R extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function E(e){throw Error("Error! The input value was not handled.")}let k="AbstractRule",I="AbstractType",x="Condition",S="ValueLiteral",N="AbstractElement",C="BooleanLiteral",$="Conjunction",L="Disjunction",w="InferredType";function O(e){return ey.isInstance(e,w)}let b="Interface";function _(e){return ey.isInstance(e,b)}let P="Negation",M="ParameterReference",D="ParserRule";function U(e){return ey.isInstance(e,D)}let F="SimpleType",G="TerminalRule";function K(e){return ey.isInstance(e,G)}let B="Type";function j(e){return ey.isInstance(e,B)}let V="Action";function H(e){return ey.isInstance(e,V)}let W="Alternatives";function z(e){return ey.isInstance(e,W)}let Y="Assignment";function X(e){return ey.isInstance(e,Y)}let q="CharacterRange",Q="CrossReference";function J(e){return ey.isInstance(e,Q)}let Z="EndOfFile",ee="Group";function et(e){return ey.isInstance(e,ee)}let er="Keyword";function en(e){return ey.isInstance(e,er)}let ei="NegatedToken",ea="RegexToken",es="RuleCall";function eo(e){return ey.isInstance(e,es)}let el="TerminalAlternatives",eu="TerminalGroup",ec="TerminalRuleCall";function ed(e){return ey.isInstance(e,ec)}let eh="UnorderedGroup";function ef(e){return ey.isInstance(e,eh)}let ep="UntilToken",em="Wildcard";class eg extends s{getAllTypes(){return["AbstractElement","AbstractRule","AbstractType","Action","Alternatives","ArrayLiteral","ArrayType","Assignment","BooleanLiteral","CharacterRange","Condition","Conjunction","CrossReference","Disjunction","EndOfFile","Grammar","GrammarImport","Group","InferredType","Interface","Keyword","NamedArgument","NegatedToken","Negation","NumberLiteral","Parameter","ParameterReference","ParserRule","ReferenceType","RegexToken","ReturnType","RuleCall","SimpleType","StringLiteral","TerminalAlternatives","TerminalGroup","TerminalRule","TerminalRuleCall","Type","TypeAttribute","TypeDefinition","UnionType","UnorderedGroup","UntilToken","ValueLiteral","Wildcard"]}computeIsSubtype(e,t){switch(e){case V:case W:case Y:case q:case Q:case Z:case ee:case er:case ei:case ea:case es:case el:case eu:case ec:case eh:case ep:case em:return this.isSubtype(N,t);case"ArrayLiteral":case"NumberLiteral":case"StringLiteral":return this.isSubtype(S,t);case"ArrayType":case"ReferenceType":case F:case"UnionType":return this.isSubtype("TypeDefinition",t);case C:return this.isSubtype(x,t)||this.isSubtype(S,t);case $:case L:case P:case M:return this.isSubtype(x,t);case w:case b:case B:return this.isSubtype(I,t);case D:return this.isSubtype(k,t)||this.isSubtype(I,t);case G:return this.isSubtype(k,t);default:return!1}}getReferenceType(e){let t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return I;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return k;case"Grammar:usedGrammars":return"Grammar";case"NamedArgument:parameter":case"ParameterReference:parameter":return"Parameter";case"TerminalRuleCall:rule":return G;default:throw Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case"AbstractElement":return{name:"AbstractElement",properties:[{name:"cardinality"},{name:"lookahead"}]};case"ArrayLiteral":return{name:"ArrayLiteral",properties:[{name:"elements",defaultValue:[]}]};case"ArrayType":return{name:"ArrayType",properties:[{name:"elementType"}]};case"BooleanLiteral":return{name:"BooleanLiteral",properties:[{name:"true",defaultValue:!1}]};case"Conjunction":return{name:"Conjunction",properties:[{name:"left"},{name:"right"}]};case"Disjunction":return{name:"Disjunction",properties:[{name:"left"},{name:"right"}]};case"Grammar":return{name:"Grammar",properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case"GrammarImport":return{name:"GrammarImport",properties:[{name:"path"}]};case"InferredType":return{name:"InferredType",properties:[{name:"name"}]};case"Interface":return{name:"Interface",properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case"NamedArgument":return{name:"NamedArgument",properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case"Negation":return{name:"Negation",properties:[{name:"value"}]};case"NumberLiteral":return{name:"NumberLiteral",properties:[{name:"value"}]};case"Parameter":return{name:"Parameter",properties:[{name:"name"}]};case"ParameterReference":return{name:"ParameterReference",properties:[{name:"parameter"}]};case"ParserRule":return{name:"ParserRule",properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case"ReferenceType":return{name:"ReferenceType",properties:[{name:"referenceType"}]};case"ReturnType":return{name:"ReturnType",properties:[{name:"name"}]};case"SimpleType":return{name:"SimpleType",properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case"StringLiteral":return{name:"StringLiteral",properties:[{name:"value"}]};case"TerminalRule":return{name:"TerminalRule",properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case"Type":return{name:"Type",properties:[{name:"name"},{name:"type"}]};case"TypeAttribute":return{name:"TypeAttribute",properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case"UnionType":return{name:"UnionType",properties:[{name:"types",defaultValue:[]}]};case"Action":return{name:"Action",properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case"Alternatives":return{name:"Alternatives",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"Assignment":return{name:"Assignment",properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case"CharacterRange":return{name:"CharacterRange",properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case"CrossReference":return{name:"CrossReference",properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case"EndOfFile":return{name:"EndOfFile",properties:[{name:"cardinality"},{name:"lookahead"}]};case"Group":return{name:"Group",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case"Keyword":return{name:"Keyword",properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case"NegatedToken":return{name:"NegatedToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case"RegexToken":return{name:"RegexToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case"RuleCall":return{name:"RuleCall",properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case"TerminalAlternatives":return{name:"TerminalAlternatives",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"TerminalGroup":return{name:"TerminalGroup",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"TerminalRuleCall":return{name:"TerminalRuleCall",properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case"UnorderedGroup":return{name:"UnorderedGroup",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"UntilToken":return{name:"UntilToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case"Wildcard":return{name:"Wildcard",properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}let ey=new eg;function eA(e,t){let r=e;for(;r;){if(t(r))return r;r=r.$container}}function eT(e){let t=function(e){for(;e.$container;)e=e.$container;return e}(e).$document;if(!t)throw Error("AST node has no document.");return t}function ev(e,t){if(!e)throw Error("Node must be an AstNode.");let r=null==t?void 0:t.range;return new c(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){let i=t.keys[t.keyIndex];if(!i.startsWith("$")){let a=e[i];if(n(a)){if(t.keyIndex++,ek(a,r))return{done:!1,value:a}}else if(Array.isArray(a)){for(;t.arrayIndex<a.length;){let e=a[t.arrayIndex++];if(n(e)&&ek(e,r))return{done:!1,value:e}}t.arrayIndex=0}}t.keyIndex++}return f})}function eR(e,t){if(!e)throw Error("Root node must be an AstNode.");return new m(e,e=>ev(e,t))}function eE(e,t){if(e){if((null==t?void 0:t.range)&&!ek(e,t.range))return new m(e,()=>[])}else throw Error("Root node must be an AstNode.");return new m(e,e=>ev(e,t),{includeRoot:!0})}function ek(e,t){var r;if(!t)return!0;let n=null===(r=e.$cstNode)||void 0===r?void 0:r.range;return!!n&&function(e,t){if(e.end.line<t.start.line||e.end.line===t.start.line&&e.end.character<e.start.character)return t3.Before;if(e.start.line>t.end.line||e.start.line===t.end.line&&e.start.character>t.end.character)return t3.After;let r=e.start.line>t.start.line||e.start.line===t.start.line&&e.start.character>=t.start.character,n=e.end.line<t.end.line||e.end.line===t.end.line&&e.end.character<=t.end.character;return r&&n?t3.Inside:r?t3.OverlapBack:t3.OverlapFront}(n,t)>t3.After}function eI(e){return new c(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){let r=t.keys[t.keyIndex];if(!r.startsWith("$")){let n=e[r];if(i(n))return t.keyIndex++,{done:!1,value:{reference:n,container:e,property:r}};if(Array.isArray(n)){for(;t.arrayIndex<n.length;){let a=t.arrayIndex++,s=n[a];if(i(s))return{done:!1,value:{reference:s,container:e,property:r,index:a}}}t.arrayIndex=0}}t.keyIndex++}return f})}function ex(e){return e.charCodeAt(0)}function eS(e,t){Array.isArray(e)?e.forEach(function(e){t.push(e)}):t.push(e)}function eN(e,t){if(!0===e[t])throw"duplicate flag "+t;e[t],e[t]=!0}function eC(e){if(void 0===e)throw Error("Internal Error - Should never get here!");return!0}function e$(){throw Error("Internal Error - Should never get here!")}function eL(e){return"Character"===e.type}let ew=[];for(let e=ex("0");e<=ex("9");e++)ew.push(e);let eO=[ex("_")].concat(ew);for(let e=ex("a");e<=ex("z");e++)eO.push(e);for(let e=ex("A");e<=ex("Z");e++)eO.push(e);let eb=[ex(" "),ex("\f"),ex("\n"),ex("\r"),ex(" "),ex("\v"),ex(" "),ex("\xa0"),ex("\u1680"),ex("\u2000"),ex("\u2001"),ex("\u2002"),ex("\u2003"),ex("\u2004"),ex("\u2005"),ex("\u2006"),ex("\u2007"),ex("\u2008"),ex("\u2009"),ex("\u200A"),ex("\u2028"),ex("\u2029"),ex("\u202F"),ex("\u205F"),ex("\u3000"),ex("\uFEFF")],e_=/[0-9a-fA-F]/,eP=/[0-9]/,eM=/[1-9]/;class eD{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");let t=this.disjunction();this.consumeChar("/");let r={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":eN(r,"global");break;case"i":eN(r,"ignoreCase");break;case"m":eN(r,"multiLine");break;case"u":eN(r,"unicode");break;case"y":eN(r,"sticky")}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:t,loc:this.loc(0)}}disjunction(){let e=[],t=this.idx;for(e.push(this.alternative());"|"===this.peekChar();)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){let e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":let t;switch(this.consumeChar("?"),this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead"}eC(t);let r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return e$()}quantifier(e=!1){let t;let r=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":let n=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:n,atMost:n};break;case",":t=this.isDigit()?{atLeast:n,atMost:this.integerIncludingZero()}:{atLeast:n,atMost:1/0},this.consumeChar("}")}if(!0===e&&void 0===t)return;eC(t)}if((!0!==e||void 0!==t)&&eC(t))return"?"===this.peekChar(0)?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(r),t}atom(){let e;let t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group()}return(void 0===e&&this.isPatternCharacter()&&(e=this.patternCharacter()),eC(e))?(e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):e$()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[ex("\n"),ex("\r"),ex("\u2028"),ex("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e;let t=!1;switch(this.popChar()){case"d":e=ew;break;case"D":e=ew,t=!0;break;case"s":e=eb;break;case"S":e=eb,t=!0;break;case"w":e=eO;break;case"W":e=eO,t=!0}return eC(e)?{type:"Set",value:e,complement:t}:e$()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=ex("\f");break;case"n":e=ex("\n");break;case"r":e=ex("\r");break;case"t":e=ex(" ");break;case"v":e=ex("\v")}return eC(e)?{type:"Character",value:e}:e$()}controlLetterEscapeAtom(){this.consumeChar("c");let e=this.popChar();if(!1===/[a-zA-Z]/.test(e))throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:ex("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){return{type:"Character",value:ex(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case"\n":case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:return{type:"Character",value:ex(this.popChar())}}}characterClass(){let e=[],t=!1;for(this.consumeChar("["),"^"===this.peekChar(0)&&(this.consumeChar("^"),t=!0);this.isClassAtom();){let t=this.classAtom();if(t.type,eL(t)&&this.isRangeDash()){this.consumeChar("-");let r=this.classAtom();if(r.type,eL(r)){if(r.value<t.value)throw Error("Range out of order in character class");e.push({from:t.value,to:r.value})}else eS(t.value,e),e.push(ex("-")),eS(r.value,e)}else eS(t.value,e)}return this.consumeChar("]"),{type:"Set",complement:t,value:e}}classAtom(){switch(this.peekChar()){case"]":case"\n":case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:ex("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let e=!0;(this.consumeChar("("),"?"===this.peekChar(0))?(this.consumeChar("?"),this.consumeChar(":"),e=!1):this.groupIdx++;let t=this.disjunction();this.consumeChar(")");let r={type:"Group",capturing:e,value:t};return e&&(r.idx=this.groupIdx),r}positiveInteger(){let e=this.popChar();if(!1===eM.test(e))throw Error("Expecting a positive integer");for(;eP.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(!1===eP.test(e))throw Error("Expecting an integer");for(;eP.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){let e=this.popChar();switch(e){case"\n":case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:ex(e)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return"-"===this.peekChar()&&this.isClassAtom(1)}isDigit(){return eP.test(this.peekChar(0))}isClassAtom(e=0){switch(this.peekChar(e)){case"]":case"\n":case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}isTerm(){return this.isAtom()||this.isAssertion()}isAtom(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}}isAssertion(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return"?"===this.peekChar(1)&&("="===this.peekChar(2)||"!"===this.peekChar(2));default:return!1}}isQuantifier(){let e=this.saveState();try{return void 0!==this.quantifier(!0)}catch(e){return!1}finally{this.restoreState(e)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case"\n":case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let t="";for(let r=0;r<e;r++){let e=this.popChar();if(!1===e_.test(e))throw Error("Expecting a HexDecimal digits");t+=e}return{type:"Character",value:parseInt(t,16)}}peekChar(e=0){return this.input[this.idx+e]}popChar(){let e=this.peekChar(0);return this.consumeChar(void 0),e}consumeChar(e){if(void 0!==e&&this.input[this.idx]!==e)throw Error("Expected: '"+e+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}class eU{visitChildren(e){for(let t in e){let r=e[t];e.hasOwnProperty(t)&&(void 0!==r.type?this.visit(r):Array.isArray(r)&&r.forEach(e=>{this.visit(e)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e)}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}let eF=/\r?\n/gm,eG=new eD,eK=new class extends eU{constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){let t=String.fromCharCode(e.value);if(this.multiline||"\n"!==t||(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let e=ej(t);this.endRegexpStack.push(e),this.isStarting&&(this.startRegexp+=e)}}visitSet(e){if(!this.multiline){let t=new RegExp(this.regex.substring(e.loc.begin,e.loc.end));this.multiline=!!"\n".match(t)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let t=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t)}}visitChildren(e){"Group"===e.type&&e.quantifier||super.visitChildren(e)}};function eB(e){return("string"==typeof e?new RegExp(e):e).test(" ")}function ej(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function eV(e,t){let r=new Set,n=e.rules.find(e=>U(e)&&e.entry);if(!n)return new Set(e.rules);for(let i of[n].concat(e.rules.filter(e=>K(e)&&e.hidden)))!function e(t,r,n){r.add(t.name),eR(t).forEach(t=>{if(eo(t)||n&&ed(t)){let i=t.rule.ref;i&&!r.has(i.name)&&e(i,r,n)}})}(i,r,t);let i=new Set;for(let t of e.rules)(r.has(t.name)||K(t)&&t.hidden)&&i.add(t);return i}function eH(e,t,r){if(!e||!t)return;let n=eW(e,t,e.astNode,!0);if(0!==n.length)return r=void 0!==r?Math.max(0,Math.min(r,n.length-1)):0,n[r]}function eW(e,t,r,n){if(!n){let r=eA(e.grammarSource,X);if(r&&r.feature===t)return[e]}return o(e)&&e.astNode===r?e.content.flatMap(e=>eW(e,t,r,!1)):[]}function ez(e){let t=e;return O(t)&&(H(t.$container)?t=t.$container.$container:U(t.$container)?t=t.$container:E(t.$container)),function e(t,r,n){var i;function a(r,i){let a;return eA(r,X)||(a=e(i,i,n)),n.set(t,a),a}if(n.has(t))return n.get(t);for(let e of(n.set(t,void 0),eR(r))){if(X(e)&&"name"===e.feature.toLowerCase())return n.set(t,e),e;if(eo(e)&&U(e.rule.ref))return a(e,e.rule.ref);if(ey.isInstance(e,F)&&(null===(i=e.typeRef)||void 0===i?void 0:i.ref))return a(e,e.typeRef.ref)}}(e,t,new Map)}function eY(e){return function e(t,r){if(r.has(t))return!0;for(let n of(r.add(t),eR(t)))if(eo(n)){if(!n.rule.ref||U(n.rule.ref)&&!e(n.rule.ref,r))return!1}else if(X(n))return!1;else if(H(n))return!1;return!!t.definition}(e,new Set)}function eX(e){if(e.inferredType)return e.inferredType.name;if(e.dataType)return e.dataType;if(e.returnType){let t=e.returnType.ref;if(t&&(U(t)||_(t)||j(t)))return t.name}}function eq(e){var t,r;if(U(e))return eY(e)?e.name:null!==(t=eX(e))&&void 0!==t?t:e.name;if(_(e)||j(e)||ey.isInstance(e,"ReturnType"))return e.name;if(H(e)){let t=e.inferredType?e.inferredType.name:(null===(r=e.type)||void 0===r?void 0:r.ref)?eq(e.type.ref):void 0;if(t)return t}else if(O(e))return e.name;throw Error("Cannot get name of Unknown Type")}function eQ(e){let t={s:!1,i:!1,u:!1};return new RegExp(function e(t,r){if(ey.isInstance(t,el))return e0(t.elements.map(t=>e(t)).join("|"),{cardinality:t.cardinality,lookahead:t.lookahead});if(ey.isInstance(t,eu))return e0(t.elements.map(t=>e(t)).join(""),{cardinality:t.cardinality,lookahead:t.lookahead});if(ey.isInstance(t,q))return t.right?e0(`[${eZ(t.left)}-${eZ(t.right)}]`,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1}):e0(eZ(t.left),{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1});if(ed(t)){let r=t.rule.ref;if(!r)throw Error("Missing rule reference.");return e0(e(r.definition),{cardinality:t.cardinality,lookahead:t.lookahead})}if(ey.isInstance(t,ei))return e0(`(?!${e(t.terminal)})${eJ}*?`,{cardinality:t.cardinality,lookahead:t.lookahead});if(ey.isInstance(t,ep))return e0(`${eJ}*?${e(t.terminal)}`,{cardinality:t.cardinality,lookahead:t.lookahead});if(ey.isInstance(t,ea)){let e=t.regex.lastIndexOf("/"),n=t.regex.substring(1,e),i=t.regex.substring(e+1);return r&&(r.i=i.includes("i"),r.s=i.includes("s"),r.u=i.includes("u")),e0(n,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}if(ey.isInstance(t,em))return e0(eJ,{cardinality:t.cardinality,lookahead:t.lookahead});throw Error(`Invalid terminal element: ${null==t?void 0:t.$type}`)}(e.definition,t),Object.entries(t).filter(([,e])=>e).map(([e])=>e).join(""))}let eJ=/[\s\S]/.source;function eZ(e){return ej(e.value)}function e0(e,t){var r;return((!1!==t.wrap||t.lookahead)&&(e=`(${null!==(r=t.lookahead)&&void 0!==r?r:""}${e})`),t.cardinality)?`${e}${t.cardinality}`:e}var e1,e2,e4,e6,e3,e5,e8,e9,e7,te,tt,tr,tn,ti,ta,ts,to,tl,tu,tc,td,th,tf,tp,tm,tg,ty,tA,tT,tv,tR,tE,tk,tI,tx,tS,tN,tC,t$,tL,tw,tO,tb,t_,tP,tM,tD,tU,tF,tG,tK,tB,tj,tV,tH,tW,tz,tY,tX,tq,tQ,tJ,tZ,t0,t1,t2,t4,t6,t3,t5,t8,t9,t7,re,rt,rr,rn,ri,ra,rs,ro,rl,ru,rc,rd,rh,rf,rp,rm,rg,ry,rA,rT,rv,rR,rE,rk,rI,rx,rS,rN,rC,r$,rL,rw,rO,rb,r_,rP,rM,rD,rU,rF,rG,rK,rB,rj,rV,rH,rW,rz,rY,rX,rq,rQ,rJ,rZ,r0,r1,r2,r4,r6,r3,r5,r8,r9,r7,ne,nt,nr,nn,ni,na,ns,no,nl,nu,nc,nd,nh,nf,np,nm,ng,ny,nA,nT,nv,nR,nE,nk,nI,nx=r(7392),nS=r(43337),nN=r(77083),nC=r(23480),n$=r(62859),nL=r(86847);function nw(e){function t(){}t.prototype=e;let r=new t;function n(){return typeof r.bar}return n(),n(),e}let nO=function(e,t,r){var n=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(r=r>i?i:r)<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var a=Array(i);++n<i;)a[n]=e[n+t];return a};var nb=r(52743);let n_=function(e,t,r){var n=null==e?0:e.length;return n?nO(e,(t=r||void 0===t?1:(0,nb.A)(t))<0?0:t,n):[]};var nP=r(57805),nM=r(84805),nD=r(68785),nU=r(53949),nF=r(8860),nG=r(85797),nK=r(95240),nB=Object.prototype.hasOwnProperty,nj=(0,nU.A)(function(e,t){if((0,nG.A)(t)||(0,nF.A)(t)){(0,nD.A)(t,(0,nK.A)(t),e);return}for(var r in t)nB.call(t,r)&&(0,nM.A)(e,r,t[r])}),nV=r(66046),nH=r(18592),nW=r(92860),nz=r(14879);let nY=function(e,t){if(null==e)return{};var r=(0,nV.A)((0,nz.A)(e),function(e){return[e]});return t=(0,nH.A)(t),(0,nW.A)(e,r,function(e,r){return t(e,r[0])})};var nX=r(36798),nq=r(19196),nQ=r(39131),nJ=r(60027),nZ=nJ.A&&nJ.A.isRegExp,n0=nZ?(0,nQ.A)(nZ):function(e){return(0,nq.A)(e)&&"[object RegExp]"==(0,nX.A)(e)};class n1{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),(0,nx.A)(this.definition,t=>{t.accept(e)})}}class n2 extends n1{constructor(e){super([]),this.idx=1,nj(this,nY(e,e=>void 0!==e))}set definition(e){}get definition(){return void 0!==this.referencedRule?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class n4 extends n1{constructor(e){super(e.definition),this.orgText="",nj(this,nY(e,e=>void 0!==e))}}class n6 extends n1{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,nj(this,nY(e,e=>void 0!==e))}}class n3 extends n1{constructor(e){super(e.definition),this.idx=1,nj(this,nY(e,e=>void 0!==e))}}class n5 extends n1{constructor(e){super(e.definition),this.idx=1,nj(this,nY(e,e=>void 0!==e))}}class n8 extends n1{constructor(e){super(e.definition),this.idx=1,nj(this,nY(e,e=>void 0!==e))}}class n9 extends n1{constructor(e){super(e.definition),this.idx=1,nj(this,nY(e,e=>void 0!==e))}}class n7 extends n1{constructor(e){super(e.definition),this.idx=1,nj(this,nY(e,e=>void 0!==e))}}class ie extends n1{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,nj(this,nY(e,e=>void 0!==e))}}class it{constructor(e){this.idx=1,nj(this,nY(e,e=>void 0!==e))}accept(e){e.visit(this)}}class ir{visit(e){switch(e.constructor){case n2:return this.visitNonTerminal(e);case n6:return this.visitAlternative(e);case n3:return this.visitOption(e);case n5:return this.visitRepetitionMandatory(e);case n8:return this.visitRepetitionMandatoryWithSeparator(e);case n7:return this.visitRepetitionWithSeparator(e);case n9:return this.visitRepetition(e);case ie:return this.visitAlternation(e);case it:return this.visitTerminal(e);case n4:return this.visitRule(e);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}var ii=r(19774),ia=r(906);let is=function(e,t){var r;return(0,ia.A)(e,function(e,n,i){return!(r=t(e,n,i))}),!!r};var io=r(28675),il=r(50174);let iu=function(e,t,r){var n=(0,io.A)(e)?ii.A:is;return r&&(0,il.A)(e,t,r)&&(t=void 0),n(e,(0,nH.A)(t,3))};var ic=r(15972),id=Math.max;let ih=function(e,t,r,n){e=(0,nF.A)(e)?e:(0,nS.A)(e),r=r&&!n?(0,nb.A)(r):0;var i=e.length;return r<0&&(r=id(i+r,0)),(0,nP.A)(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&(0,ic.A)(e,t,r)>-1},ip=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(!t(e[r],r,e))return!1;return!0},im=function(e,t){var r=!0;return(0,ia.A)(e,function(e,n,i){return r=!!t(e,n,i)}),r},ig=function(e,t,r){var n=(0,io.A)(e)?ip:im;return r&&(0,il.A)(e,t,r)&&(t=void 0),n(e,(0,nH.A)(t,3))};function iy(e,t=[]){return e instanceof n3||e instanceof n9||e instanceof n7||(e instanceof ie?iu(e.definition,e=>iy(e,t)):!(e instanceof n2&&ih(t,e))&&e instanceof n1&&(e instanceof n2&&t.push(e),ig(e.definition,e=>iy(e,t))))}function iA(e){if(e instanceof n2)return"SUBRULE";if(e instanceof n3)return"OPTION";if(e instanceof ie)return"OR";if(e instanceof n5)return"AT_LEAST_ONE";if(e instanceof n8)return"AT_LEAST_ONE_SEP";if(e instanceof n7)return"MANY_SEP";if(e instanceof n9)return"MANY";else if(e instanceof it)return"CONSUME";else throw Error("non exhaustive match")}class iT{walk(e,t=[]){(0,nx.A)(e.definition,(r,n)=>{let i=n_(e.definition,n+1);if(r instanceof n2)this.walkProdRef(r,i,t);else if(r instanceof it)this.walkTerminal(r,i,t);else if(r instanceof n6)this.walkFlat(r,i,t);else if(r instanceof n3)this.walkOption(r,i,t);else if(r instanceof n5)this.walkAtLeastOne(r,i,t);else if(r instanceof n8)this.walkAtLeastOneSep(r,i,t);else if(r instanceof n7)this.walkManySep(r,i,t);else if(r instanceof n9)this.walkMany(r,i,t);else if(r instanceof ie)this.walkOr(r,i,t);else throw Error("non exhaustive match")})}walkTerminal(e,t,r){}walkProdRef(e,t,r){}walkFlat(e,t,r){let n=t.concat(r);this.walk(e,n)}walkOption(e,t,r){let n=t.concat(r);this.walk(e,n)}walkAtLeastOne(e,t,r){let n=[new n3({definition:e.definition})].concat(t,r);this.walk(e,n)}walkAtLeastOneSep(e,t,r){let n=iv(e,t,r);this.walk(e,n)}walkMany(e,t,r){let n=[new n3({definition:e.definition})].concat(t,r);this.walk(e,n)}walkManySep(e,t,r){let n=iv(e,t,r);this.walk(e,n)}walkOr(e,t,r){let n=t.concat(r);(0,nx.A)(e.definition,e=>{let t=new n6({definition:[e]});this.walk(t,n)})}}function iv(e,t,r){return[new n3({definition:[new it({terminalType:e.separator})].concat(e.definition)})].concat(t,r)}var iR=r(5264);let iE=function(e){return e&&e.length?(0,iR.A)(e):[]};var ik=r(98880);function iI(e){if(e instanceof n2)return iI(e.referencedRule);if(e instanceof it)return[e.terminalType];if(e instanceof n6||e instanceof n3||e instanceof n9||e instanceof n5||e instanceof n8||e instanceof n7||e instanceof it||e instanceof n4)return function(e){let t,r=[],n=e.definition,i=0,a=n.length>i,s=!0;for(;a&&s;)s=iy(t=n[i]),r=r.concat(iI(t)),i+=1,a=n.length>i;return iE(r)}(e);if(e instanceof ie)return function(e){let t=(0,nC.A)(e.definition,e=>iI(e));return iE((0,ik.A)(t))}(e);throw Error("non exhaustive match")}let ix="_~IN~_";class iS extends iT{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,r){}walkProdRef(e,t,r){var n,i;let a=(n=e.referencedRule,i=e.idx,n.name+i+ix+this.topProd.name),s=iI(new n6({definition:t.concat(r)}));this.follows[a]=s}}var iN=r(31454),iC=r(12630),i$=r(56968),iL=r(98032);let iw=function(e){if("function"!=typeof e)throw TypeError("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}},iO=function(e,t){return((0,io.A)(e)?i$.A:iL.A)(e,iw((0,nH.A)(t,3)))};var ib=r(42036),i_=Math.max;let iP=function(e,t,r){var n=null==e?0:e.length;if(!n)return -1;var i=null==r?0:(0,nb.A)(r);return i<0&&(i=i_(n+i,0)),(0,ic.A)(e,t,i)};var iM=r(91825),iD=r(74990),iU=r(22076),iF=r(50695),iG=r(72287),iK=r(18097);let iB=function(e,t,r,n){var i=-1,a=iF.A,s=!0,o=e.length,l=[],u=t.length;if(!o)return l;r&&(t=(0,nV.A)(t,(0,nQ.A)(r))),n?(a=iG.A,s=!1):t.length>=200&&(a=iK.A,s=!1,t=new iU.A(t));e:for(;++i<o;){var c=e[i],d=null==r?c:r(c);if(c=n||0!==c?c:0,s&&d==d){for(var h=u;h--;)if(t[h]===d)continue e;l.push(c)}else a(t,d,n)||l.push(c)}return l};var ij=r(3858),iV=r(48496),iH=r(11755),iW=(0,iV.A)(function(e,t){return(0,iH.A)(e)?iB(e,(0,ij.A)(t,1,iH.A,!0)):[]});let iz=function(e){for(var t=-1,r=null==e?0:e.length,n=0,i=[];++t<r;){var a=e[t];a&&(i[n++]=a)}return i},iY=function(e){return e&&e.length?e[0]:void 0};var iX=r(62663);function iq(e){console&&console.error&&console.error(`Error: ${e}`)}function iQ(e){console&&console.warn&&console.warn(`Warning: ${e}`)}let iJ={},iZ=new eD;function i0(e){let t=e.toString();if(iJ.hasOwnProperty(t))return iJ[t];{let e=iZ.pattern(t);return iJ[t]=e,e}}let i1="Complement Sets are not supported for first char optimization",i2='Unable to use "first char" lexer optimizations:\n';function i4(e,t,r){let n=ah(e);t[n]=n,!0===r&&function(e,t){let r=String.fromCharCode(e),n=r.toUpperCase();if(n!==r){let e=ah(n.charCodeAt(0));t[e]=e}else{let e=r.toLowerCase();if(e!==r){let r=ah(e.charCodeAt(0));t[r]=r}}}(e,t)}function i6(e,t){return(0,iX.A)(e.value,e=>"number"==typeof e?ih(t,e):void 0!==(0,iX.A)(t,t=>e.from<=t&&t<=e.to))}class i3 extends eU{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(!0!==this.found){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return}super.visitChildren(e)}}visitCharacter(e){ih(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?void 0===i6(e,this.targetCharCodes)&&(this.found=!0):void 0!==i6(e,this.targetCharCodes)&&(this.found=!0)}}function i5(e,t){if(!(t instanceof RegExp))return void 0!==(0,iX.A)(t,t=>ih(e,t.charCodeAt(0)));{let r=i0(t),n=new i3(e);return n.visit(r),n.found}}let i8="PATTERN",i9="defaultMode",i7="modes",ae="boolean"==typeof RegExp("(?:)").sticky,at=/[^\\][$]/,ar=/[^\\[][\^]|^\^/;function an(e){let t=e.ignoreCase?"i":"";return RegExp(`^(?:${e.source})`,t)}function ai(e){let t=e.ignoreCase?"iy":"y";return RegExp(`${e.source}`,t)}function aa(e){let t=e.PATTERN;if(n0(t))return!1;if((0,ib.A)(t)||(0,n$.A)(t,"exec"))return!0;if((0,nP.A)(t))return!1;throw Error("non exhaustive match")}function as(e){return!!(0,nP.A)(e)&&1===e.length&&e.charCodeAt(0)}let ao={test:function(e){let t=e.length;for(let r=this.lastIndex;r<t;r++){let t=e.charCodeAt(r);if(10===t)return this.lastIndex=r+1,!0;if(13===t)return 10===e.charCodeAt(r+1)?this.lastIndex=r+2:this.lastIndex=r+1,!0}return!1},lastIndex:0};function al(e,t){if((0,n$.A)(e,"LINE_BREAKS"))return!1;if(n0(e.PATTERN)){try{i5(t,e.PATTERN)}catch(e){return{issue:t5.IDENTIFY_TERMINATOR,errMsg:e.message}}return!1}if((0,nP.A)(e.PATTERN))return!1;if(aa(e))return{issue:t5.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}function au(e){return(0,nC.A)(e,e=>(0,nP.A)(e)?e.charCodeAt(0):e)}function ac(e,t,r){void 0===e[t]?e[t]=[r]:e[t].push(r)}let ad=[];function ah(e){return e<256?e:ad[e]}var af=r(83910),ap=r(77988),am=r(44280);function ag(e){let t=new Date().getTime(),r=e();return{time:new Date().getTime()-t,value:r}}function ay(e,t){let r=e.tokenTypeIdx;return r===t.tokenTypeIdx||!0===t.isParent&&!0===t.categoryMatchesMap[r]}function aA(e,t){return e.tokenTypeIdx===t.tokenTypeIdx}let aT=1,av={};function aR(e){let t=function(e){let t=(0,nL.A)(e),r=e,n=!0;for(;n;){let e=iW(r=iz((0,ik.A)((0,nC.A)(r,e=>e.CATEGORIES))),t);t=t.concat(e),(0,nN.A)(e)?n=!1:r=e}return t}(e);(0,nx.A)(t,e=>{aE(e)||(av[aT]=e,e.tokenTypeIdx=aT++),ak(e)&&!(0,io.A)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),ak(e)||(e.CATEGORIES=[]),(0,n$.A)(e,"categoryMatches")||(e.categoryMatches=[]),(0,n$.A)(e,"categoryMatchesMap")||(e.categoryMatchesMap={})}),(0,nx.A)(t,e=>{(function e(t,r){(0,nx.A)(t,e=>{r.categoryMatchesMap[e.tokenTypeIdx]=!0}),(0,nx.A)(r.CATEGORIES,n=>{let i=t.concat(r);ih(i,n)||e(i,n)})})([],e)}),(0,nx.A)(t,e=>{e.categoryMatches=[],(0,nx.A)(e.categoryMatchesMap,(t,r)=>{e.categoryMatches.push(av[r].tokenTypeIdx)})}),(0,nx.A)(t,e=>{e.isParent=e.categoryMatches.length>0})}function aE(e){return(0,n$.A)(e,"tokenTypeIdx")}function ak(e){return(0,n$.A)(e,"CATEGORIES")}function aI(e){return(0,n$.A)(e,"tokenTypeIdx")}(e1=t5||(t5={}))[e1.MISSING_PATTERN=0]="MISSING_PATTERN",e1[e1.INVALID_PATTERN=1]="INVALID_PATTERN",e1[e1.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",e1[e1.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",e1[e1.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",e1[e1.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",e1[e1.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",e1[e1.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",e1[e1.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",e1[e1.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",e1[e1.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",e1[e1.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",e1[e1.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",e1[e1.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",e1[e1.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",e1[e1.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",e1[e1.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",e1[e1.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE";let ax={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:["\n","\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:{buildUnableToPopLexerModeMessage:e=>`Unable to pop Lexer Mode after encountering Token ->${e.image}<- The Mode Stack is empty`,buildUnexpectedCharactersMessage:(e,t,r,n,i)=>`unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${r} characters.`},traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(ax);class aS{constructor(e,t=ax){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(e,t)=>{if(!0!==this.traceInitPerf)return t();{this.traceInitIndent++;let r=Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${r}--> <${e}>`);let{time:n,value:i}=ag(t),a=n>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${r}<-- <${e}> time: ${n}ms`),this.traceInitIndent--,i}},"boolean"==typeof t)throw Error("The second argument to the Lexer constructor is now an ILexerConfig Object.\na boolean 2nd argument is no longer supported");this.config=nj({},ax,t);let r=this.config.traceInitPerf;!0===r?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):"number"==typeof r&&(this.traceInitMaxIdent=r,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let r;let n=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===ax.lineTerminatorsPattern)this.config.lineTerminatorsPattern=ao;else if(this.config.lineTerminatorCharacters===ax.lineTerminatorCharacters)throw Error("Error: Missing <lineTerminatorCharacters> property on the Lexer config.\n For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS");if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),(0,io.A)(e)?r={modes:{defaultMode:(0,nL.A)(e)},defaultMode:i9}:(n=!1,r=(0,nL.A)(e))}),!1===this.config.skipValidations&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(function(e,t,r){let n=[];return(0,n$.A)(e,i9)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+i9+"> property in its definition\n",type:t5.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,n$.A)(e,i7)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+i7+"> property in its definition\n",type:t5.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,n$.A)(e,i7)&&(0,n$.A)(e,i9)&&!(0,n$.A)(e.modes,e.defaultMode)&&n.push({message:`A MultiMode Lexer cannot be initialized with a ${i9}: <${e.defaultMode}>which does not exist +`,type:t5.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,n$.A)(e,i7)&&(0,nx.A)(e.modes,(e,t)=>{(0,nx.A)(e,(r,i)=>{if((0,iN.A)(r))n.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${t}> at index: <${i}> +`,type:t5.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if((0,n$.A)(r,"LONGER_ALT")){let i=(0,io.A)(r.LONGER_ALT)?r.LONGER_ALT:[r.LONGER_ALT];(0,nx.A)(i,i=>{(0,iN.A)(i)||ih(e,i)||n.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${i.name}> on token <${r.name}> outside of mode <${t}> +`,type:t5.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),n}(r,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(function(e,t,r){let n=[],i=!1,a=iO(iz((0,ik.A)((0,nS.A)(e.modes))),e=>e[i8]===aS.NA),s=au(r);return t&&(0,nx.A)(a,e=>{let t=al(e,s);if(!1!==t){let r={message:function(e,t){if(t.issue===t5.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern. + The problem is in the <${e.name}> Token Type + Root cause: ${t.errMsg}. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(t.issue===t5.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option. + The problem is in the <${e.name}> Token Type + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}(e,t),type:t.issue,tokenType:e};n.push(r)}else(0,n$.A)(e,"LINE_BREAKS")?!0===e.LINE_BREAKS&&(i=!0):i5(s,e.PATTERN)&&(i=!0)}),t&&!i&&n.push({message:"Warning: No LINE_BREAKS Found.\n This Lexer has been defined to track line and column information,\n But none of the Token Types can be identified as matching a line terminator.\n See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS \n for details.",type:t5.NO_LINE_BREAKS_FLAGS}),n}(r,this.trackStartLines,this.config.lineTerminatorCharacters))})),r.modes=r.modes?r.modes:{},(0,nx.A)(r.modes,(e,t)=>{r.modes[t]=iO(e,e=>(0,iN.A)(e))});let i=(0,nK.A)(r.modes);if((0,nx.A)(r.modes,(e,r)=>{this.TRACE_INIT(`Mode: <${r}> processing`,()=>{if(this.modes.push(r),!1===this.config.skipValidations&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(function(e,t){let r=[],n=function(e){let t=(0,iD.A)(e,e=>!(0,n$.A)(e,i8));return{errors:(0,nC.A)(t,e=>({message:"Token Type: ->"+e.name+"<- missing static 'PATTERN' property",type:t5.MISSING_PATTERN,tokenTypes:[e]})),valid:iW(e,t)}}(e);r=r.concat(n.errors);let i=function(e){let t=(0,iD.A)(e,e=>{let t=e[i8];return!n0(t)&&!(0,ib.A)(t)&&!(0,n$.A)(t,"exec")&&!(0,nP.A)(t)});return{errors:(0,nC.A)(t,e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:t5.INVALID_PATTERN,tokenTypes:[e]})),valid:iW(e,t)}}(n.valid),a=i.valid;return(r=(r=(r=(r=r.concat(i.errors)).concat(function(e){let t=[],r=(0,iD.A)(e,e=>n0(e[i8]));return(t=(t=(t=(t=t.concat(function(e){class t extends eU{constructor(){super(...arguments),this.found=!1}visitEndAnchor(e){this.found=!0}}let r=(0,iD.A)(e,e=>{let r=e.PATTERN;try{let e=i0(r),n=new t;return n.visit(e),n.found}catch(e){return at.test(r.source)}});return(0,nC.A)(r,e=>({message:"Unexpected RegExp Anchor Error:\n Token Type: ->"+e.name+"<- static 'PATTERN' cannot contain end of input anchor '$'\n See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.",type:t5.EOI_ANCHOR_FOUND,tokenTypes:[e]}))}(r))).concat(function(e){class t extends eU{constructor(){super(...arguments),this.found=!1}visitStartAnchor(e){this.found=!0}}let r=(0,iD.A)(e,e=>{let r=e.PATTERN;try{let e=i0(r),n=new t;return n.visit(e),n.found}catch(e){return ar.test(r.source)}});return(0,nC.A)(r,e=>({message:"Unexpected RegExp Anchor Error:\n Token Type: ->"+e.name+"<- static 'PATTERN' cannot contain start of input anchor '^'\n See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.",type:t5.SOI_ANCHOR_FOUND,tokenTypes:[e]}))}(r))).concat(function(e){let t=(0,iD.A)(e,e=>{let t=e[i8];return t instanceof RegExp&&(t.multiline||t.global)});return(0,nC.A)(t,e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:t5.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[e]}))}(r))).concat(function(e){let t=[],r=(0,nC.A)(e,r=>(0,iM.A)(e,(e,n)=>(r.PATTERN.source!==n.PATTERN.source||ih(t,n)||n.PATTERN===aS.NA||(t.push(n),e.push(n)),e),[]));r=iz(r);let n=(0,iD.A)(r,e=>e.length>1);return(0,nC.A)(n,e=>{let t=(0,nC.A)(e,e=>e.name),r=iY(e).PATTERN;return{message:`The same RegExp pattern ->${r}<-has been used in all of the following Token Types: ${t.join(", ")} <-`,type:t5.DUPLICATE_PATTERNS_FOUND,tokenTypes:e}})}(r))).concat(function(e){let t=(0,iD.A)(e,e=>e.PATTERN.test(""));return(0,nC.A)(t,e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' must not match an empty string",type:t5.EMPTY_MATCH_PATTERN,tokenTypes:[e]}))}(r))}(a))).concat(function(e){let t=(0,iD.A)(e,e=>{if(!(0,n$.A)(e,"GROUP"))return!1;let t=e.GROUP;return t!==aS.SKIPPED&&t!==aS.NA&&!(0,nP.A)(t)});return(0,nC.A)(t,e=>({message:"Token Type: ->"+e.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:t5.INVALID_GROUP_TYPE_FOUND,tokenTypes:[e]}))}(a))).concat(function(e,t){let r=(0,iD.A)(e,e=>void 0!==e.PUSH_MODE&&!ih(t,e.PUSH_MODE));return(0,nC.A)(r,e=>({message:`Token Type: ->${e.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${e.PUSH_MODE}<-which does not exist`,type:t5.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[e]}))}(a,t))).concat(function(e){let t=[],r=(0,iM.A)(e,(e,t,r)=>{let n=t.PATTERN;return n===aS.NA||((0,nP.A)(n)?e.push({str:n,idx:r,tokenType:t}):n0(n)&&void 0===(0,iX.A)([".","\\","[","]","|","^","$","(",")","?","*","+","{"],e=>-1!==n.source.indexOf(e))&&e.push({str:n.source,idx:r,tokenType:t})),e},[]);return(0,nx.A)(e,(e,n)=>{(0,nx.A)(r,({str:r,idx:i,tokenType:a})=>{if(n<i&&function(e,t){if(n0(t)){let r=t.exec(e);return null!==r&&0===r.index}if((0,ib.A)(t))return t(e,0,[],{});if((0,n$.A)(t,"exec"))return t.exec(e,0,[],{});if("string"==typeof t)return t===e;throw Error("non exhaustive match")}(r,e.PATTERN)){let r=`Token: ->${a.name}<- can never be matched. +Because it appears AFTER the Token Type ->${e.name}<-in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;t.push({message:r,type:t5.UNREACHABLE_PATTERN,tokenTypes:[e,a]})}})}),t}(a))}(e,i))}),(0,nN.A)(this.lexerDefinitionErrors)){let n;aR(e),this.TRACE_INIT("analyzeTokenTypes",()=>{n=function(e,t){let r,n,i,a,s,o,l,u,c,d,h,f;let p=(t=(0,iC.A)(t,{useSticky:ae,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r","\n"],tracer:(e,t)=>t()})).tracer;p("initCharCodeToOptimizedIndexMap",()=>{(function(){if((0,nN.A)(ad)){ad=Array(65536);for(let e=0;e<65536;e++)ad[e]=e>255?255+~~(e/255):e}})()}),p("Reject Lexer.NA",()=>{r=iO(e,e=>e[i8]===aS.NA)});let m=!1;p("Transform Patterns",()=>{m=!1,n=(0,nC.A)(r,e=>{let r=e[i8];if(n0(r)){let e=r.source;return 1!==e.length||"^"===e||"$"===e||"."===e||r.ignoreCase?2!==e.length||"\\"!==e[0]||ih(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],e[1])?t.useSticky?ai(r):an(r):e[1]:e}if((0,ib.A)(r))return m=!0,{exec:r};if("object"==typeof r)return m=!0,r;if("string"==typeof r){if(1===r.length)return r;{let e=new RegExp(r.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"));return t.useSticky?ai(e):an(e)}}throw Error("non exhaustive match")})}),p("misc mapping",()=>{i=(0,nC.A)(r,e=>e.tokenTypeIdx),a=(0,nC.A)(r,e=>{let t=e.GROUP;if(t!==aS.SKIPPED){if((0,nP.A)(t))return t;if((0,iN.A)(t))return!1;throw Error("non exhaustive match")}}),s=(0,nC.A)(r,e=>{let t=e.LONGER_ALT;if(t)return(0,io.A)(t)?(0,nC.A)(t,e=>iP(r,e)):[iP(r,t)]}),o=(0,nC.A)(r,e=>e.PUSH_MODE),l=(0,nC.A)(r,e=>(0,n$.A)(e,"POP_MODE"))}),p("Line Terminator Handling",()=>{let e=au(t.lineTerminatorCharacters);u=(0,nC.A)(r,e=>!1),"onlyOffset"!==t.positionTracking&&(u=(0,nC.A)(r,t=>(0,n$.A)(t,"LINE_BREAKS")?!!t.LINE_BREAKS:!1===al(t,e)&&i5(e,t.PATTERN)))}),p("Misc Mapping #2",()=>{c=(0,nC.A)(r,aa),d=(0,nC.A)(n,as),h=(0,iM.A)(r,(e,t)=>{let r=t.GROUP;return(0,nP.A)(r)&&r!==aS.SKIPPED&&(e[r]=[]),e},{}),f=(0,nC.A)(n,(e,t)=>({pattern:n[t],longerAlt:s[t],canLineTerminator:u[t],isCustom:c[t],short:d[t],group:a[t],push:o[t],pop:l[t],tokenTypeIdx:i[t],tokenType:r[t]}))});let g=!0,y=[];return t.safeMode||p("First Char Optimization",()=>{y=(0,iM.A)(r,(e,r,n)=>{if("string"==typeof r.PATTERN)ac(e,ah(r.PATTERN.charCodeAt(0)),f[n]);else if((0,io.A)(r.START_CHARS_HINT)){let t;(0,nx.A)(r.START_CHARS_HINT,r=>{let i=ah("string"==typeof r?r.charCodeAt(0):r);t!==i&&(t=i,ac(e,i,f[n]))})}else if(n0(r.PATTERN)){if(r.PATTERN.unicode)g=!1,t.ensureOptimizations&&iq(`${i2} Unable to analyze < ${r.PATTERN.toString()} > pattern. + The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let i=function(e,t=!1){try{let t=i0(e);return function e(t,r,n){switch(t.type){case"Disjunction":for(let i=0;i<t.value.length;i++)e(t.value[i],r,n);break;case"Alternative":let i=t.value;for(let t=0;t<i.length;t++){let a=i[t];switch(a.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}switch(a.type){case"Character":i4(a.value,r,n);break;case"Set":if(!0===a.complement)throw Error(i1);(0,nx.A)(a.value,e=>{if("number"==typeof e)i4(e,r,n);else if(!0===n)for(let t=e.from;t<=e.to;t++)i4(t,r,n);else{for(let t=e.from;t<=e.to&&t<256;t++)i4(t,r,n);if(e.to>=256){let t=e.from>=256?e.from:256,n=e.to,i=ah(t),a=ah(n);for(let e=i;e<=a;e++)r[e]=e}}});break;case"Group":e(a.value,r,n);break;default:throw Error("Non Exhaustive Match")}let s=void 0!==a.quantifier&&0===a.quantifier.atLeast;if("Group"===a.type&&!1===function e(t){let r=t.quantifier;return!!r&&0===r.atLeast||!!t.value&&((0,io.A)(t.value)?ig(t.value,e):e(t.value))}(a)||"Group"!==a.type&&!1===s)break}break;default:throw Error("non exhaustive match!")}return(0,nS.A)(r)}(t.value,{},t.flags.ignoreCase)}catch(r){if(r.message===i1)t&&iQ(`${i2} Unable to optimize: < ${e.toString()} > + Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let r="";t&&(r="\n This will disable the lexer's first char optimizations.\n See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details."),iq(`${i2} + Failed parsing: < ${e.toString()} > + Using the @chevrotain/regexp-to-ast library + Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+r)}}return[]}(r.PATTERN,t.ensureOptimizations);(0,nN.A)(i)&&(g=!1),(0,nx.A)(i,t=>{ac(e,t,f[n])})}}else t.ensureOptimizations&&iq(`${i2} TokenType: <${r.name}> is using a custom token pattern without providing <start_chars_hint> parameter. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),g=!1;return e},[])}),{emptyGroups:h,patternIdxToConfig:f,charCodeToPatternIdxToConfig:y,hasCustom:m,canBeOptimized:g}}(e,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[r]=n.patternIdxToConfig,this.charCodeToPatternIdxToConfig[r]=n.charCodeToPatternIdxToConfig,this.emptyGroups=nj({},this.emptyGroups,n.emptyGroups),this.hasCustom=n.hasCustom||this.hasCustom,this.canModeBeOptimized[r]=n.canBeOptimized}})}),this.defaultMode=r.defaultMode,!(0,nN.A)(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling)throw Error("Errors detected in definition of Lexer:\n"+(0,nC.A)(this.lexerDefinitionErrors,e=>e.message).join("-----------------------\n"));(0,nx.A)(this.lexerDefinitionWarning,e=>{iQ(e.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(ae?(this.chopInput=af.A,this.match=this.matchWithTest):(this.updateLastIndex=ap.A,this.match=this.matchWithExec),n&&(this.handleModes=ap.A),!1===this.trackStartLines&&(this.computeNewColumn=af.A),!1===this.trackEndLines&&(this.updateTokenEndLineColumnLocation=ap.A),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{let e=(0,iM.A)(this.canModeBeOptimized,(e,t,r)=>(!1===t&&e.push(r),e),[]);if(t.ensureOptimizations&&!(0,nN.A)(e))throw Error(`Lexer Modes: < ${e.join(", ")} > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{iJ={}}),this.TRACE_INIT("toFastProperties",()=>{nw(this)})})}tokenize(e,t=this.defaultMode){if(!(0,nN.A)(this.lexerDefinitionErrors))throw Error("Unable to Tokenize because Errors detected in definition of Lexer:\n"+(0,nC.A)(this.lexerDefinitionErrors,e=>e.message).join("-----------------------\n"));return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let r,n,i,a,s,o,l,u,c,d,h,f,p,m,g,y,A;let T=e,v=T.length,R=0,E=0,k=Array(this.hasCustom?0:Math.floor(e.length/10)),I=[],x=this.trackStartLines?1:void 0,S=this.trackStartLines?1:void 0,N=function(e){let t={},r=(0,nK.A)(e);return(0,nx.A)(r,r=>{let n=e[r];if((0,io.A)(n))t[r]=[];else throw Error("non exhaustive match")}),t}(this.emptyGroups),C=this.trackStartLines,$=this.config.lineTerminatorsPattern,L=0,w=[],O=[],b=[],_=[];function P(){return w}function M(e){let t=O[ah(e)];return void 0===t?_:t}Object.freeze(_);let D=e=>{if(1===b.length&&void 0===e.tokenType.PUSH_MODE){let t=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(e);I.push({offset:e.startOffset,line:e.startLine,column:e.startColumn,length:e.image.length,message:t})}else{b.pop();let e=(0,am.A)(b);w=this.patternIdxToConfig[e],O=this.charCodeToPatternIdxToConfig[e],L=w.length;let t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;y=O&&t?M:P}};function U(e){b.push(e),O=this.charCodeToPatternIdxToConfig[e],L=(w=this.patternIdxToConfig[e]).length,L=w.length;let t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;y=O&&t?M:P}U.call(this,t);let F=this.config.recoveryEnabled;for(;R<v;){o=null;let t=T.charCodeAt(R),O=y(t),b=O.length;for(r=0;r<b;r++){let n=(A=O[r]).pattern;l=null;let c=A.short;if(!1!==c?t===c&&(o=n):!0===A.isCustom?null!==(g=n.exec(T,R,k,N))?(o=g[0],void 0!==g.payload&&(l=g.payload)):o=null:(this.updateLastIndex(n,R),o=this.match(n,e,R)),null!==o){if(void 0!==(s=A.longerAlt)){let t=s.length;for(i=0;i<t;i++){let t=w[s[i]],r=t.pattern;if(u=null,!0===t.isCustom?null!==(g=r.exec(T,R,k,N))?(a=g[0],void 0!==g.payload&&(u=g.payload)):a=null:(this.updateLastIndex(r,R),a=this.match(r,e,R)),a&&a.length>o.length){o=a,l=u,A=t;break}}}break}}if(null!==o){if(c=o.length,void 0!==(d=A.group)&&(h=A.tokenTypeIdx,f=this.createTokenInstance(o,R,h,A.tokenType,x,S,c),this.handlePayload(f,l),!1===d?E=this.addToken(k,E,f):N[d].push(f)),e=this.chopInput(e,c),R+=c,S=this.computeNewColumn(S,c),!0===C&&!0===A.canLineTerminator){let e,t,r=0;$.lastIndex=0;do!0===(e=$.test(o))&&(t=$.lastIndex-1,r++);while(!0===e)0!==r&&(x+=r,S=c-t,this.updateTokenEndLineColumnLocation(f,d,t,r,x,S,c))}this.handleModes(A,D,U,f)}else{let t=R,r=x,i=S,a=!1===F;for(;!1===a&&R<v;)for(e=this.chopInput(e,1),R++,n=0;n<L;n++){let t=w[n],r=t.pattern,i=t.short;if(!1!==i?T.charCodeAt(R)===i&&(a=!0):!0===t.isCustom?a=null!==r.exec(T,R,k,N):(this.updateLastIndex(r,R),a=null!==r.exec(e)),!0===a)break}if(p=R-t,S=this.computeNewColumn(S,p),m=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(T,t,p,r,i),I.push({offset:t,line:r,column:i,length:p,message:m}),!1===F)break}}return this.hasCustom||(k.length=E),{tokens:k,groups:N,errors:I}}handleModes(e,t,r,n){if(!0===e.pop){let i=e.push;t(n),void 0!==i&&r.call(this,i)}else void 0!==e.push&&r.call(this,e.push)}chopInput(e,t){return e.substring(t)}updateLastIndex(e,t){e.lastIndex=t}updateTokenEndLineColumnLocation(e,t,r,n,i,a,s){let o,l;void 0===t||(l=(o=r===s-1)?-1:0,1===n&&!0===o||(e.endLine=i+l,e.endColumn=a-1+-l))}computeNewColumn(e,t){return e+t}createOffsetOnlyToken(e,t,r,n){return{image:e,startOffset:t,tokenTypeIdx:r,tokenType:n}}createStartOnlyToken(e,t,r,n,i,a){return{image:e,startOffset:t,startLine:i,startColumn:a,tokenTypeIdx:r,tokenType:n}}createFullToken(e,t,r,n,i,a,s){return{image:e,startOffset:t,endOffset:t+s-1,startLine:i,endLine:i,startColumn:a,endColumn:a+s-1,tokenTypeIdx:r,tokenType:n}}addTokenUsingPush(e,t,r){return e.push(r),t}addTokenUsingMemberAccess(e,t,r){return e[t]=r,++t}handlePayloadNoCustom(e,t){}handlePayloadWithCustom(e,t){null!==t&&(e.payload=t)}matchWithTest(e,t,r){return!0===e.test(t)?t.substring(r,e.lastIndex):null}matchWithExec(e,t){let r=e.exec(t);return null!==r?r[0]:null}}function aN(e){return aC(e)?e.LABEL:e.name}function aC(e){return(0,nP.A)(e.LABEL)&&""!==e.LABEL}aS.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",aS.NA=/NOT_APPLICABLE/;let a$="categories",aL="label",aw="group",aO="push_mode",ab="pop_mode",a_="longer_alt",aP="line_breaks",aM="start_chars_hint";function aD(e){let t=e.pattern,r={};if(r.name=e.name,(0,iN.A)(t)||(r.PATTERN=t),(0,n$.A)(e,"parent"))throw"The parent property is no longer supported.\nSee: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.";return(0,n$.A)(e,a$)&&(r.CATEGORIES=e[a$]),aR([r]),(0,n$.A)(e,aL)&&(r.LABEL=e[aL]),(0,n$.A)(e,aw)&&(r.GROUP=e[aw]),(0,n$.A)(e,ab)&&(r.POP_MODE=e[ab]),(0,n$.A)(e,aO)&&(r.PUSH_MODE=e[aO]),(0,n$.A)(e,a_)&&(r.LONGER_ALT=e[a_]),(0,n$.A)(e,aP)&&(r.LINE_BREAKS=e[aP]),(0,n$.A)(e,aM)&&(r.START_CHARS_HINT=e[aM]),r}let aU=aD({name:"EOF",pattern:aS.NA});function aF(e,t,r,n,i,a,s,o){return{image:t,startOffset:r,endOffset:n,startLine:i,endLine:a,startColumn:s,endColumn:o,tokenTypeIdx:e.tokenTypeIdx,tokenType:e}}aR([aU]);let aG={buildMismatchTokenMessage({expected:e,actual:t,previous:r,ruleName:n}){let i=aC(e)?`--> ${aN(e)} <--`:`token of type --> ${e.name} <--`;return`Expecting ${i} but found --> '${t.image}' <--`},buildNotAllInputParsedMessage:({firstRedundant:e,ruleName:t})=>"Redundant input, expecting EOF but found: "+e.image,buildNoViableAltMessage({expectedPathsPerAlt:e,actual:t,previous:r,customUserDescription:n,ruleName:i}){let a="Expecting: ",s="\nbut found: '"+iY(t).image+"'";if(n)return a+n+s;{let t=(0,iM.A)(e,(e,t)=>e.concat(t),[]),r=(0,nC.A)(t,e=>`[${(0,nC.A)(e,e=>aN(e)).join(", ")}]`),n=(0,nC.A)(r,(e,t)=>` ${t+1}. ${e}`);return a+`one of these possible Token sequences: +${n.join("\n")}`+s}},buildEarlyExitMessage({expectedIterationPaths:e,actual:t,customUserDescription:r,ruleName:n}){let i="Expecting: ",a="\nbut found: '"+iY(t).image+"'";if(r)return i+r+a;{let t=(0,nC.A)(e,e=>`[${(0,nC.A)(e,e=>aN(e)).join(",")}]`);return i+`expecting at least one iteration which starts with one of these possible Token sequences:: + <${t.join(" ,")}>`+a}}};Object.freeze(aG);let aK={buildRuleNotFoundError:(e,t)=>"Invalid grammar, reference to a rule which is not defined: ->"+t.nonTerminalName+"<-\ninside top level rule: ->"+e.name+"<-"},aB={buildDuplicateFoundError(e,t){let r=e.name,n=iY(t),i=n.idx,a=iA(n),s=n instanceof it?n.terminalType.name:n instanceof n2?n.nonTerminalName:"",o=`->${a}${i>0?i:""}<- ${s?`with argument: ->${s}<-`:""} + appears more than once (${t.length} times) in the top level rule: ->${r}<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return(o=o.replace(/[ \t]+/g," ")).replace(/\s\s+/g,"\n")},buildNamespaceConflictError:e=>`Namespace conflict found in grammar. +The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${e.name}>. +To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`,buildAlternationPrefixAmbiguityError(e){let t=(0,nC.A)(e.prefixPath,e=>aN(e)).join(", "),r=0===e.alternation.idx?"":e.alternation.idx;return`Ambiguous alternatives: <${e.ambiguityIndices.join(" ,")}> due to common lookahead prefix +in <OR${r}> inside <${e.topLevelRule.name}> Rule, +<${t}> may appears as a prefix path in all these alternatives. +See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`},buildAlternationAmbiguityError(e){let t=(0,nC.A)(e.prefixPath,e=>aN(e)).join(", "),r=0===e.alternation.idx?"":e.alternation.idx;return`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(" ,")}> in <OR${r}> inside <${e.topLevelRule.name}> Rule, +<${t}> may appears as a prefix path in all these alternatives. +See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`},buildEmptyRepetitionError(e){let t=iA(e.repetition);return 0!==e.repetition.idx&&(t+=e.repetition.idx),`The repetition <${t}> within Rule <${e.topLevelRule.name}> can never consume any tokens. +This could lead to an infinite loop.`},buildTokenNameError:e=>"deprecated",buildEmptyAlternationError:e=>`Ambiguous empty alternative: <${e.emptyChoiceIdx+1}> in <OR${e.alternation.idx}> inside <${e.topLevelRule.name}> Rule. +Only the last alternative may be an empty alternative.`,buildTooManyAlternativesError:e=>`An Alternation cannot have more than 256 alternatives: +<OR${e.alternation.idx}> inside <${e.topLevelRule.name}> Rule. + has ${e.alternation.definition.length+1} alternatives.`,buildLeftRecursionError(e){let t=e.topLevelRule.name,r=(0,nC.A)(e.leftRecursionPath,e=>e.name),n=`${t} --> ${r.concat([t]).join(" --> ")}`;return`Left Recursion found in grammar. +rule: <${t}> can be invoked from itself (directly or indirectly) +without consuming any Tokens. The grammar path that causes this is: + ${n} + To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError:e=>"deprecated",buildDuplicateRuleNameError(e){let t;return t=e.topLevelRule instanceof n4?e.topLevelRule.name:e.topLevelRule,`Duplicate definition, rule: ->${t}<- is already defined in the grammar: ->${e.grammarName}<-`}};class aj extends ir{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){(0,nx.A)((0,nS.A)(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){let t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{let t=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:t,type:t7.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}let aV=function(e,t){return(0,ij.A)((0,nC.A)(e,t),1)};var aH=r(46402);let aW=function(e,t,r,n){for(var i=-1,a=null==e?0:e.length;++i<a;){var s=e[i];t(n,s,r(s),e)}return n};var az=Object.prototype.hasOwnProperty,aY=(e2=function(e,t,r){az.call(e,r)?e[r].push(t):(0,aH.A)(e,r,[t])},function(e,t){return((0,io.A)(e)?aW:function(e,t,r,n){return(0,ia.A)(e,function(e,i,a){t(n,e,r(e),a)}),n})(e,e2,(0,nH.A)(t,2),{})});let aX=function(e,t,r){var n=null==e?0:e.length;return n?nO(e,0,(t=n-(t=r||void 0===t?1:(0,nb.A)(t)))<0?0:t):[]};class aq extends iT{constructor(e,t){super(),this.topProd=e,this.path=t,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,nL.A)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,nL.A)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,t=[]){this.found||super.walk(e,t)}walkProdRef(e,t,r){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){let n=t.concat(r);this.updateExpectedNext(),this.walk(e.referencedRule,n)}}updateExpectedNext(){(0,nN.A)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class aQ extends aq{constructor(e,t){super(e,t),this.path=t,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,r){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){let e=new n6({definition:t.concat(r)});this.possibleTokTypes=iI(e),this.found=!0}}}class aJ extends iT{constructor(e,t){super(),this.topRule=e,this.occurrence=t,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}}class aZ extends aJ{walkMany(e,t,r){if(e.idx===this.occurrence){let e=iY(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof it&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkMany(e,t,r)}}class a0 extends aJ{walkManySep(e,t,r){if(e.idx===this.occurrence){let e=iY(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof it&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkManySep(e,t,r)}}class a1 extends aJ{walkAtLeastOne(e,t,r){if(e.idx===this.occurrence){let e=iY(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof it&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOne(e,t,r)}}class a2 extends aJ{walkAtLeastOneSep(e,t,r){if(e.idx===this.occurrence){let e=iY(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof it&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOneSep(e,t,r)}}function a4(e,t,r=[]){r=(0,nL.A)(r);let n=[],i=0;function a(a){let s=a4(a.concat(n_(e,i+1)),t,r);return n.concat(s)}for(;r.length<t&&i<e.length;){let t=e[i];if(t instanceof n6||t instanceof n2)return a(t.definition);if(t instanceof n3)n=a(t.definition);else if(t instanceof n5)return a(t.definition.concat([new n9({definition:t.definition})]));else if(t instanceof n8)return a([new n6({definition:t.definition}),new n9({definition:[new it({terminalType:t.separator})].concat(t.definition)})]);else if(t instanceof n7)n=a(t.definition.concat([new n9({definition:[new it({terminalType:t.separator})].concat(t.definition)})]));else if(t instanceof n9)n=a(t.definition.concat([new n9({definition:t.definition})]));else if(t instanceof ie)return(0,nx.A)(t.definition,e=>{!1===(0,nN.A)(e.definition)&&(n=a(e.definition))}),n;else if(t instanceof it)r.push(t.terminalType);else throw Error("non exhaustive match");i++}return n.push({partialPath:r,suffixDef:n_(e,i)}),n}function a6(e,t,r,n){let i="EXIT_NONE_TERMINAL",a=[i],s="EXIT_ALTERNATIVE",o=!1,l=t.length,u=l-n-1,c=[],d=[];for(d.push({idx:-1,def:e,ruleStack:[],occurrenceStack:[]});!(0,nN.A)(d);){let e=d.pop();if(e===s){o&&(0,am.A)(d).idx<=u&&d.pop();continue}let n=e.def,h=e.idx,f=e.ruleStack,p=e.occurrenceStack;if((0,nN.A)(n))continue;let m=n[0];if(m===i){let e={idx:h,def:n_(n),ruleStack:aX(f),occurrenceStack:aX(p)};d.push(e)}else if(m instanceof it){if(h<l-1){let e=h+1;if(r(t[e],m.terminalType)){let t={idx:e,def:n_(n),ruleStack:f,occurrenceStack:p};d.push(t)}}else if(h===l-1)c.push({nextTokenType:m.terminalType,nextTokenOccurrence:m.idx,ruleStack:f,occurrenceStack:p}),o=!0;else throw Error("non exhaustive match")}else if(m instanceof n2){let e=(0,nL.A)(f);e.push(m.nonTerminalName);let t=(0,nL.A)(p);t.push(m.idx);let r={idx:h,def:m.definition.concat(a,n_(n)),ruleStack:e,occurrenceStack:t};d.push(r)}else if(m instanceof n3){let e={idx:h,def:n_(n),ruleStack:f,occurrenceStack:p};d.push(e),d.push(s);let t={idx:h,def:m.definition.concat(n_(n)),ruleStack:f,occurrenceStack:p};d.push(t)}else if(m instanceof n5){let e=new n9({definition:m.definition,idx:m.idx}),t={idx:h,def:m.definition.concat([e],n_(n)),ruleStack:f,occurrenceStack:p};d.push(t)}else if(m instanceof n8){let e=new n9({definition:[new it({terminalType:m.separator})].concat(m.definition),idx:m.idx}),t={idx:h,def:m.definition.concat([e],n_(n)),ruleStack:f,occurrenceStack:p};d.push(t)}else if(m instanceof n7){let e={idx:h,def:n_(n),ruleStack:f,occurrenceStack:p};d.push(e),d.push(s);let t=new n9({definition:[new it({terminalType:m.separator})].concat(m.definition),idx:m.idx}),r={idx:h,def:m.definition.concat([t],n_(n)),ruleStack:f,occurrenceStack:p};d.push(r)}else if(m instanceof n9){let e={idx:h,def:n_(n),ruleStack:f,occurrenceStack:p};d.push(e),d.push(s);let t=new n9({definition:m.definition,idx:m.idx}),r={idx:h,def:m.definition.concat([t],n_(n)),ruleStack:f,occurrenceStack:p};d.push(r)}else if(m instanceof ie)for(let e=m.definition.length-1;e>=0;e--){let t={idx:h,def:m.definition[e].definition.concat(n_(n)),ruleStack:f,occurrenceStack:p};d.push(t),d.push(s)}else if(m instanceof n6)d.push({idx:h,def:m.definition.concat(n_(n)),ruleStack:f,occurrenceStack:p});else if(m instanceof n4)d.push(function(e,t,r,n){let i=(0,nL.A)(r);i.push(e.name);let a=(0,nL.A)(n);return a.push(1),{idx:t,def:e.definition,ruleStack:i,occurrenceStack:a}}(m,h,f,p));else throw Error("non exhaustive match")}return c}function a3(e){if(e instanceof n3||"Option"===e)return t8.OPTION;if(e instanceof n9||"Repetition"===e)return t8.REPETITION;if(e instanceof n5||"RepetitionMandatory"===e)return t8.REPETITION_MANDATORY;if(e instanceof n8||"RepetitionMandatoryWithSeparator"===e)return t8.REPETITION_MANDATORY_WITH_SEPARATOR;if(e instanceof n7||"RepetitionWithSeparator"===e)return t8.REPETITION_WITH_SEPARATOR;if(e instanceof ie||"Alternation"===e)return t8.ALTERNATION;throw Error("non exhaustive match")}function a5(e){let{occurrence:t,rule:r,prodType:n,maxLookahead:i}=e,a=a3(n);return a===t8.ALTERNATION?si(t,r,i):sa(t,r,a,i)}function a8(e,t,r,n){let i=e.length,a=ig(e,e=>ig(e,e=>1===e.length));if(t)return function(t){let n=(0,nC.A)(t,e=>e.GATE);for(let t=0;t<i;t++){let i=e[t],a=i.length,s=n[t];if(void 0===s||!1!==s.call(this))t:for(let e=0;e<a;e++){let n=i[e],a=n.length;for(let e=0;e<a;e++)if(!1===r(this.LA(e+1),n[e]))continue t;return t}}};if(!a||n)return function(){for(let t=0;t<i;t++){let n=e[t],i=n.length;t:for(let e=0;e<i;e++){let i=n[e],a=i.length;for(let e=0;e<a;e++)if(!1===r(this.LA(e+1),i[e]))continue t;return t}}};{let t=(0,nC.A)(e,e=>(0,ik.A)(e)),r=(0,iM.A)(t,(e,t,r)=>((0,nx.A)(t,t=>{(0,n$.A)(e,t.tokenTypeIdx)||(e[t.tokenTypeIdx]=r),(0,nx.A)(t.categoryMatches,t=>{(0,n$.A)(e,t)||(e[t]=r)})}),e),{});return function(){return r[this.LA(1).tokenTypeIdx]}}}function a9(e,t,r){let n=ig(e,e=>1===e.length),i=e.length;if(!n||r)return function(){t:for(let r=0;r<i;r++){let n=e[r],i=n.length;for(let e=0;e<i;e++)if(!1===t(this.LA(e+1),n[e]))continue t;return!0}return!1};{let t=(0,ik.A)(e);if(1===t.length&&(0,nN.A)(t[0].categoryMatches)){let e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}{let e=(0,iM.A)(t,(e,t,r)=>(e[t.tokenTypeIdx]=!0,(0,nx.A)(t.categoryMatches,t=>{e[t]=!0}),e),[]);return function(){return!0===e[this.LA(1).tokenTypeIdx]}}}}(e4=t8||(t8={}))[e4.OPTION=0]="OPTION",e4[e4.REPETITION=1]="REPETITION",e4[e4.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",e4[e4.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",e4[e4.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",e4[e4.ALTERNATION=5]="ALTERNATION";class a7 extends iT{constructor(e,t,r){super(),this.topProd=e,this.targetOccurrence=t,this.targetProdType=r}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,t,r,n){return e.idx===this.targetOccurrence&&this.targetProdType===t&&(this.restDef=r.concat(n),!0)}walkOption(e,t,r){this.checkIsTarget(e,t8.OPTION,t,r)||super.walkOption(e,t,r)}walkAtLeastOne(e,t,r){this.checkIsTarget(e,t8.REPETITION_MANDATORY,t,r)||super.walkOption(e,t,r)}walkAtLeastOneSep(e,t,r){this.checkIsTarget(e,t8.REPETITION_MANDATORY_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}walkMany(e,t,r){this.checkIsTarget(e,t8.REPETITION,t,r)||super.walkOption(e,t,r)}walkManySep(e,t,r){this.checkIsTarget(e,t8.REPETITION_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}}class se extends ir{constructor(e,t,r){super(),this.targetOccurrence=e,this.targetProdType=t,this.targetRef=r,this.result=[]}checkIsTarget(e,t){e.idx===this.targetOccurrence&&this.targetProdType===t&&(void 0===this.targetRef||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,t8.OPTION)}visitRepetition(e){this.checkIsTarget(e,t8.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,t8.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,t8.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,t8.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,t8.ALTERNATION)}}function st(e){let t=Array(e);for(let r=0;r<e;r++)t[r]=[];return t}function sr(e){let t=[""];for(let r=0;r<e.length;r++){let n=e[r],i=[];for(let e=0;e<t.length;e++){let r=t[e];i.push(r+"_"+n.tokenTypeIdx);for(let e=0;e<n.categoryMatches.length;e++){let t="_"+n.categoryMatches[e];i.push(r+t)}}t=i}return t}function sn(e,t){let r=(0,nC.A)(e,e=>a4([e],1)),n=st(r.length),i=(0,nC.A)(r,e=>{let t={};return(0,nx.A)(e,e=>{let r=sr(e.partialPath);(0,nx.A)(r,e=>{t[e]=!0})}),t}),a=r;for(let e=1;e<=t;e++){let r=a;a=st(r.length);for(let s=0;s<r.length;s++){let o=r[s];for(let r=0;r<o.length;r++){let l=o[r].partialPath,u=o[r].suffixDef,c=sr(l);if(function(e,t,r){for(let n=0;n<e.length;n++){if(n===r)continue;let i=e[n];for(let e=0;e<t.length;e++)if(!0===i[t[e]])return!1}return!0}(i,c,s)||(0,nN.A)(u)||l.length===t){let e=n[s];if(!1===ss(e,l)){e.push(l);for(let e=0;e<c.length;e++){let t=c[e];i[s][t]=!0}}}else{let t=a4(u,e+1,l);a[s]=a[s].concat(t),(0,nx.A)(t,e=>{let t=sr(e.partialPath);(0,nx.A)(t,e=>{i[s][e]=!0})})}}}}return n}function si(e,t,r,n){let i=new se(e,t8.ALTERNATION,n);return t.accept(i),sn(i.result,r)}function sa(e,t,r,n){let i=new se(e,r);t.accept(i);let a=i.result,s=new a7(t,e,r).startWalking();return sn([new n6({definition:a}),new n6({definition:s})],n)}function ss(e,t){r:for(let r=0;r<e.length;r++){let n=e[r];if(n.length===t.length){for(let e=0;e<n.length;e++){let r=t[e],i=n[e];if(!1==(r===i||void 0!==i.categoryMatchesMap[r.tokenTypeIdx]))continue r}return!0}}return!1}function so(e){return ig(e,e=>ig(e,e=>ig(e,e=>(0,nN.A)(e.categoryMatches))))}function sl(e){return`${iA(e)}_#_${e.idx}_#_${su(e)}`}function su(e){return e instanceof it?e.terminalType.name:e instanceof n2?e.nonTerminalName:""}class sc extends ir{constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}}class sd extends ir{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}class sh extends ir{constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}}let sf="MismatchedTokenException",sp="NoViableAltException",sm="EarlyExitException",sg="NotAllInputParsedException",sy=[sf,sp,sm,sg];function sA(e){return ih(sy,e.name)}Object.freeze(sy);class sT extends Error{constructor(e,t){super(e),this.token=t,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}class sv extends sT{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=sf}}class sR extends sT{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=sp}}class sE extends sT{constructor(e,t){super(e,t),this.name=sg}}class sk extends sT{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=sm}}let sI={},sx="InRuleRecoveryException";class sS extends Error{constructor(e){super(e),this.name=sx}}function sN(e,t,r,n,i,a,s){let o=this.getKeyForAutomaticLookahead(n,i),l=this.firstAfterRepMap[o];if(void 0===l){let e=this.getCurrRuleFullName();l=new a(this.getGAstProductions()[e],i).startWalking(),this.firstAfterRepMap[o]=l}let u=l.token,c=l.occurrence,d=l.isEndOfRule;1===this.RULE_STACK.length&&d&&void 0===u&&(u=aU,c=1),void 0!==u&&void 0!==c&&this.shouldInRepetitionRecoveryBeTried(u,c,s)&&this.tryInRepetitionRecovery(e,t,r,u)}class sC{constructor(e){var t;this.maxLookahead=null!==(t=null==e?void 0:e.maxLookahead)&&void 0!==t?t:sV.maxLookahead}validate(e){let t=this.validateNoLeftRecursion(e.rules);return(0,nN.A)(t)?[...t,...this.validateEmptyOrAlternatives(e.rules),...this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),...this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead)]:t}validateNoLeftRecursion(e){return aV(e,e=>(function e(t,r,n,i=[]){let a=[],s=function e(t){let r=[];if((0,nN.A)(t))return r;let n=iY(t);if(n instanceof n2)r.push(n.referencedRule);else if(n instanceof n6||n instanceof n3||n instanceof n5||n instanceof n8||n instanceof n7||n instanceof n9)r=r.concat(e(n.definition));else if(n instanceof ie)r=(0,ik.A)((0,nC.A)(n.definition,t=>e(t.definition)));else if(n instanceof it);else throw Error("non exhaustive match");let i=iy(n),a=t.length>1;if(!i||!a)return r;{let n=n_(t);return r.concat(e(n))}}(r.definition);if((0,nN.A)(s))return[];{let r=t.name;ih(s,t)&&a.push({message:n.buildLeftRecursionError({topLevelRule:t,leftRecursionPath:i}),type:t7.LEFT_RECURSION,ruleName:r});let o=aV(iW(s,i.concat([t])),r=>{let a=(0,nL.A)(i);return a.push(r),e(t,r,n,a)});return a.concat(o)}})(e,e,aB))}validateEmptyOrAlternatives(e){return aV(e,e=>(function(e,t){let r=new sd;return e.accept(r),aV(r.alternations,r=>aV(aX(r.definition),(n,i)=>{let a=a6([n],[],ay,1);return(0,nN.A)(a)?[{message:t.buildEmptyAlternationError({topLevelRule:e,alternation:r,emptyChoiceIdx:i}),type:t7.NONE_LAST_EMPTY_ALT,ruleName:e.name,occurrence:r.idx,alternative:i+1}]:[]}))})(e,aB))}validateAmbiguousAlternationAlternatives(e,t){return aV(e,e=>(function(e,t,r){let n=new sd;e.accept(n);let i=n.alternations;return aV(i=iO(i,e=>!0===e.ignoreAmbiguities),n=>{let i=si(n.idx,e,n.maxLookahead||t,n),a=function(e,t,r,n){let i=[],a=(0,iM.A)(e,(r,n,a)=>(!0===t.definition[a].ignoreAmbiguities||(0,nx.A)(n,n=>{let s=[a];(0,nx.A)(e,(e,r)=>{a!==r&&ss(e,n)&&!0!==t.definition[r].ignoreAmbiguities&&s.push(r)}),s.length>1&&!ss(i,n)&&(i.push(n),r.push({alts:s,path:n}))}),r),[]);return(0,nC.A)(a,e=>{let i=(0,nC.A)(e.alts,e=>e+1);return{message:n.buildAlternationAmbiguityError({topLevelRule:r,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:t7.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:t.idx,alternatives:e.alts}})}(i,n,e,r),s=function(e,t,r,n){let i=(0,iM.A)(e,(e,t,r)=>{let n=(0,nC.A)(t,e=>({idx:r,path:e}));return e.concat(n)},[]);return iz(aV(i,e=>{if(!0===t.definition[e.idx].ignoreAmbiguities)return[];let a=e.idx,s=e.path,o=(0,iD.A)(i,e=>{var r;return!0!==t.definition[e.idx].ignoreAmbiguities&&e.idx<a&&(r=e.path).length<s.length&&ig(r,(e,t)=>{let r=s[t];return e===r||r.categoryMatchesMap[e.tokenTypeIdx]})});return(0,nC.A)(o,e=>{let i=[e.idx+1,a+1],s=0===t.idx?"":t.idx;return{message:n.buildAlternationPrefixAmbiguityError({topLevelRule:r,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:t7.AMBIGUOUS_PREFIX_ALTS,ruleName:r.name,occurrence:s,alternatives:i}})}))}(i,n,e,r);return a.concat(s)})})(e,t,aB))}validateSomeNonEmptyLookaheadPath(e,t){return function(e,t,r){let n=[];return(0,nx.A)(e,e=>{let i=new sh;e.accept(i);let a=i.allProductions;(0,nx.A)(a,i=>{let a=a3(i),s=i.maxLookahead||t,o=sa(i.idx,e,a,s)[0];if((0,nN.A)((0,ik.A)(o))){let t=r.buildEmptyRepetitionError({topLevelRule:e,repetition:i});n.push({message:t,type:t7.NO_NON_EMPTY_LOOKAHEAD,ruleName:e.name})}})}),n}(e,t,aB)}buildLookaheadForAlternation(e){return function(e,t,r,n,i,a){let s=si(e,t,r),o=so(s)?aA:ay;return a(s,n,o,i)}(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,a8)}buildLookaheadForOptional(e){return function(e,t,r,n,i,a){let s=sa(e,t,i,r),o=so(s)?aA:ay;return a(s[0],o,n)}(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,a3(e.prodType),a9)}}let s$=new class extends ir{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}};function sL(e,t){!0===isNaN(e.startOffset)?(e.startOffset=t.startOffset,e.endOffset=t.endOffset):e.endOffset<t.endOffset==!0&&(e.endOffset=t.endOffset)}function sw(e,t){!0===isNaN(e.startOffset)?(e.startOffset=t.startOffset,e.startColumn=t.startColumn,e.startLine=t.startLine,e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine):e.endOffset<t.endOffset==!0&&(e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine)}function sO(e,t){Object.defineProperty(e,"name",{enumerable:!1,configurable:!0,writable:!1,value:t})}function sb(e,t){let r=(0,nK.A)(e),n=r.length;for(let i=0;i<n;i++){let n=e[r[i]],a=n.length;for(let e=0;e<a;e++){let r=n[e];void 0===r.tokenTypeIdx&&this[r.name](r.children,t)}}}(e6=t9||(t9={}))[e6.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",e6[e6.MISSING_METHOD=1]="MISSING_METHOD";var s_=r(17731);let sP={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(sP);let sM=aD({name:"RECORDING_PHASE_TOKEN",pattern:aS.NA});aR([sM]);let sD=aF(sM,"This IToken indicates the Parser is in Recording Phase\n See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",-1,-1,-1,-1,-1,-1);Object.freeze(sD);let sU={name:"This CSTNode indicates the Parser is in Recording Phase\n See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",children:{}};function sF(e,t,r,n=!1){sB(r);let i=(0,am.A)(this.recordingProdStack),a=(0,ib.A)(t)?t:t.DEF,s=new e({definition:[],idx:r});return n&&(s.separator=t.SEP),(0,n$.A)(t,"MAX_LOOKAHEAD")&&(s.maxLookahead=t.MAX_LOOKAHEAD),this.recordingProdStack.push(s),a.call(this),i.definition.push(s),this.recordingProdStack.pop(),sP}function sG(e,t){sB(t);let r=(0,am.A)(this.recordingProdStack),n=!1===(0,io.A)(e),i=!1===n?e:e.DEF,a=new ie({definition:[],idx:t,ignoreAmbiguities:n&&!0===e.IGNORE_AMBIGUITIES});(0,n$.A)(e,"MAX_LOOKAHEAD")&&(a.maxLookahead=e.MAX_LOOKAHEAD);let s=iu(i,e=>(0,ib.A)(e.GATE));return a.hasPredicates=s,r.definition.push(a),(0,nx.A)(i,e=>{let t=new n6({definition:[]});a.definition.push(t),(0,n$.A)(e,"IGNORE_AMBIGUITIES")?t.ignoreAmbiguities=e.IGNORE_AMBIGUITIES:(0,n$.A)(e,"GATE")&&(t.ignoreAmbiguities=!0),this.recordingProdStack.push(t),e.ALT.call(this),this.recordingProdStack.pop()}),sP}function sK(e){return 0===e?"":`${e}`}function sB(e){if(e<0||e>255){let t=Error(`Invalid DSL Method idx value: <${e}> + Idx value must be a none negative value smaller than 256`);throw t.KNOWN_RECORDER_ERROR=!0,t}}let sj=aF(aU,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(sj);let sV=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:aG,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),sH=Object.freeze({recoveryValueFunc:()=>void 0,resyncEnabled:!0});function sW(e){return function(){return e}}(e3=t7||(t7={}))[e3.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",e3[e3.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",e3[e3.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",e3[e3.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",e3[e3.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",e3[e3.LEFT_RECURSION=5]="LEFT_RECURSION",e3[e3.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",e3[e3.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",e3[e3.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",e3[e3.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",e3[e3.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",e3[e3.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",e3[e3.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",e3[e3.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION";class sz{static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;let t=this.className;this.TRACE_INIT("toFastProps",()=>{nw(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),(0,nx.A)(this.definedRulesNames,e=>{let t;let r=this[e].originalGrammarAction;this.TRACE_INIT(`${e} Rule`,()=>{t=this.topLevelRuleRecord(e,r)}),this.gastProductionsCache[e]=t})}finally{this.disableRecording()}});let r=[];if(this.TRACE_INIT("Grammar Resolving",()=>{r=function(e){let t=(0,iC.A)(e,{errMsgProvider:aK}),r={};return(0,nx.A)(e.rules,e=>{r[e.name]=e}),function(e,t){let r=new aj(e,t);return r.resolveRefs(),r.errors}(r,t.errMsgProvider)}({rules:(0,nS.A)(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(r)}),this.TRACE_INIT("Grammar Validations",()=>{if((0,nN.A)(r)&&!1===this.skipValidations){var e;let r=(e={rules:(0,nS.A)(this.gastProductionsCache),tokenTypes:(0,nS.A)(this.tokensMap),errMsgProvider:aB,grammarName:t},function(e,t,r,n){let i=aV(e,e=>(function(e,t){let r=new sc;e.accept(r);let n=nY(aY(r.allProductions,sl),e=>e.length>1);return(0,nC.A)((0,nS.A)(n),r=>{let n=iY(r),i=t.buildDuplicateFoundError(e,r),a=iA(n),s={message:i,type:t7.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:a,occurrence:n.idx},o=su(n);return o&&(s.parameter=o),s})})(e,r)),a=function(e,t,r){let n=[],i=(0,nC.A)(t,e=>e.name);return(0,nx.A)(e,e=>{let t=e.name;if(ih(i,t)){let i=r.buildNamespaceConflictError(e);n.push({message:i,type:t7.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:t})}}),n}(e,t,r),s=aV(e,e=>(function(e,t){let r=new sd;return e.accept(r),aV(r.alternations,r=>r.definition.length>255?[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:r}),type:t7.TOO_MANY_ALTS,ruleName:e.name,occurrence:r.idx}]:[])})(e,r)),o=aV(e,t=>(function(e,t,r,n){let i=[];if((0,iM.A)(t,(t,r)=>r.name===e.name?t+1:t,0)>1){let t=n.buildDuplicateRuleNameError({topLevelRule:e,grammarName:r});i.push({message:t,type:t7.DUPLICATE_RULE_NAME,ruleName:e.name})}return i})(t,e,n,r));return i.concat(a,s,o)}((e=(0,iC.A)(e,{errMsgProvider:aB})).rules,e.tokenTypes,e.errMsgProvider,e.grammarName)),n=function(e){let t=e.lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName});return(0,nC.A)(t,e=>Object.assign({type:t7.CUSTOM_LOOKAHEAD_VALIDATION},e))}({lookaheadStrategy:this.lookaheadStrategy,rules:(0,nS.A)(this.gastProductionsCache),tokenTypes:(0,nS.A)(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(r,n)}}),(0,nN.A)(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{let e=function(e){let t={};return(0,nx.A)(e,e=>{nj(t,new iS(e).startWalking())}),t}((0,nS.A)(this.gastProductionsCache));this.resyncFollows=e}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var e,t;null===(t=(e=this.lookaheadStrategy).initialize)||void 0===t||t.call(e,{rules:(0,nS.A)(this.gastProductionsCache)}),this.preComputeLookaheadFunctions((0,nS.A)(this.gastProductionsCache))})),!sz.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,nN.A)(this.definitionErrors))throw e=(0,nC.A)(this.definitionErrors,e=>e.message),Error(`Parser Definition Errors detected: + ${e.join("\n-------------------------------\n")}`)})}constructor(e,t){if(this.definitionErrors=[],this.selfAnalysisDone=!1,this.initErrorHandler(t),this.initLexerAdapter(),this.initLooksAhead(t),this.initRecognizerEngine(e,t),this.initRecoverable(t),this.initTreeBuilder(t),this.initContentAssist(),this.initGastRecorder(t),this.initPerformanceTracer(t),(0,n$.A)(t,"ignoredIssues"))throw Error("The <ignoredIssues> IParserConfig property has been deprecated.\n Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.\n See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES\n For further details.");this.skipValidations=(0,n$.A)(t,"skipValidations")?t.skipValidations:sV.skipValidations}}sz.DEFER_DEFINITION_ERRORS_HANDLING=!1,function(e,t){t.forEach(t=>{let r=t.prototype;Object.getOwnPropertyNames(r).forEach(n=>{if("constructor"===n)return;let i=Object.getOwnPropertyDescriptor(r,n);i&&(i.get||i.set)?Object.defineProperty(e.prototype,n,i):e.prototype[n]=t.prototype[n]})})}(sz,[class{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,n$.A)(e,"recoveryEnabled")?e.recoveryEnabled:sV.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=sN)}getTokenToInsert(e){let t=aF(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,r,n){let i=this.findReSyncTokenType(),a=this.exportLexerState(),s=[],o=!1,l=this.LA(1),u=this.LA(1),c=()=>{let e=this.LA(0),t=new sv(this.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:l,previous:e,ruleName:this.getCurrRuleFullName()}),l,this.LA(0));t.resyncedTokens=aX(s),this.SAVE_ERROR(t)};for(;!o;){if(this.tokenMatcher(u,n)){c();return}if(r.call(this)){c(),e.apply(this,t);return}this.tokenMatcher(u,i)?o=!0:(u=this.SKIP_TOKEN(),this.addToResyncTokens(u,s))}this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(e,t,r){return!(!1===r||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))}getFollowsForInRuleRecovery(e,t){let r=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(r)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){let e=this.SKIP_TOKEN();return this.consumeToken(),e}throw new sS("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,nN.A)(t))return!1;let r=this.LA(1);return void 0!==(0,iX.A)(t,e=>this.tokenMatcher(r,e))}canRecoverWithSingleTokenDeletion(e){return!!this.canTokenTypeBeDeletedInRecovery(e)&&this.tokenMatcher(this.LA(2),e)}isInCurrentRuleReSyncSet(e){let t=this.getCurrFollowKey();return ih(this.getFollowSetFromFollowKey(t),e)}findReSyncTokenType(){let e=this.flattenFollowSet(),t=this.LA(1),r=2;for(;;){let n=(0,iX.A)(e,e=>ay(t,e));if(void 0!==n)return n;t=this.LA(r),r++}}getCurrFollowKey(){if(1===this.RULE_STACK.length)return sI;let e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(r)}}buildFullFollowKeyStack(){let e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return(0,nC.A)(e,(r,n)=>0===n?sI:{ruleName:this.shortRuleNameToFullName(r),idxInCallingRule:t[n],inRule:this.shortRuleNameToFullName(e[n-1])})}flattenFollowSet(){let e=(0,nC.A)(this.buildFullFollowKeyStack(),e=>this.getFollowSetFromFollowKey(e));return(0,ik.A)(e)}getFollowSetFromFollowKey(e){if(e===sI)return[aU];let t=e.ruleName+e.idxInCallingRule+ix+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,aU)||t.push(e),t}reSyncTo(e){let t=[],r=this.LA(1);for(;!1===this.tokenMatcher(r,e);)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,t);return aX(t)}attemptInRepetitionRecovery(e,t,r,n,i,a,s){}getCurrentGrammarPath(e,t){return{ruleStack:this.getHumanReadableRuleStack(),occurrenceStack:(0,nL.A)(this.RULE_OCCURRENCE_STACK),lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return(0,nC.A)(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}},class{initLooksAhead(e){this.dynamicTokensEnabled=(0,n$.A)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:sV.dynamicTokensEnabled,this.maxLookahead=(0,n$.A)(e,"maxLookahead")?e.maxLookahead:sV.maxLookahead,this.lookaheadStrategy=(0,n$.A)(e,"lookaheadStrategy")?e.lookaheadStrategy:new sC({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){(0,nx.A)(e,e=>{this.TRACE_INIT(`${e.name} Rule Lookahead`,()=>{let{alternation:t,repetition:r,option:n,repetitionMandatory:i,repetitionMandatoryWithSeparator:a,repetitionWithSeparator:s}=function(e){s$.reset(),e.accept(s$);let t=s$.dslMethods;return s$.reset(),t}(e);(0,nx.A)(t,t=>{let r=0===t.idx?"":t.idx;this.TRACE_INIT(`${iA(t)}${r}`,()=>{var r;let n=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:t.idx,rule:e,maxLookahead:t.maxLookahead||this.maxLookahead,hasPredicates:t.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),i=(r=this.fullRuleNameToShort[e.name],256|t.idx|r);this.setLaFuncCache(i,n)})}),(0,nx.A)(r,t=>{this.computeLookaheadFunc(e,t.idx,768,"Repetition",t.maxLookahead,iA(t))}),(0,nx.A)(n,t=>{this.computeLookaheadFunc(e,t.idx,512,"Option",t.maxLookahead,iA(t))}),(0,nx.A)(i,t=>{this.computeLookaheadFunc(e,t.idx,1024,"RepetitionMandatory",t.maxLookahead,iA(t))}),(0,nx.A)(a,t=>{this.computeLookaheadFunc(e,t.idx,1536,"RepetitionMandatoryWithSeparator",t.maxLookahead,iA(t))}),(0,nx.A)(s,t=>{this.computeLookaheadFunc(e,t.idx,1280,"RepetitionWithSeparator",t.maxLookahead,iA(t))})})})}computeLookaheadFunc(e,t,r,n,i,a){this.TRACE_INIT(`${a}${0===t?"":t}`,()=>{let a=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:i||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:n}),s=t|r|this.fullRuleNameToShort[e.name];this.setLaFuncCache(s,a)})}getKeyForAutomaticLookahead(e,t){return t|e|this.getLastExplicitRuleShortName()}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}},class{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,n$.A)(e,"nodeLocationTracking")?e.nodeLocationTracking:sV.nodeLocationTracking,this.outputCst){if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sw,this.setNodeLocationFromNode=sw,this.cstPostRule=ap.A,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ap.A,this.setNodeLocationFromNode=ap.A,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sL,this.setNodeLocationFromNode=sL,this.cstPostRule=ap.A,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ap.A,this.setNodeLocationFromNode=ap.A,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=ap.A,this.setNodeLocationFromNode=ap.A,this.cstPostRule=ap.A,this.setInitialNodeLocation=ap.A;else throw Error(`Invalid <nodeLocationTracking> config option: "${e.nodeLocationTracking}"`)}else this.cstInvocationStateUpdate=ap.A,this.cstFinallyStateUpdate=ap.A,this.cstPostTerminal=ap.A,this.cstPostNonTerminal=ap.A,this.cstPostRule=ap.A}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){let t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){let t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){let t=this.LA(0),r=e.location;r.startOffset<=t.startOffset==!0?(r.endOffset=t.endOffset,r.endLine=t.endLine,r.endColumn=t.endColumn):(r.startOffset=NaN,r.startLine=NaN,r.startColumn=NaN)}cstPostRuleOnlyOffset(e){let t=this.LA(0),r=e.location;r.startOffset<=t.startOffset==!0?r.endOffset=t.endOffset:r.startOffset=NaN}cstPostTerminal(e,t){let r=this.CST_STACK[this.CST_STACK.length-1];void 0===r.children[e]?r.children[e]=[t]:r.children[e].push(t),this.setNodeLocationFromToken(r.location,t)}cstPostNonTerminal(e,t){let r=this.CST_STACK[this.CST_STACK.length-1];void 0===r.children[t]?r.children[t]=[e]:r.children[t].push(e),this.setNodeLocationFromNode(r.location,e.location)}getBaseCstVisitorConstructor(){if((0,iN.A)(this.baseCstVisitorConstructor)){let e=function(e,t){let r=function(){};return sO(r,e+"BaseSemantics"),r.prototype={visit:function(e,t){if((0,io.A)(e)&&(e=e[0]),!(0,iN.A)(e))return this[e.name](e.children,t)},validateVisitor:function(){let e=function(e,t){let r=(0,iD.A)(t,t=>!1===(0,ib.A)(e[t]));return iz((0,nC.A)(r,t=>({msg:`Missing visitor method: <${t}> on ${e.constructor.name} CST Visitor.`,type:t9.MISSING_METHOD,methodName:t})))}(this,t);if(!(0,nN.A)(e)){let t=(0,nC.A)(e,e=>e.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>: + ${t.join("\n\n").replace(/\n/g,"\n ")}`)}}},r.prototype.constructor=r,r._RULE_NAMES=t,r}(this.className,(0,nK.A)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if((0,iN.A)(this.baseCstVisitorWithDefaultsConstructor)){let e=function(e,t,r){let n=function(){};sO(n,e+"BaseSemanticsWithDefaults");let i=Object.create(r.prototype);return(0,nx.A)(t,e=>{i[e]=sb}),n.prototype=i,n.prototype.constructor=n,n}(this.className,(0,nK.A)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){let e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}},class{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(!0!==this.selfAnalysisDone)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):sj}LA(e){let t=this.currIdx+e;return t<0||this.tokVectorLength<=t?sj:this.tokVector[t]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}},class{initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=aA,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,n$.A)(t,"serializedGrammar"))throw Error("The Parser's configuration can no longer contain a <serializedGrammar> property.\n See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0\n For Further details.");if((0,io.A)(e)){if((0,nN.A)(e))throw Error("A Token Vocabulary cannot be empty.\n Note that the first argument for the parser constructor\n is no longer a Token vector (since v4.0).");if("number"==typeof e[0].startOffset)throw Error("The Parser constructor no longer accepts a token vector as the first argument.\n See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0\n For Further details.")}if((0,io.A)(e))this.tokensMap=(0,iM.A)(e,(e,t)=>(e[t.name]=t,e),{});else if((0,n$.A)(e,"modes")&&ig((0,ik.A)((0,nS.A)(e.modes)),aI)){let t=iE((0,ik.A)((0,nS.A)(e.modes)));this.tokensMap=(0,iM.A)(t,(e,t)=>(e[t.name]=t,e),{})}else if((0,s_.A)(e))this.tokensMap=(0,nL.A)(e);else throw Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=aU;let r=ig((0,n$.A)(e,"modes")?(0,ik.A)((0,nS.A)(e.modes)):(0,nS.A)(e),e=>(0,nN.A)(e.categoryMatches));this.tokenMatcher=r?aA:ay,aR((0,nS.A)(this.tokensMap))}defineRule(e,t,r){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let n=(0,n$.A)(r,"resyncEnabled")?r.resyncEnabled:sH.resyncEnabled,i=(0,n$.A)(r,"recoveryValueFunc")?r.recoveryValueFunc:sH.recoveryValueFunc,a=this.ruleShortNameIdx<<12;return this.ruleShortNameIdx++,this.shortRuleNameToFull[a]=e,this.fullRuleNameToShort[e]=a,Object.assign(!0===this.outputCst?function(...r){try{this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,r);let n=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(n),n}catch(e){return this.invokeRuleCatch(e,n,i)}finally{this.ruleFinallyStateUpdate()}}:function(...r){try{return this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,r)}catch(e){return this.invokeRuleCatch(e,n,i)}finally{this.ruleFinallyStateUpdate()}},{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,r){let n=1===this.RULE_STACK.length,i=t&&!this.isBackTracking()&&this.recoveryEnabled;if(sA(e)){if(i){let t=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(t)){if(e.resyncedTokens=this.reSyncTo(t),!this.outputCst)return r(e);{let e=this.CST_STACK[this.CST_STACK.length-1];return e.recoveredNode=!0,e}}if(this.outputCst){let t=this.CST_STACK[this.CST_STACK.length-1];t.recoveredNode=!0,e.partialCstResult=t}throw e}if(n)return this.moveToTerminatedState(),r(e)}throw e}optionInternal(e,t){let r=this.getKeyForAutomaticLookahead(512,t);return this.optionInternalLogic(e,t,r)}optionInternalLogic(e,t,r){let n,i=this.getLaFuncFromCache(r);if("function"!=typeof e){n=e.DEF;let t=e.GATE;if(void 0!==t){let e=i;i=()=>t.call(this)&&e.call(this)}}else n=e;if(!0===i.call(this))return n.call(this)}atLeastOneInternal(e,t){let r=this.getKeyForAutomaticLookahead(1024,e);return this.atLeastOneInternalLogic(e,t,r)}atLeastOneInternalLogic(e,t,r){let n,i=this.getLaFuncFromCache(r);if("function"!=typeof t){n=t.DEF;let e=t.GATE;if(void 0!==e){let t=i;i=()=>e.call(this)&&t.call(this)}}else n=t;if(!0===i.call(this)){let e=this.doSingleRepetition(n);for(;!0===i.call(this)&&!0===e;)e=this.doSingleRepetition(n)}else throw this.raiseEarlyExitException(e,t8.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,1024,e,a1)}atLeastOneSepFirstInternal(e,t){let r=this.getKeyForAutomaticLookahead(1536,e);this.atLeastOneSepFirstInternalLogic(e,t,r)}atLeastOneSepFirstInternalLogic(e,t,r){let n=t.DEF,i=t.SEP;if(!0===this.getLaFuncFromCache(r).call(this)){n.call(this);let t=()=>this.tokenMatcher(this.LA(1),i);for(;!0===this.tokenMatcher(this.LA(1),i);)this.CONSUME(i),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,n,a2],t,1536,e,a2)}else throw this.raiseEarlyExitException(e,t8.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)}manyInternal(e,t){let r=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,t,r)}manyInternalLogic(e,t,r){let n,i=this.getLaFuncFromCache(r);if("function"!=typeof t){n=t.DEF;let e=t.GATE;if(void 0!==e){let t=i;i=()=>e.call(this)&&t.call(this)}}else n=t;let a=!0;for(;!0===i.call(this)&&!0===a;)a=this.doSingleRepetition(n);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,768,e,aZ,a)}manySepFirstInternal(e,t){let r=this.getKeyForAutomaticLookahead(1280,e);this.manySepFirstInternalLogic(e,t,r)}manySepFirstInternalLogic(e,t,r){let n=t.DEF,i=t.SEP;if(!0===this.getLaFuncFromCache(r).call(this)){n.call(this);let t=()=>this.tokenMatcher(this.LA(1),i);for(;!0===this.tokenMatcher(this.LA(1),i);)this.CONSUME(i),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,n,a0],t,1280,e,a0)}}repetitionSepSecondInternal(e,t,r,n,i){for(;r();)this.CONSUME(t),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,r,n,i],r,1536,e,i)}doSingleRepetition(e){let t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){let r=this.getKeyForAutomaticLookahead(256,t),n=(0,io.A)(e)?e:e.DEF,i=this.getLaFuncFromCache(r).call(this,n);if(void 0!==i)return n[i].ALT.call(this);this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),0===this.RULE_STACK.length&&!1===this.isAtEndOfInput()){let e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new sE(t,e))}}subruleInternal(e,t,r){let n;try{let i=void 0!==r?r.ARGS:void 0;return this.subruleIdx=t,n=e.apply(this,i),this.cstPostNonTerminal(n,void 0!==r&&void 0!==r.LABEL?r.LABEL:e.ruleName),n}catch(t){throw this.subruleInternalError(t,r,e.ruleName)}}subruleInternalError(e,t,r){throw sA(e)&&void 0!==e.partialCstResult&&(this.cstPostNonTerminal(e.partialCstResult,void 0!==t&&void 0!==t.LABEL?t.LABEL:r),delete e.partialCstResult),e}consumeInternal(e,t,r){let n;try{let t=this.LA(1);!0===this.tokenMatcher(t,e)?(this.consumeToken(),n=t):this.consumeInternalError(e,t,r)}catch(r){n=this.consumeInternalRecovery(e,t,r)}return this.cstPostTerminal(void 0!==r&&void 0!==r.LABEL?r.LABEL:e.name,n),n}consumeInternalError(e,t,r){let n;let i=this.LA(0);throw n=void 0!==r&&r.ERR_MSG?r.ERR_MSG:this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:i,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new sv(n,t,i))}consumeInternalRecovery(e,t,r){if(this.recoveryEnabled&&"MismatchedTokenException"===r.name&&!this.isBackTracking()){let n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(e){if(e.name===sx)throw r;throw e}}else throw r}saveRecogState(){let e=this.errors,t=(0,nL.A)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,r){this.RULE_OCCURRENCE_STACK.push(r),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return 0!==this.isBackTrackingStack.length}getCurrRuleFullName(){let e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),aU)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}},class{ACTION(e){return e.call(this)}consume(e,t,r){return this.consumeInternal(t,e,r)}subrule(e,t,r){return this.subruleInternal(t,e,r)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,r=sH){if(ih(this.definedRulesNames,e)){let t={message:aB.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:t7.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(t)}this.definedRulesNames.push(e);let n=this.defineRule(e,t,r);return this[e]=n,n}OVERRIDE_RULE(e,t,r=sH){let n=function(e,t,r){let n=[];return ih(t,e)||n.push({message:`Invalid rule override, rule: ->${e}<- cannot be overridden in the grammar: ->${r}<-as it is not defined in any of the super grammars `,type:t7.INVALID_RULE_OVERRIDE,ruleName:e}),n}(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(n);let i=this.defineRule(e,t,r);return this[e]=i,i}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);let r=this.saveRecogState();try{return e.apply(this,t),!0}catch(e){if(sA(e))return!1;throw e}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){var e;return e=(0,nS.A)(this.gastProductionsCache),(0,nC.A)(e,function e(t){function r(t){return(0,nC.A)(t,e)}if(t instanceof n2){let e={type:"NonTerminal",name:t.nonTerminalName,idx:t.idx};return(0,nP.A)(t.label)&&(e.label=t.label),e}if(t instanceof n6)return{type:"Alternative",definition:r(t.definition)};if(t instanceof n3)return{type:"Option",idx:t.idx,definition:r(t.definition)};if(t instanceof n5)return{type:"RepetitionMandatory",idx:t.idx,definition:r(t.definition)};if(t instanceof n8)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:e(new it({terminalType:t.separator})),definition:r(t.definition)};if(t instanceof n7)return{type:"RepetitionWithSeparator",idx:t.idx,separator:e(new it({terminalType:t.separator})),definition:r(t.definition)};if(t instanceof n9)return{type:"Repetition",idx:t.idx,definition:r(t.definition)};else if(t instanceof ie)return{type:"Alternation",idx:t.idx,definition:r(t.definition)};else if(t instanceof it){var n,i;let e={type:"Terminal",name:t.terminalType.name,label:(i=n=t.terminalType,(0,nP.A)(i.LABEL)&&""!==i.LABEL)?n.LABEL:n.name,idx:t.idx};(0,nP.A)(t.label)&&(e.terminalLabel=t.label);let r=t.terminalType.PATTERN;return t.terminalType.PATTERN&&(e.pattern=n0(r)?r.source:r),e}else if(t instanceof n4)return{type:"Rule",name:t.name,orgText:t.orgText,definition:r(t.definition)};else throw Error("non exhaustive match")})}},class{initErrorHandler(e){this._errors=[],this.errorMessageProvider=(0,n$.A)(e,"errorMessageProvider")?e.errorMessageProvider:sV.errorMessageProvider}SAVE_ERROR(e){if(sA(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,nL.A)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return(0,nL.A)(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,r){let n=this.getCurrRuleFullName(),i=sa(e,this.getGAstProductions()[n],t,this.maxLookahead)[0],a=[];for(let e=1;e<=this.maxLookahead;e++)a.push(this.LA(e));let s=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:i,actual:a,previous:this.LA(0),customUserDescription:r,ruleName:n});throw this.SAVE_ERROR(new sk(s,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){let r=this.getCurrRuleFullName(),n=si(e,this.getGAstProductions()[r],this.maxLookahead),i=[];for(let e=1;e<=this.maxLookahead;e++)i.push(this.LA(e));let a=this.LA(0),s=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:n,actual:i,previous:a,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new sR(s,this.LA(1),a))}},class{initContentAssist(){}computeContentAssist(e,t){let r=this.gastProductionsCache[e];if((0,iN.A)(r))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return a6([r],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){let t=iY(e.ruleStack);return new aQ(this.getGAstProductions()[t],e).startWalking()}},class{initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){let t=e>0?e:"";this[`CONSUME${t}`]=function(t,r){return this.consumeInternalRecord(t,e,r)},this[`SUBRULE${t}`]=function(t,r){return this.subruleInternalRecord(t,e,r)},this[`OPTION${t}`]=function(t){return this.optionInternalRecord(t,e)},this[`OR${t}`]=function(t){return this.orInternalRecord(t,e)},this[`MANY${t}`]=function(t){this.manyInternalRecord(e,t)},this[`MANY_SEP${t}`]=function(t){this.manySepFirstInternalRecord(e,t)},this[`AT_LEAST_ONE${t}`]=function(t){this.atLeastOneInternalRecord(e,t)},this[`AT_LEAST_ONE_SEP${t}`]=function(t){this.atLeastOneSepFirstInternalRecord(e,t)}}this.consume=function(e,t,r){return this.consumeInternalRecord(t,e,r)},this.subrule=function(e,t,r){return this.subruleInternalRecord(t,e,r)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{for(let e=0;e<10;e++){let t=e>0?e:"";delete this[`CONSUME${t}`],delete this[`SUBRULE${t}`],delete this[`OPTION${t}`],delete this[`OR${t}`],delete this[`MANY${t}`],delete this[`MANY_SEP${t}`],delete this[`AT_LEAST_ONE${t}`],delete this[`AT_LEAST_ONE_SEP${t}`]}delete this.consume,delete this.subrule,delete this.option,delete this.or,delete this.many,delete this.atLeastOne,delete this.ACTION,delete this.BACKTRACK,delete this.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return sj}topLevelRuleRecord(e,t){try{let r=new n4({definition:[],name:e});return r.name=e,this.recordingProdStack.push(r),t.call(this),this.recordingProdStack.pop(),r}catch(e){if(!0!==e.KNOWN_RECORDER_ERROR)try{e.message=e.message+'\n This error was thrown during the "grammar recording phase" For more info see:\n https://chevrotain.io/docs/guide/internals.html#grammar-recording'}catch(e){}throw e}}optionInternalRecord(e,t){return sF.call(this,n3,e,t)}atLeastOneInternalRecord(e,t){sF.call(this,n5,t,e)}atLeastOneSepFirstInternalRecord(e,t){sF.call(this,n8,t,e,!0)}manyInternalRecord(e,t){sF.call(this,n9,t,e)}manySepFirstInternalRecord(e,t){sF.call(this,n7,t,e,!0)}orInternalRecord(e,t){return sG.call(this,e,t)}subruleInternalRecord(e,t,r){if(sB(t),!e||!1===(0,n$.A)(e,"ruleName")){let r=Error(`<SUBRULE${sK(t)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw r.KNOWN_RECORDER_ERROR=!0,r}let n=(0,am.A)(this.recordingProdStack),i=new n2({idx:t,nonTerminalName:e.ruleName,label:null==r?void 0:r.LABEL,referencedRule:void 0});return n.definition.push(i),this.outputCst?sU:sP}consumeInternalRecord(e,t,r){if(sB(t),!aE(e)){let r=Error(`<CONSUME${sK(t)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw r.KNOWN_RECORDER_ERROR=!0,r}let n=(0,am.A)(this.recordingProdStack),i=new it({idx:t,terminalType:e,label:null==r?void 0:r.LABEL});return n.definition.push(i),sD}},class{initPerformanceTracer(e){if((0,n$.A)(e,"traceInitPerf")){let t=e.traceInitPerf,r="number"==typeof t;this.traceInitMaxIdent=r?t:1/0,this.traceInitPerf=r?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=sV.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(!0!==this.traceInitPerf)return t();{this.traceInitIndent++;let r=Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${r}--> <${e}>`);let{time:n,value:i}=ag(t),a=n>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${r}<-- <${e}> time: ${n}ms`),this.traceInitIndent--,i}}}]);class sY extends sz{constructor(e,t=sV){let r=(0,nL.A)(t);r.outputCst=!1,super(e,r)}}function sX(e,t,r){return`${e.name}_${t}_${r}`}class sq{constructor(e){this.target=e}isEpsilon(){return!1}}class sQ extends sq{constructor(e,t){super(e),this.tokenType=t}}class sJ extends sq{constructor(e){super(e)}isEpsilon(){return!0}}class sZ extends sq{constructor(e,t,r){super(e),this.rule=t,this.followState=r}isEpsilon(){return!0}}function s0(e,t,r,n,i){let a=n.left,s=n.right,o=s5(e,t,r,{type:11});s2(e,o);let l=s5(e,t,r,{type:12});return a.loopback=o,l.loopback=o,e.decisionMap[sX(t,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",r.idx)]=o,s3(s,o),void 0===i?(s3(o,a),s3(o,l)):(s3(o,l),s3(o,i.left),s3(i.right,a)),{left:a,right:l}}function s1(e,t,r,n,i){let a=n.left,s=n.right,o=s5(e,t,r,{type:10});s2(e,o);let l=s5(e,t,r,{type:12}),u=s5(e,t,r,{type:9});return o.loopback=u,l.loopback=u,s3(o,a),s3(o,l),s3(s,u),void 0!==i?(s3(u,l),s3(u,i.left),s3(i.right,a)):s3(u,o),e.decisionMap[sX(t,i?"RepetitionWithSeparator":"Repetition",r.idx)]=o,{left:o,right:l}}function s2(e,t){return e.decisionStates.push(t),t.decision=e.decisionStates.length-1,t.decision}function s4(e,t,r,n,...i){let a=s5(e,t,n,{type:8,start:r});for(let e of(r.end=a,i))void 0!==e?(s3(r,e.left),s3(e.right,a)):s3(r,a);return e.decisionMap[sX(t,function(e){if(e instanceof ie)return"Alternation";if(e instanceof n3)return"Option";if(e instanceof n9)return"Repetition";if(e instanceof n7)return"RepetitionWithSeparator";if(e instanceof n5)return"RepetitionMandatory";if(e instanceof n8)return"RepetitionMandatoryWithSeparator";throw Error("Invalid production type encountered")}(n),n.idx)]=r,{left:r,right:a}}function s6(e,t,r,n){let i=s5(e,t,n,{type:1}),a=s5(e,t,n,{type:1});return s8(i,new sQ(a,r)),{left:i,right:a}}function s3(e,t){s8(e,new sJ(t))}function s5(e,t,r,n){let i=Object.assign({atn:e,production:r,epsilonOnlyTransitions:!1,rule:t,transitions:[],nextTokenWithinRule:[],stateNumber:e.states.length},n);return e.states.push(i),i}function s8(e,t){0===e.transitions.length&&(e.epsilonOnlyTransitions=t.isEpsilon()),e.transitions.push(t)}let s9={};class s7{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){let t=oe(e);t in this.map||(this.map[t]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return(0,nC.A)(this.configs,e=>e.alt)}get key(){let e="";for(let t in this.map)e+=t+":";return e}}function oe(e,t=!0){return`${t?`a${e.alt}`:""}s${e.state.stateNumber}:${e.stack.map(e=>e.stateNumber.toString()).join("_")}`}var ot=r(60398);class or{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="",t=this.predicates.length;for(let r=0;r<t;r++)e+=!0===this.predicates[r]?"1":"0";return e}}let on=new or;class oi extends sC{constructor(e){var t;super(),this.logging=null!==(t=null==e?void 0:e.logging)&&void 0!==t?t:e=>console.log(e)}initialize(e){this.atn=function(e){let t={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};(function(e,t){let r=t.length;for(let n=0;n<r;n++){let r=t[n],i=s5(e,r,void 0,{type:2}),a=s5(e,r,void 0,{type:7});i.stop=a,e.ruleToStartState.set(r,i),e.ruleToStopState.set(r,a)}})(t,e);let r=e.length;for(let n=0;n<r;n++){let r=e[n],i=function e(t,r,n){let i=(0,iD.A)((0,nC.A)(n.definition,n=>(function t(r,n,i){if(i instanceof it)return s6(r,n,i.terminalType,i);if(i instanceof n2)return function(e,t,r){let n=r.referencedRule,i=e.ruleToStartState.get(n),a=s5(e,t,r,{type:1}),s=s5(e,t,r,{type:1});return s8(a,new sZ(i,n,s)),{left:a,right:s}}(r,n,i);if(i instanceof ie)return function(e,r,n){let i=s5(e,r,n,{type:1});s2(e,i);let a=(0,nC.A)(n.definition,n=>t(e,r,n));return s4(e,r,i,n,...a)}(r,n,i);if(i instanceof n3)return function(t,r,n){let i=s5(t,r,n,{type:1});s2(t,i);let a=s4(t,r,i,n,e(t,r,n));return function(e,t,r,n){let i=n.left;return s3(i,n.right),e.decisionMap[sX(t,"Option",r.idx)]=i,n}(t,r,n,a)}(r,n,i);if(i instanceof n9)return function(t,r,n){let i=s5(t,r,n,{type:5});s2(t,i);let a=s4(t,r,i,n,e(t,r,n));return s1(t,r,n,a)}(r,n,i);if(i instanceof n7)return function(t,r,n){let i=s5(t,r,n,{type:5});s2(t,i);let a=s4(t,r,i,n,e(t,r,n)),s=s6(t,r,n.separator,n);return s1(t,r,n,a,s)}(r,n,i);if(i instanceof n5)return function(t,r,n){let i=s5(t,r,n,{type:4});s2(t,i);let a=s4(t,r,i,n,e(t,r,n));return s0(t,r,n,a)}(r,n,i);else if(i instanceof n8)return function(t,r,n){let i=s5(t,r,n,{type:4});s2(t,i);let a=s4(t,r,i,n,e(t,r,n)),s=s6(t,r,n.separator,n);return s0(t,r,n,a,s)}(r,n,i);else return e(r,n,i)})(t,r,n)),e=>void 0!==e);return 1===i.length?i[0]:0===i.length?void 0:function(e,t){let r=t.length;for(let n=0;n<r-1;n++){let r;let i=t[n];1===i.left.transitions.length&&(r=i.left.transitions[0]);let a=r instanceof sZ,s=r,o=t[n+1].left;1===i.left.type&&1===i.right.type&&void 0!==r&&(a&&s.followState===i.right||r.target===i.right)?(a?s.followState=o:r.target=o,function(e,t){e.states.splice(e.states.indexOf(t),1)}(e,i.right)):s3(i.right,o)}let n=t[0],i=t[r-1];return{left:n.left,right:i.right}}(t,i)}(t,r,r);void 0!==i&&function(e,t,r){s3(e.ruleToStartState.get(t),r.left);let n=e.ruleToStopState.get(t);s3(r.right,n)}(t,r,i)}return t}(e.rules),this.dfas=function(e){let t=e.decisionStates.length,r=Array(t);for(let n=0;n<t;n++)r[n]=function(e,t){let r={};return n=>{let i=n.toString(),a=r[i];return void 0!==a||(a={atnStartState:e,decision:t,states:{}},r[i]=a),a}}(e.decisionStates[n],n);return r}(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){let{prodOccurrence:t,rule:r,hasPredicates:n,dynamicTokensEnabled:i}=e,a=this.dfas,s=this.logging,o=sX(r,"Alternation",t),l=this.atn.decisionMap[o].decision,u=(0,nC.A)(a5({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:r}),e=>(0,nC.A)(e,e=>e[0]));if(oa(u,!1)&&!i){let e=(0,iM.A)(u,(e,t,r)=>((0,nx.A)(t,t=>{t&&(e[t.tokenTypeIdx]=r,(0,nx.A)(t.categoryMatches,t=>{e[t]=r}))}),e),{});return n?function(t){var r;let n=e[this.LA(1).tokenTypeIdx];if(void 0!==t&&void 0!==n){let e=null===(r=t[n])||void 0===r?void 0:r.GATE;if(void 0!==e&&!1===e.call(this))return}return n}:function(){return e[this.LA(1).tokenTypeIdx]}}return n?function(e){let t=new or,r=void 0===e?0:e.length;for(let n=0;n<r;n++){let r=null==e?void 0:e[n].GATE;t.set(n,void 0===r||r.call(this))}let n=os.call(this,a,l,t,s);return"number"==typeof n?n:void 0}:function(){let e=os.call(this,a,l,on,s);return"number"==typeof e?e:void 0}}buildLookaheadForOptional(e){let{prodOccurrence:t,rule:r,prodType:n,dynamicTokensEnabled:i}=e,a=this.dfas,s=this.logging,o=sX(r,n,t),l=this.atn.decisionMap[o].decision,u=(0,nC.A)(a5({maxLookahead:1,occurrence:t,prodType:n,rule:r}),e=>(0,nC.A)(e,e=>e[0]));if(oa(u)&&u[0][0]&&!i){let e=u[0],t=(0,ik.A)(e);if(1===t.length&&(0,nN.A)(t[0].categoryMatches)){let e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}{let e=(0,iM.A)(t,(e,t)=>(void 0!==t&&(e[t.tokenTypeIdx]=!0,(0,nx.A)(t.categoryMatches,t=>{e[t]=!0})),e),{});return function(){return!0===e[this.LA(1).tokenTypeIdx]}}}return function(){let e=os.call(this,a,l,on,s);return"object"!=typeof e&&0===e}}}function oa(e,t=!0){let r=new Set;for(let n of e){let e=new Set;for(let i of n){if(void 0===i){if(!t)return!1;break}for(let t of[i.tokenTypeIdx].concat(i.categoryMatches))if(r.has(t)){if(!e.has(t))return!1}else r.add(t),e.add(t)}}return!0}function os(e,t,r,n){let i=e[t](r),a=i.start;if(void 0===a){let e=function(e){let t=new s7,r=e.transitions.length;for(let n=0;n<r;n++)of({state:e.transitions[n].target,alt:n,stack:[]},t);return t}(i.atnStartState);a=oh(i,oc(e)),i.start=a}return oo.apply(this,[i,a,r,n])}function oo(e,t,r,n){let i=t,a=1,s=[],o=this.LA(a++);for(;;){var l,u;let t=(l=i,u=o,l.edges[u.tokenTypeIdx]);if(void 0===t&&(t=ol.apply(this,[e,i,o,a,r,n])),t===s9)return function(e,t,r){var n,i;return{actualToken:r,possibleTokenTypes:(n=aV(t.configs.elements,e=>e.state.transitions).filter(e=>e instanceof sQ).map(e=>e.tokenType),i=e=>e.tokenTypeIdx,n&&n.length?(0,iR.A)(n,(0,nH.A)(i,2)):[]),tokenPath:e}}(s,i,o);if(!0===t.isAcceptState)return t.prediction;i=t,s.push(o),o=this.LA(a++)}}function ol(e,t,r,n,i,a){let s=function(e,t,r){let n;let i=new s7,a=[];for(let n of e.elements){if(!1===r.is(n.alt))continue;if(7===n.state.type){a.push(n);continue}let e=n.state.transitions.length;for(let r=0;r<e;r++){let e=function(e,t){if(e instanceof sQ&&ay(t,e.tokenType))return e.target}(n.state.transitions[r],t);void 0!==e&&i.add({state:e,alt:n.alt,stack:n.stack})}}if(0===a.length&&1===i.size&&(n=i),void 0===n)for(let e of(n=new s7,i.elements))of(e,n);if(a.length>0&&!function(e){for(let t of e.elements)if(7===t.state.type)return!0;return!1}(n))for(let e of a)n.add(e);return n}(t.configs,r,i);if(0===s.size)return od(e,t,r,s9),s9;let o=oc(s),l=function(e,t){let r;for(let n of e.elements)if(!0===t.is(n.alt)){if(void 0===r)r=n.alt;else if(r!==n.alt)return}return r}(s,i);if(void 0!==l)o.isAcceptState=!0,o.prediction=l,o.configs.uniqueAlt=l;else if(function(e){if(function(e){for(let t of e.elements)if(7!==t.state.type)return!1;return!0}(e))return!0;let t=function(e){let t=new Map;for(let r of e){let e=oe(r,!1),n=t.get(e);void 0===n&&(n={},t.set(e,n)),n[r.alt]=!0}return t}(e.elements);return function(e){for(let t of Array.from(e.values()))if(Object.keys(t).length>1)return!0;return!1}(t)&&!function(e){for(let t of Array.from(e.values()))if(1===Object.keys(t).length)return!0;return!1}(t)}(s)){let t=(0,ot.A)(s.alts);o.isAcceptState=!0,o.prediction=t,o.configs.uniqueAlt=t,ou.apply(this,[e,n,s.alts,a])}return od(e,t,r,o)}function ou(e,t,r,n){let i=[];for(let e=1;e<=t;e++)i.push(this.LA(e).tokenType);let a=e.atnStartState;n(function(e){let t=(0,nC.A)(e.prefixPath,e=>aN(e)).join(", "),r=0===e.production.idx?"":e.production.idx;return`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(", ")}> in <${function(e){if(e instanceof n2)return"SUBRULE";if(e instanceof n3)return"OPTION";if(e instanceof ie)return"OR";if(e instanceof n5)return"AT_LEAST_ONE";if(e instanceof n8)return"AT_LEAST_ONE_SEP";if(e instanceof n7)return"MANY_SEP";if(e instanceof n9)return"MANY";else if(e instanceof it)return"CONSUME";else throw Error("non exhaustive match")}(e.production)}${r}> inside <${e.topLevelRule.name}> Rule, +<${t}> may appears as a prefix path in all these alternatives. +See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`}({topLevelRule:a.rule,ambiguityIndices:r,production:a.production,prefixPath:i}))}function oc(e){return{configs:e,edges:{},isAcceptState:!1,prediction:-1}}function od(e,t,r,n){return n=oh(e,n),t.edges[r.tokenTypeIdx]=n,n}function oh(e,t){if(t===s9)return t;let r=t.configs.key,n=e.states[r];return void 0!==n?n:(t.configs.finalize(),e.states[r]=t,t)}function of(e,t){let r=e.state;if(7===r.type){if(e.stack.length>0){let r=[...e.stack];of({state:r.pop(),alt:e.alt,stack:r},t)}else t.add(e);return}r.epsilonOnlyTransitions||t.add(e);let n=r.transitions.length;for(let i=0;i<n;i++){let n=function(e,t){if(t instanceof sJ)return{state:t.target,alt:e.alt,stack:e.stack};if(t instanceof sZ){let r=[...e.stack,t.followState];return{state:t.target,alt:e.alt,stack:r}}}(e,r.transitions[i]);void 0!==n&&of(n,t)}}(re||(re={})).is=function(e){return"string"==typeof e},(rt||(rt={})).is=function(e){return"string"==typeof e},(e5=rr||(rr={})).MIN_VALUE=-2147483648,e5.MAX_VALUE=2147483647,e5.is=function(e){return"number"==typeof e&&e5.MIN_VALUE<=e&&e<=e5.MAX_VALUE},(e8=rn||(rn={})).MIN_VALUE=0,e8.MAX_VALUE=2147483647,e8.is=function(e){return"number"==typeof e&&e8.MIN_VALUE<=e&&e<=e8.MAX_VALUE},(e9=ri||(ri={})).create=function(e,t){return e===Number.MAX_VALUE&&(e=rn.MAX_VALUE),t===Number.MAX_VALUE&&(t=rn.MAX_VALUE),{line:e,character:t}},e9.is=function(e){return nm.objectLiteral(e)&&nm.uinteger(e.line)&&nm.uinteger(e.character)},(e7=ra||(ra={})).create=function(e,t,r,n){if(nm.uinteger(e)&&nm.uinteger(t)&&nm.uinteger(r)&&nm.uinteger(n))return{start:ri.create(e,t),end:ri.create(r,n)};if(ri.is(e)&&ri.is(t))return{start:e,end:t};throw Error(`Range#create called with invalid arguments[${e}, ${t}, ${r}, ${n}]`)},e7.is=function(e){return nm.objectLiteral(e)&&ri.is(e.start)&&ri.is(e.end)},(te=rs||(rs={})).create=function(e,t){return{uri:e,range:t}},te.is=function(e){return nm.objectLiteral(e)&&ra.is(e.range)&&(nm.string(e.uri)||nm.undefined(e.uri))},(tt=ro||(ro={})).create=function(e,t,r,n){return{targetUri:e,targetRange:t,targetSelectionRange:r,originSelectionRange:n}},tt.is=function(e){return nm.objectLiteral(e)&&ra.is(e.targetRange)&&nm.string(e.targetUri)&&ra.is(e.targetSelectionRange)&&(ra.is(e.originSelectionRange)||nm.undefined(e.originSelectionRange))},(tr=rl||(rl={})).create=function(e,t,r,n){return{red:e,green:t,blue:r,alpha:n}},tr.is=function(e){return nm.objectLiteral(e)&&nm.numberRange(e.red,0,1)&&nm.numberRange(e.green,0,1)&&nm.numberRange(e.blue,0,1)&&nm.numberRange(e.alpha,0,1)},(tn=ru||(ru={})).create=function(e,t){return{range:e,color:t}},tn.is=function(e){return nm.objectLiteral(e)&&ra.is(e.range)&&rl.is(e.color)},(ti=rc||(rc={})).create=function(e,t,r){return{label:e,textEdit:t,additionalTextEdits:r}},ti.is=function(e){return nm.objectLiteral(e)&&nm.string(e.label)&&(nm.undefined(e.textEdit)||rT.is(e))&&(nm.undefined(e.additionalTextEdits)||nm.typedArray(e.additionalTextEdits,rT.is))},(ta=rd||(rd={})).Comment="comment",ta.Imports="imports",ta.Region="region",(ts=rh||(rh={})).create=function(e,t,r,n,i,a){let s={startLine:e,endLine:t};return nm.defined(r)&&(s.startCharacter=r),nm.defined(n)&&(s.endCharacter=n),nm.defined(i)&&(s.kind=i),nm.defined(a)&&(s.collapsedText=a),s},ts.is=function(e){return nm.objectLiteral(e)&&nm.uinteger(e.startLine)&&nm.uinteger(e.startLine)&&(nm.undefined(e.startCharacter)||nm.uinteger(e.startCharacter))&&(nm.undefined(e.endCharacter)||nm.uinteger(e.endCharacter))&&(nm.undefined(e.kind)||nm.string(e.kind))},(to=rf||(rf={})).create=function(e,t){return{location:e,message:t}},to.is=function(e){return nm.defined(e)&&rs.is(e.location)&&nm.string(e.message)},(tl=rp||(rp={})).Error=1,tl.Warning=2,tl.Information=3,tl.Hint=4,(tu=rm||(rm={})).Unnecessary=1,tu.Deprecated=2,(rg||(rg={})).is=function(e){return nm.objectLiteral(e)&&nm.string(e.href)},(tc=ry||(ry={})).create=function(e,t,r,n,i,a){let s={range:e,message:t};return nm.defined(r)&&(s.severity=r),nm.defined(n)&&(s.code=n),nm.defined(i)&&(s.source=i),nm.defined(a)&&(s.relatedInformation=a),s},tc.is=function(e){var t;return nm.defined(e)&&ra.is(e.range)&&nm.string(e.message)&&(nm.number(e.severity)||nm.undefined(e.severity))&&(nm.integer(e.code)||nm.string(e.code)||nm.undefined(e.code))&&(nm.undefined(e.codeDescription)||nm.string(null===(t=e.codeDescription)||void 0===t?void 0:t.href))&&(nm.string(e.source)||nm.undefined(e.source))&&(nm.undefined(e.relatedInformation)||nm.typedArray(e.relatedInformation,rf.is))},(td=rA||(rA={})).create=function(e,t,...r){let n={title:e,command:t};return nm.defined(r)&&r.length>0&&(n.arguments=r),n},td.is=function(e){return nm.defined(e)&&nm.string(e.title)&&nm.string(e.command)},(th=rT||(rT={})).replace=function(e,t){return{range:e,newText:t}},th.insert=function(e,t){return{range:{start:e,end:e},newText:t}},th.del=function(e){return{range:e,newText:""}},th.is=function(e){return nm.objectLiteral(e)&&nm.string(e.newText)&&ra.is(e.range)},(tf=rv||(rv={})).create=function(e,t,r){let n={label:e};return void 0!==t&&(n.needsConfirmation=t),void 0!==r&&(n.description=r),n},tf.is=function(e){return nm.objectLiteral(e)&&nm.string(e.label)&&(nm.boolean(e.needsConfirmation)||void 0===e.needsConfirmation)&&(nm.string(e.description)||void 0===e.description)},(rR||(rR={})).is=function(e){return nm.string(e)},(tp=rE||(rE={})).replace=function(e,t,r){return{range:e,newText:t,annotationId:r}},tp.insert=function(e,t,r){return{range:{start:e,end:e},newText:t,annotationId:r}},tp.del=function(e,t){return{range:e,newText:"",annotationId:t}},tp.is=function(e){return rT.is(e)&&(rv.is(e.annotationId)||rR.is(e.annotationId))},(tm=rk||(rk={})).create=function(e,t){return{textDocument:e,edits:t}},tm.is=function(e){return nm.defined(e)&&rL.is(e.textDocument)&&Array.isArray(e.edits)},(tg=rI||(rI={})).create=function(e,t,r){let n={kind:"create",uri:e};return void 0!==t&&(void 0!==t.overwrite||void 0!==t.ignoreIfExists)&&(n.options=t),void 0!==r&&(n.annotationId=r),n},tg.is=function(e){return e&&"create"===e.kind&&nm.string(e.uri)&&(void 0===e.options||(void 0===e.options.overwrite||nm.boolean(e.options.overwrite))&&(void 0===e.options.ignoreIfExists||nm.boolean(e.options.ignoreIfExists)))&&(void 0===e.annotationId||rR.is(e.annotationId))},(ty=rx||(rx={})).create=function(e,t,r,n){let i={kind:"rename",oldUri:e,newUri:t};return void 0!==r&&(void 0!==r.overwrite||void 0!==r.ignoreIfExists)&&(i.options=r),void 0!==n&&(i.annotationId=n),i},ty.is=function(e){return e&&"rename"===e.kind&&nm.string(e.oldUri)&&nm.string(e.newUri)&&(void 0===e.options||(void 0===e.options.overwrite||nm.boolean(e.options.overwrite))&&(void 0===e.options.ignoreIfExists||nm.boolean(e.options.ignoreIfExists)))&&(void 0===e.annotationId||rR.is(e.annotationId))},(tA=rS||(rS={})).create=function(e,t,r){let n={kind:"delete",uri:e};return void 0!==t&&(void 0!==t.recursive||void 0!==t.ignoreIfNotExists)&&(n.options=t),void 0!==r&&(n.annotationId=r),n},tA.is=function(e){return e&&"delete"===e.kind&&nm.string(e.uri)&&(void 0===e.options||(void 0===e.options.recursive||nm.boolean(e.options.recursive))&&(void 0===e.options.ignoreIfNotExists||nm.boolean(e.options.ignoreIfNotExists)))&&(void 0===e.annotationId||rR.is(e.annotationId))},(rN||(rN={})).is=function(e){return e&&(void 0!==e.changes||void 0!==e.documentChanges)&&(void 0===e.documentChanges||e.documentChanges.every(e=>nm.string(e.kind)?rI.is(e)||rx.is(e)||rS.is(e):rk.is(e)))},(tT=rC||(rC={})).create=function(e){return{uri:e}},tT.is=function(e){return nm.defined(e)&&nm.string(e.uri)},(tv=r$||(r$={})).create=function(e,t){return{uri:e,version:t}},tv.is=function(e){return nm.defined(e)&&nm.string(e.uri)&&nm.integer(e.version)},(tR=rL||(rL={})).create=function(e,t){return{uri:e,version:t}},tR.is=function(e){return nm.defined(e)&&nm.string(e.uri)&&(null===e.version||nm.integer(e.version))},(tE=rw||(rw={})).create=function(e,t,r,n){return{uri:e,languageId:t,version:r,text:n}},tE.is=function(e){return nm.defined(e)&&nm.string(e.uri)&&nm.string(e.languageId)&&nm.integer(e.version)&&nm.string(e.text)},(tk=rO||(rO={})).PlainText="plaintext",tk.Markdown="markdown",tk.is=function(e){return e===tk.PlainText||e===tk.Markdown},(rb||(rb={})).is=function(e){return nm.objectLiteral(e)&&rO.is(e.kind)&&nm.string(e.value)},(tI=r_||(r_={})).Text=1,tI.Method=2,tI.Function=3,tI.Constructor=4,tI.Field=5,tI.Variable=6,tI.Class=7,tI.Interface=8,tI.Module=9,tI.Property=10,tI.Unit=11,tI.Value=12,tI.Enum=13,tI.Keyword=14,tI.Snippet=15,tI.Color=16,tI.File=17,tI.Reference=18,tI.Folder=19,tI.EnumMember=20,tI.Constant=21,tI.Struct=22,tI.Event=23,tI.Operator=24,tI.TypeParameter=25,(tx=rP||(rP={})).PlainText=1,tx.Snippet=2,(rM||(rM={})).Deprecated=1,(tS=rD||(rD={})).create=function(e,t,r){return{newText:e,insert:t,replace:r}},tS.is=function(e){return e&&nm.string(e.newText)&&ra.is(e.insert)&&ra.is(e.replace)},(tN=rU||(rU={})).asIs=1,tN.adjustIndentation=2,(rF||(rF={})).is=function(e){return e&&(nm.string(e.detail)||void 0===e.detail)&&(nm.string(e.description)||void 0===e.description)},(rG||(rG={})).create=function(e){return{label:e}},(rK||(rK={})).create=function(e,t){return{items:e||[],isIncomplete:!!t}},(tC=rB||(rB={})).fromPlainText=function(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")},tC.is=function(e){return nm.string(e)||nm.objectLiteral(e)&&nm.string(e.language)&&nm.string(e.value)},(rj||(rj={})).is=function(e){return!!e&&nm.objectLiteral(e)&&(rb.is(e.contents)||rB.is(e.contents)||nm.typedArray(e.contents,rB.is))&&(void 0===e.range||ra.is(e.range))},(rV||(rV={})).create=function(e,t){return t?{label:e,documentation:t}:{label:e}},(rH||(rH={})).create=function(e,t,...r){let n={label:e};return nm.defined(t)&&(n.documentation=t),nm.defined(r)?n.parameters=r:n.parameters=[],n},(t$=rW||(rW={})).Text=1,t$.Read=2,t$.Write=3,(rz||(rz={})).create=function(e,t){let r={range:e};return nm.number(t)&&(r.kind=t),r},(tL=rY||(rY={})).File=1,tL.Module=2,tL.Namespace=3,tL.Package=4,tL.Class=5,tL.Method=6,tL.Property=7,tL.Field=8,tL.Constructor=9,tL.Enum=10,tL.Interface=11,tL.Function=12,tL.Variable=13,tL.Constant=14,tL.String=15,tL.Number=16,tL.Boolean=17,tL.Array=18,tL.Object=19,tL.Key=20,tL.Null=21,tL.EnumMember=22,tL.Struct=23,tL.Event=24,tL.Operator=25,tL.TypeParameter=26,(rX||(rX={})).Deprecated=1,(rq||(rq={})).create=function(e,t,r,n,i){let a={name:e,kind:t,location:{uri:n,range:r}};return i&&(a.containerName=i),a},(rQ||(rQ={})).create=function(e,t,r,n){return void 0!==n?{name:e,kind:t,location:{uri:r,range:n}}:{name:e,kind:t,location:{uri:r}}},(tw=rJ||(rJ={})).create=function(e,t,r,n,i,a){let s={name:e,detail:t,kind:r,range:n,selectionRange:i};return void 0!==a&&(s.children=a),s},tw.is=function(e){return e&&nm.string(e.name)&&nm.number(e.kind)&&ra.is(e.range)&&ra.is(e.selectionRange)&&(void 0===e.detail||nm.string(e.detail))&&(void 0===e.deprecated||nm.boolean(e.deprecated))&&(void 0===e.children||Array.isArray(e.children))&&(void 0===e.tags||Array.isArray(e.tags))},(tO=rZ||(rZ={})).Empty="",tO.QuickFix="quickfix",tO.Refactor="refactor",tO.RefactorExtract="refactor.extract",tO.RefactorInline="refactor.inline",tO.RefactorRewrite="refactor.rewrite",tO.Source="source",tO.SourceOrganizeImports="source.organizeImports",tO.SourceFixAll="source.fixAll",(tb=r0||(r0={})).Invoked=1,tb.Automatic=2,(t_=r1||(r1={})).create=function(e,t,r){let n={diagnostics:e};return null!=t&&(n.only=t),null!=r&&(n.triggerKind=r),n},t_.is=function(e){return nm.defined(e)&&nm.typedArray(e.diagnostics,ry.is)&&(void 0===e.only||nm.typedArray(e.only,nm.string))&&(void 0===e.triggerKind||e.triggerKind===r0.Invoked||e.triggerKind===r0.Automatic)},(tP=r2||(r2={})).create=function(e,t,r){let n={title:e},i=!0;return"string"==typeof t?(i=!1,n.kind=t):rA.is(t)?n.command=t:n.edit=t,i&&void 0!==r&&(n.kind=r),n},tP.is=function(e){return e&&nm.string(e.title)&&(void 0===e.diagnostics||nm.typedArray(e.diagnostics,ry.is))&&(void 0===e.kind||nm.string(e.kind))&&(void 0!==e.edit||void 0!==e.command)&&(void 0===e.command||rA.is(e.command))&&(void 0===e.isPreferred||nm.boolean(e.isPreferred))&&(void 0===e.edit||rN.is(e.edit))},(tM=r4||(r4={})).create=function(e,t){let r={range:e};return nm.defined(t)&&(r.data=t),r},tM.is=function(e){return nm.defined(e)&&ra.is(e.range)&&(nm.undefined(e.command)||rA.is(e.command))},(tD=r6||(r6={})).create=function(e,t){return{tabSize:e,insertSpaces:t}},tD.is=function(e){return nm.defined(e)&&nm.uinteger(e.tabSize)&&nm.boolean(e.insertSpaces)},(tU=r3||(r3={})).create=function(e,t,r){return{range:e,target:t,data:r}},tU.is=function(e){return nm.defined(e)&&ra.is(e.range)&&(nm.undefined(e.target)||nm.string(e.target))},(tF=r5||(r5={})).create=function(e,t){return{range:e,parent:t}},tF.is=function(e){return nm.objectLiteral(e)&&ra.is(e.range)&&(void 0===e.parent||tF.is(e.parent))},(tG=r8||(r8={})).namespace="namespace",tG.type="type",tG.class="class",tG.enum="enum",tG.interface="interface",tG.struct="struct",tG.typeParameter="typeParameter",tG.parameter="parameter",tG.variable="variable",tG.property="property",tG.enumMember="enumMember",tG.event="event",tG.function="function",tG.method="method",tG.macro="macro",tG.keyword="keyword",tG.modifier="modifier",tG.comment="comment",tG.string="string",tG.number="number",tG.regexp="regexp",tG.operator="operator",tG.decorator="decorator",(tK=r9||(r9={})).declaration="declaration",tK.definition="definition",tK.readonly="readonly",tK.static="static",tK.deprecated="deprecated",tK.abstract="abstract",tK.async="async",tK.modification="modification",tK.documentation="documentation",tK.defaultLibrary="defaultLibrary",(r7||(r7={})).is=function(e){return nm.objectLiteral(e)&&(void 0===e.resultId||"string"==typeof e.resultId)&&Array.isArray(e.data)&&(0===e.data.length||"number"==typeof e.data[0])},(tB=ne||(ne={})).create=function(e,t){return{range:e,text:t}},tB.is=function(e){return null!=e&&ra.is(e.range)&&nm.string(e.text)},(tj=nt||(nt={})).create=function(e,t,r){return{range:e,variableName:t,caseSensitiveLookup:r}},tj.is=function(e){return null!=e&&ra.is(e.range)&&nm.boolean(e.caseSensitiveLookup)&&(nm.string(e.variableName)||void 0===e.variableName)},(tV=nr||(nr={})).create=function(e,t){return{range:e,expression:t}},tV.is=function(e){return null!=e&&ra.is(e.range)&&(nm.string(e.expression)||void 0===e.expression)},(tH=nn||(nn={})).create=function(e,t){return{frameId:e,stoppedLocation:t}},tH.is=function(e){return nm.defined(e)&&ra.is(e.stoppedLocation)},(tW=ni||(ni={})).Type=1,tW.Parameter=2,tW.is=function(e){return 1===e||2===e},(tz=na||(na={})).create=function(e){return{value:e}},tz.is=function(e){return nm.objectLiteral(e)&&(void 0===e.tooltip||nm.string(e.tooltip)||rb.is(e.tooltip))&&(void 0===e.location||rs.is(e.location))&&(void 0===e.command||rA.is(e.command))},(tY=ns||(ns={})).create=function(e,t,r){let n={position:e,label:t};return void 0!==r&&(n.kind=r),n},tY.is=function(e){return nm.objectLiteral(e)&&ri.is(e.position)&&(nm.string(e.label)||nm.typedArray(e.label,na.is))&&(void 0===e.kind||ni.is(e.kind))&&void 0===e.textEdits||nm.typedArray(e.textEdits,rT.is)&&(void 0===e.tooltip||nm.string(e.tooltip)||rb.is(e.tooltip))&&(void 0===e.paddingLeft||nm.boolean(e.paddingLeft))&&(void 0===e.paddingRight||nm.boolean(e.paddingRight))},(no||(no={})).createSnippet=function(e){return{kind:"snippet",value:e}},(nl||(nl={})).create=function(e,t,r,n){return{insertText:e,filterText:t,range:r,command:n}},(nu||(nu={})).create=function(e){return{items:e}},(tX=nc||(nc={})).Invoked=0,tX.Automatic=1,(nd||(nd={})).create=function(e,t){return{range:e,text:t}},(nh||(nh={})).create=function(e,t){return{triggerKind:e,selectedCompletionInfo:t}},(nf||(nf={})).is=function(e){return nm.objectLiteral(e)&&rt.is(e.uri)&&nm.string(e.name)},(tq=np||(np={})).create=function(e,t,r,n){return new op(e,t,r,n)},tq.is=function(e){return!!(nm.defined(e)&&nm.string(e.uri)&&(nm.undefined(e.languageId)||nm.string(e.languageId))&&nm.uinteger(e.lineCount)&&nm.func(e.getText)&&nm.func(e.positionAt)&&nm.func(e.offsetAt))},tq.applyEdits=function(e,t){let r=e.getText(),n=function e(t,r){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),a=t.slice(n);e(i,r),e(a,r);let s=0,o=0,l=0;for(;s<i.length&&o<a.length;)0>=r(i[s],a[o])?t[l++]=i[s++]:t[l++]=a[o++];for(;s<i.length;)t[l++]=i[s++];for(;o<a.length;)t[l++]=a[o++];return t}(t,(e,t)=>{let r=e.range.start.line-t.range.start.line;return 0===r?e.range.start.character-t.range.start.character:r}),i=r.length;for(let t=n.length-1;t>=0;t--){let a=n[t],s=e.offsetAt(a.range.start),o=e.offsetAt(a.range.end);if(o<=i)r=r.substring(0,s)+a.newText+r.substring(o,r.length);else throw Error("Overlapping edit");i=s}return r};class op{constructor(e,t,r,n){this._uri=e,this._languageId=t,this._version=r,this._content=n,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(void 0===this._lineOffsets){let e=[],t=this._content,r=!0;for(let n=0;n<t.length;n++){r&&(e.push(n),r=!1);let i=t.charAt(n);r="\r"===i||"\n"===i,"\r"===i&&n+1<t.length&&"\n"===t.charAt(n+1)&&n++}r&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),r=0,n=t.length;if(0===n)return ri.create(0,e);for(;r<n;){let i=Math.floor((r+n)/2);t[i]>e?n=i:r=i+1}let i=r-1;return ri.create(i,e-t[i])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line],n=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(r+e.character,n),r)}get lineCount(){return this.getLineOffsets().length}}!function(e){let t=Object.prototype.toString;e.defined=function(e){return void 0!==e},e.undefined=function(e){return void 0===e},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return"[object String]"===t.call(e)},e.number=function(e){return"[object Number]"===t.call(e)},e.numberRange=function(e,r,n){return"[object Number]"===t.call(e)&&r<=e&&e<=n},e.integer=function(e){return"[object Number]"===t.call(e)&&-2147483648<=e&&e<=2147483647},e.uinteger=function(e){return"[object Number]"===t.call(e)&&0<=e&&e<=2147483647},e.func=function(e){return"[object Function]"===t.call(e)},e.objectLiteral=function(e){return null!==e&&"object"==typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(nm||(nm={}));class om{constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]}buildRootNode(e){return this.rootNode=new ov(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){let t=new oA;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){let r=new oy(e.startOffset,e.image.length,y(e),e.tokenType,!1);return r.grammarSource=t,r.root=this.rootNode,this.current.content.push(r),r}removeNode(e){let t=e.container;if(t){let r=t.content.indexOf(e);r>=0&&t.content.splice(r,1)}}construct(e){let t=this.current;"string"==typeof e.$type&&(this.current.astNode=e),e.$cstNode=t;let r=this.nodeStack.pop();(null==r?void 0:r.content.length)===0&&this.removeNode(r)}addHiddenTokens(e){for(let t of e){let e=new oy(t.startOffset,t.image.length,y(t),t.tokenType,!0);e.root=this.rootNode,this.addHiddenToken(this.rootNode,e)}}addHiddenToken(e,t){let{offset:r,end:n}=t;for(let i=0;i<e.content.length;i++){let a=e.content[i],{offset:s,end:l}=a;if(o(a)&&r>s&&n<l){this.addHiddenToken(a,t);return}if(n<=s){e.content.splice(i,0,t);return}}e.content.push(t)}}class og{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,t;let r="string"==typeof(null===(e=this._astNode)||void 0===e?void 0:e.$type)?this._astNode:null===(t=this.container)||void 0===t?void 0:t.astNode;if(!r)throw Error("This node has no associated AST element");return r}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}}class oy extends og{get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,t,r,n,i=!1){super(),this._hidden=i,this._offset=e,this._tokenType=n,this._length=t,this._range=r}}class oA extends og{constructor(){super(...arguments),this.content=new oT(this)}get children(){return this.content}get offset(){var e,t;return null!==(t=null===(e=this.firstNonHiddenNode)||void 0===e?void 0:e.offset)&&void 0!==t?t:0}get length(){return this.end-this.offset}get end(){var e,t;return null!==(t=null===(e=this.lastNonHiddenNode)||void 0===e?void 0:e.end)&&void 0!==t?t:0}get range(){let e=this.firstNonHiddenNode,t=this.lastNonHiddenNode;if(!e||!t)return{start:ri.create(0,0),end:ri.create(0,0)};if(void 0===this._rangeCache){let{range:r}=e,{range:n}=t;this._rangeCache={start:r.start,end:n.end.line<r.start.line?r.start:n.end}}return this._rangeCache}get firstNonHiddenNode(){for(let e of this.content)if(!e.hidden)return e;return this.content[0]}get lastNonHiddenNode(){for(let e=this.content.length-1;e>=0;e--){let t=this.content[e];if(!t.hidden)return t}return this.content[this.content.length-1]}}class oT extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,oT.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,t,...r){return this.addParents(r),super.splice(e,t,...r)}addParents(e){for(let t of e)t.container=this.parent}}class ov extends oA{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=null!=e?e:""}}let oR=Symbol("Datatype");function oE(e){return e.$type===oR}let ok=e=>e.endsWith("\u200B")?e:e+"\u200B";class oI{constructor(e){this._unorderedGroups=new Map,this.lexer=e.parser.Lexer;let t=this.lexer.definition;this.wrapper=new oL(t,Object.assign(Object.assign({},e.parser.ParserConfig),{errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,t){this.wrapper.wrapOr(e,t)}optional(e,t){this.wrapper.wrapOption(e,t)}many(e,t){this.wrapper.wrapMany(e,t)}atLeastOne(e,t){this.wrapper.wrapAtLeastOne(e,t)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}}class ox extends oI{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new om,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){let r=e.fragment?void 0:eY(e)?oR:eq(e),n=this.wrapper.DEFINE_RULE(ok(e.name),this.startImplementation(r,t).bind(this));return e.entry&&(this.mainRule=n),n}parse(e){this.nodeBuilder.buildRootNode(e);let t=this.lexer.tokenize(e);this.wrapper.input=t.tokens;let r=this.mainRule.call(this.wrapper,{});return this.nodeBuilder.addHiddenTokens(t.hidden),this.unorderedGroups.clear(),{value:r,lexerErrors:t.errors,parserErrors:this.wrapper.errors}}startImplementation(e,t){return r=>{let n;if(!this.isRecording()){let t={$type:e};this.stack.push(t),e===oR&&(t.value="")}try{n=t(r)}catch(e){n=void 0}return this.isRecording()||void 0!==n||(n=this.construct()),n}}consume(e,t,r){let n=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(n)){let e=this.nodeBuilder.buildLeafNode(n,r),{assignment:t,isCrossRef:i}=this.getAssignment(r),a=this.current;if(t){let a=en(r)?n.image:this.converter.convert(n.image,e);this.assign(t.operator,t.feature,a,e,i)}else if(oE(a)){let t=n.image;en(r)||(t=this.converter.convert(t,e).toString()),a.value+=t}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&"number"==typeof e.endOffset&&!isNaN(e.endOffset)}subrule(e,t,r,n){let i;this.isRecording()||(i=this.nodeBuilder.buildCompositeNode(r));let a=this.wrapper.wrapSubrule(e,t,n);!this.isRecording()&&i&&i.length>0&&this.performSubruleAssignment(a,r,i)}performSubruleAssignment(e,t,r){let{assignment:n,isCrossRef:i}=this.getAssignment(t);if(n)this.assign(n.operator,n.feature,e,r,i);else if(!n){let t=this.current;if(oE(t))t.value+=e.toString();else if("object"==typeof e&&e){let r=e.$type,n=this.assignWithoutOverride(e,t);r&&(n.$type=r),this.stack.pop(),this.stack.push(n)}}}action(e,t){if(!this.isRecording()){let r=this.current;if(!r.$cstNode&&t.feature&&t.operator){let e=(r=this.construct(!1)).$cstNode.feature;this.nodeBuilder.buildCompositeNode(e)}this.stack.pop(),this.stack.push({$type:e}),t.feature&&t.operator&&this.assign(t.operator,t.feature,r,r.$cstNode,!1)}}construct(e=!0){if(this.isRecording())return;let t=this.current;return(!function(e){for(let[t,r]of Object.entries(e))!t.startsWith("$")&&(Array.isArray(r)?r.forEach((r,i)=>{n(r)&&(r.$container=e,r.$containerProperty=t,r.$containerIndex=i)}):n(r)&&(r.$container=e,r.$containerProperty=t))}(t),this.nodeBuilder.construct(t),e&&this.stack.pop(),oE(t))?this.converter.convert(t.value,t.$cstNode):(!function(e,t){for(let r of e.getTypeMetaData(t.$type).properties)void 0!==r.defaultValue&&void 0===t[r.name]&&(t[r.name]=function e(t){return Array.isArray(t)?[...t.map(e)]:t}(r.defaultValue))}(this.astReflection,t),t)}getAssignment(e){if(!this.assignmentMap.has(e)){let t=eA(e,X);this.assignmentMap.set(e,{assignment:t,isCrossRef:!!t&&J(t.terminal)})}return this.assignmentMap.get(e)}assign(e,t,r,n,i){let a;let s=this.current;switch(a=i&&"string"==typeof r?this.linker.buildReference(s,t,n,r):r,e){case"=":s[t]=a;break;case"?=":s[t]=!0;break;case"+=":Array.isArray(s[t])||(s[t]=[]),s[t].push(a)}}assignWithoutOverride(e,t){for(let[r,n]of Object.entries(t)){let t=e[r];void 0===t?e[r]=n:Array.isArray(t)&&Array.isArray(n)&&(n.push(...t),e[r]=n)}return e}get definitionErrors(){return this.wrapper.definitionErrors}}class oS{buildMismatchTokenMessage(e){return aG.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return aG.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return aG.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return aG.buildEarlyExitMessage(e)}}class oN extends oS{buildMismatchTokenMessage({expected:e,actual:t}){let r=e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`;return`Expecting ${r} but found \`${t.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}}class oC extends oI{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();let t=this.lexer.tokenize(e);return this.tokens=t.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,t){let r=this.wrapper.DEFINE_RULE(ok(e.name),this.startImplementation(t).bind(this));return e.entry&&(this.mainRule=r),r}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return t=>{let r=this.keepStackSize();try{e(t)}finally{this.resetStackSize(r)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,r){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,r],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,r,n){this.before(r),this.wrapper.wrapSubrule(e,t,n),this.after(r)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){let t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}}let o$={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new oN};class oL extends sY{constructor(e,t){super(e,Object.assign(Object.assign(Object.assign({},o$),{lookaheadStrategy:t&&"maxLookahead"in t?new sC({maxLookahead:t.maxLookahead}):new oi}),t))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,t){return this.RULE(e,t)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,t){return this.consume(e,t)}wrapSubrule(e,t,r){return this.subrule(e,t,{ARGS:[r]})}wrapOr(e,t){this.or(e,t)}wrapOption(e,t){this.option(e,t)}wrapMany(e,t){this.many(e,t)}wrapAtLeastOne(e,t){this.atLeastOne(e,t)}}function ow(e,t,r){return function(e,t){let r=eV(t,!1);for(let n of p(t.rules).filter(U).filter(e=>r.has(e))){let t=Object.assign(Object.assign({},e),{consume:1,optional:1,subrule:1,many:1,or:1});t.rules.set(n.name,e.parser.rule(n,function e(t,r,n=!1){let i;if(en(r))i=function(e,t){let r=e.consume++,n=e.tokens[t.value];if(!n)throw Error("Could not find token for keyword: "+t.value);return()=>e.parser.consume(r,n,t)}(t,r);else if(H(r))i=function(e,t){let r=eq(t);return()=>e.parser.action(r,t)}(t,r);else if(X(r))i=e(t,r.terminal);else if(J(r))i=function e(t,r,n=r.terminal){if(n){if(eo(n)&&U(n.rule.ref)){let e=t.subrule++;return i=>t.parser.subrule(e,oP(t,n.rule.ref),r,i)}if(eo(n)&&K(n.rule.ref)){let e=t.consume++,i=oM(t,n.rule.ref.name);return()=>t.parser.consume(e,i,r)}if(en(n)){let e=t.consume++,i=oM(t,n.value);return()=>t.parser.consume(e,i,r)}else throw Error("Could not build cross reference parser")}{if(!r.type.ref)throw Error("Could not resolve reference to type: "+r.type.$refText);let n=ez(r.type.ref),i=null==n?void 0:n.terminal;if(!i)throw Error("Could not find name assignment for type: "+eq(r.type.ref));return e(t,r,i)}}(t,r);else if(eo(r))i=function(e,t){let r=t.rule.ref;if(U(r)){let n=e.subrule++,i=t.arguments.length>0?function(e,t){let r=t.map(e=>oO(e.value));return t=>{let n={};for(let i=0;i<r.length;i++){let a=e.parameters[i],s=r[i];n[a.name]=s(t)}return n}}(r,t.arguments):()=>({});return a=>e.parser.subrule(n,oP(e,r),t,i(a))}if(K(r)){let n=e.consume++,i=oM(e,r.name);return()=>e.parser.consume(n,i,t)}if(r)E(r);else throw new R(t.$cstNode,`Undefined rule type: ${t.$type}`)}(t,r);else if(z(r))i=function(t,r){if(1===r.elements.length)return e(t,r.elements[0]);{let n=[];for(let i of r.elements){let r={ALT:e(t,i,!0)},a=ob(i);a&&(r.GATE=oO(a)),n.push(r)}let i=t.or++;return e=>t.parser.alternatives(i,n.map(t=>{let r={ALT:()=>t.ALT(e)},n=t.GATE;return n&&(r.GATE=()=>n(e)),r}))}}(t,r);else if(ef(r))i=function(t,r){if(1===r.elements.length)return e(t,r.elements[0]);let n=[];for(let i of r.elements){let r={ALT:e(t,i,!0)},a=ob(i);a&&(r.GATE=oO(a)),n.push(r)}let i=t.or++,a=(e,t)=>{let r=t.getRuleStack().join("-");return`uGroup_${e}_${r}`},s=o_(t,ob(r),e=>t.parser.alternatives(i,n.map((r,n)=>{let s={ALT:()=>!0},o=t.parser;s.ALT=()=>{if(r.ALT(e),!o.isRecording()){let e=a(i,o);o.unorderedGroups.get(e)||o.unorderedGroups.set(e,[]);let t=o.unorderedGroups.get(e);void 0===(null==t?void 0:t[n])&&(t[n]=!0)}};let l=r.GATE;return l?s.GATE=()=>l(e):s.GATE=()=>{let e=o.unorderedGroups.get(a(i,o));return!(null==e?void 0:e[n])},s})),"*");return e=>{s(e),t.parser.isRecording()||t.parser.unorderedGroups.delete(a(i,t.parser))}}(t,r);else if(et(r))i=function(t,r){let n=r.elements.map(r=>e(t,r));return e=>n.forEach(t=>t(e))}(t,r);else if(ey.isInstance(r,Z)){let e=t.consume++;i=()=>t.parser.consume(e,aU,r)}else throw new R(r.$cstNode,`Unexpected element type: ${r.$type}`);return o_(t,n?void 0:ob(r),i,r.cardinality)}(t,n.definition)))}}({parser:t,tokens:r,rules:new Map,ruleNames:new Map},e),t}function oO(e){if(ey.isInstance(e,L)){let t=oO(e.left),r=oO(e.right);return e=>t(e)||r(e)}if(ey.isInstance(e,$)){let t=oO(e.left),r=oO(e.right);return e=>t(e)&&r(e)}if(ey.isInstance(e,P)){let t=oO(e.value);return e=>!t(e)}if(ey.isInstance(e,M)){let t=e.parameter.ref.name;return e=>void 0!==e&&!0===e[t]}if(ey.isInstance(e,C)){let t=!!e.true;return()=>t}E(e)}function ob(e){if(et(e))return e.guardCondition}function o_(e,t,r,n){let i=t&&oO(t);if(!n){if(!i)return r;{let t=e.or++;return n=>e.parser.alternatives(t,[{ALT:()=>r(n),GATE:()=>i(n)},{ALT:sW(),GATE:()=>!i(n)}])}}if("*"===n){let t=e.many++;return n=>e.parser.many(t,{DEF:()=>r(n),GATE:i?()=>i(n):void 0})}if("+"===n){let t=e.many++;if(!i)return n=>e.parser.atLeastOne(t,{DEF:()=>r(n)});{let n=e.or++;return a=>e.parser.alternatives(n,[{ALT:()=>e.parser.atLeastOne(t,{DEF:()=>r(a)}),GATE:()=>i(a)},{ALT:sW(),GATE:()=>!i(a)}])}}if("?"===n){let t=e.optional++;return n=>e.parser.optional(t,{DEF:()=>r(n),GATE:i?()=>i(n):void 0})}E(n)}function oP(e,t){let r=function(e,t){if(U(t))return t.name;if(e.ruleNames.has(t))return e.ruleNames.get(t);{let r=t,n=r.$container,i=t.$type;for(;!U(n);)(et(n)||z(n)||ef(n))&&(i=n.elements.indexOf(r).toString()+":"+i),r=n,n=n.$container;return i=n.name+":"+i,e.ruleNames.set(t,i),i}}(e,t),n=e.rules.get(r);if(!n)throw Error(`Rule "${r}" not found."`);return n}function oM(e,t){let r=e.tokens[t];if(!r)throw Error(`Token "${t}" not found."`);return r}class oD{buildTokens(e,t){let r=p(eV(e,!1)),n=this.buildTerminalTokens(r),i=this.buildKeywordTokens(r,n,t);return n.forEach(e=>{let t=e.PATTERN;"object"==typeof t&&t&&"test"in t&&eB(t)?i.unshift(e):i.push(e)}),i}buildTerminalTokens(e){return e.filter(K).filter(e=>!e.fragment).map(e=>this.buildTerminalToken(e)).toArray()}buildTerminalToken(e){let t=eQ(e),r=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,n={name:e.name,PATTERN:r,LINE_BREAKS:!0};return e.hidden&&(n.GROUP=eB(t)?aS.SKIPPED:"hidden"),n}requiresCustomPattern(e){return!!e.flags.includes("u")||!!(e.source.includes("?<=")||e.source.includes("?<!"))}regexPatternFunction(e){let t=RegExp(e,e.flags+"y");return(e,r)=>(t.lastIndex=r,t.exec(e))}buildKeywordTokens(e,t,r){return e.filter(U).flatMap(e=>eR(e).filter(en)).distinct(e=>e.value).toArray().sort((e,t)=>t.value.length-e.value.length).map(e=>this.buildKeywordToken(e,t,!!(null==r?void 0:r.caseInsensitive)))}buildKeywordToken(e,t,r){return{name:e.value,PATTERN:this.buildKeywordPattern(e,r),LONGER_ALT:this.findLongerAlt(e,t)}}buildKeywordPattern(e,t){var r;return t?new RegExp((r=e.value,Array.prototype.map.call(r,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:ej(e)).join(""))):e.value}findLongerAlt(e,t){return t.reduce((t,r)=>{let n=null==r?void 0:r.PATTERN;return(null==n?void 0:n.source)&&function(e,t){let r=function(e){"string"==typeof e&&(e=new RegExp(e));let t=e,r=e.source,n=0;return new RegExp(function e(){let i="",a;function s(e){i+=r.substr(n,e),n+=e}function o(e){i+="(?:"+r.substr(n,e)+"|$)",n+=e}for(;n<r.length;)switch(r[n]){case"\\":switch(r[n+1]){case"c":o(3);break;case"x":o(4);break;case"u":o(t.unicode?"{"===r[n+2]?r.indexOf("}",n)-n+1:6:2);break;case"p":case"P":o(t.unicode?r.indexOf("}",n)-n+1:2);break;case"k":o(r.indexOf(">",n)-n+1);break;default:o(2)}break;case"[":(a=/\[(?:\\.|.)*?\]/g).lastIndex=n,o((a=a.exec(r)||[])[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":s(1);break;case"{":(a=/\{\d+,?\d*\}/g).lastIndex=n,(a=a.exec(r))?s(a[0].length):o(1);break;case"(":if("?"===r[n+1])switch(r[n+2]){case":":i+="(?:",n+=3,i+=e()+"|$)";break;case"=":i+="(?=",n+=3,i+=e()+")";break;case"!":a=n,n+=3,e(),i+=r.substr(a,n-a);break;case"<":switch(r[n+3]){case"=":case"!":a=n,n+=4,e(),i+=r.substr(a,n-a);break;default:s(r.indexOf(">",n)-n+1),i+=e()+"|$)"}}else s(1),i+=e()+"|$)";break;case")":return++n,i;default:o(1)}return i}(),e.flags)}(e),n=t.match(r);return!!n&&n[0].length>0}("^"+n.source+"$",e.value)&&t.push(r),t},[])}}class oU{convert(e,t){let r=t.grammarSource;if(J(r)&&(r=function(e){if(e.terminal)return e.terminal;if(e.type.ref){let t=ez(e.type.ref);return null==t?void 0:t.terminal}}(r)),eo(r)){let n=r.rule.ref;if(!n)throw Error("This cst node was not parsed by a rule.");return this.runConverter(n,e,t)}return e}runConverter(e,t,r){var n,i,a,s;switch(e.name.toUpperCase()){case"INT":return ng.convertInt(t);case"STRING":return ng.convertString(t);case"ID":return ng.convertID(t)}switch(null===(n=K(e)?null!==(a=null===(i=e.type)||void 0===i?void 0:i.name)&&void 0!==a?a:"string":eY(e)?e.name:null!==(s=eX(e))&&void 0!==s?s:e.name)||void 0===n?void 0:n.toLowerCase()){case"number":return ng.convertNumber(t);case"boolean":return ng.convertBoolean(t);case"bigint":return ng.convertBigint(t);case"date":return ng.convertDate(t);default:return t}}}(tQ=ng||(ng={})).convertString=function(e){let t="";for(let r=1;r<e.length-1;r++){let n=e.charAt(r);"\\"===n?t+=function(e){switch(e){case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return" ";case"v":return"\v";case"0":return"\0";default:return e}}(e.charAt(++r)):t+=n}return t},tQ.convertID=function(e){return"^"===e.charAt(0)?e.substring(1):e},tQ.convertInt=function(e){return parseInt(e)},tQ.convertBigint=function(e){return BigInt(e)},tQ.convertDate=function(e){return new Date(e)},tQ.convertNumber=function(e){return Number(e)},tQ.convertBoolean=function(e){return"true"===e.toLowerCase()};var oF=r(44782);let oG=0,oK=Symbol("OperationCancelled");async function oB(e){if(e===oF.XO.None)return;let t=Date.now();if(t-oG>=10&&(oG=t,await new Promise(e=>{"undefined"==typeof setImmediate?setTimeout(e,0):setImmediate(e)})),e.isCancellationRequested)throw oK}class oj{constructor(){this.promise=new Promise((e,t)=>{this.resolve=t=>(e(t),this),this.reject=e=>(t(e),this)})}}class oV{constructor(e,t,r,n){this._uri=e,this._languageId=t,this._version=r,this._content=n,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){for(let t of e)if(oV.isIncremental(t)){let e=oz(t.range),r=this.offsetAt(e.start),n=this.offsetAt(e.end);this._content=this._content.substring(0,r)+t.text+this._content.substring(n,this._content.length);let i=Math.max(e.start.line,0),a=Math.max(e.end.line,0),s=this._lineOffsets,o=oH(t.text,!1,r);if(a-i===o.length)for(let e=0,t=o.length;e<t;e++)s[e+i+1]=o[e];else o.length<1e4?s.splice(i+1,a-i,...o):this._lineOffsets=s=s.slice(0,i+1).concat(o,s.slice(a+1));let l=t.text.length-(n-r);if(0!==l)for(let e=i+1+o.length,t=s.length;e<t;e++)s[e]=s[e]+l}else if(oV.isFull(t))this._content=t.text,this._lineOffsets=void 0;else throw Error("Unknown change event received");this._version=t}getLineOffsets(){return void 0===this._lineOffsets&&(this._lineOffsets=oH(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),r=0,n=t.length;if(0===n)return{line:0,character:e};for(;r<n;){let i=Math.floor((r+n)/2);t[i]>e?n=i:r=i+1}let i=r-1;return e=this.ensureBeforeEOL(e,t[i]),{line:i,character:e-t[i]}}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line];if(e.character<=0)return r;let n=e.line+1<t.length?t[e.line+1]:this._content.length,i=Math.min(r+e.character,n);return this.ensureBeforeEOL(i,r)}ensureBeforeEOL(e,t){for(;e>t&&oW(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){return null!=e&&"string"==typeof e.text&&void 0!==e.range&&(void 0===e.rangeLength||"number"==typeof e.rangeLength)}static isFull(e){return null!=e&&"string"==typeof e.text&&void 0===e.range&&void 0===e.rangeLength}}function oH(e,t,r=0){let n=t?[r]:[];for(let t=0;t<e.length;t++){let i=e.charCodeAt(t);oW(i)&&(13===i&&t+1<e.length&&10===e.charCodeAt(t+1)&&t++,n.push(r+t+1))}return n}function oW(e){return 13===e||10===e}function oz(e){let t=e.start,r=e.end;return t.line>r.line||t.line===r.line&&t.character>r.character?{start:r,end:t}:e}function oY(e){let t=oz(e.range);return t!==e.range?{newText:e.newText,range:t}:e}(tJ=ny||(ny={})).create=function(e,t,r,n){return new oV(e,t,r,n)},tJ.update=function(e,t,r){if(e instanceof oV)return e.update(t,r),e;throw Error("TextDocument.update: document must be created by TextDocument.create")},tJ.applyEdits=function(e,t){let r=e.getText(),n=function e(t,r){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),a=t.slice(n);e(i,r),e(a,r);let s=0,o=0,l=0;for(;s<i.length&&o<a.length;)0>=r(i[s],a[o])?t[l++]=i[s++]:t[l++]=a[o++];for(;s<i.length;)t[l++]=i[s++];for(;o<a.length;)t[l++]=a[o++];return t}(t.map(oY),(e,t)=>{let r=e.range.start.line-t.range.start.line;return 0===r?e.range.start.character-t.range.start.character:r}),i=0,a=[];for(let t of n){let n=e.offsetAt(t.range.start);if(n<i)throw Error("Overlapping edit");n>i&&a.push(r.substring(i,n)),t.newText.length&&a.push(t.newText),i=e.offsetAt(t.range.end)}return a.push(r.substr(i)),a.join("")},(()=>{var e={470:e=>{function t(e){if("string"!=typeof e)throw TypeError("Path must be a string. Received "+JSON.stringify(e))}function r(e,t){for(var r,n="",i=0,a=-1,s=0,o=0;o<=e.length;++o){if(o<e.length)r=e.charCodeAt(o);else{if(47===r)break;r=47}if(47===r){if(a===o-1||1===s);else if(a!==o-1&&2===s){if(n.length<2||2!==i||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2)){if(n.length>2){var l=n.lastIndexOf("/");if(l!==n.length-1){-1===l?(n="",i=0):i=(n=n.slice(0,l)).length-1-n.lastIndexOf("/"),a=o,s=0;continue}}else if(2===n.length||1===n.length){n="",i=0,a=o,s=0;continue}}t&&(n.length>0?n+="/..":n="..",i=2)}else n.length>0?n+="/"+e.slice(a+1,o):n=e.slice(a+1,o),i=o-a-1;a=o,s=0}else 46===r&&-1!==s?++s:s=-1}return n}var n={resolve:function(){for(var e,n,i="",a=!1,s=arguments.length-1;s>=-1&&!a;s--)s>=0?e=arguments[s]:(void 0===n&&(n=process.cwd()),e=n),t(e),0!==e.length&&(i=e+"/"+i,a=47===e.charCodeAt(0));return i=r(i,!a),a?i.length>0?"/"+i:"/":i.length>0?i:"."},normalize:function(e){if(t(e),0===e.length)return".";var n=47===e.charCodeAt(0),i=47===e.charCodeAt(e.length-1);return 0!==(e=r(e,!n)).length||n||(e="."),e.length>0&&i&&(e+="/"),n?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0==arguments.length)return".";for(var e,r=0;r<arguments.length;++r){var i=arguments[r];t(i),i.length>0&&(void 0===e?e=i:e+="/"+i)}return void 0===e?".":n.normalize(e)},relative:function(e,r){if(t(e),t(r),e===r||(e=n.resolve(e))===(r=n.resolve(r)))return"";for(var i=1;i<e.length&&47===e.charCodeAt(i);++i);for(var a=e.length,s=a-i,o=1;o<r.length&&47===r.charCodeAt(o);++o);for(var l=r.length-o,u=s<l?s:l,c=-1,d=0;d<=u;++d){if(d===u){if(l>u){if(47===r.charCodeAt(o+d))return r.slice(o+d+1);if(0===d)return r.slice(o+d)}else s>u&&(47===e.charCodeAt(i+d)?c=d:0===d&&(c=0));break}var h=e.charCodeAt(i+d);if(h!==r.charCodeAt(o+d))break;47===h&&(c=d)}var f="";for(d=i+c+1;d<=a;++d)d!==a&&47!==e.charCodeAt(d)||(0===f.length?f+="..":f+="/..");return f.length>0?f+r.slice(o+c):(o+=c,47===r.charCodeAt(o)&&++o,r.slice(o))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var r=e.charCodeAt(0),n=47===r,i=-1,a=!0,s=e.length-1;s>=1;--s)if(47===(r=e.charCodeAt(s))){if(!a){i=s;break}}else a=!1;return -1===i?n?"/":".":n&&1===i?"//":e.slice(0,i)},basename:function(e,r){if(void 0!==r&&"string"!=typeof r)throw TypeError('"ext" argument must be a string');t(e);var n,i=0,a=-1,s=!0;if(void 0!==r&&r.length>0&&r.length<=e.length){if(r.length===e.length&&r===e)return"";var o=r.length-1,l=-1;for(n=e.length-1;n>=0;--n){var u=e.charCodeAt(n);if(47===u){if(!s){i=n+1;break}}else -1===l&&(s=!1,l=n+1),o>=0&&(u===r.charCodeAt(o)?-1==--o&&(a=n):(o=-1,a=l))}return i===a?a=l:-1===a&&(a=e.length),e.slice(i,a)}for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!s){i=n+1;break}}else -1===a&&(s=!1,a=n+1);return -1===a?"":e.slice(i,a)},extname:function(e){t(e);for(var r=-1,n=0,i=-1,a=!0,s=0,o=e.length-1;o>=0;--o){var l=e.charCodeAt(o);if(47!==l)-1===i&&(a=!1,i=o+1),46===l?-1===r?r=o:1!==s&&(s=1):-1!==r&&(s=-1);else if(!a){n=o+1;break}}return -1===r||-1===i||0===s||1===s&&r===i-1&&r===n+1?"":e.slice(r,i)},format:function(e){var t,r;if(null===e||"object"!=typeof e)throw TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return t=e.dir||e.root,r=e.base||(e.name||"")+(e.ext||""),t?t===e.root?t+r:t+"/"+r:r},parse:function(e){t(e);var r={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return r;var n,i=e.charCodeAt(0),a=47===i;a?(r.root="/",n=1):n=0;for(var s=-1,o=0,l=-1,u=!0,c=e.length-1,d=0;c>=n;--c)if(47!==(i=e.charCodeAt(c)))-1===l&&(u=!1,l=c+1),46===i?-1===s?s=c:1!==d&&(d=1):-1!==s&&(d=-1);else if(!u){o=c+1;break}return -1===s||-1===l||0===d||1===d&&s===l-1&&s===o+1?-1!==l&&(r.base=r.name=0===o&&a?e.slice(1,l):e.slice(o,l)):(0===o&&a?(r.name=e.slice(1,s),r.base=e.slice(1,l)):(r.name=e.slice(o,s),r.base=e.slice(o,l)),r.ext=e.slice(s,l)),o>0?r.dir=e.slice(0,o-1):a&&(r.dir="/"),r},sep:"/",delimiter:":",win32:null,posix:null};n.posix=n,e.exports=n}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,r),a.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{let e;(r.r(n),r.d(n,{URI:()=>l,Utils:()=>T}),"object"==typeof process)?e="win32"===process.platform:"object"==typeof navigator&&(e=navigator.userAgent.indexOf("Windows")>=0);let t=/^\w[\w\d+.-]*$/,i=/^\//,a=/^\/\//;function s(e,r){if(!e.scheme&&r)throw Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!t.test(e.scheme))throw Error("[UriError]: Scheme contains illegal characters.");if(e.path){if(e.authority){if(!i.test(e.path))throw Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(a.test(e.path))throw Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let o=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class l{static isUri(e){return e instanceof l||!!e&&"string"==typeof e.authority&&"string"==typeof e.fragment&&"string"==typeof e.path&&"string"==typeof e.query&&"string"==typeof e.scheme&&"string"==typeof e.fsPath&&"function"==typeof e.with&&"function"==typeof e.toString}scheme;authority;path;query;fragment;constructor(e,t,r,n,i,a=!1){"object"==typeof e?(this.scheme=e.scheme||"",this.authority=e.authority||"",this.path=e.path||"",this.query=e.query||"",this.fragment=e.fragment||""):(this.scheme=e||a?e:"file",this.authority=t||"",this.path=function(e,t){switch(e){case"https":case"http":case"file":t?"/"!==t[0]&&(t="/"+t):t="/"}return t}(this.scheme,r||""),this.query=n||"",this.fragment=i||"",s(this,a))}get fsPath(){return p(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:r,path:n,query:i,fragment:a}=e;return void 0===t?t=this.scheme:null===t&&(t=""),void 0===r?r=this.authority:null===r&&(r=""),void 0===n?n=this.path:null===n&&(n=""),void 0===i?i=this.query:null===i&&(i=""),void 0===a?a=this.fragment:null===a&&(a=""),t===this.scheme&&r===this.authority&&n===this.path&&i===this.query&&a===this.fragment?this:new c(t,r,n,i,a)}static parse(e,t=!1){let r=o.exec(e);return r?new c(r[2]||"",y(r[4]||""),y(r[5]||""),y(r[7]||""),y(r[9]||""),t):new c("","","","","")}static file(t){let r="";if(e&&(t=t.replace(/\\/g,"/")),"/"===t[0]&&"/"===t[1]){let e=t.indexOf("/",2);-1===e?(r=t.substring(2),t="/"):(r=t.substring(2,e),t=t.substring(e)||"/")}return new c("file",r,t,"","")}static from(e){let t=new c(e.scheme,e.authority,e.path,e.query,e.fragment);return s(t,!0),t}toString(e=!1){return m(this,e)}toJSON(){return this}static revive(e){if(e){if(e instanceof l)return e;{let t=new c(e);return t._formatted=e.external,t._fsPath=e._sep===u?e.fsPath:null,t}}return e}}let u=e?1:void 0;class c extends l{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=p(this,!1)),this._fsPath}toString(e=!1){return e?m(this,!0):(this._formatted||(this._formatted=m(this,!1)),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=u),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}}let d={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function h(e,t,r){let n,i=-1;for(let a=0;a<e.length;a++){let s=e.charCodeAt(a);if(s>=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||45===s||46===s||95===s||126===s||t&&47===s||r&&91===s||r&&93===s||r&&58===s)-1!==i&&(n+=encodeURIComponent(e.substring(i,a)),i=-1),void 0!==n&&(n+=e.charAt(a));else{void 0===n&&(n=e.substr(0,a));let t=d[s];void 0!==t?(-1!==i&&(n+=encodeURIComponent(e.substring(i,a)),i=-1),n+=t):-1===i&&(i=a)}}return -1!==i&&(n+=encodeURIComponent(e.substring(i))),void 0!==n?n:e}function f(e){let t;for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);35===n||63===n?(void 0===t&&(t=e.substr(0,r)),t+=d[n]):void 0!==t&&(t+=e[r])}return void 0!==t?t:e}function p(t,r){let n;return n=t.authority&&t.path.length>1&&"file"===t.scheme?`//${t.authority}${t.path}`:47===t.path.charCodeAt(0)&&(t.path.charCodeAt(1)>=65&&90>=t.path.charCodeAt(1)||t.path.charCodeAt(1)>=97&&122>=t.path.charCodeAt(1))&&58===t.path.charCodeAt(2)?r?t.path.substr(1):t.path[1].toLowerCase()+t.path.substr(2):t.path,e&&(n=n.replace(/\//g,"\\")),n}function m(e,t){let r=t?f:h,n="",{scheme:i,authority:a,path:s,query:o,fragment:l}=e;if(i&&(n+=i+":"),(a||"file"===i)&&(n+="//"),a){let e=a.indexOf("@");if(-1!==e){let t=a.substr(0,e);a=a.substr(e+1),-1===(e=t.lastIndexOf(":"))?n+=r(t,!1,!1):n+=r(t.substr(0,e),!1,!1)+":"+r(t.substr(e+1),!1,!0),n+="@"}-1===(e=(a=a.toLowerCase()).lastIndexOf(":"))?n+=r(a,!1,!0):n+=r(a.substr(0,e),!1,!0)+a.substr(e)}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2)){let e=s.charCodeAt(1);e>=65&&e<=90&&(s=`/${String.fromCharCode(e+32)}:${s.substr(3)}`)}else if(s.length>=2&&58===s.charCodeAt(1)){let e=s.charCodeAt(0);e>=65&&e<=90&&(s=`${String.fromCharCode(e+32)}:${s.substr(2)}`)}n+=r(s,!0,!1)}return o&&(n+="?"+r(o,!1,!1)),l&&(n+="#"+(t?l:h(l,!1,!1))),n}let g=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function y(e){return e.match(g)?e.replace(g,e=>(function e(t){try{return decodeURIComponent(t)}catch{return t.length>3?t.substr(0,3)+e(t.substr(3)):t}})(e)):e}var A,T,v=r(470);let R=v.posix||v;(A=T||(T={})).joinPath=function(e,...t){return e.with({path:R.join(e.path,...t)})},A.resolvePath=function(e,...t){let r=e.path,n=!1;"/"!==r[0]&&(r="/"+r,n=!0);let i=R.resolve(r,...t);return n&&"/"===i[0]&&!e.authority&&(i=i.substring(1)),e.with({path:i})},A.dirname=function(e){if(0===e.path.length||"/"===e.path)return e;let t=R.dirname(e.path);return 1===t.length&&46===t.charCodeAt(0)&&(t=""),e.with({path:t})},A.basename=function(e){return R.basename(e.path)},A.extname=function(e){return R.extname(e.path)}})(),nA=n})();let{URI:oX,Utils:oq}=nA;(tZ=nT||(nT={})).basename=oq.basename,tZ.dirname=oq.dirname,tZ.extname=oq.extname,tZ.joinPath=oq.joinPath,tZ.resolvePath=oq.resolvePath,tZ.equals=function(e,t){return(null==e?void 0:e.toString())===(null==t?void 0:t.toString())},tZ.relative=function(e,t){let r="string"==typeof e?e:e.path,n="string"==typeof t?t:t.path,i=r.split("/").filter(e=>e.length>0),a=n.split("/").filter(e=>e.length>0),s=0;for(;s<i.length&&i[s]===a[s];s++);return"../".repeat(i.length-s)+a.slice(s).join("/")},(t0=nv||(nv={}))[t0.Changed=0]="Changed",t0[t0.Parsed=1]="Parsed",t0[t0.IndexedContent=2]="IndexedContent",t0[t0.ComputedScopes=3]="ComputedScopes",t0[t0.Linked=4]="Linked",t0[t0.IndexedReferences=5]="IndexedReferences",t0[t0.Validated=6]="Validated";class oQ{constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=oF.XO.None){let r=await this.fileSystemProvider.readFile(e);return this.createAsync(e,r,t)}fromTextDocument(e,t,r){return(t=null!=t?t:oX.parse(e.uri),r)?this.createAsync(t,e,r):this.create(t,e)}fromString(e,t,r){return r?this.createAsync(t,e,r):this.create(t,e)}fromModel(e,t){return this.create(t,{$model:e})}create(e,t){if("string"==typeof t){let r=this.parse(e,t);return this.createLangiumDocument(r,e,void 0,t)}if("$model"in t){let r={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(r,e)}{let r=this.parse(e,t.getText());return this.createLangiumDocument(r,e,t)}}async createAsync(e,t,r){if("string"==typeof t){let n=await this.parseAsync(e,t,r);return this.createLangiumDocument(n,e,void 0,t)}{let n=await this.parseAsync(e,t.getText(),r);return this.createLangiumDocument(n,e,t)}}createLangiumDocument(e,t,r,n){let i;if(r)i={parseResult:e,uri:t,state:nv.Parsed,references:[],textDocument:r};else{let r=this.createTextDocumentGetter(t,n);i={parseResult:e,uri:t,state:nv.Parsed,references:[],get textDocument(){return r()}}}return e.value.$document=i,i}async update(e,t){var r,n;let i=null===(r=e.parseResult.value.$cstNode)||void 0===r?void 0:r.root.fullText,a=null===(n=this.textDocuments)||void 0===n?void 0:n.get(e.uri.toString()),s=a?a.getText():await this.fileSystemProvider.readFile(e.uri);if(a)Object.defineProperty(e,"textDocument",{value:a});else{let t=this.createTextDocumentGetter(e.uri,s);Object.defineProperty(e,"textDocument",{get:t})}return i!==s&&(e.parseResult=await this.parseAsync(e.uri,s,t),e.parseResult.value.$document=e),e.state=nv.Parsed,e}parse(e,t){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(t)}parseAsync(e,t,r){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(t,r)}createTextDocumentGetter(e,t){let r;let n=this.serviceRegistry;return()=>null!=r?r:r=ny.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,null!=t?t:"")}}class oJ{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory}get all(){return p(this.documentMap.values())}addDocument(e){let t=e.uri.toString();if(this.documentMap.has(t))throw Error(`A document with the URI '${t}' is already present.`);this.documentMap.set(t,e)}getDocument(e){let t=e.toString();return this.documentMap.get(t)}async getOrCreateDocument(e,t){let r=this.getDocument(e);return r||(r=await this.langiumDocumentFactory.fromUri(e,t),this.addDocument(r)),r}createDocument(e,t,r){if(r)return this.langiumDocumentFactory.fromString(t,e,r).then(e=>(this.addDocument(e),e));{let r=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(r),r}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){let t=e.toString(),r=this.documentMap.get(t);return r&&(r.state=nv.Changed,r.precomputedScopes=void 0,r.references=[],r.diagnostics=void 0),r}deleteDocument(e){let t=e.toString(),r=this.documentMap.get(t);return r&&(r.state=nv.Changed,this.documentMap.delete(t)),r}}class oZ{constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator}async link(e,t=oF.XO.None){for(let r of eE(e.parseResult.value))await oB(t),eI(r).forEach(t=>this.doLink(t,e))}doLink(e,t){let r=e.reference;if(void 0===r._ref)try{let t=this.getCandidate(e);if(a(t))r._ref=t;else if(r._nodeDescription=t,this.langiumDocuments().hasDocument(t.documentUri)){let n=this.loadAstNode(t);r._ref=null!=n?n:this.createLinkingError(e,t)}}catch(t){r._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${r.$refText}': ${t}`})}t.references.push(r)}unlink(e){for(let t of e.references)delete t._ref,delete t._nodeDescription;e.references=[]}getCandidate(e){let t=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return null!=t?t:this.createLinkingError(e)}buildReference(e,t,r,i){let s=this,o={$refNode:r,$refText:i,get ref(){var l,u;if(n(this._ref))return this._ref;if("object"==typeof(u=this._nodeDescription)&&null!==u&&"string"==typeof u.name&&"string"==typeof u.type&&"string"==typeof u.path){let r=s.loadAstNode(this._nodeDescription);this._ref=null!=r?r:s.createLinkingError({reference:o,container:e,property:t},this._nodeDescription)}else if(void 0===this._ref){let r=s.getLinkedNode({reference:o,container:e,property:t});if(r.error&&eT(e).state<nv.ComputedScopes)return;this._ref=null!==(l=r.node)&&void 0!==l?l:r.error,this._nodeDescription=r.descr}return n(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return a(this._ref)?this._ref:void 0}};return o}getLinkedNode(e){try{let t=this.getCandidate(e);if(a(t))return{error:t};let r=this.loadAstNode(t);if(r)return{node:r,descr:t};return{descr:t,error:this.createLinkingError(e,t)}}catch(t){return{error:Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${e.reference.$refText}': ${t}`})}}}loadAstNode(e){if(e.node)return e.node;let t=this.langiumDocuments().getDocument(e.documentUri);if(t)return this.astNodeLocator.getAstNode(t.parseResult.value,e.path)}createLinkingError(e,t){let r=eT(e.container);r.state<nv.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${r.uri}).`);let n=this.reflection.getReferenceType(e);return Object.assign(Object.assign({},e),{message:`Could not resolve reference to ${n} named '${e.reference.$refText}'.`,targetDescription:t})}}class o0{getName(e){if("string"==typeof e.name)return e.name}getNameNode(e){return eH(e.$cstNode,"name")}}class o1{constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){let t=function(e){var t;let r=e.astNode;for(;r===(null===(t=e.container)||void 0===t?void 0:t.astNode);){let t=eA(e.grammarSource,X);if(t)return t;e=e.container}}(e),r=e.astNode;if(t&&r){let n=r[t.feature];if(i(n))return n.ref;if(Array.isArray(n)){for(let t of n)if(i(t)&&t.$refNode&&t.$refNode.offset<=e.offset&&t.$refNode.end>=e.end)return t.ref}}if(r){let t=this.nameProvider.getNameNode(r);if(t&&(t===e||function(e,t){for(;e.container;)if((e=e.container)===t)return!0;return!1}(e,t)))return r}}}findDeclarationNode(e){let t=this.findDeclaration(e);if(null==t?void 0:t.$cstNode){let e=this.nameProvider.getNameNode(t);return null!=e?e:t.$cstNode}}findReferences(e,t){let r=[];if(t.includeDeclaration){let t=this.getReferenceToSelf(e);t&&r.push(t)}let n=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(n=n.filter(e=>nT.equals(e.sourceUri,t.documentUri))),r.push(...n),p(r)}getReferenceToSelf(e){let t=this.nameProvider.getNameNode(e);if(t){let r=eT(e),n=this.nodeLocator.getAstNodePath(e);return{sourceUri:r.uri,sourcePath:n,targetUri:r.uri,targetPath:n,segment:A(t),local:!0}}}}class o2{constructor(e){if(this.map=new Map,e)for(let[t,r]of e)this.add(t,r)}get size(){return t6.sum(p(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,t){if(void 0===t)return this.map.delete(e);{let r=this.map.get(e);if(r){let n=r.indexOf(t);if(n>=0)return 1===r.length?this.map.delete(e):r.splice(n,1),!0}return!1}}get(e){var t;return null!==(t=this.map.get(e))&&void 0!==t?t:[]}has(e,t){if(void 0===t)return this.map.has(e);{let r=this.map.get(e);return!!r&&r.indexOf(t)>=0}}add(e,t){return this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t]),this}addAll(e,t){return this.map.has(e)?this.map.get(e).push(...t):this.map.set(e,Array.from(t)),this}forEach(e){this.map.forEach((t,r)=>t.forEach(t=>e(t,r,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return p(this.map.entries()).flatMap(([e,t])=>t.map(t=>[e,t]))}keys(){return p(this.map.keys())}values(){return p(this.map.values()).flat()}entriesGroupedByKey(){return p(this.map.entries())}}class o4{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(let[t,r]of e)this.set(t,r)}clear(){this.map.clear(),this.inverse.clear()}set(e,t){return this.map.set(e,t),this.inverse.set(t,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){let t=this.map.get(e);return void 0!==t&&(this.map.delete(e),this.inverse.delete(t),!0)}}class o6{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=oF.XO.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,t)}async computeExportsForNode(e,t,r=ev,n=oF.XO.None){let i=[];for(let a of(this.exportNode(e,i,t),r(e)))await oB(n),this.exportNode(a,i,t);return i}exportNode(e,t,r){let n=this.nameProvider.getName(e);n&&t.push(this.descriptions.createDescription(e,n,r))}async computeLocalScopes(e,t=oF.XO.None){let r=e.parseResult.value,n=new o2;for(let i of eR(r))await oB(t),this.processNode(i,e,n);return n}processNode(e,t,r){let n=e.$container;if(n){let i=this.nameProvider.getName(e);i&&r.add(n,this.descriptions.createDescription(e,i,t))}}}class o3{constructor(e,t,r){var n;this.elements=e,this.outerScope=t,this.caseInsensitive=null!==(n=null==r?void 0:r.caseInsensitive)&&void 0!==n&&n}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){return(this.caseInsensitive?this.elements.find(t=>t.name.toLowerCase()===e.toLowerCase()):this.elements.find(t=>t.name===e))||(this.outerScope?this.outerScope.getElement(e):void 0)}}class o5{constructor(e,t,r){var n;for(let t of(this.elements=new Map,this.caseInsensitive=null!==(n=null==r?void 0:r.caseInsensitive)&&void 0!==n&&n,e)){let e=this.caseInsensitive?t.name.toLowerCase():t.name;this.elements.set(e,t)}this.outerScope=t}getElement(e){let t=this.caseInsensitive?e.toLowerCase():e;return this.elements.get(t)||(this.outerScope?this.outerScope.getElement(e):void 0)}getAllElements(){let e=p(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}}class o8{constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw Error("This cache has already been disposed")}}class o9 extends o8{constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,t){this.throwIfDisposed(),this.cache.set(e,t)}get(e,t){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(t){let r=t();return this.cache.set(e,r),r}}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}}class o7 extends o8{constructor(e){super(),this.cache=new Map,this.converter=null!=e?e:e=>e}has(e,t){return this.throwIfDisposed(),this.cacheForContext(e).has(t)}set(e,t,r){this.throwIfDisposed(),this.cacheForContext(e).set(t,r)}get(e,t,r){this.throwIfDisposed();let n=this.cacheForContext(e);if(n.has(t))return n.get(t);if(r){let e=r();return n.set(t,e),e}}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){let t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){let t=this.converter(e),r=this.cache.get(t);return r||(r=new Map,this.cache.set(t,r)),r}}class le extends o9{constructor(e){super(),this.onDispose(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}class lt{constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new le(e.shared)}getScope(e){let t=[],r=this.reflection.getReferenceType(e),n=eT(e.container).precomputedScopes;if(n){let i=e.container;do{let e=n.get(i);e.length>0&&t.push(p(e).filter(e=>this.reflection.isSubtype(e.type,r))),i=i.$container}while(i)}let i=this.getGlobalScope(r,e);for(let e=t.length-1;e>=0;e--)i=this.createScope(t[e],i);return i}createScope(e,t,r){return new o3(p(e),t,r)}createScopeForNodes(e,t,r){return new o3(p(e).map(e=>{let t=this.nameProvider.getName(e);if(t)return this.descriptions.createDescription(e,t)}).nonNullable(),t,r)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new o5(this.indexManager.allElements(e)))}}function lr(e){return"object"==typeof e&&!!e&&("$ref"in e||"$error"in e)}class ln{constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,t={}){let r=null==t?void 0:t.replacer,n=(e,r)=>this.replacer(e,r,t),i=r?(e,t)=>r(e,t,n):n;try{return this.currentDocument=eT(e),JSON.stringify(e,i,null==t?void 0:t.space)}finally{this.currentDocument=void 0}}deserialize(e,t={}){let r=JSON.parse(e);return this.linkNode(r,r,t),r}replacer(e,t,{refText:r,sourceText:a,textRegions:s,comments:o,uriConverter:l}){var u,c,d,h;if(!this.ignoreProperties.has(e)){if(i(t)){let e=t.ref,n=r?t.$refText:void 0;if(!e)return{$error:null!==(c=null===(u=t.error)||void 0===u?void 0:u.message)&&void 0!==c?c:"Could not resolve reference",$refText:n};{let r=eT(e),i="";this.currentDocument&&this.currentDocument!==r&&(i=l?l(r.uri,t):r.uri.toString());let a=this.astNodeLocator.getAstNodePath(e);return{$ref:`${i}#${a}`,$refText:n}}}if(!n(t))return t;{let r;if(s&&(r=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t)),(!e||t.$document)&&(null==r?void 0:r.$textRegion)&&(r.$textRegion.documentURI=null===(d=this.currentDocument)||void 0===d?void 0:d.uri.toString())),a&&!e&&(null!=r||(r=Object.assign({},t)),r.$sourceText=null===(h=t.$cstNode)||void 0===h?void 0:h.text),o){null!=r||(r=Object.assign({},t));let e=this.commentProvider.getComment(t);e&&(r.$comment=e.replace(/\r/g,""))}return null!=r?r:t}}}addAstNodeRegionWithAssignmentsTo(e){let t=e=>({offset:e.offset,end:e.end,length:e.length,range:e.range});if(e.$cstNode){let r=(e.$textRegion=t(e.$cstNode)).assignments={};return Object.keys(e).filter(e=>!e.startsWith("$")).forEach(n=>{var i;let a=((i=e.$cstNode)&&n?eW(i,n,i.astNode,!0):[]).map(t);0!==a.length&&(r[n]=a)}),e}}linkNode(e,t,r,i,a,s){for(let[i,a]of Object.entries(e))if(Array.isArray(a))for(let s=0;s<a.length;s++){let o=a[s];lr(o)?a[s]=this.reviveReference(e,i,t,o,r):n(o)&&this.linkNode(o,t,r,e,i,s)}else lr(a)?e[i]=this.reviveReference(e,i,t,a,r):n(a)&&this.linkNode(a,t,r,e,i);e.$container=i,e.$containerProperty=a,e.$containerIndex=s}reviveReference(e,t,r,i,a){let s=i.$refText,o=i.$error;if(i.$ref){let e=this.getRefNode(r,i.$ref,a.uriConverter);if(n(e))return s||(s=this.nameProvider.getName(e)),{$refText:null!=s?s:"",ref:e};o=e}if(o){let r={$refText:null!=s?s:""};return r.error={container:e,property:t,message:o,reference:r},r}}getRefNode(e,t,r){try{let n=t.indexOf("#");if(0===n){let r=this.astNodeLocator.getAstNode(e,t.substring(1));if(!r)return"Could not resolve path: "+t;return r}if(n<0){let e=r?r(t):oX.parse(t),n=this.langiumDocuments.getDocument(e);if(!n)return"Could not find document for URI: "+t;return n.parseResult.value}let i=r?r(t.substring(0,n)):oX.parse(t.substring(0,n)),a=this.langiumDocuments.getDocument(i);if(!a)return"Could not find document for URI: "+t;if(n===t.length-1)return a.parseResult.value;let s=this.astNodeLocator.getAstNode(a.parseResult.value,t.substring(n+1));if(!s)return"Could not resolve URI: "+t;return s}catch(e){return String(e)}}}class li{register(e){if(!this.singleton&&!this.map){this.singleton=e;return}if(!this.map&&(this.map={},this.singleton)){for(let e of this.singleton.LanguageMetaData.fileExtensions)this.map[e]=this.singleton;this.singleton=void 0}for(let t of e.LanguageMetaData.fileExtensions)void 0!==this.map[t]&&this.map[t]!==e&&console.warn(`The file extension ${t} is used by multiple languages. It is now assigned to '${e.LanguageMetaData.languageId}'.`),this.map[t]=e}getServices(e){if(void 0!==this.singleton)return this.singleton;if(void 0===this.map)throw Error("The service registry is empty. Use `register` to register the services of a language.");let t=nT.extname(e),r=this.map[t];if(!r)throw Error(`The service registry contains no services for the extension '${t}'.`);return r}get all(){return void 0!==this.singleton?[this.singleton]:void 0!==this.map?Object.values(this.map):[]}}(nR||(nR={})).all=["fast","slow","built-in"];class la{constructor(e){this.entries=new o2,this.reflection=e.shared.AstReflection}register(e,t=this,r="fast"){if("built-in"===r)throw Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(let[n,i]of Object.entries(e))if(Array.isArray(i))for(let e of i){let i={check:this.wrapValidationException(e,t),category:r};this.addEntry(n,i)}else if("function"==typeof i){let e={check:this.wrapValidationException(i,t),category:r};this.addEntry(n,e)}}wrapValidationException(e,t){return async(r,n,i)=>{try{await e.call(t,r,n,i)}catch(t){if(t===oK)throw t;console.error("An error occurred during validation:",t);let e=t instanceof Error?t.message:String(t);t instanceof Error&&t.stack&&console.error(t.stack),n("error","An error occurred during validation: "+e,{node:r})}}}addEntry(e,t){if("AstNode"===e){this.entries.add("AstNode",t);return}for(let r of this.reflection.getAllSubTypes(e))this.entries.add(r,t)}getChecks(e,t){let r=p(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(r=r.filter(e=>t.includes(e.category))),r.map(e=>e.check)}}class ls{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},r=oF.XO.None){let n=e.parseResult,i=[];if(await oB(r),(!t.categories||t.categories.includes("built-in"))&&(this.processLexingErrors(n,i,t),t.stopAfterLexingErrors&&i.some(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===nE.LexingError})||(this.processParsingErrors(n,i,t),t.stopAfterParsingErrors&&i.some(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===nE.ParsingError}))||(this.processLinkingErrors(e,i,t),t.stopAfterLinkingErrors&&i.some(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===nE.LinkingError}))))return i;try{i.push(...await this.validateAst(n.value,t,r))}catch(e){if(e===oK)throw e;console.error("An error occurred during validation:",e)}return await oB(r),i}processLexingErrors(e,t,r){for(let r of e.lexerErrors){let e={severity:lo("error"),range:{start:{line:r.line-1,character:r.column-1},end:{line:r.line-1,character:r.column+r.length-1}},message:r.message,data:{code:nE.LexingError},source:this.getSource()};t.push(e)}}processParsingErrors(e,t,r){for(let r of e.parserErrors){let e;if(isNaN(r.token.startOffset)){if("previousToken"in r){let t=r.previousToken;if(isNaN(t.startOffset)){let t={line:0,character:0};e={start:t,end:t}}else{let r={line:t.endLine-1,character:t.endColumn};e={start:r,end:r}}}}else e=y(r.token);if(e){let n={severity:lo("error"),range:e,message:r.message,data:{code:nE.ParsingError},source:this.getSource()};t.push(n)}}}processLinkingErrors(e,t,r){for(let r of e.references){let e=r.error;if(e){let r={node:e.container,property:e.property,index:e.index,data:{code:nE.LinkingError,containerType:e.container.$type,property:e.property,refText:e.reference.$refText}};t.push(this.toDiagnostic("error",e.message,r))}}}async validateAst(e,t,r=oF.XO.None){let n=[],i=(e,t,r)=>{n.push(this.toDiagnostic(e,t,r))};return await Promise.all(eE(e).map(async e=>{for(let n of(await oB(r),this.validationRegistry.getChecks(e.$type,t.categories)))await n(e,i,r)})),n}toDiagnostic(e,t,r){let n;return{message:t,range:r.range?r.range:("string"==typeof r.property?n=eH(r.node.$cstNode,r.property,r.index):"string"==typeof r.keyword&&(n=function(e,t,r){if(!e)return;let n=function(e,t,r){let n;if(e.astNode!==r)return[];if(en(e.grammarSource)&&e.grammarSource.value===t)return[e];let i=g(e).iterator(),a=[];do if(!(n=i.next()).done){let e=n.value;e.astNode===r?en(e.grammarSource)&&e.grammarSource.value===t&&a.push(e):i.prune()}while(!n.done)return a}(e,t,null==e?void 0:e.astNode);if(0!==n.length)return r=void 0!==r?Math.max(0,Math.min(r,n.length-1)):0,n[r]}(r.node.$cstNode,r.keyword,r.index)),null!=n||(n=r.node.$cstNode),n)?n.range:{start:{line:0,character:0},end:{line:0,character:0}},severity:lo(e),code:r.code,codeDescription:r.codeDescription,tags:r.tags,relatedInformation:r.relatedInformation,data:r.data,source:this.getSource()}}getSource(){return this.metadata.languageId}}function lo(e){switch(e){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw Error("Invalid diagnostic severity: "+e)}}(t1=nE||(nE={})).LexingError="lexing-error",t1.ParsingError="parsing-error",t1.LinkingError="linking-error";class ll{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,r=eT(e)){let n;null!=t||(t=this.nameProvider.getName(e));let i=this.astNodeLocator.getAstNodePath(e);if(!t)throw Error(`Node at path ${i} has no name.`);let a=()=>{var t;return null!=n?n:n=A(null!==(t=this.nameProvider.getNameNode(e))&&void 0!==t?t:e.$cstNode)};return{node:e,name:t,get nameSegment(){return a()},selectionSegment:A(e.$cstNode),type:e.$type,documentUri:r.uri,path:i}}}class lu{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=oF.XO.None){let r=[];for(let n of eE(e.parseResult.value))await oB(t),eI(n).filter(e=>!a(e)).forEach(e=>{let t=this.createDescription(e);t&&r.push(t)});return r}createDescription(e){let t=e.reference.$nodeDescription,r=e.reference.$refNode;if(!t||!r)return;let n=eT(e.container).uri;return{sourceUri:n,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:A(r),local:nT.equals(t.documentUri,n)}}}class lc{constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){let t=this.getAstNodePath(e.$container),r=this.getPathSegment(e);return t+this.segmentSeparator+r}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw Error("Missing '$containerProperty' in AST node.");return void 0!==t?e+this.indexSeparator+t:e}getAstNode(e,t){return t.split(this.segmentSeparator).reduce((e,t)=>{if(!e||0===t.length)return e;let r=t.indexOf(this.indexSeparator);if(r>0){let n=t.substring(0,r),i=parseInt(t.substring(r+1)),a=e[n];return null==a?void 0:a[i]}return e[t]},e)}}class ld{constructor(e){this._ready=new oj,this.settings={},this.workspaceConfig=!1,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var t,r;this.workspaceConfig=null!==(r=null===(t=e.capabilities.workspace)||void 0===t?void 0:t.configuration)&&void 0!==r&&r}async initialized(e){if(this.workspaceConfig){if(e.register){let t=this.serviceRegistry.all;e.register({section:t.map(e=>this.toSectionName(e.LanguageMetaData.languageId))})}if(e.fetchConfiguration){let t=this.serviceRegistry.all.map(e=>({section:this.toSectionName(e.LanguageMetaData.languageId)})),r=await e.fetchConfiguration(t);t.forEach((e,t)=>{this.updateSectionConfiguration(e.section,r[t])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(t=>{this.updateSectionConfiguration(t,e.settings[t])})}updateSectionConfiguration(e,t){this.settings[e]=t}async getConfiguration(e,t){await this.ready;let r=this.toSectionName(e);if(this.settings[r])return this.settings[r][t]}toSectionName(e){return`${e}`}}(nk||(nk={})).create=function(e){return{dispose:async()=>await e()}};class lh{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new o2,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=nv.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,t={},r=oF.XO.None){var n,i;for(let r of e){let e=r.uri.toString();if(r.state===nv.Validated){if("boolean"==typeof t.validation&&t.validation)r.state=nv.IndexedReferences,r.diagnostics=void 0,this.buildState.delete(e);else if("object"==typeof t.validation){let a=this.buildState.get(e),s=null===(n=null==a?void 0:a.result)||void 0===n?void 0:n.validationChecks;if(s){let n=(null!==(i=t.validation.categories)&&void 0!==i?i:nR.all).filter(e=>!s.includes(e));n.length>0&&(this.buildState.set(e,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:n})},result:a.result}),r.state=nv.IndexedReferences)}}}else this.buildState.delete(e)}this.currentState=nv.Changed,await this.emitUpdate(e.map(e=>e.uri),[]),await this.buildDocuments(e,t,r)}async update(e,t,r=oF.XO.None){for(let e of(this.currentState=nv.Changed,t))this.langiumDocuments.deleteDocument(e),this.buildState.delete(e.toString()),this.indexManager.remove(e);for(let t of e){if(!this.langiumDocuments.invalidateDocument(t)){let e=this.langiumDocumentFactory.fromModel({$type:"INVALID"},t);e.state=nv.Changed,this.langiumDocuments.addDocument(e)}this.buildState.delete(t.toString())}let n=p(e).concat(t).map(e=>e.toString()).toSet();this.langiumDocuments.all.filter(e=>!n.has(e.uri.toString())&&this.shouldRelink(e,n)).forEach(e=>{this.serviceRegistry.getServices(e.uri).references.Linker.unlink(e),e.state=Math.min(e.state,nv.ComputedScopes),e.diagnostics=void 0}),await this.emitUpdate(e,t),await oB(r);let i=this.langiumDocuments.all.filter(e=>{var t;return e.state<nv.Linked||!(null===(t=this.buildState.get(e.uri.toString()))||void 0===t?void 0:t.completed)}).toArray();await this.buildDocuments(i,this.updateBuildOptions,r)}async emitUpdate(e,t){await Promise.all(this.updateListeners.map(r=>r(e,t)))}shouldRelink(e,t){return!!e.references.some(e=>void 0!==e.error)||this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),nk.create(()=>{let t=this.updateListeners.indexOf(e);t>=0&&this.updateListeners.splice(t,1)})}async buildDocuments(e,t,r){this.prepareBuild(e,t),await this.runCancelable(e,nv.Parsed,r,e=>this.langiumDocumentFactory.update(e,r)),await this.runCancelable(e,nv.IndexedContent,r,e=>this.indexManager.updateContent(e,r)),await this.runCancelable(e,nv.ComputedScopes,r,async e=>{let t=this.serviceRegistry.getServices(e.uri).references.ScopeComputation;e.precomputedScopes=await t.computeLocalScopes(e,r)}),await this.runCancelable(e,nv.Linked,r,e=>this.serviceRegistry.getServices(e.uri).references.Linker.link(e,r)),await this.runCancelable(e,nv.IndexedReferences,r,e=>this.indexManager.updateReferences(e,r));let n=e.filter(e=>this.shouldValidate(e));for(let t of(await this.runCancelable(n,nv.Validated,r,e=>this.validate(e,r)),e)){let e=this.buildState.get(t.uri.toString());e&&(e.completed=!0)}}prepareBuild(e,t){for(let r of e){let e=r.uri.toString(),n=this.buildState.get(e);(!n||n.completed)&&this.buildState.set(e,{completed:!1,options:t,result:null==n?void 0:n.result})}}async runCancelable(e,t,r,n){let i=e.filter(e=>e.state<t);for(let e of i)await oB(r),await n(e),e.state=t;await this.notifyBuildPhase(i,t,r),this.currentState=t}onBuildPhase(e,t){return this.buildPhaseListeners.add(e,t),nk.create(()=>{this.buildPhaseListeners.delete(e,t)})}waitUntil(e,t,r){let n;if(t&&"path"in t?n=t:r=t,null!=r||(r=oF.XO.None),n){let t=this.langiumDocuments.getDocument(n);if(t&&t.state>e)return Promise.resolve(n)}return this.currentState>=e?Promise.resolve(void 0):r.isCancellationRequested?Promise.reject(oK):new Promise((t,i)=>{let a=this.onBuildPhase(e,()=>{if(a.dispose(),s.dispose(),n){let e=this.langiumDocuments.getDocument(n);t(null==e?void 0:e.uri)}else t(void 0)}),s=r.onCancellationRequested(()=>{a.dispose(),s.dispose(),i(oK)})})}async notifyBuildPhase(e,t,r){if(0!==e.length)for(let n of this.buildPhaseListeners.get(t))await oB(r),await n(e,r)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,t){var r,n;let i=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,a=this.getBuildOptions(e).validation,s="object"==typeof a?a:void 0,o=await i.validateDocument(e,s,t);e.diagnostics?e.diagnostics.push(...o):e.diagnostics=o;let l=this.buildState.get(e.uri.toString());if(l){null!==(r=l.result)&&void 0!==r||(l.result={});let e=null!==(n=null==s?void 0:s.categories)&&void 0!==n?n:nR.all;l.result.validationChecks?l.result.validationChecks.push(...e):l.result.validationChecks=[...e]}}getBuildOptions(e){var t,r;return null!==(r=null===(t=this.buildState.get(e.uri.toString()))||void 0===t?void 0:t.options)&&void 0!==r?r:{}}}class lf{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new o7,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){let r=eT(e).uri,n=[];return this.referenceIndex.forEach(e=>{e.forEach(e=>{nT.equals(e.targetUri,r)&&e.targetPath===t&&n.push(e)})}),p(n)}allElements(e,t){let r=p(this.symbolIndex.keys());return t&&(r=r.filter(e=>!t||t.has(e))),r.map(t=>this.getFileDescriptions(t,e)).flat()}getFileDescriptions(e,t){var r;return t?this.symbolByTypeIndex.get(e,t,()=>{var r;return(null!==(r=this.symbolIndex.get(e))&&void 0!==r?r:[]).filter(e=>this.astReflection.isSubtype(e.type,t))}):null!==(r=this.symbolIndex.get(e))&&void 0!==r?r:[]}remove(e){let t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t),this.referenceIndex.delete(t)}async updateContent(e,t=oF.XO.None){let r=this.serviceRegistry.getServices(e.uri),n=await r.references.ScopeComputation.computeExports(e,t),i=e.uri.toString();this.symbolIndex.set(i,n),this.symbolByTypeIndex.clear(i)}async updateReferences(e,t=oF.XO.None){let r=this.serviceRegistry.getServices(e.uri),n=await r.workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),n)}isAffected(e,t){let r=this.referenceIndex.get(e.uri.toString());return!!r&&r.some(e=>!e.local&&t.has(e.targetUri.toString()))}}class lp{constructor(e){this.initialBuildOptions={},this._ready=new oj,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}initialize(e){var t;this.folders=null!==(t=e.workspaceFolders)&&void 0!==t?t:void 0}initialized(e){return this.mutex.write(e=>{var t;return this.initializeWorkspace(null!==(t=this.folders)&&void 0!==t?t:[],e)})}async initializeWorkspace(e,t=oF.XO.None){let r=await this.performStartup(e);await oB(t),await this.documentBuilder.build(r,this.initialBuildOptions,t)}async performStartup(e){let t=this.serviceRegistry.all.flatMap(e=>e.LanguageMetaData.fileExtensions),r=[],n=e=>{r.push(e),this.langiumDocuments.hasDocument(e.uri)||this.langiumDocuments.addDocument(e)};return await this.loadAdditionalDocuments(e,n),await Promise.all(e.map(e=>[e,this.getRootFolder(e)]).map(async e=>this.traverseFolder(...e,t,n))),this._ready.resolve(),r}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return oX.parse(e.uri)}async traverseFolder(e,t,r,n){let i=await this.fileSystemProvider.readDirectory(t);await Promise.all(i.map(async t=>{this.includeEntry(e,t,r)&&(t.isDirectory?await this.traverseFolder(e,t.uri,r,n):t.isFile&&n(await this.langiumDocuments.getOrCreateDocument(t.uri)))}))}includeEntry(e,t,r){let n=nT.basename(t.uri);if(n.startsWith("."))return!1;if(t.isDirectory)return"node_modules"!==n&&"out"!==n;if(t.isFile){let e=nT.extname(t.uri);return r.includes(e)}return!1}}class lm{constructor(e){let t=e.parser.TokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);let r=ly(t)?Object.values(t):t;this.chevrotainLexer=new aS(r,{positionTracking:"full"})}get definition(){return this.tokenTypes}tokenize(e){var t;let r=this.chevrotainLexer.tokenize(e);return{tokens:r.tokens,errors:r.errors,hidden:null!==(t=r.groups.hidden)&&void 0!==t?t:[]}}toTokenTypeDictionary(e){if(ly(e))return e;let t=lg(e)?Object.values(e.modes).flat():e,r={};return t.forEach(e=>r[e.name]=e),r}}function lg(e){return e&&"modes"in e&&"defaultMode"in e}function ly(e){return!(Array.isArray(e)&&(0===e.length||"name"in e[0]))&&!lg(e)}function lA(e){return("string"==typeof e?e:e.text).split(eF)}let lT=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,lv=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu,lR=/\S/,lE=/\s*$/;function lk(e,t){let r=e.substring(t).match(lR);return r?t+r.index:e.length}function lI(e){let t=e.tokens[e.index],r=t,n=t,i=[];for(;t&&"break"!==t.type&&"tag"!==t.type;)i.push("inline-tag"===e.tokens[e.index].type?lx(e,!0):lS(e)),n=t,t=e.tokens[e.index];return new lw(i,ra.create(r.range.start,n.range.end))}function lx(e,t){let r=e.tokens[e.index++],n=r.content.substring(1),i=e.tokens[e.index];if((null==i?void 0:i.type)==="text"){if(t){let i=lS(e);return new lL(n,new lw([i],i.range),t,ra.create(r.range.start,i.range.end))}{let i=lI(e);return new lL(n,i,t,ra.create(r.range.start,i.range.end))}}{let e=r.range;return new lL(n,new lw([],e),t,e)}}function lS(e){let t=e.tokens[e.index++];return new lO(t.content,t.range)}function lN(e){if(!e)return lN({start:"/**",end:"*/",line:"*"});let{start:t,end:r,line:n}=e;return{start:lC(t,!0),end:lC(r,!1),line:lC(n,!0)}}function lC(e,t){if("string"!=typeof e&&"object"!=typeof e)return e;{let r="string"==typeof e?ej(e):e.source;return t?RegExp(`^\\s*${r}`):RegExp(`\\s*${r}\\s*$`)}}class l${constructor(e,t){this.elements=e,this.range=t}getTag(e){return this.getAllTags().find(t=>t.name===e)}getTags(e){return this.getAllTags().filter(t=>t.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(let t of this.elements)if(0===e.length)e=t.toString();else{let r=t.toString();e+=lb(e)+r}return e.trim()}toMarkdown(e){let t="";for(let r of this.elements)if(0===t.length)t=r.toMarkdown(e);else{let n=r.toMarkdown(e);t+=lb(t)+n}return t.trim()}}class lL{constructor(e,t,r,n){this.name=e,this.content=t,this.inline=r,this.range=n}toString(){let e=`@${this.name}`,t=this.content.toString();return(1===this.content.inlines.length?e=`${e} ${t}`:this.content.inlines.length>1&&(e=`${e} +${t}`),this.inline)?`{${e}}`:e}toMarkdown(e){var t,r;return null!==(r=null===(t=null==e?void 0:e.renderTag)||void 0===t?void 0:t.call(e,this))&&void 0!==r?r:this.toMarkdownDefault(e)}toMarkdownDefault(e){let t=this.content.toMarkdown(e);if(this.inline){let r=function(e,t,r){var n,i;if("linkplain"===e||"linkcode"===e||"link"===e){let a=t.indexOf(" "),s=t;if(a>0){let e=lk(t,a);s=t.substring(e),t=t.substring(0,a)}return("linkcode"===e||"link"===e&&"code"===r.link)&&(s=`\`${s}\``),null!==(i=null===(n=r.renderLink)||void 0===n?void 0:n.call(r,t,s))&&void 0!==i?i:function(e,t){try{return oX.parse(e,!0),`[${t}](${e})`}catch(t){return e}}(t,s)}}(this.name,t,null!=e?e:{});if("string"==typeof r)return r}let r="";(null==e?void 0:e.tag)==="italic"||(null==e?void 0:e.tag)===void 0?r="*":(null==e?void 0:e.tag)==="bold"?r="**":(null==e?void 0:e.tag)==="bold-italic"&&(r="***");let n=`${r}@${this.name}${r}`;return(1===this.content.inlines.length?n=`${n} \u{2014} ${t}`:this.content.inlines.length>1&&(n=`${n} +${t}`),this.inline)?`{${n}}`:n}}class lw{constructor(e,t){this.inlines=e,this.range=t}toString(){let e="";for(let t=0;t<this.inlines.length;t++){let r=this.inlines[t],n=this.inlines[t+1];e+=r.toString(),n&&n.range.start.line>r.range.start.line&&(e+="\n")}return e}toMarkdown(e){let t="";for(let r=0;r<this.inlines.length;r++){let n=this.inlines[r],i=this.inlines[r+1];t+=n.toMarkdown(e),i&&i.range.start.line>n.range.start.line&&(t+="\n")}return t}}class lO{constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}}function lb(e){return e.endsWith("\n")?"\n":"\n\n"}class l_{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){let t=this.commentProvider.getComment(e);if(t&&function(e,t){let r=lN(void 0),n=lA(e);if(0===n.length)return!1;let i=n[0],a=n[n.length-1],s=r.start,o=r.end;return!!(null==s?void 0:s.exec(i))&&!!(null==o?void 0:o.exec(a))}(t)){let r,n;return("string"==typeof t?n=void 0:n=t.range.start,r=void 0,n||(n=ri.create(0,0)),function(e){var t,r,n,i;let a=ri.create(e.position.line,e.position.character);if(0===e.tokens.length)return new l$([],ra.create(a,a));let s=[];for(;e.index<e.tokens.length;){let t=function(e,t){let r=e.tokens[e.index];return"tag"===r.type?lx(e,!1):"text"===r.type||"inline-tag"===r.type?lI(e):void(function(e,t){if(t){let r=new lO("",e.range);"inlines"in t?t.inlines.push(r):t.content.inlines.push(r)}}(r,t),e.index++)}(e,s[s.length-1]);t&&s.push(t)}let o=null!==(r=null===(t=s[0])||void 0===t?void 0:t.range.start)&&void 0!==r?r:a,l=null!==(i=null===(n=s[s.length-1])||void 0===n?void 0:n.range.end)&&void 0!==i?i:a;return new l$(s,ra.create(o,l))}({index:0,tokens:function(e){var t,r,n;let i=[],a=e.position.line,s=e.position.character;for(let o=0;o<e.lines.length;o++){let l=0===o,u=o===e.lines.length-1,c=e.lines[o],d=0;if(l&&e.options.start){let r=null===(t=e.options.start)||void 0===t?void 0:t.exec(c);r&&(d=r.index+r[0].length)}else{let t=null===(r=e.options.line)||void 0===r?void 0:r.exec(c);t&&(d=t.index+t[0].length)}if(u){let t=null===(n=e.options.end)||void 0===n?void 0:n.exec(c);t&&(c=c.substring(0,t.index))}if(lk(c=c.substring(0,function(e){let t=e.match(lE);if(t&&"number"==typeof t.index)return t.index}(c)),d)>=c.length){if(i.length>0){let e=ri.create(a,s);i.push({type:"break",content:"",range:ra.create(e,e)})}}else{lT.lastIndex=d;let e=lT.exec(c);if(e){let t=e[0],r=e[1],n=ri.create(a,s+d),o=ri.create(a,s+d+t.length);i.push({type:"tag",content:r,range:ra.create(n,o)}),d+=t.length,d=lk(c,d)}if(d<c.length){let e=c.substring(d),t=Array.from(e.matchAll(lv));i.push(...function(e,t,r,n){let i=[];if(0===e.length){let e=ri.create(r,n),a=ri.create(r,n+t.length);i.push({type:"text",content:t,range:ra.create(e,a)})}else{let a=0;for(let s of e){let e=s.index,o=t.substring(a,e);o.length>0&&i.push({type:"text",content:t.substring(a,e),range:ra.create(ri.create(r,a+n),ri.create(r,e+n))});let l=o.length+1,u=s[1];if(i.push({type:"inline-tag",content:u,range:ra.create(ri.create(r,a+l+n),ri.create(r,a+l+u.length+n))}),l+=u.length,4===s.length){l+=s[2].length;let e=s[3];i.push({type:"text",content:e,range:ra.create(ri.create(r,a+l+n),ri.create(r,a+l+e.length+n))})}else i.push({type:"text",content:"",range:ra.create(ri.create(r,a+l+n),ri.create(r,a+l+n))});a=e+s[0].length}let s=t.substring(a);s.length>0&&i.push({type:"text",content:s,range:ra.create(ri.create(r,a+n),ri.create(r,a+n+s.length))})}return i}(t,e,a,s+d))}}a++,s=0}return i.length>0&&"break"===i[i.length-1].type?i.slice(0,-1):i}({lines:lA(t),position:n,options:lN(r)}),position:n})).toMarkdown({renderLink:(t,r)=>this.documentationLinkRenderer(e,t,r),renderTag:t=>this.documentationTagRenderer(e,t)})}}documentationLinkRenderer(e,t,r){var n;let i=null!==(n=this.findNameInPrecomputedScopes(e,t))&&void 0!==n?n:this.findNameInGlobalScope(e,t);if(i&&i.nameSegment){let e=i.nameSegment.range.start.line+1,t=i.nameSegment.range.start.character+1,n=i.documentUri.with({fragment:`L${e},${t}`});return`[${r}](${n.toString()})`}}documentationTagRenderer(e,t){}findNameInPrecomputedScopes(e,t){let r=eT(e).precomputedScopes;if(!r)return;let n=e;do{let e=r.get(n).find(e=>e.name===t);if(e)return e;n=n.$container}while(n)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(e=>e.name===t)}}class lP{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var t;return"string"==typeof e.$comment?e.$comment:null===(t=function(e,t){if(e){let r=function(e,t=!0){for(;e.container;){let r=e.container,n=r.content.indexOf(e);for(;n>0;){n--;let e=r.content[n];if(t||!e.hidden)return e}e=r}}(e,!0);if(r&&v(r,t))return r;if(u(e)){let r=e.content.findIndex(e=>!e.hidden);for(let n=r-1;n>=0;n--){let r=e.content[n];if(v(r,t))return r}}}}(e.$cstNode,this.grammarConfig().multilineCommentRules))||void 0===t?void 0:t.text}}r(26712);class lM{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e){return Promise.resolve(this.syncParser.parse(e))}}class lD{constructor(){this.previousTokenSource=new oF.Qi,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();let t=new oF.Qi;return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,r){let n=new oj,i={action:t,deferred:n,cancellationToken:null!=r?r:oF.XO.None};return e.push(i),this.performNextOperation(),n.promise}async performNextOperation(){if(!this.done)return;let e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else{if(!(this.readQueue.length>0))return;e.push(...this.readQueue.splice(0,this.readQueue.length))}this.done=!1,await Promise.all(e.map(async({action:e,deferred:t,cancellationToken:r})=>{try{let n=await Promise.resolve().then(()=>e(r));t.resolve(n)}catch(e){e===oK?t.resolve(void 0):t.reject(e)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}class lU{constructor(e){this.grammarElementIdMap=new o4,this.tokenTypeIdMap=new o4,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors.map(e=>Object.assign({},e)),parserErrors:e.parserErrors.map(e=>Object.assign({},e)),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}createDehyrationContext(e){let t=new Map,r=new Map;for(let r of eE(e))t.set(r,{});if(e.$cstNode)for(let t of g(e.$cstNode))r.set(t,{});return{astNodes:t,cstNodes:r}}dehydrateAstNode(e,t){let r=t.astNodes.get(e);for(let[a,s]of(r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,void 0!==e.$cstNode&&(r.$cstNode=this.dehydrateCstNode(e.$cstNode,t)),Object.entries(e)))if(!a.startsWith("$")){if(Array.isArray(s)){let e=[];for(let o of(r[a]=e,s))n(o)?e.push(this.dehydrateAstNode(o,t)):i(o)?e.push(this.dehydrateReference(o,t)):e.push(o)}else n(s)?r[a]=this.dehydrateAstNode(s,t):i(s)?r[a]=this.dehydrateReference(s,t):void 0!==s&&(r[a]=s)}return r}dehydrateReference(e,t){let r={};return r.$refText=e.$refText,e.$refNode&&(r.$refNode=t.cstNodes.get(e.$refNode)),r}dehydrateCstNode(e,t){let r=t.cstNodes.get(e);return u(e)?r.fullText=e.fullText:r.grammarSource=this.getGrammarElementId(e.grammarSource),r.hidden=e.hidden,r.astNode=t.astNodes.get(e.astNode),o(e)?r.content=e.content.map(e=>this.dehydrateCstNode(e,t)):l(e)&&(r.tokenType=e.tokenType.name,r.offset=e.offset,r.length=e.length,r.startLine=e.range.start.line,r.startColumn=e.range.start.character,r.endLine=e.range.end.line,r.endColumn=e.range.end.character),r}hydrate(e){let t=e.value,r=this.createHydrationContext(t);return"$cstNode"in t&&this.hydrateCstNode(t.$cstNode,r),{lexerErrors:e.lexerErrors,parserErrors:e.parserErrors,value:this.hydrateAstNode(t,r)}}createHydrationContext(e){let t;let r=new Map,n=new Map;for(let t of eE(e))r.set(t,{});if(e.$cstNode)for(let r of g(e.$cstNode)){let e;"fullText"in r?t=e=new ov(r.fullText):"content"in r?e=new oA:"tokenType"in r&&(e=this.hydrateCstLeafNode(r)),e&&(n.set(r,e),e.root=t)}return{astNodes:r,cstNodes:n}}hydrateAstNode(e,t){let r=t.astNodes.get(e);for(let[a,s]of(r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode&&(r.$cstNode=t.cstNodes.get(e.$cstNode)),Object.entries(e)))if(!a.startsWith("$")){if(Array.isArray(s)){let e=[];for(let o of(r[a]=e,s))n(o)?e.push(this.setParent(this.hydrateAstNode(o,t),r)):i(o)?e.push(this.hydrateReference(o,r,a,t)):e.push(o)}else n(s)?r[a]=this.setParent(this.hydrateAstNode(s,t),r):i(s)?r[a]=this.hydrateReference(s,r,a,t):void 0!==s&&(r[a]=s)}return r}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,r,n){return this.linker.buildReference(t,r,n.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,r=0){let n=t.cstNodes.get(e);if("number"==typeof e.grammarSource&&(n.grammarSource=this.getGrammarElement(e.grammarSource)),n.astNode=t.astNodes.get(e.astNode),o(n))for(let i of e.content){let e=this.hydrateCstNode(i,t,r++);n.content.push(e)}return n}hydrateCstLeafNode(e){let t=this.getTokenType(e.tokenType),r=e.offset,n=e.length,i=e.startLine,a=e.startColumn;return new oy(r,n,{start:{line:i,character:a},end:{line:e.endLine,character:e.endColumn}},t,e.hidden)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){return 0===this.grammarElementIdMap.size&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){0===this.grammarElementIdMap.size&&this.createGrammarElementIdMap();let t=this.grammarElementIdMap.getKey(e);if(t)return t;throw Error("Invalid grammar element id: "+e)}createGrammarElementIdMap(){let e=0;for(let t of eE(this.grammar))ey.isInstance(t,N)&&this.grammarElementIdMap.set(t,e++)}}function lF(e){return{documentation:{CommentProvider:e=>new lP(e),DocumentationProvider:e=>new l_(e)},parser:{AsyncParser:e=>new lM(e),GrammarConfig:e=>(function(e){let t=[];for(let n of e.Grammar.rules){var r;K(n)&&(r=n).hidden&&!eQ(r).test(" ")&&function(e){try{return"string"==typeof e&&(e=new RegExp(e)),e=e.toString(),eK.reset(e),eK.visit(eG.pattern(e)),eK.multiline}catch(e){return!1}}(eQ(n))&&t.push(n.name)}return{multilineCommentRules:t,nameRegexp:T}})(e),LangiumParser:e=>(function(e){let t=function(e){let t=e.Grammar,r=e.parser.Lexer;return ow(t,new ox(e),r.definition)}(e);return t.finalize(),t})(e),CompletionParser:e=>(function(e){let t=e.Grammar,r=e.parser.Lexer,n=new oC(e);return ow(t,n,r.definition),n.finalize(),n})(e),ValueConverter:()=>new oU,TokenBuilder:()=>new oD,Lexer:e=>new lm(e),ParserErrorMessageProvider:()=>new oN},workspace:{AstNodeLocator:()=>new lc,AstNodeDescriptionProvider:e=>new ll(e),ReferenceDescriptionProvider:e=>new lu(e)},references:{Linker:e=>new oZ(e),NameProvider:()=>new o0,ScopeProvider:e=>new lt(e),ScopeComputation:e=>new o6(e),References:e=>new o1(e)},serializer:{Hydrator:e=>new lU(e),JsonSerializer:e=>new ln(e)},validation:{DocumentValidator:e=>new ls(e),ValidationRegistry:e=>new la(e)},shared:()=>e.shared}}function lG(e){return{ServiceRegistry:()=>new li,workspace:{LangiumDocuments:e=>new oJ(e),LangiumDocumentFactory:e=>new oQ(e),DocumentBuilder:e=>new lh(e),IndexManager:e=>new lf(e),WorkspaceManager:e=>new lp(e),FileSystemProvider:t=>e.fileSystemProvider(t),WorkspaceLock:()=>new lD,ConfigurationProvider:e=>new ld(e)}}}function lK(e,t,r,n,i,a,s,o,l){return lj([e,t,r,n,i,a,s,o,l].reduce(lW,{}))}(nI||(nI={})).merge=(e,t)=>lW(lW({},e),t);let lB=Symbol("isProxy");function lj(e,t){let r=new Proxy({},{deleteProperty:()=>!1,get:(n,i)=>lH(n,i,e,t||r),getOwnPropertyDescriptor:(n,i)=>(lH(n,i,e,t||r),Object.getOwnPropertyDescriptor(n,i)),has:(t,r)=>r in e,ownKeys:()=>[...Reflect.ownKeys(e),lB]});return r[lB]=!0,r}let lV=Symbol();function lH(e,t,r,n){if(t in e){if(e[t]instanceof Error)throw Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:e[t]});if(e[t]===lV)throw Error('Cycle detected. Please make "'+String(t)+'" lazy. See https://langium.org/docs/configuration-services/#resolving-cyclic-dependencies');return e[t]}if(t in r){let i=r[t];e[t]=lV;try{e[t]="function"==typeof i?i(n):lj(i,n)}catch(r){throw e[t]=r instanceof Error?r:void 0,r}return e[t]}}function lW(e,t){if(t){for(let[r,n]of Object.entries(t))if(void 0!==n){let t=e[r];null!==t&&null!==n&&"object"==typeof t&&"object"==typeof n?e[r]=lW(t,n):e[r]=n}}return e}class lz{readFile(){throw Error("No file system is available.")}async readDirectory(){return[]}}let lY={fileSystemProvider:()=>new lz},lX={Grammar:()=>void 0,LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},lq={AstReflection:()=>new eg};function lQ(e){var t;let r=function(){let e=lK(lG(lY),lq),t=lK(lF({shared:e}),lX);return e.ServiceRegistry.register(t),t}(),n=r.serializer.JsonSerializer.deserialize(e);return r.shared.workspace.LangiumDocumentFactory.fromModel(n,oX.parse(`memory://${null!==(t=n.name)&&void 0!==t?t:"grammar"}.langium`)),n}},54533:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(40932);let i=function(e,t,r){for(var i=-1,a=e.length;++i<a;){var s=e[i],o=t(s);if(null!=o&&(void 0===l?o==o&&!(0,n.A)(o):r(o,l)))var l=o,u=s}return u}},31818:(e,t,r)=>{r.d(t,{A:()=>n});let n=function(e,t){return e<t}},99609:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(906),i=r(8860);let a=function(e,t){var r=-1,a=(0,i.A)(e)?Array(e.length):[];return(0,n.A)(e,function(e,n,i){a[++r]=t(e,n,i)}),a}},92860:(e,t,r)=>{r.d(t,{A:()=>c});var n=r(79696),i=r(84805),a=r(98669),s=r(49031),o=r(17731),l=r(63307);let u=function(e,t,r,n){if(!(0,o.A)(e))return e;t=(0,a.A)(t,e);for(var u=-1,c=t.length,d=c-1,h=e;null!=h&&++u<c;){var f=(0,l.A)(t[u]),p=r;if("__proto__"===f||"constructor"===f||"prototype"===f)break;if(u!=d){var m=h[f];void 0===(p=n?n(m,f,h):void 0)&&(p=(0,o.A)(m)?m:(0,s.A)(t[u+1])?[]:{})}(0,i.A)(h,f,p),h=h[f]}return e},c=function(e,t,r){for(var i=-1,s=t.length,o={};++i<s;){var l=t[i],c=(0,n.A)(e,l);r(c,l)&&u(o,(0,a.A)(l,e),c)}return o}},86847:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(34081);let i=function(e){return(0,n.A)(e,4)}},12630:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(48496),i=r(65866),a=r(50174),s=r(97937),o=Object.prototype,l=o.hasOwnProperty;let u=(0,n.A)(function(e,t){e=Object(e);var r=-1,n=t.length,u=n>2?t[2]:void 0;for(u&&(0,a.A)(t[0],t[1],u)&&(n=1);++r<n;)for(var c=t[r],d=(0,s.A)(c),h=-1,f=d.length;++h<f;){var p=d[h],m=e[p];(void 0===m||(0,i.A)(m,o[p])&&!l.call(e,p))&&(e[p]=c[p])}return e})},62663:(e,t,r)=>{r.d(t,{A:()=>c});var n,i=r(18592),a=r(8860),s=r(95240),o=r(54402),l=r(52743),u=Math.max;let c=(n=function(e,t,r){var n=null==e?0:e.length;if(!n)return -1;var a=null==r?0:(0,l.A)(r);return a<0&&(a=u(n+a,0)),(0,o.A)(e,(0,i.A)(t,3),a)},function(e,t,r){var o=Object(e);if(!(0,a.A)(e)){var l=(0,i.A)(t,3);e=(0,s.A)(e),t=function(e){return l(o[e],e,o)}}var u=n(e,t,r);return u>-1?o[l?e[u]:u]:void 0})},98880:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(3858);let i=function(e){return(null==e?0:e.length)?(0,n.A)(e,1):[]}},57805:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(36798),i=r(28675),a=r(19196);let s=function(e){return"string"==typeof e||!(0,i.A)(e)&&(0,a.A)(e)&&"[object String]"==(0,n.A)(e)}},44280:(e,t,r)=>{r.d(t,{A:()=>n});let n=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},23480:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(66046),i=r(18592),a=r(99609),s=r(28675);let o=function(e,t){return((0,s.A)(e)?n.A:a.A)(e,(0,i.A)(t,3))}},60398:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(54533),i=r(31818),a=r(83910);let s=function(e){return e&&e.length?(0,n.A)(e,a.A,i.A):void 0}},27900:(e,t,r)=>{r.d(t,{A:()=>m});var n=/\s/;let i=function(e){for(var t=e.length;t--&&n.test(e.charAt(t)););return t};var a=/^\s+/,s=r(17731),o=r(40932),l=0/0,u=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,d=/^0o[0-7]+$/i,h=parseInt;let f=function(e){if("number"==typeof e)return e;if((0,o.A)(e))return l;if((0,s.A)(e)){var t,r="function"==typeof e.valueOf?e.valueOf():e;e=(0,s.A)(r)?r+"":r}if("string"!=typeof e)return 0===e?e:+e;e=(t=e)?t.slice(0,i(t)+1).replace(a,""):t;var n=c.test(e);return n||d.test(e)?h(e.slice(2),n?2:8):u.test(e)?l:+e};var p=1/0;let m=function(e){return e?(e=f(e))===p||e===-p?(e<0?-1:1)*17976931348623157e292:e==e?e:0:0===e?e:0}},52743:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(27900);let i=function(e){var t=(0,n.A)(e),r=t%1;return t==t?r?t-r:t:0}}}]); \ No newline at end of file diff --git a/assets/js/51822.bf70a925.js b/assets/js/51822.bf70a925.js deleted file mode 100644 index 862492d1f5..0000000000 --- a/assets/js/51822.bf70a925.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[51822],{51822:(e,n,t)=>{t.d(n,{Zp:()=>e9});var r,o=t(7392),i=t(16966),u=t(62859),a=t(39260),s=t(98880),d=t(23480),c=t(70037),f=t(62499);class h{constructor(){var e={};e._next=e._prev=e,this._sentinel=e}dequeue(){var e=this._sentinel,n=e._prev;if(n!==e)return l(n),n}enqueue(e){var n=this._sentinel;e._prev&&e._next&&l(e),e._next=n._next,n._next._prev=e,n._next=e,e._prev=n}toString(){for(var e=[],n=this._sentinel,t=n._prev;t!==n;)e.push(JSON.stringify(t,v)),t=t._prev;return"["+e.join(", ")+"]"}}function l(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function v(e,n){if("_next"!==e&&"_prev"!==e)return n}var A=a.A(1);function g(e,n,t,r,i){var u=i?[]:void 0;return o.A(e.inEdges(r.v),function(r){var o=e.edge(r),a=e.node(r.v);i&&u.push({v:r.v,w:r.w}),a.out-=o,p(n,t,a)}),o.A(e.outEdges(r.v),function(r){var o=e.edge(r),i=r.w,u=e.node(i);u.in-=o,p(n,t,u)}),e.removeNode(r.v),u}function p(e,n,t){t.out?t.in?e[t.out-t.in+n].enqueue(t):e[e.length-1].enqueue(t):e[0].enqueue(t)}var b=t(14397),w=t(23068),m=t(12630),y=t(40932);let _=function(e,n,t){for(var r=-1,o=e.length;++r<o;){var i=e[r],u=n(i);if(null!=u&&(void 0===a?u==u&&!(0,y.A)(u):t(u,a)))var a=u,s=i}return s},E=function(e,n){return e>n};var j=t(83910);let x=function(e){return e&&e.length?_(e,j.A,E):void 0},k=function(e){var n=null==e?0:e.length;return n?e[n-1]:void 0};var N=t(46402),C=t(39179),I=t(66172);let O=function(e,n){var t={};return n=(0,I.A)(n,3),(0,C.A)(e,function(e,r,o){(0,N.A)(t,r,n(e,r,o))}),t};var L=t(31454);let M=function(e,n){return e<n},T=function(e){return e&&e.length?_(e,j.A,M):void 0};var R=t(29283);let S=function(){return R.A.Date.now()};function P(e,n,t,r){var o;do o=i.A(r);while(e.hasNode(o))return t.dummy=n,e.setNode(o,t),o}function F(e){var n=new f.T({multigraph:e.isMultigraph()}).setGraph(e.graph());return o.A(e.nodes(),function(t){e.children(t).length||n.setNode(t,e.node(t))}),o.A(e.edges(),function(t){n.setEdge(t,e.edge(t))}),n}function D(e,n){var t,r,o=e.x,i=e.y,u=n.x-o,a=n.y-i,s=e.width/2,d=e.height/2;if(!u&&!a)throw Error("Not possible to find intersection inside of the rectangle");return Math.abs(a)*s>Math.abs(u)*d?(a<0&&(d=-d),t=d*u/a,r=d):(u<0&&(s=-s),t=s,r=s*a/u),{x:o+t,y:i+r}}function B(e){var n=d.A(c.A(V(e)+1),function(){return[]});return o.A(e.nodes(),function(t){var r=e.node(t),o=r.rank;L.A(o)||(n[o][r.order]=t)}),n}function G(e,n,t,r){var o={width:0,height:0};return arguments.length>=4&&(o.rank=t,o.order=r),P(e,"border",o,n)}function V(e){return x(d.A(e.nodes(),function(n){var t=e.node(n).rank;if(!L.A(t))return t}))}function z(e,n){var t=S();try{return n()}finally{console.log(e+" time: "+(S()-t)+"ms")}}function q(e,n){return n()}function U(e,n,t,r,o,i){var u=o[n][i-1],a=P(e,"border",{width:0,height:0,rank:i,borderType:n},t);o[n][i]=a,e.setParent(a,r),u&&e.setEdge(u,a,{weight:1})}function Y(e){o.A(e.nodes(),function(n){$(e.node(n))}),o.A(e.edges(),function(n){$(e.edge(n))})}function $(e){var n=e.width;e.width=e.height,e.height=n}function J(e){e.y=-e.y}function W(e){var n=e.x;e.x=e.y,e.y=n}let Z=function(e,n){return e&&e.length?_(e,(0,I.A)(n,2),M):void 0};function H(e){var n={};o.A(e.sources(),function t(r){var o=e.node(r);if(u.A(n,r))return o.rank;n[r]=!0;var i=T(d.A(e.outEdges(r),function(n){return t(n.w)-e.edge(n).minlen}));return(i===Number.POSITIVE_INFINITY||null==i)&&(i=0),o.rank=i})}function K(e,n){return e.node(n.w).rank-e.node(n.v).rank-e.edge(n).minlen}function Q(e){var n,t,r=new f.T({directed:!1}),i=e.nodes()[0],u=e.nodeCount();for(r.setNode(i,{});o.A(r.nodes(),function n(t){o.A(e.nodeEdges(t),function(o){var i=o.v,u=t===i?o.w:i;r.hasNode(u)||K(e,o)||(r.setNode(u,{}),r.setEdge(t,u,{}),n(u))})}),r.nodeCount()<u;)n=function(e,n){return Z(n.edges(),function(t){if(e.hasNode(t.v)!==e.hasNode(t.w))return K(n,t)})}(r,e),t=r.hasNode(n.v)?K(e,n):-K(e,n),function(e,n,t){o.A(e.nodes(),function(e){n.node(e).rank+=t})}(r,e,t);return r}var X=t(8860),ee=t(95240),en=t(54402),et=t(27900);let er=function(e){var n=(0,et.A)(e),t=n%1;return n==n?t?n-t:n:0};var eo=Math.max,ei=(r=function(e,n,t){var r=null==e?0:e.length;if(!r)return -1;var o=null==t?0:er(t);return o<0&&(o=eo(r+o,0)),(0,en.A)(e,(0,I.A)(n,3),o)},function(e,n,t){var o=Object(e);if(!(0,X.A)(e)){var i=(0,I.A)(n,3);e=(0,ee.A)(e),n=function(e){return i(o[e],e,o)}}var u=r(e,n,t);return u>-1?o[i?e[u]:u]:void 0}),eu=t(25860);a.A(1),a.A(1);var ea=t(88601),es=t(86073),ed=t(36798),ec=t(28675),ef=t(19196),eh=(0,t(97043).A)("length"),el=RegExp("[\\u200d\ud800-\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),ev="\ud800-\udfff",eA="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",eg="\ud83c[\udffb-\udfff]",ep="[^"+ev+"]",eb="(?:\ud83c[\udde6-\uddff]){2}",ew="[\ud800-\udbff][\udc00-\udfff]",em="(?:"+eA+"|"+eg+")?",ey="[\\ufe0e\\ufe0f]?",e_="(?:\\u200d(?:"+[ep,eb,ew].join("|")+")"+ey+em+")*",eE=RegExp(eg+"(?="+eg+")|(?:"+[ep+eA+"?",eA,eb,ew,"["+ev+"]"].join("|")+")"+(ey+em+e_),"g");let ej=function(e){for(var n=eE.lastIndex=0;eE.test(e);)++n;return n};function ex(e,n,t){ec.A(n)||(n=[n]);var r=(e.isDirected()?e.successors:e.neighbors).bind(e),i=[],a={};return o.A(n,function(n){if(!e.hasNode(n))throw Error("Graph does not have node: "+n);(function e(n,t,r,i,a,s){!u.A(i,t)&&(i[t]=!0,r||s.push(t),o.A(a(t),function(t){e(n,t,r,i,a,s)}),r&&s.push(t))})(e,n,"post"===t,a,r,i)}),i}function ek(e){n=e,t=new f.T().setGraph(n.graph()),o.A(n.nodes(),function(e){t.setNode(e,n.node(e))}),o.A(n.edges(),function(e){var r=t.edge(e.v,e.w)||{weight:0,minlen:1},o=n.edge(e);t.setEdge(e.v,e.w,{weight:r.weight+o.weight,minlen:Math.max(r.minlen,o.minlen)})}),H(e=t);var n,t,r,i,u=Q(e);for(eI(u),eN(u,e);r=eO(u);)i=eL(u,e,r),eM(u,e,r,i)}function eN(e,n){var t=ex(e,e.nodes(),"post");t=t.slice(0,t.length-1),o.A(t,function(t){var r;r=e.node(t).parent,e.edge(t,r).cutvalue=eC(e,n,t)})}function eC(e,n,t){var r=e.node(t).parent,i=!0,u=n.edge(t,r),a=0;return u||(i=!1,u=n.edge(r,t)),a=u.weight,o.A(n.nodeEdges(t),function(o){var u=o.v===t,s=u?o.w:o.v;if(s!==r){var d=u===i,c=n.edge(o).weight;if(a+=d?c:-c,e.hasEdge(t,s)){var f=e.edge(t,s).cutvalue;a+=d?-f:f}}}),a}function eI(e,n){arguments.length<2&&(n=e.nodes()[0]),function e(n,t,r,i,a){var s=r,d=n.node(i);return t[i]=!0,o.A(n.neighbors(i),function(o){u.A(t,o)||(r=e(n,t,r,o,i))}),d.low=s,d.lim=r++,a?d.parent=a:delete d.parent,r}(e,{},1,n)}function eO(e){return ei(e.edges(),function(n){return e.edge(n).cutvalue<0})}function eL(e,n,t){var r=t.v,o=t.w;n.hasEdge(r,o)||(r=t.w,o=t.v);var i=e.node(r),u=e.node(o),a=i,s=!1;return i.lim>u.lim&&(a=u,s=!0),Z(eu.A(n.edges(),function(n){return s===eT(e,e.node(n.v),a)&&s!==eT(e,e.node(n.w),a)}),function(e){return K(n,e)})}function eM(e,n,t,r){var i,u,a=t.v,s=t.w;e.removeEdge(a,s),e.setEdge(r.v,r.w,{}),eI(e),eN(e,n),i=ei(e.nodes(),function(e){return!n.node(e).parent}),u=(u=ex(e,i,"pre")).slice(1),o.A(u,function(t){var r=e.node(t).parent,o=n.edge(t,r),i=!1;o||(o=n.edge(r,t),i=!0),n.node(t).rank=n.node(r).rank+(i?o.minlen:-o.minlen)})}function eT(e,n,t){return t.low<=n.lim&&n.lim<=t.lim}Error(),t(47740),ek.initLowLimValues=eI,ek.initCutValues=eN,ek.calcCutValue=eC,ek.leaveEdge=eO,ek.enterEdge=eL,ek.exchangeEdges=eM;var eR=t(43337),eS=t(91825),eP=t(24359),eF=t(84805);let eD=function(e,n,t){for(var r=-1,o=e.length,i=n.length,u={};++r<o;){var a=r<i?n[r]:void 0;t(u,e[r],a)}return u};var eB=t(3858),eG=t(66046),eV=t(79696),ez=t(99609);let eq=function(e,n){var t=e.length;for(e.sort(n);t--;)e[t]=e[t].value;return e};var eU=t(39131);let eY=function(e,n){if(e!==n){var t=void 0!==e,r=null===e,o=e==e,i=(0,y.A)(e),u=void 0!==n,a=null===n,s=n==n,d=(0,y.A)(n);if(!a&&!d&&!i&&e>n||i&&u&&s&&!a&&!d||r&&u&&s||!t&&s||!o)return 1;if(!r&&!i&&!d&&e<n||d&&t&&o&&!r&&!i||a&&t&&o||!u&&o||!s)return -1}return 0},e$=function(e,n,t){for(var r=-1,o=e.criteria,i=n.criteria,u=o.length,a=t.length;++r<u;){var s=eY(o[r],i[r]);if(s){if(r>=a)return s;return s*("desc"==t[r]?-1:1)}}return e.index-n.index},eJ=function(e,n,t){n=n.length?(0,eG.A)(n,function(e){return(0,ec.A)(e)?function(n){return(0,eV.A)(n,1===e.length?e[0]:e)}:e}):[j.A];var r=-1;return n=(0,eG.A)(n,(0,eU.A)(I.A)),eq((0,ez.A)(e,function(e,t,o){return{criteria:(0,eG.A)(n,function(n){return n(e)}),index:++r,value:e}}),function(e,n){return e$(e,n,t)})};var eW=t(48496),eZ=t(50174),eH=(0,eW.A)(function(e,n){if(null==e)return[];var t=n.length;return t>1&&(0,eZ.A)(e,n[0],n[1])?n=[]:t>2&&(0,eZ.A)(n[0],n[1],n[2])&&(n=[n[0]]),eJ(e,(0,eB.A)(n,1),[])});function eK(e,n,t){for(var r;n.length&&(r=k(n)).i<=t;)n.pop(),e.push(r.vs),t++;return t}function eQ(e,n,t){return d.A(n,function(n){var r,a;return r=function(e){for(var n;e.hasNode(n=i.A("_root")););return n}(e),a=new f.T({compound:!0}).setGraph({root:r}).setDefaultNodeLabel(function(n){return e.node(n)}),o.A(e.nodes(),function(i){var s=e.node(i),d=e.parent(i);(s.rank===n||s.minRank<=n&&n<=s.maxRank)&&(a.setNode(i),a.setParent(i,d||r),o.A(e[t](i),function(n){var t=n.v===i?n.w:n.v,r=a.edge(t,i),o=L.A(r)?0:r.weight;a.setEdge(t,i,{weight:e.edge(n).weight+o})}),u.A(s,"minRank")&&a.setNode(i,{borderLeft:s.borderLeft[n],borderRight:s.borderRight[n]}))}),a})}function eX(e,n){o.A(n,function(n){o.A(n,function(n,t){e.node(n).order=t})})}var e0=t(59176),e1=t(33240),e2=t(97937);function e6(e,n,t){if(n>t){var r=n;n=t,t=r}var o=e[n];o||(e[n]=o={}),o[t]=!0}function e9(e,n){var t=n&&n.debugTiming?z:q;t("layout",function(){var n=t(" buildLayoutGraph",function(){var n,t;return n=new f.T({multigraph:!0,compound:!0}),t=no(e.graph()),n.setGraph(b.A({},e3,nr(t,e8),w.A(t,e7))),o.A(e.nodes(),function(t){var r=no(e.node(t));n.setNode(t,m.A(nr(r,e4),e5)),n.setParent(t,e.parent(t))}),o.A(e.edges(),function(t){var r=no(e.edge(t));n.setEdge(t,b.A({},nn,nr(r,ne),w.A(r,nt)))}),n});t(" runLayout",function(){t(" makeSpaceForEdgeLabels",function(){var e;e=n.graph(),e.ranksep/=2,o.A(n.edges(),function(t){var r=n.edge(t);r.minlen*=2,"c"!==r.labelpos.toLowerCase()&&("TB"===e.rankdir||"BT"===e.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)})}),t(" removeSelfEdges",function(){o.A(n.edges(),function(e){if(e.v===e.w){var t=n.node(e.v);t.selfEdges||(t.selfEdges=[]),t.selfEdges.push({e:e,label:n.edge(e)}),n.removeEdge(e)}})}),t(" acyclic",function(){var e,t,r,a;e="greedy"===n.graph().acyclicer?function(e,n){if(1>=e.nodeCount())return[];var t,r,i,u,a,l,v=(t=n||A,r=new f.T,i=0,u=0,o.A(e.nodes(),function(e){r.setNode(e,{v:e,in:0,out:0})}),o.A(e.edges(),function(e){var n=r.edge(e.v,e.w)||0,o=t(e);r.setEdge(e.v,e.w,n+o),u=Math.max(u,r.node(e.v).out+=o),i=Math.max(i,r.node(e.w).in+=o)}),a=c.A(u+i+3).map(function(){return new h}),l=i+1,o.A(r.nodes(),function(e){p(a,l,r.node(e))}),{graph:r,buckets:a,zeroIdx:l}),b=function(e,n,t){for(var r,o=[],i=n[n.length-1],u=n[0];e.nodeCount();){for(;r=u.dequeue();)g(e,n,t,r);for(;r=i.dequeue();)g(e,n,t,r);if(e.nodeCount()){for(var a=n.length-2;a>0;--a)if(r=n[a].dequeue()){o=o.concat(g(e,n,t,r,!0));break}}}return o}(v.graph,v.buckets,v.zeroIdx);return s.A(d.A(b,function(n){return e.outEdges(n.v,n.w)}))}(n,function(e){return n.edge(e).weight}):(t=[],r={},a={},o.A(n.nodes(),function e(i){u.A(a,i)||(a[i]=!0,r[i]=!0,o.A(n.outEdges(i),function(n){u.A(r,n.w)?t.push(n):e(n.w)}),delete r[i])}),t),o.A(e,function(e){var t=n.edge(e);n.removeEdge(e),t.forwardName=e.name,t.reversed=!0,n.setEdge(e.w,e.v,t,i.A("rev"))})}),t(" nestingGraph.run",function(){var e,t,r,i,u;e=P(n,"root",{},"_root"),u={},o.A(n.children(),function(e){!function e(t,r){var i=n.children(t);i&&i.length&&o.A(i,function(n){e(n,r+1)}),u[t]=r}(e,1)}),r=2*(t=x(eR.A(u))-1)+1,n.graph().nestingRoot=e,o.A(n.edges(),function(e){n.edge(e).minlen*=r}),i=eS.A(n.edges(),function(e,t){return e+n.edge(t).weight},0)+1,o.A(n.children(),function(a){(function e(n,t,r,i,u,a,s){var d=n.children(s);if(!d.length){s!==t&&n.setEdge(t,s,{weight:0,minlen:r});return}var c=G(n,"_bt"),f=G(n,"_bb"),h=n.node(s);n.setParent(c,s),h.borderTop=c,n.setParent(f,s),h.borderBottom=f,o.A(d,function(o){e(n,t,r,i,u,a,o);var d=n.node(o),h=d.borderTop?d.borderTop:o,l=d.borderBottom?d.borderBottom:o,v=d.borderTop?i:2*i,A=h!==l?1:u-a[s]+1;n.setEdge(c,h,{weight:v,minlen:A,nestingEdge:!0}),n.setEdge(l,f,{weight:v,minlen:A,nestingEdge:!0})}),n.parent(s)||n.setEdge(t,c,{weight:0,minlen:u+a[s]})})(n,e,r,i,t,u,a)}),n.graph().nodeRankFactor=r}),t(" rank",function(){!function(e){switch(e.graph().ranker){case"network-simplex":default:ek(e);break;case"tight-tree":H(e),Q(e);break;case"longest-path":H(e)}}(F(n))}),t(" injectEdgeLabelProxies",function(){o.A(n.edges(),function(e){var t=n.edge(e);if(t.width&&t.height){var r=n.node(e.v),o={rank:(n.node(e.w).rank-r.rank)/2+r.rank,e:e};P(n,"edge-proxy",o,"_ep")}})}),t(" removeEmptyRanks",function(){var e,t,r,i;e=T(d.A(n.nodes(),function(e){return n.node(e).rank})),t=[],o.A(n.nodes(),function(r){var o=n.node(r).rank-e;t[o]||(t[o]=[]),t[o].push(r)}),r=0,i=n.graph().nodeRankFactor,o.A(t,function(e,t){L.A(e)&&t%i!=0?--r:r&&o.A(e,function(e){n.node(e).rank+=r})})}),t(" nestingGraph.cleanup",function(){var e;e=n.graph(),n.removeNode(e.nestingRoot),delete e.nestingRoot,o.A(n.edges(),function(e){n.edge(e).nestingEdge&&n.removeEdge(e)})}),t(" normalizeRanks",function(){var e;e=T(d.A(n.nodes(),function(e){return n.node(e).rank})),o.A(n.nodes(),function(t){var r=n.node(t);u.A(r,"rank")&&(r.rank-=e)})}),t(" assignRankMinMax",function(){var e;e=0,o.A(n.nodes(),function(t){var r=n.node(t);r.borderTop&&(r.minRank=n.node(r.borderTop).rank,r.maxRank=n.node(r.borderBottom).rank,e=x(e,r.maxRank))}),n.graph().maxRank=e}),t(" removeEdgeLabelProxies",function(){o.A(n.nodes(),function(e){var t=n.node(e);"edge-proxy"===t.dummy&&(n.edge(t.e).labelRank=t.rank,n.removeNode(e))})}),t(" normalize.run",function(){n.graph().dummyChains=[],o.A(n.edges(),function(e){(function(e,n){var t,r,o,i=n.v,u=e.node(i).rank,a=n.w,s=e.node(a).rank,d=n.name,c=e.edge(n),f=c.labelRank;if(s!==u+1){for(e.removeEdge(n),o=0,++u;u<s;++o,++u)c.points=[],t=P(e,"edge",r={width:0,height:0,edgeLabel:c,edgeObj:n,rank:u},"_d"),u===f&&(r.width=c.width,r.height=c.height,r.dummy="edge-label",r.labelpos=c.labelpos),e.setEdge(i,t,{weight:c.weight},d),0===o&&e.graph().dummyChains.push(t),i=t;e.setEdge(i,a,{weight:c.weight},d)}})(n,e)})}),t(" parentDummyChains",function(){var e,t;e={},t=0,o.A(n.children(),function r(i){var u=t;o.A(n.children(i),r),e[i]={low:u,lim:t++}}),o.A(n.graph().dummyChains,function(t){for(var r=n.node(t),o=r.edgeObj,i=function(e,n,t,r){var o,i,u=[],a=[],s=Math.min(n[t].low,n[r].low),d=Math.max(n[t].lim,n[r].lim);o=t;do u.push(o=e.parent(o));while(o&&(n[o].low>s||d>n[o].lim))for(i=o,o=r;(o=e.parent(o))!==i;)a.push(o);return{path:u.concat(a.reverse()),lca:i}}(n,e,o.v,o.w),u=i.path,a=i.lca,s=0,d=u[0],c=!0;t!==o.w;){if(r=n.node(t),c){for(;(d=u[s])!==a&&n.node(d).maxRank<r.rank;)s++;d===a&&(c=!1)}if(!c){for(;s<u.length-1&&n.node(d=u[s+1]).minRank<=r.rank;)s++;d=u[s]}n.setParent(t,d),t=n.successors(t)[0]}})}),t(" addBorderSegments",function(){o.A(n.children(),function e(t){var r=n.children(t),i=n.node(t);if(r.length&&o.A(r,e),u.A(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var a=i.minRank,s=i.maxRank+1;a<s;++a)U(n,"borderLeft","_bl",t,i,a),U(n,"borderRight","_br",t,i,a)}})}),t(" order",function(){!function(e){var n=V(e),t=eQ(e,c.A(1,n+1),"inEdges"),r=eQ(e,c.A(n-1,-1,-1),"outEdges"),i=(a={},h=eu.A(e.nodes(),function(n){return!e.children(n).length}),l=x(d.A(h,function(n){return e.node(n).rank})),v=d.A(c.A(l+1),function(){return[]}),A=eH(h,function(n){return e.node(n).rank}),o.A(A,function n(t){u.A(a,t)||(a[t]=!0,v[e.node(t).rank].push(t),o.A(e.successors(t),n))}),v);eX(e,i);for(var a,h,l,v,A,g,p=Number.POSITIVE_INFINITY,b=0,m=0;m<4;++b,++m){(function(e,n){var t=new f.T;o.A(e,function(e){var r,i,a,c=e.graph().root,f=function e(n,t,r,i){var a,c,f,h,l,v,A,g,p,b,m,y=n.children(t),_=n.node(t),E=_?_.borderLeft:void 0,j=_?_.borderRight:void 0,x={};E&&(y=eu.A(y,function(e){return e!==E&&e!==j}));var k=(a=y,d.A(a,function(e){var t=n.inEdges(e);if(!t.length)return{v:e};var r=eS.A(t,function(e,t){var r=n.edge(t),o=n.node(t.v);return{sum:e.sum+r.weight*o.order,weight:e.weight+r.weight}},{sum:0,weight:0});return{v:e,barycenter:r.sum/r.weight,weight:r.weight}}));o.A(k,function(t){if(n.children(t.v).length){var o=e(n,t.v,r,i);x[t.v]=o,u.A(o,"barycenter")&&(L.A(t.barycenter)?(t.barycenter=o.barycenter,t.weight=o.weight):(t.barycenter=(t.barycenter*t.weight+o.barycenter*o.weight)/(t.weight+o.weight),t.weight+=o.weight))}});var N=(c={},o.A(k,function(e,n){var t=c[e.v]={indegree:0,in:[],out:[],vs:[e.v],i:n};L.A(e.barycenter)||(t.barycenter=e.barycenter,t.weight=e.weight)}),o.A(r.edges(),function(e){var n=c[e.v],t=c[e.w];L.A(n)||L.A(t)||(t.indegree++,n.out.push(c[e.w]))}),function(e){for(var n=[];e.length;){var t=e.pop();n.push(t),o.A(t.in.reverse(),function(e){return function(n){!n.merged&&(L.A(n.barycenter)||L.A(e.barycenter)||n.barycenter>=e.barycenter)&&function(e,n){var t=0,r=0;e.weight&&(t+=e.barycenter*e.weight,r+=e.weight),n.weight&&(t+=n.barycenter*n.weight,r+=n.weight),e.vs=n.vs.concat(e.vs),e.barycenter=t/r,e.weight=r,e.i=Math.min(n.i,e.i),n.merged=!0}(e,n)}}(t)),o.A(t.out,function(n){return function(t){t.in.push(n),0==--t.indegree&&e.push(t)}}(t))}return d.A(eu.A(n,function(e){return!e.merged}),function(e){return w.A(e,["vs","i","barycenter","weight"])})}(eu.A(c,function(e){return!e.indegree})));(function(e,n){o.A(e,function(e){e.vs=s.A(e.vs.map(function(e){return n[e]?n[e].vs:e}))})})(N,x);var C=(l=(f=function(e){return u.A(e,"barycenter")},h={lhs:[],rhs:[]},o.A(N,function(e){f(e)?h.lhs.push(e):h.rhs.push(e)}),h).lhs,v=eH(h.rhs,function(e){return-e.i}),A=[],g=0,p=0,b=0,l.sort(function(e){return function(n,t){return n.barycenter<t.barycenter?-1:n.barycenter>t.barycenter?1:e?t.i-n.i:n.i-t.i}}(!!i)),b=eK(A,v,b),o.A(l,function(e){b+=e.vs.length,A.push(e.vs),g+=e.barycenter*e.weight,p+=e.weight,b=eK(A,v,b)}),m={vs:s.A(A)},p&&(m.barycenter=g/p,m.weight=p),m);if(E&&(C.vs=s.A([E,C.vs,j]),n.predecessors(E).length)){var I=n.node(n.predecessors(E)[0]),O=n.node(n.predecessors(j)[0]);u.A(C,"barycenter")||(C.barycenter=0,C.weight=0),C.barycenter=(C.barycenter*C.weight+I.order+O.order)/(C.weight+2),C.weight+=2}return C}(e,c,t,n);o.A(f.vs,function(n,t){e.node(n).order=t}),r=f.vs,a={},o.A(r,function(n){for(var r,o,u=e.parent(n);u;){if((r=e.parent(u))?(o=a[r],a[r]=u):(o=i,i=u),o&&o!==u){t.setEdge(o,u);return}u=r}})})})(b%2?t:r,b%4>=2),i=B(e);var y,_=function(e,n){for(var t=0,r=1;r<n.length;++r)t+=function(e,n,t){for(var r=eD(t||[],d.A(t,function(e,n){return n})||[],eF.A),i=s.A(d.A(n,function(n){return eH(d.A(e.outEdges(n),function(n){return{pos:r[n.w],weight:e.edge(n).weight}}),"pos")})),u=1;u<t.length;)u<<=1;var a=2*u-1;u-=1;var c=d.A(Array(a),function(){return 0}),f=0;return o.A(i.forEach(function(e){var n=e.pos+u;c[n]+=e.weight;for(var t=0;n>0;)n%2&&(t+=c[n+1]),n=n-1>>1,c[n]+=e.weight;f+=e.weight*t})),f}(e,n[r-1],n[r]);return t}(e,i);_<p&&(m=0,y=i,g=(0,eP.A)(y,5),p=_)}eX(e,g)}(n)}),t(" insertSelfEdges",function(){var e;e=B(n),o.A(e,function(e){var t=0;o.A(e,function(e,r){var i=n.node(e);i.order=r+t,o.A(i.selfEdges,function(e){P(n,"selfedge",{width:e.label.width,height:e.label.height,rank:i.rank,order:r+ ++t,e:e.e,label:e.label},"_se")}),delete i.selfEdges})})}),t(" adjustCoordinateSystem",function(){var e;("lr"===(e=n.graph().rankdir.toLowerCase())||"rl"===e)&&Y(n)}),t(" position",function(){var e,t,r,i,a,s,h,l,v,A,g,p,w,m,y,_,E,j;_=B(y=e=F(e=n)),E=y.graph().ranksep,j=0,o.A(_,function(e){var n=x(d.A(e,function(e){return y.node(e).height}));o.A(e,function(e){y.node(e).y=j+n/2}),j+=n+E}),i=B(t=e),s=b.A((a={},eS.A(i,function(e,n){var r=0,i=0,u=e.length,s=k(n);return o.A(n,function(e,d){var c=function(e,n){if(e.node(n).dummy)return ei(e.predecessors(n),function(n){return e.node(n).dummy})}(t,e),f=c?t.node(c).order:u;(c||e===s)&&(o.A(n.slice(i,d+1),function(e){o.A(t.predecessors(e),function(n){var o=t.node(n),i=o.order;(i<r||f<i)&&!(o.dummy&&t.node(e).dummy)&&e6(a,n,e)})}),i=d+1,r=f)}),n}),a),function(e,n){var t={};function r(n,r,i,u,a){var s;o.A(c.A(r,i),function(r){s=n[r],e.node(s).dummy&&o.A(e.predecessors(s),function(n){var r=e.node(n);r.dummy&&(r.order<u||r.order>a)&&e6(t,n,s)})})}return eS.A(n,function(n,t){var i,u=-1,a=0;return o.A(t,function(o,s){if("border"===e.node(o).dummy){var d=e.predecessors(o);d.length&&(i=e.node(d[0]).order,r(t,a,s,u,i),a=s,u=i)}r(t,a,t.length,i,n.length)}),t}),t}(t,i)),h={},o.A(["u","d"],function(e){r="u"===e?i:eR.A(i).reverse(),o.A(["l","r"],function(n){"r"===n&&(r=d.A(r,function(e){return eR.A(e).reverse()}));var i,a,c,l,v=("u"===e?t.predecessors:t.successors).bind(t),A=(i=r,a={},c={},l={},o.A(i,function(e){o.A(e,function(e,n){a[e]=e,c[e]=e,l[e]=n})}),o.A(i,function(e){var n=-1;o.A(e,function(e){var t=v(e);if(t.length)for(var r=((t=eH(t,function(e){return l[e]})).length-1)/2,o=Math.floor(r),i=Math.ceil(r);o<=i;++o){var d=t[o];c[e]===e&&n<l[d]&&!function(e,n,t){if(n>t){var r=n;n=t,t=r}return u.A(e[n],t)}(s,e,d)&&(c[d]=e,c[e]=a[e]=a[d],n=l[d])}})}),{root:a,align:c}),g=function(e,n,t,r,i){var a,s,d,c,h,l={},v=(d=new f.T,a=(c=e.graph()).nodesep,s=c.edgesep,h=function(e,n,t){var r,o,d=e.node(n),c=e.node(t);if(r=0+d.width/2,u.A(d,"labelpos"))switch(d.labelpos.toLowerCase()){case"l":o=-d.width/2;break;case"r":o=d.width/2}if(o&&(r+=i?o:-o),o=0,r+=(d.dummy?s:a)/2+(c.dummy?s:a)/2+c.width/2,u.A(c,"labelpos"))switch(c.labelpos.toLowerCase()){case"l":o=c.width/2;break;case"r":o=-c.width/2}return o&&(r+=i?o:-o),o=0,r},o.A(n,function(n){var r;o.A(n,function(n){var o=t[n];if(d.setNode(o),r){var i=t[r],u=d.edge(i,o);d.setEdge(i,o,Math.max(h(e,n,r),u||0))}r=n})}),d),A=i?"borderLeft":"borderRight";function g(e,n){for(var t=v.nodes(),r=t.pop(),o={};r;)o[r]?e(r):(o[r]=!0,t.push(r),t=t.concat(n(r))),r=t.pop()}return g(function(e){l[e]=v.inEdges(e).reduce(function(e,n){return Math.max(e,l[n.v]+v.edge(n))},0)},v.predecessors.bind(v)),g(function(n){var t=v.outEdges(n).reduce(function(e,n){return Math.min(e,l[n.w]-v.edge(n))},Number.POSITIVE_INFINITY),r=e.node(n);t!==Number.POSITIVE_INFINITY&&r.borderType!==A&&(l[n]=Math.max(l[n],t))},v.successors.bind(v)),o.A(r,function(e){l[e]=l[t[e]]}),l}(t,r,A.root,A.align,"r"===n);"r"===n&&(g=O(g,function(e){return-e})),h[e+n]=g})}),l=Z(eR.A(h),function(e){var n,r=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY;return n=function(e,n){var i=t.node(n).width/2;r=Math.max(e+i,r),o=Math.min(e-i,o)},null==e||(0,e1.A)(e,(0,e0.A)(n),e2.A),r-o}),A=T(v=eR.A(l)),g=x(v),o.A(["u","d"],function(e){o.A(["l","r"],function(n){var t,r=e+n,o=h[r];if(o!==l){var i=eR.A(o);(t="l"===n?A-T(i):g-x(i))&&(h[r]=O(o,function(e){return e+t}))}})}),p=t.graph().align,w=O(h.ul,function(e,n){if(p)return h[p.toLowerCase()][n];var t=eH(d.A(h,n));return(t[1]+t[2])/2}),m=function(n,t){e.node(t).x=n},w&&(0,C.A)(w,(0,e0.A)(m))}),t(" positionSelfEdges",function(){o.A(n.nodes(),function(e){var t=n.node(e);if("selfedge"===t.dummy){var r=n.node(t.e.v),o=r.x+r.width/2,i=r.y,u=t.x-o,a=r.height/2;n.setEdge(t.e,t.label),n.removeNode(e),t.label.points=[{x:o+2*u/3,y:i-a},{x:o+5*u/6,y:i-a},{x:o+u,y:i},{x:o+5*u/6,y:i+a},{x:o+2*u/3,y:i+a}],t.label.x=t.x,t.label.y=t.y}})}),t(" removeBorderNodes",function(){o.A(n.nodes(),function(e){if(n.children(e).length){var t=n.node(e),r=n.node(t.borderTop),o=n.node(t.borderBottom),i=n.node(k(t.borderLeft)),u=n.node(k(t.borderRight));t.width=Math.abs(u.x-i.x),t.height=Math.abs(o.y-r.y),t.x=i.x+t.width/2,t.y=r.y+t.height/2}}),o.A(n.nodes(),function(e){"border"===n.node(e).dummy&&n.removeNode(e)})}),t(" normalize.undo",function(){o.A(n.graph().dummyChains,function(e){var t,r=n.node(e),o=r.edgeLabel;for(n.setEdge(r.edgeObj,o);r.dummy;)t=n.successors(e)[0],n.removeNode(e),o.points.push({x:r.x,y:r.y}),"edge-label"===r.dummy&&(o.x=r.x,o.y=r.y,o.width=r.width,o.height=r.height),e=t,r=n.node(e)})}),t(" fixupEdgeLabelCoords",function(){o.A(n.edges(),function(e){var t=n.edge(e);if(u.A(t,"x"))switch(("l"===t.labelpos||"r"===t.labelpos)&&(t.width-=t.labeloffset),t.labelpos){case"l":t.x-=t.width/2+t.labeloffset;break;case"r":t.x+=t.width/2+t.labeloffset}})}),t(" undoCoordinateSystem",function(){var e;("bt"===(e=n.graph().rankdir.toLowerCase())||"rl"===e)&&(o.A(n.nodes(),function(e){J(n.node(e))}),o.A(n.edges(),function(e){var t=n.edge(e);o.A(t.points,J),u.A(t,"y")&&J(t)})),("lr"===e||"rl"===e)&&(o.A(n.nodes(),function(e){W(n.node(e))}),o.A(n.edges(),function(e){var t=n.edge(e);o.A(t.points,W),u.A(t,"x")&&W(t)}),Y(n))}),t(" translateGraph",function(){(function(e){var n=Number.POSITIVE_INFINITY,t=0,r=Number.POSITIVE_INFINITY,i=0,a=e.graph(),s=a.marginx||0,d=a.marginy||0;function c(e){var o=e.x,u=e.y,a=e.width,s=e.height;n=Math.min(n,o-a/2),t=Math.max(t,o+a/2),r=Math.min(r,u-s/2),i=Math.max(i,u+s/2)}o.A(e.nodes(),function(n){c(e.node(n))}),o.A(e.edges(),function(n){var t=e.edge(n);u.A(t,"x")&&c(t)}),n-=s,r-=d,o.A(e.nodes(),function(t){var o=e.node(t);o.x-=n,o.y-=r}),o.A(e.edges(),function(t){var i=e.edge(t);o.A(i.points,function(e){e.x-=n,e.y-=r}),u.A(i,"x")&&(i.x-=n),u.A(i,"y")&&(i.y-=r)}),a.width=t-n+s,a.height=i-r+d})(n)}),t(" assignNodeIntersects",function(){o.A(n.edges(),function(e){var t,r,o=n.edge(e),i=n.node(e.v),u=n.node(e.w);o.points?(t=o.points[0],r=o.points[o.points.length-1]):(o.points=[],t=u,r=i),o.points.unshift(D(i,t)),o.points.push(D(u,r))})}),t(" reversePoints",function(){o.A(n.edges(),function(e){var t=n.edge(e);t.reversed&&t.points.reverse()})}),t(" acyclic.undo",function(){o.A(n.edges(),function(e){var t=n.edge(e);if(t.reversed){n.removeEdge(e);var r=t.forwardName;delete t.reversed,delete t.forwardName,n.setEdge(e.w,e.v,t,r)}})})}),t(" updateInputGraph",function(){o.A(e.nodes(),function(t){var r=e.node(t),o=n.node(t);r&&(r.x=o.x,r.y=o.y,n.children(t).length&&(r.width=o.width,r.height=o.height))}),o.A(e.edges(),function(t){var r=e.edge(t),o=n.edge(t);r.points=o.points,u.A(o,"x")&&(r.x=o.x,r.y=o.y)}),e.graph().width=n.graph().width,e.graph().height=n.graph().height})})}var e8=["nodesep","edgesep","ranksep","marginx","marginy"],e3={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},e7=["acyclicer","ranker","rankdir","align"],e4=["width","height"],e5={width:0,height:0},ne=["minlen","weight","width","height","labeloffset"],nn={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},nt=["labelpos"];function nr(e,n){return O(w.A(e,n),Number)}function no(e){var n={};return o.A(e,function(e,t){n[t.toLowerCase()]=e}),n}},47740:(e,n,t)=>{t.d(n,{T:()=>C});var r=t(62859),o=t(39260),i=t(42036),u=t(95240),a=t(25860),s=t(77083),d=t(7392),c=t(31454),f=t(3858),h=t(48496),l=t(22076),v=t(54402);let A=function(e){return e!=e},g=function(e,n,t){for(var r=t-1,o=e.length;++r<o;)if(e[r]===n)return r;return -1},p=function(e,n){return!!(null==e?0:e.length)&&(n==n?g(e,n,0):(0,v.A)(e,A,0))>-1},b=function(e,n,t){for(var r=-1,o=null==e?0:e.length;++r<o;)if(t(n,e[r]))return!0;return!1};var w=t(18097),m=t(38779),y=t(72801),_=m.A&&1/(0,y.A)(new m.A([,-0]))[1]==1/0?function(e){return new m.A(e)}:function(){};let E=function(e,n,t){var r=-1,o=p,i=e.length,u=!0,a=[],s=a;if(t)u=!1,o=b;else if(i>=200){var d=n?null:_(e);if(d)return(0,y.A)(d);u=!1,o=w.A,s=new l.A}else s=n?[]:a;e:for(;++r<i;){var c=e[r],f=n?n(c):c;if(c=t||0!==c?c:0,u&&f==f){for(var h=s.length;h--;)if(s[h]===f)continue e;n&&s.push(f),a.push(c)}else o(s,f,t)||(s!==a&&s.push(f),a.push(c))}return a};var j=t(11755),x=(0,h.A)(function(e){return E((0,f.A)(e,1,j.A,!0))}),k=t(43337),N=t(91825);class C{constructor(e={}){this._isDirected=!r.A(e,"directed")||e.directed,this._isMultigraph=!!r.A(e,"multigraph")&&e.multigraph,this._isCompound=!!r.A(e,"compound")&&e.compound,this._label=void 0,this._defaultNodeLabelFn=o.A(void 0),this._defaultEdgeLabelFn=o.A(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children["\0"]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return i.A(e)||(e=o.A(e)),this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return u.A(this._nodes)}sources(){var e=this;return a.A(this.nodes(),function(n){return s.A(e._in[n])})}sinks(){var e=this;return a.A(this.nodes(),function(n){return s.A(e._out[n])})}setNodes(e,n){var t=arguments,r=this;return d.A(e,function(e){t.length>1?r.setNode(e,n):r.setNode(e)}),this}setNode(e,n){return r.A(this._nodes,e)?arguments.length>1&&(this._nodes[e]=n):(this._nodes[e]=arguments.length>1?n:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]="\0",this._children[e]={},this._children["\0"][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount),this}node(e){return this._nodes[e]}hasNode(e){return r.A(this._nodes,e)}removeNode(e){var n=this;if(r.A(this._nodes,e)){var t=function(e){n.removeEdge(n._edgeObjs[e])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],d.A(this.children(e),function(e){n.setParent(e)}),delete this._children[e]),d.A(u.A(this._in[e]),t),delete this._in[e],delete this._preds[e],d.A(u.A(this._out[e]),t),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,n){if(!this._isCompound)throw Error("Cannot set parent in a non-compound graph");if(c.A(n))n="\0";else{n+="";for(var t=n;!c.A(t);t=this.parent(t))if(t===e)throw Error("Setting "+n+" as parent of "+e+" would create a cycle");this.setNode(n)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=n,this._children[n][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var n=this._parent[e];if("\0"!==n)return n}}children(e){if(c.A(e)&&(e="\0"),this._isCompound){var n=this._children[e];if(n)return u.A(n)}else if("\0"===e)return this.nodes();else if(this.hasNode(e))return[]}predecessors(e){var n=this._preds[e];if(n)return u.A(n)}successors(e){var n=this._sucs[e];if(n)return u.A(n)}neighbors(e){var n=this.predecessors(e);if(n)return x(n,this.successors(e))}isLeaf(e){return 0===(this.isDirected()?this.successors(e):this.neighbors(e)).length}filterNodes(e){var n=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});n.setGraph(this.graph());var t=this;d.A(this._nodes,function(t,r){e(r)&&n.setNode(r,t)}),d.A(this._edgeObjs,function(e){n.hasNode(e.v)&&n.hasNode(e.w)&&n.setEdge(e,t.edge(e))});var r={};return this._isCompound&&d.A(n.nodes(),function(e){n.setParent(e,function e(o){var i=t.parent(o);return void 0===i||n.hasNode(i)?(r[o]=i,i):i in r?r[i]:e(i)}(e))}),n}setDefaultEdgeLabel(e){return i.A(e)||(e=o.A(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return k.A(this._edgeObjs)}setPath(e,n){var t=this,r=arguments;return N.A(e,function(e,o){return r.length>1?t.setEdge(e,o,n):t.setEdge(e,o),o}),this}setEdge(){var e,n,t,o,i=!1,u=arguments[0];"object"==typeof u&&null!==u&&"v"in u?(e=u.v,n=u.w,t=u.name,2==arguments.length&&(o=arguments[1],i=!0)):(e=u,n=arguments[1],t=arguments[3],arguments.length>2&&(o=arguments[2],i=!0)),e=""+e,n=""+n,c.A(t)||(t=""+t);var a=L(this._isDirected,e,n,t);if(r.A(this._edgeLabels,a))return i&&(this._edgeLabels[a]=o),this;if(!c.A(t)&&!this._isMultigraph)throw Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(n),this._edgeLabels[a]=i?o:this._defaultEdgeLabelFn(e,n,t);var s=function(e,n,t,r){var o=""+n,i=""+t;if(!e&&o>i){var u=o;o=i,i=u}var a={v:o,w:i};return r&&(a.name=r),a}(this._isDirected,e,n,t);return e=s.v,n=s.w,Object.freeze(s),this._edgeObjs[a]=s,I(this._preds[n],e),I(this._sucs[e],n),this._in[n][a]=s,this._out[e][a]=s,this._edgeCount++,this}edge(e,n,t){var r=1==arguments.length?M(this._isDirected,arguments[0]):L(this._isDirected,e,n,t);return this._edgeLabels[r]}hasEdge(e,n,t){var o=1==arguments.length?M(this._isDirected,arguments[0]):L(this._isDirected,e,n,t);return r.A(this._edgeLabels,o)}removeEdge(e,n,t){var r=1==arguments.length?M(this._isDirected,arguments[0]):L(this._isDirected,e,n,t),o=this._edgeObjs[r];return o&&(e=o.v,n=o.w,delete this._edgeLabels[r],delete this._edgeObjs[r],O(this._preds[n],e),O(this._sucs[e],n),delete this._in[n][r],delete this._out[e][r],this._edgeCount--),this}inEdges(e,n){var t=this._in[e];if(t){var r=k.A(t);return n?a.A(r,function(e){return e.v===n}):r}}outEdges(e,n){var t=this._out[e];if(t){var r=k.A(t);return n?a.A(r,function(e){return e.w===n}):r}}nodeEdges(e,n){var t=this.inEdges(e,n);if(t)return t.concat(this.outEdges(e,n))}}function I(e,n){e[n]?e[n]++:e[n]=1}function O(e,n){--e[n]||delete e[n]}function L(e,n,t,r){var o=""+n,i=""+t;if(!e&&o>i){var u=o;o=i,i=u}return o+"\x01"+i+"\x01"+(c.A(r)?"\0":r)}function M(e,n){return L(e,n.v,n.w,n.name)}C.prototype._nodeCount=0,C.prototype._edgeCount=0},62499:(e,n,t)=>{t.d(n,{T:()=>r.T});var r=t(47740)},22076:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(63713);function o(e){var n=-1,t=null==e?0:e.length;for(this.__data__=new r.A;++n<t;)this.add(e[n])}o.prototype.add=o.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},o.prototype.has=function(e){return this.__data__.has(e)};let i=o},55931:(e,n,t)=>{t.d(n,{A:()=>r});let r=function(e,n){for(var t=-1,r=null==e?0:e.length;++t<r&&!1!==n(e[t],t,e););return e}},56968:(e,n,t)=>{t.d(n,{A:()=>r});let r=function(e,n){for(var t=-1,r=null==e?0:e.length,o=0,i=[];++t<r;){var u=e[t];n(u,t,e)&&(i[o++]=u)}return i}},66046:(e,n,t)=>{t.d(n,{A:()=>r});let r=function(e,n){for(var t=-1,r=null==e?0:e.length,o=Array(r);++t<r;)o[t]=n(e[t],t,e);return o}},29538:(e,n,t)=>{t.d(n,{A:()=>r});let r=function(e,n){for(var t=-1,r=n.length,o=e.length;++t<r;)e[o+t]=n[t];return e}},24359:(e,n,t)=>{t.d(n,{A:()=>$});var r=t(72872),o=t(55931),i=t(84805),u=t(68785),a=t(95240),s=t(97937),d=t(35012),c=t(61733),f=t(99110),h=t(29538),l=t(30481),v=t(36679),A=Object.getOwnPropertySymbols?function(e){for(var n=[];e;)(0,h.A)(n,(0,f.A)(e)),e=(0,l.A)(e);return n}:v.A,g=t(18064),p=t(94661);let b=function(e){return(0,p.A)(e,s.A,A)};var w=t(86073),m=Object.prototype.hasOwnProperty;let y=function(e){var n=e.length,t=new e.constructor(n);return n&&"string"==typeof e[0]&&m.call(e,"index")&&(t.index=e.index,t.input=e.input),t};var _=t(29427);let E=function(e,n){var t=n?(0,_.A)(e.buffer):e.buffer;return new e.constructor(t,e.byteOffset,e.byteLength)};var j=/\w*$/;let x=function(e){var n=new e.constructor(e.source,j.exec(e));return n.lastIndex=e.lastIndex,n};var k=t(70807),N=k.A?k.A.prototype:void 0,C=N?N.valueOf:void 0,I=t(33379);let O=function(e,n,t){var r=e.constructor;switch(n){case"[object ArrayBuffer]":return(0,_.A)(e);case"[object Boolean]":case"[object Date]":return new r(+e);case"[object DataView]":return E(e,t);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return(0,I.A)(e,t);case"[object Map]":case"[object Set]":return new r;case"[object Number]":case"[object String]":return new r(e);case"[object RegExp]":return x(e);case"[object Symbol]":return C?Object(C.call(e)):{}}};var L=t(49364),M=t(28675),T=t(38990),R=t(19196),S=t(39131),P=t(60027),F=P.A&&P.A.isMap,D=F?(0,S.A)(F):function(e){return(0,R.A)(e)&&"[object Map]"==(0,w.A)(e)},B=t(17731),G=P.A&&P.A.isSet,V=G?(0,S.A)(G):function(e){return(0,R.A)(e)&&"[object Set]"==(0,w.A)(e)},z="[object Arguments]",q="[object Function]",U="[object Object]",Y={};Y[z]=Y["[object Array]"]=Y["[object ArrayBuffer]"]=Y["[object DataView]"]=Y["[object Boolean]"]=Y["[object Date]"]=Y["[object Float32Array]"]=Y["[object Float64Array]"]=Y["[object Int8Array]"]=Y["[object Int16Array]"]=Y["[object Int32Array]"]=Y["[object Map]"]=Y["[object Number]"]=Y[U]=Y["[object RegExp]"]=Y["[object Set]"]=Y["[object String]"]=Y["[object Symbol]"]=Y["[object Uint8Array]"]=Y["[object Uint8ClampedArray]"]=Y["[object Uint16Array]"]=Y["[object Uint32Array]"]=!0,Y["[object Error]"]=Y[q]=Y["[object WeakMap]"]=!1;let $=function e(n,t,h,l,v,p){var m,_=1&t,E=2&t,j=4&t;if(h&&(m=v?h(n,l,v,p):h(n)),void 0!==m)return m;if(!(0,B.A)(n))return n;var x=(0,M.A)(n);if(x){if(m=y(n),!_)return(0,c.A)(n,m)}else{var k,N,C,I,R=(0,w.A)(n),S=R==q||"[object GeneratorFunction]"==R;if((0,T.A)(n))return(0,d.A)(n,_);if(R==U||R==z||S&&!v){if(m=E||S?{}:(0,L.A)(n),!_)return E?(N=(k=m)&&(0,u.A)(n,(0,s.A)(n),k),(0,u.A)(n,A(n),N)):(I=(C=m)&&(0,u.A)(n,(0,a.A)(n),C),(0,u.A)(n,(0,f.A)(n),I))}else{if(!Y[R])return v?n:{};m=O(n,R,_)}}p||(p=new r.A);var P=p.get(n);if(P)return P;p.set(n,m),V(n)?n.forEach(function(r){m.add(e(r,t,h,r,n,p))}):D(n)&&n.forEach(function(r,o){m.set(o,e(r,t,h,o,n,p))});var F=j?E?b:g.A:E?s.A:a.A,G=x?void 0:F(n);return(0,o.A)(G||n,function(r,o){G&&(r=n[o=r]),(0,i.A)(m,o,e(r,t,h,o,n,p))}),m}},906:(e,n,t)=>{t.d(n,{A:()=>a});var r,o,i=t(39179),u=t(8860);let a=(r=i.A,function(e,n){if(null==e)return e;if(!(0,u.A)(e))return r(e,n);for(var t=e.length,i=-1,a=Object(e);(o?i--:++i<t)&&!1!==n(a[i],i,a););return e})},54402:(e,n,t)=>{t.d(n,{A:()=>r});let r=function(e,n,t,r){for(var o=e.length,i=t+(r?1:-1);r?i--:++i<o;)if(n(e[i],i,e))return i;return -1}},3858:(e,n,t)=>{t.d(n,{A:()=>d});var r=t(29538),o=t(70807),i=t(42908),u=t(28675),a=o.A?o.A.isConcatSpreadable:void 0;let s=function(e){return(0,u.A)(e)||(0,i.A)(e)||!!(a&&e&&e[a])},d=function e(n,t,o,i,u){var a=-1,d=n.length;for(o||(o=s),u||(u=[]);++a<d;){var c=n[a];t>0&&o(c)?t>1?e(c,t-1,o,i,u):(0,r.A)(u,c):i||(u[u.length]=c)}return u}},39179:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(33240),o=t(95240);let i=function(e,n){return e&&(0,r.A)(e,n,o.A)}},79696:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(98669),o=t(63307);let i=function(e,n){n=(0,r.A)(n,e);for(var t=0,i=n.length;null!=e&&t<i;)e=e[(0,o.A)(n[t++])];return t&&t==i?e:void 0}},94661:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(29538),o=t(28675);let i=function(e,n,t){var i=n(e);return(0,o.A)(e)?i:(0,r.A)(i,t(e))}},66172:(e,n,t)=>{t.d(n,{A:()=>U});var r=t(72872),o=t(22076);let i=function(e,n){for(var t=-1,r=null==e?0:e.length;++t<r;)if(n(e[t],t,e))return!0;return!1};var u=t(18097);let a=function(e,n,t,r,a,s){var d=1&t,c=e.length,f=n.length;if(c!=f&&!(d&&f>c))return!1;var h=s.get(e),l=s.get(n);if(h&&l)return h==n&&l==e;var v=-1,A=!0,g=2&t?new o.A:void 0;for(s.set(e,n),s.set(n,e);++v<c;){var p=e[v],b=n[v];if(r)var w=d?r(b,p,v,n,e,s):r(p,b,v,e,n,s);if(void 0!==w){if(w)continue;A=!1;break}if(g){if(!i(n,function(e,n){if(!(0,u.A)(g,n)&&(p===e||a(p,e,t,r,s)))return g.push(n)})){A=!1;break}}else if(!(p===b||a(p,b,t,r,s))){A=!1;break}}return s.delete(e),s.delete(n),A};var s=t(70807),d=t(12066),c=t(65866);let f=function(e){var n=-1,t=Array(e.size);return e.forEach(function(e,r){t[++n]=[r,e]}),t};var h=t(72801),l=s.A?s.A.prototype:void 0,v=l?l.valueOf:void 0;let A=function(e,n,t,r,o,i,u){switch(t){case"[object DataView]":if(e.byteLength!=n.byteLength||e.byteOffset!=n.byteOffset)break;e=e.buffer,n=n.buffer;case"[object ArrayBuffer]":if(e.byteLength!=n.byteLength||!i(new d.A(e),new d.A(n)))break;return!0;case"[object Boolean]":case"[object Date]":case"[object Number]":return(0,c.A)(+e,+n);case"[object Error]":return e.name==n.name&&e.message==n.message;case"[object RegExp]":case"[object String]":return e==n+"";case"[object Map]":var s=f;case"[object Set]":var l=1&r;if(s||(s=h.A),e.size!=n.size&&!l)break;var A=u.get(e);if(A)return A==n;r|=2,u.set(e,n);var g=a(s(e),s(n),r,o,i,u);return u.delete(e),g;case"[object Symbol]":if(v)return v.call(e)==v.call(n)}return!1};var g=t(18064),p=Object.prototype.hasOwnProperty;let b=function(e,n,t,r,o,i){var u=1&t,a=(0,g.A)(e),s=a.length;if(s!=(0,g.A)(n).length&&!u)return!1;for(var d=s;d--;){var c=a[d];if(!(u?c in n:p.call(n,c)))return!1}var f=i.get(e),h=i.get(n);if(f&&h)return f==n&&h==e;var l=!0;i.set(e,n),i.set(n,e);for(var v=u;++d<s;){var A=e[c=a[d]],b=n[c];if(r)var w=u?r(b,A,c,n,e,i):r(A,b,c,e,n,i);if(!(void 0===w?A===b||o(A,b,t,r,i):w)){l=!1;break}v||(v="constructor"==c)}if(l&&!v){var m=e.constructor,y=n.constructor;m!=y&&"constructor"in e&&"constructor"in n&&!("function"==typeof m&&m instanceof m&&"function"==typeof y&&y instanceof y)&&(l=!1)}return i.delete(e),i.delete(n),l};var w=t(86073),m=t(28675),y=t(38990),_=t(75216),E="[object Arguments]",j="[object Array]",x="[object Object]",k=Object.prototype.hasOwnProperty;let N=function(e,n,t,o,i,u){var s=(0,m.A)(e),d=(0,m.A)(n),c=s?j:(0,w.A)(e),f=d?j:(0,w.A)(n);c=c==E?x:c,f=f==E?x:f;var h=c==x,l=f==x,v=c==f;if(v&&(0,y.A)(e)){if(!(0,y.A)(n))return!1;s=!0,h=!1}if(v&&!h)return u||(u=new r.A),s||(0,_.A)(e)?a(e,n,t,o,i,u):A(e,n,c,t,o,i,u);if(!(1&t)){var g=h&&k.call(e,"__wrapped__"),p=l&&k.call(n,"__wrapped__");if(g||p){var N=g?e.value():e,C=p?n.value():n;return u||(u=new r.A),i(N,C,t,o,u)}}return!!v&&(u||(u=new r.A),b(e,n,t,o,i,u))};var C=t(19196);let I=function e(n,t,r,o,i){return n===t||(null!=n&&null!=t&&((0,C.A)(n)||(0,C.A)(t))?N(n,t,r,o,e,i):n!=n&&t!=t)},O=function(e,n,t,o){var i=t.length,u=i,a=!o;if(null==e)return!u;for(e=Object(e);i--;){var s=t[i];if(a&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++i<u;){var d=(s=t[i])[0],c=e[d],f=s[1];if(a&&s[2]){if(void 0===c&&!(d in e))return!1}else{var h=new r.A;if(o)var l=o(c,f,d,e,n,h);if(!(void 0===l?I(f,c,3,o,h):l))return!1}}return!0};var L=t(17731);let M=function(e){return e==e&&!(0,L.A)(e)};var T=t(95240);let R=function(e){for(var n=(0,T.A)(e),t=n.length;t--;){var r=n[t],o=e[r];n[t]=[r,o,M(o)]}return n},S=function(e,n){return function(t){return null!=t&&t[e]===n&&(void 0!==n||e in Object(t))}},P=function(e){var n=R(e);return 1==n.length&&n[0][2]?S(n[0][0],n[0][1]):function(t){return t===e||O(t,e,n)}};var F=t(79696);let D=function(e,n,t){var r=null==e?void 0:(0,F.A)(e,n);return void 0===r?t:r};var B=t(15866),G=t(85584),V=t(63307),z=t(83910),q=t(97043);let U=function(e){var n,t,r;if("function"==typeof e)return e;if(null==e)return z.A;if("object"==typeof e){return(0,m.A)(e)?(n=e[0],t=e[1],(0,G.A)(n)&&M(t)?S((0,V.A)(n),t):function(e){var r=D(e,n);return void 0===r&&r===t?(0,B.A)(e,n):I(t,r,3)}):P(e)}return r=e,(0,G.A)(r)?(0,q.A)((0,V.A)(r)):function(e){return(0,F.A)(e,r)}}},99609:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(906),o=t(8860);let i=function(e,n){var t=-1,i=(0,o.A)(e)?Array(e.length):[];return(0,r.A)(e,function(e,r,o){i[++t]=n(e,r,o)}),i}},97043:(e,n,t)=>{t.d(n,{A:()=>r});let r=function(e){return function(n){return null==n?void 0:n[e]}}},18097:(e,n,t)=>{t.d(n,{A:()=>r});let r=function(e,n){return e.has(n)}},59176:(e,n,t)=>{t.d(n,{A:()=>o});var r=t(83910);let o=function(e){return"function"==typeof e?e:r.A}},98669:(e,n,t)=>{t.d(n,{A:()=>l});var r,o,i,u=t(28675),a=t(85584),s=t(12854),d=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,c=/\\(\\)?/g,f=(r=function(e){var n=[];return 46===e.charCodeAt(0)&&n.push(""),e.replace(d,function(e,t,r,o){n.push(r?o.replace(c,"$1"):t||e)}),n},i=(o=(0,s.A)(r,function(e){return 500===i.size&&i.clear(),e})).cache,o),h=t(66784);let l=function(e,n){return(0,u.A)(e)?e:(0,a.A)(e,n)?[e]:f((0,h.A)(e))}},18064:(e,n,t)=>{t.d(n,{A:()=>u});var r=t(94661),o=t(99110),i=t(95240);let u=function(e){return(0,r.A)(e,i.A,o.A)}},99110:(e,n,t)=>{t.d(n,{A:()=>a});var r=t(56968),o=t(36679),i=Object.prototype.propertyIsEnumerable,u=Object.getOwnPropertySymbols;let a=u?function(e){return null==e?[]:(e=Object(e),(0,r.A)(u(e),function(n){return i.call(e,n)}))}:o.A},90536:(e,n,t)=>{t.d(n,{A:()=>d});var r=t(98669),o=t(42908),i=t(28675),u=t(49031),a=t(13884),s=t(63307);let d=function(e,n,t){n=(0,r.A)(n,e);for(var d=-1,c=n.length,f=!1;++d<c;){var h=(0,s.A)(n[d]);if(!(f=null!=e&&t(e,h)))break;e=e[h]}return f||++d!=c?f:!!(c=null==e?0:e.length)&&(0,a.A)(c)&&(0,u.A)(h,c)&&((0,i.A)(e)||(0,o.A)(e))}},85584:(e,n,t)=>{t.d(n,{A:()=>a});var r=t(28675),o=t(40932),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,u=/^\w*$/;let a=function(e,n){if((0,r.A)(e))return!1;var t=typeof e;return!!("number"==t||"symbol"==t||"boolean"==t||null==e||(0,o.A)(e))||u.test(e)||!i.test(e)||null!=n&&e in Object(n)}},72801:(e,n,t)=>{t.d(n,{A:()=>r});let r=function(e){var n=-1,t=Array(e.size);return e.forEach(function(e){t[++n]=e}),t}},63307:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(40932),o=1/0;let i=function(e){if("string"==typeof e||(0,r.A)(e))return e;var n=e+"";return"0"==n&&1/e==-o?"-0":n}},12630:(e,n,t)=>{t.d(n,{A:()=>d});var r=t(48496),o=t(65866),i=t(50174),u=t(97937),a=Object.prototype,s=a.hasOwnProperty;let d=(0,r.A)(function(e,n){e=Object(e);var t=-1,r=n.length,d=r>2?n[2]:void 0;for(d&&(0,i.A)(n[0],n[1],d)&&(r=1);++t<r;)for(var c=n[t],f=(0,u.A)(c),h=-1,l=f.length;++h<l;){var v=f[h],A=e[v];(void 0===A||(0,o.A)(A,a[v])&&!s.call(e,v))&&(e[v]=c[v])}return e})},25860:(e,n,t)=>{t.d(n,{A:()=>s});var r=t(56968),o=t(906);let i=function(e,n){var t=[];return(0,o.A)(e,function(e,r,o){n(e,r,o)&&t.push(e)}),t};var u=t(66172),a=t(28675);let s=function(e,n){return((0,a.A)(e)?r.A:i)(e,(0,u.A)(n,3))}},98880:(e,n,t)=>{t.d(n,{A:()=>o});var r=t(3858);let o=function(e){return(null==e?0:e.length)?(0,r.A)(e,1):[]}},7392:(e,n,t)=>{t.d(n,{A:()=>a});var r=t(55931),o=t(906),i=t(59176),u=t(28675);let a=function(e,n){return((0,u.A)(e)?r.A:o.A)(e,(0,i.A)(n))}},62859:(e,n,t)=>{t.d(n,{A:()=>u});var r=Object.prototype.hasOwnProperty;let o=function(e,n){return null!=e&&r.call(e,n)};var i=t(90536);let u=function(e,n){return null!=e&&(0,i.A)(e,n,o)}},15866:(e,n,t)=>{t.d(n,{A:()=>i});let r=function(e,n){return null!=e&&n in Object(e)};var o=t(90536);let i=function(e,n){return null!=e&&(0,o.A)(e,n,r)}},40932:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(36798),o=t(19196);let i=function(e){return"symbol"==typeof e||(0,o.A)(e)&&"[object Symbol]"==(0,r.A)(e)}},31454:(e,n,t)=>{t.d(n,{A:()=>r});let r=function(e){return void 0===e}},95240:(e,n,t)=>{t.d(n,{A:()=>u});var r=t(78373),o=t(88601),i=t(8860);let u=function(e){return(0,i.A)(e)?(0,r.A)(e):(0,o.A)(e)}},23480:(e,n,t)=>{t.d(n,{A:()=>a});var r=t(66046),o=t(66172),i=t(99609),u=t(28675);let a=function(e,n){return((0,u.A)(e)?r.A:i.A)(e,(0,o.A)(n,3))}},23068:(e,n,t)=>{t.d(n,{A:()=>g});var r,o=t(79696),i=t(84805),u=t(98669),a=t(49031),s=t(17731),d=t(63307);let c=function(e,n,t,r){if(!(0,s.A)(e))return e;n=(0,u.A)(n,e);for(var o=-1,c=n.length,f=c-1,h=e;null!=h&&++o<c;){var l=(0,d.A)(n[o]),v=t;if("__proto__"===l||"constructor"===l||"prototype"===l)break;if(o!=f){var A=h[l];void 0===(v=r?r(A,l,h):void 0)&&(v=(0,s.A)(A)?A:(0,a.A)(n[o+1])?[]:{})}(0,i.A)(h,l,v),h=h[l]}return e},f=function(e,n,t){for(var r=-1,i=n.length,a={};++r<i;){var s=n[r],d=(0,o.A)(e,s);t(d,s)&&c(a,(0,u.A)(s,e),d)}return a};var h=t(15866),l=t(98880),v=t(20453),A=t(1207);let g=(r=function(e,n){return null==e?{}:f(e,n,function(n,t){return(0,h.A)(e,t)})},(0,A.A)((0,v.A)(r,void 0,l.A),r+""))},70037:(e,n,t)=>{t.d(n,{A:()=>s});var r=Math.ceil,o=Math.max;let i=function(e,n,t,i){for(var u=-1,a=o(r((n-e)/(t||1)),0),s=Array(a);a--;)s[i?a:++u]=e,e+=t;return s};var u=t(50174),a=t(27900);let s=function(e,n,t){return t&&"number"!=typeof t&&(0,u.A)(e,n,t)&&(n=t=void 0),e=(0,a.A)(e),void 0===n?(n=e,e=0):n=(0,a.A)(n),t=void 0===t?e<n?1:-1:(0,a.A)(t),i(e,n,t,void 0)}},91825:(e,n,t)=>{t.d(n,{A:()=>s});let r=function(e,n,t,r){var o=-1,i=null==e?0:e.length;for(r&&i&&(t=e[++o]);++o<i;)t=n(t,e[o],o,e);return t};var o=t(906),i=t(66172);let u=function(e,n,t,r,o){return o(e,function(e,o,i){t=r?(r=!1,e):n(t,e,o,i)}),t};var a=t(28675);let s=function(e,n,t){var s=(0,a.A)(e)?r:u,d=arguments.length<3;return s(e,(0,i.A)(n,4),t,d,o.A)}},36679:(e,n,t)=>{t.d(n,{A:()=>r});let r=function(){return[]}},27900:(e,n,t)=>{t.d(n,{A:()=>A});var r=/\s/;let o=function(e){for(var n=e.length;n--&&r.test(e.charAt(n)););return n};var i=/^\s+/,u=t(17731),a=t(40932),s=0/0,d=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,f=/^0o[0-7]+$/i,h=parseInt;let l=function(e){if("number"==typeof e)return e;if((0,a.A)(e))return s;if((0,u.A)(e)){var n,t="function"==typeof e.valueOf?e.valueOf():e;e=(0,u.A)(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=(n=e)?n.slice(0,o(n)+1).replace(i,""):n;var r=c.test(e);return r||f.test(e)?h(e.slice(2),r?2:8):d.test(e)?s:+e};var v=1/0;let A=function(e){return e?(e=l(e))===v||e===-v?(e<0?-1:1)*17976931348623157e292:e==e?e:0:0===e?e:0}},66784:(e,n,t)=>{t.d(n,{A:()=>f});var r=t(70807),o=t(66046),i=t(28675),u=t(40932),a=1/0,s=r.A?r.A.prototype:void 0,d=s?s.toString:void 0;let c=function e(n){if("string"==typeof n)return n;if((0,i.A)(n))return(0,o.A)(n,e)+"";if((0,u.A)(n))return d?d.call(n):"";var t=n+"";return"0"==t&&1/n==-a?"-0":t},f=function(e){return null==e?"":c(e)}},16966:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(66784),o=0;let i=function(e){var n=++o;return(0,r.A)(e)+n}},43337:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(66046),o=t(95240);let i=function(e){var n;return null==e?[]:(n=(0,o.A)(e),(0,r.A)(n,function(n){return e[n]}))}}}]); \ No newline at end of file diff --git a/assets/js/519746e1.c76d6329.js b/assets/js/519746e1.ccc73e32.js similarity index 99% rename from assets/js/519746e1.c76d6329.js rename to assets/js/519746e1.ccc73e32.js index 432a7c0971..484a8dd78b 100644 --- a/assets/js/519746e1.c76d6329.js +++ b/assets/js/519746e1.ccc73e32.js @@ -1 +1 @@ -(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[73589],{82473:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/social-card-736cfe55fc7bba07204176852d67c0d5.png"},8941:(e,s,t)=>{"use strict";t.d(s,{A:()=>c});var i=t(62540);t(63696);var a=t(9347),n=t(81912);function r(e){for(var s=1;s<arguments.length;s++){var t=null!=arguments[s]?arguments[s]:{},i=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.forEach(function(s){var i;i=t[s],s in e?Object.defineProperty(e,s,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[s]=i})}return e}function o(e,s){return s=null!=s?s:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):(function(e,s){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}),e}function l(e,s){switch(e){case"noicon":case"loaded":return null;case"loading":return(0,n.T)({id:"theme.IdealImageMessage.loading",message:"Loading...",description:"When the full-scale image is loading"});case"load":{let{pickedSrc:e}=s,{size:t}=e,i=t?` (${function(e){let s=["B","KB","MB","GB","TB"];if(0===e)return"n/a";let t=Math.floor(Math.log(e)/Math.log(1024));return 0===t?`${e} ${s[t]}`:`${(e/1024**t).toFixed(1)} ${s[t]}`}(t)})`:"";return(0,n.T)({id:"theme.IdealImageMessage.load",message:"Click to load{sizeMessage}",description:"To prompt users to load the full image. sizeMessage is a parenthesized size figure."},{sizeMessage:i})}case"offline":return(0,n.T)({id:"theme.IdealImageMessage.offline",message:"Your browser is offline. Image not loaded",description:"When the user is viewing an offline document"});case"error":{let{loadInfo:e}=s;if(404===e)return(0,n.T)({id:"theme.IdealImageMessage.404error",message:"404. Image not found",description:"When the image is not found"});return(0,n.T)({id:"theme.IdealImageMessage.error",message:"Error. Click to reload",description:"When the image fails to load for unknown error"})}default:throw Error(`Wrong icon: ${e}`)}}function c(e){var s,t;let{img:n}=e,c=function(e,s){if(null==e)return{};var t,i,a=function(e,s){if(null==e)return{};var t,i,a={},n=Object.keys(e);for(i=0;i<n.length;i++)t=n[i],s.indexOf(t)>=0||(a[t]=e[t]);return a}(e,s);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i<n.length;i++)t=n[i],!(s.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}(e,["img"]);return"string"==typeof n||"default"in n?(0,i.jsx)("img",r({src:"string"==typeof n?n:n.default},c)):(0,i.jsx)(a.A,o(r({},c),{height:null!==(s=n.src.height)&&void 0!==s?s:100,width:null!==(t=n.src.width)&&void 0!==t?t:100,placeholder:{lqip:n.preSrc},src:n.src.src,srcSet:n.src.images.map(e=>o(r({},e),{src:e.path})),getMessage:l}))}},54802:(e,s,t)=>{"use strict";t.d(s,{B7:()=>d,Gr:()=>h,Gs:()=>u});var i=t(62540);t(63696);var a=t(30133),n=t(36372),r=t(8941);let o="navButton_qSul";function l({index:e,site:s}){return(0,i.jsxs)(a.q7,{index:e,className:"siteSlide_AwQk",children:[(0,i.jsx)(r.A,{img:s.image,alt:s.name,loading:0===e?"eager":"lazy"}),(0,i.jsxs)(n.A,{to:s.url,className:"siteLink_IglZ",target:"_blank",children:["\u{1F517} ",s.name]})]})}function c({sites:e,aspectRatio:s}){return(0,i.jsxs)(a.gi,{naturalSlideWidth:1,naturalSlideHeight:1/s,totalSlides:e.length,infinite:!0,className:"carousel_raHC",children:[(0,i.jsx)(a.Ap,{children:e.map((e,s)=>(0,i.jsx)(l,{index:s,site:e},s))}),(0,i.jsx)(a.CC,{className:o,style:{right:-20},children:">"}),(0,i.jsx)(a._X,{className:o,style:{left:-20},children:"<"}),(0,i.jsx)(a.Jj,{className:"dotGroup_n_95"})]})}function d(){return(0,i.jsx)(c,{aspectRatio:1072/584,sites:[{name:"Prettier",image:t(63379),url:"https://prettier.io/"},{name:"Babel",image:t(81448),url:"https://babeljs.io/"},{name:"React-Native",image:t(46925),url:"https://archive.reactnative.dev/"},{name:"Katex",image:t(70039),url:"https://katex.org/docs/"},{name:"Docusaurus",image:t(25908),url:"https://v1.docusaurus.io/"}]})}function h(){return(0,i.jsx)(c,{aspectRatio:2148/1194,sites:[{name:"Tauri",image:t(83422),url:"https://tauri.app/"},{name:"Figma",image:t(80679),url:"https://www.figma.com/plugin-docs/"},{name:"Snapchat",image:t(53149),url:"https://docs.snap.com/"},{name:"Iota",image:t(52306),url:"https://wiki.iota.org/"},{name:"SAP Cloud",image:t(18911),url:"https://sap.github.io/cloud-sdk/"},{name:"Supabase",image:t(91765),url:"https://supabase.com/docs"},{name:"StackBlitz",image:t(70546),url:"https://developer.stackblitz.com/"},{name:"Lacework",image:t(58889),url:"https://docs.lacework.com/"},{name:"React-Navigation",image:t(48215),url:"https://reactnavigation.org/"},{name:"Solana",image:t(58559),url:"https://docs.solana.com/"},{name:"Gulp",image:t(70967),url:"https://gulpjs.com/"}]})}function u(){return(0,i.jsx)(c,{aspectRatio:2148/1194,sites:[{name:"Ionic",image:t(18948),url:"https://ionicframework.com/docs/"},{name:"Outerbounds",image:t(89532),url:"https://outerbounds.com/docs/"},{name:"Courier",image:t(80711),url:"https://www.courier.com/docs/"},{name:"Quickwit",image:t(71935),url:"https://quickwit.io/docs/"},{name:"Dyte",image:t(85752),url:"https://docs.dyte.io/"},{name:"React-Native",image:t(20075),url:"https://reactnative.dev/"},{name:"Hasura",image:t(37202),url:"https://hasura.io/docs/"},{name:"Datagit",image:t(83178),url:"https://www.datagit.ir/"}]})}},70361:(e,s,t)=>{"use strict";t.d(s,{A:()=>o});var i=t(62540);t(63696);var a=t(11750);let n="dot_giz1",r="bar_rrRL";function o({children:e,minHeight:s,url:t="http://localhost:3000",style:o,bodyStyle:l}){var c,d;return(0,i.jsxs)("div",{className:"browserWindow_my1Q",style:(c=function(e){for(var s=1;s<arguments.length;s++){var t=null!=arguments[s]?arguments[s]:{},i=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.forEach(function(s){var i;i=t[s],s in e?Object.defineProperty(e,s,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[s]=i})}return e}({},o),d=d={minHeight:s},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(d)):(function(e,s){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(d)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(d,e))}),c),children:[(0,i.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,i.jsxs)("div",{className:"buttons_uHc7",children:[(0,i.jsx)("span",{className:n,style:{background:"#f25f58"}}),(0,i.jsx)("span",{className:n,style:{background:"#fbbe3c"}}),(0,i.jsx)("span",{className:n,style:{background:"#58cb42"}})]}),(0,i.jsx)("div",{className:(0,a.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:t}),(0,i.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,i.jsxs)("div",{children:[(0,i.jsx)("span",{className:r}),(0,i.jsx)("span",{className:r}),(0,i.jsx)("span",{className:r})]})})]}),(0,i.jsx)("div",{className:"browserWindowBody_Idgs",style:l,children:e})]})}},61979:(e,s,t)=>{"use strict";t.d(s,{A:()=>n});var i=t(62540);t(63696);var a=t(36372);function n({size:e=54}){return(0,i.jsx)(a.A,{to:"https://news.ycombinator.com/item?id=32303052",style:{display:"block",width:e,height:e},children:(0,i.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 48 48",width:e,height:e,children:[(0,i.jsx)("path",{fill:"#FF6D00",d:"M42 42H6V6h36v36z"}),(0,i.jsx)("path",{fill:"#FFF",d:"M8 8v32h32V8H8zm30 30H10V10h28v28z"}),(0,i.jsx)("path",{fill:"#FFF",d:"M23 32h2v-6l5.5-10h-2.1L24 24.1 19.6 16h-2.1L23 26z"})]})})}},91283:(e,s,t)=>{"use strict";t.d(s,{A:()=>r});var i=t(62540);t(63696);var a=t(11750),n=t(36372);function r({className:e,style:s}){return(0,i.jsx)(n.A,{to:"https://www.producthunt.com/posts/docusaurus-2-0?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-docusaurus-2-0",className:(0,a.A)("producthunt-badge-widget",e),style:function(e){for(var s=1;s<arguments.length;s++){var t=null!=arguments[s]?arguments[s]:{},i=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.forEach(function(s){var i;i=t[s],s in e?Object.defineProperty(e,s,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[s]=i})}return e}({display:"block",width:250,height:54},s),children:(0,i.jsx)("img",{className:"producthunt-badge-widget",src:"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=353916&theme=light",alt:"Docusaurus 2.0 - Build optimized websites quickly, focus on your content. | Product Hunt",style:{width:250,height:54,maxWidth:"initial"},width:250,height:54})})}},10291:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/npm-downloads-f9d754a81ff372a5bae83c8751195e2b.png"},64356:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/redocusaurus-5cf08a76be6f85090544417b82986cfb.png"},92909:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/search-848f1f1b9eb0d1b710e1d1dec50fb84a.png"},85915:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/shiki-twoslash-b74271684fa819a0175595409b2f323b.png"},93635:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/slash-plushies-71b7a47477442dfcf890627669aba97d.jpg"},33164:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/social-card-736cfe55fc7bba07204176852d67c0d5.png"},69529:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/star-history-72ae014f60d05445753e9f690e41d347.png"},82716:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAvgAAACgCAIAAAD2Ao8HAAAbm0lEQVR42u3dCVhV553HcbtMp31m2uk807TTaTvtzDx52sk002xNpjZeRBY3UMANRRQXQBQXFFEWAREBt2B2Y6IhNXFp0hhj1GhMYtQY9Rwu62WVXS67F3BFWeZ/uYYgIAIiXO798nwen8v1Luec9z3v++M97zln2Nb6OgAAAIs0jE0AAAAIOgAAAAQdAAAAgg4AAABBBwAAgKADAABA0AEAAAQdAAAAgg4AAABBBwAAgKADAABA0AEAACDoAAAAgg4AAABBBwAAgKADAABA0AEAACDoAAAAEHQAAABBBwAAgKADAABA0AEAACDoAEAXNhrKwiq0q/Vn5N/NtZVsEAAEHQBD25baquCyr+blveWUFqxRZ7cZqc6Zlrk5sjKNTQSAoANgKImvr42oTF1Q+NdJuuiRiXPb55sObFQvv8L32GIACDoAzN366rylJYfcs+Ltkvy6CTedkXUAEHQAmOm0m8DSE7NzXxubsrxX4abDuE5kZTobEwBBB4AZTLupqw4tP++dt2tCelhvM83/bLV7cu+Ezs+7Z25hwwIg6AAYNJFVuoVFf5ucEWubOL9vIzfPnvUcNmzYPz7yL10N6szdZChjIwMg6AAYODE1BQEXP56R/byDdmGfj0y197v1mv99bXSX/7VS/wUbHABBB0C/8S860DlebDSUBelPeeW+Pi41sM+B5vcv2f/gNz96/K3xPX/L7NztlAgAgg6A+xKk/2JpyWF5EFJ2zpQwJO48V3cprCLRJ3+3S3q4jep1/yM3v103Yth3vnW3wZsujU1ZQekAIOgA6LWIylRJM1vqquMMJaYcMzv3tbl5O9tChm2id78cmeowI6fnL16QGRVYfCC+vpbCAkDQAXBvEhqeqzeYHo9OXiZhYnJGzNKSw+1P6u73cNNbvplr95YfKW+obmlp+ez6NUoNAEEHQI9SzrjUQPukhf5FByKrdO1Pbhr0cCO8MyN2lx8qa6hqafeTe/MmBQeAoAPg3uIMJQ/0sFTfzM8If6fsI31DZUtXPzeam/0/OvhcrYHiA0DQAdBt0LlUYibhRszLCN9VdvDijYqWbn/S09N/9+c/b67iruYACDoA7pJvXNLDRycvG528ZNDzzZyMsL+UfVhyo7zLWKPVanNzc9s/Ex0dHffeuxQiAIIOgK61nTE+mPlGF/aW/kDxjbJuBm8CAwPd3d3t7e23bt3a9qSdnV1qRQWFCICgA+Cuc5AnpIUOSr6ZrQtJ0H9QdF3fcq+f+vr6Z599Vh40NjZ6enrGxsbK4+vXrw8fPryxufklyhEAQQfA3QSUHOs+kYw45/nIZtv/Cnxa/PED1/vMN7N0wW/q9xdeL+0y0xgMBkdHx6eeemrevHkSZUxP7tmzJyYmxvS4qanJx8dnxowZzs7O27Ztk2f2X71KIQIg6ADoaEtdtdeFHd1fHefRlxy+/8sfDmv385DDb/582qNvU4yTL2d1P3gTFBS0Y8cOefD222+PGDGivLy8ubl53LhxOTk57V+mqqpWqzU9Tmy4QVECIOgA6GhR4f7uo8ljCeO+/f3vSLj50WM//fWCx/7N/b+/++O/l19//MzP+zCQc7Xpevuwkpyc7OnpOWfOnPz8/Nuni9+48cQTTzQ1NZl+PXPmzJNPPvnUU08FBAR0k42qGhspSgAEHQAdravOHpMS0E06+afHfyax5ldzH2175umPJn3vJz+QJx992aFXQefL2qQ70klV1R/+8IeTJ09+/vnnTz/9dEJCgqScqKiotkNUbQeqrl692v0g0JXGa1EViZsM5RQoAIIOgI5Hr3wL9nYZTZ75eIoEmu/+6HsdbkH1cNhwef4/ljzZ85Rjk+jV0HyzfTpZvnz5u+++a3p87dq1wMBAyT1+fn4Sd+45N/la042Uy9n7Kj5el7/NI32VfLh8xYrSzyhNAAQdAHeIr6/1yH6xy3Tyxw9cJdD8w8P/3Pm/Ht/lNOKcZ69GdG40NbQllTfeeMPW1ralxz/y3vQrue9VHFtfsH2WLnhk4pzOn++Z+wqlCYCgA+AOdxvOEcNPTP/W3337h7//Sb+cTK7UpZtSy82bN+Pi4mpqarpJNg3NN3VXLuyvPB5b+IaXLtS2q2TTwejkZZQmAIIOgDssKNjXTXp4Yo/zM4cm99ddxzscvWr/c7P5VtbVggNVn20o3Dk3Y82oxN7dSXRSimdMwYydtccpUAAEHQB3iKzS+eTvHoArBC7Mis6+WmBKNo3NjTnXig5Wndhc9Ob8jIhRifN6+2ljtLOCc2e8VzG18LpbS4uLOHN5FaUJgKAD4A6bDOUu6eEDdkFkt9RlU1KX22vn9+G9tursRVkeO0vd0y5PutXsYso3bSoaplGaAAg6AO4wN2+n+dy3vEue6TOfL57+pWHK1caO4aaDnZdzQqvO+Vx8K77+EiULgKADoC6w9MQora+5hRuX5Fnr8qcfqZ5a1eDafbhp75UK3zHZC+yzvOYVv7as7CCFC4CgA6Auvu7SspKjgx5uHLWzVubM2Fc+Le/apJ6Hm/ZO1k+RlGPilLOUkgVA0AFQt746zzF5yWDlm6mps7ZfdE+qn3yzybVv+aZNfaOrw9dBZ3S298zCLRQuAIIOYO1m524flIgzIdnzWM2U5maX+8w37S0qnNk2qDMtfz2FC4CgA1i7yMo0N906G3XuQKacGWkzKxpc+zHi3J6PXOneFnRmFG6kcAEQdAAYBelPDVjKGaOdVXrDreP54bfc9tS4NzTfO/1UVY3dt++P8+f/2t39Fx3+K/nqZFPKcciay4gOAIIOAKM1FUm2ib27tk2kOuOEMmV071POaHVWZaprS4Mxl9TcdDtaMyUk32NJwUyv/FkSUF6qmH6odlrncHP9uvMnnwxftephR8eHpk37xfbtjxUUOHR+2c1m1w9Tpi3WzXS5sJpiBUDQAaxcremB14UdvQor49VZlxS3FsWlSHHzVGf26r371anyxvpE18C0GfLryJTZbQebbg/GZHvVNhrHdZqbJ2q1IzdseMTZ+V+dnH4WF/eIqo6UJ7sb77np0qi6XkmcEl28nfIFQNABrNrpwncSqnPkwQbDxfl5uyakhfYwrBxSjGHF5KriGq7O6OEbfRSPpq/fWKW4zkz07JByxLis2XNPu0zz+JWDw0NBQQ8fOzb8+nXnuyWb2trxdzxTcvvDryR57azJbb+yr18qosQBgg4AK1KZurg0fWXbuI5/0YemODJd9ewmrCxVPdpSTps9yrSR6qx73sMhV5nU/l01itvcjFmds874dM+SqnHfxJeGO08jrx9/4MAzixf/p739Q76+v/nmvxpdWrTffHhtsndbuNlmKNWnB1LiAEEHgLXYUZNnCgRfFO6TX1eUfmaKI7Hq9Fuqy4uKe5dhxV6dXdJ60KqzRHXyhG4T0jbFvfO7DKqrd0bHcZ2AYs9bLV/PSja4tCS6NFZMOH16RETEb8eO/amr68+ff/7RjAy7jgM8+o4fXp2y6FVDqaxdcu6L8uubrcNXAAg6ACzfiaJ3TWngljo1oTrbt2CvZJG/KNNMTzYrLlFdHZB6W53WZcoxqVDcfO8yZWea6nlDce3yXXWq2wLdHVnHNXf29dbTr/LTHG6dm2hansMJf5Ksc+vWhK4PYzW5tCR38eFl6Sv2VGibWsOZrDLlDhB0AFiFYl1wWxrQpwe+WFuRnL6qfUS4pbqsUD3ahxUvdeatu6cck5uK6yZleuegc16d3M27Lquui3S3r/XnnD17x95nvLz+3WPKr+pPOd3xSn0Xp5ofOvR/xscVd/3wxq+/ukgXQrkDBB0Alu9Vg77pziNQV5K8OkeEa4qrz9cjNDbq7Iw7Z9h047Ayxb5dylmnTr/nW64orssT3e33jh5/yHnnm4+XFo9pSe/qlSXGU82PHRseFPSwg8ND7u6/SEh4whh0Uu+9VI3qpFcMZZQ+QNABYOEOlR7rYWQxqK4zWrPOCz0IK+1lq5Omtk5PdlI95UN68pZG+fdy61BNs0tL9l1fdnT7nzZseCQxsd2p5jU9XSpZcUofIOgAsHBJF17ueWQpU9z8VI9rimuvgo5x8o3iukL1OKJO7cW7tC4t9S4tBfd6WV5rGGo7hpXe089Pzn2R0gcIOgAsXFn6il5FlqZeRpz7eWNzD1+ZY8w6dXXjv/pY0/MPL09bRukDBB0AluzFuupGdVJLX7OL+Uh7b5TH9F+Wfjam52+RFZfVpw4ABB0AFmtfhWoBKee21F6/RVafOgAQdABYrJOF+ywn6PSe6QKJAAg6ACxTTma0NQed7KxY6gBA0AFgsS6lLLDmoGNI8aUOAAQdAJaqtrHbixRbvEZ10vP1BmoCQNABYIF21ORbc8ox2VGTR00ACDoALNB75WcJOrIRqAkAQQeABfqk5CBBRzYCNQEg6ACwQOfzdhB0zuXtoCYABB0AFigrK46gk5W9gZoAEHQAWKDCjDUEnSJdKDUBIOgAsECl6YEEHX16IDUBIOgAsECVqYsJOlWp/tQEgKADwAIZUnwJOrXJPtQEgKADwHzF11VtMZRuMRRtupS3sTozrjotrkobU3F+fcWZ9eUn1umPR+mPRJZ+GFHyfnjJvjXFb68pTAgtfD2k4NV6dSpB53LiNNkask1ky8j2ka0k20q2mGw32XqyDWVLyvaUrSrbVrawbGfZ2rLNqXgAQQfAXaJJ/SXpLKXX3FCti61U11eclm51belHkSV/Cy/ebQwiBa8F57+4Om9zUG5MYE7EiqzggMzlS3X+S3Te/mmzF6a6+yW7+SaN90m0n69q+uyGMpGgIxuhzxtQtr+UgpSFlIiUi5SOlJGUlJSXlJqUnZSglKOUppSplKyUr5SyMUJVnJZyl9JvTU6lUh/YKQCCDmBuYaV2i0G/qebChurUmMqz0WWfRpZ+GF6yL6wwIaRg26q8+NaMEr48c+XSjMVL0uf7p870S5ks/aJ3ot39pJN+1GT1KUfIRjCHspBaYcxMKZOlnkhtkTojNUfqj9QiqUtSo6ReSe2SOiY1Teqb1Dqpe1IDpR6yMwIEHaBHB4A2XSqMq05bX3EmSn8s8uIH4cXvhBZuX533vHQ2K7LDAjIDluh8jHkl2c1HO8ZMwsp9jeiojOi4yEYY6uUotVHqpDEh6XyklkpdbR1Mel5qr9RhqclSn6VWS92WGs5BNxB02AqwsEGX0o3VWbGVanTZibWlH4UX75HWX/5EDsyNMo616PwWpXr6Jbve5zGgIapenUDQkY1gbeUutV3qvNR8qf/GcaPcKNkjWlPRHtlHZE+R/UX2mtZjagwXgaADDJLnjAMwebGVWmmXIy8eWFO0Kzj/ZflDdnnW6tb44rFA6+St2lhhfOm5aoKO4lJtfUGnFwfUVBvZj2RvMkairNWyf8leJvua7HGteUgr++BzDBGBoAP0nmGzoTCuKnld2ecRF/eHFe1cnfdcYE5EQGbA4vR5C1Om+Ggd6YTun151JujIRqAm3PexM0fZK2XflD1U9lPZW2WflT1X9l/Zi2Vflj2aZg0EHViXLYaSDdWp0eVfGAdjChOC87dK+7g0Y+mitFkLkpwZiRkYhQQdxaWQoDMwI0NJzrJ3yz4ue7rs77LXG4eFyr+QdkBaA5pEEHQwFKNMaVx1WnTZiYiS90MLtwflxi3PXCl/8y1IdvFWbWn6zUGmOp6gIxuBmmAGSchWWgZpH6SVkLZCWgxpN6T1kDZEWhKaUxB0MFinKdVsrMmJqTwbVXoorGjX6vz4FdnhS3ULF6a6W+fc3iHnS3UcQUc2AjXB7GdPO0irIm2LtDDSzkhrI22OtDzS/kgrRFMMgg7u12ZDSWylNkp/dE3R26vy4ldkhSxJn++XNJH2d6j7UBlN0JGNQE0Y0qQtkhZJ2iVpnaSNkpZK2qvNHA4DQQedhmeqN1ZnRpefiih5P6Rg28qcdcYZM6nTGZuxYG+qDgQd2QjUBEs9i15aMGnHpDWTNs14LKz8lLRy0tbR4BN0YOE2XcqPqfgq4uL+kIJXV+ZELtX5+SW70Sxaoc2qHUFHNgI1weoGgZLdpN2T1k/aQGkJpT2UVpGugaCDoTgdWB9XpY3SHwkrTAi6sGFZZoD8fWM+9x/AoAtWRxJ0ZCNQE2C6C4e0kNJOSmspbaa0nNJ+SitKV0LQgbmc4hRbqay9eED+QAnMCV+cPt83iSmWuOepLprr1n1fT1l9b2oCuiVtqbSo0q5K6yptrLS0nAhG0MEDviJwbbn8nbG29KPQwu2BOZFLdD4LtE40RuAMc84tx4CRVlfaXmmBpR2W1ljaZGmZ6Z4IOuj9BOH62o01OdFln64pTDDODtb5LeBcJ/SrI6pVn3glq08dQL+ln6SJrVN/1kmLLe228ex3bhZG0EGHy9LEVaet1R8OLXgtMHvN4jQvznjCg/aKam/NQUdWnzqAB3rml7Tk0p5Lqy5tu7TwXPiHoGNVR6AqYiuViIv7V+e9sDxz5aJU9/lMisSAW2nd85FXstNhoI2U1l7afGn5pf2XXkD6AjpEgo5lMGyozpBEH1Lw6vKsVQuNsYYdHmahXLHSO17JilP6MAfSI0i/YJzsrD8sPQX3QCXoDJXToIrWl58IK3prZe5a//S5HISC2TpqrdN0jjJBB+Z6wEt6Dek7pAeRfkR6E7pUgo6ZDNikth6H2rwsw983idOgMGRsUEdZZ9DZwKUCMWROcXeSnkX6F+llpK9hyIegM0A3TIitTAwv+WtQbuyS9PkM2GBIX03nsvVdTecyV9DBUB7ykX5Heh/pg6Qn4qYWBJ1+mzscU3EuvPidwNwo/7TZ3qotOxsshhXexpyblsOC/laxlV5J+ibpoaSfYnYzQafnYzaXjGM2xXsCcyIXpXp4qzbsTrBUG63v6JWsMuUOC809NtJnSc8l/VfreM8lOnSCzjc21uSsLT24Km/LEp2PN0ejYE1Krencq1LOt4L15J5Ee+nRpF+T3k36OIKO1QWdLYbS6LIToQWvBWStYAYxrNk7ioP1BB1ZWUocVjuvWfo76fWk77POm3YNs5Zhm4sHgnJjFqV6UOkBE3/V5oZ1TEmW1fTnSDTQSvpB6Q2lT7SewR7LDDrx9bVxVclrinevyA7zS3alZgNdOq6OsYagI6tJWQOdSf8ovaT0ldJjWvBduoZZ0FTiqvUVZ0ILXw/IDPDVjqUGA/cUoI60+EEdWcEAbvsA3PMIl3as9J7Sh0pPKv0pQceMzpOKqTwbUrBtqW6hdyKnVAC9dtDSB3UOMpwD9Ho68yjpVaVvlR7WAs7hGjY0D0tpwwoTJHv6aLmgO3C/M3Us+OKBl5mdA9wf6Welt5U+V3reIXp4a8gEnQ3VuvDi3cuzVvsmjafmAf1ot+JoqUFHVo3yBfrvBK7x0gtLXyw9MkGnv04F10fpj6zMWceEYuABDlOrmhzVyfJSjqwU93wAHtxEZumdpY+Wnpqg02txVSmhRTuM02646wIwIEJU2wbLSjmyOiE0IMBA/KVkK/219NrSdxN0ur+xVHmU/uOVOdEM3gCDYq9qUQewZHUoU2AwhnmipTeXPp2g882l/MKKdi3VLWLwBhj0A1hpynjLSDmpyngOWgGDPczjL/27OVyWcHCCTlx1Wkjhdv+0OdQGwHwsVm306pC/AZaswmLOtALM59TOtDnS40u/bxVBJ7ZSCc57YVGqOwUPmKdg1fbKUD7bXBY+mOFhwCxJ7y8ZQJKApQWd+Pra9RWngy5sZPINMCRsVkfdGpopRxZbFp4SBMx/Ko+kAskGA3NhnmEP8uQp7er8ePINMORsVe1uDrVxHVlgWWzKDhhaiUdygqSFIRZ0NtbkhBZu5z7hwJC2RbFrGFInk8sCU2rAkD2q5SHJ4QHNXB7Wfxf3K1lTvHuJzocCAyzDJtXu+lAY15GF3MRYDmARJEVIlpBEYVZBx7BOfzwgK5DzwwHLE6bamvl5WLJ4YTQ+gGWRRCG5QtKFZIzBDDqbLuWFFGzzS3ajSABLHlJWbRKVceaZcmTBFnEmOWDJk3jcJGlI3hjgoGOI0h8LyFzuTfsCWI19iuMN1YwOY8nC7OOGnYC1DPDYSOqQ7NG3AZ5hvRrCCc5/hbOoAOu0Wh1pJpdOlsWQhaFEACs8S0tySG8HeHoUdGKrklbkhDMLB8B2xb5GmTBYEUe+WhaAUgCsfAaPZBJJJv0TdNaVfbY0YzGbFUAbX1WzS3GoHti4I18nX+rL9gfwNcknklL6GHTi66ojSt7zT53JdgTQxue8xu+sxv8rzZIvNctPaf76pcPFs04POuKUnnV697RD0EnNslPG75Vvl2WQJaE4AAjJKpJYJLf0NOg8V1sZVrRzQdJEth1gpcPCijFJSKRYcVKz6jNN6HFNxFFN1MeamMOamEMjOtt+dORXX4yuP9fPAzzygfKx8uFdfqnRYeNSybLJEspyytLKMsuSy/JTiIC1kdwi6UUyTHdBR9LQmuK3iTiA2QpRbcMfxFQ5xThMIkEh5FPN2qN3DTT39OYx208/d7zw5fiG8308P0veKG+XD5GP6tsymAKQrIWsi6yRrNd8cg9gTXFHkkyH0Z1hrffdvBRR8i5XxAHMbSrMWnXUTtXhuDomR3UyXaRYfu23kZvzmoDTmrDjEg40fU8VXYk9rHnj6Mj3j9ud+Nwx9dTYkjNOlV85156bcO3cxEbFRcgD+VWelP+SF8jL5MXyltjD/bwkrYzrKGvqzdEuwFpOznKTVCPZ5nbQWXvxwMKUaWwXYNAtUm1ilVHvKA6nlLFFilPnW4g3Ky4B/XT9qqWnNeuOPIhUYb5kfWWtqWaAlZBsIwknvr52GNsCGPxpMapmp+pQod5jmku+6txf3xhtZSnHRNa6JxtnrTrqA3V0juokcbMbqeq4vaojN6AAzHuq8iyCDmBGYtRRx9UxdXc5c3u/Orq/vogRnXsf7Fdt4lW7T5Wx7U+kb2i9XOE+xTGcfAMMEQQdwBwHeLYodqeVsVfvvOvCWnVUf37LA5ujY2b6YY5OhDpqj+oohbKAW98ABB0A/XYGgWrzsmqvqOMaFBeDMuFBfVE/nXVlLjjrCgBBBxhy85SjFdv7eftmdVQPLyvc5XV0jMe5zC0AHTYuFdfRAUDQAazRMnXkS6r9UXVMvuLUqEw8qI65/8/0Pa/xO3f7ysgBpzWBJzUrT2hWf64J/nRE6PERa45rwj/RRBzTRLZeYHDdx8YgEt1q/WFjLhGmE8hjWx8Led70AnmlvF7eJe+VT5DPkU+Tz5RPls+Xb5Hvkm+8fWXkc8YloYgBEHQAa7RQtTmtjG1uN7knW3HyZssAIOgAsBhbVbt81dl4LwV1QqA6kg0CgKADwOLijmK/SbVjOwAg6AAAABB0AAAACDoAAAAEHQAAAIIOAAAAQQcAAICgAwAACDoAAAAEHQAAAIIOAAAAQQcAAICgAwAAQNABAADW4v8BIMkHbXsCeUgAAAAASUVORK5CYII="},27730:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/slash-introducing-411a16dd05086935b8e9ddae38ae9b45.svg"},29302:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/slash-up-and-running-1c1f83f3064dcd56be41632c51be62ac.png"},39777:(e,s,t)=>{"use strict";t.r(s),t.d(s,{assets:()=>A,contentTitle:()=>p,default:()=>x,frontMatter:()=>u,metadata:()=>i,toc:()=>g});var i=t(72954),a=t(62540),n=t(43023),r=t(13488),o=t(70361),l=t(91283),c=t(61979),d=t(62380);t(27167),t(35688);var h=t(54802);let u={title:"Announcing Docusaurus 2.0",authors:["slorber","Josh-Cena","yangshun","lex111","zpao",{key:"JMarcey",title:"Co-creator of Docusaurus 1"}],tags:["release"],image:"./img/social-card.png"},p=void 0,A={image:t(82473).A,authorsImageUrls:[void 0,void 0,void 0,void 0,void 0,void 0]},g=[{value:"What is Docusaurus exactly?",id:"what-is-docusaurus-exactly",level:2},{value:"The story behind Docusaurus",id:"the-story-behind-docusaurus",level:2},{value:"Toward Docusaurus 2.0",id:"toward-docusaurus-20",level:2},{value:"Who uses Docusaurus 2.0?",id:"who-uses-docusaurus-20",level:2},{value:"What's New in 2.0?",id:"whats-new-in-20",level:2},{value:"MDX",id:"mdx",level:3},{value:"File system conventions",id:"file-system-conventions",level:3},{value:"Plugins",id:"plugins",level:3},{value:"Theming",id:"theming",level:3},{value:"Other features",id:"other-features",level:3},{value:"Why 2.0 now?",id:"why-20-now",level:2},{value:"What's Next?",id:"whats-next",level:2},{value:"Thank You",id:"thank-you",level:2}];function m(e){let s={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",mdxAdmonitionTitle:"mdxAdmonitionTitle",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,n.R)(),...e.components},{TweetQuote:i}=s;return i||function(e,s){throw Error("Expected "+(s?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("TweetQuote",!0),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(s.p,{children:["Today we are extremely happy to finally ",(0,a.jsx)(s.strong,{children:"announce Docusaurus 2.0"}),"! \u{1F973}\uFE0F"]}),"\n",(0,a.jsxs)(s.p,{children:["At ",(0,a.jsx)(s.a,{href:"https://opensource.fb.com/",children:(0,a.jsx)(s.strong,{children:"Meta Open Source"})}),", we believe Docusaurus will help you build the ",(0,a.jsx)(s.strong,{children:"best documentation websites"})," with ",(0,a.jsx)(s.strong,{children:"minimal effort"}),", letting you ",(0,a.jsx)(s.strong,{children:"focus on what really matters"}),": writing the content."]}),"\n",(0,a.jsxs)(s.p,{children:["After ",(0,a.jsxs)(s.strong,{children:["4 years of work, ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/releases/tag/v2.0.0-alpha.75",children:"75 alphas"})," and ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/releases/tag/v2.0.0-beta.22",children:"22 betas"})]}),", the next generation of Docusaurus is ",(0,a.jsx)(s.strong,{children:"ready for prime time"}),". From now on, we now plan to ",(0,a.jsxs)(s.strong,{children:["respect ",(0,a.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"})]})," and will release ",(0,a.jsx)(s.strong,{children:"major versions more frequently"}),"."]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"social-card image",src:t(33164).A+"",width:"1200",height:"600"})}),"\n","\n",(0,a.jsxs)(s.admonition,{type:"info",children:[(0,a.jsxs)(s.mdxAdmonitionTitle,{children:["We are on ",(0,a.jsx)(s.a,{href:"https://www.producthunt.com/posts/docusaurus-2-0",children:"ProductHunt"})," and ",(0,a.jsx)(s.a,{href:"https://news.ycombinator.com/item?id=32303052",children:"Hacker News"}),"!"]}),(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.strong,{children:"Now"})," is the best time to show your love for Docusaurus!"]}),(0,a.jsxs)("div",{style:{display:"flex"},children:[(0,a.jsx)(l.A,{}),(0,a.jsx)(c.A,{})]})]}),"\n",(0,a.jsx)(s.admonition,{type:"tip",children:(0,a.jsxs)(s.p,{children:["In a hurry? Check ",(0,a.jsx)(s.a,{href:"#whats-new-in-20",children:"what's new in Docusaurus 2.0"}),"!"]})}),"\n",(0,a.jsx)(s.h2,{id:"what-is-docusaurus-exactly",children:"What is Docusaurus exactly?"}),"\n",(0,a.jsxs)(s.p,{children:["Docusaurus is a ",(0,a.jsx)(s.strong,{children:"static site generator"})," that helps you ship ",(0,a.jsx)(s.strong,{children:"beautiful documentation websites"})," in ",(0,a.jsx)(s.strong,{children:"no time"}),"."]}),"\n",(0,a.jsxs)(s.p,{children:["Focus on your content: just write ",(0,a.jsx)(s.strong,{children:"Markdown files"}),". Docusaurus will generate an optimized ",(0,a.jsx)(s.strong,{children:"website"})," for you that's easy to ",(0,a.jsx)(s.strong,{children:"host anywhere"}),"."]}),"\n",(0,a.jsxs)(s.p,{children:["Docusaurus is ",(0,a.jsx)(s.strong,{children:"full-featured"})," and very ",(0,a.jsx)(s.strong,{children:"flexible"}),": we ship with well-designed docs and blog layout, as well as out-of-the-box versioning, search, and internationalization functionalities, with a call to accessibility and search engine optimizations. Its flexible theming system permits to ",(0,a.jsx)(s.strong,{children:"adapt the UI to match your branding"})," so that it integrates nicely with your main website or documentation portal. Its usage of ",(0,a.jsx)(s.strong,{children:"React"})," enables a ",(0,a.jsx)(s.strong,{children:"modern client-side navigation"}),", and the ability to build an ",(0,a.jsx)(s.strong,{children:"interactive documentation"}),"."]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"Introducing Slash",src:t(27730).A+"",width:"760",height:"160"})}),"\n",(0,a.jsxs)(s.p,{children:["The Docusaurus philosophy is akin to the ",(0,a.jsx)(s.strong,{children:"Pareto principle"}),": you can get ",(0,a.jsx)(s.strong,{children:"80% of the results"})," for ",(0,a.jsx)(s.strong,{children:"20% of the effort"}),". This enables you to compete with top-notch documentation sites with ",(0,a.jsx)(s.strong,{children:"minimal effort"}),"."]}),"\n",(0,a.jsx)(i,{url:"https://x.com/rachelnabors/status/1452697991039660038",handle:"rachelnabors",name:"Rachel Nabors",job:"Former ReactJS & React-Native docs manager",children:(0,a.jsx)(s.p,{children:"Unless you're spinning up a documentation team with engineering resources, you\nprobably want Docusaurus!"})}),"\n",(0,a.jsxs)(s.p,{children:["Docusaurus aims to be the ",(0,a.jsx)(s.strong,{children:"best documentation tool"}),", but you can use it for ",(0,a.jsx)(s.strong,{children:"other use-cases"})," as well: a blog, a knowledge base, a developer portfolio, a second brain, or even to scaffold landing pages!"]}),"\n",(0,a.jsx)(i,{url:"https://x.com/johnny_reilly/status/1551861926334025728",handle:"johnny_reilly",name:"Johnny Reilly",job:"Group Principal Engineer at Investec",children:(0,a.jsx)(s.p,{children:"Using Docusaurus for my tech blog has been a fantastic choice. It looks\ntremendous out-of-the-box and the awesome DX means I write way more"})}),"\n",(0,a.jsx)(s.admonition,{type:"tip",children:(0,a.jsxs)(s.p,{children:["Try Docusaurus now with our ",(0,a.jsx)(s.a,{href:"/docs/playground",children:"online playgrounds"})," and ",(0,a.jsx)(s.a,{href:"https://tutorial.docusaurus.io/",children:"5 minutes tutorial"})," \u23F1\uFE0F"]})}),"\n",(0,a.jsx)(s.h2,{id:"the-story-behind-docusaurus",children:"The story behind Docusaurus"}),"\n",(0,a.jsxs)(s.p,{children:["Docusaurus was created at ",(0,a.jsx)(s.strong,{children:"Facebook Open Source"})," in ",(0,a.jsx)(s.strong,{children:"2017"})," (now ",(0,a.jsx)(s.a,{href:"https://opensource.fb.com/",children:"Meta Open Source"}),"). We had a lot of internal and open source projects to document. It's ",(0,a.jsx)(s.strong,{children:"complicated enough to write good documentation"}),", let alone to create the HTML, CSS, and JavaScript for a good-looking website. We wanted project leaders to be able to ",(0,a.jsx)(s.strong,{children:"focus on the content"}),", and ",(0,a.jsx)(s.strong,{children:"Markdown"})," is great for that."]}),"\n",(0,a.jsxs)(s.p,{children:["At that time, our solution was to ",(0,a.jsx)(s.strong,{children:"copy/paste a Jekyll template"})," over and over again. This naturally became ",(0,a.jsx)(s.strong,{children:"hard to maintain"}),", so we created a tool to ",(0,a.jsx)(s.strong,{children:"solve our own pain"})," once for all."]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsxs)(s.strong,{children:[(0,a.jsx)(s.a,{href:"/blog/2017/12/14/introducing-docusaurus",children:"Docusaurus v1 was born"}),"!"]})}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"Birth of Slash",src:t(82716).A+"",width:"760",height:"160"})}),"\n",(0,a.jsxs)(s.p,{children:["It quickly built momentum at Facebook and in the frontend ecosystem, adopted by many popular projects such as ",(0,a.jsx)(s.a,{href:"https://prettier.io/",children:"Prettier"}),", ",(0,a.jsx)(s.a,{href:"https://babeljs.io/",children:"Babel"}),", ",(0,a.jsx)(s.a,{href:"https://archive.reactnative.dev/",children:"React-Native"}),", ",(0,a.jsx)(s.a,{href:"https://katex.org/docs/",children:"KaTeX"}),", and of course ",(0,a.jsx)(s.a,{href:"http://v1.docusaurus.io/",children:"Docusaurus v1"})," itself."]}),"\n",(0,a.jsx)(h.B7,{}),"\n",(0,a.jsx)("br",{}),"\n",(0,a.jsx)(s.admonition,{type:"note",children:(0,a.jsx)(s.p,{children:"Notice that the sample sites above use different colors, but still look quite the same."})}),"\n",(0,a.jsx)(s.h2,{id:"toward-docusaurus-20",children:"Toward Docusaurus 2.0"}),"\n",(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.a,{href:"http://v1.docusaurus.io/",children:(0,a.jsx)(s.strong,{children:"Docusaurus v1"})})," has been very successful, but we started to ",(0,a.jsx)(s.strong,{children:"question some architectural choices"}),":"]}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["React was only used as a ",(0,a.jsx)(s.strong,{children:"server-side templating language"}),", and not used on the client"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.strong,{children:"Theming system was pretty limited"}),", and apart from changing a few colors with CSS, it was difficult to do more advanced customizations"]}),"\n",(0,a.jsxs)(s.li,{children:["The ",(0,a.jsx)(s.strong,{children:"docs versioning system was confusing"}),", since it was based on a diff algorithm"]}),"\n",(0,a.jsxs)(s.li,{children:["The codebase was ",(0,a.jsx)(s.strong,{children:"monolithic"}),", neither well-tested nor easy to extend"]}),"\n"]}),"\n",(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.a,{href:"https://docusaurus.io/",children:(0,a.jsx)(s.strong,{children:"Docusaurus v2"})})," was ",(0,a.jsx)(s.strong,{children:"rebuilt"})," from the ground up with a new ",(0,a.jsx)(s.strong,{children:"modular architecture"}),":"]}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["React is now also used on the client, enabling a ",(0,a.jsx)(s.strong,{children:"modern Single Page Application navigation"})]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.strong,{children:"Plugins"})," empower the community to contribute useful features as third-party packages"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.strong,{children:"Theming"})," is more ",(0,a.jsx)(s.strong,{children:"flexible"})," than ever"]}),"\n",(0,a.jsx)(s.li,{children:"Docs versioning is now based on snapshot copies, much easier to understand"}),"\n",(0,a.jsxs)(s.li,{children:["We kept ",(0,a.jsx)(s.strong,{children:"everything good from v1"}),": docs, blog, pages, versioning, i18n..."]}),"\n",(0,a.jsxs)(s.li,{children:["We implemented ",(0,a.jsx)(s.strong,{children:"several new features"})]}),"\n"]}),"\n",(0,a.jsxs)(s.p,{children:["More details in the ",(0,a.jsx)(s.a,{href:"/blog/2018/09/11/Towards-Docusaurus-2",children:"Docusaurus 2 project announcement"})," and ",(0,a.jsx)(s.a,{href:"https://docusaurus.io/docs/migration",children:"v1 to v2 migration guide"})]}),"\n",(0,a.jsx)(s.h2,{id:"who-uses-docusaurus-20",children:"Who uses Docusaurus 2.0?"}),"\n",(0,a.jsxs)(s.p,{children:["Despite being in pre-release, it didn't take long for ",(0,a.jsx)(s.strong,{children:"Docusaurus v2 to outgrow Docusaurus v1"})," in terms of NPM downloads:"]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.a,{href:"https://npmtrends.com/docusaurus-vs-@docusaurus/core",children:(0,a.jsx)(s.img,{alt:"NPM downloads: v2 outgrows v1",src:t(10291).A+"",width:"1200",height:"645"})})}),"\n",(0,a.jsx)(s.p,{children:"Our GitHub star trend is very positive, competing with major frameworks:"}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.a,{href:"https://star-history.com/#facebook/docusaurus&vercel/next.js&gatsbyjs/gatsby&hexojs/hexo&nuxt/nuxt.js&vuejs/vuepress&11ty/eleventy&gohugoio/hugo&remix-run/remix&mkdocs/mkdocs&Timeline",children:(0,a.jsx)(s.img,{alt:"GitHub stars: Docusaurus is well-positioned",src:t(69529).A+"",width:"1200",height:"759"})})}),"\n",(0,a.jsx)(s.p,{children:"Today, Docusaurus v2 has already been a great success even before its launch:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["We received so many ",(0,a.jsx)(s.a,{href:"https://x.com/sebastienlorber/timelines/1392048416872706049",children:"lovely testimonials"})]}),"\n",(0,a.jsxs)(s.li,{children:["Companies like ",(0,a.jsx)(s.a,{href:"https://blog.1password.com/docusaurus-documentation-framework/",children:"1Password"})," and ",(0,a.jsx)(s.a,{href:"https://www.courier.com/blog/how-we-built-our-documentation/",children:"Courier"})," are writing down their positive experience"]}),"\n",(0,a.jsxs)(s.li,{children:["Our ",(0,a.jsx)(s.a,{href:"/showcase",children:"site showcase"})," references hundreds of sites, and this is only the tip of the iceberg."]}),"\n"]}),"\n",(0,a.jsx)(h.Gr,{}),"\n",(0,a.jsx)("br",{}),"\n",(0,a.jsx)(s.admonition,{type:"tip",children:(0,a.jsxs)(s.p,{children:["Please add your site to our ",(0,a.jsx)(s.a,{href:"/showcase",children:"site showcase"}),"! It only takes a few seconds: just ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/discussions/7826",children:"post a comment here"}),"."]})}),"\n",(0,a.jsx)(i,{url:"https://x.com/maxlynch/status/1549415692704825346",handle:"maxlynch",name:"Max Lynch",job:"Ionic co-founder and CEO",children:(0,a.jsx)(s.p,{children:"We use Docusaurus everywhere now and love it"})}),"\n",(0,a.jsx)(i,{url:"https://x.com/supabase/status/1328960757149671425",handle:"supabase",name:"Supabase",job:"Open Source Firebase alternative",children:(0,a.jsx)(s.p,{children:"We've been using V2 since January and it has been great"})}),"\n",(0,a.jsx)(i,{url:"https://x.com/gabrielcsapo/status/1415061312917233665",handle:"gabrielcsapo",name:"Gabriel Csapo",job:"Staff Software Engineer at LinkedIn",children:(0,a.jsx)(s.p,{children:"Docusaurus is next level easy for literally everything you would need for\ndocumentation in your project."})}),"\n",(0,a.jsx)(i,{url:"https://x.com/ItWasMattGregg/status/1526682295075102721",handle:"ItWasMattGregg",name:"Matt Gregg",job:"Senior Front End Developer at Shopify",children:(0,a.jsx)(s.p,{children:"Docusaurus is awesome. We use it"})}),"\n",(0,a.jsx)(s.h2,{id:"whats-new-in-20",children:"What's New in 2.0?"}),"\n",(0,a.jsxs)(s.p,{children:["It would be difficult to describe every single new feature coming with Docusaurus v2. Let's focus on the features we believe are the ",(0,a.jsx)(s.strong,{children:"most impactful"}),"."]}),"\n",(0,a.jsx)(s.h3,{id:"mdx",children:"MDX"}),"\n",(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.a,{href:"https://github.com/mdx-js/mdx",children:"MDX"})," allows you to ",(0,a.jsx)(s.strong,{children:"interleave React components"})," in Markdown. This enables you to build top-notch ",(0,a.jsx)(s.strong,{children:"interactive documentation experiences"})," very easily."]}),"\n",(0,a.jsx)(s.p,{children:"A demo is worth a thousand words:"}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-md",metastring:'title="docs/my-document.mdx"',children:"### Give it a try: press that button!\n\nimport ColorModeToggle from '@theme/ColorModeToggle';\n\n<ColorModeToggle/>\n"})}),"\n",(0,a.jsxs)(o.A,{children:[(0,a.jsx)("h3",{children:"Give it a try: press that button!"}),(0,a.jsx)(d.A,{})]}),"\n",(0,a.jsx)(s.admonition,{type:"info",children:(0,a.jsxs)(s.p,{children:["MDX has its own ",(0,a.jsx)(s.a,{href:"https://mdxjs.com/docs/extending-mdx/",children:"plugin system"}),". You to customize your Markdown authoring experience, and even create your own Markdown syntax."]})}),"\n",(0,a.jsx)(i,{url:"https://x.com/HamelHusain/status/1551962275250053123",handle:"HamelHusain",name:"Hamel Husain",job:"Head Of Data Science at Outerbounds",children:(0,a.jsx)(s.p,{children:"Docusaurus + MDX is great: we were able to implement a beautiful two-pane\nlayout and give the author fine-grained control on the placement of code and\ncorresponding prose."})}),"\n",(0,a.jsx)(s.h3,{id:"file-system-conventions",children:"File system conventions"}),"\n",(0,a.jsxs)(s.p,{children:["Our goal is to make Docusaurus very ",(0,a.jsx)(s.strong,{children:"intuitive"})," to use. We added file system conventions, and adding a doc page is as easy as creating one Markdown file."]}),"\n",(0,a.jsx)(r.A,{id:"T3S8GyFIXjo",params:"autoplay=1&autohide=1&showinfo=0&rel=0",title:"Explain Like I'm 5: Docusaurus",poster:"maxresdefault",webp:!0}),"\n",(0,a.jsx)("br",{}),"\n",(0,a.jsx)(i,{url:"https://x.com/paularmstrong/status/1552005085168865281",handle:"paularmstrong",name:"Paul Armstrong",job:"Principal Engineer at Microsoft",children:(0,a.jsx)(s.p,{children:"Using the auto-generated sidebars makes it so simple to just create a page and\nnot worry about any other configuration."})}),"\n",(0,a.jsx)(s.h3,{id:"plugins",children:"Plugins"}),"\n",(0,a.jsxs)(s.p,{children:["Docusaurus now has a ",(0,a.jsx)(s.strong,{children:"modular architecture"})," with a plugin system \u2014 our ",(0,a.jsx)(s.strong,{children:"core features"})," like docs, blog, pages, and search are all powered by individual plugins."]}),"\n",(0,a.jsxs)(s.p,{children:["More importantly, it enables our community to ",(0,a.jsx)(s.strong,{children:"enhance Docusaurus"})," with additional features."]}),"\n",(0,a.jsx)(s.p,{children:"Let's highlight some examples:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/rohit-gohri/redocusaurus",children:"redocusaurus"}),": seamless integration with ",(0,a.jsx)(s.a,{href:"https://www.openapis.org/",children:"OpenAPI"})," and ",(0,a.jsx)(s.a,{href:"https://github.com/Redocly/redoc",children:"Redoc"})]}),"\n"]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"redocusaurus plugin example",src:t(64356).A+"",width:"1200",height:"667"})}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://www.npmjs.com/package/docusaurus-preset-shiki-twoslash",children:"docusaurus-preset-shiki-twoslash"}),": use ",(0,a.jsx)(s.a,{href:"https://github.com/shikijs/shiki",children:"Shiki"})," code block syntax highlighting with ",(0,a.jsx)(s.a,{href:"https://shikijs.github.io/twoslash/",children:"TwoSlash"})," TypeScript compiler hints"]}),"\n"]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"shiki-twoslash plugin example",src:t(85915).A+"",width:"1200",height:"667"})}),"\n",(0,a.jsx)(i,{url:"https://x.com/orta",handle:"orta",name:"Orta Therox",job:"Former TypeScript core team at Microsoft",children:(0,a.jsx)(s.p,{children:"The plugin API was a breeze to use, and powerful enough that I could port the\ncode sample renderer from the TypeScript website site in a couple of hours."})}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/easyops-cn/docusaurus-search-local",children:"docusaurus-search-local"}),": one of the various local search alternatives to the built-in Algolia plugin"]}),"\n"]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"local search plugin example",src:t(92909).A+"",width:"1200",height:"627"})}),"\n",(0,a.jsx)(s.admonition,{type:"tip",children:(0,a.jsxs)(s.p,{children:["We have a curated list of outstanding plugins in our ",(0,a.jsx)(s.a,{href:"/community/resources",children:"community resources"})," page."]})}),"\n",(0,a.jsx)(i,{url:"https://x.com/jodyheavener/status/1551974535452311552",handle:"jodyheavener",name:"Jody Heavener",job:"Senior Developer at 1Password",children:(0,a.jsx)(s.p,{children:"The plugin system in Docusaurus v2 has made expanding 1Password's developer\nportal so easy and fun. Super excited to show you what we've got cooking up."})}),"\n",(0,a.jsx)(s.h3,{id:"theming",children:"Theming"}),"\n",(0,a.jsxs)(s.p,{children:["Theming is one of the most important features of Docusaurus: we believe a professional documentation site should ",(0,a.jsx)(s.strong,{children:"respect your company's branding"})," and create a consistent experience."]}),"\n",(0,a.jsxs)(s.p,{children:["Docusaurus theming gives a lot of ",(0,a.jsx)(s.strong,{children:"flexibility"})," on multiple levels:"]}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsx)(s.li,{children:"Customize CSS variables to adjust colors, fonts, and more"}),"\n",(0,a.jsx)(s.li,{children:"Provide your own CSS stylesheets"}),"\n",(0,a.jsx)(s.li,{children:"Implement your own theme from scratch"}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.strong,{children:"Override any React component"})," provided by our default theme: we call this ",(0,a.jsx)(s.a,{href:"https://docusaurus.io/docs/swizzling",children:"swizzling"})]}),"\n"]}),"\n",(0,a.jsx)(i,{url:"https://x.com/hung_dev/status/1546918275065741312",handle:"hung_dev",name:"\nHung Viet Nguyen",job:"Creator of JestPreview",children:(0,a.jsx)(s.p,{children:"I love Docusaurus Swizzling feature. It\u2019s opinionated and flexible at the same\ntime. This is super cool since a framework usually needs to sacrifice one for\nthe other."})}),"\n",(0,a.jsxs)(s.p,{children:["This enables users willing to invest a bit more time on ",(0,a.jsx)(s.strong,{children:"customizations"})," to build sites that ",(0,a.jsx)(s.strong,{children:"look different"})," from others."]}),"\n",(0,a.jsx)(h.Gs,{}),"\n",(0,a.jsx)(i,{url:"https://x.com/dabit3/status/1382855449813389315",handle:"dabit3",name:"Nader Dabit",job:"Web3 developer, Developer DAO founder",children:(0,a.jsx)(s.p,{children:"So far it\u2019s working out really nicely. It\u2019s been really easy to style up the\nway that we wanted it to look. No blockers at all."})}),"\n",(0,a.jsx)(s.h3,{id:"other-features",children:"Other features"}),"\n",(0,a.jsx)(s.p,{children:"Docusaurus 2 comes with a very long list of useful features:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["Theme: dark mode, better UI and UX, flexible ",(0,a.jsx)(s.code,{children:"themeConfig"})," options..."]}),"\n",(0,a.jsx)(s.li,{children:"Docs versioning: flexible plugin options to adapt to your workflow"}),"\n",(0,a.jsx)(s.li,{children:"Docs sidebar: collapsible category, category index pages..."}),"\n",(0,a.jsx)(s.li,{children:"Blog: multiple authors, authors map, archive page..."}),"\n",(0,a.jsx)(s.li,{children:"Markdown: tabs, math equations, live code blocks, linking, flexible front matter..."}),"\n",(0,a.jsx)(s.li,{children:"Search: use the new Algolia DocSearch 3 experience"}),"\n",(0,a.jsx)(s.li,{children:"Assets: make it easy to incorporate images and other kinds of files"}),"\n",(0,a.jsx)(s.li,{children:"Internationalization: config options, default theme translations..."}),"\n",(0,a.jsx)(s.li,{children:"Accessibility: aria labels, color contrasts, skip-to-content, keyboard navigation, progressive enhancement..."}),"\n",(0,a.jsx)(s.li,{children:"SEO: sensible defaults, easy to customize, canonical url, social card, no-index, sitemap, microdata, hreflang..."}),"\n",(0,a.jsx)(s.li,{children:"PWA: add offline support to your site, and make it installable"}),"\n",(0,a.jsx)(s.li,{children:"Fail-fast: strict config validation, detect broken links, and prevent bad production deployments"}),"\n",(0,a.jsx)(s.li,{children:"TypeScript support for config files, plugins, custom pages and theme authors"}),"\n",(0,a.jsxs)(s.li,{children:["Playgrounds: assess Docusaurus easily from your browser with ",(0,a.jsx)(s.a,{href:"https://docusaurus.new",children:"docusaurus.new"})]}),"\n",(0,a.jsx)(s.li,{children:"Canary releases: use the @canary npm tag to use the upcoming release before anyone else"}),"\n",(0,a.jsx)(s.li,{children:"Tests: Docusaurus is well-tested, we dogfood features and ensure they keep working"}),"\n"]}),"\n",(0,a.jsx)(i,{url:"https://x.com/alexbdebrie/status/1540010328335032320",handle:"alexbdebrie",name:"Alex DeBrie",job:"AWS Data Hero, author of The DynamoDB Book",children:(0,a.jsx)(s.p,{children:"Recently, I was shocked at how good Docusaurus is out of the box. Super solid,\na good bit of configuration without being overwhelming, and the ability to\nreally customize the styling if you're braver than I am."})}),"\n",(0,a.jsx)(s.h2,{id:"why-20-now",children:"Why 2.0 now?"}),"\n",(0,a.jsxs)(s.p,{children:["Many enthusiastic followers of ours have been curious ",(0,a.jsx)(s.strong,{children:"why it took us 4 years to release Docusaurus 2.0"}),", considering the beta is already successful and ",(0,a.jsx)(s.strong,{children:"widely used in production"}),"."]}),"\n",(0,a.jsxs)(s.p,{children:["The reason is that we aim to ",(0,a.jsxs)(s.strong,{children:["respect ",(0,a.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"})]}),", which means we will be incrementing the major version number whenever we release a ",(0,a.jsx)(s.strong,{children:"breaking change"}),"."]}),"\n",(0,a.jsx)(s.p,{children:"It is important for multiple reasons:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["It ",(0,a.jsx)(s.strong,{children:"guarantees simple minor version upgrades"}),", as long as you only use the ",(0,a.jsx)(s.a,{href:"/community/release-process#public-api-surface",children:"public API"})]}),"\n",(0,a.jsx)(s.li,{children:"It follows front-end ecosystem conventions"}),"\n",(0,a.jsx)(s.li,{children:"A new major version is an opportunity to thoroughly document breaking changes"}),"\n",(0,a.jsx)(s.li,{children:"A new major/minor version is an opportunity to communicate new features through a blog post"}),"\n"]}),"\n",(0,a.jsxs)(s.p,{children:["The problem is that our flexible theming system inherently creates a very ",(0,a.jsx)(s.strong,{children:"implicit API surface"})," on which it is ",(0,a.jsx)(s.strong,{children:"hard to know what is a breaking change"})," in the first place. Highly customized Docusaurus sites sometimes have a hard time upgrading Docusaurus because they achieve customizations using internal APIs. We dedicated time to extensive theme refactors and clearly defining our ",(0,a.jsx)(s.a,{href:"/community/release-process#public-api-surface",children:"public API"}),", so that future code changes can be made more safely. We will continue to expand this public theming API so that the most common site customizations do not need to use any internal API."]}),"\n",(0,a.jsxs)(s.admonition,{type:"info",children:[(0,a.jsxs)(s.p,{children:["From now on, Docusaurus will ",(0,a.jsx)(s.strong,{children:"release new major versions more frequently"}),". In practice, you can expect a ",(0,a.jsx)(s.strong,{children:"new major version every 2 to 4 months"}),"."]}),(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.a,{href:"https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html",children:"Major version numbers are not sacred"}),", but we still group breaking changes together and avoid releasing major versions too often."]}),(0,a.jsxs)(s.p,{children:["Check our ",(0,a.jsx)(s.a,{href:"/community/release-process",children:"release process"})," documentation for details."]})]}),"\n",(0,a.jsx)(s.h2,{id:"whats-next",children:"What's Next?"}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"Slash Up and Running",src:t(29302).A+"",width:"760",height:"160"})}),"\n",(0,a.jsxs)(s.p,{children:["The work on Docusaurus 3.0 has started, and this next version will be released only in a few months. We will ",(0,a.jsx)(s.strong,{children:"backport retro-compatible changes in Docusaurus 2.x"})," minor versions to make them available as soon as possible to the community on a stable channel."]}),"\n",(0,a.jsx)(s.p,{children:"A sample of the features on our roadmap for the upcoming major versions of Docusaurus:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/4029",children:"Upgrade to MDX 2.0"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/4625",children:"Improve Markdown infrastructure"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/6114",children:"Improve theming and swizzle"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/2961",children:"TailwindCSS theme"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/7227",children:"Theme; support custom item types for navbar, doc sidebar, blog sidebar, footer"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/4389",children:"Dynamic navbar: navbar item activation strategies"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/2968",children:"Custom Social Cards"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/3236",children:"CSS-in-JS support"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/6520",children:"Use Node.js ES Modules"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/4765",children:"Improve build time performance"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/4138",children:"Extend Docusaurus plugins, CMS integration"})}),"\n"]}),"\n",(0,a.jsx)(s.h2,{id:"thank-you",children:"Thank You"}),"\n",(0,a.jsxs)(s.p,{children:["We'd like to express our gratitude to ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/graphs/contributors",children:"all our contributors"}),", including:"]}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["The Docusaurus core team: ",(0,a.jsx)(s.a,{href:"https://github.com/lex111",children:"Alexey Pyltsyn"}),", ",(0,a.jsx)(s.a,{href:"https://github.com/Josh-Cena",children:"Joshua Chen"}),", ",(0,a.jsx)(s.a,{href:"https://github.com/slorber",children:"S\xe9bastien Lorber"}),", ",(0,a.jsx)(s.a,{href:"https://github.com/yangshun",children:"Yangshun Tay"})," and all our ",(0,a.jsx)(s.a,{href:"https://docusaurus.io/community/team",children:"former team members"})]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/JoelMarcey",children:"Joel Marcey"})," for creating Docusaurus 1.0 and supporting the Docusaurus 2.0 project at Meta Open Source"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/zpao",children:"Paul O\u2019Shannessy"})," for supporting the development of all the next versions of Docusaurus at Meta Open Source"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/ericnakagawa",children:"Eric Nakagawa"})," for creating our cutest mascot Slash"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/endiliey",children:"Endilie Yacop Sucipto"})," for his significant ",(0,a.jsx)(s.a,{href:"/blog/2020/01/07/tribute-to-endi",children:"initial work on Docusaurus v2"})]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/shortcuts",children:"Cl\xe9ment Vannicatte"}),", ",(0,a.jsx)(s.a,{href:"https://github.com/Shipow",children:"Kevin Granger"})," and the whole Algolia team for their support"]}),"\n",(0,a.jsxs)(s.li,{children:["All the community members for making valuable code contributions, improving our documentation, and answering questions on ",(0,a.jsx)(s.a,{href:"https://discordapp.com/invite/docusaurus",children:"Discord"})]}),"\n"]}),"\n",(0,a.jsxs)(s.p,{children:["We'd like to thank in particular all our ",(0,a.jsx)(s.strong,{children:"Docusaurus 2.0 early adopters"})," for assessing its alpha, beta and canary releases, providing a ton of ",(0,a.jsx)(s.strong,{children:"invaluable feedback"}),". We sincerely hope you had a great experience using it, and that you will continue to provide feedback on the upcoming pre-releases of Docusaurus 3.0."]}),"\n",(0,a.jsxs)(s.p,{children:["At ",(0,a.jsx)(s.a,{href:"https://opensource.fb.com/",children:"Meta Open Source"}),", Docusaurus is one of our ",(0,a.jsx)(s.strong,{children:"most successful projects"}),". We can't wait to see all the outstanding documentation websites that you will create! Don't forget to ",(0,a.jsxs)(s.strong,{children:["submit them to our ",(0,a.jsx)(s.a,{href:"/showcase",children:"site showcase"})]}),"!"]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.strong,{children:"Now, let your imagination run wild \u{1F92A}!"})}),"\n",(0,a.jsx)(s.p,{children:"\u2014 Slash"}),"\n",(0,a.jsxs)(s.admonition,{type:"info",children:[(0,a.jsxs)(s.mdxAdmonitionTitle,{children:["We are on ",(0,a.jsx)(s.a,{href:"https://www.producthunt.com/posts/docusaurus-2-0",children:"ProductHunt"})," and ",(0,a.jsx)(s.a,{href:"https://news.ycombinator.com/item?id=32303052",children:"Hacker News"}),"!"]}),(0,a.jsx)(s.p,{children:"\u{1F64F} Share your experience using Docusaurus with the community!"}),(0,a.jsxs)("div",{style:{display:"flex"},children:[(0,a.jsx)(l.A,{}),(0,a.jsx)(c.A,{})]})]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"Slash plushies",src:t(93635).A+"",width:"1332",height:"1331"})})]})}function x(e={}){let{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,a.jsx)(s,{...e,children:(0,a.jsx)(m,{...e})}):m(e)}},81448:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/babel.cbc364a.640.png 640w,"+t.p+"assets/ideal-img/babel.3669cfa.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/babel.cbc364a.640.png",width:640,height:355},{path:t.p+"assets/ideal-img/babel.3669cfa.1030.png",width:1030,height:571}],src:t.p+"assets/ideal-img/babel.cbc364a.640.png",toString:function(){return t.p+"assets/ideal-img/babel.cbc364a.640.png"},placeholder:void 0,width:640,height:355},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxUlEQVR4nAG6AEX/AHW3yo+qtZWouZOjuZCTupGGu4yEuoKCt3yHsnCOwQDI2OD07urj4uHc29ns6+fy8+3y8+3s7Oj18enC0+UA1ODq/vz78vP06+vu8PDz9PT38/P39/f5////0dbpANjf6f/9/Pj28fDs4PXy6P767/757v359P///+TH1wDb3ej4/Pv1+PPw8eb1+O31+Oz1+ez4+/b+///vwMwA1p7J1Zuk2JSQ1oZ71IB01Htx1nhv23lw3Xxy5m11yK+UrA2JDh4AAAAASUVORK5CYII="}},25908:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/docusaurus.2ad1782.640.png 640w,"+t.p+"assets/ideal-img/docusaurus.ba4280f.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/docusaurus.2ad1782.640.png",width:640,height:355},{path:t.p+"assets/ideal-img/docusaurus.ba4280f.1030.png",width:1030,height:571}],src:t.p+"assets/ideal-img/docusaurus.2ad1782.640.png",toString:function(){return t.p+"assets/ideal-img/docusaurus.2ad1782.640.png"},placeholder:void 0,width:640,height:355},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAwUlEQVR4nBXJPQuCQBgA4PvBQWE4CEFBSwQhRG1KU1M/oYYCzaCGCLIPjb4uQ++6pNOztHqjZ32QPFk0LbM1MtW+0eiZDX1c18ZV3VD0QV63kLU7xSL0yPnkbRn3aHQJxZVGPhdkaF/Q8kgAIIkfd4pf4p4m4Tfjn3cKAPOlj1zM/p1wEhzYDYcMC+5/MwEA2Fqhw/nf4skD4gTUpbd9FOPsHX0A2HCGVp2prXU3bXVdU+yKtC5LTqngKnm3VPRy8g+/UpX4n6rSEgAAAABJRU5ErkJggg=="}},70039:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/katex.2b3ecc9.640.png 640w,"+t.p+"assets/ideal-img/katex.91ac937.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/katex.2b3ecc9.640.png",width:640,height:355},{path:t.p+"assets/ideal-img/katex.91ac937.1030.png",width:1030,height:571}],src:t.p+"assets/ideal-img/katex.2b3ecc9.640.png",toString:function(){return t.p+"assets/ideal-img/katex.2b3ecc9.640.png"},placeholder:void 0,width:640,height:355},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAv0lEQVR4nAXB3wrBUBwA4PPAaiHSduOGG4UiV0rIC3gCNwqToraz5d8K46zNzraznbMxP9+HqqrV3eiDldFfmp252Z4arQluTLA83UnjA1pfbJFxQv2n51LOaMbiXPgiiri/wARplgP5N04S50VCSlkY8ThJRQYAe40gwyIAOWPMth9vzw0CGoZBygUA3FYYna4kB6Asvr8c4r1dGkQiFZ/vD8BfbBEeqfpwZva6elPW6mVNKeKadKxJZ6VkFyp/r/+XglW08JQAAAAASUVORK5CYII="}},63379:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/prettier.0987194.640.png 640w,"+t.p+"assets/ideal-img/prettier.ac62bde.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/prettier.0987194.640.png",width:640,height:355},{path:t.p+"assets/ideal-img/prettier.ac62bde.1030.png",width:1030,height:571}],src:t.p+"assets/ideal-img/prettier.0987194.640.png",toString:function(){return t.p+"assets/ideal-img/prettier.0987194.640.png"},placeholder:void 0,width:640,height:355},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAvklEQVR4nDXCzwvBUBwA8PcHO6yWQktIK0kcnJRc5OIosZ1wkXKRNjYchmbzY794tnnv7SsHnz6IGy6rfbnWkyqdkViXxJJULspCYcyXB6naDM23Bvac4+mk69rFNv2n6z9dx7uzOJiuTaQYNwCGo4gwBn+MJQCwUm2kGVegJMD4FYaUEEbp74cAwHm+QfrBihnx8Nt6uO4Le/gdhHFEaALgTJZIaS+UVldrNlQxqxbTmzy/zXG7DLcXeDOV/gIPyZWv09LiSwAAAABJRU5ErkJggg=="}},46925:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/react-native.e8025ec.640.png 640w,"+t.p+"assets/ideal-img/react-native.8cebf9a.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/react-native.e8025ec.640.png",width:640,height:355},{path:t.p+"assets/ideal-img/react-native.8cebf9a.1030.png",width:1030,height:571}],src:t.p+"assets/ideal-img/react-native.e8025ec.640.png",toString:function(){return t.p+"assets/ideal-img/react-native.e8025ec.640.png"},placeholder:void 0,width:640,height:355},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxUlEQVR4nAG6AEX/AGisw32brIaZrYCSqn2EroB1rX52r5eYzoGMumSBtwC8ztfm4uHZ2dnLy8rP0c/i49/q6+f4+fX/+/S7zN8Az9zl+/n38vP04uTm6enq7O3u7Ovt9vb3////0NXpANDY4vXz8vHx8efm5+zr6vPy8vTz8vv4+f///+PG1wDY2+b3+/ni6OnO1djY3d/d4uTb4OPu8fL////uwMwA1p7J1pylzYiFvW5iu2dcu2NZulxUz2tk33505mx04r2PDpDiiAMAAAAASUVORK5CYII="}},80711:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/courier.e9b71f4.640.png 640w,"+t.p+"assets/ideal-img/courier.f8addf0.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/courier.e9b71f4.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/courier.f8addf0.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/courier.e9b71f4.640.png",toString:function(){return t.p+"assets/ideal-img/courier.e9b71f4.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AIyt27SXz7ud17eW2bGD269z3qhv3p5x3ZJw2X1+2gDIyeH52u/XwdTDq8LRu8/SvdLQu9Hm1+j/8//EzewAz9ro+/j+3dzizczR1NPY19XbxMHIxLzH49/hvb7XANTW5/ft+Pr3+//+/v39/f///8S+xUIjSS8XPIZdfwDW1ub39v3y9Pju8fTy9vj///+4uMImFDceEjeUVXkA1pzJ1Jej2JKO2IZ61oB024B1zGpjrUNDrERE11Vl8lGDEKxF5owAAAAASUVORK5CYII="}},83178:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/datagit.98630dd.640.png 640w,"+t.p+"assets/ideal-img/datagit.afeea1f.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/datagit.98630dd.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/datagit.afeea1f.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/datagit.98630dd.640.png",toString:function(){return t.p+"assets/ideal-img/datagit.98630dd.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAtElEQVR4nB3MSwtBQRiH8fm+SkoSycLOykI2ZOUb2CqxILlEJ5dDlFyaFIccnZk5877zF+un3yMah3B+UytpvJOZLsykb0Y90+urzjCstaVYyhcAdg6Ati6M6RFGlhiIB/5d+JcnAGMptsTETKyUUTomsjNPisP1l91fR5rfEQdvzUQAzsO1OJ4DAIqcIheR+1j3+Gj9vwfdidg0x+t6a1ut7MoFv5Txi+ldLrXPJvf5lEykv9L2nupSFk8xAAAAAElFTkSuQmCC"}},85752:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/dyte.b411d0a.640.png 640w,"+t.p+"assets/ideal-img/dyte.9d967ec.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/dyte.b411d0a.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/dyte.9d967ec.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/dyte.b411d0a.640.png",toString:function(){return t.p+"assets/ideal-img/dyte.b411d0a.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAvElEQVR4nCXJPQ/BQBgA4Pu9FqSDIBKjicFmEIPERmwkWCQkREvQpr4SJK7otb1DtXp3r4hnfVBhZrfmZHpg6uGpLkJt+BkP/H6PNjqs2LyhWmfZ7por82RZl3foCxBSSi4iABgaDlJ3FucCM/9IGKYv2/+QgLNAAIC2xEjfYwBJXM/1vIj/CcF/fR7paLO3JIBD6eVuXx2XsAd9B2H0e2cwRUZ1olfqZrlkFrLrvGLklE06sUvFt5kkjilfulmaxNksu3AAAAAASUVORK5CYII="}},37202:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/hasura.e4f3ebd.640.png 640w,"+t.p+"assets/ideal-img/hasura.226d6d3.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/hasura.e4f3ebd.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/hasura.226d6d3.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/hasura.e4f3ebd.640.png",toString:function(){return t.p+"assets/ideal-img/hasura.e4f3ebd.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AFqhu2SFmW2FnGR7l2Bpl2Fcl1pXk1dblk1lm1N7tgBGXm0VGyImLjUhKC0cJCgdJykbJSYWHyERHB0sSGIASl1sGSIqJi81KzI4KDA1JCsxJSwyISkvGiAiOUJZAFJgbxwkLCYuNiUtNR8nLiIqMh8mLiQqMhooLk42TABOWWkPHSUbKTMgMkEcLTsjNEEdMD4hMD4XNEFYMUUAtn6soWhzqmZjqFpPplJIqFBHqElCq0lCp0hAxUpUim0yiR9LFnEAAAAASUVORK5CYII="}},18948:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/ionic.7f10b53.640.png 640w,"+t.p+"assets/ideal-img/ionic.cd19b49.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/ionic.7f10b53.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/ionic.cd19b49.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/ionic.7f10b53.640.png",toString:function(){return t.p+"assets/ideal-img/ionic.7f10b53.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AJbY7s3o99Xo+tPk+8DK/MbA+ci/98HB98DM+Ji26gDK3ej//Pzy8vLs6+rn6u74+vn////x8u/w7OXE1uoA0d7p////7u/w4uPm6Ojq7e7z8/T309PW19fWub7UANTd6P/+/vj4+Pj4+fr6/Pr7/fb3+tve5/3//tCzxADZ3en8///0+Pn1+vv2+/v2+/vz+fvO2ef3///crLoA1ZzJ1Zqj2ZSP2ol814F12H1z2Hhv1HFq23lw42ZvKQ2aZPs/3GIAAAAASUVORK5CYII="}},89532:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/outerbounds.7fa8be7.640.png 640w,"+t.p+"assets/ideal-img/outerbounds.17abaf6.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/outerbounds.7fa8be7.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/outerbounds.17abaf6.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/outerbounds.7fa8be7.640.png",toString:function(){return t.p+"assets/ideal-img/outerbounds.7fa8be7.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAwklEQVR4nAXBPWvCQBgA4Pu7UhQsUh2Kk2sXF8Ghkz/BqdqCIBkUbf1Ag5GKaFsjyZ2X+3ovd+bt85BuxD9jszip6T6bzPVsBMFQfLzzt/Gt0/8jy3OCWFCasvSaZdR7i17fnUSEIIzJ4vvi81xIBZAbcNY6kMIIgd5MZ0eyin6cBSU1ZTJOtFRWcXZLWYH5cfRFosO1QJQGuJBCG3COZYIybhGTQUDC18mm2wvbL5vW07pZ3T5Xw3p5V3vYNSq/pcd/0kecLyndd98AAAAASUVORK5CYII="}},71935:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/quickwit.aae4257.640.png 640w,"+t.p+"assets/ideal-img/quickwit.e851c05.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/quickwit.aae4257.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/quickwit.e851c05.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/quickwit.aae4257.640.png",toString:function(){return t.p+"assets/ideal-img/quickwit.aae4257.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AFyguGaElrfL3djp/8zP+MvA98e99b7C97yt3pmd1QBLYG0jIii6u77x7+3s7On+//z+/fr8/vz/9/PHy+EAVWRzKCszvb/C6uvr4ODi7+7w8vHz8vL0////ztToAFxmdSkrM7/Bw/Ty8ujo6Ors6/T09P38/P///+PF1QBXXW0bIyu4vcDk7OzZ3+Dc4eLn7e72+fr9///uvssAuYCtpGl0zYeD2Ip70n1x13xy13du2XVs3Hpx52tzWcaFkyvPIw8AAAAASUVORK5CYII="}},20075:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/react-native.9ad7a23.640.png 640w,"+t.p+"assets/ideal-img/react-native.02f5343.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/react-native.9ad7a23.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/react-native.02f5343.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/react-native.9ad7a23.640.png",toString:function(){return t.p+"assets/ideal-img/react-native.9ad7a23.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AGaqwXuXqIWWqoKSqoKEroN1rYF2rXVzq32Jt22MwAC/0drp4uDF0NSpvcS+0dTI3N6909nQ3N789+++0eQA0+Dp///90urysdjlttrmuN3rpsXg0+Xw////ztPoANTc5vv5+PTy8ejk5O3p6fn19fz39f36+f///+PG1QDZ3Of09/bv8/Xq7/Hz+Pr0+vv0+vz5/Pz9///uvssA1p3J05eh1Y+L1IN22YN32X9023px3Hhv23pw52pzwqeO97QIzhcAAAAASUVORK5CYII="}},80679:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/figma.e023b25.640.png 640w,"+t.p+"assets/ideal-img/figma.4b79b06.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/figma.e023b25.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/figma.4b79b06.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/figma.e023b25.640.png",toString:function(){return t.p+"assets/ideal-img/figma.e023b25.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AHCswX+aqIearISVrH6Cq4F3rn93r3V1rG54pmeFuQDC09zu6ebp5+fl5OTo6OXu7+rx8ezr7Ojz7+e8zuEA0d7o///++fn65+fo9fX1+Pj5+Pj5/Pz9////0NToANXd5/z6+Pf39+Xk4+Ph5ePi5urp6vv5+f///+PF1QDe4ez////z+Pnf4+rg5O7m6/Hr8fP5/Pz9///uvssA157K1pqk2ZOO1YN50nxz1Xtw2Hdu3Hdv3Hpw52pyiw2SNplStDwAAAAASUVORK5CYII="}},70967:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/gulp.645374a.640.png 640w,"+t.p+"assets/ideal-img/gulp.f298c97.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/gulp.645374a.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/gulp.f298c97.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/gulp.645374a.640.png",toString:function(){return t.p+"assets/ideal-img/gulp.645374a.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AJG2zL6ls8OmuMGiubuLs7x9tLd7s7F+taR/rIeGugDU3eb/8/D97+7/8e/97en45N/76eX57On/6+PBx9oA0N/o8fPz7fDy7fDx8fT1/P7++fT189/i////ztLmANHY4u/r6vDu7+/t7fXz8//+/vrt7vXY2v///+PE1QDg4+7////9/v7+///8/v729/j3+/v2+fr4///ru8gA153J1pqj25SQ2ol82IF12X5z2npw3Hdu3Hpw52py1S6WZvfndWMAAAAASUVORK5CYII="}},52306:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/iota.95754da.640.png 640w,"+t.p+"assets/ideal-img/iota.117672c.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/iota.95754da.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/iota.117672c.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/iota.95754da.640.png",toString:function(){return t.p+"assets/ideal-img/iota.95754da.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AFOYtVZ2j111kl1zlFpilVtVl09LjkhLjEJSi05uqgA0TWYSGC8lLkQTGzELFy0IFCknOEsoOk4FDSAmQmUAO1BoGyU7NURYHTJIEh83DBQsZJGpbJeuBQ8lSUZpAEBPZwYRJw8qPRVDUwwWLR4sQUpvkUhoihAhNFQxUQA7Rl8ABx0DESgADSUCEigNHjQRJkIVJ0MAGCxJITwAs3uqnWNypmNjpFZOpVJKo0xFoUI8pEE8oUJAxEhVk18yaV+3uG0AAAAASUVORK5CYII="}},58889:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/lacework.dfc8aa5.640.png 640w,"+t.p+"assets/ideal-img/lacework.33303f9.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/lacework.dfc8aa5.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/lacework.33303f9.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/lacework.dfc8aa5.640.png",toString:function(){return t.p+"assets/ideal-img/lacework.dfc8aa5.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AIzU7rnd78Te8cHa8b7I87+69ri19ayx8qCy7oao5wCd1eWz3eO94OTI5eXM6/K43/+bw/6Bqfxji/xTgOoAt93q1/b53PX65fr83/T7zuT8vdT8rMT6nrj/hpzmAN3k7vTw8PLw8Pv6+vHv8P/+/Pn29fXw7P///uTH1gDe4ezx9/bx9vj2+/zw9vj3/f7x9/nq7/Pz///pu8kA153J0JWf1pCN2IZ60ntv1ntw13dt1G9n13Vr52pzffeTuLcnN78AAAAASUVORK5CYII="}},48215:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/react-navigation.1b40364.640.png 640w,"+t.p+"assets/ideal-img/react-navigation.a6b28c6.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/react-navigation.1b40364.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/react-navigation.a6b28c6.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/react-navigation.1b40364.640.png",toString:function(){return t.p+"assets/ideal-img/react-navigation.1b40364.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AJna8c3n9tLl99Hh+c3Q+czC+cjA+L+/9bfC8JWz6QDN3u728Pjw7/j29Pz19fv09fr29/zz8/n69vjC1O4Aydfr3dzu2Nrp19fkzc7gzs/g29znxMXitbbevsTiAMzU6c/O7NHR5+Xk7c/O3aWkt+bl7bOy2Kyx29W30wDKzujQ1fHR1vHb4PXZ3/LT1+za4PXP1O/R4Pnaq8gA0pjHz5Oi1I6P1YR71H901Xtz1HNv1XFu1HNv4mVyADiS2eC63VAAAAAASUVORK5CYII="}},18911:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/sap-cloud.f57d7fa.640.png 640w,"+t.p+"assets/ideal-img/sap-cloud.312bf29.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/sap-cloud.f57d7fa.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/sap-cloud.312bf29.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/sap-cloud.f57d7fa.640.png",toString:function(){return t.p+"assets/ideal-img/sap-cloud.f57d7fa.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AJjT3Mzc1NLa1tDW2M7F186318i12MG217q50Zas1ADUrU3/pgD8pwv+rBD/uC//uTD/rxH9rQ3/rQDHokwA2bRi/7Ie/bkx/7Yq9rxT9rtS/7Yt/bUx/7QezqJbANzk7P///8XHyN7g4f//+f///dLPyNzZz////+PF1ADf4+7////N2NzW5Ob7///5/v/U3dTV2sr6///uvssA153K0JWe15CK14R2035y1Hlu1HRs1nJr13Vr52pyn7CEdE5qo0kAAAAASUVORK5CYII="}},53149:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/snapchat.5f28663.640.png 640w,"+t.p+"assets/ideal-img/snapchat.39e00a7.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/snapchat.5f28663.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/snapchat.39e00a7.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/snapchat.5f28663.640.png",toString:function(){return t.p+"assets/ideal-img/snapchat.5f28663.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AHGztIijj5GjlYydlIqNkYqAk4Z9lYCAlnJ9iGiGpQDQ2Er96gDz5wP26QDv5RHw5xD47QD26wP/7wDAykgAr7dRwbcEvrcSwLYLvLMWurQWv7gQv7cQxLsFpqZLAD9IY19YEVtVGxUiNy0oMDQ0LTA+PxwZIhkeI1E0SgBITFs2OB44OiggLC8mLSovLSwoLSskKSwbKytaLDkAuH2ppGl3q2ZlrlxPqlRJqE9Fq0pDsk1ErkxDx0pT21lMrI2uNt0AAAAASUVORK5CYII="}},58559:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/solana.8bcac78.640.png 640w,"+t.p+"assets/ideal-img/solana.e7c1e4f.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/solana.8bcac78.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/solana.e7c1e4f.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/solana.8bcac78.640.png",toString:function(){return t.p+"assets/ideal-img/solana.8bcac78.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AJfa783n9dXo+c/g9szP98zB98i/98C+9LfC7pa06QDS5e3+/Pj7+/r8/Pr2+vX7/vr8/fr2+/b///vH2e4A1eLs9Pb08fT09PX26/Dw9vb38vL06/Dx/f38zNHlAN3l7v////z+/v7+//3+/v////7//v39/f///+PG1wCcoKuWmZiVmZqWm5yXm5yVmZqWm5yWmZuRnp2qfIgAsXejmF1noFlUolBDnkk8nUM4oUA3oj41njwywENMFZ6NFBzee74AAAAASUVORK5CYII="}},70546:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/stackblitz.3a585ac.640.png 640w,"+t.p+"assets/ideal-img/stackblitz.786829d.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/stackblitz.3a585ac.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/stackblitz.786829d.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/stackblitz.3a585ac.640.png",toString:function(){return t.p+"assets/ideal-img/stackblitz.3a585ac.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AGmswn6ZqIibrISUq4CDrH90qntyqXNzqGl1omaEuADK2+Tx6+ns6unv7evr6+j4+fT5+vXz8/D//fW+z+IA2ebv/v37+Pr79v7/8vX3ysrMv8DDur3B0tbXzdLmAN3m7////fj5+ff//9bv9SEmKwUIDgYNFR0sM9W5yQDLz9nd4uDZ3d7a4ePE1txxen5kbHBka29oeXnRpLEAv4azsHR/uHJuuGdbuGFUwWdbxGNaxmFZw2JY0FRd0wl8G5D7uNgAAAAASUVORK5CYII="}},91765:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/supabase.e96fd5f.640.png 640w,"+t.p+"assets/ideal-img/supabase.f37ca60.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/supabase.e96fd5f.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/supabase.f37ca60.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/supabase.e96fd5f.640.png",toString:function(){return t.p+"assets/ideal-img/supabase.e96fd5f.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AFibsGF8iWx/kGd4jmFljWFWjFxUjFhYjU5ZhVRypgBGWGAXEg4jIiEnJiQcHBgZGhUaGhUcHRkZFQ0yRFcAUV5nHx0cKiorLS0tKSkqJyYoKSgpKCgqHx4cPkNXAFdfaB8dGywsLDIxMS0rKyknJzEvLzAuLyMmI1Y4SABVWWMTFxUiJicnLC0hJicdIiMlKywkKCkTISBbLTkAuX+so2dxqmVgqllMp1FFp01Cqkk/rEc+qEY9xkpSZqAv5L+d0r8AAAAASUVORK5CYII="}},83422:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/tauri.7d284be.640.png 640w,"+t.p+"assets/ideal-img/tauri.4852075.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/tauri.7d284be.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/tauri.4852075.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/tauri.7d284be.640.png",toString:function(){return t.p+"assets/ideal-img/tauri.7d284be.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AFucsWV/jXCCk2h4kGBljmFXjl9Yk1tbkVBbiFV0qgBFWWMTEhIYGxwuLyQ4ODM0NzMuKhoxNjczNDI5SFcAQ1lmSkM2UUxELTk4S0pKR0hLPzcnQEpYPUpbR0dSAEhWY0ZEOE1HPh4fJTc4PDQ0NyIkKSomIyYmG1w9SwBNUl0PHB4YIicaHyEwNjg0Oz0YHiAkKCcaJyFbLTkAtXypqGt0rWZirVxPpVBDqE1CrExCrUlAqEc+xUlStsQ1Jd2lGVkAAAAASUVORK5CYII="}},72954:e=>{"use strict";e.exports=JSON.parse('{"permalink":"/blog/2022/08/01/announcing-docusaurus-2.0","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2022/08-01-announcing-docusaurus-2.0/index.mdx","source":"@site/blog/2022/08-01-announcing-docusaurus-2.0/index.mdx","title":"Announcing Docusaurus 2.0","description":"Today we are extremely happy to finally announce Docusaurus 2.0! \u{1F973}\uFE0F","date":"2022-08-01T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":12.075,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"},{"name":"Joshua Chen","title":"Working hard on Docusaurus","url":"https://joshcena.com/","email":"sidachen2003@gmail.com","page":{"permalink":"/blog/authors/josh-cena"},"imageURL":"https://github.com/josh-cena.png","key":"Josh-Cena"},{"name":"Yangshun Tay","title":"Front End Engineer at Meta","url":"https://github.com/yangshun","page":{"permalink":"/blog/authors/yangshun"},"socials":{"x":"https://x.com/yangshunz","github":"https://github.com/yangshun"},"imageURL":"https://github.com/yangshun.png","key":"yangshun"},{"name":"Alexey Pyltsyn","title":"Open-source enthusiast","url":"https://github.com/lex111","email":"lex@php.net","page":{"permalink":"/blog/authors/lex-111"},"imageURL":"https://github.com/lex111.png","key":"lex111"},{"name":"Paul O\u2019Shannessy","title":"Engineering Manager at Meta","url":"https://x.com/zpao","page":{"permalink":"/blog/authors/zpao"},"socials":{"x":"https://x.com/zpao","github":"https://github.com/zpao"},"imageURL":"https://github.com/zpao.png","key":"zpao"},{"name":"Joel Marcey","title":"Co-creator of Docusaurus 1","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Announcing Docusaurus 2.0","authors":["slorber","Josh-Cena","yangshun","lex111","zpao",{"key":"JMarcey","title":"Co-creator of Docusaurus 1"}],"tags":["release"],"image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 2.1","permalink":"/blog/2022/09/01/docusaurus-2.1"},"nextItem":{"title":"Docusaurus 2021 Recap","permalink":"/blog/2022/01/24/docusaurus-2021-recap"}}')}}]); \ No newline at end of file +(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[73589],{82473:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/social-card-736cfe55fc7bba07204176852d67c0d5.png"},8941:(e,s,t)=>{"use strict";t.d(s,{A:()=>c});var i=t(62540);t(63696);var a=t(9347),n=t(81912);function r(e){for(var s=1;s<arguments.length;s++){var t=null!=arguments[s]?arguments[s]:{},i=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.forEach(function(s){var i;i=t[s],s in e?Object.defineProperty(e,s,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[s]=i})}return e}function o(e,s){return s=null!=s?s:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):(function(e,s){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}),e}function l(e,s){switch(e){case"noicon":case"loaded":return null;case"loading":return(0,n.T)({id:"theme.IdealImageMessage.loading",message:"Loading...",description:"When the full-scale image is loading"});case"load":{let{pickedSrc:e}=s,{size:t}=e,i=t?` (${function(e){let s=["B","KB","MB","GB","TB"];if(0===e)return"n/a";let t=Math.floor(Math.log(e)/Math.log(1024));return 0===t?`${e} ${s[t]}`:`${(e/1024**t).toFixed(1)} ${s[t]}`}(t)})`:"";return(0,n.T)({id:"theme.IdealImageMessage.load",message:"Click to load{sizeMessage}",description:"To prompt users to load the full image. sizeMessage is a parenthesized size figure."},{sizeMessage:i})}case"offline":return(0,n.T)({id:"theme.IdealImageMessage.offline",message:"Your browser is offline. Image not loaded",description:"When the user is viewing an offline document"});case"error":{let{loadInfo:e}=s;if(404===e)return(0,n.T)({id:"theme.IdealImageMessage.404error",message:"404. Image not found",description:"When the image is not found"});return(0,n.T)({id:"theme.IdealImageMessage.error",message:"Error. Click to reload",description:"When the image fails to load for unknown error"})}default:throw Error(`Wrong icon: ${e}`)}}function c(e){var s,t;let{img:n}=e,c=function(e,s){if(null==e)return{};var t,i,a=function(e,s){if(null==e)return{};var t,i,a={},n=Object.keys(e);for(i=0;i<n.length;i++)t=n[i],s.indexOf(t)>=0||(a[t]=e[t]);return a}(e,s);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i<n.length;i++)t=n[i],!(s.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}(e,["img"]);return"string"==typeof n||"default"in n?(0,i.jsx)("img",r({src:"string"==typeof n?n:n.default},c)):(0,i.jsx)(a.A,o(r({},c),{height:null!==(s=n.src.height)&&void 0!==s?s:100,width:null!==(t=n.src.width)&&void 0!==t?t:100,placeholder:{lqip:n.preSrc},src:n.src.src,srcSet:n.src.images.map(e=>o(r({},e),{src:e.path})),getMessage:l}))}},54802:(e,s,t)=>{"use strict";t.d(s,{B7:()=>d,Gr:()=>h,Gs:()=>u});var i=t(62540);t(63696);var a=t(30133),n=t(36372),r=t(8941);let o="navButton_qSul";function l({index:e,site:s}){return(0,i.jsxs)(a.q7,{index:e,className:"siteSlide_AwQk",children:[(0,i.jsx)(r.A,{img:s.image,alt:s.name,loading:0===e?"eager":"lazy"}),(0,i.jsxs)(n.A,{to:s.url,className:"siteLink_IglZ",target:"_blank",children:["\u{1F517} ",s.name]})]})}function c({sites:e,aspectRatio:s}){return(0,i.jsxs)(a.gi,{naturalSlideWidth:1,naturalSlideHeight:1/s,totalSlides:e.length,infinite:!0,className:"carousel_raHC",children:[(0,i.jsx)(a.Ap,{children:e.map((e,s)=>(0,i.jsx)(l,{index:s,site:e},s))}),(0,i.jsx)(a.CC,{className:o,style:{right:-20},children:">"}),(0,i.jsx)(a._X,{className:o,style:{left:-20},children:"<"}),(0,i.jsx)(a.Jj,{className:"dotGroup_n_95"})]})}function d(){return(0,i.jsx)(c,{aspectRatio:1072/584,sites:[{name:"Prettier",image:t(63379),url:"https://prettier.io/"},{name:"Babel",image:t(81448),url:"https://babeljs.io/"},{name:"React-Native",image:t(46925),url:"https://archive.reactnative.dev/"},{name:"Katex",image:t(70039),url:"https://katex.org/docs/"},{name:"Docusaurus",image:t(25908),url:"https://v1.docusaurus.io/"}]})}function h(){return(0,i.jsx)(c,{aspectRatio:2148/1194,sites:[{name:"Tauri",image:t(83422),url:"https://tauri.app/"},{name:"Figma",image:t(80679),url:"https://www.figma.com/plugin-docs/"},{name:"Snapchat",image:t(53149),url:"https://docs.snap.com/"},{name:"Iota",image:t(52306),url:"https://wiki.iota.org/"},{name:"SAP Cloud",image:t(18911),url:"https://sap.github.io/cloud-sdk/"},{name:"Supabase",image:t(91765),url:"https://supabase.com/docs"},{name:"StackBlitz",image:t(70546),url:"https://developer.stackblitz.com/"},{name:"Lacework",image:t(58889),url:"https://docs.lacework.com/"},{name:"React-Navigation",image:t(48215),url:"https://reactnavigation.org/"},{name:"Solana",image:t(58559),url:"https://docs.solana.com/"},{name:"Gulp",image:t(70967),url:"https://gulpjs.com/"}]})}function u(){return(0,i.jsx)(c,{aspectRatio:2148/1194,sites:[{name:"Ionic",image:t(18948),url:"https://ionicframework.com/docs/"},{name:"Outerbounds",image:t(89532),url:"https://outerbounds.com/docs/"},{name:"Courier",image:t(80711),url:"https://www.courier.com/docs/"},{name:"Quickwit",image:t(71935),url:"https://quickwit.io/docs/"},{name:"Dyte",image:t(85752),url:"https://docs.dyte.io/"},{name:"React-Native",image:t(20075),url:"https://reactnative.dev/"},{name:"Hasura",image:t(37202),url:"https://hasura.io/docs/"},{name:"Datagit",image:t(83178),url:"https://www.datagit.ir/"}]})}},70361:(e,s,t)=>{"use strict";t.d(s,{A:()=>o});var i=t(62540);t(63696);var a=t(11750);let n="dot_giz1",r="bar_rrRL";function o({children:e,minHeight:s,url:t="http://localhost:3000",style:o,bodyStyle:l}){var c,d;return(0,i.jsxs)("div",{className:"browserWindow_my1Q",style:(c=function(e){for(var s=1;s<arguments.length;s++){var t=null!=arguments[s]?arguments[s]:{},i=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.forEach(function(s){var i;i=t[s],s in e?Object.defineProperty(e,s,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[s]=i})}return e}({},o),d=d={minHeight:s},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(d)):(function(e,s){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(d)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(d,e))}),c),children:[(0,i.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,i.jsxs)("div",{className:"buttons_uHc7",children:[(0,i.jsx)("span",{className:n,style:{background:"#f25f58"}}),(0,i.jsx)("span",{className:n,style:{background:"#fbbe3c"}}),(0,i.jsx)("span",{className:n,style:{background:"#58cb42"}})]}),(0,i.jsx)("div",{className:(0,a.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:t}),(0,i.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,i.jsxs)("div",{children:[(0,i.jsx)("span",{className:r}),(0,i.jsx)("span",{className:r}),(0,i.jsx)("span",{className:r})]})})]}),(0,i.jsx)("div",{className:"browserWindowBody_Idgs",style:l,children:e})]})}},61979:(e,s,t)=>{"use strict";t.d(s,{A:()=>n});var i=t(62540);t(63696);var a=t(36372);function n({size:e=54}){return(0,i.jsx)(a.A,{to:"https://news.ycombinator.com/item?id=32303052",style:{display:"block",width:e,height:e},children:(0,i.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 48 48",width:e,height:e,children:[(0,i.jsx)("path",{fill:"#FF6D00",d:"M42 42H6V6h36v36z"}),(0,i.jsx)("path",{fill:"#FFF",d:"M8 8v32h32V8H8zm30 30H10V10h28v28z"}),(0,i.jsx)("path",{fill:"#FFF",d:"M23 32h2v-6l5.5-10h-2.1L24 24.1 19.6 16h-2.1L23 26z"})]})})}},91283:(e,s,t)=>{"use strict";t.d(s,{A:()=>r});var i=t(62540);t(63696);var a=t(11750),n=t(36372);function r({className:e,style:s}){return(0,i.jsx)(n.A,{to:"https://www.producthunt.com/posts/docusaurus-2-0?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-docusaurus-2-0",className:(0,a.A)("producthunt-badge-widget",e),style:function(e){for(var s=1;s<arguments.length;s++){var t=null!=arguments[s]?arguments[s]:{},i=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.forEach(function(s){var i;i=t[s],s in e?Object.defineProperty(e,s,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[s]=i})}return e}({display:"block",width:250,height:54},s),children:(0,i.jsx)("img",{className:"producthunt-badge-widget",src:"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=353916&theme=light",alt:"Docusaurus 2.0 - Build optimized websites quickly, focus on your content. | Product Hunt",style:{width:250,height:54,maxWidth:"initial"},width:250,height:54})})}},10291:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/npm-downloads-f9d754a81ff372a5bae83c8751195e2b.png"},64356:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/redocusaurus-5cf08a76be6f85090544417b82986cfb.png"},92909:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/search-848f1f1b9eb0d1b710e1d1dec50fb84a.png"},85915:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/shiki-twoslash-b74271684fa819a0175595409b2f323b.png"},93635:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/slash-plushies-71b7a47477442dfcf890627669aba97d.jpg"},33164:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/social-card-736cfe55fc7bba07204176852d67c0d5.png"},69529:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/star-history-72ae014f60d05445753e9f690e41d347.png"},82716:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAvgAAACgCAIAAAD2Ao8HAAAbm0lEQVR42u3dCVhV553HcbtMp31m2uk807TTaTvtzDx52sk002xNpjZeRBY3UMANRRQXQBQXFFEWAREBt2B2Y6IhNXFp0hhj1GhMYtQY9Rwu62WVXS67F3BFWeZ/uYYgIAIiXO798nwen8v1Luec9z3v++M97zln2Nb6OgAAAIs0jE0AAAAIOgAAAAQdAAAAgg4AAABBBwAAgKADAABA0AEAAAQdAAAAgg4AAABBBwAAgKADAABA0AEAACDoAAAAgg4AAABBBwAAgKADAABA0AEAACDoAAAAEHQAAABBBwAAgKADAABA0AEAACDoAEAXNhrKwiq0q/Vn5N/NtZVsEAAEHQBD25baquCyr+blveWUFqxRZ7cZqc6Zlrk5sjKNTQSAoANgKImvr42oTF1Q+NdJuuiRiXPb55sObFQvv8L32GIACDoAzN366rylJYfcs+Ltkvy6CTedkXUAEHQAmOm0m8DSE7NzXxubsrxX4abDuE5kZTobEwBBB4AZTLupqw4tP++dt2tCelhvM83/bLV7cu+Ezs+7Z25hwwIg6AAYNJFVuoVFf5ucEWubOL9vIzfPnvUcNmzYPz7yL10N6szdZChjIwMg6AAYODE1BQEXP56R/byDdmGfj0y197v1mv99bXSX/7VS/wUbHABBB0C/8S860DlebDSUBelPeeW+Pi41sM+B5vcv2f/gNz96/K3xPX/L7NztlAgAgg6A+xKk/2JpyWF5EFJ2zpQwJO48V3cprCLRJ3+3S3q4jep1/yM3v103Yth3vnW3wZsujU1ZQekAIOgA6LWIylRJM1vqquMMJaYcMzv3tbl5O9tChm2id78cmeowI6fnL16QGRVYfCC+vpbCAkDQAXBvEhqeqzeYHo9OXiZhYnJGzNKSw+1P6u73cNNbvplr95YfKW+obmlp+ez6NUoNAEEHQI9SzrjUQPukhf5FByKrdO1Pbhr0cCO8MyN2lx8qa6hqafeTe/MmBQeAoAPg3uIMJQ/0sFTfzM8If6fsI31DZUtXPzeam/0/OvhcrYHiA0DQAdBt0LlUYibhRszLCN9VdvDijYqWbn/S09N/9+c/b67iruYACDoA7pJvXNLDRycvG528ZNDzzZyMsL+UfVhyo7zLWKPVanNzc9s/Ex0dHffeuxQiAIIOgK61nTE+mPlGF/aW/kDxjbJuBm8CAwPd3d3t7e23bt3a9qSdnV1qRQWFCICgA+Cuc5AnpIUOSr6ZrQtJ0H9QdF3fcq+f+vr6Z599Vh40NjZ6enrGxsbK4+vXrw8fPryxufklyhEAQQfA3QSUHOs+kYw45/nIZtv/Cnxa/PED1/vMN7N0wW/q9xdeL+0y0xgMBkdHx6eeemrevHkSZUxP7tmzJyYmxvS4qanJx8dnxowZzs7O27Ztk2f2X71KIQIg6ADoaEtdtdeFHd1fHefRlxy+/8sfDmv385DDb/582qNvU4yTL2d1P3gTFBS0Y8cOefD222+PGDGivLy8ubl53LhxOTk57V+mqqpWqzU9Tmy4QVECIOgA6GhR4f7uo8ljCeO+/f3vSLj50WM//fWCx/7N/b+/++O/l19//MzP+zCQc7Xpevuwkpyc7OnpOWfOnPz8/Nuni9+48cQTTzQ1NZl+PXPmzJNPPvnUU08FBAR0k42qGhspSgAEHQAdravOHpMS0E06+afHfyax5ldzH2175umPJn3vJz+QJx992aFXQefL2qQ70klV1R/+8IeTJ09+/vnnTz/9dEJCgqScqKiotkNUbQeqrl692v0g0JXGa1EViZsM5RQoAIIOgI5Hr3wL9nYZTZ75eIoEmu/+6HsdbkH1cNhwef4/ljzZ85Rjk+jV0HyzfTpZvnz5u+++a3p87dq1wMBAyT1+fn4Sd+45N/la042Uy9n7Kj5el7/NI32VfLh8xYrSzyhNAAQdAHeIr6/1yH6xy3Tyxw9cJdD8w8P/3Pm/Ht/lNOKcZ69GdG40NbQllTfeeMPW1ralxz/y3vQrue9VHFtfsH2WLnhk4pzOn++Z+wqlCYCgA+AOdxvOEcNPTP/W3337h7//Sb+cTK7UpZtSy82bN+Pi4mpqarpJNg3NN3VXLuyvPB5b+IaXLtS2q2TTwejkZZQmAIIOgDssKNjXTXp4Yo/zM4cm99ddxzscvWr/c7P5VtbVggNVn20o3Dk3Y82oxN7dSXRSimdMwYydtccpUAAEHQB3iKzS+eTvHoArBC7Mis6+WmBKNo3NjTnXig5Wndhc9Ob8jIhRifN6+2ljtLOCc2e8VzG18LpbS4uLOHN5FaUJgKAD4A6bDOUu6eEDdkFkt9RlU1KX22vn9+G9tursRVkeO0vd0y5PutXsYso3bSoaplGaAAg6AO4wN2+n+dy3vEue6TOfL57+pWHK1caO4aaDnZdzQqvO+Vx8K77+EiULgKADoC6w9MQora+5hRuX5Fnr8qcfqZ5a1eDafbhp75UK3zHZC+yzvOYVv7as7CCFC4CgA6Auvu7SspKjgx5uHLWzVubM2Fc+Le/apJ6Hm/ZO1k+RlGPilLOUkgVA0AFQt746zzF5yWDlm6mps7ZfdE+qn3yzybVv+aZNfaOrw9dBZ3S298zCLRQuAIIOYO1m524flIgzIdnzWM2U5maX+8w37S0qnNk2qDMtfz2FC4CgA1i7yMo0N906G3XuQKacGWkzKxpc+zHi3J6PXOneFnRmFG6kcAEQdAAYBelPDVjKGaOdVXrDreP54bfc9tS4NzTfO/1UVY3dt++P8+f/2t39Fx3+K/nqZFPKcciay4gOAIIOAKM1FUm2ib27tk2kOuOEMmV071POaHVWZaprS4Mxl9TcdDtaMyUk32NJwUyv/FkSUF6qmH6odlrncHP9uvMnnwxftephR8eHpk37xfbtjxUUOHR+2c1m1w9Tpi3WzXS5sJpiBUDQAaxcremB14UdvQor49VZlxS3FsWlSHHzVGf26r371anyxvpE18C0GfLryJTZbQebbg/GZHvVNhrHdZqbJ2q1IzdseMTZ+V+dnH4WF/eIqo6UJ7sb77np0qi6XkmcEl28nfIFQNABrNrpwncSqnPkwQbDxfl5uyakhfYwrBxSjGHF5KriGq7O6OEbfRSPpq/fWKW4zkz07JByxLis2XNPu0zz+JWDw0NBQQ8fOzb8+nXnuyWb2trxdzxTcvvDryR57azJbb+yr18qosQBgg4AK1KZurg0fWXbuI5/0YemODJd9ewmrCxVPdpSTps9yrSR6qx73sMhV5nU/l01itvcjFmds874dM+SqnHfxJeGO08jrx9/4MAzixf/p739Q76+v/nmvxpdWrTffHhtsndbuNlmKNWnB1LiAEEHgLXYUZNnCgRfFO6TX1eUfmaKI7Hq9Fuqy4uKe5dhxV6dXdJ60KqzRHXyhG4T0jbFvfO7DKqrd0bHcZ2AYs9bLV/PSja4tCS6NFZMOH16RETEb8eO/amr68+ff/7RjAy7jgM8+o4fXp2y6FVDqaxdcu6L8uubrcNXAAg6ACzfiaJ3TWngljo1oTrbt2CvZJG/KNNMTzYrLlFdHZB6W53WZcoxqVDcfO8yZWea6nlDce3yXXWq2wLdHVnHNXf29dbTr/LTHG6dm2hansMJf5Ksc+vWhK4PYzW5tCR38eFl6Sv2VGibWsOZrDLlDhB0AFiFYl1wWxrQpwe+WFuRnL6qfUS4pbqsUD3ahxUvdeatu6cck5uK6yZleuegc16d3M27Lquui3S3r/XnnD17x95nvLz+3WPKr+pPOd3xSn0Xp5ofOvR/xscVd/3wxq+/ukgXQrkDBB0Alu9Vg77pziNQV5K8OkeEa4qrz9cjNDbq7Iw7Z9h047Ayxb5dylmnTr/nW64orssT3e33jh5/yHnnm4+XFo9pSe/qlSXGU82PHRseFPSwg8ND7u6/SEh4whh0Uu+9VI3qpFcMZZQ+QNABYOEOlR7rYWQxqK4zWrPOCz0IK+1lq5Omtk5PdlI95UN68pZG+fdy61BNs0tL9l1fdnT7nzZseCQxsd2p5jU9XSpZcUofIOgAsHBJF17ueWQpU9z8VI9rimuvgo5x8o3iukL1OKJO7cW7tC4t9S4tBfd6WV5rGGo7hpXe089Pzn2R0gcIOgAsXFn6il5FlqZeRpz7eWNzD1+ZY8w6dXXjv/pY0/MPL09bRukDBB0AluzFuupGdVJLX7OL+Uh7b5TH9F+Wfjam52+RFZfVpw4ABB0AFmtfhWoBKee21F6/RVafOgAQdABYrJOF+ywn6PSe6QKJAAg6ACxTTma0NQed7KxY6gBA0AFgsS6lLLDmoGNI8aUOAAQdAJaqtrHbixRbvEZ10vP1BmoCQNABYIF21ORbc8ox2VGTR00ACDoALNB75WcJOrIRqAkAQQeABfqk5CBBRzYCNQEg6ACwQOfzdhB0zuXtoCYABB0AFigrK46gk5W9gZoAEHQAWKDCjDUEnSJdKDUBIOgAsECl6YEEHX16IDUBIOgAsECVqYsJOlWp/tQEgKADwAIZUnwJOrXJPtQEgKADwHzF11VtMZRuMRRtupS3sTozrjotrkobU3F+fcWZ9eUn1umPR+mPRJZ+GFHyfnjJvjXFb68pTAgtfD2k4NV6dSpB53LiNNkask1ky8j2ka0k20q2mGw32XqyDWVLyvaUrSrbVrawbGfZ2rLNqXgAQQfAXaJJ/SXpLKXX3FCti61U11eclm51belHkSV/Cy/ebQwiBa8F57+4Om9zUG5MYE7EiqzggMzlS3X+S3Te/mmzF6a6+yW7+SaN90m0n69q+uyGMpGgIxuhzxtQtr+UgpSFlIiUi5SOlJGUlJSXlJqUnZSglKOUppSplKyUr5SyMUJVnJZyl9JvTU6lUh/YKQCCDmBuYaV2i0G/qebChurUmMqz0WWfRpZ+GF6yL6wwIaRg26q8+NaMEr48c+XSjMVL0uf7p870S5ks/aJ3ot39pJN+1GT1KUfIRjCHspBaYcxMKZOlnkhtkTojNUfqj9QiqUtSo6ReSe2SOiY1Teqb1Dqpe1IDpR6yMwIEHaBHB4A2XSqMq05bX3EmSn8s8uIH4cXvhBZuX533vHQ2K7LDAjIDluh8jHkl2c1HO8ZMwsp9jeiojOi4yEYY6uUotVHqpDEh6XyklkpdbR1Mel5qr9RhqclSn6VWS92WGs5BNxB02AqwsEGX0o3VWbGVanTZibWlH4UX75HWX/5EDsyNMo616PwWpXr6Jbve5zGgIapenUDQkY1gbeUutV3qvNR8qf/GcaPcKNkjWlPRHtlHZE+R/UX2mtZjagwXgaADDJLnjAMwebGVWmmXIy8eWFO0Kzj/ZflDdnnW6tb44rFA6+St2lhhfOm5aoKO4lJtfUGnFwfUVBvZj2RvMkairNWyf8leJvua7HGteUgr++BzDBGBoAP0nmGzoTCuKnld2ecRF/eHFe1cnfdcYE5EQGbA4vR5C1Om+Ggd6YTun151JujIRqAm3PexM0fZK2XflD1U9lPZW2WflT1X9l/Zi2Vflj2aZg0EHViXLYaSDdWp0eVfGAdjChOC87dK+7g0Y+mitFkLkpwZiRkYhQQdxaWQoDMwI0NJzrJ3yz4ue7rs77LXG4eFyr+QdkBaA5pEEHQwFKNMaVx1WnTZiYiS90MLtwflxi3PXCl/8y1IdvFWbWn6zUGmOp6gIxuBmmAGSchWWgZpH6SVkLZCWgxpN6T1kDZEWhKaUxB0MFinKdVsrMmJqTwbVXoorGjX6vz4FdnhS3ULF6a6W+fc3iHnS3UcQUc2AjXB7GdPO0irIm2LtDDSzkhrI22OtDzS/kgrRFMMgg7u12ZDSWylNkp/dE3R26vy4ldkhSxJn++XNJH2d6j7UBlN0JGNQE0Y0qQtkhZJ2iVpnaSNkpZK2qvNHA4DQQedhmeqN1ZnRpefiih5P6Rg28qcdcYZM6nTGZuxYG+qDgQd2QjUBEs9i15aMGnHpDWTNs14LKz8lLRy0tbR4BN0YOE2XcqPqfgq4uL+kIJXV+ZELtX5+SW70Sxaoc2qHUFHNgI1weoGgZLdpN2T1k/aQGkJpT2UVpGugaCDoTgdWB9XpY3SHwkrTAi6sGFZZoD8fWM+9x/AoAtWRxJ0ZCNQE2C6C4e0kNJOSmspbaa0nNJ+SitKV0LQgbmc4hRbqay9eED+QAnMCV+cPt83iSmWuOepLprr1n1fT1l9b2oCuiVtqbSo0q5K6yptrLS0nAhG0MEDviJwbbn8nbG29KPQwu2BOZFLdD4LtE40RuAMc84tx4CRVlfaXmmBpR2W1ljaZGmZ6Z4IOuj9BOH62o01OdFln64pTDDODtb5LeBcJ/SrI6pVn3glq08dQL+ln6SJrVN/1kmLLe228ex3bhZG0EGHy9LEVaet1R8OLXgtMHvN4jQvznjCg/aKam/NQUdWnzqAB3rml7Tk0p5Lqy5tu7TwXPiHoGNVR6AqYiuViIv7V+e9sDxz5aJU9/lMisSAW2nd85FXstNhoI2U1l7afGn5pf2XXkD6AjpEgo5lMGyozpBEH1Lw6vKsVQuNsYYdHmahXLHSO17JilP6MAfSI0i/YJzsrD8sPQX3QCXoDJXToIrWl58IK3prZe5a//S5HISC2TpqrdN0jjJBB+Z6wEt6Dek7pAeRfkR6E7pUgo6ZDNikth6H2rwsw983idOgMGRsUEdZZ9DZwKUCMWROcXeSnkX6F+llpK9hyIegM0A3TIitTAwv+WtQbuyS9PkM2GBIX03nsvVdTecyV9DBUB7ykX5Heh/pg6Qn4qYWBJ1+mzscU3EuvPidwNwo/7TZ3qotOxsshhXexpyblsOC/laxlV5J+ibpoaSfYnYzQafnYzaXjGM2xXsCcyIXpXp4qzbsTrBUG63v6JWsMuUOC809NtJnSc8l/VfreM8lOnSCzjc21uSsLT24Km/LEp2PN0ejYE1Krencq1LOt4L15J5Ee+nRpF+T3k36OIKO1QWdLYbS6LIToQWvBWStYAYxrNk7ioP1BB1ZWUocVjuvWfo76fWk77POm3YNs5Zhm4sHgnJjFqV6UOkBE3/V5oZ1TEmW1fTnSDTQSvpB6Q2lT7SewR7LDDrx9bVxVclrinevyA7zS3alZgNdOq6OsYagI6tJWQOdSf8ovaT0ldJjWvBduoZZ0FTiqvUVZ0ILXw/IDPDVjqUGA/cUoI60+EEdWcEAbvsA3PMIl3as9J7Sh0pPKv0pQceMzpOKqTwbUrBtqW6hdyKnVAC9dtDSB3UOMpwD9Ho68yjpVaVvlR7WAs7hGjY0D0tpwwoTJHv6aLmgO3C/M3Us+OKBl5mdA9wf6Welt5U+V3reIXp4a8gEnQ3VuvDi3cuzVvsmjafmAf1ot+JoqUFHVo3yBfrvBK7x0gtLXyw9MkGnv04F10fpj6zMWceEYuABDlOrmhzVyfJSjqwU93wAHtxEZumdpY+Wnpqg02txVSmhRTuM02646wIwIEJU2wbLSjmyOiE0IMBA/KVkK/219NrSdxN0ur+xVHmU/uOVOdEM3gCDYq9qUQewZHUoU2AwhnmipTeXPp2g882l/MKKdi3VLWLwBhj0A1hpynjLSDmpyngOWgGDPczjL/27OVyWcHCCTlx1Wkjhdv+0OdQGwHwsVm306pC/AZaswmLOtALM59TOtDnS40u/bxVBJ7ZSCc57YVGqOwUPmKdg1fbKUD7bXBY+mOFhwCxJ7y8ZQJKApQWd+Pra9RWngy5sZPINMCRsVkfdGpopRxZbFp4SBMx/Ko+kAskGA3NhnmEP8uQp7er8ePINMORsVe1uDrVxHVlgWWzKDhhaiUdygqSFIRZ0NtbkhBZu5z7hwJC2RbFrGFInk8sCU2rAkD2q5SHJ4QHNXB7Wfxf3K1lTvHuJzocCAyzDJtXu+lAY15GF3MRYDmARJEVIlpBEYVZBx7BOfzwgK5DzwwHLE6bamvl5WLJ4YTQ+gGWRRCG5QtKFZIzBDDqbLuWFFGzzS3ajSABLHlJWbRKVceaZcmTBFnEmOWDJk3jcJGlI3hjgoGOI0h8LyFzuTfsCWI19iuMN1YwOY8nC7OOGnYC1DPDYSOqQ7NG3AZ5hvRrCCc5/hbOoAOu0Wh1pJpdOlsWQhaFEACs8S0tySG8HeHoUdGKrklbkhDMLB8B2xb5GmTBYEUe+WhaAUgCsfAaPZBJJJv0TdNaVfbY0YzGbFUAbX1WzS3GoHti4I18nX+rL9gfwNcknklL6GHTi66ojSt7zT53JdgTQxue8xu+sxv8rzZIvNctPaf76pcPFs04POuKUnnV697RD0EnNslPG75Vvl2WQJaE4AAjJKpJYJLf0NOg8V1sZVrRzQdJEth1gpcPCijFJSKRYcVKz6jNN6HFNxFFN1MeamMOamEMjOtt+dORXX4yuP9fPAzzygfKx8uFdfqnRYeNSybLJEspyytLKMsuSy/JTiIC1kdwi6UUyTHdBR9LQmuK3iTiA2QpRbcMfxFQ5xThMIkEh5FPN2qN3DTT39OYx208/d7zw5fiG8308P0veKG+XD5GP6tsymAKQrIWsi6yRrNd8cg9gTXFHkkyH0Z1hrffdvBRR8i5XxAHMbSrMWnXUTtXhuDomR3UyXaRYfu23kZvzmoDTmrDjEg40fU8VXYk9rHnj6Mj3j9ud+Nwx9dTYkjNOlV85156bcO3cxEbFRcgD+VWelP+SF8jL5MXyltjD/bwkrYzrKGvqzdEuwFpOznKTVCPZ5nbQWXvxwMKUaWwXYNAtUm1ilVHvKA6nlLFFilPnW4g3Ky4B/XT9qqWnNeuOPIhUYb5kfWWtqWaAlZBsIwknvr52GNsCGPxpMapmp+pQod5jmku+6txf3xhtZSnHRNa6JxtnrTrqA3V0juokcbMbqeq4vaojN6AAzHuq8iyCDmBGYtRRx9UxdXc5c3u/Orq/vogRnXsf7Fdt4lW7T5Wx7U+kb2i9XOE+xTGcfAMMEQQdwBwHeLYodqeVsVfvvOvCWnVUf37LA5ujY2b6YY5OhDpqj+oohbKAW98ABB0A/XYGgWrzsmqvqOMaFBeDMuFBfVE/nXVlLjjrCgBBBxhy85SjFdv7eftmdVQPLyvc5XV0jMe5zC0AHTYuFdfRAUDQAazRMnXkS6r9UXVMvuLUqEw8qI65/8/0Pa/xO3f7ysgBpzWBJzUrT2hWf64J/nRE6PERa45rwj/RRBzTRLZeYHDdx8YgEt1q/WFjLhGmE8hjWx8Led70AnmlvF7eJe+VT5DPkU+Tz5RPls+Xb5Hvkm+8fWXkc8YloYgBEHQAa7RQtTmtjG1uN7knW3HyZssAIOgAsBhbVbt81dl4LwV1QqA6kg0CgKADwOLijmK/SbVjOwAg6AAAABB0AAAACDoAAAAEHQAAAIIOAAAAQQcAAICgAwAACDoAAAAEHQAAAIIOAAAAQQcAAICgAwAAQNABAADW4v8BIMkHbXsCeUgAAAAASUVORK5CYII="},27730:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/slash-introducing-411a16dd05086935b8e9ddae38ae9b45.svg"},29302:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});let i=t.p+"assets/images/slash-up-and-running-1c1f83f3064dcd56be41632c51be62ac.png"},39777:(e,s,t)=>{"use strict";t.r(s),t.d(s,{assets:()=>A,contentTitle:()=>p,default:()=>x,frontMatter:()=>u,metadata:()=>i,toc:()=>g});var i=t(72954),a=t(62540),n=t(43023),r=t(13488),o=t(70361),l=t(91283),c=t(61979),d=t(62380);t(27167),t(35688);var h=t(54802);let u={title:"Announcing Docusaurus 2.0",authors:["slorber","Josh-Cena","yangshun","lex111","zpao",{key:"JMarcey",title:"Co-creator of Docusaurus 1"}],tags:["release"],image:"./img/social-card.png"},p=void 0,A={image:t(82473).A,authorsImageUrls:[void 0,void 0,void 0,void 0,void 0,void 0]},g=[{value:"What is Docusaurus exactly?",id:"what-is-docusaurus-exactly",level:2},{value:"The story behind Docusaurus",id:"the-story-behind-docusaurus",level:2},{value:"Toward Docusaurus 2.0",id:"toward-docusaurus-20",level:2},{value:"Who uses Docusaurus 2.0?",id:"who-uses-docusaurus-20",level:2},{value:"What's New in 2.0?",id:"whats-new-in-20",level:2},{value:"MDX",id:"mdx",level:3},{value:"File system conventions",id:"file-system-conventions",level:3},{value:"Plugins",id:"plugins",level:3},{value:"Theming",id:"theming",level:3},{value:"Other features",id:"other-features",level:3},{value:"Why 2.0 now?",id:"why-20-now",level:2},{value:"What's Next?",id:"whats-next",level:2},{value:"Thank You",id:"thank-you",level:2}];function m(e){let s={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",mdxAdmonitionTitle:"mdxAdmonitionTitle",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,n.R)(),...e.components},{TweetQuote:i}=s;return i||function(e,s){throw Error("Expected "+(s?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("TweetQuote",!0),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(s.p,{children:["Today we are extremely happy to finally ",(0,a.jsx)(s.strong,{children:"announce Docusaurus 2.0"}),"! \u{1F973}\uFE0F"]}),"\n",(0,a.jsxs)(s.p,{children:["At ",(0,a.jsx)(s.a,{href:"https://opensource.fb.com/",children:(0,a.jsx)(s.strong,{children:"Meta Open Source"})}),", we believe Docusaurus will help you build the ",(0,a.jsx)(s.strong,{children:"best documentation websites"})," with ",(0,a.jsx)(s.strong,{children:"minimal effort"}),", letting you ",(0,a.jsx)(s.strong,{children:"focus on what really matters"}),": writing the content."]}),"\n",(0,a.jsxs)(s.p,{children:["After ",(0,a.jsxs)(s.strong,{children:["4 years of work, ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/releases/tag/v2.0.0-alpha.75",children:"75 alphas"})," and ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/releases/tag/v2.0.0-beta.22",children:"22 betas"})]}),", the next generation of Docusaurus is ",(0,a.jsx)(s.strong,{children:"ready for prime time"}),". From now on, we now plan to ",(0,a.jsxs)(s.strong,{children:["respect ",(0,a.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"})]})," and will release ",(0,a.jsx)(s.strong,{children:"major versions more frequently"}),"."]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"social-card image",src:t(33164).A+"",width:"1200",height:"600"})}),"\n","\n",(0,a.jsxs)(s.admonition,{type:"info",children:[(0,a.jsxs)(s.mdxAdmonitionTitle,{children:["We are on ",(0,a.jsx)(s.a,{href:"https://www.producthunt.com/posts/docusaurus-2-0",children:"ProductHunt"})," and ",(0,a.jsx)(s.a,{href:"https://news.ycombinator.com/item?id=32303052",children:"Hacker News"}),"!"]}),(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.strong,{children:"Now"})," is the best time to show your love for Docusaurus!"]}),(0,a.jsxs)("div",{style:{display:"flex"},children:[(0,a.jsx)(l.A,{}),(0,a.jsx)(c.A,{})]})]}),"\n",(0,a.jsx)(s.admonition,{type:"tip",children:(0,a.jsxs)(s.p,{children:["In a hurry? Check ",(0,a.jsx)(s.a,{href:"#whats-new-in-20",children:"what's new in Docusaurus 2.0"}),"!"]})}),"\n",(0,a.jsx)(s.h2,{id:"what-is-docusaurus-exactly",children:"What is Docusaurus exactly?"}),"\n",(0,a.jsxs)(s.p,{children:["Docusaurus is a ",(0,a.jsx)(s.strong,{children:"static site generator"})," that helps you ship ",(0,a.jsx)(s.strong,{children:"beautiful documentation websites"})," in ",(0,a.jsx)(s.strong,{children:"no time"}),"."]}),"\n",(0,a.jsxs)(s.p,{children:["Focus on your content: just write ",(0,a.jsx)(s.strong,{children:"Markdown files"}),". Docusaurus will generate an optimized ",(0,a.jsx)(s.strong,{children:"website"})," for you that's easy to ",(0,a.jsx)(s.strong,{children:"host anywhere"}),"."]}),"\n",(0,a.jsxs)(s.p,{children:["Docusaurus is ",(0,a.jsx)(s.strong,{children:"full-featured"})," and very ",(0,a.jsx)(s.strong,{children:"flexible"}),": we ship with well-designed docs and blog layout, as well as out-of-the-box versioning, search, and internationalization functionalities, with a call to accessibility and search engine optimizations. Its flexible theming system permits to ",(0,a.jsx)(s.strong,{children:"adapt the UI to match your branding"})," so that it integrates nicely with your main website or documentation portal. Its usage of ",(0,a.jsx)(s.strong,{children:"React"})," enables a ",(0,a.jsx)(s.strong,{children:"modern client-side navigation"}),", and the ability to build an ",(0,a.jsx)(s.strong,{children:"interactive documentation"}),"."]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"Introducing Slash",src:t(27730).A+"",width:"760",height:"160"})}),"\n",(0,a.jsxs)(s.p,{children:["The Docusaurus philosophy is akin to the ",(0,a.jsx)(s.strong,{children:"Pareto principle"}),": you can get ",(0,a.jsx)(s.strong,{children:"80% of the results"})," for ",(0,a.jsx)(s.strong,{children:"20% of the effort"}),". This enables you to compete with top-notch documentation sites with ",(0,a.jsx)(s.strong,{children:"minimal effort"}),"."]}),"\n",(0,a.jsx)(i,{url:"https://x.com/rachelnabors/status/1452697991039660038",handle:"rachelnabors",name:"Rachel Nabors",job:"Former ReactJS & React-Native docs manager",children:(0,a.jsx)(s.p,{children:"Unless you're spinning up a documentation team with engineering resources, you\nprobably want Docusaurus!"})}),"\n",(0,a.jsxs)(s.p,{children:["Docusaurus aims to be the ",(0,a.jsx)(s.strong,{children:"best documentation tool"}),", but you can use it for ",(0,a.jsx)(s.strong,{children:"other use-cases"})," as well: a blog, a knowledge base, a developer portfolio, a second brain, or even to scaffold landing pages!"]}),"\n",(0,a.jsx)(i,{url:"https://x.com/johnny_reilly/status/1551861926334025728",handle:"johnny_reilly",name:"Johnny Reilly",job:"Group Principal Engineer at Investec",children:(0,a.jsx)(s.p,{children:"Using Docusaurus for my tech blog has been a fantastic choice. It looks\ntremendous out-of-the-box and the awesome DX means I write way more"})}),"\n",(0,a.jsx)(s.admonition,{type:"tip",children:(0,a.jsxs)(s.p,{children:["Try Docusaurus now with our ",(0,a.jsx)(s.a,{href:"/docs/playground",children:"online playgrounds"})," and ",(0,a.jsx)(s.a,{href:"https://tutorial.docusaurus.io/",children:"5 minutes tutorial"})," \u23F1\uFE0F"]})}),"\n",(0,a.jsx)(s.h2,{id:"the-story-behind-docusaurus",children:"The story behind Docusaurus"}),"\n",(0,a.jsxs)(s.p,{children:["Docusaurus was created at ",(0,a.jsx)(s.strong,{children:"Facebook Open Source"})," in ",(0,a.jsx)(s.strong,{children:"2017"})," (now ",(0,a.jsx)(s.a,{href:"https://opensource.fb.com/",children:"Meta Open Source"}),"). We had a lot of internal and open source projects to document. It's ",(0,a.jsx)(s.strong,{children:"complicated enough to write good documentation"}),", let alone to create the HTML, CSS, and JavaScript for a good-looking website. We wanted project leaders to be able to ",(0,a.jsx)(s.strong,{children:"focus on the content"}),", and ",(0,a.jsx)(s.strong,{children:"Markdown"})," is great for that."]}),"\n",(0,a.jsxs)(s.p,{children:["At that time, our solution was to ",(0,a.jsx)(s.strong,{children:"copy/paste a Jekyll template"})," over and over again. This naturally became ",(0,a.jsx)(s.strong,{children:"hard to maintain"}),", so we created a tool to ",(0,a.jsx)(s.strong,{children:"solve our own pain"})," once for all."]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsxs)(s.strong,{children:[(0,a.jsx)(s.a,{href:"/blog/2017/12/14/introducing-docusaurus",children:"Docusaurus v1 was born"}),"!"]})}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"Birth of Slash",src:t(82716).A+"",width:"760",height:"160"})}),"\n",(0,a.jsxs)(s.p,{children:["It quickly built momentum at Facebook and in the frontend ecosystem, adopted by many popular projects such as ",(0,a.jsx)(s.a,{href:"https://prettier.io/",children:"Prettier"}),", ",(0,a.jsx)(s.a,{href:"https://babeljs.io/",children:"Babel"}),", ",(0,a.jsx)(s.a,{href:"https://archive.reactnative.dev/",children:"React-Native"}),", ",(0,a.jsx)(s.a,{href:"https://katex.org/docs/",children:"KaTeX"}),", and of course ",(0,a.jsx)(s.a,{href:"http://v1.docusaurus.io/",children:"Docusaurus v1"})," itself."]}),"\n",(0,a.jsx)(h.B7,{}),"\n",(0,a.jsx)("br",{}),"\n",(0,a.jsx)(s.admonition,{type:"note",children:(0,a.jsx)(s.p,{children:"Notice that the sample sites above use different colors, but still look quite the same."})}),"\n",(0,a.jsx)(s.h2,{id:"toward-docusaurus-20",children:"Toward Docusaurus 2.0"}),"\n",(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.a,{href:"http://v1.docusaurus.io/",children:(0,a.jsx)(s.strong,{children:"Docusaurus v1"})})," has been very successful, but we started to ",(0,a.jsx)(s.strong,{children:"question some architectural choices"}),":"]}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["React was only used as a ",(0,a.jsx)(s.strong,{children:"server-side templating language"}),", and not used on the client"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.strong,{children:"Theming system was pretty limited"}),", and apart from changing a few colors with CSS, it was difficult to do more advanced customizations"]}),"\n",(0,a.jsxs)(s.li,{children:["The ",(0,a.jsx)(s.strong,{children:"docs versioning system was confusing"}),", since it was based on a diff algorithm"]}),"\n",(0,a.jsxs)(s.li,{children:["The codebase was ",(0,a.jsx)(s.strong,{children:"monolithic"}),", neither well-tested nor easy to extend"]}),"\n"]}),"\n",(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.a,{href:"https://docusaurus.io/",children:(0,a.jsx)(s.strong,{children:"Docusaurus v2"})})," was ",(0,a.jsx)(s.strong,{children:"rebuilt"})," from the ground up with a new ",(0,a.jsx)(s.strong,{children:"modular architecture"}),":"]}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["React is now also used on the client, enabling a ",(0,a.jsx)(s.strong,{children:"modern Single Page Application navigation"})]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.strong,{children:"Plugins"})," empower the community to contribute useful features as third-party packages"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.strong,{children:"Theming"})," is more ",(0,a.jsx)(s.strong,{children:"flexible"})," than ever"]}),"\n",(0,a.jsx)(s.li,{children:"Docs versioning is now based on snapshot copies, much easier to understand"}),"\n",(0,a.jsxs)(s.li,{children:["We kept ",(0,a.jsx)(s.strong,{children:"everything good from v1"}),": docs, blog, pages, versioning, i18n..."]}),"\n",(0,a.jsxs)(s.li,{children:["We implemented ",(0,a.jsx)(s.strong,{children:"several new features"})]}),"\n"]}),"\n",(0,a.jsxs)(s.p,{children:["More details in the ",(0,a.jsx)(s.a,{href:"/blog/2018/09/11/Towards-Docusaurus-2",children:"Docusaurus 2 project announcement"})," and ",(0,a.jsx)(s.a,{href:"https://docusaurus.io/docs/migration",children:"v1 to v2 migration guide"})]}),"\n",(0,a.jsx)(s.h2,{id:"who-uses-docusaurus-20",children:"Who uses Docusaurus 2.0?"}),"\n",(0,a.jsxs)(s.p,{children:["Despite being in pre-release, it didn't take long for ",(0,a.jsx)(s.strong,{children:"Docusaurus v2 to outgrow Docusaurus v1"})," in terms of NPM downloads:"]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.a,{href:"https://npmtrends.com/docusaurus-vs-@docusaurus/core",children:(0,a.jsx)(s.img,{alt:"NPM downloads: v2 outgrows v1",src:t(10291).A+"",width:"1200",height:"645"})})}),"\n",(0,a.jsx)(s.p,{children:"Our GitHub star trend is very positive, competing with major frameworks:"}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.a,{href:"https://star-history.com/#facebook/docusaurus&vercel/next.js&gatsbyjs/gatsby&hexojs/hexo&nuxt/nuxt.js&vuejs/vuepress&11ty/eleventy&gohugoio/hugo&remix-run/remix&mkdocs/mkdocs&Timeline",children:(0,a.jsx)(s.img,{alt:"GitHub stars: Docusaurus is well-positioned",src:t(69529).A+"",width:"1200",height:"759"})})}),"\n",(0,a.jsx)(s.p,{children:"Today, Docusaurus v2 has already been a great success even before its launch:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["We received so many ",(0,a.jsx)(s.a,{href:"https://x.com/sebastienlorber/timelines/1392048416872706049",children:"lovely testimonials"})]}),"\n",(0,a.jsxs)(s.li,{children:["Companies like ",(0,a.jsx)(s.a,{href:"https://blog.1password.com/docusaurus-documentation-framework/",children:"1Password"})," and ",(0,a.jsx)(s.a,{href:"https://www.courier.com/blog/how-we-built-our-documentation/",children:"Courier"})," are writing down their positive experience"]}),"\n",(0,a.jsxs)(s.li,{children:["Our ",(0,a.jsx)(s.a,{href:"/showcase",children:"site showcase"})," references hundreds of sites, and this is only the tip of the iceberg."]}),"\n"]}),"\n",(0,a.jsx)(h.Gr,{}),"\n",(0,a.jsx)("br",{}),"\n",(0,a.jsx)(s.admonition,{type:"tip",children:(0,a.jsxs)(s.p,{children:["Please add your site to our ",(0,a.jsx)(s.a,{href:"/showcase",children:"site showcase"}),"! It only takes a few seconds: just ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/discussions/7826",children:"post a comment here"}),"."]})}),"\n",(0,a.jsx)(i,{url:"https://x.com/maxlynch/status/1549415692704825346",handle:"maxlynch",name:"Max Lynch",job:"Ionic co-founder and CEO",children:(0,a.jsx)(s.p,{children:"We use Docusaurus everywhere now and love it"})}),"\n",(0,a.jsx)(i,{url:"https://x.com/supabase/status/1328960757149671425",handle:"supabase",name:"Supabase",job:"Open Source Firebase alternative",children:(0,a.jsx)(s.p,{children:"We've been using V2 since January and it has been great"})}),"\n",(0,a.jsx)(i,{url:"https://x.com/gabrielcsapo/status/1415061312917233665",handle:"gabrielcsapo",name:"Gabriel Csapo",job:"Staff Software Engineer at LinkedIn",children:(0,a.jsx)(s.p,{children:"Docusaurus is next level easy for literally everything you would need for\ndocumentation in your project."})}),"\n",(0,a.jsx)(i,{url:"https://x.com/ItWasMattGregg/status/1526682295075102721",handle:"ItWasMattGregg",name:"Matt Gregg",job:"Senior Front End Developer at Shopify",children:(0,a.jsx)(s.p,{children:"Docusaurus is awesome. We use it"})}),"\n",(0,a.jsx)(s.h2,{id:"whats-new-in-20",children:"What's New in 2.0?"}),"\n",(0,a.jsxs)(s.p,{children:["It would be difficult to describe every single new feature coming with Docusaurus v2. Let's focus on the features we believe are the ",(0,a.jsx)(s.strong,{children:"most impactful"}),"."]}),"\n",(0,a.jsx)(s.h3,{id:"mdx",children:"MDX"}),"\n",(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.a,{href:"https://github.com/mdx-js/mdx",children:"MDX"})," allows you to ",(0,a.jsx)(s.strong,{children:"interleave React components"})," in Markdown. This enables you to build top-notch ",(0,a.jsx)(s.strong,{children:"interactive documentation experiences"})," very easily."]}),"\n",(0,a.jsx)(s.p,{children:"A demo is worth a thousand words:"}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-md",metastring:'title="docs/my-document.mdx"',children:"### Give it a try: press that button!\n\nimport ColorModeToggle from '@theme/ColorModeToggle';\n\n<ColorModeToggle/>\n"})}),"\n",(0,a.jsxs)(o.A,{children:[(0,a.jsx)("h3",{children:"Give it a try: press that button!"}),(0,a.jsx)(d.A,{})]}),"\n",(0,a.jsx)(s.admonition,{type:"info",children:(0,a.jsxs)(s.p,{children:["MDX has its own ",(0,a.jsx)(s.a,{href:"https://mdxjs.com/docs/extending-mdx/",children:"plugin system"}),". You to customize your Markdown authoring experience, and even create your own Markdown syntax."]})}),"\n",(0,a.jsx)(i,{url:"https://x.com/HamelHusain/status/1551962275250053123",handle:"HamelHusain",name:"Hamel Husain",job:"Head Of Data Science at Outerbounds",children:(0,a.jsx)(s.p,{children:"Docusaurus + MDX is great: we were able to implement a beautiful two-pane\nlayout and give the author fine-grained control on the placement of code and\ncorresponding prose."})}),"\n",(0,a.jsx)(s.h3,{id:"file-system-conventions",children:"File system conventions"}),"\n",(0,a.jsxs)(s.p,{children:["Our goal is to make Docusaurus very ",(0,a.jsx)(s.strong,{children:"intuitive"})," to use. We added file system conventions, and adding a doc page is as easy as creating one Markdown file."]}),"\n",(0,a.jsx)(r.A,{id:"T3S8GyFIXjo",params:"autoplay=1&autohide=1&showinfo=0&rel=0",title:"Explain Like I'm 5: Docusaurus",poster:"maxresdefault",webp:!0}),"\n",(0,a.jsx)("br",{}),"\n",(0,a.jsx)(i,{url:"https://x.com/paularmstrong/status/1552005085168865281",handle:"paularmstrong",name:"Paul Armstrong",job:"Principal Engineer at Microsoft",children:(0,a.jsx)(s.p,{children:"Using the auto-generated sidebars makes it so simple to just create a page and\nnot worry about any other configuration."})}),"\n",(0,a.jsx)(s.h3,{id:"plugins",children:"Plugins"}),"\n",(0,a.jsxs)(s.p,{children:["Docusaurus now has a ",(0,a.jsx)(s.strong,{children:"modular architecture"})," with a plugin system \u2014 our ",(0,a.jsx)(s.strong,{children:"core features"})," like docs, blog, pages, and search are all powered by individual plugins."]}),"\n",(0,a.jsxs)(s.p,{children:["More importantly, it enables our community to ",(0,a.jsx)(s.strong,{children:"enhance Docusaurus"})," with additional features."]}),"\n",(0,a.jsx)(s.p,{children:"Let's highlight some examples:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/rohit-gohri/redocusaurus",children:"redocusaurus"}),": seamless integration with ",(0,a.jsx)(s.a,{href:"https://www.openapis.org/",children:"OpenAPI"})," and ",(0,a.jsx)(s.a,{href:"https://github.com/Redocly/redoc",children:"Redoc"})]}),"\n"]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"redocusaurus plugin example",src:t(64356).A+"",width:"1200",height:"667"})}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://www.npmjs.com/package/docusaurus-preset-shiki-twoslash",children:"docusaurus-preset-shiki-twoslash"}),": use ",(0,a.jsx)(s.a,{href:"https://github.com/shikijs/shiki",children:"Shiki"})," code block syntax highlighting with ",(0,a.jsx)(s.a,{href:"https://shikijs.github.io/twoslash/",children:"TwoSlash"})," TypeScript compiler hints"]}),"\n"]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"shiki-twoslash plugin example",src:t(85915).A+"",width:"1200",height:"667"})}),"\n",(0,a.jsx)(i,{url:"https://x.com/orta",handle:"orta",name:"Orta Therox",job:"Former TypeScript core team at Microsoft",children:(0,a.jsx)(s.p,{children:"The plugin API was a breeze to use, and powerful enough that I could port the\ncode sample renderer from the TypeScript website site in a couple of hours."})}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/easyops-cn/docusaurus-search-local",children:"docusaurus-search-local"}),": one of the various local search alternatives to the built-in Algolia plugin"]}),"\n"]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"local search plugin example",src:t(92909).A+"",width:"1200",height:"627"})}),"\n",(0,a.jsx)(s.admonition,{type:"tip",children:(0,a.jsxs)(s.p,{children:["We have a curated list of outstanding plugins in our ",(0,a.jsx)(s.a,{href:"/community/resources",children:"community resources"})," page."]})}),"\n",(0,a.jsx)(i,{url:"https://x.com/jodyheavener/status/1551974535452311552",handle:"jodyheavener",name:"Jody Heavener",job:"Senior Developer at 1Password",children:(0,a.jsx)(s.p,{children:"The plugin system in Docusaurus v2 has made expanding 1Password's developer\nportal so easy and fun. Super excited to show you what we've got cooking up."})}),"\n",(0,a.jsx)(s.h3,{id:"theming",children:"Theming"}),"\n",(0,a.jsxs)(s.p,{children:["Theming is one of the most important features of Docusaurus: we believe a professional documentation site should ",(0,a.jsx)(s.strong,{children:"respect your company's branding"})," and create a consistent experience."]}),"\n",(0,a.jsxs)(s.p,{children:["Docusaurus theming gives a lot of ",(0,a.jsx)(s.strong,{children:"flexibility"})," on multiple levels:"]}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsx)(s.li,{children:"Customize CSS variables to adjust colors, fonts, and more"}),"\n",(0,a.jsx)(s.li,{children:"Provide your own CSS stylesheets"}),"\n",(0,a.jsx)(s.li,{children:"Implement your own theme from scratch"}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.strong,{children:"Override any React component"})," provided by our default theme: we call this ",(0,a.jsx)(s.a,{href:"https://docusaurus.io/docs/swizzling",children:"swizzling"})]}),"\n"]}),"\n",(0,a.jsx)(i,{url:"https://x.com/hung_dev/status/1546918275065741312",handle:"hung_dev",name:"\nHung Viet Nguyen",job:"Creator of JestPreview",children:(0,a.jsx)(s.p,{children:"I love Docusaurus Swizzling feature. It\u2019s opinionated and flexible at the same\ntime. This is super cool since a framework usually needs to sacrifice one for\nthe other."})}),"\n",(0,a.jsxs)(s.p,{children:["This enables users willing to invest a bit more time on ",(0,a.jsx)(s.strong,{children:"customizations"})," to build sites that ",(0,a.jsx)(s.strong,{children:"look different"})," from others."]}),"\n",(0,a.jsx)(h.Gs,{}),"\n",(0,a.jsx)(i,{url:"https://x.com/dabit3/status/1382855449813389315",handle:"dabit3",name:"Nader Dabit",job:"Web3 developer, Developer DAO founder",children:(0,a.jsx)(s.p,{children:"So far it\u2019s working out really nicely. It\u2019s been really easy to style up the\nway that we wanted it to look. No blockers at all."})}),"\n",(0,a.jsx)(s.h3,{id:"other-features",children:"Other features"}),"\n",(0,a.jsx)(s.p,{children:"Docusaurus 2 comes with a very long list of useful features:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["Theme: dark mode, better UI and UX, flexible ",(0,a.jsx)(s.code,{children:"themeConfig"})," options..."]}),"\n",(0,a.jsx)(s.li,{children:"Docs versioning: flexible plugin options to adapt to your workflow"}),"\n",(0,a.jsx)(s.li,{children:"Docs sidebar: collapsible category, category index pages..."}),"\n",(0,a.jsx)(s.li,{children:"Blog: multiple authors, authors map, archive page..."}),"\n",(0,a.jsx)(s.li,{children:"Markdown: tabs, math equations, live code blocks, linking, flexible front matter..."}),"\n",(0,a.jsx)(s.li,{children:"Search: use the new Algolia DocSearch 3 experience"}),"\n",(0,a.jsx)(s.li,{children:"Assets: make it easy to incorporate images and other kinds of files"}),"\n",(0,a.jsx)(s.li,{children:"Internationalization: config options, default theme translations..."}),"\n",(0,a.jsx)(s.li,{children:"Accessibility: aria labels, color contrasts, skip-to-content, keyboard navigation, progressive enhancement..."}),"\n",(0,a.jsx)(s.li,{children:"SEO: sensible defaults, easy to customize, canonical url, social card, no-index, sitemap, microdata, hreflang..."}),"\n",(0,a.jsx)(s.li,{children:"PWA: add offline support to your site, and make it installable"}),"\n",(0,a.jsx)(s.li,{children:"Fail-fast: strict config validation, detect broken links, and prevent bad production deployments"}),"\n",(0,a.jsx)(s.li,{children:"TypeScript support for config files, plugins, custom pages and theme authors"}),"\n",(0,a.jsxs)(s.li,{children:["Playgrounds: assess Docusaurus easily from your browser with ",(0,a.jsx)(s.a,{href:"https://docusaurus.new",children:"docusaurus.new"})]}),"\n",(0,a.jsx)(s.li,{children:"Canary releases: use the @canary npm tag to use the upcoming release before anyone else"}),"\n",(0,a.jsx)(s.li,{children:"Tests: Docusaurus is well-tested, we dogfood features and ensure they keep working"}),"\n"]}),"\n",(0,a.jsx)(i,{url:"https://x.com/alexbdebrie/status/1540010328335032320",handle:"alexbdebrie",name:"Alex DeBrie",job:"AWS Data Hero, author of The DynamoDB Book",children:(0,a.jsx)(s.p,{children:"Recently, I was shocked at how good Docusaurus is out of the box. Super solid,\na good bit of configuration without being overwhelming, and the ability to\nreally customize the styling if you're braver than I am."})}),"\n",(0,a.jsx)(s.h2,{id:"why-20-now",children:"Why 2.0 now?"}),"\n",(0,a.jsxs)(s.p,{children:["Many enthusiastic followers of ours have been curious ",(0,a.jsx)(s.strong,{children:"why it took us 4 years to release Docusaurus 2.0"}),", considering the beta is already successful and ",(0,a.jsx)(s.strong,{children:"widely used in production"}),"."]}),"\n",(0,a.jsxs)(s.p,{children:["The reason is that we aim to ",(0,a.jsxs)(s.strong,{children:["respect ",(0,a.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"})]}),", which means we will be incrementing the major version number whenever we release a ",(0,a.jsx)(s.strong,{children:"breaking change"}),"."]}),"\n",(0,a.jsx)(s.p,{children:"It is important for multiple reasons:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["It ",(0,a.jsx)(s.strong,{children:"guarantees simple minor version upgrades"}),", as long as you only use the ",(0,a.jsx)(s.a,{href:"/community/release-process#public-api-surface",children:"public API"})]}),"\n",(0,a.jsx)(s.li,{children:"It follows front-end ecosystem conventions"}),"\n",(0,a.jsx)(s.li,{children:"A new major version is an opportunity to thoroughly document breaking changes"}),"\n",(0,a.jsx)(s.li,{children:"A new major/minor version is an opportunity to communicate new features through a blog post"}),"\n"]}),"\n",(0,a.jsxs)(s.p,{children:["The problem is that our flexible theming system inherently creates a very ",(0,a.jsx)(s.strong,{children:"implicit API surface"})," on which it is ",(0,a.jsx)(s.strong,{children:"hard to know what is a breaking change"})," in the first place. Highly customized Docusaurus sites sometimes have a hard time upgrading Docusaurus because they achieve customizations using internal APIs. We dedicated time to extensive theme refactors and clearly defining our ",(0,a.jsx)(s.a,{href:"/community/release-process#public-api-surface",children:"public API"}),", so that future code changes can be made more safely. We will continue to expand this public theming API so that the most common site customizations do not need to use any internal API."]}),"\n",(0,a.jsxs)(s.admonition,{type:"info",children:[(0,a.jsxs)(s.p,{children:["From now on, Docusaurus will ",(0,a.jsx)(s.strong,{children:"release new major versions more frequently"}),". In practice, you can expect a ",(0,a.jsx)(s.strong,{children:"new major version every 2 to 4 months"}),"."]}),(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.a,{href:"https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html",children:"Major version numbers are not sacred"}),", but we still group breaking changes together and avoid releasing major versions too often."]}),(0,a.jsxs)(s.p,{children:["Check our ",(0,a.jsx)(s.a,{href:"/community/release-process",children:"release process"})," documentation for details."]})]}),"\n",(0,a.jsx)(s.h2,{id:"whats-next",children:"What's Next?"}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"Slash Up and Running",src:t(29302).A+"",width:"760",height:"160"})}),"\n",(0,a.jsxs)(s.p,{children:["The work on Docusaurus 3.0 has started, and this next version will be released only in a few months. We will ",(0,a.jsx)(s.strong,{children:"backport retro-compatible changes in Docusaurus 2.x"})," minor versions to make them available as soon as possible to the community on a stable channel."]}),"\n",(0,a.jsx)(s.p,{children:"A sample of the features on our roadmap for the upcoming major versions of Docusaurus:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/4029",children:"Upgrade to MDX 2.0"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/4625",children:"Improve Markdown infrastructure"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/6114",children:"Improve theming and swizzle"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/2961",children:"TailwindCSS theme"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/7227",children:"Theme; support custom item types for navbar, doc sidebar, blog sidebar, footer"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/4389",children:"Dynamic navbar: navbar item activation strategies"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/2968",children:"Custom Social Cards"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/3236",children:"CSS-in-JS support"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/6520",children:"Use Node.js ES Modules"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/4765",children:"Improve build time performance"})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/4138",children:"Extend Docusaurus plugins, CMS integration"})}),"\n"]}),"\n",(0,a.jsx)(s.h2,{id:"thank-you",children:"Thank You"}),"\n",(0,a.jsxs)(s.p,{children:["We'd like to express our gratitude to ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/graphs/contributors",children:"all our contributors"}),", including:"]}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["The Docusaurus core team: ",(0,a.jsx)(s.a,{href:"https://github.com/lex111",children:"Alexey Pyltsyn"}),", ",(0,a.jsx)(s.a,{href:"https://github.com/Josh-Cena",children:"Joshua Chen"}),", ",(0,a.jsx)(s.a,{href:"https://github.com/slorber",children:"S\xe9bastien Lorber"}),", ",(0,a.jsx)(s.a,{href:"https://github.com/yangshun",children:"Yangshun Tay"})," and all our ",(0,a.jsx)(s.a,{href:"https://docusaurus.io/community/team",children:"former team members"})]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/JoelMarcey",children:"Joel Marcey"})," for creating Docusaurus 1.0 and supporting the Docusaurus 2.0 project at Meta Open Source"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/zpao",children:"Paul O\u2019Shannessy"})," for supporting the development of all the next versions of Docusaurus at Meta Open Source"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/ericnakagawa",children:"Eric Nakagawa"})," for creating our cutest mascot Slash"]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/endiliey",children:"Endilie Yacop Sucipto"})," for his significant ",(0,a.jsx)(s.a,{href:"/blog/2020/01/07/tribute-to-endi",children:"initial work on Docusaurus v2"})]}),"\n",(0,a.jsxs)(s.li,{children:[(0,a.jsx)(s.a,{href:"https://github.com/shortcuts",children:"Cl\xe9ment Vannicatte"}),", ",(0,a.jsx)(s.a,{href:"https://github.com/Shipow",children:"Kevin Granger"})," and the whole Algolia team for their support"]}),"\n",(0,a.jsxs)(s.li,{children:["All the community members for making valuable code contributions, improving our documentation, and answering questions on ",(0,a.jsx)(s.a,{href:"https://discordapp.com/invite/docusaurus",children:"Discord"})]}),"\n"]}),"\n",(0,a.jsxs)(s.p,{children:["We'd like to thank in particular all our ",(0,a.jsx)(s.strong,{children:"Docusaurus 2.0 early adopters"})," for assessing its alpha, beta and canary releases, providing a ton of ",(0,a.jsx)(s.strong,{children:"invaluable feedback"}),". We sincerely hope you had a great experience using it, and that you will continue to provide feedback on the upcoming pre-releases of Docusaurus 3.0."]}),"\n",(0,a.jsxs)(s.p,{children:["At ",(0,a.jsx)(s.a,{href:"https://opensource.fb.com/",children:"Meta Open Source"}),", Docusaurus is one of our ",(0,a.jsx)(s.strong,{children:"most successful projects"}),". We can't wait to see all the outstanding documentation websites that you will create! Don't forget to ",(0,a.jsxs)(s.strong,{children:["submit them to our ",(0,a.jsx)(s.a,{href:"/showcase",children:"site showcase"})]}),"!"]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.strong,{children:"Now, let your imagination run wild \u{1F92A}!"})}),"\n",(0,a.jsx)(s.p,{children:"\u2014 Slash"}),"\n",(0,a.jsxs)(s.admonition,{type:"info",children:[(0,a.jsxs)(s.mdxAdmonitionTitle,{children:["We are on ",(0,a.jsx)(s.a,{href:"https://www.producthunt.com/posts/docusaurus-2-0",children:"ProductHunt"})," and ",(0,a.jsx)(s.a,{href:"https://news.ycombinator.com/item?id=32303052",children:"Hacker News"}),"!"]}),(0,a.jsx)(s.p,{children:"\u{1F64F} Share your experience using Docusaurus with the community!"}),(0,a.jsxs)("div",{style:{display:"flex"},children:[(0,a.jsx)(l.A,{}),(0,a.jsx)(c.A,{})]})]}),"\n",(0,a.jsx)(s.p,{children:(0,a.jsx)(s.img,{alt:"Slash plushies",src:t(93635).A+"",width:"1332",height:"1331"})})]})}function x(e={}){let{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,a.jsx)(s,{...e,children:(0,a.jsx)(m,{...e})}):m(e)}},81448:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/babel.cbc364a.640.png 640w,"+t.p+"assets/ideal-img/babel.3669cfa.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/babel.cbc364a.640.png",width:640,height:355},{path:t.p+"assets/ideal-img/babel.3669cfa.1030.png",width:1030,height:571}],src:t.p+"assets/ideal-img/babel.cbc364a.640.png",toString:function(){return t.p+"assets/ideal-img/babel.cbc364a.640.png"},placeholder:void 0,width:640,height:355},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxUlEQVR4nAG6AEX/AHW3yo+qtZWouZOjuZCTupGGu4yEuoKCt3yHsnCOwQDI2OD07urj4uHc29ns6+fy8+3y8+3s7Oj18enC0+UA1ODq/vz78vP06+vu8PDz9PT38/P39/f5////0dbpANjf6f/9/Pj28fDs4PXy6P767/757v359P///+TH1wDb3ej4/Pv1+PPw8eb1+O31+Oz1+ez4+/b+///vwMwA1p7J1Zuk2JSQ1oZ71IB01Htx1nhv23lw3Xxy5m11yK+UrA2JDh4AAAAASUVORK5CYII="}},25908:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/docusaurus.2ad1782.640.png 640w,"+t.p+"assets/ideal-img/docusaurus.ba4280f.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/docusaurus.2ad1782.640.png",width:640,height:355},{path:t.p+"assets/ideal-img/docusaurus.ba4280f.1030.png",width:1030,height:571}],src:t.p+"assets/ideal-img/docusaurus.2ad1782.640.png",toString:function(){return t.p+"assets/ideal-img/docusaurus.2ad1782.640.png"},placeholder:void 0,width:640,height:355},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAwUlEQVR4nBXJPQuCQBgA4PvBQWE4CEFBSwQhRG1KU1M/oYYCzaCGCLIPjb4uQ++6pNOztHqjZ32QPFk0LbM1MtW+0eiZDX1c18ZV3VD0QV63kLU7xSL0yPnkbRn3aHQJxZVGPhdkaF/Q8kgAIIkfd4pf4p4m4Tfjn3cKAPOlj1zM/p1wEhzYDYcMC+5/MwEA2Fqhw/nf4skD4gTUpbd9FOPsHX0A2HCGVp2prXU3bXVdU+yKtC5LTqngKnm3VPRy8g+/UpX4n6rSEgAAAABJRU5ErkJggg=="}},70039:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/katex.2b3ecc9.640.png 640w,"+t.p+"assets/ideal-img/katex.91ac937.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/katex.2b3ecc9.640.png",width:640,height:355},{path:t.p+"assets/ideal-img/katex.91ac937.1030.png",width:1030,height:571}],src:t.p+"assets/ideal-img/katex.2b3ecc9.640.png",toString:function(){return t.p+"assets/ideal-img/katex.2b3ecc9.640.png"},placeholder:void 0,width:640,height:355},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAv0lEQVR4nAXB3wrBUBwA4PPAaiHSduOGG4UiV0rIC3gCNwqToraz5d8K46zNzraznbMxP9+HqqrV3eiDldFfmp252Z4arQluTLA83UnjA1pfbJFxQv2n51LOaMbiXPgiiri/wARplgP5N04S50VCSlkY8ThJRQYAe40gwyIAOWPMth9vzw0CGoZBygUA3FYYna4kB6Asvr8c4r1dGkQiFZ/vD8BfbBEeqfpwZva6elPW6mVNKeKadKxJZ6VkFyp/r/+XglW08JQAAAAASUVORK5CYII="}},63379:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/prettier.0987194.640.png 640w,"+t.p+"assets/ideal-img/prettier.ac62bde.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/prettier.0987194.640.png",width:640,height:355},{path:t.p+"assets/ideal-img/prettier.ac62bde.1030.png",width:1030,height:571}],src:t.p+"assets/ideal-img/prettier.0987194.640.png",toString:function(){return t.p+"assets/ideal-img/prettier.0987194.640.png"},placeholder:void 0,width:640,height:355},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAvklEQVR4nDXCzwvBUBwA8PcHO6yWQktIK0kcnJRc5OIosZ1wkXKRNjYchmbzY794tnnv7SsHnz6IGy6rfbnWkyqdkViXxJJULspCYcyXB6naDM23Bvac4+mk69rFNv2n6z9dx7uzOJiuTaQYNwCGo4gwBn+MJQCwUm2kGVegJMD4FYaUEEbp74cAwHm+QfrBihnx8Nt6uO4Le/gdhHFEaALgTJZIaS+UVldrNlQxqxbTmzy/zXG7DLcXeDOV/gIPyZWv09LiSwAAAABJRU5ErkJggg=="}},46925:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/react-native.e8025ec.640.png 640w,"+t.p+"assets/ideal-img/react-native.8cebf9a.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/react-native.e8025ec.640.png",width:640,height:355},{path:t.p+"assets/ideal-img/react-native.8cebf9a.1030.png",width:1030,height:571}],src:t.p+"assets/ideal-img/react-native.e8025ec.640.png",toString:function(){return t.p+"assets/ideal-img/react-native.e8025ec.640.png"},placeholder:void 0,width:640,height:355},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxUlEQVR4nAG6AEX/AGisw32brIaZrYCSqn2EroB1rX52r5eYzoGMumSBtwC8ztfm4uHZ2dnLy8rP0c/i49/q6+f4+fX/+/S7zN8Az9zl+/n38vP04uTm6enq7O3u7Ovt9vb3////0NXpANDY4vXz8vHx8efm5+zr6vPy8vTz8vv4+f///+PG1wDY2+b3+/ni6OnO1djY3d/d4uTb4OPu8fL////uwMwA1p7J1pylzYiFvW5iu2dcu2NZulxUz2tk33505mx04r2PDpDiiAMAAAAASUVORK5CYII="}},80711:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/courier.e9b71f4.640.png 640w,"+t.p+"assets/ideal-img/courier.f8addf0.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/courier.e9b71f4.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/courier.f8addf0.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/courier.e9b71f4.640.png",toString:function(){return t.p+"assets/ideal-img/courier.e9b71f4.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AIyt27SXz7ud17eW2bGD269z3qhv3p5x3ZJw2X1+2gDIyeH52u/XwdTDq8LRu8/SvdLQu9Hm1+j/8//EzewAz9ro+/j+3dzizczR1NPY19XbxMHIxLzH49/hvb7XANTW5/ft+Pr3+//+/v39/f///8S+xUIjSS8XPIZdfwDW1ub39v3y9Pju8fTy9vj///+4uMImFDceEjeUVXkA1pzJ1Jej2JKO2IZ61oB024B1zGpjrUNDrERE11Vl8lGDEKxF5owAAAAASUVORK5CYII="}},83178:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/datagit.98630dd.640.png 640w,"+t.p+"assets/ideal-img/datagit.afeea1f.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/datagit.98630dd.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/datagit.afeea1f.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/datagit.98630dd.640.png",toString:function(){return t.p+"assets/ideal-img/datagit.98630dd.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAtElEQVR4nB3MSwtBQRiH8fm+SkoSycLOykI2ZOUb2CqxILlEJ5dDlFyaFIccnZk5877zF+un3yMah3B+UytpvJOZLsykb0Y90+urzjCstaVYyhcAdg6Ati6M6RFGlhiIB/5d+JcnAGMptsTETKyUUTomsjNPisP1l91fR5rfEQdvzUQAzsO1OJ4DAIqcIheR+1j3+Gj9vwfdidg0x+t6a1ut7MoFv5Txi+ldLrXPJvf5lEykv9L2nupSFk8xAAAAAElFTkSuQmCC"}},85752:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/dyte.b411d0a.640.png 640w,"+t.p+"assets/ideal-img/dyte.9d967ec.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/dyte.b411d0a.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/dyte.9d967ec.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/dyte.b411d0a.640.png",toString:function(){return t.p+"assets/ideal-img/dyte.b411d0a.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAvElEQVR4nCXJPQ/BQBgA4Pu9FqSDIBKjicFmEIPERmwkWCQkREvQpr4SJK7otb1DtXp3r4hnfVBhZrfmZHpg6uGpLkJt+BkP/H6PNjqs2LyhWmfZ7por82RZl3foCxBSSi4iABgaDlJ3FucCM/9IGKYv2/+QgLNAAIC2xEjfYwBJXM/1vIj/CcF/fR7paLO3JIBD6eVuXx2XsAd9B2H0e2cwRUZ1olfqZrlkFrLrvGLklE06sUvFt5kkjilfulmaxNksu3AAAAAASUVORK5CYII="}},37202:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/hasura.e4f3ebd.640.png 640w,"+t.p+"assets/ideal-img/hasura.226d6d3.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/hasura.e4f3ebd.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/hasura.226d6d3.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/hasura.e4f3ebd.640.png",toString:function(){return t.p+"assets/ideal-img/hasura.e4f3ebd.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AFqhu2SFmW2FnGR7l2Bpl2Fcl1pXk1dblk1lm1N7tgBGXm0VGyImLjUhKC0cJCgdJykbJSYWHyERHB0sSGIASl1sGSIqJi81KzI4KDA1JCsxJSwyISkvGiAiOUJZAFJgbxwkLCYuNiUtNR8nLiIqMh8mLiQqMhooLk42TABOWWkPHSUbKTMgMkEcLTsjNEEdMD4hMD4XNEFYMUUAtn6soWhzqmZjqFpPplJIqFBHqElCq0lCp0hAxUpUim0yiR9LFnEAAAAASUVORK5CYII="}},18948:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/ionic.7f10b53.640.png 640w,"+t.p+"assets/ideal-img/ionic.cd19b49.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/ionic.7f10b53.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/ionic.cd19b49.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/ionic.7f10b53.640.png",toString:function(){return t.p+"assets/ideal-img/ionic.7f10b53.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AJbY7s3o99Xo+tPk+8DK/MbA+ci/98HB98DM+Ji26gDK3ej//Pzy8vLs6+rn6u74+vn////x8u/w7OXE1uoA0d7p////7u/w4uPm6Ojq7e7z8/T309PW19fWub7UANTd6P/+/vj4+Pj4+fr6/Pr7/fb3+tve5/3//tCzxADZ3en8///0+Pn1+vv2+/v2+/vz+fvO2ef3///crLoA1ZzJ1Zqj2ZSP2ol814F12H1z2Hhv1HFq23lw42ZvKQ2aZPs/3GIAAAAASUVORK5CYII="}},89532:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/outerbounds.7fa8be7.640.png 640w,"+t.p+"assets/ideal-img/outerbounds.17abaf6.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/outerbounds.7fa8be7.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/outerbounds.17abaf6.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/outerbounds.7fa8be7.640.png",toString:function(){return t.p+"assets/ideal-img/outerbounds.7fa8be7.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAwklEQVR4nAXBPWvCQBgA4Pu7UhQsUh2Kk2sXF8Ghkz/BqdqCIBkUbf1Ag5GKaFsjyZ2X+3ovd+bt85BuxD9jszip6T6bzPVsBMFQfLzzt/Gt0/8jy3OCWFCasvSaZdR7i17fnUSEIIzJ4vvi81xIBZAbcNY6kMIIgd5MZ0eyin6cBSU1ZTJOtFRWcXZLWYH5cfRFosO1QJQGuJBCG3COZYIybhGTQUDC18mm2wvbL5vW07pZ3T5Xw3p5V3vYNSq/pcd/0kecLyndd98AAAAASUVORK5CYII="}},71935:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/quickwit.aae4257.640.png 640w,"+t.p+"assets/ideal-img/quickwit.e851c05.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/quickwit.aae4257.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/quickwit.e851c05.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/quickwit.aae4257.640.png",toString:function(){return t.p+"assets/ideal-img/quickwit.aae4257.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AFyguGaElrfL3djp/8zP+MvA98e99b7C97yt3pmd1QBLYG0jIii6u77x7+3s7On+//z+/fr8/vz/9/PHy+EAVWRzKCszvb/C6uvr4ODi7+7w8vHz8vL0////ztToAFxmdSkrM7/Bw/Ty8ujo6Ors6/T09P38/P///+PF1QBXXW0bIyu4vcDk7OzZ3+Dc4eLn7e72+fr9///uvssAuYCtpGl0zYeD2Ip70n1x13xy13du2XVs3Hpx52tzWcaFkyvPIw8AAAAASUVORK5CYII="}},20075:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/react-native.9ad7a23.640.png 640w,"+t.p+"assets/ideal-img/react-native.02f5343.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/react-native.9ad7a23.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/react-native.02f5343.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/react-native.9ad7a23.640.png",toString:function(){return t.p+"assets/ideal-img/react-native.9ad7a23.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AGaqwXuXqIWWqoKSqoKEroN1rYF2rXVzq32Jt22MwAC/0drp4uDF0NSpvcS+0dTI3N6909nQ3N789+++0eQA0+Dp///90urysdjlttrmuN3rpsXg0+Xw////ztPoANTc5vv5+PTy8ejk5O3p6fn19fz39f36+f///+PG1QDZ3Of09/bv8/Xq7/Hz+Pr0+vv0+vz5/Pz9///uvssA1p3J05eh1Y+L1IN22YN32X9023px3Hhv23pw52pzwqeO97QIzhcAAAAASUVORK5CYII="}},80679:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/figma.e023b25.640.png 640w,"+t.p+"assets/ideal-img/figma.4b79b06.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/figma.e023b25.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/figma.4b79b06.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/figma.e023b25.640.png",toString:function(){return t.p+"assets/ideal-img/figma.e023b25.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AHCswX+aqIearISVrH6Cq4F3rn93r3V1rG54pmeFuQDC09zu6ebp5+fl5OTo6OXu7+rx8ezr7Ojz7+e8zuEA0d7o///++fn65+fo9fX1+Pj5+Pj5/Pz9////0NToANXd5/z6+Pf39+Xk4+Ph5ePi5urp6vv5+f///+PF1QDe4ez////z+Pnf4+rg5O7m6/Hr8fP5/Pz9///uvssA157K1pqk2ZOO1YN50nxz1Xtw2Hdu3Hdv3Hpw52pyiw2SNplStDwAAAAASUVORK5CYII="}},70967:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/gulp.645374a.640.png 640w,"+t.p+"assets/ideal-img/gulp.f298c97.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/gulp.645374a.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/gulp.f298c97.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/gulp.645374a.640.png",toString:function(){return t.p+"assets/ideal-img/gulp.645374a.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AJG2zL6ls8OmuMGiubuLs7x9tLd7s7F+taR/rIeGugDU3eb/8/D97+7/8e/97en45N/76eX57On/6+PBx9oA0N/o8fPz7fDy7fDx8fT1/P7++fT189/i////ztLmANHY4u/r6vDu7+/t7fXz8//+/vrt7vXY2v///+PE1QDg4+7////9/v7+///8/v729/j3+/v2+fr4///ru8gA153J1pqj25SQ2ol82IF12X5z2npw3Hdu3Hpw52py1S6WZvfndWMAAAAASUVORK5CYII="}},52306:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/iota.95754da.640.png 640w,"+t.p+"assets/ideal-img/iota.117672c.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/iota.95754da.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/iota.117672c.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/iota.95754da.640.png",toString:function(){return t.p+"assets/ideal-img/iota.95754da.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AFOYtVZ2j111kl1zlFpilVtVl09LjkhLjEJSi05uqgA0TWYSGC8lLkQTGzELFy0IFCknOEsoOk4FDSAmQmUAO1BoGyU7NURYHTJIEh83DBQsZJGpbJeuBQ8lSUZpAEBPZwYRJw8qPRVDUwwWLR4sQUpvkUhoihAhNFQxUQA7Rl8ABx0DESgADSUCEigNHjQRJkIVJ0MAGCxJITwAs3uqnWNypmNjpFZOpVJKo0xFoUI8pEE8oUJAxEhVk18yaV+3uG0AAAAASUVORK5CYII="}},58889:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/lacework.dfc8aa5.640.png 640w,"+t.p+"assets/ideal-img/lacework.33303f9.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/lacework.dfc8aa5.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/lacework.33303f9.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/lacework.dfc8aa5.640.png",toString:function(){return t.p+"assets/ideal-img/lacework.dfc8aa5.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AIzU7rnd78Te8cHa8b7I87+69ri19ayx8qCy7oao5wCd1eWz3eO94OTI5eXM6/K43/+bw/6Bqfxji/xTgOoAt93q1/b53PX65fr83/T7zuT8vdT8rMT6nrj/hpzmAN3k7vTw8PLw8Pv6+vHv8P/+/Pn29fXw7P///uTH1gDe4ezx9/bx9vj2+/zw9vj3/f7x9/nq7/Pz///pu8kA153J0JWf1pCN2IZ60ntv1ntw13dt1G9n13Vr52pzffeTuLcnN78AAAAASUVORK5CYII="}},48215:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/react-navigation.1b40364.640.png 640w,"+t.p+"assets/ideal-img/react-navigation.a6b28c6.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/react-navigation.1b40364.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/react-navigation.a6b28c6.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/react-navigation.1b40364.640.png",toString:function(){return t.p+"assets/ideal-img/react-navigation.1b40364.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AJna8c3n9tLl99Hh+c3Q+czC+cjA+L+/9bfC8JWz6QDN3u728Pjw7/j29Pz19fv09fr29/zz8/n69vjC1O4Aydfr3dzu2Nrp19fkzc7gzs/g29znxMXitbbevsTiAMzU6c/O7NHR5+Xk7c/O3aWkt+bl7bOy2Kyx29W30wDKzujQ1fHR1vHb4PXZ3/LT1+za4PXP1O/R4Pnaq8gA0pjHz5Oi1I6P1YR71H901Xtz1HNv1XFu1HNv4mVyADiS2eC63VAAAAAASUVORK5CYII="}},18911:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/sap-cloud.f57d7fa.640.png 640w,"+t.p+"assets/ideal-img/sap-cloud.312bf29.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/sap-cloud.f57d7fa.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/sap-cloud.312bf29.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/sap-cloud.f57d7fa.640.png",toString:function(){return t.p+"assets/ideal-img/sap-cloud.f57d7fa.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AJjT3Mzc1NLa1tDW2M7F186318i12MG217q50Zas1ADUrU3/pgD8pwv+rBD/uC//uTD/rxH9rQ3/rQDHokwA2bRi/7Ie/bkx/7Yq9rxT9rtS/7Yt/bUx/7QezqJbANzk7P///8XHyN7g4f//+f///dLPyNzZz////+PF1ADf4+7////N2NzW5Ob7///5/v/U3dTV2sr6///uvssA153K0JWe15CK14R2035y1Hlu1HRs1nJr13Vr52pyn7CEdE5qo0kAAAAASUVORK5CYII="}},53149:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/snapchat.5f28663.640.png 640w,"+t.p+"assets/ideal-img/snapchat.39e00a7.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/snapchat.5f28663.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/snapchat.39e00a7.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/snapchat.5f28663.640.png",toString:function(){return t.p+"assets/ideal-img/snapchat.5f28663.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AHGztIijj5GjlYydlIqNkYqAk4Z9lYCAlnJ9iGiGpQDQ2Er96gDz5wP26QDv5RHw5xD47QD26wP/7wDAykgAr7dRwbcEvrcSwLYLvLMWurQWv7gQv7cQxLsFpqZLAD9IY19YEVtVGxUiNy0oMDQ0LTA+PxwZIhkeI1E0SgBITFs2OB44OiggLC8mLSovLSwoLSskKSwbKytaLDkAuH2ppGl3q2ZlrlxPqlRJqE9Fq0pDsk1ErkxDx0pT21lMrI2uNt0AAAAASUVORK5CYII="}},58559:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/solana.8bcac78.640.png 640w,"+t.p+"assets/ideal-img/solana.e7c1e4f.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/solana.8bcac78.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/solana.e7c1e4f.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/solana.8bcac78.640.png",toString:function(){return t.p+"assets/ideal-img/solana.8bcac78.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AJfa783n9dXo+c/g9szP98zB98i/98C+9LfC7pa06QDS5e3+/Pj7+/r8/Pr2+vX7/vr8/fr2+/b///vH2e4A1eLs9Pb08fT09PX26/Dw9vb38vL06/Dx/f38zNHlAN3l7v////z+/v7+//3+/v////7//v39/f///+PG1wCcoKuWmZiVmZqWm5yXm5yVmZqWm5yWmZuRnp2qfIgAsXejmF1noFlUolBDnkk8nUM4oUA3oj41njwywENMFZ6NFBzee74AAAAASUVORK5CYII="}},70546:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/stackblitz.3a585ac.640.png 640w,"+t.p+"assets/ideal-img/stackblitz.786829d.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/stackblitz.3a585ac.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/stackblitz.786829d.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/stackblitz.3a585ac.640.png",toString:function(){return t.p+"assets/ideal-img/stackblitz.3a585ac.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AGmswn6ZqIibrISUq4CDrH90qntyqXNzqGl1omaEuADK2+Tx6+ns6unv7evr6+j4+fT5+vXz8/D//fW+z+IA2ebv/v37+Pr79v7/8vX3ysrMv8DDur3B0tbXzdLmAN3m7////fj5+ff//9bv9SEmKwUIDgYNFR0sM9W5yQDLz9nd4uDZ3d7a4ePE1txxen5kbHBka29oeXnRpLEAv4azsHR/uHJuuGdbuGFUwWdbxGNaxmFZw2JY0FRd0wl8G5D7uNgAAAAASUVORK5CYII="}},91765:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/supabase.e96fd5f.640.png 640w,"+t.p+"assets/ideal-img/supabase.f37ca60.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/supabase.e96fd5f.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/supabase.f37ca60.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/supabase.e96fd5f.640.png",toString:function(){return t.p+"assets/ideal-img/supabase.e96fd5f.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AFibsGF8iWx/kGd4jmFljWFWjFxUjFhYjU5ZhVRypgBGWGAXEg4jIiEnJiQcHBgZGhUaGhUcHRkZFQ0yRFcAUV5nHx0cKiorLS0tKSkqJyYoKSgpKCgqHx4cPkNXAFdfaB8dGywsLDIxMS0rKyknJzEvLzAuLyMmI1Y4SABVWWMTFxUiJicnLC0hJicdIiMlKywkKCkTISBbLTkAuX+so2dxqmVgqllMp1FFp01Cqkk/rEc+qEY9xkpSZqAv5L+d0r8AAAAASUVORK5CYII="}},83422:(e,s,t)=>{e.exports={src:{srcSet:t.p+"assets/ideal-img/tauri.7d284be.640.png 640w,"+t.p+"assets/ideal-img/tauri.4852075.1030.png 1030w",images:[{path:t.p+"assets/ideal-img/tauri.7d284be.640.png",width:640,height:356},{path:t.p+"assets/ideal-img/tauri.4852075.1030.png",width:1030,height:573}],src:t.p+"assets/ideal-img/tauri.7d284be.640.png",toString:function(){return t.p+"assets/ideal-img/tauri.7d284be.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AFucsWV/jXCCk2h4kGBljmFXjl9Yk1tbkVBbiFV0qgBFWWMTEhIYGxwuLyQ4ODM0NzMuKhoxNjczNDI5SFcAQ1lmSkM2UUxELTk4S0pKR0hLPzcnQEpYPUpbR0dSAEhWY0ZEOE1HPh4fJTc4PDQ0NyIkKSomIyYmG1w9SwBNUl0PHB4YIicaHyEwNjg0Oz0YHiAkKCcaJyFbLTkAtXypqGt0rWZirVxPpVBDqE1CrExCrUlAqEc+xUlStsQ1Jd2lGVkAAAAASUVORK5CYII="}},72954:e=>{"use strict";e.exports=JSON.parse('{"permalink":"/blog/2022/08/01/announcing-docusaurus-2.0","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2022/08-01-announcing-docusaurus-2.0/index.mdx","source":"@site/blog/2022/08-01-announcing-docusaurus-2.0/index.mdx","title":"Announcing Docusaurus 2.0","description":"Today we are extremely happy to finally announce Docusaurus 2.0! \u{1F973}\uFE0F","date":"2022-08-01T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":12.075,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"},{"name":"Joshua Chen","title":"Working hard on Docusaurus","url":"https://joshcena.com/","email":"sidachen2003@gmail.com","page":{"permalink":"/blog/authors/josh-cena"},"imageURL":"https://github.com/josh-cena.png","key":"Josh-Cena"},{"name":"Yangshun Tay","title":"Front End Engineer at Meta","url":"https://github.com/yangshun","page":{"permalink":"/blog/authors/yangshun"},"socials":{"x":"https://x.com/yangshunz","github":"https://github.com/yangshun"},"imageURL":"https://github.com/yangshun.png","key":"yangshun"},{"name":"Alexey Pyltsyn","title":"Open-source enthusiast","url":"https://github.com/lex111","email":"lex@php.net","page":{"permalink":"/blog/authors/lex-111"},"imageURL":"https://github.com/lex111.png","key":"lex111"},{"name":"Paul O\u2019Shannessy","title":"Engineering Manager at Meta","url":"https://x.com/zpao","page":{"permalink":"/blog/authors/zpao"},"socials":{"x":"https://x.com/zpao","github":"https://github.com/zpao"},"imageURL":"https://github.com/zpao.png","key":"zpao"},{"name":"Joel Marcey","title":"Co-creator of Docusaurus 1","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Announcing Docusaurus 2.0","authors":["slorber","Josh-Cena","yangshun","lex111","zpao",{"key":"JMarcey","title":"Co-creator of Docusaurus 1"}],"tags":["release"],"image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 2.1","permalink":"/blog/2022/09/01/docusaurus-2.1"},"nextItem":{"title":"Docusaurus 2021 Recap","permalink":"/blog/2022/01/24/docusaurus-2021-recap"}}')}}]); \ No newline at end of file diff --git a/assets/js/519fdddf.87f646b1.js b/assets/js/519fdddf.87f646b1.js new file mode 100644 index 0000000000..20a144c8aa --- /dev/null +++ b/assets/js/519fdddf.87f646b1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[59754],{65020:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>d,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>l});let r=JSON.parse('{"id":"tests/visibility/force-unlisted","title":"force_unlisted_parseFrontMatter_test","description":"This doc is hidden despite unlisted: false","source":"@site/_dogfooding/_docs tests/tests/visibility/force-unlisted.mdx","sourceDirName":"tests/visibility","slug":"/tests/visibility/force-unlisted","permalink":"/tests/docs/tests/visibility/force-unlisted","draft":false,"unlisted":true,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"unlisted":true,"force_unlisted_parseFrontMatter_test":true},"sidebar":"sidebar"}');var n=s(62540),i=s(43023);let o={unlisted:!0,force_unlisted_parseFrontMatter_test:!0},d="force_unlisted_parseFrontMatter_test",c={},l=[];function a(e){let t={code:"code",h1:"h1",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"force_unlisted_parsefrontmatter_test",children:"force_unlisted_parseFrontMatter_test"})}),"\n",(0,n.jsxs)(t.p,{children:["This doc is hidden despite ",(0,n.jsx)(t.code,{children:"unlisted: false"})]}),"\n",(0,n.jsxs)(t.p,{children:["We use ",(0,n.jsx)(t.code,{children:"parseFrontMatter"})," to force it to true thanks to ",(0,n.jsx)(t.code,{children:"force_unlisted_parseFrontMatter_test: true"})]})]})}function u(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}u.displayName="MDXContent(_dogfooding/_docs tests/tests/visibility/force-unlisted.mdx)"},43023:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>d});var r=s(63696);let n={},i=r.createContext(n);function o(e){let t=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),r.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/519fdddf.973ec971.js b/assets/js/519fdddf.973ec971.js deleted file mode 100644 index 300e82e695..0000000000 --- a/assets/js/519fdddf.973ec971.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[59754],{65020:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>d,default:()=>u,frontMatter:()=>o,metadata:()=>n,toc:()=>l});let n=JSON.parse('{"id":"tests/visibility/force-unlisted","title":"force_unlisted_parseFrontMatter_test","description":"This doc is hidden despite unlisted: false","source":"@site/_dogfooding/_docs tests/tests/visibility/force-unlisted.mdx","sourceDirName":"tests/visibility","slug":"/tests/visibility/force-unlisted","permalink":"/tests/docs/tests/visibility/force-unlisted","draft":false,"unlisted":true,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"unlisted":true,"force_unlisted_parseFrontMatter_test":true},"sidebar":"sidebar"}');var r=s(62540),i=s(43023);let o={unlisted:!0,force_unlisted_parseFrontMatter_test:!0},d="force_unlisted_parseFrontMatter_test",c={},l=[];function a(e){let t={code:"code",h1:"h1",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"force_unlisted_parsefrontmatter_test",children:"force_unlisted_parseFrontMatter_test"})}),"\n",(0,r.jsxs)(t.p,{children:["This doc is hidden despite ",(0,r.jsx)(t.code,{children:"unlisted: false"})]}),"\n",(0,r.jsxs)(t.p,{children:["We use ",(0,r.jsx)(t.code,{children:"parseFrontMatter"})," to force it to true thanks to ",(0,r.jsx)(t.code,{children:"force_unlisted_parseFrontMatter_test: true"})]})]})}function u(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}u.displayName="MDXContent(_dogfooding/_docs tests/tests/visibility/force-unlisted.mdx)"},43023:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>d});var n=s(63696);let r={},i=n.createContext(r);function o(e){let t=n.useContext(i);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/520a8178.914a2621.js b/assets/js/520a8178.a3466d71.js similarity index 53% rename from assets/js/520a8178.914a2621.js rename to assets/js/520a8178.a3466d71.js index 3da74fc547..1aa5240c1f 100644 --- a/assets/js/520a8178.914a2621.js +++ b/assets/js/520a8178.a3466d71.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7427],{15995:(e,n,t)=>{t.d(n,{A:()=>s});var r=t(62540);t(63696);var i=t(11750);function s({children:e,hidden:n,className:t}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,i.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>v});var r=t(62540),i=t(63696),s=t(11750),l=t(7846),u=t(49519),o=t(96439),a=t(19739),c=t(66904),d=t(79244);function p(e){var n,t;return null!==(t=null===(n=i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function h({value:e,tabValues:n}){return n.some(n=>n.value===e)}var g=t(10709);function f(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function b(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function m({className:e,block:n,selectedValue:t,selectValue:i,tabValues:u}){let o=[],{blockElementScrollPositionUntilNextRender:a}=(0,l.a_)(),c=e=>{let n=e.currentTarget,r=u[o.indexOf(n)].value;r!==t&&(a(n),i(r))},d=e=>{var n,t;let r=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{let t=o.indexOf(e.currentTarget)+1;r=null!==(n=o[t])&&void 0!==n?n:o[0];break}case"ArrowLeft":{let n=o.indexOf(e.currentTarget)-1;r=null!==(t=o[n])&&void 0!==t?t:o[o.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":n},e),children:u.map(({value:e,label:n,attributes:i})=>(0,r.jsx)("li",b(f({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>o.push(e),onKeyDown:d,onClick:c},i),{className:(0,s.A)("tabs__item","tabItem_AQgk",null==i?void 0:i.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function j({lazy:e,children:n,selectedValue:t}){let l=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=l.find(e=>e.props.value===t);return e?(0,i.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:l.map((e,n)=>(0,i.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function y(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,s=function(e){let{values:n,children:t}=e;return(0,i.useMemo)(()=>{let e=null!=n?n:p(t).map(({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r}));return!function(e){let n=(0,c.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[l,g]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!h({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:s})),[f,b]=function({queryString:e=!1,groupId:n}){let t=(0,u.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,a.aZ)(r),(0,i.useCallback)(e=>{var n,i;if(!r)return;let s=new URLSearchParams(t.location.search);s.set(r,e),t.replace((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},t.location),i=i={search:s.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(i)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(i,e))}),n))},[r,t])]}({queryString:t,groupId:r}),[m,j]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[t,r]=(0,d.Dv)(n);return[t,(0,i.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),y=(()=>{let e=null!=f?f:m;return h({value:e,tabValues:s})?e:null})();return(0,o.A)(()=>{y&&g(y)},[y]),{selectedValue:l,selectValue:(0,i.useCallback)(e=>{if(!h({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);g(e),b(e),j(e)},[b,j,s]),tabValues:s}}(e);return(0,r.jsxs)("div",{className:(0,s.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(m,f({},n,e)),(0,r.jsx)(j,f({},n,e))]})}function v(e){let n=(0,g.A)();return(0,r.jsx)(y,b(f({},e),{children:p(e.children)}),String(n))}},59591:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>d});let r=JSON.parse('{"id":"api/plugins/plugin-debug","title":"\u{1F4E6} plugin-debug","description":"The debug plugin will display useful debug information at http3000/docusaurus/debug.","source":"@site/docs/api/plugins/plugin-debug.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-debug","permalink":"/docs/api/plugins/@docusaurus/plugin-debug","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-debug.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":5,"frontMatter":{"sidebar_position":5,"slug":"/api/plugins/@docusaurus/plugin-debug"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-client-redirects","permalink":"/docs/api/plugins/@docusaurus/plugin-client-redirects"},"next":{"title":"\u{1F4E6} plugin-google-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-google-analytics"}}');var i=t(62540),s=t(43023),l=t(27446),u=t(15995);let o={sidebar_position:5,slug:"/api/plugins/@docusaurus/plugin-debug"},a="\u{1F4E6} plugin-debug",c={},d=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Example configuration",id:"ex-config",level:3}];function p(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"-plugin-debug",children:"\u{1F4E6} plugin-debug"})}),"\n","\n",(0,i.jsxs)(n.p,{children:["The debug plugin will display useful debug information at ",(0,i.jsx)(n.a,{href:"http://localhost:3000/__docusaurus/debug",children:(0,i.jsx)(n.code,{children:"http://localhost:3000/__docusaurus/debug"})}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["It is mostly useful for plugin authors, that will be able to inspect more easily the content of the ",(0,i.jsx)(n.code,{children:".docusaurus"})," folder (like the creates routes), but also be able to inspect data structures that are never written to disk, like the plugin data loaded through the ",(0,i.jsx)(n.code,{children:"contentLoaded"})," lifecycle."]}),"\n",(0,i.jsxs)(n.admonition,{type:"info",children:[(0,i.jsxs)(n.p,{children:["If you use the plugin via the classic preset, the preset will ",(0,i.jsx)(n.strong,{children:"enable the plugin in development and disable it in production"})," by default (",(0,i.jsx)(n.code,{children:"debug: undefined"}),") to avoid exposing potentially sensitive information. You can use ",(0,i.jsx)(n.code,{children:"debug: true"})," to always enable it or ",(0,i.jsx)(n.code,{children:"debug: false"})," to always disable it."]}),(0,i.jsx)(n.p,{children:"If you use a standalone plugin, you may need to achieve the same effect by checking the environment:"}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n plugins: [\n // highlight-next-line\n process.env.NODE_ENV === 'production' && '@docusaurus/plugin-debug',\n ].filter(Boolean),\n};\n"})})]}),"\n",(0,i.jsxs)(n.admonition,{type:"note",children:[(0,i.jsx)(n.p,{children:"If you report a bug, we will probably ask you to have this plugin turned on in the production, so that we can inspect your deployment config more easily."}),(0,i.jsxs)(n.p,{children:["If you don't have any sensitive information, you can keep it on in production ",(0,i.jsx)(n.a,{href:"/__docusaurus/debug",children:"like we do"}),"."]})]}),"\n",(0,i.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,i.jsxs)(l.A,{groupId:"npm2yarn",children:[(0,i.jsx)(u.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm install --save @docusaurus/plugin-debug\n"})})}),(0,i.jsx)(u.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn add @docusaurus/plugin-debug\n"})})}),(0,i.jsx)(u.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm add @docusaurus/plugin-debug\n"})})})]}),"\n",(0,i.jsxs)(n.admonition,{type:"tip",children:[(0,i.jsxs)(n.p,{children:["If you use the preset ",(0,i.jsx)(n.code,{children:"@docusaurus/preset-classic"}),", you don't need to install this plugin as a dependency."]}),(0,i.jsxs)(n.p,{children:["You can configure this plugin through the ",(0,i.jsx)(n.a,{href:"/docs/using-plugins#docusauruspreset-classic",children:"preset options"}),"."]})]}),"\n",(0,i.jsx)(n.h2,{id:"configuration",children:"Configuration"}),"\n",(0,i.jsx)(n.p,{children:"This plugin currently has no options."}),"\n",(0,i.jsx)(n.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,i.jsx)(n.p,{children:"You can configure this plugin through preset options or plugin options."}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsx)(n.p,{children:"Most Docusaurus users configure this plugin through the preset options."})}),"\n",(0,i.jsxs)(l.A,{groupId:"api-config-ex",children:[(0,i.jsxs)(u.A,{value:"preset",label:"Preset options",children:[(0,i.jsxs)(n.p,{children:["If you use a preset, configure this plugin through the ",(0,i.jsx)(n.a,{href:"/docs/using-plugins#docusauruspreset-classic",children:"preset options"}),":"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n // highlight-next-line\n debug: true, // This will enable the plugin in production\n },\n ],\n ],\n};\n"})})]}),(0,i.jsxs)(u.A,{value:"plugin",label:"Plugin Options",children:[(0,i.jsx)(n.p,{children:"If you are using a standalone plugin, provide options directly to the plugin:"}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // highlight-next-line\n plugins: ['@docusaurus/plugin-debug'],\n};\n"})})]})]})]})}function h(e={}){let{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>l,x:()=>u});var r=t(63696);let i={},s=r.createContext(i);function l(e){let n=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function u(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7427],{15995:(e,n,t)=>{t.d(n,{A:()=>s});var r=t(62540);t(63696);var i=t(11750);function s({children:e,hidden:n,className:t}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,i.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>v});var r=t(62540),i=t(63696),s=t(11750),l=t(7846),u=t(49519),o=t(96439),a=t(19739),c=t(66904),d=t(79244);function p(e){var n,t;return null!==(t=null===(n=i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function h({value:e,tabValues:n}){return n.some(n=>n.value===e)}var g=t(10709);function f(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function b(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function m({className:e,block:n,selectedValue:t,selectValue:i,tabValues:u}){let o=[],{blockElementScrollPositionUntilNextRender:a}=(0,l.a_)(),c=e=>{let n=e.currentTarget,r=u[o.indexOf(n)].value;r!==t&&(a(n),i(r))},d=e=>{var n,t;let r=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{let t=o.indexOf(e.currentTarget)+1;r=null!==(n=o[t])&&void 0!==n?n:o[0];break}case"ArrowLeft":{let n=o.indexOf(e.currentTarget)-1;r=null!==(t=o[n])&&void 0!==t?t:o[o.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":n},e),children:u.map(({value:e,label:n,attributes:i})=>(0,r.jsx)("li",b(f({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>o.push(e),onKeyDown:d,onClick:c},i),{className:(0,s.A)("tabs__item","tabItem_AQgk",null==i?void 0:i.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function j({lazy:e,children:n,selectedValue:t}){let l=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=l.find(e=>e.props.value===t);return e?(0,i.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:l.map((e,n)=>(0,i.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function y(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,s=function(e){let{values:n,children:t}=e;return(0,i.useMemo)(()=>{let e=null!=n?n:p(t).map(({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r}));return!function(e){let n=(0,c.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[l,g]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!h({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:s})),[f,b]=function({queryString:e=!1,groupId:n}){let t=(0,u.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,a.aZ)(r),(0,i.useCallback)(e=>{var n,i;if(!r)return;let s=new URLSearchParams(t.location.search);s.set(r,e),t.replace((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},t.location),i=i={search:s.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(i)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(i,e))}),n))},[r,t])]}({queryString:t,groupId:r}),[m,j]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[t,r]=(0,d.Dv)(n);return[t,(0,i.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),y=(()=>{let e=null!=f?f:m;return h({value:e,tabValues:s})?e:null})();return(0,o.A)(()=>{y&&g(y)},[y]),{selectedValue:l,selectValue:(0,i.useCallback)(e=>{if(!h({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);g(e),b(e),j(e)},[b,j,s]),tabValues:s}}(e);return(0,r.jsxs)("div",{className:(0,s.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(m,f({},n,e)),(0,r.jsx)(j,f({},n,e))]})}function v(e){let n=(0,g.A)();return(0,r.jsx)(y,b(f({},e),{children:p(e.children)}),String(n))}},59591:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>d});let r=JSON.parse('{"id":"api/plugins/plugin-debug","title":"\u{1F4E6} plugin-debug","description":"The debug plugin will display useful debug information at http3000/docusaurus/debug.","source":"@site/docs/api/plugins/plugin-debug.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-debug","permalink":"/docs/api/plugins/@docusaurus/plugin-debug","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-debug.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":5,"frontMatter":{"sidebar_position":5,"slug":"/api/plugins/@docusaurus/plugin-debug"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-client-redirects","permalink":"/docs/api/plugins/@docusaurus/plugin-client-redirects"},"next":{"title":"\u{1F4E6} plugin-google-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-google-analytics"}}');var i=t(62540),s=t(43023),l=t(27446),u=t(15995);let o={sidebar_position:5,slug:"/api/plugins/@docusaurus/plugin-debug"},a="\u{1F4E6} plugin-debug",c={},d=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Example configuration",id:"ex-config",level:3}];function p(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"-plugin-debug",children:"\u{1F4E6} plugin-debug"})}),"\n","\n",(0,i.jsxs)(n.p,{children:["The debug plugin will display useful debug information at ",(0,i.jsx)(n.a,{href:"http://localhost:3000/__docusaurus/debug",children:(0,i.jsx)(n.code,{children:"http://localhost:3000/__docusaurus/debug"})}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["It is mostly useful for plugin authors, that will be able to inspect more easily the content of the ",(0,i.jsx)(n.code,{children:".docusaurus"})," folder (like the creates routes), but also be able to inspect data structures that are never written to disk, like the plugin data loaded through the ",(0,i.jsx)(n.code,{children:"contentLoaded"})," lifecycle."]}),"\n",(0,i.jsxs)(n.admonition,{type:"info",children:[(0,i.jsxs)(n.p,{children:["If you use the plugin via the classic preset, the preset will ",(0,i.jsx)(n.strong,{children:"enable the plugin in development and disable it in production"})," by default (",(0,i.jsx)(n.code,{children:"debug: undefined"}),") to avoid exposing potentially sensitive information. You can use ",(0,i.jsx)(n.code,{children:"debug: true"})," to always enable it or ",(0,i.jsx)(n.code,{children:"debug: false"})," to always disable it."]}),(0,i.jsx)(n.p,{children:"If you use a standalone plugin, you may need to achieve the same effect by checking the environment:"}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n plugins: [\n // highlight-next-line\n process.env.NODE_ENV === 'production' && '@docusaurus/plugin-debug',\n ].filter(Boolean),\n};\n"})})]}),"\n",(0,i.jsxs)(n.admonition,{type:"note",children:[(0,i.jsx)(n.p,{children:"If you report a bug, we will probably ask you to have this plugin turned on in the production, so that we can inspect your deployment config more easily."}),(0,i.jsxs)(n.p,{children:["If you don't have any sensitive information, you can keep it on in production ",(0,i.jsx)(n.a,{href:"/__docusaurus/debug",children:"like we do"}),"."]})]}),"\n",(0,i.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,i.jsxs)(l.A,{groupId:"npm2yarn",children:[(0,i.jsx)(u.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm install --save @docusaurus/plugin-debug\n"})})}),(0,i.jsx)(u.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn add @docusaurus/plugin-debug\n"})})}),(0,i.jsx)(u.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm add @docusaurus/plugin-debug\n"})})})]}),"\n",(0,i.jsxs)(n.admonition,{type:"tip",children:[(0,i.jsxs)(n.p,{children:["If you use the preset ",(0,i.jsx)(n.code,{children:"@docusaurus/preset-classic"}),", you don't need to install this plugin as a dependency."]}),(0,i.jsxs)(n.p,{children:["You can configure this plugin through the ",(0,i.jsx)(n.a,{href:"/docs/using-plugins#docusauruspreset-classic",children:"preset options"}),"."]})]}),"\n",(0,i.jsx)(n.h2,{id:"configuration",children:"Configuration"}),"\n",(0,i.jsx)(n.p,{children:"This plugin currently has no options."}),"\n",(0,i.jsx)(n.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,i.jsx)(n.p,{children:"You can configure this plugin through preset options or plugin options."}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsx)(n.p,{children:"Most Docusaurus users configure this plugin through the preset options."})}),"\n",(0,i.jsxs)(l.A,{groupId:"api-config-ex",children:[(0,i.jsxs)(u.A,{value:"preset",label:"Preset options",children:[(0,i.jsxs)(n.p,{children:["If you use a preset, configure this plugin through the ",(0,i.jsx)(n.a,{href:"/docs/using-plugins#docusauruspreset-classic",children:"preset options"}),":"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n // highlight-next-line\n debug: true, // This will enable the plugin in production\n },\n ],\n ],\n};\n"})})]}),(0,i.jsxs)(u.A,{value:"plugin",label:"Plugin Options",children:[(0,i.jsx)(n.p,{children:"If you are using a standalone plugin, provide options directly to the plugin:"}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // highlight-next-line\n plugins: ['@docusaurus/plugin-debug'],\n};\n"})})]})]})]})}function h(e={}){let{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>l,x:()=>u});var r=t(63696);let i={},s=r.createContext(i);function l(e){let n=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function u(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5423.9cae4d0c.js b/assets/js/5423.9cae4d0c.js new file mode 100644 index 0000000000..d828ac21b3 --- /dev/null +++ b/assets/js/5423.9cae4d0c.js @@ -0,0 +1,5 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5423],{5423:(t,e,a)=>{a.d(e,{diagram:()=>tv});var n,i=a(46192),s=a(67027),r=a(72912),l=a(89601),o=a(31546),h=function(){var t=(0,r.K2)(function(t,e,a,n){for(a=a||{},n=t.length;n--;a[t[n]]=e);return a},"o"),e=[1,24],a=[1,25],n=[1,26],i=[1,27],s=[1,28],l=[1,63],o=[1,64],h=[1,65],d=[1,66],u=[1,67],p=[1,68],y=[1,69],b=[1,29],g=[1,30],f=[1,31],x=[1,32],_=[1,33],m=[1,34],E=[1,35],A=[1,36],S=[1,37],C=[1,38],k=[1,39],w=[1,40],O=[1,41],T=[1,42],v=[1,43],R=[1,44],D=[1,45],N=[1,46],P=[1,47],B=[1,48],M=[1,50],j=[1,51],I=[1,52],K=[1,53],L=[1,54],Y=[1,55],U=[1,56],F=[1,57],X=[1,58],z=[1,59],W=[1,60],Q=[14,42],$=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],H=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],V=[1,82],q=[1,83],G=[1,84],J=[1,85],Z=[12,14,42],tt=[12,14,33,42],te=[12,14,33,42,76,77,79,80],ta=[12,33],tn=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],ti={trace:(0,r.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:(0,r.K2)(function(t,e,a,n,i,s,r){var l=s.length-1;switch(i){case 3:n.setDirection("TB");break;case 4:n.setDirection("BT");break;case 5:n.setDirection("RL");break;case 6:n.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:n.setC4Type(s[l-3]);break;case 19:n.setTitle(s[l].substring(6)),this.$=s[l].substring(6);break;case 20:n.setAccDescription(s[l].substring(15)),this.$=s[l].substring(15);break;case 21:this.$=s[l].trim(),n.setTitle(this.$);break;case 22:case 23:this.$=s[l].trim(),n.setAccDescription(this.$);break;case 28:s[l].splice(2,0,"ENTERPRISE"),n.addPersonOrSystemBoundary(...s[l]),this.$=s[l];break;case 29:s[l].splice(2,0,"SYSTEM"),n.addPersonOrSystemBoundary(...s[l]),this.$=s[l];break;case 30:n.addPersonOrSystemBoundary(...s[l]),this.$=s[l];break;case 31:s[l].splice(2,0,"CONTAINER"),n.addContainerBoundary(...s[l]),this.$=s[l];break;case 32:n.addDeploymentNode("node",...s[l]),this.$=s[l];break;case 33:n.addDeploymentNode("nodeL",...s[l]),this.$=s[l];break;case 34:n.addDeploymentNode("nodeR",...s[l]),this.$=s[l];break;case 35:n.popBoundaryParseStack();break;case 39:n.addPersonOrSystem("person",...s[l]),this.$=s[l];break;case 40:n.addPersonOrSystem("external_person",...s[l]),this.$=s[l];break;case 41:n.addPersonOrSystem("system",...s[l]),this.$=s[l];break;case 42:n.addPersonOrSystem("system_db",...s[l]),this.$=s[l];break;case 43:n.addPersonOrSystem("system_queue",...s[l]),this.$=s[l];break;case 44:n.addPersonOrSystem("external_system",...s[l]),this.$=s[l];break;case 45:n.addPersonOrSystem("external_system_db",...s[l]),this.$=s[l];break;case 46:n.addPersonOrSystem("external_system_queue",...s[l]),this.$=s[l];break;case 47:n.addContainer("container",...s[l]),this.$=s[l];break;case 48:n.addContainer("container_db",...s[l]),this.$=s[l];break;case 49:n.addContainer("container_queue",...s[l]),this.$=s[l];break;case 50:n.addContainer("external_container",...s[l]),this.$=s[l];break;case 51:n.addContainer("external_container_db",...s[l]),this.$=s[l];break;case 52:n.addContainer("external_container_queue",...s[l]),this.$=s[l];break;case 53:n.addComponent("component",...s[l]),this.$=s[l];break;case 54:n.addComponent("component_db",...s[l]),this.$=s[l];break;case 55:n.addComponent("component_queue",...s[l]),this.$=s[l];break;case 56:n.addComponent("external_component",...s[l]),this.$=s[l];break;case 57:n.addComponent("external_component_db",...s[l]),this.$=s[l];break;case 58:n.addComponent("external_component_queue",...s[l]),this.$=s[l];break;case 60:n.addRel("rel",...s[l]),this.$=s[l];break;case 61:n.addRel("birel",...s[l]),this.$=s[l];break;case 62:n.addRel("rel_u",...s[l]),this.$=s[l];break;case 63:n.addRel("rel_d",...s[l]),this.$=s[l];break;case 64:n.addRel("rel_l",...s[l]),this.$=s[l];break;case 65:n.addRel("rel_r",...s[l]),this.$=s[l];break;case 66:n.addRel("rel_b",...s[l]),this.$=s[l];break;case 67:s[l].splice(0,1),n.addRel("rel",...s[l]),this.$=s[l];break;case 68:n.updateElStyle("update_el_style",...s[l]),this.$=s[l];break;case 69:n.updateRelStyle("update_rel_style",...s[l]),this.$=s[l];break;case 70:n.updateLayoutConfig("update_layout_config",...s[l]),this.$=s[l];break;case 71:this.$=[s[l]];break;case 72:s[l].unshift(s[l-1]),this.$=s[l];break;case 73:case 75:this.$=s[l].trim();break;case 74:let o={};o[s[l-1].trim()]=s[l].trim(),this.$=o;break;case 76:this.$=""}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:e,23:a,24:n,26:i,28:s,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:y,43:23,44:b,45:g,46:f,47:x,48:_,49:m,50:E,51:A,52:S,53:C,54:k,55:w,56:O,57:T,58:v,59:R,60:D,61:N,62:P,63:B,64:M,65:j,66:I,67:K,68:L,69:Y,70:U,71:F,72:X,73:z,74:W},{13:70,19:20,20:21,21:22,22:e,23:a,24:n,26:i,28:s,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:y,43:23,44:b,45:g,46:f,47:x,48:_,49:m,50:E,51:A,52:S,53:C,54:k,55:w,56:O,57:T,58:v,59:R,60:D,61:N,62:P,63:B,64:M,65:j,66:I,67:K,68:L,69:Y,70:U,71:F,72:X,73:z,74:W},{13:71,19:20,20:21,21:22,22:e,23:a,24:n,26:i,28:s,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:y,43:23,44:b,45:g,46:f,47:x,48:_,49:m,50:E,51:A,52:S,53:C,54:k,55:w,56:O,57:T,58:v,59:R,60:D,61:N,62:P,63:B,64:M,65:j,66:I,67:K,68:L,69:Y,70:U,71:F,72:X,73:z,74:W},{13:72,19:20,20:21,21:22,22:e,23:a,24:n,26:i,28:s,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:y,43:23,44:b,45:g,46:f,47:x,48:_,49:m,50:E,51:A,52:S,53:C,54:k,55:w,56:O,57:T,58:v,59:R,60:D,61:N,62:P,63:B,64:M,65:j,66:I,67:K,68:L,69:Y,70:U,71:F,72:X,73:z,74:W},{13:73,19:20,20:21,21:22,22:e,23:a,24:n,26:i,28:s,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:y,43:23,44:b,45:g,46:f,47:x,48:_,49:m,50:E,51:A,52:S,53:C,54:k,55:w,56:O,57:T,58:v,59:R,60:D,61:N,62:P,63:B,64:M,65:j,66:I,67:K,68:L,69:Y,70:U,71:F,72:X,73:z,74:W},{14:[1,74]},t(Q,[2,13],{43:23,29:49,30:61,32:62,20:75,34:l,36:o,37:h,38:d,39:u,40:p,41:y,44:b,45:g,46:f,47:x,48:_,49:m,50:E,51:A,52:S,53:C,54:k,55:w,56:O,57:T,58:v,59:R,60:D,61:N,62:P,63:B,64:M,65:j,66:I,67:K,68:L,69:Y,70:U,71:F,72:X,73:z,74:W}),t(Q,[2,14]),t($,[2,16],{12:[1,76]}),t(Q,[2,36],{12:[1,77]}),t(H,[2,19]),t(H,[2,20]),{25:[1,78]},{27:[1,79]},t(H,[2,23]),{35:80,75:81,76:V,77:q,79:G,80:J},{35:86,75:81,76:V,77:q,79:G,80:J},{35:87,75:81,76:V,77:q,79:G,80:J},{35:88,75:81,76:V,77:q,79:G,80:J},{35:89,75:81,76:V,77:q,79:G,80:J},{35:90,75:81,76:V,77:q,79:G,80:J},{35:91,75:81,76:V,77:q,79:G,80:J},{35:92,75:81,76:V,77:q,79:G,80:J},{35:93,75:81,76:V,77:q,79:G,80:J},{35:94,75:81,76:V,77:q,79:G,80:J},{35:95,75:81,76:V,77:q,79:G,80:J},{35:96,75:81,76:V,77:q,79:G,80:J},{35:97,75:81,76:V,77:q,79:G,80:J},{35:98,75:81,76:V,77:q,79:G,80:J},{35:99,75:81,76:V,77:q,79:G,80:J},{35:100,75:81,76:V,77:q,79:G,80:J},{35:101,75:81,76:V,77:q,79:G,80:J},{35:102,75:81,76:V,77:q,79:G,80:J},{35:103,75:81,76:V,77:q,79:G,80:J},{35:104,75:81,76:V,77:q,79:G,80:J},t(Z,[2,59]),{35:105,75:81,76:V,77:q,79:G,80:J},{35:106,75:81,76:V,77:q,79:G,80:J},{35:107,75:81,76:V,77:q,79:G,80:J},{35:108,75:81,76:V,77:q,79:G,80:J},{35:109,75:81,76:V,77:q,79:G,80:J},{35:110,75:81,76:V,77:q,79:G,80:J},{35:111,75:81,76:V,77:q,79:G,80:J},{35:112,75:81,76:V,77:q,79:G,80:J},{35:113,75:81,76:V,77:q,79:G,80:J},{35:114,75:81,76:V,77:q,79:G,80:J},{35:115,75:81,76:V,77:q,79:G,80:J},{20:116,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:y,43:23,44:b,45:g,46:f,47:x,48:_,49:m,50:E,51:A,52:S,53:C,54:k,55:w,56:O,57:T,58:v,59:R,60:D,61:N,62:P,63:B,64:M,65:j,66:I,67:K,68:L,69:Y,70:U,71:F,72:X,73:z,74:W},{12:[1,118],33:[1,117]},{35:119,75:81,76:V,77:q,79:G,80:J},{35:120,75:81,76:V,77:q,79:G,80:J},{35:121,75:81,76:V,77:q,79:G,80:J},{35:122,75:81,76:V,77:q,79:G,80:J},{35:123,75:81,76:V,77:q,79:G,80:J},{35:124,75:81,76:V,77:q,79:G,80:J},{35:125,75:81,76:V,77:q,79:G,80:J},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},t(Q,[2,15]),t($,[2,17],{21:22,19:130,22:e,23:a,24:n,26:i,28:s}),t(Q,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:e,23:a,24:n,26:i,28:s,34:l,36:o,37:h,38:d,39:u,40:p,41:y,44:b,45:g,46:f,47:x,48:_,49:m,50:E,51:A,52:S,53:C,54:k,55:w,56:O,57:T,58:v,59:R,60:D,61:N,62:P,63:B,64:M,65:j,66:I,67:K,68:L,69:Y,70:U,71:F,72:X,73:z,74:W}),t(H,[2,21]),t(H,[2,22]),t(Z,[2,39]),t(tt,[2,71],{75:81,35:132,76:V,77:q,79:G,80:J}),t(te,[2,73]),{78:[1,133]},t(te,[2,75]),t(te,[2,76]),t(Z,[2,40]),t(Z,[2,41]),t(Z,[2,42]),t(Z,[2,43]),t(Z,[2,44]),t(Z,[2,45]),t(Z,[2,46]),t(Z,[2,47]),t(Z,[2,48]),t(Z,[2,49]),t(Z,[2,50]),t(Z,[2,51]),t(Z,[2,52]),t(Z,[2,53]),t(Z,[2,54]),t(Z,[2,55]),t(Z,[2,56]),t(Z,[2,57]),t(Z,[2,58]),t(Z,[2,60]),t(Z,[2,61]),t(Z,[2,62]),t(Z,[2,63]),t(Z,[2,64]),t(Z,[2,65]),t(Z,[2,66]),t(Z,[2,67]),t(Z,[2,68]),t(Z,[2,69]),t(Z,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},t(ta,[2,28]),t(ta,[2,29]),t(ta,[2,30]),t(ta,[2,31]),t(ta,[2,32]),t(ta,[2,33]),t(ta,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},t($,[2,18]),t(Q,[2,38]),t(tt,[2,72]),t(te,[2,74]),t(Z,[2,24]),t(Z,[2,35]),t(tn,[2,25]),t(tn,[2,26],{12:[1,138]}),t(tn,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:(0,r.K2)(function(t,e){if(e.recoverable)this.trace(t);else{var a=Error(t);throw a.hash=e,a}},"parseError"),parse:(0,r.K2)(function(t){var e=this,a=[0],n=[],i=[null],s=[],l=this.table,o="",h=0,d=0,u=0,p=s.slice.call(arguments,1),y=Object.create(this.lexer),b={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(b.yy[g]=this.yy[g]);y.setInput(t,b.yy),b.yy.lexer=y,b.yy.parser=this,void 0===y.yylloc&&(y.yylloc={});var f=y.yylloc;s.push(f);var x=y.options&&y.options.ranges;function _(){var t;return"number"!=typeof(t=n.pop()||y.lex()||1)&&(t instanceof Array&&(t=(n=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof b.yy.parseError?this.parseError=b.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,r.K2)(function(t){a.length=a.length-2*t,i.length=i.length-t,s.length=s.length-t},"popStack"),(0,r.K2)(_,"lex");for(var m,E,A,S,C,k,w,O,T,v={};;){if(A=a[a.length-1],this.defaultActions[A]?S=this.defaultActions[A]:(null==m&&(m=_()),S=l[A]&&l[A][m]),void 0===S||!S.length||!S[0]){var R="";for(k in T=[],l[A])this.terminals_[k]&&k>2&&T.push("'"+this.terminals_[k]+"'");R=y.showPosition?"Parse error on line "+(h+1)+":\n"+y.showPosition()+"\nExpecting "+T.join(", ")+", got '"+(this.terminals_[m]||m)+"'":"Parse error on line "+(h+1)+": Unexpected "+(1==m?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(R,{text:y.match,token:this.terminals_[m]||m,line:y.yylineno,loc:f,expected:T})}if(S[0]instanceof Array&&S.length>1)throw Error("Parse Error: multiple actions possible at state: "+A+", token: "+m);switch(S[0]){case 1:a.push(m),i.push(y.yytext),s.push(y.yylloc),a.push(S[1]),m=null,E?(m=E,E=null):(d=y.yyleng,o=y.yytext,h=y.yylineno,f=y.yylloc,u>0&&u--);break;case 2:if(w=this.productions_[S[1]][1],v.$=i[i.length-w],v._$={first_line:s[s.length-(w||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(w||1)].first_column,last_column:s[s.length-1].last_column},x&&(v._$.range=[s[s.length-(w||1)].range[0],s[s.length-1].range[1]]),void 0!==(C=this.performAction.apply(v,[o,d,h,b.yy,S[1],i,s].concat(p))))return C;w&&(a=a.slice(0,-1*w*2),i=i.slice(0,-1*w),s=s.slice(0,-1*w)),a.push(this.productions_[S[1]][0]),i.push(v.$),s.push(v._$),O=l[a[a.length-2]][a[a.length-1]],a.push(O);break;case 3:return!0}}return!0},"parse")},ts={EOF:1,parseError:(0,r.K2)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,r.K2)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,r.K2)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,r.K2)(function(t){var e=t.length,a=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===n.length?this.yylloc.first_column:0)+n[n.length-a.length].length-a[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,r.K2)(function(){return this._more=!0,this},"more"),reject:(0,r.K2)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,r.K2)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,r.K2)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,r.K2)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,r.K2)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,r.K2)(function(t,e){var a,n,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(n=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],a=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a)return a;if(this._backtrack)for(var s in i)this[s]=i[s];return!1},"test_match"),next:(0,r.K2)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,a,n,i=this._currentRules(),s=0;s<i.length;s++)if((a=this._input.match(this.rules[i[s]]))&&(!e||a[0].length>e[0].length)){if(e=a,n=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(a,i[s])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,r.K2)(function(){return this.next()||this.lex()},"lex"),begin:(0,r.K2)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,r.K2)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,r.K2)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,r.K2)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,r.K2)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,r.K2)(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:(0,r.K2)(function(t,e,a,n){switch(a){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),26;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 73:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:case 16:case 70:break;case 14:c;break;case 15:return 12;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;case 23:return this.begin("person"),44;case 24:return this.begin("system_ext_queue"),51;case 25:return this.begin("system_ext_db"),50;case 26:return this.begin("system_ext"),49;case 27:return this.begin("system_queue"),48;case 28:return this.begin("system_db"),47;case 29:return this.begin("system"),46;case 30:return this.begin("boundary"),37;case 31:return this.begin("enterprise_boundary"),34;case 32:return this.begin("system_boundary"),36;case 33:return this.begin("container_ext_queue"),57;case 34:return this.begin("container_ext_db"),56;case 35:return this.begin("container_ext"),55;case 36:return this.begin("container_queue"),54;case 37:return this.begin("container_db"),53;case 38:return this.begin("container"),52;case 39:return this.begin("container_boundary"),38;case 40:return this.begin("component_ext_queue"),63;case 41:return this.begin("component_ext_db"),62;case 42:return this.begin("component_ext"),61;case 43:return this.begin("component_queue"),60;case 44:return this.begin("component_db"),59;case 45:return this.begin("component"),58;case 46:case 47:return this.begin("node"),39;case 48:return this.begin("node_l"),40;case 49:return this.begin("node_r"),41;case 50:return this.begin("rel"),64;case 51:return this.begin("birel"),65;case 52:case 53:return this.begin("rel_u"),66;case 54:case 55:return this.begin("rel_d"),67;case 56:case 57:return this.begin("rel_l"),68;case 58:case 59:return this.begin("rel_r"),69;case 60:return this.begin("rel_b"),70;case 61:return this.begin("rel_index"),71;case 62:return this.begin("update_el_style"),72;case 63:return this.begin("update_rel_style"),73;case 64:return this.begin("update_layout_config"),74;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 67:this.begin("attribute");break;case 68:case 79:this.popState(),this.popState();break;case 69:case 71:return 80;case 72:this.begin("string");break;case 74:case 80:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};function tr(){this.yy={}}return ti.lexer=ts,(0,r.K2)(tr,"Parser"),tr.prototype=ti,ti.Parser=tr,new tr}();h.parser=h;var d=[],u=[""],p="global",y="",b=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],g=[],f="",x=!1,_=4,m=2,E=(0,r.K2)(function(){return n},"getC4Type"),A=(0,r.K2)(function(t){n=(0,r.jZ)(t,(0,r.D7)())},"setC4Type"),S=(0,r.K2)(function(t,e,a,n,i,s,r,l,o){if(null==t||null==e||null==a||null==n)return;let h={},d=g.find(t=>t.from===e&&t.to===a);if(d?h=d:g.push(h),h.type=t,h.from=e,h.to=a,h.label={text:n},null==i)h.techn={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];h[t]={text:e}}else h.techn={text:i};if(null==s)h.descr={text:""};else if("object"==typeof s){let[t,e]=Object.entries(s)[0];h[t]={text:e}}else h.descr={text:s};if("object"==typeof r){let[t,e]=Object.entries(r)[0];h[t]=e}else h.sprite=r;if("object"==typeof l){let[t,e]=Object.entries(l)[0];h[t]=e}else h.tags=l;if("object"==typeof o){let[t,e]=Object.entries(o)[0];h[t]=e}else h.link=o;h.wrap=W()},"addRel"),C=(0,r.K2)(function(t,e,a,n,i,s,r){if(null===e||null===a)return;let l={},o=d.find(t=>t.alias===e);if(o&&e===o.alias?l=o:(l.alias=e,d.push(l)),null==a?l.label={text:""}:l.label={text:a},null==n)l.descr={text:""};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];l[t]={text:e}}else l.descr={text:n};if("object"==typeof i){let[t,e]=Object.entries(i)[0];l[t]=e}else l.sprite=i;if("object"==typeof s){let[t,e]=Object.entries(s)[0];l[t]=e}else l.tags=s;if("object"==typeof r){let[t,e]=Object.entries(r)[0];l[t]=e}else l.link=r;l.typeC4Shape={text:t},l.parentBoundary=p,l.wrap=W()},"addPersonOrSystem"),k=(0,r.K2)(function(t,e,a,n,i,s,r,l){if(null===e||null===a)return;let o={},h=d.find(t=>t.alias===e);if(h&&e===h.alias?o=h:(o.alias=e,d.push(o)),null==a?o.label={text:""}:o.label={text:a},null==n)o.techn={text:""};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];o[t]={text:e}}else o.techn={text:n};if(null==i)o.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];o[t]={text:e}}else o.descr={text:i};if("object"==typeof s){let[t,e]=Object.entries(s)[0];o[t]=e}else o.sprite=s;if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=e}else o.tags=r;if("object"==typeof l){let[t,e]=Object.entries(l)[0];o[t]=e}else o.link=l;o.wrap=W(),o.typeC4Shape={text:t},o.parentBoundary=p},"addContainer"),w=(0,r.K2)(function(t,e,a,n,i,s,r,l){if(null===e||null===a)return;let o={},h=d.find(t=>t.alias===e);if(h&&e===h.alias?o=h:(o.alias=e,d.push(o)),null==a?o.label={text:""}:o.label={text:a},null==n)o.techn={text:""};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];o[t]={text:e}}else o.techn={text:n};if(null==i)o.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];o[t]={text:e}}else o.descr={text:i};if("object"==typeof s){let[t,e]=Object.entries(s)[0];o[t]=e}else o.sprite=s;if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=e}else o.tags=r;if("object"==typeof l){let[t,e]=Object.entries(l)[0];o[t]=e}else o.link=l;o.wrap=W(),o.typeC4Shape={text:t},o.parentBoundary=p},"addComponent"),O=(0,r.K2)(function(t,e,a,n,i){if(null===t||null===e)return;let s={},r=b.find(e=>e.alias===t);if(r&&t===r.alias?s=r:(s.alias=t,b.push(s)),null==e?s.label={text:""}:s.label={text:e},null==a)s.type={text:"system"};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];s[t]={text:e}}else s.type={text:a};if("object"==typeof n){let[t,e]=Object.entries(n)[0];s[t]=e}else s.tags=n;if("object"==typeof i){let[t,e]=Object.entries(i)[0];s[t]=e}else s.link=i;s.parentBoundary=p,s.wrap=W(),y=p,p=t,u.push(y)},"addPersonOrSystemBoundary"),T=(0,r.K2)(function(t,e,a,n,i){if(null===t||null===e)return;let s={},r=b.find(e=>e.alias===t);if(r&&t===r.alias?s=r:(s.alias=t,b.push(s)),null==e?s.label={text:""}:s.label={text:e},null==a)s.type={text:"container"};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];s[t]={text:e}}else s.type={text:a};if("object"==typeof n){let[t,e]=Object.entries(n)[0];s[t]=e}else s.tags=n;if("object"==typeof i){let[t,e]=Object.entries(i)[0];s[t]=e}else s.link=i;s.parentBoundary=p,s.wrap=W(),y=p,p=t,u.push(y)},"addContainerBoundary"),v=(0,r.K2)(function(t,e,a,n,i,s,r,l){if(null===e||null===a)return;let o={},h=b.find(t=>t.alias===e);if(h&&e===h.alias?o=h:(o.alias=e,b.push(o)),null==a?o.label={text:""}:o.label={text:a},null==n)o.type={text:"node"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];o[t]={text:e}}else o.type={text:n};if(null==i)o.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];o[t]={text:e}}else o.descr={text:i};if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=e}else o.tags=r;if("object"==typeof l){let[t,e]=Object.entries(l)[0];o[t]=e}else o.link=l;o.nodeType=t,o.parentBoundary=p,o.wrap=W(),y=p,p=e,u.push(y)},"addDeploymentNode"),R=(0,r.K2)(function(){p=y,u.pop(),y=u.pop(),u.push(y)},"popBoundaryParseStack"),D=(0,r.K2)(function(t,e,a,n,i,s,r,l,o,h,u){let p=d.find(t=>t.alias===e);if(void 0!==p||void 0!==(p=b.find(t=>t.alias===e))){if(null!=a){if("object"==typeof a){let[t,e]=Object.entries(a)[0];p[t]=e}else p.bgColor=a}if(null!=n){if("object"==typeof n){let[t,e]=Object.entries(n)[0];p[t]=e}else p.fontColor=n}if(null!=i){if("object"==typeof i){let[t,e]=Object.entries(i)[0];p[t]=e}else p.borderColor=i}if(null!=s){if("object"==typeof s){let[t,e]=Object.entries(s)[0];p[t]=e}else p.shadowing=s}if(null!=r){if("object"==typeof r){let[t,e]=Object.entries(r)[0];p[t]=e}else p.shape=r}if(null!=l){if("object"==typeof l){let[t,e]=Object.entries(l)[0];p[t]=e}else p.sprite=l}if(null!=o){if("object"==typeof o){let[t,e]=Object.entries(o)[0];p[t]=e}else p.techn=o}if(null!=h){if("object"==typeof h){let[t,e]=Object.entries(h)[0];p[t]=e}else p.legendText=h}if(null!=u){if("object"==typeof u){let[t,e]=Object.entries(u)[0];p[t]=e}else p.legendSprite=u}}},"updateElStyle"),N=(0,r.K2)(function(t,e,a,n,i,s,r){let l=g.find(t=>t.from===e&&t.to===a);if(void 0!==l){if(null!=n){if("object"==typeof n){let[t,e]=Object.entries(n)[0];l[t]=e}else l.textColor=n}if(null!=i){if("object"==typeof i){let[t,e]=Object.entries(i)[0];l[t]=e}else l.lineColor=i}if(null!=s){if("object"==typeof s){let[t,e]=Object.entries(s)[0];l[t]=parseInt(e)}else l.offsetX=parseInt(s)}if(null!=r){if("object"==typeof r){let[t,e]=Object.entries(r)[0];l[t]=parseInt(e)}else l.offsetY=parseInt(r)}}},"updateRelStyle"),P=(0,r.K2)(function(t,e,a){let n=_,i=m;n="object"==typeof e?parseInt(Object.values(e)[0]):parseInt(e),i="object"==typeof a?parseInt(Object.values(a)[0]):parseInt(a),n>=1&&(_=n),i>=1&&(m=i)},"updateLayoutConfig"),B=(0,r.K2)(function(){return _},"getC4ShapeInRow"),M=(0,r.K2)(function(){return m},"getC4BoundaryInRow"),j=(0,r.K2)(function(){return p},"getCurrentBoundaryParse"),I=(0,r.K2)(function(){return y},"getParentBoundaryParse"),K=(0,r.K2)(function(t){return null==t?d:d.filter(e=>e.parentBoundary===t)},"getC4ShapeArray"),L=(0,r.K2)(function(t){return d.find(e=>e.alias===t)},"getC4Shape"),Y=(0,r.K2)(function(t){return Object.keys(K(t))},"getC4ShapeKeys"),U=(0,r.K2)(function(t){return null==t?b:b.filter(e=>e.parentBoundary===t)},"getBoundaries"),F=(0,r.K2)(function(){return g},"getRels"),X=(0,r.K2)(function(){return f},"getTitle"),z=(0,r.K2)(function(t){x=t},"setWrap"),W=(0,r.K2)(function(){return x},"autoWrap"),Q=(0,r.K2)(function(){d=[],b=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],y="",p="global",u=[""],g=[],u=[""],f="",x=!1,_=4,m=2},"clear"),$=(0,r.K2)(function(t){f=(0,r.jZ)(t,(0,r.D7)())},"setTitle"),H={addPersonOrSystem:C,addPersonOrSystemBoundary:O,addContainer:k,addContainerBoundary:T,addComponent:w,addDeploymentNode:v,popBoundaryParseStack:R,addRel:S,updateElStyle:D,updateRelStyle:N,updateLayoutConfig:P,autoWrap:W,setWrap:z,getC4ShapeArray:K,getC4Shape:L,getC4ShapeKeys:Y,getBoundaries:U,getBoundarys:U,getCurrentBoundaryParse:j,getParentBoundaryParse:I,getRels:F,getTitle:X,getC4Type:E,getC4ShapeInRow:B,getC4BoundaryInRow:M,setAccTitle:r.SV,getAccTitle:r.iN,getAccDescription:r.m7,setAccDescription:r.EI,getConfig:(0,r.K2)(()=>(0,r.D7)().c4,"getConfig"),clear:Q,LINETYPE:{SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},setTitle:$,setC4Type:A},V=(0,r.K2)(function(t,e){return(0,i.tk)(t,e)},"drawRect"),q=(0,r.K2)(function(t,e,a,n,i,s){let r=t.append("image");r.attr("width",e),r.attr("height",a),r.attr("x",n),r.attr("y",i);let l=s.startsWith("data:image/png;base64")?s:(0,o.J)(s);r.attr("xlink:href",l)},"drawImage"),G=(0,r.K2)((t,e,a)=>{let n=t.append("g"),i=0;for(let t of e){let e=t.textColor?t.textColor:"#444444",s=t.lineColor?t.lineColor:"#444444",r=t.offsetX?parseInt(t.offsetX):0,l=t.offsetY?parseInt(t.offsetY):0;if(0===i){let e=n.append("line");e.attr("x1",t.startPoint.x),e.attr("y1",t.startPoint.y),e.attr("x2",t.endPoint.x),e.attr("y2",t.endPoint.y),e.attr("stroke-width","1"),e.attr("stroke",s),e.style("fill","none"),"rel_b"!==t.type&&e.attr("marker-end","url(#arrowhead)"),("birel"===t.type||"rel_b"===t.type)&&e.attr("marker-start","url(#arrowend)"),i=-1}else{let e=n.append("path");e.attr("fill","none").attr("stroke-width","1").attr("stroke",s).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",t.startPoint.x).replaceAll("starty",t.startPoint.y).replaceAll("controlx",t.startPoint.x+(t.endPoint.x-t.startPoint.x)/2-(t.endPoint.x-t.startPoint.x)/4).replaceAll("controly",t.startPoint.y+(t.endPoint.y-t.startPoint.y)/2).replaceAll("stopx",t.endPoint.x).replaceAll("stopy",t.endPoint.y)),"rel_b"!==t.type&&e.attr("marker-end","url(#arrowhead)"),("birel"===t.type||"rel_b"===t.type)&&e.attr("marker-start","url(#arrowend)")}let o=a.messageFont();to(a)(t.label.text,n,Math.min(t.startPoint.x,t.endPoint.x)+Math.abs(t.endPoint.x-t.startPoint.x)/2+r,Math.min(t.startPoint.y,t.endPoint.y)+Math.abs(t.endPoint.y-t.startPoint.y)/2+l,t.label.width,t.label.height,{fill:e},o),t.techn&&""!==t.techn.text&&(o=a.messageFont(),to(a)("["+t.techn.text+"]",n,Math.min(t.startPoint.x,t.endPoint.x)+Math.abs(t.endPoint.x-t.startPoint.x)/2+r,Math.min(t.startPoint.y,t.endPoint.y)+Math.abs(t.endPoint.y-t.startPoint.y)/2+a.messageFontSize+5+l,Math.max(t.label.width,t.techn.width),t.techn.height,{fill:e,"font-style":"italic"},o))}},"drawRels"),J=(0,r.K2)(function(t,e,a){let n=t.append("g"),i=e.bgColor?e.bgColor:"none",s=e.borderColor?e.borderColor:"#444444",r=e.fontColor?e.fontColor:"black",l={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};e.nodeType&&(l={"stroke-width":1}),V(n,{x:e.x,y:e.y,fill:i,stroke:s,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:l});let o=a.boundaryFont();o.fontWeight="bold",o.fontSize=o.fontSize+2,o.fontColor=r,to(a)(e.label.text,n,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},o),e.type&&""!==e.type.text&&((o=a.boundaryFont()).fontColor=r,to(a)(e.type.text,n,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},o)),e.descr&&""!==e.descr.text&&((o=a.boundaryFont()).fontSize=o.fontSize-2,o.fontColor=r,to(a)(e.descr.text,n,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},o))},"drawBoundary"),Z=(0,r.K2)(function(t,e,a){let n=e.bgColor?e.bgColor:a[e.typeC4Shape.text+"_bg_color"],s=e.borderColor?e.borderColor:a[e.typeC4Shape.text+"_border_color"],r=e.fontColor?e.fontColor:"#FFFFFF",l="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":l="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":l="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII="}let o=t.append("g");o.attr("class","person-man");let h=(0,i.PB)();switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":h.x=e.x,h.y=e.y,h.fill=n,h.width=e.width,h.height=e.height,h.stroke=s,h.rx=2.5,h.ry=2.5,h.attrs={"stroke-width":.5},V(o,h);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":o.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",s).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height)),o.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",s).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":o.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",s).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2)),o.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",s).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2))}let d=tl(a,e.typeC4Shape.text);switch(o.append("text").attr("fill",r).attr("font-family",d.fontFamily).attr("font-size",d.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>"),e.typeC4Shape.text){case"person":case"external_person":q(o,48,48,e.x+e.width/2-24,e.y+e.image.Y,l)}let u=a[e.typeC4Shape.text+"Font"]();return u.fontWeight="bold",u.fontSize=u.fontSize+2,u.fontColor=r,to(a)(e.label.text,o,e.x,e.y+e.label.Y,e.width,e.height,{fill:r},u),(u=a[e.typeC4Shape.text+"Font"]()).fontColor=r,e.techn&&e.techn?.text!==""?to(a)(e.techn.text,o,e.x,e.y+e.techn.Y,e.width,e.height,{fill:r,"font-style":"italic"},u):e.type&&""!==e.type.text&&to(a)(e.type.text,o,e.x,e.y+e.type.Y,e.width,e.height,{fill:r,"font-style":"italic"},u),e.descr&&""!==e.descr.text&&((u=a.personFont()).fontColor=r,to(a)(e.descr.text,o,e.x,e.y+e.descr.Y,e.width,e.height,{fill:r},u)),e.height},"drawC4Shape"),tt=(0,r.K2)(function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),te=(0,r.K2)(function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),ta=(0,r.K2)(function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),tn=(0,r.K2)(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},"insertArrowHead"),ti=(0,r.K2)(function(t){t.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},"insertArrowEnd"),ts=(0,r.K2)(function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),tr=(0,r.K2)(function(t){let e=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);e.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),e.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},"insertArrowCrossHead"),tl=(0,r.K2)((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"getC4ShapeFont"),to=function(){function t(t,e,a,i,s,r,l){n(e.append("text").attr("x",a+s/2).attr("y",i+r/2+5).style("text-anchor","middle").text(t),l)}function e(t,e,a,i,s,l,o,h){let{fontSize:d,fontFamily:u,fontWeight:p}=h,y=t.split(r.Y2.lineBreakRegex);for(let t=0;t<y.length;t++){let r=t*d-d*(y.length-1)/2,l=e.append("text").attr("x",a+s/2).attr("y",i).style("text-anchor","middle").attr("dominant-baseline","middle").style("font-size",d).style("font-weight",p).style("font-family",u);l.append("tspan").attr("dy",r).text(y[t]).attr("alignment-baseline","mathematical"),n(l,o)}}function a(t,a,i,s,r,l,o,h){let d=a.append("switch"),u=d.append("foreignObject").attr("x",i).attr("y",s).attr("width",r).attr("height",l).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");u.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,d,i,s,r,l,o,h),n(u,o)}function n(t,e){for(let a in e)e.hasOwnProperty(a)&&t.attr(a,e[a])}return(0,r.K2)(t,"byText"),(0,r.K2)(e,"byTspan"),(0,r.K2)(a,"byFo"),(0,r.K2)(n,"_setTextAttrs"),function(n){return"fo"===n.textPlacement?a:"old"===n.textPlacement?t:e}}(),tc={drawBoundary:J,drawC4Shape:Z,drawRels:G,insertArrowHead:tn,insertArrowEnd:ti,insertArrowFilledHead:ts,insertArrowCrossHead:tr,insertDatabaseIcon:tt,insertComputerIcon:te,insertClockIcon:ta},th=0,td=0,tu=4,tp=2;h.yy=H;var ty={},tb=class{static{(0,r.K2)(this,"Bounds")}constructor(t){this.name="",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,tg(t.db.getConfig())}setData(t,e,a,n){this.nextData.startx=this.data.startx=t,this.nextData.stopx=this.data.stopx=e,this.nextData.starty=this.data.starty=a,this.nextData.stopy=this.data.stopy=n}updateVal(t,e,a,n){void 0===t[e]?t[e]=a:t[e]=n(a,t[e])}insert(t){this.nextData.cnt=this.nextData.cnt+1;let e=this.nextData.startx===this.nextData.stopx?this.nextData.stopx+t.margin:this.nextData.stopx+2*t.margin,a=e+t.width,n=this.nextData.starty+2*t.margin,i=n+t.height;(e>=this.data.widthLimit||a>=this.data.widthLimit||this.nextData.cnt>tu)&&(e=this.nextData.startx+t.margin+ty.nextLinePaddingX,n=this.nextData.stopy+2*t.margin,this.nextData.stopx=a=e+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=i=n+t.height,this.nextData.cnt=1),t.x=e,t.y=n,this.updateVal(this.data,"startx",e,Math.min),this.updateVal(this.data,"starty",n,Math.min),this.updateVal(this.data,"stopx",a,Math.max),this.updateVal(this.data,"stopy",i,Math.max),this.updateVal(this.nextData,"startx",e,Math.min),this.updateVal(this.nextData,"starty",n,Math.min),this.updateVal(this.nextData,"stopx",a,Math.max),this.updateVal(this.nextData,"stopy",i,Math.max)}init(t){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},tg(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}},tg=(0,r.K2)(function(t){(0,r.hH)(ty,t),t.fontFamily&&(ty.personFontFamily=ty.systemFontFamily=ty.messageFontFamily=t.fontFamily),t.fontSize&&(ty.personFontSize=ty.systemFontSize=ty.messageFontSize=t.fontSize),t.fontWeight&&(ty.personFontWeight=ty.systemFontWeight=ty.messageFontWeight=t.fontWeight)},"setConf"),tf=(0,r.K2)((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"c4ShapeFont"),tx=(0,r.K2)(t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight}),"boundaryFont"),t_=(0,r.K2)(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont");function tm(t,e,a,n,i){if(!e[t].width){if(a)e[t].text=(0,s.bH)(e[t].text,i,n),e[t].textLines=e[t].text.split(r.Y2.lineBreakRegex).length,e[t].width=i,e[t].height=(0,s.ru)(e[t].text,n);else{let a=e[t].text.split(r.Y2.lineBreakRegex);e[t].textLines=a.length;let i=0;for(let r of(e[t].height=0,e[t].width=0,a))e[t].width=Math.max((0,s.Un)(r,n),e[t].width),i=(0,s.ru)(r,n),e[t].height=e[t].height+i}}}(0,r.K2)(tm,"calcC4ShapeTextWH");var tE=(0,r.K2)(function(t,e,a){e.x=a.data.startx,e.y=a.data.starty,e.width=a.data.stopx-a.data.startx,e.height=a.data.stopy-a.data.starty,e.label.y=ty.c4ShapeMargin-35;let n=e.wrap&&ty.wrap,i=tx(ty);i.fontSize=i.fontSize+2,i.fontWeight="bold";let r=(0,s.Un)(e.label.text,i);tm("label",e,n,i,r),tc.drawBoundary(t,e,ty)},"drawBoundary"),tA=(0,r.K2)(function(t,e,a,n){let i=0;for(let r of n){i=0;let n=a[r],l=tf(ty,n.typeC4Shape.text);switch(l.fontSize=l.fontSize-2,n.typeC4Shape.width=(0,s.Un)("\xab"+n.typeC4Shape.text+"\xbb",l),n.typeC4Shape.height=l.fontSize+2,n.typeC4Shape.Y=ty.c4ShapePadding,i=n.typeC4Shape.Y+n.typeC4Shape.height-4,n.image={width:0,height:0,Y:0},n.typeC4Shape.text){case"person":case"external_person":n.image.width=48,n.image.height=48,n.image.Y=i,i=n.image.Y+n.image.height}n.sprite&&(n.image.width=48,n.image.height=48,n.image.Y=i,i=n.image.Y+n.image.height);let o=n.wrap&&ty.wrap,h=ty.width-2*ty.c4ShapePadding,d=tf(ty,n.typeC4Shape.text);if(d.fontSize=d.fontSize+2,d.fontWeight="bold",tm("label",n,o,d,h),n.label.Y=i+8,i=n.label.Y+n.label.height,n.type&&""!==n.type.text){n.type.text="["+n.type.text+"]";let t=tf(ty,n.typeC4Shape.text);tm("type",n,o,t,h),n.type.Y=i+5,i=n.type.Y+n.type.height}else if(n.techn&&""!==n.techn.text){n.techn.text="["+n.techn.text+"]";let t=tf(ty,n.techn.text);tm("techn",n,o,t,h),n.techn.Y=i+5,i=n.techn.Y+n.techn.height}let u=i,p=n.label.width;if(n.descr&&""!==n.descr.text){let t=tf(ty,n.typeC4Shape.text);tm("descr",n,o,t,h),n.descr.Y=i+20,i=n.descr.Y+n.descr.height,p=Math.max(n.label.width,n.descr.width),u=i-5*n.descr.textLines}p+=ty.c4ShapePadding,n.width=Math.max(n.width||ty.width,p,ty.width),n.height=Math.max(n.height||ty.height,u,ty.height),n.margin=n.margin||ty.c4ShapeMargin,t.insert(n),tc.drawC4Shape(e,n,ty)}t.bumpLastMargin(ty.c4ShapeMargin)},"drawC4ShapeArray"),tS=class{static{(0,r.K2)(this,"Point")}constructor(t,e){this.x=t,this.y=e}},tC=(0,r.K2)(function(t,e){let a=t.x,n=t.y,i=e.x,s=e.y,r=a+t.width/2,l=n+t.height/2,o=Math.abs(a-i),h=Math.abs(n-s),d=h/o,u=t.height/t.width,p=null;return n==s&&a<i?p=new tS(a+t.width,l):n==s&&a>i?p=new tS(a,l):a==i&&n<s?p=new tS(r,n+t.height):a==i&&n>s&&(p=new tS(r,n)),a>i&&n<s?p=u>=d?new tS(a,l+d*t.width/2):new tS(r-o/h*t.height/2,n+t.height):a<i&&n<s?p=u>=d?new tS(a+t.width,l+d*t.width/2):new tS(r+o/h*t.height/2,n+t.height):a<i&&n>s?p=u>=d?new tS(a+t.width,l-d*t.width/2):new tS(r+t.height/2*o/h,n):a>i&&n>s&&(p=u>=d?new tS(a,l-t.width/2*d):new tS(r-t.height/2*o/h,n)),p},"getIntersectPoint"),tk=(0,r.K2)(function(t,e){let a={x:0,y:0};a.x=e.x+e.width/2,a.y=e.y+e.height/2;let n=tC(t,a);return a.x=t.x+t.width/2,a.y=t.y+t.height/2,{startPoint:n,endPoint:tC(e,a)}},"getIntersectPoints"),tw=(0,r.K2)(function(t,e,a,n){let i=0;for(let t of e){i+=1;let e=t.wrap&&ty.wrap,r=t_(ty);"C4Dynamic"===n.db.getC4Type()&&(t.label.text=i+": "+t.label.text);let l=(0,s.Un)(t.label.text,r);tm("label",t,e,r,l),t.techn&&""!==t.techn.text&&(l=(0,s.Un)(t.techn.text,r),tm("techn",t,e,r,l)),t.descr&&""!==t.descr.text&&(l=(0,s.Un)(t.descr.text,r),tm("descr",t,e,r,l));let o=tk(a(t.from),a(t.to));t.startPoint=o.startPoint,t.endPoint=o.endPoint}tc.drawRels(t,e,ty)},"drawRels");function tO(t,e,a,n,i){let s=new tb(i);for(let[r,l]of(s.data.widthLimit=a.data.widthLimit/Math.min(tp,n.length),n.entries())){let n=0;l.image={width:0,height:0,Y:0},l.sprite&&(l.image.width=48,l.image.height=48,l.image.Y=n,n=l.image.Y+l.image.height);let o=l.wrap&&ty.wrap,h=tx(ty);if(h.fontSize=h.fontSize+2,h.fontWeight="bold",tm("label",l,o,h,s.data.widthLimit),l.label.Y=n+8,n=l.label.Y+l.label.height,l.type&&""!==l.type.text&&(l.type.text="["+l.type.text+"]",tm("type",l,o,tx(ty),s.data.widthLimit),l.type.Y=n+5,n=l.type.Y+l.type.height),l.descr&&""!==l.descr.text){let t=tx(ty);t.fontSize=t.fontSize-2,tm("descr",l,o,t,s.data.widthLimit),l.descr.Y=n+20,n=l.descr.Y+l.descr.height}if(0==r||r%tp==0){let t=a.data.startx+ty.diagramMarginX,e=a.data.stopy+ty.diagramMarginY+n;s.setData(t,t,e,e)}else{let t=s.data.stopx!==s.data.startx?s.data.stopx+ty.diagramMarginX:s.data.startx,e=s.data.starty;s.setData(t,t,e,e)}s.name=l.alias;let d=i.db.getC4ShapeArray(l.alias),u=i.db.getC4ShapeKeys(l.alias);u.length>0&&tA(s,t,d,u),e=l.alias;let p=i.db.getBoundarys(e);p.length>0&&tO(t,e,s,p,i),"global"!==l.alias&&tE(t,l,s),a.data.stopy=Math.max(s.data.stopy+ty.c4ShapeMargin,a.data.stopy),a.data.stopx=Math.max(s.data.stopx+ty.c4ShapeMargin,a.data.stopx),th=Math.max(th,a.data.stopx),td=Math.max(td,a.data.stopy)}}(0,r.K2)(tO,"drawInsideBoundary");var tT={drawPersonOrSystemArray:tA,drawBoundary:tE,setConf:tg,draw:(0,r.K2)(function(t,e,a,n){let i;ty=(0,r.D7)().c4;let s=(0,r.D7)().securityLevel;"sandbox"===s&&(i=(0,l.Ltv)("#i"+e));let o="sandbox"===s?(0,l.Ltv)(i.nodes()[0].contentDocument.body):(0,l.Ltv)("body"),h=n.db;n.db.setWrap(ty.wrap),tu=h.getC4ShapeInRow(),tp=h.getC4BoundaryInRow(),r.Rm.debug(`C:${JSON.stringify(ty,null,2)}`);let d="sandbox"===s?o.select(`[id="${e}"]`):(0,l.Ltv)(`[id="${e}"]`);tc.insertComputerIcon(d),tc.insertDatabaseIcon(d),tc.insertClockIcon(d);let u=new tb(n);u.setData(ty.diagramMarginX,ty.diagramMarginX,ty.diagramMarginY,ty.diagramMarginY),u.data.widthLimit=screen.availWidth,th=ty.diagramMarginX,td=ty.diagramMarginY;let p=n.db.getTitle();tO(d,"",u,n.db.getBoundarys(""),n),tc.insertArrowHead(d),tc.insertArrowEnd(d),tc.insertArrowCrossHead(d),tc.insertArrowFilledHead(d),tw(d,n.db.getRels(),n.db.getC4Shape,n),u.data.stopx=th,u.data.stopy=td;let y=u.data,b=y.stopy-y.starty+2*ty.diagramMarginY,g=y.stopx-y.startx+2*ty.diagramMarginX;p&&d.append("text").text(p).attr("x",(y.stopx-y.startx)/2-4*ty.diagramMarginX).attr("y",y.starty+ty.diagramMarginY),(0,r.a$)(d,b,g,ty.useMaxWidth);let f=p?60:0;d.attr("viewBox",y.startx-ty.diagramMarginX+" -"+(ty.diagramMarginY+f)+" "+g+" "+(b+f)),r.Rm.debug("models:",y)},"draw")},tv={parser:h,db:H,renderer:tT,styles:(0,r.K2)(t=>`.person { + stroke: ${t.personBorder}; + fill: ${t.personBkg}; + } +`,"getStyles"),init:(0,r.K2)(({c4:t,wrap:e})=>{tT.setConf(t),H.setWrap(e)},"init")}},46192:(t,e,a)=>{a.d(e,{CP:()=>h,HT:()=>u,PB:()=>d,aC:()=>o,lC:()=>r,m:()=>l,tk:()=>s});var n=a(72912),i=a(31546),s=(0,n.K2)((t,e)=>{let a=t.append("rect");if(a.attr("x",e.x),a.attr("y",e.y),a.attr("fill",e.fill),a.attr("stroke",e.stroke),a.attr("width",e.width),a.attr("height",e.height),e.name&&a.attr("name",e.name),e.rx&&a.attr("rx",e.rx),e.ry&&a.attr("ry",e.ry),void 0!==e.attrs)for(let t in e.attrs)a.attr(t,e.attrs[t]);return e.class&&a.attr("class",e.class),a},"drawRect"),r=(0,n.K2)((t,e)=>{s(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"}).lower()},"drawBackgroundRect"),l=(0,n.K2)((t,e)=>{let a=e.text.replace(n.H1," "),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.attr("class","legend"),i.style("text-anchor",e.anchor),e.class&&i.attr("class",e.class);let s=i.append("tspan");return s.attr("x",e.x+2*e.textMargin),s.text(a),i},"drawText"),o=(0,n.K2)((t,e,a,n)=>{let s=t.append("image");s.attr("x",e),s.attr("y",a);let r=(0,i.J)(n);s.attr("xlink:href",r)},"drawImage"),h=(0,n.K2)((t,e,a,n)=>{let s=t.append("use");s.attr("x",e),s.attr("y",a);let r=(0,i.J)(n);s.attr("xlink:href",`#${r}`)},"drawEmbeddedImage"),d=(0,n.K2)(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),u=(0,n.K2)(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj")}}]); \ No newline at end of file diff --git a/assets/js/54542266.f041590b.js b/assets/js/54542266.e03056f0.js similarity index 91% rename from assets/js/54542266.f041590b.js rename to assets/js/54542266.e03056f0.js index 14eeda9211..fe8d9c94ed 100644 --- a/assets/js/54542266.f041590b.js +++ b/assets/js/54542266.e03056f0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[31279],{60505:(e,s,t)=>{t.d(s,{A:()=>a});let a=t.p+"assets/images/thumbnail-dbb46fec970f4431a6846603224dd2fe.png"},12268:(e,s,t)=>{t.d(s,{A:()=>a});let a=t.p+"assets/images/thumbnail-dbb46fec970f4431a6846603224dd2fe.png"},11003:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var a=t(84128),n=t(62540),r=t(43023);let o={title:"Docusaurus 2021 Recap",authors:["Josh-Cena"],tags:["recap"],image:"./img/thumbnail.png"},i=void 0,u={image:t(60505).A,authorsImageUrls:[void 0]},c=[];function l(e){let s={a:"a",img:"img",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(s.p,{children:["Docusaurus has made great progress in 2021! We've seen a lot of traction and just crossed ",(0,n.jsx)(s.strong,{children:"30k stars on GitHub"}),"!"]}),"\n",(0,n.jsxs)(s.p,{children:["We've ",(0,n.jsx)(s.strong,{children:"reached full feature parity"})," with v1 after ",(0,n.jsx)(s.a,{href:"/blog/2021/03/09/releasing-docusaurus-i18n",children:"the release of internationalization"}),", ",(0,n.jsxs)(s.a,{href:"/blog/2021/05/12/announcing-docusaurus-two-beta",children:["announced our ",(0,n.jsx)(s.strong,{children:"first beta"})]}),", and welcomed ",(0,n.jsx)(s.strong,{children:"significantly more users"})," this year."]}),"\n",(0,n.jsxs)(s.p,{children:["The ",(0,n.jsx)(s.strong,{children:"official v2 release"})," is just around the corner! Follow the ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/6113",children:"roadmap issue"})," for any latest news."]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{src:t(12268).A+"",width:"1000",height:"562"})})]})}function d(e={}){let{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>i});var a=t(63696);let n={},r=a.createContext(n);function o(e){let s=a.useContext(r);return a.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),a.createElement(r.Provider,{value:s},e.children)}},84128:e=>{e.exports=JSON.parse('{"permalink":"/blog/2022/01/24/docusaurus-2021-recap","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2022/01-24-docusaurus-2021-recap/index.mdx","source":"@site/blog/2022/01-24-docusaurus-2021-recap/index.mdx","title":"Docusaurus 2021 Recap","description":"Docusaurus has made great progress in 2021! We\'ve seen a lot of traction and just crossed 30k stars on GitHub!","date":"2022-01-24T00:00:00.000Z","tags":[{"inline":false,"label":"Recap","permalink":"/blog/tags/recap","description":"Blog posts about Docusaurus\' year recaps"}],"readingTime":6.01,"hasTruncateMarker":true,"authors":[{"name":"Joshua Chen","title":"Working hard on Docusaurus","url":"https://joshcena.com/","email":"sidachen2003@gmail.com","page":{"permalink":"/blog/authors/josh-cena"},"imageURL":"https://github.com/josh-cena.png","key":"Josh-Cena"}],"frontMatter":{"title":"Docusaurus 2021 Recap","authors":["Josh-Cena"],"tags":["recap"],"image":"./img/thumbnail.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Announcing Docusaurus 2.0","permalink":"/blog/2022/08/01/announcing-docusaurus-2.0"},"nextItem":{"title":"DocSearch migration","permalink":"/blog/2021/11/21/algolia-docsearch-migration"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[31279],{60505:(e,s,t)=>{t.d(s,{A:()=>a});let a=t.p+"assets/images/thumbnail-dbb46fec970f4431a6846603224dd2fe.png"},12268:(e,s,t)=>{t.d(s,{A:()=>a});let a=t.p+"assets/images/thumbnail-dbb46fec970f4431a6846603224dd2fe.png"},11003:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var a=t(84128),n=t(62540),r=t(43023);let o={title:"Docusaurus 2021 Recap",authors:["Josh-Cena"],tags:["recap"],image:"./img/thumbnail.png"},i=void 0,u={image:t(60505).A,authorsImageUrls:[void 0]},c=[];function l(e){let s={a:"a",img:"img",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(s.p,{children:["Docusaurus has made great progress in 2021! We've seen a lot of traction and just crossed ",(0,n.jsx)(s.strong,{children:"30k stars on GitHub"}),"!"]}),"\n",(0,n.jsxs)(s.p,{children:["We've ",(0,n.jsx)(s.strong,{children:"reached full feature parity"})," with v1 after ",(0,n.jsx)(s.a,{href:"/blog/2021/03/09/releasing-docusaurus-i18n",children:"the release of internationalization"}),", ",(0,n.jsxs)(s.a,{href:"/blog/2021/05/12/announcing-docusaurus-two-beta",children:["announced our ",(0,n.jsx)(s.strong,{children:"first beta"})]}),", and welcomed ",(0,n.jsx)(s.strong,{children:"significantly more users"})," this year."]}),"\n",(0,n.jsxs)(s.p,{children:["The ",(0,n.jsx)(s.strong,{children:"official v2 release"})," is just around the corner! Follow the ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/6113",children:"roadmap issue"})," for any latest news."]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{src:t(12268).A+"",width:"1000",height:"562"})})]})}function d(e={}){let{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>i});var a=t(63696);let n={},r=a.createContext(n);function o(e){let s=a.useContext(r);return a.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),a.createElement(r.Provider,{value:s},e.children)}},84128:e=>{e.exports=JSON.parse('{"permalink":"/blog/2022/01/24/docusaurus-2021-recap","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2022/01-24-docusaurus-2021-recap/index.mdx","source":"@site/blog/2022/01-24-docusaurus-2021-recap/index.mdx","title":"Docusaurus 2021 Recap","description":"Docusaurus has made great progress in 2021! We\'ve seen a lot of traction and just crossed 30k stars on GitHub!","date":"2022-01-24T00:00:00.000Z","tags":[{"inline":false,"label":"Recap","permalink":"/blog/tags/recap","description":"Blog posts about Docusaurus\' year recaps"}],"readingTime":6.01,"hasTruncateMarker":true,"authors":[{"name":"Joshua Chen","title":"Working hard on Docusaurus","url":"https://joshcena.com/","email":"sidachen2003@gmail.com","page":{"permalink":"/blog/authors/josh-cena"},"imageURL":"https://github.com/josh-cena.png","key":"Josh-Cena"}],"frontMatter":{"title":"Docusaurus 2021 Recap","authors":["Josh-Cena"],"tags":["recap"],"image":"./img/thumbnail.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Announcing Docusaurus 2.0","permalink":"/blog/2022/08/01/announcing-docusaurus-2.0"},"nextItem":{"title":"DocSearch migration","permalink":"/blog/2021/11/21/algolia-docsearch-migration"}}')}}]); \ No newline at end of file diff --git a/assets/js/55263.db559856.js b/assets/js/55263.db559856.js deleted file mode 100644 index 4f702c3181..0000000000 --- a/assets/js/55263.db559856.js +++ /dev/null @@ -1,47 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[55263],{55263:(e,t,i)=>{i.d(t,{diagram:()=>x});var r=i(17367),n=i(93126),s=i(51822),a=i(62499);i(95285),i(31546),i(31234);var c=function(){var e=function(e,t,i,r){for(i=i||{},r=e.length;r--;i[e[r]]=t);return i},t=[1,3],i=[1,5],r=[1,6],n=[1,7],s=[1,8],a=[5,6,8,14,16,18,19,40,41,42,43,44,45,53,71,72],c=[1,22],l=[2,13],h=[1,26],o=[1,27],u=[1,28],d=[1,29],y=[1,30],p=[1,31],_=[1,24],g=[1,32],E=[1,33],R=[1,36],f=[71,72],m=[5,8,14,16,18,19,40,41,42,43,44,45,53,60,62,71,72],I=[1,56],b=[1,57],k=[1,58],S=[1,59],T=[1,60],N=[1,61],v=[1,62],x=[62,63],A=[1,74],q=[1,70],$=[1,71],O=[1,72],w=[1,73],C=[1,75],L=[1,79],D=[1,80],F=[1,77],M=[1,78],P=[5,8,14,16,18,19,40,41,42,43,44,45,53,71,72],V={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,openDirective:9,typeDirective:10,closeDirective:11,":":12,argDirective:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,requirementDef:23,elementDef:24,relationshipDef:25,requirementType:26,requirementName:27,STRUCT_START:28,requirementBody:29,ID:30,COLONSEP:31,id:32,TEXT:33,text:34,RISK:35,riskLevel:36,VERIFYMTHD:37,verifyType:38,STRUCT_STOP:39,REQUIREMENT:40,FUNCTIONAL_REQUIREMENT:41,INTERFACE_REQUIREMENT:42,PERFORMANCE_REQUIREMENT:43,PHYSICAL_REQUIREMENT:44,DESIGN_CONSTRAINT:45,LOW_RISK:46,MED_RISK:47,HIGH_RISK:48,VERIFY_ANALYSIS:49,VERIFY_DEMONSTRATION:50,VERIFY_INSPECTION:51,VERIFY_TEST:52,ELEMENT:53,elementName:54,elementBody:55,TYPE:56,type:57,DOCREF:58,ref:59,END_ARROW_L:60,relationship:61,LINE:62,END_ARROW_R:63,CONTAINS:64,COPIES:65,DERIVES:66,SATISFIES:67,VERIFIES:68,REFINES:69,TRACES:70,unqString:71,qString:72,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",12:":",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"open_directive",20:"type_directive",21:"arg_directive",22:"close_directive",28:"STRUCT_START",30:"ID",31:"COLONSEP",33:"TEXT",35:"RISK",37:"VERIFYMTHD",39:"STRUCT_STOP",40:"REQUIREMENT",41:"FUNCTIONAL_REQUIREMENT",42:"INTERFACE_REQUIREMENT",43:"PERFORMANCE_REQUIREMENT",44:"PHYSICAL_REQUIREMENT",45:"DESIGN_CONSTRAINT",46:"LOW_RISK",47:"MED_RISK",48:"HIGH_RISK",49:"VERIFY_ANALYSIS",50:"VERIFY_DEMONSTRATION",51:"VERIFY_INSPECTION",52:"VERIFY_TEST",53:"ELEMENT",56:"TYPE",58:"DOCREF",60:"END_ARROW_L",62:"LINE",63:"END_ARROW_R",64:"CONTAINS",65:"COPIES",66:"DERIVES",67:"SATISFIES",68:"VERIFIES",69:"REFINES",70:"TRACES",71:"unqString",72:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,3],[4,5],[4,2],[4,2],[4,1],[9,1],[10,1],[13,1],[11,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[23,5],[29,5],[29,5],[29,5],[29,5],[29,2],[29,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[36,1],[36,1],[36,1],[38,1],[38,1],[38,1],[38,1],[24,5],[55,5],[55,5],[55,2],[55,1],[25,5],[25,5],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[27,1],[27,1],[32,1],[32,1],[34,1],[34,1],[54,1],[54,1],[57,1],[57,1],[59,1],[59,1]],performAction:function(e,t,i,r,n,s,a){var c=s.length-1;switch(n){case 6:this.$=s[c].trim(),r.setAccTitle(this.$);break;case 7:case 8:this.$=s[c].trim(),r.setAccDescription(this.$);break;case 9:r.parseDirective("%%{","open_directive");break;case 10:r.parseDirective(s[c],"type_directive");break;case 11:s[c]=s[c].trim().replace(/'/g,'"'),r.parseDirective(s[c],"arg_directive");break;case 12:r.parseDirective("}%%","close_directive","pie");break;case 13:this.$=[];break;case 19:r.addRequirement(s[c-3],s[c-4]);break;case 20:r.setNewReqId(s[c-2]);break;case 21:r.setNewReqText(s[c-2]);break;case 22:r.setNewReqRisk(s[c-2]);break;case 23:r.setNewReqVerifyMethod(s[c-2]);break;case 26:this.$=r.RequirementType.REQUIREMENT;break;case 27:this.$=r.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 28:this.$=r.RequirementType.INTERFACE_REQUIREMENT;break;case 29:this.$=r.RequirementType.PERFORMANCE_REQUIREMENT;break;case 30:this.$=r.RequirementType.PHYSICAL_REQUIREMENT;break;case 31:this.$=r.RequirementType.DESIGN_CONSTRAINT;break;case 32:this.$=r.RiskLevel.LOW_RISK;break;case 33:this.$=r.RiskLevel.MED_RISK;break;case 34:this.$=r.RiskLevel.HIGH_RISK;break;case 35:this.$=r.VerifyType.VERIFY_ANALYSIS;break;case 36:this.$=r.VerifyType.VERIFY_DEMONSTRATION;break;case 37:this.$=r.VerifyType.VERIFY_INSPECTION;break;case 38:this.$=r.VerifyType.VERIFY_TEST;break;case 39:r.addElement(s[c-3]);break;case 40:r.setNewElementType(s[c-2]);break;case 41:r.setNewElementDocRef(s[c-2]);break;case 44:r.addRelationship(s[c-2],s[c],s[c-4]);break;case 45:r.addRelationship(s[c-2],s[c-4],s[c]);break;case 46:this.$=r.Relationships.CONTAINS;break;case 47:this.$=r.Relationships.COPIES;break;case 48:this.$=r.Relationships.DERIVES;break;case 49:this.$=r.Relationships.SATISFIES;break;case 50:this.$=r.Relationships.VERIFIES;break;case 51:this.$=r.Relationships.REFINES;break;case 52:this.$=r.Relationships.TRACES}},table:[{3:1,4:2,6:t,9:4,14:i,16:r,18:n,19:s},{1:[3]},{3:10,4:2,5:[1,9],6:t,9:4,14:i,16:r,18:n,19:s},{5:[1,11]},{10:12,20:[1,13]},{15:[1,14]},{17:[1,15]},e(a,[2,8]),{20:[2,9]},{3:16,4:2,6:t,9:4,14:i,16:r,18:n,19:s},{1:[2,2]},{4:21,5:c,7:17,8:l,9:4,14:i,16:r,18:n,19:s,23:18,24:19,25:20,26:23,32:25,40:h,41:o,42:u,43:d,44:y,45:p,53:_,71:g,72:E},{11:34,12:[1,35],22:R},e([12,22],[2,10]),e(a,[2,6]),e(a,[2,7]),{1:[2,1]},{8:[1,37]},{4:21,5:c,7:38,8:l,9:4,14:i,16:r,18:n,19:s,23:18,24:19,25:20,26:23,32:25,40:h,41:o,42:u,43:d,44:y,45:p,53:_,71:g,72:E},{4:21,5:c,7:39,8:l,9:4,14:i,16:r,18:n,19:s,23:18,24:19,25:20,26:23,32:25,40:h,41:o,42:u,43:d,44:y,45:p,53:_,71:g,72:E},{4:21,5:c,7:40,8:l,9:4,14:i,16:r,18:n,19:s,23:18,24:19,25:20,26:23,32:25,40:h,41:o,42:u,43:d,44:y,45:p,53:_,71:g,72:E},{4:21,5:c,7:41,8:l,9:4,14:i,16:r,18:n,19:s,23:18,24:19,25:20,26:23,32:25,40:h,41:o,42:u,43:d,44:y,45:p,53:_,71:g,72:E},{4:21,5:c,7:42,8:l,9:4,14:i,16:r,18:n,19:s,23:18,24:19,25:20,26:23,32:25,40:h,41:o,42:u,43:d,44:y,45:p,53:_,71:g,72:E},{27:43,71:[1,44],72:[1,45]},{54:46,71:[1,47],72:[1,48]},{60:[1,49],62:[1,50]},e(f,[2,26]),e(f,[2,27]),e(f,[2,28]),e(f,[2,29]),e(f,[2,30]),e(f,[2,31]),e(m,[2,55]),e(m,[2,56]),e(a,[2,4]),{13:51,21:[1,52]},e(a,[2,12]),{1:[2,3]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{8:[2,17]},{8:[2,18]},{28:[1,53]},{28:[2,53]},{28:[2,54]},{28:[1,54]},{28:[2,59]},{28:[2,60]},{61:55,64:I,65:b,66:k,67:S,68:T,69:N,70:v},{61:63,64:I,65:b,66:k,67:S,68:T,69:N,70:v},{11:64,22:R},{22:[2,11]},{5:[1,65]},{5:[1,66]},{62:[1,67]},e(x,[2,46]),e(x,[2,47]),e(x,[2,48]),e(x,[2,49]),e(x,[2,50]),e(x,[2,51]),e(x,[2,52]),{63:[1,68]},e(a,[2,5]),{5:A,29:69,30:q,33:$,35:O,37:w,39:C},{5:L,39:D,55:76,56:F,58:M},{32:81,71:g,72:E},{32:82,71:g,72:E},e(P,[2,19]),{31:[1,83]},{31:[1,84]},{31:[1,85]},{31:[1,86]},{5:A,29:87,30:q,33:$,35:O,37:w,39:C},e(P,[2,25]),e(P,[2,39]),{31:[1,88]},{31:[1,89]},{5:L,39:D,55:90,56:F,58:M},e(P,[2,43]),e(P,[2,44]),e(P,[2,45]),{32:91,71:g,72:E},{34:92,71:[1,93],72:[1,94]},{36:95,46:[1,96],47:[1,97],48:[1,98]},{38:99,49:[1,100],50:[1,101],51:[1,102],52:[1,103]},e(P,[2,24]),{57:104,71:[1,105],72:[1,106]},{59:107,71:[1,108],72:[1,109]},e(P,[2,42]),{5:[1,110]},{5:[1,111]},{5:[2,57]},{5:[2,58]},{5:[1,112]},{5:[2,32]},{5:[2,33]},{5:[2,34]},{5:[1,113]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[2,38]},{5:[1,114]},{5:[2,61]},{5:[2,62]},{5:[1,115]},{5:[2,63]},{5:[2,64]},{5:A,29:116,30:q,33:$,35:O,37:w,39:C},{5:A,29:117,30:q,33:$,35:O,37:w,39:C},{5:A,29:118,30:q,33:$,35:O,37:w,39:C},{5:A,29:119,30:q,33:$,35:O,37:w,39:C},{5:L,39:D,55:120,56:F,58:M},{5:L,39:D,55:121,56:F,58:M},e(P,[2,20]),e(P,[2,21]),e(P,[2,22]),e(P,[2,23]),e(P,[2,40]),e(P,[2,41])],defaultActions:{8:[2,9],10:[2,2],16:[2,1],37:[2,3],38:[2,14],39:[2,15],40:[2,16],41:[2,17],42:[2,18],44:[2,53],45:[2,54],47:[2,59],48:[2,60],52:[2,11],93:[2,57],94:[2,58],96:[2,32],97:[2,33],98:[2,34],100:[2,35],101:[2,36],102:[2,37],103:[2,38],105:[2,61],106:[2,62],108:[2,63],109:[2,64]},parseError:function(e,t){if(t.recoverable)this.trace(e);else{var i=Error(e);throw i.hash=t,i}},parse:function(e){var t=this,i=[0],r=[],n=[null],s=[],a=this.table,c="",l=0,h=0,o=s.slice.call(arguments,1),u=Object.create(this.lexer),d={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(d.yy[y]=this.yy[y]);u.setInput(e,d.yy),d.yy.lexer=u,d.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var p=u.yylloc;s.push(p);var _=u.options&&u.options.ranges;"function"==typeof d.yy.parseError?this.parseError=d.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,E,R,f,m,I,b,k,S={};;){if(E=i[i.length-1],this.defaultActions[E]?R=this.defaultActions[E]:(null==g&&(g=function(){var e;return"number"!=typeof(e=r.pop()||u.lex()||1)&&(e instanceof Array&&(e=(r=e).pop()),e=t.symbols_[e]||e),e}()),R=a[E]&&a[E][g]),void 0===R||!R.length||!R[0]){var T="";for(m in k=[],a[E])this.terminals_[m]&&m>2&&k.push("'"+this.terminals_[m]+"'");T=u.showPosition?"Parse error on line "+(l+1)+":\n"+u.showPosition()+"\nExpecting "+k.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==g?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(T,{text:u.match,token:this.terminals_[g]||g,line:u.yylineno,loc:p,expected:k})}if(R[0]instanceof Array&&R.length>1)throw Error("Parse Error: multiple actions possible at state: "+E+", token: "+g);switch(R[0]){case 1:i.push(g),n.push(u.yytext),s.push(u.yylloc),i.push(R[1]),g=null,h=u.yyleng,c=u.yytext,l=u.yylineno,p=u.yylloc;break;case 2:if(I=this.productions_[R[1]][1],S.$=n[n.length-I],S._$={first_line:s[s.length-(I||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(I||1)].first_column,last_column:s[s.length-1].last_column},_&&(S._$.range=[s[s.length-(I||1)].range[0],s[s.length-1].range[1]]),void 0!==(f=this.performAction.apply(S,[c,h,l,d.yy,R[1],n,s].concat(o))))return f;I&&(i=i.slice(0,-1*I*2),n=n.slice(0,-1*I),s=s.slice(0,-1*I)),i.push(this.productions_[R[1]][0]),n.push(S.$),s.push(S._$),b=a[i[i.length-2]][i[i.length-1]],i.push(b);break;case 3:return!0}}return!0}};function U(){this.yy={}}return V.lexer={EOF:1,parseError:function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,i=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===r.length?this.yylloc.first_column:0)+r[r.length-i.length].length-i[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var i,r,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],i=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var s in n)this[s]=n[s];return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var e,t,i,r,n=this._currentRules(),s=0;s<n.length;s++)if((i=this._input.match(this.rules[n[s]]))&&(!t||i[0].length>t[0].length)){if(t=i,r=s,this.options.backtrack_lexer){if(!1!==(e=this.test_match(i,n[s])))return e;if(!this._backtrack)return!1;t=!1;continue}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,n[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,t,i,r){switch(i){case 0:return this.begin("open_directive"),19;case 1:return this.begin("type_directive"),20;case 2:return this.popState(),this.begin("arg_directive"),12;case 3:return this.popState(),this.popState(),22;case 4:return 21;case 5:return"title";case 6:return this.begin("acc_title"),14;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),16;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 53:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 5;case 14:case 15:case 16:break;case 17:return 8;case 18:return 6;case 19:return 28;case 20:return 39;case 21:return 31;case 22:return 30;case 23:return 33;case 24:return 35;case 25:return 37;case 26:return 40;case 27:return 41;case 28:return 42;case 29:return 43;case 30:return 44;case 31:return 45;case 32:return 46;case 33:return 47;case 34:return 48;case 35:return 49;case 36:return 50;case 37:return 51;case 38:return 52;case 39:return 53;case 40:return 64;case 41:return 65;case 42:return 66;case 43:return 67;case 44:return 68;case 45:return 69;case 46:return 70;case 47:return 56;case 48:return 58;case 49:return 60;case 50:return 63;case 51:return 62;case 52:this.begin("string");break;case 54:return"qString";case 55:return t.yytext=t.yytext.trim(),71}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[53,54],inclusive:!1},INITIAL:{rules:[0,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55],inclusive:!0}}},U.prototype=V,V.Parser=U,new U}();c.parser=c;let l=[],h={},o={},u={},d={},y={RequirementType:{REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},RiskLevel:{LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},VerifyType:{VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},Relationships:{CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},parseDirective:function(e,t,i){r.m.parseDirective(this,e,t,i)},getConfig:()=>(0,r.c)().req,addRequirement:(e,t)=>(void 0===o[e]&&(o[e]={name:e,type:t,id:h.id,text:h.text,risk:h.risk,verifyMethod:h.verifyMethod}),h={},o[e]),getRequirements:()=>o,setNewReqId:e=>{void 0!==h&&(h.id=e)},setNewReqText:e=>{void 0!==h&&(h.text=e)},setNewReqRisk:e=>{void 0!==h&&(h.risk=e)},setNewReqVerifyMethod:e=>{void 0!==h&&(h.verifyMethod=e)},setAccTitle:r.s,getAccTitle:r.g,setAccDescription:r.b,getAccDescription:r.a,addElement:e=>(void 0===d[e]&&(d[e]={name:e,type:u.type,docRef:u.docRef},r.l.info("Added new requirement: ",e)),u={},d[e]),getElements:()=>d,setNewElementType:e=>{void 0!==u&&(u.type=e)},setNewElementDocRef:e=>{void 0!==u&&(u.docRef=e)},addRelationship:(e,t,i)=>{l.push({type:e,src:t,dst:i})},getRelationships:()=>l,clear:()=>{l=[],h={},o={},u={},d={},(0,r.v)()}},p={CONTAINS:"contains",ARROW:"arrow"},_={ReqMarkers:p,insertLineEndings:(e,t)=>{let i=e.append("defs").append("marker").attr("id",p.CONTAINS+"_line_ending").attr("refX",0).attr("refY",t.line_height/2).attr("markerWidth",t.line_height).attr("markerHeight",t.line_height).attr("orient","auto").append("g");i.append("circle").attr("cx",t.line_height/2).attr("cy",t.line_height/2).attr("r",t.line_height/2).attr("fill","none"),i.append("line").attr("x1",0).attr("x2",t.line_height).attr("y1",t.line_height/2).attr("y2",t.line_height/2).attr("stroke-width",1),i.append("line").attr("y1",0).attr("y2",t.line_height).attr("x1",t.line_height/2).attr("x2",t.line_height/2).attr("stroke-width",1),e.append("defs").append("marker").attr("id",p.ARROW+"_line_ending").attr("refX",t.line_height).attr("refY",.5*t.line_height).attr("markerWidth",t.line_height).attr("markerHeight",t.line_height).attr("orient","auto").append("path").attr("d",`M0,0 - L${t.line_height},${t.line_height/2} - M${t.line_height},${t.line_height/2} - L0,${t.line_height}`).attr("stroke-width",1)}},g={},E=0,R=(e,t)=>e.insert("rect","#"+t).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",g.rect_min_width+"px").attr("height",g.rect_min_height+"px"),f=(e,t,i)=>{let r=g.rect_min_width/2,n=e.append("text").attr("class","req reqLabel reqTitle").attr("id",t).attr("x",r).attr("y",g.rect_padding).attr("dominant-baseline","hanging"),s=0;i.forEach(e=>{0==s?n.append("tspan").attr("text-anchor","middle").attr("x",g.rect_min_width/2).attr("dy",0).text(e):n.append("tspan").attr("text-anchor","middle").attr("x",g.rect_min_width/2).attr("dy",.75*g.line_height).text(e),s++});let a=1.5*g.rect_padding+s*g.line_height*.75;return e.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",g.rect_min_width).attr("y1",a).attr("y2",a),{titleNode:n,y:a}},m=(e,t,i,r)=>{let n=e.append("text").attr("class","req reqLabel").attr("id",t).attr("x",g.rect_padding).attr("y",r).attr("dominant-baseline","hanging"),s=0,a=[];return i.forEach(e=>{let t=e.length;for(;t>30&&s<3;){let i=e.substring(0,30);t=(e=e.substring(30,e.length)).length,a[a.length]=i,s++}if(3==s){let e=a[a.length-1];a[a.length-1]=e.substring(0,e.length-4)+"..."}else a[a.length]=e;s=0}),a.forEach(e=>{n.append("tspan").attr("x",g.rect_padding).attr("dy",g.line_height).text(e)}),n},I=(e,t,i,r)=>{let n=t.node().getTotalLength(),s=t.node().getPointAtLength(.5*n),a="rel"+E;E++;let c=e.append("text").attr("class","req relationshipLabel").attr("id",a).attr("x",s.x).attr("y",s.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(r).node().getBBox();e.insert("rect","#"+a).attr("class","req reqLabelBox").attr("x",s.x-c.width/2).attr("y",s.y-c.height/2).attr("width",c.width).attr("height",c.height).attr("fill","white").attr("fill-opacity","85%")},b=function(e,t,i,s,a){let c=i.edge(v(t.src),v(t.dst)),l=(0,n.n8j)().x(function(e){return e.x}).y(function(e){return e.y}),h=e.insert("path","#"+s).attr("class","er relationshipLine").attr("d",l(c.points)).attr("fill","none");t.type==a.db.Relationships.CONTAINS?h.attr("marker-start","url("+r.e.getUrl(g.arrowMarkerAbsolute)+"#"+t.type+"_line_ending)"):(h.attr("stroke-dasharray","10,7"),h.attr("marker-end","url("+r.e.getUrl(g.arrowMarkerAbsolute)+"#"+_.ReqMarkers.ARROW+"_line_ending)")),I(e,h,g,`<<${t.type}>>`)},k=(e,t,i)=>{Object.keys(e).forEach(n=>{let s=e[n];n=v(n),r.l.info("Added new requirement: ",n);let a=i.append("g").attr("id",n),c=R(a,"req-"+n),l=f(a,n+"_title",[`<<${s.type}>>`,`${s.name}`]);m(a,n+"_body",[`Id: ${s.id}`,`Text: ${s.text}`,`Risk: ${s.risk}`,`Verification: ${s.verifyMethod}`],l.y);let h=c.node().getBBox();t.setNode(n,{width:h.width,height:h.height,shape:"rect",id:n})})},S=(e,t,i)=>{Object.keys(e).forEach(r=>{let n=e[r],s=v(r),a=i.append("g").attr("id",s),c="element-"+s,l=R(a,c),h=f(a,c+"_title",["<<Element>>",`${r}`]);m(a,c+"_body",[`Type: ${n.type||"Not Specified"}`,`Doc Ref: ${n.docRef||"None"}`],h.y);let o=l.node().getBBox();t.setNode(s,{width:o.width,height:o.height,shape:"rect",id:s})})},T=(e,t)=>(e.forEach(function(e){let i=v(e.src),r=v(e.dst);t.setEdge(i,r,{relationship:e})}),e),N=function(e,t){t.nodes().forEach(function(i){void 0!==i&&void 0!==t.node(i)&&(e.select("#"+i),e.select("#"+i).attr("transform","translate("+(t.node(i).x-t.node(i).width/2)+","+(t.node(i).y-t.node(i).height/2)+" )"))})},v=e=>e.replace(/\s/g,"").replace(/\./g,"_"),x={parser:c,db:y,renderer:{draw:(e,t,i,c)=>{let l;let h=(g=(0,r.c)().requirement).securityLevel;"sandbox"===h&&(l=(0,n.Ltv)("#i"+t));let o=("sandbox"===h?(0,n.Ltv)(l.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id='${t}']`);_.insertLineEndings(o,g);let u=new a.T({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:g.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}}),d=c.db.getRequirements(),y=c.db.getElements(),p=c.db.getRelationships();k(d,u,o),S(y,u,o),T(p,u),(0,s.Zp)(u),N(o,u),p.forEach(function(e){b(o,e,u,t,c)});let E=g.rect_padding,R=o.node().getBBox(),f=R.width+2*E,m=R.height+2*E;(0,r.i)(o,m,f,g.useMaxWidth),o.attr("viewBox",`${R.x-E} ${R.y-E} ${f} ${m}`)}},styles:e=>` - - marker { - fill: ${e.relationColor}; - stroke: ${e.relationColor}; - } - - marker.cross { - stroke: ${e.lineColor}; - } - - svg { - font-family: ${e.fontFamily}; - font-size: ${e.fontSize}; - } - - .reqBox { - fill: ${e.requirementBackground}; - fill-opacity: 1.0; - stroke: ${e.requirementBorderColor}; - stroke-width: ${e.requirementBorderSize}; - } - - .reqTitle, .reqLabel{ - fill: ${e.requirementTextColor}; - } - .reqLabelBox { - fill: ${e.relationLabelBackground}; - fill-opacity: 1.0; - } - - .req-title-line { - stroke: ${e.requirementBorderColor}; - stroke-width: ${e.requirementBorderSize}; - } - .relationshipLine { - stroke: ${e.relationColor}; - stroke-width: 1; - } - .relationshipLabel { - fill: ${e.relationLabelColor}; - } - -`}}}]); \ No newline at end of file diff --git a/assets/js/554438a9.29950703.js b/assets/js/554438a9.b239976d.js similarity index 92% rename from assets/js/554438a9.29950703.js rename to assets/js/554438a9.b239976d.js index 8190845c53..8e4b044bb3 100644 --- a/assets/js/554438a9.29950703.js +++ b/assets/js/554438a9.b239976d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[30006],{27730:(e,o,t)=>{t.d(o,{A:()=>s});let s=t.p+"assets/images/slash-introducing-411a16dd05086935b8e9ddae38ae9b45.svg"},17076:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>i,contentTitle:()=>u,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var s=t(42242),n=t(62540),r=t(43023);let a={title:"Introducing Docusaurus",authors:"JMarcey",tags:["documentation","blog","docusaurus"]},u=void 0,i={authorsImageUrls:[void 0]},l=[];function c(e){let o={a:"a",img:"img",li:"li",ol:"ol",p:"p",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.p,{children:(0,n.jsx)(o.img,{src:t(27730).A+"",width:"760",height:"160"})}),"\n",(0,n.jsxs)(o.p,{children:["We are very happy to introduce ",(0,n.jsx)(o.a,{href:"https://github.com/facebook/docusaurus",children:"Docusaurus"})," to help you manage one or many open source websites."]}),"\n",(0,n.jsxs)(o.p,{children:["We created ",(0,n.jsx)(o.a,{href:"https://docusaurus.io",children:"Docusaurus"})," for the following reasons:"]}),"\n",(0,n.jsxs)(o.ol,{children:["\n",(0,n.jsx)(o.li,{children:"To put the focus on writing good documentation instead of worrying about the infrastructure of a website."}),"\n",(0,n.jsx)(o.li,{children:"To provide features that many of our open source websites need like blog support, search and versioning."}),"\n",(0,n.jsx)(o.li,{children:"To make it easy to push updates, new features, and bug fixes to everyone all at once."}),"\n",(0,n.jsx)(o.li,{children:"And, finally, to provide a consistent look and feel across all of our open source projects."}),"\n"]})]})}function d(e={}){let{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,n.jsx)(o,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},43023:(e,o,t)=>{t.d(o,{R:()=>a,x:()=>u});var s=t(63696);let n={},r=s.createContext(n);function a(e){let o=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(o):{...o,...e}},[o,e])}function u(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),s.createElement(r.Provider,{value:o},e.children)}},42242:e=>{e.exports=JSON.parse('{"permalink":"/blog/2017/12/14/introducing-docusaurus","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2017/12-14-introducing-docusaurus.mdx","source":"@site/blog/2017/12-14-introducing-docusaurus.mdx","title":"Introducing Docusaurus","description":"We are very happy to introduce Docusaurus to help you manage one or many open source websites.","date":"2017-12-14T00:00:00.000Z","tags":[{"inline":false,"label":"Documentation","permalink":"/blog/tags/documentation"},{"inline":false,"label":"Blog","permalink":"/blog/tags/blog"},{"inline":false,"label":"Docusaurus","permalink":"/blog/tags/docusaurus"}],"readingTime":8.215,"hasTruncateMarker":true,"authors":[{"name":"Joel Marcey","title":"Developer Advocate at Meta","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{"x":"https://x.com/joelmarcey","github":"https://github.com/JoelMarcey"},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Introducing Docusaurus","authors":"JMarcey","tags":["documentation","blog","docusaurus"]},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"How I Converted Profilo to Docusaurus in Under 2 Hours","permalink":"/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[30006],{27730:(e,o,t)=>{t.d(o,{A:()=>s});let s=t.p+"assets/images/slash-introducing-411a16dd05086935b8e9ddae38ae9b45.svg"},17076:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>i,contentTitle:()=>u,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var s=t(42242),n=t(62540),r=t(43023);let a={title:"Introducing Docusaurus",authors:"JMarcey",tags:["documentation","blog","docusaurus"]},u=void 0,i={authorsImageUrls:[void 0]},l=[];function c(e){let o={a:"a",img:"img",li:"li",ol:"ol",p:"p",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.p,{children:(0,n.jsx)(o.img,{src:t(27730).A+"",width:"760",height:"160"})}),"\n",(0,n.jsxs)(o.p,{children:["We are very happy to introduce ",(0,n.jsx)(o.a,{href:"https://github.com/facebook/docusaurus",children:"Docusaurus"})," to help you manage one or many open source websites."]}),"\n",(0,n.jsxs)(o.p,{children:["We created ",(0,n.jsx)(o.a,{href:"https://docusaurus.io",children:"Docusaurus"})," for the following reasons:"]}),"\n",(0,n.jsxs)(o.ol,{children:["\n",(0,n.jsx)(o.li,{children:"To put the focus on writing good documentation instead of worrying about the infrastructure of a website."}),"\n",(0,n.jsx)(o.li,{children:"To provide features that many of our open source websites need like blog support, search and versioning."}),"\n",(0,n.jsx)(o.li,{children:"To make it easy to push updates, new features, and bug fixes to everyone all at once."}),"\n",(0,n.jsx)(o.li,{children:"And, finally, to provide a consistent look and feel across all of our open source projects."}),"\n"]})]})}function d(e={}){let{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,n.jsx)(o,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},43023:(e,o,t)=>{t.d(o,{R:()=>a,x:()=>u});var s=t(63696);let n={},r=s.createContext(n);function a(e){let o=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(o):{...o,...e}},[o,e])}function u(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),s.createElement(r.Provider,{value:o},e.children)}},42242:e=>{e.exports=JSON.parse('{"permalink":"/blog/2017/12/14/introducing-docusaurus","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2017/12-14-introducing-docusaurus.mdx","source":"@site/blog/2017/12-14-introducing-docusaurus.mdx","title":"Introducing Docusaurus","description":"We are very happy to introduce Docusaurus to help you manage one or many open source websites.","date":"2017-12-14T00:00:00.000Z","tags":[{"inline":false,"label":"Documentation","permalink":"/blog/tags/documentation"},{"inline":false,"label":"Blog","permalink":"/blog/tags/blog"},{"inline":false,"label":"Docusaurus","permalink":"/blog/tags/docusaurus"}],"readingTime":8.215,"hasTruncateMarker":true,"authors":[{"name":"Joel Marcey","title":"Developer Advocate at Meta","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{"x":"https://x.com/joelmarcey","github":"https://github.com/JoelMarcey"},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Introducing Docusaurus","authors":"JMarcey","tags":["documentation","blog","docusaurus"]},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"How I Converted Profilo to Docusaurus in Under 2 Hours","permalink":"/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"}}')}}]); \ No newline at end of file diff --git a/assets/js/55a7f034.f4a2b268.js b/assets/js/55a7f034.f4a2b268.js new file mode 100644 index 0000000000..446ab9bd4d --- /dev/null +++ b/assets/js/55a7f034.f4a2b268.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[83546],{11879:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>n,toc:()=>l});let n=JSON.parse('{"type":"mdx","permalink":"/tests/pages/navbar-dropdown-tests","source":"@site/_dogfooding/_pages tests/navbar-dropdown-tests.mdx","title":"navbar-dropdown-tests","description":"1. Make sure that the theme switcher is placed immediately after the language switcher in the navbar.","frontMatter":{},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/navbar-dropdown-tests.mdx","unlisted":false}');var r=s(62540),a=s(43023);let i={},o="navbar-dropdown-tests",d={},l=[];function c(e){let t={code:"code",h1:"h1",header:"header",li:"li",ol:"ol",...(0,a.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"navbar-dropdown-tests",children:"navbar-dropdown-tests"})}),"\n",(0,r.jsx)("div",{id:"navbar-dropdown-tests",children:(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsx)(t.li,{children:"Make sure that the theme switcher is placed immediately after the language switcher in the navbar."}),"\n",(0,r.jsxs)(t.li,{children:["Press ",(0,r.jsx)(t.code,{children:"Tab"})," several times to focus language switcher."]}),"\n",(0,r.jsxs)(t.li,{children:["Press ",(0,r.jsx)(t.code,{children:"Enter"})," to open language switcher."]}),"\n",(0,r.jsxs)(t.li,{children:["Press ",(0,r.jsx)(t.code,{children:"Tab"})," several times to exit language switcher."]}),"\n",(0,r.jsx)(t.li,{children:"Check if the theme selection button is in focus immediately after the last item."}),"\n"]})})]})}function h(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},43023:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>o});var n=s(63696);let r={},a=n.createContext(r);function i(e){let t=n.useContext(a);return n.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(r):e.components||r:i(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/55a7f034.feb0fd73.js b/assets/js/55a7f034.feb0fd73.js deleted file mode 100644 index a1a1d7a928..0000000000 --- a/assets/js/55a7f034.feb0fd73.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[83546],{11879:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>l});let s=JSON.parse('{"type":"mdx","permalink":"/tests/pages/navbar-dropdown-tests","source":"@site/_dogfooding/_pages tests/navbar-dropdown-tests.mdx","title":"navbar-dropdown-tests","description":"1. Make sure that the theme switcher is placed immediately after the language switcher in the navbar.","frontMatter":{},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/navbar-dropdown-tests.mdx","unlisted":false}');var r=n(62540),a=n(43023);let i={},o="navbar-dropdown-tests",d={},l=[];function c(e){let t={code:"code",h1:"h1",header:"header",li:"li",ol:"ol",...(0,a.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"navbar-dropdown-tests",children:"navbar-dropdown-tests"})}),"\n",(0,r.jsx)("div",{id:"navbar-dropdown-tests",children:(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsx)(t.li,{children:"Make sure that the theme switcher is placed immediately after the language switcher in the navbar."}),"\n",(0,r.jsxs)(t.li,{children:["Press ",(0,r.jsx)(t.code,{children:"Tab"})," several times to focus language switcher."]}),"\n",(0,r.jsxs)(t.li,{children:["Press ",(0,r.jsx)(t.code,{children:"Enter"})," to open language switcher."]}),"\n",(0,r.jsxs)(t.li,{children:["Press ",(0,r.jsx)(t.code,{children:"Tab"})," several times to exit language switcher."]}),"\n",(0,r.jsx)(t.li,{children:"Check if the theme selection button is in focus immediately after the last item."}),"\n"]})})]})}function h(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},43023:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>o});var s=n(63696);let r={},a=s.createContext(r);function i(e){let t=s.useContext(a);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(r):e.components||r:i(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/56160.1f4901ac.js b/assets/js/56160.1f4901ac.js new file mode 100644 index 0000000000..520471af55 --- /dev/null +++ b/assets/js/56160.1f4901ac.js @@ -0,0 +1,215 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[56160],{56160:(t,e,s)=>{s.d(e,{Zk:()=>l,iP:()=>tN,q7:()=>O,tM:()=>tB});var i=s(165),r=s(57014),n=s(67027),a=s(72912),o=function(){var t=(0,a.K2)(function(t,e,s,i){for(s=s||{},i=t.length;i--;s[t[i]]=e);return s},"o"),e=[1,2],s=[1,3],i=[1,4],r=[2,4],n=[1,9],o=[1,11],l=[1,16],c=[1,17],h=[1,18],d=[1,19],u=[1,32],p=[1,20],y=[1,21],g=[1,22],f=[1,23],m=[1,24],S=[1,26],_=[1,27],b=[1,28],T=[1,29],k=[1,30],E=[1,31],x=[1,34],$=[1,35],D=[1,36],C=[1,37],v=[1,33],L=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],A=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],I=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],K={trace:(0,a.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,styleStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"-->":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,style:42,STYLE_IDS:43,STYLEDEF_STYLEOPTS:44,class:45,CLASSENTITY_IDS:46,STYLECLASS:47,direction_tb:48,direction_bt:49,direction_rl:50,direction_lr:51,eol:52,";":53,EDGE_STATE:54,STYLE_SEPARATOR:55,left_of:56,right_of:57,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",14:"DESCR",15:"-->",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"style",43:"STYLE_IDS",44:"STYLEDEF_STYLEOPTS",45:"class",46:"CLASSENTITY_IDS",47:"STYLECLASS",48:"direction_tb",49:"direction_bt",50:"direction_rl",51:"direction_lr",53:";",54:"EDGE_STATE",55:"STYLE_SEPARATOR",56:"left_of",57:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[52,1],[52,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:(0,a.K2)(function(t,e,s,i,r,n,a){var o=n.length-1;switch(r){case 3:return i.setRootDoc(n[o]),n[o];case 4:this.$=[];break;case 5:"nl"!=n[o]&&(n[o-1].push(n[o]),this.$=n[o-1]);break;case 6:case 7:case 12:this.$=n[o];break;case 8:this.$="nl";break;case 13:let l=n[o-1];l.description=i.trimColon(n[o]),this.$=l;break;case 14:this.$={stmt:"relation",state1:n[o-2],state2:n[o]};break;case 15:let c=i.trimColon(n[o]);this.$={stmt:"relation",state1:n[o-3],state2:n[o-1],description:c};break;case 19:this.$={stmt:"state",id:n[o-3],type:"default",description:"",doc:n[o-1]};break;case 20:var h=n[o],d=n[o-2].trim();if(n[o].match(":")){var u=n[o].split(":");h=u[0],d=[d,u[1]]}this.$={stmt:"state",id:h,type:"default",description:d};break;case 21:this.$={stmt:"state",id:n[o-3],type:"default",description:n[o-5],doc:n[o-1]};break;case 22:this.$={stmt:"state",id:n[o],type:"fork"};break;case 23:this.$={stmt:"state",id:n[o],type:"join"};break;case 24:this.$={stmt:"state",id:n[o],type:"choice"};break;case 25:this.$={stmt:"state",id:i.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:n[o-1].trim(),note:{position:n[o-2].trim(),text:n[o].trim()}};break;case 29:this.$=n[o].trim(),i.setAccTitle(this.$);break;case 30:case 31:this.$=n[o].trim(),i.setAccDescription(this.$);break;case 32:case 33:this.$={stmt:"classDef",id:n[o-1].trim(),classes:n[o].trim()};break;case 34:this.$={stmt:"style",id:n[o-1].trim(),styleClass:n[o].trim()};break;case 35:this.$={stmt:"applyClass",id:n[o-1].trim(),styleClass:n[o].trim()};break;case 36:i.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 37:i.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 38:i.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 39:i.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 42:case 43:this.$={stmt:"state",id:n[o].trim(),type:"default",description:""};break;case 44:case 45:this.$={stmt:"state",id:n[o-2].trim(),classes:[n[o].trim()],type:"default",description:""}}},"anonymous"),table:[{3:1,4:e,5:s,6:i},{1:[3]},{3:5,4:e,5:s,6:i},{3:6,4:e,5:s,6:i},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],r,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:n,5:o,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:c,19:h,22:d,24:u,25:p,26:y,27:g,28:f,29:m,32:25,33:S,35:_,37:b,38:T,42:k,45:E,48:x,49:$,50:D,51:C,54:v},t(L,[2,5]),{9:38,10:12,11:13,12:14,13:15,16:l,17:c,19:h,22:d,24:u,25:p,26:y,27:g,28:f,29:m,32:25,33:S,35:_,37:b,38:T,42:k,45:E,48:x,49:$,50:D,51:C,54:v},t(L,[2,7]),t(L,[2,8]),t(L,[2,9]),t(L,[2,10]),t(L,[2,11]),t(L,[2,12],{14:[1,39],15:[1,40]}),t(L,[2,16]),{18:[1,41]},t(L,[2,18],{20:[1,42]}),{23:[1,43]},t(L,[2,22]),t(L,[2,23]),t(L,[2,24]),t(L,[2,25]),{30:44,31:[1,45],56:[1,46],57:[1,47]},t(L,[2,28]),{34:[1,48]},{36:[1,49]},t(L,[2,31]),{39:[1,50],41:[1,51]},{43:[1,52]},{46:[1,53]},t(A,[2,42],{55:[1,54]}),t(A,[2,43],{55:[1,55]}),t(L,[2,36]),t(L,[2,37]),t(L,[2,38]),t(L,[2,39]),t(L,[2,6]),t(L,[2,13]),{13:56,24:u,54:v},t(L,[2,17]),t(I,r,{7:57}),{24:[1,58]},{24:[1,59]},{23:[1,60]},{24:[2,46]},{24:[2,47]},t(L,[2,29]),t(L,[2,30]),{40:[1,61]},{40:[1,62]},{44:[1,63]},{47:[1,64]},{24:[1,65]},{24:[1,66]},t(L,[2,14],{14:[1,67]}),{4:n,5:o,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:c,19:h,21:[1,68],22:d,24:u,25:p,26:y,27:g,28:f,29:m,32:25,33:S,35:_,37:b,38:T,42:k,45:E,48:x,49:$,50:D,51:C,54:v},t(L,[2,20],{20:[1,69]}),{31:[1,70]},{24:[1,71]},t(L,[2,32]),t(L,[2,33]),t(L,[2,34]),t(L,[2,35]),t(A,[2,44]),t(A,[2,45]),t(L,[2,15]),t(L,[2,19]),t(I,r,{7:72}),t(L,[2,26]),t(L,[2,27]),{4:n,5:o,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:c,19:h,21:[1,73],22:d,24:u,25:p,26:y,27:g,28:f,29:m,32:25,33:S,35:_,37:b,38:T,42:k,45:E,48:x,49:$,50:D,51:C,54:v},t(L,[2,21])],defaultActions:{5:[2,1],6:[2,2],46:[2,46],47:[2,47]},parseError:(0,a.K2)(function(t,e){if(e.recoverable)this.trace(t);else{var s=Error(t);throw s.hash=e,s}},"parseError"),parse:(0,a.K2)(function(t){var e=this,s=[0],i=[],r=[null],n=[],o=this.table,l="",c=0,h=0,d=0,u=n.slice.call(arguments,1),p=Object.create(this.lexer),y={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(y.yy[g]=this.yy[g]);p.setInput(t,y.yy),y.yy.lexer=p,y.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var f=p.yylloc;n.push(f);var m=p.options&&p.options.ranges;function S(){var t;return"number"!=typeof(t=i.pop()||p.lex()||1)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof y.yy.parseError?this.parseError=y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,a.K2)(function(t){s.length=s.length-2*t,r.length=r.length-t,n.length=n.length-t},"popStack"),(0,a.K2)(S,"lex");for(var _,b,T,k,E,x,$,D,C,v={};;){if(T=s[s.length-1],this.defaultActions[T]?k=this.defaultActions[T]:(null==_&&(_=S()),k=o[T]&&o[T][_]),void 0===k||!k.length||!k[0]){var L="";for(x in C=[],o[T])this.terminals_[x]&&x>2&&C.push("'"+this.terminals_[x]+"'");L=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==_?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(L,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:f,expected:C})}if(k[0]instanceof Array&&k.length>1)throw Error("Parse Error: multiple actions possible at state: "+T+", token: "+_);switch(k[0]){case 1:s.push(_),r.push(p.yytext),n.push(p.yylloc),s.push(k[1]),_=null,b?(_=b,b=null):(h=p.yyleng,l=p.yytext,c=p.yylineno,f=p.yylloc,d>0&&d--);break;case 2:if($=this.productions_[k[1]][1],v.$=r[r.length-$],v._$={first_line:n[n.length-($||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-($||1)].first_column,last_column:n[n.length-1].last_column},m&&(v._$.range=[n[n.length-($||1)].range[0],n[n.length-1].range[1]]),void 0!==(E=this.performAction.apply(v,[l,h,c,y.yy,k[1],r,n].concat(u))))return E;$&&(s=s.slice(0,-1*$*2),r=r.slice(0,-1*$),n=n.slice(0,-1*$)),s.push(this.productions_[k[1]][0]),r.push(v.$),n.push(v._$),D=o[s[s.length-2]][s[s.length-1]],s.push(D);break;case 3:return!0}}return!0},"parse")},w={EOF:1,parseError:(0,a.K2)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,a.K2)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,a.K2)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,a.K2)(function(t){var e=t.length,s=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),s.length-1&&(this.yylineno-=s.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===i.length?this.yylloc.first_column:0)+i[i.length-s.length].length-s[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,a.K2)(function(){return this._more=!0,this},"more"),reject:(0,a.K2)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,a.K2)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,a.K2)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,a.K2)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,a.K2)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,a.K2)(function(t,e){var s,i,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],s=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack)for(var n in r)this[n]=r[n];return!1},"test_match"),next:(0,a.K2)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,s,i,r=this._currentRules(),n=0;n<r.length;n++)if((s=this._input.match(this.rules[r[n]]))&&(!e||s[0].length>e[0].length)){if(e=s,i=n,this.options.backtrack_lexer){if(!1!==(t=this.test_match(s,r[n])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,r[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,a.K2)(function(){return this.next()||this.lex()},"lex"),begin:(0,a.K2)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,a.K2)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,a.K2)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,a.K2)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,a.K2)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,a.K2)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,a.K2)(function(t,e,s,i){switch(s){case 0:return 41;case 1:case 42:return 48;case 2:case 43:return 49;case 3:case 44:return 50;case 4:case 45:return 51;case 5:case 6:case 8:case 9:case 10:case 11:case 54:case 56:case 62:break;case 7:case 77:return 5;case 12:case 32:return this.pushState("SCALE"),17;case 13:case 33:return 18;case 14:case 20:case 34:case 49:case 52:this.popState();break;case 15:return this.begin("acc_title"),33;case 16:return this.popState(),"acc_title_value";case 17:return this.begin("acc_descr"),35;case 18:return this.popState(),"acc_descr_value";case 19:this.begin("acc_descr_multiline");break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),38;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 24:return this.popState(),this.pushState("CLASSDEFID"),39;case 25:return this.popState(),40;case 26:return this.pushState("CLASS"),45;case 27:return this.popState(),this.pushState("CLASS_STYLE"),46;case 28:return this.popState(),47;case 29:return this.pushState("STYLE"),42;case 30:return this.popState(),this.pushState("STYLEDEF_STYLES"),43;case 31:return this.popState(),44;case 35:this.pushState("STATE");break;case 36:case 39:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),25;case 37:case 40:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),26;case 38:case 41:return this.popState(),e.yytext=e.yytext.slice(0,-10).trim(),27;case 46:this.pushState("STATE_STRING");break;case 47:return this.pushState("STATE_ID"),"AS";case 48:case 64:return this.popState(),"ID";case 50:return"STATE_DESCR";case 51:return 19;case 53:return this.popState(),this.pushState("struct"),20;case 55:return this.popState(),21;case 57:return this.begin("NOTE"),29;case 58:return this.popState(),this.pushState("NOTE_ID"),56;case 59:return this.popState(),this.pushState("NOTE_ID"),57;case 60:this.popState(),this.pushState("FLOATING_NOTE");break;case 61:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 63:return"NOTE_TEXT";case 65:return this.popState(),this.pushState("NOTE_TEXT"),24;case 66:return this.popState(),e.yytext=e.yytext.substr(2).trim(),31;case 67:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),31;case 68:case 69:return 6;case 70:return 16;case 71:return 54;case 72:return 24;case 73:return e.yytext=e.yytext.trim(),14;case 74:return 15;case 75:return 28;case 76:return 55;case 78:return"INVALID"}},"anonymous"),rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:style\s+)/i,/^(?:[\w,]+\s+)/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<<fork>>)/i,/^(?:.*<<join>>)/i,/^(?:.*<<choice>>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,29,35,42,43,44,45,54,55,56,57,71,72,73,74,75],inclusive:!1},FLOATING_NOTE_ID:{rules:[64],inclusive:!1},FLOATING_NOTE:{rules:[61,62,63],inclusive:!1},NOTE_TEXT:{rules:[66,67],inclusive:!1},NOTE_ID:{rules:[65],inclusive:!1},NOTE:{rules:[58,59,60],inclusive:!1},STYLEDEF_STYLEOPTS:{rules:[],inclusive:!1},STYLEDEF_STYLES:{rules:[31],inclusive:!1},STYLE_IDS:{rules:[],inclusive:!1},STYLE:{rules:[30],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,33,34],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[48],inclusive:!1},STATE_STRING:{rules:[49,50],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,36,37,38,39,40,41,46,47,51,52,53],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,35,53,57,68,69,70,71,72,73,74,76,77,78],inclusive:!0}}};function R(){this.yy={}}return K.lexer=w,(0,a.K2)(R,"Parser"),R.prototype=K,K.Parser=R,new R}();o.parser=o;var l=o,c="TB",h="state",d="relation",u="default",p="divider",y="fill:none",g="fill: #333",f="text",m="normal",S="rect",_="rectWithTitle",b="divider",T="roundedWithTitle",k="statediagram",E=`${k}-state`,x="transition",$=`${x} note-edge`,D=`${k}-note`,C=`${k}-cluster`,v=`${k}-cluster-alt`,L="parent",A="note",I="----",K=`${I}${A}`,w=`${I}${L}`,R=(0,a.K2)((t,e=c)=>{if(!t.doc)return e;let s=e;for(let e of t.doc)"dir"===e.stmt&&(s=e.value);return s},"getDir"),O={getClasses:(0,a.K2)(function(t,e){return e.db.extract(e.db.getRootDocV2()),e.db.getClasses()},"getClasses"),draw:(0,a.K2)(async function(t,e,s,o){a.Rm.info("REF0:"),a.Rm.info("Drawing state diagram (v2)",e);let{securityLevel:l,state:c,layout:h}=(0,a.D7)();o.db.extract(o.db.getRootDocV2());let d=o.db.getData(),u=(0,i.A)(e,l);d.type=o.type,d.layoutAlgorithm=h,d.nodeSpacing=c?.nodeSpacing||50,d.rankSpacing=c?.rankSpacing||50,d.markers=["barb"],d.diagramId=e,await (0,r.XX)(d,u),n._K.insertTitle(u,"statediagramTitleText",c?.titleTopMargin??25,o.db.getDiagramTitle()),(0,i.P)(u,8,k,c?.useMaxWidth??!0)},"draw"),getDir:R},N=new Map,B=0;function F(t="",e=0,s="",i=I){let r=null!==s&&s.length>0?`${i}${s}`:"";return`state-${t}${r}-${e}`}(0,a.K2)(F,"stateDomId");var P=(0,a.K2)((t,e,s,i,r,n,o,l)=>{a.Rm.trace("items",e),e.forEach(e=>{switch(e.stmt){case h:case u:U(t,e,s,i,r,n,o,l);break;case d:{U(t,e.state1,s,i,r,n,o,l),U(t,e.state2,s,i,r,n,o,l);let c={id:"edge"+B,start:e.state1.id,end:e.state2.id,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:y,labelStyle:"",label:a.Y2.sanitizeText(e.description,(0,a.D7)()),arrowheadStyle:g,labelpos:"c",labelType:f,thickness:m,classes:x,look:o};r.push(c),B++}}})},"setupDoc"),Y=(0,a.K2)((t,e=c)=>{let s=e;if(t.doc)for(let e of t.doc)"dir"===e.stmt&&(s=e.value);return s},"getDir");function G(t,e,s){if(!e.id||"</join></fork>"===e.id||"</choice>"===e.id)return;e.cssClasses&&(Array.isArray(e.cssCompiledStyles)||(e.cssCompiledStyles=[]),e.cssClasses.split(" ").forEach(t=>{if(s.get(t)){let i=s.get(t);e.cssCompiledStyles=[...e.cssCompiledStyles,...i.styles]}}));let i=t.find(t=>t.id===e.id);i?Object.assign(i,e):t.push(e)}function j(t){return t?.classes?.join(" ")??""}function z(t){return t?.styles??[]}(0,a.K2)(G,"insertOrUpdateNode"),(0,a.K2)(j,"getClassesFromDbInfo"),(0,a.K2)(z,"getStylesFromDbInfo");var U=(0,a.K2)((t,e,s,i,r,n,o,l)=>{let c=e.id,h=s.get(c),d=j(h),k=z(h);if(a.Rm.info("dataFetcher parsedItem",e,h,k),"root"!==c){let s=S;!0===e.start?s="stateStart":!1===e.start&&(s="stateEnd"),e.type!==u&&(s=e.type),N.get(c)||N.set(c,{id:c,shape:s,description:a.Y2.sanitizeText(c,(0,a.D7)()),cssClasses:`${d} ${E}`,cssStyles:k});let h=N.get(c);e.description&&(Array.isArray(h.description)?(h.shape=_,h.description.push(e.description)):h.description?.length>0?(h.shape=_,h.description===c?h.description=[e.description]:h.description=[h.description,e.description]):(h.shape=S,h.description=e.description),h.description=a.Y2.sanitizeTextOrArray(h.description,(0,a.D7)())),h.description?.length===1&&h.shape===_&&("group"===h.type?h.shape=T:h.shape=S),!h.type&&e.doc&&(a.Rm.info("Setting cluster for XCX",c,Y(e)),h.type="group",h.isGroup=!0,h.dir=Y(e),h.shape=e.type===p?b:T,h.cssClasses=`${h.cssClasses} ${C} ${n?v:""}`);let x={labelStyle:"",shape:h.shape,label:h.description,cssClasses:h.cssClasses,cssCompiledStyles:[],cssStyles:h.cssStyles,id:c,dir:h.dir,domId:F(c,B),type:h.type,isGroup:"group"===h.type,padding:8,rx:10,ry:10,look:o};if(x.shape===b&&(x.label=""),t&&"root"!==t.id&&(a.Rm.trace("Setting node ",c," to be child of its parent ",t.id),x.parentId=t.id),x.centerLabel=!0,e.note){let t={labelStyle:"",shape:"note",label:e.note.text,cssClasses:D,cssStyles:[],cssCompilesStyles:[],id:c+K+"-"+B,domId:F(c,B,A),type:h.type,isGroup:"group"===h.type,padding:(0,a.D7)().flowchart.padding,look:o,position:e.note.position},s=c+w,n={labelStyle:"",shape:"noteGroup",label:e.note.text,cssClasses:h.cssClasses,cssStyles:[],id:c+w,domId:F(c,B,L),type:"group",isGroup:!0,padding:16,look:o,position:e.note.position};B++,n.id=s,t.parentId=s,G(i,n,l),G(i,t,l),G(i,x,l);let d=c,u=t.id;"left of"===e.note.position&&(d=t.id,u=c),r.push({id:d+"-"+u,start:d,end:u,arrowhead:"none",arrowTypeEnd:"",style:y,labelStyle:"",classes:$,arrowheadStyle:g,labelpos:"c",labelType:f,thickness:m,look:o})}else G(i,x,l)}e.doc&&(a.Rm.trace("Adding nodes children "),P(e,e.doc,s,i,r,!n,o,l))},"dataFetcher"),M=(0,a.K2)(()=>{N.clear(),B=0},"reset"),X="start",V="color",W="fill";function H(){return new Map}(0,a.K2)(H,"newClassesList");var J=[],q=[],Z="LR",Q=[],tt=H(),te=(0,a.K2)(()=>({relations:[],states:new Map,documents:{}}),"newDoc"),ts={root:te()},ti=ts.root,tr=0,tn=0,ta=(0,a.K2)(t=>JSON.parse(JSON.stringify(t)),"clone"),to=(0,a.K2)(t=>{a.Rm.info("Setting root doc",t),Q=t},"setRootDoc"),tl=(0,a.K2)(()=>Q,"getRootDoc"),tc=(0,a.K2)((t,e,s)=>{if(e.stmt===d)tc(t,e.state1,!0),tc(t,e.state2,!1);else if(e.stmt===h&&("[*]"===e.id?(e.id=s?t.id+"_start":t.id+"_end",e.start=s):e.id=e.id.trim()),e.doc){let t;let s=[],i=[];for(t=0;t<e.doc.length;t++)if(e.doc[t].type===p){let r=ta(e.doc[t]);r.doc=ta(i),s.push(r),i=[]}else i.push(e.doc[t]);if(s.length>0&&i.length>0){let t={stmt:h,id:(0,n.$C)(),type:"divider",doc:ta(i)};s.push(ta(t)),e.doc=s}e.doc.forEach(t=>tc(e,t,!0))}},"docTranslator"),th=(0,a.K2)(()=>(tc({id:"root"},{id:"root",doc:Q},!0),{id:"root",doc:Q}),"getRootDocV2"),td=(0,a.K2)(t=>{let e;e=t.doc?t.doc:t,a.Rm.info(e),tp(!0),a.Rm.info("Extract initial document:",e),e.forEach(t=>{switch(a.Rm.warn("Statement",t.stmt),t.stmt){case h:tu(t.id.trim(),t.type,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles);break;case d:tE(t.state1,t.state2,t.description);break;case"classDef":tC(t.id.trim(),t.classes);break;case"style":{let e=t.id.trim().split(","),s=t.styleClass.split(",");e.forEach(t=>{let e=ty(t);if(void 0===e){let s=t.trim();tu(s),e=ty(s)}e.styles=s.map(t=>t.replace(/;/g,"")?.trim())})}break;case"applyClass":tL(t.id.trim(),t.styleClass)}});let s=tg(),i=(0,a.D7)().look;M(),U(void 0,th(),s,J,q,!0,i,tt),J.forEach(t=>{if(Array.isArray(t.label)){if(t.description=t.label.slice(1),t.isGroup&&t.description.length>0)throw Error("Group nodes can only have label. Remove the additional description for node ["+t.id+"]");t.label=t.label[0]}})},"extract"),tu=(0,a.K2)(function(t,e=u,s=null,i=null,r=null,n=null,o=null,l=null){let c=t?.trim();if(ti.states.has(c)?(ti.states.get(c).doc||(ti.states.get(c).doc=s),ti.states.get(c).type||(ti.states.get(c).type=e)):(a.Rm.info("Adding state ",c,i),ti.states.set(c,{id:c,descriptions:[],type:e,doc:s,note:r,classes:[],styles:[],textStyles:[]})),i&&(a.Rm.info("Setting state description",c,i),"string"==typeof i&&tx(c,i.trim()),"object"==typeof i&&i.forEach(t=>tx(c,t.trim()))),r){let t=ti.states.get(c);t.note=r,t.note.text=a.Y2.sanitizeText(t.note.text,(0,a.D7)())}n&&(a.Rm.info("Setting state classes",c,n),("string"==typeof n?[n]:n).forEach(t=>tL(c,t.trim()))),o&&(a.Rm.info("Setting state styles",c,o),("string"==typeof o?[o]:o).forEach(t=>tA(c,t.trim()))),l&&(a.Rm.info("Setting state styles",c,o),("string"==typeof l?[l]:l).forEach(t=>tI(c,t.trim())))},"addState"),tp=(0,a.K2)(function(t){J=[],q=[],ti=(ts={root:te()}).root,tr=0,tt=H(),t||(0,a.IU)()},"clear"),ty=(0,a.K2)(function(t){return ti.states.get(t)},"getState"),tg=(0,a.K2)(function(){return ti.states},"getStates"),tf=(0,a.K2)(function(){a.Rm.info("Documents = ",ts)},"logDocuments"),tm=(0,a.K2)(function(){return ti.relations},"getRelations");function tS(t=""){let e=t;return"[*]"===t&&(tr++,e=`${X}${tr}`),e}function t_(t="",e=u){return"[*]"===t?X:e}function tb(t=""){let e=t;return"[*]"===t&&(tr++,e=`end${tr}`),e}function tT(t="",e=u){return"[*]"===t?"end":e}function tk(t,e,s){let i=tS(t.id.trim()),r=t_(t.id.trim(),t.type),n=tS(e.id.trim()),o=t_(e.id.trim(),e.type);tu(i,r,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),tu(n,o,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),ti.relations.push({id1:i,id2:n,relationTitle:a.Y2.sanitizeText(s,(0,a.D7)())})}(0,a.K2)(tS,"startIdIfNeeded"),(0,a.K2)(t_,"startTypeIfNeeded"),(0,a.K2)(tb,"endIdIfNeeded"),(0,a.K2)(tT,"endTypeIfNeeded"),(0,a.K2)(tk,"addRelationObjs");var tE=(0,a.K2)(function(t,e,s){if("object"==typeof t)tk(t,e,s);else{let i=tS(t.trim()),r=t_(t),n=tb(e.trim()),o=tT(e);tu(i,r),tu(n,o),ti.relations.push({id1:i,id2:n,title:a.Y2.sanitizeText(s,(0,a.D7)())})}},"addRelation"),tx=(0,a.K2)(function(t,e){let s=ti.states.get(t),i=e.startsWith(":")?e.replace(":","").trim():e;s.descriptions.push(a.Y2.sanitizeText(i,(0,a.D7)()))},"addDescription"),t$=(0,a.K2)(function(t){return":"===t.substring(0,1)?t.substr(2).trim():t.trim()},"cleanupLabel"),tD=(0,a.K2)(()=>"divider-id-"+ ++tn,"getDividerId"),tC=(0,a.K2)(function(t,e=""){tt.has(t)||tt.set(t,{id:t,styles:[],textStyles:[]});let s=tt.get(t);null!=e&&e.split(",").forEach(t=>{let e=t.replace(/([^;]*);/,"$1").trim();if(RegExp(V).exec(t)){let t=e.replace(W,"bgFill").replace(V,W);s.textStyles.push(t)}s.styles.push(e)})},"addStyleClass"),tv=(0,a.K2)(function(){return tt},"getClasses"),tL=(0,a.K2)(function(t,e){t.split(",").forEach(function(t){let s=ty(t);if(void 0===s){let e=t.trim();tu(e),s=ty(e)}s.classes.push(e)})},"setCssClass"),tA=(0,a.K2)(function(t,e){let s=ty(t);void 0!==s&&s.styles.push(e)},"setStyle"),tI=(0,a.K2)(function(t,e){let s=ty(t);void 0!==s&&s.textStyles.push(e)},"setTextStyle"),tK=(0,a.K2)(()=>Z,"getDirection"),tw=(0,a.K2)(t=>{Z=t},"setDirection"),tR=(0,a.K2)(t=>t&&":"===t[0]?t.substr(1).trim():t.trim(),"trimColon"),tO=(0,a.K2)(()=>{let t=(0,a.D7)();return{nodes:J,edges:q,other:{},config:t,direction:R(th())}},"getData"),tN={getConfig:(0,a.K2)(()=>(0,a.D7)().state,"getConfig"),getData:tO,addState:tu,clear:tp,getState:ty,getStates:tg,getRelations:tm,getClasses:tv,getDirection:tK,addRelation:tE,getDividerId:tD,setDirection:tw,cleanupLabel:t$,lineType:{LINE:0,DOTTED_LINE:1},relationType:{AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},logDocuments:tf,getRootDoc:tl,setRootDoc:to,getRootDocV2:th,extract:td,trimColon:tR,getAccTitle:a.iN,setAccTitle:a.SV,getAccDescription:a.m7,setAccDescription:a.EI,addStyleClass:tC,setCssClass:tL,addDescription:tx,setDiagramTitle:a.ke,getDiagramTitle:a.ab},tB=(0,a.K2)(t=>` +defs #statediagram-barbEnd { + fill: ${t.transitionColor}; + stroke: ${t.transitionColor}; + } +g.stateGroup text { + fill: ${t.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${t.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${t.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.stateGroup line { + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${t.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${t.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + + text { + fill: ${t.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${t.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; +} +.edgeLabel .label text { + fill: ${t.transitionLabelColor||t.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${t.transitionLabelColor||t.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${t.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node .fork-join { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node circle.state-end { + fill: ${t.innerEndBackground}; + stroke: ${t.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${t.compositeBackground||t.background}; + // stroke: ${t.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${t.stateBkg||t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${t.lineColor}; +} + +.statediagram-cluster rect { + fill: ${t.compositeTitleBackground}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${t.stateLabelColor}; + // line-height: 1; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${t.stateBorder||t.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${t.compositeBackground||t.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${t.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${t.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${t.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${t.lineColor}; + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`,"getStyles")},165:(t,e,s)=>{s.d(e,{A:()=>n,P:()=>a});var i=s(72912),r=s(89601),n=(0,i.K2)((t,e)=>{let s;return"sandbox"===e&&(s=(0,r.Ltv)("#i"+t)),("sandbox"===e?(0,r.Ltv)(s.nodes()[0].contentDocument.body):(0,r.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement"),a=(0,i.K2)((t,e,s,r)=>{t.attr("class",s);let{width:n,height:a,x:c,y:h}=o(t,e);(0,i.a$)(t,a,n,r);let d=l(c,h,n,a,e);t.attr("viewBox",d),i.Rm.debug(`viewBox configured: ${d} with padding: ${e}`)},"setupViewPortForSVG"),o=(0,i.K2)((t,e)=>{let s=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*e,height:s.height+2*e,x:s.x,y:s.y}},"calculateDimensionsWithPadding"),l=(0,i.K2)((t,e,s,i,r)=>`${t-r} ${e-r} ${s} ${i}`,"createViewBox")}}]); \ No newline at end of file diff --git a/assets/js/5665a0fb.80d64e07.js b/assets/js/5665a0fb.80d64e07.js deleted file mode 100644 index 54dd75e1b0..0000000000 --- a/assets/js/5665a0fb.80d64e07.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[58102],{93088:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>c});let i=JSON.parse('{"id":"api/plugin-methods/i18n-lifecycles","title":"I18n lifecycles","description":"Plugins use these lifecycles to load i18n-related data.","source":"@site/docs/api/plugin-methods/i18n-lifecycles.mdx","sourceDirName":"api/plugin-methods","slug":"/api/plugin-methods/i18n-lifecycles","permalink":"/docs/api/plugin-methods/i18n-lifecycles","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugin-methods/i18n-lifecycles.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":3,"frontMatter":{"sidebar_position":3},"sidebar":"api","previous":{"title":"Extending infrastructure","permalink":"/docs/api/plugin-methods/extend-infrastructure"},"next":{"title":"Static methods","permalink":"/docs/api/plugin-methods/static-methods"}}');var s=t(62540),l=t(43023);let a={sidebar_position:3},r="I18n lifecycles",o={},c=[{value:"<code>getTranslationFiles({content})</code>",id:"getTranslationFiles",level:2},{value:"<code>translateContent({content,translationFiles})</code>",id:"translateContent",level:2},{value:"<code>translateThemeConfig({themeConfig,translationFiles})</code>",id:"translateThemeConfig",level:2},{value:"<code>async getDefaultCodeTranslationMessages()</code>",id:"getDefaultCodeTranslationMessages",level:2}];function d(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"i18n-lifecycles",children:"I18n lifecycles"})}),"\n",(0,s.jsx)(n.p,{children:"Plugins use these lifecycles to load i18n-related data."}),"\n",(0,s.jsx)(n.h2,{id:"getTranslationFiles",children:(0,s.jsx)(n.code,{children:"getTranslationFiles({content})"})}),"\n",(0,s.jsx)(n.p,{children:"Plugins declare the JSON translation files they want to use."}),"\n",(0,s.jsxs)(n.p,{children:["Returns translation files ",(0,s.jsx)(n.code,{children:"{path: string, content: ChromeI18nJSON}"}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"path"}),": relative to the plugin localized folder ",(0,s.jsx)(n.code,{children:"i18n/[locale]/[pluginName]"}),". Extension ",(0,s.jsx)(n.code,{children:".json"})," should be omitted to remain generic."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"content"}),": using the Chrome i18n JSON format."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["These files will be written by the ",(0,s.jsxs)(n.a,{href:"/docs/cli#docusaurus-write-translations-sitedir",children:[(0,s.jsx)(n.code,{children:"write-translations"})," CLI"]})," to the plugin i18n subfolder, and will be read in the appropriate locale before calling ",(0,s.jsx)(n.a,{href:"#translateContent",children:(0,s.jsx)(n.code,{children:"translateContent()"})})," and ",(0,s.jsx)(n.a,{href:"#translateThemeConfig",children:(0,s.jsx)(n.code,{children:"translateThemeConfig()"})})]}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="my-plugin.js"',children:"export default function (context, options) {\n return {\n name: 'my-plugin',\n // highlight-start\n async getTranslationFiles({content}) {\n return [\n {\n path: 'sidebar-labels',\n content: {\n someSidebarLabel: {\n message: 'Some Sidebar Label',\n description: 'A label used in my plugin in the sidebar',\n },\n someLabelFromContent: content.myLabel,\n },\n },\n ];\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,s.jsx)(n.h2,{id:"translateContent",children:(0,s.jsx)(n.code,{children:"translateContent({content,translationFiles})"})}),"\n",(0,s.jsx)(n.p,{children:"Translate the plugin content, using the localized translation files."}),"\n",(0,s.jsx)(n.p,{children:"Returns the localized plugin content."}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"contentLoaded()"})," lifecycle will be called with the localized plugin content returned by ",(0,s.jsx)(n.code,{children:"translateContent()"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="my-plugin.js"',children:"export default function (context, options) {\n return {\n name: 'my-plugin',\n // highlight-start\n translateContent({content, translationFiles}) {\n const myTranslationFile = translationFiles.find(\n (f) => f.path === 'myTranslationFile',\n );\n return {\n ...content,\n someContentLabel: myTranslationFile.someContentLabel.message,\n };\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,s.jsx)(n.h2,{id:"translateThemeConfig",children:(0,s.jsx)(n.code,{children:"translateThemeConfig({themeConfig,translationFiles})"})}),"\n",(0,s.jsxs)(n.p,{children:["Translate the site ",(0,s.jsx)(n.code,{children:"themeConfig"})," labels, using the localized translation files."]}),"\n",(0,s.jsxs)(n.p,{children:["Returns the localized ",(0,s.jsx)(n.code,{children:"themeConfig"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="my-plugin.js"',children:"export default function (context, options) {\n return {\n name: 'my-theme',\n // highlight-start\n translateThemeConfig({themeConfig, translationFiles}) {\n const myTranslationFile = translationFiles.find(\n (f) => f.path === 'myTranslationFile',\n );\n return {\n ...themeConfig,\n someThemeConfigLabel: myTranslationFile.someThemeConfigLabel.message,\n };\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,s.jsx)(n.h2,{id:"getDefaultCodeTranslationMessages",children:(0,s.jsx)(n.code,{children:"async getDefaultCodeTranslationMessages()"})}),"\n",(0,s.jsxs)(n.p,{children:["Themes using the ",(0,s.jsx)(n.code,{children:"<Translate>"})," API can provide default code translation messages."]}),"\n",(0,s.jsxs)(n.p,{children:["It should return messages in ",(0,s.jsx)(n.code,{children:"Record<string, string>"}),", where keys are translation IDs and values are messages (without the description) localized using the site's current locale."]}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="my-plugin.js"',children:"export default function (context, options) {\n return {\n name: 'my-theme',\n // highlight-start\n async getDefaultCodeTranslationMessages() {\n return readJsonFile(`${context.i18n.currentLocale}.json`);\n },\n // highlight-end\n };\n}\n"})})]})}function h(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>r});var i=t(63696);let s={},l=i.createContext(s);function a(e){let n=i.useContext(l);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5665a0fb.fdb3741a.js b/assets/js/5665a0fb.fdb3741a.js new file mode 100644 index 0000000000..781f488565 --- /dev/null +++ b/assets/js/5665a0fb.fdb3741a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[58102],{93088:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>c});let i=JSON.parse('{"id":"api/plugin-methods/i18n-lifecycles","title":"I18n lifecycles","description":"Plugins use these lifecycles to load i18n-related data.","source":"@site/docs/api/plugin-methods/i18n-lifecycles.mdx","sourceDirName":"api/plugin-methods","slug":"/api/plugin-methods/i18n-lifecycles","permalink":"/docs/api/plugin-methods/i18n-lifecycles","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugin-methods/i18n-lifecycles.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":3,"frontMatter":{"sidebar_position":3},"sidebar":"api","previous":{"title":"Extending infrastructure","permalink":"/docs/api/plugin-methods/extend-infrastructure"},"next":{"title":"Static methods","permalink":"/docs/api/plugin-methods/static-methods"}}');var s=t(62540),l=t(43023);let a={sidebar_position:3},r="I18n lifecycles",o={},c=[{value:"<code>getTranslationFiles({content})</code>",id:"getTranslationFiles",level:2},{value:"<code>translateContent({content,translationFiles})</code>",id:"translateContent",level:2},{value:"<code>translateThemeConfig({themeConfig,translationFiles})</code>",id:"translateThemeConfig",level:2},{value:"<code>async getDefaultCodeTranslationMessages()</code>",id:"getDefaultCodeTranslationMessages",level:2}];function d(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"i18n-lifecycles",children:"I18n lifecycles"})}),"\n",(0,s.jsx)(n.p,{children:"Plugins use these lifecycles to load i18n-related data."}),"\n",(0,s.jsx)(n.h2,{id:"getTranslationFiles",children:(0,s.jsx)(n.code,{children:"getTranslationFiles({content})"})}),"\n",(0,s.jsx)(n.p,{children:"Plugins declare the JSON translation files they want to use."}),"\n",(0,s.jsxs)(n.p,{children:["Returns translation files ",(0,s.jsx)(n.code,{children:"{path: string, content: ChromeI18nJSON}"}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"path"}),": relative to the plugin localized folder ",(0,s.jsx)(n.code,{children:"i18n/[locale]/[pluginName]"}),". Extension ",(0,s.jsx)(n.code,{children:".json"})," should be omitted to remain generic."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"content"}),": using the Chrome i18n JSON format."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["These files will be written by the ",(0,s.jsxs)(n.a,{href:"/docs/cli#docusaurus-write-translations-sitedir",children:[(0,s.jsx)(n.code,{children:"write-translations"})," CLI"]})," to the plugin i18n subfolder, and will be read in the appropriate locale before calling ",(0,s.jsx)(n.a,{href:"#translateContent",children:(0,s.jsx)(n.code,{children:"translateContent()"})})," and ",(0,s.jsx)(n.a,{href:"#translateThemeConfig",children:(0,s.jsx)(n.code,{children:"translateThemeConfig()"})})]}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="my-plugin.js"',children:"export default function (context, options) {\n return {\n name: 'my-plugin',\n // highlight-start\n async getTranslationFiles({content}) {\n return [\n {\n path: 'sidebar-labels',\n content: {\n someSidebarLabel: {\n message: 'Some Sidebar Label',\n description: 'A label used in my plugin in the sidebar',\n },\n someLabelFromContent: content.myLabel,\n },\n },\n ];\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,s.jsx)(n.h2,{id:"translateContent",children:(0,s.jsx)(n.code,{children:"translateContent({content,translationFiles})"})}),"\n",(0,s.jsx)(n.p,{children:"Translate the plugin content, using the localized translation files."}),"\n",(0,s.jsx)(n.p,{children:"Returns the localized plugin content."}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"contentLoaded()"})," lifecycle will be called with the localized plugin content returned by ",(0,s.jsx)(n.code,{children:"translateContent()"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="my-plugin.js"',children:"export default function (context, options) {\n return {\n name: 'my-plugin',\n // highlight-start\n translateContent({content, translationFiles}) {\n const myTranslationFile = translationFiles.find(\n (f) => f.path === 'myTranslationFile',\n );\n return {\n ...content,\n someContentLabel: myTranslationFile.someContentLabel.message,\n };\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,s.jsx)(n.h2,{id:"translateThemeConfig",children:(0,s.jsx)(n.code,{children:"translateThemeConfig({themeConfig,translationFiles})"})}),"\n",(0,s.jsxs)(n.p,{children:["Translate the site ",(0,s.jsx)(n.code,{children:"themeConfig"})," labels, using the localized translation files."]}),"\n",(0,s.jsxs)(n.p,{children:["Returns the localized ",(0,s.jsx)(n.code,{children:"themeConfig"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="my-plugin.js"',children:"export default function (context, options) {\n return {\n name: 'my-theme',\n // highlight-start\n translateThemeConfig({themeConfig, translationFiles}) {\n const myTranslationFile = translationFiles.find(\n (f) => f.path === 'myTranslationFile',\n );\n return {\n ...themeConfig,\n someThemeConfigLabel: myTranslationFile.someThemeConfigLabel.message,\n };\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,s.jsx)(n.h2,{id:"getDefaultCodeTranslationMessages",children:(0,s.jsx)(n.code,{children:"async getDefaultCodeTranslationMessages()"})}),"\n",(0,s.jsxs)(n.p,{children:["Themes using the ",(0,s.jsx)(n.code,{children:"<Translate>"})," API can provide default code translation messages."]}),"\n",(0,s.jsxs)(n.p,{children:["It should return messages in ",(0,s.jsx)(n.code,{children:"Record<string, string>"}),", where keys are translation IDs and values are messages (without the description) localized using the site's current locale."]}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="my-plugin.js"',children:"export default function (context, options) {\n return {\n name: 'my-theme',\n // highlight-start\n async getDefaultCodeTranslationMessages() {\n return readJsonFile(`${context.i18n.currentLocale}.json`);\n },\n // highlight-end\n };\n}\n"})})]})}function h(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>r});var i=t(63696);let s={},l=i.createContext(s);function a(e){let n=i.useContext(l);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/575718d1.c2bfd734.js b/assets/js/575718d1.714c003e.js similarity index 99% rename from assets/js/575718d1.c2bfd734.js rename to assets/js/575718d1.714c003e.js index 2c6b2059c7..6127479d42 100644 --- a/assets/js/575718d1.c2bfd734.js +++ b/assets/js/575718d1.714c003e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[49857],{19143:(e,s,n)=>{n.d(s,{A:()=>r});let r=n.p+"assets/images/social-card-75819f68ecbb579fe176843bb2e3df82.png"},18764:(e,s,n)=>{n.d(s,{A:()=>i});var r=n(62540);n(63696);var t=n(70361);function i({url:e}){return(0,r.jsx)("div",{style:{padding:10},children:(0,r.jsx)(t.A,{url:e,style:{minWidth:"min(100%,45vw)",width:800,maxWidth:"100%",overflow:"hidden"},bodyStyle:{padding:0},children:(0,r.jsx)("iframe",{src:e,title:e,style:{display:"block",width:"100%",height:300}})})})}},70361:(e,s,n)=>{n.d(s,{A:()=>a});var r=n(62540);n(63696);var t=n(11750);let i="dot_giz1",o="bar_rrRL";function a({children:e,minHeight:s,url:n="http://localhost:3000",style:a,bodyStyle:c}){var l,d;return(0,r.jsxs)("div",{className:"browserWindow_my1Q",style:(l=function(e){for(var s=1;s<arguments.length;s++){var n=null!=arguments[s]?arguments[s]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(s){var r;r=n[s],s in e?Object.defineProperty(e,s,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[s]=r})}return e}({},a),d=d={minHeight:s},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(d)):(function(e,s){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(d)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(d,e))}),l),children:[(0,r.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,r.jsxs)("div",{className:"buttons_uHc7",children:[(0,r.jsx)("span",{className:i,style:{background:"#f25f58"}}),(0,r.jsx)("span",{className:i,style:{background:"#fbbe3c"}}),(0,r.jsx)("span",{className:i,style:{background:"#58cb42"}})]}),(0,r.jsx)("div",{className:(0,t.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:n}),(0,r.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:o}),(0,r.jsx)("span",{className:o}),(0,r.jsx)("span",{className:o})]})})]}),(0,r.jsx)("div",{className:"browserWindowBody_Idgs",style:c,children:e})]})}},39402:(e,s,n)=>{n.d(s,{A:()=>r});let r=n.p+"assets/images/social-card-75819f68ecbb579fe176843bb2e3df82.png"},15431:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>d});var r=n(61470),t=n(62540),i=n(43023),o=n(18764);let a={title:"Announcing Docusaurus 3.0",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2023-10-31T00:00:00.000Z")},c=void 0,l={image:n(19143).A,authorsImageUrls:[void 0]},d=[{value:"Breaking changes",id:"breaking-changes",level:2},{value:"Highlights",id:"highlights",level:2},{value:"Markdown",id:"markdown",level:3},{value:"ESM and TypeScript configs",id:"esm-ts-configs",level:3},{value:"Unlisted content",id:"unlisted-content",level:3},{value:"React 18",id:"react-18",level:3},{value:"Automatic JSX runtime",id:"automatic-jsx-runtime",level:3},{value:"Debug builds",id:"debug-builds",level:3},{value:"TypeScript",id:"typescript",level:3},{value:"Code blocks",id:"code-blocks",level:3},{value:"Mermaid diagrams",id:"mermaid-diagrams",level:3},{value:"Query-string data attributes",id:"query-string-data-attributes",level:3},{value:"Other features",id:"other-features",level:3},{value:"Conclusion",id:"conclusion",level:2}];function u(e){let s={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components},{Details:r}=s;return r||function(e,s){throw Error("Expected "+(s?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.p,{children:["Today, we are happy to ",(0,t.jsx)(s.strong,{children:"announce Docusaurus 3.0"}),"! \u{1F973}"]}),"\n",(0,t.jsxs)(s.p,{children:["At ",(0,t.jsx)(s.a,{href:"https://opensource.fb.com/",children:(0,t.jsx)(s.strong,{children:"Meta Open Source"})}),", we believe Docusaurus will help you build the ",(0,t.jsx)(s.strong,{children:"best documentation websites"})," with ",(0,t.jsx)(s.strong,{children:"minimal effort"}),", letting you ",(0,t.jsx)(s.strong,{children:"focus on what really matters"}),": writing the content."]}),"\n",(0,t.jsxs)(s.p,{children:["This is a new ",(0,t.jsx)(s.strong,{children:"major version"})," of Docusaurus, coming with ",(0,t.jsx)(s.strong,{children:"new exciting features"})," and upgraded dependencies."]}),"\n",(0,t.jsxs)(s.p,{children:["In line with the ",(0,t.jsx)(s.a,{href:"https://semver.org/",children:(0,t.jsx)(s.strong,{children:"Semantic Versioning"})})," principles, this release includes ",(0,t.jsx)(s.strong,{children:"breaking changes"})," we documented thoroughly in the ",(0,t.jsx)(s.a,{href:"/docs/migration/v3/",children:(0,t.jsx)(s.strong,{children:"v3 upgrade guide"})}),". Breaking changes can be bothersome, but they are necessary to set the ground for a ",(0,t.jsx)(s.strong,{children:"new wave of Docusaurus features"})," we plan to implement."]}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"v3.0 social-card image",src:n(39402).A+"",width:"1200",height:"600"})}),"\n","\n",(0,t.jsxs)(s.p,{children:["We initially planned to release more frequent major versions, but Docusaurus v3 has taken longer than expected. Among the breaking changes that we accrued, ",(0,t.jsx)(s.strong,{children:"upgrading to MDX v3"})," is probably the main challenge to the adoption of this new version. We went the extra mile to make this upgrade as easy as possible, notably by adding ",(0,t.jsx)(s.a,{href:"/docs/api/docusaurus-config#markdown",children:"compatibility options for MDX v1"}),"."]}),"\n",(0,t.jsx)(s.p,{children:"The simplest sites will only need to upgrade a few npm dependencies. For more complex sites, we came up with a few strategies that can help you upgrade more confidently:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"/blog/preparing-your-site-for-docusaurus-v3",children:"Prepare your site"})," ahead of time, incrementally, while staying on Docusaurus v2"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing",children:"Set up visual regression tests"})," to catch unexpected visual changes happening during the upgrade"]}),"\n"]}),"\n",(0,t.jsx)(s.admonition,{title:"About Docusaurus v2",type:"info",children:(0,t.jsxs)(s.p,{children:["According to our ",(0,t.jsx)(s.a,{href:"/community/release-process#stable-version",children:"release process"}),", Docusaurus v2 has now entered ",(0,t.jsx)(s.strong,{children:"maintenance mode"}),". It will only receive support for major security issues for 3 months, until 31 January 2024. It is recommended to upgrade within that time frame to v3."]})}),"\n","\n",(0,t.jsx)(s.h2,{id:"breaking-changes",children:"Breaking changes"}),"\n",(0,t.jsxs)(s.p,{children:["This section only gives you a quick glance. All the breaking changes are thoroughly documented in the ",(0,t.jsx)(s.a,{href:"/docs/migration/v3",children:(0,t.jsx)(s.strong,{children:"v3 upgrade guide"})}),"."]}),"\n",(0,t.jsx)(s.p,{children:"Docusaurus v3 upgraded a few dependencies to new major versions, each coming with its own breaking changes:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Node.js v16 \u27A1\uFE0F v18"}),"\n",(0,t.jsx)(s.li,{children:"React v17 \u27A1\uFE0F v18"}),"\n",(0,t.jsx)(s.li,{children:"MDX v1 \u27A1\uFE0F v3"}),"\n",(0,t.jsx)(s.li,{children:"TypeScript v4 \u27A1\uFE0F v5"}),"\n",(0,t.jsx)(s.li,{children:"prism-react-renderer v1 \u27A1\uFE0F v2"}),"\n",(0,t.jsx)(s.li,{children:"react-live v2 \u27A1\uFE0F v4"}),"\n",(0,t.jsx)(s.li,{children:"Mermaid v9 \u27A1\uFE0F v10"}),"\n",(0,t.jsx)(s.li,{children:"import-fresh v3 \u27A1\uFE0F jiti v1"}),"\n",(0,t.jsx)(s.li,{children:"remark-emoji v2 \u27A1\uFE0F v4"}),"\n"]}),"\n",(0,t.jsxs)(s.p,{children:["A typical ",(0,t.jsx)(s.code,{children:"package.json"})," dependency upgrade looks like:"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-diff",metastring:'title="package.json"',children:' {\n "dependencies": {\n // upgrade to Docusaurus v3\n- "@docusaurus/core": "2.4.3",\n- "@docusaurus/preset-classic": "2.4.3",\n+ "@docusaurus/core": "3.0.0",\n+ "@docusaurus/preset-classic": "3.0.0",\n // upgrade to MDX v3\n- "@mdx-js/react": "^1.6.22",\n+ "@mdx-js/react": "^3.0.0",\n // upgrade to prism-react-renderer v2.0+\n- "prism-react-renderer": "^1.3.5",\n+ "prism-react-renderer": "^2.1.0",\n // upgrade to React v18.0+\n- "react": "^17.0.2",\n- "react-dom": "^17.0.2"\n+ "react": "^18.2.0",\n+ "react-dom": "^18.2.0"\n },\n "devDependencies": {\n // upgrade Docusaurus dev dependencies to v3\n- "@docusaurus/module-type-aliases": "2.4.3",\n- "@docusaurus/types": "2.4.3"\n+ "@docusaurus/module-type-aliases": "3.0.0",\n+ "@docusaurus/types": "3.0.0"\n }\n "engines": {\n // require Node.js 18.0+\n- "node": ">=16.14"\n+ "node": ">=18.0"\n }\n }\n'})}),"\n",(0,t.jsx)(s.p,{children:"Apart from MDX v3, most breaking changes coming with those upgraded dependencies have been handled internally for you: most of the time, you shouldn't have to do anything. Outside of dependencies, the only functional breaking changes coming explicitly from the Docusaurus codebase are:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9189",children:"#9189"}),": new default blog RSS feed limit of 20 entries"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9308",children:"#9308"}),": fix and re-introduce the ",(0,t.jsx)(s.code,{children:":::warning"})," admonition, deprecate ",(0,t.jsx)(s.code,{children:":::caution"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9310",children:"#9310"}),": remove the legacy versioned sidebar id prefix, used for sites versioned before ",(0,t.jsx)(s.code,{children:"v2.0.0-beta.10"})," (December 2021)"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/7966",children:"#7966"}),": refactor docs theme components, eventually requiring to you re-swizzle them"]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"highlights",children:"Highlights"}),"\n",(0,t.jsxs)(s.p,{children:["Below is a non-exhaustive list of new useful features coming with this new version. All the features are listed in the ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/releases/tag/v3.0.0",children:(0,t.jsx)(s.strong,{children:"Docusaurus v3.0.0 release notes"})}),"."]}),"\n",(0,t.jsx)(s.h3,{id:"markdown",children:"Markdown"}),"\n",(0,t.jsx)(s.p,{children:"Docusaurus v3 upgraded from MDX v1 to MDX v3:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["in ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8288",children:"#8288"}),", we upgraded to ",(0,t.jsx)(s.a,{href:"https://mdxjs.com/blog/v2/",children:(0,t.jsx)(s.strong,{children:"MDX v2"})})," (",(0,t.jsx)(s.a,{href:"https://mdxjs.com/migrating/v2/",children:"migration guide"}),")"]}),"\n",(0,t.jsxs)(s.li,{children:["in ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9451",children:"#9451"}),", we upgraded to ",(0,t.jsx)(s.a,{href:"https://mdxjs.com/blog/v3/",children:(0,t.jsx)(s.strong,{children:"MDX v3"})})," (",(0,t.jsx)(s.a,{href:"https://mdxjs.com/migrating/v3/",children:"migration guide"}),")"]}),"\n"]}),"\n",(0,t.jsxs)(s.p,{children:["This new MDX version is ",(0,t.jsx)(s.strong,{children:"much better for content writers and plugin authors"}),", and lays the ground for implementing new exciting Markdown features."]}),"\n",(0,t.jsxs)(s.admonition,{title:"MDX v3 - the main challenge",type:"warning",children:[(0,t.jsxs)(s.p,{children:["The transition from MDX v1 to MDX v3 is the ",(0,t.jsx)(s.strong,{children:"main challenge"})," to the adoption of Docusaurus v3."]}),(0,t.jsxs)(s.p,{children:["Some documents that compiled successfully under Docusaurus v2 might now ",(0,t.jsx)(s.strong,{children:"fail to compile"})," under Docusaurus v3, while others might ",(0,t.jsx)(s.strong,{children:"render differently"}),"."]}),(0,t.jsxs)(s.p,{children:["Most breaking changes come from ",(0,t.jsx)(s.a,{href:"https://mdxjs.com/blog/v2/",children:"MDX v2"}),", and ",(0,t.jsx)(s.a,{href:"https://mdxjs.com/blog/v3/",children:"MDX v3"})," is a relatively small release. The ",(0,t.jsx)(s.a,{href:"https://mdxjs.com/migrating/v2/",children:"MDX v2 migration guide"})," has a section on how to ",(0,t.jsx)(s.a,{href:"https://mdxjs.com/migrating/v2/#update-mdx-files",children:"update MDX files"})," that will be particularly relevant to us. Also make sure to read the ",(0,t.jsx)(s.a,{href:"https://mdxjs.com/docs/troubleshooting-mdx/",children:"Troubleshooting MDX"})," page that can help you interpret common MDX error messages."]}),(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"Don't be intimidated"}),". Most problems are ",(0,t.jsx)(s.strong,{children:"easy to fix"})," and often related to ",(0,t.jsx)(s.code,{children:"{"})," and ",(0,t.jsx)(s.code,{children:"<"})," characters that you now need to escape. However, depending on the size of your site, you might need to edit many files and feel overwhelmed. For this reason, we provide a command ",(0,t.jsx)(s.a,{href:"https://github.com/slorber/docusaurus-mdx-checker",children:(0,t.jsx)(s.code,{children:"npx docusaurus-mdx-checker"})})," to help you get an estimate of the work to be done, and we recommend to ",(0,t.jsx)(s.a,{href:"/blog/preparing-your-site-for-docusaurus-v3",children:"prepare your site in advance"}),"."]}),(0,t.jsxs)(s.p,{children:["If you created custom ",(0,t.jsx)(s.a,{href:"/docs/markdown-features/plugins",children:"MDX plugins"})," (Remark/Rehype), the AST is slightly different, and you might need to refactor them."]})]}),"\n",(0,t.jsxs)(s.p,{children:["This notably enables us to add a ",(0,t.jsx)(s.a,{href:"/docs/markdown-features#mdx-vs-commonmark",children:"CommonMark mode"})," that should make it easier for existing documentations to adopt Docusaurus. It is currently opt-in and ",(0,t.jsx)(s.strong,{children:"experimental"})," and limited (",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/9092",children:"some Docusaurus features will not work"}),"). In Docusaurus v3, all files are still interpreted as MDX, but we plan to interpret ",(0,t.jsx)(s.code,{children:".md"})," files as CommonMark in an upcoming major version, and recommend to use the ",(0,t.jsx)(s.code,{children:".mdx"})," extension for any file using JSX or ES modules."]}),"\n",(0,t.jsxs)(s.p,{children:["We also introduced a new way to ",(0,t.jsx)(s.a,{href:"/docs/api/docusaurus-config#markdown",children:"configure Markdown globally for your site"}),", and plan to add more flexible options later."]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n markdown: {\n format: 'mdx',\n mermaid: true,\n preprocessor: ({filePath, fileContent}) => {\n return fileContent.replaceAll('{{MY_VAR}}', 'MY_VALUE');\n },\n mdx1Compat: {\n comments: true,\n admonitions: true,\n headingIds: true,\n },\n },\n};\n"})}),"\n",(0,t.jsxs)(s.p,{children:["Docusaurus now uses the ",(0,t.jsx)(s.a,{href:"https://github.com/remarkjs/remark-directive",children:"remark-directive"})," plugin to support admonitions. This also offers you the ability to create your own Remark plugins to extend Markdown with your own ",(0,t.jsx)(s.a,{href:"https://talk.commonmark.org/t/generic-directives-plugins-syntax/444",children:"custom directives"})," such as ",(0,t.jsx)(s.code,{children:":textDirective"}),", ",(0,t.jsx)(s.code,{children:"::leafDirective"})," or ",(0,t.jsx)(s.code,{children:":::containerDirective"}),"."]}),"\n",(0,t.jsx)(s.h3,{id:"esm-ts-configs",children:"ESM and TypeScript configs"}),"\n",(0,t.jsxs)(s.p,{children:["In ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9317",children:"#9317"}),", we added support for ES Modules and TypeScript config files, including site config, docs sidebars, plugins and presets."]}),"\n",(0,t.jsx)(s.p,{children:"Here are 2 TypeScript examples, giving you a modern experience with IDE autocompletion:"}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-ts",metastring:'title="docusaurus.config.ts"',children:"import type {Config} from '@docusaurus/types';\nimport type * as Preset from '@docusaurus/preset-classic';\n\nconst config: Config = {\n title: 'My Site',\n favicon: 'img/favicon.ico',\n // your site config ...\n presets: [\n [\n 'classic',\n {\n // your preset config ...\n } satisfies Preset.Options,\n ],\n ],\n themeConfig: {\n // your theme config ...\n } satisfies Preset.ThemeConfig,\n};\n\nexport default config;\n"})}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-ts",metastring:'title="sidebars.ts"',children:"import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';\n\nconst sidebars: SidebarsConfig = {\n docs: ['introduction'],\n};\n\nexport default sidebars;\n"})}),"\n",(0,t.jsx)(s.h3,{id:"unlisted-content",children:"Unlisted content"}),"\n",(0,t.jsxs)(s.p,{children:["Docusaurus already supported a ",(0,t.jsx)(s.code,{children:"draft: true"})," front matter option in our 3 content plugins (docs, blog, pages), which allows you to remove some pages from your production builds."]}),"\n",(0,t.jsxs)(s.p,{children:["In ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8004",children:"#8004"}),", we introduced a new ",(0,t.jsx)(s.code,{children:"unlisted: true"}),' front matter option, which will keep your pages available in production builds, while "hiding" them and making them impossible to discover unless you have the url. This enables convenient workflows where you can easily ask for feedback on a piece of content before the final publication.']}),"\n",(0,t.jsx)(s.p,{children:"Unlisted content will:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["be excluded from ",(0,t.jsx)(s.code,{children:"sitemap.xml"})]}),"\n",(0,t.jsxs)(s.li,{children:["be excluded from SEO results thanks to ",(0,t.jsx)(s.code,{children:'<meta name="robots" content="noindex, nofollow" />'})]}),"\n",(0,t.jsx)(s.li,{children:"be excluded from blog RSS feeds"}),"\n",(0,t.jsx)(s.li,{children:"be excluded from Algolia DocSearch results"}),"\n",(0,t.jsx)(s.li,{children:"be filtered from site navbar items, docs sidebars, blog sidebar, blog archives, tags pages..."}),"\n"]}),"\n",(0,t.jsxs)(s.p,{children:["Unlisted content will also display a banner so that you don't forget to turn it off once your content is ready for prime time. Here's an example of an ",(0,t.jsx)(s.a,{href:"/tests/blog/unlisted-post",children:"unlisted blog post"}),":"]}),"\n",(0,t.jsx)(o.A,{url:"/tests/blog/unlisted-post"}),"\n",(0,t.jsx)(s.h3,{id:"react-18",children:"React 18"}),"\n",(0,t.jsxs)(s.p,{children:["In ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8961",children:"#8961"}),", we upgraded to React 18. This is important, notably for the ",(0,t.jsx)(s.a,{href:"https://react.dev/blog/2022/03/29/react-v18#gradually-adopting-concurrent-features",children:"gradual adoption of Concurrent React features"}),", as well as upcoming exciting features such as ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/9089",children:"build-time React Server Components"}),"."]}),"\n",(0,t.jsxs)(s.p,{children:["This new version of React should be a drop-in replacement for most Docusaurus sites. It comes with breaking changes that we handled internally in the Docusaurus codebase. If your site is using a lot of custom React code, we recommend you to take a look at the official article on ",(0,t.jsx)(s.a,{href:"https://react.dev/blog/2022/03/08/react-18-upgrade-guide",children:"How to Upgrade to React 18"}),", notably the new ",(0,t.jsx)(s.a,{href:"https://react.dev/blog/2022/03/08/react-18-upgrade-guide#automatic-batching",children:"automatic batching"})," behavior."]}),"\n",(0,t.jsxs)(s.admonition,{title:"Experimental support for React 18 features",type:"danger",children:[(0,t.jsx)(s.p,{children:"React 18 comes with new features:"}),(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.code,{children:"<Suspense>"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.code,{children:"React.lazy()"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.code,{children:"startTransition()"})}),"\n"]}),(0,t.jsxs)(s.p,{children:["Their Docusaurus support is considered as ",(0,t.jsx)(s.strong,{children:"experimental"}),". We might have to adjust the integration in the future, leading to a different runtime behavior."]})]}),"\n",(0,t.jsx)(s.h3,{id:"automatic-jsx-runtime",children:"Automatic JSX runtime"}),"\n",(0,t.jsxs)(s.p,{children:["Docusaurus now uses the ",(0,t.jsx)(s.a,{href:"https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html",children:'"automatic" JSX runtime'}),"."]}),"\n",(0,t.jsx)(s.p,{children:"It is not needed anymore to import React in JSX files that do not use any React API."}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-diff",metastring:'title="src/components/MyComponent.js"',children:"- import React from 'react';\n\n export default function MyComponent() {\n return <div>Hello</div>;\n }\n"})}),"\n",(0,t.jsx)(s.h3,{id:"debug-builds",children:"Debug builds"}),"\n",(0,t.jsx)(s.p,{children:"It is now possible to build your static site in dev mode."}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"docusaurus build --dev\n"})}),"\n",(0,t.jsxs)(s.admonition,{title:"Debug React-related problems",type:"tip",children:[(0,t.jsxs)(s.p,{children:["Docusaurus will log more errors to the console, notably React 18 hydration errors through the new ",(0,t.jsxs)(s.a,{href:"https://react.dev/reference/react-dom/client/hydrateRoot#parameters",children:[(0,t.jsx)(s.code,{children:"onRecoverableError"})," callback"]}),"."]}),(0,t.jsxs)(s.p,{children:["This new build mode is particularly helpful for ",(0,t.jsx)(s.strong,{children:"troubleshooting React problems"}),". Docusaurus will use the development build of React, thus producing detailed and readable error messages instead of minified ones linking to the ",(0,t.jsx)(s.a,{href:"https://reactjs.org/docs/error-decoder.html/",children:"React Error Decoder page"}),"."]})]}),"\n",(0,t.jsx)(s.h3,{id:"typescript",children:"TypeScript"}),"\n",(0,t.jsx)(s.p,{children:"Docusaurus v3 now requires a minimum version of TypeScript 5.0."}),"\n",(0,t.jsx)(s.p,{children:"We re-internalized the base recommended TypeScript config to a new official package:"}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-diff",metastring:'title="tsconfig.json"',children:' {\n- "extends": "@tsconfig/docusaurus/tsconfig.json",\n+ "extends": "@docusaurus/tsconfig",\n "compilerOptions": {\n "baseUrl": "."\n }\n }\n'})}),"\n",(0,t.jsxs)(s.p,{children:["We also have cleaner, normalized exports for Docusaurus core type, plugin, and preset options, which you can use within the brand-new ",(0,t.jsx)(s.a,{href:"#esm-ts-configs",children:"TypeScript config files"}),":"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-ts",metastring:'title="docusaurus.config.ts"',children:"import type {Config} from '@docusaurus/types';\nimport type {Options, ThemeConfig} from '@docusaurus/preset-classic';\nimport type {SidebarsConfig} from '@docusaurus/plugin-content-docs';\n"})}),"\n",(0,t.jsx)(s.h3,{id:"code-blocks",children:"Code blocks"}),"\n",(0,t.jsxs)(s.p,{children:["In ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9316",children:"#9316"}),", we improved on syntax highlighting thanks to the ",(0,t.jsx)(s.a,{href:"https://github.com/FormidableLabs/prism-react-renderer",children:"prism-react-renderer"})," v2 upgrade. For example, a bash param ",(0,t.jsx)(s.code,{children:"--save"})," is now colored:"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"npm install --save some-package\n"})}),"\n",(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.a,{href:"/docs/markdown-features/code-blocks#interactive-code-editor",children:"interactive code editor"})," also upgrades to ",(0,t.jsx)(s.a,{href:"https://github.com/FormidableLabs/react-live",children:"react-live"})," v4, coming with a new ",(0,t.jsx)(s.a,{href:"https://github.com/alangpierce/sucrase",children:"sucrase"})," compiler. It is faster, lighter, and supports modern features, notably TypeScript type annotations."]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-js",metastring:"live",live:!0,children:"function Hello() {\n const name: string = 'World';\n return <div>Hello {name}</div>;\n}\n"})}),"\n",(0,t.jsxs)(s.p,{children:["In ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8982",children:"#8982"})," and ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8870",children:"#8870"}),", we also added ",(0,t.jsx)(s.a,{href:"/docs/markdown-features/code-blocks#custom-magic-comments",children:"magic comments"})," support for TeX-like, Haskell-like, and WebAssembly comment syntax."]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-haskell",metastring:'title="haskell.hs"',children:"stringLength :: String -> Int\n-- highlight-next-line\nstringLength [] = 0\nstringLength (x:xs) = 1 + stringLength xs\n"})}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-matlab",metastring:'title="matlab.m"',children:"% highlight-start\nfunction result = times2(n)\n result = n * 2;\nend\n% highlight-end\nx = 10;\n% highlight-next-line\ny = times2(x);\n"})}),"\n",(0,t.jsx)(s.h3,{id:"mermaid-diagrams",children:"Mermaid diagrams"}),"\n",(0,t.jsxs)(s.p,{children:["In ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9305",children:"#9305"}),", we upgraded to Mermaid v10.4 and added support for async diagram rendering. Docusaurus is now able to render new types of diagrams."]}),"\n",(0,t.jsxs)(r,{children:[(0,t.jsx)("summary",{children:"Mindmap"}),(0,t.jsx)(s.mermaid,{value:"mindmap\n root((mindmap))\n Research\n Creative techniques\n Strategic planning\n Argument mapping\n Tools\n Pen and paper\n Mermaid"})]}),"\n",(0,t.jsxs)(r,{children:[(0,t.jsx)("summary",{children:"Quadrant chart"}),(0,t.jsx)(s.mermaid,{value:"quadrantChart\n title Reach and engagement of campaigns\n x-axis Low Reach --> High Reach\n y-axis Low Engagement --> High Engagement\n quadrant-1 We should expand\n quadrant-2 Need to promote\n quadrant-3 Re-evaluate\n quadrant-4 May be improved\n Campaign A: [0.3, 0.6]\n Campaign B: [0.45, 0.23]\n Campaign C: [0.57, 0.69]\n Campaign D: [0.78, 0.34]\n Campaign E: [0.40, 0.34]\n Campaign F: [0.35, 0.78]"})]}),"\n",(0,t.jsx)(s.h3,{id:"query-string-data-attributes",children:"Query-string data attributes"}),"\n",(0,t.jsxs)(s.p,{children:["In ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9028",children:"#9028"}),", we made it possible to set custom HTML ",(0,t.jsx)(s.a,{href:"https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/data-*",children:"data attributes"})," though ",(0,t.jsx)(s.code,{children:"docusaurus-data-x"})," query-string parameters. This makes it easier to embed a Docusaurus iframe on another site, and lets you customize the appearance of the embedded version with CSS."]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-css",metastring:'title="/src/css/custom.css"',children:"html[data-navbar='false'] .navbar {\n display: none;\n}\n\nhtml[data-red-border] div#__docusaurus {\n border: red solid thick;\n}\n"})}),"\n",(0,t.jsx)(o.A,{url:"/docs/?docusaurus-data-navbar=false&docusaurus-data-red-border"}),"\n",(0,t.jsx)(s.h3,{id:"other-features",children:"Other features"}),"\n",(0,t.jsx)(s.p,{children:"Other new features worth mentioning:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9189",children:"#9189"}),": new blog ",(0,t.jsx)(s.code,{children:"feedOptions.limit"})," option"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9071",children:"#9071"}),": add normalized SEO front matter support for the pages plugin"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9028",children:"#9171"}),": the client-redirects plugin now supports fully qualified urls and query-string/hash in destination url"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9171",children:"#9171"}),": new ESLint rule ",(0,t.jsx)(s.a,{href:"/docs/api/misc/@docusaurus/eslint-plugin/no-html-links",children:(0,t.jsx)(s.code,{children:"no-html-links"})})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8384",children:"#8384"}),": new ESLint rule ",(0,t.jsx)(s.a,{href:"/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading",children:(0,t.jsx)(s.code,{children:"prefer-docusaurus-heading"})})]}),"\n"]}),"\n",(0,t.jsxs)(s.p,{children:["Read ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/releases/tag/v3.0.0",children:(0,t.jsx)(s.strong,{children:"Docusaurus v3.0.0 release notes"})})," for an exhaustive list of changes."]}),"\n",(0,t.jsx)(s.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,t.jsxs)(s.p,{children:["This release comes with a few features, but more importantly ",(0,t.jsx)(s.strong,{children:"upgrades many pieces of the Docusaurus infrastructure"}),"."]}),"\n",(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.strong,{children:"MDX upgrade"})," consumed a lot of our time this year, and we worked hard to make this important upgrade less difficult for all of you."]}),"\n",(0,t.jsxs)(s.p,{children:["Now that we've caught up with our infrastructure, we'll be back ",(0,t.jsx)(s.strong,{children:"delivering useful documentation features"})," very soon, in upcoming minor versions."]}),"\n",(0,t.jsxs)(s.p,{children:["We would like to thank you for using Docusaurus over the years. The documentation framework space is becoming more competitive lately, and we will do our best to ensure that Docusaurus remains a ",(0,t.jsx)(s.strong,{children:"competitive solution"})," that stands out for its great ",(0,t.jsx)(s.strong,{children:"flexibility"}),"."]})]})}function h(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(u,{...e})}):u(e)}},43023:(e,s,n)=>{n.d(s,{R:()=>o,x:()=>a});var r=n(63696);let t={},i=r.createContext(t);function o(e){let s=r.useContext(i);return r.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(t):e.components||t:o(e.components),r.createElement(i.Provider,{value:s},e.children)}},61470:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/3.0","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.0/index.mdx","source":"@site/blog/releases/3.0/index.mdx","title":"Announcing Docusaurus 3.0","description":"Today, we are happy to announce Docusaurus 3.0! \u{1F973}","date":"2023-10-31T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":10.515,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Announcing Docusaurus 3.0","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2023-10-31T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 3.1","permalink":"/blog/releases/3.1"},"nextItem":{"title":"Preparing your site for Docusaurus v3","permalink":"/blog/preparing-your-site-for-docusaurus-v3"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[49857],{19143:(e,s,n)=>{n.d(s,{A:()=>r});let r=n.p+"assets/images/social-card-75819f68ecbb579fe176843bb2e3df82.png"},18764:(e,s,n)=>{n.d(s,{A:()=>i});var r=n(62540);n(63696);var t=n(70361);function i({url:e}){return(0,r.jsx)("div",{style:{padding:10},children:(0,r.jsx)(t.A,{url:e,style:{minWidth:"min(100%,45vw)",width:800,maxWidth:"100%",overflow:"hidden"},bodyStyle:{padding:0},children:(0,r.jsx)("iframe",{src:e,title:e,style:{display:"block",width:"100%",height:300}})})})}},70361:(e,s,n)=>{n.d(s,{A:()=>a});var r=n(62540);n(63696);var t=n(11750);let i="dot_giz1",o="bar_rrRL";function a({children:e,minHeight:s,url:n="http://localhost:3000",style:a,bodyStyle:c}){var l,d;return(0,r.jsxs)("div",{className:"browserWindow_my1Q",style:(l=function(e){for(var s=1;s<arguments.length;s++){var n=null!=arguments[s]?arguments[s]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(s){var r;r=n[s],s in e?Object.defineProperty(e,s,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[s]=r})}return e}({},a),d=d={minHeight:s},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(d)):(function(e,s){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(d)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(d,e))}),l),children:[(0,r.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,r.jsxs)("div",{className:"buttons_uHc7",children:[(0,r.jsx)("span",{className:i,style:{background:"#f25f58"}}),(0,r.jsx)("span",{className:i,style:{background:"#fbbe3c"}}),(0,r.jsx)("span",{className:i,style:{background:"#58cb42"}})]}),(0,r.jsx)("div",{className:(0,t.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:n}),(0,r.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:o}),(0,r.jsx)("span",{className:o}),(0,r.jsx)("span",{className:o})]})})]}),(0,r.jsx)("div",{className:"browserWindowBody_Idgs",style:c,children:e})]})}},39402:(e,s,n)=>{n.d(s,{A:()=>r});let r=n.p+"assets/images/social-card-75819f68ecbb579fe176843bb2e3df82.png"},15431:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>d});var r=n(61470),t=n(62540),i=n(43023),o=n(18764);let a={title:"Announcing Docusaurus 3.0",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2023-10-31T00:00:00.000Z")},c=void 0,l={image:n(19143).A,authorsImageUrls:[void 0]},d=[{value:"Breaking changes",id:"breaking-changes",level:2},{value:"Highlights",id:"highlights",level:2},{value:"Markdown",id:"markdown",level:3},{value:"ESM and TypeScript configs",id:"esm-ts-configs",level:3},{value:"Unlisted content",id:"unlisted-content",level:3},{value:"React 18",id:"react-18",level:3},{value:"Automatic JSX runtime",id:"automatic-jsx-runtime",level:3},{value:"Debug builds",id:"debug-builds",level:3},{value:"TypeScript",id:"typescript",level:3},{value:"Code blocks",id:"code-blocks",level:3},{value:"Mermaid diagrams",id:"mermaid-diagrams",level:3},{value:"Query-string data attributes",id:"query-string-data-attributes",level:3},{value:"Other features",id:"other-features",level:3},{value:"Conclusion",id:"conclusion",level:2}];function u(e){let s={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components},{Details:r}=s;return r||function(e,s){throw Error("Expected "+(s?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.p,{children:["Today, we are happy to ",(0,t.jsx)(s.strong,{children:"announce Docusaurus 3.0"}),"! \u{1F973}"]}),"\n",(0,t.jsxs)(s.p,{children:["At ",(0,t.jsx)(s.a,{href:"https://opensource.fb.com/",children:(0,t.jsx)(s.strong,{children:"Meta Open Source"})}),", we believe Docusaurus will help you build the ",(0,t.jsx)(s.strong,{children:"best documentation websites"})," with ",(0,t.jsx)(s.strong,{children:"minimal effort"}),", letting you ",(0,t.jsx)(s.strong,{children:"focus on what really matters"}),": writing the content."]}),"\n",(0,t.jsxs)(s.p,{children:["This is a new ",(0,t.jsx)(s.strong,{children:"major version"})," of Docusaurus, coming with ",(0,t.jsx)(s.strong,{children:"new exciting features"})," and upgraded dependencies."]}),"\n",(0,t.jsxs)(s.p,{children:["In line with the ",(0,t.jsx)(s.a,{href:"https://semver.org/",children:(0,t.jsx)(s.strong,{children:"Semantic Versioning"})})," principles, this release includes ",(0,t.jsx)(s.strong,{children:"breaking changes"})," we documented thoroughly in the ",(0,t.jsx)(s.a,{href:"/docs/migration/v3/",children:(0,t.jsx)(s.strong,{children:"v3 upgrade guide"})}),". Breaking changes can be bothersome, but they are necessary to set the ground for a ",(0,t.jsx)(s.strong,{children:"new wave of Docusaurus features"})," we plan to implement."]}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"v3.0 social-card image",src:n(39402).A+"",width:"1200",height:"600"})}),"\n","\n",(0,t.jsxs)(s.p,{children:["We initially planned to release more frequent major versions, but Docusaurus v3 has taken longer than expected. Among the breaking changes that we accrued, ",(0,t.jsx)(s.strong,{children:"upgrading to MDX v3"})," is probably the main challenge to the adoption of this new version. We went the extra mile to make this upgrade as easy as possible, notably by adding ",(0,t.jsx)(s.a,{href:"/docs/api/docusaurus-config#markdown",children:"compatibility options for MDX v1"}),"."]}),"\n",(0,t.jsx)(s.p,{children:"The simplest sites will only need to upgrade a few npm dependencies. For more complex sites, we came up with a few strategies that can help you upgrade more confidently:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"/blog/preparing-your-site-for-docusaurus-v3",children:"Prepare your site"})," ahead of time, incrementally, while staying on Docusaurus v2"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing",children:"Set up visual regression tests"})," to catch unexpected visual changes happening during the upgrade"]}),"\n"]}),"\n",(0,t.jsx)(s.admonition,{title:"About Docusaurus v2",type:"info",children:(0,t.jsxs)(s.p,{children:["According to our ",(0,t.jsx)(s.a,{href:"/community/release-process#stable-version",children:"release process"}),", Docusaurus v2 has now entered ",(0,t.jsx)(s.strong,{children:"maintenance mode"}),". It will only receive support for major security issues for 3 months, until 31 January 2024. It is recommended to upgrade within that time frame to v3."]})}),"\n","\n",(0,t.jsx)(s.h2,{id:"breaking-changes",children:"Breaking changes"}),"\n",(0,t.jsxs)(s.p,{children:["This section only gives you a quick glance. All the breaking changes are thoroughly documented in the ",(0,t.jsx)(s.a,{href:"/docs/migration/v3",children:(0,t.jsx)(s.strong,{children:"v3 upgrade guide"})}),"."]}),"\n",(0,t.jsx)(s.p,{children:"Docusaurus v3 upgraded a few dependencies to new major versions, each coming with its own breaking changes:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Node.js v16 \u27A1\uFE0F v18"}),"\n",(0,t.jsx)(s.li,{children:"React v17 \u27A1\uFE0F v18"}),"\n",(0,t.jsx)(s.li,{children:"MDX v1 \u27A1\uFE0F v3"}),"\n",(0,t.jsx)(s.li,{children:"TypeScript v4 \u27A1\uFE0F v5"}),"\n",(0,t.jsx)(s.li,{children:"prism-react-renderer v1 \u27A1\uFE0F v2"}),"\n",(0,t.jsx)(s.li,{children:"react-live v2 \u27A1\uFE0F v4"}),"\n",(0,t.jsx)(s.li,{children:"Mermaid v9 \u27A1\uFE0F v10"}),"\n",(0,t.jsx)(s.li,{children:"import-fresh v3 \u27A1\uFE0F jiti v1"}),"\n",(0,t.jsx)(s.li,{children:"remark-emoji v2 \u27A1\uFE0F v4"}),"\n"]}),"\n",(0,t.jsxs)(s.p,{children:["A typical ",(0,t.jsx)(s.code,{children:"package.json"})," dependency upgrade looks like:"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-diff",metastring:'title="package.json"',children:' {\n "dependencies": {\n // upgrade to Docusaurus v3\n- "@docusaurus/core": "2.4.3",\n- "@docusaurus/preset-classic": "2.4.3",\n+ "@docusaurus/core": "3.0.0",\n+ "@docusaurus/preset-classic": "3.0.0",\n // upgrade to MDX v3\n- "@mdx-js/react": "^1.6.22",\n+ "@mdx-js/react": "^3.0.0",\n // upgrade to prism-react-renderer v2.0+\n- "prism-react-renderer": "^1.3.5",\n+ "prism-react-renderer": "^2.1.0",\n // upgrade to React v18.0+\n- "react": "^17.0.2",\n- "react-dom": "^17.0.2"\n+ "react": "^18.2.0",\n+ "react-dom": "^18.2.0"\n },\n "devDependencies": {\n // upgrade Docusaurus dev dependencies to v3\n- "@docusaurus/module-type-aliases": "2.4.3",\n- "@docusaurus/types": "2.4.3"\n+ "@docusaurus/module-type-aliases": "3.0.0",\n+ "@docusaurus/types": "3.0.0"\n }\n "engines": {\n // require Node.js 18.0+\n- "node": ">=16.14"\n+ "node": ">=18.0"\n }\n }\n'})}),"\n",(0,t.jsx)(s.p,{children:"Apart from MDX v3, most breaking changes coming with those upgraded dependencies have been handled internally for you: most of the time, you shouldn't have to do anything. Outside of dependencies, the only functional breaking changes coming explicitly from the Docusaurus codebase are:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9189",children:"#9189"}),": new default blog RSS feed limit of 20 entries"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9308",children:"#9308"}),": fix and re-introduce the ",(0,t.jsx)(s.code,{children:":::warning"})," admonition, deprecate ",(0,t.jsx)(s.code,{children:":::caution"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9310",children:"#9310"}),": remove the legacy versioned sidebar id prefix, used for sites versioned before ",(0,t.jsx)(s.code,{children:"v2.0.0-beta.10"})," (December 2021)"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/7966",children:"#7966"}),": refactor docs theme components, eventually requiring to you re-swizzle them"]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"highlights",children:"Highlights"}),"\n",(0,t.jsxs)(s.p,{children:["Below is a non-exhaustive list of new useful features coming with this new version. All the features are listed in the ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/releases/tag/v3.0.0",children:(0,t.jsx)(s.strong,{children:"Docusaurus v3.0.0 release notes"})}),"."]}),"\n",(0,t.jsx)(s.h3,{id:"markdown",children:"Markdown"}),"\n",(0,t.jsx)(s.p,{children:"Docusaurus v3 upgraded from MDX v1 to MDX v3:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["in ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8288",children:"#8288"}),", we upgraded to ",(0,t.jsx)(s.a,{href:"https://mdxjs.com/blog/v2/",children:(0,t.jsx)(s.strong,{children:"MDX v2"})})," (",(0,t.jsx)(s.a,{href:"https://mdxjs.com/migrating/v2/",children:"migration guide"}),")"]}),"\n",(0,t.jsxs)(s.li,{children:["in ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9451",children:"#9451"}),", we upgraded to ",(0,t.jsx)(s.a,{href:"https://mdxjs.com/blog/v3/",children:(0,t.jsx)(s.strong,{children:"MDX v3"})})," (",(0,t.jsx)(s.a,{href:"https://mdxjs.com/migrating/v3/",children:"migration guide"}),")"]}),"\n"]}),"\n",(0,t.jsxs)(s.p,{children:["This new MDX version is ",(0,t.jsx)(s.strong,{children:"much better for content writers and plugin authors"}),", and lays the ground for implementing new exciting Markdown features."]}),"\n",(0,t.jsxs)(s.admonition,{title:"MDX v3 - the main challenge",type:"warning",children:[(0,t.jsxs)(s.p,{children:["The transition from MDX v1 to MDX v3 is the ",(0,t.jsx)(s.strong,{children:"main challenge"})," to the adoption of Docusaurus v3."]}),(0,t.jsxs)(s.p,{children:["Some documents that compiled successfully under Docusaurus v2 might now ",(0,t.jsx)(s.strong,{children:"fail to compile"})," under Docusaurus v3, while others might ",(0,t.jsx)(s.strong,{children:"render differently"}),"."]}),(0,t.jsxs)(s.p,{children:["Most breaking changes come from ",(0,t.jsx)(s.a,{href:"https://mdxjs.com/blog/v2/",children:"MDX v2"}),", and ",(0,t.jsx)(s.a,{href:"https://mdxjs.com/blog/v3/",children:"MDX v3"})," is a relatively small release. The ",(0,t.jsx)(s.a,{href:"https://mdxjs.com/migrating/v2/",children:"MDX v2 migration guide"})," has a section on how to ",(0,t.jsx)(s.a,{href:"https://mdxjs.com/migrating/v2/#update-mdx-files",children:"update MDX files"})," that will be particularly relevant to us. Also make sure to read the ",(0,t.jsx)(s.a,{href:"https://mdxjs.com/docs/troubleshooting-mdx/",children:"Troubleshooting MDX"})," page that can help you interpret common MDX error messages."]}),(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"Don't be intimidated"}),". Most problems are ",(0,t.jsx)(s.strong,{children:"easy to fix"})," and often related to ",(0,t.jsx)(s.code,{children:"{"})," and ",(0,t.jsx)(s.code,{children:"<"})," characters that you now need to escape. However, depending on the size of your site, you might need to edit many files and feel overwhelmed. For this reason, we provide a command ",(0,t.jsx)(s.a,{href:"https://github.com/slorber/docusaurus-mdx-checker",children:(0,t.jsx)(s.code,{children:"npx docusaurus-mdx-checker"})})," to help you get an estimate of the work to be done, and we recommend to ",(0,t.jsx)(s.a,{href:"/blog/preparing-your-site-for-docusaurus-v3",children:"prepare your site in advance"}),"."]}),(0,t.jsxs)(s.p,{children:["If you created custom ",(0,t.jsx)(s.a,{href:"/docs/markdown-features/plugins",children:"MDX plugins"})," (Remark/Rehype), the AST is slightly different, and you might need to refactor them."]})]}),"\n",(0,t.jsxs)(s.p,{children:["This notably enables us to add a ",(0,t.jsx)(s.a,{href:"/docs/markdown-features#mdx-vs-commonmark",children:"CommonMark mode"})," that should make it easier for existing documentations to adopt Docusaurus. It is currently opt-in and ",(0,t.jsx)(s.strong,{children:"experimental"})," and limited (",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/9092",children:"some Docusaurus features will not work"}),"). In Docusaurus v3, all files are still interpreted as MDX, but we plan to interpret ",(0,t.jsx)(s.code,{children:".md"})," files as CommonMark in an upcoming major version, and recommend to use the ",(0,t.jsx)(s.code,{children:".mdx"})," extension for any file using JSX or ES modules."]}),"\n",(0,t.jsxs)(s.p,{children:["We also introduced a new way to ",(0,t.jsx)(s.a,{href:"/docs/api/docusaurus-config#markdown",children:"configure Markdown globally for your site"}),", and plan to add more flexible options later."]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n markdown: {\n format: 'mdx',\n mermaid: true,\n preprocessor: ({filePath, fileContent}) => {\n return fileContent.replaceAll('{{MY_VAR}}', 'MY_VALUE');\n },\n mdx1Compat: {\n comments: true,\n admonitions: true,\n headingIds: true,\n },\n },\n};\n"})}),"\n",(0,t.jsxs)(s.p,{children:["Docusaurus now uses the ",(0,t.jsx)(s.a,{href:"https://github.com/remarkjs/remark-directive",children:"remark-directive"})," plugin to support admonitions. This also offers you the ability to create your own Remark plugins to extend Markdown with your own ",(0,t.jsx)(s.a,{href:"https://talk.commonmark.org/t/generic-directives-plugins-syntax/444",children:"custom directives"})," such as ",(0,t.jsx)(s.code,{children:":textDirective"}),", ",(0,t.jsx)(s.code,{children:"::leafDirective"})," or ",(0,t.jsx)(s.code,{children:":::containerDirective"}),"."]}),"\n",(0,t.jsx)(s.h3,{id:"esm-ts-configs",children:"ESM and TypeScript configs"}),"\n",(0,t.jsxs)(s.p,{children:["In ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9317",children:"#9317"}),", we added support for ES Modules and TypeScript config files, including site config, docs sidebars, plugins and presets."]}),"\n",(0,t.jsx)(s.p,{children:"Here are 2 TypeScript examples, giving you a modern experience with IDE autocompletion:"}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-ts",metastring:'title="docusaurus.config.ts"',children:"import type {Config} from '@docusaurus/types';\nimport type * as Preset from '@docusaurus/preset-classic';\n\nconst config: Config = {\n title: 'My Site',\n favicon: 'img/favicon.ico',\n // your site config ...\n presets: [\n [\n 'classic',\n {\n // your preset config ...\n } satisfies Preset.Options,\n ],\n ],\n themeConfig: {\n // your theme config ...\n } satisfies Preset.ThemeConfig,\n};\n\nexport default config;\n"})}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-ts",metastring:'title="sidebars.ts"',children:"import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';\n\nconst sidebars: SidebarsConfig = {\n docs: ['introduction'],\n};\n\nexport default sidebars;\n"})}),"\n",(0,t.jsx)(s.h3,{id:"unlisted-content",children:"Unlisted content"}),"\n",(0,t.jsxs)(s.p,{children:["Docusaurus already supported a ",(0,t.jsx)(s.code,{children:"draft: true"})," front matter option in our 3 content plugins (docs, blog, pages), which allows you to remove some pages from your production builds."]}),"\n",(0,t.jsxs)(s.p,{children:["In ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8004",children:"#8004"}),", we introduced a new ",(0,t.jsx)(s.code,{children:"unlisted: true"}),' front matter option, which will keep your pages available in production builds, while "hiding" them and making them impossible to discover unless you have the url. This enables convenient workflows where you can easily ask for feedback on a piece of content before the final publication.']}),"\n",(0,t.jsx)(s.p,{children:"Unlisted content will:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["be excluded from ",(0,t.jsx)(s.code,{children:"sitemap.xml"})]}),"\n",(0,t.jsxs)(s.li,{children:["be excluded from SEO results thanks to ",(0,t.jsx)(s.code,{children:'<meta name="robots" content="noindex, nofollow" />'})]}),"\n",(0,t.jsx)(s.li,{children:"be excluded from blog RSS feeds"}),"\n",(0,t.jsx)(s.li,{children:"be excluded from Algolia DocSearch results"}),"\n",(0,t.jsx)(s.li,{children:"be filtered from site navbar items, docs sidebars, blog sidebar, blog archives, tags pages..."}),"\n"]}),"\n",(0,t.jsxs)(s.p,{children:["Unlisted content will also display a banner so that you don't forget to turn it off once your content is ready for prime time. Here's an example of an ",(0,t.jsx)(s.a,{href:"/tests/blog/unlisted-post",children:"unlisted blog post"}),":"]}),"\n",(0,t.jsx)(o.A,{url:"/tests/blog/unlisted-post"}),"\n",(0,t.jsx)(s.h3,{id:"react-18",children:"React 18"}),"\n",(0,t.jsxs)(s.p,{children:["In ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8961",children:"#8961"}),", we upgraded to React 18. This is important, notably for the ",(0,t.jsx)(s.a,{href:"https://react.dev/blog/2022/03/29/react-v18#gradually-adopting-concurrent-features",children:"gradual adoption of Concurrent React features"}),", as well as upcoming exciting features such as ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/9089",children:"build-time React Server Components"}),"."]}),"\n",(0,t.jsxs)(s.p,{children:["This new version of React should be a drop-in replacement for most Docusaurus sites. It comes with breaking changes that we handled internally in the Docusaurus codebase. If your site is using a lot of custom React code, we recommend you to take a look at the official article on ",(0,t.jsx)(s.a,{href:"https://react.dev/blog/2022/03/08/react-18-upgrade-guide",children:"How to Upgrade to React 18"}),", notably the new ",(0,t.jsx)(s.a,{href:"https://react.dev/blog/2022/03/08/react-18-upgrade-guide#automatic-batching",children:"automatic batching"})," behavior."]}),"\n",(0,t.jsxs)(s.admonition,{title:"Experimental support for React 18 features",type:"danger",children:[(0,t.jsx)(s.p,{children:"React 18 comes with new features:"}),(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.code,{children:"<Suspense>"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.code,{children:"React.lazy()"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.code,{children:"startTransition()"})}),"\n"]}),(0,t.jsxs)(s.p,{children:["Their Docusaurus support is considered as ",(0,t.jsx)(s.strong,{children:"experimental"}),". We might have to adjust the integration in the future, leading to a different runtime behavior."]})]}),"\n",(0,t.jsx)(s.h3,{id:"automatic-jsx-runtime",children:"Automatic JSX runtime"}),"\n",(0,t.jsxs)(s.p,{children:["Docusaurus now uses the ",(0,t.jsx)(s.a,{href:"https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html",children:'"automatic" JSX runtime'}),"."]}),"\n",(0,t.jsx)(s.p,{children:"It is not needed anymore to import React in JSX files that do not use any React API."}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-diff",metastring:'title="src/components/MyComponent.js"',children:"- import React from 'react';\n\n export default function MyComponent() {\n return <div>Hello</div>;\n }\n"})}),"\n",(0,t.jsx)(s.h3,{id:"debug-builds",children:"Debug builds"}),"\n",(0,t.jsx)(s.p,{children:"It is now possible to build your static site in dev mode."}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"docusaurus build --dev\n"})}),"\n",(0,t.jsxs)(s.admonition,{title:"Debug React-related problems",type:"tip",children:[(0,t.jsxs)(s.p,{children:["Docusaurus will log more errors to the console, notably React 18 hydration errors through the new ",(0,t.jsxs)(s.a,{href:"https://react.dev/reference/react-dom/client/hydrateRoot#parameters",children:[(0,t.jsx)(s.code,{children:"onRecoverableError"})," callback"]}),"."]}),(0,t.jsxs)(s.p,{children:["This new build mode is particularly helpful for ",(0,t.jsx)(s.strong,{children:"troubleshooting React problems"}),". Docusaurus will use the development build of React, thus producing detailed and readable error messages instead of minified ones linking to the ",(0,t.jsx)(s.a,{href:"https://reactjs.org/docs/error-decoder.html/",children:"React Error Decoder page"}),"."]})]}),"\n",(0,t.jsx)(s.h3,{id:"typescript",children:"TypeScript"}),"\n",(0,t.jsx)(s.p,{children:"Docusaurus v3 now requires a minimum version of TypeScript 5.0."}),"\n",(0,t.jsx)(s.p,{children:"We re-internalized the base recommended TypeScript config to a new official package:"}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-diff",metastring:'title="tsconfig.json"',children:' {\n- "extends": "@tsconfig/docusaurus/tsconfig.json",\n+ "extends": "@docusaurus/tsconfig",\n "compilerOptions": {\n "baseUrl": "."\n }\n }\n'})}),"\n",(0,t.jsxs)(s.p,{children:["We also have cleaner, normalized exports for Docusaurus core type, plugin, and preset options, which you can use within the brand-new ",(0,t.jsx)(s.a,{href:"#esm-ts-configs",children:"TypeScript config files"}),":"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-ts",metastring:'title="docusaurus.config.ts"',children:"import type {Config} from '@docusaurus/types';\nimport type {Options, ThemeConfig} from '@docusaurus/preset-classic';\nimport type {SidebarsConfig} from '@docusaurus/plugin-content-docs';\n"})}),"\n",(0,t.jsx)(s.h3,{id:"code-blocks",children:"Code blocks"}),"\n",(0,t.jsxs)(s.p,{children:["In ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9316",children:"#9316"}),", we improved on syntax highlighting thanks to the ",(0,t.jsx)(s.a,{href:"https://github.com/FormidableLabs/prism-react-renderer",children:"prism-react-renderer"})," v2 upgrade. For example, a bash param ",(0,t.jsx)(s.code,{children:"--save"})," is now colored:"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"npm install --save some-package\n"})}),"\n",(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.a,{href:"/docs/markdown-features/code-blocks#interactive-code-editor",children:"interactive code editor"})," also upgrades to ",(0,t.jsx)(s.a,{href:"https://github.com/FormidableLabs/react-live",children:"react-live"})," v4, coming with a new ",(0,t.jsx)(s.a,{href:"https://github.com/alangpierce/sucrase",children:"sucrase"})," compiler. It is faster, lighter, and supports modern features, notably TypeScript type annotations."]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-js",metastring:"live",live:!0,children:"function Hello() {\n const name: string = 'World';\n return <div>Hello {name}</div>;\n}\n"})}),"\n",(0,t.jsxs)(s.p,{children:["In ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8982",children:"#8982"})," and ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8870",children:"#8870"}),", we also added ",(0,t.jsx)(s.a,{href:"/docs/markdown-features/code-blocks#custom-magic-comments",children:"magic comments"})," support for TeX-like, Haskell-like, and WebAssembly comment syntax."]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-haskell",metastring:'title="haskell.hs"',children:"stringLength :: String -> Int\n-- highlight-next-line\nstringLength [] = 0\nstringLength (x:xs) = 1 + stringLength xs\n"})}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-matlab",metastring:'title="matlab.m"',children:"% highlight-start\nfunction result = times2(n)\n result = n * 2;\nend\n% highlight-end\nx = 10;\n% highlight-next-line\ny = times2(x);\n"})}),"\n",(0,t.jsx)(s.h3,{id:"mermaid-diagrams",children:"Mermaid diagrams"}),"\n",(0,t.jsxs)(s.p,{children:["In ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9305",children:"#9305"}),", we upgraded to Mermaid v10.4 and added support for async diagram rendering. Docusaurus is now able to render new types of diagrams."]}),"\n",(0,t.jsxs)(r,{children:[(0,t.jsx)("summary",{children:"Mindmap"}),(0,t.jsx)(s.mermaid,{value:"mindmap\n root((mindmap))\n Research\n Creative techniques\n Strategic planning\n Argument mapping\n Tools\n Pen and paper\n Mermaid"})]}),"\n",(0,t.jsxs)(r,{children:[(0,t.jsx)("summary",{children:"Quadrant chart"}),(0,t.jsx)(s.mermaid,{value:"quadrantChart\n title Reach and engagement of campaigns\n x-axis Low Reach --> High Reach\n y-axis Low Engagement --> High Engagement\n quadrant-1 We should expand\n quadrant-2 Need to promote\n quadrant-3 Re-evaluate\n quadrant-4 May be improved\n Campaign A: [0.3, 0.6]\n Campaign B: [0.45, 0.23]\n Campaign C: [0.57, 0.69]\n Campaign D: [0.78, 0.34]\n Campaign E: [0.40, 0.34]\n Campaign F: [0.35, 0.78]"})]}),"\n",(0,t.jsx)(s.h3,{id:"query-string-data-attributes",children:"Query-string data attributes"}),"\n",(0,t.jsxs)(s.p,{children:["In ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9028",children:"#9028"}),", we made it possible to set custom HTML ",(0,t.jsx)(s.a,{href:"https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/data-*",children:"data attributes"})," though ",(0,t.jsx)(s.code,{children:"docusaurus-data-x"})," query-string parameters. This makes it easier to embed a Docusaurus iframe on another site, and lets you customize the appearance of the embedded version with CSS."]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-css",metastring:'title="/src/css/custom.css"',children:"html[data-navbar='false'] .navbar {\n display: none;\n}\n\nhtml[data-red-border] div#__docusaurus {\n border: red solid thick;\n}\n"})}),"\n",(0,t.jsx)(o.A,{url:"/docs/?docusaurus-data-navbar=false&docusaurus-data-red-border"}),"\n",(0,t.jsx)(s.h3,{id:"other-features",children:"Other features"}),"\n",(0,t.jsx)(s.p,{children:"Other new features worth mentioning:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9189",children:"#9189"}),": new blog ",(0,t.jsx)(s.code,{children:"feedOptions.limit"})," option"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9071",children:"#9071"}),": add normalized SEO front matter support for the pages plugin"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9028",children:"#9171"}),": the client-redirects plugin now supports fully qualified urls and query-string/hash in destination url"]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9171",children:"#9171"}),": new ESLint rule ",(0,t.jsx)(s.a,{href:"/docs/api/misc/@docusaurus/eslint-plugin/no-html-links",children:(0,t.jsx)(s.code,{children:"no-html-links"})})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/8384",children:"#8384"}),": new ESLint rule ",(0,t.jsx)(s.a,{href:"/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading",children:(0,t.jsx)(s.code,{children:"prefer-docusaurus-heading"})})]}),"\n"]}),"\n",(0,t.jsxs)(s.p,{children:["Read ",(0,t.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/releases/tag/v3.0.0",children:(0,t.jsx)(s.strong,{children:"Docusaurus v3.0.0 release notes"})})," for an exhaustive list of changes."]}),"\n",(0,t.jsx)(s.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,t.jsxs)(s.p,{children:["This release comes with a few features, but more importantly ",(0,t.jsx)(s.strong,{children:"upgrades many pieces of the Docusaurus infrastructure"}),"."]}),"\n",(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.strong,{children:"MDX upgrade"})," consumed a lot of our time this year, and we worked hard to make this important upgrade less difficult for all of you."]}),"\n",(0,t.jsxs)(s.p,{children:["Now that we've caught up with our infrastructure, we'll be back ",(0,t.jsx)(s.strong,{children:"delivering useful documentation features"})," very soon, in upcoming minor versions."]}),"\n",(0,t.jsxs)(s.p,{children:["We would like to thank you for using Docusaurus over the years. The documentation framework space is becoming more competitive lately, and we will do our best to ensure that Docusaurus remains a ",(0,t.jsx)(s.strong,{children:"competitive solution"})," that stands out for its great ",(0,t.jsx)(s.strong,{children:"flexibility"}),"."]})]})}function h(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(u,{...e})}):u(e)}},43023:(e,s,n)=>{n.d(s,{R:()=>o,x:()=>a});var r=n(63696);let t={},i=r.createContext(t);function o(e){let s=r.useContext(i);return r.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(t):e.components||t:o(e.components),r.createElement(i.Provider,{value:s},e.children)}},61470:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/3.0","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.0/index.mdx","source":"@site/blog/releases/3.0/index.mdx","title":"Announcing Docusaurus 3.0","description":"Today, we are happy to announce Docusaurus 3.0! \u{1F973}","date":"2023-10-31T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":10.515,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Announcing Docusaurus 3.0","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2023-10-31T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 3.1","permalink":"/blog/releases/3.1"},"nextItem":{"title":"Preparing your site for Docusaurus v3","permalink":"/blog/preparing-your-site-for-docusaurus-v3"}}')}}]); \ No newline at end of file diff --git a/assets/js/5781.25da6810.js b/assets/js/5781.25da6810.js new file mode 100644 index 0000000000..0823979e49 --- /dev/null +++ b/assets/js/5781.25da6810.js @@ -0,0 +1,56 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5781],{5781:(t,e,i)=>{i.d(e,{diagram:()=>M});var n=i(72912),s=i(89601),r=i(71725),a=i(68459),o=i(57721),l=function(){var t=(0,n.K2)(function(t,e,i,n){for(i=i||{},n=t.length;n--;i[t[n]]=e);return i},"o"),e=[6,8,10,11,12,14,16,17,20,21],i=[1,9],s=[1,10],r=[1,11],a=[1,12],o=[1,13],l=[1,16],c=[1,17],h={trace:(0,n.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:(0,n.K2)(function(t,e,i,n,s,r,a){var o=r.length-1;switch(s){case 1:return r[o-1];case 2:case 6:case 7:this.$=[];break;case 3:r[o-1].push(r[o]),this.$=r[o-1];break;case 4:case 5:this.$=r[o];break;case 8:n.getCommonDb().setDiagramTitle(r[o].substr(6)),this.$=r[o].substr(6);break;case 9:this.$=r[o].trim(),n.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=r[o].trim(),n.getCommonDb().setAccDescription(this.$);break;case 12:n.addSection(r[o].substr(8)),this.$=r[o].substr(8);break;case 15:n.addTask(r[o],0,""),this.$=r[o];break;case 16:n.addEvent(r[o].substr(2)),this.$=r[o]}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:i,12:s,14:r,16:a,17:o,18:14,19:15,20:l,21:c},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:18,11:i,12:s,14:r,16:a,17:o,18:14,19:15,20:l,21:c},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,19]},{15:[1,20]},t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),t(e,[2,4]),t(e,[2,9]),t(e,[2,10])],defaultActions:{},parseError:(0,n.K2)(function(t,e){if(e.recoverable)this.trace(t);else{var i=Error(t);throw i.hash=e,i}},"parseError"),parse:(0,n.K2)(function(t){var e=this,i=[0],s=[],r=[null],a=[],o=this.table,l="",c=0,h=0,d=0,u=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var f=p.options&&p.options.ranges;function _(){var t;return"number"!=typeof(t=s.pop()||p.lex()||1)&&(t instanceof Array&&(t=(s=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,n.K2)(function(t){i.length=i.length-2*t,r.length=r.length-t,a.length=a.length-t},"popStack"),(0,n.K2)(_,"lex");for(var b,k,x,v,w,S,K,$,E,I={};;){if(x=i[i.length-1],this.defaultActions[x]?v=this.defaultActions[x]:(null==b&&(b=_()),v=o[x]&&o[x][b]),void 0===v||!v.length||!v[0]){var T="";for(S in E=[],o[x])this.terminals_[S]&&S>2&&E.push("'"+this.terminals_[S]+"'");T=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+E.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==b?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(T,{text:p.match,token:this.terminals_[b]||b,line:p.yylineno,loc:m,expected:E})}if(v[0]instanceof Array&&v.length>1)throw Error("Parse Error: multiple actions possible at state: "+x+", token: "+b);switch(v[0]){case 1:i.push(b),r.push(p.yytext),a.push(p.yylloc),i.push(v[1]),b=null,k?(b=k,k=null):(h=p.yyleng,l=p.yytext,c=p.yylineno,m=p.yylloc,d>0&&d--);break;case 2:if(K=this.productions_[v[1]][1],I.$=r[r.length-K],I._$={first_line:a[a.length-(K||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(K||1)].first_column,last_column:a[a.length-1].last_column},f&&(I._$.range=[a[a.length-(K||1)].range[0],a[a.length-1].range[1]]),void 0!==(w=this.performAction.apply(I,[l,h,c,g.yy,v[1],r,a].concat(u))))return w;K&&(i=i.slice(0,-1*K*2),r=r.slice(0,-1*K),a=a.slice(0,-1*K)),i.push(this.productions_[v[1]][0]),r.push(I.$),a.push(I._$),$=o[i[i.length-2]][i[i.length-1]],i.push($);break;case 3:return!0}}return!0},"parse")},d={EOF:1,parseError:(0,n.K2)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,n.K2)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,n.K2)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,n.K2)(function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var s=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===n.length?this.yylloc.first_column:0)+n[n.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[s[0],s[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,n.K2)(function(){return this._more=!0,this},"more"),reject:(0,n.K2)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,n.K2)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,n.K2)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,n.K2)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,n.K2)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,n.K2)(function(t,e){var i,n,s;if(this.options.backtrack_lexer&&(s={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(s.yylloc.range=this.yylloc.range.slice(0))),(n=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var r in s)this[r]=s[r];return!1},"test_match"),next:(0,n.K2)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,i,n,s=this._currentRules(),r=0;r<s.length;r++)if((i=this._input.match(this.rules[s[r]]))&&(!e||i[0].length>e[0].length)){if(e=i,n=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,s[r])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,s[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,n.K2)(function(){return this.next()||this.lex()},"lex"),begin:(0,n.K2)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,n.K2)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,n.K2)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,n.K2)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,n.K2)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,n.K2)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,n.K2)(function(t,e,i,n){switch(i){case 0:case 1:case 3:case 4:break;case 2:return 10;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s[^:\n]+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};function u(){this.yy={}}return h.lexer=d,(0,n.K2)(u,"Parser"),u.prototype=h,h.Parser=u,new u}();l.parser=l;var c={};(0,n.VA)(c,{addEvent:()=>x,addSection:()=>f,addTask:()=>k,addTaskOrg:()=>v,clear:()=>m,default:()=>S,getCommonDb:()=>y,getSections:()=>_,getTasks:()=>b});var h="",d=0,u=[],p=[],g=[],y=(0,n.K2)(()=>n.Wt,"getCommonDb"),m=(0,n.K2)(function(){u.length=0,p.length=0,h="",g.length=0,(0,n.IU)()},"clear"),f=(0,n.K2)(function(t){h=t,u.push(t)},"addSection"),_=(0,n.K2)(function(){return u},"getSections"),b=(0,n.K2)(function(){let t=w(),e=0;for(;!t&&e<100;)t=w(),e++;return p.push(...g),p},"getTasks"),k=(0,n.K2)(function(t,e,i){let n={id:d++,section:h,type:h,task:t,score:e||0,events:i?[i]:[]};g.push(n)},"addTask"),x=(0,n.K2)(function(t){g.find(t=>t.id===d-1).events.push(t)},"addEvent"),v=(0,n.K2)(function(t){let e={section:h,type:h,description:t,task:t,classes:[]};p.push(e)},"addTaskOrg"),w=(0,n.K2)(function(){let t=(0,n.K2)(function(t){return g[t].processed},"compileTask"),e=!0;for(let[i,n]of g.entries())t(i),e=e&&n.processed;return e},"compileTasks"),S={clear:m,getCommonDb:y,addSection:f,getSections:_,getTasks:b,addTask:k,addTaskOrg:v,addEvent:x},K=(0,n.K2)(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},"initGraphics");function $(t,e){t.each(function(){var t,i=(0,s.Ltv)(this),n=i.text().split(/(\s+|<br>)/).reverse(),r=[],a=i.attr("y"),o=parseFloat(i.attr("dy")),l=i.text(null).append("tspan").attr("x",0).attr("y",a).attr("dy",o+"em");for(let s=0;s<n.length;s++)t=n[n.length-1-s],r.push(t),l.text(r.join(" ").trim()),(l.node().getComputedTextLength()>e||"<br>"===t)&&(r.pop(),l.text(r.join(" ").trim()),r="<br>"===t?[""]:[t],l=i.append("tspan").attr("x",0).attr("y",a).attr("dy","1.1em").text(t))})}(0,n.K2)($,"wrap");var E=(0,n.K2)(function(t,e,i,n){let s=i%12-1,r=t.append("g");e.section=s,r.attr("class",(e.class?e.class+" ":"")+"timeline-node section-"+s);let a=r.append("g"),o=r.append("g"),l=o.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call($,e.width).node().getBBox(),c=n.fontSize?.replace?n.fontSize.replace("px",""):n.fontSize;return e.height=l.height+.55*c+e.padding,e.height=Math.max(e.height,e.maxHeight),e.width=e.width+2*e.padding,o.attr("transform","translate("+e.width/2+", "+e.padding/2+")"),T(a,e,s,n),e},"drawNode"),I=(0,n.K2)(function(t,e,i){let n=t.append("g"),s=n.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call($,e.width).node().getBBox(),r=i.fontSize?.replace?i.fontSize.replace("px",""):i.fontSize;return n.remove(),s.height+.55*r+e.padding},"getVirtualNodeHeight"),T=(0,n.K2)(function(t,e,i){t.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+e.type).attr("d",`M0 ${e.height-5} v${-e.height+10} q0,-5 5,-5 h${e.width-10} q5,0 5,5 v${e.height-5} H0 Z`),t.append("line").attr("class","node-line-"+i).attr("x1",0).attr("y1",e.height).attr("x2",e.width).attr("y2",e.height)},"defaultBkg"),L={initGraphics:K,drawNode:E,getVirtualNodeHeight:I},A=(0,n.K2)(function(t,e,i,r){let a;let o=(0,n.D7)(),l=o.leftMargin??50;n.Rm.debug("timeline",r.db);let c=o.securityLevel;"sandbox"===c&&(a=(0,s.Ltv)("#i"+e));let h=("sandbox"===c?(0,s.Ltv)(a.nodes()[0].contentDocument.body):(0,s.Ltv)("body")).select("#"+e);h.append("g");let d=r.db.getTasks(),u=r.db.getCommonDb().getDiagramTitle();n.Rm.debug("task",d),L.initGraphics(h);let p=r.db.getSections();n.Rm.debug("sections",p);let g=0,y=0,m=0,f=0,_=50+l,b=50;f=50;let k=0,x=!0;p.forEach(function(t){let e={number:k,descr:t,section:k,width:150,padding:20,maxHeight:g},i=L.getVirtualNodeHeight(h,e,o);n.Rm.debug("sectionHeight before draw",i),g=Math.max(g,i+20)});let v=0,w=0;for(let[t,e]of(n.Rm.debug("tasks.length",d.length),d.entries())){let i={number:t,descr:e,section:e.section,width:150,padding:20,maxHeight:y},s=L.getVirtualNodeHeight(h,i,o);n.Rm.debug("taskHeight before draw",s),y=Math.max(y,s+20),v=Math.max(v,e.events.length);let r=0;for(let t of e.events){let i={descr:t,section:e.section,number:e.section,width:150,padding:20,maxHeight:50};r+=L.getVirtualNodeHeight(h,i,o)}w=Math.max(w,r)}n.Rm.debug("maxSectionHeight before draw",g),n.Rm.debug("maxTaskHeight before draw",y),p&&p.length>0?p.forEach(t=>{let e=d.filter(e=>e.section===t),i={number:k,descr:t,section:k,width:200*Math.max(e.length,1)-50,padding:20,maxHeight:g};n.Rm.debug("sectionNode",i);let s=h.append("g"),r=L.drawNode(s,i,k,o);n.Rm.debug("sectionNode output",r),s.attr("transform",`translate(${_}, ${f})`),b+=g+50,e.length>0&&C(h,e,k,_,b,y,o,v,w,g,!1),_+=200*Math.max(e.length,1),b=f,k++}):(x=!1,C(h,d,k,_,b,y,o,v,w,g,!0));let S=h.node().getBBox();n.Rm.debug("bounds",S),u&&h.append("text").text(u).attr("x",S.width/2-l).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),m=x?g+y+150:y+100,h.append("g").attr("class","lineWrapper").append("line").attr("x1",l).attr("y1",m).attr("x2",S.width+3*l).attr("y2",m).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),(0,n.ot)(void 0,h,o.timeline?.padding??50,o.timeline?.useMaxWidth??!1)},"draw"),C=(0,n.K2)(function(t,e,i,s,r,a,o,l,c,h,d){for(let l of e){let e={descr:l.task,section:i,number:i,width:150,padding:20,maxHeight:a};n.Rm.debug("taskNode",e);let u=t.append("g").attr("class","taskWrapper"),p=L.drawNode(u,e,i,o).height;if(n.Rm.debug("taskHeight after draw",p),u.attr("transform",`translate(${s}, ${r})`),a=Math.max(a,p),l.events){let e=t.append("g").attr("class","lineWrapper");r+=100,N(t,l.events,i,s,r,o),r-=100,e.append("line").attr("x1",s+95).attr("y1",r+a).attr("x2",s+95).attr("y2",r+a+(d?a:h)+c+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}s+=200,d&&!o.timeline?.disableMulticolor&&i++}},"drawTasks"),N=(0,n.K2)(function(t,e,i,s,r,a){let o=0,l=r;for(let l of(r+=100,e)){let e={descr:l,section:i,number:i,width:150,padding:20,maxHeight:50};n.Rm.debug("eventNode",e);let c=t.append("g").attr("class","eventWrapper"),h=L.drawNode(c,e,i,a).height;o+=h,c.attr("transform",`translate(${s}, ${r})`),r=r+10+h}return r=l,o},"drawEvents"),H={setConf:(0,n.K2)(()=>{},"setConf"),draw:A},R=(0,n.K2)(t=>{let e="";for(let e=0;e<t.THEME_COLOR_LIMIT;e++)t["lineColor"+e]=t["lineColor"+e]||t["cScaleInv"+e],(0,r.A)(t["lineColor"+e])?t["lineColor"+e]=(0,a.A)(t["lineColor"+e],20):t["lineColor"+e]=(0,o.A)(t["lineColor"+e],20);for(let i=0;i<t.THEME_COLOR_LIMIT;i++){let n=""+(17-3*i);e+=` + .section-${i-1} rect, .section-${i-1} path, .section-${i-1} circle, .section-${i-1} path { + fill: ${t["cScale"+i]}; + } + .section-${i-1} text { + fill: ${t["cScaleLabel"+i]}; + } + .node-icon-${i-1} { + font-size: 40px; + color: ${t["cScaleLabel"+i]}; + } + .section-edge-${i-1}{ + stroke: ${t["cScale"+i]}; + } + .edge-depth-${i-1}{ + stroke-width: ${n}; + } + .section-${i-1} line { + stroke: ${t["cScaleInv"+i]} ; + stroke-width: 3; + } + + .lineWrapper line{ + stroke: ${t["cScaleLabel"+i]} ; + } + + .disabled, .disabled circle, .disabled text { + fill: lightgray; + } + .disabled text { + fill: #efefef; + } + `}return e},"genSections"),M={db:c,renderer:H,parser:l,styles:(0,n.K2)(t=>` + .edge { + stroke-width: 3; + } + ${R(t)} + .section-root rect, .section-root path, .section-root circle { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`,"getStyles")}}}]); \ No newline at end of file diff --git a/assets/js/5785f4e1.47590867.js b/assets/js/5785f4e1.47590867.js new file mode 100644 index 0000000000..344ede5c45 --- /dev/null +++ b/assets/js/5785f4e1.47590867.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[11386],{15995:(e,s,a)=>{a.d(s,{A:()=>r});var n=a(62540);a(63696);var t=a(11750);function r({children:e,hidden:s,className:a}){return(0,n.jsx)("div",{role:"tabpanel",className:(0,t.A)("tabItem_pnkT",a),hidden:s,children:e})}},27446:(e,s,a)=>{a.d(s,{A:()=>N});var n=a(62540),t=a(63696),r=a(11750),l=a(7846),i=a(49519),c=a(96439),m=a(19739),h=a(66904),o=a(79244);function d(e){var s,a;return null!==(a=null===(s=t.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,t.isValidElement)(e)&&function(e){let{props:s}=e;return!!s&&"object"==typeof s&&"value"in s}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===s?void 0:s.filter(Boolean))&&void 0!==a?a:[]}function x({value:e,tabValues:s}){return s.some(s=>s.value===e)}var p=a(10709);function j(e){for(var s=1;s<arguments.length;s++){var a=null!=arguments[s]?arguments[s]:{},n=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(a).filter(function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),n.forEach(function(s){var n;n=a[s],s in e?Object.defineProperty(e,s,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[s]=n})}return e}function u(e,s){return s=null!=s?s:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):(function(e,s){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a.push.apply(a,n)}return a})(Object(s)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(s,a))}),e}function g({className:e,block:s,selectedValue:a,selectValue:t,tabValues:i}){let c=[],{blockElementScrollPositionUntilNextRender:m}=(0,l.a_)(),h=e=>{let s=e.currentTarget,n=i[c.indexOf(s)].value;n!==a&&(m(s),t(n))},o=e=>{var s,a;let n=null;switch(e.key){case"Enter":h(e);break;case"ArrowRight":{let a=c.indexOf(e.currentTarget)+1;n=null!==(s=c[a])&&void 0!==s?s:c[0];break}case"ArrowLeft":{let s=c.indexOf(e.currentTarget)-1;n=null!==(a=c[s])&&void 0!==a?a:c[c.length-1]}}null==n||n.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":s},e),children:i.map(({value:e,label:s,attributes:t})=>(0,n.jsx)("li",u(j({role:"tab",tabIndex:a===e?0:-1,"aria-selected":a===e,ref:e=>c.push(e),onKeyDown:o,onClick:h},t),{className:(0,r.A)("tabs__item","tabItem_AQgk",null==t?void 0:t.className,{"tabs__item--active":a===e}),children:null!=s?s:e}),e))})}function f({lazy:e,children:s,selectedValue:a}){let l=(Array.isArray(s)?s:[s]).filter(Boolean);if(e){let e=l.find(e=>e.props.value===a);return e?(0,t.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:l.map((e,s)=>(0,t.cloneElement)(e,{key:s,hidden:e.props.value!==a}))})}function y(e){let s=function(e){let{defaultValue:s,queryString:a=!1,groupId:n}=e,r=function(e){let{values:s,children:a}=e;return(0,t.useMemo)(()=>{let e=null!=s?s:d(a).map(({props:{value:e,label:s,attributes:a,default:n}})=>({value:e,label:s,attributes:a,default:n}));return!function(e){let s=(0,h.XI)(e,(e,s)=>e.value===s.value);if(s.length>0)throw Error(`Docusaurus error: Duplicate values "${s.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[s,a])}(e),[l,p]=(0,t.useState)(()=>(function({defaultValue:e,tabValues:s}){var a;if(0===s.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!x({value:e,tabValues:s}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${s.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let n=null!==(a=s.find(e=>e.default))&&void 0!==a?a:s[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:s,tabValues:r})),[j,u]=function({queryString:e=!1,groupId:s}){let a=(0,i.W6)(),n=function({queryString:e=!1,groupId:s}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!s)throw Error('Docusaurus error: The <Tabs> 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 null!=s?s:null}({queryString:e,groupId:s});return[(0,m.aZ)(n),(0,t.useCallback)(e=>{var s,t;if(!n)return;let r=new URLSearchParams(a.location.search);r.set(n,e),a.replace((s=function(e){for(var s=1;s<arguments.length;s++){var a=null!=arguments[s]?arguments[s]:{},n=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(a).filter(function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),n.forEach(function(s){var n;n=a[s],s in e?Object.defineProperty(e,s,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[s]=n})}return e}({},a.location),t=t={search:r.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(t)):(function(e,s){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a.push.apply(a,n)}return a})(Object(t)).forEach(function(e){Object.defineProperty(s,e,Object.getOwnPropertyDescriptor(t,e))}),s))},[n,a])]}({queryString:a,groupId:n}),[g,f]=function({groupId:e}){let s=e?`docusaurus.tab.${e}`:null,[a,n]=(0,o.Dv)(s);return[a,(0,t.useCallback)(e=>{s&&n.set(e)},[s,n])]}({groupId:n}),y=(()=>{let e=null!=j?j:g;return x({value:e,tabValues:r})?e:null})();return(0,c.A)(()=>{y&&p(y)},[y]),{selectedValue:l,selectValue:(0,t.useCallback)(e=>{if(!x({value:e,tabValues:r}))throw Error(`Can't select invalid tab value=${e}`);p(e),u(e),f(e)},[u,f,r]),tabValues:r}}(e);return(0,n.jsxs)("div",{className:(0,r.A)("tabs-container","tabList_Qoir"),children:[(0,n.jsx)(g,j({},s,e)),(0,n.jsx)(f,j({},s,e))]})}function N(e){let s=(0,p.A)();return(0,n.jsx)(y,u(j({},e),{children:d(e.children)}),String(s))}},70361:(e,s,a)=>{a.d(s,{A:()=>i});var n=a(62540);a(63696);var t=a(11750);let r="dot_giz1",l="bar_rrRL";function i({children:e,minHeight:s,url:a="http://localhost:3000",style:i,bodyStyle:c}){var m,h;return(0,n.jsxs)("div",{className:"browserWindow_my1Q",style:(m=function(e){for(var s=1;s<arguments.length;s++){var a=null!=arguments[s]?arguments[s]:{},n=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(a).filter(function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),n.forEach(function(s){var n;n=a[s],s in e?Object.defineProperty(e,s,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[s]=n})}return e}({},i),h=h={minHeight:s},Object.getOwnPropertyDescriptors?Object.defineProperties(m,Object.getOwnPropertyDescriptors(h)):(function(e,s){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a.push.apply(a,n)}return a})(Object(h)).forEach(function(e){Object.defineProperty(m,e,Object.getOwnPropertyDescriptor(h,e))}),m),children:[(0,n.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,n.jsxs)("div",{className:"buttons_uHc7",children:[(0,n.jsx)("span",{className:r,style:{background:"#f25f58"}}),(0,n.jsx)("span",{className:r,style:{background:"#fbbe3c"}}),(0,n.jsx)("span",{className:r,style:{background:"#58cb42"}})]}),(0,n.jsx)("div",{className:(0,t.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:a}),(0,n.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:l}),(0,n.jsx)("span",{className:l}),(0,n.jsx)("span",{className:l})]})})]}),(0,n.jsx)("div",{className:"browserWindowBody_Idgs",style:c,children:e})]})}},73075:(e,s,a)=>{a.r(s),a.d(s,{assets:()=>o,contentTitle:()=>h,default:()=>p,frontMatter:()=>m,metadata:()=>n,toc:()=>d});let n=JSON.parse('{"id":"guides/markdown-features/math-equations","title":"Math Equations","description":"Writing LaTeX Math Equations","source":"@site/docs/guides/markdown-features/markdown-features-math-equations.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/math-equations","permalink":"/docs/markdown-features/math-equations","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-math-equations.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"math-equations","description":"Writing LaTeX Math Equations","slug":"/markdown-features/math-equations"},"sidebar":"docs","previous":{"title":"MDX Plugins","permalink":"/docs/markdown-features/plugins"},"next":{"title":"Diagrams","permalink":"/docs/markdown-features/diagrams"}}');var t=a(62540),r=a(43023),l=a(27446),i=a(15995),c=a(70361);let m={id:"math-equations",description:"Writing LaTeX Math Equations",slug:"/markdown-features/math-equations"},h="Math Equations",o={},d=[{value:"Usage",id:"usage",level:2},{value:"Inline",id:"inline",level:3},{value:"Blocks",id:"blocks",level:3},{value:"Enabling math equations",id:"configuration",level:2},{value:"Self-hosting KaTeX assets",id:"self-hosting-katex-assets",level:2}];function x(e){let s={a:"a",admonition:"admonition",annotation:"annotation",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",math:"math",mi:"mi",mn:"mn",mo:"mo",mrow:"mrow",mspace:"mspace",msubsup:"msubsup",msup:"msup",mtext:"mtext",ol:"ol",p:"p",pre:"pre",semantics:"semantics",span:"span",strong:"strong",...(0,r.R)(),...e.components},{Details:a}=s;return a||function(e,s){throw Error("Expected "+(s?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.header,{children:(0,t.jsx)(s.h1,{id:"math-equations",children:"Math Equations"})}),"\n","\n",(0,t.jsxs)(s.p,{children:["Mathematical equations can be rendered using ",(0,t.jsx)(s.a,{href:"https://katex.org",children:"KaTeX"}),"."]}),"\n",(0,t.jsx)(s.h2,{id:"usage",children:"Usage"}),"\n",(0,t.jsxs)(s.p,{children:["Please read ",(0,t.jsx)(s.a,{href:"https://katex.org",children:"KaTeX"})," documentation for more details."]}),"\n",(0,t.jsx)(s.h3,{id:"inline",children:"Inline"}),"\n",(0,t.jsxs)(s.p,{children:["Write inline math equations by wrapping LaTeX equations between ",(0,t.jsx)(s.code,{children:"$"}),":"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-latex",children:"Let $f\\colon[a,b]\\to\\R$ be Riemann integrable. Let $F\\colon[a,b]\\to\\R$ be\n$F(x)=\\int_{a}^{x} f(t)\\,dt$. Then $F$ is continuous, and at all $x$ such that\n$f$ is continuous at $x$, $F$ is differentiable at $x$ with $F'(x)=f(x)$.\n"})}),"\n",(0,t.jsx)(c.A,{children:(0,t.jsxs)(s.p,{children:["Let ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsxs)(s.mrow,{children:[(0,t.jsx)(s.mi,{children:"f"}),(0,t.jsx)(s.mspace,{}),(0,t.jsx)(s.mspace,{width:"0.1111em"}),(0,t.jsx)(s.mo,{lspace:"0em",rspace:"0.17em"}),(0,t.jsx)(s.mtext,{children:"\u2009\u2063"}),(0,t.jsx)(s.mo,{lspace:"0em",rspace:"0em",children:":"}),(0,t.jsx)(s.mspace,{width:"0.3333em"}),(0,t.jsx)(s.mo,{stretchy:"false",children:"["}),(0,t.jsx)(s.mi,{children:"a"}),(0,t.jsx)(s.mo,{separator:"true",children:","}),(0,t.jsx)(s.mi,{children:"b"}),(0,t.jsx)(s.mo,{stretchy:"false",children:"]"}),(0,t.jsx)(s.mo,{children:"\u2192"}),(0,t.jsx)(s.mi,{mathvariant:"double-struck",children:"R"})]}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"f\\colon[a,b] \\to \\R"})]})})}),(0,t.jsxs)(s.span,{className:"katex-html","aria-hidden":"true",children:[(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.10764em"},children:"f"}),(0,t.jsx)(s.span,{className:"mspace nobreak"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1111em"}}),(0,t.jsx)(s.span,{className:"mpunct"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"-0.1667em"}}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,t.jsx)(s.span,{className:"mord",children:(0,t.jsx)(s.span,{className:"mrel",children:":"})}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.3333em"}}),(0,t.jsx)(s.span,{className:"mopen",children:"["}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"a"}),(0,t.jsx)(s.span,{className:"mpunct",children:","}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"b"}),(0,t.jsx)(s.span,{className:"mclose",children:"]"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,t.jsx)(s.span,{className:"mrel",children:"\u2192"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"0.6889em"}}),(0,t.jsx)(s.span,{className:"mord mathbb",children:"R"})]})]})]})," be Riemann integrable. Let ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsxs)(s.mrow,{children:[(0,t.jsx)(s.mi,{children:"F"}),(0,t.jsx)(s.mspace,{}),(0,t.jsx)(s.mspace,{width:"0.1111em"}),(0,t.jsx)(s.mo,{lspace:"0em",rspace:"0.17em"}),(0,t.jsx)(s.mtext,{children:"\u2009\u2063"}),(0,t.jsx)(s.mo,{lspace:"0em",rspace:"0em",children:":"}),(0,t.jsx)(s.mspace,{width:"0.3333em"}),(0,t.jsx)(s.mo,{stretchy:"false",children:"["}),(0,t.jsx)(s.mi,{children:"a"}),(0,t.jsx)(s.mo,{separator:"true",children:","}),(0,t.jsx)(s.mi,{children:"b"}),(0,t.jsx)(s.mo,{stretchy:"false",children:"]"}),(0,t.jsx)(s.mo,{children:"\u2192"}),(0,t.jsx)(s.mi,{mathvariant:"double-struck",children:"R"})]}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"F\\colon[a,b]\\to\\R"})]})})}),(0,t.jsxs)(s.span,{className:"katex-html","aria-hidden":"true",children:[(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"F"}),(0,t.jsx)(s.span,{className:"mspace nobreak"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1111em"}}),(0,t.jsx)(s.span,{className:"mpunct"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"-0.1667em"}}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,t.jsx)(s.span,{className:"mord",children:(0,t.jsx)(s.span,{className:"mrel",children:":"})}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.3333em"}}),(0,t.jsx)(s.span,{className:"mopen",children:"["}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"a"}),(0,t.jsx)(s.span,{className:"mpunct",children:","}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"b"}),(0,t.jsx)(s.span,{className:"mclose",children:"]"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,t.jsx)(s.span,{className:"mrel",children:"\u2192"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"0.6889em"}}),(0,t.jsx)(s.span,{className:"mord mathbb",children:"R"})]})]})]})," be ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsxs)(s.mrow,{children:[(0,t.jsx)(s.mi,{children:"F"}),(0,t.jsx)(s.mo,{stretchy:"false",children:"("}),(0,t.jsx)(s.mi,{children:"x"}),(0,t.jsx)(s.mo,{stretchy:"false",children:")"}),(0,t.jsx)(s.mo,{children:"="}),(0,t.jsxs)(s.msubsup,{children:[(0,t.jsx)(s.mo,{children:"\u222B"}),(0,t.jsx)(s.mi,{children:"a"}),(0,t.jsx)(s.mi,{children:"x"})]}),(0,t.jsx)(s.mi,{children:"f"}),(0,t.jsx)(s.mo,{stretchy:"false",children:"("}),(0,t.jsx)(s.mi,{children:"t"}),(0,t.jsx)(s.mo,{stretchy:"false",children:")"}),(0,t.jsx)(s.mtext,{children:"\u2009"}),(0,t.jsx)(s.mi,{children:"d"}),(0,t.jsx)(s.mi,{children:"t"})]}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"F(x)=\n\\int_{a}^{x} f(t)\\,dt"})]})})}),(0,t.jsxs)(s.span,{className:"katex-html","aria-hidden":"true",children:[(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"F"}),(0,t.jsx)(s.span,{className:"mopen",children:"("}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"x"}),(0,t.jsx)(s.span,{className:"mclose",children:")"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,t.jsx)(s.span,{className:"mrel",children:"="}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"1.2151em",verticalAlign:"-0.3558em"}}),(0,t.jsxs)(s.span,{className:"mop",children:[(0,t.jsx)(s.span,{className:"mop op-symbol small-op",style:{marginRight:"0.19445em",position:"relative",top:"-0.0006em"},children:"\u222B"}),(0,t.jsx)(s.span,{className:"msupsub",children:(0,t.jsxs)(s.span,{className:"vlist-t vlist-t2",children:[(0,t.jsxs)(s.span,{className:"vlist-r",children:[(0,t.jsxs)(s.span,{className:"vlist",style:{height:"0.8593em"},children:[(0,t.jsxs)(s.span,{style:{top:"-2.3442em",marginLeft:"-0.1945em",marginRight:"0.05em"},children:[(0,t.jsx)(s.span,{className:"pstrut",style:{height:"2.7em"}}),(0,t.jsx)(s.span,{className:"sizing reset-size6 size3 mtight",children:(0,t.jsx)(s.span,{className:"mord mtight",children:(0,t.jsx)(s.span,{className:"mord mathnormal mtight",children:"a"})})})]}),(0,t.jsxs)(s.span,{style:{top:"-3.2579em",marginRight:"0.05em"},children:[(0,t.jsx)(s.span,{className:"pstrut",style:{height:"2.7em"}}),(0,t.jsx)(s.span,{className:"sizing reset-size6 size3 mtight",children:(0,t.jsx)(s.span,{className:"mord mtight",children:(0,t.jsx)(s.span,{className:"mord mathnormal mtight",children:"x"})})})]})]}),(0,t.jsx)(s.span,{className:"vlist-s",children:"\u200B"})]}),(0,t.jsx)(s.span,{className:"vlist-r",children:(0,t.jsx)(s.span,{className:"vlist",style:{height:"0.3558em"},children:(0,t.jsx)(s.span,{})})})]})})]}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.10764em"},children:"f"}),(0,t.jsx)(s.span,{className:"mopen",children:"("}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"t"}),(0,t.jsx)(s.span,{className:"mclose",children:")"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"d"}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"t"})]})]})]}),". Then ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsx)(s.mrow,{children:(0,t.jsx)(s.mi,{children:"F"})}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"F"})]})})}),(0,t.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"0.6833em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"F"})]})})]})," is continuous, and at all ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsx)(s.mrow,{children:(0,t.jsx)(s.mi,{children:"x"})}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"x"})]})})}),(0,t.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"0.4306em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"x"})]})})]})," such that ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsx)(s.mrow,{children:(0,t.jsx)(s.mi,{children:"f"})}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"f"})]})})}),(0,t.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.10764em"},children:"f"})]})})]})," is continuous at ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsx)(s.mrow,{children:(0,t.jsx)(s.mi,{children:"x"})}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"x"})]})})}),(0,t.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"0.4306em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"x"})]})})]}),", ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsx)(s.mrow,{children:(0,t.jsx)(s.mi,{children:"F"})}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"F"})]})})}),(0,t.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"0.6833em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"F"})]})})]})," is differentiable at ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsx)(s.mrow,{children:(0,t.jsx)(s.mi,{children:"x"})}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"x"})]})})}),(0,t.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"0.4306em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"x"})]})})]})," with ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsxs)(s.mrow,{children:[(0,t.jsxs)(s.msup,{children:[(0,t.jsx)(s.mi,{children:"F"}),(0,t.jsx)(s.mo,{mathvariant:"normal",lspace:"0em",rspace:"0em",children:"\u2032"})]}),(0,t.jsx)(s.mo,{stretchy:"false",children:"("}),(0,t.jsx)(s.mi,{children:"x"}),(0,t.jsx)(s.mo,{stretchy:"false",children:")"}),(0,t.jsx)(s.mo,{children:"="}),(0,t.jsx)(s.mi,{children:"f"}),(0,t.jsx)(s.mo,{stretchy:"false",children:"("}),(0,t.jsx)(s.mi,{children:"x"}),(0,t.jsx)(s.mo,{stretchy:"false",children:")"})]}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"F'(x)=f(x)"})]})})}),(0,t.jsxs)(s.span,{className:"katex-html","aria-hidden":"true",children:[(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"1.0019em",verticalAlign:"-0.25em"}}),(0,t.jsxs)(s.span,{className:"mord",children:[(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"F"}),(0,t.jsx)(s.span,{className:"msupsub",children:(0,t.jsx)(s.span,{className:"vlist-t",children:(0,t.jsx)(s.span,{className:"vlist-r",children:(0,t.jsx)(s.span,{className:"vlist",style:{height:"0.7519em"},children:(0,t.jsxs)(s.span,{style:{top:"-3.063em",marginRight:"0.05em"},children:[(0,t.jsx)(s.span,{className:"pstrut",style:{height:"2.7em"}}),(0,t.jsx)(s.span,{className:"sizing reset-size6 size3 mtight",children:(0,t.jsx)(s.span,{className:"mord mtight",children:(0,t.jsx)(s.span,{className:"mord mtight",children:"\u2032"})})})]})})})})})]}),(0,t.jsx)(s.span,{className:"mopen",children:"("}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"x"}),(0,t.jsx)(s.span,{className:"mclose",children:")"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,t.jsx)(s.span,{className:"mrel",children:"="}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.10764em"},children:"f"}),(0,t.jsx)(s.span,{className:"mopen",children:"("}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"x"}),(0,t.jsx)(s.span,{className:"mclose",children:")"})]})]})]}),"."]})}),"\n",(0,t.jsx)(s.h3,{id:"blocks",children:"Blocks"}),"\n",(0,t.jsxs)(s.p,{children:["For equation block or display mode, use line breaks and ",(0,t.jsx)(s.code,{children:"$$"}),":"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-latex",children:"$$\nI = \\int_0^{2\\pi} \\sin(x)\\,dx\n$$\n"})}),"\n",(0,t.jsx)(c.A,{children:(0,t.jsx)(s.span,{className:"katex-display",children:(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsxs)(s.mrow,{children:[(0,t.jsx)(s.mi,{children:"I"}),(0,t.jsx)(s.mo,{children:"="}),(0,t.jsxs)(s.msubsup,{children:[(0,t.jsx)(s.mo,{children:"\u222B"}),(0,t.jsx)(s.mn,{children:"0"}),(0,t.jsxs)(s.mrow,{children:[(0,t.jsx)(s.mn,{children:"2"}),(0,t.jsx)(s.mi,{children:"\u03C0"})]})]}),(0,t.jsx)(s.mi,{children:"sin"}),(0,t.jsx)(s.mo,{children:"\u2061"}),(0,t.jsx)(s.mo,{stretchy:"false",children:"("}),(0,t.jsx)(s.mi,{children:"x"}),(0,t.jsx)(s.mo,{stretchy:"false",children:")"}),(0,t.jsx)(s.mtext,{children:"\u2009"}),(0,t.jsx)(s.mi,{children:"d"}),(0,t.jsx)(s.mi,{children:"x"})]}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"I = \\int_0^{2\\pi} \\sin(x)\\,dx"})]})})}),(0,t.jsxs)(s.span,{className:"katex-html","aria-hidden":"true",children:[(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"0.6833em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.07847em"},children:"I"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,t.jsx)(s.span,{className:"mrel",children:"="}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"2.476em",verticalAlign:"-0.9119em"}}),(0,t.jsxs)(s.span,{className:"mop",children:[(0,t.jsx)(s.span,{className:"mop op-symbol large-op",style:{marginRight:"0.44445em",position:"relative",top:"-0.0011em"},children:"\u222B"}),(0,t.jsx)(s.span,{className:"msupsub",children:(0,t.jsxs)(s.span,{className:"vlist-t vlist-t2",children:[(0,t.jsxs)(s.span,{className:"vlist-r",children:[(0,t.jsxs)(s.span,{className:"vlist",style:{height:"1.564em"},children:[(0,t.jsxs)(s.span,{style:{top:"-1.7881em",marginLeft:"-0.4445em",marginRight:"0.05em"},children:[(0,t.jsx)(s.span,{className:"pstrut",style:{height:"2.7em"}}),(0,t.jsx)(s.span,{className:"sizing reset-size6 size3 mtight",children:(0,t.jsx)(s.span,{className:"mord mtight",children:"0"})})]}),(0,t.jsxs)(s.span,{style:{top:"-3.8129em",marginRight:"0.05em"},children:[(0,t.jsx)(s.span,{className:"pstrut",style:{height:"2.7em"}}),(0,t.jsx)(s.span,{className:"sizing reset-size6 size3 mtight",children:(0,t.jsxs)(s.span,{className:"mord mtight",children:[(0,t.jsx)(s.span,{className:"mord mtight",children:"2"}),(0,t.jsx)(s.span,{className:"mord mathnormal mtight",style:{marginRight:"0.03588em"},children:"\u03C0"})]})})]})]}),(0,t.jsx)(s.span,{className:"vlist-s",children:"\u200B"})]}),(0,t.jsx)(s.span,{className:"vlist-r",children:(0,t.jsx)(s.span,{className:"vlist",style:{height:"0.9119em"},children:(0,t.jsx)(s.span,{})})})]})})]}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,t.jsx)(s.span,{className:"mop",children:"sin"}),(0,t.jsx)(s.span,{className:"mopen",children:"("}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"x"}),(0,t.jsx)(s.span,{className:"mclose",children:")"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"d"}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"x"})]})]})]})})}),"\n",(0,t.jsx)(s.h2,{id:"configuration",children:"Enabling math equations"}),"\n",(0,t.jsx)(s.p,{children:"Enable KaTeX:"}),"\n",(0,t.jsxs)(s.ol,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Install the ",(0,t.jsx)(s.code,{children:"remark-math"})," and ",(0,t.jsx)(s.code,{children:"rehype-katex"})," plugins:"]}),"\n",(0,t.jsxs)(l.A,{groupId:"npm2yarn",children:[(0,t.jsx)(i.A,{value:"npm",children:(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"npm install --save remark-math@6 rehype-katex@7\n"})})}),(0,t.jsx)(i.A,{value:"yarn",label:"Yarn",children:(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"yarn add remark-math@6 rehype-katex@7\n"})})}),(0,t.jsx)(i.A,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"pnpm add remark-math@6 rehype-katex@7\n"})})})]}),"\n",(0,t.jsx)(s.admonition,{type:"warning",children:(0,t.jsxs)(s.p,{children:["Make sure to use ",(0,t.jsx)(s.code,{children:"remark-math 6"})," and ",(0,t.jsx)(s.code,{children:"rehype-katex 7"})," for Docusaurus v3 (using MDX v3). We can't guarantee other versions will work."]})}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["These 2 plugins are ",(0,t.jsx)(s.a,{href:"https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c",children:(0,t.jsx)(s.strong,{children:"only available as ES Modules"})}),". We recommended to use an ",(0,t.jsx)(s.a,{href:"https://flaviocopes.com/es-modules/",children:(0,t.jsx)(s.strong,{children:"ES Modules"})})," config file:"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-js",metastring:'title="ES module docusaurus.config.js"',children:"// highlight-start\nimport remarkMath from 'remark-math';\nimport rehypeKatex from 'rehype-katex';\n// highlight-end\n\n// highlight-start\nexport default {\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n path: 'docs',\n // highlight-start\n remarkPlugins: [remarkMath],\n rehypePlugins: [rehypeKatex],\n // highlight-end\n },\n },\n ],\n ],\n};\n"})}),"\n",(0,t.jsxs)(a,{children:[(0,t.jsx)("summary",{children:(0,t.jsxs)(s.p,{children:["Using a\n",(0,t.jsx)(s.a,{href:"https://nodejs.org/api/modules.html#modules-commonjs-modules",children:(0,t.jsx)(s.strong,{children:"CommonJS"})}),"\nconfig file?"]})}),(0,t.jsx)(s.p,{children:"If you decide to use a CommonJS config file, it is possible to load those ES module plugins thanks to dynamic imports and an async config creator function:"}),(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-js",metastring:'title="CommonJS module docusaurus.config.js"',children:"// highlight-start\nmodule.exports = async function createConfigAsync() {\n // highlight-end\n return {\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n path: 'docs',\n // highlight-start\n remarkPlugins: [(await import('remark-math')).default],\n rehypePlugins: [(await import('rehype-katex')).default],\n // highlight-end\n },\n },\n ],\n ],\n };\n};\n"})})]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Include the KaTeX CSS in your config under ",(0,t.jsx)(s.code,{children:"stylesheets"}),":"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-js",children:"export default {\n //...\n stylesheets: [\n {\n href: 'https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css',\n type: 'text/css',\n integrity:\n 'sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM',\n crossorigin: 'anonymous',\n },\n ],\n};\n"})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(a,{children:[(0,t.jsx)("summary",{children:"See a config file example"}),(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"// highlight-start\nimport remarkMath from 'remark-math';\nimport rehypeKatex from 'rehype-katex';\n// highlight-end\n\nexport default {\n title: 'Docusaurus',\n tagline: 'Build optimized websites quickly, focus on your content',\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n path: 'docs',\n // highlight-start\n remarkPlugins: [remarkMath],\n rehypePlugins: [rehypeKatex],\n // highlight-end\n },\n },\n ],\n ],\n // highlight-start\n stylesheets: [\n {\n href: 'https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css',\n type: 'text/css',\n integrity:\n 'sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM',\n crossorigin: 'anonymous',\n },\n ],\n // highlight-end\n};\n"})})]}),"\n",(0,t.jsx)(s.h2,{id:"self-hosting-katex-assets",children:"Self-hosting KaTeX assets"}),"\n",(0,t.jsxs)(s.p,{children:["Loading stylesheets, fonts, and JavaScript libraries from CDN sources is a good practice for popular libraries and assets, since it reduces the amount of assets you have to host. In case you prefer to self-host the ",(0,t.jsx)(s.code,{children:"katex.min.css"})," (along with required KaTeX fonts), you can download the latest version from ",(0,t.jsx)(s.a,{href:"https://github.com/KaTeX/KaTeX/releases",children:"KaTeX GitHub releases"}),", extract and copy ",(0,t.jsx)(s.code,{children:"katex.min.css"})," and ",(0,t.jsx)(s.code,{children:"fonts"})," directory (only ",(0,t.jsx)(s.code,{children:".woff2"})," font types should be enough) to your site's ",(0,t.jsx)(s.code,{children:"static"})," directory, and in ",(0,t.jsx)(s.code,{children:"docusaurus.config.js"}),", replace the stylesheet's ",(0,t.jsx)(s.code,{children:"href"})," from the CDN URL to your local path (say, ",(0,t.jsx)(s.code,{children:"/katex/katex.min.css"}),")."]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n stylesheets: [\n {\n href: '/katex/katex.min.css',\n type: 'text/css',\n },\n ],\n};\n"})})]})}function p(e={}){let{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(x,{...e})}):x(e)}},43023:(e,s,a)=>{a.d(s,{R:()=>l,x:()=>i});var n=a(63696);let t={},r=n.createContext(t);function l(e){let s=n.useContext(r);return n.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5785f4e1.7a108a22.js b/assets/js/5785f4e1.7a108a22.js deleted file mode 100644 index b10c3677b2..0000000000 --- a/assets/js/5785f4e1.7a108a22.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[11386],{15995:(e,s,a)=>{a.d(s,{A:()=>r});var n=a(62540);a(63696);var t=a(11750);function r({children:e,hidden:s,className:a}){return(0,n.jsx)("div",{role:"tabpanel",className:(0,t.A)("tabItem_pnkT",a),hidden:s,children:e})}},27446:(e,s,a)=>{a.d(s,{A:()=>N});var n=a(62540),t=a(63696),r=a(11750),l=a(7846),i=a(49519),c=a(96439),m=a(19739),h=a(66904),o=a(79244);function d(e){var s,a;return null!==(a=null===(s=t.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,t.isValidElement)(e)&&function(e){let{props:s}=e;return!!s&&"object"==typeof s&&"value"in s}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===s?void 0:s.filter(Boolean))&&void 0!==a?a:[]}function x({value:e,tabValues:s}){return s.some(s=>s.value===e)}var p=a(10709);function j(e){for(var s=1;s<arguments.length;s++){var a=null!=arguments[s]?arguments[s]:{},n=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(a).filter(function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),n.forEach(function(s){var n;n=a[s],s in e?Object.defineProperty(e,s,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[s]=n})}return e}function u(e,s){return s=null!=s?s:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):(function(e,s){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a.push.apply(a,n)}return a})(Object(s)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(s,a))}),e}function g({className:e,block:s,selectedValue:a,selectValue:t,tabValues:i}){let c=[],{blockElementScrollPositionUntilNextRender:m}=(0,l.a_)(),h=e=>{let s=e.currentTarget,n=i[c.indexOf(s)].value;n!==a&&(m(s),t(n))},o=e=>{var s,a;let n=null;switch(e.key){case"Enter":h(e);break;case"ArrowRight":{let a=c.indexOf(e.currentTarget)+1;n=null!==(s=c[a])&&void 0!==s?s:c[0];break}case"ArrowLeft":{let s=c.indexOf(e.currentTarget)-1;n=null!==(a=c[s])&&void 0!==a?a:c[c.length-1]}}null==n||n.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":s},e),children:i.map(({value:e,label:s,attributes:t})=>(0,n.jsx)("li",u(j({role:"tab",tabIndex:a===e?0:-1,"aria-selected":a===e,ref:e=>c.push(e),onKeyDown:o,onClick:h},t),{className:(0,r.A)("tabs__item","tabItem_AQgk",null==t?void 0:t.className,{"tabs__item--active":a===e}),children:null!=s?s:e}),e))})}function f({lazy:e,children:s,selectedValue:a}){let l=(Array.isArray(s)?s:[s]).filter(Boolean);if(e){let e=l.find(e=>e.props.value===a);return e?(0,t.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:l.map((e,s)=>(0,t.cloneElement)(e,{key:s,hidden:e.props.value!==a}))})}function y(e){let s=function(e){let{defaultValue:s,queryString:a=!1,groupId:n}=e,r=function(e){let{values:s,children:a}=e;return(0,t.useMemo)(()=>{let e=null!=s?s:d(a).map(({props:{value:e,label:s,attributes:a,default:n}})=>({value:e,label:s,attributes:a,default:n}));return!function(e){let s=(0,h.XI)(e,(e,s)=>e.value===s.value);if(s.length>0)throw Error(`Docusaurus error: Duplicate values "${s.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[s,a])}(e),[l,p]=(0,t.useState)(()=>(function({defaultValue:e,tabValues:s}){var a;if(0===s.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!x({value:e,tabValues:s}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${s.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let n=null!==(a=s.find(e=>e.default))&&void 0!==a?a:s[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:s,tabValues:r})),[j,u]=function({queryString:e=!1,groupId:s}){let a=(0,i.W6)(),n=function({queryString:e=!1,groupId:s}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!s)throw Error('Docusaurus error: The <Tabs> 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 null!=s?s:null}({queryString:e,groupId:s});return[(0,m.aZ)(n),(0,t.useCallback)(e=>{var s,t;if(!n)return;let r=new URLSearchParams(a.location.search);r.set(n,e),a.replace((s=function(e){for(var s=1;s<arguments.length;s++){var a=null!=arguments[s]?arguments[s]:{},n=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(a).filter(function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),n.forEach(function(s){var n;n=a[s],s in e?Object.defineProperty(e,s,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[s]=n})}return e}({},a.location),t=t={search:r.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(t)):(function(e,s){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a.push.apply(a,n)}return a})(Object(t)).forEach(function(e){Object.defineProperty(s,e,Object.getOwnPropertyDescriptor(t,e))}),s))},[n,a])]}({queryString:a,groupId:n}),[g,f]=function({groupId:e}){let s=e?`docusaurus.tab.${e}`:null,[a,n]=(0,o.Dv)(s);return[a,(0,t.useCallback)(e=>{s&&n.set(e)},[s,n])]}({groupId:n}),y=(()=>{let e=null!=j?j:g;return x({value:e,tabValues:r})?e:null})();return(0,c.A)(()=>{y&&p(y)},[y]),{selectedValue:l,selectValue:(0,t.useCallback)(e=>{if(!x({value:e,tabValues:r}))throw Error(`Can't select invalid tab value=${e}`);p(e),u(e),f(e)},[u,f,r]),tabValues:r}}(e);return(0,n.jsxs)("div",{className:(0,r.A)("tabs-container","tabList_Qoir"),children:[(0,n.jsx)(g,j({},s,e)),(0,n.jsx)(f,j({},s,e))]})}function N(e){let s=(0,p.A)();return(0,n.jsx)(y,u(j({},e),{children:d(e.children)}),String(s))}},70361:(e,s,a)=>{a.d(s,{A:()=>i});var n=a(62540);a(63696);var t=a(11750);let r="dot_giz1",l="bar_rrRL";function i({children:e,minHeight:s,url:a="http://localhost:3000",style:i,bodyStyle:c}){var m,h;return(0,n.jsxs)("div",{className:"browserWindow_my1Q",style:(m=function(e){for(var s=1;s<arguments.length;s++){var a=null!=arguments[s]?arguments[s]:{},n=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(a).filter(function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),n.forEach(function(s){var n;n=a[s],s in e?Object.defineProperty(e,s,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[s]=n})}return e}({},i),h=h={minHeight:s},Object.getOwnPropertyDescriptors?Object.defineProperties(m,Object.getOwnPropertyDescriptors(h)):(function(e,s){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a.push.apply(a,n)}return a})(Object(h)).forEach(function(e){Object.defineProperty(m,e,Object.getOwnPropertyDescriptor(h,e))}),m),children:[(0,n.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,n.jsxs)("div",{className:"buttons_uHc7",children:[(0,n.jsx)("span",{className:r,style:{background:"#f25f58"}}),(0,n.jsx)("span",{className:r,style:{background:"#fbbe3c"}}),(0,n.jsx)("span",{className:r,style:{background:"#58cb42"}})]}),(0,n.jsx)("div",{className:(0,t.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:a}),(0,n.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:l}),(0,n.jsx)("span",{className:l}),(0,n.jsx)("span",{className:l})]})})]}),(0,n.jsx)("div",{className:"browserWindowBody_Idgs",style:c,children:e})]})}},73075:(e,s,a)=>{a.r(s),a.d(s,{assets:()=>o,contentTitle:()=>h,default:()=>p,frontMatter:()=>m,metadata:()=>n,toc:()=>d});let n=JSON.parse('{"id":"guides/markdown-features/math-equations","title":"Math Equations","description":"Writing LaTeX Math Equations","source":"@site/docs/guides/markdown-features/markdown-features-math-equations.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/math-equations","permalink":"/docs/markdown-features/math-equations","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-math-equations.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"math-equations","description":"Writing LaTeX Math Equations","slug":"/markdown-features/math-equations"},"sidebar":"docs","previous":{"title":"MDX Plugins","permalink":"/docs/markdown-features/plugins"},"next":{"title":"Diagrams","permalink":"/docs/markdown-features/diagrams"}}');var t=a(62540),r=a(43023),l=a(27446),i=a(15995),c=a(70361);let m={id:"math-equations",description:"Writing LaTeX Math Equations",slug:"/markdown-features/math-equations"},h="Math Equations",o={},d=[{value:"Usage",id:"usage",level:2},{value:"Inline",id:"inline",level:3},{value:"Blocks",id:"blocks",level:3},{value:"Enabling math equations",id:"configuration",level:2},{value:"Self-hosting KaTeX assets",id:"self-hosting-katex-assets",level:2}];function x(e){let s={a:"a",admonition:"admonition",annotation:"annotation",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",math:"math",mi:"mi",mn:"mn",mo:"mo",mrow:"mrow",mspace:"mspace",msubsup:"msubsup",msup:"msup",mtext:"mtext",ol:"ol",p:"p",pre:"pre",semantics:"semantics",span:"span",strong:"strong",...(0,r.R)(),...e.components},{Details:a}=s;return a||function(e,s){throw Error("Expected "+(s?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.header,{children:(0,t.jsx)(s.h1,{id:"math-equations",children:"Math Equations"})}),"\n","\n",(0,t.jsxs)(s.p,{children:["Mathematical equations can be rendered using ",(0,t.jsx)(s.a,{href:"https://katex.org",children:"KaTeX"}),"."]}),"\n",(0,t.jsx)(s.h2,{id:"usage",children:"Usage"}),"\n",(0,t.jsxs)(s.p,{children:["Please read ",(0,t.jsx)(s.a,{href:"https://katex.org",children:"KaTeX"})," documentation for more details."]}),"\n",(0,t.jsx)(s.h3,{id:"inline",children:"Inline"}),"\n",(0,t.jsxs)(s.p,{children:["Write inline math equations by wrapping LaTeX equations between ",(0,t.jsx)(s.code,{children:"$"}),":"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-latex",children:"Let $f\\colon[a,b]\\to\\R$ be Riemann integrable. Let $F\\colon[a,b]\\to\\R$ be\n$F(x)=\\int_{a}^{x} f(t)\\,dt$. Then $F$ is continuous, and at all $x$ such that\n$f$ is continuous at $x$, $F$ is differentiable at $x$ with $F'(x)=f(x)$.\n"})}),"\n",(0,t.jsx)(c.A,{children:(0,t.jsxs)(s.p,{children:["Let ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsxs)(s.mrow,{children:[(0,t.jsx)(s.mi,{children:"f"}),(0,t.jsx)(s.mspace,{}),(0,t.jsx)(s.mspace,{width:"0.1111em"}),(0,t.jsx)(s.mo,{lspace:"0em",rspace:"0.17em"}),(0,t.jsx)(s.mtext,{children:"\u2009\u2063"}),(0,t.jsx)(s.mo,{lspace:"0em",rspace:"0em",children:":"}),(0,t.jsx)(s.mspace,{width:"0.3333em"}),(0,t.jsx)(s.mo,{stretchy:"false",children:"["}),(0,t.jsx)(s.mi,{children:"a"}),(0,t.jsx)(s.mo,{separator:"true",children:","}),(0,t.jsx)(s.mi,{children:"b"}),(0,t.jsx)(s.mo,{stretchy:"false",children:"]"}),(0,t.jsx)(s.mo,{children:"\u2192"}),(0,t.jsx)(s.mi,{mathvariant:"double-struck",children:"R"})]}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"f\\colon[a,b] \\to \\R"})]})})}),(0,t.jsxs)(s.span,{className:"katex-html","aria-hidden":"true",children:[(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.10764em"},children:"f"}),(0,t.jsx)(s.span,{className:"mspace nobreak"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1111em"}}),(0,t.jsx)(s.span,{className:"mpunct"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"-0.1667em"}}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,t.jsx)(s.span,{className:"mord",children:(0,t.jsx)(s.span,{className:"mrel",children:":"})}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.3333em"}}),(0,t.jsx)(s.span,{className:"mopen",children:"["}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"a"}),(0,t.jsx)(s.span,{className:"mpunct",children:","}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"b"}),(0,t.jsx)(s.span,{className:"mclose",children:"]"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,t.jsx)(s.span,{className:"mrel",children:"\u2192"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"0.6889em"}}),(0,t.jsx)(s.span,{className:"mord mathbb",children:"R"})]})]})]})," be Riemann integrable. Let ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsxs)(s.mrow,{children:[(0,t.jsx)(s.mi,{children:"F"}),(0,t.jsx)(s.mspace,{}),(0,t.jsx)(s.mspace,{width:"0.1111em"}),(0,t.jsx)(s.mo,{lspace:"0em",rspace:"0.17em"}),(0,t.jsx)(s.mtext,{children:"\u2009\u2063"}),(0,t.jsx)(s.mo,{lspace:"0em",rspace:"0em",children:":"}),(0,t.jsx)(s.mspace,{width:"0.3333em"}),(0,t.jsx)(s.mo,{stretchy:"false",children:"["}),(0,t.jsx)(s.mi,{children:"a"}),(0,t.jsx)(s.mo,{separator:"true",children:","}),(0,t.jsx)(s.mi,{children:"b"}),(0,t.jsx)(s.mo,{stretchy:"false",children:"]"}),(0,t.jsx)(s.mo,{children:"\u2192"}),(0,t.jsx)(s.mi,{mathvariant:"double-struck",children:"R"})]}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"F\\colon[a,b]\\to\\R"})]})})}),(0,t.jsxs)(s.span,{className:"katex-html","aria-hidden":"true",children:[(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"F"}),(0,t.jsx)(s.span,{className:"mspace nobreak"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1111em"}}),(0,t.jsx)(s.span,{className:"mpunct"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"-0.1667em"}}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,t.jsx)(s.span,{className:"mord",children:(0,t.jsx)(s.span,{className:"mrel",children:":"})}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.3333em"}}),(0,t.jsx)(s.span,{className:"mopen",children:"["}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"a"}),(0,t.jsx)(s.span,{className:"mpunct",children:","}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"b"}),(0,t.jsx)(s.span,{className:"mclose",children:"]"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,t.jsx)(s.span,{className:"mrel",children:"\u2192"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"0.6889em"}}),(0,t.jsx)(s.span,{className:"mord mathbb",children:"R"})]})]})]})," be ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsxs)(s.mrow,{children:[(0,t.jsx)(s.mi,{children:"F"}),(0,t.jsx)(s.mo,{stretchy:"false",children:"("}),(0,t.jsx)(s.mi,{children:"x"}),(0,t.jsx)(s.mo,{stretchy:"false",children:")"}),(0,t.jsx)(s.mo,{children:"="}),(0,t.jsxs)(s.msubsup,{children:[(0,t.jsx)(s.mo,{children:"\u222B"}),(0,t.jsx)(s.mi,{children:"a"}),(0,t.jsx)(s.mi,{children:"x"})]}),(0,t.jsx)(s.mi,{children:"f"}),(0,t.jsx)(s.mo,{stretchy:"false",children:"("}),(0,t.jsx)(s.mi,{children:"t"}),(0,t.jsx)(s.mo,{stretchy:"false",children:")"}),(0,t.jsx)(s.mtext,{children:"\u2009"}),(0,t.jsx)(s.mi,{children:"d"}),(0,t.jsx)(s.mi,{children:"t"})]}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"F(x)=\n\\int_{a}^{x} f(t)\\,dt"})]})})}),(0,t.jsxs)(s.span,{className:"katex-html","aria-hidden":"true",children:[(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"F"}),(0,t.jsx)(s.span,{className:"mopen",children:"("}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"x"}),(0,t.jsx)(s.span,{className:"mclose",children:")"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,t.jsx)(s.span,{className:"mrel",children:"="}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"1.2151em",verticalAlign:"-0.3558em"}}),(0,t.jsxs)(s.span,{className:"mop",children:[(0,t.jsx)(s.span,{className:"mop op-symbol small-op",style:{marginRight:"0.19445em",position:"relative",top:"-0.0006em"},children:"\u222B"}),(0,t.jsx)(s.span,{className:"msupsub",children:(0,t.jsxs)(s.span,{className:"vlist-t vlist-t2",children:[(0,t.jsxs)(s.span,{className:"vlist-r",children:[(0,t.jsxs)(s.span,{className:"vlist",style:{height:"0.8593em"},children:[(0,t.jsxs)(s.span,{style:{top:"-2.3442em",marginLeft:"-0.1945em",marginRight:"0.05em"},children:[(0,t.jsx)(s.span,{className:"pstrut",style:{height:"2.7em"}}),(0,t.jsx)(s.span,{className:"sizing reset-size6 size3 mtight",children:(0,t.jsx)(s.span,{className:"mord mtight",children:(0,t.jsx)(s.span,{className:"mord mathnormal mtight",children:"a"})})})]}),(0,t.jsxs)(s.span,{style:{top:"-3.2579em",marginRight:"0.05em"},children:[(0,t.jsx)(s.span,{className:"pstrut",style:{height:"2.7em"}}),(0,t.jsx)(s.span,{className:"sizing reset-size6 size3 mtight",children:(0,t.jsx)(s.span,{className:"mord mtight",children:(0,t.jsx)(s.span,{className:"mord mathnormal mtight",children:"x"})})})]})]}),(0,t.jsx)(s.span,{className:"vlist-s",children:"\u200B"})]}),(0,t.jsx)(s.span,{className:"vlist-r",children:(0,t.jsx)(s.span,{className:"vlist",style:{height:"0.3558em"},children:(0,t.jsx)(s.span,{})})})]})})]}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.10764em"},children:"f"}),(0,t.jsx)(s.span,{className:"mopen",children:"("}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"t"}),(0,t.jsx)(s.span,{className:"mclose",children:")"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"d"}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"t"})]})]})]}),". Then ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsx)(s.mrow,{children:(0,t.jsx)(s.mi,{children:"F"})}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"F"})]})})}),(0,t.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"0.6833em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"F"})]})})]})," is continuous, and at all ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsx)(s.mrow,{children:(0,t.jsx)(s.mi,{children:"x"})}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"x"})]})})}),(0,t.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"0.4306em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"x"})]})})]})," such that ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsx)(s.mrow,{children:(0,t.jsx)(s.mi,{children:"f"})}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"f"})]})})}),(0,t.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.10764em"},children:"f"})]})})]})," is continuous at ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsx)(s.mrow,{children:(0,t.jsx)(s.mi,{children:"x"})}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"x"})]})})}),(0,t.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"0.4306em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"x"})]})})]}),", ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsx)(s.mrow,{children:(0,t.jsx)(s.mi,{children:"F"})}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"F"})]})})}),(0,t.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"0.6833em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"F"})]})})]})," is differentiable at ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsx)(s.mrow,{children:(0,t.jsx)(s.mi,{children:"x"})}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"x"})]})})}),(0,t.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"0.4306em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"x"})]})})]})," with ",(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsxs)(s.mrow,{children:[(0,t.jsxs)(s.msup,{children:[(0,t.jsx)(s.mi,{children:"F"}),(0,t.jsx)(s.mo,{mathvariant:"normal",lspace:"0em",rspace:"0em",children:"\u2032"})]}),(0,t.jsx)(s.mo,{stretchy:"false",children:"("}),(0,t.jsx)(s.mi,{children:"x"}),(0,t.jsx)(s.mo,{stretchy:"false",children:")"}),(0,t.jsx)(s.mo,{children:"="}),(0,t.jsx)(s.mi,{children:"f"}),(0,t.jsx)(s.mo,{stretchy:"false",children:"("}),(0,t.jsx)(s.mi,{children:"x"}),(0,t.jsx)(s.mo,{stretchy:"false",children:")"})]}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"F'(x)=f(x)"})]})})}),(0,t.jsxs)(s.span,{className:"katex-html","aria-hidden":"true",children:[(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"1.0019em",verticalAlign:"-0.25em"}}),(0,t.jsxs)(s.span,{className:"mord",children:[(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"F"}),(0,t.jsx)(s.span,{className:"msupsub",children:(0,t.jsx)(s.span,{className:"vlist-t",children:(0,t.jsx)(s.span,{className:"vlist-r",children:(0,t.jsx)(s.span,{className:"vlist",style:{height:"0.7519em"},children:(0,t.jsxs)(s.span,{style:{top:"-3.063em",marginRight:"0.05em"},children:[(0,t.jsx)(s.span,{className:"pstrut",style:{height:"2.7em"}}),(0,t.jsx)(s.span,{className:"sizing reset-size6 size3 mtight",children:(0,t.jsx)(s.span,{className:"mord mtight",children:(0,t.jsx)(s.span,{className:"mord mtight",children:"\u2032"})})})]})})})})})]}),(0,t.jsx)(s.span,{className:"mopen",children:"("}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"x"}),(0,t.jsx)(s.span,{className:"mclose",children:")"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,t.jsx)(s.span,{className:"mrel",children:"="}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.10764em"},children:"f"}),(0,t.jsx)(s.span,{className:"mopen",children:"("}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"x"}),(0,t.jsx)(s.span,{className:"mclose",children:")"})]})]})]}),"."]})}),"\n",(0,t.jsx)(s.h3,{id:"blocks",children:"Blocks"}),"\n",(0,t.jsxs)(s.p,{children:["For equation block or display mode, use line breaks and ",(0,t.jsx)(s.code,{children:"$$"}),":"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-latex",children:"$$\nI = \\int_0^{2\\pi} \\sin(x)\\,dx\n$$\n"})}),"\n",(0,t.jsx)(c.A,{children:(0,t.jsx)(s.span,{className:"katex-display",children:(0,t.jsxs)(s.span,{className:"katex",children:[(0,t.jsx)(s.span,{className:"katex-mathml",children:(0,t.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,t.jsxs)(s.semantics,{children:[(0,t.jsxs)(s.mrow,{children:[(0,t.jsx)(s.mi,{children:"I"}),(0,t.jsx)(s.mo,{children:"="}),(0,t.jsxs)(s.msubsup,{children:[(0,t.jsx)(s.mo,{children:"\u222B"}),(0,t.jsx)(s.mn,{children:"0"}),(0,t.jsxs)(s.mrow,{children:[(0,t.jsx)(s.mn,{children:"2"}),(0,t.jsx)(s.mi,{children:"\u03C0"})]})]}),(0,t.jsx)(s.mi,{children:"sin"}),(0,t.jsx)(s.mo,{children:"\u2061"}),(0,t.jsx)(s.mo,{stretchy:"false",children:"("}),(0,t.jsx)(s.mi,{children:"x"}),(0,t.jsx)(s.mo,{stretchy:"false",children:")"}),(0,t.jsx)(s.mtext,{children:"\u2009"}),(0,t.jsx)(s.mi,{children:"d"}),(0,t.jsx)(s.mi,{children:"x"})]}),(0,t.jsx)(s.annotation,{encoding:"application/x-tex",children:"I = \\int_0^{2\\pi} \\sin(x)\\,dx"})]})})}),(0,t.jsxs)(s.span,{className:"katex-html","aria-hidden":"true",children:[(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"0.6833em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",style:{marginRight:"0.07847em"},children:"I"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,t.jsx)(s.span,{className:"mrel",children:"="}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,t.jsxs)(s.span,{className:"base",children:[(0,t.jsx)(s.span,{className:"strut",style:{height:"2.476em",verticalAlign:"-0.9119em"}}),(0,t.jsxs)(s.span,{className:"mop",children:[(0,t.jsx)(s.span,{className:"mop op-symbol large-op",style:{marginRight:"0.44445em",position:"relative",top:"-0.0011em"},children:"\u222B"}),(0,t.jsx)(s.span,{className:"msupsub",children:(0,t.jsxs)(s.span,{className:"vlist-t vlist-t2",children:[(0,t.jsxs)(s.span,{className:"vlist-r",children:[(0,t.jsxs)(s.span,{className:"vlist",style:{height:"1.564em"},children:[(0,t.jsxs)(s.span,{style:{top:"-1.7881em",marginLeft:"-0.4445em",marginRight:"0.05em"},children:[(0,t.jsx)(s.span,{className:"pstrut",style:{height:"2.7em"}}),(0,t.jsx)(s.span,{className:"sizing reset-size6 size3 mtight",children:(0,t.jsx)(s.span,{className:"mord mtight",children:"0"})})]}),(0,t.jsxs)(s.span,{style:{top:"-3.8129em",marginRight:"0.05em"},children:[(0,t.jsx)(s.span,{className:"pstrut",style:{height:"2.7em"}}),(0,t.jsx)(s.span,{className:"sizing reset-size6 size3 mtight",children:(0,t.jsxs)(s.span,{className:"mord mtight",children:[(0,t.jsx)(s.span,{className:"mord mtight",children:"2"}),(0,t.jsx)(s.span,{className:"mord mathnormal mtight",style:{marginRight:"0.03588em"},children:"\u03C0"})]})})]})]}),(0,t.jsx)(s.span,{className:"vlist-s",children:"\u200B"})]}),(0,t.jsx)(s.span,{className:"vlist-r",children:(0,t.jsx)(s.span,{className:"vlist",style:{height:"0.9119em"},children:(0,t.jsx)(s.span,{})})})]})})]}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,t.jsx)(s.span,{className:"mop",children:"sin"}),(0,t.jsx)(s.span,{className:"mopen",children:"("}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"x"}),(0,t.jsx)(s.span,{className:"mclose",children:")"}),(0,t.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"d"}),(0,t.jsx)(s.span,{className:"mord mathnormal",children:"x"})]})]})]})})}),"\n",(0,t.jsx)(s.h2,{id:"configuration",children:"Enabling math equations"}),"\n",(0,t.jsx)(s.p,{children:"Enable KaTeX:"}),"\n",(0,t.jsxs)(s.ol,{children:["\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Install the ",(0,t.jsx)(s.code,{children:"remark-math"})," and ",(0,t.jsx)(s.code,{children:"rehype-katex"})," plugins:"]}),"\n",(0,t.jsxs)(l.A,{groupId:"npm2yarn",children:[(0,t.jsx)(i.A,{value:"npm",children:(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"npm install --save remark-math@6 rehype-katex@7\n"})})}),(0,t.jsx)(i.A,{value:"yarn",label:"Yarn",children:(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"yarn add remark-math@6 rehype-katex@7\n"})})}),(0,t.jsx)(i.A,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"pnpm add remark-math@6 rehype-katex@7\n"})})})]}),"\n",(0,t.jsx)(s.admonition,{type:"warning",children:(0,t.jsxs)(s.p,{children:["Make sure to use ",(0,t.jsx)(s.code,{children:"remark-math 6"})," and ",(0,t.jsx)(s.code,{children:"rehype-katex 7"})," for Docusaurus v3 (using MDX v3). We can't guarantee other versions will work."]})}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["These 2 plugins are ",(0,t.jsx)(s.a,{href:"https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c",children:(0,t.jsx)(s.strong,{children:"only available as ES Modules"})}),". We recommended to use an ",(0,t.jsx)(s.a,{href:"https://flaviocopes.com/es-modules/",children:(0,t.jsx)(s.strong,{children:"ES Modules"})})," config file:"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-js",metastring:'title="ES module docusaurus.config.js"',children:"// highlight-start\nimport remarkMath from 'remark-math';\nimport rehypeKatex from 'rehype-katex';\n// highlight-end\n\n// highlight-start\nexport default {\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n path: 'docs',\n // highlight-start\n remarkPlugins: [remarkMath],\n rehypePlugins: [rehypeKatex],\n // highlight-end\n },\n },\n ],\n ],\n};\n"})}),"\n",(0,t.jsxs)(a,{children:[(0,t.jsx)("summary",{children:(0,t.jsxs)(s.p,{children:["Using a\n",(0,t.jsx)(s.a,{href:"https://nodejs.org/api/modules.html#modules-commonjs-modules",children:(0,t.jsx)(s.strong,{children:"CommonJS"})}),"\nconfig file?"]})}),(0,t.jsx)(s.p,{children:"If you decide to use a CommonJS config file, it is possible to load those ES module plugins thanks to dynamic imports and an async config creator function:"}),(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-js",metastring:'title="CommonJS module docusaurus.config.js"',children:"// highlight-start\nmodule.exports = async function createConfigAsync() {\n // highlight-end\n return {\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n path: 'docs',\n // highlight-start\n remarkPlugins: [(await import('remark-math')).default],\n rehypePlugins: [(await import('rehype-katex')).default],\n // highlight-end\n },\n },\n ],\n ],\n };\n};\n"})})]}),"\n"]}),"\n",(0,t.jsxs)(s.li,{children:["\n",(0,t.jsxs)(s.p,{children:["Include the KaTeX CSS in your config under ",(0,t.jsx)(s.code,{children:"stylesheets"}),":"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-js",children:"export default {\n //...\n stylesheets: [\n {\n href: 'https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css',\n type: 'text/css',\n integrity:\n 'sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM',\n crossorigin: 'anonymous',\n },\n ],\n};\n"})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(a,{children:[(0,t.jsx)("summary",{children:"See a config file example"}),(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"// highlight-start\nimport remarkMath from 'remark-math';\nimport rehypeKatex from 'rehype-katex';\n// highlight-end\n\nexport default {\n title: 'Docusaurus',\n tagline: 'Build optimized websites quickly, focus on your content',\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n path: 'docs',\n // highlight-start\n remarkPlugins: [remarkMath],\n rehypePlugins: [rehypeKatex],\n // highlight-end\n },\n },\n ],\n ],\n // highlight-start\n stylesheets: [\n {\n href: 'https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css',\n type: 'text/css',\n integrity:\n 'sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM',\n crossorigin: 'anonymous',\n },\n ],\n // highlight-end\n};\n"})})]}),"\n",(0,t.jsx)(s.h2,{id:"self-hosting-katex-assets",children:"Self-hosting KaTeX assets"}),"\n",(0,t.jsxs)(s.p,{children:["Loading stylesheets, fonts, and JavaScript libraries from CDN sources is a good practice for popular libraries and assets, since it reduces the amount of assets you have to host. In case you prefer to self-host the ",(0,t.jsx)(s.code,{children:"katex.min.css"})," (along with required KaTeX fonts), you can download the latest version from ",(0,t.jsx)(s.a,{href:"https://github.com/KaTeX/KaTeX/releases",children:"KaTeX GitHub releases"}),", extract and copy ",(0,t.jsx)(s.code,{children:"katex.min.css"})," and ",(0,t.jsx)(s.code,{children:"fonts"})," directory (only ",(0,t.jsx)(s.code,{children:".woff2"})," font types should be enough) to your site's ",(0,t.jsx)(s.code,{children:"static"})," directory, and in ",(0,t.jsx)(s.code,{children:"docusaurus.config.js"}),", replace the stylesheet's ",(0,t.jsx)(s.code,{children:"href"})," from the CDN URL to your local path (say, ",(0,t.jsx)(s.code,{children:"/katex/katex.min.css"}),")."]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n stylesheets: [\n {\n href: '/katex/katex.min.css',\n type: 'text/css',\n },\n ],\n};\n"})})]})}function p(e={}){let{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(x,{...e})}):x(e)}},43023:(e,s,a)=>{a.d(s,{R:()=>l,x:()=>i});var n=a(63696);let t={},r=n.createContext(t);function l(e){let s=n.useContext(r);return n.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/58072.a959e0c3.js b/assets/js/58072.a959e0c3.js deleted file mode 100644 index f62add863b..0000000000 --- a/assets/js/58072.a959e0c3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[58072],{58072:(t,e,a)=>{let i;a.d(e,{diagram:()=>S});var r=a(1475),d=a(93126),n=a(51822),s=a(62499),o=a(17367);a(95285),a(31546),a(31234);let c={},l=(t,e)=>{c[t]=e},g=t=>t.append("circle").attr("class","start-state").attr("r",(0,o.c)().state.sizeUnit).attr("cx",(0,o.c)().state.padding+(0,o.c)().state.sizeUnit).attr("cy",(0,o.c)().state.padding+(0,o.c)().state.sizeUnit),p=t=>t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",(0,o.c)().state.textHeight).attr("class","divider").attr("x2",2*(0,o.c)().state.textHeight).attr("y1",0).attr("y2",0),h=(t,e)=>{let a=t.append("text").attr("x",2*(0,o.c)().state.padding).attr("y",(0,o.c)().state.textHeight+2*(0,o.c)().state.padding).attr("font-size",(0,o.c)().state.fontSize).attr("class","state-title").text(e.id),i=a.node().getBBox();return t.insert("rect",":first-child").attr("x",(0,o.c)().state.padding).attr("y",(0,o.c)().state.padding).attr("width",i.width+2*(0,o.c)().state.padding).attr("height",i.height+2*(0,o.c)().state.padding).attr("rx",(0,o.c)().state.radius),a},x=(t,e)=>{let a=function(t,e,a){let i=t.append("tspan").attr("x",2*(0,o.c)().state.padding).text(e);a||i.attr("dy",(0,o.c)().state.textHeight)},i=t.append("text").attr("x",2*(0,o.c)().state.padding).attr("y",(0,o.c)().state.textHeight+1.3*(0,o.c)().state.padding).attr("font-size",(0,o.c)().state.fontSize).attr("class","state-title").text(e.descriptions[0]).node().getBBox(),r=i.height,d=t.append("text").attr("x",(0,o.c)().state.padding).attr("y",r+.4*(0,o.c)().state.padding+(0,o.c)().state.dividerMargin+(0,o.c)().state.textHeight).attr("class","state-description"),n=!0,s=!0;e.descriptions.forEach(function(t){n||(a(d,t,s),s=!1),n=!1});let c=t.append("line").attr("x1",(0,o.c)().state.padding).attr("y1",(0,o.c)().state.padding+r+(0,o.c)().state.dividerMargin/2).attr("y2",(0,o.c)().state.padding+r+(0,o.c)().state.dividerMargin/2).attr("class","descr-divider"),l=d.node().getBBox(),g=Math.max(l.width,i.width);return c.attr("x2",g+3*(0,o.c)().state.padding),t.insert("rect",":first-child").attr("x",(0,o.c)().state.padding).attr("y",(0,o.c)().state.padding).attr("width",g+2*(0,o.c)().state.padding).attr("height",l.height+r+2*(0,o.c)().state.padding).attr("rx",(0,o.c)().state.radius),t},u=(t,e,a)=>{let i;let r=(0,o.c)().state.padding,d=2*(0,o.c)().state.padding,n=t.node().getBBox(),s=n.width,c=n.x,l=t.append("text").attr("x",0).attr("y",(0,o.c)().state.titleShift).attr("font-size",(0,o.c)().state.fontSize).attr("class","state-title").text(e.id),g=l.node().getBBox().width+d,p=Math.max(g,s);p===s&&(p+=d);let h=t.node().getBBox();e.doc,i=c-r,g>s&&(i=(s-p)/2+r),Math.abs(c-h.x)<r&&g>s&&(i=c-(g-s)/2);let x=1-(0,o.c)().state.textHeight;return t.insert("rect",":first-child").attr("x",i).attr("y",x).attr("class",a?"alt-composit":"composit").attr("width",p).attr("height",h.height+(0,o.c)().state.textHeight+(0,o.c)().state.titleShift+1).attr("rx","0"),l.attr("x",i+r),g<=s&&l.attr("x",c+(p-d)/2-g/2+r),t.insert("rect",":first-child").attr("x",i).attr("y",(0,o.c)().state.titleShift-(0,o.c)().state.textHeight-(0,o.c)().state.padding).attr("width",p).attr("height",3*(0,o.c)().state.textHeight).attr("rx",(0,o.c)().state.radius),t.insert("rect",":first-child").attr("x",i).attr("y",(0,o.c)().state.titleShift-(0,o.c)().state.textHeight-(0,o.c)().state.padding).attr("width",p).attr("height",h.height+3+2*(0,o.c)().state.textHeight).attr("rx",(0,o.c)().state.radius),t},f=t=>(t.append("circle").attr("class","end-state-outer").attr("r",(0,o.c)().state.sizeUnit+(0,o.c)().state.miniPadding).attr("cx",(0,o.c)().state.padding+(0,o.c)().state.sizeUnit+(0,o.c)().state.miniPadding).attr("cy",(0,o.c)().state.padding+(0,o.c)().state.sizeUnit+(0,o.c)().state.miniPadding),t.append("circle").attr("class","end-state-inner").attr("r",(0,o.c)().state.sizeUnit).attr("cx",(0,o.c)().state.padding+(0,o.c)().state.sizeUnit+2).attr("cy",(0,o.c)().state.padding+(0,o.c)().state.sizeUnit+2)),y=(t,e)=>{let a=(0,o.c)().state.forkWidth,i=(0,o.c)().state.forkHeight;if(e.parentId){let t=a;a=i,i=t}return t.append("rect").style("stroke","black").style("fill","black").attr("width",a).attr("height",i).attr("x",(0,o.c)().state.padding).attr("y",(0,o.c)().state.padding)},w=(t,e,a,i)=>{let r=0,d=i.append("text");d.style("text-anchor","start"),d.attr("class","noteText");let n=t.replace(/\r\n/g,"<br/>"),s=(n=n.replace(/\n/g,"<br/>")).split(o.e.lineBreakRegex),c=1.25*(0,o.c)().state.noteMargin;for(let t of s){let i=t.trim();if(i.length>0){let t=d.append("tspan");t.text(i),0===c&&(c+=t.node().getBBox().height),r+=c,t.attr("x",e+(0,o.c)().state.noteMargin),t.attr("y",a+r+1.25*(0,o.c)().state.noteMargin)}}return{textWidth:d.node().getBBox().width,textHeight:r}},b=(t,e)=>{e.attr("class","state-note");let a=e.append("rect").attr("x",0).attr("y",(0,o.c)().state.padding),{textWidth:i,textHeight:r}=w(t,0,0,e.append("g"));return a.attr("height",r+2*(0,o.c)().state.noteMargin),a.attr("width",i+2*(0,o.c)().state.noteMargin),a},B=function(t,e){let a=e.id,i={id:a,label:e.id,width:0,height:0},r=t.append("g").attr("id",a).attr("class","stateGroup");"start"===e.type&&g(r),"end"===e.type&&f(r),("fork"===e.type||"join"===e.type)&&y(r,e),"note"===e.type&&b(e.note.text,r),"divider"===e.type&&p(r),"default"===e.type&&0===e.descriptions.length&&h(r,e),"default"===e.type&&e.descriptions.length>0&&x(r,e);let d=r.node().getBBox();return i.width=d.width+2*(0,o.c)().state.padding,i.height=d.height+2*(0,o.c)().state.padding,l(a,i),i},m=0,k=function(t,e,a){e.points=e.points.filter(t=>!Number.isNaN(t.y));let i=e.points,n=(0,d.n8j)().x(function(t){return t.x}).y(function(t){return t.y}).curve(d.qrM),s=t.append("path").attr("d",n(i)).attr("id","edge"+m).attr("class","transition"),c="";if((0,o.c)().state.arrowMarkerAbsolute&&(c=(c=(c=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),s.attr("marker-end","url("+c+"#"+function(t){switch(t){case r.d.relationType.AGGREGATION:return"aggregation";case r.d.relationType.EXTENSION:return"extension";case r.d.relationType.COMPOSITION:return"composition";case r.d.relationType.DEPENDENCY:return"dependency"}}(r.d.relationType.DEPENDENCY)+"End)"),void 0!==a.title){let i=t.append("g").attr("class","stateLabel"),{x:r,y:d}=o.u.calcLabelPosition(e.points),n=o.e.getRows(a.title),s=0,c=[],l=0,g=0;for(let t=0;t<=n.length;t++){let e=i.append("text").attr("text-anchor","middle").text(n[t]).attr("x",r).attr("y",d+s),a=e.node().getBBox();l=Math.max(l,a.width),g=Math.min(g,a.x),o.l.info(a.x,r,d+s),0===s&&(s=e.node().getBBox().height,o.l.info("Title height",s,d)),c.push(e)}let p=s*n.length;if(n.length>1){let t=(n.length-1)*s*.5;c.forEach((e,a)=>e.attr("y",d+a*s-t)),p=s*n.length}let h=i.node().getBBox();i.insert("rect",":first-child").attr("class","box").attr("x",r-l/2-(0,o.c)().state.padding/2).attr("y",d-p/2-(0,o.c)().state.padding/2-3.5).attr("width",l+(0,o.c)().state.padding).attr("height",p+(0,o.c)().state.padding),o.l.info(h)}m++},N={},E=function(t){t.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},M=t=>t?t.length*i.fontSizeFactor:1,v=(t,e,a,r,d,c,l)=>{let g;let p=new s.T({compound:!0,multigraph:!0}),h=!0;for(g=0;g<t.length;g++)if("relation"===t[g].stmt){h=!1;break}a?p.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:h?1:i.edgeLengthFactor,nodeSep:h?1:50,isMultiGraph:!0}):p.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:h?1:i.edgeLengthFactor,nodeSep:h?1:50,ranker:"tight-tree",isMultiGraph:!0}),p.setDefaultEdgeLabel(function(){return{}}),l.db.extract(t);let x=l.db.getStates(),f=l.db.getRelations();for(let t of Object.keys(x)){let n;let s=x[t];if(a&&(s.parentId=a),s.doc){let t=e.append("g").attr("id",s.id).attr("class","stateGroup");n=v(s.doc,t,s.id,!r,d,c,l);{let e=(t=u(t,s,r)).node().getBBox();n.width=e.width,n.height=e.height+i.padding/2,N[s.id]={y:i.compositTitleSize}}}else n=B(e,s);if(s.note){let t=B(e,{descriptions:[],id:s.id+"-note",note:s.note,type:"note"});"left of"===s.note.position?(p.setNode(n.id+"-note",t),p.setNode(n.id,n)):(p.setNode(n.id,n),p.setNode(n.id+"-note",t)),p.setParent(n.id,n.id+"-group"),p.setParent(n.id+"-note",n.id+"-group")}else p.setNode(n.id,n)}o.l.debug("Count=",p.nodeCount(),p);let y=0;f.forEach(function(t){y++,o.l.debug("Setting edge",t),p.setEdge(t.id1,t.id2,{relation:t,width:M(t.title),height:i.labelHeight*o.e.getRows(t.title).length,labelpos:"c"},"id"+y)}),(0,n.Zp)(p),o.l.debug("Graph after layout",p.nodes());let w=e.node();p.nodes().forEach(function(t){void 0!==t&&void 0!==p.node(t)?(o.l.warn("Node "+t+": "+JSON.stringify(p.node(t))),d.select("#"+w.id+" #"+t).attr("transform","translate("+(p.node(t).x-p.node(t).width/2)+","+(p.node(t).y+(N[t]?N[t].y:0)-p.node(t).height/2)+" )"),d.select("#"+w.id+" #"+t).attr("data-x-shift",p.node(t).x-p.node(t).width/2),c.querySelectorAll("#"+w.id+" #"+t+" .divider").forEach(t=>{let e=t.parentElement,a=0,i=0;e&&(e.parentElement&&(a=e.parentElement.getBBox().width),Number.isNaN(i=parseInt(e.getAttribute("data-x-shift"),10))&&(i=0)),t.setAttribute("x1",0-i+8),t.setAttribute("x2",a-i-8)})):o.l.debug("No Node "+t+": "+JSON.stringify(p.node(t)))});let b=w.getBBox();p.edges().forEach(function(t){void 0!==t&&void 0!==p.edge(t)&&(o.l.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(p.edge(t))),k(e,p.edge(t),p.edge(t).relation))}),b=w.getBBox();let m={id:a||"root",label:a||"root",width:0,height:0};return m.width=b.width+2*i.padding,m.height=b.height+2*i.padding,o.l.debug("Doc rendered",m,p),m},S={parser:r.p,db:r.d,renderer:{setConf:function(){},draw:function(t,e,a,r){let n;i=(0,o.c)().state;let s=(0,o.c)().securityLevel;"sandbox"===s&&(n=(0,d.Ltv)("#i"+e));let c="sandbox"===s?(0,d.Ltv)(n.nodes()[0].contentDocument.body):(0,d.Ltv)("body"),l="sandbox"===s?n.nodes()[0].contentDocument:document;o.l.debug("Rendering diagram "+t);let g=c.select(`[id='${e}']`);E(g),v(r.db.getRootDoc(),g,void 0,!1,c,l,r);let p=i.padding,h=g.node().getBBox(),x=h.width+2*p,u=h.height+2*p;(0,o.i)(g,u,1.75*x,i.useMaxWidth),g.attr("viewBox",`${h.x-i.padding} ${h.y-i.padding} `+x+" "+u)}},styles:r.s,init:t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,r.d.clear()}}}}]); \ No newline at end of file diff --git a/assets/js/59818.46a98ef0.js b/assets/js/59818.46a98ef0.js new file mode 100644 index 0000000000..8fec13e243 --- /dev/null +++ b/assets/js/59818.46a98ef0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[59818],{59818:(e,s,c)=>{c.d(s,{createArchitectureServices:()=>t.S});var t=c(46554);c(69663)}}]); \ No newline at end of file diff --git a/assets/js/59cb67ce.11a94647.js b/assets/js/59cb67ce.11a94647.js deleted file mode 100644 index b0749ed285..0000000000 --- a/assets/js/59cb67ce.11a94647.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[58679],{37082:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>g,contentTitle:()=>j,default:()=>f,frontMatter:()=>x,metadata:()=>s,toc:()=>m});let s=JSON.parse('{"id":"tests/toc-partials/index","title":"TOC partial test","description":"This page tests that MDX-imported content appears correctly in the table-of-contents","source":"@site/_dogfooding/_docs tests/tests/toc-partials/index.mdx","sourceDirName":"tests/toc-partials","slug":"/tests/toc-partials/","permalink":"/tests/docs/tests/toc-partials/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Test links","permalink":"/tests/docs/tests/links/test-markdown-links"},"next":{"title":"Visibility","permalink":"/tests/docs/tests/visibility/"}}');var a=n(62540),i=n(43023);let l=[{value:"Partial",id:"partial",level:2},{value:"Partial Sub Heading 1",id:"partial-sub-heading-1",level:3},{value:"Partial Sub Sub Heading 1",id:"partial-sub-sub-heading-1",level:4},{value:"Partial Sub Heading 2",id:"partial-sub-heading-2",level:3},{value:"Partial Sub Sub Heading 2",id:"partial-sub-sub-heading-2",level:4}];function r(e){let t={h2:"h2",h3:"h3",h4:"h4",p:"p",...(0,i.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"partial",children:"Partial"}),"\n",(0,a.jsx)(t.p,{children:"Partial intro"}),"\n",(0,a.jsx)(t.h3,{id:"partial-sub-heading-1",children:"Partial Sub Heading 1"}),"\n",(0,a.jsx)(t.p,{children:"Partial Sub Heading 1 content"}),"\n",(0,a.jsx)(t.h4,{id:"partial-sub-sub-heading-1",children:"Partial Sub Sub Heading 1"}),"\n",(0,a.jsx)(t.p,{children:"Partial Sub Sub Heading 1 content"}),"\n",(0,a.jsx)(t.h3,{id:"partial-sub-heading-2",children:"Partial Sub Heading 2"}),"\n",(0,a.jsx)(t.p,{children:"Partial Sub Heading 2 content"}),"\n",(0,a.jsx)(t.h4,{id:"partial-sub-sub-heading-2",children:"Partial Sub Sub Heading 2"}),"\n",(0,a.jsx)(t.p,{children:"Partial Sub Sub Heading 2 content"})]})}function d(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(r,{...e})}):r(e)}function o(e){let t={h3:"h3",p:"p",...(0,i.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h3,{id:"2nd-level-partial",children:"2nd level partial"}),"\n",(0,a.jsx)(t.p,{children:"I'm 2 levels deep."})]})}function c(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(o,{...e})}):o(e)}d.displayName="MDXContent(_dogfooding/_docs tests/tests/toc-partials/_partial.mdx)",c.displayName="MDXContent(_dogfooding/_docs tests/tests/toc-partials/_second-level-partial.mdx)";let p=[{value:"1st level partial",id:"1st-level-partial",level:2},{value:"2nd level partial",id:"2nd-level-partial",level:3}];function h(e){let t={h2:"h2",p:"p",...(0,i.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"1st-level-partial",children:"1st level partial"}),"\n",(0,a.jsx)(t.p,{children:"I'm 1 level deep."}),"\n",(0,a.jsx)(c,{})]})}function u(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(h,{...e})}):h(e)}u.displayName="MDXContent(_dogfooding/_docs tests/tests/toc-partials/_first-level-partial.mdx)";let x={},j="TOC partial test",g={},m=[...l,...l,...p,...p];function b(e){let t={a:"a",h1:"h1",header:"header",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.header,{children:(0,a.jsx)(t.h1,{id:"toc-partial-test",children:"TOC partial test"})}),"\n",(0,a.jsx)(t.p,{children:"This page tests that MDX-imported content appears correctly in the table-of-contents"}),"\n",(0,a.jsx)(t.p,{children:"See also:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/3915",children:"https://github.com/facebook/docusaurus/issues/3915"})}),"\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/9684",children:"https://github.com/facebook/docusaurus/pull/9684"})}),"\n"]}),"\n",(0,a.jsx)(t.hr,{}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.strong,{children:"The table of contents should include headings of this partial"}),":"]}),"\n",(0,a.jsx)(d,{}),"\n",(0,a.jsx)(t.hr,{}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.strong,{children:"We can import the same partial using a different name and it still works"}),":"]}),"\n","\n",(0,a.jsx)(d,{}),"\n",(0,a.jsx)(t.hr,{}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.strong,{children:"We can import a partial and not use it, the TOC remains unaffected"}),":"]}),"\n","\n",(0,a.jsx)(t.hr,{}),"\n","\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"It also works for partials importing other partials"})}),"\n",(0,a.jsx)(u,{}),"\n",(0,a.jsx)(t.hr,{}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"And we can even use the same partial twice!"})}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"(although it's useless and not particularly recommended because headings will have the same ids)"})}),"\n",(0,a.jsx)(u,{})]})}function f(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(b,{...e})}):b(e)}f.displayName="MDXContent(_dogfooding/_docs tests/tests/toc-partials/index.mdx)"},43023:(e,t,n)=>{n.d(t,{R:()=>l,x:()=>r});var s=n(63696);let a={},i=s.createContext(a);function l(e){let t=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/59cb67ce.5b1ea12b.js b/assets/js/59cb67ce.5b1ea12b.js new file mode 100644 index 0000000000..52b5fdf4b6 --- /dev/null +++ b/assets/js/59cb67ce.5b1ea12b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[58679],{37082:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>g,contentTitle:()=>j,default:()=>f,frontMatter:()=>x,metadata:()=>s,toc:()=>b});let s=JSON.parse('{"id":"tests/toc-partials/index","title":"TOC partial test","description":"This page tests that MDX-imported content appears correctly in the table-of-contents","source":"@site/_dogfooding/_docs tests/tests/toc-partials/index.mdx","sourceDirName":"tests/toc-partials","slug":"/tests/toc-partials/","permalink":"/tests/docs/tests/toc-partials/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Test links","permalink":"/tests/docs/tests/links/test-markdown-links"},"next":{"title":"Visibility","permalink":"/tests/docs/tests/visibility/"}}');var a=n(62540),i=n(43023);let l=[{value:"Partial",id:"partial",level:2},{value:"Partial Sub Heading 1",id:"partial-sub-heading-1",level:3},{value:"Partial Sub Sub Heading 1",id:"partial-sub-sub-heading-1",level:4},{value:"Partial Sub Heading 2",id:"partial-sub-heading-2",level:3},{value:"Partial Sub Sub Heading 2",id:"partial-sub-sub-heading-2",level:4}];function r(e){let t={h2:"h2",h3:"h3",h4:"h4",p:"p",...(0,i.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"partial",children:"Partial"}),"\n",(0,a.jsx)(t.p,{children:"Partial intro"}),"\n",(0,a.jsx)(t.h3,{id:"partial-sub-heading-1",children:"Partial Sub Heading 1"}),"\n",(0,a.jsx)(t.p,{children:"Partial Sub Heading 1 content"}),"\n",(0,a.jsx)(t.h4,{id:"partial-sub-sub-heading-1",children:"Partial Sub Sub Heading 1"}),"\n",(0,a.jsx)(t.p,{children:"Partial Sub Sub Heading 1 content"}),"\n",(0,a.jsx)(t.h3,{id:"partial-sub-heading-2",children:"Partial Sub Heading 2"}),"\n",(0,a.jsx)(t.p,{children:"Partial Sub Heading 2 content"}),"\n",(0,a.jsx)(t.h4,{id:"partial-sub-sub-heading-2",children:"Partial Sub Sub Heading 2"}),"\n",(0,a.jsx)(t.p,{children:"Partial Sub Sub Heading 2 content"})]})}function d(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(r,{...e})}):r(e)}function o(e){let t={h3:"h3",p:"p",...(0,i.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h3,{id:"2nd-level-partial",children:"2nd level partial"}),"\n",(0,a.jsx)(t.p,{children:"I'm 2 levels deep."})]})}function c(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(o,{...e})}):o(e)}d.displayName="MDXContent(_dogfooding/_docs tests/tests/toc-partials/_partial.mdx)",c.displayName="MDXContent(_dogfooding/_docs tests/tests/toc-partials/_second-level-partial.mdx)";let p=[{value:"1st level partial",id:"1st-level-partial",level:2},{value:"2nd level partial",id:"2nd-level-partial",level:3}];function h(e){let t={h2:"h2",p:"p",...(0,i.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"1st-level-partial",children:"1st level partial"}),"\n",(0,a.jsx)(t.p,{children:"I'm 1 level deep."}),"\n",(0,a.jsx)(c,{})]})}function u(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(h,{...e})}):h(e)}u.displayName="MDXContent(_dogfooding/_docs tests/tests/toc-partials/_first-level-partial.mdx)";let x={},j="TOC partial test",g={},b=[...l,...l,...p,...p];function m(e){let t={a:"a",h1:"h1",header:"header",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.header,{children:(0,a.jsx)(t.h1,{id:"toc-partial-test",children:"TOC partial test"})}),"\n",(0,a.jsx)(t.p,{children:"This page tests that MDX-imported content appears correctly in the table-of-contents"}),"\n",(0,a.jsx)(t.p,{children:"See also:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/3915",children:"https://github.com/facebook/docusaurus/issues/3915"})}),"\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/9684",children:"https://github.com/facebook/docusaurus/pull/9684"})}),"\n"]}),"\n",(0,a.jsx)(t.hr,{}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.strong,{children:"The table of contents should include headings of this partial"}),":"]}),"\n",(0,a.jsx)(d,{}),"\n",(0,a.jsx)(t.hr,{}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.strong,{children:"We can import the same partial using a different name and it still works"}),":"]}),"\n","\n",(0,a.jsx)(d,{}),"\n",(0,a.jsx)(t.hr,{}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.strong,{children:"We can import a partial and not use it, the TOC remains unaffected"}),":"]}),"\n","\n",(0,a.jsx)(t.hr,{}),"\n","\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"It also works for partials importing other partials"})}),"\n",(0,a.jsx)(u,{}),"\n",(0,a.jsx)(t.hr,{}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"And we can even use the same partial twice!"})}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"(although it's useless and not particularly recommended because headings will have the same ids)"})}),"\n",(0,a.jsx)(u,{})]})}function f(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(m,{...e})}):m(e)}f.displayName="MDXContent(_dogfooding/_docs tests/tests/toc-partials/index.mdx)"},43023:(e,t,n)=>{n.d(t,{R:()=>l,x:()=>r});var s=n(63696);let a={},i=s.createContext(a);function l(e){let t=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5c640cab.0c1dda6f.js b/assets/js/5c640cab.e97fabdd.js similarity index 67% rename from assets/js/5c640cab.0c1dda6f.js rename to assets/js/5c640cab.e97fabdd.js index 6c308c3cc0..f38f962571 100644 --- a/assets/js/5c640cab.0c1dda6f.js +++ b/assets/js/5c640cab.e97fabdd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[32191],{22459:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var i=a(741),n=a(62540),r=a(43023);let o={title:"Tribute to Endi",authors:"JMarcey",tags:["endi","tribute"]},s=void 0,u={authorsImageUrls:[void 0]},c=[];function l(e){let t={a:"a",p:"p",...(0,r.R)(),...e.components};return(0,n.jsxs)(t.p,{children:["It is with great sadness to announce that our primary external Docusaurus contributor, ",(0,n.jsx)(t.a,{href:"https://github.com/endiliey",children:"Endilie Yacop Sucipto"})," (Endi to those who knew him), ",(0,n.jsx)(t.a,{href:"https://give.asia/campaign/help_endi_beat_cancer#/updates",children:"passed away"})," over the weekend after an illness associated with his bout with cancer."]})}function d(e={}){let{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},43023:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>s});var i=a(63696);let n={},r=i.createContext(n);function o(e){let t=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),i.createElement(r.Provider,{value:t},e.children)}},741:e=>{e.exports=JSON.parse('{"permalink":"/blog/2020/01/07/tribute-to-endi","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2020/01-07-tribute-to-endi.mdx","source":"@site/blog/2020/01-07-tribute-to-endi.mdx","title":"Tribute to Endi","description":"It is with great sadness to announce that our primary external Docusaurus contributor, Endilie Yacop Sucipto (Endi to those who knew him), passed away over the weekend after an illness associated with his bout with cancer.","date":"2020-01-07T00:00:00.000Z","tags":[{"inline":false,"label":"Endi","permalink":"/blog/tags/endi"},{"inline":false,"label":"Tribute","permalink":"/blog/tags/tribute"}],"readingTime":0.895,"hasTruncateMarker":true,"authors":[{"name":"Joel Marcey","title":"Developer Advocate at Meta","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{"x":"https://x.com/joelmarcey","github":"https://github.com/JoelMarcey"},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Tribute to Endi","authors":"JMarcey","tags":["endi","tribute"]},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 2020 Recap","permalink":"/blog/2021/01/19/docusaurus-2020-recap"},"nextItem":{"title":"Docusaurus 2019 Recap","permalink":"/blog/2019/12/30/docusaurus-2019-recap"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[32191],{22459:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var i=a(741),r=a(62540),n=a(43023);let o={title:"Tribute to Endi",authors:"JMarcey",tags:["endi","tribute"]},s=void 0,u={authorsImageUrls:[void 0]},c=[];function l(e){let t={a:"a",p:"p",...(0,n.R)(),...e.components};return(0,r.jsxs)(t.p,{children:["It is with great sadness to announce that our primary external Docusaurus contributor, ",(0,r.jsx)(t.a,{href:"https://github.com/endiliey",children:"Endilie Yacop Sucipto"})," (Endi to those who knew him), ",(0,r.jsx)(t.a,{href:"https://give.asia/campaign/help_endi_beat_cancer#/updates",children:"passed away"})," over the weekend after an illness associated with his bout with cancer."]})}function d(e={}){let{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},43023:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>s});var i=a(63696);let r={},n=i.createContext(r);function o(e){let t=i.useContext(n);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(n.Provider,{value:t},e.children)}},741:e=>{e.exports=JSON.parse('{"permalink":"/blog/2020/01/07/tribute-to-endi","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2020/01-07-tribute-to-endi.mdx","source":"@site/blog/2020/01-07-tribute-to-endi.mdx","title":"Tribute to Endi","description":"It is with great sadness to announce that our primary external Docusaurus contributor, Endilie Yacop Sucipto (Endi to those who knew him), passed away over the weekend after an illness associated with his bout with cancer.","date":"2020-01-07T00:00:00.000Z","tags":[{"inline":false,"label":"Endi","permalink":"/blog/tags/endi"},{"inline":false,"label":"Tribute","permalink":"/blog/tags/tribute"}],"readingTime":0.895,"hasTruncateMarker":true,"authors":[{"name":"Joel Marcey","title":"Developer Advocate at Meta","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{"x":"https://x.com/joelmarcey","github":"https://github.com/JoelMarcey"},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Tribute to Endi","authors":"JMarcey","tags":["endi","tribute"]},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 2020 Recap","permalink":"/blog/2021/01/19/docusaurus-2020-recap"},"nextItem":{"title":"Docusaurus 2019 Recap","permalink":"/blog/2019/12/30/docusaurus-2019-recap"}}')}}]); \ No newline at end of file diff --git a/assets/js/5c7aa639.886d4f9d.js b/assets/js/5c7aa639.f9bd37d6.js similarity index 98% rename from assets/js/5c7aa639.886d4f9d.js rename to assets/js/5c7aa639.f9bd37d6.js index 267da4a2d1..eb23605525 100644 --- a/assets/js/5c7aa639.886d4f9d.js +++ b/assets/js/5c7aa639.f9bd37d6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[83162],{18494:(e,t,s)=>{s.d(t,{A:()=>o});let o="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgdmlld0JveD0iMCAwIDIwMCAyMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjRkZGIiBkPSJNOTkgNTJoODR2MzRIOTl6Ii8+PHBhdGggZD0iTTIzIDE2M2MtNy4zOTggMC0xMy44NDMtNC4wMjctMTcuMzAzLTEwQTE5Ljg4NiAxOS44ODYgMCAwMDMgMTYzYzAgMTEuMDQ2IDguOTU0IDIwIDIwIDIwaDIwdi0yMEgyM3oiIGZpbGw9IiMzRUNDNUYiLz48cGF0aCBkPSJNMTEyLjk4IDU3LjM3NkwxODMgNTNWNDNjMC0xMS4wNDYtOC45NTQtMjAtMjAtMjBINzNsLTIuNS00LjMzYy0xLjExMi0xLjkyNS0zLjg4OS0xLjkyNS01IDBMNjMgMjNsLTIuNS00LjMzYy0xLjExMS0xLjkyNS0zLjg4OS0xLjkyNS01IDBMNTMgMjNsLTIuNS00LjMzYy0xLjExMS0xLjkyNS0zLjg4OS0xLjkyNS01IDBMNDMgMjNjLS4wMjIgMC0uMDQyLjAwMy0uMDY1LjAwM2wtNC4xNDItNC4xNDFjLTEuNTctMS41NzEtNC4yNTItLjg1My00LjgyOCAxLjI5NGwtMS4zNjkgNS4xMDQtNS4xOTItMS4zOTJjLTIuMTQ4LS41NzUtNC4xMTEgMS4zODktMy41MzUgMy41MzZsMS4zOSA1LjE5My01LjEwMiAxLjM2N2MtMi4xNDguNTc2LTIuODY3IDMuMjU5LTEuMjk2IDQuODNsNC4xNDIgNC4xNDJjMCAuMDIxLS4wMDMuMDQyLS4wMDMuMDY0bC00LjMzIDIuNWMtMS45MjUgMS4xMTEtMS45MjUgMy44ODkgMCA1TDIzIDUzbC00LjMzIDIuNWMtMS45MjUgMS4xMTEtMS45MjUgMy44ODkgMCA1TDIzIDYzbC00LjMzIDIuNWMtMS45MjUgMS4xMTEtMS45MjUgMy44ODkgMCA1TDIzIDczbC00LjMzIDIuNWMtMS45MjUgMS4xMTEtMS45MjUgMy44ODkgMCA1TDIzIDgzbC00LjMzIDIuNWMtMS45MjUgMS4xMTEtMS45MjUgMy44ODkgMCA1TDIzIDkzbC00LjMzIDIuNWMtMS45MjUgMS4xMTEtMS45MjUgMy44ODkgMCA1TDIzIDEwM2wtNC4zMyAyLjVjLTEuOTI1IDEuMTExLTEuOTI1IDMuODg5IDAgNUwyMyAxMTNsLTQuMzMgMi41Yy0xLjkyNSAxLjExMS0xLjkyNSAzLjg4OSAwIDVMMjMgMTIzbC00LjMzIDIuNWMtMS45MjUgMS4xMTEtMS45MjUgMy44ODkgMCA1TDIzIDEzM2wtNC4zMyAyLjVjLTEuOTI1IDEuMTExLTEuOTI1IDMuODg5IDAgNUwyMyAxNDNsLTQuMzMgMi41Yy0xLjkyNSAxLjExMS0xLjkyNSAzLjg4OSAwIDVMMjMgMTUzbC00LjMzIDIuNWMtMS45MjUgMS4xMTEtMS45MjUgMy44ODkgMCA1TDIzIDE2M2MwIDExLjA0NiA4Ljk1NCAyMCAyMCAyMGgxMjBjMTEuMDQ2IDAgMjAtOC45NTQgMjAtMjBWODNsLTcwLjAyLTQuMzc2QTEwLjY0NSAxMC42NDUgMCAwMTEwMyA2OGMwLTUuNjIxIDQuMzctMTAuMjczIDkuOTgtMTAuNjI0IiBmaWxsPSIjM0VDQzVGIi8+PHBhdGggZmlsbD0iIzNFQ0M1RiIgZD0iTTE0MyAxODNoMzB2LTQwaC0zMHoiLz48cGF0aCBkPSJNMTkzIDE1OGMtLjIxOSAwLS40MjguMDM3LS42MzkuMDY0LS4wMzgtLjE1LS4wNzQtLjMwMS0uMTE2LS40NTFBNSA1IDAgMDAxOTAuMzIgMTQ4YTQuOTYgNC45NiAwIDAwLTMuMDE2IDEuMDM2IDI2LjUzMSAyNi41MzEgMCAwMC0uMzM1LS4zMzYgNC45NTUgNC45NTUgMCAwMDEuMDExLTIuOTg3IDUgNSAwIDAwLTkuNTk5LTEuOTU5Yy0uMTQ4LS4wNDItLjI5Ny0uMDc3LS40NDUtLjExNS4wMjctLjIxMS4wNjQtLjQyLjA2NC0uNjM5YTUgNSAwIDAwLTUtNSA1IDUgMCAwMC01IDVjMCAuMjE5LjAzNy40MjguMDY0LjYzOS0uMTQ4LjAzOC0uMjk3LjA3My0uNDQ1LjExNWE0Ljk5OCA0Ljk5OCAwIDAwLTkuNTk5IDEuOTU5YzAgMS4xMjUuMzg0IDIuMTUxIDEuMDExIDIuOTg3LTMuNzE3IDMuNjMyLTYuMDMxIDguNjkzLTYuMDMxIDE0LjMgMCAxMS4wNDYgOC45NTQgMjAgMjAgMjAgOS4zMzkgMCAxNy4xNi02LjQxIDE5LjM2MS0xNS4wNjQuMjExLjAyNy40Mi4wNjQuNjM5LjA2NGE1IDUgMCAwMDUtNSA1IDUgMCAwMC01LTUiIGZpbGw9IiM0NEQ4NjAiLz48cGF0aCBmaWxsPSIjM0VDQzVGIiBkPSJNMTUzIDEyM2gzMHYtMjBoLTMweiIvPjxwYXRoIGQ9Ik0xOTMgMTE1LjVhMi41IDIuNSAwIDEwMC01Yy0uMTA5IDAtLjIxNC4wMTktLjMxOS4wMzItLjAyLS4wNzUtLjAzNy0uMTUtLjA1OC0uMjI1YTIuNTAxIDIuNTAxIDAgMDAtLjk2My00LjgwN2MtLjU2OSAwLTEuMDg4LjE5Ny0xLjUwOC41MThhNi42NTMgNi42NTMgMCAwMC0uMTY4LS4xNjhjLjMxNC0uNDE3LjUwNi0uOTMxLjUwNi0xLjQ5NGEyLjUgMi41IDAgMDAtNC44LS45NzlBOS45ODcgOS45ODcgMCAwMDE4MyAxMDNjLTUuNTIyIDAtMTAgNC40NzgtMTAgMTBzNC40NzggMTAgMTAgMTBjLjkzNCAwIDEuODMzLS4xMzggMi42OS0uMzc3YTIuNSAyLjUgMCAwMDQuOC0uOTc5YzAtLjU2My0uMTkyLTEuMDc3LS41MDYtMS40OTQuMDU3LS4wNTUuMTEzLS4xMTEuMTY4LS4xNjguNDIuMzIxLjkzOS41MTggMS41MDguNTE4YTIuNSAyLjUgMCAwMC45NjMtNC44MDdjLjAyMS0uMDc0LjAzOC0uMTUuMDU4LS4yMjUuMTA1LjAxMy4yMS4wMzIuMzE5LjAzMiIgZmlsbD0iIzQ0RDg2MCIvPjxwYXRoIGQ9Ik02MyA1NS41YTIuNSAyLjUgMCAwMS0yLjUtMi41YzAtNC4xMzYtMy4zNjQtNy41LTcuNS03LjVzLTcuNSAzLjM2NC03LjUgNy41YTIuNSAyLjUgMCAxMS01IDBjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNVM2NS41IDQ2LjEwNyA2NS41IDUzYTIuNSAyLjUgMCAwMS0yLjUgMi41IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTEwMyAxODNoNjBjMTEuMDQ2IDAgMjAtOC45NTQgMjAtMjBWOTNoLTYwYy0xMS4wNDYgMC0yMCA4Ljk1NC0yMCAyMHY3MHoiIGZpbGw9IiNGRkZGNTAiLz48cGF0aCBkPSJNMTY4LjAyIDEyNGgtNTAuMDRhMSAxIDAgMTEwLTJoNTAuMDRhMSAxIDAgMTEwIDJtMCAyMGgtNTAuMDRhMSAxIDAgMTEwLTJoNTAuMDRhMSAxIDAgMTEwIDJtMCAyMGgtNTAuMDRhMSAxIDAgMTEwLTJoNTAuMDRhMSAxIDAgMTEwIDJtMC00OS44MTRoLTUwLjA0YTEgMSAwIDExMC0yaDUwLjA0YTEgMSAwIDExMCAybTAgMTkuODE0aC01MC4wNGExIDEgMCAxMTAtMmg1MC4wNGExIDEgMCAxMTAgMm0wIDIwaC01MC4wNGExIDEgMCAxMTAtMmg1MC4wNGExIDEgMCAxMTAgMk0xODMgNjEuNjExYy0uMDEyIDAtLjAyMi0uMDA2LS4wMzQtLjAwNS0zLjA5LjEwNS00LjU1MiAzLjE5Ni01Ljg0MiA1LjkyMy0xLjM0NiAyLjg1LTIuMzg3IDQuNzAzLTQuMDkzIDQuNjQ3LTEuODg5LS4wNjgtMi45NjktMi4yMDItNC4xMTMtNC40Ni0xLjMxNC0yLjU5NC0yLjgxNC01LjUzNi01Ljk2My01LjQyNi0zLjA0Ni4xMDQtNC41MTMgMi43OTQtNS44MDcgNS4xNjctMS4zNzcgMi41MjgtMi4zMTQgNC4wNjUtNC4xMjEgMy45OTQtMS45MjctLjA3LTIuOTUxLTEuODA1LTQuMTM2LTMuODEzLTEuMzIxLTIuMjM2LTIuODQ4LTQuNzUtNS45MzYtNC42NjQtMi45OTQuMTAzLTQuNDY1IDIuMzg1LTUuNzYzIDQuNC0xLjM3MyAyLjEzLTIuMzM1IDMuNDI4LTQuMTY1IDMuMzUxLTEuOTczLS4wNy0yLjk5Mi0xLjUxLTQuMTcxLTMuMTc3LTEuMzI0LTEuODczLTIuODE2LTMuOTkzLTUuODk1LTMuODktMi45MjguMS00LjM5OSAxLjk3LTUuNjk2IDMuNjE4LTEuMjMyIDEuNTY0LTIuMTk0IDIuODAyLTQuMjI5IDIuNzI0YTEgMSAwIDAwLS4wNzIgMmMzLjAxNy4xMDEgNC41NDUtMS44IDUuODcyLTMuNDg3IDEuMTc3LTEuNDk2IDIuMTkzLTIuNzg3IDQuMTkzLTIuODU1IDEuOTI2LS4wODIgMi44MjkgMS4xMTUgNC4xOTUgMy4wNDUgMS4yOTcgMS44MzQgMi43NjkgMy45MTQgNS43MzEgNC4wMjEgMy4xMDMuMTA0IDQuNTk2LTIuMjE1IDUuOTE4LTQuMjY3IDEuMTgyLTEuODM0IDIuMjAyLTMuNDE3IDQuMTUtMy40ODQgMS43OTMtLjA2NyAyLjc2OSAxLjM1IDQuMTQ1IDMuNjgxIDEuMjk3IDIuMTk3IDIuNzY2IDQuNjg2IDUuNzg3IDQuNzk2IDMuMTI1LjEwOCA0LjYzNC0yLjYyIDUuOTQ5LTUuMDM1IDEuMTM5LTIuMDg4IDIuMjE0LTQuMDYgNC4xMTktNC4xMjYgMS43OTMtLjA0MiAyLjcyOCAxLjU5NSA0LjExMSA0LjMzIDEuMjkyIDIuNTUzIDIuNzU3IDUuNDQ1IDUuODI1IDUuNTU2bC4xNjkuMDAzYzMuMDY0IDAgNC41MTgtMy4wNzUgNS44MDUtNS43OTQgMS4xMzktMi40MSAyLjIxNy00LjY4IDQuMDY3LTQuNzczdi0yeiIgZmlsbD0iIzAwMCIvPjxwYXRoIGZpbGw9IiMzRUNDNUYiIGQ9Ik04MyAxODNoNDB2LTQwSDgzeiIvPjxwYXRoIGQ9Ik0xNDMgMTU4Yy0uMjE5IDAtLjQyOC4wMzctLjYzOS4wNjQtLjAzOC0uMTUtLjA3NC0uMzAxLS4xMTYtLjQ1MUE1IDUgMCAwMDE0MC4zMiAxNDhhNC45NiA0Ljk2IDAgMDAtMy4wMTYgMS4wMzYgMjYuNTMxIDI2LjUzMSAwIDAwLS4zMzUtLjMzNiA0Ljk1NSA0Ljk1NSAwIDAwMS4wMTEtMi45ODcgNSA1IDAgMDAtOS41OTktMS45NTljLS4xNDgtLjA0Mi0uMjk3LS4wNzctLjQ0NS0uMTE1LjAyNy0uMjExLjA2NC0uNDIuMDY0LS42MzlhNSA1IDAgMDAtNS01IDUgNSAwIDAwLTUgNWMwIC4yMTkuMDM3LjQyOC4wNjQuNjM5LS4xNDguMDM4LS4yOTcuMDczLS40NDUuMTE1YTQuOTk4IDQuOTk4IDAgMDAtOS41OTkgMS45NTljMCAxLjEyNS4zODQgMi4xNTEgMS4wMTEgMi45ODctMy43MTcgMy42MzItNi4wMzEgOC42OTMtNi4wMzEgMTQuMyAwIDExLjA0NiA4Ljk1NCAyMCAyMCAyMCA5LjMzOSAwIDE3LjE2LTYuNDEgMTkuMzYxLTE1LjA2NC4yMTEuMDI3LjQyLjA2NC42MzkuMDY0YTUgNSAwIDAwNS01IDUgNSAwIDAwLTUtNSIgZmlsbD0iIzQ0RDg2MCIvPjxwYXRoIGZpbGw9IiMzRUNDNUYiIGQ9Ik04MyAxMjNoNDB2LTIwSDgzeiIvPjxwYXRoIGQ9Ik0xMzMgMTE1LjVhMi41IDIuNSAwIDEwMC01Yy0uMTA5IDAtLjIxNC4wMTktLjMxOS4wMzItLjAyLS4wNzUtLjAzNy0uMTUtLjA1OC0uMjI1YTIuNTAxIDIuNTAxIDAgMDAtLjk2My00LjgwN2MtLjU2OSAwLTEuMDg4LjE5Ny0xLjUwOC41MThhNi42NTMgNi42NTMgMCAwMC0uMTY4LS4xNjhjLjMxNC0uNDE3LjUwNi0uOTMxLjUwNi0xLjQ5NGEyLjUgMi41IDAgMDAtNC44LS45NzlBOS45ODcgOS45ODcgMCAwMDEyMyAxMDNjLTUuNTIyIDAtMTAgNC40NzgtMTAgMTBzNC40NzggMTAgMTAgMTBjLjkzNCAwIDEuODMzLS4xMzggMi42OS0uMzc3YTIuNSAyLjUgMCAwMDQuOC0uOTc5YzAtLjU2My0uMTkyLTEuMDc3LS41MDYtMS40OTQuMDU3LS4wNTUuMTEzLS4xMTEuMTY4LS4xNjguNDIuMzIxLjkzOS41MTggMS41MDguNTE4YTIuNSAyLjUgMCAwMC45NjMtNC44MDdjLjAyMS0uMDc0LjAzOC0uMTUuMDU4LS4yMjUuMTA1LjAxMy4yMS4wMzIuMzE5LjAzMiIgZmlsbD0iIzQ0RDg2MCIvPjxwYXRoIGQ9Ik0xNDMgNDEuNzVjLS4xNiAwLS4zMy0uMDItLjQ5LS4wNWEyLjUyIDIuNTIgMCAwMS0uNDctLjE0Yy0uMTUtLjA2LS4yOS0uMTQtLjQzMS0uMjMtLjEzLS4wOS0uMjU5LS4yLS4zOC0uMzEtLjEwOS0uMTItLjIxOS0uMjQtLjMwOS0uMzhzLS4xNy0uMjgtLjIzMS0uNDNhMi42MTkgMi42MTkgMCAwMS0uMTg5LS45NmMwLS4xNi4wMi0uMzMuMDUtLjQ5LjAzLS4xNi4wOC0uMzEuMTM5LS40Ny4wNjEtLjE1LjE0MS0uMjkuMjMxLS40My4wOS0uMTMuMi0uMjYuMzA5LS4zOC4xMjEtLjExLjI1LS4yMi4zOC0uMzEuMTQxLS4wOS4yODEtLjE3LjQzMS0uMjMuMTQ5LS4wNi4zMS0uMTEuNDctLjE0LjMyLS4wNy42NS0uMDcuOTggMCAuMTU5LjAzLjMyLjA4LjQ3LjE0LjE0OS4wNi4yOS4xNC40My4yMy4xMy4wOS4yNTkuMi4zOC4zMS4xMS4xMi4yMi4yNS4zMS4zOC4wOS4xNC4xNy4yOC4yMy40My4wNi4xNi4xMS4zMS4xNC40Ny4wMjkuMTYuMDUuMzMuMDUuNDkgMCAuNjYtLjI3MSAxLjMxLS43MyAxLjc3LS4xMjEuMTEtLjI1LjIyLS4zOC4zMS0uMTQuMDktLjI4MS4xNy0uNDMuMjNhMi41NjUgMi41NjUgMCAwMS0uOTYuMTltMjAtMS4yNWMtLjY2IDAtMS4zLS4yNy0xLjc3MS0uNzNhMy44MDIgMy44MDIgMCAwMS0uMzA5LS4zOGMtLjA5LS4xNC0uMTctLjI4LS4yMzEtLjQzYTIuNjE5IDIuNjE5IDAgMDEtLjE4OS0uOTZjMC0uNjYuMjctMS4zLjcyOS0xLjc3LjEyMS0uMTEuMjUtLjIyLjM4LS4zMS4xNDEtLjA5LjI4MS0uMTcuNDMxLS4yMy4xNDktLjA2LjMxLS4xMS40Ny0uMTQuMzItLjA3LjY2LS4wNy45OCAwIC4xNTkuMDMuMzIuMDguNDcuMTQuMTQ5LjA2LjI5LjE0LjQzLjIzLjEzLjA5LjI1OS4yLjM4LjMxLjQ1OS40Ny43MyAxLjExLjczIDEuNzcgMCAuMTYtLjAyMS4zMy0uMDUuNDktLjAzLjE2LS4wOC4zMi0uMTQuNDctLjA3LjE1LS4xNC4yOS0uMjMuNDMtLjA5LjEzLS4yLjI2LS4zMS4zOC0uMTIxLjExLS4yNS4yMi0uMzguMzEtLjE0LjA5LS4yODEuMTctLjQzLjIzYTIuNTY1IDIuNTY1IDAgMDEtLjk2LjE5IiBmaWxsPSIjMDAwIi8+PC9nPjwvc3ZnPgo="},82716:(e,t,s)=>{s.d(t,{A:()=>o});let o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAvgAAACgCAIAAAD2Ao8HAAAbm0lEQVR42u3dCVhV553HcbtMp31m2uk807TTaTvtzDx52sk002xNpjZeRBY3UMANRRQXQBQXFFEWAREBt2B2Y6IhNXFp0hhj1GhMYtQY9Rwu62WVXS67F3BFWeZ/uYYgIAIiXO798nwen8v1Luec9z3v++M97zln2Nb6OgAAAIs0jE0AAAAIOgAAAAQdAAAAgg4AAABBBwAAgKADAABA0AEAAAQdAAAAgg4AAABBBwAAgKADAABA0AEAACDoAAAAgg4AAABBBwAAgKADAABA0AEAACDoAAAAEHQAAABBBwAAgKADAABA0AEAACDoAEAXNhrKwiq0q/Vn5N/NtZVsEAAEHQBD25baquCyr+blveWUFqxRZ7cZqc6Zlrk5sjKNTQSAoANgKImvr42oTF1Q+NdJuuiRiXPb55sObFQvv8L32GIACDoAzN366rylJYfcs+Ltkvy6CTedkXUAEHQAmOm0m8DSE7NzXxubsrxX4abDuE5kZTobEwBBB4AZTLupqw4tP++dt2tCelhvM83/bLV7cu+Ezs+7Z25hwwIg6AAYNJFVuoVFf5ucEWubOL9vIzfPnvUcNmzYPz7yL10N6szdZChjIwMg6AAYODE1BQEXP56R/byDdmGfj0y197v1mv99bXSX/7VS/wUbHABBB0C/8S860DlebDSUBelPeeW+Pi41sM+B5vcv2f/gNz96/K3xPX/L7NztlAgAgg6A+xKk/2JpyWF5EFJ2zpQwJO48V3cprCLRJ3+3S3q4jep1/yM3v103Yth3vnW3wZsujU1ZQekAIOgA6LWIylRJM1vqquMMJaYcMzv3tbl5O9tChm2id78cmeowI6fnL16QGRVYfCC+vpbCAkDQAXBvEhqeqzeYHo9OXiZhYnJGzNKSw+1P6u73cNNbvplr95YfKW+obmlp+ez6NUoNAEEHQI9SzrjUQPukhf5FByKrdO1Pbhr0cCO8MyN2lx8qa6hqafeTe/MmBQeAoAPg3uIMJQ/0sFTfzM8If6fsI31DZUtXPzeam/0/OvhcrYHiA0DQAdBt0LlUYibhRszLCN9VdvDijYqWbn/S09N/9+c/b67iruYACDoA7pJvXNLDRycvG528ZNDzzZyMsL+UfVhyo7zLWKPVanNzc9s/Ex0dHffeuxQiAIIOgK61nTE+mPlGF/aW/kDxjbJuBm8CAwPd3d3t7e23bt3a9qSdnV1qRQWFCICgA+Cuc5AnpIUOSr6ZrQtJ0H9QdF3fcq+f+vr6Z599Vh40NjZ6enrGxsbK4+vXrw8fPryxufklyhEAQQfA3QSUHOs+kYw45/nIZtv/Cnxa/PED1/vMN7N0wW/q9xdeL+0y0xgMBkdHx6eeemrevHkSZUxP7tmzJyYmxvS4qanJx8dnxowZzs7O27Ztk2f2X71KIQIg6ADoaEtdtdeFHd1fHefRlxy+/8sfDmv385DDb/582qNvU4yTL2d1P3gTFBS0Y8cOefD222+PGDGivLy8ubl53LhxOTk57V+mqqpWqzU9Tmy4QVECIOgA6GhR4f7uo8ljCeO+/f3vSLj50WM//fWCx/7N/b+/++O/l19//MzP+zCQc7Xpevuwkpyc7OnpOWfOnPz8/Nuni9+48cQTTzQ1NZl+PXPmzJNPPvnUU08FBAR0k42qGhspSgAEHQAdravOHpMS0E06+afHfyax5ldzH2175umPJn3vJz+QJx992aFXQefL2qQ70klV1R/+8IeTJ09+/vnnTz/9dEJCgqScqKiotkNUbQeqrl692v0g0JXGa1EViZsM5RQoAIIOgI5Hr3wL9nYZTZ75eIoEmu/+6HsdbkH1cNhwef4/ljzZ85Rjk+jV0HyzfTpZvnz5u+++a3p87dq1wMBAyT1+fn4Sd+45N/la042Uy9n7Kj5el7/NI32VfLh8xYrSzyhNAAQdAHeIr6/1yH6xy3Tyxw9cJdD8w8P/3Pm/Ht/lNOKcZ69GdG40NbQllTfeeMPW1ralxz/y3vQrue9VHFtfsH2WLnhk4pzOn++Z+wqlCYCgA+AOdxvOEcNPTP/W3337h7//Sb+cTK7UpZtSy82bN+Pi4mpqarpJNg3NN3VXLuyvPB5b+IaXLtS2q2TTwejkZZQmAIIOgDssKNjXTXp4Yo/zM4cm99ddxzscvWr/c7P5VtbVggNVn20o3Dk3Y82oxN7dSXRSimdMwYydtccpUAAEHQB3iKzS+eTvHoArBC7Mis6+WmBKNo3NjTnXig5Wndhc9Ob8jIhRifN6+2ljtLOCc2e8VzG18LpbS4uLOHN5FaUJgKAD4A6bDOUu6eEDdkFkt9RlU1KX22vn9+G9tursRVkeO0vd0y5PutXsYso3bSoaplGaAAg6AO4wN2+n+dy3vEue6TOfL57+pWHK1caO4aaDnZdzQqvO+Vx8K77+EiULgKADoC6w9MQora+5hRuX5Fnr8qcfqZ5a1eDafbhp75UK3zHZC+yzvOYVv7as7CCFC4CgA6Auvu7SspKjgx5uHLWzVubM2Fc+Le/apJ6Hm/ZO1k+RlGPilLOUkgVA0AFQt746zzF5yWDlm6mps7ZfdE+qn3yzybVv+aZNfaOrw9dBZ3S298zCLRQuAIIOYO1m524flIgzIdnzWM2U5maX+8w37S0qnNk2qDMtfz2FC4CgA1i7yMo0N906G3XuQKacGWkzKxpc+zHi3J6PXOneFnRmFG6kcAEQdAAYBelPDVjKGaOdVXrDreP54bfc9tS4NzTfO/1UVY3dt++P8+f/2t39Fx3+K/nqZFPKcciay4gOAIIOAKM1FUm2ib27tk2kOuOEMmV071POaHVWZaprS4Mxl9TcdDtaMyUk32NJwUyv/FkSUF6qmH6odlrncHP9uvMnnwxftephR8eHpk37xfbtjxUUOHR+2c1m1w9Tpi3WzXS5sJpiBUDQAaxcremB14UdvQor49VZlxS3FsWlSHHzVGf26r371anyxvpE18C0GfLryJTZbQebbg/GZHvVNhrHdZqbJ2q1IzdseMTZ+V+dnH4WF/eIqo6UJ7sb77np0qi6XkmcEl28nfIFQNABrNrpwncSqnPkwQbDxfl5uyakhfYwrBxSjGHF5KriGq7O6OEbfRSPpq/fWKW4zkz07JByxLis2XNPu0zz+JWDw0NBQQ8fOzb8+nXnuyWb2trxdzxTcvvDryR57azJbb+yr18qosQBgg4AK1KZurg0fWXbuI5/0YemODJd9ewmrCxVPdpSTps9yrSR6qx73sMhV5nU/l01itvcjFmds874dM+SqnHfxJeGO08jrx9/4MAzixf/p739Q76+v/nmvxpdWrTffHhtsndbuNlmKNWnB1LiAEEHgLXYUZNnCgRfFO6TX1eUfmaKI7Hq9Fuqy4uKe5dhxV6dXdJ60KqzRHXyhG4T0jbFvfO7DKqrd0bHcZ2AYs9bLV/PSja4tCS6NFZMOH16RETEb8eO/amr68+ff/7RjAy7jgM8+o4fXp2y6FVDqaxdcu6L8uubrcNXAAg6ACzfiaJ3TWngljo1oTrbt2CvZJG/KNNMTzYrLlFdHZB6W53WZcoxqVDcfO8yZWea6nlDce3yXXWq2wLdHVnHNXf29dbTr/LTHG6dm2hansMJf5Ksc+vWhK4PYzW5tCR38eFl6Sv2VGibWsOZrDLlDhB0AFiFYl1wWxrQpwe+WFuRnL6qfUS4pbqsUD3ahxUvdeatu6cck5uK6yZleuegc16d3M27Lquui3S3r/XnnD17x95nvLz+3WPKr+pPOd3xSn0Xp5ofOvR/xscVd/3wxq+/ukgXQrkDBB0Alu9Vg77pziNQV5K8OkeEa4qrz9cjNDbq7Iw7Z9h047Ayxb5dylmnTr/nW64orssT3e33jh5/yHnnm4+XFo9pSe/qlSXGU82PHRseFPSwg8ND7u6/SEh4whh0Uu+9VI3qpFcMZZQ+QNABYOEOlR7rYWQxqK4zWrPOCz0IK+1lq5Omtk5PdlI95UN68pZG+fdy61BNs0tL9l1fdnT7nzZseCQxsd2p5jU9XSpZcUofIOgAsHBJF17ueWQpU9z8VI9rimuvgo5x8o3iukL1OKJO7cW7tC4t9S4tBfd6WV5rGGo7hpXe089Pzn2R0gcIOgAsXFn6il5FlqZeRpz7eWNzD1+ZY8w6dXXjv/pY0/MPL09bRukDBB0AluzFuupGdVJLX7OL+Uh7b5TH9F+Wfjam52+RFZfVpw4ABB0AFmtfhWoBKee21F6/RVafOgAQdABYrJOF+ywn6PSe6QKJAAg6ACxTTma0NQed7KxY6gBA0AFgsS6lLLDmoGNI8aUOAAQdAJaqtrHbixRbvEZ10vP1BmoCQNABYIF21ORbc8ox2VGTR00ACDoALNB75WcJOrIRqAkAQQeABfqk5CBBRzYCNQEg6ACwQOfzdhB0zuXtoCYABB0AFigrK46gk5W9gZoAEHQAWKDCjDUEnSJdKDUBIOgAsECl6YEEHX16IDUBIOgAsECVqYsJOlWp/tQEgKADwAIZUnwJOrXJPtQEgKADwHzF11VtMZRuMRRtupS3sTozrjotrkobU3F+fcWZ9eUn1umPR+mPRJZ+GFHyfnjJvjXFb68pTAgtfD2k4NV6dSpB53LiNNkask1ky8j2ka0k20q2mGw32XqyDWVLyvaUrSrbVrawbGfZ2rLNqXgAQQfAXaJJ/SXpLKXX3FCti61U11eclm51belHkSV/Cy/ebQwiBa8F57+4Om9zUG5MYE7EiqzggMzlS3X+S3Te/mmzF6a6+yW7+SaN90m0n69q+uyGMpGgIxuhzxtQtr+UgpSFlIiUi5SOlJGUlJSXlJqUnZSglKOUppSplKyUr5SyMUJVnJZyl9JvTU6lUh/YKQCCDmBuYaV2i0G/qebChurUmMqz0WWfRpZ+GF6yL6wwIaRg26q8+NaMEr48c+XSjMVL0uf7p870S5ks/aJ3ot39pJN+1GT1KUfIRjCHspBaYcxMKZOlnkhtkTojNUfqj9QiqUtSo6ReSe2SOiY1Teqb1Dqpe1IDpR6yMwIEHaBHB4A2XSqMq05bX3EmSn8s8uIH4cXvhBZuX533vHQ2K7LDAjIDluh8jHkl2c1HO8ZMwsp9jeiojOi4yEYY6uUotVHqpDEh6XyklkpdbR1Mel5qr9RhqclSn6VWS92WGs5BNxB02AqwsEGX0o3VWbGVanTZibWlH4UX75HWX/5EDsyNMo616PwWpXr6Jbve5zGgIapenUDQkY1gbeUutV3qvNR8qf/GcaPcKNkjWlPRHtlHZE+R/UX2mtZjagwXgaADDJLnjAMwebGVWmmXIy8eWFO0Kzj/ZflDdnnW6tb44rFA6+St2lhhfOm5aoKO4lJtfUGnFwfUVBvZj2RvMkairNWyf8leJvua7HGteUgr++BzDBGBoAP0nmGzoTCuKnld2ecRF/eHFe1cnfdcYE5EQGbA4vR5C1Om+Ggd6YTun151JujIRqAm3PexM0fZK2XflD1U9lPZW2WflT1X9l/Zi2Vflj2aZg0EHViXLYaSDdWp0eVfGAdjChOC87dK+7g0Y+mitFkLkpwZiRkYhQQdxaWQoDMwI0NJzrJ3yz4ue7rs77LXG4eFyr+QdkBaA5pEEHQwFKNMaVx1WnTZiYiS90MLtwflxi3PXCl/8y1IdvFWbWn6zUGmOp6gIxuBmmAGSchWWgZpH6SVkLZCWgxpN6T1kDZEWhKaUxB0MFinKdVsrMmJqTwbVXoorGjX6vz4FdnhS3ULF6a6W+fc3iHnS3UcQUc2AjXB7GdPO0irIm2LtDDSzkhrI22OtDzS/kgrRFMMgg7u12ZDSWylNkp/dE3R26vy4ldkhSxJn++XNJH2d6j7UBlN0JGNQE0Y0qQtkhZJ2iVpnaSNkpZK2qvNHA4DQQedhmeqN1ZnRpefiih5P6Rg28qcdcYZM6nTGZuxYG+qDgQd2QjUBEs9i15aMGnHpDWTNs14LKz8lLRy0tbR4BN0YOE2XcqPqfgq4uL+kIJXV+ZELtX5+SW70Sxaoc2qHUFHNgI1weoGgZLdpN2T1k/aQGkJpT2UVpGugaCDoTgdWB9XpY3SHwkrTAi6sGFZZoD8fWM+9x/AoAtWRxJ0ZCNQE2C6C4e0kNJOSmspbaa0nNJ+SitKV0LQgbmc4hRbqay9eED+QAnMCV+cPt83iSmWuOepLprr1n1fT1l9b2oCuiVtqbSo0q5K6yptrLS0nAhG0MEDviJwbbn8nbG29KPQwu2BOZFLdD4LtE40RuAMc84tx4CRVlfaXmmBpR2W1ljaZGmZ6Z4IOuj9BOH62o01OdFln64pTDDODtb5LeBcJ/SrI6pVn3glq08dQL+ln6SJrVN/1kmLLe228ex3bhZG0EGHy9LEVaet1R8OLXgtMHvN4jQvznjCg/aKam/NQUdWnzqAB3rml7Tk0p5Lqy5tu7TwXPiHoGNVR6AqYiuViIv7V+e9sDxz5aJU9/lMisSAW2nd85FXstNhoI2U1l7afGn5pf2XXkD6AjpEgo5lMGyozpBEH1Lw6vKsVQuNsYYdHmahXLHSO17JilP6MAfSI0i/YJzsrD8sPQX3QCXoDJXToIrWl58IK3prZe5a//S5HISC2TpqrdN0jjJBB+Z6wEt6Dek7pAeRfkR6E7pUgo6ZDNikth6H2rwsw983idOgMGRsUEdZZ9DZwKUCMWROcXeSnkX6F+llpK9hyIegM0A3TIitTAwv+WtQbuyS9PkM2GBIX03nsvVdTecyV9DBUB7ykX5Heh/pg6Qn4qYWBJ1+mzscU3EuvPidwNwo/7TZ3qotOxsshhXexpyblsOC/laxlV5J+ibpoaSfYnYzQafnYzaXjGM2xXsCcyIXpXp4qzbsTrBUG63v6JWsMuUOC809NtJnSc8l/VfreM8lOnSCzjc21uSsLT24Km/LEp2PN0ejYE1Krencq1LOt4L15J5Ee+nRpF+T3k36OIKO1QWdLYbS6LIToQWvBWStYAYxrNk7ioP1BB1ZWUocVjuvWfo76fWk77POm3YNs5Zhm4sHgnJjFqV6UOkBE3/V5oZ1TEmW1fTnSDTQSvpB6Q2lT7SewR7LDDrx9bVxVclrinevyA7zS3alZgNdOq6OsYagI6tJWQOdSf8ovaT0ldJjWvBduoZZ0FTiqvUVZ0ILXw/IDPDVjqUGA/cUoI60+EEdWcEAbvsA3PMIl3as9J7Sh0pPKv0pQceMzpOKqTwbUrBtqW6hdyKnVAC9dtDSB3UOMpwD9Ho68yjpVaVvlR7WAs7hGjY0D0tpwwoTJHv6aLmgO3C/M3Us+OKBl5mdA9wf6Welt5U+V3reIXp4a8gEnQ3VuvDi3cuzVvsmjafmAf1ot+JoqUFHVo3yBfrvBK7x0gtLXyw9MkGnv04F10fpj6zMWceEYuABDlOrmhzVyfJSjqwU93wAHtxEZumdpY+Wnpqg02txVSmhRTuM02646wIwIEJU2wbLSjmyOiE0IMBA/KVkK/219NrSdxN0ur+xVHmU/uOVOdEM3gCDYq9qUQewZHUoU2AwhnmipTeXPp2g882l/MKKdi3VLWLwBhj0A1hpynjLSDmpyngOWgGDPczjL/27OVyWcHCCTlx1Wkjhdv+0OdQGwHwsVm306pC/AZaswmLOtALM59TOtDnS40u/bxVBJ7ZSCc57YVGqOwUPmKdg1fbKUD7bXBY+mOFhwCxJ7y8ZQJKApQWd+Pra9RWngy5sZPINMCRsVkfdGpopRxZbFp4SBMx/Ko+kAskGA3NhnmEP8uQp7er8ePINMORsVe1uDrVxHVlgWWzKDhhaiUdygqSFIRZ0NtbkhBZu5z7hwJC2RbFrGFInk8sCU2rAkD2q5SHJ4QHNXB7Wfxf3K1lTvHuJzocCAyzDJtXu+lAY15GF3MRYDmARJEVIlpBEYVZBx7BOfzwgK5DzwwHLE6bamvl5WLJ4YTQ+gGWRRCG5QtKFZIzBDDqbLuWFFGzzS3ajSABLHlJWbRKVceaZcmTBFnEmOWDJk3jcJGlI3hjgoGOI0h8LyFzuTfsCWI19iuMN1YwOY8nC7OOGnYC1DPDYSOqQ7NG3AZ5hvRrCCc5/hbOoAOu0Wh1pJpdOlsWQhaFEACs8S0tySG8HeHoUdGKrklbkhDMLB8B2xb5GmTBYEUe+WhaAUgCsfAaPZBJJJv0TdNaVfbY0YzGbFUAbX1WzS3GoHti4I18nX+rL9gfwNcknklL6GHTi66ojSt7zT53JdgTQxue8xu+sxv8rzZIvNctPaf76pcPFs04POuKUnnV697RD0EnNslPG75Vvl2WQJaE4AAjJKpJYJLf0NOg8V1sZVrRzQdJEth1gpcPCijFJSKRYcVKz6jNN6HFNxFFN1MeamMOamEMjOtt+dORXX4yuP9fPAzzygfKx8uFdfqnRYeNSybLJEspyytLKMsuSy/JTiIC1kdwi6UUyTHdBR9LQmuK3iTiA2QpRbcMfxFQ5xThMIkEh5FPN2qN3DTT39OYx208/d7zw5fiG8308P0veKG+XD5GP6tsymAKQrIWsi6yRrNd8cg9gTXFHkkyH0Z1hrffdvBRR8i5XxAHMbSrMWnXUTtXhuDomR3UyXaRYfu23kZvzmoDTmrDjEg40fU8VXYk9rHnj6Mj3j9ud+Nwx9dTYkjNOlV85156bcO3cxEbFRcgD+VWelP+SF8jL5MXyltjD/bwkrYzrKGvqzdEuwFpOznKTVCPZ5nbQWXvxwMKUaWwXYNAtUm1ilVHvKA6nlLFFilPnW4g3Ky4B/XT9qqWnNeuOPIhUYb5kfWWtqWaAlZBsIwknvr52GNsCGPxpMapmp+pQod5jmku+6txf3xhtZSnHRNa6JxtnrTrqA3V0juokcbMbqeq4vaojN6AAzHuq8iyCDmBGYtRRx9UxdXc5c3u/Orq/vogRnXsf7Fdt4lW7T5Wx7U+kb2i9XOE+xTGcfAMMEQQdwBwHeLYodqeVsVfvvOvCWnVUf37LA5ujY2b6YY5OhDpqj+oohbKAW98ABB0A/XYGgWrzsmqvqOMaFBeDMuFBfVE/nXVlLjjrCgBBBxhy85SjFdv7eftmdVQPLyvc5XV0jMe5zC0AHTYuFdfRAUDQAazRMnXkS6r9UXVMvuLUqEw8qI65/8/0Pa/xO3f7ysgBpzWBJzUrT2hWf64J/nRE6PERa45rwj/RRBzTRLZeYHDdx8YgEt1q/WFjLhGmE8hjWx8Led70AnmlvF7eJe+VT5DPkU+Tz5RPls+Xb5Hvkm+8fWXkc8YloYgBEHQAa7RQtTmtjG1uN7knW3HyZssAIOgAsBhbVbt81dl4LwV1QqA6kg0CgKADwOLijmK/SbVjOwAg6AAAABB0AAAACDoAAAAEHQAAAIIOAAAAQQcAAICgAwAACDoAAAAEHQAAAIIOAAAAQQcAAICgAwAAQNABAADW4v8BIMkHbXsCeUgAAAAASUVORK5CYII="},27730:(e,t,s)=>{s.d(t,{A:()=>o});let o=s.p+"assets/images/slash-introducing-411a16dd05086935b8e9ddae38ae9b45.svg"},29302:(e,t,s)=>{s.d(t,{A:()=>o});let o=s.p+"assets/images/slash-up-and-running-1c1f83f3064dcd56be41632c51be62ac.png"},30632:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>M,default:()=>l,frontMatter:()=>n,metadata:()=>o,toc:()=>r});var o=s(42242),i=s(62540),u=s(43023);let n={title:"Introducing Docusaurus",authors:"JMarcey",tags:["documentation","blog","docusaurus"]},M=void 0,a={authorsImageUrls:[void 0]},r=[{value:"The Birth of docusaurus",id:"the-birth-of-docusaurus",level:2},{value:"Getting Up and Running",id:"getting-up-and-running",level:2},{value:"How does Docusaurus work?",id:"how-does-docusaurus-work",level:2},{value:"Community",id:"community",level:2},{value:"Acknowledgements",id:"acknowledgements",level:2},{value:"Resources",id:"resources",level:2}];function c(e){let t={a:"a",code:"code",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,u.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{src:s(27730).A+"",width:"760",height:"160"})}),"\n",(0,i.jsxs)(t.p,{children:["We are very happy to introduce ",(0,i.jsx)(t.a,{href:"https://github.com/facebook/docusaurus",children:"Docusaurus"})," to help you manage one or many open source websites."]}),"\n",(0,i.jsxs)(t.p,{children:["We created ",(0,i.jsx)(t.a,{href:"https://docusaurus.io",children:"Docusaurus"})," for the following reasons:"]}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsx)(t.li,{children:"To put the focus on writing good documentation instead of worrying about the infrastructure of a website."}),"\n",(0,i.jsx)(t.li,{children:"To provide features that many of our open source websites need like blog support, search and versioning."}),"\n",(0,i.jsx)(t.li,{children:"To make it easy to push updates, new features, and bug fixes to everyone all at once."}),"\n",(0,i.jsx)(t.li,{children:"And, finally, to provide a consistent look and feel across all of our open source projects."}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["Docusaurus is a tool designed to make it easy for teams to publish documentation websites without having to worry about the infrastructure and design details. At its core, all a user has to provide are documentation files written in Markdown, customization of a provided home page written in React, and a few configuration modifications. Docusaurus handles the rest by providing default styles, site formatting, and simple document navigation. Getting started is easy, as users can ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/installation.html",children:"install"})," it using ",(0,i.jsx)(t.code,{children:"npm"})," or ",(0,i.jsx)(t.code,{children:"yarn"})," via a simple initialization script that ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/site-preparation.html",children:"creates a working example website out of the box"}),"."]}),"\n",(0,i.jsxs)(t.p,{children:["Docusaurus also provides core website and documentation features out-of-the-box including ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/blog.html",children:"blog support"}),", ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/translation.html",children:"internationalization"}),", ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/search.html",children:"search"}),", and ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/versioning.html",children:"versioning"}),". While some projects may not require any of these features, enabling them is generally a matter of updating configuration options instead of having to add the infrastructure from the ground up. As more features get added to Docusaurus, users just can easily update to the latest version. This can be done by simply running npm or yarn update and updating configuration options. Users or teams will no longer need to manually rework their entire website infrastructure each time a new feature gets added."]}),"\n",(0,i.jsx)(t.h2,{id:"the-birth-of-docusaurus",children:"The Birth of docusaurus"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{src:s(82716).A+"",width:"760",height:"160"})}),"\n",(0,i.jsx)(t.p,{children:"When Facebook first started their open source program, many teams implemented a custom website for each of their open source projects. This approach presented challenges when the open source program team was asked to help the project teams improve their documentation. Since each site was unique, adding basic infrastructure such as a blog, consistent navigation, search, etc. became challenging undertakings."}),"\n",(0,i.jsx)(t.p,{children:"The open source team tried to help mitigate this problem by coming up with a standard template, based on Jekyll, that could be used as a starting point for a project website. We asked our new projects to manually copy our template source to their repo, write their docs, and publish. This template approach was adopted by most of open source projects launched; some existing projects even converted their custom website implementations to the new template as well."}),"\n",(0,i.jsx)(t.p,{children:'The problem with the "copy the template to your repo" approach is that, even though the platform is consistent, pushing updates becomes unmaintainable across an entire suite of projects already using the template. This is because we lost control of the template after a project copied it to their repo. Projects were free to modify the template as desired and apply their own project-specific features to it. So while projects share the same site generation platform, they have now diverted enough where they cannot take advantage of the new features we have added to the template over time. There was no easy way we could ask all current projects to "copy" a new version of the template since it might break their existing site or remove features that they have added on their own. Instead, we would have to apply the updates manually to each project one-by-one. This became very problematic when projects started asking for our team for internationalization support within the template, requiring low-level changes to how the template was structured and generated.'}),"\n",(0,i.jsx)(t.p,{children:"So we started thinking about what we could do to help mitigate the challenge of keeping sites updated and consistent across our entire portfolio. We also wanted multiple projects to share the same site generation software. We wanted them to start out with the same template, and yet have the flexibility to customize and adapt their site theme to suit their needs. They should be able to extend and customize their site, but when we update the underlying infrastructure with fixes and features, the project should be able update simply and without any breaking changes."}),"\n",(0,i.jsx)(t.p,{children:"Docusaurus was born!"}),"\n",(0,i.jsx)(t.p,{children:"At Facebook, Docusaurus allows us to quickly get different projects up and running with documentation websites, especially for teams who don't have much experience with web development or primarily want a basic site to showcase their project. Docusaurus already supports sites needing more advanced features like internationalization for Jest and versioning for React Native. As different projects request new features for their sites, they are added to Docusaurus and simultaneously provided to all projects! All together, this ends up greatly reducing the work needed to maintain different sites for different projects. Our teams are able to focus on keeping their projects healthier by spending more time adding features, fixing bugs, and writing documentation."}),"\n",(0,i.jsx)(t.h2,{id:"getting-up-and-running",children:"Getting Up and Running"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{src:s(29302).A+"",width:"760",height:"160"})}),"\n",(0,i.jsxs)(t.p,{children:["At its core, we wanted sites running Docusaurus to be simple to use. With one ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/installation.html",children:"installation"})," command and some simple ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/site-preparation.html",children:"configuration"}),", you can actually have a default running website."]}),"\n",(0,i.jsxs)(t.p,{children:["When you run ",(0,i.jsx)(t.code,{children:"docusaurus-init"}),", you will see a structure similar to:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"root-of-repo\n\u251C\u2500\u2500 docs-examples-from-docusaurus\n\u2502 \u251C\u2500\u2500 doc1.md\n\u2502 \u251C\u2500\u2500 doc2.md\n\u2502 \u251C\u2500\u2500 doc3.md\n\u2502 \u251C\u2500\u2500 example-doc4.md\n\u2502 \u2514\u2500\u2500 example-doc5.md\n\u251C\u2500\u2500 website\n\u2502 \u251C\u2500\u2500 blog-examples-from-docusaurus\n\u2502 \u2502 \u251C\u2500\u2500 2016-03-11-blog-post.md\n\u2502 \u2502 \u2514\u2500\u2500 2017-04-10-blog-post-two.md\n\u2502 \u251C\u2500\u2500 core\n\u2502 \u2502 \u2514\u2500\u2500 Footer.js\n\u2502 \u251C\u2500\u2500 node_modules\n\u2502 \u251C\u2500\u2500 package.json\n\u2502 \u251C\u2500\u2500 pages\n\u2502 \u251C\u2500\u2500 sidebars.json\n\u2502 \u251C\u2500\u2500 siteConfig.js\n\u2502 \u2514\u2500\u2500 static\n"})}),"\n",(0,i.jsxs)(t.p,{children:["With the exception of node_modules and package.json, all the directories and files you see are where you customize and add content to your Docusaurus-based website. The docs folder is where you add your Markdown that represents your documentation; the blog folder is where you add your Markdown for your ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/blog.html",children:"blog posts"}),"; ",(0,i.jsx)(t.code,{children:"siteConfig.js"})," is where you make most of the ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/site-config.html",children:"customizations"})," for your site; ",(0,i.jsx)(t.code,{children:"sidebars.json"})," is where you maintain the layout and content of the ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/navigation.html",children:"sidebar"})," for your documentation; the ",(0,i.jsx)(t.code,{children:"pages"})," folder is where you add ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/custom-pages.html",children:"custom"})," pages for your site; the ",(0,i.jsx)(t.code,{children:"static"})," folder is where all of your static assets go (e.g., CSS stylesheets and images); and the ",(0,i.jsx)(t.code,{children:"core"})," folder is where you can customize core components of the site, in this case the footer."]}),"\n",(0,i.jsx)(t.h2,{id:"how-does-docusaurus-work",children:"How does Docusaurus work?"}),"\n",(0,i.jsxs)(t.p,{children:["Docusaurus is written primarily in JavaScript and ",(0,i.jsx)(t.a,{href:"https://facebook.github.io/react",children:"React"}),", replacing Jekyll which we used in the old template. We use ",(0,i.jsx)(t.a,{href:"https://github.com/jonschlinkert/remarkable",children:"Remarkable"})," for our Markdown rendering and ",(0,i.jsx)(t.a,{href:"https://highlightjs.org/",children:"highlight.js"})," for our code block syntax highlighting. The core of Docusaurus' functionality is in the ",(0,i.jsx)(t.a,{href:"https://github.com/facebookexperimental/Docusaurus/tree/master/lib",children:"lib directory"})," of the ",(0,i.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/",children:"Docusaurus repo"}),". The general structure looks like:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"root-of-Docusaurus\n\u251C\u2500\u2500 lib\n\u2502 \u251C\u2500\u2500 core\n\u2502 \u251C\u2500\u2500 server\n\u2502 \u2502 \u251C\u2500\u2500 generate.js\n\u2502 \u2502 \u251C\u2500\u2500 server.js\n\u2502 \u2502 \u2514\u2500\u2500 ...and more files\n\u2502 \u251C\u2500\u2500 static\n\u2502 \u251C\u2500\u2500 build-files.js\n\u2502 \u251C\u2500\u2500 copy-examples.js\n\u2502 \u251C\u2500\u2500 generate-feed.js\n\u2502 \u251C\u2500\u2500 publish-gh-pages.js\n\u2502 \u251C\u2500\u2500 rename-version.js\n\u2502 \u251C\u2500\u2500 start-server.js\n\u2502 \u251C\u2500\u2500 versions.js\n\u2502 \u2514\u2500\u2500 write-translations.js\n"})}),"\n",(0,i.jsxs)(t.p,{children:["The key files here are build-files.js and start-server.js. There are many similarities between these two files: ",(0,i.jsx)(t.code,{children:"build-files.js"})," is used to build the physical artifacts for serving by an external web server. ",(0,i.jsx)(t.code,{children:"start-server.js"})," is used to run the Docusaurus server and locally test your site. Both go through the following general process to take all of the Markdown and configuration to create a runnable website:"]}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["Process your website settings in ",(0,i.jsx)(t.code,{children:"siteConfig.js"})]}),"\n",(0,i.jsx)(t.li,{children:"Read the document metadata that exists in all the Markdown files in your docs directory."}),"\n",(0,i.jsx)(t.li,{children:"Create a table of contents for your documents based upon the IDs extracted from the metadata."}),"\n",(0,i.jsx)(t.li,{children:"Convert the Markdown to HTML, including doing link replacement."}),"\n",(0,i.jsx)(t.li,{children:"These files will go in a build/docs directory of the compiled site, and any translated versions will go into a language specific folder within the build/docs folder."}),"\n",(0,i.jsx)(t.li,{children:"Repeat 1-3 for blog posts."}),"\n",(0,i.jsx)(t.li,{children:"The blog file will go in a build/blog directory of the compiled site."}),"\n",(0,i.jsx)(t.li,{children:"Read the main.css file and concatenate any user-defined css into master css file that will be in the build/css directory of the compiled site."}),"\n",(0,i.jsx)(t.li,{children:"Copy images into an build/img directory of the compiled site."}),"\n",(0,i.jsx)(t.li,{children:"Take any custom pages that were added to the pages folder of the site and compile/copy those into the root build directory of the compiled site. Any translated versions will go into a language specific folder within build."}),"\n",(0,i.jsx)(t.li,{children:"Create CNAME and sitemap.xml files and add those to build."}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"Note that this process does not take into full account how translations or versioning works. The underlying details of those features will be saved for future blog posts."}),"\n",(0,i.jsx)(t.p,{children:"The final structure of your compiled site will look similar to:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"build\n\u251C\u2500\u2500 website\n\u2502 \u251C\u2500\u2500 CNAME\n\u2502 \u251C\u2500\u2500 blog\n\u2502 \u251C\u2500\u2500 css\n\u2502 \u251C\u2500\u2500 docs\n\u2502 \u251C\u2500\u2500 en\n\u2502 \u251C\u2500\u2500 help.html # custom page\n\u2502 \u251C\u2500\u2500 img\n\u2502 \u251C\u2500\u2500 index.html # landing page\n\u2502 \u251C\u2500\u2500 sitemap.xml\n\u2502 \u2514\u2500\u2500 users.html # custom page\n"})}),"\n",(0,i.jsx)(t.h2,{id:"community",children:"Community"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{src:s(18494).A+"",width:"200",height:"200"})}),"\n",(0,i.jsxs)(t.p,{children:["We welcome your ",(0,i.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/blob/master/CONTRIBUTING.md",children:"contributions"})," to Docusaurus, whether you want to use it for your own site, you want to ",(0,i.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/blob/master/CONTRIBUTING.md",children:"contribute"})," to the Docusaurus core or just have questions. Follow us on ",(0,i.jsx)(t.a,{href:"https://github.com/facebook/docusaurus",children:"GitHub"})," and ",(0,i.jsx)(t.a,{href:"https://x.com/docusaurus",children:"X)"}),"."]}),"\n",(0,i.jsx)(t.h2,{id:"acknowledgements",children:"Acknowledgements"}),"\n",(0,i.jsxs)(t.p,{children:["Docusaurus wouldn't exist without the work of the rest of the core Docusaurus team: ",(0,i.jsx)(t.a,{href:"http://x.com/ericnakagawa",children:"Eric Nakagawa"}),", ",(0,i.jsx)(t.a,{href:"https://x.com/hectorramos",children:"Hector Ramos"}),", ",(0,i.jsx)(t.a,{href:"https://x.com/EricVicenti",children:"Eric Vicenti"})," and ",(0,i.jsx)(t.a,{href:"https://github.com/deltice",children:"Frank Li"})," \u2014 a former intern at Facebook who implemented the core technology and features."]}),"\n",(0,i.jsxs)(t.p,{children:["Special thanks also goes out to our earliest ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/en/users.html",children:"adopters"})," of Docusaurus:"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://bucklescript.github.io/",children:"BuckleScript"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://fasttext.cc",children:"FastText"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://jestjs.io",children:"Jest"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"http://makeitopen.com",children:"Make It Open"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://prettier.io/",children:"Prettier"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://reasonml.github.io/reason-react/",children:"Reason-react"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://facebook.github.io/react-native/",children:"React Native"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://facebook.github.io/relay/",children:"Relay"})}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"Without their dedication to creating or migrating their websites over to the platform, we would have not have been in the position where we are today."}),"\n",(0,i.jsx)(t.h2,{id:"resources",children:"Resources"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io",children:"Read our documentation"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://x.com/docusaurus",children:"Follow our X feed"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/facebook/docusaurus",children:"Follow us on GitHub"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/about-slash.html",children:"About Slash, the Docusaurus mascot"})}),"\n"]})]})}function l(e={}){let{wrapper:t}={...(0,u.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},43023:(e,t,s)=>{s.d(t,{R:()=>n,x:()=>M});var o=s(63696);let i={},u=o.createContext(i);function n(e){let t=o.useContext(u);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function M(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:n(e.components),o.createElement(u.Provider,{value:t},e.children)}},42242:e=>{e.exports=JSON.parse('{"permalink":"/blog/2017/12/14/introducing-docusaurus","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2017/12-14-introducing-docusaurus.mdx","source":"@site/blog/2017/12-14-introducing-docusaurus.mdx","title":"Introducing Docusaurus","description":"We are very happy to introduce Docusaurus to help you manage one or many open source websites.","date":"2017-12-14T00:00:00.000Z","tags":[{"inline":false,"label":"Documentation","permalink":"/blog/tags/documentation"},{"inline":false,"label":"Blog","permalink":"/blog/tags/blog"},{"inline":false,"label":"Docusaurus","permalink":"/blog/tags/docusaurus"}],"readingTime":8.215,"hasTruncateMarker":true,"authors":[{"name":"Joel Marcey","title":"Developer Advocate at Meta","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{"x":"https://x.com/joelmarcey","github":"https://github.com/JoelMarcey"},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Introducing Docusaurus","authors":"JMarcey","tags":["documentation","blog","docusaurus"]},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"How I Converted Profilo to Docusaurus in Under 2 Hours","permalink":"/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[83162],{18494:(e,t,s)=>{s.d(t,{A:()=>o});let o="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgdmlld0JveD0iMCAwIDIwMCAyMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjRkZGIiBkPSJNOTkgNTJoODR2MzRIOTl6Ii8+PHBhdGggZD0iTTIzIDE2M2MtNy4zOTggMC0xMy44NDMtNC4wMjctMTcuMzAzLTEwQTE5Ljg4NiAxOS44ODYgMCAwMDMgMTYzYzAgMTEuMDQ2IDguOTU0IDIwIDIwIDIwaDIwdi0yMEgyM3oiIGZpbGw9IiMzRUNDNUYiLz48cGF0aCBkPSJNMTEyLjk4IDU3LjM3NkwxODMgNTNWNDNjMC0xMS4wNDYtOC45NTQtMjAtMjAtMjBINzNsLTIuNS00LjMzYy0xLjExMi0xLjkyNS0zLjg4OS0xLjkyNS01IDBMNjMgMjNsLTIuNS00LjMzYy0xLjExMS0xLjkyNS0zLjg4OS0xLjkyNS01IDBMNTMgMjNsLTIuNS00LjMzYy0xLjExMS0xLjkyNS0zLjg4OS0xLjkyNS01IDBMNDMgMjNjLS4wMjIgMC0uMDQyLjAwMy0uMDY1LjAwM2wtNC4xNDItNC4xNDFjLTEuNTctMS41NzEtNC4yNTItLjg1My00LjgyOCAxLjI5NGwtMS4zNjkgNS4xMDQtNS4xOTItMS4zOTJjLTIuMTQ4LS41NzUtNC4xMTEgMS4zODktMy41MzUgMy41MzZsMS4zOSA1LjE5My01LjEwMiAxLjM2N2MtMi4xNDguNTc2LTIuODY3IDMuMjU5LTEuMjk2IDQuODNsNC4xNDIgNC4xNDJjMCAuMDIxLS4wMDMuMDQyLS4wMDMuMDY0bC00LjMzIDIuNWMtMS45MjUgMS4xMTEtMS45MjUgMy44ODkgMCA1TDIzIDUzbC00LjMzIDIuNWMtMS45MjUgMS4xMTEtMS45MjUgMy44ODkgMCA1TDIzIDYzbC00LjMzIDIuNWMtMS45MjUgMS4xMTEtMS45MjUgMy44ODkgMCA1TDIzIDczbC00LjMzIDIuNWMtMS45MjUgMS4xMTEtMS45MjUgMy44ODkgMCA1TDIzIDgzbC00LjMzIDIuNWMtMS45MjUgMS4xMTEtMS45MjUgMy44ODkgMCA1TDIzIDkzbC00LjMzIDIuNWMtMS45MjUgMS4xMTEtMS45MjUgMy44ODkgMCA1TDIzIDEwM2wtNC4zMyAyLjVjLTEuOTI1IDEuMTExLTEuOTI1IDMuODg5IDAgNUwyMyAxMTNsLTQuMzMgMi41Yy0xLjkyNSAxLjExMS0xLjkyNSAzLjg4OSAwIDVMMjMgMTIzbC00LjMzIDIuNWMtMS45MjUgMS4xMTEtMS45MjUgMy44ODkgMCA1TDIzIDEzM2wtNC4zMyAyLjVjLTEuOTI1IDEuMTExLTEuOTI1IDMuODg5IDAgNUwyMyAxNDNsLTQuMzMgMi41Yy0xLjkyNSAxLjExMS0xLjkyNSAzLjg4OSAwIDVMMjMgMTUzbC00LjMzIDIuNWMtMS45MjUgMS4xMTEtMS45MjUgMy44ODkgMCA1TDIzIDE2M2MwIDExLjA0NiA4Ljk1NCAyMCAyMCAyMGgxMjBjMTEuMDQ2IDAgMjAtOC45NTQgMjAtMjBWODNsLTcwLjAyLTQuMzc2QTEwLjY0NSAxMC42NDUgMCAwMTEwMyA2OGMwLTUuNjIxIDQuMzctMTAuMjczIDkuOTgtMTAuNjI0IiBmaWxsPSIjM0VDQzVGIi8+PHBhdGggZmlsbD0iIzNFQ0M1RiIgZD0iTTE0MyAxODNoMzB2LTQwaC0zMHoiLz48cGF0aCBkPSJNMTkzIDE1OGMtLjIxOSAwLS40MjguMDM3LS42MzkuMDY0LS4wMzgtLjE1LS4wNzQtLjMwMS0uMTE2LS40NTFBNSA1IDAgMDAxOTAuMzIgMTQ4YTQuOTYgNC45NiAwIDAwLTMuMDE2IDEuMDM2IDI2LjUzMSAyNi41MzEgMCAwMC0uMzM1LS4zMzYgNC45NTUgNC45NTUgMCAwMDEuMDExLTIuOTg3IDUgNSAwIDAwLTkuNTk5LTEuOTU5Yy0uMTQ4LS4wNDItLjI5Ny0uMDc3LS40NDUtLjExNS4wMjctLjIxMS4wNjQtLjQyLjA2NC0uNjM5YTUgNSAwIDAwLTUtNSA1IDUgMCAwMC01IDVjMCAuMjE5LjAzNy40MjguMDY0LjYzOS0uMTQ4LjAzOC0uMjk3LjA3My0uNDQ1LjExNWE0Ljk5OCA0Ljk5OCAwIDAwLTkuNTk5IDEuOTU5YzAgMS4xMjUuMzg0IDIuMTUxIDEuMDExIDIuOTg3LTMuNzE3IDMuNjMyLTYuMDMxIDguNjkzLTYuMDMxIDE0LjMgMCAxMS4wNDYgOC45NTQgMjAgMjAgMjAgOS4zMzkgMCAxNy4xNi02LjQxIDE5LjM2MS0xNS4wNjQuMjExLjAyNy40Mi4wNjQuNjM5LjA2NGE1IDUgMCAwMDUtNSA1IDUgMCAwMC01LTUiIGZpbGw9IiM0NEQ4NjAiLz48cGF0aCBmaWxsPSIjM0VDQzVGIiBkPSJNMTUzIDEyM2gzMHYtMjBoLTMweiIvPjxwYXRoIGQ9Ik0xOTMgMTE1LjVhMi41IDIuNSAwIDEwMC01Yy0uMTA5IDAtLjIxNC4wMTktLjMxOS4wMzItLjAyLS4wNzUtLjAzNy0uMTUtLjA1OC0uMjI1YTIuNTAxIDIuNTAxIDAgMDAtLjk2My00LjgwN2MtLjU2OSAwLTEuMDg4LjE5Ny0xLjUwOC41MThhNi42NTMgNi42NTMgMCAwMC0uMTY4LS4xNjhjLjMxNC0uNDE3LjUwNi0uOTMxLjUwNi0xLjQ5NGEyLjUgMi41IDAgMDAtNC44LS45NzlBOS45ODcgOS45ODcgMCAwMDE4MyAxMDNjLTUuNTIyIDAtMTAgNC40NzgtMTAgMTBzNC40NzggMTAgMTAgMTBjLjkzNCAwIDEuODMzLS4xMzggMi42OS0uMzc3YTIuNSAyLjUgMCAwMDQuOC0uOTc5YzAtLjU2My0uMTkyLTEuMDc3LS41MDYtMS40OTQuMDU3LS4wNTUuMTEzLS4xMTEuMTY4LS4xNjguNDIuMzIxLjkzOS41MTggMS41MDguNTE4YTIuNSAyLjUgMCAwMC45NjMtNC44MDdjLjAyMS0uMDc0LjAzOC0uMTUuMDU4LS4yMjUuMTA1LjAxMy4yMS4wMzIuMzE5LjAzMiIgZmlsbD0iIzQ0RDg2MCIvPjxwYXRoIGQ9Ik02MyA1NS41YTIuNSAyLjUgMCAwMS0yLjUtMi41YzAtNC4xMzYtMy4zNjQtNy41LTcuNS03LjVzLTcuNSAzLjM2NC03LjUgNy41YTIuNSAyLjUgMCAxMS01IDBjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNVM2NS41IDQ2LjEwNyA2NS41IDUzYTIuNSAyLjUgMCAwMS0yLjUgMi41IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTEwMyAxODNoNjBjMTEuMDQ2IDAgMjAtOC45NTQgMjAtMjBWOTNoLTYwYy0xMS4wNDYgMC0yMCA4Ljk1NC0yMCAyMHY3MHoiIGZpbGw9IiNGRkZGNTAiLz48cGF0aCBkPSJNMTY4LjAyIDEyNGgtNTAuMDRhMSAxIDAgMTEwLTJoNTAuMDRhMSAxIDAgMTEwIDJtMCAyMGgtNTAuMDRhMSAxIDAgMTEwLTJoNTAuMDRhMSAxIDAgMTEwIDJtMCAyMGgtNTAuMDRhMSAxIDAgMTEwLTJoNTAuMDRhMSAxIDAgMTEwIDJtMC00OS44MTRoLTUwLjA0YTEgMSAwIDExMC0yaDUwLjA0YTEgMSAwIDExMCAybTAgMTkuODE0aC01MC4wNGExIDEgMCAxMTAtMmg1MC4wNGExIDEgMCAxMTAgMm0wIDIwaC01MC4wNGExIDEgMCAxMTAtMmg1MC4wNGExIDEgMCAxMTAgMk0xODMgNjEuNjExYy0uMDEyIDAtLjAyMi0uMDA2LS4wMzQtLjAwNS0zLjA5LjEwNS00LjU1MiAzLjE5Ni01Ljg0MiA1LjkyMy0xLjM0NiAyLjg1LTIuMzg3IDQuNzAzLTQuMDkzIDQuNjQ3LTEuODg5LS4wNjgtMi45NjktMi4yMDItNC4xMTMtNC40Ni0xLjMxNC0yLjU5NC0yLjgxNC01LjUzNi01Ljk2My01LjQyNi0zLjA0Ni4xMDQtNC41MTMgMi43OTQtNS44MDcgNS4xNjctMS4zNzcgMi41MjgtMi4zMTQgNC4wNjUtNC4xMjEgMy45OTQtMS45MjctLjA3LTIuOTUxLTEuODA1LTQuMTM2LTMuODEzLTEuMzIxLTIuMjM2LTIuODQ4LTQuNzUtNS45MzYtNC42NjQtMi45OTQuMTAzLTQuNDY1IDIuMzg1LTUuNzYzIDQuNC0xLjM3MyAyLjEzLTIuMzM1IDMuNDI4LTQuMTY1IDMuMzUxLTEuOTczLS4wNy0yLjk5Mi0xLjUxLTQuMTcxLTMuMTc3LTEuMzI0LTEuODczLTIuODE2LTMuOTkzLTUuODk1LTMuODktMi45MjguMS00LjM5OSAxLjk3LTUuNjk2IDMuNjE4LTEuMjMyIDEuNTY0LTIuMTk0IDIuODAyLTQuMjI5IDIuNzI0YTEgMSAwIDAwLS4wNzIgMmMzLjAxNy4xMDEgNC41NDUtMS44IDUuODcyLTMuNDg3IDEuMTc3LTEuNDk2IDIuMTkzLTIuNzg3IDQuMTkzLTIuODU1IDEuOTI2LS4wODIgMi44MjkgMS4xMTUgNC4xOTUgMy4wNDUgMS4yOTcgMS44MzQgMi43NjkgMy45MTQgNS43MzEgNC4wMjEgMy4xMDMuMTA0IDQuNTk2LTIuMjE1IDUuOTE4LTQuMjY3IDEuMTgyLTEuODM0IDIuMjAyLTMuNDE3IDQuMTUtMy40ODQgMS43OTMtLjA2NyAyLjc2OSAxLjM1IDQuMTQ1IDMuNjgxIDEuMjk3IDIuMTk3IDIuNzY2IDQuNjg2IDUuNzg3IDQuNzk2IDMuMTI1LjEwOCA0LjYzNC0yLjYyIDUuOTQ5LTUuMDM1IDEuMTM5LTIuMDg4IDIuMjE0LTQuMDYgNC4xMTktNC4xMjYgMS43OTMtLjA0MiAyLjcyOCAxLjU5NSA0LjExMSA0LjMzIDEuMjkyIDIuNTUzIDIuNzU3IDUuNDQ1IDUuODI1IDUuNTU2bC4xNjkuMDAzYzMuMDY0IDAgNC41MTgtMy4wNzUgNS44MDUtNS43OTQgMS4xMzktMi40MSAyLjIxNy00LjY4IDQuMDY3LTQuNzczdi0yeiIgZmlsbD0iIzAwMCIvPjxwYXRoIGZpbGw9IiMzRUNDNUYiIGQ9Ik04MyAxODNoNDB2LTQwSDgzeiIvPjxwYXRoIGQ9Ik0xNDMgMTU4Yy0uMjE5IDAtLjQyOC4wMzctLjYzOS4wNjQtLjAzOC0uMTUtLjA3NC0uMzAxLS4xMTYtLjQ1MUE1IDUgMCAwMDE0MC4zMiAxNDhhNC45NiA0Ljk2IDAgMDAtMy4wMTYgMS4wMzYgMjYuNTMxIDI2LjUzMSAwIDAwLS4zMzUtLjMzNiA0Ljk1NSA0Ljk1NSAwIDAwMS4wMTEtMi45ODcgNSA1IDAgMDAtOS41OTktMS45NTljLS4xNDgtLjA0Mi0uMjk3LS4wNzctLjQ0NS0uMTE1LjAyNy0uMjExLjA2NC0uNDIuMDY0LS42MzlhNSA1IDAgMDAtNS01IDUgNSAwIDAwLTUgNWMwIC4yMTkuMDM3LjQyOC4wNjQuNjM5LS4xNDguMDM4LS4yOTcuMDczLS40NDUuMTE1YTQuOTk4IDQuOTk4IDAgMDAtOS41OTkgMS45NTljMCAxLjEyNS4zODQgMi4xNTEgMS4wMTEgMi45ODctMy43MTcgMy42MzItNi4wMzEgOC42OTMtNi4wMzEgMTQuMyAwIDExLjA0NiA4Ljk1NCAyMCAyMCAyMCA5LjMzOSAwIDE3LjE2LTYuNDEgMTkuMzYxLTE1LjA2NC4yMTEuMDI3LjQyLjA2NC42MzkuMDY0YTUgNSAwIDAwNS01IDUgNSAwIDAwLTUtNSIgZmlsbD0iIzQ0RDg2MCIvPjxwYXRoIGZpbGw9IiMzRUNDNUYiIGQ9Ik04MyAxMjNoNDB2LTIwSDgzeiIvPjxwYXRoIGQ9Ik0xMzMgMTE1LjVhMi41IDIuNSAwIDEwMC01Yy0uMTA5IDAtLjIxNC4wMTktLjMxOS4wMzItLjAyLS4wNzUtLjAzNy0uMTUtLjA1OC0uMjI1YTIuNTAxIDIuNTAxIDAgMDAtLjk2My00LjgwN2MtLjU2OSAwLTEuMDg4LjE5Ny0xLjUwOC41MThhNi42NTMgNi42NTMgMCAwMC0uMTY4LS4xNjhjLjMxNC0uNDE3LjUwNi0uOTMxLjUwNi0xLjQ5NGEyLjUgMi41IDAgMDAtNC44LS45NzlBOS45ODcgOS45ODcgMCAwMDEyMyAxMDNjLTUuNTIyIDAtMTAgNC40NzgtMTAgMTBzNC40NzggMTAgMTAgMTBjLjkzNCAwIDEuODMzLS4xMzggMi42OS0uMzc3YTIuNSAyLjUgMCAwMDQuOC0uOTc5YzAtLjU2My0uMTkyLTEuMDc3LS41MDYtMS40OTQuMDU3LS4wNTUuMTEzLS4xMTEuMTY4LS4xNjguNDIuMzIxLjkzOS41MTggMS41MDguNTE4YTIuNSAyLjUgMCAwMC45NjMtNC44MDdjLjAyMS0uMDc0LjAzOC0uMTUuMDU4LS4yMjUuMTA1LjAxMy4yMS4wMzIuMzE5LjAzMiIgZmlsbD0iIzQ0RDg2MCIvPjxwYXRoIGQ9Ik0xNDMgNDEuNzVjLS4xNiAwLS4zMy0uMDItLjQ5LS4wNWEyLjUyIDIuNTIgMCAwMS0uNDctLjE0Yy0uMTUtLjA2LS4yOS0uMTQtLjQzMS0uMjMtLjEzLS4wOS0uMjU5LS4yLS4zOC0uMzEtLjEwOS0uMTItLjIxOS0uMjQtLjMwOS0uMzhzLS4xNy0uMjgtLjIzMS0uNDNhMi42MTkgMi42MTkgMCAwMS0uMTg5LS45NmMwLS4xNi4wMi0uMzMuMDUtLjQ5LjAzLS4xNi4wOC0uMzEuMTM5LS40Ny4wNjEtLjE1LjE0MS0uMjkuMjMxLS40My4wOS0uMTMuMi0uMjYuMzA5LS4zOC4xMjEtLjExLjI1LS4yMi4zOC0uMzEuMTQxLS4wOS4yODEtLjE3LjQzMS0uMjMuMTQ5LS4wNi4zMS0uMTEuNDctLjE0LjMyLS4wNy42NS0uMDcuOTggMCAuMTU5LjAzLjMyLjA4LjQ3LjE0LjE0OS4wNi4yOS4xNC40My4yMy4xMy4wOS4yNTkuMi4zOC4zMS4xMS4xMi4yMi4yNS4zMS4zOC4wOS4xNC4xNy4yOC4yMy40My4wNi4xNi4xMS4zMS4xNC40Ny4wMjkuMTYuMDUuMzMuMDUuNDkgMCAuNjYtLjI3MSAxLjMxLS43MyAxLjc3LS4xMjEuMTEtLjI1LjIyLS4zOC4zMS0uMTQuMDktLjI4MS4xNy0uNDMuMjNhMi41NjUgMi41NjUgMCAwMS0uOTYuMTltMjAtMS4yNWMtLjY2IDAtMS4zLS4yNy0xLjc3MS0uNzNhMy44MDIgMy44MDIgMCAwMS0uMzA5LS4zOGMtLjA5LS4xNC0uMTctLjI4LS4yMzEtLjQzYTIuNjE5IDIuNjE5IDAgMDEtLjE4OS0uOTZjMC0uNjYuMjctMS4zLjcyOS0xLjc3LjEyMS0uMTEuMjUtLjIyLjM4LS4zMS4xNDEtLjA5LjI4MS0uMTcuNDMxLS4yMy4xNDktLjA2LjMxLS4xMS40Ny0uMTQuMzItLjA3LjY2LS4wNy45OCAwIC4xNTkuMDMuMzIuMDguNDcuMTQuMTQ5LjA2LjI5LjE0LjQzLjIzLjEzLjA5LjI1OS4yLjM4LjMxLjQ1OS40Ny43MyAxLjExLjczIDEuNzcgMCAuMTYtLjAyMS4zMy0uMDUuNDktLjAzLjE2LS4wOC4zMi0uMTQuNDctLjA3LjE1LS4xNC4yOS0uMjMuNDMtLjA5LjEzLS4yLjI2LS4zMS4zOC0uMTIxLjExLS4yNS4yMi0uMzguMzEtLjE0LjA5LS4yODEuMTctLjQzLjIzYTIuNTY1IDIuNTY1IDAgMDEtLjk2LjE5IiBmaWxsPSIjMDAwIi8+PC9nPjwvc3ZnPgo="},82716:(e,t,s)=>{s.d(t,{A:()=>o});let o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAvgAAACgCAIAAAD2Ao8HAAAbm0lEQVR42u3dCVhV553HcbtMp31m2uk807TTaTvtzDx52sk002xNpjZeRBY3UMANRRQXQBQXFFEWAREBt2B2Y6IhNXFp0hhj1GhMYtQY9Rwu62WVXS67F3BFWeZ/uYYgIAIiXO798nwen8v1Luec9z3v++M97zln2Nb6OgAAAIs0jE0AAAAIOgAAAAQdAAAAgg4AAABBBwAAgKADAABA0AEAAAQdAAAAgg4AAABBBwAAgKADAABA0AEAACDoAAAAgg4AAABBBwAAgKADAABA0AEAACDoAAAAEHQAAABBBwAAgKADAABA0AEAACDoAEAXNhrKwiq0q/Vn5N/NtZVsEAAEHQBD25baquCyr+blveWUFqxRZ7cZqc6Zlrk5sjKNTQSAoANgKImvr42oTF1Q+NdJuuiRiXPb55sObFQvv8L32GIACDoAzN366rylJYfcs+Ltkvy6CTedkXUAEHQAmOm0m8DSE7NzXxubsrxX4abDuE5kZTobEwBBB4AZTLupqw4tP++dt2tCelhvM83/bLV7cu+Ezs+7Z25hwwIg6AAYNJFVuoVFf5ucEWubOL9vIzfPnvUcNmzYPz7yL10N6szdZChjIwMg6AAYODE1BQEXP56R/byDdmGfj0y197v1mv99bXSX/7VS/wUbHABBB0C/8S860DlebDSUBelPeeW+Pi41sM+B5vcv2f/gNz96/K3xPX/L7NztlAgAgg6A+xKk/2JpyWF5EFJ2zpQwJO48V3cprCLRJ3+3S3q4jep1/yM3v103Yth3vnW3wZsujU1ZQekAIOgA6LWIylRJM1vqquMMJaYcMzv3tbl5O9tChm2id78cmeowI6fnL16QGRVYfCC+vpbCAkDQAXBvEhqeqzeYHo9OXiZhYnJGzNKSw+1P6u73cNNbvplr95YfKW+obmlp+ez6NUoNAEEHQI9SzrjUQPukhf5FByKrdO1Pbhr0cCO8MyN2lx8qa6hqafeTe/MmBQeAoAPg3uIMJQ/0sFTfzM8If6fsI31DZUtXPzeam/0/OvhcrYHiA0DQAdBt0LlUYibhRszLCN9VdvDijYqWbn/S09N/9+c/b67iruYACDoA7pJvXNLDRycvG528ZNDzzZyMsL+UfVhyo7zLWKPVanNzc9s/Ex0dHffeuxQiAIIOgK61nTE+mPlGF/aW/kDxjbJuBm8CAwPd3d3t7e23bt3a9qSdnV1qRQWFCICgA+Cuc5AnpIUOSr6ZrQtJ0H9QdF3fcq+f+vr6Z599Vh40NjZ6enrGxsbK4+vXrw8fPryxufklyhEAQQfA3QSUHOs+kYw45/nIZtv/Cnxa/PED1/vMN7N0wW/q9xdeL+0y0xgMBkdHx6eeemrevHkSZUxP7tmzJyYmxvS4qanJx8dnxowZzs7O27Ztk2f2X71KIQIg6ADoaEtdtdeFHd1fHefRlxy+/8sfDmv385DDb/582qNvU4yTL2d1P3gTFBS0Y8cOefD222+PGDGivLy8ubl53LhxOTk57V+mqqpWqzU9Tmy4QVECIOgA6GhR4f7uo8ljCeO+/f3vSLj50WM//fWCx/7N/b+/++O/l19//MzP+zCQc7Xpevuwkpyc7OnpOWfOnPz8/Nuni9+48cQTTzQ1NZl+PXPmzJNPPvnUU08FBAR0k42qGhspSgAEHQAdravOHpMS0E06+afHfyax5ldzH2175umPJn3vJz+QJx992aFXQefL2qQ70klV1R/+8IeTJ09+/vnnTz/9dEJCgqScqKiotkNUbQeqrl692v0g0JXGa1EViZsM5RQoAIIOgI5Hr3wL9nYZTZ75eIoEmu/+6HsdbkH1cNhwef4/ljzZ85Rjk+jV0HyzfTpZvnz5u+++a3p87dq1wMBAyT1+fn4Sd+45N/la042Uy9n7Kj5el7/NI32VfLh8xYrSzyhNAAQdAHeIr6/1yH6xy3Tyxw9cJdD8w8P/3Pm/Ht/lNOKcZ69GdG40NbQllTfeeMPW1ralxz/y3vQrue9VHFtfsH2WLnhk4pzOn++Z+wqlCYCgA+AOdxvOEcNPTP/W3337h7//Sb+cTK7UpZtSy82bN+Pi4mpqarpJNg3NN3VXLuyvPB5b+IaXLtS2q2TTwejkZZQmAIIOgDssKNjXTXp4Yo/zM4cm99ddxzscvWr/c7P5VtbVggNVn20o3Dk3Y82oxN7dSXRSimdMwYydtccpUAAEHQB3iKzS+eTvHoArBC7Mis6+WmBKNo3NjTnXig5Wndhc9Ob8jIhRifN6+2ljtLOCc2e8VzG18LpbS4uLOHN5FaUJgKAD4A6bDOUu6eEDdkFkt9RlU1KX22vn9+G9tursRVkeO0vd0y5PutXsYso3bSoaplGaAAg6AO4wN2+n+dy3vEue6TOfL57+pWHK1caO4aaDnZdzQqvO+Vx8K77+EiULgKADoC6w9MQora+5hRuX5Fnr8qcfqZ5a1eDafbhp75UK3zHZC+yzvOYVv7as7CCFC4CgA6Auvu7SspKjgx5uHLWzVubM2Fc+Le/apJ6Hm/ZO1k+RlGPilLOUkgVA0AFQt746zzF5yWDlm6mps7ZfdE+qn3yzybVv+aZNfaOrw9dBZ3S298zCLRQuAIIOYO1m524flIgzIdnzWM2U5maX+8w37S0qnNk2qDMtfz2FC4CgA1i7yMo0N906G3XuQKacGWkzKxpc+zHi3J6PXOneFnRmFG6kcAEQdAAYBelPDVjKGaOdVXrDreP54bfc9tS4NzTfO/1UVY3dt++P8+f/2t39Fx3+K/nqZFPKcciay4gOAIIOAKM1FUm2ib27tk2kOuOEMmV071POaHVWZaprS4Mxl9TcdDtaMyUk32NJwUyv/FkSUF6qmH6odlrncHP9uvMnnwxftephR8eHpk37xfbtjxUUOHR+2c1m1w9Tpi3WzXS5sJpiBUDQAaxcremB14UdvQor49VZlxS3FsWlSHHzVGf26r371anyxvpE18C0GfLryJTZbQebbg/GZHvVNhrHdZqbJ2q1IzdseMTZ+V+dnH4WF/eIqo6UJ7sb77np0qi6XkmcEl28nfIFQNABrNrpwncSqnPkwQbDxfl5uyakhfYwrBxSjGHF5KriGq7O6OEbfRSPpq/fWKW4zkz07JByxLis2XNPu0zz+JWDw0NBQQ8fOzb8+nXnuyWb2trxdzxTcvvDryR57azJbb+yr18qosQBgg4AK1KZurg0fWXbuI5/0YemODJd9ewmrCxVPdpSTps9yrSR6qx73sMhV5nU/l01itvcjFmds874dM+SqnHfxJeGO08jrx9/4MAzixf/p739Q76+v/nmvxpdWrTffHhtsndbuNlmKNWnB1LiAEEHgLXYUZNnCgRfFO6TX1eUfmaKI7Hq9Fuqy4uKe5dhxV6dXdJ60KqzRHXyhG4T0jbFvfO7DKqrd0bHcZ2AYs9bLV/PSja4tCS6NFZMOH16RETEb8eO/amr68+ff/7RjAy7jgM8+o4fXp2y6FVDqaxdcu6L8uubrcNXAAg6ACzfiaJ3TWngljo1oTrbt2CvZJG/KNNMTzYrLlFdHZB6W53WZcoxqVDcfO8yZWea6nlDce3yXXWq2wLdHVnHNXf29dbTr/LTHG6dm2hansMJf5Ksc+vWhK4PYzW5tCR38eFl6Sv2VGibWsOZrDLlDhB0AFiFYl1wWxrQpwe+WFuRnL6qfUS4pbqsUD3ahxUvdeatu6cck5uK6yZleuegc16d3M27Lquui3S3r/XnnD17x95nvLz+3WPKr+pPOd3xSn0Xp5ofOvR/xscVd/3wxq+/ukgXQrkDBB0Alu9Vg77pziNQV5K8OkeEa4qrz9cjNDbq7Iw7Z9h047Ayxb5dylmnTr/nW64orssT3e33jh5/yHnnm4+XFo9pSe/qlSXGU82PHRseFPSwg8ND7u6/SEh4whh0Uu+9VI3qpFcMZZQ+QNABYOEOlR7rYWQxqK4zWrPOCz0IK+1lq5Omtk5PdlI95UN68pZG+fdy61BNs0tL9l1fdnT7nzZseCQxsd2p5jU9XSpZcUofIOgAsHBJF17ueWQpU9z8VI9rimuvgo5x8o3iukL1OKJO7cW7tC4t9S4tBfd6WV5rGGo7hpXe089Pzn2R0gcIOgAsXFn6il5FlqZeRpz7eWNzD1+ZY8w6dXXjv/pY0/MPL09bRukDBB0AluzFuupGdVJLX7OL+Uh7b5TH9F+Wfjam52+RFZfVpw4ABB0AFmtfhWoBKee21F6/RVafOgAQdABYrJOF+ywn6PSe6QKJAAg6ACxTTma0NQed7KxY6gBA0AFgsS6lLLDmoGNI8aUOAAQdAJaqtrHbixRbvEZ10vP1BmoCQNABYIF21ORbc8ox2VGTR00ACDoALNB75WcJOrIRqAkAQQeABfqk5CBBRzYCNQEg6ACwQOfzdhB0zuXtoCYABB0AFigrK46gk5W9gZoAEHQAWKDCjDUEnSJdKDUBIOgAsECl6YEEHX16IDUBIOgAsECVqYsJOlWp/tQEgKADwAIZUnwJOrXJPtQEgKADwHzF11VtMZRuMRRtupS3sTozrjotrkobU3F+fcWZ9eUn1umPR+mPRJZ+GFHyfnjJvjXFb68pTAgtfD2k4NV6dSpB53LiNNkask1ky8j2ka0k20q2mGw32XqyDWVLyvaUrSrbVrawbGfZ2rLNqXgAQQfAXaJJ/SXpLKXX3FCti61U11eclm51belHkSV/Cy/ebQwiBa8F57+4Om9zUG5MYE7EiqzggMzlS3X+S3Te/mmzF6a6+yW7+SaN90m0n69q+uyGMpGgIxuhzxtQtr+UgpSFlIiUi5SOlJGUlJSXlJqUnZSglKOUppSplKyUr5SyMUJVnJZyl9JvTU6lUh/YKQCCDmBuYaV2i0G/qebChurUmMqz0WWfRpZ+GF6yL6wwIaRg26q8+NaMEr48c+XSjMVL0uf7p870S5ks/aJ3ot39pJN+1GT1KUfIRjCHspBaYcxMKZOlnkhtkTojNUfqj9QiqUtSo6ReSe2SOiY1Teqb1Dqpe1IDpR6yMwIEHaBHB4A2XSqMq05bX3EmSn8s8uIH4cXvhBZuX533vHQ2K7LDAjIDluh8jHkl2c1HO8ZMwsp9jeiojOi4yEYY6uUotVHqpDEh6XyklkpdbR1Mel5qr9RhqclSn6VWS92WGs5BNxB02AqwsEGX0o3VWbGVanTZibWlH4UX75HWX/5EDsyNMo616PwWpXr6Jbve5zGgIapenUDQkY1gbeUutV3qvNR8qf/GcaPcKNkjWlPRHtlHZE+R/UX2mtZjagwXgaADDJLnjAMwebGVWmmXIy8eWFO0Kzj/ZflDdnnW6tb44rFA6+St2lhhfOm5aoKO4lJtfUGnFwfUVBvZj2RvMkairNWyf8leJvua7HGteUgr++BzDBGBoAP0nmGzoTCuKnld2ecRF/eHFe1cnfdcYE5EQGbA4vR5C1Om+Ggd6YTun151JujIRqAm3PexM0fZK2XflD1U9lPZW2WflT1X9l/Zi2Vflj2aZg0EHViXLYaSDdWp0eVfGAdjChOC87dK+7g0Y+mitFkLkpwZiRkYhQQdxaWQoDMwI0NJzrJ3yz4ue7rs77LXG4eFyr+QdkBaA5pEEHQwFKNMaVx1WnTZiYiS90MLtwflxi3PXCl/8y1IdvFWbWn6zUGmOp6gIxuBmmAGSchWWgZpH6SVkLZCWgxpN6T1kDZEWhKaUxB0MFinKdVsrMmJqTwbVXoorGjX6vz4FdnhS3ULF6a6W+fc3iHnS3UcQUc2AjXB7GdPO0irIm2LtDDSzkhrI22OtDzS/kgrRFMMgg7u12ZDSWylNkp/dE3R26vy4ldkhSxJn++XNJH2d6j7UBlN0JGNQE0Y0qQtkhZJ2iVpnaSNkpZK2qvNHA4DQQedhmeqN1ZnRpefiih5P6Rg28qcdcYZM6nTGZuxYG+qDgQd2QjUBEs9i15aMGnHpDWTNs14LKz8lLRy0tbR4BN0YOE2XcqPqfgq4uL+kIJXV+ZELtX5+SW70Sxaoc2qHUFHNgI1weoGgZLdpN2T1k/aQGkJpT2UVpGugaCDoTgdWB9XpY3SHwkrTAi6sGFZZoD8fWM+9x/AoAtWRxJ0ZCNQE2C6C4e0kNJOSmspbaa0nNJ+SitKV0LQgbmc4hRbqay9eED+QAnMCV+cPt83iSmWuOepLprr1n1fT1l9b2oCuiVtqbSo0q5K6yptrLS0nAhG0MEDviJwbbn8nbG29KPQwu2BOZFLdD4LtE40RuAMc84tx4CRVlfaXmmBpR2W1ljaZGmZ6Z4IOuj9BOH62o01OdFln64pTDDODtb5LeBcJ/SrI6pVn3glq08dQL+ln6SJrVN/1kmLLe228ex3bhZG0EGHy9LEVaet1R8OLXgtMHvN4jQvznjCg/aKam/NQUdWnzqAB3rml7Tk0p5Lqy5tu7TwXPiHoGNVR6AqYiuViIv7V+e9sDxz5aJU9/lMisSAW2nd85FXstNhoI2U1l7afGn5pf2XXkD6AjpEgo5lMGyozpBEH1Lw6vKsVQuNsYYdHmahXLHSO17JilP6MAfSI0i/YJzsrD8sPQX3QCXoDJXToIrWl58IK3prZe5a//S5HISC2TpqrdN0jjJBB+Z6wEt6Dek7pAeRfkR6E7pUgo6ZDNikth6H2rwsw983idOgMGRsUEdZZ9DZwKUCMWROcXeSnkX6F+llpK9hyIegM0A3TIitTAwv+WtQbuyS9PkM2GBIX03nsvVdTecyV9DBUB7ykX5Heh/pg6Qn4qYWBJ1+mzscU3EuvPidwNwo/7TZ3qotOxsshhXexpyblsOC/laxlV5J+ibpoaSfYnYzQafnYzaXjGM2xXsCcyIXpXp4qzbsTrBUG63v6JWsMuUOC809NtJnSc8l/VfreM8lOnSCzjc21uSsLT24Km/LEp2PN0ejYE1Krencq1LOt4L15J5Ee+nRpF+T3k36OIKO1QWdLYbS6LIToQWvBWStYAYxrNk7ioP1BB1ZWUocVjuvWfo76fWk77POm3YNs5Zhm4sHgnJjFqV6UOkBE3/V5oZ1TEmW1fTnSDTQSvpB6Q2lT7SewR7LDDrx9bVxVclrinevyA7zS3alZgNdOq6OsYagI6tJWQOdSf8ovaT0ldJjWvBduoZZ0FTiqvUVZ0ILXw/IDPDVjqUGA/cUoI60+EEdWcEAbvsA3PMIl3as9J7Sh0pPKv0pQceMzpOKqTwbUrBtqW6hdyKnVAC9dtDSB3UOMpwD9Ho68yjpVaVvlR7WAs7hGjY0D0tpwwoTJHv6aLmgO3C/M3Us+OKBl5mdA9wf6Welt5U+V3reIXp4a8gEnQ3VuvDi3cuzVvsmjafmAf1ot+JoqUFHVo3yBfrvBK7x0gtLXyw9MkGnv04F10fpj6zMWceEYuABDlOrmhzVyfJSjqwU93wAHtxEZumdpY+Wnpqg02txVSmhRTuM02646wIwIEJU2wbLSjmyOiE0IMBA/KVkK/219NrSdxN0ur+xVHmU/uOVOdEM3gCDYq9qUQewZHUoU2AwhnmipTeXPp2g882l/MKKdi3VLWLwBhj0A1hpynjLSDmpyngOWgGDPczjL/27OVyWcHCCTlx1Wkjhdv+0OdQGwHwsVm306pC/AZaswmLOtALM59TOtDnS40u/bxVBJ7ZSCc57YVGqOwUPmKdg1fbKUD7bXBY+mOFhwCxJ7y8ZQJKApQWd+Pra9RWngy5sZPINMCRsVkfdGpopRxZbFp4SBMx/Ko+kAskGA3NhnmEP8uQp7er8ePINMORsVe1uDrVxHVlgWWzKDhhaiUdygqSFIRZ0NtbkhBZu5z7hwJC2RbFrGFInk8sCU2rAkD2q5SHJ4QHNXB7Wfxf3K1lTvHuJzocCAyzDJtXu+lAY15GF3MRYDmARJEVIlpBEYVZBx7BOfzwgK5DzwwHLE6bamvl5WLJ4YTQ+gGWRRCG5QtKFZIzBDDqbLuWFFGzzS3ajSABLHlJWbRKVceaZcmTBFnEmOWDJk3jcJGlI3hjgoGOI0h8LyFzuTfsCWI19iuMN1YwOY8nC7OOGnYC1DPDYSOqQ7NG3AZ5hvRrCCc5/hbOoAOu0Wh1pJpdOlsWQhaFEACs8S0tySG8HeHoUdGKrklbkhDMLB8B2xb5GmTBYEUe+WhaAUgCsfAaPZBJJJv0TdNaVfbY0YzGbFUAbX1WzS3GoHti4I18nX+rL9gfwNcknklL6GHTi66ojSt7zT53JdgTQxue8xu+sxv8rzZIvNctPaf76pcPFs04POuKUnnV697RD0EnNslPG75Vvl2WQJaE4AAjJKpJYJLf0NOg8V1sZVrRzQdJEth1gpcPCijFJSKRYcVKz6jNN6HFNxFFN1MeamMOamEMjOtt+dORXX4yuP9fPAzzygfKx8uFdfqnRYeNSybLJEspyytLKMsuSy/JTiIC1kdwi6UUyTHdBR9LQmuK3iTiA2QpRbcMfxFQ5xThMIkEh5FPN2qN3DTT39OYx208/d7zw5fiG8308P0veKG+XD5GP6tsymAKQrIWsi6yRrNd8cg9gTXFHkkyH0Z1hrffdvBRR8i5XxAHMbSrMWnXUTtXhuDomR3UyXaRYfu23kZvzmoDTmrDjEg40fU8VXYk9rHnj6Mj3j9ud+Nwx9dTYkjNOlV85156bcO3cxEbFRcgD+VWelP+SF8jL5MXyltjD/bwkrYzrKGvqzdEuwFpOznKTVCPZ5nbQWXvxwMKUaWwXYNAtUm1ilVHvKA6nlLFFilPnW4g3Ky4B/XT9qqWnNeuOPIhUYb5kfWWtqWaAlZBsIwknvr52GNsCGPxpMapmp+pQod5jmku+6txf3xhtZSnHRNa6JxtnrTrqA3V0juokcbMbqeq4vaojN6AAzHuq8iyCDmBGYtRRx9UxdXc5c3u/Orq/vogRnXsf7Fdt4lW7T5Wx7U+kb2i9XOE+xTGcfAMMEQQdwBwHeLYodqeVsVfvvOvCWnVUf37LA5ujY2b6YY5OhDpqj+oohbKAW98ABB0A/XYGgWrzsmqvqOMaFBeDMuFBfVE/nXVlLjjrCgBBBxhy85SjFdv7eftmdVQPLyvc5XV0jMe5zC0AHTYuFdfRAUDQAazRMnXkS6r9UXVMvuLUqEw8qI65/8/0Pa/xO3f7ysgBpzWBJzUrT2hWf64J/nRE6PERa45rwj/RRBzTRLZeYHDdx8YgEt1q/WFjLhGmE8hjWx8Led70AnmlvF7eJe+VT5DPkU+Tz5RPls+Xb5Hvkm+8fWXkc8YloYgBEHQAa7RQtTmtjG1uN7knW3HyZssAIOgAsBhbVbt81dl4LwV1QqA6kg0CgKADwOLijmK/SbVjOwAg6AAAABB0AAAACDoAAAAEHQAAAIIOAAAAQQcAAICgAwAACDoAAAAEHQAAAIIOAAAAQQcAAICgAwAAQNABAADW4v8BIMkHbXsCeUgAAAAASUVORK5CYII="},27730:(e,t,s)=>{s.d(t,{A:()=>o});let o=s.p+"assets/images/slash-introducing-411a16dd05086935b8e9ddae38ae9b45.svg"},29302:(e,t,s)=>{s.d(t,{A:()=>o});let o=s.p+"assets/images/slash-up-and-running-1c1f83f3064dcd56be41632c51be62ac.png"},30632:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>r,contentTitle:()=>M,default:()=>l,frontMatter:()=>n,metadata:()=>o,toc:()=>a});var o=s(42242),i=s(62540),u=s(43023);let n={title:"Introducing Docusaurus",authors:"JMarcey",tags:["documentation","blog","docusaurus"]},M=void 0,r={authorsImageUrls:[void 0]},a=[{value:"The Birth of docusaurus",id:"the-birth-of-docusaurus",level:2},{value:"Getting Up and Running",id:"getting-up-and-running",level:2},{value:"How does Docusaurus work?",id:"how-does-docusaurus-work",level:2},{value:"Community",id:"community",level:2},{value:"Acknowledgements",id:"acknowledgements",level:2},{value:"Resources",id:"resources",level:2}];function c(e){let t={a:"a",code:"code",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,u.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{src:s(27730).A+"",width:"760",height:"160"})}),"\n",(0,i.jsxs)(t.p,{children:["We are very happy to introduce ",(0,i.jsx)(t.a,{href:"https://github.com/facebook/docusaurus",children:"Docusaurus"})," to help you manage one or many open source websites."]}),"\n",(0,i.jsxs)(t.p,{children:["We created ",(0,i.jsx)(t.a,{href:"https://docusaurus.io",children:"Docusaurus"})," for the following reasons:"]}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsx)(t.li,{children:"To put the focus on writing good documentation instead of worrying about the infrastructure of a website."}),"\n",(0,i.jsx)(t.li,{children:"To provide features that many of our open source websites need like blog support, search and versioning."}),"\n",(0,i.jsx)(t.li,{children:"To make it easy to push updates, new features, and bug fixes to everyone all at once."}),"\n",(0,i.jsx)(t.li,{children:"And, finally, to provide a consistent look and feel across all of our open source projects."}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["Docusaurus is a tool designed to make it easy for teams to publish documentation websites without having to worry about the infrastructure and design details. At its core, all a user has to provide are documentation files written in Markdown, customization of a provided home page written in React, and a few configuration modifications. Docusaurus handles the rest by providing default styles, site formatting, and simple document navigation. Getting started is easy, as users can ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/installation.html",children:"install"})," it using ",(0,i.jsx)(t.code,{children:"npm"})," or ",(0,i.jsx)(t.code,{children:"yarn"})," via a simple initialization script that ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/site-preparation.html",children:"creates a working example website out of the box"}),"."]}),"\n",(0,i.jsxs)(t.p,{children:["Docusaurus also provides core website and documentation features out-of-the-box including ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/blog.html",children:"blog support"}),", ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/translation.html",children:"internationalization"}),", ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/search.html",children:"search"}),", and ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/versioning.html",children:"versioning"}),". While some projects may not require any of these features, enabling them is generally a matter of updating configuration options instead of having to add the infrastructure from the ground up. As more features get added to Docusaurus, users just can easily update to the latest version. This can be done by simply running npm or yarn update and updating configuration options. Users or teams will no longer need to manually rework their entire website infrastructure each time a new feature gets added."]}),"\n",(0,i.jsx)(t.h2,{id:"the-birth-of-docusaurus",children:"The Birth of docusaurus"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{src:s(82716).A+"",width:"760",height:"160"})}),"\n",(0,i.jsx)(t.p,{children:"When Facebook first started their open source program, many teams implemented a custom website for each of their open source projects. This approach presented challenges when the open source program team was asked to help the project teams improve their documentation. Since each site was unique, adding basic infrastructure such as a blog, consistent navigation, search, etc. became challenging undertakings."}),"\n",(0,i.jsx)(t.p,{children:"The open source team tried to help mitigate this problem by coming up with a standard template, based on Jekyll, that could be used as a starting point for a project website. We asked our new projects to manually copy our template source to their repo, write their docs, and publish. This template approach was adopted by most of open source projects launched; some existing projects even converted their custom website implementations to the new template as well."}),"\n",(0,i.jsx)(t.p,{children:'The problem with the "copy the template to your repo" approach is that, even though the platform is consistent, pushing updates becomes unmaintainable across an entire suite of projects already using the template. This is because we lost control of the template after a project copied it to their repo. Projects were free to modify the template as desired and apply their own project-specific features to it. So while projects share the same site generation platform, they have now diverted enough where they cannot take advantage of the new features we have added to the template over time. There was no easy way we could ask all current projects to "copy" a new version of the template since it might break their existing site or remove features that they have added on their own. Instead, we would have to apply the updates manually to each project one-by-one. This became very problematic when projects started asking for our team for internationalization support within the template, requiring low-level changes to how the template was structured and generated.'}),"\n",(0,i.jsx)(t.p,{children:"So we started thinking about what we could do to help mitigate the challenge of keeping sites updated and consistent across our entire portfolio. We also wanted multiple projects to share the same site generation software. We wanted them to start out with the same template, and yet have the flexibility to customize and adapt their site theme to suit their needs. They should be able to extend and customize their site, but when we update the underlying infrastructure with fixes and features, the project should be able update simply and without any breaking changes."}),"\n",(0,i.jsx)(t.p,{children:"Docusaurus was born!"}),"\n",(0,i.jsx)(t.p,{children:"At Facebook, Docusaurus allows us to quickly get different projects up and running with documentation websites, especially for teams who don't have much experience with web development or primarily want a basic site to showcase their project. Docusaurus already supports sites needing more advanced features like internationalization for Jest and versioning for React Native. As different projects request new features for their sites, they are added to Docusaurus and simultaneously provided to all projects! All together, this ends up greatly reducing the work needed to maintain different sites for different projects. Our teams are able to focus on keeping their projects healthier by spending more time adding features, fixing bugs, and writing documentation."}),"\n",(0,i.jsx)(t.h2,{id:"getting-up-and-running",children:"Getting Up and Running"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{src:s(29302).A+"",width:"760",height:"160"})}),"\n",(0,i.jsxs)(t.p,{children:["At its core, we wanted sites running Docusaurus to be simple to use. With one ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/installation.html",children:"installation"})," command and some simple ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/site-preparation.html",children:"configuration"}),", you can actually have a default running website."]}),"\n",(0,i.jsxs)(t.p,{children:["When you run ",(0,i.jsx)(t.code,{children:"docusaurus-init"}),", you will see a structure similar to:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"root-of-repo\n\u251C\u2500\u2500 docs-examples-from-docusaurus\n\u2502 \u251C\u2500\u2500 doc1.md\n\u2502 \u251C\u2500\u2500 doc2.md\n\u2502 \u251C\u2500\u2500 doc3.md\n\u2502 \u251C\u2500\u2500 example-doc4.md\n\u2502 \u2514\u2500\u2500 example-doc5.md\n\u251C\u2500\u2500 website\n\u2502 \u251C\u2500\u2500 blog-examples-from-docusaurus\n\u2502 \u2502 \u251C\u2500\u2500 2016-03-11-blog-post.md\n\u2502 \u2502 \u2514\u2500\u2500 2017-04-10-blog-post-two.md\n\u2502 \u251C\u2500\u2500 core\n\u2502 \u2502 \u2514\u2500\u2500 Footer.js\n\u2502 \u251C\u2500\u2500 node_modules\n\u2502 \u251C\u2500\u2500 package.json\n\u2502 \u251C\u2500\u2500 pages\n\u2502 \u251C\u2500\u2500 sidebars.json\n\u2502 \u251C\u2500\u2500 siteConfig.js\n\u2502 \u2514\u2500\u2500 static\n"})}),"\n",(0,i.jsxs)(t.p,{children:["With the exception of node_modules and package.json, all the directories and files you see are where you customize and add content to your Docusaurus-based website. The docs folder is where you add your Markdown that represents your documentation; the blog folder is where you add your Markdown for your ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/blog.html",children:"blog posts"}),"; ",(0,i.jsx)(t.code,{children:"siteConfig.js"})," is where you make most of the ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/site-config.html",children:"customizations"})," for your site; ",(0,i.jsx)(t.code,{children:"sidebars.json"})," is where you maintain the layout and content of the ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/navigation.html",children:"sidebar"})," for your documentation; the ",(0,i.jsx)(t.code,{children:"pages"})," folder is where you add ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/custom-pages.html",children:"custom"})," pages for your site; the ",(0,i.jsx)(t.code,{children:"static"})," folder is where all of your static assets go (e.g., CSS stylesheets and images); and the ",(0,i.jsx)(t.code,{children:"core"})," folder is where you can customize core components of the site, in this case the footer."]}),"\n",(0,i.jsx)(t.h2,{id:"how-does-docusaurus-work",children:"How does Docusaurus work?"}),"\n",(0,i.jsxs)(t.p,{children:["Docusaurus is written primarily in JavaScript and ",(0,i.jsx)(t.a,{href:"https://facebook.github.io/react",children:"React"}),", replacing Jekyll which we used in the old template. We use ",(0,i.jsx)(t.a,{href:"https://github.com/jonschlinkert/remarkable",children:"Remarkable"})," for our Markdown rendering and ",(0,i.jsx)(t.a,{href:"https://highlightjs.org/",children:"highlight.js"})," for our code block syntax highlighting. The core of Docusaurus' functionality is in the ",(0,i.jsx)(t.a,{href:"https://github.com/facebookexperimental/Docusaurus/tree/master/lib",children:"lib directory"})," of the ",(0,i.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/",children:"Docusaurus repo"}),". The general structure looks like:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"root-of-Docusaurus\n\u251C\u2500\u2500 lib\n\u2502 \u251C\u2500\u2500 core\n\u2502 \u251C\u2500\u2500 server\n\u2502 \u2502 \u251C\u2500\u2500 generate.js\n\u2502 \u2502 \u251C\u2500\u2500 server.js\n\u2502 \u2502 \u2514\u2500\u2500 ...and more files\n\u2502 \u251C\u2500\u2500 static\n\u2502 \u251C\u2500\u2500 build-files.js\n\u2502 \u251C\u2500\u2500 copy-examples.js\n\u2502 \u251C\u2500\u2500 generate-feed.js\n\u2502 \u251C\u2500\u2500 publish-gh-pages.js\n\u2502 \u251C\u2500\u2500 rename-version.js\n\u2502 \u251C\u2500\u2500 start-server.js\n\u2502 \u251C\u2500\u2500 versions.js\n\u2502 \u2514\u2500\u2500 write-translations.js\n"})}),"\n",(0,i.jsxs)(t.p,{children:["The key files here are build-files.js and start-server.js. There are many similarities between these two files: ",(0,i.jsx)(t.code,{children:"build-files.js"})," is used to build the physical artifacts for serving by an external web server. ",(0,i.jsx)(t.code,{children:"start-server.js"})," is used to run the Docusaurus server and locally test your site. Both go through the following general process to take all of the Markdown and configuration to create a runnable website:"]}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["Process your website settings in ",(0,i.jsx)(t.code,{children:"siteConfig.js"})]}),"\n",(0,i.jsx)(t.li,{children:"Read the document metadata that exists in all the Markdown files in your docs directory."}),"\n",(0,i.jsx)(t.li,{children:"Create a table of contents for your documents based upon the IDs extracted from the metadata."}),"\n",(0,i.jsx)(t.li,{children:"Convert the Markdown to HTML, including doing link replacement."}),"\n",(0,i.jsx)(t.li,{children:"These files will go in a build/docs directory of the compiled site, and any translated versions will go into a language specific folder within the build/docs folder."}),"\n",(0,i.jsx)(t.li,{children:"Repeat 1-3 for blog posts."}),"\n",(0,i.jsx)(t.li,{children:"The blog file will go in a build/blog directory of the compiled site."}),"\n",(0,i.jsx)(t.li,{children:"Read the main.css file and concatenate any user-defined css into master css file that will be in the build/css directory of the compiled site."}),"\n",(0,i.jsx)(t.li,{children:"Copy images into an build/img directory of the compiled site."}),"\n",(0,i.jsx)(t.li,{children:"Take any custom pages that were added to the pages folder of the site and compile/copy those into the root build directory of the compiled site. Any translated versions will go into a language specific folder within build."}),"\n",(0,i.jsx)(t.li,{children:"Create CNAME and sitemap.xml files and add those to build."}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"Note that this process does not take into full account how translations or versioning works. The underlying details of those features will be saved for future blog posts."}),"\n",(0,i.jsx)(t.p,{children:"The final structure of your compiled site will look similar to:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"build\n\u251C\u2500\u2500 website\n\u2502 \u251C\u2500\u2500 CNAME\n\u2502 \u251C\u2500\u2500 blog\n\u2502 \u251C\u2500\u2500 css\n\u2502 \u251C\u2500\u2500 docs\n\u2502 \u251C\u2500\u2500 en\n\u2502 \u251C\u2500\u2500 help.html # custom page\n\u2502 \u251C\u2500\u2500 img\n\u2502 \u251C\u2500\u2500 index.html # landing page\n\u2502 \u251C\u2500\u2500 sitemap.xml\n\u2502 \u2514\u2500\u2500 users.html # custom page\n"})}),"\n",(0,i.jsx)(t.h2,{id:"community",children:"Community"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{src:s(18494).A+"",width:"200",height:"200"})}),"\n",(0,i.jsxs)(t.p,{children:["We welcome your ",(0,i.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/blob/master/CONTRIBUTING.md",children:"contributions"})," to Docusaurus, whether you want to use it for your own site, you want to ",(0,i.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/blob/master/CONTRIBUTING.md",children:"contribute"})," to the Docusaurus core or just have questions. Follow us on ",(0,i.jsx)(t.a,{href:"https://github.com/facebook/docusaurus",children:"GitHub"})," and ",(0,i.jsx)(t.a,{href:"https://x.com/docusaurus",children:"X)"}),"."]}),"\n",(0,i.jsx)(t.h2,{id:"acknowledgements",children:"Acknowledgements"}),"\n",(0,i.jsxs)(t.p,{children:["Docusaurus wouldn't exist without the work of the rest of the core Docusaurus team: ",(0,i.jsx)(t.a,{href:"http://x.com/ericnakagawa",children:"Eric Nakagawa"}),", ",(0,i.jsx)(t.a,{href:"https://x.com/hectorramos",children:"Hector Ramos"}),", ",(0,i.jsx)(t.a,{href:"https://x.com/EricVicenti",children:"Eric Vicenti"})," and ",(0,i.jsx)(t.a,{href:"https://github.com/deltice",children:"Frank Li"})," \u2014 a former intern at Facebook who implemented the core technology and features."]}),"\n",(0,i.jsxs)(t.p,{children:["Special thanks also goes out to our earliest ",(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/en/users.html",children:"adopters"})," of Docusaurus:"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://bucklescript.github.io/",children:"BuckleScript"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://fasttext.cc",children:"FastText"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://jestjs.io",children:"Jest"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"http://makeitopen.com",children:"Make It Open"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://prettier.io/",children:"Prettier"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://reasonml.github.io/reason-react/",children:"Reason-react"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://facebook.github.io/react-native/",children:"React Native"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://facebook.github.io/relay/",children:"Relay"})}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"Without their dedication to creating or migrating their websites over to the platform, we would have not have been in the position where we are today."}),"\n",(0,i.jsx)(t.h2,{id:"resources",children:"Resources"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io",children:"Read our documentation"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://x.com/docusaurus",children:"Follow our X feed"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://github.com/facebook/docusaurus",children:"Follow us on GitHub"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://v1.docusaurus.io/about-slash.html",children:"About Slash, the Docusaurus mascot"})}),"\n"]})]})}function l(e={}){let{wrapper:t}={...(0,u.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},43023:(e,t,s)=>{s.d(t,{R:()=>n,x:()=>M});var o=s(63696);let i={},u=o.createContext(i);function n(e){let t=o.useContext(u);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function M(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:n(e.components),o.createElement(u.Provider,{value:t},e.children)}},42242:e=>{e.exports=JSON.parse('{"permalink":"/blog/2017/12/14/introducing-docusaurus","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2017/12-14-introducing-docusaurus.mdx","source":"@site/blog/2017/12-14-introducing-docusaurus.mdx","title":"Introducing Docusaurus","description":"We are very happy to introduce Docusaurus to help you manage one or many open source websites.","date":"2017-12-14T00:00:00.000Z","tags":[{"inline":false,"label":"Documentation","permalink":"/blog/tags/documentation"},{"inline":false,"label":"Blog","permalink":"/blog/tags/blog"},{"inline":false,"label":"Docusaurus","permalink":"/blog/tags/docusaurus"}],"readingTime":8.215,"hasTruncateMarker":true,"authors":[{"name":"Joel Marcey","title":"Developer Advocate at Meta","url":"https://x.com/JoelMarcey","page":{"permalink":"/blog/authors/j-marcey"},"socials":{"x":"https://x.com/joelmarcey","github":"https://github.com/JoelMarcey"},"imageURL":"https://github.com/JoelMarcey.png","key":"JMarcey"}],"frontMatter":{"title":"Introducing Docusaurus","authors":"JMarcey","tags":["documentation","blog","docusaurus"]},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"How I Converted Profilo to Docusaurus in Under 2 Hours","permalink":"/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"}}')}}]); \ No newline at end of file diff --git a/assets/js/5e335fc2.6e4fb932.js b/assets/js/5e335fc2.abe15eb5.js similarity index 90% rename from assets/js/5e335fc2.6e4fb932.js rename to assets/js/5e335fc2.abe15eb5.js index c050a481f1..52296a7662 100644 --- a/assets/js/5e335fc2.6e4fb932.js +++ b/assets/js/5e335fc2.abe15eb5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6809],{42320:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>p,frontMatter:()=>u,metadata:()=>s,toc:()=>c});var s=a(93023),r=a(62540),n=a(43023);let u={title:"Docusaurus 2019 Recap",authors:"yangshun",tags:["recap"]},o=void 0,i={authorsImageUrls:[void 0]},c=[];function l(e){let t={a:"a",p:"p",...(0,n.R)(),...e.components};return(0,r.jsxs)(t.p,{children:["2019 was a great year for Docusaurus - we've made tremendous progress on ",(0,r.jsx)(t.a,{href:"https://docusaurus.io/",children:"Docusaurus 2"}),". Current Docusaurus 1 users who aren't using the translations feature can feel free to check it out and ",(0,r.jsx)(t.a,{href:"https://docusaurus.io/docs/migration",children:"migrate"})," to it! Otherwise we will work with you to make that happen in 2020 :)"]})}function p(e={}){let{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},43023:(e,t,a)=>{a.d(t,{R:()=>u,x:()=>o});var s=a(63696);let r={},n=s.createContext(r);function u(e){let 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(r):e.components||r:u(e.components),s.createElement(n.Provider,{value:t},e.children)}},93023:e=>{e.exports=JSON.parse('{"permalink":"/blog/2019/12/30/docusaurus-2019-recap","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2019/12-30-docusaurus-2019-recap.mdx","source":"@site/blog/2019/12-30-docusaurus-2019-recap.mdx","title":"Docusaurus 2019 Recap","description":"2019 was a great year for Docusaurus - we\'ve made tremendous progress on Docusaurus 2. Current Docusaurus 1 users who aren\'t using the translations feature can feel free to check it out and migrate to it! Otherwise we will work with you to make that happen in 2020 :)","date":"2019-12-30T00:00:00.000Z","tags":[{"inline":false,"label":"Recap","permalink":"/blog/tags/recap","description":"Blog posts about Docusaurus\' year recaps"}],"readingTime":2.72,"hasTruncateMarker":true,"authors":[{"name":"Yangshun Tay","title":"Front End Engineer at Meta","url":"https://github.com/yangshun","page":{"permalink":"/blog/authors/yangshun"},"socials":{"x":"https://x.com/yangshunz","github":"https://github.com/yangshun"},"imageURL":"https://github.com/yangshun.png","key":"yangshun"}],"frontMatter":{"title":"Docusaurus 2019 Recap","authors":"yangshun","tags":["recap"]},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Tribute to Endi","permalink":"/blog/2020/01/07/tribute-to-endi"},"nextItem":{"title":"Happy 1st Birthday Slash!","permalink":"/blog/2018/12/14/Happy-First-Birthday-Slash"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6809],{42320:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>p,frontMatter:()=>u,metadata:()=>s,toc:()=>c});var s=a(93023),r=a(62540),n=a(43023);let u={title:"Docusaurus 2019 Recap",authors:"yangshun",tags:["recap"]},o=void 0,i={authorsImageUrls:[void 0]},c=[];function l(e){let t={a:"a",p:"p",...(0,n.R)(),...e.components};return(0,r.jsxs)(t.p,{children:["2019 was a great year for Docusaurus - we've made tremendous progress on ",(0,r.jsx)(t.a,{href:"https://docusaurus.io/",children:"Docusaurus 2"}),". Current Docusaurus 1 users who aren't using the translations feature can feel free to check it out and ",(0,r.jsx)(t.a,{href:"https://docusaurus.io/docs/migration",children:"migrate"})," to it! Otherwise we will work with you to make that happen in 2020 :)"]})}function p(e={}){let{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},43023:(e,t,a)=>{a.d(t,{R:()=>u,x:()=>o});var s=a(63696);let r={},n=s.createContext(r);function u(e){let 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(r):e.components||r:u(e.components),s.createElement(n.Provider,{value:t},e.children)}},93023:e=>{e.exports=JSON.parse('{"permalink":"/blog/2019/12/30/docusaurus-2019-recap","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2019/12-30-docusaurus-2019-recap.mdx","source":"@site/blog/2019/12-30-docusaurus-2019-recap.mdx","title":"Docusaurus 2019 Recap","description":"2019 was a great year for Docusaurus - we\'ve made tremendous progress on Docusaurus 2. Current Docusaurus 1 users who aren\'t using the translations feature can feel free to check it out and migrate to it! Otherwise we will work with you to make that happen in 2020 :)","date":"2019-12-30T00:00:00.000Z","tags":[{"inline":false,"label":"Recap","permalink":"/blog/tags/recap","description":"Blog posts about Docusaurus\' year recaps"}],"readingTime":2.72,"hasTruncateMarker":true,"authors":[{"name":"Yangshun Tay","title":"Front End Engineer at Meta","url":"https://github.com/yangshun","page":{"permalink":"/blog/authors/yangshun"},"socials":{"x":"https://x.com/yangshunz","github":"https://github.com/yangshun"},"imageURL":"https://github.com/yangshun.png","key":"yangshun"}],"frontMatter":{"title":"Docusaurus 2019 Recap","authors":"yangshun","tags":["recap"]},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Tribute to Endi","permalink":"/blog/2020/01/07/tribute-to-endi"},"nextItem":{"title":"Happy 1st Birthday Slash!","permalink":"/blog/2018/12/14/Happy-First-Birthday-Slash"}}')}}]); \ No newline at end of file diff --git a/assets/js/5f61b80e.4a61e518.js b/assets/js/5f61b80e.4a61e518.js new file mode 100644 index 0000000000..0257ff2650 --- /dev/null +++ b/assets/js/5f61b80e.4a61e518.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2842],{21840:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>n,toc:()=>l});let n=JSON.parse('{"id":"tests/links/target","title":"Target doc","description":"This is just a doc meant to be linked to by other docs.","source":"@site/_dogfooding/_docs tests/tests/links/target.mdx","sourceDirName":"tests/links","slug":"/tests/links/target-doc-slug","permalink":"/tests/docs/tests/links/target-doc-slug","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"target-doc-slug"},"sidebar":"sidebar","previous":{"title":"Broken Anchors tests","permalink":"/tests/docs/tests/links/broken-anchors-tests"},"next":{"title":"Test links","permalink":"/tests/docs/tests/links/test-markdown-links"}}');var r=s(62540),o=s(43023);let a={slug:"target-doc-slug"},i="Target doc",d={},l=[{value:"Target heading",id:"target-heading",level:2}];function c(t){let e={h1:"h1",h2:"h2",header:"header",p:"p",...(0,o.R)(),...t.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"target-doc",children:"Target doc"})}),"\n",(0,r.jsx)(e.p,{children:"This is just a doc meant to be linked to by other docs."}),"\n",(0,r.jsx)(e.h2,{id:"target-heading",children:"Target heading"})]})}function u(t={}){let{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(c,{...t})}):c(t)}u.displayName="MDXContent(_dogfooding/_docs tests/tests/links/target.mdx)"},43023:(t,e,s)=>{s.d(e,{R:()=>a,x:()=>i});var n=s(63696);let r={},o=n.createContext(r);function a(t){let e=n.useContext(o);return n.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function i(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:a(t.components),n.createElement(o.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/5f61b80e.c7f0f0f8.js b/assets/js/5f61b80e.c7f0f0f8.js deleted file mode 100644 index 2876e5b86e..0000000000 --- a/assets/js/5f61b80e.c7f0f0f8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2842],{21840:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>n,toc:()=>l});let n=JSON.parse('{"id":"tests/links/target","title":"Target doc","description":"This is just a doc meant to be linked to by other docs.","source":"@site/_dogfooding/_docs tests/tests/links/target.mdx","sourceDirName":"tests/links","slug":"/tests/links/target-doc-slug","permalink":"/tests/docs/tests/links/target-doc-slug","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"target-doc-slug"},"sidebar":"sidebar","previous":{"title":"Broken Anchors tests","permalink":"/tests/docs/tests/links/broken-anchors-tests"},"next":{"title":"Test links","permalink":"/tests/docs/tests/links/test-markdown-links"}}');var r=s(62540),o=s(43023);let a={slug:"target-doc-slug"},i="Target doc",d={},l=[{value:"Target heading",id:"target-heading",level:2}];function c(t){let e={h1:"h1",h2:"h2",header:"header",p:"p",...(0,o.R)(),...t.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"target-doc",children:"Target doc"})}),"\n",(0,r.jsx)(e.p,{children:"This is just a doc meant to be linked to by other docs."}),"\n",(0,r.jsx)(e.h2,{id:"target-heading",children:"Target heading"})]})}function u(t={}){let{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(c,{...t})}):c(t)}u.displayName="MDXContent(_dogfooding/_docs tests/tests/links/target.mdx)"},43023:(t,e,s)=>{s.d(e,{R:()=>a,x:()=>i});var n=s(63696);let r={},o=n.createContext(r);function a(t){let e=n.useContext(o);return n.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function i(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:a(t.components),n.createElement(o.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/60359.fa73d881.js b/assets/js/60359.fa73d881.js new file mode 100644 index 0000000000..7a9b840628 --- /dev/null +++ b/assets/js/60359.fa73d881.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[60359],{60359:(e,t,n)=>{function r(e){return(r="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})(e)}function i(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t,n){return t&&a(e.prototype,t),n&&a(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var a=[],o=!0,s=!1;try{for(i=i.call(e);!(o=(n=i.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{o||null==i.return||i.return()}finally{if(s)throw r}}return a}}(e,t)||u(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){if(e){if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(e,t)}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function h(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=u(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}n.d(t,{A:()=>lE});var d,p,f,g,v,y,b="undefined"==typeof window?null:window,x=b?b.navigator:null;b&&b.document;var w=r(""),E=r({}),k=r(function(){}),C="undefined"==typeof HTMLElement?"undefined":r(HTMLElement),S=function(e){return e&&e.instanceString&&T(e.instanceString)?e.instanceString():null},D=function(e){return null!=e&&r(e)==w},T=function(e){return null!=e&&r(e)===k},P=function(e){return!A(e)&&(Array.isArray?Array.isArray(e):null!=e&&e instanceof Array)},_=function(e){return null!=e&&r(e)===E&&!P(e)&&e.constructor===Object},M=function(e){return null!=e&&r(e)===r(1)&&!isNaN(e)},B=function(e){if("undefined"!==C)return null!=e&&e instanceof HTMLElement},A=function(e){return N(e)||I(e)},N=function(e){return"collection"===S(e)&&e._private.single},I=function(e){return"collection"===S(e)&&!e._private.single},O=function(e){return"core"===S(e)},L=function(e){return"stylesheet"===S(e)},R=function(e){return null==e||!!(""===e||e.match(/^\s+$/))},z=function(e){return null!=e&&r(e)===E&&T(e.then)},V=function(e,t){t||(t=function(){if(1==arguments.length)return arguments[0];if(0==arguments.length)return"undefined";for(var e=[],t=0;t<arguments.length;t++)e.push(arguments[t]);return e.join("$")});var n=function n(){var r,i=arguments,a=t.apply(this,i),o=n.cache;return(r=o[a])||(r=o[a]=e.apply(this,i)),r};return n.cache={},n},F=V(function(e){return e.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()})}),j=V(function(e){return e.replace(/(-\w)/g,function(e){return e[1].toUpperCase()})}),q=V(function(e,t){return e+t[0].toUpperCase()+t.substring(1)},function(e,t){return e+"$"+t}),X=function(e){return R(e)?e:e.charAt(0).toUpperCase()+e.substring(1)},Y="(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))",W="rgb[a]?\\(("+Y+"[%]?)\\s*,\\s*("+Y+"[%]?)\\s*,\\s*("+Y+"[%]?)(?:\\s*,\\s*("+Y+"))?\\)",H="rgb[a]?\\((?:"+Y+"[%]?)\\s*,\\s*(?:"+Y+"[%]?)\\s*,\\s*(?:"+Y+"[%]?)(?:\\s*,\\s*(?:"+Y+"))?\\)",G="hsl[a]?\\(("+Y+")\\s*,\\s*("+Y+"[%])\\s*,\\s*("+Y+"[%])(?:\\s*,\\s*("+Y+"))?\\)",U="hsl[a]?\\((?:"+Y+")\\s*,\\s*(?:"+Y+"[%])\\s*,\\s*(?:"+Y+"[%])(?:\\s*,\\s*(?:"+Y+"))?\\)",K=function(e,t){return e<t?-1:e>t?1:0},Z=null!=Object.assign?Object.assign.bind(Object):function(e){for(var t=arguments,n=1;n<t.length;n++){var r=t[n];if(null!=r)for(var i=Object.keys(r),a=0;a<i.length;a++){var o=i[a];e[o]=r[o]}}return e},$=function(e){if((4===e.length||7===e.length)&&"#"===e[0]){var t,n,r;return 4===e.length?(t=parseInt(e[1]+e[1],16),n=parseInt(e[2]+e[2],16),r=parseInt(e[3]+e[3],16)):(t=parseInt(e[1]+e[2],16),n=parseInt(e[3]+e[4],16),r=parseInt(e[5]+e[6],16)),[t,n,r]}},Q=function(e){function t(e,t,n){return(n<0&&(n+=1),n>1&&(n-=1),n<1/6)?e+(t-e)*6*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}var n,r,i,a,o,s,l,u,c=RegExp("^"+G+"$").exec(e);if(c){if((r=parseInt(c[1]))<0?r=(360- -1*r%360)%360:r>360&&(r%=360),r/=360,(i=parseFloat(c[2]))<0||i>100||(i/=100,(a=parseFloat(c[3]))<0||a>100)||(a/=100,void 0!==(o=c[4])&&((o=parseFloat(o))<0||o>1)))return;if(0===i)s=l=u=Math.round(255*a);else{var h=a<.5?a*(1+i):a+i-a*i,d=2*a-h;s=Math.round(255*t(d,h,r+1/3)),l=Math.round(255*t(d,h,r)),u=Math.round(255*t(d,h,r-1/3))}n=[s,l,u,o]}return n},J=function(e){var t,n=RegExp("^"+W+"$").exec(e);if(n){t=[];for(var r=[],i=1;i<=3;i++){var a=n[i];if("%"===a[a.length-1]&&(r[i]=!0),a=parseFloat(a),r[i]&&(a=a/100*255),a<0||a>255)return;t.push(Math.floor(a))}var o=r[1]||r[2]||r[3],s=r[1]&&r[2]&&r[3];if(o&&!s)return;var l=n[4];if(void 0!==l){if((l=parseFloat(l))<0||l>1)return;t.push(l)}}return t},ee={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},et=function(e){for(var t=e.map,n=e.keys,r=n.length,i=0;i<r;i++){var a=n[i];if(_(a))throw Error("Tried to set map with object key");i<n.length-1?(null==t[a]&&(t[a]={}),t=t[a]):t[a]=e.value}},en=function(e){for(var t=e.map,n=e.keys,r=n.length,i=0;i<r;i++){var a=n[i];if(_(a))throw Error("Tried to get map with object key");if(null==(t=t[a]))break}return t},er=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},ei="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},ea="object"==typeof ei&&ei&&ei.Object===Object&&ei,eo="object"==typeof self&&self&&self.Object===Object&&self,es=ea||eo||Function("return this")(),el=function(){return es.Date.now()},eu=/\s/,ec=function(e){for(var t=e.length;t--&&eu.test(e.charAt(t)););return t},eh=/^\s+/,ed=es.Symbol,ep=Object.prototype,ef=ep.hasOwnProperty,eg=ep.toString,ev=ed?ed.toStringTag:void 0,ey=function(e){var t=ef.call(e,ev),n=e[ev];try{e[ev]=void 0;var r=!0}catch(e){}var i=eg.call(e);return r&&(t?e[ev]=n:delete e[ev]),i},em=Object.prototype.toString,eb=ed?ed.toStringTag:void 0,ex=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":eb&&eb in Object(e)?ey(e):em.call(e)},ew=function(e){return"symbol"==typeof e||null!=e&&"object"==typeof e&&"[object Symbol]"==ex(e)},eE=0/0,ek=/^[-+]0x[0-9a-f]+$/i,eC=/^0b[01]+$/i,eS=/^0o[0-7]+$/i,eD=parseInt,eT=function(e){if("number"==typeof e)return e;if(ew(e))return eE;if(er(e)){var t,n="function"==typeof e.valueOf?e.valueOf():e;e=er(n)?n+"":n}if("string"!=typeof e)return 0===e?e:+e;e=(t=e)?t.slice(0,ec(t)+1).replace(eh,""):t;var r=eC.test(e);return r||eS.test(e)?eD(e.slice(2),r?2:8):ek.test(e)?eE:+e},eP=Math.max,e_=Math.min,eM=function(e,t,n){var r,i,a,o,s,l,u=0,c=!1,h=!1,d=!0;if("function"!=typeof e)throw TypeError("Expected a function");function p(t){var n=r,a=i;return r=i=void 0,u=t,o=e.apply(a,n)}function f(e){var n=e-l,r=e-u;return void 0===l||n>=t||n<0||h&&r>=a}function g(){var e,n,r,i=el();if(f(i))return v(i);s=setTimeout(g,(e=i-l,n=i-u,r=t-e,h?e_(r,a-n):r))}function v(e){return(s=void 0,d&&r)?p(e):(r=i=void 0,o)}function y(){var e,n=el(),a=f(n);if(r=arguments,i=this,l=n,a){if(void 0===s)return u=e=l,s=setTimeout(g,t),c?p(e):o;if(h)return clearTimeout(s),s=setTimeout(g,t),p(l)}return void 0===s&&(s=setTimeout(g,t)),o}return t=eT(t)||0,er(n)&&(c=!!n.leading,a=(h="maxWait"in n)?eP(eT(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d),y.cancel=function(){void 0!==s&&clearTimeout(s),u=0,r=l=i=s=void 0},y.flush=function(){return void 0===s?o:v(el())},y},eB=b?b.performance:null,eA=eB&&eB.now?function(){return eB.now()}:function(){return Date.now()},eN=function(){if(b){if(b.requestAnimationFrame)return function(e){b.requestAnimationFrame(e)};if(b.mozRequestAnimationFrame)return function(e){b.mozRequestAnimationFrame(e)};if(b.webkitRequestAnimationFrame)return function(e){b.webkitRequestAnimationFrame(e)};if(b.msRequestAnimationFrame)return function(e){b.msRequestAnimationFrame(e)}}return function(e){e&&setTimeout(function(){e(eA())},1e3/60)}}(),eI=function(e){return eN(e)},eO=function(e){for(var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9261,r=n;!(t=e.next()).done;)r=65599*r+t.value|0;return r},eL=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9261;return 65599*t+e|0},eR=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5381;return(t<<5)+t+e|0},ez=function(e){return 2097152*e[0]+e[1]},eV=function(e,t){return[eL(e[0],t[0]),eR(e[1],t[1])]},eF=function(e,t){var n={value:0,done:!1},r=0,i=e.length;return eO({next:function(){return r<i?n.value=e[r++]:n.done=!0,n}},t)},ej=function(e,t){var n={value:0,done:!1},r=0,i=e.length;return eO({next:function(){return r<i?n.value=e.charCodeAt(r++):n.done=!0,n}},t)},eq=function(){return eX(arguments)},eX=function(e){for(var t,n=0;n<e.length;n++){var r=e[n];t=0===n?ej(r):ej(r,t)}return t},eY=!0,eW=null!=console.warn,eH=null!=console.trace,eG=Number.MAX_SAFE_INTEGER||9007199254740991,eU=function(){return!0},eK=function(){return!1},eZ=function(){return 0},e$=function(){},eQ=function(e){throw Error(e)},eJ=function(e){if(void 0===e)return eY;eY=!!e},e0=function(e){eJ()&&(eW?console.warn(e):(console.log(e),eH&&console.trace()))},e1=function(e){return null==e?e:P(e)?e.slice():_(e)?Z({},e):e},e2=function(e,t){for(t=e="";e++<36;t+=51*e&52?(15^e?8^Math.random()*(20^e?16:4):4).toString(16):"-");return t},e5={},e3=function(){return e5},e4=function(e){var t=Object.keys(e);return function(n){for(var r={},i=0;i<t.length;i++){var a=t[i],o=null==n?void 0:n[a];r[a]=void 0===o?e[a]:o}return r}},e9=function(e,t,n){for(var r=e.length-1;r>=0&&(e[r]!==t||(e.splice(r,1),!n));r--);},e6=function(e){e.splice(0,e.length)},e8=function(e,t){for(var n=0;n<t.length;n++){var r=t[n];e.push(r)}},e7=function(e,t,n){return n&&(t=q(n,t)),e[t]},te=function(e,t,n,r){n&&(t=q(n,t)),e[t]=r},tt=function(){function e(){i(this,e),this._obj={}}return o(e,[{key:"set",value:function(e,t){return this._obj[e]=t,this}},{key:"delete",value:function(e){return this._obj[e]=void 0,this}},{key:"clear",value:function(){this._obj={}}},{key:"has",value:function(e){return void 0!==this._obj[e]}},{key:"get",value:function(e){return this._obj[e]}}]),e}(),tn="undefined"!=typeof Map?Map:tt,tr=function(){function e(t){if(i(this,e),this._obj=Object.create(null),this.size=0,null!=t){var n;n=null!=t.instanceString&&t.instanceString()===this.instanceString()?t.toArray():t;for(var r=0;r<n.length;r++)this.add(n[r])}}return o(e,[{key:"instanceString",value:function(){return"set"}},{key:"add",value:function(e){var t=this._obj;1!==t[e]&&(t[e]=1,this.size++)}},{key:"delete",value:function(e){var t=this._obj;1===t[e]&&(t[e]=0,this.size--)}},{key:"clear",value:function(){this._obj=Object.create(null)}},{key:"has",value:function(e){return 1===this._obj[e]}},{key:"toArray",value:function(){var e=this;return Object.keys(this._obj).filter(function(t){return e.has(t)})}},{key:"forEach",value:function(e,t){return this.toArray().forEach(e,t)}}]),e}(),ti=("undefined"==typeof Set?"undefined":r(Set))!=="undefined"?Set:tr,ta=function(e,t){var n=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(void 0===e||void 0===t||!O(e)){eQ("An element must have a core reference and parameters set");return}var r=t.group;if(null==r&&(r=t.data&&null!=t.data.source&&null!=t.data.target?"edges":"nodes"),"nodes"!==r&&"edges"!==r){eQ("An element must be of type `nodes` or `edges`; you specified `"+r+"`");return}this.length=1,this[0]=this;var i=this._private={cy:e,single:!0,data:t.data||{},position:t.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:r,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!t.selected,selectable:void 0===t.selectable||!!t.selectable,locked:!!t.locked,grabbed:!1,grabbable:void 0===t.grabbable||!!t.grabbable,pannable:void 0===t.pannable?"edges"===r:!!t.pannable,active:!1,classes:new ti,animation:{current:[],queue:[]},rscratch:{},scratch:t.scratch||{},edges:[],children:[],parent:t.parent&&t.parent.isNode()?t.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(null==i.position.x&&(i.position.x=0),null==i.position.y&&(i.position.y=0),t.renderedPosition){var a=t.renderedPosition,o=e.pan(),s=e.zoom();i.position={x:(a.x-o.x)/s,y:(a.y-o.y)/s}}var l=[];P(t.classes)?l=t.classes:D(t.classes)&&(l=t.classes.split(/\s+/));for(var u=0,c=l.length;u<c;u++){var h=l[u];h&&""!==h&&i.classes.add(h)}this.createEmitter();var d=t.style||t.css;d&&(e0("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead."),this.style(d)),(void 0===n||n)&&this.restore()},to=function(e){return e={bfs:e.bfs||!e.dfs,dfs:e.dfs||!e.bfs},function(t,n,r){_(t)&&!A(t)&&(t=(i=t).roots||i.root,n=i.visit,r=i.directed),r=2!=arguments.length||T(n)?r:n,n=T(n)?n:function(){};for(var i,a,o=this._private.cy,s=t=D(t)?this.filter(t):t,l=[],u=[],c={},h={},d={},p=0,f=this.byGroup(),g=f.nodes,v=f.edges,y=0;y<s.length;y++){var b=s[y],x=b.id();b.isNode()&&(l.unshift(b),e.bfs&&(d[x]=!0,u.push(b)),h[x]=0)}for(;0!==l.length;){var w=function(){var t=e.bfs?l.shift():l.pop(),i=t.id();if(e.dfs){if(d[i])return"continue";d[i]=!0,u.push(t)}var o=h[i],s=c[i],f=null!=s?s.source():null,y=null!=s?s.target():null,b=null==s?void 0:t.same(f)?y[0]:f[0],x=void 0;if(!0===(x=n(t,s,b,p++,o)))return a=t,"break";if(!1===x)return"break";for(var w=t.connectedEdges().filter(function(e){return(!r||e.source().same(t))&&v.has(e)}),E=0;E<w.length;E++){var k=w[E],C=k.connectedNodes().filter(function(e){return!e.same(t)&&g.has(e)}),S=C.id();0===C.length||d[S]||(C=C[0],l.push(C),e.bfs&&(d[S]=!0,u.push(C)),c[S]=k,h[S]=h[i]+1)}}();if("continue"!==w&&"break"===w)break}for(var E=o.collection(),k=0;k<u.length;k++){var C=u[k],S=c[C.id()];null!=S&&E.push(S),E.push(C)}return{path:o.collection(E),found:o.collection(a)}}},ts={breadthFirstSearch:to({bfs:!0}),depthFirstSearch:to({dfs:!0})};ts.bfs=ts.breadthFirstSearch,ts.dfs=ts.depthFirstSearch;var tl=(function(e,t){(function(){var t,n,r,i,a,o,s,l,u,c,h,d,p,f,g,v;r=Math.floor,c=Math.min,n=function(e,t){return e<t?-1:e>t?1:0},u=function(e,t,i,a,o){var s;if(null==i&&(i=0),null==o&&(o=n),i<0)throw Error("lo must be non-negative");for(null==a&&(a=e.length);i<a;)0>o(t,e[s=r((i+a)/2)])?a=s:i=s+1;return[].splice.apply(e,[i,i-i].concat(t)),t},o=function(e,t,r){return null==r&&(r=n),e.push(t),f(e,0,e.length-1,r)},a=function(e,t){var r,i;return null==t&&(t=n),r=e.pop(),e.length?(i=e[0],e[0]=r,g(e,0,t)):i=r,i},l=function(e,t,r){var i;return null==r&&(r=n),i=e[0],e[0]=t,g(e,0,r),i},s=function(e,t,r){var i;return null==r&&(r=n),e.length&&0>r(e[0],t)&&(t=(i=[e[0],t])[0],e[0]=i[1],g(e,0,r)),t},i=function(e,t){var i,a,o,s,l,u;for(null==t&&(t=n),s=(function(){u=[];for(var t=0,n=r(e.length/2);0<=n?t<n:t>n;0<=n?t++:t--)u.push(t);return u}).apply(this).reverse(),l=[],a=0,o=s.length;a<o;a++)i=s[a],l.push(g(e,i,t));return l},p=function(e,t,r){var i;if(null==r&&(r=n),-1!==(i=e.indexOf(t)))return f(e,0,i,r),g(e,i,r)},h=function(e,t,r){var a,o,l,u;if(null==r&&(r=n),!(a=e.slice(0,t)).length)return a;for(i(a,r),o=0,l=(u=e.slice(t)).length;o<l;o++)s(a,u[o],r);return a.sort(r).reverse()},d=function(e,t,r){var o,s,l,h,d,p,f,g,v;if(null==r&&(r=n),10*t<=e.length){if(!(l=e.slice(0,t).sort(r)).length)return l;for(h=0,s=l[l.length-1],p=(f=e.slice(t)).length;h<p;h++)0>r(o=f[h],s)&&(u(l,o,0,null,r),l.pop(),s=l[l.length-1]);return l}for(i(e,r),v=[],d=0,g=c(t,e.length);0<=g?d<g:d>g;0<=g?++d:--d)v.push(a(e,r));return v},f=function(e,t,r,i){var a,o,s;for(null==i&&(i=n),a=e[r];r>t;){if(0>i(a,o=e[s=r-1>>1])){e[r]=o,r=s;continue}break}return e[r]=a},g=function(e,t,r){var i,a,o,s,l;for(null==r&&(r=n),a=e.length,l=t,o=e[t],i=2*t+1;i<a;)(s=i+1)<a&&!(0>r(e[i],e[s]))&&(i=s),e[t]=e[i],i=2*(t=i)+1;return e[t]=o,f(e,l,t,r)},t=function(){function e(e){this.cmp=null!=e?e:n,this.nodes=[]}return e.push=o,e.pop=a,e.replace=l,e.pushpop=s,e.heapify=i,e.updateItem=p,e.nlargest=h,e.nsmallest=d,e.prototype.push=function(e){return o(this.nodes,e,this.cmp)},e.prototype.pop=function(){return a(this.nodes,this.cmp)},e.prototype.peek=function(){return this.nodes[0]},e.prototype.contains=function(e){return -1!==this.nodes.indexOf(e)},e.prototype.replace=function(e){return l(this.nodes,e,this.cmp)},e.prototype.pushpop=function(e){return s(this.nodes,e,this.cmp)},e.prototype.heapify=function(){return i(this.nodes,this.cmp)},e.prototype.updateItem=function(e){return p(this.nodes,e,this.cmp)},e.prototype.clear=function(){return this.nodes=[]},e.prototype.empty=function(){return 0===this.nodes.length},e.prototype.size=function(){return this.nodes.length},e.prototype.clone=function(){var t;return(t=new e).nodes=this.nodes.slice(0),t},e.prototype.toArray=function(){return this.nodes.slice(0)},e.prototype.insert=e.prototype.push,e.prototype.top=e.prototype.peek,e.prototype.front=e.prototype.peek,e.prototype.has=e.prototype.contains,e.prototype.copy=e.prototype.clone,e}(),v=function(){return t},e.exports=v()}).call(ei)}(oX={exports:{}},oX.exports),oX.exports),tu=e4({root:null,weight:function(e){return 1},directed:!1}),tc=e4({root:null,goal:null,weight:function(e){return 1},heuristic:function(e){return 0},directed:!1}),th=e4({weight:function(e){return 1},directed:!1}),td=e4({weight:function(e){return 1},directed:!1,root:null}),tp=Math.sqrt(2),tf=function(e,t,n){0===n.length&&eQ("Karger-Stein must be run on a connected (sub)graph");for(var r=n[e],i=r[1],a=r[2],o=t[i],s=t[a],l=n.length-1;l>=0;l--){var u=n[l],c=u[1],h=u[2];(t[c]===o&&t[h]===s||t[c]===s&&t[h]===o)&&n.splice(l,1)}for(var d=0;d<n.length;d++){var p=n[d];p[1]===s?(n[d]=p.slice(),n[d][1]=o):p[2]===s&&(n[d]=p.slice(),n[d][2]=o)}for(var f=0;f<t.length;f++)t[f]===s&&(t[f]=o);return n},tg=function(e,t,n,r){for(;n>r;)t=tf(Math.floor(Math.random()*t.length),e,t),n--;return t},tv=function(e,t,n){return{x:e.x*t+n.x,y:e.y*t+n.y}},ty=function(e,t,n){return{x:(e.x-n.x)/t,y:(e.y-n.y)/t}},tm=function(e){return{x:e[0],y:e[1]}},tb=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=1/0,i=t;i<n;i++){var a=e[i];isFinite(a)&&(r=Math.min(a,r))}return r},tx=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=-1/0,i=t;i<n;i++){var a=e[i];isFinite(a)&&(r=Math.max(a,r))}return r},tw=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=0,i=0,a=t;a<n;a++){var o=e[a];isFinite(o)&&(r+=o,i++)}return r/i},tE=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=!(arguments.length>3)||void 0===arguments[3]||arguments[3],i=!(arguments.length>4)||void 0===arguments[4]||arguments[4],a=!(arguments.length>5)||void 0===arguments[5]||arguments[5];r?e=e.slice(t,n):(n<e.length&&e.splice(n,e.length-n),t>0&&e.splice(0,t));for(var o=0,s=e.length-1;s>=0;s--){var l=e[s];a?!isFinite(l)&&(e[s]=-1/0,o++):e.splice(s,1)}i&&e.sort(function(e,t){return e-t});var u=e.length,c=Math.floor(u/2);return u%2!=0?e[c+1+o]:(e[c-1+o]+e[c+o])/2},tk=function(e,t){return Math.atan2(t,e)-Math.PI/2},tC=Math.log2||function(e){return Math.log(e)/Math.log(2)},tS=function(e){return e>0?1:e<0?-1:0},tD=function(e,t){return Math.sqrt(tT(e,t))},tT=function(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r},tP=function(e){for(var t=e.length,n=0,r=0;r<t;r++)n+=e[r];for(var i=0;i<t;i++)e[i]=e[i]/n;return e},t_=function(e,t,n,r){return(1-r)*(1-r)*e+2*(1-r)*r*t+r*r*n},tM=function(e,t,n,r){return{x:t_(e.x,t.x,n.x,r),y:t_(e.y,t.y,n.y,r)}},tB=function(e,t,n,r){var i={x:t.x-e.x,y:t.y-e.y},a=tD(e,t),o={x:i.x/a,y:i.y/a};return n=null==n?0:n,r=null!=r?r:n*a,{x:e.x+o.x*r,y:e.y+o.y*r}},tA=function(e,t,n){return Math.max(e,Math.min(n,t))},tN=function(e){if(null==e)return{x1:1/0,y1:1/0,x2:-1/0,y2:-1/0,w:0,h:0};if(null!=e.x1&&null!=e.y1){if(null!=e.x2&&null!=e.y2&&e.x2>=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(null!=e.w&&null!=e.h&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},tI=function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},tO=function(e,t){e.x1=Math.min(e.x1,t.x1),e.x2=Math.max(e.x2,t.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,t.y1),e.y2=Math.max(e.y2,t.y2),e.h=e.y2-e.y1},tL=function(e,t,n){e.x1=Math.min(e.x1,t),e.x2=Math.max(e.x2,t),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},tR=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e.x1-=t,e.x2+=t,e.y1-=t,e.y2+=t,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},tz=function(e){var t,n,r,i,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0];if(1===a.length)t=n=r=i=a[0];else if(2===a.length)t=r=a[0],i=n=a[1];else if(4===a.length){var o=l(a,4);t=o[0],n=o[1],r=o[2],i=o[3]}return e.x1-=i,e.x2+=n,e.y1-=t,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},tV=function(e,t){e.x1=t.x1,e.y1=t.y1,e.x2=t.x2,e.y2=t.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},tF=function(e,t){return!(e.x1>t.x2)&&!(t.x1>e.x2)&&!(e.x2<t.x1)&&!(t.x2<e.x1)&&!(e.y2<t.y1)&&!(t.y2<e.y1)&&!(e.y1>t.y2)&&!(t.y1>e.y2)},tj=function(e,t,n){return e.x1<=t&&t<=e.x2&&e.y1<=n&&n<=e.y2},tq=function(e,t){return tj(e,t.x1,t.y1)&&tj(e,t.x2,t.y2)},tX=function(e,t,n,r,i,a,o){var s,l,u=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"auto",c="auto"===u?nn(i,a):u,h=i/2,d=a/2,p=(c=Math.min(c,h,d))!==h,f=c!==d;if(p){var g=n-h+c-o,v=r-d-o,y=n+h-c+o;if((s=t4(e,t,n,r,g,v,y,v,!1)).length>0)return s}if(f){var b=n+h+o,x=r-d+c-o,w=r+d-c+o;if((s=t4(e,t,n,r,b,x,b,w,!1)).length>0)return s}if(p){var E=n-h+c-o,k=r+d+o,C=n+h-c+o;if((s=t4(e,t,n,r,E,k,C,k,!1)).length>0)return s}if(f){var S=n-h-o,D=r-d+c-o,T=r+d-c+o;if((s=t4(e,t,n,r,S,D,S,T,!1)).length>0)return s}var P=n-h+c,_=r-d+c;if((l=t5(e,t,n,r,P,_,c+o)).length>0&&l[0]<=P&&l[1]<=_)return[l[0],l[1]];var M=n+h-c,B=r-d+c;if((l=t5(e,t,n,r,M,B,c+o)).length>0&&l[0]>=M&&l[1]<=B)return[l[0],l[1]];var A=n+h-c,N=r+d-c;if((l=t5(e,t,n,r,A,N,c+o)).length>0&&l[0]>=A&&l[1]>=N)return[l[0],l[1]];var I=n-h+c,O=r+d-c;return(l=t5(e,t,n,r,I,O,c+o)).length>0&&l[0]<=I&&l[1]>=O?[l[0],l[1]]:[]},tY=function(e,t,n,r,i,a,o){var s=Math.min(n,i),l=Math.max(n,i),u=Math.min(r,a),c=Math.max(r,a);return s-o<=e&&e<=l+o&&u-o<=t&&t<=c+o},tW=function(e,t,n,r,i,a,o,s,l){var u={x1:Math.min(n,o,i)-l,x2:Math.max(n,o,i)+l,y1:Math.min(r,s,a)-l,y2:Math.max(r,s,a)+l};return!(e<u.x1)&&!(e>u.x2)&&!(t<u.y1)&&!(t>u.y2)},tH=function(e,t,n,r){var i=t*t-4*e*(n-=r);if(i<0)return[];var a=Math.sqrt(i),o=2*e;return[(-t+a)/o,(-t-a)/o]},tG=function(e,t,n,r,i){var a,o,s,l,u,c,h,d;if(0===e&&(e=1e-5),t/=e,n/=e,r/=e,a=(o=(3*n-t*t)/9)*o*o+(s=(-(27*r)+t*(9*n-t*t*2))/54)*s,i[1]=0,h=t/3,a>0){u=(u=s+Math.sqrt(a))<0?-Math.pow(-u,1/3):Math.pow(u,1/3),c=(c=s-Math.sqrt(a))<0?-Math.pow(-c,1/3):Math.pow(c,1/3),i[0]=-h+u+c,h+=(u+c)/2,i[4]=i[2]=-h,h=Math.sqrt(3)*(-c+u)/2,i[3]=h,i[5]=-h;return}if(i[5]=i[3]=0,0===a){d=s<0?-Math.pow(-s,1/3):Math.pow(s,1/3),i[0]=-h+2*d,i[4]=i[2]=-(d+h);return}l=Math.acos(s/Math.sqrt(l=(o=-o)*o*o)),d=2*Math.sqrt(o),i[0]=-h+d*Math.cos(l/3),i[2]=-h+d*Math.cos((l+2*Math.PI)/3),i[4]=-h+d*Math.cos((l+4*Math.PI)/3)},tU=function(e,t,n,r,i,a,o,s){var l,u=[];tG(1*n*n-4*n*i+2*n*o+4*i*i-4*i*o+o*o+r*r-4*r*a+2*r*s+4*a*a-4*a*s+s*s,9*n*i-3*n*n-3*n*o-6*i*i+3*i*o+9*r*a-3*r*r-3*r*s-6*a*a+3*a*s,3*n*n-6*n*i+n*o-n*e+2*i*i+2*i*e-o*e+3*r*r-6*r*a+r*s-r*t+2*a*a+2*a*t-s*t,1*n*i-n*n+n*e-i*e+r*a-r*r+r*t-a*t,u);for(var c=[],h=0;h<6;h+=2)1e-7>Math.abs(u[h+1])&&u[h]>=0&&u[h]<=1&&c.push(u[h]);c.push(1),c.push(0);for(var d=-1,p=0;p<c.length;p++)l=Math.pow(Math.pow(1-c[p],2)*n+2*(1-c[p])*c[p]*i+c[p]*c[p]*o-e,2)+Math.pow(Math.pow(1-c[p],2)*r+2*(1-c[p])*c[p]*a+c[p]*c[p]*s-t,2),d>=0?l<d&&(d=l):d=l;return d},tK=function(e,t,n,r,i,a){var o=[e-n,t-r],s=[i-n,a-r],l=s[0]*s[0]+s[1]*s[1],u=o[0]*o[0]+o[1]*o[1],c=o[0]*s[0]+o[1]*s[1],h=c*c/l;return c<0?u:h>l?(e-i)*(e-i)+(t-a)*(t-a):u-h},tZ=function(e,t,n){for(var r,i,a,o,s=0,l=0;l<n.length/2;l++)if(r=n[2*l],i=n[2*l+1],l+1<n.length/2?(a=n[(l+1)*2],o=n[(l+1)*2+1]):(a=n[(l+1-n.length/2)*2],o=n[(l+1-n.length/2)*2+1]),r==e&&a==e);else{if((!(r>=e)||!(e>=a))&&(!(r<=e)||!(e<=a)))continue;(e-r)/(a-r)*(o-i)+i>t&&s++}return s%2!=0},t$=function(e,t,n,r,i,a,o,s,l){var u,c=Array(n.length);null!=s[0]?(u=Math.atan(s[1]/s[0]),s[0]<0?u+=Math.PI/2:u=-u-Math.PI/2):u=s;for(var h=Math.cos(-u),d=Math.sin(-u),p=0;p<c.length/2;p++)c[2*p]=a/2*(n[2*p]*h-n[2*p+1]*d),c[2*p+1]=o/2*(n[2*p+1]*h+n[2*p]*d),c[2*p]+=r,c[2*p+1]+=i;return tZ(e,t,l>0?tJ(t0(c,-l)):c)},tQ=function(e,t,n,r,i,a,o,s){for(var l=Array(2*n.length),u=0;u<s.length;u++){var c=s[u];if(l[4*u+0]=c.startX,l[4*u+1]=c.startY,l[4*u+2]=c.stopX,l[4*u+3]=c.stopY,Math.pow(c.cx-e,2)+Math.pow(c.cy-t,2)<=Math.pow(c.radius,2))return!0}return tZ(e,t,l)},tJ=function(e){for(var t,n,r,i,a,o,s,l,u=Array(e.length/2),c=0;c<e.length/4;c++){t=e[4*c],n=e[4*c+1],r=e[4*c+2],i=e[4*c+3],c<e.length/4-1?(a=e[(c+1)*4],o=e[(c+1)*4+1],s=e[(c+1)*4+2],l=e[(c+1)*4+3]):(a=e[0],o=e[1],s=e[2],l=e[3]);var h=t4(t,n,r,i,a,o,s,l,!0);u[2*c]=h[0],u[2*c+1]=h[1]}return u},t0=function(e,t){for(var n,r,i,a,o=Array(2*e.length),s=0;s<e.length/2;s++){n=e[2*s],r=e[2*s+1],s<e.length/2-1?(i=e[(s+1)*2],a=e[(s+1)*2+1]):(i=e[0],a=e[1]);var l=a-r,u=-(i-n),c=Math.sqrt(l*l+u*u),h=l/c,d=u/c;o[4*s]=n+h*t,o[4*s+1]=r+d*t,o[4*s+2]=i+h*t,o[4*s+3]=a+d*t}return o},t1=function(e,t,n,r,i,a){var o=n-e,s=r-t,l=Math.sqrt((o/=i)*o+(s/=a)*s),u=l-1;if(u<0)return[];var c=u/l;return[(n-e)*c+e,(r-t)*c+t]},t2=function(e,t,n,r,i,a,o){return e-=i,t-=a,(e/=n/2+o)*e+(t/=r/2+o)*t<=1},t5=function(e,t,n,r,i,a,o){var s=[n-e,r-t],l=[e-i,t-a],u=s[0]*s[0]+s[1]*s[1],c=2*(l[0]*s[0]+l[1]*s[1]),h=c*c-4*u*(l[0]*l[0]+l[1]*l[1]-o*o);if(h<0)return[];var d=(-c+Math.sqrt(h))/(2*u),p=(-c-Math.sqrt(h))/(2*u),f=Math.min(d,p),g=Math.max(d,p),v=[];if(f>=0&&f<=1&&v.push(f),g>=0&&g<=1&&v.push(g),0===v.length)return[];var y=v[0]*s[0]+e,b=v[0]*s[1]+t;return v.length>1?v[0]==v[1]?[y,b]:[y,b,v[1]*s[0]+e,v[1]*s[1]+t]:[y,b]},t3=function(e,t,n){return t<=e&&e<=n||n<=e&&e<=t?e:e<=t&&t<=n||n<=t&&t<=e?t:n},t4=function(e,t,n,r,i,a,o,s,l){var u=e-i,c=n-e,h=o-i,d=t-a,p=r-t,f=s-a,g=h*d-f*u,v=c*d-p*u,y=f*c-h*p;if(0!==y){var b=g/y,x=v/y;return -.001<=b&&b<=1.001&&-.001<=x&&x<=1.001?[e+b*c,t+b*p]:l?[e+b*c,t+b*p]:[]}return 0!==g&&0!==v?[]:t3(e,n,o)===o?[o,s]:t3(e,n,i)===i?[i,a]:t3(i,o,n)===n?[n,r]:[]},t9=function(e,t,n,r,i,a,o,s){var l,u,c,h,d,p,f=[],g=Array(n.length),v=!0;if(null==a&&(v=!1),v){for(var y=0;y<g.length/2;y++)g[2*y]=n[2*y]*a+r,g[2*y+1]=n[2*y+1]*o+i;u=s>0?tJ(t0(g,-s)):g}else u=n;for(var b=0;b<u.length/2;b++)c=u[2*b],h=u[2*b+1],b<u.length/2-1?(d=u[(b+1)*2],p=u[(b+1)*2+1]):(d=u[0],p=u[1]),0!==(l=t4(e,t,r,i,c,h,d,p)).length&&f.push(l[0],l[1]);return f},t6=function(e,t,n,r,i,a,o,s,l){var u,c=[],h=Array(2*n.length);l.forEach(function(n,a){0===a?(h[h.length-2]=n.startX,h[h.length-1]=n.startY):(h[4*a-2]=n.startX,h[4*a-1]=n.startY),h[4*a]=n.stopX,h[4*a+1]=n.stopY,0!==(u=t5(e,t,r,i,n.cx,n.cy,n.radius)).length&&c.push(u[0],u[1])});for(var d=0;d<h.length/4;d++)0!==(u=t4(e,t,r,i,h[4*d],h[4*d+1],h[4*d+2],h[4*d+3],!1)).length&&c.push(u[0],u[1]);if(c.length>2){for(var p=[c[0],c[1]],f=Math.pow(p[0]-e,2)+Math.pow(p[1]-t,2),g=1;g<c.length/2;g++){var v=Math.pow(c[2*g]-e,2)+Math.pow(c[2*g+1]-t,2);v<=f&&(p[0]=c[2*g],p[1]=c[2*g+1],f=v)}return p}return c},t8=function(e,t,n){var r=[e[0]-t[0],e[1]-t[1]],i=Math.sqrt(r[0]*r[0]+r[1]*r[1]),a=(i-n)/i;return a<0&&(a=1e-5),[t[0]+a*r[0],t[1]+a*r[1]]},t7=function(e,t){return ne(nt(e,t))},ne=function(e){for(var t,n,r=e.length/2,i=1/0,a=1/0,o=-1/0,s=-1/0,l=0;l<r;l++)t=e[2*l],n=e[2*l+1],i=Math.min(i,t),o=Math.max(o,t),a=Math.min(a,n),s=Math.max(s,n);for(var u=2/(o-i),c=2/(s-a),h=0;h<r;h++)t=e[2*h]=e[2*h]*u,n=e[2*h+1]=e[2*h+1]*c,i=Math.min(i,t),o=Math.max(o,t),a=Math.min(a,n),s=Math.max(s,n);if(a<-1)for(var d=0;d<r;d++)n=e[2*d+1]=e[2*d+1]+(-1-a);return e},nt=function(e,t){var n,r=1/e*2*Math.PI,i=e%2==0?Math.PI/2+r/2:Math.PI/2;i+=t;for(var a=Array(2*e),o=0;o<e;o++)n=o*r+i,a[2*o]=Math.cos(n),a[2*o+1]=Math.sin(-n);return a},nn=function(e,t){return Math.min(e/4,t/4,8)},nr=function(e,t){return Math.min(e/10,t/10,8)},ni=function(){return 8},na=function(e,t){return{heightOffset:Math.min(15,.05*t),widthOffset:Math.min(100,.25*e),ctrlPtOffsetPct:.05}},no=e4({dampingFactor:.8,precision:1e-6,iterations:200,weight:function(e){return 1}}),ns=e4({root:null,weight:function(e){return 1},directed:!1,alpha:0}),nl={degreeCentralityNormalized:function(e){e=ns(e);var t=this.cy(),n=this.nodes(),r=n.length;if(e.directed){for(var i={},a={},o=0,s=0,l=0;l<r;l++){var u=n[l],c=u.id();e.root=u;var h=this.degreeCentrality(e);o<h.indegree&&(o=h.indegree),s<h.outdegree&&(s=h.outdegree),i[c]=h.indegree,a[c]=h.outdegree}return{indegree:function(e){return 0==o?0:(D(e)&&(e=t.filter(e)),i[e.id()]/o)},outdegree:function(e){return 0===s?0:(D(e)&&(e=t.filter(e)),a[e.id()]/s)}}}for(var d={},p=0,f=0;f<r;f++){var g=n[f];e.root=g;var v=this.degreeCentrality(e);p<v.degree&&(p=v.degree),d[g.id()]=v.degree}return{degree:function(e){return 0===p?0:(D(e)&&(e=t.filter(e)),d[e.id()]/p)}}},degreeCentrality:function(e){e=ns(e);var t=this.cy(),n=this,r=e,i=r.root,a=r.weight,o=r.directed,s=r.alpha;if(i=t.collection(i)[0],o){for(var l=i.connectedEdges(),u=l.filter(function(e){return e.target().same(i)&&n.has(e)}),c=l.filter(function(e){return e.source().same(i)&&n.has(e)}),h=u.length,d=c.length,p=0,f=0,g=0;g<u.length;g++)p+=a(u[g]);for(var v=0;v<c.length;v++)f+=a(c[v]);return{indegree:Math.pow(h,1-s)*Math.pow(p,s),outdegree:Math.pow(d,1-s)*Math.pow(f,s)}}for(var y=i.connectedEdges().intersection(n),b=y.length,x=0,w=0;w<y.length;w++)x+=a(y[w]);return{degree:Math.pow(b,1-s)*Math.pow(x,s)}}};nl.dc=nl.degreeCentrality,nl.dcn=nl.degreeCentralityNormalised=nl.degreeCentralityNormalized;var nu=e4({harmonic:!0,weight:function(){return 1},directed:!1,root:null}),nc={closenessCentralityNormalized:function(e){for(var t=nu(e),n=t.harmonic,r=t.weight,i=t.directed,a=this.cy(),o={},s=0,l=this.nodes(),u=this.floydWarshall({weight:r,directed:i}),c=0;c<l.length;c++){for(var h=0,d=l[c],p=0;p<l.length;p++)if(c!==p){var f=u.distance(d,l[p]);n?h+=1/f:h+=f}n||(h=1/h),s<h&&(s=h),o[d.id()]=h}return{closeness:function(e){return 0==s?0:o[e=D(e)?a.filter(e)[0].id():e.id()]/s}}},closenessCentrality:function(e){var t=nu(e),n=t.root,r=t.weight,i=t.directed,a=t.harmonic;n=this.filter(n)[0];for(var o=this.dijkstra({root:n,weight:r,directed:i}),s=0,l=this.nodes(),u=0;u<l.length;u++){var c=l[u];if(!c.same(n)){var h=o.distanceTo(c);a?s+=1/h:s+=h}}return a?s:1/s}};nc.cc=nc.closenessCentrality,nc.ccn=nc.closenessCentralityNormalised=nc.closenessCentralityNormalized;var nh=e4({weight:null,directed:!1}),nd={betweennessCentrality:function(e){for(var t=nh(e),n=t.directed,r=t.weight,i=null!=r,a=this.cy(),o=this.nodes(),s={},l={},u=0,c={set:function(e,t){l[e]=t,t>u&&(u=t)},get:function(e){return l[e]}},h=0;h<o.length;h++){var d=o[h],p=d.id();n?s[p]=d.outgoers().nodes():s[p]=d.openNeighborhood().nodes(),c.set(p,0)}for(var f=0;f<o.length;f++)!function(e){for(var t=o[e].id(),n=[],l={},u={},h={},d=new tl(function(e,t){return h[e]-h[t]}),p=0;p<o.length;p++){var f=o[p].id();l[f]=[],u[f]=0,h[f]=1/0}for(u[t]=1,h[t]=0,d.push(t);!d.empty();){var g=d.pop();if(n.push(g),i)for(var v=0;v<s[g].length;v++){var y=s[g][v],b=a.getElementById(g),x=r(b.edgesTo(y).length>0?b.edgesTo(y)[0]:y.edgesTo(b)[0]);h[y=y.id()]>h[g]+x&&(h[y]=h[g]+x,0>d.nodes.indexOf(y)?d.push(y):d.updateItem(y),u[y]=0,l[y]=[]),h[y]==h[g]+x&&(u[y]=u[y]+u[g],l[y].push(g))}else for(var w=0;w<s[g].length;w++){var E=s[g][w].id();h[E]==1/0&&(d.push(E),h[E]=h[g]+1),h[E]==h[g]+1&&(u[E]=u[E]+u[g],l[E].push(g))}}for(var k={},C=0;C<o.length;C++)k[o[C].id()]=0;for(;n.length>0;){for(var S=n.pop(),D=0;D<l[S].length;D++){var T=l[S][D];k[T]=k[T]+u[T]/u[S]*(1+k[S])}S!=o[e].id()&&c.set(S,c.get(S)+k[S])}}(f);var g={betweenness:function(e){var t=a.collection(e).id();return c.get(t)},betweennessNormalized:function(e){if(0==u)return 0;var t=a.collection(e).id();return c.get(t)/u}};return g.betweennessNormalised=g.betweennessNormalized,g}};nd.bc=nd.betweennessCentrality;var np=e4({expandFactor:2,inflateFactor:2,multFactor:1,maxIterations:20,attributes:[function(e){return 1}]}),nf=function(e,t){for(var n=0,r=0;r<t.length;r++)n+=t[r](e);return n},ng=function(e,t,n){for(var r=0;r<t;r++)e[r*t+r]=n},nv=function(e,t){for(var n,r=0;r<t;r++){n=0;for(var i=0;i<t;i++)n+=e[i*t+r];for(var a=0;a<t;a++)e[a*t+r]=e[a*t+r]/n}},ny=function(e,t,n){for(var r=Array(n*n),i=0;i<n;i++){for(var a=0;a<n;a++)r[i*n+a]=0;for(var o=0;o<n;o++)for(var s=0;s<n;s++)r[i*n+s]+=e[i*n+o]*t[o*n+s]}return r},nm=function(e,t,n){for(var r=e.slice(0),i=1;i<n;i++)e=ny(e,r,t);return e},nb=function(e,t,n){for(var r=Array(t*t),i=0;i<t*t;i++)r[i]=Math.pow(e[i],n);return nv(r,t),r},nx=function(e,t,n,r){for(var i=0;i<n;i++)if(Math.round(e[i]*Math.pow(10,r))/Math.pow(10,r)!=Math.round(t[i]*Math.pow(10,r))/Math.pow(10,r))return!1;return!0},nw=function(e,t,n,r){for(var i=[],a=0;a<t;a++){for(var o=[],s=0;s<t;s++)Math.round(1e3*e[a*t+s])/1e3>0&&o.push(n[s]);0!==o.length&&i.push(r.collection(o))}return i},nE=function(e,t){for(var n=0;n<e.length;n++)if(!t[n]||e[n].id()!==t[n].id())return!1;return!0},nk=function(e){for(var t=0;t<e.length;t++)for(var n=0;n<e.length;n++)t!=n&&nE(e[t],e[n])&&e.splice(n,1);return e},nC=function(e){for(var t=this.nodes(),n=this.edges(),r=this.cy(),i=np(e),a={},o=0;o<t.length;o++)a[t[o].id()]=o;for(var s,l=t.length,u=l*l,c=Array(u),h=0;h<u;h++)c[h]=0;for(var d=0;d<n.length;d++){var p=n[d],f=a[p.source().id()],g=a[p.target().id()],v=nf(p,i.attributes);c[f*l+g]+=v,c[g*l+f]+=v}ng(c,l,i.multFactor),nv(c,l);for(var y=!0,b=0;y&&b<i.maxIterations;)y=!1,nx(c=nb(s=nm(c,l,i.expandFactor),l,i.inflateFactor),s,u,4)||(y=!0),b++;return nk(nw(c,l,t,r))},nS=function(e){return e},nD=function(e,t){return Math.abs(t-e)},nT=function(e,t,n){return e+nD(t,n)},nP=function(e,t,n){return e+Math.pow(n-t,2)},n_=function(e){return Math.sqrt(e)},nM=function(e,t,n){return Math.max(e,nD(t,n))},nB=function(e,t,n,r,i){for(var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:nS,o=r,s=0;s<e;s++)o=i(o,t(s),n(s));return a(o)},nA={euclidean:function(e,t,n){return e>=2?nB(e,t,n,0,nP,n_):nB(e,t,n,0,nT)},squaredEuclidean:function(e,t,n){return nB(e,t,n,0,nP)},manhattan:function(e,t,n){return nB(e,t,n,0,nT)},max:function(e,t,n){return nB(e,t,n,-1/0,nM)}};function nN(e,t,n,r,i,a){var o;return(o=T(e)?e:nA[e]||nA.euclidean,0===t&&T(e))?o(i,a):o(t,n,r,i,a)}nA["squared-euclidean"]=nA.squaredEuclidean,nA.squaredeuclidean=nA.squaredEuclidean;var nI=e4({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),nO=function(e){return nI(e)},nL=function(e,t,n,r,i){var a="kMedoids"!==i?function(e){return n[e]}:function(e){return r[e](n)};return nN(e,r.length,a,function(e){return r[e](t)},n,t)},nR=function(e,t,n){for(var r=n.length,i=Array(r),a=Array(r),o=Array(t),s=null,l=0;l<r;l++)i[l]=e.min(n[l]).value,a[l]=e.max(n[l]).value;for(var u=0;u<t;u++){s=[];for(var c=0;c<r;c++)s[c]=Math.random()*(a[c]-i[c])+i[c];o[u]=s}return o},nz=function(e,t,n,r,i){for(var a=1/0,o=0,s=0;s<t.length;s++){var l=nL(n,e,t[s],r,i);l<a&&(a=l,o=s)}return o},nV=function(e,t,n){for(var r=[],i=null,a=0;a<t.length;a++)n[(i=t[a]).id()]===e&&r.push(i);return r},nF=function(e,t,n){for(var r=0;r<e.length;r++)for(var i=0;i<e[r].length;i++)if(Math.abs(e[r][i]-t[r][i])>n)return!1;return!0},nj=function(e,t,n){for(var r=0;r<n;r++)if(e===t[r])return!0;return!1},nq=function(e,t){var n=Array(t);if(e.length<50)for(var r=0;r<t;r++){for(var i=e[Math.floor(Math.random()*e.length)];nj(i,n,r);)i=e[Math.floor(Math.random()*e.length)];n[r]=i}else for(var a=0;a<t;a++)n[a]=e[Math.floor(Math.random()*e.length)];return n},nX=function(e,t,n){for(var r=0,i=0;i<t.length;i++)r+=nL("manhattan",t[i],e,n,"kMedoids");return r},nY=function(e,t,n,r,i){for(var a,o,s=0;s<t.length;s++)for(var l=0;l<e.length;l++)r[s][l]=Math.pow(n[s][l],i.m);for(var u=0;u<e.length;u++)for(var c=0;c<i.attributes.length;c++){a=0,o=0;for(var h=0;h<t.length;h++)a+=r[h][u]*i.attributes[c](t[h]),o+=r[h][u];e[u][c]=a/o}},nW=function(e,t,n,r,i){for(var a,o=0;o<e.length;o++)t[o]=e[o].slice();for(var s=2/(i.m-1),l=0;l<n.length;l++)for(var u=0;u<r.length;u++){a=0;for(var c=0;c<n.length;c++)a+=Math.pow(nL(i.distance,r[u],n[l],i.attributes,"cmeans")/nL(i.distance,r[u],n[c],i.attributes,"cmeans"),s);e[u][l]=1/a}},nH=function(e,t,n,r){for(var i,a,o=Array(n.k),s=0;s<o.length;s++)o[s]=[];for(var l=0;l<t.length;l++){i=-1/0,a=-1;for(var u=0;u<t[0].length;u++)t[l][u]>i&&(i=t[l][u],a=u);o[a].push(e[l])}for(var c=0;c<o.length;c++)o[c]=r.collection(o[c]);return o},nG=function(e){var t,n,r,i,a=this.cy(),o=this.nodes(),s=nO(e);r=Array(o.length);for(var l=0;l<o.length;l++)r[l]=Array(s.k);n=Array(o.length);for(var u=0;u<o.length;u++)n[u]=Array(s.k);for(var c=0;c<o.length;c++){for(var h=0,d=0;d<s.k;d++)n[c][d]=Math.random(),h+=n[c][d];for(var p=0;p<s.k;p++)n[c][p]=n[c][p]/h}t=Array(s.k);for(var f=0;f<s.k;f++)t[f]=Array(s.attributes.length);i=Array(o.length);for(var g=0;g<o.length;g++)i[g]=Array(s.k);for(var v=!0,y=0;v&&y<s.maxIterations;)v=!1,nY(t,o,n,i,s),nW(n,r,t,o,s),nF(n,r,s.sensitivityThreshold)||(v=!0),y++;return{clusters:nH(o,n,s,a),degreeOfMembership:n}},nU=e4({distance:"euclidean",linkage:"min",mode:"threshold",threshold:1/0,addDendrogram:!1,dendrogramDepth:0,attributes:[]}),nK={single:"min",complete:"max"},nZ=function(e){var t=nU(e),n=nK[t.linkage];return null!=n&&(t.linkage=n),t},n$=function(e,t,n,r,i){for(var a,o,s=0,l=1/0,u=i.attributes,c=function(e,t){return nN(i.distance,u.length,function(t){return u[t](e)},function(e){return u[e](t)},e,t)},h=0;h<e.length;h++){var d=e[h].key,p=n[d][r[d]];p<l&&(s=d,l=p)}if("threshold"===i.mode&&l>=i.threshold||"dendrogram"===i.mode&&1===e.length)return!1;var f=t[s],g=t[r[s]];o="dendrogram"===i.mode?{left:f,right:g,key:f.key}:{value:f.value.concat(g.value),key:f.key},e[f.index]=o,e.splice(g.index,1),t[f.key]=o;for(var v=0;v<e.length;v++){var y=e[v];f.key===y.key?a=1/0:"min"===i.linkage?(a=n[f.key][y.key],n[f.key][y.key]>n[g.key][y.key]&&(a=n[g.key][y.key])):"max"===i.linkage?(a=n[f.key][y.key],n[f.key][y.key]<n[g.key][y.key]&&(a=n[g.key][y.key])):a="mean"===i.linkage?(n[f.key][y.key]*f.size+n[g.key][y.key]*g.size)/(f.size+g.size):"dendrogram"===i.mode?c(y.value,f.value):c(y.value[0],f.value[0]),n[f.key][y.key]=n[y.key][f.key]=a}for(var b=0;b<e.length;b++){var x=e[b].key;if(r[x]===f.key||r[x]===g.key){for(var w=x,E=0;E<e.length;E++){var k=e[E].key;n[x][k]<n[x][w]&&(w=k)}r[x]=w}e[b].index=b}return f.key=g.key=f.index=g.index=null,!0},nQ=function e(t,n,r){t&&(t.value?n.push(t.value):(t.left&&e(t.left,n),t.right&&e(t.right,n)))},nJ=function e(t,n){if(!t)return"";if(t.left&&t.right){var r=e(t.left,n),i=e(t.right,n),a=n.add({group:"nodes",data:{id:r+","+i}});return n.add({group:"edges",data:{source:r,target:a.id()}}),n.add({group:"edges",data:{source:i,target:a.id()}}),a.id()}if(t.value)return t.value.id()},n0=function e(t,n,r){if(!t)return[];var i=[],a=[],o=[];return 0===n?(t.left&&nQ(t.left,i),t.right&&nQ(t.right,a),o=i.concat(a),[r.collection(o)]):1===n?t.value?[r.collection(t.value)]:(t.left&&nQ(t.left,i),t.right&&nQ(t.right,a),[r.collection(i),r.collection(a)]):t.value?[r.collection(t.value)]:(t.left&&(i=e(t.left,n-1,r)),t.right&&(a=e(t.right,n-1,r)),i.concat(a))},n1=function(e){for(var t,n=this.cy(),r=this.nodes(),i=nZ(e),a=i.attributes,o=function(e,t){return nN(i.distance,a.length,function(t){return a[t](e)},function(e){return a[e](t)},e,t)},s=[],l=[],u=[],c=[],h=0;h<r.length;h++){var d={value:"dendrogram"===i.mode?r[h]:[r[h]],key:h,index:h};s[h]=d,c[h]=d,l[h]=[],u[h]=0}for(var p=0;p<s.length;p++)for(var f=0;f<=p;f++){var g=void 0;g="dendrogram"===i.mode?p===f?1/0:o(s[p].value,s[f].value):p===f?1/0:o(s[p].value[0],s[f].value[0]),l[p][f]=g,l[f][p]=g,g<l[p][u[p]]&&(u[p]=f)}for(var v=n$(s,c,l,u,i);v;)v=n$(s,c,l,u,i);return"dendrogram"===i.mode?(t=n0(s[0],i.dendrogramDepth,n),i.addDendrogram&&nJ(s[0],n)):(t=Array(s.length),s.forEach(function(e,r){e.key=e.index=null,t[r]=n.collection(e.value)})),t},n2=e4({distance:"euclidean",preference:"median",damping:.8,maxIterations:1e3,minIterations:100,attributes:[]}),n5=function(e){var t=e.damping,n=e.preference;.5<=t&&t<1||eQ("Damping must range on [0.5, 1). Got: ".concat(t));var r=["median","mean","min","max"];return r.some(function(e){return e===n})||M(n)||eQ("Preference must be one of [".concat(r.map(function(e){return"'".concat(e,"'")}).join(", "),"] or a number. Got: ").concat(n)),n2(e)},n3=function(e,t,n,r){var i=function(e,t){return r[t](e)};return-nN(e,r.length,function(e){return i(t,e)},function(e){return i(n,e)},t,n)},n4=function(e,t,n){for(var r=[],i=0;i<e;i++)t[i*e+i]+n[i*e+i]>0&&r.push(i);return r},n9=function(e,t,n){for(var r=[],i=0;i<e;i++){for(var a=-1,o=-1/0,s=0;s<n.length;s++){var l=n[s];t[i*e+l]>o&&(a=l,o=t[i*e+l])}a>0&&r.push(a)}for(var u=0;u<n.length;u++)r[n[u]]=n[u];return r},n6=function(e,t,n){for(var r=n9(e,t,n),i=0;i<n.length;i++){for(var a=[],o=0;o<r.length;o++)r[o]===n[i]&&a.push(o);for(var s=-1,l=-1/0,u=0;u<a.length;u++){for(var c=0,h=0;h<a.length;h++)c+=t[a[h]*e+a[u]];c>l&&(s=u,l=c)}n[i]=a[s]}return n9(e,t,n)},n8=function(e){for(var t,n,r,i,a,o,s,l,u,c=this.cy(),h=this.nodes(),d=n5(e),p={},f=0;f<h.length;f++)p[h[f].id()]=f;a=Array(i=(r=h.length)*r);for(var g=0;g<i;g++)a[g]=-1/0;for(var v=0;v<r;v++)for(var y=0;y<r;y++)v!==y&&(a[v*r+y]=n3(d.distance,h[v],h[y],d.attributes));t=a,o="median"===(n=d.preference)?tE(t):"mean"===n?tw(t):"min"===n?tb(t):"max"===n?tx(t):n;for(var b=0;b<r;b++)a[b*r+b]=o;s=Array(i);for(var x=0;x<i;x++)s[x]=0;l=Array(i);for(var w=0;w<i;w++)l[w]=0;for(var E=Array(r),k=Array(r),C=Array(r),S=0;S<r;S++)E[S]=0,k[S]=0,C[S]=0;for(var D=Array(r*d.minIterations),T=0;T<D.length;T++)D[T]=0;for(u=0;u<d.maxIterations;u++){for(var P=0;P<r;P++){for(var _=-1/0,M=-1/0,B=-1,A=0,N=0;N<r;N++)E[N]=s[P*r+N],(A=l[P*r+N]+a[P*r+N])>=_?(M=_,_=A,B=N):A>M&&(M=A);for(var I=0;I<r;I++)s[P*r+I]=(1-d.damping)*(a[P*r+I]-_)+d.damping*E[I];s[P*r+B]=(1-d.damping)*(a[P*r+B]-M)+d.damping*E[B]}for(var O=0;O<r;O++){for(var L=0,R=0;R<r;R++)E[R]=l[R*r+O],k[R]=Math.max(0,s[R*r+O]),L+=k[R];L-=k[O],k[O]=s[O*r+O],L+=k[O];for(var z=0;z<r;z++)l[z*r+O]=(1-d.damping)*Math.min(0,L-k[z])+d.damping*E[z];l[O*r+O]=(1-d.damping)*(L-k[O])+d.damping*E[O]}for(var V=0,F=0;F<r;F++){var j=l[F*r+F]+s[F*r+F]>0?1:0;D[u%d.minIterations*r+F]=j,V+=j}if(V>0&&(u>=d.minIterations-1||u==d.maxIterations-1)){for(var q=0,X=0;X<r;X++){C[X]=0;for(var Y=0;Y<d.minIterations;Y++)C[X]+=D[Y*r+X];(0===C[X]||C[X]===d.minIterations)&&q++}if(q===r)break}}for(var W=n4(r,s,l),H=n6(r,a,W),G={},U=0;U<W.length;U++)G[W[U]]=[];for(var K=0;K<h.length;K++){var Z=H[p[h[K].id()]];null!=Z&&G[Z].push(h[K])}for(var $=Array(W.length),Q=0;Q<W.length;Q++)$[Q]=c.collection(G[W[Q]]);return $},n7=e4({root:void 0,directed:!1}),re=function(){var e=this,t={},n=0,r=0,i=[],a=[],o={},s=function(n,r){for(var o=a.length-1,s=[],l=e.spawn();a[o].x!=n||a[o].y!=r;)s.push(a.pop().edge),o--;s.push(a.pop().edge),s.forEach(function(n){var r=n.connectedNodes().intersection(e);l.merge(n),r.forEach(function(n){var r=n.id(),i=n.connectedEdges().intersection(e);l.merge(n),t[r].cutVertex?l.merge(i.filter(function(e){return e.isLoop()})):l.merge(i)})}),i.push(l)},l=function l(u,c,h){u===h&&(r+=1),t[c]={id:n,low:n++,cutVertex:!1};var d,p,f,g,v=e.getElementById(c).connectedEdges().intersection(e);0===v.size()?i.push(e.spawn(e.getElementById(c))):v.forEach(function(e){d=e.source().id(),p=e.target().id(),(f=d===c?p:d)!==h&&(o[g=e.id()]||(o[g]=!0,a.push({x:c,y:f,edge:e})),f in t?t[c].low=Math.min(t[c].low,t[f].id):(l(u,f,c),t[c].low=Math.min(t[c].low,t[f].low),t[c].id<=t[f].low&&(t[c].cutVertex=!0,s(c,f))))})};e.forEach(function(e){if(e.isNode()){var n=e.id();n in t||(r=0,l(n,n),t[n].cutVertex=r>1)}});var u=Object.keys(t).filter(function(e){return t[e].cutVertex}).map(function(t){return e.getElementById(t)});return{cut:e.spawn(u),components:i}},rt=function(){var e=this,t={},n=0,r=[],i=[],a=e.spawn(e),o=function o(s){if(i.push(s),t[s]={index:n,low:n++,explored:!1},e.getElementById(s).connectedEdges().intersection(e).forEach(function(e){var n=e.target().id();n===s||(n in t||o(n),t[n].explored||(t[s].low=Math.min(t[s].low,t[n].low)))}),t[s].index===t[s].low){for(var l=e.spawn();;){var u=i.pop();if(l.merge(e.getElementById(u)),t[u].low=t[s].index,t[u].explored=!0,u===s)break}var c=l.edgesWith(l),h=l.merge(c);r.push(h),a=a.difference(h)}};return e.forEach(function(e){if(e.isNode()){var n=e.id();n in t||o(n)}}),{cut:a,components:r}},rn={};[ts,{dijkstra:function(e){if(!_(e)){var t=arguments;e={root:t[0],weight:t[1],directed:t[2]}}var n=tu(e),r=n.root,i=n.weight,a=n.directed,o=this,s=D(r)?this.filter(r)[0]:r[0],l={},u={},c={},h=this.byGroup(),d=h.nodes,p=h.edges;p.unmergeBy(function(e){return e.isLoop()});for(var f=function(e){return l[e.id()]},g=new tl(function(e,t){return f(e)-f(t)}),v=0;v<d.length;v++){var y=d[v];l[y.id()]=y.same(s)?0:1/0,g.push(y)}for(;g.size()>0;){var b=g.pop(),x=f(b);if(c[b.id()]=x,x!==1/0)for(var w=b.neighborhood().intersect(d),E=0;E<w.length;E++){var k=w[E],C=k.id(),S=function(e,t){for(var n,r=(a?e.edgesTo(t):e.edgesWith(t)).intersect(p),o=1/0,s=0;s<r.length;s++){var l=r[s],u=i(l);(u<o||!n)&&(o=u,n=l)}return{edge:n,dist:o}}(b,k),T=x+S.dist;T<f(k)&&(l[k.id()]=T,g.updateItem(k),u[C]={node:b,edge:S.edge})}}return{distanceTo:function(e){return c[(D(e)?d.filter(e)[0]:e[0]).id()]},pathTo:function(e){var t=D(e)?d.filter(e)[0]:e[0],n=[],r=t,i=r.id();if(t.length>0)for(n.unshift(t);u[i];){var a=u[i];n.unshift(a.edge),n.unshift(a.node),i=(r=a.node).id()}return o.spawn(n)}}}},{kruskal:function(e){e=e||function(e){return 1};for(var t=this.byGroup(),n=t.nodes,r=t.edges,i=n.length,a=Array(i),o=function(e){for(var t=0;t<a.length;t++)if(a[t].has(e))return t},s=0;s<i;s++)a[s]=this.spawn(n[s]);for(var l=r.sort(function(t,n){return e(t)-e(n)}),u=0;u<l.length;u++){var c=l[u],h=c.source()[0],d=c.target()[0],p=o(h),f=o(d),g=a[p],v=a[f];p!==f&&(n.merge(c),g.merge(v),a.splice(f,1))}return n}},{aStar:function(e){var t,n,r=this.cy(),i=tc(e),a=i.root,o=i.goal,s=i.heuristic,l=i.directed,u=i.weight;a=r.collection(a)[0],o=r.collection(o)[0];var c=a.id(),h=o.id(),d={},p={},f={},g=new tl(function(e,t){return p[e.id()]-p[t.id()]}),v=new ti,y={},b={},x=function(e,t){g.push(e),v.add(t)};x(a,c),d[c]=0,p[c]=s(a);for(var w=0;g.size()>0;){if(n=(t=g.pop()).id(),v.delete(n),w++,n===h){for(var E=[],k=o,C=h,S=b[C];E.unshift(k),null!=S&&E.unshift(S),null!=(k=y[C]);)S=b[C=k.id()];return{found:!0,distance:d[n],path:this.spawn(E),steps:w}}f[n]=!0;for(var D=t._private.edges,T=0;T<D.length;T++){var P=D[T];if(this.hasElementWithId(P.id())&&(!l||P.data("source")===n)){var _=P.source(),M=P.target(),B=_.id()!==n?_:M,A=B.id();if(this.hasElementWithId(A)&&!f[A]){var N=d[n]+u(P);if(!v.has(A)){d[A]=N,p[A]=N+s(B),x(B,A),y[A]=t,b[A]=P;continue}N<d[A]&&(d[A]=N,p[A]=N+s(B),y[A]=t,b[A]=P)}}}}return{found:!1,distance:void 0,path:void 0,steps:w}}},{floydWarshall:function(e){for(var t=this.cy(),n=th(e),r=n.weight,i=n.directed,a=this.byGroup(),o=a.nodes,s=a.edges,l=o.length,u=l*l,c=function(e){return o.indexOf(e)},h=function(e){return o[e]},d=Array(u),p=0;p<u;p++){var f=p%l;(p-f)/l===f?d[p]=0:d[p]=1/0}for(var g=Array(u),v=Array(u),y=0;y<s.length;y++){var b=s[y],x=b.source()[0],w=b.target()[0];if(x!==w){var E=c(x),k=c(w),C=E*l+k,S=r(b);if(d[C]>S&&(d[C]=S,g[C]=k,v[C]=b),!i){var T=k*l+E;!i&&d[T]>S&&(d[T]=S,g[T]=E,v[T]=b)}}}for(var P=0;P<l;P++)for(var _=0;_<l;_++)for(var M=_*l+P,B=0;B<l;B++){var A=_*l+B,N=P*l+B;d[M]+d[N]<d[A]&&(d[A]=d[M]+d[N],g[A]=g[M])}var I=function(e){return c((D(e)?t.filter(e):e)[0])};return{distance:function(e,t){return d[I(e)*l+I(t)]},path:function(e,n){var r,i=I(e),a=I(n),o=h(i);if(i===a)return o.collection();if(null==g[i*l+a])return t.collection();var s=t.collection(),u=i;for(s.merge(o);i!==a;)u=i,i=g[i*l+a],r=v[u*l+i],s.merge(r),s.merge(h(i));return s}}}},{bellmanFord:function(e){var t=this,n=td(e),r=n.weight,i=n.directed,a=n.root,o=this,s=this.cy(),l=this.byGroup(),u=l.edges,c=l.nodes,h=c.length,d=new tn,p=!1,f=[];a=s.collection(a)[0],u.unmergeBy(function(e){return e.isLoop()});for(var g=u.length,v=function(e){var t=d.get(e.id());return t||(t={},d.set(e.id(),t)),t},y=function(e){return(D(e)?s.$(e):e)[0]},b=0;b<h;b++){var x=c[b],w=v(x);x.same(a)?w.dist=0:w.dist=1/0,w.pred=null,w.edge=null}for(var E=!1,k=function(e,t,n,r,i,a){var o=r.dist+a;o<i.dist&&!n.same(r.edge)&&(i.dist=o,i.pred=e,i.edge=n,E=!0)},C=1;C<h;C++){E=!1;for(var S=0;S<g;S++){var T=u[S],P=T.source(),_=T.target(),M=r(T),B=v(P),A=v(_);k(P,_,T,B,A,M),i||k(_,P,T,A,B,M)}if(!E)break}if(E)for(var N=[],I=0;I<g;I++){var O=u[I],L=O.source(),R=O.target(),z=r(O),V=v(L).dist,F=v(R).dist;if(V+z<F||!i&&F+z<V){if(p||(e0("Graph contains a negative weight cycle for Bellman-Ford"),p=!0),!1!==e.findNegativeWeightCycles){var j=[];V+z<F&&j.push(L),!i&&F+z<V&&j.push(R);for(var q=j.length,X=0;X<q;X++){var Y=j[X],W=[Y];W.push(v(Y).edge);for(var H=v(Y).pred;-1===W.indexOf(H);)W.push(H),W.push(v(H).edge),H=v(H).pred;for(var G=(W=W.slice(W.indexOf(H)))[0].id(),U=0,K=2;K<W.length;K+=2)W[K].id()<G&&(G=W[K].id(),U=K);(W=W.slice(U).concat(W.slice(0,U))).push(W[0]);var Z=W.map(function(e){return e.id()}).join(",");-1===N.indexOf(Z)&&(f.push(o.spawn(W)),N.push(Z))}}else break}}return{distanceTo:function(e){return v(y(e)).dist},pathTo:function(e){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a,r=y(e),i=[],s=r;;){if(null==s)return t.spawn();var l=v(s),u=l.edge,c=l.pred;if(i.unshift(s[0]),s.same(n)&&i.length>0)break;null!=u&&i.unshift(u),s=c}return o.spawn(i)},hasNegativeWeightCycle:p,negativeWeightCycles:f}}},{kargerStein:function(){var e=this,t=this.byGroup(),n=t.nodes,r=t.edges;r.unmergeBy(function(e){return e.isLoop()});var i=n.length,a=r.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),s=Math.floor(i/tp);if(i<2){eQ("At least 2 nodes are required for Karger-Stein algorithm");return}for(var l=[],u=0;u<a;u++){var c=r[u];l.push([u,n.indexOf(c.source()),n.indexOf(c.target())])}for(var h=1/0,d=[],p=Array(i),f=Array(i),g=Array(i),v=function(e,t){for(var n=0;n<i;n++)t[n]=e[n]},y=0;y<=o;y++){for(var b=0;b<i;b++)f[b]=b;var x=tg(f,l.slice(),i,s),w=x.slice();v(f,g);var E=tg(f,x,s,2),k=tg(g,w,s,2);E.length<=k.length&&E.length<h?(h=E.length,d=E,v(f,p)):k.length<=E.length&&k.length<h&&(h=k.length,d=k,v(g,p))}for(var C=this.spawn(d.map(function(e){return r[e[0]]})),S=this.spawn(),D=this.spawn(),T=p[0],P=0;P<p.length;P++){var _=p[P],M=n[P];_===T?S.merge(M):D.merge(M)}var B=function(t){var n=e.spawn();return t.forEach(function(t){n.merge(t),t.connectedEdges().forEach(function(t){e.contains(t)&&!C.contains(t)&&n.merge(t)})}),n};return{cut:C,components:[B(S),B(D)],partition1:S,partition2:D}}},{pageRank:function(e){for(var t,n=no(e),r=n.dampingFactor,i=n.precision,a=n.iterations,o=n.weight,s=this._private.cy,l=this.byGroup(),u=l.nodes,c=l.edges,h=u.length,d=h*h,p=c.length,f=Array(d),g=Array(h),v=(1-r)/h,y=0;y<h;y++){for(var b=0;b<h;b++)f[y*h+b]=0;g[y]=0}for(var x=0;x<p;x++){var w=c[x],E=w.data("source"),k=w.data("target");if(E!==k){var C=u.indexOfId(E),S=u.indexOfId(k),D=o(w),T=S*h+C;f[T]+=D,g[C]+=D}}for(var P=1/h+v,_=0;_<h;_++)if(0===g[_])for(var M=0;M<h;M++)f[M*h+_]=P;else for(var B=0;B<h;B++){var A=B*h+_;f[A]=f[A]/g[_]+v}for(var N=Array(h),I=Array(h),O=0;O<h;O++)N[O]=1;for(var L=0;L<a;L++){for(var R=0;R<h;R++)I[R]=0;for(var z=0;z<h;z++)for(var V=0;V<h;V++){var F=z*h+V;I[z]+=f[F]*N[V]}tP(I),t=N,N=I,I=t;for(var j=0,q=0;q<h;q++){var X=t[q]-N[q];j+=X*X}if(j<i)break}return{rank:function(e){return e=s.collection(e)[0],N[u.indexOf(e)]}}}},nl,nc,nd,{markovClustering:nC,mcl:nC},{kMeans:function(e){var t,n=this.cy(),i=this.nodes(),a=null,o=nO(e),s=Array(o.k),l={};o.testMode?"number"==typeof o.testCentroids?(o.testCentroids,t=nR(i,o.k,o.attributes)):t="object"===r(o.testCentroids)?o.testCentroids:nR(i,o.k,o.attributes):t=nR(i,o.k,o.attributes);for(var u=!0,c=0;u&&c<o.maxIterations;){for(var h=0;h<i.length;h++)l[(a=i[h]).id()]=nz(a,t,o.distance,o.attributes,"kMeans");u=!1;for(var d=0;d<o.k;d++){var p=nV(d,i,l);if(0!==p.length){for(var f=o.attributes.length,g=t[d],v=Array(f),y=Array(f),b=0;b<f;b++){y[b]=0;for(var x,w=0;w<p.length;w++)a=p[w],y[b]+=o.attributes[b](a);v[b]=y[b]/p.length,x=v[b],Math.abs(g[b]-x)<=o.sensitivityThreshold||(u=!0)}t[d]=v,s[d]=n.collection(p)}}c++}return s},kMedoids:function(e){var t,n,i=this.cy(),a=this.nodes(),o=null,s=nO(e),l=Array(s.k),u={},c=Array(s.k);s.testMode?"number"==typeof s.testCentroids||(t="object"===r(s.testCentroids)?s.testCentroids:nq(a,s.k)):t=nq(a,s.k);for(var h=!0,d=0;h&&d<s.maxIterations;){for(var p=0;p<a.length;p++)u[(o=a[p]).id()]=nz(o,t,s.distance,s.attributes,"kMedoids");h=!1;for(var f=0;f<t.length;f++){var g=nV(f,a,u);if(0!==g.length){c[f]=nX(t[f],g,s.attributes);for(var v=0;v<g.length;v++)(n=nX(g[v],g,s.attributes))<c[f]&&(c[f]=n,t[f]=g[v],h=!0);l[f]=i.collection(g)}}d++}return l},fuzzyCMeans:nG,fcm:nG},{hierarchicalClustering:n1,hca:n1},{affinityPropagation:n8,ap:n8},{hierholzer:function(e){if(!_(e)){var t,n,r,i=arguments;e={root:i[0],directed:i[1]}}var a=n7(e),o=a.root,s=a.directed,l=!1;o&&(r=D(o)?this.filter(o)[0].id():o[0].id());var u={},c={};s?this.forEach(function(e){var r=e.id();if(e.isNode()){var i=e.indegree(!0),a=e.outdegree(!0),o=i-a,s=a-i;1==o?t?l=!0:t=r:1==s?n?l=!0:n=r:(s>1||o>1)&&(l=!0),u[r]=[],e.outgoers().forEach(function(e){e.isEdge()&&u[r].push(e.id())})}else c[r]=[void 0,e.target().id()]}):this.forEach(function(e){var r=e.id();e.isNode()?(e.degree(!0)%2&&(t?n?l=!0:n=r:t=r),u[r]=[],e.connectedEdges().forEach(function(e){return u[r].push(e.id())})):c[r]=[e.source().id(),e.target().id()]});var h={found:!1,trail:void 0};if(l)return h;if(n&&t){if(s){if(r&&n!=r)return h;r=n}else{if(r&&n!=r&&t!=r)return h;r||(r=n)}}else r||(r=this[0].id());var d=function(e){for(var t,n,r,i=e,a=[e];u[i].length;)n=c[t=u[i].shift()][0],i!=(r=c[t][1])?(u[r]=u[r].filter(function(e){return e!=t}),i=r):s||i==n||(u[n]=u[n].filter(function(e){return e!=t}),i=n),a.unshift(t),a.unshift(i);return a},p=[],f=[];for(f=d(r);1!=f.length;)0==u[f[0]].length?(p.unshift(this.getElementById(f.shift())),p.unshift(this.getElementById(f.shift()))):f=d(f.shift()).concat(f);for(var g in p.unshift(this.getElementById(f.shift())),u)if(u[g].length)return h;return h.found=!0,h.trail=this.spawn(p,!0),h}},{hopcroftTarjanBiconnected:re,htbc:re,htb:re,hopcroftTarjanBiconnectedComponents:re},{tarjanStronglyConnected:rt,tsc:rt,tscc:rt,tarjanStronglyConnectedComponents:rt}].forEach(function(e){Z(rn,e)});var rr=function e(t){if(!(this instanceof e))return new e(t);this.id="Thenable/1.0.7",this.state=0,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},"function"==typeof t&&t.call(this,this.fulfill.bind(this),this.reject.bind(this))};rr.prototype={fulfill:function(e){return ri(this,1,"fulfillValue",e)},reject:function(e){return ri(this,2,"rejectReason",e)},then:function(e,t){var n=new rr;return this.onFulfilled.push(rs(e,n,"fulfill")),this.onRejected.push(rs(t,n,"reject")),ra(this),n.proxy}};var ri=function(e,t,n,r){return 0===e.state&&(e.state=t,e[n]=r,ra(e)),e},ra=function(e){1===e.state?ro(e,"onFulfilled",e.fulfillValue):2===e.state&&ro(e,"onRejected",e.rejectReason)},ro=function(e,t,n){if(0!==e[t].length){var r=e[t];e[t]=[];var i=function(){for(var e=0;e<r.length;e++)r[e](n)};"function"==typeof setImmediate?setImmediate(i):setTimeout(i,0)}},rs=function(e,t,n){return function(r){if("function"!=typeof e)t[n].call(t,r);else{var i;try{i=e(r)}catch(e){t.reject(e);return}rl(t,i)}}},rl=function e(t,n){if(t===n||t.proxy===n){t.reject(TypeError("cannot resolve promise with itself"));return}if("object"===r(n)&&null!==n||"function"==typeof n)try{i=n.then}catch(e){t.reject(e);return}if("function"==typeof i){var i,a=!1;try{i.call(n,function(r){a||(a=!0,r===n?t.reject(TypeError("circular thenable chain")):e(t,r))},function(e){a||(a=!0,t.reject(e))})}catch(e){a||t.reject(e)}return}t.fulfill(n)};rr.all=function(e){return new rr(function(t,n){for(var r=Array(e.length),i=0,a=function(n,a){r[n]=a,++i===e.length&&t(r)},o=0;o<e.length;o++)!function(t){var r=e[t];null!=r&&null!=r.then?r.then(function(e){a(t,e)},function(e){n(e)}):a(t,r)}(o)})},rr.resolve=function(e){return new rr(function(t,n){t(e)})},rr.reject=function(e){return new rr(function(t,n){n(e)})};var ru="undefined"!=typeof Promise?Promise:rr,rc=function(e,t,n){var r=O(e),i=this._private=Z({duration:1e3},t,n);if(i.target=e,i.style=i.style||i.css,i.started=!1,i.playing=!1,i.hooked=!1,i.applying=!1,i.progress=0,i.completes=[],i.frames=[],i.complete&&T(i.complete)&&i.completes.push(i.complete),!r){var a=e.position();i.startPosition=i.startPosition||{x:a.x,y:a.y},i.startStyle=i.startStyle||e.cy().style().getAnimationStartStyle(e,i.style)}if(r){var o=e.pan();i.startPan={x:o.x,y:o.y},i.startZoom=e.zoom()}this.length=1,this[0]=this},rh=rc.prototype;Z(rh,{instanceString:function(){return"animation"},hook:function(){var e=this._private;if(!e.hooked){var t=e.target._private.animation;(e.queue?t.queue:t.current).push(this),A(e.target)&&e.target.cy().addToAnimationPool(e.target),e.hooked=!0}return this},play:function(){var e=this._private;return 1===e.progress&&(e.progress=0),e.playing=!0,e.started=!1,e.stopped=!1,this.hook(),this},playing:function(){return this._private.playing},apply:function(){var e=this._private;return e.applying=!0,e.started=!1,e.stopped=!1,this.hook(),this},applying:function(){return this._private.applying},pause:function(){var e=this._private;return e.playing=!1,e.started=!1,this},stop:function(){var e=this._private;return e.playing=!1,e.started=!1,e.stopped=!0,this},rewind:function(){return this.progress(0)},fastforward:function(){return this.progress(1)},time:function(e){var t=this._private;return void 0===e?t.progress*t.duration:this.progress(e/t.duration)},progress:function(e){var t=this._private,n=t.playing;return void 0===e?t.progress:(n&&this.pause(),t.progress=e,t.started=!1,n&&this.play(),this)},completed:function(){return 1===this._private.progress},reverse:function(){var e=this._private,t=e.playing;t&&this.pause(),e.progress=1-e.progress,e.started=!1;var n=function(t,n){var r=e[t];null!=r&&(e[t]=e[n],e[n]=r)};if(n("zoom","startZoom"),n("pan","startPan"),n("position","startPosition"),e.style)for(var r=0;r<e.style.length;r++){var i=e.style[r],a=i.name,o=e.startStyle[a];e.startStyle[a]=i,e.style[r]=o}return t&&this.play(),this},promise:function(e){var t,n=this._private;return t="frame"===e?n.frames:n.completes,new ru(function(e,n){t.push(function(){e()})})}}),rh.complete=rh.completed,rh.run=rh.play,rh.running=rh.playing;var rd=Array.isArray,rp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,rf=/^\w*$/,rg=function(e,t){if(rd(e))return!1;var n=typeof e;return!!("number"==n||"symbol"==n||"boolean"==n||null==e||ew(e))||rf.test(e)||!rp.test(e)||null!=t&&e in Object(t)},rv=function(e){if(!er(e))return!1;var t=ex(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},ry=es["__core-js_shared__"],rm=(oY=/[^.]+$/.exec(ry&&ry.keys&&ry.keys.IE_PROTO||""))?"Symbol(src)_1."+oY:"",rb=Function.prototype.toString,rx=function(e){if(null!=e){try{return rb.call(e)}catch(e){}try{return e+""}catch(e){}}return""},rw=/^\[object .+?Constructor\]$/,rE=Object.prototype,rk=Function.prototype.toString,rC=rE.hasOwnProperty,rS=RegExp("^"+rk.call(rC).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),rD=function(e,t){var n,r=null==e?void 0:e[t];return er(n=r)&&(!rm||!(rm in n))&&(rv(n)?rS:rw).test(rx(n))?r:void 0},rT=rD(Object,"create"),rP=Object.prototype.hasOwnProperty,r_=Object.prototype.hasOwnProperty;function rM(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}rM.prototype.clear=function(){this.__data__=rT?rT(null):{},this.size=0},rM.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},rM.prototype.get=function(e){var t=this.__data__;if(rT){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return rP.call(t,e)?t[e]:void 0},rM.prototype.has=function(e){var t=this.__data__;return rT?void 0!==t[e]:r_.call(t,e)},rM.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=rT&&void 0===t?"__lodash_hash_undefined__":t,this};var rB=function(e,t){return e===t||e!=e&&t!=t},rA=function(e,t){for(var n=e.length;n--;)if(rB(e[n][0],t))return n;return -1},rN=Array.prototype.splice;function rI(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}rI.prototype.clear=function(){this.__data__=[],this.size=0},rI.prototype.delete=function(e){var t=this.__data__,n=rA(t,e);return!(n<0)&&(n==t.length-1?t.pop():rN.call(t,n,1),--this.size,!0)},rI.prototype.get=function(e){var t=this.__data__,n=rA(t,e);return n<0?void 0:t[n][1]},rI.prototype.has=function(e){return rA(this.__data__,e)>-1},rI.prototype.set=function(e,t){var n=this.__data__,r=rA(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var rO=rD(es,"Map"),rL=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e},rR=function(e,t){var n=e.__data__;return rL(t)?n["string"==typeof t?"string":"hash"]:n.map};function rz(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function rV(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw TypeError("Expected a function");var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=e.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(rV.Cache||rz),n}rz.prototype.clear=function(){this.size=0,this.__data__={hash:new rM,map:new(rO||rI),string:new rM}},rz.prototype.delete=function(e){var t=rR(this,e).delete(e);return this.size-=t?1:0,t},rz.prototype.get=function(e){return rR(this,e).get(e)},rz.prototype.has=function(e){return rR(this,e).has(e)},rz.prototype.set=function(e,t){var n=rR(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},rV.Cache=rz;var rF=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rj=/\\(\\)?/g,rq=(oH=(oW=rV(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(rF,function(e,n,r,i){t.push(r?i.replace(rj,"$1"):n||e)}),t},function(e){return 500===oH.size&&oH.clear(),e})).cache,oW),rX=function(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i},rY=1/0,rW=ed?ed.prototype:void 0,rH=rW?rW.toString:void 0,rG=function e(t){if("string"==typeof t)return t;if(rd(t))return rX(t,e)+"";if(ew(t))return rH?rH.call(t):"";var n=t+"";return"0"==n&&1/t==-rY?"-0":n},rU=function(e){return null==e?"":rG(e)},rK=function(e,t){return rd(e)?e:rg(e,t)?[e]:rq(rU(e))},rZ=1/0,r$=function(e){if("string"==typeof e||ew(e))return e;var t=e+"";return"0"==t&&1/e==-rZ?"-0":t},rQ=function(e,t){t=rK(t,e);for(var n=0,r=t.length;null!=e&&n<r;)e=e[r$(t[n++])];return n&&n==r?e:void 0},rJ=function(e,t,n){var r=null==e?void 0:rQ(e,t);return void 0===r?n:r},r0=function(){try{var e=rD(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),r1=function(e,t,n){"__proto__"==t&&r0?r0(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n},r2=Object.prototype.hasOwnProperty,r5=function(e,t,n){var r=e[t];r2.call(e,t)&&rB(r,n)&&(void 0!==n||t in e)||r1(e,t,n)},r3=/^(?:0|[1-9]\d*)$/,r4=function(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&r3.test(e))&&e>-1&&e%1==0&&e<t},r9=function(e,t,n,r){if(!er(e))return e;t=rK(t,e);for(var i=-1,a=t.length,o=a-1,s=e;null!=s&&++i<a;){var l=r$(t[i]),u=n;if("__proto__"===l||"constructor"===l||"prototype"===l)break;if(i!=o){var c=s[l];void 0===(u=r?r(c,l,s):void 0)&&(u=er(c)?c:r4(t[i+1])?[]:{})}r5(s,l,u),s=s[l]}return e},r6=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t},r8={};[{animated:function(){return function(){var e=void 0!==this.length;if(!(this._private.cy||this).styleEnabled())return!1;var t=(e?this:[this])[0];if(t)return t._private.animation.current.length>0}},clearQueue:function(){return function(){var e=void 0!==this.length?this:[this];if(!(this._private.cy||this).styleEnabled())return this;for(var t=0;t<e.length;t++)e[t]._private.animation.queue=[];return this}},delay:function(){return function(e,t){return(this._private.cy||this).styleEnabled()?this.animate({delay:e,duration:e,complete:t}):this}},delayAnimation:function(){return function(e,t){return(this._private.cy||this).styleEnabled()?this.animation({delay:e,duration:e,complete:t}):this}},animation:function(){return function(e,t){var n=void 0!==this.length,r=n?this:[this],i=this._private.cy||this,a=!n,o=!a;if(!i.styleEnabled())return this;var s=i.style();if(0===Object.keys(e=Z({},e,t)).length)return new rc(r[0],e);switch(void 0===e.duration&&(e.duration=400),e.duration){case"slow":e.duration=600;break;case"fast":e.duration=200}if(o&&(e.style=s.getPropsList(e.style||e.css),e.css=void 0),o&&null!=e.renderedPosition){var l=e.renderedPosition,u=i.pan(),c=i.zoom();e.position=ty(l,c,u)}if(a&&null!=e.panBy){var h=e.panBy,d=i.pan();e.pan={x:d.x+h.x,y:d.y+h.y}}var p=e.center||e.centre;if(a&&null!=p){var f=i.getCenterPan(p.eles,e.zoom);null!=f&&(e.pan=f)}if(a&&null!=e.fit){var g=e.fit,v=i.getFitViewport(g.eles||g.boundingBox,g.padding);null!=v&&(e.pan=v.pan,e.zoom=v.zoom)}if(a&&_(e.zoom)){var y=i.getZoomedViewport(e.zoom);null!=y?(y.zoomed&&(e.zoom=y.zoom),y.panned&&(e.pan=y.pan)):e.zoom=null}return new rc(r[0],e)}},animate:function(){return function(e,t){var n=void 0!==this.length?this:[this];if(!(this._private.cy||this).styleEnabled())return this;t&&(e=Z({},e,t));for(var r=0;r<n.length;r++){var i=n[r],a=i.animated()&&(void 0===e.queue||e.queue);i.animation(e,a?{queue:!0}:void 0).play()}return this}},stop:function(){return function(e,t){var n=void 0!==this.length?this:[this],r=this._private.cy||this;if(!r.styleEnabled())return this;for(var i=0;i<n.length;i++){for(var a=n[i]._private,o=a.animation.current,s=0;s<o.length;s++){var l=o[s]._private;t&&(l.duration=0)}e&&(a.animation.queue=[]),t||(a.animation.current=[])}return r.notify("draw"),this}}},{data:function(e){return e=Z({},{field:"data",bindingEvent:"data",allowBinding:!1,allowSetting:!1,allowGetting:!1,settingEvent:"data",settingTriggersEvent:!1,triggerFnName:"trigger",immutableKeys:{},updateStyle:!1,beforeGet:function(e){},beforeSet:function(e,t){},onSet:function(e){},canSet:function(e){return!0}},e),function(t,n){var r,i=e,a=void 0!==this.length,o=a?this:[this],l=a?this[0]:this;if(D(t)){var u=-1!==t.indexOf(".")&&(rd(t)?rX(t,r$):ew(t)?[t]:r6(rq(rU(t))));if(i.allowGetting&&void 0===n)return l&&(i.beforeGet(l),p=u&&void 0===l._private[i.field][t]?rJ(l._private[i.field],u):l._private[i.field][t]),p;if(i.allowSetting&&void 0!==n&&!i.immutableKeys[t]){var c=s({},t,n);i.beforeSet(this,c);for(var h=0,d=o.length;h<d;h++){var p,f,g=o[h];i.canSet(g)&&(u&&void 0===l._private[i.field][t]?null==(f=g._private[i.field])||r9(f,u,n):g._private[i.field][t]=n)}i.updateStyle&&this.updateStyle(),i.onSet(this),i.settingTriggersEvent&&this[i.triggerFnName](i.settingEvent)}}else if(i.allowSetting&&_(t)){var v,y,b=Object.keys(t);i.beforeSet(this,t);for(var x=0;x<b.length;x++)if(y=t[v=b[x]],!i.immutableKeys[v])for(var w=0;w<o.length;w++){var E=o[w];i.canSet(E)&&(E._private[i.field][v]=y)}i.updateStyle&&this.updateStyle(),i.onSet(this),i.settingTriggersEvent&&this[i.triggerFnName](i.settingEvent)}else if(i.allowBinding&&T(t))this.on(i.bindingEvent,t);else if(i.allowGetting&&void 0===t)return l&&(i.beforeGet(l),r=l._private[i.field]),r;return this}},removeData:function(e){return e=Z({},{field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!1,immutableKeys:{}},e),function(t){var n=e,r=void 0!==this.length?this:[this];if(D(t)){for(var i=t.split(/\s+/),a=i.length,o=0;o<a;o++){var s=i[o];if(!R(s)&&!n.immutableKeys[s])for(var l=0,u=r.length;l<u;l++)r[l]._private[n.field][s]=void 0}n.triggerEvent&&this[n.triggerFnName](n.event)}else if(void 0===t){for(var c=0,h=r.length;c<h;c++)for(var d=r[c]._private[n.field],p=Object.keys(d),f=0;f<p.length;f++){var g=p[f];n.immutableKeys[g]||(d[g]=void 0)}n.triggerEvent&&this[n.triggerFnName](n.event)}return this}}},{eventAliasesOn:function(e){e.addListener=e.listen=e.bind=e.on,e.unlisten=e.unbind=e.off=e.removeListener,e.trigger=e.emit,e.pon=e.promiseOn=function(e,t){var n=this,r=Array.prototype.slice.call(arguments,0);return new ru(function(e,t){var i=r.concat([function(t){n.off.apply(n,a),e(t)}]),a=i.concat([]);n.on.apply(n,i)})}}}].forEach(function(e){Z(r8,e)});var r7={animate:r8.animate(),animation:r8.animation(),animated:r8.animated(),clearQueue:r8.clearQueue(),delay:r8.delay(),delayAnimation:r8.delayAnimation(),stop:r8.stop()},ie={classes:function(e){if(void 0===e){var t=[];return this[0]._private.classes.forEach(function(e){return t.push(e)}),t}P(e)||(e=(e||"").match(/\S+/g)||[]);for(var n=[],r=new ti(e),i=0;i<this.length;i++){for(var a=this[i],o=a._private,s=o.classes,l=!1,u=0;u<e.length;u++){var c=e[u];if(!s.has(c)){l=!0;break}}l||(l=s.size!==e.length),l&&(o.classes=r,n.push(a))}return n.length>0&&this.spawn(n).updateStyle().emit("class"),this},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var t=this[0];return null!=t&&t._private.classes.has(e)},toggleClass:function(e,t){P(e)||(e=e.match(/\S+/g)||[]);for(var n=void 0===t,r=[],i=0,a=this.length;i<a;i++)for(var o=this[i],s=o._private.classes,l=!1,u=0;u<e.length;u++){var c=e[u],h=s.has(c),d=!1;t||n&&!h?(s.add(c),d=!0):(!t||n&&h)&&(s.delete(c),d=!0),!l&&d&&(r.push(o),l=!0)}return r.length>0&&this.spawn(r).updateStyle().emit("class"),this},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,t){var n=this;if(null==t)t=250;else if(0===t)return n;return n.addClass(e),setTimeout(function(){n.removeClass(e)},t),n}};ie.className=ie.classNames=ie.classes;var it={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:"\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'",number:Y,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};it.variable="(?:[\\w-.]|(?:\\\\"+it.metaChar+"))+",it.className="(?:[\\w-]|(?:\\\\"+it.metaChar+"))+",it.value=it.string+"|"+it.number,it.id=it.variable,function(){var e,t,n;for(n=0,e=it.comparatorOp.split("|");n<e.length;n++)t=e[n],it.comparatorOp+="|@"+t;for(n=0,e=it.comparatorOp.split("|");n<e.length;n++)(t=e[n]).indexOf("!")>=0||"="===t||(it.comparatorOp+="|\\!"+t)}();var ir=function(){return{checks:[]}},ii={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},ia=[{selector:":selected",matches:function(e){return e.selected()}},{selector:":unselected",matches:function(e){return!e.selected()}},{selector:":selectable",matches:function(e){return e.selectable()}},{selector:":unselectable",matches:function(e){return!e.selectable()}},{selector:":locked",matches:function(e){return e.locked()}},{selector:":unlocked",matches:function(e){return!e.locked()}},{selector:":visible",matches:function(e){return e.visible()}},{selector:":hidden",matches:function(e){return!e.visible()}},{selector:":transparent",matches:function(e){return e.transparent()}},{selector:":grabbed",matches:function(e){return e.grabbed()}},{selector:":free",matches:function(e){return!e.grabbed()}},{selector:":removed",matches:function(e){return e.removed()}},{selector:":inside",matches:function(e){return!e.removed()}},{selector:":grabbable",matches:function(e){return e.grabbable()}},{selector:":ungrabbable",matches:function(e){return!e.grabbable()}},{selector:":animated",matches:function(e){return e.animated()}},{selector:":unanimated",matches:function(e){return!e.animated()}},{selector:":parent",matches:function(e){return e.isParent()}},{selector:":childless",matches:function(e){return e.isChildless()}},{selector:":child",matches:function(e){return e.isChild()}},{selector:":orphan",matches:function(e){return e.isOrphan()}},{selector:":nonorphan",matches:function(e){return e.isChild()}},{selector:":compound",matches:function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()}},{selector:":loop",matches:function(e){return e.isLoop()}},{selector:":simple",matches:function(e){return e.isSimple()}},{selector:":active",matches:function(e){return e.active()}},{selector:":inactive",matches:function(e){return!e.active()}},{selector:":backgrounding",matches:function(e){return e.backgrounding()}},{selector:":nonbackgrounding",matches:function(e){return!e.backgrounding()}}].sort(function(e,t){return -1*K(e.selector,t.selector)}),io=function(){for(var e,t={},n=0;n<ia.length;n++)t[(e=ia[n]).selector]=e.matches;return t}(),is="("+ia.map(function(e){return e.selector}).join("|")+")",il=function(e){return e.replace(RegExp("\\\\("+it.metaChar+")","g"),function(e,t){return t})},iu=function(e,t,n){e[e.length-1]=n},ic=[{name:"group",query:!0,regex:"("+it.group+")",populate:function(e,t,n){var r=l(n,1)[0];t.checks.push({type:ii.GROUP,value:"*"===r?r:r+"s"})}},{name:"state",query:!0,regex:is,populate:function(e,t,n){var r=l(n,1)[0];t.checks.push({type:ii.STATE,value:r})}},{name:"id",query:!0,regex:"\\#("+it.id+")",populate:function(e,t,n){var r=l(n,1)[0];t.checks.push({type:ii.ID,value:il(r)})}},{name:"className",query:!0,regex:"\\.("+it.className+")",populate:function(e,t,n){var r=l(n,1)[0];t.checks.push({type:ii.CLASS,value:il(r)})}},{name:"dataExists",query:!0,regex:"\\[\\s*("+it.variable+")\\s*\\]",populate:function(e,t,n){var r=l(n,1)[0];t.checks.push({type:ii.DATA_EXIST,field:il(r)})}},{name:"dataCompare",query:!0,regex:"\\[\\s*("+it.variable+")\\s*("+it.comparatorOp+")\\s*("+it.value+")\\s*\\]",populate:function(e,t,n){var r=l(n,3),i=r[0],a=r[1],o=r[2];o=null!=RegExp("^"+it.string+"$").exec(o)?o.substring(1,o.length-1):parseFloat(o),t.checks.push({type:ii.DATA_COMPARE,field:il(i),operator:a,value:o})}},{name:"dataBool",query:!0,regex:"\\[\\s*("+it.boolOp+")\\s*("+it.variable+")\\s*\\]",populate:function(e,t,n){var r=l(n,2),i=r[0],a=r[1];t.checks.push({type:ii.DATA_BOOL,field:il(a),operator:i})}},{name:"metaCompare",query:!0,regex:"\\[\\[\\s*("+it.meta+")\\s*("+it.comparatorOp+")\\s*("+it.number+")\\s*\\]\\]",populate:function(e,t,n){var r=l(n,3),i=r[0],a=r[1],o=r[2];t.checks.push({type:ii.META_COMPARE,field:il(i),operator:a,value:parseFloat(o)})}},{name:"nextQuery",separator:!0,regex:it.separator,populate:function(e,t){var n=e.currentSubject,r=e.edgeCount,i=e.compoundCount,a=e[e.length-1];return null!=n&&(a.subject=n,e.currentSubject=null),a.edgeCount=r,a.compoundCount=i,e.edgeCount=0,e.compoundCount=0,e[e.length++]=ir()}},{name:"directedEdge",separator:!0,regex:it.directedEdge,populate:function(e,t){if(null==e.currentSubject){var n=ir(),r=ir();return n.checks.push({type:ii.DIRECTED_EDGE,source:t,target:r}),iu(e,t,n),e.edgeCount++,r}var i=ir(),a=ir();return i.checks.push({type:ii.NODE_SOURCE,source:t,target:a}),iu(e,t,i),e.edgeCount++,a}},{name:"undirectedEdge",separator:!0,regex:it.undirectedEdge,populate:function(e,t){if(null==e.currentSubject){var n=ir(),r=ir();return n.checks.push({type:ii.UNDIRECTED_EDGE,nodes:[t,r]}),iu(e,t,n),e.edgeCount++,r}var i=ir(),a=ir();return i.checks.push({type:ii.NODE_NEIGHBOR,node:t,neighbor:a}),iu(e,t,i),a}},{name:"child",separator:!0,regex:it.child,populate:function(e,t){if(null==e.currentSubject){var n=ir(),r=ir(),i=e[e.length-1];return n.checks.push({type:ii.CHILD,parent:i,child:r}),iu(e,t,n),e.compoundCount++,r}if(e.currentSubject===t){var a=ir(),o=e[e.length-1],s=ir(),l=ir(),u=ir(),c=ir();return a.checks.push({type:ii.COMPOUND_SPLIT,left:o,right:s,subject:l}),l.checks=t.checks,t.checks=[{type:ii.TRUE}],c.checks.push({type:ii.TRUE}),s.checks.push({type:ii.PARENT,parent:c,child:u}),iu(e,o,a),e.currentSubject=l,e.compoundCount++,u}var h=ir(),d=ir(),p=[{type:ii.PARENT,parent:h,child:d}];return h.checks=t.checks,t.checks=p,e.compoundCount++,d}},{name:"descendant",separator:!0,regex:it.descendant,populate:function(e,t){if(null==e.currentSubject){var n=ir(),r=ir(),i=e[e.length-1];return n.checks.push({type:ii.DESCENDANT,ancestor:i,descendant:r}),iu(e,t,n),e.compoundCount++,r}if(e.currentSubject===t){var a=ir(),o=e[e.length-1],s=ir(),l=ir(),u=ir(),c=ir();return a.checks.push({type:ii.COMPOUND_SPLIT,left:o,right:s,subject:l}),l.checks=t.checks,t.checks=[{type:ii.TRUE}],c.checks.push({type:ii.TRUE}),s.checks.push({type:ii.ANCESTOR,ancestor:c,descendant:u}),iu(e,o,a),e.currentSubject=l,e.compoundCount++,u}var h=ir(),d=ir(),p=[{type:ii.ANCESTOR,ancestor:h,descendant:d}];return h.checks=t.checks,t.checks=p,e.compoundCount++,d}},{name:"subject",modifier:!0,regex:it.subject,populate:function(e,t){if(null!=e.currentSubject&&e.currentSubject!==t)return e0("Redefinition of subject in selector `"+e.toString()+"`"),!1;e.currentSubject=t;var n=e[e.length-1].checks[0],r=null==n?null:n.type;r===ii.DIRECTED_EDGE?n.type=ii.NODE_TARGET:r===ii.UNDIRECTED_EDGE&&(n.type=ii.NODE_NEIGHBOR,n.node=n.nodes[1],n.neighbor=n.nodes[0],n.nodes=null)}}];ic.forEach(function(e){return e.regexObj=RegExp("^"+e.regex)});var ih=function(e){for(var t,n,r,i=0;i<ic.length;i++){var a=ic[i],o=a.name,s=e.match(a.regexObj);if(null!=s){n=s,t=a,r=o;var l=s[0];e=e.substring(l.length);break}}return{expr:t,match:n,name:r,remaining:e}},id=function(e){var t=e.match(/^\s+/);if(t){var n=t[0];e=e.substring(n.length)}return e},ip=function(e,t,n){var r,i,a,o=D(e),s=M(e),l=D(n),u=!1,c=!1,h=!1;switch(t.indexOf("!")>=0&&(t=t.replace("!",""),c=!0),t.indexOf("@")>=0&&(t=t.replace("@",""),u=!0),(o||l||u)&&(i=o||s?""+e:"",a=""+n),u&&(e=i=i.toLowerCase(),n=a=a.toLowerCase()),t){case"*=":r=i.indexOf(a)>=0;break;case"$=":r=i.indexOf(a,i.length-a.length)>=0;break;case"^=":r=0===i.indexOf(a);break;case"=":r=e===n;break;case">":h=!0,r=e>n;break;case">=":h=!0,r=e>=n;break;case"<":h=!0,r=e<n;break;case"<=":h=!0,r=e<=n;break;default:r=!1}return c&&(null!=e||!h)&&(r=!r),r},ig=function(e,t){switch(t){case"?":return!!e;case"!":return!e;case"^":return void 0===e}},iv=function(e,t){return e.data(t)},iy=[],im=function(e,t){return e.checks.every(function(e){return iy[e.type](e,t)})};iy[ii.GROUP]=function(e,t){var n=e.value;return"*"===n||n===t.group()},iy[ii.STATE]=function(e,t){return io[e.value](t)},iy[ii.ID]=function(e,t){var n=e.value;return t.id()===n},iy[ii.CLASS]=function(e,t){var n=e.value;return t.hasClass(n)},iy[ii.META_COMPARE]=function(e,t){var n=e.field,r=e.operator,i=e.value;return ip(t[n](),r,i)},iy[ii.DATA_COMPARE]=function(e,t){var n=e.field,r=e.operator,i=e.value;return ip(iv(t,n),r,i)},iy[ii.DATA_BOOL]=function(e,t){var n=e.field,r=e.operator;return ig(iv(t,n),r)},iy[ii.DATA_EXIST]=function(e,t){var n=e.field;return e.operator,void 0!==iv(t,n)},iy[ii.UNDIRECTED_EDGE]=function(e,t){var n=e.nodes[0],r=e.nodes[1],i=t.source(),a=t.target();return im(n,i)&&im(r,a)||im(r,i)&&im(n,a)},iy[ii.NODE_NEIGHBOR]=function(e,t){return im(e.node,t)&&t.neighborhood().some(function(t){return t.isNode()&&im(e.neighbor,t)})},iy[ii.DIRECTED_EDGE]=function(e,t){return im(e.source,t.source())&&im(e.target,t.target())},iy[ii.NODE_SOURCE]=function(e,t){return im(e.source,t)&&t.outgoers().some(function(t){return t.isNode()&&im(e.target,t)})},iy[ii.NODE_TARGET]=function(e,t){return im(e.target,t)&&t.incomers().some(function(t){return t.isNode()&&im(e.source,t)})},iy[ii.CHILD]=function(e,t){return im(e.child,t)&&im(e.parent,t.parent())},iy[ii.PARENT]=function(e,t){return im(e.parent,t)&&t.children().some(function(t){return im(e.child,t)})},iy[ii.DESCENDANT]=function(e,t){return im(e.descendant,t)&&t.ancestors().some(function(t){return im(e.ancestor,t)})},iy[ii.ANCESTOR]=function(e,t){return im(e.ancestor,t)&&t.descendants().some(function(t){return im(e.descendant,t)})},iy[ii.COMPOUND_SPLIT]=function(e,t){return im(e.subject,t)&&im(e.left,t)&&im(e.right,t)},iy[ii.TRUE]=function(){return!0},iy[ii.COLLECTION]=function(e,t){return e.value.has(t)},iy[ii.FILTER]=function(e,t){return(0,e.value)(t)};var ib=function(e){this.inputText=e,this.currentSubject=null,this.compoundCount=0,this.edgeCount=0,this.length=0,null==e||D(e)&&e.match(/^\s*$/)||(A(e)?this.addQuery({checks:[{type:ii.COLLECTION,value:e.collection()}]}):T(e)?this.addQuery({checks:[{type:ii.FILTER,value:e}]}):D(e)?this.parse(e)||(this.invalid=!0):eQ("A selector must be created from a string; found "))},ix=ib.prototype;[{parse:function(e){var t=this.inputText=e,n=this[0]=ir();for(this.length=1,t=id(t);;){var r=ih(t);if(null==r.expr)return e0("The selector `"+e+"`is invalid"),!1;var i=r.match.slice(1),a=r.expr.populate(this,n,i);if(!1===a)return!1;if(null!=a&&(n=a),(t=r.remaining).match(/^\s*$/))break}var o=this[this.length-1];null!=this.currentSubject&&(o.subject=this.currentSubject),o.edgeCount=this.edgeCount,o.compoundCount=this.compoundCount;for(var s=0;s<this.length;s++){var l=this[s];if(l.compoundCount>0&&l.edgeCount>0)return e0("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(l.edgeCount>1)return e0("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;1===l.edgeCount&&e0("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},toString:function(){if(null!=this.toStringCache)return this.toStringCache;for(var e=function(e){return null==e?"":e},t=function(t){return D(t)?'"'+t+'"':e(t)},n=function(e){return" "+e+" "},r=function(r,a){var o=r.type,s=r.value;switch(o){case ii.GROUP:var l=e(s);return l.substring(0,l.length-1);case ii.DATA_COMPARE:return"["+r.field+n(e(r.operator))+t(s)+"]";case ii.DATA_BOOL:var u=r.operator,c=r.field;return"["+e(u)+c+"]";case ii.DATA_EXIST:return"["+r.field+"]";case ii.META_COMPARE:var h=r.operator;return"[["+r.field+n(e(h))+t(s)+"]]";case ii.STATE:return s;case ii.ID:return"#"+s;case ii.CLASS:return"."+s;case ii.PARENT:case ii.CHILD:return i(r.parent,a)+n(">")+i(r.child,a);case ii.ANCESTOR:case ii.DESCENDANT:return i(r.ancestor,a)+" "+i(r.descendant,a);case ii.COMPOUND_SPLIT:var d=i(r.left,a),p=i(r.subject,a),f=i(r.right,a);return d+(d.length>0?" ":"")+p+f;case ii.TRUE:return""}},i=function(e,t){return e.checks.reduce(function(n,i,a){return n+(t===e&&0===a?"$":"")+r(i,t)},"")},a="",o=0;o<this.length;o++){var s=this[o];a+=i(s,s.subject),this.length>1&&o<this.length-1&&(a+=", ")}return this.toStringCache=a,a}},{matches:function(e){for(var t=0;t<this.length;t++)if(im(this[t],e))return!0;return!1},filter:function(e){var t=this;if(1===t.length&&1===t[0].checks.length&&t[0].checks[0].type===ii.ID)return e.getElementById(t[0].checks[0].value).collection();var n=function(e){for(var n=0;n<t.length;n++)if(im(t[n],e))return!0;return!1};return null==t.text()&&(n=function(){return!0}),e.filter(n)}}].forEach(function(e){return Z(ix,e)}),ix.text=function(){return this.inputText},ix.size=function(){return this.length},ix.eq=function(e){return this[e]},ix.sameText=function(e){return!this.invalid&&!e.invalid&&this.text()===e.text()},ix.addQuery=function(e){this[this.length++]=e},ix.selector=ix.toString;var iw={allAre:function(e){var t=new ib(e);return this.every(function(e){return t.matches(e)})},is:function(e){var t=new ib(e);return this.some(function(e){return t.matches(e)})},some:function(e,t){for(var n=0;n<this.length;n++)if(t?e.apply(t,[this[n],n,this]):e(this[n],n,this))return!0;return!1},every:function(e,t){for(var n=0;n<this.length;n++)if(!(t?e.apply(t,[this[n],n,this]):e(this[n],n,this)))return!1;return!0},same:function(e){if(this===e)return!0;e=this.cy().collection(e);var t=this.length;return t===e.length&&(1===t?this[0]===e[0]:this.every(function(t){return e.hasElementWithId(t.id())}))},anySame:function(e){return e=this.cy().collection(e),this.some(function(t){return e.hasElementWithId(t.id())})},allAreNeighbors:function(e){e=this.cy().collection(e);var t=this.neighborhood();return e.every(function(e){return t.hasElementWithId(e.id())})},contains:function(e){e=this.cy().collection(e);var t=this;return e.every(function(e){return t.hasElementWithId(e.id())})}};iw.allAreNeighbours=iw.allAreNeighbors,iw.has=iw.contains,iw.equal=iw.equals=iw.same;var iE=function(e,t){return function(n,r,i,a){if(null==n?o="":A(n)&&1===n.length&&(o=n.id()),1!==this.length||!o)return e.call(this,n,r,i,a);var o,s=this[0]._private,l=s.traversalCache=s.traversalCache||{},u=l[t]=l[t]||[],c=ej(o);return u[c]||(u[c]=e.call(this,n,r,i,a))}},ik={parent:function(e){var t=[];if(1===this.length){var n=this[0]._private.parent;if(n)return n}for(var r=0;r<this.length;r++){var i=this[r]._private.parent;i&&t.push(i)}return this.spawn(t,!0).filter(e)},parents:function(e){for(var t=[],n=this.parent();n.nonempty();){for(var r=0;r<n.length;r++){var i=n[r];t.push(i)}n=n.parent()}return this.spawn(t,!0).filter(e)},commonAncestors:function(e){for(var t,n=0;n<this.length;n++){var r=this[n].parents();t=(t=t||r).intersect(r)}return t.filter(e)},orphans:function(e){return this.stdFilter(function(e){return e.isOrphan()}).filter(e)},nonorphans:function(e){return this.stdFilter(function(e){return e.isChild()}).filter(e)},children:iE(function(e){for(var t=[],n=0;n<this.length;n++)for(var r=this[n]._private.children,i=0;i<r.length;i++)t.push(r[i]);return this.spawn(t,!0).filter(e)},"children"),siblings:function(e){return this.parent().children().not(this).filter(e)},isParent:function(){var e=this[0];if(e)return e.isNode()&&0!==e._private.children.length},isChildless:function(){var e=this[0];if(e)return e.isNode()&&0===e._private.children.length},isChild:function(){var e=this[0];if(e)return e.isNode()&&null!=e._private.parent},isOrphan:function(){var e=this[0];if(e)return e.isNode()&&null==e._private.parent},descendants:function(e){var t=[];return!function e(n){for(var r=0;r<n.length;r++){var i=n[r];t.push(i),i.children().nonempty()&&e(i.children())}}(this.children()),this.spawn(t,!0).filter(e)}};function iC(e,t,n,r){for(var i=[],a=new ti,o=e.cy().hasCompoundNodes(),s=0;s<e.length;s++){var l=e[s];n?i.push(l):o&&r(i,a,l)}for(;i.length>0;){var u=i.shift();t(u),a.add(u.id()),o&&r(i,a,u)}return e}function iS(e,t,n){if(n.isParent())for(var r=n._private.children,i=0;i<r.length;i++){var a=r[i];t.has(a.id())||e.push(a)}}function iD(e,t,n){if(n.isChild()){var r=n._private.parent;t.has(r.id())||e.push(r)}}function iT(e,t,n){iD(e,t,n),iS(e,t,n)}ik.forEachDown=function(e){var t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return iC(this,e,t,iS)},ik.forEachUp=function(e){var t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return iC(this,e,t,iD)},ik.forEachUpAndDown=function(e){var t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return iC(this,e,t,iT)},ik.ancestors=ik.parents,(oU=oK={data:r8.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:r8.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:r8.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:r8.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:r8.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:r8.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}}).attr=oU.data,oU.removeAttr=oU.removeData;var iP={};function i_(e){return function(t){if(void 0===t&&(t=!0),0!==this.length&&!(!this.isNode()||this.removed())){for(var n=0,r=this[0],i=r._private.edges,a=0;a<i.length;a++){var o=i[a];!t&&o.isLoop()||(n+=e(r,o))}return n}}}function iM(e,t){return function(n){for(var r,i=this.nodes(),a=0;a<i.length;a++){var o=i[a][e](n);void 0!==o&&(void 0===r||t(o,r))&&(r=o)}return r}}Z(iP,{degree:i_(function(e,t){return t.source().same(t.target())?2:1}),indegree:i_(function(e,t){return t.target().same(e)?1:0}),outdegree:i_(function(e,t){return t.source().same(e)?1:0})}),Z(iP,{minDegree:iM("degree",function(e,t){return e<t}),maxDegree:iM("degree",function(e,t){return e>t}),minIndegree:iM("indegree",function(e,t){return e<t}),maxIndegree:iM("indegree",function(e,t){return e>t}),minOutdegree:iM("outdegree",function(e,t){return e<t}),maxOutdegree:iM("outdegree",function(e,t){return e>t})}),Z(iP,{totalDegree:function(e){for(var t=0,n=this.nodes(),r=0;r<n.length;r++)t+=n[r].degree(e);return t}});var iB=function(e,t,n){for(var r=0;r<e.length;r++){var i=e[r];if(!i.locked()){var a=i._private.position,o={x:null!=t.x?t.x-a.x:0,y:null!=t.y?t.y-a.y:0};i.isParent()&&!(0===o.x&&0===o.y)&&i.children().shift(o,n),i.dirtyBoundingBoxCache()}}},iA={field:"position",bindingEvent:"position",allowBinding:!0,allowSetting:!0,settingEvent:"position",settingTriggersEvent:!0,triggerFnName:"emitAndNotify",allowGetting:!0,validKeys:["x","y"],beforeGet:function(e){e.updateCompoundBounds()},beforeSet:function(e,t){iB(e,t,!1)},onSet:function(e){e.dirtyCompoundBoundsCache()},canSet:function(e){return!e.locked()}};(oZ=o$={position:r8.data(iA),silentPosition:r8.data(Z({},iA,{allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!1,beforeSet:function(e,t){iB(e,t,!0)},onSet:function(e){e.dirtyCompoundBoundsCache()}})),positions:function(e,t){if(_(e))t?this.silentPosition(e):this.position(e);else if(T(e)){var n=this.cy();n.startBatch();for(var r=0;r<this.length;r++){var i=this[r],a=void 0;(a=e(i,r))&&(t?i.silentPosition(a):i.position(a))}n.endBatch()}return this},silentPositions:function(e){return this.positions(e,!0)},shift:function(e,t,n){var r;if(_(e)?(r={x:M(e.x)?e.x:0,y:M(e.y)?e.y:0},n=t):D(e)&&M(t)&&((r={x:0,y:0})[e]=t),null!=r){var i=this.cy();i.startBatch();for(var a=0;a<this.length;a++){var o=this[a];if(!(i.hasCompoundNodes()&&o.isChild()&&o.ancestors().anySame(this))){var s=o.position(),l={x:s.x+r.x,y:s.y+r.y};n?o.silentPosition(l):o.position(l)}}i.endBatch()}return this},silentShift:function(e,t){return _(e)?this.shift(e,!0):D(e)&&M(t)&&this.shift(e,t,!0),this},renderedPosition:function(e,t){var n=this[0],r=this.cy(),i=r.zoom(),a=r.pan(),o=_(e)?e:void 0,s=void 0!==o||void 0!==t&&D(e);if(n&&n.isNode()){if(!s)return(o=tv(n.position(),i,a),void 0===e)?o:o[e];for(var l=0;l<this.length;l++){var u=this[l];void 0!==t?u.position(e,(t-a[e])/i):void 0!==o&&u.position(ty(o,i,a))}}else if(!s)return;return this},relativePosition:function(e,t){var n=this[0],r=this.cy(),i=_(e)?e:void 0,a=void 0!==i||void 0!==t&&D(e),o=r.hasCompoundNodes();if(n&&n.isNode()){if(a)for(var s=0;s<this.length;s++){var l=this[s],u=o?l.parent():null,c=u&&u.length>0;c&&(u=u[0]);var h=c?u.position():{x:0,y:0};void 0!==t?l.position(e,t+h[e]):void 0!==i&&l.position({x:i.x+h.x,y:i.y+h.y})}else{var d=n.position(),p=o?n.parent():null,f=p&&p.length>0;f&&(p=p[0]);var g=f?p.position():{x:0,y:0};return(i={x:d.x-g.x,y:d.y-g.y},void 0===e)?i:i[e]}}else if(!a)return;return this}}).modelPosition=oZ.point=oZ.position,oZ.modelPositions=oZ.points=oZ.positions,oZ.renderedPoint=oZ.renderedPosition,oZ.relativePoint=oZ.relativePosition,oQ=oJ={},oJ.renderedBoundingBox=function(e){var t=this.boundingBox(e),n=this.cy(),r=n.zoom(),i=n.pan(),a=t.x1*r+i.x,o=t.x2*r+i.x,s=t.y1*r+i.y,l=t.y2*r+i.y;return{x1:a,x2:o,y1:s,y2:l,w:o-a,h:l-s}},oJ.dirtyCompoundBoundsCache=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();return t.styleEnabled()&&t.hasCompoundNodes()&&this.forEachUp(function(t){if(t.isParent()){var n=t._private;n.compoundBoundsClean=!1,n.bbCache=null,e||t.emitAndNotify("bounds")}}),this},oJ.updateCompoundBounds=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes()||!e&&t.batching())return this;for(var n=0;n<this.length;n++){var r=this[n],i=r._private;i.compoundBoundsClean&&!e||(function(e){if(e.isParent()){var t=e._private,n=e.children(),r="include"===e.pstyle("compound-sizing-wrt-labels").value,i={width:{val:e.pstyle("min-width").pfValue,left:e.pstyle("min-width-bias-left"),right:e.pstyle("min-width-bias-right")},height:{val:e.pstyle("min-height").pfValue,top:e.pstyle("min-height-bias-top"),bottom:e.pstyle("min-height-bias-bottom")}},a=n.boundingBox({includeLabels:r,includeOverlays:!1,useCache:!1}),o=t.position;(0===a.w||0===a.h)&&((a={w:e.pstyle("width").pfValue,h:e.pstyle("height").pfValue}).x1=o.x-a.w/2,a.x2=o.x+a.w/2,a.y1=o.y-a.h/2,a.y2=o.y+a.h/2);var s=i.width.left.value;"px"===i.width.left.units&&i.width.val>0&&(s=100*s/i.width.val);var l=i.width.right.value;"px"===i.width.right.units&&i.width.val>0&&(l=100*l/i.width.val);var u=i.height.top.value;"px"===i.height.top.units&&i.height.val>0&&(u=100*u/i.height.val);var c=i.height.bottom.value;"px"===i.height.bottom.units&&i.height.val>0&&(c=100*c/i.height.val);var h=y(i.width.val-a.w,s,l),d=h.biasDiff,p=h.biasComplementDiff,f=y(i.height.val-a.h,u,c),g=f.biasDiff,v=f.biasComplementDiff;t.autoPadding=function(e,t,n,r){if("%"===n.units)switch(r){case"width":return e>0?n.pfValue*e:0;case"height":return t>0?n.pfValue*t:0;case"average":return e>0&&t>0?n.pfValue*(e+t)/2:0;case"min":return e>0&&t>0?e>t?n.pfValue*t:n.pfValue*e:0;case"max":return e>0&&t>0?e>t?n.pfValue*e:n.pfValue*t:0;default:return 0}else if("px"===n.units)return n.pfValue;else return 0}(a.w,a.h,e.pstyle("padding"),e.pstyle("padding-relative-to").value),t.autoWidth=Math.max(a.w,i.width.val),o.x=(-d+a.x1+a.x2+p)/2,t.autoHeight=Math.max(a.h,i.height.val),o.y=(-g+a.y1+a.y2+v)/2}function y(e,t,n){var r=0,i=0,a=t+n;return e>0&&a>0&&(r=t/a*e,i=n/a*e),{biasDiff:r,biasComplementDiff:i}}}(r),t.batching()||(i.compoundBoundsClean=!0))}return this};var iN=function(e){return e===1/0||e===-1/0?0:e},iI=function(e,t,n,r,i){r-t!=0&&i-n!=0&&null!=t&&null!=n&&null!=r&&null!=i&&(e.x1=t<e.x1?t:e.x1,e.x2=r>e.x2?r:e.x2,e.y1=n<e.y1?n:e.y1,e.y2=i>e.y2?i:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},iO=function(e,t){return null==t?e:iI(e,t.x1,t.y1,t.x2,t.y2)},iL=function(e,t,n){return e7(e,t,n)},iR=function(e,t,n){if(!t.cy().headless()){var r,i,a=t._private,o=a.rstyle,s=o.arrowWidth/2;if("none"!==t.pstyle(n+"-arrow-shape").value){"source"===n?(r=o.srcX,i=o.srcY):"target"===n?(r=o.tgtX,i=o.tgtY):(r=o.midX,i=o.midY);var l=a.arrowBounds=a.arrowBounds||{},u=l[n]=l[n]||{};u.x1=r-s,u.y1=i-s,u.x2=r+s,u.y2=i+s,u.w=u.x2-u.x1,u.h=u.y2-u.y1,tR(u,1),iI(e,u.x1,u.y1,u.x2,u.y2)}}},iz=function(e,t,n){if(!t.cy().headless()){a=n?n+"-":"";var r=t._private,i=r.rstyle;if(t.pstyle(a+"label").strValue){var a,o,s,l,u,c=t.pstyle("text-halign"),h=t.pstyle("text-valign"),d=iL(i,"labelWidth",n),p=iL(i,"labelHeight",n),f=iL(i,"labelX",n),g=iL(i,"labelY",n),v=t.pstyle(a+"text-margin-x").pfValue,y=t.pstyle(a+"text-margin-y").pfValue,b=t.isEdge(),x=t.pstyle(a+"text-rotation"),w=t.pstyle("text-outline-width").pfValue,E=t.pstyle("text-border-width").pfValue/2,k=t.pstyle("text-background-padding").pfValue,C=d/2,S=p/2;if(b)o=f-C,s=f+C,l=g-S,u=g+S;else{switch(c.value){case"left":o=f-d,s=f;break;case"center":o=f-C,s=f+C;break;case"right":o=f,s=f+d}switch(h.value){case"top":l=g-p,u=g;break;case"center":l=g-S,u=g+S;break;case"bottom":l=g,u=g+p}}o+=v-Math.max(w,E)-k-2,s+=v+Math.max(w,E)+k+2,l+=y-Math.max(w,E)-k-2,u+=y+Math.max(w,E)+k+2;var D=n||"main",T=r.labelBounds,P=T[D]=T[D]||{};P.x1=o,P.y1=l,P.x2=s,P.y2=u,P.w=s-o,P.h=u-l;var _=b&&"autorotate"===x.strValue,M=null!=x.pfValue&&0!==x.pfValue;if(_||M){var B=_?iL(r.rstyle,"labelAngle",n):x.pfValue,A=Math.cos(B),N=Math.sin(B),I=(o+s)/2,O=(l+u)/2;if(!b){switch(c.value){case"left":I=s;break;case"right":I=o}switch(h.value){case"top":O=u;break;case"bottom":O=l}}var L=function(e,t){return{x:(e-=I)*A-(t-=O)*N+I,y:e*N+t*A+O}},R=L(o,l),z=L(o,u),V=L(s,l),F=L(s,u);o=Math.min(R.x,z.x,V.x,F.x),s=Math.max(R.x,z.x,V.x,F.x),l=Math.min(R.y,z.y,V.y,F.y),u=Math.max(R.y,z.y,V.y,F.y)}var j=D+"Rot",q=T[j]=T[j]||{};q.x1=o,q.y1=l,q.x2=s,q.y2=u,q.w=s-o,q.h=u-l,iI(e,o,l,s,u),iI(r.labelBounds.all,o,l,s,u)}return e}},iV=function(e,t){if(!t.cy().headless()){var n=t.pstyle("outline-opacity").value,r=t.pstyle("outline-width").value;if(n>0&&r>0){var i=t.pstyle("outline-offset").value,a=t.pstyle("shape").value,o=r+i,s=(e.w+2*o)/e.w,l=(e.h+2*o)/e.h,u=0;["diamond","pentagon","round-triangle"].includes(a)?(s=(e.w+2.4*o)/e.w,u=-o/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(a)?s=(e.w+2.4*o)/e.w:"star"===a?(s=(e.w+2.8*o)/e.w,l=(e.h+2.6*o)/e.h,u=-o/3.8):"triangle"===a?(s=(e.w+2.8*o)/e.w,l=(e.h+2.4*o)/e.h,u=-o/1.4):"vee"===a&&(s=(e.w+4.4*o)/e.w,l=(e.h+3.8*o)/e.h,u=-(.5*o));var c=e.h*l-e.h,h=e.w*s-e.w;if(tz(e,[Math.ceil(c/2),Math.ceil(h/2)]),0!==u){var d,p=(d=u,{x1:e.x1+0,x2:e.x2+0,y1:e.y1+d,y2:e.y2+d,w:e.w,h:e.h});tO(e,p)}}}},iF=function(e,t){var n=e._private.cy,r=n.styleEnabled(),i=n.headless(),a=tN(),o=e._private,s=e.isNode(),l=e.isEdge(),u=o.rstyle,c=s&&r?e.pstyle("bounds-expansion").pfValue:[0],h=function(e){return"none"!==e.pstyle("display").value},d=!r||h(e)&&(!l||h(e.source())&&h(e.target()));if(d){var p=0;r&&t.includeOverlays&&0!==e.pstyle("overlay-opacity").value&&(p=e.pstyle("overlay-padding").value);var f=0;r&&t.includeUnderlays&&0!==e.pstyle("underlay-opacity").value&&(f=e.pstyle("underlay-padding").value);var g=Math.max(p,f),v=0;if(r&&(v=e.pstyle("width").pfValue/2),s&&t.includeNodes){var y=e.position();S=y.x,D=y.y;var b=e.outerWidth()/2,x=e.outerHeight()/2;w=S-b,E=S+b,iI(a,w,k=D-x,E,C=D+x),r&&t.includeOutlines&&iV(a,e)}else if(l&&t.includeEdges){if(r&&!i){var w,E,k,C,S,D,T,P=e.pstyle("curve-style").strValue;if(w=Math.min(u.srcX,u.midX,u.tgtX),E=Math.max(u.srcX,u.midX,u.tgtX),k=Math.min(u.srcY,u.midY,u.tgtY),C=Math.max(u.srcY,u.midY,u.tgtY),w-=v,E+=v,iI(a,w,k-=v,E,C+=v),"haystack"===P){var _=u.haystackPts;if(_&&2===_.length){if(w=_[0].x,k=_[0].y,E=_[1].x,C=_[1].y,w>E){var M=w;w=E,E=M}if(k>C){var B=k;k=C,C=B}iI(a,w-v,k-v,E+v,C+v)}}else if("bezier"===P||"unbundled-bezier"===P||P.endsWith("segments")||P.endsWith("taxi")){switch(P){case"bezier":case"unbundled-bezier":T=u.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":T=u.linePts}if(null!=T)for(var A=0;A<T.length;A++){var N=T[A];w=N.x-v,E=N.x+v,iI(a,w,k=N.y-v,E,C=N.y+v)}}}else{var I=e.source().position(),O=e.target().position();if(w=I.x,E=O.x,k=I.y,C=O.y,w>E){var L=w;w=E,E=L}if(k>C){var R=k;k=C,C=R}w-=v,E+=v,iI(a,w,k-=v,E,C+=v)}}if(r&&t.includeEdges&&l&&(iR(a,e,"mid-source"),iR(a,e,"mid-target"),iR(a,e,"source"),iR(a,e,"target")),r&&"yes"===e.pstyle("ghost").value){var z=e.pstyle("ghost-offset-x").pfValue,V=e.pstyle("ghost-offset-y").pfValue;iI(a,a.x1+z,a.y1+V,a.x2+z,a.y2+V)}var F=o.bodyBounds=o.bodyBounds||{};tV(F,a),tz(F,c),tR(F,1),r&&(w=a.x1,E=a.x2,k=a.y1,C=a.y2,iI(a,w-g,k-g,E+g,C+g));var j=o.overlayBounds=o.overlayBounds||{};tV(j,a),tz(j,c),tR(j,1);var q=o.labelBounds=o.labelBounds||{};null!=q.all?tI(q.all):q.all=tN(),r&&t.includeLabels&&(t.includeMainLabels&&iz(a,e,null),l&&(t.includeSourceLabels&&iz(a,e,"source"),t.includeTargetLabels&&iz(a,e,"target")))}return a.x1=iN(a.x1),a.y1=iN(a.y1),a.x2=iN(a.x2),a.y2=iN(a.y2),a.w=iN(a.x2-a.x1),a.h=iN(a.y2-a.y1),a.w>0&&a.h>0&&d&&(tz(a,c),tR(a,1)),a},ij=function(e){var t=0,n=function(e){return(e?1:0)<<t++};return 0+n(e.incudeNodes)+n(e.includeEdges)+n(e.includeLabels)+n(e.includeMainLabels)+n(e.includeSourceLabels)+n(e.includeTargetLabels)+n(e.includeOverlays)+n(e.includeOutlines)},iq=function(e){if(!e.isEdge())return 0;var t=e.source().position(),n=e.target().position(),r=function(e){return Math.round(e)};return eF([r(t.x),r(t.y),r(n.x),r(n.y)])},iX=function(e,t){var n,r=e._private,i=e.isEdge(),a=null==t?iW:ij(t),o=iq(e),s=r.bbCachePosKey===o,l=t.useCache&&s,u=function(e){return null==e._private.bbCache||e._private.styleDirty};if(!l||u(e)||i&&u(e.source())||u(e.target())?(s||e.recalculateRenderedStyle(l),n=iF(e,iY),r.bbCache=n,r.bbCachePosKey=o):n=r.bbCache,a!==iW){var c=e.isNode();n=tN(),(t.includeNodes&&c||t.includeEdges&&!c)&&(t.includeOverlays?iO(n,r.overlayBounds):iO(n,r.bodyBounds)),t.includeLabels&&(t.includeMainLabels&&(!i||t.includeSourceLabels&&t.includeTargetLabels)?iO(n,r.labelBounds.all):(t.includeMainLabels&&iO(n,r.labelBounds.mainRot),t.includeSourceLabels&&iO(n,r.labelBounds.sourceRot),t.includeTargetLabels&&iO(n,r.labelBounds.targetRot))),n.w=n.x2-n.x1,n.h=n.y2-n.y1}return n},iY={includeNodes:!0,includeEdges:!0,includeLabels:!0,includeMainLabels:!0,includeSourceLabels:!0,includeTargetLabels:!0,includeOverlays:!0,includeUnderlays:!0,includeOutlines:!0,useCache:!0},iW=ij(iY),iH=e4(iY);oJ.boundingBox=function(e){var t;if(1!==this.length||null==this[0]._private.bbCache||this[0]._private.styleDirty||void 0!==e&&void 0!==e.useCache&&!0!==e.useCache){t=tN();var n=iH(e=e||iY);if(this.cy().styleEnabled())for(var r=0;r<this.length;r++){var i=this[r],a=i._private,o=iq(i),s=a.bbCachePosKey===o,l=n.useCache&&s&&!a.styleDirty;i.recalculateRenderedStyle(l)}this.updateCompoundBounds(!e.useCache);for(var u=0;u<this.length;u++)iO(t,iX(this[u],n))}else e=void 0===e?iY:iH(e),t=iX(this[0],e);return t.x1=iN(t.x1),t.y1=iN(t.y1),t.x2=iN(t.x2),t.y2=iN(t.y2),t.w=iN(t.x2-t.x1),t.h=iN(t.y2-t.y1),t},oJ.dirtyBoundingBoxCache=function(){for(var e=0;e<this.length;e++){var t=this[e]._private;t.bbCache=null,t.bbCachePosKey=null,t.bodyBounds=null,t.overlayBounds=null,t.labelBounds.all=null,t.labelBounds.source=null,t.labelBounds.target=null,t.labelBounds.main=null,t.labelBounds.sourceRot=null,t.labelBounds.targetRot=null,t.labelBounds.mainRot=null,t.arrowBounds.source=null,t.arrowBounds.target=null,t.arrowBounds["mid-source"]=null,t.arrowBounds["mid-target"]=null}return this.emitAndNotify("bounds"),this},oJ.boundingBoxAt=function(e){var t,n=this.nodes(),r=this.cy(),i=r.hasCompoundNodes(),a=r.collection();if(i&&(a=n.filter(function(e){return e.isParent()}),n=n.not(a)),_(e)){var o=e;e=function(){return o}}r.startBatch(),n.forEach(function(t,n){return t._private.bbAtOldPos=e(t,n)}).silentPositions(e),i&&(a.dirtyCompoundBoundsCache(),a.dirtyBoundingBoxCache(),a.updateCompoundBounds(!0));var s={x1:(t=this.boundingBox({useCache:!1})).x1,x2:t.x2,w:t.w,y1:t.y1,y2:t.y2,h:t.h};return n.silentPositions(function(e){return e._private.bbAtOldPos}),i&&(a.dirtyCompoundBoundsCache(),a.dirtyBoundingBoxCache(),a.updateCompoundBounds(!0)),r.endBatch(),s},oQ.boundingbox=oQ.bb=oQ.boundingBox,oQ.renderedBoundingbox=oQ.renderedBoundingBox,o0=o1={};var iG=function(e){e.uppercaseName=X(e.name),e.autoName="auto"+e.uppercaseName,e.labelName="label"+e.uppercaseName,e.outerName="outer"+e.uppercaseName,e.uppercaseOuterName=X(e.outerName),o0[e.name]=function(){var t=this[0],n=t._private,r=n.cy._private.styleEnabled;if(t){if(!r)return 1;if(t.isParent())return t.updateCompoundBounds(),n[e.autoName]||0;var i=t.pstyle(e.name);return"label"===i.strValue?(t.recalculateRenderedStyle(),n.rstyle[e.labelName]||0):i.pfValue}},o0["outer"+e.uppercaseName]=function(){var t=this[0],n=t._private.cy._private.styleEnabled;if(t)return n?t[e.name]()+t.pstyle("border-width").pfValue+2*t.padding():1},o0["rendered"+e.uppercaseName]=function(){var t=this[0];if(t)return t[e.name]()*this.cy().zoom()},o0["rendered"+e.uppercaseOuterName]=function(){var t=this[0];if(t)return t[e.outerName]()*this.cy().zoom()}};iG({name:"width"}),iG({name:"height"}),o1.padding=function(){var e=this[0],t=e._private;return e.isParent()&&(e.updateCompoundBounds(),void 0!==t.autoPadding)?t.autoPadding:e.pstyle("padding").pfValue},o1.paddedHeight=function(){var e=this[0];return e.height()+2*e.padding()},o1.paddedWidth=function(){var e=this[0];return e.width()+2*e.padding()};var iU=function(e,t){if(e.isEdge())return t(e)},iK=function(e,t){if(e.isEdge()){var n=e.cy();return tv(t(e),n.zoom(),n.pan())}},iZ=function(e,t){if(e.isEdge()){var n=e.cy(),r=n.pan(),i=n.zoom();return t(e).map(function(e){return tv(e,i,r)})}},i$={controlPoints:{get:function(e){return e.renderer().getControlPoints(e)},mult:!0},segmentPoints:{get:function(e){return e.renderer().getSegmentPoints(e)},mult:!0},sourceEndpoint:{get:function(e){return e.renderer().getSourceEndpoint(e)}},targetEndpoint:{get:function(e){return e.renderer().getTargetEndpoint(e)}},midpoint:{get:function(e){return e.renderer().getEdgeMidpoint(e)}}},iQ=Z({},o$,oJ,o1,Object.keys(i$).reduce(function(e,t){var n=i$[t],r="rendered"+t[0].toUpperCase()+t.substr(1);return e[t]=function(){return iU(this,n.get)},n.mult?e[r]=function(){return iZ(this,n.get)}:e[r]=function(){return iK(this,n.get)},e},{})),iJ=function(e,t){this.recycle(e,t)};function i0(){return!1}function i1(){return!0}iJ.prototype={instanceString:function(){return"event"},recycle:function(e,t){if(this.isImmediatePropagationStopped=this.isPropagationStopped=this.isDefaultPrevented=i0,null!=e&&e.preventDefault?(this.type=e.type,this.isDefaultPrevented=e.defaultPrevented?i1:i0):null!=e&&e.type?t=e:this.type=e,null!=t&&(this.originalEvent=t.originalEvent,this.type=null!=t.type?t.type:this.type,this.cy=t.cy,this.target=t.target,this.position=t.position,this.renderedPosition=t.renderedPosition,this.namespace=t.namespace,this.layout=t.layout),null!=this.cy&&null!=this.position&&null==this.renderedPosition){var n=this.position,r=this.cy.zoom(),i=this.cy.pan();this.renderedPosition={x:n.x*r+i.x,y:n.y*r+i.y}}this.timeStamp=e&&e.timeStamp||Date.now()},preventDefault:function(){this.isDefaultPrevented=i1;var e=this.originalEvent;e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){this.isPropagationStopped=i1;var e=this.originalEvent;e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i1,this.stopPropagation()},isDefaultPrevented:i0,isPropagationStopped:i0,isImmediatePropagationStopped:i0};var i2=/^([^.]+)(\.(?:[^.]+))?$/,i5={qualifierCompare:function(e,t){return e===t},eventMatches:function(){return!0},addEventFields:function(){},callbackContext:function(e){return e},beforeEmit:function(){},afterEmit:function(){},bubble:function(){return!1},parent:function(){return null},context:null},i3=Object.keys(i5),i4={};function i9(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i4,t=arguments.length>1?arguments[1]:void 0,n=0;n<i3.length;n++){var r=i3[n];this[r]=e[r]||i5[r]}this.context=t||this.context,this.listeners=[],this.emitting=0}var i6=i9.prototype,i8=function(e,t,n,r,i,a,o){T(r)&&(i=r,r=null),o&&(a=null==a?o:Z({},a,o));for(var s=P(n)?n:n.split(/\s+/),l=0;l<s.length;l++){var u=s[l];if(!R(u)){var c=u.match(i2);if(c&&!1===t(e,u,c[1],c[2]?c[2]:null,r,i,a))break}}},i7=function(e,t){return e.addEventFields(e.context,t),new iJ(t.type,t)},ae=function(e,t,n){if("event"===S(n)){t(e,n);return}if(_(n)){t(e,i7(e,n));return}for(var r=P(n)?n:n.split(/\s+/),i=0;i<r.length;i++){var a=r[i];if(!R(a)){var o=a.match(i2);if(o){var s=i7(e,{type:o[1],namespace:o[2]?o[2]:null,target:e.context});t(e,s)}}}};i6.on=i6.addListener=function(e,t,n,r,i){return i8(this,function(e,t,n,r,i,a,o){T(a)&&e.listeners.push({event:t,callback:a,type:n,namespace:r,qualifier:i,conf:o})},e,t,n,r,i),this},i6.one=function(e,t,n,r){return this.on(e,t,n,r,{one:!0})},i6.removeListener=i6.off=function(e,t,n,r){var i=this;0!==this.emitting&&(this.listeners=this.listeners.slice());for(var a=this.listeners,o=function(o){var s=a[o];i8(i,function(t,n,r,i,l,u){if((s.type===r||"*"===e)&&(!i&&".*"!==s.namespace||s.namespace===i)&&(!l||t.qualifierCompare(s.qualifier,l))&&(!u||s.callback===u))return a.splice(o,1),!1},e,t,n,r)},s=a.length-1;s>=0;s--)o(s);return this},i6.removeAllListeners=function(){return this.removeListener("*")},i6.emit=i6.trigger=function(e,t,n){var r=this.listeners,i=r.length;return this.emitting++,P(t)||(t=[t]),ae(this,function(e,a){null!=n&&(i=(r=[{event:a.event,type:a.type,namespace:a.namespace,callback:n}]).length);for(var o=0;o<i;o++)!function(n){var i=r[n];if(i.type===a.type&&(!i.namespace||i.namespace===a.namespace||".*"===i.namespace)&&e.eventMatches(e.context,i,a)){var o=[a];null!=t&&e8(o,t),e.beforeEmit(e.context,i,a),i.conf&&i.conf.one&&(e.listeners=e.listeners.filter(function(e){return e!==i}));var s=e.callbackContext(e.context,i,a),l=i.callback.apply(s,o);e.afterEmit(e.context,i,a),!1===l&&(a.stopPropagation(),a.preventDefault())}}(o);e.bubble(e.context)&&!a.isPropagationStopped()&&e.parent(e.context).emit(a,t)},e),this.emitting--,this};var at={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&N(n.target)&&r.matches(n.target)},addEventFields:function(e,t){t.cy=e.cy(),t.target=e},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e},beforeEmit:function(e,t){t.conf&&t.conf.once&&t.conf.onceCollection.removeListener(t.event,t.qualifier,t.callback)},bubble:function(){return!0},parent:function(e){return e.isChild()?e.parent():e.cy()}},an=function(e){return D(e)?new ib(e):e},ar={createEmitter:function(){for(var e=0;e<this.length;e++){var t=this[e],n=t._private;n.emitter||(n.emitter=new i9(at,t))}return this},emitter:function(){return this._private.emitter},on:function(e,t,n){for(var r=an(t),i=0;i<this.length;i++)this[i].emitter().on(e,r,n);return this},removeListener:function(e,t,n){for(var r=an(t),i=0;i<this.length;i++)this[i].emitter().removeListener(e,r,n);return this},removeAllListeners:function(){for(var e=0;e<this.length;e++)this[e].emitter().removeAllListeners();return this},one:function(e,t,n){for(var r=an(t),i=0;i<this.length;i++)this[i].emitter().one(e,r,n);return this},once:function(e,t,n){for(var r=an(t),i=0;i<this.length;i++)this[i].emitter().on(e,r,n,{once:!0,onceCollection:this})},emit:function(e,t){for(var n=0;n<this.length;n++)this[n].emitter().emit(e,t);return this},emitAndNotify:function(e,t){if(0!==this.length)return this.cy().notify(e,this),this.emit(e,t),this}};r8.eventAliasesOn(ar);var ai={nodes:function(e){return this.filter(function(e){return e.isNode()}).filter(e)},edges:function(e){return this.filter(function(e){return e.isEdge()}).filter(e)},byGroup:function(){for(var e=this.spawn(),t=this.spawn(),n=0;n<this.length;n++){var r=this[n];r.isNode()?e.push(r):t.push(r)}return{nodes:e,edges:t}},filter:function(e,t){if(void 0===e)return this;if(D(e)||A(e))return new ib(e).filter(this);if(T(e)){for(var n=this.spawn(),r=0;r<this.length;r++){var i=this[r];(t?e.apply(t,[i,r,this]):e(i,r,this))&&n.push(i)}return n}return this.spawn()},not:function(e){if(!e)return this;D(e)&&(e=this.filter(e));for(var t=this.spawn(),n=0;n<this.length;n++){var r=this[n];e.has(r)||t.push(r)}return t},absoluteComplement:function(){return this.cy().mutableElements().not(this)},intersect:function(e){if(D(e))return this.filter(e);for(var t=this.spawn(),n=this.length<e.length,r=n?this:e,i=n?e:this,a=0;a<r.length;a++){var o=r[a];i.has(o)&&t.push(o)}return t},xor:function(e){var t=this._private.cy;D(e)&&(e=t.$(e));var n=this.spawn(),r=e,i=function(e,t){for(var r=0;r<e.length;r++){var i=e[r],a=i._private.data.id;t.hasElementWithId(a)||n.push(i)}};return i(this,r),i(r,this),n},diff:function(e){var t=this._private.cy;D(e)&&(e=t.$(e));var n=this.spawn(),r=this.spawn(),i=this.spawn(),a=e,o=function(e,t,n){for(var r=0;r<e.length;r++){var a=e[r],o=a._private.data.id;t.hasElementWithId(o)?i.merge(a):n.push(a)}};return o(this,a,n),o(a,this,r),{left:n,right:r,both:i}},add:function(e){var t=this._private.cy;if(!e)return this;if(D(e)){var n=e;e=t.mutableElements().filter(n)}for(var r=this.spawnSelf(),i=0;i<e.length;i++){var a=e[i];this.has(a)||r.push(a)}return r},merge:function(e){var t=this._private,n=t.cy;if(!e)return this;if(e&&D(e)){var r=e;e=n.mutableElements().filter(r)}for(var i=t.map,a=0;a<e.length;a++){var o=e[a],s=o._private.data.id;if(!i.has(s)){var l=this.length++;this[l]=o,i.set(s,{ele:o,index:l})}}return this},unmergeAt:function(e){var t=this[e].id(),n=this._private.map;this[e]=void 0,n.delete(t);var r=e===this.length-1;if(this.length>1&&!r){var i=this.length-1,a=this[i],o=a._private.data.id;this[i]=void 0,this[e]=a,n.set(o,{ele:a,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var t=this._private,n=e._private.data.id,r=t.map.get(n);if(!r)return this;var i=r.index;return this.unmergeAt(i),this},unmerge:function(e){var t=this._private.cy;if(!e)return this;if(e&&D(e)){var n=e;e=t.mutableElements().filter(n)}for(var r=0;r<e.length;r++)this.unmergeOne(e[r]);return this},unmergeBy:function(e){for(var t=this.length-1;t>=0;t--)e(this[t])&&this.unmergeAt(t);return this},map:function(e,t){for(var n=[],r=0;r<this.length;r++){var i=this[r],a=t?e.apply(t,[i,r,this]):e(i,r,this);n.push(a)}return n},reduce:function(e,t){for(var n=t,r=0;r<this.length;r++)n=e(n,this[r],r,this);return n},max:function(e,t){for(var n,r=-1/0,i=0;i<this.length;i++){var a=this[i],o=t?e.apply(t,[a,i,this]):e(a,i,this);o>r&&(r=o,n=a)}return{value:r,ele:n}},min:function(e,t){for(var n,r=1/0,i=0;i<this.length;i++){var a=this[i],o=t?e.apply(t,[a,i,this]):e(a,i,this);o<r&&(r=o,n=a)}return{value:r,ele:n}}};ai.u=ai["|"]=ai["+"]=ai.union=ai.or=ai.add,ai["\\"]=ai["!"]=ai["-"]=ai.difference=ai.relativeComplement=ai.subtract=ai.not,ai.n=ai["&"]=ai["."]=ai.and=ai.intersection=ai.intersect,ai["^"]=ai["(+)"]=ai["(-)"]=ai.symmetricDifference=ai.symdiff=ai.xor,ai.fnFilter=ai.filterFn=ai.stdFilter=ai.filter,ai.complement=ai.abscomp=ai.absoluteComplement;var aa=function(e,t){var n=e.cy().hasCompoundNodes();function r(e){var t=e.pstyle("z-compound-depth");return"auto"===t.value?n?e.zDepth():0:"bottom"===t.value?-1:"top"===t.value?eG:0}var i=r(e)-r(t);if(0!==i)return i;function a(e){return"auto"===e.pstyle("z-index-compare").value&&e.isNode()?1:0}var o=a(e)-a(t);if(0!==o)return o;var s=e.pstyle("z-index").value-t.pstyle("z-index").value;return 0!==s?s:e.poolIndex()-t.poolIndex()},ao={forEach:function(e,t){if(T(e))for(var n=this.length,r=0;r<n;r++){var i=this[r];if(!1===(t?e.apply(t,[i,r,this]):e(i,r,this)))break}return this},toArray:function(){for(var e=[],t=0;t<this.length;t++)e.push(this[t]);return e},slice:function(e,t){var n=[],r=this.length;null==t&&(t=r),null==e&&(e=0),e<0&&(e=r+e),t<0&&(t=r+t);for(var i=e;i>=0&&i<t&&i<r;i++)n.push(this[i]);return this.spawn(n)},size:function(){return this.length},eq:function(e){return this[e]||this.spawn()},first:function(){return this[0]||this.spawn()},last:function(){return this[this.length-1]||this.spawn()},empty:function(){return 0===this.length},nonempty:function(){return!this.empty()},sort:function(e){if(!T(e))return this;var t=this.toArray().sort(e);return this.spawn(t)},sortByZIndex:function(){return this.sort(aa)},zDepth:function(){var e=this[0];if(e){var t=e._private;if("nodes"===t.group){var n=t.data.parent?e.parents().size():0;return e.isParent()?n:eG-1}var r=t.source,i=t.target;return Math.max(r.zDepth(),i.zDepth(),0)}}};ao.each=ao.forEach,oG="undefined",("undefined"==typeof Symbol?"undefined":r(Symbol))!=oG&&r(Symbol.iterator)!=oG&&(ao[Symbol.iterator]=function(){var e=this,t={value:void 0,done:!1},n=0,r=this.length;return s({next:function(){return n<r?t.value=e[n++]:(t.value=void 0,t.done=!0),t}},Symbol.iterator,function(){return this})});var as=e4({nodeDimensionsIncludeLabels:!1}),al={layoutDimensions:function(e){if(e=as(e),this.takesUpSpace()){if(e.nodeDimensionsIncludeLabels){var t,n=this.boundingBox();t={w:n.w,h:n.h}}else t={w:this.outerWidth(),h:this.outerHeight()}}else t={w:0,h:0};return(0===t.w||0===t.h)&&(t.w=t.h=1),t},layoutPositions:function(e,t,n){var r=this.nodes().filter(function(e){return!e.isParent()}),i=this.cy(),a=t.eles,o=function(e){return e.id()},s=V(n,o);e.emit({type:"layoutstart",layout:e}),e.animations=[];var l=function(e,t,n){var r={x:t.x1+t.w/2,y:t.y1+t.h/2},i={x:(n.x-r.x)*e,y:(n.y-r.y)*e};return{x:r.x+i.x,y:r.y+i.y}},u=t.spacingFactor&&1!==t.spacingFactor,c=function(){if(!u)return null;for(var e=tN(),t=0;t<r.length;t++){var n=s(r[t],t);tL(e,n.x,n.y)}return e}(),h=V(function(e,n){var r=s(e,n);return u&&(r=l(Math.abs(t.spacingFactor),c,r)),null!=t.transform&&(r=t.transform(e,r)),r},o);if(t.animate){for(var d=0;d<r.length;d++){var p=r[d],f=h(p,d);if(null==t.animateFilter||t.animateFilter(p,d)){var g=p.animation({position:f,duration:t.animationDuration,easing:t.animationEasing});e.animations.push(g)}else p.position(f)}if(t.fit){var v=i.animation({fit:{boundingBox:a.boundingBoxAt(h),padding:t.padding},duration:t.animationDuration,easing:t.animationEasing});e.animations.push(v)}else if(void 0!==t.zoom&&void 0!==t.pan){var y=i.animation({zoom:t.zoom,pan:t.pan,duration:t.animationDuration,easing:t.animationEasing});e.animations.push(y)}e.animations.forEach(function(e){return e.play()}),e.one("layoutready",t.ready),e.emit({type:"layoutready",layout:e}),ru.all(e.animations.map(function(e){return e.promise()})).then(function(){e.one("layoutstop",t.stop),e.emit({type:"layoutstop",layout:e})})}else r.positions(h),t.fit&&i.fit(t.eles,t.padding),null!=t.zoom&&i.zoom(t.zoom),t.pan&&i.pan(t.pan),e.one("layoutready",t.ready),e.emit({type:"layoutready",layout:e}),e.one("layoutstop",t.stop),e.emit({type:"layoutstop",layout:e});return this},layout:function(e){return this.cy().makeLayout(Z({},e,{eles:this}))}};function au(e,t,n){var r,i=n._private,a=i.styleCache=i.styleCache||[];return null!=(r=a[e])?r:r=a[e]=t(n)}function ac(e,t){return e=ej(e),function(n){return au(e,t,n)}}function ah(e,t){e=ej(e);var n=function(e){return t.call(e)};return function(){var t=this[0];if(t)return au(e,n,t)}}al.createLayout=al.makeLayout=al.layout;var ad={recalculateRenderedStyle:function(e){var t=this.cy(),n=t.renderer(),r=t.styleEnabled();return n&&r&&n.recalculateRenderedStyle(this,e),this},dirtyStyleCache:function(){var e,t=this.cy(),n=function(e){return e._private.styleCache=null};return t.hasCompoundNodes()?((e=this.spawnSelf().merge(this.descendants()).merge(this.parents())).merge(e.connectedEdges()),e.forEach(n)):this.forEach(function(e){n(e),e.connectedEdges().forEach(n)}),this},updateStyle:function(e){var t=this._private.cy;if(!t.styleEnabled())return this;if(t.batching())return t._private.batchStyleEles.merge(this),this;var n=t.hasCompoundNodes(),r=this;e=!!e||void 0===e,n&&(r=this.spawnSelf().merge(this.descendants()).merge(this.parents()));var i=r;return e?i.emitAndNotify("style"):i.emit("style"),r.forEach(function(e){return e._private.styleDirty=!0}),this},cleanStyle:function(){var e=this.cy();if(e.styleEnabled())for(var t=0;t<this.length;t++){var n=this[t];n._private.styleDirty&&(n._private.styleDirty=!1,e.style().apply(n))}},parsedStyle:function(e){var t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],n=this[0],r=n.cy();if(r.styleEnabled()&&n){this.cleanStyle();var i=n._private.style[e];return null!=i?i:t?r.style().getDefaultProperty(e):null}},numericStyle:function(e){var t=this[0];if(t.cy().styleEnabled()&&t){var n=t.pstyle(e);return void 0!==n.pfValue?n.pfValue:n.value}},numericStyleUnits:function(e){var t=this[0];if(t.cy().styleEnabled()&&t)return t.pstyle(e).units},renderedStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=this[0];if(n)return t.style().getRenderedStyle(n,e)},style:function(e,t){var n=this.cy();if(!n.styleEnabled())return this;var r=n.style();if(_(e))r.applyBypass(this,e,!1),this.emitAndNotify("style");else if(D(e)){if(void 0===t){var i=this[0];return i?r.getStylePropertyValue(i,e):void 0}r.applyBypass(this,e,t,!1),this.emitAndNotify("style")}else if(void 0===e){var a=this[0];return a?r.getRawStyle(a):void 0}return this},removeStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=t.style();if(void 0===e)for(var r=0;r<this.length;r++){var i=this[r];n.removeAllBypasses(i,!1)}else{e=e.split(/\s+/);for(var a=0;a<this.length;a++){var o=this[a];n.removeBypasses(o,e,!1)}}return this.emitAndNotify("style"),this},show:function(){return this.css("display","element"),this},hide:function(){return this.css("display","none"),this},effectiveOpacity:function(){var e=this.cy();if(!e.styleEnabled())return 1;var t=e.hasCompoundNodes(),n=this[0];if(n){var r=n._private,i=n.pstyle("opacity").value;if(!t)return i;var a=r.data.parent?n.parents():null;if(a)for(var o=0;o<a.length;o++)i*=a[o].pstyle("opacity").value;return i}},transparent:function(){if(!this.cy().styleEnabled())return!1;var e=this[0],t=e.cy().hasCompoundNodes();if(e)return t?0===e.effectiveOpacity():0===e.pstyle("opacity").value},backgrounding:function(){return!!this.cy().styleEnabled()&&!!this[0]._private.backgrounding}};function ap(e,t){var n=e._private.data.parent?e.parents():null;if(n){for(var r=0;r<n.length;r++)if(!t(n[r]))return!1}return!0}function af(e){var t=e.ok,n=e.edgeOkViaNode||e.ok,r=e.parentOk||e.ok;return function(){var e=this.cy();if(!e.styleEnabled())return!0;var i=this[0],a=e.hasCompoundNodes();if(i){var o=i._private;if(!t(i))return!1;if(i.isNode())return!a||ap(i,r);var s=o.source,l=o.target;return n(s)&&(!a||ap(s,n))&&(s===l||n(l)&&(!a||ap(l,n)))}}}var ag=ac("eleTakesUpSpace",function(e){return"element"===e.pstyle("display").value&&0!==e.width()&&(!e.isNode()||0!==e.height())});ad.takesUpSpace=ah("takesUpSpace",af({ok:ag}));var av=ac("eleInteractive",function(e){return"yes"===e.pstyle("events").value&&"visible"===e.pstyle("visibility").value&&ag(e)}),ay=ac("parentInteractive",function(e){return"visible"===e.pstyle("visibility").value&&ag(e)});ad.interactive=ah("interactive",af({ok:av,parentOk:ay,edgeOkViaNode:ag})),ad.noninteractive=function(){var e=this[0];if(e)return!e.interactive()};var am=ac("eleVisible",function(e){return"visible"===e.pstyle("visibility").value&&0!==e.pstyle("opacity").pfValue&&ag(e)});ad.visible=ah("visible",af({ok:am,edgeOkViaNode:ag})),ad.hidden=function(){var e=this[0];if(e)return!e.visible()},ad.isBundledBezier=ah("isBundledBezier",function(){return!!this.cy().styleEnabled()&&!this.removed()&&"bezier"===this.pstyle("curve-style").value&&this.takesUpSpace()}),ad.bypass=ad.css=ad.style,ad.renderedCss=ad.renderedStyle,ad.removeBypass=ad.removeCss=ad.removeStyle,ad.pstyle=ad.parsedStyle;var ab={};function ax(e){return function(){var t=arguments,n=[];if(2===t.length){var r=t[0],i=t[1];this.on(e.event,r,i)}else if(1===t.length&&T(t[0])){var a=t[0];this.on(e.event,a)}else if(0===t.length||1===t.length&&P(t[0])){for(var o=1===t.length?t[0]:null,s=0;s<this.length;s++){var l=this[s],u=!e.ableField||l._private[e.ableField],c=l._private[e.field]!=e.value;if(e.overrideAble){var h=e.overrideAble(l);if(void 0!==h&&(u=h,!h))return this}u&&(l._private[e.field]=e.value,c&&n.push(l))}var d=this.spawn(n);d.updateStyle(),d.emit(e.event),o&&d.emit(o)}return this}}function aw(e){ab[e.field]=function(){var t=this[0];if(t){if(e.overrideField){var n=e.overrideField(t);if(void 0!==n)return n}return t._private[e.field]}},ab[e.on]=ax({event:e.on,field:e.field,ableField:e.ableField,overrideAble:e.overrideAble,value:!0}),ab[e.off]=ax({event:e.off,field:e.field,ableField:e.ableField,overrideAble:e.overrideAble,value:!1})}aw({field:"locked",overrideField:function(e){return!!e.cy().autolock()||void 0},on:"lock",off:"unlock"}),aw({field:"grabbable",overrideField:function(e){return!(e.cy().autoungrabify()||e.pannable())&&void 0},on:"grabify",off:"ungrabify"}),aw({field:"selected",ableField:"selectable",overrideAble:function(e){return!e.cy().autounselectify()&&void 0},on:"select",off:"unselect"}),aw({field:"selectable",overrideField:function(e){return!e.cy().autounselectify()&&void 0},on:"selectify",off:"unselectify"}),ab.deselect=ab.unselect,ab.grabbed=function(){var e=this[0];if(e)return e._private.grabbed},aw({field:"active",on:"activate",off:"unactivate"}),aw({field:"pannable",on:"panify",off:"unpanify"}),ab.inactive=function(){var e=this[0];if(e)return!e._private.active};var aE={},ak=function(e){return function(t){for(var n=[],r=0;r<this.length;r++){var i=this[r];if(i.isNode()){for(var a=!1,o=i.connectedEdges(),s=0;s<o.length;s++){var l=o[s],u=l.source(),c=l.target();if(e.noIncomingEdges&&c===i&&u!==i||e.noOutgoingEdges&&u===i&&c!==i){a=!0;break}}a||n.push(i)}}return this.spawn(n,!0).filter(t)}},aC=function(e){return function(t){for(var n=[],r=0;r<this.length;r++){var i=this[r];if(i.isNode())for(var a=i.connectedEdges(),o=0;o<a.length;o++){var s=a[o],l=s.source(),u=s.target();e.outgoing&&l===i?(n.push(s),n.push(u)):e.incoming&&u===i&&(n.push(s),n.push(l))}}return this.spawn(n,!0).filter(t)}},aS=function(e){return function(t){for(var n=this,r=[],i={};;){var a=e.outgoing?n.outgoers():n.incomers();if(0===a.length)break;for(var o=!1,s=0;s<a.length;s++){var l=a[s],u=l.id();i[u]||(i[u]=!0,r.push(l),o=!0)}if(!o)break;n=a}return this.spawn(r,!0).filter(t)}};function aD(e){return function(t){for(var n=[],r=0;r<this.length;r++){var i=this[r]._private[e.attr];i&&n.push(i)}return this.spawn(n,!0).filter(t)}}function aT(e){return function(t){var n=[],r=this._private.cy,i=e||{};D(t)&&(t=r.$(t));for(var a=0;a<t.length;a++)for(var o=t[a]._private.edges,s=0;s<o.length;s++){var l=o[s],u=l._private.data,c=this.hasElementWithId(u.source)&&t.hasElementWithId(u.target),h=t.hasElementWithId(u.source)&&this.hasElementWithId(u.target);(c||h)&&(!i.thisIsSrc&&!i.thisIsTgt||(!i.thisIsSrc||c)&&(!i.thisIsTgt||h))&&n.push(l)}return this.spawn(n,!0)}}function aP(e){return e=Z({},{codirected:!1},e),function(t){for(var n=[],r=this.edges(),i=e,a=0;a<r.length;a++)for(var o=r[a]._private,s=o.source,l=s._private.data.id,u=o.data.target,c=s._private.edges,h=0;h<c.length;h++){var d=c[h],p=d._private.data,f=p.target,g=p.source,v=f===u&&g===l,y=l===f&&u===g;(i.codirected&&v||!i.codirected&&(v||y))&&n.push(d)}return this.spawn(n,!0).filter(t)}}aE.clearTraversalCache=function(){for(var e=0;e<this.length;e++)this[e]._private.traversalCache=null},Z(aE,{roots:ak({noIncomingEdges:!0}),leaves:ak({noOutgoingEdges:!0}),outgoers:iE(aC({outgoing:!0}),"outgoers"),successors:aS({outgoing:!0}),incomers:iE(aC({incoming:!0}),"incomers"),predecessors:aS({incoming:!0})}),Z(aE,{neighborhood:iE(function(e){for(var t=[],n=this.nodes(),r=0;r<n.length;r++)for(var i=n[r],a=i.connectedEdges(),o=0;o<a.length;o++){var s=a[o],l=s.source(),u=s.target(),c=i===l?u:l;c.length>0&&t.push(c[0]),t.push(s[0])}return this.spawn(t,!0).filter(e)},"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}}),aE.neighbourhood=aE.neighborhood,aE.closedNeighbourhood=aE.closedNeighborhood,aE.openNeighbourhood=aE.openNeighborhood,Z(aE,{source:iE(function(e){var t,n=this[0];return n&&(t=n._private.source||n.cy().collection()),t&&e?t.filter(e):t},"source"),target:iE(function(e){var t,n=this[0];return n&&(t=n._private.target||n.cy().collection()),t&&e?t.filter(e):t},"target"),sources:aD({attr:"source"}),targets:aD({attr:"target"})}),Z(aE,{edgesWith:iE(aT(),"edgesWith"),edgesTo:iE(aT({thisIsSrc:!0}),"edgesTo")}),Z(aE,{connectedEdges:iE(function(e){for(var t=[],n=0;n<this.length;n++){var r=this[n];if(r.isNode())for(var i=r._private.edges,a=0;a<i.length;a++){var o=i[a];t.push(o)}}return this.spawn(t,!0).filter(e)},"connectedEdges"),connectedNodes:iE(function(e){for(var t=[],n=0;n<this.length;n++){var r=this[n];r.isEdge()&&(t.push(r.source()[0]),t.push(r.target()[0]))}return this.spawn(t,!0).filter(e)},"connectedNodes"),parallelEdges:iE(aP(),"parallelEdges"),codirectedEdges:iE(aP({codirected:!0}),"codirectedEdges")}),Z(aE,{components:function(e){var t=this,n=t.cy(),r=n.collection(),i=null==e?t.nodes():e.nodes(),a=[];null!=e&&i.empty()&&(i=e.sources());var o=function(e,t){r.merge(e),i.unmerge(e),t.merge(e)};if(i.empty())return t.spawn();do!function(){var e=n.collection();a.push(e);var r=i[0];o(r,e),t.bfs({directed:!1,roots:r,visit:function(t){return o(t,e)}}),e.forEach(function(n){n.connectedEdges().forEach(function(n){t.has(n)&&e.has(n.source())&&e.has(n.target())&&e.merge(n)})})}();while(i.length>0)return a},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}}),aE.componentsOf=aE.components;var a_=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0===e){eQ("A collection must have a reference to the core");return}var i=new tn,a=!1;if(t){if(t.length>0&&_(t[0])&&!N(t[0])){a=!0;for(var o=[],s=new ti,l=0,u=t.length;l<u;l++){var c=t[l];null==c.data&&(c.data={});var h=c.data;if(null==h.id)h.id=e2();else if(e.hasElementWithId(h.id)||s.has(h.id))continue;var d=new ta(e,c,!1);o.push(d),s.add(h.id)}t=o}}else t=[];this.length=0;for(var p=0,f=t.length;p<f;p++){var g=t[p][0];if(null!=g){var v=g._private.data.id;(!n||!i.has(v))&&(n&&i.set(v,{index:this.length,ele:g}),this[this.length]=g,this.length++)}}this._private={eles:this,cy:e,get map(){return null==this.lazyMap&&this.rebuildMap(),this.lazyMap},set map(m){this.lazyMap=m},rebuildMap:function(){for(var e=this.lazyMap=new tn,t=this.eles,n=0;n<t.length;n++){var r=t[n];e.set(r.id(),{index:n,ele:r})}}},n&&(this._private.map=i),a&&!r&&this.restore()},aM=ta.prototype=a_.prototype=Object.create(Array.prototype);aM.instanceString=function(){return"collection"},aM.spawn=function(e,t){return new a_(this.cy(),e,t)},aM.spawnSelf=function(){return this.spawn(this)},aM.cy=function(){return this._private.cy},aM.renderer=function(){return this._private.cy.renderer()},aM.element=function(){return this[0]},aM.collection=function(){return I(this)?this:new a_(this._private.cy,[this])},aM.unique=function(){return new a_(this._private.cy,this,!0)},aM.hasElementWithId=function(e){return e=""+e,this._private.map.has(e)},aM.getElementById=function(e){e=""+e;var t=this._private.cy,n=this._private.map.get(e);return n?n.ele:new a_(t)},aM.$id=aM.getElementById,aM.poolIndex=function(){var e=this._private.cy._private.elements,t=this[0]._private.data.id;return e._private.map.get(t).index},aM.indexOf=function(e){var t=e[0]._private.data.id;return this._private.map.get(t).index},aM.indexOfId=function(e){return e=""+e,this._private.map.get(e).index},aM.json=function(e){var t=this.element(),n=this.cy();if(null==t&&e)return this;if(null!=t){var r=t._private;if(_(e)){if(n.startBatch(),e.data){t.data(e.data);var i=r.data;if(t.isEdge()){var a=!1,o={},s=e.data.source,l=e.data.target;null!=s&&s!=i.source&&(o.source=""+s,a=!0),null!=l&&l!=i.target&&(o.target=""+l,a=!0),a&&(t=t.move(o))}else{var u="parent"in e.data,c=e.data.parent;u&&(null!=c||null!=i.parent)&&c!=i.parent&&(void 0===c&&(c=null),null!=c&&(c=""+c),t=t.move({parent:c}))}}e.position&&t.position(e.position);var h=function(n,i,a){var o=e[n];null!=o&&o!==r[n]&&(o?t[i]():t[a]())};return h("removed","remove","restore"),h("selected","select","unselect"),h("selectable","selectify","unselectify"),h("locked","lock","unlock"),h("grabbable","grabify","ungrabify"),h("pannable","panify","unpanify"),null!=e.classes&&t.classes(e.classes),n.endBatch(),this}if(void 0===e){var d={data:e1(r.data),position:e1(r.position),group:r.group,removed:r.removed,selected:r.selected,selectable:r.selectable,locked:r.locked,grabbable:r.grabbable,pannable:r.pannable,classes:null};d.classes="";var p=0;return r.classes.forEach(function(e){return d.classes+=0==p++?e:" "+e}),d}}},aM.jsons=function(){for(var e=[],t=0;t<this.length;t++){var n=this[t].json();e.push(n)}return e},aM.clone=function(){for(var e=this.cy(),t=[],n=0;n<this.length;n++){var r=new ta(e,this[n].json(),!1);t.push(r)}return new a_(e,t)},aM.copy=aM.clone,aM.restore=function(){for(var e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],n=this.cy(),r=n._private,i=[],a=[],o=0,s=this.length;o<s;o++){var l=this[o];(!t||l.removed())&&(l.isNode()?i.push(l):a.push(l))}N=i.concat(a);var u=function(){N.splice(I,1),I--};for(I=0;I<N.length;I++){var c=N[I],h=c._private,d=h.data;if(c.clearTraversalCache(),t||h.removed){if(void 0===d.id)d.id=e2();else if(M(d.id))d.id=""+d.id;else if(R(d.id)||!D(d.id)){eQ("Can not create element with invalid string ID `"+d.id+"`"),u();continue}else if(n.hasElementWithId(d.id)){eQ("Can not create second element with ID `"+d.id+"`"),u();continue}}var p=d.id;if(c.isNode()){var f=h.position;null==f.x&&(f.x=0),null==f.y&&(f.y=0)}if(c.isEdge()){for(var g=["source","target"],v=g.length,y=!1,b=0;b<v;b++){var x=g[b],w=d[x];M(w)&&(w=d[x]=""+d[x]),null==w||""===w?(eQ("Can not create edge `"+p+"` with unspecified "+x),y=!0):n.hasElementWithId(w)||(eQ("Can not create edge `"+p+"` with nonexistant "+x+" `"+w+"`"),y=!0)}if(y){u();continue}var E=n.getElementById(d.source),k=n.getElementById(d.target);E.same(k)?E._private.edges.push(c):(E._private.edges.push(c),k._private.edges.push(c)),c._private.source=E,c._private.target=k}h.map=new tn,h.map.set(p,{ele:c,index:0}),h.removed=!1,t&&n.addToPool(c)}for(var C=0;C<i.length;C++){var S=i[C],T=S._private.data;M(T.parent)&&(T.parent=""+T.parent);var P=T.parent;if(null!=P||S._private.parent){var _=S._private.parent?n.collection().merge(S._private.parent):n.getElementById(P);if(_.empty())T.parent=void 0;else if(_[0].removed())e0("Node added with missing parent, reference to parent removed"),T.parent=void 0,S._private.parent=null;else{for(var B=!1,A=_;!A.empty();){if(S.same(A)){B=!0,T.parent=void 0;break}A=A.parent()}B||(_[0]._private.children.push(S),S._private.parent=_[0],r.hasCompoundNodes=!0)}}}if(N.length>0){for(var N,I,O=N.length===this.length?this:new a_(n,N),L=0;L<O.length;L++){var z=O[L];z.isNode()||(z.parallelEdges().clearTraversalCache(),z.source().clearTraversalCache(),z.target().clearTraversalCache())}(r.hasCompoundNodes?n.collection().merge(O).merge(O.connectedNodes()).merge(O.parent()):O).dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(e),e?O.emitAndNotify("add"):t&&O.emit("add")}return this},aM.removed=function(){var e=this[0];return e&&e._private.removed},aM.inside=function(){var e=this[0];return e&&!e._private.removed},aM.remove=function(){for(var e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],n=[],r={},i=this._private.cy,a=0,o=this.length;a<o;a++)(function e(i){var a=r[i.id()];t&&i.removed()||a||(r[i.id()]=!0,i.isNode()?(n.push(i),function(t){for(var n=t._private.edges,r=0;r<n.length;r++)e(n[r])}(i),function(t){for(var n=t._private.children,r=0;r<n.length;r++)e(n[r])}(i)):n.unshift(i))})(this[a]);function s(e,t){e9(e._private.edges,t),e.clearTraversalCache()}var l=[];l.ids={},this.dirtyCompoundBoundsCache(),t&&i.removeFromPool(n);for(var u=0;u<n.length;u++){var c=n[u];if(c.isEdge()){var h=c.source()[0],d=c.target()[0];s(h,c),s(d,c);for(var p=c.parallelEdges(),f=0;f<p.length;f++){var g=p[f];(function(e){e.clearTraversalCache()})(g),g.isBundledBezier()&&g.dirtyBoundingBoxCache()}}else{var v=c.parent();0!==v.length&&function(e,t){t=t[0];var n=(e=e[0])._private.children,r=e.id();e9(n,t),t._private.parent=null,l.ids[r]||(l.ids[r]=!0,l.push(e))}(v,c)}t&&(c._private.removed=!0)}var y=i._private.elements;i._private.hasCompoundNodes=!1;for(var b=0;b<y.length;b++)if(y[b].isParent()){i._private.hasCompoundNodes=!0;break}var x=new a_(this.cy(),n);x.size()>0&&(e?x.emitAndNotify("remove"):t&&x.emit("remove"));for(var w=0;w<l.length;w++){var E=l[w];t&&E.removed()||E.updateStyle()}return x},aM.move=function(e){var t=this._private.cy,n=this,r=function(e){return null==e?e:""+e};if(void 0!==e.source||void 0!==e.target){var i=r(e.source),a=r(e.target),o=null!=i&&t.hasElementWithId(i),s=null!=a&&t.hasElementWithId(a);(o||s)&&(t.batch(function(){n.remove(!1,!1),n.emitAndNotify("moveout");for(var e=0;e<n.length;e++){var t=n[e],r=t._private.data;t.isEdge()&&(o&&(r.source=i),s&&(r.target=a))}n.restore(!1,!1)}),n.emitAndNotify("move"))}else if(void 0!==e.parent){var l=r(e.parent);if(null===l||t.hasElementWithId(l)){var u=null===l?void 0:l;t.batch(function(){var e=n.remove(!1,!1);e.emitAndNotify("moveout");for(var t=0;t<n.length;t++){var r=n[t],i=r._private.data;r.isNode()&&(i.parent=u)}e.restore(!1,!1)}),n.emitAndNotify("move")}}return this},[rn,r7,ie,iw,ik,oK,iP,iQ,ar,ai,{isNode:function(){return"nodes"===this.group()},isEdge:function(){return"edges"===this.group()},isLoop:function(){return this.isEdge()&&this.source()[0]===this.target()[0]},isSimple:function(){return this.isEdge()&&this.source()[0]!==this.target()[0]},group:function(){var e=this[0];if(e)return e._private.group}},ao,al,ad,ab,aE].forEach(function(e){Z(aM,e)});var aB=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,n,r){var i={x:t.x+r.dx*n,v:t.v+r.dv*n,tension:t.tension,friction:t.friction};return{dx:i.v,dv:e(i)}}return function n(r,i,a){var o,s,l,u,c,h,d,p,f,g,v={x:-1,v:0,tension:null,friction:null},y=[0],b=0;for(r=parseFloat(r)||500,i=parseFloat(i)||20,a=a||null,v.tension=r,v.friction=i,f=(p=null!==a)?(b=n(r,i))/a*.016:.016;s={dx:(o=g||v).v,dv:e(o)},l=t(o,.5*f,s),u=t(o,.5*f,l),c=t(o,f,u),h=1/6*(s.dx+2*(l.dx+u.dx)+c.dx),d=1/6*(s.dv+2*(l.dv+u.dv)+c.dv),o.x=o.x+h*f,o.v=o.v+d*f,g=o,y.push(1+g.x),b+=16,Math.abs(g.x)>1e-4&&Math.abs(g.v)>1e-4;);return p?function(e){return y[e*(y.length-1)|0]}:b}}(),aA=function(e,t,n,r){var i=function(e,t,n,r){var i="undefined"!=typeof Float32Array;if(4!=arguments.length)return!1;for(var a=0;a<4;++a)if("number"!=typeof arguments[a]||isNaN(arguments[a])||!isFinite(arguments[a]))return!1;e=Math.min(e,1),n=Math.min(n,1),e=Math.max(e,0),n=Math.max(n,0);var o=i?new Float32Array(11):Array(11);function s(e,t,n){return(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e}function l(e,t,n){return 3*(1-3*n+3*t)*e*e+2*(3*n-6*t)*e+3*t}var u=!1,c=function(i){return(u||(u=!0,(e!==t||n!==r)&&function(){for(var t=0;t<11;++t)o[t]=s(.1*t,e,n)}()),e===t&&n===r)?i:0===i?0:1===i?1:s(function(t){for(var r=0,i=1;10!==i&&o[i]<=t;++i)r+=.1;var a=r+(t-o[--i])/(o[i+1]-o[i])*.1,u=l(a,e,n);return u>=.001?function(t,r){for(var i=0;i<4;++i){var a=l(r,e,n);if(0===a)break;var o=s(r,e,n)-t;r-=o/a}return r}(t,a):0===u?a:function(t,r,i){var a,o,l=0;do(a=s(o=r+(i-r)/2,e,n)-t)>0?i=o:r=o;while(Math.abs(a)>1e-7&&++l<10)return o}(t,r,r+.1)}(i),t,r)};c.getControlPoints=function(){return[{x:e,y:t},{x:n,y:r}]};var h="generateBezier("+[e,t,n,r]+")";return c.toString=function(){return h},c}(e,t,n,r);return function(e,t,n){return e+(t-e)*i(n)}},aN={linear:function(e,t,n){return e+(t-e)*n},ease:aA(.25,.1,.25,1),"ease-in":aA(.42,0,1,1),"ease-out":aA(0,0,.58,1),"ease-in-out":aA(.42,0,.58,1),"ease-in-sine":aA(.47,0,.745,.715),"ease-out-sine":aA(.39,.575,.565,1),"ease-in-out-sine":aA(.445,.05,.55,.95),"ease-in-quad":aA(.55,.085,.68,.53),"ease-out-quad":aA(.25,.46,.45,.94),"ease-in-out-quad":aA(.455,.03,.515,.955),"ease-in-cubic":aA(.55,.055,.675,.19),"ease-out-cubic":aA(.215,.61,.355,1),"ease-in-out-cubic":aA(.645,.045,.355,1),"ease-in-quart":aA(.895,.03,.685,.22),"ease-out-quart":aA(.165,.84,.44,1),"ease-in-out-quart":aA(.77,0,.175,1),"ease-in-quint":aA(.755,.05,.855,.06),"ease-out-quint":aA(.23,1,.32,1),"ease-in-out-quint":aA(.86,0,.07,1),"ease-in-expo":aA(.95,.05,.795,.035),"ease-out-expo":aA(.19,1,.22,1),"ease-in-out-expo":aA(1,0,0,1),"ease-in-circ":aA(.6,.04,.98,.335),"ease-out-circ":aA(.075,.82,.165,1),"ease-in-out-circ":aA(.785,.135,.15,.86),spring:function(e,t,n){if(0===n)return aN.linear;var r=aB(e,t,n);return function(e,t,n){return e+(t-e)*r(n)}},"cubic-bezier":aA};function aI(e,t,n,r,i){if(1===r||t===n)return n;var a=i(t,n,r);return null==e||((e.roundValue||e.color)&&(a=Math.round(a)),void 0!==e.min&&(a=Math.max(a,e.min)),void 0!==e.max&&(a=Math.min(a,e.max))),a}function aO(e,t){return null==e.pfValue&&null==e.value?e:null!=e.pfValue&&(null==t||"%"!==t.type.units)?e.pfValue:e.value}function aL(e,t,n,r,i){var a=null!=i?i.type:null;n<0?n=0:n>1&&(n=1);var o=aO(e,i),s=aO(t,i);if(M(o)&&M(s))return aI(a,o,s,n,r);if(P(o)&&P(s)){for(var l=[],u=0;u<s.length;u++){var c=o[u],h=s[u];if(null!=c&&null!=h){var d=aI(a,c,h,n,r);l.push(d)}else l.push(h)}return l}}function aR(e,t){return null!=e&&null!=t&&(!!(M(e)&&M(t))||!!e&&!!t)}function az(e,t){var n=t._private.aniEles,r=[];function i(t,n){var i=t._private,a=i.animation.current,o=i.animation.queue,s=!1;if(0===a.length){var l=o.shift();l&&a.push(l)}for(var u=function(e){for(var t=e.length-1;t>=0;t--)(0,e[t])();e.splice(0,e.length)},c=a.length-1;c>=0;c--){var h=a[c],d=h._private;if(d.stopped){a.splice(c,1),d.hooked=!1,d.playing=!1,d.started=!1,u(d.frames);continue}(d.playing||d.applying)&&(d.playing&&d.applying&&(d.applying=!1),d.started||function(e,t,n,r){var i=t._private;i.started=!0,i.startTime=n-i.progress*i.duration}(0,h,e),function(e,t,n,r){var i,a,o,s,l=!r,u=e._private,c=t._private,h=c.easing,d=c.startTime,p=(r?e:e.cy()).style();c.easingImpl||(null==h?c.easingImpl=aN.linear:(i=D(h)?p.parse("transition-timing-function",h).value:h,D(i)?(a=i,o=[]):(a=i[1],o=i.slice(2).map(function(e){return+e})),o.length>0?("spring"===a&&o.push(c.duration),c.easingImpl=aN[a].apply(null,o)):c.easingImpl=aN[a]));var f=c.easingImpl;if(s=0===c.duration?1:(n-d)/c.duration,c.applying&&(s=c.progress),s<0?s=0:s>1&&(s=1),null==c.delay){var g=c.startPosition,v=c.position;if(v&&l&&!e.locked()){var y={};aR(g.x,v.x)&&(y.x=aL(g.x,v.x,s,f)),aR(g.y,v.y)&&(y.y=aL(g.y,v.y,s,f)),e.position(y)}var b=c.startPan,x=c.pan,w=u.pan,E=null!=x&&r;E&&(aR(b.x,x.x)&&(w.x=aL(b.x,x.x,s,f)),aR(b.y,x.y)&&(w.y=aL(b.y,x.y,s,f)),e.emit("pan"));var k=c.startZoom,C=c.zoom,S=null!=C&&r;S&&(aR(k,C)&&(u.zoom=tA(u.minZoom,aL(k,C,s,f),u.maxZoom)),e.emit("zoom")),(E||S)&&e.emit("viewport");var T=c.style;if(T&&T.length>0&&l){for(var P=0;P<T.length;P++){var _=T[P],M=_.name,B=c.startStyle[M],A=p.properties[B.name],N=aL(B,_,s,f,A);p.overrideBypass(e,M,N)}e.emit("style")}}c.progress=s}(t,h,e,n),d.applying&&(d.applying=!1),u(d.frames),null!=d.step&&d.step(e),h.completed()&&(a.splice(c,1),d.hooked=!1,d.playing=!1,d.started=!1,u(d.completes)),s=!0)}return n||0!==a.length||0!==o.length||r.push(t),s}for(var a=!1,o=0;o<n.length;o++){var s=i(n[o]);a=a||s}var l=i(t,!0);(a||l)&&(n.length>0?t.notify("draw",n):t.notify("draw")),n.unmerge(r),t.emit("step")}var aV={animate:r8.animate(),animation:r8.animation(),animated:r8.animated(),clearQueue:r8.clearQueue(),delay:r8.delay(),delayAnimation:r8.delayAnimation(),stop:r8.stop(),addToAnimationPool:function(e){this.styleEnabled()&&this._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,e.styleEnabled()){var t=e.renderer();t&&t.beforeRender?t.beforeRender(function(t,n){az(n,e)},t.beforeRenderPriorities.animations):function t(){e._private.animationsRunning&&eI(function(n){az(n,e),t()})}()}}},aF={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&N(n.target)&&r.matches(n.target)},addEventFields:function(e,t){t.cy=e,t.target=e},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e}},aj=function(e){return D(e)?new ib(e):e},aq={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new i9(aF,this)),this},emitter:function(){return this._private.emitter},on:function(e,t,n){return this.emitter().on(e,aj(t),n),this},removeListener:function(e,t,n){return this.emitter().removeListener(e,aj(t),n),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,n){return this.emitter().one(e,aj(t),n),this},once:function(e,t,n){return this.emitter().one(e,aj(t),n),this},emit:function(e,t){return this.emitter().emit(e,t),this},emitAndNotify:function(e,t){return this.emit(e),this.notify(e,t),this}};r8.eventAliasesOn(aq);var aX={png:function(e){return e=e||{},this._private.renderer.png(e)},jpg:function(e){var t=this._private.renderer;return(e=e||{}).bg=e.bg||"#fff",t.jpg(e)}};aX.jpeg=aX.jpg;var aY={layout:function(e){if(null==e){eQ("Layout options must be specified to make a layout");return}if(null==e.name){eQ("A `name` must be specified to make a layout");return}var t,n=e.name,r=this.extension("layout",n);if(null==r){eQ("No such layout `"+n+"` found. Did you forget to import it and `cytoscape.use()` it?");return}return t=D(e.eles)?this.$(e.eles):null!=e.eles?e.eles:this.$(),new r(Z({},e,{cy:this,eles:t}))}};aY.createLayout=aY.makeLayout=aY.layout;var aW=e4({hideEdgesOnViewport:!1,textureOnViewport:!1,motionBlur:!1,motionBlurOpacity:.05,pixelRatio:void 0,desktopTapThreshold:4,touchTapThreshold:8,wheelSensitivity:1,debug:!1,showFps:!1}),aH={renderTo:function(e,t,n,r){return this._private.renderer.renderTo(e,t,n,r),this},renderer:function(){return this._private.renderer},forceRender:function(){return this.notify("draw"),this},resize:function(){return this.invalidateSize(),this.emitAndNotify("resize"),this},initRenderer:function(e){var t=this.extension("renderer",e.name);if(null==t){eQ("Can not initialise: No such renderer `".concat(e.name,"` found. Did you forget to import it and `cytoscape.use()` it?"));return}void 0!==e.wheelSensitivity&&e0("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.");var n=aW(e);n.cy=this,this._private.renderer=new t(n),this.notify("init")},destroyRenderer:function(){this.notify("destroy");var e=this.container();if(e)for(e._cyreg=null;e.childNodes.length>0;)e.removeChild(e.childNodes[0]);this._private.renderer=null,this.mutableElements().forEach(function(e){var t=e._private;t.rscratch={},t.rstyle={},t.animation.current=[],t.animation.queue=[]})},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};aH.invalidateDimensions=aH.resize;var aG={collection:function(e,t){return D(e)?this.$(e):A(e)?e.collection():P(e)?(t||(t={}),new a_(this,e,t.unique,t.removed)):new a_(this)},nodes:function(e){var t=this.$(function(e){return e.isNode()});return e?t.filter(e):t},edges:function(e){var t=this.$(function(e){return e.isEdge()});return e?t.filter(e):t},$:function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},mutableElements:function(){return this._private.elements}};aG.elements=aG.filter=aG.$;var aU={};aU.apply=function(e){for(var t=this._private.cy.collection(),n=0;n<e.length;n++){var r=e[n],i=this.getContextMeta(r);if(!i.empty){var a=this.getContextStyle(i),o=this.applyContextStyle(i,a,r);r._private.appliedInitStyle?this.updateTransitions(r,o.diffProps):r._private.appliedInitStyle=!0,this.updateStyleHints(r)&&t.push(r)}}return t},aU.getPropertiesDiff=function(e,t){var n=this._private.propDiffs=this._private.propDiffs||{},r=e+"-"+t,i=n[r];if(i)return i;for(var a=[],o={},s=0;s<this.length;s++){var l=this[s],u="t"===e[s],c="t"===t[s],h=u!==c,d=l.mappedProperties.length>0;if(h||c&&d){var p=void 0;h&&d?p=l.properties:h?p=l.properties:d&&(p=l.mappedProperties);for(var f=0;f<p.length;f++){for(var g=p[f],v=g.name,y=!1,b=s+1;b<this.length;b++){var x=this[b];if("t"===t[b]&&(y=null!=x.properties[g.name]))break}o[v]||y||(o[v]=!0,a.push(v))}}}return n[r]=a,a},aU.getContextMeta=function(e){for(var t,n="",r=e._private.styleCxtKey||"",i=0;i<this.length;i++){var a=this[i];a.selector&&a.selector.matches(e)?n+="t":n+="f"}return t=this.getPropertiesDiff(r,n),e._private.styleCxtKey=n,{key:n,diffPropNames:t,empty:0===t.length}},aU.getContextStyle=function(e){var t=e.key,n=this._private.contextStyles=this._private.contextStyles||{};if(n[t])return n[t];for(var r={_private:{key:t}},i=0;i<this.length;i++){var a=this[i];if("t"===t[i])for(var o=0;o<a.properties.length;o++){var s=a.properties[o];r[s.name]=s}}return n[t]=r,r},aU.applyContextStyle=function(e,t,n){for(var r=e.diffPropNames,i={},a=this.types,o=0;o<r.length;o++){var s=r[o],l=t[s],u=n.pstyle(s);if(!l){if(!u)continue;l=u.bypass?{name:s,deleteBypassed:!0}:{name:s,delete:!0}}if(u!==l){if(l.mapped===a.fn&&null!=u&&null!=u.mapping&&u.mapping.value===l.value){var c=u.mapping;if((c.fnValue=l.value(n))===c.prevFnValue)continue}var h=i[s]={prev:u};this.applyParsedProperty(n,l),h.next=n.pstyle(s),h.next&&h.next.bypass&&(h.next=h.next.bypassed)}}return{diffProps:i}},aU.updateStyleHints=function(e){var t=e._private,n=this,r=n.propertyGroupNames,i=n.propertyGroupKeys,a=function(e,t,r){return n.getPropertiesHash(e,t,r)},o=t.styleKey;if(e.removed())return!1;var s="nodes"===t.group,l=e._private.style;r=Object.keys(l);for(var u=0;u<i.length;u++){var c=i[u];t.styleKeys[c]=[9261,5381]}for(var h=function(e,n){return t.styleKeys[n][0]=eL(e,t.styleKeys[n][0])},d=function(e,n){return t.styleKeys[n][1]=eR(e,t.styleKeys[n][1])},p=function(e,t){for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);h(r,t),d(r,t)}},f=0;f<r.length;f++){var g,v,y=r[f],b=l[y];if(null!=b){var x=this.properties[y],w=x.type,E=x.groupKey,k=void 0;null!=x.hashOverride?k=x.hashOverride(e,b):null!=b.pfValue&&(k=b.pfValue);var C=null==x.enums?b.value:null,S=null!=k,D=null!=C,T=S||D,P=b.units;w.number&&T&&!w.multiple?(h(v=-128<(g=S?k:C)&&g<128&&Math.floor(g)!==g?2e9-(1024*g|0):g,E),d(v,E),S||null==P||p(P,E)):p(b.strValue,E)}}for(var _=[9261,5381],M=0;M<i.length;M++){var B=i[M],A=t.styleKeys[B];_[0]=eL(A[0],_[0]),_[1]=eR(A[1],_[1])}t.styleKey=2097152*_[0]+_[1];var N=t.styleKeys;t.labelDimsKey=ez(N.labelDimensions);var I=a(e,["label"],N.labelDimensions);if(t.labelKey=ez(I),t.labelStyleKey=ez(eV(N.commonLabel,I)),!s){var O=a(e,["source-label"],N.labelDimensions);t.sourceLabelKey=ez(O),t.sourceLabelStyleKey=ez(eV(N.commonLabel,O));var L=a(e,["target-label"],N.labelDimensions);t.targetLabelKey=ez(L),t.targetLabelStyleKey=ez(eV(N.commonLabel,L))}if(s){var R=t.styleKeys,z=R.nodeBody,V=R.nodeBorder,F=R.nodeOutline,j=R.backgroundImage,q=R.compound,X=R.pie,Y=[z,V,F,j,q,X].filter(function(e){return null!=e}).reduce(eV,[9261,5381]);t.nodeKey=ez(Y),t.hasPie=null!=X&&9261!==X[0]&&5381!==X[1]}return o!==t.styleKey},aU.clearStyleHints=function(e){var t=e._private;t.styleCxtKey="",t.styleKeys={},t.styleKey=null,t.labelKey=null,t.labelStyleKey=null,t.sourceLabelKey=null,t.sourceLabelStyleKey=null,t.targetLabelKey=null,t.targetLabelStyleKey=null,t.nodeKey=null,t.hasPie=null},aU.applyParsedProperty=function(e,t){var n=this,r=t,i=e._private.style,a=n.types,o=n.properties[r.name].type,s=r.bypass,l=i[r.name],u=l&&l.bypass,c=e._private,h="mapping",d=function(e){return null==e?null:null!=e.pfValue?e.pfValue:e.value},p=function(){var t=d(l),i=d(r);n.checkTriggers(e,r.name,t,i)};if("curve-style"===t.name&&e.isEdge()&&("bezier"!==t.value&&e.isLoop()||"haystack"===t.value&&(e.source().isParent()||e.target().isParent()))&&(r=t=this.parse(t.name,"bezier",s)),r.delete)return i[r.name]=void 0,p(),!0;if(r.deleteBypassed)return l?!!l.bypass&&(l.bypassed=void 0,p(),!0):(p(),!0);if(r.deleteBypass)return l?!!l.bypass&&(i[r.name]=l.bypassed,p(),!0):(p(),!0);var f=function(){e0("Do not assign mappings to elements without corresponding data (i.e. ele `"+e.id()+"` has no mapping for property `"+r.name+"` with data field `"+r.field+"`); try a `["+r.field+"]` selector to limit scope to elements with `"+r.field+"` defined")};switch(r.mapped){case a.mapData:for(var g,v,y=r.field.split("."),b=c.data,x=0;x<y.length&&b;x++)b=b[y[x]];if(null==b)return f(),!1;if(!M(b))return e0("Do not use continuous mappers without specifying numeric data (i.e. `"+r.field+": "+b+"` for `"+e.id()+"` is non-numeric)"),!1;var w=r.fieldMax-r.fieldMin;if((v=0===w?0:(b-r.fieldMin)/w)<0?v=0:v>1&&(v=1),o.color){var E=r.valueMin[0],k=r.valueMax[0],C=r.valueMin[1],S=r.valueMax[1],D=r.valueMin[2],T=r.valueMax[2],P=null==r.valueMin[3]?1:r.valueMin[3],_=[Math.round(E+(k-E)*v),Math.round(C+(S-C)*v),Math.round(D+(T-D)*v),Math.round(P+((null==r.valueMax[3]?1:r.valueMax[3])-P)*v)];g={bypass:r.bypass,name:r.name,value:_,strValue:"rgb("+_[0]+", "+_[1]+", "+_[2]+")"}}else{if(!o.number)return!1;var B=r.valueMin+(r.valueMax-r.valueMin)*v;g=this.parse(r.name,B,r.bypass,h)}if(!g)return f(),!1;g.mapping=r,r=g;break;case a.data:for(var A=r.field.split("."),N=c.data,I=0;I<A.length&&N;I++)N=N[A[I]];if(null!=N&&(g=this.parse(r.name,N,r.bypass,h)),!g)return f(),!1;g.mapping=r,r=g;break;case a.fn:var O=r.value,L=null!=r.fnValue?r.fnValue:O(e);if(r.prevFnValue=L,null==L)return e0("Custom function mappers may not return null (i.e. `"+r.name+"` for ele `"+e.id()+"` is null)"),!1;if(!(g=this.parse(r.name,L,r.bypass,h)))return e0("Custom function mappers may not return invalid values for the property type (i.e. `"+r.name+"` for ele `"+e.id()+"` is invalid)"),!1;g.mapping=e1(r),r=g;break;case void 0:break;default:return!1}return s?(u?r.bypassed=l.bypassed:r.bypassed=l,i[r.name]=r):u?l.bypassed=r:i[r.name]=r,p(),!0},aU.cleanElements=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(this.clearStyleHints(r),r.dirtyCompoundBoundsCache(),r.dirtyBoundingBoxCache(),t)for(var i=r._private.style,a=Object.keys(i),o=0;o<a.length;o++){var s=a[o],l=i[s];null!=l&&(l.bypass?l.bypassed=null:i[s]=null)}else r._private.style={}}},aU.update=function(){this._private.cy.mutableElements().updateStyle()},aU.updateTransitions=function(e,t){var n=this,r=e._private,i=e.pstyle("transition-property").value,a=e.pstyle("transition-duration").pfValue,o=e.pstyle("transition-delay").pfValue;if(i.length>0&&a>0){for(var s={},l=!1,u=0;u<i.length;u++){var c=i[u],h=e.pstyle(c),d=t[c];if(d){var p=d.prev,f=null!=d.next?d.next:h,g=!1,v=void 0;p&&(M(p.pfValue)&&M(f.pfValue)?(g=f.pfValue-p.pfValue,v=p.pfValue+1e-6*g):M(p.value)&&M(f.value)?(g=f.value-p.value,v=p.value+1e-6*g):P(p.value)&&P(f.value)&&(g=p.value[0]!==f.value[0]||p.value[1]!==f.value[1]||p.value[2]!==f.value[2],v=p.strValue),g&&(s[c]=f.strValue,this.applyBypass(e,c,v),l=!0))}}if(!l)return;r.transitioning=!0,new ru(function(t){o>0?e.delayAnimation(o).play().promise().then(t):t()}).then(function(){return e.animation({style:s,duration:a,easing:e.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){n.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1})}else r.transitioning&&(this.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1)},aU.checkTrigger=function(e,t,n,r,i,a){var o=this.properties[t],s=i(o);null!=s&&s(n,r)&&a(o)},aU.checkZOrderTrigger=function(e,t,n,r){var i=this;this.checkTrigger(e,t,n,r,function(e){return e.triggersZOrder},function(){i._private.cy.notify("zorder",e)})},aU.checkBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,function(e){return e.triggersBounds},function(i){e.dirtyCompoundBoundsCache(),e.dirtyBoundingBoxCache(),i.triggersBoundsOfParallelBeziers&&"curve-style"===t&&("bezier"===n||"bezier"===r)&&e.parallelEdges().forEach(function(e){e.isBundledBezier()&&e.dirtyBoundingBoxCache()}),i.triggersBoundsOfConnectedEdges&&"display"===t&&("none"===n||"none"===r)&&e.connectedEdges().forEach(function(e){e.dirtyBoundingBoxCache()})})},aU.checkTriggers=function(e,t,n,r){e.dirtyStyleCache(),this.checkZOrderTrigger(e,t,n,r),this.checkBoundsTrigger(e,t,n,r)};var aK={};aK.applyBypass=function(e,t,n,r){var i=[];if("*"===t||"**"===t){if(void 0!==n)for(var a=0;a<this.properties.length;a++){var o=this.properties[a].name,s=this.parse(o,n,!0);s&&i.push(s)}}else if(D(t)){var l=this.parse(t,n,!0);l&&i.push(l)}else{if(!_(t))return!1;r=n;for(var u=Object.keys(t),c=0;c<u.length;c++){var h=u[c],d=t[h];if(void 0===d&&(d=t[j(h)]),void 0!==d){var p=this.parse(h,d,!0);p&&i.push(p)}}}if(0===i.length)return!1;for(var f=!1,g=0;g<e.length;g++){for(var v=e[g],y={},b=void 0,x=0;x<i.length;x++){var w=i[x];if(r){var E=v.pstyle(w.name);b=y[w.name]={prev:E}}f=this.applyParsedProperty(v,e1(w))||f,r&&(b.next=v.pstyle(w.name))}f&&this.updateStyleHints(v),r&&this.updateTransitions(v,y,!0)}return f},aK.overrideBypass=function(e,t,n){t=F(t);for(var r=0;r<e.length;r++){var i=e[r],a=i._private.style[t],o=this.properties[t].type,s=o.color,l=o.mutiple,u=a?null!=a.pfValue?a.pfValue:a.value:null;a&&a.bypass?(a.value=n,null!=a.pfValue&&(a.pfValue=n),s?a.strValue="rgb("+n.join(",")+")":l?a.strValue=n.join(" "):a.strValue=""+n,this.updateStyleHints(i)):this.applyBypass(i,t,n),this.checkTriggers(i,t,u,n)}},aK.removeAllBypasses=function(e,t){return this.removeBypasses(e,this.propertyNames,t)},aK.removeBypasses=function(e,t,n){for(var r=0;r<e.length;r++){for(var i=e[r],a={},o=0;o<t.length;o++){var s=t[o],l=this.properties[s],u=i.pstyle(l.name);if(u&&u.bypass){var c=this.parse(s,"",!0),h=a[l.name]={prev:u};this.applyParsedProperty(i,c),h.next=i.pstyle(l.name)}}this.updateStyleHints(i),n&&this.updateTransitions(i,a,!0)}};var aZ={};aZ.getEmSizeInPixels=function(){var e=this.containerCss("font-size");return null!=e?parseFloat(e):1},aZ.containerCss=function(e){var t=this._private.cy,n=t.container(),r=t.window();if(r&&n&&r.getComputedStyle)return r.getComputedStyle(n).getPropertyValue(e)};var a$={};a$.getRenderedStyle=function(e,t){return t?this.getStylePropertyValue(e,t,!0):this.getRawStyle(e,!0)},a$.getRawStyle=function(e,t){if(e=e[0]){for(var n={},r=0;r<this.properties.length;r++){var i=this.properties[r],a=this.getStylePropertyValue(e,i.name,t);null!=a&&(n[i.name]=a,n[j(i.name)]=a)}return n}},a$.getIndexedStyle=function(e,t,n,r){var i=e.pstyle(t)[n][r];return null!=i?i:e.cy().style().getDefaultProperty(t)[n][0]},a$.getStylePropertyValue=function(e,t,n){if(e=e[0]){var r=this.properties[t];r.alias&&(r=r.pointsTo);var i=r.type,a=e.pstyle(r.name);if(a){var o=a.value,s=a.units,l=a.strValue;if(n&&i.number&&null!=o&&M(o)){var u=e.cy().zoom(),c=function(e){return e*u},h=function(e,t){return c(e)+t},d=P(o);return(d?s.every(function(e){return null!=e}):null!=s)?d?o.map(function(e,t){return h(e,s[t])}).join(" "):h(o,s):d?o.map(function(e){return D(e)?e:""+c(e)}).join(" "):""+c(o)}if(null!=l)return l}return null}},a$.getAnimationStartStyle=function(e,t){for(var n={},r=0;r<t.length;r++){var i=t[r].name,a=e.pstyle(i);void 0!==a&&(a=_(a)?this.parse(i,a.strValue):this.parse(i,a)),a&&(n[i]=a)}return n},a$.getPropsList=function(e){var t=[],n=this.properties;if(e)for(var r=Object.keys(e),i=0;i<r.length;i++){var a=r[i],o=e[a],s=n[a]||n[F(a)],l=this.parse(s.name,o);l&&t.push(l)}return t},a$.getNonDefaultPropertiesHash=function(e,t,n){var r,i,a,o,s,l,u=n.slice();for(s=0;s<t.length;s++)if(r=t[s],null!=(i=e.pstyle(r,!1))){if(null!=i.pfValue)u[0]=eL(o,u[0]),u[1]=eR(o,u[1]);else for(l=0,a=i.strValue;l<a.length;l++)o=a.charCodeAt(l),u[0]=eL(o,u[0]),u[1]=eR(o,u[1])}return u},a$.getPropertiesHash=a$.getNonDefaultPropertiesHash;var aQ={};aQ.appendFromJson=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=n.selector,i=n.style||n.css,a=Object.keys(i);this.selector(r);for(var o=0;o<a.length;o++){var s=a[o],l=i[s];this.css(s,l)}}return this},aQ.fromJson=function(e){return this.resetToDefault(),this.appendFromJson(e),this},aQ.json=function(){for(var e=[],t=this.defaultLength;t<this.length;t++){for(var n=this[t],r=n.selector,i=n.properties,a={},o=0;o<i.length;o++){var s=i[o];a[s.name]=s.strValue}e.push({selector:r?r.toString():"core",style:a})}return e};var aJ={};aJ.appendFromString=function(e){var t,n,r,i=""+e;function a(){i=i.length>t.length?i.substr(t.length):""}function o(){n=n.length>r.length?n.substr(r.length):""}for(i=i.replace(/[/][*](\s|.)+?[*][/]/g,"");!i.match(/^\s*$/);){var s=i.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!s){e0("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+i);break}t=s[0];var l=s[1];if("core"!==l&&new ib(l).invalid){e0("Skipping parsing of block: Invalid selector found in string stylesheet: "+l),a();continue}var u=s[2],c=!1;n=u;for(var h=[];!n.match(/^\s*$/);){var d=n.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!d){e0("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+u),c=!0;break}r=d[0];var p=d[1],f=d[2];if(!this.properties[p]){e0("Skipping property: Invalid property name in: "+r),o();continue}if(!this.parse(p,f)){e0("Skipping property: Invalid property definition in: "+r),o();continue}h.push({name:p,val:f}),o()}if(c){a();break}this.selector(l);for(var g=0;g<h.length;g++){var v=h[g];this.css(v.name,v.val)}a()}return this},aJ.fromString=function(e){return this.resetToDefault(),this.appendFromString(e),this};var a0={};!function(){var e=function(e){return"^"+e+"\\s*\\(\\s*([\\w\\.]+)\\s*\\)$"},t=function(e){var t=Y+"|\\w+|"+H+"|"+U+"|\\#[0-9a-fA-F]{3}|\\#[0-9a-fA-F]{6}";return"^"+e+"\\s*\\(([\\w\\.]+)\\s*\\,\\s*("+Y+")\\s*\\,\\s*("+Y+")\\s*,\\s*("+t+")\\s*\\,\\s*("+t+")\\)$"},n=["^url\\s*\\(\\s*['\"]?(.+?)['\"]?\\s*\\)$","^(none)$","^(.+)$"];a0.types={time:{number:!0,min:0,units:"s|ms",implicitUnits:"ms"},percent:{number:!0,min:0,max:100,units:"%",implicitUnits:"%"},percentages:{number:!0,min:0,max:100,units:"%",implicitUnits:"%",multiple:!0},zeroOneNumber:{number:!0,min:0,max:1,unitless:!0},zeroOneNumbers:{number:!0,min:0,max:1,unitless:!0,multiple:!0},nOneOneNumber:{number:!0,min:-1,max:1,unitless:!0},nonNegativeInt:{number:!0,min:0,integer:!0,unitless:!0},nonNegativeNumber:{number:!0,min:0,unitless:!0},position:{enums:["parent","origin"]},nodeSize:{number:!0,min:0,enums:["label"]},number:{number:!0,unitless:!0},numbers:{number:!0,unitless:!0,multiple:!0},positiveNumber:{number:!0,unitless:!0,min:0,strictMin:!0},size:{number:!0,min:0},bidirectionalSize:{number:!0},bidirectionalSizeMaybePercent:{number:!0,allowPercent:!0},bidirectionalSizes:{number:!0,multiple:!0},sizeMaybePercent:{number:!0,min:0,allowPercent:!0},axisDirection:{enums:["horizontal","leftward","rightward","vertical","upward","downward","auto"]},paddingRelativeTo:{enums:["width","height","average","min","max"]},bgWH:{number:!0,min:0,allowPercent:!0,enums:["auto"],multiple:!0},bgPos:{number:!0,allowPercent:!0,multiple:!0},bgRelativeTo:{enums:["inner","include-padding"],multiple:!0},bgRepeat:{enums:["repeat","repeat-x","repeat-y","no-repeat"],multiple:!0},bgFit:{enums:["none","contain","cover"],multiple:!0},bgCrossOrigin:{enums:["anonymous","use-credentials","null"],multiple:!0},bgClip:{enums:["none","node"],multiple:!0},bgContainment:{enums:["inside","over"],multiple:!0},color:{color:!0},colors:{color:!0,multiple:!0},fill:{enums:["solid","linear-gradient","radial-gradient"]},bool:{enums:["yes","no"]},bools:{enums:["yes","no"],multiple:!0},lineStyle:{enums:["solid","dotted","dashed"]},lineCap:{enums:["butt","round","square"]},linePosition:{enums:["center","inside","outside"]},lineJoin:{enums:["round","bevel","miter"]},borderStyle:{enums:["solid","dotted","dashed","double"]},curveStyle:{enums:["bezier","unbundled-bezier","haystack","segments","straight","straight-triangle","taxi","round-segments","round-taxi"]},radiusType:{enums:["arc-radius","influence-radius"],multiple:!0},fontFamily:{regex:'^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'},fontStyle:{enums:["italic","normal","oblique"]},fontWeight:{enums:["normal","bold","bolder","lighter","100","200","300","400","500","600","800","900",100,200,300,400,500,600,700,800,900]},textDecoration:{enums:["none","underline","overline","line-through"]},textTransform:{enums:["none","uppercase","lowercase"]},textWrap:{enums:["none","wrap","ellipsis"]},textOverflowWrap:{enums:["whitespace","anywhere"]},textBackgroundShape:{enums:["rectangle","roundrectangle","round-rectangle"]},nodeShape:{enums:["rectangle","roundrectangle","round-rectangle","cutrectangle","cut-rectangle","bottomroundrectangle","bottom-round-rectangle","barrel","ellipse","triangle","round-triangle","square","pentagon","round-pentagon","hexagon","round-hexagon","concavehexagon","concave-hexagon","heptagon","round-heptagon","octagon","round-octagon","tag","round-tag","star","diamond","round-diamond","vee","rhomboid","right-rhomboid","polygon"]},overlayShape:{enums:["roundrectangle","round-rectangle","ellipse"]},cornerRadius:{number:!0,min:0,units:"px|em",implicitUnits:"px",enums:["auto"]},compoundIncludeLabels:{enums:["include","exclude"]},arrowShape:{enums:["tee","triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","square","circle","diamond","chevron","none"]},arrowFill:{enums:["filled","hollow"]},arrowWidth:{number:!0,units:"%|px|em",implicitUnits:"px",enums:["match-line"]},display:{enums:["element","none"]},visibility:{enums:["hidden","visible"]},zCompoundDepth:{enums:["bottom","orphan","auto","top"]},zIndexCompare:{enums:["auto","manual"]},valign:{enums:["top","center","bottom"]},halign:{enums:["left","center","right"]},justification:{enums:["left","center","right","auto"]},text:{string:!0},data:{mapping:!0,regex:e("data")},layoutData:{mapping:!0,regex:e("layoutData")},scratch:{mapping:!0,regex:e("scratch")},mapData:{mapping:!0,regex:t("mapData")},mapLayoutData:{mapping:!0,regex:t("mapLayoutData")},mapScratch:{mapping:!0,regex:t("mapScratch")},fn:{mapping:!0,fn:!0},url:{regexes:n,singleRegexMatchValue:!0},urls:{regexes:n,singleRegexMatchValue:!0,multiple:!0},propList:{propList:!0},angle:{number:!0,units:"deg|rad",implicitUnits:"rad"},textRotation:{number:!0,units:"deg|rad",implicitUnits:"rad",enums:["none","autorotate"]},polygonPointList:{number:!0,multiple:!0,evenMultiple:!0,min:-1,max:1,unitless:!0},edgeDistances:{enums:["intersection","node-position","endpoints"]},edgeEndpoint:{number:!0,multiple:!0,units:"%|px|em|deg|rad",implicitUnits:"px",enums:["inside-to-node","outside-to-node","outside-to-node-or-label","outside-to-line","outside-to-line-or-label"],singleEnum:!0,validate:function(e,t){switch(e.length){case 2:return"deg"!==t[0]&&"rad"!==t[0]&&"deg"!==t[1]&&"rad"!==t[1];case 1:return D(e[0])||"deg"===t[0]||"rad"===t[0];default:return!1}}},easing:{regexes:["^(spring)\\s*\\(\\s*("+Y+")\\s*,\\s*("+Y+")\\s*\\)$","^(cubic-bezier)\\s*\\(\\s*("+Y+")\\s*,\\s*("+Y+")\\s*,\\s*("+Y+")\\s*,\\s*("+Y+")\\s*\\)$"],enums:["linear","ease","ease-in","ease-out","ease-in-out","ease-in-sine","ease-out-sine","ease-in-out-sine","ease-in-quad","ease-out-quad","ease-in-out-quad","ease-in-cubic","ease-out-cubic","ease-in-out-cubic","ease-in-quart","ease-out-quart","ease-in-out-quart","ease-in-quint","ease-out-quint","ease-in-out-quint","ease-in-expo","ease-out-expo","ease-in-out-expo","ease-in-circ","ease-out-circ","ease-in-out-circ"]},gradientDirection:{enums:["to-bottom","to-top","to-left","to-right","to-bottom-right","to-bottom-left","to-top-right","to-top-left","to-right-bottom","to-left-bottom","to-right-top","to-left-top"]},boundsExpansion:{number:!0,multiple:!0,min:0,validate:function(e){var t=e.length;return 1===t||2===t||4===t}}};var r=function(e,t){return(null==e||null==t)&&e!==t||0==e&&0!=t||0!=e&&0==t},i=function(e,t){return e!=t},a=a0.types,o=[{name:"label",type:a.text,triggersBounds:i,triggersZOrder:function(e,t){var n=R(e),r=R(t);return n&&!r||!n&&r}},{name:"text-rotation",type:a.textRotation,triggersBounds:i},{name:"text-margin-x",type:a.bidirectionalSize,triggersBounds:i},{name:"text-margin-y",type:a.bidirectionalSize,triggersBounds:i}],s=[{name:"source-label",type:a.text,triggersBounds:i},{name:"source-text-rotation",type:a.textRotation,triggersBounds:i},{name:"source-text-margin-x",type:a.bidirectionalSize,triggersBounds:i},{name:"source-text-margin-y",type:a.bidirectionalSize,triggersBounds:i},{name:"source-text-offset",type:a.size,triggersBounds:i}],l=[{name:"target-label",type:a.text,triggersBounds:i},{name:"target-text-rotation",type:a.textRotation,triggersBounds:i},{name:"target-text-margin-x",type:a.bidirectionalSize,triggersBounds:i},{name:"target-text-margin-y",type:a.bidirectionalSize,triggersBounds:i},{name:"target-text-offset",type:a.size,triggersBounds:i}],u=[{name:"font-family",type:a.fontFamily,triggersBounds:i},{name:"font-style",type:a.fontStyle,triggersBounds:i},{name:"font-weight",type:a.fontWeight,triggersBounds:i},{name:"font-size",type:a.size,triggersBounds:i},{name:"text-transform",type:a.textTransform,triggersBounds:i},{name:"text-wrap",type:a.textWrap,triggersBounds:i},{name:"text-overflow-wrap",type:a.textOverflowWrap,triggersBounds:i},{name:"text-max-width",type:a.size,triggersBounds:i},{name:"text-outline-width",type:a.size,triggersBounds:i},{name:"line-height",type:a.positiveNumber,triggersBounds:i}],c=[{name:"text-valign",type:a.valign,triggersBounds:i},{name:"text-halign",type:a.halign,triggersBounds:i},{name:"color",type:a.color},{name:"text-outline-color",type:a.color},{name:"text-outline-opacity",type:a.zeroOneNumber},{name:"text-background-color",type:a.color},{name:"text-background-opacity",type:a.zeroOneNumber},{name:"text-background-padding",type:a.size,triggersBounds:i},{name:"text-border-opacity",type:a.zeroOneNumber},{name:"text-border-color",type:a.color},{name:"text-border-width",type:a.size,triggersBounds:i},{name:"text-border-style",type:a.borderStyle,triggersBounds:i},{name:"text-background-shape",type:a.textBackgroundShape,triggersBounds:i},{name:"text-justification",type:a.justification}],h=[{name:"events",type:a.bool,triggersZOrder:i},{name:"text-events",type:a.bool,triggersZOrder:i}],d=[{name:"display",type:a.display,triggersZOrder:i,triggersBounds:i,triggersBoundsOfConnectedEdges:!0},{name:"visibility",type:a.visibility,triggersZOrder:i},{name:"opacity",type:a.zeroOneNumber,triggersZOrder:r},{name:"text-opacity",type:a.zeroOneNumber},{name:"min-zoomed-font-size",type:a.size},{name:"z-compound-depth",type:a.zCompoundDepth,triggersZOrder:i},{name:"z-index-compare",type:a.zIndexCompare,triggersZOrder:i},{name:"z-index",type:a.number,triggersZOrder:i}],p=[{name:"overlay-padding",type:a.size,triggersBounds:i},{name:"overlay-color",type:a.color},{name:"overlay-opacity",type:a.zeroOneNumber,triggersBounds:r},{name:"overlay-shape",type:a.overlayShape,triggersBounds:i},{name:"overlay-corner-radius",type:a.cornerRadius}],f=[{name:"underlay-padding",type:a.size,triggersBounds:i},{name:"underlay-color",type:a.color},{name:"underlay-opacity",type:a.zeroOneNumber,triggersBounds:r},{name:"underlay-shape",type:a.overlayShape,triggersBounds:i},{name:"underlay-corner-radius",type:a.cornerRadius}],g=[{name:"transition-property",type:a.propList},{name:"transition-duration",type:a.time},{name:"transition-delay",type:a.time},{name:"transition-timing-function",type:a.easing}],v=function(e,t){return"label"===t.value?-e.poolIndex():t.pfValue},y=[{name:"height",type:a.nodeSize,triggersBounds:i,hashOverride:v},{name:"width",type:a.nodeSize,triggersBounds:i,hashOverride:v},{name:"shape",type:a.nodeShape,triggersBounds:i},{name:"shape-polygon-points",type:a.polygonPointList,triggersBounds:i},{name:"corner-radius",type:a.cornerRadius},{name:"background-color",type:a.color},{name:"background-fill",type:a.fill},{name:"background-opacity",type:a.zeroOneNumber},{name:"background-blacken",type:a.nOneOneNumber},{name:"background-gradient-stop-colors",type:a.colors},{name:"background-gradient-stop-positions",type:a.percentages},{name:"background-gradient-direction",type:a.gradientDirection},{name:"padding",type:a.sizeMaybePercent,triggersBounds:i},{name:"padding-relative-to",type:a.paddingRelativeTo,triggersBounds:i},{name:"bounds-expansion",type:a.boundsExpansion,triggersBounds:i}],b=[{name:"border-color",type:a.color},{name:"border-opacity",type:a.zeroOneNumber},{name:"border-width",type:a.size,triggersBounds:i},{name:"border-style",type:a.borderStyle},{name:"border-cap",type:a.lineCap},{name:"border-join",type:a.lineJoin},{name:"border-dash-pattern",type:a.numbers},{name:"border-dash-offset",type:a.number},{name:"border-position",type:a.linePosition}],x=[{name:"outline-color",type:a.color},{name:"outline-opacity",type:a.zeroOneNumber},{name:"outline-width",type:a.size,triggersBounds:i},{name:"outline-style",type:a.borderStyle},{name:"outline-offset",type:a.size,triggersBounds:i}],w=[{name:"background-image",type:a.urls},{name:"background-image-crossorigin",type:a.bgCrossOrigin},{name:"background-image-opacity",type:a.zeroOneNumbers},{name:"background-image-containment",type:a.bgContainment},{name:"background-image-smoothing",type:a.bools},{name:"background-position-x",type:a.bgPos},{name:"background-position-y",type:a.bgPos},{name:"background-width-relative-to",type:a.bgRelativeTo},{name:"background-height-relative-to",type:a.bgRelativeTo},{name:"background-repeat",type:a.bgRepeat},{name:"background-fit",type:a.bgFit},{name:"background-clip",type:a.bgClip},{name:"background-width",type:a.bgWH},{name:"background-height",type:a.bgWH},{name:"background-offset-x",type:a.bgPos},{name:"background-offset-y",type:a.bgPos}],E=[{name:"position",type:a.position,triggersBounds:i},{name:"compound-sizing-wrt-labels",type:a.compoundIncludeLabels,triggersBounds:i},{name:"min-width",type:a.size,triggersBounds:i},{name:"min-width-bias-left",type:a.sizeMaybePercent,triggersBounds:i},{name:"min-width-bias-right",type:a.sizeMaybePercent,triggersBounds:i},{name:"min-height",type:a.size,triggersBounds:i},{name:"min-height-bias-top",type:a.sizeMaybePercent,triggersBounds:i},{name:"min-height-bias-bottom",type:a.sizeMaybePercent,triggersBounds:i}],k=[{name:"line-style",type:a.lineStyle},{name:"line-color",type:a.color},{name:"line-fill",type:a.fill},{name:"line-cap",type:a.lineCap},{name:"line-opacity",type:a.zeroOneNumber},{name:"line-dash-pattern",type:a.numbers},{name:"line-dash-offset",type:a.number},{name:"line-outline-width",type:a.size},{name:"line-outline-color",type:a.color},{name:"line-gradient-stop-colors",type:a.colors},{name:"line-gradient-stop-positions",type:a.percentages},{name:"curve-style",type:a.curveStyle,triggersBounds:i,triggersBoundsOfParallelBeziers:!0},{name:"haystack-radius",type:a.zeroOneNumber,triggersBounds:i},{name:"source-endpoint",type:a.edgeEndpoint,triggersBounds:i},{name:"target-endpoint",type:a.edgeEndpoint,triggersBounds:i},{name:"control-point-step-size",type:a.size,triggersBounds:i},{name:"control-point-distances",type:a.bidirectionalSizes,triggersBounds:i},{name:"control-point-weights",type:a.numbers,triggersBounds:i},{name:"segment-distances",type:a.bidirectionalSizes,triggersBounds:i},{name:"segment-weights",type:a.numbers,triggersBounds:i},{name:"segment-radii",type:a.numbers,triggersBounds:i},{name:"radius-type",type:a.radiusType,triggersBounds:i},{name:"taxi-turn",type:a.bidirectionalSizeMaybePercent,triggersBounds:i},{name:"taxi-turn-min-distance",type:a.size,triggersBounds:i},{name:"taxi-direction",type:a.axisDirection,triggersBounds:i},{name:"taxi-radius",type:a.number,triggersBounds:i},{name:"edge-distances",type:a.edgeDistances,triggersBounds:i},{name:"arrow-scale",type:a.positiveNumber,triggersBounds:i},{name:"loop-direction",type:a.angle,triggersBounds:i},{name:"loop-sweep",type:a.angle,triggersBounds:i},{name:"source-distance-from-node",type:a.size,triggersBounds:i},{name:"target-distance-from-node",type:a.size,triggersBounds:i}],C=[{name:"ghost",type:a.bool,triggersBounds:i},{name:"ghost-offset-x",type:a.bidirectionalSize,triggersBounds:i},{name:"ghost-offset-y",type:a.bidirectionalSize,triggersBounds:i},{name:"ghost-opacity",type:a.zeroOneNumber}],S=[{name:"selection-box-color",type:a.color},{name:"selection-box-opacity",type:a.zeroOneNumber},{name:"selection-box-border-color",type:a.color},{name:"selection-box-border-width",type:a.size},{name:"active-bg-color",type:a.color},{name:"active-bg-opacity",type:a.zeroOneNumber},{name:"active-bg-size",type:a.size},{name:"outside-texture-bg-color",type:a.color},{name:"outside-texture-bg-opacity",type:a.zeroOneNumber}],T=[];a0.pieBackgroundN=16,T.push({name:"pie-size",type:a.sizeMaybePercent});for(var P=1;P<=a0.pieBackgroundN;P++)T.push({name:"pie-"+P+"-background-color",type:a.color}),T.push({name:"pie-"+P+"-background-size",type:a.percent}),T.push({name:"pie-"+P+"-background-opacity",type:a.zeroOneNumber});var _=[],M=a0.arrowPrefixes=["source","mid-source","target","mid-target"];[{name:"arrow-shape",type:a.arrowShape,triggersBounds:i},{name:"arrow-color",type:a.color},{name:"arrow-fill",type:a.arrowFill},{name:"arrow-width",type:a.arrowWidth}].forEach(function(e){M.forEach(function(t){var n=t+"-"+e.name,r=e.type,i=e.triggersBounds;_.push({name:n,type:r,triggersBounds:i})})},{});var B=a0.properties=[].concat(h,g,d,p,f,C,c,u,o,s,l,y,b,x,w,T,E,k,_,S),A=a0.propertyGroups={behavior:h,transition:g,visibility:d,overlay:p,underlay:f,ghost:C,commonLabel:c,labelDimensions:u,mainLabel:o,sourceLabel:s,targetLabel:l,nodeBody:y,nodeBorder:b,nodeOutline:x,backgroundImage:w,pie:T,compound:E,edgeLine:k,edgeArrow:_,core:S},N=a0.propertyGroupNames={};(a0.propertyGroupKeys=Object.keys(A)).forEach(function(e){N[e]=A[e].map(function(e){return e.name}),A[e].forEach(function(t){return t.groupKey=e})});var I=a0.aliases=[{name:"content",pointsTo:"label"},{name:"control-point-distance",pointsTo:"control-point-distances"},{name:"control-point-weight",pointsTo:"control-point-weights"},{name:"segment-distance",pointsTo:"segment-distances"},{name:"segment-weight",pointsTo:"segment-weights"},{name:"segment-radius",pointsTo:"segment-radii"},{name:"edge-text-rotation",pointsTo:"text-rotation"},{name:"padding-left",pointsTo:"padding"},{name:"padding-right",pointsTo:"padding"},{name:"padding-top",pointsTo:"padding"},{name:"padding-bottom",pointsTo:"padding"}];a0.propertyNames=B.map(function(e){return e.name});for(var O=0;O<B.length;O++){var L=B[O];B[L.name]=L}for(var z=0;z<I.length;z++){var V=I[z],F=B[V.pointsTo],j={name:V.name,alias:!0,pointsTo:F};B.push(j),B[V.name]=j}}(),a0.getDefaultProperty=function(e){return this.getDefaultProperties()[e]},a0.getDefaultProperties=function(){var e=this._private;if(null!=e.defaultProperties)return e.defaultProperties;for(var t=Z({"selection-box-color":"#ddd","selection-box-opacity":.65,"selection-box-border-color":"#aaa","selection-box-border-width":1,"active-bg-color":"black","active-bg-opacity":.15,"active-bg-size":30,"outside-texture-bg-color":"#000","outside-texture-bg-opacity":.125,events:"yes","text-events":"no","text-valign":"top","text-halign":"center","text-justification":"auto","line-height":1,color:"#000","text-outline-color":"#000","text-outline-width":0,"text-outline-opacity":1,"text-opacity":1,"text-decoration":"none","text-transform":"none","text-wrap":"none","text-overflow-wrap":"whitespace","text-max-width":9999,"text-background-color":"#000","text-background-opacity":0,"text-background-shape":"rectangle","text-background-padding":0,"text-border-opacity":0,"text-border-width":0,"text-border-style":"solid","text-border-color":"#000","font-family":"Helvetica Neue, Helvetica, sans-serif","font-style":"normal","font-weight":"normal","font-size":16,"min-zoomed-font-size":0,"text-rotation":"none","source-text-rotation":"none","target-text-rotation":"none",visibility:"visible",display:"element",opacity:1,"z-compound-depth":"auto","z-index-compare":"auto","z-index":0,label:"","text-margin-x":0,"text-margin-y":0,"source-label":"","source-text-offset":0,"source-text-margin-x":0,"source-text-margin-y":0,"target-label":"","target-text-offset":0,"target-text-margin-x":0,"target-text-margin-y":0,"overlay-opacity":0,"overlay-color":"#000","overlay-padding":10,"overlay-shape":"round-rectangle","overlay-corner-radius":"auto","underlay-opacity":0,"underlay-color":"#000","underlay-padding":10,"underlay-shape":"round-rectangle","underlay-corner-radius":"auto","transition-property":"none","transition-duration":0,"transition-delay":0,"transition-timing-function":"linear","background-blacken":0,"background-color":"#999","background-fill":"solid","background-opacity":1,"background-image":"none","background-image-crossorigin":"anonymous","background-image-opacity":1,"background-image-containment":"inside","background-image-smoothing":"yes","background-position-x":"50%","background-position-y":"50%","background-offset-x":0,"background-offset-y":0,"background-width-relative-to":"include-padding","background-height-relative-to":"include-padding","background-repeat":"no-repeat","background-fit":"none","background-clip":"node","background-width":"auto","background-height":"auto","border-color":"#000","border-opacity":1,"border-width":0,"border-style":"solid","border-dash-pattern":[4,2],"border-dash-offset":0,"border-cap":"butt","border-join":"miter","border-position":"center","outline-color":"#999","outline-opacity":1,"outline-width":0,"outline-offset":0,"outline-style":"solid",height:30,width:30,shape:"ellipse","shape-polygon-points":"-1, -1, 1, -1, 1, 1, -1, 1","corner-radius":"auto","bounds-expansion":0,"background-gradient-direction":"to-bottom","background-gradient-stop-colors":"#999","background-gradient-stop-positions":"0%",ghost:"no","ghost-offset-y":0,"ghost-offset-x":0,"ghost-opacity":0,padding:0,"padding-relative-to":"width",position:"origin","compound-sizing-wrt-labels":"include","min-width":0,"min-width-bias-left":0,"min-width-bias-right":0,"min-height":0,"min-height-bias-top":0,"min-height-bias-bottom":0},{"pie-size":"100%"},[{name:"pie-{{i}}-background-color",value:"black"},{name:"pie-{{i}}-background-size",value:"0%"},{name:"pie-{{i}}-background-opacity",value:1}].reduce(function(e,t){for(var n=1;n<=a0.pieBackgroundN;n++){var r=t.name.replace("{{i}}",n),i=t.value;e[r]=i}return e},{}),{"line-style":"solid","line-color":"#999","line-fill":"solid","line-cap":"butt","line-opacity":1,"line-outline-width":0,"line-outline-color":"#000","line-gradient-stop-colors":"#999","line-gradient-stop-positions":"0%","control-point-step-size":40,"control-point-weights":.5,"segment-weights":.5,"segment-distances":20,"segment-radii":15,"radius-type":"arc-radius","taxi-turn":"50%","taxi-radius":15,"taxi-turn-min-distance":10,"taxi-direction":"auto","edge-distances":"intersection","curve-style":"haystack","haystack-radius":0,"arrow-scale":1,"loop-direction":"-45deg","loop-sweep":"-90deg","source-distance-from-node":0,"target-distance-from-node":0,"source-endpoint":"outside-to-node","target-endpoint":"outside-to-node","line-dash-pattern":[6,3],"line-dash-offset":0},[{name:"arrow-shape",value:"none"},{name:"arrow-color",value:"#999"},{name:"arrow-fill",value:"filled"},{name:"arrow-width",value:1}].reduce(function(e,t){return a0.arrowPrefixes.forEach(function(n){var r=n+"-"+t.name,i=t.value;e[r]=i}),e},{})),n={},r=0;r<this.properties.length;r++){var i=this.properties[r];if(!i.pointsTo){var a=i.name,o=t[a],s=this.parse(a,o);n[a]=s}}return e.defaultProperties=n,e.defaultProperties},a0.addDefaultStylesheet=function(){this.selector(":parent").css({shape:"rectangle",padding:10,"background-color":"#eee","border-color":"#ccc","border-width":1}).selector("edge").css({width:3}).selector(":loop").css({"curve-style":"bezier"}).selector("edge:compound").css({"curve-style":"bezier","source-endpoint":"outside-to-line","target-endpoint":"outside-to-line"}).selector(":selected").css({"background-color":"#0169D9","line-color":"#0169D9","source-arrow-color":"#0169D9","target-arrow-color":"#0169D9","mid-source-arrow-color":"#0169D9","mid-target-arrow-color":"#0169D9"}).selector(":parent:selected").css({"background-color":"#CCE1F9","border-color":"#aec8e5"}).selector(":active").css({"overlay-color":"black","overlay-padding":10,"overlay-opacity":.25}),this.defaultLength=this.length};var a1={};a1.parse=function(e,t,n,r){if(T(t))return this.parseImplWarn(e,t,n,r);var i,a=eq(e,""+t,n?"t":"f","mapping"===r||!0===r||!1===r||null==r?"dontcare":r),o=this.propCache=this.propCache||[];return(i=o[a])||(i=o[a]=this.parseImplWarn(e,t,n,r)),(n||"mapping"===r)&&(i=e1(i))&&(i.value=e1(i.value)),i},a1.parseImplWarn=function(e,t,n,r){var i=this.parseImpl(e,t,n,r);return i||null==t||e0("The style property `".concat(e,": ").concat(t,"` is invalid")),i&&("width"===i.name||"height"===i.name)&&"label"===t&&e0("The style value of `label` is deprecated for `"+i.name+"`"),i},a1.parseImpl=function(e,t,n,r){e=F(e);var i=this.properties[e],a=t,o=this.types;if(!i||void 0===t)return null;i.alias&&(e=(i=i.pointsTo).name);var s=D(t);s&&(t=t.trim());var l=i.type;if(!l)return null;if(n&&(""===t||null===t))return{name:e,value:t,bypass:!0,deleteBypass:!0};if(T(t))return{name:e,value:t,strValue:"fn",mapped:o.fn,bypass:n};if(!s||r||t.length<7||"a"!==t[1]);else if(t.length>=7&&"d"===t[0]&&(g=new RegExp(o.data.regex).exec(t))){if(n)return!1;var u=o.data;return{name:e,value:g,strValue:""+t,mapped:u,field:g[1],bypass:n}}else if(t.length>=10&&"m"===t[0]&&(v=new RegExp(o.mapData.regex).exec(t))){if(n||l.multiple)return!1;var c=o.mapData;if(!(l.color||l.number))return!1;var h=this.parse(e,v[4]);if(!h||h.mapped)return!1;var d=this.parse(e,v[5]);if(!d||d.mapped)return!1;if(h.pfValue===d.pfValue||h.strValue===d.strValue)return e0("`"+e+": "+t+"` is not a valid mapper because the output range is zero; converting to `"+e+": "+h.strValue+"`"),this.parse(e,h.strValue);if(l.color){var p=h.value,f=d.value;if(p[0]===f[0]&&p[1]===f[1]&&p[2]===f[2]&&(p[3]===f[3]||(null==p[3]||1===p[3])&&(null==f[3]||1===f[3])))return!1}return{name:e,value:v,strValue:""+t,mapped:c,field:v[1],fieldMin:parseFloat(v[2]),fieldMax:parseFloat(v[3]),valueMin:h.value,valueMax:d.value,bypass:n}}if(l.multiple&&"multiple"!==r){if(y=s?t.split(/\s+/):P(t)?t:[t],l.evenMultiple&&y.length%2!=0)return null;for(var g,v,y,b=[],x=[],w=[],E="",k=!1,C=0;C<y.length;C++){var S=this.parse(e,y[C],n,"multiple");k=k||D(S.value),b.push(S.value),w.push(null!=S.pfValue?S.pfValue:S.value),x.push(S.units),E+=(C>0?" ":"")+S.strValue}return l.validate&&!l.validate(b,x)?null:l.singleEnum&&k?1===b.length&&D(b[0])?{name:e,value:b[0],strValue:b[0],bypass:n}:null:{name:e,value:b,pfValue:w,strValue:E,bypass:n,units:x}}var _=function(){for(var r=0;r<l.enums.length;r++)if(l.enums[r]===t)return{name:e,value:t,strValue:""+t,bypass:n};return null};if(l.number){var B,A,N="px";if(l.units&&(A=l.units),l.implicitUnits&&(N=l.implicitUnits),!l.unitless){if(s){var I="px|em"+(l.allowPercent?"|\\%":"");A&&(I=A);var O=t.match("^("+Y+")("+I+")?$");O&&(t=O[1],A=O[2]||N)}else(!A||l.implicitUnits)&&(A=N)}if(isNaN(t=parseFloat(t))&&void 0===l.enums)return null;if(isNaN(t)&&void 0!==l.enums)return t=a,_();if(l.integer&&!(M(B=t)&&Math.floor(B)===B)||void 0!==l.min&&(t<l.min||l.strictMin&&t===l.min)||void 0!==l.max&&(t>l.max||l.strictMax&&t===l.max))return null;var L={name:e,value:t,strValue:""+t+(A||""),units:A,bypass:n};return l.unitless||"px"!==A&&"em"!==A?L.pfValue=t:L.pfValue="px"!==A&&A?this.getEmSizeInPixels()*t:t,("ms"===A||"s"===A)&&(L.pfValue="ms"===A?t:1e3*t),("deg"===A||"rad"===A)&&(L.pfValue="rad"===A?t:Math.PI*t/180),"%"===A&&(L.pfValue=t/100),L}if(l.propList){var R=[],z=""+t;if("none"===z);else{for(var V=z.split(/\s*,\s*|\s+/),j=0;j<V.length;j++){var q=V[j].trim();this.properties[q]?R.push(q):e0("`"+q+"` is not a valid property name")}if(0===R.length)return null}return{name:e,value:R,strValue:0===R.length?"none":R.join(" "),bypass:n}}if(l.color){var X,W=(P(X=t)?X:null)||ee[X.toLowerCase()]||$(X)||J(X)||Q(X);return W?{name:e,value:W,pfValue:W,strValue:"rgb("+W[0]+","+W[1]+","+W[2]+")",bypass:n}:null}if(l.regex||l.regexes){if(l.enums){var H=_();if(H)return H}for(var G=l.regexes?l.regexes:[l.regex],U=0;U<G.length;U++){var K=new RegExp(G[U]).exec(t);if(K)return{name:e,value:l.singleRegexMatchValue?K[1]:K,strValue:""+t,bypass:n}}return null}return l.string?{name:e,value:""+t,strValue:""+t,bypass:n}:l.enums?_():null};var a2=function e(t){if(!(this instanceof e))return new e(t);if(!O(t)){eQ("A style must have a core reference");return}this._private={cy:t,coreStyle:{}},this.length=0,this.resetToDefault()},a5=a2.prototype;a5.instanceString=function(){return"style"},a5.clear=function(){for(var e=this._private,t=e.cy.elements(),n=0;n<this.length;n++)this[n]=void 0;return this.length=0,e.contextStyles={},e.propDiffs={},this.cleanElements(t,!0),t.forEach(function(e){var t=e[0]._private;t.styleDirty=!0,t.appliedInitStyle=!1}),this},a5.resetToDefault=function(){return this.clear(),this.addDefaultStylesheet(),this},a5.core=function(e){return this._private.coreStyle[e]||this.getDefaultProperty(e)},a5.selector=function(e){var t="core"===e?null:new ib(e),n=this.length++;return this[n]={selector:t,properties:[],mappedProperties:[],index:n},this},a5.css=function(){var e=arguments;if(1===e.length)for(var t=e[0],n=0;n<this.properties.length;n++){var r=this.properties[n],i=t[r.name];void 0===i&&(i=t[j(r.name)]),void 0!==i&&this.cssRule(r.name,i)}else 2===e.length&&this.cssRule(e[0],e[1]);return this},a5.style=a5.css,a5.cssRule=function(e,t){var n=this.parse(e,t);if(n){var r=this.length-1;this[r].properties.push(n),this[r].properties[n.name]=n,n.name.match(/pie-(\d+)-background-size/)&&n.value&&(this._private.hasPie=!0),n.mapped&&this[r].mappedProperties.push(n),this[r].selector||(this._private.coreStyle[n.name]=n)}return this},a5.append=function(e){return L(e)?e.appendToStyle(this):P(e)?this.appendFromJson(e):D(e)&&this.appendFromString(e),this},a2.fromJson=function(e,t){var n=new a2(e);return n.fromJson(t),n},a2.fromString=function(e,t){return new a2(e).fromString(t)},[aU,aK,aZ,a$,aQ,aJ,a0,a1].forEach(function(e){Z(a5,e)}),a2.types=a5.types,a2.properties=a5.properties,a2.propertyGroups=a5.propertyGroups,a2.propertyGroupNames=a5.propertyGroupNames,a2.propertyGroupKeys=a5.propertyGroupKeys;var a3={autolock:function(e){return void 0===e?this._private.autolock:(this._private.autolock=!!e,this)},autoungrabify:function(e){return void 0===e?this._private.autoungrabify:(this._private.autoungrabify=!!e,this)},autounselectify:function(e){return void 0===e?this._private.autounselectify:(this._private.autounselectify=!!e,this)},selectionType:function(e){var t=this._private;return(null==t.selectionType&&(t.selectionType="single"),void 0===e)?t.selectionType:(("additive"===e||"single"===e)&&(t.selectionType=e),this)},panningEnabled:function(e){return void 0===e?this._private.panningEnabled:(this._private.panningEnabled=!!e,this)},userPanningEnabled:function(e){return void 0===e?this._private.userPanningEnabled:(this._private.userPanningEnabled=!!e,this)},zoomingEnabled:function(e){return void 0===e?this._private.zoomingEnabled:(this._private.zoomingEnabled=!!e,this)},userZoomingEnabled:function(e){return void 0===e?this._private.userZoomingEnabled:(this._private.userZoomingEnabled=!!e,this)},boxSelectionEnabled:function(e){return void 0===e?this._private.boxSelectionEnabled:(this._private.boxSelectionEnabled=!!e,this)},pan:function(){var e,t,n,r,i,a=arguments,o=this._private.pan;switch(a.length){case 0:return o;case 1:if(D(a[0]))return o[e=a[0]];if(_(a[0])){if(!this._private.panningEnabled)return this;r=(n=a[0]).x,i=n.y,M(r)&&(o.x=r),M(i)&&(o.y=i),this.emit("pan viewport")}break;case 2:if(!this._private.panningEnabled)return this;e=a[0],t=a[1],("x"===e||"y"===e)&&M(t)&&(o[e]=t),this.emit("pan viewport")}return this.notify("viewport"),this},panBy:function(e,t){var n,r,i,a=arguments,o=this._private.pan;if(!this._private.panningEnabled)return this;switch(a.length){case 1:_(e)&&(r=(n=a[0]).x,i=n.y,M(r)&&(o.x+=r),M(i)&&(o.y+=i),this.emit("pan viewport"));break;case 2:("x"===e||"y"===e)&&M(t)&&(o[e]+=t),this.emit("pan viewport")}return this.notify("viewport"),this},fit:function(e,t){var n=this.getFitViewport(e,t);if(n){var r=this._private;r.zoom=n.zoom,r.pan=n.pan,this.emit("pan zoom viewport"),this.notify("viewport")}return this},getFitViewport:function(e,t){if(M(e)&&void 0===t&&(t=e,e=void 0),this._private.panningEnabled&&this._private.zoomingEnabled){if(D(e)){var n,r,i,a=e;e=this.$(a)}else if(_(n=e)&&M(n.x1)&&M(n.x2)&&M(n.y1)&&M(n.y2)){var o=e;(r={x1:o.x1,y1:o.y1,x2:o.x2,y2:o.y2}).w=r.x2-r.x1,r.h=r.y2-r.y1}else A(e)||(e=this.mutableElements());if(!(A(e)&&e.empty())){r=r||e.boundingBox();var s=this.width(),l=this.height();if(t=M(t)?t:0,!isNaN(s)&&!isNaN(l)&&s>0&&l>0&&!isNaN(r.w)&&!isNaN(r.h)&&r.w>0&&r.h>0){i=(i=(i=Math.min((s-2*t)/r.w,(l-2*t)/r.h))>this._private.maxZoom?this._private.maxZoom:i)<this._private.minZoom?this._private.minZoom:i;var u={x:(s-i*(r.x1+r.x2))/2,y:(l-i*(r.y1+r.y2))/2};return{zoom:i,pan:u}}}}},zoomRange:function(e,t){var n=this._private;if(null==t){var r=e;e=r.min,t=r.max}return M(e)&&M(t)&&e<=t?(n.minZoom=e,n.maxZoom=t):M(e)&&void 0===t&&e<=n.maxZoom?n.minZoom=e:M(t)&&void 0===e&&t>=n.minZoom&&(n.maxZoom=t),this},minZoom:function(e){return void 0===e?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return void 0===e?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var t,n,r=this._private,i=r.pan,a=r.zoom,o=!1;if(r.zoomingEnabled||(o=!0),M(e)?n=e:_(e)&&(n=e.level,null!=e.position?t=tv(e.position,a,i):null!=e.renderedPosition&&(t=e.renderedPosition),null==t||r.panningEnabled||(o=!0)),n=(n=n>r.maxZoom?r.maxZoom:n)<r.minZoom?r.minZoom:n,o||!M(n)||n===a||null!=t&&(!M(t.x)||!M(t.y)))return null;if(null==t)return{zoomed:!0,panned:!1,zoom:n,pan:i};var s=n,l={x:-s/a*(t.x-i.x)+t.x,y:-s/a*(t.y-i.y)+t.y};return{zoomed:!0,panned:!0,zoom:s,pan:l}},zoom:function(e){if(void 0===e)return this._private.zoom;var t=this.getZoomedViewport(e),n=this._private;return null!=t&&t.zoomed&&(n.zoom=t.zoom,t.panned&&(n.pan.x=t.pan.x,n.pan.y=t.pan.y),this.emit("zoom"+(t.panned?" pan":"")+" viewport"),this.notify("viewport")),this},viewport:function(e){var t=this._private,n=!0,r=!0,i=[],a=!1,o=!1;if(!e||(M(e.zoom)||(n=!1),_(e.pan)||(r=!1),!n&&!r))return this;if(n){var s=e.zoom;s<t.minZoom||s>t.maxZoom||!t.zoomingEnabled?a=!0:(t.zoom=s,i.push("zoom"))}if(r&&(!a||!e.cancelOnFailedZoom)&&t.panningEnabled){var l=e.pan;M(l.x)&&(t.pan.x=l.x,o=!1),M(l.y)&&(t.pan.y=l.y,o=!1),o||i.push("pan")}return i.length>0&&(i.push("viewport"),this.emit(i.join(" ")),this.notify("viewport")),this},center:function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,t){if(this._private.panningEnabled){if(D(e)){var n=e;e=this.mutableElements().filter(n)}else A(e)||(e=this.mutableElements());if(0!==e.length){var r=e.boundingBox(),i=this.width(),a=this.height();return{x:(i-(t=void 0===t?this._private.zoom:t)*(r.x1+r.x2))/2,y:(a-t*(r.y1+r.y2))/2}}}},reset:function(){return this._private.panningEnabled&&this._private.zoomingEnabled&&this.viewport({pan:{x:0,y:0},zoom:1}),this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e,t,n=this._private,r=n.container;return n.sizeCache=n.sizeCache||(r?(e=this.window().getComputedStyle(r),t=function(t){return parseFloat(e.getPropertyValue(t))},{width:r.clientWidth-t("padding-left")-t("padding-right"),height:r.clientHeight-t("padding-top")-t("padding-bottom")}):{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,t=this._private.zoom,n=this.renderedExtent(),r={x1:(n.x1-e.x)/t,x2:(n.x2-e.x)/t,y1:(n.y1-e.y)/t,y2:(n.y2-e.y)/t};return r.w=r.x2-r.x1,r.h=r.y2-r.y1,r},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},multiClickDebounceTime:function(e){return e?(this._private.multiClickDebounceTime=e,this):this._private.multiClickDebounceTime}};a3.centre=a3.center,a3.autolockNodes=a3.autolock,a3.autoungrabifyNodes=a3.autoungrabify;var a4={data:r8.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:r8.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:r8.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:r8.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};a4.attr=a4.data,a4.removeAttr=a4.removeData;var a9=function(e){var t=this,n=(e=Z({},e)).container;n&&!B(n)&&B(n[0])&&(n=n[0]);var r=n?n._cyreg:null;(r=r||{}).cy&&(r.cy.destroy(),r={});var i=r.readies=r.readies||[];n&&(n._cyreg=r),r.cy=t;var a=void 0!==b&&void 0!==n&&!e.headless,o=e;o.layout=Z({name:a?"grid":"null"},o.layout),o.renderer=Z({name:a?"canvas":"null"},o.renderer);var s=function(e,t,n){return void 0!==t?t:void 0!==n?n:e},l=this._private={container:n,ready:!1,options:o,elements:new a_(this),listeners:[],aniEles:new a_(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:s(!0,o.zoomingEnabled),userZoomingEnabled:s(!0,o.userZoomingEnabled),panningEnabled:s(!0,o.panningEnabled),userPanningEnabled:s(!0,o.userPanningEnabled),boxSelectionEnabled:s(!0,o.boxSelectionEnabled),autolock:s(!1,o.autolock,o.autolockNodes),autoungrabify:s(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:s(!1,o.autounselectify),styleEnabled:void 0===o.styleEnabled?a:o.styleEnabled,zoom:M(o.zoom)?o.zoom:1,pan:{x:_(o.pan)&&M(o.pan.x)?o.pan.x:0,y:_(o.pan)&&M(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:s(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom}),l.styleEnabled&&t.setStyle([]);var u=Z({},o,o.renderer);t.initRenderer(u);var c=function(e,n,r){t.notifications(!1);var i=t.mutableElements();i.length>0&&i.remove(),null!=e&&(_(e)||P(e))&&t.add(e),t.one("layoutready",function(e){t.notifications(!0),t.emit(e),t.one("load",n),t.emitAndNotify("load")}).one("layoutstop",function(){t.one("done",r),t.emit("done")});var a=Z({},t._private.options.layout);a.eles=t.elements(),t.layout(a).run()};!function(e,t){if(e.some(z))return ru.all(e).then(t);t(e)}([o.style,o.elements],function(e){var n=e[0],a=e[1];l.styleEnabled&&t.style().append(n),c(a,function(){t.startAnimationLoop(),l.ready=!0,T(o.ready)&&t.on("ready",o.ready);for(var e=0;e<i.length;e++){var n=i[e];t.on("ready",n)}r&&(r.readies=[]),t.emit("ready")},o.done)})},a6=a9.prototype;Z(a6,{instanceString:function(){return"core"},isReady:function(){return this._private.ready},destroyed:function(){return this._private.destroyed},ready:function(e){return this.isReady()?this.emitter().emit("ready",[],e):this.on("ready",e),this},destroy:function(){if(!this.destroyed())return this.stopAnimationLoop(),this.destroyRenderer(),this.emit("destroy"),this._private.destroyed=!0,this},hasElementWithId:function(e){return this._private.elements.hasElementWithId(e)},getElementById:function(e){return this._private.elements.getElementById(e)},hasCompoundNodes:function(){return this._private.hasCompoundNodes},headless:function(){return this._private.renderer.isHeadless()},styleEnabled:function(){return this._private.styleEnabled},addToPool:function(e){return this._private.elements.merge(e),this},removeFromPool:function(e){return this._private.elements.unmerge(e),this},container:function(){return this._private.container||null},window:function(){if(null==this._private.container)return b;var e=this._private.container.ownerDocument;return void 0===e||null==e?b:e.defaultView||b},mount:function(e){if(null!=e){var t=this._private,n=t.options;return!B(e)&&B(e[0])&&(e=e[0]),this.stopAnimationLoop(),this.destroyRenderer(),t.container=e,t.styleEnabled=!0,this.invalidateSize(),this.initRenderer(Z({},n,n.renderer,{name:"null"===n.renderer.name?"canvas":n.renderer.name})),this.startAnimationLoop(),this.style(n.style),this.emit("mount"),this}},unmount:function(){return this.stopAnimationLoop(),this.destroyRenderer(),this.initRenderer({name:"null"}),this.emit("unmount"),this},options:function(){return e1(this._private.options)},json:function(e){var t=this,n=t._private,r=t.mutableElements();if(_(e)){if(t.startBatch(),e.elements){var i={},a=function(e,n){for(var r=[],a=[],o=0;o<e.length;o++){var s=e[o];if(!s.data.id){e0("cy.json() cannot handle elements without an ID attribute");continue}var l=""+s.data.id,u=t.getElementById(l);i[l]=!0,0!==u.length?a.push({ele:u,json:s}):(n&&(s.group=n),r.push(s))}t.add(r);for(var c=0;c<a.length;c++){var h=a[c],d=h.ele,p=h.json;d.json(p)}};if(P(e.elements))a(e.elements);else for(var o=["nodes","edges"],s=0;s<o.length;s++){var l=o[s],u=e.elements[l];P(u)&&a(u,l)}var c=t.collection();r.filter(function(e){return!i[e.id()]}).forEach(function(e){e.isParent()?c.merge(e):e.remove()}),c.forEach(function(e){return e.children().move({parent:null})}),c.forEach(function(e){return t.getElementById(e.id()).remove()})}e.style&&t.style(e.style),null!=e.zoom&&e.zoom!==n.zoom&&t.zoom(e.zoom),e.pan&&(e.pan.x!==n.pan.x||e.pan.y!==n.pan.y)&&t.pan(e.pan),e.data&&t.data(e.data);for(var h=["minZoom","maxZoom","zoomingEnabled","userZoomingEnabled","panningEnabled","userPanningEnabled","boxSelectionEnabled","autolock","autoungrabify","autounselectify","multiClickDebounceTime"],d=0;d<h.length;d++){var p=h[d];null!=e[p]&&t[p](e[p])}return t.endBatch(),this}var f={};e?f.elements=this.elements().map(function(e){return e.json()}):(f.elements={},r.forEach(function(e){var t=e.group();f.elements[t]||(f.elements[t]=[]),f.elements[t].push(e.json())})),this._private.styleEnabled&&(f.style=t.style().json()),f.data=e1(t.data());var g=n.options;return f.zoomingEnabled=n.zoomingEnabled,f.userZoomingEnabled=n.userZoomingEnabled,f.zoom=n.zoom,f.minZoom=n.minZoom,f.maxZoom=n.maxZoom,f.panningEnabled=n.panningEnabled,f.userPanningEnabled=n.userPanningEnabled,f.pan=e1(n.pan),f.boxSelectionEnabled=n.boxSelectionEnabled,f.renderer=e1(g.renderer),f.hideEdgesOnViewport=g.hideEdgesOnViewport,f.textureOnViewport=g.textureOnViewport,f.wheelSensitivity=g.wheelSensitivity,f.motionBlur=g.motionBlur,f.multiClickDebounceTime=g.multiClickDebounceTime,f}}),a6.$id=a6.getElementById,[{add:function(e){var t;if(A(e)){if(e._private.cy===this)t=e.restore();else{for(var n=[],r=0;r<e.length;r++){var i=e[r];n.push(i.json())}t=new a_(this,n)}}else if(P(e))t=new a_(this,e);else if(_(e)&&(P(e.nodes)||P(e.edges))){for(var a=[],o=["nodes","edges"],s=0,l=o.length;s<l;s++){var u=o[s],c=e[u];if(P(c))for(var h=0,d=c.length;h<d;h++){var p=Z({group:u},c[h]);a.push(p)}}t=new a_(this,a)}else t=new ta(this,e).collection();return t},remove:function(e){if(A(e));else if(D(e)){var t=e;e=this.$(t)}return e.remove()}},aV,aq,aX,aY,{notify:function(e,t){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var r=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();null!=t&&r.merge(t);return}if(n.notificationsEnabled){var i=this.renderer();!this.destroyed()&&i&&i.notify(e,t)}},notifications:function(e){var t=this._private;return void 0===e?t.notificationsEnabled:(t.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return null==e.batchCount&&(e.batchCount=0),0===e.batchCount&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch:function(){var e=this._private;if(0===e.batchCount)return this;if(e.batchCount--,0===e.batchCount){e.batchStyleEles.updateStyle();var t=this.renderer();Object.keys(e.batchNotifications).forEach(function(n){var r=e.batchNotifications[n];r.empty()?t.notify(n):t.notify(n,r)})}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var t=this;return this.batch(function(){for(var n=Object.keys(e),r=0;r<n.length;r++){var i=n[r],a=e[i];t.getElementById(i).data(a)}})}},aH,aG,{style:function(e){return e&&this.setStyle(e).update(),this._private.style},setStyle:function(e){var t=this._private;return L(e)?t.style=e.generateStyle(this):P(e)?t.style=a2.fromJson(this,e):D(e)?t.style=a2.fromString(this,e):t.style=a2(this),t.style},updateStyle:function(){this.mutableElements().updateStyle()}},a3,a4].forEach(function(e){Z(a6,e)});var a8={fit:!0,directed:!1,padding:30,circle:!1,grid:!1,spacingFactor:1.75,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,roots:void 0,depthSort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}},a7={maximal:!1,acyclic:!1},oe=function(e){return e.scratch("breadthfirst")},ot=function(e,t){return e.scratch("breadthfirst",t)};function on(e){this.options=Z({},a8,a7,e)}on.prototype.run=function(){var e,t=this.options,n=t.cy,r=t.eles,i=r.nodes().filter(function(e){return!e.isParent()}),a=t.directed,o=t.acyclic||t.maximal||t.maximalAdjustments>0,s=tN(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()});if(A(t.roots))e=t.roots;else if(P(t.roots)){for(var l=[],u=0;u<t.roots.length;u++){var c=t.roots[u],h=n.getElementById(c);l.push(h)}e=n.collection(l)}else if(D(t.roots))e=n.$(t.roots);else if(a)e=i.roots();else{var d=r.components();e=n.collection();for(var p=0;p<d.length;p++)!function(t){var n=d[t],r=n.maxDegree(!1),i=n.filter(function(e){return e.degree(!1)===r});e=e.add(i)}(p)}var f=[],g={},v=function(e,t){null==f[t]&&(f[t]=[]);var n=f[t].length;f[t].push(e),ot(e,{index:n,depth:t})},y=function(e,t){var n=oe(e),r=n.depth,i=n.index;f[r][i]=null,v(e,t)};r.bfs({roots:e,directed:t.directed,visit:function(e,t,n,r,i){var a=e[0],o=a.id();v(a,i),g[o]=!0}});for(var b=[],x=0;x<i.length;x++){var w=i[x];g[w.id()]||b.push(w)}var E=function(e){for(var t=f[e],n=0;n<t.length;n++){var r=t[n];if(null==r){t.splice(n,1),n--;continue}ot(r,{depth:e,index:n})}},k=function(){for(var e=0;e<f.length;e++)E(e)};if(a&&o){var C=[],S={},T=function(e){return C.push(e)};for(i.forEach(function(e){return C.push(e)});C.length>0;){var _=C.shift(),M=function(e,n){for(var i=oe(e),a=e.incomers().filter(function(e){return e.isNode()&&r.has(e)}),o=-1,s=e.id(),l=0;l<a.length;l++)o=Math.max(o,oe(a[l]).depth);if(i.depth<=o){if(!t.acyclic&&n[s])return null;var u=o+1;return y(e,u),n[s]=u,!0}return!1}(_,S);if(M)_.outgoers().filter(function(e){return e.isNode()&&r.has(e)}).forEach(T);else if(null===M){e0("Detected double maximal shift for node `"+_.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}k();var B=0;if(t.avoidOverlap)for(var N=0;N<i.length;N++){var I=i[N].layoutDimensions(t),O=I.w,L=I.h;B=Math.max(B,O,L)}var R={},z=function(e){if(R[e.id()])return R[e.id()];for(var t=oe(e).depth,n=e.neighborhood(),r=0,a=0,o=0;o<n.length;o++){var s=n[o];if(!(s.isEdge()||s.isParent())&&i.has(s)){var l=oe(s);if(null!=l){var u=l.index,c=l.depth;if(null!=u&&null!=c){var h=f[c].length;c<t&&(r+=u/h,a++)}}}}return r/=a=Math.max(1,a),0===a&&(r=0),R[e.id()]=r,r},V=function(e,t){var n=z(e)-z(t);return 0===n?K(e.id(),t.id()):n};void 0!==t.depthSort&&(V=t.depthSort);for(var F=0;F<f.length;F++)f[F].sort(V),E(F);for(var j=[],q=0;q<b.length;q++)j.push(b[q]);f.unshift(j),k();for(var X=0,Y=0;Y<f.length;Y++)X=Math.max(f[Y].length,X);var W={x:s.x1+s.w/2,y:s.x1+s.h/2},H=f.reduce(function(e,t){return Math.max(e,t.length)},0);return r.nodes().layoutPositions(this,t,function(e){var n=oe(e),r=n.depth,i=n.index,a=f[r].length,o=Math.max(s.w/((t.grid?H:a)+1),B),l=Math.max(s.h/(f.length+1),B),u=Math.min(s.w/2/f.length,s.h/2/f.length);if(u=Math.max(u,B),!t.circle)return{x:W.x+(i+1-(a+1)/2)*o,y:(r+1)*l};var c=u*r+u-(f.length>0&&f[0].length<=3?u/2:0),h=2*Math.PI/f[r].length*i;return 0===r&&1===f[0].length&&(c=1),{x:W.x+c*Math.cos(h),y:W.y+c*Math.sin(h)}}),this};var or={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function oi(e){this.options=Z({},or,e)}oi.prototype.run=function(){var e,t=this.options,n=t.cy,r=t.eles,i=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,a=r.nodes().not(":parent");t.sort&&(a=a.sort(t.sort));for(var o=tN(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),s={x:o.x1+o.w/2,y:o.y1+o.h/2},l=(void 0===t.sweep?2*Math.PI-2*Math.PI/a.length:t.sweep)/Math.max(1,a.length-1),u=0,c=0;c<a.length;c++){var h=a[c].layoutDimensions(t);u=Math.max(u,h.w,h.h)}if(e=M(t.radius)?t.radius:a.length<=1?0:Math.min(o.h,o.w)/2-u,a.length>1&&t.avoidOverlap){var d=Math.cos(l)-1,p=Math.sin(l)-0;e=Math.max(Math.sqrt((u*=1.75)*u/(d*d+p*p)),e)}return r.nodes().layoutPositions(this,t,function(n,r){var a=t.startAngle+r*l*(i?1:-1),o=e*Math.cos(a),u=e*Math.sin(a);return{x:s.x+o,y:s.y+u}}),this};var oa={fit:!0,padding:30,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function oo(e){this.options=Z({},oa,e)}oo.prototype.run=function(){for(var e=this.options,t=void 0!==e.counterclockwise?!e.counterclockwise:e.clockwise,n=e.cy,r=e.eles,i=r.nodes().not(":parent"),a=tN(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),o={x:a.x1+a.w/2,y:a.y1+a.h/2},s=[],l=0,u=0;u<i.length;u++){var c=i[u],h=void 0;h=e.concentric(c),s.push({value:h,node:c}),c._private.scratch.concentric=h}i.updateStyle();for(var d=0;d<i.length;d++){var p=i[d].layoutDimensions(e);l=Math.max(l,p.w,p.h)}s.sort(function(e,t){return t.value-e.value});for(var f=e.levelWidth(i),g=[[]],v=g[0],y=0;y<s.length;y++){var b=s[y];v.length>0&&Math.abs(v[0].value-b.value)>=f&&(v=[],g.push(v)),v.push(b)}var x=l+e.minNodeSpacing;if(!e.avoidOverlap){var w=g.length>0&&g[0].length>1,E=(Math.min(a.w,a.h)/2-x)/(g.length+w?1:0);x=Math.min(x,E)}for(var k=0,C=0;C<g.length;C++){var S=g[C],D=void 0===e.sweep?2*Math.PI-2*Math.PI/S.length:e.sweep,T=S.dTheta=D/Math.max(1,S.length-1);if(S.length>1&&e.avoidOverlap){var P=Math.cos(T)-1,_=Math.sin(T)-0;k=Math.max(Math.sqrt(x*x/(P*P+_*_)),k)}S.r=k,k+=x}if(e.equidistant){for(var M=0,B=0,A=0;A<g.length;A++)M=Math.max(M,g[A].r-B);B=0;for(var N=0;N<g.length;N++){var I=g[N];0===N&&(B=I.r),I.r=B,B+=M}}for(var O={},L=0;L<g.length;L++)for(var R=g[L],z=R.dTheta,V=R.r,F=0;F<R.length;F++){var j=R[F],q=e.startAngle+(t?1:-1)*z*F,X={x:o.x+V*Math.cos(q),y:o.y+V*Math.sin(q)};O[j.node.id()]=X}return r.nodes().layoutPositions(this,e,function(e){return O[e.id()]}),this};var os={ready:function(){},stop:function(){},animate:!0,animationEasing:void 0,animationDuration:void 0,animateFilter:function(e,t){return!0},animationThreshold:250,refresh:20,fit:!0,padding:30,boundingBox:void 0,nodeDimensionsIncludeLabels:!1,randomize:!1,componentSpacing:40,nodeRepulsion:function(e){return 2048},nodeOverlap:4,idealEdgeLength:function(e){return 32},edgeElasticity:function(e){return 32},nestingFactor:1.2,gravity:1,numIter:1e3,initialTemp:1e3,coolingFactor:.99,minTemp:1};function ol(e){this.options=Z({},os,e),this.options.layout=this;var t=this.options.eles.nodes(),n=this.options.eles.edges().filter(function(e){var n=e.source().data("id"),r=e.target().data("id"),i=t.some(function(e){return e.data("id")===n}),a=t.some(function(e){return e.data("id")===r});return!i||!a});this.options.eles=this.options.eles.not(n)}ol.prototype.run=function(){var e=this.options,t=e.cy,n=this;n.stopped=!1,(!0===e.animate||!1===e.animate)&&n.emit({type:"layoutstart",layout:n}),o2=!0===e.debug;var r=ou(t,n,e);o2&&o5(r),e.randomize&&od(r);var i=eA(),a=function(){of(r,t,e),!0===e.fit&&t.fit(e.padding)},o=function(t){return!n.stopped&&!(t>=e.numIter)&&(og(r,e),r.temperature=r.temperature*e.coolingFactor,!(r.temperature<e.minTemp))},s=function(){if(!0===e.animate||!1===e.animate)a(),n.one("layoutstop",e.stop),n.emit({type:"layoutstop",layout:n});else{var t=e.eles.nodes(),i=op(r,e,t);t.layoutPositions(n,e,i)}},l=0,u=!0;if(!0===e.animate)!function t(){for(var n=0;u&&n<e.refresh;)u=o(l),l++,n++;u?(eA()-i>=e.animationThreshold&&a(),eI(t)):(oT(r,e),s())}();else{for(;u;)u=o(l),l++;oT(r,e),s()}return this},ol.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},ol.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var ou=function(e,t,n){for(var r=n.eles.edges(),i=n.eles.nodes(),a=tN(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:r.size(),temperature:n.initialTemp,clientWidth:a.w,clientHeight:a.h,boundingBox:a},s=n.eles.components(),l={},u=0;u<s.length;u++)for(var c=s[u],h=0;h<c.length;h++){var d=c[h];l[d.id()]=u}for(var u=0;u<o.nodeSize;u++){var p=i[u],f=p.layoutDimensions(n),g={};g.isLocked=p.locked(),g.id=p.data("id"),g.parentId=p.data("parent"),g.cmptId=l[p.id()],g.children=[],g.positionX=p.position("x"),g.positionY=p.position("y"),g.offsetX=0,g.offsetY=0,g.height=f.w,g.width=f.h,g.maxX=g.positionX+g.width/2,g.minX=g.positionX-g.width/2,g.maxY=g.positionY+g.height/2,g.minY=g.positionY-g.height/2,g.padLeft=parseFloat(p.style("padding")),g.padRight=parseFloat(p.style("padding")),g.padTop=parseFloat(p.style("padding")),g.padBottom=parseFloat(p.style("padding")),g.nodeRepulsion=T(n.nodeRepulsion)?n.nodeRepulsion(p):n.nodeRepulsion,o.layoutNodes.push(g),o.idToIndex[g.id]=u}for(var v=[],y=0,b=-1,x=[],u=0;u<o.nodeSize;u++){var p=o.layoutNodes[u],w=p.parentId;null!=w?o.layoutNodes[o.idToIndex[w]].children.push(p.id):(v[++b]=p.id,x.push(p.id))}for(o.graphSet.push(x);y<=b;){var E=v[y++],k=o.idToIndex[E],d=o.layoutNodes[k],C=d.children;if(C.length>0){o.graphSet.push(C);for(var u=0;u<C.length;u++)v[++b]=C[u]}}for(var u=0;u<o.graphSet.length;u++)for(var S=o.graphSet[u],h=0;h<S.length;h++){var D=o.idToIndex[S[h]];o.indexToGraph[D]=u}for(var u=0;u<o.edgeSize;u++){var P=r[u],_={};_.id=P.data("id"),_.sourceId=P.data("source"),_.targetId=P.data("target");var M=T(n.idealEdgeLength)?n.idealEdgeLength(P):n.idealEdgeLength,B=T(n.edgeElasticity)?n.edgeElasticity(P):n.edgeElasticity,A=o.idToIndex[_.sourceId],N=o.idToIndex[_.targetId];if(o.indexToGraph[A]!=o.indexToGraph[N]){for(var I=oc(_.sourceId,_.targetId,o),O=o.graphSet[I],L=0,g=o.layoutNodes[A];-1===O.indexOf(g.id);)g=o.layoutNodes[o.idToIndex[g.parentId]],L++;for(g=o.layoutNodes[N];-1===O.indexOf(g.id);)g=o.layoutNodes[o.idToIndex[g.parentId]],L++;M*=L*n.nestingFactor}_.idealLength=M,_.elasticity=B,o.layoutEdges.push(_)}return o},oc=function(e,t,n){var r=oh(e,t,0,n);return 2>r.count?0:r.graph},oh=function e(t,n,r,i){var a=i.graphSet[r];if(-1<a.indexOf(t)&&-1<a.indexOf(n))return{count:2,graph:r};for(var o=0,s=0;s<a.length;s++){var l=a[s],u=i.idToIndex[l],c=i.layoutNodes[u].children;if(0!==c.length){var h=e(t,n,i.indexToGraph[i.idToIndex[c[0]]],i);if(0!==h.count){if(1!==h.count)return h;if(2==++o)break}}}return{count:o,graph:r}},od=function(e,t){for(var n=e.clientWidth,r=e.clientHeight,i=0;i<e.nodeSize;i++){var a=e.layoutNodes[i];0!==a.children.length||a.isLocked||(a.positionX=Math.random()*n,a.positionY=Math.random()*r)}},op=function(e,t,n){var r=e.boundingBox,i={x1:1/0,x2:-1/0,y1:1/0,y2:-1/0};return t.boundingBox&&(n.forEach(function(t){var n=e.layoutNodes[e.idToIndex[t.data("id")]];i.x1=Math.min(i.x1,n.positionX),i.x2=Math.max(i.x2,n.positionX),i.y1=Math.min(i.y1,n.positionY),i.y2=Math.max(i.y2,n.positionY)}),i.w=i.x2-i.x1,i.h=i.y2-i.y1),function(n,a){var o=e.layoutNodes[e.idToIndex[n.data("id")]];if(!t.boundingBox)return{x:o.positionX,y:o.positionY};var s=(o.positionX-i.x1)/i.w,l=(o.positionY-i.y1)/i.h;return{x:r.x1+s*r.w,y:r.y1+l*r.h}}},of=function(e,t,n){var r=n.layout,i=n.eles.nodes(),a=op(e,n,i);i.positions(a),!0!==e.ready&&(e.ready=!0,r.one("layoutready",n.ready),r.emit({type:"layoutready",layout:this}))},og=function(e,t,n){ov(e,t),ow(e),oE(e,t),ok(e),oC(e)},ov=function(e,t){for(var n=0;n<e.graphSet.length;n++)for(var r=e.graphSet[n],i=r.length,a=0;a<i;a++)for(var o=e.layoutNodes[e.idToIndex[r[a]]],s=a+1;s<i;s++)om(o,e.layoutNodes[e.idToIndex[r[s]]],e,t)},oy=function(e){return-e+2*e*Math.random()},om=function(e,t,n,r){if(e.cmptId===t.cmptId||n.isCompound){var i=t.positionX-e.positionX,a=t.positionY-e.positionY;0===i&&0===a&&(i=oy(1),a=oy(1));var o=ob(e,t,i,a);if(o>0)var s=r.nodeOverlap*o,l=Math.sqrt(i*i+a*a),u=s*i/l,c=s*a/l;else var h=ox(e,i,a),d=ox(t,-1*i,-1*a),p=d.x-h.x,f=d.y-h.y,g=p*p+f*f,l=Math.sqrt(g),s=(e.nodeRepulsion+t.nodeRepulsion)/g,u=s*p/l,c=s*f/l;e.isLocked||(e.offsetX-=u,e.offsetY-=c),t.isLocked||(t.offsetX+=u,t.offsetY+=c)}},ob=function(e,t,n,r){if(n>0)var i=e.maxX-t.minX;else var i=t.maxX-e.minX;if(r>0)var a=e.maxY-t.minY;else var a=t.maxY-e.minY;return i>=0&&a>=0?Math.sqrt(i*i+a*a):0},ox=function(e,t,n){var r=e.positionX,i=e.positionY,a=e.height||1,o=e.width||1,s=n/t,l=a/o,u={};return 0===t&&0<n||0===t&&0>n?(u.x=r,u.y=i+a/2):0<t&&-1*l<=s&&s<=l?(u.x=r+o/2,u.y=i+o*n/2/t):0>t&&-1*l<=s&&s<=l?(u.x=r-o/2,u.y=i-o*n/2/t):0<n&&(s<=-1*l||s>=l)?(u.x=r+a*t/2/n,u.y=i+a/2):0>n&&(s<=-1*l||s>=l)&&(u.x=r-a*t/2/n,u.y=i-a/2),u},ow=function(e,t){for(var n=0;n<e.edgeSize;n++){var r=e.layoutEdges[n],i=e.idToIndex[r.sourceId],a=e.layoutNodes[i],o=e.idToIndex[r.targetId],s=e.layoutNodes[o],l=s.positionX-a.positionX,u=s.positionY-a.positionY;if(0!==l||0!==u){var c=ox(a,l,u),h=ox(s,-1*l,-1*u),d=h.x-c.x,p=h.y-c.y,f=Math.sqrt(d*d+p*p),g=Math.pow(r.idealLength-f,2)/r.elasticity;if(0!==f)var v=g*d/f,y=g*p/f;else var v=0,y=0;a.isLocked||(a.offsetX+=v,a.offsetY+=y),s.isLocked||(s.offsetX-=v,s.offsetY-=y)}}},oE=function(e,t){if(0!==t.gravity)for(var n=0;n<e.graphSet.length;n++){var r=e.graphSet[n],i=r.length;if(0===n)var a=e.clientHeight/2,o=e.clientWidth/2;else var s=e.layoutNodes[e.idToIndex[r[0]]],l=e.layoutNodes[e.idToIndex[s.parentId]],a=l.positionX,o=l.positionY;for(var u=0;u<i;u++){var c=e.layoutNodes[e.idToIndex[r[u]]];if(!c.isLocked){var h=a-c.positionX,d=o-c.positionY,p=Math.sqrt(h*h+d*d);if(p>1){var f=t.gravity*h/p,g=t.gravity*d/p;c.offsetX+=f,c.offsetY+=g}}}}},ok=function(e,t){var n=[],r=0,i=-1;for(n.push.apply(n,e.graphSet[0]),i+=e.graphSet[0].length;r<=i;){var a=n[r++],o=e.idToIndex[a],s=e.layoutNodes[o],l=s.children;if(0<l.length&&!s.isLocked){for(var u=s.offsetX,c=s.offsetY,h=0;h<l.length;h++){var d=e.layoutNodes[e.idToIndex[l[h]]];d.offsetX+=u,d.offsetY+=c,n[++i]=l[h]}s.offsetX=0,s.offsetY=0}}},oC=function(e,t){for(var n=0;n<e.nodeSize;n++){var r=e.layoutNodes[n];0<r.children.length&&(r.maxX=void 0,r.minX=void 0,r.maxY=void 0,r.minY=void 0)}for(var n=0;n<e.nodeSize;n++){var r=e.layoutNodes[n];if(!(0<r.children.length)&&!r.isLocked){var i=oS(r.offsetX,r.offsetY,e.temperature);r.positionX+=i.x,r.positionY+=i.y,r.offsetX=0,r.offsetY=0,r.minX=r.positionX-r.width,r.maxX=r.positionX+r.width,r.minY=r.positionY-r.height,r.maxY=r.positionY+r.height,oD(r,e)}}for(var n=0;n<e.nodeSize;n++){var r=e.layoutNodes[n];0<r.children.length&&!r.isLocked&&(r.positionX=(r.maxX+r.minX)/2,r.positionY=(r.maxY+r.minY)/2,r.width=r.maxX-r.minX,r.height=r.maxY-r.minY)}},oS=function(e,t,n){var r=Math.sqrt(e*e+t*t);if(r>n)var i={x:n*e/r,y:n*t/r};else var i={x:e,y:t};return i},oD=function e(t,n){var r=t.parentId;if(null!=r){var i=n.layoutNodes[n.idToIndex[r]],a=!1;if((null==i.maxX||t.maxX+i.padRight>i.maxX)&&(i.maxX=t.maxX+i.padRight,a=!0),(null==i.minX||t.minX-i.padLeft<i.minX)&&(i.minX=t.minX-i.padLeft,a=!0),(null==i.maxY||t.maxY+i.padBottom>i.maxY)&&(i.maxY=t.maxY+i.padBottom,a=!0),(null==i.minY||t.minY-i.padTop<i.minY)&&(i.minY=t.minY-i.padTop,a=!0),a)return e(i,n)}},oT=function(e,t){for(var n=e.layoutNodes,r=[],i=0;i<n.length;i++){var a=n[i],o=a.cmptId;(r[o]=r[o]||[]).push(a)}for(var s=0,i=0;i<r.length;i++){var l=r[i];if(l){l.x1=1/0,l.x2=-1/0,l.y1=1/0,l.y2=-1/0;for(var u=0;u<l.length;u++){var c=l[u];l.x1=Math.min(l.x1,c.positionX-c.width/2),l.x2=Math.max(l.x2,c.positionX+c.width/2),l.y1=Math.min(l.y1,c.positionY-c.height/2),l.y2=Math.max(l.y2,c.positionY+c.height/2)}l.w=l.x2-l.x1,l.h=l.y2-l.y1,s+=l.w*l.h}}r.sort(function(e,t){return t.w*t.h-e.w*e.h});for(var h=0,d=0,p=0,f=0,g=Math.sqrt(s)*e.clientWidth/e.clientHeight,i=0;i<r.length;i++){var l=r[i];if(l){for(var u=0;u<l.length;u++){var c=l[u];c.isLocked||(c.positionX+=h-l.x1,c.positionY+=d-l.y1)}h+=l.w+t.componentSpacing,p+=l.w+t.componentSpacing,f=Math.max(f,l.h),p>g&&(d+=f+t.componentSpacing,h=0,p=0,f=0)}}},oP={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function o_(e){this.options=Z({},oP,e)}o_.prototype.run=function(){var e=this.options,t=e.cy,n=e.eles,r=n.nodes().not(":parent");e.sort&&(r=r.sort(e.sort));var i=tN(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()});if(0===i.h||0===i.w)n.nodes().layoutPositions(this,e,function(e){return{x:i.x1,y:i.y1}});else{var a=r.size(),o=Math.sqrt(a*i.h/i.w),s=Math.round(o),l=Math.round(i.w/i.h*o),u=function(e){if(null==e)return Math.min(s,l);Math.min(s,l)==s?s=e:l=e},c=function(e){if(null==e)return Math.max(s,l);Math.max(s,l)==s?s=e:l=e},h=e.rows,d=null!=e.cols?e.cols:e.columns;if(null!=h&&null!=d)s=h,l=d;else if(null!=h&&null==d)l=Math.ceil(a/(s=h));else if(null==h&&null!=d)s=Math.ceil(a/(l=d));else if(l*s>a){var p=u(),f=c();(p-1)*f>=a?u(p-1):(f-1)*p>=a&&c(f-1)}else for(;l*s<a;){var g=u(),v=c();(v+1)*g>=a?c(v+1):u(g+1)}var y=i.w/l,b=i.h/s;if(e.condense&&(y=0,b=0),e.avoidOverlap)for(var x=0;x<r.length;x++){var w=r[x],E=w._private.position;(null==E.x||null==E.y)&&(E.x=0,E.y=0);var k=w.layoutDimensions(e),C=e.avoidOverlapPadding,S=k.w+C,D=k.h+C;y=Math.max(y,S),b=Math.max(b,D)}for(var T={},P=function(e,t){return!!T["c-"+e+"-"+t]},_=function(e,t){T["c-"+e+"-"+t]=!0},M=0,B=0,A=function(){++B>=l&&(B=0,M++)},N={},I=0;I<r.length;I++){var O=r[I],L=e.position(O);if(L&&(void 0!==L.row||void 0!==L.col)){var R={row:L.row,col:L.col};if(void 0===R.col)for(R.col=0;P(R.row,R.col);)R.col++;else if(void 0===R.row)for(R.row=0;P(R.row,R.col);)R.row++;N[O.id()]=R,_(R.row,R.col)}}r.layoutPositions(this,e,function(e,t){if(e.locked()||e.isParent())return!1;var n,r,a=N[e.id()];if(a)n=a.col*y+y/2+i.x1,r=a.row*b+b/2+i.y1;else{for(;P(M,B);)A();n=B*y+y/2+i.x1,r=M*b+b/2+i.y1,_(M,B),A()}return{x:n,y:r}})}return this};var oM={ready:function(){},stop:function(){}};function oB(e){this.options=Z({},oM,e)}oB.prototype.run=function(){var e=this.options,t=e.eles;return e.cy,this.emit("layoutstart"),t.nodes().positions(function(){return{x:0,y:0}}),this.one("layoutready",e.ready),this.emit("layoutready"),this.one("layoutstop",e.stop),this.emit("layoutstop"),this},oB.prototype.stop=function(){return this};var oA={positions:void 0,zoom:void 0,pan:void 0,fit:!0,padding:30,spacingFactor:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function oN(e){this.options=Z({},oA,e)}oN.prototype.run=function(){var e=this.options,t=e.eles.nodes(),n=T(e.positions);return t.layoutPositions(this,e,function(t,r){var i=function(t){if(null==e.positions){var r;return{x:(r=t.position()).x,y:r.y}}if(n)return e.positions(t);var i=e.positions[t._private.data.id];return null==i?null:i}(t);return!t.locked()&&null!=i&&i}),this};var oI={fit:!0,padding:30,boundingBox:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function oO(e){this.options=Z({},oI,e)}oO.prototype.run=function(){var e=this.options,t=e.cy,n=e.eles,r=tN(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()});return n.nodes().layoutPositions(this,e,function(e,t){return{x:r.x1+Math.round(Math.random()*r.w),y:r.y1+Math.round(Math.random()*r.h)}}),this};var oL=[{name:"breadthfirst",impl:on},{name:"circle",impl:oi},{name:"concentric",impl:oo},{name:"cose",impl:ol},{name:"grid",impl:o_},{name:"null",impl:oB},{name:"preset",impl:oN},{name:"random",impl:oO}];function oR(e){this.options=e,this.notifications=0}var oz=function(){},oV=function(){throw Error("A headless instance can not render images")};oR.prototype={recalculateRenderedStyle:oz,notify:function(){this.notifications++},init:oz,isHeadless:function(){return!0},png:oV,jpg:oV};var oF={};oF.arrowShapeWidth=.3,oF.registerArrowShapes=function(){var e=this.arrowShapes={},t=this,n=function(e,t,n,r,i,a,o){var s=i.x-n/2-o,l=i.x+n/2+o,u=i.y-n/2-o,c=i.y+n/2+o;return s<=e&&e<=l&&u<=t&&t<=c},r=function(e,t,n,r,i){var a=e*Math.cos(r)-t*Math.sin(r),o=e*Math.sin(r)+t*Math.cos(r);return{x:a*n+i.x,y:o*n+i.y}},i=function(e,t,n,i){for(var a=[],o=0;o<e.length;o+=2){var s=e[o],l=e[o+1];a.push(r(s,l,t,n,i))}return a},a=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push(r.x,r.y)}return t},o=function(e){return e.pstyle("width").pfValue*e.pstyle("arrow-scale").pfValue*2},s=function(r,s){D(s)&&(s=e[s]),e[r]=Z({name:r,points:[-.15,-.3,.15,-.3,.15,.3,-.15,.3],collide:function(e,t,n,r,o,s){return tZ(e,t,a(i(this.points,n+2*s,r,o)))},roughCollide:n,draw:function(e,n,r,a){var o=i(this.points,n,r,a);t.arrowShapeImpl("polygon")(e,o)},spacing:function(e){return 0},gap:o},s)};s("none",{collide:eK,roughCollide:eK,draw:e$,spacing:eZ,gap:eZ}),s("triangle",{points:[-.15,-.3,0,0,.15,-.3]}),s("arrow","triangle"),s("triangle-backcurve",{points:e.triangle.points,controlPoint:[0,-.15],roughCollide:n,draw:function(e,n,a,o,s){var l=i(this.points,n,a,o),u=this.controlPoint,c=r(u[0],u[1],n,a,o);t.arrowShapeImpl(this.name)(e,l,c)},gap:function(e){return .8*o(e)}}),s("triangle-tee",{points:[0,0,.15,-.3,-.15,-.3,0,0],pointsTee:[-.15,-.4,-.15,-.5,.15,-.5,.15,-.4],collide:function(e,t,n,r,o,s,l){var u=a(i(this.points,n+2*l,r,o)),c=a(i(this.pointsTee,n+2*l,r,o));return tZ(e,t,u)||tZ(e,t,c)},draw:function(e,n,r,a,o){var s=i(this.points,n,r,a),l=i(this.pointsTee,n,r,a);t.arrowShapeImpl(this.name)(e,s,l)}}),s("circle-triangle",{radius:.15,pointsTr:[0,-.15,.15,-.45,-.15,-.45,0,-.15],collide:function(e,t,n,r,o,s,l){var u=Math.pow(o.x-e,2)+Math.pow(o.y-t,2)<=Math.pow((n+2*l)*this.radius,2);return tZ(e,t,a(i(this.points,n+2*l,r,o)))||u},draw:function(e,n,r,a,o){var s=i(this.pointsTr,n,r,a);t.arrowShapeImpl(this.name)(e,s,a.x,a.y,this.radius*n)},spacing:function(e){return t.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.radius}}),s("triangle-cross",{points:[0,0,.15,-.3,-.15,-.3,0,0],baseCrossLinePts:[-.15,-.4,-.15,-.4,.15,-.4,.15,-.4],crossLinePts:function(e,t){var n=this.baseCrossLinePts.slice(),r=t/e;return n[3]=n[3]-r,n[5]=n[5]-r,n},collide:function(e,t,n,r,o,s,l){var u=a(i(this.points,n+2*l,r,o)),c=a(i(this.crossLinePts(n,s),n+2*l,r,o));return tZ(e,t,u)||tZ(e,t,c)},draw:function(e,n,r,a,o){var s=i(this.points,n,r,a),l=i(this.crossLinePts(n,o),n,r,a);t.arrowShapeImpl(this.name)(e,s,l)}}),s("vee",{points:[-.15,-.3,0,0,.15,-.3,0,-.15],gap:function(e){return .525*o(e)}}),s("circle",{radius:.15,collide:function(e,t,n,r,i,a,o){return Math.pow(i.x-e,2)+Math.pow(i.y-t,2)<=Math.pow((n+2*o)*this.radius,2)},draw:function(e,n,r,i,a){t.arrowShapeImpl(this.name)(e,i.x,i.y,this.radius*n)},spacing:function(e){return t.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.radius}}),s("tee",{points:[-.15,0,-.15,-.1,.15,-.1,.15,0],spacing:function(e){return 1},gap:function(e){return 1}}),s("square",{points:[-.15,0,.15,0,.15,-.3,-.15,-.3]}),s("diamond",{points:[-.15,-.15,0,-.3,.15,-.15,0,0],gap:function(e){return e.pstyle("width").pfValue*e.pstyle("arrow-scale").value}}),s("chevron",{points:[0,0,-.15,-.15,-.1,-.2,0,-.1,.1,-.2,.15,-.15],gap:function(e){return .95*e.pstyle("width").pfValue*e.pstyle("arrow-scale").value}})};var oj={};oj.projectIntoViewport=function(e,t){var n=this.cy,r=this.findContainerClientCoords(),i=r[0],a=r[1],o=r[4],s=n.pan(),l=n.zoom();return[((e-i)/o-s.x)/l,((t-a)/o-s.y)/l]},oj.findContainerClientCoords=function(){if(this.containerBB)return this.containerBB;var e=this.container,t=e.getBoundingClientRect(),n=this.cy.window().getComputedStyle(e),r=function(e){return parseFloat(n.getPropertyValue(e))},i={left:r("padding-left"),right:r("padding-right"),top:r("padding-top"),bottom:r("padding-bottom")},a={left:r("border-left-width"),right:r("border-right-width"),top:r("border-top-width"),bottom:r("border-bottom-width")},o=e.clientWidth,s=e.clientHeight,l=i.left+i.right,u=i.top+i.bottom,c=a.left+a.right,h=t.width/(o+c),d=t.left+i.left+a.left,p=t.top+i.top+a.top;return this.containerBB=[d,p,o-l,s-u,h]},oj.invalidateContainerClientCoordsCache=function(){this.containerBB=null},oj.findNearestElement=function(e,t,n,r){return this.findNearestElements(e,t,n,r)[0]},oj.findNearestElements=function(e,t,n,r){var i,a,o=this,s=this,l=s.getCachedZSortedEles(),u=[],c=s.cy.zoom(),h=s.cy.hasCompoundNodes(),d=(r?24:8)/c,p=(r?8:2)/c,f=(r?8:2)/c,g=1/0;function v(e,t){if(e.isNode()){if(a)return;a=e,u.push(e)}if(e.isEdge()&&(null==t||t<g)){if(i){if(i.pstyle("z-compound-depth").value===e.pstyle("z-compound-depth").value&&i.pstyle("z-compound-depth").value===e.pstyle("z-compound-depth").value){for(var n=0;n<u.length;n++)if(u[n].isEdge()){u[n]=e,i=e,g=null!=t?t:g;break}}}else u.push(e),i=e,g=null!=t?t:g}}function y(n){var r=n.outerWidth()+2*p,i=n.outerHeight()+2*p,a=r/2,l=i/2,u=n.position(),c="auto"===n.pstyle("corner-radius").value?"auto":n.pstyle("corner-radius").pfValue,h=n._private.rscratch;if(u.x-a<=e&&e<=u.x+a&&u.y-l<=t&&t<=u.y+l&&s.nodeShapes[o.getNodeShape(n)].checkPoint(e,t,0,r,i,u.x,u.y,c,h))return v(n,0),!0}function b(n,r){var i,a=n._private;i=r?r+"-":"",n.boundingBox();var o=a.labelBounds[r||"main"],s=n.pstyle(i+"label").value;if("yes"===n.pstyle("text-events").strValue&&s){var l=e7(a.rscratch,"labelX",r),u=e7(a.rscratch,"labelY",r),c=e7(a.rscratch,"labelAngle",r),h=n.pstyle(i+"text-margin-x").pfValue,d=n.pstyle(i+"text-margin-y").pfValue,p=o.x1-f-h,g=o.x2+f-h,y=o.y1-f-d,b=o.y2+f-d;if(c){var x=Math.cos(c),w=Math.sin(c),E=function(e,t){return{x:(e-=l)*x-(t-=u)*w+l,y:e*w+t*x+u}},k=E(p,y),C=E(p,b),S=E(g,y),D=E(g,b);if(tZ(e,t,[k.x+h,k.y+d,S.x+h,S.y+d,D.x+h,D.y+d,C.x+h,C.y+d]))return v(n),!0}else if(tj(o,e,t))return v(n),!0}}n&&(l=l.interactive);for(var x=l.length-1;x>=0;x--){var w=l[x];w.isNode()?y(w)||b(w):function(n){var r,i=n._private,a=i.rscratch,l=n.pstyle("width").pfValue,c=n.pstyle("arrow-scale").value,p=l/2+d,f=p*p,g=2*p,b=i.source,x=i.target;if("segments"===a.edgeType||"straight"===a.edgeType||"haystack"===a.edgeType){for(var w=a.allpts,E=0;E+3<w.length;E+=2)if(tY(e,t,w[E],w[E+1],w[E+2],w[E+3],g)&&f>(r=tK(e,t,w[E],w[E+1],w[E+2],w[E+3])))return v(n,r),!0}else if("bezier"===a.edgeType||"multibezier"===a.edgeType||"self"===a.edgeType||"compound"===a.edgeType){for(var w=a.allpts,E=0;E+5<a.allpts.length;E+=4)if(tW(e,t,w[E],w[E+1],w[E+2],w[E+3],w[E+4],w[E+5],g)&&f>(r=tU(e,t,w[E],w[E+1],w[E+2],w[E+3],w[E+4],w[E+5])))return v(n,r),!0}for(var b=b||i.source,x=x||i.target,k=o.getArrowWidth(l,c),C=[{name:"source",x:a.arrowStartX,y:a.arrowStartY,angle:a.srcArrowAngle},{name:"target",x:a.arrowEndX,y:a.arrowEndY,angle:a.tgtArrowAngle},{name:"mid-source",x:a.midX,y:a.midY,angle:a.midsrcArrowAngle},{name:"mid-target",x:a.midX,y:a.midY,angle:a.midtgtArrowAngle}],E=0;E<C.length;E++){var S=C[E],D=s.arrowShapes[n.pstyle(S.name+"-arrow-shape").value],T=n.pstyle("width").pfValue;if(D.roughCollide(e,t,k,S.angle,{x:S.x,y:S.y},T,d)&&D.collide(e,t,k,S.angle,{x:S.x,y:S.y},T,d))return v(n),!0}h&&u.length>0&&(y(b),y(x))}(w)||b(w)||b(w,"source")||b(w,"target")}return u},oj.getAllInBox=function(e,t,n,r){var i=this.getCachedZSortedEles().interactive,a=[],o=Math.min(e,n),s=Math.max(e,n),l=Math.min(t,r),u=Math.max(t,r);e=o,n=s;for(var c=tN({x1:e,y1:t=l,x2:n,y2:r=u}),h=0;h<i.length;h++){var d=i[h];if(d.isNode()){var p=d.boundingBox({includeNodes:!0,includeEdges:!1,includeLabels:!1});tF(c,p)&&!tq(p,c)&&a.push(d)}else{var f=d._private,g=f.rscratch;if(null!=g.startX&&null!=g.startY&&!tj(c,g.startX,g.startY)||null!=g.endX&&null!=g.endY&&!tj(c,g.endX,g.endY))continue;if("bezier"===g.edgeType||"multibezier"===g.edgeType||"self"===g.edgeType||"compound"===g.edgeType||"segments"===g.edgeType||"haystack"===g.edgeType){for(var v,y=f.rstyle.bezierPts||f.rstyle.linePts||f.rstyle.haystackPts,b=!0,x=0;x<y.length;x++)if(!tj(c,(v=y[x]).x,v.y)){b=!1;break}b&&a.push(d)}else("haystack"===g.edgeType||"straight"===g.edgeType)&&a.push(d)}}return a};var oq={};oq.calculateArrowAngles=function(e){var t=e._private.rscratch,n="haystack"===t.edgeType,r="bezier"===t.edgeType,i="multibezier"===t.edgeType,a="segments"===t.edgeType,o="compound"===t.edgeType,s="self"===t.edgeType;if(n?(y=t.haystackPts[0],b=t.haystackPts[1],x=t.haystackPts[2],w=t.haystackPts[3]):(y=t.arrowStartX,b=t.arrowStartY,x=t.arrowEndX,w=t.arrowEndY),h=t.midX,d=t.midY,a)g=y-t.segpts[0],v=b-t.segpts[1];else if(i||o||s||r){var l=t.allpts,u=t_(l[0],l[2],l[4],.1),c=t_(l[1],l[3],l[5],.1);g=y-u,v=b-c}else g=y-h,v=b-d;t.srcArrowAngle=tk(g,v);var h=t.midX,d=t.midY;if(n&&(h=(y+x)/2,d=(b+w)/2),g=x-y,v=w-b,a){var l=t.allpts;if(l.length/2%2==0){var p=l.length/2,f=p-2;g=l[p]-l[f],v=l[p+1]-l[f+1]}else if(t.isRound)g=t.midVector[1],v=-t.midVector[0];else{var p=l.length/2-1,f=p-2;g=l[p]-l[f],v=l[p+1]-l[f+1]}}else if(i||o||s){var g,v,y,b,x,w,h,d,E,k,C,S,l=t.allpts;if(t.ctrlpts.length/2%2==0){var D=l.length/2-1,T=D+2,P=T+2;E=t_(l[D],l[T],l[P],0),k=t_(l[D+1],l[T+1],l[P+1],0),C=t_(l[D],l[T],l[P],1e-4),S=t_(l[D+1],l[T+1],l[P+1],1e-4)}else{var T=l.length/2-1,D=T-2,P=T+2;E=t_(l[D],l[T],l[P],.4999),k=t_(l[D+1],l[T+1],l[P+1],.4999),C=t_(l[D],l[T],l[P],.5),S=t_(l[D+1],l[T+1],l[P+1],.5)}g=C-E,v=S-k}if(t.midtgtArrowAngle=tk(g,v),t.midDispX=g,t.midDispY=v,g*=-1,v*=-1,a){var l=t.allpts;if(l.length/2%2==0);else if(!t.isRound){var p=l.length/2-1,_=p+2;g=-(l[_]-l[p]),v=-(l[_+1]-l[p+1])}}if(t.midsrcArrowAngle=tk(g,v),a)g=x-t.segpts[t.segpts.length-2],v=w-t.segpts[t.segpts.length-1];else if(i||o||s||r){var l=t.allpts,M=l.length,u=t_(l[M-6],l[M-4],l[M-2],.9),c=t_(l[M-5],l[M-3],l[M-1],.9);g=x-u,v=w-c}else g=x-h,v=w-d;t.tgtArrowAngle=tk(g,v)},oq.getArrowWidth=oq.getArrowHeight=function(e,t){var n=this.arrowWidthCache=this.arrowWidthCache||{},r=n[e+", "+t];return r||(r=Math.max(Math.pow(13.37*e,.9),29)*t,n[e+", "+t]=r),r};var oX,oY,oW,oH,oG,oU,oK,oZ,o$,oQ,oJ,o0,o1,o2,o5,o3,o4,o9,o6,o8,o7,se,st,sn,sr,si,sa,so={},ss={},sl=function(e,t,n){n.x=t.x-e.x,n.y=t.y-e.y,n.len=Math.sqrt(n.x*n.x+n.y*n.y),n.nx=n.x/n.len,n.ny=n.y/n.len,n.ang=Math.atan2(n.ny,n.nx)},su=function(e,t){t.x=-1*e.x,t.y=-1*e.y,t.nx=-1*e.nx,t.ny=-1*e.ny,t.ang=e.ang>0?-(Math.PI-e.ang):Math.PI+e.ang},sc=function(e,t,n,r,i){if(e!==v?sl(t,e,so):su(ss,so),sl(t,n,ss),o9=so.nx*ss.ny-so.ny*ss.nx,o6=so.nx*ss.nx- -(so.ny*ss.ny),1e-6>Math.abs(se=Math.asin(Math.max(-1,Math.min(1,o9))))){o3=t.x,o4=t.y,sn=si=0;return}o8=1,o7=!1,o6<0?se<0?se=Math.PI+se:(se=Math.PI-se,o8=-1,o7=!0):se>0&&(o8=-1,o7=!0),si=void 0!==t.radius?t.radius:r,st=se/2,sa=Math.min(so.len/2,ss.len/2),sn=i?(sr=Math.abs(Math.cos(st)*si/Math.sin(st)))>sa?Math.abs((sr=sa)*Math.sin(st)/Math.cos(st)):si:Math.abs((sr=Math.min(sa,si))*Math.sin(st)/Math.cos(st)),f=t.x+ss.nx*sr,g=t.y+ss.ny*sr,o3=f-ss.ny*sn*o8,o4=g+ss.nx*sn*o8,d=t.x+so.nx*sr,p=t.y+so.ny*sr,v=t};function sh(e,t){0===t.radius?e.lineTo(t.cx,t.cy):e.arc(t.cx,t.cy,t.radius,t.startAngle,t.endAngle,t.counterClockwise)}function sd(e,t,n,r){var i=!(arguments.length>4)||void 0===arguments[4]||arguments[4];return 0===r||0===t.radius?{cx:t.x,cy:t.y,radius:0,startX:t.x,startY:t.y,stopX:t.x,stopY:t.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(sc(e,t,n,r,i),{cx:o3,cy:o4,radius:sn,startX:d,startY:p,stopX:f,stopY:g,startAngle:so.ang+Math.PI/2*o8,endAngle:ss.ang-Math.PI/2*o8,counterClockwise:o7})}var sp={};function sf(e){var t=[];if(null!=e){for(var n=0;n<e.length;n+=2){var r=e[n],i=e[n+1];t.push({x:r,y:i})}return t}}sp.findMidptPtsEtc=function(e,t){var n,r=t.posPts,i=t.intersectionPts,a=t.vectorNormInverse,o=e.pstyle("source-endpoint"),s=e.pstyle("target-endpoint"),u=null!=o.units&&null!=s.units;switch(e.pstyle("edge-distances").value){case"node-position":n=r;break;case"intersection":n=i;break;case"endpoints":if(u){var c,h,d,p=l(this.manualEndptToPx(e.source()[0],o),2),f=p[0],g=p[1],v=l(this.manualEndptToPx(e.target()[0],s),2),y=v[0],b=v[1];c=b-g,d=Math.sqrt((h=y-f)*h+c*c),a={x:-c/d,y:h/d},n={x1:f,y1:g,x2:y,y2:b}}else e0("Edge ".concat(e.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),n=i}return{midptPts:n,vectorNormInverse:a}},sp.findHaystackPoints=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=n._private,i=r.rscratch;if(!i.haystack){var a=2*Math.random()*Math.PI;i.source={x:Math.cos(a),y:Math.sin(a)},a=2*Math.random()*Math.PI,i.target={x:Math.cos(a),y:Math.sin(a)}}var o=r.source,s=r.target,l=o.position(),u=s.position(),c=o.width(),h=s.width(),d=o.height(),p=s.height(),f=n.pstyle("haystack-radius").value/2;i.haystackPts=i.allpts=[i.source.x*c*f+l.x,i.source.y*d*f+l.y,i.target.x*h*f+u.x,i.target.y*p*f+u.y],i.midX=(i.allpts[0]+i.allpts[2])/2,i.midY=(i.allpts[1]+i.allpts[3])/2,i.edgeType="haystack",i.haystack=!0,this.storeEdgeProjections(n),this.calculateArrowAngles(n),this.recalculateEdgeLabelProjections(n),this.calculateLabelAngles(n)}},sp.findSegmentsPoints=function(e,t){var n=e._private.rscratch,r=e.pstyle("segment-weights"),i=e.pstyle("segment-distances"),a=e.pstyle("segment-radii"),o=e.pstyle("radius-type"),s=Math.min(r.pfValue.length,i.pfValue.length),l=a.pfValue[a.pfValue.length-1],u=o.pfValue[o.pfValue.length-1];n.edgeType="segments",n.segpts=[],n.radii=[],n.isArcRadius=[];for(var c=0;c<s;c++){var h=r.pfValue[c],d=i.pfValue[c],p=1-h,f=this.findMidptPtsEtc(e,t),g=f.midptPts,v=f.vectorNormInverse,y={x:g.x1*p+g.x2*h,y:g.y1*p+g.y2*h};n.segpts.push(y.x+v.x*d,y.y+v.y*d),n.radii.push(void 0!==a.pfValue[c]?a.pfValue[c]:l),n.isArcRadius.push((void 0!==o.pfValue[c]?o.pfValue[c]:u)==="arc-radius")}},sp.findLoopPoints=function(e,t,n,r){var i=e._private.rscratch,a=t.dirCounts,o=t.srcPos,s=e.pstyle("control-point-distances"),l=s?s.pfValue[0]:void 0,u=e.pstyle("loop-direction").pfValue,c=e.pstyle("loop-sweep").pfValue,h=e.pstyle("control-point-step-size").pfValue;i.edgeType="self";var d=n,p=h;r&&(d=0,p=l);var f=u-Math.PI/2,g=f-c/2,v=f+c/2,y=String(u+"_"+c);d=void 0===a[y]?a[y]=0:++a[y],i.ctrlpts=[o.x+1.4*Math.cos(g)*p*(d/3+1),o.y+1.4*Math.sin(g)*p*(d/3+1),o.x+1.4*Math.cos(v)*p*(d/3+1),o.y+1.4*Math.sin(v)*p*(d/3+1)]},sp.findCompoundLoopPoints=function(e,t,n,r){var i=e._private.rscratch;i.edgeType="compound";var a=t.srcPos,o=t.tgtPos,s=t.srcW,l=t.srcH,u=t.tgtW,c=t.tgtH,h=e.pstyle("control-point-step-size").pfValue,d=e.pstyle("control-point-distances"),p=d?d.pfValue[0]:void 0,f=n,g=h;r&&(f=0,g=p);var v={x:a.x-s/2,y:a.y-l/2},y={x:o.x-u/2,y:o.y-c/2},b={x:Math.min(v.x,y.x),y:Math.min(v.y,y.y)},x=Math.max(.5,Math.log(.01*s)),w=Math.max(.5,Math.log(.01*u));i.ctrlpts=[b.x,b.y-1.7995514309304248*g*(f/3+1)*x,b.x-1.7995514309304248*g*(f/3+1)*w,b.y]},sp.findStraightEdgePoints=function(e){e._private.rscratch.edgeType="straight"},sp.findBezierPoints=function(e,t,n,r,i){var a=e._private.rscratch,o=e.pstyle("control-point-step-size").pfValue,s=e.pstyle("control-point-distances"),l=e.pstyle("control-point-weights"),u=s&&l?Math.min(s.value.length,l.value.length):1,c=s?s.pfValue[0]:void 0,h=l.value[0];a.edgeType=r?"multibezier":"bezier",a.ctrlpts=[];for(var d=0;d<u;d++){var p=(.5-t.eles.length/2+n)*o*(i?-1:1),f=void 0,g=tS(p);r&&(c=s?s.pfValue[d]:o,h=l.value[d]);var v=void 0!==(f=r?c:void 0!==c?g*c:void 0)?f:p,y=1-h,b=h,x=this.findMidptPtsEtc(e,t),w=x.midptPts,E=x.vectorNormInverse,k={x:w.x1*y+w.x2*b,y:w.y1*y+w.y2*b};a.ctrlpts.push(k.x+E.x*v,k.y+E.y*v)}},sp.findTaxiPoints=function(e,t){var n,r=e._private.rscratch;r.edgeType="segments";var i="vertical",a="horizontal",o="leftward",s="rightward",l="downward",u="upward",c=t.posPts,h=t.srcW,d=t.srcH,p=t.tgtW,f=t.tgtH,g="node-position"!==e.pstyle("edge-distances").value,v=e.pstyle("taxi-direction").value,y=v,b=e.pstyle("taxi-turn"),x="%"===b.units,w=b.pfValue,E=e.pstyle("taxi-turn-min-distance").pfValue,k=c.x2-c.x1,C=c.y2-c.y1,S=function(e,t){return e>0?Math.max(e-t,0):Math.min(e+t,0)},D=S(k,g?(h+p)/2:0),T=S(C,g?(d+f)/2:0),P=!1;"auto"===y?v=Math.abs(D)>Math.abs(T)?a:i:y===u||y===l?(v=i,P=!0):(y===o||y===s)&&(v=a,P=!0);var _=v===i,M=_?T:D,B=_?C:k,A=tS(B),N=!1;!(P&&(x||w<0))&&(y===l&&B<0||y===u&&B>0||y===o&&B>0||y===s&&B<0)&&(A*=-1,M=A*Math.abs(M),N=!0);var I=function(e){return Math.abs(e)<E||Math.abs(e)>=Math.abs(M)},O=I(n=x?(w<0?1+w:w)*M:(w<0?M:0)+w*A),L=I(Math.abs(M)-Math.abs(n));if((O||L)&&!N){if(_){var R=Math.abs(k)<=p/2;if(Math.abs(B)<=d/2){var z=(c.x1+c.x2)/2,V=c.y1,F=c.y2;r.segpts=[z,V,z,F]}else if(R){var j=(c.y1+c.y2)/2,q=c.x1,X=c.x2;r.segpts=[q,j,X,j]}else r.segpts=[c.x1,c.y2]}else{var Y=Math.abs(C)<=f/2;if(Math.abs(B)<=h/2){var W=(c.y1+c.y2)/2,H=c.x1,G=c.x2;r.segpts=[H,W,G,W]}else if(Y){var U=(c.x1+c.x2)/2,K=c.y1,Z=c.y2;r.segpts=[U,K,U,Z]}else r.segpts=[c.x2,c.y1]}}else if(_){var $=c.y1+n+(g?d/2*A:0),Q=c.x1,J=c.x2;r.segpts=[Q,$,J,$]}else{var ee=c.x1+n+(g?h/2*A:0),et=c.y1,en=c.y2;r.segpts=[ee,et,ee,en]}if(r.isRound){var er=e.pstyle("taxi-radius").value,ei="arc-radius"===e.pstyle("radius-type").value[0];r.radii=Array(r.segpts.length/2).fill(er),r.isArcRadius=Array(r.segpts.length/2).fill(ei)}},sp.tryToCorrectInvalidPoints=function(e,t){var n=e._private.rscratch;if("bezier"===n.edgeType){var r=t.srcPos,i=t.tgtPos,a=t.srcW,o=t.srcH,s=t.tgtW,l=t.tgtH,u=t.srcShape,c=t.tgtShape,h=t.srcCornerRadius,d=t.tgtCornerRadius,p=t.srcRs,f=t.tgtRs,g=!M(n.startX)||!M(n.startY),v=!M(n.arrowStartX)||!M(n.arrowStartY),y=!M(n.endX)||!M(n.endY),b=!M(n.arrowEndX)||!M(n.arrowEndY),x=3*(this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth),w=tD({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.startX,y:n.startY}),E=w<x,k=tD({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.endX,y:n.endY}),C=k<x,S=!1;if(g||v||E){S=!0;var D={x:n.ctrlpts[0]-r.x,y:n.ctrlpts[1]-r.y},T=Math.sqrt(D.x*D.x+D.y*D.y),P={x:D.x/T,y:D.y/T},_=Math.max(a,o),B={x:n.ctrlpts[0]+2*P.x*_,y:n.ctrlpts[1]+2*P.y*_},A=u.intersectLine(r.x,r.y,a,o,B.x,B.y,0,h,p);E?(n.ctrlpts[0]=n.ctrlpts[0]+P.x*(x-w),n.ctrlpts[1]=n.ctrlpts[1]+P.y*(x-w)):(n.ctrlpts[0]=A[0]+P.x*x,n.ctrlpts[1]=A[1]+P.y*x)}if(y||b||C){S=!0;var N={x:n.ctrlpts[0]-i.x,y:n.ctrlpts[1]-i.y},I=Math.sqrt(N.x*N.x+N.y*N.y),O={x:N.x/I,y:N.y/I},L=Math.max(a,o),R={x:n.ctrlpts[0]+2*O.x*L,y:n.ctrlpts[1]+2*O.y*L},z=c.intersectLine(i.x,i.y,s,l,R.x,R.y,0,d,f);C?(n.ctrlpts[0]=n.ctrlpts[0]+O.x*(x-k),n.ctrlpts[1]=n.ctrlpts[1]+O.y*(x-k)):(n.ctrlpts[0]=z[0]+O.x*x,n.ctrlpts[1]=z[1]+O.y*x)}S&&this.findEndpoints(e)}},sp.storeAllpts=function(e){var t=e._private.rscratch;if("multibezier"===t.edgeType||"bezier"===t.edgeType||"self"===t.edgeType||"compound"===t.edgeType){t.allpts=[],t.allpts.push(t.startX,t.startY);for(var n,r=0;r+1<t.ctrlpts.length;r+=2)t.allpts.push(t.ctrlpts[r],t.ctrlpts[r+1]),r+3<t.ctrlpts.length&&t.allpts.push((t.ctrlpts[r]+t.ctrlpts[r+2])/2,(t.ctrlpts[r+1]+t.ctrlpts[r+3])/2);(t.allpts.push(t.endX,t.endY),t.ctrlpts.length/2%2==0)?(n=t.allpts.length/2-1,t.midX=t.allpts[n],t.midY=t.allpts[n+1]):(n=t.allpts.length/2-3,t.midX=t_(t.allpts[n],t.allpts[n+2],t.allpts[n+4],.5),t.midY=t_(t.allpts[n+1],t.allpts[n+3],t.allpts[n+5],.5))}else if("straight"===t.edgeType)t.allpts=[t.startX,t.startY,t.endX,t.endY],t.midX=(t.startX+t.endX+t.arrowStartX+t.arrowEndX)/4,t.midY=(t.startY+t.endY+t.arrowStartY+t.arrowEndY)/4;else if("segments"===t.edgeType){if(t.allpts=[],t.allpts.push(t.startX,t.startY),t.allpts.push.apply(t.allpts,t.segpts),t.allpts.push(t.endX,t.endY),t.isRound){t.roundCorners=[];for(var i=2;i+3<t.allpts.length;i+=2){var a=t.radii[i/2-1],o=t.isArcRadius[i/2-1];t.roundCorners.push(sd({x:t.allpts[i-2],y:t.allpts[i-1]},{x:t.allpts[i],y:t.allpts[i+1],radius:a},{x:t.allpts[i+2],y:t.allpts[i+3]},a,o))}}if(t.segpts.length%4==0){var s=t.segpts.length/2,l=s-2;t.midX=(t.segpts[l]+t.segpts[s])/2,t.midY=(t.segpts[l+1]+t.segpts[s+1])/2}else{var u=t.segpts.length/2-1;if(t.isRound){var c={x:t.segpts[u],y:t.segpts[u+1]},h=t.roundCorners[u/2],d=[c.x-h.cx,c.y-h.cy],p=h.radius/Math.sqrt(Math.pow(d[0],2)+Math.pow(d[1],2));d=d.map(function(e){return e*p}),t.midX=h.cx+d[0],t.midY=h.cy+d[1],t.midVector=d}else t.midX=t.segpts[u],t.midY=t.segpts[u+1]}}},sp.checkForInvalidEdgeWarning=function(e){var t=e[0]._private.rscratch;t.nodesOverlap||M(t.startX)&&M(t.startY)&&M(t.endX)&&M(t.endY)?t.loggedErr=!1:t.loggedErr||(t.loggedErr=!0,e0("Edge `"+e.id()+"` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap."))},sp.findEdgeControlPoints=function(e){var t=this;if(e&&0!==e.length){for(var n=this,r=n.cy.hasCompoundNodes(),i={map:new tn,get:function(e){var t=this.map.get(e[0]);return null!=t?t.get(e[1]):null},set:function(e,t){var n=this.map.get(e[0]);null==n&&(n=new tn,this.map.set(e[0],n)),n.set(e[1],t)}},a=[],o=[],s=0;s<e.length;s++){var l=e[s],u=l._private,c=l.pstyle("curve-style").value;if(!l.removed()&&l.takesUpSpace()){if("haystack"===c){o.push(l);continue}var h="unbundled-bezier"===c||c.endsWith("segments")||"straight"===c||"straight-triangle"===c||c.endsWith("taxi"),d="unbundled-bezier"===c||"bezier"===c,p=u.source,f=u.target,g=[p.poolIndex(),f.poolIndex()].sort(),v=i.get(g);null==v&&(v={eles:[]},i.set(g,v),a.push(g)),v.eles.push(l),h&&(v.hasUnbundled=!0),d&&(v.hasBezier=!0)}}for(var y=0;y<a.length;y++)!function(e){var o=a[e],s=i.get(o),l=void 0;if(!s.hasUnbundled){var u=s.eles[0].parallelEdges().filter(function(e){return e.isBundledBezier()});e6(s.eles),u.forEach(function(e){return s.eles.push(e)}),s.eles.sort(function(e,t){return e.poolIndex()-t.poolIndex()})}var c=s.eles[0],h=c.source(),d=c.target();if(h.poolIndex()>d.poolIndex()){var p=h;h=d,d=p}var f=s.srcPos=h.position(),g=s.tgtPos=d.position(),v=s.srcW=h.outerWidth(),y=s.srcH=h.outerHeight(),b=s.tgtW=d.outerWidth(),x=s.tgtH=d.outerHeight(),w=s.srcShape=n.nodeShapes[t.getNodeShape(h)],E=s.tgtShape=n.nodeShapes[t.getNodeShape(d)],k=s.srcCornerRadius="auto"===h.pstyle("corner-radius").value?"auto":h.pstyle("corner-radius").pfValue,C=s.tgtCornerRadius="auto"===d.pstyle("corner-radius").value?"auto":d.pstyle("corner-radius").pfValue,S=s.tgtRs=d._private.rscratch,D=s.srcRs=h._private.rscratch;s.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var T=0;T<s.eles.length;T++){var P=s.eles[T],_=P[0]._private.rscratch,B=P.pstyle("curve-style").value,A="unbundled-bezier"===B||B.endsWith("segments")||B.endsWith("taxi"),N=!h.same(P.source());if(!s.calculatedIntersection&&h!==d&&(s.hasBezier||s.hasUnbundled)){s.calculatedIntersection=!0;var I=w.intersectLine(f.x,f.y,v,y,g.x,g.y,0,k,D),O=s.srcIntn=I,L=E.intersectLine(g.x,g.y,b,x,f.x,f.y,0,C,S),R=s.tgtIntn=L,z=s.intersectionPts={x1:I[0],x2:L[0],y1:I[1],y2:L[1]},V=s.posPts={x1:f.x,x2:g.x,y1:f.y,y2:g.y},F=L[1]-I[1],j=L[0]-I[0],q=Math.sqrt(j*j+F*F),X=s.vector={x:j,y:F},Y=s.vectorNorm={x:X.x/q,y:X.y/q},W={x:-Y.y,y:Y.x};s.nodesOverlap=!M(q)||E.checkPoint(I[0],I[1],0,b,x,g.x,g.y,C,S)||w.checkPoint(L[0],L[1],0,v,y,f.x,f.y,k,D),s.vectorNormInverse=W,l={nodesOverlap:s.nodesOverlap,dirCounts:s.dirCounts,calculatedIntersection:!0,hasBezier:s.hasBezier,hasUnbundled:s.hasUnbundled,eles:s.eles,srcPos:g,tgtPos:f,srcW:b,srcH:x,tgtW:v,tgtH:y,srcIntn:R,tgtIntn:O,srcShape:E,tgtShape:w,posPts:{x1:V.x2,y1:V.y2,x2:V.x1,y2:V.y1},intersectionPts:{x1:z.x2,y1:z.y2,x2:z.x1,y2:z.y1},vector:{x:-X.x,y:-X.y},vectorNorm:{x:-Y.x,y:-Y.y},vectorNormInverse:{x:-W.x,y:-W.y}}}var H=N?l:s;_.nodesOverlap=H.nodesOverlap,_.srcIntn=H.srcIntn,_.tgtIntn=H.tgtIntn,_.isRound=B.startsWith("round"),r&&(h.isParent()||h.isChild()||d.isParent()||d.isChild())&&(h.parents().anySame(d)||d.parents().anySame(h)||h.same(d)&&h.isParent())?t.findCompoundLoopPoints(P,H,T,A):h===d?t.findLoopPoints(P,H,T,A):B.endsWith("segments")?t.findSegmentsPoints(P,H):B.endsWith("taxi")?t.findTaxiPoints(P,H):"straight"!==B&&(A||s.eles.length%2!=1||T!==Math.floor(s.eles.length/2))?t.findBezierPoints(P,H,T,A,N):t.findStraightEdgePoints(P),t.findEndpoints(P),t.tryToCorrectInvalidPoints(P,H),t.checkForInvalidEdgeWarning(P),t.storeAllpts(P),t.storeEdgeProjections(P),t.calculateArrowAngles(P),t.recalculateEdgeLabelProjections(P),t.calculateLabelAngles(P)}}(y);this.findHaystackPoints(o)}},sp.getSegmentPoints=function(e){var t=e[0]._private.rscratch;if("segments"===t.edgeType)return this.recalculateRenderedStyle(e),sf(t.segpts)},sp.getControlPoints=function(e){var t=e[0]._private.rscratch,n=t.edgeType;if("bezier"===n||"multibezier"===n||"self"===n||"compound"===n)return this.recalculateRenderedStyle(e),sf(t.ctrlpts)},sp.getEdgeMidpoint=function(e){var t=e[0]._private.rscratch;return this.recalculateRenderedStyle(e),{x:t.midX,y:t.midY}};var sg={};sg.manualEndptToPx=function(e,t){var n=e.position(),r=e.outerWidth(),i=e.outerHeight(),a=e._private.rscratch;if(2===t.value.length){var o=[t.pfValue[0],t.pfValue[1]];return"%"===t.units[0]&&(o[0]=o[0]*r),"%"===t.units[1]&&(o[1]=o[1]*i),o[0]+=n.x,o[1]+=n.y,o}var s=t.pfValue[0];s=-Math.PI/2+s;var l=2*Math.max(r,i),u=[n.x+Math.cos(s)*l,n.y+Math.sin(s)*l];return this.nodeShapes[this.getNodeShape(e)].intersectLine(n.x,n.y,r,i,u[0],u[1],0,"auto"===e.pstyle("corner-radius").value?"auto":e.pstyle("corner-radius").pfValue,a)},sg.findEndpoints=function(e){var t,n,r,i,a,o=e.source()[0],s=e.target()[0],l=o.position(),u=s.position(),c=e.pstyle("target-arrow-shape").value,h=e.pstyle("source-arrow-shape").value,d=e.pstyle("target-distance-from-node").pfValue,p=e.pstyle("source-distance-from-node").pfValue,f=o._private.rscratch,g=s._private.rscratch,v=e.pstyle("curve-style").value,y=e._private.rscratch,b=y.edgeType,x="self"===b||"compound"===b,w="bezier"===b||"multibezier"===b||x,E="bezier"!==b,k="straight"===b||"segments"===b,C="segments"===b,S=x||"taxi"===v,D=e.pstyle("source-endpoint"),T=S?"outside-to-node":D.value,P="auto"===o.pstyle("corner-radius").value?"auto":o.pstyle("corner-radius").pfValue,_=e.pstyle("target-endpoint"),B=S?"outside-to-node":_.value,A="auto"===s.pstyle("corner-radius").value?"auto":s.pstyle("corner-radius").pfValue;if(y.srcManEndpt=D,y.tgtManEndpt=_,w){var N=[y.ctrlpts[0],y.ctrlpts[1]];n=E?[y.ctrlpts[y.ctrlpts.length-2],y.ctrlpts[y.ctrlpts.length-1]]:N,r=N}else if(k){var I=C?y.segpts.slice(0,2):[u.x,u.y];n=C?y.segpts.slice(y.segpts.length-2):[l.x,l.y],r=I}if("inside-to-node"===B)t=[u.x,u.y];else if(_.units)t=this.manualEndptToPx(s,_);else if("outside-to-line"===B)t=y.tgtIntn;else if("outside-to-node"===B||"outside-to-node-or-label"===B?i=n:("outside-to-line"===B||"outside-to-line-or-label"===B)&&(i=[l.x,l.y]),t=this.nodeShapes[this.getNodeShape(s)].intersectLine(u.x,u.y,s.outerWidth(),s.outerHeight(),i[0],i[1],0,A,g),"outside-to-node-or-label"===B||"outside-to-line-or-label"===B){var O=s._private.rscratch,L=O.labelWidth,R=O.labelHeight,z=O.labelX,V=O.labelY,F=L/2,j=R/2,q=s.pstyle("text-valign").value;"top"===q?V-=j:"bottom"===q&&(V+=j);var X=s.pstyle("text-halign").value;"left"===X?z-=F:"right"===X&&(z+=F);var Y=t9(i[0],i[1],[z-F,V-j,z+F,V-j,z+F,V+j,z-F,V+j],u.x,u.y);if(Y.length>0){var W=tT(l,tm(t)),H=tT(l,tm(Y)),G=W;H<W&&(t=Y,G=H),Y.length>2&&tT(l,{x:Y[2],y:Y[3]})<G&&(t=[Y[2],Y[3]])}}var U=t8(t,n,this.arrowShapes[c].spacing(e)+d),K=t8(t,n,this.arrowShapes[c].gap(e)+d);if(y.endX=K[0],y.endY=K[1],y.arrowEndX=U[0],y.arrowEndY=U[1],"inside-to-node"===T)t=[l.x,l.y];else if(D.units)t=this.manualEndptToPx(o,D);else if("outside-to-line"===T)t=y.srcIntn;else if("outside-to-node"===T||"outside-to-node-or-label"===T?a=r:("outside-to-line"===T||"outside-to-line-or-label"===T)&&(a=[u.x,u.y]),t=this.nodeShapes[this.getNodeShape(o)].intersectLine(l.x,l.y,o.outerWidth(),o.outerHeight(),a[0],a[1],0,P,f),"outside-to-node-or-label"===T||"outside-to-line-or-label"===T){var Z=o._private.rscratch,$=Z.labelWidth,Q=Z.labelHeight,J=Z.labelX,ee=Z.labelY,et=$/2,en=Q/2,er=o.pstyle("text-valign").value;"top"===er?ee-=en:"bottom"===er&&(ee+=en);var ei=o.pstyle("text-halign").value;"left"===ei?J-=et:"right"===ei&&(J+=et);var ea=t9(a[0],a[1],[J-et,ee-en,J+et,ee-en,J+et,ee+en,J-et,ee+en],l.x,l.y);if(ea.length>0){var eo=tT(u,tm(t)),es=tT(u,tm(ea)),el=eo;es<eo&&(t=[ea[0],ea[1]],el=es),ea.length>2&&tT(u,{x:ea[2],y:ea[3]})<el&&(t=[ea[2],ea[3]])}}var eu=t8(t,r,this.arrowShapes[h].spacing(e)+p),ec=t8(t,r,this.arrowShapes[h].gap(e)+p);y.startX=ec[0],y.startY=ec[1],y.arrowStartX=eu[0],y.arrowStartY=eu[1],(w||E||k)&&(M(y.startX)&&M(y.startY)&&M(y.endX)&&M(y.endY)?y.badLine=!1:y.badLine=!0)},sg.getSourceEndpoint=function(e){var t=e[0]._private.rscratch;return(this.recalculateRenderedStyle(e),"haystack"===t.edgeType)?{x:t.haystackPts[0],y:t.haystackPts[1]}:{x:t.arrowStartX,y:t.arrowStartY}},sg.getTargetEndpoint=function(e){var t=e[0]._private.rscratch;return(this.recalculateRenderedStyle(e),"haystack"===t.edgeType)?{x:t.haystackPts[2],y:t.haystackPts[3]}:{x:t.arrowEndX,y:t.arrowEndY}};var sv={};sv.storeEdgeProjections=function(e){var t=e._private,n=t.rscratch,r=n.edgeType;if(t.rstyle.bezierPts=null,t.rstyle.linePts=null,t.rstyle.haystackPts=null,"multibezier"===r||"bezier"===r||"self"===r||"compound"===r){t.rstyle.bezierPts=[];for(var i=0;i+5<n.allpts.length;i+=4)!function(e,t,n){for(var r=function(e,t,n,r){return t_(e,t,n,r)},i=t._private.rstyle.bezierPts,a=0;a<e.bezierProjPcts.length;a++){var o=e.bezierProjPcts[a];i.push({x:r(n[0],n[2],n[4],o),y:r(n[1],n[3],n[5],o)})}}(this,e,n.allpts.slice(i,i+6))}else if("segments"===r)for(var a=t.rstyle.linePts=[],i=0;i+1<n.allpts.length;i+=2)a.push({x:n.allpts[i],y:n.allpts[i+1]});else if("haystack"===r){var o=n.haystackPts;t.rstyle.haystackPts=[{x:o[0],y:o[1]},{x:o[2],y:o[3]}]}t.rstyle.arrowWidth=this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth},sv.recalculateEdgeProjections=function(e){this.findEdgeControlPoints(e)};var sy={};sy.recalculateNodeLabelProjection=function(e){if(!R(e.pstyle("label").strValue)){var t,n,r=e._private,i=e.width(),a=e.height(),o=e.padding(),s=e.position(),l=e.pstyle("text-halign").strValue,u=e.pstyle("text-valign").strValue,c=r.rscratch,h=r.rstyle;switch(l){case"left":t=s.x-i/2-o;break;case"right":t=s.x+i/2+o;break;default:t=s.x}switch(u){case"top":n=s.y-a/2-o;break;case"bottom":n=s.y+a/2+o;break;default:n=s.y}c.labelX=t,c.labelY=n,h.labelX=t,h.labelY=n,this.calculateLabelAngles(e),this.applyLabelDimensions(e)}};var sm=function(e,t){var n=Math.atan(t/e);return 0===e&&n<0&&(n*=-1),n},sb=function(e,t){return sm(t.x-e.x,t.y-e.y)},sx=function(e,t,n,r){var i=tA(0,r-.001,1),a=tA(0,r+.001,1);return sb(tM(e,t,n,i),tM(e,t,n,a))};sy.recalculateEdgeLabelProjections=function(e){var t,n=e._private,r=n.rscratch,i=this,a={mid:e.pstyle("label").strValue,source:e.pstyle("source-label").strValue,target:e.pstyle("target-label").strValue};if(a.mid||a.source||a.target){t={x:r.midX,y:r.midY};var o=function(e,t,r){te(n.rscratch,e,t,r),te(n.rstyle,e,t,r)};o("labelX",null,t.x),o("labelY",null,t.y),o("labelAutoAngle",null,sm(r.midDispX,r.midDispY));var s=function e(){if(e.cache)return e.cache;for(var t=[],a=0;a+5<r.allpts.length;a+=4){var o={x:r.allpts[a],y:r.allpts[a+1]},s={x:r.allpts[a+2],y:r.allpts[a+3]},l={x:r.allpts[a+4],y:r.allpts[a+5]};t.push({p0:o,p1:s,p2:l,startDist:0,length:0,segments:[]})}var u=n.rstyle.bezierPts,c=i.bezierProjPcts.length;function h(e,t,n,r,i){var a=tD(t,n),o=e.segments[e.segments.length-1],s={p0:t,p1:n,t0:r,t1:i,startDist:o?o.startDist+o.length:0,length:a};e.segments.push(s),e.length+=a}for(var d=0;d<t.length;d++){var p=t[d],f=t[d-1];f&&(p.startDist=f.startDist+f.length),h(p,p.p0,u[d*c],0,i.bezierProjPcts[0]);for(var g=0;g<c-1;g++)h(p,u[d*c+g],u[d*c+g+1],i.bezierProjPcts[g],i.bezierProjPcts[g+1]);h(p,u[d*c+c-1],p.p2,i.bezierProjPcts[c-1],1)}return e.cache=t},l=function(n){var i="source"===n;if(a[n]){var l=e.pstyle(n+"-text-offset").pfValue;switch(r.edgeType){case"self":case"compound":case"bezier":case"multibezier":for(var u,c,h=s(),d=0,p=0,f=0;f<h.length;f++){for(var g=h[i?f:h.length-1-f],v=0;v<g.segments.length;v++){var y=g.segments[i?v:g.segments.length-1-v],b=f===h.length-1&&v===g.segments.length-1;if(d=p,(p+=y.length)>=l||b){c={cp:g,segment:y};break}}if(c)break}var x=c.cp,w=c.segment,E=(l-d)/w.length,k=w.t1-w.t0,C=i?w.t0+k*E:w.t1-k*E;C=tA(0,C,1),t=tM(x.p0,x.p1,x.p2,C),u=sx(x.p0,x.p1,x.p2,C);break;case"straight":case"segments":case"haystack":for(var S,D,T,P,_=0,M=r.allpts.length,B=0;B+3<M&&(i?(S={x:r.allpts[B],y:r.allpts[B+1]},D={x:r.allpts[B+2],y:r.allpts[B+3]}):(S={x:r.allpts[M-2-B],y:r.allpts[M-1-B]},D={x:r.allpts[M-4-B],y:r.allpts[M-3-B]}),T=tD(S,D),P=_,!((_+=T)>=l));B+=2);var A=(l-P)/T;t=tB(S,D,A=tA(0,A,1)),u=sb(S,D)}o("labelX",n,t.x),o("labelY",n,t.y),o("labelAutoAngle",n,u)}};l("source"),l("target"),this.applyLabelDimensions(e)}},sy.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))},sy.applyPrefixedLabelDimensions=function(e,t){var n=e._private,r=this.getLabelText(e,t),i=this.calculateLabelDimensions(e,r),a=e.pstyle("line-height").pfValue,o=e.pstyle("text-wrap").strValue,s=e7(n.rscratch,"labelWrapCachedLines",t)||[],l="wrap"!==o?1:Math.max(s.length,1),u=i.height/l,c=i.width,h=i.height+(l-1)*(a-1)*u;te(n.rstyle,"labelWidth",t,c),te(n.rscratch,"labelWidth",t,c),te(n.rstyle,"labelHeight",t,h),te(n.rscratch,"labelHeight",t,h),te(n.rscratch,"labelLineHeight",t,u*a)},sy.getLabelText=function(e,t){var n=e._private,r=t?t+"-":"",i=e.pstyle(r+"label").strValue,a=e.pstyle("text-transform").value,o=function(e,r){return r?(te(n.rscratch,e,t,r),r):e7(n.rscratch,e,t)};if(!i)return"";"none"==a||("uppercase"==a?i=i.toUpperCase():"lowercase"==a&&(i=i.toLowerCase()));var s=e.pstyle("text-wrap").value;if("wrap"===s){var l=o("labelKey");if(null!=l&&o("labelWrapKey")===l)return o("labelWrapCachedText");for(var u=i.split("\n"),c=e.pstyle("text-max-width").pfValue,d="anywhere"===e.pstyle("text-overflow-wrap").value,p=[],f=/[\s\u200b]+|$/g,g=0;g<u.length;g++){var v=u[g],y=this.calculateLabelDimensions(e,v).width;if(d&&(v=v.split("").join("\u200B")),y>c){var b,x=v.matchAll(f),w="",E=0,k=h(x);try{for(k.s();!(b=k.n()).done;){var C=b.value,S=C[0],D=v.substring(E,C.index);E=C.index+S.length;var T=0===w.length?D:w+D+S;this.calculateLabelDimensions(e,T).width<=c?w+=D+S:(w&&p.push(w),w=D+S)}}catch(e){k.e(e)}finally{k.f()}w.match(/^[\s\u200b]+$/)||p.push(w)}else p.push(v)}o("labelWrapCachedLines",p),i=o("labelWrapCachedText",p.join("\n")),o("labelWrapKey",l)}else if("ellipsis"===s){var P=e.pstyle("text-max-width").pfValue,_="",M=!1;if(this.calculateLabelDimensions(e,i).width<P)return i;for(var B=0;B<i.length&&!(this.calculateLabelDimensions(e,_+i[B]+"\u2026").width>P);B++)_+=i[B],B===i.length-1&&(M=!0);return M||(_+="\u2026"),_}return i},sy.getLabelJustification=function(e){var t=e.pstyle("text-justification").strValue,n=e.pstyle("text-halign").strValue;if("auto"!==t)return t;if(!e.isNode())return"center";switch(n){case"left":return"right";case"right":return"left";default:return"center"}},sy.calculateLabelDimensions=function(e,t){var n=this.cy.window().document,r=ej(t,e._private.labelDimsKey),i=this.labelDimCache||(this.labelDimCache=[]),a=i[r];if(null!=a)return a;var o=e.pstyle("font-style").strValue,s=e.pstyle("font-size").pfValue,l=e.pstyle("font-family").strValue,u=e.pstyle("font-weight").strValue,c=this.labelCalcCanvas,h=this.labelCalcCanvasContext;if(!c){c=this.labelCalcCanvas=n.createElement("canvas"),h=this.labelCalcCanvasContext=c.getContext("2d");var d=c.style;d.position="absolute",d.left="-9999px",d.top="-9999px",d.zIndex="-1",d.visibility="hidden",d.pointerEvents="none"}h.font="".concat(o," ").concat(u," ").concat(s,"px ").concat(l);for(var p=0,f=0,g=t.split("\n"),v=0;v<g.length;v++){var y=g[v];p=Math.max(Math.ceil(h.measureText(y).width),p),f+=s}return p+=0,f+=0,i[r]={width:p,height:f}},sy.calculateLabelAngle=function(e,t){var n=e._private.rscratch,r=e.isEdge(),i=e.pstyle((t?t+"-":"")+"text-rotation"),a=i.strValue;return"none"===a?0:r&&"autorotate"===a?n.labelAutoAngle:"autorotate"===a?0:i.pfValue},sy.calculateLabelAngles=function(e){var t=e.isEdge(),n=e._private.rscratch;n.labelAngle=this.calculateLabelAngle(e),t&&(n.sourceLabelAngle=this.calculateLabelAngle(e,"source"),n.targetLabelAngle=this.calculateLabelAngle(e,"target"))};var sw={},sE=!1;sw.getNodeShape=function(e){var t=e.pstyle("shape").value;if("cutrectangle"===t&&(28>e.width()||28>e.height()))return sE||(e0("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"),sE=!0),"rectangle";if(e.isParent())return"rectangle"===t||"roundrectangle"===t||"round-rectangle"===t||"cutrectangle"===t||"cut-rectangle"===t||"barrel"===t?t:"rectangle";if("polygon"===t){var n=e.pstyle("shape-polygon-points").value;return this.nodeShapes.makePolygon(n).name}return t};var sk={};sk.registerCalculationListeners=function(){var e=this.cy,t=e.collection(),n=this,r=function(e){var n=!(arguments.length>1)||void 0===arguments[1]||arguments[1];if(t.merge(e),n)for(var r=0;r<e.length;r++){var i=e[r]._private.rstyle;i.clean=!1,i.cleanConnected=!1}};n.binder(e).on("bounds.* dirty.*",function(e){r(e.target)}).on("style.* background.*",function(e){r(e.target,!1)});var i=function(i){if(i){var a=n.onUpdateEleCalcsFns;t.cleanStyle();for(var o=0;o<t.length;o++){var s=t[o],l=s._private.rstyle;s.isNode()&&!l.cleanConnected&&(r(s.connectedEdges()),l.cleanConnected=!0)}if(a)for(var u=0;u<a.length;u++)(0,a[u])(i,t);n.recalculateRenderedStyle(t),t=e.collection()}};n.flushRenderedStyleQueue=function(){i(!0)},n.beforeRender(i,n.beforeRenderPriorities.eleCalcs)},sk.onUpdateEleCalcs=function(e){(this.onUpdateEleCalcsFns=this.onUpdateEleCalcsFns||[]).push(e)},sk.recalculateRenderedStyle=function(e,t){var n=function(e){return e._private.rstyle.cleanConnected},r=[],i=[];if(!this.destroyed){void 0===t&&(t=!0);for(var a=0;a<e.length;a++){var o=e[a],s=o._private,l=s.rstyle;!o.isEdge()||n(o.source())&&n(o.target())||(l.clean=!1),t&&l.clean||o.removed()||"none"===o.pstyle("display").value||("nodes"===s.group?i.push(o):r.push(o),l.clean=!0)}for(var u=0;u<i.length;u++){var c=i[u],h=c._private.rstyle,d=c.position();this.recalculateNodeLabelProjection(c),h.nodeX=d.x,h.nodeY=d.y,h.nodeW=c.pstyle("width").pfValue,h.nodeH=c.pstyle("height").pfValue}this.recalculateEdgeProjections(r);for(var p=0;p<r.length;p++){var f=r[p]._private,g=f.rstyle,v=f.rscratch;g.srcX=v.arrowStartX,g.srcY=v.arrowStartY,g.tgtX=v.arrowEndX,g.tgtY=v.arrowEndY,g.midX=v.midX,g.midY=v.midY,g.labelAngle=v.labelAngle,g.sourceLabelAngle=v.sourceLabelAngle,g.targetLabelAngle=v.targetLabelAngle}}};var sC={};sC.updateCachedGrabbedEles=function(){var e=this.cachedZSortedEles;if(e){e.drag=[],e.nondrag=[];for(var t=[],n=0;n<e.length;n++){var r=e[n],i=r._private.rscratch;r.grabbed()&&!r.isParent()?t.push(r):i.inDragLayer?e.drag.push(r):e.nondrag.push(r)}for(var n=0;n<t.length;n++){var r=t[n];e.drag.push(r)}}},sC.invalidateCachedZSortedEles=function(){this.cachedZSortedEles=null},sC.getCachedZSortedEles=function(e){if(e||!this.cachedZSortedEles){var t=this.cy.mutableElements().toArray();t.sort(aa),t.interactive=t.filter(function(e){return e.interactive()}),this.cachedZSortedEles=t,this.updateCachedGrabbedEles()}else t=this.cachedZSortedEles;return t};var sS={};[oj,oq,sp,sg,sv,sy,sw,sk,sC].forEach(function(e){Z(sS,e)});var sD={};sD.getCachedImage=function(e,t,n){var r=this.imageCache=this.imageCache||{},i=r[e];if(i)return i.image.complete||i.image.addEventListener("load",n),i.image;var a=(i=r[e]=r[e]||{}).image=new Image;a.addEventListener("load",n),a.addEventListener("error",function(){a.error=!0});var o="data:";return e.substring(0,o.length).toLowerCase()!==o&&(t="null"===t?null:t,a.crossOrigin=t),a.src=e,a};var sT={};sT.registerBinding=function(e,t,n,r){var i=Array.prototype.slice.apply(arguments,[1]),a=this.binder(e);return a.on.apply(a,i)},sT.binder=function(e){var t=this,n=t.cy.window(),r=e===n||e===n.document||e===n.document.body||"undefined"!=typeof HTMLElement&&e instanceof HTMLElement;if(null==t.supportsPassiveEvents){var i=!1;try{var a=Object.defineProperty({},"passive",{get:function(){return i=!0,!0}});n.addEventListener("test",null,a)}catch(e){}t.supportsPassiveEvents=i}var o=function(n,i,a){var o=Array.prototype.slice.call(arguments);return r&&t.supportsPassiveEvents&&(o[2]={capture:null!=a&&a,passive:!1,once:!1}),t.bindings.push({target:e,args:o}),(e.addEventListener||e.on).apply(e,o),this};return{on:o,addEventListener:o,addListener:o,bind:o}},sT.nodeIsDraggable=function(e){return e&&e.isNode()&&!e.locked()&&e.grabbable()},sT.nodeIsGrabbable=function(e){return this.nodeIsDraggable(e)&&e.interactive()},sT.load=function(){var e,t,n,r,i,a,o,s,l,u,c,h,d,p,f,g,v,y,b,x,w,E,k,C=this,S=C.cy.window(),D=function(e){return e.selected()},T=function(e,t,n,r){null==e&&(e=C.cy);for(var i=0;i<t.length;i++){var a=t[i];e.emit({originalEvent:n,type:a,position:r})}},P=function(e){return e.shiftKey||e.metaKey||e.ctrlKey},_=function(e,t){var n=!0;if(C.cy.hasCompoundNodes()&&e&&e.pannable())for(var r=0;t&&r<t.length;r++){var e=t[r];if(e.isNode()&&e.isParent()&&!e.pannable()){n=!1;break}}else n=!0;return n},B=function(e){e[0]._private.grabbed=!0},A=function(e){e[0]._private.grabbed=!1},N=function(e){e[0]._private.rscratch.inDragLayer=!0},I=function(e){e[0]._private.rscratch.inDragLayer=!1},O=function(e){e[0]._private.rscratch.isGrabTarget=!0},L=function(e){e[0]._private.rscratch.isGrabTarget=!1},R=function(e,t){var n=t.addToList;!n.has(e)&&e.grabbable()&&!e.locked()&&(n.merge(e),B(e))},z=function(e,t){if(e.cy().hasCompoundNodes()&&(null!=t.inDragLayer||null!=t.addToList)){var n=e.descendants();t.inDragLayer&&(n.forEach(N),n.connectedEdges().forEach(N)),t.addToList&&R(n,t)}},V=function(e,t){t=t||{};var n=e.cy().hasCompoundNodes();t.inDragLayer&&(e.forEach(N),e.neighborhood().stdFilter(function(e){return!n||e.isEdge()}).forEach(N)),t.addToList&&e.forEach(function(e){R(e,t)}),z(e,t),j(e,{inDragLayer:t.inDragLayer}),C.updateCachedGrabbedEles()},F=function(e){e&&(C.getCachedZSortedEles().forEach(function(e){A(e),I(e),L(e)}),C.updateCachedGrabbedEles())},j=function(e,t){if((null!=t.inDragLayer||null!=t.addToList)&&e.cy().hasCompoundNodes()){var n=e.ancestors().orphans();if(!n.same(e)){var r=n.descendants().spawnSelf().merge(n).unmerge(e).unmerge(e.descendants()),i=r.connectedEdges();t.inDragLayer&&(i.forEach(N),r.forEach(N)),t.addToList&&r.forEach(function(e){R(e,t)})}}},q=function(){null!=document.activeElement&&null!=document.activeElement.blur&&document.activeElement.blur()},X="undefined"!=typeof MutationObserver,Y="undefined"!=typeof ResizeObserver;X?(C.removeObserver=new MutationObserver(function(e){for(var t=0;t<e.length;t++){var n=e[t].removedNodes;if(n){for(var r=0;r<n.length;r++)if(n[r]===C.container){C.destroy();break}}}}),C.container.parentNode&&C.removeObserver.observe(C.container.parentNode,{childList:!0})):C.registerBinding(C.container,"DOMNodeRemoved",function(e){C.destroy()});var W=eM(function(){C.cy.resize()},100);X&&(C.styleObserver=new MutationObserver(W),C.styleObserver.observe(C.container,{attributes:!0})),C.registerBinding(S,"resize",W),Y&&(C.resizeObserver=new ResizeObserver(W),C.resizeObserver.observe(C.container));var H=function(){C.invalidateContainerClientCoordsCache()};(function(e,t){for(;null!=e;)t(e),e=e.parentNode})(C.container,function(e){C.registerBinding(e,"transitionend",H),C.registerBinding(e,"animationend",H),C.registerBinding(e,"scroll",H)}),C.registerBinding(C.container,"contextmenu",function(e){e.preventDefault()});var G=function(e){for(var t=C.findContainerClientCoords(),n=t[0],r=t[1],i=t[2],a=t[3],o=e.touches?e.touches:[e],s=!1,l=0;l<o.length;l++){var u=o[l];if(n<=u.clientX&&u.clientX<=n+i&&r<=u.clientY&&u.clientY<=r+a){s=!0;break}}if(!s)return!1;for(var c=C.container,h=e.target.parentNode,d=!1;h;){if(h===c){d=!0;break}h=h.parentNode}return!!d};C.registerBinding(C.container,"mousedown",function(e){if(G(e)&&(1!==C.hoverData.which||1===e.which)){e.preventDefault(),q(),C.hoverData.capture=!0,C.hoverData.which=e.which;var t=C.cy,n=[e.clientX,e.clientY],r=C.projectIntoViewport(n[0],n[1]),i=C.selection,a=C.findNearestElements(r[0],r[1],!0,!1),o=a[0],s=C.dragData.possibleDragElements;if(C.hoverData.mdownPos=r,C.hoverData.mdownGPos=n,3==e.which){C.hoverData.cxtStarted=!0;var l={originalEvent:e,type:"cxttapstart",position:{x:r[0],y:r[1]}};o?(o.activate(),o.emit(l),C.hoverData.down=o):t.emit(l),C.hoverData.downTime=new Date().getTime(),C.hoverData.cxtDragged=!1}else if(1==e.which){if(o&&o.activate(),null!=o&&C.nodeIsGrabbable(o)){var u=function(t){return{originalEvent:e,type:t,position:{x:r[0],y:r[1]}}};if(O(o),o.selected()){s=C.dragData.possibleDragElements=t.collection();var c=t.$(function(e){return e.isNode()&&e.selected()&&C.nodeIsGrabbable(e)});V(c,{addToList:s}),o.emit(u("grabon")),c.forEach(function(e){e.emit(u("grab"))})}else V(o,{addToList:s=C.dragData.possibleDragElements=t.collection()}),o.emit(u("grabon")).emit(u("grab"));C.redrawHint("eles",!0),C.redrawHint("drag",!0)}C.hoverData.down=o,C.hoverData.downs=a,C.hoverData.downTime=new Date().getTime(),T(o,["mousedown","tapstart","vmousedown"],e,{x:r[0],y:r[1]}),null==o?(i[4]=1,C.data.bgActivePosistion={x:r[0],y:r[1]},C.redrawHint("select",!0),C.redraw()):o.pannable()&&(i[4]=1),C.hoverData.tapholdCancelled=!1,clearTimeout(C.hoverData.tapholdTimeout),C.hoverData.tapholdTimeout=setTimeout(function(){if(!C.hoverData.tapholdCancelled){var n=C.hoverData.down;n?n.emit({originalEvent:e,type:"taphold",position:{x:r[0],y:r[1]}}):t.emit({originalEvent:e,type:"taphold",position:{x:r[0],y:r[1]}})}},C.tapholdDuration)}i[0]=i[2]=r[0],i[1]=i[3]=r[1]}},!1),C.registerBinding(S,"mousemove",function(e){if(C.hoverData.capture||G(e)){var t=!1,n=C.cy,r=n.zoom(),i=[e.clientX,e.clientY],a=C.projectIntoViewport(i[0],i[1]),o=C.hoverData.mdownPos,s=C.hoverData.mdownGPos,l=C.selection,u=null;C.hoverData.draggingEles||C.hoverData.dragging||C.hoverData.selecting||(u=C.findNearestElement(a[0],a[1],!0,!1));var c=C.hoverData.last,h=C.hoverData.down,d=[a[0]-l[2],a[1]-l[3]],p=C.dragData.possibleDragElements;if(s){var f=i[0]-s[0],g=i[1]-s[1];C.hoverData.isOverThresholdDrag=w=f*f+g*g>=C.desktopTapThreshold2}var v=P(e);w&&(C.hoverData.tapholdCancelled=!0),t=!0,T(u,["mousemove","vmousemove","tapdrag"],e,{x:a[0],y:a[1]});var y=function(){C.data.bgActivePosistion=void 0,C.hoverData.selecting||n.emit({originalEvent:e,type:"boxstart",position:{x:a[0],y:a[1]}}),l[4]=1,C.hoverData.selecting=!0,C.redrawHint("select",!0),C.redraw()};if(3===C.hoverData.which){if(w){var b={originalEvent:e,type:"cxtdrag",position:{x:a[0],y:a[1]}};h?h.emit(b):n.emit(b),C.hoverData.cxtDragged=!0,(!C.hoverData.cxtOver||u!==C.hoverData.cxtOver)&&(C.hoverData.cxtOver&&C.hoverData.cxtOver.emit({originalEvent:e,type:"cxtdragout",position:{x:a[0],y:a[1]}}),C.hoverData.cxtOver=u,u&&u.emit({originalEvent:e,type:"cxtdragover",position:{x:a[0],y:a[1]}}))}}else if(C.hoverData.dragging){if(t=!0,n.panningEnabled()&&n.userPanningEnabled()){if(C.hoverData.justStartedPan){var x=C.hoverData.mdownPos;E={x:(a[0]-x[0])*r,y:(a[1]-x[1])*r},C.hoverData.justStartedPan=!1}else E={x:d[0]*r,y:d[1]*r};n.panBy(E),n.emit("dragpan"),C.hoverData.dragged=!0}a=C.projectIntoViewport(e.clientX,e.clientY)}else if(1==l[4]&&(null==h||h.pannable()))w&&(!C.hoverData.dragging&&n.boxSelectionEnabled()&&(v||!n.panningEnabled()||!n.userPanningEnabled())?y():!C.hoverData.selecting&&n.panningEnabled()&&n.userPanningEnabled()&&_(h,C.hoverData.downs)&&(C.hoverData.dragging=!0,C.hoverData.justStartedPan=!0,l[4]=0,C.data.bgActivePosistion=tm(o),C.redrawHint("select",!0),C.redraw()),h&&h.pannable()&&h.active()&&h.unactivate());else{if(h&&h.pannable()&&h.active()&&h.unactivate(),h&&h.grabbed()||u==c||(c&&T(c,["mouseout","tapdragout"],e,{x:a[0],y:a[1]}),u&&T(u,["mouseover","tapdragover"],e,{x:a[0],y:a[1]}),C.hoverData.last=u),h){if(w){if(n.boxSelectionEnabled()&&v)h&&h.grabbed()&&(F(p),h.emit("freeon"),p.emit("free"),C.dragData.didDrag&&(h.emit("dragfreeon"),p.emit("dragfree"))),y();else if(h&&h.grabbed()&&C.nodeIsDraggable(h)){var w,E,k,S=!C.dragData.didDrag;S&&C.redrawHint("eles",!0),C.dragData.didDrag=!0,C.hoverData.draggingEles||V(p,{inDragLayer:!0});var D={x:0,y:0};if(M(d[0])&&M(d[1])&&(D.x+=d[0],D.y+=d[1],S)){var B=C.hoverData.dragDelta;B&&M(B[0])&&M(B[1])&&(D.x+=B[0],D.y+=B[1])}C.hoverData.draggingEles=!0,p.silentShift(D).emit("position drag"),C.redrawHint("drag",!0),C.redraw()}}else 0===(k=C.hoverData.dragDelta=C.hoverData.dragDelta||[]).length?(k.push(d[0]),k.push(d[1])):(k[0]+=d[0],k[1]+=d[1])}t=!0}if(l[2]=a[0],l[3]=a[1],t)return e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),!1}},!1),C.registerBinding(S,"mouseup",function(r){if((1!==C.hoverData.which||1===r.which||!C.hoverData.capture)&&C.hoverData.capture){C.hoverData.capture=!1;var i=C.cy,a=C.projectIntoViewport(r.clientX,r.clientY),o=C.selection,s=C.findNearestElement(a[0],a[1],!0,!1),l=C.dragData.possibleDragElements,u=C.hoverData.down,c=P(r);if(C.data.bgActivePosistion&&(C.redrawHint("select",!0),C.redraw()),C.hoverData.tapholdCancelled=!0,C.data.bgActivePosistion=void 0,u&&u.unactivate(),3===C.hoverData.which){var h={originalEvent:r,type:"cxttapend",position:{x:a[0],y:a[1]}};if(u?u.emit(h):i.emit(h),!C.hoverData.cxtDragged){var d={originalEvent:r,type:"cxttap",position:{x:a[0],y:a[1]}};u?u.emit(d):i.emit(d)}C.hoverData.cxtDragged=!1,C.hoverData.which=null}else if(1===C.hoverData.which){if(T(s,["mouseup","tapend","vmouseup"],r,{x:a[0],y:a[1]}),C.dragData.didDrag||C.hoverData.dragged||C.hoverData.selecting||C.hoverData.isOverThresholdDrag||(T(u,["click","tap","vclick"],r,{x:a[0],y:a[1]}),t=!1,r.timeStamp-n<=i.multiClickDebounceTime()?(e&&clearTimeout(e),t=!0,n=null,T(u,["dblclick","dbltap","vdblclick"],r,{x:a[0],y:a[1]})):(e=setTimeout(function(){t||T(u,["oneclick","onetap","voneclick"],r,{x:a[0],y:a[1]})},i.multiClickDebounceTime()),n=r.timeStamp)),null!=u||C.dragData.didDrag||C.hoverData.selecting||C.hoverData.dragged||P(r)||(i.$(D).unselect(["tapunselect"]),l.length>0&&C.redrawHint("eles",!0),C.dragData.possibleDragElements=l=i.collection()),s!=u||C.dragData.didDrag||C.hoverData.selecting||null==s||!s._private.selectable||(C.hoverData.dragging||("additive"===i.selectionType()||c?s.selected()?s.unselect(["tapunselect"]):s.select(["tapselect"]):c||(i.$(D).unmerge(s).unselect(["tapunselect"]),s.select(["tapselect"]))),C.redrawHint("eles",!0)),C.hoverData.selecting){var p=i.collection(C.getAllInBox(o[0],o[1],o[2],o[3]));C.redrawHint("select",!0),p.length>0&&C.redrawHint("eles",!0),i.emit({type:"boxend",originalEvent:r,position:{x:a[0],y:a[1]}}),"additive"!==i.selectionType()&&(c||i.$(D).unmerge(p).unselect()),p.emit("box").stdFilter(function(e){return e.selectable()&&!e.selected()}).select().emit("boxselect"),C.redraw()}if(C.hoverData.dragging&&(C.hoverData.dragging=!1,C.redrawHint("select",!0),C.redrawHint("eles",!0),C.redraw()),!o[4]){C.redrawHint("drag",!0),C.redrawHint("eles",!0);var f=u&&u.grabbed();F(l),f&&(u.emit("freeon"),l.emit("free"),C.dragData.didDrag&&(u.emit("dragfreeon"),l.emit("dragfree")))}}o[4]=0,C.hoverData.down=null,C.hoverData.cxtStarted=!1,C.hoverData.draggingEles=!1,C.hoverData.selecting=!1,C.hoverData.isOverThresholdDrag=!1,C.dragData.didDrag=!1,C.hoverData.dragged=!1,C.hoverData.dragDelta=[],C.hoverData.mdownPos=null,C.hoverData.mdownGPos=null,C.hoverData.which=null}},!1);var U=function(e){if(!C.scrollingPage){var t=C.cy,n=t.zoom(),r=t.pan(),i=C.projectIntoViewport(e.clientX,e.clientY),a=[i[0]*n+r.x,i[1]*n+r.y];if(C.hoverData.draggingEles||C.hoverData.dragging||C.hoverData.cxtStarted||0!==C.selection[4]){e.preventDefault();return}if(t.panningEnabled()&&t.userPanningEnabled()&&t.zoomingEnabled()&&t.userZoomingEnabled()){e.preventDefault(),C.data.wheelZooming=!0,clearTimeout(C.data.wheelTimeout),C.data.wheelTimeout=setTimeout(function(){C.data.wheelZooming=!1,C.redrawHint("eles",!0),C.redraw()},150),o=(null!=e.deltaY?-(e.deltaY/250):null!=e.wheelDeltaY?e.wheelDeltaY/1e3:e.wheelDelta/1e3)*C.wheelSensitivity,1===e.deltaMode&&(o*=33);var o,s=t.zoom()*Math.pow(10,o);"gesturechange"===e.type&&(s=C.gestureStartZoom*e.scale),t.zoom({level:s,renderedPosition:{x:a[0],y:a[1]}}),t.emit("gesturechange"===e.type?"pinchzoom":"scrollzoom")}}};C.registerBinding(C.container,"wheel",U,!0),C.registerBinding(S,"scroll",function(e){C.scrollingPage=!0,clearTimeout(C.scrollingPageTimeout),C.scrollingPageTimeout=setTimeout(function(){C.scrollingPage=!1},250)},!0),C.registerBinding(C.container,"gesturestart",function(e){C.gestureStartZoom=C.cy.zoom(),C.hasTouchStarted||e.preventDefault()},!0),C.registerBinding(C.container,"gesturechange",function(e){C.hasTouchStarted||U(e)},!0),C.registerBinding(C.container,"mouseout",function(e){var t=C.projectIntoViewport(e.clientX,e.clientY);C.cy.emit({originalEvent:e,type:"mouseout",position:{x:t[0],y:t[1]}})},!1),C.registerBinding(C.container,"mouseover",function(e){var t=C.projectIntoViewport(e.clientX,e.clientY);C.cy.emit({originalEvent:e,type:"mouseover",position:{x:t[0],y:t[1]}})},!1);var K=function(e,t,n,r){return Math.sqrt((n-e)*(n-e)+(r-t)*(r-t))},Z=function(e,t,n,r){return(n-e)*(n-e)+(r-t)*(r-t)};if(C.registerBinding(C.container,"touchstart",v=function(e){if(C.hasTouchStarted=!0,G(e)){q(),C.touchData.capture=!0,C.data.bgActivePosistion=void 0;var t=C.cy,n=C.touchData.now,v=C.touchData.earlier;if(e.touches[0]){var y=C.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);n[0]=y[0],n[1]=y[1]}if(e.touches[1]){var y=C.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY);n[2]=y[0],n[3]=y[1]}if(e.touches[2]){var y=C.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY);n[4]=y[0],n[5]=y[1]}if(e.touches[1]){C.touchData.singleTouchMoved=!0,F(C.dragData.touchDragEles);var b=C.findContainerClientCoords();h=b[0],d=b[1],p=b[2],f=b[3],r=e.touches[0].clientX-h,i=e.touches[0].clientY-d,a=e.touches[1].clientX-h,o=e.touches[1].clientY-d,g=0<=r&&r<=p&&0<=a&&a<=p&&0<=i&&i<=f&&0<=o&&o<=f;var x=t.pan(),w=t.zoom();if(s=K(r,i,a,o),l=Z(r,i,a,o),c=[((u=[(r+a)/2,(i+o)/2])[0]-x.x)/w,(u[1]-x.y)/w],l<4e4&&!e.touches[2]){var E=C.findNearestElement(n[0],n[1],!0,!0),k=C.findNearestElement(n[2],n[3],!0,!0);E&&E.isNode()?(E.activate().emit({originalEvent:e,type:"cxttapstart",position:{x:n[0],y:n[1]}}),C.touchData.start=E):k&&k.isNode()?(k.activate().emit({originalEvent:e,type:"cxttapstart",position:{x:n[0],y:n[1]}}),C.touchData.start=k):t.emit({originalEvent:e,type:"cxttapstart",position:{x:n[0],y:n[1]}}),C.touchData.start&&(C.touchData.start._private.grabbed=!1),C.touchData.cxt=!0,C.touchData.cxtDragged=!1,C.data.bgActivePosistion=void 0,C.redraw();return}}if(e.touches[2])t.boxSelectionEnabled()&&e.preventDefault();else if(e.touches[1]);else if(e.touches[0]){var S=C.findNearestElements(n[0],n[1],!0,!0),D=S[0];if(null!=D&&(D.activate(),C.touchData.start=D,C.touchData.starts=S,C.nodeIsGrabbable(D))){var P=C.dragData.touchDragEles=t.collection(),_=null;C.redrawHint("eles",!0),C.redrawHint("drag",!0),D.selected()?V(_=t.$(function(e){return e.selected()&&C.nodeIsGrabbable(e)}),{addToList:P}):V(D,{addToList:P}),O(D);var M=function(t){return{originalEvent:e,type:t,position:{x:n[0],y:n[1]}}};D.emit(M("grabon")),_?_.forEach(function(e){e.emit(M("grab"))}):D.emit(M("grab"))}T(D,["touchstart","tapstart","vmousedown"],e,{x:n[0],y:n[1]}),null==D&&(C.data.bgActivePosistion={x:y[0],y:y[1]},C.redrawHint("select",!0),C.redraw()),C.touchData.singleTouchMoved=!1,C.touchData.singleTouchStartTime=+new Date,clearTimeout(C.touchData.tapholdTimeout),C.touchData.tapholdTimeout=setTimeout(function(){!1!==C.touchData.singleTouchMoved||C.pinching||C.touchData.selecting||T(C.touchData.start,["taphold"],e,{x:n[0],y:n[1]})},C.tapholdDuration)}if(e.touches.length>=1){for(var B=C.touchData.startPosition=[null,null,null,null,null,null],A=0;A<n.length;A++)B[A]=v[A]=n[A];var N=e.touches[0];C.touchData.startGPosition=[N.clientX,N.clientY]}}},!1),C.registerBinding(S,"touchmove",y=function(e){var t=C.touchData.capture;if(t||G(e)){var n=C.selection,u=C.cy,p=C.touchData.now,f=C.touchData.earlier,v=u.zoom();if(e.touches[0]){var y=C.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);p[0]=y[0],p[1]=y[1]}if(e.touches[1]){var y=C.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY);p[2]=y[0],p[3]=y[1]}if(e.touches[2]){var y=C.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY);p[4]=y[0],p[5]=y[1]}var b=C.touchData.startGPosition;if(t&&e.touches[0]&&b){for(var x=[],w=0;w<p.length;w++)x[w]=p[w]-f[w];var E=e.touches[0].clientX-b[0],k=E*E,S=e.touches[0].clientY-b[1];er=k+S*S>=C.touchTapThreshold2}if(t&&C.touchData.cxt){e.preventDefault();var D=e.touches[0].clientX-h,P=e.touches[0].clientY-d,B=e.touches[1].clientX-h,A=e.touches[1].clientY-d,N=Z(D,P,B,A);if(N/l>=2.25||N>=22500){C.touchData.cxt=!1,C.data.bgActivePosistion=void 0,C.redrawHint("select",!0);var I={originalEvent:e,type:"cxttapend",position:{x:p[0],y:p[1]}};C.touchData.start?(C.touchData.start.unactivate().emit(I),C.touchData.start=null):u.emit(I)}}if(t&&C.touchData.cxt){var I={originalEvent:e,type:"cxtdrag",position:{x:p[0],y:p[1]}};C.data.bgActivePosistion=void 0,C.redrawHint("select",!0),C.touchData.start?C.touchData.start.emit(I):u.emit(I),C.touchData.start&&(C.touchData.start._private.grabbed=!1),C.touchData.cxtDragged=!0;var O=C.findNearestElement(p[0],p[1],!0,!0);(!C.touchData.cxtOver||O!==C.touchData.cxtOver)&&(C.touchData.cxtOver&&C.touchData.cxtOver.emit({originalEvent:e,type:"cxtdragout",position:{x:p[0],y:p[1]}}),C.touchData.cxtOver=O,O&&O.emit({originalEvent:e,type:"cxtdragover",position:{x:p[0],y:p[1]}}))}else if(t&&e.touches[2]&&u.boxSelectionEnabled())e.preventDefault(),C.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,C.touchData.selecting||u.emit({originalEvent:e,type:"boxstart",position:{x:p[0],y:p[1]}}),C.touchData.selecting=!0,C.touchData.didSelect=!0,n[4]=1,n&&0!==n.length&&void 0!==n[0]?(n[2]=(p[0]+p[2]+p[4])/3,n[3]=(p[1]+p[3]+p[5])/3):(n[0]=(p[0]+p[2]+p[4])/3,n[1]=(p[1]+p[3]+p[5])/3,n[2]=(p[0]+p[2]+p[4])/3+1,n[3]=(p[1]+p[3]+p[5])/3+1),C.redrawHint("select",!0),C.redraw();else if(t&&e.touches[1]&&!C.touchData.didSelect&&u.zoomingEnabled()&&u.panningEnabled()&&u.userZoomingEnabled()&&u.userPanningEnabled()){e.preventDefault(),C.data.bgActivePosistion=void 0,C.redrawHint("select",!0);var L=C.dragData.touchDragEles;if(L){C.redrawHint("drag",!0);for(var R=0;R<L.length;R++){var z=L[R]._private;z.grabbed=!1,z.rscratch.inDragLayer=!1}}var j=C.touchData.start,D=e.touches[0].clientX-h,P=e.touches[0].clientY-d,B=e.touches[1].clientX-h,A=e.touches[1].clientY-d,q=K(D,P,B,A),X=q/s;if(g){var Y=D-r,W=P-i,H=B-a,U=A-o,$=u.zoom(),Q=$*X,J=u.pan(),ee=c[0]*$+J.x,et=c[1]*$+J.y,en={x:-Q/$*(ee-J.x-(Y+H)/2)+ee,y:-Q/$*(et-J.y-(W+U)/2)+et};if(j&&j.active()){var L=C.dragData.touchDragEles;F(L),C.redrawHint("drag",!0),C.redrawHint("eles",!0),j.unactivate().emit("freeon"),L.emit("free"),C.dragData.didDrag&&(j.emit("dragfreeon"),L.emit("dragfree"))}u.viewport({zoom:Q,pan:en,cancelOnFailedZoom:!0}),u.emit("pinchzoom"),s=q,r=D,i=P,a=B,o=A,C.pinching=!0}if(e.touches[0]){var y=C.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);p[0]=y[0],p[1]=y[1]}if(e.touches[1]){var y=C.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY);p[2]=y[0],p[3]=y[1]}if(e.touches[2]){var y=C.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY);p[4]=y[0],p[5]=y[1]}}else if(e.touches[0]&&!C.touchData.didSelect){var er,O,ei=C.touchData.start,ea=C.touchData.last;if(C.hoverData.draggingEles||C.swipePanning||(O=C.findNearestElement(p[0],p[1],!0,!0)),t&&null!=ei&&e.preventDefault(),t&&null!=ei&&C.nodeIsDraggable(ei)){if(er){var L=C.dragData.touchDragEles,eo=!C.dragData.didDrag;eo&&V(L,{inDragLayer:!0}),C.dragData.didDrag=!0;var es={x:0,y:0};if(M(x[0])&&M(x[1])&&(es.x+=x[0],es.y+=x[1],eo)){C.redrawHint("eles",!0);var el=C.touchData.dragDelta;el&&M(el[0])&&M(el[1])&&(es.x+=el[0],es.y+=el[1])}C.hoverData.draggingEles=!0,L.silentShift(es).emit("position drag"),C.redrawHint("drag",!0),C.touchData.startPosition[0]==f[0]&&C.touchData.startPosition[1]==f[1]&&C.redrawHint("eles",!0),C.redraw()}else{var el=C.touchData.dragDelta=C.touchData.dragDelta||[];0===el.length?(el.push(x[0]),el.push(x[1])):(el[0]+=x[0],el[1]+=x[1])}}if(T(ei||O,["touchmove","tapdrag","vmousemove"],e,{x:p[0],y:p[1]}),ei&&ei.grabbed()||O==ea||(ea&&ea.emit({originalEvent:e,type:"tapdragout",position:{x:p[0],y:p[1]}}),O&&O.emit({originalEvent:e,type:"tapdragover",position:{x:p[0],y:p[1]}})),C.touchData.last=O,t)for(var R=0;R<p.length;R++)p[R]&&C.touchData.startPosition[R]&&er&&(C.touchData.singleTouchMoved=!0);if(t&&(null==ei||ei.pannable())&&u.panningEnabled()&&u.userPanningEnabled()){_(ei,C.touchData.starts)&&(e.preventDefault(),C.data.bgActivePosistion||(C.data.bgActivePosistion=tm(C.touchData.startPosition)),C.swipePanning?(u.panBy({x:x[0]*v,y:x[1]*v}),u.emit("dragpan")):er&&(C.swipePanning=!0,u.panBy({x:E*v,y:S*v}),u.emit("dragpan"),ei&&(ei.unactivate(),C.redrawHint("select",!0),C.touchData.start=null)));var y=C.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);p[0]=y[0],p[1]=y[1]}}for(var w=0;w<p.length;w++)f[w]=p[w];t&&e.touches.length>0&&!C.hoverData.draggingEles&&!C.swipePanning&&null!=C.data.bgActivePosistion&&(C.data.bgActivePosistion=void 0,C.redrawHint("select",!0),C.redraw())}},!1),C.registerBinding(S,"touchcancel",b=function(e){var t=C.touchData.start;C.touchData.capture=!1,t&&t.unactivate()}),C.registerBinding(S,"touchend",x=function(e){var t,n=C.touchData.start;if(C.touchData.capture){0===e.touches.length&&(C.touchData.capture=!1),e.preventDefault();var r=C.selection;C.swipePanning=!1,C.hoverData.draggingEles=!1;var i=C.cy,a=i.zoom(),o=C.touchData.now,s=C.touchData.earlier;if(e.touches[0]){var l=C.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);o[0]=l[0],o[1]=l[1]}if(e.touches[1]){var l=C.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY);o[2]=l[0],o[3]=l[1]}if(e.touches[2]){var l=C.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY);o[4]=l[0],o[5]=l[1]}if(n&&n.unactivate(),C.touchData.cxt){if(t={originalEvent:e,type:"cxttapend",position:{x:o[0],y:o[1]}},n?n.emit(t):i.emit(t),!C.touchData.cxtDragged){var u={originalEvent:e,type:"cxttap",position:{x:o[0],y:o[1]}};n?n.emit(u):i.emit(u)}C.touchData.start&&(C.touchData.start._private.grabbed=!1),C.touchData.cxt=!1,C.touchData.start=null,C.redraw();return}if(!e.touches[2]&&i.boxSelectionEnabled()&&C.touchData.selecting){C.touchData.selecting=!1;var c=i.collection(C.getAllInBox(r[0],r[1],r[2],r[3]));r[0]=void 0,r[1]=void 0,r[2]=void 0,r[3]=void 0,r[4]=0,C.redrawHint("select",!0),i.emit({type:"boxend",originalEvent:e,position:{x:o[0],y:o[1]}}),c.emit("box").stdFilter(function(e){return e.selectable()&&!e.selected()}).select().emit("boxselect"),c.nonempty()&&C.redrawHint("eles",!0),C.redraw()}if(null!=n&&n.unactivate(),e.touches[2])C.data.bgActivePosistion=void 0,C.redrawHint("select",!0);else if(e.touches[1]);else if(e.touches[0]);else if(!e.touches[0]){C.data.bgActivePosistion=void 0,C.redrawHint("select",!0);var h=C.dragData.touchDragEles;if(null!=n){var d=n._private.grabbed;F(h),C.redrawHint("drag",!0),C.redrawHint("eles",!0),d&&(n.emit("freeon"),h.emit("free"),C.dragData.didDrag&&(n.emit("dragfreeon"),h.emit("dragfree"))),T(n,["touchend","tapend","vmouseup","tapdragout"],e,{x:o[0],y:o[1]}),n.unactivate(),C.touchData.start=null}else T(C.findNearestElement(o[0],o[1],!0,!0),["touchend","tapend","vmouseup","tapdragout"],e,{x:o[0],y:o[1]});var p=C.touchData.startPosition[0]-o[0],f=C.touchData.startPosition[1]-o[1];C.touchData.singleTouchMoved||(n||i.$(":selected").unselect(["tapunselect"]),T(n,["tap","vclick"],e,{x:o[0],y:o[1]}),w=!1,e.timeStamp-k<=i.multiClickDebounceTime()?(E&&clearTimeout(E),w=!0,k=null,T(n,["dbltap","vdblclick"],e,{x:o[0],y:o[1]})):(E=setTimeout(function(){w||T(n,["onetap","voneclick"],e,{x:o[0],y:o[1]})},i.multiClickDebounceTime()),k=e.timeStamp)),null!=n&&!C.dragData.didDrag&&n._private.selectable&&(p*p+f*f)*a*a<C.touchTapThreshold2&&!C.pinching&&("single"===i.selectionType()?(i.$(D).unmerge(n).unselect(["tapunselect"]),n.select(["tapselect"])):n.selected()?n.unselect(["tapunselect"]):n.select(["tapselect"]),C.redrawHint("eles",!0)),C.touchData.singleTouchMoved=!0}for(var g=0;g<o.length;g++)s[g]=o[g];C.dragData.didDrag=!1,0===e.touches.length&&(C.touchData.dragDelta=[],C.touchData.startPosition=[null,null,null,null,null,null],C.touchData.startGPosition=null,C.touchData.didSelect=!1),e.touches.length<2&&(1===e.touches.length&&(C.touchData.startGPosition=[e.touches[0].clientX,e.touches[0].clientY]),C.pinching=!1,C.redrawHint("eles",!0),C.redraw())}},!1),"undefined"==typeof TouchEvent){var $=[],Q=function(e){return{clientX:e.clientX,clientY:e.clientY,force:1,identifier:e.pointerId,pageX:e.pageX,pageY:e.pageY,radiusX:e.width/2,radiusY:e.height/2,screenX:e.screenX,screenY:e.screenY,target:e.target}},J=function(e){$.push({event:e,touch:Q(e)})},ee=function(e){for(var t=0;t<$.length;t++)if($[t].event.pointerId===e.pointerId){$.splice(t,1);return}},et=function(e){var t=$.filter(function(t){return t.event.pointerId===e.pointerId})[0];t.event=e,t.touch=Q(e)},en=function(e){e.touches=$.map(function(e){return e.touch})},er=function(e){return"mouse"===e.pointerType||4===e.pointerType};C.registerBinding(C.container,"pointerdown",function(e){er(e)||(e.preventDefault(),J(e),en(e),v(e))}),C.registerBinding(C.container,"pointerup",function(e){er(e)||(ee(e),en(e),x(e))}),C.registerBinding(C.container,"pointercancel",function(e){er(e)||(ee(e),en(e),b(e))}),C.registerBinding(C.container,"pointermove",function(e){er(e)||(e.preventDefault(),et(e),en(e),y(e))})}};var sP={};sP.generatePolygon=function(e,t){return this.nodeShapes[e]={renderer:this,name:e,points:t,draw:function(e,t,n,r,i,a){this.renderer.nodeShapeImpl("polygon",e,t,n,r,i,this.points)},intersectLine:function(e,t,n,r,i,a,o,s){return t9(i,a,this.points,e,t,n/2,r/2,o)},checkPoint:function(e,t,n,r,i,a,o,s){return t$(e,t,this.points,a,o,r,i,[0,-1],n)}}},sP.generateEllipse=function(){return this.nodeShapes.ellipse={renderer:this,name:"ellipse",draw:function(e,t,n,r,i,a){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,r,i,a,o,s){return t1(i,a,e,t,n/2+o,r/2+o)},checkPoint:function(e,t,n,r,i,a,o,s){return t2(e,t,r,i,a,o,n)}}},sP.generateRoundPolygon=function(e,t){return this.nodeShapes[e]={renderer:this,name:e,points:t,getOrCreateCorners:function(e,n,r,i,a,o,s){if(void 0!==o[s]&&o[s+"-cx"]===e&&o[s+"-cy"]===n)return o[s];o[s]=Array(t.length/2),o[s+"-cx"]=e,o[s+"-cy"]=n;var l=r/2,u=i/2;a="auto"===a?nr(r,i):a;for(var c=Array(t.length/2),h=0;h<t.length/2;h++)c[h]={x:e+l*t[2*h],y:n+u*t[2*h+1]};var d,p,f,g,v=c.length;for(d=0,p=c[v-1];d<v;d++)f=c[d%v],g=c[(d+1)%v],o[s][d]=sd(p,f,g,a),p=f,f=g;return o[s]},draw:function(e,t,n,r,i,a,o){this.renderer.nodeShapeImpl("round-polygon",e,t,n,r,i,this.points,this.getOrCreateCorners(t,n,r,i,a,o,"drawCorners"))},intersectLine:function(e,t,n,r,i,a,o,s,l){return t6(i,a,this.points,e,t,n,r,o,this.getOrCreateCorners(e,t,n,r,s,l,"corners"))},checkPoint:function(e,t,n,r,i,a,o,s,l){return tQ(e,t,this.points,a,o,r,i,this.getOrCreateCorners(a,o,r,i,s,l,"corners"))}}},sP.generateRoundRectangle=function(){return this.nodeShapes["round-rectangle"]=this.nodeShapes.roundrectangle={renderer:this,name:"round-rectangle",points:t7(4,0),draw:function(e,t,n,r,i,a){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i,this.points,a)},intersectLine:function(e,t,n,r,i,a,o,s){return tX(i,a,e,t,n,r,o,s)},checkPoint:function(e,t,n,r,i,a,o,s){var l=r/2,u=i/2,c=2*(s=Math.min(l,u,s="auto"===s?nn(r,i):s));return!!(t$(e,t,this.points,a,o,r,i-c,[0,-1],n)||t$(e,t,this.points,a,o,r-c,i,[0,-1],n)||t2(e,t,c,c,a-l+s,o-u+s,n)||t2(e,t,c,c,a+l-s,o-u+s,n)||t2(e,t,c,c,a+l-s,o+u-s,n)||t2(e,t,c,c,a-l+s,o+u-s,n))}}},sP.generateCutRectangle=function(){return this.nodeShapes["cut-rectangle"]=this.nodeShapes.cutrectangle={renderer:this,name:"cut-rectangle",cornerLength:ni(),points:t7(4,0),draw:function(e,t,n,r,i,a){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i,null,a)},generateCutTrianglePts:function(e,t,n,r,i){var a="auto"===i?this.cornerLength:i,o=t/2,s=e/2,l=n-s,u=n+s,c=r-o,h=r+o;return{topLeft:[l,c+a,l+a,c,l+a,c+a],topRight:[u-a,c,u,c+a,u-a,c+a],bottomRight:[u,h-a,u-a,h,u-a,h-a],bottomLeft:[l+a,h,l,h-a,l+a,h-a]}},intersectLine:function(e,t,n,r,i,a,o,s){var l=this.generateCutTrianglePts(n+2*o,r+2*o,e,t,s);return t9(i,a,[].concat.apply([],[l.topLeft.splice(0,4),l.topRight.splice(0,4),l.bottomRight.splice(0,4),l.bottomLeft.splice(0,4)]),e,t)},checkPoint:function(e,t,n,r,i,a,o,s){var l="auto"===s?this.cornerLength:s;if(t$(e,t,this.points,a,o,r,i-2*l,[0,-1],n)||t$(e,t,this.points,a,o,r-2*l,i,[0,-1],n))return!0;var u=this.generateCutTrianglePts(r,i,a,o);return tZ(e,t,u.topLeft)||tZ(e,t,u.topRight)||tZ(e,t,u.bottomRight)||tZ(e,t,u.bottomLeft)}}},sP.generateBarrel=function(){return this.nodeShapes.barrel={renderer:this,name:"barrel",points:t7(4,0),draw:function(e,t,n,r,i,a){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,r,i,a,o,s){var l=this.generateBarrelBezierPts(n+2*o,r+2*o,e,t),u=function(e){var t=tM({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},.15),n=tM({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},.5),r=tM({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},.85);return[e[0],e[1],t.x,t.y,n.x,n.y,r.x,r.y,e[4],e[5]]};return t9(i,a,[].concat(u(l.topLeft),u(l.topRight),u(l.bottomRight),u(l.bottomLeft)),e,t)},generateBarrelBezierPts:function(e,t,n,r){var i=t/2,a=e/2,o=n-a,s=n+a,l=r-i,u=r+i,c=na(e,t),h=c.heightOffset,d=c.widthOffset,p=c.ctrlPtOffsetPct*e,f={topLeft:[o,l+h,o+p,l,o+d,l],topRight:[s-d,l,s-p,l,s,l+h],bottomRight:[s,u-h,s-p,u,s-d,u],bottomLeft:[o+d,u,o+p,u,o,u-h]};return f.topLeft.isTop=!0,f.topRight.isTop=!0,f.bottomLeft.isBottom=!0,f.bottomRight.isBottom=!0,f},checkPoint:function(e,t,n,r,i,a,o,s){var l=na(r,i),u=l.heightOffset,c=l.widthOffset;if(t$(e,t,this.points,a,o,r,i-2*u,[0,-1],n)||t$(e,t,this.points,a,o,r-2*c,i,[0,-1],n))return!0;for(var h=this.generateBarrelBezierPts(r,i,a,o),d=Object.keys(h),p=0;p<d.length;p++){var f=h[d[p]],g=function(e,t,n){var r=n[4],i=n[2],a=n[0],o=n[5],s=n[1],l=Math.min(r,a),u=Math.max(r,a),c=Math.min(o,s),h=Math.max(o,s);if(l<=e&&e<=u&&c<=t&&t<=h){var d=[r-2*i+a,2*(i-r),r],p=tH(d[0],d[1],d[2],e).filter(function(e){return 0<=e&&e<=1});if(p.length>0)return p[0]}return null}(e,t,f);if(null!=g){var v=t_(f[5],f[3],f[1],g);if(f.isTop&&v<=t||f.isBottom&&t<=v)return!0}}return!1}}},sP.generateBottomRoundrectangle=function(){return this.nodeShapes["bottom-round-rectangle"]=this.nodeShapes.bottomroundrectangle={renderer:this,name:"bottom-round-rectangle",points:t7(4,0),draw:function(e,t,n,r,i,a){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i,this.points,a)},intersectLine:function(e,t,n,r,i,a,o,s){var l=e-(n/2+o),u=t-(r/2+o),c=e+(n/2+o),h=t4(i,a,e,t,l,u,c,u,!1);return h.length>0?h:tX(i,a,e,t,n,r,o,s)},checkPoint:function(e,t,n,r,i,a,o,s){var l=2*(s="auto"===s?nn(r,i):s);if(t$(e,t,this.points,a,o,r,i-l,[0,-1],n)||t$(e,t,this.points,a,o,r-l,i,[0,-1],n))return!0;var u=r/2+2*n,c=i/2+2*n;return!!(tZ(e,t,[a-u,o-c,a-u,o,a+u,o,a+u,o-c])||t2(e,t,l,l,a+r/2-s,o+i/2-s,n)||t2(e,t,l,l,a-r/2+s,o+i/2-s,n))}}},sP.registerNodeShapes=function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon("triangle",t7(3,0)),this.generateRoundPolygon("round-triangle",t7(3,0)),this.generatePolygon("rectangle",t7(4,0)),e.square=e.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();var n=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",n),this.generateRoundPolygon("round-diamond",n),this.generatePolygon("pentagon",t7(5,0)),this.generateRoundPolygon("round-pentagon",t7(5,0)),this.generatePolygon("hexagon",t7(6,0)),this.generateRoundPolygon("round-hexagon",t7(6,0)),this.generatePolygon("heptagon",t7(7,0)),this.generateRoundPolygon("round-heptagon",t7(7,0)),this.generatePolygon("octagon",t7(8,0)),this.generateRoundPolygon("round-octagon",t7(8,0));var r=Array(20),i=nt(5,0),a=nt(5,Math.PI/5),o=.5*(3-Math.sqrt(5));o*=1.57;for(var s=0;s<a.length/2;s++)a[2*s]*=o,a[2*s+1]*=o;for(var s=0;s<5;s++)r[4*s]=i[2*s],r[4*s+1]=i[2*s+1],r[4*s+2]=a[2*s],r[4*s+3]=a[2*s+1];r=ne(r),this.generatePolygon("star",r),this.generatePolygon("vee",[-1,-1,0,-.333,1,-1,0,1]),this.generatePolygon("rhomboid",[-1,-1,.333,-1,1,1,-.333,1]),this.generatePolygon("right-rhomboid",[-.333,-1,1,-1,.333,1,-1,1]),this.nodeShapes.concavehexagon=this.generatePolygon("concave-hexagon",[-1,-.95,-.75,0,-1,.95,1,.95,.75,0,1,-.95]);var l=[-1,-1,.25,-1,1,0,.25,1,-1,1];this.generatePolygon("tag",l),this.generateRoundPolygon("round-tag",l),e.makePolygon=function(e){var n,r="polygon-"+e.join("$");return(n=this[r])?n:t.generatePolygon(r,e)}};var s_={};s_.timeToRender=function(){return this.redrawTotalTime/this.redrawCount},s_.redraw=function(e){e=e||e3(),void 0===this.averageRedrawTime&&(this.averageRedrawTime=0),void 0===this.lastRedrawTime&&(this.lastRedrawTime=0),void 0===this.lastDrawTime&&(this.lastDrawTime=0),this.requestedFrame=!0,this.renderOptions=e},s_.beforeRender=function(e,t){if(!this.destroyed){null==t&&eQ("Priority is not optional for beforeRender");var n=this.beforeRenderCallbacks;n.push({fn:e,priority:t}),n.sort(function(e,t){return t.priority-e.priority})}};var sM=function(e,t,n){for(var r=e.beforeRenderCallbacks,i=0;i<r.length;i++)r[i].fn(t,n)};s_.startRenderLoop=function(){var e=this,t=e.cy;e.renderLoopStarted||(e.renderLoopStarted=!0,eI(function n(r){if(!e.destroyed){if(t.batching());else if(e.requestedFrame&&!e.skipFrame){sM(e,!0,r);var i=eA();e.render(e.renderOptions);var a=e.lastDrawTime=eA();void 0===e.averageRedrawTime&&(e.averageRedrawTime=a-i),void 0===e.redrawCount&&(e.redrawCount=0),e.redrawCount++,void 0===e.redrawTotalTime&&(e.redrawTotalTime=0);var o=a-i;e.redrawTotalTime+=o,e.lastRedrawTime=o,e.averageRedrawTime=e.averageRedrawTime/2+o/2,e.requestedFrame=!1}else sM(e,!1,r);e.skipFrame=!1,eI(n)}}))};var sB=function(e){this.init(e)},sA=sB.prototype;sA.clientFunctions=["redrawHint","render","renderTo","matchCanvasSize","nodeShapeImpl","arrowShapeImpl"],sA.init=function(e){this.options=e,this.cy=e.cy;var t=this.container=e.cy.container(),n=this.cy.window();if(n){var r=n.document,i=r.head,a="__________cytoscape_stylesheet",o="__________cytoscape_container",s=null!=r.getElementById(a);if(0>t.className.indexOf(o)&&(t.className=(t.className||"")+" "+o),!s){var l=r.createElement("style");l.id=a,l.textContent="."+o+" { position: relative; }",i.insertBefore(l,i.children[0])}"static"===n.getComputedStyle(t).getPropertyValue("position")&&e0("A Cytoscape container has style position:static and so can not use UI extensions properly")}this.selection=[void 0,void 0,void 0,void 0,0],this.bezierProjPcts=[.05,.225,.4,.5,.6,.775,.95],this.hoverData={down:null,last:null,downTime:null,triggerMode:null,dragging:!1,initialPan:[null,null],capture:!1},this.dragData={possibleDragElements:[]},this.touchData={start:null,capture:!1,startPosition:[null,null,null,null,null,null],singleTouchStartTime:null,singleTouchMoved:!0,now:[null,null,null,null,null,null],earlier:[null,null,null,null,null,null]},this.redraws=0,this.showFps=e.showFps,this.debug=e.debug,this.hideEdgesOnViewport=e.hideEdgesOnViewport,this.textureOnViewport=e.textureOnViewport,this.wheelSensitivity=e.wheelSensitivity,this.motionBlurEnabled=e.motionBlur,this.forcedPixelRatio=M(e.pixelRatio)?e.pixelRatio:null,this.motionBlur=e.motionBlur,this.motionBlurOpacity=e.motionBlurOpacity,this.motionBlurTransparency=1-this.motionBlurOpacity,this.motionBlurPxRatio=1,this.mbPxRBlurry=1,this.minMbLowQualFrames=4,this.fullQualityMb=!1,this.clearedForMotionBlur=[],this.desktopTapThreshold=e.desktopTapThreshold,this.desktopTapThreshold2=e.desktopTapThreshold*e.desktopTapThreshold,this.touchTapThreshold=e.touchTapThreshold,this.touchTapThreshold2=e.touchTapThreshold*e.touchTapThreshold,this.tapholdDuration=500,this.bindings=[],this.beforeRenderCallbacks=[],this.beforeRenderPriorities={animations:400,eleCalcs:300,eleTxrDeq:200,lyrTxrDeq:150,lyrTxrSkip:100},this.registerNodeShapes(),this.registerArrowShapes(),this.registerCalculationListeners()},sA.notify=function(e,t){var n=this.cy;if(!this.destroyed){if("init"===e){this.load();return}if("destroy"===e){this.destroy();return}("add"===e||"remove"===e||"move"===e&&n.hasCompoundNodes()||"load"===e||"zorder"===e||"mount"===e)&&this.invalidateCachedZSortedEles(),"viewport"===e&&this.redrawHint("select",!0),("load"===e||"resize"===e||"mount"===e)&&(this.invalidateContainerClientCoordsCache(),this.matchCanvasSize(this.container)),this.redrawHint("eles",!0),this.redrawHint("drag",!0),this.startRenderLoop(),this.redraw()}},sA.destroy=function(){this.destroyed=!0,this.cy.stopAnimationLoop();for(var e=0;e<this.bindings.length;e++){var t=this.bindings[e],n=t.target;(n.off||n.removeEventListener).apply(n,t.args)}if(this.bindings=[],this.beforeRenderCallbacks=[],this.onUpdateEleCalcsFns=[],this.removeObserver&&this.removeObserver.disconnect(),this.styleObserver&&this.styleObserver.disconnect(),this.resizeObserver&&this.resizeObserver.disconnect(),this.labelCalcDiv)try{document.body.removeChild(this.labelCalcDiv)}catch(e){}},sA.isHeadless=function(){return!1},[oF,sS,sD,sT,sP,s_].forEach(function(e){Z(sA,e)});var sN=1e3/60,sI=function(e){return function(){var t=this,n=this.renderer;if(!t.dequeueingSetup){t.dequeueingSetup=!0;var r=eM(function(){n.redrawHint("eles",!0),n.redrawHint("drag",!0),n.redraw()},e.deqRedrawThreshold),i=e.priority||e$;n.beforeRender(function(i,a){var o=eA(),s=n.averageRedrawTime,l=n.lastRedrawTime,u=[],c=n.cy.extent(),h=n.getPixelRatio();for(i||n.flushRenderedStyleQueue();;){var d=eA(),p=d-o,f=d-a;if(l<sN){var g=sN-(i?s:0);if(f>=e.deqFastCost*g)break}else if(i){if(p>=e.deqCost*l||p>=e.deqAvgCost*s)break}else if(f>=e.deqNoDrawCost*sN)break;var v=e.deq(t,h,c);if(v.length>0)for(var y=0;y<v.length;y++)u.push(v[y]);else break}u.length>0&&(e.onDeqd(t,u),!i&&e.shouldRedraw(t,u,h,c)&&r())},i(t))}}},sO=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eK;i(this,e),this.idsByKey=new tn,this.keyForId=new tn,this.cachesByLvl=new tn,this.lvls=[],this.getKey=t,this.doesEleInvalidateKey=n}return o(e,[{key:"getIdsFor",value:function(e){null==e&&eQ("Can not get id list for null key");var t=this.idsByKey,n=this.idsByKey.get(e);return n||(n=new ti,t.set(e,n)),n}},{key:"addIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).add(t)}},{key:"deleteIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).delete(t)}},{key:"getNumberOfIdsForKey",value:function(e){return null==e?0:this.getIdsFor(e).size}},{key:"updateKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t),r=this.getKey(e);this.deleteIdForKey(n,t),this.addIdForKey(r,t),this.keyForId.set(t,r)}},{key:"deleteKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteIdForKey(n,t),this.keyForId.delete(t)}},{key:"keyHasChangedFor",value:function(e){var t=e.id();return this.keyForId.get(t)!==this.getKey(e)}},{key:"isInvalid",value:function(e){return this.keyHasChangedFor(e)||this.doesEleInvalidateKey(e)}},{key:"getCachesAt",value:function(e){var t=this.cachesByLvl,n=this.lvls,r=t.get(e);return r||(r=new tn,t.set(e,r),n.push(e)),r}},{key:"getCache",value:function(e,t){return this.getCachesAt(t).get(e)}},{key:"get",value:function(e,t){var n=this.getKey(e),r=this.getCache(n,t);return null!=r&&this.updateKeyMappingFor(e),r}},{key:"getForCachedKey",value:function(e,t){var n=this.keyForId.get(e.id());return this.getCache(n,t)}},{key:"hasCache",value:function(e,t){return this.getCachesAt(t).has(e)}},{key:"has",value:function(e,t){var n=this.getKey(e);return this.hasCache(n,t)}},{key:"setCache",value:function(e,t,n){n.key=e,this.getCachesAt(t).set(e,n)}},{key:"set",value:function(e,t,n){var r=this.getKey(e);this.setCache(r,t,n),this.updateKeyMappingFor(e)}},{key:"deleteCache",value:function(e,t){this.getCachesAt(t).delete(e)}},{key:"delete",value:function(e,t){var n=this.getKey(e);this.deleteCache(n,t)}},{key:"invalidateKey",value:function(e){var t=this;this.lvls.forEach(function(n){return t.deleteCache(e,n)})}},{key:"invalidate",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteKeyMappingFor(e);var r=this.doesEleInvalidateKey(e);return r&&this.invalidateKey(n),r||0===this.getNumberOfIdsForKey(n)}}]),e}(),sL={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},sR=e4({getKey:null,doesEleInvalidateKey:eK,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:eU,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),sz=function(e,t){this.renderer=e,this.onDequeues=[];var n=sR(t);Z(this,n),this.lookup=new sO(n.getKey,n.doesEleInvalidateKey),this.setupDequeueing()},sV=sz.prototype;sV.reasons=sL,sV.getTextureQueue=function(e){return this.eleImgCaches=this.eleImgCaches||{},this.eleImgCaches[e]=this.eleImgCaches[e]||[]},sV.getRetiredTextureQueue=function(e){var t=this.eleImgCaches.retired=this.eleImgCaches.retired||{};return t[e]=t[e]||[]},sV.getElementQueue=function(){return this.eleCacheQueue=this.eleCacheQueue||new tl(function(e,t){return t.reqs-e.reqs})},sV.getElementKeyToQueue=function(){return this.eleKeyToCacheQueue=this.eleKeyToCacheQueue||{}},sV.getElement=function(e,t,n,r,i){var a,o,s,l=this,u=this.renderer,c=u.cy.zoom(),h=this.lookup;if(!t||0===t.w||0===t.h||isNaN(t.w)||isNaN(t.h)||!e.visible()||e.removed()||!l.allowEdgeTxrCaching&&e.isEdge()||!l.allowParentTxrCaching&&e.isParent())return null;if(null==r&&(r=Math.ceil(tC(c*n))),r<-4)r=-4;else if(c>=7.99||r>3)return null;var d=Math.pow(2,r),p=t.h*d,f=t.w*d,g=u.eleTextBiggerThanMin(e,d);if(!this.isVisible(e,g))return null;var v=h.get(e,r);if(v&&v.invalidated&&(v.invalidated=!1,v.texture.invalidatedWidth-=v.width),v)return v;if(a=p<=25?25:p<=50?50:50*Math.ceil(p/50),p>1024||f>1024)return null;var y=l.getTextureQueue(a),b=y[y.length-2],x=function(){return l.recycleTexture(a,f)||l.addTexture(a,f)};b||(b=y[y.length-1]),b||(b=x()),b.width-b.usedWidth<f&&(b=x());for(var w=function(e){return e&&e.scaledLabelShown===g},E=i&&i===sL.dequeue,k=i&&i===sL.highQuality,C=i&&i===sL.downscale,S=r+1;S<=3;S++){var D=h.get(e,S);if(D){o=D;break}}var T=o&&o.level===r+1?o:null,P=function(){b.context.drawImage(T.texture.canvas,T.x,0,T.width,T.height,b.usedWidth,0,f,p)};if(b.context.setTransform(1,0,0,1,0,0),b.context.clearRect(b.usedWidth,0,f,a),w(T))P();else if(w(o)){if(!k)return l.queueElement(e,o.level-1),o;for(var _=o.level;_>r;_--)T=l.getElement(e,t,n,_,sL.downscale);P()}else{if(!E&&!k&&!C)for(var M=r-1;M>=-4;M--){var B=h.get(e,M);if(B){s=B;break}}if(w(s))return l.queueElement(e,r),s;b.context.translate(b.usedWidth,0),b.context.scale(d,d),this.drawElement(b.context,e,t,g,!1),b.context.scale(1/d,1/d),b.context.translate(-b.usedWidth,0)}return v={x:b.usedWidth,texture:b,level:r,scale:d,width:f,height:p,scaledLabelShown:g},b.usedWidth+=Math.ceil(f+8),b.eleCaches.push(v),h.set(e,r,v),l.checkTextureFullness(b),v},sV.invalidateElements=function(e){for(var t=0;t<e.length;t++)this.invalidateElement(e[t])},sV.invalidateElement=function(e){var t=this.lookup,n=[];if(t.isInvalid(e)){for(var r=-4;r<=3;r++){var i=t.getForCachedKey(e,r);i&&n.push(i)}if(t.invalidate(e))for(var a=0;a<n.length;a++){var o=n[a],s=o.texture;s.invalidatedWidth+=o.width,o.invalidated=!0,this.checkTextureUtility(s)}this.removeFromQueue(e)}},sV.checkTextureUtility=function(e){e.invalidatedWidth>=.2*e.width&&this.retireTexture(e)},sV.checkTextureFullness=function(e){var t=this.getTextureQueue(e.height);e.usedWidth/e.width>.8&&e.fullnessChecks>=10?e9(t,e):e.fullnessChecks++},sV.retireTexture=function(e){var t=e.height,n=this.getTextureQueue(t),r=this.lookup;e9(n,e),e.retired=!0;for(var i=e.eleCaches,a=0;a<i.length;a++){var o=i[a];r.deleteCache(o.key,o.level)}e6(i),this.getRetiredTextureQueue(t).push(e)},sV.addTexture=function(e,t){var n=this.getTextureQueue(e),r={};return n.push(r),r.eleCaches=[],r.height=e,r.width=Math.max(1024,t),r.usedWidth=0,r.invalidatedWidth=0,r.fullnessChecks=0,r.canvas=this.renderer.makeOffscreenCanvas(r.width,r.height),r.context=r.canvas.getContext("2d"),r},sV.recycleTexture=function(e,t){for(var n=this.getTextureQueue(e),r=this.getRetiredTextureQueue(e),i=0;i<r.length;i++){var a=r[i];if(a.width>=t)return a.retired=!1,a.usedWidth=0,a.invalidatedWidth=0,a.fullnessChecks=0,e6(a.eleCaches),a.context.setTransform(1,0,0,1,0,0),a.context.clearRect(0,0,a.width,a.height),e9(r,a),n.push(a),a}},sV.queueElement=function(e,t){var n=this.getElementQueue(),r=this.getElementKeyToQueue(),i=this.getKey(e),a=r[i];if(a)a.level=Math.max(a.level,t),a.eles.merge(e),a.reqs++,n.updateItem(a);else{var o={eles:e.spawn().merge(e),level:t,reqs:1,key:i};n.push(o),r[i]=o}},sV.dequeue=function(e){for(var t=this.getElementQueue(),n=this.getElementKeyToQueue(),r=[],i=this.lookup,a=0;a<1;a++)if(t.size()>0){var o=t.pop(),s=o.key,l=o.eles[0],u=i.hasCache(l,o.level);if(n[s]=null,u)continue;r.push(o);var c=this.getBoundingBox(l);this.getElement(l,c,e,o.level,sL.dequeue)}else break;return r},sV.removeFromQueue=function(e){var t=this.getElementQueue(),n=this.getElementKeyToQueue(),r=this.getKey(e),i=n[r];null!=i&&(1===i.eles.length?(i.reqs=eG,t.updateItem(i),t.pop(),n[r]=null):i.eles.unmerge(e))},sV.onDequeue=function(e){this.onDequeues.push(e)},sV.offDequeue=function(e){e9(this.onDequeues,e)},sV.setupDequeueing=sI({deqRedrawThreshold:100,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(e,t,n){return e.dequeue(t,n)},onDeqd:function(e,t){for(var n=0;n<e.onDequeues.length;n++)(0,e.onDequeues[n])(t)},shouldRedraw:function(e,t,n,r){for(var i=0;i<t.length;i++)for(var a=t[i].eles,o=0;o<a.length;o++)if(tF(a[o].boundingBox(),r))return!0;return!1},priority:function(e){return e.renderer.beforeRenderPriorities.eleTxrDeq}});var sF=function(e){var t=this,n=t.renderer=e,r=n.cy;t.layersByLevel={},t.firstGet=!0,t.lastInvalidationTime=eA()-500,t.skipping=!1,t.eleTxrDeqs=r.collection(),t.scheduleElementRefinement=eM(function(){t.refineElementTextures(t.eleTxrDeqs),t.eleTxrDeqs.unmerge(t.eleTxrDeqs)},50),n.beforeRender(function(e,n){n-t.lastInvalidationTime<=250?t.skipping=!0:t.skipping=!1},n.beforeRenderPriorities.lyrTxrSkip),t.layersQueue=new tl(function(e,t){return t.reqs-e.reqs}),t.setupDequeueing()},sj=sF.prototype,sq=0;sj.makeLayer=function(e,t){var n=Math.pow(2,t),r=Math.ceil(e.w*n),i=Math.ceil(e.h*n),a=this.renderer.makeOffscreenCanvas(r,i),o={id:sq=++sq%9007199254740991,bb:e,level:t,width:r,height:i,canvas:a,context:a.getContext("2d"),eles:[],elesQueue:[],reqs:0},s=o.context,l=-o.bb.x1,u=-o.bb.y1;return s.scale(n,n),s.translate(l,u),o},sj.getLayers=function(e,t,n){var r,i,a=this,o=a.renderer.cy.zoom(),s=a.firstGet;if(a.firstGet=!1,null==n){if((n=Math.ceil(tC(o*t)))<-4)n=-4;else if(o>=3.99||n>2)return null}a.validateLayersElesOrdering(n,e);var l=a.layersByLevel,u=Math.pow(2,n),c=l[n]=l[n]||[];if(a.levelIsComplete(n,e))return c;!function(){var t=function(t){if(a.validateLayersElesOrdering(t,e),a.levelIsComplete(t,e))return i=l[t],!0},r=function(e){if(!i)for(var r=n+e;-4<=r&&r<=2&&!t(r);r+=e);};r(1),r(-1);for(var o=c.length-1;o>=0;o--){var s=c[o];s.invalid&&e9(c,s)}}();var h=function(){if(!r){r=tN();for(var t=0;t<e.length;t++)tO(r,e[t].boundingBox())}return r};if(a.skipping&&!s)return null;for(var d=null,p=e.length/1,f=!s,g=0;g<e.length;g++){var v=e[g],y=v._private.rscratch,b=y.imgLayerCaches=y.imgLayerCaches||{},x=b[n];if(x){d=x;continue}if((!d||d.eles.length>=p||!tq(d.bb,v.boundingBox()))&&!(d=function(e){var t=(e=e||{}).after;if(h(),r.w*u*(r.h*u)>16e6)return null;var i=a.makeLayer(r,n);if(null!=t){var o=c.indexOf(t)+1;c.splice(o,0,i)}else(void 0===e.insert||e.insert)&&c.unshift(i);return i}({insert:!0,after:d})))return null;i||f?a.queueLayer(d,v):a.drawEleInLayer(d,v,n,t),d.eles.push(v),b[n]=d}return i||(f?null:c)},sj.getEleLevelForLayerLevel=function(e,t){return e},sj.drawEleInLayer=function(e,t,n,r){var i=this.renderer,a=e.context,o=t.boundingBox();0!==o.w&&0!==o.h&&t.visible()&&(n=this.getEleLevelForLayerLevel(n,r),i.setImgSmoothing(a,!1),i.drawCachedElement(a,t,null,null,n,!0),i.setImgSmoothing(a,!0))},sj.levelIsComplete=function(e,t){var n=this.layersByLevel[e];if(!n||0===n.length)return!1;for(var r=0,i=0;i<n.length;i++){var a=n[i];if(a.reqs>0||a.invalid)return!1;r+=a.eles.length}return r===t.length},sj.validateLayersElesOrdering=function(e,t){var n=this.layersByLevel[e];if(n)for(var r=0;r<n.length;r++){for(var i=n[r],a=-1,o=0;o<t.length;o++)if(i.eles[0]===t[o]){a=o;break}if(a<0){this.invalidateLayer(i);continue}for(var s=a,o=0;o<i.eles.length;o++)if(i.eles[o]!==t[s+o]){this.invalidateLayer(i);break}}},sj.updateElementsInLayers=function(e,t){for(var n=N(e[0]),r=0;r<e.length;r++)for(var i=n?null:e[r],a=n?e[r]:e[r].ele,o=a._private.rscratch,s=o.imgLayerCaches=o.imgLayerCaches||{},l=-4;l<=2;l++){var u=s[l];u&&(!i||this.getEleLevelForLayerLevel(u.level)===i.level)&&t(u,a,i)}},sj.haveLayers=function(){for(var e=!1,t=-4;t<=2;t++){var n=this.layersByLevel[t];if(n&&n.length>0){e=!0;break}}return e},sj.invalidateElements=function(e){var t=this;0!==e.length&&(t.lastInvalidationTime=eA(),0!==e.length&&t.haveLayers()&&t.updateElementsInLayers(e,function(e,n,r){t.invalidateLayer(e)}))},sj.invalidateLayer=function(e){if(this.lastInvalidationTime=eA(),!e.invalid){var t=e.level,n=e.eles;e9(this.layersByLevel[t],e),e.elesQueue=[],e.invalid=!0,e.replacement&&(e.replacement.invalid=!0);for(var r=0;r<n.length;r++){var i=n[r]._private.rscratch.imgLayerCaches;i&&(i[t]=null)}}},sj.refineElementTextures=function(e){var t=this;t.updateElementsInLayers(e,function(e,n,r){var i=e.replacement;if(i||((i=e.replacement=t.makeLayer(e.bb,e.level)).replaces=e,i.eles=e.eles),!i.reqs)for(var a=0;a<i.eles.length;a++)t.queueLayer(i,i.eles[a])})},sj.enqueueElementRefinement=function(e){this.eleTxrDeqs.merge(e),this.scheduleElementRefinement()},sj.queueLayer=function(e,t){var n=this.layersQueue,r=e.elesQueue,i=r.hasId=r.hasId||{};if(!e.replacement){if(t){if(i[t.id()])return;r.push(t),i[t.id()]=!0}e.reqs?(e.reqs++,n.updateItem(e)):(e.reqs=1,n.push(e))}},sj.dequeue=function(e){for(var t=this.layersQueue,n=[],r=0;r<1&&0!==t.size();){var i=t.peek();if(i.replacement||i.replaces&&i!==i.replaces.replacement||i.invalid){t.pop();continue}var a=i.elesQueue.shift();a&&(this.drawEleInLayer(i,a,i.level,e),r++),0===n.length&&n.push(!0),0===i.elesQueue.length&&(t.pop(),i.reqs=0,i.replaces&&this.applyLayerReplacement(i),this.requestRedraw())}return n},sj.applyLayerReplacement=function(e){var t=this.layersByLevel[e.level],n=e.replaces,r=t.indexOf(n);if(!(r<0)&&!n.invalid){t[r]=e;for(var i=0;i<e.eles.length;i++){var a=e.eles[i]._private,o=a.imgLayerCaches=a.imgLayerCaches||{};o&&(o[e.level]=e)}this.requestRedraw()}},sj.requestRedraw=eM(function(){var e=this.renderer;e.redrawHint("eles",!0),e.redrawHint("drag",!0),e.redraw()},100),sj.setupDequeueing=sI({deqRedrawThreshold:50,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(e,t){return e.dequeue(t)},onDeqd:e$,shouldRedraw:eU,priority:function(e){return e.renderer.beforeRenderPriorities.lyrTxrDeq}});var sX={};function sY(e,t){for(var n=0;n<t.length;n++){var r=t[n];e.lineTo(r.x,r.y)}}function sW(e,t,n){for(var r,i=0;i<t.length;i++){var a=t[i];0===i&&(r=a),e.lineTo(a.x,a.y)}e.quadraticCurveTo(n.x,n.y,r.x,r.y)}function sH(e,t,n){e.beginPath&&e.beginPath();for(var r=0;r<t.length;r++){var i=t[r];e.lineTo(i.x,i.y)}var a=n[0];e.moveTo(a.x,a.y);for(var r=1;r<n.length;r++){var i=n[r];e.lineTo(i.x,i.y)}e.closePath&&e.closePath()}function sG(e,t,n,r,i){e.beginPath&&e.beginPath(),e.arc(n,r,i,0,2*Math.PI,!1);var a=t[0];e.moveTo(a.x,a.y);for(var o=0;o<t.length;o++){var s=t[o];e.lineTo(s.x,s.y)}e.closePath&&e.closePath()}function sU(e,t,n,r){e.arc(t,n,r,0,2*Math.PI,!1)}sX.arrowShapeImpl=function(e){return(y||(y={polygon:sY,"triangle-backcurve":sW,"triangle-tee":sH,"circle-triangle":sG,"triangle-cross":sH,circle:sU}))[e]};var sK={};sK.drawElement=function(e,t,n,r,i,a){t.isNode()?this.drawNode(e,t,n,r,i,a):this.drawEdge(e,t,n,r,i,a)},sK.drawElementOverlay=function(e,t){t.isNode()?this.drawNodeOverlay(e,t):this.drawEdgeOverlay(e,t)},sK.drawElementUnderlay=function(e,t){t.isNode()?this.drawNodeUnderlay(e,t):this.drawEdgeUnderlay(e,t)},sK.drawCachedElementPortion=function(e,t,n,r,i,a,o,s){var l=n.getBoundingBox(t);if(0!==l.w&&0!==l.h){var u=n.getElement(t,l,r,i,a);if(null!=u){var c,h,d,p,f,g,v=s(this,t);if(0===v)return;var y=o(this,t),b=l.x1,x=l.y1,w=l.w,E=l.h;if(0!==y){var k=n.getRotationPoint(t);d=k.x,p=k.y,e.translate(d,p),e.rotate(y),(f=this.getImgSmoothing(e))||this.setImgSmoothing(e,!0);var C=n.getRotationOffset(t);c=C.x,h=C.y}else c=b,h=x;1!==v&&(g=e.globalAlpha,e.globalAlpha=g*v),e.drawImage(u.texture.canvas,u.x,0,u.width,u.height,c,h,w,E),1!==v&&(e.globalAlpha=g),0===y||(e.rotate(-y),e.translate(-d,-p),f||this.setImgSmoothing(e,!1))}else n.drawElement(e,t)}};var sZ=function(){return 0},s$=function(e,t){return e.getTextAngle(t,null)},sQ=function(e,t){return e.getTextAngle(t,"source")},sJ=function(e,t){return e.getTextAngle(t,"target")},s0=function(e,t){return t.effectiveOpacity()},s1=function(e,t){return t.pstyle("text-opacity").pfValue*t.effectiveOpacity()};sK.drawCachedElement=function(e,t,n,r,i,a){var o=this.data,s=o.eleTxrCache,l=o.lblTxrCache,u=o.slbTxrCache,c=o.tlbTxrCache,h=t.boundingBox(),d=!0===a?s.reasons.highQuality:null;if(0!==h.w&&0!==h.h&&t.visible()&&(!r||tF(h,r))){var p=t.isEdge(),f=t.element()._private.rscratch.badLine;this.drawElementUnderlay(e,t),this.drawCachedElementPortion(e,t,s,n,i,d,sZ,s0),p&&f||this.drawCachedElementPortion(e,t,l,n,i,d,s$,s1),p&&!f&&(this.drawCachedElementPortion(e,t,u,n,i,d,sQ,s1),this.drawCachedElementPortion(e,t,c,n,i,d,sJ,s1)),this.drawElementOverlay(e,t)}},sK.drawElements=function(e,t){for(var n=0;n<t.length;n++){var r=t[n];this.drawElement(e,r)}},sK.drawCachedElements=function(e,t,n,r){for(var i=0;i<t.length;i++){var a=t[i];this.drawCachedElement(e,a,n,r)}},sK.drawCachedNodes=function(e,t,n,r){for(var i=0;i<t.length;i++){var a=t[i];a.isNode()&&this.drawCachedElement(e,a,n,r)}},sK.drawLayeredElements=function(e,t,n,r){var i=this.data.lyrTxrCache.getLayers(t,n);if(i)for(var a=0;a<i.length;a++){var o=i[a],s=o.bb;0!==s.w&&0!==s.h&&e.drawImage(o.canvas,s.x1,s.y1,s.w,s.h)}else this.drawCachedElements(e,t,n,r)};var s2={};s2.drawEdge=function(e,t,n){var r,i=!(arguments.length>3)||void 0===arguments[3]||arguments[3],a=!(arguments.length>4)||void 0===arguments[4]||arguments[4],o=!(arguments.length>5)||void 0===arguments[5]||arguments[5],s=this,l=t._private.rscratch;if(!(o&&!t.visible()||l.badLine||null==l.allpts||isNaN(l.allpts[0]))){n&&(r=n,e.translate(-r.x1,-r.y1));var u=o?t.pstyle("opacity").value:1,c=o?t.pstyle("line-opacity").value:1,h=t.pstyle("curve-style").value,d=t.pstyle("line-style").value,p=t.pstyle("width").pfValue,f=t.pstyle("line-cap").value,g=t.pstyle("line-outline-width").value,v=t.pstyle("line-outline-color").value,y=u*c,b=u*c,x=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y;"straight-triangle"===h?(s.eleStrokeStyle(e,t,n),s.drawEdgeTrianglePath(t,e,l.allpts)):(e.lineWidth=p,e.lineCap=f,s.eleStrokeStyle(e,t,n),s.drawEdgePath(t,e,l.allpts,d),e.lineCap="butt")},w=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:b;s.drawArrowheads(e,t,n)};if(e.lineJoin="round","yes"===t.pstyle("ghost").value){var E=t.pstyle("ghost-offset-x").pfValue,k=t.pstyle("ghost-offset-y").pfValue,C=y*t.pstyle("ghost-opacity").value;e.translate(E,k),x(C),w(C),e.translate(-E,-k)}else!function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y;if(e.lineWidth=p+g,e.lineCap=f,g>0)s.colorStrokeStyle(e,v[0],v[1],v[2],n);else{e.lineCap="butt";return}"straight-triangle"===h?s.drawEdgeTrianglePath(t,e,l.allpts):(s.drawEdgePath(t,e,l.allpts,d),e.lineCap="butt")}();a&&s.drawEdgeUnderlay(e,t),x(),w(),a&&s.drawEdgeOverlay(e,t),s.drawElementText(e,t,null,i),n&&e.translate(r.x1,r.y1)}};var s5=function(e){if(!["overlay","underlay"].includes(e))throw Error("Invalid state");return function(t,n){if(n.visible()){var r=n.pstyle("".concat(e,"-opacity")).value;if(0!==r){var i=this.usePaths(),a=n._private.rscratch,o=n.pstyle("".concat(e,"-padding")).pfValue,s=n.pstyle("".concat(e,"-color")).value;t.lineWidth=2*o,"self"!==a.edgeType||i?t.lineCap="round":t.lineCap="butt",this.colorStrokeStyle(t,s[0],s[1],s[2],r),this.drawEdgePath(n,t,a.allpts,"solid")}}}};s2.drawEdgeOverlay=s5("overlay"),s2.drawEdgeUnderlay=s5("underlay"),s2.drawEdgePath=function(e,t,n,r){var i=e._private.rscratch,a=t,o=!1,s=this.usePaths(),l=e.pstyle("line-dash-pattern").pfValue,u=e.pstyle("line-dash-offset").pfValue;if(s){var c=n.join("$");i.pathCacheKey&&i.pathCacheKey===c?(f=t=i.pathCache,o=!0):(f=t=new Path2D,i.pathCacheKey=c,i.pathCache=f)}if(a.setLineDash)switch(r){case"dotted":a.setLineDash([1,1]);break;case"dashed":a.setLineDash(l),a.lineDashOffset=u;break;case"solid":a.setLineDash([])}if(!o&&!i.badLine)switch(t.beginPath&&t.beginPath(),t.moveTo(n[0],n[1]),i.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var d=2;d+3<n.length;d+=4)t.quadraticCurveTo(n[d],n[d+1],n[d+2],n[d+3]);break;case"straight":case"haystack":for(var p=2;p+1<n.length;p+=2)t.lineTo(n[p],n[p+1]);break;case"segments":if(i.isRound){var f,g,v=h(i.roundCorners);try{for(v.s();!(g=v.n()).done;){var y=g.value;sh(t,y)}}catch(e){v.e(e)}finally{v.f()}t.lineTo(n[n.length-2],n[n.length-1])}else for(var b=2;b+1<n.length;b+=2)t.lineTo(n[b],n[b+1])}t=a,s?t.stroke(f):t.stroke(),t.setLineDash&&t.setLineDash([])},s2.drawEdgeTrianglePath=function(e,t,n){t.fillStyle=t.strokeStyle;for(var r=e.pstyle("width").pfValue,i=0;i+1<n.length;i+=2){var a=[n[i+2]-n[i],n[i+3]-n[i+1]],o=Math.sqrt(a[0]*a[0]+a[1]*a[1]),s=[a[1]/o,-a[0]/o],l=[s[0]*r/2,s[1]*r/2];t.beginPath(),t.moveTo(n[i]-l[0],n[i+1]-l[1]),t.lineTo(n[i]+l[0],n[i+1]+l[1]),t.lineTo(n[i+2],n[i+3]),t.closePath(),t.fill()}},s2.drawArrowheads=function(e,t,n){var r=t._private.rscratch,i="haystack"===r.edgeType;i||this.drawArrowhead(e,t,"source",r.arrowStartX,r.arrowStartY,r.srcArrowAngle,n),this.drawArrowhead(e,t,"mid-target",r.midX,r.midY,r.midtgtArrowAngle,n),this.drawArrowhead(e,t,"mid-source",r.midX,r.midY,r.midsrcArrowAngle,n),i||this.drawArrowhead(e,t,"target",r.arrowEndX,r.arrowEndY,r.tgtArrowAngle,n)},s2.drawArrowhead=function(e,t,n,r,i,a,o){if(!(isNaN(r)||null==r||isNaN(i)||null==i||isNaN(a))&&null!=a){var s=t.pstyle(n+"-arrow-shape").value;if("none"!==s){var l="hollow"===t.pstyle(n+"-arrow-fill").value?"both":"filled",u=t.pstyle(n+"-arrow-fill").value,c=t.pstyle("width").pfValue,h=t.pstyle(n+"-arrow-width"),d="match-line"===h.value?c:h.pfValue;"%"===h.units&&(d*=c);var p=t.pstyle("opacity").value;void 0===o&&(o=p);var f=e.globalCompositeOperation;(1!==o||"hollow"===u)&&(e.globalCompositeOperation="destination-out",this.colorFillStyle(e,255,255,255,1),this.colorStrokeStyle(e,255,255,255,1),this.drawArrowShape(t,e,l,c,s,d,r,i,a),e.globalCompositeOperation=f);var g=t.pstyle(n+"-arrow-color").value;this.colorFillStyle(e,g[0],g[1],g[2],o),this.colorStrokeStyle(e,g[0],g[1],g[2],o),this.drawArrowShape(t,e,u,c,s,d,r,i,a)}}},s2.drawArrowShape=function(e,t,n,r,i,a,o,s,l){var u,c=this.usePaths()&&"triangle-cross"!==i,h=!1,d=t,p=e.pstyle("arrow-scale").value,f=this.getArrowWidth(r,p),g=this.arrowShapes[i];if(c){var v=this.arrowPathCache=this.arrowPathCache||[],y=ej(i),b=v[y];null!=b?(u=t=b,h=!0):(u=t=new Path2D,v[y]=u)}!h&&(t.beginPath&&t.beginPath(),c?g.draw(t,1,0,{x:0,y:0},1):g.draw(t,f,l,{x:o,y:s},r),t.closePath&&t.closePath()),t=d,c&&(t.translate(o,s),t.rotate(l),t.scale(f,f)),("filled"===n||"both"===n)&&(c?t.fill(u):t.fill()),("hollow"===n||"both"===n)&&(t.lineWidth=a/(c?f:1),t.lineJoin="miter",c?t.stroke(u):t.stroke()),c&&(t.scale(1/f,1/f),t.rotate(-l),t.translate(-o,-s))};var s3={};s3.safeDrawImage=function(e,t,n,r,i,a,o,s,l,u){if(!(i<=0)&&!(a<=0)&&!(l<=0)&&!(u<=0))try{e.drawImage(t,n,r,i,a,o,s,l,u)}catch(e){e0(e)}},s3.drawInscribedImage=function(e,t,n,r,i){var a=n.position(),o=a.x,s=a.y,l=n.cy().style(),u=l.getIndexedStyle.bind(l),c=u(n,"background-fit","value",r),h=u(n,"background-repeat","value",r),d=n.width(),p=n.height(),f=2*n.padding(),g=d+("inner"===u(n,"background-width-relative-to","value",r)?0:f),v=p+("inner"===u(n,"background-height-relative-to","value",r)?0:f),y=n._private.rscratch,b="node"===u(n,"background-clip","value",r),x=u(n,"background-image-opacity","value",r)*i,w=u(n,"background-image-smoothing","value",r),E=n.pstyle("corner-radius").value;"auto"!==E&&(E=n.pstyle("corner-radius").pfValue);var k=t.width||t.cachedW,C=t.height||t.cachedH;(null==k||null==C)&&(document.body.appendChild(t),k=t.cachedW=t.width||t.offsetWidth,C=t.cachedH=t.height||t.offsetHeight,document.body.removeChild(t));var S=k,D=C;if("auto"!==u(n,"background-width","value",r)&&(S="%"===u(n,"background-width","units",r)?u(n,"background-width","pfValue",r)*g:u(n,"background-width","pfValue",r)),"auto"!==u(n,"background-height","value",r)&&(D="%"===u(n,"background-height","units",r)?u(n,"background-height","pfValue",r)*v:u(n,"background-height","pfValue",r)),0!==S&&0!==D){if("contain"===c){var T=Math.min(g/S,v/D);S*=T,D*=T}else if("cover"===c){var T=Math.max(g/S,v/D);S*=T,D*=T}var P=o-g/2,_=u(n,"background-position-x","units",r),M=u(n,"background-position-x","pfValue",r);"%"===_?P+=(g-S)*M:P+=M;var B=u(n,"background-offset-x","units",r),A=u(n,"background-offset-x","pfValue",r);"%"===B?P+=(g-S)*A:P+=A;var N=s-v/2,I=u(n,"background-position-y","units",r),O=u(n,"background-position-y","pfValue",r);"%"===I?N+=(v-D)*O:N+=O;var L=u(n,"background-offset-y","units",r),R=u(n,"background-offset-y","pfValue",r);"%"===L?N+=(v-D)*R:N+=R,y.pathCache&&(P-=o,N-=s,o=0,s=0);var z=e.globalAlpha;e.globalAlpha=x;var V=this.getImgSmoothing(e),F=!1;if("no"===w&&V?(this.setImgSmoothing(e,!1),F=!0):"yes"!==w||V||(this.setImgSmoothing(e,!0),F=!0),"no-repeat"===h)b&&(e.save(),y.pathCache?e.clip(y.pathCache):(this.nodeShapes[this.getNodeShape(n)].draw(e,o,s,g,v,E,y),e.clip())),this.safeDrawImage(e,t,0,0,k,C,P,N,S,D),b&&e.restore();else{var j=e.createPattern(t,h);e.fillStyle=j,this.nodeShapes[this.getNodeShape(n)].draw(e,o,s,g,v,E,y),e.translate(P,N),e.fill(),e.translate(-P,-N)}e.globalAlpha=z,F&&this.setImgSmoothing(e,V)}};var s4={};function s9(e,t,n,r,i){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:5,o=arguments.length>6?arguments[6]:void 0;e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+r-a,n),e.quadraticCurveTo(t+r,n,t+r,n+a),e.lineTo(t+r,n+i-a),e.quadraticCurveTo(t+r,n+i,t+r-a,n+i),e.lineTo(t+a,n+i),e.quadraticCurveTo(t,n+i,t,n+i-a),e.lineTo(t,n+a),e.quadraticCurveTo(t,n,t+a,n),e.closePath(),o?e.stroke():e.fill()}s4.eleTextBiggerThanMin=function(e,t){return t||(t=Math.pow(2,Math.ceil(tC(e.cy().zoom()*this.getPixelRatio())))),!(e.pstyle("font-size").pfValue*t<e.pstyle("min-zoomed-font-size").pfValue)},s4.drawElementText=function(e,t,n,r,i){var a,o=!(arguments.length>5)||void 0===arguments[5]||arguments[5];if(null==r){if(o&&!this.eleTextBiggerThanMin(t))return}else if(!1===r)return;if(t.isNode()){var s=t.pstyle("label");if(!s||!s.value)return;var l=this.getLabelJustification(t);e.textAlign=l,e.textBaseline="bottom"}else{var u=t.element()._private.rscratch.badLine,c=t.pstyle("label"),h=t.pstyle("source-label"),d=t.pstyle("target-label");if(u||(!c||!c.value)&&(!h||!h.value)&&(!d||!d.value))return;e.textAlign="center",e.textBaseline="bottom"}var p=!n;n&&(a=n,e.translate(-a.x1,-a.y1)),null==i?(this.drawText(e,t,null,p,o),t.isEdge()&&(this.drawText(e,t,"source",p,o),this.drawText(e,t,"target",p,o))):this.drawText(e,t,i,p,o),n&&e.translate(a.x1,a.y1)},s4.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var n=0;n<this.fontCaches.length;n++)if((t=this.fontCaches[n]).context===e)return t;return t={context:e},this.fontCaches.push(t),t},s4.setupTextStyle=function(e,t){var n=!(arguments.length>2)||void 0===arguments[2]||arguments[2],r=t.pstyle("font-style").strValue,i=t.pstyle("font-size").pfValue+"px",a=t.pstyle("font-family").strValue,o=t.pstyle("font-weight").strValue,s=n?t.effectiveOpacity()*t.pstyle("text-opacity").value:1,l=t.pstyle("text-outline-opacity").value*s,u=t.pstyle("color").value,c=t.pstyle("text-outline-color").value;e.font=r+" "+o+" "+i+" "+a,e.lineJoin="round",this.colorFillStyle(e,u[0],u[1],u[2],s),this.colorStrokeStyle(e,c[0],c[1],c[2],l)},s4.getTextAngle=function(e,t){var n=e._private.rscratch,r=t?t+"-":"",i=e.pstyle(r+"text-rotation"),a=e7(n,"labelAngle",t);return"autorotate"===i.strValue?e.isEdge()?a:0:"none"===i.strValue?0:i.pfValue},s4.drawText=function(e,t,n){var r=!(arguments.length>3)||void 0===arguments[3]||arguments[3],i=!(arguments.length>4)||void 0===arguments[4]||arguments[4],a=t._private.rscratch,o=i?t.effectiveOpacity():1;if(!i||0!==o&&0!==t.pstyle("text-opacity").value){"main"===n&&(n=null);var s=e7(a,"labelX",n),l=e7(a,"labelY",n),u=this.getLabelText(t,n);if(null!=u&&""!==u&&!isNaN(s)&&!isNaN(l)){this.setupTextStyle(e,t,i);var c,h,d,p=n?n+"-":"",f=e7(a,"labelWidth",n),g=e7(a,"labelHeight",n),v=t.pstyle(p+"text-margin-x").pfValue,y=t.pstyle(p+"text-margin-y").pfValue,b=t.isEdge(),x=t.pstyle("text-halign").value,w=t.pstyle("text-valign").value;switch(b&&(x="center",w="center"),s+=v,l+=y,0!==(d=r?this.getTextAngle(t,n):0)&&(c=s,h=l,e.translate(c,h),e.rotate(d),s=0,l=0),w){case"top":break;case"center":l+=g/2;break;case"bottom":l+=g}var E=t.pstyle("text-background-opacity").value,k=t.pstyle("text-border-opacity").value,C=t.pstyle("text-border-width").pfValue,S=t.pstyle("text-background-padding").pfValue,D=0===t.pstyle("text-background-shape").strValue.indexOf("round");if(E>0||C>0&&k>0){var T=s-S;switch(x){case"left":T-=f;break;case"center":T-=f/2}var P=l-g-S,_=f+2*S,M=g+2*S;if(E>0){var B=e.fillStyle,A=t.pstyle("text-background-color").value;e.fillStyle="rgba("+A[0]+","+A[1]+","+A[2]+","+E*o+")",D?s9(e,T,P,_,M,2):e.fillRect(T,P,_,M),e.fillStyle=B}if(C>0&&k>0){var N=e.strokeStyle,I=e.lineWidth,O=t.pstyle("text-border-color").value,L=t.pstyle("text-border-style").value;if(e.strokeStyle="rgba("+O[0]+","+O[1]+","+O[2]+","+k*o+")",e.lineWidth=C,e.setLineDash)switch(L){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=C/4,e.setLineDash([]);break;case"solid":e.setLineDash([])}if(D?s9(e,T,P,_,M,2,"stroke"):e.strokeRect(T,P,_,M),"double"===L){var R=C/2;D?s9(e,T+R,P+R,_-2*R,M-2*R,2,"stroke"):e.strokeRect(T+R,P+R,_-2*R,M-2*R)}e.setLineDash&&e.setLineDash([]),e.lineWidth=I,e.strokeStyle=N}}var z=2*t.pstyle("text-outline-width").pfValue;if(z>0&&(e.lineWidth=z),"wrap"===t.pstyle("text-wrap").value){var V=e7(a,"labelWrapCachedLines",n),F=e7(a,"labelLineHeight",n),j=f/2,q=this.getLabelJustification(t);switch("auto"===q||("left"===x?"left"===q?s+=-f:"center"===q&&(s+=-j):"center"===x?"left"===q?s+=-j:"right"===q&&(s+=j):"right"===x&&("center"===q?s+=j:"right"===q&&(s+=f))),w){case"top":case"center":case"bottom":l-=(V.length-1)*F}for(var X=0;X<V.length;X++)z>0&&e.strokeText(V[X],s,l),e.fillText(V[X],s,l),l+=F}else z>0&&e.strokeText(u,s,l),e.fillText(u,s,l);0!==d&&(e.rotate(-d),e.translate(-c,-h))}}};var s6={};s6.drawNode=function(e,t,n){var r,i,a,o,s=!(arguments.length>3)||void 0===arguments[3]||arguments[3],l=!(arguments.length>4)||void 0===arguments[4]||arguments[4],u=!(arguments.length>5)||void 0===arguments[5]||arguments[5],c=this,h=t._private,d=h.rscratch,p=t.position();if(M(p.x)&&M(p.y)&&(!u||t.visible())){var f=u?t.effectiveOpacity():1,g=c.usePaths(),v=!1,y=t.padding();r=t.width()+2*y,i=t.height()+2*y,n&&(o=n,e.translate(-o.x1,-o.y1));for(var b=t.pstyle("background-image").value,x=Array(b.length),w=Array(b.length),E=0,k=0;k<b.length;k++){var C=b[k];if(x[k]=null!=C&&"none"!==C){var S=t.cy().style().getIndexedStyle(t,"background-image-crossorigin","value",k);E++,w[k]=c.getCachedImage(C,S,function(){h.backgroundTimestamp=Date.now(),t.emitAndNotify("background")})}}var D=t.pstyle("background-blacken").value,T=t.pstyle("border-width").pfValue,P=t.pstyle("background-opacity").value*f,_=t.pstyle("border-color").value,B=t.pstyle("border-style").value,A=t.pstyle("border-join").value,N=t.pstyle("border-cap").value,I=t.pstyle("border-position").value,O=t.pstyle("border-dash-pattern").pfValue,L=t.pstyle("border-dash-offset").pfValue,R=t.pstyle("border-opacity").value*f,z=t.pstyle("outline-width").pfValue,V=t.pstyle("outline-color").value,F=t.pstyle("outline-style").value,j=t.pstyle("outline-opacity").value*f,q=t.pstyle("outline-offset").value,X=t.pstyle("corner-radius").value;"auto"!==X&&(X=t.pstyle("corner-radius").pfValue);var Y=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:P;c.eleFillStyle(e,t,n)},W=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:R;c.colorStrokeStyle(e,_[0],_[1],_[2],t)},H=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:j;c.colorStrokeStyle(e,V[0],V[1],V[2],t)},G=function(e,t,n,r){var i,a=c.nodePathCache=c.nodePathCache||[],o=eq("polygon"===n?n+","+r.join(","):n,""+t,""+e,""+X),s=a[o],l=!1;return null!=s?(i=s,l=!0,d.pathCache=i):(i=new Path2D,a[o]=d.pathCache=i),{path:i,cacheHit:l}},U=t.pstyle("shape").strValue,K=t.pstyle("shape-polygon-points").pfValue;if(g){e.translate(p.x,p.y);var Z=G(r,i,U,K);a=Z.path,v=Z.cacheHit}var $=function(){if(!v){var n=p;g&&(n={x:0,y:0}),c.nodeShapes[c.getNodeShape(t)].draw(a||e,n.x,n.y,r,i,X,d)}g?e.fill(a):e.fill()},Q=function(){for(var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,r=!(arguments.length>1)||void 0===arguments[1]||arguments[1],i=h.backgrounding,a=0,o=0;o<w.length;o++){var s=t.cy().style().getIndexedStyle(t,"background-image-containment","value",o);if(r&&"over"===s||!r&&"inside"===s){a++;continue}x[o]&&w[o].complete&&!w[o].error&&(a++,c.drawInscribedImage(e,w[o],t,o,n))}h.backgrounding=a!==E,i!==h.backgrounding&&t.updateStyle(!1)},J=function(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f;c.hasPie(t)&&(c.drawPie(e,t,a),n&&!g&&c.nodeShapes[c.getNodeShape(t)].draw(e,p.x,p.y,r,i,X,d))},ee=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,n=D>0?0:255;0!==D&&(c.colorFillStyle(e,n,n,n,(D>0?D:-D)*t),g?e.fill(a):e.fill())},et=function(){if(T>0){if(e.lineWidth=T,e.lineCap=N,e.lineJoin=A,e.setLineDash)switch(B){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash(O),e.lineDashOffset=L;break;case"solid":case"double":e.setLineDash([])}if("center"!==I){if(e.save(),e.lineWidth*=2,"inside"===I)g?e.clip(a):e.clip();else{var t=new Path2D;t.rect(-r/2-T,-i/2-T,r+2*T,i+2*T),t.addPath(a),e.clip(t,"evenodd")}g?e.stroke(a):e.stroke(),e.restore()}else g?e.stroke(a):e.stroke();if("double"===B){e.lineWidth=T/3;var n=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",g?e.stroke(a):e.stroke(),e.globalCompositeOperation=n}e.setLineDash&&e.setLineDash([])}},en=function(){if(z>0){if(e.lineWidth=z,e.lineCap="butt",e.setLineDash)switch(F){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([])}var n=p;g&&(n={x:0,y:0});var a=c.getNodeShape(t),o=T;"inside"===I&&(o=0),"outside"===I&&(o*=2);var s=(r+o+(z+q))/r,l=(i+o+(z+q))/i,u=r*s,h=i*l,d=c.nodeShapes[a].points;if(g&&(S=G(u,h,a,d).path),"ellipse"===a)c.drawEllipsePath(S||e,n.x,n.y,u,h);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(a)){var f=0,v=0,y=0;"round-diamond"===a?f=(o+q+z)*1.4:"round-heptagon"===a?(f=(o+q+z)*1.075,y=-(o/2+q+z)/35):"round-hexagon"===a?f=(o+q+z)*1.12:"round-pentagon"===a?(f=(o+q+z)*1.13,y=-(o/2+q+z)/15):"round-tag"===a?(f=(o+q+z)*1.12,v=(o/2+z+q)*.07):"round-triangle"===a&&(f=Math.PI/2*(o+q+z),y=-(o+q/2+z)/Math.PI),0===f||(s=(r+f)/r,u=r*s,["round-hexagon","round-tag"].includes(a)||(l=(i+f)/i,h=i*l)),X="auto"===X?nr(u,h):X;for(var b=u/2,x=h/2,w=X+(o+z+q)/2,E=Array(d.length/2),k=Array(d.length/2),C=0;C<d.length/2;C++)E[C]={x:n.x+v+b*d[2*C],y:n.y+y+x*d[2*C+1]};var S,D,P,_,M,B=E.length;for(D=0,P=E[B-1];D<B;D++)_=E[D%B],M=E[(D+1)%B],k[D]=sd(P,_,M,w),P=_,_=M;c.drawRoundPolygonPath(S||e,n.x+v,n.y+y,r*s,i*l,d,k)}else["roundrectangle","round-rectangle"].includes(a)?(X="auto"===X?nn(u,h):X,c.drawRoundRectanglePath(S||e,n.x,n.y,u,h,X+(o+z+q)/2)):["cutrectangle","cut-rectangle"].includes(a)?(X="auto"===X?ni():X,c.drawCutRectanglePath(S||e,n.x,n.y,u,h,null,X+(o+z+q)/4)):["bottomroundrectangle","bottom-round-rectangle"].includes(a)?(X="auto"===X?nn(u,h):X,c.drawBottomRoundRectanglePath(S||e,n.x,n.y,u,h,X+(o+z+q)/2)):"barrel"===a?c.drawBarrelPath(S||e,n.x,n.y,u,h):(d=a.startsWith("polygon")||["rhomboid","right-rhomboid","round-tag","tag","vee"].includes(a)?tJ(t0(d,(o+z+q)/r)):tJ(t0(d,-((o+z+q)/r))),c.drawPolygonPath(S||e,n.x,n.y,r,i,d));if(g?e.stroke(S):e.stroke(),"double"===F){e.lineWidth=o/3;var A=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",g?e.stroke(S):e.stroke(),e.globalCompositeOperation=A}e.setLineDash&&e.setLineDash([])}};if("yes"===t.pstyle("ghost").value){var er=t.pstyle("ghost-offset-x").pfValue,ei=t.pstyle("ghost-offset-y").pfValue,ea=t.pstyle("ghost-opacity").value,eo=ea*f;e.translate(er,ei),H(),en(),Y(ea*P),$(),Q(eo,!0),W(ea*R),et(),J(0!==D||0!==T),Q(eo,!1),ee(eo),e.translate(-er,-ei)}g&&e.translate(-p.x,-p.y),l&&c.drawNodeUnderlay(e,t,p,r,i),g&&e.translate(p.x,p.y),H(),en(),Y(),$(),Q(f,!0),W(),et(),J(0!==D||0!==T),Q(f,!1),ee(),g&&e.translate(-p.x,-p.y),c.drawElementText(e,t,null,s),l&&c.drawNodeOverlay(e,t,p,r,i),n&&e.translate(o.x1,o.y1)}};var s8=function(e){if(!["overlay","underlay"].includes(e))throw Error("Invalid state");return function(t,n,r,i,a){if(n.visible()){var o=n.pstyle("".concat(e,"-padding")).pfValue,s=n.pstyle("".concat(e,"-opacity")).value,l=n.pstyle("".concat(e,"-color")).value,u=n.pstyle("".concat(e,"-shape")).value,c=n.pstyle("".concat(e,"-corner-radius")).value;if(s>0){if(r=r||n.position(),null==i||null==a){var h=n.padding();i=n.width()+2*h,a=n.height()+2*h}this.colorFillStyle(t,l[0],l[1],l[2],s),this.nodeShapes[u].draw(t,r.x,r.y,i+2*o,a+2*o,c),t.fill()}}}};s6.drawNodeOverlay=s8("overlay"),s6.drawNodeUnderlay=s8("underlay"),s6.hasPie=function(e){return(e=e[0])._private.hasPie},s6.drawPie=function(e,t,n,r){t=t[0],r=r||t.position();var i=t.cy().style(),a=t.pstyle("pie-size"),o=r.x,s=r.y,l=Math.min(t.width(),t.height())/2,u=0;this.usePaths()&&(o=0,s=0),"%"===a.units?l*=a.pfValue:void 0!==a.pfValue&&(l=a.pfValue/2);for(var c=1;c<=i.pieBackgroundN;c++){var h=t.pstyle("pie-"+c+"-background-size").value,d=t.pstyle("pie-"+c+"-background-color").value,p=t.pstyle("pie-"+c+"-background-opacity").value*n,f=h/100;f+u>1&&(f=1-u);var g=1.5*Math.PI+2*Math.PI*u,v=g+2*Math.PI*f;0===h||u>=1||u+f>1||(e.beginPath(),e.moveTo(o,s),e.arc(o,s,l,g,v),e.closePath(),this.colorFillStyle(e,d[0],d[1],d[2],p),e.fill(),u+=f)}};var s7={};s7.getPixelRatio=function(){var e=this.data.contexts[0];if(null!=this.forcedPixelRatio)return this.forcedPixelRatio;var t=this.cy.window(),n=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(t.devicePixelRatio||1)/n},s7.paintCache=function(e){for(var t,n=this.paintCaches=this.paintCaches||[],r=!0,i=0;i<n.length;i++)if((t=n[i]).context===e){r=!1;break}return r&&(t={context:e},n.push(t)),t},s7.createGradientStyleFor=function(e,t,n,r,i){var a,o=this.usePaths(),s=n.pstyle(t+"-gradient-stop-colors").value,l=n.pstyle(t+"-gradient-stop-positions").pfValue;if("radial-gradient"===r){if(n.isEdge()){var u=n.sourceEndpoint(),c=n.targetEndpoint(),h=n.midpoint(),d=tD(u,h),p=tD(c,h);a=e.createRadialGradient(h.x,h.y,0,h.x,h.y,Math.max(d,p))}else{var f=o?{x:0,y:0}:n.position(),g=n.paddedWidth(),v=n.paddedHeight();a=e.createRadialGradient(f.x,f.y,0,f.x,f.y,Math.max(g,v))}}else if(n.isEdge()){var y=n.sourceEndpoint(),b=n.targetEndpoint();a=e.createLinearGradient(y.x,y.y,b.x,b.y)}else{var x=o?{x:0,y:0}:n.position(),w=n.paddedWidth(),E=n.paddedHeight(),k=w/2,C=E/2;switch(n.pstyle("background-gradient-direction").value){case"to-bottom":a=e.createLinearGradient(x.x,x.y-C,x.x,x.y+C);break;case"to-top":a=e.createLinearGradient(x.x,x.y+C,x.x,x.y-C);break;case"to-left":a=e.createLinearGradient(x.x+k,x.y,x.x-k,x.y);break;case"to-right":a=e.createLinearGradient(x.x-k,x.y,x.x+k,x.y);break;case"to-bottom-right":case"to-right-bottom":a=e.createLinearGradient(x.x-k,x.y-C,x.x+k,x.y+C);break;case"to-top-right":case"to-right-top":a=e.createLinearGradient(x.x-k,x.y+C,x.x+k,x.y-C);break;case"to-bottom-left":case"to-left-bottom":a=e.createLinearGradient(x.x+k,x.y-C,x.x-k,x.y+C);break;case"to-top-left":case"to-left-top":a=e.createLinearGradient(x.x+k,x.y+C,x.x-k,x.y-C)}}if(!a)return null;for(var S=l.length===s.length,D=s.length,T=0;T<D;T++)a.addColorStop(S?l[T]:T/(D-1),"rgba("+s[T][0]+","+s[T][1]+","+s[T][2]+","+i+")");return a},s7.gradientFillStyle=function(e,t,n,r){var i=this.createGradientStyleFor(e,"background",t,n,r);if(!i)return null;e.fillStyle=i},s7.colorFillStyle=function(e,t,n,r,i){e.fillStyle="rgba("+t+","+n+","+r+","+i+")"},s7.eleFillStyle=function(e,t,n){var r=t.pstyle("background-fill").value;if("linear-gradient"===r||"radial-gradient"===r)this.gradientFillStyle(e,t,r,n);else{var i=t.pstyle("background-color").value;this.colorFillStyle(e,i[0],i[1],i[2],n)}},s7.gradientStrokeStyle=function(e,t,n,r){var i=this.createGradientStyleFor(e,"line",t,n,r);if(!i)return null;e.strokeStyle=i},s7.colorStrokeStyle=function(e,t,n,r,i){e.strokeStyle="rgba("+t+","+n+","+r+","+i+")"},s7.eleStrokeStyle=function(e,t,n){var r=t.pstyle("line-fill").value;if("linear-gradient"===r||"radial-gradient"===r)this.gradientStrokeStyle(e,t,r,n);else{var i=t.pstyle("line-color").value;this.colorStrokeStyle(e,i[0],i[1],i[2],n)}},s7.matchCanvasSize=function(e){var t,n=this.data,r=this.findContainerClientCoords(),i=r[2],a=r[3],o=this.getPixelRatio(),s=this.motionBlurPxRatio;(e===this.data.bufferCanvases[this.MOTIONBLUR_BUFFER_NODE]||e===this.data.bufferCanvases[this.MOTIONBLUR_BUFFER_DRAG])&&(o=s);var l=i*o,u=a*o;if(l!==this.canvasWidth||u!==this.canvasHeight){this.fontCaches=null;var c=n.canvasContainer;c.style.width=i+"px",c.style.height=a+"px";for(var h=0;h<this.CANVAS_LAYERS;h++)(t=n.canvases[h]).width=l,t.height=u,t.style.width=i+"px",t.style.height=a+"px";for(var h=0;h<this.BUFFER_COUNT;h++)(t=n.bufferCanvases[h]).width=l,t.height=u,t.style.width=i+"px",t.style.height=a+"px";this.textureMult=1,o<=1&&(t=n.bufferCanvases[this.TEXTURE_BUFFER],this.textureMult=2,t.width=l*this.textureMult,t.height=u*this.textureMult),this.canvasWidth=l,this.canvasHeight=u}},s7.renderTo=function(e,t,n,r){this.render({forcedContext:e,forcedZoom:t,forcedPan:n,drawAllLayers:!0,forcedPxRatio:r})},s7.render=function(e){var t=(e=e||e3()).forcedContext,n=e.drawAllLayers,r=e.drawOnlyNodeLayer,i=e.forcedZoom,a=e.forcedPan,o=this,s=void 0===e.forcedPxRatio?this.getPixelRatio():e.forcedPxRatio,l=o.cy,u=o.data,c=u.canvasNeedsRedraw,h=o.textureOnViewport&&!t&&(o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming),d=void 0!==e.motionBlur?e.motionBlur:o.motionBlur,p=o.motionBlurPxRatio,f=l.hasCompoundNodes(),g=o.hoverData.draggingEles,v=!!o.hoverData.selecting||!!o.touchData.selecting,y=d=d&&!t&&o.motionBlurEnabled&&!v;t||(o.prevPxRatio!==s&&(o.invalidateContainerClientCoordsCache(),o.matchCanvasSize(o.container),o.redrawHint("eles",!0),o.redrawHint("drag",!0)),o.prevPxRatio=s),!t&&o.motionBlurTimeout&&clearTimeout(o.motionBlurTimeout),d&&(null==o.mbFrames&&(o.mbFrames=0),o.mbFrames++,o.mbFrames<3&&(y=!1),o.mbFrames>o.minMbLowQualFrames&&(o.motionBlurPxRatio=o.mbPxRBlurry)),o.clearingMotionBlur&&(o.motionBlurPxRatio=1),o.textureDrawLastFrame&&!h&&(c[o.NODE]=!0,c[o.SELECT_BOX]=!0);var b=l.style(),x=l.zoom(),w=void 0!==i?i:x,E=l.pan(),k={x:E.x,y:E.y},C={zoom:x,pan:{x:E.x,y:E.y}},S=o.prevViewport;void 0===S||C.zoom!==S.zoom||C.pan.x!==S.pan.x||C.pan.y!==S.pan.y||g&&!f||(o.motionBlurPxRatio=1),a&&(k=a),w*=s,k.x*=s,k.y*=s;var D=o.getCachedZSortedEles();function T(e,t,n,r,i){var a=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",o.colorFillStyle(e,255,255,255,o.motionBlurTransparency),e.fillRect(t,n,r,i),e.globalCompositeOperation=a}function P(e,r){var s,l,c,h;o.clearingMotionBlur||e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]&&e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]?(s=k,l=w,c=o.canvasWidth,h=o.canvasHeight):(s={x:E.x*p,y:E.y*p},l=x*p,c=o.canvasWidth*p,h=o.canvasHeight*p),e.setTransform(1,0,0,1,0,0),"motionBlur"===r?T(e,0,0,c,h):!t&&(void 0===r||r)&&e.clearRect(0,0,c,h),n||(e.translate(s.x,s.y),e.scale(l,l)),a&&e.translate(a.x,a.y),i&&e.scale(i,i)}if(h||(o.textureDrawLastFrame=!1),h){if(o.textureDrawLastFrame=!0,!o.textureCache){o.textureCache={},o.textureCache.bb=l.mutableElements().boundingBox(),o.textureCache.texture=o.data.bufferCanvases[o.TEXTURE_BUFFER];var _=o.data.bufferContexts[o.TEXTURE_BUFFER];_.setTransform(1,0,0,1,0,0),_.clearRect(0,0,o.canvasWidth*o.textureMult,o.canvasHeight*o.textureMult),o.render({forcedContext:_,drawOnlyNodeLayer:!0,forcedPxRatio:s*o.textureMult});var C=o.textureCache.viewport={zoom:l.zoom(),pan:l.pan(),width:o.canvasWidth,height:o.canvasHeight};C.mpan={x:(0-C.pan.x)/C.zoom,y:(0-C.pan.y)/C.zoom}}c[o.DRAG]=!1,c[o.NODE]=!1;var M=u.contexts[o.NODE],B=o.textureCache.texture,C=o.textureCache.viewport;M.setTransform(1,0,0,1,0,0),d?T(M,0,0,C.width,C.height):M.clearRect(0,0,C.width,C.height);var A=b.core("outside-texture-bg-color").value,N=b.core("outside-texture-bg-opacity").value;o.colorFillStyle(M,A[0],A[1],A[2],N),M.fillRect(0,0,C.width,C.height);var x=l.zoom();P(M,!1),M.clearRect(C.mpan.x,C.mpan.y,C.width/C.zoom/s,C.height/C.zoom/s),M.drawImage(B,C.mpan.x,C.mpan.y,C.width/C.zoom/s,C.height/C.zoom/s)}else o.textureOnViewport&&!t&&(o.textureCache=null);var I=l.extent(),O=o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming||o.hoverData.draggingEles||o.cy.animated(),L=o.hideEdgesOnViewport&&O,R=[];if(R[o.NODE]=!c[o.NODE]&&d&&!o.clearedForMotionBlur[o.NODE]||o.clearingMotionBlur,R[o.NODE]&&(o.clearedForMotionBlur[o.NODE]=!0),R[o.DRAG]=!c[o.DRAG]&&d&&!o.clearedForMotionBlur[o.DRAG]||o.clearingMotionBlur,R[o.DRAG]&&(o.clearedForMotionBlur[o.DRAG]=!0),c[o.NODE]||n||r||R[o.NODE]){var z=d&&!R[o.NODE]&&1!==p,M=t||(z?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]:u.contexts[o.NODE]);P(M,d&&!z?"motionBlur":void 0),L?o.drawCachedNodes(M,D.nondrag,s,I):o.drawLayeredElements(M,D.nondrag,s,I),o.debug&&o.drawDebugPoints(M,D.nondrag),n||d||(c[o.NODE]=!1)}if(!r&&(c[o.DRAG]||n||R[o.DRAG])){var z=d&&!R[o.DRAG]&&1!==p,M=t||(z?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]:u.contexts[o.DRAG]);P(M,d&&!z?"motionBlur":void 0),L?o.drawCachedNodes(M,D.drag,s,I):o.drawCachedElements(M,D.drag,s,I),o.debug&&o.drawDebugPoints(M,D.drag),n||d||(c[o.DRAG]=!1)}if(o.showFps||!r&&c[o.SELECT_BOX]&&!n){var M=t||u.contexts[o.SELECT_BOX];if(P(M),1==o.selection[4]&&(o.hoverData.selecting||o.touchData.selecting)){var x=o.cy.zoom(),V=b.core("selection-box-border-width").value/x;M.lineWidth=V,M.fillStyle="rgba("+b.core("selection-box-color").value[0]+","+b.core("selection-box-color").value[1]+","+b.core("selection-box-color").value[2]+","+b.core("selection-box-opacity").value+")",M.fillRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]),V>0&&(M.strokeStyle="rgba("+b.core("selection-box-border-color").value[0]+","+b.core("selection-box-border-color").value[1]+","+b.core("selection-box-border-color").value[2]+","+b.core("selection-box-opacity").value+")",M.strokeRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]))}if(u.bgActivePosistion&&!o.hoverData.selecting){var x=o.cy.zoom(),F=u.bgActivePosistion;M.fillStyle="rgba("+b.core("active-bg-color").value[0]+","+b.core("active-bg-color").value[1]+","+b.core("active-bg-color").value[2]+","+b.core("active-bg-opacity").value+")",M.beginPath(),M.arc(F.x,F.y,b.core("active-bg-size").pfValue/x,0,2*Math.PI),M.fill()}var j=o.lastRedrawTime;if(o.showFps&&j){var q=Math.round(1e3/(j=Math.round(j)));M.setTransform(1,0,0,1,0,0),M.fillStyle="rgba(255, 0, 0, 0.75)",M.strokeStyle="rgba(255, 0, 0, 0.75)",M.lineWidth=1,M.fillText("1 frame = "+j+" ms = "+q+" fps",0,20),M.strokeRect(0,30,250,20),M.fillRect(0,30,250*Math.min(q/60,1),20)}n||(c[o.SELECT_BOX]=!1)}if(d&&1!==p){var X=u.contexts[o.NODE],Y=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_NODE],W=u.contexts[o.DRAG],H=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_DRAG],G=function(e,t,n){e.setTransform(1,0,0,1,0,0),n||!y?e.clearRect(0,0,o.canvasWidth,o.canvasHeight):T(e,0,0,o.canvasWidth,o.canvasHeight),e.drawImage(t,0,0,o.canvasWidth*p,o.canvasHeight*p,0,0,o.canvasWidth,o.canvasHeight)};(c[o.NODE]||R[o.NODE])&&(G(X,Y,R[o.NODE]),c[o.NODE]=!1),(c[o.DRAG]||R[o.DRAG])&&(G(W,H,R[o.DRAG]),c[o.DRAG]=!1)}o.prevViewport=C,o.clearingMotionBlur&&(o.clearingMotionBlur=!1,o.motionBlurCleared=!0,o.motionBlur=!0),d&&(o.motionBlurTimeout=setTimeout(function(){o.motionBlurTimeout=null,o.clearedForMotionBlur[o.NODE]=!1,o.clearedForMotionBlur[o.DRAG]=!1,o.motionBlur=!1,o.clearingMotionBlur=!h,o.mbFrames=0,c[o.NODE]=!0,c[o.DRAG]=!0,o.redraw()},100)),t||l.emit("render")};var le={};le.drawPolygonPath=function(e,t,n,r,i,a){var o=r/2,s=i/2;e.beginPath&&e.beginPath(),e.moveTo(t+o*a[0],n+s*a[1]);for(var l=1;l<a.length/2;l++)e.lineTo(t+o*a[2*l],n+s*a[2*l+1]);e.closePath()},le.drawRoundPolygonPath=function(e,t,n,r,i,a,o){o.forEach(function(t){return sh(e,t)}),e.closePath()},le.drawRoundRectanglePath=function(e,t,n,r,i,a){var o=r/2,s=i/2,l="auto"===a?nn(r,i):Math.min(a,s,o);e.beginPath&&e.beginPath(),e.moveTo(t,n-s),e.arcTo(t+o,n-s,t+o,n,l),e.arcTo(t+o,n+s,t,n+s,l),e.arcTo(t-o,n+s,t-o,n,l),e.arcTo(t-o,n-s,t,n-s,l),e.lineTo(t,n-s),e.closePath()},le.drawBottomRoundRectanglePath=function(e,t,n,r,i,a){var o=r/2,s=i/2,l="auto"===a?nn(r,i):a;e.beginPath&&e.beginPath(),e.moveTo(t,n-s),e.lineTo(t+o,n-s),e.lineTo(t+o,n),e.arcTo(t+o,n+s,t,n+s,l),e.arcTo(t-o,n+s,t-o,n,l),e.lineTo(t-o,n-s),e.lineTo(t,n-s),e.closePath()},le.drawCutRectanglePath=function(e,t,n,r,i,a,o){var s=r/2,l=i/2,u="auto"===o?ni():o;e.beginPath&&e.beginPath(),e.moveTo(t-s+u,n-l),e.lineTo(t+s-u,n-l),e.lineTo(t+s,n-l+u),e.lineTo(t+s,n+l-u),e.lineTo(t+s-u,n+l),e.lineTo(t-s+u,n+l),e.lineTo(t-s,n+l-u),e.lineTo(t-s,n-l+u),e.closePath()},le.drawBarrelPath=function(e,t,n,r,i){var a=r/2,o=i/2,s=t-a,l=t+a,u=n-o,c=n+o,h=na(r,i),d=h.widthOffset,p=h.heightOffset,f=h.ctrlPtOffsetPct*d;e.beginPath&&e.beginPath(),e.moveTo(s,u+p),e.lineTo(s,c-p),e.quadraticCurveTo(s+f,c,s+d,c),e.lineTo(l-d,c),e.quadraticCurveTo(l-f,c,l,c-p),e.lineTo(l,u+p),e.quadraticCurveTo(l-f,u,l-d,u),e.lineTo(s+d,u),e.quadraticCurveTo(s+f,u,s,u+p),e.closePath()};for(var lt={},ln={},lr=Math.PI/40,li=0*Math.PI;li<2*Math.PI;li+=lr)lt[li]=Math.sin(li),ln[li]=Math.cos(li);le.drawEllipsePath=function(e,t,n,r,i){if(e.beginPath&&e.beginPath(),e.ellipse)e.ellipse(t,n,r/2,i/2,0,0,2*Math.PI);else for(var a,o,s=r/2,l=i/2,u=0*Math.PI;u<2*Math.PI;u+=lr)a=t-s*lt[u]*0+s*ln[u]*1,o=n+l*ln[u]*0+l*lt[u]*1,0===u?e.moveTo(a,o):e.lineTo(a,o);e.closePath()};var la={};function lo(e){var t=e.indexOf(",");return e.substr(t+1)}function ls(e,t,n){var r=function(){return t.toDataURL(n,e.quality)};switch(e.output){case"blob-promise":return new ru(function(r,i){try{t.toBlob(function(e){null!=e?r(e):i(Error("`canvas.toBlob()` sent a null value in its callback"))},n,e.quality)}catch(e){i(e)}});case"blob":return function(e,t){for(var n=atob(e),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return new Blob([r],{type:t})}(lo(r()),n);case"base64":return lo(r());default:return r()}}la.createBuffer=function(e,t){var n=document.createElement("canvas");return n.width=e,n.height=t,[n,n.getContext("2d")]},la.bufferCanvasImage=function(e){var t=this.cy,n=t.mutableElements().boundingBox(),r=this.findContainerClientCoords(),i=e.full?Math.ceil(n.w):r[2],a=e.full?Math.ceil(n.h):r[3],o=M(e.maxWidth)||M(e.maxHeight),s=this.getPixelRatio(),l=1;if(void 0!==e.scale)i*=e.scale,a*=e.scale,l=e.scale;else if(o){var u=1/0,c=1/0;M(e.maxWidth)&&(u=l*e.maxWidth/i),M(e.maxHeight)&&(c=l*e.maxHeight/a),i*=l=Math.min(u,c),a*=l}o||(i*=s,a*=s,l*=s);var h=document.createElement("canvas");h.width=i,h.height=a,h.style.width=i+"px",h.style.height=a+"px";var d=h.getContext("2d");if(i>0&&a>0){d.clearRect(0,0,i,a),d.globalCompositeOperation="source-over";var p=this.getCachedZSortedEles();if(e.full)d.translate(-n.x1*l,-n.y1*l),d.scale(l,l),this.drawElements(d,p),d.scale(1/l,1/l),d.translate(n.x1*l,n.y1*l);else{var f=t.pan(),g={x:f.x*l,y:f.y*l};l*=t.zoom(),d.translate(g.x,g.y),d.scale(l,l),this.drawElements(d,p),d.scale(1/l,1/l),d.translate(-g.x,-g.y)}e.bg&&(d.globalCompositeOperation="destination-over",d.fillStyle=e.bg,d.rect(0,0,i,a),d.fill())}return h},la.png=function(e){return ls(e,this.bufferCanvasImage(e),"image/png")},la.jpg=function(e){return ls(e,this.bufferCanvasImage(e),"image/jpeg")};var ll={};ll.nodeShapeImpl=function(e,t,n,r,i,a,o,s){switch(e){case"ellipse":return this.drawEllipsePath(t,n,r,i,a);case"polygon":return this.drawPolygonPath(t,n,r,i,a,o);case"round-polygon":return this.drawRoundPolygonPath(t,n,r,i,a,o,s);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(t,n,r,i,a,s);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(t,n,r,i,a,o,s);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(t,n,r,i,a,s);case"barrel":return this.drawBarrelPath(t,n,r,i,a)}};var lu=lc.prototype;function lc(e){var t=this,n=t.cy.window().document;t.data={canvases:Array(lu.CANVAS_LAYERS),contexts:Array(lu.CANVAS_LAYERS),canvasNeedsRedraw:Array(lu.CANVAS_LAYERS),bufferCanvases:Array(lu.BUFFER_COUNT),bufferContexts:Array(lu.CANVAS_LAYERS)};var r="-webkit-tap-highlight-color",i="rgba(0,0,0,0)";t.data.canvasContainer=n.createElement("div");var a=t.data.canvasContainer.style;t.data.canvasContainer.style[r]=i,a.position="relative",a.zIndex="0",a.overflow="hidden";var o=e.cy.container();o.appendChild(t.data.canvasContainer),o.style[r]=i;var s={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};x&&x.userAgent.match(/msie|trident|edge/i)&&(s["-ms-touch-action"]="none",s["touch-action"]="none");for(var l=0;l<lu.CANVAS_LAYERS;l++){var u=t.data.canvases[l]=n.createElement("canvas");t.data.contexts[l]=u.getContext("2d"),Object.keys(s).forEach(function(e){u.style[e]=s[e]}),u.style.position="absolute",u.setAttribute("data-id","layer"+l),u.style.zIndex=String(lu.CANVAS_LAYERS-l),t.data.canvasContainer.appendChild(u),t.data.canvasNeedsRedraw[l]=!1}t.data.topCanvas=t.data.canvases[0],t.data.canvases[lu.NODE].setAttribute("data-id","layer"+lu.NODE+"-node"),t.data.canvases[lu.SELECT_BOX].setAttribute("data-id","layer"+lu.SELECT_BOX+"-selectbox"),t.data.canvases[lu.DRAG].setAttribute("data-id","layer"+lu.DRAG+"-drag");for(var l=0;l<lu.BUFFER_COUNT;l++)t.data.bufferCanvases[l]=n.createElement("canvas"),t.data.bufferContexts[l]=t.data.bufferCanvases[l].getContext("2d"),t.data.bufferCanvases[l].style.position="absolute",t.data.bufferCanvases[l].setAttribute("data-id","buffer"+l),t.data.bufferCanvases[l].style.zIndex=String(-l-1),t.data.bufferCanvases[l].style.visibility="hidden";t.pathsEnabled=!0;var c=tN(),h=function(e){return{x:-e.w/2,y:-e.h/2}},d=function(e){return e.boundingBox(),e[0]._private.bodyBounds},p=function(e){return e.boundingBox(),e[0]._private.labelBounds.main||c},f=function(e){return e.boundingBox(),e[0]._private.labelBounds.source||c},g=function(e){return e.boundingBox(),e[0]._private.labelBounds.target||c},v=function(e,t){return t},y=function(e,t,n){var r=e?e+"-":"";return{x:t.x+n.pstyle(r+"text-margin-x").pfValue,y:t.y+n.pstyle(r+"text-margin-y").pfValue}},b=function(e,t,n){var r=e[0]._private.rscratch;return{x:r[t],y:r[n]}},w=t.data.eleTxrCache=new sz(t,{getKey:function(e){return e[0]._private.nodeKey},doesEleInvalidateKey:function(e){var t=e[0]._private;return t.oldBackgroundTimestamp!==t.backgroundTimestamp},drawElement:function(e,n,r,i,a){return t.drawElement(e,n,r,!1,!1,a)},getBoundingBox:d,getRotationPoint:function(e){var t;return{x:((t=d(e)).x1+t.x2)/2,y:(t.y1+t.y2)/2}},getRotationOffset:function(e){return h(d(e))},allowEdgeTxrCaching:!1,allowParentTxrCaching:!1}),E=t.data.lblTxrCache=new sz(t,{getKey:function(e){return e[0]._private.labelStyleKey},drawElement:function(e,n,r,i,a){return t.drawElementText(e,n,r,i,"main",a)},getBoundingBox:p,getRotationPoint:function(e){return y("",b(e,"labelX","labelY"),e)},getRotationOffset:function(e){var t=p(e),n=h(p(e));if(e.isNode()){switch(e.pstyle("text-halign").value){case"left":n.x=-t.w;break;case"right":n.x=0}switch(e.pstyle("text-valign").value){case"top":n.y=-t.h;break;case"bottom":n.y=0}}return n},isVisible:v}),k=t.data.slbTxrCache=new sz(t,{getKey:function(e){return e[0]._private.sourceLabelStyleKey},drawElement:function(e,n,r,i,a){return t.drawElementText(e,n,r,i,"source",a)},getBoundingBox:f,getRotationPoint:function(e){return y("source",b(e,"sourceLabelX","sourceLabelY"),e)},getRotationOffset:function(e){return h(f(e))},isVisible:v}),C=t.data.tlbTxrCache=new sz(t,{getKey:function(e){return e[0]._private.targetLabelStyleKey},drawElement:function(e,n,r,i,a){return t.drawElementText(e,n,r,i,"target",a)},getBoundingBox:g,getRotationPoint:function(e){return y("target",b(e,"targetLabelX","targetLabelY"),e)},getRotationOffset:function(e){return h(g(e))},isVisible:v}),S=t.data.lyrTxrCache=new sF(t);t.onUpdateEleCalcs(function(e,t){w.invalidateElements(t),E.invalidateElements(t),k.invalidateElements(t),C.invalidateElements(t),S.invalidateElements(t);for(var n=0;n<t.length;n++){var r=t[n]._private;r.oldBackgroundTimestamp=r.backgroundTimestamp}});var D=function(e){for(var t=0;t<e.length;t++)S.enqueueElementRefinement(e[t].ele)};w.onDequeue(D),E.onDequeue(D),k.onDequeue(D),C.onDequeue(D)}lu.CANVAS_LAYERS=3,lu.SELECT_BOX=0,lu.DRAG=1,lu.NODE=2,lu.BUFFER_COUNT=3,lu.TEXTURE_BUFFER=0,lu.MOTIONBLUR_BUFFER_NODE=1,lu.MOTIONBLUR_BUFFER_DRAG=2,lu.redrawHint=function(e,t){switch(e){case"eles":this.data.canvasNeedsRedraw[lu.NODE]=t;break;case"drag":this.data.canvasNeedsRedraw[lu.DRAG]=t;break;case"select":this.data.canvasNeedsRedraw[lu.SELECT_BOX]=t}};var lh="undefined"!=typeof Path2D;lu.path2dEnabled=function(e){if(void 0===e)return this.pathsEnabled;this.pathsEnabled=!!e},lu.usePaths=function(){return lh&&this.pathsEnabled},lu.setImgSmoothing=function(e,t){null!=e.imageSmoothingEnabled?e.imageSmoothingEnabled=t:(e.webkitImageSmoothingEnabled=t,e.mozImageSmoothingEnabled=t,e.msImageSmoothingEnabled=t)},lu.getImgSmoothing=function(e){return null!=e.imageSmoothingEnabled?e.imageSmoothingEnabled:e.webkitImageSmoothingEnabled||e.mozImageSmoothingEnabled||e.msImageSmoothingEnabled},lu.makeOffscreenCanvas=function(e,t){var n;return("undefined"==typeof OffscreenCanvas?"undefined":r(OffscreenCanvas))!=="undefined"?n=new OffscreenCanvas(e,t):((n=this.cy.window().document.createElement("canvas")).width=e,n.height=t),n},[sX,sK,s2,s3,s4,s6,s7,le,la,ll].forEach(function(e){Z(lu,e)});var ld=[{name:"null",impl:oR},{name:"base",impl:sB},{name:"canvas",impl:lc}],lp={},lf={};function lg(e,t,n){var r=n,i=function(n){e0("Can not register `"+t+"` for `"+e+"` since `"+n+"` already exists in the prototype and can not be overridden")};if("core"===e){if(a9.prototype[t])return i(t);a9.prototype[t]=n}else if("collection"===e){if(a_.prototype[t])return i(t);a_.prototype[t]=n}else if("layout"===e){for(var a=function(e){this.options=e,n.call(this,e),_(this._private)||(this._private={}),this._private.cy=e.cy,this._private.listeners=[],this.createEmitter()},o=a.prototype=Object.create(n.prototype),s=[],l=0;l<s.length;l++){var u=s[l];o[u]=o[u]||function(){return this}}o.start&&!o.run?o.run=function(){return this.start(),this}:!o.start&&o.run&&(o.start=function(){return this.run(),this});var c=n.prototype.stop;o.stop=function(){var e=this.options;if(e&&e.animate){var t=this.animations;if(t)for(var n=0;n<t.length;n++)t[n].stop()}return c?c.call(this):this.emit("layoutstop"),this},o.destroy||(o.destroy=function(){return this}),o.cy=function(){return this._private.cy};var h=function(e){return e._private.cy},d={addEventFields:function(e,t){t.layout=e,t.cy=h(e),t.target=e},bubble:function(){return!0},parent:function(e){return h(e)}};Z(o,{createEmitter:function(){return this._private.emitter=new i9(d,this),this},emitter:function(){return this._private.emitter},on:function(e,t){return this.emitter().on(e,t),this},one:function(e,t){return this.emitter().one(e,t),this},once:function(e,t){return this.emitter().one(e,t),this},removeListener:function(e,t){return this.emitter().removeListener(e,t),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},emit:function(e,t){return this.emitter().emit(e,t),this}}),r8.eventAliasesOn(o),r=a}else if("renderer"===e&&"null"!==t&&"base"!==t){var p=lv("renderer","base"),f=p.prototype,g=n.prototype,v=function(){p.apply(this,arguments),n.apply(this,arguments)},y=v.prototype;for(var b in f){var x=f[b];if(null!=g[b])return i(b);y[b]=x}for(var w in g)y[w]=g[w];f.clientFunctions.forEach(function(e){y[e]=y[e]||function(){eQ("Renderer does not implement `renderer."+e+"()` on its prototype")}}),r=v}else if("__proto__"===e||"constructor"===e||"prototype"===e)return eQ(e+" is an illegal type to be registered, possibly lead to prototype pollutions");return et({map:lp,keys:[e,t],value:r})}function lv(e,t){return en({map:lp,keys:[e,t]})}function ly(e,t,n,r,i){return et({map:lf,keys:[e,t,n,r],value:i})}function lm(e,t,n,r){return en({map:lf,keys:[e,t,n,r]})}var lb=function(){return 2==arguments.length?lv.apply(null,arguments):3==arguments.length?lg.apply(null,arguments):4==arguments.length?lm.apply(null,arguments):5==arguments.length?ly.apply(null,arguments):void eQ("Invalid extension access syntax")};a9.prototype.extension=lb,[{type:"layout",extensions:oL},{type:"renderer",extensions:ld}].forEach(function(e){e.extensions.forEach(function(t){lg(e.type,t.name,t.impl)})});var lx=function e(){if(!(this instanceof e))return new e;this.length=0},lw=lx.prototype;lw.instanceString=function(){return"stylesheet"},lw.selector=function(e){return this[this.length++]={selector:e,properties:[]},this},lw.css=function(e,t){var n=this.length-1;if(D(e))this[n].properties.push({name:e,value:t});else if(_(e))for(var r=Object.keys(e),i=0;i<r.length;i++){var a=r[i],o=e[a];if(null!=o){var s=a2.properties[a]||a2.properties[j(a)];if(null!=s){var l=s.name;this[n].properties.push({name:l,value:o})}}}return this},lw.style=lw.css,lw.generateStyle=function(e){var t=new a2(e);return this.appendToStyle(t)},lw.appendToStyle=function(e){for(var t=0;t<this.length;t++){var n=this[t],r=n.selector,i=n.properties;e.selector(r);for(var a=0;a<i.length;a++){var o=i[a];e.css(o.name,o.value)}}return e};var lE=function(e){return(void 0===e&&(e={}),_(e))?new a9(e):D(e)?lb.apply(lb,arguments):void 0};lE.use=function(e){var t=Array.prototype.slice.call(arguments,1);return t.unshift(lE),e.apply(null,t),this},lE.warnings=function(e){return eJ(e)},lE.version="3.30.2",lE.stylesheet=lE.Stylesheet=lx}}]); \ No newline at end of file diff --git a/assets/js/60972.f101f65d.js b/assets/js/60972.f101f65d.js deleted file mode 100644 index 0fc559351c..0000000000 --- a/assets/js/60972.f101f65d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[60972],{60972:(t,e,u)=>{let s,i;u.d(e,{d:()=>ta,f:()=>tn,p:()=>c});var r=u(93126),n=u(17367),a=function(){var t=function(t,e,u,s){for(u=u||{},s=t.length;s--;u[t[s]]=e);return u},e=[1,9],u=[1,7],s=[1,6],i=[1,8],r=[1,20,21,22,23,38,45,47,49,53,69,92,93,94,95,96,97,110,113,114,117,119,122,123,124,129,130,131,132],n=[2,10],a=[1,20],c=[1,21],l=[1,22],o=[1,23],h=[1,30],A=[1,32],p=[1,33],d=[1,34],y=[1,56],E=[1,55],f=[1,36],D=[1,37],b=[1,38],k=[1,39],_=[1,40],F=[1,51],g=[1,53],T=[1,49],C=[1,54],B=[1,50],S=[1,57],m=[1,52],v=[1,58],x=[1,59],L=[1,41],I=[1,42],R=[1,43],N=[1,44],$=[1,62],O=[1,67],P=[1,20,21,22,23,38,43,45,47,49,53,69,92,93,94,95,96,97,110,113,114,117,119,122,123,124,129,130,131,132],w=[1,71],U=[1,70],M=[1,72],V=[20,21,23,84,86],G=[1,98],K=[1,103],j=[1,102],Y=[1,99],X=[1,95],z=[1,101],H=[1,97],W=[1,104],Q=[1,100],q=[1,105],Z=[1,96],J=[20,21,22,23,84,86],tt=[20,21,22,23,55,84,86],te=[20,21,22,23,40,53,55,57,59,61,63,65,67,69,72,74,76,77,79,84,86,97,110,113,114,117,119,122,123,124],tu=[20,21,23],ts=[20,21,23,53,69,84,86,97,110,113,114,117,119,122,123,124],ti=[1,12,20,21,22,23,24,38,43,45,47,49,53,69,92,93,94,95,96,97,110,113,114,117,119,122,123,124,129,130,131,132],tr=[53,69,97,110,113,114,117,119,122,123,124],tn=[1,134],ta=[1,133],tc=[1,141],tl=[1,155],to=[1,156],th=[1,157],tA=[1,158],tp=[1,143],td=[1,145],ty=[1,149],tE=[1,150],tf=[1,151],tD=[1,152],tb=[1,153],tk=[1,154],t_=[1,159],tF=[1,160],tg=[1,139],tT=[1,140],tC=[1,147],tB=[1,142],tS=[1,146],tm=[1,144],tv=[20,21,22,23,38,43,45,47,49,53,69,92,93,94,95,96,97,110,113,114,117,119,122,123,124,129,130,131,132],tx=[1,162],tL=[20,21,22,23,26,53,69,97,113,114,117,119,122,123,124],tI=[1,182],tR=[1,178],tN=[1,179],t$=[1,183],tO=[1,180],tP=[1,181],tw=[12,21,22,24],tU=[86,124,127],tM=[20,21,22,23,24,26,38,40,43,53,69,84,92,93,94,95,96,97,98,113,117,119,122,123,124],tV=[22,114],tG=[42,58,60,62,64,66,71,73,75,76,78,80,124,125,126],tK=[1,250],tj=[1,248],tY=[1,252],tX=[1,246],tz=[1,247],tH=[1,249],tW=[1,251],tQ=[1,253],tq=[1,270],tZ=[20,21,23,114],tJ=[20,21,22,23,69,92,113,114,117,118,119,120],t1={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,directive:5,openDirective:6,typeDirective:7,closeDirective:8,separator:9,":":10,argDirective:11,open_directive:12,type_directive:13,arg_directive:14,close_directive:15,graphConfig:16,document:17,line:18,statement:19,SEMI:20,NEWLINE:21,SPACE:22,EOF:23,GRAPH:24,NODIR:25,DIR:26,FirstStmtSeperator:27,ending:28,endToken:29,spaceList:30,spaceListNewline:31,verticeStatement:32,styleStatement:33,linkStyleStatement:34,classDefStatement:35,classStatement:36,clickStatement:37,subgraph:38,textNoTags:39,SQS:40,text:41,SQE:42,end:43,direction:44,acc_title:45,acc_title_value:46,acc_descr:47,acc_descr_value:48,acc_descr_multiline_value:49,link:50,node:51,styledVertex:52,AMP:53,vertex:54,STYLE_SEPARATOR:55,idString:56,DOUBLECIRCLESTART:57,DOUBLECIRCLEEND:58,PS:59,PE:60,"(-":61,"-)":62,STADIUMSTART:63,STADIUMEND:64,SUBROUTINESTART:65,SUBROUTINEEND:66,VERTEX_WITH_PROPS_START:67,"NODE_STRING[field]":68,COLON:69,"NODE_STRING[value]":70,PIPE:71,CYLINDERSTART:72,CYLINDEREND:73,DIAMOND_START:74,DIAMOND_STOP:75,TAGEND:76,TRAPSTART:77,TRAPEND:78,INVTRAPSTART:79,INVTRAPEND:80,linkStatement:81,arrowText:82,TESTSTR:83,START_LINK:84,edgeText:85,LINK:86,edgeTextToken:87,STR:88,MD_STR:89,textToken:90,keywords:91,STYLE:92,LINKSTYLE:93,CLASSDEF:94,CLASS:95,CLICK:96,DOWN:97,UP:98,textNoTagsToken:99,stylesOpt:100,"idString[vertex]":101,"idString[class]":102,CALLBACKNAME:103,CALLBACKARGS:104,HREF:105,LINK_TARGET:106,"STR[link]":107,"STR[tooltip]":108,alphaNum:109,DEFAULT:110,numList:111,INTERPOLATE:112,NUM:113,COMMA:114,style:115,styleComponent:116,NODE_STRING:117,UNIT:118,BRKT:119,PCT:120,idStringToken:121,MINUS:122,MULT:123,UNICODE_TEXT:124,TEXT:125,TAGSTART:126,EDGE_TEXT:127,alphaNumToken:128,direction_tb:129,direction_bt:130,direction_rl:131,direction_lr:132,$accept:0,$end:1},terminals_:{2:"error",10:":",12:"open_directive",13:"type_directive",14:"arg_directive",15:"close_directive",20:"SEMI",21:"NEWLINE",22:"SPACE",23:"EOF",24:"GRAPH",25:"NODIR",26:"DIR",38:"subgraph",40:"SQS",42:"SQE",43:"end",45:"acc_title",46:"acc_title_value",47:"acc_descr",48:"acc_descr_value",49:"acc_descr_multiline_value",53:"AMP",55:"STYLE_SEPARATOR",57:"DOUBLECIRCLESTART",58:"DOUBLECIRCLEEND",59:"PS",60:"PE",61:"(-",62:"-)",63:"STADIUMSTART",64:"STADIUMEND",65:"SUBROUTINESTART",66:"SUBROUTINEEND",67:"VERTEX_WITH_PROPS_START",68:"NODE_STRING[field]",69:"COLON",70:"NODE_STRING[value]",71:"PIPE",72:"CYLINDERSTART",73:"CYLINDEREND",74:"DIAMOND_START",75:"DIAMOND_STOP",76:"TAGEND",77:"TRAPSTART",78:"TRAPEND",79:"INVTRAPSTART",80:"INVTRAPEND",83:"TESTSTR",84:"START_LINK",86:"LINK",88:"STR",89:"MD_STR",92:"STYLE",93:"LINKSTYLE",94:"CLASSDEF",95:"CLASS",96:"CLICK",97:"DOWN",98:"UP",101:"idString[vertex]",102:"idString[class]",103:"CALLBACKNAME",104:"CALLBACKARGS",105:"HREF",106:"LINK_TARGET",107:"STR[link]",108:"STR[tooltip]",110:"DEFAULT",112:"INTERPOLATE",113:"NUM",114:"COMMA",117:"NODE_STRING",118:"UNIT",119:"BRKT",120:"PCT",122:"MINUS",123:"MULT",124:"UNICODE_TEXT",125:"TEXT",126:"TAGSTART",127:"EDGE_TEXT",129:"direction_tb",130:"direction_bt",131:"direction_rl",132:"direction_lr"},productions_:[0,[3,1],[3,2],[5,4],[5,6],[6,1],[7,1],[11,1],[8,1],[4,2],[17,0],[17,2],[18,1],[18,1],[18,1],[18,1],[18,1],[16,2],[16,2],[16,2],[16,3],[28,2],[28,1],[29,1],[29,1],[29,1],[27,1],[27,1],[27,2],[31,2],[31,2],[31,1],[31,1],[30,2],[30,1],[19,2],[19,2],[19,2],[19,2],[19,2],[19,2],[19,9],[19,6],[19,4],[19,1],[19,2],[19,2],[19,1],[9,1],[9,1],[9,1],[32,3],[32,4],[32,2],[32,1],[51,1],[51,5],[52,1],[52,3],[54,4],[54,4],[54,6],[54,4],[54,4],[54,4],[54,8],[54,4],[54,4],[54,4],[54,6],[54,4],[54,4],[54,4],[54,4],[54,4],[54,1],[50,2],[50,3],[50,3],[50,1],[50,3],[85,1],[85,2],[85,1],[85,1],[81,1],[82,3],[41,1],[41,2],[41,1],[41,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[39,1],[39,2],[39,1],[39,1],[35,5],[36,5],[37,2],[37,4],[37,3],[37,5],[37,3],[37,5],[37,5],[37,7],[37,2],[37,4],[37,2],[37,4],[37,4],[37,6],[33,5],[34,5],[34,5],[34,9],[34,9],[34,7],[34,7],[111,1],[111,3],[100,1],[100,3],[115,1],[115,2],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[90,1],[90,1],[90,1],[90,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[87,1],[87,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[56,1],[56,2],[109,1],[109,2],[44,1],[44,1],[44,1],[44,1]],performAction:function(t,e,u,s,i,r,n){var a=r.length-1;switch(i){case 5:s.parseDirective("%%{","open_directive");break;case 6:s.parseDirective(r[a],"type_directive");break;case 7:r[a]=r[a].trim().replace(/'/g,'"'),s.parseDirective(r[a],"arg_directive");break;case 8:s.parseDirective("}%%","close_directive","flowchart");break;case 10:case 36:case 37:case 38:case 39:case 40:this.$=[];break;case 11:(!Array.isArray(r[a])||r[a].length>0)&&r[a-1].push(r[a]),this.$=r[a-1];break;case 12:case 184:case 57:case 79:case 182:this.$=r[a];break;case 19:s.setDirection("TB"),this.$="TB";break;case 20:s.setDirection(r[a-1]),this.$=r[a-1];break;case 35:this.$=r[a-1].nodes;break;case 41:this.$=s.addSubGraph(r[a-6],r[a-1],r[a-4]);break;case 42:this.$=s.addSubGraph(r[a-3],r[a-1],r[a-3]);break;case 43:this.$=s.addSubGraph(void 0,r[a-1],void 0);break;case 45:this.$=r[a].trim(),s.setAccTitle(this.$);break;case 46:case 47:this.$=r[a].trim(),s.setAccDescription(this.$);break;case 51:s.addLink(r[a-2].stmt,r[a],r[a-1]),this.$={stmt:r[a],nodes:r[a].concat(r[a-2].nodes)};break;case 52:s.addLink(r[a-3].stmt,r[a-1],r[a-2]),this.$={stmt:r[a-1],nodes:r[a-1].concat(r[a-3].nodes)};break;case 53:this.$={stmt:r[a-1],nodes:r[a-1]};break;case 54:this.$={stmt:r[a],nodes:r[a]};break;case 55:case 129:case 131:this.$=[r[a]];break;case 56:this.$=r[a-4].concat(r[a]);break;case 58:this.$=r[a-2],s.setClass(r[a-2],r[a]);break;case 59:this.$=r[a-3],s.addVertex(r[a-3],r[a-1],"square");break;case 60:this.$=r[a-3],s.addVertex(r[a-3],r[a-1],"doublecircle");break;case 61:this.$=r[a-5],s.addVertex(r[a-5],r[a-2],"circle");break;case 62:this.$=r[a-3],s.addVertex(r[a-3],r[a-1],"ellipse");break;case 63:this.$=r[a-3],s.addVertex(r[a-3],r[a-1],"stadium");break;case 64:this.$=r[a-3],s.addVertex(r[a-3],r[a-1],"subroutine");break;case 65:this.$=r[a-7],s.addVertex(r[a-7],r[a-1],"rect",void 0,void 0,void 0,Object.fromEntries([[r[a-5],r[a-3]]]));break;case 66:this.$=r[a-3],s.addVertex(r[a-3],r[a-1],"cylinder");break;case 67:this.$=r[a-3],s.addVertex(r[a-3],r[a-1],"round");break;case 68:this.$=r[a-3],s.addVertex(r[a-3],r[a-1],"diamond");break;case 69:this.$=r[a-5],s.addVertex(r[a-5],r[a-2],"hexagon");break;case 70:this.$=r[a-3],s.addVertex(r[a-3],r[a-1],"odd");break;case 71:this.$=r[a-3],s.addVertex(r[a-3],r[a-1],"trapezoid");break;case 72:this.$=r[a-3],s.addVertex(r[a-3],r[a-1],"inv_trapezoid");break;case 73:this.$=r[a-3],s.addVertex(r[a-3],r[a-1],"lean_right");break;case 74:this.$=r[a-3],s.addVertex(r[a-3],r[a-1],"lean_left");break;case 75:this.$=r[a],s.addVertex(r[a]);break;case 76:r[a-1].text=r[a],this.$=r[a-1];break;case 77:case 78:r[a-2].text=r[a-1],this.$=r[a-2];break;case 80:var c=s.destructLink(r[a],r[a-2]);this.$={type:c.type,stroke:c.stroke,length:c.length,text:r[a-1]};break;case 81:case 87:case 102:case 104:this.$={text:r[a],type:"text"};break;case 82:case 88:case 103:this.$={text:r[a-1].text+""+r[a],type:r[a-1].type};break;case 83:case 89:this.$={text:r[a],type:"string"};break;case 84:case 90:case 105:this.$={text:r[a],type:"markdown"};break;case 85:var c=s.destructLink(r[a]);this.$={type:c.type,stroke:c.stroke,length:c.length};break;case 86:this.$=r[a-1];break;case 106:this.$=r[a-4],s.addClass(r[a-2],r[a]);break;case 107:this.$=r[a-4],s.setClass(r[a-2],r[a]);break;case 108:case 116:this.$=r[a-1],s.setClickEvent(r[a-1],r[a]);break;case 109:case 117:this.$=r[a-3],s.setClickEvent(r[a-3],r[a-2]),s.setTooltip(r[a-3],r[a]);break;case 110:this.$=r[a-2],s.setClickEvent(r[a-2],r[a-1],r[a]);break;case 111:this.$=r[a-4],s.setClickEvent(r[a-4],r[a-3],r[a-2]),s.setTooltip(r[a-4],r[a]);break;case 112:this.$=r[a-2],s.setLink(r[a-2],r[a]);break;case 113:this.$=r[a-4],s.setLink(r[a-4],r[a-2]),s.setTooltip(r[a-4],r[a]);break;case 114:this.$=r[a-4],s.setLink(r[a-4],r[a-2],r[a]);break;case 115:this.$=r[a-6],s.setLink(r[a-6],r[a-4],r[a]),s.setTooltip(r[a-6],r[a-2]);break;case 118:this.$=r[a-1],s.setLink(r[a-1],r[a]);break;case 119:this.$=r[a-3],s.setLink(r[a-3],r[a-2]),s.setTooltip(r[a-3],r[a]);break;case 120:this.$=r[a-3],s.setLink(r[a-3],r[a-2],r[a]);break;case 121:this.$=r[a-5],s.setLink(r[a-5],r[a-4],r[a]),s.setTooltip(r[a-5],r[a-2]);break;case 122:this.$=r[a-4],s.addVertex(r[a-2],void 0,void 0,r[a]);break;case 123:this.$=r[a-4],s.updateLink([r[a-2]],r[a]);break;case 124:this.$=r[a-4],s.updateLink(r[a-2],r[a]);break;case 125:this.$=r[a-8],s.updateLinkInterpolate([r[a-6]],r[a-2]),s.updateLink([r[a-6]],r[a]);break;case 126:this.$=r[a-8],s.updateLinkInterpolate(r[a-6],r[a-2]),s.updateLink(r[a-6],r[a]);break;case 127:this.$=r[a-6],s.updateLinkInterpolate([r[a-4]],r[a]);break;case 128:this.$=r[a-6],s.updateLinkInterpolate(r[a-4],r[a]);break;case 130:case 132:r[a-2].push(r[a]),this.$=r[a-2];break;case 134:this.$=r[a-1]+r[a];break;case 183:case 185:this.$=r[a-1]+""+r[a];break;case 186:this.$={stmt:"dir",value:"TB"};break;case 187:this.$={stmt:"dir",value:"BT"};break;case 188:this.$={stmt:"dir",value:"RL"};break;case 189:this.$={stmt:"dir",value:"LR"}}},table:[{3:1,4:2,5:3,6:5,12:e,16:4,21:u,22:s,24:i},{1:[3]},{1:[2,1]},{3:10,4:2,5:3,6:5,12:e,16:4,21:u,22:s,24:i},t(r,n,{17:11}),{7:12,13:[1,13]},{16:14,21:u,22:s,24:i},{16:15,21:u,22:s,24:i},{25:[1,16],26:[1,17]},{13:[2,5]},{1:[2,2]},{1:[2,9],18:18,19:19,20:a,21:c,22:l,23:o,32:24,33:25,34:26,35:27,36:28,37:29,38:h,44:31,45:A,47:p,49:d,51:35,52:45,53:y,54:46,56:47,69:E,92:f,93:D,94:b,95:k,96:_,97:F,110:g,113:T,114:C,117:B,119:S,121:48,122:m,123:v,124:x,129:L,130:I,131:R,132:N},{8:60,10:[1,61],15:$},t([10,15],[2,6]),t(r,[2,17]),t(r,[2,18]),t(r,[2,19]),{20:[1,64],21:[1,65],22:O,27:63,30:66},t(P,[2,11]),t(P,[2,12]),t(P,[2,13]),t(P,[2,14]),t(P,[2,15]),t(P,[2,16]),{9:68,20:w,21:U,23:M,50:69,81:73,84:[1,74],86:[1,75]},{9:76,20:w,21:U,23:M},{9:77,20:w,21:U,23:M},{9:78,20:w,21:U,23:M},{9:79,20:w,21:U,23:M},{9:80,20:w,21:U,23:M},{9:82,20:w,21:U,22:[1,81],23:M},t(P,[2,44]),{46:[1,83]},{48:[1,84]},t(P,[2,47]),t(V,[2,54],{30:85,22:O}),{22:[1,86]},{22:[1,87]},{22:[1,88]},{22:[1,89]},{26:G,53:K,69:j,88:[1,93],97:Y,103:[1,90],105:[1,91],109:92,113:X,114:z,117:H,119:W,122:Q,123:q,124:Z,128:94},t(P,[2,186]),t(P,[2,187]),t(P,[2,188]),t(P,[2,189]),t(J,[2,55]),t(J,[2,57],{55:[1,106]}),t(tt,[2,75],{121:119,40:[1,107],53:y,57:[1,108],59:[1,109],61:[1,110],63:[1,111],65:[1,112],67:[1,113],69:E,72:[1,114],74:[1,115],76:[1,116],77:[1,117],79:[1,118],97:F,110:g,113:T,114:C,117:B,119:S,122:m,123:v,124:x}),t(te,[2,182]),t(te,[2,143]),t(te,[2,144]),t(te,[2,145]),t(te,[2,146]),t(te,[2,147]),t(te,[2,148]),t(te,[2,149]),t(te,[2,150]),t(te,[2,151]),t(te,[2,152]),t(te,[2,153]),{9:120,20:w,21:U,23:M},{11:121,14:[1,122]},t(tu,[2,8]),t(r,[2,20]),t(r,[2,26]),t(r,[2,27]),{21:[1,123]},t(ts,[2,34],{30:124,22:O}),t(P,[2,35]),{51:125,52:45,53:y,54:46,56:47,69:E,97:F,110:g,113:T,114:C,117:B,119:S,121:48,122:m,123:v,124:x},t(ti,[2,48]),t(ti,[2,49]),t(ti,[2,50]),t(tr,[2,79],{82:126,71:[1,128],83:[1,127]}),{85:129,87:130,88:[1,131],89:[1,132],124:tn,127:ta},t([53,69,71,83,97,110,113,114,117,119,122,123,124],[2,85]),t(P,[2,36]),t(P,[2,37]),t(P,[2,38]),t(P,[2,39]),t(P,[2,40]),{22:tc,24:tl,26:to,38:th,39:135,43:tA,53:tp,69:td,84:ty,88:[1,137],89:[1,138],91:148,92:tE,93:tf,94:tD,95:tb,96:tk,97:t_,98:tF,99:136,113:tg,117:tT,119:tC,122:tB,123:tS,124:tm},t(tv,n,{17:161}),t(P,[2,45]),t(P,[2,46]),t(V,[2,53],{53:tx}),{53:y,56:163,69:E,97:F,110:g,113:T,114:C,117:B,119:S,121:48,122:m,123:v,124:x},{110:[1,164],111:165,113:[1,166]},{53:y,56:167,69:E,97:F,110:g,113:T,114:C,117:B,119:S,121:48,122:m,123:v,124:x},{53:y,56:168,69:E,97:F,110:g,113:T,114:C,117:B,119:S,121:48,122:m,123:v,124:x},t(tu,[2,108],{22:[1,169],104:[1,170]}),{88:[1,171]},t(tu,[2,116],{128:173,22:[1,172],26:G,53:K,69:j,97:Y,113:X,114:z,117:H,119:W,122:Q,123:q,124:Z}),t(tu,[2,118],{22:[1,174]}),t(tL,[2,184]),t(tL,[2,171]),t(tL,[2,172]),t(tL,[2,173]),t(tL,[2,174]),t(tL,[2,175]),t(tL,[2,176]),t(tL,[2,177]),t(tL,[2,178]),t(tL,[2,179]),t(tL,[2,180]),t(tL,[2,181]),{53:y,56:175,69:E,97:F,110:g,113:T,114:C,117:B,119:S,121:48,122:m,123:v,124:x},{41:176,76:tI,88:tR,89:tN,90:177,124:t$,125:tO,126:tP},{41:184,76:tI,88:tR,89:tN,90:177,124:t$,125:tO,126:tP},{41:186,59:[1,185],76:tI,88:tR,89:tN,90:177,124:t$,125:tO,126:tP},{41:187,76:tI,88:tR,89:tN,90:177,124:t$,125:tO,126:tP},{41:188,76:tI,88:tR,89:tN,90:177,124:t$,125:tO,126:tP},{41:189,76:tI,88:tR,89:tN,90:177,124:t$,125:tO,126:tP},{117:[1,190]},{41:191,76:tI,88:tR,89:tN,90:177,124:t$,125:tO,126:tP},{41:192,74:[1,193],76:tI,88:tR,89:tN,90:177,124:t$,125:tO,126:tP},{41:194,76:tI,88:tR,89:tN,90:177,124:t$,125:tO,126:tP},{41:195,76:tI,88:tR,89:tN,90:177,124:t$,125:tO,126:tP},{41:196,76:tI,88:tR,89:tN,90:177,124:t$,125:tO,126:tP},t(te,[2,183]),t(tw,[2,3]),{8:197,15:$},{15:[2,7]},t(r,[2,28]),t(ts,[2,33]),t(V,[2,51],{30:198,22:O}),t(tr,[2,76],{22:[1,199]}),{22:[1,200]},{41:201,76:tI,88:tR,89:tN,90:177,124:t$,125:tO,126:tP},{86:[1,202],87:203,124:tn,127:ta},t(tU,[2,81]),t(tU,[2,83]),t(tU,[2,84]),t(tU,[2,169]),t(tU,[2,170]),{9:205,20:w,21:U,22:tc,23:M,24:tl,26:to,38:th,40:[1,204],43:tA,53:tp,69:td,84:ty,91:148,92:tE,93:tf,94:tD,95:tb,96:tk,97:t_,98:tF,99:206,113:tg,117:tT,119:tC,122:tB,123:tS,124:tm},t(tM,[2,102]),t(tM,[2,104]),t(tM,[2,105]),t(tM,[2,158]),t(tM,[2,159]),t(tM,[2,160]),t(tM,[2,161]),t(tM,[2,162]),t(tM,[2,163]),t(tM,[2,164]),t(tM,[2,165]),t(tM,[2,166]),t(tM,[2,167]),t(tM,[2,168]),t(tM,[2,91]),t(tM,[2,92]),t(tM,[2,93]),t(tM,[2,94]),t(tM,[2,95]),t(tM,[2,96]),t(tM,[2,97]),t(tM,[2,98]),t(tM,[2,99]),t(tM,[2,100]),t(tM,[2,101]),{18:18,19:19,20:a,21:c,22:l,23:o,32:24,33:25,34:26,35:27,36:28,37:29,38:h,43:[1,207],44:31,45:A,47:p,49:d,51:35,52:45,53:y,54:46,56:47,69:E,92:f,93:D,94:b,95:k,96:_,97:F,110:g,113:T,114:C,117:B,119:S,121:48,122:m,123:v,124:x,129:L,130:I,131:R,132:N},{22:O,30:208},{22:[1,209],53:y,69:E,97:F,110:g,113:T,114:C,117:B,119:S,121:119,122:m,123:v,124:x},{22:[1,210]},{22:[1,211],114:[1,212]},t(tV,[2,129]),{22:[1,213],53:y,69:E,97:F,110:g,113:T,114:C,117:B,119:S,121:119,122:m,123:v,124:x},{22:[1,214],53:y,69:E,97:F,110:g,113:T,114:C,117:B,119:S,121:119,122:m,123:v,124:x},{88:[1,215]},t(tu,[2,110],{22:[1,216]}),t(tu,[2,112],{22:[1,217]}),{88:[1,218]},t(tL,[2,185]),{88:[1,219],106:[1,220]},t(J,[2,58],{121:119,53:y,69:E,97:F,110:g,113:T,114:C,117:B,119:S,122:m,123:v,124:x}),{42:[1,221],76:tI,90:222,124:t$,125:tO,126:tP},t(tG,[2,87]),t(tG,[2,89]),t(tG,[2,90]),t(tG,[2,154]),t(tG,[2,155]),t(tG,[2,156]),t(tG,[2,157]),{58:[1,223],76:tI,90:222,124:t$,125:tO,126:tP},{41:224,76:tI,88:tR,89:tN,90:177,124:t$,125:tO,126:tP},{60:[1,225],76:tI,90:222,124:t$,125:tO,126:tP},{62:[1,226],76:tI,90:222,124:t$,125:tO,126:tP},{64:[1,227],76:tI,90:222,124:t$,125:tO,126:tP},{66:[1,228],76:tI,90:222,124:t$,125:tO,126:tP},{69:[1,229]},{73:[1,230],76:tI,90:222,124:t$,125:tO,126:tP},{75:[1,231],76:tI,90:222,124:t$,125:tO,126:tP},{41:232,76:tI,88:tR,89:tN,90:177,124:t$,125:tO,126:tP},{42:[1,233],76:tI,90:222,124:t$,125:tO,126:tP},{76:tI,78:[1,234],80:[1,235],90:222,124:t$,125:tO,126:tP},{76:tI,78:[1,237],80:[1,236],90:222,124:t$,125:tO,126:tP},{9:238,20:w,21:U,23:M},t(V,[2,52],{53:tx}),t(tr,[2,78]),t(tr,[2,77]),{71:[1,239],76:tI,90:222,124:t$,125:tO,126:tP},t(tr,[2,80]),t(tU,[2,82]),{41:240,76:tI,88:tR,89:tN,90:177,124:t$,125:tO,126:tP},t(tv,n,{17:241}),t(tM,[2,103]),t(P,[2,43]),{52:242,53:y,54:46,56:47,69:E,97:F,110:g,113:T,114:C,117:B,119:S,121:48,122:m,123:v,124:x},{22:tK,69:tj,92:tY,100:243,113:tX,115:244,116:245,117:tz,118:tH,119:tW,120:tQ},{22:tK,69:tj,92:tY,100:254,112:[1,255],113:tX,115:244,116:245,117:tz,118:tH,119:tW,120:tQ},{22:tK,69:tj,92:tY,100:256,112:[1,257],113:tX,115:244,116:245,117:tz,118:tH,119:tW,120:tQ},{113:[1,258]},{22:tK,69:tj,92:tY,100:259,113:tX,115:244,116:245,117:tz,118:tH,119:tW,120:tQ},{53:y,56:260,69:E,97:F,110:g,113:T,114:C,117:B,119:S,121:48,122:m,123:v,124:x},t(tu,[2,109]),{88:[1,261]},{88:[1,262],106:[1,263]},t(tu,[2,117]),t(tu,[2,119],{22:[1,264]}),t(tu,[2,120]),t(tt,[2,59]),t(tG,[2,88]),t(tt,[2,60]),{60:[1,265],76:tI,90:222,124:t$,125:tO,126:tP},t(tt,[2,67]),t(tt,[2,62]),t(tt,[2,63]),t(tt,[2,64]),{117:[1,266]},t(tt,[2,66]),t(tt,[2,68]),{75:[1,267],76:tI,90:222,124:t$,125:tO,126:tP},t(tt,[2,70]),t(tt,[2,71]),t(tt,[2,73]),t(tt,[2,72]),t(tt,[2,74]),t(tw,[2,4]),t([22,53,69,97,110,113,114,117,119,122,123,124],[2,86]),{42:[1,268],76:tI,90:222,124:t$,125:tO,126:tP},{18:18,19:19,20:a,21:c,22:l,23:o,32:24,33:25,34:26,35:27,36:28,37:29,38:h,43:[1,269],44:31,45:A,47:p,49:d,51:35,52:45,53:y,54:46,56:47,69:E,92:f,93:D,94:b,95:k,96:_,97:F,110:g,113:T,114:C,117:B,119:S,121:48,122:m,123:v,124:x,129:L,130:I,131:R,132:N},t(J,[2,56]),t(tu,[2,122],{114:tq}),t(tZ,[2,131],{116:271,22:tK,69:tj,92:tY,113:tX,117:tz,118:tH,119:tW,120:tQ}),t(tJ,[2,133]),t(tJ,[2,135]),t(tJ,[2,136]),t(tJ,[2,137]),t(tJ,[2,138]),t(tJ,[2,139]),t(tJ,[2,140]),t(tJ,[2,141]),t(tJ,[2,142]),t(tu,[2,123],{114:tq}),{22:[1,272]},t(tu,[2,124],{114:tq}),{22:[1,273]},t(tV,[2,130]),t(tu,[2,106],{114:tq}),t(tu,[2,107],{121:119,53:y,69:E,97:F,110:g,113:T,114:C,117:B,119:S,122:m,123:v,124:x}),t(tu,[2,111]),t(tu,[2,113],{22:[1,274]}),t(tu,[2,114]),{106:[1,275]},{60:[1,276]},{71:[1,277]},{75:[1,278]},{9:279,20:w,21:U,23:M},t(P,[2,42]),{22:tK,69:tj,92:tY,113:tX,115:280,116:245,117:tz,118:tH,119:tW,120:tQ},t(tJ,[2,134]),{26:G,53:K,69:j,97:Y,109:281,113:X,114:z,117:H,119:W,122:Q,123:q,124:Z,128:94},{26:G,53:K,69:j,97:Y,109:282,113:X,114:z,117:H,119:W,122:Q,123:q,124:Z,128:94},{106:[1,283]},t(tu,[2,121]),t(tt,[2,61]),{41:284,76:tI,88:tR,89:tN,90:177,124:t$,125:tO,126:tP},t(tt,[2,69]),t(tv,n,{17:285}),t(tZ,[2,132],{116:271,22:tK,69:tj,92:tY,113:tX,117:tz,118:tH,119:tW,120:tQ}),t(tu,[2,127],{128:173,22:[1,286],26:G,53:K,69:j,97:Y,113:X,114:z,117:H,119:W,122:Q,123:q,124:Z}),t(tu,[2,128],{128:173,22:[1,287],26:G,53:K,69:j,97:Y,113:X,114:z,117:H,119:W,122:Q,123:q,124:Z}),t(tu,[2,115]),{42:[1,288],76:tI,90:222,124:t$,125:tO,126:tP},{18:18,19:19,20:a,21:c,22:l,23:o,32:24,33:25,34:26,35:27,36:28,37:29,38:h,43:[1,289],44:31,45:A,47:p,49:d,51:35,52:45,53:y,54:46,56:47,69:E,92:f,93:D,94:b,95:k,96:_,97:F,110:g,113:T,114:C,117:B,119:S,121:48,122:m,123:v,124:x,129:L,130:I,131:R,132:N},{22:tK,69:tj,92:tY,100:290,113:tX,115:244,116:245,117:tz,118:tH,119:tW,120:tQ},{22:tK,69:tj,92:tY,100:291,113:tX,115:244,116:245,117:tz,118:tH,119:tW,120:tQ},t(tt,[2,65]),t(P,[2,41]),t(tu,[2,125],{114:tq}),t(tu,[2,126],{114:tq})],defaultActions:{2:[2,1],9:[2,5],10:[2,2],122:[2,7]},parseError:function(t,e){if(e.recoverable)this.trace(t);else{var u=Error(t);throw u.hash=e,u}},parse:function(t){var e=this,u=[0],s=[],i=[null],r=[],n=this.table,a="",c=0,l=0,o=r.slice.call(arguments,1),h=Object.create(this.lexer),A={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(A.yy[p]=this.yy[p]);h.setInput(t,A.yy),A.yy.lexer=h,A.yy.parser=this,void 0===h.yylloc&&(h.yylloc={});var d=h.yylloc;r.push(d);var y=h.options&&h.options.ranges;"function"==typeof A.yy.parseError?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var E,f,D,b,k,_,F,g,T={};;){if(f=u[u.length-1],this.defaultActions[f]?D=this.defaultActions[f]:(null==E&&(E=function(){var t;return"number"!=typeof(t=s.pop()||h.lex()||1)&&(t instanceof Array&&(t=(s=t).pop()),t=e.symbols_[t]||t),t}()),D=n[f]&&n[f][E]),void 0===D||!D.length||!D[0]){var C="";for(k in g=[],n[f])this.terminals_[k]&&k>2&&g.push("'"+this.terminals_[k]+"'");C=h.showPosition?"Parse error on line "+(c+1)+":\n"+h.showPosition()+"\nExpecting "+g.join(", ")+", got '"+(this.terminals_[E]||E)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==E?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(C,{text:h.match,token:this.terminals_[E]||E,line:h.yylineno,loc:d,expected:g})}if(D[0]instanceof Array&&D.length>1)throw Error("Parse Error: multiple actions possible at state: "+f+", token: "+E);switch(D[0]){case 1:u.push(E),i.push(h.yytext),r.push(h.yylloc),u.push(D[1]),E=null,l=h.yyleng,a=h.yytext,c=h.yylineno,d=h.yylloc;break;case 2:if(_=this.productions_[D[1]][1],T.$=i[i.length-_],T._$={first_line:r[r.length-(_||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(_||1)].first_column,last_column:r[r.length-1].last_column},y&&(T._$.range=[r[r.length-(_||1)].range[0],r[r.length-1].range[1]]),void 0!==(b=this.performAction.apply(T,[a,l,c,A.yy,D[1],i,r].concat(o))))return b;_&&(u=u.slice(0,-1*_*2),i=i.slice(0,-1*_),r=r.slice(0,-1*_)),u.push(this.productions_[D[1]][0]),i.push(T.$),r.push(T._$),F=n[u[u.length-2]][u[u.length-1]],u.push(F);break;case 3:return!0}}return!0}};function t2(){this.yy={}}return t1.lexer={EOF:1,parseError:function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,u=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),u.length-1&&(this.yylineno-=u.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:u?(u.length===s.length?this.yylloc.first_column:0)+s[s.length-u.length].length-u[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var u,s,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(s=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],u=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),u)return u;if(this._backtrack)for(var r in i)this[r]=i[r];return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,u,s,i=this._currentRules(),r=0;r<i.length;r++)if((u=this._input.match(this.rules[i[r]]))&&(!e||u[0].length>e[0].length)){if(e=u,s=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(u,i[r])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[s]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,u,s){switch(u){case 0:return this.begin("open_directive"),12;case 1:return this.begin("type_directive"),13;case 2:return this.popState(),this.begin("arg_directive"),10;case 3:return this.popState(),this.popState(),15;case 4:return 14;case 5:return this.begin("acc_title"),45;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),47;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:case 13:case 16:case 19:case 22:case 32:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:this.begin("callbackname");break;case 14:this.popState(),this.begin("callbackargs");break;case 15:return 103;case 17:return 104;case 18:return"MD_STR";case 20:this.begin("md_string");break;case 21:return"STR";case 23:this.pushState("string");break;case 24:return 92;case 25:return 110;case 26:return 93;case 27:return 112;case 28:return 94;case 29:return 95;case 30:return 105;case 31:this.begin("click");break;case 33:return 96;case 34:case 35:case 36:return t.lex.firstGraph()&&this.begin("dir"),24;case 37:return 38;case 38:return 43;case 39:case 40:case 41:case 42:return 106;case 43:return this.popState(),25;case 44:case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:return this.popState(),26;case 54:return 129;case 55:return 130;case 56:return 131;case 57:return 132;case 58:return 113;case 59:case 100:return 119;case 60:return 55;case 61:return 69;case 62:case 101:return 53;case 63:return 20;case 64:return 114;case 65:case 99:return 123;case 66:case 69:case 72:return this.popState(),86;case 67:return this.pushState("edgeText"),84;case 68:case 71:case 74:return 127;case 70:return this.pushState("thickEdgeText"),84;case 73:return this.pushState("dottedEdgeText"),84;case 75:return 86;case 76:return this.popState(),62;case 77:case 113:return"TEXT";case 78:return this.pushState("ellipseText"),61;case 79:return this.popState(),64;case 80:return this.pushState("text"),63;case 81:return this.popState(),66;case 82:return this.pushState("text"),65;case 83:return 67;case 84:return this.pushState("text"),76;case 85:return this.popState(),73;case 86:return this.pushState("text"),72;case 87:return this.popState(),58;case 88:return this.pushState("text"),57;case 89:return this.popState(),78;case 90:return this.popState(),80;case 91:return 125;case 92:return this.pushState("trapText"),77;case 93:return this.pushState("trapText"),79;case 94:return 126;case 95:return 76;case 96:return 98;case 97:return"SEP";case 98:return 97;case 102:return 117;case 103:return 122;case 104:return 124;case 105:return this.popState(),71;case 106:return this.pushState("text"),71;case 107:return this.popState(),60;case 108:return this.pushState("text"),59;case 109:return this.popState(),42;case 110:return this.pushState("text"),40;case 111:return this.popState(),75;case 112:return this.pushState("text"),74;case 114:return"QUOTE";case 115:return 21;case 116:return 22;case 117:return 23}},rules:[/^(?:%%\{)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|(?!\)+))/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{close_directive:{rules:[20,23,75,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},arg_directive:{rules:[3,4,20,23,75,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},type_directive:{rules:[2,3,20,23,75,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},open_directive:{rules:[1,20,23,75,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},callbackargs:{rules:[16,17,20,23,75,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},callbackname:{rules:[13,14,15,20,23,75,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},href:{rules:[20,23,75,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},click:{rules:[20,23,32,33,75,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},dottedEdgeText:{rules:[20,23,72,74,75,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},thickEdgeText:{rules:[20,23,69,71,75,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},edgeText:{rules:[20,23,66,68,75,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},trapText:{rules:[20,23,75,78,80,82,86,88,89,90,91,92,93,106,108,110,112],inclusive:!1},ellipseText:{rules:[20,23,75,76,77,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},text:{rules:[20,23,75,78,79,80,81,82,85,86,87,88,92,93,105,106,107,108,109,110,111,112,113],inclusive:!1},vertex:{rules:[20,23,75,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},dir:{rules:[20,23,43,44,45,46,47,48,49,50,51,52,53,75,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},acc_descr_multiline:{rules:[10,11,20,23,75,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},acc_descr:{rules:[8,20,23,75,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},acc_title:{rules:[6,20,23,75,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},md_string:{rules:[18,19,20,23,75,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},string:{rules:[20,21,22,23,75,78,80,82,86,88,92,93,106,108,110,112],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,20,23,24,25,26,27,28,29,30,31,34,35,36,37,38,39,40,41,42,54,55,56,57,58,59,60,61,62,63,64,65,66,67,69,70,72,73,75,78,80,82,83,84,86,88,92,93,94,95,96,97,98,99,100,101,102,103,104,106,108,110,112,114,115,116,117],inclusive:!0}}},t2.prototype=t1,t1.Parser=t2,new t2}();a.parser=a;let c=a,l=0,o=(0,n.c)(),h={},A=[],p={},d=[],y={},E={},f=0,D=!0,b=[],k=t=>n.e.sanitizeText(t,o),_=function(t,e,u){n.m.parseDirective(this,t,e,u)},F=function(t){for(let e of Object.keys(h))if(h[e].id===t)return h[e].domId;return t},g=function(t,e,u,s,i,r,a={}){let c;void 0!==t&&0!==t.trim().length&&(void 0===h[t]&&(h[t]={id:t,labelType:"text",domId:"flowchart-"+t+"-"+l,styles:[],classes:[]}),l++,void 0!==e?(o=(0,n.c)(),c=k(e.text.trim()),h[t].labelType=e.type,'"'===c[0]&&'"'===c[c.length-1]&&(c=c.substring(1,c.length-1)),h[t].text=c):void 0===h[t].text&&(h[t].text=t),void 0!==u&&(h[t].type=u),null!=s&&s.forEach(function(e){h[t].styles.push(e)}),null!=i&&i.forEach(function(e){h[t].classes.push(e)}),void 0!==r&&(h[t].dir=r),void 0===h[t].props?h[t].props=a:void 0!==a&&Object.assign(h[t].props,a))},T=function(t,e,u){let s={start:t,end:e,type:void 0,text:"",labelType:"text"};n.l.info("abc78 Got edge...",s);let i=u.text;void 0!==i&&(s.text=k(i.text.trim()),'"'===s.text[0]&&'"'===s.text[s.text.length-1]&&(s.text=s.text.substring(1,s.text.length-1)),s.labelType=i.type),void 0!==u&&(s.type=u.type,s.stroke=u.stroke,s.length=u.length),A.push(s)},C=function(t,e,u){let s,i;for(n.l.info("addLink (abc78)",t,e,u),s=0;s<t.length;s++)for(i=0;i<e.length;i++)T(t[s],e[i],u)},B=function(t,e){t.forEach(function(t){"default"===t?A.defaultInterpolate=e:A[t].interpolate=e})},S=function(t,e){t.forEach(function(t){"default"===t?A.defaultStyle=e:(-1===n.u.isSubstringInArray("fill",e)&&e.push("fill:none"),A[t].style=e)})},m=function(t,e){t.split(",").forEach(function(t){void 0===p[t]&&(p[t]={id:t,styles:[],textStyles:[]}),null!=e&&e.forEach(function(e){if(e.match("color")){let u=e.replace("fill","bgFill").replace("color","fill");p[t].textStyles.push(u)}p[t].styles.push(e)})})},v=function(t){(s=t).match(/.*</)&&(s="RL"),s.match(/.*\^/)&&(s="BT"),s.match(/.*>/)&&(s="LR"),s.match(/.*v/)&&(s="TB"),"TD"===s&&(s="TB")},x=function(t,e){t.split(",").forEach(function(t){void 0!==h[t]&&h[t].classes.push(e),void 0!==y[t]&&y[t].classes.push(e)})},L=function(t,e,u){let s=F(t);if("loose"!==(0,n.c)().securityLevel||void 0===e)return;let i=[];if("string"==typeof u){i=u.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t<i.length;t++){let e=i[t].trim();'"'===e.charAt(0)&&'"'===e.charAt(e.length-1)&&(e=e.substr(1,e.length-2)),i[t]=e}}0===i.length&&i.push(t),void 0!==h[t]&&(h[t].haveCallback=!0,b.push(function(){let t=document.querySelector(`[id="${s}"]`);null!==t&&t.addEventListener("click",function(){n.u.runFunc(e,...i)},!1)}))},I=function(t,e,u){t.split(",").forEach(function(t){void 0!==h[t]&&(h[t].link=n.u.formatUrl(e,o),h[t].linkTarget=u)}),x(t,"clickable")},R=function(t){if(E.hasOwnProperty(t))return E[t]},N=function(t,e,u){t.split(",").forEach(function(t){L(t,e,u)}),x(t,"clickable")},$=function(t){b.forEach(function(e){e(t)})},O=function(){return s.trim()},P=function(){return h},w=function(){return A},U=function(){return p},M=function(t){let e=(0,r.Ltv)(".mermaidTooltip");null===(e._groups||e)[0][0]&&(e=(0,r.Ltv)("body").append("div").attr("class","mermaidTooltip").style("opacity",0)),(0,r.Ltv)(t).select("svg").selectAll("g.node").on("mouseover",function(){let t=(0,r.Ltv)(this);if(null===t.attr("title"))return;let u=this.getBoundingClientRect();e.transition().duration(200).style("opacity",".9"),e.text(t.attr("title")).style("left",window.scrollX+u.left+(u.right-u.left)/2+"px").style("top",window.scrollY+u.top-14+document.body.scrollTop+"px"),e.html(e.html().replace(/<br\/>/g,"<br/>")),t.classed("hover",!0)}).on("mouseout",function(){e.transition().duration(500).style("opacity",0),(0,r.Ltv)(this).classed("hover",!1)})};b.push(M);let V=function(t="gen-1"){h={},p={},A=[],b=[M],d=[],y={},f=0,E={},D=!0,i=t,(0,n.v)()},G=t=>{i=t||"gen-2"},K=function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},j=function(t,e,u){let s=t.text.trim(),r=u.text;t===u&&u.text.match(/\s/)&&(s=void 0);let a=[],{nodeList:c,dir:l}=function(t){let e;let u={boolean:{},number:{},string:{}},s=[];return{nodeList:t.filter(function(t){let i=typeof t;return t.stmt&&"dir"===t.stmt?(e=t.value,!1):""!==t.trim()&&(i in u?!u[i].hasOwnProperty(t)&&(u[i][t]=!0):!s.includes(t)&&s.push(t))}),dir:e}}(a.concat.apply(a,e));if(a=c,"gen-1"===i)for(let t=0;t<a.length;t++)a[t]=F(a[t]);s=s||"subGraph"+f,r=k(r=r||""),f+=1;let o={id:s,nodes:a,title:r.trim(),classes:[],dir:l,labelType:u.type};return n.l.info("Adding",o.id,o.nodes,o.dir),o.nodes=ti(o,d).nodes,d.push(o),y[s]=o,s},Y=function(t){for(let[e,u]of d.entries())if(u.id===t)return e;return -1},X=-1,z=[],H=function(t,e){let u=d[e].nodes;if((X+=1)>2e3)return;if(z[X]=e,d[e].id===t)return{result:!0,count:0};let s=0,i=1;for(;s<u.length;){let e=Y(u[s]);if(e>=0){let u=H(t,e);if(u.result)return{result:!0,count:i+u.count};i+=u.count}s+=1}return{result:!1,count:i}},W=function(t){return z[t]},Q=function(){X=-1,d.length>0&&H("none",d.length-1)},q=function(){return d},Z=()=>!!D&&(D=!1,!0),J=t=>{let e=t.trim(),u="arrow_open";switch(e[0]){case"<":u="arrow_point",e=e.slice(1);break;case"x":u="arrow_cross",e=e.slice(1);break;case"o":u="arrow_circle",e=e.slice(1)}let s="normal";return e.includes("=")&&(s="thick"),e.includes(".")&&(s="dotted"),{type:u,stroke:s}},tt=(t,e)=>{let u=e.length,s=0;for(let i=0;i<u;++i)e[i]===t&&++s;return s},te=t=>{let e=t.trim(),u=e.slice(0,-1),s="arrow_open";switch(e.slice(-1)){case"x":s="arrow_cross","x"===e[0]&&(s="double_"+s,u=u.slice(1));break;case">":s="arrow_point","<"===e[0]&&(s="double_"+s,u=u.slice(1));break;case"o":s="arrow_circle","o"===e[0]&&(s="double_"+s,u=u.slice(1))}let i="normal",r=u.length-1;"="===u[0]&&(i="thick"),"~"===u[0]&&(i="invisible");let n=tt(".",u);return n&&(i="dotted",r=n),{type:s,stroke:i,length:r}},tu=(t,e)=>{let u;let s=te(t);if(e){if((u=J(e)).stroke!==s.stroke)return{type:"INVALID",stroke:"INVALID"};if("arrow_open"===u.type)u.type=s.type;else{if(u.type!==s.type)return{type:"INVALID",stroke:"INVALID"};u.type="double_"+u.type}return"double_arrow"===u.type&&(u.type="double_arrow_point"),u.length=s.length,u}return s},ts=(t,e)=>{let u=!1;return t.forEach(t=>{t.nodes.indexOf(e)>=0&&(u=!0)}),u},ti=(t,e)=>{let u=[];return t.nodes.forEach((s,i)=>{ts(e,s)||u.push(t.nodes[i])}),{nodes:u}},tr={firstGraph:Z},tn={parseDirective:_,defaultConfig:()=>n.K.flowchart,setAccTitle:n.s,getAccTitle:n.g,getAccDescription:n.a,setAccDescription:n.b,addVertex:g,lookUpDomId:F,addLink:C,updateLinkInterpolate:B,updateLink:S,addClass:m,setDirection:v,setClass:x,setTooltip:function(t,e){t.split(",").forEach(function(t){void 0!==e&&(E["gen-1"===i?F(t):t]=k(e))})},getTooltip:R,setClickEvent:N,setLink:I,bindFunctions:$,getDirection:O,getVertices:P,getEdges:w,getClasses:U,clear:V,setGen:G,defaultStyle:K,addSubGraph:j,getDepthFirstPos:W,indexNodes:Q,getSubGraphs:q,destructLink:tu,lex:tr,exists:ts,makeUniq:ti,setDiagramTitle:n.r,getDiagramTitle:n.t},ta=Object.freeze(Object.defineProperty({__proto__:null,addClass:m,addLink:C,addSingleLink:T,addSubGraph:j,addVertex:g,bindFunctions:$,clear:V,default:tn,defaultStyle:K,destructLink:tu,firstGraph:Z,getClasses:U,getDepthFirstPos:W,getDirection:O,getEdges:w,getSubGraphs:q,getTooltip:R,getVertices:P,indexNodes:Q,lex:tr,lookUpDomId:F,parseDirective:_,setClass:x,setClickEvent:N,setDirection:v,setGen:G,setLink:I,updateLink:S,updateLinkInterpolate:B},Symbol.toStringTag,{value:"Module"}))}}]); \ No newline at end of file diff --git a/assets/js/61210.f74c6655.js b/assets/js/61210.f74c6655.js new file mode 100644 index 0000000000..cbdc3f6161 --- /dev/null +++ b/assets/js/61210.f74c6655.js @@ -0,0 +1,88 @@ +(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[61210],{29859:function(t,e,i){var n;n=function(t){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=t,i.c=e,i.i=function(t){return t},i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=7)}([function(e,i){e.exports=t},function(t,e,i){"use strict";var n=i(0).FDLayoutConstants;function r(){}for(var o in n)r[o]=n[o];r.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,r.DEFAULT_RADIAL_SEPARATION=n.DEFAULT_EDGE_LENGTH,r.DEFAULT_COMPONENT_SEPERATION=60,r.TILE=!0,r.TILING_PADDING_VERTICAL=10,r.TILING_PADDING_HORIZONTAL=10,r.TREE_REDUCTION_ON_INCREMENTAL=!1,t.exports=r},function(t,e,i){"use strict";var n=i(0).FDLayoutEdge;function r(t,e,i){n.call(this,t,e,i)}for(var o in r.prototype=Object.create(n.prototype),n)r[o]=n[o];t.exports=r},function(t,e,i){"use strict";var n=i(0).LGraph;function r(t,e,i){n.call(this,t,e,i)}for(var o in r.prototype=Object.create(n.prototype),n)r[o]=n[o];t.exports=r},function(t,e,i){"use strict";var n=i(0).LGraphManager;function r(t){n.call(this,t)}for(var o in r.prototype=Object.create(n.prototype),n)r[o]=n[o];t.exports=r},function(t,e,i){"use strict";var n=i(0).FDLayoutNode,r=i(0).IMath;function o(t,e,i,r){n.call(this,t,e,i,r)}for(var s in o.prototype=Object.create(n.prototype),n)o[s]=n[s];o.prototype.move=function(){var t=this.graphManager.getLayout();this.displacementX=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementX=t.coolingFactor*t.maxNodeDisplacement*r.sign(this.displacementX)),Math.abs(this.displacementY)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementY=t.coolingFactor*t.maxNodeDisplacement*r.sign(this.displacementY)),null==this.child?this.moveBy(this.displacementX,this.displacementY):0==this.child.getNodes().length?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),t.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},o.prototype.propogateDisplacementToChildren=function(t,e){for(var i,n=this.getChild().getNodes(),r=0;r<n.length;r++)null==(i=n[r]).getChild()?(i.moveBy(t,e),i.displacementX+=t,i.displacementY+=e):i.propogateDisplacementToChildren(t,e)},o.prototype.setPred1=function(t){this.pred1=t},o.prototype.getPred1=function(){return pred1},o.prototype.getPred2=function(){return pred2},o.prototype.setNext=function(t){this.next=t},o.prototype.getNext=function(){return next},o.prototype.setProcessed=function(t){this.processed=t},o.prototype.isProcessed=function(){return processed},t.exports=o},function(t,e,i){"use strict";var n=i(0).FDLayout,r=i(4),o=i(3),s=i(5),a=i(2),h=i(1),l=i(0).FDLayoutConstants,c=i(0).LayoutConstants,g=i(0).Point,u=i(0).PointD,d=i(0).Layout,p=i(0).Integer,f=i(0).IGeometry,y=i(0).LGraph,E=i(0).Transform;function v(){n.call(this),this.toBeTiled={}}for(var _ in v.prototype=Object.create(n.prototype),n)v[_]=n[_];v.prototype.newGraphManager=function(){var t=new r(this);return this.graphManager=t,t},v.prototype.newGraph=function(t){return new o(null,this.graphManager,t)},v.prototype.newNode=function(t){return new s(this.graphManager,t)},v.prototype.newEdge=function(t){return new a(null,null,t)},v.prototype.initParameters=function(){n.prototype.initParameters.call(this,arguments),this.isSubLayout||(h.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=h.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=h.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.springConstant=l.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=l.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=l.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=l.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=l.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1,this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/l.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=l.CONVERGENCE_CHECK_PERIOD/this.maxIterations,this.coolingAdjuster=1)},v.prototype.layout=function(){return c.DEFAULT_CREATE_BENDS_AS_NEEDED&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},v.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(h.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter(function(e){return t.has(e)});this.graphManager.setAllNodesToApplyGravitation(e)}}else{var i=this.getFlatForest();if(i.length>0)this.positionNodesRadially(i);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter(function(e){return t.has(e)});this.graphManager.setAllNodesToApplyGravitation(e),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},v.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}if(this.totalIterations%l.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged()){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}this.coolingCycle++,0==this.layoutQuality?this.coolingAdjuster=this.coolingCycle:1==this.layoutQuality&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0){if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter(function(e){return t.has(e)});this.graphManager.setAllNodesToApplyGravitation(e),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0}this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var i=!this.isTreeGrowing&&!this.isGrowthFinished,n=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(i,n),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},v.prototype.getPositionsData=function(){for(var t=this.graphManager.getAllNodes(),e={},i=0;i<t.length;i++){var n=t[i].rect,r=t[i].id;e[r]={id:r,x:n.getCenterX(),y:n.getCenterY(),w:n.width,h:n.height}}return e},v.prototype.runSpringEmbedder=function(){this.initialAnimationPeriod=25,this.animationPeriod=this.initialAnimationPeriod;var t=!1;if("during"===l.ANIMATE)this.emit("layoutstarted");else{for(;!t;)t=this.tick();this.graphManager.updateBounds()}},v.prototype.calculateNodesToApplyGravitationTo=function(){var t,e,i=[],n=this.graphManager.getGraphs(),r=n.length;for(e=0;e<r;e++)(t=n[e]).updateConnected(),t.isConnected||(i=i.concat(t.getNodes()));return i},v.prototype.createBendpoints=function(){var t=[];t=t.concat(this.graphManager.getAllEdges());var e=new Set;for(o=0;o<t.length;o++){var i=t[o];if(!e.has(i)){var n=i.getSource(),r=i.getTarget();if(n==r)i.getBendpoints().push(new u),i.getBendpoints().push(new u),this.createDummyNodesForBendpoints(i),e.add(i);else{var o,s,a=[];if(a=(a=a.concat(n.getEdgeListToNode(r))).concat(r.getEdgeListToNode(n)),!e.has(a[0])){if(a.length>1)for(s=0;s<a.length;s++){var h=a[s];h.getBendpoints().push(new u),this.createDummyNodesForBendpoints(h)}a.forEach(function(t){e.add(t)})}}}if(e.size==t.length)break}},v.prototype.positionNodesRadially=function(t){for(var e=new g(0,0),i=Math.ceil(Math.sqrt(t.length)),n=0,r=0,o=0,s=new u(0,0),a=0;a<t.length;a++){a%i==0&&(o=0,r=n,0!=a&&(r+=h.DEFAULT_COMPONENT_SEPERATION),n=0);var l=t[a],p=d.findCenterOfTree(l);e.x=o,e.y=r,(s=v.radialLayout(l,p,e)).y>n&&(n=Math.floor(s.y)),o=Math.floor(s.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new u(c.WORLD_CENTER_X-s.x/2,c.WORLD_CENTER_Y-s.y/2))},v.radialLayout=function(t,e,i){var n=Math.max(this.maxDiagonalInTree(t),h.DEFAULT_RADIAL_SEPARATION);v.branchRadialLayout(e,null,0,359,0,n);var r=y.calculateBounds(t),o=new E;o.setDeviceOrgX(r.getMinX()),o.setDeviceOrgY(r.getMinY()),o.setWorldOrgX(i.x),o.setWorldOrgY(i.y);for(var s=0;s<t.length;s++)t[s].transform(o);var a=new u(r.getMaxX(),r.getMaxY());return o.inverseTransformPoint(a)},v.branchRadialLayout=function(t,e,i,n,r,o){var s,a=(n-i+1)/2;a<0&&(a+=180);var h=(a+i)%360*f.TWO_PI/360,l=r*Math.cos(h),c=r*Math.sin(h);t.setCenter(l,c);var g=[],u=(g=g.concat(t.getEdges())).length;null!=e&&u--;for(var d=0,p=g.length,y=t.getEdgesBetween(e);y.length>1;){var E=y[0];y.splice(0,1);var _=g.indexOf(E);_>=0&&g.splice(_,1),p--,u--}s=null!=e?(g.indexOf(y[0])+1)%p:0;for(var m=Math.abs(n-i)/u,N=s;d!=u;N=++N%p){var A=g[N].getOtherEnd(t);if(A!=e){var L=(i+d*m)%360,T=(L+m)%360;v.branchRadialLayout(A,t,L,T,r+o,o),d++}}},v.maxDiagonalInTree=function(t){for(var e=p.MIN_VALUE,i=0;i<t.length;i++){var n=t[i].getDiagonal();n>e&&(e=n)}return e},v.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},v.prototype.groupZeroDegreeMembers=function(){var t=this,e={};this.memberGroups={},this.idToDummyNode={};for(var i=[],n=this.graphManager.getAllNodes(),r=0;r<n.length;r++){var o=n[r],a=o.getParent();0!==this.getNodeDegreeWithChildren(o)||void 0!=a.id&&this.getToBeTiled(a)||i.push(o)}for(var r=0;r<i.length;r++){var o=i[r],h=o.getParent().id;void 0===e[h]&&(e[h]=[]),e[h]=e[h].concat(o)}Object.keys(e).forEach(function(i){if(e[i].length>1){var n="DummyCompound_"+i;t.memberGroups[n]=e[i];var r=e[i][0].getParent(),o=new s(t.graphManager);o.id=n,o.paddingLeft=r.paddingLeft||0,o.paddingRight=r.paddingRight||0,o.paddingBottom=r.paddingBottom||0,o.paddingTop=r.paddingTop||0,t.idToDummyNode[n]=o;var a=t.getGraphManager().add(t.newGraph(),o),h=r.getChild();h.add(o);for(var l=0;l<e[i].length;l++){var c=e[i][l];h.remove(c),a.add(c)}}})},v.prototype.clearCompounds=function(){var t={},e={};this.performDFSOnCompounds();for(var i=0;i<this.compoundOrder.length;i++)e[this.compoundOrder[i].id]=this.compoundOrder[i],t[this.compoundOrder[i].id]=[].concat(this.compoundOrder[i].getChild().getNodes()),this.graphManager.remove(this.compoundOrder[i].getChild()),this.compoundOrder[i].child=null;this.graphManager.resetAllNodes(),this.tileCompoundMembers(t,e)},v.prototype.clearZeroDegreeMembers=function(){var t=this,e=this.tiledZeroDegreePack=[];Object.keys(this.memberGroups).forEach(function(i){var n=t.idToDummyNode[i];e[i]=t.tileNodes(t.memberGroups[i],n.paddingLeft+n.paddingRight),n.rect.width=e[i].width,n.rect.height=e[i].height})},v.prototype.repopulateCompounds=function(){for(var t=this.compoundOrder.length-1;t>=0;t--){var e=this.compoundOrder[t],i=e.id,n=e.paddingLeft,r=e.paddingTop;this.adjustLocations(this.tiledMemberPack[i],e.rect.x,e.rect.y,n,r)}},v.prototype.repopulateZeroDegreeMembers=function(){var t=this,e=this.tiledZeroDegreePack;Object.keys(e).forEach(function(i){var n=t.idToDummyNode[i],r=n.paddingLeft,o=n.paddingTop;t.adjustLocations(e[i],n.rect.x,n.rect.y,r,o)})},v.prototype.getToBeTiled=function(t){var e=t.id;if(null!=this.toBeTiled[e])return this.toBeTiled[e];var i=t.getChild();if(null==i)return this.toBeTiled[e]=!1,!1;for(var n=i.getNodes(),r=0;r<n.length;r++){var o=n[r];if(this.getNodeDegree(o)>0)return this.toBeTiled[e]=!1,!1;if(null==o.getChild()){this.toBeTiled[o.id]=!1;continue}if(!this.getToBeTiled(o))return this.toBeTiled[e]=!1,!1}return this.toBeTiled[e]=!0,!0},v.prototype.getNodeDegree=function(t){t.id;for(var e=t.getEdges(),i=0,n=0;n<e.length;n++){var r=e[n];r.getSource().id!==r.getTarget().id&&(i+=1)}return i},v.prototype.getNodeDegreeWithChildren=function(t){var e=this.getNodeDegree(t);if(null==t.getChild())return e;for(var i=t.getChild().getNodes(),n=0;n<i.length;n++){var r=i[n];e+=this.getNodeDegreeWithChildren(r)}return e},v.prototype.performDFSOnCompounds=function(){this.compoundOrder=[],this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes())},v.prototype.fillCompexOrderByDFS=function(t){for(var e=0;e<t.length;e++){var i=t[e];null!=i.getChild()&&this.fillCompexOrderByDFS(i.getChild().getNodes()),this.getToBeTiled(i)&&this.compoundOrder.push(i)}},v.prototype.adjustLocations=function(t,e,i,n,r){e+=n,i+=r;for(var o=e,s=0;s<t.rows.length;s++){var a=t.rows[s];e=o;for(var h=0,l=0;l<a.length;l++){var c=a[l];c.rect.x=e,c.rect.y=i,e+=c.rect.width+t.horizontalPadding,c.rect.height>h&&(h=c.rect.height)}i+=h+t.verticalPadding}},v.prototype.tileCompoundMembers=function(t,e){var i=this;this.tiledMemberPack=[],Object.keys(t).forEach(function(n){var r=e[n];i.tiledMemberPack[n]=i.tileNodes(t[n],r.paddingLeft+r.paddingRight),r.rect.width=i.tiledMemberPack[n].width,r.rect.height=i.tiledMemberPack[n].height})},v.prototype.tileNodes=function(t,e){var i={rows:[],rowWidth:[],rowHeight:[],width:0,height:e,verticalPadding:h.TILING_PADDING_VERTICAL,horizontalPadding:h.TILING_PADDING_HORIZONTAL};t.sort(function(t,e){return t.rect.width*t.rect.height>e.rect.width*e.rect.height?-1:t.rect.width*t.rect.height<e.rect.width*e.rect.height?1:0});for(var n=0;n<t.length;n++){var r=t[n];0==i.rows.length?this.insertNodeToRow(i,r,0,e):this.canAddHorizontal(i,r.rect.width,r.rect.height)?this.insertNodeToRow(i,r,this.getShortestRowIndex(i),e):this.insertNodeToRow(i,r,i.rows.length,e),this.shiftToLastRow(i)}return i},v.prototype.insertNodeToRow=function(t,e,i,n){i==t.rows.length&&(t.rows.push([]),t.rowWidth.push(n),t.rowHeight.push(0));var r=t.rowWidth[i]+e.rect.width;t.rows[i].length>0&&(r+=t.horizontalPadding),t.rowWidth[i]=r,t.width<r&&(t.width=r);var o=e.rect.height;i>0&&(o+=t.verticalPadding);var s=0;o>t.rowHeight[i]&&(s=t.rowHeight[i],t.rowHeight[i]=o,s=t.rowHeight[i]-s),t.height+=s,t.rows[i].push(e)},v.prototype.getShortestRowIndex=function(t){for(var e=-1,i=Number.MAX_VALUE,n=0;n<t.rows.length;n++)t.rowWidth[n]<i&&(e=n,i=t.rowWidth[n]);return e},v.prototype.getLongestRowIndex=function(t){for(var e=-1,i=Number.MIN_VALUE,n=0;n<t.rows.length;n++)t.rowWidth[n]>i&&(e=n,i=t.rowWidth[n]);return e},v.prototype.canAddHorizontal=function(t,e,i){var n,r,o=this.getShortestRowIndex(t);if(o<0)return!0;var s=t.rowWidth[o];if(s+t.horizontalPadding+e<=t.width)return!0;var a=0;return t.rowHeight[o]<i&&o>0&&(a=i+t.verticalPadding-t.rowHeight[o]),n=t.width-s>=e+t.horizontalPadding?(t.height+a)/(s+e+t.horizontalPadding):(t.height+a)/t.width,a=i+t.verticalPadding,(r=t.width<e?(t.height+a)/e:(t.height+a)/t.width)<1&&(r=1/r),n<1&&(n=1/n),n<r},v.prototype.shiftToLastRow=function(t){var e=this.getLongestRowIndex(t),i=t.rowWidth.length-1,n=t.rows[e],r=n[n.length-1],o=r.width+t.horizontalPadding;if(t.width-t.rowWidth[i]>o&&e!=i){n.splice(-1,1),t.rows[i].push(r),t.rowWidth[e]=t.rowWidth[e]-o,t.rowWidth[i]=t.rowWidth[i]+o,t.width=t.rowWidth[instance.getLongestRowIndex(t)];for(var s=Number.MIN_VALUE,a=0;a<n.length;a++)n[a].height>s&&(s=n[a].height);e>0&&(s+=t.verticalPadding);var h=t.rowHeight[e]+t.rowHeight[i];t.rowHeight[e]=s,t.rowHeight[i]<r.height+t.verticalPadding&&(t.rowHeight[i]=r.height+t.verticalPadding);var l=t.rowHeight[e]+t.rowHeight[i];t.height+=l-h,this.shiftToLastRow(t)}},v.prototype.tilingPreLayout=function(){h.TILE&&(this.groupZeroDegreeMembers(),this.clearCompounds(),this.clearZeroDegreeMembers())},v.prototype.tilingPostLayout=function(){h.TILE&&(this.repopulateZeroDegreeMembers(),this.repopulateCompounds())},v.prototype.reduceTrees=function(){for(var t,e=[],i=!0;i;){var n=this.graphManager.getAllNodes(),r=[];i=!1;for(var o=0;o<n.length;o++)1!=(t=n[o]).getEdges().length||t.getEdges()[0].isInterGraph||null!=t.getChild()||(r.push([t,t.getEdges()[0],t.getOwner()]),i=!0);if(!0==i){for(var s=[],a=0;a<r.length;a++)1==r[a][0].getEdges().length&&(s.push(r[a]),r[a][0].getOwner().remove(r[a][0]));e.push(s),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()}}this.prunedNodesAll=e},v.prototype.growTree=function(t){for(var e,i=t.length,n=t[i-1],r=0;r<n.length;r++)e=n[r],this.findPlaceforPrunedNode(e),e[2].add(e[0]),e[2].add(e[1],e[1].source,e[1].target);t.splice(t.length-1,1),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()},v.prototype.findPlaceforPrunedNode=function(t){var e,i,n,r,o=t[0],s=(i=o==t[1].source?t[1].target:t[1].source).startX,a=i.finishX,h=i.startY,c=i.finishY,g=[0,0,0,0];if(h>0)for(var u=s;u<=a;u++)g[0]+=this.grid[u][h-1].length+this.grid[u][h].length-1;if(a<this.grid.length-1)for(var u=h;u<=c;u++)g[1]+=this.grid[a+1][u].length+this.grid[a][u].length-1;if(c<this.grid[0].length-1)for(var u=s;u<=a;u++)g[2]+=this.grid[u][c+1].length+this.grid[u][c].length-1;if(s>0)for(var u=h;u<=c;u++)g[3]+=this.grid[s-1][u].length+this.grid[s][u].length-1;for(var d=p.MAX_VALUE,f=0;f<g.length;f++)g[f]<d?(d=g[f],n=1,r=f):g[f]==d&&n++;if(3==n&&0==d)0==g[0]&&0==g[1]&&0==g[2]?e=1:0==g[0]&&0==g[1]&&0==g[3]?e=0:0==g[0]&&0==g[2]&&0==g[3]?e=3:0==g[1]&&0==g[2]&&0==g[3]&&(e=2);else if(2==n&&0==d){var y=Math.floor(2*Math.random());e=0==g[0]&&0==g[1]?0==y?0:1:0==g[0]&&0==g[2]?0==y?0:2:0==g[0]&&0==g[3]?0==y?0:3:0==g[1]&&0==g[2]?0==y?1:2:0==g[1]&&0==g[3]?0==y?1:3:0==y?2:3}else if(4==n&&0==d){var y=Math.floor(4*Math.random());e=y}else e=r;0==e?o.setCenter(i.getCenterX(),i.getCenterY()-i.getHeight()/2-l.DEFAULT_EDGE_LENGTH-o.getHeight()/2):1==e?o.setCenter(i.getCenterX()+i.getWidth()/2+l.DEFAULT_EDGE_LENGTH+o.getWidth()/2,i.getCenterY()):2==e?o.setCenter(i.getCenterX(),i.getCenterY()+i.getHeight()/2+l.DEFAULT_EDGE_LENGTH+o.getHeight()/2):o.setCenter(i.getCenterX()-i.getWidth()/2-l.DEFAULT_EDGE_LENGTH-o.getWidth()/2,i.getCenterY())},t.exports=v},function(t,e,i){"use strict";var n={};n.layoutBase=i(0),n.CoSEConstants=i(1),n.CoSEEdge=i(2),n.CoSEGraph=i(3),n.CoSEGraphManager=i(4),n.CoSELayout=i(6),n.CoSENode=i(5),t.exports=n}])},t.exports=n(i(44467))},69165:function(t,e,i){var n;n=function(t){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=t,i.c=e,i.i=function(t){return t},i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=1)}([function(e,i){e.exports=t},function(t,e,i){"use strict";var n=i(0).layoutBase.LayoutConstants,r=i(0).layoutBase.FDLayoutConstants,o=i(0).CoSEConstants,s=i(0).CoSELayout,a=i(0).CoSENode,h=i(0).layoutBase.PointD,l=i(0).layoutBase.DimensionD,c={ready:function(){},stop:function(){},quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function g(t){this.options=function(t,e){var i={};for(var n in t)i[n]=t[n];for(var n in e)i[n]=e[n];return i}(c,t),u(this.options)}var u=function(t){null!=t.nodeRepulsion&&(o.DEFAULT_REPULSION_STRENGTH=r.DEFAULT_REPULSION_STRENGTH=t.nodeRepulsion),null!=t.idealEdgeLength&&(o.DEFAULT_EDGE_LENGTH=r.DEFAULT_EDGE_LENGTH=t.idealEdgeLength),null!=t.edgeElasticity&&(o.DEFAULT_SPRING_STRENGTH=r.DEFAULT_SPRING_STRENGTH=t.edgeElasticity),null!=t.nestingFactor&&(o.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=r.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=t.nestingFactor),null!=t.gravity&&(o.DEFAULT_GRAVITY_STRENGTH=r.DEFAULT_GRAVITY_STRENGTH=t.gravity),null!=t.numIter&&(o.MAX_ITERATIONS=r.MAX_ITERATIONS=t.numIter),null!=t.gravityRange&&(o.DEFAULT_GRAVITY_RANGE_FACTOR=r.DEFAULT_GRAVITY_RANGE_FACTOR=t.gravityRange),null!=t.gravityCompound&&(o.DEFAULT_COMPOUND_GRAVITY_STRENGTH=r.DEFAULT_COMPOUND_GRAVITY_STRENGTH=t.gravityCompound),null!=t.gravityRangeCompound&&(o.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=r.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=t.gravityRangeCompound),null!=t.initialEnergyOnIncremental&&(o.DEFAULT_COOLING_FACTOR_INCREMENTAL=r.DEFAULT_COOLING_FACTOR_INCREMENTAL=t.initialEnergyOnIncremental),"draft"==t.quality?n.QUALITY=0:"proof"==t.quality?n.QUALITY=2:n.QUALITY=1,o.NODE_DIMENSIONS_INCLUDE_LABELS=r.NODE_DIMENSIONS_INCLUDE_LABELS=n.NODE_DIMENSIONS_INCLUDE_LABELS=t.nodeDimensionsIncludeLabels,o.DEFAULT_INCREMENTAL=r.DEFAULT_INCREMENTAL=n.DEFAULT_INCREMENTAL=!t.randomize,o.ANIMATE=r.ANIMATE=n.ANIMATE=t.animate,o.TILE=t.tile,o.TILING_PADDING_VERTICAL="function"==typeof t.tilingPaddingVertical?t.tilingPaddingVertical.call():t.tilingPaddingVertical,o.TILING_PADDING_HORIZONTAL="function"==typeof t.tilingPaddingHorizontal?t.tilingPaddingHorizontal.call():t.tilingPaddingHorizontal};g.prototype.run=function(){var t,e,i=this.options;this.idToLNode={};var n=this.layout=new s,r=this;r.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this});var o=n.newGraphManager();this.gm=o;var a=this.options.eles.nodes(),h=this.options.eles.edges();this.root=o.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(a),n);for(var l=0;l<h.length;l++){var c=h[l],g=this.idToLNode[c.data("source")],u=this.idToLNode[c.data("target")];g!==u&&0==g.getEdgesBetween(u).length&&(o.add(n.newEdge(),g,u).id=c.id())}var d=function(t,e){"number"==typeof t&&(t=e);var i=t.data("id"),n=r.idToLNode[i];return{x:n.getRect().getCenterX(),y:n.getRect().getCenterY()}},p=function o(){for(var s,a=function(){i.fit&&i.cy.fit(i.eles,i.padding),t||(t=!0,r.cy.one("layoutready",i.ready),r.cy.trigger({type:"layoutready",layout:r}))},h=r.options.refresh,l=0;l<h&&!s;l++)s=r.stopped||r.layout.tick();if(s){n.checkLayoutSuccess()&&!n.isSubLayout&&n.doPostLayout(),n.tilingPostLayout&&n.tilingPostLayout(),n.isLayoutFinished=!0,r.options.eles.nodes().positions(d),a(),r.cy.one("layoutstop",r.options.stop),r.cy.trigger({type:"layoutstop",layout:r}),e&&cancelAnimationFrame(e),t=!1;return}var c=r.layout.getPositionsData();i.eles.nodes().positions(function(t,e){if("number"==typeof t&&(t=e),!t.isParent()){for(var i=t.id(),n=c[i],r=t;null==n&&(n=c[r.data("parent")]||c["DummyCompound_"+r.data("parent")],c[i]=n,void 0!=(r=r.parent()[0])););return null!=n?{x:n.x,y:n.y}:{x:t.position("x"),y:t.position("y")}}}),a(),e=requestAnimationFrame(o)};return n.addListener("layoutstarted",function(){"during"===r.options.animate&&(e=requestAnimationFrame(p))}),n.runLayout(),"during"!==this.options.animate&&(r.options.eles.nodes().not(":parent").layoutPositions(r,r.options,d),t=!1),this},g.prototype.getTopMostNodes=function(t){for(var e={},i=0;i<t.length;i++)e[t[i].id()]=!0;return t.filter(function(t,i){"number"==typeof t&&(t=i);for(var n=t.parent()[0];null!=n;){if(e[n.id()])return!1;n=n.parent()[0]}return!0})},g.prototype.processChildrenList=function(t,e,i){for(var n=e.length,r=0;r<n;r++){var o,s,c=e[r],g=c.children(),u=c.layoutDimensions({nodeDimensionsIncludeLabels:this.options.nodeDimensionsIncludeLabels});if((o=null!=c.outerWidth()&&null!=c.outerHeight()?t.add(new a(i.graphManager,new h(c.position("x")-u.w/2,c.position("y")-u.h/2),new l(parseFloat(u.w),parseFloat(u.h)))):t.add(new a(this.graphManager))).id=c.data("id"),o.paddingLeft=parseInt(c.css("padding")),o.paddingTop=parseInt(c.css("padding")),o.paddingRight=parseInt(c.css("padding")),o.paddingBottom=parseInt(c.css("padding")),this.options.nodeDimensionsIncludeLabels&&c.isParent()){var d=c.boundingBox({includeLabels:!0,includeNodes:!1}).w,p=c.boundingBox({includeLabels:!0,includeNodes:!1}).h,f=c.css("text-halign");o.labelWidth=d,o.labelHeight=p,o.labelPos=f}this.idToLNode[c.data("id")]=o,isNaN(o.rect.x)&&(o.rect.x=0),isNaN(o.rect.y)&&(o.rect.y=0),null!=g&&g.length>0&&(s=i.getGraphManager().add(i.newGraph(),o),this.processChildrenList(s,g,i))}},g.prototype.stop=function(){return this.stopped=!0,this};var d=function(t){t("layout","cose-bilkent",g)};"undefined"!=typeof cytoscape&&d(cytoscape),t.exports=d}])},t.exports=n(i(29859))},44467:function(t){var e;e=function(){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=t,i.c=e,i.i=function(t){return t},i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=26)}([function(t,e,i){"use strict";function n(){}n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_SIZE=40,n.SIMPLE_NODE_HALF_SIZE=n.SIMPLE_NODE_SIZE/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.WORLD_BOUNDARY=1e6,n.INITIAL_WORLD_BOUNDARY=n.WORLD_BOUNDARY/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,t.exports=n},function(t,e,i){"use strict";var n=i(2),r=i(8),o=i(9);function s(t,e,i){n.call(this,i),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=i,this.bendpoints=[],this.source=t,this.target=e}for(var a in s.prototype=Object.create(n.prototype),n)s[a]=n[a];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(t){if(this.source===t)return this.target;if(this.target===t)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(t,e){for(var i=this.getOtherEnd(t),n=e.getGraphManager().getRoot();;){if(i.getOwner()==e)return i;if(i.getOwner()==n)break;i=i.getOwner().getParent()}return null},s.prototype.updateLength=function(){var t=[,,,,];this.isOverlapingSourceAndTarget=r.getIntersection(this.target.getRect(),this.source.getRect(),t),this.isOverlapingSourceAndTarget||(this.lengthX=t[0]-t[2],this.lengthY=t[1]-t[3],1>Math.abs(this.lengthX)&&(this.lengthX=o.sign(this.lengthX)),1>Math.abs(this.lengthY)&&(this.lengthY=o.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),1>Math.abs(this.lengthX)&&(this.lengthX=o.sign(this.lengthX)),1>Math.abs(this.lengthY)&&(this.lengthY=o.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=s},function(t,e,i){"use strict";t.exports=function(t){this.vGraphObject=t}},function(t,e,i){"use strict";var n=i(2),r=i(10),o=i(13),s=i(0),a=i(16),h=i(4);function l(t,e,i,s){null==i&&null==s&&(s=e),n.call(this,s),null!=t.graphManager&&(t=t.graphManager),this.estimatedSize=r.MIN_VALUE,this.inclusionTreeDepth=r.MAX_VALUE,this.vGraphObject=s,this.edges=[],this.graphManager=t,null!=i&&null!=e?this.rect=new o(e.x,e.y,i.width,i.height):this.rect=new o}for(var c in l.prototype=Object.create(n.prototype),n)l[c]=n[c];l.prototype.getEdges=function(){return this.edges},l.prototype.getChild=function(){return this.child},l.prototype.getOwner=function(){return this.owner},l.prototype.getWidth=function(){return this.rect.width},l.prototype.setWidth=function(t){this.rect.width=t},l.prototype.getHeight=function(){return this.rect.height},l.prototype.setHeight=function(t){this.rect.height=t},l.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},l.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},l.prototype.getCenter=function(){return new h(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},l.prototype.getLocation=function(){return new h(this.rect.x,this.rect.y)},l.prototype.getRect=function(){return this.rect},l.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},l.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},l.prototype.setRect=function(t,e){this.rect.x=t.x,this.rect.y=t.y,this.rect.width=e.width,this.rect.height=e.height},l.prototype.setCenter=function(t,e){this.rect.x=t-this.rect.width/2,this.rect.y=e-this.rect.height/2},l.prototype.setLocation=function(t,e){this.rect.x=t,this.rect.y=e},l.prototype.moveBy=function(t,e){this.rect.x+=t,this.rect.y+=e},l.prototype.getEdgeListToNode=function(t){var e=[],i=this;return i.edges.forEach(function(n){if(n.target==t){if(n.source!=i)throw"Incorrect edge source!";e.push(n)}}),e},l.prototype.getEdgesBetween=function(t){var e=[],i=this;return i.edges.forEach(function(n){if(!(n.source==i||n.target==i))throw"Incorrect edge source and/or target";(n.target==t||n.source==t)&&e.push(n)}),e},l.prototype.getNeighborsList=function(){var t=new Set,e=this;return e.edges.forEach(function(i){if(i.source==e)t.add(i.target);else{if(i.target!=e)throw"Incorrect incidency!";t.add(i.source)}}),t},l.prototype.withChildren=function(){var t=new Set;if(t.add(this),null!=this.child)for(var e=this.child.getNodes(),i=0;i<e.length;i++)e[i].withChildren().forEach(function(e){t.add(e)});return t},l.prototype.getNoOfChildren=function(){var t=0;if(null==this.child)t=1;else for(var e=this.child.getNodes(),i=0;i<e.length;i++)t+=e[i].getNoOfChildren();return 0==t&&(t=1),t},l.prototype.getEstimatedSize=function(){if(this.estimatedSize==r.MIN_VALUE)throw"assert failed";return this.estimatedSize},l.prototype.calcEstimatedSize=function(){return null==this.child?this.estimatedSize=(this.rect.width+this.rect.height)/2:(this.estimatedSize=this.child.calcEstimatedSize(),this.rect.width=this.estimatedSize,this.rect.height=this.estimatedSize,this.estimatedSize)},l.prototype.scatter=function(){var t,e,i=-s.INITIAL_WORLD_BOUNDARY,n=s.INITIAL_WORLD_BOUNDARY;t=s.WORLD_CENTER_X+a.nextDouble()*(n-i)+i;var r=-s.INITIAL_WORLD_BOUNDARY,o=s.INITIAL_WORLD_BOUNDARY;e=s.WORLD_CENTER_Y+a.nextDouble()*(o-r)+r,this.rect.x=t,this.rect.y=e},l.prototype.updateBounds=function(){if(null==this.getChild())throw"assert failed";if(0!=this.getChild().getNodes().length){var t=this.getChild();if(t.updateBounds(!0),this.rect.x=t.getLeft(),this.rect.y=t.getTop(),this.setWidth(t.getRight()-t.getLeft()),this.setHeight(t.getBottom()-t.getTop()),s.NODE_DIMENSIONS_INCLUDE_LABELS){var e=t.getRight()-t.getLeft(),i=t.getBottom()-t.getTop();this.labelWidth>e&&(this.rect.x-=(this.labelWidth-e)/2,this.setWidth(this.labelWidth)),this.labelHeight>i&&("center"==this.labelPos?this.rect.y-=(this.labelHeight-i)/2:"top"==this.labelPos&&(this.rect.y-=this.labelHeight-i),this.setHeight(this.labelHeight))}}},l.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==r.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},l.prototype.transform=function(t){var e=this.rect.x;e>s.WORLD_BOUNDARY?e=s.WORLD_BOUNDARY:e<-s.WORLD_BOUNDARY&&(e=-s.WORLD_BOUNDARY);var i=this.rect.y;i>s.WORLD_BOUNDARY?i=s.WORLD_BOUNDARY:i<-s.WORLD_BOUNDARY&&(i=-s.WORLD_BOUNDARY);var n=new h(e,i),r=t.inverseTransformPoint(n);this.setLocation(r.x,r.y)},l.prototype.getLeft=function(){return this.rect.x},l.prototype.getRight=function(){return this.rect.x+this.rect.width},l.prototype.getTop=function(){return this.rect.y},l.prototype.getBottom=function(){return this.rect.y+this.rect.height},l.prototype.getParent=function(){return null==this.owner?null:this.owner.getParent()},t.exports=l},function(t,e,i){"use strict";function n(t,e){null==t&&null==e?(this.x=0,this.y=0):(this.x=t,this.y=e)}n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(t){this.x=t},n.prototype.setY=function(t){this.y=t},n.prototype.getDifference=function(t){return new DimensionD(this.x-t.x,this.y-t.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(t){return this.x+=t.width,this.y+=t.height,this},t.exports=n},function(t,e,i){"use strict";var n=i(2),r=i(10),o=i(0),s=i(6),a=i(3),h=i(1),l=i(13),c=i(12),g=i(11);function u(t,e,i){n.call(this,i),this.estimatedSize=r.MIN_VALUE,this.margin=o.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=t,null!=e&&e instanceof s?this.graphManager=e:null!=e&&e instanceof Layout&&(this.graphManager=e.graphManager)}for(var d in u.prototype=Object.create(n.prototype),n)u[d]=n[d];u.prototype.getNodes=function(){return this.nodes},u.prototype.getEdges=function(){return this.edges},u.prototype.getGraphManager=function(){return this.graphManager},u.prototype.getParent=function(){return this.parent},u.prototype.getLeft=function(){return this.left},u.prototype.getRight=function(){return this.right},u.prototype.getTop=function(){return this.top},u.prototype.getBottom=function(){return this.bottom},u.prototype.isConnected=function(){return this.isConnected},u.prototype.add=function(t,e,i){if(null==e&&null==i){if(null==this.graphManager)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(t)>-1)throw"Node already in graph!";return t.owner=this,this.getNodes().push(t),t}if(!(this.getNodes().indexOf(e)>-1&&this.getNodes().indexOf(i)>-1))throw"Source or target not in graph!";if(!(e.owner==i.owner&&e.owner==this))throw"Both owners must be this graph!";return e.owner!=i.owner?null:(t.source=e,t.target=i,t.isInterGraph=!1,this.getEdges().push(t),e.edges.push(t),i!=e&&i.edges.push(t),t)},u.prototype.remove=function(t){if(t instanceof a){if(null==t)throw"Node is null!";if(!(null!=t.owner&&t.owner==this))throw"Owner graph is invalid!";if(null==this.graphManager)throw"Owner graph manager is invalid!";for(var e,i=t.edges.slice(),n=i.length,r=0;r<n;r++)(e=i[r]).isInterGraph?this.graphManager.remove(e):e.source.owner.remove(e);var o=this.nodes.indexOf(t);if(-1==o)throw"Node not in owner node list!";this.nodes.splice(o,1)}else if(t instanceof h){var e=t;if(null==e)throw"Edge is null!";if(!(null!=e.source&&null!=e.target))throw"Source and/or target is null!";if(!(null!=e.source.owner&&null!=e.target.owner&&e.source.owner==this&&e.target.owner==this))throw"Source and/or target owner is invalid!";var s=e.source.edges.indexOf(e),l=e.target.edges.indexOf(e);if(!(s>-1&&l>-1))throw"Source and/or target doesn't know this edge!";e.source.edges.splice(s,1),e.target!=e.source&&e.target.edges.splice(l,1);var o=e.source.owner.getEdges().indexOf(e);if(-1==o)throw"Not in owner's edge list!";e.source.owner.getEdges().splice(o,1)}},u.prototype.updateLeftTop=function(){for(var t,e,i,n=r.MAX_VALUE,o=r.MAX_VALUE,s=this.getNodes(),a=s.length,h=0;h<a;h++){var l=s[h];t=l.getTop(),e=l.getLeft(),n>t&&(n=t),o>e&&(o=e)}return n==r.MAX_VALUE?null:(i=void 0!=s[0].getParent().paddingLeft?s[0].getParent().paddingLeft:this.margin,this.left=o-i,this.top=n-i,new c(this.left,this.top))},u.prototype.updateBounds=function(t){for(var e,i,n,o,s,a=r.MAX_VALUE,h=-r.MAX_VALUE,c=r.MAX_VALUE,g=-r.MAX_VALUE,u=this.nodes,d=u.length,p=0;p<d;p++){var f=u[p];t&&null!=f.child&&f.updateBounds(),e=f.getLeft(),i=f.getRight(),n=f.getTop(),o=f.getBottom(),a>e&&(a=e),h<i&&(h=i),c>n&&(c=n),g<o&&(g=o)}var y=new l(a,c,h-a,g-c);a==r.MAX_VALUE&&(this.left=this.parent.getLeft(),this.right=this.parent.getRight(),this.top=this.parent.getTop(),this.bottom=this.parent.getBottom()),s=void 0!=u[0].getParent().paddingLeft?u[0].getParent().paddingLeft:this.margin,this.left=y.x-s,this.right=y.x+y.width+s,this.top=y.y-s,this.bottom=y.y+y.height+s},u.calculateBounds=function(t){for(var e,i,n,o,s=r.MAX_VALUE,a=-r.MAX_VALUE,h=r.MAX_VALUE,c=-r.MAX_VALUE,g=t.length,u=0;u<g;u++){var d=t[u];e=d.getLeft(),i=d.getRight(),n=d.getTop(),o=d.getBottom(),s>e&&(s=e),a<i&&(a=i),h>n&&(h=n),c<o&&(c=o)}return new l(s,h,a-s,c-h)},u.prototype.getInclusionTreeDepth=function(){return this==this.graphManager.getRoot()?1:this.parent.getInclusionTreeDepth()},u.prototype.getEstimatedSize=function(){if(this.estimatedSize==r.MIN_VALUE)throw"assert failed";return this.estimatedSize},u.prototype.calcEstimatedSize=function(){for(var t=0,e=this.nodes,i=e.length,n=0;n<i;n++)t+=e[n].calcEstimatedSize();return 0==t?this.estimatedSize=o.EMPTY_COMPOUND_NODE_SIZE:this.estimatedSize=t/Math.sqrt(this.nodes.length),this.estimatedSize},u.prototype.updateConnected=function(){var t,e,i=this;if(0==this.nodes.length){this.isConnected=!0;return}var n=new g,r=new Set,o=this.nodes[0];for(o.withChildren().forEach(function(t){n.push(t),r.add(t)});0!==n.length;)for(var s=(t=(o=n.shift()).getEdges()).length,a=0;a<s;a++)null==(e=t[a].getOtherEndInGraph(o,this))||r.has(e)||e.withChildren().forEach(function(t){n.push(t),r.add(t)});if(this.isConnected=!1,r.size>=this.nodes.length){var h=0;r.forEach(function(t){t.owner==i&&h++}),h==this.nodes.length&&(this.isConnected=!0)}},t.exports=u},function(t,e,i){"use strict";var n,r=i(1);function o(t){n=i(5),this.layout=t,this.graphs=[],this.edges=[]}o.prototype.addRoot=function(){var t=this.layout.newGraph(),e=this.layout.newNode(null),i=this.add(t,e);return this.setRootGraph(i),this.rootGraph},o.prototype.add=function(t,e,i,n,r){if(null==i&&null==n&&null==r){if(null==t)throw"Graph is null!";if(null==e)throw"Parent node is null!";if(this.graphs.indexOf(t)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(t),null!=t.parent)throw"Already has a parent!";if(null!=e.child)throw"Already has a child!";return t.parent=e,e.child=t,t}r=i,n=e,i=t;var o=n.getOwner(),s=r.getOwner();if(!(null!=o&&o.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(null!=s&&s.getGraphManager()==this))throw"Target not in this graph mgr!";if(o==s)return i.isInterGraph=!1,o.add(i,n,r);if(i.isInterGraph=!0,i.source=n,i.target=r,this.edges.indexOf(i)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(i),!(null!=i.source&&null!=i.target))throw"Edge source and/or target is null!";if(!(-1==i.source.edges.indexOf(i)&&-1==i.target.edges.indexOf(i)))throw"Edge already in source and/or target incidency list!";return i.source.edges.push(i),i.target.edges.push(i),i},o.prototype.remove=function(t){if(t instanceof n){if(t.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(t==this.rootGraph||null!=t.parent&&t.parent.graphManager==this))throw"Invalid parent node!";for(var e,i,o=[],s=(o=o.concat(t.getEdges())).length,a=0;a<s;a++)e=o[a],t.remove(e);var h=[];s=(h=h.concat(t.getNodes())).length;for(var a=0;a<s;a++)i=h[a],t.remove(i);t==this.rootGraph&&this.setRootGraph(null);var l=this.graphs.indexOf(t);this.graphs.splice(l,1),t.parent=null}else if(t instanceof r){if(null==(e=t))throw"Edge is null!";if(!e.isInterGraph)throw"Not an inter-graph edge!";if(!(null!=e.source&&null!=e.target))throw"Source and/or target is null!";if(!(-1!=e.source.edges.indexOf(e)&&-1!=e.target.edges.indexOf(e)))throw"Source and/or target doesn't know this edge!";var l=e.source.edges.indexOf(e);if(e.source.edges.splice(l,1),l=e.target.edges.indexOf(e),e.target.edges.splice(l,1),!(null!=e.source.owner&&null!=e.source.owner.getGraphManager()))throw"Edge owner graph or owner graph manager is null!";if(-1==e.source.owner.getGraphManager().edges.indexOf(e))throw"Not in owner graph manager's edge list!";var l=e.source.owner.getGraphManager().edges.indexOf(e);e.source.owner.getGraphManager().edges.splice(l,1)}},o.prototype.updateBounds=function(){this.rootGraph.updateBounds(!0)},o.prototype.getGraphs=function(){return this.graphs},o.prototype.getAllNodes=function(){if(null==this.allNodes){for(var t=[],e=this.getGraphs(),i=e.length,n=0;n<i;n++)t=t.concat(e[n].getNodes());this.allNodes=t}return this.allNodes},o.prototype.resetAllNodes=function(){this.allNodes=null},o.prototype.resetAllEdges=function(){this.allEdges=null},o.prototype.resetAllNodesToApplyGravitation=function(){this.allNodesToApplyGravitation=null},o.prototype.getAllEdges=function(){if(null==this.allEdges){var t=[],e=this.getGraphs();e.length;for(var i=0;i<e.length;i++)t=t.concat(e[i].getEdges());t=t.concat(this.edges),this.allEdges=t}return this.allEdges},o.prototype.getAllNodesToApplyGravitation=function(){return this.allNodesToApplyGravitation},o.prototype.setAllNodesToApplyGravitation=function(t){if(null!=this.allNodesToApplyGravitation)throw"assert failed";this.allNodesToApplyGravitation=t},o.prototype.getRoot=function(){return this.rootGraph},o.prototype.setRootGraph=function(t){if(t.getGraphManager()!=this)throw"Root not in this graph mgr!";this.rootGraph=t,null==t.parent&&(t.parent=this.layout.newNode("Root node"))},o.prototype.getLayout=function(){return this.layout},o.prototype.isOneAncestorOfOther=function(t,e){if(!(null!=t&&null!=e))throw"assert failed";if(t==e)return!0;for(var i,n=t.getOwner();null!=(i=n.getParent());){if(i==e)return!0;if(null==(n=i.getOwner()))break}for(n=e.getOwner();null!=(i=n.getParent());){if(i==t)return!0;if(null==(n=i.getOwner()))break}return!1},o.prototype.calcLowestCommonAncestors=function(){for(var t,e,i,n,r,o=this.getAllEdges(),s=o.length,a=0;a<s;a++){if(e=(t=o[a]).source,i=t.target,t.lca=null,t.sourceInLca=e,t.targetInLca=i,e==i){t.lca=e.getOwner();continue}for(n=e.getOwner();null==t.lca;){for(t.targetInLca=i,r=i.getOwner();null==t.lca;){if(r==n){t.lca=r;break}if(r==this.rootGraph)break;if(null!=t.lca)throw"assert failed";t.targetInLca=r.getParent(),r=t.targetInLca.getOwner()}if(n==this.rootGraph)break;null==t.lca&&(t.sourceInLca=n.getParent(),n=t.sourceInLca.getOwner())}if(null==t.lca)throw"assert failed"}},o.prototype.calcLowestCommonAncestor=function(t,e){if(t==e)return t.getOwner();for(var i=t.getOwner();null!=i;){for(var n=e.getOwner();null!=n;){if(n==i)return n;n=n.getParent().getOwner()}i=i.getParent().getOwner()}return i},o.prototype.calcInclusionTreeDepths=function(t,e){null==t&&null==e&&(t=this.rootGraph,e=1);for(var i,n=t.getNodes(),r=n.length,o=0;o<r;o++)(i=n[o]).inclusionTreeDepth=e,null!=i.child&&this.calcInclusionTreeDepths(i.child,e+1)},o.prototype.includesInvalidEdge=function(){for(var t,e=this.edges.length,i=0;i<e;i++)if(t=this.edges[i],this.isOneAncestorOfOther(t.source,t.target))return!0;return!1},t.exports=o},function(t,e,i){"use strict";var n=i(0);function r(){}for(var o in n)r[o]=n[o];r.MAX_ITERATIONS=2500,r.DEFAULT_EDGE_LENGTH=50,r.DEFAULT_SPRING_STRENGTH=.45,r.DEFAULT_REPULSION_STRENGTH=4500,r.DEFAULT_GRAVITY_STRENGTH=.4,r.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,r.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,r.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,r.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,r.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,r.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,r.COOLING_ADAPTATION_FACTOR=.33,r.ADAPTATION_LOWER_NODE_LIMIT=1e3,r.ADAPTATION_UPPER_NODE_LIMIT=5e3,r.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,r.MAX_NODE_DISPLACEMENT=3*r.MAX_NODE_DISPLACEMENT_INCREMENTAL,r.MIN_REPULSION_DIST=r.DEFAULT_EDGE_LENGTH/10,r.CONVERGENCE_CHECK_PERIOD=100,r.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,r.MIN_EDGE_LENGTH=1,r.GRID_CALCULATION_CHECK_PERIOD=10,t.exports=r},function(t,e,i){"use strict";var n=i(12);function r(){}r.calcSeparationAmount=function(t,e,i,n){if(!t.intersects(e))throw"assert failed";var r=[,,];this.decideDirectionsForOverlappingNodes(t,e,r),i[0]=Math.min(t.getRight(),e.getRight())-Math.max(t.x,e.x),i[1]=Math.min(t.getBottom(),e.getBottom())-Math.max(t.y,e.y),t.getX()<=e.getX()&&t.getRight()>=e.getRight()?i[0]+=Math.min(e.getX()-t.getX(),t.getRight()-e.getRight()):e.getX()<=t.getX()&&e.getRight()>=t.getRight()&&(i[0]+=Math.min(t.getX()-e.getX(),e.getRight()-t.getRight())),t.getY()<=e.getY()&&t.getBottom()>=e.getBottom()?i[1]+=Math.min(e.getY()-t.getY(),t.getBottom()-e.getBottom()):e.getY()<=t.getY()&&e.getBottom()>=t.getBottom()&&(i[1]+=Math.min(t.getY()-e.getY(),e.getBottom()-t.getBottom()));var o=Math.abs((e.getCenterY()-t.getCenterY())/(e.getCenterX()-t.getCenterX()));e.getCenterY()===t.getCenterY()&&e.getCenterX()===t.getCenterX()&&(o=1);var s=o*i[0],a=i[1]/o;i[0]<a?a=i[0]:s=i[1],i[0]=-1*r[0]*(a/2+n),i[1]=-1*r[1]*(s/2+n)},r.decideDirectionsForOverlappingNodes=function(t,e,i){t.getCenterX()<e.getCenterX()?i[0]=-1:i[0]=1,t.getCenterY()<e.getCenterY()?i[1]=-1:i[1]=1},r.getIntersection2=function(t,e,i){var n=t.getCenterX(),r=t.getCenterY(),o=e.getCenterX(),s=e.getCenterY();if(t.intersects(e))return i[0]=n,i[1]=r,i[2]=o,i[3]=s,!0;var a=t.getX(),h=t.getY(),l=t.getRight(),c=t.getX(),g=t.getBottom(),u=t.getRight(),d=t.getWidthHalf(),p=t.getHeightHalf(),f=e.getX(),y=e.getY(),E=e.getRight(),v=e.getX(),_=e.getBottom(),m=e.getRight(),N=e.getWidthHalf(),A=e.getHeightHalf(),L=!1,T=!1;if(n===o)r>s?(i[0]=n,i[1]=h,i[2]=o,i[3]=_):r<s&&(i[0]=n,i[1]=g,i[2]=o,i[3]=y);else if(r===s)n>o?(i[0]=a,i[1]=r,i[2]=E,i[3]=s):n<o&&(i[0]=l,i[1]=r,i[2]=f,i[3]=s);else{var O=t.height/t.width,D=e.height/e.width,I=(s-r)/(o-n),w=void 0,R=void 0,C=void 0,M=void 0,x=void 0,G=void 0;if(-O===I?(n>o?(i[0]=c,i[1]=g):(i[0]=l,i[1]=h),L=!0):O===I&&(n>o?(i[0]=a,i[1]=h):(i[0]=u,i[1]=g),L=!0),-D===I?(o>n?(i[2]=v,i[3]=_):(i[2]=E,i[3]=y),T=!0):D===I&&(o>n?(i[2]=f,i[3]=y):(i[2]=m,i[3]=_),T=!0),L&&T)return!1;if(n>o?r>s?(w=this.getCardinalDirection(O,I,4),R=this.getCardinalDirection(D,I,2)):(w=this.getCardinalDirection(-O,I,3),R=this.getCardinalDirection(-D,I,1)):r>s?(w=this.getCardinalDirection(-O,I,1),R=this.getCardinalDirection(-D,I,3)):(w=this.getCardinalDirection(O,I,2),R=this.getCardinalDirection(D,I,4)),!L)switch(w){case 1:M=h,C=n+-p/I,i[0]=C,i[1]=M;break;case 2:C=u,M=r+d*I,i[0]=C,i[1]=M;break;case 3:M=g,C=n+p/I,i[0]=C,i[1]=M;break;case 4:C=c,M=r+-d*I,i[0]=C,i[1]=M}if(!T)switch(R){case 1:G=y,x=o+-A/I,i[2]=x,i[3]=G;break;case 2:x=m,G=s+N*I,i[2]=x,i[3]=G;break;case 3:G=_,x=o+A/I,i[2]=x,i[3]=G;break;case 4:x=v,G=s+-N*I,i[2]=x,i[3]=G}}return!1},r.getCardinalDirection=function(t,e,i){return t>e?i:1+i%4},r.getIntersection=function(t,e,i,r){if(null==r)return this.getIntersection2(t,e,i);var o=t.x,s=t.y,a=e.x,h=e.y,l=i.x,c=i.y,g=r.x,u=r.y,d=void 0,p=void 0,f=void 0,y=void 0,E=void 0,v=void 0,_=void 0;return(d=h-s,f=o-a,E=a*s-o*h,p=u-c,y=l-g,v=g*c-l*u,0==(_=d*y-p*f))?null:new n((f*v-y*E)/_,(p*E-d*v)/_)},r.angleOfVector=function(t,e,i,n){var r=void 0;return t!==i?(r=Math.atan((n-e)/(i-t)),i<t?r+=Math.PI:n<e&&(r+=this.TWO_PI)):r=n<e?this.ONE_AND_HALF_PI:this.HALF_PI,r},r.doIntersect=function(t,e,i,n){var r=t.x,o=t.y,s=e.x,a=e.y,h=i.x,l=i.y,c=n.x,g=n.y,u=(s-r)*(g-l)-(c-h)*(a-o);if(0===u)return!1;var d=((g-l)*(c-r)+(h-c)*(g-o))/u,p=((o-a)*(c-r)+(s-r)*(g-o))/u;return 0<d&&d<1&&0<p&&p<1},r.HALF_PI=.5*Math.PI,r.ONE_AND_HALF_PI=1.5*Math.PI,r.TWO_PI=2*Math.PI,r.THREE_PI=3*Math.PI,t.exports=r},function(t,e,i){"use strict";function n(){}n.sign=function(t){return t>0?1:t<0?-1:0},n.floor=function(t){return t<0?Math.ceil(t):Math.floor(t)},n.ceil=function(t){return t<0?Math.floor(t):Math.ceil(t)},t.exports=n},function(t,e,i){"use strict";function n(){}n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,t.exports=n},function(t,e,i){"use strict";var n=function(){function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,i,n){return i&&t(e.prototype,i),n&&t(e,n),e}}(),r=function(t){return{value:t,next:null,prev:null}},o=function(t,e,i,n){return null!==t?t.next=e:n.head=e,null!==i?i.prev=e:n.tail=e,e.prev=t,e.next=i,n.length++,e},s=function(t,e){var i=t.prev,n=t.next;return null!==i?i.next=n:e.head=n,null!==n?n.prev=i:e.tail=i,t.prev=t.next=null,e.length--,t},a=function(){function t(e){var i=this;(function(t,e){if(!(t instanceof e))throw TypeError("Cannot call a class as a function")})(this,t),this.length=0,this.head=null,this.tail=null,null!=e&&e.forEach(function(t){return i.push(t)})}return n(t,[{key:"size",value:function(){return this.length}},{key:"insertBefore",value:function(t,e){return o(e.prev,r(t),e,this)}},{key:"insertAfter",value:function(t,e){return o(e,r(t),e.next,this)}},{key:"insertNodeBefore",value:function(t,e){return o(e.prev,t,e,this)}},{key:"insertNodeAfter",value:function(t,e){return o(e,t,e.next,this)}},{key:"push",value:function(t){return o(this.tail,r(t),null,this)}},{key:"unshift",value:function(t){return o(null,r(t),this.head,this)}},{key:"remove",value:function(t){return s(t,this)}},{key:"pop",value:function(){return s(this.tail,this).value}},{key:"popNode",value:function(){return s(this.tail,this)}},{key:"shift",value:function(){return s(this.head,this).value}},{key:"shiftNode",value:function(){return s(this.head,this)}},{key:"get_object_at",value:function(t){if(t<=this.length()){for(var e=1,i=this.head;e<t;)i=i.next,e++;return i.value}}},{key:"set_object_at",value:function(t,e){if(t<=this.length()){for(var i=1,n=this.head;i<t;)n=n.next,i++;n.value=e}}}]),t}();t.exports=a},function(t,e,i){"use strict";function n(t,e,i){this.x=null,this.y=null,null==t&&null==e&&null==i?(this.x=0,this.y=0):"number"==typeof t&&"number"==typeof e&&null==i?(this.x=t,this.y=e):"Point"==t.constructor.name&&null==e&&null==i&&(i=t,this.x=i.x,this.y=i.y)}n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.getLocation=function(){return new n(this.x,this.y)},n.prototype.setLocation=function(t,e,i){"Point"==t.constructor.name&&null==e&&null==i?(i=t,this.setLocation(i.x,i.y)):"number"==typeof t&&"number"==typeof e&&null==i&&(parseInt(t)==t&&parseInt(e)==e?this.move(t,e):(this.x=Math.floor(t+.5),this.y=Math.floor(e+.5)))},n.prototype.move=function(t,e){this.x=t,this.y=e},n.prototype.translate=function(t,e){this.x+=t,this.y+=e},n.prototype.equals=function(t){return"Point"==t.constructor.name?this.x==t.x&&this.y==t.y:this==t},n.prototype.toString=function(){return new n().constructor.name+"[x="+this.x+",y="+this.y+"]"},t.exports=n},function(t,e,i){"use strict";function n(t,e,i,n){this.x=0,this.y=0,this.width=0,this.height=0,null!=t&&null!=e&&null!=i&&null!=n&&(this.x=t,this.y=e,this.width=i,this.height=n)}n.prototype.getX=function(){return this.x},n.prototype.setX=function(t){this.x=t},n.prototype.getY=function(){return this.y},n.prototype.setY=function(t){this.y=t},n.prototype.getWidth=function(){return this.width},n.prototype.setWidth=function(t){this.width=t},n.prototype.getHeight=function(){return this.height},n.prototype.setHeight=function(t){this.height=t},n.prototype.getRight=function(){return this.x+this.width},n.prototype.getBottom=function(){return this.y+this.height},n.prototype.intersects=function(t){return!(this.getRight()<t.x||this.getBottom()<t.y||t.getRight()<this.x||t.getBottom()<this.y)},n.prototype.getCenterX=function(){return this.x+this.width/2},n.prototype.getMinX=function(){return this.getX()},n.prototype.getMaxX=function(){return this.getX()+this.width},n.prototype.getCenterY=function(){return this.y+this.height/2},n.prototype.getMinY=function(){return this.getY()},n.prototype.getMaxY=function(){return this.getY()+this.height},n.prototype.getWidthHalf=function(){return this.width/2},n.prototype.getHeightHalf=function(){return this.height/2},t.exports=n},function(t,e,i){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};function r(){}r.lastID=0,r.createID=function(t){return r.isPrimitive(t)?t:(null!=t.uniqueID||(t.uniqueID=r.getString(),r.lastID++),t.uniqueID)},r.getString=function(t){return null==t&&(t=r.lastID),"Object#"+t},r.isPrimitive=function(t){var e=void 0===t?"undefined":n(t);return null==t||"object"!=e&&"function"!=e},t.exports=r},function(t,e,i){"use strict";function n(t){if(!Array.isArray(t))return Array.from(t);for(var e=0,i=Array(t.length);e<t.length;e++)i[e]=t[e];return i}var r=i(0),o=i(6),s=i(3),a=i(1),h=i(5),l=i(4),c=i(17),g=i(27);function u(t){g.call(this),this.layoutQuality=r.QUALITY,this.createBendsAsNeeded=r.DEFAULT_CREATE_BENDS_AS_NEEDED,this.incremental=r.DEFAULT_INCREMENTAL,this.animationOnLayout=r.DEFAULT_ANIMATION_ON_LAYOUT,this.animationDuringLayout=r.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=r.DEFAULT_ANIMATION_PERIOD,this.uniformLeafNodeSizes=r.DEFAULT_UNIFORM_LEAF_NODE_SIZES,this.edgeToDummyNodes=new Map,this.graphManager=new o(this),this.isLayoutFinished=!1,this.isSubLayout=!1,this.isRemoteUse=!1,null!=t&&(this.isRemoteUse=t)}u.RANDOM_SEED=1,u.prototype=Object.create(g.prototype),u.prototype.getGraphManager=function(){return this.graphManager},u.prototype.getAllNodes=function(){return this.graphManager.getAllNodes()},u.prototype.getAllEdges=function(){return this.graphManager.getAllEdges()},u.prototype.getAllNodesToApplyGravitation=function(){return this.graphManager.getAllNodesToApplyGravitation()},u.prototype.newGraphManager=function(){var t=new o(this);return this.graphManager=t,t},u.prototype.newGraph=function(t){return new h(null,this.graphManager,t)},u.prototype.newNode=function(t){return new s(this.graphManager,t)},u.prototype.newEdge=function(t){return new a(null,null,t)},u.prototype.checkLayoutSuccess=function(){return null==this.graphManager.getRoot()||0==this.graphManager.getRoot().getNodes().length||this.graphManager.includesInvalidEdge()},u.prototype.runLayout=function(){var t;return this.isLayoutFinished=!1,this.tilingPreLayout&&this.tilingPreLayout(),this.initParameters(),t=!this.checkLayoutSuccess()&&this.layout(),"during"!==r.ANIMATE&&(t&&!this.isSubLayout&&this.doPostLayout(),this.tilingPostLayout&&this.tilingPostLayout(),this.isLayoutFinished=!0,t)},u.prototype.doPostLayout=function(){this.incremental||this.transform(),this.update()},u.prototype.update2=function(){if(this.createBendsAsNeeded&&(this.createBendpointsFromDummyNodes(),this.graphManager.resetAllEdges()),!this.isRemoteUse){for(var t=this.graphManager.getAllEdges(),e=0;e<t.length;e++)t[e];for(var i=this.graphManager.getRoot().getNodes(),e=0;e<i.length;e++)i[e];this.update(this.graphManager.getRoot())}},u.prototype.update=function(t){if(null==t)this.update2();else if(t instanceof s){if(null!=t.getChild())for(var e=t.getChild().getNodes(),i=0;i<e.length;i++)update(e[i]);null!=t.vGraphObject&&t.vGraphObject.update(t)}else t instanceof a?null!=t.vGraphObject&&t.vGraphObject.update(t):t instanceof h&&null!=t.vGraphObject&&t.vGraphObject.update(t)},u.prototype.initParameters=function(){this.isSubLayout||(this.layoutQuality=r.QUALITY,this.animationDuringLayout=r.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=r.DEFAULT_ANIMATION_PERIOD,this.animationOnLayout=r.DEFAULT_ANIMATION_ON_LAYOUT,this.incremental=r.DEFAULT_INCREMENTAL,this.createBendsAsNeeded=r.DEFAULT_CREATE_BENDS_AS_NEEDED,this.uniformLeafNodeSizes=r.DEFAULT_UNIFORM_LEAF_NODE_SIZES),this.animationDuringLayout&&(this.animationOnLayout=!1)},u.prototype.transform=function(t){if(void 0==t)this.transform(new l(0,0));else{var e=new c,i=this.graphManager.getRoot().updateLeftTop();if(null!=i){e.setWorldOrgX(t.x),e.setWorldOrgY(t.y),e.setDeviceOrgX(i.x),e.setDeviceOrgY(i.y);for(var n=this.getAllNodes(),r=0;r<n.length;r++)n[r].transform(e)}}},u.prototype.positionNodesRandomly=function(t){if(void 0==t)this.positionNodesRandomly(this.getGraphManager().getRoot()),this.getGraphManager().getRoot().updateBounds(!0);else for(var e,i,n=t.getNodes(),r=0;r<n.length;r++)null==(i=(e=n[r]).getChild())?e.scatter():0==i.getNodes().length?e.scatter():(this.positionNodesRandomly(i),e.updateBounds())},u.prototype.getFlatForest=function(){for(var t=[],e=!0,i=this.graphManager.getRoot().getNodes(),r=!0,o=0;o<i.length;o++)null!=i[o].getChild()&&(r=!1);if(!r)return t;var s=new Set,a=[],h=new Map,l=[];for(l=l.concat(i);l.length>0&&e;){for(a.push(l[0]);a.length>0&&e;){var c=a[0];a.splice(0,1),s.add(c);for(var g=c.getEdges(),o=0;o<g.length;o++){var u=g[o].getOtherEnd(c);if(h.get(c)!=u){if(s.has(u)){e=!1;break}a.push(u),h.set(u,c)}}}if(e){var d=[].concat(n(s));t.push(d);for(var o=0;o<d.length;o++){var p=d[o],f=l.indexOf(p);f>-1&&l.splice(f,1)}s=new Set,h=new Map}else t=[]}return t},u.prototype.createDummyNodesForBendpoints=function(t){for(var e=[],i=t.source,n=this.graphManager.calcLowestCommonAncestor(t.source,t.target),r=0;r<t.bendpoints.length;r++){var o=this.newNode(null);o.setRect(new Point(0,0),new Dimension(1,1)),n.add(o);var s=this.newEdge(null);this.graphManager.add(s,i,o),e.add(o),i=o}var s=this.newEdge(null);return this.graphManager.add(s,i,t.target),this.edgeToDummyNodes.set(t,e),t.isInterGraph()?this.graphManager.remove(t):n.remove(t),e},u.prototype.createBendpointsFromDummyNodes=function(){var t=[];t=t.concat(this.graphManager.getAllEdges()),t=[].concat(n(this.edgeToDummyNodes.keys())).concat(t);for(var e=0;e<t.length;e++){var i=t[e];if(i.bendpoints.length>0){for(var r=this.edgeToDummyNodes.get(i),o=0;o<r.length;o++){var s=r[o],a=new l(s.getCenterX(),s.getCenterY()),h=i.bendpoints.get(o);h.x=a.x,h.y=a.y,s.getOwner().remove(s)}this.graphManager.add(i,i.source,i.target)}}},u.transform=function(t,e,i,n){if(void 0==i||void 0==n)return t<=50?(r=9*e/500,o=e/10):(r=9*e/50,o=-8*e),r*t+o;var r,o,s=e;return t<=50?s-=(e-e/i)/50*(50-t):s+=(e*n-e)/50*(t-50),s},u.findCenterOfTree=function(t){var e=[];e=e.concat(t);var i=[],n=new Map,r=!1,o=null;(1==e.length||2==e.length)&&(r=!0,o=e[0]);for(var s=0;s<e.length;s++){var a=e[s],h=a.getNeighborsList().size;n.set(a,a.getNeighborsList().size),1==h&&i.push(a)}var l=[];for(l=l.concat(i);!r;){var c=[];c=c.concat(l),l=[];for(var s=0;s<e.length;s++){var a=e[s],g=e.indexOf(a);g>=0&&e.splice(g,1),a.getNeighborsList().forEach(function(t){if(0>i.indexOf(t)){var e=n.get(t)-1;1==e&&l.push(t),n.set(t,e)}})}i=i.concat(l),(1==e.length||2==e.length)&&(r=!0,o=e[0])}return o},u.prototype.setGraphManager=function(t){this.graphManager=t},t.exports=u},function(t,e,i){"use strict";function n(){}n.seed=1,n.x=0,n.nextDouble=function(){return n.x=1e4*Math.sin(n.seed++),n.x-Math.floor(n.x)},t.exports=n},function(t,e,i){"use strict";var n=i(4);function r(t,e){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}r.prototype.getWorldOrgX=function(){return this.lworldOrgX},r.prototype.setWorldOrgX=function(t){this.lworldOrgX=t},r.prototype.getWorldOrgY=function(){return this.lworldOrgY},r.prototype.setWorldOrgY=function(t){this.lworldOrgY=t},r.prototype.getWorldExtX=function(){return this.lworldExtX},r.prototype.setWorldExtX=function(t){this.lworldExtX=t},r.prototype.getWorldExtY=function(){return this.lworldExtY},r.prototype.setWorldExtY=function(t){this.lworldExtY=t},r.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},r.prototype.setDeviceOrgX=function(t){this.ldeviceOrgX=t},r.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},r.prototype.setDeviceOrgY=function(t){this.ldeviceOrgY=t},r.prototype.getDeviceExtX=function(){return this.ldeviceExtX},r.prototype.setDeviceExtX=function(t){this.ldeviceExtX=t},r.prototype.getDeviceExtY=function(){return this.ldeviceExtY},r.prototype.setDeviceExtY=function(t){this.ldeviceExtY=t},r.prototype.transformX=function(t){var e=0,i=this.lworldExtX;return 0!=i&&(e=this.ldeviceOrgX+(t-this.lworldOrgX)*this.ldeviceExtX/i),e},r.prototype.transformY=function(t){var e=0,i=this.lworldExtY;return 0!=i&&(e=this.ldeviceOrgY+(t-this.lworldOrgY)*this.ldeviceExtY/i),e},r.prototype.inverseTransformX=function(t){var e=0,i=this.ldeviceExtX;return 0!=i&&(e=this.lworldOrgX+(t-this.ldeviceOrgX)*this.lworldExtX/i),e},r.prototype.inverseTransformY=function(t){var e=0,i=this.ldeviceExtY;return 0!=i&&(e=this.lworldOrgY+(t-this.ldeviceOrgY)*this.lworldExtY/i),e},r.prototype.inverseTransformPoint=function(t){return new n(this.inverseTransformX(t.x),this.inverseTransformY(t.y))},t.exports=r},function(t,e,i){"use strict";var n=i(15),r=i(7),o=i(0),s=i(8),a=i(9);function h(){n.call(this),this.useSmartIdealEdgeLengthCalculation=r.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.idealEdgeLength=r.DEFAULT_EDGE_LENGTH,this.springConstant=r.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=r.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=r.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=r.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=r.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=r.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.displacementThresholdPerNode=3*r.DEFAULT_EDGE_LENGTH/100,this.coolingFactor=r.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.initialCoolingFactor=r.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.totalDisplacement=0,this.oldTotalDisplacement=0,this.maxIterations=r.MAX_ITERATIONS}for(var l in h.prototype=Object.create(n.prototype),n)h[l]=n[l];h.prototype.initParameters=function(){n.prototype.initParameters.call(this,arguments),this.totalIterations=0,this.notAnimatedIterations=0,this.useFRGridVariant=r.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION,this.grid=[]},h.prototype.calcIdealEdgeLengths=function(){for(var t,e,i,n,s,a,h=this.getGraphManager().getAllEdges(),l=0;l<h.length;l++)(t=h[l]).idealLength=this.idealEdgeLength,t.isInterGraph&&(i=t.getSource(),n=t.getTarget(),s=t.getSourceInLca().getEstimatedSize(),a=t.getTargetInLca().getEstimatedSize(),this.useSmartIdealEdgeLengthCalculation&&(t.idealLength+=s+a-2*o.SIMPLE_NODE_SIZE),e=t.getLca().getInclusionTreeDepth(),t.idealLength+=r.DEFAULT_EDGE_LENGTH*r.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR*(i.getInclusionTreeDepth()+n.getInclusionTreeDepth()-2*e))},h.prototype.initSpringEmbedder=function(){var t=this.getAllNodes().length;this.incremental?(t>r.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*r.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(t-r.ADAPTATION_LOWER_NODE_LIMIT)/(r.ADAPTATION_UPPER_NODE_LIMIT-r.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-r.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=r.MAX_NODE_DISPLACEMENT_INCREMENTAL):(t>r.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(r.COOLING_ADAPTATION_FACTOR,1-(t-r.ADAPTATION_LOWER_NODE_LIMIT)/(r.ADAPTATION_UPPER_NODE_LIMIT-r.ADAPTATION_LOWER_NODE_LIMIT)*(1-r.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=r.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(5*this.getAllNodes().length,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var t,e=this.getAllEdges(),i=0;i<e.length;i++)t=e[i],this.calcSpringForce(t,t.idealLength)},h.prototype.calcRepulsionForces=function(){var t,e,i,n,o,s=!(arguments.length>0)||void 0===arguments[0]||arguments[0],a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],h=this.getAllNodes();if(this.useFRGridVariant)for(this.totalIterations%r.GRID_CALCULATION_CHECK_PERIOD==1&&s&&this.updateGrid(),o=new Set,t=0;t<h.length;t++)i=h[t],this.calculateRepulsionForceOfANode(i,o,s,a),o.add(i);else for(t=0;t<h.length;t++)for(i=h[t],e=t+1;e<h.length;e++)n=h[e],i.getOwner()==n.getOwner()&&this.calcRepulsionForce(i,n)},h.prototype.calcGravitationalForces=function(){for(var t,e=this.getAllNodesToApplyGravitation(),i=0;i<e.length;i++)t=e[i],this.calcGravitationalForce(t)},h.prototype.moveNodes=function(){for(var t=this.getAllNodes(),e=0;e<t.length;e++)t[e].move()},h.prototype.calcSpringForce=function(t,e){var i,n,r,o,s=t.getSource(),a=t.getTarget();if(this.uniformLeafNodeSizes&&null==s.getChild()&&null==a.getChild())t.updateLengthSimple();else if(t.updateLength(),t.isOverlapingSourceAndTarget)return;0!=(i=t.getLength())&&(r=(n=this.springConstant*(i-e))*(t.lengthX/i),o=n*(t.lengthY/i),s.springForceX+=r,s.springForceY+=o,a.springForceX-=r,a.springForceY-=o)},h.prototype.calcRepulsionForce=function(t,e){var i,n,o,h,l,c,g,u=t.getRect(),d=e.getRect(),p=[,,],f=[,,,,];if(u.intersects(d)){s.calcSeparationAmount(u,d,p,r.DEFAULT_EDGE_LENGTH/2),c=2*p[0],g=2*p[1];var y=t.noOfChildren*e.noOfChildren/(t.noOfChildren+e.noOfChildren);t.repulsionForceX-=y*c,t.repulsionForceY-=y*g,e.repulsionForceX+=y*c,e.repulsionForceY+=y*g}else this.uniformLeafNodeSizes&&null==t.getChild()&&null==e.getChild()?(i=d.getCenterX()-u.getCenterX(),n=d.getCenterY()-u.getCenterY()):(s.getIntersection(u,d,f),i=f[2]-f[0],n=f[3]-f[1]),Math.abs(i)<r.MIN_REPULSION_DIST&&(i=a.sign(i)*r.MIN_REPULSION_DIST),Math.abs(n)<r.MIN_REPULSION_DIST&&(n=a.sign(n)*r.MIN_REPULSION_DIST),h=Math.sqrt(o=i*i+n*n),c=(l=this.repulsionConstant*t.noOfChildren*e.noOfChildren/o)*i/h,g=l*n/h,t.repulsionForceX-=c,t.repulsionForceY-=g,e.repulsionForceX+=c,e.repulsionForceY+=g},h.prototype.calcGravitationalForce=function(t){var e,i,n,r,o,s,a,h;i=((e=t.getOwner()).getRight()+e.getLeft())/2,n=(e.getTop()+e.getBottom())/2,r=t.getCenterX()-i,o=t.getCenterY()-n,s=Math.abs(r)+t.getWidth()/2,a=Math.abs(o)+t.getHeight()/2,t.getOwner()==this.graphManager.getRoot()?(s>(h=e.getEstimatedSize()*this.gravityRangeFactor)||a>h)&&(t.gravitationForceX=-this.gravityConstant*r,t.gravitationForceY=-this.gravityConstant*o):(s>(h=e.getEstimatedSize()*this.compoundGravityRangeFactor)||a>h)&&(t.gravitationForceX=-this.gravityConstant*r*this.compoundGravityConstant,t.gravitationForceY=-this.gravityConstant*o*this.compoundGravityConstant)},h.prototype.isConverged=function(){var t,e=!1;return this.totalIterations>this.maxIterations/3&&(e=2>Math.abs(this.totalDisplacement-this.oldTotalDisplacement)),t=this.totalDisplacement<this.totalDisplacementThreshold,this.oldTotalDisplacement=this.totalDisplacement,t||e},h.prototype.animate=function(){this.animationDuringLayout&&!this.isSubLayout&&(this.notAnimatedIterations==this.animationPeriod?(this.update(),this.notAnimatedIterations=0):this.notAnimatedIterations++)},h.prototype.calcNoOfChildrenForAllNodes=function(){for(var t,e=this.graphManager.getAllNodes(),i=0;i<e.length;i++)(t=e[i]).noOfChildren=t.getNoOfChildren()},h.prototype.calcGrid=function(t){var e=0,i=0;e=parseInt(Math.ceil((t.getRight()-t.getLeft())/this.repulsionRange)),i=parseInt(Math.ceil((t.getBottom()-t.getTop())/this.repulsionRange));for(var n=Array(e),r=0;r<e;r++)n[r]=Array(i);for(var r=0;r<e;r++)for(var o=0;o<i;o++)n[r][o]=[];return n},h.prototype.addNodeToGrid=function(t,e,i){var n=0,r=0,o=0,s=0;n=parseInt(Math.floor((t.getRect().x-e)/this.repulsionRange)),r=parseInt(Math.floor((t.getRect().width+t.getRect().x-e)/this.repulsionRange)),o=parseInt(Math.floor((t.getRect().y-i)/this.repulsionRange)),s=parseInt(Math.floor((t.getRect().height+t.getRect().y-i)/this.repulsionRange));for(var a=n;a<=r;a++)for(var h=o;h<=s;h++)this.grid[a][h].push(t),t.setGridCoordinates(n,r,o,s)},h.prototype.updateGrid=function(){var t,e,i=this.getAllNodes();for(t=0,this.grid=this.calcGrid(this.graphManager.getRoot());t<i.length;t++)e=i[t],this.addNodeToGrid(e,this.graphManager.getRoot().getLeft(),this.graphManager.getRoot().getTop())},h.prototype.calculateRepulsionForceOfANode=function(t,e,i,n){if(this.totalIterations%r.GRID_CALCULATION_CHECK_PERIOD==1&&i||n){var o,s=new Set;t.surrounding=[];for(var a=this.grid,h=t.startX-1;h<t.finishX+2;h++)for(var l=t.startY-1;l<t.finishY+2;l++)if(!(h<0||l<0||h>=a.length||l>=a[0].length)){for(var c=0;c<a[h][l].length;c++)if(o=a[h][l][c],t.getOwner()==o.getOwner()&&t!=o&&!e.has(o)&&!s.has(o)){var g=Math.abs(t.getCenterX()-o.getCenterX())-(t.getWidth()/2+o.getWidth()/2),u=Math.abs(t.getCenterY()-o.getCenterY())-(t.getHeight()/2+o.getHeight()/2);g<=this.repulsionRange&&u<=this.repulsionRange&&s.add(o)}}t.surrounding=[].concat(function(t){if(!Array.isArray(t))return Array.from(t);for(var e=0,i=Array(t.length);e<t.length;e++)i[e]=t[e];return i}(s))}for(h=0;h<t.surrounding.length;h++)this.calcRepulsionForce(t,t.surrounding[h])},h.prototype.calcRepulsionRange=function(){return 0},t.exports=h},function(t,e,i){"use strict";var n=i(1),r=i(7);function o(t,e,i){n.call(this,t,e,i),this.idealLength=r.DEFAULT_EDGE_LENGTH}for(var s in o.prototype=Object.create(n.prototype),n)o[s]=n[s];t.exports=o},function(t,e,i){"use strict";var n=i(3);function r(t,e,i,r){n.call(this,t,e,i,r),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0,this.startX=0,this.finishX=0,this.startY=0,this.finishY=0,this.surrounding=[]}for(var o in r.prototype=Object.create(n.prototype),n)r[o]=n[o];r.prototype.setGridCoordinates=function(t,e,i,n){this.startX=t,this.finishX=e,this.startY=i,this.finishY=n},t.exports=r},function(t,e,i){"use strict";function n(t,e){this.width=0,this.height=0,null!==t&&null!==e&&(this.height=e,this.width=t)}n.prototype.getWidth=function(){return this.width},n.prototype.setWidth=function(t){this.width=t},n.prototype.getHeight=function(){return this.height},n.prototype.setHeight=function(t){this.height=t},t.exports=n},function(t,e,i){"use strict";var n=i(14);function r(){this.map={},this.keys=[]}r.prototype.put=function(t,e){var i=n.createID(t);this.contains(i)||(this.map[i]=e,this.keys.push(t))},r.prototype.contains=function(t){return n.createID(t),null!=this.map[t]},r.prototype.get=function(t){var e=n.createID(t);return this.map[e]},r.prototype.keySet=function(){return this.keys},t.exports=r},function(t,e,i){"use strict";var n=i(14);function r(){this.set={}}r.prototype.add=function(t){var e=n.createID(t);this.contains(e)||(this.set[e]=t)},r.prototype.remove=function(t){delete this.set[n.createID(t)]},r.prototype.clear=function(){this.set={}},r.prototype.contains=function(t){return this.set[n.createID(t)]==t},r.prototype.isEmpty=function(){return 0===this.size()},r.prototype.size=function(){return Object.keys(this.set).length},r.prototype.addAllTo=function(t){for(var e=Object.keys(this.set),i=e.length,n=0;n<i;n++)t.push(this.set[e[n]])},r.prototype.size=function(){return Object.keys(this.set).length},r.prototype.addAll=function(t){for(var e=t.length,i=0;i<e;i++){var n=t[i];this.add(n)}},t.exports=r},function(t,e,i){"use strict";var n=function(){function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,i,n){return i&&t(e.prototype,i),n&&t(e,n),e}}(),r=i(11),o=function(){function t(e,i){(function(t,e){if(!(t instanceof e))throw TypeError("Cannot call a class as a function")})(this,t),(null!==i||void 0!==i)&&(this.compareFunction=this._defaultCompareFunction);var n=void 0;n=e instanceof r?e.size():e.length,this._quicksort(e,0,n-1)}return n(t,[{key:"_quicksort",value:function(t,e,i){if(e<i){var n=this._partition(t,e,i);this._quicksort(t,e,n),this._quicksort(t,n+1,i)}}},{key:"_partition",value:function(t,e,i){for(var n=this._get(t,e),r=e,o=i;;){for(;this.compareFunction(n,this._get(t,o));)o--;for(;this.compareFunction(this._get(t,r),n);)r++;if(!(r<o))return o;this._swap(t,r,o),r++,o--}}},{key:"_get",value:function(t,e){return t instanceof r?t.get_object_at(e):t[e]}},{key:"_set",value:function(t,e,i){t instanceof r?t.set_object_at(e,i):t[e]=i}},{key:"_swap",value:function(t,e,i){var n=this._get(t,e);this._set(t,e,this._get(t,i)),this._set(t,i,n)}},{key:"_defaultCompareFunction",value:function(t,e){return e>t}}]),t}();t.exports=o},function(t,e,i){"use strict";var n=function(){function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,i,n){return i&&t(e.prototype,i),n&&t(e,n),e}}(),r=function(){function t(e,i){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1;(function(t,e){if(!(t instanceof e))throw TypeError("Cannot call a class as a function")})(this,t),this.sequence1=e,this.sequence2=i,this.match_score=n,this.mismatch_penalty=r,this.gap_penalty=o,this.iMax=e.length+1,this.jMax=i.length+1,this.grid=Array(this.iMax);for(var s=0;s<this.iMax;s++){this.grid[s]=Array(this.jMax);for(var a=0;a<this.jMax;a++)this.grid[s][a]=0}this.tracebackGrid=Array(this.iMax);for(var h=0;h<this.iMax;h++){this.tracebackGrid[h]=Array(this.jMax);for(var l=0;l<this.jMax;l++)this.tracebackGrid[h][l]=[null,null,null]}this.alignments=[],this.score=-1,this.computeGrids()}return n(t,[{key:"getScore",value:function(){return this.score}},{key:"getAlignments",value:function(){return this.alignments}},{key:"computeGrids",value:function(){for(var t=1;t<this.jMax;t++)this.grid[0][t]=this.grid[0][t-1]+this.gap_penalty,this.tracebackGrid[0][t]=[!1,!1,!0];for(var e=1;e<this.iMax;e++)this.grid[e][0]=this.grid[e-1][0]+this.gap_penalty,this.tracebackGrid[e][0]=[!1,!0,!1];for(var i=1;i<this.iMax;i++)for(var n=1;n<this.jMax;n++){var r=[this.sequence1[i-1]===this.sequence2[n-1]?this.grid[i-1][n-1]+this.match_score:this.grid[i-1][n-1]+this.mismatch_penalty,this.grid[i-1][n]+this.gap_penalty,this.grid[i][n-1]+this.gap_penalty],o=this.arrayAllMaxIndexes(r);this.grid[i][n]=r[o[0]],this.tracebackGrid[i][n]=[o.includes(0),o.includes(1),o.includes(2)]}this.score=this.grid[this.iMax-1][this.jMax-1]}},{key:"alignmentTraceback",value:function(){var t=[];for(t.push({pos:[this.sequence1.length,this.sequence2.length],seq1:"",seq2:""});t[0];){var e=t[0],i=this.tracebackGrid[e.pos[0]][e.pos[1]];i[0]&&t.push({pos:[e.pos[0]-1,e.pos[1]-1],seq1:this.sequence1[e.pos[0]-1]+e.seq1,seq2:this.sequence2[e.pos[1]-1]+e.seq2}),i[1]&&t.push({pos:[e.pos[0]-1,e.pos[1]],seq1:this.sequence1[e.pos[0]-1]+e.seq1,seq2:"-"+e.seq2}),i[2]&&t.push({pos:[e.pos[0],e.pos[1]-1],seq1:"-"+e.seq1,seq2:this.sequence2[e.pos[1]-1]+e.seq2}),0===e.pos[0]&&0===e.pos[1]&&this.alignments.push({sequence1:e.seq1,sequence2:e.seq2}),t.shift()}return this.alignments}},{key:"getAllIndexes",value:function(t,e){for(var i=[],n=-1;-1!==(n=t.indexOf(e,n+1));)i.push(n);return i}},{key:"arrayAllMaxIndexes",value:function(t){return this.getAllIndexes(t,Math.max.apply(null,t))}}]),t}();t.exports=r},function(t,e,i){"use strict";var n=function(){};n.FDLayout=i(18),n.FDLayoutConstants=i(7),n.FDLayoutEdge=i(19),n.FDLayoutNode=i(20),n.DimensionD=i(21),n.HashMap=i(22),n.HashSet=i(23),n.IGeometry=i(8),n.IMath=i(9),n.Integer=i(10),n.Point=i(12),n.PointD=i(4),n.RandomSeed=i(16),n.RectangleD=i(13),n.Transform=i(17),n.UniqueIDGeneretor=i(14),n.Quicksort=i(24),n.LinkedList=i(11),n.LGraphObject=i(2),n.LGraph=i(5),n.LEdge=i(1),n.LGraphManager=i(6),n.LNode=i(3),n.Layout=i(15),n.LayoutConstants=i(0),n.NeedlemanWunsch=i(25),t.exports=n},function(t,e,i){"use strict";function n(){this.listeners=[]}var r=n.prototype;r.addListener=function(t,e){this.listeners.push({event:t,callback:e})},r.removeListener=function(t,e){for(var i=this.listeners.length;i>=0;i--){var n=this.listeners[i];n.event===t&&n.callback===e&&this.listeners.splice(i,1)}},r.emit=function(t,e){for(var i=0;i<this.listeners.length;i++){var n=this.listeners[i];t===n.event&&n.callback(e)}},t.exports=n}])},t.exports=e()},61210:(t,e,i)=>{"use strict";i.d(e,{diagram:()=>W});var n=i(27923),r=i(67027),o=i(93491),s=i(72912),a=i(60359),h=i(69165),l=i(89601),c=i(71725),g=i(68459),u=i(57721),d=function(){var t=(0,s.K2)(function(t,e,i,n){for(i=i||{},n=t.length;n--;i[t[n]]=e);return i},"o"),e=[1,4],i=[1,13],n=[1,12],r=[1,15],o=[1,16],a=[1,20],h=[1,19],l=[6,7,8],c=[1,26],g=[1,24],u=[1,25],d=[6,7,11],p=[1,6,13,15,16,19,22],f=[1,33],y=[1,34],E=[1,6,7,11,13,15,16,19,22],v={trace:(0,s.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:(0,s.K2)(function(t,e,i,n,r,o,s){var a=o.length-1;switch(r){case 6:case 7:return n;case 8:n.getLogger().trace("Stop NL ");break;case 9:n.getLogger().trace("Stop EOF ");break;case 11:n.getLogger().trace("Stop NL2 ");break;case 12:n.getLogger().trace("Stop EOF2 ");break;case 15:n.getLogger().info("Node: ",o[a].id),n.addNode(o[a-1].length,o[a].id,o[a].descr,o[a].type);break;case 16:n.getLogger().trace("Icon: ",o[a]),n.decorateNode({icon:o[a]});break;case 17:case 21:n.decorateNode({class:o[a]});break;case 18:n.getLogger().trace("SPACELIST");break;case 19:n.getLogger().trace("Node: ",o[a].id),n.addNode(0,o[a].id,o[a].descr,o[a].type);break;case 20:n.decorateNode({icon:o[a]});break;case 25:n.getLogger().trace("node found ..",o[a-2]),this.$={id:o[a-1],descr:o[a-1],type:n.getType(o[a-2],o[a])};break;case 26:this.$={id:o[a],descr:o[a],type:n.nodeType.DEFAULT};break;case 27:n.getLogger().trace("node found ..",o[a-3]),this.$={id:o[a-3],descr:o[a-1],type:n.getType(o[a-2],o[a])}}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:i,7:[1,10],9:9,12:11,13:n,14:14,15:r,16:o,17:17,18:18,19:a,22:h},t(l,[2,3]),{1:[2,2]},t(l,[2,4]),t(l,[2,5]),{1:[2,6],6:i,12:21,13:n,14:14,15:r,16:o,17:17,18:18,19:a,22:h},{6:i,9:22,12:11,13:n,14:14,15:r,16:o,17:17,18:18,19:a,22:h},{6:c,7:g,10:23,11:u},t(d,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:a,22:h}),t(d,[2,18]),t(d,[2,19]),t(d,[2,20]),t(d,[2,21]),t(d,[2,23]),t(d,[2,24]),t(d,[2,26],{19:[1,30]}),{20:[1,31]},{6:c,7:g,10:32,11:u},{1:[2,7],6:i,12:21,13:n,14:14,15:r,16:o,17:17,18:18,19:a,22:h},t(p,[2,14],{7:f,11:y}),t(E,[2,8]),t(E,[2,9]),t(E,[2,10]),t(d,[2,15]),t(d,[2,16]),t(d,[2,17]),{20:[1,35]},{21:[1,36]},t(p,[2,13],{7:f,11:y}),t(E,[2,11]),t(E,[2,12]),{21:[1,37]},t(d,[2,25]),t(d,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:(0,s.K2)(function(t,e){if(e.recoverable)this.trace(t);else{var i=Error(t);throw i.hash=e,i}},"parseError"),parse:(0,s.K2)(function(t){var e=this,i=[0],n=[],r=[null],o=[],a=this.table,h="",l=0,c=0,g=0,u=o.slice.call(arguments,1),d=Object.create(this.lexer),p={yy:{}};for(var f in this.yy)Object.prototype.hasOwnProperty.call(this.yy,f)&&(p.yy[f]=this.yy[f]);d.setInput(t,p.yy),p.yy.lexer=d,p.yy.parser=this,void 0===d.yylloc&&(d.yylloc={});var y=d.yylloc;o.push(y);var E=d.options&&d.options.ranges;function v(){var t;return"number"!=typeof(t=n.pop()||d.lex()||1)&&(t instanceof Array&&(t=(n=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,s.K2)(function(t){i.length=i.length-2*t,r.length=r.length-t,o.length=o.length-t},"popStack"),(0,s.K2)(v,"lex");for(var _,m,N,A,L,T,O,D,I,w={};;){if(N=i[i.length-1],this.defaultActions[N]?A=this.defaultActions[N]:(null==_&&(_=v()),A=a[N]&&a[N][_]),void 0===A||!A.length||!A[0]){var R="";for(T in I=[],a[N])this.terminals_[T]&&T>2&&I.push("'"+this.terminals_[T]+"'");R=d.showPosition?"Parse error on line "+(l+1)+":\n"+d.showPosition()+"\nExpecting "+I.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==_?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(R,{text:d.match,token:this.terminals_[_]||_,line:d.yylineno,loc:y,expected:I})}if(A[0]instanceof Array&&A.length>1)throw Error("Parse Error: multiple actions possible at state: "+N+", token: "+_);switch(A[0]){case 1:i.push(_),r.push(d.yytext),o.push(d.yylloc),i.push(A[1]),_=null,m?(_=m,m=null):(c=d.yyleng,h=d.yytext,l=d.yylineno,y=d.yylloc,g>0&&g--);break;case 2:if(O=this.productions_[A[1]][1],w.$=r[r.length-O],w._$={first_line:o[o.length-(O||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(O||1)].first_column,last_column:o[o.length-1].last_column},E&&(w._$.range=[o[o.length-(O||1)].range[0],o[o.length-1].range[1]]),void 0!==(L=this.performAction.apply(w,[h,c,l,p.yy,A[1],r,o].concat(u))))return L;O&&(i=i.slice(0,-1*O*2),r=r.slice(0,-1*O),o=o.slice(0,-1*O)),i.push(this.productions_[A[1]][0]),r.push(w.$),o.push(w._$),D=a[i[i.length-2]][i[i.length-1]],i.push(D);break;case 3:return!0}}return!0},"parse")},_={EOF:1,parseError:(0,s.K2)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,s.K2)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,s.K2)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,s.K2)(function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===n.length?this.yylloc.first_column:0)+n[n.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,s.K2)(function(){return this._more=!0,this},"more"),reject:(0,s.K2)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,s.K2)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,s.K2)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,s.K2)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,s.K2)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,s.K2)(function(t,e){var i,n,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),(n=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var o in r)this[o]=r[o];return!1},"test_match"),next:(0,s.K2)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,i,n,r=this._currentRules(),o=0;o<r.length;o++)if((i=this._input.match(this.rules[r[o]]))&&(!e||i[0].length>e[0].length)){if(e=i,n=o,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,r[o])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,r[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,s.K2)(function(){return this.next()||this.lex()},"lex"),begin:(0,s.K2)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,s.K2)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,s.K2)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,s.K2)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,s.K2)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,s.K2)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,s.K2)(function(t,e,i,n){switch(i){case 0:return t.getLogger().trace("Found comment",e.yytext),6;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:case 23:case 26:this.popState();break;case 5:t.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return t.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:t.getLogger().trace("end icon"),this.popState();break;case 10:return t.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return t.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return t.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return t.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:case 15:case 16:case 17:return this.begin("NODE"),19;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 24:t.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return t.getLogger().trace("description:",e.yytext),"NODE_DESCR";case 27:return this.popState(),t.getLogger().trace("node end ))"),"NODE_DEND";case 28:return this.popState(),t.getLogger().trace("node end )"),"NODE_DEND";case 29:return this.popState(),t.getLogger().trace("node end ...",e.yytext),"NODE_DEND";case 30:case 33:case 34:return this.popState(),t.getLogger().trace("node end (("),"NODE_DEND";case 31:case 32:return this.popState(),t.getLogger().trace("node end (-"),"NODE_DEND";case 35:case 36:return t.getLogger().trace("Long description:",e.yytext),20}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};function m(){this.yy={}}return v.lexer=_,(0,s.K2)(m,"Parser"),m.prototype=v,v.Parser=m,new m}();d.parser=d;var p=[],f=0,y={},E=(0,s.K2)(()=>{p=[],f=0,y={}},"clear"),v=(0,s.K2)(function(t){for(let e=p.length-1;e>=0;e--)if(p[e].level<t)return p[e];return null},"getParent"),_=(0,s.K2)(()=>p.length>0?p[0]:null,"getMindmap"),m=(0,s.K2)((t,e,i,n)=>{s.Rm.info("addNode",t,e,i,n);let r=(0,s.D7)(),o=r.mindmap?.padding??s.UI.mindmap.padding;switch(n){case N.ROUNDED_RECT:case N.RECT:case N.HEXAGON:o*=2}let a={id:f++,nodeId:(0,s.jZ)(e,r),level:t,descr:(0,s.jZ)(i,r),type:n,children:[],width:r.mindmap?.maxNodeWidth??s.UI.mindmap.maxNodeWidth,padding:o},h=v(t);if(h)h.children.push(a),p.push(a);else if(0===p.length)p.push(a);else throw Error('There can be only one root. No parent could be found for ("'+a.descr+'")')},"addNode"),N={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},A=(0,s.K2)((t,e)=>{switch(s.Rm.debug("In get type",t,e),t){case"[":return N.RECT;case"(":return")"===e?N.ROUNDED_RECT:N.CLOUD;case"((":return N.CIRCLE;case")":return N.CLOUD;case"))":return N.BANG;case"{{":return N.HEXAGON;default:return N.DEFAULT}},"getType"),L=(0,s.K2)((t,e)=>{y[t]=e},"setElementForId"),T=(0,s.K2)(t=>{if(!t)return;let e=(0,s.D7)(),i=p[p.length-1];t.icon&&(i.icon=(0,s.jZ)(t.icon,e)),t.class&&(i.class=(0,s.jZ)(t.class,e))},"decorateNode"),O=(0,s.K2)(t=>{switch(t){case N.DEFAULT:return"no-border";case N.RECT:return"rect";case N.ROUNDED_RECT:return"rounded-rect";case N.CIRCLE:return"circle";case N.CLOUD:return"cloud";case N.BANG:return"bang";case N.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),D=(0,s.K2)(()=>s.Rm,"getLogger"),I=(0,s.K2)(t=>y[t],"getElementById"),w=(0,s.K2)(function(t,e,i,n){e.append("path").attr("id","node-"+i.id).attr("class","node-bkg node-"+t.type2Str(i.type)).attr("d",`M0 ${i.height-5} v${-i.height+10} q0,-5 5,-5 h${i.width-10} q5,0 5,5 v${i.height-5} H0 Z`),e.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",i.height).attr("x2",i.width).attr("y2",i.height)},"defaultBkg"),R=(0,s.K2)(function(t,e,i){e.append("rect").attr("id","node-"+i.id).attr("class","node-bkg node-"+t.type2Str(i.type)).attr("height",i.height).attr("width",i.width)},"rectBkg"),C=(0,s.K2)(function(t,e,i){let n=i.width,r=i.height,o=.15*n,s=.25*n,a=.35*n,h=.2*n;e.append("path").attr("id","node-"+i.id).attr("class","node-bkg node-"+t.type2Str(i.type)).attr("d",`M0 0 a${o},${o} 0 0,1 ${.25*n},${-1*n*.1} + a${a},${a} 1 0,1 ${.4*n},${-1*n*.1} + a${s},${s} 1 0,1 ${.35*n},${1*n*.2} + + a${o},${o} 1 0,1 ${.15*n},${1*r*.35} + a${h},${h} 1 0,1 ${-1*n*.15},${1*r*.65} + + a${s},${o} 1 0,1 ${-1*n*.25},${.15*n} + a${a},${a} 1 0,1 ${-1*n*.5},0 + a${o},${o} 1 0,1 ${-1*n*.25},${-1*n*.15} + + a${o},${o} 1 0,1 ${-1*n*.1},${-1*r*.35} + a${h},${h} 1 0,1 ${.1*n},${-1*r*.65} + + H0 V0 Z`)},"cloudBkg"),M=(0,s.K2)(function(t,e,i){let n=i.width,r=i.height,o=.15*n;e.append("path").attr("id","node-"+i.id).attr("class","node-bkg node-"+t.type2Str(i.type)).attr("d",`M0 0 a${o},${o} 1 0,0 ${.25*n},${-1*r*.1} + a${o},${o} 1 0,0 ${.25*n},0 + a${o},${o} 1 0,0 ${.25*n},0 + a${o},${o} 1 0,0 ${.25*n},${1*r*.1} + + a${o},${o} 1 0,0 ${.15*n},${1*r*.33} + a${.8*o},${.8*o} 1 0,0 0,${1*r*.34} + a${o},${o} 1 0,0 ${-1*n*.15},${1*r*.33} + + a${o},${o} 1 0,0 ${-1*n*.25},${.15*r} + a${o},${o} 1 0,0 ${-1*n*.25},0 + a${o},${o} 1 0,0 ${-1*n*.25},0 + a${o},${o} 1 0,0 ${-1*n*.25},${-1*r*.15} + + a${o},${o} 1 0,0 ${-1*n*.1},${-1*r*.33} + a${.8*o},${.8*o} 1 0,0 0,${-1*r*.34} + a${o},${o} 1 0,0 ${.1*n},${-1*r*.33} + + H0 V0 Z`)},"bangBkg"),x=(0,s.K2)(function(t,e,i){e.append("circle").attr("id","node-"+i.id).attr("class","node-bkg node-"+t.type2Str(i.type)).attr("r",i.width/2)},"circleBkg");function G(t,e,i,n,r){return t.insert("polygon",":first-child").attr("points",n.map(function(t){return t.x+","+t.y}).join(" ")).attr("transform","translate("+(r.width-e)/2+", "+i+")")}(0,s.K2)(G,"insertPolygonShape");var S=(0,s.K2)(function(t,e,i){let n=i.height,r=n/4,o=i.width-i.padding+2*r,s=[{x:r,y:0},{x:o-r,y:0},{x:o,y:-n/2},{x:o-r,y:-n},{x:r,y:-n},{x:0,y:-n/2}];G(e,o,n,s,i)},"hexagonBkg"),b=(0,s.K2)(function(t,e,i){e.append("rect").attr("id","node-"+i.id).attr("class","node-bkg node-"+t.type2Str(i.type)).attr("height",i.height).attr("rx",i.padding).attr("ry",i.padding).attr("width",i.width)},"roundedRectBkg"),F=(0,s.K2)(async function(t,e,i,o,s){let a=s.htmlLabels,h=o%11,l=e.append("g");i.section=h;let c="section-"+h;h<0&&(c+=" section-root"),l.attr("class",(i.class?i.class+" ":"")+"mindmap-node "+c);let g=l.append("g"),u=l.append("g"),d=i.descr.replace(/(<br\/*>)/g,"\n");await (0,n.GZ)(u,d,{useHtmlLabels:a,width:i.width,classes:"mindmap-node-label"},s),a||u.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");let p=u.node().getBBox(),[f]=(0,r.I5)(s.fontSize);if(i.height=p.height+.55*f+i.padding,i.width=p.width+2*i.padding,i.icon){if(i.type===t.nodeType.CIRCLE)i.height+=50,i.width+=50,l.append("foreignObject").attr("height","50px").attr("width",i.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+h+" "+i.icon),u.attr("transform","translate("+i.width/2+", "+(i.height/2-1.5*i.padding)+")");else{i.width+=50;let t=i.height;i.height=Math.max(t,60);let e=Math.abs(i.height-t);l.append("foreignObject").attr("width","60px").attr("height",i.height).attr("style","text-align: center;margin-top:"+e/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+h+" "+i.icon),u.attr("transform","translate("+(25+i.width/2)+", "+(e/2+i.padding/2)+")")}}else if(a){let t=(i.width-p.width)/2,e=(i.height-p.height)/2;u.attr("transform","translate("+t+", "+e+")")}else{let t=i.width/2,e=i.padding/2;u.attr("transform","translate("+t+", "+e+")")}switch(i.type){case t.nodeType.DEFAULT:w(t,g,i,h);break;case t.nodeType.ROUNDED_RECT:b(t,g,i,h);break;case t.nodeType.RECT:R(t,g,i,h);break;case t.nodeType.CIRCLE:g.attr("transform","translate("+i.width/2+", "+ +i.height/2+")"),x(t,g,i,h);break;case t.nodeType.CLOUD:C(t,g,i,h);break;case t.nodeType.BANG:M(t,g,i,h);break;case t.nodeType.HEXAGON:S(t,g,i,h)}return t.setElementForId(i.id,l),i.height},"drawNode"),P=(0,s.K2)(function(t,e){let i=t.getElementById(e.id),n=e.x||0,r=e.y||0;i.attr("transform","translate("+n+","+r+")")},"positionNode");async function U(t,e,i,n,r){await F(t,e,i,n,r),i.children&&await Promise.all(i.children.map((i,o)=>U(t,e,i,n<0?o:n,r)))}function Y(t,e){e.edges().map((e,i)=>{let n=e.data();if(e[0]._private.bodyBounds){let r=e[0]._private.rscratch;s.Rm.trace("Edge: ",i,n),t.insert("path").attr("d",`M ${r.startX},${r.startY} L ${r.midX},${r.midY} L${r.endX},${r.endY} `).attr("class","edge section-edge-"+n.section+" edge-depth-"+n.depth)}})}function k(t,e,i,n){e.add({group:"nodes",data:{id:t.id.toString(),labelText:t.descr,height:t.height,width:t.width,level:n,nodeId:t.id,padding:t.padding,type:t.type},position:{x:t.x,y:t.y}}),t.children&&t.children.forEach(r=>{k(r,e,i,n+1),e.add({group:"edges",data:{id:`${t.id}_${r.id}`,source:t.id,target:r.id,depth:n,section:r.section}})})}function X(t,e){return new Promise(i=>{let n=(0,l.Ltv)("body").append("div").attr("id","cy").attr("style","display:none"),r=(0,a.A)({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});n.remove(),k(t,r,e,0),r.nodes().forEach(function(t){t.layoutDimensions=()=>{let e=t.data();return{w:e.width,h:e.height}}}),r.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),r.ready(t=>{s.Rm.info("Ready",t),i(r)})})}function B(t,e){e.nodes().map((e,i)=>{let n=e.data();n.x=e.position().x,n.y=e.position().y,P(t,n);let r=t.getElementById(n.nodeId);s.Rm.info("Id:",i,"Position: (",e.position().x,", ",e.position().y,")",n),r.attr("transform",`translate(${e.position().x-n.width/2}, ${e.position().y-n.height/2})`),r.attr("attr",`apa-${i})`)})}a.A.use(h),(0,s.K2)(U,"drawNodes"),(0,s.K2)(Y,"drawEdges"),(0,s.K2)(k,"addNodes"),(0,s.K2)(X,"layoutMindmap"),(0,s.K2)(B,"positionNodes");var $=(0,s.K2)(async(t,e,i,n)=>{s.Rm.debug("Rendering mindmap diagram\n"+t);let r=n.db,a=r.getMindmap();if(!a)return;let h=(0,s.D7)();h.htmlLabels=!1;let l=(0,o.D)(e),c=l.append("g");c.attr("class","mindmap-edges");let g=l.append("g");g.attr("class","mindmap-nodes"),await U(r,g,a,-1,h);let u=await X(a,h);Y(c,u),B(r,u),(0,s.ot)(void 0,l,h.mindmap?.padding??s.UI.mindmap.padding,h.mindmap?.useMaxWidth??s.UI.mindmap.useMaxWidth)},"draw"),H=(0,s.K2)(t=>{let e="";for(let e=0;e<t.THEME_COLOR_LIMIT;e++)t["lineColor"+e]=t["lineColor"+e]||t["cScaleInv"+e],(0,c.A)(t["lineColor"+e])?t["lineColor"+e]=(0,g.A)(t["lineColor"+e],20):t["lineColor"+e]=(0,u.A)(t["lineColor"+e],20);for(let i=0;i<t.THEME_COLOR_LIMIT;i++){let n=""+(17-3*i);e+=` + .section-${i-1} rect, .section-${i-1} path, .section-${i-1} circle, .section-${i-1} polygon, .section-${i-1} path { + fill: ${t["cScale"+i]}; + } + .section-${i-1} text { + fill: ${t["cScaleLabel"+i]}; + } + .node-icon-${i-1} { + font-size: 40px; + color: ${t["cScaleLabel"+i]}; + } + .section-edge-${i-1}{ + stroke: ${t["cScale"+i]}; + } + .edge-depth-${i-1}{ + stroke-width: ${n}; + } + .section-${i-1} line { + stroke: ${t["cScaleInv"+i]} ; + stroke-width: 3; + } + + .disabled, .disabled circle, .disabled text { + fill: lightgray; + } + .disabled text { + fill: #efefef; + } + `}return e},"genSections"),W={db:{clear:E,addNode:m,getMindmap:_,nodeType:N,getType:A,setElementForId:L,decorateNode:T,type2Str:O,getLogger:D,getElementById:I},renderer:{draw:$},parser:d,styles:(0,s.K2)(t=>` + .edge { + stroke-width: 3; + } + ${H(t)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .mindmap-node-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`,"getStyles")}}}]); \ No newline at end of file diff --git a/assets/js/6199064d.3003857b.js b/assets/js/6199064d.b8d7d6cc.js similarity index 54% rename from assets/js/6199064d.3003857b.js rename to assets/js/6199064d.b8d7d6cc.js index 9f97884e59..b3fafa8f41 100644 --- a/assets/js/6199064d.3003857b.js +++ b/assets/js/6199064d.b8d7d6cc.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[38948],{34680:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>n,toc:()=>u});var n=t(85161),a=t(62540),r=t(43023);let i={title:"Releasing Docusaurus i18n",authors:["slorber"],tags:["release","i18n"],image:"/img/blog/2021-03-09-releasing-docusaurus-i18n/social-card.png"},o=void 0,l={authorsImageUrls:[void 0]},u=[];function c(e){let s={a:"a",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(s.p,{children:["Today, we officially release ",(0,a.jsx)(s.strong,{children:(0,a.jsx)(s.a,{href:"https://docusaurus.io/docs/i18n/introduction",children:"Docusaurus 2 i18n"})})," (",(0,a.jsx)(s.a,{href:"https://en.wikipedia.org/wiki/Internationalization_and_localization",children:"internationalization"}),"), as part of ",(0,a.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/releases/tag/v2.0.0-alpha.71",children:"2.0.0-alpha.71"}),"."]}),"\n",(0,a.jsxs)(s.p,{children:["Docusaurus 2 has now reached ",(0,a.jsx)(s.strong,{children:"full feature parity with Docusaurus 1"}),". \u{1F389} And soon, after a few additional infrastructure updates and a bit more testing, the ",(0,a.jsx)(s.strong,{children:"first Docusaurus 2 beta"})," will be released."]}),"\n",(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.strong,{children:"We went the extra mile"}),", and the new i18n support is ",(0,a.jsx)(s.strong,{children:"even better than in Docusaurus 1"}),"."]}),"\n",(0,a.jsxs)(s.p,{children:["In this post, we will present you the ",(0,a.jsx)(s.strong,{children:"translation workflow"}),", explain some ",(0,a.jsx)(s.strong,{children:"design decisions"})," and ",(0,a.jsx)(s.strong,{children:"showcase early adopter sites"})," that just went live: ",(0,a.jsx)(s.a,{href:"https://jestjs.io/",children:"Jest"}),", ",(0,a.jsx)(s.a,{href:"https://learn.redwoodjs.com/",children:"Redwood"}),", and ",(0,a.jsx)(s.a,{href:"https://datagit.ir/",children:"Datagit"}),"."]}),"\n",(0,a.jsxs)(s.p,{children:["We also ",(0,a.jsx)(s.strong,{children:"dogfood"})," the i18n support on the ",(0,a.jsx)(s.strong,{children:"Docusaurus 2 site itself"}),", and this post is already available in ",(0,a.jsx)(s.a,{href:"https://docusaurus.io/blog/2021/03/09/releasing-docusaurus-i18n",children:"English"})," and ",(0,a.jsx)(s.a,{href:"https://docusaurus.io/fr/blog/2021/03/09/releasing-docusaurus-i18n",children:"French"}),"!"]})]})}function d(e={}){let{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,a.jsx)(s,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>i,x:()=>o});var n=t(63696);let a={},r=n.createContext(a);function i(e){let s=n.useContext(r);return n.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(a):e.components||a:i(e.components),n.createElement(r.Provider,{value:s},e.children)}},85161:e=>{e.exports=JSON.parse('{"permalink":"/blog/2021/03/09/releasing-docusaurus-i18n","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2021/03-09-releasing-docusaurus-i18n.mdx","source":"@site/blog/2021/03-09-releasing-docusaurus-i18n.mdx","title":"Releasing Docusaurus i18n","description":"Today, we officially release Docusaurus 2 i18n (internationalization), as part of 2.0.0-alpha.71.","date":"2021-03-09T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"},{"inline":false,"label":"I18n","permalink":"/blog/tags/i-18-n"}],"readingTime":3.445,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Releasing Docusaurus i18n","authors":["slorber"],"tags":["release","i18n"],"image":"/img/blog/2021-03-09-releasing-docusaurus-i18n/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Announcing Docusaurus 2 Beta","permalink":"/blog/2021/05/12/announcing-docusaurus-two-beta"},"nextItem":{"title":"Docusaurus 2020 Recap","permalink":"/blog/2021/01/19/docusaurus-2020-recap"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[38948],{34680:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>u});var a=t(85161),n=t(62540),r=t(43023);let i={title:"Releasing Docusaurus i18n",authors:["slorber"],tags:["release","i18n"],image:"/img/blog/2021-03-09-releasing-docusaurus-i18n/social-card.png"},o=void 0,l={authorsImageUrls:[void 0]},u=[];function c(e){let s={a:"a",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(s.p,{children:["Today, we officially release ",(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.a,{href:"https://docusaurus.io/docs/i18n/introduction",children:"Docusaurus 2 i18n"})})," (",(0,n.jsx)(s.a,{href:"https://en.wikipedia.org/wiki/Internationalization_and_localization",children:"internationalization"}),"), as part of ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/releases/tag/v2.0.0-alpha.71",children:"2.0.0-alpha.71"}),"."]}),"\n",(0,n.jsxs)(s.p,{children:["Docusaurus 2 has now reached ",(0,n.jsx)(s.strong,{children:"full feature parity with Docusaurus 1"}),". \u{1F389} And soon, after a few additional infrastructure updates and a bit more testing, the ",(0,n.jsx)(s.strong,{children:"first Docusaurus 2 beta"})," will be released."]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"We went the extra mile"}),", and the new i18n support is ",(0,n.jsx)(s.strong,{children:"even better than in Docusaurus 1"}),"."]}),"\n",(0,n.jsxs)(s.p,{children:["In this post, we will present you the ",(0,n.jsx)(s.strong,{children:"translation workflow"}),", explain some ",(0,n.jsx)(s.strong,{children:"design decisions"})," and ",(0,n.jsx)(s.strong,{children:"showcase early adopter sites"})," that just went live: ",(0,n.jsx)(s.a,{href:"https://jestjs.io/",children:"Jest"}),", ",(0,n.jsx)(s.a,{href:"https://learn.redwoodjs.com/",children:"Redwood"}),", and ",(0,n.jsx)(s.a,{href:"https://datagit.ir/",children:"Datagit"}),"."]}),"\n",(0,n.jsxs)(s.p,{children:["We also ",(0,n.jsx)(s.strong,{children:"dogfood"})," the i18n support on the ",(0,n.jsx)(s.strong,{children:"Docusaurus 2 site itself"}),", and this post is already available in ",(0,n.jsx)(s.a,{href:"https://docusaurus.io/blog/2021/03/09/releasing-docusaurus-i18n",children:"English"})," and ",(0,n.jsx)(s.a,{href:"https://docusaurus.io/fr/blog/2021/03/09/releasing-docusaurus-i18n",children:"French"}),"!"]})]})}function d(e={}){let{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>i,x:()=>o});var a=t(63696);let n={},r=a.createContext(n);function i(e){let s=a.useContext(r);return a.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(n):e.components||n:i(e.components),a.createElement(r.Provider,{value:s},e.children)}},85161:e=>{e.exports=JSON.parse('{"permalink":"/blog/2021/03/09/releasing-docusaurus-i18n","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2021/03-09-releasing-docusaurus-i18n.mdx","source":"@site/blog/2021/03-09-releasing-docusaurus-i18n.mdx","title":"Releasing Docusaurus i18n","description":"Today, we officially release Docusaurus 2 i18n (internationalization), as part of 2.0.0-alpha.71.","date":"2021-03-09T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"},{"inline":false,"label":"I18n","permalink":"/blog/tags/i-18-n"}],"readingTime":3.445,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Releasing Docusaurus i18n","authors":["slorber"],"tags":["release","i18n"],"image":"/img/blog/2021-03-09-releasing-docusaurus-i18n/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Announcing Docusaurus 2 Beta","permalink":"/blog/2021/05/12/announcing-docusaurus-two-beta"},"nextItem":{"title":"Docusaurus 2020 Recap","permalink":"/blog/2021/01/19/docusaurus-2020-recap"}}')}}]); \ No newline at end of file diff --git a/assets/js/62628.58428925.js b/assets/js/62628.58428925.js new file mode 100644 index 0000000000..a0e3c13009 --- /dev/null +++ b/assets/js/62628.58428925.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[62628],{62628:(e,n,t)=>{t.d(n,{Zp:()=>e4});var r,i=t(7392),o=t(66784),u=0;let d=function(e){var n=++u;return(0,o.A)(e)+n};var s=t(62859),a=t(39260),h=t(98880),f=t(23480),c=Math.ceil,g=Math.max;let v=function(e,n,t,r){for(var i=-1,o=g(c((n-e)/(t||1)),0),u=Array(o);o--;)u[r?o:++i]=e,e+=t;return u};var l=t(50174),A=t(27900);let p=function(e,n,t){return t&&"number"!=typeof t&&(0,l.A)(e,n,t)&&(n=t=void 0),e=(0,A.A)(e),void 0===n?(n=e,e=0):n=(0,A.A)(n),t=void 0===t?e<n?1:-1:(0,A.A)(t),v(e,n,t,void 0)};var m=t(62499);class w{constructor(){var e={};e._next=e._prev=e,this._sentinel=e}dequeue(){var e=this._sentinel,n=e._prev;if(n!==e)return b(n),n}enqueue(e){var n=this._sentinel;e._prev&&e._next&&b(e),e._next=n._next,n._next._prev=e,n._next=e,e._prev=n}toString(){for(var e=[],n=this._sentinel,t=n._prev;t!==n;)e.push(JSON.stringify(t,_)),t=t._prev;return"["+e.join(", ")+"]"}}function b(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function _(e,n){if("_next"!==e&&"_prev"!==e)return n}var y=a.A(1);function E(e,n,t,r,o){var u=o?[]:void 0;return i.A(e.inEdges(r.v),function(r){var i=e.edge(r),d=e.node(r.v);o&&u.push({v:r.v,w:r.w}),d.out-=i,x(n,t,d)}),i.A(e.outEdges(r.v),function(r){var i=e.edge(r),o=r.w,u=e.node(o);u.in-=i,x(n,t,u)}),e.removeNode(r.v),u}function x(e,n,t){t.out?t.in?e[t.out-t.in+n].enqueue(t):e[e.length-1].enqueue(t):e[0].enqueue(t)}var k=t(86023),N=t(92860),C=t(15866),I=t(20453),L=t(1207),T=(r=function(e,n){return null==e?{}:(0,N.A)(e,n,function(n,t){return(0,C.A)(e,t)})},(0,L.A)((0,I.A)(r,void 0,h.A),r+"")),M=t(12630),R=t(54533);let O=function(e,n){return e>n};var P=t(83910);let j=function(e){return e&&e.length?(0,R.A)(e,P.A,O):void 0};var F=t(44280),D=t(46402),S=t(39179),G=t(18592);let V=function(e,n){var t={};return n=(0,G.A)(n,3),(0,S.A)(e,function(e,r,i){(0,D.A)(t,r,n(e,r,i))}),t};var B=t(31454),q=t(60398),Y=t(29283);let z=function(){return Y.A.Date.now()};function $(e,n,t,r){var i;do i=d(r);while(e.hasNode(i))return t.dummy=n,e.setNode(i,t),i}function J(e){var n=new m.T({multigraph:e.isMultigraph()}).setGraph(e.graph());return i.A(e.nodes(),function(t){e.children(t).length||n.setNode(t,e.node(t))}),i.A(e.edges(),function(t){n.setEdge(t,e.edge(t))}),n}function Z(e,n){var t,r,i=e.x,o=e.y,u=n.x-i,d=n.y-o,s=e.width/2,a=e.height/2;if(!u&&!d)throw Error("Not possible to find intersection inside of the rectangle");return Math.abs(d)*s>Math.abs(u)*a?(d<0&&(a=-a),t=a*u/d,r=a):(u<0&&(s=-s),t=s,r=s*d/u),{x:i+t,y:o+r}}function H(e){var n=f.A(p(Q(e)+1),function(){return[]});return i.A(e.nodes(),function(t){var r=e.node(t),i=r.rank;B.A(i)||(n[i][r.order]=t)}),n}function K(e,n,t,r){var i={width:0,height:0};return arguments.length>=4&&(i.rank=t,i.order=r),$(e,"border",i,n)}function Q(e){return j(f.A(e.nodes(),function(n){var t=e.node(n).rank;if(!B.A(t))return t}))}function U(e,n){var t=z();try{return n()}finally{console.log(e+" time: "+(z()-t)+"ms")}}function W(e,n){return n()}function X(e,n,t,r,i,o){var u=i[n][o-1],d=$(e,"border",{width:0,height:0,rank:o,borderType:n},t);i[n][o]=d,e.setParent(d,r),u&&e.setEdge(u,d,{weight:1})}function ee(e){i.A(e.nodes(),function(n){en(e.node(n))}),i.A(e.edges(),function(n){en(e.edge(n))})}function en(e){var n=e.width;e.width=e.height,e.height=n}function et(e){e.y=-e.y}function er(e){var n=e.x;e.x=e.y,e.y=n}var ei=t(31818);let eo=function(e,n){return e&&e.length?(0,R.A)(e,(0,G.A)(n,2),ei.A):void 0};function eu(e){var n={};i.A(e.sources(),function t(r){var i=e.node(r);if(s.A(n,r))return i.rank;n[r]=!0;var o=q.A(f.A(e.outEdges(r),function(n){return t(n.w)-e.edge(n).minlen}));return(o===Number.POSITIVE_INFINITY||null==o)&&(o=0),i.rank=o})}function ed(e,n){return e.node(n.w).rank-e.node(n.v).rank-e.edge(n).minlen}function es(e){var n,t,r=new m.T({directed:!1}),o=e.nodes()[0],u=e.nodeCount();for(r.setNode(o,{});i.A(r.nodes(),function n(t){i.A(e.nodeEdges(t),function(i){var o=i.v,u=t===o?i.w:o;r.hasNode(u)||ed(e,i)||(r.setNode(u,{}),r.setEdge(t,u,{}),n(u))})}),r.nodeCount()<u;)n=function(e,n){return eo(n.edges(),function(t){if(e.hasNode(t.v)!==e.hasNode(t.w))return ed(n,t)})}(r,e),t=r.hasNode(n.v)?ed(e,n):-ed(e,n),function(e,n,t){i.A(e.nodes(),function(e){n.node(e).rank+=t})}(r,e,t);return r}var ea=t(62663),eh=t(74990);a.A(1),a.A(1);var ef=t(88601),ec=t(86073),eg=t(8860),ev=t(57805),el=(0,t(97043).A)("length"),eA=RegExp("[\\u200d\ud800-\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),ep="\ud800-\udfff",em="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",ew="\ud83c[\udffb-\udfff]",eb="[^"+ep+"]",e_="(?:\ud83c[\udde6-\uddff]){2}",ey="[\ud800-\udbff][\udc00-\udfff]",eE="(?:"+em+"|"+ew+")?",ex="[\\ufe0e\\ufe0f]?",ek="(?:\\u200d(?:"+[eb,e_,ey].join("|")+")"+ex+eE+")*",eN=RegExp(ew+"(?="+ew+")|(?:"+[eb+em+"?",em,e_,ey,"["+ep+"]"].join("|")+")"+(ex+eE+ek),"g");let eC=function(e){for(var n=eN.lastIndex=0;eN.test(e);)++n;return n};Error();var eI=t(28675);function eL(e,n,t){eI.A(n)||(n=[n]);var r=(e.isDirected()?e.successors:e.neighbors).bind(e),o=[],u={};return i.A(n,function(n){if(!e.hasNode(n))throw Error("Graph does not have node: "+n);(function e(n,t,r,o,u,d){!s.A(o,t)&&(o[t]=!0,r||d.push(t),i.A(u(t),function(t){e(n,t,r,o,u,d)}),r&&d.push(t))})(e,n,"post"===t,u,r,o)}),o}function eT(e){n=e,t=new m.T().setGraph(n.graph()),i.A(n.nodes(),function(e){t.setNode(e,n.node(e))}),i.A(n.edges(),function(e){var r=t.edge(e.v,e.w)||{weight:0,minlen:1},i=n.edge(e);t.setEdge(e.v,e.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})}),eu(e=t);var n,t,r,o,u=es(e);for(eO(u),eM(u,e);r=eP(u);)o=ej(u,e,r),eF(u,e,r,o)}function eM(e,n){var t=eL(e,e.nodes(),"post");t=t.slice(0,t.length-1),i.A(t,function(t){var r;r=e.node(t).parent,e.edge(t,r).cutvalue=eR(e,n,t)})}function eR(e,n,t){var r=e.node(t).parent,o=!0,u=n.edge(t,r),d=0;return u||(o=!1,u=n.edge(r,t)),d=u.weight,i.A(n.nodeEdges(t),function(i){var u=i.v===t,s=u?i.w:i.v;if(s!==r){var a=u===o,h=n.edge(i).weight;if(d+=a?h:-h,e.hasEdge(t,s)){var f=e.edge(t,s).cutvalue;d+=a?-f:f}}}),d}function eO(e,n){arguments.length<2&&(n=e.nodes()[0]),function e(n,t,r,o,u){var d=r,a=n.node(o);return t[o]=!0,i.A(n.neighbors(o),function(i){s.A(t,i)||(r=e(n,t,r,i,o))}),a.low=d,a.lim=r++,u?a.parent=u:delete a.parent,r}(e,{},1,n)}function eP(e){return ea.A(e.edges(),function(n){return e.edge(n).cutvalue<0})}function ej(e,n,t){var r=t.v,i=t.w;n.hasEdge(r,i)||(r=t.w,i=t.v);var o=e.node(r),u=e.node(i),d=o,s=!1;return o.lim>u.lim&&(d=u,s=!0),eo(eh.A(n.edges(),function(n){return s===eD(e,e.node(n.v),d)&&s!==eD(e,e.node(n.w),d)}),function(e){return ed(n,e)})}function eF(e,n,t,r){var o,u,d=t.v,s=t.w;e.removeEdge(d,s),e.setEdge(r.v,r.w,{}),eO(e),eM(e,n),o=ea.A(e.nodes(),function(e){return!n.node(e).parent}),u=(u=eL(e,o,"pre")).slice(1),i.A(u,function(t){var r=e.node(t).parent,i=n.edge(t,r),o=!1;i||(i=n.edge(r,t),o=!0),n.node(t).rank=n.node(r).rank+(o?i.minlen:-i.minlen)})}function eD(e,n,t){return t.low<=n.lim&&n.lim<=t.lim}t(3735),eT.initLowLimValues=eO,eT.initCutValues=eM,eT.calcCutValue=eR,eT.leaveEdge=eP,eT.enterEdge=ej,eT.exchangeEdges=eF;var eS=t(43337),eG=t(91825),eV=t(34081),eB=t(84805);let eq=function(e,n,t){for(var r=-1,i=e.length,o=n.length,u={};++r<i;){var d=r<o?n[r]:void 0;t(u,e[r],d)}return u};var eY=t(3858),ez=t(66046),e$=t(79696),eJ=t(99609);let eZ=function(e,n){var t=e.length;for(e.sort(n);t--;)e[t]=e[t].value;return e};var eH=t(39131),eK=t(40932);let eQ=function(e,n){if(e!==n){var t=void 0!==e,r=null===e,i=e==e,o=(0,eK.A)(e),u=void 0!==n,d=null===n,s=n==n,a=(0,eK.A)(n);if(!d&&!a&&!o&&e>n||o&&u&&s&&!d&&!a||r&&u&&s||!t&&s||!i)return 1;if(!r&&!o&&!a&&e<n||a&&t&&i&&!r&&!o||d&&t&&i||!u&&i||!s)return -1}return 0},eU=function(e,n,t){for(var r=-1,i=e.criteria,o=n.criteria,u=i.length,d=t.length;++r<u;){var s=eQ(i[r],o[r]);if(s){if(r>=d)return s;return s*("desc"==t[r]?-1:1)}}return e.index-n.index},eW=function(e,n,t){n=n.length?(0,ez.A)(n,function(e){return(0,eI.A)(e)?function(n){return(0,e$.A)(n,1===e.length?e[0]:e)}:e}):[P.A];var r=-1;return n=(0,ez.A)(n,(0,eH.A)(G.A)),eZ((0,eJ.A)(e,function(e,t,i){return{criteria:(0,ez.A)(n,function(n){return n(e)}),index:++r,value:e}}),function(e,n){return eU(e,n,t)})};var eX=(0,t(48496).A)(function(e,n){if(null==e)return[];var t=n.length;return t>1&&(0,l.A)(e,n[0],n[1])?n=[]:t>2&&(0,l.A)(n[0],n[1],n[2])&&(n=[n[0]]),eW(e,(0,eY.A)(n,1),[])});function e0(e,n,t){for(var r;n.length&&(r=F.A(n)).i<=t;)n.pop(),e.push(r.vs),t++;return t}function e1(e,n,t){return f.A(n,function(n){var r,o;return r=function(e){for(var n;e.hasNode(n=d("_root")););return n}(e),o=new m.T({compound:!0}).setGraph({root:r}).setDefaultNodeLabel(function(n){return e.node(n)}),i.A(e.nodes(),function(u){var d=e.node(u),a=e.parent(u);(d.rank===n||d.minRank<=n&&n<=d.maxRank)&&(o.setNode(u),o.setParent(u,a||r),i.A(e[t](u),function(n){var t=n.v===u?n.w:n.v,r=o.edge(t,u),i=B.A(r)?0:r.weight;o.setEdge(t,u,{weight:e.edge(n).weight+i})}),s.A(d,"minRank")&&o.setNode(u,{borderLeft:d.borderLeft[n],borderRight:d.borderRight[n]}))}),o})}function e2(e,n){i.A(n,function(n){i.A(n,function(n,t){e.node(n).order=t})})}var e3=t(59176),e8=t(33240),e9=t(97937);function e6(e,n,t){if(n>t){var r=n;n=t,t=r}var i=e[n];i||(e[n]=i={}),i[t]=!0}function e4(e,n){var t=n&&n.debugTiming?U:W;t("layout",function(){var n=t(" buildLayoutGraph",function(){var n,t;return n=new m.T({multigraph:!0,compound:!0}),t=nd(e.graph()),n.setGraph(k.A({},e7,nu(t,e5),T(t,ne))),i.A(e.nodes(),function(t){var r=nd(e.node(t));n.setNode(t,M.A(nu(r,nn),nt)),n.setParent(t,e.parent(t))}),i.A(e.edges(),function(t){var r=nd(e.edge(t));n.setEdge(t,k.A({},ni,nu(r,nr),T(r,no)))}),n});t(" runLayout",function(){t(" makeSpaceForEdgeLabels",function(){var e;e=n.graph(),e.ranksep/=2,i.A(n.edges(),function(t){var r=n.edge(t);r.minlen*=2,"c"!==r.labelpos.toLowerCase()&&("TB"===e.rankdir||"BT"===e.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)})}),t(" removeSelfEdges",function(){i.A(n.edges(),function(e){if(e.v===e.w){var t=n.node(e.v);t.selfEdges||(t.selfEdges=[]),t.selfEdges.push({e:e,label:n.edge(e)}),n.removeEdge(e)}})}),t(" acyclic",function(){var e,t,r,o;e="greedy"===n.graph().acyclicer?function(e,n){if(1>=e.nodeCount())return[];var t,r,o,u,d,s,a=(t=n||y,r=new m.T,o=0,u=0,i.A(e.nodes(),function(e){r.setNode(e,{v:e,in:0,out:0})}),i.A(e.edges(),function(e){var n=r.edge(e.v,e.w)||0,i=t(e);r.setEdge(e.v,e.w,n+i),u=Math.max(u,r.node(e.v).out+=i),o=Math.max(o,r.node(e.w).in+=i)}),d=p(u+o+3).map(function(){return new w}),s=o+1,i.A(r.nodes(),function(e){x(d,s,r.node(e))}),{graph:r,buckets:d,zeroIdx:s}),c=function(e,n,t){for(var r,i=[],o=n[n.length-1],u=n[0];e.nodeCount();){for(;r=u.dequeue();)E(e,n,t,r);for(;r=o.dequeue();)E(e,n,t,r);if(e.nodeCount()){for(var d=n.length-2;d>0;--d)if(r=n[d].dequeue()){i=i.concat(E(e,n,t,r,!0));break}}}return i}(a.graph,a.buckets,a.zeroIdx);return h.A(f.A(c,function(n){return e.outEdges(n.v,n.w)}))}(n,function(e){return n.edge(e).weight}):(t=[],r={},o={},i.A(n.nodes(),function e(u){s.A(o,u)||(o[u]=!0,r[u]=!0,i.A(n.outEdges(u),function(n){s.A(r,n.w)?t.push(n):e(n.w)}),delete r[u])}),t),i.A(e,function(e){var t=n.edge(e);n.removeEdge(e),t.forwardName=e.name,t.reversed=!0,n.setEdge(e.w,e.v,t,d("rev"))})}),t(" nestingGraph.run",function(){var e,t,r,o,u;e=$(n,"root",{},"_root"),u={},i.A(n.children(),function(e){!function e(t,r){var o=n.children(t);o&&o.length&&i.A(o,function(n){e(n,r+1)}),u[t]=r}(e,1)}),r=2*(t=j(eS.A(u))-1)+1,n.graph().nestingRoot=e,i.A(n.edges(),function(e){n.edge(e).minlen*=r}),o=eG.A(n.edges(),function(e,t){return e+n.edge(t).weight},0)+1,i.A(n.children(),function(d){(function e(n,t,r,o,u,d,s){var a=n.children(s);if(!a.length){s!==t&&n.setEdge(t,s,{weight:0,minlen:r});return}var h=K(n,"_bt"),f=K(n,"_bb"),c=n.node(s);n.setParent(h,s),c.borderTop=h,n.setParent(f,s),c.borderBottom=f,i.A(a,function(i){e(n,t,r,o,u,d,i);var a=n.node(i),c=a.borderTop?a.borderTop:i,g=a.borderBottom?a.borderBottom:i,v=a.borderTop?o:2*o,l=c!==g?1:u-d[s]+1;n.setEdge(h,c,{weight:v,minlen:l,nestingEdge:!0}),n.setEdge(g,f,{weight:v,minlen:l,nestingEdge:!0})}),n.parent(s)||n.setEdge(t,h,{weight:0,minlen:u+d[s]})})(n,e,r,o,t,u,d)}),n.graph().nodeRankFactor=r}),t(" rank",function(){!function(e){switch(e.graph().ranker){case"network-simplex":default:eT(e);break;case"tight-tree":eu(e),es(e);break;case"longest-path":eu(e)}}(J(n))}),t(" injectEdgeLabelProxies",function(){i.A(n.edges(),function(e){var t=n.edge(e);if(t.width&&t.height){var r=n.node(e.v),i={rank:(n.node(e.w).rank-r.rank)/2+r.rank,e:e};$(n,"edge-proxy",i,"_ep")}})}),t(" removeEmptyRanks",function(){var e,t,r,o;e=q.A(f.A(n.nodes(),function(e){return n.node(e).rank})),t=[],i.A(n.nodes(),function(r){var i=n.node(r).rank-e;t[i]||(t[i]=[]),t[i].push(r)}),r=0,o=n.graph().nodeRankFactor,i.A(t,function(e,t){B.A(e)&&t%o!=0?--r:r&&i.A(e,function(e){n.node(e).rank+=r})})}),t(" nestingGraph.cleanup",function(){var e;e=n.graph(),n.removeNode(e.nestingRoot),delete e.nestingRoot,i.A(n.edges(),function(e){n.edge(e).nestingEdge&&n.removeEdge(e)})}),t(" normalizeRanks",function(){var e;e=q.A(f.A(n.nodes(),function(e){return n.node(e).rank})),i.A(n.nodes(),function(t){var r=n.node(t);s.A(r,"rank")&&(r.rank-=e)})}),t(" assignRankMinMax",function(){var e;e=0,i.A(n.nodes(),function(t){var r=n.node(t);r.borderTop&&(r.minRank=n.node(r.borderTop).rank,r.maxRank=n.node(r.borderBottom).rank,e=j(e,r.maxRank))}),n.graph().maxRank=e}),t(" removeEdgeLabelProxies",function(){i.A(n.nodes(),function(e){var t=n.node(e);"edge-proxy"===t.dummy&&(n.edge(t.e).labelRank=t.rank,n.removeNode(e))})}),t(" normalize.run",function(){n.graph().dummyChains=[],i.A(n.edges(),function(e){(function(e,n){var t,r,i,o=n.v,u=e.node(o).rank,d=n.w,s=e.node(d).rank,a=n.name,h=e.edge(n),f=h.labelRank;if(s!==u+1){for(e.removeEdge(n),i=0,++u;u<s;++i,++u)h.points=[],t=$(e,"edge",r={width:0,height:0,edgeLabel:h,edgeObj:n,rank:u},"_d"),u===f&&(r.width=h.width,r.height=h.height,r.dummy="edge-label",r.labelpos=h.labelpos),e.setEdge(o,t,{weight:h.weight},a),0===i&&e.graph().dummyChains.push(t),o=t;e.setEdge(o,d,{weight:h.weight},a)}})(n,e)})}),t(" parentDummyChains",function(){var e,t;e={},t=0,i.A(n.children(),function r(o){var u=t;i.A(n.children(o),r),e[o]={low:u,lim:t++}}),i.A(n.graph().dummyChains,function(t){for(var r=n.node(t),i=r.edgeObj,o=function(e,n,t,r){var i,o,u=[],d=[],s=Math.min(n[t].low,n[r].low),a=Math.max(n[t].lim,n[r].lim);i=t;do u.push(i=e.parent(i));while(i&&(n[i].low>s||a>n[i].lim))for(o=i,i=r;(i=e.parent(i))!==o;)d.push(i);return{path:u.concat(d.reverse()),lca:o}}(n,e,i.v,i.w),u=o.path,d=o.lca,s=0,a=u[0],h=!0;t!==i.w;){if(r=n.node(t),h){for(;(a=u[s])!==d&&n.node(a).maxRank<r.rank;)s++;a===d&&(h=!1)}if(!h){for(;s<u.length-1&&n.node(a=u[s+1]).minRank<=r.rank;)s++;a=u[s]}n.setParent(t,a),t=n.successors(t)[0]}})}),t(" addBorderSegments",function(){i.A(n.children(),function e(t){var r=n.children(t),o=n.node(t);if(r.length&&i.A(r,e),s.A(o,"minRank")){o.borderLeft=[],o.borderRight=[];for(var u=o.minRank,d=o.maxRank+1;u<d;++u)X(n,"borderLeft","_bl",t,o,u),X(n,"borderRight","_br",t,o,u)}})}),t(" order",function(){!function(e){var n=Q(e),t=e1(e,p(1,n+1),"inEdges"),r=e1(e,p(n-1,-1,-1),"outEdges"),o=(u={},d=eh.A(e.nodes(),function(n){return!e.children(n).length}),a=j(f.A(d,function(n){return e.node(n).rank})),c=f.A(p(a+1),function(){return[]}),g=eX(d,function(n){return e.node(n).rank}),i.A(g,function n(t){s.A(u,t)||(u[t]=!0,c[e.node(t).rank].push(t),i.A(e.successors(t),n))}),c);e2(e,o);for(var u,d,a,c,g,v,l=Number.POSITIVE_INFINITY,A=0,w=0;w<4;++A,++w){(function(e,n){var t=new m.T;i.A(e,function(e){var r,o,u,d=e.graph().root,a=function e(n,t,r,o){var u,d,a,c,g,v,l,A,p,m,w,b=n.children(t),_=n.node(t),y=_?_.borderLeft:void 0,E=_?_.borderRight:void 0,x={};y&&(b=eh.A(b,function(e){return e!==y&&e!==E}));var k=(u=b,f.A(u,function(e){var t=n.inEdges(e);if(!t.length)return{v:e};var r=eG.A(t,function(e,t){var r=n.edge(t),i=n.node(t.v);return{sum:e.sum+r.weight*i.order,weight:e.weight+r.weight}},{sum:0,weight:0});return{v:e,barycenter:r.sum/r.weight,weight:r.weight}}));i.A(k,function(t){if(n.children(t.v).length){var i=e(n,t.v,r,o);x[t.v]=i,s.A(i,"barycenter")&&(B.A(t.barycenter)?(t.barycenter=i.barycenter,t.weight=i.weight):(t.barycenter=(t.barycenter*t.weight+i.barycenter*i.weight)/(t.weight+i.weight),t.weight+=i.weight))}});var N=(d={},i.A(k,function(e,n){var t=d[e.v]={indegree:0,in:[],out:[],vs:[e.v],i:n};B.A(e.barycenter)||(t.barycenter=e.barycenter,t.weight=e.weight)}),i.A(r.edges(),function(e){var n=d[e.v],t=d[e.w];B.A(n)||B.A(t)||(t.indegree++,n.out.push(d[e.w]))}),function(e){for(var n=[];e.length;){var t=e.pop();n.push(t),i.A(t.in.reverse(),function(e){return function(n){!n.merged&&(B.A(n.barycenter)||B.A(e.barycenter)||n.barycenter>=e.barycenter)&&function(e,n){var t=0,r=0;e.weight&&(t+=e.barycenter*e.weight,r+=e.weight),n.weight&&(t+=n.barycenter*n.weight,r+=n.weight),e.vs=n.vs.concat(e.vs),e.barycenter=t/r,e.weight=r,e.i=Math.min(n.i,e.i),n.merged=!0}(e,n)}}(t)),i.A(t.out,function(n){return function(t){t.in.push(n),0==--t.indegree&&e.push(t)}}(t))}return f.A(eh.A(n,function(e){return!e.merged}),function(e){return T(e,["vs","i","barycenter","weight"])})}(eh.A(d,function(e){return!e.indegree})));(function(e,n){i.A(e,function(e){e.vs=h.A(e.vs.map(function(e){return n[e]?n[e].vs:e}))})})(N,x);var C=(g=(a=function(e){return s.A(e,"barycenter")},c={lhs:[],rhs:[]},i.A(N,function(e){a(e)?c.lhs.push(e):c.rhs.push(e)}),c).lhs,v=eX(c.rhs,function(e){return-e.i}),l=[],A=0,p=0,m=0,g.sort(function(e){return function(n,t){return n.barycenter<t.barycenter?-1:n.barycenter>t.barycenter?1:e?t.i-n.i:n.i-t.i}}(!!o)),m=e0(l,v,m),i.A(g,function(e){m+=e.vs.length,l.push(e.vs),A+=e.barycenter*e.weight,p+=e.weight,m=e0(l,v,m)}),w={vs:h.A(l)},p&&(w.barycenter=A/p,w.weight=p),w);if(y&&(C.vs=h.A([y,C.vs,E]),n.predecessors(y).length)){var I=n.node(n.predecessors(y)[0]),L=n.node(n.predecessors(E)[0]);s.A(C,"barycenter")||(C.barycenter=0,C.weight=0),C.barycenter=(C.barycenter*C.weight+I.order+L.order)/(C.weight+2),C.weight+=2}return C}(e,d,t,n);i.A(a.vs,function(n,t){e.node(n).order=t}),r=a.vs,u={},i.A(r,function(n){for(var r,i,d=e.parent(n);d;){if((r=e.parent(d))?(i=u[r],u[r]=d):(i=o,o=d),i&&i!==d){t.setEdge(i,d);return}d=r}})})})(A%2?t:r,A%4>=2),o=H(e);var b,_=function(e,n){for(var t=0,r=1;r<n.length;++r)t+=function(e,n,t){for(var r=eq(t||[],f.A(t,function(e,n){return n})||[],eB.A),o=h.A(f.A(n,function(n){return eX(f.A(e.outEdges(n),function(n){return{pos:r[n.w],weight:e.edge(n).weight}}),"pos")})),u=1;u<t.length;)u<<=1;var d=2*u-1;u-=1;var s=f.A(Array(d),function(){return 0}),a=0;return i.A(o.forEach(function(e){var n=e.pos+u;s[n]+=e.weight;for(var t=0;n>0;)n%2&&(t+=s[n+1]),n=n-1>>1,s[n]+=e.weight;a+=e.weight*t})),a}(e,n[r-1],n[r]);return t}(e,o);_<l&&(w=0,b=o,v=(0,eV.A)(b,5),l=_)}e2(e,v)}(n)}),t(" insertSelfEdges",function(){var e;e=H(n),i.A(e,function(e){var t=0;i.A(e,function(e,r){var o=n.node(e);o.order=r+t,i.A(o.selfEdges,function(e){$(n,"selfedge",{width:e.label.width,height:e.label.height,rank:o.rank,order:r+ ++t,e:e.e,label:e.label},"_se")}),delete o.selfEdges})})}),t(" adjustCoordinateSystem",function(){var e;("lr"===(e=n.graph().rankdir.toLowerCase())||"rl"===e)&&ee(n)}),t(" position",function(){var e,t,r,o,u,d,a,h,c,g,v,l,A,w,b,_,y,E;_=H(b=e=J(e=n)),y=b.graph().ranksep,E=0,i.A(_,function(e){var n=j(f.A(e,function(e){return b.node(e).height}));i.A(e,function(e){b.node(e).y=E+n/2}),E+=n+y}),o=H(t=e),d=k.A((u={},eG.A(o,function(e,n){var r=0,o=0,d=e.length,s=F.A(n);return i.A(n,function(e,a){var h=function(e,n){if(e.node(n).dummy)return ea.A(e.predecessors(n),function(n){return e.node(n).dummy})}(t,e),f=h?t.node(h).order:d;(h||e===s)&&(i.A(n.slice(o,a+1),function(e){i.A(t.predecessors(e),function(n){var i=t.node(n),o=i.order;(o<r||f<o)&&!(i.dummy&&t.node(e).dummy)&&e6(u,n,e)})}),o=a+1,r=f)}),n}),u),function(e,n){var t={};function r(n,r,o,u,d){var s;i.A(p(r,o),function(r){s=n[r],e.node(s).dummy&&i.A(e.predecessors(s),function(n){var r=e.node(n);r.dummy&&(r.order<u||r.order>d)&&e6(t,n,s)})})}return eG.A(n,function(n,t){var o,u=-1,d=0;return i.A(t,function(i,s){if("border"===e.node(i).dummy){var a=e.predecessors(i);a.length&&(o=e.node(a[0]).order,r(t,d,s,u,o),d=s,u=o)}r(t,d,t.length,o,n.length)}),t}),t}(t,o)),a={},i.A(["u","d"],function(e){r="u"===e?o:eS.A(o).reverse(),i.A(["l","r"],function(n){"r"===n&&(r=f.A(r,function(e){return eS.A(e).reverse()}));var o,u,h,c,g=("u"===e?t.predecessors:t.successors).bind(t),v=(o=r,u={},h={},c={},i.A(o,function(e){i.A(e,function(e,n){u[e]=e,h[e]=e,c[e]=n})}),i.A(o,function(e){var n=-1;i.A(e,function(e){var t=g(e);if(t.length)for(var r=((t=eX(t,function(e){return c[e]})).length-1)/2,i=Math.floor(r),o=Math.ceil(r);i<=o;++i){var a=t[i];h[e]===e&&n<c[a]&&!function(e,n,t){if(n>t){var r=n;n=t,t=r}return s.A(e[n],t)}(d,e,a)&&(h[a]=e,h[e]=u[e]=u[a],n=c[a])}})}),{root:u,align:h}),l=function(e,n,t,r,o){var u,d,a,h,f,c={},g=(a=new m.T,u=(h=e.graph()).nodesep,d=h.edgesep,f=function(e,n,t){var r,i,a=e.node(n),h=e.node(t);if(r=0+a.width/2,s.A(a,"labelpos"))switch(a.labelpos.toLowerCase()){case"l":i=-a.width/2;break;case"r":i=a.width/2}if(i&&(r+=o?i:-i),i=0,r+=(a.dummy?d:u)/2+(h.dummy?d:u)/2+h.width/2,s.A(h,"labelpos"))switch(h.labelpos.toLowerCase()){case"l":i=h.width/2;break;case"r":i=-h.width/2}return i&&(r+=o?i:-i),i=0,r},i.A(n,function(n){var r;i.A(n,function(n){var i=t[n];if(a.setNode(i),r){var o=t[r],u=a.edge(o,i);a.setEdge(o,i,Math.max(f(e,n,r),u||0))}r=n})}),a),v=o?"borderLeft":"borderRight";function l(e,n){for(var t=g.nodes(),r=t.pop(),i={};r;)i[r]?e(r):(i[r]=!0,t.push(r),t=t.concat(n(r))),r=t.pop()}return l(function(e){c[e]=g.inEdges(e).reduce(function(e,n){return Math.max(e,c[n.v]+g.edge(n))},0)},g.predecessors.bind(g)),l(function(n){var t=g.outEdges(n).reduce(function(e,n){return Math.min(e,c[n.w]-g.edge(n))},Number.POSITIVE_INFINITY),r=e.node(n);t!==Number.POSITIVE_INFINITY&&r.borderType!==v&&(c[n]=Math.max(c[n],t))},g.successors.bind(g)),i.A(r,function(e){c[e]=c[t[e]]}),c}(t,r,v.root,v.align,"r"===n);"r"===n&&(l=V(l,function(e){return-e})),a[e+n]=l})}),h=eo(eS.A(a),function(e){var n,r=Number.NEGATIVE_INFINITY,i=Number.POSITIVE_INFINITY;return n=function(e,n){var o=t.node(n).width/2;r=Math.max(e+o,r),i=Math.min(e-o,i)},null==e||(0,e8.A)(e,(0,e3.A)(n),e9.A),r-i}),c=eS.A(h),g=q.A(c),v=j(c),i.A(["u","d"],function(e){i.A(["l","r"],function(n){var t,r=e+n,i=a[r];if(i!==h){var o=eS.A(i);(t="l"===n?g-q.A(o):v-j(o))&&(a[r]=V(i,function(e){return e+t}))}})}),l=t.graph().align,A=V(a.ul,function(e,n){if(l)return a[l.toLowerCase()][n];var t=eX(f.A(a,n));return(t[1]+t[2])/2}),w=function(n,t){e.node(t).x=n},A&&(0,S.A)(A,(0,e3.A)(w))}),t(" positionSelfEdges",function(){i.A(n.nodes(),function(e){var t=n.node(e);if("selfedge"===t.dummy){var r=n.node(t.e.v),i=r.x+r.width/2,o=r.y,u=t.x-i,d=r.height/2;n.setEdge(t.e,t.label),n.removeNode(e),t.label.points=[{x:i+2*u/3,y:o-d},{x:i+5*u/6,y:o-d},{x:i+u,y:o},{x:i+5*u/6,y:o+d},{x:i+2*u/3,y:o+d}],t.label.x=t.x,t.label.y=t.y}})}),t(" removeBorderNodes",function(){i.A(n.nodes(),function(e){if(n.children(e).length){var t=n.node(e),r=n.node(t.borderTop),i=n.node(t.borderBottom),o=n.node(F.A(t.borderLeft)),u=n.node(F.A(t.borderRight));t.width=Math.abs(u.x-o.x),t.height=Math.abs(i.y-r.y),t.x=o.x+t.width/2,t.y=r.y+t.height/2}}),i.A(n.nodes(),function(e){"border"===n.node(e).dummy&&n.removeNode(e)})}),t(" normalize.undo",function(){i.A(n.graph().dummyChains,function(e){var t,r=n.node(e),i=r.edgeLabel;for(n.setEdge(r.edgeObj,i);r.dummy;)t=n.successors(e)[0],n.removeNode(e),i.points.push({x:r.x,y:r.y}),"edge-label"===r.dummy&&(i.x=r.x,i.y=r.y,i.width=r.width,i.height=r.height),e=t,r=n.node(e)})}),t(" fixupEdgeLabelCoords",function(){i.A(n.edges(),function(e){var t=n.edge(e);if(s.A(t,"x"))switch(("l"===t.labelpos||"r"===t.labelpos)&&(t.width-=t.labeloffset),t.labelpos){case"l":t.x-=t.width/2+t.labeloffset;break;case"r":t.x+=t.width/2+t.labeloffset}})}),t(" undoCoordinateSystem",function(){var e;("bt"===(e=n.graph().rankdir.toLowerCase())||"rl"===e)&&(i.A(n.nodes(),function(e){et(n.node(e))}),i.A(n.edges(),function(e){var t=n.edge(e);i.A(t.points,et),s.A(t,"y")&&et(t)})),("lr"===e||"rl"===e)&&(i.A(n.nodes(),function(e){er(n.node(e))}),i.A(n.edges(),function(e){var t=n.edge(e);i.A(t.points,er),s.A(t,"x")&&er(t)}),ee(n))}),t(" translateGraph",function(){(function(e){var n=Number.POSITIVE_INFINITY,t=0,r=Number.POSITIVE_INFINITY,o=0,u=e.graph(),d=u.marginx||0,a=u.marginy||0;function h(e){var i=e.x,u=e.y,d=e.width,s=e.height;n=Math.min(n,i-d/2),t=Math.max(t,i+d/2),r=Math.min(r,u-s/2),o=Math.max(o,u+s/2)}i.A(e.nodes(),function(n){h(e.node(n))}),i.A(e.edges(),function(n){var t=e.edge(n);s.A(t,"x")&&h(t)}),n-=d,r-=a,i.A(e.nodes(),function(t){var i=e.node(t);i.x-=n,i.y-=r}),i.A(e.edges(),function(t){var o=e.edge(t);i.A(o.points,function(e){e.x-=n,e.y-=r}),s.A(o,"x")&&(o.x-=n),s.A(o,"y")&&(o.y-=r)}),u.width=t-n+d,u.height=o-r+a})(n)}),t(" assignNodeIntersects",function(){i.A(n.edges(),function(e){var t,r,i=n.edge(e),o=n.node(e.v),u=n.node(e.w);i.points?(t=i.points[0],r=i.points[i.points.length-1]):(i.points=[],t=u,r=o),i.points.unshift(Z(o,t)),i.points.push(Z(u,r))})}),t(" reversePoints",function(){i.A(n.edges(),function(e){var t=n.edge(e);t.reversed&&t.points.reverse()})}),t(" acyclic.undo",function(){i.A(n.edges(),function(e){var t=n.edge(e);if(t.reversed){n.removeEdge(e);var r=t.forwardName;delete t.reversed,delete t.forwardName,n.setEdge(e.w,e.v,t,r)}})})}),t(" updateInputGraph",function(){i.A(e.nodes(),function(t){var r=e.node(t),i=n.node(t);r&&(r.x=i.x,r.y=i.y,n.children(t).length&&(r.width=i.width,r.height=i.height))}),i.A(e.edges(),function(t){var r=e.edge(t),i=n.edge(t);r.points=i.points,s.A(i,"x")&&(r.x=i.x,r.y=i.y)}),e.graph().width=n.graph().width,e.graph().height=n.graph().height})})}var e5=["nodesep","edgesep","ranksep","marginx","marginy"],e7={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},ne=["acyclicer","ranker","rankdir","align"],nn=["width","height"],nt={width:0,height:0},nr=["minlen","weight","width","height","labeloffset"],ni={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},no=["labelpos"];function nu(e,n){return V(T(e,n),Number)}function nd(e){var n={};return i.A(e,function(e,t){n[t.toLowerCase()]=e}),n}},3735:(e,n,t)=>{t.d(n,{T:()=>m});var r=t(62859),i=t(39260),o=t(42036),u=t(95240),d=t(74990),s=t(77083),a=t(7392),h=t(31454),f=t(3858),c=t(48496),g=t(5264),v=t(11755),l=(0,c.A)(function(e){return(0,g.A)((0,f.A)(e,1,v.A,!0))}),A=t(43337),p=t(91825);class m{constructor(e={}){this._isDirected=!r.A(e,"directed")||e.directed,this._isMultigraph=!!r.A(e,"multigraph")&&e.multigraph,this._isCompound=!!r.A(e,"compound")&&e.compound,this._label=void 0,this._defaultNodeLabelFn=i.A(void 0),this._defaultEdgeLabelFn=i.A(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children["\0"]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return o.A(e)||(e=i.A(e)),this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return u.A(this._nodes)}sources(){var e=this;return d.A(this.nodes(),function(n){return s.A(e._in[n])})}sinks(){var e=this;return d.A(this.nodes(),function(n){return s.A(e._out[n])})}setNodes(e,n){var t=arguments,r=this;return a.A(e,function(e){t.length>1?r.setNode(e,n):r.setNode(e)}),this}setNode(e,n){return r.A(this._nodes,e)?arguments.length>1&&(this._nodes[e]=n):(this._nodes[e]=arguments.length>1?n:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]="\0",this._children[e]={},this._children["\0"][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount),this}node(e){return this._nodes[e]}hasNode(e){return r.A(this._nodes,e)}removeNode(e){var n=this;if(r.A(this._nodes,e)){var t=function(e){n.removeEdge(n._edgeObjs[e])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],a.A(this.children(e),function(e){n.setParent(e)}),delete this._children[e]),a.A(u.A(this._in[e]),t),delete this._in[e],delete this._preds[e],a.A(u.A(this._out[e]),t),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,n){if(!this._isCompound)throw Error("Cannot set parent in a non-compound graph");if(h.A(n))n="\0";else{n+="";for(var t=n;!h.A(t);t=this.parent(t))if(t===e)throw Error("Setting "+n+" as parent of "+e+" would create a cycle");this.setNode(n)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=n,this._children[n][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var n=this._parent[e];if("\0"!==n)return n}}children(e){if(h.A(e)&&(e="\0"),this._isCompound){var n=this._children[e];if(n)return u.A(n)}else if("\0"===e)return this.nodes();else if(this.hasNode(e))return[]}predecessors(e){var n=this._preds[e];if(n)return u.A(n)}successors(e){var n=this._sucs[e];if(n)return u.A(n)}neighbors(e){var n=this.predecessors(e);if(n)return l(n,this.successors(e))}isLeaf(e){return 0===(this.isDirected()?this.successors(e):this.neighbors(e)).length}filterNodes(e){var n=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});n.setGraph(this.graph());var t=this;a.A(this._nodes,function(t,r){e(r)&&n.setNode(r,t)}),a.A(this._edgeObjs,function(e){n.hasNode(e.v)&&n.hasNode(e.w)&&n.setEdge(e,t.edge(e))});var r={};return this._isCompound&&a.A(n.nodes(),function(e){n.setParent(e,function e(i){var o=t.parent(i);return void 0===o||n.hasNode(o)?(r[i]=o,o):o in r?r[o]:e(o)}(e))}),n}setDefaultEdgeLabel(e){return o.A(e)||(e=i.A(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return A.A(this._edgeObjs)}setPath(e,n){var t=this,r=arguments;return p.A(e,function(e,i){return r.length>1?t.setEdge(e,i,n):t.setEdge(e,i),i}),this}setEdge(){var e,n,t,i,o=!1,u=arguments[0];"object"==typeof u&&null!==u&&"v"in u?(e=u.v,n=u.w,t=u.name,2==arguments.length&&(i=arguments[1],o=!0)):(e=u,n=arguments[1],t=arguments[3],arguments.length>2&&(i=arguments[2],o=!0)),e=""+e,n=""+n,h.A(t)||(t=""+t);var d=_(this._isDirected,e,n,t);if(r.A(this._edgeLabels,d))return o&&(this._edgeLabels[d]=i),this;if(!h.A(t)&&!this._isMultigraph)throw Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(n),this._edgeLabels[d]=o?i:this._defaultEdgeLabelFn(e,n,t);var s=function(e,n,t,r){var i=""+n,o=""+t;if(!e&&i>o){var u=i;i=o,o=u}var d={v:i,w:o};return r&&(d.name=r),d}(this._isDirected,e,n,t);return e=s.v,n=s.w,Object.freeze(s),this._edgeObjs[d]=s,w(this._preds[n],e),w(this._sucs[e],n),this._in[n][d]=s,this._out[e][d]=s,this._edgeCount++,this}edge(e,n,t){var r=1==arguments.length?y(this._isDirected,arguments[0]):_(this._isDirected,e,n,t);return this._edgeLabels[r]}hasEdge(e,n,t){var i=1==arguments.length?y(this._isDirected,arguments[0]):_(this._isDirected,e,n,t);return r.A(this._edgeLabels,i)}removeEdge(e,n,t){var r=1==arguments.length?y(this._isDirected,arguments[0]):_(this._isDirected,e,n,t),i=this._edgeObjs[r];return i&&(e=i.v,n=i.w,delete this._edgeLabels[r],delete this._edgeObjs[r],b(this._preds[n],e),b(this._sucs[e],n),delete this._in[n][r],delete this._out[e][r],this._edgeCount--),this}inEdges(e,n){var t=this._in[e];if(t){var r=A.A(t);return n?d.A(r,function(e){return e.v===n}):r}}outEdges(e,n){var t=this._out[e];if(t){var r=A.A(t);return n?d.A(r,function(e){return e.w===n}):r}}nodeEdges(e,n){var t=this.inEdges(e,n);if(t)return t.concat(this.outEdges(e,n))}}function w(e,n){e[n]?e[n]++:e[n]=1}function b(e,n){--e[n]||delete e[n]}function _(e,n,t,r){var i=""+n,o=""+t;if(!e&&i>o){var u=i;i=o,o=u}return i+"\x01"+o+"\x01"+(h.A(r)?"\0":r)}function y(e,n){return _(e,n.v,n.w,n.name)}m.prototype._nodeCount=0,m.prototype._edgeCount=0},62499:(e,n,t)=>{t.d(n,{T:()=>r.T});var r=t(3735)},54533:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(40932);let i=function(e,n,t){for(var i=-1,o=e.length;++i<o;){var u=e[i],d=n(u);if(null!=d&&(void 0===s?d==d&&!(0,r.A)(d):t(d,s)))var s=d,a=u}return a}},31818:(e,n,t)=>{t.d(n,{A:()=>r});let r=function(e,n){return e<n}},99609:(e,n,t)=>{t.d(n,{A:()=>o});var r=t(906),i=t(8860);let o=function(e,n){var t=-1,o=(0,i.A)(e)?Array(e.length):[];return(0,r.A)(e,function(e,r,i){o[++t]=n(e,r,i)}),o}},92860:(e,n,t)=>{t.d(n,{A:()=>h});var r=t(79696),i=t(84805),o=t(98669),u=t(49031),d=t(17731),s=t(63307);let a=function(e,n,t,r){if(!(0,d.A)(e))return e;n=(0,o.A)(n,e);for(var a=-1,h=n.length,f=h-1,c=e;null!=c&&++a<h;){var g=(0,s.A)(n[a]),v=t;if("__proto__"===g||"constructor"===g||"prototype"===g)break;if(a!=f){var l=c[g];void 0===(v=r?r(l,g,c):void 0)&&(v=(0,d.A)(l)?l:(0,u.A)(n[a+1])?[]:{})}(0,i.A)(c,g,v),c=c[g]}return e},h=function(e,n,t){for(var i=-1,u=n.length,d={};++i<u;){var s=n[i],h=(0,r.A)(e,s);t(h,s)&&a(d,(0,o.A)(s,e),h)}return d}},12630:(e,n,t)=>{t.d(n,{A:()=>a});var r=t(48496),i=t(65866),o=t(50174),u=t(97937),d=Object.prototype,s=d.hasOwnProperty;let a=(0,r.A)(function(e,n){e=Object(e);var t=-1,r=n.length,a=r>2?n[2]:void 0;for(a&&(0,o.A)(n[0],n[1],a)&&(r=1);++t<r;)for(var h=n[t],f=(0,u.A)(h),c=-1,g=f.length;++c<g;){var v=f[c],l=e[v];(void 0===l||(0,i.A)(l,d[v])&&!s.call(e,v))&&(e[v]=h[v])}return e})},62663:(e,n,t)=>{t.d(n,{A:()=>h});var r,i=t(18592),o=t(8860),u=t(95240),d=t(54402),s=t(52743),a=Math.max;let h=(r=function(e,n,t){var r=null==e?0:e.length;if(!r)return -1;var o=null==t?0:(0,s.A)(t);return o<0&&(o=a(r+o,0)),(0,d.A)(e,(0,i.A)(n,3),o)},function(e,n,t){var d=Object(e);if(!(0,o.A)(e)){var s=(0,i.A)(n,3);e=(0,u.A)(e),n=function(e){return s(d[e],e,d)}}var a=r(e,n,t);return a>-1?d[s?e[a]:a]:void 0})},98880:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(3858);let i=function(e){return(null==e?0:e.length)?(0,r.A)(e,1):[]}},57805:(e,n,t)=>{t.d(n,{A:()=>u});var r=t(36798),i=t(28675),o=t(19196);let u=function(e){return"string"==typeof e||!(0,i.A)(e)&&(0,o.A)(e)&&"[object String]"==(0,r.A)(e)}},44280:(e,n,t)=>{t.d(n,{A:()=>r});let r=function(e){var n=null==e?0:e.length;return n?e[n-1]:void 0}},23480:(e,n,t)=>{t.d(n,{A:()=>d});var r=t(66046),i=t(18592),o=t(99609),u=t(28675);let d=function(e,n){return((0,u.A)(e)?r.A:o.A)(e,(0,i.A)(n,3))}},60398:(e,n,t)=>{t.d(n,{A:()=>u});var r=t(54533),i=t(31818),o=t(83910);let u=function(e){return e&&e.length?(0,r.A)(e,o.A,i.A):void 0}},27900:(e,n,t)=>{t.d(n,{A:()=>l});var r=/\s/;let i=function(e){for(var n=e.length;n--&&r.test(e.charAt(n)););return n};var o=/^\s+/,u=t(17731),d=t(40932),s=0/0,a=/^[-+]0x[0-9a-f]+$/i,h=/^0b[01]+$/i,f=/^0o[0-7]+$/i,c=parseInt;let g=function(e){if("number"==typeof e)return e;if((0,d.A)(e))return s;if((0,u.A)(e)){var n,t="function"==typeof e.valueOf?e.valueOf():e;e=(0,u.A)(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=(n=e)?n.slice(0,i(n)+1).replace(o,""):n;var r=h.test(e);return r||f.test(e)?c(e.slice(2),r?2:8):a.test(e)?s:+e};var v=1/0;let l=function(e){return e?(e=g(e))===v||e===-v?(e<0?-1:1)*17976931348623157e292:e==e?e:0:0===e?e:0}},52743:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(27900);let i=function(e){var n=(0,r.A)(e),t=n%1;return n==n?t?n-t:n:0}}}]); \ No newline at end of file diff --git a/assets/js/62b37705.4ca1a8a5.js b/assets/js/62b37705.2269709b.js similarity index 83% rename from assets/js/62b37705.4ca1a8a5.js rename to assets/js/62b37705.2269709b.js index ad0694ebfd..ea8f3c054f 100644 --- a/assets/js/62b37705.4ca1a8a5.js +++ b/assets/js/62b37705.2269709b.js @@ -2,4 +2,4 @@ - "@docusaurus/preset-classic": "^${c}", + "@docusaurus/core": "${r}", + "@docusaurus/preset-classic": "${r}", -`})}function w(){var e;let t=null===(e=(0,o.useContext)(u))||void 0===e?void 0:e.time;return t?(0,n.jsx)(s.A,{values:{time:(0,n.jsx)("b",{children:new Date(t).toLocaleString()})},children:"The latest canary version that's available on npm is published at {time}."}):null}},55887:(e,t,r)=>{r.d(t,{A:()=>es});var n,o,c,a={};r.r(a),r.d(a,{ButtonExample:()=>C});var s=r(62540),l=r(63696),i=r(11750),u=r(10709),d=r(55152),p=r(81912),b=r(99468),f=r(40576),j=r(1495),y=r(66659),h=r(25436);function m(){let{prism:e}=(0,h.p)(),{colorMode:t}=(0,y.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var O=r(43758);function g(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,s.jsx)("div",{className:(0,i.A)("playgroundHeader_Tvsk"),children:e})}function x(){return(0,s.jsx)("div",{children:"Loading..."})}function w(){return(0,s.jsx)(f.A,{fallback:(0,s.jsx)(x,{}),children:()=>(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(O.A,{fallback:e=>(0,s.jsx)(j.MN,g({},e)),children:(0,s.jsx)(d.pA,{})}),(0,s.jsx)(d.p1,{})]})})}function P(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(v,{children:(0,s.jsx)(p.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,s.jsx)("div",{className:"playgroundPreview_mApW",children:(0,s.jsx)(w,{})})]})}function k(){let e=(0,u.A)();return(0,s.jsx)(d.w,{className:"playgroundEditor_TySg"},String(e))}function S(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(v,{children:(0,s.jsx)(p.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,s.jsx)(k,{})]})}let E=e=>`${e};`;function A(e){var t,r,n,o,{children:c,transformCode:a}=e,l=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:i}}=(0,b.A)(),{liveCodeBlock:{playgroundPosition:u}}=i,p=m(),f=null!==(o=null===(n=l.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,s.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,s.jsx)(d.Q,(t=g({code:null==c?void 0:c.replace(/\n$/,""),noInline:f,transformCode:null!=a?a:E,theme:p},l),r=r={children:"top"===u?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(P,{}),(0,s.jsx)(S,{})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(S,{}),(0,s.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function B(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function C(e){var t,r;return(0,s.jsx)("button",(t=B({type:"button"},e),r=r={style:B({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let D=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:l},l,a);var N=r(12653),T=r(19934),L=r.n(T);let I=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),_=RegExp("\\{(?<range>[\\d,-]+)\\}"),$={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},R=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},$),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),V=Object.keys($);function M(e,t){let r=e.map(e=>{let{start:r,end:n}=R[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function q(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let c=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(m());return(0,s.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:c,className:(0,i.A)(o.className,"codeBlockContainer_jDV4",N.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let W={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function F({children:e,className:t}){return(0,s.jsx)(q,{as:"pre",tabIndex:0,className:(0,i.A)(W.codeBlockStandalone,"thin-scrollbar",t),children:(0,s.jsx)("code",{className:W.codeBlockLines,children:e})})}var H=r(2550);let U={attributes:!0,characterData:!0,childList:!0,subtree:!0};var G=r(27663);let Y={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function z(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function Q({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var c,a;1===e.length&&"\n"===e[0].content&&(e[0].content="");let l=n({line:e,className:(0,i.A)(t,r&&Y.codeLine)}),u=e.map((e,t)=>(0,s.jsx)("span",z({},o({token:e})),t));return(0,s.jsxs)("span",(c=z({},l),a=a={children:[r?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:Y.codeLineNumber}),(0,s.jsx)("span",{className:Y.codeLineContent,children:u})]}):u,(0,s.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(a)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(a)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(a,e))}),c))}var X=r(936);function J(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,s.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function Z(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,s.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,l.useState)(!1),o=(0,l.useRef)(void 0),c=(0,l.useCallback)(()=>{(0,X.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,l.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,s.jsx)("button",{type:"button","aria-label":r?(0,p.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,i.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:c,children:(0,s.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,s.jsx)(J,{className:K.copyButtonIcon}),(0,s.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,s.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,p.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,s.jsx)("button",{type:"button",onClick:t,className:(0,i.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,s.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:c}){var a,u,d,p;let{prism:{defaultLanguage:b,magicComments:f}}=(0,h.p)(),j=null==(u=null!==(a=null!=c?c:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==a?a:b)?void 0:u.toLowerCase(),y=m(),O=function(){let[e,t]=(0,l.useState)(!1),[r,n]=(0,l.useState)(!1),o=(0,l.useRef)(null),c=(0,l.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),a=(0,l.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,l.useState)(),o=(0,l.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,l.useEffect)(()=>{o()},[o]),function(e,t,r=U){let n=(0,H._q)(t),o=(0,H.Be)(r);(0,l.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,a),(0,l.useEffect)(()=>{a()},[e,a]),(0,l.useEffect)(()=>(window.addEventListener("resize",a,{passive:!0}),()=>{window.removeEventListener("resize",a)}),[a]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:c}}(),g=(null!==(p=null==r?void 0:null===(d=r.match(I))||void 0===d?void 0:d.groups.title)&&void 0!==p?p:"")||n,{lineClassNames:v,code:x}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:c}=t;if(c&&_.test(c)){let e=c.match(_).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${c}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(L()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let a=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return M(["js","jsBlock"],t);case"jsx":case"tsx":return M(["js","jsBlock","jsx"],t);case"html":return M(["js","jsBlock","html"],t);case"python":case"py":case"bash":return M(["bash"],t);case"markdown":case"md":return M(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return M(["tex"],t);case"lua":case"haskell":case"sql":return M(["lua"],t);case"wasm":return M(["wasm"],t);case"vb":case"vba":case"visual-basic":return M(["vb","rem"],t);case"vbnet":return M(["vbnet","rem"],t);case"batch":return M(["rem"],t);case"basic":return M(["rem","f90"],t);case"fsharp":return M(["js","ml"],t);case"ocaml":case"sml":return M(["ml"],t);case"fortran":return M(["f90"],t);case"cobol":return M(["cobol"],t);default:return M(V,t)}}(n,o),s=r.split("\n"),l=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),i=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),d=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<s.length;){let t=s[e].match(a);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);i[r]?l[i[r]].range+=`${e},`:u[r]?l[u[r]].start=e:d[r]&&(l[d[r]].range+=`${l[d[r]].start}-${e-1},`),s.splice(e,1)}r=s.join("\n");let p={};return Object.entries(l).forEach(([e,{range:t}])=>{L()(t).forEach(t=>{var r;null!==(r=p[t])&&void 0!==r||(p[t]=[]),p[t].push(e)})}),{lineClassNames:p,code:r}}(e,{metastring:r,language:j,magicComments:f}),w=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,s.jsxs)(q,{as:"div",className:(0,i.A)(t,j&&!t.includes(`language-${j}`)&&`language-${j}`),children:[g&&(0,s.jsx)("div",{className:W.codeBlockTitle,children:g}),(0,s.jsxs)("div",{className:W.codeBlockContent,children:[(0,s.jsx)(G.f4,{theme:y,code:x,language:null!=j?j:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,s.jsx)("pre",{tabIndex:0,ref:O.codeBlockRef,className:(0,i.A)(e,W.codeBlock,"thin-scrollbar"),style:t,children:(0,s.jsx)("code",{className:(0,i.A)(W.codeBlockLines,w&&W.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,s.jsx)(Q,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:w},t))})})}),(0,s.jsxs)("div",{className:W.buttonGroup,children:[(O.isEnabled||O.isCodeScrollable)&&(0,s.jsx)(en,{className:W.codeButton,onClick:()=>O.toggle(),isEnabled:O.isEnabled}),(0,s.jsx)(ee,{className:W.codeButton,code:x})]})]})]})}function ec(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let ea=(c=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let c=(0,u.A)(),a=l.Children.toArray(n).some(e=>(0,l.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,i="string"==typeof a?eo:F;return(0,s.jsx)(i,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:a},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(c))},function(e){return e.live?(0,s.jsx)(A,ec({scope:D},e)):(0,s.jsx)(c,ec({},e))});function es(e){return(0,s.jsx)(ea,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}},36029:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>u,default:()=>f,frontMatter:()=>i,metadata:()=>n,toc:()=>p});let n=JSON.parse('{"id":"canary","title":"Canary releases","description":"Docusaurus has a canary releases system.","source":"@site/community/4-canary.mdx","sourceDirName":".","slug":"/canary","permalink":"/community/canary","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/4-canary.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":4,"frontMatter":{},"sidebar":"community","previous":{"title":"Contributing","permalink":"/community/contributing"},"next":{"title":"Release process","permalink":"/community/release-process"}}');var o=r(62540),c=r(43023),a=r(27446),s=r(15995),l=r(31436);let i={},u="Canary releases",d={},p=[{value:"Canary npm dist tag",id:"canary-npm-dist-tag",level:2},{value:"Using a canary release",id:"using-a-canary-release",level:2}];function b(e){let t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,c.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"canary-releases",children:"Canary releases"})}),"\n","\n",(0,o.jsxs)(l.tu,{children:[(0,o.jsx)(t.p,{children:"Docusaurus has a canary releases system."}),(0,o.jsxs)(t.p,{children:["It permits you to ",(0,o.jsx)(t.strong,{children:"test new unreleased features"})," as soon as the pull requests are merged on the ",(0,o.jsx)(t.a,{href:"/community/release-process#next-version",children:"next version"})," of Docusaurus."]}),(0,o.jsxs)(t.p,{children:["It is a good way to ",(0,o.jsx)(t.strong,{children:"give feedback to maintainers"}),", ensuring the newly implemented feature works as intended."]}),(0,o.jsxs)(t.admonition,{type:"note",children:[(0,o.jsx)(t.p,{children:"Using a canary release in production might seem risky, but in practice, it's not."}),(0,o.jsx)(t.p,{children:"A canary release passes all automated tests and is used in production by the Docusaurus site itself."})]}),(0,o.jsx)(l.jL,{children:(0,o.jsx)(t.admonition,{type:"warning",children:(0,o.jsxs)(t.p,{children:["The canary version shown below ",(0,o.jsx)(t.strong,{children:"may not be up-to-date"}),". Please go to the ",(0,o.jsx)(t.a,{href:"https://www.npmjs.com/package/@docusaurus/core?activeTab=versions",children:"npm page"})," to find the actual version name."]})})}),(0,o.jsx)(l.uA,{children:(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["The canary version shown below is directly fetched from npm and ",(0,o.jsx)(t.strong,{children:"is up-to-date"}),". You can directly use these numbers in your package.json."]})})}),(0,o.jsx)(t.h2,{id:"canary-npm-dist-tag",children:"Canary npm dist tag"}),(0,o.jsxs)(t.p,{children:["For any code-related commit on ",(0,o.jsx)(t.code,{children:"main"}),", the continuous integration will publish a canary release under the ",(0,o.jsx)(t.code,{children:"@canary"})," npm dist tag. It generally takes up to 10 minutes."]}),(0,o.jsxs)(t.p,{children:["You can see on ",(0,o.jsx)(t.a,{href:"https://www.npmjs.com/package/@docusaurus/core?activeTab=versions",children:"npm"})," the current dist tags:"]}),(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.code,{children:"latest"}),": stable releases (Current: ",(0,o.jsx)(l.ex,{}),")"]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.code,{children:"canary"}),": canary releases (",(0,o.jsx)(l.X0,{}),")"]}),"\n"]}),(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["Make sure to use the latest canary release and check the publication date (sometimes the publish process fails). ",(0,o.jsx)(l.xs,{})]})}),(0,o.jsx)(t.admonition,{type:"note",children:(0,o.jsxs)(t.p,{children:["Canary versions follow the naming convention ",(0,o.jsx)(t.code,{children:"0.0.0-commitNumber"}),"."]})}),(0,o.jsx)(t.h2,{id:"using-a-canary-release",children:"Using a canary release"}),(0,o.jsxs)(t.p,{children:["Take the latest version published under the ",(0,o.jsx)(t.a,{href:"https://www.npmjs.com/package/@docusaurus/core?activeTab=versions",children:"canary npm dist tag"})," (",(0,o.jsx)(l.X0,{}),")."]}),(0,o.jsxs)(t.p,{children:["Use it for all the ",(0,o.jsx)(t.code,{children:"@docusaurus/*"})," dependencies in your ",(0,o.jsx)(t.code,{children:"package.json"}),":"]}),(0,o.jsx)(l.Cj,{}),(0,o.jsx)(t.p,{children:"Then, install the dependencies again and start your site:"}),(0,o.jsxs)(a.A,{children:[(0,o.jsx)(s.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install\nnpm start\n"})})}),(0,o.jsx)(s.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn install\nyarn start\n"})})}),(0,o.jsx)(s.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm install\npnpm start\n"})})})]}),(0,o.jsxs)(t.p,{children:["You can also upgrade the ",(0,o.jsx)(t.code,{children:"@docusaurus/*"})," packages with command line:"]}),(0,o.jsxs)(a.A,{children:[(0,o.jsx)(s.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install --save-exact @docusaurus/core@canary @docusaurus/preset-classic@canary\n"})})}),(0,o.jsx)(s.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn add --exact @docusaurus/core@canary @docusaurus/preset-classic@canary\n"})})}),(0,o.jsx)(s.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm add --save-exact @docusaurus/core@canary @docusaurus/preset-classic@canary\n"})})})]}),(0,o.jsxs)(t.admonition,{type:"warning",children:[(0,o.jsxs)(t.p,{children:["Make sure to include all the ",(0,o.jsx)(t.code,{children:"@docusaurus/*"})," packages."]}),(0,o.jsxs)(t.p,{children:["For canary releases, prefer using an exact version instead of a semver range (avoid the ",(0,o.jsx)(t.code,{children:"^"})," prefix)."]})]})]})]})}function f(e={}){let{wrapper:t}={...(0,c.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(b,{...e})}):b(e)}}}]); \ No newline at end of file +`})}function w(){var e;let t=null===(e=(0,o.useContext)(u))||void 0===e?void 0:e.time;return t?(0,n.jsx)(s.A,{values:{time:(0,n.jsx)("b",{children:new Date(t).toLocaleString()})},children:"The latest canary version that's available on npm is published at {time}."}):null}},55887:(e,t,r)=>{r.d(t,{A:()=>es});var n,o,c,a={};r.r(a),r.d(a,{ButtonExample:()=>C});var s=r(62540),l=r(63696),i=r(11750),u=r(10709),d=r(55152),p=r(81912),b=r(99468),f=r(40576),j=r(1495),y=r(66659),h=r(25436);function m(){let{prism:e}=(0,h.p)(),{colorMode:t}=(0,y.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var O=r(43758);function g(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,s.jsx)("div",{className:(0,i.A)("playgroundHeader_Tvsk"),children:e})}function x(){return(0,s.jsx)("div",{children:"Loading..."})}function w(){return(0,s.jsx)(f.A,{fallback:(0,s.jsx)(x,{}),children:()=>(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(O.A,{fallback:e=>(0,s.jsx)(j.MN,g({},e)),children:(0,s.jsx)(d.pA,{})}),(0,s.jsx)(d.p1,{})]})})}function P(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(v,{children:(0,s.jsx)(p.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,s.jsx)("div",{className:"playgroundPreview_mApW",children:(0,s.jsx)(w,{})})]})}function k(){let e=(0,u.A)();return(0,s.jsx)(d.w,{className:"playgroundEditor_TySg"},String(e))}function S(){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(v,{children:(0,s.jsx)(p.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,s.jsx)(k,{})]})}let E=e=>`${e};`;function A(e){var t,r,n,o,{children:c,transformCode:a}=e,l=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:i}}=(0,b.A)(),{liveCodeBlock:{playgroundPosition:u}}=i,p=m(),f=null!==(o=null===(n=l.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,s.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,s.jsx)(d.Q,(t=g({code:null==c?void 0:c.replace(/\n$/,""),noInline:f,transformCode:null!=a?a:E,theme:p},l),r=r={children:"top"===u?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(P,{}),(0,s.jsx)(S,{})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(S,{}),(0,s.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function B(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function C(e){var t,r;return(0,s.jsx)("button",(t=B({type:"button"},e),r=r={style:B({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let D=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:l},l,a);var N=r(12653),T=r(19934),L=r.n(T);let I=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),_=RegExp("\\{(?<range>[\\d,-]+)\\}"),$={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},R=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},$),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),V=Object.keys($);function M(e,t){let r=e.map(e=>{let{start:r,end:n}=R[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function q(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let c=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(m());return(0,s.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:c,className:(0,i.A)(o.className,"codeBlockContainer_jDV4",N.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let W={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function F({children:e,className:t}){return(0,s.jsx)(q,{as:"pre",tabIndex:0,className:(0,i.A)(W.codeBlockStandalone,"thin-scrollbar",t),children:(0,s.jsx)("code",{className:W.codeBlockLines,children:e})})}var H=r(2550);let U={attributes:!0,characterData:!0,childList:!0,subtree:!0};var G=r(27663);let Y={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function z(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function Q({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var c,a;1===e.length&&"\n"===e[0].content&&(e[0].content="");let l=n({line:e,className:(0,i.A)(t,r&&Y.codeLine)}),u=e.map((e,t)=>(0,s.jsx)("span",z({},o({token:e})),t));return(0,s.jsxs)("span",(c=z({},l),a=a={children:[r?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:Y.codeLineNumber}),(0,s.jsx)("span",{className:Y.codeLineContent,children:u})]}):u,(0,s.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(a)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(a)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(a,e))}),c))}var X=r(936);function J(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,s.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function Z(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,s.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,l.useState)(!1),o=(0,l.useRef)(void 0),c=(0,l.useCallback)(()=>{(0,X.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,l.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,s.jsx)("button",{type:"button","aria-label":r?(0,p.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,i.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:c,children:(0,s.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,s.jsx)(J,{className:K.copyButtonIcon}),(0,s.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,s.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,p.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,s.jsx)("button",{type:"button",onClick:t,className:(0,i.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,s.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:c}){var a,u,d,p;let{prism:{defaultLanguage:b,magicComments:f}}=(0,h.p)(),j=null==(u=null!==(a=null!=c?c:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==a?a:b)?void 0:u.toLowerCase(),y=m(),O=function(){let[e,t]=(0,l.useState)(!1),[r,n]=(0,l.useState)(!1),o=(0,l.useRef)(null),c=(0,l.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),a=(0,l.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,l.useState)(),o=(0,l.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,l.useEffect)(()=>{o()},[o]),function(e,t,r=U){let n=(0,H._q)(t),o=(0,H.Be)(r);(0,l.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,a),(0,l.useEffect)(()=>{a()},[e,a]),(0,l.useEffect)(()=>(window.addEventListener("resize",a,{passive:!0}),()=>{window.removeEventListener("resize",a)}),[a]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:c}}(),g=(null!==(p=null==r?void 0:null===(d=r.match(I))||void 0===d?void 0:d.groups.title)&&void 0!==p?p:"")||n,{lineClassNames:v,code:x}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:c}=t;if(c&&_.test(c)){let e=c.match(_).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${c}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(L()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let a=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return M(["js","jsBlock"],t);case"jsx":case"tsx":return M(["js","jsBlock","jsx"],t);case"html":return M(["js","jsBlock","html"],t);case"python":case"py":case"bash":return M(["bash"],t);case"markdown":case"md":return M(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return M(["tex"],t);case"lua":case"haskell":case"sql":return M(["lua"],t);case"wasm":return M(["wasm"],t);case"vb":case"vba":case"visual-basic":return M(["vb","rem"],t);case"vbnet":return M(["vbnet","rem"],t);case"batch":return M(["rem"],t);case"basic":return M(["rem","f90"],t);case"fsharp":return M(["js","ml"],t);case"ocaml":case"sml":return M(["ml"],t);case"fortran":return M(["f90"],t);case"cobol":return M(["cobol"],t);default:return M(V,t)}}(n,o),s=r.split("\n"),l=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),i=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),d=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<s.length;){let t=s[e].match(a);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);i[r]?l[i[r]].range+=`${e},`:u[r]?l[u[r]].start=e:d[r]&&(l[d[r]].range+=`${l[d[r]].start}-${e-1},`),s.splice(e,1)}r=s.join("\n");let p={};return Object.entries(l).forEach(([e,{range:t}])=>{L()(t).forEach(t=>{var r;null!==(r=p[t])&&void 0!==r||(p[t]=[]),p[t].push(e)})}),{lineClassNames:p,code:r}}(e,{metastring:r,language:j,magicComments:f}),w=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,s.jsxs)(q,{as:"div",className:(0,i.A)(t,j&&!t.includes(`language-${j}`)&&`language-${j}`),children:[g&&(0,s.jsx)("div",{className:W.codeBlockTitle,children:g}),(0,s.jsxs)("div",{className:W.codeBlockContent,children:[(0,s.jsx)(G.f4,{theme:y,code:x,language:null!=j?j:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,s.jsx)("pre",{tabIndex:0,ref:O.codeBlockRef,className:(0,i.A)(e,W.codeBlock,"thin-scrollbar"),style:t,children:(0,s.jsx)("code",{className:(0,i.A)(W.codeBlockLines,w&&W.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,s.jsx)(Q,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:w},t))})})}),(0,s.jsxs)("div",{className:W.buttonGroup,children:[(O.isEnabled||O.isCodeScrollable)&&(0,s.jsx)(en,{className:W.codeButton,onClick:()=>O.toggle(),isEnabled:O.isEnabled}),(0,s.jsx)(ee,{className:W.codeButton,code:x})]})]})]})}function ec(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let ea=(c=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let c=(0,u.A)(),a=l.Children.toArray(n).some(e=>(0,l.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,i="string"==typeof a?eo:F;return(0,s.jsx)(i,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:a},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(c))},function(e){return e.live?(0,s.jsx)(A,ec({scope:D},e)):(0,s.jsx)(c,ec({},e))});function es(e){return(0,s.jsx)(ea,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}},36029:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>u,default:()=>f,frontMatter:()=>i,metadata:()=>n,toc:()=>p});let n=JSON.parse('{"id":"canary","title":"Canary releases","description":"Docusaurus has a canary releases system.","source":"@site/community/4-canary.mdx","sourceDirName":".","slug":"/canary","permalink":"/community/canary","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/community/4-canary.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":4,"frontMatter":{},"sidebar":"community","previous":{"title":"Contributing","permalink":"/community/contributing"},"next":{"title":"Release process","permalink":"/community/release-process"}}');var o=r(62540),c=r(43023),a=r(27446),s=r(15995),l=r(31436);let i={},u="Canary releases",d={},p=[{value:"Canary npm dist tag",id:"canary-npm-dist-tag",level:2},{value:"Using a canary release",id:"using-a-canary-release",level:2}];function b(e){let t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,c.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"canary-releases",children:"Canary releases"})}),"\n","\n",(0,o.jsxs)(l.tu,{children:[(0,o.jsx)(t.p,{children:"Docusaurus has a canary releases system."}),(0,o.jsxs)(t.p,{children:["It permits you to ",(0,o.jsx)(t.strong,{children:"test new unreleased features"})," as soon as the pull requests are merged on the ",(0,o.jsx)(t.a,{href:"/community/release-process#next-version",children:"next version"})," of Docusaurus."]}),(0,o.jsxs)(t.p,{children:["It is a good way to ",(0,o.jsx)(t.strong,{children:"give feedback to maintainers"}),", ensuring the newly implemented feature works as intended."]}),(0,o.jsxs)(t.admonition,{type:"note",children:[(0,o.jsx)(t.p,{children:"Using a canary release in production might seem risky, but in practice, it's not."}),(0,o.jsx)(t.p,{children:"A canary release passes all automated tests and is used in production by the Docusaurus site itself."})]}),(0,o.jsx)(l.jL,{children:(0,o.jsx)(t.admonition,{type:"warning",children:(0,o.jsxs)(t.p,{children:["The canary version shown below ",(0,o.jsx)(t.strong,{children:"may not be up-to-date"}),". Please go to the ",(0,o.jsx)(t.a,{href:"https://www.npmjs.com/package/@docusaurus/core?activeTab=versions",children:"npm page"})," to find the actual version name."]})})}),(0,o.jsx)(l.uA,{children:(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["The canary version shown below is directly fetched from npm and ",(0,o.jsx)(t.strong,{children:"is up-to-date"}),". You can directly use these numbers in your package.json."]})})}),(0,o.jsx)(t.h2,{id:"canary-npm-dist-tag",children:"Canary npm dist tag"}),(0,o.jsxs)(t.p,{children:["For any code-related commit on ",(0,o.jsx)(t.code,{children:"main"}),", the continuous integration will publish a canary release under the ",(0,o.jsx)(t.code,{children:"@canary"})," npm dist tag. It generally takes up to 10 minutes."]}),(0,o.jsxs)(t.p,{children:["You can see on ",(0,o.jsx)(t.a,{href:"https://www.npmjs.com/package/@docusaurus/core?activeTab=versions",children:"npm"})," the current dist tags:"]}),(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.code,{children:"latest"}),": stable releases (Current: ",(0,o.jsx)(l.ex,{}),")"]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.code,{children:"canary"}),": canary releases (",(0,o.jsx)(l.X0,{}),")"]}),"\n"]}),(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["Make sure to use the latest canary release and check the publication date (sometimes the publish process fails). ",(0,o.jsx)(l.xs,{})]})}),(0,o.jsx)(t.admonition,{type:"note",children:(0,o.jsxs)(t.p,{children:["Canary versions follow the naming convention ",(0,o.jsx)(t.code,{children:"0.0.0-commitNumber"}),"."]})}),(0,o.jsx)(t.h2,{id:"using-a-canary-release",children:"Using a canary release"}),(0,o.jsxs)(t.p,{children:["Take the latest version published under the ",(0,o.jsx)(t.a,{href:"https://www.npmjs.com/package/@docusaurus/core?activeTab=versions",children:"canary npm dist tag"})," (",(0,o.jsx)(l.X0,{}),")."]}),(0,o.jsxs)(t.p,{children:["Use it for all the ",(0,o.jsx)(t.code,{children:"@docusaurus/*"})," dependencies in your ",(0,o.jsx)(t.code,{children:"package.json"}),":"]}),(0,o.jsx)(l.Cj,{}),(0,o.jsx)(t.p,{children:"Then, install the dependencies again and start your site:"}),(0,o.jsxs)(a.A,{children:[(0,o.jsx)(s.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install\nnpm start\n"})})}),(0,o.jsx)(s.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn install\nyarn start\n"})})}),(0,o.jsx)(s.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm install\npnpm start\n"})})})]}),(0,o.jsxs)(t.p,{children:["You can also upgrade the ",(0,o.jsx)(t.code,{children:"@docusaurus/*"})," packages with command line:"]}),(0,o.jsxs)(a.A,{children:[(0,o.jsx)(s.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install --save-exact @docusaurus/core@canary @docusaurus/preset-classic@canary\n"})})}),(0,o.jsx)(s.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn add --exact @docusaurus/core@canary @docusaurus/preset-classic@canary\n"})})}),(0,o.jsx)(s.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm add --save-exact @docusaurus/core@canary @docusaurus/preset-classic@canary\n"})})})]}),(0,o.jsxs)(t.admonition,{type:"warning",children:[(0,o.jsxs)(t.p,{children:["Make sure to include all the ",(0,o.jsx)(t.code,{children:"@docusaurus/*"})," packages."]}),(0,o.jsxs)(t.p,{children:["For canary releases, prefer using an exact version instead of a semver range (avoid the ",(0,o.jsx)(t.code,{children:"^"})," prefix)."]})]})]})]})}function f(e={}){let{wrapper:t}={...(0,c.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(b,{...e})}):b(e)}}}]); \ No newline at end of file diff --git a/assets/js/64039.5b73f3d3.js b/assets/js/64039.5b73f3d3.js new file mode 100644 index 0000000000..76cf99c90a --- /dev/null +++ b/assets/js/64039.5b73f3d3.js @@ -0,0 +1,29 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[64039],{30353:(e,t,a)=>{function i(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}a.d(t,{S:()=>i}),(0,a(72912).K2)(i,"populateCommonDb")},86420:(e,t,a)=>{a.d(t,{diagram:()=>k});var i=a(30353),l=a(67027),r=a(93491),s=a(72912),n=a(5165),o=a(89601),c=s.UI.pie,p={sections:new Map,showData:!1,config:c},d=p.sections,g=p.showData,u=structuredClone(c),f=(0,s.K2)(()=>structuredClone(u),"getConfig"),h=(0,s.K2)(()=>{d=new Map,g=p.showData,(0,s.IU)()},"clear"),m=(0,s.K2)(({label:e,value:t})=>{d.has(e)||(d.set(e,t),s.Rm.debug(`added new section: ${e}, with value: ${t}`))},"addSection"),x=(0,s.K2)(()=>d,"getSections"),w=(0,s.K2)(e=>{g=e},"setShowData"),S=(0,s.K2)(()=>g,"getShowData"),D={getConfig:f,clear:h,setDiagramTitle:s.ke,getDiagramTitle:s.ab,setAccTitle:s.SV,getAccTitle:s.iN,setAccDescription:s.EI,getAccDescription:s.m7,addSection:m,getSections:x,setShowData:w,getShowData:S},T=(0,s.K2)((e,t)=>{(0,i.S)(e,t),t.setShowData(e.showData),e.sections.map(t.addSection)},"populateDb"),$={parse:(0,s.K2)(async e=>{let t=await (0,n.qg)("pie",e);s.Rm.debug(t),T(t,D)},"parse")},y=(0,s.K2)(e=>` + .pieCircle{ + stroke: ${e.pieStrokeColor}; + stroke-width : ${e.pieStrokeWidth}; + opacity : ${e.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${e.pieOuterStrokeColor}; + stroke-width: ${e.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${e.pieTitleTextSize}; + fill: ${e.pieTitleTextColor}; + font-family: ${e.fontFamily}; + } + .slice { + font-family: ${e.fontFamily}; + fill: ${e.pieSectionTextColor}; + font-size:${e.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${e.pieLegendTextColor}; + font-family: ${e.fontFamily}; + font-size: ${e.pieLegendTextSize}; + } +`,"getStyles"),C=(0,s.K2)(e=>{let t=[...e.entries()].map(e=>({label:e[0],value:e[1]})).sort((e,t)=>t.value-e.value);return(0,o.rLf)().value(e=>e.value)(t)},"createPieArcs"),k={parser:$,db:D,renderer:{draw:(0,s.K2)((e,t,a,i)=>{s.Rm.debug("rendering pie chart\n"+e);let n=i.db,c=(0,s.D7)(),p=(0,l.$t)(n.getConfig(),c.pie),d=(0,r.D)(t),g=d.append("g");g.attr("transform","translate(225,225)");let{themeVariables:u}=c,[f]=(0,l.I5)(u.pieOuterStrokeWidth);f??=2;let h=p.textPosition,m=(0,o.JLW)().innerRadius(0).outerRadius(185),x=(0,o.JLW)().innerRadius(185*h).outerRadius(185*h);g.append("circle").attr("cx",0).attr("cy",0).attr("r",185+f/2).attr("class","pieOuterCircle");let w=n.getSections(),S=C(w),D=[u.pie1,u.pie2,u.pie3,u.pie4,u.pie5,u.pie6,u.pie7,u.pie8,u.pie9,u.pie10,u.pie11,u.pie12],T=(0,o.UMr)(D);g.selectAll("mySlices").data(S).enter().append("path").attr("d",m).attr("fill",e=>T(e.data.label)).attr("class","pieCircle");let $=0;w.forEach(e=>{$+=e}),g.selectAll("mySlices").data(S).enter().append("text").text(e=>(e.data.value/$*100).toFixed(0)+"%").attr("transform",e=>"translate("+x.centroid(e)+")").style("text-anchor","middle").attr("class","slice"),g.append("text").text(n.getDiagramTitle()).attr("x",0).attr("y",-200).attr("class","pieTitleText");let y=g.selectAll(".legend").data(T.domain()).enter().append("g").attr("class","legend").attr("transform",(e,t)=>"translate(216,"+(22*t-22*T.domain().length/2)+")");y.append("rect").attr("width",18).attr("height",18).style("fill",T).style("stroke",T),y.data(S).append("text").attr("x",22).attr("y",14).text(e=>{let{label:t,value:a}=e.data;return n.getShowData()?`${t} [${a}]`:t});let k=512+Math.max(...y.selectAll("text").nodes().map(e=>e?.getBoundingClientRect().width??0));d.attr("viewBox",`0 0 ${k} 450`),(0,s.a$)(d,450,k,p.useMaxWidth)},"draw")},styles:y}}}]); \ No newline at end of file diff --git a/assets/js/641734b9.fde23bd4.js b/assets/js/641734b9.2bbe1956.js similarity index 71% rename from assets/js/641734b9.fde23bd4.js rename to assets/js/641734b9.2bbe1956.js index bc3fe16dde..b263794329 100644 --- a/assets/js/641734b9.fde23bd4.js +++ b/assets/js/641734b9.2bbe1956.js @@ -1,4 +1,4 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[36391],{65108:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,n.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}r(63696)},55640:(e,t,r)=>{r.d(t,{A:()=>A});var n,o,s=r(62540),c=r(63696),i=r(11750),a=r(81912),l=r(12653);let u={admonition:"admonition_o5H7",admonitionHeading:"admonitionHeading_FzoX",admonitionIcon:"admonitionIcon_rXq6",admonitionContent:"admonitionContent_Knsx"};function d({type:e,className:t,children:r}){return(0,s.jsx)("div",{className:(0,i.A)(l.G.common.admonition,l.G.common.admonitionType(e),u.admonition,t),children:r})}function p({icon:e,title:t}){return(0,s.jsxs)("div",{className:u.admonitionHeading,children:[(0,s.jsx)("span",{className:u.admonitionIcon,children:e}),t]})}function b({children:e}){return e?(0,s.jsx)("div",{className:u.admonitionContent,children:e}):null}function h(e){let{type:t,icon:r,title:n,children:o,className:c}=e;return(0,s.jsxs)(d,{type:t,className:c,children:[n||r?(0,s.jsx)(p,{title:n,icon:r}):null,(0,s.jsx)(b,{children:o})]})}let f={icon:(0,s.jsx)(function(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,s.jsx)(a.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function m(e){var t,r;return(0,s.jsx)(h,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},f,e),r=r={className:(0,i.A)("alert alert--secondary",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let y={icon:(0,s.jsx)(function(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,s.jsx)(a.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function j(e){var t,r;return(0,s.jsx)(h,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},y,e),r=r={className:(0,i.A)("alert alert--success",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var g=r(65108);let O={icon:(0,s.jsx)(g.A,{}),title:(0,s.jsx)(a.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function v(e){var t,r;return(0,s.jsx)(h,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},O,e),r=r={className:(0,i.A)("alert alert--info",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function w(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 16 16"},e),r=r={children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let x={icon:(0,s.jsx)(w,{}),title:(0,s.jsx)(a.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})},P={icon:(0,s.jsx)(function(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,s.jsx)(a.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})},S={icon:(0,s.jsx)(w,{}),title:(0,s.jsx)(a.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};function k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let D=k({},{note:m,tip:j,info:v,warning:function(e){var t,r;return(0,s.jsx)(h,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},x,e),r=r={className:(0,i.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},danger:function(e){var t,r;return(0,s.jsx)(h,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},P,e),r=r={className:(0,i.A)("alert alert--danger",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},{secondary:e=>(0,s.jsx)(m,k({title:"secondary"},e)),important:e=>(0,s.jsx)(v,k({title:"important"},e)),success:e=>(0,s.jsx)(j,k({title:"success"},e)),caution:function(e){var t,r;return(0,s.jsx)(h,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},S,e),r=r={className:(0,i.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}});var C=r(37425);let N=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},D),o=o={"my-custom-admonition":function(e){return(0,s.jsxs)("div",{style:{border:"solid red",padding:10},children:[(0,s.jsx)(C.A,{as:"h5",style:{color:"blue",fontSize:30},children:e.title}),(0,s.jsx)("div",{children:e.children})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function A(e){var t;let r=function(e){var t,r,n;let{mdxAdmonitionTitle:o,rest:i}=function(e){let t=c.Children.toArray(e),r=t.find(e=>c.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),n=t.filter(e=>e!==r);return{mdxAdmonitionTitle:null==r?void 0:r.props.children,rest:n.length>0?(0,s.jsx)(s.Fragment,{children:n}):null}}(e.children),a=null!==(t=e.title)&&void 0!==t?t:o;return r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e,a&&{title:a}),n=n={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}(e),n=N[t=r.type]||(console.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),N.info);return(0,s.jsx)(n,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r))}},15995:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(62540);r(63696);var o=r(11750);function s({children:e,hidden:t,className:r}){return(0,n.jsx)("div",{role:"tabpanel",className:(0,o.A)("tabItem_pnkT",r),hidden:t,children:e})}},27446:(e,t,r)=>{r.d(t,{A:()=>O});var n=r(62540),o=r(63696),s=r(11750),c=r(7846),i=r(49519),a=r(96439),l=r(19739),u=r(66904),d=r(79244);function p(e){var t,r;return null!==(r=null===(t=o.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,o.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==r?r:[]}function b({value:e,tabValues:t}){return t.some(t=>t.value===e)}var h=r(10709);function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function m(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function y({className:e,block:t,selectedValue:r,selectValue:o,tabValues:i}){let a=[],{blockElementScrollPositionUntilNextRender:l}=(0,c.a_)(),u=e=>{let t=e.currentTarget,n=i[a.indexOf(t)].value;n!==r&&(l(t),o(n))},d=e=>{var t,r;let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let r=a.indexOf(e.currentTarget)+1;n=null!==(t=a[r])&&void 0!==t?t:a[0];break}case"ArrowLeft":{let t=a.indexOf(e.currentTarget)-1;n=null!==(r=a[t])&&void 0!==r?r:a[a.length-1]}}null==n||n.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":t},e),children:i.map(({value:e,label:t,attributes:o})=>(0,n.jsx)("li",m(f({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,ref:e=>a.push(e),onKeyDown:d,onClick:u},o),{className:(0,s.A)("tabs__item","tabItem_AQgk",null==o?void 0:o.className,{"tabs__item--active":r===e}),children:null!=t?t:e}),e))})}function j({lazy:e,children:t,selectedValue:r}){let c=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=c.find(e=>e.props.value===r);return e?(0,o.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:c.map((e,t)=>(0,o.cloneElement)(e,{key:t,hidden:e.props.value!==r}))})}function g(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:n}=e,s=function(e){let{values:t,children:r}=e;return(0,o.useMemo)(()=>{let e=null!=t?t:p(r).map(({props:{value:e,label:t,attributes:r,default:n}})=>({value:e,label:t,attributes:r,default:n}));return!function(e){let t=(0,u.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,r])}(e),[c,h]=(0,o.useState)(()=>(function({defaultValue:e,tabValues:t}){var r;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!b({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let n=null!==(r=t.find(e=>e.default))&&void 0!==r?r:t[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:t,tabValues:s})),[f,m]=function({queryString:e=!1,groupId:t}){let r=(0,i.W6)(),n=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,l.aZ)(n),(0,o.useCallback)(e=>{var t,o;if(!n)return;let s=new URLSearchParams(r.location.search);s.set(n,e),r.replace((t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r.location),o=o={search:s.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}),t))},[n,r])]}({queryString:r,groupId:n}),[y,j]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[r,n]=(0,d.Dv)(t);return[r,(0,o.useCallback)(e=>{t&&n.set(e)},[t,n])]}({groupId:n}),g=(()=>{let e=null!=f?f:y;return b({value:e,tabValues:s})?e:null})();return(0,a.A)(()=>{g&&h(g)},[g]),{selectedValue:c,selectValue:(0,o.useCallback)(e=>{if(!b({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);h(e),m(e),j(e)},[m,j,s]),tabValues:s}}(e);return(0,n.jsxs)("div",{className:(0,s.A)("tabs-container","tabList_Qoir"),children:[(0,n.jsx)(y,f({},t,e)),(0,n.jsx)(j,f({},t,e))]})}function O(e){let t=(0,h.A)();return(0,n.jsx)(g,m(f({},e),{children:p(e.children)}),String(t))}},40576:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(62540);r(63696);var o=r(10709);function s({children:e,fallback:t}){return(0,o.A)()?(0,n.jsx)(n.Fragment,{children:null==e?void 0:e()}):null!=t?t:null}},18764:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(62540);r(63696);var o=r(70361);function s({url:e}){return(0,n.jsx)("div",{style:{padding:10},children:(0,n.jsx)(o.A,{url:e,style:{minWidth:"min(100%,45vw)",width:800,maxWidth:"100%",overflow:"hidden"},bodyStyle:{padding:0},children:(0,n.jsx)("iframe",{src:e,title:e,style:{display:"block",width:"100%",height:300}})})})}},70361:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(11750);let s="dot_giz1",c="bar_rrRL";function i({children:e,minHeight:t,url:r="http://localhost:3000",style:i,bodyStyle:a}){var l,u;return(0,n.jsxs)("div",{className:"browserWindow_my1Q",style:(l=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},i),u=u={minHeight:t},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(u)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(u)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(u,e))}),l),children:[(0,n.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,n.jsxs)("div",{className:"buttons_uHc7",children:[(0,n.jsx)("span",{className:s,style:{background:"#f25f58"}}),(0,n.jsx)("span",{className:s,style:{background:"#fbbe3c"}}),(0,n.jsx)("span",{className:s,style:{background:"#58cb42"}})]}),(0,n.jsx)("div",{className:(0,o.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:r}),(0,n.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:c}),(0,n.jsx)("span",{className:c}),(0,n.jsx)("span",{className:c})]})})]}),(0,n.jsx)("div",{className:"browserWindowBody_Idgs",style:a,children:e})]})}},92857:(e,t,r)=>{r.d(t,{A:()=>y});var n=r(62540),o=r(63696),s=r(11750),c=r(44308),i=r.n(c),a=r(36372),l=r(81912),u=r(66659),d=r(55887),p=r(55640),b=r(92112);let h={color:"color_mVUL",input:"input_HUC3",colorInput:"colorInput_C1YB",colorTable:"colorTable_Js7s"};function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function m(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function y(){let{colorMode:e,setColorMode:t}=(0,u.G)(),r="dark"===e,c=r?b.Yn:b.Iw,y=r?b.a9:b.yE,[j,g]=(0,o.useState)(c),[O,v]=(0,o.useState)(c),[w,x]=(0,o.useState)(y),[P,S]=(0,o.useState)(b.TM),[k,D]=(0,o.useState)(r?b.Wl:b.io);function C(e){let t=e.target.value.replace(/^(?=[^#])/,"#");g(t);try{v(i()(t).hex())}catch(e){}}return(0,o.useEffect)(()=>{D(r?b.Wl:b.io)},[r]),(0,o.useEffect)(()=>{var e,t,r,n,o;let s=JSON.parse(null!==(e=k.get())&&void 0!==e?e:"{}");g(null!==(t=s.baseColor)&&void 0!==t?t:c),v(null!==(r=s.baseColor)&&void 0!==r?r:c),x(null!==(n=s.background)&&void 0!==n?n:y),S(null!==(o=s.shades)&&void 0!==o?o:b.TM)},[k,y,c]),(0,o.useEffect)(()=>{(0,b.oP)({baseColor:O,background:w,shades:P},r),k.set(JSON.stringify({baseColor:O,background:w,shades:P}))},[O,w,P,k,r]),(0,n.jsxs)("div",{children:[(0,n.jsx)(p.A,{type:"tip",children:(0,n.jsx)("p",{children:(0,n.jsx)(l.A,{id:"colorGenerator.tip.body",values:{wcagLink:(0,n.jsx)(a.A,{href:"https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast",children:(0,n.jsx)(l.A,{id:"colorGenerator.tip.body.wcagLink.label",children:"WCAG-AA contrast ratio"})})},children:"Aim for at least {wcagLink} for the primary color to ensure readability. Use the Docusaurus website itself to preview how your color palette would look like. You can use alternative palettes in dark mode because one color doesn't usually work in both light and dark mode."})})}),(0,n.jsxs)("p",{children:[(0,n.jsx)("label",{htmlFor:"primary_color",children:(0,n.jsx)("strong",{className:"margin-right--sm",children:(0,n.jsx)(l.A,{id:"colorGenerator.inputs.primary.label",children:"Primary Color:"})})})," ",(0,n.jsx)("input",{id:"primary_color",type:"text",className:(0,s.A)(h.input,"margin-right--sm"),value:j,onChange:C}),(0,n.jsx)("input",{type:"color",className:h.colorInput,value:O,onChange:C}),(0,n.jsx)("button",{type:"button",className:"clean-btn button button--primary margin-left--md",onClick:()=>t(r?"light":"dark"),children:(0,n.jsx)(l.A,{id:"colorGenerator.inputs.modeToggle.label",values:{colorMode:r?(0,n.jsx)(l.A,{id:"colorGenerator.inputs.modeToggle.label.colorMode.light",children:"light"}):(0,n.jsx)(l.A,{id:"colorGenerator.inputs.modeToggle.label.colorMode.dark",children:"dark"})},children:"Edit {colorMode} mode"})}),(0,n.jsx)("button",{type:"button",className:"clean-btn button button--secondary margin-left--md",onClick:()=>{g(c),v(c),x(y),S(b.TM)},children:(0,n.jsx)(l.A,{id:"colorGenerator.inputs.resetButton.label",children:"Reset"})})]}),(0,n.jsxs)("p",{children:[(0,n.jsx)("label",{htmlFor:"background_color",children:(0,n.jsx)("strong",{className:"margin-right--sm",children:(0,n.jsx)(l.A,{id:"colorGenerator.inputs.background.label",children:"Background:"})})}),(0,n.jsx)("input",{id:"background_color",type:"color",className:(0,s.A)(h.colorInput,"margin-right--sm"),value:w,onChange:e=>{x(e.target.value)}})]}),(0,n.jsx)("div",{children:(0,n.jsxs)("table",{className:h.colorTable,children:[(0,n.jsx)("thead",{children:(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{children:(0,n.jsx)(l.A,{id:"colorGenerator.table.heading1",children:"CSS Variable Name"})}),(0,n.jsx)("th",{children:(0,n.jsx)(l.A,{id:"colorGenerator.table.heading2",description:"This column is the color's representation in hex",children:"Hex"})}),(0,n.jsx)("th",{children:(0,n.jsx)(l.A,{id:"colorGenerator.table.heading3",description:"This column is the adjusted shades' adjustment values relative to the primary color",children:"Adjustment"})}),(0,n.jsx)("th",{children:(0,n.jsx)(l.A,{id:"colorGenerator.table.heading4",description:"This column is WCAG contrast rating: AAA, AA, Fail",children:"Contrast Rating"})})]})}),(0,n.jsx)("tbody",{children:(0,b.jv)(P,O).sort((e,t)=>e.displayOrder-t.displayOrder).map(e=>{let{variableName:t,adjustment:r,adjustmentInput:o,hex:s}=e;return(0,n.jsxs)("tr",{children:[(0,n.jsx)("td",{children:(0,n.jsx)("code",{children:t})}),(0,n.jsxs)("td",{children:[(0,n.jsx)("span",{className:h.color,style:{backgroundColor:s}}),(0,n.jsx)("code",{className:"margin-left--sm",children:s.toLowerCase()})]}),(0,n.jsx)("td",{children:"--ifm-color-primary"===t?0:(0,n.jsx)("input",{"aria-label":`${t} CSS variable name`,className:h.input,type:"number",value:o,onChange:e=>{let n=parseFloat(e.target.value);S(m(f({},P),{[t]:m(f({},P[t]),{adjustmentInput:e.target.value,adjustment:Number.isNaN(n)?r:n/100})}))}})}),(0,n.jsx)("td",{style:{fontSize:"medium",backgroundColor:w,color:s},children:(0,n.jsx)("b",{children:function(e,t){let r=i()(e).contrast(i()(t));return r>7?"AAA \u{1F3C5}":r>4.5?"AA \u{1F44D}":"Fail \u{1F534}"}(s,w)})})]},t)})})]})}),(0,n.jsx)("p",{children:(0,n.jsx)(l.A,{id:"colorGenerator.text",values:{cssPath:(0,n.jsx)("code",{children:"src/css/custom.css"})},children:"Replace the variables in {cssPath} with these new variables."})}),(0,n.jsx)(d.A,{className:"language-css",title:"/src/css/custom.css",children:`${r?"[data-theme='dark']":":root"} { +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[36391],{65108:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,n.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}r(63696)},55640:(e,t,r)=>{r.d(t,{A:()=>N});var n,o,s=r(62540),c=r(63696),i=r(11750),a=r(81912),l=r(12653);let u={admonition:"admonition_o5H7",admonitionHeading:"admonitionHeading_FzoX",admonitionIcon:"admonitionIcon_rXq6",admonitionContent:"admonitionContent_Knsx"};function d({type:e,className:t,children:r}){return(0,s.jsx)("div",{className:(0,i.A)(l.G.common.admonition,l.G.common.admonitionType(e),u.admonition,t),children:r})}function p({icon:e,title:t}){return(0,s.jsxs)("div",{className:u.admonitionHeading,children:[(0,s.jsx)("span",{className:u.admonitionIcon,children:e}),t]})}function b({children:e}){return e?(0,s.jsx)("div",{className:u.admonitionContent,children:e}):null}function h(e){let{type:t,icon:r,title:n,children:o,className:c}=e;return(0,s.jsxs)(d,{type:t,className:c,children:[n||r?(0,s.jsx)(p,{title:n,icon:r}):null,(0,s.jsx)(b,{children:o})]})}let f={icon:(0,s.jsx)(function(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,s.jsx)(a.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function m(e){var t,r;return(0,s.jsx)(h,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},f,e),r=r={className:(0,i.A)("alert alert--secondary",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let y={icon:(0,s.jsx)(function(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,s.jsx)(a.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function j(e){var t,r;return(0,s.jsx)(h,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},y,e),r=r={className:(0,i.A)("alert alert--success",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var g=r(65108);let O={icon:(0,s.jsx)(g.A,{}),title:(0,s.jsx)(a.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function v(e){var t,r;return(0,s.jsx)(h,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},O,e),r=r={className:(0,i.A)("alert alert--info",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function w(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 16 16"},e),r=r={children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let x={icon:(0,s.jsx)(w,{}),title:(0,s.jsx)(a.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})},P={icon:(0,s.jsx)(function(e){var t,r;return(0,s.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,s.jsx)(a.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})},S={icon:(0,s.jsx)(w,{}),title:(0,s.jsx)(a.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};function k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let D=k({},{note:m,tip:j,info:v,warning:function(e){var t,r;return(0,s.jsx)(h,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},x,e),r=r={className:(0,i.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},danger:function(e){var t,r;return(0,s.jsx)(h,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},P,e),r=r={className:(0,i.A)("alert alert--danger",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},{secondary:e=>(0,s.jsx)(m,k({title:"secondary"},e)),important:e=>(0,s.jsx)(v,k({title:"important"},e)),success:e=>(0,s.jsx)(j,k({title:"success"},e)),caution:function(e){var t,r;return(0,s.jsx)(h,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},S,e),r=r={className:(0,i.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}});var C=r(37425);let A=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},D),o=o={"my-custom-admonition":function(e){return(0,s.jsxs)("div",{style:{border:"solid red",padding:10},children:[(0,s.jsx)(C.A,{as:"h5",style:{color:"blue",fontSize:30},children:e.title}),(0,s.jsx)("div",{children:e.children})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function N(e){var t;let r=function(e){var t,r,n;let{mdxAdmonitionTitle:o,rest:i}=function(e){let t=c.Children.toArray(e),r=t.find(e=>c.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),n=t.filter(e=>e!==r);return{mdxAdmonitionTitle:null==r?void 0:r.props.children,rest:n.length>0?(0,s.jsx)(s.Fragment,{children:n}):null}}(e.children),a=null!==(t=e.title)&&void 0!==t?t:o;return r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e,a&&{title:a}),n=n={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}(e),n=A[t=r.type]||(console.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),A.info);return(0,s.jsx)(n,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r))}},15995:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(62540);r(63696);var o=r(11750);function s({children:e,hidden:t,className:r}){return(0,n.jsx)("div",{role:"tabpanel",className:(0,o.A)("tabItem_pnkT",r),hidden:t,children:e})}},27446:(e,t,r)=>{r.d(t,{A:()=>O});var n=r(62540),o=r(63696),s=r(11750),c=r(7846),i=r(49519),a=r(96439),l=r(19739),u=r(66904),d=r(79244);function p(e){var t,r;return null!==(r=null===(t=o.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,o.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==r?r:[]}function b({value:e,tabValues:t}){return t.some(t=>t.value===e)}var h=r(10709);function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function m(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function y({className:e,block:t,selectedValue:r,selectValue:o,tabValues:i}){let a=[],{blockElementScrollPositionUntilNextRender:l}=(0,c.a_)(),u=e=>{let t=e.currentTarget,n=i[a.indexOf(t)].value;n!==r&&(l(t),o(n))},d=e=>{var t,r;let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let r=a.indexOf(e.currentTarget)+1;n=null!==(t=a[r])&&void 0!==t?t:a[0];break}case"ArrowLeft":{let t=a.indexOf(e.currentTarget)-1;n=null!==(r=a[t])&&void 0!==r?r:a[a.length-1]}}null==n||n.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":t},e),children:i.map(({value:e,label:t,attributes:o})=>(0,n.jsx)("li",m(f({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,ref:e=>a.push(e),onKeyDown:d,onClick:u},o),{className:(0,s.A)("tabs__item","tabItem_AQgk",null==o?void 0:o.className,{"tabs__item--active":r===e}),children:null!=t?t:e}),e))})}function j({lazy:e,children:t,selectedValue:r}){let c=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=c.find(e=>e.props.value===r);return e?(0,o.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:c.map((e,t)=>(0,o.cloneElement)(e,{key:t,hidden:e.props.value!==r}))})}function g(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:n}=e,s=function(e){let{values:t,children:r}=e;return(0,o.useMemo)(()=>{let e=null!=t?t:p(r).map(({props:{value:e,label:t,attributes:r,default:n}})=>({value:e,label:t,attributes:r,default:n}));return!function(e){let t=(0,u.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,r])}(e),[c,h]=(0,o.useState)(()=>(function({defaultValue:e,tabValues:t}){var r;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!b({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let n=null!==(r=t.find(e=>e.default))&&void 0!==r?r:t[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:t,tabValues:s})),[f,m]=function({queryString:e=!1,groupId:t}){let r=(0,i.W6)(),n=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,l.aZ)(n),(0,o.useCallback)(e=>{var t,o;if(!n)return;let s=new URLSearchParams(r.location.search);s.set(n,e),r.replace((t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r.location),o=o={search:s.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}),t))},[n,r])]}({queryString:r,groupId:n}),[y,j]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[r,n]=(0,d.Dv)(t);return[r,(0,o.useCallback)(e=>{t&&n.set(e)},[t,n])]}({groupId:n}),g=(()=>{let e=null!=f?f:y;return b({value:e,tabValues:s})?e:null})();return(0,a.A)(()=>{g&&h(g)},[g]),{selectedValue:c,selectValue:(0,o.useCallback)(e=>{if(!b({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);h(e),m(e),j(e)},[m,j,s]),tabValues:s}}(e);return(0,n.jsxs)("div",{className:(0,s.A)("tabs-container","tabList_Qoir"),children:[(0,n.jsx)(y,f({},t,e)),(0,n.jsx)(j,f({},t,e))]})}function O(e){let t=(0,h.A)();return(0,n.jsx)(g,m(f({},e),{children:p(e.children)}),String(t))}},40576:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(62540);r(63696);var o=r(10709);function s({children:e,fallback:t}){return(0,o.A)()?(0,n.jsx)(n.Fragment,{children:null==e?void 0:e()}):null!=t?t:null}},18764:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(62540);r(63696);var o=r(70361);function s({url:e}){return(0,n.jsx)("div",{style:{padding:10},children:(0,n.jsx)(o.A,{url:e,style:{minWidth:"min(100%,45vw)",width:800,maxWidth:"100%",overflow:"hidden"},bodyStyle:{padding:0},children:(0,n.jsx)("iframe",{src:e,title:e,style:{display:"block",width:"100%",height:300}})})})}},70361:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(11750);let s="dot_giz1",c="bar_rrRL";function i({children:e,minHeight:t,url:r="http://localhost:3000",style:i,bodyStyle:a}){var l,u;return(0,n.jsxs)("div",{className:"browserWindow_my1Q",style:(l=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},i),u=u={minHeight:t},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(u)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(u)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(u,e))}),l),children:[(0,n.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,n.jsxs)("div",{className:"buttons_uHc7",children:[(0,n.jsx)("span",{className:s,style:{background:"#f25f58"}}),(0,n.jsx)("span",{className:s,style:{background:"#fbbe3c"}}),(0,n.jsx)("span",{className:s,style:{background:"#58cb42"}})]}),(0,n.jsx)("div",{className:(0,o.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:r}),(0,n.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:c}),(0,n.jsx)("span",{className:c}),(0,n.jsx)("span",{className:c})]})})]}),(0,n.jsx)("div",{className:"browserWindowBody_Idgs",style:a,children:e})]})}},92857:(e,t,r)=>{r.d(t,{A:()=>y});var n=r(62540),o=r(63696),s=r(11750),c=r(44308),i=r.n(c),a=r(36372),l=r(81912),u=r(66659),d=r(55887),p=r(55640),b=r(92112);let h={color:"color_mVUL",input:"input_HUC3",colorInput:"colorInput_C1YB",colorTable:"colorTable_Js7s"};function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function m(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function y(){let{colorMode:e,setColorMode:t}=(0,u.G)(),r="dark"===e,c=r?b.Yn:b.Iw,y=r?b.a9:b.yE,[j,g]=(0,o.useState)(c),[O,v]=(0,o.useState)(c),[w,x]=(0,o.useState)(y),[P,S]=(0,o.useState)(b.TM),[k,D]=(0,o.useState)(r?b.Wl:b.io);function C(e){let t=e.target.value.replace(/^(?=[^#])/,"#");g(t);try{v(i()(t).hex())}catch(e){}}return(0,o.useEffect)(()=>{D(r?b.Wl:b.io)},[r]),(0,o.useEffect)(()=>{var e,t,r,n,o;let s=JSON.parse(null!==(e=k.get())&&void 0!==e?e:"{}");g(null!==(t=s.baseColor)&&void 0!==t?t:c),v(null!==(r=s.baseColor)&&void 0!==r?r:c),x(null!==(n=s.background)&&void 0!==n?n:y),S(null!==(o=s.shades)&&void 0!==o?o:b.TM)},[k,y,c]),(0,o.useEffect)(()=>{(0,b.oP)({baseColor:O,background:w,shades:P},r),k.set(JSON.stringify({baseColor:O,background:w,shades:P}))},[O,w,P,k,r]),(0,n.jsxs)("div",{children:[(0,n.jsx)(p.A,{type:"tip",children:(0,n.jsx)("p",{children:(0,n.jsx)(l.A,{id:"colorGenerator.tip.body",values:{wcagLink:(0,n.jsx)(a.A,{href:"https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast",children:(0,n.jsx)(l.A,{id:"colorGenerator.tip.body.wcagLink.label",children:"WCAG-AA contrast ratio"})})},children:"Aim for at least {wcagLink} for the primary color to ensure readability. Use the Docusaurus website itself to preview how your color palette would look like. You can use alternative palettes in dark mode because one color doesn't usually work in both light and dark mode."})})}),(0,n.jsxs)("p",{children:[(0,n.jsx)("label",{htmlFor:"primary_color",children:(0,n.jsx)("strong",{className:"margin-right--sm",children:(0,n.jsx)(l.A,{id:"colorGenerator.inputs.primary.label",children:"Primary Color:"})})})," ",(0,n.jsx)("input",{id:"primary_color",type:"text",className:(0,s.A)(h.input,"margin-right--sm"),value:j,onChange:C}),(0,n.jsx)("input",{type:"color",className:h.colorInput,value:O,onChange:C}),(0,n.jsx)("button",{type:"button",className:"clean-btn button button--primary margin-left--md",onClick:()=>t(r?"light":"dark"),children:(0,n.jsx)(l.A,{id:"colorGenerator.inputs.modeToggle.label",values:{colorMode:r?(0,n.jsx)(l.A,{id:"colorGenerator.inputs.modeToggle.label.colorMode.light",children:"light"}):(0,n.jsx)(l.A,{id:"colorGenerator.inputs.modeToggle.label.colorMode.dark",children:"dark"})},children:"Edit {colorMode} mode"})}),(0,n.jsx)("button",{type:"button",className:"clean-btn button button--secondary margin-left--md",onClick:()=>{g(c),v(c),x(y),S(b.TM)},children:(0,n.jsx)(l.A,{id:"colorGenerator.inputs.resetButton.label",children:"Reset"})})]}),(0,n.jsxs)("p",{children:[(0,n.jsx)("label",{htmlFor:"background_color",children:(0,n.jsx)("strong",{className:"margin-right--sm",children:(0,n.jsx)(l.A,{id:"colorGenerator.inputs.background.label",children:"Background:"})})}),(0,n.jsx)("input",{id:"background_color",type:"color",className:(0,s.A)(h.colorInput,"margin-right--sm"),value:w,onChange:e=>{x(e.target.value)}})]}),(0,n.jsx)("div",{children:(0,n.jsxs)("table",{className:h.colorTable,children:[(0,n.jsx)("thead",{children:(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{children:(0,n.jsx)(l.A,{id:"colorGenerator.table.heading1",children:"CSS Variable Name"})}),(0,n.jsx)("th",{children:(0,n.jsx)(l.A,{id:"colorGenerator.table.heading2",description:"This column is the color's representation in hex",children:"Hex"})}),(0,n.jsx)("th",{children:(0,n.jsx)(l.A,{id:"colorGenerator.table.heading3",description:"This column is the adjusted shades' adjustment values relative to the primary color",children:"Adjustment"})}),(0,n.jsx)("th",{children:(0,n.jsx)(l.A,{id:"colorGenerator.table.heading4",description:"This column is WCAG contrast rating: AAA, AA, Fail",children:"Contrast Rating"})})]})}),(0,n.jsx)("tbody",{children:(0,b.jv)(P,O).sort((e,t)=>e.displayOrder-t.displayOrder).map(e=>{let{variableName:t,adjustment:r,adjustmentInput:o,hex:s}=e;return(0,n.jsxs)("tr",{children:[(0,n.jsx)("td",{children:(0,n.jsx)("code",{children:t})}),(0,n.jsxs)("td",{children:[(0,n.jsx)("span",{className:h.color,style:{backgroundColor:s}}),(0,n.jsx)("code",{className:"margin-left--sm",children:s.toLowerCase()})]}),(0,n.jsx)("td",{children:"--ifm-color-primary"===t?0:(0,n.jsx)("input",{"aria-label":`${t} CSS variable name`,className:h.input,type:"number",value:o,onChange:e=>{let n=parseFloat(e.target.value);S(m(f({},P),{[t]:m(f({},P[t]),{adjustmentInput:e.target.value,adjustment:Number.isNaN(n)?r:n/100})}))}})}),(0,n.jsx)("td",{style:{fontSize:"medium",backgroundColor:w,color:s},children:(0,n.jsx)("b",{children:function(e,t){let r=i()(e).contrast(i()(t));return r>7?"AAA \u{1F3C5}":r>4.5?"AA \u{1F44D}":"Fail \u{1F534}"}(s,w)})})]},t)})})]})}),(0,n.jsx)("p",{children:(0,n.jsx)(l.A,{id:"colorGenerator.text",values:{cssPath:(0,n.jsx)("code",{children:"src/css/custom.css"})},children:"Replace the variables in {cssPath} with these new variables."})}),(0,n.jsx)(d.A,{className:"language-css",title:"/src/css/custom.css",children:`${r?"[data-theme='dark']":":root"} { ${(0,b.jv)(P,O).sort((e,t)=>e.codeOrder-t.codeOrder).map(e=>` ${e.variableName}: ${e.hex.toLowerCase()};`).join("\n")}${w!==y?` --ifm-background-color: ${w};`:""} -}`})]})}},55887:(e,t,r)=>{r.d(t,{A:()=>ei});var n,o,s,c={};r.r(c),r.d(c,{ButtonExample:()=>A});var i=r(62540),a=r(63696),l=r(11750),u=r(10709),d=r(55152),p=r(81912),b=r(99468),h=r(40576),f=r(1495),m=r(66659),y=r(25436);function j(){let{prism:e}=(0,y.p)(),{colorMode:t}=(0,m.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var g=r(43758);function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,i.jsx)("div",{className:(0,l.A)("playgroundHeader_Tvsk"),children:e})}function w(){return(0,i.jsx)("div",{children:"Loading..."})}function x(){return(0,i.jsx)(h.A,{fallback:(0,i.jsx)(w,{}),children:()=>(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(g.A,{fallback:e=>(0,i.jsx)(f.MN,O({},e)),children:(0,i.jsx)(d.pA,{})}),(0,i.jsx)(d.p1,{})]})})}function P(){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(v,{children:(0,i.jsx)(p.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,i.jsx)("div",{className:"playgroundPreview_mApW",children:(0,i.jsx)(x,{})})]})}function S(){let e=(0,u.A)();return(0,i.jsx)(d.w,{className:"playgroundEditor_TySg"},String(e))}function k(){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(v,{children:(0,i.jsx)(p.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,i.jsx)(S,{})]})}let D=e=>`${e};`;function C(e){var t,r,n,o,{children:s,transformCode:c}=e,a=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)r=s[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:l}}=(0,b.A)(),{liveCodeBlock:{playgroundPosition:u}}=l,p=j(),h=null!==(o=null===(n=a.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,i.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,i.jsx)(d.Q,(t=O({code:null==s?void 0:s.replace(/\n$/,""),noInline:h,transformCode:null!=c?c:D,theme:p},a),r=r={children:"top"===u?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(P,{}),(0,i.jsx)(k,{})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(k,{}),(0,i.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function N(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function A(e){var t,r;return(0,i.jsx)("button",(t=N({type:"button"},e),r=r={style:N({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let E=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:a},a,c);var T=r(12653),B=r(19934),I=r.n(B);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),_=RegExp("\\{(?<range>[\\d,-]+)\\}"),M={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},z=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},M),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),R=Object.keys(M);function W(e,t){let r=e.map(e=>{let{start:r,end:n}=z[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function H(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)r=s[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let s=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(j());return(0,i.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:s,className:(0,l.A)(o.className,"codeBlockContainer_jDV4",T.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let G={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function $({children:e,className:t}){return(0,i.jsx)(H,{as:"pre",tabIndex:0,className:(0,l.A)(G.codeBlockStandalone,"thin-scrollbar",t),children:(0,i.jsx)("code",{className:G.codeBlockLines,children:e})})}var F=r(2550);let V={attributes:!0,characterData:!0,childList:!0,subtree:!0};var q=r(27663);let U={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function Y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function J({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var s,c;1===e.length&&"\n"===e[0].content&&(e[0].content="");let a=n({line:e,className:(0,l.A)(t,r&&U.codeLine)}),u=e.map((e,t)=>(0,i.jsx)("span",Y({},o({token:e})),t));return(0,i.jsxs)("span",(s=Y({},a),c=c={children:[r?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:U.codeLineNumber}),(0,i.jsx)("span",{className:U.codeLineContent,children:u})]}):u,(0,i.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(c)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(c)).forEach(function(e){Object.defineProperty(s,e,Object.getOwnPropertyDescriptor(c,e))}),s))}var Q=r(936);function X(e){var t,r;return(0,i.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,i.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function Z(e){var t,r;return(0,i.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,i.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,a.useState)(!1),o=(0,a.useRef)(void 0),s=(0,a.useCallback)(()=>{(0,Q.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,a.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,i.jsx)("button",{type:"button","aria-label":r?(0,p.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,l.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:s,children:(0,i.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,i.jsx)(X,{className:K.copyButtonIcon}),(0,i.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,i.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,i.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,p.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,i.jsx)("button",{type:"button",onClick:t,className:(0,l.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,i.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:s}){var c,u,d,p;let{prism:{defaultLanguage:b,magicComments:h}}=(0,y.p)(),f=null==(u=null!==(c=null!=s?s:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==c?c:b)?void 0:u.toLowerCase(),m=j(),g=function(){let[e,t]=(0,a.useState)(!1),[r,n]=(0,a.useState)(!1),o=(0,a.useRef)(null),s=(0,a.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),c=(0,a.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,a.useState)(),o=(0,a.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,a.useEffect)(()=>{o()},[o]),function(e,t,r=V){let n=(0,F._q)(t),o=(0,F.Be)(r);(0,a.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,c),(0,a.useEffect)(()=>{c()},[e,c]),(0,a.useEffect)(()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)}),[c]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:s}}(),O=(null!==(p=null==r?void 0:null===(d=r.match(L))||void 0===d?void 0:d.groups.title)&&void 0!==p?p:"")||n,{lineClassNames:v,code:w}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:s}=t;if(s&&_.test(s)){let e=s.match(_).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${s}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(I()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return W(["js","jsBlock"],t);case"jsx":case"tsx":return W(["js","jsBlock","jsx"],t);case"html":return W(["js","jsBlock","html"],t);case"python":case"py":case"bash":return W(["bash"],t);case"markdown":case"md":return W(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return W(["tex"],t);case"lua":case"haskell":case"sql":return W(["lua"],t);case"wasm":return W(["wasm"],t);case"vb":case"vba":case"visual-basic":return W(["vb","rem"],t);case"vbnet":return W(["vbnet","rem"],t);case"batch":return W(["rem"],t);case"basic":return W(["rem","f90"],t);case"fsharp":return W(["js","ml"],t);case"ocaml":case"sml":return W(["ml"],t);case"fortran":return W(["f90"],t);case"cobol":return W(["cobol"],t);default:return W(R,t)}}(n,o),i=r.split("\n"),a=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),l=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),d=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<i.length;){let t=i[e].match(c);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);l[r]?a[l[r]].range+=`${e},`:u[r]?a[u[r]].start=e:d[r]&&(a[d[r]].range+=`${a[d[r]].start}-${e-1},`),i.splice(e,1)}r=i.join("\n");let p={};return Object.entries(a).forEach(([e,{range:t}])=>{I()(t).forEach(t=>{var r;null!==(r=p[t])&&void 0!==r||(p[t]=[]),p[t].push(e)})}),{lineClassNames:p,code:r}}(e,{metastring:r,language:f,magicComments:h}),x=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,i.jsxs)(H,{as:"div",className:(0,l.A)(t,f&&!t.includes(`language-${f}`)&&`language-${f}`),children:[O&&(0,i.jsx)("div",{className:G.codeBlockTitle,children:O}),(0,i.jsxs)("div",{className:G.codeBlockContent,children:[(0,i.jsx)(q.f4,{theme:m,code:w,language:null!=f?f:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,i.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,l.A)(e,G.codeBlock,"thin-scrollbar"),style:t,children:(0,i.jsx)("code",{className:(0,l.A)(G.codeBlockLines,x&&G.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,i.jsx)(J,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:x},t))})})}),(0,i.jsxs)("div",{className:G.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,i.jsx)(en,{className:G.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,i.jsx)(ee,{className:G.codeButton,code:w})]})]})]})}function es(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let ec=(s=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)r=s[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let s=(0,u.A)(),c=a.Children.toArray(n).some(e=>(0,a.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,l="string"==typeof c?eo:$;return(0,i.jsx)(l,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:c},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(s))},function(e){return e.live?(0,i.jsx)(C,es({scope:E},e)):(0,i.jsx)(s,es({},e))});function ei(e){return(0,i.jsx)(ec,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}},16616:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>b,contentTitle:()=>p,default:()=>m,frontMatter:()=>d,metadata:()=>n,toc:()=>h});let n=JSON.parse('{"id":"styling-layout","title":"Styling and Layout","description":"A Docusaurus site is a pre-rendered single-page React application. You can style it the way you style React apps.","source":"@site/docs/styling-layout.mdx","sourceDirName":".","slug":"/styling-layout","permalink":"/docs/styling-layout","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/styling-layout.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"A Docusaurus site is a pre-rendered single-page React application. You can style it the way you style React apps."},"sidebar":"docs","previous":{"title":"Head metadata","permalink":"/docs/markdown-features/head-metadata"},"next":{"title":"Swizzling","permalink":"/docs/swizzling"}}');var o=r(62540),s=r(43023),c=r(27446),i=r(15995),a=r(92857),l=r(18764),u=r(55887);let d={description:"A Docusaurus site is a pre-rendered single-page React application. You can style it the way you style React apps."},p="Styling and Layout",b={},h=[{value:"Global styles",id:"global-styles",level:2},{value:"Theme Class Names",id:"theme-class-names",level:3},{value:"Styling your site with Infima",id:"styling-your-site-with-infima",level:3},{value:"Dark Mode",id:"dark-mode",level:3},{value:"Data Attributes",id:"data-attributes",level:3},{value:"Mobile View",id:"mobile-view",level:3},{value:"CSS modules",id:"css-modules",level:2},{value:"CSS-in-JS",id:"css-in-js",level:2},{value:"Sass/SCSS",id:"sassscss",level:2},{value:"Global styles using Sass/SCSS",id:"global-styles-using-sassscss",level:3},{value:"Modules using Sass/SCSS",id:"modules-using-sassscss",level:3},{value:"TypeScript support",id:"typescript-support",level:4}];function f(e){let t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.R)(),...e.components},{Details:r}=t;return r||function(e,t){throw Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"styling-and-layout",children:"Styling and Layout"})}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["This section is focused on styling through stylesheets. For more advanced customizations (DOM structure, React code...), refer to the ",(0,o.jsx)(t.a,{href:"/docs/swizzling",children:"swizzling guide"}),"."]})}),"\n",(0,o.jsx)(t.p,{children:"A Docusaurus site is a single-page React application. You can style it the way you style React apps."}),"\n",(0,o.jsx)(t.p,{children:"There are a few approaches/frameworks which will work, depending on your preferences and the type of website you are trying to build. Websites that are highly interactive and behave more like web apps will benefit from more modern styling approaches that co-locate styles with the components. Component styling can also be particularly useful when you wish to customize or swizzle a component."}),"\n",(0,o.jsx)(t.h2,{id:"global-styles",children:"Global styles"}),"\n",(0,o.jsx)(t.p,{children:"This is the most traditional way of styling that most developers (including non-front-end developers) would be familiar with. It works fine for small websites that do not have much customization."}),"\n",(0,o.jsxs)(t.p,{children:["If you're using ",(0,o.jsx)(t.code,{children:"@docusaurus/preset-classic"}),", you can create your own CSS files (e.g. ",(0,o.jsx)(t.code,{children:"/src/css/custom.css"}),") and import them globally by passing them as an option of the classic theme."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n // highlight-start\n theme: {\n customCss: ['./src/css/custom.css'],\n },\n // highlight-end\n },\n ],\n ],\n};\n"})}),"\n",(0,o.jsx)(t.p,{children:"Any CSS you write within that file will be available globally and can be referenced directly using string literals."}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-css",metastring:'title="/src/css/custom.css"',children:".purple-text {\n color: rebeccapurple;\n}\n"})}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",children:'function MyComponent() {\n return (\n <main>\n <h1 className="purple-text">Purple Heading!</h1>\n </main>\n );\n}\n'})}),"\n",(0,o.jsx)(t.p,{children:"If you want to add CSS to any element, you can open the DevTools in your browser to inspect its class names. Class names come in several kinds:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Theme class names"}),". These class names are listed exhaustively in ",(0,o.jsx)(t.a,{href:"#theme-class-names",children:"the next subsection"}),". They don't have any default properties. You should always prioritize targeting those stable class names in your custom CSS."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Infima class names"}),". These class names are found in the classic theme and usually follow the ",(0,o.jsx)(t.a,{href:"http://getbem.com/naming/",children:"BEM convention"})," of ",(0,o.jsx)(t.code,{children:"block__element--modifier"}),". They are usually stable but are still considered implementation details, so you should generally avoid targeting them. However, you can ",(0,o.jsx)(t.a,{href:"#styling-your-site-with-infima",children:"modify Infima CSS variables"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"CSS module class names"}),". These class names end with a hash which may change over time (",(0,o.jsx)(t.code,{children:"codeBlockContainer_RIuc"}),"). They are considered implementation details and you should almost always avoid targeting them in your custom CSS. If you must, you can use an ",(0,o.jsx)(t.a,{href:"https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors",children:"attribute selector"})," (",(0,o.jsx)(t.code,{children:"[class*='codeBlockContainer']"}),") that ignores the hash."]}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"theme-class-names",children:"Theme Class Names"}),"\n",(0,o.jsx)(t.p,{children:"We provide some stable CSS class names for robust and maintainable global layout styling. These names are theme-agnostic and meant to be targeted by custom CSS."}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["If you can't find a way to create a robust CSS selector, please ",(0,o.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/discussions/5468",children:"report your customization use-case"})," and we will consider adding new class names."]})}),"\n",(0,o.jsxs)(r,{children:[(0,o.jsx)("summary",{children:"Exhaustive list of stable class names"}),(0,o.jsx)(u.A,{className:"language-ts",children:"/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// Please do not modify the classnames! This is a breaking change, and annoying\n// for users!\n\n/**\n * These class names are used to style page layouts in Docusaurus, meant to be\n * targeted by user-provided custom CSS selectors.\n */\nexport const ThemeClassNames = {\n page: {\n blogListPage: 'blog-list-page',\n blogPostPage: 'blog-post-page',\n blogTagsListPage: 'blog-tags-list-page',\n blogTagPostListPage: 'blog-tags-post-list-page',\n blogAuthorsListPage: 'blog-authors-list-page',\n blogAuthorsPostsPage: 'blog-authors-posts-page',\n\n docsDocPage: 'docs-doc-page',\n docsTagsListPage: 'docs-tags-list-page',\n docsTagDocListPage: 'docs-tags-doc-list-page',\n\n mdxPage: 'mdx-page',\n },\n wrapper: {\n main: 'main-wrapper',\n // TODO these wrapper class names are now quite useless\n // TODO do breaking change later in 3.0\n // we already add plugin name/id class on <html>: that's enough\n blogPages: 'blog-wrapper',\n docsPages: 'docs-wrapper',\n mdxPages: 'mdx-wrapper',\n },\n common: {\n editThisPage: 'theme-edit-this-page',\n lastUpdated: 'theme-last-updated',\n backToTopButton: 'theme-back-to-top-button',\n codeBlock: 'theme-code-block',\n admonition: 'theme-admonition',\n unlistedBanner: 'theme-unlisted-banner',\n draftBanner: 'theme-draft-banner',\n\n admonitionType: (type: string) => `theme-admonition-${type}`,\n },\n layout: {\n // TODO add other stable classNames here\n },\n\n /**\n * Follows the naming convention \"theme-{blog,doc,version,page}?-<suffix>\"\n */\n docs: {\n docVersionBanner: 'theme-doc-version-banner',\n docVersionBadge: 'theme-doc-version-badge',\n docBreadcrumbs: 'theme-doc-breadcrumbs',\n docMarkdown: 'theme-doc-markdown',\n docTocMobile: 'theme-doc-toc-mobile',\n docTocDesktop: 'theme-doc-toc-desktop',\n docFooter: 'theme-doc-footer',\n docFooterTagsRow: 'theme-doc-footer-tags-row',\n docFooterEditMetaRow: 'theme-doc-footer-edit-meta-row',\n docSidebarContainer: 'theme-doc-sidebar-container',\n docSidebarMenu: 'theme-doc-sidebar-menu',\n docSidebarItemCategory: 'theme-doc-sidebar-item-category',\n docSidebarItemLink: 'theme-doc-sidebar-item-link',\n docSidebarItemCategoryLevel: (level: number) =>\n `theme-doc-sidebar-item-category-level-${level}` as const,\n docSidebarItemLinkLevel: (level: number) =>\n `theme-doc-sidebar-item-link-level-${level}` as const,\n // TODO add other stable classNames here\n },\n blog: {\n // TODO add other stable classNames here\n blogFooterTagsRow: 'theme-blog-footer-tags-row',\n blogFooterEditMetaRow: 'theme-blog-footer-edit-meta-row',\n },\n pages: {\n pageFooterEditMetaRow: 'theme-pages-footer-edit-meta-row',\n },\n} as const;\n".replace(/\/\*[\s\S]*?\*\/|\/\/.*/g,"").replace(/^ *\n/gm,"").trim()})]}),"\n",(0,o.jsx)(t.h3,{id:"styling-your-site-with-infima",children:"Styling your site with Infima"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.code,{children:"@docusaurus/preset-classic"})," uses ",(0,o.jsx)(t.a,{href:"https://infima.dev/",children:"Infima"})," as the underlying styling framework. Infima provides a flexible layout and common UI components styling suitable for content-centric websites (blogs, documentation, landing pages). For more details, check out the ",(0,o.jsx)(t.a,{href:"https://infima.dev/",children:"Infima website"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:["When you scaffold your Docusaurus project with ",(0,o.jsx)(t.code,{children:"create-docusaurus"}),", the website will be generated with basic Infima stylesheets and default styling. You can override Infima CSS variables globally."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-css",metastring:'title="/src/css/custom.css"',children:":root {\n --ifm-color-primary: #25c2a0;\n --ifm-code-font-size: 95%;\n}\n"})}),"\n",(0,o.jsxs)(t.p,{children:["Infima uses 7 shades of each color. We recommend using ",(0,o.jsx)(t.a,{href:"https://www.colorbox.io/",children:"ColorBox"})," to find the different shades of colors for your chosen primary color."]}),"\n",(0,o.jsxs)(t.p,{children:["Alternatively, use the following tool to generate the different shades for your website and copy the variables into ",(0,o.jsx)(t.code,{children:"/src/css/custom.css"}),"."]}),"\n",(0,o.jsx)(a.A,{}),"\n",(0,o.jsx)(t.h3,{id:"dark-mode",children:"Dark Mode"}),"\n",(0,o.jsxs)(t.p,{children:["In light mode, the ",(0,o.jsx)(t.code,{children:"<html>"})," element has a ",(0,o.jsx)(t.code,{children:'data-theme="light"'})," attribute; in dark mode, it's ",(0,o.jsx)(t.code,{children:'data-theme="dark"'}),". Therefore, you can scope your CSS to dark-mode-only by targeting ",(0,o.jsx)(t.code,{children:"html"})," with a specific attribute."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-css",children:"/* Overriding root Infima variables */\n[data-theme='dark'] {\n --ifm-color-primary: #4e89e8;\n}\n/* Styling one class specially in dark mode */\n[data-theme='dark'] .purple-text {\n color: plum;\n}\n"})}),"\n",(0,o.jsxs)(t.admonition,{type:"tip",children:[(0,o.jsxs)(t.p,{children:["It is possible to initialize the Docusaurus theme directly from a ",(0,o.jsx)(t.code,{children:"docusaurus-theme"})," query string parameter."]}),(0,o.jsx)(t.p,{children:"Examples:"}),(0,o.jsx)(l.A,{url:"/docs/?docusaurus-theme=dark"}),(0,o.jsx)(l.A,{url:"/docs/configuration?docusaurus-theme=light"})]}),"\n",(0,o.jsx)(t.h3,{id:"data-attributes",children:"Data Attributes"}),"\n",(0,o.jsxs)(t.p,{children:["It is possible to inject ",(0,o.jsx)(t.code,{children:"<html>"})," data attributes with query string parameters following the ",(0,o.jsx)(t.code,{children:"docusaurus-data-<key>"})," pattern. This gives you the flexibility to style a page differently based on the query string."]}),"\n",(0,o.jsx)(t.p,{children:"For example, let's render one of our pages with a red border and no navbar:"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-css",metastring:'title="/src/css/custom.css"',children:"html[data-navbar='false'] .navbar {\n display: none;\n}\n\nhtml[data-red-border] div#__docusaurus {\n border: red solid thick;\n}\n"})}),"\n",(0,o.jsx)(l.A,{url:"/docs/?docusaurus-data-navbar=false&docusaurus-data-red-border"}),"\n",(0,o.jsx)(t.admonition,{title:"Iframe Mode",type:"tip",children:(0,o.jsxs)(t.p,{children:["If you plan to embed some Docusaurus pages on another site though an iframe, it can be useful to create an alternative display mode and use iframe urls such as ",(0,o.jsx)(t.code,{children:"https://mysite.com/docs/myDoc?docusaurus-data-mode=iframe"}),". It is your responsibility to provide the additional styles and decide which UI elements you want to keep or hide."]})}),"\n",(0,o.jsx)(t.h3,{id:"mobile-view",children:"Mobile View"}),"\n",(0,o.jsxs)(t.p,{children:["Docusaurus uses ",(0,o.jsx)(t.code,{children:"996px"})," as the cutoff between mobile screen width and desktop. If you want your layout to be different in the mobile view, you can use media queries."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-css",children:".banner {\n padding: 4rem;\n}\n/** In mobile view, reduce the padding */\n@media screen and (max-width: 996px) {\n .heroBanner {\n padding: 2rem;\n }\n}\n"})}),"\n",(0,o.jsx)(t.admonition,{title:"Customizing the breakpoint",type:"tip",children:(0,o.jsxs)(t.p,{children:["Some React components, such as the header and the sidebar, implement different JavaScript logic when in mobile view. If you change the breakpoint value in your custom CSS, you probably also want to update the invocations of the ",(0,o.jsx)(t.code,{children:"useWindowSize"})," hook by ",(0,o.jsx)(t.a,{href:"/docs/swizzling",children:"swizzling"})," the components it's used in and passing an explicit option argument."]})}),"\n",(0,o.jsx)(t.h2,{id:"css-modules",children:"CSS modules"}),"\n",(0,o.jsxs)(t.p,{children:["To style your components using ",(0,o.jsx)(t.a,{href:"https://github.com/css-modules/css-modules",children:"CSS Modules"}),", name your stylesheet files with the ",(0,o.jsx)(t.code,{children:".module.css"})," suffix (e.g. ",(0,o.jsx)(t.code,{children:"welcome.module.css"}),"). Webpack will load such CSS files as CSS modules and you have to reference the class names as properties of the imported CSS module (as opposed to using plain strings). This is similar to the convention used in ",(0,o.jsx)(t.a,{href:"https://facebook.github.io/create-react-app/docs/adding-a-css-modules-stylesheet",children:"Create React App"}),"."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-css",metastring:'title="styles.module.css"',children:".main {\n padding: 12px;\n}\n\n.heading {\n font-weight: bold;\n}\n\n.contents {\n color: #ccc;\n}\n"})}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",children:"import styles from './styles.module.css';\n\nfunction MyComponent() {\n return (\n <main className={styles.main}>\n <h1 className={styles.heading}>Hello!</h1>\n <article className={styles.contents}>Lorem Ipsum</article>\n </main>\n );\n}\n"})}),"\n",(0,o.jsx)(t.p,{children:"The class names will be processed by webpack into a globally unique class name during build."}),"\n",(0,o.jsx)(t.h2,{id:"css-in-js",children:"CSS-in-JS"}),"\n",(0,o.jsx)(t.admonition,{type:"warning",children:(0,o.jsxs)(t.p,{children:["CSS-in-JS support is a work in progress, so libs like MUI may have display quirks. ",(0,o.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/1640",children:"Welcoming PRs"}),"."]})}),"\n",(0,o.jsx)(t.h2,{id:"sassscss",children:"Sass/SCSS"}),"\n",(0,o.jsxs)(t.p,{children:["To use Sass/SCSS as your CSS preprocessor, install the unofficial Docusaurus plugin ",(0,o.jsx)(t.a,{href:"https://github.com/rlamana/docusaurus-plugin-sass",children:(0,o.jsx)(t.code,{children:"docusaurus-plugin-sass"})}),". This plugin works for both global styles and the CSS modules approach:"]}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["Install ",(0,o.jsx)(t.a,{href:"https://github.com/rlamana/docusaurus-plugin-sass",children:(0,o.jsx)(t.code,{children:"docusaurus-plugin-sass"})}),":"]}),"\n"]}),"\n",(0,o.jsxs)(c.A,{groupId:"npm2yarn",children:[(0,o.jsx)(i.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install --save docusaurus-plugin-sass sass\n"})})}),(0,o.jsx)(i.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn add docusaurus-plugin-sass sass\n"})})}),(0,o.jsx)(i.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm add docusaurus-plugin-sass sass\n"})})})]}),"\n",(0,o.jsxs)(t.ol,{start:"2",children:["\n",(0,o.jsxs)(t.li,{children:["Include the plugin in your ",(0,o.jsx)(t.code,{children:"docusaurus.config.js"})," file:"]}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n // highlight-next-line\n plugins: ['docusaurus-plugin-sass'],\n // ...\n};\n"})}),"\n",(0,o.jsxs)(t.ol,{start:"3",children:["\n",(0,o.jsx)(t.li,{children:"Write and import your stylesheets in Sass/SCSS as normal."}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"global-styles-using-sassscss",children:"Global styles using Sass/SCSS"}),"\n",(0,o.jsxs)(t.p,{children:["You can now set the ",(0,o.jsx)(t.code,{children:"customCss"})," property of ",(0,o.jsx)(t.code,{children:"@docusaurus/preset-classic"})," to point to your Sass/SCSS file:"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n // ...\n theme: {\n // highlight-next-line\n customCss: ['./src/css/custom.scss'],\n },\n // ...\n },\n ],\n ],\n};\n"})}),"\n",(0,o.jsx)(t.h3,{id:"modules-using-sassscss",children:"Modules using Sass/SCSS"}),"\n",(0,o.jsxs)(t.p,{children:["Name your stylesheet files with the ",(0,o.jsx)(t.code,{children:".module.scss"})," suffix (e.g. ",(0,o.jsx)(t.code,{children:"welcome.module.scss"}),") instead of ",(0,o.jsx)(t.code,{children:".css"}),". Webpack will use ",(0,o.jsx)(t.code,{children:"sass-loader"})," to preprocess your stylesheets and load them as CSS modules."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-scss",metastring:'title="styles.module.scss"',children:".main {\n padding: 12px;\n\n article {\n color: #ccc;\n }\n}\n"})}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",children:"import styles from './styles.module.scss';\n\nfunction MyComponent() {\n return (\n <main className={styles.main}>\n <article>Lorem Ipsum</article>\n </main>\n );\n}\n"})}),"\n",(0,o.jsx)(t.h4,{id:"typescript-support",children:"TypeScript support"}),"\n",(0,o.jsxs)(t.p,{children:["To enable TypeScript support for Sass/SCSS modules, the TypeScript configuration should be updated to add the ",(0,o.jsx)(t.code,{children:"docusaurus-plugin-sass"})," type definitions. This can be done in the ",(0,o.jsx)(t.code,{children:"tsconfig.json"})," file:"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-diff",children:'{\n "extends": "@tsconfig/docusaurus/tsconfig.json",\n "compilerOptions": {\n ...\n+ "types": ["docusaurus-plugin-sass"]\n }\n}\n'})})]})}function m(e={}){let{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(f,{...e})}):f(e)}}}]); \ No newline at end of file +}`})]})}},55887:(e,t,r)=>{r.d(t,{A:()=>ei});var n,o,s,c={};r.r(c),r.d(c,{ButtonExample:()=>N});var i=r(62540),a=r(63696),l=r(11750),u=r(10709),d=r(55152),p=r(81912),b=r(99468),h=r(40576),f=r(1495),m=r(66659),y=r(25436);function j(){let{prism:e}=(0,y.p)(),{colorMode:t}=(0,m.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var g=r(43758);function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,i.jsx)("div",{className:(0,l.A)("playgroundHeader_Tvsk"),children:e})}function w(){return(0,i.jsx)("div",{children:"Loading..."})}function x(){return(0,i.jsx)(h.A,{fallback:(0,i.jsx)(w,{}),children:()=>(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(g.A,{fallback:e=>(0,i.jsx)(f.MN,O({},e)),children:(0,i.jsx)(d.pA,{})}),(0,i.jsx)(d.p1,{})]})})}function P(){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(v,{children:(0,i.jsx)(p.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,i.jsx)("div",{className:"playgroundPreview_mApW",children:(0,i.jsx)(x,{})})]})}function S(){let e=(0,u.A)();return(0,i.jsx)(d.w,{className:"playgroundEditor_TySg"},String(e))}function k(){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(v,{children:(0,i.jsx)(p.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,i.jsx)(S,{})]})}let D=e=>`${e};`;function C(e){var t,r,n,o,{children:s,transformCode:c}=e,a=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)r=s[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:l}}=(0,b.A)(),{liveCodeBlock:{playgroundPosition:u}}=l,p=j(),h=null!==(o=null===(n=a.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,i.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,i.jsx)(d.Q,(t=O({code:null==s?void 0:s.replace(/\n$/,""),noInline:h,transformCode:null!=c?c:D,theme:p},a),r=r={children:"top"===u?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(P,{}),(0,i.jsx)(k,{})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(k,{}),(0,i.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function A(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function N(e){var t,r;return(0,i.jsx)("button",(t=A({type:"button"},e),r=r={style:A({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let E=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:a},a,c);var T=r(12653),B=r(19934),I=r.n(B);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),_=RegExp("\\{(?<range>[\\d,-]+)\\}"),M={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},z=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},M),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),R=Object.keys(M);function W(e,t){let r=e.map(e=>{let{start:r,end:n}=z[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function H(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)r=s[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let s=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(j());return(0,i.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:s,className:(0,l.A)(o.className,"codeBlockContainer_jDV4",T.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let G={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function $({children:e,className:t}){return(0,i.jsx)(H,{as:"pre",tabIndex:0,className:(0,l.A)(G.codeBlockStandalone,"thin-scrollbar",t),children:(0,i.jsx)("code",{className:G.codeBlockLines,children:e})})}var F=r(2550);let V={attributes:!0,characterData:!0,childList:!0,subtree:!0};var q=r(27663);let U={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function Y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function J({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var s,c;1===e.length&&"\n"===e[0].content&&(e[0].content="");let a=n({line:e,className:(0,l.A)(t,r&&U.codeLine)}),u=e.map((e,t)=>(0,i.jsx)("span",Y({},o({token:e})),t));return(0,i.jsxs)("span",(s=Y({},a),c=c={children:[r?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:U.codeLineNumber}),(0,i.jsx)("span",{className:U.codeLineContent,children:u})]}):u,(0,i.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(c)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(c)).forEach(function(e){Object.defineProperty(s,e,Object.getOwnPropertyDescriptor(c,e))}),s))}var Q=r(936);function X(e){var t,r;return(0,i.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,i.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function Z(e){var t,r;return(0,i.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,i.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,a.useState)(!1),o=(0,a.useRef)(void 0),s=(0,a.useCallback)(()=>{(0,Q.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,a.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,i.jsx)("button",{type:"button","aria-label":r?(0,p.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,l.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:s,children:(0,i.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,i.jsx)(X,{className:K.copyButtonIcon}),(0,i.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,i.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,i.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,p.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,i.jsx)("button",{type:"button",onClick:t,className:(0,l.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,i.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:s}){var c,u,d,p;let{prism:{defaultLanguage:b,magicComments:h}}=(0,y.p)(),f=null==(u=null!==(c=null!=s?s:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==c?c:b)?void 0:u.toLowerCase(),m=j(),g=function(){let[e,t]=(0,a.useState)(!1),[r,n]=(0,a.useState)(!1),o=(0,a.useRef)(null),s=(0,a.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),c=(0,a.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,a.useState)(),o=(0,a.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,a.useEffect)(()=>{o()},[o]),function(e,t,r=V){let n=(0,F._q)(t),o=(0,F.Be)(r);(0,a.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,c),(0,a.useEffect)(()=>{c()},[e,c]),(0,a.useEffect)(()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)}),[c]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:s}}(),O=(null!==(p=null==r?void 0:null===(d=r.match(L))||void 0===d?void 0:d.groups.title)&&void 0!==p?p:"")||n,{lineClassNames:v,code:w}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:s}=t;if(s&&_.test(s)){let e=s.match(_).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${s}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(I()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return W(["js","jsBlock"],t);case"jsx":case"tsx":return W(["js","jsBlock","jsx"],t);case"html":return W(["js","jsBlock","html"],t);case"python":case"py":case"bash":return W(["bash"],t);case"markdown":case"md":return W(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return W(["tex"],t);case"lua":case"haskell":case"sql":return W(["lua"],t);case"wasm":return W(["wasm"],t);case"vb":case"vba":case"visual-basic":return W(["vb","rem"],t);case"vbnet":return W(["vbnet","rem"],t);case"batch":return W(["rem"],t);case"basic":return W(["rem","f90"],t);case"fsharp":return W(["js","ml"],t);case"ocaml":case"sml":return W(["ml"],t);case"fortran":return W(["f90"],t);case"cobol":return W(["cobol"],t);default:return W(R,t)}}(n,o),i=r.split("\n"),a=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),l=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),d=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<i.length;){let t=i[e].match(c);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);l[r]?a[l[r]].range+=`${e},`:u[r]?a[u[r]].start=e:d[r]&&(a[d[r]].range+=`${a[d[r]].start}-${e-1},`),i.splice(e,1)}r=i.join("\n");let p={};return Object.entries(a).forEach(([e,{range:t}])=>{I()(t).forEach(t=>{var r;null!==(r=p[t])&&void 0!==r||(p[t]=[]),p[t].push(e)})}),{lineClassNames:p,code:r}}(e,{metastring:r,language:f,magicComments:h}),x=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,i.jsxs)(H,{as:"div",className:(0,l.A)(t,f&&!t.includes(`language-${f}`)&&`language-${f}`),children:[O&&(0,i.jsx)("div",{className:G.codeBlockTitle,children:O}),(0,i.jsxs)("div",{className:G.codeBlockContent,children:[(0,i.jsx)(q.f4,{theme:m,code:w,language:null!=f?f:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,i.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,l.A)(e,G.codeBlock,"thin-scrollbar"),style:t,children:(0,i.jsx)("code",{className:(0,l.A)(G.codeBlockLines,x&&G.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,i.jsx)(J,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:x},t))})})}),(0,i.jsxs)("div",{className:G.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,i.jsx)(en,{className:G.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,i.jsx)(ee,{className:G.codeButton,code:w})]})]})]})}function es(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let ec=(s=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)r=s[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let s=(0,u.A)(),c=a.Children.toArray(n).some(e=>(0,a.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,l="string"==typeof c?eo:$;return(0,i.jsx)(l,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:c},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(s))},function(e){return e.live?(0,i.jsx)(C,es({scope:E},e)):(0,i.jsx)(s,es({},e))});function ei(e){return(0,i.jsx)(ec,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}},16616:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>b,contentTitle:()=>p,default:()=>m,frontMatter:()=>d,metadata:()=>n,toc:()=>h});let n=JSON.parse('{"id":"styling-layout","title":"Styling and Layout","description":"A Docusaurus site is a pre-rendered single-page React application. You can style it the way you style React apps.","source":"@site/docs/styling-layout.mdx","sourceDirName":".","slug":"/styling-layout","permalink":"/docs/styling-layout","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/styling-layout.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"description":"A Docusaurus site is a pre-rendered single-page React application. You can style it the way you style React apps."},"sidebar":"docs","previous":{"title":"Head metadata","permalink":"/docs/markdown-features/head-metadata"},"next":{"title":"Swizzling","permalink":"/docs/swizzling"}}');var o=r(62540),s=r(43023),c=r(27446),i=r(15995),a=r(92857),l=r(18764),u=r(55887);let d={description:"A Docusaurus site is a pre-rendered single-page React application. You can style it the way you style React apps."},p="Styling and Layout",b={},h=[{value:"Global styles",id:"global-styles",level:2},{value:"Theme Class Names",id:"theme-class-names",level:3},{value:"Styling your site with Infima",id:"styling-your-site-with-infima",level:3},{value:"Dark Mode",id:"dark-mode",level:3},{value:"Data Attributes",id:"data-attributes",level:3},{value:"Mobile View",id:"mobile-view",level:3},{value:"CSS modules",id:"css-modules",level:2},{value:"CSS-in-JS",id:"css-in-js",level:2},{value:"Sass/SCSS",id:"sassscss",level:2},{value:"Global styles using Sass/SCSS",id:"global-styles-using-sassscss",level:3},{value:"Modules using Sass/SCSS",id:"modules-using-sassscss",level:3},{value:"TypeScript support",id:"typescript-support",level:4}];function f(e){let t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.R)(),...e.components},{Details:r}=t;return r||function(e,t){throw Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"styling-and-layout",children:"Styling and Layout"})}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["This section is focused on styling through stylesheets. For more advanced customizations (DOM structure, React code...), refer to the ",(0,o.jsx)(t.a,{href:"/docs/swizzling",children:"swizzling guide"}),"."]})}),"\n",(0,o.jsx)(t.p,{children:"A Docusaurus site is a single-page React application. You can style it the way you style React apps."}),"\n",(0,o.jsx)(t.p,{children:"There are a few approaches/frameworks which will work, depending on your preferences and the type of website you are trying to build. Websites that are highly interactive and behave more like web apps will benefit from more modern styling approaches that co-locate styles with the components. Component styling can also be particularly useful when you wish to customize or swizzle a component."}),"\n",(0,o.jsx)(t.h2,{id:"global-styles",children:"Global styles"}),"\n",(0,o.jsx)(t.p,{children:"This is the most traditional way of styling that most developers (including non-front-end developers) would be familiar with. It works fine for small websites that do not have much customization."}),"\n",(0,o.jsxs)(t.p,{children:["If you're using ",(0,o.jsx)(t.code,{children:"@docusaurus/preset-classic"}),", you can create your own CSS files (e.g. ",(0,o.jsx)(t.code,{children:"/src/css/custom.css"}),") and import them globally by passing them as an option of the classic theme."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n // highlight-start\n theme: {\n customCss: ['./src/css/custom.css'],\n },\n // highlight-end\n },\n ],\n ],\n};\n"})}),"\n",(0,o.jsx)(t.p,{children:"Any CSS you write within that file will be available globally and can be referenced directly using string literals."}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-css",metastring:'title="/src/css/custom.css"',children:".purple-text {\n color: rebeccapurple;\n}\n"})}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",children:'function MyComponent() {\n return (\n <main>\n <h1 className="purple-text">Purple Heading!</h1>\n </main>\n );\n}\n'})}),"\n",(0,o.jsx)(t.p,{children:"If you want to add CSS to any element, you can open the DevTools in your browser to inspect its class names. Class names come in several kinds:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Theme class names"}),". These class names are listed exhaustively in ",(0,o.jsx)(t.a,{href:"#theme-class-names",children:"the next subsection"}),". They don't have any default properties. You should always prioritize targeting those stable class names in your custom CSS."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Infima class names"}),". These class names are found in the classic theme and usually follow the ",(0,o.jsx)(t.a,{href:"http://getbem.com/naming/",children:"BEM convention"})," of ",(0,o.jsx)(t.code,{children:"block__element--modifier"}),". They are usually stable but are still considered implementation details, so you should generally avoid targeting them. However, you can ",(0,o.jsx)(t.a,{href:"#styling-your-site-with-infima",children:"modify Infima CSS variables"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"CSS module class names"}),". These class names end with a hash which may change over time (",(0,o.jsx)(t.code,{children:"codeBlockContainer_RIuc"}),"). They are considered implementation details and you should almost always avoid targeting them in your custom CSS. If you must, you can use an ",(0,o.jsx)(t.a,{href:"https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors",children:"attribute selector"})," (",(0,o.jsx)(t.code,{children:"[class*='codeBlockContainer']"}),") that ignores the hash."]}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"theme-class-names",children:"Theme Class Names"}),"\n",(0,o.jsx)(t.p,{children:"We provide some stable CSS class names for robust and maintainable global layout styling. These names are theme-agnostic and meant to be targeted by custom CSS."}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["If you can't find a way to create a robust CSS selector, please ",(0,o.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/discussions/5468",children:"report your customization use-case"})," and we will consider adding new class names."]})}),"\n",(0,o.jsxs)(r,{children:[(0,o.jsx)("summary",{children:"Exhaustive list of stable class names"}),(0,o.jsx)(u.A,{className:"language-ts",children:"/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// Please do not modify the classnames! This is a breaking change, and annoying\n// for users!\n\n/**\n * These class names are used to style page layouts in Docusaurus, meant to be\n * targeted by user-provided custom CSS selectors.\n */\nexport const ThemeClassNames = {\n page: {\n blogListPage: 'blog-list-page',\n blogPostPage: 'blog-post-page',\n blogTagsListPage: 'blog-tags-list-page',\n blogTagPostListPage: 'blog-tags-post-list-page',\n blogAuthorsListPage: 'blog-authors-list-page',\n blogAuthorsPostsPage: 'blog-authors-posts-page',\n\n docsDocPage: 'docs-doc-page',\n docsTagsListPage: 'docs-tags-list-page',\n docsTagDocListPage: 'docs-tags-doc-list-page',\n\n mdxPage: 'mdx-page',\n },\n wrapper: {\n main: 'main-wrapper',\n // TODO these wrapper class names are now quite useless\n // TODO do breaking change later in 3.0\n // we already add plugin name/id class on <html>: that's enough\n blogPages: 'blog-wrapper',\n docsPages: 'docs-wrapper',\n mdxPages: 'mdx-wrapper',\n },\n common: {\n editThisPage: 'theme-edit-this-page',\n lastUpdated: 'theme-last-updated',\n backToTopButton: 'theme-back-to-top-button',\n codeBlock: 'theme-code-block',\n admonition: 'theme-admonition',\n unlistedBanner: 'theme-unlisted-banner',\n draftBanner: 'theme-draft-banner',\n\n admonitionType: (type: string) => `theme-admonition-${type}`,\n },\n layout: {\n // TODO add other stable classNames here\n },\n\n /**\n * Follows the naming convention \"theme-{blog,doc,version,page}?-<suffix>\"\n */\n docs: {\n docVersionBanner: 'theme-doc-version-banner',\n docVersionBadge: 'theme-doc-version-badge',\n docBreadcrumbs: 'theme-doc-breadcrumbs',\n docMarkdown: 'theme-doc-markdown',\n docTocMobile: 'theme-doc-toc-mobile',\n docTocDesktop: 'theme-doc-toc-desktop',\n docFooter: 'theme-doc-footer',\n docFooterTagsRow: 'theme-doc-footer-tags-row',\n docFooterEditMetaRow: 'theme-doc-footer-edit-meta-row',\n docSidebarContainer: 'theme-doc-sidebar-container',\n docSidebarMenu: 'theme-doc-sidebar-menu',\n docSidebarItemCategory: 'theme-doc-sidebar-item-category',\n docSidebarItemLink: 'theme-doc-sidebar-item-link',\n docSidebarItemCategoryLevel: (level: number) =>\n `theme-doc-sidebar-item-category-level-${level}` as const,\n docSidebarItemLinkLevel: (level: number) =>\n `theme-doc-sidebar-item-link-level-${level}` as const,\n // TODO add other stable classNames here\n },\n blog: {\n // TODO add other stable classNames here\n blogFooterTagsRow: 'theme-blog-footer-tags-row',\n blogFooterEditMetaRow: 'theme-blog-footer-edit-meta-row',\n },\n pages: {\n pageFooterEditMetaRow: 'theme-pages-footer-edit-meta-row',\n },\n} as const;\n".replace(/\/\*[\s\S]*?\*\/|\/\/.*/g,"").replace(/^ *\n/gm,"").trim()})]}),"\n",(0,o.jsx)(t.h3,{id:"styling-your-site-with-infima",children:"Styling your site with Infima"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.code,{children:"@docusaurus/preset-classic"})," uses ",(0,o.jsx)(t.a,{href:"https://infima.dev/",children:"Infima"})," as the underlying styling framework. Infima provides a flexible layout and common UI components styling suitable for content-centric websites (blogs, documentation, landing pages). For more details, check out the ",(0,o.jsx)(t.a,{href:"https://infima.dev/",children:"Infima website"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:["When you scaffold your Docusaurus project with ",(0,o.jsx)(t.code,{children:"create-docusaurus"}),", the website will be generated with basic Infima stylesheets and default styling. You can override Infima CSS variables globally."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-css",metastring:'title="/src/css/custom.css"',children:":root {\n --ifm-color-primary: #25c2a0;\n --ifm-code-font-size: 95%;\n}\n"})}),"\n",(0,o.jsxs)(t.p,{children:["Infima uses 7 shades of each color. We recommend using ",(0,o.jsx)(t.a,{href:"https://www.colorbox.io/",children:"ColorBox"})," to find the different shades of colors for your chosen primary color."]}),"\n",(0,o.jsxs)(t.p,{children:["Alternatively, use the following tool to generate the different shades for your website and copy the variables into ",(0,o.jsx)(t.code,{children:"/src/css/custom.css"}),"."]}),"\n",(0,o.jsx)(a.A,{}),"\n",(0,o.jsx)(t.h3,{id:"dark-mode",children:"Dark Mode"}),"\n",(0,o.jsxs)(t.p,{children:["In light mode, the ",(0,o.jsx)(t.code,{children:"<html>"})," element has a ",(0,o.jsx)(t.code,{children:'data-theme="light"'})," attribute; in dark mode, it's ",(0,o.jsx)(t.code,{children:'data-theme="dark"'}),". Therefore, you can scope your CSS to dark-mode-only by targeting ",(0,o.jsx)(t.code,{children:"html"})," with a specific attribute."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-css",children:"/* Overriding root Infima variables */\n[data-theme='dark'] {\n --ifm-color-primary: #4e89e8;\n}\n/* Styling one class specially in dark mode */\n[data-theme='dark'] .purple-text {\n color: plum;\n}\n"})}),"\n",(0,o.jsxs)(t.admonition,{type:"tip",children:[(0,o.jsxs)(t.p,{children:["It is possible to initialize the Docusaurus theme directly from a ",(0,o.jsx)(t.code,{children:"docusaurus-theme"})," query string parameter."]}),(0,o.jsx)(t.p,{children:"Examples:"}),(0,o.jsx)(l.A,{url:"/docs/?docusaurus-theme=dark"}),(0,o.jsx)(l.A,{url:"/docs/configuration?docusaurus-theme=light"})]}),"\n",(0,o.jsx)(t.h3,{id:"data-attributes",children:"Data Attributes"}),"\n",(0,o.jsxs)(t.p,{children:["It is possible to inject ",(0,o.jsx)(t.code,{children:"<html>"})," data attributes with query string parameters following the ",(0,o.jsx)(t.code,{children:"docusaurus-data-<key>"})," pattern. This gives you the flexibility to style a page differently based on the query string."]}),"\n",(0,o.jsx)(t.p,{children:"For example, let's render one of our pages with a red border and no navbar:"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-css",metastring:'title="/src/css/custom.css"',children:"html[data-navbar='false'] .navbar {\n display: none;\n}\n\nhtml[data-red-border] div#__docusaurus {\n border: red solid thick;\n}\n"})}),"\n",(0,o.jsx)(l.A,{url:"/docs/?docusaurus-data-navbar=false&docusaurus-data-red-border"}),"\n",(0,o.jsx)(t.admonition,{title:"Iframe Mode",type:"tip",children:(0,o.jsxs)(t.p,{children:["If you plan to embed some Docusaurus pages on another site though an iframe, it can be useful to create an alternative display mode and use iframe urls such as ",(0,o.jsx)(t.code,{children:"https://mysite.com/docs/myDoc?docusaurus-data-mode=iframe"}),". It is your responsibility to provide the additional styles and decide which UI elements you want to keep or hide."]})}),"\n",(0,o.jsx)(t.h3,{id:"mobile-view",children:"Mobile View"}),"\n",(0,o.jsxs)(t.p,{children:["Docusaurus uses ",(0,o.jsx)(t.code,{children:"996px"})," as the cutoff between mobile screen width and desktop. If you want your layout to be different in the mobile view, you can use media queries."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-css",children:".banner {\n padding: 4rem;\n}\n/** In mobile view, reduce the padding */\n@media screen and (max-width: 996px) {\n .heroBanner {\n padding: 2rem;\n }\n}\n"})}),"\n",(0,o.jsx)(t.admonition,{title:"Customizing the breakpoint",type:"tip",children:(0,o.jsxs)(t.p,{children:["Some React components, such as the header and the sidebar, implement different JavaScript logic when in mobile view. If you change the breakpoint value in your custom CSS, you probably also want to update the invocations of the ",(0,o.jsx)(t.code,{children:"useWindowSize"})," hook by ",(0,o.jsx)(t.a,{href:"/docs/swizzling",children:"swizzling"})," the components it's used in and passing an explicit option argument."]})}),"\n",(0,o.jsx)(t.h2,{id:"css-modules",children:"CSS modules"}),"\n",(0,o.jsxs)(t.p,{children:["To style your components using ",(0,o.jsx)(t.a,{href:"https://github.com/css-modules/css-modules",children:"CSS Modules"}),", name your stylesheet files with the ",(0,o.jsx)(t.code,{children:".module.css"})," suffix (e.g. ",(0,o.jsx)(t.code,{children:"welcome.module.css"}),"). Webpack will load such CSS files as CSS modules and you have to reference the class names as properties of the imported CSS module (as opposed to using plain strings). This is similar to the convention used in ",(0,o.jsx)(t.a,{href:"https://facebook.github.io/create-react-app/docs/adding-a-css-modules-stylesheet",children:"Create React App"}),"."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-css",metastring:'title="styles.module.css"',children:".main {\n padding: 12px;\n}\n\n.heading {\n font-weight: bold;\n}\n\n.contents {\n color: #ccc;\n}\n"})}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",children:"import styles from './styles.module.css';\n\nfunction MyComponent() {\n return (\n <main className={styles.main}>\n <h1 className={styles.heading}>Hello!</h1>\n <article className={styles.contents}>Lorem Ipsum</article>\n </main>\n );\n}\n"})}),"\n",(0,o.jsx)(t.p,{children:"The class names will be processed by webpack into a globally unique class name during build."}),"\n",(0,o.jsx)(t.h2,{id:"css-in-js",children:"CSS-in-JS"}),"\n",(0,o.jsx)(t.admonition,{type:"warning",children:(0,o.jsxs)(t.p,{children:["CSS-in-JS support is a work in progress, so libs like MUI may have display quirks. ",(0,o.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/1640",children:"Welcoming PRs"}),"."]})}),"\n",(0,o.jsx)(t.h2,{id:"sassscss",children:"Sass/SCSS"}),"\n",(0,o.jsxs)(t.p,{children:["To use Sass/SCSS as your CSS preprocessor, install the unofficial Docusaurus plugin ",(0,o.jsx)(t.a,{href:"https://github.com/rlamana/docusaurus-plugin-sass",children:(0,o.jsx)(t.code,{children:"docusaurus-plugin-sass"})}),". This plugin works for both global styles and the CSS modules approach:"]}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["Install ",(0,o.jsx)(t.a,{href:"https://github.com/rlamana/docusaurus-plugin-sass",children:(0,o.jsx)(t.code,{children:"docusaurus-plugin-sass"})}),":"]}),"\n"]}),"\n",(0,o.jsxs)(c.A,{groupId:"npm2yarn",children:[(0,o.jsx)(i.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install --save docusaurus-plugin-sass sass\n"})})}),(0,o.jsx)(i.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn add docusaurus-plugin-sass sass\n"})})}),(0,o.jsx)(i.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm add docusaurus-plugin-sass sass\n"})})})]}),"\n",(0,o.jsxs)(t.ol,{start:"2",children:["\n",(0,o.jsxs)(t.li,{children:["Include the plugin in your ",(0,o.jsx)(t.code,{children:"docusaurus.config.js"})," file:"]}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n // highlight-next-line\n plugins: ['docusaurus-plugin-sass'],\n // ...\n};\n"})}),"\n",(0,o.jsxs)(t.ol,{start:"3",children:["\n",(0,o.jsx)(t.li,{children:"Write and import your stylesheets in Sass/SCSS as normal."}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"global-styles-using-sassscss",children:"Global styles using Sass/SCSS"}),"\n",(0,o.jsxs)(t.p,{children:["You can now set the ",(0,o.jsx)(t.code,{children:"customCss"})," property of ",(0,o.jsx)(t.code,{children:"@docusaurus/preset-classic"})," to point to your Sass/SCSS file:"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n // ...\n theme: {\n // highlight-next-line\n customCss: ['./src/css/custom.scss'],\n },\n // ...\n },\n ],\n ],\n};\n"})}),"\n",(0,o.jsx)(t.h3,{id:"modules-using-sassscss",children:"Modules using Sass/SCSS"}),"\n",(0,o.jsxs)(t.p,{children:["Name your stylesheet files with the ",(0,o.jsx)(t.code,{children:".module.scss"})," suffix (e.g. ",(0,o.jsx)(t.code,{children:"welcome.module.scss"}),") instead of ",(0,o.jsx)(t.code,{children:".css"}),". Webpack will use ",(0,o.jsx)(t.code,{children:"sass-loader"})," to preprocess your stylesheets and load them as CSS modules."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-scss",metastring:'title="styles.module.scss"',children:".main {\n padding: 12px;\n\n article {\n color: #ccc;\n }\n}\n"})}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",children:"import styles from './styles.module.scss';\n\nfunction MyComponent() {\n return (\n <main className={styles.main}>\n <article>Lorem Ipsum</article>\n </main>\n );\n}\n"})}),"\n",(0,o.jsx)(t.h4,{id:"typescript-support",children:"TypeScript support"}),"\n",(0,o.jsxs)(t.p,{children:["To enable TypeScript support for Sass/SCSS modules, the TypeScript configuration should be updated to add the ",(0,o.jsx)(t.code,{children:"docusaurus-plugin-sass"})," type definitions. This can be done in the ",(0,o.jsx)(t.code,{children:"tsconfig.json"})," file:"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-diff",children:'{\n "extends": "@tsconfig/docusaurus/tsconfig.json",\n "compilerOptions": {\n ...\n+ "types": ["docusaurus-plugin-sass"]\n }\n}\n'})})]})}function m(e={}){let{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(f,{...e})}):f(e)}}}]); \ No newline at end of file diff --git a/assets/js/6473.de290bc7.js b/assets/js/6473.de290bc7.js new file mode 100644 index 0000000000..4a23e1d5ed --- /dev/null +++ b/assets/js/6473.de290bc7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6473],{6473:(t,e,a)=>{a.d(e,{diagram:()=>z});var i,r=a(56160);a(165),a(82648),a(57014),a(93510),a(16470),a(27923);var d=a(67027),n=a(72912),s=a(89601),o=a(62628),g=a(62499),l={},p=(0,n.K2)((t,e)=>{l[t]=e},"set"),h=(t=>l[t],(0,n.K2)(()=>Object.keys(l),"keys")),c=(()=>h().length,(0,n.K2)(t=>t.append("circle").attr("class","start-state").attr("r",(0,n.D7)().state.sizeUnit).attr("cx",(0,n.D7)().state.padding+(0,n.D7)().state.sizeUnit).attr("cy",(0,n.D7)().state.padding+(0,n.D7)().state.sizeUnit),"drawStartState")),x=(0,n.K2)(t=>t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",(0,n.D7)().state.textHeight).attr("class","divider").attr("x2",2*(0,n.D7)().state.textHeight).attr("y1",0).attr("y2",0),"drawDivider"),D=(0,n.K2)((t,e)=>{let a=t.append("text").attr("x",2*(0,n.D7)().state.padding).attr("y",(0,n.D7)().state.textHeight+2*(0,n.D7)().state.padding).attr("font-size",(0,n.D7)().state.fontSize).attr("class","state-title").text(e.id),i=a.node().getBBox();return t.insert("rect",":first-child").attr("x",(0,n.D7)().state.padding).attr("y",(0,n.D7)().state.padding).attr("width",i.width+2*(0,n.D7)().state.padding).attr("height",i.height+2*(0,n.D7)().state.padding).attr("rx",(0,n.D7)().state.radius),a},"drawSimpleState"),u=(0,n.K2)((t,e)=>{let a=(0,n.K2)(function(t,e,a){let i=t.append("tspan").attr("x",2*(0,n.D7)().state.padding).text(e);a||i.attr("dy",(0,n.D7)().state.textHeight)},"addTspan"),i=t.append("text").attr("x",2*(0,n.D7)().state.padding).attr("y",(0,n.D7)().state.textHeight+1.3*(0,n.D7)().state.padding).attr("font-size",(0,n.D7)().state.fontSize).attr("class","state-title").text(e.descriptions[0]).node().getBBox(),r=i.height,d=t.append("text").attr("x",(0,n.D7)().state.padding).attr("y",r+.4*(0,n.D7)().state.padding+(0,n.D7)().state.dividerMargin+(0,n.D7)().state.textHeight).attr("class","state-description"),s=!0,o=!0;e.descriptions.forEach(function(t){s||(a(d,t,o),o=!1),s=!1});let g=t.append("line").attr("x1",(0,n.D7)().state.padding).attr("y1",(0,n.D7)().state.padding+r+(0,n.D7)().state.dividerMargin/2).attr("y2",(0,n.D7)().state.padding+r+(0,n.D7)().state.dividerMargin/2).attr("class","descr-divider"),l=d.node().getBBox(),p=Math.max(l.width,i.width);return g.attr("x2",p+3*(0,n.D7)().state.padding),t.insert("rect",":first-child").attr("x",(0,n.D7)().state.padding).attr("y",(0,n.D7)().state.padding).attr("width",p+2*(0,n.D7)().state.padding).attr("height",l.height+r+2*(0,n.D7)().state.padding).attr("rx",(0,n.D7)().state.radius),t},"drawDescrState"),f=(0,n.K2)((t,e,a)=>{let i;let r=(0,n.D7)().state.padding,d=2*(0,n.D7)().state.padding,s=t.node().getBBox(),o=s.width,g=s.x,l=t.append("text").attr("x",0).attr("y",(0,n.D7)().state.titleShift).attr("font-size",(0,n.D7)().state.fontSize).attr("class","state-title").text(e.id),p=l.node().getBBox().width+d,h=Math.max(p,o);h===o&&(h+=d);let c=t.node().getBBox();e.doc,i=g-r,p>o&&(i=(o-h)/2+r),Math.abs(g-c.x)<r&&p>o&&(i=g-(p-o)/2);let x=1-(0,n.D7)().state.textHeight;return t.insert("rect",":first-child").attr("x",i).attr("y",x).attr("class",a?"alt-composit":"composit").attr("width",h).attr("height",c.height+(0,n.D7)().state.textHeight+(0,n.D7)().state.titleShift+1).attr("rx","0"),l.attr("x",i+r),p<=o&&l.attr("x",g+(h-d)/2-p/2+r),t.insert("rect",":first-child").attr("x",i).attr("y",(0,n.D7)().state.titleShift-(0,n.D7)().state.textHeight-(0,n.D7)().state.padding).attr("width",h).attr("height",3*(0,n.D7)().state.textHeight).attr("rx",(0,n.D7)().state.radius),t.insert("rect",":first-child").attr("x",i).attr("y",(0,n.D7)().state.titleShift-(0,n.D7)().state.textHeight-(0,n.D7)().state.padding).attr("width",h).attr("height",c.height+3+2*(0,n.D7)().state.textHeight).attr("rx",(0,n.D7)().state.radius),t},"addTitleAndBox"),y=(0,n.K2)(t=>(t.append("circle").attr("class","end-state-outer").attr("r",(0,n.D7)().state.sizeUnit+(0,n.D7)().state.miniPadding).attr("cx",(0,n.D7)().state.padding+(0,n.D7)().state.sizeUnit+(0,n.D7)().state.miniPadding).attr("cy",(0,n.D7)().state.padding+(0,n.D7)().state.sizeUnit+(0,n.D7)().state.miniPadding),t.append("circle").attr("class","end-state-inner").attr("r",(0,n.D7)().state.sizeUnit).attr("cx",(0,n.D7)().state.padding+(0,n.D7)().state.sizeUnit+2).attr("cy",(0,n.D7)().state.padding+(0,n.D7)().state.sizeUnit+2)),"drawEndState"),w=(0,n.K2)((t,e)=>{let a=(0,n.D7)().state.forkWidth,i=(0,n.D7)().state.forkHeight;if(e.parentId){let t=a;a=i,i=t}return t.append("rect").style("stroke","black").style("fill","black").attr("width",a).attr("height",i).attr("x",(0,n.D7)().state.padding).attr("y",(0,n.D7)().state.padding)},"drawForkJoinState"),m=(0,n.K2)((t,e,a,i)=>{let r=0,d=i.append("text");d.style("text-anchor","start"),d.attr("class","noteText");let s=t.replace(/\r\n/g,"<br/>"),o=(s=s.replace(/\n/g,"<br/>")).split(n.Y2.lineBreakRegex),g=1.25*(0,n.D7)().state.noteMargin;for(let t of o){let i=t.trim();if(i.length>0){let t=d.append("tspan");t.text(i),0===g&&(g+=t.node().getBBox().height),r+=g,t.attr("x",e+(0,n.D7)().state.noteMargin),t.attr("y",a+r+1.25*(0,n.D7)().state.noteMargin)}}return{textWidth:d.node().getBBox().width,textHeight:r}},"_drawLongText"),b=(0,n.K2)((t,e)=>{e.attr("class","state-note");let a=e.append("rect").attr("x",0).attr("y",(0,n.D7)().state.padding),{textWidth:i,textHeight:r}=m(t,0,0,e.append("g"));return a.attr("height",r+2*(0,n.D7)().state.noteMargin),a.attr("width",i+2*(0,n.D7)().state.noteMargin),a},"drawNote"),B=(0,n.K2)(function(t,e){let a=e.id,i={id:a,label:e.id,width:0,height:0},r=t.append("g").attr("id",a).attr("class","stateGroup");"start"===e.type&&c(r),"end"===e.type&&y(r),("fork"===e.type||"join"===e.type)&&w(r,e),"note"===e.type&&b(e.note.text,r),"divider"===e.type&&x(r),"default"===e.type&&0===e.descriptions.length&&D(r,e),"default"===e.type&&e.descriptions.length>0&&u(r,e);let d=r.node().getBBox();return i.width=d.width+2*(0,n.D7)().state.padding,i.height=d.height+2*(0,n.D7)().state.padding,p(a,i),i},"drawState"),k=0,S=(0,n.K2)(function(t,e,a){let i=(0,n.K2)(function(t){switch(t){case r.iP.relationType.AGGREGATION:return"aggregation";case r.iP.relationType.EXTENSION:return"extension";case r.iP.relationType.COMPOSITION:return"composition";case r.iP.relationType.DEPENDENCY:return"dependency"}},"getRelationType");e.points=e.points.filter(t=>!Number.isNaN(t.y));let o=e.points,g=(0,s.n8j)().x(function(t){return t.x}).y(function(t){return t.y}).curve(s.qrM),l=t.append("path").attr("d",g(o)).attr("id","edge"+k).attr("class","transition"),p="";if((0,n.D7)().state.arrowMarkerAbsolute&&(p=(p=(p=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),l.attr("marker-end","url("+p+"#"+i(r.iP.relationType.DEPENDENCY)+"End)"),void 0!==a.title){let i=t.append("g").attr("class","stateLabel"),{x:r,y:s}=d._K.calcLabelPosition(e.points),o=n.Y2.getRows(a.title),g=0,l=[],p=0,h=0;for(let t=0;t<=o.length;t++){let e=i.append("text").attr("text-anchor","middle").text(o[t]).attr("x",r).attr("y",s+g),a=e.node().getBBox();p=Math.max(p,a.width),h=Math.min(h,a.x),n.Rm.info(a.x,r,s+g),0===g&&(g=e.node().getBBox().height,n.Rm.info("Title height",g,s)),l.push(e)}let c=g*o.length;if(o.length>1){let t=(o.length-1)*g*.5;l.forEach((e,a)=>e.attr("y",s+a*g-t)),c=g*o.length}let x=i.node().getBBox();i.insert("rect",":first-child").attr("class","box").attr("x",r-p/2-(0,n.D7)().state.padding/2).attr("y",s-c/2-(0,n.D7)().state.padding/2-3.5).attr("width",p+(0,n.D7)().state.padding).attr("height",c+(0,n.D7)().state.padding),n.Rm.info(x)}k++},"drawEdge"),N={},E=(0,n.K2)(function(){},"setConf"),M=(0,n.K2)(function(t){t.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),v=(0,n.K2)(function(t,e,a,r){let d;i=(0,n.D7)().state;let o=(0,n.D7)().securityLevel;"sandbox"===o&&(d=(0,s.Ltv)("#i"+e));let g="sandbox"===o?(0,s.Ltv)(d.nodes()[0].contentDocument.body):(0,s.Ltv)("body"),l="sandbox"===o?d.nodes()[0].contentDocument:document;n.Rm.debug("Rendering diagram "+t);let p=g.select(`[id='${e}']`);M(p),R(r.db.getRootDoc(),p,void 0,!1,g,l,r);let h=i.padding,c=p.node().getBBox(),x=c.width+2*h,D=c.height+2*h;(0,n.a$)(p,D,1.75*x,i.useMaxWidth),p.attr("viewBox",`${c.x-i.padding} ${c.y-i.padding} `+x+" "+D)},"draw"),K=(0,n.K2)(t=>t?t.length*i.fontSizeFactor:1,"getLabelWidth"),R=(0,n.K2)((t,e,a,r,d,s,l)=>{let p;let h=new g.T({compound:!0,multigraph:!0}),c=!0;for(p=0;p<t.length;p++)if("relation"===t[p].stmt){c=!1;break}a?h.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:c?1:i.edgeLengthFactor,nodeSep:c?1:50,isMultiGraph:!0}):h.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:c?1:i.edgeLengthFactor,nodeSep:c?1:50,ranker:"tight-tree",isMultiGraph:!0}),h.setDefaultEdgeLabel(function(){return{}}),l.db.extract(t);let x=l.db.getStates(),D=l.db.getRelations();for(let t of Object.keys(x)){let n;let o=x[t];if(a&&(o.parentId=a),o.doc){let t=e.append("g").attr("id",o.id).attr("class","stateGroup");n=R(o.doc,t,o.id,!r,d,s,l);{let e=(t=f(t,o,r)).node().getBBox();n.width=e.width,n.height=e.height+i.padding/2,N[o.id]={y:i.compositTitleSize}}}else n=B(e,o,h);if(o.note){let t=B(e,{descriptions:[],id:o.id+"-note",note:o.note,type:"note"},h);"left of"===o.note.position?(h.setNode(n.id+"-note",t),h.setNode(n.id,n)):(h.setNode(n.id,n),h.setNode(n.id+"-note",t)),h.setParent(n.id,n.id+"-group"),h.setParent(n.id+"-note",n.id+"-group")}else h.setNode(n.id,n)}n.Rm.debug("Count=",h.nodeCount(),h);let u=0;D.forEach(function(t){u++,n.Rm.debug("Setting edge",t),h.setEdge(t.id1,t.id2,{relation:t,width:K(t.title),height:i.labelHeight*n.Y2.getRows(t.title).length,labelpos:"c"},"id"+u)}),(0,o.Zp)(h),n.Rm.debug("Graph after layout",h.nodes());let y=e.node();h.nodes().forEach(function(t){void 0!==t&&void 0!==h.node(t)?(n.Rm.warn("Node "+t+": "+JSON.stringify(h.node(t))),d.select("#"+y.id+" #"+t).attr("transform","translate("+(h.node(t).x-h.node(t).width/2)+","+(h.node(t).y+(N[t]?N[t].y:0)-h.node(t).height/2)+" )"),d.select("#"+y.id+" #"+t).attr("data-x-shift",h.node(t).x-h.node(t).width/2),s.querySelectorAll("#"+y.id+" #"+t+" .divider").forEach(t=>{let e=t.parentElement,a=0,i=0;e&&(e.parentElement&&(a=e.parentElement.getBBox().width),Number.isNaN(i=parseInt(e.getAttribute("data-x-shift"),10))&&(i=0)),t.setAttribute("x1",0-i+8),t.setAttribute("x2",a-i-8)})):n.Rm.debug("No Node "+t+": "+JSON.stringify(h.node(t)))});let w=y.getBBox();h.edges().forEach(function(t){void 0!==t&&void 0!==h.edge(t)&&(n.Rm.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(h.edge(t))),S(e,h.edge(t),h.edge(t).relation))}),w=y.getBBox();let m={id:a||"root",label:a||"root",width:0,height:0};return m.width=w.width+2*i.padding,m.height=w.height+2*i.padding,n.Rm.debug("Doc rendered",m,h),m},"renderDoc"),z={parser:r.Zk,db:r.iP,renderer:{setConf:E,draw:v},styles:r.tM,init:(0,n.K2)(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,r.iP.clear()},"init")}}}]); \ No newline at end of file diff --git a/assets/js/64dfb3e9.7f07c838.js b/assets/js/64dfb3e9.ba99162a.js similarity index 62% rename from assets/js/64dfb3e9.7f07c838.js rename to assets/js/64dfb3e9.ba99162a.js index c007c00b6c..6939e1aa8b 100644 --- a/assets/js/64dfb3e9.7f07c838.js +++ b/assets/js/64dfb3e9.ba99162a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[71892],{89585:(e,t,n)=>{n.d(t,{A:()=>r});let r="/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport React, {useState} from 'react';\n\nexport default function MyComponent() {\n const [bool, setBool] = useState(false);\n return (\n <div>\n <p>MyComponent rendered !</p>\n <p>bool={bool ? 'true' : 'false'}</p>\n <p>\n <button onClick={() => setBool((b) => !b)}>toggle bool</button>\n </p>\n </div>\n );\n}\n"},32738:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(62540);n(63696);var o=n(46733);function s({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return(0,r.jsx)("div",{className:"tableOfContentsInline_2sru",children:(0,r.jsx)(o.A,{toc:e,minHeadingLevel:t,maxHeadingLevel:n,className:"table-of-contents",linkClassName:null})})}},46733:(e,t,n)=>{n.d(t,{A:()=>u});var r=n(62540),o=n(63696),s=n(25436);function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function c(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function l(e){let t=e.getBoundingClientRect();return t.top===t.bottom?l(e.parentNode):t}var a=n(36372);let d=o.memo(function e({toc:t,className:n,linkClassName:o,isChild:s}){return t.length?(0,r.jsx)("ul",{className:s?void 0:n,children:t.map(t=>(0,r.jsxs)("li",{children:[(0,r.jsx)(a.A,{to:`#${t.id}`,className:null!=o?o:void 0,dangerouslySetInnerHTML:{__html:t.value}}),(0,r.jsx)(e,{isChild:!0,toc:t.children,className:n,linkClassName:o})]},t.id))}):null});function u(e){var{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:a="table-of-contents__link",linkActiveClassName:u,minHeadingLevel:p,maxHeadingLevel:h}=e,m=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["toc","className","linkClassName","linkActiveClassName","minHeadingLevel","maxHeadingLevel"]);let f=(0,s.p)(),b=null!=p?p:f.tableOfContents.minHeadingLevel,j=null!=h?h:f.tableOfContents.maxHeadingLevel,g=function({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return(0,o.useMemo)(()=>(function e({toc:t,minHeadingLevel:n,maxHeadingLevel:r}){return t.flatMap(t=>{let o=e({toc:t.children,minHeadingLevel:n,maxHeadingLevel:r});return t.level>=n&&t.level<=r?[c(i({},t),{children:o})]:o})})({toc:function(e){let t=e.map(e=>c(i({},e),{parentIndex:-1,children:[]})),n=Array(7).fill(-1);t.forEach((e,t)=>{let r=n.slice(2,e.level);e.parentIndex=Math.max(...r),n[e.level]=t});let r=[];return t.forEach(e=>{let{parentIndex:n}=e,o=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["parentIndex"]);n>=0?t[n].children.push(o):r.push(o)}),r}(e),minHeadingLevel:t,maxHeadingLevel:n}),[e,t,n])}({toc:t,minHeadingLevel:b,maxHeadingLevel:j});return!function(e){let t=(0,o.useRef)(void 0),n=function(){let e=(0,o.useRef)(0),{navbar:{hideOnScroll:t}}=(0,s.p)();return(0,o.useEffect)(()=>{e.current=t?0:document.querySelector(".navbar").clientHeight},[t]),e}();(0,o.useEffect)(()=>{if(!e)return()=>{};let{linkClassName:r,linkActiveClassName:o,minHeadingLevel:s,maxHeadingLevel:i}=e;function c(){let e=Array.from(document.getElementsByClassName(r)),c=function(e,{anchorTopOffset:t}){var n,r,o;let s=e.find(e=>l(e).top>=t);return s?(o=l(s)).top>0&&o.bottom<window.innerHeight/2?s:null!==(n=e[e.indexOf(s)-1])&&void 0!==n?n:null:null!==(r=e[e.length-1])&&void 0!==r?r:null}(function({minHeadingLevel:e,maxHeadingLevel:t}){let n=[];for(let r=e;r<=t;r+=1)n.push(`h${r}.anchor`);return Array.from(document.querySelectorAll(n.join()))}({minHeadingLevel:s,maxHeadingLevel:i}),{anchorTopOffset:n.current}),a=e.find(e=>c&&c.id===decodeURIComponent(e.href.substring(e.href.indexOf("#")+1)));e.forEach(e=>{e===a?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)})}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}},[e,n])}((0,o.useMemo)(()=>{if(a&&u)return{linkClassName:a,linkActiveClassName:u,minHeadingLevel:b,maxHeadingLevel:j}},[a,u,b,j])),(0,r.jsx)(d,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({toc:g,className:n,linkClassName:a},m))}},15995:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(62540);n(63696);var o=n(11750);function s({children:e,hidden:t,className:n}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,o.A)("tabItem_pnkT",n),hidden:t,children:e})}},27446:(e,t,n)=>{n.d(t,{A:()=>x});var r=n(62540),o=n(63696),s=n(11750),i=n(7846),c=n(49519),l=n(96439),a=n(19739),d=n(66904),u=n(79244);function p(e){var t,n;return null!==(n=null===(t=o.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,o.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==n?n:[]}function h({value:e,tabValues:t}){return t.some(t=>t.value===e)}var m=n(10709);function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function b(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function j({className:e,block:t,selectedValue:n,selectValue:o,tabValues:c}){let l=[],{blockElementScrollPositionUntilNextRender:a}=(0,i.a_)(),d=e=>{let t=e.currentTarget,r=c[l.indexOf(t)].value;r!==n&&(a(t),o(r))},u=e=>{var t,n;let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let n=l.indexOf(e.currentTarget)+1;r=null!==(t=l[n])&&void 0!==t?t:l[0];break}case"ArrowLeft":{let t=l.indexOf(e.currentTarget)-1;r=null!==(n=l[t])&&void 0!==n?n:l[l.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":t},e),children:c.map(({value:e,label:t,attributes:o})=>(0,r.jsx)("li",b(f({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>l.push(e),onKeyDown:u,onClick:d},o),{className:(0,s.A)("tabs__item","tabItem_AQgk",null==o?void 0:o.className,{"tabs__item--active":n===e}),children:null!=t?t:e}),e))})}function g({lazy:e,children:t,selectedValue:n}){let i=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=i.find(e=>e.props.value===n);return e?(0,o.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:i.map((e,t)=>(0,o.cloneElement)(e,{key:t,hidden:e.props.value!==n}))})}function y(e){let t=function(e){let{defaultValue:t,queryString:n=!1,groupId:r}=e,s=function(e){let{values:t,children:n}=e;return(0,o.useMemo)(()=>{let e=null!=t?t:p(n).map(({props:{value:e,label:t,attributes:n,default:r}})=>({value:e,label:t,attributes:n,default:r}));return!function(e){let t=(0,d.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,n])}(e),[i,m]=(0,o.useState)(()=>(function({defaultValue:e,tabValues:t}){var n;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!h({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let r=null!==(n=t.find(e=>e.default))&&void 0!==n?n:t[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:t,tabValues:s})),[f,b]=function({queryString:e=!1,groupId:t}){let n=(0,c.W6)(),r=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,a.aZ)(r),(0,o.useCallback)(e=>{var t,o;if(!r)return;let s=new URLSearchParams(n.location.search);s.set(r,e),n.replace((t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},n.location),o=o={search:s.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}),t))},[r,n])]}({queryString:n,groupId:r}),[j,g]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[n,r]=(0,u.Dv)(t);return[n,(0,o.useCallback)(e=>{t&&r.set(e)},[t,r])]}({groupId:r}),y=(()=>{let e=null!=f?f:j;return h({value:e,tabValues:s})?e:null})();return(0,l.A)(()=>{y&&m(y)},[y]),{selectedValue:i,selectValue:(0,o.useCallback)(e=>{if(!h({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);m(e),b(e),g(e)},[b,g,s]),tabValues:s}}(e);return(0,r.jsxs)("div",{className:(0,s.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(j,f({},t,e)),(0,r.jsx)(g,f({},t,e))]})}function x(e){let t=(0,m.A)();return(0,r.jsx)(y,b(f({},e),{children:p(e.children)}),String(t))}},40576:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(62540);n(63696);var o=n(10709);function s({children:e,fallback:t}){return(0,o.A)()?(0,r.jsx)(r.Fragment,{children:null==e?void 0:e()}):null!=t?t:null}},70361:(e,t,n)=>{n.d(t,{A:()=>c});var r=n(62540);n(63696);var o=n(11750);let s="dot_giz1",i="bar_rrRL";function c({children:e,minHeight:t,url:n="http://localhost:3000",style:c,bodyStyle:l}){var a,d;return(0,r.jsxs)("div",{className:"browserWindow_my1Q",style:(a=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},c),d=d={minHeight:t},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(d)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(d)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(d,e))}),a),children:[(0,r.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,r.jsxs)("div",{className:"buttons_uHc7",children:[(0,r.jsx)("span",{className:s,style:{background:"#f25f58"}}),(0,r.jsx)("span",{className:s,style:{background:"#fbbe3c"}}),(0,r.jsx)("span",{className:s,style:{background:"#58cb42"}})]}),(0,r.jsx)("div",{className:(0,o.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:n}),(0,r.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:i}),(0,r.jsx)("span",{className:i}),(0,r.jsx)("span",{className:i})]})})]}),(0,r.jsx)("div",{className:"browserWindowBody_Idgs",style:l,children:e})]})}},55887:(e,t,n)=>{n.d(t,{A:()=>ec});var r,o,s,i={};n.r(i),n.d(i,{ButtonExample:()=>M});var c=n(62540),l=n(63696),a=n(11750),d=n(10709),u=n(55152),p=n(81912),h=n(99468),m=n(40576),f=n(1495),b=n(66659),j=n(25436);function g(){let{prism:e}=(0,j.p)(),{colorMode:t}=(0,b.G)(),n=e.theme,r=e.darkTheme||n;return"dark"===t?r:n}var y=n(43758);function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function O({children:e}){return(0,c.jsx)("div",{className:(0,a.A)("playgroundHeader_Tvsk"),children:e})}function v(){return(0,c.jsx)("div",{children:"Loading..."})}function w(){return(0,c.jsx)(m.A,{fallback:(0,c.jsx)(v,{}),children:()=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(y.A,{fallback:e=>(0,c.jsx)(f.MN,x({},e)),children:(0,c.jsx)(u.pA,{})}),(0,c.jsx)(u.p1,{})]})})}function k(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(O,{children:(0,c.jsx)(p.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,c.jsx)("div",{className:"playgroundPreview_mApW",children:(0,c.jsx)(w,{})})]})}function P(){let e=(0,d.A)();return(0,c.jsx)(u.w,{className:"playgroundEditor_TySg"},String(e))}function D(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(O,{children:(0,c.jsx)(p.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,c.jsx)(P,{})]})}let S=e=>`${e};`;function C(e){var t,n,r,o,{children:s,transformCode:i}=e,l=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:a}}=(0,h.A)(),{liveCodeBlock:{playgroundPosition:d}}=a,p=g(),m=null!==(o=null===(r=l.metastring)||void 0===r?void 0:r.includes("noInline"))&&void 0!==o&&o;return(0,c.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,c.jsx)(u.Q,(t=x({code:null==s?void 0:s.replace(/\n$/,""),noInline:m,transformCode:null!=i?i:S,theme:p},l),n=n={children:"top"===d?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(k,{}),(0,c.jsx)(D,{})]}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(D,{}),(0,c.jsx)(k,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))})}function N(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function M(e){var t,n;return(0,c.jsx)("button",(t=N({type:"button"},e),n=n={style:N({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let E=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({React:l},l,i);var B=n(12653),A=n(19934),I=n.n(A);let T=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),H=RegExp("\\{(?<range>[\\d,-]+)\\}"),X={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},L=(r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},X),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}),r),_=Object.keys(X);function R(e,t){let n=e.map(e=>{let{start:n,end:r}=L[e];return`(?:${n}\\s*(${t.flatMap(e=>{var t,n;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(n=e.block)||void 0===n?void 0:n.end].filter(Boolean)}).join("|")})\\s*${r})`}).join("|");return RegExp(`^\\s*(?:${n})\\s*$`)}function F(e){var t,n,{as:r}=e,o=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["as"]);let s=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach(([e,r])=>{let o=t[e];o&&"string"==typeof r&&(n[o]=r)}),n}(g());return(0,c.jsx)(r,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},o),n=n={style:s,className:(0,a.A)(o.className,"codeBlockContainer_jDV4",B.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let W={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function z({children:e,className:t}){return(0,c.jsx)(F,{as:"pre",tabIndex:0,className:(0,a.A)(W.codeBlockStandalone,"thin-scrollbar",t),children:(0,c.jsx)("code",{className:W.codeBlockLines,children:e})})}var $=n(2550);let J={attributes:!0,characterData:!0,childList:!0,subtree:!0};var q=n(27663);let U={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function V(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function G({line:e,classNames:t,showLineNumbers:n,getLineProps:r,getTokenProps:o}){var s,i;1===e.length&&"\n"===e[0].content&&(e[0].content="");let l=r({line:e,className:(0,a.A)(t,n&&U.codeLine)}),d=e.map((e,t)=>(0,c.jsx)("span",V({},o({token:e})),t));return(0,c.jsxs)("span",(s=V({},l),i=i={children:[n?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:U.codeLineNumber}),(0,c.jsx)("span",{className:U.codeLineContent,children:d})]}):d,(0,c.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(i)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(i)).forEach(function(e){Object.defineProperty(s,e,Object.getOwnPropertyDescriptor(i,e))}),s))}var Q=n(936);function Y(e){var t,n;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,c.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}function Z(e){var t,n;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,c.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[n,r]=(0,l.useState)(!1),o=(0,l.useRef)(void 0),s=(0,l.useCallback)(()=>{(0,Q.A)(e),r(!0),o.current=window.setTimeout(()=>{r(!1)},1e3)},[e]);return(0,l.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,c.jsx)("button",{type:"button","aria-label":n?(0,p.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.A)("clean-btn",t,K.copyButton,n&&K.copyButtonCopied),onClick:s,children:(0,c.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,c.jsx)(Y,{className:K.copyButtonIcon}),(0,c.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,n;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,c.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let en={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function er({className:e,onClick:t,isEnabled:n}){let r=(0,p.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,c.jsx)("button",{type:"button",onClick:t,className:(0,a.A)("clean-btn",e,n&&en.wordWrapButtonEnabled),"aria-label":r,title:r,children:(0,c.jsx)(et,{className:en.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:n,title:r,showLineNumbers:o,language:s}){var i,d,u,p;let{prism:{defaultLanguage:h,magicComments:m}}=(0,j.p)(),f=null==(d=null!==(i=null!=s?s:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==i?i:h)?void 0:d.toLowerCase(),b=g(),y=function(){let[e,t]=(0,l.useState)(!1),[n,r]=(0,l.useState)(!1),o=(0,l.useRef)(null),s=(0,l.useCallback)(()=>{let n=o.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),i=(0,l.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;r(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[n,r]=(0,l.useState)(),o=(0,l.useCallback)(()=>{var t;r(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,r]);(0,l.useEffect)(()=>{o()},[o]),function(e,t,n=J){let r=(0,$._q)(t),o=(0,$.Be)(n);(0,l.useEffect)(()=>{let t=new MutationObserver(r);return e&&t.observe(e,o),()=>t.disconnect()},[e,r,o])}(n,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,i),(0,l.useEffect)(()=>{i()},[e,i]),(0,l.useEffect)(()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)}),[i]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:n,toggle:s}}(),x=(null!==(p=null==n?void 0:null===(u=n.match(T))||void 0===u?void 0:u.groups.title)&&void 0!==p?p:"")||r,{lineClassNames:O,code:v}=function(e,t){let n=e.replace(/\n$/,""),{language:r,magicComments:o,metastring:s}=t;if(s&&H.test(s)){let e=s.match(H).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${s}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(I()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:n}}if(void 0===r)return{lineClassNames:{},code:n};let i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return R(["js","jsBlock"],t);case"jsx":case"tsx":return R(["js","jsBlock","jsx"],t);case"html":return R(["js","jsBlock","html"],t);case"python":case"py":case"bash":return R(["bash"],t);case"markdown":case"md":return R(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return R(["tex"],t);case"lua":case"haskell":case"sql":return R(["lua"],t);case"wasm":return R(["wasm"],t);case"vb":case"vba":case"visual-basic":return R(["vb","rem"],t);case"vbnet":return R(["vbnet","rem"],t);case"batch":return R(["rem"],t);case"basic":return R(["rem","f90"],t);case"fsharp":return R(["js","ml"],t);case"ocaml":case"sml":return R(["ml"],t);case"fortran":return R(["f90"],t);case"cobol":return R(["cobol"],t);default:return R(_,t)}}(r,o),c=n.split("\n"),l=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),a=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),d=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<c.length;){let t=c[e].match(i);if(!t){e+=1;continue}let n=t.slice(1).find(e=>void 0!==e);a[n]?l[a[n]].range+=`${e},`:d[n]?l[d[n]].start=e:u[n]&&(l[u[n]].range+=`${l[u[n]].start}-${e-1},`),c.splice(e,1)}n=c.join("\n");let p={};return Object.entries(l).forEach(([e,{range:t}])=>{I()(t).forEach(t=>{var n;null!==(n=p[t])&&void 0!==n||(p[t]=[]),p[t].push(e)})}),{lineClassNames:p,code:n}}(e,{metastring:n,language:f,magicComments:m}),w=null!=o?o:!!(null==n?void 0:n.includes("showLineNumbers"));return(0,c.jsxs)(F,{as:"div",className:(0,a.A)(t,f&&!t.includes(`language-${f}`)&&`language-${f}`),children:[x&&(0,c.jsx)("div",{className:W.codeBlockTitle,children:x}),(0,c.jsxs)("div",{className:W.codeBlockContent,children:[(0,c.jsx)(q.f4,{theme:b,code:v,language:null!=f?f:"text",children:({className:e,style:t,tokens:n,getLineProps:r,getTokenProps:o})=>(0,c.jsx)("pre",{tabIndex:0,ref:y.codeBlockRef,className:(0,a.A)(e,W.codeBlock,"thin-scrollbar"),style:t,children:(0,c.jsx)("code",{className:(0,a.A)(W.codeBlockLines,w&&W.codeBlockLinesWithNumbering),children:n.map((e,t)=>(0,c.jsx)(G,{line:e,getLineProps:r,getTokenProps:o,classNames:O[t],showLineNumbers:w},t))})})}),(0,c.jsxs)("div",{className:W.buttonGroup,children:[(y.isEnabled||y.isCodeScrollable)&&(0,c.jsx)(er,{className:W.codeButton,onClick:()=>y.toggle(),isEnabled:y.isEnabled}),(0,c.jsx)(ee,{className:W.codeButton,code:v})]})]})]})}function es(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}let ei=(s=function(e){var t,n,{children:r}=e,o=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["children"]);let s=(0,d.A)(),i=l.Children.toArray(r).some(e=>(0,l.isValidElement)(e))?r:Array.isArray(r)?r.join(""):r,a="string"==typeof i?eo:z;return(0,c.jsx)(a,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},o),n=n={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t),String(s))},function(e){return e.live?(0,c.jsx)(C,es({scope:E},e)):(0,c.jsx)(s,es({},e))});function ec(e){return(0,c.jsx)(ei,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e))}},5982:(e,t,n)=>{n.r(t),n.d(t,{Highlight:()=>b,assets:()=>f,contentTitle:()=>m,default:()=>y,frontMatter:()=>h,metadata:()=>r,toc:()=>j});let r=JSON.parse('{"id":"guides/markdown-features/react","title":"MDX and React","description":"Using the power of React in Docusaurus Markdown documents, thanks to MDX","source":"@site/docs/guides/markdown-features/markdown-features-react.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/react","permalink":"/docs/markdown-features/react","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-react.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"react","description":"Using the power of React in Docusaurus Markdown documents, thanks to MDX","slug":"/markdown-features/react"},"sidebar":"docs","previous":{"title":"Markdown Features","permalink":"/docs/markdown-features"},"next":{"title":"Tabs","permalink":"/docs/markdown-features/tabs"}}');var o=n(62540),s=n(43023),i=n(70361),c=n(27446),l=n(15995),a=n(55887),d=n(89585);function u(e){let t={code:"code",p:"p",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("span",{children:["Hello ",e.name]}),"\n",(0,o.jsxs)(t.p,{children:["This is text some content from ",(0,o.jsx)(t.code,{children:"_markdown-partial-example.md"}),"."]})]})}function p(e={}){let{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}n(32738);let h={id:"react",description:"Using the power of React in Docusaurus Markdown documents, thanks to MDX",slug:"/markdown-features/react"},m="MDX and React",f={},b=({children:e,color:t})=>{let n={span:"span",...(0,s.R)()};return(0,o.jsx)(n.span,{style:{backgroundColor:t,borderRadius:"2px",color:"#fff",padding:"0.2rem"},children:e})},j=[{value:"Exporting components",id:"exporting-components",level:3},{value:"Importing components",id:"importing-components",level:3},{value:"MDX component scope",id:"mdx-component-scope",level:3},{value:"Markdown and JSX interoperability",id:"markdown-and-jsx-interoperability",level:3},{value:"Importing code snippets",id:"importing-code-snippets",level:2},{value:"Importing Markdown",id:"importing-markdown",level:2},{value:"Available exports",id:"available-exports",level:2}];function g(e){let t={a:"a",admonition:"admonition",b:"b",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"mdx-and-react",children:"MDX and React"})}),"\n","\n",(0,o.jsxs)(t.p,{children:["Docusaurus has built-in support for ",(0,o.jsx)(t.a,{href:"https://mdxjs.com/",children:"MDX"}),", which allows you to write JSX within your Markdown files and render them as React components."]}),"\n",(0,o.jsxs)(t.p,{children:["Check out the ",(0,o.jsx)(t.a,{href:"https://mdxjs.com/",children:"MDX docs"})," to see what fancy stuff you can do with MDX."]}),"\n",(0,o.jsxs)(t.admonition,{title:"Debugging MDX",type:"tip",children:[(0,o.jsx)(t.p,{children:"The MDX format is quite strict, and you may get compilation errors."}),(0,o.jsxs)(t.p,{children:["Use the ",(0,o.jsx)(t.strong,{children:(0,o.jsx)(t.a,{href:"https://mdxjs.com/playground/",children:"MDX playground"})})," to debug them and make sure your syntax is valid."]})]}),"\n",(0,o.jsx)(t.admonition,{type:"info",children:(0,o.jsxs)(t.p,{children:["Prettier, the most popular formatter, ",(0,o.jsx)(t.a,{href:"https://github.com/prettier/prettier/issues/12209",children:"supports only the legacy MDX v1"}),". If you get an unintentional formatting result, you may want to add ",(0,o.jsx)(t.code,{children:"{/* prettier-ignore */}"})," before the problematic area, or add ",(0,o.jsx)(t.code,{children:"*.mdx"})," to your ",(0,o.jsx)(t.code,{children:".prettierignore"}),", until Prettier has proper support for MDX v3. ",(0,o.jsxs)(t.a,{href:"https://github.com/orgs/mdx-js/discussions/2067",children:["One of the main authors of MDX recommends ",(0,o.jsx)(t.code,{children:"remark-cli"})," with ",(0,o.jsx)(t.code,{children:"remark-mdx"})]}),"."]})}),"\n",(0,o.jsx)(t.h3,{id:"exporting-components",children:"Exporting components"}),"\n",(0,o.jsxs)(t.p,{children:["To define any custom component within an MDX file, you have to export it: only paragraphs that start with ",(0,o.jsx)(t.code,{children:"export"})," will be parsed as components instead of prose."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",children:"export const Highlight = ({children, color}) => (\n <span\n style={{\n backgroundColor: color,\n borderRadius: '2px',\n color: '#fff',\n padding: '0.2rem',\n }}>\n {children}\n </span>\n);\n\n<Highlight color=\"#25c2a0\">Docusaurus green</Highlight> and <Highlight color=\"#1877F2\">Facebook blue</Highlight> are my favorite colors.\n\nI can write **Markdown** alongside my _JSX_!\n"})}),"\n",(0,o.jsx)(t.p,{children:"Notice how it renders both the markup from your React component and the Markdown syntax:"}),"\n","\n",(0,o.jsxs)(i.A,{minHeight:240,children:[(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(b,{color:"#25c2a0",children:"Docusaurus green"}),"\n"," ","and ",(0,o.jsx)(b,{color:"#1877F2",children:"Facebook blue"})," are my favorite colors."]}),(0,o.jsxs)(t.p,{children:["I can write ",(0,o.jsx)(t.strong,{children:"Markdown"})," alongside my ",(0,o.jsx)(t.em,{children:"JSX"}),"!"]})]}),"\n",(0,o.jsxs)(t.admonition,{title:"MDX is JSX",type:"warning",children:[(0,o.jsx)(t.p,{children:"Since all doc files are parsed using MDX, anything that looks like HTML is actually JSX. Therefore, if you need to inline-style a component, follow JSX flavor and provide style objects."}),(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",children:"/* Instead of this: */\n<span style=\"background-color: red\">Foo</span>\n/* Use this: */\n<span style={{backgroundColor: 'red'}}>Foo</span>\n"})})]}),"\n",(0,o.jsx)(t.h3,{id:"importing-components",children:"Importing components"}),"\n",(0,o.jsx)(t.p,{children:"You can also import your own components defined in other files or third-party components installed via npm."}),"\n","\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-md",children:"<!-- Docusaurus theme component -->\nimport TOCInline from '@theme/TOCInline';\n<!-- External component -->\nimport Button from '@mui/material/Button';\n<!-- Custom component -->\nimport BrowserWindow from '@site/src/components/BrowserWindow';\n"})}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.code,{children:"@site"})," alias points to your website's directory, usually where the ",(0,o.jsx)(t.code,{children:"docusaurus.config.js"})," file is. Using an alias instead of relative paths (",(0,o.jsx)(t.code,{children:"'../../src/components/BrowserWindow'"}),") saves you from updating import paths when moving files around, or when ",(0,o.jsx)(t.a,{href:"/docs/versioning",children:"versioning docs"})," and ",(0,o.jsx)(t.a,{href:"/docs/i18n/tutorial",children:"translating"}),"."]})}),"\n",(0,o.jsxs)(t.p,{children:["While declaring components within Markdown is very convenient for simple cases, it becomes hard to maintain because of limited editor support, risks of parsing errors, and low reusability. Use a separate ",(0,o.jsx)(t.code,{children:".js"})," file when your component involves complex JS logic:"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",metastring:'title="src/components/Highlight.js"',children:"import React from 'react';\n\nexport default function Highlight({children, color}) {\n return (\n <span\n style={{\n backgroundColor: color,\n borderRadius: '2px',\n color: '#fff',\n padding: '0.2rem',\n }}>\n {children}\n </span>\n );\n}\n"})}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-md",metastring:'title="markdown-file.mdx"',children:"import Highlight from '@site/src/components/Highlight';\n\n<Highlight color=\"#25c2a0\">Docusaurus green</Highlight>\n"})}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["If you use the same component across a lot of files, you don't need to import it everywhere\u2014consider adding it to the global scope. ",(0,o.jsx)(t.a,{href:"#mdx-component-scope",children:"See below"})]})}),"\n",(0,o.jsx)(t.h3,{id:"mdx-component-scope",children:"MDX component scope"}),"\n",(0,o.jsxs)(t.p,{children:["Apart from ",(0,o.jsx)(t.a,{href:"#importing-components",children:"importing a component"})," and ",(0,o.jsx)(t.a,{href:"#exporting-components",children:"exporting a component"}),", a third way to use a component in MDX is to ",(0,o.jsx)(t.strong,{children:"register it to the global scope"}),", which will make it automatically available in every MDX file, without any import statements."]}),"\n",(0,o.jsx)(t.p,{children:"For example, given this MDX file:"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-md",children:"- a\n- list!\n\nAnd some <Highlight>custom markup</Highlight>...\n"})}),"\n",(0,o.jsxs)(t.p,{children:["It will be compiled to a React component containing ",(0,o.jsx)(t.code,{children:"ul"}),", ",(0,o.jsx)(t.code,{children:"li"}),", ",(0,o.jsx)(t.code,{children:"p"}),", and ",(0,o.jsx)(t.code,{children:"Highlight"})," elements. ",(0,o.jsx)(t.code,{children:"Highlight"})," is not a native html element: you need to provide your own React component implementation for it."]}),"\n",(0,o.jsxs)(t.p,{children:["In Docusaurus, the MDX component scope is provided by the ",(0,o.jsx)(t.code,{children:"@theme/MDXComponents"})," file. It's not a React component, ",(0,o.jsx)(t.em,{children:"per se"}),", unlike most other exports under the ",(0,o.jsx)(t.code,{children:"@theme/"})," alias: it is a record from tag names like ",(0,o.jsx)(t.code,{children:"Highlight"})," to their React component implementations."]}),"\n",(0,o.jsxs)(t.p,{children:["If you ",(0,o.jsx)(t.a,{href:"/docs/swizzling",children:"swizzle"})," this component, you will find all tags that have been implemented, and you can further customize our implementation by swizzling the respective sub-component, like ",(0,o.jsx)(t.code,{children:"@theme/MDXComponents/Code"})," (which is used to render ",(0,o.jsx)(t.a,{href:"/docs/markdown-features/code-blocks",children:"Markdown code blocks"}),")."]}),"\n",(0,o.jsxs)(t.p,{children:["If you want to register extra tag names (like the ",(0,o.jsx)(t.code,{children:"<Highlight>"})," tag above), you should consider ",(0,o.jsxs)(t.a,{href:"/docs/swizzling#wrapping",children:["wrapping ",(0,o.jsx)(t.code,{children:"@theme/MDXComponents"})]}),", so you don't have to maintain all the existing mappings. Since the swizzle CLI doesn't allow wrapping non-component files yet, you should manually create the wrapper:"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-js",metastring:'title="src/theme/MDXComponents.js"',children:"import React from 'react';\n// Import the original mapper\nimport MDXComponents from '@theme-original/MDXComponents';\n// highlight-next-line\nimport Highlight from '@site/src/components/Highlight';\n\nexport default {\n // Re-use the default mapping\n ...MDXComponents,\n // Map the \"<Highlight>\" tag to our Highlight component\n // `Highlight` will receive all props that were passed to `<Highlight>` in MDX\n // highlight-next-line\n Highlight,\n};\n"})}),"\n",(0,o.jsxs)(t.p,{children:["And now, you can freely use ",(0,o.jsx)(t.code,{children:"<Highlight>"})," in every page, without writing the import statement:"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-md",children:'I can conveniently use <Highlight color="#25c2a0">Docusaurus green</Highlight> everywhere!\n'})}),"\n",(0,o.jsx)(i.A,{children:(0,o.jsxs)(t.p,{children:["I can conveniently use ",(0,o.jsx)(b,{color:"#25c2a0",children:"Docusaurus green"})," everywhere!"]})}),"\n",(0,o.jsxs)(t.admonition,{type:"warning",children:[(0,o.jsxs)(t.p,{children:["We use ",(0,o.jsx)(t.strong,{children:"upper-case"})," tag names like ",(0,o.jsx)(t.code,{children:"Highlight"})," on purpose."]}),(0,o.jsx)(t.p,{children:"From MDX v3+ onward (Docusaurus v3+), lower-case tag names are always rendered as native html elements, and will not use any component mapping you provide."})]}),"\n",(0,o.jsxs)(t.admonition,{type:"warning",children:[(0,o.jsxs)(t.p,{children:["This feature is powered by ",(0,o.jsxs)(t.a,{href:"https://mdxjs.com/docs/using-mdx/#mdx-provider",children:["an ",(0,o.jsx)(t.code,{children:"MDXProvider"})]}),". If you are importing Markdown in a React page, you have to supply this provider yourself through the ",(0,o.jsx)(t.code,{children:"MDXContent"})," theme component."]}),(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",metastring:'title="src/pages/index.js"',children:"import React from 'react';\nimport FeatureDisplay from './_featureDisplay.mdx';\n// highlight-next-line\nimport MDXContent from '@theme/MDXContent';\n\nexport default function LandingPage() {\n return (\n <div>\n {/* highlight-start */}\n <MDXContent>\n <FeatureDisplay />\n </MDXContent>\n {/* highlight-end */}\n </div>\n );\n}\n"})}),(0,o.jsxs)(t.p,{children:["If you don't wrap your imported MDX with ",(0,o.jsx)(t.code,{children:"MDXContent"}),", the global scope will not be available."]})]}),"\n",(0,o.jsx)(t.h3,{id:"markdown-and-jsx-interoperability",children:"Markdown and JSX interoperability"}),"\n",(0,o.jsxs)(t.p,{children:["Docusaurus v3 is using ",(0,o.jsx)(t.a,{href:"https://mdxjs.com/blog/v3/",children:"MDX v3"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.a,{href:"https://mdxjs.com/docs/what-is-mdx/#mdx-syntax",children:"MDX syntax"})," is mostly compatible with ",(0,o.jsx)(t.a,{href:"https://commonmark.org/",children:"CommonMark"}),", but is much stricter because your ",(0,o.jsx)(t.code,{children:".mdx"})," files can use JSX and are compiled into real React components (check the ",(0,o.jsx)(t.a,{href:"https://mdxjs.com/playground/",children:"playground"}),")."]}),"\n",(0,o.jsxs)(t.p,{children:["Some valid CommonMark features won't work with MDX (",(0,o.jsx)(t.a,{href:"https://mdxjs.com/docs/what-is-mdx/#markdown",children:"more info"}),"), notably:"]}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Indented code blocks: use triple backticks instead"}),"\n",(0,o.jsxs)(t.li,{children:["Autolinks (",(0,o.jsx)(t.code,{children:"<http://localhost:3000>"}),"): use regular link syntax instead (",(0,o.jsx)(t.code,{children:"[http://localhost:3000](http://localhost:3000)"}),")"]}),"\n",(0,o.jsxs)(t.li,{children:["HTML syntax (",(0,o.jsx)(t.code,{children:'<p style="color: red;">'}),"): use JSX instead (",(0,o.jsx)(t.code,{children:"<p style={{color: 'red'}}>"}),")"]}),"\n",(0,o.jsxs)(t.li,{children:["Unescaped ",(0,o.jsx)(t.code,{children:"{"})," and ",(0,o.jsx)(t.code,{children:"<"}),": escape them with ",(0,o.jsx)(t.code,{children:"\\"})," instead (",(0,o.jsx)(t.code,{children:"\\{"})," and ",(0,o.jsx)(t.code,{children:"\\<"}),")"]}),"\n"]}),"\n",(0,o.jsxs)(t.admonition,{title:"Experimental CommonMark support",type:"danger",children:[(0,o.jsxs)(t.p,{children:["Docusaurus v3 makes it possible to opt-in for a less strict, standard ",(0,o.jsx)(t.a,{href:"https://commonmark.org/",children:"CommonMark"})," support with the following options:"]}),(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["The ",(0,o.jsx)(t.code,{children:"format: md"})," front matter"]}),"\n",(0,o.jsxs)(t.li,{children:["The ",(0,o.jsx)(t.code,{children:".md"})," file extension combined with the ",(0,o.jsx)(t.code,{children:'siteConfig.markdown.format: "detect"'})," configuration"]}),"\n"]}),(0,o.jsxs)(t.p,{children:["This feature is ",(0,o.jsx)(t.strong,{children:"experimental"})," and currently has a few ",(0,o.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/9092",children:"limitations"}),"."]})]}),"\n",(0,o.jsx)(t.h2,{id:"importing-code-snippets",children:"Importing code snippets"}),"\n",(0,o.jsxs)(t.p,{children:["You can not only import a file containing a component definition, but also import any code file as raw text, and then insert it in a code block, thanks to ",(0,o.jsx)(t.a,{href:"https://webpack.js.org/loaders/raw-loader/",children:"Webpack raw-loader"}),". In order to use ",(0,o.jsx)(t.code,{children:"raw-loader"}),", you first need to install it in your project:"]}),"\n",(0,o.jsxs)(c.A,{groupId:"npm2yarn",children:[(0,o.jsx)(l.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install --save raw-loader\n"})})}),(0,o.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn add raw-loader\n"})})}),(0,o.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm add raw-loader\n"})})})]}),"\n",(0,o.jsx)(t.p,{children:"Now you can import code snippets from another file as it is:"}),"\n","\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",metastring:'title="myMarkdownFile.mdx"',children:"import CodeBlock from '@theme/CodeBlock';\nimport MyComponentSource from '!!raw-loader!./myComponent';\n\n<CodeBlock language=\"jsx\">{MyComponentSource}</CodeBlock>\n"})}),"\n","\n",(0,o.jsx)(i.A,{children:(0,o.jsx)(a.A,{language:"jsx",children:d.A})}),"\n",(0,o.jsxs)(t.p,{children:["See ",(0,o.jsx)(t.a,{href:"/docs/markdown-features/code-blocks#usage-in-jsx",children:"using code blocks in JSX"})," for more details of the ",(0,o.jsx)(t.code,{children:"<CodeBlock>"})," component."]}),"\n",(0,o.jsx)(t.admonition,{type:"note",children:(0,o.jsxs)(t.p,{children:["You have to use ",(0,o.jsx)(t.code,{children:"<CodeBlock>"})," rather than the Markdown triple-backtick ",(0,o.jsx)(t.code,{children:"```"}),", because the latter will ship out any of its content as-is, but you want to interpolate the imported text here."]})}),"\n",(0,o.jsx)(t.admonition,{type:"warning",children:(0,o.jsx)(t.p,{children:"This feature is experimental and might be subject to breaking API changes in the future."})}),"\n",(0,o.jsx)(t.h2,{id:"importing-markdown",children:"Importing Markdown"}),"\n",(0,o.jsx)(t.p,{children:"You can use Markdown files as components and import them elsewhere, either in Markdown files or in React pages."}),"\n",(0,o.jsxs)(t.p,{children:["By convention, using the ",(0,o.jsxs)(t.strong,{children:[(0,o.jsx)(t.code,{children:"_"})," filename prefix"]})," will not create any doc page and means the Markdown file is a ",(0,o.jsx)(t.strong,{children:'"partial"'}),", to be imported by other files."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-md",metastring:'title="_markdown-partial-example.mdx"',children:"<span>Hello {props.name}</span>\n\nThis is text some content from `_markdown-partial-example.mdx`.\n"})}),"\n","\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",metastring:'title="someOtherDoc.mdx"',children:"import PartialExample from './_markdown-partial-example.mdx';\n\n<PartialExample name=\"Sebastien\" />\n"})}),"\n","\n",(0,o.jsx)(i.A,{children:(0,o.jsx)(p,{name:"Sebastien"})}),"\n",(0,o.jsx)(t.p,{children:"This way, you can reuse content among multiple pages and avoid duplicating materials."}),"\n",(0,o.jsx)(t.h2,{id:"available-exports",children:"Available exports"}),"\n",(0,o.jsx)(t.p,{children:"Within the MDX page, the following variables are available as globals:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.code,{children:"frontMatter"}),": the front matter as a record of string keys and values;"]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.code,{children:"toc"}),": the table of contents, as a tree of headings. See also ",(0,o.jsx)(t.a,{href:"/docs/markdown-features/toc#inline-table-of-contents",children:"Inline TOC"})," for a more concrete use-case."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.code,{children:"contentTitle"}),": the Markdown title, which is the first ",(0,o.jsx)(t.code,{children:"h1"})," heading in the Markdown text. It's ",(0,o.jsx)(t.code,{children:"undefined"})," if there isn't one (e.g. title specified in the front matter)."]}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",children:"import TOCInline from '@theme/TOCInline';\nimport CodeBlock from '@theme/CodeBlock';\n\nThe table of contents for this page, serialized:\n\n<CodeBlock className=\"language-json\">{JSON.stringify(toc, null, 2)}</CodeBlock>\n\nThe front matter of this page:\n\n<ul>\n {Object.entries(frontMatter).map(([key, value]) => <li key={key}><b>{key}</b>: {value}</li>)}\n</ul>\n\n<p>The title of this page is: <b>{contentTitle}</b></p>\n"})}),"\n","\n",(0,o.jsxs)(i.A,{children:[(0,o.jsx)(t.p,{children:"The table of contents for this page, serialized:"}),(0,o.jsx)(a.A,{className:"language-json",children:JSON.stringify(j,null,2)}),(0,o.jsx)(t.p,{children:"The front matter of this page:"}),(0,o.jsx)("ul",{children:Object.entries(h).map(([e,n])=>(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.b,{children:e}),": ",n]},e))}),(0,o.jsxs)("p",{children:["The title of this page is: ",(0,o.jsx)("b",{children:m})]})]})]})}function y(e={}){let{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(g,{...e})}):g(e)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[71892],{89585:(e,t,n)=>{n.d(t,{A:()=>r});let r="/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport React, {useState} from 'react';\n\nexport default function MyComponent() {\n const [bool, setBool] = useState(false);\n return (\n <div>\n <p>MyComponent rendered !</p>\n <p>bool={bool ? 'true' : 'false'}</p>\n <p>\n <button onClick={() => setBool((b) => !b)}>toggle bool</button>\n </p>\n </div>\n );\n}\n"},32738:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(62540);n(63696);var o=n(46733);function s({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return(0,r.jsx)("div",{className:"tableOfContentsInline_2sru",children:(0,r.jsx)(o.A,{toc:e,minHeadingLevel:t,maxHeadingLevel:n,className:"table-of-contents",linkClassName:null})})}},46733:(e,t,n)=>{n.d(t,{A:()=>u});var r=n(62540),o=n(63696),s=n(25436);function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function c(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function l(e){let t=e.getBoundingClientRect();return t.top===t.bottom?l(e.parentNode):t}var a=n(36372);let d=o.memo(function e({toc:t,className:n,linkClassName:o,isChild:s}){return t.length?(0,r.jsx)("ul",{className:s?void 0:n,children:t.map(t=>(0,r.jsxs)("li",{children:[(0,r.jsx)(a.A,{to:`#${t.id}`,className:null!=o?o:void 0,dangerouslySetInnerHTML:{__html:t.value}}),(0,r.jsx)(e,{isChild:!0,toc:t.children,className:n,linkClassName:o})]},t.id))}):null});function u(e){var{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:a="table-of-contents__link",linkActiveClassName:u,minHeadingLevel:p,maxHeadingLevel:h}=e,m=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["toc","className","linkClassName","linkActiveClassName","minHeadingLevel","maxHeadingLevel"]);let f=(0,s.p)(),b=null!=p?p:f.tableOfContents.minHeadingLevel,j=null!=h?h:f.tableOfContents.maxHeadingLevel,g=function({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return(0,o.useMemo)(()=>(function e({toc:t,minHeadingLevel:n,maxHeadingLevel:r}){return t.flatMap(t=>{let o=e({toc:t.children,minHeadingLevel:n,maxHeadingLevel:r});return t.level>=n&&t.level<=r?[c(i({},t),{children:o})]:o})})({toc:function(e){let t=e.map(e=>c(i({},e),{parentIndex:-1,children:[]})),n=Array(7).fill(-1);t.forEach((e,t)=>{let r=n.slice(2,e.level);e.parentIndex=Math.max(...r),n[e.level]=t});let r=[];return t.forEach(e=>{let{parentIndex:n}=e,o=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["parentIndex"]);n>=0?t[n].children.push(o):r.push(o)}),r}(e),minHeadingLevel:t,maxHeadingLevel:n}),[e,t,n])}({toc:t,minHeadingLevel:b,maxHeadingLevel:j});return!function(e){let t=(0,o.useRef)(void 0),n=function(){let e=(0,o.useRef)(0),{navbar:{hideOnScroll:t}}=(0,s.p)();return(0,o.useEffect)(()=>{e.current=t?0:document.querySelector(".navbar").clientHeight},[t]),e}();(0,o.useEffect)(()=>{if(!e)return()=>{};let{linkClassName:r,linkActiveClassName:o,minHeadingLevel:s,maxHeadingLevel:i}=e;function c(){let e=Array.from(document.getElementsByClassName(r)),c=function(e,{anchorTopOffset:t}){var n,r,o;let s=e.find(e=>l(e).top>=t);return s?(o=l(s)).top>0&&o.bottom<window.innerHeight/2?s:null!==(n=e[e.indexOf(s)-1])&&void 0!==n?n:null:null!==(r=e[e.length-1])&&void 0!==r?r:null}(function({minHeadingLevel:e,maxHeadingLevel:t}){let n=[];for(let r=e;r<=t;r+=1)n.push(`h${r}.anchor`);return Array.from(document.querySelectorAll(n.join()))}({minHeadingLevel:s,maxHeadingLevel:i}),{anchorTopOffset:n.current}),a=e.find(e=>c&&c.id===decodeURIComponent(e.href.substring(e.href.indexOf("#")+1)));e.forEach(e=>{e===a?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)})}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}},[e,n])}((0,o.useMemo)(()=>{if(a&&u)return{linkClassName:a,linkActiveClassName:u,minHeadingLevel:b,maxHeadingLevel:j}},[a,u,b,j])),(0,r.jsx)(d,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({toc:g,className:n,linkClassName:a},m))}},15995:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(62540);n(63696);var o=n(11750);function s({children:e,hidden:t,className:n}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,o.A)("tabItem_pnkT",n),hidden:t,children:e})}},27446:(e,t,n)=>{n.d(t,{A:()=>x});var r=n(62540),o=n(63696),s=n(11750),i=n(7846),c=n(49519),l=n(96439),a=n(19739),d=n(66904),u=n(79244);function p(e){var t,n;return null!==(n=null===(t=o.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,o.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==n?n:[]}function h({value:e,tabValues:t}){return t.some(t=>t.value===e)}var m=n(10709);function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function b(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function j({className:e,block:t,selectedValue:n,selectValue:o,tabValues:c}){let l=[],{blockElementScrollPositionUntilNextRender:a}=(0,i.a_)(),d=e=>{let t=e.currentTarget,r=c[l.indexOf(t)].value;r!==n&&(a(t),o(r))},u=e=>{var t,n;let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let n=l.indexOf(e.currentTarget)+1;r=null!==(t=l[n])&&void 0!==t?t:l[0];break}case"ArrowLeft":{let t=l.indexOf(e.currentTarget)-1;r=null!==(n=l[t])&&void 0!==n?n:l[l.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":t},e),children:c.map(({value:e,label:t,attributes:o})=>(0,r.jsx)("li",b(f({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>l.push(e),onKeyDown:u,onClick:d},o),{className:(0,s.A)("tabs__item","tabItem_AQgk",null==o?void 0:o.className,{"tabs__item--active":n===e}),children:null!=t?t:e}),e))})}function g({lazy:e,children:t,selectedValue:n}){let i=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=i.find(e=>e.props.value===n);return e?(0,o.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:i.map((e,t)=>(0,o.cloneElement)(e,{key:t,hidden:e.props.value!==n}))})}function y(e){let t=function(e){let{defaultValue:t,queryString:n=!1,groupId:r}=e,s=function(e){let{values:t,children:n}=e;return(0,o.useMemo)(()=>{let e=null!=t?t:p(n).map(({props:{value:e,label:t,attributes:n,default:r}})=>({value:e,label:t,attributes:n,default:r}));return!function(e){let t=(0,d.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,n])}(e),[i,m]=(0,o.useState)(()=>(function({defaultValue:e,tabValues:t}){var n;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!h({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let r=null!==(n=t.find(e=>e.default))&&void 0!==n?n:t[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:t,tabValues:s})),[f,b]=function({queryString:e=!1,groupId:t}){let n=(0,c.W6)(),r=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,a.aZ)(r),(0,o.useCallback)(e=>{var t,o;if(!r)return;let s=new URLSearchParams(n.location.search);s.set(r,e),n.replace((t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},n.location),o=o={search:s.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}),t))},[r,n])]}({queryString:n,groupId:r}),[j,g]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[n,r]=(0,u.Dv)(t);return[n,(0,o.useCallback)(e=>{t&&r.set(e)},[t,r])]}({groupId:r}),y=(()=>{let e=null!=f?f:j;return h({value:e,tabValues:s})?e:null})();return(0,l.A)(()=>{y&&m(y)},[y]),{selectedValue:i,selectValue:(0,o.useCallback)(e=>{if(!h({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);m(e),b(e),g(e)},[b,g,s]),tabValues:s}}(e);return(0,r.jsxs)("div",{className:(0,s.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(j,f({},t,e)),(0,r.jsx)(g,f({},t,e))]})}function x(e){let t=(0,m.A)();return(0,r.jsx)(y,b(f({},e),{children:p(e.children)}),String(t))}},40576:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(62540);n(63696);var o=n(10709);function s({children:e,fallback:t}){return(0,o.A)()?(0,r.jsx)(r.Fragment,{children:null==e?void 0:e()}):null!=t?t:null}},70361:(e,t,n)=>{n.d(t,{A:()=>c});var r=n(62540);n(63696);var o=n(11750);let s="dot_giz1",i="bar_rrRL";function c({children:e,minHeight:t,url:n="http://localhost:3000",style:c,bodyStyle:l}){var a,d;return(0,r.jsxs)("div",{className:"browserWindow_my1Q",style:(a=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},c),d=d={minHeight:t},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(d)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(d)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(d,e))}),a),children:[(0,r.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,r.jsxs)("div",{className:"buttons_uHc7",children:[(0,r.jsx)("span",{className:s,style:{background:"#f25f58"}}),(0,r.jsx)("span",{className:s,style:{background:"#fbbe3c"}}),(0,r.jsx)("span",{className:s,style:{background:"#58cb42"}})]}),(0,r.jsx)("div",{className:(0,o.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:n}),(0,r.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:i}),(0,r.jsx)("span",{className:i}),(0,r.jsx)("span",{className:i})]})})]}),(0,r.jsx)("div",{className:"browserWindowBody_Idgs",style:l,children:e})]})}},55887:(e,t,n)=>{n.d(t,{A:()=>ec});var r,o,s,i={};n.r(i),n.d(i,{ButtonExample:()=>M});var c=n(62540),l=n(63696),a=n(11750),d=n(10709),u=n(55152),p=n(81912),h=n(99468),m=n(40576),f=n(1495),b=n(66659),j=n(25436);function g(){let{prism:e}=(0,j.p)(),{colorMode:t}=(0,b.G)(),n=e.theme,r=e.darkTheme||n;return"dark"===t?r:n}var y=n(43758);function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function O({children:e}){return(0,c.jsx)("div",{className:(0,a.A)("playgroundHeader_Tvsk"),children:e})}function v(){return(0,c.jsx)("div",{children:"Loading..."})}function w(){return(0,c.jsx)(m.A,{fallback:(0,c.jsx)(v,{}),children:()=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(y.A,{fallback:e=>(0,c.jsx)(f.MN,x({},e)),children:(0,c.jsx)(u.pA,{})}),(0,c.jsx)(u.p1,{})]})})}function k(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(O,{children:(0,c.jsx)(p.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,c.jsx)("div",{className:"playgroundPreview_mApW",children:(0,c.jsx)(w,{})})]})}function P(){let e=(0,d.A)();return(0,c.jsx)(u.w,{className:"playgroundEditor_TySg"},String(e))}function D(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(O,{children:(0,c.jsx)(p.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,c.jsx)(P,{})]})}let S=e=>`${e};`;function C(e){var t,n,r,o,{children:s,transformCode:i}=e,l=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:a}}=(0,h.A)(),{liveCodeBlock:{playgroundPosition:d}}=a,p=g(),m=null!==(o=null===(r=l.metastring)||void 0===r?void 0:r.includes("noInline"))&&void 0!==o&&o;return(0,c.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,c.jsx)(u.Q,(t=x({code:null==s?void 0:s.replace(/\n$/,""),noInline:m,transformCode:null!=i?i:S,theme:p},l),n=n={children:"top"===d?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(k,{}),(0,c.jsx)(D,{})]}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(D,{}),(0,c.jsx)(k,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))})}function N(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function M(e){var t,n;return(0,c.jsx)("button",(t=N({type:"button"},e),n=n={style:N({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let E=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({React:l},l,i);var B=n(12653),A=n(19934),I=n.n(A);let T=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),H=RegExp("\\{(?<range>[\\d,-]+)\\}"),L={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},X=(r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},L),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}),r),_=Object.keys(L);function R(e,t){let n=e.map(e=>{let{start:n,end:r}=X[e];return`(?:${n}\\s*(${t.flatMap(e=>{var t,n;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(n=e.block)||void 0===n?void 0:n.end].filter(Boolean)}).join("|")})\\s*${r})`}).join("|");return RegExp(`^\\s*(?:${n})\\s*$`)}function F(e){var t,n,{as:r}=e,o=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["as"]);let s=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach(([e,r])=>{let o=t[e];o&&"string"==typeof r&&(n[o]=r)}),n}(g());return(0,c.jsx)(r,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},o),n=n={style:s,className:(0,a.A)(o.className,"codeBlockContainer_jDV4",B.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let W={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function z({children:e,className:t}){return(0,c.jsx)(F,{as:"pre",tabIndex:0,className:(0,a.A)(W.codeBlockStandalone,"thin-scrollbar",t),children:(0,c.jsx)("code",{className:W.codeBlockLines,children:e})})}var $=n(2550);let J={attributes:!0,characterData:!0,childList:!0,subtree:!0};var q=n(27663);let U={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function V(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function G({line:e,classNames:t,showLineNumbers:n,getLineProps:r,getTokenProps:o}){var s,i;1===e.length&&"\n"===e[0].content&&(e[0].content="");let l=r({line:e,className:(0,a.A)(t,n&&U.codeLine)}),d=e.map((e,t)=>(0,c.jsx)("span",V({},o({token:e})),t));return(0,c.jsxs)("span",(s=V({},l),i=i={children:[n?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:U.codeLineNumber}),(0,c.jsx)("span",{className:U.codeLineContent,children:d})]}):d,(0,c.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(i)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(i)).forEach(function(e){Object.defineProperty(s,e,Object.getOwnPropertyDescriptor(i,e))}),s))}var Q=n(936);function Y(e){var t,n;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,c.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}function Z(e){var t,n;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,c.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[n,r]=(0,l.useState)(!1),o=(0,l.useRef)(void 0),s=(0,l.useCallback)(()=>{(0,Q.A)(e),r(!0),o.current=window.setTimeout(()=>{r(!1)},1e3)},[e]);return(0,l.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,c.jsx)("button",{type:"button","aria-label":n?(0,p.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.A)("clean-btn",t,K.copyButton,n&&K.copyButtonCopied),onClick:s,children:(0,c.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,c.jsx)(Y,{className:K.copyButtonIcon}),(0,c.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,n;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,c.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let en={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function er({className:e,onClick:t,isEnabled:n}){let r=(0,p.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,c.jsx)("button",{type:"button",onClick:t,className:(0,a.A)("clean-btn",e,n&&en.wordWrapButtonEnabled),"aria-label":r,title:r,children:(0,c.jsx)(et,{className:en.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:n,title:r,showLineNumbers:o,language:s}){var i,d,u,p;let{prism:{defaultLanguage:h,magicComments:m}}=(0,j.p)(),f=null==(d=null!==(i=null!=s?s:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==i?i:h)?void 0:d.toLowerCase(),b=g(),y=function(){let[e,t]=(0,l.useState)(!1),[n,r]=(0,l.useState)(!1),o=(0,l.useRef)(null),s=(0,l.useCallback)(()=>{let n=o.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),i=(0,l.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;r(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[n,r]=(0,l.useState)(),o=(0,l.useCallback)(()=>{var t;r(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,r]);(0,l.useEffect)(()=>{o()},[o]),function(e,t,n=J){let r=(0,$._q)(t),o=(0,$.Be)(n);(0,l.useEffect)(()=>{let t=new MutationObserver(r);return e&&t.observe(e,o),()=>t.disconnect()},[e,r,o])}(n,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,i),(0,l.useEffect)(()=>{i()},[e,i]),(0,l.useEffect)(()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)}),[i]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:n,toggle:s}}(),x=(null!==(p=null==n?void 0:null===(u=n.match(T))||void 0===u?void 0:u.groups.title)&&void 0!==p?p:"")||r,{lineClassNames:O,code:v}=function(e,t){let n=e.replace(/\n$/,""),{language:r,magicComments:o,metastring:s}=t;if(s&&H.test(s)){let e=s.match(H).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${s}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(I()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:n}}if(void 0===r)return{lineClassNames:{},code:n};let i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return R(["js","jsBlock"],t);case"jsx":case"tsx":return R(["js","jsBlock","jsx"],t);case"html":return R(["js","jsBlock","html"],t);case"python":case"py":case"bash":return R(["bash"],t);case"markdown":case"md":return R(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return R(["tex"],t);case"lua":case"haskell":case"sql":return R(["lua"],t);case"wasm":return R(["wasm"],t);case"vb":case"vba":case"visual-basic":return R(["vb","rem"],t);case"vbnet":return R(["vbnet","rem"],t);case"batch":return R(["rem"],t);case"basic":return R(["rem","f90"],t);case"fsharp":return R(["js","ml"],t);case"ocaml":case"sml":return R(["ml"],t);case"fortran":return R(["f90"],t);case"cobol":return R(["cobol"],t);default:return R(_,t)}}(r,o),c=n.split("\n"),l=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),a=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),d=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<c.length;){let t=c[e].match(i);if(!t){e+=1;continue}let n=t.slice(1).find(e=>void 0!==e);a[n]?l[a[n]].range+=`${e},`:d[n]?l[d[n]].start=e:u[n]&&(l[u[n]].range+=`${l[u[n]].start}-${e-1},`),c.splice(e,1)}n=c.join("\n");let p={};return Object.entries(l).forEach(([e,{range:t}])=>{I()(t).forEach(t=>{var n;null!==(n=p[t])&&void 0!==n||(p[t]=[]),p[t].push(e)})}),{lineClassNames:p,code:n}}(e,{metastring:n,language:f,magicComments:m}),w=null!=o?o:!!(null==n?void 0:n.includes("showLineNumbers"));return(0,c.jsxs)(F,{as:"div",className:(0,a.A)(t,f&&!t.includes(`language-${f}`)&&`language-${f}`),children:[x&&(0,c.jsx)("div",{className:W.codeBlockTitle,children:x}),(0,c.jsxs)("div",{className:W.codeBlockContent,children:[(0,c.jsx)(q.f4,{theme:b,code:v,language:null!=f?f:"text",children:({className:e,style:t,tokens:n,getLineProps:r,getTokenProps:o})=>(0,c.jsx)("pre",{tabIndex:0,ref:y.codeBlockRef,className:(0,a.A)(e,W.codeBlock,"thin-scrollbar"),style:t,children:(0,c.jsx)("code",{className:(0,a.A)(W.codeBlockLines,w&&W.codeBlockLinesWithNumbering),children:n.map((e,t)=>(0,c.jsx)(G,{line:e,getLineProps:r,getTokenProps:o,classNames:O[t],showLineNumbers:w},t))})})}),(0,c.jsxs)("div",{className:W.buttonGroup,children:[(y.isEnabled||y.isCodeScrollable)&&(0,c.jsx)(er,{className:W.codeButton,onClick:()=>y.toggle(),isEnabled:y.isEnabled}),(0,c.jsx)(ee,{className:W.codeButton,code:v})]})]})]})}function es(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}let ei=(s=function(e){var t,n,{children:r}=e,o=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["children"]);let s=(0,d.A)(),i=l.Children.toArray(r).some(e=>(0,l.isValidElement)(e))?r:Array.isArray(r)?r.join(""):r,a="string"==typeof i?eo:z;return(0,c.jsx)(a,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},o),n=n={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t),String(s))},function(e){return e.live?(0,c.jsx)(C,es({scope:E},e)):(0,c.jsx)(s,es({},e))});function ec(e){return(0,c.jsx)(ei,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e))}},5982:(e,t,n)=>{n.r(t),n.d(t,{Highlight:()=>b,assets:()=>f,contentTitle:()=>m,default:()=>y,frontMatter:()=>h,metadata:()=>r,toc:()=>j});let r=JSON.parse('{"id":"guides/markdown-features/react","title":"MDX and React","description":"Using the power of React in Docusaurus Markdown documents, thanks to MDX","source":"@site/docs/guides/markdown-features/markdown-features-react.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features/react","permalink":"/docs/markdown-features/react","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-react.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"react","description":"Using the power of React in Docusaurus Markdown documents, thanks to MDX","slug":"/markdown-features/react"},"sidebar":"docs","previous":{"title":"Markdown Features","permalink":"/docs/markdown-features"},"next":{"title":"Tabs","permalink":"/docs/markdown-features/tabs"}}');var o=n(62540),s=n(43023),i=n(70361),c=n(27446),l=n(15995),a=n(55887),d=n(89585);function u(e){let t={code:"code",p:"p",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("span",{children:["Hello ",e.name]}),"\n",(0,o.jsxs)(t.p,{children:["This is text some content from ",(0,o.jsx)(t.code,{children:"_markdown-partial-example.md"}),"."]})]})}function p(e={}){let{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}n(32738);let h={id:"react",description:"Using the power of React in Docusaurus Markdown documents, thanks to MDX",slug:"/markdown-features/react"},m="MDX and React",f={},b=({children:e,color:t})=>{let n={span:"span",...(0,s.R)()};return(0,o.jsx)(n.span,{style:{backgroundColor:t,borderRadius:"2px",color:"#fff",padding:"0.2rem"},children:e})},j=[{value:"Exporting components",id:"exporting-components",level:3},{value:"Importing components",id:"importing-components",level:3},{value:"MDX component scope",id:"mdx-component-scope",level:3},{value:"Markdown and JSX interoperability",id:"markdown-and-jsx-interoperability",level:3},{value:"Importing code snippets",id:"importing-code-snippets",level:2},{value:"Importing Markdown",id:"importing-markdown",level:2},{value:"Available exports",id:"available-exports",level:2}];function g(e){let t={a:"a",admonition:"admonition",b:"b",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"mdx-and-react",children:"MDX and React"})}),"\n","\n",(0,o.jsxs)(t.p,{children:["Docusaurus has built-in support for ",(0,o.jsx)(t.a,{href:"https://mdxjs.com/",children:"MDX"}),", which allows you to write JSX within your Markdown files and render them as React components."]}),"\n",(0,o.jsxs)(t.p,{children:["Check out the ",(0,o.jsx)(t.a,{href:"https://mdxjs.com/",children:"MDX docs"})," to see what fancy stuff you can do with MDX."]}),"\n",(0,o.jsxs)(t.admonition,{title:"Debugging MDX",type:"tip",children:[(0,o.jsx)(t.p,{children:"The MDX format is quite strict, and you may get compilation errors."}),(0,o.jsxs)(t.p,{children:["Use the ",(0,o.jsx)(t.strong,{children:(0,o.jsx)(t.a,{href:"https://mdxjs.com/playground/",children:"MDX playground"})})," to debug them and make sure your syntax is valid."]})]}),"\n",(0,o.jsx)(t.admonition,{type:"info",children:(0,o.jsxs)(t.p,{children:["Prettier, the most popular formatter, ",(0,o.jsx)(t.a,{href:"https://github.com/prettier/prettier/issues/12209",children:"supports only the legacy MDX v1"}),". If you get an unintentional formatting result, you may want to add ",(0,o.jsx)(t.code,{children:"{/* prettier-ignore */}"})," before the problematic area, or add ",(0,o.jsx)(t.code,{children:"*.mdx"})," to your ",(0,o.jsx)(t.code,{children:".prettierignore"}),", until Prettier has proper support for MDX v3. ",(0,o.jsxs)(t.a,{href:"https://github.com/orgs/mdx-js/discussions/2067",children:["One of the main authors of MDX recommends ",(0,o.jsx)(t.code,{children:"remark-cli"})," with ",(0,o.jsx)(t.code,{children:"remark-mdx"})]}),"."]})}),"\n",(0,o.jsx)(t.h3,{id:"exporting-components",children:"Exporting components"}),"\n",(0,o.jsxs)(t.p,{children:["To define any custom component within an MDX file, you have to export it: only paragraphs that start with ",(0,o.jsx)(t.code,{children:"export"})," will be parsed as components instead of prose."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",children:"export const Highlight = ({children, color}) => (\n <span\n style={{\n backgroundColor: color,\n borderRadius: '2px',\n color: '#fff',\n padding: '0.2rem',\n }}>\n {children}\n </span>\n);\n\n<Highlight color=\"#25c2a0\">Docusaurus green</Highlight> and <Highlight color=\"#1877F2\">Facebook blue</Highlight> are my favorite colors.\n\nI can write **Markdown** alongside my _JSX_!\n"})}),"\n",(0,o.jsx)(t.p,{children:"Notice how it renders both the markup from your React component and the Markdown syntax:"}),"\n","\n",(0,o.jsxs)(i.A,{minHeight:240,children:[(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(b,{color:"#25c2a0",children:"Docusaurus green"}),"\n"," ","and ",(0,o.jsx)(b,{color:"#1877F2",children:"Facebook blue"})," are my favorite colors."]}),(0,o.jsxs)(t.p,{children:["I can write ",(0,o.jsx)(t.strong,{children:"Markdown"})," alongside my ",(0,o.jsx)(t.em,{children:"JSX"}),"!"]})]}),"\n",(0,o.jsxs)(t.admonition,{title:"MDX is JSX",type:"warning",children:[(0,o.jsx)(t.p,{children:"Since all doc files are parsed using MDX, anything that looks like HTML is actually JSX. Therefore, if you need to inline-style a component, follow JSX flavor and provide style objects."}),(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",children:"/* Instead of this: */\n<span style=\"background-color: red\">Foo</span>\n/* Use this: */\n<span style={{backgroundColor: 'red'}}>Foo</span>\n"})})]}),"\n",(0,o.jsx)(t.h3,{id:"importing-components",children:"Importing components"}),"\n",(0,o.jsx)(t.p,{children:"You can also import your own components defined in other files or third-party components installed via npm."}),"\n","\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-md",children:"<!-- Docusaurus theme component -->\nimport TOCInline from '@theme/TOCInline';\n<!-- External component -->\nimport Button from '@mui/material/Button';\n<!-- Custom component -->\nimport BrowserWindow from '@site/src/components/BrowserWindow';\n"})}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.code,{children:"@site"})," alias points to your website's directory, usually where the ",(0,o.jsx)(t.code,{children:"docusaurus.config.js"})," file is. Using an alias instead of relative paths (",(0,o.jsx)(t.code,{children:"'../../src/components/BrowserWindow'"}),") saves you from updating import paths when moving files around, or when ",(0,o.jsx)(t.a,{href:"/docs/versioning",children:"versioning docs"})," and ",(0,o.jsx)(t.a,{href:"/docs/i18n/tutorial",children:"translating"}),"."]})}),"\n",(0,o.jsxs)(t.p,{children:["While declaring components within Markdown is very convenient for simple cases, it becomes hard to maintain because of limited editor support, risks of parsing errors, and low reusability. Use a separate ",(0,o.jsx)(t.code,{children:".js"})," file when your component involves complex JS logic:"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",metastring:'title="src/components/Highlight.js"',children:"import React from 'react';\n\nexport default function Highlight({children, color}) {\n return (\n <span\n style={{\n backgroundColor: color,\n borderRadius: '2px',\n color: '#fff',\n padding: '0.2rem',\n }}>\n {children}\n </span>\n );\n}\n"})}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-md",metastring:'title="markdown-file.mdx"',children:"import Highlight from '@site/src/components/Highlight';\n\n<Highlight color=\"#25c2a0\">Docusaurus green</Highlight>\n"})}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["If you use the same component across a lot of files, you don't need to import it everywhere\u2014consider adding it to the global scope. ",(0,o.jsx)(t.a,{href:"#mdx-component-scope",children:"See below"})]})}),"\n",(0,o.jsx)(t.h3,{id:"mdx-component-scope",children:"MDX component scope"}),"\n",(0,o.jsxs)(t.p,{children:["Apart from ",(0,o.jsx)(t.a,{href:"#importing-components",children:"importing a component"})," and ",(0,o.jsx)(t.a,{href:"#exporting-components",children:"exporting a component"}),", a third way to use a component in MDX is to ",(0,o.jsx)(t.strong,{children:"register it to the global scope"}),", which will make it automatically available in every MDX file, without any import statements."]}),"\n",(0,o.jsx)(t.p,{children:"For example, given this MDX file:"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-md",children:"- a\n- list!\n\nAnd some <Highlight>custom markup</Highlight>...\n"})}),"\n",(0,o.jsxs)(t.p,{children:["It will be compiled to a React component containing ",(0,o.jsx)(t.code,{children:"ul"}),", ",(0,o.jsx)(t.code,{children:"li"}),", ",(0,o.jsx)(t.code,{children:"p"}),", and ",(0,o.jsx)(t.code,{children:"Highlight"})," elements. ",(0,o.jsx)(t.code,{children:"Highlight"})," is not a native html element: you need to provide your own React component implementation for it."]}),"\n",(0,o.jsxs)(t.p,{children:["In Docusaurus, the MDX component scope is provided by the ",(0,o.jsx)(t.code,{children:"@theme/MDXComponents"})," file. It's not a React component, ",(0,o.jsx)(t.em,{children:"per se"}),", unlike most other exports under the ",(0,o.jsx)(t.code,{children:"@theme/"})," alias: it is a record from tag names like ",(0,o.jsx)(t.code,{children:"Highlight"})," to their React component implementations."]}),"\n",(0,o.jsxs)(t.p,{children:["If you ",(0,o.jsx)(t.a,{href:"/docs/swizzling",children:"swizzle"})," this component, you will find all tags that have been implemented, and you can further customize our implementation by swizzling the respective sub-component, like ",(0,o.jsx)(t.code,{children:"@theme/MDXComponents/Code"})," (which is used to render ",(0,o.jsx)(t.a,{href:"/docs/markdown-features/code-blocks",children:"Markdown code blocks"}),")."]}),"\n",(0,o.jsxs)(t.p,{children:["If you want to register extra tag names (like the ",(0,o.jsx)(t.code,{children:"<Highlight>"})," tag above), you should consider ",(0,o.jsxs)(t.a,{href:"/docs/swizzling#wrapping",children:["wrapping ",(0,o.jsx)(t.code,{children:"@theme/MDXComponents"})]}),", so you don't have to maintain all the existing mappings. Since the swizzle CLI doesn't allow wrapping non-component files yet, you should manually create the wrapper:"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-js",metastring:'title="src/theme/MDXComponents.js"',children:"import React from 'react';\n// Import the original mapper\nimport MDXComponents from '@theme-original/MDXComponents';\n// highlight-next-line\nimport Highlight from '@site/src/components/Highlight';\n\nexport default {\n // Re-use the default mapping\n ...MDXComponents,\n // Map the \"<Highlight>\" tag to our Highlight component\n // `Highlight` will receive all props that were passed to `<Highlight>` in MDX\n // highlight-next-line\n Highlight,\n};\n"})}),"\n",(0,o.jsxs)(t.p,{children:["And now, you can freely use ",(0,o.jsx)(t.code,{children:"<Highlight>"})," in every page, without writing the import statement:"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-md",children:'I can conveniently use <Highlight color="#25c2a0">Docusaurus green</Highlight> everywhere!\n'})}),"\n",(0,o.jsx)(i.A,{children:(0,o.jsxs)(t.p,{children:["I can conveniently use ",(0,o.jsx)(b,{color:"#25c2a0",children:"Docusaurus green"})," everywhere!"]})}),"\n",(0,o.jsxs)(t.admonition,{type:"warning",children:[(0,o.jsxs)(t.p,{children:["We use ",(0,o.jsx)(t.strong,{children:"upper-case"})," tag names like ",(0,o.jsx)(t.code,{children:"Highlight"})," on purpose."]}),(0,o.jsx)(t.p,{children:"From MDX v3+ onward (Docusaurus v3+), lower-case tag names are always rendered as native html elements, and will not use any component mapping you provide."})]}),"\n",(0,o.jsxs)(t.admonition,{type:"warning",children:[(0,o.jsxs)(t.p,{children:["This feature is powered by ",(0,o.jsxs)(t.a,{href:"https://mdxjs.com/docs/using-mdx/#mdx-provider",children:["an ",(0,o.jsx)(t.code,{children:"MDXProvider"})]}),". If you are importing Markdown in a React page, you have to supply this provider yourself through the ",(0,o.jsx)(t.code,{children:"MDXContent"})," theme component."]}),(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",metastring:'title="src/pages/index.js"',children:"import React from 'react';\nimport FeatureDisplay from './_featureDisplay.mdx';\n// highlight-next-line\nimport MDXContent from '@theme/MDXContent';\n\nexport default function LandingPage() {\n return (\n <div>\n {/* highlight-start */}\n <MDXContent>\n <FeatureDisplay />\n </MDXContent>\n {/* highlight-end */}\n </div>\n );\n}\n"})}),(0,o.jsxs)(t.p,{children:["If you don't wrap your imported MDX with ",(0,o.jsx)(t.code,{children:"MDXContent"}),", the global scope will not be available."]})]}),"\n",(0,o.jsx)(t.h3,{id:"markdown-and-jsx-interoperability",children:"Markdown and JSX interoperability"}),"\n",(0,o.jsxs)(t.p,{children:["Docusaurus v3 is using ",(0,o.jsx)(t.a,{href:"https://mdxjs.com/blog/v3/",children:"MDX v3"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.a,{href:"https://mdxjs.com/docs/what-is-mdx/#mdx-syntax",children:"MDX syntax"})," is mostly compatible with ",(0,o.jsx)(t.a,{href:"https://commonmark.org/",children:"CommonMark"}),", but is much stricter because your ",(0,o.jsx)(t.code,{children:".mdx"})," files can use JSX and are compiled into real React components (check the ",(0,o.jsx)(t.a,{href:"https://mdxjs.com/playground/",children:"playground"}),")."]}),"\n",(0,o.jsxs)(t.p,{children:["Some valid CommonMark features won't work with MDX (",(0,o.jsx)(t.a,{href:"https://mdxjs.com/docs/what-is-mdx/#markdown",children:"more info"}),"), notably:"]}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Indented code blocks: use triple backticks instead"}),"\n",(0,o.jsxs)(t.li,{children:["Autolinks (",(0,o.jsx)(t.code,{children:"<http://localhost:3000>"}),"): use regular link syntax instead (",(0,o.jsx)(t.code,{children:"[http://localhost:3000](http://localhost:3000)"}),")"]}),"\n",(0,o.jsxs)(t.li,{children:["HTML syntax (",(0,o.jsx)(t.code,{children:'<p style="color: red;">'}),"): use JSX instead (",(0,o.jsx)(t.code,{children:"<p style={{color: 'red'}}>"}),")"]}),"\n",(0,o.jsxs)(t.li,{children:["Unescaped ",(0,o.jsx)(t.code,{children:"{"})," and ",(0,o.jsx)(t.code,{children:"<"}),": escape them with ",(0,o.jsx)(t.code,{children:"\\"})," instead (",(0,o.jsx)(t.code,{children:"\\{"})," and ",(0,o.jsx)(t.code,{children:"\\<"}),")"]}),"\n"]}),"\n",(0,o.jsxs)(t.admonition,{title:"Experimental CommonMark support",type:"danger",children:[(0,o.jsxs)(t.p,{children:["Docusaurus v3 makes it possible to opt-in for a less strict, standard ",(0,o.jsx)(t.a,{href:"https://commonmark.org/",children:"CommonMark"})," support with the following options:"]}),(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["The ",(0,o.jsx)(t.code,{children:"format: md"})," front matter"]}),"\n",(0,o.jsxs)(t.li,{children:["The ",(0,o.jsx)(t.code,{children:".md"})," file extension combined with the ",(0,o.jsx)(t.code,{children:'siteConfig.markdown.format: "detect"'})," configuration"]}),"\n"]}),(0,o.jsxs)(t.p,{children:["This feature is ",(0,o.jsx)(t.strong,{children:"experimental"})," and currently has a few ",(0,o.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/9092",children:"limitations"}),"."]})]}),"\n",(0,o.jsx)(t.h2,{id:"importing-code-snippets",children:"Importing code snippets"}),"\n",(0,o.jsxs)(t.p,{children:["You can not only import a file containing a component definition, but also import any code file as raw text, and then insert it in a code block, thanks to ",(0,o.jsx)(t.a,{href:"https://webpack.js.org/loaders/raw-loader/",children:"Webpack raw-loader"}),". In order to use ",(0,o.jsx)(t.code,{children:"raw-loader"}),", you first need to install it in your project:"]}),"\n",(0,o.jsxs)(c.A,{groupId:"npm2yarn",children:[(0,o.jsx)(l.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install --save raw-loader\n"})})}),(0,o.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn add raw-loader\n"})})}),(0,o.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm add raw-loader\n"})})})]}),"\n",(0,o.jsx)(t.p,{children:"Now you can import code snippets from another file as it is:"}),"\n","\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",metastring:'title="myMarkdownFile.mdx"',children:"import CodeBlock from '@theme/CodeBlock';\nimport MyComponentSource from '!!raw-loader!./myComponent';\n\n<CodeBlock language=\"jsx\">{MyComponentSource}</CodeBlock>\n"})}),"\n","\n",(0,o.jsx)(i.A,{children:(0,o.jsx)(a.A,{language:"jsx",children:d.A})}),"\n",(0,o.jsxs)(t.p,{children:["See ",(0,o.jsx)(t.a,{href:"/docs/markdown-features/code-blocks#usage-in-jsx",children:"using code blocks in JSX"})," for more details of the ",(0,o.jsx)(t.code,{children:"<CodeBlock>"})," component."]}),"\n",(0,o.jsx)(t.admonition,{type:"note",children:(0,o.jsxs)(t.p,{children:["You have to use ",(0,o.jsx)(t.code,{children:"<CodeBlock>"})," rather than the Markdown triple-backtick ",(0,o.jsx)(t.code,{children:"```"}),", because the latter will ship out any of its content as-is, but you want to interpolate the imported text here."]})}),"\n",(0,o.jsx)(t.admonition,{type:"warning",children:(0,o.jsx)(t.p,{children:"This feature is experimental and might be subject to breaking API changes in the future."})}),"\n",(0,o.jsx)(t.h2,{id:"importing-markdown",children:"Importing Markdown"}),"\n",(0,o.jsx)(t.p,{children:"You can use Markdown files as components and import them elsewhere, either in Markdown files or in React pages."}),"\n",(0,o.jsxs)(t.p,{children:["By convention, using the ",(0,o.jsxs)(t.strong,{children:[(0,o.jsx)(t.code,{children:"_"})," filename prefix"]})," will not create any doc page and means the Markdown file is a ",(0,o.jsx)(t.strong,{children:'"partial"'}),", to be imported by other files."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-md",metastring:'title="_markdown-partial-example.mdx"',children:"<span>Hello {props.name}</span>\n\nThis is text some content from `_markdown-partial-example.mdx`.\n"})}),"\n","\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",metastring:'title="someOtherDoc.mdx"',children:"import PartialExample from './_markdown-partial-example.mdx';\n\n<PartialExample name=\"Sebastien\" />\n"})}),"\n","\n",(0,o.jsx)(i.A,{children:(0,o.jsx)(p,{name:"Sebastien"})}),"\n",(0,o.jsx)(t.p,{children:"This way, you can reuse content among multiple pages and avoid duplicating materials."}),"\n",(0,o.jsx)(t.h2,{id:"available-exports",children:"Available exports"}),"\n",(0,o.jsx)(t.p,{children:"Within the MDX page, the following variables are available as globals:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.code,{children:"frontMatter"}),": the front matter as a record of string keys and values;"]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.code,{children:"toc"}),": the table of contents, as a tree of headings. See also ",(0,o.jsx)(t.a,{href:"/docs/markdown-features/toc#inline-table-of-contents",children:"Inline TOC"})," for a more concrete use-case."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.code,{children:"contentTitle"}),": the Markdown title, which is the first ",(0,o.jsx)(t.code,{children:"h1"})," heading in the Markdown text. It's ",(0,o.jsx)(t.code,{children:"undefined"})," if there isn't one (e.g. title specified in the front matter)."]}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-jsx",children:"import TOCInline from '@theme/TOCInline';\nimport CodeBlock from '@theme/CodeBlock';\n\nThe table of contents for this page, serialized:\n\n<CodeBlock className=\"language-json\">{JSON.stringify(toc, null, 2)}</CodeBlock>\n\nThe front matter of this page:\n\n<ul>\n {Object.entries(frontMatter).map(([key, value]) => <li key={key}><b>{key}</b>: {value}</li>)}\n</ul>\n\n<p>The title of this page is: <b>{contentTitle}</b></p>\n"})}),"\n","\n",(0,o.jsxs)(i.A,{children:[(0,o.jsx)(t.p,{children:"The table of contents for this page, serialized:"}),(0,o.jsx)(a.A,{className:"language-json",children:JSON.stringify(j,null,2)}),(0,o.jsx)(t.p,{children:"The front matter of this page:"}),(0,o.jsx)("ul",{children:Object.entries(h).map(([e,n])=>(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.b,{children:e}),": ",n]},e))}),(0,o.jsxs)("p",{children:["The title of this page is: ",(0,o.jsx)("b",{children:m})]})]})]})}function y(e={}){let{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(g,{...e})}):g(e)}}}]); \ No newline at end of file diff --git a/assets/js/67cff4f8.2a8f7a80.js b/assets/js/67cff4f8.2a8f7a80.js deleted file mode 100644 index ef61b84666..0000000000 --- a/assets/js/67cff4f8.2a8f7a80.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[45625],{29270:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>r,default:()=>u,frontMatter:()=>d,metadata:()=>s,toc:()=>l});let s=JSON.parse('{"id":"standalone","title":"Standalone doc","description":"This doc is not in any sidebar, on purpose, to measure the build size impact of the huge sidebar","source":"@site/_dogfooding/_docs tests/standalone.mdx","sourceDirName":".","slug":"/standalone","permalink":"/tests/docs/standalone","draft":false,"unlisted":false,"tags":[{"inline":false,"label":"Label for tag b","permalink":"/tests/docs/tags/b"},{"inline":false,"label":"D","permalink":"/tests/docs/tags/d"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"tags":["b","d"]}}');var a=n(62540),o=n(43023);let d={tags:["b","d"]},r="Standalone doc",i={},l=[];function c(e){let t={h1:"h1",header:"header",p:"p",...(0,o.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.header,{children:(0,a.jsx)(t.h1,{id:"standalone-doc",children:"Standalone doc"})}),"\n",(0,a.jsx)(t.p,{children:"This doc is not in any sidebar, on purpose, to measure the build size impact of the huge sidebar"})]})}function u(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}u.displayName="MDXContent(_dogfooding/_docs tests/standalone.mdx)"},43023:(e,t,n)=>{n.d(t,{R:()=>d,x:()=>r});var s=n(63696);let a={},o=s.createContext(a);function d(e){let t=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:d(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/67cff4f8.71e8db86.js b/assets/js/67cff4f8.71e8db86.js new file mode 100644 index 0000000000..684c542e70 --- /dev/null +++ b/assets/js/67cff4f8.71e8db86.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[45625],{29270:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>r,default:()=>u,frontMatter:()=>d,metadata:()=>s,toc:()=>l});let s=JSON.parse('{"id":"standalone","title":"Standalone doc","description":"This doc is not in any sidebar, on purpose, to measure the build size impact of the huge sidebar","source":"@site/_dogfooding/_docs tests/standalone.mdx","sourceDirName":".","slug":"/standalone","permalink":"/tests/docs/standalone","draft":false,"unlisted":false,"tags":[{"inline":false,"label":"Label for tag b","permalink":"/tests/docs/tags/b"},{"inline":false,"label":"D","permalink":"/tests/docs/tags/d"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"tags":["b","d"]}}');var a=n(62540),o=n(43023);let d={tags:["b","d"]},r="Standalone doc",i={},l=[];function c(e){let t={h1:"h1",header:"header",p:"p",...(0,o.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.header,{children:(0,a.jsx)(t.h1,{id:"standalone-doc",children:"Standalone doc"})}),"\n",(0,a.jsx)(t.p,{children:"This doc is not in any sidebar, on purpose, to measure the build size impact of the huge sidebar"})]})}function u(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}u.displayName="MDXContent(_dogfooding/_docs tests/standalone.mdx)"},43023:(e,t,n)=>{n.d(t,{R:()=>d,x:()=>r});var s=n(63696);let a={},o=s.createContext(a);function d(e){let t=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:d(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/68353.0f87d46e.js b/assets/js/68353.0f87d46e.js deleted file mode 100644 index 3f03956567..0000000000 --- a/assets/js/68353.0f87d46e.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[68353],{68353:(t,e,n)=>{n.d(e,{diagram:()=>q});var i=n(17367),r=n(93126);function s(t,e){let n;if(void 0===e)for(let e of t)null!=e&&(n>e||void 0===n&&e>=e)&&(n=e);else{let i=-1;for(let r of t)null!=(r=e(r,++i,t))&&(n>r||void 0===n&&r>=r)&&(n=r)}return n}function o(t){return t.target.depth}function l(t,e){return t.sourceLinks.length?t.depth:e-1}function h(t,e){let n=0;if(void 0===e)for(let e of t)(e=+e)&&(n+=e);else{let i=-1;for(let r of t)(r=+e(r,++i,t))&&(n+=r)}return n}function a(t,e){let n;if(void 0===e)for(let e of t)null!=e&&(n<e||void 0===n&&e>=e)&&(n=e);else{let i=-1;for(let r of t)null!=(r=e(r,++i,t))&&(n<r||void 0===n&&r>=r)&&(n=r)}return n}function c(t){return function(){return t}}function u(t,e){return y(t.source,e.source)||t.index-e.index}function f(t,e){return y(t.target,e.target)||t.index-e.index}function y(t,e){return t.y0-e.y0}function d(t){return t.value}function p(t){return t.index}function g(t){return t.nodes}function _(t){return t.links}function x(t,e){let n=t.get(e);if(!n)throw Error("missing: "+e);return n}function k({nodes:t}){for(let e of t){let t=e.y0,n=t;for(let n of e.sourceLinks)n.y0=t+n.width/2,t+=n.width;for(let t of e.targetLinks)t.y1=n+t.width/2,n+=t.width}}var m=Math.PI,v=2*m,b=v-1e-6;function w(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function E(){return new w}w.prototype=E.prototype={constructor:w,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,n,i){this._+="Q"+ +t+","+ +e+","+(this._x1=+n)+","+(this._y1=+i)},bezierCurveTo:function(t,e,n,i,r,s){this._+="C"+ +t+","+ +e+","+ +n+","+ +i+","+(this._x1=+r)+","+(this._y1=+s)},arcTo:function(t,e,n,i,r){t=+t,e=+e,n=+n,i=+i,r=+r;var s=this._x1,o=this._y1,l=n-t,h=i-e,a=s-t,c=o-e,u=a*a+c*c;if(r<0)throw Error("negative radius: "+r);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(u>1e-6){if(Math.abs(c*l-h*a)>1e-6&&r){var f=n-s,y=i-o,d=l*l+h*h,p=Math.sqrt(d),g=Math.sqrt(u),_=r*Math.tan((m-Math.acos((d+u-(f*f+y*y))/(2*p*g)))/2),x=_/g,k=_/p;Math.abs(x-1)>1e-6&&(this._+="L"+(t+x*a)+","+(e+x*c)),this._+="A"+r+","+r+",0,0,"+ +(c*f>a*y)+","+(this._x1=t+k*l)+","+(this._y1=e+k*h)}else this._+="L"+(this._x1=t)+","+(this._y1=e)}},arc:function(t,e,n,i,r,s){t=+t,e=+e,n=+n,s=!!s;var o=n*Math.cos(i),l=n*Math.sin(i),h=t+o,a=e+l,c=1^s,u=s?i-r:r-i;if(n<0)throw Error("negative radius: "+n);null===this._x1?this._+="M"+h+","+a:(Math.abs(this._x1-h)>1e-6||Math.abs(this._y1-a)>1e-6)&&(this._+="L"+h+","+a),n&&(u<0&&(u=u%v+v),u>b?this._+="A"+n+","+n+",0,1,"+c+","+(t-o)+","+(e-l)+"A"+n+","+n+",0,1,"+c+","+(this._x1=h)+","+(this._y1=a):u>1e-6&&(this._+="A"+n+","+n+",0,"+ +(u>=m)+","+c+","+(this._x1=t+n*Math.cos(r))+","+(this._y1=e+n*Math.sin(r))))},rect:function(t,e,n,i){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +i+"h"+-n+"Z"},toString:function(){return this._}};var A=Array.prototype.slice;function S(t){return function(){return t}}function L(t){return t[0]}function M(t){return t[1]}function I(t){return t.source}function T(t){return t.target}function O(t,e,n,i,r){t.moveTo(e,n),t.bezierCurveTo(e=(e+i)/2,n,e,r,i,r)}function C(t){return[t.source.x1,t.y0]}function D(t){return[t.target.x0,t.y1]}n(95285),n(31546),n(31234);var P=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,9],n=[1,10],i=[1,5,10,12],r={trace:function(){},yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:function(t,e,n,i,r,s,o){var l=s.length-1;switch(r){case 7:let h=i.findOrCreateNode(s[l-4].trim().replaceAll('""','"')),a=i.findOrCreateNode(s[l-2].trim().replaceAll('""','"')),c=parseFloat(s[l].trim());i.addLink(h,a,c);break;case 8:case 9:case 11:this.$=s[l];break;case 10:this.$=s[l-1]}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:e,20:n},{1:[2,6],7:11,10:[1,12]},t(n,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(i,[2,8]),t(i,[2,9]),{19:[1,16]},t(i,[2,11]),{1:[2,1]},{1:[2,5]},t(n,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:e,20:n},{15:18,16:7,17:8,18:e,20:n},{18:[1,19]},t(n,[2,3]),{12:[1,20]},t(i,[2,10]),{15:21,16:7,17:8,18:e,20:n},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:function(t,e){if(e.recoverable)this.trace(t);else{var n=Error(t);throw n.hash=e,n}},parse:function(t){var e=this,n=[0],i=[],r=[null],s=[],o=this.table,l="",h=0,a=0,c=s.slice.call(arguments,1),u=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);u.setInput(t,f.yy),f.yy.lexer=u,f.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var d=u.yylloc;s.push(d);var p=u.options&&u.options.ranges;"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,_,x,k,m,v,b,w,E={};;){if(_=n[n.length-1],this.defaultActions[_]?x=this.defaultActions[_]:(null==g&&(g=function(){var t;return"number"!=typeof(t=i.pop()||u.lex()||1)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}()),x=o[_]&&o[_][g]),void 0===x||!x.length||!x[0]){var A="";for(m in w=[],o[_])this.terminals_[m]&&m>2&&w.push("'"+this.terminals_[m]+"'");A=u.showPosition?"Parse error on line "+(h+1)+":\n"+u.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(h+1)+": Unexpected "+(1==g?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(A,{text:u.match,token:this.terminals_[g]||g,line:u.yylineno,loc:d,expected:w})}if(x[0]instanceof Array&&x.length>1)throw Error("Parse Error: multiple actions possible at state: "+_+", token: "+g);switch(x[0]){case 1:n.push(g),r.push(u.yytext),s.push(u.yylloc),n.push(x[1]),g=null,a=u.yyleng,l=u.yytext,h=u.yylineno,d=u.yylloc;break;case 2:if(v=this.productions_[x[1]][1],E.$=r[r.length-v],E._$={first_line:s[s.length-(v||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(v||1)].first_column,last_column:s[s.length-1].last_column},p&&(E._$.range=[s[s.length-(v||1)].range[0],s[s.length-1].range[1]]),void 0!==(k=this.performAction.apply(E,[l,a,h,f.yy,x[1],r,s].concat(c))))return k;v&&(n=n.slice(0,-1*v*2),r=r.slice(0,-1*v),s=s.slice(0,-1*v)),n.push(this.productions_[x[1]][0]),r.push(E.$),s.push(E._$),b=o[n[n.length-2]][n[n.length-1]],n.push(b);break;case 3:return!0}}return!0}};function s(){this.yy={}}return r.lexer={EOF:1,parseError:function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack)for(var s in r)this[s]=r[s];return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,n,i,r=this._currentRules(),s=0;s<r.length;s++)if((n=this._input.match(this.rules[r[s]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,r[s])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,r[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{easy_keword_rules:!0},performAction:function(t,e,n,i){switch(n){case 0:return this.pushState("csv"),4;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;case 5:return 20;case 6:return this.popState("escaped_text"),18;case 7:return 19}},rules:[/^(?:sankey-beta\b)/,/^(?:$)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:(\u002C))/,/^(?:(\u0022))/,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/,/^(?:(\u0022)(?!(\u0022)))/,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}},s.prototype=r,r.Parser=s,new s}();P.parser=P;let $=[],N=[],j={};class z{constructor(t,e,n=0){this.source=t,this.target=e,this.value=n}}class U{constructor(t){this.ID=t}}let F={nodesMap:j,getConfig:()=>(0,i.c)().sankey,getNodes:()=>N,getLinks:()=>$,getGraph:()=>({nodes:N.map(t=>({id:t.ID})),links:$.map(t=>({source:t.source.ID,target:t.target.ID,value:t.value}))}),addLink:(t,e,n)=>{$.push(new z(t,e,n))},findOrCreateNode:t=>(j[t=i.e.sanitizeText(t,(0,i.c)())]||(j[t]=new U(t),N.push(j[t])),j[t]),getAccTitle:i.g,setAccTitle:i.s,getAccDescription:i.a,setAccDescription:i.b,getDiagramTitle:i.t,setDiagramTitle:i.r,clear:()=>{$=[],N=[],j={},(0,i.v)()}},W=class{static next(t){return new W(t+ ++W.count)}constructor(t){this.id=t,this.href=`#${t}`}toString(){return"url("+this.href+")"}};W.count=0;let G={left:function(t){return t.depth},right:function(t,e){return e-1-t.height},center:function(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?s(t.sourceLinks,o)-1:0},justify:l},V=t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,"\n").trim(),X=P.parse.bind(P);P.parse=t=>X(V(t));let q={parser:P,db:F,renderer:{draw:function(t,e,n,o){let m,v;let{securityLevel:b,sankey:w}=(0,i.c)(),P=i.K.sankey;"sandbox"===b&&(m=(0,r.Ltv)("#i"+e));let $="sandbox"===b?(0,r.Ltv)(m.nodes()[0].contentDocument.body):(0,r.Ltv)("body"),N="sandbox"===b?$.select(`[id="${e}"]`):(0,r.Ltv)(`[id="${e}"]`),j=(null==w?void 0:w.width)??P.width,z=(null==w?void 0:w.height)??P.width,U=(null==w?void 0:w.useMaxWidth)??P.useMaxWidth,F=(null==w?void 0:w.nodeAlignment)??P.nodeAlignment,V=(null==w?void 0:w.prefix)??P.prefix,X=(null==w?void 0:w.suffix)??P.suffix,q=(null==w?void 0:w.showValues)??P.showValues;(0,i.i)(N,z,j,U);let K=o.db.getGraph(),Q=G[F];(function(){let t,e,n=0,i=0,r=1,o=1,m=24,v=8,b,w=p,E=l,A=g,S=_,L=6;function M(){let l={nodes:A.apply(null,arguments),links:S.apply(null,arguments)};return function({nodes:t,links:n}){for(let[e,n]of t.entries())n.index=e,n.sourceLinks=[],n.targetLinks=[];let i=new Map(t.map((e,n)=>[w(e,n,t),e]));for(let[t,e]of n.entries()){e.index=t;let{source:n,target:r}=e;"object"!=typeof n&&(n=e.source=x(i,n)),"object"!=typeof r&&(r=e.target=x(i,r)),n.sourceLinks.push(e),r.targetLinks.push(e)}if(null!=e)for(let{sourceLinks:n,targetLinks:i}of t)n.sort(e),i.sort(e)}(l),function({nodes:t}){for(let e of t)e.value=void 0===e.fixedValue?Math.max(h(e.sourceLinks,d),h(e.targetLinks,d)):e.fixedValue}(l),function({nodes:t}){let e=t.length,n=new Set(t),i=new Set,r=0;for(;n.size;){for(let t of n)for(let{target:e}of(t.depth=r,t.sourceLinks))i.add(e);if(++r>e)throw Error("circular link");n=i,i=new Set}}(l),function({nodes:t}){let e=t.length,n=new Set(t),i=new Set,r=0;for(;n.size;){for(let t of n)for(let{source:e}of(t.height=r,t.targetLinks))i.add(e);if(++r>e)throw Error("circular link");n=i,i=new Set}}(l),function(l){let c=function({nodes:e}){let i=a(e,t=>t.depth)+1,s=(r-n-m)/(i-1),o=Array(i);for(let t of e){let e=Math.max(0,Math.min(i-1,Math.floor(E.call(null,t,i))));t.layer=e,t.x0=n+e*s,t.x1=t.x0+m,o[e]?o[e].push(t):o[e]=[t]}if(t)for(let e of o)e.sort(t);return o}(l);b=Math.min(v,(o-i)/(a(c,t=>t.length)-1)),function(t){let n=s(t,t=>(o-i-(t.length-1)*b)/h(t,d));for(let r of t){let t=i;for(let e of r)for(let i of(e.y0=t,e.y1=t+e.value*n,t=e.y1+b,e.sourceLinks))i.width=i.value*n;t=(o-t+b)/(r.length+1);for(let e=0;e<r.length;++e){let n=r[e];n.y0+=t*(e+1),n.y1+=t*(e+1)}(function(t){if(void 0===e)for(let{sourceLinks:e,targetLinks:n}of t)e.sort(f),n.sort(u)})(r)}}(c);for(let e=0;e<L;++e){let n=Math.pow(.99,e),i=Math.max(1-n,(e+1)/L);(function(e,n,i){for(let r=e.length,s=r-2;s>=0;--s){let r=e[s];for(let t of r){let e=0,i=0;for(let{target:n,value:r}of t.sourceLinks){let s=r*(n.layer-t.layer);e+=function(t,e){let n=e.y0-(e.targetLinks.length-1)*b/2;for(let{source:i,width:r}of e.targetLinks){if(i===t)break;n+=r+b}for(let{target:i,width:r}of t.sourceLinks){if(i===e)break;n-=r}return n}(t,n)*s,i+=s}if(!(i>0))continue;let r=(e/i-t.y0)*n;t.y0+=r,t.y1+=r,C(t)}void 0===t&&r.sort(y),I(r,i)}})(c,n,i),function(e,n,i){for(let r=1,s=e.length;r<s;++r){let s=e[r];for(let t of s){let e=0,i=0;for(let{source:n,value:r}of t.targetLinks){let s=r*(t.layer-n.layer);e+=function(t,e){let n=t.y0-(t.sourceLinks.length-1)*b/2;for(let{target:i,width:r}of t.sourceLinks){if(i===e)break;n+=r+b}for(let{source:i,width:r}of e.targetLinks){if(i===t)break;n-=r}return n}(n,t)*s,i+=s}if(!(i>0))continue;let r=(e/i-t.y0)*n;t.y0+=r,t.y1+=r,C(t)}void 0===t&&s.sort(y),I(s,i)}}(c,n,i)}}(l),k(l),l}function I(t,e){let n=t.length>>1,r=t[n];O(t,r.y0-b,n-1,e),T(t,r.y1+b,n+1,e),O(t,o,t.length-1,e),T(t,i,0,e)}function T(t,e,n,i){for(;n<t.length;++n){let r=t[n],s=(e-r.y0)*i;s>1e-6&&(r.y0+=s,r.y1+=s),e=r.y1+b}}function O(t,e,n,i){for(;n>=0;--n){let r=t[n],s=(r.y1-e)*i;s>1e-6&&(r.y0-=s,r.y1-=s),e=r.y0-b}}function C({sourceLinks:t,targetLinks:n}){if(void 0===e){for(let{source:{sourceLinks:t}}of n)t.sort(f);for(let{target:{targetLinks:e}}of t)e.sort(u)}}return M.update=function(t){return k(t),t},M.nodeId=function(t){return arguments.length?(w="function"==typeof t?t:c(t),M):w},M.nodeAlign=function(t){return arguments.length?(E="function"==typeof t?t:c(t),M):E},M.nodeSort=function(e){return arguments.length?(t=e,M):t},M.nodeWidth=function(t){return arguments.length?(m=+t,M):m},M.nodePadding=function(t){return arguments.length?(v=b=+t,M):v},M.nodes=function(t){return arguments.length?(A="function"==typeof t?t:c(t),M):A},M.links=function(t){return arguments.length?(S="function"==typeof t?t:c(t),M):S},M.linkSort=function(t){return arguments.length?(e=t,M):e},M.size=function(t){return arguments.length?(n=i=0,r=+t[0],o=+t[1],M):[r-n,o-i]},M.extent=function(t){return arguments.length?(n=+t[0][0],r=+t[1][0],i=+t[0][1],o=+t[1][1],M):[[n,i],[r,o]]},M.iterations=function(t){return arguments.length?(L=+t,M):L},M})().nodeId(t=>t.id).nodeWidth(10).nodePadding(10+(q?15:0)).nodeAlign(Q).extent([[0,0],[j,z]])(K);let Y=(0,r.UMr)(r.zt);N.append("g").attr("class","nodes").selectAll(".node").data(K.nodes).join("g").attr("class","node").attr("id",t=>(t.uid=W.next("node-")).id).attr("transform",function(t){return"translate("+t.x0+","+t.y0+")"}).attr("x",t=>t.x0).attr("y",t=>t.y0).append("rect").attr("height",t=>t.y1-t.y0).attr("width",t=>t.x1-t.x0).attr("fill",t=>Y(t.id)),N.append("g").attr("class","node-labels").attr("font-family","sans-serif").attr("font-size",14).selectAll("text").data(K.nodes).join("text").attr("x",t=>t.x0<j/2?t.x1+6:t.x0-6).attr("y",t=>(t.y1+t.y0)/2).attr("dy",`${q?"0":"0.35"}em`).attr("text-anchor",t=>t.x0<j/2?"start":"end").text(({id:t,value:e})=>q?`${t} -${V}${Math.round(100*e)/100}${X}`:t);let B=N.append("g").attr("class","links").attr("fill","none").attr("stroke-opacity",.5).selectAll(".link").data(K.links).join("g").attr("class","link").style("mix-blend-mode","multiply"),R=(null==w?void 0:w.linkColor)||"gradient";if("gradient"===R){let t=B.append("linearGradient").attr("id",t=>(t.uid=W.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",t=>t.source.x1).attr("x2",t=>t.target.x0);t.append("stop").attr("offset","0%").attr("stop-color",t=>Y(t.source.id)),t.append("stop").attr("offset","100%").attr("stop-color",t=>Y(t.target.id))}switch(R){case"gradient":v=t=>t.uid;break;case"source":v=t=>Y(t.source.id);break;case"target":v=t=>Y(t.target.id);break;default:v=R}B.append("path").attr("d",(function(t){var e=I,n=T,i=L,r=M,s=null;function o(){var o,l=A.call(arguments),h=e.apply(this,l),a=n.apply(this,l);if(s||(s=o=E()),t(s,+i.apply(this,(l[0]=h,l)),+r.apply(this,l),+i.apply(this,(l[0]=a,l)),+r.apply(this,l)),o)return s=null,o+""||null}return o.source=function(t){return arguments.length?(e=t,o):e},o.target=function(t){return arguments.length?(n=t,o):n},o.x=function(t){return arguments.length?(i="function"==typeof t?t:S(+t),o):i},o.y=function(t){return arguments.length?(r="function"==typeof t?t:S(+t),o):r},o.context=function(t){return arguments.length?(s=null==t?null:t,o):s},o})(O).source(C).target(D)).attr("stroke",v).attr("stroke-width",t=>Math.max(1,t.width))}}}}}]); \ No newline at end of file diff --git a/assets/js/6875c492.5dddda48.js b/assets/js/6875c492.84751f23.js similarity index 85% rename from assets/js/6875c492.5dddda48.js rename to assets/js/6875c492.84751f23.js index aa50d3170d..b3bc0e9aca 100644 --- a/assets/js/6875c492.5dddda48.js +++ b/assets/js/6875c492.84751f23.js @@ -1,4 +1,4 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[84813],{69473:(e,t,r)=>{r.d(t,{in:()=>s,OU:()=>k,Ki:()=>S,kJ:()=>j,x:()=>a,e7:()=>u,J_:()=>m,Gx:()=>x});var n=r(62540),o=r(63696),c=r(2550),i=r(15789);function a(){var e;let t=(0,i.A)(),r=null==t?void 0:null===(e=t.data)||void 0===e?void 0:e.blogMetadata;if(!r)throw Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return r}let l=o.createContext(null);function s({children:e,content:t,isBlogPostPage:r=!1}){let c=function({content:e,isBlogPostPage:t}){return(0,o.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,toc:e.toc,isBlogPostPage:t}),[e,t])}({content:t,isBlogPostPage:r});return(0,n.jsx)(l.Provider,{value:c,children:e})}function u(){let e=(0,o.useContext)(l);if(null===e)throw new c.dV("BlogPostProvider");return e}var b=r(27167),p=r(99468);function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let O=e=>new Date(e).toISOString();function d(e){let t=e.map(g);return{author:1===t.length?t[0]:t}}function y(e,t,r){return e?{image:function({imageUrl:e,caption:t}){return{"@type":"ImageObject","@id":e,url:e,contentUrl:e,caption:t}}({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${r}`})}:{}}function j(e){let{siteConfig:t}=(0,p.A)(),{withBaseUrl:r}=(0,b.hH)(),{metadata:{blogDescription:n,blogTitle:o,permalink:c}}=e,i=`${t.url}${c}`;return{"@context":"https://schema.org","@type":"Blog","@id":i,mainEntityOfPage:i,headline:o,description:n,blogPost:e.items.map(e=>(function(e,t,r){var n,o;let{assets:c,frontMatter:i,metadata:a}=e,{date:l,title:s,description:u,lastUpdatedAt:b}=a,p=null!==(n=c.image)&&void 0!==n?n:i.image,j=null!==(o=i.keywords)&&void 0!==o?o:[],m=`${t.url}${a.permalink}`,g=b?O(b):void 0;return f({"@type":"BlogPosting","@id":m,mainEntityOfPage:m,url:m,headline:s,name:s,description:u,datePublished:l},g?{dateModified:g}:{},d(a.authors),y(p,r,s),j?{keywords:j}:{})})(e.content,t,r))}}function m(){var e,t,r,n;let o=a(),{assets:c,metadata:i}=u(),{siteConfig:l}=(0,p.A)(),{withBaseUrl:s}=(0,b.hH)(),{date:j,title:m,description:g,frontMatter:h,lastUpdatedAt:v}=i,w=null!==(e=c.image)&&void 0!==e?e:h.image,P=null!==(t=h.keywords)&&void 0!==t?t:[],x=v?O(v):void 0,S=`${l.url}${i.permalink}`;return r=f({"@context":"https://schema.org","@type":"BlogPosting","@id":S,mainEntityOfPage:S,url:S,headline:m,name:m,description:g,datePublished:j},x?{dateModified:x}:{},d(i.authors),y(w,s,m),P?{keywords:P}:{}),n=n={isPartOf:{"@type":"Blog","@id":`${l.url}${o.blogBasePath}`,name:o.blogTitle}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}function g(e){return f({"@type":"Person"},e.name?{name:e.name}:{},e.title?{description:e.title}:{},e.url?{url:e.url}:{},e.email?{email:e.email}:{},e.imageURL?{image:e.imageURL}:{})}var h=r(49519),v=r(36372),w=r(66904),P=r(3107);function x(e){let{pathname:t}=(0,h.zy)();return(0,o.useMemo)(()=>e.filter(e=>!e.unlisted||!!(0,P.ys)(e.permalink,t)),[e,t])}function S(e){let t=Object.entries((0,w.$z)(e,e=>`${new Date(e.date).getFullYear()}`));return t.reverse(),t}function k({items:e,ulClassName:t,liClassName:r,linkClassName:o,linkActiveClassName:c}){return(0,n.jsx)("ul",{className:t,children:e.map(e=>(0,n.jsx)("li",{className:r,children:(0,n.jsx)(v.A,{isNavLink:!0,to:e.permalink,className:o,activeClassName:c,children:e.title})},e.permalink))})}},65108:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,n.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}r(63696)},55640:(e,t,r)=>{r.d(t,{A:()=>E});var n,o,c=r(62540),i=r(63696),a=r(11750),l=r(81912),s=r(12653);let u={admonition:"admonition_o5H7",admonitionHeading:"admonitionHeading_FzoX",admonitionIcon:"admonitionIcon_rXq6",admonitionContent:"admonitionContent_Knsx"};function b({type:e,className:t,children:r}){return(0,c.jsx)("div",{className:(0,a.A)(s.G.common.admonition,s.G.common.admonitionType(e),u.admonition,t),children:r})}function p({icon:e,title:t}){return(0,c.jsxs)("div",{className:u.admonitionHeading,children:[(0,c.jsx)("span",{className:u.admonitionIcon,children:e}),t]})}function f({children:e}){return e?(0,c.jsx)("div",{className:u.admonitionContent,children:e}):null}function O(e){let{type:t,icon:r,title:n,children:o,className:i}=e;return(0,c.jsxs)(b,{type:t,className:i,children:[n||r?(0,c.jsx)(p,{title:n,icon:r}):null,(0,c.jsx)(f,{children:o})]})}let d={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function y(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},d,e),r=r={className:(0,a.A)("alert alert--secondary",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let j={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function m(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},j,e),r=r={className:(0,a.A)("alert alert--success",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var g=r(65108);let h={icon:(0,c.jsx)(g.A,{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function v(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},h,e),r=r={className:(0,a.A)("alert alert--info",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function w(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 16 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let P={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})},x={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})},S={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};function k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let A=k({},{note:y,tip:m,info:v,warning:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},P,e),r=r={className:(0,a.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},danger:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},x,e),r=r={className:(0,a.A)("alert alert--danger",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},{secondary:e=>(0,c.jsx)(y,k({title:"secondary"},e)),important:e=>(0,c.jsx)(v,k({title:"important"},e)),success:e=>(0,c.jsx)(m,k({title:"success"},e)),caution:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},S,e),r=r={className:(0,a.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}});var D=r(37425);let N=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},A),o=o={"my-custom-admonition":function(e){return(0,c.jsxs)("div",{style:{border:"solid red",padding:10},children:[(0,c.jsx)(D.A,{as:"h5",style:{color:"blue",fontSize:30},children:e.title}),(0,c.jsx)("div",{children:e.children})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function E(e){var t;let r=function(e){var t,r,n;let{mdxAdmonitionTitle:o,rest:a}=function(e){let t=i.Children.toArray(e),r=t.find(e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),n=t.filter(e=>e!==r);return{mdxAdmonitionTitle:null==r?void 0:r.props.children,rest:n.length>0?(0,c.jsx)(c.Fragment,{children:n}):null}}(e.children),l=null!==(t=e.title)&&void 0!==t?t:o;return r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e,l&&{title:l}),n=n={children:a},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}(e),n=N[t=r.type]||(console.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),N.info);return(0,c.jsx)(n,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r))}},6205:(e,t,r)=>{r.d(t,{A:()=>j});var n=r(62540);r(63696);var o=r(11750),c=r(36372);let i=function(e){var t,r;return(0,n.jsxs)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},e),r=r={children:[(0,n.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,n.jsx)("path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"}),(0,n.jsx)("path",{d:"M3.6 9h16.8"}),(0,n.jsx)("path",{d:"M3.6 15h16.8"}),(0,n.jsx)("path",{d:"M11.5 3a17 17 0 0 0 0 18"}),(0,n.jsx)("path",{d:"M12.5 3a17 17 0 0 1 0 18"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},a="authorSocialLink_hEWM",l={twitter:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 256 209",width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid"},e),r=r={children:(0,n.jsx)("path",{d:"M256 25.45c-9.42 4.177-19.542 7-30.166 8.27 10.845-6.5 19.172-16.793 23.093-29.057a105.183 105.183 0 0 1-33.351 12.745C205.995 7.201 192.346.822 177.239.822c-29.006 0-52.523 23.516-52.523 52.52 0 4.117.465 8.125 1.36 11.97-43.65-2.191-82.35-23.1-108.255-54.876-4.52 7.757-7.11 16.78-7.11 26.404 0 18.222 9.273 34.297 23.365 43.716a52.312 52.312 0 0 1-23.79-6.57c-.003.22-.003.44-.003.661 0 25.447 18.104 46.675 42.13 51.5a52.592 52.592 0 0 1-23.718.9c6.683 20.866 26.08 36.05 49.062 36.475-17.975 14.086-40.622 22.483-65.228 22.483-4.24 0-8.42-.249-12.529-.734 23.243 14.902 50.85 23.597 80.51 23.597 96.607 0 149.434-80.031 149.434-149.435 0-2.278-.05-4.543-.152-6.795A106.748 106.748 0 0 0 256 25.45",fill:"#55acee"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"Twitter"},github:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 256 250",width:"1em",height:"1em"},e),r=r={className:(0,o.A)(e.className,"githubSvg_jqE4"),xmlns:"http://www.w3.org/2000/svg",style:{"--dark":"#000","--light":"#fff"},preserveAspectRatio:"xMidYMid",children:(0,n.jsx)("path",{d:"M128.001 0C57.317 0 0 57.307 0 128.001c0 56.554 36.676 104.535 87.535 121.46 6.397 1.185 8.746-2.777 8.746-6.158 0-3.052-.12-13.135-.174-23.83-35.61 7.742-43.124-15.103-43.124-15.103-5.823-14.795-14.213-18.73-14.213-18.73-11.613-7.944.876-7.78.876-7.78 12.853.902 19.621 13.19 19.621 13.19 11.417 19.568 29.945 13.911 37.249 10.64 1.149-8.272 4.466-13.92 8.127-17.116-28.431-3.236-58.318-14.212-58.318-63.258 0-13.975 5-25.394 13.188-34.358-1.329-3.224-5.71-16.242 1.24-33.874 0 0 10.749-3.44 35.21 13.121 10.21-2.836 21.16-4.258 32.038-4.307 10.878.049 21.837 1.47 32.066 4.307 24.431-16.56 35.165-13.12 35.165-13.12 6.967 17.63 2.584 30.65 1.255 33.873 8.207 8.964 13.173 20.383 13.173 34.358 0 49.163-29.944 59.988-58.447 63.157 4.591 3.972 8.682 11.762 8.682 23.704 0 17.126-.148 30.91-.148 35.126 0 3.407 2.304 7.398 8.792 6.14C219.37 232.5 256 184.537 256 128.002 256 57.307 198.691 0 128.001 0Zm-80.06 182.34c-.282.636-1.283.827-2.194.39-.929-.417-1.45-1.284-1.15-1.922.276-.655 1.279-.838 2.205-.399.93.418 1.46 1.293 1.139 1.931Zm6.296 5.618c-.61.566-1.804.303-2.614-.591-.837-.892-.994-2.086-.375-2.66.63-.566 1.787-.301 2.626.591.838.903 1 2.088.363 2.66Zm4.32 7.188c-.785.545-2.067.034-2.86-1.104-.784-1.138-.784-2.503.017-3.05.795-.547 2.058-.055 2.861 1.075.782 1.157.782 2.522-.019 3.08Zm7.304 8.325c-.701.774-2.196.566-3.29-.49-1.119-1.032-1.43-2.496-.726-3.27.71-.776 2.213-.558 3.315.49 1.11 1.03 1.45 2.505.701 3.27Zm9.442 2.81c-.31 1.003-1.75 1.459-3.199 1.033-1.448-.439-2.395-1.613-2.103-2.626.301-1.01 1.747-1.484 3.207-1.028 1.446.436 2.396 1.602 2.095 2.622Zm10.744 1.193c.036 1.055-1.193 1.93-2.715 1.95-1.53.034-2.769-.82-2.786-1.86 0-1.065 1.202-1.932 2.733-1.958 1.522-.03 2.768.818 2.768 1.868Zm10.555-.405c.182 1.03-.875 2.088-2.387 2.37-1.485.271-2.861-.365-3.05-1.386-.184-1.056.893-2.114 2.376-2.387 1.514-.263 2.868.356 3.061 1.403Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"GitHub"},stackoverflow:{Icon:function(e){var t,r;return(0,n.jsxs)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 169.61 200",width:"1em",height:"1em"},e),r=r={children:[(0,n.jsx)("path",{d:"M140.44 178.38v-48.65h21.61V200H0v-70.27h21.61v48.65z",fill:"#bcbbbb"}),(0,n.jsx)("path",{d:"M124.24 140.54l4.32-16.22-86.97-17.83-3.78 17.83zM49.7 82.16L130.72 120l7.56-16.22-81.02-37.83zm22.68-40l68.06 57.3 11.35-13.51-68.6-57.3-11.35 13.51zM116.14 0l-14.59 10.81 53.48 71.89 14.58-10.81zM37.81 162.16h86.43v-16.21H37.81z",fill:"#f48024"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"Stack Overflow"},linkedin:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 256"},e),r=r={children:(0,n.jsx)("path",{d:"M218.123 218.127h-37.931v-59.403c0-14.165-.253-32.4-19.728-32.4-19.756 0-22.779 15.434-22.779 31.369v60.43h-37.93V95.967h36.413v16.694h.51a39.907 39.907 0 0 1 35.928-19.733c38.445 0 45.533 25.288 45.533 58.186l-.016 67.013ZM56.955 79.27c-12.157.002-22.014-9.852-22.016-22.009-.002-12.157 9.851-22.014 22.008-22.016 12.157-.003 22.014 9.851 22.016 22.008A22.013 22.013 0 0 1 56.955 79.27m18.966 138.858H37.95V95.967h37.97v122.16ZM237.033.018H18.89C8.58-.098.125 8.161-.001 18.471v219.053c.122 10.315 8.576 18.582 18.89 18.474h218.144c10.336.128 18.823-8.139 18.966-18.474V18.454c-.147-10.33-8.635-18.588-18.966-18.453",fill:"#0A66C2"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"LinkedIn"},x:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"none",viewBox:"0 0 1200 1227"},e),r=r={className:(0,o.A)(e.className,"xSvg_Q0g7"),style:{"--dark":"#000","--light":"#fff"},children:(0,n.jsx)("path",{d:"M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"X"}};function s({platform:e,link:t}){var r;let{Icon:s,label:u}=null!==(r=l[e])&&void 0!==r?r:{Icon:i,label:e};return(0,n.jsx)(c.A,{className:a,href:t,title:u,children:(0,n.jsx)(s,{className:(0,o.A)(a)})})}function u({author:e}){var t;let r=Object.entries(null!==(t=e.socials)&&void 0!==t?t:{});return(0,n.jsx)("div",{className:"authorSocials_tPnL",children:r.map(([e,t])=>(0,n.jsx)(s,{platform:e,link:t},e))})}var b=r(37425);let p={authorImage:"authorImage_p8ow","author-as-h1":"author-as-h1_Pd3R","author-as-h2":"author-as-h2_UaZL",authorDetails:"authorDetails_dWdF",authorName:"authorName_Y8Hr",authorTitle:"authorTitle_Slpj",authorBlogPostCount:"authorBlogPostCount_FxU_"};function f(e){return e.href?(0,n.jsx)(c.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e)):(0,n.jsx)(n.Fragment,{children:e.children})}function O({title:e}){return(0,n.jsx)("small",{className:p.authorTitle,title:e,children:e})}function d({name:e,as:t}){return t?(0,n.jsx)(b.A,{as:t,className:p.authorName,children:e}):(0,n.jsx)("span",{className:p.authorName,children:e})}function y({count:e}){return(0,n.jsx)("span",{className:(0,o.A)(p.authorBlogPostCount),children:e})}function j({as:e,author:t,className:r,count:c}){let{name:i,title:a,url:l,imageURL:s,email:b,page:j}=t,m=(null==j?void 0:j.permalink)||l||b&&`mailto:${b}`||void 0;return(0,n.jsxs)("div",{className:(0,o.A)("avatar margin-bottom--sm",r,p[`author-as-${e}`]),children:[s&&(0,n.jsx)(f,{href:m,className:"avatar__photo-link",children:(0,n.jsx)("img",{className:(0,o.A)("avatar__photo",p.authorImage),src:s,alt:i})}),(i||a)&&(0,n.jsxs)("div",{className:(0,o.A)("avatar__intro",p.authorDetails),children:[(0,n.jsxs)("div",{className:"avatar__name",children:[i&&(0,n.jsx)(f,{href:m,children:(0,n.jsx)(d,{name:i,as:e})}),void 0!==c&&(0,n.jsx)(y,{count:c})]}),!!a&&(0,n.jsx)(O,{title:a}),(0,n.jsx)(u,{author:t})]})]})}},94389:(e,t,r)=>{r.d(t,{A:()=>v});var n=r(62540),o=r(63696),c=r(11750),i=r(99849),a=r(85975),l=r(81912),s=r(69473),u=r(25436),b=r(37425);function p({year:e,yearGroupHeadingClassName:t,children:r}){return(0,n.jsxs)("div",{role:"group",children:[(0,n.jsx)(b.A,{as:"h3",className:t,children:e}),r]})}let f=(0,o.memo)(function({items:e,yearGroupHeadingClassName:t,ListComponent:r}){if(!(0,u.p)().blog.sidebar.groupByYear)return(0,n.jsx)(r,{items:e});{let o=(0,s.Ki)(e);return(0,n.jsx)(n.Fragment,{children:o.map(([e,o])=>(0,n.jsx)(p,{year:e,yearGroupHeadingClassName:t,children:(0,n.jsx)(r,{items:o})},e))})}}),O=({items:e})=>(0,n.jsx)(s.OU,{items:e,ulClassName:(0,c.A)("sidebarItemList_OSkG","clean-list"),liClassName:"sidebarItem_WJ0y",linkClassName:"sidebarItemLink_Qrfg",linkActiveClassName:"sidebarItemLinkActive_nUeK"}),d=(0,o.memo)(function({sidebar:e}){let t=(0,s.Gx)(e.items);return(0,n.jsx)("aside",{className:"col col--3",children:(0,n.jsxs)("nav",{className:(0,c.A)("sidebar_P3nc","thin-scrollbar"),"aria-label":(0,l.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,n.jsx)("div",{className:(0,c.A)("sidebarItemTitle_VrjY","margin-bottom--md"),children:e.title}),(0,n.jsx)(f,{items:t,ListComponent:O,yearGroupHeadingClassName:"yearGroupHeading_lECJ"})]})})});var y=r(2454);let j=({items:e})=>(0,n.jsx)(s.OU,{items:e,ulClassName:"menu__list",liClassName:"menu__list-item",linkClassName:"menu__link",linkActiveClassName:"menu__link--active"});function m({sidebar:e}){let t=(0,s.Gx)(e.items);return(0,n.jsx)(f,{items:t,ListComponent:j,yearGroupHeadingClassName:"yearGroupHeading_Ruz9"})}let g=(0,o.memo)(function(e){return(0,n.jsx)(y.GX,{component:m,props:e})});function h({sidebar:e}){let t=(0,a.l)();return(null==e?void 0:e.items.length)?"mobile"===t?(0,n.jsx)(g,{sidebar:e}):(0,n.jsx)(d,{sidebar:e}):null}function v(e){var t,r;let{sidebar:o,toc:a,children:l}=e,s=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["sidebar","toc","children"]),u=o&&o.items.length>0;return(0,n.jsx)(i.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},s),r=r={children:(0,n.jsx)("div",{className:"container margin-vert--lg",children:(0,n.jsxs)("div",{className:"row",children:[(0,n.jsx)(h,{sidebar:o}),(0,n.jsx)("main",{className:(0,c.A)("col",{"col--7":u,"col--9 col--offset-1":!u}),children:l}),a&&(0,n.jsx)("div",{className:"col col--2",children:a})]})})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},467:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(81912),c=r(88524);function i(e){let{metadata:t}=e,{previousPage:r,nextPage:i}=t;return(0,n.jsxs)("nav",{className:"pagination-nav","aria-label":(0,o.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[r&&(0,n.jsx)(c.A,{permalink:r,title:(0,n.jsx)(o.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer entries"})}),i&&(0,n.jsx)(c.A,{permalink:i,title:(0,n.jsx)(o.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older entries"}),isNext:!0})]})}},57813:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o({children:e,className:t}){return(0,n.jsx)("article",{className:t,children:e})}r(63696)},5939:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(11750),c=r(71106),i=r(69473),a=r(76699);function l({children:e,className:t}){let{isBlogPostPage:r}=(0,i.e7)();return(0,n.jsx)("div",{id:r?c.LU:void 0,className:(0,o.A)("markdown",t),children:(0,n.jsx)(a.A,{children:e})})}},21500:(e,t,r)=>{r.d(t,{A:()=>p});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(13111),a=r(60908),l=r(69473);function s({readingTime:e}){let t=function(){let{selectMessage:e}=(0,i.W)();return t=>{let r=Math.ceil(t);return e(r,(0,c.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:r}))}}();return(0,n.jsx)(n.Fragment,{children:t(e)})}function u({date:e,formattedDate:t}){return(0,n.jsx)("time",{dateTime:e,children:t})}function b(){return(0,n.jsx)(n.Fragment,{children:" \xb7 "})}function p({className:e}){let{metadata:t}=(0,l.e7)(),{date:r,readingTime:c}=t,i=(0,a.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,n.jsxs)("div",{className:(0,o.A)("container_x5Un","margin-vert--md",e),children:[(0,n.jsx)(u,{date:r,formattedDate:i.format(new Date(r))}),void 0!==c&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(b,{}),(0,n.jsx)(s,{readingTime:c})]})]})}},32886:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750),c=r(36372),i=r(69473);function a({className:e}){let{metadata:t,isBlogPostPage:r}=(0,i.e7)(),{permalink:a,title:l}=t;return(0,n.jsx)(r?"h1":"h2",{className:(0,o.A)("title_UBNu",e),children:r?l:(0,n.jsx)(c.A,{to:a,children:l})})}},50064:(e,t,r)=>{r.d(t,{A:()=>w});var n=r(62540);r(63696);var o=r(11750),c=r(69473),i=r(57813),a=r(32886),l=r(21500),s=r(6205);let u={authorCol:"authorCol_bvyx",imageOnlyAuthorRow:"imageOnlyAuthorRow_L2DM",imageOnlyAuthorCol:"imageOnlyAuthorCol_oyze"};function b({className:e}){let{metadata:{authors:t},assets:r}=(0,c.e7)();if(0===t.length)return null;let i=t.every(({name:e})=>!e),a=1===t.length;return(0,n.jsx)("div",{className:(0,o.A)("margin-top--md margin-bottom--sm",i?u.imageOnlyAuthorRow:"row",e),children:t.map((e,t)=>{var c,l,b;return(0,n.jsx)("div",{className:(0,o.A)(!i&&(a?"col col--12":"col col--6"),i?u.imageOnlyAuthorCol:u.authorCol),children:(0,n.jsx)(s.A,{author:(l=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),b=b={imageURL:null!==(c=r.authorsImageUrls[t])&&void 0!==c?c:e.imageURL},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(b)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(b)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(b,e))}),l)})},t)})})}function p(){return(0,n.jsxs)("header",{children:[(0,n.jsx)(a.A,{}),(0,n.jsx)(l.A,{}),(0,n.jsx)(b,{})]})}var f=r(5939),O=r(12653),d=r(2604),y=r(48447),j=r(81912),m=r(36372);function g(){return(0,n.jsx)("b",{children:(0,n.jsx)(j.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read more"})})}function h(e){var t,r;let{blogPostTitle:o}=e,c=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["blogPostTitle"]);return(0,n.jsx)(m.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({"aria-label":(0,j.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:o})},c),r=r={children:(0,n.jsx)(g,{})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function v(){let{metadata:e,isBlogPostPage:t}=(0,c.e7)(),{tags:r,title:i,editUrl:a,hasTruncateMarker:l,lastUpdatedBy:s,lastUpdatedAt:u}=e,b=!t&&l,p=r.length>0;if(!(p||b||a))return null;if(!t)return(0,n.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[p&&(0,n.jsx)("div",{className:(0,o.A)("col",{"col--9":b}),children:(0,n.jsx)(y.A,{tags:r})}),b&&(0,n.jsx)("div",{className:(0,o.A)("col text--right",{"col--3":p}),children:(0,n.jsx)(h,{blogPostTitle:i,to:e.permalink})})]});{let e=!!(a||u||s);return(0,n.jsxs)("footer",{className:"docusaurus-mt-lg",children:[p&&(0,n.jsx)("div",{className:(0,o.A)("row","margin-top--sm",O.G.blog.blogFooterEditMetaRow),children:(0,n.jsx)("div",{className:"col",children:(0,n.jsx)(y.A,{tags:r})})}),e&&(0,n.jsx)(d.A,{className:(0,o.A)("margin-top--sm",O.G.blog.blogFooterEditMetaRow),editUrl:a,lastUpdatedAt:u,lastUpdatedBy:s})]})}}function w({children:e,className:t}){let r=function(){let{isBlogPostPage:e}=(0,c.e7)();return e?void 0:"margin-bottom--xl"}();return(0,n.jsxs)(i.A,{className:(0,o.A)(r,t),children:[(0,n.jsx)(p,{}),(0,n.jsx)(f.A,{children:e}),(0,n.jsx)(v,{})]})}},61662:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(69473),c=r(50064);function i({items:e,component:t=c.A}){return(0,n.jsx)(n.Fragment,{children:e.map(({content:e})=>(0,n.jsx)(o.in,{content:e,children:(0,n.jsx)(t,{children:(0,n.jsx)(e,{})})},e.metadata.permalink))})}},41459:(e,t,r)=>{r.r(t),r.d(t,{default:()=>g});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(37554),a=r(12653),l=r(13239),s=r(36372),u=r(94389),b=r(467),p=r(3113),f=r(61662),O=r(18384),d=r(37425);function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function j({tag:e}){let t=(0,l.ZD)(e);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.be,{title:t,description:e.description}),(0,n.jsx)(p.A,{tag:"blog_tags_posts"})]})}function m({tag:e,items:t,sidebar:r,listMetadata:o}){let i=(0,l.ZD)(e);return(0,n.jsxs)(u.A,{sidebar:r,children:[e.unlisted&&(0,n.jsx)(O.A,{}),(0,n.jsxs)("header",{className:"margin-bottom--xl",children:[(0,n.jsx)(d.A,{as:"h1",children:i}),e.description&&(0,n.jsx)("p",{children:e.description}),(0,n.jsx)(s.A,{href:e.allTagsPath,children:(0,n.jsx)(c.A,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,n.jsx)(f.A,{items:t}),(0,n.jsx)(b.A,{metadata:o})]})}function g(e){return(0,n.jsxs)(i.e3,{className:(0,o.A)(a.G.wrapper.blogPages,a.G.page.blogTagPostListPage),children:[(0,n.jsx)(j,y({},e)),(0,n.jsx)(m,y({},e))]})}},18384:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(62540);r(63696);var o=r(11750),c=r(77458),i=r(12653),a=r(55640);function l({className:e}){return(0,n.jsx)(a.A,{type:"caution",title:(0,n.jsx)(c.Rc,{}),className:(0,o.A)(e,i.G.common.unlistedBanner),children:(0,n.jsx)(c.Uh,{})})}function s(e){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.AE,{}),(0,n.jsx)(l,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))]})}},23572:(e,t,r)=>{r.d(t,{A:()=>f});var n=r(62540),o=r(63696),c=r(11750),i=r(52711),a=r(10709),l=r(27720);let s={details:"details_Nokh",isBrowser:"isBrowser_QrB5",collapsibleContent:"collapsibleContent_EoA1"};function u(e){return!!e&&("SUMMARY"===e.tagName||u(e.parentElement))}function b(e){var t,r,{summary:b,children:p}=e,f=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["summary","children"]);(0,i.A)().collectAnchor(f.id);let O=(0,a.A)(),d=(0,o.useRef)(null),{collapsed:y,setCollapsed:j}=(0,l.u)({initialState:!f.open}),[m,g]=(0,o.useState)(f.open),h=o.isValidElement(b)?b:(0,n.jsx)("summary",{children:null!=b?b:"Details"});return(0,n.jsxs)("details",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},f),r=r={ref:d,open:m,"data-collapsed":y,className:(0,c.A)(s.details,O&&s.isBrowser,f.className),onMouseDown:e=>{u(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();let t=e.target;u(t)&&function e(t,r){return!!t&&(t===r||e(t.parentElement,r))}(t,d.current)&&(e.preventDefault(),y?(j(!1),g(!0)):j(!0))},children:[h,(0,n.jsx)(l.N,{lazy:!1,collapsed:y,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{j(e),g(!e)},children:(0,n.jsx)("div",{className:s.collapsibleContent,children:p})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function f(e){var t,r,o=p({},function(e){if(null==e)throw TypeError("Cannot destructure "+e);return e}(e));return(0,n.jsx)(b,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={className:(0,c.A)("alert alert--info","details_Cn_P",o.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},2604:(e,t,r)=>{r.d(t,{A:()=>O});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(12653),a=r(36372);function l(e){var t,r,{className:c}=e,i=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["className"]);return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,o.A)("iconEdit_IMw_",c),"aria-hidden":"true"},i),r=r={children:(0,n.jsx)("g",{children:(0,n.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function s({editUrl:e}){return(0,n.jsxs)(a.A,{to:e,className:i.G.common.editThisPage,children:[(0,n.jsx)(l,{}),(0,n.jsx)(c.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=r(60908);function b({lastUpdatedAt:e}){let t=new Date(e),r=(0,u.i)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(t);return(0,n.jsx)(c.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,n.jsx)("b",{children:(0,n.jsx)("time",{dateTime:t.toISOString(),itemProp:"dateModified",children:r})})},children:" on {date}"})}function p({lastUpdatedBy:e}){return(0,n.jsx)(c.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,n.jsx)("b",{children:e})},children:" by {user}"})}function f({lastUpdatedAt:e,lastUpdatedBy:t}){return(0,n.jsxs)("span",{className:i.G.common.lastUpdated,children:[(0,n.jsx)(c.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,n.jsx)(b,{lastUpdatedAt:e}):"",byUser:t?(0,n.jsx)(p,{lastUpdatedBy:t}):""},children:"Last updated{atDate}{byUser}"}),!1]})}function O({className:e,editUrl:t,lastUpdatedAt:r,lastUpdatedBy:c}){return(0,n.jsxs)("div",{className:(0,o.A)("row",e),children:[(0,n.jsx)("div",{className:"col",children:t&&(0,n.jsx)(s,{editUrl:t})}),(0,n.jsx)("div",{className:(0,o.A)("col","lastUpdated_OHCJ"),children:(r||c)&&(0,n.jsx)(f,{lastUpdatedAt:r,lastUpdatedBy:c})})]})}},76699:(e,t,r)=>{r.d(t,{A:()=>T});var n,o,c=r(62540),i=r(63696),a=r(43023),l=r(93394),s=r(55887);function u(e){return(0,c.jsx)("code",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function p(e){return void 0!==e.children&&i.Children.toArray(e.children).every(e=>"string"==typeof e&&!e.includes("\n"))?(0,c.jsx)(u,b({},e)):(0,c.jsx)(s.A,b({},e))}var f=r(36372),O=r(23572);function d(e){var t,r;let n=i.Children.toArray(e.children),o=n.find(e=>i.isValidElement(e)&&"summary"===e.type),a=(0,c.jsx)(c.Fragment,{children:n.filter(e=>e!==o)});return(0,c.jsx)(O.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={summary:o,children:a},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var y=r(37425);function j(e){return(0,c.jsx)(y.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}var m=r(11750);let g={containsTaskList:"containsTaskList_k9gM"};var h=r(52711),v=r(55640),w=r(43758),P=r(1495),x=r(25436),S=r(66659),k=r(17367);async function A({id:e,text:t,config:r}){k.N.mermaidAPI.initialize(r);try{return await k.N.render(e,t)}catch(t){var n;throw null===(n=document.querySelector(`#d${e}`))||void 0===n||n.remove(),t}}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function N({renderResult:e}){let t=(0,i.useRef)(null);return(0,i.useEffect)(()=>{var r;let n=t.current;null===(r=e.bindFunctions)||void 0===r||r.call(e,n)},[e]),(0,c.jsx)("div",{ref:t,className:"docusaurus-mermaid-container container_RUsj",dangerouslySetInnerHTML:{__html:e.svg}})}function E({value:e}){let t=function({text:e,config:t}){let[r,n]=(0,i.useState)(null),o=(0,i.useRef)(`mermaid-svg-${Math.round(1e7*Math.random())}`).current,c=function(){let{colorMode:e}=(0,S.G)(),t=(0,x.p)().mermaid,r=t.theme[e],{options:n}=t;return(0,i.useMemo)(()=>{var e,t;return e=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({startOnLoad:!1},n),t=t={theme:r},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e},[r,n])}(),a=null!=t?t:c;return(0,i.useEffect)(()=>{A({id:o,text:e,config:a}).then(n).catch(e=>{n(()=>{throw e})})},[o,e,a]),r}({text:e});return null===t?null:(0,c.jsx)(N,{renderResult:t})}function _(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let C=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},{Head:l.A,details:d,Details:d,code:p,a:function(e){return(0,c.jsx)(f.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},pre:function(e){return(0,c.jsx)(c.Fragment,{children:e.children})},ul:function(e){var t,r;return(0,c.jsx)("ul",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={className:function(e){if(void 0!==e)return(0,m.A)(e,(null==e?void 0:e.includes("contains-task-list"))&&g.containsTaskList)}(e.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},li:function(e){return(0,h.A)().collectAnchor(e.id),(0,c.jsx)("li",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},img:function(e){var t,r,n;return(0,c.jsx)("img",(r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({decoding:"async",loading:"lazy"},e),n=n={className:(t=e.className,(0,m.A)(t,"img_vXGZ"))},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r))},h1:e=>(0,c.jsx)(j,_({as:"h1"},e)),h2:e=>(0,c.jsx)(j,_({as:"h2"},e)),h3:e=>(0,c.jsx)(j,_({as:"h3"},e)),h4:e=>(0,c.jsx)(j,_({as:"h4"},e)),h5:e=>(0,c.jsx)(j,_({as:"h5"},e)),h6:e=>(0,c.jsx)(j,_({as:"h6"},e)),admonition:v.A,mermaid:function(e){return(0,c.jsx)(w.A,{fallback:e=>(0,c.jsx)(P.MN,D({},e)),children:(0,c.jsx)(E,D({},e))})}}),o=o={Code:p,Highlight:function({children:e,color:t}){return(0,c.jsx)("span",{style:{backgroundColor:t,borderRadius:"2px",color:"#fff",padding:"0.2rem"},children:e})},TweetQuote:function({url:e,handle:t,name:r,job:n,children:o}){let i=`https://unavatar.io/x/${t}`,a=`https://x.com/${t}`;return(0,c.jsxs)("figure",{className:"tweetQuote_h8Rz",children:[(0,c.jsx)("blockquote",{children:(0,c.jsx)(f.A,{to:e,children:o})}),(0,c.jsx)("figcaption",{children:(0,c.jsx)(f.A,{to:a,rel:"nofollow",children:(0,c.jsxs)("div",{className:"avatar",children:[(0,c.jsx)("img",{alt:r,className:(0,m.A)("avatar__photo","avatarImg_b51M"),src:i}),(0,c.jsxs)("div",{className:(0,m.A)("avatar__intro"),children:[(0,c.jsx)("strong",{className:"avatar__name",children:(0,c.jsx)("cite",{children:r})}),(0,c.jsx)("small",{className:"avatar__subtitle",itemProp:"description",children:n})]})]})})})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function T({children:e}){return(0,c.jsx)(a.x,{components:C,children:e})}},88524:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(11750),c=r(36372);function i(e){let{permalink:t,title:r,subLabel:i,isNext:a}=e;return(0,n.jsxs)(c.A,{className:(0,o.A)("pagination-nav__link",a?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[i&&(0,n.jsx)("div",{className:"pagination-nav__sublabel",children:i}),(0,n.jsx)("div",{className:"pagination-nav__label",children:r})]})}},82499:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750),c=r(36372);let i={tag:"tag_Nd8t",tagRegular:"tagRegular_TiLs",tagWithCount:"tagWithCount_AQg7"};function a({permalink:e,label:t,count:r,description:a}){return(0,n.jsxs)(c.A,{href:e,title:a,className:(0,o.A)(i.tag,r?i.tagWithCount:i.tagRegular),children:[t,r&&(0,n.jsx)("span",{children:r})]})}},48447:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(82499);function a({tags:e}){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("b",{children:(0,n.jsx)(c.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,n.jsx)("ul",{className:(0,o.A)("tags_rTaS","padding--none","margin-left--sm"),children:e.map(e=>(0,n.jsx)("li",{className:"tag_l5va",children:(0,n.jsx)(i.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},e.permalink))})]})}},13239:(e,t,r)=>{r.d(t,{Y4:()=>b,ZD:()=>a,np:()=>u,uz:()=>s,wI:()=>l});var n=r(62540);r(63696);var o=r(81912),c=r(13111);function i(){let{selectMessage:e}=(0,c.W)();return t=>e(t,(0,o.T)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}function a(e){let t=i();return(0,o.T)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}function l(e){let t=i();return(0,o.T)({id:"theme.blog.author.pageTitle",description:"The title of the page for a blog author",message:"{authorName} - {nPosts}"},{nPosts:t(e.count),authorName:e.name||e.key})}let s=()=>(0,o.T)({id:"theme.blog.authorsList.pageTitle",message:"Authors",description:"The title of the authors page"});function u(){return(0,n.jsx)(o.A,{id:"theme.blog.authorsList.viewAll",description:"The label of the link targeting the blog authors page",children:"View all authors"})}function b(){return(0,n.jsx)(o.A,{id:"theme.blog.author.noPosts",description:"The text for authors with 0 blog post",children:"This author has not written any posts yet."})}},77458:(e,t,r)=>{r.d(t,{AE:()=>l,Rc:()=>i,TT:()=>u,Uh:()=>a,Yh:()=>s});var n=r(62540);r(63696);var o=r(81912),c=r(93394);function i(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function a(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function l(){return(0,n.jsx)(c.A,{children:(0,n.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function s(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function u(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}},60908:(e,t,r)=>{r.d(t,{i:()=>o});var n=r(99468);function o(e={}){let{i18n:{currentLocale:t}}=(0,n.A)(),r=function(){let{i18n:{currentLocale:e,localeConfigs:t}}=(0,n.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({calendar:r},e))}},13111:(e,t,r)=>{r.d(t,{W:()=>l});var n=r(63696),o=r(99468);let c=["zero","one","two","few","many","other"];function i(e){return c.filter(t=>e.includes(t))}let a={locale:"en",pluralForms:i(["one","other"]),select:e=>1===e?"one":"other"};function l(){let e=function(){let{i18n:{currentLocale:e}}=(0,o.A)();return(0,n.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:i(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[84813],{69473:(e,t,r)=>{r.d(t,{in:()=>s,OU:()=>k,Ki:()=>S,kJ:()=>j,x:()=>a,e7:()=>u,J_:()=>m,Gx:()=>x});var n=r(62540),o=r(63696),c=r(2550),i=r(15789);function a(){var e;let t=(0,i.A)(),r=null==t?void 0:null===(e=t.data)||void 0===e?void 0:e.blogMetadata;if(!r)throw Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return r}let l=o.createContext(null);function s({children:e,content:t,isBlogPostPage:r=!1}){let c=function({content:e,isBlogPostPage:t}){return(0,o.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,toc:e.toc,isBlogPostPage:t}),[e,t])}({content:t,isBlogPostPage:r});return(0,n.jsx)(l.Provider,{value:c,children:e})}function u(){let e=(0,o.useContext)(l);if(null===e)throw new c.dV("BlogPostProvider");return e}var b=r(27167),p=r(99468);function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let O=e=>new Date(e).toISOString();function d(e){let t=e.map(g);return{author:1===t.length?t[0]:t}}function y(e,t,r){return e?{image:function({imageUrl:e,caption:t}){return{"@type":"ImageObject","@id":e,url:e,contentUrl:e,caption:t}}({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${r}`})}:{}}function j(e){let{siteConfig:t}=(0,p.A)(),{withBaseUrl:r}=(0,b.hH)(),{metadata:{blogDescription:n,blogTitle:o,permalink:c}}=e,i=`${t.url}${c}`;return{"@context":"https://schema.org","@type":"Blog","@id":i,mainEntityOfPage:i,headline:o,description:n,blogPost:e.items.map(e=>(function(e,t,r){var n,o;let{assets:c,frontMatter:i,metadata:a}=e,{date:l,title:s,description:u,lastUpdatedAt:b}=a,p=null!==(n=c.image)&&void 0!==n?n:i.image,j=null!==(o=i.keywords)&&void 0!==o?o:[],m=`${t.url}${a.permalink}`,g=b?O(b):void 0;return f({"@type":"BlogPosting","@id":m,mainEntityOfPage:m,url:m,headline:s,name:s,description:u,datePublished:l},g?{dateModified:g}:{},d(a.authors),y(p,r,s),j?{keywords:j}:{})})(e.content,t,r))}}function m(){var e,t,r,n;let o=a(),{assets:c,metadata:i}=u(),{siteConfig:l}=(0,p.A)(),{withBaseUrl:s}=(0,b.hH)(),{date:j,title:m,description:g,frontMatter:h,lastUpdatedAt:v}=i,w=null!==(e=c.image)&&void 0!==e?e:h.image,P=null!==(t=h.keywords)&&void 0!==t?t:[],x=v?O(v):void 0,S=`${l.url}${i.permalink}`;return r=f({"@context":"https://schema.org","@type":"BlogPosting","@id":S,mainEntityOfPage:S,url:S,headline:m,name:m,description:g,datePublished:j},x?{dateModified:x}:{},d(i.authors),y(w,s,m),P?{keywords:P}:{}),n=n={isPartOf:{"@type":"Blog","@id":`${l.url}${o.blogBasePath}`,name:o.blogTitle}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}function g(e){return f({"@type":"Person"},e.name?{name:e.name}:{},e.title?{description:e.title}:{},e.url?{url:e.url}:{},e.email?{email:e.email}:{},e.imageURL?{image:e.imageURL}:{})}var h=r(49519),v=r(36372),w=r(66904),P=r(3107);function x(e){let{pathname:t}=(0,h.zy)();return(0,o.useMemo)(()=>e.filter(e=>!e.unlisted||!!(0,P.ys)(e.permalink,t)),[e,t])}function S(e){let t=Object.entries((0,w.$z)(e,e=>`${new Date(e.date).getFullYear()}`));return t.reverse(),t}function k({items:e,ulClassName:t,liClassName:r,linkClassName:o,linkActiveClassName:c}){return(0,n.jsx)("ul",{className:t,children:e.map(e=>(0,n.jsx)("li",{className:r,children:(0,n.jsx)(v.A,{isNavLink:!0,to:e.permalink,className:o,activeClassName:c,children:e.title})},e.permalink))})}},65108:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,n.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}r(63696)},55640:(e,t,r)=>{r.d(t,{A:()=>E});var n,o,c=r(62540),i=r(63696),a=r(11750),l=r(81912),s=r(12653);let u={admonition:"admonition_o5H7",admonitionHeading:"admonitionHeading_FzoX",admonitionIcon:"admonitionIcon_rXq6",admonitionContent:"admonitionContent_Knsx"};function b({type:e,className:t,children:r}){return(0,c.jsx)("div",{className:(0,a.A)(s.G.common.admonition,s.G.common.admonitionType(e),u.admonition,t),children:r})}function p({icon:e,title:t}){return(0,c.jsxs)("div",{className:u.admonitionHeading,children:[(0,c.jsx)("span",{className:u.admonitionIcon,children:e}),t]})}function f({children:e}){return e?(0,c.jsx)("div",{className:u.admonitionContent,children:e}):null}function O(e){let{type:t,icon:r,title:n,children:o,className:i}=e;return(0,c.jsxs)(b,{type:t,className:i,children:[n||r?(0,c.jsx)(p,{title:n,icon:r}):null,(0,c.jsx)(f,{children:o})]})}let d={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 14 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function y(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},d,e),r=r={className:(0,a.A)("alert alert--secondary",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let j={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function m(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},j,e),r=r={className:(0,a.A)("alert alert--success",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var g=r(65108);let h={icon:(0,c.jsx)(g.A,{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function v(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},h,e),r=r={className:(0,a.A)("alert alert--info",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function w(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 16 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let P={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})},x={icon:(0,c.jsx)(function(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 12 16"},e),r=r={children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})},S={icon:(0,c.jsx)(w,{}),title:(0,c.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};function k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let A=k({},{note:y,tip:m,info:v,warning:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},P,e),r=r={className:(0,a.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},danger:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},x,e),r=r={className:(0,a.A)("alert alert--danger",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},{secondary:e=>(0,c.jsx)(y,k({title:"secondary"},e)),important:e=>(0,c.jsx)(v,k({title:"important"},e)),success:e=>(0,c.jsx)(m,k({title:"success"},e)),caution:function(e){var t,r;return(0,c.jsx)(O,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},S,e),r=r={className:(0,a.A)("alert alert--warning",e.className),children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}});var D=r(37425);let N=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},A),o=o={"my-custom-admonition":function(e){return(0,c.jsxs)("div",{style:{border:"solid red",padding:10},children:[(0,c.jsx)(D.A,{as:"h5",style:{color:"blue",fontSize:30},children:e.title}),(0,c.jsx)("div",{children:e.children})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function E(e){var t;let r=function(e){var t,r,n;let{mdxAdmonitionTitle:o,rest:a}=function(e){let t=i.Children.toArray(e),r=t.find(e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),n=t.filter(e=>e!==r);return{mdxAdmonitionTitle:null==r?void 0:r.props.children,rest:n.length>0?(0,c.jsx)(c.Fragment,{children:n}):null}}(e.children),l=null!==(t=e.title)&&void 0!==t?t:o;return r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e,l&&{title:l}),n=n={children:a},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r}(e),n=N[t=r.type]||(console.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),N.info);return(0,c.jsx)(n,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r))}},6205:(e,t,r)=>{r.d(t,{A:()=>j});var n=r(62540);r(63696);var o=r(11750),c=r(36372);let i=function(e){var t,r;return(0,n.jsxs)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},e),r=r={children:[(0,n.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,n.jsx)("path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"}),(0,n.jsx)("path",{d:"M3.6 9h16.8"}),(0,n.jsx)("path",{d:"M3.6 15h16.8"}),(0,n.jsx)("path",{d:"M11.5 3a17 17 0 0 0 0 18"}),(0,n.jsx)("path",{d:"M12.5 3a17 17 0 0 1 0 18"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},a="authorSocialLink_hEWM",l={twitter:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 256 209",width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid"},e),r=r={children:(0,n.jsx)("path",{d:"M256 25.45c-9.42 4.177-19.542 7-30.166 8.27 10.845-6.5 19.172-16.793 23.093-29.057a105.183 105.183 0 0 1-33.351 12.745C205.995 7.201 192.346.822 177.239.822c-29.006 0-52.523 23.516-52.523 52.52 0 4.117.465 8.125 1.36 11.97-43.65-2.191-82.35-23.1-108.255-54.876-4.52 7.757-7.11 16.78-7.11 26.404 0 18.222 9.273 34.297 23.365 43.716a52.312 52.312 0 0 1-23.79-6.57c-.003.22-.003.44-.003.661 0 25.447 18.104 46.675 42.13 51.5a52.592 52.592 0 0 1-23.718.9c6.683 20.866 26.08 36.05 49.062 36.475-17.975 14.086-40.622 22.483-65.228 22.483-4.24 0-8.42-.249-12.529-.734 23.243 14.902 50.85 23.597 80.51 23.597 96.607 0 149.434-80.031 149.434-149.435 0-2.278-.05-4.543-.152-6.795A106.748 106.748 0 0 0 256 25.45",fill:"#55acee"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"Twitter"},github:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 256 250",width:"1em",height:"1em"},e),r=r={className:(0,o.A)(e.className,"githubSvg_jqE4"),xmlns:"http://www.w3.org/2000/svg",style:{"--dark":"#000","--light":"#fff"},preserveAspectRatio:"xMidYMid",children:(0,n.jsx)("path",{d:"M128.001 0C57.317 0 0 57.307 0 128.001c0 56.554 36.676 104.535 87.535 121.46 6.397 1.185 8.746-2.777 8.746-6.158 0-3.052-.12-13.135-.174-23.83-35.61 7.742-43.124-15.103-43.124-15.103-5.823-14.795-14.213-18.73-14.213-18.73-11.613-7.944.876-7.78.876-7.78 12.853.902 19.621 13.19 19.621 13.19 11.417 19.568 29.945 13.911 37.249 10.64 1.149-8.272 4.466-13.92 8.127-17.116-28.431-3.236-58.318-14.212-58.318-63.258 0-13.975 5-25.394 13.188-34.358-1.329-3.224-5.71-16.242 1.24-33.874 0 0 10.749-3.44 35.21 13.121 10.21-2.836 21.16-4.258 32.038-4.307 10.878.049 21.837 1.47 32.066 4.307 24.431-16.56 35.165-13.12 35.165-13.12 6.967 17.63 2.584 30.65 1.255 33.873 8.207 8.964 13.173 20.383 13.173 34.358 0 49.163-29.944 59.988-58.447 63.157 4.591 3.972 8.682 11.762 8.682 23.704 0 17.126-.148 30.91-.148 35.126 0 3.407 2.304 7.398 8.792 6.14C219.37 232.5 256 184.537 256 128.002 256 57.307 198.691 0 128.001 0Zm-80.06 182.34c-.282.636-1.283.827-2.194.39-.929-.417-1.45-1.284-1.15-1.922.276-.655 1.279-.838 2.205-.399.93.418 1.46 1.293 1.139 1.931Zm6.296 5.618c-.61.566-1.804.303-2.614-.591-.837-.892-.994-2.086-.375-2.66.63-.566 1.787-.301 2.626.591.838.903 1 2.088.363 2.66Zm4.32 7.188c-.785.545-2.067.034-2.86-1.104-.784-1.138-.784-2.503.017-3.05.795-.547 2.058-.055 2.861 1.075.782 1.157.782 2.522-.019 3.08Zm7.304 8.325c-.701.774-2.196.566-3.29-.49-1.119-1.032-1.43-2.496-.726-3.27.71-.776 2.213-.558 3.315.49 1.11 1.03 1.45 2.505.701 3.27Zm9.442 2.81c-.31 1.003-1.75 1.459-3.199 1.033-1.448-.439-2.395-1.613-2.103-2.626.301-1.01 1.747-1.484 3.207-1.028 1.446.436 2.396 1.602 2.095 2.622Zm10.744 1.193c.036 1.055-1.193 1.93-2.715 1.95-1.53.034-2.769-.82-2.786-1.86 0-1.065 1.202-1.932 2.733-1.958 1.522-.03 2.768.818 2.768 1.868Zm10.555-.405c.182 1.03-.875 2.088-2.387 2.37-1.485.271-2.861-.365-3.05-1.386-.184-1.056.893-2.114 2.376-2.387 1.514-.263 2.868.356 3.061 1.403Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"GitHub"},stackoverflow:{Icon:function(e){var t,r;return(0,n.jsxs)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 169.61 200",width:"1em",height:"1em"},e),r=r={children:[(0,n.jsx)("path",{d:"M140.44 178.38v-48.65h21.61V200H0v-70.27h21.61v48.65z",fill:"#bcbbbb"}),(0,n.jsx)("path",{d:"M124.24 140.54l4.32-16.22-86.97-17.83-3.78 17.83zM49.7 82.16L130.72 120l7.56-16.22-81.02-37.83zm22.68-40l68.06 57.3 11.35-13.51-68.6-57.3-11.35 13.51zM116.14 0l-14.59 10.81 53.48 71.89 14.58-10.81zM37.81 162.16h86.43v-16.21H37.81z",fill:"#f48024"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"Stack Overflow"},linkedin:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 256"},e),r=r={children:(0,n.jsx)("path",{d:"M218.123 218.127h-37.931v-59.403c0-14.165-.253-32.4-19.728-32.4-19.756 0-22.779 15.434-22.779 31.369v60.43h-37.93V95.967h36.413v16.694h.51a39.907 39.907 0 0 1 35.928-19.733c38.445 0 45.533 25.288 45.533 58.186l-.016 67.013ZM56.955 79.27c-12.157.002-22.014-9.852-22.016-22.009-.002-12.157 9.851-22.014 22.008-22.016 12.157-.003 22.014 9.851 22.016 22.008A22.013 22.013 0 0 1 56.955 79.27m18.966 138.858H37.95V95.967h37.97v122.16ZM237.033.018H18.89C8.58-.098.125 8.161-.001 18.471v219.053c.122 10.315 8.576 18.582 18.89 18.474h218.144c10.336.128 18.823-8.139 18.966-18.474V18.454c-.147-10.33-8.635-18.588-18.966-18.453",fill:"#0A66C2"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"LinkedIn"},x:{Icon:function(e){var t,r;return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"none",viewBox:"0 0 1200 1227"},e),r=r={className:(0,o.A)(e.className,"xSvg_Q0g7"),style:{"--dark":"#000","--light":"#fff"},children:(0,n.jsx)("path",{d:"M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},label:"X"}};function s({platform:e,link:t}){var r;let{Icon:s,label:u}=null!==(r=l[e])&&void 0!==r?r:{Icon:i,label:e};return(0,n.jsx)(c.A,{className:a,href:t,title:u,children:(0,n.jsx)(s,{className:(0,o.A)(a)})})}function u({author:e}){var t;let r=Object.entries(null!==(t=e.socials)&&void 0!==t?t:{});return(0,n.jsx)("div",{className:"authorSocials_tPnL",children:r.map(([e,t])=>(0,n.jsx)(s,{platform:e,link:t},e))})}var b=r(37425);let p={authorImage:"authorImage_p8ow","author-as-h1":"author-as-h1_Pd3R","author-as-h2":"author-as-h2_UaZL",authorDetails:"authorDetails_dWdF",authorName:"authorName_Y8Hr",authorTitle:"authorTitle_Slpj",authorBlogPostCount:"authorBlogPostCount_FxU_"};function f(e){return e.href?(0,n.jsx)(c.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e)):(0,n.jsx)(n.Fragment,{children:e.children})}function O({title:e}){return(0,n.jsx)("small",{className:p.authorTitle,title:e,children:e})}function d({name:e,as:t}){return t?(0,n.jsx)(b.A,{as:t,className:p.authorName,children:e}):(0,n.jsx)("span",{className:p.authorName,children:e})}function y({count:e}){return(0,n.jsx)("span",{className:(0,o.A)(p.authorBlogPostCount),children:e})}function j({as:e,author:t,className:r,count:c}){let{name:i,title:a,url:l,imageURL:s,email:b,page:j}=t,m=(null==j?void 0:j.permalink)||l||b&&`mailto:${b}`||void 0;return(0,n.jsxs)("div",{className:(0,o.A)("avatar margin-bottom--sm",r,p[`author-as-${e}`]),children:[s&&(0,n.jsx)(f,{href:m,className:"avatar__photo-link",children:(0,n.jsx)("img",{className:(0,o.A)("avatar__photo",p.authorImage),src:s,alt:i})}),(i||a)&&(0,n.jsxs)("div",{className:(0,o.A)("avatar__intro",p.authorDetails),children:[(0,n.jsxs)("div",{className:"avatar__name",children:[i&&(0,n.jsx)(f,{href:m,children:(0,n.jsx)(d,{name:i,as:e})}),void 0!==c&&(0,n.jsx)(y,{count:c})]}),!!a&&(0,n.jsx)(O,{title:a}),(0,n.jsx)(u,{author:t})]})]})}},94389:(e,t,r)=>{r.d(t,{A:()=>v});var n=r(62540),o=r(63696),c=r(11750),i=r(99849),a=r(85975),l=r(81912),s=r(69473),u=r(25436),b=r(37425);function p({year:e,yearGroupHeadingClassName:t,children:r}){return(0,n.jsxs)("div",{role:"group",children:[(0,n.jsx)(b.A,{as:"h3",className:t,children:e}),r]})}let f=(0,o.memo)(function({items:e,yearGroupHeadingClassName:t,ListComponent:r}){if(!(0,u.p)().blog.sidebar.groupByYear)return(0,n.jsx)(r,{items:e});{let o=(0,s.Ki)(e);return(0,n.jsx)(n.Fragment,{children:o.map(([e,o])=>(0,n.jsx)(p,{year:e,yearGroupHeadingClassName:t,children:(0,n.jsx)(r,{items:o})},e))})}}),O=({items:e})=>(0,n.jsx)(s.OU,{items:e,ulClassName:(0,c.A)("sidebarItemList_OSkG","clean-list"),liClassName:"sidebarItem_WJ0y",linkClassName:"sidebarItemLink_Qrfg",linkActiveClassName:"sidebarItemLinkActive_nUeK"}),d=(0,o.memo)(function({sidebar:e}){let t=(0,s.Gx)(e.items);return(0,n.jsx)("aside",{className:"col col--3",children:(0,n.jsxs)("nav",{className:(0,c.A)("sidebar_P3nc","thin-scrollbar"),"aria-label":(0,l.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,n.jsx)("div",{className:(0,c.A)("sidebarItemTitle_VrjY","margin-bottom--md"),children:e.title}),(0,n.jsx)(f,{items:t,ListComponent:O,yearGroupHeadingClassName:"yearGroupHeading_lECJ"})]})})});var y=r(2454);let j=({items:e})=>(0,n.jsx)(s.OU,{items:e,ulClassName:"menu__list",liClassName:"menu__list-item",linkClassName:"menu__link",linkActiveClassName:"menu__link--active"});function m({sidebar:e}){let t=(0,s.Gx)(e.items);return(0,n.jsx)(f,{items:t,ListComponent:j,yearGroupHeadingClassName:"yearGroupHeading_Ruz9"})}let g=(0,o.memo)(function(e){return(0,n.jsx)(y.GX,{component:m,props:e})});function h({sidebar:e}){let t=(0,a.l)();return(null==e?void 0:e.items.length)?"mobile"===t?(0,n.jsx)(g,{sidebar:e}):(0,n.jsx)(d,{sidebar:e}):null}function v(e){var t,r;let{sidebar:o,toc:a,children:l}=e,s=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["sidebar","toc","children"]),u=o&&o.items.length>0;return(0,n.jsx)(i.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},s),r=r={children:(0,n.jsx)("div",{className:"container margin-vert--lg",children:(0,n.jsxs)("div",{className:"row",children:[(0,n.jsx)(h,{sidebar:o}),(0,n.jsx)("main",{className:(0,c.A)("col",{"col--7":u,"col--9 col--offset-1":!u}),children:l}),a&&(0,n.jsx)("div",{className:"col col--2",children:a})]})})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},467:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(81912),c=r(88524);function i(e){let{metadata:t}=e,{previousPage:r,nextPage:i}=t;return(0,n.jsxs)("nav",{className:"pagination-nav","aria-label":(0,o.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[r&&(0,n.jsx)(c.A,{permalink:r,title:(0,n.jsx)(o.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer entries"})}),i&&(0,n.jsx)(c.A,{permalink:i,title:(0,n.jsx)(o.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older entries"}),isNext:!0})]})}},57813:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(62540);function o({children:e,className:t}){return(0,n.jsx)("article",{className:t,children:e})}r(63696)},5939:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(62540);r(63696);var o=r(11750),c=r(71106),i=r(69473),a=r(76699);function l({children:e,className:t}){let{isBlogPostPage:r}=(0,i.e7)();return(0,n.jsx)("div",{id:r?c.LU:void 0,className:(0,o.A)("markdown",t),children:(0,n.jsx)(a.A,{children:e})})}},21500:(e,t,r)=>{r.d(t,{A:()=>p});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(13111),a=r(60908),l=r(69473);function s({readingTime:e}){let t=function(){let{selectMessage:e}=(0,i.W)();return t=>{let r=Math.ceil(t);return e(r,(0,c.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:r}))}}();return(0,n.jsx)(n.Fragment,{children:t(e)})}function u({date:e,formattedDate:t}){return(0,n.jsx)("time",{dateTime:e,children:t})}function b(){return(0,n.jsx)(n.Fragment,{children:" \xb7 "})}function p({className:e}){let{metadata:t}=(0,l.e7)(),{date:r,readingTime:c}=t,i=(0,a.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,n.jsxs)("div",{className:(0,o.A)("container_x5Un","margin-vert--md",e),children:[(0,n.jsx)(u,{date:r,formattedDate:i.format(new Date(r))}),void 0!==c&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(b,{}),(0,n.jsx)(s,{readingTime:c})]})]})}},32886:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750),c=r(36372),i=r(69473);function a({className:e}){let{metadata:t,isBlogPostPage:r}=(0,i.e7)(),{permalink:a,title:l}=t;return(0,n.jsx)(r?"h1":"h2",{className:(0,o.A)("title_UBNu",e),children:r?l:(0,n.jsx)(c.A,{to:a,children:l})})}},50064:(e,t,r)=>{r.d(t,{A:()=>w});var n=r(62540);r(63696);var o=r(11750),c=r(69473),i=r(57813),a=r(32886),l=r(21500),s=r(6205);let u={authorCol:"authorCol_bvyx",imageOnlyAuthorRow:"imageOnlyAuthorRow_L2DM",imageOnlyAuthorCol:"imageOnlyAuthorCol_oyze"};function b({className:e}){let{metadata:{authors:t},assets:r}=(0,c.e7)();if(0===t.length)return null;let i=t.every(({name:e})=>!e),a=1===t.length;return(0,n.jsx)("div",{className:(0,o.A)("margin-top--md margin-bottom--sm",i?u.imageOnlyAuthorRow:"row",e),children:t.map((e,t)=>{var c,l,b;return(0,n.jsx)("div",{className:(0,o.A)(!i&&(a?"col col--12":"col col--6"),i?u.imageOnlyAuthorCol:u.authorCol),children:(0,n.jsx)(s.A,{author:(l=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),b=b={imageURL:null!==(c=r.authorsImageUrls[t])&&void 0!==c?c:e.imageURL},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(b)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(b)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(b,e))}),l)})},t)})})}function p(){return(0,n.jsxs)("header",{children:[(0,n.jsx)(a.A,{}),(0,n.jsx)(l.A,{}),(0,n.jsx)(b,{})]})}var f=r(5939),O=r(12653),d=r(2604),y=r(48447),j=r(81912),m=r(36372);function g(){return(0,n.jsx)("b",{children:(0,n.jsx)(j.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read more"})})}function h(e){var t,r;let{blogPostTitle:o}=e,c=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["blogPostTitle"]);return(0,n.jsx)(m.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({"aria-label":(0,j.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:o})},c),r=r={children:(0,n.jsx)(g,{})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function v(){let{metadata:e,isBlogPostPage:t}=(0,c.e7)(),{tags:r,title:i,editUrl:a,hasTruncateMarker:l,lastUpdatedBy:s,lastUpdatedAt:u}=e,b=!t&&l,p=r.length>0;if(!(p||b||a))return null;if(!t)return(0,n.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[p&&(0,n.jsx)("div",{className:(0,o.A)("col",{"col--9":b}),children:(0,n.jsx)(y.A,{tags:r})}),b&&(0,n.jsx)("div",{className:(0,o.A)("col text--right",{"col--3":p}),children:(0,n.jsx)(h,{blogPostTitle:i,to:e.permalink})})]});{let e=!!(a||u||s);return(0,n.jsxs)("footer",{className:"docusaurus-mt-lg",children:[p&&(0,n.jsx)("div",{className:(0,o.A)("row","margin-top--sm",O.G.blog.blogFooterEditMetaRow),children:(0,n.jsx)("div",{className:"col",children:(0,n.jsx)(y.A,{tags:r})})}),e&&(0,n.jsx)(d.A,{className:(0,o.A)("margin-top--sm",O.G.blog.blogFooterEditMetaRow),editUrl:a,lastUpdatedAt:u,lastUpdatedBy:s})]})}}function w({children:e,className:t}){let r=function(){let{isBlogPostPage:e}=(0,c.e7)();return e?void 0:"margin-bottom--xl"}();return(0,n.jsxs)(i.A,{className:(0,o.A)(r,t),children:[(0,n.jsx)(p,{}),(0,n.jsx)(f.A,{children:e}),(0,n.jsx)(v,{})]})}},61662:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(69473),c=r(50064);function i({items:e,component:t=c.A}){return(0,n.jsx)(n.Fragment,{children:e.map(({content:e})=>(0,n.jsx)(o.in,{content:e,children:(0,n.jsx)(t,{children:(0,n.jsx)(e,{})})},e.metadata.permalink))})}},41459:(e,t,r)=>{r.r(t),r.d(t,{default:()=>g});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(37554),a=r(12653),l=r(13239),s=r(36372),u=r(94389),b=r(467),p=r(3113),f=r(61662),O=r(18384),d=r(37425);function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function j({tag:e}){let t=(0,l.ZD)(e);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.be,{title:t,description:e.description}),(0,n.jsx)(p.A,{tag:"blog_tags_posts"})]})}function m({tag:e,items:t,sidebar:r,listMetadata:o}){let i=(0,l.ZD)(e);return(0,n.jsxs)(u.A,{sidebar:r,children:[e.unlisted&&(0,n.jsx)(O.A,{}),(0,n.jsxs)("header",{className:"margin-bottom--xl",children:[(0,n.jsx)(d.A,{as:"h1",children:i}),e.description&&(0,n.jsx)("p",{children:e.description}),(0,n.jsx)(s.A,{href:e.allTagsPath,children:(0,n.jsx)(c.A,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,n.jsx)(f.A,{items:t}),(0,n.jsx)(b.A,{metadata:o})]})}function g(e){return(0,n.jsxs)(i.e3,{className:(0,o.A)(a.G.wrapper.blogPages,a.G.page.blogTagPostListPage),children:[(0,n.jsx)(j,y({},e)),(0,n.jsx)(m,y({},e))]})}},18384:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(62540);r(63696);var o=r(11750),c=r(77458),i=r(12653),a=r(55640);function l({className:e}){return(0,n.jsx)(a.A,{type:"caution",title:(0,n.jsx)(c.Rc,{}),className:(0,o.A)(e,i.G.common.unlistedBanner),children:(0,n.jsx)(c.Uh,{})})}function s(e){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.AE,{}),(0,n.jsx)(l,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))]})}},23572:(e,t,r)=>{r.d(t,{A:()=>f});var n=r(62540),o=r(63696),c=r(11750),i=r(52711),a=r(10709),l=r(27720);let s={details:"details_Nokh",isBrowser:"isBrowser_QrB5",collapsibleContent:"collapsibleContent_EoA1"};function u(e){return!!e&&("SUMMARY"===e.tagName||u(e.parentElement))}function b(e){var t,r,{summary:b,children:p}=e,f=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["summary","children"]);(0,i.A)().collectAnchor(f.id);let O=(0,a.A)(),d=(0,o.useRef)(null),{collapsed:y,setCollapsed:j}=(0,l.u)({initialState:!f.open}),[m,g]=(0,o.useState)(f.open),h=o.isValidElement(b)?b:(0,n.jsx)("summary",{children:null!=b?b:"Details"});return(0,n.jsxs)("details",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},f),r=r={ref:d,open:m,"data-collapsed":y,className:(0,c.A)(s.details,O&&s.isBrowser,f.className),onMouseDown:e=>{u(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();let t=e.target;u(t)&&function e(t,r){return!!t&&(t===r||e(t.parentElement,r))}(t,d.current)&&(e.preventDefault(),y?(j(!1),g(!0)):j(!0))},children:[h,(0,n.jsx)(l.N,{lazy:!1,collapsed:y,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{j(e),g(!e)},children:(0,n.jsx)("div",{className:s.collapsibleContent,children:p})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function f(e){var t,r,o=p({},function(e){if(null==e)throw TypeError("Cannot destructure "+e);return e}(e));return(0,n.jsx)(b,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={className:(0,c.A)("alert alert--info","details_Cn_P",o.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}},2604:(e,t,r)=>{r.d(t,{A:()=>O});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(12653),a=r(36372);function l(e){var t,r,{className:c}=e,i=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["className"]);return(0,n.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,o.A)("iconEdit_IMw_",c),"aria-hidden":"true"},i),r=r={children:(0,n.jsx)("g",{children:(0,n.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function s({editUrl:e}){return(0,n.jsxs)(a.A,{to:e,className:i.G.common.editThisPage,children:[(0,n.jsx)(l,{}),(0,n.jsx)(c.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=r(60908);function b({lastUpdatedAt:e}){let t=new Date(e),r=(0,u.i)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(t);return(0,n.jsx)(c.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,n.jsx)("b",{children:(0,n.jsx)("time",{dateTime:t.toISOString(),itemProp:"dateModified",children:r})})},children:" on {date}"})}function p({lastUpdatedBy:e}){return(0,n.jsx)(c.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,n.jsx)("b",{children:e})},children:" by {user}"})}function f({lastUpdatedAt:e,lastUpdatedBy:t}){return(0,n.jsxs)("span",{className:i.G.common.lastUpdated,children:[(0,n.jsx)(c.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,n.jsx)(b,{lastUpdatedAt:e}):"",byUser:t?(0,n.jsx)(p,{lastUpdatedBy:t}):""},children:"Last updated{atDate}{byUser}"}),!1]})}function O({className:e,editUrl:t,lastUpdatedAt:r,lastUpdatedBy:c}){return(0,n.jsxs)("div",{className:(0,o.A)("row",e),children:[(0,n.jsx)("div",{className:"col",children:t&&(0,n.jsx)(s,{editUrl:t})}),(0,n.jsx)("div",{className:(0,o.A)("col","lastUpdated_OHCJ"),children:(r||c)&&(0,n.jsx)(f,{lastUpdatedAt:r,lastUpdatedBy:c})})]})}},76699:(e,t,r)=>{r.d(t,{A:()=>T});var n,o,c=r(62540),i=r(63696),a=r(43023),l=r(93394),s=r(55887);function u(e){return(0,c.jsx)("code",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function p(e){return void 0!==e.children&&i.Children.toArray(e.children).every(e=>"string"==typeof e&&!e.includes("\n"))?(0,c.jsx)(u,b({},e)):(0,c.jsx)(s.A,b({},e))}var f=r(36372),O=r(23572);function d(e){var t,r;let n=i.Children.toArray(e.children),o=n.find(e=>i.isValidElement(e)&&"summary"===e.type),a=(0,c.jsx)(c.Fragment,{children:n.filter(e=>e!==o)});return(0,c.jsx)(O.A,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={summary:o,children:a},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}var y=r(37425);function j(e){return(0,c.jsx)(y.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}var m=r(11750);let g={containsTaskList:"containsTaskList_k9gM"};var h=r(52711),v=r(55640),w=r(43758),P=r(1495),x=r(25436),S=r(66659),k=r(7293);async function A({id:e,text:t,config:r}){k.A.mermaidAPI.initialize(r);try{return await k.A.render(e,t)}catch(t){var n;throw null===(n=document.querySelector(`#d${e}`))||void 0===n||n.remove(),t}}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function N({renderResult:e}){let t=(0,i.useRef)(null);return(0,i.useEffect)(()=>{var r;let n=t.current;null===(r=e.bindFunctions)||void 0===r||r.call(e,n)},[e]),(0,c.jsx)("div",{ref:t,className:"docusaurus-mermaid-container container_RUsj",dangerouslySetInnerHTML:{__html:e.svg}})}function E({value:e}){let t=function({text:e,config:t}){let[r,n]=(0,i.useState)(null),o=(0,i.useRef)(`mermaid-svg-${Math.round(1e7*Math.random())}`).current,c=function(){let{colorMode:e}=(0,S.G)(),t=(0,x.p)().mermaid,r=t.theme[e],{options:n}=t;return(0,i.useMemo)(()=>{var e,t;return e=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({startOnLoad:!1},n),t=t={theme:r},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e},[r,n])}(),a=null!=t?t:c;return(0,i.useEffect)(()=>{A({id:o,text:e,config:a}).then(n).catch(e=>{n(()=>{throw e})})},[o,e,a]),r}({text:e});return null===t?null:(0,c.jsx)(N,{renderResult:t})}function _(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let C=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},{Head:l.A,details:d,Details:d,code:p,a:function(e){return(0,c.jsx)(f.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},pre:function(e){return(0,c.jsx)(c.Fragment,{children:e.children})},ul:function(e){var t,r;return(0,c.jsx)("ul",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={className:function(e){if(void 0!==e)return(0,m.A)(e,(null==e?void 0:e.includes("contains-task-list"))&&g.containsTaskList)}(e.className)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))},li:function(e){return(0,h.A)().collectAnchor(e.id),(0,c.jsx)("li",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},img:function(e){var t,r,n;return(0,c.jsx)("img",(r=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({decoding:"async",loading:"lazy"},e),n=n={className:(t=e.className,(0,m.A)(t,"img_vXGZ"))},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r))},h1:e=>(0,c.jsx)(j,_({as:"h1"},e)),h2:e=>(0,c.jsx)(j,_({as:"h2"},e)),h3:e=>(0,c.jsx)(j,_({as:"h3"},e)),h4:e=>(0,c.jsx)(j,_({as:"h4"},e)),h5:e=>(0,c.jsx)(j,_({as:"h5"},e)),h6:e=>(0,c.jsx)(j,_({as:"h6"},e)),admonition:v.A,mermaid:function(e){return(0,c.jsx)(w.A,{fallback:e=>(0,c.jsx)(P.MN,D({},e)),children:(0,c.jsx)(E,D({},e))})}}),o=o={Code:p,Highlight:function({children:e,color:t}){return(0,c.jsx)("span",{style:{backgroundColor:t,borderRadius:"2px",color:"#fff",padding:"0.2rem"},children:e})},TweetQuote:function({url:e,handle:t,name:r,job:n,children:o}){let i=`https://unavatar.io/x/${t}`,a=`https://x.com/${t}`;return(0,c.jsxs)("figure",{className:"tweetQuote_h8Rz",children:[(0,c.jsx)("blockquote",{children:(0,c.jsx)(f.A,{to:e,children:o})}),(0,c.jsx)("figcaption",{children:(0,c.jsx)(f.A,{to:a,rel:"nofollow",children:(0,c.jsxs)("div",{className:"avatar",children:[(0,c.jsx)("img",{alt:r,className:(0,m.A)("avatar__photo","avatarImg_b51M"),src:i}),(0,c.jsxs)("div",{className:(0,m.A)("avatar__intro"),children:[(0,c.jsx)("strong",{className:"avatar__name",children:(0,c.jsx)("cite",{children:r})}),(0,c.jsx)("small",{className:"avatar__subtitle",itemProp:"description",children:n})]})]})})})]})}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);function T({children:e}){return(0,c.jsx)(a.x,{components:C,children:e})}},88524:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(62540);r(63696);var o=r(11750),c=r(36372);function i(e){let{permalink:t,title:r,subLabel:i,isNext:a}=e;return(0,n.jsxs)(c.A,{className:(0,o.A)("pagination-nav__link",a?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[i&&(0,n.jsx)("div",{className:"pagination-nav__sublabel",children:i}),(0,n.jsx)("div",{className:"pagination-nav__label",children:r})]})}},82499:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750),c=r(36372);let i={tag:"tag_Nd8t",tagRegular:"tagRegular_TiLs",tagWithCount:"tagWithCount_AQg7"};function a({permalink:e,label:t,count:r,description:a}){return(0,n.jsxs)(c.A,{href:e,title:a,className:(0,o.A)(i.tag,r?i.tagWithCount:i.tagRegular),children:[t,r&&(0,n.jsx)("span",{children:r})]})}},48447:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750),c=r(81912),i=r(82499);function a({tags:e}){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("b",{children:(0,n.jsx)(c.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,n.jsx)("ul",{className:(0,o.A)("tags_rTaS","padding--none","margin-left--sm"),children:e.map(e=>(0,n.jsx)("li",{className:"tag_l5va",children:(0,n.jsx)(i.A,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))},e.permalink))})]})}},13239:(e,t,r)=>{r.d(t,{Y4:()=>b,ZD:()=>a,np:()=>u,uz:()=>s,wI:()=>l});var n=r(62540);r(63696);var o=r(81912),c=r(13111);function i(){let{selectMessage:e}=(0,c.W)();return t=>e(t,(0,o.T)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}function a(e){let t=i();return(0,o.T)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}function l(e){let t=i();return(0,o.T)({id:"theme.blog.author.pageTitle",description:"The title of the page for a blog author",message:"{authorName} - {nPosts}"},{nPosts:t(e.count),authorName:e.name||e.key})}let s=()=>(0,o.T)({id:"theme.blog.authorsList.pageTitle",message:"Authors",description:"The title of the authors page"});function u(){return(0,n.jsx)(o.A,{id:"theme.blog.authorsList.viewAll",description:"The label of the link targeting the blog authors page",children:"View all authors"})}function b(){return(0,n.jsx)(o.A,{id:"theme.blog.author.noPosts",description:"The text for authors with 0 blog post",children:"This author has not written any posts yet."})}},77458:(e,t,r)=>{r.d(t,{AE:()=>l,Rc:()=>i,TT:()=>u,Uh:()=>a,Yh:()=>s});var n=r(62540);r(63696);var o=r(81912),c=r(93394);function i(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function a(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function l(){return(0,n.jsx)(c.A,{children:(0,n.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function s(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function u(){return(0,n.jsx)(o.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}},60908:(e,t,r)=>{r.d(t,{i:()=>o});var n=r(99468);function o(e={}){let{i18n:{currentLocale:t}}=(0,n.A)(),r=function(){let{i18n:{currentLocale:e,localeConfigs:t}}=(0,n.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({calendar:r},e))}},13111:(e,t,r)=>{r.d(t,{W:()=>l});var n=r(63696),o=r(99468);let c=["zero","one","two","few","many","other"];function i(e){return c.filter(t=>e.includes(t))}let a={locale:"en",pluralForms:i(["one","other"]),select:e=>1===e?"one":"other"};function l(){let e=function(){let{i18n:{currentLocale:e}}=(0,o.A)();return(0,n.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:i(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". Docusaurus will fallback to the default (English) implementation. Error: ${t.message} `),a}},[e])}();return{selectMessage:(t,r)=>(function(e,t,r){let n=e.split("|");if(1===n.length)return n[0];n.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${n.length}: ${e}`);let o=r.select(t);return n[Math.min(r.pluralForms.indexOf(o),n.length-1)]})(r,t,e)}}},40576:(e,t,r)=>{r.d(t,{A:()=>c});var n=r(62540);r(63696);var o=r(10709);function c({children:e,fallback:t}){return(0,o.A)()?(0,n.jsx)(n.Fragment,{children:null==e?void 0:e()}):null!=t?t:null}},55887:(e,t,r)=>{r.d(t,{A:()=>ea});var n,o,c,i={};r.r(i),r.d(i,{ButtonExample:()=>E});var a=r(62540),l=r(63696),s=r(11750),u=r(10709),b=r(55152),p=r(81912),f=r(99468),O=r(40576),d=r(1495),y=r(66659),j=r(25436);function m(){let{prism:e}=(0,j.p)(),{colorMode:t}=(0,y.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var g=r(43758);function h(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,a.jsx)("div",{className:(0,s.A)("playgroundHeader_Tvsk"),children:e})}function w(){return(0,a.jsx)("div",{children:"Loading..."})}function P(){return(0,a.jsx)(O.A,{fallback:(0,a.jsx)(w,{}),children:()=>(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g.A,{fallback:e=>(0,a.jsx)(d.MN,h({},e)),children:(0,a.jsx)(b.pA,{})}),(0,a.jsx)(b.p1,{})]})})}function x(){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(v,{children:(0,a.jsx)(p.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,a.jsx)("div",{className:"playgroundPreview_mApW",children:(0,a.jsx)(P,{})})]})}function S(){let e=(0,u.A)();return(0,a.jsx)(b.w,{className:"playgroundEditor_TySg"},String(e))}function k(){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(v,{children:(0,a.jsx)(p.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,a.jsx)(S,{})]})}let A=e=>`${e};`;function D(e){var t,r,n,o,{children:c,transformCode:i}=e,l=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:s}}=(0,f.A)(),{liveCodeBlock:{playgroundPosition:u}}=s,p=m(),O=null!==(o=null===(n=l.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,a.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,a.jsx)(b.Q,(t=h({code:null==c?void 0:c.replace(/\n$/,""),noInline:O,transformCode:null!=i?i:A,theme:p},l),r=r={children:"top"===u?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x,{}),(0,a.jsx)(k,{})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(k,{}),(0,a.jsx)(x,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function N(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function E(e){var t,r;return(0,a.jsx)("button",(t=N({type:"button"},e),r=r={style:N({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let _=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:l},l,i);var C=r(12653),T=r(19934),B=r.n(T);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),M=RegExp("\\{(?<range>[\\d,-]+)\\}"),I={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},R=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},I),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),H=Object.keys(I);function U(e,t){let r=e.map(e=>{let{start:r,end:n}=R[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function z(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let c=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(m());return(0,a.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:c,className:(0,s.A)(o.className,"codeBlockContainer_jDV4",C.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let $={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function F({children:e,className:t}){return(0,a.jsx)(z,{as:"pre",tabIndex:0,className:(0,s.A)($.codeBlockStandalone,"thin-scrollbar",t),children:(0,a.jsx)("code",{className:$.codeBlockLines,children:e})})}var G=r(2550);let V={attributes:!0,characterData:!0,childList:!0,subtree:!0};var W=r(27663);let Z={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function q(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function Y({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var c,i;1===e.length&&"\n"===e[0].content&&(e[0].content="");let l=n({line:e,className:(0,s.A)(t,r&&Z.codeLine)}),u=e.map((e,t)=>(0,a.jsx)("span",q({},o({token:e})),t));return(0,a.jsxs)("span",(c=q({},l),i=i={children:[r?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:Z.codeLineNumber}),(0,a.jsx)("span",{className:Z.codeLineContent,children:u})]}):u,(0,a.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(i)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(i)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(i,e))}),c))}var Q=r(936);function J(e){var t,r;return(0,a.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,a.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function X(e){var t,r;return(0,a.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,a.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,l.useState)(!1),o=(0,l.useRef)(void 0),c=(0,l.useCallback)(()=>{(0,Q.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,l.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,a.jsx)("button",{type:"button","aria-label":r?(0,p.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,s.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:c,children:(0,a.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,a.jsx)(J,{className:K.copyButtonIcon}),(0,a.jsx)(X,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,a.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,a.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,p.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,a.jsx)("button",{type:"button",onClick:t,className:(0,s.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,a.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:c}){var i,u,b,p;let{prism:{defaultLanguage:f,magicComments:O}}=(0,j.p)(),d=null==(u=null!==(i=null!=c?c:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==i?i:f)?void 0:u.toLowerCase(),y=m(),g=function(){let[e,t]=(0,l.useState)(!1),[r,n]=(0,l.useState)(!1),o=(0,l.useRef)(null),c=(0,l.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),i=(0,l.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,l.useState)(),o=(0,l.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,l.useEffect)(()=>{o()},[o]),function(e,t,r=V){let n=(0,G._q)(t),o=(0,G.Be)(r);(0,l.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,i),(0,l.useEffect)(()=>{i()},[e,i]),(0,l.useEffect)(()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)}),[i]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:c}}(),h=(null!==(p=null==r?void 0:null===(b=r.match(L))||void 0===b?void 0:b.groups.title)&&void 0!==p?p:"")||n,{lineClassNames:v,code:w}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:c}=t;if(c&&M.test(c)){let e=c.match(M).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${c}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(B()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return U(["js","jsBlock"],t);case"jsx":case"tsx":return U(["js","jsBlock","jsx"],t);case"html":return U(["js","jsBlock","html"],t);case"python":case"py":case"bash":return U(["bash"],t);case"markdown":case"md":return U(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return U(["tex"],t);case"lua":case"haskell":case"sql":return U(["lua"],t);case"wasm":return U(["wasm"],t);case"vb":case"vba":case"visual-basic":return U(["vb","rem"],t);case"vbnet":return U(["vbnet","rem"],t);case"batch":return U(["rem"],t);case"basic":return U(["rem","f90"],t);case"fsharp":return U(["js","ml"],t);case"ocaml":case"sml":return U(["ml"],t);case"fortran":return U(["f90"],t);case"cobol":return U(["cobol"],t);default:return U(H,t)}}(n,o),a=r.split("\n"),l=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),s=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),b=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<a.length;){let t=a[e].match(i);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);s[r]?l[s[r]].range+=`${e},`:u[r]?l[u[r]].start=e:b[r]&&(l[b[r]].range+=`${l[b[r]].start}-${e-1},`),a.splice(e,1)}r=a.join("\n");let p={};return Object.entries(l).forEach(([e,{range:t}])=>{B()(t).forEach(t=>{var r;null!==(r=p[t])&&void 0!==r||(p[t]=[]),p[t].push(e)})}),{lineClassNames:p,code:r}}(e,{metastring:r,language:d,magicComments:O}),P=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,a.jsxs)(z,{as:"div",className:(0,s.A)(t,d&&!t.includes(`language-${d}`)&&`language-${d}`),children:[h&&(0,a.jsx)("div",{className:$.codeBlockTitle,children:h}),(0,a.jsxs)("div",{className:$.codeBlockContent,children:[(0,a.jsx)(W.f4,{theme:y,code:w,language:null!=d?d:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,a.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,s.A)(e,$.codeBlock,"thin-scrollbar"),style:t,children:(0,a.jsx)("code",{className:(0,s.A)($.codeBlockLines,P&&$.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,a.jsx)(Y,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:P},t))})})}),(0,a.jsxs)("div",{className:$.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,a.jsx)(en,{className:$.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,a.jsx)(ee,{className:$.codeButton,code:w})]})]})]})}function ec(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let ei=(c=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let c=(0,u.A)(),i=l.Children.toArray(n).some(e=>(0,l.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,s="string"==typeof i?eo:F;return(0,a.jsx)(s,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(c))},function(e){return e.live?(0,a.jsx)(D,ec({scope:_},e)):(0,a.jsx)(c,ec({},e))});function ea(e){return(0,a.jsx)(ei,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}}}]); \ No newline at end of file diff --git a/assets/js/6967621f.92a33d0f.js b/assets/js/6967621f.92a33d0f.js deleted file mode 100644 index 3294bec144..0000000000 --- a/assets/js/6967621f.92a33d0f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[46856],{48407:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>d,default:()=>x,frontMatter:()=>l,metadata:()=>n,toc:()=>r});let n=JSON.parse('{"id":"toc/toc-4-5","title":"toc-4-5","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-4-5.mdx","sourceDirName":"toc","slug":"/toc/toc-4-5","permalink":"/tests/docs/toc/toc-4-5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_min_heading_level":4,"toc_max_heading_level":5},"sidebar":"sidebar","previous":{"title":"toc-3-_","permalink":"/tests/docs/toc/toc-3-_"},"next":{"title":"toc-5-5","permalink":"/tests/docs/toc/toc-5-5"}}');var i=t(62540),c=t(43023),o=t(25128);let l={toc_min_heading_level:4,toc_max_heading_level:5},d=void 0,u={},r=[...o.RM];function h(e){return(0,i.jsx)(o.Ay,{})}function x(e={}){let{wrapper:s}={...(0,c.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}x.displayName="MDXContent(_dogfooding/_docs tests/toc/toc-4-5.mdx)"},25128:(e,s,t)=>{t.d(s,{Ay:()=>l,RM:()=>c});var n=t(62540),i=t(43023);let c=[{value:"section 1",id:"section-1",level:2},{value:"subsection 1-1",id:"subsection-1-1",level:3},{value:"subsection 1-1-1",id:"subsection-1-1-1",level:4},{value:"subsection 1-1-1-1",id:"subsection-1-1-1-1",level:5},{value:"subsection 1-1-1-1-1",id:"subsection-1-1-1-1-1",level:6},{value:"subsection 1-1-1-1-2",id:"subsection-1-1-1-1-2",level:6},{value:"subsection 1-1-1-2",id:"subsection-1-1-1-2",level:5},{value:"subsection 1-1-2",id:"subsection-1-1-2",level:4},{value:"subsection 1-2",id:"subsection-1-2",level:3},{value:"subsection 1-3",id:"subsection-1-3",level:3},{value:"section 2",id:"section-2",level:2},{value:"subsection 2-1",id:"subsection-2-1",level:3},{value:"subsection 2-1",id:"subsection-2-1-1",level:3},{value:"section 3",id:"section-3",level:2},{value:"subsection 3-1",id:"subsection-3-1",level:3},{value:"subsection 3-2",id:"subsection-3-2",level:3}];function o(e){let s={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"title",children:"title"})}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-1",children:"section 1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-1",children:"subsection 1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-1",children:"subsection 1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-1",children:"subsection 1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-1",children:"subsection 1-1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-2",children:"subsection 1-1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-2",children:"subsection 1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-2",children:"subsection 1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-2",children:"subsection 1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-3",children:"subsection 1-3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-2",children:"section 2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-3",children:"section 3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-1",children:"subsection 3-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-2",children:"subsection 3-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"})]})}function l(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>l});var n=t(63696);let i={},c=n.createContext(i);function o(e){let s=n.useContext(c);return n.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),n.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6967621f.b46fbf97.js b/assets/js/6967621f.b46fbf97.js new file mode 100644 index 0000000000..8ab023ce3e --- /dev/null +++ b/assets/js/6967621f.b46fbf97.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[46856],{48407:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>d,default:()=>x,frontMatter:()=>l,metadata:()=>n,toc:()=>r});let n=JSON.parse('{"id":"toc/toc-4-5","title":"toc-4-5","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-4-5.mdx","sourceDirName":"toc","slug":"/toc/toc-4-5","permalink":"/tests/docs/toc/toc-4-5","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_min_heading_level":4,"toc_max_heading_level":5},"sidebar":"sidebar","previous":{"title":"toc-3-_","permalink":"/tests/docs/toc/toc-3-_"},"next":{"title":"toc-5-5","permalink":"/tests/docs/toc/toc-5-5"}}');var i=t(62540),c=t(43023),o=t(25128);let l={toc_min_heading_level:4,toc_max_heading_level:5},d=void 0,u={},r=[...o.RM];function h(e){return(0,i.jsx)(o.Ay,{})}function x(e={}){let{wrapper:s}={...(0,c.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}x.displayName="MDXContent(_dogfooding/_docs tests/toc/toc-4-5.mdx)"},25128:(e,s,t)=>{t.d(s,{Ay:()=>l,RM:()=>c});var n=t(62540),i=t(43023);let c=[{value:"section 1",id:"section-1",level:2},{value:"subsection 1-1",id:"subsection-1-1",level:3},{value:"subsection 1-1-1",id:"subsection-1-1-1",level:4},{value:"subsection 1-1-1-1",id:"subsection-1-1-1-1",level:5},{value:"subsection 1-1-1-1-1",id:"subsection-1-1-1-1-1",level:6},{value:"subsection 1-1-1-1-2",id:"subsection-1-1-1-1-2",level:6},{value:"subsection 1-1-1-2",id:"subsection-1-1-1-2",level:5},{value:"subsection 1-1-2",id:"subsection-1-1-2",level:4},{value:"subsection 1-2",id:"subsection-1-2",level:3},{value:"subsection 1-3",id:"subsection-1-3",level:3},{value:"section 2",id:"section-2",level:2},{value:"subsection 2-1",id:"subsection-2-1",level:3},{value:"subsection 2-1",id:"subsection-2-1-1",level:3},{value:"section 3",id:"section-3",level:2},{value:"subsection 3-1",id:"subsection-3-1",level:3},{value:"subsection 3-2",id:"subsection-3-2",level:3}];function o(e){let s={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"title",children:"title"})}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-1",children:"section 1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-1",children:"subsection 1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-1",children:"subsection 1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-1",children:"subsection 1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-1",children:"subsection 1-1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-2",children:"subsection 1-1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-2",children:"subsection 1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-2",children:"subsection 1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-2",children:"subsection 1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-3",children:"subsection 1-3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-2",children:"section 2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-3",children:"section 3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-1",children:"subsection 3-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-2",children:"subsection 3-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"})]})}function l(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>l});var n=t(63696);let i={},c=n.createContext(i);function o(e){let s=n.useContext(c);return n.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),n.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6a2ff064.2148de08.js b/assets/js/6a2ff064.2148de08.js new file mode 100644 index 0000000000..fda557bff7 --- /dev/null +++ b/assets/js/6a2ff064.2148de08.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[75628],{35405:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>d,default:()=>x,frontMatter:()=>l,metadata:()=>n,toc:()=>r});let n=JSON.parse('{"id":"toc/toc-2-2","title":"toc-2-2","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-2-2.mdx","sourceDirName":"toc","slug":"/toc/toc-2-2","permalink":"/tests/docs/toc/toc-2-2","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":2},"sidebar":"sidebar","previous":{"title":"Another test page","permalink":"/tests/docs/more-test"},"next":{"title":"toc-2-3","permalink":"/tests/docs/toc/toc-2-3"}}');var i=t(62540),o=t(43023),c=t(25128);let l={toc_min_heading_level:2,toc_max_heading_level:2},d=void 0,u={},r=[...c.RM];function h(e){return(0,i.jsx)(c.Ay,{})}function x(e={}){let{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}x.displayName="MDXContent(_dogfooding/_docs tests/toc/toc-2-2.mdx)"},25128:(e,s,t)=>{t.d(s,{Ay:()=>l,RM:()=>o});var n=t(62540),i=t(43023);let o=[{value:"section 1",id:"section-1",level:2},{value:"subsection 1-1",id:"subsection-1-1",level:3},{value:"subsection 1-1-1",id:"subsection-1-1-1",level:4},{value:"subsection 1-1-1-1",id:"subsection-1-1-1-1",level:5},{value:"subsection 1-1-1-1-1",id:"subsection-1-1-1-1-1",level:6},{value:"subsection 1-1-1-1-2",id:"subsection-1-1-1-1-2",level:6},{value:"subsection 1-1-1-2",id:"subsection-1-1-1-2",level:5},{value:"subsection 1-1-2",id:"subsection-1-1-2",level:4},{value:"subsection 1-2",id:"subsection-1-2",level:3},{value:"subsection 1-3",id:"subsection-1-3",level:3},{value:"section 2",id:"section-2",level:2},{value:"subsection 2-1",id:"subsection-2-1",level:3},{value:"subsection 2-1",id:"subsection-2-1-1",level:3},{value:"section 3",id:"section-3",level:2},{value:"subsection 3-1",id:"subsection-3-1",level:3},{value:"subsection 3-2",id:"subsection-3-2",level:3}];function c(e){let s={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"title",children:"title"})}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-1",children:"section 1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-1",children:"subsection 1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-1",children:"subsection 1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-1",children:"subsection 1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-1",children:"subsection 1-1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-2",children:"subsection 1-1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-2",children:"subsection 1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-2",children:"subsection 1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-2",children:"subsection 1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-3",children:"subsection 1-3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-2",children:"section 2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-3",children:"section 3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-1",children:"subsection 3-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-2",children:"subsection 3-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"})]})}function l(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>c,x:()=>l});var n=t(63696);let i={},o=n.createContext(i);function c(e){let s=n.useContext(o);return n.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:c(e.components),n.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6c065aab.69e4837f.js b/assets/js/6c065aab.994f6f7b.js similarity index 88% rename from assets/js/6c065aab.69e4837f.js rename to assets/js/6c065aab.994f6f7b.js index f3a96a19f5..cc41f0a8e8 100644 --- a/assets/js/6c065aab.69e4837f.js +++ b/assets/js/6c065aab.994f6f7b.js @@ -19,4 +19,4 @@ ${JSON.stringify(e,null,2)}`);return t}(t),i=e?`${e}-${l}`:l,a=`#${i}`,u=(0,s.W6 // highlight-end ], ], -};`})]})]})}},55887:(e,t,r)=>{r.d(t,{A:()=>el});var n,o,c,s={};r.r(s),r.d(s,{ButtonExample:()=>B});var l=r(62540),i=r(63696),a=r(11750),u=r(10709),p=r(55152),d=r(81912),b=r(99468),f=r(40576),h=r(1495),j=r(66659),m=r(25436);function y(){let{prism:e}=(0,m.p)(),{colorMode:t}=(0,j.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var g=r(43758);function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,l.jsx)("div",{className:(0,a.A)("playgroundHeader_Tvsk"),children:e})}function w(){return(0,l.jsx)("div",{children:"Loading..."})}function x(){return(0,l.jsx)(f.A,{fallback:(0,l.jsx)(w,{}),children:()=>(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(g.A,{fallback:e=>(0,l.jsx)(h.MN,O({},e)),children:(0,l.jsx)(p.pA,{})}),(0,l.jsx)(p.p1,{})]})})}function P(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(d.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,l.jsx)("div",{className:"playgroundPreview_mApW",children:(0,l.jsx)(x,{})})]})}function k(){let e=(0,u.A)();return(0,l.jsx)(p.w,{className:"playgroundEditor_TySg"},String(e))}function S(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(d.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,l.jsx)(k,{})]})}let E=e=>`${e};`;function A(e){var t,r,n,o,{children:c,transformCode:s}=e,i=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:a}}=(0,b.A)(),{liveCodeBlock:{playgroundPosition:u}}=a,d=y(),f=null!==(o=null===(n=i.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,l.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,l.jsx)(p.Q,(t=O({code:null==c?void 0:c.replace(/\n$/,""),noInline:f,transformCode:null!=s?s:E,theme:d},i),r=r={children:"top"===u?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(P,{}),(0,l.jsx)(S,{})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(S,{}),(0,l.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function B(e){var t,r;return(0,l.jsx)("button",(t=D({type:"button"},e),r=r={style:D({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let N=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:i},i,s);var C=r(12653),T=r(19934),I=r.n(T);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),_=RegExp("\\{(?<range>[\\d,-]+)\\}"),$={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},R=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},$),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),M=Object.keys($);function V(e,t){let r=e.map(e=>{let{start:r,end:n}=R[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function W(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let c=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(y());return(0,l.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:c,className:(0,a.A)(o.className,"codeBlockContainer_jDV4",C.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let q={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function H({children:e,className:t}){return(0,l.jsx)(W,{as:"pre",tabIndex:0,className:(0,a.A)(q.codeBlockStandalone,"thin-scrollbar",t),children:(0,l.jsx)("code",{className:q.codeBlockLines,children:e})})}var F=r(2550);let G={attributes:!0,characterData:!0,childList:!0,subtree:!0};var U=r(27663);let z={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function Q(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function J({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var c,s;1===e.length&&"\n"===e[0].content&&(e[0].content="");let i=n({line:e,className:(0,a.A)(t,r&&z.codeLine)}),u=e.map((e,t)=>(0,l.jsx)("span",Q({},o({token:e})),t));return(0,l.jsxs)("span",(c=Q({},i),s=s={children:[r?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:z.codeLineNumber}),(0,l.jsx)("span",{className:z.codeLineContent,children:u})]}):u,(0,l.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(s)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(s)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(s,e))}),c))}var Y=r(936);function X(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function Z(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,i.useState)(!1),o=(0,i.useRef)(void 0),c=(0,i.useCallback)(()=>{(0,Y.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,i.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,l.jsx)("button",{type:"button","aria-label":r?(0,d.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,d.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,d.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:c,children:(0,l.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,l.jsx)(X,{className:K.copyButtonIcon}),(0,l.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,d.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,l.jsx)("button",{type:"button",onClick:t,className:(0,a.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,l.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:c}){var s,u,p,d;let{prism:{defaultLanguage:b,magicComments:f}}=(0,m.p)(),h=null==(u=null!==(s=null!=c?c:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==s?s:b)?void 0:u.toLowerCase(),j=y(),g=function(){let[e,t]=(0,i.useState)(!1),[r,n]=(0,i.useState)(!1),o=(0,i.useRef)(null),c=(0,i.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),s=(0,i.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,i.useState)(),o=(0,i.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,i.useEffect)(()=>{o()},[o]),function(e,t,r=G){let n=(0,F._q)(t),o=(0,F.Be)(r);(0,i.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,s),(0,i.useEffect)(()=>{s()},[e,s]),(0,i.useEffect)(()=>(window.addEventListener("resize",s,{passive:!0}),()=>{window.removeEventListener("resize",s)}),[s]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:c}}(),O=(null!==(d=null==r?void 0:null===(p=r.match(L))||void 0===p?void 0:p.groups.title)&&void 0!==d?d:"")||n,{lineClassNames:v,code:w}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:c}=t;if(c&&_.test(c)){let e=c.match(_).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${c}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(I()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let s=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return V(["js","jsBlock"],t);case"jsx":case"tsx":return V(["js","jsBlock","jsx"],t);case"html":return V(["js","jsBlock","html"],t);case"python":case"py":case"bash":return V(["bash"],t);case"markdown":case"md":return V(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return V(["tex"],t);case"lua":case"haskell":case"sql":return V(["lua"],t);case"wasm":return V(["wasm"],t);case"vb":case"vba":case"visual-basic":return V(["vb","rem"],t);case"vbnet":return V(["vbnet","rem"],t);case"batch":return V(["rem"],t);case"basic":return V(["rem","f90"],t);case"fsharp":return V(["js","ml"],t);case"ocaml":case"sml":return V(["ml"],t);case"fortran":return V(["f90"],t);case"cobol":return V(["cobol"],t);default:return V(M,t)}}(n,o),l=r.split("\n"),i=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),a=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),p=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<l.length;){let t=l[e].match(s);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);a[r]?i[a[r]].range+=`${e},`:u[r]?i[u[r]].start=e:p[r]&&(i[p[r]].range+=`${i[p[r]].start}-${e-1},`),l.splice(e,1)}r=l.join("\n");let d={};return Object.entries(i).forEach(([e,{range:t}])=>{I()(t).forEach(t=>{var r;null!==(r=d[t])&&void 0!==r||(d[t]=[]),d[t].push(e)})}),{lineClassNames:d,code:r}}(e,{metastring:r,language:h,magicComments:f}),x=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,l.jsxs)(W,{as:"div",className:(0,a.A)(t,h&&!t.includes(`language-${h}`)&&`language-${h}`),children:[O&&(0,l.jsx)("div",{className:q.codeBlockTitle,children:O}),(0,l.jsxs)("div",{className:q.codeBlockContent,children:[(0,l.jsx)(U.f4,{theme:j,code:w,language:null!=h?h:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,l.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,a.A)(e,q.codeBlock,"thin-scrollbar"),style:t,children:(0,l.jsx)("code",{className:(0,a.A)(q.codeBlockLines,x&&q.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,l.jsx)(J,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:x},t))})})}),(0,l.jsxs)("div",{className:q.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,l.jsx)(en,{className:q.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,l.jsx)(ee,{className:q.codeButton,code:w})]})]})]})}function ec(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let es=(c=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let c=(0,u.A)(),s=i.Children.toArray(n).some(e=>(0,i.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,a="string"==typeof s?eo:H;return(0,l.jsx)(a,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:s},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(c))},function(e){return e.live?(0,l.jsx)(A,ec({scope:N},e)):(0,l.jsx)(c,ec({},e))});function el(e){return(0,l.jsx)(es,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}},64188:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>p,default:()=>h,frontMatter:()=>u,metadata:()=>n,toc:()=>b});let n=JSON.parse('{"id":"api/themes/theme-classic","title":"\u{1F4E6} theme-classic","description":"The classic theme for Docusaurus.","source":"@site/docs/api/themes/theme-classic.mdx","sourceDirName":"api/themes","slug":"/api/themes/@docusaurus/theme-classic","permalink":"/docs/api/themes/@docusaurus/theme-classic","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/theme-classic.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":2,"frontMatter":{"sidebar_position":2,"slug":"/api/themes/@docusaurus/theme-classic"},"sidebar":"api","previous":{"title":"Configuration","permalink":"/docs/api/themes/configuration"},"next":{"title":"\u{1F4E6} theme-live-codeblock","permalink":"/docs/api/themes/@docusaurus/theme-live-codeblock"}}');var o=r(62540),c=r(43023),s=r(27446),l=r(15995),i=r(59273),a=r(59433);let u={sidebar_position:2,slug:"/api/themes/@docusaurus/theme-classic"},p="\u{1F4E6} theme-classic",d={},b=[{value:"Configuration",id:"configuration",level:2},{value:"Example configuration",id:"ex-config",level:3}];function f(e){let t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,c.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"-theme-classic",children:"\u{1F4E6} theme-classic"})}),"\n","\n",(0,o.jsx)(t.p,{children:"The classic theme for Docusaurus."}),"\n",(0,o.jsxs)(t.p,{children:["You can refer to the ",(0,o.jsx)(t.a,{href:"/docs/api/themes/configuration",children:"theme configuration page"})," for more details on the configuration."]}),"\n",(0,o.jsxs)(s.A,{groupId:"npm2yarn",children:[(0,o.jsx)(l.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install --save @docusaurus/theme-classic\n"})})}),(0,o.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn add @docusaurus/theme-classic\n"})})}),(0,o.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm add @docusaurus/theme-classic\n"})})})]}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["If you have installed ",(0,o.jsx)(t.code,{children:"@docusaurus/preset-classic"}),", you don't need to install it as a dependency."]})}),"\n",(0,o.jsx)(t.h2,{id:"configuration",children:"Configuration"}),"\n",(0,o.jsx)(t.p,{children:"Accepted fields:"}),"\n",(0,o.jsx)(i.A,{children:(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Option"}),(0,o.jsx)(t.th,{children:"Type"}),(0,o.jsx)(t.th,{children:"Default"}),(0,o.jsx)(t.th,{children:"Description"})]})}),(0,o.jsx)(t.tbody,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"customCss"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)("code",{children:"string[] | string"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"[]"})}),(0,o.jsxs)(t.td,{children:["Stylesheets to be imported globally as ",(0,o.jsx)(t.a,{href:"/docs/advanced/client#client-modules",children:"client modules"}),". Relative paths are resolved against the site directory."]})]})})]})}),"\n",(0,o.jsx)(t.admonition,{type:"note",children:(0,o.jsxs)(t.p,{children:["Most configuration for the theme is done in ",(0,o.jsx)(t.code,{children:"themeConfig"}),", which can be found in ",(0,o.jsx)(t.a,{href:"/docs/api/themes/configuration",children:"theme configuration"}),"."]})}),"\n",(0,o.jsx)(t.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,o.jsx)(t.p,{children:"You can configure this theme through preset options or plugin options."}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsx)(t.p,{children:"Most Docusaurus users configure this plugin through the preset options."})}),"\n","\n",(0,o.jsx)(a.A,{pluginName:"@docusaurus/theme-classic",presetOptionName:"theme",code:"{\n customCss: './src/css/custom.css',\n}"})]})}function h(e={}){let{wrapper:t}={...(0,c.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(f,{...e})}):f(e)}}}]); \ No newline at end of file +};`})]})]})}},55887:(e,t,r)=>{r.d(t,{A:()=>el});var n,o,c,s={};r.r(s),r.d(s,{ButtonExample:()=>B});var l=r(62540),i=r(63696),a=r(11750),u=r(10709),p=r(55152),d=r(81912),b=r(99468),f=r(40576),h=r(1495),j=r(66659),m=r(25436);function y(){let{prism:e}=(0,m.p)(),{colorMode:t}=(0,j.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var g=r(43758);function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,l.jsx)("div",{className:(0,a.A)("playgroundHeader_Tvsk"),children:e})}function w(){return(0,l.jsx)("div",{children:"Loading..."})}function x(){return(0,l.jsx)(f.A,{fallback:(0,l.jsx)(w,{}),children:()=>(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(g.A,{fallback:e=>(0,l.jsx)(h.MN,O({},e)),children:(0,l.jsx)(p.pA,{})}),(0,l.jsx)(p.p1,{})]})})}function P(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(d.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,l.jsx)("div",{className:"playgroundPreview_mApW",children:(0,l.jsx)(x,{})})]})}function k(){let e=(0,u.A)();return(0,l.jsx)(p.w,{className:"playgroundEditor_TySg"},String(e))}function S(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v,{children:(0,l.jsx)(d.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,l.jsx)(k,{})]})}let E=e=>`${e};`;function A(e){var t,r,n,o,{children:c,transformCode:s}=e,i=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:a}}=(0,b.A)(),{liveCodeBlock:{playgroundPosition:u}}=a,d=y(),f=null!==(o=null===(n=i.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,l.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,l.jsx)(p.Q,(t=O({code:null==c?void 0:c.replace(/\n$/,""),noInline:f,transformCode:null!=s?s:E,theme:d},i),r=r={children:"top"===u?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(P,{}),(0,l.jsx)(S,{})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(S,{}),(0,l.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function B(e){var t,r;return(0,l.jsx)("button",(t=D({type:"button"},e),r=r={style:D({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let N=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:i},i,s);var C=r(12653),T=r(19934),I=r.n(T);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),_=RegExp("\\{(?<range>[\\d,-]+)\\}"),$={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},R=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},$),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),M=Object.keys($);function V(e,t){let r=e.map(e=>{let{start:r,end:n}=R[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function W(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let c=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(y());return(0,l.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:c,className:(0,a.A)(o.className,"codeBlockContainer_jDV4",C.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let q={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function H({children:e,className:t}){return(0,l.jsx)(W,{as:"pre",tabIndex:0,className:(0,a.A)(q.codeBlockStandalone,"thin-scrollbar",t),children:(0,l.jsx)("code",{className:q.codeBlockLines,children:e})})}var F=r(2550);let G={attributes:!0,characterData:!0,childList:!0,subtree:!0};var U=r(27663);let z={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function Q(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function J({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var c,s;1===e.length&&"\n"===e[0].content&&(e[0].content="");let i=n({line:e,className:(0,a.A)(t,r&&z.codeLine)}),u=e.map((e,t)=>(0,l.jsx)("span",Q({},o({token:e})),t));return(0,l.jsxs)("span",(c=Q({},i),s=s={children:[r?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:z.codeLineNumber}),(0,l.jsx)("span",{className:z.codeLineContent,children:u})]}):u,(0,l.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(s)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(s)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(s,e))}),c))}var Y=r(936);function X(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function Z(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,i.useState)(!1),o=(0,i.useRef)(void 0),c=(0,i.useCallback)(()=>{(0,Y.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,i.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,l.jsx)("button",{type:"button","aria-label":r?(0,d.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,d.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,d.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:c,children:(0,l.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,l.jsx)(X,{className:K.copyButtonIcon}),(0,l.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,l.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,l.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,d.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,l.jsx)("button",{type:"button",onClick:t,className:(0,a.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,l.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:c}){var s,u,p,d;let{prism:{defaultLanguage:b,magicComments:f}}=(0,m.p)(),h=null==(u=null!==(s=null!=c?c:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==s?s:b)?void 0:u.toLowerCase(),j=y(),g=function(){let[e,t]=(0,i.useState)(!1),[r,n]=(0,i.useState)(!1),o=(0,i.useRef)(null),c=(0,i.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),s=(0,i.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,i.useState)(),o=(0,i.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,i.useEffect)(()=>{o()},[o]),function(e,t,r=G){let n=(0,F._q)(t),o=(0,F.Be)(r);(0,i.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,s),(0,i.useEffect)(()=>{s()},[e,s]),(0,i.useEffect)(()=>(window.addEventListener("resize",s,{passive:!0}),()=>{window.removeEventListener("resize",s)}),[s]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:c}}(),O=(null!==(d=null==r?void 0:null===(p=r.match(L))||void 0===p?void 0:p.groups.title)&&void 0!==d?d:"")||n,{lineClassNames:v,code:w}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:c}=t;if(c&&_.test(c)){let e=c.match(_).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${c}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(I()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let s=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return V(["js","jsBlock"],t);case"jsx":case"tsx":return V(["js","jsBlock","jsx"],t);case"html":return V(["js","jsBlock","html"],t);case"python":case"py":case"bash":return V(["bash"],t);case"markdown":case"md":return V(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return V(["tex"],t);case"lua":case"haskell":case"sql":return V(["lua"],t);case"wasm":return V(["wasm"],t);case"vb":case"vba":case"visual-basic":return V(["vb","rem"],t);case"vbnet":return V(["vbnet","rem"],t);case"batch":return V(["rem"],t);case"basic":return V(["rem","f90"],t);case"fsharp":return V(["js","ml"],t);case"ocaml":case"sml":return V(["ml"],t);case"fortran":return V(["f90"],t);case"cobol":return V(["cobol"],t);default:return V(M,t)}}(n,o),l=r.split("\n"),i=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),a=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),p=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<l.length;){let t=l[e].match(s);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);a[r]?i[a[r]].range+=`${e},`:u[r]?i[u[r]].start=e:p[r]&&(i[p[r]].range+=`${i[p[r]].start}-${e-1},`),l.splice(e,1)}r=l.join("\n");let d={};return Object.entries(i).forEach(([e,{range:t}])=>{I()(t).forEach(t=>{var r;null!==(r=d[t])&&void 0!==r||(d[t]=[]),d[t].push(e)})}),{lineClassNames:d,code:r}}(e,{metastring:r,language:h,magicComments:f}),x=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,l.jsxs)(W,{as:"div",className:(0,a.A)(t,h&&!t.includes(`language-${h}`)&&`language-${h}`),children:[O&&(0,l.jsx)("div",{className:q.codeBlockTitle,children:O}),(0,l.jsxs)("div",{className:q.codeBlockContent,children:[(0,l.jsx)(U.f4,{theme:j,code:w,language:null!=h?h:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,l.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,a.A)(e,q.codeBlock,"thin-scrollbar"),style:t,children:(0,l.jsx)("code",{className:(0,a.A)(q.codeBlockLines,x&&q.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,l.jsx)(J,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:x},t))})})}),(0,l.jsxs)("div",{className:q.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,l.jsx)(en,{className:q.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,l.jsx)(ee,{className:q.codeButton,code:w})]})]})]})}function ec(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let es=(c=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let c=(0,u.A)(),s=i.Children.toArray(n).some(e=>(0,i.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,a="string"==typeof s?eo:H;return(0,l.jsx)(a,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:s},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(c))},function(e){return e.live?(0,l.jsx)(A,ec({scope:N},e)):(0,l.jsx)(c,ec({},e))});function el(e){return(0,l.jsx)(es,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}},64188:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>p,default:()=>h,frontMatter:()=>u,metadata:()=>n,toc:()=>b});let n=JSON.parse('{"id":"api/themes/theme-classic","title":"\u{1F4E6} theme-classic","description":"The classic theme for Docusaurus.","source":"@site/docs/api/themes/theme-classic.mdx","sourceDirName":"api/themes","slug":"/api/themes/@docusaurus/theme-classic","permalink":"/docs/api/themes/@docusaurus/theme-classic","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/theme-classic.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":2,"frontMatter":{"sidebar_position":2,"slug":"/api/themes/@docusaurus/theme-classic"},"sidebar":"api","previous":{"title":"Configuration","permalink":"/docs/api/themes/configuration"},"next":{"title":"\u{1F4E6} theme-live-codeblock","permalink":"/docs/api/themes/@docusaurus/theme-live-codeblock"}}');var o=r(62540),c=r(43023),s=r(27446),l=r(15995),i=r(59273),a=r(59433);let u={sidebar_position:2,slug:"/api/themes/@docusaurus/theme-classic"},p="\u{1F4E6} theme-classic",d={},b=[{value:"Configuration",id:"configuration",level:2},{value:"Example configuration",id:"ex-config",level:3}];function f(e){let t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,c.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"-theme-classic",children:"\u{1F4E6} theme-classic"})}),"\n","\n",(0,o.jsx)(t.p,{children:"The classic theme for Docusaurus."}),"\n",(0,o.jsxs)(t.p,{children:["You can refer to the ",(0,o.jsx)(t.a,{href:"/docs/api/themes/configuration",children:"theme configuration page"})," for more details on the configuration."]}),"\n",(0,o.jsxs)(s.A,{groupId:"npm2yarn",children:[(0,o.jsx)(l.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install --save @docusaurus/theme-classic\n"})})}),(0,o.jsx)(l.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn add @docusaurus/theme-classic\n"})})}),(0,o.jsx)(l.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm add @docusaurus/theme-classic\n"})})})]}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["If you have installed ",(0,o.jsx)(t.code,{children:"@docusaurus/preset-classic"}),", you don't need to install it as a dependency."]})}),"\n",(0,o.jsx)(t.h2,{id:"configuration",children:"Configuration"}),"\n",(0,o.jsx)(t.p,{children:"Accepted fields:"}),"\n",(0,o.jsx)(i.A,{children:(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Option"}),(0,o.jsx)(t.th,{children:"Type"}),(0,o.jsx)(t.th,{children:"Default"}),(0,o.jsx)(t.th,{children:"Description"})]})}),(0,o.jsx)(t.tbody,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"customCss"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)("code",{children:"string[] | string"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"[]"})}),(0,o.jsxs)(t.td,{children:["Stylesheets to be imported globally as ",(0,o.jsx)(t.a,{href:"/docs/advanced/client#client-modules",children:"client modules"}),". Relative paths are resolved against the site directory."]})]})})]})}),"\n",(0,o.jsx)(t.admonition,{type:"note",children:(0,o.jsxs)(t.p,{children:["Most configuration for the theme is done in ",(0,o.jsx)(t.code,{children:"themeConfig"}),", which can be found in ",(0,o.jsx)(t.a,{href:"/docs/api/themes/configuration",children:"theme configuration"}),"."]})}),"\n",(0,o.jsx)(t.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,o.jsx)(t.p,{children:"You can configure this theme through preset options or plugin options."}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsx)(t.p,{children:"Most Docusaurus users configure this plugin through the preset options."})}),"\n","\n",(0,o.jsx)(a.A,{pluginName:"@docusaurus/theme-classic",presetOptionName:"theme",code:"{\n customCss: './src/css/custom.css',\n}"})]})}function h(e={}){let{wrapper:t}={...(0,c.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(f,{...e})}):f(e)}}}]); \ No newline at end of file diff --git a/assets/js/6c1df059.f4b5c096.js b/assets/js/6c1df059.387c1ffa.js similarity index 67% rename from assets/js/6c1df059.f4b5c096.js rename to assets/js/6c1df059.387c1ffa.js index 436ed059ad..09a6ef019e 100644 --- a/assets/js/6c1df059.f4b5c096.js +++ b/assets/js/6c1df059.387c1ffa.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[58833],{71615:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>u,contentTitle:()=>s,default:()=>c,frontMatter:()=>i,metadata:()=>n,toc:()=>l});var n=t(64252),a=t(62540),r=t(43023);let i={title:"How I Converted Profilo to Docusaurus in Under 2 Hours",authors:["abernathyca"],tags:["profilo","adoption"]},s=void 0,u={authorsImageUrls:[void 0]},l=[];function d(e){let o={a:"a",blockquote:"blockquote",em:"em",p:"p",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(o.blockquote,{children:["\n",(0,a.jsx)(o.p,{children:(0,a.jsx)(o.em,{children:"\u201CJoel and I were discussing having a website and how it would have been great to launch with it. So I challenged myself to add Docusaurus support. It took just over an hour and a half. I'm going to send you a PR with the addition so you can take a look and see if you like it. Your workflow for adding docs wouldn't be much different from editing those Markdown files.\u201D"})}),"\n",(0,a.jsx)(o.p,{children:(0,a.jsx)(o.em,{children:"\u2014 Note sent to the Profilo team"})}),"\n"]}),"\n",(0,a.jsxs)(o.p,{children:["This is the story of the rather short journey it took to create the ",(0,a.jsx)(o.a,{href:"https://facebookincubator.github.io/profilo/",children:"Profilo"})," website using Docusaurus."]}),"\n",(0,a.jsxs)(o.p,{children:["Profilo, an Android library for collecting performance traces from production, ",(0,a.jsx)(o.a,{href:"https://code.fb.com/android/profilo-understanding-app-performance-in-the-wild/",children:"was announced"})," earlier this year. The project was ",(0,a.jsx)(o.a,{href:"https://github.com/facebookincubator/profilo/tree/802042f90f990998a272387e371b893af52465b8",children:"published on GitHub"})," with a less than ",(0,a.jsx)(o.a,{href:"https://github.com/facebookincubator/profilo/tree/802042f90f990998a272387e371b893af52465b8/docs",children:"a handful or Markdown files"})," to describe its functionality and no website to showcase any branding and highlight the logo. The task at hand was to turn these existing docs and logo into a website."]})]})}function c(e={}){let{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,a.jsx)(o,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},43023:(e,o,t)=>{t.d(o,{R:()=>i,x:()=>s});var n=t(63696);let a={},r=n.createContext(a);function i(e){let o=n.useContext(r);return n.useMemo(function(){return"function"==typeof e?e(o):{...o,...e}},[o,e])}function s(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(r.Provider,{value:o},e.children)}},64252:e=>{e.exports=JSON.parse('{"permalink":"/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2018/04-30-How-I-Converted-Profilo-To-Docusaurus.mdx","source":"@site/blog/2018/04-30-How-I-Converted-Profilo-To-Docusaurus.mdx","title":"How I Converted Profilo to Docusaurus in Under 2 Hours","description":"\u201CJoel and I were discussing having a website and how it would have been great to launch with it. So I challenged myself to add Docusaurus support. It took just over an hour and a half. I\'m going to send you a PR with the addition so you can take a look and see if you like it. Your workflow for adding docs wouldn\'t be much different from editing those Markdown files.\u201D","date":"2018-04-30T00:00:00.000Z","tags":[{"inline":false,"label":"Profilo","permalink":"/blog/tags/profilo"},{"inline":false,"label":"Adoption","permalink":"/blog/tags/adoption"}],"readingTime":5.95,"hasTruncateMarker":true,"authors":[{"name":"Christine Abernathy","url":"http://x.com/abernathyca","socials":{"x":"https://x.com/abernathyca"},"imageURL":"https://github.com/caabernathy.png","key":"abernathyca","page":null}],"frontMatter":{"title":"How I Converted Profilo to Docusaurus in Under 2 Hours","authors":["abernathyca"],"tags":["profilo","adoption"]},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Towards Docusaurus 2","permalink":"/blog/2018/09/11/Towards-Docusaurus-2"},"nextItem":{"title":"Introducing Docusaurus","permalink":"/blog/2017/12/14/introducing-docusaurus"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[58833],{71615:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>u,contentTitle:()=>s,default:()=>c,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var a=t(64252),n=t(62540),r=t(43023);let i={title:"How I Converted Profilo to Docusaurus in Under 2 Hours",authors:["abernathyca"],tags:["profilo","adoption"]},s=void 0,u={authorsImageUrls:[void 0]},l=[];function d(e){let o={a:"a",blockquote:"blockquote",em:"em",p:"p",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(o.blockquote,{children:["\n",(0,n.jsx)(o.p,{children:(0,n.jsx)(o.em,{children:"\u201CJoel and I were discussing having a website and how it would have been great to launch with it. So I challenged myself to add Docusaurus support. It took just over an hour and a half. I'm going to send you a PR with the addition so you can take a look and see if you like it. Your workflow for adding docs wouldn't be much different from editing those Markdown files.\u201D"})}),"\n",(0,n.jsx)(o.p,{children:(0,n.jsx)(o.em,{children:"\u2014 Note sent to the Profilo team"})}),"\n"]}),"\n",(0,n.jsxs)(o.p,{children:["This is the story of the rather short journey it took to create the ",(0,n.jsx)(o.a,{href:"https://facebookincubator.github.io/profilo/",children:"Profilo"})," website using Docusaurus."]}),"\n",(0,n.jsxs)(o.p,{children:["Profilo, an Android library for collecting performance traces from production, ",(0,n.jsx)(o.a,{href:"https://code.fb.com/android/profilo-understanding-app-performance-in-the-wild/",children:"was announced"})," earlier this year. The project was ",(0,n.jsx)(o.a,{href:"https://github.com/facebookincubator/profilo/tree/802042f90f990998a272387e371b893af52465b8",children:"published on GitHub"})," with a less than ",(0,n.jsx)(o.a,{href:"https://github.com/facebookincubator/profilo/tree/802042f90f990998a272387e371b893af52465b8/docs",children:"a handful or Markdown files"})," to describe its functionality and no website to showcase any branding and highlight the logo. The task at hand was to turn these existing docs and logo into a website."]})]})}function c(e={}){let{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,n.jsx)(o,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},43023:(e,o,t)=>{t.d(o,{R:()=>i,x:()=>s});var a=t(63696);let n={},r=a.createContext(n);function i(e){let o=a.useContext(r);return a.useMemo(function(){return"function"==typeof e?e(o):{...o,...e}},[o,e])}function s(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),a.createElement(r.Provider,{value:o},e.children)}},64252:e=>{e.exports=JSON.parse('{"permalink":"/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2018/04-30-How-I-Converted-Profilo-To-Docusaurus.mdx","source":"@site/blog/2018/04-30-How-I-Converted-Profilo-To-Docusaurus.mdx","title":"How I Converted Profilo to Docusaurus in Under 2 Hours","description":"\u201CJoel and I were discussing having a website and how it would have been great to launch with it. So I challenged myself to add Docusaurus support. It took just over an hour and a half. I\'m going to send you a PR with the addition so you can take a look and see if you like it. Your workflow for adding docs wouldn\'t be much different from editing those Markdown files.\u201D","date":"2018-04-30T00:00:00.000Z","tags":[{"inline":false,"label":"Profilo","permalink":"/blog/tags/profilo"},{"inline":false,"label":"Adoption","permalink":"/blog/tags/adoption"}],"readingTime":5.95,"hasTruncateMarker":true,"authors":[{"name":"Christine Abernathy","url":"http://x.com/abernathyca","socials":{"x":"https://x.com/abernathyca"},"imageURL":"https://github.com/caabernathy.png","key":"abernathyca","page":null}],"frontMatter":{"title":"How I Converted Profilo to Docusaurus in Under 2 Hours","authors":["abernathyca"],"tags":["profilo","adoption"]},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Towards Docusaurus 2","permalink":"/blog/2018/09/11/Towards-Docusaurus-2"},"nextItem":{"title":"Introducing Docusaurus","permalink":"/blog/2017/12/14/introducing-docusaurus"}}')}}]); \ No newline at end of file diff --git a/assets/js/6ca75a11.80539ad7.js b/assets/js/6ca75a11.80539ad7.js new file mode 100644 index 0000000000..c2e86f06b1 --- /dev/null +++ b/assets/js/6ca75a11.80539ad7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[57618],{11450:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>t,default:()=>h,frontMatter:()=>d,metadata:()=>i,toc:()=>a});let i=JSON.parse('{"id":"migration/v2/migration-versioned-sites","title":"Versioned sites","description":"Read up https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2#versioning first for problems in v1\'s approach.","source":"@site/docs/migration/v2/migration-versioned-sites.mdx","sourceDirName":"migration/v2","slug":"/migration/v2/versioned-sites","permalink":"/docs/migration/v2/versioned-sites","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/v2/migration-versioned-sites.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/migration/v2/versioned-sites"},"sidebar":"docs","previous":{"title":"Manual migration","permalink":"/docs/migration/v2/manual"},"next":{"title":"Translated sites","permalink":"/docs/migration/v2/translated-sites"}}');var o=s(62540),r=s(43023);let d={slug:"/migration/v2/versioned-sites"},t="Versioned sites",l={},a=[{value:"Migrate your <code>versioned_docs</code> front matter",id:"migrate-your-versioned_docs-front-matter",level:2},{value:"Migrate your <code>versioned_sidebars</code>",id:"migrate-your-versioned_sidebars",level:2},{value:"Populate your <code>versioned_sidebars</code> and <code>versioned_docs</code>",id:"populate-your-versioned_sidebars-and-versioned_docs",level:2},{value:"Convert style attributes to style objects in MDX",id:"convert-style-attributes-to-style-objects-in-mdx",level:2}];function c(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"versioned-sites",children:"Versioned sites"})}),"\n",(0,o.jsxs)(n.p,{children:["Read up ",(0,o.jsx)(n.a,{href:"https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2#versioning",children:"https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2#versioning"})," first for problems in v1's approach."]}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsxs)(n.p,{children:["The versioned docs should normally be migrated correctly by the ",(0,o.jsx)(n.a,{href:"/docs/migration/v2/automated",children:"migration CLI"})]})}),"\n",(0,o.jsxs)(n.h2,{id:"migrate-your-versioned_docs-front-matter",children:["Migrate your ",(0,o.jsx)(n.code,{children:"versioned_docs"})," front matter"]}),"\n",(0,o.jsxs)(n.p,{children:["Unlike v1, The Markdown header for each versioned doc is no longer altered by using ",(0,o.jsx)(n.code,{children:"version-${version}-${original_id}"})," as the value for the actual ID field. See scenario below for better explanation."]}),"\n",(0,o.jsxs)(n.p,{children:["For example, if you have a ",(0,o.jsx)(n.code,{children:"docs/hello.md"}),"."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",children:"---\nid: hello\ntitle: Hello, World !\n---\n\nHi, Endilie here :)\n"})}),"\n",(0,o.jsxs)(n.p,{children:["When you cut a new version 1.0.0, in Docusaurus v1, ",(0,o.jsx)(n.code,{children:"website/versioned_docs/version-1.0.0/hello.md"})," looks like this:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",children:"---\nid: version-1.0.0-hello\ntitle: Hello, World !\noriginal_id: hello\n---\n\nHi, Endilie here :)\n"})}),"\n",(0,o.jsxs)(n.p,{children:["In comparison, Docusaurus 2 ",(0,o.jsx)(n.code,{children:"website/versioned_docs/version-1.0.0/hello.md"})," looks like this (exactly same as original)"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",children:"---\nid: hello\ntitle: Hello, World !\n---\n\nHi, Endilie here :)\n"})}),"\n",(0,o.jsxs)(n.p,{children:["Since we're going for snapshot and allow people to move (and edit) docs easily inside version. The ",(0,o.jsx)(n.code,{children:"id"})," front matter is no longer altered and will remain the same. Internally, it is set as ",(0,o.jsx)(n.code,{children:"version-${version}/${id}"}),"."]}),"\n",(0,o.jsx)(n.p,{children:"Essentially, here are the necessary changes in each versioned_docs file:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-diff",metastring:"{2-3,5}",children:"---\n- id: version-1.0.0-hello\n+ id: hello\ntitle: Hello, World !\n- original_id: hello\n---\nHi, Endilie here :)\n"})}),"\n",(0,o.jsxs)(n.h2,{id:"migrate-your-versioned_sidebars",children:["Migrate your ",(0,o.jsx)(n.code,{children:"versioned_sidebars"})]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Refer to ",(0,o.jsx)(n.code,{children:"versioned_docs"})," ID as ",(0,o.jsx)(n.code,{children:"version-${version}/${id}"})," (v2) instead of ",(0,o.jsx)(n.code,{children:"version-${version}-${original_id}"})," (v1)."]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["Because in v1 there is a good chance someone created a new file with front matter ID ",(0,o.jsx)(n.code,{children:'"version-${version}-${id}"'})," that can conflict with ",(0,o.jsx)(n.code,{children:"versioned_docs"})," ID."]}),"\n",(0,o.jsxs)(n.p,{children:["For example, Docusaurus 1 can't differentiate ",(0,o.jsx)(n.code,{children:"docs/xxx.md"})]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",children:"---\nid: version-1.0.0-hello\n---\n\nAnother content\n"})}),"\n",(0,o.jsxs)(n.p,{children:["vs ",(0,o.jsx)(n.code,{children:"website/versioned_docs/version-1.0.0/hello.md"})]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",children:"---\nid: version-1.0.0-hello\ntitle: Hello, World !\noriginal_id: hello\n---\n\nHi, Endilie here :)\n"})}),"\n",(0,o.jsxs)(n.p,{children:["Since we don't allow ",(0,o.jsx)(n.code,{children:"/"})," in v1 & v2 for front matter, conflicts are less likely to occur."]}),"\n",(0,o.jsx)(n.p,{children:"So v1 users need to migrate their versioned_sidebars file"}),"\n",(0,o.jsxs)(n.p,{children:["Example ",(0,o.jsx)(n.code,{children:"versioned_sidebars/version-1.0.0-sidebars.json"}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-diff",metastring:'{2-3,5-6,9-10} title="versioned_sidebars/version-1.0.0-sidebars.json"',children:'{\n+ "version-1.0.0/docs": {\n- "version-1.0.0-docs": {\n "Test": [\n+ "version-1.0.0/foo/bar",\n- "version-1.0.0-foo/bar",\n ],\n "Guides": [\n+ "version-1.0.0/hello",\n- "version-1.0.0-hello"\n ]\n }\n}\n'})}),"\n",(0,o.jsxs)(n.h2,{id:"populate-your-versioned_sidebars-and-versioned_docs",children:["Populate your ",(0,o.jsx)(n.code,{children:"versioned_sidebars"})," and ",(0,o.jsx)(n.code,{children:"versioned_docs"})]}),"\n",(0,o.jsxs)(n.p,{children:["In v2, we use snapshot approach for documentation versioning. ",(0,o.jsx)(n.strong,{children:"Every versioned docs does not depends on other version"}),". It is possible to have ",(0,o.jsx)(n.code,{children:"foo.md"})," in ",(0,o.jsx)(n.code,{children:"version-1.0.0"})," but it doesn't exist in ",(0,o.jsx)(n.code,{children:"version-1.2.0"}),". This is not possible in previous version due to Docusaurus v1 fallback functionality (",(0,o.jsx)(n.a,{href:"https://v1.docusaurus.io/docs/en/versioning#fallback-functionality",children:"https://v1.docusaurus.io/docs/en/versioning#fallback-functionality"}),")."]}),"\n",(0,o.jsxs)(n.p,{children:["For example, if your ",(0,o.jsx)(n.code,{children:"versions.json"})," looks like this in v1"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-json",metastring:'title="versions.json"',children:'["1.1.0", "1.0.0"]\n'})}),"\n",(0,o.jsxs)(n.p,{children:["Docusaurus v1 creates versioned docs ",(0,o.jsx)(n.strong,{children:"if and only if the doc content is different"}),". Your docs structure might look like this if the only doc changed from v1.0.0 to v1.1.0 is ",(0,o.jsx)(n.code,{children:"hello.md"}),"."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"website\n\u251C\u2500\u2500 versioned_docs\n\u2502 \u251C\u2500\u2500 version-1.1.0\n\u2502 \u2502 \u2514\u2500\u2500 hello.md\n\u2502 \u2514\u2500\u2500 version-1.0.0\n\u2502 \u251C\u2500\u2500 foo\n\u2502 \u2502 \u2514\u2500\u2500 bar.md\n\u2502 \u2514\u2500\u2500 hello.md\n\u251C\u2500\u2500 versioned_sidebars\n\u2502 \u2514\u2500\u2500 version-1.0.0-sidebars.json\n"})}),"\n",(0,o.jsxs)(n.p,{children:["In v2, you have to populate the missing ",(0,o.jsx)(n.code,{children:"versioned_docs"})," and ",(0,o.jsx)(n.code,{children:"versioned_sidebars"})," (with the right front matter and ID reference too)."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",metastring:"{3-5,12}",children:"website\n\u251C\u2500\u2500 versioned_docs\n\u2502 \u251C\u2500\u2500 version-1.1.0\n\u2502 \u2502 \u251C\u2500\u2500 foo\n\u2502 \u2502 \u2502 \u2514\u2500\u2500 bar.md\n\u2502 \u2502 \u2514\u2500\u2500 hello.md\n\u2502 \u2514\u2500\u2500 version-1.0.0\n\u2502 \u251C\u2500\u2500 foo\n\u2502 \u2502 \u2514\u2500\u2500 bar.md\n\u2502 \u2514\u2500\u2500 hello.md\n\u251C\u2500\u2500 versioned_sidebars\n\u2502 \u251C\u2500\u2500 version-1.1.0-sidebars.json\n\u2502 \u2514\u2500\u2500 version-1.0.0-sidebars.json\n"})}),"\n",(0,o.jsx)(n.h2,{id:"convert-style-attributes-to-style-objects-in-mdx",children:"Convert style attributes to style objects in MDX"}),"\n",(0,o.jsx)(n.p,{children:"Docusaurus 2 uses JSX for doc files. If you have any style attributes in your Docusaurus 1 docs, convert them to style objects, like this:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-diff",children:"---\nid: demo\ntitle: Demo\n---\n\n## Section\n\nhello world\n\n- pre style=\"background: black\">zzz</pre>\n+ pre style={{background: 'black'}}>zzz</pre>\n"})})]})}function h(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>d,x:()=>t});var i=s(63696);let o={},r=i.createContext(o);function d(e){let n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:d(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6ca75a11.824ee068.js b/assets/js/6ca75a11.824ee068.js deleted file mode 100644 index a789f7cdb1..0000000000 --- a/assets/js/6ca75a11.824ee068.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[57618],{11450:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>t,default:()=>h,frontMatter:()=>d,metadata:()=>i,toc:()=>a});let i=JSON.parse('{"id":"migration/v2/migration-versioned-sites","title":"Versioned sites","description":"Read up https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2#versioning first for problems in v1\'s approach.","source":"@site/docs/migration/v2/migration-versioned-sites.mdx","sourceDirName":"migration/v2","slug":"/migration/v2/versioned-sites","permalink":"/docs/migration/v2/versioned-sites","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/v2/migration-versioned-sites.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/migration/v2/versioned-sites"},"sidebar":"docs","previous":{"title":"Manual migration","permalink":"/docs/migration/v2/manual"},"next":{"title":"Translated sites","permalink":"/docs/migration/v2/translated-sites"}}');var o=s(62540),r=s(43023);let d={slug:"/migration/v2/versioned-sites"},t="Versioned sites",l={},a=[{value:"Migrate your <code>versioned_docs</code> front matter",id:"migrate-your-versioned_docs-front-matter",level:2},{value:"Migrate your <code>versioned_sidebars</code>",id:"migrate-your-versioned_sidebars",level:2},{value:"Populate your <code>versioned_sidebars</code> and <code>versioned_docs</code>",id:"populate-your-versioned_sidebars-and-versioned_docs",level:2},{value:"Convert style attributes to style objects in MDX",id:"convert-style-attributes-to-style-objects-in-mdx",level:2}];function c(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"versioned-sites",children:"Versioned sites"})}),"\n",(0,o.jsxs)(n.p,{children:["Read up ",(0,o.jsx)(n.a,{href:"https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2#versioning",children:"https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2#versioning"})," first for problems in v1's approach."]}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsxs)(n.p,{children:["The versioned docs should normally be migrated correctly by the ",(0,o.jsx)(n.a,{href:"/docs/migration/v2/automated",children:"migration CLI"})]})}),"\n",(0,o.jsxs)(n.h2,{id:"migrate-your-versioned_docs-front-matter",children:["Migrate your ",(0,o.jsx)(n.code,{children:"versioned_docs"})," front matter"]}),"\n",(0,o.jsxs)(n.p,{children:["Unlike v1, The Markdown header for each versioned doc is no longer altered by using ",(0,o.jsx)(n.code,{children:"version-${version}-${original_id}"})," as the value for the actual ID field. See scenario below for better explanation."]}),"\n",(0,o.jsxs)(n.p,{children:["For example, if you have a ",(0,o.jsx)(n.code,{children:"docs/hello.md"}),"."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",children:"---\nid: hello\ntitle: Hello, World !\n---\n\nHi, Endilie here :)\n"})}),"\n",(0,o.jsxs)(n.p,{children:["When you cut a new version 1.0.0, in Docusaurus v1, ",(0,o.jsx)(n.code,{children:"website/versioned_docs/version-1.0.0/hello.md"})," looks like this:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",children:"---\nid: version-1.0.0-hello\ntitle: Hello, World !\noriginal_id: hello\n---\n\nHi, Endilie here :)\n"})}),"\n",(0,o.jsxs)(n.p,{children:["In comparison, Docusaurus 2 ",(0,o.jsx)(n.code,{children:"website/versioned_docs/version-1.0.0/hello.md"})," looks like this (exactly same as original)"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",children:"---\nid: hello\ntitle: Hello, World !\n---\n\nHi, Endilie here :)\n"})}),"\n",(0,o.jsxs)(n.p,{children:["Since we're going for snapshot and allow people to move (and edit) docs easily inside version. The ",(0,o.jsx)(n.code,{children:"id"})," front matter is no longer altered and will remain the same. Internally, it is set as ",(0,o.jsx)(n.code,{children:"version-${version}/${id}"}),"."]}),"\n",(0,o.jsx)(n.p,{children:"Essentially, here are the necessary changes in each versioned_docs file:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-diff",metastring:"{2-3,5}",children:"---\n- id: version-1.0.0-hello\n+ id: hello\ntitle: Hello, World !\n- original_id: hello\n---\nHi, Endilie here :)\n"})}),"\n",(0,o.jsxs)(n.h2,{id:"migrate-your-versioned_sidebars",children:["Migrate your ",(0,o.jsx)(n.code,{children:"versioned_sidebars"})]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Refer to ",(0,o.jsx)(n.code,{children:"versioned_docs"})," ID as ",(0,o.jsx)(n.code,{children:"version-${version}/${id}"})," (v2) instead of ",(0,o.jsx)(n.code,{children:"version-${version}-${original_id}"})," (v1)."]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["Because in v1 there is a good chance someone created a new file with front matter ID ",(0,o.jsx)(n.code,{children:'"version-${version}-${id}"'})," that can conflict with ",(0,o.jsx)(n.code,{children:"versioned_docs"})," ID."]}),"\n",(0,o.jsxs)(n.p,{children:["For example, Docusaurus 1 can't differentiate ",(0,o.jsx)(n.code,{children:"docs/xxx.md"})]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",children:"---\nid: version-1.0.0-hello\n---\n\nAnother content\n"})}),"\n",(0,o.jsxs)(n.p,{children:["vs ",(0,o.jsx)(n.code,{children:"website/versioned_docs/version-1.0.0/hello.md"})]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-md",children:"---\nid: version-1.0.0-hello\ntitle: Hello, World !\noriginal_id: hello\n---\n\nHi, Endilie here :)\n"})}),"\n",(0,o.jsxs)(n.p,{children:["Since we don't allow ",(0,o.jsx)(n.code,{children:"/"})," in v1 & v2 for front matter, conflicts are less likely to occur."]}),"\n",(0,o.jsx)(n.p,{children:"So v1 users need to migrate their versioned_sidebars file"}),"\n",(0,o.jsxs)(n.p,{children:["Example ",(0,o.jsx)(n.code,{children:"versioned_sidebars/version-1.0.0-sidebars.json"}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-diff",metastring:'{2-3,5-6,9-10} title="versioned_sidebars/version-1.0.0-sidebars.json"',children:'{\n+ "version-1.0.0/docs": {\n- "version-1.0.0-docs": {\n "Test": [\n+ "version-1.0.0/foo/bar",\n- "version-1.0.0-foo/bar",\n ],\n "Guides": [\n+ "version-1.0.0/hello",\n- "version-1.0.0-hello"\n ]\n }\n}\n'})}),"\n",(0,o.jsxs)(n.h2,{id:"populate-your-versioned_sidebars-and-versioned_docs",children:["Populate your ",(0,o.jsx)(n.code,{children:"versioned_sidebars"})," and ",(0,o.jsx)(n.code,{children:"versioned_docs"})]}),"\n",(0,o.jsxs)(n.p,{children:["In v2, we use snapshot approach for documentation versioning. ",(0,o.jsx)(n.strong,{children:"Every versioned docs does not depends on other version"}),". It is possible to have ",(0,o.jsx)(n.code,{children:"foo.md"})," in ",(0,o.jsx)(n.code,{children:"version-1.0.0"})," but it doesn't exist in ",(0,o.jsx)(n.code,{children:"version-1.2.0"}),". This is not possible in previous version due to Docusaurus v1 fallback functionality (",(0,o.jsx)(n.a,{href:"https://v1.docusaurus.io/docs/en/versioning#fallback-functionality",children:"https://v1.docusaurus.io/docs/en/versioning#fallback-functionality"}),")."]}),"\n",(0,o.jsxs)(n.p,{children:["For example, if your ",(0,o.jsx)(n.code,{children:"versions.json"})," looks like this in v1"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-json",metastring:'title="versions.json"',children:'["1.1.0", "1.0.0"]\n'})}),"\n",(0,o.jsxs)(n.p,{children:["Docusaurus v1 creates versioned docs ",(0,o.jsx)(n.strong,{children:"if and only if the doc content is different"}),". Your docs structure might look like this if the only doc changed from v1.0.0 to v1.1.0 is ",(0,o.jsx)(n.code,{children:"hello.md"}),"."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"website\n\u251C\u2500\u2500 versioned_docs\n\u2502 \u251C\u2500\u2500 version-1.1.0\n\u2502 \u2502 \u2514\u2500\u2500 hello.md\n\u2502 \u2514\u2500\u2500 version-1.0.0\n\u2502 \u251C\u2500\u2500 foo\n\u2502 \u2502 \u2514\u2500\u2500 bar.md\n\u2502 \u2514\u2500\u2500 hello.md\n\u251C\u2500\u2500 versioned_sidebars\n\u2502 \u2514\u2500\u2500 version-1.0.0-sidebars.json\n"})}),"\n",(0,o.jsxs)(n.p,{children:["In v2, you have to populate the missing ",(0,o.jsx)(n.code,{children:"versioned_docs"})," and ",(0,o.jsx)(n.code,{children:"versioned_sidebars"})," (with the right front matter and ID reference too)."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",metastring:"{3-5,12}",children:"website\n\u251C\u2500\u2500 versioned_docs\n\u2502 \u251C\u2500\u2500 version-1.1.0\n\u2502 \u2502 \u251C\u2500\u2500 foo\n\u2502 \u2502 \u2502 \u2514\u2500\u2500 bar.md\n\u2502 \u2502 \u2514\u2500\u2500 hello.md\n\u2502 \u2514\u2500\u2500 version-1.0.0\n\u2502 \u251C\u2500\u2500 foo\n\u2502 \u2502 \u2514\u2500\u2500 bar.md\n\u2502 \u2514\u2500\u2500 hello.md\n\u251C\u2500\u2500 versioned_sidebars\n\u2502 \u251C\u2500\u2500 version-1.1.0-sidebars.json\n\u2502 \u2514\u2500\u2500 version-1.0.0-sidebars.json\n"})}),"\n",(0,o.jsx)(n.h2,{id:"convert-style-attributes-to-style-objects-in-mdx",children:"Convert style attributes to style objects in MDX"}),"\n",(0,o.jsx)(n.p,{children:"Docusaurus 2 uses JSX for doc files. If you have any style attributes in your Docusaurus 1 docs, convert them to style objects, like this:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-diff",children:"---\nid: demo\ntitle: Demo\n---\n\n## Section\n\nhello world\n\n- pre style=\"background: black\">zzz</pre>\n+ pre style={{background: 'black'}}>zzz</pre>\n"})})]})}function h(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>d,x:()=>t});var i=s(63696);let o={},r=i.createContext(o);function d(e){let n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:d(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6e08c139.106a145d.js b/assets/js/6e08c139.8290da5c.js similarity index 94% rename from assets/js/6e08c139.106a145d.js rename to assets/js/6e08c139.8290da5c.js index 56de96541b..531f17519a 100644 --- a/assets/js/6e08c139.106a145d.js +++ b/assets/js/6e08c139.8290da5c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[35676],{69202:(e,s,t)=>{t.d(s,{A:()=>r});let r=t.p+"assets/images/social-card-1c688c53b51bdaa6e15ae532bf756276.png"},53743:(e,s,t)=>{t.d(s,{A:()=>r});let r=t.p+"assets/images/social-card-1c688c53b51bdaa6e15ae532bf756276.png"},73494:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>o,default:()=>l,frontMatter:()=>i,metadata:()=>r,toc:()=>c});var r=t(48876),n=t(62540),a=t(43023);let i={title:"Preparing your site for Docusaurus v3",authors:["slorber"],tags:["maintenance"],slug:"/preparing-your-site-for-docusaurus-v3",image:"./img/social-card.png"},o=void 0,u={image:t(69202).A,authorsImageUrls:[void 0]},c=[];function d(e){let s={a:"a",admonition:"admonition",img:"img",p:"p",strong:"strong",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.admonition,{type:"warning",children:(0,n.jsxs)(s.p,{children:["This blog post was written when Docusaurus v3 was in beta. There are some changes in dependency versions and upgrade steps you should be aware of if upgrading to Docusaurus v3 current stable releases. Use the ",(0,n.jsx)(s.a,{href:"https://docusaurus.io/docs/next/migration/v3",children:"upgrade guide"})," for the most up-to-date migration steps."]})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Docusaurus v3"})," is now ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/discussions/9312",children:(0,n.jsx)(s.strong,{children:"in beta"})})," and the official release is around the corner. This is the perfect time to start ",(0,n.jsx)(s.strong,{children:"preparing your site"})," for this new major version."]}),"\n",(0,n.jsxs)(s.p,{children:["Docusaurus v3 comes with a few ",(0,n.jsx)(s.strong,{children:"breaking changes"}),", many of which can be ",(0,n.jsx)(s.strong,{children:"handled today under Docusaurus v2"}),". Preparing your site ahead of time can be done incrementally, and will make it easier to upgrade to v3."]}),"\n",(0,n.jsxs)(s.p,{children:["The main breaking change is the upgrade from MDX v1 to MDX v3. Read the ",(0,n.jsx)(s.a,{href:"https://mdxjs.com/blog/v2/",children:(0,n.jsx)(s.strong,{children:"MDX v2"})})," and ",(0,n.jsx)(s.a,{href:"https://mdxjs.com/blog/v3/",children:(0,n.jsx)(s.strong,{children:"MDX v3"})})," release notes for details. MDX will now compile your Markdown content ",(0,n.jsx)(s.strong,{children:"more strictly"})," and with ",(0,n.jsx)(s.strong,{children:"subtle differences"}),"."]}),"\n",(0,n.jsx)(s.p,{children:"This article will mostly focus on how to prepare your content for this new MDX version, and will also list a few other breaking changes that you can handle today."}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"Preparing your site for Docusaurus v3 - social card",src:t(53743).A+"",width:"1040",height:"546"})})]})}function l(e={}){let{wrapper:s}={...(0,a.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>i,x:()=>o});var r=t(63696);let n={},a=r.createContext(n);function i(e){let s=r.useContext(a);return r.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(n):e.components||n:i(e.components),r.createElement(a.Provider,{value:s},e.children)}},48876:e=>{e.exports=JSON.parse('{"permalink":"/blog/preparing-your-site-for-docusaurus-v3","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2023/09-29-preparing-your-site-for-docusaurus-v3/index.mdx","source":"@site/blog/2023/09-29-preparing-your-site-for-docusaurus-v3/index.mdx","title":"Preparing your site for Docusaurus v3","description":"This blog post was written when Docusaurus v3 was in beta. There are some changes in dependency versions and upgrade steps you should be aware of if upgrading to Docusaurus v3 current stable releases. Use the upgrade guide for the most up-to-date migration steps.","date":"2023-09-29T00:00:00.000Z","tags":[{"inline":false,"label":"Maintenance","permalink":"/blog/tags/maintenance"}],"readingTime":13.975,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Preparing your site for Docusaurus v3","authors":["slorber"],"tags":["maintenance"],"slug":"/preparing-your-site-for-docusaurus-v3","image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Announcing Docusaurus 3.0","permalink":"/blog/releases/3.0"},"nextItem":{"title":"Upgrading frontend dependencies with confidence","permalink":"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[35676],{69202:(e,s,t)=>{t.d(s,{A:()=>r});let r=t.p+"assets/images/social-card-1c688c53b51bdaa6e15ae532bf756276.png"},53743:(e,s,t)=>{t.d(s,{A:()=>r});let r=t.p+"assets/images/social-card-1c688c53b51bdaa6e15ae532bf756276.png"},73494:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>o,default:()=>l,frontMatter:()=>i,metadata:()=>r,toc:()=>c});var r=t(48876),n=t(62540),a=t(43023);let i={title:"Preparing your site for Docusaurus v3",authors:["slorber"],tags:["maintenance"],slug:"/preparing-your-site-for-docusaurus-v3",image:"./img/social-card.png"},o=void 0,u={image:t(69202).A,authorsImageUrls:[void 0]},c=[];function d(e){let s={a:"a",admonition:"admonition",img:"img",p:"p",strong:"strong",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.admonition,{type:"warning",children:(0,n.jsxs)(s.p,{children:["This blog post was written when Docusaurus v3 was in beta. There are some changes in dependency versions and upgrade steps you should be aware of if upgrading to Docusaurus v3 current stable releases. Use the ",(0,n.jsx)(s.a,{href:"https://docusaurus.io/docs/next/migration/v3",children:"upgrade guide"})," for the most up-to-date migration steps."]})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Docusaurus v3"})," is now ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/discussions/9312",children:(0,n.jsx)(s.strong,{children:"in beta"})})," and the official release is around the corner. This is the perfect time to start ",(0,n.jsx)(s.strong,{children:"preparing your site"})," for this new major version."]}),"\n",(0,n.jsxs)(s.p,{children:["Docusaurus v3 comes with a few ",(0,n.jsx)(s.strong,{children:"breaking changes"}),", many of which can be ",(0,n.jsx)(s.strong,{children:"handled today under Docusaurus v2"}),". Preparing your site ahead of time can be done incrementally, and will make it easier to upgrade to v3."]}),"\n",(0,n.jsxs)(s.p,{children:["The main breaking change is the upgrade from MDX v1 to MDX v3. Read the ",(0,n.jsx)(s.a,{href:"https://mdxjs.com/blog/v2/",children:(0,n.jsx)(s.strong,{children:"MDX v2"})})," and ",(0,n.jsx)(s.a,{href:"https://mdxjs.com/blog/v3/",children:(0,n.jsx)(s.strong,{children:"MDX v3"})})," release notes for details. MDX will now compile your Markdown content ",(0,n.jsx)(s.strong,{children:"more strictly"})," and with ",(0,n.jsx)(s.strong,{children:"subtle differences"}),"."]}),"\n",(0,n.jsx)(s.p,{children:"This article will mostly focus on how to prepare your content for this new MDX version, and will also list a few other breaking changes that you can handle today."}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"Preparing your site for Docusaurus v3 - social card",src:t(53743).A+"",width:"1040",height:"546"})})]})}function l(e={}){let{wrapper:s}={...(0,a.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>i,x:()=>o});var r=t(63696);let n={},a=r.createContext(n);function i(e){let s=r.useContext(a);return r.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(n):e.components||n:i(e.components),r.createElement(a.Provider,{value:s},e.children)}},48876:e=>{e.exports=JSON.parse('{"permalink":"/blog/preparing-your-site-for-docusaurus-v3","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2023/09-29-preparing-your-site-for-docusaurus-v3/index.mdx","source":"@site/blog/2023/09-29-preparing-your-site-for-docusaurus-v3/index.mdx","title":"Preparing your site for Docusaurus v3","description":"This blog post was written when Docusaurus v3 was in beta. There are some changes in dependency versions and upgrade steps you should be aware of if upgrading to Docusaurus v3 current stable releases. Use the upgrade guide for the most up-to-date migration steps.","date":"2023-09-29T00:00:00.000Z","tags":[{"inline":false,"label":"Maintenance","permalink":"/blog/tags/maintenance"}],"readingTime":13.975,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Preparing your site for Docusaurus v3","authors":["slorber"],"tags":["maintenance"],"slug":"/preparing-your-site-for-docusaurus-v3","image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Announcing Docusaurus 3.0","permalink":"/blog/releases/3.0"},"nextItem":{"title":"Upgrading frontend dependencies with confidence","permalink":"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing"}}')}}]); \ No newline at end of file diff --git a/assets/js/6e7f3c19.7ab9f017.js b/assets/js/6e7f3c19.a1cbe070.js similarity index 87% rename from assets/js/6e7f3c19.7ab9f017.js rename to assets/js/6e7f3c19.a1cbe070.js index 4bd51d6132..49d22207b1 100644 --- a/assets/js/6e7f3c19.7ab9f017.js +++ b/assets/js/6e7f3c19.a1cbe070.js @@ -19,4 +19,4 @@ ${JSON.stringify(e,null,2)}`);return t}(t),i=e?`${e}-${c}`:c,s=`#${i}`,u=(0,a.W6 // highlight-end ], ], -};`})]})]})}},55887:(e,t,r)=>{r.d(t,{A:()=>ec});var n,o,l,a={};r.r(a),r.d(a,{ButtonExample:()=>B});var c=r(62540),i=r(63696),s=r(11750),u=r(10709),p=r(55152),d=r(81912),b=r(99468),g=r(40576),f=r(1495),h=r(66659),j=r(25436);function y(){let{prism:e}=(0,j.p)(),{colorMode:t}=(0,h.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var m=r(43758);function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,c.jsx)("div",{className:(0,s.A)("playgroundHeader_Tvsk"),children:e})}function w(){return(0,c.jsx)("div",{children:"Loading..."})}function x(){return(0,c.jsx)(g.A,{fallback:(0,c.jsx)(w,{}),children:()=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(m.A,{fallback:e=>(0,c.jsx)(f.MN,O({},e)),children:(0,c.jsx)(p.pA,{})}),(0,c.jsx)(p.p1,{})]})})}function P(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(v,{children:(0,c.jsx)(d.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,c.jsx)("div",{className:"playgroundPreview_mApW",children:(0,c.jsx)(x,{})})]})}function k(){let e=(0,u.A)();return(0,c.jsx)(p.w,{className:"playgroundEditor_TySg"},String(e))}function S(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(v,{children:(0,c.jsx)(d.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,c.jsx)(k,{})]})}let A=e=>`${e};`;function E(e){var t,r,n,o,{children:l,transformCode:a}=e,i=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:s}}=(0,b.A)(),{liveCodeBlock:{playgroundPosition:u}}=s,d=y(),g=null!==(o=null===(n=i.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,c.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,c.jsx)(p.Q,(t=O({code:null==l?void 0:l.replace(/\n$/,""),noInline:g,transformCode:null!=a?a:A,theme:d},i),r=r={children:"top"===u?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(P,{}),(0,c.jsx)(S,{})]}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(S,{}),(0,c.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function B(e){var t,r;return(0,c.jsx)("button",(t=D({type:"button"},e),r=r={style:D({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let N=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:i},i,a);var C=r(12653),T=r(19934),I=r.n(T);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),_=RegExp("\\{(?<range>[\\d,-]+)\\}"),$={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},M=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},$),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),R=Object.keys($);function V(e,t){let r=e.map(e=>{let{start:r,end:n}=M[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function W(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let l=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(y());return(0,c.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:l,className:(0,s.A)(o.className,"codeBlockContainer_jDV4",C.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let q={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function G({children:e,className:t}){return(0,c.jsx)(W,{as:"pre",tabIndex:0,className:(0,s.A)(q.codeBlockStandalone,"thin-scrollbar",t),children:(0,c.jsx)("code",{className:q.codeBlockLines,children:e})})}var H=r(2550);let F={attributes:!0,characterData:!0,childList:!0,subtree:!0};var U=r(27663);let Y={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function z(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function Q({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var l,a;1===e.length&&"\n"===e[0].content&&(e[0].content="");let i=n({line:e,className:(0,s.A)(t,r&&Y.codeLine)}),u=e.map((e,t)=>(0,c.jsx)("span",z({},o({token:e})),t));return(0,c.jsxs)("span",(l=z({},i),a=a={children:[r?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:Y.codeLineNumber}),(0,c.jsx)("span",{className:Y.codeLineContent,children:u})]}):u,(0,c.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(a)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(a)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(a,e))}),l))}var J=r(936);function X(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,c.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function Z(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,c.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,i.useState)(!1),o=(0,i.useRef)(void 0),l=(0,i.useCallback)(()=>{(0,J.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,i.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,c.jsx)("button",{type:"button","aria-label":r?(0,d.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,d.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,d.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,s.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:l,children:(0,c.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,c.jsx)(X,{className:K.copyButtonIcon}),(0,c.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,c.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,d.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,c.jsx)("button",{type:"button",onClick:t,className:(0,s.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,c.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:l}){var a,u,p,d;let{prism:{defaultLanguage:b,magicComments:g}}=(0,j.p)(),f=null==(u=null!==(a=null!=l?l:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==a?a:b)?void 0:u.toLowerCase(),h=y(),m=function(){let[e,t]=(0,i.useState)(!1),[r,n]=(0,i.useState)(!1),o=(0,i.useRef)(null),l=(0,i.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),a=(0,i.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,i.useState)(),o=(0,i.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,i.useEffect)(()=>{o()},[o]),function(e,t,r=F){let n=(0,H._q)(t),o=(0,H.Be)(r);(0,i.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,a),(0,i.useEffect)(()=>{a()},[e,a]),(0,i.useEffect)(()=>(window.addEventListener("resize",a,{passive:!0}),()=>{window.removeEventListener("resize",a)}),[a]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:l}}(),O=(null!==(d=null==r?void 0:null===(p=r.match(L))||void 0===p?void 0:p.groups.title)&&void 0!==d?d:"")||n,{lineClassNames:v,code:w}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:l}=t;if(l&&_.test(l)){let e=l.match(_).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${l}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(I()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let a=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return V(["js","jsBlock"],t);case"jsx":case"tsx":return V(["js","jsBlock","jsx"],t);case"html":return V(["js","jsBlock","html"],t);case"python":case"py":case"bash":return V(["bash"],t);case"markdown":case"md":return V(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return V(["tex"],t);case"lua":case"haskell":case"sql":return V(["lua"],t);case"wasm":return V(["wasm"],t);case"vb":case"vba":case"visual-basic":return V(["vb","rem"],t);case"vbnet":return V(["vbnet","rem"],t);case"batch":return V(["rem"],t);case"basic":return V(["rem","f90"],t);case"fsharp":return V(["js","ml"],t);case"ocaml":case"sml":return V(["ml"],t);case"fortran":return V(["f90"],t);case"cobol":return V(["cobol"],t);default:return V(R,t)}}(n,o),c=r.split("\n"),i=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),s=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),p=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<c.length;){let t=c[e].match(a);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);s[r]?i[s[r]].range+=`${e},`:u[r]?i[u[r]].start=e:p[r]&&(i[p[r]].range+=`${i[p[r]].start}-${e-1},`),c.splice(e,1)}r=c.join("\n");let d={};return Object.entries(i).forEach(([e,{range:t}])=>{I()(t).forEach(t=>{var r;null!==(r=d[t])&&void 0!==r||(d[t]=[]),d[t].push(e)})}),{lineClassNames:d,code:r}}(e,{metastring:r,language:f,magicComments:g}),x=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,c.jsxs)(W,{as:"div",className:(0,s.A)(t,f&&!t.includes(`language-${f}`)&&`language-${f}`),children:[O&&(0,c.jsx)("div",{className:q.codeBlockTitle,children:O}),(0,c.jsxs)("div",{className:q.codeBlockContent,children:[(0,c.jsx)(U.f4,{theme:h,code:w,language:null!=f?f:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,c.jsx)("pre",{tabIndex:0,ref:m.codeBlockRef,className:(0,s.A)(e,q.codeBlock,"thin-scrollbar"),style:t,children:(0,c.jsx)("code",{className:(0,s.A)(q.codeBlockLines,x&&q.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,c.jsx)(Q,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:x},t))})})}),(0,c.jsxs)("div",{className:q.buttonGroup,children:[(m.isEnabled||m.isCodeScrollable)&&(0,c.jsx)(en,{className:q.codeButton,onClick:()=>m.toggle(),isEnabled:m.isEnabled}),(0,c.jsx)(ee,{className:q.codeButton,code:w})]})]})]})}function el(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let ea=(l=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let l=(0,u.A)(),a=i.Children.toArray(n).some(e=>(0,i.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,s="string"==typeof a?eo:G;return(0,c.jsx)(s,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:a},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(l))},function(e){return e.live?(0,c.jsx)(E,el({scope:N},e)):(0,c.jsx)(l,el({},e))});function ec(e){return(0,c.jsx)(ea,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}},52124:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>p,default:()=>f,frontMatter:()=>u,metadata:()=>n,toc:()=>b});let n=JSON.parse('{"id":"api/plugins/plugin-google-tag-manager","title":"\u{1F4E6} plugin-google-tag-manager","description":"A plugin for adding Google Tag Manager (gtm.js) to a Docusaurus site. Use this plugin in conjunction with the standard gtag plugin for in-depth analysis of how users are using your site.","source":"@site/docs/api/plugins/plugin-google-tag-manager.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-google-tag-manager","permalink":"/docs/api/plugins/@docusaurus/plugin-google-tag-manager","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-google-tag-manager.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":8,"frontMatter":{"sidebar_position":8,"slug":"/api/plugins/@docusaurus/plugin-google-tag-manager"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-google-gtag","permalink":"/docs/api/plugins/@docusaurus/plugin-google-gtag"},"next":{"title":"\u{1F4E6} plugin-ideal-image","permalink":"/docs/api/plugins/@docusaurus/plugin-ideal-image"}}');var o=r(62540),l=r(43023),a=r(27446),c=r(15995),i=r(59273),s=r(59433);let u={sidebar_position:8,slug:"/api/plugins/@docusaurus/plugin-google-tag-manager"},p="\u{1F4E6} plugin-google-tag-manager",d={},b=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Example configuration",id:"ex-config",level:3}];function g(e){let t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"-plugin-google-tag-manager",children:"\u{1F4E6} plugin-google-tag-manager"})}),"\n","\n",(0,o.jsxs)(t.p,{children:["A plugin for adding ",(0,o.jsx)(t.a,{href:"https://developers.google.com/tag-platform/tag-manager",children:"Google Tag Manager (gtm.js)"})," to a Docusaurus site. Use this plugin in conjunction with the standard ",(0,o.jsx)(t.a,{href:"/docs/api/plugins/@docusaurus/plugin-google-gtag",children:"gtag plugin"})," for in-depth analysis of how users are using your site."]}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["You can use ",(0,o.jsx)(t.a,{href:"https://tagassistant.google.com/",children:"Google's Tag Assistant"})," tool to check if tag manager is set up correctly!"]})}),"\n",(0,o.jsx)(t.admonition,{title:"production only",type:"warning",children:(0,o.jsxs)(t.p,{children:["This plugin is always inactive in development and ",(0,o.jsx)(t.strong,{children:"only active in production"})," to avoid polluting the analytics statistics."]})}),"\n",(0,o.jsx)(t.h2,{id:"installation",children:"Installation"}),"\n",(0,o.jsxs)(a.A,{groupId:"npm2yarn",children:[(0,o.jsx)(c.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install --save @docusaurus/plugin-google-tag-manager\n"})})}),(0,o.jsx)(c.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn add @docusaurus/plugin-google-tag-manager\n"})})}),(0,o.jsx)(c.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm add @docusaurus/plugin-google-tag-manager\n"})})})]}),"\n",(0,o.jsxs)(t.admonition,{type:"tip",children:[(0,o.jsxs)(t.p,{children:["If you use the preset ",(0,o.jsx)(t.code,{children:"@docusaurus/preset-classic"}),", you don't need to install this plugin as a dependency."]}),(0,o.jsxs)(t.p,{children:["You can configure this plugin through the ",(0,o.jsx)(t.a,{href:"/docs/using-plugins#docusauruspreset-classic",children:"preset options"}),"."]})]}),"\n",(0,o.jsx)(t.h2,{id:"configuration",children:"Configuration"}),"\n",(0,o.jsx)(t.p,{children:"Accepted fields:"}),"\n",(0,o.jsx)(i.A,{children:(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Type"}),(0,o.jsx)(t.th,{children:"Default"}),(0,o.jsx)(t.th,{children:"Description"})]})}),(0,o.jsx)(t.tbody,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"containerId"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"string"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.strong,{children:"Required"})}),(0,o.jsxs)(t.td,{children:["Your Tag Manager container Id (usually starts with ",(0,o.jsx)(t.code,{children:"GTM-"}),")."]})]})})]})}),"\n",(0,o.jsx)(t.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,o.jsx)(t.p,{children:"You can configure this plugin through preset options or plugin options."}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsx)(t.p,{children:"Most Docusaurus users configure this plugin through the preset options."})}),"\n","\n",(0,o.jsx)(s.A,{pluginName:"@docusaurus/plugin-google-tag-manager",presetOptionName:"googleTagManager",code:"{\n containerId: 'GTM-12345',\n}"})]})}function f(e={}){let{wrapper:t}={...(0,l.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(g,{...e})}):g(e)}}}]); \ No newline at end of file +};`})]})]})}},55887:(e,t,r)=>{r.d(t,{A:()=>ec});var n,o,l,a={};r.r(a),r.d(a,{ButtonExample:()=>B});var c=r(62540),i=r(63696),s=r(11750),u=r(10709),p=r(55152),d=r(81912),b=r(99468),g=r(40576),f=r(1495),h=r(66659),j=r(25436);function y(){let{prism:e}=(0,j.p)(),{colorMode:t}=(0,h.G)(),r=e.theme,n=e.darkTheme||r;return"dark"===t?n:r}var m=r(43758);function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v({children:e}){return(0,c.jsx)("div",{className:(0,s.A)("playgroundHeader_Tvsk"),children:e})}function w(){return(0,c.jsx)("div",{children:"Loading..."})}function x(){return(0,c.jsx)(g.A,{fallback:(0,c.jsx)(w,{}),children:()=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(m.A,{fallback:e=>(0,c.jsx)(f.MN,O({},e)),children:(0,c.jsx)(p.pA,{})}),(0,c.jsx)(p.p1,{})]})})}function P(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(v,{children:(0,c.jsx)(d.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,c.jsx)("div",{className:"playgroundPreview_mApW",children:(0,c.jsx)(x,{})})]})}function k(){let e=(0,u.A)();return(0,c.jsx)(p.w,{className:"playgroundEditor_TySg"},String(e))}function S(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(v,{children:(0,c.jsx)(d.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,c.jsx)(k,{})]})}let A=e=>`${e};`;function E(e){var t,r,n,o,{children:l,transformCode:a}=e,i=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children","transformCode"]);let{siteConfig:{themeConfig:s}}=(0,b.A)(),{liveCodeBlock:{playgroundPosition:u}}=s,d=y(),g=null!==(o=null===(n=i.metastring)||void 0===n?void 0:n.includes("noInline"))&&void 0!==o&&o;return(0,c.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,c.jsx)(p.Q,(t=O({code:null==l?void 0:l.replace(/\n$/,""),noInline:g,transformCode:null!=a?a:A,theme:d},i),r=r={children:"top"===u?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(P,{}),(0,c.jsx)(S,{})]}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(S,{}),(0,c.jsx)(P,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))})}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function B(e){var t,r;return(0,c.jsx)("button",(t=D({type:"button"},e),r=r={style:D({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let N=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({React:i},i,a);var C=r(12653),T=r(19934),I=r.n(T);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),_=RegExp("\\{(?<range>[\\d,-]+)\\}"),$={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},M=(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},$),o=o={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),R=Object.keys($);function V(e,t){let r=e.map(e=>{let{start:r,end:n}=M[e];return`(?:${r}\\s*(${t.flatMap(e=>{var t,r;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(r=e.block)||void 0===r?void 0:r.end].filter(Boolean)}).join("|")})\\s*${n})`}).join("|");return RegExp(`^\\s*(?:${r})\\s*$`)}function W(e){var t,r,{as:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["as"]);let l=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},r={};return Object.entries(e.plain).forEach(([e,n])=>{let o=t[e];o&&"string"==typeof n&&(r[o]=n)}),r}(y());return(0,c.jsx)(n,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={style:l,className:(0,s.A)(o.className,"codeBlockContainer_jDV4",C.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let q={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function G({children:e,className:t}){return(0,c.jsx)(W,{as:"pre",tabIndex:0,className:(0,s.A)(q.codeBlockStandalone,"thin-scrollbar",t),children:(0,c.jsx)("code",{className:q.codeBlockLines,children:e})})}var H=r(2550);let F={attributes:!0,characterData:!0,childList:!0,subtree:!0};var U=r(27663);let Y={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function z(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function Q({line:e,classNames:t,showLineNumbers:r,getLineProps:n,getTokenProps:o}){var l,a;1===e.length&&"\n"===e[0].content&&(e[0].content="");let i=n({line:e,className:(0,s.A)(t,r&&Y.codeLine)}),u=e.map((e,t)=>(0,c.jsx)("span",z({},o({token:e})),t));return(0,c.jsxs)("span",(l=z({},i),a=a={children:[r?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:Y.codeLineNumber}),(0,c.jsx)("span",{className:Y.codeLineContent,children:u})]}):u,(0,c.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(a)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(a)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(a,e))}),l))}var J=r(936);function X(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,c.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}function Z(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,c.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[r,n]=(0,i.useState)(!1),o=(0,i.useRef)(void 0),l=(0,i.useCallback)(()=>{(0,J.A)(e),n(!0),o.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,i.useEffect)(()=>()=>window.clearTimeout(o.current),[]),(0,c.jsx)("button",{type:"button","aria-label":r?(0,d.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,d.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,d.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,s.A)("clean-btn",t,K.copyButton,r&&K.copyButtonCopied),onClick:l,children:(0,c.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,c.jsx)(X,{className:K.copyButtonIcon}),(0,c.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,r;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({viewBox:"0 0 24 24"},e),r=r={children:(0,c.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))}let er={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function en({className:e,onClick:t,isEnabled:r}){let n=(0,d.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,c.jsx)("button",{type:"button",onClick:t,className:(0,s.A)("clean-btn",e,r&&er.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,c.jsx)(et,{className:er.wordWrapButtonIcon,"aria-hidden":"true"})})}function eo({children:e,className:t="",metastring:r,title:n,showLineNumbers:o,language:l}){var a,u,p,d;let{prism:{defaultLanguage:b,magicComments:g}}=(0,j.p)(),f=null==(u=null!==(a=null!=l?l:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==a?a:b)?void 0:u.toLowerCase(),h=y(),m=function(){let[e,t]=(0,i.useState)(!1),[r,n]=(0,i.useState)(!1),o=(0,i.useRef)(null),l=(0,i.useCallback)(()=>{let r=o.current.querySelector("code");e?r.removeAttribute("style"):(r.style.whiteSpace="pre-wrap",r.style.overflowWrap="anywhere"),t(e=>!e)},[o,e]),a=(0,i.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=o.current;n(e>t||o.current.querySelector("code").hasAttribute("style"))},[o]);return!function(e,t){let[r,n]=(0,i.useState)(),o=(0,i.useCallback)(()=>{var t;n(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,n]);(0,i.useEffect)(()=>{o()},[o]),function(e,t,r=F){let n=(0,H._q)(t),o=(0,H.Be)(r);(0,i.useEffect)(()=>{let t=new MutationObserver(n);return e&&t.observe(e,o),()=>t.disconnect()},[e,n,o])}(r,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(o,a),(0,i.useEffect)(()=>{a()},[e,a]),(0,i.useEffect)(()=>(window.addEventListener("resize",a,{passive:!0}),()=>{window.removeEventListener("resize",a)}),[a]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:r,toggle:l}}(),O=(null!==(d=null==r?void 0:null===(p=r.match(L))||void 0===p?void 0:p.groups.title)&&void 0!==d?d:"")||n,{lineClassNames:v,code:w}=function(e,t){let r=e.replace(/\n$/,""),{language:n,magicComments:o,metastring:l}=t;if(l&&_.test(l)){let e=l.match(_).groups.range;if(0===o.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${l}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=o[0].className;return{lineClassNames:Object.fromEntries(I()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:r}}if(void 0===n)return{lineClassNames:{},code:r};let a=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return V(["js","jsBlock"],t);case"jsx":case"tsx":return V(["js","jsBlock","jsx"],t);case"html":return V(["js","jsBlock","html"],t);case"python":case"py":case"bash":return V(["bash"],t);case"markdown":case"md":return V(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return V(["tex"],t);case"lua":case"haskell":case"sql":return V(["lua"],t);case"wasm":return V(["wasm"],t);case"vb":case"vba":case"visual-basic":return V(["vb","rem"],t);case"vbnet":return V(["vbnet","rem"],t);case"batch":return V(["rem"],t);case"basic":return V(["rem","f90"],t);case"fsharp":return V(["js","ml"],t);case"ocaml":case"sml":return V(["ml"],t);case"fortran":return V(["f90"],t);case"cobol":return V(["cobol"],t);default:return V(R,t)}}(n,o),c=r.split("\n"),i=Object.fromEntries(o.map(e=>[e.className,{start:0,range:""}])),s=Object.fromEntries(o.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),u=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),p=Object.fromEntries(o.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<c.length;){let t=c[e].match(a);if(!t){e+=1;continue}let r=t.slice(1).find(e=>void 0!==e);s[r]?i[s[r]].range+=`${e},`:u[r]?i[u[r]].start=e:p[r]&&(i[p[r]].range+=`${i[p[r]].start}-${e-1},`),c.splice(e,1)}r=c.join("\n");let d={};return Object.entries(i).forEach(([e,{range:t}])=>{I()(t).forEach(t=>{var r;null!==(r=d[t])&&void 0!==r||(d[t]=[]),d[t].push(e)})}),{lineClassNames:d,code:r}}(e,{metastring:r,language:f,magicComments:g}),x=null!=o?o:!!(null==r?void 0:r.includes("showLineNumbers"));return(0,c.jsxs)(W,{as:"div",className:(0,s.A)(t,f&&!t.includes(`language-${f}`)&&`language-${f}`),children:[O&&(0,c.jsx)("div",{className:q.codeBlockTitle,children:O}),(0,c.jsxs)("div",{className:q.codeBlockContent,children:[(0,c.jsx)(U.f4,{theme:h,code:w,language:null!=f?f:"text",children:({className:e,style:t,tokens:r,getLineProps:n,getTokenProps:o})=>(0,c.jsx)("pre",{tabIndex:0,ref:m.codeBlockRef,className:(0,s.A)(e,q.codeBlock,"thin-scrollbar"),style:t,children:(0,c.jsx)("code",{className:(0,s.A)(q.codeBlockLines,x&&q.codeBlockLinesWithNumbering),children:r.map((e,t)=>(0,c.jsx)(Q,{line:e,getLineProps:n,getTokenProps:o,classNames:v[t],showLineNumbers:x},t))})})}),(0,c.jsxs)("div",{className:q.buttonGroup,children:[(m.isEnabled||m.isCodeScrollable)&&(0,c.jsx)(en,{className:q.codeButton,onClick:()=>m.toggle(),isEnabled:m.isEnabled}),(0,c.jsx)(ee,{className:q.codeButton,code:w})]})]})]})}function el(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let ea=(l=function(e){var t,r,{children:n}=e,o=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["children"]);let l=(0,u.A)(),a=i.Children.toArray(n).some(e=>(0,i.isValidElement)(e))?n:Array.isArray(n)?n.join(""):n,s="string"==typeof a?eo:G;return(0,c.jsx)(s,(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},o),r=r={children:a},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),String(l))},function(e){return e.live?(0,c.jsx)(E,el({scope:N},e)):(0,c.jsx)(l,el({},e))});function ec(e){return(0,c.jsx)(ea,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e))}},52124:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>p,default:()=>f,frontMatter:()=>u,metadata:()=>n,toc:()=>b});let n=JSON.parse('{"id":"api/plugins/plugin-google-tag-manager","title":"\u{1F4E6} plugin-google-tag-manager","description":"A plugin for adding Google Tag Manager (gtm.js) to a Docusaurus site. Use this plugin in conjunction with the standard gtag plugin for in-depth analysis of how users are using your site.","source":"@site/docs/api/plugins/plugin-google-tag-manager.mdx","sourceDirName":"api/plugins","slug":"/api/plugins/@docusaurus/plugin-google-tag-manager","permalink":"/docs/api/plugins/@docusaurus/plugin-google-tag-manager","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugins/plugin-google-tag-manager.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":8,"frontMatter":{"sidebar_position":8,"slug":"/api/plugins/@docusaurus/plugin-google-tag-manager"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-google-gtag","permalink":"/docs/api/plugins/@docusaurus/plugin-google-gtag"},"next":{"title":"\u{1F4E6} plugin-ideal-image","permalink":"/docs/api/plugins/@docusaurus/plugin-ideal-image"}}');var o=r(62540),l=r(43023),a=r(27446),c=r(15995),i=r(59273),s=r(59433);let u={sidebar_position:8,slug:"/api/plugins/@docusaurus/plugin-google-tag-manager"},p="\u{1F4E6} plugin-google-tag-manager",d={},b=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Example configuration",id:"ex-config",level:3}];function g(e){let t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"-plugin-google-tag-manager",children:"\u{1F4E6} plugin-google-tag-manager"})}),"\n","\n",(0,o.jsxs)(t.p,{children:["A plugin for adding ",(0,o.jsx)(t.a,{href:"https://developers.google.com/tag-platform/tag-manager",children:"Google Tag Manager (gtm.js)"})," to a Docusaurus site. Use this plugin in conjunction with the standard ",(0,o.jsx)(t.a,{href:"/docs/api/plugins/@docusaurus/plugin-google-gtag",children:"gtag plugin"})," for in-depth analysis of how users are using your site."]}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["You can use ",(0,o.jsx)(t.a,{href:"https://tagassistant.google.com/",children:"Google's Tag Assistant"})," tool to check if tag manager is set up correctly!"]})}),"\n",(0,o.jsx)(t.admonition,{title:"production only",type:"warning",children:(0,o.jsxs)(t.p,{children:["This plugin is always inactive in development and ",(0,o.jsx)(t.strong,{children:"only active in production"})," to avoid polluting the analytics statistics."]})}),"\n",(0,o.jsx)(t.h2,{id:"installation",children:"Installation"}),"\n",(0,o.jsxs)(a.A,{groupId:"npm2yarn",children:[(0,o.jsx)(c.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install --save @docusaurus/plugin-google-tag-manager\n"})})}),(0,o.jsx)(c.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn add @docusaurus/plugin-google-tag-manager\n"})})}),(0,o.jsx)(c.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm add @docusaurus/plugin-google-tag-manager\n"})})})]}),"\n",(0,o.jsxs)(t.admonition,{type:"tip",children:[(0,o.jsxs)(t.p,{children:["If you use the preset ",(0,o.jsx)(t.code,{children:"@docusaurus/preset-classic"}),", you don't need to install this plugin as a dependency."]}),(0,o.jsxs)(t.p,{children:["You can configure this plugin through the ",(0,o.jsx)(t.a,{href:"/docs/using-plugins#docusauruspreset-classic",children:"preset options"}),"."]})]}),"\n",(0,o.jsx)(t.h2,{id:"configuration",children:"Configuration"}),"\n",(0,o.jsx)(t.p,{children:"Accepted fields:"}),"\n",(0,o.jsx)(i.A,{children:(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Type"}),(0,o.jsx)(t.th,{children:"Default"}),(0,o.jsx)(t.th,{children:"Description"})]})}),(0,o.jsx)(t.tbody,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"containerId"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.code,{children:"string"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.strong,{children:"Required"})}),(0,o.jsxs)(t.td,{children:["Your Tag Manager container Id (usually starts with ",(0,o.jsx)(t.code,{children:"GTM-"}),")."]})]})})]})}),"\n",(0,o.jsx)(t.h3,{id:"ex-config",children:"Example configuration"}),"\n",(0,o.jsx)(t.p,{children:"You can configure this plugin through preset options or plugin options."}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsx)(t.p,{children:"Most Docusaurus users configure this plugin through the preset options."})}),"\n","\n",(0,o.jsx)(s.A,{pluginName:"@docusaurus/plugin-google-tag-manager",presetOptionName:"googleTagManager",code:"{\n containerId: 'GTM-12345',\n}"})]})}function f(e={}){let{wrapper:t}={...(0,l.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(g,{...e})}):g(e)}}}]); \ No newline at end of file diff --git a/assets/js/6e8cf259.01a9be43.js b/assets/js/6e8cf259.01a9be43.js new file mode 100644 index 0000000000..ab388aaedf --- /dev/null +++ b/assets/js/6e8cf259.01a9be43.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[30557],{30282:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>d,default:()=>m,frontMatter:()=>r,metadata:()=>n,toc:()=>c});let n=JSON.parse('{"type":"mdx","permalink":"/tests/pages/head-metadata","source":"@site/_dogfooding/_pages tests/head-metadata.mdx","description":"Head Metadata tests","frontMatter":{},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/head-metadata.mdx","unlisted":false}');var o=a(62540),s=a(43023);let r={},d=void 0,i={},c=[{value:"Head Metadata tests",id:"head-metadata-tests",level:2}];function l(e){let t={code:"code",h2:"h2",p:"p",pre:"pre",...(0,s.R)(),...e.components},{Head:a}=t;return a||function(e,t){throw Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Head",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"head-metadata-tests",children:"Head Metadata tests"}),"\n",(0,o.jsx)(t.p,{children:"This page declares the following custom head metadata:"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-html",children:'<head>\n <meta name="generator" value="custom generator name!" />\n <meta name="viewport" content="initial-scale=1, viewport-fit=cover" />\n <meta name="robots" content="noindex, nofollow, my-extra-directive" />\n</head>\n'})}),"\n",(0,o.jsxs)(a,{children:[(0,o.jsx)("meta",{name:"generator",value:"custom generator name!"}),(0,o.jsx)("meta",{name:"viewport",content:"initial-scale=1, viewport-fit=cover"}),(0,o.jsx)("meta",{name:"robots",content:"noindex, nofollow, my-extra-directive"})]})]})}function m(e={}){let{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},43023:(e,t,a)=>{a.d(t,{R:()=>r,x:()=>d});var n=a(63696);let o={},s=n.createContext(o);function r(e){let t=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6e8cf259.5f77c4b9.js b/assets/js/6e8cf259.5f77c4b9.js deleted file mode 100644 index 269cb80827..0000000000 --- a/assets/js/6e8cf259.5f77c4b9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[30557],{30282:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>d,default:()=>m,frontMatter:()=>r,metadata:()=>n,toc:()=>c});let n=JSON.parse('{"type":"mdx","permalink":"/tests/pages/head-metadata","source":"@site/_dogfooding/_pages tests/head-metadata.mdx","description":"Head Metadata tests","frontMatter":{},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/head-metadata.mdx","unlisted":false}');var o=a(62540),s=a(43023);let r={},d=void 0,i={},c=[{value:"Head Metadata tests",id:"head-metadata-tests",level:2}];function l(e){let t={code:"code",h2:"h2",p:"p",pre:"pre",...(0,s.R)(),...e.components},{Head:a}=t;return a||function(e,t){throw Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Head",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"head-metadata-tests",children:"Head Metadata tests"}),"\n",(0,o.jsx)(t.p,{children:"This page declares the following custom head metadata:"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-html",children:'<head>\n <meta name="generator" value="custom generator name!" />\n <meta name="viewport" content="initial-scale=1, viewport-fit=cover" />\n <meta name="robots" content="noindex, nofollow, my-extra-directive" />\n</head>\n'})}),"\n",(0,o.jsxs)(a,{children:[(0,o.jsx)("meta",{name:"generator",value:"custom generator name!"}),(0,o.jsx)("meta",{name:"viewport",content:"initial-scale=1, viewport-fit=cover"}),(0,o.jsx)("meta",{name:"robots",content:"noindex, nofollow, my-extra-directive"})]})]})}function m(e={}){let{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},43023:(e,t,a)=>{a.d(t,{R:()=>r,x:()=>d});var n=a(63696);let o={},s=n.createContext(o);function r(e){let t=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6f742216.8450baa4.js b/assets/js/6f742216.8450baa4.js deleted file mode 100644 index aa54ac5ac0..0000000000 --- a/assets/js/6f742216.8450baa4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[37575],{24898:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>n,toc:()=>c});let n=JSON.parse('{"id":"more-test","title":"Another test page","description":"Test link","source":"@site/_dogfooding/_docs tests/more-test.mdx","sourceDirName":".","slug":"/more-test","permalink":"/tests/docs/more-test","draft":false,"unlisted":false,"tags":[{"inline":false,"label":"A","permalink":"/tests/docs/tags/a","description":"Description for tag a"},{"inline":false,"label":"Label for tag e","permalink":"/tests/docs/tags/permalink-for-tag-e","description":"Description for tag e"},{"inline":false,"label":"Some-tag","permalink":"/tests/docs/tags/some-tag"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"tags":["a","e","some-tag"]},"sidebar":"sidebar","previous":{"title":"Another category with index","permalink":"/tests/docs/category/another-category-with-index"},"next":{"title":"toc-2-2","permalink":"/tests/docs/toc/toc-2-2"}}');var o=s(62540),a=s(43023);let r={tags:["a","e","some-tag"]},i="Another test page",l={},c=[];function d(e){let t={a:"a",h1:"h1",header:"header",p:"p",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"another-test-page",children:"Another test page"})}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{href:"/tests/docs/folder%20with%20space/doc%201",children:"Test link"})})]})}function p(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}p.displayName="MDXContent(_dogfooding/_docs tests/more-test.mdx)"},43023:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>i});var n=s(63696);let o={},a=n.createContext(o);function r(e){let t=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6f742216.abcdf895.js b/assets/js/6f742216.abcdf895.js new file mode 100644 index 0000000000..e9d151cba7 --- /dev/null +++ b/assets/js/6f742216.abcdf895.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[37575],{24898:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>n,toc:()=>c});let n=JSON.parse('{"id":"more-test","title":"Another test page","description":"Test link","source":"@site/_dogfooding/_docs tests/more-test.mdx","sourceDirName":".","slug":"/more-test","permalink":"/tests/docs/more-test","draft":false,"unlisted":false,"tags":[{"inline":false,"label":"A","permalink":"/tests/docs/tags/a","description":"Description for tag a"},{"inline":false,"label":"Label for tag e","permalink":"/tests/docs/tags/permalink-for-tag-e","description":"Description for tag e"},{"inline":false,"label":"Some-tag","permalink":"/tests/docs/tags/some-tag"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"tags":["a","e","some-tag"]},"sidebar":"sidebar","previous":{"title":"Another category with index","permalink":"/tests/docs/category/another-category-with-index"},"next":{"title":"toc-2-2","permalink":"/tests/docs/toc/toc-2-2"}}');var o=s(62540),r=s(43023);let a={tags:["a","e","some-tag"]},i="Another test page",l={},c=[];function d(e){let t={a:"a",h1:"h1",header:"header",p:"p",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"another-test-page",children:"Another test page"})}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{href:"/tests/docs/folder%20with%20space/doc%201",children:"Test link"})})]})}function p(e={}){let{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}p.displayName="MDXContent(_dogfooding/_docs tests/more-test.mdx)"},43023:(e,t,s)=>{s.d(t,{R:()=>a,x:()=>i});var n=s(63696);let o={},r=n.createContext(o);function a(e){let t=n.useContext(r);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/706279d4.40565587.js b/assets/js/706279d4.40565587.js new file mode 100644 index 0000000000..6151d37452 --- /dev/null +++ b/assets/js/706279d4.40565587.js @@ -0,0 +1,4 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[86270],{22047:(e,n,t)=>{t.d(n,{A:()=>x});var r=t(62540);t(63696);var s=t(11750),i=t(46222),a=t(36372),l=t(13111),o=t(14652),c=t(81912),d=t(37425);let h={cardContainer:"cardContainer_Uewx",cardTitle:"cardTitle_dwRT",cardDescription:"cardDescription_mCBT"};function u({href:e,children:n}){return(0,r.jsx)(a.A,{href:e,className:(0,s.A)("card padding--lg",h.cardContainer),children:n})}function p({href:e,icon:n,title:t,description:i}){return(0,r.jsxs)(u,{href:e,children:[(0,r.jsxs)(d.A,{as:"h2",className:(0,s.A)("text--truncate",h.cardTitle),title:t,children:[n," ",t]}),i&&(0,r.jsx)("p",{className:(0,s.A)("text--truncate",h.cardDescription),title:i,children:i})]})}function g({item:e}){var n;let t=(0,i.Nr)(e),s=function(){let{selectMessage:e}=(0,l.W)();return n=>e(n,(0,c.T)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:n}))}();return t?(0,r.jsx)(p,{href:t,icon:"\u{1F5C3}\uFE0F",title:e.label,description:null!==(n=e.description)&&void 0!==n?n:s(e.items.length)}):null}function m({item:e}){var n,t;let s=(0,o.A)(e.href)?"\u{1F4C4}\uFE0F":"\u{1F517}",a=(0,i.cC)(null!==(n=e.docId)&&void 0!==n?n:void 0);return(0,r.jsx)(p,{href:e.href,icon:s,title:e.label,description:null!==(t=e.description)&&void 0!==t?t:null==a?void 0:a.description})}function b({item:e}){switch(e.type){case"link":return(0,r.jsx)(m,{item:e});case"category":return(0,r.jsx)(g,{item:e});default:throw Error(`unknown item type ${JSON.stringify(e)}`)}}function j({className:e}){let n=(0,i.$S)();return(0,r.jsx)(x,{items:n.items,className:e})}function x(e){let{items:n,className:t}=e;if(!n)return(0,r.jsx)(j,function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},e));let a=(0,i.d1)(n);return(0,r.jsx)("section",{className:(0,s.A)("row",t),children:a.map((e,n)=>(0,r.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,r.jsx)(b,{item:e})},n))})}},15995:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(62540);t(63696);var s=t(11750);function i({children:e,hidden:n,className:t}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>f});var r=t(62540),s=t(63696),i=t(11750),a=t(7846),l=t(49519),o=t(96439),c=t(19739),d=t(66904),h=t(79244);function u(e){var n,t;return null!==(t=null===(n=s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}var g=t(10709);function m(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function b(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function j({className:e,block:n,selectedValue:t,selectValue:s,tabValues:l}){let o=[],{blockElementScrollPositionUntilNextRender:c}=(0,a.a_)(),d=e=>{let n=e.currentTarget,r=l[o.indexOf(n)].value;r!==t&&(c(n),s(r))},h=e=>{var n,t;let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let t=o.indexOf(e.currentTarget)+1;r=null!==(n=o[t])&&void 0!==n?n:o[0];break}case"ArrowLeft":{let n=o.indexOf(e.currentTarget)-1;r=null!==(t=o[n])&&void 0!==t?t:o[o.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.A)("tabs",{"tabs--block":n},e),children:l.map(({value:e,label:n,attributes:s})=>(0,r.jsx)("li",b(m({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>o.push(e),onKeyDown:h,onClick:d},s),{className:(0,i.A)("tabs__item","tabItem_AQgk",null==s?void 0:s.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function x({lazy:e,children:n,selectedValue:t}){let a=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=a.find(e=>e.props.value===t);return e?(0,s.cloneElement)(e,{className:(0,i.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:a.map((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function y(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,i=function(e){let{values:n,children:t}=e;return(0,s.useMemo)(()=>{let e=null!=n?n:u(t).map(({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r}));return!function(e){let n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[a,g]=(0,s.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:i})),[m,b]=function({queryString:e=!1,groupId:n}){let t=(0,l.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,c.aZ)(r),(0,s.useCallback)(e=>{var n,s;if(!r)return;let i=new URLSearchParams(t.location.search);i.set(r,e),t.replace((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},t.location),s=s={search:i.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(s)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(s)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(s,e))}),n))},[r,t])]}({queryString:t,groupId:r}),[j,x]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[t,r]=(0,h.Dv)(n);return[t,(0,s.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),y=(()=>{let e=null!=m?m:j;return p({value:e,tabValues:i})?e:null})();return(0,o.A)(()=>{y&&g(y)},[y]),{selectedValue:a,selectValue:(0,s.useCallback)(e=>{if(!p({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);g(e),b(e),x(e)},[b,x,i]),tabValues:i}}(e);return(0,r.jsxs)("div",{className:(0,i.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(j,m({},n,e)),(0,r.jsx)(x,m({},n,e))]})}function f(e){let n=(0,g.A)();return(0,r.jsx)(y,b(m({},e),{children:u(e.children)}),String(n))}},13111:(e,n,t)=>{t.d(n,{W:()=>o});var r=t(63696),s=t(99468);let i=["zero","one","two","few","many","other"];function a(e){return i.filter(n=>e.includes(n))}let l={locale:"en",pluralForms:a(["one","other"]),select:e=>1===e?"one":"other"};function o(){let e=function(){let{i18n:{currentLocale:e}}=(0,s.A)();return(0,r.useMemo)(()=>{try{return function(e){let n=new Intl.PluralRules(e);return{locale:e,pluralForms:a(n.resolvedOptions().pluralCategories),select:e=>n.select(e)}}(e)}catch(n){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +Docusaurus will fallback to the default (English) implementation. +Error: ${n.message} +`),l}},[e])}();return{selectMessage:(n,t)=>(function(e,n,t){let r=e.split("|");if(1===r.length)return r[0];r.length>t.pluralForms.length&&console.error(`For locale=${t.locale}, a maximum of ${t.pluralForms.length} plural forms are expected (${t.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);let s=t.select(n);return r[Math.min(t.pluralForms.indexOf(s),r.length-1)]})(t,n,e)}}},70361:(e,n,t)=>{t.d(n,{A:()=>l});var r=t(62540);t(63696);var s=t(11750);let i="dot_giz1",a="bar_rrRL";function l({children:e,minHeight:n,url:t="http://localhost:3000",style:l,bodyStyle:o}){var c,d;return(0,r.jsxs)("div",{className:"browserWindow_my1Q",style:(c=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},l),d=d={minHeight:n},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(d)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(d)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(d,e))}),c),children:[(0,r.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,r.jsxs)("div",{className:"buttons_uHc7",children:[(0,r.jsx)("span",{className:i,style:{background:"#f25f58"}}),(0,r.jsx)("span",{className:i,style:{background:"#fbbe3c"}}),(0,r.jsx)("span",{className:i,style:{background:"#58cb42"}})]}),(0,r.jsx)("div",{className:(0,s.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:t}),(0,r.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:a}),(0,r.jsx)("span",{className:a}),(0,r.jsx)("span",{className:a})]})})]}),(0,r.jsx)("div",{className:"browserWindowBody_Idgs",style:o,children:e})]})}},74904:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>h,default:()=>m,frontMatter:()=>d,metadata:()=>r,toc:()=>p});let r=JSON.parse('{"id":"guides/docs/sidebar/items","title":"Sidebar items","description":"We have introduced three types of item types in the example in the previous section autogenerated, which we will explain in detail later.","source":"@site/docs/guides/docs/sidebar/items.mdx","sourceDirName":"guides/docs/sidebar","slug":"/sidebar/items","permalink":"/docs/sidebar/items","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/sidebar/items.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_max_heading_level":4,"slug":"/sidebar/items"},"sidebar":"docs","previous":{"title":"Sidebar","permalink":"/docs/sidebar"},"next":{"title":"Autogenerated","permalink":"/docs/sidebar/autogenerated"}}');var s=t(62540),i=t(43023),a=t(27446),l=t(15995),o=t(70361),c=t(22047);let d={toc_max_heading_level:4,slug:"/sidebar/items"},h="Sidebar items",u={},p=[{value:"Doc: link to a doc",id:"sidebar-item-doc",level:2},{value:"Link: link to any page",id:"sidebar-item-link",level:2},{value:"HTML: render custom markup",id:"sidebar-item-html",level:2},{value:"Category: create a hierarchy",id:"sidebar-item-category",level:2},{value:"Category links",id:"category-link",level:3},{value:"Generated index page",id:"generated-index-page",level:4},{value:"Doc link",id:"category-doc-link",level:4},{value:"Embedding generated index in doc page",id:"embedding-generated-index-in-doc-page",level:4},{value:"Collapsible categories",id:"collapsible-categories",level:3},{value:"Expanded categories by default",id:"expanded-categories-by-default",level:3},{value:"Using shorthands",id:"using-shorthands",level:2},{value:"Doc shorthand",id:"doc-shorthand",level:3},{value:"Category shorthand",id:"category-shorthand",level:3}];function g(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"sidebar-items",children:"Sidebar items"})}),"\n","\n",(0,s.jsxs)(n.p,{children:["We have introduced three types of item types in the example in the previous section: ",(0,s.jsx)(n.code,{children:"doc"}),", ",(0,s.jsx)(n.code,{children:"category"}),", and ",(0,s.jsx)(n.code,{children:"link"}),", whose usages are fairly intuitive. We will formally introduce their APIs. There's also a fourth type: ",(0,s.jsx)(n.code,{children:"autogenerated"}),", which we will explain in detail later."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"#sidebar-item-doc",children:"Doc"})}),": link to a doc page, associating it with the sidebar"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"#sidebar-item-link",children:"Link"})}),": link to any internal or external page"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"#sidebar-item-category",children:"Category"})}),": creates a dropdown of sidebar items"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"/docs/sidebar/autogenerated",children:"Autogenerated"})}),": generate a sidebar slice automatically"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"#sidebar-item-html",children:"HTML"})}),": renders pure HTML in the item's position"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"/docs/sidebar/multiple-sidebars#sidebar-item-ref",children:"*Ref"})}),": link to a doc page, without making the item take part in navigation generation"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"sidebar-item-doc",children:"Doc: link to a doc"}),"\n",(0,s.jsxs)(n.p,{children:["Use the ",(0,s.jsx)(n.code,{children:"doc"})," type to link to a doc page and assign that doc to a sidebar:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type SidebarItemDoc =\n // Normal syntax\n | {\n type: 'doc';\n id: string;\n label: string; // Sidebar label text\n className?: string; // Class name for sidebar label\n customProps?: Record<string, unknown>; // Custom props\n }\n\n // Shorthand syntax\n | string; // docId shortcut\n"})}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n mySidebar: [\n // Normal syntax:\n // highlight-start\n {\n type: 'doc',\n id: 'doc1', // document ID\n label: 'Getting started', // sidebar label\n },\n // highlight-end\n\n // Shorthand syntax:\n // highlight-start\n 'doc2', // document ID\n // highlight-end\n ],\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["If you use the doc shorthand or ",(0,s.jsx)(n.a,{href:"/docs/sidebar/autogenerated",children:"autogenerated"})," sidebar, you would lose the ability to customize the sidebar label through item definition. You can, however, use the ",(0,s.jsx)(n.code,{children:"sidebar_label"})," Markdown front matter within that doc, which has higher precedence over the ",(0,s.jsx)(n.code,{children:"label"})," key in the sidebar item. Similarly, you can use ",(0,s.jsx)(n.code,{children:"sidebar_custom_props"})," to declare custom metadata for a doc page."]}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["A ",(0,s.jsx)(n.code,{children:"doc"})," item sets an ",(0,s.jsx)(n.a,{href:"/docs/sidebar/multiple-sidebars#sidebar-association",children:"implicit sidebar association"}),". Don't assign the same doc to multiple sidebars: change the type to ",(0,s.jsx)(n.code,{children:"ref"})," instead."]})}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsx)(n.p,{children:"Sidebar custom props is a useful way to propagate arbitrary doc metadata to the client side, so you can get additional information when using any doc-related hook that fetches a doc object."})}),"\n",(0,s.jsx)(n.h2,{id:"sidebar-item-link",children:"Link: link to any page"}),"\n",(0,s.jsxs)(n.p,{children:["Use the ",(0,s.jsx)(n.code,{children:"link"})," type to link to any page (internal or external) that is not a doc."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type SidebarItemLink = {\n type: 'link';\n label: string;\n href: string;\n className?: string;\n description?: string;\n};\n"})}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n myLinksSidebar: [\n // highlight-start\n // External link\n {\n type: 'link',\n label: 'Facebook', // The link label\n href: 'https://facebook.com', // The external URL\n },\n // highlight-end\n\n // highlight-start\n // Internal link\n {\n type: 'link',\n label: 'Home', // The link label\n href: '/', // The internal path\n },\n // highlight-end\n ],\n};\n"})}),"\n",(0,s.jsx)(n.h2,{id:"sidebar-item-html",children:"HTML: render custom markup"}),"\n",(0,s.jsxs)(n.p,{children:["Use the ",(0,s.jsx)(n.code,{children:"html"})," type to render custom HTML within the item's ",(0,s.jsx)(n.code,{children:"<li>"})," tag."]}),"\n",(0,s.jsx)(n.p,{children:"This can be useful for inserting custom items such as dividers, section titles, ads, and images."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type SidebarItemHtml = {\n type: 'html';\n value: string;\n defaultStyle?: boolean; // Use default menu item styles\n className?: string;\n};\n"})}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n myHtmlSidebar: [\n // highlight-start\n {\n type: 'html',\n value: '<img src=\"sponsor.png\" alt=\"Sponsor\" />', // The HTML to be rendered\n defaultStyle: true, // Use the default menu item styling\n },\n // highlight-end\n ],\n};\n"})}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsxs)(n.p,{children:["The menu item is already wrapped in an ",(0,s.jsx)(n.code,{children:"<li>"})," tag, so if your custom item is simple, such as a title, just supply a string as the value and use the ",(0,s.jsx)(n.code,{children:"className"})," property to style it:"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n myHtmlSidebar: [\n {\n type: 'html',\n value: 'Core concepts',\n className: 'sidebar-title',\n },\n ],\n};\n"})})]}),"\n",(0,s.jsx)(n.h2,{id:"sidebar-item-category",children:"Category: create a hierarchy"}),"\n",(0,s.jsxs)(n.p,{children:["Use the ",(0,s.jsx)(n.code,{children:"category"})," type to create a hierarchy of sidebar items."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type SidebarItemCategory = {\n type: 'category';\n label: string; // Sidebar label text.\n items: SidebarItem[]; // Array of sidebar items.\n className?: string;\n description?: string;\n\n // Category options:\n collapsible: boolean; // Set the category to be collapsible\n collapsed: boolean; // Set the category to be initially collapsed or open by default\n link: SidebarItemCategoryLinkDoc | SidebarItemCategoryLinkGeneratedIndex;\n};\n"})}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n docs: [\n {\n type: 'category',\n label: 'Guides',\n collapsible: true,\n collapsed: false,\n items: [\n 'creating-pages',\n {\n type: 'category',\n label: 'Docs',\n items: ['introduction', 'sidebar', 'markdown-features', 'versioning'],\n },\n ],\n },\n ],\n};\n"})}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsxs)(n.p,{children:["Use the ",(0,s.jsx)(n.a,{href:"#category-shorthand",children:(0,s.jsx)(n.strong,{children:"shorthand syntax"})})," when you don't need customizations:"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n docs: {\n Guides: [\n 'creating-pages',\n {\n Docs: ['introduction', 'sidebar', 'markdown-features', 'versioning'],\n },\n ],\n },\n};\n"})})]}),"\n",(0,s.jsx)(n.h3,{id:"category-link",children:"Category links"}),"\n",(0,s.jsx)(n.p,{children:"With category links, clicking on a category can navigate you to another page."}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsx)(n.p,{children:"Use category links to introduce a category of documents."}),(0,s.jsxs)(n.p,{children:["Autogenerated categories can use the ",(0,s.jsx)(n.a,{href:"/docs/sidebar/autogenerated#category-item-metadata",children:(0,s.jsx)(n.code,{children:"_category_.yml"})})," file to declare the link."]})]}),"\n",(0,s.jsx)(n.h4,{id:"generated-index-page",children:"Generated index page"}),"\n",(0,s.jsxs)(n.p,{children:["You can auto-generate an index page that displays all the direct children of this category. The ",(0,s.jsx)(n.code,{children:"slug"})," allows you to customize the generated page's route, which defaults to ",(0,s.jsx)(n.code,{children:"/category/[categoryName]"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n docs: [\n {\n type: 'category',\n label: 'Guides',\n // highlight-start\n link: {\n type: 'generated-index',\n title: 'Docusaurus Guides',\n description: 'Learn about the most important Docusaurus concepts!',\n slug: '/category/docusaurus-guides',\n keywords: ['guides'],\n image: '/img/docusaurus.png',\n },\n // highlight-end\n items: ['pages', 'docs', 'blog', 'search'],\n },\n ],\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["See it in action on the ",(0,s.jsx)(n.a,{href:"/docs/category/guides",children:"Docusaurus Guides page"}),"."]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["Use ",(0,s.jsx)(n.code,{children:"generated-index"})," links as a quick way to get an introductory document."]})}),"\n",(0,s.jsx)(n.h4,{id:"category-doc-link",children:"Doc link"}),"\n",(0,s.jsx)(n.p,{children:"A category can link to an existing document."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n docs: [\n {\n type: 'category',\n label: 'Guides',\n // highlight-start\n link: {type: 'doc', id: 'introduction'},\n // highlight-end\n items: ['pages', 'docs', 'blog', 'search'],\n },\n ],\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["See it in action on the ",(0,s.jsx)(n.a,{href:"/docs/i18n/introduction",children:"i18n introduction page"}),"."]}),"\n",(0,s.jsx)(n.h4,{id:"embedding-generated-index-in-doc-page",children:"Embedding generated index in doc page"}),"\n",(0,s.jsxs)(n.p,{children:["You can embed the generated cards list in a normal doc page as well with the ",(0,s.jsx)(n.code,{children:"DocCardList"})," component. It will display all the sidebar items of the parent category of the current document."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-md",metastring:'title="docs/sidebar/index.md"',children:"import DocCardList from '@theme/DocCardList';\n\n<DocCardList />\n"})}),"\n",(0,s.jsx)(o.A,{children:(0,s.jsx)(c.A,{})}),"\n",(0,s.jsx)(n.h3,{id:"collapsible-categories",children:"Collapsible categories"}),"\n",(0,s.jsxs)(n.p,{children:["We support the option to expand/collapse categories. Categories are collapsible by default, but you can disable collapsing with ",(0,s.jsx)(n.code,{children:"collapsible: false"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n docs: [\n {\n type: 'category',\n label: 'Guides',\n items: [\n 'creating-pages',\n {\n type: 'category',\n // highlight-next-line\n collapsible: false,\n label: 'Docs',\n items: ['introduction', 'sidebar', 'markdown-features', 'versioning'],\n },\n ],\n },\n ],\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["To make all categories non-collapsible by default, set the ",(0,s.jsx)(n.code,{children:"sidebarCollapsible"})," option in ",(0,s.jsx)(n.code,{children:"plugin-content-docs"})," to ",(0,s.jsx)(n.code,{children:"false"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n // highlight-next-line\n sidebarCollapsible: false,\n },\n },\n ],\n ],\n};\n"})}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["The option in ",(0,s.jsx)(n.code,{children:"sidebars.js"})," takes precedence over plugin configuration, so it is possible to make certain categories collapsible when ",(0,s.jsx)(n.code,{children:"sidebarCollapsible"})," is set to ",(0,s.jsx)(n.code,{children:"false"})," globally."]})}),"\n",(0,s.jsx)(n.h3,{id:"expanded-categories-by-default",children:"Expanded categories by default"}),"\n",(0,s.jsxs)(n.p,{children:["Collapsible categories are collapsed by default. If you want them to be expanded on the first render, you can set ",(0,s.jsx)(n.code,{children:"collapsed"})," to ",(0,s.jsx)(n.code,{children:"false"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n docs: {\n Guides: [\n 'creating-pages',\n {\n type: 'category',\n label: 'Docs',\n // highlight-next-line\n collapsed: false,\n items: ['markdown-features', 'sidebar', 'versioning'],\n },\n ],\n },\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Similar to ",(0,s.jsx)(n.code,{children:"collapsible"}),", you can also set the global configuration ",(0,s.jsx)(n.code,{children:"options.sidebarCollapsed"})," to ",(0,s.jsx)(n.code,{children:"false"}),". Individual ",(0,s.jsx)(n.code,{children:"collapsed"})," options in ",(0,s.jsx)(n.code,{children:"sidebars.js"})," will still take precedence over this configuration."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n // highlight-next-line\n sidebarCollapsed: false,\n },\n },\n ],\n ],\n};\n"})}),"\n",(0,s.jsx)(n.admonition,{type:"warning",children:(0,s.jsxs)(n.p,{children:["When a category has ",(0,s.jsx)(n.code,{children:"collapsed: true"})," but ",(0,s.jsx)(n.code,{children:"collapsible: false"})," (either through ",(0,s.jsx)(n.code,{children:"sidebars.js"})," or through plugin configuration), the latter takes precedence and the category is still rendered as expanded."]})}),"\n",(0,s.jsx)(n.h2,{id:"using-shorthands",children:"Using shorthands"}),"\n",(0,s.jsxs)(n.p,{children:["You can express typical sidebar items without much customization more concisely with ",(0,s.jsx)(n.strong,{children:"shorthand syntaxes"}),". There are two parts to this: ",(0,s.jsx)(n.a,{href:"#doc-shorthand",children:(0,s.jsx)(n.strong,{children:"doc shorthand"})})," and ",(0,s.jsx)(n.a,{href:"#category-shorthand",children:(0,s.jsx)(n.strong,{children:"category shorthand"})}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"doc-shorthand",children:"Doc shorthand"}),"\n",(0,s.jsxs)(n.p,{children:["An item with type ",(0,s.jsx)(n.code,{children:"doc"})," can be simply a string representing its ID:"]}),"\n",(0,s.jsxs)(a.A,{children:[(0,s.jsx)(l.A,{value:"Longhand",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n sidebar: [\n // highlight-start\n {\n type: 'doc',\n id: 'myDoc',\n },\n // highlight-end\n ],\n};\n"})})}),(0,s.jsx)(l.A,{value:"Shorthand",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n sidebar: [\n // highlight-start\n 'myDoc',\n // highlight-end\n ],\n};\n"})})})]}),"\n",(0,s.jsx)(n.p,{children:"So it's possible to simplify the example above to:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n mySidebar: [\n {\n type: 'category',\n label: 'Getting Started',\n items: [\n // highlight-next-line\n 'doc1',\n ],\n },\n {\n type: 'category',\n label: 'Docusaurus',\n items: [\n // highlight-start\n 'doc2',\n 'doc3',\n // highlight-end\n ],\n },\n {\n type: 'link',\n label: 'Learn more',\n href: 'https://example.com',\n },\n ],\n};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"category-shorthand",children:"Category shorthand"}),"\n",(0,s.jsx)(n.p,{children:"A category item can be represented by an object whose key is its label, and the value is an array of subitems."}),"\n",(0,s.jsxs)(a.A,{children:[(0,s.jsx)(l.A,{value:"Longhand",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n sidebar: [\n // highlight-start\n {\n type: 'category',\n label: 'Getting started',\n items: ['doc1', 'doc2'],\n },\n // highlight-end\n ],\n};\n"})})}),(0,s.jsx)(l.A,{value:"Shorthand",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n sidebar: [\n // highlight-start\n {\n 'Getting started': ['doc1', 'doc2'],\n },\n // highlight-end\n ],\n};\n"})})})]}),"\n",(0,s.jsx)(n.p,{children:"This permits us to simplify that example to:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n mySidebar: [\n // highlight-start\n {\n 'Getting started': ['doc1'],\n },\n {\n Docusaurus: ['doc2', 'doc3'],\n },\n // highlight-end\n {\n type: 'link',\n label: 'Learn more',\n href: 'https://example.com',\n },\n ],\n};\n"})}),"\n",(0,s.jsx)(n.p,{children:"Each shorthand object after this transformation will contain exactly one entry. Now consider the further simplified example below:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n mySidebar: [\n // highlight-start\n {\n 'Getting started': ['doc1'],\n Docusaurus: ['doc2', 'doc3'],\n },\n // highlight-end\n {\n type: 'link',\n label: 'Learn more',\n href: 'https://example.com',\n },\n ],\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Note how the two consecutive category shorthands are compressed into one object with two entries. This syntax generates a ",(0,s.jsx)(n.strong,{children:"sidebar slice"}),': you shouldn\'t see that object as one bulk item\u2014this object is unwrapped, with each entry becoming a separate item, and they spliced together with the rest of the items (in this case, the "Learn more" link) to form the final sidebar level. Sidebar slices are also important when discussing ',(0,s.jsx)(n.a,{href:"/docs/sidebar/autogenerated",children:"autogenerated sidebars"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Wherever you have an array of items that is reduced to one category shorthand, you can omit that enclosing array as well."}),"\n",(0,s.jsxs)(a.A,{children:[(0,s.jsx)(l.A,{value:"Before",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n sidebar: [\n {\n 'Getting started': ['doc1'],\n Docusaurus: [\n {\n 'Basic guides': ['doc2', 'doc3'],\n 'Advanced guides': ['doc4', 'doc5'],\n },\n ],\n },\n ],\n};\n"})})}),(0,s.jsx)(l.A,{value:"After",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n sidebar: {\n 'Getting started': ['doc1'],\n Docusaurus: {\n 'Basic guides': ['doc2', 'doc3'],\n 'Advanced guides': ['doc4', 'doc5'],\n },\n },\n};\n"})})})]})]})}function m(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(g,{...e})}):g(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>l});var r=t(63696);let s={},i=r.createContext(s);function a(e){let n=r.useContext(i);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:a(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/706279d4.cbb826ab.js b/assets/js/706279d4.cbb826ab.js deleted file mode 100644 index d3091e3c6b..0000000000 --- a/assets/js/706279d4.cbb826ab.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[86270],{22047:(e,n,t)=>{t.d(n,{A:()=>x});var r=t(62540);t(63696);var s=t(11750),i=t(46222),a=t(36372),l=t(13111),o=t(14652),c=t(81912),d=t(37425);let h={cardContainer:"cardContainer_Uewx",cardTitle:"cardTitle_dwRT",cardDescription:"cardDescription_mCBT"};function u({href:e,children:n}){return(0,r.jsx)(a.A,{href:e,className:(0,s.A)("card padding--lg",h.cardContainer),children:n})}function g({href:e,icon:n,title:t,description:i}){return(0,r.jsxs)(u,{href:e,children:[(0,r.jsxs)(d.A,{as:"h2",className:(0,s.A)("text--truncate",h.cardTitle),title:t,children:[n," ",t]}),i&&(0,r.jsx)("p",{className:(0,s.A)("text--truncate",h.cardDescription),title:i,children:i})]})}function p({item:e}){var n;let t=(0,i.Nr)(e),s=function(){let{selectMessage:e}=(0,l.W)();return n=>e(n,(0,c.T)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:n}))}();return t?(0,r.jsx)(g,{href:t,icon:"\u{1F5C3}\uFE0F",title:e.label,description:null!==(n=e.description)&&void 0!==n?n:s(e.items.length)}):null}function m({item:e}){var n,t;let s=(0,o.A)(e.href)?"\u{1F4C4}\uFE0F":"\u{1F517}",a=(0,i.cC)(null!==(n=e.docId)&&void 0!==n?n:void 0);return(0,r.jsx)(g,{href:e.href,icon:s,title:e.label,description:null!==(t=e.description)&&void 0!==t?t:null==a?void 0:a.description})}function b({item:e}){switch(e.type){case"link":return(0,r.jsx)(m,{item:e});case"category":return(0,r.jsx)(p,{item:e});default:throw Error(`unknown item type ${JSON.stringify(e)}`)}}function j({className:e}){let n=(0,i.$S)();return(0,r.jsx)(x,{items:n.items,className:e})}function x(e){let{items:n,className:t}=e;if(!n)return(0,r.jsx)(j,function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},e));let a=(0,i.d1)(n);return(0,r.jsx)("section",{className:(0,s.A)("row",t),children:a.map((e,n)=>(0,r.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,r.jsx)(b,{item:e})},n))})}},15995:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(62540);t(63696);var s=t(11750);function i({children:e,hidden:n,className:t}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>f});var r=t(62540),s=t(63696),i=t(11750),a=t(7846),l=t(49519),o=t(96439),c=t(19739),d=t(66904),h=t(79244);function u(e){var n,t;return null!==(t=null===(n=s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function g({value:e,tabValues:n}){return n.some(n=>n.value===e)}var p=t(10709);function m(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function b(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function j({className:e,block:n,selectedValue:t,selectValue:s,tabValues:l}){let o=[],{blockElementScrollPositionUntilNextRender:c}=(0,a.a_)(),d=e=>{let n=e.currentTarget,r=l[o.indexOf(n)].value;r!==t&&(c(n),s(r))},h=e=>{var n,t;let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let t=o.indexOf(e.currentTarget)+1;r=null!==(n=o[t])&&void 0!==n?n:o[0];break}case"ArrowLeft":{let n=o.indexOf(e.currentTarget)-1;r=null!==(t=o[n])&&void 0!==t?t:o[o.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.A)("tabs",{"tabs--block":n},e),children:l.map(({value:e,label:n,attributes:s})=>(0,r.jsx)("li",b(m({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>o.push(e),onKeyDown:h,onClick:d},s),{className:(0,i.A)("tabs__item","tabItem_AQgk",null==s?void 0:s.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function x({lazy:e,children:n,selectedValue:t}){let a=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=a.find(e=>e.props.value===t);return e?(0,s.cloneElement)(e,{className:(0,i.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:a.map((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function y(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,i=function(e){let{values:n,children:t}=e;return(0,s.useMemo)(()=>{let e=null!=n?n:u(t).map(({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r}));return!function(e){let n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[a,p]=(0,s.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!g({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:i})),[m,b]=function({queryString:e=!1,groupId:n}){let t=(0,l.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,c.aZ)(r),(0,s.useCallback)(e=>{var n,s;if(!r)return;let i=new URLSearchParams(t.location.search);i.set(r,e),t.replace((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},t.location),s=s={search:i.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(s)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(s)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(s,e))}),n))},[r,t])]}({queryString:t,groupId:r}),[j,x]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[t,r]=(0,h.Dv)(n);return[t,(0,s.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),y=(()=>{let e=null!=m?m:j;return g({value:e,tabValues:i})?e:null})();return(0,o.A)(()=>{y&&p(y)},[y]),{selectedValue:a,selectValue:(0,s.useCallback)(e=>{if(!g({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);p(e),b(e),x(e)},[b,x,i]),tabValues:i}}(e);return(0,r.jsxs)("div",{className:(0,i.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(j,m({},n,e)),(0,r.jsx)(x,m({},n,e))]})}function f(e){let n=(0,p.A)();return(0,r.jsx)(y,b(m({},e),{children:u(e.children)}),String(n))}},13111:(e,n,t)=>{t.d(n,{W:()=>o});var r=t(63696),s=t(99468);let i=["zero","one","two","few","many","other"];function a(e){return i.filter(n=>e.includes(n))}let l={locale:"en",pluralForms:a(["one","other"]),select:e=>1===e?"one":"other"};function o(){let e=function(){let{i18n:{currentLocale:e}}=(0,s.A)();return(0,r.useMemo)(()=>{try{return function(e){let n=new Intl.PluralRules(e);return{locale:e,pluralForms:a(n.resolvedOptions().pluralCategories),select:e=>n.select(e)}}(e)}catch(n){return console.error(`Failed to use Intl.PluralRules for locale "${e}". -Docusaurus will fallback to the default (English) implementation. -Error: ${n.message} -`),l}},[e])}();return{selectMessage:(n,t)=>(function(e,n,t){let r=e.split("|");if(1===r.length)return r[0];r.length>t.pluralForms.length&&console.error(`For locale=${t.locale}, a maximum of ${t.pluralForms.length} plural forms are expected (${t.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);let s=t.select(n);return r[Math.min(t.pluralForms.indexOf(s),r.length-1)]})(t,n,e)}}},70361:(e,n,t)=>{t.d(n,{A:()=>l});var r=t(62540);t(63696);var s=t(11750);let i="dot_giz1",a="bar_rrRL";function l({children:e,minHeight:n,url:t="http://localhost:3000",style:l,bodyStyle:o}){var c,d;return(0,r.jsxs)("div",{className:"browserWindow_my1Q",style:(c=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},l),d=d={minHeight:n},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(d)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(d)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(d,e))}),c),children:[(0,r.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,r.jsxs)("div",{className:"buttons_uHc7",children:[(0,r.jsx)("span",{className:i,style:{background:"#f25f58"}}),(0,r.jsx)("span",{className:i,style:{background:"#fbbe3c"}}),(0,r.jsx)("span",{className:i,style:{background:"#58cb42"}})]}),(0,r.jsx)("div",{className:(0,s.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:t}),(0,r.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:a}),(0,r.jsx)("span",{className:a}),(0,r.jsx)("span",{className:a})]})})]}),(0,r.jsx)("div",{className:"browserWindowBody_Idgs",style:o,children:e})]})}},74904:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>h,default:()=>m,frontMatter:()=>d,metadata:()=>r,toc:()=>g});let r=JSON.parse('{"id":"guides/docs/sidebar/items","title":"Sidebar items","description":"We have introduced three types of item types in the example in the previous section autogenerated, which we will explain in detail later.","source":"@site/docs/guides/docs/sidebar/items.mdx","sourceDirName":"guides/docs/sidebar","slug":"/sidebar/items","permalink":"/docs/sidebar/items","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/sidebar/items.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_max_heading_level":4,"slug":"/sidebar/items"},"sidebar":"docs","previous":{"title":"Sidebar","permalink":"/docs/sidebar"},"next":{"title":"Autogenerated","permalink":"/docs/sidebar/autogenerated"}}');var s=t(62540),i=t(43023),a=t(27446),l=t(15995),o=t(70361),c=t(22047);let d={toc_max_heading_level:4,slug:"/sidebar/items"},h="Sidebar items",u={},g=[{value:"Doc: link to a doc",id:"sidebar-item-doc",level:2},{value:"Link: link to any page",id:"sidebar-item-link",level:2},{value:"HTML: render custom markup",id:"sidebar-item-html",level:2},{value:"Category: create a hierarchy",id:"sidebar-item-category",level:2},{value:"Category links",id:"category-link",level:3},{value:"Generated index page",id:"generated-index-page",level:4},{value:"Doc link",id:"category-doc-link",level:4},{value:"Embedding generated index in doc page",id:"embedding-generated-index-in-doc-page",level:4},{value:"Collapsible categories",id:"collapsible-categories",level:3},{value:"Expanded categories by default",id:"expanded-categories-by-default",level:3},{value:"Using shorthands",id:"using-shorthands",level:2},{value:"Doc shorthand",id:"doc-shorthand",level:3},{value:"Category shorthand",id:"category-shorthand",level:3}];function p(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"sidebar-items",children:"Sidebar items"})}),"\n","\n",(0,s.jsxs)(n.p,{children:["We have introduced three types of item types in the example in the previous section: ",(0,s.jsx)(n.code,{children:"doc"}),", ",(0,s.jsx)(n.code,{children:"category"}),", and ",(0,s.jsx)(n.code,{children:"link"}),", whose usages are fairly intuitive. We will formally introduce their APIs. There's also a fourth type: ",(0,s.jsx)(n.code,{children:"autogenerated"}),", which we will explain in detail later."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"#sidebar-item-doc",children:"Doc"})}),": link to a doc page, associating it with the sidebar"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"#sidebar-item-link",children:"Link"})}),": link to any internal or external page"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"#sidebar-item-category",children:"Category"})}),": creates a dropdown of sidebar items"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"/docs/sidebar/autogenerated",children:"Autogenerated"})}),": generate a sidebar slice automatically"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"#sidebar-item-html",children:"HTML"})}),": renders pure HTML in the item's position"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"/docs/sidebar/multiple-sidebars#sidebar-item-ref",children:"*Ref"})}),": link to a doc page, without making the item take part in navigation generation"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"sidebar-item-doc",children:"Doc: link to a doc"}),"\n",(0,s.jsxs)(n.p,{children:["Use the ",(0,s.jsx)(n.code,{children:"doc"})," type to link to a doc page and assign that doc to a sidebar:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type SidebarItemDoc =\n // Normal syntax\n | {\n type: 'doc';\n id: string;\n label: string; // Sidebar label text\n className?: string; // Class name for sidebar label\n customProps?: Record<string, unknown>; // Custom props\n }\n\n // Shorthand syntax\n | string; // docId shortcut\n"})}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n mySidebar: [\n // Normal syntax:\n // highlight-start\n {\n type: 'doc',\n id: 'doc1', // document ID\n label: 'Getting started', // sidebar label\n },\n // highlight-end\n\n // Shorthand syntax:\n // highlight-start\n 'doc2', // document ID\n // highlight-end\n ],\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["If you use the doc shorthand or ",(0,s.jsx)(n.a,{href:"/docs/sidebar/autogenerated",children:"autogenerated"})," sidebar, you would lose the ability to customize the sidebar label through item definition. You can, however, use the ",(0,s.jsx)(n.code,{children:"sidebar_label"})," Markdown front matter within that doc, which has higher precedence over the ",(0,s.jsx)(n.code,{children:"label"})," key in the sidebar item. Similarly, you can use ",(0,s.jsx)(n.code,{children:"sidebar_custom_props"})," to declare custom metadata for a doc page."]}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["A ",(0,s.jsx)(n.code,{children:"doc"})," item sets an ",(0,s.jsx)(n.a,{href:"/docs/sidebar/multiple-sidebars#sidebar-association",children:"implicit sidebar association"}),". Don't assign the same doc to multiple sidebars: change the type to ",(0,s.jsx)(n.code,{children:"ref"})," instead."]})}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsx)(n.p,{children:"Sidebar custom props is a useful way to propagate arbitrary doc metadata to the client side, so you can get additional information when using any doc-related hook that fetches a doc object."})}),"\n",(0,s.jsx)(n.h2,{id:"sidebar-item-link",children:"Link: link to any page"}),"\n",(0,s.jsxs)(n.p,{children:["Use the ",(0,s.jsx)(n.code,{children:"link"})," type to link to any page (internal or external) that is not a doc."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type SidebarItemLink = {\n type: 'link';\n label: string;\n href: string;\n className?: string;\n description?: string;\n};\n"})}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n myLinksSidebar: [\n // highlight-start\n // External link\n {\n type: 'link',\n label: 'Facebook', // The link label\n href: 'https://facebook.com', // The external URL\n },\n // highlight-end\n\n // highlight-start\n // Internal link\n {\n type: 'link',\n label: 'Home', // The link label\n href: '/', // The internal path\n },\n // highlight-end\n ],\n};\n"})}),"\n",(0,s.jsx)(n.h2,{id:"sidebar-item-html",children:"HTML: render custom markup"}),"\n",(0,s.jsxs)(n.p,{children:["Use the ",(0,s.jsx)(n.code,{children:"html"})," type to render custom HTML within the item's ",(0,s.jsx)(n.code,{children:"<li>"})," tag."]}),"\n",(0,s.jsx)(n.p,{children:"This can be useful for inserting custom items such as dividers, section titles, ads, and images."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type SidebarItemHtml = {\n type: 'html';\n value: string;\n defaultStyle?: boolean; // Use default menu item styles\n className?: string;\n};\n"})}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n myHtmlSidebar: [\n // highlight-start\n {\n type: 'html',\n value: '<img src=\"sponsor.png\" alt=\"Sponsor\" />', // The HTML to be rendered\n defaultStyle: true, // Use the default menu item styling\n },\n // highlight-end\n ],\n};\n"})}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsxs)(n.p,{children:["The menu item is already wrapped in an ",(0,s.jsx)(n.code,{children:"<li>"})," tag, so if your custom item is simple, such as a title, just supply a string as the value and use the ",(0,s.jsx)(n.code,{children:"className"})," property to style it:"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n myHtmlSidebar: [\n {\n type: 'html',\n value: 'Core concepts',\n className: 'sidebar-title',\n },\n ],\n};\n"})})]}),"\n",(0,s.jsx)(n.h2,{id:"sidebar-item-category",children:"Category: create a hierarchy"}),"\n",(0,s.jsxs)(n.p,{children:["Use the ",(0,s.jsx)(n.code,{children:"category"})," type to create a hierarchy of sidebar items."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ts",children:"type SidebarItemCategory = {\n type: 'category';\n label: string; // Sidebar label text.\n items: SidebarItem[]; // Array of sidebar items.\n className?: string;\n description?: string;\n\n // Category options:\n collapsible: boolean; // Set the category to be collapsible\n collapsed: boolean; // Set the category to be initially collapsed or open by default\n link: SidebarItemCategoryLinkDoc | SidebarItemCategoryLinkGeneratedIndex;\n};\n"})}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n docs: [\n {\n type: 'category',\n label: 'Guides',\n collapsible: true,\n collapsed: false,\n items: [\n 'creating-pages',\n {\n type: 'category',\n label: 'Docs',\n items: ['introduction', 'sidebar', 'markdown-features', 'versioning'],\n },\n ],\n },\n ],\n};\n"})}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsxs)(n.p,{children:["Use the ",(0,s.jsx)(n.a,{href:"#category-shorthand",children:(0,s.jsx)(n.strong,{children:"shorthand syntax"})})," when you don't need customizations:"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n docs: {\n Guides: [\n 'creating-pages',\n {\n Docs: ['introduction', 'sidebar', 'markdown-features', 'versioning'],\n },\n ],\n },\n};\n"})})]}),"\n",(0,s.jsx)(n.h3,{id:"category-link",children:"Category links"}),"\n",(0,s.jsx)(n.p,{children:"With category links, clicking on a category can navigate you to another page."}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsx)(n.p,{children:"Use category links to introduce a category of documents."}),(0,s.jsxs)(n.p,{children:["Autogenerated categories can use the ",(0,s.jsx)(n.a,{href:"/docs/sidebar/autogenerated#category-item-metadata",children:(0,s.jsx)(n.code,{children:"_category_.yml"})})," file to declare the link."]})]}),"\n",(0,s.jsx)(n.h4,{id:"generated-index-page",children:"Generated index page"}),"\n",(0,s.jsxs)(n.p,{children:["You can auto-generate an index page that displays all the direct children of this category. The ",(0,s.jsx)(n.code,{children:"slug"})," allows you to customize the generated page's route, which defaults to ",(0,s.jsx)(n.code,{children:"/category/[categoryName]"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n docs: [\n {\n type: 'category',\n label: 'Guides',\n // highlight-start\n link: {\n type: 'generated-index',\n title: 'Docusaurus Guides',\n description: 'Learn about the most important Docusaurus concepts!',\n slug: '/category/docusaurus-guides',\n keywords: ['guides'],\n image: '/img/docusaurus.png',\n },\n // highlight-end\n items: ['pages', 'docs', 'blog', 'search'],\n },\n ],\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["See it in action on the ",(0,s.jsx)(n.a,{href:"/docs/category/guides",children:"Docusaurus Guides page"}),"."]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["Use ",(0,s.jsx)(n.code,{children:"generated-index"})," links as a quick way to get an introductory document."]})}),"\n",(0,s.jsx)(n.h4,{id:"category-doc-link",children:"Doc link"}),"\n",(0,s.jsx)(n.p,{children:"A category can link to an existing document."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n docs: [\n {\n type: 'category',\n label: 'Guides',\n // highlight-start\n link: {type: 'doc', id: 'introduction'},\n // highlight-end\n items: ['pages', 'docs', 'blog', 'search'],\n },\n ],\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["See it in action on the ",(0,s.jsx)(n.a,{href:"/docs/i18n/introduction",children:"i18n introduction page"}),"."]}),"\n",(0,s.jsx)(n.h4,{id:"embedding-generated-index-in-doc-page",children:"Embedding generated index in doc page"}),"\n",(0,s.jsxs)(n.p,{children:["You can embed the generated cards list in a normal doc page as well with the ",(0,s.jsx)(n.code,{children:"DocCardList"})," component. It will display all the sidebar items of the parent category of the current document."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-md",metastring:'title="docs/sidebar/index.md"',children:"import DocCardList from '@theme/DocCardList';\n\n<DocCardList />\n"})}),"\n",(0,s.jsx)(o.A,{children:(0,s.jsx)(c.A,{})}),"\n",(0,s.jsx)(n.h3,{id:"collapsible-categories",children:"Collapsible categories"}),"\n",(0,s.jsxs)(n.p,{children:["We support the option to expand/collapse categories. Categories are collapsible by default, but you can disable collapsing with ",(0,s.jsx)(n.code,{children:"collapsible: false"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n docs: [\n {\n type: 'category',\n label: 'Guides',\n items: [\n 'creating-pages',\n {\n type: 'category',\n // highlight-next-line\n collapsible: false,\n label: 'Docs',\n items: ['introduction', 'sidebar', 'markdown-features', 'versioning'],\n },\n ],\n },\n ],\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["To make all categories non-collapsible by default, set the ",(0,s.jsx)(n.code,{children:"sidebarCollapsible"})," option in ",(0,s.jsx)(n.code,{children:"plugin-content-docs"})," to ",(0,s.jsx)(n.code,{children:"false"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n // highlight-next-line\n sidebarCollapsible: false,\n },\n },\n ],\n ],\n};\n"})}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["The option in ",(0,s.jsx)(n.code,{children:"sidebars.js"})," takes precedence over plugin configuration, so it is possible to make certain categories collapsible when ",(0,s.jsx)(n.code,{children:"sidebarCollapsible"})," is set to ",(0,s.jsx)(n.code,{children:"false"})," globally."]})}),"\n",(0,s.jsx)(n.h3,{id:"expanded-categories-by-default",children:"Expanded categories by default"}),"\n",(0,s.jsxs)(n.p,{children:["Collapsible categories are collapsed by default. If you want them to be expanded on the first render, you can set ",(0,s.jsx)(n.code,{children:"collapsed"})," to ",(0,s.jsx)(n.code,{children:"false"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n docs: {\n Guides: [\n 'creating-pages',\n {\n type: 'category',\n label: 'Docs',\n // highlight-next-line\n collapsed: false,\n items: ['markdown-features', 'sidebar', 'versioning'],\n },\n ],\n },\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Similar to ",(0,s.jsx)(n.code,{children:"collapsible"}),", you can also set the global configuration ",(0,s.jsx)(n.code,{children:"options.sidebarCollapsed"})," to ",(0,s.jsx)(n.code,{children:"false"}),". Individual ",(0,s.jsx)(n.code,{children:"collapsed"})," options in ",(0,s.jsx)(n.code,{children:"sidebars.js"})," will still take precedence over this configuration."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n // highlight-next-line\n sidebarCollapsed: false,\n },\n },\n ],\n ],\n};\n"})}),"\n",(0,s.jsx)(n.admonition,{type:"warning",children:(0,s.jsxs)(n.p,{children:["When a category has ",(0,s.jsx)(n.code,{children:"collapsed: true"})," but ",(0,s.jsx)(n.code,{children:"collapsible: false"})," (either through ",(0,s.jsx)(n.code,{children:"sidebars.js"})," or through plugin configuration), the latter takes precedence and the category is still rendered as expanded."]})}),"\n",(0,s.jsx)(n.h2,{id:"using-shorthands",children:"Using shorthands"}),"\n",(0,s.jsxs)(n.p,{children:["You can express typical sidebar items without much customization more concisely with ",(0,s.jsx)(n.strong,{children:"shorthand syntaxes"}),". There are two parts to this: ",(0,s.jsx)(n.a,{href:"#doc-shorthand",children:(0,s.jsx)(n.strong,{children:"doc shorthand"})})," and ",(0,s.jsx)(n.a,{href:"#category-shorthand",children:(0,s.jsx)(n.strong,{children:"category shorthand"})}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"doc-shorthand",children:"Doc shorthand"}),"\n",(0,s.jsxs)(n.p,{children:["An item with type ",(0,s.jsx)(n.code,{children:"doc"})," can be simply a string representing its ID:"]}),"\n",(0,s.jsxs)(a.A,{children:[(0,s.jsx)(l.A,{value:"Longhand",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n sidebar: [\n // highlight-start\n {\n type: 'doc',\n id: 'myDoc',\n },\n // highlight-end\n ],\n};\n"})})}),(0,s.jsx)(l.A,{value:"Shorthand",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n sidebar: [\n // highlight-start\n 'myDoc',\n // highlight-end\n ],\n};\n"})})})]}),"\n",(0,s.jsx)(n.p,{children:"So it's possible to simplify the example above to:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n mySidebar: [\n {\n type: 'category',\n label: 'Getting Started',\n items: [\n // highlight-next-line\n 'doc1',\n ],\n },\n {\n type: 'category',\n label: 'Docusaurus',\n items: [\n // highlight-start\n 'doc2',\n 'doc3',\n // highlight-end\n ],\n },\n {\n type: 'link',\n label: 'Learn more',\n href: 'https://example.com',\n },\n ],\n};\n"})}),"\n",(0,s.jsx)(n.h3,{id:"category-shorthand",children:"Category shorthand"}),"\n",(0,s.jsx)(n.p,{children:"A category item can be represented by an object whose key is its label, and the value is an array of subitems."}),"\n",(0,s.jsxs)(a.A,{children:[(0,s.jsx)(l.A,{value:"Longhand",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n sidebar: [\n // highlight-start\n {\n type: 'category',\n label: 'Getting started',\n items: ['doc1', 'doc2'],\n },\n // highlight-end\n ],\n};\n"})})}),(0,s.jsx)(l.A,{value:"Shorthand",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n sidebar: [\n // highlight-start\n {\n 'Getting started': ['doc1', 'doc2'],\n },\n // highlight-end\n ],\n};\n"})})})]}),"\n",(0,s.jsx)(n.p,{children:"This permits us to simplify that example to:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n mySidebar: [\n // highlight-start\n {\n 'Getting started': ['doc1'],\n },\n {\n Docusaurus: ['doc2', 'doc3'],\n },\n // highlight-end\n {\n type: 'link',\n label: 'Learn more',\n href: 'https://example.com',\n },\n ],\n};\n"})}),"\n",(0,s.jsx)(n.p,{children:"Each shorthand object after this transformation will contain exactly one entry. Now consider the further simplified example below:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n mySidebar: [\n // highlight-start\n {\n 'Getting started': ['doc1'],\n Docusaurus: ['doc2', 'doc3'],\n },\n // highlight-end\n {\n type: 'link',\n label: 'Learn more',\n href: 'https://example.com',\n },\n ],\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Note how the two consecutive category shorthands are compressed into one object with two entries. This syntax generates a ",(0,s.jsx)(n.strong,{children:"sidebar slice"}),': you shouldn\'t see that object as one bulk item\u2014this object is unwrapped, with each entry becoming a separate item, and they spliced together with the rest of the items (in this case, the "Learn more" link) to form the final sidebar level. Sidebar slices are also important when discussing ',(0,s.jsx)(n.a,{href:"/docs/sidebar/autogenerated",children:"autogenerated sidebars"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Wherever you have an array of items that is reduced to one category shorthand, you can omit that enclosing array as well."}),"\n",(0,s.jsxs)(a.A,{children:[(0,s.jsx)(l.A,{value:"Before",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n sidebar: [\n {\n 'Getting started': ['doc1'],\n Docusaurus: [\n {\n 'Basic guides': ['doc2', 'doc3'],\n 'Advanced guides': ['doc4', 'doc5'],\n },\n ],\n },\n ],\n};\n"})})}),(0,s.jsx)(l.A,{value:"After",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n sidebar: {\n 'Getting started': ['doc1'],\n Docusaurus: {\n 'Basic guides': ['doc2', 'doc3'],\n 'Advanced guides': ['doc4', 'doc5'],\n },\n },\n};\n"})})})]})]})}function m(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>l});var r=t(63696);let s={},i=r.createContext(s);function a(e){let n=r.useContext(i);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:a(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/70e09343.d7b404eb.js b/assets/js/70e09343.d7b404eb.js deleted file mode 100644 index 7884c20cc9..0000000000 --- a/assets/js/70e09343.d7b404eb.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[77462],{8941:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var n=r(62540);r(63696);var s=r(9347),o=r(81912);function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function a(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function c(e,t){switch(e){case"noicon":case"loaded":return null;case"loading":return(0,o.T)({id:"theme.IdealImageMessage.loading",message:"Loading...",description:"When the full-scale image is loading"});case"load":{let{pickedSrc:e}=t,{size:r}=e,n=r?` (${function(e){let t=["B","KB","MB","GB","TB"];if(0===e)return"n/a";let r=Math.floor(Math.log(e)/Math.log(1024));return 0===r?`${e} ${t[r]}`:`${(e/1024**r).toFixed(1)} ${t[r]}`}(r)})`:"";return(0,o.T)({id:"theme.IdealImageMessage.load",message:"Click to load{sizeMessage}",description:"To prompt users to load the full image. sizeMessage is a parenthesized size figure."},{sizeMessage:n})}case"offline":return(0,o.T)({id:"theme.IdealImageMessage.offline",message:"Your browser is offline. Image not loaded",description:"When the user is viewing an offline document"});case"error":{let{loadInfo:e}=t;if(404===e)return(0,o.T)({id:"theme.IdealImageMessage.404error",message:"404. Image not found",description:"When the image is not found"});return(0,o.T)({id:"theme.IdealImageMessage.error",message:"Error. Click to reload",description:"When the image fails to load for unknown error"})}default:throw Error(`Wrong icon: ${e}`)}}function l(e){var t,r;let{img:o}=e,l=function(e,t){if(null==e)return{};var r,n,s=function(e,t){if(null==e)return{};var r,n,s={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(s[r]=e[r]);return s}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}(e,["img"]);return"string"==typeof o||"default"in o?(0,n.jsx)("img",i({src:"string"==typeof o?o:o.default},l)):(0,n.jsx)(s.A,a(i({},l),{height:null!==(t=o.src.height)&&void 0!==t?t:100,width:null!==(r=o.src.width)&&void 0!==r?r:100,placeholder:{lqip:o.preSrc},src:o.src.src,srcSet:o.src.images.map(e=>a(i({},e),{src:e.path})),getMessage:c}))}},21440:(e,t,r)=>{"use strict";r.r(t),r.d(t,{assets:()=>m,contentTitle:()=>b,default:()=>x,frontMatter:()=>h,metadata:()=>n,toc:()=>f});let n=JSON.parse('{"id":"playground","title":"Playground","description":"Playgrounds allow you to run Docusaurus in your browser, without installing anything!","source":"@site/docs/playground.mdx","sourceDirName":".","slug":"/playground","permalink":"/docs/playground","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/playground.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"docs","previous":{"title":"Configuration","permalink":"/docs/configuration"},"next":{"title":"TypeScript Support","permalink":"/docs/typescript-support"}}');var s=r(62540),o=r(43023);r(63696);var i=r(11750),a=r(81912),c=r(36372),l=r(8941),d=r(37425);let u=[{name:"\u{1F4E6} CodeSandbox",image:r(67376),url:"https://docusaurus.new/codesandbox",urlTS:"https://docusaurus.new/codesandbox-ts",description:(0,s.jsx)(a.A,{id:"playground.codesandbox.description",children:"CodeSandbox is an online code editor and development environment that allows developers to create, share and collaborate on web development projects in a browser-based environment"})},{name:"\u26A1 StackBlitz \u{1F195}",image:r(56179),url:"https://docusaurus.new/stackblitz",urlTS:"https://docusaurus.new/stackblitz-ts",description:(0,s.jsx)(a.A,{id:"playground.stackblitz.description",values:{webContainersLink:(0,s.jsx)(c.A,{href:"https://blog.stackblitz.com/posts/introducing-webcontainers/",children:"WebContainers"})},children:"StackBlitz uses a novel {webContainersLink} technology to run Docusaurus directly in your browser."})}];function p({name:e,image:t,url:r,urlTS:n,description:o}){return(0,s.jsx)("div",{className:"col col--6 margin-bottom--lg",children:(0,s.jsxs)("div",{className:(0,i.A)("card"),children:[(0,s.jsx)("div",{className:(0,i.A)("card__image"),children:(0,s.jsx)(c.A,{to:r,children:(0,s.jsx)(l.A,{img:t,alt:`${e}'s image`})})}),(0,s.jsxs)("div",{className:"card__body",children:[(0,s.jsx)(d.A,{as:"h3",children:e}),(0,s.jsx)("p",{children:o})]}),(0,s.jsxs)("div",{className:"card__footer",children:[(0,s.jsx)("div",{style:{textAlign:"center"},children:(0,s.jsx)("b",{children:(0,s.jsx)(a.A,{id:"playground.tryItButton",children:"Try it now!"})})}),(0,s.jsxs)("div",{className:"button-group button-group--block",children:[(0,s.jsx)(c.A,{className:"button button--secondary",to:r,children:"JavaScript"}),(0,s.jsx)(c.A,{className:"button button--secondary",to:n,children:"TypeScript"})]})]})]})})}function g(){return(0,s.jsx)("div",{className:"row",children:u.map(e=>(0,s.jsx)(p,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),e.name))})}let h={},b="Playground",m={},f=[];function A(e){let t={a:"a",admonition:"admonition",h1:"h1",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"playground",children:"Playground"})}),"\n",(0,s.jsxs)(t.p,{children:["Playgrounds allow you to run Docusaurus ",(0,s.jsx)(t.strong,{children:"in your browser, without installing anything"}),"!"]}),"\n",(0,s.jsx)(t.p,{children:"They are mostly useful for:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Testing Docusaurus"}),"\n",(0,s.jsx)(t.li,{children:"Reporting bugs"}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["Use ",(0,s.jsx)(t.a,{href:"https://docusaurus.new",children:"docusaurus.new"})," as an easy-to-remember shortcut."]}),"\n",(0,s.jsx)(t.p,{children:"Choose one of the available options below."}),"\n","\n",(0,s.jsx)(g,{}),"\n",(0,s.jsx)(t.admonition,{type:"tip",children:(0,s.jsxs)(t.p,{children:["For convenience, we'll remember your choice next time you visit ",(0,s.jsx)(t.a,{href:"https://docusaurus.new",children:"docusaurus.new"}),"."]})})]})}function x(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(A,{...e})}):A(e)}},67376:(e,t,r)=>{e.exports={src:{srcSet:r.p+"assets/ideal-img/codesandbox.7906bc4.640.png 640w,"+r.p+"assets/ideal-img/codesandbox.36984ff.1030.png 1030w",images:[{path:r.p+"assets/ideal-img/codesandbox.7906bc4.640.png",width:640,height:355},{path:r.p+"assets/ideal-img/codesandbox.36984ff.1030.png",width:1030,height:571}],src:r.p+"assets/ideal-img/codesandbox.7906bc4.640.png",toString:function(){return r.p+"assets/ideal-img/codesandbox.7906bc4.640.png"},placeholder:void 0,width:640,height:355},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAYAAAD68A/GAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA7ElEQVR4nB3Ov0rDQACA8ZszxVrvLpfYu0goUWtQwT+IOtRasrg6WQdbhL5BHZwEoaVIaXHpC6irxc3JxUVfw01wcHD7pB1+07d8orKasb1zQLmcUrIxcZwQmEUK85IFrVGBQQcRwtolppIkIQxDlFJsrm+QHx1Tq1bJa3UO9/YRWqtZTNMVXOwozhXI26dcTYbcPo+5ntzTGnQQURQhpaRkLYExSL+IPMnY6p9zNu5QH7WRzV2Ec47QGNJ0mcpahlYBN4MuP/zx9vnB1+83L++vCN/3mVJKzxY8z+Oy2eLp4ZFG44Lh3Yh+t8c/jL9rZrM0xfsAAAAASUVORK5CYII="}},56179:(e,t,r)=>{e.exports={src:{srcSet:r.p+"assets/ideal-img/stackblitz.4ee9b70.640.png 640w,"+r.p+"assets/ideal-img/stackblitz.8ebfdbb.1030.png 1030w",images:[{path:r.p+"assets/ideal-img/stackblitz.4ee9b70.640.png",width:640,height:356},{path:r.p+"assets/ideal-img/stackblitz.8ebfdbb.1030.png",width:1030,height:572}],src:r.p+"assets/ideal-img/stackblitz.4ee9b70.640.png",toString:function(){return r.p+"assets/ideal-img/stackblitz.4ee9b70.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAYAAAD68A/GAAAACXBIWXMAABYlAAAWJQFJUiTwAAAA2UlEQVR4nB3LvUrDUABA4fsAovbPNs29yb25adKEWlJB8C0rqFOx+BD+ILjbvTiYDiWpUx2zWAIeMcPHmY5I05SLyysm0wxjR+ggbLiej/INvrZ42iKkjvBsgiMDXC+k5/hE4ykvb6+8r1as1x88Pj0jBjJABhP6KmbgWlpdySjJ2G4Ldl876rqmLArEUIV44TnSjFE6pusYonRGvtlQliU/hwOfeY5QJsbYFOlHOCqk3ZNEScZ+/01VVfxCM4jTdp9/J62zpkfHHYZSc3N7x2Jxz3L5wHx+zR8O9nujOJsFvAAAAABJRU5ErkJggg=="}},43023:(e,t,r)=>{"use strict";r.d(t,{R:()=>i,x:()=>a});var n=r(63696);let s={},o=n.createContext(s);function i(e){let 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(s):e.components||s:i(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/70e09343.e63ce5ca.js b/assets/js/70e09343.e63ce5ca.js new file mode 100644 index 0000000000..312a91be3a --- /dev/null +++ b/assets/js/70e09343.e63ce5ca.js @@ -0,0 +1 @@ +(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[77462],{8941:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var n=r(62540);r(63696);var s=r(9347),o=r(81912);function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function a(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function c(e,t){switch(e){case"noicon":case"loaded":return null;case"loading":return(0,o.T)({id:"theme.IdealImageMessage.loading",message:"Loading...",description:"When the full-scale image is loading"});case"load":{let{pickedSrc:e}=t,{size:r}=e,n=r?` (${function(e){let t=["B","KB","MB","GB","TB"];if(0===e)return"n/a";let r=Math.floor(Math.log(e)/Math.log(1024));return 0===r?`${e} ${t[r]}`:`${(e/1024**r).toFixed(1)} ${t[r]}`}(r)})`:"";return(0,o.T)({id:"theme.IdealImageMessage.load",message:"Click to load{sizeMessage}",description:"To prompt users to load the full image. sizeMessage is a parenthesized size figure."},{sizeMessage:n})}case"offline":return(0,o.T)({id:"theme.IdealImageMessage.offline",message:"Your browser is offline. Image not loaded",description:"When the user is viewing an offline document"});case"error":{let{loadInfo:e}=t;if(404===e)return(0,o.T)({id:"theme.IdealImageMessage.404error",message:"404. Image not found",description:"When the image is not found"});return(0,o.T)({id:"theme.IdealImageMessage.error",message:"Error. Click to reload",description:"When the image fails to load for unknown error"})}default:throw Error(`Wrong icon: ${e}`)}}function l(e){var t,r;let{img:o}=e,l=function(e,t){if(null==e)return{};var r,n,s=function(e,t){if(null==e)return{};var r,n,s={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(s[r]=e[r]);return s}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}(e,["img"]);return"string"==typeof o||"default"in o?(0,n.jsx)("img",i({src:"string"==typeof o?o:o.default},l)):(0,n.jsx)(s.A,a(i({},l),{height:null!==(t=o.src.height)&&void 0!==t?t:100,width:null!==(r=o.src.width)&&void 0!==r?r:100,placeholder:{lqip:o.preSrc},src:o.src.src,srcSet:o.src.images.map(e=>a(i({},e),{src:e.path})),getMessage:c}))}},21440:(e,t,r)=>{"use strict";r.r(t),r.d(t,{assets:()=>m,contentTitle:()=>b,default:()=>x,frontMatter:()=>h,metadata:()=>n,toc:()=>f});let n=JSON.parse('{"id":"playground","title":"Playground","description":"Playgrounds allow you to run Docusaurus in your browser, without installing anything!","source":"@site/docs/playground.mdx","sourceDirName":".","slug":"/playground","permalink":"/docs/playground","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/playground.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"docs","previous":{"title":"Configuration","permalink":"/docs/configuration"},"next":{"title":"TypeScript Support","permalink":"/docs/typescript-support"}}');var s=r(62540),o=r(43023);r(63696);var i=r(11750),a=r(81912),c=r(36372),l=r(8941),d=r(37425);let u=[{name:"\u{1F4E6} CodeSandbox",image:r(67376),url:"https://docusaurus.new/codesandbox",urlTS:"https://docusaurus.new/codesandbox-ts",description:(0,s.jsx)(a.A,{id:"playground.codesandbox.description",children:"CodeSandbox is an online code editor and development environment that allows developers to create, share and collaborate on web development projects in a browser-based environment"})},{name:"\u26A1 StackBlitz \u{1F195}",image:r(56179),url:"https://docusaurus.new/stackblitz",urlTS:"https://docusaurus.new/stackblitz-ts",description:(0,s.jsx)(a.A,{id:"playground.stackblitz.description",values:{webContainersLink:(0,s.jsx)(c.A,{href:"https://blog.stackblitz.com/posts/introducing-webcontainers/",children:"WebContainers"})},children:"StackBlitz uses a novel {webContainersLink} technology to run Docusaurus directly in your browser."})}];function p({name:e,image:t,url:r,urlTS:n,description:o}){return(0,s.jsx)("div",{className:"col col--6 margin-bottom--lg",children:(0,s.jsxs)("div",{className:(0,i.A)("card"),children:[(0,s.jsx)("div",{className:(0,i.A)("card__image"),children:(0,s.jsx)(c.A,{to:r,children:(0,s.jsx)(l.A,{img:t,alt:`${e}'s image`})})}),(0,s.jsxs)("div",{className:"card__body",children:[(0,s.jsx)(d.A,{as:"h3",children:e}),(0,s.jsx)("p",{children:o})]}),(0,s.jsxs)("div",{className:"card__footer",children:[(0,s.jsx)("div",{style:{textAlign:"center"},children:(0,s.jsx)("b",{children:(0,s.jsx)(a.A,{id:"playground.tryItButton",children:"Try it now!"})})}),(0,s.jsxs)("div",{className:"button-group button-group--block",children:[(0,s.jsx)(c.A,{className:"button button--secondary",to:r,children:"JavaScript"}),(0,s.jsx)(c.A,{className:"button button--secondary",to:n,children:"TypeScript"})]})]})]})})}function g(){return(0,s.jsx)("div",{className:"row",children:u.map(e=>(0,s.jsx)(p,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),e.name))})}let h={},b="Playground",m={},f=[];function A(e){let t={a:"a",admonition:"admonition",h1:"h1",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"playground",children:"Playground"})}),"\n",(0,s.jsxs)(t.p,{children:["Playgrounds allow you to run Docusaurus ",(0,s.jsx)(t.strong,{children:"in your browser, without installing anything"}),"!"]}),"\n",(0,s.jsx)(t.p,{children:"They are mostly useful for:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Testing Docusaurus"}),"\n",(0,s.jsx)(t.li,{children:"Reporting bugs"}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["Use ",(0,s.jsx)(t.a,{href:"https://docusaurus.new",children:"docusaurus.new"})," as an easy-to-remember shortcut."]}),"\n",(0,s.jsx)(t.p,{children:"Choose one of the available options below."}),"\n","\n",(0,s.jsx)(g,{}),"\n",(0,s.jsx)(t.admonition,{type:"tip",children:(0,s.jsxs)(t.p,{children:["For convenience, we'll remember your choice next time you visit ",(0,s.jsx)(t.a,{href:"https://docusaurus.new",children:"docusaurus.new"}),"."]})})]})}function x(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(A,{...e})}):A(e)}},67376:(e,t,r)=>{e.exports={src:{srcSet:r.p+"assets/ideal-img/codesandbox.7906bc4.640.png 640w,"+r.p+"assets/ideal-img/codesandbox.36984ff.1030.png 1030w",images:[{path:r.p+"assets/ideal-img/codesandbox.7906bc4.640.png",width:640,height:355},{path:r.p+"assets/ideal-img/codesandbox.36984ff.1030.png",width:1030,height:571}],src:r.p+"assets/ideal-img/codesandbox.7906bc4.640.png",toString:function(){return r.p+"assets/ideal-img/codesandbox.7906bc4.640.png"},placeholder:void 0,width:640,height:355},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAYAAAD68A/GAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA7ElEQVR4nB3Ov0rDQACA8ZszxVrvLpfYu0goUWtQwT+IOtRasrg6WQdbhL5BHZwEoaVIaXHpC6irxc3JxUVfw01wcHD7pB1+07d8orKasb1zQLmcUrIxcZwQmEUK85IFrVGBQQcRwtolppIkIQxDlFJsrm+QHx1Tq1bJa3UO9/YRWqtZTNMVXOwozhXI26dcTYbcPo+5ntzTGnQQURQhpaRkLYExSL+IPMnY6p9zNu5QH7WRzV2Ec47QGNJ0mcpahlYBN4MuP/zx9vnB1+83L++vCN/3mVJKzxY8z+Oy2eLp4ZFG44Lh3Yh+t8c/jL9rZrM0xfsAAAAASUVORK5CYII="}},56179:(e,t,r)=>{e.exports={src:{srcSet:r.p+"assets/ideal-img/stackblitz.4ee9b70.640.png 640w,"+r.p+"assets/ideal-img/stackblitz.8ebfdbb.1030.png 1030w",images:[{path:r.p+"assets/ideal-img/stackblitz.4ee9b70.640.png",width:640,height:356},{path:r.p+"assets/ideal-img/stackblitz.8ebfdbb.1030.png",width:1030,height:572}],src:r.p+"assets/ideal-img/stackblitz.4ee9b70.640.png",toString:function(){return r.p+"assets/ideal-img/stackblitz.4ee9b70.640.png"},placeholder:void 0,width:640,height:356},preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAYAAAD68A/GAAAACXBIWXMAABYlAAAWJQFJUiTwAAAA2UlEQVR4nB3LvUrDUABA4fsAovbPNs29yb25adKEWlJB8C0rqFOx+BD+ILjbvTiYDiWpUx2zWAIeMcPHmY5I05SLyysm0wxjR+ggbLiej/INvrZ42iKkjvBsgiMDXC+k5/hE4ykvb6+8r1as1x88Pj0jBjJABhP6KmbgWlpdySjJ2G4Ldl876rqmLArEUIV44TnSjFE6pusYonRGvtlQliU/hwOfeY5QJsbYFOlHOCqk3ZNEScZ+/01VVfxCM4jTdp9/J62zpkfHHYZSc3N7x2Jxz3L5wHx+zR8O9nujOJsFvAAAAABJRU5ErkJggg=="}},43023:(e,t,r)=>{"use strict";r.d(t,{R:()=>i,x:()=>a});var n=r(63696);let s={},o=n.createContext(s);function i(e){let 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(s):e.components||s:i(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/71152.39fcddcf.js b/assets/js/71152.39fcddcf.js deleted file mode 100644 index 0363fd9895..0000000000 --- a/assets/js/71152.39fcddcf.js +++ /dev/null @@ -1,134 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[71152],{71152:(t,e,i)=>{i.d(e,{diagram:()=>E});var r=i(17367),s=i(93126),a=i(12441);i(95285),i(31546),i(31234);var n=function(){var t=function(t,e,i,r){for(i=i||{},r=t.length;r--;i[t[r]]=e);return i},e=[1,2],i=[1,5],r=[6,9,11,17,18,20,22,23,24,26],s=[1,15],a=[1,16],n=[1,17],l=[1,18],o=[1,19],c=[1,20],h=[1,24],u=[4,6,9,11,17,18,20,22,23,24,26],y={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,acc_title:18,acc_title_value:19,acc_descr:20,acc_descr_value:21,acc_descr_multiline_value:22,section:23,taskName:24,taskData:25,open_directive:26,type_directive:27,arg_directive:28,close_directive:29,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"acc_title",19:"acc_title_value",20:"acc_descr",21:"acc_descr_value",22:"acc_descr_multiline_value",23:"section",24:"taskName",25:"taskData",26:"open_directive",27:"type_directive",28:"arg_directive",29:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,2],[10,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,i,r,s,a,n){var l=a.length-1;switch(s){case 1:return a[l-1];case 3:case 7:case 8:this.$=[];break;case 4:a[l-1].push(a[l]),this.$=a[l-1];break;case 5:case 6:this.$=a[l];break;case 11:r.setDiagramTitle(a[l].substr(6)),this.$=a[l].substr(6);break;case 12:this.$=a[l].trim(),r.setAccTitle(this.$);break;case 13:case 14:this.$=a[l].trim(),r.setAccDescription(this.$);break;case 15:r.addSection(a[l].substr(8)),this.$=a[l].substr(8);break;case 16:r.addTask(a[l-1],a[l]),this.$="task";break;case 18:r.parseDirective("%%{","open_directive");break;case 19:r.parseDirective(a[l],"type_directive");break;case 20:a[l]=a[l].trim().replace(/'/g,'"'),r.parseDirective(a[l],"arg_directive");break;case 21:r.parseDirective("}%%","close_directive","journey")}},table:[{3:1,4:e,7:3,12:4,26:i},{1:[3]},t(r,[2,3],{5:6}),{3:7,4:e,7:3,12:4,26:i},{13:8,27:[1,9]},{27:[2,18]},{6:[1,10],7:21,8:11,9:[1,12],10:13,11:[1,14],12:4,17:s,18:a,20:n,22:l,23:o,24:c,26:i},{1:[2,2]},{14:22,15:[1,23],29:h},t([15,29],[2,19]),t(r,[2,8],{1:[2,1]}),t(r,[2,4]),{7:21,10:25,12:4,17:s,18:a,20:n,22:l,23:o,24:c,26:i},t(r,[2,6]),t(r,[2,7]),t(r,[2,11]),{19:[1,26]},{21:[1,27]},t(r,[2,14]),t(r,[2,15]),{25:[1,28]},t(r,[2,17]),{11:[1,29]},{16:30,28:[1,31]},{11:[2,21]},t(r,[2,5]),t(r,[2,12]),t(r,[2,13]),t(r,[2,16]),t(u,[2,9]),{14:32,29:h},{29:[2,20]},{11:[1,33]},t(u,[2,10])],defaultActions:{5:[2,18],7:[2,2],24:[2,21],31:[2,20]},parseError:function(t,e){if(e.recoverable)this.trace(t);else{var i=Error(t);throw i.hash=e,i}},parse:function(t){var e=this,i=[0],r=[],s=[null],a=[],n=this.table,l="",o=0,c=0,h=a.slice.call(arguments,1),u=Object.create(this.lexer),y={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(y.yy[p]=this.yy[p]);u.setInput(t,y.yy),y.yy.lexer=u,y.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var d=u.yylloc;a.push(d);var f=u.options&&u.options.ranges;"function"==typeof y.yy.parseError?this.parseError=y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,x,m,k,_,b,v,$,w={};;){if(x=i[i.length-1],this.defaultActions[x]?m=this.defaultActions[x]:(null==g&&(g=function(){var t;return"number"!=typeof(t=r.pop()||u.lex()||1)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}()),m=n[x]&&n[x][g]),void 0===m||!m.length||!m[0]){var M="";for(_ in $=[],n[x])this.terminals_[_]&&_>2&&$.push("'"+this.terminals_[_]+"'");M=u.showPosition?"Parse error on line "+(o+1)+":\n"+u.showPosition()+"\nExpecting "+$.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==g?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(M,{text:u.match,token:this.terminals_[g]||g,line:u.yylineno,loc:d,expected:$})}if(m[0]instanceof Array&&m.length>1)throw Error("Parse Error: multiple actions possible at state: "+x+", token: "+g);switch(m[0]){case 1:i.push(g),s.push(u.yytext),a.push(u.yylloc),i.push(m[1]),g=null,c=u.yyleng,l=u.yytext,o=u.yylineno,d=u.yylloc;break;case 2:if(b=this.productions_[m[1]][1],w.$=s[s.length-b],w._$={first_line:a[a.length-(b||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(b||1)].first_column,last_column:a[a.length-1].last_column},f&&(w._$.range=[a[a.length-(b||1)].range[0],a[a.length-1].range[1]]),void 0!==(k=this.performAction.apply(w,[l,c,o,y.yy,m[1],s,a].concat(h))))return k;b&&(i=i.slice(0,-1*b*2),s=s.slice(0,-1*b),a=a.slice(0,-1*b)),i.push(this.productions_[m[1]][0]),s.push(w.$),a.push(w._$),v=n[i[i.length-2]][i[i.length-1]],i.push(v);break;case 3:return!0}}return!0}};function p(){this.yy={}}return y.lexer={EOF:1,parseError:function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var s=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===r.length?this.yylloc.first_column:0)+r[r.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[s[0],s[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var i,r,s;if(this.options.backtrack_lexer&&(s={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(s.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var a in s)this[a]=s[a];return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,i,r,s=this._currentRules(),a=0;a<s.length;a++)if((i=this._input.match(this.rules[s[a]]))&&(!e||i[0].length>e[0].length)){if(e=i,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,s[a])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,s[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,i,r){switch(i){case 0:return this.begin("open_directive"),26;case 1:return this.begin("type_directive"),27;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),29;case 4:return 28;case 5:case 6:case 8:case 9:break;case 7:return 11;case 10:return 4;case 11:return 17;case 12:return this.begin("acc_title"),18;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),20;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:return 23;case 20:return 24;case 21:return 25;case 22:return 15;case 23:return 6;case 24:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23,24],inclusive:!0}}},p.prototype=y,y.Parser=p,new p}();n.parser=n;let l="",o=[],c=[],h=[],u=function(){let t=[];return c.forEach(e=>{e.people&&t.push(...e.people)}),[...new Set(t)].sort()},y=function(){let t=!0;for(let[e,i]of h.entries())h[e].processed,t=t&&i.processed;return t},p={parseDirective:function(t,e,i){r.m.parseDirective(this,t,e,i)},getConfig:()=>(0,r.c)().journey,clear:function(){o.length=0,c.length=0,l="",h.length=0,(0,r.v)()},setDiagramTitle:r.r,getDiagramTitle:r.t,setAccTitle:r.s,getAccTitle:r.g,setAccDescription:r.b,getAccDescription:r.a,addSection:function(t){l=t,o.push(t)},getSections:function(){return o},getTasks:function(){let t=y(),e=0;for(;!t&&e<100;)t=y(),e++;return c.push(...h),c},addTask:function(t,e){let i=e.substr(1).split(":"),r=0,s=[];1===i.length?(r=Number(i[0]),s=[]):(r=Number(i[0]),s=i[1].split(","));let a=s.map(t=>t.trim()),n={section:l,type:l,people:a,task:t,score:r};h.push(n)},addTaskOrg:function(t){let e={section:l,type:l,description:t,task:t,classes:[]};c.push(e)},getActors:function(){return u()}},d=function(t,e){return(0,a.d)(t,e)},f=function(t,e){let i=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),r=t.append("g");return r.append("circle").attr("cx",e.cx-5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),r.append("circle").attr("cx",e.cx+5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),e.score>3?function(t){let i=(0,s.JLW)().startAngle(Math.PI/2).endAngle(Math.PI/2*3).innerRadius(7.5).outerRadius(15/2.2);t.append("path").attr("class","mouth").attr("d",i).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}(r):e.score<3?function(t){let i=(0,s.JLW)().startAngle(3*Math.PI/2).endAngle(Math.PI/2*5).innerRadius(7.5).outerRadius(15/2.2);t.append("path").attr("class","mouth").attr("d",i).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}(r):function(t){t.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}(r),i},g=function(t,e){let i=t.append("circle");return i.attr("cx",e.cx),i.attr("cy",e.cy),i.attr("class","actor-"+e.pos),i.attr("fill",e.fill),i.attr("stroke",e.stroke),i.attr("r",e.r),void 0!==i.class&&i.attr("class",i.class),void 0!==e.title&&i.append("title").text(e.title),i},x=-1,m=function(){function t(t,e,i,s,a,n,l,o){r(e.append("text").attr("x",i+a/2).attr("y",s+n/2+5).style("font-color",o).style("text-anchor","middle").text(t),l)}function e(t,e,i,s,a,n,l,o,c){let{taskFontSize:h,taskFontFamily:u}=o,y=t.split(/<br\s*\/?>/gi);for(let t=0;t<y.length;t++){let o=t*h-h*(y.length-1)/2,p=e.append("text").attr("x",i+a/2).attr("y",s).attr("fill",c).style("text-anchor","middle").style("font-size",h).style("font-family",u);p.append("tspan").attr("x",i+a/2).attr("dy",o).text(y[t]),p.attr("y",s+n/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),r(p,l)}}function i(t,i,s,a,n,l,o,c){let h=i.append("switch"),u=h.append("foreignObject").attr("x",s).attr("y",a).attr("width",n).attr("height",l).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");u.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,h,s,a,n,l,o,c),r(u,o)}function r(t,e){for(let i in e)i in e&&t.attr(i,e[i])}return function(r){return"fo"===r.textPlacement?i:"old"===r.textPlacement?t:e}}(),k={drawCircle:g,drawSection:function(t,e,i){let r=t.append("g"),s=(0,a.g)();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=i.width*e.taskCount+i.diagramMarginX*(e.taskCount-1),s.height=i.height,s.class="journey-section section-type-"+e.num,s.rx=3,s.ry=3,d(r,s),m(i)(e.text,r,s.x,s.y,s.width,s.height,{class:"journey-section section-type-"+e.num},i,e.colour)},drawText:function(t,e){return(0,a.f)(t,e)},drawTask:function(t,e,i){let r=e.x+i.width/2,s=t.append("g");x++,s.append("line").attr("id","task"+x).attr("x1",r).attr("y1",e.y).attr("x2",r).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),f(s,{cx:r,cy:300+(5-e.score)*30,score:e.score});let n=(0,a.g)();n.x=e.x,n.y=e.y,n.fill=e.fill,n.width=i.width,n.height=i.height,n.class="task task-type-"+e.num,n.rx=3,n.ry=3,d(s,n);let l=e.x+14;e.people.forEach(t=>{let i=e.actors[t].color;g(s,{cx:l,cy:e.y,r:7,fill:i,stroke:"#000",title:t,pos:e.actors[t].position}),l+=10}),m(i)(e.task,s,n.x,n.y,n.width,n.height,{class:"task"},i,e.colour)},initGraphics:function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")}},_={},b=(0,r.c)().journey,v=b.leftMargin,$={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},updateVal:function(t,e,i,r){void 0===t[e]?t[e]=i:t[e]=r(i,t[e])},updateBounds:function(t,e,i,s){let a=(0,r.c)().journey,n=this,l=0;this.sequenceItems.forEach(function(r){l++;let o=n.sequenceItems.length-l+1;n.updateVal(r,"starty",e-o*a.boxMargin,Math.min),n.updateVal(r,"stopy",s+o*a.boxMargin,Math.max),n.updateVal($.data,"startx",t-o*a.boxMargin,Math.min),n.updateVal($.data,"stopx",i+o*a.boxMargin,Math.max),n.updateVal(r,"startx",t-o*a.boxMargin,Math.min),n.updateVal(r,"stopx",i+o*a.boxMargin,Math.max),n.updateVal($.data,"starty",e-o*a.boxMargin,Math.min),n.updateVal($.data,"stopy",s+o*a.boxMargin,Math.max)})},insert:function(t,e,i,r){let s=Math.min(t,i),a=Math.max(t,i),n=Math.min(e,r),l=Math.max(e,r);this.updateVal($.data,"startx",s,Math.min),this.updateVal($.data,"starty",n,Math.min),this.updateVal($.data,"stopx",a,Math.max),this.updateVal($.data,"stopy",l,Math.max),this.updateBounds(s,n,a,l)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},w=b.sectionFills,M=b.sectionColours,T=function(t,e,i){let s=(0,r.c)().journey,a="",n=i+(2*s.height+s.diagramMarginY),l=0,o="#CCC",c="black",h=0;for(let[i,r]of e.entries()){if(a!==r.section){o=w[l%w.length],h=l%w.length,c=M[l%M.length];let n=0,u=r.section;for(let t=i;t<e.length;t++)if(e[t].section==u)n+=1;else break;let y={x:i*s.taskMargin+i*s.width+v,y:50,text:r.section,fill:o,num:h,colour:c,taskCount:n};k.drawSection(t,y,s),a=r.section,l++}let u=r.people.reduce((t,e)=>(_[e]&&(t[e]=_[e]),t),{});r.x=i*s.taskMargin+i*s.width+v,r.y=n,r.width=s.diagramMarginX,r.height=s.diagramMarginY,r.colour=c,r.fill=o,r.num=h,r.actors=u,k.drawTask(t,r,s),$.insert(r.x,r.y,r.x+r.width+s.taskMargin,450)}},S={setConf:function(t){Object.keys(t).forEach(function(e){b[e]=t[e]})},draw:function(t,e,i,a){let n;let l=(0,r.c)().journey,o=(0,r.c)().securityLevel;"sandbox"===o&&(n=(0,s.Ltv)("#i"+e));let c="sandbox"===o?(0,s.Ltv)(n.nodes()[0].contentDocument.body):(0,s.Ltv)("body");$.init();let h=c.select("#"+e);k.initGraphics(h);let u=a.db.getTasks(),y=a.db.getDiagramTitle(),p=a.db.getActors();for(let t in _)delete _[t];let d=0;p.forEach(t=>{_[t]={color:l.actorColours[d%l.actorColours.length],position:d},d++}),function(t){let e=(0,r.c)().journey,i=60;Object.keys(_).forEach(r=>{let s=_[r].color,a={cx:20,cy:i,r:7,fill:s,stroke:"#000",pos:_[r].position};k.drawCircle(t,a);let n={x:40,y:i+7,fill:"#666",text:r,textMargin:5|e.boxTextMargin};k.drawText(t,n),i+=20})}(h),$.insert(0,0,v,50*Object.keys(_).length),T(h,u,0);let f=$.getBounds();y&&h.append("text").text(y).attr("x",v).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);let g=f.stopy-f.starty+2*l.diagramMarginY,x=v+f.stopx+2*l.diagramMarginX;(0,r.i)(h,g,x,l.useMaxWidth),h.append("line").attr("x1",v).attr("y1",4*l.height).attr("x2",x-v-4).attr("y2",4*l.height).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");let m=y?70:0;h.attr("viewBox",`${f.startx} -25 ${x} ${g+m}`),h.attr("preserveAspectRatio","xMinYMin meet"),h.attr("height",g+m+25)}},E={parser:n,db:p,renderer:S,styles:t=>`.label { - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - color: ${t.textColor}; - } - .mouth { - stroke: #666; - } - - line { - stroke: ${t.textColor} - } - - .legend { - fill: ${t.textColor}; - } - - .label text { - fill: #333; - } - .label { - color: ${t.textColor} - } - - .face { - ${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"}; - stroke: #999; - } - - .node rect, - .node circle, - .node ellipse, - .node polygon, - .node path { - fill: ${t.mainBkg}; - stroke: ${t.nodeBorder}; - stroke-width: 1px; - } - - .node .label { - text-align: center; - } - .node.clickable { - cursor: pointer; - } - - .arrowheadPath { - fill: ${t.arrowheadColor}; - } - - .edgePath .path { - stroke: ${t.lineColor}; - stroke-width: 1.5px; - } - - .flowchart-link { - stroke: ${t.lineColor}; - fill: none; - } - - .edgeLabel { - background-color: ${t.edgeLabelBackground}; - rect { - opacity: 0.5; - } - text-align: center; - } - - .cluster rect { - } - - .cluster text { - fill: ${t.titleColor}; - } - - div.mermaidTooltip { - position: absolute; - text-align: center; - max-width: 200px; - padding: 2px; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - font-size: 12px; - background: ${t.tertiaryColor}; - border: 1px solid ${t.border2}; - border-radius: 2px; - pointer-events: none; - z-index: 100; - } - - .task-type-0, .section-type-0 { - ${t.fillType0?`fill: ${t.fillType0}`:""}; - } - .task-type-1, .section-type-1 { - ${t.fillType0?`fill: ${t.fillType1}`:""}; - } - .task-type-2, .section-type-2 { - ${t.fillType0?`fill: ${t.fillType2}`:""}; - } - .task-type-3, .section-type-3 { - ${t.fillType0?`fill: ${t.fillType3}`:""}; - } - .task-type-4, .section-type-4 { - ${t.fillType0?`fill: ${t.fillType4}`:""}; - } - .task-type-5, .section-type-5 { - ${t.fillType0?`fill: ${t.fillType5}`:""}; - } - .task-type-6, .section-type-6 { - ${t.fillType0?`fill: ${t.fillType6}`:""}; - } - .task-type-7, .section-type-7 { - ${t.fillType0?`fill: ${t.fillType7}`:""}; - } - - .actor-0 { - ${t.actor0?`fill: ${t.actor0}`:""}; - } - .actor-1 { - ${t.actor1?`fill: ${t.actor1}`:""}; - } - .actor-2 { - ${t.actor2?`fill: ${t.actor2}`:""}; - } - .actor-3 { - ${t.actor3?`fill: ${t.actor3}`:""}; - } - .actor-4 { - ${t.actor4?`fill: ${t.actor4}`:""}; - } - .actor-5 { - ${t.actor5?`fill: ${t.actor5}`:""}; - } -`,init:t=>{S.setConf(t.journey),p.clear()}}},12441:(t,e,i)=>{i.d(e,{a:()=>n,b:()=>c,c:()=>o,d:()=>a,e:()=>u,f:()=>l,g:()=>h});var r=i(31546),s=i(17367);let a=(t,e)=>{let i=t.append("rect");if(i.attr("x",e.x),i.attr("y",e.y),i.attr("fill",e.fill),i.attr("stroke",e.stroke),i.attr("width",e.width),i.attr("height",e.height),void 0!==e.rx&&i.attr("rx",e.rx),void 0!==e.ry&&i.attr("ry",e.ry),void 0!==e.attrs)for(let t in e.attrs)i.attr(t,e.attrs[t]);return void 0!==e.class&&i.attr("class",e.class),i},n=(t,e)=>{a(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"}).lower()},l=(t,e)=>{let i=e.text.replace(s.J," "),r=t.append("text");r.attr("x",e.x),r.attr("y",e.y),r.attr("class","legend"),r.style("text-anchor",e.anchor),void 0!==e.class&&r.attr("class",e.class);let a=r.append("tspan");return a.attr("x",e.x+2*e.textMargin),a.text(i),r},o=(t,e,i,s)=>{let a=t.append("image");a.attr("x",e),a.attr("y",i);let n=(0,r.Jf)(s);a.attr("xlink:href",n)},c=(t,e,i,s)=>{let a=t.append("use");a.attr("x",e),a.attr("y",i);let n=(0,r.Jf)(s);a.attr("xlink:href",`#${n}`)},h=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),u=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0})}}]); \ No newline at end of file diff --git a/assets/js/7293.912a95e2.js b/assets/js/7293.912a95e2.js new file mode 100644 index 0000000000..944f9324a0 --- /dev/null +++ b/assets/js/7293.912a95e2.js @@ -0,0 +1,76 @@ +(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7293],{7371:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BLANK_URL=e.relativeFirstCharacters=e.whitespaceEscapeCharsRegex=e.urlSchemeRegex=e.ctrlCharactersRegex=e.htmlCtrlEntityRegex=e.htmlEntitiesRegex=e.invalidProtocolRegex=void 0,e.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im,e.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g,e.htmlCtrlEntityRegex=/&(newline|tab);/gi,e.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,e.urlSchemeRegex=/^.+(:|:)/gim,e.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g,e.relativeFirstCharacters=[".","/"],e.BLANK_URL="about:blank"},31546:(t,e,r)=>{"use strict";e.J=void 0;var i=r(7371);function n(t){try{return decodeURIComponent(t)}catch(e){return t}}e.J=function(t){if(!t)return i.BLANK_URL;var e,r=n(t.trim());do e=(r=n(r=r.replace(i.ctrlCharactersRegex,"").replace(i.htmlEntitiesRegex,function(t,e){return String.fromCharCode(e)}).replace(i.htmlCtrlEntityRegex,"").replace(i.ctrlCharactersRegex,"").replace(i.whitespaceEscapeCharsRegex,"").trim())).match(i.ctrlCharactersRegex)||r.match(i.htmlEntitiesRegex)||r.match(i.htmlCtrlEntityRegex)||r.match(i.whitespaceEscapeCharsRegex);while(e&&e.length>0)var a=r;if(!a)return i.BLANK_URL;if(i.relativeFirstCharacters.indexOf(a[0])>-1)return a;var o=a.trimStart(),s=o.match(i.urlSchemeRegex);if(!s)return a;var l=s[0].toLowerCase().trim();if(i.invalidProtocolRegex.test(l))return i.BLANK_URL;var h=o.replace(/\\/g,"/");if("mailto:"===l||l.includes("://"))return h;if("http:"===l||"https:"===l){if(!URL.canParse(h))return i.BLANK_URL;var c=new URL(h);return c.protocol=c.protocol.toLowerCase(),c.hostname=c.hostname.toLowerCase(),c.toString()}return h}},95285:function(t){var e;e=function(){"use strict";var t="millisecond",e="second",r="minute",i="hour",n="week",a="month",o="quarter",s="year",l="date",h="Invalid Date",c=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,u=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,d=function(t,e,r){var i=String(t);return!i||i.length>=e?t:""+Array(e+1-i.length).join(r)+t},p="en",f={};f[p]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],r=t%100;return"["+t+(e[(r-20)%10]||e[r]||"th")+"]"}};var g="$isDayjsObject",y=function(t){return t instanceof C||!(!t||!t[g])},m=function t(e,r,i){var n;if(!e)return p;if("string"==typeof e){var a=e.toLowerCase();f[a]&&(n=a),r&&(f[a]=r,n=a);var o=e.split("-");if(!n&&o.length>1)return t(o[0])}else{var s=e.name;f[s]=e,n=s}return!i&&n&&(p=n),n||!i&&p},x=function(t,e){if(y(t))return t.clone();var r="object"==typeof e?e:{};return r.date=t,r.args=arguments,new C(r)},b={s:d,z:function(t){var e=-t.utcOffset(),r=Math.abs(e);return(e<=0?"+":"-")+d(Math.floor(r/60),2,"0")+":"+d(r%60,2,"0")},m:function t(e,r){if(e.date()<r.date())return-t(r,e);var i=12*(r.year()-e.year())+(r.month()-e.month()),n=e.clone().add(i,a),o=r-n<0,s=e.clone().add(i+(o?-1:1),a);return+(-(i+(r-n)/(o?n-s:s-n))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(h){return({M:a,y:s,w:n,d:"day",D:l,h:i,m:r,s:e,ms:t,Q:o})[h]||String(h||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}};b.l=m,b.i=y,b.w=function(t,e){return x(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var C=function(){function d(t){this.$L=m(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[g]=!0}var p=d.prototype;return p.parse=function(t){this.$d=function(t){var e=t.date,r=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var i=e.match(c);if(i){var n=i[2]-1||0,a=(i[7]||"0").substring(0,3);return r?new Date(Date.UTC(i[1],n,i[3]||1,i[4]||0,i[5]||0,i[6]||0,a)):new Date(i[1],n,i[3]||1,i[4]||0,i[5]||0,i[6]||0,a)}}return new Date(e)}(t),this.init()},p.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},p.$utils=function(){return b},p.isValid=function(){return this.$d.toString()!==h},p.isSame=function(t,e){var r=x(t);return this.startOf(e)<=r&&r<=this.endOf(e)},p.isAfter=function(t,e){return x(t)<this.startOf(e)},p.isBefore=function(t,e){return this.endOf(e)<x(t)},p.$g=function(t,e,r){return b.u(t)?this[e]:this.set(r,t)},p.unix=function(){return Math.floor(this.valueOf()/1e3)},p.valueOf=function(){return this.$d.getTime()},p.startOf=function(t,o){var h=this,c=!!b.u(o)||o,u=b.p(t),d=function(t,e){var r=b.w(h.$u?Date.UTC(h.$y,e,t):new Date(h.$y,e,t),h);return c?r:r.endOf("day")},p=function(t,e){return b.w(h.toDate()[t].apply(h.toDate("s"),(c?[0,0,0,0]:[23,59,59,999]).slice(e)),h)},f=this.$W,g=this.$M,y=this.$D,m="set"+(this.$u?"UTC":"");switch(u){case s:return c?d(1,0):d(31,11);case a:return c?d(1,g):d(0,g+1);case n:var x=this.$locale().weekStart||0,C=(f<x?f+7:f)-x;return d(c?y-C:y+(6-C),g);case"day":case l:return p(m+"Hours",0);case i:return p(m+"Minutes",1);case r:return p(m+"Seconds",2);case e:return p(m+"Milliseconds",3);default:return this.clone()}},p.endOf=function(t){return this.startOf(t,!1)},p.$set=function(n,o){var h,c=b.p(n),u="set"+(this.$u?"UTC":""),d=((h={}).day=u+"Date",h[l]=u+"Date",h[a]=u+"Month",h[s]=u+"FullYear",h[i]=u+"Hours",h[r]=u+"Minutes",h[e]=u+"Seconds",h[t]=u+"Milliseconds",h)[c],p="day"===c?this.$D+(o-this.$W):o;if(c===a||c===s){var f=this.clone().set(l,1);f.$d[d](p),f.init(),this.$d=f.set(l,Math.min(this.$D,f.daysInMonth())).$d}else d&&this.$d[d](p);return this.init(),this},p.set=function(t,e){return this.clone().$set(t,e)},p.get=function(t){return this[b.p(t)]()},p.add=function(t,o){var l,h=this;t=Number(t);var c=b.p(o),u=function(e){var r=x(h);return b.w(r.date(r.date()+Math.round(e*t)),h)};if(c===a)return this.set(a,this.$M+t);if(c===s)return this.set(s,this.$y+t);if("day"===c)return u(1);if(c===n)return u(7);var d=((l={})[r]=6e4,l[i]=36e5,l[e]=1e3,l)[c]||1,p=this.$d.getTime()+t*d;return b.w(p,this)},p.subtract=function(t,e){return this.add(-1*t,e)},p.format=function(t){var e=this,r=this.$locale();if(!this.isValid())return r.invalidDate||h;var i=t||"YYYY-MM-DDTHH:mm:ssZ",n=b.z(this),a=this.$H,o=this.$m,s=this.$M,l=r.weekdays,c=r.months,d=r.meridiem,p=function(t,r,n,a){return t&&(t[r]||t(e,i))||n[r].slice(0,a)},f=function(t){return b.s(a%12||12,t,"0")},g=d||function(t,e,r){var i=t<12?"AM":"PM";return r?i.toLowerCase():i};return i.replace(u,function(t,i){return i||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return b.s(e.$y,4,"0");case"M":return s+1;case"MM":return b.s(s+1,2,"0");case"MMM":return p(r.monthsShort,s,c,3);case"MMMM":return p(c,s);case"D":return e.$D;case"DD":return b.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return p(r.weekdaysMin,e.$W,l,2);case"ddd":return p(r.weekdaysShort,e.$W,l,3);case"dddd":return l[e.$W];case"H":return String(a);case"HH":return b.s(a,2,"0");case"h":return f(1);case"hh":return f(2);case"a":return g(a,o,!0);case"A":return g(a,o,!1);case"m":return String(o);case"mm":return b.s(o,2,"0");case"s":return String(e.$s);case"ss":return b.s(e.$s,2,"0");case"SSS":return b.s(e.$ms,3,"0");case"Z":return n}return null}(t)||n.replace(":","")})},p.utcOffset=function(){return-(15*Math.round(this.$d.getTimezoneOffset()/15))},p.diff=function(t,l,h){var c,u=this,d=b.p(l),p=x(t),f=(p.utcOffset()-this.utcOffset())*6e4,g=this-p,y=function(){return b.m(u,p)};switch(d){case s:c=y()/12;break;case a:c=y();break;case o:c=y()/3;break;case n:c=(g-f)/6048e5;break;case"day":c=(g-f)/864e5;break;case i:c=g/36e5;break;case r:c=g/6e4;break;case e:c=g/1e3;break;default:c=g}return h?c:b.a(c)},p.daysInMonth=function(){return this.endOf(a).$D},p.$locale=function(){return f[this.$L]},p.locale=function(t,e){if(!t)return this.$L;var r=this.clone(),i=m(t,e,!0);return i&&(r.$L=i),r},p.clone=function(){return b.w(this.$d,this)},p.toDate=function(){return new Date(this.valueOf())},p.toJSON=function(){return this.isValid()?this.toISOString():null},p.toISOString=function(){return this.$d.toISOString()},p.toString=function(){return this.$d.toUTCString()},d}(),k=C.prototype;return x.prototype=k,[["$ms",t],["$s",e],["$m",r],["$H",i],["$W","day"],["$M",a],["$y",s],["$D",l]].forEach(function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}}),x.extend=function(t,e){return t.$i||(t(e,C,x),t.$i=!0),x},x.locale=m,x.isDayjs=y,x.unix=function(t){return x(1e3*t)},x.en=f[p],x.Ls=f,x.p={},x},t.exports=e()},31234:function(t){var e;e=function(){"use strict";let{entries:t,setPrototypeOf:e,isFrozen:r,getPrototypeOf:i,getOwnPropertyDescriptor:n}=Object,{freeze:a,seal:o,create:s}=Object,{apply:l,construct:h}="undefined"!=typeof Reflect&&Reflect;a||(a=function(t){return t}),o||(o=function(t){return t}),l||(l=function(t,e,r){return t.apply(e,r)}),h||(h=function(t,e){return new t(...e)});let c=_(Array.prototype.forEach),u=_(Array.prototype.pop),d=_(Array.prototype.push),p=_(String.prototype.toLowerCase),f=_(String.prototype.toString),g=_(String.prototype.match),y=_(String.prototype.replace),m=_(String.prototype.indexOf),x=_(String.prototype.trim),b=_(Object.prototype.hasOwnProperty),C=_(RegExp.prototype.test),k=(H=TypeError,function(){for(var t=arguments.length,e=Array(t),r=0;r<t;r++)e[r]=arguments[r];return h(H,e)});function _(t){return function(e){for(var r=arguments.length,i=Array(r>1?r-1:0),n=1;n<r;n++)i[n-1]=arguments[n];return l(t,e,i)}}function w(t,i){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:p;e&&e(t,null);let a=i.length;for(;a--;){let e=i[a];if("string"==typeof e){let t=n(e);t!==e&&(r(i)||(i[a]=t),e=t)}t[e]=!0}return t}function v(e){let r=s(null);for(let[i,n]of t(e))b(e,i)&&(Array.isArray(n)?r[i]=function(t){for(let e=0;e<t.length;e++)b(t,e)||(t[e]=null);return t}(n):n&&"object"==typeof n&&n.constructor===Object?r[i]=v(n):r[i]=n);return r}function T(t,e){for(;null!==t;){let r=n(t,e);if(r){if(r.get)return _(r.get);if("function"==typeof r.value)return _(r.value)}t=i(t)}return function(){return null}}let A=a(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),S=a(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),B=a(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),M=a(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),L=a(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),F=a(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),E=a(["#text"]),$=a(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),O=a(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),I=a(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),D=a(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),R=o(/\{\{[\w\W]*|[\w\W]*\}\}/gm),z=o(/<%[\w\W]*|[\w\W]*%>/gm),q=o(/\${[\w\W]*}/gm),N=o(/^data-[\-\w.\u00B7-\uFFFF]/),P=o(/^aria-[\-\w]+$/),K=o(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),j=o(/^(?:\w+script|data):/i),W=o(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),U=o(/^html$/i);var H,Y=Object.freeze({__proto__:null,MUSTACHE_EXPR:R,ERB_EXPR:z,TMPLIT_EXPR:q,DATA_ATTR:N,ARIA_ATTR:P,IS_ALLOWED_URI:K,IS_SCRIPT_OR_DATA:j,ATTR_WHITESPACE:W,DOCTYPE_NAME:U,CUSTOM_ELEMENT:o(/^[a-z][.\w]*(-[.\w]+)+$/i)});let G={element:1,text:3,progressingInstruction:7,comment:8,document:9},Z=function(t,e){if("object"!=typeof t||"function"!=typeof t.createPolicy)return null;let r=null,i="data-tt-policy-suffix";e&&e.hasAttribute(i)&&(r=e.getAttribute(i));let n="dompurify"+(r?"#"+r:"");try{return t.createPolicy(n,{createHTML:t=>t,createScriptURL:t=>t})}catch(t){return console.warn("TrustedTypes policy "+n+" could not be created."),null}};return function e(){let r,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"undefined"==typeof window?null:window,n=t=>e(t);if(n.version="3.1.6",n.removed=[],!i||!i.document||i.document.nodeType!==G.document)return n.isSupported=!1,n;let{document:o}=i,l=o,h=l.currentScript,{DocumentFragment:_,HTMLTemplateElement:R,Node:z,Element:q,NodeFilter:N,NamedNodeMap:P=i.NamedNodeMap||i.MozNamedAttrMap,HTMLFormElement:j,DOMParser:W,trustedTypes:H}=i,V=q.prototype,X=T(V,"cloneNode"),Q=T(V,"remove"),J=T(V,"nextSibling"),tt=T(V,"childNodes"),te=T(V,"parentNode");if("function"==typeof R){let t=o.createElement("template");t.content&&t.content.ownerDocument&&(o=t.content.ownerDocument)}let tr="",{implementation:ti,createNodeIterator:tn,createDocumentFragment:ta,getElementsByTagName:to}=o,{importNode:ts}=l,tl={};n.isSupported="function"==typeof t&&"function"==typeof te&&ti&&void 0!==ti.createHTMLDocument;let{MUSTACHE_EXPR:th,ERB_EXPR:tc,TMPLIT_EXPR:tu,DATA_ATTR:td,ARIA_ATTR:tp,IS_SCRIPT_OR_DATA:tf,ATTR_WHITESPACE:tg,CUSTOM_ELEMENT:ty}=Y,{IS_ALLOWED_URI:tm}=Y,tx=null,tb=w({},[...A,...S,...B,...L,...E]),tC=null,tk=w({},[...$,...O,...I,...D]),t_=Object.seal(s(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),tw=null,tv=null,tT=!0,tA=!0,tS=!1,tB=!0,tM=!1,tL=!0,tF=!1,tE=!1,t$=!1,tO=!1,tI=!1,tD=!1,tR=!0,tz=!1,tq=!0,tN=!1,tP={},tK=null,tj=w({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),tW=null,tU=w({},["audio","video","img","source","image","track"]),tH=null,tY=w({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),tG="http://www.w3.org/1998/Math/MathML",tZ="http://www.w3.org/2000/svg",tV="http://www.w3.org/1999/xhtml",tX=tV,tQ=!1,tJ=null,t0=w({},[tG,tZ,tV],f),t1=null,t2=["application/xhtml+xml","text/html"],t3=null,t5=null,t6=o.createElement("form"),t4=function(t){return t instanceof RegExp||t instanceof Function},t8=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!t5||t5!==t){if(t&&"object"==typeof t||(t={}),t=v(t),t3="application/xhtml+xml"===(t1=-1===t2.indexOf(t.PARSER_MEDIA_TYPE)?"text/html":t.PARSER_MEDIA_TYPE)?f:p,tx=b(t,"ALLOWED_TAGS")?w({},t.ALLOWED_TAGS,t3):tb,tC=b(t,"ALLOWED_ATTR")?w({},t.ALLOWED_ATTR,t3):tk,tJ=b(t,"ALLOWED_NAMESPACES")?w({},t.ALLOWED_NAMESPACES,f):t0,tH=b(t,"ADD_URI_SAFE_ATTR")?w(v(tY),t.ADD_URI_SAFE_ATTR,t3):tY,tW=b(t,"ADD_DATA_URI_TAGS")?w(v(tU),t.ADD_DATA_URI_TAGS,t3):tU,tK=b(t,"FORBID_CONTENTS")?w({},t.FORBID_CONTENTS,t3):tj,tw=b(t,"FORBID_TAGS")?w({},t.FORBID_TAGS,t3):{},tv=b(t,"FORBID_ATTR")?w({},t.FORBID_ATTR,t3):{},tP=!!b(t,"USE_PROFILES")&&t.USE_PROFILES,tT=!1!==t.ALLOW_ARIA_ATTR,tA=!1!==t.ALLOW_DATA_ATTR,tS=t.ALLOW_UNKNOWN_PROTOCOLS||!1,tB=!1!==t.ALLOW_SELF_CLOSE_IN_ATTR,tM=t.SAFE_FOR_TEMPLATES||!1,tL=!1!==t.SAFE_FOR_XML,tF=t.WHOLE_DOCUMENT||!1,tO=t.RETURN_DOM||!1,tI=t.RETURN_DOM_FRAGMENT||!1,tD=t.RETURN_TRUSTED_TYPE||!1,t$=t.FORCE_BODY||!1,tR=!1!==t.SANITIZE_DOM,tz=t.SANITIZE_NAMED_PROPS||!1,tq=!1!==t.KEEP_CONTENT,tN=t.IN_PLACE||!1,tm=t.ALLOWED_URI_REGEXP||K,tX=t.NAMESPACE||tV,t_=t.CUSTOM_ELEMENT_HANDLING||{},t.CUSTOM_ELEMENT_HANDLING&&t4(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(t_.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&&t4(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(t_.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(t_.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),tM&&(tA=!1),tI&&(tO=!0),tP&&(tx=w({},E),tC=[],!0===tP.html&&(w(tx,A),w(tC,$)),!0===tP.svg&&(w(tx,S),w(tC,O),w(tC,D)),!0===tP.svgFilters&&(w(tx,B),w(tC,O),w(tC,D)),!0===tP.mathMl&&(w(tx,L),w(tC,I),w(tC,D))),t.ADD_TAGS&&(tx===tb&&(tx=v(tx)),w(tx,t.ADD_TAGS,t3)),t.ADD_ATTR&&(tC===tk&&(tC=v(tC)),w(tC,t.ADD_ATTR,t3)),t.ADD_URI_SAFE_ATTR&&w(tH,t.ADD_URI_SAFE_ATTR,t3),t.FORBID_CONTENTS&&(tK===tj&&(tK=v(tK)),w(tK,t.FORBID_CONTENTS,t3)),tq&&(tx["#text"]=!0),tF&&w(tx,["html","head","body"]),tx.table&&(w(tx,["tbody"]),delete tw.tbody),t.TRUSTED_TYPES_POLICY){if("function"!=typeof t.TRUSTED_TYPES_POLICY.createHTML)throw k('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof t.TRUSTED_TYPES_POLICY.createScriptURL)throw k('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');tr=(r=t.TRUSTED_TYPES_POLICY).createHTML("")}else void 0===r&&(r=Z(H,h)),null!==r&&"string"==typeof tr&&(tr=r.createHTML(""));a&&a(t),t5=t}},t9=w({},["mi","mo","mn","ms","mtext"]),t7=w({},["foreignobject","annotation-xml"]),et=w({},["title","style","font","a","script"]),ee=w({},[...S,...B,...M]),er=w({},[...L,...F]),ei=function(t){let e=te(t);e&&e.tagName||(e={namespaceURI:tX,tagName:"template"});let r=p(t.tagName),i=p(e.tagName);return!!tJ[t.namespaceURI]&&(t.namespaceURI===tZ?e.namespaceURI===tV?"svg"===r:e.namespaceURI===tG?"svg"===r&&("annotation-xml"===i||t9[i]):!!ee[r]:t.namespaceURI===tG?e.namespaceURI===tV?"math"===r:e.namespaceURI===tZ?"math"===r&&t7[i]:!!er[r]:t.namespaceURI===tV?(e.namespaceURI!==tZ||!!t7[i])&&(e.namespaceURI!==tG||!!t9[i])&&!er[r]&&(et[r]||!ee[r]):"application/xhtml+xml"===t1&&!!tJ[t.namespaceURI])},en=function(t){d(n.removed,{element:t});try{te(t).removeChild(t)}catch(e){Q(t)}},ea=function(t,e){try{d(n.removed,{attribute:e.getAttributeNode(t),from:e})}catch(t){d(n.removed,{attribute:null,from:e})}if(e.removeAttribute(t),"is"===t&&!tC[t]){if(tO||tI)try{en(e)}catch(t){}else try{e.setAttribute(t,"")}catch(t){}}},eo=function(t){let e=null,i=null;if(t$)t="<remove></remove>"+t;else{let e=g(t,/^[\r\n\t ]+/);i=e&&e[0]}"application/xhtml+xml"===t1&&tX===tV&&(t='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+t+"</body></html>");let n=r?r.createHTML(t):t;if(tX===tV)try{e=new W().parseFromString(n,t1)}catch(t){}if(!e||!e.documentElement){e=ti.createDocument(tX,"template",null);try{e.documentElement.innerHTML=tQ?tr:n}catch(t){}}let a=e.body||e.documentElement;return(t&&i&&a.insertBefore(o.createTextNode(i),a.childNodes[0]||null),tX===tV)?to.call(e,tF?"html":"body")[0]:tF?e.documentElement:a},es=function(t){return tn.call(t.ownerDocument||t,t,N.SHOW_ELEMENT|N.SHOW_COMMENT|N.SHOW_TEXT|N.SHOW_PROCESSING_INSTRUCTION|N.SHOW_CDATA_SECTION,null)},el=function(t){return t instanceof j&&("string"!=typeof t.nodeName||"string"!=typeof t.textContent||"function"!=typeof t.removeChild||!(t.attributes instanceof P)||"function"!=typeof t.removeAttribute||"function"!=typeof t.setAttribute||"string"!=typeof t.namespaceURI||"function"!=typeof t.insertBefore||"function"!=typeof t.hasChildNodes)},eh=function(t){return"function"==typeof z&&t instanceof z},ec=function(t,e,r){tl[t]&&c(tl[t],t=>{t.call(n,e,r,t5)})},eu=function(t){let e=null;if(ec("beforeSanitizeElements",t,null),el(t))return en(t),!0;let r=t3(t.nodeName);if(ec("uponSanitizeElement",t,{tagName:r,allowedTags:tx}),t.hasChildNodes()&&!eh(t.firstElementChild)&&C(/<[/\w]/g,t.innerHTML)&&C(/<[/\w]/g,t.textContent)||t.nodeType===G.progressingInstruction||tL&&t.nodeType===G.comment&&C(/<[/\w]/g,t.data))return en(t),!0;if(!tx[r]||tw[r]){if(!tw[r]&&ep(r)&&(t_.tagNameCheck instanceof RegExp&&C(t_.tagNameCheck,r)||t_.tagNameCheck instanceof Function&&t_.tagNameCheck(r)))return!1;if(tq&&!tK[r]){let e=te(t)||t.parentNode,r=tt(t)||t.childNodes;if(r&&e){let i=r.length;for(let n=i-1;n>=0;--n){let i=X(r[n],!0);i.__removalCount=(t.__removalCount||0)+1,e.insertBefore(i,J(t))}}}return en(t),!0}return t instanceof q&&!ei(t)||("noscript"===r||"noembed"===r||"noframes"===r)&&C(/<\/no(script|embed|frames)/i,t.innerHTML)?(en(t),!0):(tM&&t.nodeType===G.text&&(e=t.textContent,c([th,tc,tu],t=>{e=y(e,t," ")}),t.textContent!==e&&(d(n.removed,{element:t.cloneNode()}),t.textContent=e)),ec("afterSanitizeElements",t,null),!1)},ed=function(t,e,r){if(tR&&("id"===e||"name"===e)&&(r in o||r in t6))return!1;if(tA&&!tv[e]&&C(td,e));else if(tT&&C(tp,e));else if(!tC[e]||tv[e]){if(!(ep(t)&&(t_.tagNameCheck instanceof RegExp&&C(t_.tagNameCheck,t)||t_.tagNameCheck instanceof Function&&t_.tagNameCheck(t))&&(t_.attributeNameCheck instanceof RegExp&&C(t_.attributeNameCheck,e)||t_.attributeNameCheck instanceof Function&&t_.attributeNameCheck(e))||"is"===e&&t_.allowCustomizedBuiltInElements&&(t_.tagNameCheck instanceof RegExp&&C(t_.tagNameCheck,r)||t_.tagNameCheck instanceof Function&&t_.tagNameCheck(r))))return!1}else if(tH[e]);else if(C(tm,y(r,tg,"")));else if(("src"===e||"xlink:href"===e||"href"===e)&&"script"!==t&&0===m(r,"data:")&&tW[t]);else if(tS&&!C(tf,y(r,tg,"")));else if(r)return!1;return!0},ep=function(t){return"annotation-xml"!==t&&g(t,ty)},ef=function(t){ec("beforeSanitizeAttributes",t,null);let{attributes:e}=t;if(!e)return;let i={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:tC},a=e.length;for(;a--;){let{name:o,namespaceURI:s,value:l}=e[a],h=t3(o),d="value"===o?l:x(l);if(i.attrName=h,i.attrValue=d,i.keepAttr=!0,i.forceKeepAttr=void 0,ec("uponSanitizeAttribute",t,i),d=i.attrValue,tL&&C(/((--!?|])>)|<\/(style|title)/i,d)){ea(o,t);continue}if(i.forceKeepAttr||(ea(o,t),!i.keepAttr))continue;if(!tB&&C(/\/>/i,d)){ea(o,t);continue}tM&&c([th,tc,tu],t=>{d=y(d,t," ")});let p=t3(t.nodeName);if(ed(p,h,d)){if(tz&&("id"===h||"name"===h)&&(ea(o,t),d="user-content-"+d),r&&"object"==typeof H&&"function"==typeof H.getAttributeType){if(s);else switch(H.getAttributeType(p,h)){case"TrustedHTML":d=r.createHTML(d);break;case"TrustedScriptURL":d=r.createScriptURL(d)}}try{s?t.setAttributeNS(s,o,d):t.setAttribute(o,d),el(t)?en(t):u(n.removed)}catch(t){}}}ec("afterSanitizeAttributes",t,null)},eg=function t(e){let r=null,i=es(e);for(ec("beforeSanitizeShadowDOM",e,null);r=i.nextNode();)ec("uponSanitizeShadowNode",r,null),eu(r)||(r.content instanceof _&&t(r.content),ef(r));ec("afterSanitizeShadowDOM",e,null)};return n.sanitize=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=null,a=null,o=null,s=null;if((tQ=!t)&&(t="<!-->"),"string"!=typeof t&&!eh(t)){if("function"==typeof t.toString){if("string"!=typeof(t=t.toString()))throw k("dirty is not a string, aborting")}else throw k("toString is not a function")}if(!n.isSupported)return t;if(tE||t8(e),n.removed=[],"string"==typeof t&&(tN=!1),tN){if(t.nodeName){let e=t3(t.nodeName);if(!tx[e]||tw[e])throw k("root node is forbidden and cannot be sanitized in-place")}}else if(t instanceof z)(a=(i=eo("<!---->")).ownerDocument.importNode(t,!0)).nodeType===G.element&&"BODY"===a.nodeName?i=a:"HTML"===a.nodeName?i=a:i.appendChild(a);else{if(!tO&&!tM&&!tF&&-1===t.indexOf("<"))return r&&tD?r.createHTML(t):t;if(!(i=eo(t)))return tO?null:tD?tr:""}i&&t$&&en(i.firstChild);let h=es(tN?t:i);for(;o=h.nextNode();)eu(o)||(o.content instanceof _&&eg(o.content),ef(o));if(tN)return t;if(tO){if(tI)for(s=ta.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(tC.shadowroot||tC.shadowrootmode)&&(s=ts.call(l,s,!0)),s}let u=tF?i.outerHTML:i.innerHTML;return tF&&tx["!doctype"]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&C(U,i.ownerDocument.doctype.name)&&(u="<!DOCTYPE "+i.ownerDocument.doctype.name+">\n"+u),tM&&c([th,tc,tu],t=>{u=y(u,t," ")}),r&&tD?r.createHTML(u):u},n.setConfig=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t8(t),tE=!0},n.clearConfig=function(){t5=null,tE=!1},n.isValidAttribute=function(t,e,r){return t5||t8({}),ed(t3(t),t3(e),r)},n.addHook=function(t,e){"function"==typeof e&&(tl[t]=tl[t]||[],d(tl[t],e))},n.removeHook=function(t){if(tl[t])return u(tl[t])},n.removeHooks=function(t){tl[t]&&(tl[t]=[])},n.removeAllHooks=function(){tl={}},n}()},t.exports=e()},97597:(t,e,r)=>{"use strict";function i(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var i=Array.from("string"==typeof t?[t]:t);i[i.length-1]=i[i.length-1].replace(/\r?\n([\t ]*)$/,"");var n=i.reduce(function(t,e){var r=e.match(/\n([\t ]+|(?!\s).)/g);return r?t.concat(r.map(function(t){var e,r;return null!==(r=null===(e=t.match(/[\t ]/g))||void 0===e?void 0:e.length)&&void 0!==r?r:0})):t},[]);if(n.length){var a=RegExp("\n[ ]{"+Math.min.apply(Math,n)+"}","g");i=i.map(function(t){return t.replace(a,"\n")})}i[0]=i[0].replace(/^\r?\n/,"");var o=i[0];return e.forEach(function(t,e){var r=o.match(/(?:^|\n)( *)$/),n=r?r[1]:"",a=t;"string"==typeof t&&t.includes("\n")&&(a=String(t).split("\n").map(function(t,e){return 0===e?t:""+n+t}).join("\n")),o+=a+i[e+1]}),o}r.d(e,{T:()=>i})},89601:(t,e,r)=>{"use strict";function i(t,e){let r;if(void 0===e)for(let e of t)null!=e&&(r<e||void 0===r&&e>=e)&&(r=e);else{let i=-1;for(let n of t)null!=(n=e(n,++i,t))&&(r<n||void 0===r&&n>=n)&&(r=n)}return r}function n(t,e){let r;if(void 0===e)for(let e of t)null!=e&&(r>e||void 0===r&&e>=e)&&(r=e);else{let i=-1;for(let n of t)null!=(n=e(n,++i,t))&&(r>n||void 0===r&&n>=n)&&(r=n)}return r}function a(t){return t}function o(t){return"translate("+t+",0)"}function s(t){return"translate(0,"+t+")"}function l(){return!this.__axis}function h(t,e){var r=[],i=null,n=null,h=6,c=6,u=3,d="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,p=1===t||4===t?-1:1,f=4===t||2===t?"x":"y",g=1===t||3===t?o:s;function y(o){var s=null==i?e.ticks?e.ticks.apply(e,r):e.domain():i,y=null==n?e.tickFormat?e.tickFormat.apply(e,r):a:n,m=Math.max(h,0)+u,x=e.range(),b=+x[0]+d,C=+x[x.length-1]+d,k=(e.bandwidth?function(t,e){return e=Math.max(0,t.bandwidth()-2*e)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}:function(t){return e=>+t(e)})(e.copy(),d),_=o.selection?o.selection():o,w=_.selectAll(".domain").data([null]),v=_.selectAll(".tick").data(s,e).order(),T=v.exit(),A=v.enter().append("g").attr("class","tick"),S=v.select("line"),B=v.select("text");w=w.merge(w.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),v=v.merge(A),S=S.merge(A.append("line").attr("stroke","currentColor").attr(f+"2",p*h)),B=B.merge(A.append("text").attr("fill","currentColor").attr(f,p*m).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),o!==_&&(w=w.transition(o),v=v.transition(o),S=S.transition(o),B=B.transition(o),T=T.transition(o).attr("opacity",1e-6).attr("transform",function(t){return isFinite(t=k(t))?g(t+d):this.getAttribute("transform")}),A.attr("opacity",1e-6).attr("transform",function(t){var e=this.parentNode.__axis;return g((e&&isFinite(e=e(t))?e:k(t))+d)})),T.remove(),w.attr("d",4===t||2===t?c?"M"+p*c+","+b+"H"+d+"V"+C+"H"+p*c:"M"+d+","+b+"V"+C:c?"M"+b+","+p*c+"V"+d+"H"+C+"V"+p*c:"M"+b+","+d+"H"+C),v.attr("opacity",1).attr("transform",function(t){return g(k(t)+d)}),S.attr(f+"2",p*h),B.attr(f,p*m).text(y),_.filter(l).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),_.each(function(){this.__axis=k})}return y.scale=function(t){return arguments.length?(e=t,y):e},y.ticks=function(){return r=Array.from(arguments),y},y.tickArguments=function(t){return arguments.length?(r=null==t?[]:Array.from(t),y):r.slice()},y.tickValues=function(t){return arguments.length?(i=null==t?null:Array.from(t),y):i&&i.slice()},y.tickFormat=function(t){return arguments.length?(n=t,y):n},y.tickSize=function(t){return arguments.length?(h=c=+t,y):h},y.tickSizeInner=function(t){return arguments.length?(h=+t,y):h},y.tickSizeOuter=function(t){return arguments.length?(c=+t,y):c},y.tickPadding=function(t){return arguments.length?(u=+t,y):u},y.offset=function(t){return arguments.length?(d=+t,y):d},y}function c(t){return h(1,t)}function u(t){return h(3,t)}function d(){}function p(t){return null==t?d:function(){return this.querySelector(t)}}function f(){return[]}function g(t){return null==t?f:function(){return this.querySelectorAll(t)}}function y(t){return function(){return this.matches(t)}}function m(t){return function(e){return e.matches(t)}}r.d(e,{JLW:()=>nI,l78:()=>u,tlR:()=>c,qrM:()=>nG,Yu4:()=>nV,IA3:()=>nQ,Wi0:()=>n0,PGM:()=>n1,OEq:()=>n3,y8u:()=>n4,olC:()=>n9,IrU:()=>at,oDi:()=>ai,Q7f:()=>aa,cVp:()=>as,lUB:()=>nz,Lx9:()=>ah,nVG:()=>ay,uxU:()=>am,Xf2:()=>aC,GZz:()=>a_,UPb:()=>av,dyv:()=>aw,bEH:()=>eY,n8j:()=>nP,T9B:()=>i,jkA:()=>n,rLf:()=>nW,WH:()=>function t(){var e,r,i=eJ().unknown(void 0),n=i.domain,a=i.range,o=0,s=1,l=!1,h=0,c=0,u=.5;function d(){var t=n().length,i=s<o,d=i?s:o,p=i?o:s;e=(p-d)/Math.max(1,t-h+2*c),l&&(e=Math.floor(e)),d+=(p-d-e*(t-h))*u,r=e*(1-h),l&&(d=Math.round(d),r=Math.round(r));var f=(function(t,e,r){t=+t,e=+e,r=(n=arguments.length)<2?(e=t,t=0,1):n<3?1:+r;for(var i=-1,n=0|Math.max(0,Math.ceil((e-t)/r)),a=Array(n);++i<n;)a[i]=t+i*r;return a})(t).map(function(t){return d+e*t});return a(i?f.reverse():f)}return delete i.unknown,i.domain=function(t){return arguments.length?(n(t),d()):n()},i.range=function(t){return arguments.length?([o,s]=t,o=+o,s=+s,d()):[o,s]},i.rangeRound=function(t){return[o,s]=t,o=+o,s=+s,l=!0,d()},i.bandwidth=function(){return r},i.step=function(){return e},i.round=function(t){return arguments.length?(l=!!t,d()):l},i.padding=function(t){return arguments.length?(h=Math.min(1,c=+t),d()):h},i.paddingInner=function(t){return arguments.length?(h=Math.min(1,t),d()):h},i.paddingOuter=function(t){return arguments.length?(c=+t,d()):c},i.align=function(t){return arguments.length?(u=Math.max(0,Math.min(1,t)),d()):u},i.copy=function(){return t(n(),[o,s]).round(l).paddingInner(h).paddingOuter(c).align(u)},eG.apply(d(),arguments)},m4Y:()=>function t(){var e,r=rc();return r.copy=function(){return rh(r,t())},eG.apply(r,arguments),e=r.domain,r.ticks=function(t){var r=e();return function(t,e,r){if(e=+e,t=+t,!((r=+r)>0))return[];if(t===e)return[t];let i=e<t,[n,a,o]=i?e3(e,t,r):e3(t,e,r);if(!(a>=n))return[];let s=a-n+1,l=Array(s);if(i){if(o<0)for(let t=0;t<s;++t)l[t]=-((a-t)/o);else for(let t=0;t<s;++t)l[t]=(a-t)*o}else if(o<0)for(let t=0;t<s;++t)l[t]=-((n+t)/o);else for(let t=0;t<s;++t)l[t]=(n+t)*o;return l}(r[0],r[r.length-1],null==t?10:t)},r.tickFormat=function(t,r){var i=e();return function(t,e,r,i){var n,a,o=e6(t,e,r);switch((i=rd(null==i?",f":i)).type){case"s":var s=Math.max(Math.abs(t),Math.abs(e));return null!=i.precision||isNaN(a=Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(rg(s)/3)))-rg(Math.abs(o))))||(i.precision=a),ts(i,s);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(a=Math.max(0,rg(Math.abs(Math.max(Math.abs(t),Math.abs(e)))-(n=Math.abs(n=o)))-rg(n))+1)||(i.precision=a-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(a=Math.max(0,-rg(Math.abs(o))))||(i.precision=a-("%"===i.type)*2)}return to(i)}(i[0],i[i.length-1],null==t?10:t,r)},r.nice=function(t){null==t&&(t=10);var i,n,a=e(),o=0,s=a.length-1,l=a[o],h=a[s],c=10;for(h<l&&(n=l,l=h,h=n,n=o,o=s,s=n);c-- >0;){if((n=e5(l,h,t))===i)return a[o]=l,a[s]=h,e(a);if(n>0)l=Math.floor(l/n)*n,h=Math.ceil(h/n)*n;else if(n<0)l=Math.ceil(l*n)/n,h=Math.floor(h*n)/n;else break;i=n}return r},r},UMr:()=>eJ,w7C:()=>nl,zt:()=>nh,Ltv:()=>nc,UAC:()=>rL,DCK:()=>th,TUC:()=>rq,Agd:()=>rB,t6C:()=>rv,wXd:()=>rA,ABi:()=>rI,Ui6:()=>rZ,rGn:()=>rN,ucG:()=>rT,YPH:()=>rO,Mol:()=>rz,PGu:()=>rD,GuW:()=>rR});var x=Array.prototype.find;function b(){return this.firstElementChild}var C=Array.prototype.filter;function k(){return Array.from(this.children)}function _(t){return Array(t.length)}function w(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function v(t,e,r,i,n,a){for(var o,s=0,l=e.length,h=a.length;s<h;++s)(o=e[s])?(o.__data__=a[s],i[s]=o):r[s]=new w(t,a[s]);for(;s<l;++s)(o=e[s])&&(n[s]=o)}function T(t,e,r,i,n,a,o){var s,l,h,c=new Map,u=e.length,d=a.length,p=Array(u);for(s=0;s<u;++s)(l=e[s])&&(p[s]=h=o.call(l,l.__data__,s,e)+"",c.has(h)?n[s]=l:c.set(h,l));for(s=0;s<d;++s)h=o.call(t,a[s],s,a)+"",(l=c.get(h))?(i[s]=l,l.__data__=a[s],c.delete(h)):r[s]=new w(t,a[s]);for(s=0;s<u;++s)(l=e[s])&&c.get(p[s])===l&&(n[s]=l)}function A(t){return t.__data__}function S(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}w.prototype={constructor:w,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var B="http://www.w3.org/1999/xhtml";let M={svg:"http://www.w3.org/2000/svg",xhtml:B,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function L(t){var e=t+="",r=e.indexOf(":");return r>=0&&"xmlns"!==(e=t.slice(0,r))&&(t=t.slice(r+1)),M.hasOwnProperty(e)?{space:M[e],local:t}:t}function F(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function E(t,e){return t.style.getPropertyValue(e)||F(t).getComputedStyle(t,null).getPropertyValue(e)}function $(t){return t.trim().split(/^|\s+/)}function O(t){return t.classList||new I(t)}function I(t){this._node=t,this._names=$(t.getAttribute("class")||"")}function D(t,e){for(var r=O(t),i=-1,n=e.length;++i<n;)r.add(e[i])}function R(t,e){for(var r=O(t),i=-1,n=e.length;++i<n;)r.remove(e[i])}function z(){this.textContent=""}function q(){this.innerHTML=""}function N(){this.nextSibling&&this.parentNode.appendChild(this)}function P(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function K(t){var e=L(t);return(e.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===B&&e.documentElement.namespaceURI===B?e.createElement(t):e.createElementNS(r,t)}})(e)}function j(){return null}function W(){var t=this.parentNode;t&&t.removeChild(this)}function U(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function H(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Y(t){return function(){var e=this.__on;if(e){for(var r,i=0,n=-1,a=e.length;i<a;++i)(r=e[i],t.type&&r.type!==t.type||r.name!==t.name)?e[++n]=r:this.removeEventListener(r.type,r.listener,r.options);++n?e.length=n:delete this.__on}}}function G(t,e,r){return function(){var i,n=this.__on,a=function(t){e.call(this,t,this.__data__)};if(n){for(var o=0,s=n.length;o<s;++o)if((i=n[o]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=r),i.value=e;return}}this.addEventListener(t.type,a,r),i={type:t.type,name:t.name,value:e,listener:a,options:r},n?n.push(i):this.__on=[i]}}function Z(t,e,r){var i=F(t),n=i.CustomEvent;"function"==typeof n?n=new n(e,r):(n=i.document.createEvent("Event"),r?(n.initEvent(e,r.bubbles,r.cancelable),n.detail=r.detail):n.initEvent(e,!1,!1)),t.dispatchEvent(n)}I.prototype={add:function(t){0>this._names.indexOf(t)&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var V=[null];function X(t,e){this._groups=t,this._parents=e}function Q(){return new X([[document.documentElement]],V)}X.prototype=Q.prototype={constructor:X,select:function(t){"function"!=typeof t&&(t=p(t));for(var e=this._groups,r=e.length,i=Array(r),n=0;n<r;++n)for(var a,o,s=e[n],l=s.length,h=i[n]=Array(l),c=0;c<l;++c)(a=s[c])&&(o=t.call(a,a.__data__,c,s))&&("__data__"in a&&(o.__data__=a.__data__),h[c]=o);return new X(i,this._parents)},selectAll:function(t){if("function"==typeof t){var e;e=t,t=function(){var t;return t=e.apply(this,arguments),null==t?[]:Array.isArray(t)?t:Array.from(t)}}else t=g(t);for(var r=this._groups,i=r.length,n=[],a=[],o=0;o<i;++o)for(var s,l=r[o],h=l.length,c=0;c<h;++c)(s=l[c])&&(n.push(t.call(s,s.__data__,c,l)),a.push(s));return new X(n,a)},selectChild:function(t){var e;return this.select(null==t?b:(e="function"==typeof t?t:m(t),function(){return x.call(this.children,e)}))},selectChildren:function(t){var e;return this.selectAll(null==t?k:(e="function"==typeof t?t:m(t),function(){return C.call(this.children,e)}))},filter:function(t){"function"!=typeof t&&(t=y(t));for(var e=this._groups,r=e.length,i=Array(r),n=0;n<r;++n)for(var a,o=e[n],s=o.length,l=i[n]=[],h=0;h<s;++h)(a=o[h])&&t.call(a,a.__data__,h,o)&&l.push(a);return new X(i,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,A);var r=e?T:v,i=this._parents,n=this._groups;"function"!=typeof t&&(x=t,t=function(){return x});for(var a=n.length,o=Array(a),s=Array(a),l=Array(a),h=0;h<a;++h){var c=i[h],u=n[h],d=u.length,p="object"==typeof(m=t.call(c,c&&c.__data__,h,i))&&"length"in m?m:Array.from(m),f=p.length,g=s[h]=Array(f),y=o[h]=Array(f);r(c,u,g,y,l[h]=Array(d),p,e);for(var m,x,b,C,k=0,_=0;k<f;++k)if(b=g[k]){for(k>=_&&(_=k+1);!(C=y[_])&&++_<f;);b._next=C||null}}return(o=new X(o,i))._enter=s,o._exit=l,o},enter:function(){return new X(this._enter||this._groups.map(_),this._parents)},exit:function(){return new X(this._exit||this._groups.map(_),this._parents)},join:function(t,e,r){var i=this.enter(),n=this,a=this.exit();return"function"==typeof t?(i=t(i))&&(i=i.selection()):i=i.append(t+""),null!=e&&(n=e(n))&&(n=n.selection()),null==r?a.remove():r(a),i&&n?i.merge(n).order():n},merge:function(t){for(var e=t.selection?t.selection():t,r=this._groups,i=e._groups,n=r.length,a=i.length,o=Math.min(n,a),s=Array(n),l=0;l<o;++l)for(var h,c=r[l],u=i[l],d=c.length,p=s[l]=Array(d),f=0;f<d;++f)(h=c[f]||u[f])&&(p[f]=h);for(;l<n;++l)s[l]=r[l];return new X(s,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,r=t.length;++e<r;)for(var i,n=t[e],a=n.length-1,o=n[a];--a>=0;)(i=n[a])&&(o&&4^i.compareDocumentPosition(o)&&o.parentNode.insertBefore(i,o),o=i);return this},sort:function(t){function e(e,r){return e&&r?t(e.__data__,r.__data__):!e-!r}t||(t=S);for(var r=this._groups,i=r.length,n=Array(i),a=0;a<i;++a){for(var o,s=r[a],l=s.length,h=n[a]=Array(l),c=0;c<l;++c)(o=s[c])&&(h[c]=o);h.sort(e)}return new X(n,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,r=t.length;e<r;++e)for(var i=t[e],n=0,a=i.length;n<a;++n){var o=i[n];if(o)return o}return null},size:function(){let t=0;for(let e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,r=0,i=e.length;r<i;++r)for(var n,a=e[r],o=0,s=a.length;o<s;++o)(n=a[o])&&t.call(n,n.__data__,o,a);return this},attr:function(t,e){var r=L(t);if(arguments.length<2){var i=this.node();return r.local?i.getAttributeNS(r.space,r.local):i.getAttribute(r)}return this.each((null==e?r.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}}:"function"==typeof e?r.local?function(t,e){return function(){var r=e.apply(this,arguments);null==r?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}:function(t,e){return function(){var r=e.apply(this,arguments);null==r?this.removeAttribute(t):this.setAttribute(t,r)}}:r.local?function(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}:function(t,e){return function(){this.setAttribute(t,e)}})(r,e))},style:function(t,e,r){return arguments.length>1?this.each((null==e?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof e?function(t,e,r){return function(){var i=e.apply(this,arguments);null==i?this.style.removeProperty(t):this.style.setProperty(t,i,r)}}:function(t,e,r){return function(){this.style.setProperty(t,e,r)}})(t,e,null==r?"":r)):E(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?function(t){return function(){delete this[t]}}:"function"==typeof e?function(t,e){return function(){var r=e.apply(this,arguments);null==r?delete this[t]:this[t]=r}}:function(t,e){return function(){this[t]=e}})(t,e)):this.node()[t]},classed:function(t,e){var r=$(t+"");if(arguments.length<2){for(var i=O(this.node()),n=-1,a=r.length;++n<a;)if(!i.contains(r[n]))return!1;return!0}return this.each(("function"==typeof e?function(t,e){return function(){(e.apply(this,arguments)?D:R)(this,t)}}:e?function(t){return function(){D(this,t)}}:function(t){return function(){R(this,t)}})(r,e))},text:function(t){return arguments.length?this.each(null==t?z:("function"==typeof t?function(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}:function(t){return function(){this.textContent=t}})(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?q:("function"==typeof t?function(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}:function(t){return function(){this.innerHTML=t}})(t)):this.node().innerHTML},raise:function(){return this.each(N)},lower:function(){return this.each(P)},append:function(t){var e="function"==typeof t?t:K(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})},insert:function(t,e){var r="function"==typeof t?t:K(t),i=null==e?j:"function"==typeof e?e:p(e);return this.select(function(){return this.insertBefore(r.apply(this,arguments),i.apply(this,arguments)||null)})},remove:function(){return this.each(W)},clone:function(t){return this.select(t?H:U)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,r){var i,n,a=(t+"").trim().split(/^|\s+/).map(function(t){var e="",r=t.indexOf(".");return r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),{type:t,name:e}}),o=a.length;if(arguments.length<2){var s=this.node().__on;if(s){for(var l,h=0,c=s.length;h<c;++h)for(i=0,l=s[h];i<o;++i)if((n=a[i]).type===l.type&&n.name===l.name)return l.value}return}for(i=0,s=e?G:Y;i<o;++i)this.each(s(a[i],e,r));return this},dispatch:function(t,e){return this.each(("function"==typeof e?function(t,e){return function(){return Z(this,t,e.apply(this,arguments))}}:function(t,e){return function(){return Z(this,t,e)}})(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,r=t.length;e<r;++e)for(var i,n=t[e],a=0,o=n.length;a<o;++a)(i=n[a])&&(yield i)}};var J={value:()=>{}};function tt(){for(var t,e=0,r=arguments.length,i={};e<r;++e){if(!(t=arguments[e]+"")||t in i||/[\s.]/.test(t))throw Error("illegal type: "+t);i[t]=[]}return new te(i)}function te(t){this._=t}function tr(t,e,r){for(var i=0,n=t.length;i<n;++i)if(t[i].name===e){t[i]=J,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=r&&t.push({name:e,value:r}),t}te.prototype=tt.prototype={constructor:te,on:function(t,e){var r,i=this._,n=(t+"").trim().split(/^|\s+/).map(function(t){var e="",r=t.indexOf(".");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!i.hasOwnProperty(t))throw Error("unknown type: "+t);return{type:t,name:e}}),a=-1,o=n.length;if(arguments.length<2){for(;++a<o;)if((r=(t=n[a]).type)&&(r=function(t,e){for(var r,i=0,n=t.length;i<n;++i)if((r=t[i]).name===e)return r.value}(i[r],t.name)))return r;return}if(null!=e&&"function"!=typeof e)throw Error("invalid callback: "+e);for(;++a<o;)if(r=(t=n[a]).type)i[r]=tr(i[r],t.name,e);else if(null==e)for(r in i)i[r]=tr(i[r],t.name,null);return this},copy:function(){var t={},e=this._;for(var r in e)t[r]=e[r].slice();return new te(t)},call:function(t,e){if((r=arguments.length-2)>0)for(var r,i,n=Array(r),a=0;a<r;++a)n[a]=arguments[a+2];if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(i=this._[t],a=0,r=i.length;a<r;++a)i[a].value.apply(e,n)},apply:function(t,e,r){if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(var i=this._[t],n=0,a=i.length;n<a;++n)i[n].value.apply(e,r)}};var ti,tn,ta,to,ts,tl,th,tc,tu,td=0,tp=0,tf=0,tg=0,ty=0,tm=0,tx="object"==typeof performance&&performance.now?performance:Date,tb="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function tC(){return ty||(tb(tk),ty=tx.now()+tm)}function tk(){ty=0}function t_(){this._call=this._time=this._next=null}function tw(t,e,r){var i=new t_;return i.restart(t,e,r),i}function tv(){ty=(tg=tx.now())+tm,td=tp=0;try{!function(){tC(),++td;for(var t,e=tc;e;)(t=ty-e._time)>=0&&e._call.call(void 0,t),e=e._next;--td}()}finally{td=0,function(){for(var t,e,r=tc,i=1/0;r;)r._call?(i>r._time&&(i=r._time),t=r,r=r._next):(e=r._next,r._next=null,r=t?t._next=e:tc=e);tu=t,tA(i)}(),ty=0}}function tT(){var t=tx.now(),e=t-tg;e>1e3&&(tm-=e,tg=t)}function tA(t){!td&&(tp&&(tp=clearTimeout(tp)),t-ty>24?(t<1/0&&(tp=setTimeout(tv,t-tx.now()-tm)),tf&&(tf=clearInterval(tf))):(tf||(tg=tx.now(),tf=setInterval(tT,1e3)),td=1,tb(tv)))}function tS(t,e,r){var i=new t_;return e=null==e?0:+e,i.restart(r=>{i.stop(),t(r+e)},e,r),i}t_.prototype=tw.prototype={constructor:t_,restart:function(t,e,r){if("function"!=typeof t)throw TypeError("callback is not a function");r=(null==r?tC():+r)+(null==e?0:+e),this._next||tu===this||(tu?tu._next=this:tc=this,tu=this),this._call=t,this._time=r,tA()},stop:function(){this._call&&(this._call=null,this._time=1/0,tA())}};var tB=tt("start","end","cancel","interrupt"),tM=[];function tL(t,e,r,i,n,a){var o=t.__transition;if(o){if(r in o)return}else t.__transition={};!function(t,e,r){var i,n=t.__transition;function a(l){var h,c,u,d;if(1!==r.state)return s();for(h in n)if((d=n[h]).name===r.name){if(3===d.state)return tS(a);4===d.state?(d.state=6,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete n[h]):+h<e&&(d.state=6,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete n[h])}if(tS(function(){3===r.state&&(r.state=4,r.timer.restart(o,r.delay,r.time),o(l))}),r.state=2,r.on.call("start",t,t.__data__,r.index,r.group),2===r.state){for(h=0,r.state=3,i=Array(u=r.tween.length),c=-1;h<u;++h)(d=r.tween[h].value.call(t,t.__data__,r.index,r.group))&&(i[++c]=d);i.length=c+1}}function o(e){for(var n=e<r.duration?r.ease.call(null,e/r.duration):(r.timer.restart(s),r.state=5,1),a=-1,o=i.length;++a<o;)i[a].call(t,n);5===r.state&&(r.on.call("end",t,t.__data__,r.index,r.group),s())}function s(){for(var i in r.state=6,r.timer.stop(),delete n[e],n)return;delete t.__transition}n[e]=r,r.timer=tw(function(t){r.state=1,r.timer.restart(a,r.delay,r.time),r.delay<=t&&a(t-r.delay)},0,r.time)}(t,r,{name:e,index:i,group:n,on:tB,tween:tM,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function tF(t,e){var r=t$(t,e);if(r.state>0)throw Error("too late; already scheduled");return r}function tE(t,e){var r=t$(t,e);if(r.state>3)throw Error("too late; already running");return r}function t$(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw Error("transition not found");return r}function tO(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}var tI=180/Math.PI,tD={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function tR(t,e,r,i,n,a){var o,s,l;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(l=t*r+e*i)&&(r-=t*l,i-=e*l),(s=Math.sqrt(r*r+i*i))&&(r/=s,i/=s,l/=s),t*i<e*r&&(t=-t,e=-e,l=-l,o=-o),{translateX:n,translateY:a,rotate:Math.atan2(e,t)*tI,skewX:Math.atan(l)*tI,scaleX:o,scaleY:s}}function tz(t,e,r,i){function n(t){return t.length?t.pop()+" ":""}return function(a,o){var s,l,h,c,u=[],d=[];return a=t(a),o=t(o),!function(t,i,n,a,o,s){if(t!==n||i!==a){var l=o.push("translate(",null,e,null,r);s.push({i:l-4,x:tO(t,n)},{i:l-2,x:tO(i,a)})}else(n||a)&&o.push("translate("+n+e+a+r)}(a.translateX,a.translateY,o.translateX,o.translateY,u,d),(s=a.rotate)!==(l=o.rotate)?(s-l>180?l+=360:l-s>180&&(s+=360),d.push({i:u.push(n(u)+"rotate(",null,i)-2,x:tO(s,l)})):l&&u.push(n(u)+"rotate("+l+i),(h=a.skewX)!==(c=o.skewX)?d.push({i:u.push(n(u)+"skewX(",null,i)-2,x:tO(h,c)}):c&&u.push(n(u)+"skewX("+c+i),!function(t,e,r,i,a,o){if(t!==r||e!==i){var s=a.push(n(a)+"scale(",null,",",null,")");o.push({i:s-4,x:tO(t,r)},{i:s-2,x:tO(e,i)})}else(1!==r||1!==i)&&a.push(n(a)+"scale("+r+","+i+")")}(a.scaleX,a.scaleY,o.scaleX,o.scaleY,u,d),a=o=null,function(t){for(var e,r=-1,i=d.length;++r<i;)u[(e=d[r]).i]=e.x(t);return u.join("")}}}var tq=tz(function(t){let e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?tD:tR(e.a,e.b,e.c,e.d,e.e,e.f)},"px, ","px)","deg)"),tN=tz(function(t){return null==t?tD:(ti||(ti=document.createElementNS("http://www.w3.org/2000/svg","g")),ti.setAttribute("transform",t),t=ti.transform.baseVal.consolidate())?tR((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):tD},", ",")",")");function tP(t,e,r){var i=t._id;return t.each(function(){var t=tE(this,i);(t.value||(t.value={}))[e]=r.apply(this,arguments)}),function(t){return t$(t,i).value[e]}}function tK(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function tj(t,e){var r=Object.create(t.prototype);for(var i in e)r[i]=e[i];return r}function tW(){}var tU="\\s*([+-]?\\d+)\\s*",tH="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",tY="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",tG=/^#([0-9a-f]{3,8})$/,tZ=RegExp(`^rgb\\(${tU},${tU},${tU}\\)$`),tV=RegExp(`^rgb\\(${tY},${tY},${tY}\\)$`),tX=RegExp(`^rgba\\(${tU},${tU},${tU},${tH}\\)$`),tQ=RegExp(`^rgba\\(${tY},${tY},${tY},${tH}\\)$`),tJ=RegExp(`^hsl\\(${tH},${tY},${tY}\\)$`),t0=RegExp(`^hsla\\(${tH},${tY},${tY},${tH}\\)$`),t1={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function t2(){return this.rgb().formatHex()}function t3(){return this.rgb().formatRgb()}function t5(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=tG.exec(t))?(r=e[1].length,e=parseInt(e[1],16),6===r?t6(e):3===r?new t7(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===r?t4(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===r?t4(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=tZ.exec(t))?new t7(e[1],e[2],e[3],1):(e=tV.exec(t))?new t7(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=tX.exec(t))?t4(e[1],e[2],e[3],e[4]):(e=tQ.exec(t))?t4(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=tJ.exec(t))?ea(e[1],e[2]/100,e[3]/100,1):(e=t0.exec(t))?ea(e[1],e[2]/100,e[3]/100,e[4]):t1.hasOwnProperty(t)?t6(t1[t]):"transparent"===t?new t7(NaN,NaN,NaN,0):null}function t6(t){return new t7(t>>16&255,t>>8&255,255&t,1)}function t4(t,e,r,i){return i<=0&&(t=e=r=NaN),new t7(t,e,r,i)}function t8(t){return(t instanceof tW||(t=t5(t)),t)?new t7((t=t.rgb()).r,t.g,t.b,t.opacity):new t7}function t9(t,e,r,i){return 1==arguments.length?t8(t):new t7(t,e,r,null==i?1:i)}function t7(t,e,r,i){this.r=+t,this.g=+e,this.b=+r,this.opacity=+i}function et(){return`#${en(this.r)}${en(this.g)}${en(this.b)}`}function ee(){let t=er(this.opacity);return`${1===t?"rgb(":"rgba("}${ei(this.r)}, ${ei(this.g)}, ${ei(this.b)}${1===t?")":`, ${t})`}`}function er(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function ei(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function en(t){return((t=ei(t))<16?"0":"")+t.toString(16)}function ea(t,e,r,i){return i<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new es(t,e,r,i)}function eo(t){if(t instanceof es)return new es(t.h,t.s,t.l,t.opacity);if(t instanceof tW||(t=t5(t)),!t)return new es;if(t instanceof es)return t;var e=(t=t.rgb()).r/255,r=t.g/255,i=t.b/255,n=Math.min(e,r,i),a=Math.max(e,r,i),o=NaN,s=a-n,l=(a+n)/2;return s?(o=e===a?(r-i)/s+(r<i)*6:r===a?(i-e)/s+2:(e-r)/s+4,s/=l<.5?a+n:2-a-n,o*=60):s=l>0&&l<1?0:o,new es(o,s,l,t.opacity)}function es(t,e,r,i){this.h=+t,this.s=+e,this.l=+r,this.opacity=+i}function el(t){return(t=(t||0)%360)<0?t+360:t}function eh(t){return Math.max(0,Math.min(1,t||0))}function ec(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}function eu(t,e,r,i,n){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*r+(1+3*t+3*a-3*o)*i+o*n)/6}tK(tW,t5,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:t2,formatHex:t2,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return eo(this).formatHsl()},formatRgb:t3,toString:t3}),tK(t7,t9,tj(tW,{brighter(t){return t=null==t?1.4285714285714286:Math.pow(1.4285714285714286,t),new t7(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new t7(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new t7(ei(this.r),ei(this.g),ei(this.b),er(this.opacity))},displayable(){return -.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:et,formatHex:et,formatHex8:function(){return`#${en(this.r)}${en(this.g)}${en(this.b)}${en((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:ee,toString:ee})),tK(es,function(t,e,r,i){return 1==arguments.length?eo(t):new es(t,e,r,null==i?1:i)},tj(tW,{brighter(t){return t=null==t?1.4285714285714286:Math.pow(1.4285714285714286,t),new es(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new es(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,i=r+(r<.5?r:1-r)*e,n=2*r-i;return new t7(ec(t>=240?t-240:t+120,n,i),ec(t,n,i),ec(t<120?t+240:t-120,n,i),this.opacity)},clamp(){return new es(el(this.h),eh(this.s),eh(this.l),er(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=er(this.opacity);return`${1===t?"hsl(":"hsla("}${el(this.h)}, ${100*eh(this.s)}%, ${100*eh(this.l)}%${1===t?")":`, ${t})`}`}}));let ed=t=>()=>t;function ep(t,e){return function(r){return t+r*e}}function ef(t,e){var r=e-t;return r?ep(t,r):ed(isNaN(t)?e:t)}let eg=function t(e){var r,i=1==(r=+(r=e))?ef:function(t,e){var i,n,a;return e-t?(i=t,n=e,i=Math.pow(i,a=r),n=Math.pow(n,a)-i,a=1/a,function(t){return Math.pow(i+t*n,a)}):ed(isNaN(t)?e:t)};function n(t,e){var r=i((t=t9(t)).r,(e=t9(e)).r),n=i(t.g,e.g),a=i(t.b,e.b),o=ef(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=n(e),t.b=a(e),t.opacity=o(e),t+""}}return n.gamma=t,n}(1);function ey(t){return function(e){var r,i,n=e.length,a=Array(n),o=Array(n),s=Array(n);for(r=0;r<n;++r)i=t9(e[r]),a[r]=i.r||0,o[r]=i.g||0,s[r]=i.b||0;return a=t(a),o=t(o),s=t(s),i.opacity=1,function(t){return i.r=a(t),i.g=o(t),i.b=s(t),i+""}}}ey(function(t){var e=t.length-1;return function(r){var i=r<=0?r=0:r>=1?(r=1,e-1):Math.floor(r*e),n=t[i],a=t[i+1],o=i>0?t[i-1]:2*n-a,s=i<e-1?t[i+2]:2*a-n;return eu((r-i/e)*e,o,n,a,s)}}),ey(function(t){var e=t.length;return function(r){var i=Math.floor(((r%=1)<0?++r:r)*e),n=t[(i+e-1)%e],a=t[i%e],o=t[(i+1)%e],s=t[(i+2)%e];return eu((r-i/e)*e,n,a,o,s)}});var em=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ex=RegExp(em.source,"g");function eb(t,e){var r,i,n,a,o,s=em.lastIndex=ex.lastIndex=0,l=-1,h=[],c=[];for(t+="",e+="";(n=em.exec(t))&&(a=ex.exec(e));)(o=a.index)>s&&(o=e.slice(s,o),h[l]?h[l]+=o:h[++l]=o),(n=n[0])===(a=a[0])?h[l]?h[l]+=a:h[++l]=a:(h[++l]=null,c.push({i:l,x:tO(n,a)})),s=ex.lastIndex;return s<e.length&&(o=e.slice(s),h[l]?h[l]+=o:h[++l]=o),h.length<2?c[0]?(r=c[0].x,function(t){return r(t)+""}):(i=e,function(){return i}):(e=c.length,function(t){for(var r,i=0;i<e;++i)h[(r=c[i]).i]=r.x(t);return h.join("")})}function eC(t,e){var r;return("number"==typeof e?tO:e instanceof t5?eg:(r=t5(e))?(e=r,eg):eb)(t,e)}var ek=Q.prototype.constructor;function e_(t){return function(){this.style.removeProperty(t)}}var ew=0;function ev(t,e,r,i){this._groups=t,this._parents=e,this._name=r,this._id=i}var eT=Q.prototype;ev.prototype=(function(t){return Q().transition(t)}).prototype={constructor:ev,select:function(t){var e=this._name,r=this._id;"function"!=typeof t&&(t=p(t));for(var i=this._groups,n=i.length,a=Array(n),o=0;o<n;++o)for(var s,l,h=i[o],c=h.length,u=a[o]=Array(c),d=0;d<c;++d)(s=h[d])&&(l=t.call(s,s.__data__,d,h))&&("__data__"in s&&(l.__data__=s.__data__),u[d]=l,tL(u[d],e,r,d,u,t$(s,r)));return new ev(a,this._parents,e,r)},selectAll:function(t){var e=this._name,r=this._id;"function"!=typeof t&&(t=g(t));for(var i=this._groups,n=i.length,a=[],o=[],s=0;s<n;++s)for(var l,h=i[s],c=h.length,u=0;u<c;++u)if(l=h[u]){for(var d,p=t.call(l,l.__data__,u,h),f=t$(l,r),y=0,m=p.length;y<m;++y)(d=p[y])&&tL(d,e,r,y,p,f);a.push(p),o.push(l)}return new ev(a,o,e,r)},selectChild:eT.selectChild,selectChildren:eT.selectChildren,filter:function(t){"function"!=typeof t&&(t=y(t));for(var e=this._groups,r=e.length,i=Array(r),n=0;n<r;++n)for(var a,o=e[n],s=o.length,l=i[n]=[],h=0;h<s;++h)(a=o[h])&&t.call(a,a.__data__,h,o)&&l.push(a);return new ev(i,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw Error();for(var e=this._groups,r=t._groups,i=e.length,n=r.length,a=Math.min(i,n),o=Array(i),s=0;s<a;++s)for(var l,h=e[s],c=r[s],u=h.length,d=o[s]=Array(u),p=0;p<u;++p)(l=h[p]||c[p])&&(d[p]=l);for(;s<i;++s)o[s]=e[s];return new ev(o,this._parents,this._name,this._id)},selection:function(){return new ek(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,r=++ew,i=this._groups,n=i.length,a=0;a<n;++a)for(var o,s=i[a],l=s.length,h=0;h<l;++h)if(o=s[h]){var c=t$(o,e);tL(o,t,r,h,s,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new ev(i,this._parents,t,r)},call:eT.call,nodes:eT.nodes,node:eT.node,size:eT.size,empty:eT.empty,each:eT.each,on:function(t,e){var r,i,n,a=this._id;return arguments.length<2?t$(this.node(),a).on.on(t):this.each((n=(t+"").trim().split(/^|\s+/).every(function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t})?tF:tE,function(){var o=n(this,a),s=o.on;s!==r&&(i=(r=s).copy()).on(t,e),o.on=i}))},attr:function(t,e){var r=L(t),i="transform"===r?tN:eC;return this.attrTween(t,"function"==typeof e?(r.local?function(t,e,r){var i,n,a;return function(){var o,s,l=r(this);return null==l?void this.removeAttributeNS(t.space,t.local):(o=this.getAttributeNS(t.space,t.local))===(s=l+"")?null:o===i&&s===n?a:(n=s,a=e(i=o,l))}}:function(t,e,r){var i,n,a;return function(){var o,s,l=r(this);return null==l?void this.removeAttribute(t):(o=this.getAttribute(t))===(s=l+"")?null:o===i&&s===n?a:(n=s,a=e(i=o,l))}})(r,i,tP(this,"attr."+t,e)):null==e?(r.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(r):(r.local?function(t,e,r){var i,n,a=r+"";return function(){var o=this.getAttributeNS(t.space,t.local);return o===a?null:o===i?n:n=e(i=o,r)}}:function(t,e,r){var i,n,a=r+"";return function(){var o=this.getAttribute(t);return o===a?null:o===i?n:n=e(i=o,r)}})(r,i,e))},attrTween:function(t,e){var r="attr."+t;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw Error();var i=L(t);return this.tween(r,(i.local?function(t,e){var r,i;function n(){var n=e.apply(this,arguments);return n!==i&&(r=(i=n)&&function(e){this.setAttributeNS(t.space,t.local,n.call(this,e))}),r}return n._value=e,n}:function(t,e){var r,i;function n(){var n=e.apply(this,arguments);return n!==i&&(r=(i=n)&&function(e){this.setAttribute(t,n.call(this,e))}),r}return n._value=e,n})(i,e))},style:function(t,e,r){var i,n,a,o,s,l,h,c,u,d,p,f,g,y,m,x,b,C,k,_,w,v="transform"==(t+="")?tq:eC;return null==e?this.styleTween(t,(i=t,function(){var t=E(this,i),e=(this.style.removeProperty(i),E(this,i));return t===e?null:t===n&&e===a?o:o=v(n=t,a=e)})).on("end.style."+t,e_(t)):"function"==typeof e?this.styleTween(t,(s=t,l=tP(this,"style."+t,e),function(){var t=E(this,s),e=l(this),r=e+"";return null==e&&(this.style.removeProperty(s),r=e=E(this,s)),t===r?null:t===h&&r===c?u:(c=r,u=v(h=t,e))})).each((d=this._id,b="end."+(x="style."+(p=t)),function(){var t=tE(this,d),e=t.on,r=null==t.value[x]?m||(m=e_(p)):void 0;(e!==f||y!==r)&&(g=(f=e).copy()).on(b,y=r),t.on=g})):this.styleTween(t,(C=t,w=e+"",function(){var t=E(this,C);return t===w?null:t===k?_:_=v(k=t,e)}),r).on("end.style."+t,null)},styleTween:function(t,e,r){var i="style."+(t+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==e)return this.tween(i,null);if("function"!=typeof e)throw Error();return this.tween(i,function(t,e,r){var i,n;function a(){var a=e.apply(this,arguments);return a!==n&&(i=(n=a)&&function(e){this.style.setProperty(t,a.call(this,e),r)}),i}return a._value=e,a}(t,e,null==r?"":r))},text:function(t){var e,r;return this.tween("text","function"==typeof t?(e=tP(this,"text",t),function(){var t=e(this);this.textContent=null==t?"":t}):(r=null==t?"":t+"",function(){this.textContent=r}))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw Error();return this.tween(e,function(t){var e,r;function i(){var i=t.apply(this,arguments);return i!==r&&(e=(r=i)&&function(t){this.textContent=i.call(this,t)}),e}return i._value=t,i}(t))},remove:function(){var t;return this.on("end.remove",(t=this._id,function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}))},tween:function(t,e){var r=this._id;if(t+="",arguments.length<2){for(var i,n=t$(this.node(),r).tween,a=0,o=n.length;a<o;++a)if((i=n[a]).name===t)return i.value;return null}return this.each((null==e?function(t,e){var r,i;return function(){var n=tE(this,t),a=n.tween;if(a!==r){i=r=a;for(var o=0,s=i.length;o<s;++o)if(i[o].name===e){(i=i.slice()).splice(o,1);break}}n.tween=i}}:function(t,e,r){var i,n;if("function"!=typeof r)throw Error();return function(){var a=tE(this,t),o=a.tween;if(o!==i){n=(i=o).slice();for(var s={name:e,value:r},l=0,h=n.length;l<h;++l)if(n[l].name===e){n[l]=s;break}l===h&&n.push(s)}a.tween=n}})(r,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?function(t,e){return function(){tF(this,t).delay=+e.apply(this,arguments)}}:function(t,e){return e=+e,function(){tF(this,t).delay=e}})(e,t)):t$(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?function(t,e){return function(){tE(this,t).duration=+e.apply(this,arguments)}}:function(t,e){return e=+e,function(){tE(this,t).duration=e}})(e,t)):t$(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(function(t,e){if("function"!=typeof e)throw Error();return function(){tE(this,t).ease=e}}(e,t)):t$(this.node(),e).ease},easeVarying:function(t){var e;if("function"!=typeof t)throw Error();return this.each((e=this._id,function(){var r=t.apply(this,arguments);if("function"!=typeof r)throw Error();tE(this,e).ease=r}))},end:function(){var t,e,r=this,i=r._id,n=r.size();return new Promise(function(a,o){var s={value:o},l={value:function(){0==--n&&a()}};r.each(function(){var r=tE(this,i),n=r.on;n!==t&&((e=(t=n).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(l)),r.on=e}),0===n&&a()})},[Symbol.iterator]:eT[Symbol.iterator]};var eA={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};Q.prototype.interrupt=function(t){return this.each(function(){!function(t,e){var r,i,n,a=t.__transition,o=!0;if(a){for(n in e=null==e?null:e+"",a){if((r=a[n]).name!==e){o=!1;continue}i=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete a[n]}o&&delete t.__transition}}(this,t)})},Q.prototype.transition=function(t){var e,r;t instanceof ev?(e=t._id,t=t._name):(e=++ew,(r=eA).time=tC(),t=null==t?null:t+"");for(var i=this._groups,n=i.length,a=0;a<n;++a)for(var o,s=i[a],l=s.length,h=0;h<l;++h)(o=s[h])&&tL(o,t,e,h,s,r||function(t,e){for(var r;!(r=t.__transition)||!(r=r[e]);)if(!(t=t.parentNode))throw Error(`transition ${e} not found`);return r}(o,e));return new ev(i,this._parents,t,e)};let{abs:eS,max:eB,min:eM}=Math;function eL(t){return{type:t}}["w","e"].map(eL),["n","s"].map(eL),["n","w","e","s","nw","ne","sw","se"].map(eL);let eF=Math.PI/180,eE=180/Math.PI,e$=4/29,eO=6/29,eI=6/29*3*(6/29),eD=6/29*(6/29)*(6/29);function eR(t){if(t instanceof ez)return new ez(t.l,t.a,t.b,t.opacity);if(t instanceof eW)return eU(t);t instanceof t7||(t=t8(t));var e,r,i=eK(t.r),n=eK(t.g),a=eK(t.b),o=eq((.2225045*i+.7168786*n+.0606169*a)/1);return i===n&&n===a?e=r=o:(e=eq((.4360747*i+.3850649*n+.1430804*a)/.96422),r=eq((.0139322*i+.0971045*n+.7141733*a)/.82521)),new ez(116*o-16,500*(e-o),200*(o-r),t.opacity)}function ez(t,e,r,i){this.l=+t,this.a=+e,this.b=+r,this.opacity=+i}function eq(t){return t>eD?Math.pow(t,1/3):t/eI+e$}function eN(t){return t>eO?t*t*t:eI*(t-e$)}function eP(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function eK(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function ej(t,e,r,i){return 1==arguments.length?function(t){if(t instanceof eW)return new eW(t.h,t.c,t.l,t.opacity);if(t instanceof ez||(t=eR(t)),0===t.a&&0===t.b)return new eW(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*eE;return new eW(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}(t):new eW(t,e,r,null==i?1:i)}function eW(t,e,r,i){this.h=+t,this.c=+e,this.l=+r,this.opacity=+i}function eU(t){if(isNaN(t.h))return new ez(t.l,0,0,t.opacity);var e=t.h*eF;return new ez(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}function eH(t){return function(e,r){var i=t((e=ej(e)).h,(r=ej(r)).h),n=ef(e.c,r.c),a=ef(e.l,r.l),o=ef(e.opacity,r.opacity);return function(t){return e.h=i(t),e.c=n(t),e.l=a(t),e.opacity=o(t),e+""}}}tK(ez,function(t,e,r,i){return 1==arguments.length?eR(t):new ez(t,e,r,null==i?1:i)},tj(tW,{brighter(t){return new ez(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker(t){return new ez(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return new t7(eP(3.1338561*(e=.96422*eN(e))-1.6168667*(t=1*eN(t))-.4906146*(r=.82521*eN(r))),eP(-.9787684*e+1.9161415*t+.033454*r),eP(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}})),tK(eW,ej,tj(tW,{brighter(t){return new eW(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker(t){return new eW(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb(){return eU(this).rgb()}}));let eY=eH(function(t,e){var r=e-t;return r?ep(t,r>180||r<-180?r-360*Math.round(r/360):r):ed(isNaN(t)?e:t)});function eG(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}eH(ef);class eZ extends Map{constructor(t,e=eX){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=t)for(let[e,r]of t)this.set(e,r)}get(t){return super.get(eV(this,t))}has(t){return super.has(eV(this,t))}set(t,e){return super.set(function({_intern:t,_key:e},r){let i=e(r);return t.has(i)?t.get(i):(t.set(i,r),r)}(this,t),e)}delete(t){return super.delete(function({_intern:t,_key:e},r){let i=e(r);return t.has(i)&&(r=t.get(i),t.delete(i)),r}(this,t))}}function eV({_intern:t,_key:e},r){let i=e(r);return t.has(i)?t.get(i):r}function eX(t){return null!==t&&"object"==typeof t?t.valueOf():t}let eQ=Symbol("implicit");function eJ(){var t=new eZ,e=[],r=[],i=eQ;function n(n){let a=t.get(n);if(void 0===a){if(i!==eQ)return i;t.set(n,a=e.push(n)-1)}return r[a%r.length]}return n.domain=function(r){if(!arguments.length)return e.slice();for(let i of(e=[],t=new eZ,r))t.has(i)||t.set(i,e.push(i)-1);return n},n.range=function(t){return arguments.length?(r=Array.from(t),n):r.slice()},n.unknown=function(t){return arguments.length?(i=t,n):i},n.copy=function(){return eJ(e,r).unknown(i)},eG.apply(n,arguments),n}let e0=Math.sqrt(50),e1=Math.sqrt(10),e2=Math.sqrt(2);function e3(t,e,r){let i,n,a;let o=(e-t)/Math.max(0,r),s=Math.floor(Math.log10(o)),l=o/Math.pow(10,s),h=l>=e0?10:l>=e1?5:l>=e2?2:1;return(s<0?(i=Math.round(t*(a=Math.pow(10,-s)/h)),n=Math.round(e*a),i/a<t&&++i,n/a>e&&--n,a=-a):(i=Math.round(t/(a=Math.pow(10,s)*h)),n=Math.round(e/a),i*a<t&&++i,n*a>e&&--n),n<i&&.5<=r&&r<2)?e3(t,e,2*r):[i,n,a]}function e5(t,e,r){return e3(t=+t,e=+e,r=+r)[2]}function e6(t,e,r){e=+e,t=+t,r=+r;let i=e<t,n=i?e5(e,t,r):e5(t,e,r);return(i?-1:1)*(n<0?-(1/n):n)}function e4(t,e){return null==t||null==e?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function e8(t,e){return null==t||null==e?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function e9(t){let e,r,i;function n(t,i,a=0,o=t.length){if(a<o){if(0!==e(i,i))return o;do{let e=a+o>>>1;0>r(t[e],i)?a=e+1:o=e}while(a<o)}return a}return 2!==t.length?(e=e4,r=(e,r)=>e4(t(e),r),i=(e,r)=>t(e)-r):(e=t===e4||t===e8?t:e7,r=t,i=t),{left:n,center:function(t,e,r=0,a=t.length){let o=n(t,e,r,a-1);return o>r&&i(t[o-1],e)>-i(t[o],e)?o-1:o},right:function(t,i,n=0,a=t.length){if(n<a){if(0!==e(i,i))return a;do{let e=n+a>>>1;0>=r(t[e],i)?n=e+1:a=e}while(n<a)}return n}}}function e7(){return 0}let rt=e9(e4),re=rt.right;function rr(t,e){return t=+t,e=+e,function(r){return Math.round(t*(1-r)+e*r)}}function ri(t){return+t}rt.left,e9(function(t){return null===t?NaN:+t}).center;var rn=[0,1];function ra(t){return t}function ro(t,e){var r;return(e-=t=+t)?function(r){return(r-t)/e}:(r=isNaN(e)?NaN:.5,function(){return r})}function rs(t,e,r){var i=t[0],n=t[1],a=e[0],o=e[1];return n<i?(i=ro(n,i),a=r(o,a)):(i=ro(i,n),a=r(a,o)),function(t){return a(i(t))}}function rl(t,e,r){var i=Math.min(t.length,e.length)-1,n=Array(i),a=Array(i),o=-1;for(t[i]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++o<i;)n[o]=ro(t[o],t[o+1]),a[o]=r(e[o],e[o+1]);return function(e){var r=re(t,e,1,i)-1;return a[r](n[r](e))}}function rh(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function rc(){return(function(){var t,e,r,i,n,a,o=rn,s=rn,l=function t(e,r){var i,n,a=typeof r;return null==r||"boolean"===a?ed(r):("number"===a?tO:"string"===a?(n=t5(r))?(r=n,eg):eb:r instanceof t5?eg:r instanceof Date?function(t,e){var r=new Date;return t=+t,e=+e,function(i){return r.setTime(t*(1-i)+e*i),r}}:!ArrayBuffer.isView(i=r)||i instanceof DataView?Array.isArray(r)?function(e,r){var i,n=r?r.length:0,a=e?Math.min(n,e.length):0,o=Array(a),s=Array(n);for(i=0;i<a;++i)o[i]=t(e[i],r[i]);for(;i<n;++i)s[i]=r[i];return function(t){for(i=0;i<a;++i)s[i]=o[i](t);return s}}:"function"!=typeof r.valueOf&&"function"!=typeof r.toString||isNaN(r)?function(e,r){var i,n={},a={};for(i in(null===e||"object"!=typeof e)&&(e={}),(null===r||"object"!=typeof r)&&(r={}),r)i in e?n[i]=t(e[i],r[i]):a[i]=r[i];return function(t){for(i in n)a[i]=n[i](t);return a}}:tO:function(t,e){e||(e=[]);var r,i=t?Math.min(e.length,t.length):0,n=e.slice();return function(a){for(r=0;r<i;++r)n[r]=t[r]*(1-a)+e[r]*a;return n}})(e,r)},h=ra;function c(){var t,e,r,l=Math.min(o.length,s.length);return h!==ra&&(t=o[0],e=o[l-1],t>e&&(r=t,t=e,e=r),h=function(r){return Math.max(t,Math.min(e,r))}),i=l>2?rl:rs,n=a=null,u}function u(e){return null==e||isNaN(e=+e)?r:(n||(n=i(o.map(t),s,l)))(t(h(e)))}return u.invert=function(r){return h(e((a||(a=i(s,o.map(t),tO)))(r)))},u.domain=function(t){return arguments.length?(o=Array.from(t,ri),c()):o.slice()},u.range=function(t){return arguments.length?(s=Array.from(t),c()):s.slice()},u.rangeRound=function(t){return s=Array.from(t),l=rr,c()},u.clamp=function(t){return arguments.length?(h=!!t||ra,c()):h!==ra},u.interpolate=function(t){return arguments.length?(l=t,c()):l},u.unknown=function(t){return arguments.length?(r=t,u):r},function(r,i){return t=r,e=i,c()}})()(ra,ra)}var ru=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function rd(t){var e;if(!(e=ru.exec(t)))throw Error("invalid format: "+t);return new rp({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function rp(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function rf(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,i=t.slice(0,r);return[i.length>1?i[0]+i.slice(2):i,+t.slice(r+1)]}function rg(t){return(t=rf(Math.abs(t)))?t[1]:NaN}function ry(t,e){var r=rf(t,e);if(!r)return t+"";var i=r[0],n=r[1];return n<0?"0."+Array(-n).join("0")+i:i.length>n+1?i.slice(0,n+1)+"."+i.slice(n+1):i+Array(n-i.length+2).join("0")}rd.prototype=rp.prototype,rp.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};let rm={"%":(t,e)=>(100*t).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>ry(100*t,e),r:ry,s:function(t,e){var r=rf(t,e);if(!r)return t+"";var i=r[0],n=r[1],a=n-(tn=3*Math.max(-8,Math.min(8,Math.floor(n/3))))+1,o=i.length;return a===o?i:a>o?i+Array(a-o+1).join("0"):a>0?i.slice(0,a)+"."+i.slice(a):"0."+Array(1-a).join("0")+rf(t,Math.max(0,e+a-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function rx(t){return t}var rb=Array.prototype.map,rC=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];to=(ta=function(t){var e,r,i,n=void 0===t.grouping||void 0===t.thousands?rx:(e=rb.call(t.grouping,Number),r=t.thousands+"",function(t,i){for(var n=t.length,a=[],o=0,s=e[0],l=0;n>0&&s>0&&(l+s+1>i&&(s=Math.max(1,i-l)),a.push(t.substring(n-=s,n+s)),!((l+=s+1)>i));)s=e[o=(o+1)%e.length];return a.reverse().join(r)}),a=void 0===t.currency?"":t.currency[0]+"",o=void 0===t.currency?"":t.currency[1]+"",s=void 0===t.decimal?".":t.decimal+"",l=void 0===t.numerals?rx:(i=rb.call(t.numerals,String),function(t){return t.replace(/[0-9]/g,function(t){return i[+t]})}),h=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"\u2212":t.minus+"",u=void 0===t.nan?"NaN":t.nan+"";function d(t){var e=(t=rd(t)).fill,r=t.align,i=t.sign,d=t.symbol,p=t.zero,f=t.width,g=t.comma,y=t.precision,m=t.trim,x=t.type;"n"===x?(g=!0,x="g"):rm[x]||(void 0===y&&(y=12),m=!0,x="g"),(p||"0"===e&&"="===r)&&(p=!0,e="0",r="=");var b="$"===d?a:"#"===d&&/[boxX]/.test(x)?"0"+x.toLowerCase():"",C="$"===d?o:/[%p]/.test(x)?h:"",k=rm[x],_=/[defgprs%]/.test(x);function w(t){var a,o,h,d=b,w=C;if("c"===x)w=k(t)+w,t="";else{var v=(t=+t)<0||1/t<0;if(t=isNaN(t)?u:k(Math.abs(t),y),m&&(t=function(t){t:for(var e,r=t.length,i=1,n=-1;i<r;++i)switch(t[i]){case".":n=e=i;break;case"0":0===n&&(n=i),e=i;break;default:if(!+t[i])break t;n>0&&(n=0)}return n>0?t.slice(0,n)+t.slice(e+1):t}(t)),v&&0==+t&&"+"!==i&&(v=!1),d=(v?"("===i?i:c:"-"===i||"("===i?"":i)+d,w=("s"===x?rC[8+tn/3]:"")+w+(v&&"("===i?")":""),_){for(a=-1,o=t.length;++a<o;)if(48>(h=t.charCodeAt(a))||h>57){w=(46===h?s+t.slice(a+1):t.slice(a))+w,t=t.slice(0,a);break}}}g&&!p&&(t=n(t,1/0));var T=d.length+t.length+w.length,A=T<f?Array(f-T+1).join(e):"";switch(g&&p&&(t=n(A+t,A.length?f-w.length:1/0),A=""),r){case"<":t=d+t+w+A;break;case"=":t=d+A+t+w;break;case"^":t=A.slice(0,T=A.length>>1)+d+t+w+A.slice(T);break;default:t=A+d+t+w}return l(t)}return y=void 0===y?6:/[gprs]/.test(x)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y)),w.toString=function(){return t+""},w}return{format:d,formatPrefix:function(t,e){var r=d(((t=rd(t)).type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(rg(e)/3))),n=Math.pow(10,-i),a=rC[8+i/3];return function(t){return r(n*t)+a}}}}({thousands:",",grouping:[3],currency:["$",""]})).format,ts=ta.formatPrefix;let rk=new Date,r_=new Date;function rw(t,e,r,i){function n(e){return t(e=0==arguments.length?new Date:new Date(+e)),e}return n.floor=e=>(t(e=new Date(+e)),e),n.ceil=r=>(t(r=new Date(r-1)),e(r,1),t(r),r),n.round=t=>{let e=n(t),r=n.ceil(t);return t-e<r-t?e:r},n.offset=(t,r)=>(e(t=new Date(+t),null==r?1:Math.floor(r)),t),n.range=(r,i,a)=>{let o;let s=[];if(r=n.ceil(r),a=null==a?1:Math.floor(a),!(r<i)||!(a>0))return s;do s.push(o=new Date(+r)),e(r,a),t(r);while(o<r&&r<i)return s},n.filter=r=>rw(e=>{if(e>=e)for(;t(e),!r(e);)e.setTime(e-1)},(t,i)=>{if(t>=t){if(i<0)for(;++i<=0;)for(;e(t,-1),!r(t););else for(;--i>=0;)for(;e(t,1),!r(t););}}),r&&(n.count=(e,i)=>(rk.setTime(+e),r_.setTime(+i),t(rk),t(r_),Math.floor(r(rk,r_))),n.every=t=>isFinite(t=Math.floor(t))&&t>0?t>1?n.filter(i?e=>i(e)%t==0:e=>n.count(0,e)%t==0):n:null),n}let rv=rw(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);rv.every=t=>isFinite(t=Math.floor(t))&&t>0?t>1?rw(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):rv:null,rv.range;let rT=rw(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+1e3*e)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds());rT.range;let rA=rw(t=>{t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds())},(t,e)=>{t.setTime(+t+6e4*e)},(t,e)=>(e-t)/6e4,t=>t.getMinutes());rA.range;let rS=rw(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+6e4*e)},(t,e)=>(e-t)/6e4,t=>t.getUTCMinutes());rS.range;let rB=rw(t=>{t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds()-6e4*t.getMinutes())},(t,e)=>{t.setTime(+t+36e5*e)},(t,e)=>(e-t)/36e5,t=>t.getHours());rB.range;let rM=rw(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+36e5*e)},(t,e)=>(e-t)/36e5,t=>t.getUTCHours());rM.range;let rL=rw(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5,t=>t.getDate()-1);rL.range;let rF=rw(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1);rF.range;let rE=rw(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5));function r$(t){return rw(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(t,e)=>{t.setDate(t.getDate()+7*e)},(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/6048e5)}rE.range;let rO=r$(0),rI=r$(1),rD=r$(2),rR=r$(3),rz=r$(4),rq=r$(5),rN=r$(6);function rP(t){return rw(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+7*e)},(t,e)=>(e-t)/6048e5)}rO.range,rI.range,rD.range,rR.range,rz.range,rq.range,rN.range;let rK=rP(0),rj=rP(1),rW=rP(2),rU=rP(3),rH=rP(4),rY=rP(5),rG=rP(6);rK.range,rj.range,rW.range,rU.range,rH.range,rY.range,rG.range;let rZ=rw(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());rZ.range;let rV=rw(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());rV.range;let rX=rw(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());rX.every=t=>isFinite(t=Math.floor(t))&&t>0?rw(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)}):null,rX.range;let rQ=rw(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());function rJ(t,e,r,i,n,a){let o=[[rT,1,1e3],[rT,5,5e3],[rT,15,15e3],[rT,30,3e4],[a,1,6e4],[a,5,3e5],[a,15,9e5],[a,30,18e5],[n,1,36e5],[n,3,108e5],[n,6,216e5],[n,12,432e5],[i,1,864e5],[i,2,1728e5],[r,1,6048e5],[e,1,2592e6],[e,3,7776e6],[t,1,31536e6]];function s(e,r,i){let n=Math.abs(r-e)/i,a=e9(([,,t])=>t).right(o,n);if(a===o.length)return t.every(e6(e/31536e6,r/31536e6,i));if(0===a)return rv.every(Math.max(e6(e,r,i),1));let[s,l]=o[n/o[a-1][2]<o[a][2]/n?a-1:a];return s.every(l)}return[function(t,e,r){let i=e<t;i&&([t,e]=[e,t]);let n=r&&"function"==typeof r.range?r:s(t,e,r),a=n?n.range(t,+e+1):[];return i?a.reverse():a},s]}rQ.every=t=>isFinite(t=Math.floor(t))&&t>0?rw(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)}):null,rQ.range;let[r0,r1]=rJ(rQ,rV,rK,rE,rM,rS),[r2,r3]=rJ(rX,rZ,rO,rL,rB,rA);function r5(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function r6(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function r4(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}var r8={"-":"",_:" ",0:"0"},r9=/^\s*\d+/,r7=/^%/,it=/[\\^$*+?|[\]().{}]/g;function ie(t,e,r){var i=t<0?"-":"",n=(i?-t:t)+"",a=n.length;return i+(a<r?Array(r-a+1).join(e)+n:n)}function ir(t){return t.replace(it,"\\$&")}function ii(t){return RegExp("^(?:"+t.map(ir).join("|")+")","i")}function ia(t){return new Map(t.map((t,e)=>[t.toLowerCase(),e]))}function io(t,e,r){var i=r9.exec(e.slice(r,r+1));return i?(t.w=+i[0],r+i[0].length):-1}function is(t,e,r){var i=r9.exec(e.slice(r,r+1));return i?(t.u=+i[0],r+i[0].length):-1}function il(t,e,r){var i=r9.exec(e.slice(r,r+2));return i?(t.U=+i[0],r+i[0].length):-1}function ih(t,e,r){var i=r9.exec(e.slice(r,r+2));return i?(t.V=+i[0],r+i[0].length):-1}function ic(t,e,r){var i=r9.exec(e.slice(r,r+2));return i?(t.W=+i[0],r+i[0].length):-1}function iu(t,e,r){var i=r9.exec(e.slice(r,r+4));return i?(t.y=+i[0],r+i[0].length):-1}function id(t,e,r){var i=r9.exec(e.slice(r,r+2));return i?(t.y=+i[0]+(+i[0]>68?1900:2e3),r+i[0].length):-1}function ip(t,e,r){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return i?(t.Z=i[1]?0:-(i[2]+(i[3]||"00")),r+i[0].length):-1}function ig(t,e,r){var i=r9.exec(e.slice(r,r+1));return i?(t.q=3*i[0]-3,r+i[0].length):-1}function iy(t,e,r){var i=r9.exec(e.slice(r,r+2));return i?(t.m=i[0]-1,r+i[0].length):-1}function im(t,e,r){var i=r9.exec(e.slice(r,r+2));return i?(t.d=+i[0],r+i[0].length):-1}function ix(t,e,r){var i=r9.exec(e.slice(r,r+3));return i?(t.m=0,t.d=+i[0],r+i[0].length):-1}function ib(t,e,r){var i=r9.exec(e.slice(r,r+2));return i?(t.H=+i[0],r+i[0].length):-1}function iC(t,e,r){var i=r9.exec(e.slice(r,r+2));return i?(t.M=+i[0],r+i[0].length):-1}function ik(t,e,r){var i=r9.exec(e.slice(r,r+2));return i?(t.S=+i[0],r+i[0].length):-1}function i_(t,e,r){var i=r9.exec(e.slice(r,r+3));return i?(t.L=+i[0],r+i[0].length):-1}function iw(t,e,r){var i=r9.exec(e.slice(r,r+6));return i?(t.L=Math.floor(i[0]/1e3),r+i[0].length):-1}function iv(t,e,r){var i=r7.exec(e.slice(r,r+1));return i?r+i[0].length:-1}function iT(t,e,r){var i=r9.exec(e.slice(r));return i?(t.Q=+i[0],r+i[0].length):-1}function iA(t,e,r){var i=r9.exec(e.slice(r));return i?(t.s=+i[0],r+i[0].length):-1}function iS(t,e){return ie(t.getDate(),e,2)}function iB(t,e){return ie(t.getHours(),e,2)}function iM(t,e){return ie(t.getHours()%12||12,e,2)}function iL(t,e){return ie(1+rL.count(rX(t),t),e,3)}function iF(t,e){return ie(t.getMilliseconds(),e,3)}function iE(t,e){return iF(t,e)+"000"}function i$(t,e){return ie(t.getMonth()+1,e,2)}function iO(t,e){return ie(t.getMinutes(),e,2)}function iI(t,e){return ie(t.getSeconds(),e,2)}function iD(t){var e=t.getDay();return 0===e?7:e}function iR(t,e){return ie(rO.count(rX(t)-1,t),e,2)}function iz(t){var e=t.getDay();return e>=4||0===e?rz(t):rz.ceil(t)}function iq(t,e){return t=iz(t),ie(rz.count(rX(t),t)+(4===rX(t).getDay()),e,2)}function iN(t){return t.getDay()}function iP(t,e){return ie(rI.count(rX(t)-1,t),e,2)}function iK(t,e){return ie(t.getFullYear()%100,e,2)}function ij(t,e){return ie((t=iz(t)).getFullYear()%100,e,2)}function iW(t,e){return ie(t.getFullYear()%1e4,e,4)}function iU(t,e){var r=t.getDay();return ie((t=r>=4||0===r?rz(t):rz.ceil(t)).getFullYear()%1e4,e,4)}function iH(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+ie(e/60|0,"0",2)+ie(e%60,"0",2)}function iY(t,e){return ie(t.getUTCDate(),e,2)}function iG(t,e){return ie(t.getUTCHours(),e,2)}function iZ(t,e){return ie(t.getUTCHours()%12||12,e,2)}function iV(t,e){return ie(1+rF.count(rQ(t),t),e,3)}function iX(t,e){return ie(t.getUTCMilliseconds(),e,3)}function iQ(t,e){return iX(t,e)+"000"}function iJ(t,e){return ie(t.getUTCMonth()+1,e,2)}function i0(t,e){return ie(t.getUTCMinutes(),e,2)}function i1(t,e){return ie(t.getUTCSeconds(),e,2)}function i2(t){var e=t.getUTCDay();return 0===e?7:e}function i3(t,e){return ie(rK.count(rQ(t)-1,t),e,2)}function i5(t){var e=t.getUTCDay();return e>=4||0===e?rH(t):rH.ceil(t)}function i6(t,e){return t=i5(t),ie(rH.count(rQ(t),t)+(4===rQ(t).getUTCDay()),e,2)}function i4(t){return t.getUTCDay()}function i8(t,e){return ie(rj.count(rQ(t)-1,t),e,2)}function i9(t,e){return ie(t.getUTCFullYear()%100,e,2)}function i7(t,e){return ie((t=i5(t)).getUTCFullYear()%100,e,2)}function nt(t,e){return ie(t.getUTCFullYear()%1e4,e,4)}function ne(t,e){var r=t.getUTCDay();return ie((t=r>=4||0===r?rH(t):rH.ceil(t)).getUTCFullYear()%1e4,e,4)}function nr(){return"+0000"}function ni(){return"%"}function nn(t){return+t}function na(t){return Math.floor(+t/1e3)}function no(t){return new Date(t)}function ns(t){return t instanceof Date?+t:+new Date(+t)}function nl(){return eG.apply((function t(e,r,i,n,a,o,s,l,h,c){var u=rc(),d=u.invert,p=u.domain,f=c(".%L"),g=c(":%S"),y=c("%I:%M"),m=c("%I %p"),x=c("%a %d"),b=c("%b %d"),C=c("%B"),k=c("%Y");function _(t){return(h(t)<t?f:l(t)<t?g:s(t)<t?y:o(t)<t?m:n(t)<t?a(t)<t?x:b:i(t)<t?C:k)(t)}return u.invert=function(t){return new Date(d(t))},u.domain=function(t){return arguments.length?p(Array.from(t,ns)):p().map(no)},u.ticks=function(t){var r=p();return e(r[0],r[r.length-1],null==t?10:t)},u.tickFormat=function(t,e){return null==e?_:c(e)},u.nice=function(t){var e,i,n,a,o,s,l,h=p();return t&&"function"==typeof t.range||(t=r(h[0],h[h.length-1],null==t?10:t)),t?p((e=h,i=t,e=e.slice(),a=0,o=e.length-1,s=e[a],(l=e[o])<s&&(n=a,a=o,o=n,n=s,s=l,l=n),e[a]=i.floor(s),e[o]=i.ceil(l),e)):u},u.copy=function(){return rh(u,t(e,r,i,n,a,o,s,l,h,c))},u})(r2,r3,rX,rZ,rO,rL,rB,rA,rT,th).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}th=(tl=function(t){var e=t.dateTime,r=t.date,i=t.time,n=t.periods,a=t.days,o=t.shortDays,s=t.months,l=t.shortMonths,h=ii(n),c=ia(n),u=ii(a),d=ia(a),p=ii(o),f=ia(o),g=ii(s),y=ia(s),m=ii(l),x=ia(l),b={a:function(t){return o[t.getDay()]},A:function(t){return a[t.getDay()]},b:function(t){return l[t.getMonth()]},B:function(t){return s[t.getMonth()]},c:null,d:iS,e:iS,f:iE,g:ij,G:iU,H:iB,I:iM,j:iL,L:iF,m:i$,M:iO,p:function(t){return n[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:nn,s:na,S:iI,u:iD,U:iR,V:iq,w:iN,W:iP,x:null,X:null,y:iK,Y:iW,Z:iH,"%":ni},C={a:function(t){return o[t.getUTCDay()]},A:function(t){return a[t.getUTCDay()]},b:function(t){return l[t.getUTCMonth()]},B:function(t){return s[t.getUTCMonth()]},c:null,d:iY,e:iY,f:iQ,g:i7,G:ne,H:iG,I:iZ,j:iV,L:iX,m:iJ,M:i0,p:function(t){return n[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:nn,s:na,S:i1,u:i2,U:i3,V:i6,w:i4,W:i8,x:null,X:null,y:i9,Y:nt,Z:nr,"%":ni},k={a:function(t,e,r){var i=p.exec(e.slice(r));return i?(t.w=f.get(i[0].toLowerCase()),r+i[0].length):-1},A:function(t,e,r){var i=u.exec(e.slice(r));return i?(t.w=d.get(i[0].toLowerCase()),r+i[0].length):-1},b:function(t,e,r){var i=m.exec(e.slice(r));return i?(t.m=x.get(i[0].toLowerCase()),r+i[0].length):-1},B:function(t,e,r){var i=g.exec(e.slice(r));return i?(t.m=y.get(i[0].toLowerCase()),r+i[0].length):-1},c:function(t,r,i){return v(t,e,r,i)},d:im,e:im,f:iw,g:id,G:iu,H:ib,I:ib,j:ix,L:i_,m:iy,M:iC,p:function(t,e,r){var i=h.exec(e.slice(r));return i?(t.p=c.get(i[0].toLowerCase()),r+i[0].length):-1},q:ig,Q:iT,s:iA,S:ik,u:is,U:il,V:ih,w:io,W:ic,x:function(t,e,i){return v(t,r,e,i)},X:function(t,e,r){return v(t,i,e,r)},y:id,Y:iu,Z:ip,"%":iv};function _(t,e){return function(r){var i,n,a,o=[],s=-1,l=0,h=t.length;for(r instanceof Date||(r=new Date(+r));++s<h;)37===t.charCodeAt(s)&&(o.push(t.slice(l,s)),null!=(n=r8[i=t.charAt(++s)])?i=t.charAt(++s):n="e"===i?" ":"0",(a=e[i])&&(i=a(r,n)),o.push(i),l=s+1);return o.push(t.slice(l,s)),o.join("")}}function w(t,e){return function(r){var i,n,a=r4(1900,void 0,1);if(v(a,t,r+="",0)!=r.length)return null;if("Q"in a)return new Date(a.Q);if("s"in a)return new Date(1e3*a.s+("L"in a?a.L:0));if(!e||"Z"in a||(a.Z=0),"p"in a&&(a.H=a.H%12+12*a.p),void 0===a.m&&(a.m="q"in a?a.q:0),"V"in a){if(a.V<1||a.V>53)return null;"w"in a||(a.w=1),"Z"in a?(i=(n=(i=r6(r4(a.y,0,1))).getUTCDay())>4||0===n?rj.ceil(i):rj(i),i=rF.offset(i,(a.V-1)*7),a.y=i.getUTCFullYear(),a.m=i.getUTCMonth(),a.d=i.getUTCDate()+(a.w+6)%7):(i=(n=(i=r5(r4(a.y,0,1))).getDay())>4||0===n?rI.ceil(i):rI(i),i=rL.offset(i,(a.V-1)*7),a.y=i.getFullYear(),a.m=i.getMonth(),a.d=i.getDate()+(a.w+6)%7)}else("W"in a||"U"in a)&&("w"in a||(a.w="u"in a?a.u%7:"W"in a?1:0),n="Z"in a?r6(r4(a.y,0,1)).getUTCDay():r5(r4(a.y,0,1)).getDay(),a.m=0,a.d="W"in a?(a.w+6)%7+7*a.W-(n+5)%7:a.w+7*a.U-(n+6)%7);return"Z"in a?(a.H+=a.Z/100|0,a.M+=a.Z%100,r6(a)):r5(a)}}function v(t,e,r,i){for(var n,a,o=0,s=e.length,l=r.length;o<s;){if(i>=l)return -1;if(37===(n=e.charCodeAt(o++))){if(!(a=k[(n=e.charAt(o++))in r8?e.charAt(o++):n])||(i=a(t,r,i))<0)return -1}else if(n!=r.charCodeAt(i++))return -1}return i}return b.x=_(r,b),b.X=_(i,b),b.c=_(e,b),C.x=_(r,C),C.X=_(i,C),C.c=_(e,C),{format:function(t){var e=_(t+="",b);return e.toString=function(){return t},e},parse:function(t){var e=w(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=_(t+="",C);return e.toString=function(){return t},e},utcParse:function(t){var e=w(t+="",!0);return e.toString=function(){return t},e}}}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]})).format,tl.parse,tl.utcFormat,tl.utcParse;let nh=function(t){for(var e=t.length/6|0,r=Array(e),i=0;i<e;)r[i]="#"+t.slice(6*i,6*++i);return r}("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");function nc(t){return"string"==typeof t?new X([[document.querySelector(t)]],[document.documentElement]):new X([[t]],V)}function nu(t){return function(){return t}}let nd=Math.abs,np=Math.atan2,nf=Math.cos,ng=Math.max,ny=Math.min,nm=Math.sin,nx=Math.sqrt,nb=Math.PI,nC=nb/2,nk=2*nb;function n_(t){return t>=1?nC:t<=-1?-nC:Math.asin(t)}let nw=Math.PI,nv=2*nw,nT=nv-1e-6;function nA(t){this._+=t[0];for(let e=1,r=t.length;e<r;++e)this._+=arguments[e]+t[e]}class nS{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==t?nA:function(t){let e=Math.floor(t);if(!(e>=0))throw Error(`invalid digits: ${t}`);if(e>15)return nA;let r=10**e;return function(t){this._+=t[0];for(let e=1,i=t.length;e<i;++e)this._+=Math.round(arguments[e]*r)/r+t[e]}}(t)}moveTo(t,e){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,e){this._append`L${this._x1=+t},${this._y1=+e}`}quadraticCurveTo(t,e,r,i){this._append`Q${+t},${+e},${this._x1=+r},${this._y1=+i}`}bezierCurveTo(t,e,r,i,n,a){this._append`C${+t},${+e},${+r},${+i},${this._x1=+n},${this._y1=+a}`}arcTo(t,e,r,i,n){if(t=+t,e=+e,r=+r,i=+i,(n=+n)<0)throw Error(`negative radius: ${n}`);let a=this._x1,o=this._y1,s=r-t,l=i-e,h=a-t,c=o-e,u=h*h+c*c;if(null===this._x1)this._append`M${this._x1=t},${this._y1=e}`;else if(u>1e-6){if(Math.abs(c*s-l*h)>1e-6&&n){let d=r-a,p=i-o,f=s*s+l*l,g=Math.sqrt(f),y=Math.sqrt(u),m=n*Math.tan((nw-Math.acos((f+u-(d*d+p*p))/(2*g*y)))/2),x=m/y,b=m/g;Math.abs(x-1)>1e-6&&this._append`L${t+x*h},${e+x*c}`,this._append`A${n},${n},0,0,${+(c*d>h*p)},${this._x1=t+b*s},${this._y1=e+b*l}`}else this._append`L${this._x1=t},${this._y1=e}`}}arc(t,e,r,i,n,a){if(t=+t,e=+e,a=!!a,(r=+r)<0)throw Error(`negative radius: ${r}`);let o=r*Math.cos(i),s=r*Math.sin(i),l=t+o,h=e+s,c=1^a,u=a?i-n:n-i;null===this._x1?this._append`M${l},${h}`:(Math.abs(this._x1-l)>1e-6||Math.abs(this._y1-h)>1e-6)&&this._append`L${l},${h}`,r&&(u<0&&(u=u%nv+nv),u>nT?this._append`A${r},${r},0,1,${c},${t-o},${e-s}A${r},${r},0,1,${c},${this._x1=l},${this._y1=h}`:u>1e-6&&this._append`A${r},${r},0,${+(u>=nw)},${c},${this._x1=t+r*Math.cos(n)},${this._y1=e+r*Math.sin(n)}`)}rect(t,e,r,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}}function nB(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(null==r)e=null;else{let t=Math.floor(r);if(!(t>=0))throw RangeError(`invalid digits: ${r}`);e=t}return t},()=>new nS(e)}function nM(t){return t.innerRadius}function nL(t){return t.outerRadius}function nF(t){return t.startAngle}function nE(t){return t.endAngle}function n$(t){return t&&t.padAngle}function nO(t,e,r,i,n,a,o){var s=t-r,l=e-i,h=(o?a:-a)/nx(s*s+l*l),c=h*l,u=-h*s,d=t+c,p=e+u,f=r+c,g=i+u,y=(d+f)/2,m=(p+g)/2,x=f-d,b=g-p,C=x*x+b*b,k=n-a,_=d*g-f*p,w=(b<0?-1:1)*nx(ng(0,k*k*C-_*_)),v=(_*b-x*w)/C,T=(-_*x-b*w)/C,A=(_*b+x*w)/C,S=(-_*x+b*w)/C,B=v-y,M=T-m,L=A-y,F=S-m;return B*B+M*M>L*L+F*F&&(v=A,T=S),{cx:v,cy:T,x01:-c,y01:-u,x11:v*(n/k-1),y11:T*(n/k-1)}}function nI(){var t=nM,e=nL,r=nu(0),i=null,n=nF,a=nE,o=n$,s=null,l=nB(h);function h(){var h,c,u=+t.apply(this,arguments),d=+e.apply(this,arguments),p=n.apply(this,arguments)-nC,f=a.apply(this,arguments)-nC,g=nd(f-p),y=f>p;if(s||(s=h=l()),d<u&&(c=d,d=u,u=c),d>1e-12){if(g>nk-1e-12)s.moveTo(d*nf(p),d*nm(p)),s.arc(0,0,d,p,f,!y),u>1e-12&&(s.moveTo(u*nf(f),u*nm(f)),s.arc(0,0,u,f,p,y));else{var m,x,b=p,C=f,k=p,_=f,w=g,v=g,T=o.apply(this,arguments)/2,A=T>1e-12&&(i?+i.apply(this,arguments):nx(u*u+d*d)),S=ny(nd(d-u)/2,+r.apply(this,arguments)),B=S,M=S;if(A>1e-12){var L=n_(A/u*nm(T)),F=n_(A/d*nm(T));(w-=2*L)>1e-12?(L*=y?1:-1,k+=L,_-=L):(w=0,k=_=(p+f)/2),(v-=2*F)>1e-12?(F*=y?1:-1,b+=F,C-=F):(v=0,b=C=(p+f)/2)}var E=d*nf(b),$=d*nm(b),O=u*nf(_),I=u*nm(_);if(S>1e-12){var D,R=d*nf(C),z=d*nm(C),q=u*nf(k),N=u*nm(k);if(g<nb){if(D=function(t,e,r,i,n,a,o,s){var l=r-t,h=i-e,c=o-n,u=s-a,d=u*l-c*h;if(!(d*d<1e-12))return d=(c*(e-a)-u*(t-n))/d,[t+d*l,e+d*h]}(E,$,q,N,R,z,O,I)){var P,K=E-D[0],j=$-D[1],W=R-D[0],U=z-D[1],H=1/nm(((P=(K*W+j*U)/(nx(K*K+j*j)*nx(W*W+U*U)))>1?0:P<-1?nb:Math.acos(P))/2),Y=nx(D[0]*D[0]+D[1]*D[1]);B=ny(S,(u-Y)/(H-1)),M=ny(S,(d-Y)/(H+1))}else B=M=0}}v>1e-12?M>1e-12?(m=nO(q,N,E,$,d,M,y),x=nO(R,z,O,I,d,M,y),s.moveTo(m.cx+m.x01,m.cy+m.y01),M<S?s.arc(m.cx,m.cy,M,np(m.y01,m.x01),np(x.y01,x.x01),!y):(s.arc(m.cx,m.cy,M,np(m.y01,m.x01),np(m.y11,m.x11),!y),s.arc(0,0,d,np(m.cy+m.y11,m.cx+m.x11),np(x.cy+x.y11,x.cx+x.x11),!y),s.arc(x.cx,x.cy,M,np(x.y11,x.x11),np(x.y01,x.x01),!y))):(s.moveTo(E,$),s.arc(0,0,d,b,C,!y)):s.moveTo(E,$),u>1e-12&&w>1e-12?B>1e-12?(m=nO(O,I,R,z,u,-B,y),x=nO(E,$,q,N,u,-B,y),s.lineTo(m.cx+m.x01,m.cy+m.y01),B<S?s.arc(m.cx,m.cy,B,np(m.y01,m.x01),np(x.y01,x.x01),!y):(s.arc(m.cx,m.cy,B,np(m.y01,m.x01),np(m.y11,m.x11),!y),s.arc(0,0,u,np(m.cy+m.y11,m.cx+m.x11),np(x.cy+x.y11,x.cx+x.x11),y),s.arc(x.cx,x.cy,B,np(x.y11,x.x11),np(x.y01,x.x01),!y))):s.arc(0,0,u,_,k,y):s.lineTo(O,I)}}else s.moveTo(0,0);if(s.closePath(),h)return s=null,h+""||null}return h.centroid=function(){var r=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,i=(+n.apply(this,arguments)+ +a.apply(this,arguments))/2-nb/2;return[nf(i)*r,nm(i)*r]},h.innerRadius=function(e){return arguments.length?(t="function"==typeof e?e:nu(+e),h):t},h.outerRadius=function(t){return arguments.length?(e="function"==typeof t?t:nu(+t),h):e},h.cornerRadius=function(t){return arguments.length?(r="function"==typeof t?t:nu(+t),h):r},h.padRadius=function(t){return arguments.length?(i=null==t?null:"function"==typeof t?t:nu(+t),h):i},h.startAngle=function(t){return arguments.length?(n="function"==typeof t?t:nu(+t),h):n},h.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:nu(+t),h):a},h.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:nu(+t),h):o},h.context=function(t){return arguments.length?(s=null==t?null:t,h):s},h}function nD(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function nR(t){this._context=t}function nz(t){return new nR(t)}function nq(t){return t[0]}function nN(t){return t[1]}function nP(t,e){var r=nu(!0),i=null,n=nz,a=null,o=nB(s);function s(s){var l,h,c,u=(s=nD(s)).length,d=!1;for(null==i&&(a=n(c=o())),l=0;l<=u;++l)!(l<u&&r(h=s[l],l,s))===d&&((d=!d)?a.lineStart():a.lineEnd()),d&&a.point(+t(h,l,s),+e(h,l,s));if(c)return a=null,c+""||null}return t="function"==typeof t?t:void 0===t?nq:nu(t),e="function"==typeof e?e:void 0===e?nN:nu(e),s.x=function(e){return arguments.length?(t="function"==typeof e?e:nu(+e),s):t},s.y=function(t){return arguments.length?(e="function"==typeof t?t:nu(+t),s):e},s.defined=function(t){return arguments.length?(r="function"==typeof t?t:nu(!!t),s):r},s.curve=function(t){return arguments.length?(n=t,null!=i&&(a=n(i)),s):n},s.context=function(t){return arguments.length?(null==t?i=a=null:a=n(i=t),s):i},s}function nK(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function nj(t){return t}function nW(){var t=nj,e=nK,r=null,i=nu(0),n=nu(nk),a=nu(0);function o(o){var s,l,h,c,u,d=(o=nD(o)).length,p=0,f=Array(d),g=Array(d),y=+i.apply(this,arguments),m=Math.min(nk,Math.max(-nk,n.apply(this,arguments)-y)),x=Math.min(Math.abs(m)/d,a.apply(this,arguments)),b=x*(m<0?-1:1);for(s=0;s<d;++s)(u=g[f[s]=s]=+t(o[s],s,o))>0&&(p+=u);for(null!=e?f.sort(function(t,r){return e(g[t],g[r])}):null!=r&&f.sort(function(t,e){return r(o[t],o[e])}),s=0,h=p?(m-d*b)/p:0;s<d;++s,y=c)c=y+((u=g[l=f[s]])>0?u*h:0)+b,g[l]={data:o[l],index:s,value:u,startAngle:y,endAngle:c,padAngle:x};return g}return o.value=function(e){return arguments.length?(t="function"==typeof e?e:nu(+e),o):t},o.sortValues=function(t){return arguments.length?(e=t,r=null,o):e},o.sort=function(t){return arguments.length?(r=t,e=null,o):r},o.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:nu(+t),o):i},o.endAngle=function(t){return arguments.length?(n="function"==typeof t?t:nu(+t),o):n},o.padAngle=function(t){return arguments.length?(a="function"==typeof t?t:nu(+t),o):a},o}function nU(){}function nH(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function nY(t){this._context=t}function nG(t){return new nY(t)}function nZ(t){this._context=t}function nV(t){return new nZ(t)}function nX(t){this._context=t}function nQ(t){return new nX(t)}nS.prototype,Array.prototype.slice,nR.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}},nY.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:nH(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:nH(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},nZ.prototype={areaStart:nU,areaEnd:nU,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:nH(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},nX.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,i=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,i):this._context.moveTo(r,i);break;case 3:this._point=4;default:nH(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};class nJ{constructor(t,e){this._context=t,this._x=e}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,e,t,e):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+e)/2,t,this._y0,t,e)}this._x0=t,this._y0=e}}function n0(t){return new nJ(t,!0)}function n1(t){return new nJ(t,!1)}function n2(t,e){this._basis=new nY(t),this._beta=e}n2.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,r=t.length-1;if(r>0)for(var i,n=t[0],a=e[0],o=t[r]-n,s=e[r]-a,l=-1;++l<=r;)i=l/r,this._basis.point(this._beta*t[l]+(1-this._beta)*(n+i*o),this._beta*e[l]+(1-this._beta)*(a+i*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};let n3=function t(e){function r(t){return 1===e?new nY(t):new n2(t,e)}return r.beta=function(e){return t(+e)},r}(.85);function n5(t,e,r){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-r),t._x2,t._y2)}function n6(t,e){this._context=t,this._k=(1-e)/6}n6.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:n5(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:n5(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};let n4=function t(e){function r(t){return new n6(t,e)}return r.tension=function(e){return t(+e)},r}(0);function n8(t,e){this._context=t,this._k=(1-e)/6}n8.prototype={areaStart:nU,areaEnd:nU,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:n5(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};let n9=function t(e){function r(t){return new n8(t,e)}return r.tension=function(e){return t(+e)},r}(0);function n7(t,e){this._context=t,this._k=(1-e)/6}n7.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:n5(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};let at=function t(e){function r(t){return new n7(t,e)}return r.tension=function(e){return t(+e)},r}(0);function ae(t,e,r){var i=t._x1,n=t._y1,a=t._x2,o=t._y2;if(t._l01_a>1e-12){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);i=(i*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,n=(n*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>1e-12){var h=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,c=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*h+t._x1*t._l23_2a-e*t._l12_2a)/c,o=(o*h+t._y1*t._l23_2a-r*t._l12_2a)/c}t._context.bezierCurveTo(i,n,a,o,t._x2,t._y2)}function ar(t,e){this._context=t,this._alpha=e}ar.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:ae(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};let ai=function t(e){function r(t){return e?new ar(t,e):new n6(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function an(t,e){this._context=t,this._alpha=e}an.prototype={areaStart:nU,areaEnd:nU,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:ae(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};let aa=function t(e){function r(t){return e?new an(t,e):new n8(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function ao(t,e){this._context=t,this._alpha=e}ao.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:ae(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};let as=function t(e){function r(t){return e?new ao(t,e):new n7(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function al(t){this._context=t}function ah(t){return new al(t)}function ac(t,e,r){var i=t._x1-t._x0,n=e-t._x1,a=(t._y1-t._y0)/(i||n<0&&-0),o=(r-t._y1)/(n||i<0&&-0);return((a<0?-1:1)+(o<0?-1:1))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs((a*n+o*i)/(i+n)))||0}function au(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function ad(t,e,r){var i=t._x0,n=t._y0,a=t._x1,o=t._y1,s=(a-i)/3;t._context.bezierCurveTo(i+s,n+s*e,a-s,o-s*r,a,o)}function ap(t){this._context=t}function af(t){this._context=new ag(t)}function ag(t){this._context=t}function ay(t){return new ap(t)}function am(t){return new af(t)}function ax(t){this._context=t}function ab(t){var e,r,i=t.length-1,n=Array(i),a=Array(i),o=Array(i);for(n[0]=0,a[0]=2,o[0]=t[0]+2*t[1],e=1;e<i-1;++e)n[e]=1,a[e]=4,o[e]=4*t[e]+2*t[e+1];for(n[i-1]=2,a[i-1]=7,o[i-1]=8*t[i-1]+t[i],e=1;e<i;++e)r=n[e]/a[e-1],a[e]-=r,o[e]-=r*o[e-1];for(n[i-1]=o[i-1]/a[i-1],e=i-2;e>=0;--e)n[e]=(o[e]-n[e+1])/a[e];for(e=0,a[i-1]=(t[i]+n[i-1])/2;e<i-1;++e)a[e]=2*t[e+1]-n[e+1];return[n,a]}function aC(t){return new ax(t)}function ak(t,e){this._context=t,this._t=e}function a_(t){return new ak(t,.5)}function aw(t){return new ak(t,0)}function av(t){return new ak(t,1)}function aT(t,e,r){this.k=t,this.x=e,this.y=r}al.prototype={areaStart:nU,areaEnd:nU,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}},ap.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:ad(this,this._t0,au(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var r=NaN;if(e=+e,(t=+t)!==this._x1||e!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,ad(this,au(this,r=ac(this,t,e)),r);break;default:ad(this,this._t0,r=ac(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}}},(af.prototype=Object.create(ap.prototype)).point=function(t,e){ap.prototype.point.call(this,e,t)},ag.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,r,i,n,a){this._context.bezierCurveTo(e,t,i,r,a,n)}},ax.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,r=t.length;if(r){if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),2===r)this._context.lineTo(t[1],e[1]);else for(var i=ab(t),n=ab(e),a=0,o=1;o<r;++a,++o)this._context.bezierCurveTo(i[0][a],n[0][a],i[1][a],n[1][a],t[o],e[o])}(this._line||0!==this._line&&1===r)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}},ak.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}}this._x=t,this._y=e}},aT.prototype={constructor:aT,scale:function(t){return 1===t?this:new aT(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new aT(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}},new aT(1,0,0),aT.prototype},50373:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var i=r(81283),n=r(70688);let a=class{constructor(){this.type=n.Z.ALL}get(){return this.type}set(t){if(this.type&&this.type!==t)throw Error("Cannot change both RGB and HSL channels at the same time");this.type=t}reset(){this.type=n.Z.ALL}is(t){return this.type===t}},o=new class{constructor(t,e){this.color=e,this.changed=!1,this.data=t,this.type=new a}set(t,e){return this.color=e,this.changed=!1,this.data=t,this.type.type=n.Z.ALL,this}_ensureHSL(){let t=this.data,{h:e,s:r,l:n}=t;void 0===e&&(t.h=i.A.channel.rgb2hsl(t,"h")),void 0===r&&(t.s=i.A.channel.rgb2hsl(t,"s")),void 0===n&&(t.l=i.A.channel.rgb2hsl(t,"l"))}_ensureRGB(){let t=this.data,{r:e,g:r,b:n}=t;void 0===e&&(t.r=i.A.channel.hsl2rgb(t,"r")),void 0===r&&(t.g=i.A.channel.hsl2rgb(t,"g")),void 0===n&&(t.b=i.A.channel.hsl2rgb(t,"b"))}get r(){let t=this.data,e=t.r;return this.type.is(n.Z.HSL)||void 0===e?(this._ensureHSL(),i.A.channel.hsl2rgb(t,"r")):e}get g(){let t=this.data,e=t.g;return this.type.is(n.Z.HSL)||void 0===e?(this._ensureHSL(),i.A.channel.hsl2rgb(t,"g")):e}get b(){let t=this.data,e=t.b;return this.type.is(n.Z.HSL)||void 0===e?(this._ensureHSL(),i.A.channel.hsl2rgb(t,"b")):e}get h(){let t=this.data,e=t.h;return this.type.is(n.Z.RGB)||void 0===e?(this._ensureRGB(),i.A.channel.rgb2hsl(t,"h")):e}get s(){let t=this.data,e=t.s;return this.type.is(n.Z.RGB)||void 0===e?(this._ensureRGB(),i.A.channel.rgb2hsl(t,"s")):e}get l(){let t=this.data,e=t.l;return this.type.is(n.Z.RGB)||void 0===e?(this._ensureRGB(),i.A.channel.rgb2hsl(t,"l")):e}get a(){return this.data.a}set r(t){this.type.set(n.Z.RGB),this.changed=!0,this.data.r=t}set g(t){this.type.set(n.Z.RGB),this.changed=!0,this.data.g=t}set b(t){this.type.set(n.Z.RGB),this.changed=!0,this.data.b=t}set h(t){this.type.set(n.Z.HSL),this.changed=!0,this.data.h=t}set s(t){this.type.set(n.Z.HSL),this.changed=!0,this.data.s=t}set l(t){this.type.set(n.Z.HSL),this.changed=!0,this.data.l=t}set a(t){this.changed=!0,this.data.a=t}}({r:0,g:0,b:0,a:0},"transparent")},112:(t,e,r)=>{"use strict";r.d(e,{A:()=>c});var i=r(50373),n=r(70688);let a={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(35!==t.charCodeAt(0))return;let e=t.match(a.re);if(!e)return;let r=e[1],n=parseInt(r,16),o=r.length,s=o%4==0,l=o>4,h=l?1:17,c=l?8:4,u=s?0:-1,d=l?255:15;return i.A.set({r:(n>>c*(u+3)&d)*h,g:(n>>c*(u+2)&d)*h,b:(n>>c*(u+1)&d)*h,a:s?(n&d)*h/255:1},t)},stringify:t=>{let{r:e,g:r,b:i,a}=t;return a<1?`#${n.Y[Math.round(e)]}${n.Y[Math.round(r)]}${n.Y[Math.round(i)]}${n.Y[Math.round(255*a)]}`:`#${n.Y[Math.round(e)]}${n.Y[Math.round(r)]}${n.Y[Math.round(i)]}`}};var o=r(81283);let s={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:t=>{let e=t.match(s.hueRe);if(e){let[,t,r]=e;switch(r){case"grad":return o.A.channel.clamp.h(.9*parseFloat(t));case"rad":return o.A.channel.clamp.h(180*parseFloat(t)/Math.PI);case"turn":return o.A.channel.clamp.h(360*parseFloat(t))}}return o.A.channel.clamp.h(parseFloat(t))},parse:t=>{let e=t.charCodeAt(0);if(104!==e&&72!==e)return;let r=t.match(s.re);if(!r)return;let[,n,a,l,h,c]=r;return i.A.set({h:s._hue2deg(n),s:o.A.channel.clamp.s(parseFloat(a)),l:o.A.channel.clamp.l(parseFloat(l)),a:h?o.A.channel.clamp.a(c?parseFloat(h)/100:parseFloat(h)):1},t)},stringify:t=>{let{h:e,s:r,l:i,a:n}=t;return n<1?`hsla(${o.A.lang.round(e)}, ${o.A.lang.round(r)}%, ${o.A.lang.round(i)}%, ${n})`:`hsl(${o.A.lang.round(e)}, ${o.A.lang.round(r)}%, ${o.A.lang.round(i)}%)`}},l={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:t=>{t=t.toLowerCase();let e=l.colors[t];if(e)return a.parse(e)},stringify:t=>{let e=a.stringify(t);for(let t in l.colors)if(l.colors[t]===e)return t}},h={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:t=>{let e=t.charCodeAt(0);if(114!==e&&82!==e)return;let r=t.match(h.re);if(!r)return;let[,n,a,s,l,c,u,d,p]=r;return i.A.set({r:o.A.channel.clamp.r(a?2.55*parseFloat(n):parseFloat(n)),g:o.A.channel.clamp.g(l?2.55*parseFloat(s):parseFloat(s)),b:o.A.channel.clamp.b(u?2.55*parseFloat(c):parseFloat(c)),a:d?o.A.channel.clamp.a(p?parseFloat(d)/100:parseFloat(d)):1},t)},stringify:t=>{let{r:e,g:r,b:i,a:n}=t;return n<1?`rgba(${o.A.lang.round(e)}, ${o.A.lang.round(r)}, ${o.A.lang.round(i)}, ${o.A.lang.round(n)})`:`rgb(${o.A.lang.round(e)}, ${o.A.lang.round(r)}, ${o.A.lang.round(i)})`}},c={format:{keyword:l,hex:a,rgb:h,rgba:h,hsl:s,hsla:s},parse:t=>{if("string"!=typeof t)return t;let e=a.parse(t)||h.parse(t)||s.parse(t)||l.parse(t);if(e)return e;throw Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(n.Z.HSL)||void 0===t.data.r?s.stringify(t):!(t.a<1)&&Number.isInteger(t.r)&&Number.isInteger(t.g)&&Number.isInteger(t.b)?a.stringify(t):h.stringify(t)}},70688:(t,e,r)=>{"use strict";r.d(e,{Y:()=>n,Z:()=>a});var i=r(81283);let n={};for(let t=0;t<=255;t++)n[t]=i.A.unit.dec2hex(t);let a={ALL:0,RGB:1,HSL:2}},95433:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});var i=r(81283),n=r(112);let a=(t,e,r)=>{let a=n.A.parse(t),o=a[e],s=i.A.channel.clamp[e](o+r);return o!==s&&(a[e]=s),n.A.stringify(a)}},91946:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});var i=r(81283),n=r(112);let a=(t,e)=>{let r=n.A.parse(t);for(let t in e)r[t]=i.A.channel.clamp[t](e[t]);return n.A.stringify(r)}},57721:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});var i=r(95433);let n=(t,e)=>(0,i.A)(t,"l",-e)},71725:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var i=r(81283),n=r(112);let a=t=>{let{r:e,g:r,b:a}=n.A.parse(t),o=.2126*i.A.channel.toLinear(e)+.7152*i.A.channel.toLinear(r)+.0722*i.A.channel.toLinear(a);return i.A.lang.round(o)},o=t=>a(t)>=.5,s=t=>!o(t)},68459:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});var i=r(95433);let n=(t,e)=>(0,i.A)(t,"l",e)},18448:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var i=r(81283),n=r(50373),a=r(112),o=r(91946);let s=(t,e,r=0,s=1)=>{if("number"!=typeof t)return(0,o.A)(t,{a:e});let l=n.A.set({r:i.A.channel.clamp.r(t),g:i.A.channel.clamp.g(e),b:i.A.channel.clamp.b(r),a:i.A.channel.clamp.a(s)});return a.A.stringify(l)}},81283:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});let i={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:t=>t>=255?255:t<0?0:t,g:t=>t>=255?255:t<0?0:t,b:t=>t>=255?255:t<0?0:t,h:t=>t%360,s:t=>t>=100?100:t<0?0:t,l:t=>t>=100?100:t<0?0:t,a:t=>t>=1?1:t<0?0:t},toLinear:t=>{let e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:(t,e,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<1/6)?t+(e-t)*6*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t,hsl2rgb:({h:t,s:e,l:r},n)=>{if(!e)return 2.55*r;t/=360,e/=100;let a=(r/=100)<.5?r*(1+e):r+e-r*e,o=2*r-a;switch(n){case"r":return 255*i.hue2rgb(o,a,t+1/3);case"g":return 255*i.hue2rgb(o,a,t);case"b":return 255*i.hue2rgb(o,a,t-1/3)}},rgb2hsl:({r:t,g:e,b:r},i)=>{let n=Math.max(t/=255,e/=255,r/=255),a=Math.min(t,e,r),o=(n+a)/2;if("l"===i)return 100*o;if(n===a)return 0;let s=n-a;if("s"===i)return 100*(o>.5?s/(2-n-a):s/(n+a));switch(n){case t:return((e-r)/s+(e<r?6:0))*60;case e:return((r-t)/s+2)*60;case r:return((t-e)/s+4)*60;default:return -1}}},n={channel:i,lang:{clamp:(t,e,r)=>e>r?Math.min(e,Math.max(r,t)):Math.min(r,Math.max(e,t)),round:t=>Math.round(1e10*t)/1e10},unit:{dec2hex:t=>{let e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}}}},36821:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var i=r(65866);let n=function(t,e){for(var r=t.length;r--;)if((0,i.A)(t[r][0],e))return r;return -1};var a=Array.prototype.splice;function o(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var i=t[e];this.set(i[0],i[1])}}o.prototype.clear=function(){this.__data__=[],this.size=0},o.prototype.delete=function(t){var e=this.__data__,r=n(e,t);return!(r<0)&&(r==e.length-1?e.pop():a.call(e,r,1),--this.size,!0)},o.prototype.get=function(t){var e=this.__data__,r=n(e,t);return r<0?void 0:e[r][1]},o.prototype.has=function(t){return n(this.__data__,t)>-1},o.prototype.set=function(t,e){var r=this.__data__,i=n(r,t);return i<0?(++this.size,r.push([t,e])):r[i][1]=e,this};let s=o},40029:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});var i=r(69954),n=r(29283);let a=(0,i.A)(n.A,"Map")},63713:(t,e,r)=>{"use strict";r.d(e,{A:()=>d});var i=(0,r(69954).A)(Object,"create"),n=Object.prototype.hasOwnProperty,a=Object.prototype.hasOwnProperty;function o(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var i=t[e];this.set(i[0],i[1])}}o.prototype.clear=function(){this.__data__=i?i(null):{},this.size=0},o.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},o.prototype.get=function(t){var e=this.__data__;if(i){var r=e[t];return"__lodash_hash_undefined__"===r?void 0:r}return n.call(e,t)?e[t]:void 0},o.prototype.has=function(t){var e=this.__data__;return i?void 0!==e[t]:a.call(e,t)},o.prototype.set=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=i&&void 0===e?"__lodash_hash_undefined__":e,this};var s=r(36821),l=r(40029);let h=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t},c=function(t,e){var r=t.__data__;return h(e)?r["string"==typeof e?"string":"hash"]:r.map};function u(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var i=t[e];this.set(i[0],i[1])}}u.prototype.clear=function(){this.size=0,this.__data__={hash:new o,map:new(l.A||s.A),string:new o}},u.prototype.delete=function(t){var e=c(this,t).delete(t);return this.size-=e?1:0,e},u.prototype.get=function(t){return c(this,t).get(t)},u.prototype.has=function(t){return c(this,t).has(t)},u.prototype.set=function(t,e){var r=c(this,t),i=r.size;return r.set(t,e),this.size+=r.size==i?0:1,this};let d=u},38779:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});var i=r(69954),n=r(29283);let a=(0,i.A)(n.A,"Set")},72872:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var i=r(36821),n=r(40029),a=r(63713);function o(t){var e=this.__data__=new i.A(t);this.size=e.size}o.prototype.clear=function(){this.__data__=new i.A,this.size=0},o.prototype.delete=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},o.prototype.get=function(t){return this.__data__.get(t)},o.prototype.has=function(t){return this.__data__.has(t)},o.prototype.set=function(t,e){var r=this.__data__;if(r instanceof i.A){var o=r.__data__;if(!n.A||o.length<199)return o.push([t,e]),this.size=++r.size,this;r=this.__data__=new a.A(o)}return r.set(t,e),this.size=r.size,this};let s=o},70807:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});let i=r(29283).A.Symbol},12066:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});let i=r(29283).A.Uint8Array},78373:(t,e,r)=>{"use strict";r.d(e,{A:()=>c});let i=function(t,e){for(var r=-1,i=Array(t);++r<t;)i[r]=e(r);return i};var n=r(42908),a=r(28675),o=r(38990),s=r(49031),l=r(75216),h=Object.prototype.hasOwnProperty;let c=function(t,e){var r=(0,a.A)(t),c=!r&&(0,n.A)(t),u=!r&&!c&&(0,o.A)(t),d=!r&&!c&&!u&&(0,l.A)(t),p=r||c||u||d,f=p?i(t.length,String):[],g=f.length;for(var y in t)(e||h.call(t,y))&&!(p&&("length"==y||u&&("offset"==y||"parent"==y)||d&&("buffer"==y||"byteLength"==y||"byteOffset"==y)||(0,s.A)(y,g)))&&f.push(y);return f}},84805:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var i=r(46402),n=r(65866),a=Object.prototype.hasOwnProperty;let o=function(t,e,r){var o=t[e];a.call(t,e)&&(0,n.A)(o,r)&&(void 0!==r||e in t)||(0,i.A)(t,e,r)}},46402:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});var i=r(6977);let n=function(t,e,r){"__proto__"==e&&i.A?(0,i.A)(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}},33240:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});let i=function(t,e,r){for(var i=-1,n=Object(t),a=r(t),o=a.length;o--;){var s=a[++i];if(!1===e(n[s],s,n))break}return t}},36798:(t,e,r)=>{"use strict";r.d(e,{A:()=>u});var i=r(70807),n=Object.prototype,a=n.hasOwnProperty,o=n.toString,s=i.A?i.A.toStringTag:void 0;let l=function(t){var e=a.call(t,s),r=t[s];try{t[s]=void 0;var i=!0}catch(t){}var n=o.call(t);return i&&(e?t[s]=r:delete t[s]),n};var h=Object.prototype.toString,c=i.A?i.A.toStringTag:void 0;let u=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":c&&c in Object(t)?l(t):h.call(t)}},88601:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var i=r(85797),n=(0,r(7865).A)(Object.keys,Object),a=Object.prototype.hasOwnProperty;let o=function(t){if(!(0,i.A)(t))return n(t);var e=[];for(var r in Object(t))a.call(t,r)&&"constructor"!=r&&e.push(r);return e}},48496:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var i=r(83910),n=r(20453),a=r(1207);let o=function(t,e){return(0,a.A)((0,n.A)(t,e,i.A),t+"")}},39131:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});let i=function(t){return function(e){return t(e)}}},29427:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});var i=r(12066);let n=function(t){var e=new t.constructor(t.byteLength);return new i.A(e).set(new i.A(t)),e}},35012:(t,e,r)=>{"use strict";r.d(e,{A:()=>l});var i=r(29283),n="object"==typeof exports&&exports&&!exports.nodeType&&exports,a=n&&"object"==typeof module&&module&&!module.nodeType&&module,o=a&&a.exports===n?i.A.Buffer:void 0,s=o?o.allocUnsafe:void 0;let l=function(t,e){if(e)return t.slice();var r=t.length,i=s?s(r):new t.constructor(r);return t.copy(i),i}},33379:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});var i=r(29427);let n=function(t,e){var r=e?(0,i.A)(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}},61733:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});let i=function(t,e){var r=-1,i=t.length;for(e||(e=Array(i));++r<i;)e[r]=t[r];return e}},68785:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});var i=r(84805),n=r(46402);let a=function(t,e,r,a){var o=!r;r||(r={});for(var s=-1,l=e.length;++s<l;){var h=e[s],c=a?a(r[h],t[h],h,r,t):void 0;void 0===c&&(c=t[h]),o?(0,n.A)(r,h,c):(0,i.A)(r,h,c)}return r}},53949:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});var i=r(48496),n=r(50174);let a=function(t){return(0,i.A)(function(e,r){var i=-1,a=r.length,o=a>1?r[a-1]:void 0,s=a>2?r[2]:void 0;for(o=t.length>3&&"function"==typeof o?(a--,o):void 0,s&&(0,n.A)(r[0],r[1],s)&&(o=a<3?void 0:o,a=1),e=Object(e);++i<a;){var l=r[i];l&&t(e,l,i,o)}return e})}},6977:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});var i=r(69954);let n=function(){try{var t=(0,i.A)(Object,"defineProperty");return t({},"",{}),t}catch(t){}}()},67054:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});let i="object"==typeof global&&global&&global.Object===Object&&global},69954:(t,e,r)=>{"use strict";r.d(e,{A:()=>f});var i,n=r(42036),a=r(29283).A["__core-js_shared__"],o=(i=/[^.]+$/.exec(a&&a.keys&&a.keys.IE_PROTO||""))?"Symbol(src)_1."+i:"",s=r(17731),l=r(63095),h=/^\[object .+?Constructor\]$/,c=Object.prototype,u=Function.prototype.toString,d=c.hasOwnProperty,p=RegExp("^"+u.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");let f=function(t,e){var r,i=null==t?void 0:t[e];return(r=i,(0,s.A)(r)&&(!o||!(o in r))&&((0,n.A)(r)?p:h).test((0,l.A)(r)))?i:void 0}},30481:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});let i=(0,r(7865).A)(Object.getPrototypeOf,Object)},86073:(t,e,r)=>{"use strict";r.d(e,{A:()=>w});var i=r(69954),n=r(29283),a=(0,i.A)(n.A,"DataView"),o=r(40029),s=(0,i.A)(n.A,"Promise"),l=r(38779),h=(0,i.A)(n.A,"WeakMap"),c=r(36798),u=r(63095),d="[object Map]",p="[object Promise]",f="[object Set]",g="[object WeakMap]",y="[object DataView]",m=(0,u.A)(a),x=(0,u.A)(o.A),b=(0,u.A)(s),C=(0,u.A)(l.A),k=(0,u.A)(h),_=c.A;(a&&_(new a(new ArrayBuffer(1)))!=y||o.A&&_(new o.A)!=d||s&&_(s.resolve())!=p||l.A&&_(new l.A)!=f||h&&_(new h)!=g)&&(_=function(t){var e=(0,c.A)(t),r="[object Object]"==e?t.constructor:void 0,i=r?(0,u.A)(r):"";if(i)switch(i){case m:return y;case x:return d;case b:return p;case C:return f;case k:return g}return e});let w=_},49364:(t,e,r)=>{"use strict";r.d(e,{A:()=>l});var i=r(17731),n=Object.create,a=function(){function t(){}return function(e){if(!(0,i.A)(e))return{};if(n)return n(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}(),o=r(30481),s=r(85797);let l=function(t){return"function"!=typeof t.constructor||(0,s.A)(t)?{}:a((0,o.A)(t))}},49031:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});var i=/^(?:0|[1-9]\d*)$/;let n=function(t,e){var r=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==r||"symbol"!=r&&i.test(t))&&t>-1&&t%1==0&&t<e}},50174:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var i=r(65866),n=r(8860),a=r(49031),o=r(17731);let s=function(t,e,r){if(!(0,o.A)(r))return!1;var s=typeof e;return("number"==s?!!((0,n.A)(r)&&(0,a.A)(e,r.length)):"string"==s&&e in r)&&(0,i.A)(r[e],t)}},85797:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});var i=Object.prototype;let n=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||i)}},60027:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var i=r(67054),n="object"==typeof exports&&exports&&!exports.nodeType&&exports,a=n&&"object"==typeof module&&module&&!module.nodeType&&module,o=a&&a.exports===n&&i.A.process;let s=function(){try{var t=a&&a.require&&a.require("util").types;if(t)return t;return o&&o.binding&&o.binding("util")}catch(t){}}()},7865:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});let i=function(t,e){return function(r){return t(e(r))}}},20453:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});let i=function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)};var n=Math.max;let a=function(t,e,r){return e=n(void 0===e?t.length-1:e,0),function(){for(var a=arguments,o=-1,s=n(a.length-e,0),l=Array(s);++o<s;)l[o]=a[e+o];o=-1;for(var h=Array(e+1);++o<e;)h[o]=a[o];return h[e]=r(l),i(t,this,h)}}},29283:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});var i=r(67054),n="object"==typeof self&&self&&self.Object===Object&&self;let a=i.A||n||Function("return this")()},1207:(t,e,r)=>{"use strict";r.d(e,{A:()=>c});var i,n,a=r(39260),o=r(6977),s=r(83910),l=o.A?function(t,e){return(0,o.A)(t,"toString",{configurable:!0,enumerable:!1,value:(0,a.A)(e),writable:!0})}:s.A,h=Date.now;let c=(i=0,n=0,function(){var t=h(),e=16-(t-n);if(n=t,e>0){if(++i>=800)return arguments[0]}else i=0;return l.apply(void 0,arguments)})},63095:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});var i=Function.prototype.toString;let n=function(t){if(null!=t){try{return i.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},39260:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});let i=function(t){return function(){return t}}},65866:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});let i=function(t,e){return t===e||t!=t&&e!=e}},83910:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});let i=function(t){return t}},42908:(t,e,r)=>{"use strict";r.d(e,{A:()=>h});var i=r(36798),n=r(19196);let a=function(t){return(0,n.A)(t)&&"[object Arguments]"==(0,i.A)(t)};var o=Object.prototype,s=o.hasOwnProperty,l=o.propertyIsEnumerable;let h=a(function(){return arguments}())?a:function(t){return(0,n.A)(t)&&s.call(t,"callee")&&!l.call(t,"callee")}},28675:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});let i=Array.isArray},8860:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});var i=r(42036),n=r(13884);let a=function(t){return null!=t&&(0,n.A)(t.length)&&!(0,i.A)(t)}},11755:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});var i=r(8860),n=r(19196);let a=function(t){return(0,n.A)(t)&&(0,i.A)(t)}},38990:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var i=r(29283),n="object"==typeof exports&&exports&&!exports.nodeType&&exports,a=n&&"object"==typeof module&&module&&!module.nodeType&&module,o=a&&a.exports===n?i.A.Buffer:void 0;let s=(o?o.isBuffer:void 0)||function(){return!1}},77083:(t,e,r)=>{"use strict";r.d(e,{A:()=>d});var i=r(88601),n=r(86073),a=r(42908),o=r(28675),s=r(8860),l=r(38990),h=r(85797),c=r(75216),u=Object.prototype.hasOwnProperty;let d=function(t){if(null==t)return!0;if((0,s.A)(t)&&((0,o.A)(t)||"string"==typeof t||"function"==typeof t.splice||(0,l.A)(t)||(0,c.A)(t)||(0,a.A)(t)))return!t.length;var e=(0,n.A)(t);if("[object Map]"==e||"[object Set]"==e)return!t.size;if((0,h.A)(t))return!(0,i.A)(t).length;for(var r in t)if(u.call(t,r))return!1;return!0}},42036:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});var i=r(36798),n=r(17731);let a=function(t){if(!(0,n.A)(t))return!1;var e=(0,i.A)(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},13884:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});let i=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},17731:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});let i=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},19196:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});let i=function(t){return null!=t&&"object"==typeof t}},75216:(t,e,r)=>{"use strict";r.d(e,{A:()=>c});var i=r(36798),n=r(13884),a=r(19196),o={};o["[object Float32Array]"]=o["[object Float64Array]"]=o["[object Int8Array]"]=o["[object Int16Array]"]=o["[object Int32Array]"]=o["[object Uint8Array]"]=o["[object Uint8ClampedArray]"]=o["[object Uint16Array]"]=o["[object Uint32Array]"]=!0,o["[object Arguments]"]=o["[object Array]"]=o["[object ArrayBuffer]"]=o["[object Boolean]"]=o["[object DataView]"]=o["[object Date]"]=o["[object Error]"]=o["[object Function]"]=o["[object Map]"]=o["[object Number]"]=o["[object Object]"]=o["[object RegExp]"]=o["[object Set]"]=o["[object String]"]=o["[object WeakMap]"]=!1;var s=r(39131),l=r(60027),h=l.A&&l.A.isTypedArray;let c=h?(0,s.A)(h):function(t){return(0,a.A)(t)&&(0,n.A)(t.length)&&!!o[(0,i.A)(t)]}},97937:(t,e,r)=>{"use strict";r.d(e,{A:()=>c});var i=r(78373),n=r(17731),a=r(85797);let o=function(t){var e=[];if(null!=t)for(var r in Object(t))e.push(r);return e};var s=Object.prototype.hasOwnProperty;let l=function(t){if(!(0,n.A)(t))return o(t);var e=(0,a.A)(t),r=[];for(var i in t)"constructor"==i&&(e||!s.call(t,i))||r.push(i);return r};var h=r(8860);let c=function(t){return(0,h.A)(t)?(0,i.A)(t,!0):l(t)}},12854:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});var i=r(63713);function n(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw TypeError("Expected a function");var r=function(){var i=arguments,n=e?e.apply(this,i):i[0],a=r.cache;if(a.has(n))return a.get(n);var o=t.apply(this,i);return r.cache=a.set(n,o)||a,o};return r.cache=new(n.Cache||i.A),r}n.Cache=i.A;let a=n},86023:(t,e,r)=>{"use strict";r.d(e,{A:()=>E});var i=r(72872),n=r(46402),a=r(65866);let o=function(t,e,r){(void 0===r||(0,a.A)(t[e],r))&&(void 0!==r||e in t)||(0,n.A)(t,e,r)};var s=r(33240),l=r(35012),h=r(33379),c=r(61733),u=r(49364),d=r(42908),p=r(28675),f=r(11755),g=r(38990),y=r(42036),m=r(17731),x=r(36798),b=r(30481),C=r(19196),k=Object.prototype,_=Function.prototype.toString,w=k.hasOwnProperty,v=_.call(Object);let T=function(t){if(!(0,C.A)(t)||"[object Object]"!=(0,x.A)(t))return!1;var e=(0,b.A)(t);if(null===e)return!0;var r=w.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&_.call(r)==v};var A=r(75216);let S=function(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]};var B=r(68785),M=r(97937);let L=function(t,e,r,i,n,a,s){var x=S(t,r),b=S(e,r),C=s.get(b);if(C){o(t,r,C);return}var k=a?a(x,b,r+"",t,e,s):void 0,_=void 0===k;if(_){var w=(0,p.A)(b),v=!w&&(0,g.A)(b),L=!w&&!v&&(0,A.A)(b);(k=b,w||v||L)?(0,p.A)(x)?k=x:(0,f.A)(x)?k=(0,c.A)(x):v?(_=!1,k=(0,l.A)(b,!0)):L?(_=!1,k=(0,h.A)(b,!0)):k=[]:T(b)||(0,d.A)(b)?(k=x,(0,d.A)(x))?k=(0,B.A)(x,(0,M.A)(x)):(!(0,m.A)(x)||(0,y.A)(x))&&(k=(0,u.A)(b)):_=!1}_&&(s.set(b,k),n(k,b,i,a,s),s.delete(b)),o(t,r,k)},F=function t(e,r,n,a,l){e!==r&&(0,s.A)(r,function(s,h){if(l||(l=new i.A),(0,m.A)(s))L(e,r,h,n,t,a,l);else{var c=a?a(S(e,h),s,h+"",e,r,l):void 0;void 0===c&&(c=s),o(e,h,c)}},M.A)},E=(0,r(53949).A)(function(t,e,r){F(t,e,r)})},16470:(t,e,r)=>{"use strict";r.d(e,{O:()=>n,R:()=>l});var i=r(72912),n=(0,i.K2)(({flowchart:t})=>{let e=t?.subGraphTitleMargin?.top??0,r=t?.subGraphTitleMargin?.bottom??0;return{subGraphTitleTopMargin:e,subGraphTitleBottomMargin:r,subGraphTitleTotalMargin:e+r}},"getSubGraphTitleMargins"),a={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:4};function o(t,e){if(void 0===t||void 0===e)return{angle:0,deltaX:0,deltaY:0};t=s(t),e=s(e);let[r,i]=[t.x,t.y],[n,a]=[e.x,e.y],o=n-r,l=a-i;return{angle:Math.atan(l/o),deltaX:o,deltaY:l}}(0,i.K2)(o,"calculateDeltaAndAngle");var s=(0,i.K2)(t=>Array.isArray(t)?{x:t[0],y:t[1]}:t,"pointTransformer"),l=(0,i.K2)(t=>({x:(0,i.K2)(function(e,r,i){let n=0;if(0===r&&Object.hasOwn(a,t.arrowTypeStart)){let{angle:e,deltaX:r}=o(i[0],i[1]);n=a[t.arrowTypeStart]*Math.cos(e)*(r>=0?1:-1)}else if(r===i.length-1&&Object.hasOwn(a,t.arrowTypeEnd)){let{angle:e,deltaX:r}=o(i[i.length-1],i[i.length-2]);n=a[t.arrowTypeEnd]*Math.cos(e)*(r>=0?1:-1)}return s(e).x+n},"x"),y:(0,i.K2)(function(e,r,i){let n=0;if(0===r&&Object.hasOwn(a,t.arrowTypeStart)){let{angle:e,deltaY:r}=o(i[0],i[1]);n=a[t.arrowTypeStart]*Math.abs(Math.sin(e))*(r>=0?1:-1)}else if(r===i.length-1&&Object.hasOwn(a,t.arrowTypeEnd)){let{angle:e,deltaY:r}=o(i[i.length-1],i[i.length-2]);n=a[t.arrowTypeEnd]*Math.abs(Math.sin(e))*(r>=0?1:-1)}return s(e).y+n},"y")}),"getLineFunctionsWithOffset")},67027:(t,e,r)=>{"use strict";r.d(e,{$C:()=>B,$t:()=>j,C4:()=>U,I5:()=>K,Ib:()=>y,Sm:()=>H,Un:()=>D,_K:()=>W,bH:()=>$,dq:()=>N,pe:()=>h,rY:()=>Y,ru:()=>I,sM:()=>A,vU:()=>f,yT:()=>L});var i,n=r(72912),a=r(31546),o=r(89601),s=r(12854),l=r(86023),h="\u200B",c={curveBasis:o.qrM,curveBasisClosed:o.Yu4,curveBasisOpen:o.IA3,curveBumpX:o.Wi0,curveBumpY:o.PGM,curveBundle:o.OEq,curveCardinalClosed:o.olC,curveCardinalOpen:o.IrU,curveCardinal:o.y8u,curveCatmullRomClosed:o.Q7f,curveCatmullRomOpen:o.cVp,curveCatmullRom:o.oDi,curveLinear:o.lUB,curveLinearClosed:o.Lx9,curveMonotoneX:o.nVG,curveMonotoneY:o.uxU,curveNatural:o.Xf2,curveStep:o.GZz,curveStepAfter:o.UPb,curveStepBefore:o.dyv},u=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,d=(0,n.K2)(function(t,e){let r=p(t,/(?:init\b)|(?:initialize\b)/),i={};if(Array.isArray(r)){let t=r.map(t=>t.args);(0,n.$i)(t),i=(0,n.hH)(i,[...t])}else i=r.args;if(!i)return;let a=(0,n.Ch)(t,e),o="config";return void 0!==i[o]&&("flowchart-v2"===a&&(a="flowchart"),i[a]=i[o],delete i[o]),i},"detectInit"),p=(0,n.K2)(function(t,e=null){try{let r;let i=RegExp(`[%]{2}(?![{]${u.source})(?=[}][%]{2}).* +`,"ig");t=t.trim().replace(i,"").replace(/'/gm,'"'),n.Rm.debug(`Detecting diagram directive${null!==e?" type:"+e:""} based on the text:${t}`);let a=[];for(;null!==(r=n.DB.exec(t));)if(r.index===n.DB.lastIndex&&n.DB.lastIndex++,r&&!e||e&&r[1]?.match(e)||e&&r[2]?.match(e)){let t=r[1]?r[1]:r[2],e=r[3]?r[3].trim():r[4]?JSON.parse(r[4].trim()):null;a.push({type:t,args:e})}if(0===a.length)return{type:t,args:null};return 1===a.length?a[0]:a}catch(r){return n.Rm.error(`ERROR: ${r.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},"detectDirective"),f=(0,n.K2)(function(t){return t.replace(n.DB,"")},"removeDirectives"),g=(0,n.K2)(function(t,e){for(let[r,i]of e.entries())if(i.match(t))return r;return -1},"isSubstringInArray");function y(t,e){return t?c[`curve${t.charAt(0).toUpperCase()+t.slice(1)}`]??e:e}function m(t,e){let r=t.trim();return r?"loose"!==e.securityLevel?(0,a.J)(r):r:void 0}(0,n.K2)(y,"interpolateToCurve"),(0,n.K2)(m,"formatUrl");var x=(0,n.K2)((t,...e)=>{let r=t.split("."),i=r.length-1,a=r[i],o=window;for(let e=0;e<i;e++)if(!(o=o[r[e]])){n.Rm.error(`Function name: ${t} not found in window`);return}o[a](...e)},"runFunc");function b(t,e){return t&&e?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)):0}function C(t){let e;let r=0;return t.forEach(t=>{r+=b(t,e),e=t}),w(t,r/2)}function k(t){return 1===t.length?t[0]:C(t)}(0,n.K2)(b,"distance"),(0,n.K2)(C,"traverseEdge"),(0,n.K2)(k,"calcLabelPosition");var _=(0,n.K2)((t,e=2)=>{let r=Math.pow(10,e);return Math.round(t*r)/r},"roundNumber"),w=(0,n.K2)((t,e)=>{let r;let i=e;for(let e of t){if(r){let t=b(e,r);if(t<i)i-=t;else{let n=i/t;if(n<=0)return r;if(n>=1)return{x:e.x,y:e.y};if(n>0&&n<1)return{x:_((1-n)*r.x+n*e.x,5),y:_((1-n)*r.y+n*e.y,5)}}}r=e}throw Error("Could not find a suitable point for the given distance")},"calculatePoint"),v=(0,n.K2)((t,e,r)=>{n.Rm.info(`our points ${JSON.stringify(e)}`),e[0]!==r&&(e=e.reverse());let i=w(e,25),a=t?10:5,o=Math.atan2(e[0].y-i.y,e[0].x-i.x),s={x:0,y:0};return s.x=Math.sin(o)*a+(e[0].x+i.x)/2,s.y=-Math.cos(o)*a+(e[0].y+i.y)/2,s},"calcCardinalityPosition");function T(t,e,r){let i=structuredClone(r);n.Rm.info("our points",i),"start_left"!==e&&"start_right"!==e&&i.reverse();let a=w(i,25+t),o=10+.5*t,s=Math.atan2(i[0].y-a.y,i[0].x-a.x),l={x:0,y:0};return"start_left"===e?(l.x=Math.sin(s+Math.PI)*o+(i[0].x+a.x)/2,l.y=-Math.cos(s+Math.PI)*o+(i[0].y+a.y)/2):"end_right"===e?(l.x=Math.sin(s-Math.PI)*o+(i[0].x+a.x)/2-5,l.y=-Math.cos(s-Math.PI)*o+(i[0].y+a.y)/2-5):"end_left"===e?(l.x=Math.sin(s)*o+(i[0].x+a.x)/2-5,l.y=-Math.cos(s)*o+(i[0].y+a.y)/2-5):(l.x=Math.sin(s)*o+(i[0].x+a.x)/2,l.y=-Math.cos(s)*o+(i[0].y+a.y)/2),l}function A(t){let e="",r="";for(let i of t)void 0!==i&&(i.startsWith("color:")||i.startsWith("text-align:")?r=r+i+";":e=e+i+";");return{style:e,labelStyle:r}}(0,n.K2)(T,"calcTerminalLabelPosition"),(0,n.K2)(A,"getStylesFromArray");var S=0,B=(0,n.K2)(()=>(S++,"id-"+Math.random().toString(36).substr(2,12)+"-"+S),"generateId");function M(t){let e="",r="0123456789abcdef",i=r.length;for(let n=0;n<t;n++)e+=r.charAt(Math.floor(Math.random()*i));return e}(0,n.K2)(M,"makeRandomHex");var L=(0,n.K2)(t=>M(t.length),"random"),F=(0,n.K2)(function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},"getTextObj"),E=(0,n.K2)(function(t,e){let r=e.text.replace(n.Y2.lineBreakRegex," "),[,i]=K(e.fontSize),a=t.append("text");a.attr("x",e.x),a.attr("y",e.y),a.style("text-anchor",e.anchor),a.style("font-family",e.fontFamily),a.style("font-size",i),a.style("font-weight",e.fontWeight),a.attr("fill",e.fill),void 0!==e.class&&a.attr("class",e.class);let o=a.append("tspan");return o.attr("x",e.x+2*e.textMargin),o.attr("fill",e.fill),o.text(r),a},"drawSimpleText"),$=(0,s.A)((t,e,r)=>{if(!t||(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"<br/>"},r),n.Y2.lineBreakRegex.test(t)))return t;let i=t.split(" ").filter(Boolean),a=[],o="";return i.forEach((t,n)=>{let s=D(`${t} `,r),l=D(o,r);if(s>e){let{hyphenatedStrings:i,remainingWord:n}=O(t,e,"-",r);a.push(o,...i),o=n}else l+s>=e?(a.push(o),o=t):o=[o,t].filter(Boolean).join(" ");n+1===i.length&&a.push(o)}),a.filter(t=>""!==t).join(r.joinWith)},(t,e,r)=>`${t}${e}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),O=(0,s.A)((t,e,r="-",i)=>{i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},i);let n=[...t],a=[],o="";return n.forEach((t,s)=>{let l=`${o}${t}`;if(D(l,i)>=e){let t=n.length===s+1,e=`${l}${r}`;a.push(t?l:e),o=""}else o=l}),{hyphenatedStrings:a,remainingWord:o}},(t,e,r="-",i)=>`${t}${e}${r}${i.fontSize}${i.fontWeight}${i.fontFamily}`);function I(t,e){return R(t,e).height}function D(t,e){return R(t,e).width}(0,n.K2)(I,"calculateTextHeight"),(0,n.K2)(D,"calculateTextWidth");var R=(0,s.A)((t,e)=>{let{fontSize:r=12,fontFamily:i="Arial",fontWeight:a=400}=e;if(!t)return{width:0,height:0};let[,s]=K(r),l=t.split(n.Y2.lineBreakRegex),c=[],u=(0,o.Ltv)("body");if(!u.remove)return{width:0,height:0,lineHeight:0};let d=u.append("svg");for(let t of["sans-serif",i]){let e=0,r={width:0,height:0,lineHeight:0};for(let i of l){let n=F();n.text=i||h;let o=E(d,n).style("font-size",s).style("font-weight",a).style("font-family",t),l=(o._groups||o)[0][0].getBBox();if(0===l.width&&0===l.height)throw Error("svg element not in render tree");r.width=Math.round(Math.max(r.width,l.width)),e=Math.round(l.height),r.height+=e,r.lineHeight=Math.round(Math.max(r.lineHeight,e))}c.push(r)}d.remove();let p=isNaN(c[1].height)||isNaN(c[1].width)||isNaN(c[1].lineHeight)||c[0].height>c[1].height&&c[0].width>c[1].width&&c[0].lineHeight>c[1].lineHeight?0:1;return c[p]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`),z=class{constructor(t=!1,e){this.count=0,this.count=e?e.length:0,this.next=t?()=>this.count++:()=>Date.now()}static{(0,n.K2)(this,"InitIDGenerator")}},q=(0,n.K2)(function(t){return i=i||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),i.innerHTML=t,unescape(i.textContent)},"entityDecode");function N(t){return"str"in t}(0,n.K2)(N,"isDetailedError");var P=(0,n.K2)((t,e,r,i)=>{if(!i)return;let n=t.node()?.getBBox();n&&t.append("text").text(i).attr("x",n.x+n.width/2).attr("y",-r).attr("class",e)},"insertTitle"),K=(0,n.K2)(t=>{if("number"==typeof t)return[t,t+"px"];let e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]},"parseFontSize");function j(t,e){return(0,l.A)({},t,e)}(0,n.K2)(j,"cleanAndMerge");var W={assignWithDepth:n.hH,wrapLabel:$,calculateTextHeight:I,calculateTextWidth:D,calculateTextDimensions:R,cleanAndMerge:j,detectInit:d,detectDirective:p,isSubstringInArray:g,interpolateToCurve:y,calcLabelPosition:k,calcCardinalityPosition:v,calcTerminalLabelPosition:T,formatUrl:m,getStylesFromArray:A,generateId:B,random:L,runFunc:x,entityDecode:q,insertTitle:P,parseFontSize:K,InitIDGenerator:z},U=(0,n.K2)(function(t){let e=t;return(e=(e=e.replace(/style.*:\S*#.*;/g,function(t){return t.substring(0,t.length-1)})).replace(/classDef.*:\S*#.*;/g,function(t){return t.substring(0,t.length-1)})).replace(/#\w+;/g,function(t){let e=t.substring(1,t.length-1);return/^\+?\d+$/.test(e)?"\uFB02\xb0\xb0"+e+"\xb6\xdf":"\uFB02\xb0"+e+"\xb6\xdf"})},"encodeEntities"),H=(0,n.K2)(function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},"decodeEntities"),Y=(0,n.K2)((t,e,{counter:r=0,prefix:i,suffix:n})=>`${i?`${i}_`:""}${t}_${e}_${r}${n?`_${n}`:""}`,"getEdgeId")},27923:(t,e,r)=>{"use strict";r.d(e,{W6:()=>tB,GZ:()=>tE,hE:()=>tF});var i=r(67027),n=r(72912),a=r(89601);function o(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}let s=o(),l=/[&<>"']/,h=RegExp(l.source,"g"),c=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,u=RegExp(c.source,"g"),d={"&":"&","<":"<",">":">",'"':""","'":"'"},p=t=>d[t];function f(t,e){if(e){if(l.test(t))return t.replace(h,p)}else if(c.test(t))return t.replace(u,p);return t}let g=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,y=/(^|[^\[])\^/g;function m(t,e){let r="string"==typeof t?t:t.source;e=e||"";let i={replace:(t,e)=>{let n="string"==typeof e?e:e.source;return n=n.replace(y,"$1"),r=r.replace(t,n),i},getRegex:()=>new RegExp(r,e)};return i}function x(t){try{t=encodeURI(t).replace(/%25/g,"%")}catch{return null}return t}let b={exec:()=>null};function C(t,e){let r=t.replace(/\|/g,(t,e,r)=>{let i=!1,n=e;for(;--n>=0&&"\\"===r[n];)i=!i;return i?"|":" |"}).split(/ \|/),i=0;if(r[0].trim()||r.shift(),r.length>0&&!r[r.length-1].trim()&&r.pop(),e){if(r.length>e)r.splice(e);else for(;r.length<e;)r.push("")}for(;i<r.length;i++)r[i]=r[i].trim().replace(/\\\|/g,"|");return r}function k(t,e,r){let i=t.length;if(0===i)return"";let n=0;for(;n<i;){let a=t.charAt(i-n-1);if(a!==e||r){if(a!==e&&r)n++;else break}else n++}return t.slice(0,i-n)}function _(t,e,r,i){let n=e.href,a=e.title?f(e.title):null,o=t[1].replace(/\\([\[\]])/g,"$1");if("!"!==t[0].charAt(0)){i.state.inLink=!0;let t={type:"link",raw:r,href:n,title:a,text:o,tokens:i.inlineTokens(o)};return i.state.inLink=!1,t}return{type:"image",raw:r,href:n,title:a,text:f(o)}}class w{options;rules;lexer;constructor(t){this.options=t||s}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let t=e[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?t:k(t,"\n")}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let t=e[0],r=function(t,e){let r=t.match(/^(\s+)(?:```)/);if(null===r)return e;let i=r[1];return e.split("\n").map(t=>{let e=t.match(/^\s+/);if(null===e)return t;let[r]=e;return r.length>=i.length?t.slice(i.length):t}).join("\n")}(t,e[3]||"");return{type:"code",raw:t,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:r}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let t=e[2].trim();if(/#$/.test(t)){let e=k(t,"#");this.options.pedantic?t=e.trim():(!e||/ $/.test(e))&&(t=e.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:t,tokens:this.lexer.inline(t)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:k(e[0],"\n")}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let t=k(e[0],"\n").split("\n"),r="",i="",n=[];for(;t.length>0;){let e,a=!1,o=[];for(e=0;e<t.length;e++)if(/^ {0,3}>/.test(t[e]))o.push(t[e]),a=!0;else if(a)break;else o.push(t[e]);t=t.slice(e);let s=o.join("\n"),l=s.replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,"\n $1").replace(/^ {0,3}>[ \t]?/gm,"");r=r?`${r} +${s}`:s,i=i?`${i} +${l}`:l;let h=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(l,n,!0),this.lexer.state.top=h,0===t.length)break;let c=n[n.length-1];if(c?.type==="code")break;if(c?.type==="blockquote"){let e=c.raw+"\n"+t.join("\n"),a=this.blockquote(e);n[n.length-1]=a,r=r.substring(0,r.length-c.raw.length)+a.raw,i=i.substring(0,i.length-c.text.length)+a.text;break}if(c?.type==="list"){let e=c.raw+"\n"+t.join("\n"),a=this.list(e);n[n.length-1]=a,r=r.substring(0,r.length-c.raw.length)+a.raw,i=i.substring(0,i.length-c.raw.length)+a.raw,t=e.substring(n[n.length-1].raw.length).split("\n");continue}}return{type:"blockquote",raw:r,tokens:n,text:i}}}list(t){let e=this.rules.block.list.exec(t);if(e){let r=e[1].trim(),i=r.length>1,n={type:"list",raw:"",ordered:i,start:i?+r.slice(0,-1):"",loose:!1,items:[]};r=i?`\\d{1,9}\\${r.slice(-1)}`:`\\${r}`,this.options.pedantic&&(r=i?r:"[*+-]");let a=RegExp(`^( {0,3}${r})((?:[ ][^\\n]*)?(?:\\n|$))`),o=!1;for(;t;){let r,i=!1,s="",l="";if(!(e=a.exec(t))||this.rules.block.hr.test(t))break;s=e[0],t=t.substring(s.length);let h=e[2].split("\n",1)[0].replace(/^\t+/,t=>" ".repeat(3*t.length)),c=t.split("\n",1)[0],u=!h.trim(),d=0;if(this.options.pedantic?(d=2,l=h.trimStart()):u?d=e[1].length+1:(d=(d=e[2].search(/[^ ]/))>4?1:d,l=h.slice(d),d+=e[1].length),u&&/^ *$/.test(c)&&(s+=c+"\n",t=t.substring(c.length+1),i=!0),!i){let e=RegExp(`^ {0,${Math.min(3,d-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),r=RegExp(`^ {0,${Math.min(3,d-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),i=RegExp(`^ {0,${Math.min(3,d-1)}}(?:\`\`\`|~~~)`),n=RegExp(`^ {0,${Math.min(3,d-1)}}#`);for(;t;){let a=t.split("\n",1)[0];if(c=a,this.options.pedantic&&(c=c.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),i.test(c)||n.test(c)||e.test(c)||r.test(t))break;if(c.search(/[^ ]/)>=d||!c.trim())l+="\n"+c.slice(d);else{if(u||h.search(/[^ ]/)>=4||i.test(h)||n.test(h)||r.test(h))break;l+="\n"+c}u||c.trim()||(u=!0),s+=a+"\n",t=t.substring(a.length+1),h=c.slice(d)}}!n.loose&&(o?n.loose=!0:/\n *\n *$/.test(s)&&(o=!0));let p=null;this.options.gfm&&(p=/^\[[ xX]\] /.exec(l))&&(r="[ ] "!==p[0],l=l.replace(/^\[[ xX]\] +/,"")),n.items.push({type:"list_item",raw:s,task:!!p,checked:r,loose:!1,text:l,tokens:[]}),n.raw+=s}n.items[n.items.length-1].raw=n.items[n.items.length-1].raw.trimEnd(),n.items[n.items.length-1].text=n.items[n.items.length-1].text.trimEnd(),n.raw=n.raw.trimEnd();for(let t=0;t<n.items.length;t++)if(this.lexer.state.top=!1,n.items[t].tokens=this.lexer.blockTokens(n.items[t].text,[]),!n.loose){let e=n.items[t].tokens.filter(t=>"space"===t.type),r=e.length>0&&e.some(t=>/\n.*\n/.test(t.raw));n.loose=r}if(n.loose)for(let t=0;t<n.items.length;t++)n.items[t].loose=!0;return n}}html(t){let e=this.rules.block.html.exec(t);if(e)return{type:"html",block:!0,raw:e[0],pre:"pre"===e[1]||"script"===e[1]||"style"===e[1],text:e[0]}}def(t){let e=this.rules.block.def.exec(t);if(e){let t=e[1].toLowerCase().replace(/\s+/g," "),r=e[2]?e[2].replace(/^<(.*)>$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",i=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:t,raw:e[0],href:r,title:i}}}table(t){let e=this.rules.block.table.exec(t);if(!e||!/[:|]/.test(e[2]))return;let r=C(e[1]),i=e[2].replace(/^\||\| *$/g,"").split("|"),n=e[3]&&e[3].trim()?e[3].replace(/\n[ \t]*$/,"").split("\n"):[],a={type:"table",raw:e[0],header:[],align:[],rows:[]};if(r.length===i.length){for(let t of i)/^ *-+: *$/.test(t)?a.align.push("right"):/^ *:-+: *$/.test(t)?a.align.push("center"):/^ *:-+ *$/.test(t)?a.align.push("left"):a.align.push(null);for(let t=0;t<r.length;t++)a.header.push({text:r[t],tokens:this.lexer.inline(r[t]),header:!0,align:a.align[t]});for(let t of n)a.rows.push(C(t,a.header.length).map((t,e)=>({text:t,tokens:this.lexer.inline(t),header:!1,align:a.align[e]})));return a}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:"="===e[2].charAt(0)?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let t="\n"===e[1].charAt(e[1].length-1)?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:t,tokens:this.lexer.inline(t)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:f(e[1])}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&/^<a /i.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let t=e[2].trim();if(!this.options.pedantic&&/^</.test(t)){if(!/>$/.test(t))return;let e=k(t.slice(0,-1),"\\");if((t.length-e.length)%2==0)return}else{let t=function(t,e){if(-1===t.indexOf(")"))return -1;let r=0;for(let e=0;e<t.length;e++)if("\\"===t[e])e++;else if("("===t[e])r++;else if(")"===t[e]&&--r<0)return e;return -1}(e[2],"()");if(t>-1){let r=(0===e[0].indexOf("!")?5:4)+e[1].length+t;e[2]=e[2].substring(0,t),e[0]=e[0].substring(0,r).trim(),e[3]=""}}let r=e[2],i="";if(this.options.pedantic){let t=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r);t&&(r=t[1],i=t[3])}else i=e[3]?e[3].slice(1,-1):"";return r=r.trim(),/^</.test(r)&&(r=this.options.pedantic&&!/>$/.test(t)?r.slice(1):r.slice(1,-1)),_(e,{href:r?r.replace(this.rules.inline.anyPunctuation,"$1"):r,title:i?i.replace(this.rules.inline.anyPunctuation,"$1"):i},e[0],this.lexer)}}reflink(t,e){let r;if((r=this.rules.inline.reflink.exec(t))||(r=this.rules.inline.nolink.exec(t))){let t=e[(r[2]||r[1]).replace(/\s+/g," ").toLowerCase()];if(!t){let t=r[0].charAt(0);return{type:"text",raw:t,text:t}}return _(r,t,r[0],this.lexer)}}emStrong(t,e,r=""){let i=this.rules.inline.emStrongLDelim.exec(t);if(!(!i||i[3]&&r.match(/[\p{L}\p{N}]/u))&&(!(i[1]||i[2])||!r||this.rules.inline.punctuation.exec(r))){let r=[...i[0]].length-1,n,a,o=r,s=0,l="*"===i[0][0]?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(l.lastIndex=0,e=e.slice(-1*t.length+r);null!=(i=l.exec(e));){if(!(n=i[1]||i[2]||i[3]||i[4]||i[5]||i[6]))continue;if(a=[...n].length,i[3]||i[4]){o+=a;continue}if((i[5]||i[6])&&r%3&&!((r+a)%3)){s+=a;continue}if((o-=a)>0)continue;a=Math.min(a,a+o+s);let e=[...i[0]][0].length,l=t.slice(0,r+i.index+e+a);if(Math.min(r,a)%2){let t=l.slice(1,-1);return{type:"em",raw:l,text:t,tokens:this.lexer.inlineTokens(t)}}let h=l.slice(2,-2);return{type:"strong",raw:l,text:h,tokens:this.lexer.inlineTokens(h)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let t=e[2].replace(/\n/g," "),r=/[^ ]/.test(t),i=/^ /.test(t)&&/ $/.test(t);return r&&i&&(t=t.substring(1,t.length-1)),t=f(t,!0),{type:"codespan",raw:e[0],text:t}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){let e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let t,r;return r="@"===e[2]?"mailto:"+(t=f(e[1])):t=f(e[1]),{type:"link",raw:e[0],text:t,href:r,tokens:[{type:"text",raw:t,text:t}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let t,r;if("@"===e[2])r="mailto:"+(t=f(e[0]));else{let i;do i=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(i!==e[0])t=f(e[0]),r="www."===e[1]?"http://"+e[0]:e[0]}return{type:"link",raw:e[0],text:t,href:r,tokens:[{type:"text",raw:t,text:t}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let t;return t=this.lexer.state.inRawBlock?e[0]:f(e[0]),{type:"text",raw:e[0],text:t}}}}let v=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,T=/(?:[*+-]|\d{1,9}[.)])/,A=m(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,T).replace(/blockCode/g,/ {4}/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),S=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,B=/(?!\s*\])(?:\\.|[^\[\]\\])+/,M=m(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label",B).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),L=m(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,T).getRegex(),F="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",E=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,$=m("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))","i").replace("comment",E).replace("tag",F).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),O=m(S).replace("hr",v).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",F).getRegex(),I={blockquote:m(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",O).getRegex(),code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,def:M,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,hr:v,html:$,lheading:A,list:L,newline:/^(?: *(?:\n|$))+/,paragraph:O,table:b,text:/^[^\n]+/},D=m("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",v).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",F).getRegex(),R={...I,table:D,paragraph:m(S).replace("hr",v).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",D).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",F).getRegex()},z={...I,html:m("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",E).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:b,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:m(S).replace("hr",v).replace("heading"," *#{1,6} *[^\n]").replace("lheading",A).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},q=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,N=/^( {2,}|\\)\n(?!\s*$)/,P="\\p{P}\\p{S}",K=m(/^((?![*_])[\spunctuation])/,"u").replace(/punctuation/g,P).getRegex(),j=m(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,P).getRegex(),W=m("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,P).getRegex(),U=m("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,P).getRegex(),H=m(/\\([punct])/,"gu").replace(/punct/g,P).getRegex(),Y=m(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),G=m(E).replace("(?:-->|$)","-->").getRegex(),Z=m("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",G).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),V=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,X=m(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",V).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Q=m(/^!?\[(label)\]\[(ref)\]/).replace("label",V).replace("ref",B).getRegex(),J=m(/^!?\[(ref)\](?:\[\])?/).replace("ref",B).getRegex(),tt=m("reflink|nolink(?!\\()","g").replace("reflink",Q).replace("nolink",J).getRegex(),te={_backpedal:b,anyPunctuation:H,autolink:Y,blockSkip:/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g,br:N,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,del:b,emStrongLDelim:j,emStrongRDelimAst:W,emStrongRDelimUnd:U,escape:q,link:X,nolink:J,punctuation:K,reflink:Q,reflinkSearch:tt,tag:Z,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,url:b},tr={...te,link:m(/^!?\[(label)\]\((.*?)\)/).replace("label",V).getRegex(),reflink:m(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",V).getRegex()},ti={...te,escape:m(q).replace("])","~|])").getRegex(),url:m(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},tn={...ti,br:m(N).replace("{2,}","*").getRegex(),text:m(ti.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},ta={normal:I,gfm:R,pedantic:z},to={normal:te,gfm:ti,breaks:tn,pedantic:tr};class ts{tokens;options;state;tokenizer;inlineQueue;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||s,this.options.tokenizer=this.options.tokenizer||new w,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let e={block:ta.normal,inline:to.normal};this.options.pedantic?(e.block=ta.pedantic,e.inline=to.pedantic):this.options.gfm&&(e.block=ta.gfm,this.options.breaks?e.inline=to.breaks:e.inline=to.gfm),this.tokenizer.rules=e}static get rules(){return{block:ta,inline:to}}static lex(t,e){return new ts(e).lex(t)}static lexInline(t,e){return new ts(e).inlineTokens(t)}lex(t){t=t.replace(/\r\n|\r/g,"\n"),this.blockTokens(t,this.tokens);for(let t=0;t<this.inlineQueue.length;t++){let e=this.inlineQueue[t];this.inlineTokens(e.src,e.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,e=[],r=!1){let i,n,a;for(t=this.options.pedantic?t.replace(/\t/g," ").replace(/^ +$/gm,""):t.replace(/^( *)(\t+)/gm,(t,e,r)=>e+" ".repeat(r.length));t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(r=>!!(i=r.call({lexer:this},t,e))&&(t=t.substring(i.raw.length),e.push(i),!0)))){if(i=this.tokenizer.space(t)){t=t.substring(i.raw.length),1===i.raw.length&&e.length>0?e[e.length-1].raw+="\n":e.push(i);continue}if(i=this.tokenizer.code(t)){t=t.substring(i.raw.length),(n=e[e.length-1])&&("paragraph"===n.type||"text"===n.type)?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue[this.inlineQueue.length-1].src=n.text):e.push(i);continue}if((i=this.tokenizer.fences(t))||(i=this.tokenizer.heading(t))||(i=this.tokenizer.hr(t))||(i=this.tokenizer.blockquote(t))||(i=this.tokenizer.list(t))||(i=this.tokenizer.html(t))){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.def(t)){t=t.substring(i.raw.length),(n=e[e.length-1])&&("paragraph"===n.type||"text"===n.type)?(n.raw+="\n"+i.raw,n.text+="\n"+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=n.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title});continue}if((i=this.tokenizer.table(t))||(i=this.tokenizer.lheading(t))){t=t.substring(i.raw.length),e.push(i);continue}if(a=t,this.options.extensions&&this.options.extensions.startBlock){let e,r=1/0,i=t.slice(1);this.options.extensions.startBlock.forEach(t=>{"number"==typeof(e=t.call({lexer:this},i))&&e>=0&&(r=Math.min(r,e))}),r<1/0&&r>=0&&(a=t.substring(0,r+1))}if(this.state.top&&(i=this.tokenizer.paragraph(a))){n=e[e.length-1],r&&n?.type==="paragraph"?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):e.push(i),r=a.length!==t.length,t=t.substring(i.raw.length);continue}if(i=this.tokenizer.text(t)){t=t.substring(i.raw.length),(n=e[e.length-1])&&"text"===n.type?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):e.push(i);continue}if(t){let e="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(e);break}throw Error(e)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){let r,i,n,a,o,s;let l=t;if(this.tokens.links){let t=Object.keys(this.tokens.links);if(t.length>0)for(;null!=(a=this.tokenizer.rules.inline.reflinkSearch.exec(l));)t.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,a.index)+"["+"a".repeat(a[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(a=this.tokenizer.rules.inline.blockSkip.exec(l));)l=l.slice(0,a.index)+"["+"a".repeat(a[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(a=this.tokenizer.rules.inline.anyPunctuation.exec(l));)l=l.slice(0,a.index)+"++"+l.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;t;)if(o||(s=""),o=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(i=>!!(r=i.call({lexer:this},t,e))&&(t=t.substring(r.raw.length),e.push(r),!0)))){if(r=this.tokenizer.escape(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.tag(t)){t=t.substring(r.raw.length),(i=e[e.length-1])&&"text"===r.type&&"text"===i.type?(i.raw+=r.raw,i.text+=r.text):e.push(r);continue}if(r=this.tokenizer.link(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(r.raw.length),(i=e[e.length-1])&&"text"===r.type&&"text"===i.type?(i.raw+=r.raw,i.text+=r.text):e.push(r);continue}if((r=this.tokenizer.emStrong(t,l,s))||(r=this.tokenizer.codespan(t))||(r=this.tokenizer.br(t))||(r=this.tokenizer.del(t))||(r=this.tokenizer.autolink(t))||!this.state.inLink&&(r=this.tokenizer.url(t))){t=t.substring(r.raw.length),e.push(r);continue}if(n=t,this.options.extensions&&this.options.extensions.startInline){let e,r=1/0,i=t.slice(1);this.options.extensions.startInline.forEach(t=>{"number"==typeof(e=t.call({lexer:this},i))&&e>=0&&(r=Math.min(r,e))}),r<1/0&&r>=0&&(n=t.substring(0,r+1))}if(r=this.tokenizer.inlineText(n)){t=t.substring(r.raw.length),"_"!==r.raw.slice(-1)&&(s=r.raw.slice(-1)),o=!0,(i=e[e.length-1])&&"text"===i.type?(i.raw+=r.raw,i.text+=r.text):e.push(r);continue}if(t){let e="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(e);break}throw Error(e)}}return e}}class tl{options;parser;constructor(t){this.options=t||s}space(t){return""}code({text:t,lang:e,escaped:r}){let i=(e||"").match(/^\S*/)?.[0],n=t.replace(/\n$/,"")+"\n";return i?'<pre><code class="language-'+f(i)+'">'+(r?n:f(n,!0))+"</code></pre>\n":"<pre><code>"+(r?n:f(n,!0))+"</code></pre>\n"}blockquote({tokens:t}){let e=this.parser.parse(t);return`<blockquote> +${e}</blockquote> +`}html({text:t}){return t}heading({tokens:t,depth:e}){return`<h${e}>${this.parser.parseInline(t)}</h${e}> +`}hr(t){return"<hr>\n"}list(t){let e=t.ordered,r=t.start,i="";for(let e=0;e<t.items.length;e++){let r=t.items[e];i+=this.listitem(r)}let n=e?"ol":"ul";return"<"+n+(e&&1!==r?' start="'+r+'"':"")+">\n"+i+"</"+n+">\n"}listitem(t){let e="";if(t.task){let r=this.checkbox({checked:!!t.checked});t.loose?t.tokens.length>0&&"paragraph"===t.tokens[0].type?(t.tokens[0].text=r+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&"text"===t.tokens[0].tokens[0].type&&(t.tokens[0].tokens[0].text=r+" "+t.tokens[0].tokens[0].text)):t.tokens.unshift({type:"text",raw:r+" ",text:r+" "}):e+=r+" "}return e+=this.parser.parse(t.tokens,!!t.loose),`<li>${e}</li> +`}checkbox({checked:t}){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox">'}paragraph({tokens:t}){return`<p>${this.parser.parseInline(t)}</p> +`}table(t){let e="",r="";for(let e=0;e<t.header.length;e++)r+=this.tablecell(t.header[e]);e+=this.tablerow({text:r});let i="";for(let e=0;e<t.rows.length;e++){let n=t.rows[e];r="";for(let t=0;t<n.length;t++)r+=this.tablecell(n[t]);i+=this.tablerow({text:r})}return i&&(i=`<tbody>${i}</tbody>`),"<table>\n<thead>\n"+e+"</thead>\n"+i+"</table>\n"}tablerow({text:t}){return`<tr> +${t}</tr> +`}tablecell(t){let e=this.parser.parseInline(t.tokens),r=t.header?"th":"td";return(t.align?`<${r} align="${t.align}">`:`<${r}>`)+e+`</${r}> +`}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${t}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:e,tokens:r}){let i=this.parser.parseInline(r),n=x(t);if(null===n)return i;let a='<a href="'+(t=n)+'"';return e&&(a+=' title="'+e+'"'),a+=">"+i+"</a>"}image({href:t,title:e,text:r}){let i=x(t);if(null===i)return r;t=i;let n=`<img src="${t}" alt="${r}"`;return e&&(n+=` title="${e}"`),n+=">"}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):t.text}}class th{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}}class tc{options;renderer;textRenderer;constructor(t){this.options=t||s,this.options.renderer=this.options.renderer||new tl,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new th}static parse(t,e){return new tc(e).parse(t)}static parseInline(t,e){return new tc(e).parseInline(t)}parse(t,e=!0){let r="";for(let i=0;i<t.length;i++){let n=t[i];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[n.type]){let t=this.options.extensions.renderers[n.type].call({parser:this},n);if(!1!==t||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(n.type)){r+=t||"";continue}}switch(n.type){case"space":r+=this.renderer.space(n);continue;case"hr":r+=this.renderer.hr(n);continue;case"heading":r+=this.renderer.heading(n);continue;case"code":r+=this.renderer.code(n);continue;case"table":r+=this.renderer.table(n);continue;case"blockquote":r+=this.renderer.blockquote(n);continue;case"list":r+=this.renderer.list(n);continue;case"html":r+=this.renderer.html(n);continue;case"paragraph":r+=this.renderer.paragraph(n);continue;case"text":{let a=n,o=this.renderer.text(a);for(;i+1<t.length&&"text"===t[i+1].type;)a=t[++i],o+="\n"+this.renderer.text(a);e?r+=this.renderer.paragraph({type:"paragraph",raw:o,text:o,tokens:[{type:"text",raw:o,text:o}]}):r+=o;continue}default:{let t='Token with "'+n.type+'" type was not found.';if(this.options.silent)return console.error(t),"";throw Error(t)}}}return r}parseInline(t,e){e=e||this.renderer;let r="";for(let i=0;i<t.length;i++){let n=t[i];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[n.type]){let t=this.options.extensions.renderers[n.type].call({parser:this},n);if(!1!==t||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(n.type)){r+=t||"";continue}}switch(n.type){case"escape":case"text":r+=e.text(n);break;case"html":r+=e.html(n);break;case"link":r+=e.link(n);break;case"image":r+=e.image(n);break;case"strong":r+=e.strong(n);break;case"em":r+=e.em(n);break;case"codespan":r+=e.codespan(n);break;case"br":r+=e.br(n);break;case"del":r+=e.del(n);break;default:{let t='Token with "'+n.type+'" type was not found.';if(this.options.silent)return console.error(t),"";throw Error(t)}}}return r}}class tu{options;constructor(t){this.options=t||s}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}}class td{defaults=o();options=this.setOptions;parse=this.#t(ts.lex,tc.parse);parseInline=this.#t(ts.lexInline,tc.parseInline);Parser=tc;Renderer=tl;TextRenderer=th;Lexer=ts;Tokenizer=w;Hooks=tu;constructor(...t){this.use(...t)}walkTokens(t,e){let r=[];for(let i of t)switch(r=r.concat(e.call(this,i)),i.type){case"table":for(let t of i.header)r=r.concat(this.walkTokens(t.tokens,e));for(let t of i.rows)for(let i of t)r=r.concat(this.walkTokens(i.tokens,e));break;case"list":r=r.concat(this.walkTokens(i.items,e));break;default:{let t=i;this.defaults.extensions?.childTokens?.[t.type]?this.defaults.extensions.childTokens[t.type].forEach(i=>{let n=t[i].flat(1/0);r=r.concat(this.walkTokens(n,e))}):t.tokens&&(r=r.concat(this.walkTokens(t.tokens,e)))}}return r}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(t=>{let r={...t};if(r.async=this.defaults.async||r.async||!1,t.extensions&&(t.extensions.forEach(t=>{if(!t.name)throw Error("extension name required");if("renderer"in t){let r=e.renderers[t.name];r?e.renderers[t.name]=function(...e){let i=t.renderer.apply(this,e);return!1===i&&(i=r.apply(this,e)),i}:e.renderers[t.name]=t.renderer}if("tokenizer"in t){if(!t.level||"block"!==t.level&&"inline"!==t.level)throw Error("extension level must be 'block' or 'inline'");let r=e[t.level];r?r.unshift(t.tokenizer):e[t.level]=[t.tokenizer],t.start&&("block"===t.level?e.startBlock?e.startBlock.push(t.start):e.startBlock=[t.start]:"inline"===t.level&&(e.startInline?e.startInline.push(t.start):e.startInline=[t.start]))}"childTokens"in t&&t.childTokens&&(e.childTokens[t.name]=t.childTokens)}),r.extensions=e),t.renderer){let e=this.defaults.renderer||new tl(this.defaults);for(let r in t.renderer){if(!(r in e))throw Error(`renderer '${r}' does not exist`);if(["options","parser"].includes(r))continue;let i=t.renderer[r];t.useNewRenderer||(i=this.#e(i,r,e));let n=e[r];e[r]=(...t)=>{let r=i.apply(e,t);return!1===r&&(r=n.apply(e,t)),r||""}}r.renderer=e}if(t.tokenizer){let e=this.defaults.tokenizer||new w(this.defaults);for(let r in t.tokenizer){if(!(r in e))throw Error(`tokenizer '${r}' does not exist`);if(["options","rules","lexer"].includes(r))continue;let i=t.tokenizer[r],n=e[r];e[r]=(...t)=>{let r=i.apply(e,t);return!1===r&&(r=n.apply(e,t)),r}}r.tokenizer=e}if(t.hooks){let e=this.defaults.hooks||new tu;for(let r in t.hooks){if(!(r in e))throw Error(`hook '${r}' does not exist`);if("options"===r)continue;let i=t.hooks[r],n=e[r];tu.passThroughHooks.has(r)?e[r]=t=>{if(this.defaults.async)return Promise.resolve(i.call(e,t)).then(t=>n.call(e,t));let r=i.call(e,t);return n.call(e,r)}:e[r]=(...t)=>{let r=i.apply(e,t);return!1===r&&(r=n.apply(e,t)),r}}r.hooks=e}if(t.walkTokens){let e=this.defaults.walkTokens,i=t.walkTokens;r.walkTokens=function(t){let r=[];return r.push(i.call(this,t)),e&&(r=r.concat(e.call(this,t))),r}}this.defaults={...this.defaults,...r}}),this}#e(t,e,r){switch(e){case"heading":return function(i){return i.type&&i.type===e?t.call(this,r.parser.parseInline(i.tokens),i.depth,r.parser.parseInline(i.tokens,r.parser.textRenderer).replace(g,(t,e)=>"colon"===(e=e.toLowerCase())?":":"#"===e.charAt(0)?"x"===e.charAt(1)?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1)):"")):t.apply(this,arguments)};case"code":return function(r){return r.type&&r.type===e?t.call(this,r.text,r.lang,!!r.escaped):t.apply(this,arguments)};case"table":return function(r){if(!r.type||r.type!==e)return t.apply(this,arguments);let i="",n="";for(let t=0;t<r.header.length;t++)n+=this.tablecell({text:r.header[t].text,tokens:r.header[t].tokens,header:!0,align:r.align[t]});i+=this.tablerow({text:n});let a="";for(let t=0;t<r.rows.length;t++){let e=r.rows[t];n="";for(let t=0;t<e.length;t++)n+=this.tablecell({text:e[t].text,tokens:e[t].tokens,header:!1,align:r.align[t]});a+=this.tablerow({text:n})}return t.call(this,i,a)};case"blockquote":return function(r){if(!r.type||r.type!==e)return t.apply(this,arguments);let i=this.parser.parse(r.tokens);return t.call(this,i)};case"list":return function(r){if(!r.type||r.type!==e)return t.apply(this,arguments);let i=r.ordered,n=r.start,a=r.loose,o="";for(let t=0;t<r.items.length;t++){let e=r.items[t],i=e.checked,n=e.task,s="";if(e.task){let t=this.checkbox({checked:!!i});a?e.tokens.length>0&&"paragraph"===e.tokens[0].type?(e.tokens[0].text=t+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&"text"===e.tokens[0].tokens[0].type&&(e.tokens[0].tokens[0].text=t+" "+e.tokens[0].tokens[0].text)):e.tokens.unshift({type:"text",text:t+" "}):s+=t+" "}s+=this.parser.parse(e.tokens,a),o+=this.listitem({type:"list_item",raw:s,text:s,task:n,checked:!!i,loose:a,tokens:e.tokens})}return t.call(this,o,i,n)};case"html":return function(r){return r.type&&r.type===e?t.call(this,r.text,r.block):t.apply(this,arguments)};case"paragraph":case"strong":case"del":case"em":return function(r){return r.type&&r.type===e?t.call(this,this.parser.parseInline(r.tokens)):t.apply(this,arguments)};case"escape":case"text":case"codespan":return function(r){return r.type&&r.type===e?t.call(this,r.text):t.apply(this,arguments)};case"link":return function(r){return r.type&&r.type===e?t.call(this,r.href,r.title,this.parser.parseInline(r.tokens)):t.apply(this,arguments)};case"image":return function(r){return r.type&&r.type===e?t.call(this,r.href,r.title,r.text):t.apply(this,arguments)}}return t}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return ts.lex(t,e??this.defaults)}parser(t,e){return tc.parse(t,e??this.defaults)}#t(t,e){return(r,i)=>{let n={...i},a={...this.defaults,...n};!0===this.defaults.async&&!1===n.async&&(a.silent||console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."),a.async=!0);let o=this.#r(!!a.silent,!!a.async);if(null==r)return o(Error("marked(): input parameter is undefined or null"));if("string"!=typeof r)return o(Error("marked(): input parameter is of type "+Object.prototype.toString.call(r)+", string expected"));if(a.hooks&&(a.hooks.options=a),a.async)return Promise.resolve(a.hooks?a.hooks.preprocess(r):r).then(e=>t(e,a)).then(t=>a.hooks?a.hooks.processAllTokens(t):t).then(t=>a.walkTokens?Promise.all(this.walkTokens(t,a.walkTokens)).then(()=>t):t).then(t=>e(t,a)).then(t=>a.hooks?a.hooks.postprocess(t):t).catch(o);try{a.hooks&&(r=a.hooks.preprocess(r));let i=t(r,a);a.hooks&&(i=a.hooks.processAllTokens(i)),a.walkTokens&&this.walkTokens(i,a.walkTokens);let n=e(i,a);return a.hooks&&(n=a.hooks.postprocess(n)),n}catch(t){return o(t)}}}#r(t,e){return r=>{if(r.message+="\nPlease report this to https://github.com/markedjs/marked.",t){let t="<p>An error occurred:</p><pre>"+f(r.message+"",!0)+"</pre>";return e?Promise.resolve(t):t}if(e)return Promise.reject(r);throw r}}}let tp=new td;function tf(t,e){return tp.parse(t,e)}tf.options=tf.setOptions=function(t){return tp.setOptions(t),tf.defaults=tp.defaults,s=tf.defaults,tf},tf.getDefaults=o,tf.defaults=s,tf.use=function(...t){return tp.use(...t),tf.defaults=tp.defaults,s=tf.defaults,tf},tf.walkTokens=function(t,e){return tp.walkTokens(t,e)},tf.parseInline=tp.parseInline,tf.Parser=tc,tf.parser=tc.parse,tf.Renderer=tl,tf.TextRenderer=th,tf.Lexer=ts,tf.lexer=ts.lex,tf.Tokenizer=w,tf.Hooks=tu,tf.parse=tf,tf.options,tf.setOptions,tf.use,tf.walkTokens,tf.parseInline,tc.parse,ts.lex;var tg=r(97597);function ty(t,{markdownAutoWrap:e}){let r=t.replace(/<br\/>/g,"\n").replace(/\n{2,}/g,"\n"),i=(0,tg.T)(r);return!1===e?i.replace(/ /g," "):i}function tm(t,e={}){let r=ty(t,e),i=tf.lexer(r),a=[[]],o=0;function s(t,e="normal"){"text"===t.type?t.text.split("\n").forEach((t,r)=>{0!==r&&(o++,a.push([])),t.split(" ").forEach(t=>{t&&a[o].push({content:t,type:e})})}):"strong"===t.type||"em"===t.type?t.tokens.forEach(e=>{s(e,t.type)}):"html"===t.type&&a[o].push({content:t.text,type:"normal"})}return(0,n.K2)(s,"processNode"),i.forEach(t=>{"paragraph"===t.type?t.tokens?.forEach(t=>{s(t)}):"html"===t.type&&a[o].push({content:t.text,type:"normal"})}),a}function tx(t,{markdownAutoWrap:e}={}){let r=tf.lexer(t);function i(t){return"text"===t.type?!1===e?t.text.replace(/\n */g,"<br/>").replace(/ /g," "):t.text.replace(/\n */g,"<br/>"):"strong"===t.type?`<strong>${t.tokens?.map(i).join("")}</strong>`:"em"===t.type?`<em>${t.tokens?.map(i).join("")}</em>`:"paragraph"===t.type?`<p>${t.tokens?.map(i).join("")}</p>`:"space"===t.type?"":"html"===t.type?`${t.text}`:`Unsupported markdown: ${t.type}`}return(0,n.K2)(i,"output"),r.map(i).join("")}function tb(t){return Intl.Segmenter?[...new Intl.Segmenter().segment(t)].map(t=>t.segment):[...t]}function tC(t,e){return tk(t,[],tb(e.content),e.type)}function tk(t,e,r,i){if(0===r.length)return[{content:e.join(""),type:i},{content:"",type:i}];let[n,...a]=r,o=[...e,n];return t([{content:o.join(""),type:i}])?tk(t,o,a,i):(0===e.length&&n&&(e.push(n),r.shift()),[{content:e.join(""),type:i},{content:r.join(""),type:i}])}function t_(t,e){if(t.some(({content:t})=>t.includes("\n")))throw Error("splitLineToFitWidth does not support newlines in the line");return tw(t,e)}function tw(t,e,r=[],i=[]){if(0===t.length)return i.length>0&&r.push(i),r.length>0?r:[];let n="";" "===t[0].content&&(n=" ",t.shift());let a=t.shift()??{content:" ",type:"normal"},o=[...i];if(""!==n&&o.push({content:n,type:"normal"}),o.push(a),e(o))return tw(t,e,r,o);if(i.length>0)r.push(i),t.unshift(a);else if(a.content){let[i,n]=tC(e,a);r.push([i]),n.content&&t.unshift(n)}return tw(t,e,r)}function tv(t,e){e&&t.attr("style",e)}async function tT(t,e,r,i,a=!1){let o=t.append("foreignObject");o.attr("width",`${10*r}px`),o.attr("height",`${10*r}px`);let s=o.append("xhtml:div"),l=e.label;e.label&&(0,n.Wi)(e.label)&&(l=await (0,n.VJ)(e.label.replace(n.Y2.lineBreakRegex,"\n"),(0,n.D7)()));let h=e.isNode?"nodeLabel":"edgeLabel",c=s.append("span");c.html(l),tv(c,e.labelStyle),c.attr("class",`${h} ${i}`),tv(s,e.labelStyle),s.style("display","table-cell"),s.style("white-space","nowrap"),s.style("line-height","1.5"),s.style("max-width",r+"px"),s.style("text-align","center"),s.attr("xmlns","http://www.w3.org/1999/xhtml"),a&&s.attr("class","labelBkg");let u=s.node().getBoundingClientRect();return u.width===r&&(s.style("display","table"),s.style("white-space","break-spaces"),s.style("width",r+"px"),u=s.node().getBoundingClientRect()),o.node()}function tA(t,e,r){return t.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",e*r-.1+"em").attr("dy",r+"em")}function tS(t,e,r){let i=t.append("text"),n=tA(i,1,e);tL(n,r);let a=n.node().getComputedTextLength();return i.remove(),a}function tB(t,e,r){let i=t.append("text"),n=tA(i,1,e);tL(n,[{content:r,type:"normal"}]);let a=n.node()?.getBoundingClientRect();return a&&i.remove(),a}function tM(t,e,r,i=!1){let a=e.append("g"),o=a.insert("rect").attr("class","background").attr("style","stroke: none"),s=a.append("text").attr("y","-10.1"),l=0;for(let e of r){let r=(0,n.K2)(e=>tS(a,1.1,e)<=t,"checkWidth");for(let t of r(e)?[e]:t_(e,r))tL(tA(s,l,1.1),t),l++}if(!i)return s.node();{let t=s.node().getBBox();return o.attr("x",-2).attr("y",-2).attr("width",t.width+4).attr("height",t.height+4),a.node()}}function tL(t,e){t.text(""),e.forEach((e,r)=>{let i=t.append("tspan").attr("font-style","em"===e.type?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight","strong"===e.type?"bold":"normal");0===r?i.text(e.content):i.text(" "+e.content)})}function tF(t){return t.replace(/fa[bklrs]?:fa-[\w-]+/g,t=>`<i class='${t.replace(":"," ")}'></i>`)}(0,n.K2)(ty,"preprocessMarkdown"),(0,n.K2)(tm,"markdownToLines"),(0,n.K2)(tx,"markdownToHTML"),(0,n.K2)(tb,"splitTextToChars"),(0,n.K2)(tC,"splitWordToFitWidth"),(0,n.K2)(tk,"splitWordToFitWidthRecursion"),(0,n.K2)(t_,"splitLineToFitWidth"),(0,n.K2)(tw,"splitLineToFitWidthRecursion"),(0,n.K2)(tv,"applyStyle"),(0,n.K2)(tT,"addHtmlSpan"),(0,n.K2)(tA,"createTspan"),(0,n.K2)(tS,"computeWidthOfText"),(0,n.K2)(tB,"computeDimensionOfText"),(0,n.K2)(tM,"createFormattedText"),(0,n.K2)(tL,"updateTextContentAndStyles"),(0,n.K2)(tF,"replaceIconSubstring");var tE=(0,n.K2)(async(t,e="",{style:r="",isTitle:o=!1,classes:s="",useHtmlLabels:l=!0,isNode:h=!0,width:c=200,addSvgBackground:u=!1}={},d)=>{if(n.Rm.debug("XYZ createText",e,r,o,s,l,h,"addSvgBackground: ",u),l){let a=tx(e,d),o=tF((0,i.Sm)(a)),l=e.replace(/\\\\/g,"\\"),p={isNode:h,label:(0,n.Wi)(e)?l:o,labelStyle:r.replace("fill:","color:")};return await tT(t,p,c,s,u)}{let i=tM(c,t,tm(e.replace(/<br\s*\/?>/g,"<br/>").replace("<br>","<br/>"),d),!!e&&u);if(h){/stroke:/.exec(r)&&(r=r.replace("stroke:","lineColor:"));let t=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");(0,a.Ltv)(i).attr("style",t)}else{let t=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");(0,a.Ltv)(i).select("rect").attr("style",t.replace(/background:/g,"fill:"));let e=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");(0,a.Ltv)(i).select("text").attr("style",e)}return i}},"createText")},90492:(t,e,r)=>{"use strict";r.d(e,{WY:()=>A,pC:()=>v,Gc:()=>k});var i=r(72912);let n=/^[a-z0-9]+(-[a-z0-9]+)*$/,a=(t,e,r,i="")=>{let n=t.split(":");if("@"===t.slice(0,1)){if(n.length<2||n.length>3)return null;i=n.shift().slice(1)}if(n.length>3||!n.length)return null;if(n.length>1){let t=n.pop(),r=n.pop(),a={provider:n.length>0?n[0]:i,prefix:r,name:t};return e&&!o(a)?null:a}let a=n[0],s=a.split("-");if(s.length>1){let t={provider:i,prefix:s.shift(),name:s.join("-")};return e&&!o(t)?null:t}if(r&&""===i){let t={provider:i,prefix:"",name:a};return e&&!o(t,r)?null:t}return null},o=(t,e)=>!!t&&!!((""===t.provider||t.provider.match(n))&&(e&&""===t.prefix||t.prefix.match(n))&&t.name.match(n)),s=Object.freeze({left:0,top:0,width:16,height:16}),l=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),h=Object.freeze({...s,...l}),c=Object.freeze({...h,body:"",hidden:!1});function u(t,e){let r=function(t,e){let r={};!t.hFlip!=!e.hFlip&&(r.hFlip=!0),!t.vFlip!=!e.vFlip&&(r.vFlip=!0);let i=((t.rotate||0)+(e.rotate||0))%4;return i&&(r.rotate=i),r}(t,e);for(let i in c)i in l?i in t&&!(i in r)&&(r[i]=l[i]):i in e?r[i]=e[i]:i in t&&(r[i]=t[i]);return r}function d(t,e,r){let i=t.icons,n=t.aliases||Object.create(null),a={};function o(t){a=u(i[t]||n[t],a)}return o(e),r.forEach(o),u(t,a)}let p=Object.freeze({...Object.freeze({width:null,height:null}),...l}),f=/(-?[0-9.]*[0-9]+[0-9.]*)/g,g=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function y(t,e,r){if(1===e)return t;if(r=r||100,"number"==typeof t)return Math.ceil(t*e*r)/r;if("string"!=typeof t)return t;let i=t.split(f);if(null===i||!i.length)return t;let n=[],a=i.shift(),o=g.test(a);for(;;){if(o){let t=parseFloat(a);isNaN(t)?n.push(a):n.push(Math.ceil(t*e*r)/r)}else n.push(a);if(void 0===(a=i.shift()))return n.join("");o=!o}}let m=t=>"unset"===t||"undefined"===t||"none"===t,x=/\sid="(\S+)"/g,b="IconifyId"+Date.now().toString(16)+(16777216*Math.random()|0).toString(16),C=0;var k={body:'<g><rect width="80" height="80" style="fill: #087ebf; stroke-width: 0px;"/><text transform="translate(21.16 64.67)" style="fill: #fff; font-family: ArialMT, Arial; font-size: 67.75px;"><tspan x="0" y="0">?</tspan></text></g>',height:80,width:80},_=new Map,w=new Map,v=(0,i.K2)(t=>{for(let e of t){if(!e.name)throw Error('Invalid icon loader. Must have a "name" property with non-empty string value.');if(i.Rm.debug("Registering icon pack:",e.name),"loader"in e)w.set(e.name,e.loader);else if("icons"in e)_.set(e.name,e.icons);else throw i.Rm.error("Invalid icon loader:",e),Error('Invalid icon loader. Must have either "icons" or "loader" property.')}},"registerIconPacks"),T=(0,i.K2)(async(t,e)=>{let r=a(t,!0,void 0!==e);if(!r)throw Error(`Invalid icon name: ${t}`);let n=r.prefix||e;if(!n)throw Error(`Icon name must contain a prefix: ${t}`);let o=_.get(n);if(!o){let t=w.get(n);if(!t)throw Error(`Icon set not found: ${r.prefix}`);try{o={...await t(),prefix:n},_.set(n,o)}catch(t){throw i.Rm.error(t),Error(`Failed to load icon set: ${r.prefix}`)}}let s=function(t,e){if(t.icons[e])return d(t,e,[]);let r=function(t,e){let r=t.icons,i=t.aliases||Object.create(null),n=Object.create(null);return(e||Object.keys(r).concat(Object.keys(i))).forEach(function t(e){if(r[e])return n[e]=[];if(!(e in n)){n[e]=null;let r=i[e]&&i[e].parent,a=r&&t(r);a&&(n[e]=[r].concat(a))}return n[e]}),n}(t,[e])[e];return r?d(t,e,r):null}(o,r.name);if(!s)throw Error(`Icon not found: ${t}`);return s},"getRegisteredIconData"),A=(0,i.K2)(async(t,e)=>{let r;try{r=await T(t,e?.fallbackPrefix)}catch(t){i.Rm.error(t),r=k}let n=function(t,e){let r,i;let n={...h,...t},a={...p,...e},o={left:n.left,top:n.top,width:n.width,height:n.height},s=n.body;[n,a].forEach(t=>{let e;let r=[],i=t.hFlip,n=t.vFlip,a=t.rotate;switch(i?n?a+=2:(r.push("translate("+(o.width+o.left).toString()+" "+(0-o.top).toString()+")"),r.push("scale(-1 1)"),o.top=o.left=0):n&&(r.push("translate("+(0-o.left).toString()+" "+(o.height+o.top).toString()+")"),r.push("scale(1 -1)"),o.top=o.left=0),a<0&&(a-=4*Math.floor(a/4)),a%=4){case 1:r.unshift("rotate(90 "+(e=o.height/2+o.top).toString()+" "+e.toString()+")");break;case 2:r.unshift("rotate(180 "+(o.width/2+o.left).toString()+" "+(o.height/2+o.top).toString()+")");break;case 3:r.unshift("rotate(-90 "+(e=o.width/2+o.left).toString()+" "+e.toString()+")")}a%2==1&&(o.left!==o.top&&(e=o.left,o.left=o.top,o.top=e),o.width!==o.height&&(e=o.width,o.width=o.height,o.height=e)),r.length&&(s=function(t,e,r){var i,n;let a=function(t,e="defs"){let r="",i=t.indexOf("<"+e);for(;i>=0;){let n=t.indexOf(">",i),a=t.indexOf("</"+e);if(-1===n||-1===a)break;let o=t.indexOf(">",a);if(-1===o)break;r+=t.slice(n+1,a).trim(),t=t.slice(0,i).trim()+t.slice(o+1)}return{defs:r,content:t}}(t);return i=a.defs,n=e+a.content+r,i?"<defs>"+i+"</defs>"+n:n}(s,'<g transform="'+r.join(" ")+'">',"</g>"))});let l=a.width,c=a.height,u=o.width,d=o.height;null===l?r=y(i=null===c?"1em":"auto"===c?d:c,u/d):(r="auto"===l?u:l,i=null===c?y(r,d/u):"auto"===c?d:c);let f={},g=(t,e)=>{m(e)||(f[t]=e.toString())};g("width",r),g("height",i);let x=[o.left,o.top,u,d];return f.viewBox=x.join(" "),{attributes:f,viewBox:x,body:s}}(r,e);return function(t,e){let r=-1===t.indexOf("xlink:")?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(let t in e)r+=" "+t+'="'+e[t]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+r+">"+t+"</svg>"}(function(t,e=b){let r;let i=[];for(;r=x.exec(t);)i.push(r[1]);if(!i.length)return t;let n="suffix"+(16777216*Math.random()|Date.now()).toString(16);return i.forEach(r=>{let i="function"==typeof e?e(r):e+(C++).toString(),a=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(RegExp('([#;"])('+a+')([")]|\\.[a-z])',"g"),"$1"+i+n+"$3")}),t=t.replace(RegExp(n,"g"),"")}(n.body),n.attributes)},"getIconSVG")},93491:(t,e,r)=>{"use strict";r.d(e,{D:()=>a});var i=r(72912),n=r(89601),a=(0,i.K2)(t=>{let{securityLevel:e}=(0,i.D7)(),r=(0,n.Ltv)("body");if("sandbox"===e){let e=(0,n.Ltv)(`#i${t}`),i=e.node()?.contentDocument??document;r=(0,n.Ltv)(i.body)}return r.select(`#${t}`)},"selectSvgElement")},72912:(t,e,r)=>{"use strict";let i;r.d(e,{C0:()=>A,VA:()=>x,K2:()=>m,xA:()=>td,hH:()=>$,Dl:()=>tP,IU:()=>t3,Wt:()=>tQ,Y2:()=>tj,a$:()=>tH,sb:()=>tt,ME:()=>er,UI:()=>X,Ch:()=>B,mW:()=>S,DB:()=>v,_3:()=>tF,EJ:()=>w,m7:()=>t8,iN:()=>t6,zj:()=>tc,D7:()=>et,Gs:()=>el,J$:()=>F,ab:()=>t7,Q2:()=>tl,P$:()=>K,Wi:()=>tN,H1:()=>tx,Rm:()=>C,QO:()=>tO,Js:()=>es,Xd:()=>M,VJ:()=>tK,cL:()=>tp,$i:()=>Q,jZ:()=>tv,wZ:()=>to,EI:()=>t4,SV:()=>t5,Nk:()=>th,XV:()=>ee,ke:()=>t9,He:()=>k,UU:()=>ta,ot:()=>tY,mj:()=>en,tM:()=>tX,H$:()=>H,B6:()=>ts});var n,a=r(95285),o=r(112),s=r(91946);let l=(t,e)=>{let r=o.A.parse(t),i={};for(let t in e)e[t]&&(i[t]=r[t]+e[t]);return(0,s.A)(t,i)};var h=r(18448);let c=(t,e,r=50)=>{let{r:i,g:n,b:a,a:s}=o.A.parse(t),{r:l,g:c,b:u,a:d}=o.A.parse(e),p=r/100,f=2*p-1,g=s-d,y=((f*g==-1?f:(f+g)/(1+f*g))+1)/2,m=1-y;return(0,h.A)(i*y+l*m,n*y+c*m,a*y+u*m,s*p+d*(1-p))},u=(t,e=100)=>{let r=o.A.parse(t);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,c(r,t,e)};var d=r(57721),p=r(68459),f=r(71725),g=r(31234),y=Object.defineProperty,m=(t,e)=>y(t,"name",{value:e,configurable:!0}),x=(t,e)=>{for(var r in e)y(t,r,{get:e[r],enumerable:!0})},b={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},C={trace:m((...t)=>{},"trace"),debug:m((...t)=>{},"debug"),info:m((...t)=>{},"info"),warn:m((...t)=>{},"warn"),error:m((...t)=>{},"error"),fatal:m((...t)=>{},"fatal")},k=m(function(t="fatal"){let e=b.fatal;"string"==typeof t?t.toLowerCase() in b&&(e=b[t]):"number"==typeof t&&(e=t),C.trace=()=>{},C.debug=()=>{},C.info=()=>{},C.warn=()=>{},C.error=()=>{},C.fatal=()=>{},e<=b.fatal&&(C.fatal=console.error?console.error.bind(console,_("FATAL"),"color: orange"):console.log.bind(console,"\x1b[35m",_("FATAL"))),e<=b.error&&(C.error=console.error?console.error.bind(console,_("ERROR"),"color: orange"):console.log.bind(console,"\x1b[31m",_("ERROR"))),e<=b.warn&&(C.warn=console.warn?console.warn.bind(console,_("WARN"),"color: orange"):console.log.bind(console,`\x1b[33m`,_("WARN"))),e<=b.info&&(C.info=console.info?console.info.bind(console,_("INFO"),"color: lightblue"):console.log.bind(console,"\x1b[34m",_("INFO"))),e<=b.debug&&(C.debug=console.debug?console.debug.bind(console,_("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",_("DEBUG"))),e<=b.trace&&(C.trace=console.debug?console.debug.bind(console,_("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",_("TRACE")))},"setLogLevel"),_=m(t=>{let e=a().format("ss.SSS");return`%c${e} : ${t} : `},"format"),w=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,v=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,T=/\s*%%.*\n/gm,A=class extends Error{static{m(this,"UnknownDiagramError")}constructor(t){super(t),this.name="UnknownDiagramError"}},S={},B=m(function(t,e){for(let[r,{detector:i}]of(t=t.replace(w,"").replace(v,"").replace(T,"\n"),Object.entries(S)))if(i(t,e))return r;throw new A(`No diagram type detected matching given configuration for text: ${t}`)},"detectType"),M=m((...t)=>{for(let{id:e,detector:r,loader:i}of t)L(e,r,i)},"registerLazyLoadedDiagrams"),L=m((t,e,r)=>{S[t]&&C.warn(`Detector with key ${t} already exists. Overwriting.`),S[t]={detector:e,loader:r},C.debug(`Detector with key ${t} added${r?" with loader":""}`)},"addDetector"),F=m(t=>S[t].loader,"getDiagramLoader"),E=m((t,e,{depth:r=2,clobber:i=!1}={})=>{let n={depth:r,clobber:i};return Array.isArray(e)&&!Array.isArray(t)?(e.forEach(e=>E(t,e,n)),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach(e=>{t.includes(e)||t.push(e)}),t):void 0===t||r<=0?null!=t&&"object"==typeof t&&"object"==typeof e?Object.assign(t,e):e:(void 0!==e&&"object"==typeof t&&"object"==typeof e&&Object.keys(e).forEach(n=>{"object"==typeof e[n]&&(void 0===t[n]||"object"==typeof t[n])?(void 0===t[n]&&(t[n]=Array.isArray(e[n])?[]:{}),t[n]=E(t[n],e[n],{depth:r-1,clobber:i})):(i||"object"!=typeof t[n]&&"object"!=typeof e[n])&&(t[n]=e[n])}),t)},"assignWithDepth"),$=E,O="#ffffff",I="#f2f2f2",D=m((t,e)=>e?l(t,{s:-40,l:10}):l(t,{s:-40,l:-10}),"mkBorder"),R=class{static{m(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||l(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||l(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||D(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||D(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||D(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||D(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||u(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||u(this.tertiaryColor),this.lineColor=this.lineColor||u(this.background),this.arrowheadColor=this.arrowheadColor||u(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?(0,d.A)(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||(0,d.A)(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||u(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||(0,p.A)(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||l(this.primaryColor,{h:30}),this.cScale4=this.cScale4||l(this.primaryColor,{h:60}),this.cScale5=this.cScale5||l(this.primaryColor,{h:90}),this.cScale6=this.cScale6||l(this.primaryColor,{h:120}),this.cScale7=this.cScale7||l(this.primaryColor,{h:150}),this.cScale8=this.cScale8||l(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||l(this.primaryColor,{h:270}),this.cScale10=this.cScale10||l(this.primaryColor,{h:300}),this.cScale11=this.cScale11||l(this.primaryColor,{h:330}),this.darkMode)for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScale"+t]=(0,d.A)(this["cScale"+t],75);else for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScale"+t]=(0,d.A)(this["cScale"+t],25);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||u(this["cScale"+t]);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this.darkMode?this["cScalePeer"+t]=this["cScalePeer"+t]||(0,p.A)(this["cScale"+t],10):this["cScalePeer"+t]=this["cScalePeer"+t]||(0,d.A)(this["cScale"+t],10);this.scaleLabelColor=this.scaleLabelColor||this.labelTextColor;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;let t=this.darkMode?-4:-1;for(let e=0;e<5;e++)this["surface"+e]=this["surface"+e]||l(this.mainBkg,{h:180,s:-15,l:t*(5+3*e)}),this["surfacePeer"+e]=this["surfacePeer"+e]||l(this.mainBkg,{h:180,s:-15,l:t*(8+3*e)});this.classText=this.classText||this.textColor,this.fillType0=this.fillType0||this.primaryColor,this.fillType1=this.fillType1||this.secondaryColor,this.fillType2=this.fillType2||l(this.primaryColor,{h:64}),this.fillType3=this.fillType3||l(this.secondaryColor,{h:64}),this.fillType4=this.fillType4||l(this.primaryColor,{h:-64}),this.fillType5=this.fillType5||l(this.secondaryColor,{h:-64}),this.fillType6=this.fillType6||l(this.primaryColor,{h:128}),this.fillType7=this.fillType7||l(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||l(this.primaryColor,{l:-10}),this.pie5=this.pie5||l(this.secondaryColor,{l:-10}),this.pie6=this.pie6||l(this.tertiaryColor,{l:-10}),this.pie7=this.pie7||l(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||l(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||l(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||l(this.primaryColor,{h:60,l:-20}),this.pie11=this.pie11||l(this.primaryColor,{h:-60,l:-20}),this.pie12=this.pie12||l(this.primaryColor,{h:120,l:-10}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.archEdgeColor=this.archEdgeColor||"#777",this.archEdgeArrowColor=this.archEdgeArrowColor||"#777",this.archEdgeWidth=this.archEdgeWidth||"3",this.archGroupBorderColor=this.archGroupBorderColor||"#000",this.archGroupBorderWidth=this.archGroupBorderWidth||"2px",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||l(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||l(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||l(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||l(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||l(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||l(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,f.A)(this.quadrant1Fill)?(0,p.A)(this.quadrant1Fill):(0,d.A)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:this.xyChart?.backgroundColor||this.background,titleColor:this.xyChart?.titleColor||this.primaryTextColor,xAxisTitleColor:this.xyChart?.xAxisTitleColor||this.primaryTextColor,xAxisLabelColor:this.xyChart?.xAxisLabelColor||this.primaryTextColor,xAxisTickColor:this.xyChart?.xAxisTickColor||this.primaryTextColor,xAxisLineColor:this.xyChart?.xAxisLineColor||this.primaryTextColor,yAxisTitleColor:this.xyChart?.yAxisTitleColor||this.primaryTextColor,yAxisLabelColor:this.xyChart?.yAxisLabelColor||this.primaryTextColor,yAxisTickColor:this.xyChart?.yAxisTickColor||this.primaryTextColor,yAxisLineColor:this.xyChart?.yAxisLineColor||this.primaryTextColor,plotColorPalette:this.xyChart?.plotColorPalette||"#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?(0,d.A)(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||l(this.primaryColor,{h:-30}),this.git4=this.git4||l(this.primaryColor,{h:-60}),this.git5=this.git5||l(this.primaryColor,{h:-90}),this.git6=this.git6||l(this.primaryColor,{h:60}),this.git7=this.git7||l(this.primaryColor,{h:120}),this.darkMode?(this.git0=(0,p.A)(this.git0,25),this.git1=(0,p.A)(this.git1,25),this.git2=(0,p.A)(this.git2,25),this.git3=(0,p.A)(this.git3,25),this.git4=(0,p.A)(this.git4,25),this.git5=(0,p.A)(this.git5,25),this.git6=(0,p.A)(this.git6,25),this.git7=(0,p.A)(this.git7,25)):(this.git0=(0,d.A)(this.git0,25),this.git1=(0,d.A)(this.git1,25),this.git2=(0,d.A)(this.git2,25),this.git3=(0,d.A)(this.git3,25),this.git4=(0,d.A)(this.git4,25),this.git5=(0,d.A)(this.git5,25),this.git6=(0,d.A)(this.git6,25),this.git7=(0,d.A)(this.git7,25)),this.gitInv0=this.gitInv0||u(this.git0),this.gitInv1=this.gitInv1||u(this.git1),this.gitInv2=this.gitInv2||u(this.git2),this.gitInv3=this.gitInv3||u(this.git3),this.gitInv4=this.gitInv4||u(this.git4),this.gitInv5=this.gitInv5||u(this.git5),this.gitInv6=this.gitInv6||u(this.git6),this.gitInv7=this.gitInv7||u(this.git7),this.branchLabelColor=this.branchLabelColor||(this.darkMode?"black":this.labelTextColor),this.gitBranchLabel0=this.gitBranchLabel0||this.branchLabelColor,this.gitBranchLabel1=this.gitBranchLabel1||this.branchLabelColor,this.gitBranchLabel2=this.gitBranchLabel2||this.branchLabelColor,this.gitBranchLabel3=this.gitBranchLabel3||this.branchLabelColor,this.gitBranchLabel4=this.gitBranchLabel4||this.branchLabelColor,this.gitBranchLabel5=this.gitBranchLabel5||this.branchLabelColor,this.gitBranchLabel6=this.gitBranchLabel6||this.branchLabelColor,this.gitBranchLabel7=this.gitBranchLabel7||this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||O,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||I}calculate(t){if("object"!=typeof t){this.updateColors();return}let e=Object.keys(t);e.forEach(e=>{this[e]=t[e]}),this.updateColors(),e.forEach(e=>{this[e]=t[e]})}},z=m(t=>{let e=new R;return e.calculate(t),e},"getThemeVariables"),q=class{static{m(this,"Theme")}constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=(0,p.A)(this.primaryColor,16),this.tertiaryColor=l(this.primaryColor,{h:-160}),this.primaryBorderColor=u(this.background),this.secondaryBorderColor=D(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=D(this.tertiaryColor,this.darkMode),this.primaryTextColor=u(this.primaryColor),this.secondaryTextColor=u(this.secondaryColor),this.tertiaryTextColor=u(this.tertiaryColor),this.lineColor=u(this.background),this.textColor=u(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=(0,p.A)(u("#323D47"),10),this.lineColor="calculated",this.border1="#ccc",this.border2=(0,h.A)(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=(0,d.A)("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=(0,d.A)(this.sectionBkgColor,10),this.taskBorderColor=(0,h.A)(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=(0,h.A)(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=(0,p.A)(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=(0,p.A)(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.actorBorder,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=(0,p.A)(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=l(this.primaryColor,{h:64}),this.fillType3=l(this.secondaryColor,{h:64}),this.fillType4=l(this.primaryColor,{h:-64}),this.fillType5=l(this.secondaryColor,{h:-64}),this.fillType6=l(this.primaryColor,{h:128}),this.fillType7=l(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||l(this.primaryColor,{h:30}),this.cScale4=this.cScale4||l(this.primaryColor,{h:60}),this.cScale5=this.cScale5||l(this.primaryColor,{h:90}),this.cScale6=this.cScale6||l(this.primaryColor,{h:120}),this.cScale7=this.cScale7||l(this.primaryColor,{h:150}),this.cScale8=this.cScale8||l(this.primaryColor,{h:210}),this.cScale9=this.cScale9||l(this.primaryColor,{h:270}),this.cScale10=this.cScale10||l(this.primaryColor,{h:300}),this.cScale11=this.cScale11||l(this.primaryColor,{h:330});for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||u(this["cScale"+t]);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScalePeer"+t]=this["cScalePeer"+t]||(0,p.A)(this["cScale"+t],10);for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||l(this.mainBkg,{h:30,s:-30,l:-(-10+4*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||l(this.mainBkg,{h:30,s:-30,l:-(-7+4*t)});this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["pie"+t]=this["cScale"+t];this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||l(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||l(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||l(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||l(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||l(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||l(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,f.A)(this.quadrant1Fill)?(0,p.A)(this.quadrant1Fill):(0,d.A)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:this.xyChart?.backgroundColor||this.background,titleColor:this.xyChart?.titleColor||this.primaryTextColor,xAxisTitleColor:this.xyChart?.xAxisTitleColor||this.primaryTextColor,xAxisLabelColor:this.xyChart?.xAxisLabelColor||this.primaryTextColor,xAxisTickColor:this.xyChart?.xAxisTickColor||this.primaryTextColor,xAxisLineColor:this.xyChart?.xAxisLineColor||this.primaryTextColor,yAxisTitleColor:this.xyChart?.yAxisTitleColor||this.primaryTextColor,yAxisLabelColor:this.xyChart?.yAxisLabelColor||this.primaryTextColor,yAxisTickColor:this.xyChart?.yAxisTickColor||this.primaryTextColor,yAxisLineColor:this.xyChart?.yAxisLineColor||this.primaryTextColor,plotColorPalette:this.xyChart?.plotColorPalette||"#3498db,#2ecc71,#e74c3c,#f1c40f,#bdc3c7,#ffffff,#34495e,#9b59b6,#1abc9c,#e67e22"},this.packet={startByteColor:this.primaryTextColor,endByteColor:this.primaryTextColor,labelColor:this.primaryTextColor,titleColor:this.primaryTextColor,blockStrokeColor:this.primaryTextColor,blockFillColor:this.background},this.classText=this.primaryTextColor,this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?(0,d.A)(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=(0,p.A)(this.secondaryColor,20),this.git1=(0,p.A)(this.pie2||this.secondaryColor,20),this.git2=(0,p.A)(this.pie3||this.tertiaryColor,20),this.git3=(0,p.A)(this.pie4||l(this.primaryColor,{h:-30}),20),this.git4=(0,p.A)(this.pie5||l(this.primaryColor,{h:-60}),20),this.git5=(0,p.A)(this.pie6||l(this.primaryColor,{h:-90}),10),this.git6=(0,p.A)(this.pie7||l(this.primaryColor,{h:60}),10),this.git7=(0,p.A)(this.pie8||l(this.primaryColor,{h:120}),20),this.gitInv0=this.gitInv0||u(this.git0),this.gitInv1=this.gitInv1||u(this.git1),this.gitInv2=this.gitInv2||u(this.git2),this.gitInv3=this.gitInv3||u(this.git3),this.gitInv4=this.gitInv4||u(this.git4),this.gitInv5=this.gitInv5||u(this.git5),this.gitInv6=this.gitInv6||u(this.git6),this.gitInv7=this.gitInv7||u(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||u(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||u(this.labelTextColor),this.gitBranchLabel4=this.gitBranchLabel4||this.labelTextColor,this.gitBranchLabel5=this.gitBranchLabel5||this.labelTextColor,this.gitBranchLabel6=this.gitBranchLabel6||this.labelTextColor,this.gitBranchLabel7=this.gitBranchLabel7||this.labelTextColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||(0,p.A)(this.background,12),this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||(0,p.A)(this.background,2),this.nodeBorder=this.nodeBorder||"#999"}calculate(t){if("object"!=typeof t){this.updateColors();return}let e=Object.keys(t);e.forEach(e=>{this[e]=t[e]}),this.updateColors(),e.forEach(e=>{this[e]=t[e]})}},N=m(t=>{let e=new q;return e.calculate(t),e},"getThemeVariables"),P=class{static{m(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=l(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=l(this.primaryColor,{h:-160}),this.primaryBorderColor=D(this.primaryColor,this.darkMode),this.secondaryBorderColor=D(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=D(this.tertiaryColor,this.darkMode),this.primaryTextColor=u(this.primaryColor),this.secondaryTextColor=u(this.secondaryColor),this.tertiaryTextColor=u(this.tertiaryColor),this.lineColor=u(this.background),this.textColor=u(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="rgba(232,232,232, 0.8)",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=(0,h.A)(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||l(this.primaryColor,{h:30}),this.cScale4=this.cScale4||l(this.primaryColor,{h:60}),this.cScale5=this.cScale5||l(this.primaryColor,{h:90}),this.cScale6=this.cScale6||l(this.primaryColor,{h:120}),this.cScale7=this.cScale7||l(this.primaryColor,{h:150}),this.cScale8=this.cScale8||l(this.primaryColor,{h:210}),this.cScale9=this.cScale9||l(this.primaryColor,{h:270}),this.cScale10=this.cScale10||l(this.primaryColor,{h:300}),this.cScale11=this.cScale11||l(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||(0,d.A)(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||(0,d.A)(this.tertiaryColor,40);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScale"+t]=(0,d.A)(this["cScale"+t],10),this["cScalePeer"+t]=this["cScalePeer"+t]||(0,d.A)(this["cScale"+t],25);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||l(this["cScale"+t],{h:180});for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||l(this.mainBkg,{h:30,l:-(5+5*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||l(this.mainBkg,{h:30,l:-(7+5*t)});if(this.scaleLabelColor="calculated"!==this.scaleLabelColor&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor,"calculated"!==this.labelTextColor){this.cScaleLabel0=this.cScaleLabel0||u(this.labelTextColor),this.cScaleLabel3=this.cScaleLabel3||u(this.labelTextColor);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.labelTextColor}this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.titleColor=this.textColor,this.edgeLabelBackground=this.labelBackground,this.actorBorder=(0,p.A)(this.border1,23),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.signalColor=this.textColor,this.signalTextColor=this.textColor,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.actorLineColor=this.actorBorder,this.taskTextColor=this.taskTextLightColor,this.taskTextOutsideColor=this.taskTextDarkColor,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.specialStateColor=this.lineColor,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=l(this.primaryColor,{h:64}),this.fillType3=l(this.secondaryColor,{h:64}),this.fillType4=l(this.primaryColor,{h:-64}),this.fillType5=l(this.secondaryColor,{h:-64}),this.fillType6=l(this.primaryColor,{h:128}),this.fillType7=l(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||l(this.tertiaryColor,{l:-40}),this.pie4=this.pie4||l(this.primaryColor,{l:-10}),this.pie5=this.pie5||l(this.secondaryColor,{l:-30}),this.pie6=this.pie6||l(this.tertiaryColor,{l:-20}),this.pie7=this.pie7||l(this.primaryColor,{h:60,l:-20}),this.pie8=this.pie8||l(this.primaryColor,{h:-60,l:-40}),this.pie9=this.pie9||l(this.primaryColor,{h:120,l:-40}),this.pie10=this.pie10||l(this.primaryColor,{h:60,l:-40}),this.pie11=this.pie11||l(this.primaryColor,{h:-90,l:-40}),this.pie12=this.pie12||l(this.primaryColor,{h:120,l:-30}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||l(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||l(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||l(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||l(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||l(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||l(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,f.A)(this.quadrant1Fill)?(0,p.A)(this.quadrant1Fill):(0,d.A)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:this.xyChart?.backgroundColor||this.background,titleColor:this.xyChart?.titleColor||this.primaryTextColor,xAxisTitleColor:this.xyChart?.xAxisTitleColor||this.primaryTextColor,xAxisLabelColor:this.xyChart?.xAxisLabelColor||this.primaryTextColor,xAxisTickColor:this.xyChart?.xAxisTickColor||this.primaryTextColor,xAxisLineColor:this.xyChart?.xAxisLineColor||this.primaryTextColor,yAxisTitleColor:this.xyChart?.yAxisTitleColor||this.primaryTextColor,yAxisLabelColor:this.xyChart?.yAxisLabelColor||this.primaryTextColor,yAxisTickColor:this.xyChart?.yAxisTickColor||this.primaryTextColor,yAxisLineColor:this.xyChart?.yAxisLineColor||this.primaryTextColor,plotColorPalette:this.xyChart?.plotColorPalette||"#ECECFF,#8493A6,#FFC3A0,#DCDDE1,#B8E994,#D1A36F,#C3CDE6,#FFB6C1,#496078,#F8F3E3"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.labelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||l(this.primaryColor,{h:-30}),this.git4=this.git4||l(this.primaryColor,{h:-60}),this.git5=this.git5||l(this.primaryColor,{h:-90}),this.git6=this.git6||l(this.primaryColor,{h:60}),this.git7=this.git7||l(this.primaryColor,{h:120}),this.darkMode?(this.git0=(0,p.A)(this.git0,25),this.git1=(0,p.A)(this.git1,25),this.git2=(0,p.A)(this.git2,25),this.git3=(0,p.A)(this.git3,25),this.git4=(0,p.A)(this.git4,25),this.git5=(0,p.A)(this.git5,25),this.git6=(0,p.A)(this.git6,25),this.git7=(0,p.A)(this.git7,25)):(this.git0=(0,d.A)(this.git0,25),this.git1=(0,d.A)(this.git1,25),this.git2=(0,d.A)(this.git2,25),this.git3=(0,d.A)(this.git3,25),this.git4=(0,d.A)(this.git4,25),this.git5=(0,d.A)(this.git5,25),this.git6=(0,d.A)(this.git6,25),this.git7=(0,d.A)(this.git7,25)),this.gitInv0=this.gitInv0||(0,d.A)(u(this.git0),25),this.gitInv1=this.gitInv1||u(this.git1),this.gitInv2=this.gitInv2||u(this.git2),this.gitInv3=this.gitInv3||u(this.git3),this.gitInv4=this.gitInv4||u(this.git4),this.gitInv5=this.gitInv5||u(this.git5),this.gitInv6=this.gitInv6||u(this.git6),this.gitInv7=this.gitInv7||u(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||u(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||u(this.labelTextColor),this.gitBranchLabel4=this.gitBranchLabel4||this.labelTextColor,this.gitBranchLabel5=this.gitBranchLabel5||this.labelTextColor,this.gitBranchLabel6=this.gitBranchLabel6||this.labelTextColor,this.gitBranchLabel7=this.gitBranchLabel7||this.labelTextColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||O,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||I}calculate(t){if("object"!=typeof t){this.updateColors();return}let e=Object.keys(t);e.forEach(e=>{this[e]=t[e]}),this.updateColors(),e.forEach(e=>{this[e]=t[e]})}},K=m(t=>{let e=new P;return e.calculate(t),e},"getThemeVariables"),j=class{static{m(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=(0,p.A)("#cde498",10),this.primaryBorderColor=D(this.primaryColor,this.darkMode),this.secondaryBorderColor=D(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=D(this.tertiaryColor,this.darkMode),this.primaryTextColor=u(this.primaryColor),this.secondaryTextColor=u(this.secondaryColor),this.tertiaryTextColor=u(this.primaryColor),this.lineColor=u(this.background),this.textColor=u(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.actorBorder=(0,d.A)(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.actorLineColor=this.actorBorder,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||l(this.primaryColor,{h:30}),this.cScale4=this.cScale4||l(this.primaryColor,{h:60}),this.cScale5=this.cScale5||l(this.primaryColor,{h:90}),this.cScale6=this.cScale6||l(this.primaryColor,{h:120}),this.cScale7=this.cScale7||l(this.primaryColor,{h:150}),this.cScale8=this.cScale8||l(this.primaryColor,{h:210}),this.cScale9=this.cScale9||l(this.primaryColor,{h:270}),this.cScale10=this.cScale10||l(this.primaryColor,{h:300}),this.cScale11=this.cScale11||l(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||(0,d.A)(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||(0,d.A)(this.tertiaryColor,40);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScale"+t]=(0,d.A)(this["cScale"+t],10),this["cScalePeer"+t]=this["cScalePeer"+t]||(0,d.A)(this["cScale"+t],25);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||l(this["cScale"+t],{h:180});this.scaleLabelColor="calculated"!==this.scaleLabelColor&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||l(this.mainBkg,{h:30,s:-30,l:-(5+5*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||l(this.mainBkg,{h:30,s:-30,l:-(8+5*t)});this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.taskBorderColor=this.border1,this.taskTextColor=this.taskTextLightColor,this.taskTextOutsideColor=this.taskTextDarkColor,this.activeTaskBorderColor=this.taskBorderColor,this.activeTaskBkgColor=this.mainBkg,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor=this.lineColor,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=l(this.primaryColor,{h:64}),this.fillType3=l(this.secondaryColor,{h:64}),this.fillType4=l(this.primaryColor,{h:-64}),this.fillType5=l(this.secondaryColor,{h:-64}),this.fillType6=l(this.primaryColor,{h:128}),this.fillType7=l(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||l(this.primaryColor,{l:-30}),this.pie5=this.pie5||l(this.secondaryColor,{l:-30}),this.pie6=this.pie6||l(this.tertiaryColor,{h:40,l:-40}),this.pie7=this.pie7||l(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||l(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||l(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||l(this.primaryColor,{h:60,l:-50}),this.pie11=this.pie11||l(this.primaryColor,{h:-60,l:-50}),this.pie12=this.pie12||l(this.primaryColor,{h:120,l:-50}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||l(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||l(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||l(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||l(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||l(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||l(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,f.A)(this.quadrant1Fill)?(0,p.A)(this.quadrant1Fill):(0,d.A)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.packet={startByteColor:this.primaryTextColor,endByteColor:this.primaryTextColor,labelColor:this.primaryTextColor,titleColor:this.primaryTextColor,blockStrokeColor:this.primaryTextColor,blockFillColor:this.mainBkg},this.xyChart={backgroundColor:this.xyChart?.backgroundColor||this.background,titleColor:this.xyChart?.titleColor||this.primaryTextColor,xAxisTitleColor:this.xyChart?.xAxisTitleColor||this.primaryTextColor,xAxisLabelColor:this.xyChart?.xAxisLabelColor||this.primaryTextColor,xAxisTickColor:this.xyChart?.xAxisTickColor||this.primaryTextColor,xAxisLineColor:this.xyChart?.xAxisLineColor||this.primaryTextColor,yAxisTitleColor:this.xyChart?.yAxisTitleColor||this.primaryTextColor,yAxisLabelColor:this.xyChart?.yAxisLabelColor||this.primaryTextColor,yAxisTickColor:this.xyChart?.yAxisTickColor||this.primaryTextColor,yAxisLineColor:this.xyChart?.yAxisLineColor||this.primaryTextColor,plotColorPalette:this.xyChart?.plotColorPalette||"#CDE498,#FF6B6B,#A0D2DB,#D7BDE2,#F0F0F0,#FFC3A0,#7FD8BE,#FF9A8B,#FAF3E0,#FFF176"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.edgeLabelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||l(this.primaryColor,{h:-30}),this.git4=this.git4||l(this.primaryColor,{h:-60}),this.git5=this.git5||l(this.primaryColor,{h:-90}),this.git6=this.git6||l(this.primaryColor,{h:60}),this.git7=this.git7||l(this.primaryColor,{h:120}),this.darkMode?(this.git0=(0,p.A)(this.git0,25),this.git1=(0,p.A)(this.git1,25),this.git2=(0,p.A)(this.git2,25),this.git3=(0,p.A)(this.git3,25),this.git4=(0,p.A)(this.git4,25),this.git5=(0,p.A)(this.git5,25),this.git6=(0,p.A)(this.git6,25),this.git7=(0,p.A)(this.git7,25)):(this.git0=(0,d.A)(this.git0,25),this.git1=(0,d.A)(this.git1,25),this.git2=(0,d.A)(this.git2,25),this.git3=(0,d.A)(this.git3,25),this.git4=(0,d.A)(this.git4,25),this.git5=(0,d.A)(this.git5,25),this.git6=(0,d.A)(this.git6,25),this.git7=(0,d.A)(this.git7,25)),this.gitInv0=this.gitInv0||u(this.git0),this.gitInv1=this.gitInv1||u(this.git1),this.gitInv2=this.gitInv2||u(this.git2),this.gitInv3=this.gitInv3||u(this.git3),this.gitInv4=this.gitInv4||u(this.git4),this.gitInv5=this.gitInv5||u(this.git5),this.gitInv6=this.gitInv6||u(this.git6),this.gitInv7=this.gitInv7||u(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||u(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||u(this.labelTextColor),this.gitBranchLabel4=this.gitBranchLabel4||this.labelTextColor,this.gitBranchLabel5=this.gitBranchLabel5||this.labelTextColor,this.gitBranchLabel6=this.gitBranchLabel6||this.labelTextColor,this.gitBranchLabel7=this.gitBranchLabel7||this.labelTextColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||O,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||I}calculate(t){if("object"!=typeof t){this.updateColors();return}let e=Object.keys(t);e.forEach(e=>{this[e]=t[e]}),this.updateColors(),e.forEach(e=>{this[e]=t[e]})}},W=m(t=>{let e=new j;return e.calculate(t),e},"getThemeVariables"),U=class{static{m(this,"Theme")}constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=(0,p.A)(this.contrast,55),this.background="#ffffff",this.tertiaryColor=l(this.primaryColor,{h:-160}),this.primaryBorderColor=D(this.primaryColor,this.darkMode),this.secondaryBorderColor=D(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=D(this.tertiaryColor,this.darkMode),this.primaryTextColor=u(this.primaryColor),this.secondaryTextColor=u(this.secondaryColor),this.tertiaryTextColor=u(this.tertiaryColor),this.lineColor=u(this.background),this.textColor=u(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor=this.actorBorder,this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.secondBkg=(0,p.A)(this.contrast,55),this.border2=this.contrast,this.actorBorder=(0,p.A)(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.actorBorder,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||u(this["cScale"+t]);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this.darkMode?this["cScalePeer"+t]=this["cScalePeer"+t]||(0,p.A)(this["cScale"+t],10):this["cScalePeer"+t]=this["cScalePeer"+t]||(0,d.A)(this["cScale"+t],10);this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor),this.cScaleLabel0=this.cScaleLabel0||this.cScale1,this.cScaleLabel2=this.cScaleLabel2||this.cScale1;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||l(this.mainBkg,{l:-(5+5*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||l(this.mainBkg,{l:-(8+5*t)});this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.titleColor=this.text,this.sectionBkgColor=(0,p.A)(this.contrast,30),this.sectionBkgColor2=(0,p.A)(this.contrast,30),this.taskBorderColor=(0,d.A)(this.contrast,10),this.taskBkgColor=this.contrast,this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor=this.text,this.taskTextOutsideColor=this.taskTextDarkColor,this.activeTaskBorderColor=this.taskBorderColor,this.activeTaskBkgColor=this.mainBkg,this.gridColor=(0,p.A)(this.border1,30),this.doneTaskBkgColor=this.done,this.doneTaskBorderColor=this.lineColor,this.critBkgColor=this.critical,this.critBorderColor=(0,d.A)(this.critBkgColor,10),this.todayLineColor=this.critBkgColor,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||"#000",this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f4f4f4",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.stateBorder=this.stateBorder||"#000",this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#222",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=l(this.primaryColor,{h:64}),this.fillType3=l(this.secondaryColor,{h:64}),this.fillType4=l(this.primaryColor,{h:-64}),this.fillType5=l(this.secondaryColor,{h:-64}),this.fillType6=l(this.primaryColor,{h:128}),this.fillType7=l(this.secondaryColor,{h:128});for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["pie"+t]=this["cScale"+t];this.pie12=this.pie0,this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||l(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||l(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||l(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||l(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||l(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||l(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,f.A)(this.quadrant1Fill)?(0,p.A)(this.quadrant1Fill):(0,d.A)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:this.xyChart?.backgroundColor||this.background,titleColor:this.xyChart?.titleColor||this.primaryTextColor,xAxisTitleColor:this.xyChart?.xAxisTitleColor||this.primaryTextColor,xAxisLabelColor:this.xyChart?.xAxisLabelColor||this.primaryTextColor,xAxisTickColor:this.xyChart?.xAxisTickColor||this.primaryTextColor,xAxisLineColor:this.xyChart?.xAxisLineColor||this.primaryTextColor,yAxisTitleColor:this.xyChart?.yAxisTitleColor||this.primaryTextColor,yAxisLabelColor:this.xyChart?.yAxisLabelColor||this.primaryTextColor,yAxisTickColor:this.xyChart?.yAxisTickColor||this.primaryTextColor,yAxisLineColor:this.xyChart?.yAxisLineColor||this.primaryTextColor,plotColorPalette:this.xyChart?.plotColorPalette||"#EEE,#6BB8E4,#8ACB88,#C7ACD6,#E8DCC2,#FFB2A8,#FFF380,#7E8D91,#FFD8B1,#FAF3E0"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.edgeLabelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=(0,d.A)(this.pie1,25)||this.primaryColor,this.git1=this.pie2||this.secondaryColor,this.git2=this.pie3||this.tertiaryColor,this.git3=this.pie4||l(this.primaryColor,{h:-30}),this.git4=this.pie5||l(this.primaryColor,{h:-60}),this.git5=this.pie6||l(this.primaryColor,{h:-90}),this.git6=this.pie7||l(this.primaryColor,{h:60}),this.git7=this.pie8||l(this.primaryColor,{h:120}),this.gitInv0=this.gitInv0||u(this.git0),this.gitInv1=this.gitInv1||u(this.git1),this.gitInv2=this.gitInv2||u(this.git2),this.gitInv3=this.gitInv3||u(this.git3),this.gitInv4=this.gitInv4||u(this.git4),this.gitInv5=this.gitInv5||u(this.git5),this.gitInv6=this.gitInv6||u(this.git6),this.gitInv7=this.gitInv7||u(this.git7),this.branchLabelColor=this.branchLabelColor||this.labelTextColor,this.gitBranchLabel0=this.branchLabelColor,this.gitBranchLabel1="white",this.gitBranchLabel2=this.branchLabelColor,this.gitBranchLabel3="white",this.gitBranchLabel4=this.branchLabelColor,this.gitBranchLabel5=this.branchLabelColor,this.gitBranchLabel6=this.branchLabelColor,this.gitBranchLabel7=this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||O,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||I}calculate(t){if("object"!=typeof t){this.updateColors();return}let e=Object.keys(t);e.forEach(e=>{this[e]=t[e]}),this.updateColors(),e.forEach(e=>{this[e]=t[e]})}},H={base:{getThemeVariables:z},dark:{getThemeVariables:N},default:{getThemeVariables:K},forest:{getThemeVariables:W},neutral:{getThemeVariables:m(t=>{let e=new U;return e.calculate(t),e},"getThemeVariables")}},Y={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},packet:{useMaxWidth:!0,rowHeight:32,bitWidth:32,bitsPerRow:32,showBits:!0,paddingX:5,paddingY:5},architecture:{useMaxWidth:!0,padding:40,iconSize:80,fontSize:16},theme:"default",look:"classic",handDrawnSeed:0,layout:"dagre",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","suppressErrorRendering","maxEdges"],legacyMathML:!1,forceLegacyMathML:!1,deterministicIds:!1,fontSize:16,markdownAutoWrap:!0,suppressErrorRendering:!1},G={...Y,deterministicIDSeed:void 0,elk:{mergeEdges:!1,nodePlacementStrategy:"SIMPLE"},themeCSS:void 0,themeVariables:H.default.getThemeVariables(),sequence:{...Y.sequence,messageFont:m(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont"),noteFont:m(function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},"noteFont"),actorFont:m(function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}},"actorFont")},gantt:{...Y.gantt,tickInterval:void 0,useWidth:void 0},c4:{...Y.c4,useWidth:void 0,personFont:m(function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},"personFont"),external_personFont:m(function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},"external_personFont"),systemFont:m(function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},"systemFont"),external_systemFont:m(function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},"external_systemFont"),system_dbFont:m(function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},"system_dbFont"),external_system_dbFont:m(function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},"external_system_dbFont"),system_queueFont:m(function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},"system_queueFont"),external_system_queueFont:m(function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},"external_system_queueFont"),containerFont:m(function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},"containerFont"),external_containerFont:m(function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},"external_containerFont"),container_dbFont:m(function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},"container_dbFont"),external_container_dbFont:m(function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},"external_container_dbFont"),container_queueFont:m(function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},"container_queueFont"),external_container_queueFont:m(function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},"external_container_queueFont"),componentFont:m(function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},"componentFont"),external_componentFont:m(function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},"external_componentFont"),component_dbFont:m(function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},"component_dbFont"),external_component_dbFont:m(function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},"external_component_dbFont"),component_queueFont:m(function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},"component_queueFont"),external_component_queueFont:m(function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},"external_component_queueFont"),boundaryFont:m(function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},"boundaryFont"),messageFont:m(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont")},pie:{...Y.pie,useWidth:984},xyChart:{...Y.xyChart,useWidth:void 0},requirement:{...Y.requirement,useWidth:void 0},packet:{...Y.packet}},Z=m((t,e="")=>Object.keys(t).reduce((r,i)=>Array.isArray(t[i])?r:"object"==typeof t[i]&&null!==t[i]?[...r,e+i,...Z(t[i],"")]:[...r,e+i],[]),"keyify"),V=new Set(Z(G,"")),X=G,Q=m(t=>{if(C.debug("sanitizeDirective called with",t),"object"==typeof t&&null!=t){if(Array.isArray(t)){t.forEach(t=>Q(t));return}for(let e of Object.keys(t)){if(C.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!V.has(e)||null==t[e]){C.debug("sanitize deleting key: ",e),delete t[e];continue}if("object"==typeof t[e]){C.debug("sanitizing object",e),Q(t[e]);continue}for(let r of["themeCSS","fontFamily","altFontFamily"])e.includes(r)&&(C.debug("sanitizing css option",e),t[e]=J(t[e]))}if(t.themeVariables)for(let e of Object.keys(t.themeVariables)){let r=t.themeVariables[e];r?.match&&!r.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}C.debug("After sanitization",t)}},"sanitizeDirective"),J=m(t=>{let e=0,r=0;for(let i of t){if(e<r)return"{ /* ERROR: Unbalanced CSS */ }";"{"===i?e++:"}"===i&&r++}return e!==r?"{ /* ERROR: Unbalanced CSS */ }":t},"sanitizeCss"),tt=Object.freeze(X),te=$({},tt),tr=[],ti=$({},tt),tn=m((t,e)=>{let r=$({},t),i={};for(let t of e)tu(t),i=$(i,t);if(r=$(r,i),i.theme&&i.theme in H){let t=$({},n),e=$(t.themeVariables||{},i.themeVariables);r.theme&&r.theme in H&&(r.themeVariables=H[r.theme].getThemeVariables(e))}return tm(ti=r),ti},"updateCurrentConfig"),ta=m(t=>(te=$({},tt),te=$(te,t),t.theme&&H[t.theme]&&(te.themeVariables=H[t.theme].getThemeVariables(t.themeVariables)),tn(te,tr),te),"setSiteConfig"),to=m(t=>{n=$({},t)},"saveConfigFromInitialize"),ts=m(t=>(te=$(te,t),tn(te,tr),te),"updateSiteConfig"),tl=m(()=>$({},te),"getSiteConfig"),th=m(t=>(tm(t),$(ti,t),tc()),"setConfig"),tc=m(()=>$({},ti),"getConfig"),tu=m(t=>{t&&(["secure",...te.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(C.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])}),Object.keys(t).forEach(e=>{e.startsWith("__")&&delete t[e]}),Object.keys(t).forEach(e=>{"string"==typeof t[e]&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],"object"==typeof t[e]&&tu(t[e])}))},"sanitize"),td=m(t=>{Q(t),t.fontFamily&&!t.themeVariables?.fontFamily&&(t.themeVariables={...t.themeVariables,fontFamily:t.fontFamily}),tr.push(t),tn(te,tr)},"addDirective"),tp=m((t=te)=>{tn(t,tr=[])},"reset"),tf={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},tg={},ty=m(t=>{tg[t]||(C.warn(tf[t]),tg[t]=!0)},"issueWarning"),tm=m(t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&ty("LAZY_LOAD_DEPRECATED")},"checkConfig"),tx=/<br\s*\/?>/gi,tb=m(t=>t?tM(t).replace(/\\n/g,"#br#").split("#br#"):[""],"getRows"),tC=(i=!1,()=>{i||(tk(),i=!0)});function tk(){let t="data-temp-href-target";g.addHook("beforeSanitizeAttributes",e=>{"A"===e.tagName&&e.hasAttribute("target")&&e.setAttribute(t,e.getAttribute("target")??"")}),g.addHook("afterSanitizeAttributes",e=>{"A"===e.tagName&&e.hasAttribute(t)&&(e.setAttribute("target",e.getAttribute(t)??""),e.removeAttribute(t),"_blank"===e.getAttribute("target")&&e.setAttribute("rel","noopener"))})}m(tk,"setupDompurifyHooks");var t_=m(t=>(tC(),g.sanitize(t)),"removeScript"),tw=m((t,e)=>{if(e.flowchart?.htmlLabels!==!1){let r=e.securityLevel;"antiscript"===r||"strict"===r?t=t_(t):"loose"!==r&&(t=tB(t=(t=(t=tM(t)).replace(/</g,"<").replace(/>/g,">")).replace(/=/g,"=")))}return t},"sanitizeMore"),tv=m((t,e)=>t?t=e.dompurifyConfig?g.sanitize(tw(t,e),e.dompurifyConfig).toString():g.sanitize(tw(t,e),{FORBID_TAGS:["style"]}).toString():t,"sanitizeText"),tT=m((t,e)=>"string"==typeof t?tv(t,e):t.flat().map(t=>tv(t,e)),"sanitizeTextOrArray"),tA=m(t=>tx.test(t),"hasBreaks"),tS=m(t=>t.split(tx),"splitBreaks"),tB=m(t=>t.replace(/#br#/g,"<br/>"),"placeholderToBreak"),tM=m(t=>t.replace(tx,"#br#"),"breakToPlaceholder"),tL=m(t=>{let e="";return t&&(e=(e=(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replaceAll(/\(/g,"\\(")).replaceAll(/\)/g,"\\)")),e},"getUrl"),tF=m(t=>!(!1===t||["false","null","0"].includes(String(t).trim().toLowerCase())),"evaluate"),tE=m(function(...t){return Math.max(...t.filter(t=>!isNaN(t)))},"getMax"),t$=m(function(...t){return Math.min(...t.filter(t=>!isNaN(t)))},"getMin"),tO=m(function(t){let e=t.split(/(,)/),r=[];for(let t=0;t<e.length;t++){let i=e[t];if(","===i&&t>0&&t+1<e.length){let n=e[t-1],a=e[t+1];tD(n,a)&&(i=n+","+a,t++,r.pop())}r.push(tR(i))}return r.join("")},"parseGenericTypes"),tI=m((t,e)=>Math.max(0,t.split(e).length-1),"countOccurrence"),tD=m((t,e)=>{let r=tI(t,"~"),i=tI(e,"~");return 1===r&&1===i},"shouldCombineSets"),tR=m(t=>{let e=tI(t,"~"),r=!1;if(e<=1)return t;e%2!=0&&t.startsWith("~")&&(t=t.substring(1),r=!0);let i=[...t],n=i.indexOf("~"),a=i.lastIndexOf("~");for(;-1!==n&&-1!==a&&n!==a;)i[n]="<",i[a]=">",n=i.indexOf("~"),a=i.lastIndexOf("~");return r&&i.unshift("~"),i.join("")},"processSet"),tz=m(()=>void 0!==window.MathMLElement,"isMathMLSupported"),tq=/\$\$(.*)\$\$/g,tN=m(t=>(t.match(tq)?.length??0)>0,"hasKatex"),tP=m(async(t,e)=>{t=await tK(t,e);let r=document.createElement("div");r.innerHTML=t,r.id="katex-temp",r.style.visibility="hidden",r.style.position="absolute",r.style.top="0";let i=document.querySelector("body");i?.insertAdjacentElement("beforeend",r);let n={width:r.clientWidth,height:r.clientHeight};return r.remove(),n},"calculateMathMLDimensions"),tK=m(async(t,e)=>{if(!tN(t))return t;if(!(tz()||e.legacyMathML||e.forceLegacyMathML))return t.replace(tq,"MathML is unsupported in this environment.");let{default:i}=await r.e(33076).then(r.bind(r,33076)),n=e.forceLegacyMathML||!tz()&&e.legacyMathML?"htmlAndMathml":"mathml";return t.split(tx).map(t=>tN(t)?`<div style="display: flex; align-items: center; justify-content: center; white-space: nowrap;">${t}</div>`:`<div>${t}</div>`).join("").replace(tq,(t,e)=>i.renderToString(e,{throwOnError:!0,displayMode:!0,output:n}).replace(/\n/g," ").replace(/<annotation.*<\/annotation>/g,""))},"renderKatex"),tj={getRows:tb,sanitizeText:tv,sanitizeTextOrArray:tT,hasBreaks:tA,splitBreaks:tS,lineBreakRegex:tx,removeScript:t_,getUrl:tL,evaluate:tF,getMax:tE,getMin:t$},tW=m(function(t,e){for(let r of e)t.attr(r[0],r[1])},"d3Attrs"),tU=m(function(t,e,r){let i=new Map;return r?(i.set("width","100%"),i.set("style",`max-width: ${e}px;`)):(i.set("height",t),i.set("width",e)),i},"calculateSvgSizeAttrs"),tH=m(function(t,e,r,i){tW(t,tU(e,r,i))},"configureSvgSize"),tY=m(function(t,e,r,i){let n=e.node().getBBox(),a=n.width,o=n.height;C.info(`SVG bounds: ${a}x${o}`,n);let s=0,l=0;C.info(`Graph bounds: ${s}x${l}`,t),s=a+2*r,l=o+2*r,C.info(`Calculated bounds: ${s}x${l}`),tH(e,l,s,i);let h=`${n.x-r} ${n.y-r} ${n.width+2*r} ${n.height+2*r}`;e.attr("viewBox",h)},"setupGraphViewbox"),tG={},tZ=m((t,e,r)=>{let i="";return t in tG&&tG[t]?i=tG[t](r):C.warn(`No theme found for ${t}`),` & { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + fill: ${r.textColor} + } + + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${r.errorBkgColor}; + } + & .error-text { + fill: ${r.errorTextColor}; + stroke: ${r.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: 1px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + & .edge-thickness-invisible { + stroke-width: 0; + fill: none; + } + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${r.lineColor}; + stroke: ${r.lineColor}; + } + & .marker.cross { + stroke: ${r.lineColor}; + } + + & svg { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + } + & p { + margin: 0 + } + + ${i} + + ${e} +`},"getStyles"),tV=m((t,e)=>{void 0!==e&&(tG[t]=e)},"addStylesForDiagram"),tX=tZ,tQ={};x(tQ,{clear:()=>t3,getAccDescription:()=>t8,getAccTitle:()=>t6,getDiagramTitle:()=>t7,setAccDescription:()=>t4,setAccTitle:()=>t5,setDiagramTitle:()=>t9});var tJ="",t0="",t1="",t2=m(t=>tv(t,tc()),"sanitizeText"),t3=m(()=>{tJ="",t1="",t0=""},"clear"),t5=m(t=>{tJ=t2(t).replace(/^\s+/g,"")},"setAccTitle"),t6=m(()=>tJ,"getAccTitle"),t4=m(t=>{t1=t2(t).replace(/\n\s+/g,"\n")},"setAccDescription"),t8=m(()=>t1,"getAccDescription"),t9=m(t=>{t0=t2(t)},"setDiagramTitle"),t7=m(()=>t0,"getDiagramTitle"),et=tc,ee=th,er=tt,ei=m(t=>tv(t,et()),"sanitizeText"),en=tY,ea=m(()=>tQ,"getCommonDb"),eo={},es=m((t,e,r)=>{eo[t]&&C.warn(`Diagram with id ${t} already registered. Overwriting.`),eo[t]=e,r&&L(t,r),tV(t,e.styles),e.injectUtils?.(C,k,et,ei,en,ea(),()=>{})},"registerDiagram"),el=m(t=>{if(t in eo)return eo[t];throw new eh(t)},"getDiagram"),eh=class extends Error{static{m(this,"DiagramNotFoundError")}constructor(t){super(`Diagram ${t} not found.`)}}},26873:(t,e,r)=>{"use strict";r.d(e,{r:()=>i});var i="11.2.1"},93510:(t,e,r)=>{"use strict";r.d(e,{IU:()=>tg,gh:()=>tk,nA:()=>e_,U:()=>tf,Jo:()=>tE,jP:()=>tw,on:()=>eC,Zk:()=>tK,g0:()=>tP,T_:()=>tT,U_:()=>ew,U7:()=>ek,lC:()=>tj});var i=r(16470),n=r(27923),a=r(67027),o=r(72912),s=r(89601);function l(t,e,r){if(t&&t.length){let[i,n]=e,a=Math.PI/180*r,o=Math.cos(a),s=Math.sin(a);for(let e of t){let[t,r]=e;e[0]=(t-i)*o-(r-n)*s+i,e[1]=(t-i)*s+(r-n)*o+n}}}function h(t,e){var r;let i=e.hachureAngle+90,n=e.hachureGap;n<0&&(n=4*e.strokeWidth),n=Math.round(Math.max(n,.1));let a=1;return e.roughness>=1&&((null===(r=e.randomizer)||void 0===r?void 0:r.next())||Math.random())>.7&&(a=n),function(t,e,r,i=1){let n=Math.max(e,.1),a=t[0]&&t[0][0]&&"number"==typeof t[0][0]?[t]:t,o=[0,0];if(r)for(let t of a)l(t,o,r);let s=function(t,e,r){let i=[];for(let e of t){var n,a;let t=[...e];n=t[0],a=t[t.length-1],n[0]===a[0]&&n[1]===a[1]||t.push([t[0][0],t[0][1]]),t.length>2&&i.push(t)}let o=[];e=Math.max(e,.1);let s=[];for(let t of i)for(let e=0;e<t.length-1;e++){let r=t[e],i=t[e+1];if(r[1]!==i[1]){let t=Math.min(r[1],i[1]);s.push({ymin:t,ymax:Math.max(r[1],i[1]),x:t===r[1]?r[0]:i[0],islope:(i[0]-r[0])/(i[1]-r[1])})}}if(s.sort((t,e)=>t.ymin<e.ymin?-1:t.ymin>e.ymin?1:t.x<e.x?-1:t.x>e.x?1:t.ymax===e.ymax?0:(t.ymax-e.ymax)/Math.abs(t.ymax-e.ymax)),!s.length)return o;let l=[],h=s[0].ymin,c=0;for(;l.length||s.length;){if(s.length){let t=-1;for(let e=0;e<s.length&&!(s[e].ymin>h);e++)t=e;s.splice(0,t+1).forEach(t=>{l.push({s:h,edge:t})})}if((l=l.filter(t=>!(t.edge.ymax<=h))).sort((t,e)=>t.edge.x===e.edge.x?0:(t.edge.x-e.edge.x)/Math.abs(t.edge.x-e.edge.x)),(1!==r||c%e==0)&&l.length>1)for(let t=0;t<l.length;t+=2){let e=t+1;if(e>=l.length)break;let r=l[t].edge,i=l[e].edge;o.push([[Math.round(r.x),h],[Math.round(i.x),h]])}h+=r,l.forEach(t=>{t.edge.x=t.edge.x+r*t.edge.islope}),c++}return o}(a,n,i);if(r){for(let t of a)l(t,o,-r);!function(t,e,r){let i=[];t.forEach(t=>i.push(...t)),l(i,e,r)}(s,o,-r)}return s}(t,n,i,a||1)}class c{constructor(t){this.helper=t}fillPolygons(t,e){return this._fillPolygons(t,e)}_fillPolygons(t,e){let r=h(t,e);return{type:"fillSketch",ops:this.renderLines(r,e)}}renderLines(t,e){let r=[];for(let i of t)r.push(...this.helper.doubleLineOps(i[0][0],i[0][1],i[1][0],i[1][1],e));return r}}function u(t){let e=t[0],r=t[1];return Math.sqrt(Math.pow(e[0]-r[0],2)+Math.pow(e[1]-r[1],2))}class d extends c{fillPolygons(t,e){let r=e.hachureGap;r<0&&(r=4*e.strokeWidth);let i=h(t,Object.assign({},e,{hachureGap:r=Math.max(r,.1)})),n=Math.PI/180*e.hachureAngle,a=[],o=.5*r*Math.cos(n),s=.5*r*Math.sin(n);for(let[t,e]of i)u([t,e])&&a.push([[t[0]-o,t[1]+s],[...e]],[[t[0]+o,t[1]-s],[...e]]);return{type:"fillSketch",ops:this.renderLines(a,e)}}}class p extends c{fillPolygons(t,e){let r=this._fillPolygons(t,e),i=Object.assign({},e,{hachureAngle:e.hachureAngle+90}),n=this._fillPolygons(t,i);return r.ops=r.ops.concat(n.ops),r}}class f{constructor(t){this.helper=t}fillPolygons(t,e){let r=h(t,e=Object.assign({},e,{hachureAngle:0}));return this.dotsOnLines(r,e)}dotsOnLines(t,e){let r=[],i=e.hachureGap;i<0&&(i=4*e.strokeWidth),i=Math.max(i,.1);let n=e.fillWeight;n<0&&(n=e.strokeWidth/2);let a=i/4;for(let o of t){let t=u(o),s=Math.ceil(t/i)-1,l=t-s*i,h=(o[0][0]+o[1][0])/2-i/4,c=Math.min(o[0][1],o[1][1]);for(let t=0;t<s;t++){let o=h-a+2*Math.random()*a,s=c+l+t*i-a+2*Math.random()*a,u=this.helper.ellipse(o,s,n,n,e);r.push(...u.ops)}}return{type:"fillSketch",ops:r}}}class g{constructor(t){this.helper=t}fillPolygons(t,e){let r=h(t,e);return{type:"fillSketch",ops:this.dashedLine(r,e)}}dashedLine(t,e){let r=e.dashOffset<0?e.hachureGap<0?4*e.strokeWidth:e.hachureGap:e.dashOffset,i=e.dashGap<0?e.hachureGap<0?4*e.strokeWidth:e.hachureGap:e.dashGap,n=[];return t.forEach(t=>{let a=u(t),o=Math.floor(a/(r+i)),s=(a+i-o*(r+i))/2,l=t[0],h=t[1];l[0]>h[0]&&(l=t[1],h=t[0]);let c=Math.atan((h[1]-l[1])/(h[0]-l[0]));for(let t=0;t<o;t++){let a=t*(r+i),o=a+r,h=[l[0]+a*Math.cos(c)+s*Math.cos(c),l[1]+a*Math.sin(c)+s*Math.sin(c)],u=[l[0]+o*Math.cos(c)+s*Math.cos(c),l[1]+o*Math.sin(c)+s*Math.sin(c)];n.push(...this.helper.doubleLineOps(h[0],h[1],u[0],u[1],e))}}),n}}class y{constructor(t){this.helper=t}fillPolygons(t,e){let r=e.hachureGap<0?4*e.strokeWidth:e.hachureGap,i=e.zigzagOffset<0?r:e.zigzagOffset,n=h(t,e=Object.assign({},e,{hachureGap:r+i}));return{type:"fillSketch",ops:this.zigzagLines(n,i,e)}}zigzagLines(t,e,r){let i=[];return t.forEach(t=>{let n=Math.round(u(t)/(2*e)),a=t[0],o=t[1];a[0]>o[0]&&(a=t[1],o=t[0]);let s=Math.atan((o[1]-a[1])/(o[0]-a[0]));for(let t=0;t<n;t++){let n=2*t*e,o=2*(t+1)*e,l=Math.sqrt(2*Math.pow(e,2)),h=[a[0]+n*Math.cos(s),a[1]+n*Math.sin(s)],c=[a[0]+o*Math.cos(s),a[1]+o*Math.sin(s)],u=[h[0]+l*Math.cos(s+Math.PI/4),h[1]+l*Math.sin(s+Math.PI/4)];i.push(...this.helper.doubleLineOps(h[0],h[1],u[0],u[1],r),...this.helper.doubleLineOps(u[0],u[1],c[0],c[1],r))}}),i}}let m={};class x{constructor(t){this.seed=t}next(){return this.seed?(2147483648-1&(this.seed=Math.imul(48271,this.seed)))/2147483648:Math.random()}}let b={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0};function C(t){let e=[],r=function(t){let e=[];for(;""!==t;)if(t.match(/^([ \t\r\n,]+)/))t=t.substr(RegExp.$1.length);else if(t.match(/^([aAcChHlLmMqQsStTvVzZ])/))e[e.length]={type:0,text:RegExp.$1},t=t.substr(RegExp.$1.length);else{if(!t.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];e[e.length]={type:1,text:`${parseFloat(RegExp.$1)}`},t=t.substr(RegExp.$1.length)}return e[e.length]={type:2,text:""},e}(t),i="BOD",n=0,a=r[0];for(;2!==a.type;){let o=0,s=[];if("BOD"===i){if("M"!==a.text&&"m"!==a.text)return C("M0,0"+t);n++,o=b[a.text],i=a.text}else 1===a.type?o=b[i]:(n++,o=b[a.text],i=a.text);if(!(n+o<r.length))throw Error("Path data ended short");for(let t=n;t<n+o;t++){let e=r[t];if(1!==e.type)throw Error("Param not a number: "+i+","+e.text);s[s.length]=+e.text}if("number"!=typeof b[i])throw Error("Bad segment: "+i);{let t={key:i,data:s};e.push(t),n+=o,a=r[n],"M"===i&&(i="L"),"m"===i&&(i="l")}}return e}function k(t){let e=0,r=0,i=0,n=0,a=[];for(let{key:o,data:s}of t)switch(o){case"M":a.push({key:"M",data:[...s]}),[e,r]=s,[i,n]=s;break;case"m":e+=s[0],r+=s[1],a.push({key:"M",data:[e,r]}),i=e,n=r;break;case"L":a.push({key:"L",data:[...s]}),[e,r]=s;break;case"l":e+=s[0],r+=s[1],a.push({key:"L",data:[e,r]});break;case"C":a.push({key:"C",data:[...s]}),e=s[4],r=s[5];break;case"c":{let t=s.map((t,i)=>i%2?t+r:t+e);a.push({key:"C",data:t}),e=t[4],r=t[5];break}case"Q":a.push({key:"Q",data:[...s]}),e=s[2],r=s[3];break;case"q":{let t=s.map((t,i)=>i%2?t+r:t+e);a.push({key:"Q",data:t}),e=t[2],r=t[3];break}case"A":a.push({key:"A",data:[...s]}),e=s[5],r=s[6];break;case"a":e+=s[5],r+=s[6],a.push({key:"A",data:[s[0],s[1],s[2],s[3],s[4],e,r]});break;case"H":a.push({key:"H",data:[...s]}),e=s[0];break;case"h":e+=s[0],a.push({key:"H",data:[e]});break;case"V":a.push({key:"V",data:[...s]}),r=s[0];break;case"v":r+=s[0],a.push({key:"V",data:[r]});break;case"S":a.push({key:"S",data:[...s]}),e=s[2],r=s[3];break;case"s":{let t=s.map((t,i)=>i%2?t+r:t+e);a.push({key:"S",data:t}),e=t[2],r=t[3];break}case"T":a.push({key:"T",data:[...s]}),e=s[0],r=s[1];break;case"t":e+=s[0],r+=s[1],a.push({key:"T",data:[e,r]});break;case"Z":case"z":a.push({key:"Z",data:[]}),e=i,r=n}return a}function _(t){let e=[],r="",i=0,n=0,a=0,o=0,s=0,l=0;for(let{key:h,data:c}of t){switch(h){case"M":e.push({key:"M",data:[...c]}),[i,n]=c,[a,o]=c;break;case"C":e.push({key:"C",data:[...c]}),i=c[4],n=c[5],s=c[2],l=c[3];break;case"L":e.push({key:"L",data:[...c]}),[i,n]=c;break;case"H":i=c[0],e.push({key:"L",data:[i,n]});break;case"V":n=c[0],e.push({key:"L",data:[i,n]});break;case"S":{let t=0,a=0;"C"===r||"S"===r?(t=i+(i-s),a=n+(n-l)):(t=i,a=n),e.push({key:"C",data:[t,a,...c]}),s=c[0],l=c[1],i=c[2],n=c[3];break}case"T":{let[t,a]=c,o=0,h=0;"Q"===r||"T"===r?(o=i+(i-s),h=n+(n-l)):(o=i,h=n);let u=i+2*(o-i)/3,d=n+2*(h-n)/3,p=t+2*(o-t)/3,f=a+2*(h-a)/3;e.push({key:"C",data:[u,d,p,f,t,a]}),s=o,l=h,i=t,n=a;break}case"Q":{let[t,r,a,o]=c,h=i+2*(t-i)/3,u=n+2*(r-n)/3,d=a+2*(t-a)/3,p=o+2*(r-o)/3;e.push({key:"C",data:[h,u,d,p,a,o]}),s=t,l=r,i=a,n=o;break}case"A":{let t=Math.abs(c[0]),r=Math.abs(c[1]),a=c[2],o=c[3],s=c[4],l=c[5],h=c[6];0===t||0===r?(e.push({key:"C",data:[i,n,l,h,l,h]}),i=l,n=h):(i!==l||n!==h)&&((function t(e,r,i,n,a,o,s,l,h,c){let u=Math.PI*s/180,d=[],p=0,f=0,g=0,y=0;if(c)[p,f,g,y]=c;else{[e,r]=w(e,r,-u),[i,n]=w(i,n,-u);let t=(e-i)/2,s=(r-n)/2,c=t*t/(a*a)+s*s/(o*o);c>1&&(a*=c=Math.sqrt(c),o*=c);let d=a*a,m=o*o,x=(l===h?-1:1)*Math.sqrt(Math.abs((d*m-d*s*s-m*t*t)/(d*s*s+m*t*t)));g=x*a*s/o+(e+i)/2,y=-(x*o)*t/a+(r+n)/2,p=Math.asin(parseFloat(((r-y)/o).toFixed(9))),f=Math.asin(parseFloat(((n-y)/o).toFixed(9))),e<g&&(p=Math.PI-p),i<g&&(f=Math.PI-f),p<0&&(p=2*Math.PI+p),f<0&&(f=2*Math.PI+f),h&&p>f&&(p-=2*Math.PI),!h&&f>p&&(f-=2*Math.PI)}let m=f-p;if(Math.abs(m)>120*Math.PI/180){let e=f,r=i,l=n;d=t(i=g+a*Math.cos(f=h&&f>p?p+120*Math.PI/180*1:p+-(120*Math.PI/180*1)),n=y+o*Math.sin(f),r,l,a,o,s,0,h,[f,e,g,y])}m=f-p;let x=Math.cos(p),b=Math.cos(f),C=Math.tan(m/4),k=4/3*a*C,_=4/3*o*C,v=[e,r],T=[e+k*Math.sin(p),r-_*x],A=[i+k*Math.sin(f),n-_*b],S=[i,n];if(T[0]=2*v[0]-T[0],T[1]=2*v[1]-T[1],c)return[T,A,S].concat(d);{d=[T,A,S].concat(d);let t=[];for(let e=0;e<d.length;e+=3){let r=w(d[e][0],d[e][1],u),i=w(d[e+1][0],d[e+1][1],u),n=w(d[e+2][0],d[e+2][1],u);t.push([r[0],r[1],i[0],i[1],n[0],n[1]])}return t}})(i,n,l,h,t,r,a,o,s).forEach(function(t){e.push({key:"C",data:t})}),i=l,n=h);break}case"Z":e.push({key:"Z",data:[]}),i=a,n=o}r=h}return e}function w(t,e,r){return[t*Math.cos(r)-e*Math.sin(r),t*Math.sin(r)+e*Math.cos(r)]}let v={randOffset:function(t,e){return R(t,e)},randOffsetWithRange:function(t,e,r){return D(t,e,r)},ellipse:function(t,e,r,i,n){let a=B(r,i,n);return M(t,e,n,a).opset},doubleLineOps:function(t,e,r,i,n){return z(t,e,r,i,n,!0)}};function T(t,e,r,i,n){return{type:"path",ops:z(t,e,r,i,n)}}function A(t,e,r){let i=(t||[]).length;if(i>2){let n=[];for(let e=0;e<i-1;e++)n.push(...z(t[e][0],t[e][1],t[e+1][0],t[e+1][1],r));return e&&n.push(...z(t[i-1][0],t[i-1][1],t[0][0],t[0][1],r)),{type:"path",ops:n}}return 2===i?T(t[0][0],t[0][1],t[1][0],t[1][1],r):{type:"path",ops:[]}}function S(t,e){if(t.length){let r="number"==typeof t[0][0]?[t]:t,i=N(r[0],1*(1+.2*e.roughness),e),n=e.disableMultiStroke?[]:N(r[0],1.5*(1+.22*e.roughness),O(e));for(let t=1;t<r.length;t++){let a=r[t];if(a.length){let t=N(a,1*(1+.2*e.roughness),e),r=e.disableMultiStroke?[]:N(a,1.5*(1+.22*e.roughness),O(e));for(let e of t)"move"!==e.op&&i.push(e);for(let t of r)"move"!==t.op&&n.push(t)}}return{type:"path",ops:i.concat(n)}}return{type:"path",ops:[]}}function B(t,e,r){let i=Math.sqrt(2*Math.PI*Math.sqrt((Math.pow(t/2,2)+Math.pow(e/2,2))/2)),n=2*Math.PI/Math.ceil(Math.max(r.curveStepCount,r.curveStepCount/Math.sqrt(200)*i)),a=Math.abs(t/2),o=Math.abs(e/2),s=1-r.curveFitting;return a+=R(a*s,r),o+=R(o*s,r),{increment:n,rx:a,ry:o}}function M(t,e,r,i){let[n,a]=K(i.increment,t,e,i.rx,i.ry,1,i.increment*D(.1,D(.4,1,r),r),r),o=P(n,null,r);if(!r.disableMultiStroke&&0!==r.roughness){let[n]=K(i.increment,t,e,i.rx,i.ry,1.5,0,r),a=P(n,null,r);o=o.concat(a)}return{estimatedPoints:a,opset:{type:"path",ops:o}}}function L(t,e,r,i,n,a,o,s,l){let h=Math.abs(r/2),c=Math.abs(i/2);h+=R(.01*h,l),c+=R(.01*c,l);let u=n,d=a;for(;u<0;)u+=2*Math.PI,d+=2*Math.PI;d-u>2*Math.PI&&(u=0,d=2*Math.PI);let p=Math.min(2*Math.PI/l.curveStepCount/2,(d-u)/2),f=j(p,t,e,h,c,u,d,1,l);if(!l.disableMultiStroke){let r=j(p,t,e,h,c,u,d,1.5,l);f.push(...r)}return o&&(s?f.push(...z(t,e,t+h*Math.cos(u),e+c*Math.sin(u),l),...z(t,e,t+h*Math.cos(d),e+c*Math.sin(d),l)):f.push({op:"lineTo",data:[t,e]},{op:"lineTo",data:[t+h*Math.cos(u),e+c*Math.sin(u)]})),{type:"path",ops:f}}function F(t,e){let r=_(k(C(t))),i=[],n=[0,0],a=[0,0];for(let{key:t,data:o}of r)switch(t){case"M":a=[o[0],o[1]],n=[o[0],o[1]];break;case"L":i.push(...z(a[0],a[1],o[0],o[1],e)),a=[o[0],o[1]];break;case"C":{let[t,r,n,s,l,h]=o;i.push(...function(t,e,r,i,n,a,o,s){let l=[],h=[s.maxRandomnessOffset||1,(s.maxRandomnessOffset||1)+.3],c=[0,0],u=s.disableMultiStroke?1:2,d=s.preserveVertices;for(let p=0;p<u;p++)0===p?l.push({op:"move",data:[o[0],o[1]]}):l.push({op:"move",data:[o[0]+(d?0:R(h[0],s)),o[1]+(d?0:R(h[0],s))]}),c=d?[n,a]:[n+R(h[p],s),a+R(h[p],s)],l.push({op:"bcurveTo",data:[t+R(h[p],s),e+R(h[p],s),r+R(h[p],s),i+R(h[p],s),c[0],c[1]]});return l}(t,r,n,s,l,h,a,e)),a=[l,h];break}case"Z":i.push(...z(a[0],a[1],n[0],n[1],e)),a=[n[0],n[1]]}return{type:"path",ops:i}}function E(t,e){let r=[];for(let i of t)if(i.length){let t=e.maxRandomnessOffset||0,n=i.length;if(n>2){r.push({op:"move",data:[i[0][0]+R(t,e),i[0][1]+R(t,e)]});for(let a=1;a<n;a++)r.push({op:"lineTo",data:[i[a][0]+R(t,e),i[a][1]+R(t,e)]})}}return{type:"fillPath",ops:r}}function $(t,e){return(function(t,e){let r=t.fillStyle||"hachure";if(!m[r])switch(r){case"zigzag":m[r]||(m[r]=new d(e));break;case"cross-hatch":m[r]||(m[r]=new p(e));break;case"dots":m[r]||(m[r]=new f(e));break;case"dashed":m[r]||(m[r]=new g(e));break;case"zigzag-line":m[r]||(m[r]=new y(e));break;default:m[r="hachure"]||(m[r]=new c(e))}return m[r]})(e,v).fillPolygons(t,e)}function O(t){let e=Object.assign({},t);return e.randomizer=void 0,t.seed&&(e.seed=t.seed+1),e}function I(t){return t.randomizer||(t.randomizer=new x(t.seed||0)),t.randomizer.next()}function D(t,e,r,i=1){return r.roughness*i*(I(r)*(e-t)+t)}function R(t,e,r=1){return D(-t,t,e,r)}function z(t,e,r,i,n,a=!1){let o=a?n.disableMultiStrokeFill:n.disableMultiStroke,s=q(t,e,r,i,n,!0,!1);if(o)return s;let l=q(t,e,r,i,n,!0,!0);return s.concat(l)}function q(t,e,r,i,n,a,o){let s=Math.pow(t-r,2)+Math.pow(e-i,2),l=Math.sqrt(s),h=1;h=l<200?1:l>500?.4:-.0016668*l+1.233334;let c=n.maxRandomnessOffset||0;c*c*100>s&&(c=l/10);let u=c/2,d=.2+.2*I(n),p=n.bowing*n.maxRandomnessOffset*(i-e)/200,f=n.bowing*n.maxRandomnessOffset*(t-r)/200;p=R(p,n,h),f=R(f,n,h);let g=[],y=()=>R(u,n,h),m=()=>R(c,n,h),x=n.preserveVertices;return a&&(o?g.push({op:"move",data:[t+(x?0:y()),e+(x?0:y())]}):g.push({op:"move",data:[t+(x?0:R(c,n,h)),e+(x?0:R(c,n,h))]})),o?g.push({op:"bcurveTo",data:[p+t+(r-t)*d+y(),f+e+(i-e)*d+y(),p+t+2*(r-t)*d+y(),f+e+2*(i-e)*d+y(),r+(x?0:y()),i+(x?0:y())]}):g.push({op:"bcurveTo",data:[p+t+(r-t)*d+m(),f+e+(i-e)*d+m(),p+t+2*(r-t)*d+m(),f+e+2*(i-e)*d+m(),r+(x?0:m()),i+(x?0:m())]}),g}function N(t,e,r){if(!t.length)return[];let i=[];i.push([t[0][0]+R(e,r),t[0][1]+R(e,r)]),i.push([t[0][0]+R(e,r),t[0][1]+R(e,r)]);for(let n=1;n<t.length;n++)i.push([t[n][0]+R(e,r),t[n][1]+R(e,r)]),n===t.length-1&&i.push([t[n][0]+R(e,r),t[n][1]+R(e,r)]);return P(i,null,r)}function P(t,e,r){let i=t.length,n=[];if(i>3){let a=[],o=1-r.curveTightness;n.push({op:"move",data:[t[1][0],t[1][1]]});for(let e=1;e+2<i;e++){let r=t[e];a[0]=[r[0],r[1]],a[1]=[r[0]+(o*t[e+1][0]-o*t[e-1][0])/6,r[1]+(o*t[e+1][1]-o*t[e-1][1])/6],a[2]=[t[e+1][0]+(o*t[e][0]-o*t[e+2][0])/6,t[e+1][1]+(o*t[e][1]-o*t[e+2][1])/6],a[3]=[t[e+1][0],t[e+1][1]],n.push({op:"bcurveTo",data:[a[1][0],a[1][1],a[2][0],a[2][1],a[3][0],a[3][1]]})}if(e&&2===e.length){let t=r.maxRandomnessOffset;n.push({op:"lineTo",data:[e[0]+R(t,r),e[1]+R(t,r)]})}}else 3===i?(n.push({op:"move",data:[t[1][0],t[1][1]]}),n.push({op:"bcurveTo",data:[t[1][0],t[1][1],t[2][0],t[2][1],t[2][0],t[2][1]]})):2===i&&n.push(...q(t[0][0],t[0][1],t[1][0],t[1][1],r,!0,!0));return n}function K(t,e,r,i,n,a,o,s){let l=[],h=[];if(0===s.roughness){t/=4,h.push([e+i*Math.cos(-t),r+n*Math.sin(-t)]);for(let a=0;a<=2*Math.PI;a+=t){let t=[e+i*Math.cos(a),r+n*Math.sin(a)];l.push(t),h.push(t)}h.push([e+1*i,r+0*n]),h.push([e+i*Math.cos(t),r+n*Math.sin(t)])}else{let c=R(.5,s)-Math.PI/2;h.push([R(a,s)+e+.9*i*Math.cos(c-t),R(a,s)+r+.9*n*Math.sin(c-t)]);let u=2*Math.PI+c-.01;for(let o=c;o<u;o+=t){let t=[R(a,s)+e+i*Math.cos(o),R(a,s)+r+n*Math.sin(o)];l.push(t),h.push(t)}h.push([R(a,s)+e+i*Math.cos(c+2*Math.PI+.5*o),R(a,s)+r+n*Math.sin(c+2*Math.PI+.5*o)]),h.push([R(a,s)+e+.98*i*Math.cos(c+o),R(a,s)+r+.98*n*Math.sin(c+o)]),h.push([R(a,s)+e+.9*i*Math.cos(c+.5*o),R(a,s)+r+.9*n*Math.sin(c+.5*o)])}return[h,l]}function j(t,e,r,i,n,a,o,s,l){let h=a+R(.1,l),c=[];c.push([R(s,l)+e+.9*i*Math.cos(h-t),R(s,l)+r+.9*n*Math.sin(h-t)]);for(let a=h;a<=o;a+=t)c.push([R(s,l)+e+i*Math.cos(a),R(s,l)+r+n*Math.sin(a)]);return c.push([e+i*Math.cos(o),r+n*Math.sin(o)]),c.push([e+i*Math.cos(o),r+n*Math.sin(o)]),P(c,null,l)}function W(t,e=0){let r=t.length;if(r<3)throw Error("A curve must have at least three points.");let i=[];if(3===r)i.push([...t[0]],[...t[1]],[...t[2]],[...t[2]]);else{let r=[];r.push(t[0],t[0]);for(let e=1;e<t.length;e++)r.push(t[e]),e===t.length-1&&r.push(t[e]);let n=[],a=1-e;i.push([...r[0]]);for(let t=1;t+2<r.length;t++){let e=r[t];n[0]=[e[0],e[1]],n[1]=[e[0]+(a*r[t+1][0]-a*r[t-1][0])/6,e[1]+(a*r[t+1][1]-a*r[t-1][1])/6],n[2]=[r[t+1][0]+(a*r[t][0]-a*r[t+2][0])/6,r[t+1][1]+(a*r[t][1]-a*r[t+2][1])/6],n[3]=[r[t+1][0],r[t+1][1]],i.push(n[1],n[2],n[3])}}return i}function U(t,e){return Math.pow(t[0]-e[0],2)+Math.pow(t[1]-e[1],2)}function H(t,e,r){return[t[0]+(e[0]-t[0])*r,t[1]+(e[1]-t[1])*r]}function Y(t,e,r,i,n){let a=n||[],o=t[e],s=t[r-1],l=0,h=1;for(let i=e+1;i<r-1;++i){let e=function(t,e,r){let i=U(e,r);if(0===i)return U(t,e);let n=((t[0]-e[0])*(r[0]-e[0])+(t[1]-e[1])*(r[1]-e[1]))/i;return U(t,H(e,r,n=Math.max(0,Math.min(1,n))))}(t[i],o,s);e>l&&(l=e,h=i)}return Math.sqrt(l)>i?(Y(t,e,h+1,i,a),Y(t,h,r,i,a)):(a.length||a.push(o),a.push(s)),a}function G(t,e=.15,r){let i=[],n=(t.length-1)/3;for(let r=0;r<n;r++)!function t(e,r,i,n){let a=n||[];if(function(t,e){let r=t[e+0],i=t[e+1],n=t[e+2],a=t[e+3],o=3*i[0]-2*r[0]-a[0];o*=o;let s=3*i[1]-2*r[1]-a[1];s*=s;let l=3*n[0]-2*a[0]-r[0];l*=l;let h=3*n[1]-2*a[1]-r[1];return h*=h,o<l&&(o=l),s<h&&(s=h),o+s}(e,r)<i){let t=e[r+0];a.length?Math.sqrt(U(a[a.length-1],t))>1&&a.push(t):a.push(t),a.push(e[r+3])}else{let n=e[r+0],o=e[r+1],s=e[r+2],l=e[r+3],h=H(n,o,.5),c=H(o,s,.5),u=H(s,l,.5),d=H(h,c,.5),p=H(c,u,.5),f=H(d,p,.5);t([n,h,d,f],0,i,a),t([f,p,u,l],0,i,a)}return a}(t,3*r,e,i);return r&&r>0?Y(i,0,i.length,r):i}let Z="none";class V{constructor(t){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:"#000",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:"hachure",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=t||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return Math.floor(2147483648*Math.random())}_o(t){return t?Object.assign({},this.defaultOptions,t):this.defaultOptions}_d(t,e,r){return{shape:t,sets:e||[],options:r||this.defaultOptions}}line(t,e,r,i,n){let a=this._o(n);return this._d("line",[T(t,e,r,i,a)],a)}rectangle(t,e,r,i,n){let a=this._o(n),o=[],s=A([[t,e],[t+r,e],[t+r,e+i],[t,e+i]],!0,a);if(a.fill){let n=[[t,e],[t+r,e],[t+r,e+i],[t,e+i]];"solid"===a.fillStyle?o.push(E([n],a)):o.push($([n],a))}return a.stroke!==Z&&o.push(s),this._d("rectangle",o,a)}ellipse(t,e,r,i,n){let a=this._o(n),o=[],s=B(r,i,a),l=M(t,e,a,s);if(a.fill){if("solid"===a.fillStyle){let r=M(t,e,a,s).opset;r.type="fillPath",o.push(r)}else o.push($([l.estimatedPoints],a))}return a.stroke!==Z&&o.push(l.opset),this._d("ellipse",o,a)}circle(t,e,r,i){let n=this.ellipse(t,e,r,r,i);return n.shape="circle",n}linearPath(t,e){let r=this._o(e);return this._d("linearPath",[A(t,!1,r)],r)}arc(t,e,r,i,n,a,o=!1,s){let l=this._o(s),h=[],c=L(t,e,r,i,n,a,o,!0,l);if(o&&l.fill){if("solid"===l.fillStyle){let o=Object.assign({},l);o.disableMultiStroke=!0;let s=L(t,e,r,i,n,a,!0,!1,o);s.type="fillPath",h.push(s)}else h.push(function(t,e,r,i,n,a,o){let s=Math.abs(r/2),l=Math.abs(i/2);s+=R(.01*s,o),l+=R(.01*l,o);let h=n,c=a;for(;h<0;)h+=2*Math.PI,c+=2*Math.PI;c-h>2*Math.PI&&(h=0,c=2*Math.PI);let u=(c-h)/o.curveStepCount,d=[];for(let r=h;r<=c;r+=u)d.push([t+s*Math.cos(r),e+l*Math.sin(r)]);return d.push([t+s*Math.cos(c),e+l*Math.sin(c)]),d.push([t,e]),$([d],o)}(t,e,r,i,n,a,l))}return l.stroke!==Z&&h.push(c),this._d("arc",h,l)}curve(t,e){let r=this._o(e),i=[],n=S(t,r);if(r.fill&&r.fill!==Z){if("solid"===r.fillStyle){let e=S(t,Object.assign(Object.assign({},r),{disableMultiStroke:!0,roughness:r.roughness?r.roughness+r.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(e.ops)})}else{let e=[];if(t.length)for(let i of"number"==typeof t[0][0]?[t]:t)i.length<3?e.push(...i):3===i.length?e.push(...G(W([i[0],i[0],i[1],i[2]]),10,(1+r.roughness)/2)):e.push(...G(W(i),10,(1+r.roughness)/2));e.length&&i.push($([e],r))}}return r.stroke!==Z&&i.push(n),this._d("curve",i,r)}polygon(t,e){let r=this._o(e),i=[],n=A(t,!0,r);return r.fill&&("solid"===r.fillStyle?i.push(E([t],r)):i.push($([t],r))),r.stroke!==Z&&i.push(n),this._d("polygon",i,r)}path(t,e){let r=this._o(e),i=[];if(!t)return this._d("path",i,r);t=(t||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");let n=r.fill&&"transparent"!==r.fill&&r.fill!==Z,a=r.stroke!==Z,o=!!(r.simplification&&r.simplification<1),s=function(t,e,r){let i=_(k(C(t))),n=[],a=[],o=[0,0],s=[],l=()=>{s.length>=4&&a.push(...G(s,1)),s=[]},h=()=>{l(),a.length&&(n.push(a),a=[])};for(let{key:t,data:e}of i)switch(t){case"M":h(),o=[e[0],e[1]],a.push(o);break;case"L":l(),a.push([e[0],e[1]]);break;case"C":if(!s.length){let t=a.length?a[a.length-1]:o;s.push([t[0],t[1]])}s.push([e[0],e[1]]),s.push([e[2],e[3]]),s.push([e[4],e[5]]);break;case"Z":l(),a.push([o[0],o[1]])}if(h(),!r)return n;let c=[];for(let t of n){let e=Y(t,0,t.length,r);e.length&&c.push(e)}return c}(t,0,o?4-4*(r.simplification||1):(1+r.roughness)/2),l=F(t,r);if(n){if("solid"===r.fillStyle){if(1===s.length){let e=F(t,Object.assign(Object.assign({},r),{disableMultiStroke:!0,roughness:r.roughness?r.roughness+r.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(e.ops)})}else i.push(E(s,r))}else i.push($(s,r))}return a&&(o?s.forEach(t=>{i.push(A(t,!1,r))}):i.push(l)),this._d("path",i,r)}opsToPath(t,e){let r="";for(let i of t.ops){let t="number"==typeof e&&e>=0?i.data.map(t=>+t.toFixed(e)):i.data;switch(i.op){case"move":r+=`M${t[0]} ${t[1]} `;break;case"bcurveTo":r+=`C${t[0]} ${t[1]}, ${t[2]} ${t[3]}, ${t[4]} ${t[5]} `;break;case"lineTo":r+=`L${t[0]} ${t[1]} `}}return r.trim()}toPaths(t){let e=t.sets||[],r=t.options||this.defaultOptions,i=[];for(let t of e){let e=null;switch(t.type){case"path":e={d:this.opsToPath(t),stroke:r.stroke,strokeWidth:r.strokeWidth,fill:Z};break;case"fillPath":e={d:this.opsToPath(t),stroke:Z,strokeWidth:0,fill:r.fill||Z};break;case"fillSketch":e=this.fillSketch(t,r)}e&&i.push(e)}return i}fillSketch(t,e){let r=e.fillWeight;return r<0&&(r=e.strokeWidth/2),{d:this.opsToPath(t),stroke:e.fill||Z,strokeWidth:r,fill:Z}}_mergedShape(t){return t.filter((t,e)=>0===e||"move"!==t.op)}}let X="http://www.w3.org/2000/svg";class Q{constructor(t,e){this.svg=t,this.gen=new V(e)}draw(t){let e=t.sets||[],r=t.options||this.getDefaultOptions(),i=this.svg.ownerDocument||window.document,n=i.createElementNS(X,"g"),a=t.options.fixedDecimalPlaceDigits;for(let o of e){let e=null;switch(o.type){case"path":(e=i.createElementNS(X,"path")).setAttribute("d",this.opsToPath(o,a)),e.setAttribute("stroke",r.stroke),e.setAttribute("stroke-width",r.strokeWidth+""),e.setAttribute("fill","none"),r.strokeLineDash&&e.setAttribute("stroke-dasharray",r.strokeLineDash.join(" ").trim()),r.strokeLineDashOffset&&e.setAttribute("stroke-dashoffset",`${r.strokeLineDashOffset}`);break;case"fillPath":(e=i.createElementNS(X,"path")).setAttribute("d",this.opsToPath(o,a)),e.setAttribute("stroke","none"),e.setAttribute("stroke-width","0"),e.setAttribute("fill",r.fill||""),"curve"!==t.shape&&"polygon"!==t.shape||e.setAttribute("fill-rule","evenodd");break;case"fillSketch":e=this.fillSketch(i,o,r)}e&&n.appendChild(e)}return n}fillSketch(t,e,r){let i=r.fillWeight;i<0&&(i=r.strokeWidth/2);let n=t.createElementNS(X,"path");return n.setAttribute("d",this.opsToPath(e,r.fixedDecimalPlaceDigits)),n.setAttribute("stroke",r.fill||""),n.setAttribute("stroke-width",i+""),n.setAttribute("fill","none"),r.fillLineDash&&n.setAttribute("stroke-dasharray",r.fillLineDash.join(" ").trim()),r.fillLineDashOffset&&n.setAttribute("stroke-dashoffset",`${r.fillLineDashOffset}`),n}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(t,e){return this.gen.opsToPath(t,e)}line(t,e,r,i,n){let a=this.gen.line(t,e,r,i,n);return this.draw(a)}rectangle(t,e,r,i,n){let a=this.gen.rectangle(t,e,r,i,n);return this.draw(a)}ellipse(t,e,r,i,n){let a=this.gen.ellipse(t,e,r,i,n);return this.draw(a)}circle(t,e,r,i){let n=this.gen.circle(t,e,r,i);return this.draw(n)}linearPath(t,e){let r=this.gen.linearPath(t,e);return this.draw(r)}polygon(t,e){let r=this.gen.polygon(t,e);return this.draw(r)}arc(t,e,r,i,n,a,o=!1,s){let l=this.gen.arc(t,e,r,i,n,a,o,s);return this.draw(l)}curve(t,e){let r=this.gen.curve(t,e);return this.draw(r)}path(t,e){let r=this.gen.path(t,e);return this.draw(r)}}var J={svg:(t,e)=>new Q(t,e)},tt=(0,o.K2)((t,e)=>{var r,i,n=t.x,a=t.y,o=e.x-n,s=e.y-a,l=t.width/2,h=t.height/2;return Math.abs(s)*l>Math.abs(o)*h?(s<0&&(h=-h),r=0===s?0:h*o/s,i=h):(o<0&&(l=-l),r=l,i=0===o?0:l*s/o),{x:n+r,y:a+i}},"intersectRect");function te(t,e){e&&t.attr("style",e)}async function tr(t){let e=(0,s.Ltv)(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),i=t.label;t.label&&(0,o.Wi)(t.label)&&(i=await (0,o.VJ)(t.label.replace(o.Y2.lineBreakRegex,"\n"),(0,o.D7)()));let n=t.isNode?"nodeLabel":"edgeLabel";return r.html('<span class="'+n+'" '+(t.labelStyle?'style="'+t.labelStyle+'"':"")+">"+i+"</span>"),te(r,t.labelStyle),r.style("display","inline-block"),r.style("padding-right","1px"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}(0,o.K2)(te,"applyStyle"),(0,o.K2)(tr,"addHtmlLabel");var ti=(0,o.K2)(async(t,e,r,i)=>{let n=t||"";if("object"==typeof n&&(n=n[0]),(0,o._3)((0,o.D7)().flowchart.htmlLabels)){n=n.replace(/\\n|\n/g,"<br />"),o.Rm.info("vertexText"+n);let t={isNode:i,label:(0,a.Sm)(n).replace(/fa[blrs]?:fa-[\w-]+/g,t=>`<i class='${t.replace(":"," ")}'></i>`),labelStyle:e?e.replace("fill:","color:"):e};return await tr(t)}{let t=document.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",e.replace("color:","fill:"));for(let e of"string"==typeof n?n.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(n)?n:[]){let i=document.createElementNS("http://www.w3.org/2000/svg","tspan");i.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),i.setAttribute("dy","1em"),i.setAttribute("x","0"),r?i.setAttribute("class","title-row"):i.setAttribute("class","row"),i.textContent=e.trim(),t.appendChild(i)}return t}},"createLabel"),tn=(0,o.K2)((t,e,r,i,n)=>["M",t+n,e,"H",t+r-n,"A",n,n,0,0,1,t+r,e+n,"V",e+i-n,"A",n,n,0,0,1,t+r-n,e+i,"H",t+n,"A",n,n,0,0,1,t,e+i-n,"V",e+n,"A",n,n,0,0,1,t+n,e,"Z"].join(" "),"createRoundedRectPathD"),ta=(0,o.K2)(t=>{let{handDrawnSeed:e}=(0,o.D7)();return{fill:t,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:t,seed:e}},"solidStateFill"),to=(0,o.K2)(t=>{let e=ts([...t.cssCompiledStyles||[],...t.cssStyles||[]]);return{stylesMap:e,stylesArray:[...e]}},"compileStyles"),ts=(0,o.K2)(t=>{let e=new Map;return t.forEach(t=>{let[r,i]=t.split(":");e.set(r.trim(),i?.trim())}),e},"styles2Map"),tl=(0,o.K2)(t=>{let{stylesArray:e}=to(t),r=[],i=[],n=[],a=[];return e.forEach(t=>{let e=t[0];"color"===e||"font-size"===e||"font-family"===e||"font-weight"===e||"font-style"===e||"text-decoration"===e||"text-align"===e||"text-transform"===e||"line-height"===e||"letter-spacing"===e||"word-spacing"===e||"text-shadow"===e||"text-overflow"===e||"white-space"===e||"word-wrap"===e||"word-break"===e||"overflow-wrap"===e||"hyphens"===e?r.push(t.join(":")+" !important"):(i.push(t.join(":")+" !important"),e.includes("stroke")&&n.push(t.join(":")+" !important"),"fill"===e&&a.push(t.join(":")+" !important"))}),{labelStyles:r.join(";"),nodeStyles:i.join(";"),stylesArray:e,borderStyles:n,backgroundStyles:a}},"styles2String"),th=(0,o.K2)((t,e)=>{let{themeVariables:r,handDrawnSeed:i}=(0,o.D7)(),{nodeBorder:n,mainBkg:a}=r,{stylesMap:s}=to(t);return Object.assign({roughness:.7,fill:s.get("fill")||a,fillStyle:"hachure",fillWeight:4,stroke:s.get("stroke")||n,seed:i,strokeWidth:1.3},e)},"userNodeOverrides"),tc=(0,o.K2)(async(t,e)=>{let r;o.Rm.info("Creating subgraph rect for ",e.id,e);let a=(0,o.D7)(),{themeVariables:l,handDrawnSeed:h}=a,{clusterBkg:c,clusterBorder:u}=l,{labelStyles:d,nodeStyles:p,borderStyles:f,backgroundStyles:g}=tl(e),y=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look),m=(0,o._3)(a.flowchart.htmlLabels),x=y.insert("g").attr("class","cluster-label "),b=await (0,n.GZ)(x,e.label,{style:e.labelStyle,useHtmlLabels:m,isNode:!0}),C=b.getBBox();if((0,o._3)(a.flowchart.htmlLabels)){let t=b.children[0],e=(0,s.Ltv)(b);C=t.getBoundingClientRect(),e.attr("width",C.width),e.attr("height",C.height)}let k=e.width<=C.width+e.padding?C.width+e.padding:e.width;e.width<=C.width+e.padding?e.diff=(k-e.width)/2-e.padding:e.diff=-e.padding;let _=e.height,w=e.x-k/2,v=e.y-_/2;if(o.Rm.trace("Data ",e,JSON.stringify(e)),"handDrawn"===e.look){let t=J.svg(y),i=th(e,{roughness:.7,fill:c,stroke:u,fillWeight:3,seed:h}),n=t.path(tn(w,v,k,_,0),i);(r=y.insert(()=>(o.Rm.debug("Rough node insert CXC",n),n),":first-child")).select("path:nth-child(2)").attr("style",f.join(";")),r.select("path").attr("style",g.join(";").replace("fill","stroke"))}else(r=y.insert("rect",":first-child")).attr("style",p).attr("rx",e.rx).attr("ry",e.ry).attr("x",w).attr("y",v).attr("width",k).attr("height",_);let{subGraphTitleTopMargin:T}=(0,i.O)(a);if(x.attr("transform",`translate(${e.x-C.width/2}, ${e.y-e.height/2+T})`),d){let t=x.select("span");t&&t.attr("style",d)}let A=r.node().getBBox();return e.offsetX=0,e.width=A.width,e.height=A.height,e.offsetY=C.height-e.padding/2,e.intersect=function(t){return tt(e,t)},{cluster:y,labelBBox:C}},"rect"),tu=(0,o.K2)((t,e)=>{let r=t.insert("g").attr("class","note-cluster").attr("id",e.id),i=r.insert("rect",":first-child"),n=0*e.padding,a=n/2;i.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-a).attr("y",e.y-e.height/2-a).attr("width",e.width+n).attr("height",e.height+n).attr("fill","none");let o=i.node().getBBox();return e.width=o.width,e.height=o.height,e.intersect=function(t){return tt(e,t)},{cluster:r,labelBBox:{width:0,height:0}}},"noteGroup"),td={rect:tc,squareRect:tc,roundedWithTitle:(0,o.K2)(async(t,e)=>{let r;let i=(0,o.D7)(),{themeVariables:n,handDrawnSeed:a}=i,{altBackground:l,compositeBackground:h,compositeTitleBackground:c,nodeBorder:u}=n,d=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-id",e.id).attr("data-look",e.look),p=d.insert("g",":first-child"),f=d.insert("g").attr("class","cluster-label"),g=d.append("rect"),y=f.node().appendChild(await ti(e.label,e.labelStyle,void 0,!0)),m=y.getBBox();if((0,o._3)(i.flowchart.htmlLabels)){let t=y.children[0],e=(0,s.Ltv)(y);m=t.getBoundingClientRect(),e.attr("width",m.width),e.attr("height",m.height)}let x=0*e.padding,b=(e.width<=m.width+e.padding?m.width+e.padding:e.width)+x;e.width<=m.width+e.padding?e.diff=(b-e.width)/2-e.padding:e.diff=-e.padding;let C=e.height+x,k=e.height+x-m.height-6,_=e.x-b/2,w=e.y-C/2;e.width=b;let v=e.y-e.height/2-x/2+m.height+2;if("handDrawn"===e.look){let t=e.cssClasses.includes("statediagram-cluster-alt"),i=J.svg(d),n=e.rx||e.ry?i.path(tn(_,w,b,C,10),{roughness:.7,fill:c,fillStyle:"solid",stroke:u,seed:a}):i.rectangle(_,w,b,C,{seed:a});r=d.insert(()=>n,":first-child");let o=i.rectangle(_,v,b,k,{fill:t?l:h,fillStyle:t?"hachure":"solid",stroke:u,seed:a});r=d.insert(()=>n,":first-child"),g=d.insert(()=>o)}else(r=p.insert("rect",":first-child")).attr("class","outer").attr("x",_).attr("y",w).attr("width",b).attr("height",C).attr("data-look",e.look),g.attr("class","inner").attr("x",_).attr("y",v).attr("width",b).attr("height",k);f.attr("transform",`translate(${e.x-m.width/2}, ${w+1-((0,o._3)(i.flowchart.htmlLabels)?0:3)})`);let T=r.node().getBBox();return e.height=T.height,e.offsetX=0,e.offsetY=m.height-e.padding/2,e.labelBBox=m,e.intersect=function(t){return tt(e,t)},{cluster:d,labelBBox:m}},"roundedWithTitle"),noteGroup:tu,divider:(0,o.K2)((t,e)=>{let r;let{themeVariables:i,handDrawnSeed:n}=(0,o.D7)(),{nodeBorder:a}=i,s=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-look",e.look),l=s.insert("g",":first-child"),h=0*e.padding,c=e.width+h;e.diff=-e.padding;let u=e.height+h,d=e.x-c/2,p=e.y-u/2;if(e.width=c,"handDrawn"===e.look){let t=J.svg(s).rectangle(d,p,c,u,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:a,seed:n});r=s.insert(()=>t,":first-child")}else(r=l.insert("rect",":first-child")).attr("class","divider").attr("x",d).attr("y",p).attr("width",c).attr("height",u).attr("data-look",e.look);let f=r.node().getBBox();return e.height=f.height,e.offsetX=0,e.offsetY=0,e.intersect=function(t){return tt(e,t)},{cluster:s,labelBBox:{}}},"divider")},tp=new Map,tf=(0,o.K2)(async(t,e)=>{let r=e.shape||"rect",i=await td[r](t,e);return tp.set(e.id,i),i},"insertCluster"),tg=(0,o.K2)(()=>{tp=new Map},"clear"),ty=(0,o.K2)((t,e,r,i,n)=>{e.arrowTypeStart&&tx(t,"start",e.arrowTypeStart,r,i,n),e.arrowTypeEnd&&tx(t,"end",e.arrowTypeEnd,r,i,n)},"addEdgeMarkers"),tm={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},tx=(0,o.K2)((t,e,r,i,n,a)=>{let s=tm[r];if(!s){o.Rm.warn(`Unknown arrow type: ${r}`);return}t.attr(`marker-${e}`,`url(${i}#${n}_${a}-${s}${"start"===e?"Start":"End"})`)},"addEdgeMarker"),tb=new Map,tC=new Map,tk=(0,o.K2)(()=>{tb.clear(),tC.clear()},"clear"),t_=(0,o.K2)(t=>t?t.reduce((t,e)=>t+";"+e,""):"","getLabelStyles"),tw=(0,o.K2)(async(t,e)=>{let r,i=(0,o._3)((0,o.D7)().flowchart.htmlLabels),a=await (0,n.GZ)(t,e.label,{style:t_(e.labelStyle),useHtmlLabels:i,addSvgBackground:!0,isNode:!1});o.Rm.info("abc82",e,e.labelType);let l=t.insert("g").attr("class","edgeLabel"),h=l.insert("g").attr("class","label");h.node().appendChild(a);let c=a.getBBox();if(i){let t=a.children[0],e=(0,s.Ltv)(a);c=t.getBoundingClientRect(),e.attr("width",c.width),e.attr("height",c.height)}if(h.attr("transform","translate("+-c.width/2+", "+-c.height/2+")"),tb.set(e.id,l),e.width=c.width,e.height=c.height,e.startLabelLeft){let i=await ti(e.startLabelLeft,t_(e.labelStyle)),n=t.insert("g").attr("class","edgeTerminals"),a=n.insert("g").attr("class","inner");r=a.node().appendChild(i);let o=i.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),tC.get(e.id)||tC.set(e.id,{}),tC.get(e.id).startLeft=n,tv(r,e.startLabelLeft)}if(e.startLabelRight){let i=await ti(e.startLabelRight,t_(e.labelStyle)),n=t.insert("g").attr("class","edgeTerminals"),a=n.insert("g").attr("class","inner");r=n.node().appendChild(i),a.node().appendChild(i);let o=i.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),tC.get(e.id)||tC.set(e.id,{}),tC.get(e.id).startRight=n,tv(r,e.startLabelRight)}if(e.endLabelLeft){let i=await ti(e.endLabelLeft,t_(e.labelStyle)),n=t.insert("g").attr("class","edgeTerminals"),a=n.insert("g").attr("class","inner");r=a.node().appendChild(i);let o=i.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),n.node().appendChild(i),tC.get(e.id)||tC.set(e.id,{}),tC.get(e.id).endLeft=n,tv(r,e.endLabelLeft)}if(e.endLabelRight){let i=await ti(e.endLabelRight,t_(e.labelStyle)),n=t.insert("g").attr("class","edgeTerminals"),a=n.insert("g").attr("class","inner");r=a.node().appendChild(i);let o=i.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),n.node().appendChild(i),tC.get(e.id)||tC.set(e.id,{}),tC.get(e.id).endRight=n,tv(r,e.endLabelRight)}return a},"insertEdgeLabel");function tv(t,e){(0,o.D7)().flowchart.htmlLabels&&t&&(t.style.width=9*e.length+"px",t.style.height="12px")}(0,o.K2)(tv,"setTerminalWidth");var tT=(0,o.K2)((t,e)=>{o.Rm.debug("Moving label abc88 ",t.id,t.label,tb.get(t.id),e);let r=e.updatedPath?e.updatedPath:e.originalPath,n=(0,o.D7)(),{subGraphTitleTotalMargin:s}=(0,i.O)(n);if(t.label){let i=tb.get(t.id),n=t.x,l=t.y;if(r){let i=a._K.calcLabelPosition(r);o.Rm.debug("Moving label "+t.label+" from (",n,",",l,") to (",i.x,",",i.y,") abc88"),e.updatedPath&&(n=i.x,l=i.y)}i.attr("transform",`translate(${n}, ${l+s/2})`)}if(t.startLabelLeft){let e=tC.get(t.id).startLeft,i=t.x,n=t.y;if(r){let e=a._K.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);i=e.x,n=e.y}e.attr("transform",`translate(${i}, ${n})`)}if(t.startLabelRight){let e=tC.get(t.id).startRight,i=t.x,n=t.y;if(r){let e=a._K.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);i=e.x,n=e.y}e.attr("transform",`translate(${i}, ${n})`)}if(t.endLabelLeft){let e=tC.get(t.id).endLeft,i=t.x,n=t.y;if(r){let e=a._K.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);i=e.x,n=e.y}e.attr("transform",`translate(${i}, ${n})`)}if(t.endLabelRight){let e=tC.get(t.id).endRight,i=t.x,n=t.y;if(r){let e=a._K.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);i=e.x,n=e.y}e.attr("transform",`translate(${i}, ${n})`)}},"positionEdgeLabel"),tA=(0,o.K2)((t,e)=>{let r=t.x,i=t.y,n=Math.abs(e.x-r),a=Math.abs(e.y-i),o=t.width/2,s=t.height/2;return n>=o||a>=s},"outsideNode"),tS=(0,o.K2)((t,e,r)=>{o.Rm.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(e)} + insidePoint : ${JSON.stringify(r)} + node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let i=t.x,n=t.y,a=Math.abs(i-r.x),s=t.width/2,l=r.x<e.x?s-a:s+a,h=t.height/2,c=Math.abs(e.y-r.y),u=Math.abs(e.x-r.x);if(Math.abs(n-e.y)*s>Math.abs(i-e.x)*h){let t=r.y<e.y?e.y-h-n:n-h-e.y;l=u*t/c;let i={x:r.x<e.x?r.x+l:r.x-u+l,y:r.y<e.y?r.y+c-t:r.y-c+t};return 0===l&&(i.x=e.x,i.y=e.y),0===u&&(i.x=e.x),0===c&&(i.y=e.y),o.Rm.debug(`abc89 top/bottom calc, Q ${c}, q ${t}, R ${u}, r ${l}`,i),i}{let t=c*(l=r.x<e.x?e.x-s-i:i-s-e.x)/u,n=r.x<e.x?r.x+u-l:r.x-u+l,a=r.y<e.y?r.y+t:r.y-t;return o.Rm.debug(`sides calc abc89, Q ${c}, q ${t}, R ${u}, r ${l}`,{_x:n,_y:a}),0===l&&(n=e.x,a=e.y),0===u&&(n=e.x),0===c&&(a=e.y),{x:n,y:a}}},"intersection"),tB=(0,o.K2)((t,e)=>{o.Rm.warn("abc88 cutPathAtIntersect",t,e);let r=[],i=t[0],n=!1;return t.forEach(t=>{if(o.Rm.info("abc88 checking point",t,e),tA(e,t)||n)o.Rm.warn("abc88 outside",t,i),i=t,n||r.push(t);else{let a=tS(e,i,t);o.Rm.debug("abc88 inside",t,i,a),o.Rm.debug("abc88 intersection",a,e);let s=!1;r.forEach(t=>{s=s||t.x===a.x&&t.y===a.y}),r.some(t=>t.x===a.x&&t.y===a.y)?o.Rm.warn("abc88 no intersect",a,r):r.push(a),n=!0}}),o.Rm.debug("returning points",r),r},"cutPathAtIntersect");function tM(t){let e=[],r=[];for(let i=1;i<t.length-1;i++){let n=t[i-1],a=t[i],o=t[i+1];n.x===a.x&&a.y===o.y&&Math.abs(a.x-o.x)>5&&Math.abs(a.y-n.y)>5?(e.push(a),r.push(i)):n.y===a.y&&a.x===o.x&&Math.abs(a.x-n.x)>5&&Math.abs(a.y-o.y)>5&&(e.push(a),r.push(i))}return{cornerPoints:e,cornerPointPositions:r}}(0,o.K2)(tM,"extractCornerPoints");var tL=(0,o.K2)(function(t,e,r){let i=e.x-t.x,n=e.y-t.y,a=r/Math.sqrt(i*i+n*n);return{x:e.x-a*i,y:e.y-a*n}},"findAdjacentPoint"),tF=(0,o.K2)(function(t){let{cornerPointPositions:e}=tM(t),r=[];for(let i=0;i<t.length;i++)if(e.includes(i)){let e=t[i-1],n=t[i+1],a=t[i],s=tL(e,a,5),l=tL(n,a,5),h=l.x-s.x,c=l.y-s.y;r.push(s);let u=2*Math.sqrt(2),d={x:a.x,y:a.y};Math.abs(n.x-e.x)>10&&Math.abs(n.y-e.y)>=10?(o.Rm.debug("Corner point fixing",Math.abs(n.x-e.x),Math.abs(n.y-e.y)),d=a.x===s.x?{x:h<0?s.x-5+u:s.x+5-u,y:c<0?s.y-u:s.y+u}:{x:h<0?s.x-u:s.x+u,y:c<0?s.y-5+u:s.y+5-u}):o.Rm.debug("Corner point skipping fixing",Math.abs(n.x-e.x),Math.abs(n.y-e.y)),r.push(d,l)}else r.push(t[i]);return r},"fixCorners"),tE=(0,o.K2)(function(t,e,r,n,a,l,h){let c,u;let{handDrawnSeed:d}=(0,o.D7)(),p=e.points,f=!1;l.intersect&&a.intersect&&((p=p.slice(1,e.points.length-1)).unshift(a.intersect(p[0])),o.Rm.debug("Last point APA12",e.start,"-->",e.end,p[p.length-1],l,l.intersect(p[p.length-1])),p.push(l.intersect(p[p.length-1]))),e.toCluster&&(o.Rm.info("to cluster abc88",r.get(e.toCluster)),p=tB(e.points,r.get(e.toCluster).node),f=!0),e.fromCluster&&(o.Rm.debug("from cluster abc88",r.get(e.fromCluster),JSON.stringify(p,null,2)),p=tB(p.reverse(),r.get(e.fromCluster).node).reverse(),f=!0);let g=p.filter(t=>!Number.isNaN(t.y)),y=(g=tF(g))[g.length-1];if(g.length>1){y=g[g.length-1];let t=g[g.length-2],e=(y.x-t.x)/2,r=(y.y-t.y)/2,i={x:t.x+e,y:t.y+r};g.splice(-1,0,i)}let m=s.qrM;e.curve&&(m=e.curve);let{x,y:b}=(0,i.R)(e),C=(0,s.n8j)().x(x).y(b).curve(m);switch(e.thickness){case"normal":default:c="edge-thickness-normal";break;case"thick":c="edge-thickness-thick";break;case"invisible":c="edge-thickness-invisible"}switch(e.pattern){case"solid":default:c+=" edge-pattern-solid";break;case"dotted":c+=" edge-pattern-dotted";break;case"dashed":c+=" edge-pattern-dashed"}let k=C(g),_=Array.isArray(e.style)?e.style:[e.style];if("handDrawn"===e.look){let r=J.svg(t);Object.assign([],g);let i=r.path(k,{roughness:.3,seed:d});c+=" transition";let n=(u=(0,s.Ltv)(i).select("path").attr("id",e.id).attr("class"," "+c+(e.classes?" "+e.classes:"")).attr("style",_?_.reduce((t,e)=>t+";"+e,""):"")).attr("d");u.attr("d",n),t.node().appendChild(u.node())}else u=t.append("path").attr("d",k).attr("id",e.id).attr("class"," "+c+(e.classes?" "+e.classes:"")).attr("style",_?_.reduce((t,e)=>t+";"+e,""):"");let w="";((0,o.D7)().flowchart.arrowMarkerAbsolute||(0,o.D7)().state.arrowMarkerAbsolute)&&(w=(w=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(").replace(/\)/g,"\\)")),o.Rm.info("arrowTypeStart",e.arrowTypeStart),o.Rm.info("arrowTypeEnd",e.arrowTypeEnd),ty(u,e,w,h,n);let v={};return f&&(v.updatedPath=p),v.originalPath=e.points,v},"insertEdge"),t$=(0,o.K2)((t,e,r,i)=>{e.forEach(e=>{tN[e](t,r,i)})},"insertMarkers"),tO=(0,o.K2)((t,e,r)=>{o.Rm.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),tI=(0,o.K2)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),tD=(0,o.K2)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),tR=(0,o.K2)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),tz=(0,o.K2)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),tq=(0,o.K2)((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),tN={extension:tO,composition:tI,aggregation:tD,dependency:tR,lollipop:tz,point:tq,circle:(0,o.K2)((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),cross:(0,o.K2)((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),barb:(0,o.K2)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb")},tP=t$,tK=(0,o.K2)(async(t,e,r)=>{let i,l,h;let c=e.useHtmlLabels||(0,o._3)((0,o.D7)().flowchart.htmlLabels);i=r||"node default";let u=t.insert("g").attr("class",i).attr("id",e.domId||e.id),d=u.insert("g").attr("class","label").attr("style",e.labelStyle);l=void 0===e.label?"":"string"==typeof e.label?e.label:e.label[0];let p=(h=await (0,n.GZ)(d,(0,o.jZ)((0,a.Sm)(l),(0,o.D7)()),{useHtmlLabels:c,width:e.width||(0,o.D7)().flowchart.wrappingWidth,cssClasses:"markdown-node-label",style:e.labelStyle})).getBBox(),f=e.padding/2;if((0,o._3)((0,o.D7)().flowchart.htmlLabels)){let t=h.children[0],e=(0,s.Ltv)(h),r=t.getElementsByTagName("img");if(r){let t=""===l.replace(/<img[^>]*>/g,"").trim();await Promise.all([...r].map(e=>new Promise(r=>{function i(){if(e.style.display="flex",e.style.flexDirection="column",t){let t=5*parseInt((0,o.D7)().fontSize?(0,o.D7)().fontSize:window.getComputedStyle(document.body).fontSize,10)+"px";e.style.minWidth=t,e.style.maxWidth=t}else e.style.width="100%";r(e)}(0,o.K2)(i,"setupImage"),setTimeout(()=>{e.complete&&i()}),e.addEventListener("error",i),e.addEventListener("load",i)})))}p=t.getBoundingClientRect(),e.attr("width",p.width),e.attr("height",p.height)}return c?d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"):d.attr("transform","translate(0, "+-p.height/2+")"),e.centerLabel&&d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),d.insert("rect",":first-child"),{shapeSvg:u,bbox:p,halfPadding:f,label:d}},"labelHelper"),tj=(0,o.K2)((t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds"),tW=(0,o.K2)((t,e)=>("handDrawn"===t.look?"rough-node":"node")+" "+t.cssClasses+" "+(e||""),"getNodeClasses");function tU(t,e,r,i){var n=t.x,a=t.y,o=n-i.x,s=a-i.y,l=Math.sqrt(e*e*s*s+r*r*o*o),h=Math.abs(e*r*o/l);i.x<n&&(h=-h);var c=Math.abs(e*r*s/l);return i.y<a&&(c=-c),{x:n+h,y:a+c}}function tH(t,e,r){return tU(t,e,e,r)}function tY(t,e,r,i){var n,a,o,s,l,h,c,u,d,p,f,g,y;if(n=e.y-t.y,o=t.x-e.x,l=e.x*t.y-t.x*e.y,d=n*r.x+o*r.y+l,p=n*i.x+o*i.y+l,!(0!==d&&0!==p&&tG(d,p))&&(a=i.y-r.y,s=r.x-i.x,h=i.x*r.y-r.x*i.y,c=a*t.x+s*t.y+h,u=a*e.x+s*e.y+h,!(0!==c&&0!==u&&tG(c,u))&&0!=(f=n*s-a*o)))return g=Math.abs(f/2),{x:(y=o*h-s*l)<0?(y-g)/f:(y+g)/f,y:(y=a*l-n*h)<0?(y-g)/f:(y+g)/f}}function tG(t,e){return t*e>0}function tZ(t,e,r){let i=t.x,n=t.y,a=[],o=Number.POSITIVE_INFINITY,s=Number.POSITIVE_INFINITY;"function"==typeof e.forEach?e.forEach(function(t){o=Math.min(o,t.x),s=Math.min(s,t.y)}):(o=Math.min(o,e.x),s=Math.min(s,e.y));let l=i-t.width/2-o,h=n-t.height/2-s;for(let i=0;i<e.length;i++){let n=e[i],o=e[i<e.length-1?i+1:0],s=tY(t,r,{x:l+n.x,y:h+n.y},{x:l+o.x,y:h+o.y});s&&a.push(s)}return a.length?(a.length>1&&a.sort(function(t,e){let i=t.x-r.x,n=t.y-r.y,a=Math.sqrt(i*i+n*n),o=e.x-r.x,s=e.y-r.y,l=Math.sqrt(o*o+s*s);return a<l?-1:a===l?0:1}),a[0]):t}(0,o.K2)(function(t,e){return t.intersect(e)},"intersectNode"),(0,o.K2)(tU,"intersectEllipse"),(0,o.K2)(tH,"intersectCircle"),(0,o.K2)(tY,"intersectLine"),(0,o.K2)(tG,"sameSign"),(0,o.K2)(tZ,"intersectPolygon");var tV=(0,o.K2)(async(t,e,r)=>{let i;let{labelStyles:n,nodeStyles:a}=tl(e);e.labelStyle=n;let{shapeSvg:o,bbox:s}=await tK(t,e,tW(e)),l=Math.max(s.width+2*r.labelPaddingX,e?.width||0),h=Math.max(s.height+2*r.labelPaddingY,e?.height||0),c=-l/2,u=-h/2,{rx:d,ry:p}=e,{cssStyles:f}=e;if(r?.rx&&r.ry&&(d=r.rx,p=r.ry),"handDrawn"===e.look){let t=J.svg(o),r=th(e,{}),n=d||p?t.path(tn(c,u,l,h,d||0),r):t.rectangle(c,u,l,h,r);(i=o.insert(()=>n,":first-child")).attr("class","basic label-container").attr("style",f)}else(i=o.insert("rect",":first-child")).attr("class","basic label-container").attr("style",a).attr("rx",d).attr("data-id","abc").attr("data-et","node").attr("ry",p).attr("x",c).attr("y",u).attr("width",l).attr("height",h);return tj(e,i),e.intersect=function(t){return tt(e,t)},o},"drawRect"),tX=(0,o.K2)(async(t,e)=>tV(t,e,{rx:5,ry:5,classes:"flowchart-node"}),"state"),tQ=(0,o.K2)(async(t,e)=>{let r={rx:5,ry:5,classes:"",labelPaddingX:1*(e?.padding||0),labelPaddingY:1*(e?.padding||0)};return tV(t,e,r)},"roundedRect"),tJ=(0,o.K2)(async(t,e)=>{let r={rx:0,ry:0,classes:"",labelPaddingX:2*(e?.padding||0),labelPaddingY:1*(e?.padding||0)};return tV(t,e,r)},"squareRect"),t0=(0,o.K2)((t,e)=>{let r;let{themeVariables:i}=(0,o.D7)(),{lineColor:n}=i,a=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);if("handDrawn"===e.look){let t=J.svg(a).circle(0,0,14,ta(n));r=a.insert(()=>t)}else r=a.insert("circle",":first-child");return r.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),tj(e,r),e.intersect=function(t){return tH(e,7,t)},a},"stateStart"),t1=(0,o.K2)((t,e)=>{let r,i;let{themeVariables:n}=(0,o.D7)(),{lineColor:a}=n,s=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);if("handDrawn"===e.look){let t=J.svg(s),e=t.circle(0,0,14,{...ta(a),roughness:.5}),n=t.circle(0,0,5,{...ta(a),fillStyle:"solid"});r=s.insert(()=>e),i=s.insert(()=>n)}else i=s.insert("circle",":first-child"),(r=s.insert("circle",":first-child")).attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),i.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10);return tj(e,r),e.intersect=function(t){return tH(e,7,t)},s},"stateEnd"),t2=(0,o.K2)((t,e,r)=>{let i;let{themeVariables:n}=(0,o.D7)(),{lineColor:a}=n,s=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),l=70,h=10;"LR"===r&&(l=10,h=70);let c=-1*l/2,u=-1*h/2;if("handDrawn"===e.look){let t=J.svg(s).rectangle(c,u,l,h,ta(a));i=s.insert(()=>t)}else i=s.append("rect").attr("x",c).attr("y",u).attr("width",l).attr("height",h).attr("class","fork-join");tj(e,i);let d=0,p=0,f=10;return e.height&&(d=e.height),e.width&&(p=e.width),e.padding&&(f=e.padding),e.height=d+f/2,e.width=p+f/2,e.intersect=function(t){return tt(e,t)},s},"forkJoin"),t3=(0,o.K2)((t,e)=>{let r;let{labelStyles:i,nodeStyles:n}=tl(e);e.labelStyle=i;let{themeVariables:a}=(0,o.D7)(),{lineColor:s}=a,l=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),h=[{x:0,y:14},{x:14,y:0},{x:0,y:-14},{x:-14,y:0}];if("handDrawn"===e.look){let t=J.svg(l),e=h.map(function(t){return[t.x,t.y]}),i=t.polygon(e,ta(s));r=l.insert(()=>i)}else r=l.insert("polygon",":first-child").attr("points",h.map(function(t){return t.x+","+t.y}).join(" "));return r.attr("class","state-start").attr("r",7).attr("width",28).attr("height",28).attr("style",n),e.width=28,e.height=28,e.intersect=function(t){return tH(e,14,t)},l},"choice"),t5=(0,o.K2)(async(t,e)=>{let r;let{themeVariables:i,handDrawnSeed:n}=(0,o.D7)(),{noteBorderColor:a,noteBkgColor:s}=i;e.useHtmlLabels||(e.centerLabel=!0);let{shapeSvg:l,bbox:h}=await tK(t,e,"node "+e.cssClasses);o.Rm.info("Classes = ",e.cssClasses);let{cssStyles:c}=e,u=h.width+e.padding,d=h.height+e.padding,p=-u/2,f=-d/2;if("handDrawn"===e.look){let t=J.svg(l).rectangle(p,f,u,d,{roughness:.7,fill:s,fillWeight:3,seed:n,stroke:a});(r=l.insert(()=>t,":first-child")).attr("class","basic label-container").attr("style",c)}else(r=l.insert("rect",":first-child")).attr("rx",e.rx).attr("ry",e.ry).attr("x",p).attr("y",f).attr("width",u).attr("height",d);return tj(e,r),e.intersect=function(t){return tt(e,t)},l},"note"),t6=(0,o.K2)(async(t,e)=>{let r;let{labelStyles:i,nodeStyles:n}=tl(e);e.labelStyle=i;let{shapeSvg:a,bbox:o}=await tK(t,e,tW(e)),s=o.height+e.padding,l=o.width+s/4+e.padding,{cssStyles:h}=e;if("handDrawn"===e.look){let t=J.svg(a),i=th(e,{}),n=tn(-l/2,-s/2,l,s,s/2),o=t.path(n,i);(r=a.insert(()=>o,":first-child")).attr("class","basic label-container").attr("style",h)}else(r=a.insert("rect",":first-child")).attr("class","basic label-container").attr("style",n).attr("rx",s/2).attr("ry",s/2).attr("x",-l/2).attr("y",-s/2).attr("width",l).attr("height",s);return tj(e,r),e.intersect=function(t){return tt(e,t)},a},"stadium"),t4=(0,o.K2)(async(t,e)=>{let r,i,n;let{labelStyles:a,nodeStyles:l}=tl(e);e.labelStyle=a,r=e.cssClasses?"node "+e.cssClasses:"node default";let h=t.insert("g").attr("class",r).attr("id",e.domId||e.id),c=h.insert("g"),u=h.insert("g").attr("class","label").attr("style",l),d=e.description,p=e.label,f=u.node().appendChild(await ti(p,e.labelStyle,!0,!0)),g={width:0,height:0};if((0,o._3)(o.D7()?.flowchart?.htmlLabels)){let t=f.children[0],e=(0,s.Ltv)(f);g=t.getBoundingClientRect(),e.attr("width",g.width),e.attr("height",g.height)}o.Rm.info("Text 2",d);let y=d||[],m=f.getBBox(),x=u.node().appendChild(await ti(y.join?y.join("<br/>"):y,e.labelStyle,!0,!0)),b=x.children[0],C=(0,s.Ltv)(x);g=b.getBoundingClientRect(),C.attr("width",g.width),C.attr("height",g.height);let k=(e.padding||0)/2;(0,s.Ltv)(x).attr("transform","translate( "+(g.width>m.width?0:(m.width-g.width)/2)+", "+(m.height+k+5)+")"),(0,s.Ltv)(f).attr("transform","translate( "+(g.width<m.width?0:-(m.width-g.width)/2)+", 0)"),g=u.node().getBBox(),u.attr("transform","translate("+-g.width/2+", "+(-g.height/2-k+3)+")");let _=g.width+(e.padding||0),w=g.height+(e.padding||0),v=-g.width/2-k,T=-g.height/2-k;if("handDrawn"===e.look){let t=J.svg(h),r=th(e,{}),a=t.path(tn(v,T,_,w,e.rx||0),r),s=t.line(-g.width/2-k,-g.height/2-k+m.height+k,g.width/2+k,-g.height/2-k+m.height+k,r);n=h.insert(()=>(o.Rm.debug("Rough node insert CXC",a),s),":first-child"),i=h.insert(()=>(o.Rm.debug("Rough node insert CXC",a),a),":first-child")}else i=c.insert("rect",":first-child"),n=c.insert("line"),i.attr("class","outer title-state").attr("style",l).attr("x",-g.width/2-k).attr("y",-g.height/2-k).attr("width",g.width+(e.padding||0)).attr("height",g.height+(e.padding||0)),n.attr("class","divider").attr("x1",-g.width/2-k).attr("x2",g.width/2+k).attr("y1",-g.height/2-k+m.height+k).attr("y2",-g.height/2-k+m.height+k);return tj(e,i),e.intersect=function(t){return tt(e,t)},h},"rectWithTitle");function t8(t,e,r,i){return t.insert("polygon",":first-child").attr("points",i.map(function(t){return t.x+","+t.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}(0,o.K2)(t8,"insertPolygonShape");var t9=(0,o.K2)(async(t,e)=>{let{labelStyles:r,nodeStyles:i}=tl(e);e.labelStyle=r;let{shapeSvg:n,bbox:a}=await tK(t,e,tW(e)),o=(e?.padding||0)/2,s=a.width+e.padding,l=a.height+e.padding,h=-a.width/2-o,c=-a.height/2-o,u=[{x:0,y:0},{x:s,y:0},{x:s,y:-l},{x:0,y:-l},{x:0,y:0},{x:-8,y:0},{x:s+8,y:0},{x:s+8,y:-l},{x:-8,y:-l},{x:-8,y:0}];if("handDrawn"===e.look){let t=J.svg(n),r=th(e,{}),i=t.rectangle(h-8,c,s+16,l,r),a=t.line(h,c,h,c+l,r),o=t.line(h+s,c,h+s,c+l,r);n.insert(()=>a,":first-child"),n.insert(()=>o,":first-child");let u=n.insert(()=>i,":first-child"),{cssStyles:d}=e;u.attr("class","basic label-container").attr("style",d),tj(e,u)}else{let t=t8(n,s,l,u);i&&t.attr("style",i),tj(e,t)}return e.intersect=function(t){return tZ(e,u,t)},n},"subroutine"),t7=(0,o.K2)((t,e,r,i,n,a)=>`M${t},${e+a} a${n},${a} 0,0,0 ${r},0 a${n},${a} 0,0,0 ${-r},0 l0,${i} a${n},${a} 0,0,0 ${r},0 l0,${-i}`,"createCylinderPathD"),et=(0,o.K2)((t,e,r,i,n,a)=>`M${t},${e+a} M${t+r},${e+a} a${n},${a} 0,0,0 ${-r},0 l0,${i} a${n},${a} 0,0,0 ${r},0 l0,${-i}`,"createOuterCylinderPathD"),ee=(0,o.K2)((t,e,r,i,n,a)=>`M${t-r/2},${-i/2} a${n},${a} 0,0,0 ${r},0`,"createInnerCylinderPathD"),er=(0,o.K2)(async(t,e)=>{let r;let{labelStyles:i,nodeStyles:n}=tl(e);e.labelStyle=i;let{shapeSvg:a,bbox:o}=await tK(t,e,tW(e)),s=o.width+e.padding,l=s/2,h=l/(2.5+s/50),c=o.height+h+e.padding,{cssStyles:u}=e;if("handDrawn"===e.look){let t=J.svg(a),i=et(0,0,s,c,l,h),n=ee(0,h,s,c,l,h),o=t.path(i,th(e,{})),d=t.path(n,th(e,{fill:"none"}));r=a.insert(()=>d,":first-child"),(r=a.insert(()=>o,":first-child")).attr("class","basic label-container"),u&&r.attr("style",u)}else{let t=t7(0,0,s,c,l,h);r=a.insert("path",":first-child").attr("d",t).attr("class","basic label-container").attr("style",u).attr("style",n)}return r.attr("label-offset-y",h),r.attr("transform",`translate(${-s/2}, ${-(c/2+h)})`),tj(e,r),e.intersect=function(t){let r=tt(e,t),i=r.x-(e.x??0);if(0!=l&&(Math.abs(i)<(e.width??0)/2||Math.abs(i)==(e.width??0)/2&&Math.abs(r.y-(e.y??0))>(e.height??0)/2-h)){let n=h*h*(1-i*i/(l*l));n>0&&(n=Math.sqrt(n)),n=h-n,t.y-(e.y??0)>0&&(n=-n),r.y+=n}return r},a},"cylinder"),ei=(0,o.K2)(async(t,e)=>{let r;let{labelStyles:i,nodeStyles:n}=tl(e);e.labelStyle=i;let{shapeSvg:a,bbox:s,halfPadding:l}=await tK(t,e,tW(e)),h=s.width/2+l,{cssStyles:c}=e;if("handDrawn"===e.look){let t=J.svg(a),i=th(e,{}),n=t.circle(0,0,2*h,i);(r=a.insert(()=>n,":first-child")).attr("class","basic label-container").attr("style",c)}else r=a.insert("circle",":first-child").attr("class","basic label-container").attr("style",n).attr("r",h).attr("cx",0).attr("cy",0);return tj(e,r),e.intersect=function(t){return o.Rm.info("Circle intersect",e,h,t),tH(e,h,t)},a},"circle"),en=(0,o.K2)(async(t,e)=>{let r;let{labelStyles:i,nodeStyles:n}=tl(e);e.labelStyle=i;let{shapeSvg:a,bbox:s,halfPadding:l}=await tK(t,e,tW(e)),h=s.width/2+l+5,c=s.width/2+l,{cssStyles:u}=e;if("handDrawn"===e.look){let t=J.svg(a),i=th(e,{roughness:.2,strokeWidth:2.5}),n=th(e,{roughness:.2,strokeWidth:1.5}),o=t.circle(0,0,2*h,i),s=t.circle(0,0,2*c,n);(r=a.insert("g",":first-child")).attr("class",e.cssClasses).attr("style",u),r.node()?.appendChild(o),r.node()?.appendChild(s)}else{let t=(r=a.insert("g",":first-child")).insert("circle",":first-child"),e=r.insert("circle");r.attr("class","basic label-container").attr("style",n),t.attr("class","outer-circle").attr("style",n).attr("r",h).attr("cx",0).attr("cy",0),e.attr("class","inner-circle").attr("style",n).attr("r",c).attr("cx",0).attr("cy",0)}return tj(e,r),e.intersect=function(t){return o.Rm.info("DoubleCircle intersect",e,h,t),tH(e,h,t)},a},"doublecircle"),ea=(0,o.K2)((t,e,r,i)=>`M${t-i/2},${e} L${t+r},${e} L${t+r},${e-i} L${t-i/2},${e-i} L${t},${e-i/2} Z`,"createPolygonPathD"),eo=(0,o.K2)(async(t,e)=>{let r;let{labelStyles:i,nodeStyles:n}=tl(e);e.labelStyle=i;let{shapeSvg:a,bbox:o}=await tK(t,e,tW(e)),s=o.width+e.padding,l=o.height+e.padding,h=[{x:-l/2,y:0},{x:s,y:0},{x:s,y:-l},{x:-l/2,y:-l},{x:0,y:-l/2}],{cssStyles:c}=e;if("handDrawn"===e.look){let t=J.svg(a),i=th(e,{}),n=ea(0,0,s,l),o=t.path(n,i);r=a.insert(()=>o,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),c&&r.attr("style",c)}else r=t8(a,s,l,h);return n&&r.attr("style",n),e.width=s+l,e.height=l,tj(e,r),e.intersect=function(t){return tZ(e,h,t)},a},"rect_left_inv_arrow"),es=(0,o.K2)((t,e,r)=>`M${t+r/2},${e} L${t+r},${e-r/2} L${t+r/2},${e-r} L${t},${e-r/2} Z`,"createDecisionBoxPathD"),el=(0,o.K2)(async(t,e)=>{let r;let{labelStyles:i,nodeStyles:n}=tl(e);e.labelStyle=i;let{shapeSvg:a,bbox:s}=await tK(t,e,tW(e)),l=s.width+e.padding+(s.height+e.padding),h=[{x:l/2,y:0},{x:l,y:-l/2},{x:l/2,y:-l},{x:0,y:-l/2}],{cssStyles:c}=e;if("handDrawn"===e.look){let t=J.svg(a),i=th(e,{}),n=es(0,0,l),o=t.path(n,i);r=a.insert(()=>o,":first-child").attr("transform",`translate(${-l/2}, ${l/2})`),c&&r.attr("style",c)}else r=t8(a,l,l,h);return n&&r.attr("style",n),tj(e,r),e.intersect=function(t){return o.Rm.debug("APA12 Intersect called SPLIT\npoint:",t,"\nnode:\n",e,"\nres:",tZ(e,h,t)),tZ(e,h,t)},a},"question"),eh=(0,o.K2)((t,e,r,i,n)=>`M${t+n},${e} L${t+r-n},${e} L${t+r},${e-i/2} L${t+r-n},${e-i} L${t+n},${e-i} L${t},${e-i/2} Z`,"createHexagonPathD"),ec=(0,o.K2)(async(t,e)=>{let r;let{labelStyles:i,nodeStyles:n}=tl(e);e.labelStyle=i;let{shapeSvg:a,bbox:o}=await tK(t,e,tW(e)),s=o.height+e.padding,l=s/4,h=o.width+2*l+e.padding,c=[{x:l,y:0},{x:h-l,y:0},{x:h,y:-s/2},{x:h-l,y:-s},{x:l,y:-s},{x:0,y:-s/2}],{cssStyles:u}=e;if("handDrawn"===e.look){let t=J.svg(a),i=th(e,{}),n=eh(0,0,h,s,l),o=t.path(n,i);r=a.insert(()=>o,":first-child").attr("transform",`translate(${-h/2}, ${s/2})`),u&&r.attr("style",u)}else r=t8(a,h,s,c);return n&&r.attr("style",n),e.width=h,e.height=s,tj(e,r),e.intersect=function(t){return tZ(e,c,t)},a},"hexagon"),eu=(0,o.K2)((t,e,r,i)=>`M${t-2*i/6},${e} L${t+r-i/6},${e} L${t+r+2*i/6},${e-i} L${t+i/6},${e-i} Z`,"createLeanRightPathD"),ed=(0,o.K2)(async(t,e)=>{let r;let{labelStyles:i,nodeStyles:n}=tl(e);e.labelStyle=i;let{shapeSvg:a,bbox:o}=await tK(t,e,tW(e)),s=o.width+e.padding,l=o.height+e.padding,h=[{x:-2*l/6,y:0},{x:s-l/6,y:0},{x:s+2*l/6,y:-l},{x:l/6,y:-l}],{cssStyles:c}=e;if("handDrawn"===e.look){let t=J.svg(a),i=th(e,{}),n=eu(0,0,s,l),o=t.path(n,i);r=a.insert(()=>o,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),c&&r.attr("style",c)}else r=t8(a,s,l,h);return n&&r.attr("style",n),e.width=s,e.height=l,tj(e,r),e.intersect=function(t){return tZ(e,h,t)},a},"lean_right"),ep=(0,o.K2)((t,e,r,i)=>`M${t+2*i/6},${e} L${t+r+i/6},${e} L${t+r-2*i/6},${e-i} L${t-i/6},${e-i} Z`,"createLeanLeftPathD"),ef=(0,o.K2)(async(t,e)=>{let r;let{labelStyles:i,nodeStyles:n}=tl(e);e.labelStyle=i;let{shapeSvg:a,bbox:o}=await tK(t,e,tW(e)),s=o.width+e.padding,l=o.height+e.padding,h=[{x:2*l/6,y:0},{x:s+l/6,y:0},{x:s-2*l/6,y:-l},{x:-l/6,y:-l}],{cssStyles:c}=e;if("handDrawn"===e.look){let t=J.svg(a),i=th(e,{}),n=ep(0,0,s,l),o=t.path(n,i);r=a.insert(()=>o,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),c&&r.attr("style",c)}else r=t8(a,s,l,h);return n&&r.attr("style",n),e.width=s,e.height=l,tj(e,r),e.intersect=function(t){return tZ(e,h,t)},a},"lean_left"),eg=(0,o.K2)((t,e,r,i)=>`M${t-2*i/6},${e} L${t+r+2*i/6},${e} L${t+r-i/6},${e-i} L${t+i/6},${e-i} Z`,"createTrapezoidPathD"),ey=(0,o.K2)(async(t,e)=>{let r;let{labelStyles:i,nodeStyles:n}=tl(e);e.labelStyle=i;let{shapeSvg:a,bbox:o}=await tK(t,e,tW(e)),s=o.width+e.padding,l=o.height+e.padding,h=[{x:-2*l/6,y:0},{x:s+2*l/6,y:0},{x:s-l/6,y:-l},{x:l/6,y:-l}],{cssStyles:c}=e;if("handDrawn"===e.look){let t=J.svg(a),i=th(e,{}),n=eg(0,0,s,l),o=t.path(n,i);r=a.insert(()=>o,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),c&&r.attr("style",c)}else r=t8(a,s,l,h);return n&&r.attr("style",n),e.width=s,e.height=l,tj(e,r),e.intersect=function(t){return tZ(e,h,t)},a},"trapezoid"),em=(0,o.K2)((t,e,r,i)=>`M${t+i/6},${e} L${t+r-i/6},${e} L${t+r+2*i/6},${e-i} L${t-2*i/6},${e-i} Z`,"createInvertedTrapezoidPathD"),ex={state:tX,stateStart:t0,stateEnd:t1,fork:t2,join:t2,choice:t3,note:t5,roundedRect:tQ,rectWithTitle:t4,squareRect:tJ,stadium:t6,subroutine:t9,cylinder:er,circle:ei,doublecircle:en,odd:eo,diamond:el,hexagon:ec,lean_right:ed,lean_left:ef,trapezoid:ey,inv_trapezoid:(0,o.K2)(async(t,e)=>{let r;let{labelStyles:i,nodeStyles:n}=tl(e);e.labelStyle=i;let{shapeSvg:a,bbox:o}=await tK(t,e,tW(e)),s=o.width+e.padding,l=o.height+e.padding,h=[{x:l/6,y:0},{x:s-l/6,y:0},{x:s+2*l/6,y:-l},{x:-2*l/6,y:-l}],{cssStyles:c}=e;if("handDrawn"===e.look){let t=J.svg(a),i=th(e,{}),n=em(0,0,s,l),o=t.path(n,i);r=a.insert(()=>o,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),c&&r.attr("style",c)}else r=t8(a,s,l,h);return n&&r.attr("style",n),e.width=s,e.height=l,tj(e,r),e.intersect=function(t){return tZ(e,h,t)},a},"inv_trapezoid"),labelRect:(0,o.K2)(async(t,e)=>{let{shapeSvg:r}=await tK(t,e,"label"),i=r.insert("rect",":first-child");return i.attr("width",.1).attr("height",.1),r.attr("class","label edgeLabel"),tj(e,i),e.intersect=function(t){return tt(e,t)},r},"labelRect")},eb=new Map,eC=(0,o.K2)(async(t,e,r)=>{let i,n;if("rect"===e.shape&&(e.rx&&e.ry?e.shape="roundedRect":e.shape="squareRect"),e.link){let a;"sandbox"===(0,o.D7)().securityLevel?a="_top":e.linkTarget&&(a=e.linkTarget||"_blank"),i=t.insert("svg:a").attr("xlink:href",e.link).attr("target",a),n=await ex[e.shape](i,e,r)}else i=n=await ex[e.shape](t,e,r);return e.tooltip&&n.attr("title",e.tooltip),eb.set(e.id,i),e.haveCallback&&eb.get(e.id).attr("class",eb.get(e.id).attr("class")+" clickable"),i},"insertNode"),ek=(0,o.K2)((t,e)=>{eb.set(e.id,t)},"setNodeElem"),e_=(0,o.K2)(()=>{eb.clear()},"clear"),ew=(0,o.K2)(t=>{let e=eb.get(t.id);o.Rm.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+r-t.width/2)+", "+(t.y-t.height/2-8)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),r},"positionNode")},57014:(t,e,r)=>{"use strict";r.d(e,{XX:()=>h,q7:()=>c,sO:()=>l});var i=r(93510),n=r(67027),a=r(72912),o={common:a.Y2,getConfig:a.zj,insertCluster:i.U,insertEdge:i.Jo,insertEdgeLabel:i.jP,insertMarkers:i.g0,insertNode:i.on,interpolateToCurve:n.Ib,labelHelper:i.Zk,log:a.Rm,positionEdgeLabel:i.T_},s={},l=(0,a.K2)(t=>{for(let e of t)s[e.name]=e},"registerLayoutLoaders");(0,a.K2)(()=>{l([{name:"dagre",loader:(0,a.K2)(async()=>await Promise.all([r.e(34166),r.e(62628),r.e(93422)]).then(r.bind(r,93422)),"loader")}])},"registerDefaultLayoutLoaders")();var h=(0,a.K2)(async(t,e)=>{if(!(t.layoutAlgorithm in s))throw Error(`Unknown layout algorithm: ${t.layoutAlgorithm}`);let r=s[t.layoutAlgorithm];return(await r.loader()).render(t,e,o,{algorithm:r.algorithm})},"render"),c=(0,a.K2)((t="",{fallback:e="dagre"}={})=>{if(t in s)return t;if(e in s)return a.Rm.warn(`Layout algorithm ${t} is not registered. Using ${e} as fallback.`),e;throw Error(`Both layout algorithms ${t} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm")},7293:(t,e,r)=>{"use strict";r.d(e,{A:()=>nf});var i,n=r(90492),a=r(57014);r(93510),r(16470),r(27923);var o=r(67027),s=r(26873),l=r(93491),h=r(72912),c=r(97597),u=r(89601),d="comm",p="rule",f="decl",g=Math.abs,y=String.fromCharCode;function m(t,e,r){return t.replace(e,r)}function x(t,e){return 0|t.charCodeAt(e)}function b(t,e,r){return t.slice(e,r)}function C(t){return t.length}function k(t,e){return e.push(t),t}function _(t,e){for(var r="",i=0;i<t.length;i++)r+=e(t[i],i,t,e)||"";return r}function w(t,e,r,i){switch(t.type){case"@layer":if(t.children.length)break;case"@import":case f:return t.return=t.return||t.value;case d:return"";case"@keyframes":return t.return=t.value+"{"+_(t.children,i)+"}";case p:if(!C(t.value=t.props.join(",")))return""}return C(r=_(t.children,i))?t.return=t.value+"{"+r+"}":""}var v=1,T=1,A=0,S=0,B=0,M="";function L(t,e,r,i,n,a,o,s){return{value:t,root:e,parent:r,type:i,props:n,children:a,line:v,column:T,length:o,return:"",siblings:s}}function F(){return B=S<A?x(M,S++):0,T++,10===B&&(T=1,v++),B}function E(){return x(M,S)}function $(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function O(t){var e,r;return(e=S-1,r=function t(e){for(;F();)switch(B){case e:return S;case 34:case 39:34!==e&&39!==e&&t(B);break;case 40:41===e&&t(e);break;case 92:F()}return S}(91===t?t+2:40===t?t+1:t),b(M,e,r)).trim()}function I(t,e,r,i,n,a,o,s,l,h,c,u){for(var d=n-1,f=0===n?a:[""],y=f.length,x=0,C=0,k=0;x<i;++x)for(var _=0,w=b(t,d+1,d=g(C=o[x])),v=t;_<y;++_)(v=(C>0?f[_]+" "+w:m(w,/&\f/g,f[_])).trim())&&(l[k++]=v);return L(t,e,r,0===n?p:s,l,h,c,u)}function D(t,e,r,i,n){return L(t,e,r,f,b(t,0,i),b(t,i+1,-1),i,n)}var R=r(31234),z=r(77083),q={id:"c4",detector:(0,h.K2)(t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),"detector"),loader:(0,h.K2)(async()=>{let{diagram:t}=await r.e(5423).then(r.bind(r,5423));return{id:"c4",diagram:t}},"loader")},N="flowchart",P=(0,h.K2)((t,e)=>e?.flowchart?.defaultRenderer!=="dagre-wrapper"&&e?.flowchart?.defaultRenderer!=="elk"&&/^\s*graph/.test(t),"detector"),K=(0,h.K2)(async()=>{let{diagram:t}=await Promise.all([r.e(82648),r.e(32699)]).then(r.bind(r,32699));return{id:N,diagram:t}},"loader"),j={id:N,detector:P,loader:K},W="flowchart-v2",U=(0,h.K2)((t,e)=>e?.flowchart?.defaultRenderer!=="dagre-d3"&&(e?.flowchart?.defaultRenderer==="elk"&&(e.layout="elk"),!!/^\s*graph/.test(t)&&e?.flowchart?.defaultRenderer==="dagre-wrapper"||/^\s*flowchart/.test(t)),"detector"),H=(0,h.K2)(async()=>{let{diagram:t}=await Promise.all([r.e(82648),r.e(32699)]).then(r.bind(r,32699));return{id:W,diagram:t}},"loader"),Y={id:W,detector:U,loader:H},G={id:"er",detector:(0,h.K2)(t=>/^\s*erDiagram/.test(t),"detector"),loader:(0,h.K2)(async()=>{let{diagram:t}=await Promise.all([r.e(34166),r.e(62628),r.e(95366)]).then(r.bind(r,95366));return{id:"er",diagram:t}},"loader")},Z="gitGraph",V=(0,h.K2)(t=>/^\s*gitGraph/.test(t),"detector"),X=(0,h.K2)(async()=>{let{diagram:t}=await Promise.all([r.e(34166),r.e(5165),r.e(89701)]).then(r.bind(r,89701));return{id:Z,diagram:t}},"loader"),Q={id:Z,detector:V,loader:X},J="gantt",tt=(0,h.K2)(t=>/^\s*gantt/.test(t),"detector"),te=(0,h.K2)(async()=>{let{diagram:t}=await r.e(99671).then(r.bind(r,99671));return{id:J,diagram:t}},"loader"),tr={id:J,detector:tt,loader:te},ti="info",tn=(0,h.K2)(t=>/^\s*info/.test(t),"detector"),ta=(0,h.K2)(async()=>{let{diagram:t}=await Promise.all([r.e(34166),r.e(5165),r.e(23952)]).then(r.bind(r,23952));return{id:ti,diagram:t}},"loader"),to={id:ti,detector:tn,loader:ta},ts={id:"pie",detector:(0,h.K2)(t=>/^\s*pie/.test(t),"detector"),loader:(0,h.K2)(async()=>{let{diagram:t}=await Promise.all([r.e(34166),r.e(5165),r.e(64039)]).then(r.bind(r,86420));return{id:"pie",diagram:t}},"loader")},tl="quadrantChart",th=(0,h.K2)(t=>/^\s*quadrantChart/.test(t),"detector"),tc=(0,h.K2)(async()=>{let{diagram:t}=await r.e(33746).then(r.bind(r,33746));return{id:tl,diagram:t}},"loader"),tu={id:tl,detector:th,loader:tc},td="xychart",tp=(0,h.K2)(t=>/^\s*xychart-beta/.test(t),"detector"),tf=(0,h.K2)(async()=>{let{diagram:t}=await r.e(3313).then(r.bind(r,3313));return{id:td,diagram:t}},"loader"),tg={id:td,detector:tp,loader:tf},ty="requirement",tm=(0,h.K2)(t=>/^\s*requirement(Diagram)?/.test(t),"detector"),tx=(0,h.K2)(async()=>{let{diagram:t}=await Promise.all([r.e(34166),r.e(62628),r.e(13682)]).then(r.bind(r,13682));return{id:ty,diagram:t}},"loader"),tb={id:ty,detector:tm,loader:tx},tC="sequence",tk=(0,h.K2)(t=>/^\s*sequenceDiagram/.test(t),"detector"),t_=(0,h.K2)(async()=>{let{diagram:t}=await r.e(18681).then(r.bind(r,18681));return{id:tC,diagram:t}},"loader"),tw={id:tC,detector:tk,loader:t_},tv="class",tT=(0,h.K2)((t,e)=>e?.class?.defaultRenderer!=="dagre-wrapper"&&/^\s*classDiagram/.test(t),"detector"),tA=(0,h.K2)(async()=>{let{diagram:t}=await Promise.all([r.e(34166),r.e(62628),r.e(30102),r.e(93951)]).then(r.bind(r,93951));return{id:tv,diagram:t}},"loader"),tS={id:tv,detector:tT,loader:tA},tB="classDiagram",tM=(0,h.K2)((t,e)=>!!/^\s*classDiagram/.test(t)&&e?.class?.defaultRenderer==="dagre-wrapper"||/^\s*classDiagram-v2/.test(t),"detector"),tL=(0,h.K2)(async()=>{let{diagram:t}=await Promise.all([r.e(34166),r.e(62628),r.e(82648),r.e(30102),r.e(96720),r.e(94228)]).then(r.bind(r,94228));return{id:tB,diagram:t}},"loader"),tF={id:tB,detector:tM,loader:tL},tE="state",t$=(0,h.K2)((t,e)=>e?.state?.defaultRenderer!=="dagre-wrapper"&&/^\s*stateDiagram/.test(t),"detector"),tO=(0,h.K2)(async()=>{let{diagram:t}=await Promise.all([r.e(34166),r.e(62628),r.e(82648),r.e(56160),r.e(6473)]).then(r.bind(r,6473));return{id:tE,diagram:t}},"loader"),tI={id:tE,detector:t$,loader:tO},tD="stateDiagram",tR=(0,h.K2)((t,e)=>!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&e?.state?.defaultRenderer==="dagre-wrapper"),"detector"),tz=(0,h.K2)(async()=>{let{diagram:t}=await Promise.all([r.e(82648),r.e(56160),r.e(2805)]).then(r.bind(r,2805));return{id:tD,diagram:t}},"loader"),tq={id:tD,detector:tR,loader:tz},tN="journey",tP=(0,h.K2)(t=>/^\s*journey/.test(t),"detector"),tK=(0,h.K2)(async()=>{let{diagram:t}=await r.e(38561).then(r.bind(r,38561));return{id:tN,diagram:t}},"loader"),tj={id:tN,detector:tP,loader:tK},tW={draw:(0,h.K2)((t,e,r)=>{h.Rm.debug("rendering svg for syntax error\n");let i=(0,l.D)(e),n=i.append("g");i.attr("viewBox","0 0 2412 512"),(0,h.a$)(i,100,512,!0),n.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),n.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),n.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),n.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),n.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),n.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),n.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),n.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw")},tU={db:{},renderer:tW,parser:{parse:(0,h.K2)(()=>{},"parse")}},tH="flowchart-elk",tY=(0,h.K2)((t,e={})=>!!(/^\s*flowchart-elk/.test(t)||/^\s*flowchart|graph/.test(t)&&e?.flowchart?.defaultRenderer==="elk")&&(e.layout="elk",!0),"detector"),tG=(0,h.K2)(async()=>{let{diagram:t}=await Promise.all([r.e(82648),r.e(32699)]).then(r.bind(r,32699));return{id:tH,diagram:t}},"loader"),tZ={id:tH,detector:tY,loader:tG},tV="timeline",tX=(0,h.K2)(t=>/^\s*timeline/.test(t),"detector"),tQ=(0,h.K2)(async()=>{let{diagram:t}=await r.e(5781).then(r.bind(r,5781));return{id:tV,diagram:t}},"loader"),tJ={id:tV,detector:tX,loader:tQ},t0="mindmap",t1=(0,h.K2)(t=>/^\s*mindmap/.test(t),"detector"),t2=(0,h.K2)(async()=>{let{diagram:t}=await Promise.all([r.e(60359),r.e(61210)]).then(r.bind(r,61210));return{id:t0,diagram:t}},"loader"),t3={id:t0,detector:t1,loader:t2},t5="sankey",t6=(0,h.K2)(t=>/^\s*sankey-beta/.test(t),"detector"),t4=(0,h.K2)(async()=>{let{diagram:t}=await r.e(46240).then(r.bind(r,46240));return{id:t5,diagram:t}},"loader"),t8={id:t5,detector:t6,loader:t4},t9="packet",t7=(0,h.K2)(t=>/^\s*packet-beta/.test(t),"detector"),et=(0,h.K2)(async()=>{let{diagram:t}=await Promise.all([r.e(34166),r.e(5165),r.e(81598)]).then(r.bind(r,81598));return{id:t9,diagram:t}},"loader"),ee={id:t9,detector:t7,loader:et},er="block",ei=(0,h.K2)(t=>/^\s*block-beta/.test(t),"detector"),en=(0,h.K2)(async()=>{let{diagram:t}=await Promise.all([r.e(34166),r.e(82648),r.e(96720),r.e(96026)]).then(r.bind(r,73645));return{id:er,diagram:t}},"loader"),ea={id:er,detector:ei,loader:en},eo="architecture",es=(0,h.K2)(t=>/^\s*architecture/.test(t),"detector"),el=(0,h.K2)(async()=>{let{diagram:t}=await Promise.all([r.e(34166),r.e(5165),r.e(60359),r.e(2172)]).then(r.bind(r,2172));return{id:eo,diagram:t}},"loader"),eh={id:eo,detector:es,loader:el},ec=!1,eu=(0,h.K2)(()=>{ec||(ec=!0,(0,h.Js)("error",tU,t=>"error"===t.toLowerCase().trim()),(0,h.Js)("---",{db:{clear:(0,h.K2)(()=>{},"clear")},styles:{},renderer:{draw:(0,h.K2)(()=>{},"draw")},parser:{parse:(0,h.K2)(()=>{throw Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:(0,h.K2)(()=>null,"init")},t=>t.toLowerCase().trimStart().startsWith("---")),(0,h.Xd)(q,tF,tS,G,tr,to,ts,tb,tw,tZ,Y,j,t3,tJ,Q,tq,tI,tj,tu,t8,ee,tg,ea,eh))},"addDiagrams"),ed=(0,h.K2)(async()=>{h.Rm.debug("Loading registered diagrams");let t=(await Promise.allSettled(Object.entries(h.mW).map(async([t,{detector:e,loader:r}])=>{if(r)try{(0,h.Gs)(t)}catch{try{let{diagram:t,id:i}=await r();(0,h.Js)(i,t,e)}catch(e){throw h.Rm.error(`Failed to load external diagram with key ${t}. Removing from detectors.`),delete h.mW[t],e}}}))).filter(t=>"rejected"===t.status);if(t.length>0){for(let e of(h.Rm.error(`Failed to load ${t.length} external diagrams`),t))h.Rm.error(e);throw Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams");function ep(t,e){t.attr("role","graphics-document document"),""!==e&&t.attr("aria-roledescription",e)}function ef(t,e,r,i){if(void 0!==t.insert){if(r){let e=`chart-desc-${i}`;t.attr("aria-describedby",e),t.insert("desc",":first-child").attr("id",e).text(r)}if(e){let r=`chart-title-${i}`;t.attr("aria-labelledby",r),t.insert("title",":first-child").attr("id",r).text(e)}}}(0,h.K2)(ep,"setA11yDiagramInfo"),(0,h.K2)(ef,"addSVGa11yTitleDescription");var eg=class t{constructor(t,e,r,i,n){this.type=t,this.text=e,this.db=r,this.parser=i,this.renderer=n}static{(0,h.K2)(this,"Diagram")}static async fromText(e,r={}){let i=(0,h.zj)(),n=(0,h.Ch)(e,i);e=(0,o.C4)(e)+"\n";try{(0,h.Gs)(n)}catch{let t=(0,h.J$)(n);if(!t)throw new h.C0(`Diagram ${n} not found.`);let{id:e,diagram:r}=await t();(0,h.Js)(e,r)}let{db:a,parser:s,renderer:l,init:c}=(0,h.Gs)(n);return s.parser&&(s.parser.yy=a),a.clear?.(),c?.(i),r.title&&a.setDiagramTitle?.(r.title),await s.parse(e),new t(n,e,a,s,l)}async render(t,e){await this.renderer.draw(this.text,t,e,this)}getParser(){return this.parser}getType(){return this.type}},ey=[],em=(0,h.K2)(()=>{ey.forEach(t=>{t()}),ey=[]},"attachFunctions"),ex=(0,h.K2)(t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function eb(t){return null==t}function eC(t){return"object"==typeof t&&null!==t}function ek(t,e){var r,i="";for(r=0;r<e;r+=1)i+=t;return i}function e_(t){return 0===t&&Number.NEGATIVE_INFINITY===1/t}(0,h.K2)(eb,"isNothing"),(0,h.K2)(eC,"isObject"),(0,h.K2)(function(t){return Array.isArray(t)?t:eb(t)?[]:[t]},"toArray"),(0,h.K2)(function(t,e){var r,i,n,a;if(e)for(r=0,i=(a=Object.keys(e)).length;r<i;r+=1)t[n=a[r]]=e[n];return t},"extend"),(0,h.K2)(ek,"repeat"),(0,h.K2)(e_,"isNegativeZero");var ew={isNothing:eb,isObject:eC,repeat:ek,isNegativeZero:e_};function ev(t,e){var r="",i=t.reason||"(unknown reason)";return t.mark?(t.mark.name&&(r+='in "'+t.mark.name+'" '),r+="("+(t.mark.line+1)+":"+(t.mark.column+1)+")",!e&&t.mark.snippet&&(r+="\n\n"+t.mark.snippet),i+" "+r):i}function eT(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=ev(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=Error().stack||""}function eA(t,e,r,i,n){var a="",o="",s=Math.floor(n/2)-1;return i-e>s&&(e=i-s+(a=" ... ").length),r-i>s&&(r=i+s-(o=" ...").length),{str:a+t.slice(e,r).replace(/\t/g,"\u2192")+o,pos:i-e+a.length}}function eS(t,e){return ew.repeat(" ",e-t.length)+t}function eB(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),"number"!=typeof e.indent&&(e.indent=1),"number"!=typeof e.linesBefore&&(e.linesBefore=3),"number"!=typeof e.linesAfter&&(e.linesAfter=2);for(var r=/\r?\n|\r|\0/g,i=[0],n=[],a=-1;o=r.exec(t.buffer);)n.push(o.index),i.push(o.index+o[0].length),t.position<=o.index&&a<0&&(a=i.length-2);a<0&&(a=i.length-1);var o,s,l,h="",c=Math.min(t.line+e.linesAfter,n.length).toString().length,u=e.maxLength-(e.indent+c+3);for(s=1;s<=e.linesBefore&&!(a-s<0);s++)l=eA(t.buffer,i[a-s],n[a-s],t.position-(i[a]-i[a-s]),u),h=ew.repeat(" ",e.indent)+eS((t.line-s+1).toString(),c)+" | "+l.str+"\n"+h;for(l=eA(t.buffer,i[a],n[a],t.position,u),h+=ew.repeat(" ",e.indent)+eS((t.line+1).toString(),c)+" | "+l.str+"\n"+ew.repeat("-",e.indent+c+3+l.pos)+"^\n",s=1;s<=e.linesAfter&&!(a+s>=n.length);s++)l=eA(t.buffer,i[a+s],n[a+s],t.position-(i[a]-i[a+s]),u),h+=ew.repeat(" ",e.indent)+eS((t.line+s+1).toString(),c)+" | "+l.str+"\n";return h.replace(/\n$/,"")}(0,h.K2)(ev,"formatError"),(0,h.K2)(eT,"YAMLException$1"),eT.prototype=Object.create(Error.prototype),eT.prototype.constructor=eT,eT.prototype.toString=(0,h.K2)(function(t){return this.name+": "+ev(this,t)},"toString"),(0,h.K2)(eA,"getLine"),(0,h.K2)(eS,"padStart"),(0,h.K2)(eB,"makeSnippet");var eM=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],eL=["scalar","sequence","mapping"];function eF(t){var e={};return null!==t&&Object.keys(t).forEach(function(r){t[r].forEach(function(t){e[String(t)]=r})}),e}function eE(t,e){if(Object.keys(e=e||{}).forEach(function(e){if(-1===eM.indexOf(e))throw new eT('Unknown option "'+e+'" is met in definition of "'+t+'" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=eF(e.styleAliases||null),-1===eL.indexOf(this.kind))throw new eT('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}function e$(t,e){var r=[];return t[e].forEach(function(t){var e=r.length;r.forEach(function(r,i){r.tag===t.tag&&r.kind===t.kind&&r.multi===t.multi&&(e=i)}),r[e]=t}),r}function eO(){var t,e,r={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function i(t){t.multi?(r.multi[t.kind].push(t),r.multi.fallback.push(t)):r[t.kind][t.tag]=r.fallback[t.tag]=t}for((0,h.K2)(i,"collectType"),t=0,e=arguments.length;t<e;t+=1)arguments[t].forEach(i);return r}function eI(t){return this.extend(t)}(0,h.K2)(eF,"compileStyleAliases"),(0,h.K2)(eE,"Type$1"),(0,h.K2)(e$,"compileList"),(0,h.K2)(eO,"compileMap"),(0,h.K2)(eI,"Schema$1"),eI.prototype.extend=(0,h.K2)(function(t){var e=[],r=[];if(t instanceof eE)r.push(t);else if(Array.isArray(t))r=r.concat(t);else if(t&&(Array.isArray(t.implicit)||Array.isArray(t.explicit)))t.implicit&&(e=e.concat(t.implicit)),t.explicit&&(r=r.concat(t.explicit));else throw new eT("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");e.forEach(function(t){if(!(t instanceof eE))throw new eT("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(t.loadKind&&"scalar"!==t.loadKind)throw new eT("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(t.multi)throw new eT("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),r.forEach(function(t){if(!(t instanceof eE))throw new eT("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var i=Object.create(eI.prototype);return i.implicit=(this.implicit||[]).concat(e),i.explicit=(this.explicit||[]).concat(r),i.compiledImplicit=e$(i,"implicit"),i.compiledExplicit=e$(i,"explicit"),i.compiledTypeMap=eO(i.compiledImplicit,i.compiledExplicit),i},"extend");var eD=new eI({explicit:[new eE("tag:yaml.org,2002:str",{kind:"scalar",construct:(0,h.K2)(function(t){return null!==t?t:""},"construct")}),new eE("tag:yaml.org,2002:seq",{kind:"sequence",construct:(0,h.K2)(function(t){return null!==t?t:[]},"construct")}),new eE("tag:yaml.org,2002:map",{kind:"mapping",construct:(0,h.K2)(function(t){return null!==t?t:{}},"construct")})]});function eR(t){if(null===t)return!0;var e=t.length;return 1===e&&"~"===t||4===e&&("null"===t||"Null"===t||"NULL"===t)}function ez(){return null}function eq(t){return null===t}(0,h.K2)(eR,"resolveYamlNull"),(0,h.K2)(ez,"constructYamlNull"),(0,h.K2)(eq,"isNull");var eN=new eE("tag:yaml.org,2002:null",{kind:"scalar",resolve:eR,construct:ez,predicate:eq,represent:{canonical:(0,h.K2)(function(){return"~"},"canonical"),lowercase:(0,h.K2)(function(){return"null"},"lowercase"),uppercase:(0,h.K2)(function(){return"NULL"},"uppercase"),camelcase:(0,h.K2)(function(){return"Null"},"camelcase"),empty:(0,h.K2)(function(){return""},"empty")},defaultStyle:"lowercase"});function eP(t){if(null===t)return!1;var e=t.length;return 4===e&&("true"===t||"True"===t||"TRUE"===t)||5===e&&("false"===t||"False"===t||"FALSE"===t)}function eK(t){return"true"===t||"True"===t||"TRUE"===t}function ej(t){return"[object Boolean]"===Object.prototype.toString.call(t)}(0,h.K2)(eP,"resolveYamlBoolean"),(0,h.K2)(eK,"constructYamlBoolean"),(0,h.K2)(ej,"isBoolean");var eW=new eE("tag:yaml.org,2002:bool",{kind:"scalar",resolve:eP,construct:eK,predicate:ej,represent:{lowercase:(0,h.K2)(function(t){return t?"true":"false"},"lowercase"),uppercase:(0,h.K2)(function(t){return t?"TRUE":"FALSE"},"uppercase"),camelcase:(0,h.K2)(function(t){return t?"True":"False"},"camelcase")},defaultStyle:"lowercase"});function eU(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function eH(t){return 48<=t&&t<=55}function eY(t){return 48<=t&&t<=57}function eG(t){if(null===t)return!1;var e,r=t.length,i=0,n=!1;if(!r)return!1;if(("-"===(e=t[i])||"+"===e)&&(e=t[++i]),"0"===e){if(i+1===r)return!0;if("b"===(e=t[++i])){for(i++;i<r;i++)if("_"!==(e=t[i])){if("0"!==e&&"1"!==e)return!1;n=!0}return n&&"_"!==e}if("x"===e){for(i++;i<r;i++)if("_"!==(e=t[i])){if(!eU(t.charCodeAt(i)))return!1;n=!0}return n&&"_"!==e}if("o"===e){for(i++;i<r;i++)if("_"!==(e=t[i])){if(!eH(t.charCodeAt(i)))return!1;n=!0}return n&&"_"!==e}}if("_"===e)return!1;for(;i<r;i++)if("_"!==(e=t[i])){if(!eY(t.charCodeAt(i)))return!1;n=!0}return!!n&&"_"!==e}function eZ(t){var e,r=t,i=1;if(-1!==r.indexOf("_")&&(r=r.replace(/_/g,"")),("-"===(e=r[0])||"+"===e)&&("-"===e&&(i=-1),e=(r=r.slice(1))[0]),"0"===r)return 0;if("0"===e){if("b"===r[1])return i*parseInt(r.slice(2),2);if("x"===r[1])return i*parseInt(r.slice(2),16);if("o"===r[1])return i*parseInt(r.slice(2),8)}return i*parseInt(r,10)}function eV(t){return"[object Number]"===Object.prototype.toString.call(t)&&t%1==0&&!ew.isNegativeZero(t)}(0,h.K2)(eU,"isHexCode"),(0,h.K2)(eH,"isOctCode"),(0,h.K2)(eY,"isDecCode"),(0,h.K2)(eG,"resolveYamlInteger"),(0,h.K2)(eZ,"constructYamlInteger"),(0,h.K2)(eV,"isInteger");var eX=new eE("tag:yaml.org,2002:int",{kind:"scalar",resolve:eG,construct:eZ,predicate:eV,represent:{binary:(0,h.K2)(function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},"binary"),octal:(0,h.K2)(function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},"octal"),decimal:(0,h.K2)(function(t){return t.toString(10)},"decimal"),hexadecimal:(0,h.K2)(function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)},"hexadecimal")},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),eQ=RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function eJ(t){return!!(null!==t&&eQ.test(t)&&"_"!==t[t.length-1])}function e0(t){var e,r;return(r="-"===(e=t.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),".inf"===e)?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===e?NaN:r*parseFloat(e,10)}(0,h.K2)(eJ,"resolveYamlFloat"),(0,h.K2)(e0,"constructYamlFloat");var e1=/^[-+]?[0-9]+e/;function e2(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(ew.isNegativeZero(t))return"-0.0";return r=t.toString(10),e1.test(r)?r.replace("e",".e"):r}function e3(t){return"[object Number]"===Object.prototype.toString.call(t)&&(t%1!=0||ew.isNegativeZero(t))}(0,h.K2)(e2,"representYamlFloat"),(0,h.K2)(e3,"isFloat");var e5=new eE("tag:yaml.org,2002:float",{kind:"scalar",resolve:eJ,construct:e0,predicate:e3,represent:e2,defaultStyle:"lowercase"}),e6=eD.extend({implicit:[eN,eW,eX,e5]}),e4=RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),e8=RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function e9(t){return null!==t&&(null!==e4.exec(t)||null!==e8.exec(t))}function e7(t){var e,r,i,n,a,o,s,l,h=0,c=null;if(null===(e=e4.exec(t))&&(e=e8.exec(t)),null===e)throw Error("Date resolve error");if(r=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(r,i,n));if(a=+e[4],o=+e[5],s=+e[6],e[7]){for(h=e[7].slice(0,3);h.length<3;)h+="0";h=+h}return e[9]&&(c=(60*+e[10]+ +(e[11]||0))*6e4,"-"===e[9]&&(c=-c)),l=new Date(Date.UTC(r,i,n,a,o,s,h)),c&&l.setTime(l.getTime()-c),l}function rt(t){return t.toISOString()}(0,h.K2)(e9,"resolveYamlTimestamp"),(0,h.K2)(e7,"constructYamlTimestamp"),(0,h.K2)(rt,"representYamlTimestamp");var re=new eE("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:e9,construct:e7,instanceOf:Date,represent:rt});function rr(t){return"<<"===t||null===t}(0,h.K2)(rr,"resolveYamlMerge");var ri=new eE("tag:yaml.org,2002:merge",{kind:"scalar",resolve:rr}),rn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";function ra(t){if(null===t)return!1;var e,r,i=0,n=t.length;for(r=0;r<n;r++)if(!((e=rn.indexOf(t.charAt(r)))>64)){if(e<0)return!1;i+=6}return i%8==0}function ro(t){var e,r,i=t.replace(/[\r\n=]/g,""),n=i.length,a=0,o=[];for(e=0;e<n;e++)e%4==0&&e&&(o.push(a>>16&255),o.push(a>>8&255),o.push(255&a)),a=a<<6|rn.indexOf(i.charAt(e));return 0==(r=n%4*6)?(o.push(a>>16&255),o.push(a>>8&255),o.push(255&a)):18===r?(o.push(a>>10&255),o.push(a>>2&255)):12===r&&o.push(a>>4&255),new Uint8Array(o)}function rs(t){var e,r,i="",n=0,a=t.length;for(e=0;e<a;e++)e%3==0&&e&&(i+=rn[n>>18&63]+rn[n>>12&63]+rn[n>>6&63]+rn[63&n]),n=(n<<8)+t[e];return 0==(r=a%3)?i+=rn[n>>18&63]+rn[n>>12&63]+rn[n>>6&63]+rn[63&n]:2===r?i+=rn[n>>10&63]+rn[n>>4&63]+rn[n<<2&63]+rn[64]:1===r&&(i+=rn[n>>2&63]+rn[n<<4&63]+rn[64]+rn[64]),i}function rl(t){return"[object Uint8Array]"===Object.prototype.toString.call(t)}(0,h.K2)(ra,"resolveYamlBinary"),(0,h.K2)(ro,"constructYamlBinary"),(0,h.K2)(rs,"representYamlBinary"),(0,h.K2)(rl,"isBinary");var rh=new eE("tag:yaml.org,2002:binary",{kind:"scalar",resolve:ra,construct:ro,predicate:rl,represent:rs}),rc=Object.prototype.hasOwnProperty,ru=Object.prototype.toString;function rd(t){if(null===t)return!0;var e,r,i,n,a,o=[];for(e=0,r=t.length;e<r;e+=1){if(i=t[e],a=!1,"[object Object]"!==ru.call(i))return!1;for(n in i)if(rc.call(i,n)){if(a)return!1;a=!0}if(!a||-1!==o.indexOf(n))return!1;o.push(n)}return!0}function rp(t){return null!==t?t:[]}(0,h.K2)(rd,"resolveYamlOmap"),(0,h.K2)(rp,"constructYamlOmap");var rf=new eE("tag:yaml.org,2002:omap",{kind:"sequence",resolve:rd,construct:rp}),rg=Object.prototype.toString;function ry(t){var e,r,i,n,a;if(null===t)return!0;for(e=0,a=Array(t.length),r=t.length;e<r;e+=1){if(i=t[e],"[object Object]"!==rg.call(i)||1!==(n=Object.keys(i)).length)return!1;a[e]=[n[0],i[n[0]]]}return!0}function rm(t){var e,r,i,n,a;if(null===t)return[];for(e=0,a=Array(t.length),r=t.length;e<r;e+=1)n=Object.keys(i=t[e]),a[e]=[n[0],i[n[0]]];return a}(0,h.K2)(ry,"resolveYamlPairs"),(0,h.K2)(rm,"constructYamlPairs");var rx=new eE("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:ry,construct:rm}),rb=Object.prototype.hasOwnProperty;function rC(t){var e;if(null===t)return!0;for(e in t)if(rb.call(t,e)&&null!==t[e])return!1;return!0}function rk(t){return null!==t?t:{}}(0,h.K2)(rC,"resolveYamlSet"),(0,h.K2)(rk,"constructYamlSet");var r_=new eE("tag:yaml.org,2002:set",{kind:"mapping",resolve:rC,construct:rk}),rw=e6.extend({implicit:[re,ri],explicit:[rh,rf,rx,r_]}),rv=Object.prototype.hasOwnProperty,rT=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,rA=/[\x85\u2028\u2029]/,rS=/[,\[\]\{\}]/,rB=/^(?:!|!!|![a-z\-]+!)$/i,rM=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function rL(t){return Object.prototype.toString.call(t)}function rF(t){return 10===t||13===t}function rE(t){return 9===t||32===t}function r$(t){return 9===t||32===t||10===t||13===t}function rO(t){return 44===t||91===t||93===t||123===t||125===t}function rI(t){var e;return 48<=t&&t<=57?t-48:97<=(e=32|t)&&e<=102?e-97+10:-1}function rD(t){return 120===t?2:117===t?4:85===t?8:0}function rR(t){return 48<=t&&t<=57?t-48:-1}function rz(t){return 48===t?"\0":97===t?"\x07":98===t?"\b":116===t?" ":9===t?" ":110===t?"\n":118===t?"\v":102===t?"\f":114===t?"\r":101===t?"\x1b":32===t?" ":34===t?'"':47===t?"/":92===t?"\\":78===t?"\x85":95===t?"\xa0":76===t?"\u2028":80===t?"\u2029":""}function rq(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}(0,h.K2)(rL,"_class"),(0,h.K2)(rF,"is_EOL"),(0,h.K2)(rE,"is_WHITE_SPACE"),(0,h.K2)(r$,"is_WS_OR_EOL"),(0,h.K2)(rO,"is_FLOW_INDICATOR"),(0,h.K2)(rI,"fromHexCode"),(0,h.K2)(rD,"escapedHexLen"),(0,h.K2)(rR,"fromDecimalCode"),(0,h.K2)(rz,"simpleEscapeSequence"),(0,h.K2)(rq,"charFromCodepoint");var rN=Array(256),rP=Array(256);for(i=0;i<256;i++)rN[i]=rz(i)?1:0,rP[i]=rz(i);function rK(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||rw,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function rj(t,e){var r={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return r.snippet=eB(r),new eT(e,r)}function rW(t,e){throw rj(t,e)}function rU(t,e){t.onWarning&&t.onWarning.call(null,rj(t,e))}(0,h.K2)(rK,"State$1"),(0,h.K2)(rj,"generateError"),(0,h.K2)(rW,"throwError"),(0,h.K2)(rU,"throwWarning");var rH={YAML:(0,h.K2)(function(t,e,r){var i,n,a;null!==t.version&&rW(t,"duplication of %YAML directive"),1!==r.length&&rW(t,"YAML directive accepts exactly one argument"),null===(i=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&rW(t,"ill-formed argument of the YAML directive"),n=parseInt(i[1],10),a=parseInt(i[2],10),1!==n&&rW(t,"unacceptable YAML version of the document"),t.version=r[0],t.checkLineBreaks=a<2,1!==a&&2!==a&&rU(t,"unsupported YAML version of the document")},"handleYamlDirective"),TAG:(0,h.K2)(function(t,e,r){var i,n;2!==r.length&&rW(t,"TAG directive accepts exactly two arguments"),i=r[0],n=r[1],rB.test(i)||rW(t,"ill-formed tag handle (first argument) of the TAG directive"),rv.call(t.tagMap,i)&&rW(t,'there is a previously declared suffix for "'+i+'" tag handle'),rM.test(n)||rW(t,"ill-formed tag prefix (second argument) of the TAG directive");try{n=decodeURIComponent(n)}catch(e){rW(t,"tag prefix is malformed: "+n)}t.tagMap[i]=n},"handleTagDirective")};function rY(t,e,r,i){var n,a,o,s;if(e<r){if(s=t.input.slice(e,r),i)for(n=0,a=s.length;n<a;n+=1)9===(o=s.charCodeAt(n))||32<=o&&o<=1114111||rW(t,"expected valid JSON character");else rT.test(s)&&rW(t,"the stream contains non-printable characters");t.result+=s}}function rG(t,e,r,i){var n,a,o,s;for(ew.isObject(r)||rW(t,"cannot merge mappings; the provided source object is unacceptable"),o=0,s=(n=Object.keys(r)).length;o<s;o+=1)a=n[o],rv.call(e,a)||(e[a]=r[a],i[a]=!0)}function rZ(t,e,r,i,n,a,o,s,l){var h,c;if(Array.isArray(n))for(h=0,c=(n=Array.prototype.slice.call(n)).length;h<c;h+=1)Array.isArray(n[h])&&rW(t,"nested arrays are not supported inside keys"),"object"==typeof n&&"[object Object]"===rL(n[h])&&(n[h]="[object Object]");if("object"==typeof n&&"[object Object]"===rL(n)&&(n="[object Object]"),n=String(n),null===e&&(e={}),"tag:yaml.org,2002:merge"===i){if(Array.isArray(a))for(h=0,c=a.length;h<c;h+=1)rG(t,e,a[h],r);else rG(t,e,a,r)}else!t.json&&!rv.call(r,n)&&rv.call(e,n)&&(t.line=o||t.line,t.lineStart=s||t.lineStart,t.position=l||t.position,rW(t,"duplicated mapping key")),"__proto__"===n?Object.defineProperty(e,n,{configurable:!0,enumerable:!0,writable:!0,value:a}):e[n]=a,delete r[n];return e}function rV(t){var e;10===(e=t.input.charCodeAt(t.position))?t.position++:13===e?(t.position++,10===t.input.charCodeAt(t.position)&&t.position++):rW(t,"a line break is expected"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function rX(t,e,r){for(var i=0,n=t.input.charCodeAt(t.position);0!==n;){for(;rE(n);)9===n&&-1===t.firstTabInLine&&(t.firstTabInLine=t.position),n=t.input.charCodeAt(++t.position);if(e&&35===n)do n=t.input.charCodeAt(++t.position);while(10!==n&&13!==n&&0!==n)if(rF(n))for(rV(t),n=t.input.charCodeAt(t.position),i++,t.lineIndent=0;32===n;)t.lineIndent++,n=t.input.charCodeAt(++t.position);else break}return -1!==r&&0!==i&&t.lineIndent<r&&rU(t,"deficient indentation"),i}function rQ(t){var e,r=t.position;return!!((45===(e=t.input.charCodeAt(r))||46===e)&&e===t.input.charCodeAt(r+1)&&e===t.input.charCodeAt(r+2)&&(r+=3,0===(e=t.input.charCodeAt(r))||r$(e)))}function rJ(t,e){1===e?t.result+=" ":e>1&&(t.result+=ew.repeat("\n",e-1))}function r0(t,e,r){var i,n,a,o,s,l,h,c,u=t.kind,d=t.result;if(r$(c=t.input.charCodeAt(t.position))||rO(c)||35===c||38===c||42===c||33===c||124===c||62===c||39===c||34===c||37===c||64===c||96===c||(63===c||45===c)&&(r$(i=t.input.charCodeAt(t.position+1))||r&&rO(i)))return!1;for(t.kind="scalar",t.result="",n=a=t.position,o=!1;0!==c;){if(58===c){if(r$(i=t.input.charCodeAt(t.position+1))||r&&rO(i))break}else if(35===c){if(r$(t.input.charCodeAt(t.position-1)))break}else if(t.position===t.lineStart&&rQ(t)||r&&rO(c))break;else if(rF(c)){if(s=t.line,l=t.lineStart,h=t.lineIndent,rX(t,!1,-1),t.lineIndent>=e){o=!0,c=t.input.charCodeAt(t.position);continue}t.position=a,t.line=s,t.lineStart=l,t.lineIndent=h;break}o&&(rY(t,n,a,!1),rJ(t,t.line-s),n=a=t.position,o=!1),rE(c)||(a=t.position+1),c=t.input.charCodeAt(++t.position)}return rY(t,n,a,!1),!!t.result||(t.kind=u,t.result=d,!1)}function r1(t,e){var r,i,n;if(39!==(r=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,i=n=t.position;0!==(r=t.input.charCodeAt(t.position));)if(39===r){if(rY(t,i,t.position,!0),39!==(r=t.input.charCodeAt(++t.position)))return!0;i=t.position,t.position++,n=t.position}else rF(r)?(rY(t,i,n,!0),rJ(t,rX(t,!1,e)),i=n=t.position):t.position===t.lineStart&&rQ(t)?rW(t,"unexpected end of the document within a single quoted scalar"):(t.position++,n=t.position);rW(t,"unexpected end of the stream within a single quoted scalar")}function r2(t,e){var r,i,n,a,o,s;if(34!==(s=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,r=i=t.position;0!==(s=t.input.charCodeAt(t.position));){if(34===s)return rY(t,r,t.position,!0),t.position++,!0;if(92===s){if(rY(t,r,t.position,!0),rF(s=t.input.charCodeAt(++t.position)))rX(t,!1,e);else if(s<256&&rN[s])t.result+=rP[s],t.position++;else if((o=rD(s))>0){for(n=o,a=0;n>0;n--)(o=rI(s=t.input.charCodeAt(++t.position)))>=0?a=(a<<4)+o:rW(t,"expected hexadecimal character");t.result+=rq(a),t.position++}else rW(t,"unknown escape sequence");r=i=t.position}else rF(s)?(rY(t,r,i,!0),rJ(t,rX(t,!1,e)),r=i=t.position):t.position===t.lineStart&&rQ(t)?rW(t,"unexpected end of the document within a double quoted scalar"):(t.position++,i=t.position)}rW(t,"unexpected end of the stream within a double quoted scalar")}function r3(t,e){var r,i,n,a,o,s,l,h,c,u,d,p,f=!0,g=t.tag,y=t.anchor,m=Object.create(null);if(91===(p=t.input.charCodeAt(t.position)))o=93,h=!1,a=[];else{if(123!==p)return!1;o=125,h=!0,a={}}for(null!==t.anchor&&(t.anchorMap[t.anchor]=a),p=t.input.charCodeAt(++t.position);0!==p;){if(rX(t,!0,e),(p=t.input.charCodeAt(t.position))===o)return t.position++,t.tag=g,t.anchor=y,t.kind=h?"mapping":"sequence",t.result=a,!0;f?44===p&&rW(t,"expected the node content, but found ','"):rW(t,"missed comma between flow collection entries"),u=c=d=null,s=l=!1,63===p&&r$(t.input.charCodeAt(t.position+1))&&(s=l=!0,t.position++,rX(t,!0,e)),r=t.line,i=t.lineStart,n=t.position,it(t,e,1,!1,!0),u=t.tag,c=t.result,rX(t,!0,e),p=t.input.charCodeAt(t.position),(l||t.line===r)&&58===p&&(s=!0,p=t.input.charCodeAt(++t.position),rX(t,!0,e),it(t,e,1,!1,!0),d=t.result),h?rZ(t,a,m,u,c,d,r,i,n):s?a.push(rZ(t,null,m,u,c,d,r,i,n)):a.push(c),rX(t,!0,e),44===(p=t.input.charCodeAt(t.position))?(f=!0,p=t.input.charCodeAt(++t.position)):f=!1}rW(t,"unexpected end of the stream within a flow collection")}function r5(t,e){var r,i,n,a,o=1,s=!1,l=!1,h=e,c=0,u=!1;if(124===(a=t.input.charCodeAt(t.position)))i=!1;else{if(62!==a)return!1;i=!0}for(t.kind="scalar",t.result="";0!==a;)if(43===(a=t.input.charCodeAt(++t.position))||45===a)1===o?o=43===a?3:2:rW(t,"repeat of a chomping mode identifier");else if((n=rR(a))>=0)0===n?rW(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?rW(t,"repeat of an indentation width identifier"):(h=e+n-1,l=!0);else break;if(rE(a)){do a=t.input.charCodeAt(++t.position);while(rE(a))if(35===a)do a=t.input.charCodeAt(++t.position);while(!rF(a)&&0!==a)}for(;0!==a;){for(rV(t),t.lineIndent=0,a=t.input.charCodeAt(t.position);(!l||t.lineIndent<h)&&32===a;)t.lineIndent++,a=t.input.charCodeAt(++t.position);if(!l&&t.lineIndent>h&&(h=t.lineIndent),rF(a)){c++;continue}if(t.lineIndent<h){3===o?t.result+=ew.repeat("\n",s?1+c:c):1===o&&s&&(t.result+="\n");break}for(i?rE(a)?(u=!0,t.result+=ew.repeat("\n",s?1+c:c)):u?(u=!1,t.result+=ew.repeat("\n",c+1)):0===c?s&&(t.result+=" "):t.result+=ew.repeat("\n",c):t.result+=ew.repeat("\n",s?1+c:c),s=!0,l=!0,c=0,r=t.position;!rF(a)&&0!==a;)a=t.input.charCodeAt(++t.position);rY(t,r,t.position,!1)}return!0}function r6(t,e){var r,i,n=t.tag,a=t.anchor,o=[],s=!1;if(-1!==t.firstTabInLine)return!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=o),i=t.input.charCodeAt(t.position);0!==i&&(-1!==t.firstTabInLine&&(t.position=t.firstTabInLine,rW(t,"tab characters must not be used in indentation")),45===i&&r$(t.input.charCodeAt(t.position+1)));){if(s=!0,t.position++,rX(t,!0,-1)&&t.lineIndent<=e){o.push(null),i=t.input.charCodeAt(t.position);continue}if(r=t.line,it(t,e,3,!1,!0),o.push(t.result),rX(t,!0,-1),i=t.input.charCodeAt(t.position),(t.line===r||t.lineIndent>e)&&0!==i)rW(t,"bad indentation of a sequence entry");else if(t.lineIndent<e)break}return!!s&&(t.tag=n,t.anchor=a,t.kind="sequence",t.result=o,!0)}function r4(t,e,r){var i,n,a,o,s,l,h,c=t.tag,u=t.anchor,d={},p=Object.create(null),f=null,g=null,y=null,m=!1,x=!1;if(-1!==t.firstTabInLine)return!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=d),h=t.input.charCodeAt(t.position);0!==h;){if(m||-1===t.firstTabInLine||(t.position=t.firstTabInLine,rW(t,"tab characters must not be used in indentation")),i=t.input.charCodeAt(t.position+1),a=t.line,(63===h||58===h)&&r$(i))63===h?(m&&(rZ(t,d,p,f,g,null,o,s,l),f=g=y=null),x=!0,m=!0,n=!0):m?(m=!1,n=!0):rW(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,h=i;else{if(o=t.line,s=t.lineStart,l=t.position,!it(t,r,2,!1,!0))break;if(t.line===a){for(h=t.input.charCodeAt(t.position);rE(h);)h=t.input.charCodeAt(++t.position);if(58===h)r$(h=t.input.charCodeAt(++t.position))||rW(t,"a whitespace character is expected after the key-value separator within a block mapping"),m&&(rZ(t,d,p,f,g,null,o,s,l),f=g=y=null),x=!0,m=!1,n=!1,f=t.tag,g=t.result;else{if(!x)return t.tag=c,t.anchor=u,!0;rW(t,"can not read an implicit mapping pair; a colon is missed")}}else{if(!x)return t.tag=c,t.anchor=u,!0;rW(t,"can not read a block mapping entry; a multiline key may not be an implicit key")}}if((t.line===a||t.lineIndent>e)&&(m&&(o=t.line,s=t.lineStart,l=t.position),it(t,e,4,!0,n)&&(m?g=t.result:y=t.result),m||(rZ(t,d,p,f,g,y,o,s,l),f=g=y=null),rX(t,!0,-1),h=t.input.charCodeAt(t.position)),(t.line===a||t.lineIndent>e)&&0!==h)rW(t,"bad indentation of a mapping entry");else if(t.lineIndent<e)break}return m&&rZ(t,d,p,f,g,null,o,s,l),x&&(t.tag=c,t.anchor=u,t.kind="mapping",t.result=d),x}function r8(t){var e,r,i,n,a=!1,o=!1;if(33!==(n=t.input.charCodeAt(t.position)))return!1;if(null!==t.tag&&rW(t,"duplication of a tag property"),60===(n=t.input.charCodeAt(++t.position))?(a=!0,n=t.input.charCodeAt(++t.position)):33===n?(o=!0,r="!!",n=t.input.charCodeAt(++t.position)):r="!",e=t.position,a){do n=t.input.charCodeAt(++t.position);while(0!==n&&62!==n)t.position<t.length?(i=t.input.slice(e,t.position),n=t.input.charCodeAt(++t.position)):rW(t,"unexpected end of the stream within a verbatim tag")}else{for(;0!==n&&!r$(n);)33===n&&(o?rW(t,"tag suffix cannot contain exclamation marks"):(r=t.input.slice(e-1,t.position+1),rB.test(r)||rW(t,"named tag handle cannot contain such characters"),o=!0,e=t.position+1)),n=t.input.charCodeAt(++t.position);i=t.input.slice(e,t.position),rS.test(i)&&rW(t,"tag suffix cannot contain flow indicator characters")}i&&!rM.test(i)&&rW(t,"tag name cannot contain such characters: "+i);try{i=decodeURIComponent(i)}catch(e){rW(t,"tag name is malformed: "+i)}return a?t.tag=i:rv.call(t.tagMap,r)?t.tag=t.tagMap[r]+i:"!"===r?t.tag="!"+i:"!!"===r?t.tag="tag:yaml.org,2002:"+i:rW(t,'undeclared tag handle "'+r+'"'),!0}function r9(t){var e,r;if(38!==(r=t.input.charCodeAt(t.position)))return!1;for(null!==t.anchor&&rW(t,"duplication of an anchor property"),r=t.input.charCodeAt(++t.position),e=t.position;0!==r&&!r$(r)&&!rO(r);)r=t.input.charCodeAt(++t.position);return t.position===e&&rW(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(e,t.position),!0}function r7(t){var e,r,i;if(42!==(i=t.input.charCodeAt(t.position)))return!1;for(i=t.input.charCodeAt(++t.position),e=t.position;0!==i&&!r$(i)&&!rO(i);)i=t.input.charCodeAt(++t.position);return t.position===e&&rW(t,"name of an alias node must contain at least one character"),r=t.input.slice(e,t.position),rv.call(t.anchorMap,r)||rW(t,'unidentified alias "'+r+'"'),t.result=t.anchorMap[r],rX(t,!0,-1),!0}function it(t,e,r,i,n){var a,o,s,l,h,c,u,d,p,f=1,g=!1,y=!1;if(null!==t.listener&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,a=o=s=4===r||3===r,i&&rX(t,!0,-1)&&(g=!0,t.lineIndent>e?f=1:t.lineIndent===e?f=0:t.lineIndent<e&&(f=-1)),1===f)for(;r8(t)||r9(t);)rX(t,!0,-1)?(g=!0,s=a,t.lineIndent>e?f=1:t.lineIndent===e?f=0:t.lineIndent<e&&(f=-1)):s=!1;if(s&&(s=g||n),(1===f||4===r)&&(d=1===r||2===r?e:e+1,p=t.position-t.lineStart,1===f?s&&(r6(t,p)||r4(t,p,d))||r3(t,d)?y=!0:(o&&r5(t,d)||r1(t,d)||r2(t,d)?y=!0:r7(t)?(y=!0,(null!==t.tag||null!==t.anchor)&&rW(t,"alias node should not have any properties")):r0(t,d,1===r)&&(y=!0,null===t.tag&&(t.tag="?")),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):0===f&&(y=s&&r6(t,p))),null===t.tag)null!==t.anchor&&(t.anchorMap[t.anchor]=t.result);else if("?"===t.tag){for(null!==t.result&&"scalar"!==t.kind&&rW(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),l=0,h=t.implicitTypes.length;l<h;l+=1)if((u=t.implicitTypes[l]).resolve(t.result)){t.result=u.construct(t.result),t.tag=u.tag,null!==t.anchor&&(t.anchorMap[t.anchor]=t.result);break}}else if("!"!==t.tag){if(rv.call(t.typeMap[t.kind||"fallback"],t.tag))u=t.typeMap[t.kind||"fallback"][t.tag];else for(l=0,u=null,h=(c=t.typeMap.multi[t.kind||"fallback"]).length;l<h;l+=1)if(t.tag.slice(0,c[l].tag.length)===c[l].tag){u=c[l];break}u||rW(t,"unknown tag !<"+t.tag+">"),null!==t.result&&u.kind!==t.kind&&rW(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+u.kind+'", not "'+t.kind+'"'),u.resolve(t.result,t.tag)?(t.result=u.construct(t.result,t.tag),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):rW(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return null!==t.listener&&t.listener("close",t),null!==t.tag||null!==t.anchor||y}function ie(t){var e,r,i,n,a=t.position,o=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);0!==(n=t.input.charCodeAt(t.position))&&(rX(t,!0,-1),n=t.input.charCodeAt(t.position),!(t.lineIndent>0)&&37===n);){for(o=!0,n=t.input.charCodeAt(++t.position),e=t.position;0!==n&&!r$(n);)n=t.input.charCodeAt(++t.position);for(r=t.input.slice(e,t.position),i=[],r.length<1&&rW(t,"directive name must not be less than one character in length");0!==n;){for(;rE(n);)n=t.input.charCodeAt(++t.position);if(35===n){do n=t.input.charCodeAt(++t.position);while(0!==n&&!rF(n))break}if(rF(n))break;for(e=t.position;0!==n&&!r$(n);)n=t.input.charCodeAt(++t.position);i.push(t.input.slice(e,t.position))}0!==n&&rV(t),rv.call(rH,r)?rH[r](t,r,i):rU(t,'unknown document directive "'+r+'"')}if(rX(t,!0,-1),0===t.lineIndent&&45===t.input.charCodeAt(t.position)&&45===t.input.charCodeAt(t.position+1)&&45===t.input.charCodeAt(t.position+2)?(t.position+=3,rX(t,!0,-1)):o&&rW(t,"directives end mark is expected"),it(t,t.lineIndent-1,4,!1,!0),rX(t,!0,-1),t.checkLineBreaks&&rA.test(t.input.slice(a,t.position))&&rU(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&rQ(t)){46===t.input.charCodeAt(t.position)&&(t.position+=3,rX(t,!0,-1));return}t.position<t.length-1&&rW(t,"end of the stream or a document separator is expected")}function ir(t,e){t=String(t),e=e||{},0!==t.length&&(10!==t.charCodeAt(t.length-1)&&13!==t.charCodeAt(t.length-1)&&(t+="\n"),65279===t.charCodeAt(0)&&(t=t.slice(1)));var r=new rK(t,e),i=t.indexOf("\0");for(-1!==i&&(r.position=i,rW(r,"null byte is not allowed in input")),r.input+="\0";32===r.input.charCodeAt(r.position);)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)ie(r);return r.documents}function ii(t,e){var r=ir(t,e);if(0!==r.length){if(1===r.length)return r[0];throw new eT("expected a single document in the stream, but found more")}}(0,h.K2)(rY,"captureSegment"),(0,h.K2)(rG,"mergeMappings"),(0,h.K2)(rZ,"storeMappingPair"),(0,h.K2)(rV,"readLineBreak"),(0,h.K2)(rX,"skipSeparationSpace"),(0,h.K2)(rQ,"testDocumentSeparator"),(0,h.K2)(rJ,"writeFoldedLines"),(0,h.K2)(r0,"readPlainScalar"),(0,h.K2)(r1,"readSingleQuotedScalar"),(0,h.K2)(r2,"readDoubleQuotedScalar"),(0,h.K2)(r3,"readFlowCollection"),(0,h.K2)(r5,"readBlockScalar"),(0,h.K2)(r6,"readBlockSequence"),(0,h.K2)(r4,"readBlockMapping"),(0,h.K2)(r8,"readTagProperty"),(0,h.K2)(r9,"readAnchorProperty"),(0,h.K2)(r7,"readAlias"),(0,h.K2)(it,"composeNode"),(0,h.K2)(ie,"readDocument"),(0,h.K2)(ir,"loadDocuments"),(0,h.K2)(function(t,e,r){null!==e&&"object"==typeof e&&void 0===r&&(r=e,e=null);var i=ir(t,r);if("function"!=typeof e)return i;for(var n=0,a=i.length;n<a;n+=1)e(i[n])},"loadAll$1"),(0,h.K2)(ii,"load$1");var ia=Object.prototype.toString,io=Object.prototype.hasOwnProperty,is={};is[0]="\\0",is[7]="\\a",is[8]="\\b",is[9]="\\t",is[10]="\\n",is[11]="\\v",is[12]="\\f",is[13]="\\r",is[27]="\\e",is[34]='\\"',is[92]="\\\\",is[133]="\\N",is[160]="\\_",is[8232]="\\L",is[8233]="\\P";var il=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],ih=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function ic(t,e){var r,i,n,a,o,s,l;if(null===e)return{};for(n=0,r={},a=(i=Object.keys(e)).length;n<a;n+=1)s=String(e[o=i[n]]),"!!"===o.slice(0,2)&&(o="tag:yaml.org,2002:"+o.slice(2)),(l=t.compiledTypeMap.fallback[o])&&io.call(l.styleAliases,s)&&(s=l.styleAliases[s]),r[o]=s;return r}function iu(t){var e,r,i;if(e=t.toString(16).toUpperCase(),t<=255)r="x",i=2;else if(t<=65535)r="u",i=4;else if(t<=4294967295)r="U",i=8;else throw new eT("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+r+ew.repeat("0",i-e.length)+e}function id(t){this.schema=t.schema||rw,this.indent=Math.max(1,t.indent||2),this.noArrayIndent=t.noArrayIndent||!1,this.skipInvalid=t.skipInvalid||!1,this.flowLevel=ew.isNothing(t.flowLevel)?-1:t.flowLevel,this.styleMap=ic(this.schema,t.styles||null),this.sortKeys=t.sortKeys||!1,this.lineWidth=t.lineWidth||80,this.noRefs=t.noRefs||!1,this.noCompatMode=t.noCompatMode||!1,this.condenseFlow=t.condenseFlow||!1,this.quotingType='"'===t.quotingType?2:1,this.forceQuotes=t.forceQuotes||!1,this.replacer="function"==typeof t.replacer?t.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function ip(t,e){for(var r,i=ew.repeat(" ",e),n=0,a=-1,o="",s=t.length;n<s;)-1===(a=t.indexOf("\n",n))?(r=t.slice(n),n=s):(r=t.slice(n,a+1),n=a+1),r.length&&"\n"!==r&&(o+=i),o+=r;return o}function ig(t,e){return"\n"+ew.repeat(" ",t.indent*e)}function iy(t,e){var r,i;for(r=0,i=t.implicitTypes.length;r<i;r+=1)if(t.implicitTypes[r].resolve(e))return!0;return!1}function im(t){return 32===t||9===t}function ix(t){return 32<=t&&t<=126||161<=t&&t<=55295&&8232!==t&&8233!==t||57344<=t&&t<=65533&&65279!==t||65536<=t&&t<=1114111}function ib(t){return ix(t)&&65279!==t&&13!==t&&10!==t}function iC(t,e,r){var i=ib(t),n=i&&!im(t);return(r?i:i&&44!==t&&91!==t&&93!==t&&123!==t&&125!==t)&&35!==t&&!(58===e&&!n)||ib(e)&&!im(e)&&35===t||58===e&&n}function ik(t){return ix(t)&&65279!==t&&!im(t)&&45!==t&&63!==t&&58!==t&&44!==t&&91!==t&&93!==t&&123!==t&&125!==t&&35!==t&&38!==t&&42!==t&&33!==t&&124!==t&&61!==t&&62!==t&&39!==t&&34!==t&&37!==t&&64!==t&&96!==t}function i_(t){return!im(t)&&58!==t}function iw(t,e){var r,i=t.charCodeAt(e);return i>=55296&&i<=56319&&e+1<t.length&&(r=t.charCodeAt(e+1))>=56320&&r<=57343?(i-55296)*1024+r-56320+65536:i}function iv(t){return/^\n* /.test(t)}function iT(t,e,r,i,n,a,o,s){var l,h=0,c=null,u=!1,d=!1,p=-1!==i,f=-1,g=ik(iw(t,0))&&i_(iw(t,t.length-1));if(e||o)for(l=0;l<t.length;h>=65536?l+=2:l++){if(!ix(h=iw(t,l)))return 5;g=g&&iC(h,c,s),c=h}else{for(l=0;l<t.length;h>=65536?l+=2:l++){if(10===(h=iw(t,l)))u=!0,p&&(d=d||l-f-1>i&&" "!==t[f+1],f=l);else if(!ix(h))return 5;g=g&&iC(h,c,s),c=h}d=d||p&&l-f-1>i&&" "!==t[f+1]}return u||d?r>9&&iv(t)?5:o?2===a?5:2:d?4:3:!g||o||n(t)?2===a?5:2:1}function iA(t,e,r,i,n){t.dump=function(){if(0===e.length)return 2===t.quotingType?'""':"''";if(!t.noCompatMode&&(-1!==il.indexOf(e)||ih.test(e)))return 2===t.quotingType?'"'+e+'"':"'"+e+"'";var a=t.indent*Math.max(1,r),o=-1===t.lineWidth?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),s=i||t.flowLevel>-1&&r>=t.flowLevel;function l(e){return iy(t,e)}switch((0,h.K2)(l,"testAmbiguity"),iT(e,s,t.indent,o,l,t.quotingType,t.forceQuotes&&!i,n)){case 1:return e;case 2:return"'"+e.replace(/'/g,"''")+"'";case 3:return"|"+iS(e,t.indent)+iB(ip(e,a));case 4:return">"+iS(e,t.indent)+iB(ip(iM(e,o),a));case 5:return'"'+iF(e)+'"';default:throw new eT("impossible error: invalid scalar style")}}()}function iS(t,e){var r=iv(t)?String(e):"",i="\n"===t[t.length-1];return r+(i&&("\n"===t[t.length-2]||"\n"===t)?"+":i?"":"-")+"\n"}function iB(t){return"\n"===t[t.length-1]?t.slice(0,-1):t}function iM(t,e){for(var r,i,n,a=/(\n+)([^\n]*)/g,o=(r=-1!==(r=t.indexOf("\n"))?r:t.length,a.lastIndex=r,iL(t.slice(0,r),e)),s="\n"===t[0]||" "===t[0];n=a.exec(t);){var l=n[1],h=n[2];i=" "===h[0],o+=l+(s||i||""===h?"":"\n")+iL(h,e),s=i}return o}function iL(t,e){if(""===t||" "===t[0])return t;for(var r,i,n=/ [^ ]/g,a=0,o=0,s=0,l="";r=n.exec(t);)(s=r.index)-a>e&&(i=o>a?o:s,l+="\n"+t.slice(a,i),a=i+1),o=s;return l+="\n",t.length-a>e&&o>a?l+=t.slice(a,o)+"\n"+t.slice(o+1):l+=t.slice(a),l.slice(1)}function iF(t){for(var e,r="",i=0,n=0;n<t.length;i>=65536?n+=2:n++)!(e=is[i=iw(t,n)])&&ix(i)?(r+=t[n],i>=65536&&(r+=t[n+1])):r+=e||iu(i);return r}function iE(t,e,r){var i,n,a,o="",s=t.tag;for(i=0,n=r.length;i<n;i+=1)a=r[i],t.replacer&&(a=t.replacer.call(r,String(i),a)),(iR(t,e,a,!1,!1)||void 0===a&&iR(t,e,null,!1,!1))&&(""!==o&&(o+=","+(t.condenseFlow?"":" ")),o+=t.dump);t.tag=s,t.dump="["+o+"]"}function i$(t,e,r,i){var n,a,o,s="",l=t.tag;for(n=0,a=r.length;n<a;n+=1)o=r[n],t.replacer&&(o=t.replacer.call(r,String(n),o)),(iR(t,e+1,o,!0,!0,!1,!0)||void 0===o&&iR(t,e+1,null,!0,!0,!1,!0))&&(i&&""===s||(s+=ig(t,e)),t.dump&&10===t.dump.charCodeAt(0)?s+="-":s+="- ",s+=t.dump);t.tag=l,t.dump=s||"[]"}function iO(t,e,r){var i,n,a,o,s,l="",h=t.tag,c=Object.keys(r);for(i=0,n=c.length;i<n;i+=1)s="",""!==l&&(s+=", "),t.condenseFlow&&(s+='"'),o=r[a=c[i]],t.replacer&&(o=t.replacer.call(r,a,o)),iR(t,e,a,!1,!1)&&(t.dump.length>1024&&(s+="? "),s+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),iR(t,e,o,!1,!1)&&(s+=t.dump,l+=s));t.tag=h,t.dump="{"+l+"}"}function iI(t,e,r,i){var n,a,o,s,l,h,c="",u=t.tag,d=Object.keys(r);if(!0===t.sortKeys)d.sort();else if("function"==typeof t.sortKeys)d.sort(t.sortKeys);else if(t.sortKeys)throw new eT("sortKeys must be a boolean or a function");for(n=0,a=d.length;n<a;n+=1)h="",i&&""===c||(h+=ig(t,e)),s=r[o=d[n]],t.replacer&&(s=t.replacer.call(r,o,s)),iR(t,e+1,o,!0,!0,!0)&&((l=null!==t.tag&&"?"!==t.tag||t.dump&&t.dump.length>1024)&&(t.dump&&10===t.dump.charCodeAt(0)?h+="?":h+="? "),h+=t.dump,l&&(h+=ig(t,e)),iR(t,e+1,s,!0,l)&&(t.dump&&10===t.dump.charCodeAt(0)?h+=":":h+=": ",h+=t.dump,c+=h));t.tag=u,t.dump=c||"{}"}function iD(t,e,r){var i,n,a,o,s,l;for(a=0,o=(n=r?t.explicitTypes:t.implicitTypes).length;a<o;a+=1)if(((s=n[a]).instanceOf||s.predicate)&&(!s.instanceOf||"object"==typeof e&&e instanceof s.instanceOf)&&(!s.predicate||s.predicate(e))){if(r?s.multi&&s.representName?t.tag=s.representName(e):t.tag=s.tag:t.tag="?",s.represent){if(l=t.styleMap[s.tag]||s.defaultStyle,"[object Function]"===ia.call(s.represent))i=s.represent(e,l);else if(io.call(s.represent,l))i=s.represent[l](e,l);else throw new eT("!<"+s.tag+'> tag resolver accepts not "'+l+'" style');t.dump=i}return!0}return!1}function iR(t,e,r,i,n,a,o){t.tag=null,t.dump=r,iD(t,r,!1)||iD(t,r,!0);var s=ia.call(t.dump),l=i;i&&(i=t.flowLevel<0||t.flowLevel>e);var h,c,u,d="[object Object]"===s||"[object Array]"===s;if(d&&(u=-1!==(c=t.duplicates.indexOf(r))),(null!==t.tag&&"?"!==t.tag||u||2!==t.indent&&e>0)&&(n=!1),u&&t.usedDuplicates[c])t.dump="*ref_"+c;else{if(d&&u&&!t.usedDuplicates[c]&&(t.usedDuplicates[c]=!0),"[object Object]"===s)i&&0!==Object.keys(t.dump).length?(iI(t,e,t.dump,n),u&&(t.dump="&ref_"+c+t.dump)):(iO(t,e,t.dump),u&&(t.dump="&ref_"+c+" "+t.dump));else if("[object Array]"===s)i&&0!==t.dump.length?(t.noArrayIndent&&!o&&e>0?i$(t,e-1,t.dump,n):i$(t,e,t.dump,n),u&&(t.dump="&ref_"+c+t.dump)):(iE(t,e,t.dump),u&&(t.dump="&ref_"+c+" "+t.dump));else if("[object String]"===s)"?"!==t.tag&&iA(t,t.dump,e,a,l);else{if("[object Undefined]"===s||t.skipInvalid)return!1;throw new eT("unacceptable kind of an object to dump "+s)}null!==t.tag&&"?"!==t.tag&&(h=encodeURI("!"===t.tag[0]?t.tag.slice(1):t.tag).replace(/!/g,"%21"),h="!"===t.tag[0]?"!"+h:"tag:yaml.org,2002:"===h.slice(0,18)?"!!"+h.slice(18):"!<"+h+">",t.dump=h+" "+t.dump)}return!0}function iz(t,e){var r,i,n=[],a=[];for(iq(t,n,a),r=0,i=a.length;r<i;r+=1)e.duplicates.push(n[a[r]]);e.usedDuplicates=Array(i)}function iq(t,e,r){var i,n,a;if(null!==t&&"object"==typeof t){if(-1!==(n=e.indexOf(t)))-1===r.indexOf(n)&&r.push(n);else if(e.push(t),Array.isArray(t))for(n=0,a=t.length;n<a;n+=1)iq(t[n],e,r);else for(n=0,a=(i=Object.keys(t)).length;n<a;n+=1)iq(t[i[n]],e,r)}}function iN(t,e){return function(){throw Error("Function yaml."+t+" is removed in js-yaml 4. Use yaml."+e+" instead, which is now safe by default.")}}function iP(t){let e=t.match(h.EJ);if(!e)return{text:t,metadata:{}};let r=ii(e[1],{schema:e6})??{};r="object"!=typeof r||Array.isArray(r)?{}:r;let i={};return r.displayMode&&(i.displayMode=r.displayMode.toString()),r.title&&(i.title=r.title.toString()),r.config&&(i.config=r.config),{text:t.slice(e[0].length),metadata:i}}(0,h.K2)(ic,"compileStyleMap"),(0,h.K2)(iu,"encodeHex"),(0,h.K2)(id,"State"),(0,h.K2)(ip,"indentString"),(0,h.K2)(ig,"generateNextLine"),(0,h.K2)(iy,"testImplicitResolving"),(0,h.K2)(im,"isWhitespace"),(0,h.K2)(ix,"isPrintable"),(0,h.K2)(ib,"isNsCharOrWhitespace"),(0,h.K2)(iC,"isPlainSafe"),(0,h.K2)(ik,"isPlainSafeFirst"),(0,h.K2)(i_,"isPlainSafeLast"),(0,h.K2)(iw,"codePointAt"),(0,h.K2)(iv,"needIndentIndicator"),(0,h.K2)(iT,"chooseScalarStyle"),(0,h.K2)(iA,"writeScalar"),(0,h.K2)(iS,"blockHeader"),(0,h.K2)(iB,"dropEndingNewline"),(0,h.K2)(iM,"foldString"),(0,h.K2)(iL,"foldLine"),(0,h.K2)(iF,"escapeString"),(0,h.K2)(iE,"writeFlowSequence"),(0,h.K2)(i$,"writeBlockSequence"),(0,h.K2)(iO,"writeFlowMapping"),(0,h.K2)(iI,"writeBlockMapping"),(0,h.K2)(iD,"detectType"),(0,h.K2)(iR,"writeNode"),(0,h.K2)(iz,"getDuplicateReferences"),(0,h.K2)(iq,"inspectNode"),(0,h.K2)(function(t,e){var r=new id(e=e||{});r.noRefs||iz(t,r);var i=t;return(r.replacer&&(i=r.replacer.call({"":i},"",i)),iR(r,0,i,!0,!0))?r.dump+"\n":""},"dump$1"),(0,h.K2)(iN,"renamed"),iN("safeLoad","load"),iN("safeLoadAll","loadAll"),iN("safeDump","dump"),(0,h.K2)(iP,"extractFrontMatter");var iK=(0,h.K2)(t=>t.replace(/\r\n?/g,"\n").replace(/<(\w+)([^>]*)>/g,(t,e,r)=>"<"+e+r.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),ij=(0,h.K2)(t=>{let{text:e,metadata:r}=iP(t),{displayMode:i,title:n,config:a={}}=r;return i&&(a.gantt||(a.gantt={}),a.gantt.displayMode=i),{title:n,config:a,text:e}},"processFrontmatter"),iW=(0,h.K2)(t=>{let e=o._K.detectInit(t)??{},r=o._K.detectDirective(t,"wrap");return Array.isArray(r)?e.wrap=r.some(({type:t})=>"wrap"===t):r?.type==="wrap"&&(e.wrap=!0),{text:(0,o.vU)(t),directive:e}},"processDirectives");function iU(t){let e=ij(iK(t)),r=iW(e.text),i=(0,o.$t)(e.config,r.directive);return{code:t=ex(r.text),title:e.title,config:i}}function iH(t){return btoa(Array.from(new TextEncoder().encode(t),t=>String.fromCodePoint(t)).join(""))}(0,h.K2)(iU,"preprocessDiagram"),(0,h.K2)(iH,"toBase64");var iY=["foreignobject"],iG=["dominant-baseline"];function iZ(t){let e=iU(t);return(0,h.cL)(),(0,h.xA)(e.config??{}),e}async function iV(t,e){eu();try{let{code:e,config:r}=iZ(t);return{diagramType:(await i8(e)).type,config:r}}catch(t){if(e?.suppressErrors)return!1;throw t}}(0,h.K2)(iZ,"processAndSetConfigs"),(0,h.K2)(iV,"parse");var iX=(0,h.K2)((t,e,r=[])=>` +.${t} ${e} { ${r.join(" !important; ")} !important; }`,"cssImportantStyles"),iQ=(0,h.K2)((t,e=new Map)=>{let r="";if(void 0!==t.themeCSS&&(r+=` +${t.themeCSS}`),void 0!==t.fontFamily&&(r+=` +:root { --mermaid-font-family: ${t.fontFamily}}`),void 0!==t.altFontFamily&&(r+=` +:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),e instanceof Map){let i=t.htmlLabels??t.flowchart?.htmlLabels?["> *","span"]:["rect","polygon","ellipse","circle","path"];e.forEach(t=>{(0,z.A)(t.styles)||i.forEach(e=>{r+=iX(t.id,e,t.styles)}),(0,z.A)(t.textStyles)||(r+=iX(t.id,"tspan",(t?.textStyles||[]).map(t=>t.replace("color","fill"))))})}return r},"createCssStyles"),iJ=(0,h.K2)((t,e,r,i)=>{var n,a,o;let s=iQ(t,r),l=(0,h.tM)(e,s,t.themeVariables);return _((o=function t(e,r,i,n,a,o,s,l,h){for(var c,u,p,f=0,_=0,w=s,A=0,R=0,z=0,q=1,N=1,P=1,K=0,j="",W=a,U=o,H=n,Y=j;N;)switch(z=K,K=F()){case 40:if(108!=z&&58==x(Y,w-1)){-1!=(u=Y+=m(O(K),"&","&\f"),p=g(f?l[f-1]:0),u.indexOf("&\f",p))&&(P=-1);break}case 34:case 39:case 91:Y+=O(K);break;case 9:case 10:case 13:case 32:Y+=function(t){for(;B=E();)if(B<33)F();else break;return $(t)>2||$(B)>3?"":" "}(z);break;case 92:Y+=function(t,e){for(var r;--e&&F()&&!(B<48)&&!(B>102)&&(!(B>57)||!(B<65))&&(!(B>70)||!(B<97)););return r=S+(e<6&&32==E()&&32==F()),b(M,t,r)}(S-1,7);continue;case 47:switch(E()){case 42:case 47:k(L(c=function(t,e){for(;F();)if(t+B===57)break;else if(t+B===84&&47===E())break;return"/*"+b(M,e,S-1)+"*"+y(47===t?t:F())}(F(),S),r,i,d,y(B),b(c,2,-2),0,h),h),(5==$(z||1)||5==$(E()||1))&&C(Y)&&" "!==b(Y,-1,void 0)&&(Y+=" ");break;default:Y+="/"}break;case 123*q:l[f++]=C(Y)*P;case 125*q:case 59:case 0:switch(K){case 0:case 125:N=0;case 59+_:-1==P&&(Y=m(Y,/\f/g,"")),R>0&&(C(Y)-w||0===q&&47===z)&&k(R>32?D(Y+";",n,i,w-1,h):D(m(Y," ","")+";",n,i,w-2,h),h);break;case 59:Y+=";";default:if(k(H=I(Y,r,i,f,_,a,l,j,W=[],U=[],w,o),o),123===K){if(0===_)t(Y,r,H,H,W,o,w,l,U);else switch(99===A&&110===x(Y,3)?100:A){case 100:case 108:case 109:case 115:t(e,H,H,n&&k(I(e,H,H,0,0,a,l,j,a,W=[],w,U),U),a,U,w,l,n?W:U);break;default:t(Y,H,H,H,[""],U,0,l,U)}}}f=_=R=0,q=P=1,j=Y="",w=s;break;case 58:w=1+C(Y),R=z;default:if(q<1){if(123==K)--q;else if(125==K&&0==q++&&125==(B=S>0?x(M,--S):0,T--,10===B&&(T=1,v--),B))continue}switch(Y+=y(K),K*q){case 38:P=_>0?1:(Y+="\f",-1);break;case 44:l[f++]=(C(Y)-1)*P,P=1;break;case 64:45===E()&&(Y+=O(F())),A=E(),_=w=C(j=Y+=function(t){for(;!$(E());)F();return b(M,t,S)}(S)),K++;break;case 45:45===z&&2==C(Y)&&(q=0)}}return o}("",null,null,null,[""],(a=n=`${i}{${l}}`,v=T=1,A=C(M=a),S=0,n=[]),0,[0],n),M="",o),w)},"createUserStyles"),i0=(0,h.K2)((t="",e,r)=>{let i=t;return r||e||(i=i.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),i=(i=(0,o.Sm)(i)).replace(/<br>/g,"<br/>")},"cleanUpSvgCode"),i1=(0,h.K2)((t="",e)=>{let r=e?.viewBox?.baseVal?.height?e.viewBox.baseVal.height+"px":"100%",i=iH(`<body style="margin:0">${t}</body>`);return`<iframe style="width:100%;height:${r};border:0;margin:0;" src="data:text/html;charset=UTF-8;base64,${i}" sandbox="allow-top-navigation-by-user-activation allow-popups"> + The "iframe" tag is not supported by your browser. +</iframe>`},"putIntoIFrame"),i2=(0,h.K2)((t,e,r,i,n)=>{let a=t.append("div");a.attr("id",r),i&&a.attr("style",i);let o=a.append("svg").attr("id",e).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg");return n&&o.attr("xmlns:xlink",n),o.append("g"),t},"appendDivSvgG");function i3(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}(0,h.K2)(i3,"sandboxedIframe");var i5=(0,h.K2)((t,e,r,i)=>{t.getElementById(e)?.remove(),t.getElementById(r)?.remove(),t.getElementById(i)?.remove()},"removeExistingElements"),i6=(0,h.K2)(async function(t,e,r){let i,n;eu();let a=iZ(e);e=a.code;let o=(0,h.zj)();h.Rm.debug(o),e.length>(o?.maxTextSize??5e4)&&(e="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa");let l="#"+t,c="i"+t,d="#"+c,p="d"+t,f="#"+p,g=(0,h.K2)(()=>{let t=m?d:f,e=(0,u.Ltv)(t).node();e&&"remove"in e&&e.remove()},"removeTempElements"),y=(0,u.Ltv)("body"),m="sandbox"===o.securityLevel,x="loose"===o.securityLevel,b=o.fontFamily;if(void 0!==r){if(r&&(r.innerHTML=""),m){let t=i3((0,u.Ltv)(r),c);(y=(0,u.Ltv)(t.nodes()[0].contentDocument.body)).node().style.margin=0}else y=(0,u.Ltv)(r);i2(y,t,p,`font-family: ${b}`,"http://www.w3.org/1999/xlink")}else{if(i5(document,t,p,c),m){let t=i3((0,u.Ltv)("body"),c);(y=(0,u.Ltv)(t.nodes()[0].contentDocument.body)).node().style.margin=0}else y=(0,u.Ltv)("body");i2(y,t,p)}try{i=await eg.fromText(e,{title:a.title})}catch(t){if(o.suppressErrorRendering)throw g(),t;i=await eg.fromText("error"),n=t}let C=y.select(f).node(),k=i.type,_=C.firstChild,w=_.firstChild,v=iJ(o,k,i.renderer.getClasses?.(e,i),l),T=document.createElement("style");T.innerHTML=v,_.insertBefore(T,w);try{await i.renderer.draw(e,t,s.r,i)}catch(r){throw o.suppressErrorRendering?g():tW.draw(e,t,s.r),r}i9(k,y.select(`${f} svg`),i.db.getAccTitle?.(),i.db.getAccDescription?.()),y.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns","http://www.w3.org/1999/xhtml");let A=y.select(f).node().innerHTML;if(h.Rm.debug("config.arrowMarkerAbsolute",o.arrowMarkerAbsolute),A=i0(A,m,(0,h._3)(o.arrowMarkerAbsolute)),m?A=i1(A,y.select(f+" svg").node()):x||(A=R.sanitize(A,{ADD_TAGS:iY,ADD_ATTR:iG})),em(),n)throw n;return g(),{diagramType:k,svg:A,bindFunctions:i.db.bindFunctions}},"render");function i4(t={}){let e=(0,h.hH)({},t);e?.fontFamily&&!e.themeVariables?.fontFamily&&(e.themeVariables||(e.themeVariables={}),e.themeVariables.fontFamily=e.fontFamily),(0,h.wZ)(e),e?.theme&&e.theme in h.H$?e.themeVariables=h.H$[e.theme].getThemeVariables(e.themeVariables):e&&(e.themeVariables=h.H$.default.getThemeVariables(e.themeVariables));let r="object"==typeof e?(0,h.UU)(e):(0,h.Q2)();(0,h.He)(r.logLevel),eu()}(0,h.K2)(i4,"initialize");var i8=(0,h.K2)((t,e={})=>{let{code:r}=iU(t);return eg.fromText(r,e)},"getDiagramFromText");function i9(t,e,r,i){ep(e,t),ef(e,r,i,e.attr("id"))}(0,h.K2)(i9,"addA11yInfo");var i7=Object.freeze({render:i6,parse:iV,getDiagramFromText:i8,initialize:i4,getConfig:h.zj,setConfig:h.Nk,getSiteConfig:h.Q2,updateSiteConfig:h.B6,reset:(0,h.K2)(()=>{(0,h.cL)()},"reset"),globalReset:(0,h.K2)(()=>{(0,h.cL)(h.sb)},"globalReset"),defaultConfig:h.sb});(0,h.He)((0,h.zj)().logLevel),(0,h.cL)((0,h.zj)());var nt=(0,h.K2)((t,e,r)=>{h.Rm.warn(t),(0,o.dq)(t)?(r&&r(t.str,t.hash),e.push({...t,message:t.str,error:t})):(r&&r(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},"handleError"),ne=(0,h.K2)(async function(t={querySelector:".mermaid"}){try{await nr(t)}catch(e){if((0,o.dq)(e)&&h.Rm.error(e.str),np.parseError&&np.parseError(e),!t.suppressErrors)throw h.Rm.error("Use the suppressErrors option to suppress these errors"),e}},"run"),nr=(0,h.K2)(async function({postRenderCallback:t,querySelector:e,nodes:r}={querySelector:".mermaid"}){let i,n;let a=i7.getConfig();if(h.Rm.debug(`${t?"":"No "}Callback function found`),r)i=r;else if(e)i=document.querySelectorAll(e);else throw Error("Nodes and querySelector are both undefined");h.Rm.debug(`Found ${i.length} diagrams`),a?.startOnLoad!==void 0&&(h.Rm.debug("Start On Load: "+a?.startOnLoad),i7.updateSiteConfig({startOnLoad:a?.startOnLoad}));let s=new o._K.InitIDGenerator(a.deterministicIds,a.deterministicIDSeed),l=[];for(let e of Array.from(i)){if(h.Rm.info("Rendering diagram: "+e.id),e.getAttribute("data-processed"))continue;e.setAttribute("data-processed","true");let r=`mermaid-${s.next()}`;n=e.innerHTML,n=(0,c.T)(o._K.entityDecode(n)).trim().replace(/<br\s*\/?>/gi,"<br/>");let i=o._K.detectInit(n);i&&h.Rm.debug("Detected early reinit: ",i);try{let{svg:i,bindFunctions:a}=await nd(r,n,e);e.innerHTML=i,t&&await t(r),a&&a(e)}catch(t){nt(t,l,np.parseError)}}if(l.length>0)throw l[0]},"runThrowsErrors"),ni=(0,h.K2)(function(t){i7.initialize(t)},"initialize"),nn=(0,h.K2)(async function(t,e,r){h.Rm.warn("mermaid.init is deprecated. Please use run instead."),t&&ni(t);let i={postRenderCallback:r,querySelector:".mermaid"};"string"==typeof e?i.querySelector=e:e&&(e instanceof HTMLElement?i.nodes=[e]:i.nodes=e),await ne(i)},"init"),na=(0,h.K2)(async(t,{lazyLoad:e=!0}={})=>{eu(),(0,h.Xd)(...t),!1===e&&await ed()},"registerExternalDiagrams"),no=(0,h.K2)(function(){if(np.startOnLoad){let{startOnLoad:t}=i7.getConfig();t&&np.run().catch(t=>h.Rm.error("Mermaid failed to initialize",t))}},"contentLoaded");"undefined"!=typeof document&&window.addEventListener("load",no,!1);var ns=(0,h.K2)(function(t){np.parseError=t},"setParseErrorHandler"),nl=[],nh=!1,nc=(0,h.K2)(async()=>{if(!nh){for(nh=!0;nl.length>0;){let t=nl.shift();if(t)try{await t()}catch(t){h.Rm.error("Error executing queue",t)}}nh=!1}},"executeQueue"),nu=(0,h.K2)(async(t,e)=>new Promise((r,i)=>{let n=(0,h.K2)(()=>new Promise((n,a)=>{i7.parse(t,e).then(t=>{n(t),r(t)},t=>{h.Rm.error("Error parsing",t),np.parseError?.(t),a(t),i(t)})}),"performCall");nl.push(n),nc().catch(i)}),"parse"),nd=(0,h.K2)((t,e,r)=>new Promise((i,n)=>{let a=(0,h.K2)(()=>new Promise((a,o)=>{i7.render(t,e,r).then(t=>{a(t),i(t)},t=>{h.Rm.error("Error parsing",t),np.parseError?.(t),o(t),n(t)})}),"performCall");nl.push(a),nc().catch(n)}),"render"),np={startOnLoad:!0,mermaidAPI:i7,parse:nu,render:nd,init:nn,run:ne,registerExternalDiagrams:na,registerLayoutLoaders:a.sO,initialize:ni,parseError:void 0,contentLoaded:no,setParseErrorHandler:ns,detectType:h.Ch,registerIconPacks:n.pC},nf=np}}]); \ No newline at end of file diff --git a/assets/js/73445.482a7239.js b/assets/js/73445.482a7239.js deleted file mode 100644 index b232ee5108..0000000000 --- a/assets/js/73445.482a7239.js +++ /dev/null @@ -1,155 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[73445],{73445:(e,t,s)=>{s.d(t,{d:()=>D,p:()=>r,s:()=>_});var i=s(93126),u=s(17367),n=function(){var e=function(e,t,s,i){for(s=s||{},i=e.length;i--;s[e[i]]=t);return s},t=[1,34],s=[1,35],i=[1,36],u=[1,37],n=[1,9],r=[1,8],a=[1,19],c=[1,20],l=[1,21],o=[1,40],h=[1,41],A=[1,27],p=[1,25],d=[1,26],y=[1,32],E=[1,33],C=[1,28],m=[1,29],g=[1,30],k=[1,31],F=[1,45],b=[1,42],f=[1,43],D=[1,44],_=[1,46],B=[1,24],T=[1,16,24],S=[1,60],v=[1,61],N=[1,62],L=[1,63],$=[1,64],I=[1,65],O=[1,66],x=[1,16,24,52],R=[1,77],P=[1,16,24,27,28,36,50,52,55,68,69,70,71,72,73,74,79,81],w=[1,16,24,27,28,34,36,50,52,55,59,68,69,70,71,72,73,74,79,81,94,96,97,98,99],G=[1,86],M=[28,94,96,97,98,99],U=[28,73,74,94,96,97,98,99],K=[28,68,69,70,71,72,94,96,97,98,99],Y=[1,99],z=[1,16,24,50,52,55],Q=[1,16,24,36],j=[8,9,10,11,19,23,44,46,48,53,57,58,60,61,63,65,75,76,78,82,94,96,97,98,99],X={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,directive:5,statements:6,direction:7,direction_tb:8,direction_bt:9,direction_rl:10,direction_lr:11,graphConfig:12,openDirective:13,typeDirective:14,closeDirective:15,NEWLINE:16,":":17,argDirective:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,CLASS_DIAGRAM:23,EOF:24,statement:25,classLabel:26,SQS:27,STR:28,SQE:29,namespaceName:30,alphaNumToken:31,className:32,classLiteralName:33,GENERICTYPE:34,relationStatement:35,LABEL:36,namespaceStatement:37,classStatement:38,methodStatement:39,annotationStatement:40,clickStatement:41,cssClassStatement:42,noteStatement:43,acc_title:44,acc_title_value:45,acc_descr:46,acc_descr_value:47,acc_descr_multiline_value:48,namespaceIdentifier:49,STRUCT_START:50,classStatements:51,STRUCT_STOP:52,NAMESPACE:53,classIdentifier:54,STYLE_SEPARATOR:55,members:56,CLASS:57,ANNOTATION_START:58,ANNOTATION_END:59,MEMBER:60,SEPARATOR:61,relation:62,NOTE_FOR:63,noteText:64,NOTE:65,relationType:66,lineType:67,AGGREGATION:68,EXTENSION:69,COMPOSITION:70,DEPENDENCY:71,LOLLIPOP:72,LINE:73,DOTTED_LINE:74,CALLBACK:75,LINK:76,LINK_TARGET:77,CLICK:78,CALLBACK_NAME:79,CALLBACK_ARGS:80,HREF:81,CSSCLASS:82,commentToken:83,textToken:84,graphCodeTokens:85,textNoTagsToken:86,TAGSTART:87,TAGEND:88,"==":89,"--":90,PCT:91,DEFAULT:92,SPACE:93,MINUS:94,keywords:95,UNICODE_TEXT:96,NUM:97,ALPHA:98,BQUOTE_STR:99,$accept:0,$end:1},terminals_:{2:"error",8:"direction_tb",9:"direction_bt",10:"direction_rl",11:"direction_lr",16:"NEWLINE",17:":",19:"open_directive",20:"type_directive",21:"arg_directive",22:"close_directive",23:"CLASS_DIAGRAM",24:"EOF",27:"SQS",28:"STR",29:"SQE",34:"GENERICTYPE",36:"LABEL",44:"acc_title",45:"acc_title_value",46:"acc_descr",47:"acc_descr_value",48:"acc_descr_multiline_value",50:"STRUCT_START",52:"STRUCT_STOP",53:"NAMESPACE",55:"STYLE_SEPARATOR",57:"CLASS",58:"ANNOTATION_START",59:"ANNOTATION_END",60:"MEMBER",61:"SEPARATOR",63:"NOTE_FOR",65:"NOTE",68:"AGGREGATION",69:"EXTENSION",70:"COMPOSITION",71:"DEPENDENCY",72:"LOLLIPOP",73:"LINE",74:"DOTTED_LINE",75:"CALLBACK",76:"LINK",77:"LINK_TARGET",78:"CLICK",79:"CALLBACK_NAME",80:"CALLBACK_ARGS",81:"HREF",82:"CSSCLASS",85:"graphCodeTokens",87:"TAGSTART",88:"TAGEND",89:"==",90:"--",91:"PCT",92:"DEFAULT",93:"SPACE",94:"MINUS",95:"keywords",96:"UNICODE_TEXT",97:"NUM",98:"ALPHA",99:"BQUOTE_STR"},productions_:[0,[3,1],[3,2],[3,1],[7,1],[7,1],[7,1],[7,1],[4,1],[5,4],[5,6],[13,1],[14,1],[18,1],[15,1],[12,4],[6,1],[6,2],[6,3],[26,3],[30,1],[30,2],[32,1],[32,1],[32,2],[32,2],[32,2],[25,1],[25,2],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,2],[25,2],[25,1],[37,4],[37,5],[49,2],[51,1],[51,2],[51,3],[38,1],[38,3],[38,4],[38,6],[54,2],[54,3],[40,4],[56,1],[56,2],[39,1],[39,2],[39,1],[39,1],[35,3],[35,4],[35,4],[35,5],[43,3],[43,2],[62,3],[62,2],[62,2],[62,1],[66,1],[66,1],[66,1],[66,1],[66,1],[67,1],[67,1],[41,3],[41,4],[41,3],[41,4],[41,4],[41,5],[41,3],[41,4],[41,4],[41,5],[41,4],[41,5],[41,5],[41,6],[42,3],[83,1],[83,1],[84,1],[84,1],[84,1],[84,1],[84,1],[84,1],[84,1],[86,1],[86,1],[86,1],[86,1],[31,1],[31,1],[31,1],[31,1],[33,1],[64,1]],performAction:function(e,t,s,i,u,n,r){var a=n.length-1;switch(u){case 4:i.setDirection("TB");break;case 5:i.setDirection("BT");break;case 6:i.setDirection("RL");break;case 7:i.setDirection("LR");break;case 11:i.parseDirective("%%{","open_directive");break;case 12:i.parseDirective(n[a],"type_directive");break;case 13:n[a]=n[a].trim().replace(/'/g,'"'),i.parseDirective(n[a],"arg_directive");break;case 14:i.parseDirective("}%%","close_directive","class");break;case 19:this.$=n[a-1];break;case 20:case 22:case 23:this.$=n[a];break;case 21:case 24:this.$=n[a-1]+n[a];break;case 25:case 26:this.$=n[a-1]+"~"+n[a]+"~";break;case 27:i.addRelation(n[a]);break;case 28:n[a-1].title=i.cleanupLabel(n[a]),i.addRelation(n[a-1]);break;case 37:this.$=n[a].trim(),i.setAccTitle(this.$);break;case 38:case 39:this.$=n[a].trim(),i.setAccDescription(this.$);break;case 40:i.addClassesToNamespace(n[a-3],n[a-1]);break;case 41:i.addClassesToNamespace(n[a-4],n[a-1]);break;case 42:this.$=n[a],i.addNamespace(n[a]);break;case 43:case 53:this.$=[n[a]];break;case 44:this.$=[n[a-1]];break;case 45:n[a].unshift(n[a-2]),this.$=n[a];break;case 47:i.setCssClass(n[a-2],n[a]);break;case 48:i.addMembers(n[a-3],n[a-1]);break;case 49:i.setCssClass(n[a-5],n[a-3]),i.addMembers(n[a-5],n[a-1]);break;case 50:this.$=n[a],i.addClass(n[a]);break;case 51:this.$=n[a-1],i.addClass(n[a-1]),i.setClassLabel(n[a-1],n[a]);break;case 52:i.addAnnotation(n[a],n[a-2]);break;case 54:n[a].push(n[a-1]),this.$=n[a];break;case 55:case 57:case 58:break;case 56:i.addMember(n[a-1],i.cleanupLabel(n[a]));break;case 59:this.$={id1:n[a-2],id2:n[a],relation:n[a-1],relationTitle1:"none",relationTitle2:"none"};break;case 60:this.$={id1:n[a-3],id2:n[a],relation:n[a-1],relationTitle1:n[a-2],relationTitle2:"none"};break;case 61:this.$={id1:n[a-3],id2:n[a],relation:n[a-2],relationTitle1:"none",relationTitle2:n[a-1]};break;case 62:this.$={id1:n[a-4],id2:n[a],relation:n[a-2],relationTitle1:n[a-3],relationTitle2:n[a-1]};break;case 63:i.addNote(n[a],n[a-1]);break;case 64:i.addNote(n[a]);break;case 65:this.$={type1:n[a-2],type2:n[a],lineType:n[a-1]};break;case 66:this.$={type1:"none",type2:n[a],lineType:n[a-1]};break;case 67:this.$={type1:n[a-1],type2:"none",lineType:n[a]};break;case 68:this.$={type1:"none",type2:"none",lineType:n[a]};break;case 69:this.$=i.relationType.AGGREGATION;break;case 70:this.$=i.relationType.EXTENSION;break;case 71:this.$=i.relationType.COMPOSITION;break;case 72:this.$=i.relationType.DEPENDENCY;break;case 73:this.$=i.relationType.LOLLIPOP;break;case 74:this.$=i.lineType.LINE;break;case 75:this.$=i.lineType.DOTTED_LINE;break;case 76:case 82:this.$=n[a-2],i.setClickEvent(n[a-1],n[a]);break;case 77:case 83:this.$=n[a-3],i.setClickEvent(n[a-2],n[a-1]),i.setTooltip(n[a-2],n[a]);break;case 78:this.$=n[a-2],i.setLink(n[a-1],n[a]);break;case 79:this.$=n[a-3],i.setLink(n[a-2],n[a-1],n[a]);break;case 80:this.$=n[a-3],i.setLink(n[a-2],n[a-1]),i.setTooltip(n[a-2],n[a]);break;case 81:this.$=n[a-4],i.setLink(n[a-3],n[a-2],n[a]),i.setTooltip(n[a-3],n[a-1]);break;case 84:this.$=n[a-3],i.setClickEvent(n[a-2],n[a-1],n[a]);break;case 85:this.$=n[a-4],i.setClickEvent(n[a-3],n[a-2],n[a-1]),i.setTooltip(n[a-3],n[a]);break;case 86:this.$=n[a-3],i.setLink(n[a-2],n[a]);break;case 87:this.$=n[a-4],i.setLink(n[a-3],n[a-1],n[a]);break;case 88:this.$=n[a-4],i.setLink(n[a-3],n[a-1]),i.setTooltip(n[a-3],n[a]);break;case 89:this.$=n[a-5],i.setLink(n[a-4],n[a-2],n[a]),i.setTooltip(n[a-4],n[a-1]);break;case 90:i.setCssClass(n[a-1],n[a])}},table:[{3:1,4:2,5:3,6:4,7:18,8:t,9:s,10:i,11:u,12:5,13:6,19:n,23:r,25:7,31:38,32:22,33:39,35:10,37:11,38:12,39:13,40:14,41:15,42:16,43:17,44:a,46:c,48:l,49:23,53:o,54:24,57:h,58:A,60:p,61:d,63:y,65:E,75:C,76:m,78:g,82:k,94:F,96:b,97:f,98:D,99:_},{1:[3]},{1:[2,1]},{3:47,4:2,5:3,6:4,7:18,8:t,9:s,10:i,11:u,12:5,13:6,19:n,23:r,25:7,31:38,32:22,33:39,35:10,37:11,38:12,39:13,40:14,41:15,42:16,43:17,44:a,46:c,48:l,49:23,53:o,54:24,57:h,58:A,60:p,61:d,63:y,65:E,75:C,76:m,78:g,82:k,94:F,96:b,97:f,98:D,99:_},{1:[2,3]},{1:[2,8]},{14:48,20:[1,49]},e(B,[2,16],{16:[1,50]}),{16:[1,51]},{20:[2,11]},e(T,[2,27],{36:[1,52]}),e(T,[2,29]),e(T,[2,30]),e(T,[2,31]),e(T,[2,32]),e(T,[2,33]),e(T,[2,34]),e(T,[2,35]),e(T,[2,36]),{45:[1,53]},{47:[1,54]},e(T,[2,39]),e(T,[2,55],{62:55,66:58,67:59,28:[1,56],36:[1,57],68:S,69:v,70:N,71:L,72:$,73:I,74:O}),{50:[1,67]},e(x,[2,46],{50:[1,69],55:[1,68]}),e(T,[2,57]),e(T,[2,58]),{31:70,94:F,96:b,97:f,98:D},{31:38,32:71,33:39,94:F,96:b,97:f,98:D,99:_},{31:38,32:72,33:39,94:F,96:b,97:f,98:D,99:_},{31:38,32:73,33:39,94:F,96:b,97:f,98:D,99:_},{28:[1,74]},{31:38,32:75,33:39,94:F,96:b,97:f,98:D,99:_},{28:R,64:76},e(T,[2,4]),e(T,[2,5]),e(T,[2,6]),e(T,[2,7]),e(P,[2,22],{31:38,33:39,32:78,34:[1,79],94:F,96:b,97:f,98:D,99:_}),e(P,[2,23],{34:[1,80]}),{30:81,31:82,94:F,96:b,97:f,98:D},{31:38,32:83,33:39,94:F,96:b,97:f,98:D,99:_},e(w,[2,104]),e(w,[2,105]),e(w,[2,106]),e(w,[2,107]),e([1,16,24,27,28,34,36,50,52,55,68,69,70,71,72,73,74,79,81],[2,108]),{1:[2,2]},{15:84,17:[1,85],22:G},e([17,22],[2,12]),e(B,[2,17],{25:7,35:10,37:11,38:12,39:13,40:14,41:15,42:16,43:17,7:18,32:22,49:23,54:24,31:38,33:39,6:87,8:t,9:s,10:i,11:u,44:a,46:c,48:l,53:o,57:h,58:A,60:p,61:d,63:y,65:E,75:C,76:m,78:g,82:k,94:F,96:b,97:f,98:D,99:_}),{6:88,7:18,8:t,9:s,10:i,11:u,25:7,31:38,32:22,33:39,35:10,37:11,38:12,39:13,40:14,41:15,42:16,43:17,44:a,46:c,48:l,49:23,53:o,54:24,57:h,58:A,60:p,61:d,63:y,65:E,75:C,76:m,78:g,82:k,94:F,96:b,97:f,98:D,99:_},e(T,[2,28]),e(T,[2,37]),e(T,[2,38]),{28:[1,90],31:38,32:89,33:39,94:F,96:b,97:f,98:D,99:_},{62:91,66:58,67:59,68:S,69:v,70:N,71:L,72:$,73:I,74:O},e(T,[2,56]),{67:92,73:I,74:O},e(M,[2,68],{66:93,68:S,69:v,70:N,71:L,72:$}),e(U,[2,69]),e(U,[2,70]),e(U,[2,71]),e(U,[2,72]),e(U,[2,73]),e(K,[2,74]),e(K,[2,75]),{16:[1,95],38:96,51:94,54:24,57:h},{31:97,94:F,96:b,97:f,98:D},{56:98,60:Y},{59:[1,100]},{28:[1,101]},{28:[1,102]},{79:[1,103],81:[1,104]},{31:105,94:F,96:b,97:f,98:D},{28:R,64:106},e(T,[2,64]),e(T,[2,109]),e(P,[2,24]),e(P,[2,25]),e(P,[2,26]),{50:[2,42]},{30:107,31:82,50:[2,20],94:F,96:b,97:f,98:D},e(z,[2,50],{26:108,27:[1,109]}),{16:[1,110]},{18:111,21:[1,112]},{16:[2,14]},e(B,[2,18]),{24:[1,113]},e(Q,[2,59]),{31:38,32:114,33:39,94:F,96:b,97:f,98:D,99:_},{28:[1,116],31:38,32:115,33:39,94:F,96:b,97:f,98:D,99:_},e(M,[2,67],{66:117,68:S,69:v,70:N,71:L,72:$}),e(M,[2,66]),{52:[1,118]},{38:96,51:119,54:24,57:h},{16:[1,120],52:[2,43]},e(x,[2,47],{50:[1,121]}),{52:[1,122]},{52:[2,53],56:123,60:Y},{31:38,32:124,33:39,94:F,96:b,97:f,98:D,99:_},e(T,[2,76],{28:[1,125]}),e(T,[2,78],{28:[1,127],77:[1,126]}),e(T,[2,82],{28:[1,128],80:[1,129]}),{28:[1,130]},e(T,[2,90]),e(T,[2,63]),{50:[2,21]},e(z,[2,51]),{28:[1,131]},e(j,[2,9]),{15:132,22:G},{22:[2,13]},{1:[2,15]},e(Q,[2,61]),e(Q,[2,60]),{31:38,32:133,33:39,94:F,96:b,97:f,98:D,99:_},e(M,[2,65]),e(T,[2,40]),{52:[1,134]},{38:96,51:135,52:[2,44],54:24,57:h},{56:136,60:Y},e(x,[2,48]),{52:[2,54]},e(T,[2,52]),e(T,[2,77]),e(T,[2,79]),e(T,[2,80],{77:[1,137]}),e(T,[2,83]),e(T,[2,84],{28:[1,138]}),e(T,[2,86],{28:[1,140],77:[1,139]}),{29:[1,141]},{16:[1,142]},e(Q,[2,62]),e(T,[2,41]),{52:[2,45]},{52:[1,143]},e(T,[2,81]),e(T,[2,85]),e(T,[2,87]),e(T,[2,88],{77:[1,144]}),e(z,[2,19]),e(j,[2,10]),e(x,[2,49]),e(T,[2,89])],defaultActions:{2:[2,1],4:[2,3],5:[2,8],9:[2,11],47:[2,2],81:[2,42],86:[2,14],107:[2,21],112:[2,13],113:[2,15],123:[2,54],135:[2,45]},parseError:function(e,t){if(t.recoverable)this.trace(e);else{var s=Error(e);throw s.hash=t,s}},parse:function(e){var t=this,s=[0],i=[],u=[null],n=[],r=this.table,a="",c=0,l=0,o=n.slice.call(arguments,1),h=Object.create(this.lexer),A={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(A.yy[p]=this.yy[p]);h.setInput(e,A.yy),A.yy.lexer=h,A.yy.parser=this,void 0===h.yylloc&&(h.yylloc={});var d=h.yylloc;n.push(d);var y=h.options&&h.options.ranges;"function"==typeof A.yy.parseError?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var E,C,m,g,k,F,b,f,D={};;){if(C=s[s.length-1],this.defaultActions[C]?m=this.defaultActions[C]:(null==E&&(E=function(){var e;return"number"!=typeof(e=i.pop()||h.lex()||1)&&(e instanceof Array&&(e=(i=e).pop()),e=t.symbols_[e]||e),e}()),m=r[C]&&r[C][E]),void 0===m||!m.length||!m[0]){var _="";for(k in f=[],r[C])this.terminals_[k]&&k>2&&f.push("'"+this.terminals_[k]+"'");_=h.showPosition?"Parse error on line "+(c+1)+":\n"+h.showPosition()+"\nExpecting "+f.join(", ")+", got '"+(this.terminals_[E]||E)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==E?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(_,{text:h.match,token:this.terminals_[E]||E,line:h.yylineno,loc:d,expected:f})}if(m[0]instanceof Array&&m.length>1)throw Error("Parse Error: multiple actions possible at state: "+C+", token: "+E);switch(m[0]){case 1:s.push(E),u.push(h.yytext),n.push(h.yylloc),s.push(m[1]),E=null,l=h.yyleng,a=h.yytext,c=h.yylineno,d=h.yylloc;break;case 2:if(F=this.productions_[m[1]][1],D.$=u[u.length-F],D._$={first_line:n[n.length-(F||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(F||1)].first_column,last_column:n[n.length-1].last_column},y&&(D._$.range=[n[n.length-(F||1)].range[0],n[n.length-1].range[1]]),void 0!==(g=this.performAction.apply(D,[a,l,c,A.yy,m[1],u,n].concat(o))))return g;F&&(s=s.slice(0,-1*F*2),u=u.slice(0,-1*F),n=n.slice(0,-1*F)),s.push(this.productions_[m[1]][0]),u.push(D.$),n.push(D._$),b=r[s[s.length-2]][s[s.length-1]],s.push(b);break;case 3:return!0}}return!0}};function W(){this.yy={}}return X.lexer={EOF:1,parseError:function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,s=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),s.length-1&&(this.yylineno-=s.length-1);var u=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===i.length?this.yylloc.first_column:0)+i[i.length-s.length].length-s[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[u[0],u[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var s,i,u;if(this.options.backtrack_lexer&&(u={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(u.yylloc.range=this.yylloc.range.slice(0))),(i=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],s=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack)for(var n in u)this[n]=u[n];return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var e,t,s,i,u=this._currentRules(),n=0;n<u.length;n++)if((s=this._input.match(this.rules[u[n]]))&&(!t||s[0].length>t[0].length)){if(t=s,i=n,this.options.backtrack_lexer){if(!1!==(e=this.test_match(s,u[n])))return e;if(!this._backtrack)return!1;t=!1;continue}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,u[i]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(e,t,s,i){switch(s){case 0:return this.begin("open_directive"),19;case 1:return 8;case 2:return 9;case 3:return 10;case 4:return 11;case 5:return this.begin("type_directive"),20;case 6:return this.popState(),this.begin("arg_directive"),17;case 7:return this.popState(),this.popState(),22;case 8:return 21;case 9:case 10:case 19:case 34:case 39:case 43:case 50:break;case 11:return this.begin("acc_title"),44;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),46;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:case 24:case 27:case 29:case 61:case 64:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:case 38:return 16;case 20:case 21:return 23;case 22:case 40:case 48:return"EDGE_STATE";case 23:this.begin("callback_name");break;case 25:this.popState(),this.begin("callback_args");break;case 26:return 79;case 28:return 80;case 30:return"STR";case 31:this.begin("string");break;case 32:return this.begin("namespace"),53;case 33:case 42:return this.popState(),16;case 35:return this.begin("namespace-body"),50;case 36:case 46:return this.popState(),52;case 37:case 47:return"EOF_IN_STRUCT";case 41:return this.begin("class"),57;case 44:return this.popState(),this.popState(),52;case 45:return this.begin("class-body"),50;case 49:return"OPEN_IN_STRUCT";case 51:return"MEMBER";case 52:return 82;case 53:return 75;case 54:return 76;case 55:return 78;case 56:return 63;case 57:return 65;case 58:return 58;case 59:return 59;case 60:return 81;case 62:return"GENERICTYPE";case 63:this.begin("generic");break;case 65:return"BQUOTE_STR";case 66:this.begin("bqstring");break;case 67:case 68:case 69:case 70:return 77;case 71:case 72:return 69;case 73:case 74:return 71;case 75:return 70;case 76:return 68;case 77:return 72;case 78:return 73;case 79:return 74;case 80:return 36;case 81:return 55;case 82:return 94;case 83:return"DOT";case 84:return"PLUS";case 85:return 91;case 86:case 87:return"EQUALS";case 88:return 98;case 89:return 27;case 90:return 29;case 91:return"PUNCTUATION";case 92:return 97;case 93:return 96;case 94:return 93;case 95:return 24}},rules:[/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[31,36,37,38,39,40,41,52,53,54,55,56,57,58,59,60,63,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],inclusive:!1},namespace:{rules:[31,32,33,34,35,52,53,54,55,56,57,58,59,60,63,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],inclusive:!1},"class-body":{rules:[31,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,63,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],inclusive:!1},class:{rules:[31,42,43,44,45,52,53,54,55,56,57,58,59,60,63,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],inclusive:!1},acc_descr_multiline:{rules:[16,17,31,52,53,54,55,56,57,58,59,60,63,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],inclusive:!1},acc_descr:{rules:[14,31,52,53,54,55,56,57,58,59,60,63,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],inclusive:!1},acc_title:{rules:[12,31,52,53,54,55,56,57,58,59,60,63,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],inclusive:!1},arg_directive:{rules:[7,8,31,52,53,54,55,56,57,58,59,60,63,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],inclusive:!1},type_directive:{rules:[6,7,31,52,53,54,55,56,57,58,59,60,63,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],inclusive:!1},open_directive:{rules:[5,31,52,53,54,55,56,57,58,59,60,63,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],inclusive:!1},callback_args:{rules:[27,28,31,52,53,54,55,56,57,58,59,60,63,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],inclusive:!1},callback_name:{rules:[24,25,26,31,52,53,54,55,56,57,58,59,60,63,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],inclusive:!1},href:{rules:[31,52,53,54,55,56,57,58,59,60,63,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],inclusive:!1},struct:{rules:[31,52,53,54,55,56,57,58,59,60,63,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],inclusive:!1},generic:{rules:[31,52,53,54,55,56,57,58,59,60,61,62,63,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],inclusive:!1},bqstring:{rules:[31,52,53,54,55,56,57,58,59,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],inclusive:!1},string:{rules:[29,30,31,52,53,54,55,56,57,58,59,60,63,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,23,31,32,41,52,53,54,55,56,57,58,59,60,63,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],inclusive:!0}}},W.prototype=X,X.Parser=W,new W}();n.parser=n;let r=n,a="classId-",c=[],l={},o=[],h=0,A={},p=0,d=[],y=e=>u.e.sanitizeText(e,(0,u.c)()),E=function(e){let t="",s=e;if(e.indexOf("~")>0){let i=e.split("~");s=y(i[0]),t=y(i[1])}return{className:s,type:t}},C=function(e){let t=E(e);void 0===l[t.className]&&(l[t.className]={id:t.className,type:t.type,label:t.className,cssClasses:[],methods:[],members:[],annotations:[],domId:a+t.className+"-"+h},h++)},m=function(e){if(e in l)return l[e].domId;throw Error("Class not found: "+e)},g=function(e,t){let s=l[E(e).className];if("string"==typeof t){let e=t.trim();e.startsWith("<<")&&e.endsWith(">>")?s.annotations.push(y(e.substring(2,e.length-2))):e.indexOf(")")>0?s.methods.push(y(e)):e&&s.members.push(y(e))}},k=function(e,t){e.split(",").forEach(function(e){let s=e;e[0].match(/\d/)&&(s=a+s),void 0!==l[s]&&l[s].cssClasses.push(t)})},F=function(e,t,s){if("loose"===(0,u.c)().securityLevel&&void 0!==t&&void 0!==l[e]){let i=m(e),n=[];if("string"==typeof s){n=s.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let e=0;e<n.length;e++){let t=n[e].trim();'"'===t.charAt(0)&&'"'===t.charAt(t.length-1)&&(t=t.substr(1,t.length-2)),n[e]=t}}0===n.length&&n.push(i),d.push(function(){let e=document.querySelector(`[id="${i}"]`);null!==e&&e.addEventListener("click",function(){u.u.runFunc(t,...n)},!1)})}},b=function(e){let t=(0,i.Ltv)(".mermaidTooltip");null===(t._groups||t)[0][0]&&(t=(0,i.Ltv)("body").append("div").attr("class","mermaidTooltip").style("opacity",0)),(0,i.Ltv)(e).select("svg").selectAll("g.node").on("mouseover",function(){let e=(0,i.Ltv)(this);if(null===e.attr("title"))return;let s=this.getBoundingClientRect();t.transition().duration(200).style("opacity",".9"),t.text(e.attr("title")).style("left",window.scrollX+s.left+(s.right-s.left)/2+"px").style("top",window.scrollY+s.top-14+document.body.scrollTop+"px"),t.html(t.html().replace(/<br\/>/g,"<br/>")),e.classed("hover",!0)}).on("mouseout",function(){t.transition().duration(500).style("opacity",0),(0,i.Ltv)(this).classed("hover",!1)})};d.push(b);let f="TB",D={parseDirective:function(e,t,s){u.m.parseDirective(this,e,t,s)},setAccTitle:u.s,getAccTitle:u.g,getAccDescription:u.a,setAccDescription:u.b,getConfig:()=>(0,u.c)().class,addClass:C,bindFunctions:function(e){d.forEach(function(t){t(e)})},clear:function(){c=[],l={},o=[],(d=[]).push(b),A={},p=0,(0,u.v)()},getClass:function(e){return l[e]},getClasses:function(){return l},getNotes:function(){return o},addAnnotation:function(e,t){l[E(e).className].annotations.push(t)},addNote:function(e,t){let s={id:`note${o.length}`,class:t,text:e};o.push(s)},getRelations:function(){return c},addRelation:function(e){u.l.debug("Adding relation: "+JSON.stringify(e)),C(e.id1),C(e.id2),e.id1=E(e.id1).className,e.id2=E(e.id2).className,e.relationTitle1=u.e.sanitizeText(e.relationTitle1.trim(),(0,u.c)()),e.relationTitle2=u.e.sanitizeText(e.relationTitle2.trim(),(0,u.c)()),c.push(e)},getDirection:()=>f,setDirection:e=>{f=e},addMember:g,addMembers:function(e,t){Array.isArray(t)&&(t.reverse(),t.forEach(t=>g(e,t)))},cleanupLabel:function(e){return e.startsWith(":")&&(e=e.substring(1)),y(e.trim())},lineType:{LINE:0,DOTTED_LINE:1},relationType:{AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3,LOLLIPOP:4},setClickEvent:function(e,t,s){e.split(",").forEach(function(e){F(e,t,s),l[e].haveCallback=!0}),k(e,"clickable")},setCssClass:k,setLink:function(e,t,s){let i=(0,u.c)();e.split(",").forEach(function(e){let n=e;e[0].match(/\d/)&&(n=a+n),void 0!==l[n]&&(l[n].link=u.u.formatUrl(t,i),"sandbox"===i.securityLevel?l[n].linkTarget="_top":"string"==typeof s?l[n].linkTarget=y(s):l[n].linkTarget="_blank")}),k(e,"clickable")},getTooltip:function(e,t){return t?A[t].classes[e].tooltip:l[e].tooltip},setTooltip:function(e,t){e.split(",").forEach(function(e){void 0!==t&&(l[e].tooltip=y(t))})},lookUpDomId:m,setDiagramTitle:u.r,getDiagramTitle:u.t,setClassLabel:function(e,t){t&&(t=y(t));let{className:s}=E(e);l[s].label=t},addNamespace:function(e){void 0===A[e]&&(A[e]={id:e,classes:{},children:{},domId:a+e+"-"+p},p++)},addClassesToNamespace:function(e,t){void 0!==A[e]&&t.map(t=>{l[t].parent=e,A[e].classes[t]=l[t]})},getNamespace:function(e){return A[e]},getNamespaces:function(){return A}},_=e=>`g.classGroup text { - fill: ${e.nodeBorder}; - fill: ${e.classText}; - stroke: none; - font-family: ${e.fontFamily}; - font-size: 10px; - - .title { - font-weight: bolder; - } - -} - -.nodeLabel, .edgeLabel { - color: ${e.classText}; -} -.edgeLabel .label rect { - fill: ${e.mainBkg}; -} -.label text { - fill: ${e.classText}; -} -.edgeLabel .label span { - background: ${e.mainBkg}; -} - -.classTitle { - font-weight: bolder; -} -.node rect, - .node circle, - .node ellipse, - .node polygon, - .node path { - fill: ${e.mainBkg}; - stroke: ${e.nodeBorder}; - stroke-width: 1px; - } - - -.divider { - stroke: ${e.nodeBorder}; - stroke-width: 1; -} - -g.clickable { - cursor: pointer; -} - -g.classGroup rect { - fill: ${e.mainBkg}; - stroke: ${e.nodeBorder}; -} - -g.classGroup line { - stroke: ${e.nodeBorder}; - stroke-width: 1; -} - -.classLabel .box { - stroke: none; - stroke-width: 0; - fill: ${e.mainBkg}; - opacity: 0.5; -} - -.classLabel .label { - fill: ${e.nodeBorder}; - font-size: 10px; -} - -.relation { - stroke: ${e.lineColor}; - stroke-width: 1; - fill: none; -} - -.dashed-line{ - stroke-dasharray: 3; -} - -.dotted-line{ - stroke-dasharray: 1 2; -} - -#compositionStart, .composition { - fill: ${e.lineColor} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -#compositionEnd, .composition { - fill: ${e.lineColor} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -#dependencyStart, .dependency { - fill: ${e.lineColor} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -#dependencyStart, .dependency { - fill: ${e.lineColor} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -#extensionStart, .extension { - fill: ${e.mainBkg} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -#extensionEnd, .extension { - fill: ${e.mainBkg} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -#aggregationStart, .aggregation { - fill: ${e.mainBkg} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -#aggregationEnd, .aggregation { - fill: ${e.mainBkg} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -#lollipopStart, .lollipop { - fill: ${e.mainBkg} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -#lollipopEnd, .lollipop { - fill: ${e.mainBkg} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -.edgeTerminals { - font-size: 11px; -} - -.classTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${e.textColor}; -} -`}}]); \ No newline at end of file diff --git a/assets/js/758e69f6.028d81cb.js b/assets/js/758e69f6.028d81cb.js deleted file mode 100644 index 25801aa8c0..0000000000 --- a/assets/js/758e69f6.028d81cb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[13445],{79234:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>l,contentTitle:()=>n,default:()=>u,frontMatter:()=>d,metadata:()=>i,toc:()=>o});let i=JSON.parse('{"id":"tests/visibility/some-drafts/draft-subcategory/listed1","title":"Some Drafts - Listed 1","description":"Regular doc","source":"@site/_dogfooding/_docs tests/tests/visibility/some-drafts/draft-subcategory/listed1.mdx","sourceDirName":"tests/visibility/some-drafts/draft-subcategory","slug":"/tests/visibility/some-drafts/draft-subcategory/listed1","permalink":"/tests/docs/tests/visibility/some-drafts/draft-subcategory/listed1","draft":false,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Listed","permalink":"/tests/docs/tags/listed"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"tags":["visibility","listed"]},"sidebar":"sidebar","previous":{"title":"Visibility","permalink":"/tests/docs/tests/visibility/"},"next":{"title":"Some Unlisteds - Listed 1","permalink":"/tests/docs/tests/visibility/some-unlisteds/unlisted-subcategory/listed1"}}');var r=s(62540),a=s(43023);let d={tags:["visibility","listed"]},n="Some Drafts - Listed 1",l={},o=[];function c(t){let e={h1:"h1",header:"header",p:"p",...(0,a.R)(),...t.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"some-drafts---listed-1",children:"Some Drafts - Listed 1"})}),"\n",(0,r.jsx)(e.p,{children:"Regular doc"})]})}function u(t={}){let{wrapper:e}={...(0,a.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(c,{...t})}):c(t)}u.displayName="MDXContent(_dogfooding/_docs tests/tests/visibility/some-drafts/draft-subcategory/listed1.mdx)"},43023:(t,e,s)=>{s.d(e,{R:()=>d,x:()=>n});var i=s(63696);let r={},a=i.createContext(r);function d(t){let e=i.useContext(a);return i.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function n(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:d(t.components),i.createElement(a.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/758e69f6.4377266f.js b/assets/js/758e69f6.4377266f.js new file mode 100644 index 0000000000..dc23064bb6 --- /dev/null +++ b/assets/js/758e69f6.4377266f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[13445],{79234:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>l,contentTitle:()=>n,default:()=>f,frontMatter:()=>d,metadata:()=>i,toc:()=>o});let i=JSON.parse('{"id":"tests/visibility/some-drafts/draft-subcategory/listed1","title":"Some Drafts - Listed 1","description":"Regular doc","source":"@site/_dogfooding/_docs tests/tests/visibility/some-drafts/draft-subcategory/listed1.mdx","sourceDirName":"tests/visibility/some-drafts/draft-subcategory","slug":"/tests/visibility/some-drafts/draft-subcategory/listed1","permalink":"/tests/docs/tests/visibility/some-drafts/draft-subcategory/listed1","draft":false,"unlisted":false,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Listed","permalink":"/tests/docs/tags/listed"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"tags":["visibility","listed"]},"sidebar":"sidebar","previous":{"title":"Visibility","permalink":"/tests/docs/tests/visibility/"},"next":{"title":"Some Unlisteds - Listed 1","permalink":"/tests/docs/tests/visibility/some-unlisteds/unlisted-subcategory/listed1"}}');var r=s(62540),a=s(43023);let d={tags:["visibility","listed"]},n="Some Drafts - Listed 1",l={},o=[];function c(t){let e={h1:"h1",header:"header",p:"p",...(0,a.R)(),...t.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"some-drafts---listed-1",children:"Some Drafts - Listed 1"})}),"\n",(0,r.jsx)(e.p,{children:"Regular doc"})]})}function f(t={}){let{wrapper:e}={...(0,a.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(c,{...t})}):c(t)}f.displayName="MDXContent(_dogfooding/_docs tests/tests/visibility/some-drafts/draft-subcategory/listed1.mdx)"},43023:(t,e,s)=>{s.d(e,{R:()=>d,x:()=>n});var i=s(63696);let r={},a=i.createContext(r);function d(t){let e=i.useContext(a);return i.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function n(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:d(t.components),i.createElement(a.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/76134b9e.10edcf6e.js b/assets/js/76134b9e.10edcf6e.js new file mode 100644 index 0000000000..d352fe2eda --- /dev/null +++ b/assets/js/76134b9e.10edcf6e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[75324],{22489:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>d,default:()=>l,frontMatter:()=>o,metadata:()=>s,toc:()=>u});let s=JSON.parse('{"id":"beginner\'s guide","title":"Beginner\'s guide","description":"#9160","source":"@site/_dogfooding/_docs tests/beginner\'s guide.mdx","sourceDirName":".","slug":"/beginner\'s guide","permalink":"/tests/docs/beginner\'s guide","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{}}');var r=n(62540),i=n(43023);let o={},d="Beginner's guide",a={},u=[];function c(e){let t={a:"a",h1:"h1",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"beginners-guide",children:"Beginner's guide"})}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/9160",children:"#9160"})})]})}function l(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}l.displayName="MDXContent(_dogfooding/_docs tests/beginner's guide.mdx)"},43023:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>d});var s=n(63696);let r={},i=s.createContext(r);function o(e){let t=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/76134b9e.b819eb54.js b/assets/js/76134b9e.b819eb54.js deleted file mode 100644 index 86978c908f..0000000000 --- a/assets/js/76134b9e.b819eb54.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[75324],{22489:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>d,default:()=>l,frontMatter:()=>o,metadata:()=>s,toc:()=>u});let s=JSON.parse('{"id":"beginner\'s guide","title":"Beginner\'s guide","description":"#9160","source":"@site/_dogfooding/_docs tests/beginner\'s guide.mdx","sourceDirName":".","slug":"/beginner\'s guide","permalink":"/tests/docs/beginner\'s guide","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{}}');var r=t(62540),i=t(43023);let o={},d="Beginner's guide",a={},u=[];function c(e){let n={a:"a",h1:"h1",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"beginners-guide",children:"Beginner's guide"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/pull/9160",children:"#9160"})})]})}function l(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}l.displayName="MDXContent(_dogfooding/_docs tests/beginner's guide.mdx)"},43023:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>d});var s=t(63696);let r={},i=s.createContext(r);function o(e){let n=s.useContext(i);return s.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(r):e.components||r:o(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/76654.a5d08f9c.js b/assets/js/76654.a5d08f9c.js deleted file mode 100644 index 0370986136..0000000000 --- a/assets/js/76654.a5d08f9c.js +++ /dev/null @@ -1,46 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[76654],{76654:(t,e,r)=>{r.d(e,{diagram:()=>v});var i=r(17367),a=r(62499),n=r(93126),s=r(51822);let o=[];for(let t=0;t<256;++t)o.push((t+256).toString(16).slice(1));let l=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,c=function(t){let e;if(!("string"==typeof t&&l.test(t)))throw TypeError("Invalid UUID");let r=new Uint8Array(16);return r[0]=(e=parseInt(t.slice(0,8),16))>>>24,r[1]=e>>>16&255,r[2]=e>>>8&255,r[3]=255&e,r[4]=(e=parseInt(t.slice(9,13),16))>>>8,r[5]=255&e,r[6]=(e=parseInt(t.slice(14,18),16))>>>8,r[7]=255&e,r[8]=(e=parseInt(t.slice(19,23),16))>>>8,r[9]=255&e,r[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,r[11]=e/4294967296&255,r[12]=e>>>24&255,r[13]=e>>>16&255,r[14]=e>>>8&255,r[15]=255&e,r};function h(t,e){return t<<e|t>>>32-e}let d=function(t,e,r){function i(t,e,i,a){var n;if("string"==typeof t&&(t=function(t){t=unescape(encodeURIComponent(t));let e=[];for(let r=0;r<t.length;++r)e.push(t.charCodeAt(r));return e}(t)),"string"==typeof e&&(e=c(e)),(null===(n=e)||void 0===n?void 0:n.length)!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let s=new Uint8Array(16+t.length);if(s.set(e),s.set(t,e.length),(s=r(s))[6]=15&s[6]|80,s[8]=63&s[8]|128,i){a=a||0;for(let t=0;t<16;++t)i[a+t]=s[t];return i}return function(t,e=0){return(o[t[e+0]]+o[t[e+1]]+o[t[e+2]]+o[t[e+3]]+"-"+o[t[e+4]]+o[t[e+5]]+"-"+o[t[e+6]]+o[t[e+7]]+"-"+o[t[e+8]]+o[t[e+9]]+"-"+o[t[e+10]]+o[t[e+11]]+o[t[e+12]]+o[t[e+13]]+o[t[e+14]]+o[t[e+15]]).toLowerCase()}(s)}try{i.name="v5"}catch(t){}return i.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",i.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",i}(0,0,function(t){let e=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof t){let e=unescape(encodeURIComponent(t));t=[];for(let r=0;r<e.length;++r)t.push(e.charCodeAt(r))}else Array.isArray(t)||(t=Array.prototype.slice.call(t));t.push(128);let i=Math.ceil((t.length/4+2)/16),a=Array(i);for(let e=0;e<i;++e){let r=new Uint32Array(16);for(let i=0;i<16;++i)r[i]=t[64*e+4*i]<<24|t[64*e+4*i+1]<<16|t[64*e+4*i+2]<<8|t[64*e+4*i+3];a[e]=r}a[i-1][14]=(t.length-1)*8/4294967296,a[i-1][14]=Math.floor(a[i-1][14]),a[i-1][15]=(t.length-1)*8&4294967295;for(let t=0;t<i;++t){let i=new Uint32Array(80);for(let e=0;e<16;++e)i[e]=a[t][e];for(let t=16;t<80;++t)i[t]=h(i[t-3]^i[t-8]^i[t-14]^i[t-16],1);let n=r[0],s=r[1],o=r[2],l=r[3],c=r[4];for(let t=0;t<80;++t){let r=Math.floor(t/20),a=h(n,5)+function(t,e,r,i){switch(t){case 0:return e&r^~e&i;case 1:case 3:return e^r^i;case 2:return e&r^e&i^r&i}}(r,s,o,l)+c+e[r]+i[t]>>>0;c=l,l=o,o=h(s,30)>>>0,s=n,n=a}r[0]=r[0]+n>>>0,r[1]=r[1]+s>>>0,r[2]=r[2]+o>>>0,r[3]=r[3]+l>>>0,r[4]=r[4]+c>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,255&r[0],r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,255&r[1],r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,255&r[2],r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,255&r[3],r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,255&r[4]]});r(95285),r(31546),r(31234);var y=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,2],r=[1,5],i=[6,9,11,23,25,27,29,30,31,52],a=[1,17],n=[1,18],s=[1,19],o=[1,20],l=[1,21],c=[1,22],h=[1,25],d=[1,30],y=[1,31],u=[1,32],p=[1,33],_=[1,34],f=[6,9,11,15,20,23,25,27,29,30,31,44,45,46,47,48,52],E=[1,46],g=[30,31,49,50],m=[4,6,9,11,23,25,27,29,30,31,52],O=[44,45,46,47,48],b=[22,37],k=[1,66],R=[1,65],N=[22,37,39,41],T={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,entityName:17,relSpec:18,role:19,BLOCK_START:20,attributes:21,BLOCK_STOP:22,title:23,title_value:24,acc_title:25,acc_title_value:26,acc_descr:27,acc_descr_value:28,acc_descr_multiline_value:29,ALPHANUM:30,ENTITY_NAME:31,attribute:32,attributeType:33,attributeName:34,attributeKeyTypeList:35,attributeComment:36,ATTRIBUTE_WORD:37,attributeKeyType:38,COMMA:39,ATTRIBUTE_KEY:40,COMMENT:41,cardinality:42,relType:43,ZERO_OR_ONE:44,ZERO_OR_MORE:45,ONE_OR_MORE:46,ONLY_ONE:47,MD_PARENT:48,NON_IDENTIFYING:49,IDENTIFYING:50,WORD:51,open_directive:52,type_directive:53,arg_directive:54,close_directive:55,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",20:"BLOCK_START",22:"BLOCK_STOP",23:"title",24:"title_value",25:"acc_title",26:"acc_title_value",27:"acc_descr",28:"acc_descr_value",29:"acc_descr_multiline_value",30:"ALPHANUM",31:"ENTITY_NAME",37:"ATTRIBUTE_WORD",39:"COMMA",40:"ATTRIBUTE_KEY",41:"COMMENT",44:"ZERO_OR_ONE",45:"ZERO_OR_MORE",46:"ONE_OR_MORE",47:"ONLY_ONE",48:"MD_PARENT",49:"NON_IDENTIFYING",50:"IDENTIFYING",51:"WORD",52:"open_directive",53:"type_directive",54:"arg_directive",55:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,4],[10,3],[10,1],[10,2],[10,2],[10,2],[10,1],[17,1],[17,1],[21,1],[21,2],[32,2],[32,3],[32,3],[32,4],[33,1],[34,1],[35,1],[35,3],[38,1],[36,1],[18,3],[42,1],[42,1],[42,1],[42,1],[42,1],[43,1],[43,1],[19,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,r,i,a,n,s){var o=n.length-1;switch(a){case 1:break;case 3:case 7:case 8:this.$=[];break;case 4:n[o-1].push(n[o]),this.$=n[o-1];break;case 5:case 6:case 20:case 44:case 28:case 29:case 32:this.$=n[o];break;case 12:i.addEntity(n[o-4]),i.addEntity(n[o-2]),i.addRelationship(n[o-4],n[o],n[o-2],n[o-3]);break;case 13:i.addEntity(n[o-3]),i.addAttributes(n[o-3],n[o-1]);break;case 14:i.addEntity(n[o-2]);break;case 15:i.addEntity(n[o]);break;case 16:case 17:this.$=n[o].trim(),i.setAccTitle(this.$);break;case 18:case 19:this.$=n[o].trim(),i.setAccDescription(this.$);break;case 21:case 42:case 43:case 33:this.$=n[o].replace(/"/g,"");break;case 22:case 30:this.$=[n[o]];break;case 23:n[o].push(n[o-1]),this.$=n[o];break;case 24:this.$={attributeType:n[o-1],attributeName:n[o]};break;case 25:this.$={attributeType:n[o-2],attributeName:n[o-1],attributeKeyTypeList:n[o]};break;case 26:this.$={attributeType:n[o-2],attributeName:n[o-1],attributeComment:n[o]};break;case 27:this.$={attributeType:n[o-3],attributeName:n[o-2],attributeKeyTypeList:n[o-1],attributeComment:n[o]};break;case 31:n[o-2].push(n[o]),this.$=n[o-2];break;case 34:this.$={cardA:n[o],relType:n[o-1],cardB:n[o-2]};break;case 35:this.$=i.Cardinality.ZERO_OR_ONE;break;case 36:this.$=i.Cardinality.ZERO_OR_MORE;break;case 37:this.$=i.Cardinality.ONE_OR_MORE;break;case 38:this.$=i.Cardinality.ONLY_ONE;break;case 39:this.$=i.Cardinality.MD_PARENT;break;case 40:this.$=i.Identification.NON_IDENTIFYING;break;case 41:this.$=i.Identification.IDENTIFYING;break;case 45:i.parseDirective("%%{","open_directive");break;case 46:i.parseDirective(n[o],"type_directive");break;case 47:n[o]=n[o].trim().replace(/'/g,'"'),i.parseDirective(n[o],"arg_directive");break;case 48:i.parseDirective("}%%","close_directive","er")}},table:[{3:1,4:e,7:3,12:4,52:r},{1:[3]},t(i,[2,3],{5:6}),{3:7,4:e,7:3,12:4,52:r},{13:8,53:[1,9]},{53:[2,45]},{6:[1,10],7:15,8:11,9:[1,12],10:13,11:[1,14],12:4,17:16,23:a,25:n,27:s,29:o,30:l,31:c,52:r},{1:[2,2]},{14:23,15:[1,24],55:h},t([15,55],[2,46]),t(i,[2,8],{1:[2,1]}),t(i,[2,4]),{7:15,10:26,12:4,17:16,23:a,25:n,27:s,29:o,30:l,31:c,52:r},t(i,[2,6]),t(i,[2,7]),t(i,[2,11]),t(i,[2,15],{18:27,42:29,20:[1,28],44:d,45:y,46:u,47:p,48:_}),{24:[1,35]},{26:[1,36]},{28:[1,37]},t(i,[2,19]),t(f,[2,20]),t(f,[2,21]),{11:[1,38]},{16:39,54:[1,40]},{11:[2,48]},t(i,[2,5]),{17:41,30:l,31:c},{21:42,22:[1,43],32:44,33:45,37:E},{43:47,49:[1,48],50:[1,49]},t(g,[2,35]),t(g,[2,36]),t(g,[2,37]),t(g,[2,38]),t(g,[2,39]),t(i,[2,16]),t(i,[2,17]),t(i,[2,18]),t(m,[2,9]),{14:50,55:h},{55:[2,47]},{15:[1,51]},{22:[1,52]},t(i,[2,14]),{21:53,22:[2,22],32:44,33:45,37:E},{34:54,37:[1,55]},{37:[2,28]},{42:56,44:d,45:y,46:u,47:p,48:_},t(O,[2,40]),t(O,[2,41]),{11:[1,57]},{19:58,30:[1,61],31:[1,60],51:[1,59]},t(i,[2,13]),{22:[2,23]},t(b,[2,24],{35:62,36:63,38:64,40:k,41:R}),t([22,37,40,41],[2,29]),t([30,31],[2,34]),t(m,[2,10]),t(i,[2,12]),t(i,[2,42]),t(i,[2,43]),t(i,[2,44]),t(b,[2,25],{36:67,39:[1,68],41:R}),t(b,[2,26]),t(N,[2,30]),t(b,[2,33]),t(N,[2,32]),t(b,[2,27]),{38:69,40:k},t(N,[2,31])],defaultActions:{5:[2,45],7:[2,2],25:[2,48],40:[2,47],46:[2,28],53:[2,23]},parseError:function(t,e){if(e.recoverable)this.trace(t);else{var r=Error(t);throw r.hash=e,r}},parse:function(t){var e=this,r=[0],i=[],a=[null],n=[],s=this.table,o="",l=0,c=0,h=n.slice.call(arguments,1),d=Object.create(this.lexer),y={yy:{}};for(var u in this.yy)Object.prototype.hasOwnProperty.call(this.yy,u)&&(y.yy[u]=this.yy[u]);d.setInput(t,y.yy),y.yy.lexer=d,y.yy.parser=this,void 0===d.yylloc&&(d.yylloc={});var p=d.yylloc;n.push(p);var _=d.options&&d.options.ranges;"function"==typeof y.yy.parseError?this.parseError=y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var f,E,g,m,O,b,k,R,N={};;){if(E=r[r.length-1],this.defaultActions[E]?g=this.defaultActions[E]:(null==f&&(f=function(){var t;return"number"!=typeof(t=i.pop()||d.lex()||1)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}()),g=s[E]&&s[E][f]),void 0===g||!g.length||!g[0]){var T="";for(O in R=[],s[E])this.terminals_[O]&&O>2&&R.push("'"+this.terminals_[O]+"'");T=d.showPosition?"Parse error on line "+(l+1)+":\n"+d.showPosition()+"\nExpecting "+R.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(T,{text:d.match,token:this.terminals_[f]||f,line:d.yylineno,loc:p,expected:R})}if(g[0]instanceof Array&&g.length>1)throw Error("Parse Error: multiple actions possible at state: "+E+", token: "+f);switch(g[0]){case 1:r.push(f),a.push(d.yytext),n.push(d.yylloc),r.push(g[1]),f=null,c=d.yyleng,o=d.yytext,l=d.yylineno,p=d.yylloc;break;case 2:if(b=this.productions_[g[1]][1],N.$=a[a.length-b],N._$={first_line:n[n.length-(b||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(b||1)].first_column,last_column:n[n.length-1].last_column},_&&(N._$.range=[n[n.length-(b||1)].range[0],n[n.length-1].range[1]]),void 0!==(m=this.performAction.apply(N,[o,c,l,y.yy,g[1],a,n].concat(h))))return m;b&&(r=r.slice(0,-1*b*2),a=a.slice(0,-1*b),n=n.slice(0,-1*b)),r.push(this.productions_[g[1]][0]),a.push(N.$),n.push(N._$),k=s[r[r.length-2]][r[r.length-1]],r.push(k);break;case 3:return!0}}return!0}};function x(){this.yy={}}return T.lexer={EOF:1,parseError:function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack)for(var n in a)this[n]=a[n];return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,r,i,a=this._currentRules(),n=0;n<a.length;n++)if((r=this._input.match(this.rules[a[n]]))&&(!e||r[0].length>e[0].length)){if(e=r,i=n,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,a[n])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("acc_title"),25;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),27;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return this.begin("open_directive"),52;case 8:return this.begin("type_directive"),53;case 9:return this.popState(),this.begin("arg_directive"),15;case 10:return this.popState(),this.popState(),55;case 11:return 54;case 12:return 11;case 13:case 20:case 25:break;case 14:return 9;case 15:return 31;case 16:return 51;case 17:return 4;case 18:return this.begin("block"),20;case 19:return 39;case 21:return 40;case 22:case 23:return 37;case 24:return 41;case 26:return this.popState(),22;case 27:case 57:return e.yytext[0];case 28:case 32:case 33:case 46:return 44;case 29:case 30:case 31:case 39:case 41:case 48:return 46;case 34:case 35:case 36:case 37:case 38:case 40:case 47:return 45;case 42:case 43:case 44:case 45:return 47;case 49:return 48;case 50:case 53:case 54:case 55:return 49;case 51:case 52:return 50;case 56:return 30;case 58:return 6}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:,)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:(.*?)[~](.*?)*[~])/i,/^(?:[\*A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\s*u\b)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},open_directive:{rules:[8],inclusive:!1},type_directive:{rules:[9,10],inclusive:!1},arg_directive:{rules:[10,11],inclusive:!1},block:{rules:[19,20,21,22,23,24,25,26,27],inclusive:!1},INITIAL:{rules:[0,2,4,7,12,13,14,15,16,17,18,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58],inclusive:!0}}},x.prototype=T,T.Parser=x,new x}();y.parser=y;let u={},p=[],_=function(t){return void 0===u[t]&&(u[t]={attributes:[]},i.l.info("Added new entity :",t)),u[t]},f={Cardinality:{ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},Identification:{NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},parseDirective:function(t,e,r){i.m.parseDirective(this,t,e,r)},getConfig:()=>(0,i.c)().er,addEntity:_,addAttributes:function(t,e){let r,a=_(t);for(r=e.length-1;r>=0;r--)a.attributes.push(e[r]),i.l.debug("Added attribute ",e[r].attributeName)},getEntities:()=>u,addRelationship:function(t,e,r,a){let n={entityA:t,roleA:e,entityB:r,relSpec:a};p.push(n),i.l.debug("Added new relationship :",n)},getRelationships:()=>p,clear:function(){u={},p=[],(0,i.v)()},setAccTitle:i.s,getAccTitle:i.g,setAccDescription:i.b,getAccDescription:i.a,setDiagramTitle:i.r,getDiagramTitle:i.t},E={ONLY_ONE_START:"ONLY_ONE_START",ONLY_ONE_END:"ONLY_ONE_END",ZERO_OR_ONE_START:"ZERO_OR_ONE_START",ZERO_OR_ONE_END:"ZERO_OR_ONE_END",ONE_OR_MORE_START:"ONE_OR_MORE_START",ONE_OR_MORE_END:"ONE_OR_MORE_END",ZERO_OR_MORE_START:"ZERO_OR_MORE_START",ZERO_OR_MORE_END:"ZERO_OR_MORE_END",MD_PARENT_END:"MD_PARENT_END",MD_PARENT_START:"MD_PARENT_START"},g={ERMarkers:E,insertMarkers:function(t,e){let r;t.append("defs").append("marker").attr("id",E.MD_PARENT_START).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",E.MD_PARENT_END).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",E.ONLY_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",E.ONLY_ONE_END).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,0 L3,18 M9,0 L9,18"),(r=t.append("defs").append("marker").attr("id",E.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto")).append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18"),(r=t.append("defs").append("marker").attr("id",E.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto")).append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,0 L21,18"),t.append("defs").append("marker").attr("id",E.ONE_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),t.append("defs").append("marker").attr("id",E.ONE_OR_MORE_END).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"),(r=t.append("defs").append("marker").attr("id",E.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto")).append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),(r=t.append("defs").append("marker").attr("id",E.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto")).append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")}},m=/[^\dA-Za-z](\W)*/g,O={},b=new Map,k=(t,e,r)=>{let a=O.entityPadding/3,n=O.entityPadding/3,s=.85*O.fontSize,o=e.node().getBBox(),l=[],c=!1,h=!1,d=0,y=0,u=0,p=0,_=o.height+2*a,f=1;r.forEach(t=>{void 0!==t.attributeKeyTypeList&&t.attributeKeyTypeList.length>0&&(c=!0),void 0!==t.attributeComment&&(h=!0)}),r.forEach(r=>{let n=`${e.node().id}-attr-${f}`,o=0,E=(0,i.x)(r.attributeType),g=t.append("text").classed("er entityLabel",!0).attr("id",`${n}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",(0,i.c)().fontFamily).style("font-size",s+"px").text(E),m=t.append("text").classed("er entityLabel",!0).attr("id",`${n}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",(0,i.c)().fontFamily).style("font-size",s+"px").text(r.attributeName),O={};O.tn=g,O.nn=m;let b=g.node().getBBox(),k=m.node().getBBox();if(d=Math.max(d,b.width),y=Math.max(y,k.width),o=Math.max(b.height,k.height),c){let e=void 0!==r.attributeKeyTypeList?r.attributeKeyTypeList.join(","):"",a=t.append("text").classed("er entityLabel",!0).attr("id",`${n}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",(0,i.c)().fontFamily).style("font-size",s+"px").text(e);O.kn=a;let l=a.node().getBBox();u=Math.max(u,l.width),o=Math.max(o,l.height)}if(h){let e=t.append("text").classed("er entityLabel",!0).attr("id",`${n}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",(0,i.c)().fontFamily).style("font-size",s+"px").text(r.attributeComment||"");O.cn=e;let a=e.node().getBBox();p=Math.max(p,a.width),o=Math.max(o,a.height)}O.height=o,l.push(O),_+=o+2*a,f+=1});let E=4;c&&(E+=2),h&&(E+=2);let g=d+y+u+p,m={width:Math.max(O.minEntityWidth,Math.max(o.width+2*O.entityPadding,g+n*E)),height:r.length>0?_:Math.max(O.minEntityHeight,o.height+2*O.entityPadding)};if(r.length>0){let r=Math.max(0,(m.width-g-n*E)/(E/2));e.attr("transform","translate("+m.width/2+","+(a+o.height/2)+")");let i=o.height+2*a,s="attributeBoxOdd";l.forEach(e=>{let o=i+a+e.height/2;e.tn.attr("transform","translate("+n+","+o+")");let l=t.insert("rect","#"+e.tn.node().id).classed(`er ${s}`,!0).attr("x",0).attr("y",i).attr("width",d+2*n+r).attr("height",e.height+2*a),_=parseFloat(l.attr("x"))+parseFloat(l.attr("width"));e.nn.attr("transform","translate("+(_+n)+","+o+")");let f=t.insert("rect","#"+e.nn.node().id).classed(`er ${s}`,!0).attr("x",_).attr("y",i).attr("width",y+2*n+r).attr("height",e.height+2*a),E=parseFloat(f.attr("x"))+parseFloat(f.attr("width"));if(c){e.kn.attr("transform","translate("+(E+n)+","+o+")");let l=t.insert("rect","#"+e.kn.node().id).classed(`er ${s}`,!0).attr("x",E).attr("y",i).attr("width",u+2*n+r).attr("height",e.height+2*a);E=parseFloat(l.attr("x"))+parseFloat(l.attr("width"))}h&&(e.cn.attr("transform","translate("+(E+n)+","+o+")"),t.insert("rect","#"+e.cn.node().id).classed(`er ${s}`,"true").attr("x",E).attr("y",i).attr("width",p+2*n+r).attr("height",e.height+2*a)),i+=e.height+2*a,s="attributeBoxOdd"===s?"attributeBoxEven":"attributeBoxOdd"})}else m.height=Math.max(O.minEntityHeight,_),e.attr("transform","translate("+m.width/2+","+m.height/2+")");return m},R=function(t,e,r){let a;return Object.keys(e).forEach(function(n){let s=function(t="",e=""){let r=t.replace(m,"");return`${M(e)}${M(r)}${d(t,"28e9f9db-3c8d-5aa5-9faf-44286ae5937c")}`}(n,"entity");b.set(n,s);let o=t.append("g").attr("id",s);a=void 0===a?s:a;let l="text-"+s,c=o.append("text").classed("er entityLabel",!0).attr("id",l).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",(0,i.c)().fontFamily).style("font-size",O.fontSize+"px").text(n),{width:h,height:y}=k(o,c,e[n].attributes),u=o.insert("rect","#"+l).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",h).attr("height",y).node().getBBox();r.setNode(s,{width:u.width,height:u.height,shape:"rect",id:s})}),a},N=function(t,e){e.nodes().forEach(function(r){void 0!==r&&void 0!==e.node(r)&&t.select("#"+r).attr("transform","translate("+(e.node(r).x-e.node(r).width/2)+","+(e.node(r).y-e.node(r).height/2)+" )")})},T=function(t){return(t.entityA+t.roleA+t.entityB).replace(/\s/g,"")},x=0,A=function(t,e,r,a,s){x++;let o=r.edge(b.get(e.entityA),b.get(e.entityB),T(e)),l=(0,n.n8j)().x(function(t){return t.x}).y(function(t){return t.y}).curve(n.qrM),c=t.insert("path","#"+a).classed("er relationshipLine",!0).attr("d",l(o.points)).style("stroke",O.stroke).style("fill","none");e.relSpec.relType===s.db.Identification.NON_IDENTIFYING&&c.attr("stroke-dasharray","8,8");let h="";switch(O.arrowMarkerAbsolute&&(h=(h=(h=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),e.relSpec.cardA){case s.db.Cardinality.ZERO_OR_ONE:c.attr("marker-end","url("+h+"#"+g.ERMarkers.ZERO_OR_ONE_END+")");break;case s.db.Cardinality.ZERO_OR_MORE:c.attr("marker-end","url("+h+"#"+g.ERMarkers.ZERO_OR_MORE_END+")");break;case s.db.Cardinality.ONE_OR_MORE:c.attr("marker-end","url("+h+"#"+g.ERMarkers.ONE_OR_MORE_END+")");break;case s.db.Cardinality.ONLY_ONE:c.attr("marker-end","url("+h+"#"+g.ERMarkers.ONLY_ONE_END+")");break;case s.db.Cardinality.MD_PARENT:c.attr("marker-end","url("+h+"#"+g.ERMarkers.MD_PARENT_END+")")}switch(e.relSpec.cardB){case s.db.Cardinality.ZERO_OR_ONE:c.attr("marker-start","url("+h+"#"+g.ERMarkers.ZERO_OR_ONE_START+")");break;case s.db.Cardinality.ZERO_OR_MORE:c.attr("marker-start","url("+h+"#"+g.ERMarkers.ZERO_OR_MORE_START+")");break;case s.db.Cardinality.ONE_OR_MORE:c.attr("marker-start","url("+h+"#"+g.ERMarkers.ONE_OR_MORE_START+")");break;case s.db.Cardinality.ONLY_ONE:c.attr("marker-start","url("+h+"#"+g.ERMarkers.ONLY_ONE_START+")");break;case s.db.Cardinality.MD_PARENT:c.attr("marker-start","url("+h+"#"+g.ERMarkers.MD_PARENT_START+")")}let d=c.node().getTotalLength(),y=c.node().getPointAtLength(.5*d),u="rel"+x,p=t.append("text").classed("er relationshipLabel",!0).attr("id",u).attr("x",y.x).attr("y",y.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",(0,i.c)().fontFamily).style("font-size",O.fontSize+"px").text(e.roleA).node().getBBox();t.insert("rect","#"+u).classed("er relationshipLabelBox",!0).attr("x",y.x-p.width/2).attr("y",y.y-p.height/2).attr("width",p.width).attr("height",p.height)};function M(t=""){return t.length>0?`${t}-`:""}let v={parser:y,db:f,renderer:{setConf:function(t){for(let e of Object.keys(t))O[e]=t[e]},draw:function(t,e,r,o){var l;let c,h;O=(0,i.c)().er,i.l.info("Drawing ER diagram");let d=(0,i.c)().securityLevel;"sandbox"===d&&(c=(0,n.Ltv)("#i"+e));let y=("sandbox"===d?(0,n.Ltv)(c.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id='${e}']`);g.insertMarkers(y,O),h=new a.T({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:O.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let u=R(y,o.db.getEntities(),h),p=((l=o.db.getRelationships()).forEach(function(t){h.setEdge(b.get(t.entityA),b.get(t.entityB),{relationship:t},T(t))}),l);(0,s.Zp)(h),N(y,h),p.forEach(function(t){A(y,t,h,u,o)});let _=O.diagramPadding;i.u.insertTitle(y,"entityTitleText",O.titleTopMargin,o.db.getDiagramTitle());let f=y.node().getBBox(),E=f.width+2*_,m=f.height+2*_;(0,i.i)(y,m,E,O.useMaxWidth),y.attr("viewBox",`${f.x-_} ${f.y-_} ${E} ${m}`)}},styles:t=>` - .entityBox { - fill: ${t.mainBkg}; - stroke: ${t.nodeBorder}; - } - - .attributeBoxOdd { - fill: ${t.attributeBackgroundColorOdd}; - stroke: ${t.nodeBorder}; - } - - .attributeBoxEven { - fill: ${t.attributeBackgroundColorEven}; - stroke: ${t.nodeBorder}; - } - - .relationshipLabelBox { - fill: ${t.tertiaryColor}; - opacity: 0.7; - background-color: ${t.tertiaryColor}; - rect { - opacity: 0.5; - } - } - - .relationshipLine { - stroke: ${t.lineColor}; - } - - .entityTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${t.textColor}; - } - #MD_PARENT_START { - fill: #f5f5f5 !important; - stroke: ${t.lineColor} !important; - stroke-width: 1; - } - #MD_PARENT_END { - fill: #f5f5f5 !important; - stroke: ${t.lineColor} !important; - stroke-width: 1; - } - -`}}}]); \ No newline at end of file diff --git a/assets/js/771ca8b2.3c446507.js b/assets/js/771ca8b2.3c446507.js deleted file mode 100644 index af5a3c887d..0000000000 --- a/assets/js/771ca8b2.3c446507.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[93278],{35075:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>d,default:()=>x,frontMatter:()=>l,metadata:()=>n,toc:()=>r});let n=JSON.parse('{"id":"toc/toc-2-4","title":"toc-2-4","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-2-4.mdx","sourceDirName":"toc","slug":"/toc/toc-2-4","permalink":"/tests/docs/toc/toc-2-4","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":4},"sidebar":"sidebar","previous":{"title":"toc-2-3","permalink":"/tests/docs/toc/toc-2-3"},"next":{"title":"toc-2-5","permalink":"/tests/docs/toc/toc-2-5"}}');var i=t(62540),c=t(43023),o=t(25128);let l={toc_min_heading_level:2,toc_max_heading_level:4},d=void 0,u={},r=[...o.RM];function h(e){return(0,i.jsx)(o.Ay,{})}function x(e={}){let{wrapper:s}={...(0,c.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}x.displayName="MDXContent(_dogfooding/_docs tests/toc/toc-2-4.mdx)"},25128:(e,s,t)=>{t.d(s,{Ay:()=>l,RM:()=>c});var n=t(62540),i=t(43023);let c=[{value:"section 1",id:"section-1",level:2},{value:"subsection 1-1",id:"subsection-1-1",level:3},{value:"subsection 1-1-1",id:"subsection-1-1-1",level:4},{value:"subsection 1-1-1-1",id:"subsection-1-1-1-1",level:5},{value:"subsection 1-1-1-1-1",id:"subsection-1-1-1-1-1",level:6},{value:"subsection 1-1-1-1-2",id:"subsection-1-1-1-1-2",level:6},{value:"subsection 1-1-1-2",id:"subsection-1-1-1-2",level:5},{value:"subsection 1-1-2",id:"subsection-1-1-2",level:4},{value:"subsection 1-2",id:"subsection-1-2",level:3},{value:"subsection 1-3",id:"subsection-1-3",level:3},{value:"section 2",id:"section-2",level:2},{value:"subsection 2-1",id:"subsection-2-1",level:3},{value:"subsection 2-1",id:"subsection-2-1-1",level:3},{value:"section 3",id:"section-3",level:2},{value:"subsection 3-1",id:"subsection-3-1",level:3},{value:"subsection 3-2",id:"subsection-3-2",level:3}];function o(e){let s={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"title",children:"title"})}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-1",children:"section 1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-1",children:"subsection 1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-1",children:"subsection 1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-1",children:"subsection 1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-1",children:"subsection 1-1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-2",children:"subsection 1-1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-2",children:"subsection 1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-2",children:"subsection 1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-2",children:"subsection 1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-3",children:"subsection 1-3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-2",children:"section 2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-3",children:"section 3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-1",children:"subsection 3-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-2",children:"subsection 3-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"})]})}function l(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>l});var n=t(63696);let i={},c=n.createContext(i);function o(e){let s=n.useContext(c);return n.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),n.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/771ca8b2.56dd8043.js b/assets/js/771ca8b2.56dd8043.js new file mode 100644 index 0000000000..7256e0d32f --- /dev/null +++ b/assets/js/771ca8b2.56dd8043.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[93278],{35075:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>u,contentTitle:()=>d,default:()=>x,frontMatter:()=>l,metadata:()=>n,toc:()=>r});let n=JSON.parse('{"id":"toc/toc-2-4","title":"toc-2-4","description":"","source":"@site/_dogfooding/_docs tests/toc/toc-2-4.mdx","sourceDirName":"toc","slug":"/toc/toc-2-4","permalink":"/tests/docs/toc/toc-2-4","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":4},"sidebar":"sidebar","previous":{"title":"toc-2-3","permalink":"/tests/docs/toc/toc-2-3"},"next":{"title":"toc-2-5","permalink":"/tests/docs/toc/toc-2-5"}}');var i=t(62540),c=t(43023),o=t(25128);let l={toc_min_heading_level:2,toc_max_heading_level:4},d=void 0,u={},r=[...o.RM];function h(e){return(0,i.jsx)(o.Ay,{})}function x(e={}){let{wrapper:s}={...(0,c.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}x.displayName="MDXContent(_dogfooding/_docs tests/toc/toc-2-4.mdx)"},25128:(e,s,t)=>{t.d(s,{Ay:()=>l,RM:()=>c});var n=t(62540),i=t(43023);let c=[{value:"section 1",id:"section-1",level:2},{value:"subsection 1-1",id:"subsection-1-1",level:3},{value:"subsection 1-1-1",id:"subsection-1-1-1",level:4},{value:"subsection 1-1-1-1",id:"subsection-1-1-1-1",level:5},{value:"subsection 1-1-1-1-1",id:"subsection-1-1-1-1-1",level:6},{value:"subsection 1-1-1-1-2",id:"subsection-1-1-1-1-2",level:6},{value:"subsection 1-1-1-2",id:"subsection-1-1-1-2",level:5},{value:"subsection 1-1-2",id:"subsection-1-1-2",level:4},{value:"subsection 1-2",id:"subsection-1-2",level:3},{value:"subsection 1-3",id:"subsection-1-3",level:3},{value:"section 2",id:"section-2",level:2},{value:"subsection 2-1",id:"subsection-2-1",level:3},{value:"subsection 2-1",id:"subsection-2-1-1",level:3},{value:"section 3",id:"section-3",level:2},{value:"subsection 3-1",id:"subsection-3-1",level:3},{value:"subsection 3-2",id:"subsection-3-2",level:3}];function o(e){let s={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"title",children:"title"})}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-1",children:"section 1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-1",children:"subsection 1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-1",children:"subsection 1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-1",children:"subsection 1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-1",children:"subsection 1-1-1-1-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h6,{id:"subsection-1-1-1-1-2",children:"subsection 1-1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h5,{id:"subsection-1-1-1-2",children:"subsection 1-1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h4,{id:"subsection-1-1-2",children:"subsection 1-1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-2",children:"subsection 1-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-1-3",children:"subsection 1-3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-2",children:"section 2"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-2-1-1",children:"subsection 2-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h2,{id:"section-3",children:"section 3"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-1",children:"subsection 3-1"}),"\n",(0,n.jsx)(s.p,{children:"some text"}),"\n",(0,n.jsx)(s.h3,{id:"subsection-3-2",children:"subsection 3-2"}),"\n",(0,n.jsx)(s.p,{children:"some text"})]})}function l(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},43023:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>l});var n=t(63696);let i={},c=n.createContext(i);function o(e){let s=n.useContext(c);return n.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),n.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7720.c5ee522f.js b/assets/js/7720.c5ee522f.js deleted file mode 100644 index 77f400929a..0000000000 --- a/assets/js/7720.c5ee522f.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7720],{7720:(t,e,i)=>{i.d(e,{diagram:()=>$});var a,n=i(17367),r=i(93126),s=i(12441),l=i(31546);i(95285),i(31234);var o=function(){var t=function(t,e,i,a){for(i=i||{},a=t.length;a--;i[t[a]]=e);return i},e=[1,6],i=[1,7],a=[1,8],n=[1,9],r=[1,16],s=[1,11],l=[1,12],o=[1,13],h=[1,14],d=[1,15],p=[1,27],u=[1,33],y=[1,34],b=[1,35],f=[1,36],g=[1,37],_=[1,72],x=[1,73],m=[1,74],E=[1,75],A=[1,76],S=[1,77],v=[1,78],C=[1,38],k=[1,39],O=[1,40],w=[1,41],T=[1,42],D=[1,43],R=[1,44],N=[1,45],P=[1,46],M=[1,47],j=[1,48],B=[1,49],L=[1,50],Y=[1,51],I=[1,52],U=[1,53],F=[1,54],X=[1,55],z=[1,56],Q=[1,57],W=[1,59],$=[1,60],q=[1,61],V=[1,62],H=[1,63],G=[1,64],K=[1,65],J=[1,66],Z=[1,67],tt=[1,68],te=[1,69],ti=[24,52],ta=[24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],tn=[15,24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],tr=[1,94],ts=[1,95],tl=[1,96],to=[1,97],tc=[15,24,52],th=[7,8,9,10,18,22,25,26,27,28],td=[15,24,43,52],tp=[15,24,43,52,86,87,89,90],tu=[15,43],ty=[44,46,47,48,49,50,51,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],tb={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,directive:6,direction_tb:7,direction_bt:8,direction_rl:9,direction_lr:10,graphConfig:11,openDirective:12,typeDirective:13,closeDirective:14,NEWLINE:15,":":16,argDirective:17,open_directive:18,type_directive:19,arg_directive:20,close_directive:21,C4_CONTEXT:22,statements:23,EOF:24,C4_CONTAINER:25,C4_COMPONENT:26,C4_DYNAMIC:27,C4_DEPLOYMENT:28,otherStatements:29,diagramStatements:30,otherStatement:31,title:32,accDescription:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,boundaryStatement:39,boundaryStartStatement:40,boundaryStopStatement:41,boundaryStart:42,LBRACE:43,ENTERPRISE_BOUNDARY:44,attributes:45,SYSTEM_BOUNDARY:46,BOUNDARY:47,CONTAINER_BOUNDARY:48,NODE:49,NODE_L:50,NODE_R:51,RBRACE:52,diagramStatement:53,PERSON:54,PERSON_EXT:55,SYSTEM:56,SYSTEM_DB:57,SYSTEM_QUEUE:58,SYSTEM_EXT:59,SYSTEM_EXT_DB:60,SYSTEM_EXT_QUEUE:61,CONTAINER:62,CONTAINER_DB:63,CONTAINER_QUEUE:64,CONTAINER_EXT:65,CONTAINER_EXT_DB:66,CONTAINER_EXT_QUEUE:67,COMPONENT:68,COMPONENT_DB:69,COMPONENT_QUEUE:70,COMPONENT_EXT:71,COMPONENT_EXT_DB:72,COMPONENT_EXT_QUEUE:73,REL:74,BIREL:75,REL_U:76,REL_D:77,REL_L:78,REL_R:79,REL_B:80,REL_INDEX:81,UPDATE_EL_STYLE:82,UPDATE_REL_STYLE:83,UPDATE_LAYOUT_CONFIG:84,attribute:85,STR:86,STR_KEY:87,STR_VALUE:88,ATTRIBUTE:89,ATTRIBUTE_EMPTY:90,$accept:0,$end:1},terminals_:{2:"error",7:"direction_tb",8:"direction_bt",9:"direction_rl",10:"direction_lr",15:"NEWLINE",16:":",18:"open_directive",19:"type_directive",20:"arg_directive",21:"close_directive",22:"C4_CONTEXT",24:"EOF",25:"C4_CONTAINER",26:"C4_COMPONENT",27:"C4_DYNAMIC",28:"C4_DEPLOYMENT",32:"title",33:"accDescription",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",43:"LBRACE",44:"ENTERPRISE_BOUNDARY",46:"SYSTEM_BOUNDARY",47:"BOUNDARY",48:"CONTAINER_BOUNDARY",49:"NODE",50:"NODE_L",51:"NODE_R",52:"RBRACE",54:"PERSON",55:"PERSON_EXT",56:"SYSTEM",57:"SYSTEM_DB",58:"SYSTEM_QUEUE",59:"SYSTEM_EXT",60:"SYSTEM_EXT_DB",61:"SYSTEM_EXT_QUEUE",62:"CONTAINER",63:"CONTAINER_DB",64:"CONTAINER_QUEUE",65:"CONTAINER_EXT",66:"CONTAINER_EXT_DB",67:"CONTAINER_EXT_QUEUE",68:"COMPONENT",69:"COMPONENT_DB",70:"COMPONENT_QUEUE",71:"COMPONENT_EXT",72:"COMPONENT_EXT_DB",73:"COMPONENT_EXT_QUEUE",74:"REL",75:"BIREL",76:"REL_U",77:"REL_D",78:"REL_L",79:"REL_R",80:"REL_B",81:"REL_INDEX",82:"UPDATE_EL_STYLE",83:"UPDATE_REL_STYLE",84:"UPDATE_LAYOUT_CONFIG",86:"STR",87:"STR_KEY",88:"STR_VALUE",89:"ATTRIBUTE",90:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[3,2],[5,1],[5,1],[5,1],[5,1],[4,1],[6,4],[6,6],[12,1],[13,1],[17,1],[14,1],[11,4],[11,4],[11,4],[11,4],[11,4],[23,1],[23,1],[23,2],[29,1],[29,2],[29,3],[31,1],[31,1],[31,2],[31,2],[31,1],[39,3],[40,3],[40,3],[40,4],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[41,1],[30,1],[30,2],[30,3],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,1],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[45,1],[45,2],[85,1],[85,2],[85,1],[85,1]],performAction:function(t,e,i,a,n,r,s){var l=r.length-1;switch(n){case 4:a.setDirection("TB");break;case 5:a.setDirection("BT");break;case 6:a.setDirection("RL");break;case 7:a.setDirection("LR");break;case 11:a.parseDirective("%%{","open_directive");break;case 12:break;case 13:r[l]=r[l].trim().replace(/'/g,'"'),a.parseDirective(r[l],"arg_directive");break;case 14:a.parseDirective("}%%","close_directive","c4Context");break;case 15:case 16:case 17:case 18:case 19:a.setC4Type(r[l-3]);break;case 26:a.setTitle(r[l].substring(6)),this.$=r[l].substring(6);break;case 27:a.setAccDescription(r[l].substring(15)),this.$=r[l].substring(15);break;case 28:this.$=r[l].trim(),a.setTitle(this.$);break;case 29:case 30:this.$=r[l].trim(),a.setAccDescription(this.$);break;case 35:case 36:r[l].splice(2,0,"ENTERPRISE"),a.addPersonOrSystemBoundary(...r[l]),this.$=r[l];break;case 37:a.addPersonOrSystemBoundary(...r[l]),this.$=r[l];break;case 38:r[l].splice(2,0,"CONTAINER"),a.addContainerBoundary(...r[l]),this.$=r[l];break;case 39:a.addDeploymentNode("node",...r[l]),this.$=r[l];break;case 40:a.addDeploymentNode("nodeL",...r[l]),this.$=r[l];break;case 41:a.addDeploymentNode("nodeR",...r[l]),this.$=r[l];break;case 42:a.popBoundaryParseStack();break;case 46:a.addPersonOrSystem("person",...r[l]),this.$=r[l];break;case 47:a.addPersonOrSystem("external_person",...r[l]),this.$=r[l];break;case 48:a.addPersonOrSystem("system",...r[l]),this.$=r[l];break;case 49:a.addPersonOrSystem("system_db",...r[l]),this.$=r[l];break;case 50:a.addPersonOrSystem("system_queue",...r[l]),this.$=r[l];break;case 51:a.addPersonOrSystem("external_system",...r[l]),this.$=r[l];break;case 52:a.addPersonOrSystem("external_system_db",...r[l]),this.$=r[l];break;case 53:a.addPersonOrSystem("external_system_queue",...r[l]),this.$=r[l];break;case 54:a.addContainer("container",...r[l]),this.$=r[l];break;case 55:a.addContainer("container_db",...r[l]),this.$=r[l];break;case 56:a.addContainer("container_queue",...r[l]),this.$=r[l];break;case 57:a.addContainer("external_container",...r[l]),this.$=r[l];break;case 58:a.addContainer("external_container_db",...r[l]),this.$=r[l];break;case 59:a.addContainer("external_container_queue",...r[l]),this.$=r[l];break;case 60:a.addComponent("component",...r[l]),this.$=r[l];break;case 61:a.addComponent("component_db",...r[l]),this.$=r[l];break;case 62:a.addComponent("component_queue",...r[l]),this.$=r[l];break;case 63:a.addComponent("external_component",...r[l]),this.$=r[l];break;case 64:a.addComponent("external_component_db",...r[l]),this.$=r[l];break;case 65:a.addComponent("external_component_queue",...r[l]),this.$=r[l];break;case 67:a.addRel("rel",...r[l]),this.$=r[l];break;case 68:a.addRel("birel",...r[l]),this.$=r[l];break;case 69:a.addRel("rel_u",...r[l]),this.$=r[l];break;case 70:a.addRel("rel_d",...r[l]),this.$=r[l];break;case 71:a.addRel("rel_l",...r[l]),this.$=r[l];break;case 72:a.addRel("rel_r",...r[l]),this.$=r[l];break;case 73:a.addRel("rel_b",...r[l]),this.$=r[l];break;case 74:r[l].splice(0,1),a.addRel("rel",...r[l]),this.$=r[l];break;case 75:a.updateElStyle("update_el_style",...r[l]),this.$=r[l];break;case 76:a.updateRelStyle("update_rel_style",...r[l]),this.$=r[l];break;case 77:a.updateLayoutConfig("update_layout_config",...r[l]),this.$=r[l];break;case 78:this.$=[r[l]];break;case 79:r[l].unshift(r[l-1]),this.$=r[l];break;case 80:case 82:this.$=r[l].trim();break;case 81:let o={};o[r[l-1].trim()]=r[l].trim(),this.$=o;break;case 83:this.$=""}},table:[{3:1,4:2,5:3,6:4,7:e,8:i,9:a,10:n,11:5,12:10,18:r,22:s,25:l,26:o,27:h,28:d},{1:[3]},{1:[2,1]},{1:[2,2]},{3:17,4:2,5:3,6:4,7:e,8:i,9:a,10:n,11:5,12:10,18:r,22:s,25:l,26:o,27:h,28:d},{1:[2,8]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{1:[2,7]},{13:18,19:[1,19]},{15:[1,20]},{15:[1,21]},{15:[1,22]},{15:[1,23]},{15:[1,24]},{19:[2,11]},{1:[2,3]},{14:25,16:[1,26],21:p},t([16,21],[2,12]),{23:28,29:29,30:30,31:31,32:u,33:y,34:b,36:f,38:g,39:58,40:70,42:71,44:_,46:x,47:m,48:E,49:A,50:S,51:v,53:32,54:C,55:k,56:O,57:w,58:T,59:D,60:R,61:N,62:P,63:M,64:j,65:B,66:L,67:Y,68:I,69:U,70:F,71:X,72:z,73:Q,74:W,75:$,76:q,77:V,78:H,79:G,80:K,81:J,82:Z,83:tt,84:te},{23:79,29:29,30:30,31:31,32:u,33:y,34:b,36:f,38:g,39:58,40:70,42:71,44:_,46:x,47:m,48:E,49:A,50:S,51:v,53:32,54:C,55:k,56:O,57:w,58:T,59:D,60:R,61:N,62:P,63:M,64:j,65:B,66:L,67:Y,68:I,69:U,70:F,71:X,72:z,73:Q,74:W,75:$,76:q,77:V,78:H,79:G,80:K,81:J,82:Z,83:tt,84:te},{23:80,29:29,30:30,31:31,32:u,33:y,34:b,36:f,38:g,39:58,40:70,42:71,44:_,46:x,47:m,48:E,49:A,50:S,51:v,53:32,54:C,55:k,56:O,57:w,58:T,59:D,60:R,61:N,62:P,63:M,64:j,65:B,66:L,67:Y,68:I,69:U,70:F,71:X,72:z,73:Q,74:W,75:$,76:q,77:V,78:H,79:G,80:K,81:J,82:Z,83:tt,84:te},{23:81,29:29,30:30,31:31,32:u,33:y,34:b,36:f,38:g,39:58,40:70,42:71,44:_,46:x,47:m,48:E,49:A,50:S,51:v,53:32,54:C,55:k,56:O,57:w,58:T,59:D,60:R,61:N,62:P,63:M,64:j,65:B,66:L,67:Y,68:I,69:U,70:F,71:X,72:z,73:Q,74:W,75:$,76:q,77:V,78:H,79:G,80:K,81:J,82:Z,83:tt,84:te},{23:82,29:29,30:30,31:31,32:u,33:y,34:b,36:f,38:g,39:58,40:70,42:71,44:_,46:x,47:m,48:E,49:A,50:S,51:v,53:32,54:C,55:k,56:O,57:w,58:T,59:D,60:R,61:N,62:P,63:M,64:j,65:B,66:L,67:Y,68:I,69:U,70:F,71:X,72:z,73:Q,74:W,75:$,76:q,77:V,78:H,79:G,80:K,81:J,82:Z,83:tt,84:te},{15:[1,83]},{17:84,20:[1,85]},{15:[2,14]},{24:[1,86]},t(ti,[2,20],{53:32,39:58,40:70,42:71,30:87,44:_,46:x,47:m,48:E,49:A,50:S,51:v,54:C,55:k,56:O,57:w,58:T,59:D,60:R,61:N,62:P,63:M,64:j,65:B,66:L,67:Y,68:I,69:U,70:F,71:X,72:z,73:Q,74:W,75:$,76:q,77:V,78:H,79:G,80:K,81:J,82:Z,83:tt,84:te}),t(ti,[2,21]),t(ta,[2,23],{15:[1,88]}),t(ti,[2,43],{15:[1,89]}),t(tn,[2,26]),t(tn,[2,27]),{35:[1,90]},{37:[1,91]},t(tn,[2,30]),{45:92,85:93,86:tr,87:ts,89:tl,90:to},{45:98,85:93,86:tr,87:ts,89:tl,90:to},{45:99,85:93,86:tr,87:ts,89:tl,90:to},{45:100,85:93,86:tr,87:ts,89:tl,90:to},{45:101,85:93,86:tr,87:ts,89:tl,90:to},{45:102,85:93,86:tr,87:ts,89:tl,90:to},{45:103,85:93,86:tr,87:ts,89:tl,90:to},{45:104,85:93,86:tr,87:ts,89:tl,90:to},{45:105,85:93,86:tr,87:ts,89:tl,90:to},{45:106,85:93,86:tr,87:ts,89:tl,90:to},{45:107,85:93,86:tr,87:ts,89:tl,90:to},{45:108,85:93,86:tr,87:ts,89:tl,90:to},{45:109,85:93,86:tr,87:ts,89:tl,90:to},{45:110,85:93,86:tr,87:ts,89:tl,90:to},{45:111,85:93,86:tr,87:ts,89:tl,90:to},{45:112,85:93,86:tr,87:ts,89:tl,90:to},{45:113,85:93,86:tr,87:ts,89:tl,90:to},{45:114,85:93,86:tr,87:ts,89:tl,90:to},{45:115,85:93,86:tr,87:ts,89:tl,90:to},{45:116,85:93,86:tr,87:ts,89:tl,90:to},t(tc,[2,66]),{45:117,85:93,86:tr,87:ts,89:tl,90:to},{45:118,85:93,86:tr,87:ts,89:tl,90:to},{45:119,85:93,86:tr,87:ts,89:tl,90:to},{45:120,85:93,86:tr,87:ts,89:tl,90:to},{45:121,85:93,86:tr,87:ts,89:tl,90:to},{45:122,85:93,86:tr,87:ts,89:tl,90:to},{45:123,85:93,86:tr,87:ts,89:tl,90:to},{45:124,85:93,86:tr,87:ts,89:tl,90:to},{45:125,85:93,86:tr,87:ts,89:tl,90:to},{45:126,85:93,86:tr,87:ts,89:tl,90:to},{45:127,85:93,86:tr,87:ts,89:tl,90:to},{30:128,39:58,40:70,42:71,44:_,46:x,47:m,48:E,49:A,50:S,51:v,53:32,54:C,55:k,56:O,57:w,58:T,59:D,60:R,61:N,62:P,63:M,64:j,65:B,66:L,67:Y,68:I,69:U,70:F,71:X,72:z,73:Q,74:W,75:$,76:q,77:V,78:H,79:G,80:K,81:J,82:Z,83:tt,84:te},{15:[1,130],43:[1,129]},{45:131,85:93,86:tr,87:ts,89:tl,90:to},{45:132,85:93,86:tr,87:ts,89:tl,90:to},{45:133,85:93,86:tr,87:ts,89:tl,90:to},{45:134,85:93,86:tr,87:ts,89:tl,90:to},{45:135,85:93,86:tr,87:ts,89:tl,90:to},{45:136,85:93,86:tr,87:ts,89:tl,90:to},{45:137,85:93,86:tr,87:ts,89:tl,90:to},{24:[1,138]},{24:[1,139]},{24:[1,140]},{24:[1,141]},t(th,[2,9]),{14:142,21:p},{21:[2,13]},{1:[2,15]},t(ti,[2,22]),t(ta,[2,24],{31:31,29:143,32:u,33:y,34:b,36:f,38:g}),t(ti,[2,44],{29:29,30:30,31:31,53:32,39:58,40:70,42:71,23:144,32:u,33:y,34:b,36:f,38:g,44:_,46:x,47:m,48:E,49:A,50:S,51:v,54:C,55:k,56:O,57:w,58:T,59:D,60:R,61:N,62:P,63:M,64:j,65:B,66:L,67:Y,68:I,69:U,70:F,71:X,72:z,73:Q,74:W,75:$,76:q,77:V,78:H,79:G,80:K,81:J,82:Z,83:tt,84:te}),t(tn,[2,28]),t(tn,[2,29]),t(tc,[2,46]),t(td,[2,78],{85:93,45:145,86:tr,87:ts,89:tl,90:to}),t(tp,[2,80]),{88:[1,146]},t(tp,[2,82]),t(tp,[2,83]),t(tc,[2,47]),t(tc,[2,48]),t(tc,[2,49]),t(tc,[2,50]),t(tc,[2,51]),t(tc,[2,52]),t(tc,[2,53]),t(tc,[2,54]),t(tc,[2,55]),t(tc,[2,56]),t(tc,[2,57]),t(tc,[2,58]),t(tc,[2,59]),t(tc,[2,60]),t(tc,[2,61]),t(tc,[2,62]),t(tc,[2,63]),t(tc,[2,64]),t(tc,[2,65]),t(tc,[2,67]),t(tc,[2,68]),t(tc,[2,69]),t(tc,[2,70]),t(tc,[2,71]),t(tc,[2,72]),t(tc,[2,73]),t(tc,[2,74]),t(tc,[2,75]),t(tc,[2,76]),t(tc,[2,77]),{41:147,52:[1,148]},{15:[1,149]},{43:[1,150]},t(tu,[2,35]),t(tu,[2,36]),t(tu,[2,37]),t(tu,[2,38]),t(tu,[2,39]),t(tu,[2,40]),t(tu,[2,41]),{1:[2,16]},{1:[2,17]},{1:[2,18]},{1:[2,19]},{15:[1,151]},t(ta,[2,25]),t(ti,[2,45]),t(td,[2,79]),t(tp,[2,81]),t(tc,[2,31]),t(tc,[2,42]),t(ty,[2,32]),t(ty,[2,33],{15:[1,152]}),t(th,[2,10]),t(ty,[2,34])],defaultActions:{2:[2,1],3:[2,2],5:[2,8],6:[2,4],7:[2,5],8:[2,6],9:[2,7],16:[2,11],17:[2,3],27:[2,14],85:[2,13],86:[2,15],138:[2,16],139:[2,17],140:[2,18],141:[2,19]},parseError:function(t,e){if(e.recoverable)this.trace(t);else{var i=Error(t);throw i.hash=e,i}},parse:function(t){var e=this,i=[0],a=[],n=[null],r=[],s=this.table,l="",o=0,h=0,d=r.slice.call(arguments,1),p=Object.create(this.lexer),u={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(u.yy[y]=this.yy[y]);p.setInput(t,u.yy),u.yy.lexer=p,u.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var b=p.yylloc;r.push(b);var f=p.options&&p.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,_,x,m,E,A,S,v,C={};;){if(_=i[i.length-1],this.defaultActions[_]?x=this.defaultActions[_]:(null==g&&(g=function(){var t;return"number"!=typeof(t=a.pop()||p.lex()||1)&&(t instanceof Array&&(t=(a=t).pop()),t=e.symbols_[t]||t),t}()),x=s[_]&&s[_][g]),void 0===x||!x.length||!x[0]){var k="";for(E in v=[],s[_])this.terminals_[E]&&E>2&&v.push("'"+this.terminals_[E]+"'");k=p.showPosition?"Parse error on line "+(o+1)+":\n"+p.showPosition()+"\nExpecting "+v.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==g?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(k,{text:p.match,token:this.terminals_[g]||g,line:p.yylineno,loc:b,expected:v})}if(x[0]instanceof Array&&x.length>1)throw Error("Parse Error: multiple actions possible at state: "+_+", token: "+g);switch(x[0]){case 1:i.push(g),n.push(p.yytext),r.push(p.yylloc),i.push(x[1]),g=null,h=p.yyleng,l=p.yytext,o=p.yylineno,b=p.yylloc;break;case 2:if(A=this.productions_[x[1]][1],C.$=n[n.length-A],C._$={first_line:r[r.length-(A||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(A||1)].first_column,last_column:r[r.length-1].last_column},f&&(C._$.range=[r[r.length-(A||1)].range[0],r[r.length-1].range[1]]),void 0!==(m=this.performAction.apply(C,[l,h,o,u.yy,x[1],n,r].concat(d))))return m;A&&(i=i.slice(0,-1*A*2),n=n.slice(0,-1*A),r=r.slice(0,-1*A)),i.push(this.productions_[x[1]][0]),n.push(C.$),r.push(C._$),S=s[i[i.length-2]][i[i.length-1]],i.push(S);break;case 3:return!0}}return!0}};function tf(){this.yy={}}return tb.lexer={EOF:1,parseError:function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var a=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===a.length?this.yylloc.first_column:0)+a[a.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var i,a,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(a=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=a.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:a?a[a.length-1].length-a[a.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var r in n)this[r]=n[r];return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,i,a,n=this._currentRules(),r=0;r<n.length;r++)if((i=this._input.match(this.rules[n[r]]))&&(!e||i[0].length>e[0].length)){if(e=i,a=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,n[r])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[a]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,i,a){switch(i){case 0:return this.begin("open_directive"),18;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 10;case 5:return this.begin("type_directive"),19;case 6:return this.popState(),this.begin("arg_directive"),16;case 7:return this.popState(),this.popState(),21;case 8:return 20;case 9:return 32;case 10:return 33;case 11:return this.begin("acc_title"),34;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),36;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:case 78:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:case 21:case 75:break;case 19:c;break;case 20:return 15;case 22:return 22;case 23:return 25;case 24:return 26;case 25:return 27;case 26:return 28;case 27:return this.begin("person_ext"),55;case 28:return this.begin("person"),54;case 29:return this.begin("system_ext_queue"),61;case 30:return this.begin("system_ext_db"),60;case 31:return this.begin("system_ext"),59;case 32:return this.begin("system_queue"),58;case 33:return this.begin("system_db"),57;case 34:return this.begin("system"),56;case 35:return this.begin("boundary"),47;case 36:return this.begin("enterprise_boundary"),44;case 37:return this.begin("system_boundary"),46;case 38:return this.begin("container_ext_queue"),67;case 39:return this.begin("container_ext_db"),66;case 40:return this.begin("container_ext"),65;case 41:return this.begin("container_queue"),64;case 42:return this.begin("container_db"),63;case 43:return this.begin("container"),62;case 44:return this.begin("container_boundary"),48;case 45:return this.begin("component_ext_queue"),73;case 46:return this.begin("component_ext_db"),72;case 47:return this.begin("component_ext"),71;case 48:return this.begin("component_queue"),70;case 49:return this.begin("component_db"),69;case 50:return this.begin("component"),68;case 51:case 52:return this.begin("node"),49;case 53:return this.begin("node_l"),50;case 54:return this.begin("node_r"),51;case 55:return this.begin("rel"),74;case 56:return this.begin("birel"),75;case 57:case 58:return this.begin("rel_u"),76;case 59:case 60:return this.begin("rel_d"),77;case 61:case 62:return this.begin("rel_l"),78;case 63:case 64:return this.begin("rel_r"),79;case 65:return this.begin("rel_b"),80;case 66:return this.begin("rel_index"),81;case 67:return this.begin("update_el_style"),82;case 68:return this.begin("update_rel_style"),83;case 69:return this.begin("update_layout_config"),84;case 70:return"EOF_IN_STRUCT";case 71:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 72:this.begin("attribute");break;case 73:case 84:this.popState(),this.popState();break;case 74:case 76:return 90;case 77:this.begin("string");break;case 79:case 85:return"STR";case 80:this.begin("string_kv");break;case 81:return this.begin("string_kv_key"),"STR_KEY";case 82:this.popState(),this.begin("string_kv_value");break;case 83:return"STR_VALUE";case 86:return"LBRACE";case 87:return"RBRACE";case 88:return"SPACE";case 89:return"EOL";case 90:return 24}},rules:[/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[16,17],inclusive:!1},acc_descr:{rules:[14],inclusive:!1},acc_title:{rules:[12],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[7,8],inclusive:!1},type_directive:{rules:[6,7],inclusive:!1},open_directive:{rules:[5],inclusive:!1},string_kv_value:{rules:[83,84],inclusive:!1},string_kv_key:{rules:[82],inclusive:!1},string_kv:{rules:[81],inclusive:!1},string:{rules:[78,79],inclusive:!1},attribute:{rules:[73,74,75,76,77,80,85],inclusive:!1},update_layout_config:{rules:[70,71,72,73],inclusive:!1},update_rel_style:{rules:[70,71,72,73],inclusive:!1},update_el_style:{rules:[70,71,72,73],inclusive:!1},rel_b:{rules:[70,71,72,73],inclusive:!1},rel_r:{rules:[70,71,72,73],inclusive:!1},rel_l:{rules:[70,71,72,73],inclusive:!1},rel_d:{rules:[70,71,72,73],inclusive:!1},rel_u:{rules:[70,71,72,73],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[70,71,72,73],inclusive:!1},node_r:{rules:[70,71,72,73],inclusive:!1},node_l:{rules:[70,71,72,73],inclusive:!1},node:{rules:[70,71,72,73],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[70,71,72,73],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[70,71,72,73],inclusive:!1},component_ext:{rules:[70,71,72,73],inclusive:!1},component_queue:{rules:[70,71,72,73],inclusive:!1},component_db:{rules:[70,71,72,73],inclusive:!1},component:{rules:[70,71,72,73],inclusive:!1},container_boundary:{rules:[70,71,72,73],inclusive:!1},container_ext_queue:{rules:[70,71,72,73],inclusive:!1},container_ext_db:{rules:[70,71,72,73],inclusive:!1},container_ext:{rules:[70,71,72,73],inclusive:!1},container_queue:{rules:[70,71,72,73],inclusive:!1},container_db:{rules:[70,71,72,73],inclusive:!1},container:{rules:[70,71,72,73],inclusive:!1},birel:{rules:[70,71,72,73],inclusive:!1},system_boundary:{rules:[70,71,72,73],inclusive:!1},enterprise_boundary:{rules:[70,71,72,73],inclusive:!1},boundary:{rules:[70,71,72,73],inclusive:!1},system_ext_queue:{rules:[70,71,72,73],inclusive:!1},system_ext_db:{rules:[70,71,72,73],inclusive:!1},system_ext:{rules:[70,71,72,73],inclusive:!1},system_queue:{rules:[70,71,72,73],inclusive:!1},system_db:{rules:[70,71,72,73],inclusive:!1},system:{rules:[70,71,72,73],inclusive:!1},person_ext:{rules:[70,71,72,73],inclusive:!1},person:{rules:[70,71,72,73],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,86,87,88,89,90],inclusive:!0}}},tf.prototype=tb,tb.Parser=tf,new tf}();o.parser=o;let h=[],d=[""],p="global",u="",y=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],b=[],f="",g=!1,_=4,x=2,m=function(t){return null==t?h:h.filter(e=>e.parentBoundary===t)},E=function(){return g},A={addPersonOrSystem:function(t,e,i,a,n,r,s){if(null===e||null===i)return;let l={},o=h.find(t=>t.alias===e);if(o&&e===o.alias?l=o:(l.alias=e,h.push(l)),null==i?l.label={text:""}:l.label={text:i},null==a)l.descr={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];l[t]={text:e}}else l.descr={text:a};if("object"==typeof n){let[t,e]=Object.entries(n)[0];l[t]=e}else l.sprite=n;if("object"==typeof r){let[t,e]=Object.entries(r)[0];l[t]=e}else l.tags=r;if("object"==typeof s){let[t,e]=Object.entries(s)[0];l[t]=e}else l.link=s;l.typeC4Shape={text:t},l.parentBoundary=p,l.wrap=E()},addPersonOrSystemBoundary:function(t,e,i,a,n){if(null===t||null===e)return;let r={},s=y.find(e=>e.alias===t);if(s&&t===s.alias?r=s:(r.alias=t,y.push(r)),null==e?r.label={text:""}:r.label={text:e},null==i)r.type={text:"system"};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];r[t]={text:e}}else r.type={text:i};if("object"==typeof a){let[t,e]=Object.entries(a)[0];r[t]=e}else r.tags=a;if("object"==typeof n){let[t,e]=Object.entries(n)[0];r[t]=e}else r.link=n;r.parentBoundary=p,r.wrap=E(),u=p,p=t,d.push(u)},addContainer:function(t,e,i,a,n,r,s,l){if(null===e||null===i)return;let o={},d=h.find(t=>t.alias===e);if(d&&e===d.alias?o=d:(o.alias=e,h.push(o)),null==i?o.label={text:""}:o.label={text:i},null==a)o.techn={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];o[t]={text:e}}else o.techn={text:a};if(null==n)o.descr={text:""};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];o[t]={text:e}}else o.descr={text:n};if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=e}else o.sprite=r;if("object"==typeof s){let[t,e]=Object.entries(s)[0];o[t]=e}else o.tags=s;if("object"==typeof l){let[t,e]=Object.entries(l)[0];o[t]=e}else o.link=l;o.wrap=E(),o.typeC4Shape={text:t},o.parentBoundary=p},addContainerBoundary:function(t,e,i,a,n){if(null===t||null===e)return;let r={},s=y.find(e=>e.alias===t);if(s&&t===s.alias?r=s:(r.alias=t,y.push(r)),null==e?r.label={text:""}:r.label={text:e},null==i)r.type={text:"container"};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];r[t]={text:e}}else r.type={text:i};if("object"==typeof a){let[t,e]=Object.entries(a)[0];r[t]=e}else r.tags=a;if("object"==typeof n){let[t,e]=Object.entries(n)[0];r[t]=e}else r.link=n;r.parentBoundary=p,r.wrap=E(),u=p,p=t,d.push(u)},addComponent:function(t,e,i,a,n,r,s,l){if(null===e||null===i)return;let o={},d=h.find(t=>t.alias===e);if(d&&e===d.alias?o=d:(o.alias=e,h.push(o)),null==i?o.label={text:""}:o.label={text:i},null==a)o.techn={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];o[t]={text:e}}else o.techn={text:a};if(null==n)o.descr={text:""};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];o[t]={text:e}}else o.descr={text:n};if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=e}else o.sprite=r;if("object"==typeof s){let[t,e]=Object.entries(s)[0];o[t]=e}else o.tags=s;if("object"==typeof l){let[t,e]=Object.entries(l)[0];o[t]=e}else o.link=l;o.wrap=E(),o.typeC4Shape={text:t},o.parentBoundary=p},addDeploymentNode:function(t,e,i,a,n,r,s,l){if(null===e||null===i)return;let o={},h=y.find(t=>t.alias===e);if(h&&e===h.alias?o=h:(o.alias=e,y.push(o)),null==i?o.label={text:""}:o.label={text:i},null==a)o.type={text:"node"};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];o[t]={text:e}}else o.type={text:a};if(null==n)o.descr={text:""};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];o[t]={text:e}}else o.descr={text:n};if("object"==typeof s){let[t,e]=Object.entries(s)[0];o[t]=e}else o.tags=s;if("object"==typeof l){let[t,e]=Object.entries(l)[0];o[t]=e}else o.link=l;o.nodeType=t,o.parentBoundary=p,o.wrap=E(),u=p,p=e,d.push(u)},popBoundaryParseStack:function(){p=u,d.pop(),u=d.pop(),d.push(u)},addRel:function(t,e,i,a,n,r,s,l,o){if(null==t||null==e||null==i||null==a)return;let h={},d=b.find(t=>t.from===e&&t.to===i);if(d?h=d:b.push(h),h.type=t,h.from=e,h.to=i,h.label={text:a},null==n)h.techn={text:""};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];h[t]={text:e}}else h.techn={text:n};if(null==r)h.descr={text:""};else if("object"==typeof r){let[t,e]=Object.entries(r)[0];h[t]={text:e}}else h.descr={text:r};if("object"==typeof s){let[t,e]=Object.entries(s)[0];h[t]=e}else h.sprite=s;if("object"==typeof l){let[t,e]=Object.entries(l)[0];h[t]=e}else h.tags=l;if("object"==typeof o){let[t,e]=Object.entries(o)[0];h[t]=e}else h.link=o;h.wrap=E()},updateElStyle:function(t,e,i,a,n,r,s,l,o,d,p){let u=h.find(t=>t.alias===e);if(void 0!==u||void 0!==(u=y.find(t=>t.alias===e))){if(null!=i){if("object"==typeof i){let[t,e]=Object.entries(i)[0];u[t]=e}else u.bgColor=i}if(null!=a){if("object"==typeof a){let[t,e]=Object.entries(a)[0];u[t]=e}else u.fontColor=a}if(null!=n){if("object"==typeof n){let[t,e]=Object.entries(n)[0];u[t]=e}else u.borderColor=n}if(null!=r){if("object"==typeof r){let[t,e]=Object.entries(r)[0];u[t]=e}else u.shadowing=r}if(null!=s){if("object"==typeof s){let[t,e]=Object.entries(s)[0];u[t]=e}else u.shape=s}if(null!=l){if("object"==typeof l){let[t,e]=Object.entries(l)[0];u[t]=e}else u.sprite=l}if(null!=o){if("object"==typeof o){let[t,e]=Object.entries(o)[0];u[t]=e}else u.techn=o}if(null!=d){if("object"==typeof d){let[t,e]=Object.entries(d)[0];u[t]=e}else u.legendText=d}if(null!=p){if("object"==typeof p){let[t,e]=Object.entries(p)[0];u[t]=e}else u.legendSprite=p}}},updateRelStyle:function(t,e,i,a,n,r,s){let l=b.find(t=>t.from===e&&t.to===i);if(void 0!==l){if(null!=a){if("object"==typeof a){let[t,e]=Object.entries(a)[0];l[t]=e}else l.textColor=a}if(null!=n){if("object"==typeof n){let[t,e]=Object.entries(n)[0];l[t]=e}else l.lineColor=n}if(null!=r){if("object"==typeof r){let[t,e]=Object.entries(r)[0];l[t]=parseInt(e)}else l.offsetX=parseInt(r)}if(null!=s){if("object"==typeof s){let[t,e]=Object.entries(s)[0];l[t]=parseInt(e)}else l.offsetY=parseInt(s)}}},updateLayoutConfig:function(t,e,i){let a=_,n=x;a="object"==typeof e?parseInt(Object.values(e)[0]):parseInt(e),n="object"==typeof i?parseInt(Object.values(i)[0]):parseInt(i),a>=1&&(_=a),n>=1&&(x=n)},autoWrap:E,setWrap:function(t){g=t},getC4ShapeArray:m,getC4Shape:function(t){return h.find(e=>e.alias===t)},getC4ShapeKeys:function(t){return Object.keys(m(t))},getBoundarys:function(t){return null==t?y:y.filter(e=>e.parentBoundary===t)},getCurrentBoundaryParse:function(){return p},getParentBoundaryParse:function(){return u},getRels:function(){return b},getTitle:function(){return f},getC4Type:function(){return a},getC4ShapeInRow:function(){return _},getC4BoundaryInRow:function(){return x},setAccTitle:n.s,getAccTitle:n.g,getAccDescription:n.a,setAccDescription:n.b,parseDirective:function(t,e,i){n.m.parseDirective(this,t,e,i)},getConfig:()=>(0,n.c)().c4,clear:function(){h=[],y=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],u="",p="global",d=[""],b=[],d=[""],f="",g=!1,_=4,x=2},LINETYPE:{SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},setTitle:function(t){f=(0,n.d)(t,(0,n.c)())},setC4Type:function(t){a=(0,n.d)(t,(0,n.c)())}},S=function(t,e){return(0,s.d)(t,e)},v=function(t,e,i,a,n,r){let s=t.append("image");s.attr("width",e),s.attr("height",i),s.attr("x",a),s.attr("y",n);let o=r.startsWith("data:image/png;base64")?r:(0,l.Jf)(r);s.attr("xlink:href",o)},C=(t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),k=function(){function t(t,e,i,n,r,s,l){a(e.append("text").attr("x",i+r/2).attr("y",n+s/2+5).style("text-anchor","middle").text(t),l)}function e(t,e,i,r,s,l,o,h){let{fontSize:d,fontFamily:p,fontWeight:u}=h,y=t.split(n.e.lineBreakRegex);for(let t=0;t<y.length;t++){let n=t*d-d*(y.length-1)/2,l=e.append("text").attr("x",i+s/2).attr("y",r).style("text-anchor","middle").attr("dominant-baseline","middle").style("font-size",d).style("font-weight",u).style("font-family",p);l.append("tspan").attr("dy",n).text(y[t]).attr("alignment-baseline","mathematical"),a(l,o)}}function i(t,i,n,r,s,l,o,h){let d=i.append("switch"),p=d.append("foreignObject").attr("x",n).attr("y",r).attr("width",s).attr("height",l).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");p.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,d,n,r,s,l,o,h),a(p,o)}function a(t,e){for(let i in e)e.hasOwnProperty(i)&&t.attr(i,e[i])}return function(a){return"fo"===a.textPlacement?i:"old"===a.textPlacement?t:e}}(),O={drawBoundary:function(t,e,i){let a=t.append("g"),n=e.bgColor?e.bgColor:"none",r=e.borderColor?e.borderColor:"#444444",s=e.fontColor?e.fontColor:"black",l={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};e.nodeType&&(l={"stroke-width":1}),S(a,{x:e.x,y:e.y,fill:n,stroke:r,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:l});let o=i.boundaryFont();o.fontWeight="bold",o.fontSize=o.fontSize+2,o.fontColor=s,k(i)(e.label.text,a,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},o),e.type&&""!==e.type.text&&((o=i.boundaryFont()).fontColor=s,k(i)(e.type.text,a,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},o)),e.descr&&""!==e.descr.text&&((o=i.boundaryFont()).fontSize=o.fontSize-2,o.fontColor=s,k(i)(e.descr.text,a,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},o))},drawC4Shape:function(t,e,i){var a;let n=e.bgColor?e.bgColor:i[e.typeC4Shape.text+"_bg_color"],r=e.borderColor?e.borderColor:i[e.typeC4Shape.text+"_border_color"],l=e.fontColor?e.fontColor:"#FFFFFF",o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII="}let h=t.append("g");h.attr("class","person-man");let d=(0,s.g)();switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":d.x=e.x,d.y=e.y,d.fill=n,d.width=e.width,d.height=e.height,d.stroke=r,d.rx=2.5,d.ry=2.5,d.attrs={"stroke-width":.5},S(h,d);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":h.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height)),h.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":h.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2)),h.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2))}let p=C(i,e.typeC4Shape.text);switch(h.append("text").attr("fill",l).attr("font-family",p.fontFamily).attr("font-size",p.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>"),e.typeC4Shape.text){case"person":case"external_person":v(h,48,48,e.x+e.width/2-24,e.y+e.image.Y,o)}let u=i[e.typeC4Shape.text+"Font"]();return u.fontWeight="bold",u.fontSize=u.fontSize+2,u.fontColor=l,k(i)(e.label.text,h,e.x,e.y+e.label.Y,e.width,e.height,{fill:l},u),(u=i[e.typeC4Shape.text+"Font"]()).fontColor=l,e.techn&&(null==(a=e.techn)?void 0:a.text)!==""?k(i)(e.techn.text,h,e.x,e.y+e.techn.Y,e.width,e.height,{fill:l,"font-style":"italic"},u):e.type&&""!==e.type.text&&k(i)(e.type.text,h,e.x,e.y+e.type.Y,e.width,e.height,{fill:l,"font-style":"italic"},u),e.descr&&""!==e.descr.text&&((u=i.personFont()).fontColor=l,k(i)(e.descr.text,h,e.x,e.y+e.descr.Y,e.width,e.height,{fill:l},u)),e.height},drawRels:(t,e,i)=>{let a=t.append("g"),n=0;for(let t of e){let e=t.textColor?t.textColor:"#444444",r=t.lineColor?t.lineColor:"#444444",s=t.offsetX?parseInt(t.offsetX):0,l=t.offsetY?parseInt(t.offsetY):0;if(0===n){let e=a.append("line");e.attr("x1",t.startPoint.x),e.attr("y1",t.startPoint.y),e.attr("x2",t.endPoint.x),e.attr("y2",t.endPoint.y),e.attr("stroke-width","1"),e.attr("stroke",r),e.style("fill","none"),"rel_b"!==t.type&&e.attr("marker-end","url(#arrowhead)"),("birel"===t.type||"rel_b"===t.type)&&e.attr("marker-start","url(#arrowend)"),n=-1}else{let e=a.append("path");e.attr("fill","none").attr("stroke-width","1").attr("stroke",r).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",t.startPoint.x).replaceAll("starty",t.startPoint.y).replaceAll("controlx",t.startPoint.x+(t.endPoint.x-t.startPoint.x)/2-(t.endPoint.x-t.startPoint.x)/4).replaceAll("controly",t.startPoint.y+(t.endPoint.y-t.startPoint.y)/2).replaceAll("stopx",t.endPoint.x).replaceAll("stopy",t.endPoint.y)),"rel_b"!==t.type&&e.attr("marker-end","url(#arrowhead)"),("birel"===t.type||"rel_b"===t.type)&&e.attr("marker-start","url(#arrowend)")}let o=i.messageFont();k(i)(t.label.text,a,Math.min(t.startPoint.x,t.endPoint.x)+Math.abs(t.endPoint.x-t.startPoint.x)/2+s,Math.min(t.startPoint.y,t.endPoint.y)+Math.abs(t.endPoint.y-t.startPoint.y)/2+l,t.label.width,t.label.height,{fill:e},o),t.techn&&""!==t.techn.text&&(o=i.messageFont(),k(i)("["+t.techn.text+"]",a,Math.min(t.startPoint.x,t.endPoint.x)+Math.abs(t.endPoint.x-t.startPoint.x)/2+s,Math.min(t.startPoint.y,t.endPoint.y)+Math.abs(t.endPoint.y-t.startPoint.y)/2+i.messageFontSize+5+l,Math.max(t.label.width,t.techn.width),t.techn.height,{fill:e,"font-style":"italic"},o))}},insertArrowHead:function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},insertArrowEnd:function(t){t.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},insertArrowFilledHead:function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},insertArrowCrossHead:function(t){let e=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);e.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),e.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},insertDatabaseIcon:function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},insertComputerIcon:function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},insertClockIcon:function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")}},w=0,T=0,D=4,R=2;o.yy=A;let N={};class P{constructor(t){this.name="",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,M(t.db.getConfig())}setData(t,e,i,a){this.nextData.startx=this.data.startx=t,this.nextData.stopx=this.data.stopx=e,this.nextData.starty=this.data.starty=i,this.nextData.stopy=this.data.stopy=a}updateVal(t,e,i,a){void 0===t[e]?t[e]=i:t[e]=a(i,t[e])}insert(t){this.nextData.cnt=this.nextData.cnt+1;let e=this.nextData.startx===this.nextData.stopx?this.nextData.stopx+t.margin:this.nextData.stopx+2*t.margin,i=e+t.width,a=this.nextData.starty+2*t.margin,n=a+t.height;(e>=this.data.widthLimit||i>=this.data.widthLimit||this.nextData.cnt>D)&&(e=this.nextData.startx+t.margin+N.nextLinePaddingX,a=this.nextData.stopy+2*t.margin,this.nextData.stopx=i=e+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=n=a+t.height,this.nextData.cnt=1),t.x=e,t.y=a,this.updateVal(this.data,"startx",e,Math.min),this.updateVal(this.data,"starty",a,Math.min),this.updateVal(this.data,"stopx",i,Math.max),this.updateVal(this.data,"stopy",n,Math.max),this.updateVal(this.nextData,"startx",e,Math.min),this.updateVal(this.nextData,"starty",a,Math.min),this.updateVal(this.nextData,"stopx",i,Math.max),this.updateVal(this.nextData,"stopy",n,Math.max)}init(t){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},M(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}}let M=function(t){(0,n.f)(N,t),t.fontFamily&&(N.personFontFamily=N.systemFontFamily=N.messageFontFamily=t.fontFamily),t.fontSize&&(N.personFontSize=N.systemFontSize=N.messageFontSize=t.fontSize),t.fontWeight&&(N.personFontWeight=N.systemFontWeight=N.messageFontWeight=t.fontWeight)},j=(t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),B=t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight}),L=t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight});function Y(t,e,i,a,r){if(!e[t].width){if(i)e[t].text=(0,n.w)(e[t].text,r,a),e[t].textLines=e[t].text.split(n.e.lineBreakRegex).length,e[t].width=r,e[t].height=(0,n.j)(e[t].text,a);else{let i=e[t].text.split(n.e.lineBreakRegex);e[t].textLines=i.length;let r=0;for(let s of(e[t].height=0,e[t].width=0,i))e[t].width=Math.max((0,n.h)(s,a),e[t].width),r=(0,n.j)(s,a),e[t].height=e[t].height+r}}}let I=function(t,e,i){e.x=i.data.startx,e.y=i.data.starty,e.width=i.data.stopx-i.data.startx,e.height=i.data.stopy-i.data.starty,e.label.y=N.c4ShapeMargin-35;let a=e.wrap&&N.wrap,r=B(N);r.fontSize=r.fontSize+2,r.fontWeight="bold";let s=(0,n.h)(e.label.text,r);Y("label",e,a,r,s),O.drawBoundary(t,e,N)},U=function(t,e,i,a){let r=0;for(let s of a){r=0;let a=i[s],l=j(N,a.typeC4Shape.text);switch(l.fontSize=l.fontSize-2,a.typeC4Shape.width=(0,n.h)("\xab"+a.typeC4Shape.text+"\xbb",l),a.typeC4Shape.height=l.fontSize+2,a.typeC4Shape.Y=N.c4ShapePadding,r=a.typeC4Shape.Y+a.typeC4Shape.height-4,a.image={width:0,height:0,Y:0},a.typeC4Shape.text){case"person":case"external_person":a.image.width=48,a.image.height=48,a.image.Y=r,r=a.image.Y+a.image.height}a.sprite&&(a.image.width=48,a.image.height=48,a.image.Y=r,r=a.image.Y+a.image.height);let o=a.wrap&&N.wrap,h=N.width-2*N.c4ShapePadding,d=j(N,a.typeC4Shape.text);if(d.fontSize=d.fontSize+2,d.fontWeight="bold",Y("label",a,o,d,h),a.label.Y=r+8,r=a.label.Y+a.label.height,a.type&&""!==a.type.text){a.type.text="["+a.type.text+"]";let t=j(N,a.typeC4Shape.text);Y("type",a,o,t,h),a.type.Y=r+5,r=a.type.Y+a.type.height}else if(a.techn&&""!==a.techn.text){a.techn.text="["+a.techn.text+"]";let t=j(N,a.techn.text);Y("techn",a,o,t,h),a.techn.Y=r+5,r=a.techn.Y+a.techn.height}let p=r,u=a.label.width;if(a.descr&&""!==a.descr.text){let t=j(N,a.typeC4Shape.text);Y("descr",a,o,t,h),a.descr.Y=r+20,r=a.descr.Y+a.descr.height,u=Math.max(a.label.width,a.descr.width),p=r-5*a.descr.textLines}u+=N.c4ShapePadding,a.width=Math.max(a.width||N.width,u,N.width),a.height=Math.max(a.height||N.height,p,N.height),a.margin=a.margin||N.c4ShapeMargin,t.insert(a),O.drawC4Shape(e,a,N)}t.bumpLastMargin(N.c4ShapeMargin)};class F{constructor(t,e){this.x=t,this.y=e}}let X=function(t,e){let i=t.x,a=t.y,n=e.x,r=e.y,s=i+t.width/2,l=a+t.height/2,o=Math.abs(i-n),h=Math.abs(a-r),d=h/o,p=t.height/t.width,u=null;return a==r&&i<n?u=new F(i+t.width,l):a==r&&i>n?u=new F(i,l):i==n&&a<r?u=new F(s,a+t.height):i==n&&a>r&&(u=new F(s,a)),i>n&&a<r?u=p>=d?new F(i,l+d*t.width/2):new F(s-o/h*t.height/2,a+t.height):i<n&&a<r?u=p>=d?new F(i+t.width,l+d*t.width/2):new F(s+o/h*t.height/2,a+t.height):i<n&&a>r?u=p>=d?new F(i+t.width,l-d*t.width/2):new F(s+t.height/2*o/h,a):i>n&&a>r&&(u=p>=d?new F(i,l-t.width/2*d):new F(s-t.height/2*o/h,a)),u},z=function(t,e){let i={x:0,y:0};i.x=e.x+e.width/2,i.y=e.y+e.height/2;let a=X(t,i);return i.x=t.x+t.width/2,i.y=t.y+t.height/2,{startPoint:a,endPoint:X(e,i)}},Q=function(t,e,i,a){let r=0;for(let t of e){r+=1;let e=t.wrap&&N.wrap,s=L(N);"C4Dynamic"===a.db.getC4Type()&&(t.label.text=r+": "+t.label.text);let l=(0,n.h)(t.label.text,s);Y("label",t,e,s,l),t.techn&&""!==t.techn.text&&(l=(0,n.h)(t.techn.text,s),Y("techn",t,e,s,l)),t.descr&&""!==t.descr.text&&(l=(0,n.h)(t.descr.text,s),Y("descr",t,e,s,l));let o=z(i(t.from),i(t.to));t.startPoint=o.startPoint,t.endPoint=o.endPoint}O.drawRels(t,e,N)},W={drawPersonOrSystemArray:U,drawBoundary:I,setConf:M,draw:function(t,e,i,a){let s;N=(0,n.c)().c4;let l=(0,n.c)().securityLevel;"sandbox"===l&&(s=(0,r.Ltv)("#i"+e));let o="sandbox"===l?(0,r.Ltv)(s.nodes()[0].contentDocument.body):(0,r.Ltv)("body"),h=a.db;a.db.setWrap(N.wrap),D=h.getC4ShapeInRow(),R=h.getC4BoundaryInRow(),n.l.debug(`C:${JSON.stringify(N,null,2)}`);let d="sandbox"===l?o.select(`[id="${e}"]`):(0,r.Ltv)(`[id="${e}"]`);O.insertComputerIcon(d),O.insertDatabaseIcon(d),O.insertClockIcon(d);let p=new P(a);p.setData(N.diagramMarginX,N.diagramMarginX,N.diagramMarginY,N.diagramMarginY),p.data.widthLimit=screen.availWidth,w=N.diagramMarginX,T=N.diagramMarginY;let u=a.db.getTitle();!function t(e,i,a,n,r){let s=new P(r);for(let[l,o]of(s.data.widthLimit=a.data.widthLimit/Math.min(R,n.length),n.entries())){let n=0;o.image={width:0,height:0,Y:0},o.sprite&&(o.image.width=48,o.image.height=48,o.image.Y=n,n=o.image.Y+o.image.height);let h=o.wrap&&N.wrap,d=B(N);if(d.fontSize=d.fontSize+2,d.fontWeight="bold",Y("label",o,h,d,s.data.widthLimit),o.label.Y=n+8,n=o.label.Y+o.label.height,o.type&&""!==o.type.text&&(o.type.text="["+o.type.text+"]",Y("type",o,h,B(N),s.data.widthLimit),o.type.Y=n+5,n=o.type.Y+o.type.height),o.descr&&""!==o.descr.text){let t=B(N);t.fontSize=t.fontSize-2,Y("descr",o,h,t,s.data.widthLimit),o.descr.Y=n+20,n=o.descr.Y+o.descr.height}if(0==l||l%R==0){let t=a.data.startx+N.diagramMarginX,e=a.data.stopy+N.diagramMarginY+n;s.setData(t,t,e,e)}else{let t=s.data.stopx!==s.data.startx?s.data.stopx+N.diagramMarginX:s.data.startx,e=s.data.starty;s.setData(t,t,e,e)}s.name=o.alias;let p=r.db.getC4ShapeArray(o.alias),u=r.db.getC4ShapeKeys(o.alias);u.length>0&&U(s,e,p,u),i=o.alias;let y=r.db.getBoundarys(i);y.length>0&&t(e,i,s,y,r),"global"!==o.alias&&I(e,o,s),a.data.stopy=Math.max(s.data.stopy+N.c4ShapeMargin,a.data.stopy),a.data.stopx=Math.max(s.data.stopx+N.c4ShapeMargin,a.data.stopx),w=Math.max(w,a.data.stopx),T=Math.max(T,a.data.stopy)}}(d,"",p,a.db.getBoundarys(""),a),O.insertArrowHead(d),O.insertArrowEnd(d),O.insertArrowCrossHead(d),O.insertArrowFilledHead(d),Q(d,a.db.getRels(),a.db.getC4Shape,a),p.data.stopx=w,p.data.stopy=T;let y=p.data,b=y.stopy-y.starty+2*N.diagramMarginY,f=y.stopx-y.startx+2*N.diagramMarginX;u&&d.append("text").text(u).attr("x",(y.stopx-y.startx)/2-4*N.diagramMarginX).attr("y",y.starty+N.diagramMarginY),(0,n.i)(d,b,f,N.useMaxWidth);let g=u?60:0;d.attr("viewBox",y.startx-N.diagramMarginX+" -"+(N.diagramMarginY+g)+" "+f+" "+(b+g)),n.l.debug("models:",y)}},$={parser:o,db:A,renderer:W,styles:t=>`.person { - stroke: ${t.personBorder}; - fill: ${t.personBkg}; - } -`,init:t=>{W.setConf(t.c4)}}},12441:(t,e,i)=>{i.d(e,{a:()=>s,b:()=>h,c:()=>o,d:()=>r,e:()=>p,f:()=>l,g:()=>d});var a=i(31546),n=i(17367);let r=(t,e)=>{let i=t.append("rect");if(i.attr("x",e.x),i.attr("y",e.y),i.attr("fill",e.fill),i.attr("stroke",e.stroke),i.attr("width",e.width),i.attr("height",e.height),void 0!==e.rx&&i.attr("rx",e.rx),void 0!==e.ry&&i.attr("ry",e.ry),void 0!==e.attrs)for(let t in e.attrs)i.attr(t,e.attrs[t]);return void 0!==e.class&&i.attr("class",e.class),i},s=(t,e)=>{r(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"}).lower()},l=(t,e)=>{let i=e.text.replace(n.J," "),a=t.append("text");a.attr("x",e.x),a.attr("y",e.y),a.attr("class","legend"),a.style("text-anchor",e.anchor),void 0!==e.class&&a.attr("class",e.class);let r=a.append("tspan");return r.attr("x",e.x+2*e.textMargin),r.text(i),a},o=(t,e,i,n)=>{let r=t.append("image");r.attr("x",e),r.attr("y",i);let s=(0,a.Jf)(n);r.attr("xlink:href",s)},h=(t,e,i,n)=>{let r=t.append("use");r.attr("x",e),r.attr("y",i);let s=(0,a.Jf)(n);r.attr("xlink:href",`#${s}`)},d=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),p=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0})}}]); \ No newline at end of file diff --git a/assets/js/772c972a.516cdfd6.js b/assets/js/772c972a.516cdfd6.js new file mode 100644 index 0000000000..4d850448aa --- /dev/null +++ b/assets/js/772c972a.516cdfd6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[44571],{73579:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>l});let t=JSON.parse('{"id":"guides/docs/introduction","title":"Docs Introduction","description":"The docs feature provides users with a way to organize Markdown files in a hierarchical format.","source":"@site/docs/guides/docs/docs-introduction.mdx","sourceDirName":"guides/docs","slug":"/docs-introduction","permalink":"/docs/docs-introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/docs-introduction.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"introduction","sidebar_label":"Introduction","slug":"/docs-introduction"},"sidebar":"docs","previous":{"title":"Pages","permalink":"/docs/creating-pages"},"next":{"title":"Create a doc","permalink":"/docs/create-doc"}}');var s=n(62540),i=n(43023);let r={id:"introduction",sidebar_label:"Introduction",slug:"/docs-introduction"},d="Docs Introduction",c={},l=[{value:"Docs-only mode",id:"docs-only-mode",level:2}];function a(e){let o={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.header,{children:(0,s.jsx)(o.h1,{id:"docs-introduction",children:"Docs Introduction"})}),"\n",(0,s.jsx)(o.p,{children:"The docs feature provides users with a way to organize Markdown files in a hierarchical format."}),"\n",(0,s.jsx)(o.admonition,{type:"info",children:(0,s.jsxs)(o.p,{children:["Check the ",(0,s.jsx)(o.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-docs",children:"Docs Plugin API Reference documentation"})," for an exhaustive list of options."]})}),"\n",(0,s.jsx)(o.p,{children:"Your site's documentation is organized by four levels, from lowest to highest:"}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsx)(o.li,{children:"Individual pages."}),"\n",(0,s.jsx)(o.li,{children:"Sidebars."}),"\n",(0,s.jsx)(o.li,{children:"Versions."}),"\n",(0,s.jsx)(o.li,{children:"Plugin instances."}),"\n"]}),"\n",(0,s.jsxs)(o.p,{children:["The guide will introduce them in that order: starting from ",(0,s.jsx)(o.a,{href:"/docs/create-doc",children:"how individual pages can be configured"}),", to ",(0,s.jsx)(o.a,{href:"/docs/sidebar",children:"how to create a sidebar or multiple ones"}),", to ",(0,s.jsx)(o.a,{href:"/docs/versioning",children:"how to create and manage versions"}),", to ",(0,s.jsx)(o.a,{href:"/docs/docs-multi-instance",children:"how to use multiple docs plugin instances"}),"."]}),"\n",(0,s.jsx)(o.h2,{id:"docs-only-mode",children:"Docs-only mode"}),"\n",(0,s.jsx)(o.p,{children:"A freshly initialized Docusaurus site has the following structure:"}),"\n",(0,s.jsx)(o.pre,{children:(0,s.jsx)(o.code,{children:"example.com/ -> generated from `src/pages/index.js`\n\nexample.com/docs/intro -> generated from `docs/intro.md`\nexample.com/docs/tutorial-basics/... -> generated from `docs/tutorial-basics/...`\n...\n\nexample.com/blog/2021/08/26/welcome -> generated from `blog/2021-08-26-welcome/index.md`\nexample.com/blog/2021/08/01/mdx-blog-post -> generated from `blog/2021-08-01-mdx-blog-post.mdx`\n...\n"})}),"\n",(0,s.jsxs)(o.p,{children:["All docs will be served under the subroute ",(0,s.jsx)(o.code,{children:"docs/"}),". But what if ",(0,s.jsx)(o.strong,{children:"your site only has docs"}),", or you want to prioritize your docs by putting them at the root?"]}),"\n",(0,s.jsx)(o.p,{children:"Assume that you have the following in your configuration:"}),"\n",(0,s.jsx)(o.pre,{children:(0,s.jsx)(o.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n /* docs plugin options */\n },\n blog: {\n /* blog plugin options */\n },\n // ...\n },\n ],\n ],\n};\n"})}),"\n",(0,s.jsx)(o.p,{children:"To enter docs-only mode, change it to like this:"}),"\n",(0,s.jsx)(o.pre,{children:(0,s.jsx)(o.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n // highlight-next-line\n routeBasePath: '/', // Serve the docs at the site's root\n /* other docs plugin options */\n },\n // highlight-next-line\n blog: false, // Optional: disable the blog plugin\n // ...\n },\n ],\n ],\n};\n"})}),"\n",(0,s.jsxs)(o.p,{children:["Note that you ",(0,s.jsx)(o.strong,{children:"don't necessarily have to give up on using the blog"})," or other plugins; all that ",(0,s.jsx)(o.code,{children:"routeBasePath: '/'"})," does is that instead of serving the docs through ",(0,s.jsx)(o.code,{children:"https://example.com/docs/some-doc"}),", they are now at the site root: ",(0,s.jsx)(o.code,{children:"https://example.com/some-doc"}),". The blog, if enabled, can still be accessed through the ",(0,s.jsx)(o.code,{children:"blog/"})," subroute."]}),"\n",(0,s.jsxs)(o.p,{children:["Don't forget to put some page at the root (",(0,s.jsx)(o.code,{children:"https://example.com/"}),") through adding the front matter:"]}),"\n",(0,s.jsx)(o.pre,{children:(0,s.jsx)(o.code,{className:"language-md",metastring:'title="docs/intro.md"',children:"---\n# highlight-next-line\nslug: /\n---\n\nThis page will be the home page when users visit https://example.com/.\n"})}),"\n",(0,s.jsx)(o.admonition,{type:"warning",children:(0,s.jsxs)(o.p,{children:["If you added ",(0,s.jsx)(o.code,{children:"slug: /"})," to a doc to make it the homepage, you should delete the existing homepage at ",(0,s.jsx)(o.code,{children:"./src/pages/index.js"}),", or else there will be two files mapping to the same route!"]})}),"\n",(0,s.jsx)(o.p,{children:"Now, the site's structure will be like the following:"}),"\n",(0,s.jsx)(o.pre,{children:(0,s.jsx)(o.code,{children:"example.com/ -> generated from `docs/intro.md`\nexample.com/tutorial-basics/... -> generated from `docs/tutorial-basics/...`\n...\n"})}),"\n",(0,s.jsx)(o.admonition,{type:"tip",children:(0,s.jsxs)(o.p,{children:['There\'s also a "blog-only mode" for those who only want to use the blog feature of Docusaurus. You can use the same method detailed above. Follow the setup instructions on ',(0,s.jsx)(o.a,{href:"/docs/blog#blog-only-mode",children:"Blog-only mode"}),"."]})})]})}function h(e={}){let{wrapper:o}={...(0,i.R)(),...e.components};return o?(0,s.jsx)(o,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},43023:(e,o,n)=>{n.d(o,{R:()=>r,x:()=>d});var t=n(63696);let s={},i=t.createContext(s);function r(e){let o=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(o):{...o,...e}},[o,e])}function d(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(i.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/772c972a.795d6da5.js b/assets/js/772c972a.795d6da5.js deleted file mode 100644 index e344062657..0000000000 --- a/assets/js/772c972a.795d6da5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[44571],{73579:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>l});let t=JSON.parse('{"id":"guides/docs/introduction","title":"Docs Introduction","description":"The docs feature provides users with a way to organize Markdown files in a hierarchical format.","source":"@site/docs/guides/docs/docs-introduction.mdx","sourceDirName":"guides/docs","slug":"/docs-introduction","permalink":"/docs/docs-introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/docs-introduction.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"introduction","sidebar_label":"Introduction","slug":"/docs-introduction"},"sidebar":"docs","previous":{"title":"Pages","permalink":"/docs/creating-pages"},"next":{"title":"Create a doc","permalink":"/docs/create-doc"}}');var s=n(62540),i=n(43023);let r={id:"introduction",sidebar_label:"Introduction",slug:"/docs-introduction"},d="Docs Introduction",c={},l=[{value:"Docs-only mode",id:"docs-only-mode",level:2}];function a(e){let o={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.header,{children:(0,s.jsx)(o.h1,{id:"docs-introduction",children:"Docs Introduction"})}),"\n",(0,s.jsx)(o.p,{children:"The docs feature provides users with a way to organize Markdown files in a hierarchical format."}),"\n",(0,s.jsx)(o.admonition,{type:"info",children:(0,s.jsxs)(o.p,{children:["Check the ",(0,s.jsx)(o.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-docs",children:"Docs Plugin API Reference documentation"})," for an exhaustive list of options."]})}),"\n",(0,s.jsx)(o.p,{children:"Your site's documentation is organized by four levels, from lowest to highest:"}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsx)(o.li,{children:"Individual pages."}),"\n",(0,s.jsx)(o.li,{children:"Sidebars."}),"\n",(0,s.jsx)(o.li,{children:"Versions."}),"\n",(0,s.jsx)(o.li,{children:"Plugin instances."}),"\n"]}),"\n",(0,s.jsxs)(o.p,{children:["The guide will introduce them in that order: starting from ",(0,s.jsx)(o.a,{href:"/docs/create-doc",children:"how individual pages can be configured"}),", to ",(0,s.jsx)(o.a,{href:"/docs/sidebar",children:"how to create a sidebar or multiple ones"}),", to ",(0,s.jsx)(o.a,{href:"/docs/versioning",children:"how to create and manage versions"}),", to ",(0,s.jsx)(o.a,{href:"/docs/docs-multi-instance",children:"how to use multiple docs plugin instances"}),"."]}),"\n",(0,s.jsx)(o.h2,{id:"docs-only-mode",children:"Docs-only mode"}),"\n",(0,s.jsx)(o.p,{children:"A freshly initialized Docusaurus site has the following structure:"}),"\n",(0,s.jsx)(o.pre,{children:(0,s.jsx)(o.code,{children:"example.com/ -> generated from `src/pages/index.js`\n\nexample.com/docs/intro -> generated from `docs/intro.md`\nexample.com/docs/tutorial-basics/... -> generated from `docs/tutorial-basics/...`\n...\n\nexample.com/blog/2021/08/26/welcome -> generated from `blog/2021-08-26-welcome/index.md`\nexample.com/blog/2021/08/01/mdx-blog-post -> generated from `blog/2021-08-01-mdx-blog-post.mdx`\n...\n"})}),"\n",(0,s.jsxs)(o.p,{children:["All docs will be served under the subroute ",(0,s.jsx)(o.code,{children:"docs/"}),". But what if ",(0,s.jsx)(o.strong,{children:"your site only has docs"}),", or you want to prioritize your docs by putting them at the root?"]}),"\n",(0,s.jsx)(o.p,{children:"Assume that you have the following in your configuration:"}),"\n",(0,s.jsx)(o.pre,{children:(0,s.jsx)(o.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n /* docs plugin options */\n },\n blog: {\n /* blog plugin options */\n },\n // ...\n },\n ],\n ],\n};\n"})}),"\n",(0,s.jsx)(o.p,{children:"To enter docs-only mode, change it to like this:"}),"\n",(0,s.jsx)(o.pre,{children:(0,s.jsx)(o.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n // ...\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n // highlight-next-line\n routeBasePath: '/', // Serve the docs at the site's root\n /* other docs plugin options */\n },\n // highlight-next-line\n blog: false, // Optional: disable the blog plugin\n // ...\n },\n ],\n ],\n};\n"})}),"\n",(0,s.jsxs)(o.p,{children:["Note that you ",(0,s.jsx)(o.strong,{children:"don't necessarily have to give up on using the blog"})," or other plugins; all that ",(0,s.jsx)(o.code,{children:"routeBasePath: '/'"})," does is that instead of serving the docs through ",(0,s.jsx)(o.code,{children:"https://example.com/docs/some-doc"}),", they are now at the site root: ",(0,s.jsx)(o.code,{children:"https://example.com/some-doc"}),". The blog, if enabled, can still be accessed through the ",(0,s.jsx)(o.code,{children:"blog/"})," subroute."]}),"\n",(0,s.jsxs)(o.p,{children:["Don't forget to put some page at the root (",(0,s.jsx)(o.code,{children:"https://example.com/"}),") through adding the front matter:"]}),"\n",(0,s.jsx)(o.pre,{children:(0,s.jsx)(o.code,{className:"language-md",metastring:'title="docs/intro.md"',children:"---\n# highlight-next-line\nslug: /\n---\n\nThis page will be the home page when users visit https://example.com/.\n"})}),"\n",(0,s.jsx)(o.admonition,{type:"warning",children:(0,s.jsxs)(o.p,{children:["If you added ",(0,s.jsx)(o.code,{children:"slug: /"})," to a doc to make it the homepage, you should delete the existing homepage at ",(0,s.jsx)(o.code,{children:"./src/pages/index.js"}),", or else there will be two files mapping to the same route!"]})}),"\n",(0,s.jsx)(o.p,{children:"Now, the site's structure will be like the following:"}),"\n",(0,s.jsx)(o.pre,{children:(0,s.jsx)(o.code,{children:"example.com/ -> generated from `docs/intro.md`\nexample.com/tutorial-basics/... -> generated from `docs/tutorial-basics/...`\n...\n"})}),"\n",(0,s.jsx)(o.admonition,{type:"tip",children:(0,s.jsxs)(o.p,{children:['There\'s also a "blog-only mode" for those who only want to use the blog feature of Docusaurus. You can use the same method detailed above. Follow the setup instructions on ',(0,s.jsx)(o.a,{href:"/docs/blog#blog-only-mode",children:"Blog-only mode"}),"."]})})]})}function h(e={}){let{wrapper:o}={...(0,i.R)(),...e.components};return o?(0,s.jsx)(o,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},43023:(e,o,n)=>{n.d(o,{R:()=>r,x:()=>d});var t=n(63696);let s={},i=t.createContext(s);function r(e){let o=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(o):{...o,...e}},[o,e])}function d(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(i.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/77da816e.399c146c.js b/assets/js/77da816e.08a4c2d9.js similarity index 91% rename from assets/js/77da816e.399c146c.js rename to assets/js/77da816e.08a4c2d9.js index 2c258aeb47..d027769e01 100644 --- a/assets/js/77da816e.399c146c.js +++ b/assets/js/77da816e.08a4c2d9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[61414],{7036:(e,t,s)=>{s.d(t,{A:()=>a});let a=s.p+"assets/images/social-card-402517ac2205718a22585e627fe1351c.png"},42897:(e,t,s)=>{s.d(t,{A:()=>a});let a=s.p+"assets/images/social-card-402517ac2205718a22585e627fe1351c.png"},87440:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var a=s(85572),r=s(62540),n=s(43023);let o={title:"Docusaurus 2.2",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2022-10-29T00:00:00.000Z")},i=void 0,c={image:s(7036).A,authorsImageUrls:[void 0]},l=[];function u(e){let t={a:"a",img:"img",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["We are happy to announce ",(0,r.jsx)(t.strong,{children:"Docusaurus 2.2"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["The upgrade should be easy: as explained in our ",(0,r.jsx)(t.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,r.jsx)(t.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Docusaurus 2.2 social card",src:s(42897).A+"",width:"1200",height:"600"})})]})}function p(e={}){let{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},43023:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>i});var a=s(63696);let r={},n=a.createContext(r);function o(e){let t=a.useContext(n);return a.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(n.Provider,{value:t},e.children)}},85572:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/2.2","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/2.2/index.mdx","source":"@site/blog/releases/2.2/index.mdx","title":"Docusaurus 2.2","description":"We are happy to announce Docusaurus 2.2.","date":"2022-10-29T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":2.2,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.2","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2022-10-29T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Docusaurus 2.3","permalink":"/blog/releases/2.3"},"nextItem":{"title":"Docusaurus 2.1","permalink":"/blog/2022/09/01/docusaurus-2.1"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[61414],{7036:(e,t,s)=>{s.d(t,{A:()=>a});let a=s.p+"assets/images/social-card-402517ac2205718a22585e627fe1351c.png"},42897:(e,t,s)=>{s.d(t,{A:()=>a});let a=s.p+"assets/images/social-card-402517ac2205718a22585e627fe1351c.png"},87440:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var a=s(85572),r=s(62540),n=s(43023);let o={title:"Docusaurus 2.2",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2022-10-29T00:00:00.000Z")},i=void 0,c={image:s(7036).A,authorsImageUrls:[void 0]},l=[];function u(e){let t={a:"a",img:"img",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["We are happy to announce ",(0,r.jsx)(t.strong,{children:"Docusaurus 2.2"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["The upgrade should be easy: as explained in our ",(0,r.jsx)(t.a,{href:"/community/release-process",children:"release process documentation"}),", minor versions respect ",(0,r.jsx)(t.a,{href:"https://semver.org/",children:"Semantic Versioning"}),"."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Docusaurus 2.2 social card",src:s(42897).A+"",width:"1200",height:"600"})})]})}function p(e={}){let{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},43023:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>i});var a=s(63696);let r={},n=a.createContext(r);function o(e){let t=a.useContext(n);return a.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(n.Provider,{value:t},e.children)}},85572:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/2.2","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/2.2/index.mdx","source":"@site/blog/releases/2.2/index.mdx","title":"Docusaurus 2.2","description":"We are happy to announce Docusaurus 2.2.","date":"2022-10-29T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":2.2,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2.2","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2022-10-29T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Docusaurus 2.3","permalink":"/blog/releases/2.3"},"nextItem":{"title":"Docusaurus 2.1","permalink":"/blog/2022/09/01/docusaurus-2.1"}}')}}]); \ No newline at end of file diff --git a/assets/js/77eb9b8f.24761470.js b/assets/js/77eb9b8f.24761470.js deleted file mode 100644 index 21b030fa5c..0000000000 --- a/assets/js/77eb9b8f.24761470.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[99175],{80207:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>c});let s=JSON.parse('{"id":"api/plugin-methods/lifecycle-apis","title":"Lifecycle APIs","description":"During the build, plugins are loaded in parallel to fetch their own contents and render them to routes. Plugins may also configure webpack or post-process the generated files.","source":"@site/docs/api/plugin-methods/lifecycle-apis.mdx","sourceDirName":"api/plugin-methods","slug":"/api/plugin-methods/lifecycle-apis","permalink":"/docs/api/plugin-methods/lifecycle-apis","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugin-methods/lifecycle-apis.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1,"toc_max_heading_level":4},"sidebar":"api","previous":{"title":"Plugin Method References","permalink":"/docs/api/plugin-methods/"},"next":{"title":"Extending infrastructure","permalink":"/docs/api/plugin-methods/extend-infrastructure"}}');var i=t(62540),o=t(43023);let r={sidebar_position:1,toc_max_heading_level:4},a="Lifecycle APIs",d={},c=[{value:"<code>async loadContent()</code>",id:"loadContent",level:2},{value:"<code>async contentLoaded({content, actions})</code>",id:"contentLoaded",level:2},{value:"<code>content</code>",id:"content",level:3},{value:"<code>actions</code>",id:"actions",level:3},{value:"<code>addRoute(config: RouteConfig): void</code>",id:"addRoute",level:4},{value:"<code>createData(name: string, data: any): Promise<string></code>",id:"createData",level:4},{value:"<code>setGlobalData(data: any): void</code>",id:"setGlobalData",level:4},{value:"<code>configureWebpack(config, isServer, utils, content)</code>",id:"configureWebpack",level:2},{value:"<code>config</code>",id:"config",level:3},{value:"<code>isServer</code>",id:"isServer",level:3},{value:"<code>utils</code>",id:"utils",level:3},{value:"<code>content</code>",id:"content-1",level:3},{value:"Merge strategy",id:"merge-strategy",level:3},{value:"Configuring dev server",id:"configuring-dev-server",level:3},{value:"<code>configurePostCss(options)</code>",id:"configurePostCss",level:2},{value:"<code>postBuild(props)</code>",id:"postBuild",level:2},{value:"<code>injectHtmlTags({content})</code>",id:"injectHtmlTags",level:2},{value:"<code>getClientModules()</code>",id:"getClientModules",level:2}];function l(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"lifecycle-apis",children:"Lifecycle APIs"})}),"\n",(0,i.jsx)(n.p,{children:"During the build, plugins are loaded in parallel to fetch their own contents and render them to routes. Plugins may also configure webpack or post-process the generated files."}),"\n",(0,i.jsx)(n.h2,{id:"loadContent",children:(0,i.jsx)(n.code,{children:"async loadContent()"})}),"\n",(0,i.jsx)(n.p,{children:"Plugins should use this lifecycle to fetch from data sources (filesystem, remote API, headless CMS, etc.) or do some server processing. The return value is the content it needs."}),"\n",(0,i.jsx)(n.p,{children:"For example, this plugin below returns a random integer between 1 and 10 as content."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus-plugin/src/index.js"',children:"export default function (context, options) {\n return {\n name: 'docusaurus-plugin',\n // highlight-start\n async loadContent() {\n return 1 + Math.floor(Math.random() * 10);\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"contentLoaded",children:(0,i.jsx)(n.code,{children:"async contentLoaded({content, actions})"})}),"\n",(0,i.jsxs)(n.p,{children:["The data that was loaded in ",(0,i.jsx)(n.code,{children:"loadContent"})," will be consumed in ",(0,i.jsx)(n.code,{children:"contentLoaded"}),". It can be rendered to routes, registered as global data, etc."]}),"\n",(0,i.jsx)(n.h3,{id:"content",children:(0,i.jsx)(n.code,{children:"content"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"contentLoaded"})," will be called ",(0,i.jsx)(n.em,{children:"after"})," ",(0,i.jsx)(n.code,{children:"loadContent"})," is done. The return value of ",(0,i.jsx)(n.code,{children:"loadContent()"})," will be passed to ",(0,i.jsx)(n.code,{children:"contentLoaded"})," as ",(0,i.jsx)(n.code,{children:"content"}),"."]}),"\n",(0,i.jsx)(n.h3,{id:"actions",children:(0,i.jsx)(n.code,{children:"actions"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"actions"})," contain three functions:"]}),"\n",(0,i.jsx)(n.h4,{id:"addRoute",children:(0,i.jsx)(n.code,{children:"addRoute(config: RouteConfig): void"})}),"\n",(0,i.jsx)(n.p,{children:"Create a route to add to the website."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:'export type RouteConfig = {\n /**\n * With leading slash. Trailing slash will be normalized by config.\n */\n path: string;\n /**\n * Component used to render this route, a path that the bundler can `require`.\n */\n component: string;\n /**\n * Props. Each entry should be `[propName]: pathToPropModule` (created with\n * `createData`)\n */\n modules?: RouteModules;\n /**\n * The route context will wrap the `component`. Use `useRouteContext` to\n * retrieve what\'s declared here. Note that all custom route context declared\n * here will be namespaced under {@link RouteContext.data}.\n */\n context?: RouteModules;\n /**\n * Nested routes config, useful for "layout routes" having subroutes.\n */\n routes?: RouteConfig[];\n /**\n * React router config option: `exact` routes would not match subroutes.\n */\n exact?: boolean;\n /**\n * React router config option: `strict` routes are sensitive to the presence\n * of a trailing slash.\n */\n strict?: boolean;\n /**\n * Used to sort routes.\n * Higher-priority routes will be matched first.\n */\n priority?: number;\n /**\n * Optional route metadata\n */\n metadata?: RouteMetadata;\n /**\n * Extra props; will be available on the client side.\n */\n [propName: string]: unknown;\n};\n\n/**\n * Plugin authors can assign extra metadata to the created routes\n * It is only available on the Node.js side, and not sent to the browser\n * Optional: plugin authors are encouraged but not required to provide it\n *\n * Some plugins might use this data to provide additional features.\n * This is the case of the sitemap plugin to provide support for "lastmod".\n * See also: https://github.com/facebook/docusaurus/pull/9954\n */\nexport type RouteMetadata = {\n /**\n * The source code file path that led to the creation of the current route\n * In official content plugins, this is usually a Markdown or React file\n * This path is expected to be relative to the site directory\n */\n sourceFilePath?: string;\n /**\n * The last updated date of this route\n * This is generally read from the Git history of the sourceFilePath\n * but can also be provided through other means (usually front matter)\n *\n * This has notably been introduced for adding "lastmod" support to the\n * sitemap plugin, see https://github.com/facebook/docusaurus/pull/9954\n */\n lastUpdatedAt?: number;\n};\n\ntype RouteModules = {\n [module: string]: Module | RouteModules | RouteModules[];\n};\n\ntype Module =\n | {\n path: string;\n __import?: boolean;\n query?: ParsedUrlQueryInput;\n }\n | string;\n'})}),"\n",(0,i.jsx)(n.h4,{id:"createData",children:(0,i.jsx)(n.code,{children:"createData(name: string, data: any): Promise<string>"})}),"\n",(0,i.jsx)(n.p,{children:"A declarative callback to create static data (generally JSON or string) which can later be provided to your routes as props. Takes the file name and data to be stored, and returns the actual data file's path."}),"\n",(0,i.jsxs)(n.p,{children:["For example, this plugin below creates a ",(0,i.jsx)(n.code,{children:"/friends"})," page which displays ",(0,i.jsx)(n.code,{children:"Your friends are: Yangshun, Sebastien"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:'title="website/src/components/Friends.js"',children:"import React from 'react';\n\nexport default function FriendsComponent({friends}) {\n return <div>Your friends are {friends.join(',')}</div>;\n}\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus-friends-plugin/src/index.js"',children:"export default function friendsPlugin(context, options) {\n return {\n name: 'docusaurus-friends-plugin',\n // highlight-start\n async contentLoaded({content, actions}) {\n const {createData, addRoute} = actions;\n // Create friends.json\n const friends = ['Yangshun', 'Sebastien'];\n const friendsJsonPath = await createData(\n 'friends.json',\n JSON.stringify(friends),\n );\n\n // Add the '/friends' routes, and ensure it receives the friends props\n addRoute({\n path: '/friends',\n component: '@site/src/components/Friends.js',\n modules: {\n // propName -> JSON file path\n friends: friendsJsonPath,\n },\n exact: true,\n });\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,i.jsx)(n.h4,{id:"setGlobalData",children:(0,i.jsx)(n.code,{children:"setGlobalData(data: any): void"})}),"\n",(0,i.jsx)(n.p,{children:"This function permits one to create some global plugin data that can be read from any page, including the pages created by other plugins, and your theme layout."}),"\n",(0,i.jsxs)(n.p,{children:["This data becomes accessible to your client-side/theme code through the ",(0,i.jsx)(n.a,{href:"/docs/docusaurus-core#useGlobalData",children:(0,i.jsx)(n.code,{children:"useGlobalData"})})," and ",(0,i.jsx)(n.a,{href:"/docs/docusaurus-core#usePluginData",children:(0,i.jsx)(n.code,{children:"usePluginData"})})," hooks."]}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["Global data is... global: its size affects the loading time of all pages of your site, so try to keep it small. Prefer ",(0,i.jsx)(n.code,{children:"createData"})," and page-specific data whenever possible."]})}),"\n",(0,i.jsxs)(n.p,{children:["For example, this plugin below creates a ",(0,i.jsx)(n.code,{children:"/friends"})," page which displays ",(0,i.jsx)(n.code,{children:"Your friends are: Yangshun, Sebastien"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:'title="website/src/components/Friends.js"',children:"import React from 'react';\nimport {usePluginData} from '@docusaurus/useGlobalData';\n\nexport default function FriendsComponent() {\n const {friends} = usePluginData('docusaurus-friends-plugin');\n return <div>Your friends are {friends.join(',')}</div>;\n}\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus-friends-plugin/src/index.js"',children:"export default function friendsPlugin(context, options) {\n return {\n name: 'docusaurus-friends-plugin',\n // highlight-start\n async contentLoaded({content, actions}) {\n const {setGlobalData, addRoute} = actions;\n // Create friends global data\n setGlobalData({friends: ['Yangshun', 'Sebastien']});\n\n // Add the '/friends' routes\n addRoute({\n path: '/friends',\n component: '@site/src/components/Friends.js',\n exact: true,\n });\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"configureWebpack",children:(0,i.jsx)(n.code,{children:"configureWebpack(config, isServer, utils, content)"})}),"\n",(0,i.jsxs)(n.p,{children:["Modifies the internal webpack config. If the return value is a JavaScript object, it will be merged into the final config using ",(0,i.jsx)(n.a,{href:"https://github.com/survivejs/webpack-merge",children:(0,i.jsx)(n.code,{children:"webpack-merge"})}),". If it is a function, it will be called and receive ",(0,i.jsx)(n.code,{children:"config"})," as the first argument and an ",(0,i.jsx)(n.code,{children:"isServer"})," flag as the second argument."]}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["The API of ",(0,i.jsx)(n.code,{children:"configureWebpack"})," will be modified in the future to accept an object (",(0,i.jsx)(n.code,{children:"configureWebpack({config, isServer, utils, content})"}),")"]})}),"\n",(0,i.jsx)(n.h3,{id:"config",children:(0,i.jsx)(n.code,{children:"config"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"configureWebpack"})," is called with ",(0,i.jsx)(n.code,{children:"config"})," generated according to client/server build. You may treat this as the base config to be merged with."]}),"\n",(0,i.jsx)(n.h3,{id:"isServer",children:(0,i.jsx)(n.code,{children:"isServer"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"configureWebpack"})," will be called both in server build and in client build. The server build receives ",(0,i.jsx)(n.code,{children:"true"})," and the client build receives ",(0,i.jsx)(n.code,{children:"false"})," as ",(0,i.jsx)(n.code,{children:"isServer"}),"."]}),"\n",(0,i.jsx)(n.h3,{id:"utils",children:(0,i.jsx)(n.code,{children:"utils"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"configureWebpack"})," also receives an util object:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"getStyleLoaders(isServer: boolean, cssOptions: {[key: string]: any}): Loader[]"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"getJSLoader(isServer: boolean, cacheOptions?: {}): Loader | null"})}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"You may use them to return your webpack configuration conditionally."}),"\n",(0,i.jsxs)(n.p,{children:["For example, this plugin below modify the webpack config to transpile ",(0,i.jsx)(n.code,{children:".foo"})," files."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus-plugin/src/index.js"',children:"export default function (context, options) {\n return {\n name: 'custom-docusaurus-plugin',\n // highlight-start\n configureWebpack(config, isServer, utils) {\n const {getJSLoader} = utils;\n return {\n module: {\n rules: [\n {\n test: /\\.foo$/,\n use: [getJSLoader(isServer), 'my-custom-webpack-loader'],\n },\n ],\n },\n };\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,i.jsx)(n.h3,{id:"content-1",children:(0,i.jsx)(n.code,{children:"content"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"configureWebpack"})," will be called both with the content loaded by the plugin."]}),"\n",(0,i.jsx)(n.h3,{id:"merge-strategy",children:"Merge strategy"}),"\n",(0,i.jsxs)(n.p,{children:["We merge the Webpack configuration parts of plugins into the global Webpack config using ",(0,i.jsx)(n.a,{href:"https://github.com/survivejs/webpack-merge",children:"webpack-merge"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"It is possible to specify the merge strategy. For example, if you want a webpack rule to be prepended instead of appended:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus-plugin/src/index.js"',children:"export default function (context, options) {\n return {\n name: 'custom-docusaurus-plugin',\n configureWebpack(config, isServer, utils) {\n return {\n // highlight-start\n mergeStrategy: {'module.rules': 'prepend'},\n module: {rules: [myRuleToPrepend]},\n // highlight-end\n };\n },\n };\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Read the ",(0,i.jsx)(n.a,{href:"https://github.com/survivejs/webpack-merge#merging-with-strategies",children:"webpack-merge strategy doc"})," for more details."]}),"\n",(0,i.jsx)(n.h3,{id:"configuring-dev-server",children:"Configuring dev server"}),"\n",(0,i.jsxs)(n.p,{children:["The dev server can be configured through returning a ",(0,i.jsx)(n.code,{children:"devServer"})," field."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus-plugin/src/index.js"',children:"export default function (context, options) {\n return {\n name: 'custom-docusaurus-plugin',\n configureWebpack(config, isServer, utils) {\n return {\n // highlight-start\n devServer: {\n open: '/docs', // Opens localhost:3000/docs instead of localhost:3000/\n },\n // highlight-end\n };\n },\n };\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"configurePostCss",children:(0,i.jsx)(n.code,{children:"configurePostCss(options)"})}),"\n",(0,i.jsxs)(n.p,{children:["Modifies ",(0,i.jsxs)(n.a,{href:"https://webpack.js.org/loaders/postcss-loader/#postcssoptions",children:[(0,i.jsx)(n.code,{children:"postcssOptions"})," of ",(0,i.jsx)(n.code,{children:"postcss-loader"})]})," during the generation of the client bundle."]}),"\n",(0,i.jsxs)(n.p,{children:["Should return the mutated ",(0,i.jsx)(n.code,{children:"postcssOptions"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["By default, ",(0,i.jsx)(n.code,{children:"postcssOptions"})," looks like this:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"const postcssOptions = {\n ident: 'postcss',\n plugins: [require('autoprefixer')],\n};\n"})}),"\n",(0,i.jsx)(n.p,{children:"Example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus-plugin/src/index.js"',children:"export default function (context, options) {\n return {\n name: 'docusaurus-plugin',\n // highlight-start\n configurePostCss(postcssOptions) {\n // Appends new PostCSS plugin.\n postcssOptions.plugins.push(require('postcss-import'));\n return postcssOptions;\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"postBuild",children:(0,i.jsx)(n.code,{children:"postBuild(props)"})}),"\n",(0,i.jsx)(n.p,{children:"Called when a (production) build finishes."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"interface Props {\n siteDir: string;\n generatedFilesDir: string;\n siteConfig: DocusaurusConfig;\n outDir: string;\n baseUrl: string;\n headTags: string;\n preBodyTags: string;\n postBodyTags: string;\n routesPaths: string[];\n plugins: Plugin<any>[];\n content: Content;\n}\n"})}),"\n",(0,i.jsx)(n.p,{children:"Example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus-plugin/src/index.js"',children:"export default function (context, options) {\n return {\n name: 'docusaurus-plugin',\n // highlight-start\n async postBuild({siteConfig = {}, routesPaths = [], outDir}) {\n // Print out to console all the rendered routes.\n routesPaths.map((route) => {\n console.log(route);\n });\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"injectHtmlTags",children:(0,i.jsx)(n.code,{children:"injectHtmlTags({content})"})}),"\n",(0,i.jsx)(n.p,{children:"Inject head and/or body HTML tags to Docusaurus generated HTML."}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"injectHtmlTags"})," will be called both with the content loaded by the plugin."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"function injectHtmlTags(): {\n headTags?: HtmlTags;\n preBodyTags?: HtmlTags;\n postBodyTags?: HtmlTags;\n};\n\ntype HtmlTags = string | HtmlTagObject | (string | HtmlTagObject)[];\n\ntype HtmlTagObject = {\n /**\n * Attributes of the HTML tag\n * E.g. `{'disabled': true, 'value': 'demo', 'rel': 'preconnect'}`\n */\n attributes?: {\n [attributeName: string]: string | boolean;\n };\n /**\n * The tag name e.g. `div`, `script`, `link`, `meta`\n */\n tagName: string;\n /**\n * The inner HTML\n */\n innerHTML?: string;\n};\n"})}),"\n",(0,i.jsx)(n.p,{children:"Example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus-plugin/src/index.js"',children:"export default function (context, options) {\n return {\n name: 'docusaurus-plugin',\n loadContent: async () => {\n return {remoteHeadTags: await fetchHeadTagsFromAPI()};\n },\n // highlight-start\n injectHtmlTags({content}) {\n return {\n headTags: [\n {\n tagName: 'link',\n attributes: {\n rel: 'preconnect',\n href: 'https://www.github.com',\n },\n },\n ...content.remoteHeadTags,\n ],\n preBodyTags: [\n {\n tagName: 'script',\n attributes: {\n charset: 'utf-8',\n src: '/noflash.js',\n },\n },\n ],\n postBodyTags: [`<div> This is post body </div>`],\n };\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,i.jsx)(n.p,{children:"Tags will be added as follows:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"headTags"})," will be inserted before the closing ",(0,i.jsx)(n.code,{children:"</head>"})," tag after scripts added by config."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"preBodyTags"})," will be inserted after the opening ",(0,i.jsx)(n.code,{children:"<body>"})," tag before any child elements."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"postBodyTags"})," will be inserted before the closing ",(0,i.jsx)(n.code,{children:"</body>"})," tag after all child elements."]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"getClientModules",children:(0,i.jsx)(n.code,{children:"getClientModules()"})}),"\n",(0,i.jsxs)(n.p,{children:["Returns an array of paths to the ",(0,i.jsx)(n.a,{href:"/docs/advanced/client#client-modules",children:"client modules"})," that are to be imported into the client bundle."]}),"\n",(0,i.jsxs)(n.p,{children:["As an example, to make your theme load a ",(0,i.jsx)(n.code,{children:"customCss"})," or ",(0,i.jsx)(n.code,{children:"customJs"})," file path from ",(0,i.jsx)(n.code,{children:"options"})," passed in by the user:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="my-theme/src/index.js"',children:"export default function (context, options) {\n const {customCss, customJs} = options || {};\n return {\n name: 'name-of-my-theme',\n // highlight-start\n getClientModules() {\n return [customCss, customJs];\n },\n // highlight-end\n };\n}\n"})})]})}function u(e={}){let{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>a});var s=t(63696);let i={},o=s.createContext(i);function r(e){let n=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/77eb9b8f.8dc3690d.js b/assets/js/77eb9b8f.8dc3690d.js new file mode 100644 index 0000000000..f60ad558a0 --- /dev/null +++ b/assets/js/77eb9b8f.8dc3690d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[99175],{80207:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>c});let s=JSON.parse('{"id":"api/plugin-methods/lifecycle-apis","title":"Lifecycle APIs","description":"During the build, plugins are loaded in parallel to fetch their own contents and render them to routes. Plugins may also configure webpack or post-process the generated files.","source":"@site/docs/api/plugin-methods/lifecycle-apis.mdx","sourceDirName":"api/plugin-methods","slug":"/api/plugin-methods/lifecycle-apis","permalink":"/docs/api/plugin-methods/lifecycle-apis","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugin-methods/lifecycle-apis.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":1,"frontMatter":{"sidebar_position":1,"toc_max_heading_level":4},"sidebar":"api","previous":{"title":"Plugin Method References","permalink":"/docs/api/plugin-methods/"},"next":{"title":"Extending infrastructure","permalink":"/docs/api/plugin-methods/extend-infrastructure"}}');var i=t(62540),o=t(43023);let r={sidebar_position:1,toc_max_heading_level:4},a="Lifecycle APIs",d={},c=[{value:"<code>async loadContent()</code>",id:"loadContent",level:2},{value:"<code>async contentLoaded({content, actions})</code>",id:"contentLoaded",level:2},{value:"<code>content</code>",id:"content",level:3},{value:"<code>actions</code>",id:"actions",level:3},{value:"<code>addRoute(config: RouteConfig): void</code>",id:"addRoute",level:4},{value:"<code>createData(name: string, data: any): Promise<string></code>",id:"createData",level:4},{value:"<code>setGlobalData(data: any): void</code>",id:"setGlobalData",level:4},{value:"<code>configureWebpack(config, isServer, utils, content)</code>",id:"configureWebpack",level:2},{value:"<code>config</code>",id:"config",level:3},{value:"<code>isServer</code>",id:"isServer",level:3},{value:"<code>utils</code>",id:"utils",level:3},{value:"<code>content</code>",id:"content-1",level:3},{value:"Merge strategy",id:"merge-strategy",level:3},{value:"Configuring dev server",id:"configuring-dev-server",level:3},{value:"<code>configurePostCss(options)</code>",id:"configurePostCss",level:2},{value:"<code>postBuild(props)</code>",id:"postBuild",level:2},{value:"<code>injectHtmlTags({content})</code>",id:"injectHtmlTags",level:2},{value:"<code>getClientModules()</code>",id:"getClientModules",level:2}];function l(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"lifecycle-apis",children:"Lifecycle APIs"})}),"\n",(0,i.jsx)(n.p,{children:"During the build, plugins are loaded in parallel to fetch their own contents and render them to routes. Plugins may also configure webpack or post-process the generated files."}),"\n",(0,i.jsx)(n.h2,{id:"loadContent",children:(0,i.jsx)(n.code,{children:"async loadContent()"})}),"\n",(0,i.jsx)(n.p,{children:"Plugins should use this lifecycle to fetch from data sources (filesystem, remote API, headless CMS, etc.) or do some server processing. The return value is the content it needs."}),"\n",(0,i.jsx)(n.p,{children:"For example, this plugin below returns a random integer between 1 and 10 as content."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus-plugin/src/index.js"',children:"export default function (context, options) {\n return {\n name: 'docusaurus-plugin',\n // highlight-start\n async loadContent() {\n return 1 + Math.floor(Math.random() * 10);\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"contentLoaded",children:(0,i.jsx)(n.code,{children:"async contentLoaded({content, actions})"})}),"\n",(0,i.jsxs)(n.p,{children:["The data that was loaded in ",(0,i.jsx)(n.code,{children:"loadContent"})," will be consumed in ",(0,i.jsx)(n.code,{children:"contentLoaded"}),". It can be rendered to routes, registered as global data, etc."]}),"\n",(0,i.jsx)(n.h3,{id:"content",children:(0,i.jsx)(n.code,{children:"content"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"contentLoaded"})," will be called ",(0,i.jsx)(n.em,{children:"after"})," ",(0,i.jsx)(n.code,{children:"loadContent"})," is done. The return value of ",(0,i.jsx)(n.code,{children:"loadContent()"})," will be passed to ",(0,i.jsx)(n.code,{children:"contentLoaded"})," as ",(0,i.jsx)(n.code,{children:"content"}),"."]}),"\n",(0,i.jsx)(n.h3,{id:"actions",children:(0,i.jsx)(n.code,{children:"actions"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"actions"})," contain three functions:"]}),"\n",(0,i.jsx)(n.h4,{id:"addRoute",children:(0,i.jsx)(n.code,{children:"addRoute(config: RouteConfig): void"})}),"\n",(0,i.jsx)(n.p,{children:"Create a route to add to the website."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:'export type RouteConfig = {\n /**\n * With leading slash. Trailing slash will be normalized by config.\n */\n path: string;\n /**\n * Component used to render this route, a path that the bundler can `require`.\n */\n component: string;\n /**\n * Props. Each entry should be `[propName]: pathToPropModule` (created with\n * `createData`)\n */\n modules?: RouteModules;\n /**\n * The route context will wrap the `component`. Use `useRouteContext` to\n * retrieve what\'s declared here. Note that all custom route context declared\n * here will be namespaced under {@link RouteContext.data}.\n */\n context?: RouteModules;\n /**\n * Nested routes config, useful for "layout routes" having subroutes.\n */\n routes?: RouteConfig[];\n /**\n * React router config option: `exact` routes would not match subroutes.\n */\n exact?: boolean;\n /**\n * React router config option: `strict` routes are sensitive to the presence\n * of a trailing slash.\n */\n strict?: boolean;\n /**\n * Used to sort routes.\n * Higher-priority routes will be matched first.\n */\n priority?: number;\n /**\n * Optional route metadata\n */\n metadata?: RouteMetadata;\n /**\n * Extra props; will be available on the client side.\n */\n [propName: string]: unknown;\n};\n\n/**\n * Plugin authors can assign extra metadata to the created routes\n * It is only available on the Node.js side, and not sent to the browser\n * Optional: plugin authors are encouraged but not required to provide it\n *\n * Some plugins might use this data to provide additional features.\n * This is the case of the sitemap plugin to provide support for "lastmod".\n * See also: https://github.com/facebook/docusaurus/pull/9954\n */\nexport type RouteMetadata = {\n /**\n * The source code file path that led to the creation of the current route\n * In official content plugins, this is usually a Markdown or React file\n * This path is expected to be relative to the site directory\n */\n sourceFilePath?: string;\n /**\n * The last updated date of this route\n * This is generally read from the Git history of the sourceFilePath\n * but can also be provided through other means (usually front matter)\n *\n * This has notably been introduced for adding "lastmod" support to the\n * sitemap plugin, see https://github.com/facebook/docusaurus/pull/9954\n */\n lastUpdatedAt?: number;\n};\n\ntype RouteModules = {\n [module: string]: Module | RouteModules | RouteModules[];\n};\n\ntype Module =\n | {\n path: string;\n __import?: boolean;\n query?: ParsedUrlQueryInput;\n }\n | string;\n'})}),"\n",(0,i.jsx)(n.h4,{id:"createData",children:(0,i.jsx)(n.code,{children:"createData(name: string, data: any): Promise<string>"})}),"\n",(0,i.jsx)(n.p,{children:"A declarative callback to create static data (generally JSON or string) which can later be provided to your routes as props. Takes the file name and data to be stored, and returns the actual data file's path."}),"\n",(0,i.jsxs)(n.p,{children:["For example, this plugin below creates a ",(0,i.jsx)(n.code,{children:"/friends"})," page which displays ",(0,i.jsx)(n.code,{children:"Your friends are: Yangshun, Sebastien"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:'title="website/src/components/Friends.js"',children:"import React from 'react';\n\nexport default function FriendsComponent({friends}) {\n return <div>Your friends are {friends.join(',')}</div>;\n}\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus-friends-plugin/src/index.js"',children:"export default function friendsPlugin(context, options) {\n return {\n name: 'docusaurus-friends-plugin',\n // highlight-start\n async contentLoaded({content, actions}) {\n const {createData, addRoute} = actions;\n // Create friends.json\n const friends = ['Yangshun', 'Sebastien'];\n const friendsJsonPath = await createData(\n 'friends.json',\n JSON.stringify(friends),\n );\n\n // Add the '/friends' routes, and ensure it receives the friends props\n addRoute({\n path: '/friends',\n component: '@site/src/components/Friends.js',\n modules: {\n // propName -> JSON file path\n friends: friendsJsonPath,\n },\n exact: true,\n });\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,i.jsx)(n.h4,{id:"setGlobalData",children:(0,i.jsx)(n.code,{children:"setGlobalData(data: any): void"})}),"\n",(0,i.jsx)(n.p,{children:"This function permits one to create some global plugin data that can be read from any page, including the pages created by other plugins, and your theme layout."}),"\n",(0,i.jsxs)(n.p,{children:["This data becomes accessible to your client-side/theme code through the ",(0,i.jsx)(n.a,{href:"/docs/docusaurus-core#useGlobalData",children:(0,i.jsx)(n.code,{children:"useGlobalData"})})," and ",(0,i.jsx)(n.a,{href:"/docs/docusaurus-core#usePluginData",children:(0,i.jsx)(n.code,{children:"usePluginData"})})," hooks."]}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["Global data is... global: its size affects the loading time of all pages of your site, so try to keep it small. Prefer ",(0,i.jsx)(n.code,{children:"createData"})," and page-specific data whenever possible."]})}),"\n",(0,i.jsxs)(n.p,{children:["For example, this plugin below creates a ",(0,i.jsx)(n.code,{children:"/friends"})," page which displays ",(0,i.jsx)(n.code,{children:"Your friends are: Yangshun, Sebastien"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:'title="website/src/components/Friends.js"',children:"import React from 'react';\nimport {usePluginData} from '@docusaurus/useGlobalData';\n\nexport default function FriendsComponent() {\n const {friends} = usePluginData('docusaurus-friends-plugin');\n return <div>Your friends are {friends.join(',')}</div>;\n}\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus-friends-plugin/src/index.js"',children:"export default function friendsPlugin(context, options) {\n return {\n name: 'docusaurus-friends-plugin',\n // highlight-start\n async contentLoaded({content, actions}) {\n const {setGlobalData, addRoute} = actions;\n // Create friends global data\n setGlobalData({friends: ['Yangshun', 'Sebastien']});\n\n // Add the '/friends' routes\n addRoute({\n path: '/friends',\n component: '@site/src/components/Friends.js',\n exact: true,\n });\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"configureWebpack",children:(0,i.jsx)(n.code,{children:"configureWebpack(config, isServer, utils, content)"})}),"\n",(0,i.jsxs)(n.p,{children:["Modifies the internal webpack config. If the return value is a JavaScript object, it will be merged into the final config using ",(0,i.jsx)(n.a,{href:"https://github.com/survivejs/webpack-merge",children:(0,i.jsx)(n.code,{children:"webpack-merge"})}),". If it is a function, it will be called and receive ",(0,i.jsx)(n.code,{children:"config"})," as the first argument and an ",(0,i.jsx)(n.code,{children:"isServer"})," flag as the second argument."]}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["The API of ",(0,i.jsx)(n.code,{children:"configureWebpack"})," will be modified in the future to accept an object (",(0,i.jsx)(n.code,{children:"configureWebpack({config, isServer, utils, content})"}),")"]})}),"\n",(0,i.jsx)(n.h3,{id:"config",children:(0,i.jsx)(n.code,{children:"config"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"configureWebpack"})," is called with ",(0,i.jsx)(n.code,{children:"config"})," generated according to client/server build. You may treat this as the base config to be merged with."]}),"\n",(0,i.jsx)(n.h3,{id:"isServer",children:(0,i.jsx)(n.code,{children:"isServer"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"configureWebpack"})," will be called both in server build and in client build. The server build receives ",(0,i.jsx)(n.code,{children:"true"})," and the client build receives ",(0,i.jsx)(n.code,{children:"false"})," as ",(0,i.jsx)(n.code,{children:"isServer"}),"."]}),"\n",(0,i.jsx)(n.h3,{id:"utils",children:(0,i.jsx)(n.code,{children:"utils"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"configureWebpack"})," also receives an util object:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"getStyleLoaders(isServer: boolean, cssOptions: {[key: string]: any}): Loader[]"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"getJSLoader(isServer: boolean, cacheOptions?: {}): Loader | null"})}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"You may use them to return your webpack configuration conditionally."}),"\n",(0,i.jsxs)(n.p,{children:["For example, this plugin below modify the webpack config to transpile ",(0,i.jsx)(n.code,{children:".foo"})," files."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus-plugin/src/index.js"',children:"export default function (context, options) {\n return {\n name: 'custom-docusaurus-plugin',\n // highlight-start\n configureWebpack(config, isServer, utils) {\n const {getJSLoader} = utils;\n return {\n module: {\n rules: [\n {\n test: /\\.foo$/,\n use: [getJSLoader(isServer), 'my-custom-webpack-loader'],\n },\n ],\n },\n };\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,i.jsx)(n.h3,{id:"content-1",children:(0,i.jsx)(n.code,{children:"content"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"configureWebpack"})," will be called both with the content loaded by the plugin."]}),"\n",(0,i.jsx)(n.h3,{id:"merge-strategy",children:"Merge strategy"}),"\n",(0,i.jsxs)(n.p,{children:["We merge the Webpack configuration parts of plugins into the global Webpack config using ",(0,i.jsx)(n.a,{href:"https://github.com/survivejs/webpack-merge",children:"webpack-merge"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"It is possible to specify the merge strategy. For example, if you want a webpack rule to be prepended instead of appended:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus-plugin/src/index.js"',children:"export default function (context, options) {\n return {\n name: 'custom-docusaurus-plugin',\n configureWebpack(config, isServer, utils) {\n return {\n // highlight-start\n mergeStrategy: {'module.rules': 'prepend'},\n module: {rules: [myRuleToPrepend]},\n // highlight-end\n };\n },\n };\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Read the ",(0,i.jsx)(n.a,{href:"https://github.com/survivejs/webpack-merge#merging-with-strategies",children:"webpack-merge strategy doc"})," for more details."]}),"\n",(0,i.jsx)(n.h3,{id:"configuring-dev-server",children:"Configuring dev server"}),"\n",(0,i.jsxs)(n.p,{children:["The dev server can be configured through returning a ",(0,i.jsx)(n.code,{children:"devServer"})," field."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus-plugin/src/index.js"',children:"export default function (context, options) {\n return {\n name: 'custom-docusaurus-plugin',\n configureWebpack(config, isServer, utils) {\n return {\n // highlight-start\n devServer: {\n open: '/docs', // Opens localhost:3000/docs instead of localhost:3000/\n },\n // highlight-end\n };\n },\n };\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"configurePostCss",children:(0,i.jsx)(n.code,{children:"configurePostCss(options)"})}),"\n",(0,i.jsxs)(n.p,{children:["Modifies ",(0,i.jsxs)(n.a,{href:"https://webpack.js.org/loaders/postcss-loader/#postcssoptions",children:[(0,i.jsx)(n.code,{children:"postcssOptions"})," of ",(0,i.jsx)(n.code,{children:"postcss-loader"})]})," during the generation of the client bundle."]}),"\n",(0,i.jsxs)(n.p,{children:["Should return the mutated ",(0,i.jsx)(n.code,{children:"postcssOptions"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["By default, ",(0,i.jsx)(n.code,{children:"postcssOptions"})," looks like this:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"const postcssOptions = {\n ident: 'postcss',\n plugins: [require('autoprefixer')],\n};\n"})}),"\n",(0,i.jsx)(n.p,{children:"Example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus-plugin/src/index.js"',children:"export default function (context, options) {\n return {\n name: 'docusaurus-plugin',\n // highlight-start\n configurePostCss(postcssOptions) {\n // Appends new PostCSS plugin.\n postcssOptions.plugins.push(require('postcss-import'));\n return postcssOptions;\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"postBuild",children:(0,i.jsx)(n.code,{children:"postBuild(props)"})}),"\n",(0,i.jsx)(n.p,{children:"Called when a (production) build finishes."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"interface Props {\n siteDir: string;\n generatedFilesDir: string;\n siteConfig: DocusaurusConfig;\n outDir: string;\n baseUrl: string;\n headTags: string;\n preBodyTags: string;\n postBodyTags: string;\n routesPaths: string[];\n plugins: Plugin<any>[];\n content: Content;\n}\n"})}),"\n",(0,i.jsx)(n.p,{children:"Example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus-plugin/src/index.js"',children:"export default function (context, options) {\n return {\n name: 'docusaurus-plugin',\n // highlight-start\n async postBuild({siteConfig = {}, routesPaths = [], outDir}) {\n // Print out to console all the rendered routes.\n routesPaths.map((route) => {\n console.log(route);\n });\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"injectHtmlTags",children:(0,i.jsx)(n.code,{children:"injectHtmlTags({content})"})}),"\n",(0,i.jsx)(n.p,{children:"Inject head and/or body HTML tags to Docusaurus generated HTML."}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"injectHtmlTags"})," will be called both with the content loaded by the plugin."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"function injectHtmlTags(): {\n headTags?: HtmlTags;\n preBodyTags?: HtmlTags;\n postBodyTags?: HtmlTags;\n};\n\ntype HtmlTags = string | HtmlTagObject | (string | HtmlTagObject)[];\n\ntype HtmlTagObject = {\n /**\n * Attributes of the HTML tag\n * E.g. `{'disabled': true, 'value': 'demo', 'rel': 'preconnect'}`\n */\n attributes?: {\n [attributeName: string]: string | boolean;\n };\n /**\n * The tag name e.g. `div`, `script`, `link`, `meta`\n */\n tagName: string;\n /**\n * The inner HTML\n */\n innerHTML?: string;\n};\n"})}),"\n",(0,i.jsx)(n.p,{children:"Example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus-plugin/src/index.js"',children:"export default function (context, options) {\n return {\n name: 'docusaurus-plugin',\n loadContent: async () => {\n return {remoteHeadTags: await fetchHeadTagsFromAPI()};\n },\n // highlight-start\n injectHtmlTags({content}) {\n return {\n headTags: [\n {\n tagName: 'link',\n attributes: {\n rel: 'preconnect',\n href: 'https://www.github.com',\n },\n },\n ...content.remoteHeadTags,\n ],\n preBodyTags: [\n {\n tagName: 'script',\n attributes: {\n charset: 'utf-8',\n src: '/noflash.js',\n },\n },\n ],\n postBodyTags: [`<div> This is post body </div>`],\n };\n },\n // highlight-end\n };\n}\n"})}),"\n",(0,i.jsx)(n.p,{children:"Tags will be added as follows:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"headTags"})," will be inserted before the closing ",(0,i.jsx)(n.code,{children:"</head>"})," tag after scripts added by config."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"preBodyTags"})," will be inserted after the opening ",(0,i.jsx)(n.code,{children:"<body>"})," tag before any child elements."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"postBodyTags"})," will be inserted before the closing ",(0,i.jsx)(n.code,{children:"</body>"})," tag after all child elements."]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"getClientModules",children:(0,i.jsx)(n.code,{children:"getClientModules()"})}),"\n",(0,i.jsxs)(n.p,{children:["Returns an array of paths to the ",(0,i.jsx)(n.a,{href:"/docs/advanced/client#client-modules",children:"client modules"})," that are to be imported into the client bundle."]}),"\n",(0,i.jsxs)(n.p,{children:["As an example, to make your theme load a ",(0,i.jsx)(n.code,{children:"customCss"})," or ",(0,i.jsx)(n.code,{children:"customJs"})," file path from ",(0,i.jsx)(n.code,{children:"options"})," passed in by the user:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="my-theme/src/index.js"',children:"export default function (context, options) {\n const {customCss, customJs} = options || {};\n return {\n name: 'name-of-my-theme',\n // highlight-start\n getClientModules() {\n return [customCss, customJs];\n },\n // highlight-end\n };\n}\n"})})]})}function u(e={}){let{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>a});var s=t(63696);let i={},o=s.createContext(i);function r(e){let n=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7a272146.5a8c64c9.js b/assets/js/7a272146.5a8c64c9.js deleted file mode 100644 index eac54375f1..0000000000 --- a/assets/js/7a272146.5a8c64c9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[19015],{6474:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>s,metadata:()=>t,toc:()=>r});let t=JSON.parse('{"id":"api/plugin-methods/static-methods","title":"Static methods","description":"Static methods are not part of the plugin instance\u2014they are attached to the constructor function. These methods are used to validate and normalize the plugin options and theme config, which are then used as constructor parameters to initialize the plugin instance.","source":"@site/docs/api/plugin-methods/static-methods.mdx","sourceDirName":"api/plugin-methods","slug":"/api/plugin-methods/static-methods","permalink":"/docs/api/plugin-methods/static-methods","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugin-methods/static-methods.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":4,"frontMatter":{"sidebar_position":4},"sidebar":"api","previous":{"title":"I18n lifecycles","permalink":"/docs/api/plugin-methods/i18n-lifecycles"},"next":{"title":"Plugins overview","permalink":"/docs/api/plugins"}}');var o=n(62540),a=n(43023);let s={sidebar_position:4},d="Static methods",l={},r=[{value:"<code>validateOptions({options, validate})</code>",id:"validateOptions",level:2},{value:"<code>options</code>",id:"options",level:3},{value:"<code>validate</code>",id:"validate",level:3},{value:"<code>validateThemeConfig({themeConfig, validate})</code>",id:"validateThemeConfig",level:2},{value:"<code>themeConfig</code>",id:"themeConfig",level:3},{value:"<code>validate</code>",id:"validate-1",level:3}];function c(e){let i={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(i.header,{children:(0,o.jsx)(i.h1,{id:"static-methods",children:"Static methods"})}),"\n",(0,o.jsx)(i.p,{children:"Static methods are not part of the plugin instance\u2014they are attached to the constructor function. These methods are used to validate and normalize the plugin options and theme config, which are then used as constructor parameters to initialize the plugin instance."}),"\n",(0,o.jsx)(i.h2,{id:"validateOptions",children:(0,o.jsx)(i.code,{children:"validateOptions({options, validate})"})}),"\n",(0,o.jsx)(i.p,{children:"Returns validated and normalized options for the plugin. This method is called before the plugin is initialized. You must return the options since they will be passed to the plugin during initialization."}),"\n",(0,o.jsx)(i.h3,{id:"options",children:(0,o.jsx)(i.code,{children:"options"})}),"\n",(0,o.jsxs)(i.p,{children:[(0,o.jsx)(i.code,{children:"validateOptions"})," is called with ",(0,o.jsx)(i.code,{children:"options"})," passed to plugin for validation and normalization."]}),"\n",(0,o.jsx)(i.h3,{id:"validate",children:(0,o.jsx)(i.code,{children:"validate"})}),"\n",(0,o.jsxs)(i.p,{children:[(0,o.jsx)(i.code,{children:"validateOptions"})," is called with ",(0,o.jsx)(i.code,{children:"validate"})," function which takes a ",(0,o.jsx)(i.strong,{children:(0,o.jsx)(i.a,{href:"https://www.npmjs.com/package/joi",children:"Joi"})})," schema and options as the arguments, returns validated and normalized options. ",(0,o.jsx)(i.code,{children:"validate"})," will automatically handle error and validation config."]}),"\n",(0,o.jsxs)(i.admonition,{type:"tip",children:[(0,o.jsxs)(i.p,{children:[(0,o.jsx)(i.a,{href:"https://www.npmjs.com/package/joi",children:"Joi"})," is recommended for validation and normalization of options."]}),(0,o.jsxs)(i.p,{children:["To avoid mixing Joi versions, use ",(0,o.jsx)(i.code,{children:"import {Joi} from '@docusaurus/utils-validation'"})]})]}),"\n",(0,o.jsxs)(i.p,{children:["If you don't use ",(0,o.jsx)(i.strong,{children:(0,o.jsx)(i.a,{href:"https://www.npmjs.com/package/joi",children:"Joi"})})," for validation you can throw an Error in case of invalid options and return options in case of success."]}),"\n",(0,o.jsx)(i.pre,{children:(0,o.jsx)(i.code,{className:"language-js",metastring:'title="my-plugin/src/index.js"',children:"export default function myPlugin(context, options) {\n return {\n name: 'docusaurus-plugin',\n // rest of methods\n };\n}\n\n// highlight-start\nexport function validateOptions({options, validate}) {\n const validatedOptions = validate(myValidationSchema, options);\n return validatedOptions;\n}\n// highlight-end\n"})}),"\n",(0,o.jsx)(i.h2,{id:"validateThemeConfig",children:(0,o.jsx)(i.code,{children:"validateThemeConfig({themeConfig, validate})"})}),"\n",(0,o.jsx)(i.p,{children:"Return validated and normalized configuration for the theme."}),"\n",(0,o.jsx)(i.h3,{id:"themeConfig",children:(0,o.jsx)(i.code,{children:"themeConfig"})}),"\n",(0,o.jsxs)(i.p,{children:[(0,o.jsx)(i.code,{children:"validateThemeConfig"})," is called with ",(0,o.jsx)(i.code,{children:"themeConfig"})," provided in ",(0,o.jsx)(i.code,{children:"docusaurus.config.js"})," for validation and normalization."]}),"\n",(0,o.jsx)(i.h3,{id:"validate-1",children:(0,o.jsx)(i.code,{children:"validate"})}),"\n",(0,o.jsxs)(i.p,{children:[(0,o.jsx)(i.code,{children:"validateThemeConfig"})," is called with ",(0,o.jsx)(i.code,{children:"validate"})," function which takes a ",(0,o.jsx)(i.strong,{children:(0,o.jsx)(i.a,{href:"https://www.npmjs.com/package/joi",children:"Joi"})})," schema and ",(0,o.jsx)(i.code,{children:"themeConfig"})," as the arguments, returns validated and normalized options. ",(0,o.jsx)(i.code,{children:"validate"})," will automatically handle error and validation config."]}),"\n",(0,o.jsxs)(i.admonition,{type:"tip",children:[(0,o.jsxs)(i.p,{children:[(0,o.jsx)(i.a,{href:"https://www.npmjs.com/package/joi",children:"Joi"})," is recommended for validation and normalization of theme config."]}),(0,o.jsxs)(i.p,{children:["To avoid mixing Joi versions, use ",(0,o.jsx)(i.code,{children:"import {Joi} from '@docusaurus/utils-validation'"})]})]}),"\n",(0,o.jsxs)(i.p,{children:["If you don't use ",(0,o.jsx)(i.strong,{children:(0,o.jsx)(i.a,{href:"https://www.npmjs.com/package/joi",children:"Joi"})})," for validation you can throw an Error in case of invalid options."]}),"\n",(0,o.jsx)(i.pre,{children:(0,o.jsx)(i.code,{className:"language-js",metastring:'title="my-theme/src/index.js"',children:"export default function myPlugin(context, options) {\n return {\n name: 'docusaurus-plugin',\n // rest of methods\n };\n}\n\n// highlight-start\nexport function validateThemeConfig({themeConfig, validate}) {\n const validatedThemeConfig = validate(myValidationSchema, options);\n return validatedThemeConfig;\n}\n// highlight-end\n"})})]})}function h(e={}){let{wrapper:i}={...(0,a.R)(),...e.components};return i?(0,o.jsx)(i,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},43023:(e,i,n)=>{n.d(i,{R:()=>s,x:()=>d});var t=n(63696);let o={},a=t.createContext(o);function s(e){let i=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function d(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),t.createElement(a.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7a272146.7468ab43.js b/assets/js/7a272146.7468ab43.js new file mode 100644 index 0000000000..8107a23033 --- /dev/null +++ b/assets/js/7a272146.7468ab43.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[19015],{6474:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>s,metadata:()=>t,toc:()=>r});let t=JSON.parse('{"id":"api/plugin-methods/static-methods","title":"Static methods","description":"Static methods are not part of the plugin instance\u2014they are attached to the constructor function. These methods are used to validate and normalize the plugin options and theme config, which are then used as constructor parameters to initialize the plugin instance.","source":"@site/docs/api/plugin-methods/static-methods.mdx","sourceDirName":"api/plugin-methods","slug":"/api/plugin-methods/static-methods","permalink":"/docs/api/plugin-methods/static-methods","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/plugin-methods/static-methods.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":4,"frontMatter":{"sidebar_position":4},"sidebar":"api","previous":{"title":"I18n lifecycles","permalink":"/docs/api/plugin-methods/i18n-lifecycles"},"next":{"title":"Plugins overview","permalink":"/docs/api/plugins"}}');var o=n(62540),a=n(43023);let s={sidebar_position:4},d="Static methods",l={},r=[{value:"<code>validateOptions({options, validate})</code>",id:"validateOptions",level:2},{value:"<code>options</code>",id:"options",level:3},{value:"<code>validate</code>",id:"validate",level:3},{value:"<code>validateThemeConfig({themeConfig, validate})</code>",id:"validateThemeConfig",level:2},{value:"<code>themeConfig</code>",id:"themeConfig",level:3},{value:"<code>validate</code>",id:"validate-1",level:3}];function c(e){let i={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(i.header,{children:(0,o.jsx)(i.h1,{id:"static-methods",children:"Static methods"})}),"\n",(0,o.jsx)(i.p,{children:"Static methods are not part of the plugin instance\u2014they are attached to the constructor function. These methods are used to validate and normalize the plugin options and theme config, which are then used as constructor parameters to initialize the plugin instance."}),"\n",(0,o.jsx)(i.h2,{id:"validateOptions",children:(0,o.jsx)(i.code,{children:"validateOptions({options, validate})"})}),"\n",(0,o.jsx)(i.p,{children:"Returns validated and normalized options for the plugin. This method is called before the plugin is initialized. You must return the options since they will be passed to the plugin during initialization."}),"\n",(0,o.jsx)(i.h3,{id:"options",children:(0,o.jsx)(i.code,{children:"options"})}),"\n",(0,o.jsxs)(i.p,{children:[(0,o.jsx)(i.code,{children:"validateOptions"})," is called with ",(0,o.jsx)(i.code,{children:"options"})," passed to plugin for validation and normalization."]}),"\n",(0,o.jsx)(i.h3,{id:"validate",children:(0,o.jsx)(i.code,{children:"validate"})}),"\n",(0,o.jsxs)(i.p,{children:[(0,o.jsx)(i.code,{children:"validateOptions"})," is called with ",(0,o.jsx)(i.code,{children:"validate"})," function which takes a ",(0,o.jsx)(i.strong,{children:(0,o.jsx)(i.a,{href:"https://www.npmjs.com/package/joi",children:"Joi"})})," schema and options as the arguments, returns validated and normalized options. ",(0,o.jsx)(i.code,{children:"validate"})," will automatically handle error and validation config."]}),"\n",(0,o.jsxs)(i.admonition,{type:"tip",children:[(0,o.jsxs)(i.p,{children:[(0,o.jsx)(i.a,{href:"https://www.npmjs.com/package/joi",children:"Joi"})," is recommended for validation and normalization of options."]}),(0,o.jsxs)(i.p,{children:["To avoid mixing Joi versions, use ",(0,o.jsx)(i.code,{children:"import {Joi} from '@docusaurus/utils-validation'"})]})]}),"\n",(0,o.jsxs)(i.p,{children:["If you don't use ",(0,o.jsx)(i.strong,{children:(0,o.jsx)(i.a,{href:"https://www.npmjs.com/package/joi",children:"Joi"})})," for validation you can throw an Error in case of invalid options and return options in case of success."]}),"\n",(0,o.jsx)(i.pre,{children:(0,o.jsx)(i.code,{className:"language-js",metastring:'title="my-plugin/src/index.js"',children:"export default function myPlugin(context, options) {\n return {\n name: 'docusaurus-plugin',\n // rest of methods\n };\n}\n\n// highlight-start\nexport function validateOptions({options, validate}) {\n const validatedOptions = validate(myValidationSchema, options);\n return validatedOptions;\n}\n// highlight-end\n"})}),"\n",(0,o.jsx)(i.h2,{id:"validateThemeConfig",children:(0,o.jsx)(i.code,{children:"validateThemeConfig({themeConfig, validate})"})}),"\n",(0,o.jsx)(i.p,{children:"Return validated and normalized configuration for the theme."}),"\n",(0,o.jsx)(i.h3,{id:"themeConfig",children:(0,o.jsx)(i.code,{children:"themeConfig"})}),"\n",(0,o.jsxs)(i.p,{children:[(0,o.jsx)(i.code,{children:"validateThemeConfig"})," is called with ",(0,o.jsx)(i.code,{children:"themeConfig"})," provided in ",(0,o.jsx)(i.code,{children:"docusaurus.config.js"})," for validation and normalization."]}),"\n",(0,o.jsx)(i.h3,{id:"validate-1",children:(0,o.jsx)(i.code,{children:"validate"})}),"\n",(0,o.jsxs)(i.p,{children:[(0,o.jsx)(i.code,{children:"validateThemeConfig"})," is called with ",(0,o.jsx)(i.code,{children:"validate"})," function which takes a ",(0,o.jsx)(i.strong,{children:(0,o.jsx)(i.a,{href:"https://www.npmjs.com/package/joi",children:"Joi"})})," schema and ",(0,o.jsx)(i.code,{children:"themeConfig"})," as the arguments, returns validated and normalized options. ",(0,o.jsx)(i.code,{children:"validate"})," will automatically handle error and validation config."]}),"\n",(0,o.jsxs)(i.admonition,{type:"tip",children:[(0,o.jsxs)(i.p,{children:[(0,o.jsx)(i.a,{href:"https://www.npmjs.com/package/joi",children:"Joi"})," is recommended for validation and normalization of theme config."]}),(0,o.jsxs)(i.p,{children:["To avoid mixing Joi versions, use ",(0,o.jsx)(i.code,{children:"import {Joi} from '@docusaurus/utils-validation'"})]})]}),"\n",(0,o.jsxs)(i.p,{children:["If you don't use ",(0,o.jsx)(i.strong,{children:(0,o.jsx)(i.a,{href:"https://www.npmjs.com/package/joi",children:"Joi"})})," for validation you can throw an Error in case of invalid options."]}),"\n",(0,o.jsx)(i.pre,{children:(0,o.jsx)(i.code,{className:"language-js",metastring:'title="my-theme/src/index.js"',children:"export default function myPlugin(context, options) {\n return {\n name: 'docusaurus-plugin',\n // rest of methods\n };\n}\n\n// highlight-start\nexport function validateThemeConfig({themeConfig, validate}) {\n const validatedThemeConfig = validate(myValidationSchema, options);\n return validatedThemeConfig;\n}\n// highlight-end\n"})})]})}function h(e={}){let{wrapper:i}={...(0,a.R)(),...e.components};return i?(0,o.jsx)(i,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},43023:(e,i,n)=>{n.d(i,{R:()=>s,x:()=>d});var t=n(63696);let o={},a=t.createContext(o);function s(e){let i=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function d(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),t.createElement(a.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7ada4fa6.6096ec4d.js b/assets/js/7ada4fa6.6096ec4d.js deleted file mode 100644 index 91fddb66fc..0000000000 --- a/assets/js/7ada4fa6.6096ec4d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[66029],{70361:(e,n,s)=>{s.d(n,{A:()=>i});var r=s(62540);s(63696);var t=s(11750);let o="dot_giz1",a="bar_rrRL";function i({children:e,minHeight:n,url:s="http://localhost:3000",style:i,bodyStyle:d}){var l,c;return(0,r.jsxs)("div",{className:"browserWindow_my1Q",style:(l=function(e){for(var n=1;n<arguments.length;n++){var s=null!=arguments[n]?arguments[n]:{},r=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(s).filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable}))),r.forEach(function(n){var r;r=s[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},i),c=c={minHeight:n},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(c)):(function(e,n){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);s.push.apply(s,r)}return s})(Object(c)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(c,e))}),l),children:[(0,r.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,r.jsxs)("div",{className:"buttons_uHc7",children:[(0,r.jsx)("span",{className:o,style:{background:"#f25f58"}}),(0,r.jsx)("span",{className:o,style:{background:"#fbbe3c"}}),(0,r.jsx)("span",{className:o,style:{background:"#58cb42"}})]}),(0,r.jsx)("div",{className:(0,t.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:s}),(0,r.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:a}),(0,r.jsx)("span",{className:a}),(0,r.jsx)("span",{className:a})]})})]}),(0,r.jsx)("div",{className:"browserWindowBody_Idgs",style:d,children:e})]})}},64233:(e,n,s)=>{s.d(n,{A:()=>r});let r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAT3UlEQVR42u1dCVQVV5pWXNt2N0czykl33KImZ7IgKgqIghq3KCDK+qowCek2c2K0Mx3idBxakzYxJnZiq3Gf6Bg7UdN2R51MxnTSia3gew9Rwccm7oqiiIK4sPxTt1hEHo9XvPVW1fed852Dr+67UNb/1f3/+9/731atAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8i2CxGjDUJXzMGmcSZnmoHAF7B6GMJvYPNwq5gk1AmMS/YJMbaahtkNsRLbeghmoU4d7cDAO+NCEbhQCMjrZbe5q81bhdyVOwuXbtqZdDSZ+yau9oBgNcgGeIvmzDQJkUy1ix8ZKMtsWvuagcAXsNYs/iyLSNlIgk2GebLQjKJQ6R/32+mbcWYI8KTrm6HJwR4170yCV80Y6T1I4kklH122lFNG9e2wxMC3Ao/U1KnQLPgF2SK/xeri5TiIxlikX1DBXVANpoXSy/DzGCjYfdYs2FRiFkcxWxEu/GF0RAm3fT1Bv8JJyV+LLlV08ccnNuFCQeGAdrheWkkXxaSGueruZFDurlrzfn4QSbDGRgAqJD3JK4NMcU8oo3RIz1hOB4q6AZeCzKK0aoXCIs58DBBt9Esfip5Ke3UPkN1Eg8TdB8N+5grr+JRxPAJHiLoTgaZhf97MiuqvVqTgNPxEEEPcK0qBTIyNa6rnWw1CLooJjHMUZc6KMWnNs9xDg8Q9ACLQtMMvbhfeFi7tuoLZMhBz1NczaUw2H4OFizhAYFe5l0uM+61m53wgMAWM+C7aBr425Ey2c8umPpdxmO+oxQPWz8cvnOmTGf7Gf1DDHXs25lYxMrIfmafOdnvOe4WONZsk4XhaD7nkJpAPQN96w2a/cw+c7S/QYsC6vuq46D/CHD+7zQaRvDmYsXVbG6CEWmZQ5YGWRk0+8zR/phb1bg/9pkLgvVk/twso+EViETbfPw1PyuDHrDQ36n4o6GL1eHRn7skDhlrEnZyuvbKMN/TIglKM9AzmyfLbzL2sBjZz89sniJfg2G7Nvbwad+m3qB9OrQh/z0RTschzK1yXZAu8zi/CxQ9NJL4fT6d+kwdQG27drB6q9WxXbcO1GfaAPL78wswcBfx6Y2T6ZHxv5DJfuY1acj5Kl55JHHPtOCBaOozZQC18mltUxhWlNoyobjwDQVyng/hVhyBaYbBrEKhW0aNL2Y85LO2lB37daHhX86AAemAPC4z6R5sEt9j6nWXONr8vJ3D4qhj287tIRIIxMP7PmrKd151p1vV3MjRtmt7eiT0F+QbN4z6xQ6T/eO2XdrbbP8z3y5wtyAQT+VAxAh336wcczQVhPfsKM+ANJWsYp+xRFS7Hh2b/C6LSWBIEIgnsuh73T1b1VRA3ql/dxq5d5bd74/4OlJu21TgjtktCMT9uwbdFJDXjx5TBzQ5cigRR71I/hZJ7bpbTwf3mT4QxgSBuHtbrSHcnUlAlstwxXqdgcmjmsyTIJkIgag2SGcZ8qYCckcWyAUdTpBnsBr398yWKTAoCESd07xD3rFeHMdmqxztj81uNe5v6B+CYVAQiAeD9qPiIOkP/NIVN9l//nArg/ZNeNLh/nzjn7Tqr//rw2FQEIg6M+lN7RcY/LvR3PQHupdh6S9R+LH5ZMh8i17NfoeS81bSO6fX0cfn/ps2X/wL7bzyv/TNtYP0z5KjdLw0hwrKL1DR/Rt0r+q+Plys0d/HyMtDGib4nNlx5ur+QPcZuLPQTSa9bjk0oyuM2dX9adm4Zx57jeIzk+lXliX0Ru4KSjm1hlac/S/69MKXtP3yXvrr1b/Td8WplHbzOGWV5dPZO5fo+v0Slxi4ZgTiiUw66BoD/32BPQO/zI2Ba0cgbs6kg9aMPfFbWn5mM/258H80a+CaEYi7M+ngA7JR4ERpHgFqEogbM+lgDSelv0LfFx+B1SNIBxtzWsarlH27ABavZoF4YsOUHhliEuX4AlCOwsJC2rVrF7+JwjHGuU8Em4X9MHDn+afzOzRtzGVlZbR69WqKjY2lqKgoev/996m4uNihvqqrqyklJYU6dKhf3Kq/Pel6izuKK246bYQXLlygvXv30ldffUWZmZlO9cX6CAwMpI4dO1Lbtm3pueeeo61btzrUV1ZWFj3++ONWKxseffRRMpvNLe7vzTffrClF5ONDEydOhIuldb53ZqNTxpyfn08RERFWBsiM2mQytbi/+fPn29zCnJSU1KK+ioqKyNe3poTpU089RRs3bqTt27dTQEBAvUiuXr2quL8ff/xRFgYT7e7duxGk64E/FBsdFsfhw4epR48eNTsvO3WioKAgmjRpEvXu3Vv+rHPnzvTTTz8p7u/dd9+tqXwouS/Lly+nS5cuUUlJCa1fv17ui11j7pFSTJs2Tf4O+7tu3bpV//ndu3fr3v40Y8YMRX1VVFTQkCFD5O8sW7YMmXS98MLdQofEYbFYqFu3brLBsBGEBa11KC0tpcTERPkaa8NGGXs4ePCg/HZu06YN7du3z+r6/v3769/e6enpdvvbs2dPTeHrnj1l968xLl68SN2712yR/vbbb+3299lnn8ltn3jiCbp37x4y6XphedWdFouDBbiDBw+WDWb27NlUWVlp1aaqqooiIyPlNsOHD3/IqBrj9u3bNGjQILnt4sWLbbZbuHCh3Mbf37/J31kH9rvq+mPBuS2w0Yi18fPzk4NvW2C/iwmDtd22bRsy6RAINWvM48aNq48z2L9tgblH/fv3l9suWLDAZrt58+bJbZ5++ulmhcRGpscee8yu4a9YsUJuM2zYMNk1soXy8nLq16+f3Hbnzp0227EJAtZm4MCBVv0hkw4XS8aNGzdkV4S9bZmxMMM6f/683e+lpaVR+/Y1W5A//PBDq+vr1q2Tr7E2GRkZil2nrl27Um5ubpOTBuwaa/PNN9/Y7a/u97MRgsUmjcE+Y8JgbbZs2YJMut6oZGnJ6NGjHz5bQzKYggLlWXf2BmbxA/suC+LZbNKOHTsoLi6OWrduLXPz5s2K+2P5DNYXC5rz8h6sGbt8+bI8qrFrrI3S4JuNNOw7ycnJVtfffvvtZkcjTPNqnMtOb7BrRGPGjJFnlpiRfPDBB826VbbABNGrVy/rii/t2tGqVata7OY9++yz8ve7dOkiC41NAdfNng0dOlR2x5TCaDTKfwf77tKlS2UhsJiEuXFs0oCJ+9ChQ+pYauKOPel65sT0JJckCpXmJVhgzLLZM2fOpEWLFj00ArR0oqCp/AuLj9hI0lIwkbKRrG7mqy42YVyyZIl61mJhqYnruercdtUuI2HTzZs2baK1a9fSkSPOrURm8U1droOxb9++tGHDBixWxGJFkVJLjmEFYoMcCYuxmpsBQ5Cuu+Xu8+hk2SmoQ63L3ZFJ90w8cuD6YVi9KgWCTLrHuDB3uVwep5qqoQC1CASZdM8z+sQb9P6ZTbSjcD+KNnAvEGTSUfYHAkGQDoGhcBymeUGUHkUmHdS6wG5VlmFPOgjq/gAdEMQRbCCoZYEgkw5CIMikgxAIMukgBIJMOgiBIEgHIRBM84KgegSCTDoIgSCTzvcWXbNAv7bE0/oL0fSPG1F0+k4k3aoMp4rqmUSkL8LFAus563gCbb88h4ruR+hOCKoQCIJ07/CFDAP9rWg23a+GILgVCDLp3uGSghi6WREOMXAvEGTSPcrxUpzxtTRqQAQqEQgCck9WNzFQasksCEBVAkEm3WMjB8SBIB20QbhVmOYFbXBpQazLDYjlR25XhetGIJOyXuw5JntuF2TSNVd61EAlLpytqpa4sjCWJmSLMtdcidG2QKhV67CcxHVh2WJVLVcik65zjmVZ9QyRxmcKFHpSJMkoaGqOSHGnDPTGuXj53w1pLIvSnECk+yoPzRZPh2Un/r3x/YZZEifBxdLrcpOMB6JQyt3Fc7QokOb4OoJ0vdEs0LgTLRNGHQ/cnE07JZEcLo2SXTCtC2RCdmJ8aI64MNSSOI25YMik64COiqMxPy6M0cMI0oDCGmTSdeBWuUIcYbWBe6kGZrdacM/VIafF7sikazggb2nMYU8gJZURehJIVUhO0iPIpGt29HCdOBj/qDMXS3ohfIogXctLUDJd516xaeCvb8yhMv24WGekQP2VsFNJ3TDNq1G60r2qY4IkFLWLpIX3fMojIkEm3QsV0LMFlwuEcfS/P0N+ft29ypdf/qWnBEJhFiEJmXQIRDH7RQ2uP5fcW+zbt6PHBDIhJ/EluFhwsRRxzsl4OmgeTyZTiFdZXDzVUwLJd6uLhSBdO0H63huzdRWkM9fKreJAJl07SULGjy7H6iuTbhHXI5Ou8URhGBKFHCcKEZB7fxQ5iqUm/C41QSadk8WKrhHJJ4X6crFCLeKfkEnXiavl7HL31LJZutgPUrfcPSxXmIoNU3rcMGURsGGKpw1TyKTzKZTxmWJtnkT6OSOBxhyYRX6fPW9lML0C+3k9KdgUR47s4dSWW4kF3Gy5RSbdtXTUMEaM6NG84bVuRUNSAiThSCNNlkCDk/25FAfjqFE9XVO0IVtcW1uwoTLMInyEsj86FohSllaGU7mOyv5MPR7bIyRrXmcUjoNAQFR3h0BAVHeHQEBUdwchEFR3ByEQVHdHkA6BQCCY5oVAIBBk0tUrEH//Htwm/jyZSedWIMikc55JVxFdkkmHiwWBgAjSIRAQmXQQAkEmHYRAkEkHeRDIP0ujaOG5eJqWK8j8jfQzOyQHAkEmXfcC2XA12uaOuk1F0RAIgnRtC4Qd4XyifBZZ7kRaHefMRg5722wbjySsD9YX61MLx0OH5cwNnJwX1xXTvDoTyF3JeD8pjKHncx4Y+xTp51VXYuRrrM3CJk6ybUx22u2D/mLlPuquTc4RavqrVv2e9LthOcKqgPNRP0MmXQcCqZAMdsFZ28b/unTNf1QvGpceZ1cg48xx5NPOh4Z/PsVmG79tz1Prtj5q3ZPekD/4mZLaIZOu9dpXx+1XKBl3XFlFk9BMAw1+a4Tddo8Zhqkyk95EQbz5cLG0Xsk9S3TLUQfN8ddnErRS9seMIF3rZ4FYPC+QF3IFrQjkFjLpOAvE5UwsMGhFIBZk0rV+FsgJweMC+Vilp95a34uwBpl0rdffNXtWIKzS+9Hbs2hlYSwZThnkqWA2onx+LZr7KeDGFdxDsw3jwnIS18mnSWWLd9iIEmpJfMvtU8DIpHtwBMny/Ahii/8mBe88JxRb8BJIc3tCEUG6Nt0re/zgcozqBVLrfm3GNK+aC1Ef408cjBM5Po2qhfdS6dZTppBJd2/cEWoRuRQIY8/RfdWQSbfP3LlhSoPuxSGpcb7IpMO1UsIe/n1UkUm3OxrmCsF2jTs09aU+0kO5zQwcLhYHTBe5Fgdb1HirMlwLLtbdSVkv9lSS01ha93CCzMpP4UGQzve5g+7iHzk+z7CF97JWadIvr8EDqmJZcmTSvUSzd5aWKOX8swn1y+tVLpCD001JnezHHkdE/yYe1B17IkEm3U3BeTq/o8faK9Hy0nvVn3JrET5SvAxeeii/sfGwqqSY5DVk0j3sXh3jd/Rgm7V43+Ou8F7uSyyT+P1EizjdnkC+sDPk7x+TPrcvMukemr3K5DtA532PuyP3EZojvtvc9G6mggd3LcgoLAg49PD6FQTp7li5K6hGIE3tcVejQGSRWBKn2RpBLrXgAbK2vws0zu2PaV7t7P1whnV73NUuEHZstC2B3HFwtuVIkEn8cKxRiJFGkn8NyZgbGGw07IaROzmCZKtLIGyPu6oz6fY2VkkP5R4MEwJxlCGmOG4y6ferw525l5u2BHIdhsmRQOBiOUy2gNLhGCRb/M6ZIB3U8PZaZ5haNosbgRTcjXT8XnKFqbZGkK9gmDxtjlKPOLZwNs37j1uzHbwXYWlzOwMXwTCRKFSaKJyeK8huFU8jh5K6xNaJQqGUuVU2R476aVqzOAqGiaUmSnjmXiTXy0xePZOgLN7ISxymfL06pfhID+YcjJMTgXAah7xymu9CclfuR8jFJhTcy1EHSvgYlsE41VVq1NPccX0O1wJhFVcU3UuOmNzyfeWpcb7Ih/C1YYqnfAirsnijkt8l7iz/EZ1vUJQMnJif0NvRQnBrYZw8bZriRyDbrvE9euwpnqOs1E+OsNjhogsBh17sKT2YIhgnLxunRC7WZc3OF6ic4w1SN6WRLTJP0ehxOSRrXmfn6lwZxWgYJ8r+NKywmMbhdG5DLrkYp+ReqsbnGCa7qij1pzBOVDdh3HqN7zMN/3pjttLA/D9dVt8q6suoNmNNwl9gnPreRPV76c1czbE4WKJyUo6il8euFErxcWkROD9TUqdgk2EfjJOf3IgnRfLepViqrOY37mCbtKbmKhLH1pDvU9q6pVIi29SOmS19zWxNqC3MUM25W6Vg5KhmhRlaUavWHjgoxzAHs1scBe4ZclUOl4sjJt9AxrIoboVRUhmuNCA/F2ZJnOTRs0BC0wy9gk3iamyr5ad2lquCd1alZM2VGG6PNGBJQJbnCM+ze7+sSslKr56RPj7D0K92WQrWbnEiFLYsxZG1W2zEYMszeC0herUiQv77FGTIz7EDcRSVEPUYKMUnyGgYIY0qyVIAuVN6WMdrdyZiuYqXgvixRwX5KOjxmTWLHdnORLZchfnrEdLb9+XTCZKLEiv78GfvRXA0QsykmxXhlF8eST8UR9G6i9H0q7x4Cm10H2HZQoUkhmsSj0/IFnZOyBFeDctNGNoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsI3/BxVeQNnL1kBuAAAAAElFTkSuQmCC"},71432:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>c});let r=JSON.parse('{"id":"guides/markdown-features/introduction","title":"Markdown Features","description":"Docusaurus uses MDX. Find out more about Docusaurus-specific features when writing Markdown.","source":"@site/docs/guides/markdown-features/markdown-features-intro.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features","permalink":"/docs/markdown-features","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-intro.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"introduction","description":"Docusaurus uses MDX. Find out more about Docusaurus-specific features when writing Markdown.","slug":"/markdown-features"},"sidebar":"docs","previous":{"title":"Blog","permalink":"/docs/blog"},"next":{"title":"MDX and React","permalink":"/docs/markdown-features/react"}}');var t=s(62540),o=s(43023),a=s(70361);let i={id:"introduction",description:"Docusaurus uses MDX. Find out more about Docusaurus-specific features when writing Markdown.",slug:"/markdown-features"},d="Markdown Features",l={},c=[{value:"MDX vs. CommonMark",id:"mdx-vs-commonmark",level:2},{value:"Standard features",id:"standard-features",level:2},{value:"Front matter",id:"front-matter",level:2},{value:"Quotes",id:"quotes",level:2},{value:"Details",id:"details",level:2}];function u(e){let n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components},{Details:r}=n;return r||function(e,n){throw Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"markdown-features",children:"Markdown Features"})}),"\n","\n",(0,t.jsxs)(n.p,{children:["Docusaurus uses ",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.a,{href:"https://commonmark.org/",children:"Markdown"})})," as its main content authoring format."]}),"\n",(0,t.jsx)(n.admonition,{title:"Learn Markdown",type:"tip",children:(0,t.jsxs)(n.p,{children:["You can ",(0,t.jsx)(n.a,{href:"https://commonmark.org/help/",children:"learn Markdown in 10 minutes"}),"."]})}),"\n",(0,t.jsxs)(n.p,{children:["Docusaurus uses modern tooling to help you create ",(0,t.jsx)(n.strong,{children:"interactive documentation"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.a,{href:"https://mdxjs.com/",children:"MDX"})})," compiler transforms ",(0,t.jsx)(n.strong,{children:"Markdown files to React components"}),", and allows you to use JSX in your Markdown content. This enables you to easily interleave React components within your content, and create delightful learning experiences."]}),"\n",(0,t.jsxs)(n.admonition,{title:"Use the MDX Playground",type:"tip",children:[(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.a,{href:"https://mdxjs.com/playground/",children:"MDX playground"})})," is your new best friend!"]}),(0,t.jsx)(n.p,{children:"It is a very helpful debugging tool that shows how the MDX compiler transforms Markdown to React."}),(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Options"}),": select the right format (MDX or CommonMark) and the following plugins Docusaurus uses: ",(0,t.jsx)(n.code,{children:"remark-gfm"}),", ",(0,t.jsx)(n.code,{children:"remark-directive"}),", ",(0,t.jsx)(n.code,{children:"rehype-raw"}),"."]})]}),"\n",(0,t.jsx)(n.h2,{id:"mdx-vs-commonmark",children:"MDX vs. CommonMark"}),"\n",(0,t.jsxs)(n.p,{children:["Docusaurus compiles both ",(0,t.jsx)(n.code,{children:".md"})," and ",(0,t.jsx)(n.code,{children:".mdx"})," files to React components using the MDX compiler, but ",(0,t.jsx)(n.strong,{children:"the syntax can be interpreted differently"})," depending on your settings."]}),"\n",(0,t.jsxs)(n.p,{children:["The MDX compiler supports ",(0,t.jsx)(n.a,{href:"https://mdxjs.com/packages/mdx/#optionsformat",children:"2 formats"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The ",(0,t.jsx)(n.a,{href:"https://mdxjs.com/docs/what-is-mdx/",children:"MDX format"}),": a powerful parser allowing the usage of JSX"]}),"\n",(0,t.jsxs)(n.li,{children:["The ",(0,t.jsx)(n.a,{href:"https://commonmark.org/",children:"CommonMark format"}),": a standard-compliant Markdown parser that does not allow the usage of JSX"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["By default, ",(0,t.jsx)(n.strong,{children:"Docusaurus v3 uses the MDX format for all files"})," (including ",(0,t.jsx)(n.code,{children:".md"})," files) for historical reasons."]}),"\n",(0,t.jsxs)(n.p,{children:["It is possible to ",(0,t.jsx)(n.strong,{children:"opt-in for CommonMark"})," using the ",(0,t.jsx)(n.a,{href:"/docs/api/docusaurus-config#markdown",children:(0,t.jsx)(n.code,{children:"siteConfig.markdown.format"})})," setting or the ",(0,t.jsx)(n.code,{children:"format: md"})," front matter."]}),"\n",(0,t.jsxs)(n.admonition,{title:"how to use CommonMark",type:"tip",children:[(0,t.jsxs)(n.p,{children:["If you plan to use CommonMark, we recommend the ",(0,t.jsx)(n.a,{href:"/docs/api/docusaurus-config#markdown",children:(0,t.jsx)(n.code,{children:"siteConfig.markdown.format: 'detect'"})})," setting. The appropriate format will be selected automatically, based on file extensions:"]}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:".md"})," files will use the CommonMark format"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:".mdx"})," files will use the MDX format"]}),"\n"]})]}),"\n",(0,t.jsx)(n.admonition,{title:"Experimental CommonMark support",type:"danger",children:(0,t.jsxs)(n.p,{children:["The CommonMark support is ",(0,t.jsx)(n.strong,{children:"experimental"})," and currently has a few ",(0,t.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/issues/9092",children:"limitations"}),"."]})}),"\n",(0,t.jsx)(n.h2,{id:"standard-features",children:"Standard features"}),"\n",(0,t.jsx)(n.p,{children:"Markdown is a syntax that enables you to write formatted content in a readable syntax."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-md",children:"### My Doc Section\n\nHello world message with some **bold** text, some _italic_ text, and a [link](/)\n\n![img alt](/img/docusaurus.png)\n"})}),"\n",(0,t.jsxs)(a.A,{children:[(0,t.jsx)("h3",{children:"My Doc Section"}),(0,t.jsxs)(n.p,{children:["Hello world message with some ",(0,t.jsx)(n.strong,{children:"bold"})," text, some ",(0,t.jsx)(n.em,{children:"italic"})," text and a ",(0,t.jsx)(n.a,{href:"/",children:"link"})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"img alt",src:s(64233).A+"",width:"200",height:"200"})})]}),"\n",(0,t.jsxs)(r,{children:[(0,t.jsx)("summary",{children:"Markdown is declarative"}),(0,t.jsxs)(n.p,{children:["Some may assume a 1-1 correlation between Markdown and HTML, e.g., ",(0,t.jsx)(n.code,{children:"![Preview](/img/docusaurus.png)"})," will always become ",(0,t.jsx)(n.code,{children:'<img src="/img/docusaurus.png" alt="Preview" />'}),", as-is. However, ",(0,t.jsx)(n.em,{children:"that is not the case"}),"."]}),(0,t.jsxs)(n.p,{children:["The Markdown syntax ",(0,t.jsx)(n.code,{children:"![message](url)"})," only declaratively tells Docusaurus that an image needs to be inserted here, but we may do other things like transforming a ",(0,t.jsx)(n.a,{href:"/docs/markdown-features/assets#images",children:"file path to URL path"}),", so the generated markup may differ from the output of other Markdown renderers, or a na\xefve hand-transcription to the equivalent JSX/HTML code."]}),(0,t.jsxs)(n.p,{children:["In general, you should only assume the ",(0,t.jsx)(n.em,{children:"semantics"})," of the markup (",(0,t.jsx)(n.code,{children:"```"})," fences become ",(0,t.jsx)(n.a,{href:"/docs/markdown-features/code-blocks",children:"code blocks"}),"; ",(0,t.jsx)(n.code,{children:">"})," becomes ",(0,t.jsx)(n.a,{href:"#quotes",children:"quotes"}),", etc.), but not the actual compiled output."]})]}),"\n",(0,t.jsx)(n.h2,{id:"front-matter",children:"Front matter"}),"\n",(0,t.jsx)(n.p,{children:"Front matter is used to add metadata to your Markdown file. All content plugins have their own front matter schema, and use the front matter to enrich the default metadata inferred from the content or other configuration."}),"\n",(0,t.jsxs)(n.p,{children:["Front matter is provided at the very top of the file, enclosed by three dashes ",(0,t.jsx)(n.code,{children:"---"}),". The content is parsed as ",(0,t.jsx)(n.a,{href:"https://yaml.org/spec/1.2.2/",children:"YAML"}),"."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-md",children:"---\ntitle: My Doc Title\nmore_data:\n - Can be provided\n - as: objects\n or: arrays\n---\n"})}),"\n",(0,t.jsxs)(n.admonition,{type:"info",children:[(0,t.jsx)(n.p,{children:"The API documentation of each official plugin lists the supported attributes:"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-docs#markdown-front-matter",children:"Docs front matter"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-blog#markdown-front-matter",children:"Blog front matter"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-pages#markdown-front-matter",children:"Pages front matter"})}),"\n"]})]}),"\n",(0,t.jsxs)(n.admonition,{title:"enhance your front matter",type:"tip",children:[(0,t.jsxs)(n.p,{children:["Use the ",(0,t.jsxs)(n.a,{href:"/docs/api/docusaurus-config#markdown",children:["Markdown config ",(0,t.jsx)(n.code,{children:"parseFrontMatter"})," function"]})," to provide your own front matter parser, or to enhance the default parser."]}),(0,t.jsx)(n.p,{children:"It is possible to reuse the default parser to wrap it with your own custom proprietary logic. This makes it possible to implement convenient front matter transformations, shortcuts, or to integrate with external systems using front matter that Docusaurus plugins do not support."}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n markdown: {\n // highlight-start\n parseFrontMatter: async (params) => {\n // Reuse the default parser\n const result = await params.defaultParseFrontMatter(params);\n\n // Process front matter description placeholders\n result.frontMatter.description =\n result.frontMatter.description?.replaceAll('{{MY_VAR}}', 'MY_VALUE');\n\n // Create your own front matter shortcut\n if (result.frontMatter.i_do_not_want_docs_pagination) {\n result.frontMatter.pagination_prev = null;\n result.frontMatter.pagination_next = null;\n }\n\n // Rename an unsupported front matter coming from another system\n if (result.frontMatter.cms_seo_summary) {\n result.frontMatter.description = result.frontMatter.cms_seo_summary;\n delete result.frontMatter.cms_seo_summary;\n }\n\n return result;\n },\n // highlight-end\n },\n};\n"})})]}),"\n",(0,t.jsx)(n.h2,{id:"quotes",children:"Quotes"}),"\n",(0,t.jsx)(n.p,{children:"Markdown quotes are beautifully styled:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-md",children:"> Easy to maintain open source documentation websites.\n>\n> \u2014 Docusaurus\n"})}),"\n",(0,t.jsx)(a.A,{children:(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"Easy to maintain open source documentation websites."}),"\n",(0,t.jsx)(n.p,{children:"\u2014 Docusaurus"}),"\n"]})}),"\n",(0,t.jsx)(n.h2,{id:"details",children:"Details"}),"\n",(0,t.jsxs)(n.p,{children:["Markdown can embed HTML elements, and ",(0,t.jsx)(n.a,{href:"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details",children:(0,t.jsx)(n.code,{children:"details"})})," HTML elements are beautifully styled:"]}),"\n","\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-md",children:'### Details element example\n\n<details>\n <summary>Toggle me!</summary>\n\n This is the detailed content\n\n ```js\n console.log("Markdown features including the code block are available");\n ```\n\n You can use Markdown here including **bold** and _italic_ text, and [inline link](https://docusaurus.io)\n <details>\n <summary>Nested toggle! Some surprise inside...</summary>\n\n \u{1F632}\u{1F632}\u{1F632}\u{1F632}\u{1F632}\n </details>\n</details>\n'})}),"\n",(0,t.jsxs)(a.A,{children:[(0,t.jsx)("h3",{children:"Details element example"}),(0,t.jsxs)(r,{children:[(0,t.jsx)("summary",{children:"Toggle me!"}),(0,t.jsx)(n.p,{children:"This is the detailed content"}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:'console.log("Markdown features including the code block are available");\n'})}),(0,t.jsxs)(n.p,{children:["You can use Markdown here including ",(0,t.jsx)(n.strong,{children:"bold"})," and ",(0,t.jsx)(n.em,{children:"italic"})," text, and ",(0,t.jsx)(n.a,{href:"https://docusaurus.io",children:"inline link"})]}),(0,t.jsxs)(r,{children:[(0,t.jsx)("summary",{children:"Nested toggle! Some surprise inside..."}),(0,t.jsx)(n.p,{children:"\u{1F632}\u{1F632}\u{1F632}\u{1F632}\u{1F632}"})]})]})]}),"\n",(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsxs)(n.p,{children:["You may want to keep your ",(0,t.jsx)(n.code,{children:"<summary>"})," on a single line. Keep in mind that ",(0,t.jsxs)(n.a,{href:"https://mdxjs.com/migrating/v2/#jsx",children:["MDX creates extra HTML ",(0,t.jsx)(n.code,{children:"<p>"})," paragraphs for line breaks."]}),". When in doubt, use the ",(0,t.jsx)(n.a,{href:"https://mdxjs.com/playground/",children:"MDX playground"})," to troubleshoot ",(0,t.jsx)(n.code,{children:"<details>"})," rendering problems."]})})]})}function h(e={}){let{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(u,{...e})}):u(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>a,x:()=>i});var r=s(63696);let t={},o=r.createContext(t);function a(e){let n=r.useContext(o);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7ada4fa6.cf3fb69a.js b/assets/js/7ada4fa6.cf3fb69a.js new file mode 100644 index 0000000000..db105c6b2d --- /dev/null +++ b/assets/js/7ada4fa6.cf3fb69a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[66029],{70361:(e,n,r)=>{r.d(n,{A:()=>i});var s=r(62540);r(63696);var t=r(11750);let o="dot_giz1",a="bar_rrRL";function i({children:e,minHeight:n,url:r="http://localhost:3000",style:i,bodyStyle:d}){var l,c;return(0,s.jsxs)("div",{className:"browserWindow_my1Q",style:(l=function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},s=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),s.forEach(function(n){var s;s=r[n],n in e?Object.defineProperty(e,n,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[n]=s})}return e}({},i),c=c={minHeight:n},Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(c)):(function(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);r.push.apply(r,s)}return r})(Object(c)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(c,e))}),l),children:[(0,s.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,s.jsxs)("div",{className:"buttons_uHc7",children:[(0,s.jsx)("span",{className:o,style:{background:"#f25f58"}}),(0,s.jsx)("span",{className:o,style:{background:"#fbbe3c"}}),(0,s.jsx)("span",{className:o,style:{background:"#58cb42"}})]}),(0,s.jsx)("div",{className:(0,t.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:r}),(0,s.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:a}),(0,s.jsx)("span",{className:a}),(0,s.jsx)("span",{className:a})]})})]}),(0,s.jsx)("div",{className:"browserWindowBody_Idgs",style:d,children:e})]})}},64233:(e,n,r)=>{r.d(n,{A:()=>s});let s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAT3UlEQVR42u1dCVQVV5pWXNt2N0czykl33KImZ7IgKgqIghq3KCDK+qowCek2c2K0Mx3idBxakzYxJnZiq3Gf6Bg7UdN2R51MxnTSia3gew9Rwccm7oqiiIK4sPxTt1hEHo9XvPVW1fed852Dr+67UNb/1f3/+9/731atAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8i2CxGjDUJXzMGmcSZnmoHAF7B6GMJvYPNwq5gk1AmMS/YJMbaahtkNsRLbeghmoU4d7cDAO+NCEbhQCMjrZbe5q81bhdyVOwuXbtqZdDSZ+yau9oBgNcgGeIvmzDQJkUy1ix8ZKMtsWvuagcAXsNYs/iyLSNlIgk2GebLQjKJQ6R/32+mbcWYI8KTrm6HJwR4170yCV80Y6T1I4kklH122lFNG9e2wxMC3Ao/U1KnQLPgF2SK/xeri5TiIxlikX1DBXVANpoXSy/DzGCjYfdYs2FRiFkcxWxEu/GF0RAm3fT1Bv8JJyV+LLlV08ccnNuFCQeGAdrheWkkXxaSGueruZFDurlrzfn4QSbDGRgAqJD3JK4NMcU8oo3RIz1hOB4q6AZeCzKK0aoXCIs58DBBt9Esfip5Ke3UPkN1Eg8TdB8N+5grr+JRxPAJHiLoTgaZhf97MiuqvVqTgNPxEEEPcK0qBTIyNa6rnWw1CLooJjHMUZc6KMWnNs9xDg8Q9ACLQtMMvbhfeFi7tuoLZMhBz1NczaUw2H4OFizhAYFe5l0uM+61m53wgMAWM+C7aBr425Ey2c8umPpdxmO+oxQPWz8cvnOmTGf7Gf1DDHXs25lYxMrIfmafOdnvOe4WONZsk4XhaD7nkJpAPQN96w2a/cw+c7S/QYsC6vuq46D/CHD+7zQaRvDmYsXVbG6CEWmZQ5YGWRk0+8zR/phb1bg/9pkLgvVk/twso+EViETbfPw1PyuDHrDQ36n4o6GL1eHRn7skDhlrEnZyuvbKMN/TIglKM9AzmyfLbzL2sBjZz89sniJfg2G7Nvbwad+m3qB9OrQh/z0RTschzK1yXZAu8zi/CxQ9NJL4fT6d+kwdQG27drB6q9WxXbcO1GfaAPL78wswcBfx6Y2T6ZHxv5DJfuY1acj5Kl55JHHPtOCBaOozZQC18mltUxhWlNoyobjwDQVyng/hVhyBaYbBrEKhW0aNL2Y85LO2lB37daHhX86AAemAPC4z6R5sEt9j6nWXONr8vJ3D4qhj287tIRIIxMP7PmrKd151p1vV3MjRtmt7eiT0F+QbN4z6xQ6T/eO2XdrbbP8z3y5wtyAQT+VAxAh336wcczQVhPfsKM+ANJWsYp+xRFS7Hh2b/C6LSWBIEIgnsuh73T1b1VRA3ql/dxq5d5bd74/4OlJu21TgjtktCMT9uwbdFJDXjx5TBzQ5cigRR71I/hZJ7bpbTwf3mT4QxgSBuHtbrSHcnUlAlstwxXqdgcmjmsyTIJkIgag2SGcZ8qYCckcWyAUdTpBnsBr398yWKTAoCESd07xD3rFeHMdmqxztj81uNe5v6B+CYVAQiAeD9qPiIOkP/NIVN9l//nArg/ZNeNLh/nzjn7Tqr//rw2FQEIg6M+lN7RcY/LvR3PQHupdh6S9R+LH5ZMh8i17NfoeS81bSO6fX0cfn/ps2X/wL7bzyv/TNtYP0z5KjdLw0hwrKL1DR/Rt0r+q+Plys0d/HyMtDGib4nNlx5ur+QPcZuLPQTSa9bjk0oyuM2dX9adm4Zx57jeIzk+lXliX0Ru4KSjm1hlac/S/69MKXtP3yXvrr1b/Td8WplHbzOGWV5dPZO5fo+v0Slxi4ZgTiiUw66BoD/32BPQO/zI2Ba0cgbs6kg9aMPfFbWn5mM/258H80a+CaEYi7M+ngA7JR4ERpHgFqEogbM+lgDSelv0LfFx+B1SNIBxtzWsarlH27ABavZoF4YsOUHhliEuX4AlCOwsJC2rVrF7+JwjHGuU8Em4X9MHDn+afzOzRtzGVlZbR69WqKjY2lqKgoev/996m4uNihvqqrqyklJYU6dKhf3Kq/Pel6izuKK246bYQXLlygvXv30ldffUWZmZlO9cX6CAwMpI4dO1Lbtm3pueeeo61btzrUV1ZWFj3++ONWKxseffRRMpvNLe7vzTffrClF5ONDEydOhIuldb53ZqNTxpyfn08RERFWBsiM2mQytbi/+fPn29zCnJSU1KK+ioqKyNe3poTpU089RRs3bqTt27dTQEBAvUiuXr2quL8ff/xRFgYT7e7duxGk64E/FBsdFsfhw4epR48eNTsvO3WioKAgmjRpEvXu3Vv+rHPnzvTTTz8p7u/dd9+tqXwouS/Lly+nS5cuUUlJCa1fv17ui11j7pFSTJs2Tf4O+7tu3bpV//ndu3fr3v40Y8YMRX1VVFTQkCFD5O8sW7YMmXS98MLdQofEYbFYqFu3brLBsBGEBa11KC0tpcTERPkaa8NGGXs4ePCg/HZu06YN7du3z+r6/v3769/e6enpdvvbs2dPTeHrnj1l968xLl68SN2712yR/vbbb+3299lnn8ltn3jiCbp37x4y6XphedWdFouDBbiDBw+WDWb27NlUWVlp1aaqqooiIyPlNsOHD3/IqBrj9u3bNGjQILnt4sWLbbZbuHCh3Mbf37/J31kH9rvq+mPBuS2w0Yi18fPzk4NvW2C/iwmDtd22bRsy6RAINWvM48aNq48z2L9tgblH/fv3l9suWLDAZrt58+bJbZ5++ulmhcRGpscee8yu4a9YsUJuM2zYMNk1soXy8nLq16+f3Hbnzp0227EJAtZm4MCBVv0hkw4XS8aNGzdkV4S9bZmxMMM6f/683e+lpaVR+/Y1W5A//PBDq+vr1q2Tr7E2GRkZil2nrl27Um5ubpOTBuwaa/PNN9/Y7a/u97MRgsUmjcE+Y8JgbbZs2YJMut6oZGnJ6NGjHz5bQzKYggLlWXf2BmbxA/suC+LZbNKOHTsoLi6OWrduLXPz5s2K+2P5DNYXC5rz8h6sGbt8+bI8qrFrrI3S4JuNNOw7ycnJVtfffvvtZkcjTPNqnMtOb7BrRGPGjJFnlpiRfPDBB826VbbABNGrVy/rii/t2tGqVata7OY9++yz8ve7dOkiC41NAdfNng0dOlR2x5TCaDTKfwf77tKlS2UhsJiEuXFs0oCJ+9ChQ+pYauKOPel65sT0JJckCpXmJVhgzLLZM2fOpEWLFj00ArR0oqCp/AuLj9hI0lIwkbKRrG7mqy42YVyyZIl61mJhqYnruercdtUuI2HTzZs2baK1a9fSkSPOrURm8U1droOxb9++tGHDBixWxGJFkVJLjmEFYoMcCYuxmpsBQ5Cuu+Xu8+hk2SmoQ63L3ZFJ90w8cuD6YVi9KgWCTLrHuDB3uVwep5qqoQC1CASZdM8z+sQb9P6ZTbSjcD+KNnAvEGTSUfYHAkGQDoGhcBymeUGUHkUmHdS6wG5VlmFPOgjq/gAdEMQRbCCoZYEgkw5CIMikgxAIMukgBIJMOgiBIEgHIRBM84KgegSCTDoIgSCTzvcWXbNAv7bE0/oL0fSPG1F0+k4k3aoMp4rqmUSkL8LFAus563gCbb88h4ruR+hOCKoQCIJ07/CFDAP9rWg23a+GILgVCDLp3uGSghi6WREOMXAvEGTSPcrxUpzxtTRqQAQqEQgCck9WNzFQasksCEBVAkEm3WMjB8SBIB20QbhVmOYFbXBpQazLDYjlR25XhetGIJOyXuw5JntuF2TSNVd61EAlLpytqpa4sjCWJmSLMtdcidG2QKhV67CcxHVh2WJVLVcik65zjmVZ9QyRxmcKFHpSJMkoaGqOSHGnDPTGuXj53w1pLIvSnECk+yoPzRZPh2Un/r3x/YZZEifBxdLrcpOMB6JQyt3Fc7QokOb4OoJ0vdEs0LgTLRNGHQ/cnE07JZEcLo2SXTCtC2RCdmJ8aI64MNSSOI25YMik64COiqMxPy6M0cMI0oDCGmTSdeBWuUIcYbWBe6kGZrdacM/VIafF7sikazggb2nMYU8gJZURehJIVUhO0iPIpGt29HCdOBj/qDMXS3ohfIogXctLUDJd516xaeCvb8yhMv24WGekQP2VsFNJ3TDNq1G60r2qY4IkFLWLpIX3fMojIkEm3QsV0LMFlwuEcfS/P0N+ft29ypdf/qWnBEJhFiEJmXQIRDH7RQ2uP5fcW+zbt6PHBDIhJ/EluFhwsRRxzsl4OmgeTyZTiFdZXDzVUwLJd6uLhSBdO0H63huzdRWkM9fKreJAJl07SULGjy7H6iuTbhHXI5Ou8URhGBKFHCcKEZB7fxQ5iqUm/C41QSadk8WKrhHJJ4X6crFCLeKfkEnXiavl7HL31LJZutgPUrfcPSxXmIoNU3rcMGURsGGKpw1TyKTzKZTxmWJtnkT6OSOBxhyYRX6fPW9lML0C+3k9KdgUR47s4dSWW4kF3Gy5RSbdtXTUMEaM6NG84bVuRUNSAiThSCNNlkCDk/25FAfjqFE9XVO0IVtcW1uwoTLMInyEsj86FohSllaGU7mOyv5MPR7bIyRrXmcUjoNAQFR3h0BAVHeHQEBUdwchEFR3ByEQVHdHkA6BQCCY5oVAIBBk0tUrEH//Htwm/jyZSedWIMikc55JVxFdkkmHiwWBgAjSIRAQmXQQAkEmHYRAkEkHeRDIP0ujaOG5eJqWK8j8jfQzOyQHAkEmXfcC2XA12uaOuk1F0RAIgnRtC4Qd4XyifBZZ7kRaHefMRg5722wbjySsD9YX61MLx0OH5cwNnJwX1xXTvDoTyF3JeD8pjKHncx4Y+xTp51VXYuRrrM3CJk6ybUx22u2D/mLlPuquTc4RavqrVv2e9LthOcKqgPNRP0MmXQcCqZAMdsFZ28b/unTNf1QvGpceZ1cg48xx5NPOh4Z/PsVmG79tz1Prtj5q3ZPekD/4mZLaIZOu9dpXx+1XKBl3XFlFk9BMAw1+a4Tddo8Zhqkyk95EQbz5cLG0Xsk9S3TLUQfN8ddnErRS9seMIF3rZ4FYPC+QF3IFrQjkFjLpOAvE5UwsMGhFIBZk0rV+FsgJweMC+Vilp95a34uwBpl0rdffNXtWIKzS+9Hbs2hlYSwZThnkqWA2onx+LZr7KeDGFdxDsw3jwnIS18mnSWWLd9iIEmpJfMvtU8DIpHtwBMny/Ahii/8mBe88JxRb8BJIc3tCEUG6Nt0re/zgcozqBVLrfm3GNK+aC1Ef408cjBM5Po2qhfdS6dZTppBJd2/cEWoRuRQIY8/RfdWQSbfP3LlhSoPuxSGpcb7IpMO1UsIe/n1UkUm3OxrmCsF2jTs09aU+0kO5zQwcLhYHTBe5Fgdb1HirMlwLLtbdSVkv9lSS01ha93CCzMpP4UGQzve5g+7iHzk+z7CF97JWadIvr8EDqmJZcmTSvUSzd5aWKOX8swn1y+tVLpCD001JnezHHkdE/yYe1B17IkEm3U3BeTq/o8faK9Hy0nvVn3JrET5SvAxeeii/sfGwqqSY5DVk0j3sXh3jd/Rgm7V43+Ou8F7uSyyT+P1EizjdnkC+sDPk7x+TPrcvMukemr3K5DtA532PuyP3EZojvtvc9G6mggd3LcgoLAg49PD6FQTp7li5K6hGIE3tcVejQGSRWBKn2RpBLrXgAbK2vws0zu2PaV7t7P1whnV73NUuEHZstC2B3HFwtuVIkEn8cKxRiJFGkn8NyZgbGGw07IaROzmCZKtLIGyPu6oz6fY2VkkP5R4MEwJxlCGmOG4y6ferw525l5u2BHIdhsmRQOBiOUy2gNLhGCRb/M6ZIB3U8PZaZ5haNosbgRTcjXT8XnKFqbZGkK9gmDxtjlKPOLZwNs37j1uzHbwXYWlzOwMXwTCRKFSaKJyeK8huFU8jh5K6xNaJQqGUuVU2R476aVqzOAqGiaUmSnjmXiTXy0xePZOgLN7ISxymfL06pfhID+YcjJMTgXAah7xymu9CclfuR8jFJhTcy1EHSvgYlsE41VVq1NPccX0O1wJhFVcU3UuOmNzyfeWpcb7Ih/C1YYqnfAirsnijkt8l7iz/EZ1vUJQMnJif0NvRQnBrYZw8bZriRyDbrvE9euwpnqOs1E+OsNjhogsBh17sKT2YIhgnLxunRC7WZc3OF6ic4w1SN6WRLTJP0ehxOSRrXmfn6lwZxWgYJ8r+NKywmMbhdG5DLrkYp+ReqsbnGCa7qij1pzBOVDdh3HqN7zMN/3pjttLA/D9dVt8q6suoNmNNwl9gnPreRPV76c1czbE4WKJyUo6il8euFErxcWkROD9TUqdgk2EfjJOf3IgnRfLepViqrOY37mCbtKbmKhLH1pDvU9q6pVIi29SOmS19zWxNqC3MUM25W6Vg5KhmhRlaUavWHjgoxzAHs1scBe4ZclUOl4sjJt9AxrIoboVRUhmuNCA/F2ZJnOTRs0BC0wy9gk3iamyr5ad2lquCd1alZM2VGG6PNGBJQJbnCM+ze7+sSslKr56RPj7D0K92WQrWbnEiFLYsxZG1W2zEYMszeC0herUiQv77FGTIz7EDcRSVEPUYKMUnyGgYIY0qyVIAuVN6WMdrdyZiuYqXgvixRwX5KOjxmTWLHdnORLZchfnrEdLb9+XTCZKLEiv78GfvRXA0QsykmxXhlF8eST8UR9G6i9H0q7x4Cm10H2HZQoUkhmsSj0/IFnZOyBFeDctNGNoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsI3/BxVeQNnL1kBuAAAAAElFTkSuQmCC"},71432:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>c});let s=JSON.parse('{"id":"guides/markdown-features/introduction","title":"Markdown Features","description":"Docusaurus uses MDX. Find out more about Docusaurus-specific features when writing Markdown.","source":"@site/docs/guides/markdown-features/markdown-features-intro.mdx","sourceDirName":"guides/markdown-features","slug":"/markdown-features","permalink":"/docs/markdown-features","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/markdown-features/markdown-features-intro.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"introduction","description":"Docusaurus uses MDX. Find out more about Docusaurus-specific features when writing Markdown.","slug":"/markdown-features"},"sidebar":"docs","previous":{"title":"Blog","permalink":"/docs/blog"},"next":{"title":"MDX and React","permalink":"/docs/markdown-features/react"}}');var t=r(62540),o=r(43023),a=r(70361);let i={id:"introduction",description:"Docusaurus uses MDX. Find out more about Docusaurus-specific features when writing Markdown.",slug:"/markdown-features"},d="Markdown Features",l={},c=[{value:"MDX vs. CommonMark",id:"mdx-vs-commonmark",level:2},{value:"Standard features",id:"standard-features",level:2},{value:"Front matter",id:"front-matter",level:2},{value:"Quotes",id:"quotes",level:2},{value:"Details",id:"details",level:2}];function u(e){let n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components},{Details:s}=n;return s||function(e,n){throw Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"markdown-features",children:"Markdown Features"})}),"\n","\n",(0,t.jsxs)(n.p,{children:["Docusaurus uses ",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.a,{href:"https://commonmark.org/",children:"Markdown"})})," as its main content authoring format."]}),"\n",(0,t.jsx)(n.admonition,{title:"Learn Markdown",type:"tip",children:(0,t.jsxs)(n.p,{children:["You can ",(0,t.jsx)(n.a,{href:"https://commonmark.org/help/",children:"learn Markdown in 10 minutes"}),"."]})}),"\n",(0,t.jsxs)(n.p,{children:["Docusaurus uses modern tooling to help you create ",(0,t.jsx)(n.strong,{children:"interactive documentation"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.a,{href:"https://mdxjs.com/",children:"MDX"})})," compiler transforms ",(0,t.jsx)(n.strong,{children:"Markdown files to React components"}),", and allows you to use JSX in your Markdown content. This enables you to easily interleave React components within your content, and create delightful learning experiences."]}),"\n",(0,t.jsxs)(n.admonition,{title:"Use the MDX Playground",type:"tip",children:[(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.a,{href:"https://mdxjs.com/playground/",children:"MDX playground"})})," is your new best friend!"]}),(0,t.jsx)(n.p,{children:"It is a very helpful debugging tool that shows how the MDX compiler transforms Markdown to React."}),(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Options"}),": select the right format (MDX or CommonMark) and the following plugins Docusaurus uses: ",(0,t.jsx)(n.code,{children:"remark-gfm"}),", ",(0,t.jsx)(n.code,{children:"remark-directive"}),", ",(0,t.jsx)(n.code,{children:"rehype-raw"}),"."]})]}),"\n",(0,t.jsx)(n.h2,{id:"mdx-vs-commonmark",children:"MDX vs. CommonMark"}),"\n",(0,t.jsxs)(n.p,{children:["Docusaurus compiles both ",(0,t.jsx)(n.code,{children:".md"})," and ",(0,t.jsx)(n.code,{children:".mdx"})," files to React components using the MDX compiler, but ",(0,t.jsx)(n.strong,{children:"the syntax can be interpreted differently"})," depending on your settings."]}),"\n",(0,t.jsxs)(n.p,{children:["The MDX compiler supports ",(0,t.jsx)(n.a,{href:"https://mdxjs.com/packages/mdx/#optionsformat",children:"2 formats"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The ",(0,t.jsx)(n.a,{href:"https://mdxjs.com/docs/what-is-mdx/",children:"MDX format"}),": a powerful parser allowing the usage of JSX"]}),"\n",(0,t.jsxs)(n.li,{children:["The ",(0,t.jsx)(n.a,{href:"https://commonmark.org/",children:"CommonMark format"}),": a standard-compliant Markdown parser that does not allow the usage of JSX"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["By default, ",(0,t.jsx)(n.strong,{children:"Docusaurus v3 uses the MDX format for all files"})," (including ",(0,t.jsx)(n.code,{children:".md"})," files) for historical reasons."]}),"\n",(0,t.jsxs)(n.p,{children:["It is possible to ",(0,t.jsx)(n.strong,{children:"opt-in for CommonMark"})," using the ",(0,t.jsx)(n.a,{href:"/docs/api/docusaurus-config#markdown",children:(0,t.jsx)(n.code,{children:"siteConfig.markdown.format"})})," setting or the ",(0,t.jsx)(n.code,{children:"format: md"})," front matter."]}),"\n",(0,t.jsxs)(n.admonition,{title:"how to use CommonMark",type:"tip",children:[(0,t.jsxs)(n.p,{children:["If you plan to use CommonMark, we recommend the ",(0,t.jsx)(n.a,{href:"/docs/api/docusaurus-config#markdown",children:(0,t.jsx)(n.code,{children:"siteConfig.markdown.format: 'detect'"})})," setting. The appropriate format will be selected automatically, based on file extensions:"]}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:".md"})," files will use the CommonMark format"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:".mdx"})," files will use the MDX format"]}),"\n"]})]}),"\n",(0,t.jsx)(n.admonition,{title:"Experimental CommonMark support",type:"danger",children:(0,t.jsxs)(n.p,{children:["The CommonMark support is ",(0,t.jsx)(n.strong,{children:"experimental"})," and currently has a few ",(0,t.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/issues/9092",children:"limitations"}),"."]})}),"\n",(0,t.jsx)(n.h2,{id:"standard-features",children:"Standard features"}),"\n",(0,t.jsx)(n.p,{children:"Markdown is a syntax that enables you to write formatted content in a readable syntax."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-md",children:"### My Doc Section\n\nHello world message with some **bold** text, some _italic_ text, and a [link](/)\n\n![img alt](/img/docusaurus.png)\n"})}),"\n",(0,t.jsxs)(a.A,{children:[(0,t.jsx)("h3",{children:"My Doc Section"}),(0,t.jsxs)(n.p,{children:["Hello world message with some ",(0,t.jsx)(n.strong,{children:"bold"})," text, some ",(0,t.jsx)(n.em,{children:"italic"})," text and a ",(0,t.jsx)(n.a,{href:"/",children:"link"})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"img alt",src:r(64233).A+"",width:"200",height:"200"})})]}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"Markdown is declarative"}),(0,t.jsxs)(n.p,{children:["Some may assume a 1-1 correlation between Markdown and HTML, e.g., ",(0,t.jsx)(n.code,{children:"![Preview](/img/docusaurus.png)"})," will always become ",(0,t.jsx)(n.code,{children:'<img src="/img/docusaurus.png" alt="Preview" />'}),", as-is. However, ",(0,t.jsx)(n.em,{children:"that is not the case"}),"."]}),(0,t.jsxs)(n.p,{children:["The Markdown syntax ",(0,t.jsx)(n.code,{children:"![message](url)"})," only declaratively tells Docusaurus that an image needs to be inserted here, but we may do other things like transforming a ",(0,t.jsx)(n.a,{href:"/docs/markdown-features/assets#images",children:"file path to URL path"}),", so the generated markup may differ from the output of other Markdown renderers, or a na\xefve hand-transcription to the equivalent JSX/HTML code."]}),(0,t.jsxs)(n.p,{children:["In general, you should only assume the ",(0,t.jsx)(n.em,{children:"semantics"})," of the markup (",(0,t.jsx)(n.code,{children:"```"})," fences become ",(0,t.jsx)(n.a,{href:"/docs/markdown-features/code-blocks",children:"code blocks"}),"; ",(0,t.jsx)(n.code,{children:">"})," becomes ",(0,t.jsx)(n.a,{href:"#quotes",children:"quotes"}),", etc.), but not the actual compiled output."]})]}),"\n",(0,t.jsx)(n.h2,{id:"front-matter",children:"Front matter"}),"\n",(0,t.jsx)(n.p,{children:"Front matter is used to add metadata to your Markdown file. All content plugins have their own front matter schema, and use the front matter to enrich the default metadata inferred from the content or other configuration."}),"\n",(0,t.jsxs)(n.p,{children:["Front matter is provided at the very top of the file, enclosed by three dashes ",(0,t.jsx)(n.code,{children:"---"}),". The content is parsed as ",(0,t.jsx)(n.a,{href:"https://yaml.org/spec/1.2.2/",children:"YAML"}),"."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-md",children:"---\ntitle: My Doc Title\nmore_data:\n - Can be provided\n - as: objects\n or: arrays\n---\n"})}),"\n",(0,t.jsxs)(n.admonition,{type:"info",children:[(0,t.jsx)(n.p,{children:"The API documentation of each official plugin lists the supported attributes:"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-docs#markdown-front-matter",children:"Docs front matter"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-blog#markdown-front-matter",children:"Blog front matter"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-pages#markdown-front-matter",children:"Pages front matter"})}),"\n"]})]}),"\n",(0,t.jsxs)(n.admonition,{title:"enhance your front matter",type:"tip",children:[(0,t.jsxs)(n.p,{children:["Use the ",(0,t.jsxs)(n.a,{href:"/docs/api/docusaurus-config#markdown",children:["Markdown config ",(0,t.jsx)(n.code,{children:"parseFrontMatter"})," function"]})," to provide your own front matter parser, or to enhance the default parser."]}),(0,t.jsx)(n.p,{children:"It is possible to reuse the default parser to wrap it with your own custom proprietary logic. This makes it possible to implement convenient front matter transformations, shortcuts, or to integrate with external systems using front matter that Docusaurus plugins do not support."}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n markdown: {\n // highlight-start\n parseFrontMatter: async (params) => {\n // Reuse the default parser\n const result = await params.defaultParseFrontMatter(params);\n\n // Process front matter description placeholders\n result.frontMatter.description =\n result.frontMatter.description?.replaceAll('{{MY_VAR}}', 'MY_VALUE');\n\n // Create your own front matter shortcut\n if (result.frontMatter.i_do_not_want_docs_pagination) {\n result.frontMatter.pagination_prev = null;\n result.frontMatter.pagination_next = null;\n }\n\n // Rename an unsupported front matter coming from another system\n if (result.frontMatter.cms_seo_summary) {\n result.frontMatter.description = result.frontMatter.cms_seo_summary;\n delete result.frontMatter.cms_seo_summary;\n }\n\n return result;\n },\n // highlight-end\n },\n};\n"})})]}),"\n",(0,t.jsx)(n.h2,{id:"quotes",children:"Quotes"}),"\n",(0,t.jsx)(n.p,{children:"Markdown quotes are beautifully styled:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-md",children:"> Easy to maintain open source documentation websites.\n>\n> \u2014 Docusaurus\n"})}),"\n",(0,t.jsx)(a.A,{children:(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"Easy to maintain open source documentation websites."}),"\n",(0,t.jsx)(n.p,{children:"\u2014 Docusaurus"}),"\n"]})}),"\n",(0,t.jsx)(n.h2,{id:"details",children:"Details"}),"\n",(0,t.jsxs)(n.p,{children:["Markdown can embed HTML elements, and ",(0,t.jsx)(n.a,{href:"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details",children:(0,t.jsx)(n.code,{children:"details"})})," HTML elements are beautifully styled:"]}),"\n","\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-md",children:'### Details element example\n\n<details>\n <summary>Toggle me!</summary>\n\n This is the detailed content\n\n ```js\n console.log("Markdown features including the code block are available");\n ```\n\n You can use Markdown here including **bold** and _italic_ text, and [inline link](https://docusaurus.io)\n <details>\n <summary>Nested toggle! Some surprise inside...</summary>\n\n \u{1F632}\u{1F632}\u{1F632}\u{1F632}\u{1F632}\n </details>\n</details>\n'})}),"\n",(0,t.jsxs)(a.A,{children:[(0,t.jsx)("h3",{children:"Details element example"}),(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"Toggle me!"}),(0,t.jsx)(n.p,{children:"This is the detailed content"}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:'console.log("Markdown features including the code block are available");\n'})}),(0,t.jsxs)(n.p,{children:["You can use Markdown here including ",(0,t.jsx)(n.strong,{children:"bold"})," and ",(0,t.jsx)(n.em,{children:"italic"})," text, and ",(0,t.jsx)(n.a,{href:"https://docusaurus.io",children:"inline link"})]}),(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"Nested toggle! Some surprise inside..."}),(0,t.jsx)(n.p,{children:"\u{1F632}\u{1F632}\u{1F632}\u{1F632}\u{1F632}"})]})]})]}),"\n",(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsxs)(n.p,{children:["You may want to keep your ",(0,t.jsx)(n.code,{children:"<summary>"})," on a single line. Keep in mind that ",(0,t.jsxs)(n.a,{href:"https://mdxjs.com/migrating/v2/#jsx",children:["MDX creates extra HTML ",(0,t.jsx)(n.code,{children:"<p>"})," paragraphs for line breaks."]}),". When in doubt, use the ",(0,t.jsx)(n.a,{href:"https://mdxjs.com/playground/",children:"MDX playground"})," to troubleshoot ",(0,t.jsx)(n.code,{children:"<details>"})," rendering problems."]})})]})}function h(e={}){let{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(u,{...e})}):u(e)}},43023:(e,n,r)=>{r.d(n,{R:()=>a,x:()=>i});var s=r(63696);let t={},o=s.createContext(t);function a(e){let n=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7d1ac6e6.ff6de08c.js b/assets/js/7d1ac6e6.f7cc5255.js similarity index 93% rename from assets/js/7d1ac6e6.ff6de08c.js rename to assets/js/7d1ac6e6.f7cc5255.js index 4acf50eddb..65c719f521 100644 --- a/assets/js/7d1ac6e6.ff6de08c.js +++ b/assets/js/7d1ac6e6.f7cc5255.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[25098],{98644:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var s=r(93023),n=r(62540),a=r(43023);let o={title:"Docusaurus 2019 Recap",authors:"yangshun",tags:["recap"]},i=void 0,u={authorsImageUrls:[void 0]},l=[{value:"Docusaurus 2 (D2)",id:"docusaurus-2-d2",level:2},{value:"GitHub Activity",id:"github-activity",level:2},{value:"Notable Users",id:"notable-users",level:2},{value:"Media",id:"media",level:2},{value:"Community",id:"community",level:2},{value:"Looking Ahead",id:"looking-ahead",level:2}];function h(e){let t={a:"a",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["2019 was a great year for Docusaurus - we've made tremendous progress on ",(0,n.jsx)(t.a,{href:"https://docusaurus.io/",children:"Docusaurus 2"}),". Current Docusaurus 1 users who aren't using the translations feature can feel free to check it out and ",(0,n.jsx)(t.a,{href:"https://docusaurus.io/docs/migration",children:"migrate"})," to it! Otherwise we will work with you to make that happen in 2020 :)"]}),"\n",(0,n.jsx)(t.h2,{id:"docusaurus-2-d2",children:"Docusaurus 2 (D2)"}),"\n",(0,n.jsxs)(t.p,{children:["In 2018, we proposed to rebuild ",(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/789",children:"Docusaurus from the ground up"}),". It involved a major rearchitecture effort - we created a content-centric CSS framework from scratch, a plugins system, and moved from static HTML pages to be a single page-app with prerendered routes. It was a wild adventure and a tough feat, especially with no dedicated FTE working on the project. With the help of ",(0,n.jsx)(t.a,{href:"https://github.com/endiliey",children:"@endilie"}),", our ex-intern-turned-contributor-turned-maintainer, we made really good progress on D2 and are currently on version 2.0.0-alpha.40. All features in Docusaurus 1 except for translations have been ported over."]}),"\n",(0,n.jsxs)(t.p,{children:["D2's killer features are ",(0,n.jsx)(t.strong,{children:"Dark Mode"})," and its ",(0,n.jsx)(t.strong,{children:"superb performance"}),". D2 has dark mode support out-of-the-box and it is near effortless to create a dark mode-friendly documentation site. Endilie put in great effort into optimizing the performance of the site and a bunch of performance optimization tricks have been done under the hood by default - optimized images, prerendering every route to static HTML and client-side routing thereafter, prefetching assets needed by future navigations whenever the user hovers over a navigation link, etc."]}),"\n",(0,n.jsxs)(t.p,{children:["Last but not least, we implemented a plugins architecture and turned the repo into a ",(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/tree/main/packages",children:"Lerna monorepo"}),". We believe this plugin architecture will be helpful towards building a community and also allowing users to build their own features for their unique use cases."]}),"\n",(0,n.jsx)(t.h2,{id:"github-activity",children:"GitHub Activity"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Stars: 10050 \u2192 14632 (+45.6% y/y)"}),"\n",(0,n.jsx)(t.li,{children:"Total Contributors: 182 \u2192 303 (+66.4% y/y). Most of which are non-Facebook contributors"}),"\n",(0,n.jsx)(t.li,{children:"Daily npm Downloads: 728 \u2192 2320 (+218.7% y/y). The peak was in November"}),"\n",(0,n.jsx)(t.li,{children:"D1 is currently used by 3872 projects on GitHub while D2 is used by 247 projects on GitHub"}),"\n",(0,n.jsx)(t.li,{children:"We now have 4 active core contributors! (+100% y/y)"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"notable-users",children:"Notable Users"}),"\n",(0,n.jsx)(t.p,{children:"A good portion of the projects within the Open Source community use Docusaurus. This half we also onboarded more notable projects onto Docusaurus 2:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://create-react-app.dev/",children:"Create React App"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://redux.js.org/",children:"Redux"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://draftjs.org/",children:"Draft.js"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"http://facebook.github.io/flux/",children:"Flux"})}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"And welcomed more projects to Docusaurus 1:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://developers.libra.org/",children:"Libra"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://mobx.js.org/",children:"MobX"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://immerjs.github.io/immer/",children:"Immer"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://sorbet.org/",children:"Sorbet"})}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"media",children:"Media"}),"\n",(0,n.jsxs)(t.p,{children:["Yangshun gave a classroom session during F8 about ",(0,n.jsx)(t.a,{href:"https://www.youtube.com/watch?v=QcGJsf6mgZE",children:"Using Docusaurus to Create Open Source Websites"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"community",children:"Community"}),"\n",(0,n.jsx)(t.p,{children:"A few third-party hosting/development services also has first-class integration with a Docusaurus setup:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/vercel/vercel/tree/main/examples/docusaurus",children:"Vercel deployment"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://codesandbox.io/s/docusaurus-template-x3vg9",children:"CodeSandbox"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://render.com/docs/deploy-docusaurus",children:"Render"})}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"looking-ahead",children:"Looking Ahead"}),"\n",(0,n.jsxs)(t.p,{children:["D2 has gained some traction among the ",(0,n.jsx)(t.a,{href:"https://docusaurus.io/showcase",children:"developer community"}),". In 2020, we want to achieve full feature parity with D1 by the first half and help the remaining Facebook projects on D1 move to D2. It would also be great if we could use Docusaurus for internal documentation, but that is a non-trivial undertaking. If you have a need for it or have some ideas, come speak with us!"]}),"\n",(0,n.jsxs)(t.p,{children:["Huge thanks to the community for their contributions, especially the core team - ",(0,n.jsx)(t.a,{href:"https://github.com/endiliey",children:"Endilie Yacop Sucipto"}),", ",(0,n.jsx)(t.a,{href:"https://github.com/lex111",children:"Alexey Pyltsyn"}),", ",(0,n.jsx)(t.a,{href:"https://github.com/wgao19",children:"Wei Gao"}),". Lastly, thank you ",(0,n.jsx)(t.a,{href:"https://github.com/JoelMarcey",children:"Joel Marcey"})," for starting Docusaurus and supporting the project all this time."]}),"\n",(0,n.jsx)(t.p,{children:"Cheers to a great 2020! \u{1F389}"})]})}function c(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},43023:(e,t,r)=>{r.d(t,{R:()=>o,x:()=>i});var s=r(63696);let n={},a=s.createContext(n);function o(e){let t=s.useContext(a);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),s.createElement(a.Provider,{value:t},e.children)}},93023:e=>{e.exports=JSON.parse('{"permalink":"/blog/2019/12/30/docusaurus-2019-recap","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2019/12-30-docusaurus-2019-recap.mdx","source":"@site/blog/2019/12-30-docusaurus-2019-recap.mdx","title":"Docusaurus 2019 Recap","description":"2019 was a great year for Docusaurus - we\'ve made tremendous progress on Docusaurus 2. Current Docusaurus 1 users who aren\'t using the translations feature can feel free to check it out and migrate to it! Otherwise we will work with you to make that happen in 2020 :)","date":"2019-12-30T00:00:00.000Z","tags":[{"inline":false,"label":"Recap","permalink":"/blog/tags/recap","description":"Blog posts about Docusaurus\' year recaps"}],"readingTime":2.72,"hasTruncateMarker":true,"authors":[{"name":"Yangshun Tay","title":"Front End Engineer at Meta","url":"https://github.com/yangshun","page":{"permalink":"/blog/authors/yangshun"},"socials":{"x":"https://x.com/yangshunz","github":"https://github.com/yangshun"},"imageURL":"https://github.com/yangshun.png","key":"yangshun"}],"frontMatter":{"title":"Docusaurus 2019 Recap","authors":"yangshun","tags":["recap"]},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Tribute to Endi","permalink":"/blog/2020/01/07/tribute-to-endi"},"nextItem":{"title":"Happy 1st Birthday Slash!","permalink":"/blog/2018/12/14/Happy-First-Birthday-Slash"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[25098],{98644:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var s=r(93023),n=r(62540),a=r(43023);let o={title:"Docusaurus 2019 Recap",authors:"yangshun",tags:["recap"]},i=void 0,u={authorsImageUrls:[void 0]},l=[{value:"Docusaurus 2 (D2)",id:"docusaurus-2-d2",level:2},{value:"GitHub Activity",id:"github-activity",level:2},{value:"Notable Users",id:"notable-users",level:2},{value:"Media",id:"media",level:2},{value:"Community",id:"community",level:2},{value:"Looking Ahead",id:"looking-ahead",level:2}];function c(e){let t={a:"a",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["2019 was a great year for Docusaurus - we've made tremendous progress on ",(0,n.jsx)(t.a,{href:"https://docusaurus.io/",children:"Docusaurus 2"}),". Current Docusaurus 1 users who aren't using the translations feature can feel free to check it out and ",(0,n.jsx)(t.a,{href:"https://docusaurus.io/docs/migration",children:"migrate"})," to it! Otherwise we will work with you to make that happen in 2020 :)"]}),"\n",(0,n.jsx)(t.h2,{id:"docusaurus-2-d2",children:"Docusaurus 2 (D2)"}),"\n",(0,n.jsxs)(t.p,{children:["In 2018, we proposed to rebuild ",(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/789",children:"Docusaurus from the ground up"}),". It involved a major rearchitecture effort - we created a content-centric CSS framework from scratch, a plugins system, and moved from static HTML pages to be a single page-app with prerendered routes. It was a wild adventure and a tough feat, especially with no dedicated FTE working on the project. With the help of ",(0,n.jsx)(t.a,{href:"https://github.com/endiliey",children:"@endilie"}),", our ex-intern-turned-contributor-turned-maintainer, we made really good progress on D2 and are currently on version 2.0.0-alpha.40. All features in Docusaurus 1 except for translations have been ported over."]}),"\n",(0,n.jsxs)(t.p,{children:["D2's killer features are ",(0,n.jsx)(t.strong,{children:"Dark Mode"})," and its ",(0,n.jsx)(t.strong,{children:"superb performance"}),". D2 has dark mode support out-of-the-box and it is near effortless to create a dark mode-friendly documentation site. Endilie put in great effort into optimizing the performance of the site and a bunch of performance optimization tricks have been done under the hood by default - optimized images, prerendering every route to static HTML and client-side routing thereafter, prefetching assets needed by future navigations whenever the user hovers over a navigation link, etc."]}),"\n",(0,n.jsxs)(t.p,{children:["Last but not least, we implemented a plugins architecture and turned the repo into a ",(0,n.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/tree/main/packages",children:"Lerna monorepo"}),". We believe this plugin architecture will be helpful towards building a community and also allowing users to build their own features for their unique use cases."]}),"\n",(0,n.jsx)(t.h2,{id:"github-activity",children:"GitHub Activity"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Stars: 10050 \u2192 14632 (+45.6% y/y)"}),"\n",(0,n.jsx)(t.li,{children:"Total Contributors: 182 \u2192 303 (+66.4% y/y). Most of which are non-Facebook contributors"}),"\n",(0,n.jsx)(t.li,{children:"Daily npm Downloads: 728 \u2192 2320 (+218.7% y/y). The peak was in November"}),"\n",(0,n.jsx)(t.li,{children:"D1 is currently used by 3872 projects on GitHub while D2 is used by 247 projects on GitHub"}),"\n",(0,n.jsx)(t.li,{children:"We now have 4 active core contributors! (+100% y/y)"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"notable-users",children:"Notable Users"}),"\n",(0,n.jsx)(t.p,{children:"A good portion of the projects within the Open Source community use Docusaurus. This half we also onboarded more notable projects onto Docusaurus 2:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://create-react-app.dev/",children:"Create React App"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://redux.js.org/",children:"Redux"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://draftjs.org/",children:"Draft.js"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"http://facebook.github.io/flux/",children:"Flux"})}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"And welcomed more projects to Docusaurus 1:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://developers.libra.org/",children:"Libra"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://mobx.js.org/",children:"MobX"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://immerjs.github.io/immer/",children:"Immer"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://sorbet.org/",children:"Sorbet"})}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"media",children:"Media"}),"\n",(0,n.jsxs)(t.p,{children:["Yangshun gave a classroom session during F8 about ",(0,n.jsx)(t.a,{href:"https://www.youtube.com/watch?v=QcGJsf6mgZE",children:"Using Docusaurus to Create Open Source Websites"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"community",children:"Community"}),"\n",(0,n.jsx)(t.p,{children:"A few third-party hosting/development services also has first-class integration with a Docusaurus setup:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://github.com/vercel/vercel/tree/main/examples/docusaurus",children:"Vercel deployment"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://codesandbox.io/s/docusaurus-template-x3vg9",children:"CodeSandbox"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://render.com/docs/deploy-docusaurus",children:"Render"})}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"looking-ahead",children:"Looking Ahead"}),"\n",(0,n.jsxs)(t.p,{children:["D2 has gained some traction among the ",(0,n.jsx)(t.a,{href:"https://docusaurus.io/showcase",children:"developer community"}),". In 2020, we want to achieve full feature parity with D1 by the first half and help the remaining Facebook projects on D1 move to D2. It would also be great if we could use Docusaurus for internal documentation, but that is a non-trivial undertaking. If you have a need for it or have some ideas, come speak with us!"]}),"\n",(0,n.jsxs)(t.p,{children:["Huge thanks to the community for their contributions, especially the core team - ",(0,n.jsx)(t.a,{href:"https://github.com/endiliey",children:"Endilie Yacop Sucipto"}),", ",(0,n.jsx)(t.a,{href:"https://github.com/lex111",children:"Alexey Pyltsyn"}),", ",(0,n.jsx)(t.a,{href:"https://github.com/wgao19",children:"Wei Gao"}),". Lastly, thank you ",(0,n.jsx)(t.a,{href:"https://github.com/JoelMarcey",children:"Joel Marcey"})," for starting Docusaurus and supporting the project all this time."]}),"\n",(0,n.jsx)(t.p,{children:"Cheers to a great 2020! \u{1F389}"})]})}function h(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},43023:(e,t,r)=>{r.d(t,{R:()=>o,x:()=>i});var s=r(63696);let n={},a=s.createContext(n);function o(e){let t=s.useContext(a);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),s.createElement(a.Provider,{value:t},e.children)}},93023:e=>{e.exports=JSON.parse('{"permalink":"/blog/2019/12/30/docusaurus-2019-recap","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2019/12-30-docusaurus-2019-recap.mdx","source":"@site/blog/2019/12-30-docusaurus-2019-recap.mdx","title":"Docusaurus 2019 Recap","description":"2019 was a great year for Docusaurus - we\'ve made tremendous progress on Docusaurus 2. Current Docusaurus 1 users who aren\'t using the translations feature can feel free to check it out and migrate to it! Otherwise we will work with you to make that happen in 2020 :)","date":"2019-12-30T00:00:00.000Z","tags":[{"inline":false,"label":"Recap","permalink":"/blog/tags/recap","description":"Blog posts about Docusaurus\' year recaps"}],"readingTime":2.72,"hasTruncateMarker":true,"authors":[{"name":"Yangshun Tay","title":"Front End Engineer at Meta","url":"https://github.com/yangshun","page":{"permalink":"/blog/authors/yangshun"},"socials":{"x":"https://x.com/yangshunz","github":"https://github.com/yangshun"},"imageURL":"https://github.com/yangshun.png","key":"yangshun"}],"frontMatter":{"title":"Docusaurus 2019 Recap","authors":"yangshun","tags":["recap"]},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Tribute to Endi","permalink":"/blog/2020/01/07/tribute-to-endi"},"nextItem":{"title":"Happy 1st Birthday Slash!","permalink":"/blog/2018/12/14/Happy-First-Birthday-Slash"}}')}}]); \ No newline at end of file diff --git a/assets/js/7f3dfa04.c69e20d2.js b/assets/js/7f3dfa04.bc64eea4.js similarity index 98% rename from assets/js/7f3dfa04.c69e20d2.js rename to assets/js/7f3dfa04.bc64eea4.js index 91589eaf21..cda410a537 100644 --- a/assets/js/7f3dfa04.c69e20d2.js +++ b/assets/js/7f3dfa04.bc64eea4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[22630],{47312:(e,t,o)=>{o.d(t,{A:()=>i});let i=o.p+"assets/images/profilo_blog_post_android_ios-695990a01bf8fa0ea8b6c2d26946cd94.png"},41511:(e,t,o)=>{o.d(t,{A:()=>i});let i=o.p+"assets/images/profilo_blog_post_palette_website_color_picker-7fe21bbbee9aa484750e889471957135.png"},10242:(e,t,o)=>{o.d(t,{A:()=>i});let i=o.p+"assets/images/profilo_blog_post_photoshop_color_picker-86628cde93ca147d5ed36f0e0dfa046b.png"},44433:(e,t,o)=>{o.d(t,{A:()=>i});let i=o.p+"assets/images/profilo_blog_post_website_final-41123bbb4a337d3415d6a8f826362713.png"},63655:(e,t,o)=>{o.d(t,{A:()=>i});let i=o.p+"assets/images/profilo_blog_post_website_final_docs-4efd3319b5bc1a33a4dde7dd785cb6a5.png"},61857:(e,t,o)=>{o.d(t,{A:()=>i});let i=o.p+"assets/images/profilo_blog_post_website_initial-2b55252c641e418f02b8bb6a5234b219.png"},84797:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>c,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var i=o(64252),s=o(62540),n=o(43023);let r={title:"How I Converted Profilo to Docusaurus in Under 2 Hours",authors:["abernathyca"],tags:["profilo","adoption"]},a=void 0,l={authorsImageUrls:[void 0]},d=[{value:"Overview of Steps Taken",id:"overview-of-steps-taken",level:2},{value:"Design",id:"design",level:2},{value:"Final Thoughts",id:"final-thoughts",level:2}];function h(e){let t={a:"a",blockquote:"blockquote",code:"code",em:"em",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"\u201CJoel and I were discussing having a website and how it would have been great to launch with it. So I challenged myself to add Docusaurus support. It took just over an hour and a half. I'm going to send you a PR with the addition so you can take a look and see if you like it. Your workflow for adding docs wouldn't be much different from editing those Markdown files.\u201D"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"\u2014 Note sent to the Profilo team"})}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["This is the story of the rather short journey it took to create the ",(0,s.jsx)(t.a,{href:"https://facebookincubator.github.io/profilo/",children:"Profilo"})," website using Docusaurus."]}),"\n",(0,s.jsxs)(t.p,{children:["Profilo, an Android library for collecting performance traces from production, ",(0,s.jsx)(t.a,{href:"https://code.fb.com/android/profilo-understanding-app-performance-in-the-wild/",children:"was announced"})," earlier this year. The project was ",(0,s.jsx)(t.a,{href:"https://github.com/facebookincubator/profilo/tree/802042f90f990998a272387e371b893af52465b8",children:"published on GitHub"})," with a less than ",(0,s.jsx)(t.a,{href:"https://github.com/facebookincubator/profilo/tree/802042f90f990998a272387e371b893af52465b8/docs",children:"a handful or Markdown files"})," to describe its functionality and no website to showcase any branding and highlight the logo. The task at hand was to turn these existing docs and logo into a website."]}),"\n",(0,s.jsx)(t.p,{children:"In general, when creating a website with Docusaurus you do the following:"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Generate a template website using Docusaurus scripts."}),"\n",(0,s.jsx)(t.li,{children:"Customize the generated template files for your desired site colors and your project configuration (ex: website and GitHub links)."}),"\n",(0,s.jsxs)(t.li,{children:["Create the website content:","\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Add your docs and any supporting assets."}),"\n",(0,s.jsx)(t.li,{children:"Customize the default landing page provided by Docusaurus to suit your needs."}),"\n",(0,s.jsx)(t.li,{children:"Configure the default site navigation file."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.li,{children:"Publish the website and set up how it will be published for future changes."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Given I had pre-existing Markdown files, I didn't have to generate the core content but simply make sure that Docusaurus could process the files by adding the expected metadata to them. Most of the work would therefore consist of customizing the defaults provided by Docusaurus."}),"\n",(0,s.jsx)(t.h2,{id:"overview-of-steps-taken",children:"Overview of Steps Taken"}),"\n",(0,s.jsx)(t.p,{children:"Here's an overview of the steps taken to convert to a website. I'll discuss some of the design aspects in a later section."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Design and colors:"})}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Got all the desired logo formats from designer. I had to create the ",(0,s.jsx)(t.em,{children:".favicon"})," one."]}),"\n",(0,s.jsxs)(t.li,{children:["Worked out some passable primary and secondary website colors using the ",(0,s.jsx)(t.a,{href:"http://paletton.com/",children:"http://paletton.com/"})," tools - very handy!"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Initial website setup:"})}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Forked the ",(0,s.jsx)(t.a,{href:"https://github.com/facebookincubator/profilo/",children:"Profilo project"})," on GitHub and created a local clone of the fork to set up the website."]}),"\n",(0,s.jsxs)(t.li,{children:["Created the initial Docusaurus website using the ",(0,s.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/installation.html",children:"installation instructions"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["Deleted the ",(0,s.jsx)(t.code,{children:"docs-examples-from-docusaurus"})," and ",(0,s.jsx)(t.code,{children:"website/blog-examples-from-docusaurus"})," folders as these would not be needed. Profilo had existing docs we could use and there was no need for blogs at this time."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Content creation:"})}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Added metadata to the existing Markdown files found in the ",(0,s.jsx)(t.code,{children:"docs"})," folder, for example:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-md",children:"---\nid: architecture\ntitle: Architecture\nsidebar_label: Architecture\n---\n"})}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Added the logo assets to the ",(0,s.jsx)(t.code,{children:"website/static/img"})," folder."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Modified ",(0,s.jsx)(t.code,{children:"website/pages/en/index.js"}),", the landing page, to highlight Profilo features."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Modified ",(0,s.jsx)(t.code,{children:"website/core/Footer.js"}),", the footer, to simplify it for Profilo."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Edited ",(0,s.jsx)(t.code,{children:"website/siteConfig.js"})," (website configuration file) to specify the previously chosen primary and secondary colors."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Modified ",(0,s.jsx)(t.code,{children:"website/sidebars.json"})," that specifies the sidebar navigation. Listed all the docs and customized it based on the metadata added to the Markdown files."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Edited the website configuration file to specify the GitHub properties, logo images, header links, and the website link."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Tested the website locally throughout this phase. (I ran ",(0,s.jsx)(t.code,{children:"yarn start"})," from the ",(0,s.jsx)(t.code,{children:"website"})," folder to start the server.)"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Feedback and review changes:"})}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Sent a ",(0,s.jsx)(t.a,{href:"https://github.com/facebookincubator/profilo/pull/6",children:"pull request"})," to the project."]}),"\n",(0,s.jsx)(t.li,{children:"Updated the colors after the designer rightly gasped at the ones I had chosen (IANAD)."}),"\n",(0,s.jsx)(t.li,{children:"Updated the colors and updated the PR."}),"\n",(0,s.jsxs)(t.li,{children:["The PR was then accepted and ",(0,s.jsx)(t.a,{href:"https://github.com/facebookincubator/profilo/commit/6ad033aaf5a7d54e6d842f45a5bccd051a8e45ad",children:"merged"}),". Yay!"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Website publishing:"})}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Pushed the first website version by running the Docusaurus publish script from the command line:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-bash",children:"USE_SSH=true \\\n GIT_USER=caabernathy \\\n CURRENT_BRANCH=master \\\n yarn run publish-gh-pages\n"})}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Configured CircleCI using the ",(0,s.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/publishing.html#automating-deployments-using-continuous-integration",children:"provided Docusaurus instructions"}),". There were 2 PRs for this, ",(0,s.jsx)(t.a,{href:"https://github.com/facebookincubator/profilo/pull/8",children:"the first"}),"for the initial config and ",(0,s.jsx)(t.a,{href:"https://github.com/facebookincubator/profilo/pull/12",children:"the second"})," to make sure CircleCI only triggered for changes in the master branch (thanks Joel Marcey!)."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["The final website was published on ",(0,s.jsx)(t.a,{href:"https://facebookincubator.github.io/profilo/",children:"https://facebookincubator.github.io/profilo/"}),". It had taken 1.5 hours to get to the initial PR stage and another half an hour or so to respond to review feedback and publish the website."]}),"\n",(0,s.jsx)(t.h2,{id:"design",children:"Design"}),"\n",(0,s.jsx)(t.p,{children:"Here's what the initial website looked like when the first pull request was sent out:"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"The website's front page, with a quite bright and saturated red color as the primary color, closely resembling the Profilo logo color, making the logo unrecognizable in the navbar",src:o(61857).A+"",width:"1090",height:"919"})}),"\n",(0,s.jsx)(t.p,{children:"Most of the time in the content creation was spent picking colors that worked reasonably well with the given logo. These colors were a good jumping off point for designer feedback. I used Photoshop to sample various portions of the logo."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Picking colors in Photoshop, with the Profilo logo and the main working area in the background and a color picker dialog in the foreground, selected to a red shade",src:o(10242).A+"",width:"1090",height:"624"})}),"\n",(0,s.jsxs)(t.p,{children:["I then took the RGB representation of the color and set it as the baseline color on ",(0,s.jsx)(t.a,{href:"http://paletton.com/",children:"Paletton"}),". The website then gave me various color options to try on the website by editing the Docusaurus website configuration file."]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Using Paletton to generate a full palette from the red shade selected. There's a color wheel showing all hues on the left, and a square showing various shades of red on the right.",src:o(41511).A+"",width:"1012",height:"632"})}),"\n",(0,s.jsx)(t.p,{children:"The selected primary and secondary colors were a good jumping off point for designer feedback."}),"\n",(0,s.jsx)(t.p,{children:"There were also modifications made to the default website generated by Docusaurus. These changes were mainly around simplifying the footer and creating a customized landing page for Profilo that listed the project's features."}),"\n",(0,s.jsx)(t.p,{children:"Here's what the final website looked like:"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"The website's front page, with a much darker red color as the primary color, making both the logo and the primary-colored title text clearly legible.",src:o(44433).A+"",width:"1141",height:"865"})}),"\n",(0,s.jsx)(t.p,{children:"This is an example page showing the core content, in this case the Getting Started page:"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"A doc page with the sidebar on the left quarter of the screen and the main content occupying the rest. Some text is using the primary color and the main body uses multiple kinds of typesetting including bold, list, and code",src:o(63655).A+"",width:"1221",height:"733"})}),"\n",(0,s.jsxs)(t.p,{children:["This also shows the sidebar structure that was set up through editing ",(0,s.jsx)(t.code,{children:"website/sidebars.json"}),"."]}),"\n",(0,s.jsx)(t.p,{children:"Lastly, I didn't have to worry about handling responsive design. You get this out of the box with Docusaurus!"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Mobile screenshots of the front page and sample doc page. The layout is automatically adjusted to make it appear more natural. The doc sidebar is hidden behind a button.",src:o(47312).A+"",width:"1064",height:"940"})}),"\n",(0,s.jsx)(t.h2,{id:"final-thoughts",children:"Final Thoughts"}),"\n",(0,s.jsx)(t.p,{children:"The Profilo engineers were happy to see that they didn't have to change their workflow to update existing content. They were able to continue working with Markdown files. This will still be true in the future if new docs are added, although there may be some config changes needed if the sidebar navigation needs to be updated."}),"\n",(0,s.jsx)(t.p,{children:"The infrastructure provided by Docusaurus made it easy to convert Markdown files into a working website. Even though the project had only three docs, this gave Profilo a more professional look. So, it was well worth the short time investment to get it done."})]})}function c(e={}){let{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},43023:(e,t,o)=>{o.d(t,{R:()=>r,x:()=>a});var i=o(63696);let s={},n=i.createContext(s);function r(e){let t=i.useContext(n);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(n.Provider,{value:t},e.children)}},64252:e=>{e.exports=JSON.parse('{"permalink":"/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2018/04-30-How-I-Converted-Profilo-To-Docusaurus.mdx","source":"@site/blog/2018/04-30-How-I-Converted-Profilo-To-Docusaurus.mdx","title":"How I Converted Profilo to Docusaurus in Under 2 Hours","description":"\u201CJoel and I were discussing having a website and how it would have been great to launch with it. So I challenged myself to add Docusaurus support. It took just over an hour and a half. I\'m going to send you a PR with the addition so you can take a look and see if you like it. Your workflow for adding docs wouldn\'t be much different from editing those Markdown files.\u201D","date":"2018-04-30T00:00:00.000Z","tags":[{"inline":false,"label":"Profilo","permalink":"/blog/tags/profilo"},{"inline":false,"label":"Adoption","permalink":"/blog/tags/adoption"}],"readingTime":5.95,"hasTruncateMarker":true,"authors":[{"name":"Christine Abernathy","url":"http://x.com/abernathyca","socials":{"x":"https://x.com/abernathyca"},"imageURL":"https://github.com/caabernathy.png","key":"abernathyca","page":null}],"frontMatter":{"title":"How I Converted Profilo to Docusaurus in Under 2 Hours","authors":["abernathyca"],"tags":["profilo","adoption"]},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Towards Docusaurus 2","permalink":"/blog/2018/09/11/Towards-Docusaurus-2"},"nextItem":{"title":"Introducing Docusaurus","permalink":"/blog/2017/12/14/introducing-docusaurus"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[22630],{47312:(e,t,o)=>{o.d(t,{A:()=>i});let i=o.p+"assets/images/profilo_blog_post_android_ios-695990a01bf8fa0ea8b6c2d26946cd94.png"},41511:(e,t,o)=>{o.d(t,{A:()=>i});let i=o.p+"assets/images/profilo_blog_post_palette_website_color_picker-7fe21bbbee9aa484750e889471957135.png"},10242:(e,t,o)=>{o.d(t,{A:()=>i});let i=o.p+"assets/images/profilo_blog_post_photoshop_color_picker-86628cde93ca147d5ed36f0e0dfa046b.png"},44433:(e,t,o)=>{o.d(t,{A:()=>i});let i=o.p+"assets/images/profilo_blog_post_website_final-41123bbb4a337d3415d6a8f826362713.png"},63655:(e,t,o)=>{o.d(t,{A:()=>i});let i=o.p+"assets/images/profilo_blog_post_website_final_docs-4efd3319b5bc1a33a4dde7dd785cb6a5.png"},61857:(e,t,o)=>{o.d(t,{A:()=>i});let i=o.p+"assets/images/profilo_blog_post_website_initial-2b55252c641e418f02b8bb6a5234b219.png"},84797:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>c,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var i=o(64252),s=o(62540),n=o(43023);let r={title:"How I Converted Profilo to Docusaurus in Under 2 Hours",authors:["abernathyca"],tags:["profilo","adoption"]},a=void 0,l={authorsImageUrls:[void 0]},d=[{value:"Overview of Steps Taken",id:"overview-of-steps-taken",level:2},{value:"Design",id:"design",level:2},{value:"Final Thoughts",id:"final-thoughts",level:2}];function h(e){let t={a:"a",blockquote:"blockquote",code:"code",em:"em",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"\u201CJoel and I were discussing having a website and how it would have been great to launch with it. So I challenged myself to add Docusaurus support. It took just over an hour and a half. I'm going to send you a PR with the addition so you can take a look and see if you like it. Your workflow for adding docs wouldn't be much different from editing those Markdown files.\u201D"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"\u2014 Note sent to the Profilo team"})}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["This is the story of the rather short journey it took to create the ",(0,s.jsx)(t.a,{href:"https://facebookincubator.github.io/profilo/",children:"Profilo"})," website using Docusaurus."]}),"\n",(0,s.jsxs)(t.p,{children:["Profilo, an Android library for collecting performance traces from production, ",(0,s.jsx)(t.a,{href:"https://code.fb.com/android/profilo-understanding-app-performance-in-the-wild/",children:"was announced"})," earlier this year. The project was ",(0,s.jsx)(t.a,{href:"https://github.com/facebookincubator/profilo/tree/802042f90f990998a272387e371b893af52465b8",children:"published on GitHub"})," with a less than ",(0,s.jsx)(t.a,{href:"https://github.com/facebookincubator/profilo/tree/802042f90f990998a272387e371b893af52465b8/docs",children:"a handful or Markdown files"})," to describe its functionality and no website to showcase any branding and highlight the logo. The task at hand was to turn these existing docs and logo into a website."]}),"\n",(0,s.jsx)(t.p,{children:"In general, when creating a website with Docusaurus you do the following:"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Generate a template website using Docusaurus scripts."}),"\n",(0,s.jsx)(t.li,{children:"Customize the generated template files for your desired site colors and your project configuration (ex: website and GitHub links)."}),"\n",(0,s.jsxs)(t.li,{children:["Create the website content:","\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Add your docs and any supporting assets."}),"\n",(0,s.jsx)(t.li,{children:"Customize the default landing page provided by Docusaurus to suit your needs."}),"\n",(0,s.jsx)(t.li,{children:"Configure the default site navigation file."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.li,{children:"Publish the website and set up how it will be published for future changes."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Given I had pre-existing Markdown files, I didn't have to generate the core content but simply make sure that Docusaurus could process the files by adding the expected metadata to them. Most of the work would therefore consist of customizing the defaults provided by Docusaurus."}),"\n",(0,s.jsx)(t.h2,{id:"overview-of-steps-taken",children:"Overview of Steps Taken"}),"\n",(0,s.jsx)(t.p,{children:"Here's an overview of the steps taken to convert to a website. I'll discuss some of the design aspects in a later section."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Design and colors:"})}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Got all the desired logo formats from designer. I had to create the ",(0,s.jsx)(t.em,{children:".favicon"})," one."]}),"\n",(0,s.jsxs)(t.li,{children:["Worked out some passable primary and secondary website colors using the ",(0,s.jsx)(t.a,{href:"http://paletton.com/",children:"http://paletton.com/"})," tools - very handy!"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Initial website setup:"})}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Forked the ",(0,s.jsx)(t.a,{href:"https://github.com/facebookincubator/profilo/",children:"Profilo project"})," on GitHub and created a local clone of the fork to set up the website."]}),"\n",(0,s.jsxs)(t.li,{children:["Created the initial Docusaurus website using the ",(0,s.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/installation.html",children:"installation instructions"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["Deleted the ",(0,s.jsx)(t.code,{children:"docs-examples-from-docusaurus"})," and ",(0,s.jsx)(t.code,{children:"website/blog-examples-from-docusaurus"})," folders as these would not be needed. Profilo had existing docs we could use and there was no need for blogs at this time."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Content creation:"})}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Added metadata to the existing Markdown files found in the ",(0,s.jsx)(t.code,{children:"docs"})," folder, for example:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-md",children:"---\nid: architecture\ntitle: Architecture\nsidebar_label: Architecture\n---\n"})}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Added the logo assets to the ",(0,s.jsx)(t.code,{children:"website/static/img"})," folder."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Modified ",(0,s.jsx)(t.code,{children:"website/pages/en/index.js"}),", the landing page, to highlight Profilo features."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Modified ",(0,s.jsx)(t.code,{children:"website/core/Footer.js"}),", the footer, to simplify it for Profilo."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Edited ",(0,s.jsx)(t.code,{children:"website/siteConfig.js"})," (website configuration file) to specify the previously chosen primary and secondary colors."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Modified ",(0,s.jsx)(t.code,{children:"website/sidebars.json"})," that specifies the sidebar navigation. Listed all the docs and customized it based on the metadata added to the Markdown files."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Edited the website configuration file to specify the GitHub properties, logo images, header links, and the website link."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Tested the website locally throughout this phase. (I ran ",(0,s.jsx)(t.code,{children:"yarn start"})," from the ",(0,s.jsx)(t.code,{children:"website"})," folder to start the server.)"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Feedback and review changes:"})}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Sent a ",(0,s.jsx)(t.a,{href:"https://github.com/facebookincubator/profilo/pull/6",children:"pull request"})," to the project."]}),"\n",(0,s.jsx)(t.li,{children:"Updated the colors after the designer rightly gasped at the ones I had chosen (IANAD)."}),"\n",(0,s.jsx)(t.li,{children:"Updated the colors and updated the PR."}),"\n",(0,s.jsxs)(t.li,{children:["The PR was then accepted and ",(0,s.jsx)(t.a,{href:"https://github.com/facebookincubator/profilo/commit/6ad033aaf5a7d54e6d842f45a5bccd051a8e45ad",children:"merged"}),". Yay!"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Website publishing:"})}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Pushed the first website version by running the Docusaurus publish script from the command line:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-bash",children:"USE_SSH=true \\\n GIT_USER=caabernathy \\\n CURRENT_BRANCH=master \\\n yarn run publish-gh-pages\n"})}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Configured CircleCI using the ",(0,s.jsx)(t.a,{href:"https://v1.docusaurus.io/docs/en/publishing.html#automating-deployments-using-continuous-integration",children:"provided Docusaurus instructions"}),". There were 2 PRs for this, ",(0,s.jsx)(t.a,{href:"https://github.com/facebookincubator/profilo/pull/8",children:"the first"}),"for the initial config and ",(0,s.jsx)(t.a,{href:"https://github.com/facebookincubator/profilo/pull/12",children:"the second"})," to make sure CircleCI only triggered for changes in the master branch (thanks Joel Marcey!)."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["The final website was published on ",(0,s.jsx)(t.a,{href:"https://facebookincubator.github.io/profilo/",children:"https://facebookincubator.github.io/profilo/"}),". It had taken 1.5 hours to get to the initial PR stage and another half an hour or so to respond to review feedback and publish the website."]}),"\n",(0,s.jsx)(t.h2,{id:"design",children:"Design"}),"\n",(0,s.jsx)(t.p,{children:"Here's what the initial website looked like when the first pull request was sent out:"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"The website's front page, with a quite bright and saturated red color as the primary color, closely resembling the Profilo logo color, making the logo unrecognizable in the navbar",src:o(61857).A+"",width:"1090",height:"919"})}),"\n",(0,s.jsx)(t.p,{children:"Most of the time in the content creation was spent picking colors that worked reasonably well with the given logo. These colors were a good jumping off point for designer feedback. I used Photoshop to sample various portions of the logo."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Picking colors in Photoshop, with the Profilo logo and the main working area in the background and a color picker dialog in the foreground, selected to a red shade",src:o(10242).A+"",width:"1090",height:"624"})}),"\n",(0,s.jsxs)(t.p,{children:["I then took the RGB representation of the color and set it as the baseline color on ",(0,s.jsx)(t.a,{href:"http://paletton.com/",children:"Paletton"}),". The website then gave me various color options to try on the website by editing the Docusaurus website configuration file."]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Using Paletton to generate a full palette from the red shade selected. There's a color wheel showing all hues on the left, and a square showing various shades of red on the right.",src:o(41511).A+"",width:"1012",height:"632"})}),"\n",(0,s.jsx)(t.p,{children:"The selected primary and secondary colors were a good jumping off point for designer feedback."}),"\n",(0,s.jsx)(t.p,{children:"There were also modifications made to the default website generated by Docusaurus. These changes were mainly around simplifying the footer and creating a customized landing page for Profilo that listed the project's features."}),"\n",(0,s.jsx)(t.p,{children:"Here's what the final website looked like:"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"The website's front page, with a much darker red color as the primary color, making both the logo and the primary-colored title text clearly legible.",src:o(44433).A+"",width:"1141",height:"865"})}),"\n",(0,s.jsx)(t.p,{children:"This is an example page showing the core content, in this case the Getting Started page:"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"A doc page with the sidebar on the left quarter of the screen and the main content occupying the rest. Some text is using the primary color and the main body uses multiple kinds of typesetting including bold, list, and code",src:o(63655).A+"",width:"1221",height:"733"})}),"\n",(0,s.jsxs)(t.p,{children:["This also shows the sidebar structure that was set up through editing ",(0,s.jsx)(t.code,{children:"website/sidebars.json"}),"."]}),"\n",(0,s.jsx)(t.p,{children:"Lastly, I didn't have to worry about handling responsive design. You get this out of the box with Docusaurus!"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Mobile screenshots of the front page and sample doc page. The layout is automatically adjusted to make it appear more natural. The doc sidebar is hidden behind a button.",src:o(47312).A+"",width:"1064",height:"940"})}),"\n",(0,s.jsx)(t.h2,{id:"final-thoughts",children:"Final Thoughts"}),"\n",(0,s.jsx)(t.p,{children:"The Profilo engineers were happy to see that they didn't have to change their workflow to update existing content. They were able to continue working with Markdown files. This will still be true in the future if new docs are added, although there may be some config changes needed if the sidebar navigation needs to be updated."}),"\n",(0,s.jsx)(t.p,{children:"The infrastructure provided by Docusaurus made it easy to convert Markdown files into a working website. Even though the project had only three docs, this gave Profilo a more professional look. So, it was well worth the short time investment to get it done."})]})}function c(e={}){let{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},43023:(e,t,o)=>{o.d(t,{R:()=>r,x:()=>a});var i=o(63696);let s={},n=i.createContext(s);function r(e){let t=i.useContext(n);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(n.Provider,{value:t},e.children)}},64252:e=>{e.exports=JSON.parse('{"permalink":"/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2018/04-30-How-I-Converted-Profilo-To-Docusaurus.mdx","source":"@site/blog/2018/04-30-How-I-Converted-Profilo-To-Docusaurus.mdx","title":"How I Converted Profilo to Docusaurus in Under 2 Hours","description":"\u201CJoel and I were discussing having a website and how it would have been great to launch with it. So I challenged myself to add Docusaurus support. It took just over an hour and a half. I\'m going to send you a PR with the addition so you can take a look and see if you like it. Your workflow for adding docs wouldn\'t be much different from editing those Markdown files.\u201D","date":"2018-04-30T00:00:00.000Z","tags":[{"inline":false,"label":"Profilo","permalink":"/blog/tags/profilo"},{"inline":false,"label":"Adoption","permalink":"/blog/tags/adoption"}],"readingTime":5.95,"hasTruncateMarker":true,"authors":[{"name":"Christine Abernathy","url":"http://x.com/abernathyca","socials":{"x":"https://x.com/abernathyca"},"imageURL":"https://github.com/caabernathy.png","key":"abernathyca","page":null}],"frontMatter":{"title":"How I Converted Profilo to Docusaurus in Under 2 Hours","authors":["abernathyca"],"tags":["profilo","adoption"]},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Towards Docusaurus 2","permalink":"/blog/2018/09/11/Towards-Docusaurus-2"},"nextItem":{"title":"Introducing Docusaurus","permalink":"/blog/2017/12/14/introducing-docusaurus"}}')}}]); \ No newline at end of file diff --git a/assets/js/7fdd8ddf.cd6600a6.js b/assets/js/7fdd8ddf.2066b580.js similarity index 86% rename from assets/js/7fdd8ddf.cd6600a6.js rename to assets/js/7fdd8ddf.2066b580.js index c21e876973..12fc7ab89d 100644 --- a/assets/js/7fdd8ddf.cd6600a6.js +++ b/assets/js/7fdd8ddf.2066b580.js @@ -1,4 +1,4 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[63054],{15995:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(62540);n(63696);var s=n(11750);function o({children:e,hidden:t,className:n}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_pnkT",n),hidden:t,children:e})}},27446:(e,t,n)=>{n.d(t,{A:()=>x});var r=n(62540),s=n(63696),o=n(11750),l=n(7846),c=n(49519),i=n(96439),a=n(19739),d=n(66904),u=n(79244);function h(e){var t,n;return null!==(n=null===(t=s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==n?n:[]}function p({value:e,tabValues:t}){return t.some(t=>t.value===e)}var b=n(10709);function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function j(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function m({className:e,block:t,selectedValue:n,selectValue:s,tabValues:c}){let i=[],{blockElementScrollPositionUntilNextRender:a}=(0,l.a_)(),d=e=>{let t=e.currentTarget,r=c[i.indexOf(t)].value;r!==n&&(a(t),s(r))},u=e=>{var t,n;let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let n=i.indexOf(e.currentTarget)+1;r=null!==(t=i[n])&&void 0!==t?t:i[0];break}case"ArrowLeft":{let t=i.indexOf(e.currentTarget)-1;r=null!==(n=i[t])&&void 0!==n?n:i[i.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.A)("tabs",{"tabs--block":t},e),children:c.map(({value:e,label:t,attributes:s})=>(0,r.jsx)("li",j(g({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>i.push(e),onKeyDown:u,onClick:d},s),{className:(0,o.A)("tabs__item","tabItem_AQgk",null==s?void 0:s.className,{"tabs__item--active":n===e}),children:null!=t?t:e}),e))})}function f({lazy:e,children:t,selectedValue:n}){let l=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=l.find(e=>e.props.value===n);return e?(0,s.cloneElement)(e,{className:(0,o.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:l.map((e,t)=>(0,s.cloneElement)(e,{key:t,hidden:e.props.value!==n}))})}function y(e){let t=function(e){let{defaultValue:t,queryString:n=!1,groupId:r}=e,o=function(e){let{values:t,children:n}=e;return(0,s.useMemo)(()=>{let e=null!=t?t:h(n).map(({props:{value:e,label:t,attributes:n,default:r}})=>({value:e,label:t,attributes:n,default:r}));return!function(e){let t=(0,d.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,n])}(e),[l,b]=(0,s.useState)(()=>(function({defaultValue:e,tabValues:t}){var n;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let r=null!==(n=t.find(e=>e.default))&&void 0!==n?n:t[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:t,tabValues:o})),[g,j]=function({queryString:e=!1,groupId:t}){let n=(0,c.W6)(),r=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,a.aZ)(r),(0,s.useCallback)(e=>{var t,s;if(!r)return;let o=new URLSearchParams(n.location.search);o.set(r,e),n.replace((t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},n.location),s=s={search:o.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(s)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(s)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(s,e))}),t))},[r,n])]}({queryString:n,groupId:r}),[m,f]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[n,r]=(0,u.Dv)(t);return[n,(0,s.useCallback)(e=>{t&&r.set(e)},[t,r])]}({groupId:r}),y=(()=>{let e=null!=g?g:m;return p({value:e,tabValues:o})?e:null})();return(0,i.A)(()=>{y&&b(y)},[y]),{selectedValue:l,selectValue:(0,s.useCallback)(e=>{if(!p({value:e,tabValues:o}))throw Error(`Can't select invalid tab value=${e}`);b(e),j(e),f(e)},[j,f,o]),tabValues:o}}(e);return(0,r.jsxs)("div",{className:(0,o.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(m,g({},t,e)),(0,r.jsx)(f,g({},t,e))]})}function x(e){let t=(0,b.A)();return(0,r.jsx)(y,j(g({},e),{children:h(e.children)}),String(t))}},40576:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(62540);n(63696);var s=n(10709);function o({children:e,fallback:t}){return(0,s.A)()?(0,r.jsx)(r.Fragment,{children:null==e?void 0:e()}):null!=t?t:null}},70361:(e,t,n)=>{n.d(t,{A:()=>c});var r=n(62540);n(63696);var s=n(11750);let o="dot_giz1",l="bar_rrRL";function c({children:e,minHeight:t,url:n="http://localhost:3000",style:c,bodyStyle:i}){var a,d;return(0,r.jsxs)("div",{className:"browserWindow_my1Q",style:(a=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},c),d=d={minHeight:t},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(d)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(d)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(d,e))}),a),children:[(0,r.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,r.jsxs)("div",{className:"buttons_uHc7",children:[(0,r.jsx)("span",{className:o,style:{background:"#f25f58"}}),(0,r.jsx)("span",{className:o,style:{background:"#fbbe3c"}}),(0,r.jsx)("span",{className:o,style:{background:"#58cb42"}})]}),(0,r.jsx)("div",{className:(0,s.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:n}),(0,r.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:l}),(0,r.jsx)("span",{className:l}),(0,r.jsx)("span",{className:l})]})})]}),(0,r.jsx)("div",{className:"browserWindowBody_Idgs",style:i,children:e})]})}},55887:(e,t,n)=>{n.d(t,{A:()=>ec});var r,s,o,l={};n.r(l),n.d(l,{ButtonExample:()=>_});var c=n(62540),i=n(63696),a=n(11750),d=n(10709),u=n(55152),h=n(81912),p=n(99468),b=n(40576),g=n(1495),j=n(66659),m=n(25436);function f(){let{prism:e}=(0,m.p)(),{colorMode:t}=(0,j.G)(),n=e.theme,r=e.darkTheme||n;return"dark"===t?r:n}var y=n(43758);function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function O({children:e}){return(0,c.jsx)("div",{className:(0,a.A)("playgroundHeader_Tvsk"),children:e})}function v(){return(0,c.jsx)("div",{children:"Loading..."})}function w(){return(0,c.jsx)(b.A,{fallback:(0,c.jsx)(v,{}),children:()=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(y.A,{fallback:e=>(0,c.jsx)(g.MN,x({},e)),children:(0,c.jsx)(u.pA,{})}),(0,c.jsx)(u.p1,{})]})})}function T(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(O,{children:(0,c.jsx)(h.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,c.jsx)("div",{className:"playgroundPreview_mApW",children:(0,c.jsx)(w,{})})]})}function k(){let e=(0,d.A)();return(0,c.jsx)(u.w,{className:"playgroundEditor_TySg"},String(e))}function P(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(O,{children:(0,c.jsx)(h.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,c.jsx)(k,{})]})}let S=e=>`${e};`;function N(e){var t,n,r,s,{children:o,transformCode:l}=e,i=function(e,t){if(null==e)return{};var n,r,s=function(e,t){if(null==e)return{};var n,r,s={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}(e,["children","transformCode"]);let{siteConfig:{themeConfig:a}}=(0,p.A)(),{liveCodeBlock:{playgroundPosition:d}}=a,h=f(),b=null!==(s=null===(r=i.metastring)||void 0===r?void 0:r.includes("noInline"))&&void 0!==s&&s;return(0,c.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,c.jsx)(u.Q,(t=x({code:null==o?void 0:o.replace(/\n$/,""),noInline:b,transformCode:null!=l?l:S,theme:h},i),n=n={children:"top"===d?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(T,{}),(0,c.jsx)(P,{})]}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(P,{}),(0,c.jsx)(T,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))})}function E(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function _(e){var t,n;return(0,c.jsx)("button",(t=E({type:"button"},e),n=n={style:E({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let A=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({React:i},i,l);var B=n(12653),D=n(19934),C=n.n(D);let L=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),I=RegExp("\\{(?<range>[\\d,-]+)\\}"),$={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},R=(r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},$),s=s={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(s)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(s)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(s,e))}),r),H=Object.keys($);function M(e,t){let n=e.map(e=>{let{start:n,end:r}=R[e];return`(?:${n}\\s*(${t.flatMap(e=>{var t,n;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(n=e.block)||void 0===n?void 0:n.end].filter(Boolean)}).join("|")})\\s*${r})`}).join("|");return RegExp(`^\\s*(?:${n})\\s*$`)}function F(e){var t,n,{as:r}=e,s=function(e,t){if(null==e)return{};var n,r,s=function(e,t){if(null==e)return{};var n,r,s={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}(e,["as"]);let o=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach(([e,r])=>{let s=t[e];s&&"string"==typeof r&&(n[s]=r)}),n}(f());return(0,c.jsx)(r,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},s),n=n={style:o,className:(0,a.A)(s.className,"codeBlockContainer_jDV4",B.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let W={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function q({children:e,className:t}){return(0,c.jsx)(F,{as:"pre",tabIndex:0,className:(0,a.A)(W.codeBlockStandalone,"thin-scrollbar",t),children:(0,c.jsx)("code",{className:W.codeBlockLines,children:e})})}var V=n(2550);let z={attributes:!0,characterData:!0,childList:!0,subtree:!0};var G=n(27663);let U={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function Q(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function X({line:e,classNames:t,showLineNumbers:n,getLineProps:r,getTokenProps:s}){var o,l;1===e.length&&"\n"===e[0].content&&(e[0].content="");let i=r({line:e,className:(0,a.A)(t,n&&U.codeLine)}),d=e.map((e,t)=>(0,c.jsx)("span",Q({},s({token:e})),t));return(0,c.jsxs)("span",(o=Q({},i),l=l={children:[n?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:U.codeLineNumber}),(0,c.jsx)("span",{className:U.codeLineContent,children:d})]}):d,(0,c.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(l)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(l)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(l,e))}),o))}var J=n(936);function Y(e){var t,n;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,c.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}function Z(e){var t,n;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,c.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[n,r]=(0,i.useState)(!1),s=(0,i.useRef)(void 0),o=(0,i.useCallback)(()=>{(0,J.A)(e),r(!0),s.current=window.setTimeout(()=>{r(!1)},1e3)},[e]);return(0,i.useEffect)(()=>()=>window.clearTimeout(s.current),[]),(0,c.jsx)("button",{type:"button","aria-label":n?(0,h.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,h.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,h.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.A)("clean-btn",t,K.copyButton,n&&K.copyButtonCopied),onClick:o,children:(0,c.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,c.jsx)(Y,{className:K.copyButtonIcon}),(0,c.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,n;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,c.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let en={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function er({className:e,onClick:t,isEnabled:n}){let r=(0,h.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,c.jsx)("button",{type:"button",onClick:t,className:(0,a.A)("clean-btn",e,n&&en.wordWrapButtonEnabled),"aria-label":r,title:r,children:(0,c.jsx)(et,{className:en.wordWrapButtonIcon,"aria-hidden":"true"})})}function es({children:e,className:t="",metastring:n,title:r,showLineNumbers:s,language:o}){var l,d,u,h;let{prism:{defaultLanguage:p,magicComments:b}}=(0,m.p)(),g=null==(d=null!==(l=null!=o?o:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==l?l:p)?void 0:d.toLowerCase(),j=f(),y=function(){let[e,t]=(0,i.useState)(!1),[n,r]=(0,i.useState)(!1),s=(0,i.useRef)(null),o=(0,i.useCallback)(()=>{let n=s.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t(e=>!e)},[s,e]),l=(0,i.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=s.current;r(e>t||s.current.querySelector("code").hasAttribute("style"))},[s]);return!function(e,t){let[n,r]=(0,i.useState)(),s=(0,i.useCallback)(()=>{var t;r(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,r]);(0,i.useEffect)(()=>{s()},[s]),function(e,t,n=z){let r=(0,V._q)(t),s=(0,V.Be)(n);(0,i.useEffect)(()=>{let t=new MutationObserver(r);return e&&t.observe(e,s),()=>t.disconnect()},[e,r,s])}(n,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),s())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(s,l),(0,i.useEffect)(()=>{l()},[e,l]),(0,i.useEffect)(()=>(window.addEventListener("resize",l,{passive:!0}),()=>{window.removeEventListener("resize",l)}),[l]),{codeBlockRef:s,isEnabled:e,isCodeScrollable:n,toggle:o}}(),x=(null!==(h=null==n?void 0:null===(u=n.match(L))||void 0===u?void 0:u.groups.title)&&void 0!==h?h:"")||r,{lineClassNames:O,code:v}=function(e,t){let n=e.replace(/\n$/,""),{language:r,magicComments:s,metastring:o}=t;if(o&&I.test(o)){let e=o.match(I).groups.range;if(0===s.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${o}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=s[0].className;return{lineClassNames:Object.fromEntries(C()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:n}}if(void 0===r)return{lineClassNames:{},code:n};let l=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return M(["js","jsBlock"],t);case"jsx":case"tsx":return M(["js","jsBlock","jsx"],t);case"html":return M(["js","jsBlock","html"],t);case"python":case"py":case"bash":return M(["bash"],t);case"markdown":case"md":return M(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return M(["tex"],t);case"lua":case"haskell":case"sql":return M(["lua"],t);case"wasm":return M(["wasm"],t);case"vb":case"vba":case"visual-basic":return M(["vb","rem"],t);case"vbnet":return M(["vbnet","rem"],t);case"batch":return M(["rem"],t);case"basic":return M(["rem","f90"],t);case"fsharp":return M(["js","ml"],t);case"ocaml":case"sml":return M(["ml"],t);case"fortran":return M(["f90"],t);case"cobol":return M(["cobol"],t);default:return M(H,t)}}(r,s),c=n.split("\n"),i=Object.fromEntries(s.map(e=>[e.className,{start:0,range:""}])),a=Object.fromEntries(s.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),d=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),u=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<c.length;){let t=c[e].match(l);if(!t){e+=1;continue}let n=t.slice(1).find(e=>void 0!==e);a[n]?i[a[n]].range+=`${e},`:d[n]?i[d[n]].start=e:u[n]&&(i[u[n]].range+=`${i[u[n]].start}-${e-1},`),c.splice(e,1)}n=c.join("\n");let h={};return Object.entries(i).forEach(([e,{range:t}])=>{C()(t).forEach(t=>{var n;null!==(n=h[t])&&void 0!==n||(h[t]=[]),h[t].push(e)})}),{lineClassNames:h,code:n}}(e,{metastring:n,language:g,magicComments:b}),w=null!=s?s:!!(null==n?void 0:n.includes("showLineNumbers"));return(0,c.jsxs)(F,{as:"div",className:(0,a.A)(t,g&&!t.includes(`language-${g}`)&&`language-${g}`),children:[x&&(0,c.jsx)("div",{className:W.codeBlockTitle,children:x}),(0,c.jsxs)("div",{className:W.codeBlockContent,children:[(0,c.jsx)(G.f4,{theme:j,code:v,language:null!=g?g:"text",children:({className:e,style:t,tokens:n,getLineProps:r,getTokenProps:s})=>(0,c.jsx)("pre",{tabIndex:0,ref:y.codeBlockRef,className:(0,a.A)(e,W.codeBlock,"thin-scrollbar"),style:t,children:(0,c.jsx)("code",{className:(0,a.A)(W.codeBlockLines,w&&W.codeBlockLinesWithNumbering),children:n.map((e,t)=>(0,c.jsx)(X,{line:e,getLineProps:r,getTokenProps:s,classNames:O[t],showLineNumbers:w},t))})})}),(0,c.jsxs)("div",{className:W.buttonGroup,children:[(y.isEnabled||y.isCodeScrollable)&&(0,c.jsx)(er,{className:W.codeButton,onClick:()=>y.toggle(),isEnabled:y.isEnabled}),(0,c.jsx)(ee,{className:W.codeButton,code:v})]})]})]})}function eo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}let el=(o=function(e){var t,n,{children:r}=e,s=function(e,t){if(null==e)return{};var n,r,s=function(e,t){if(null==e)return{};var n,r,s={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}(e,["children"]);let o=(0,d.A)(),l=i.Children.toArray(r).some(e=>(0,i.isValidElement)(e))?r:Array.isArray(r)?r.join(""):r,a="string"==typeof l?es:q;return(0,c.jsx)(a,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},s),n=n={children:l},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t),String(o))},function(e){return e.live?(0,c.jsx)(N,eo({scope:A},e)):(0,c.jsx)(o,eo({},e))});function ec(e){return(0,c.jsx)(el,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e))}},43091:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>h,contentTitle:()=>u,default:()=>g,frontMatter:()=>d,metadata:()=>r,toc:()=>p});let r=JSON.parse('{"type":"mdx","permalink":"/tests/pages/code-block-tests","source":"@site/_dogfooding/_pages tests/code-block-tests.mdx","title":"Code block tests","description":"This test page is quite outdated: MDX v2 lowercase tags are not substituted anymore in the same way as they were in v1.","frontMatter":{},"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/code-block-tests.mdx","unlisted":false}');var s=n(62540),o=n(43023),l=n(55887),c=n(70361),i=n(27446),a=n(15995);let d={},u="Code block tests",h={},p=[{value:"Code block prism language tests",id:"code-block-prism-language-tests",level:2},{value:"<code>pre</code>",id:"pre",level:2},{value:"<code>pre > string</code>",id:"pre--string",level:3},{value:"<code>pre > string[]</code>",id:"pre--string-1",level:3},{value:"<code>pre > element</code>",id:"pre--element",level:3},{value:"<code>pre > element[]</code>",id:"pre--element-1",level:3},{value:"<code>pre > code > element</code>",id:"pre--code--element",level:3},{value:"<code>code</code>",id:"code",level:2},{value:"<code>code > string</code>",id:"code--string",level:3},{value:"<code>code > string[]</code>",id:"code--string-1",level:3},{value:"<code>code > element</code>",id:"code--element",level:3},{value:"<code>code > element[]</code>",id:"code--element-1",level:3},{value:"<code>CodeBlock</code>",id:"codeblock",level:2},{value:"<code>CodeBlock > string</code>",id:"codeblock--string",level:3},{value:"<code>CodeBlock > string[]</code>",id:"codeblock--string-1",level:3},{value:"<code>CodeBlock > element</code>",id:"codeblock--element",level:3},{value:"<code>CodeBlock > element[]</code>",id:"codeblock--element-1",level:3},{value:"Code blocks with line numbering tests",id:"code-blocks-with-line-numbering-tests",level:2},{value:"Code block wrapping tests",id:"code-block-wrapping-tests",level:2},{value:"Magic comments tests",id:"magic-comments-tests",level:2},{value:"HTML - script + style highlighting",id:"html---script--style-highlighting",level:2},{value:"Empty code blocks edge cases",id:"empty-code-blocks-edge-cases",level:2}];function b(e){let t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"code-block-tests",children:"Code block tests"})}),"\n",(0,s.jsx)(t.admonition,{title:"legacy test page - MDX v1",type:"danger",children:(0,s.jsx)(t.p,{children:"This test page is quite outdated: MDX v2 lowercase tags are not substituted anymore in the same way as they were in v1."})}),"\n",(0,s.jsx)(t.hr,{}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-java",children:'class HelloWorld {\n public static void main(String args[]) {\n System.out.println("Hello, World");\n }\n}\n'})}),"\n",(0,s.jsx)(t.p,{children:"See:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/1584",children:"https://github.com/facebook/docusaurus/pull/1584"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/3749",children:"https://github.com/facebook/docusaurus/pull/3749"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/6177",children:"https://github.com/facebook/docusaurus/pull/6177"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"code-block-prism-language-tests",children:"Code block prism language tests"}),"\n",(0,s.jsxs)(t.p,{children:["Code block with/without the good prism language case(lower or upper) in ",(0,s.jsx)(t.code,{children:"additionalLanguages[]"})]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-php",metastring:'title="php"',children:'<?php\n$x=15;\n$y=30;\n$z=$x+$y;\necho "Sum: ",$z;\n?>\n'})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-PHP",metastring:'title="PHP"',children:'<?php\n$x=15;\n$y=30;\n$z=$x+$y;\necho "Sum: ",$z;\n?>\n'})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-pHp",metastring:'title="pHp"',children:'<?php\n$x=15;\n$y=30;\n$z=$x+$y;\necho "Sum: ",$z;\n?>\n'})}),"\n",(0,s.jsx)(t.p,{children:"See:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/9183",children:"https://github.com/facebook/docusaurus/pull/9183"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"pre",children:(0,s.jsx)(t.code,{children:"pre"})}),"\n",(0,s.jsx)(t.h3,{id:"pre--string",children:(0,s.jsx)(t.code,{children:"pre > string"})}),"\n",(0,s.jsxs)(t.p,{children:["Multi-line text inside ",(0,s.jsx)(t.code,{children:"pre"})," will turn into one-liner, but it's okay (",(0,s.jsx)(t.a,{href:"https://github.com/mdx-js/mdx/issues/1095",children:"https://github.com/mdx-js/mdx/issues/1095"}),")"]}),"\n",(0,s.jsx)("pre",{children:"1 2 3"}),"\n","\n",(0,s.jsx)("pre",{children:(0,s.jsx)(t.p,{children:"1\n2\n3"})}),"\n",(0,s.jsx)(t.h3,{id:"pre--string-1",children:(0,s.jsx)(t.code,{children:"pre > string[]"})}),"\n",(0,s.jsx)("pre",{children:(0,s.jsxs)(t.p,{children:["1","\n","2","\n","3","\n"]})}),"\n",(0,s.jsx)(t.h3,{id:"pre--element",children:(0,s.jsx)(t.code,{children:"pre > element"})}),"\n",(0,s.jsx)("pre",{children:(0,s.jsx)(c.A,{children:"Lol bro"})}),"\n",(0,s.jsx)(t.h3,{id:"pre--element-1",children:(0,s.jsx)(t.code,{children:"pre > element[]"})}),"\n",(0,s.jsxs)("pre",{children:[(0,s.jsx)("a",{href:"/",children:"Front page"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)("strong",{children:"Input: "}),'a = "abcd", b = "cdabcdab"',"\n","\n",(0,s.jsx)("strong",{children:"Output: "}),"3","\n","\n",(0,s.jsx)("strong",{children:"Explanation: "}),'a after three repetitions become "ab\n',(0,s.jsx)("strong",{children:"cdabcdab"}),'cd", at which time b is a substring.',"\n"]})]}),"\n",(0,s.jsx)(t.h3,{id:"pre--code--element",children:(0,s.jsx)(t.code,{children:"pre > code > element"})}),"\n",(0,s.jsx)("pre",{children:(0,s.jsx)("code",{children:(0,s.jsx)("b",{children:"Hey bro"})})}),"\n",(0,s.jsx)(t.h2,{id:"code",children:(0,s.jsx)(t.code,{children:"code"})}),"\n",(0,s.jsx)(t.h3,{id:"code--string",children:(0,s.jsx)(t.code,{children:"code > string"})}),"\n",(0,s.jsx)("code",{children:"1 2 3"}),"\n",(0,s.jsx)("code",{children:`link: +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[63054],{15995:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(62540);n(63696);var s=n(11750);function o({children:e,hidden:t,className:n}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_pnkT",n),hidden:t,children:e})}},27446:(e,t,n)=>{n.d(t,{A:()=>x});var r=n(62540),s=n(63696),o=n(11750),l=n(7846),c=n(49519),i=n(96439),a=n(19739),d=n(66904),u=n(79244);function h(e){var t,n;return null!==(n=null===(t=s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==n?n:[]}function p({value:e,tabValues:t}){return t.some(t=>t.value===e)}var b=n(10709);function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function j(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function m({className:e,block:t,selectedValue:n,selectValue:s,tabValues:c}){let i=[],{blockElementScrollPositionUntilNextRender:a}=(0,l.a_)(),d=e=>{let t=e.currentTarget,r=c[i.indexOf(t)].value;r!==n&&(a(t),s(r))},u=e=>{var t,n;let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let n=i.indexOf(e.currentTarget)+1;r=null!==(t=i[n])&&void 0!==t?t:i[0];break}case"ArrowLeft":{let t=i.indexOf(e.currentTarget)-1;r=null!==(n=i[t])&&void 0!==n?n:i[i.length-1]}}null==r||r.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.A)("tabs",{"tabs--block":t},e),children:c.map(({value:e,label:t,attributes:s})=>(0,r.jsx)("li",j(g({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>i.push(e),onKeyDown:u,onClick:d},s),{className:(0,o.A)("tabs__item","tabItem_AQgk",null==s?void 0:s.className,{"tabs__item--active":n===e}),children:null!=t?t:e}),e))})}function f({lazy:e,children:t,selectedValue:n}){let l=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=l.find(e=>e.props.value===n);return e?(0,s.cloneElement)(e,{className:(0,o.A)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:l.map((e,t)=>(0,s.cloneElement)(e,{key:t,hidden:e.props.value!==n}))})}function y(e){let t=function(e){let{defaultValue:t,queryString:n=!1,groupId:r}=e,o=function(e){let{values:t,children:n}=e;return(0,s.useMemo)(()=>{let e=null!=t?t:h(n).map(({props:{value:e,label:t,attributes:n,default:r}})=>({value:e,label:t,attributes:n,default:r}));return!function(e){let t=(0,d.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,n])}(e),[l,b]=(0,s.useState)(()=>(function({defaultValue:e,tabValues:t}){var n;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let r=null!==(n=t.find(e=>e.default))&&void 0!==n?n:t[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:t,tabValues:o})),[g,j]=function({queryString:e=!1,groupId:t}){let n=(0,c.W6)(),r=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,a.aZ)(r),(0,s.useCallback)(e=>{var t,s;if(!r)return;let o=new URLSearchParams(n.location.search);o.set(r,e),n.replace((t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},n.location),s=s={search:o.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(s)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(s)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(s,e))}),t))},[r,n])]}({queryString:n,groupId:r}),[m,f]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[n,r]=(0,u.Dv)(t);return[n,(0,s.useCallback)(e=>{t&&r.set(e)},[t,r])]}({groupId:r}),y=(()=>{let e=null!=g?g:m;return p({value:e,tabValues:o})?e:null})();return(0,i.A)(()=>{y&&b(y)},[y]),{selectedValue:l,selectValue:(0,s.useCallback)(e=>{if(!p({value:e,tabValues:o}))throw Error(`Can't select invalid tab value=${e}`);b(e),j(e),f(e)},[j,f,o]),tabValues:o}}(e);return(0,r.jsxs)("div",{className:(0,o.A)("tabs-container","tabList_Qoir"),children:[(0,r.jsx)(m,g({},t,e)),(0,r.jsx)(f,g({},t,e))]})}function x(e){let t=(0,b.A)();return(0,r.jsx)(y,j(g({},e),{children:h(e.children)}),String(t))}},40576:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(62540);n(63696);var s=n(10709);function o({children:e,fallback:t}){return(0,s.A)()?(0,r.jsx)(r.Fragment,{children:null==e?void 0:e()}):null!=t?t:null}},70361:(e,t,n)=>{n.d(t,{A:()=>c});var r=n(62540);n(63696);var s=n(11750);let o="dot_giz1",l="bar_rrRL";function c({children:e,minHeight:t,url:n="http://localhost:3000",style:c,bodyStyle:i}){var a,d;return(0,r.jsxs)("div",{className:"browserWindow_my1Q",style:(a=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},c),d=d={minHeight:t},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(d)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(d)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(d,e))}),a),children:[(0,r.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,r.jsxs)("div",{className:"buttons_uHc7",children:[(0,r.jsx)("span",{className:o,style:{background:"#f25f58"}}),(0,r.jsx)("span",{className:o,style:{background:"#fbbe3c"}}),(0,r.jsx)("span",{className:o,style:{background:"#58cb42"}})]}),(0,r.jsx)("div",{className:(0,s.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:n}),(0,r.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:l}),(0,r.jsx)("span",{className:l}),(0,r.jsx)("span",{className:l})]})})]}),(0,r.jsx)("div",{className:"browserWindowBody_Idgs",style:i,children:e})]})}},55887:(e,t,n)=>{n.d(t,{A:()=>ec});var r,s,o,l={};n.r(l),n.d(l,{ButtonExample:()=>_});var c=n(62540),i=n(63696),a=n(11750),d=n(10709),u=n(55152),h=n(81912),p=n(99468),b=n(40576),g=n(1495),j=n(66659),m=n(25436);function f(){let{prism:e}=(0,m.p)(),{colorMode:t}=(0,j.G)(),n=e.theme,r=e.darkTheme||n;return"dark"===t?r:n}var y=n(43758);function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function O({children:e}){return(0,c.jsx)("div",{className:(0,a.A)("playgroundHeader_Tvsk"),children:e})}function v(){return(0,c.jsx)("div",{children:"Loading..."})}function w(){return(0,c.jsx)(b.A,{fallback:(0,c.jsx)(v,{}),children:()=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(y.A,{fallback:e=>(0,c.jsx)(g.MN,x({},e)),children:(0,c.jsx)(u.pA,{})}),(0,c.jsx)(u.p1,{})]})})}function T(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(O,{children:(0,c.jsx)(h.A,{id:"theme.Playground.result",description:"The result label of the live codeblocks",children:"Result"})}),(0,c.jsx)("div",{className:"playgroundPreview_mApW",children:(0,c.jsx)(w,{})})]})}function k(){let e=(0,d.A)();return(0,c.jsx)(u.w,{className:"playgroundEditor_TySg"},String(e))}function P(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(O,{children:(0,c.jsx)(h.A,{id:"theme.Playground.liveEditor",description:"The live editor label of the live codeblocks",children:"Live Editor"})}),(0,c.jsx)(k,{})]})}let S=e=>`${e};`;function N(e){var t,n,r,s,{children:o,transformCode:l}=e,i=function(e,t){if(null==e)return{};var n,r,s=function(e,t){if(null==e)return{};var n,r,s={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}(e,["children","transformCode"]);let{siteConfig:{themeConfig:a}}=(0,p.A)(),{liveCodeBlock:{playgroundPosition:d}}=a,h=f(),b=null!==(s=null===(r=i.metastring)||void 0===r?void 0:r.includes("noInline"))&&void 0!==s&&s;return(0,c.jsx)("div",{className:"playgroundContainer_6Ior",children:(0,c.jsx)(u.Q,(t=x({code:null==o?void 0:o.replace(/\n$/,""),noInline:b,transformCode:null!=l?l:S,theme:h},i),n=n={children:"top"===d?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(T,{}),(0,c.jsx)(P,{})]}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(P,{}),(0,c.jsx)(T,{})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))})}function E(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function _(e){var t,n;return(0,c.jsx)("button",(t=E({type:"button"},e),n=n={style:E({backgroundColor:"white",color:"black",border:"solid red",borderRadius:20,padding:10,cursor:"pointer"},e.style)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let A=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({React:i},i,l);var B=n(12653),D=n(19934),L=n.n(D);let C=RegExp("title=(?<quote>[\"'])(?<title>.*?)\\1"),I=RegExp("\\{(?<range>[\\d,-]+)\\}"),$={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"<!--",end:"-->"}},R=(r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},$),s=s={lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(s)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(s)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(s,e))}),r),H=Object.keys($);function M(e,t){let n=e.map(e=>{let{start:n,end:r}=R[e];return`(?:${n}\\s*(${t.flatMap(e=>{var t,n;return[e.line,null===(t=e.block)||void 0===t?void 0:t.start,null===(n=e.block)||void 0===n?void 0:n.end].filter(Boolean)}).join("|")})\\s*${r})`}).join("|");return RegExp(`^\\s*(?:${n})\\s*$`)}function F(e){var t,n,{as:r}=e,s=function(e,t){if(null==e)return{};var n,r,s=function(e,t){if(null==e)return{};var n,r,s={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}(e,["as"]);let o=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach(([e,r])=>{let s=t[e];s&&"string"==typeof r&&(n[s]=r)}),n}(f());return(0,c.jsx)(r,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},s),n=n={style:o,className:(0,a.A)(s.className,"codeBlockContainer_jDV4",B.G.common.codeBlock)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let W={codeBlockContent:"codeBlockContent_vx7S",codeBlockTitle:"codeBlockTitle_bdru",codeBlock:"codeBlock_Gebt",codeBlockStandalone:"codeBlockStandalone_i_cY",codeBlockLines:"codeBlockLines_FJaf",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_FU9Q",buttonGroup:"buttonGroup_cUGO"};function q({children:e,className:t}){return(0,c.jsx)(F,{as:"pre",tabIndex:0,className:(0,a.A)(W.codeBlockStandalone,"thin-scrollbar",t),children:(0,c.jsx)("code",{className:W.codeBlockLines,children:e})})}var V=n(2550);let z={attributes:!0,characterData:!0,childList:!0,subtree:!0};var G=n(27663);let U={codeLine:"codeLine_qRmp",codeLineNumber:"codeLineNumber_dS_J",codeLineContent:"codeLineContent_XF5l"};function Q(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function X({line:e,classNames:t,showLineNumbers:n,getLineProps:r,getTokenProps:s}){var o,l;1===e.length&&"\n"===e[0].content&&(e[0].content="");let i=r({line:e,className:(0,a.A)(t,n&&U.codeLine)}),d=e.map((e,t)=>(0,c.jsx)("span",Q({},s({token:e})),t));return(0,c.jsxs)("span",(o=Q({},i),l=l={children:[n?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:U.codeLineNumber}),(0,c.jsx)("span",{className:U.codeLineContent,children:d})]}):d,(0,c.jsx)("br",{})]},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(l)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(l)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(l,e))}),o))}var J=n(936);function Y(e){var t,n;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,c.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}function Z(e){var t,n;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,c.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let K={copyButtonCopied:"copyButtonCopied_OkN_",copyButtonIcons:"copyButtonIcons_OqsO",copyButtonIcon:"copyButtonIcon_PgCn",copyButtonSuccessIcon:"copyButtonSuccessIcon_bsQG"};function ee({code:e,className:t}){let[n,r]=(0,i.useState)(!1),s=(0,i.useRef)(void 0),o=(0,i.useCallback)(()=>{(0,J.A)(e),r(!0),s.current=window.setTimeout(()=>{r(!1)},1e3)},[e]);return(0,i.useEffect)(()=>()=>window.clearTimeout(s.current),[]),(0,c.jsx)("button",{type:"button","aria-label":n?(0,h.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,h.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,h.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.A)("clean-btn",t,K.copyButton,n&&K.copyButtonCopied),onClick:o,children:(0,c.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,c.jsx)(Y,{className:K.copyButtonIcon}),(0,c.jsx)(Z,{className:K.copyButtonSuccessIcon})]})})}function et(e){var t,n;return(0,c.jsx)("svg",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({viewBox:"0 0 24 24"},e),n=n={children:(0,c.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let en={wordWrapButtonIcon:"wordWrapButtonIcon_MQXS",wordWrapButtonEnabled:"wordWrapButtonEnabled_TBIH"};function er({className:e,onClick:t,isEnabled:n}){let r=(0,h.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,c.jsx)("button",{type:"button",onClick:t,className:(0,a.A)("clean-btn",e,n&&en.wordWrapButtonEnabled),"aria-label":r,title:r,children:(0,c.jsx)(et,{className:en.wordWrapButtonIcon,"aria-hidden":"true"})})}function es({children:e,className:t="",metastring:n,title:r,showLineNumbers:s,language:o}){var l,d,u,h;let{prism:{defaultLanguage:p,magicComments:b}}=(0,m.p)(),g=null==(d=null!==(l=null!=o?o:function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return null==t?void 0:t.replace(/language-/,"")}(t))&&void 0!==l?l:p)?void 0:d.toLowerCase(),j=f(),y=function(){let[e,t]=(0,i.useState)(!1),[n,r]=(0,i.useState)(!1),s=(0,i.useRef)(null),o=(0,i.useCallback)(()=>{let n=s.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t(e=>!e)},[s,e]),l=(0,i.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=s.current;r(e>t||s.current.querySelector("code").hasAttribute("style"))},[s]);return!function(e,t){let[n,r]=(0,i.useState)(),s=(0,i.useCallback)(()=>{var t;r(null===(t=e.current)||void 0===t?void 0:t.closest("[role=tabpanel][hidden]"))},[e,r]);(0,i.useEffect)(()=>{s()},[s]),function(e,t,n=z){let r=(0,V._q)(t),s=(0,V.Be)(n);(0,i.useEffect)(()=>{let t=new MutationObserver(r);return e&&t.observe(e,s),()=>t.disconnect()},[e,r,s])}(n,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),s())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(s,l),(0,i.useEffect)(()=>{l()},[e,l]),(0,i.useEffect)(()=>(window.addEventListener("resize",l,{passive:!0}),()=>{window.removeEventListener("resize",l)}),[l]),{codeBlockRef:s,isEnabled:e,isCodeScrollable:n,toggle:o}}(),x=(null!==(h=null==n?void 0:null===(u=n.match(C))||void 0===u?void 0:u.groups.title)&&void 0!==h?h:"")||r,{lineClassNames:O,code:v}=function(e,t){let n=e.replace(/\n$/,""),{language:r,magicComments:s,metastring:o}=t;if(o&&I.test(o)){let e=o.match(I).groups.range;if(0===s.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${o}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=s[0].className;return{lineClassNames:Object.fromEntries(L()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:n}}if(void 0===r)return{lineClassNames:{},code:n};let l=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return M(["js","jsBlock"],t);case"jsx":case"tsx":return M(["js","jsBlock","jsx"],t);case"html":return M(["js","jsBlock","html"],t);case"python":case"py":case"bash":return M(["bash"],t);case"markdown":case"md":return M(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return M(["tex"],t);case"lua":case"haskell":case"sql":return M(["lua"],t);case"wasm":return M(["wasm"],t);case"vb":case"vba":case"visual-basic":return M(["vb","rem"],t);case"vbnet":return M(["vbnet","rem"],t);case"batch":return M(["rem"],t);case"basic":return M(["rem","f90"],t);case"fsharp":return M(["js","ml"],t);case"ocaml":case"sml":return M(["ml"],t);case"fortran":return M(["f90"],t);case"cobol":return M(["cobol"],t);default:return M(H,t)}}(r,s),c=n.split("\n"),i=Object.fromEntries(s.map(e=>[e.className,{start:0,range:""}])),a=Object.fromEntries(s.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),d=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),u=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<c.length;){let t=c[e].match(l);if(!t){e+=1;continue}let n=t.slice(1).find(e=>void 0!==e);a[n]?i[a[n]].range+=`${e},`:d[n]?i[d[n]].start=e:u[n]&&(i[u[n]].range+=`${i[u[n]].start}-${e-1},`),c.splice(e,1)}n=c.join("\n");let h={};return Object.entries(i).forEach(([e,{range:t}])=>{L()(t).forEach(t=>{var n;null!==(n=h[t])&&void 0!==n||(h[t]=[]),h[t].push(e)})}),{lineClassNames:h,code:n}}(e,{metastring:n,language:g,magicComments:b}),w=null!=s?s:!!(null==n?void 0:n.includes("showLineNumbers"));return(0,c.jsxs)(F,{as:"div",className:(0,a.A)(t,g&&!t.includes(`language-${g}`)&&`language-${g}`),children:[x&&(0,c.jsx)("div",{className:W.codeBlockTitle,children:x}),(0,c.jsxs)("div",{className:W.codeBlockContent,children:[(0,c.jsx)(G.f4,{theme:j,code:v,language:null!=g?g:"text",children:({className:e,style:t,tokens:n,getLineProps:r,getTokenProps:s})=>(0,c.jsx)("pre",{tabIndex:0,ref:y.codeBlockRef,className:(0,a.A)(e,W.codeBlock,"thin-scrollbar"),style:t,children:(0,c.jsx)("code",{className:(0,a.A)(W.codeBlockLines,w&&W.codeBlockLinesWithNumbering),children:n.map((e,t)=>(0,c.jsx)(X,{line:e,getLineProps:r,getTokenProps:s,classNames:O[t],showLineNumbers:w},t))})})}),(0,c.jsxs)("div",{className:W.buttonGroup,children:[(y.isEnabled||y.isCodeScrollable)&&(0,c.jsx)(er,{className:W.codeButton,onClick:()=>y.toggle(),isEnabled:y.isEnabled}),(0,c.jsx)(ee,{className:W.codeButton,code:v})]})]})]})}function eo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}let el=(o=function(e){var t,n,{children:r}=e,s=function(e,t){if(null==e)return{};var n,r,s=function(e,t){if(null==e)return{};var n,r,s={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}(e,["children"]);let o=(0,d.A)(),l=i.Children.toArray(r).some(e=>(0,i.isValidElement)(e))?r:Array.isArray(r)?r.join(""):r,a="string"==typeof l?es:q;return(0,c.jsx)(a,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},s),n=n={children:l},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t),String(o))},function(e){return e.live?(0,c.jsx)(N,eo({scope:A},e)):(0,c.jsx)(o,eo({},e))});function ec(e){return(0,c.jsx)(el,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e))}},43091:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>h,contentTitle:()=>u,default:()=>g,frontMatter:()=>d,metadata:()=>r,toc:()=>p});let r=JSON.parse('{"type":"mdx","permalink":"/tests/pages/code-block-tests","source":"@site/_dogfooding/_pages tests/code-block-tests.mdx","title":"Code block tests","description":"This test page is quite outdated: MDX v2 lowercase tags are not substituted anymore in the same way as they were in v1.","frontMatter":{},"lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/code-block-tests.mdx","unlisted":false}');var s=n(62540),o=n(43023),l=n(55887),c=n(70361),i=n(27446),a=n(15995);let d={},u="Code block tests",h={},p=[{value:"Code block prism language tests",id:"code-block-prism-language-tests",level:2},{value:"<code>pre</code>",id:"pre",level:2},{value:"<code>pre > string</code>",id:"pre--string",level:3},{value:"<code>pre > string[]</code>",id:"pre--string-1",level:3},{value:"<code>pre > element</code>",id:"pre--element",level:3},{value:"<code>pre > element[]</code>",id:"pre--element-1",level:3},{value:"<code>pre > code > element</code>",id:"pre--code--element",level:3},{value:"<code>code</code>",id:"code",level:2},{value:"<code>code > string</code>",id:"code--string",level:3},{value:"<code>code > string[]</code>",id:"code--string-1",level:3},{value:"<code>code > element</code>",id:"code--element",level:3},{value:"<code>code > element[]</code>",id:"code--element-1",level:3},{value:"<code>CodeBlock</code>",id:"codeblock",level:2},{value:"<code>CodeBlock > string</code>",id:"codeblock--string",level:3},{value:"<code>CodeBlock > string[]</code>",id:"codeblock--string-1",level:3},{value:"<code>CodeBlock > element</code>",id:"codeblock--element",level:3},{value:"<code>CodeBlock > element[]</code>",id:"codeblock--element-1",level:3},{value:"Code blocks with line numbering tests",id:"code-blocks-with-line-numbering-tests",level:2},{value:"Code block wrapping tests",id:"code-block-wrapping-tests",level:2},{value:"Magic comments tests",id:"magic-comments-tests",level:2},{value:"HTML - script + style highlighting",id:"html---script--style-highlighting",level:2},{value:"Empty code blocks edge cases",id:"empty-code-blocks-edge-cases",level:2}];function b(e){let t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"code-block-tests",children:"Code block tests"})}),"\n",(0,s.jsx)(t.admonition,{title:"legacy test page - MDX v1",type:"danger",children:(0,s.jsx)(t.p,{children:"This test page is quite outdated: MDX v2 lowercase tags are not substituted anymore in the same way as they were in v1."})}),"\n",(0,s.jsx)(t.hr,{}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-java",children:'class HelloWorld {\n public static void main(String args[]) {\n System.out.println("Hello, World");\n }\n}\n'})}),"\n",(0,s.jsx)(t.p,{children:"See:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/1584",children:"https://github.com/facebook/docusaurus/pull/1584"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/3749",children:"https://github.com/facebook/docusaurus/pull/3749"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/6177",children:"https://github.com/facebook/docusaurus/pull/6177"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"code-block-prism-language-tests",children:"Code block prism language tests"}),"\n",(0,s.jsxs)(t.p,{children:["Code block with/without the good prism language case(lower or upper) in ",(0,s.jsx)(t.code,{children:"additionalLanguages[]"})]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-php",metastring:'title="php"',children:'<?php\n$x=15;\n$y=30;\n$z=$x+$y;\necho "Sum: ",$z;\n?>\n'})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-PHP",metastring:'title="PHP"',children:'<?php\n$x=15;\n$y=30;\n$z=$x+$y;\necho "Sum: ",$z;\n?>\n'})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-pHp",metastring:'title="pHp"',children:'<?php\n$x=15;\n$y=30;\n$z=$x+$y;\necho "Sum: ",$z;\n?>\n'})}),"\n",(0,s.jsx)(t.p,{children:"See:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/pull/9183",children:"https://github.com/facebook/docusaurus/pull/9183"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"pre",children:(0,s.jsx)(t.code,{children:"pre"})}),"\n",(0,s.jsx)(t.h3,{id:"pre--string",children:(0,s.jsx)(t.code,{children:"pre > string"})}),"\n",(0,s.jsxs)(t.p,{children:["Multi-line text inside ",(0,s.jsx)(t.code,{children:"pre"})," will turn into one-liner, but it's okay (",(0,s.jsx)(t.a,{href:"https://github.com/mdx-js/mdx/issues/1095",children:"https://github.com/mdx-js/mdx/issues/1095"}),")"]}),"\n",(0,s.jsx)("pre",{children:"1 2 3"}),"\n","\n",(0,s.jsx)("pre",{children:(0,s.jsx)(t.p,{children:"1\n2\n3"})}),"\n",(0,s.jsx)(t.h3,{id:"pre--string-1",children:(0,s.jsx)(t.code,{children:"pre > string[]"})}),"\n",(0,s.jsx)("pre",{children:(0,s.jsxs)(t.p,{children:["1","\n","2","\n","3","\n"]})}),"\n",(0,s.jsx)(t.h3,{id:"pre--element",children:(0,s.jsx)(t.code,{children:"pre > element"})}),"\n",(0,s.jsx)("pre",{children:(0,s.jsx)(c.A,{children:"Lol bro"})}),"\n",(0,s.jsx)(t.h3,{id:"pre--element-1",children:(0,s.jsx)(t.code,{children:"pre > element[]"})}),"\n",(0,s.jsxs)("pre",{children:[(0,s.jsx)("a",{href:"/",children:"Front page"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)("strong",{children:"Input: "}),'a = "abcd", b = "cdabcdab"',"\n","\n",(0,s.jsx)("strong",{children:"Output: "}),"3","\n","\n",(0,s.jsx)("strong",{children:"Explanation: "}),'a after three repetitions become "ab\n',(0,s.jsx)("strong",{children:"cdabcdab"}),'cd", at which time b is a substring.',"\n"]})]}),"\n",(0,s.jsx)(t.h3,{id:"pre--code--element",children:(0,s.jsx)(t.code,{children:"pre > code > element"})}),"\n",(0,s.jsx)("pre",{children:(0,s.jsx)("code",{children:(0,s.jsx)("b",{children:"Hey bro"})})}),"\n",(0,s.jsx)(t.h2,{id:"code",children:(0,s.jsx)(t.code,{children:"code"})}),"\n",(0,s.jsx)(t.h3,{id:"code--string",children:(0,s.jsx)(t.code,{children:"code > string"})}),"\n",(0,s.jsx)("code",{children:"1 2 3"}),"\n",(0,s.jsx)("code",{children:`link: title: front page path: /docs/`}),"\n",(0,s.jsx)(t.h3,{id:"code--string-1",children:(0,s.jsx)(t.code,{children:"code > string[]"})}),"\n",(0,s.jsx)("code",{children:(0,s.jsxs)(t.p,{children:["link:"," \n","\n"," ","title: front page","\n","\n"," ","path: /docs/","\n"]})}),"\n",(0,s.jsx)(t.h3,{id:"code--element",children:(0,s.jsx)(t.code,{children:"code > element"})}),"\n",(0,s.jsx)("code",{children:(0,s.jsx)(c.A,{children:"Lol bro"})}),"\n",(0,s.jsx)(t.h3,{id:"code--element-1",children:(0,s.jsx)(t.code,{children:"code > element[]"})}),"\n",(0,s.jsxs)("code",{children:[(0,s.jsx)("a",{href:"/",children:"Front page"}),(0,s.jsx)("br",{}),(0,s.jsxs)(t.p,{children:[(0,s.jsx)("strong",{children:"Input: "}),'a = "abcd", b = "cdabcdab"']}),(0,s.jsx)("br",{}),(0,s.jsxs)(t.p,{children:[(0,s.jsx)("strong",{children:"Output: "}),"3",(0,s.jsx)("br",{}),"\n",(0,s.jsx)("strong",{children:"Explanation: "}),'a after three repetitions become "ab',(0,s.jsx)("strong",{children:"\ncdabcdab\n"}),'cd", at which time b is a substring.']}),(0,s.jsx)("br",{})]}),"\n",(0,s.jsx)(t.h2,{id:"codeblock",children:(0,s.jsx)(t.code,{children:"CodeBlock"})}),"\n",(0,s.jsx)(t.h3,{id:"codeblock--string",children:(0,s.jsx)(t.code,{children:"CodeBlock > string"})}),"\n",(0,s.jsx)(l.A,{children:"1 2 3"}),"\n",(0,s.jsx)(l.A,{className:"language-yaml",title:"test",children:`link: title: front page diff --git a/assets/js/80556.b7b8e98c.js b/assets/js/80556.b7b8e98c.js new file mode 100644 index 0000000000..5ec1e59540 --- /dev/null +++ b/assets/js/80556.b7b8e98c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[80556],{80556:(e,s,c)=>{c.d(s,{createInfoServices:()=>t.v});var t=c(17e3);c(69663)}}]); \ No newline at end of file diff --git a/assets/js/8075f6fd.9695ae6b.js b/assets/js/8075f6fd.8ccbdcf9.js similarity index 94% rename from assets/js/8075f6fd.9695ae6b.js rename to assets/js/8075f6fd.8ccbdcf9.js index 5823a02eda..8ab9633e8f 100644 --- a/assets/js/8075f6fd.9695ae6b.js +++ b/assets/js/8075f6fd.8ccbdcf9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[40105],{11361:(e,n,t)=>{t.d(n,{A:()=>s});let s=t.p+"assets/images/social-card-0662a6f419d0032829f99915ccf8918b.png"},24240:(e,n,t)=>{t.d(n,{A:()=>s});let s=t.p+"assets/images/social-card-0662a6f419d0032829f99915ccf8918b.png"},90763:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var s=t(49051),i=t(62540),r=t(43023);let o={authors:["slorber"],tags:["release"],slug:"/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing",description:"Upgrade npm dependencies with confidence thanks to a visual regression testing workflow using GitHub Actions, Playwright and Argos.",image:"./img/social-card.png"},a="Upgrading frontend dependencies with confidence",c={image:t(11361).A,authorsImageUrls:[void 0]},d=[];function l(e){let n={a:"a",img:"img",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Frontend developers often need to ",(0,i.jsx)(n.strong,{children:"upgrade npm dependencies"}),", but those upgrades can feel scary and lead to ",(0,i.jsx)(n.strong,{children:"subtle UI side effects"})," not caught by your regular test suite."]}),"\n",(0,i.jsxs)(n.p,{children:["Upgrading Docusaurus is a good example: without reviewing all the pages one by one, it's hard to be sure there's no visual regression. ",(0,i.jsx)(n.strong,{children:"Docusaurus v3 is around the corner"})," (currently in ",(0,i.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9312",children:"beta"}),"), and we would like to help you do this upgrade with confidence."]}),"\n",(0,i.jsxs)(n.p,{children:["This article introduces a ",(0,i.jsx)(n.strong,{children:"visual regression testing"})," workflow based on ",(0,i.jsx)(n.a,{href:"https://github.com/features/actions",children:(0,i.jsx)(n.strong,{children:"GitHub Actions"})}),", ",(0,i.jsx)(n.a,{href:"https://playwright.dev/",children:(0,i.jsx)(n.strong,{children:"Playwright"})}),", and ",(0,i.jsx)(n.a,{href:"https://argos-ci.com/",children:(0,i.jsx)(n.strong,{children:"Argos"})}),". It is not directly coupled to Docusaurus or React, and can be adapted to work with other frontend applications and frameworks."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Upgrading frontend dependencies with confidence - social card",src:t(24240).A+"",width:"1500",height:"785"})})]})}function u(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>a});var s=t(63696);let i={},r=s.createContext(i);function o(e){let n=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:n},e.children)}},49051:e=>{e.exports=JSON.parse('{"permalink":"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2023/09-22-upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing/index.mdx","source":"@site/blog/2023/09-22-upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing/index.mdx","title":"Upgrading frontend dependencies with confidence","description":"Upgrade npm dependencies with confidence thanks to a visual regression testing workflow using GitHub Actions, Playwright and Argos.","date":"2023-09-22T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":8.355,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"authors":["slorber"],"tags":["release"],"slug":"/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing","description":"Upgrade npm dependencies with confidence thanks to a visual regression testing workflow using GitHub Actions, Playwright and Argos.","image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","prevItem":{"title":"Preparing your site for Docusaurus v3","permalink":"/blog/preparing-your-site-for-docusaurus-v3"},"nextItem":{"title":"Docusaurus 2.4","permalink":"/blog/releases/2.4"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[40105],{11361:(e,n,t)=>{t.d(n,{A:()=>s});let s=t.p+"assets/images/social-card-0662a6f419d0032829f99915ccf8918b.png"},24240:(e,n,t)=>{t.d(n,{A:()=>s});let s=t.p+"assets/images/social-card-0662a6f419d0032829f99915ccf8918b.png"},90763:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var s=t(49051),i=t(62540),r=t(43023);let o={authors:["slorber"],tags:["release"],slug:"/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing",description:"Upgrade npm dependencies with confidence thanks to a visual regression testing workflow using GitHub Actions, Playwright and Argos.",image:"./img/social-card.png"},a="Upgrading frontend dependencies with confidence",c={image:t(11361).A,authorsImageUrls:[void 0]},d=[];function l(e){let n={a:"a",img:"img",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Frontend developers often need to ",(0,i.jsx)(n.strong,{children:"upgrade npm dependencies"}),", but those upgrades can feel scary and lead to ",(0,i.jsx)(n.strong,{children:"subtle UI side effects"})," not caught by your regular test suite."]}),"\n",(0,i.jsxs)(n.p,{children:["Upgrading Docusaurus is a good example: without reviewing all the pages one by one, it's hard to be sure there's no visual regression. ",(0,i.jsx)(n.strong,{children:"Docusaurus v3 is around the corner"})," (currently in ",(0,i.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9312",children:"beta"}),"), and we would like to help you do this upgrade with confidence."]}),"\n",(0,i.jsxs)(n.p,{children:["This article introduces a ",(0,i.jsx)(n.strong,{children:"visual regression testing"})," workflow based on ",(0,i.jsx)(n.a,{href:"https://github.com/features/actions",children:(0,i.jsx)(n.strong,{children:"GitHub Actions"})}),", ",(0,i.jsx)(n.a,{href:"https://playwright.dev/",children:(0,i.jsx)(n.strong,{children:"Playwright"})}),", and ",(0,i.jsx)(n.a,{href:"https://argos-ci.com/",children:(0,i.jsx)(n.strong,{children:"Argos"})}),". It is not directly coupled to Docusaurus or React, and can be adapted to work with other frontend applications and frameworks."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Upgrading frontend dependencies with confidence - social card",src:t(24240).A+"",width:"1500",height:"785"})})]})}function u(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>a});var s=t(63696);let i={},r=s.createContext(i);function o(e){let n=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:n},e.children)}},49051:e=>{e.exports=JSON.parse('{"permalink":"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2023/09-22-upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing/index.mdx","source":"@site/blog/2023/09-22-upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing/index.mdx","title":"Upgrading frontend dependencies with confidence","description":"Upgrade npm dependencies with confidence thanks to a visual regression testing workflow using GitHub Actions, Playwright and Argos.","date":"2023-09-22T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":8.355,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"authors":["slorber"],"tags":["release"],"slug":"/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing","description":"Upgrade npm dependencies with confidence thanks to a visual regression testing workflow using GitHub Actions, Playwright and Argos.","image":"./img/social-card.png"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Preparing your site for Docusaurus v3","permalink":"/blog/preparing-your-site-for-docusaurus-v3"},"nextItem":{"title":"Docusaurus 2.4","permalink":"/blog/releases/2.4"}}')}}]); \ No newline at end of file diff --git a/assets/js/81379.2b47c05f.js b/assets/js/81379.2b47c05f.js deleted file mode 100644 index 5ba10ebc28..0000000000 --- a/assets/js/81379.2b47c05f.js +++ /dev/null @@ -1,261 +0,0 @@ -(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[81379],{57795:function(t){var e;e=function(){return function(t,e){var i=e.prototype,r=i.format;i.format=function(t){var e=this,i=this.$locale();if(!this.isValid())return r.bind(this)(t);var n=this.$utils(),s=(t||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(t){switch(t){case"Q":return Math.ceil((e.$M+1)/3);case"Do":return i.ordinal(e.$D);case"gggg":return e.weekYear();case"GGGG":return e.isoWeekYear();case"wo":return i.ordinal(e.week(),"W");case"w":case"ww":return n.s(e.week(),"w"===t?1:2,"0");case"W":case"WW":return n.s(e.isoWeek(),"W"===t?1:2,"0");case"k":case"kk":return n.s(String(0===e.$H?24:e.$H),"k"===t?1:2,"0");case"X":return Math.floor(e.$d.getTime()/1e3);case"x":return e.$d.getTime();case"z":return"["+e.offsetName()+"]";case"zzz":return"["+e.offsetName("long")+"]";default:return t}});return r.bind(this)(s)}}},t.exports=e()},88809:function(t){var e;e=function(){"use strict";var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,i=/\d\d/,r=/\d\d?/,n=/\d*[^-_:/,()\s\d]+/,s={},a=function(t){return(t=+t)+(t>68?1900:2e3)},o=function(t){return function(e){this[t]=+e}},c=[/[+-]\d\d:?(\d\d)?|Z/,function(t){(this.zone||(this.zone={})).offset=function(t){if(!t||"Z"===t)return 0;var e=t.match(/([+-]|\d\d)/g),i=60*e[1]+(+e[2]||0);return 0===i?0:"+"===e[0]?-i:i}(t)}],l=function(t){var e=s[t];return e&&(e.indexOf?e:e.s.concat(e.f))},d=function(t,e){var i,r=s.meridiem;if(r){for(var n=1;n<=24;n+=1)if(t.indexOf(r(n,0,e))>-1){i=n>12;break}}else i=t===(e?"pm":"PM");return i},u={A:[n,function(t){this.afternoon=d(t,!1)}],a:[n,function(t){this.afternoon=d(t,!0)}],S:[/\d/,function(t){this.milliseconds=100*+t}],SS:[i,function(t){this.milliseconds=10*+t}],SSS:[/\d{3}/,function(t){this.milliseconds=+t}],s:[r,o("seconds")],ss:[r,o("seconds")],m:[r,o("minutes")],mm:[r,o("minutes")],H:[r,o("hours")],h:[r,o("hours")],HH:[r,o("hours")],hh:[r,o("hours")],D:[r,o("day")],DD:[i,o("day")],Do:[n,function(t){var e=s.ordinal,i=t.match(/\d+/);if(this.day=i[0],e)for(var r=1;r<=31;r+=1)e(r).replace(/\[|\]/g,"")===t&&(this.day=r)}],M:[r,o("month")],MM:[i,o("month")],MMM:[n,function(t){var e=l("months"),i=(l("monthsShort")||e.map(function(t){return t.slice(0,3)})).indexOf(t)+1;if(i<1)throw Error();this.month=i%12||i}],MMMM:[n,function(t){var e=l("months").indexOf(t)+1;if(e<1)throw Error();this.month=e%12||e}],Y:[/[+-]?\d+/,o("year")],YY:[i,function(t){this.year=a(t)}],YYYY:[/\d{4}/,o("year")],Z:c,ZZ:c};return function(i,r,n){n.p.customParseFormat=!0,i&&i.parseTwoDigitYear&&(a=i.parseTwoDigitYear);var o=r.prototype,c=o.parse;o.parse=function(i){var r=i.date,a=i.utc,o=i.args;this.$u=a;var l=o[1];if("string"==typeof l){var d=!0===o[2],h=!0===o[3],f=o[2];h&&(f=o[2]),s=this.$locale(),!d&&f&&(s=n.Ls[f]),this.$d=function(i,r,n){try{if(["x","X"].indexOf(r)>-1)return new Date(("X"===r?1e3:1)*i);var a=(function(i){var r,n;r=i,n=s&&s.formats;for(var a=(i=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(e,i,r){var s=r&&r.toUpperCase();return i||n[r]||t[r]||n[s].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(t,e,i){return e||i.slice(1)})})).match(e),o=a.length,c=0;c<o;c+=1){var l=a[c],d=u[l],h=d&&d[0],f=d&&d[1];a[c]=f?{regex:h,parser:f}:l.replace(/^\[|\]$/g,"")}return function(t){for(var e={},i=0,r=0;i<o;i+=1){var n=a[i];if("string"==typeof n)r+=n.length;else{var s=n.regex,c=n.parser,l=t.slice(r),d=s.exec(l)[0];c.call(e,d),t=t.replace(d,"")}}return function(t){var e=t.afternoon;if(void 0!==e){var i=t.hours;e?i<12&&(t.hours+=12):12===i&&(t.hours=0),delete t.afternoon}}(e),e}})(r)(i),o=a.year,c=a.month,l=a.day,d=a.hours,h=a.minutes,f=a.seconds,y=a.milliseconds,m=a.zone,k=new Date,p=l||(o||c?1:k.getDate()),g=o||k.getFullYear(),v=0;o&&!c||(v=c>0?c-1:k.getMonth());var b=d||0,x=h||0,T=f||0,_=y||0;return m?new Date(Date.UTC(g,v,p,b,x,T,_+60*m.offset*1e3)):n?new Date(Date.UTC(g,v,p,b,x,T,_)):new Date(g,v,p,b,x,T,_)}catch(t){return new Date("")}}(r,l,a),this.init(),f&&!0!==f&&(this.$L=this.locale(f).$L),(d||h)&&r!=this.format(l)&&(this.$d=new Date("")),s={}}else if(l instanceof Array)for(var y=l.length,m=1;m<=y;m+=1){o[1]=l[m-1];var k=n.apply(this,o);if(k.isValid()){this.$d=k.$d,this.$L=k.$L,this.init();break}m===y&&(this.$d=new Date(""))}else c.call(this,i)}}},t.exports=e()},6973:function(t){var e;e=function(){return function(t,e,i){var r=function(t){return t.add(4-t.isoWeekday(),"day")},n=e.prototype;n.isoWeekYear=function(){return r(this).year()},n.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),"day");var e,n,s,a=r(this),o=(e=this.isoWeekYear(),s=4-(n=(this.$u?i.utc:i)().year(e).startOf("year")).isoWeekday(),n.isoWeekday()>4&&(s+=7),n.add(s,"day"));return a.diff(o,"week")+1},n.isoWeekday=function(t){return this.$utils().u(t)?this.day()||7:this.day(this.day()%7?t:t-7)};var s=n.startOf;n.startOf=function(t,e){var i=this.$utils(),r=!!i.u(e)||e;return"isoweek"===i.p(t)?r?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):s.bind(this)(t,e)}}},t.exports=e()},81379:(t,e,i)=>{"use strict";let r,n,s,a;i.d(e,{diagram:()=>Q});var o=i(31546),c=i(95285),l=i(6973),d=i(88809),u=i(57795),h=i(17367),f=i(93126);i(31234);var y=function(){var t=function(t,e,i,r){for(i=i||{},r=t.length;r--;i[t[r]]=e);return i},e=[1,3],i=[1,5],r=[7,9,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,31,33,34,36,43,48],n=[1,32],s=[1,33],a=[1,34],o=[1,35],c=[1,36],l=[1,37],d=[1,38],u=[1,15],h=[1,16],f=[1,17],y=[1,18],m=[1,19],k=[1,20],p=[1,21],g=[1,22],v=[1,24],b=[1,25],x=[1,26],T=[1,27],_=[1,28],w=[1,30],$=[1,39],D=[1,42],C=[5,7,9,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,31,33,34,36,43,48],S={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,gantt:5,document:6,EOF:7,line:8,SPACE:9,statement:10,NL:11,weekday:12,weekday_monday:13,weekday_tuesday:14,weekday_wednesday:15,weekday_thursday:16,weekday_friday:17,weekday_saturday:18,weekday_sunday:19,dateFormat:20,inclusiveEndDates:21,topAxis:22,axisFormat:23,tickInterval:24,excludes:25,includes:26,todayMarker:27,title:28,acc_title:29,acc_title_value:30,acc_descr:31,acc_descr_value:32,acc_descr_multiline_value:33,section:34,clickStatement:35,taskTxt:36,taskData:37,openDirective:38,typeDirective:39,closeDirective:40,":":41,argDirective:42,click:43,callbackname:44,callbackargs:45,href:46,clickStatementDebug:47,open_directive:48,type_directive:49,arg_directive:50,close_directive:51,$accept:0,$end:1},terminals_:{2:"error",5:"gantt",7:"EOF",9:"SPACE",11:"NL",13:"weekday_monday",14:"weekday_tuesday",15:"weekday_wednesday",16:"weekday_thursday",17:"weekday_friday",18:"weekday_saturday",19:"weekday_sunday",20:"dateFormat",21:"inclusiveEndDates",22:"topAxis",23:"axisFormat",24:"tickInterval",25:"excludes",26:"includes",27:"todayMarker",28:"title",29:"acc_title",30:"acc_title_value",31:"acc_descr",32:"acc_descr_value",33:"acc_descr_multiline_value",34:"section",36:"taskTxt",37:"taskData",41:":",43:"click",44:"callbackname",45:"callbackargs",46:"href",48:"open_directive",49:"type_directive",50:"arg_directive",51:"close_directive"},productions_:[0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[35,2],[35,3],[35,3],[35,4],[35,3],[35,4],[35,2],[47,2],[47,3],[47,3],[47,4],[47,3],[47,4],[47,2],[38,1],[39,1],[42,1],[40,1]],performAction:function(t,e,i,r,n,s,a){var o=s.length-1;switch(n){case 2:return s[o-1];case 3:case 7:case 8:this.$=[];break;case 4:s[o-1].push(s[o]),this.$=s[o-1];break;case 5:case 6:this.$=s[o];break;case 9:r.setWeekday("monday");break;case 10:r.setWeekday("tuesday");break;case 11:r.setWeekday("wednesday");break;case 12:r.setWeekday("thursday");break;case 13:r.setWeekday("friday");break;case 14:r.setWeekday("saturday");break;case 15:r.setWeekday("sunday");break;case 16:r.setDateFormat(s[o].substr(11)),this.$=s[o].substr(11);break;case 17:r.enableInclusiveEndDates(),this.$=s[o].substr(18);break;case 18:r.TopAxis(),this.$=s[o].substr(8);break;case 19:r.setAxisFormat(s[o].substr(11)),this.$=s[o].substr(11);break;case 20:r.setTickInterval(s[o].substr(13)),this.$=s[o].substr(13);break;case 21:r.setExcludes(s[o].substr(9)),this.$=s[o].substr(9);break;case 22:r.setIncludes(s[o].substr(9)),this.$=s[o].substr(9);break;case 23:r.setTodayMarker(s[o].substr(12)),this.$=s[o].substr(12);break;case 25:r.setDiagramTitle(s[o].substr(6)),this.$=s[o].substr(6);break;case 26:this.$=s[o].trim(),r.setAccTitle(this.$);break;case 27:case 28:this.$=s[o].trim(),r.setAccDescription(this.$);break;case 29:r.addSection(s[o].substr(8)),this.$=s[o].substr(8);break;case 31:r.addTask(s[o-1],s[o]),this.$="task";break;case 35:this.$=s[o-1],r.setClickEvent(s[o-1],s[o],null);break;case 36:this.$=s[o-2],r.setClickEvent(s[o-2],s[o-1],s[o]);break;case 37:this.$=s[o-2],r.setClickEvent(s[o-2],s[o-1],null),r.setLink(s[o-2],s[o]);break;case 38:this.$=s[o-3],r.setClickEvent(s[o-3],s[o-2],s[o-1]),r.setLink(s[o-3],s[o]);break;case 39:this.$=s[o-2],r.setClickEvent(s[o-2],s[o],null),r.setLink(s[o-2],s[o-1]);break;case 40:this.$=s[o-3],r.setClickEvent(s[o-3],s[o-1],s[o]),r.setLink(s[o-3],s[o-2]);break;case 41:this.$=s[o-1],r.setLink(s[o-1],s[o]);break;case 42:case 48:this.$=s[o-1]+" "+s[o];break;case 43:case 44:case 46:this.$=s[o-2]+" "+s[o-1]+" "+s[o];break;case 45:case 47:this.$=s[o-3]+" "+s[o-2]+" "+s[o-1]+" "+s[o];break;case 49:r.parseDirective("%%{","open_directive");break;case 50:r.parseDirective(s[o],"type_directive");break;case 51:s[o]=s[o].trim().replace(/'/g,'"'),r.parseDirective(s[o],"arg_directive");break;case 52:r.parseDirective("}%%","close_directive","gantt")}},table:[{3:1,4:2,5:e,38:4,48:i},{1:[3]},{3:6,4:2,5:e,38:4,48:i},t(r,[2,3],{6:7}),{39:8,49:[1,9]},{49:[2,49]},{1:[2,1]},{4:31,7:[1,10],8:11,9:[1,12],10:13,11:[1,14],12:23,13:n,14:s,15:a,16:o,17:c,18:l,19:d,20:u,21:h,22:f,23:y,24:m,25:k,26:p,27:g,28:v,29:b,31:x,33:T,34:_,35:29,36:w,38:4,43:$,48:i},{40:40,41:[1,41],51:D},t([41,51],[2,50]),t(r,[2,8],{1:[2,2]}),t(r,[2,4]),{4:31,10:43,12:23,13:n,14:s,15:a,16:o,17:c,18:l,19:d,20:u,21:h,22:f,23:y,24:m,25:k,26:p,27:g,28:v,29:b,31:x,33:T,34:_,35:29,36:w,38:4,43:$,48:i},t(r,[2,6]),t(r,[2,7]),t(r,[2,16]),t(r,[2,17]),t(r,[2,18]),t(r,[2,19]),t(r,[2,20]),t(r,[2,21]),t(r,[2,22]),t(r,[2,23]),t(r,[2,24]),t(r,[2,25]),{30:[1,44]},{32:[1,45]},t(r,[2,28]),t(r,[2,29]),t(r,[2,30]),{37:[1,46]},t(r,[2,32]),t(r,[2,9]),t(r,[2,10]),t(r,[2,11]),t(r,[2,12]),t(r,[2,13]),t(r,[2,14]),t(r,[2,15]),{44:[1,47],46:[1,48]},{11:[1,49]},{42:50,50:[1,51]},{11:[2,52]},t(r,[2,5]),t(r,[2,26]),t(r,[2,27]),t(r,[2,31]),t(r,[2,35],{45:[1,52],46:[1,53]}),t(r,[2,41],{44:[1,54]}),t(C,[2,33]),{40:55,51:D},{51:[2,51]},t(r,[2,36],{46:[1,56]}),t(r,[2,37]),t(r,[2,39],{45:[1,57]}),{11:[1,58]},t(r,[2,38]),t(r,[2,40]),t(C,[2,34])],defaultActions:{5:[2,49],6:[2,1],42:[2,52],51:[2,51]},parseError:function(t,e){if(e.recoverable)this.trace(t);else{var i=Error(t);throw i.hash=e,i}},parse:function(t){var e=this,i=[0],r=[],n=[null],s=[],a=this.table,o="",c=0,l=0,d=s.slice.call(arguments,1),u=Object.create(this.lexer),h={yy:{}};for(var f in this.yy)Object.prototype.hasOwnProperty.call(this.yy,f)&&(h.yy[f]=this.yy[f]);u.setInput(t,h.yy),h.yy.lexer=u,h.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var y=u.yylloc;s.push(y);var m=u.options&&u.options.ranges;"function"==typeof h.yy.parseError?this.parseError=h.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var k,p,g,v,b,x,T,_,w={};;){if(p=i[i.length-1],this.defaultActions[p]?g=this.defaultActions[p]:(null==k&&(k=function(){var t;return"number"!=typeof(t=r.pop()||u.lex()||1)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}()),g=a[p]&&a[p][k]),void 0===g||!g.length||!g[0]){var $="";for(b in _=[],a[p])this.terminals_[b]&&b>2&&_.push("'"+this.terminals_[b]+"'");$=u.showPosition?"Parse error on line "+(c+1)+":\n"+u.showPosition()+"\nExpecting "+_.join(", ")+", got '"+(this.terminals_[k]||k)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==k?"end of input":"'"+(this.terminals_[k]||k)+"'"),this.parseError($,{text:u.match,token:this.terminals_[k]||k,line:u.yylineno,loc:y,expected:_})}if(g[0]instanceof Array&&g.length>1)throw Error("Parse Error: multiple actions possible at state: "+p+", token: "+k);switch(g[0]){case 1:i.push(k),n.push(u.yytext),s.push(u.yylloc),i.push(g[1]),k=null,l=u.yyleng,o=u.yytext,c=u.yylineno,y=u.yylloc;break;case 2:if(x=this.productions_[g[1]][1],w.$=n[n.length-x],w._$={first_line:s[s.length-(x||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(x||1)].first_column,last_column:s[s.length-1].last_column},m&&(w._$.range=[s[s.length-(x||1)].range[0],s[s.length-1].range[1]]),void 0!==(v=this.performAction.apply(w,[o,l,c,h.yy,g[1],n,s].concat(d))))return v;x&&(i=i.slice(0,-1*x*2),n=n.slice(0,-1*x),s=s.slice(0,-1*x)),i.push(this.productions_[g[1]][0]),n.push(w.$),s.push(w._$),T=a[i[i.length-2]][i[i.length-1]],i.push(T);break;case 3:return!0}}return!0}};function E(){this.yy={}}return S.lexer={EOF:1,parseError:function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===r.length?this.yylloc.first_column:0)+r[r.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var i,r,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var s in n)this[s]=n[s];return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,i,r,n=this._currentRules(),s=0;s<n.length;s++)if((i=this._input.match(this.rules[n[s]]))&&(!e||i[0].length>e[0].length)){if(e=i,r=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,n[s])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,i,r){switch(i){case 0:return this.begin("open_directive"),48;case 1:return this.begin("type_directive"),49;case 2:return this.popState(),this.begin("arg_directive"),41;case 3:return this.popState(),this.popState(),51;case 4:return 50;case 5:return this.begin("acc_title"),29;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),31;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:case 20:case 23:case 26:case 29:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:case 13:case 14:case 16:case 17:case 18:break;case 15:return 11;case 19:this.begin("href");break;case 21:return 46;case 22:this.begin("callbackname");break;case 24:this.popState(),this.begin("callbackargs");break;case 25:return 44;case 27:return 45;case 28:this.begin("click");break;case 30:return 43;case 31:return 5;case 32:return 20;case 33:return 21;case 34:return 22;case 35:return 23;case 36:return 24;case 37:return 26;case 38:return 25;case 39:return 27;case 40:return 13;case 41:return 14;case 42:return 15;case 43:return 16;case 44:return 17;case 45:return 18;case 46:return 19;case 47:return"date";case 48:return 28;case 49:return"accDescription";case 50:return 34;case 51:return 36;case 52:return 37;case 53:return 41;case 54:return 7;case 55:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[26,27],inclusive:!1},callbackname:{rules:[23,24,25],inclusive:!1},href:{rules:[20,21],inclusive:!1},click:{rules:[29,30],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,22,28,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],inclusive:!0}}},E.prototype=S,S.Parser=E,new E}();y.parser=y,c.extend(l),c.extend(d),c.extend(u);let m="",k="",p="",g=[],v=[],b={},x=[],T=[],_="",w="",$=["active","done","crit","milestone"],D=[],C=!1,S=!1,E="sunday",A=0,M=function(t,e,i,r){return!r.includes(t.format(e.trim()))&&(!!(t.isoWeekday()>=6&&i.includes("weekends")||i.includes(t.format("dddd").toLowerCase()))||i.includes(t.format(e.trim())))},Y=function(t,e,i,r){let n;if(!i.length||t.manualEndTime)return;let[s,a]=L((t.startTime instanceof Date?c(t.startTime):c(t.startTime,e,!0)).add(1,"d"),t.endTime instanceof Date?c(t.endTime):c(t.endTime,e,!0),e,i,r);t.endTime=s.toDate(),t.renderEndTime=a},L=function(t,e,i,r,n){let s=!1,a=null;for(;t<=e;)s||(a=e.toDate()),(s=M(t,i,r,n))&&(e=e.add(1,"d")),t=t.add(1,"d");return[e,a]},I=function(t,e,i){i=i.trim();let r=/^after\s+([\d\w- ]+)/.exec(i.trim());if(null!==r){let t=null;if(r[1].split(" ").forEach(function(e){let i=G(e);void 0!==i&&(t?i.endTime>t.endTime&&(t=i):t=i)}),t)return t.endTime;{let t=new Date;return t.setHours(0,0,0,0),t}}let n=c(i,e.trim(),!0);if(n.isValid())return n.toDate();{h.l.debug("Invalid date:"+i),h.l.debug("With date format:"+e.trim());let t=new Date(i);if(void 0===t||isNaN(t.getTime())||-1e4>t.getFullYear()||t.getFullYear()>1e4)throw Error("Invalid date:"+i);return t}},O=function(t){let e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return null!==e?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},F=function(t,e,i,r=!1){let n=c(i=i.trim(),e.trim(),!0);if(n.isValid())return r&&(n=n.add(1,"d")),n.toDate();let s=c(t),[a,o]=O(i);if(!Number.isNaN(a)){let t=s.add(a,o);t.isValid()&&(s=t)}return s.toDate()},W=0,z=function(t){return void 0===t?"task"+(W+=1):t},P=function(t,e){let i=(":"===e.substr(0,1)?e.substr(1,e.length):e).split(","),r={};X(i,r,$);for(let t=0;t<i.length;t++)i[t]=i[t].trim();let n="";switch(i.length){case 1:r.id=z(),r.startTime=t.endTime,n=i[0];break;case 2:r.id=z(),r.startTime=I(void 0,m,i[0]),n=i[1];break;case 3:r.id=z(i[0]),r.startTime=I(void 0,m,i[1]),n=i[2]}return n&&(r.endTime=F(r.startTime,m,n,C),r.manualEndTime=c(n,"YYYY-MM-DD",!0).isValid(),Y(r,m,v,g)),r},B=function(t,e){let i=(":"===e.substr(0,1)?e.substr(1,e.length):e).split(","),r={};X(i,r,$);for(let t=0;t<i.length;t++)i[t]=i[t].trim();switch(i.length){case 1:r.id=z(),r.startTime={type:"prevTaskEnd",id:t},r.endTime={data:i[0]};break;case 2:r.id=z(),r.startTime={type:"getStartDate",startData:i[0]},r.endTime={data:i[1]};break;case 3:r.id=z(i[0]),r.startTime={type:"getStartDate",startData:i[1]},r.endTime={data:i[2]}}return r},N=[],H={},G=function(t){return N[H[t]]},j=function(){let t=!0;for(let[e,i]of N.entries())!function(t){let e=N[t],i="";switch(N[t].raw.startTime.type){case"prevTaskEnd":{let t=G(e.prevTaskId);e.startTime=t.endTime;break}case"getStartDate":(i=I(void 0,m,N[t].raw.startTime.startData))&&(N[t].startTime=i)}N[t].startTime&&(N[t].endTime=F(N[t].startTime,m,N[t].raw.endTime.data,C),N[t].endTime&&(N[t].processed=!0,N[t].manualEndTime=c(N[t].raw.endTime.data,"YYYY-MM-DD",!0).isValid(),Y(N[t],m,v,g))),N[t].processed}(e),t=t&&i.processed;return t},U=function(t,e){t.split(",").forEach(function(t){let i=G(t);void 0!==i&&i.classes.push(e)})},R=function(t,e,i){if("loose"!==(0,h.c)().securityLevel||void 0===e)return;let r=[];if("string"==typeof i){r=i.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t<r.length;t++){let e=r[t].trim();'"'===e.charAt(0)&&'"'===e.charAt(e.length-1)&&(e=e.substr(1,e.length-2)),r[t]=e}}0===r.length&&r.push(t),void 0!==G(t)&&V(t,()=>{h.u.runFunc(e,...r)})},V=function(t,e){D.push(function(){let i=document.querySelector(`[id="${t}"]`);null!==i&&i.addEventListener("click",function(){e()})},function(){let i=document.querySelector(`[id="${t}-text"]`);null!==i&&i.addEventListener("click",function(){e()})})},Z={parseDirective:function(t,e,i){h.m.parseDirective(this,t,e,i)},getConfig:()=>(0,h.c)().gantt,clear:function(){x=[],T=[],_="",D=[],W=0,r=void 0,n=void 0,N=[],m="",k="",w="",a=void 0,p="",g=[],v=[],C=!1,S=!1,A=0,b={},(0,h.v)(),E="sunday"},setDateFormat:function(t){m=t},getDateFormat:function(){return m},enableInclusiveEndDates:function(){C=!0},endDatesAreInclusive:function(){return C},enableTopAxis:function(){S=!0},topAxisEnabled:function(){return S},setAxisFormat:function(t){k=t},getAxisFormat:function(){return k},setTickInterval:function(t){a=t},getTickInterval:function(){return a},setTodayMarker:function(t){p=t},getTodayMarker:function(){return p},setAccTitle:h.s,getAccTitle:h.g,setDiagramTitle:h.r,getDiagramTitle:h.t,setDisplayMode:function(t){w=t},getDisplayMode:function(){return w},setAccDescription:h.b,getAccDescription:h.a,addSection:function(t){_=t,x.push(t)},getSections:function(){return x},getTasks:function(){let t=j(),e=0;for(;!t&&e<10;)t=j(),e++;return T=N},addTask:function(t,e){let i={section:_,type:_,processed:!1,manualEndTime:!1,renderEndTime:null,raw:{data:e},task:t,classes:[]},r=B(n,e);i.raw.startTime=r.startTime,i.raw.endTime=r.endTime,i.id=r.id,i.prevTaskId=n,i.active=r.active,i.done=r.done,i.crit=r.crit,i.milestone=r.milestone,i.order=A,A++;let s=N.push(i);n=i.id,H[i.id]=s-1},findTaskById:G,addTaskOrg:function(t,e){let i={section:_,type:_,description:t,task:t,classes:[]},n=P(r,e);i.startTime=n.startTime,i.endTime=n.endTime,i.id=n.id,i.active=n.active,i.done=n.done,i.crit=n.crit,i.milestone=n.milestone,r=i,T.push(i)},setIncludes:function(t){g=t.toLowerCase().split(/[\s,]+/)},getIncludes:function(){return g},setExcludes:function(t){v=t.toLowerCase().split(/[\s,]+/)},getExcludes:function(){return v},setClickEvent:function(t,e,i){t.split(",").forEach(function(t){R(t,e,i)}),U(t,"clickable")},setLink:function(t,e){let i=e;"loose"!==(0,h.c)().securityLevel&&(i=(0,o.Jf)(e)),t.split(",").forEach(function(t){void 0!==G(t)&&(V(t,()=>{window.open(i,"_self")}),b[t]=i)}),U(t,"clickable")},getLinks:function(){return b},bindFunctions:function(t){D.forEach(function(e){e(t)})},parseDuration:O,isInvalidDate:M,setWeekday:function(t){E=t},getWeekday:function(){return E}};function X(t,e,i){let r=!0;for(;r;)r=!1,i.forEach(function(i){let n=RegExp("^\\s*"+i+"\\s*$");t[0].match(n)&&(e[i]=!0,t.shift(1),r=!0)})}let q={monday:f.ABi,tuesday:f.PGu,wednesday:f.GuW,thursday:f.Mol,friday:f.TUC,saturday:f.rGn,sunday:f.YPH},K=(t,e)=>{let i=[...t].map(()=>-1/0),r=[...t].sort((t,e)=>t.startTime-e.startTime||t.order-e.order),n=0;for(let t of r)for(let r=0;r<i.length;r++)if(t.startTime>=i[r]){i[r]=t.endTime,t.order=r+e,r>n&&(n=r);break}return n},Q={parser:y,db:Z,renderer:{setConf:function(){h.l.debug("Something is calling, setConf, remove the call")},draw:function(t,e,i,r){let n;let a=(0,h.c)().gantt,o=(0,h.c)().securityLevel;"sandbox"===o&&(n=(0,f.Ltv)("#i"+e));let l="sandbox"===o?(0,f.Ltv)(n.nodes()[0].contentDocument.body):(0,f.Ltv)("body"),d="sandbox"===o?n.nodes()[0].contentDocument:document,u=d.getElementById(e);void 0===(s=u.parentElement.offsetWidth)&&(s=1200),void 0!==a.useWidth&&(s=a.useWidth);let y=r.db.getTasks(),m=[];for(let t of y)m.push(t.type);m=function(t){let e={},i=[];for(let r=0,n=t.length;r<n;++r)Object.prototype.hasOwnProperty.call(e,t[r])||(e[t[r]]=!0,i.push(t[r]));return i}(m);let k={},p=2*a.topPadding;if("compact"===r.db.getDisplayMode()||"compact"===a.displayMode){let t={};for(let e of y)void 0===t[e.section]?t[e.section]=[e]:t[e.section].push(e);let e=0;for(let i of Object.keys(t)){let r=K(t[i],e)+1;e+=r,p+=r*(a.barHeight+a.barGap),k[i]=r}}else for(let t of(p+=y.length*(a.barHeight+a.barGap),m))k[t]=y.filter(e=>e.type===t).length;u.setAttribute("viewBox","0 0 "+s+" "+p);let g=l.select(`[id="${e}"]`),v=(0,f.w7C)().domain([(0,f.jkA)(y,function(t){return t.startTime}),(0,f.T9B)(y,function(t){return t.endTime})]).rangeRound([0,s-a.leftPadding-a.rightPadding]);y.sort(function(t,e){let i=t.startTime,r=e.startTime,n=0;return i>r?n=1:i<r&&(n=-1),n}),function(t,i,n){let s=a.barHeight,o=s+a.barGap,l=a.topPadding,u=a.leftPadding;(0,f.m4Y)().domain([0,m.length]).range(["#00B9FA","#F95002"]).interpolate(f.bEH),function(t,e,i,n,s,o,l,d){let u=o.reduce((t,{startTime:e})=>t?Math.min(t,e):e,0),h=o.reduce((t,{endTime:e})=>t?Math.max(t,e):e,0),f=r.db.getDateFormat();if(!u||!h)return;let y=[],m=null,k=c(u);for(;k.valueOf()<=h;)r.db.isInvalidDate(k,f,l,d)?m?m.end=k:m={start:k,end:k}:m&&(y.push(m),m=null),k=k.add(1,"d");g.append("g").selectAll("rect").data(y).enter().append("rect").attr("id",function(t){return"exclude-"+t.start.format("YYYY-MM-DD")}).attr("x",function(t){return v(t.start)+i}).attr("y",a.gridLineStartPadding).attr("width",function(t){return v(t.end.add(1,"day"))-v(t.start)}).attr("height",s-e-a.gridLineStartPadding).attr("transform-origin",function(e,r){return(v(e.start)+i+.5*(v(e.end)-v(e.start))).toString()+"px "+(r*t+.5*s).toString()+"px"}).attr("class","exclude-range")}(o,l,u,0,n,t,r.db.getExcludes(),r.db.getIncludes()),function(t,e,i,n){let s=(0,f.l78)(v).tickSize(-n+e+a.gridLineStartPadding).tickFormat((0,f.DCK)(r.db.getAxisFormat()||a.axisFormat||"%Y-%m-%d")),o=/^([1-9]\d*)(minute|hour|day|week|month)$/.exec(r.db.getTickInterval()||a.tickInterval);if(null!==o){let t=o[1],e=o[2],i=r.db.getWeekday()||a.weekday;switch(e){case"minute":s.ticks(f.wXd.every(t));break;case"hour":s.ticks(f.Agd.every(t));break;case"day":s.ticks(f.UAC.every(t));break;case"week":s.ticks(q[i].every(t));break;case"month":s.ticks(f.Ui6.every(t))}}if(g.append("g").attr("class","grid").attr("transform","translate("+t+", "+(n-50)+")").call(s).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),r.db.topAxisEnabled()||a.topAxis){let i=(0,f.tlR)(v).tickSize(-n+e+a.gridLineStartPadding).tickFormat((0,f.DCK)(r.db.getAxisFormat()||a.axisFormat||"%Y-%m-%d"));if(null!==o){let t=o[1],e=o[2],n=r.db.getWeekday()||a.weekday;switch(e){case"minute":i.ticks(f.wXd.every(t));break;case"hour":i.ticks(f.Agd.every(t));break;case"day":i.ticks(f.UAC.every(t));break;case"week":i.ticks(q[n].every(t));break;case"month":i.ticks(f.Ui6.every(t))}}g.append("g").attr("class","grid").attr("transform","translate("+t+", "+e+")").call(i).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}(u,l,0,n),function(t,i,n,s,o,c,l){let d=[...new Set(t.map(t=>t.order))].map(e=>t.find(t=>t.order===e));g.append("g").selectAll("rect").data(d).enter().append("rect").attr("x",0).attr("y",function(t,e){return t.order*i+n-2}).attr("width",function(){return l-a.rightPadding/2}).attr("height",i).attr("class",function(t){for(let[e,i]of m.entries())if(t.type===i)return"section section"+e%a.numberSectionStyles;return"section section0"});let u=g.append("g").selectAll("rect").data(t).enter(),y=r.db.getLinks();if(u.append("rect").attr("id",function(t){return t.id}).attr("rx",3).attr("ry",3).attr("x",function(t){return t.milestone?v(t.startTime)+s+.5*(v(t.endTime)-v(t.startTime))-.5*o:v(t.startTime)+s}).attr("y",function(t,e){return t.order*i+n}).attr("width",function(t){return t.milestone?o:v(t.renderEndTime||t.endTime)-v(t.startTime)}).attr("height",o).attr("transform-origin",function(t,e){return e=t.order,(v(t.startTime)+s+.5*(v(t.endTime)-v(t.startTime))).toString()+"px "+(e*i+n+.5*o).toString()+"px"}).attr("class",function(t){let e="";t.classes.length>0&&(e=t.classes.join(" "));let i=0;for(let[e,r]of m.entries())t.type===r&&(i=e%a.numberSectionStyles);let r="";return t.active?t.crit?r+=" activeCrit":r=" active":t.done?r=t.crit?" doneCrit":" done":t.crit&&(r+=" crit"),0===r.length&&(r=" task"),t.milestone&&(r=" milestone "+r),"task"+(r+=i+" "+e)}),u.append("text").attr("id",function(t){return t.id+"-text"}).text(function(t){return t.task}).attr("font-size",a.fontSize).attr("x",function(t){let e=v(t.startTime),i=v(t.renderEndTime||t.endTime);t.milestone&&(e+=.5*(v(t.endTime)-v(t.startTime))-.5*o),t.milestone&&(i=e+o);let r=this.getBBox().width;return r>i-e?i+r+1.5*a.leftPadding>l?e+s-5:i+s+5:(i-e)/2+e+s}).attr("y",function(t,e){return t.order*i+a.barHeight/2+(a.fontSize/2-2)+n}).attr("text-height",o).attr("class",function(t){let e=v(t.startTime),i=v(t.endTime);t.milestone&&(i=e+o);let r=this.getBBox().width,n="";t.classes.length>0&&(n=t.classes.join(" "));let s=0;for(let[e,i]of m.entries())t.type===i&&(s=e%a.numberSectionStyles);let c="";return(t.active&&(c=t.crit?"activeCritText"+s:"activeText"+s),t.done?c=t.crit?c+" doneCritText"+s:c+" doneText"+s:t.crit&&(c=c+" critText"+s),t.milestone&&(c+=" milestoneText"),r>i-e)?i+r+1.5*a.leftPadding>l?n+" taskTextOutsideLeft taskTextOutside"+s+" "+c:n+" taskTextOutsideRight taskTextOutside"+s+" "+c+" width-"+r:n+" taskText taskText"+s+" "+c+" width-"+r}),"sandbox"===(0,h.c)().securityLevel){let t=(0,f.Ltv)("#i"+e).nodes()[0].contentDocument;u.filter(function(t){return void 0!==y[t.id]}).each(function(e){var i=t.querySelector("#"+e.id),r=t.querySelector("#"+e.id+"-text");let n=i.parentNode;var s=t.createElement("a");s.setAttribute("xlink:href",y[e.id]),s.setAttribute("target","_top"),n.appendChild(s),s.appendChild(i),s.appendChild(r)})}}(t,o,l,u,s,0,i),function(t,e){let i=0,r=Object.keys(k).map(t=>[t,k[t]]);g.append("g").selectAll("text").data(r).enter().append(function(t){let e=t[0].split(h.e.lineBreakRegex),i=-(e.length-1)/2,r=d.createElementNS("http://www.w3.org/2000/svg","text");for(let[t,n]of(r.setAttribute("dy",i+"em"),e.entries())){let e=d.createElementNS("http://www.w3.org/2000/svg","tspan");e.setAttribute("alignment-baseline","central"),e.setAttribute("x","10"),t>0&&e.setAttribute("dy","1em"),e.textContent=n,r.appendChild(e)}return r}).attr("x",10).attr("y",function(n,s){if(!(s>0))return n[1]*t/2+e;for(let a=0;a<s;a++)return i+=r[s-1][1],n[1]*t/2+i*t+e}).attr("font-size",a.sectionFontSize).attr("class",function(t){for(let[e,i]of m.entries())if(t[0]===i)return"sectionTitle sectionTitle"+e%a.numberSectionStyles;return"sectionTitle"})}(o,l),function(t,e,i,n){let s=r.db.getTodayMarker();if("off"===s)return;let o=g.append("g").attr("class","today"),c=new Date,l=o.append("line");l.attr("x1",v(c)+t).attr("x2",v(c)+t).attr("y1",a.titleTopMargin).attr("y2",n-a.titleTopMargin).attr("class","today"),""!==s&&l.attr("style",s.replace(/,/g,";"))}(u,0,0,n)}(y,s,p),(0,h.i)(g,p,s,a.useMaxWidth),g.append("text").text(r.db.getDiagramTitle()).attr("x",s/2).attr("y",a.titleTopMargin).attr("class","titleText")}},styles:t=>` - .mermaid-main-font { - font-family: "trebuchet ms", verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - } - .exclude-range { - fill: ${t.excludeBkgColor}; - } - - .section { - stroke: none; - opacity: 0.2; - } - - .section0 { - fill: ${t.sectionBkgColor}; - } - - .section2 { - fill: ${t.sectionBkgColor2}; - } - - .section1, - .section3 { - fill: ${t.altSectionBkgColor}; - opacity: 0.2; - } - - .sectionTitle0 { - fill: ${t.titleColor}; - } - - .sectionTitle1 { - fill: ${t.titleColor}; - } - - .sectionTitle2 { - fill: ${t.titleColor}; - } - - .sectionTitle3 { - fill: ${t.titleColor}; - } - - .sectionTitle { - text-anchor: start; - // font-size: ${t.ganttFontSize}; - // text-height: 14px; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - - } - - - /* Grid and axis */ - - .grid .tick { - stroke: ${t.gridColor}; - opacity: 0.8; - shape-rendering: crispEdges; - text { - font-family: ${t.fontFamily}; - fill: ${t.textColor}; - } - } - - .grid path { - stroke-width: 0; - } - - - /* Today line */ - - .today { - fill: none; - stroke: ${t.todayLineColor}; - stroke-width: 2px; - } - - - /* Task styling */ - - /* Default task */ - - .task { - stroke-width: 2; - } - - .taskText { - text-anchor: middle; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - } - - // .taskText:not([font-size]) { - // font-size: ${t.ganttFontSize}; - // } - - .taskTextOutsideRight { - fill: ${t.taskTextDarkColor}; - text-anchor: start; - // font-size: ${t.ganttFontSize}; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - - } - - .taskTextOutsideLeft { - fill: ${t.taskTextDarkColor}; - text-anchor: end; - // font-size: ${t.ganttFontSize}; - } - - /* Special case clickable */ - .task.clickable { - cursor: pointer; - } - .taskText.clickable { - cursor: pointer; - fill: ${t.taskTextClickableColor} !important; - font-weight: bold; - } - - .taskTextOutsideLeft.clickable { - cursor: pointer; - fill: ${t.taskTextClickableColor} !important; - font-weight: bold; - } - - .taskTextOutsideRight.clickable { - cursor: pointer; - fill: ${t.taskTextClickableColor} !important; - font-weight: bold; - } - - /* Specific task settings for the sections*/ - - .taskText0, - .taskText1, - .taskText2, - .taskText3 { - fill: ${t.taskTextColor}; - } - - .task0, - .task1, - .task2, - .task3 { - fill: ${t.taskBkgColor}; - stroke: ${t.taskBorderColor}; - } - - .taskTextOutside0, - .taskTextOutside2 - { - fill: ${t.taskTextOutsideColor}; - } - - .taskTextOutside1, - .taskTextOutside3 { - fill: ${t.taskTextOutsideColor}; - } - - - /* Active task */ - - .active0, - .active1, - .active2, - .active3 { - fill: ${t.activeTaskBkgColor}; - stroke: ${t.activeTaskBorderColor}; - } - - .activeText0, - .activeText1, - .activeText2, - .activeText3 { - fill: ${t.taskTextDarkColor} !important; - } - - - /* Completed task */ - - .done0, - .done1, - .done2, - .done3 { - stroke: ${t.doneTaskBorderColor}; - fill: ${t.doneTaskBkgColor}; - stroke-width: 2; - } - - .doneText0, - .doneText1, - .doneText2, - .doneText3 { - fill: ${t.taskTextDarkColor} !important; - } - - - /* Tasks on the critical line */ - - .crit0, - .crit1, - .crit2, - .crit3 { - stroke: ${t.critBorderColor}; - fill: ${t.critBkgColor}; - stroke-width: 2; - } - - .activeCrit0, - .activeCrit1, - .activeCrit2, - .activeCrit3 { - stroke: ${t.critBorderColor}; - fill: ${t.activeTaskBkgColor}; - stroke-width: 2; - } - - .doneCrit0, - .doneCrit1, - .doneCrit2, - .doneCrit3 { - stroke: ${t.critBorderColor}; - fill: ${t.doneTaskBkgColor}; - stroke-width: 2; - cursor: pointer; - shape-rendering: crispEdges; - } - - .milestone { - transform: rotate(45deg) scale(0.8,0.8); - } - - .milestoneText { - font-style: italic; - } - .doneCritText0, - .doneCritText1, - .doneCritText2, - .doneCritText3 { - fill: ${t.taskTextDarkColor} !important; - } - - .activeCritText0, - .activeCritText1, - .activeCritText2, - .activeCritText3 { - fill: ${t.taskTextDarkColor} !important; - } - - .titleText { - text-anchor: middle; - font-size: 18px; - fill: ${t.textColor} ; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - } -`}}}]); \ No newline at end of file diff --git a/assets/js/81598.e6507e6b.js b/assets/js/81598.e6507e6b.js new file mode 100644 index 0000000000..f4960a387f --- /dev/null +++ b/assets/js/81598.e6507e6b.js @@ -0,0 +1,24 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[81598],{30353:(t,e,a)=>{function l(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}a.d(e,{S:()=>l}),(0,a(72912).K2)(l,"populateCommonDb")},81598:(t,e,a)=>{a.d(e,{diagram:()=>m});var l=a(30353),r=a(67027),o=a(93491),i=a(72912),c=a(5165),n={packet:[]},s=structuredClone(n),d=i.UI.packet,k=(0,i.K2)(()=>{let t=(0,r.$t)({...d,...(0,i.zj)().packet});return t.showBits&&(t.paddingY+=10),t},"getConfig"),p=(0,i.K2)(()=>s.packet,"getPacket"),b={pushWord:(0,i.K2)(t=>{t.length>0&&s.packet.push(t)},"pushWord"),getPacket:p,getConfig:k,clear:(0,i.K2)(()=>{(0,i.IU)(),s=structuredClone(n)},"clear"),setAccTitle:i.SV,getAccTitle:i.iN,setDiagramTitle:i.ke,getDiagramTitle:i.ab,getAccDescription:i.m7,setAccDescription:i.EI},g=(0,i.K2)(t=>{(0,l.S)(t,b);let e=-1,a=[],r=1,{bitsPerRow:o}=b.getConfig();for(let{start:l,end:c,label:n}of t.blocks){if(c&&c<l)throw Error(`Packet block ${l} - ${c} is invalid. End must be greater than start.`);if(l!==e+1)throw Error(`Packet block ${l} - ${c??l} is not contiguous. It should start from ${e+1}.`);for(e=c??l,i.Rm.debug(`Packet block ${l} - ${e} with label ${n}`);a.length<=o+1&&b.getPacket().length<1e4;){let[t,e]=h({start:l,end:c,label:n},r,o);if(a.push(t),t.end+1===r*o&&(b.pushWord(a),a=[],r++),!e)break;({start:l,end:c,label:n}=e)}}b.pushWord(a)},"populate"),h=(0,i.K2)((t,e,a)=>{if(void 0===t.end&&(t.end=t.start),t.start>t.end)throw Error(`Block start ${t.start} is greater than block end ${t.end}.`);return t.end+1<=e*a?[t,void 0]:[{start:t.start,end:e*a-1,label:t.label},{start:e*a,end:t.end,label:t.label}]},"getNextFittingBlock"),f={parse:(0,i.K2)(async t=>{let e=await (0,c.qg)("packet",t);i.Rm.debug(e),g(e)},"parse")},u=(0,i.K2)((t,e,a,l)=>{let r=l.db,c=r.getConfig(),{rowHeight:n,paddingY:s,bitWidth:d,bitsPerRow:k}=c,p=r.getPacket(),b=r.getDiagramTitle(),g=n+s,h=g*(p.length+1)-(b?0:n),f=d*k+2,u=(0,o.D)(e);for(let[t,e]of(u.attr("viewbox",`0 0 ${f} ${h}`),(0,i.a$)(u,h,f,c.useMaxWidth),p.entries()))$(u,e,t,c);u.append("text").text(b).attr("x",f/2).attr("y",h-g/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),$=(0,i.K2)((t,e,a,{rowHeight:l,paddingX:r,paddingY:o,bitWidth:i,bitsPerRow:c,showBits:n})=>{let s=t.append("g"),d=a*(l+o)+o;for(let t of e){let e=t.start%c*i+1,a=(t.end-t.start+1)*i-r;if(s.append("rect").attr("x",e).attr("y",d).attr("width",a).attr("height",l).attr("class","packetBlock"),s.append("text").attr("x",e+a/2).attr("y",d+l/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(t.label),!n)continue;let o=t.end===t.start,k=d-2;s.append("text").attr("x",e+(o?a/2:0)).attr("y",k).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",o?"middle":"start").text(t.start),o||s.append("text").attr("x",e+a).attr("y",k).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(t.end)}},"drawWord"),x={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},m={parser:f,db:b,renderer:{draw:u},styles:(0,i.K2)(({packet:t}={})=>{let e=(0,r.$t)(x,t);return` + .packetByte { + font-size: ${e.byteFontSize}; + } + .packetByte.start { + fill: ${e.startByteColor}; + } + .packetByte.end { + fill: ${e.endByteColor}; + } + .packetLabel { + fill: ${e.labelColor}; + font-size: ${e.labelFontSize}; + } + .packetTitle { + fill: ${e.titleColor}; + font-size: ${e.titleFontSize}; + } + .packetBlock { + stroke: ${e.blockStrokeColor}; + stroke-width: ${e.blockStrokeWidth}; + fill: ${e.blockFillColor}; + } + `},"styles")}}}]); \ No newline at end of file diff --git a/assets/js/82425aa0.1941b1b5.js b/assets/js/82425aa0.1941b1b5.js deleted file mode 100644 index 55ada47584..0000000000 --- a/assets/js/82425aa0.1941b1b5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[25946],{47992:(e,n,s)=>{s.d(n,{A:()=>i});let i=s.p+"assets/images/mdx-checker-output-0f96cc19fd3ed4d55901ca90ad657c14.png"},68111:(e,n,s)=>{s.d(n,{A:()=>i});let i=s.p+"assets/images/mdx2-playground-options-eab88e8328a6902759c4236ffc93d9c6.png"},94282:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>t,metadata:()=>i,toc:()=>c});let i=JSON.parse('{"id":"migration/v3","title":"Upgrading to Docusaurus v3","description":"This documentation will help you upgrade your site from Docusaurus v2 to Docusaurus v3.","source":"@site/docs/migration/v3.mdx","sourceDirName":"migration","slug":"/migration/v3","permalink":"/docs/migration/v3","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/v3.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/migration/v3","sidebar_label":"To Docusaurus v3"},"sidebar":"docs","previous":{"title":"Upgrading Docusaurus","permalink":"/docs/migration"},"next":{"title":"Overview","permalink":"/docs/migration/v2"}}');var r=s(62540),o=s(43023);let t={slug:"/migration/v3",sidebar_label:"To Docusaurus v3"},a="Upgrading to Docusaurus v3",d={},c=[{value:"Upgrading Dependencies",id:"upgrading-dependencies",level:2},{value:"Upgrading MDX",id:"upgrading-mdx",level:2},{value:"Using the MDX playground",id:"using-the-mdx-playground",level:3},{value:"Using the MDX checker CLI",id:"using-the-mdx-checker-cli",level:3},{value:"Common MDX problems",id:"common-mdx-problems",level:3},{value:"Bad usage of <code>{</code>",id:"bad-usage-of-",level:4},{value:"Bad usage of <code><</code>",id:"bad-usage-of--1",level:4},{value:"Bad usage of GFM Autolink",id:"bad-usage-of-gfm-autolink",level:4},{value:"Lower-case MDXComponent mapping",id:"lower-case-mdxcomponent-mapping",level:4},{value:"Unintended extra paragraphs",id:"unintended-extra-paragraphs",level:4},{value:"Unintended usage of directives",id:"unintended-usage-of-directives",level:4},{value:"Unsupported indented code blocks",id:"unsupported-indented-code-blocks",level:4},{value:"Other Markdown incompatibilities",id:"other-markdown-incompatibilities",level:3},{value:"Emphasis starting or ending with a space or a punctuation",id:"emphasis-starting-or-ending-with-a-space-or-a-punctuation",level:4},{value:"MDX plugins",id:"mdx-plugins",level:3},{value:"Formatters",id:"formatters",level:3},{value:"Other Breaking Changes",id:"other-breaking-changes",level:2},{value:"Node.js v18.0",id:"nodejs-v180",level:3},{value:"React v18.0+",id:"react-v180",level:3},{value:"Prism-React-Renderer v2.0+",id:"prism-react-renderer-v20",level:3},{value:"React-Live v4.0+",id:"react-live-v40",level:3},{value:"remark-emoji v4.0+",id:"remark-emoji-v40",level:3},{value:"Mermaid v10.4+",id:"mermaid-v104",level:3},{value:"TypeScript v5.1+",id:"typescript-v51",level:3},{value:"TypeScript base config",id:"typescript-base-config",level:3},{value:"New Config Loader",id:"new-config-loader",level:3},{value:"Admonition Warning",id:"admonition-warning",level:3},{value:"Versioned Sidebars",id:"versioned-sidebars",level:3},{value:"Blog Feed Limit",id:"blog-feed-limit",level:3},{value:"Docs Theme Refactoring",id:"docs-theme-refactoring",level:3},{value:"Optional Changes",id:"optional-changes",level:2},{value:"Automatic JSX runtime",id:"automatic-jsx-runtime",level:3},{value:"ESM and TypeScript Configs",id:"esm-and-typescript-configs",level:3},{value:"Using the <code>.mdx</code> extension",id:"using-the-mdx-extension",level:3},{value:"Upgrading math packages",id:"upgrading-math-packages",level:3},{value:"Turn off MDX v1 compat",id:"turn-off-mdx-v1-compat",level:3},{value:"<code>comments</code> option",id:"comments-option",level:4},{value:"<code>admonitions</code> option",id:"admonitions-option",level:4},{value:"<code>headingIds</code> option",id:"headingids-option",level:4},{value:"Troubleshooting",id:"troubleshooting",level:2}];function l(e){let n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components},{Code:i,Details:t}=n;return i||u("Code",!0),t||u("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"upgrading-to-docusaurus-v3",children:"Upgrading to Docusaurus v3"})}),"\n",(0,r.jsx)(n.p,{children:"This documentation will help you upgrade your site from Docusaurus v2 to Docusaurus v3."}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus v3 is a new ",(0,r.jsx)(n.strong,{children:"major version"}),", including ",(0,r.jsx)(n.strong,{children:"breaking changes"})," requiring you to adjust your site accordingly. We will guide to during this process, and also mention a few optional recommendations."]}),"\n",(0,r.jsx)(n.p,{children:"This is not a full rewrite, and the breaking changes are relatively easy to handle. The simplest sites will eventually upgrade by simply updating their npm dependencies."}),"\n",(0,r.jsxs)(n.p,{children:["The main breaking change is the upgrade from MDX v1 to MDX v3. Read the ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/blog/v2/",children:(0,r.jsx)(n.strong,{children:"MDX v2"})})," and ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/blog/v3/",children:(0,r.jsx)(n.strong,{children:"MDX v3"})})," release notes for details. MDX will now compile your Markdown content ",(0,r.jsx)(n.strong,{children:"more strictly"})," and with ",(0,r.jsx)(n.strong,{children:"subtle differences"}),"."]}),"\n",(0,r.jsxs)(n.admonition,{title:"Before upgrading",type:"tip",children:[(0,r.jsxs)(n.p,{children:["Before upgrading, we recommend ",(0,r.jsx)(n.a,{href:"/blog/preparing-your-site-for-docusaurus-v3",children:(0,r.jsx)(n.strong,{children:"preparing your site for Docusaurus v3"})}),". There are changes that you can already ",(0,r.jsx)(n.strong,{children:"handle incrementally, under Docusaurus v2"}),". Doing so will help reduce the work needed to finally upgrade to Docusaurus v3."]}),(0,r.jsxs)(n.p,{children:["For complex sites, we also recommend to set up ",(0,r.jsx)(n.a,{href:"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing",children:(0,r.jsx)(n.strong,{children:"visual regression tests"})}),", a good way to ensure your site stays visually identical. Docusaurus v3 mainly upgrades dependencies, and is not expected to produce any visual changes."]})]}),"\n",(0,r.jsx)(n.admonition,{type:"note",children:(0,r.jsxs)(n.p,{children:["Check the release notes for ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/releases/tag/v3.0.0",children:(0,r.jsx)(n.strong,{children:"Docusaurus v3.0.0"})}),", and browse the pull-requests for additional useful information and the motivation behind each change mentioned here."]})}),"\n",(0,r.jsx)(n.h2,{id:"upgrading-dependencies",children:"Upgrading Dependencies"}),"\n",(0,r.jsxs)(n.p,{children:["Upgrading to Docusaurus v3 requires upgrading core Docusaurus dependencies (",(0,r.jsx)(n.code,{children:"@docusaurus/name"}),"), but also other related packages."]}),"\n",(0,r.jsx)(n.p,{children:"Docusaurus v3 now uses the following dependencies:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Node.js v18.0+"}),"\n",(0,r.jsx)(n.li,{children:"React v18.0+"}),"\n",(0,r.jsx)(n.li,{children:"MDX v3.0+"}),"\n",(0,r.jsx)(n.li,{children:"TypeScript v5.1+"}),"\n",(0,r.jsx)(n.li,{children:"prism-react-renderer v2.0+"}),"\n",(0,r.jsx)(n.li,{children:"react-live v4.0+"}),"\n",(0,r.jsx)(n.li,{children:"remark-emoji v4.0+"}),"\n",(0,r.jsx)(n.li,{children:"mermaid v10.4+"}),"\n"]}),"\n",(0,r.jsxs)(n.admonition,{title:"Upgrading community plugins",type:"warning",children:[(0,r.jsx)(n.p,{children:"If your site uses third-party community plugins and themes, you might need to upgrade them."}),(0,r.jsx)(n.p,{children:"Make sure those plugins are compatible with Docusaurus v3 before attempting an upgrade."})]}),"\n",(0,r.jsxs)(n.p,{children:["A typical ",(0,r.jsx)(n.code,{children:"package.json"})," dependency upgrade example:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="package.json"',children:' {\n "dependencies": {\n // upgrade to Docusaurus v3\n- "@docusaurus/core": "2.4.3",\n- "@docusaurus/preset-classic": "2.4.3",\n+ "@docusaurus/core": "3.0.0",\n+ "@docusaurus/preset-classic": "3.0.0",\n // upgrade to MDX v3\n- "@mdx-js/react": "^1.6.22",\n+ "@mdx-js/react": "^3.0.0",\n // upgrade to prism-react-renderer v2.0+\n- "prism-react-renderer": "^1.3.5",\n+ "prism-react-renderer": "^2.1.0",\n // upgrade to React v18.0+\n- "react": "^17.0.2",\n- "react-dom": "^17.0.2"\n+ "react": "^18.2.0",\n+ "react-dom": "^18.2.0"\n },\n "devDependencies": {\n // upgrade Docusaurus dev dependencies to v3\n- "@docusaurus/module-type-aliases": "2.4.3",\n- "@docusaurus/types": "2.4.3"\n+ "@docusaurus/module-type-aliases": "3.0.0",\n+ "@docusaurus/types": "3.0.0"\n }\n "engines": {\n // require Node.js 18.0+\n- "node": ">=16.14"\n+ "node": ">=18.0"\n }\n }\n'})}),"\n",(0,r.jsx)(n.p,{children:"For TypeScript users:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="package.json"',children:' {\n "devDependencies": {\n // swap the external TypeScript config package for the new official one\n- "@tsconfig/docusaurus": "^1.0.7",\n+ "@docusaurus/tsconfig": "3.0.0",\n // upgrade React types to v18.0+\n- "@types/react": "^17.0.69",\n+ "@types/react": "^18.2.29",\n // upgrade TypeScript to v5.1+\n- "typescript": "~4.7.4"\n+ "typescript": "~5.2.2"\n }\n }\n'})}),"\n",(0,r.jsx)(n.h2,{id:"upgrading-mdx",children:"Upgrading MDX"}),"\n",(0,r.jsxs)(n.p,{children:["MDX is a major dependency of Docusaurus responsible for compiling your ",(0,r.jsx)(n.code,{children:".md"})," and ",(0,r.jsx)(n.code,{children:".mdx"})," files to React components."]}),"\n",(0,r.jsxs)(n.p,{children:["The transition from MDX v1 to MDX v3 is the ",(0,r.jsx)(n.strong,{children:"main challenge"})," to the adoption of Docusaurus v3. Most breaking changes come from MDX v2, and MDX v3 is a relatively small release."]}),"\n",(0,r.jsxs)(n.p,{children:["Some documents that compiled successfully under Docusaurus v2 might now ",(0,r.jsx)(n.strong,{children:"fail to compile"})," under Docusaurus v3."]}),"\n",(0,r.jsxs)(n.admonition,{title:"Find problematic content ahead of time",type:"tip",children:[(0,r.jsxs)(n.p,{children:["Run ",(0,r.jsx)(n.a,{href:"https://github.com/slorber/docusaurus-mdx-checker",children:(0,r.jsx)(n.code,{children:"npx docusaurus-mdx-checker"})})," on your site to get a list of files that will now fail to compile under Docusaurus v3."]}),(0,r.jsxs)(n.p,{children:["This command is also a good way to estimate the amount of work to be done to make your content compatible. Remember most of this work can be executed ahead of the upgrade by ",(0,r.jsx)(n.a,{href:"/blog/preparing-your-site-for-docusaurus-v3",children:"preparing your content for Docusaurus v3"}),"."]})]}),"\n",(0,r.jsxs)(n.p,{children:["Other documents might also ",(0,r.jsx)(n.strong,{children:"render differently"}),"."]}),"\n",(0,r.jsx)(n.admonition,{title:"Use visual regression tests",type:"tip",children:(0,r.jsxs)(n.p,{children:["For large sites where a manual review of all pages is complicated, we recommend you to setup ",(0,r.jsx)(n.a,{href:"https://docusaurus.io/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing",children:"visual regression tests"}),"."]})}),"\n",(0,r.jsxs)(n.p,{children:["Upgrading MDX comes with all the breaking changes documented on the ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/blog/v2/",children:"MDX v2"})," and ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/blog/v3/",children:"MDX v3"})," release blog posts. Most breaking changes come from MDX v2, and MDX v3 is a relatively small release. The ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/migrating/v2/",children:"MDX v2 migration guide"})," has a section on how to ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/migrating/v2/#update-mdx-files",children:"update MDX files"})," that will be particularly relevant to us. Also make sure to read the ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/docs/troubleshooting-mdx/",children:"Troubleshooting MDX"})," page that can help you interpret common MDX error messages."]}),"\n",(0,r.jsxs)(n.p,{children:["Make sure to also read our updated ",(0,r.jsx)(n.a,{href:"/docs/markdown-features/react",children:(0,r.jsx)(n.strong,{children:"MDX and React"})})," documentation page."]}),"\n",(0,r.jsx)(n.h3,{id:"using-the-mdx-playground",children:"Using the MDX playground"}),"\n",(0,r.jsxs)(n.p,{children:["The MDX playground is your new best friend. It permits to understand how your content is ",(0,r.jsx)(n.strong,{children:"compiled to React components"}),", and troubleshoot compilation or rendering issues in isolation."]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://mdxjs.com/playground/",children:"MDX playground - current version"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://mdx-git-renovate-babel-monorepo-mdx.vercel.app/playground/",children:"MDX playground - v1"})}),"\n"]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Configuring the MDX playground options for Docusaurus"}),(0,r.jsxs)(n.p,{children:["To obtain a compilation behavior similar to what Docusaurus v2 uses, please turn on these options on the ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/playground/",children:"MDX playground"}),":"]}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Use ",(0,r.jsx)(n.code,{children:"MDX"})]}),"\n",(0,r.jsxs)(n.li,{children:["Use ",(0,r.jsx)(n.code,{children:"remark-gfm"})]}),"\n",(0,r.jsxs)(n.li,{children:["Use ",(0,r.jsx)(n.code,{children:"remark-directive"})]}),"\n"]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Screenshot of the MDX playground's options panel, with only the "Use MDX", "Use remark-gfm", and "Use remark-directive" options checked",src:s(68111).A+"",width:"1968",height:"1316"})})]}),"\n",(0,r.jsx)(n.p,{children:"Using the two MDX playgrounds side-by-side, you will soon notice that some content is compiled differently or fails to compile in v2."}),"\n",(0,r.jsx)(n.admonition,{title:"Making your content future-proof",type:"tip",children:(0,r.jsxs)(n.p,{children:["The goal will be to refactor your problematic content so that it ",(0,r.jsx)(n.strong,{children:"works fine with both versions of MDX"}),". This way, when you upgrade to Docusaurus v3, this content will already work out-of-the-box."]})}),"\n",(0,r.jsx)(n.h3,{id:"using-the-mdx-checker-cli",children:"Using the MDX checker CLI"}),"\n",(0,r.jsxs)(n.p,{children:["We provide a ",(0,r.jsx)(n.a,{href:"https://github.com/slorber/docusaurus-mdx-checker",children:"docusaurus-mdx-checker"})," CLI that permits to easily spot problematic content. Run this command on your site to obtain a list of files that will fail to compile under MDX v3."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npx docusaurus-mdx-checker\n"})}),"\n",(0,r.jsx)(n.p,{children:"For each compilation issue, the CLI will log the file path and a line number to look at."}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Screenshot of the terminal showing an example MDX checker CLI output, with a few error messages",src:s(47992).A+"",width:"1161",height:"417"})}),"\n",(0,r.jsx)(n.admonition,{type:"tip",children:(0,r.jsx)(n.p,{children:"Use this CLI to estimate of how much work will be required to make your content compatible with MDX v3."})}),"\n",(0,r.jsxs)(n.admonition,{type:"warning",children:[(0,r.jsxs)(n.p,{children:["This CLI is a best effort, and will ",(0,r.jsx)(n.strong,{children:"only report compilation errors"}),"."]}),(0,r.jsxs)(n.p,{children:["It will not report subtle compilation changes that do not produce errors but can affect how your content is displayed. To catch these problems, we recommend using ",(0,r.jsx)(n.a,{href:"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing",children:"visual regression tests"}),"."]})]}),"\n",(0,r.jsx)(n.h3,{id:"common-mdx-problems",children:"Common MDX problems"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus cannot document exhaustively all the changes coming with MDX. That's the responsibility of the ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/migrating/v2/",children:"MDX v2"})," and ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/migrating/v3/",children:"MDX v3"})," migration guides."]}),"\n",(0,r.jsx)(n.p,{children:"However, by upgrading a few Docusaurus sites, we noticed that most of the issues come down to only a few cases that we have documented for you."}),"\n",(0,r.jsxs)(n.h4,{id:"bad-usage-of-",children:["Bad usage of ",(0,r.jsx)(n.code,{children:"{"})]}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"{"})," character is used for opening ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/docs/what-is-mdx/#expressions",children:"JavaScript expressions"}),". MDX will now fail if what you put inside ",(0,r.jsx)(n.code,{children:"{expression}"})," is not a valid expression."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"The object shape looks like {username: string, age: number}\n"})}),"\n",(0,r.jsx)(n.admonition,{title:"Error message",type:"danger",children:(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsx)(n.p,{children:"Could not parse expression with acorn: Unexpected content after expression"}),"\n"]})}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"tip",children:[(0,r.jsx)(n.p,{children:"Available options to fix this error:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Use inline code: ",(0,r.jsx)(n.code,{children:"{username: string, age: number}"})]}),"\n",(0,r.jsxs)(n.li,{children:["Use the HTML code: ",(0,r.jsx)(n.code,{children:"{"})]}),"\n",(0,r.jsxs)(n.li,{children:["Escape it: ",(0,r.jsx)(n.code,{children:"\\{"})]}),"\n"]})]}),"\n",(0,r.jsxs)(n.h4,{id:"bad-usage-of--1",children:["Bad usage of ",(0,r.jsx)(n.code,{children:"<"})]}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"<"})," character is used for opening ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/docs/what-is-mdx/#jsx",children:"JSX tags"}),". MDX will now fail if it thinks your JSX is invalid."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:'Use Android version <5\n\nYou can use a generic type like Array<T>\n\nFollow the template "Road to <YOUR_MINOR_VERSION>"\n'})}),"\n",(0,r.jsxs)(n.admonition,{title:"Error messages",type:"danger",children:[(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Unexpected character ",(0,r.jsx)(n.code,{children:"5"})," (U+0035) before name, expected a character that can start a name, such as a letter, ",(0,r.jsx)(n.code,{children:"$"}),", or ",(0,r.jsx)(n.code,{children:"_"})]}),"\n"]}),(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Expected a closing tag for ",(0,r.jsx)(n.code,{children:"<T>"})," (1:6-1:9) before the end of ",(0,r.jsx)(n.code,{children:"paragraph"})," end-tag-mismatch mdast-util-mdx-jsx"]}),"\n"]}),(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Expected a closing tag for ",(0,r.jsx)(n.code,{children:"<YOUR_MINOR_VERSION>"})," (134:19-134:39) before the end of ",(0,r.jsx)(n.code,{children:"paragraph"})]}),"\n"]})]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"tip",children:[(0,r.jsx)(n.p,{children:"Available options to fix this error:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Use inline code: ",(0,r.jsx)(n.code,{children:"Array<T>"})]}),"\n",(0,r.jsxs)(n.li,{children:["Use the HTML code: ",(0,r.jsx)(n.code,{children:"<"})," or ",(0,r.jsx)(n.code,{children:"<"})]}),"\n",(0,r.jsxs)(n.li,{children:["Escape it: ",(0,r.jsx)(n.code,{children:"\\<"})]}),"\n"]})]}),"\n",(0,r.jsx)(n.h4,{id:"bad-usage-of-gfm-autolink",children:"Bad usage of GFM Autolink"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus supports ",(0,r.jsx)(n.a,{href:"https://github.github.com/gfm/",children:"GitHub Flavored Markdown (GFM)"}),", but ",(0,r.jsx)(n.a,{href:"https://github.github.com/gfm/#autolinks",children:"autolink"})," using the ",(0,r.jsx)(n.code,{children:"<link>"})," syntax is not supported anymore by MDX."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"<sebastien@thisweekinreact.com>\n\n<http://localhost:3000>\n"})}),"\n",(0,r.jsxs)(n.admonition,{title:"Error messages",type:"danger",children:[(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Unexpected character ",(0,r.jsx)(n.code,{children:"@"})," (U+0040) in name, expected a name character such as letters, digits, ",(0,r.jsx)(n.code,{children:"$"}),", or ",(0,r.jsx)(n.code,{children:"_"}),"; whitespace before attributes; or the end of the tag (note: to create a link in MDX, use ",(0,r.jsx)(n.code,{children:"[text](url)"}),")"]}),"\n"]}),(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Unexpected character ",(0,r.jsx)(n.code,{children:"/"})," (U+002F) before local name, expected a character that can start a name, such as a letter, ",(0,r.jsx)(n.code,{children:"$"}),", or ",(0,r.jsx)(n.code,{children:"_"})," (note: to create a link in MDX, use ",(0,r.jsx)(n.code,{children:"[text](url)"}),")"]}),"\n"]})]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"tip",children:[(0,r.jsxs)(n.p,{children:["Use regular Markdown links, or remove the ",(0,r.jsx)(n.code,{children:"<"})," and ",(0,r.jsx)(n.code,{children:">"}),". MDX and GFM are able to autolink literals already."]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"sebastien@thisweekinreact.com\n[sebastien@thisweekinreact.com](mailto:sebastien@thisweekinreact.com)\n\nhttp://localhost:3000\n[http://localhost:3000](http://localhost:3000)\n"})})]}),"\n",(0,r.jsx)(n.h4,{id:"lower-case-mdxcomponent-mapping",children:"Lower-case MDXComponent mapping"}),"\n",(0,r.jsxs)(n.p,{children:["For users providing a ",(0,r.jsxs)(n.a,{href:"/docs/markdown-features/react#mdx-component-scope",children:["custom ",(0,r.jsx)(n.code,{children:"MDXComponent"}),"mapping"]}),', components are now "sandboxed":']}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["a ",(0,r.jsx)(n.code,{children:"MDXComponent"})," mapping for ",(0,r.jsx)(n.code,{children:"h1"})," only gets used for ",(0,r.jsx)(n.code,{children:"# hi"})," but not for ",(0,r.jsx)(n.code,{children:"<h1>hi</h1>"})]}),"\n",(0,r.jsxs)(n.li,{children:["a ",(0,r.jsx)(n.strong,{children:"lower-cased"})," custom element name will not be substituted by its respective ",(0,r.jsx)(n.code,{children:"MDXComponent"})," component anymore"]}),"\n"]}),"\n",(0,r.jsx)(n.admonition,{title:"visual difference",type:"danger",children:(0,r.jsxs)(n.p,{children:["Your ",(0,r.jsxs)(n.a,{href:"/docs/markdown-features/react#mdx-component-scope",children:[(0,r.jsx)(n.code,{children:"MDXComponent"})," component mapping"]})," might not be applied as before, and your custom components might no longer be used."]})}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"tip",children:[(0,r.jsxs)(n.p,{children:["For native Markdown elements, you can keep using ",(0,r.jsx)(n.strong,{children:"lower-case"}),": ",(0,r.jsx)(n.code,{children:"p"}),", ",(0,r.jsx)(n.code,{children:"h1"}),", ",(0,r.jsx)(n.code,{children:"img"}),", ",(0,r.jsx)(n.code,{children:"a"}),"..."]}),(0,r.jsxs)(n.p,{children:["For any other element, ",(0,r.jsx)(n.strong,{children:"use upper-case names"}),"."]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="src/theme/MDXComponents.js"',children:' import MDXComponents from \'@theme-original/MDXComponents\';\n\n export default {\n ...MDXComponents,\n p: (props) => <p {...props} className="my-paragraph"/>\n- myElement: (props) => <div {...props} className="my-class" />,\n+ MyElement: (props) => <div {...props} className="my-class" />,\n };\n'})})]}),"\n",(0,r.jsx)(n.h4,{id:"unintended-extra-paragraphs",children:"Unintended extra paragraphs"}),"\n",(0,r.jsxs)(n.p,{children:["In MDX v3, it is now possible to interleave JSX and Markdown more easily without requiring extra line breaks. Writing content on multiple lines can also produce new expected ",(0,r.jsx)(n.code,{children:"<p>"})," tags."]}),"\n",(0,r.jsxs)(n.admonition,{title:"visual difference",type:"danger",children:[(0,r.jsx)(n.p,{children:"See how this content is rendered differently by MDX v1 and v3."}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"<div>Some **Markdown** content</div>\n<div>\n Some **Markdown** content\n</div>\n"})}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-html",metastring:'title="MDX v1 output"',children:"<div>Some **Markdown** content</div>\n<div>Some **Markdown** content</div>\n"})}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-html",metastring:'title="MDX v3 output"',children:"<div>Some <strong>Markdown</strong> content</div>\n<div><p>Some <strong>Markdown</strong> content</p></div>\n"})})]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"tip",children:[(0,r.jsxs)(n.p,{children:["If you don't want an extra ",(0,r.jsx)(n.code,{children:"<p>"})," tag, refactor content on a case by case basis to use a single-line JSX tag."]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:' <figure>\n <img src="/img/myImage.png" alt="My alt" />\n- <figcaption>\n- My image caption\n- </figcaption>\n+ <figcaption>My image caption</figcaption>\n </figure>\n'})}),(0,r.jsxs)(n.p,{children:["You can also wrap such content with ",(0,r.jsx)(n.code,{children:"{"})," and ",(0,r.jsx)(n.code,{children:"}"})," to avoid extra ",(0,r.jsx)(n.code,{children:"<p>"})," tags if you don't intend to use Markdown syntax there yet."]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'-<figure>\n+{<figure>\n <img src="/img/myImage.png" alt="My alt" />\n <figcaption>\n My image caption\n </figcaption>\n-</figure>\n+</figure>}\n'})})]}),"\n",(0,r.jsx)(n.h4,{id:"unintended-usage-of-directives",children:"Unintended usage of directives"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus v3 now uses ",(0,r.jsx)(n.a,{href:"https://talk.commonmark.org/t/generic-directives-plugins-syntax/444",children:"Markdown Directives"})," (implemented with ",(0,r.jsx)(n.a,{href:"https://github.com/remarkjs/remark-directive",children:"remark-directive"}),") as a generic way to provide support for admonitions, and other upcoming Docusaurus features."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"This is a :textDirective\n\n::leafDirective\n\n:::containerDirective\n\nContainer directive content\n\n:::\n"})}),"\n",(0,r.jsxs)(n.admonition,{title:"Visual change",type:"danger",children:[(0,r.jsx)(n.p,{children:"Directives are parsed with the purpose of being handled by other Remark plugins. Unhandled directives will be ignored, and won't be rendered back in their original form."}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"The AWS re:Invent conf is great\n"})}),(0,r.jsxs)(n.p,{children:["Due to ",(0,r.jsx)(n.code,{children:":Invent"})," being parsed as a text directive, this will now be rendered as:"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"The AWS re\nconf is great\n"})})]}),"\n",(0,r.jsx)(n.admonition,{title:"How to upgrade",type:"tip",children:(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Use the HTML code: ",(0,r.jsx)(n.code,{children:":"})]}),"\n",(0,r.jsxs)(n.li,{children:["Add a space after ",(0,r.jsx)(n.code,{children:":"})," (if it makes sense): ",(0,r.jsx)(n.code,{children:": text"})]}),"\n",(0,r.jsxs)(n.li,{children:["Escape it: ",(0,r.jsx)(n.code,{children:"\\:"})]}),"\n"]})}),"\n",(0,r.jsx)(n.h4,{id:"unsupported-indented-code-blocks",children:"Unsupported indented code blocks"}),"\n",(0,r.jsx)(n.p,{children:"MDX does not transform indented text as code blocks anymore."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:' console.log("hello");\n'})}),"\n",(0,r.jsx)(n.admonition,{title:"Visual change",type:"danger",children:(0,r.jsx)(n.p,{children:"The upgrade does not generally produce new MDX compilation errors, but can lead to content being rendered in an unexpected way because there isn't a code block anymore."})}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"tip",children:[(0,r.jsx)(n.p,{children:"Use the regular code block syntax instead of indentation:"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"```js\nconsole.log('hello');\n```\n"})})]}),"\n",(0,r.jsx)(n.h3,{id:"other-markdown-incompatibilities",children:"Other Markdown incompatibilities"}),"\n",(0,r.jsx)(n.h4,{id:"emphasis-starting-or-ending-with-a-space-or-a-punctuation",children:"Emphasis starting or ending with a space or a punctuation"}),"\n",(0,r.jsx)(n.p,{children:"New MDX parser now strictly complies with the CommonMark spec. CommonMark spec has introduced rules for emphasis around spaces and punctuation, which are incompatible especially with languages that do not use a space to split words, since v0.14."}),"\n",(0,r.jsx)(n.p,{children:"Japanese and Chinese are most affected by this, but there are some other languages that can be affected (e.g. Thai and Khmer), for example when you try to emphasize an inline code or a link. Languages that use a space to split words are much less affected."}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"**"})," (other than ",(0,r.jsx)(n.code,{children:"`**`"}),") in the following example were parsed as intended in Docusaurus 2, but are not now in Docusaurus 3."]}),"\n","\n","\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"**Do not end a range of emphasis with a space. **Or `**` will not work as intended.\n\n<!-- Japanese -->\n**\u300C\u3002\u300D\u306E\u5F8C\u306B\u6587\u3092\u7D9A\u3051\u308B\u3068`**`\u304C\u610F\u56F3\u3057\u305F\u52D5\u4F5C\u3092\u3057\u307E\u305B\u3093\u3002**\u307E\u305F\u3001**[\u30EA\u30F3\u30AF](https://docusaurus.io/)**\u3084**`\u30B3\u30FC\u30C9`**\u306E\u3059\u3050\u5916\u5074\u306B`**`\u3001\u305D\u306E\u3055\u3089\u306B\u5916\u5074\u306B\u53E5\u8AAD\u70B9\u4EE5\u5916\u304C\u3042\u308B\u5834\u5408\u3082\u540C\u69D8\u3067\u3059\u3002\n"})}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"See the detailed conditions and how to upgrade"}),(0,r.jsxs)(n.p,{children:["If ",(0,r.jsx)(n.code,{children:"*"})," or ",(0,r.jsx)(n.code,{children:"**"})," matches either of the following conditions, it will not work as the beginning of an emphasis mark anymore:"]}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["The next character is a space (e.g. ",(0,r.jsx)(n.code,{children:"word* word"}),")"]}),"\n",(0,r.jsxs)(n.li,{children:["The previous character is a punctuation character and the next character is a letter (not a space or punctuation character) (e.g. ",(0,r.jsx)(n.code,{children:"\u6587**\uFF08\u6587\uFF09"}),")"]}),"\n"]}),(0,r.jsxs)(n.p,{children:["On the contrary, if ",(0,r.jsx)(n.code,{children:"*"})," or ",(0,r.jsx)(n.code,{children:"**"})," matches either of the following conditions, it will not work as the end of an emphasis mark anymore:"]}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["The previous character is a space (e.g. ",(0,r.jsx)(n.code,{children:"word *word"}),")"]}),"\n",(0,r.jsxs)(n.li,{children:["The next character is a punctuation character and the previous character is a letter (e.g. ",(0,r.jsx)(n.code,{children:"\u6587\u3002**\u6587"}),")"]}),"\n"]}),(0,r.jsxs)(n.p,{children:["\u201CA punctuation character\u201D includes non-ASCII ones, brackets, quotation marks and some symbols including ",(0,r.jsx)(n.code,{children:"%"})," and ",(0,r.jsx)(n.code,{children:"@"}),". More strictly speaking, a character whose 2-letters Unicode category starts with ",(0,r.jsx)(n.code,{children:"P"})," is treated as a punctuation character here."]}),(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"tip",children:[(0,r.jsx)(n.p,{children:"If the offending emphasis mark is next to a space, move the space out of the range of emphasis:"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="english.md"',children:"**Do not end a range of emphasis with a space.** Or `**` will not work.\n"})}),(0,r.jsx)(n.p,{children:"If the offending emphasis mark is surrounded by both a punctuation character and a letter, you can fix it without modifying the content by:"}),(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Convert the document to MDX if it is a vanilla Markdown."}),"\n",(0,r.jsxs)(n.li,{children:["replace the offending emphasis mark with a raw HTML tag (",(0,r.jsx)(n.code,{children:"<em>"})," or ",(0,r.jsx)(n.code,{children:"<strong>"}),") instead:"]}),"\n"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-mdx",metastring:'title="japanese.mdx"',children:"<strong>\u300C\u3002\u300D\u306E\u5F8C\u306B\u6587\u3092\u7D9A\u3051\u308B\u3068`**`\u304C\u610F\u56F3\u3057\u305F\u52D5\u4F5C\u3092\u3057\u307E\u305B\u3093\u3002</strong>\u307E\u305F\u3001<strong>[\u30EA\u30F3\u30AF](https://docusaurus.io/)</strong>\u3084<strong>`\u30B3\u30FC\u30C9`</strong>\u306E\u3059\u3050\u5916\u5074\u306B`**`\u3001\u305D\u306E\u3055\u3089\u306B\u5916\u5074\u306B\u53E5\u8AAD\u70B9\u4EE5\u5916\u304C\u3042\u308B\u5834\u5408\u3082\u540C\u69D8\u3067\u3059\u3002\n"})}),(0,r.jsx)(n.p,{children:"While not an ideal solution, you can also either of the following without converting the document to MDX:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Move the most outside punctuation character out of the emphasis mark."}),"\n","\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="japanese.md"',children:"**\u300C\u3002\u300D\u306E\u5F8C\u306B\u6587\u3092\u7D9A\u3051\u308B\u3068`**`\u304C\u610F\u56F3\u3057\u305F\u52D5\u4F5C\u3092\u3057\u307E\u305B\u3093**\u3002\u307E\u305F\u3001[**\u30EA\u30F3\u30AF**](https://docusaurus.io/)\u3084\u30FB\u30FB\u30FB\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Put a space just outside of the offending ",(0,r.jsx)(n.code,{children:"*"})," or ",(0,r.jsx)(n.code,{children:"**"}),". This solution does not force you to convert the document to MDX."]}),"\n","\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="japanese.md"',children:"**\u300C\u3002\u300D\u306E\u5F8C\u306B\u6587\u3092\u7D9A\u3051\u308B\u3068`**`\u304C\u610F\u56F3\u3057\u305F\u52D5\u4F5C\u3092\u3057\u307E\u305B\u3093\u3002** \u307E\u305F\u3001**[\u30EA\u30F3\u30AF](https://docusaurus.io/)** \u3084 **`\u30B3\u30FC\u30C9`** \u306E\u3059\u3050\u5916\u5074\u306B`**`\u3001\u305D\u306E\u3055\u3089\u306B\u5916\u5074\u306B\u53E5\u8AAD\u70B9\u4EE5\u5916\u304C\u3042\u308B\u5834\u5408\u3082\u540C\u69D8\u3067\u3059\u3002\n"})}),"\n"]}),"\n"]})]})]}),"\n",(0,r.jsx)(n.h3,{id:"mdx-plugins",children:"MDX plugins"}),"\n",(0,r.jsxs)(n.p,{children:["All the official packages (Unified, Remark, Rehype...) in the MDX ecosystem are now ",(0,r.jsx)(n.a,{href:"https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c",children:(0,r.jsx)(n.strong,{children:"ES Modules only"})})," and do not support ",(0,r.jsx)(n.a,{href:"https://nodejs.org/api/modules.html#modules-commonjs-modules",children:"CommonJS"})," anymore."]}),"\n",(0,r.jsxs)(n.p,{children:["In practice this means that you can't do ",(0,r.jsx)(n.code,{children:'require("remark-plugin")'})," anymore."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"tip",children:[(0,r.jsxs)(n.p,{children:["Docusaurus v3 now supports ",(0,r.jsx)(n.a,{href:"https://flaviocopes.com/es-modules/",children:(0,r.jsx)(n.strong,{children:"ES Modules"})})," configuration files. We recommend that you migrate your config file to ES module, that enables you to import the Remark plugins easily:"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"import remarkPlugin from 'remark-plugin';\n\nexport default {\n title: 'Docusaurus',\n /* site config using remark plugins here */\n};\n"})}),(0,r.jsxs)(n.p,{children:["If you want to keep using CommonJS modules, you can use dynamic imports as a workaround that enables you to import ES modules inside a CommonJS module. Fortunately, the ",(0,r.jsx)(n.a,{href:"/docs/configuration#syntax-to-declare-docusaurus-config",children:"Docusaurus config supports the usage of an async function"})," to let you do so."]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"module.exports = async function () {\n const myPlugin = (await import('remark-plugin')).default;\n return {\n // site config...\n };\n};\n"})})]}),"\n",(0,r.jsx)(n.admonition,{title:"For plugin authors",type:"info",children:(0,r.jsxs)(n.p,{children:["If you created custom Remark or Rehype plugins, you may need to refactor those, or eventually rewrite them completely, due to how the new AST is structured. We have created a ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9337",children:"dedicated support discussion"})," to help plugin authors upgrade their code."]})}),"\n",(0,r.jsx)(n.h3,{id:"formatters",children:"Formatters"}),"\n",(0,r.jsxs)(n.p,{children:["Prettier, the most common formatter, supports only the legacy MDX v1, not v3 yet as of Docusaurus v3.0.0. You can add ",(0,r.jsx)(n.code,{children:"{/* prettier-ignore */}"})," before the incompatible parts of your code to make it work with Prettier."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-mdx",children:"{/* prettier-ignore */}\n<SomeComponent>Some long text in the component</SomeComponent>\n"})}),"\n",(0,r.jsxs)(n.p,{children:["If you get tired of too many ",(0,r.jsx)(n.code,{children:"{/* prettier-ignore */}"})," insertions, you can consider disabling MDX formatting by Prettier by adding the following to your ",(0,r.jsx)(n.code,{children:".prettierignore"})," file, until it starts supporting MDX v3:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-txt",metastring:'title=".prettierignore"',children:"*.mdx\n"})}),"\n",(0,r.jsx)(n.h2,{id:"other-breaking-changes",children:"Other Breaking Changes"}),"\n",(0,r.jsx)(n.p,{children:"Apart the MDX v3 upgrade, here is an exhaustive list of breaking changes coming with Docusaurus v3."}),"\n",(0,r.jsx)(n.h3,{id:"nodejs-v180",children:"Node.js v18.0"}),"\n",(0,r.jsxs)(n.p,{children:["Node.js 16 ",(0,r.jsx)(n.a,{href:"https://nodejs.org/en/blog/announcements/nodejs16-eol",children:"reached End-of-Life"}),", and Docusaurus v3 now requires ",(0,r.jsx)(n.strong,{children:"Node.js >= 18.0"}),"."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"tip",children:[(0,r.jsx)(n.p,{children:"Install Node.js 18.0+ on your computer."}),(0,r.jsx)(n.p,{children:"Eventually, configure your continuous integration, CDN or host to use this new Node.js version."}),(0,r.jsxs)(n.p,{children:["You can also update your site ",(0,r.jsx)(n.code,{children:"package.json"})," to prevent usage of an older unsupported version:"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="package.json"',children:' {\n "engines": {\n- "node": ">=16.14"\n+ "node": ">=18.0"\n }\n }\n'})}),(0,r.jsx)(n.p,{children:"Upgrade your Docusaurus v2 site to Node.js 18 before upgrading to Docusaurus v3."})]}),"\n",(0,r.jsx)(n.h3,{id:"react-v180",children:"React v18.0+"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus v3 now requires ",(0,r.jsx)(n.strong,{children:"React >= 18.0"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"React 18 comes with its own breaking changes that should be relatively easy to handle, depending on the amount of custom React code you created for your site. The official themes and plugins are compatible with React 18."}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsxs)(n.p,{children:["Read the official ",(0,r.jsx)(n.a,{href:"https://react.dev/blog/2022/03/29/react-v18",children:"React v18.0"})," and ",(0,r.jsx)(n.a,{href:"https://react.dev/blog/2022/03/08/react-18-upgrade-guide",children:"How to Upgrade to React 18"}),", and look at your own React code to figure out which components might be affected this upgrade."]}),(0,r.jsx)(n.p,{children:"We recommend to particularly look for:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Automatic batching for stateful components"}),"\n",(0,r.jsx)(n.li,{children:"New React hydration errors reported to the console"}),"\n"]})]}),"\n",(0,r.jsxs)(n.admonition,{title:"Experimental support for React 18 features",type:"danger",children:[(0,r.jsx)(n.p,{children:"React 18 comes with new features:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"<Suspense>"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"React.lazy()"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"startTransition"})}),"\n"]}),(0,r.jsx)(n.p,{children:"Their Docusaurus support is considered as experimental. We might have to adjust the integration in the future, leading to a different runtime behavior."})]}),"\n",(0,r.jsx)(n.h3,{id:"prism-react-renderer-v20",children:"Prism-React-Renderer v2.0+"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus v3 upgrades ",(0,r.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer",children:(0,r.jsx)(n.code,{children:"prism-react-renderer"})})," to v2.0+. This library is used for code block syntax highlighting."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsxs)(n.p,{children:["This is a new major library version containing breaking changes, and we can't guarantee a strict retro-compatibility. The ",(0,r.jsxs)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer/releases/tag/prism-react-renderer%402.0.0",children:[(0,r.jsx)(n.code,{children:"prism-react-renderer"})," v2 release notes"]})," are not super exhaustive, but there are 3 major changes to be aware of for Docusaurus users."]}),(0,r.jsx)(n.p,{children:"The dependency should be upgraded:"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="package.json"',children:' {\n "dependencies": {\n- "prism-react-renderer": "^1.3.5",\n+ "prism-react-renderer": "^2.1.0",\n }\n'})}),(0,r.jsx)(n.p,{children:"The API to import themes in your Docusaurus config file has been updated:"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="docusaurus.config.js"',children:"- const lightTheme = require('prism-react-renderer/themes/github');\n- const darkTheme = require('prism-react-renderer/themes/dracula');\n+ const {themes} = require('prism-react-renderer');\n+ const lightTheme = themes.github;\n+ const darkTheme = themes.dracula;\n"})}),(0,r.jsxs)(n.p,{children:["Previously, ",(0,r.jsx)(n.code,{children:"react-prism-render"})," v1 ",(0,r.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer/blob/v1.3.5/src/vendor/prism/includeLangs.js",children:"included more languages by default"}),". From v2.0+, ",(0,r.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer/blob/prism-react-renderer%402.1.0/packages/generate-prism-languages/index.ts#L9",children:"less languages are included by default"}),". You may need to add extra languages to your Docusaurus config:"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"const siteConfig = {\n themeConfig: {\n prism: {\n // highlight-next-line\n additionalLanguages: ['bash', 'diff', 'json'],\n },\n },\n};\n"})})]}),"\n",(0,r.jsx)(n.h3,{id:"react-live-v40",children:"React-Live v4.0+"}),"\n",(0,r.jsxs)(n.p,{children:["For users of the ",(0,r.jsx)(n.code,{children:"@docusaurus/theme-live-codeblock"})," package, Docusaurus v3 upgrades ",(0,r.jsx)(n.a,{href:"https://github.com/FormidableLabs/react-live",children:(0,r.jsx)(n.code,{children:"react-live"})})," to v4.0+."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsx)(n.p,{children:"In theory, you have nothing to do, and your existing interactive code blocks should keep working as before."}),(0,r.jsxs)(n.p,{children:["However, this is a new major library version containing breaking changes, and we can't guarantee a strict retro-compatibility. Read the ",(0,r.jsx)(n.a,{href:"https://github.com/FormidableLabs/react-live/releases/tag/v3.0.0",children:"v3"})," and ",(0,r.jsx)(n.a,{href:"https://github.com/FormidableLabs/react-live/releases/tag/v4.0.0",children:"v4"})," changelogs in case of problems."]})]}),"\n",(0,r.jsx)(n.h3,{id:"remark-emoji-v40",children:"remark-emoji v4.0+"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus v3 upgrades ",(0,r.jsx)(n.a,{href:"https://github.com/rhysd/remark-emoji",children:(0,r.jsx)(n.code,{children:"remark-emoji"})})," to v4.0+. This library is to support ",(0,r.jsx)(n.code,{children:":emoji:"})," shortcuts in Markdown."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsxs)(n.p,{children:["Most Docusaurus users have nothing to do. Users of emoji shortcodes should read the ",(0,r.jsx)(n.a,{href:"https://github.com/rhysd/remark-emoji/blob/master/CHANGELOG.md",children:"changelog"})," and double-check their emojis keep rendering as expected."]}),(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Breaking Change"})," Update ",(0,r.jsx)(n.a,{href:"https://www.npmjs.com/package/node-emoji",children:"node-emoji"})," from v1 to v2. This change introduces support for many new emojis and removes old emoji short codes which are no longer valid on GitHub."]}),"\n"]})]}),"\n",(0,r.jsx)(n.h3,{id:"mermaid-v104",children:"Mermaid v10.4+"}),"\n",(0,r.jsxs)(n.p,{children:["For users of the ",(0,r.jsx)(n.code,{children:"@docusaurus/theme-mermaid"})," package, Docusaurus v3 upgrades ",(0,r.jsx)(n.a,{href:"https://github.com/mermaid-js/mermaid",children:(0,r.jsx)(n.code,{children:"mermaid"})})," to v10.4+."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsx)(n.p,{children:"In theory, you have nothing to do, and your existing diagrams should keep working as before."}),(0,r.jsxs)(n.p,{children:["However, this is a new major library version containing breaking changes, and we can't guarantee a strict retro-compatibility. Read the ",(0,r.jsx)(n.a,{href:"https://github.com/mermaid-js/mermaid/releases/tag/v10.0.0",children:"v10"})," changelog in case of problem."]})]}),"\n",(0,r.jsx)(n.h3,{id:"typescript-v51",children:"TypeScript v5.1+"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus v3 now requires ",(0,r.jsx)(n.strong,{children:"TypeScript >= 5.1"}),"."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsx)(n.p,{children:"Upgrade your dependencies to use TypeScript 5+"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="package.json"',children:' {\n "devDependencies": {\n- "typescript": "~4.7.4"\n+ "typescript": "~5.2.2"\n }\n }\n'})})]}),"\n",(0,r.jsx)(n.h3,{id:"typescript-base-config",children:"TypeScript base config"}),"\n",(0,r.jsxs)(n.p,{children:["The official Docusaurus TypeScript config has been re-internalized from the external package ",(0,r.jsx)(n.a,{href:"https://www.npmjs.com/package/@tsconfig/docusaurus",children:(0,r.jsx)(n.code,{children:"@tsconfig/docusaurus"})})," to our new monorepo package ",(0,r.jsx)(n.a,{href:"https://www.npmjs.com/package/@docusaurus/tsconfig",children:(0,r.jsx)(n.code,{children:"@docusaurus/tsconfig"})}),"."]}),"\n",(0,r.jsx)(n.p,{children:"This new package is versioned alongside all the other Docusaurus core packages, and will be used to ensure TypeScript retro-compatibility and breaking changes on major version upgrades."}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsx)(n.p,{children:"Swap the external TypeScript config package for the new official one"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="package.json"',children:' {\n "devDependencies": {\n- "@tsconfig/docusaurus": "^1.0.7",\n+ "@docusaurus/tsconfig": "3.0.0",\n }\n }\n'})}),(0,r.jsxs)(n.p,{children:["Use it in your ",(0,r.jsx)(n.code,{children:"tsconfig.json"})," file:"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="tsconfig.json"',children:' {\n- "extends": "@tsconfig/docusaurus/tsconfig.json",\n+ "extends": "@docusaurus/tsconfig",\n "compilerOptions": {\n "baseUrl": "."\n }\n }\n'})})]}),"\n",(0,r.jsx)(n.h3,{id:"new-config-loader",children:"New Config Loader"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus v3 changes its internal config loading library from ",(0,r.jsx)(n.a,{href:"https://github.com/sindresorhus/import-fresh",children:(0,r.jsx)(n.code,{children:"import-fresh"})})," to ",(0,r.jsx)(n.a,{href:"https://github.com/unjs/jiti",children:(0,r.jsx)(n.code,{children:"jiti"})}),". It is responsible for loading files such as ",(0,r.jsx)(n.code,{children:"docusaurus.config.js"})," or ",(0,r.jsx)(n.code,{children:"sidebars.js"}),", and Docusaurus plugins."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsx)(n.p,{children:"In theory, you have nothing to do, and your existing config files should keep working as before."}),(0,r.jsx)(n.p,{children:"However, this is a major dependency swap and subtle behavior changes could occur."})]}),"\n",(0,r.jsx)(n.h3,{id:"admonition-warning",children:"Admonition Warning"}),"\n",(0,r.jsxs)(n.p,{children:["For historical reasons, we support an undocumented admonition ",(0,r.jsx)(n.code,{children:":::warning"})," that renders with a red color."]}),"\n",(0,r.jsx)(n.admonition,{title:"Warning",type:"danger",children:(0,r.jsxs)(n.p,{children:["This is a Docusaurus v2 ",(0,r.jsx)(n.code,{children:":::warning"})," admonition."]})}),"\n",(0,r.jsxs)(n.p,{children:["However, the color and icon have always been wrong. Docusaurus v3 re-introduces ",(0,r.jsx)(n.code,{children:":::warning"})," admonition officially, documents it, and fix the color and icon."]}),"\n",(0,r.jsx)(n.admonition,{type:"warning",children:(0,r.jsxs)(n.p,{children:["This is a Docusaurus v3 ",(0,r.jsx)(n.code,{children:":::warning"})," admonition."]})}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsxs)(n.p,{children:["If you previously used the undocumented ",(0,r.jsx)(n.code,{children:":::warning"})," admonition, make sure to verify for each usage if yellow is now an appropriate color. If you want to keep the red color, use ",(0,r.jsx)(n.code,{children:":::danger"})," instead."]}),(0,r.jsxs)(n.p,{children:["Docusaurus v3 also ",(0,r.jsxs)(n.a,{href:"https://github.com/facebook/docusaurus/pull/9308",children:["deprecated the ",(0,r.jsx)(n.code,{children:":::caution"})]})," admonition. Please refactor ",(0,r.jsx)(n.code,{children:":::caution"})," (yellow) to either ",(0,r.jsx)(n.code,{children:":::warning"})," (yellow) or ",(0,r.jsx)(n.code,{children:":::danger"})," (red)."]}),(0,r.jsxs)(n.p,{children:["If you want to keep the title \u201Ccaution\u201D, you might want to refactor it to ",(0,r.jsx)(n.code,{children:":::warning[caution]"})," (yellow)."]})]}),"\n",(0,r.jsx)(n.h3,{id:"versioned-sidebars",children:"Versioned Sidebars"}),"\n",(0,r.jsxs)(n.p,{children:["This breaking change will only affect ",(0,r.jsx)(n.strong,{children:"Docusaurus v2 early adopters"})," who versioned their docs before ",(0,r.jsx)(n.code,{children:"v2.0.0-beta.10"})," (December 2021)."]}),"\n",(0,r.jsxs)(n.p,{children:["When creating version ",(0,r.jsx)(n.code,{children:"v1.0.0"}),", the sidebar file contained a prefix ",(0,r.jsx)(n.code,{children:"version-v1.0.0/"})," that ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/pull/9310",children:"Docusaurus v3 does not support anymore"}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-json",metastring:'title="versioned_sidebars/version-v1.0.0-sidebars.json"',children:'{\n "version-v1.0.0/docs": [\n "version-v1.0.0/introduction",\n "version-v1.0.0/prerequisites"\n ]\n}\n'})}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsx)(n.p,{children:"Remove the useless versioned prefix from your versioned sidebars."}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-json",metastring:'title="versioned_sidebars/version-v1.0.0-sidebars.json"',children:'{\n "docs": ["introduction", "prerequisites"]\n}\n'})})]}),"\n",(0,r.jsx)(n.h3,{id:"blog-feed-limit",children:"Blog Feed Limit"}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"@docusaurus/plugin-content-blog"})," now limits the RSS feed to the last 20 entries by default. For large Docusaurus blogs, this is a more sensible default value to avoid an increasingly large RSS file."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsxs)(n.p,{children:['In case you don\'t like this new default behavior, you can revert to the former "unlimited feed" behavior with the new ',(0,r.jsx)(n.code,{children:"limit: false"})," feed option:"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"const blogOptions = {\n feedOptions: {\n // highlight-next-line\n limit: false,\n },\n};\n"})})]}),"\n",(0,r.jsx)(n.h3,{id:"docs-theme-refactoring",children:"Docs Theme Refactoring"}),"\n",(0,r.jsxs)(n.p,{children:["For users that swizzled docs-related theme components (like ",(0,r.jsx)(n.code,{children:"@theme/DocPage"}),"), these components have been significantly refactor to make it easier to customize."]}),"\n",(0,r.jsxs)(n.p,{children:["Technically, ",(0,r.jsx)(n.strong,{children:"this is not a breaking change"})," because these components are ",(0,r.jsx)(n.strong,{children:"flagged as unsafe to swizzle"}),", however many Docusaurus sites ejected docs-related components, and will be interested to know their customizations might break Docusaurus."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsx)(n.p,{children:"Delete all your swizzled components, re-swizzle them, and re-apply your customizations on top of the newly updated components."}),(0,r.jsxs)(n.p,{children:["Alternatively, you can look at the ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/pull/7966",children:"pull-request notes"})," to understand the new theme component tree structure, and eventually try to patch your swizzled components manually."]})]}),"\n",(0,r.jsx)(n.h2,{id:"optional-changes",children:"Optional Changes"}),"\n",(0,r.jsx)(n.p,{children:"Some changes are not mandatory, but remain useful to be aware of to plainly leverage Docusaurus v3."}),"\n",(0,r.jsx)(n.h3,{id:"automatic-jsx-runtime",children:"Automatic JSX runtime"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus v3 now uses the React 18 ",(0,r.jsx)(n.a,{href:"https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html",children:'"automatic" JSX runtime'}),"."]}),"\n",(0,r.jsx)(n.p,{children:"It is not needed anymore to import React in JSX files that do not use any React API."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="src/components/MyComponent.js"',children:"- import React from 'react';\n\n export default function MyComponent() {\n return <div>Hello</div>;\n }\n"})}),"\n",(0,r.jsx)(n.h3,{id:"esm-and-typescript-configs",children:"ESM and TypeScript Configs"}),"\n",(0,r.jsx)(n.p,{children:"Docusaurus v3 supports ESM and TypeScript config files, and it might be a good idea to adopt those new options."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n title: 'Docusaurus',\n url: 'https://docusaurus.io',\n // your site config ...\n};\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="docusaurus.config.ts"',children:"import type {Config} from '@docusaurus/types';\nimport type * as Preset from '@docusaurus/preset-classic';\n\nconst config: Config = {\n title: 'My Site',\n favicon: 'img/favicon.ico',\n presets: [\n [\n 'classic',\n {\n /* Your preset config here */\n } satisfies Preset.Options,\n ],\n ],\n\n themeConfig: {\n /* Your theme config here */\n } satisfies Preset.ThemeConfig,\n};\n\nexport default config;\n"})}),"\n",(0,r.jsxs)(n.h3,{id:"using-the-mdx-extension",children:["Using the ",(0,r.jsx)(n.code,{children:".mdx"})," extension"]}),"\n",(0,r.jsxs)(n.p,{children:["We recommend using the ",(0,r.jsx)(n.code,{children:".mdx"})," extension whenever you use JSX, ",(0,r.jsx)(n.code,{children:"import"}),", or ",(0,r.jsx)(n.code,{children:"export"})," (i.e. MDX features) inside a Markdown file. It is semantically more correct and improves compatibility with external tools (IDEs, formatters, linters, etc.)."]}),"\n",(0,r.jsxs)(n.p,{children:["In future versions of Docusaurus, ",(0,r.jsx)(n.code,{children:".md"})," files will be parsed as standard ",(0,r.jsx)(n.a,{href:"https://commonmark.org/",children:"CommonMark"}),", which does not support these features. In Docusaurus v3, ",(0,r.jsx)(n.code,{children:".md"})," files keep being compiled as MDX files, but it will be possible to ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/issues/3018",children:"opt-in for CommonMark"}),"."]}),"\n",(0,r.jsx)(n.h3,{id:"upgrading-math-packages",children:"Upgrading math packages"}),"\n",(0,r.jsxs)(n.p,{children:["If you use Docusaurus to render ",(0,r.jsx)(n.a,{href:"/docs/markdown-features/math-equations",children:"Math Equations"}),", you should upgrade the MDX plugins."]}),"\n",(0,r.jsxs)(n.p,{children:["Make sure to use ",(0,r.jsx)(n.code,{children:"remark-math 6"})," and ",(0,r.jsx)(n.code,{children:"rehype-katex 7"})," for Docusaurus v3 (using MDX v3). We can't guarantee other versions will work."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:"package.json",children:'{\n- "remark-math": "^3.0.0",\n+ "remark-math": "^6.0.0",\n- "rehype-katex": "^5.0.0"\n+ "rehype-katex": "^7.0.0"\n}\n'})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"hast-util-is-element"})," is now unnecessary in Docusaurus v3. If you have installed it and don't use it somewhere else, you can just remove it by running ",(0,r.jsx)(n.code,{children:"npm uninstall hast-util-is-element"}),"."]}),"\n",(0,r.jsx)(n.h3,{id:"turn-off-mdx-v1-compat",children:"Turn off MDX v1 compat"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus v3 comes with ",(0,r.jsx)(n.a,{href:"/docs/api/docusaurus-config#markdown",children:"MDX v1 compatibility options"}),", that are turned on by default."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n markdown: {\n mdx1Compat: {\n comments: true,\n admonitions: true,\n headingIds: true,\n },\n },\n};\n"})}),"\n",(0,r.jsxs)(n.h4,{id:"comments-option",children:[(0,r.jsx)(n.code,{children:"comments"})," option"]}),"\n",(0,r.jsx)(n.p,{children:"This option allows the usage of HTML comments inside MDX, while HTML comments are officially not supported anymore."}),"\n",(0,r.jsxs)(n.p,{children:["For MDX files, we recommend to progressively use MDX ",(0,r.jsx)(n.code,{children:"{/* comments */}"})," instead of HTML ",(0,r.jsx)(n.code,{children:"<!-- comments -->"}),", and then turn this compatibility option off."]}),"\n",(0,r.jsx)(n.admonition,{title:"Blog truncate marker",type:"info",children:(0,r.jsxs)(n.p,{children:["The default blog truncate marker now supports both ",(0,r.jsx)(n.code,{children:"<!-- truncate -->"})," and ",(0,r.jsx)(n.code,{children:"{/* truncate */}"}),"."]})}),"\n",(0,r.jsxs)(n.h4,{id:"admonitions-option",children:[(0,r.jsx)(n.code,{children:"admonitions"})," option"]}),"\n",(0,r.jsxs)(n.p,{children:["This option allows the usage of the Docusaurus v2 ",(0,r.jsx)(n.a,{href:"/docs/markdown-features/admonitions#specifying-title",children:"admonition title"})," syntax:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:":::note\xa0Your Title\n\ncontent\n\n:::\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus now implements admonitions with ",(0,r.jsx)(n.a,{href:"https://talk.commonmark.org/t/generic-directives-plugins-syntax/444",children:"Markdown Directives"})," (implemented with ",(0,r.jsx)(n.a,{href:"https://github.com/remarkjs/remark-directive",children:"remark-directive"}),"), and the syntax to provide a directive label requires square brackets:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:":::note[Your Title]\n\ncontent\n\n:::\n"})}),"\n",(0,r.jsx)(n.p,{children:"We recommend to progressively use the new Markdown directive label syntax, and then turn this compatibility option off."}),"\n",(0,r.jsxs)(n.h4,{id:"headingids-option",children:[(0,r.jsx)(n.code,{children:"headingIds"})," option"]}),"\n",(0,r.jsxs)(n.p,{children:["This option allows the usage of the Docusaurus v2 ",(0,r.jsx)(n.a,{href:"/docs/markdown-features/toc#heading-ids",children:"explicit heading id"})," syntax:"]}),"\n",(0,r.jsx)(i,{language:"md",children:"### Hello World {#my-explicit-id}\n"}),"\n",(0,r.jsxs)(n.p,{children:["This syntax is now invalid MDX, and would require to escape the ",(0,r.jsx)(n.code,{children:"{"})," character: ",(0,r.jsx)(n.code,{children:"\\{#my-explicit-id}"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"We recommend to keep this compatibility option on for now, until we provide a new syntax compatible with newer versions of MDX."}),"\n",(0,r.jsx)(n.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,r.jsx)(n.p,{children:"In case of any upgrade problem, the first things to try are:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["make sure all your docs compile in the ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/playground/",children:"MDX playground"}),", or using ",(0,r.jsx)(n.a,{href:"https://github.com/slorber/docusaurus-mdx-checker",children:(0,r.jsx)(n.code,{children:"npx docusaurus-mdx-checker"})})]}),"\n",(0,r.jsxs)(n.li,{children:["delete ",(0,r.jsx)(n.code,{children:"node_modules"})," and ",(0,r.jsx)(n.code,{children:"package-lock.json"}),", and then run ",(0,r.jsx)(n.code,{children:"npm install"})," again"]}),"\n",(0,r.jsxs)(n.li,{children:["run ",(0,r.jsx)(n.code,{children:"docusaurus clear"})," to clear the caches"]}),"\n",(0,r.jsx)(n.li,{children:"remove third-party plugins that might not support Docusaurus v3"}),"\n",(0,r.jsx)(n.li,{children:"delete all your swizzled components"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Once you have tried that, you can ask for support through the following support channels:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9336",children:"Docusaurus v3 - Upgrade Support"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://discord.com/channels/398180168688074762/1154771869094912090",children:"Docusaurus v3 - Discord channel #migration-v2-to-v3"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9053",children:"MDX v3 - Upgrade Support"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9337",children:"MDX v3 - Remark/Rehype Plugins Support"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://discord.com/channels/398180168688074762/1116724556976111616",children:"MDX v3 - Discord channel #migration-mdx-v3"})}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["Please consider ",(0,r.jsx)(n.strong,{children:"our time is precious"}),". To ensure that your support request is not ignored, we kindly ask you to:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["provide a ",(0,r.jsx)(n.strong,{children:"minimal"})," reproduction that we can easily run, ideally created with ",(0,r.jsx)(n.a,{href:"https://docusaurus.new",children:"docusaurus.new"})]}),"\n",(0,r.jsx)(n.li,{children:"provide a live deployment url showing the problem in action (if your site can build)"}),"\n",(0,r.jsx)(n.li,{children:'explain clearly the problem, much more than an ambiguous "it doesn\'t work"'}),"\n",(0,r.jsx)(n.li,{children:"include as much relevant material as possible: code snippets, repo url, git branch urls, full stack traces, screenshots and videos"}),"\n",(0,r.jsx)(n.li,{children:"present your request clearly, concisely, showing us that you have made an effort to help us help you"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["Alternatively, you can look for a paid ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9281",children:"Docusaurus Service Provider"})," to execute this upgrade for you. If your site is open source, you can also ask our community for ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9283",children:"free, benevolent help"}),"."]})]})}function h(e={}){let{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}function u(e,n){throw Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},43023:(e,n,s)=>{s.d(n,{R:()=>t,x:()=>a});var i=s(63696);let r={},o=i.createContext(r);function t(e){let n=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/82425aa0.85e42fa2.js b/assets/js/82425aa0.85e42fa2.js new file mode 100644 index 0000000000..8df8b5e4ad --- /dev/null +++ b/assets/js/82425aa0.85e42fa2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[25946],{47992:(e,n,s)=>{s.d(n,{A:()=>i});let i=s.p+"assets/images/mdx-checker-output-0f96cc19fd3ed4d55901ca90ad657c14.png"},68111:(e,n,s)=>{s.d(n,{A:()=>i});let i=s.p+"assets/images/mdx2-playground-options-eab88e8328a6902759c4236ffc93d9c6.png"},94282:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>t,metadata:()=>i,toc:()=>c});let i=JSON.parse('{"id":"migration/v3","title":"Upgrading to Docusaurus v3","description":"This documentation will help you upgrade your site from Docusaurus v2 to Docusaurus v3.","source":"@site/docs/migration/v3.mdx","sourceDirName":"migration","slug":"/migration/v3","permalink":"/docs/migration/v3","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/v3.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/migration/v3","sidebar_label":"To Docusaurus v3"},"sidebar":"docs","previous":{"title":"Upgrading Docusaurus","permalink":"/docs/migration"},"next":{"title":"Overview","permalink":"/docs/migration/v2"}}');var r=s(62540),o=s(43023);let t={slug:"/migration/v3",sidebar_label:"To Docusaurus v3"},a="Upgrading to Docusaurus v3",d={},c=[{value:"Upgrading Dependencies",id:"upgrading-dependencies",level:2},{value:"Upgrading MDX",id:"upgrading-mdx",level:2},{value:"Using the MDX playground",id:"using-the-mdx-playground",level:3},{value:"Using the MDX checker CLI",id:"using-the-mdx-checker-cli",level:3},{value:"Common MDX problems",id:"common-mdx-problems",level:3},{value:"Bad usage of <code>{</code>",id:"bad-usage-of-",level:4},{value:"Bad usage of <code><</code>",id:"bad-usage-of--1",level:4},{value:"Bad usage of GFM Autolink",id:"bad-usage-of-gfm-autolink",level:4},{value:"Lower-case MDXComponent mapping",id:"lower-case-mdxcomponent-mapping",level:4},{value:"Unintended extra paragraphs",id:"unintended-extra-paragraphs",level:4},{value:"Unintended usage of directives",id:"unintended-usage-of-directives",level:4},{value:"Unsupported indented code blocks",id:"unsupported-indented-code-blocks",level:4},{value:"Other Markdown incompatibilities",id:"other-markdown-incompatibilities",level:3},{value:"Emphasis starting or ending with a space or a punctuation",id:"emphasis-starting-or-ending-with-a-space-or-a-punctuation",level:4},{value:"MDX plugins",id:"mdx-plugins",level:3},{value:"Formatters",id:"formatters",level:3},{value:"Other Breaking Changes",id:"other-breaking-changes",level:2},{value:"Node.js v18.0",id:"nodejs-v180",level:3},{value:"React v18.0+",id:"react-v180",level:3},{value:"Prism-React-Renderer v2.0+",id:"prism-react-renderer-v20",level:3},{value:"React-Live v4.0+",id:"react-live-v40",level:3},{value:"remark-emoji v4.0+",id:"remark-emoji-v40",level:3},{value:"Mermaid v10.4+",id:"mermaid-v104",level:3},{value:"TypeScript v5.1+",id:"typescript-v51",level:3},{value:"TypeScript base config",id:"typescript-base-config",level:3},{value:"New Config Loader",id:"new-config-loader",level:3},{value:"Admonition Warning",id:"admonition-warning",level:3},{value:"Versioned Sidebars",id:"versioned-sidebars",level:3},{value:"Blog Feed Limit",id:"blog-feed-limit",level:3},{value:"Docs Theme Refactoring",id:"docs-theme-refactoring",level:3},{value:"Optional Changes",id:"optional-changes",level:2},{value:"Automatic JSX runtime",id:"automatic-jsx-runtime",level:3},{value:"ESM and TypeScript Configs",id:"esm-and-typescript-configs",level:3},{value:"Using the <code>.mdx</code> extension",id:"using-the-mdx-extension",level:3},{value:"Upgrading math packages",id:"upgrading-math-packages",level:3},{value:"Turn off MDX v1 compat",id:"turn-off-mdx-v1-compat",level:3},{value:"<code>comments</code> option",id:"comments-option",level:4},{value:"<code>admonitions</code> option",id:"admonitions-option",level:4},{value:"<code>headingIds</code> option",id:"headingids-option",level:4},{value:"Troubleshooting",id:"troubleshooting",level:2}];function l(e){let n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...e.components},{Code:i,Details:t}=n;return i||u("Code",!0),t||u("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"upgrading-to-docusaurus-v3",children:"Upgrading to Docusaurus v3"})}),"\n",(0,r.jsx)(n.p,{children:"This documentation will help you upgrade your site from Docusaurus v2 to Docusaurus v3."}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus v3 is a new ",(0,r.jsx)(n.strong,{children:"major version"}),", including ",(0,r.jsx)(n.strong,{children:"breaking changes"})," requiring you to adjust your site accordingly. We will guide to during this process, and also mention a few optional recommendations."]}),"\n",(0,r.jsx)(n.p,{children:"This is not a full rewrite, and the breaking changes are relatively easy to handle. The simplest sites will eventually upgrade by simply updating their npm dependencies."}),"\n",(0,r.jsxs)(n.p,{children:["The main breaking change is the upgrade from MDX v1 to MDX v3. Read the ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/blog/v2/",children:(0,r.jsx)(n.strong,{children:"MDX v2"})})," and ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/blog/v3/",children:(0,r.jsx)(n.strong,{children:"MDX v3"})})," release notes for details. MDX will now compile your Markdown content ",(0,r.jsx)(n.strong,{children:"more strictly"})," and with ",(0,r.jsx)(n.strong,{children:"subtle differences"}),"."]}),"\n",(0,r.jsxs)(n.admonition,{title:"Before upgrading",type:"tip",children:[(0,r.jsxs)(n.p,{children:["Before upgrading, we recommend ",(0,r.jsx)(n.a,{href:"/blog/preparing-your-site-for-docusaurus-v3",children:(0,r.jsx)(n.strong,{children:"preparing your site for Docusaurus v3"})}),". There are changes that you can already ",(0,r.jsx)(n.strong,{children:"handle incrementally, under Docusaurus v2"}),". Doing so will help reduce the work needed to finally upgrade to Docusaurus v3."]}),(0,r.jsxs)(n.p,{children:["For complex sites, we also recommend to set up ",(0,r.jsx)(n.a,{href:"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing",children:(0,r.jsx)(n.strong,{children:"visual regression tests"})}),", a good way to ensure your site stays visually identical. Docusaurus v3 mainly upgrades dependencies, and is not expected to produce any visual changes."]})]}),"\n",(0,r.jsx)(n.admonition,{type:"note",children:(0,r.jsxs)(n.p,{children:["Check the release notes for ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/releases/tag/v3.0.0",children:(0,r.jsx)(n.strong,{children:"Docusaurus v3.0.0"})}),", and browse the pull-requests for additional useful information and the motivation behind each change mentioned here."]})}),"\n",(0,r.jsx)(n.h2,{id:"upgrading-dependencies",children:"Upgrading Dependencies"}),"\n",(0,r.jsxs)(n.p,{children:["Upgrading to Docusaurus v3 requires upgrading core Docusaurus dependencies (",(0,r.jsx)(n.code,{children:"@docusaurus/name"}),"), but also other related packages."]}),"\n",(0,r.jsx)(n.p,{children:"Docusaurus v3 now uses the following dependencies:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Node.js v18.0+"}),"\n",(0,r.jsx)(n.li,{children:"React v18.0+"}),"\n",(0,r.jsx)(n.li,{children:"MDX v3.0+"}),"\n",(0,r.jsx)(n.li,{children:"TypeScript v5.1+"}),"\n",(0,r.jsx)(n.li,{children:"prism-react-renderer v2.0+"}),"\n",(0,r.jsx)(n.li,{children:"react-live v4.0+"}),"\n",(0,r.jsx)(n.li,{children:"remark-emoji v4.0+"}),"\n",(0,r.jsx)(n.li,{children:"mermaid v10.4+"}),"\n"]}),"\n",(0,r.jsxs)(n.admonition,{title:"Upgrading community plugins",type:"warning",children:[(0,r.jsx)(n.p,{children:"If your site uses third-party community plugins and themes, you might need to upgrade them."}),(0,r.jsx)(n.p,{children:"Make sure those plugins are compatible with Docusaurus v3 before attempting an upgrade."})]}),"\n",(0,r.jsxs)(n.p,{children:["A typical ",(0,r.jsx)(n.code,{children:"package.json"})," dependency upgrade example:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="package.json"',children:' {\n "dependencies": {\n // upgrade to Docusaurus v3\n- "@docusaurus/core": "2.4.3",\n- "@docusaurus/preset-classic": "2.4.3",\n+ "@docusaurus/core": "3.0.0",\n+ "@docusaurus/preset-classic": "3.0.0",\n // upgrade to MDX v3\n- "@mdx-js/react": "^1.6.22",\n+ "@mdx-js/react": "^3.0.0",\n // upgrade to prism-react-renderer v2.0+\n- "prism-react-renderer": "^1.3.5",\n+ "prism-react-renderer": "^2.1.0",\n // upgrade to React v18.0+\n- "react": "^17.0.2",\n- "react-dom": "^17.0.2"\n+ "react": "^18.2.0",\n+ "react-dom": "^18.2.0"\n },\n "devDependencies": {\n // upgrade Docusaurus dev dependencies to v3\n- "@docusaurus/module-type-aliases": "2.4.3",\n- "@docusaurus/types": "2.4.3"\n+ "@docusaurus/module-type-aliases": "3.0.0",\n+ "@docusaurus/types": "3.0.0"\n }\n "engines": {\n // require Node.js 18.0+\n- "node": ">=16.14"\n+ "node": ">=18.0"\n }\n }\n'})}),"\n",(0,r.jsx)(n.p,{children:"For TypeScript users:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="package.json"',children:' {\n "devDependencies": {\n // swap the external TypeScript config package for the new official one\n- "@tsconfig/docusaurus": "^1.0.7",\n+ "@docusaurus/tsconfig": "3.0.0",\n // upgrade React types to v18.0+\n- "@types/react": "^17.0.69",\n+ "@types/react": "^18.2.29",\n // upgrade TypeScript to v5.1+\n- "typescript": "~4.7.4"\n+ "typescript": "~5.2.2"\n }\n }\n'})}),"\n",(0,r.jsx)(n.h2,{id:"upgrading-mdx",children:"Upgrading MDX"}),"\n",(0,r.jsxs)(n.p,{children:["MDX is a major dependency of Docusaurus responsible for compiling your ",(0,r.jsx)(n.code,{children:".md"})," and ",(0,r.jsx)(n.code,{children:".mdx"})," files to React components."]}),"\n",(0,r.jsxs)(n.p,{children:["The transition from MDX v1 to MDX v3 is the ",(0,r.jsx)(n.strong,{children:"main challenge"})," to the adoption of Docusaurus v3. Most breaking changes come from MDX v2, and MDX v3 is a relatively small release."]}),"\n",(0,r.jsxs)(n.p,{children:["Some documents that compiled successfully under Docusaurus v2 might now ",(0,r.jsx)(n.strong,{children:"fail to compile"})," under Docusaurus v3."]}),"\n",(0,r.jsxs)(n.admonition,{title:"Find problematic content ahead of time",type:"tip",children:[(0,r.jsxs)(n.p,{children:["Run ",(0,r.jsx)(n.a,{href:"https://github.com/slorber/docusaurus-mdx-checker",children:(0,r.jsx)(n.code,{children:"npx docusaurus-mdx-checker"})})," on your site to get a list of files that will now fail to compile under Docusaurus v3."]}),(0,r.jsxs)(n.p,{children:["This command is also a good way to estimate the amount of work to be done to make your content compatible. Remember most of this work can be executed ahead of the upgrade by ",(0,r.jsx)(n.a,{href:"/blog/preparing-your-site-for-docusaurus-v3",children:"preparing your content for Docusaurus v3"}),"."]})]}),"\n",(0,r.jsxs)(n.p,{children:["Other documents might also ",(0,r.jsx)(n.strong,{children:"render differently"}),"."]}),"\n",(0,r.jsx)(n.admonition,{title:"Use visual regression tests",type:"tip",children:(0,r.jsxs)(n.p,{children:["For large sites where a manual review of all pages is complicated, we recommend you to setup ",(0,r.jsx)(n.a,{href:"https://docusaurus.io/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing",children:"visual regression tests"}),"."]})}),"\n",(0,r.jsxs)(n.p,{children:["Upgrading MDX comes with all the breaking changes documented on the ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/blog/v2/",children:"MDX v2"})," and ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/blog/v3/",children:"MDX v3"})," release blog posts. Most breaking changes come from MDX v2, and MDX v3 is a relatively small release. The ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/migrating/v2/",children:"MDX v2 migration guide"})," has a section on how to ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/migrating/v2/#update-mdx-files",children:"update MDX files"})," that will be particularly relevant to us. Also make sure to read the ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/docs/troubleshooting-mdx/",children:"Troubleshooting MDX"})," page that can help you interpret common MDX error messages."]}),"\n",(0,r.jsxs)(n.p,{children:["Make sure to also read our updated ",(0,r.jsx)(n.a,{href:"/docs/markdown-features/react",children:(0,r.jsx)(n.strong,{children:"MDX and React"})})," documentation page."]}),"\n",(0,r.jsx)(n.h3,{id:"using-the-mdx-playground",children:"Using the MDX playground"}),"\n",(0,r.jsxs)(n.p,{children:["The MDX playground is your new best friend. It permits to understand how your content is ",(0,r.jsx)(n.strong,{children:"compiled to React components"}),", and troubleshoot compilation or rendering issues in isolation."]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://mdxjs.com/playground/",children:"MDX playground - current version"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://mdx-git-renovate-babel-monorepo-mdx.vercel.app/playground/",children:"MDX playground - v1"})}),"\n"]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Configuring the MDX playground options for Docusaurus"}),(0,r.jsxs)(n.p,{children:["To obtain a compilation behavior similar to what Docusaurus v2 uses, please turn on these options on the ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/playground/",children:"MDX playground"}),":"]}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Use ",(0,r.jsx)(n.code,{children:"MDX"})]}),"\n",(0,r.jsxs)(n.li,{children:["Use ",(0,r.jsx)(n.code,{children:"remark-gfm"})]}),"\n",(0,r.jsxs)(n.li,{children:["Use ",(0,r.jsx)(n.code,{children:"remark-directive"})]}),"\n"]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Screenshot of the MDX playground's options panel, with only the "Use MDX", "Use remark-gfm", and "Use remark-directive" options checked",src:s(68111).A+"",width:"1968",height:"1316"})})]}),"\n",(0,r.jsx)(n.p,{children:"Using the two MDX playgrounds side-by-side, you will soon notice that some content is compiled differently or fails to compile in v2."}),"\n",(0,r.jsx)(n.admonition,{title:"Making your content future-proof",type:"tip",children:(0,r.jsxs)(n.p,{children:["The goal will be to refactor your problematic content so that it ",(0,r.jsx)(n.strong,{children:"works fine with both versions of MDX"}),". This way, when you upgrade to Docusaurus v3, this content will already work out-of-the-box."]})}),"\n",(0,r.jsx)(n.h3,{id:"using-the-mdx-checker-cli",children:"Using the MDX checker CLI"}),"\n",(0,r.jsxs)(n.p,{children:["We provide a ",(0,r.jsx)(n.a,{href:"https://github.com/slorber/docusaurus-mdx-checker",children:"docusaurus-mdx-checker"})," CLI that permits to easily spot problematic content. Run this command on your site to obtain a list of files that will fail to compile under MDX v3."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npx docusaurus-mdx-checker\n"})}),"\n",(0,r.jsx)(n.p,{children:"For each compilation issue, the CLI will log the file path and a line number to look at."}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Screenshot of the terminal showing an example MDX checker CLI output, with a few error messages",src:s(47992).A+"",width:"1161",height:"417"})}),"\n",(0,r.jsx)(n.admonition,{type:"tip",children:(0,r.jsx)(n.p,{children:"Use this CLI to estimate of how much work will be required to make your content compatible with MDX v3."})}),"\n",(0,r.jsxs)(n.admonition,{type:"warning",children:[(0,r.jsxs)(n.p,{children:["This CLI is a best effort, and will ",(0,r.jsx)(n.strong,{children:"only report compilation errors"}),"."]}),(0,r.jsxs)(n.p,{children:["It will not report subtle compilation changes that do not produce errors but can affect how your content is displayed. To catch these problems, we recommend using ",(0,r.jsx)(n.a,{href:"/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing",children:"visual regression tests"}),"."]})]}),"\n",(0,r.jsx)(n.h3,{id:"common-mdx-problems",children:"Common MDX problems"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus cannot document exhaustively all the changes coming with MDX. That's the responsibility of the ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/migrating/v2/",children:"MDX v2"})," and ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/migrating/v3/",children:"MDX v3"})," migration guides."]}),"\n",(0,r.jsx)(n.p,{children:"However, by upgrading a few Docusaurus sites, we noticed that most of the issues come down to only a few cases that we have documented for you."}),"\n",(0,r.jsxs)(n.h4,{id:"bad-usage-of-",children:["Bad usage of ",(0,r.jsx)(n.code,{children:"{"})]}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"{"})," character is used for opening ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/docs/what-is-mdx/#expressions",children:"JavaScript expressions"}),". MDX will now fail if what you put inside ",(0,r.jsx)(n.code,{children:"{expression}"})," is not a valid expression."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"The object shape looks like {username: string, age: number}\n"})}),"\n",(0,r.jsx)(n.admonition,{title:"Error message",type:"danger",children:(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsx)(n.p,{children:"Could not parse expression with acorn: Unexpected content after expression"}),"\n"]})}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"tip",children:[(0,r.jsx)(n.p,{children:"Available options to fix this error:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Use inline code: ",(0,r.jsx)(n.code,{children:"{username: string, age: number}"})]}),"\n",(0,r.jsxs)(n.li,{children:["Use the HTML code: ",(0,r.jsx)(n.code,{children:"{"})]}),"\n",(0,r.jsxs)(n.li,{children:["Escape it: ",(0,r.jsx)(n.code,{children:"\\{"})]}),"\n"]})]}),"\n",(0,r.jsxs)(n.h4,{id:"bad-usage-of--1",children:["Bad usage of ",(0,r.jsx)(n.code,{children:"<"})]}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"<"})," character is used for opening ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/docs/what-is-mdx/#jsx",children:"JSX tags"}),". MDX will now fail if it thinks your JSX is invalid."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:'Use Android version <5\n\nYou can use a generic type like Array<T>\n\nFollow the template "Road to <YOUR_MINOR_VERSION>"\n'})}),"\n",(0,r.jsxs)(n.admonition,{title:"Error messages",type:"danger",children:[(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Unexpected character ",(0,r.jsx)(n.code,{children:"5"})," (U+0035) before name, expected a character that can start a name, such as a letter, ",(0,r.jsx)(n.code,{children:"$"}),", or ",(0,r.jsx)(n.code,{children:"_"})]}),"\n"]}),(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Expected a closing tag for ",(0,r.jsx)(n.code,{children:"<T>"})," (1:6-1:9) before the end of ",(0,r.jsx)(n.code,{children:"paragraph"})," end-tag-mismatch mdast-util-mdx-jsx"]}),"\n"]}),(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Expected a closing tag for ",(0,r.jsx)(n.code,{children:"<YOUR_MINOR_VERSION>"})," (134:19-134:39) before the end of ",(0,r.jsx)(n.code,{children:"paragraph"})]}),"\n"]})]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"tip",children:[(0,r.jsx)(n.p,{children:"Available options to fix this error:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Use inline code: ",(0,r.jsx)(n.code,{children:"Array<T>"})]}),"\n",(0,r.jsxs)(n.li,{children:["Use the HTML code: ",(0,r.jsx)(n.code,{children:"<"})," or ",(0,r.jsx)(n.code,{children:"<"})]}),"\n",(0,r.jsxs)(n.li,{children:["Escape it: ",(0,r.jsx)(n.code,{children:"\\<"})]}),"\n"]})]}),"\n",(0,r.jsx)(n.h4,{id:"bad-usage-of-gfm-autolink",children:"Bad usage of GFM Autolink"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus supports ",(0,r.jsx)(n.a,{href:"https://github.github.com/gfm/",children:"GitHub Flavored Markdown (GFM)"}),", but ",(0,r.jsx)(n.a,{href:"https://github.github.com/gfm/#autolinks",children:"autolink"})," using the ",(0,r.jsx)(n.code,{children:"<link>"})," syntax is not supported anymore by MDX."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"<sebastien@thisweekinreact.com>\n\n<http://localhost:3000>\n"})}),"\n",(0,r.jsxs)(n.admonition,{title:"Error messages",type:"danger",children:[(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Unexpected character ",(0,r.jsx)(n.code,{children:"@"})," (U+0040) in name, expected a name character such as letters, digits, ",(0,r.jsx)(n.code,{children:"$"}),", or ",(0,r.jsx)(n.code,{children:"_"}),"; whitespace before attributes; or the end of the tag (note: to create a link in MDX, use ",(0,r.jsx)(n.code,{children:"[text](url)"}),")"]}),"\n"]}),(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Unexpected character ",(0,r.jsx)(n.code,{children:"/"})," (U+002F) before local name, expected a character that can start a name, such as a letter, ",(0,r.jsx)(n.code,{children:"$"}),", or ",(0,r.jsx)(n.code,{children:"_"})," (note: to create a link in MDX, use ",(0,r.jsx)(n.code,{children:"[text](url)"}),")"]}),"\n"]})]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"tip",children:[(0,r.jsxs)(n.p,{children:["Use regular Markdown links, or remove the ",(0,r.jsx)(n.code,{children:"<"})," and ",(0,r.jsx)(n.code,{children:">"}),". MDX and GFM are able to autolink literals already."]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"sebastien@thisweekinreact.com\n[sebastien@thisweekinreact.com](mailto:sebastien@thisweekinreact.com)\n\nhttp://localhost:3000\n[http://localhost:3000](http://localhost:3000)\n"})})]}),"\n",(0,r.jsx)(n.h4,{id:"lower-case-mdxcomponent-mapping",children:"Lower-case MDXComponent mapping"}),"\n",(0,r.jsxs)(n.p,{children:["For users providing a ",(0,r.jsxs)(n.a,{href:"/docs/markdown-features/react#mdx-component-scope",children:["custom ",(0,r.jsx)(n.code,{children:"MDXComponent"}),"mapping"]}),', components are now "sandboxed":']}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["a ",(0,r.jsx)(n.code,{children:"MDXComponent"})," mapping for ",(0,r.jsx)(n.code,{children:"h1"})," only gets used for ",(0,r.jsx)(n.code,{children:"# hi"})," but not for ",(0,r.jsx)(n.code,{children:"<h1>hi</h1>"})]}),"\n",(0,r.jsxs)(n.li,{children:["a ",(0,r.jsx)(n.strong,{children:"lower-cased"})," custom element name will not be substituted by its respective ",(0,r.jsx)(n.code,{children:"MDXComponent"})," component anymore"]}),"\n"]}),"\n",(0,r.jsx)(n.admonition,{title:"visual difference",type:"danger",children:(0,r.jsxs)(n.p,{children:["Your ",(0,r.jsxs)(n.a,{href:"/docs/markdown-features/react#mdx-component-scope",children:[(0,r.jsx)(n.code,{children:"MDXComponent"})," component mapping"]})," might not be applied as before, and your custom components might no longer be used."]})}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"tip",children:[(0,r.jsxs)(n.p,{children:["For native Markdown elements, you can keep using ",(0,r.jsx)(n.strong,{children:"lower-case"}),": ",(0,r.jsx)(n.code,{children:"p"}),", ",(0,r.jsx)(n.code,{children:"h1"}),", ",(0,r.jsx)(n.code,{children:"img"}),", ",(0,r.jsx)(n.code,{children:"a"}),"..."]}),(0,r.jsxs)(n.p,{children:["For any other element, ",(0,r.jsx)(n.strong,{children:"use upper-case names"}),"."]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="src/theme/MDXComponents.js"',children:' import MDXComponents from \'@theme-original/MDXComponents\';\n\n export default {\n ...MDXComponents,\n p: (props) => <p {...props} className="my-paragraph"/>\n- myElement: (props) => <div {...props} className="my-class" />,\n+ MyElement: (props) => <div {...props} className="my-class" />,\n };\n'})})]}),"\n",(0,r.jsx)(n.h4,{id:"unintended-extra-paragraphs",children:"Unintended extra paragraphs"}),"\n",(0,r.jsxs)(n.p,{children:["In MDX v3, it is now possible to interleave JSX and Markdown more easily without requiring extra line breaks. Writing content on multiple lines can also produce new expected ",(0,r.jsx)(n.code,{children:"<p>"})," tags."]}),"\n",(0,r.jsxs)(n.admonition,{title:"visual difference",type:"danger",children:[(0,r.jsx)(n.p,{children:"See how this content is rendered differently by MDX v1 and v3."}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"<div>Some **Markdown** content</div>\n<div>\n Some **Markdown** content\n</div>\n"})}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-html",metastring:'title="MDX v1 output"',children:"<div>Some **Markdown** content</div>\n<div>Some **Markdown** content</div>\n"})}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-html",metastring:'title="MDX v3 output"',children:"<div>Some <strong>Markdown</strong> content</div>\n<div><p>Some <strong>Markdown</strong> content</p></div>\n"})})]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"tip",children:[(0,r.jsxs)(n.p,{children:["If you don't want an extra ",(0,r.jsx)(n.code,{children:"<p>"})," tag, refactor content on a case by case basis to use a single-line JSX tag."]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:' <figure>\n <img src="/img/myImage.png" alt="My alt" />\n- <figcaption>\n- My image caption\n- </figcaption>\n+ <figcaption>My image caption</figcaption>\n </figure>\n'})}),(0,r.jsxs)(n.p,{children:["You can also wrap such content with ",(0,r.jsx)(n.code,{children:"{"})," and ",(0,r.jsx)(n.code,{children:"}"})," to avoid extra ",(0,r.jsx)(n.code,{children:"<p>"})," tags if you don't intend to use Markdown syntax there yet."]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'-<figure>\n+{<figure>\n <img src="/img/myImage.png" alt="My alt" />\n <figcaption>\n My image caption\n </figcaption>\n-</figure>\n+</figure>}\n'})})]}),"\n",(0,r.jsx)(n.h4,{id:"unintended-usage-of-directives",children:"Unintended usage of directives"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus v3 now uses ",(0,r.jsx)(n.a,{href:"https://talk.commonmark.org/t/generic-directives-plugins-syntax/444",children:"Markdown Directives"})," (implemented with ",(0,r.jsx)(n.a,{href:"https://github.com/remarkjs/remark-directive",children:"remark-directive"}),") as a generic way to provide support for admonitions, and other upcoming Docusaurus features."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"This is a :textDirective\n\n::leafDirective\n\n:::containerDirective\n\nContainer directive content\n\n:::\n"})}),"\n",(0,r.jsxs)(n.admonition,{title:"Visual change",type:"danger",children:[(0,r.jsx)(n.p,{children:"Directives are parsed with the purpose of being handled by other Remark plugins. Unhandled directives will be ignored, and won't be rendered back in their original form."}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"The AWS re:Invent conf is great\n"})}),(0,r.jsxs)(n.p,{children:["Due to ",(0,r.jsx)(n.code,{children:":Invent"})," being parsed as a text directive, this will now be rendered as:"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"The AWS re\nconf is great\n"})})]}),"\n",(0,r.jsx)(n.admonition,{title:"How to upgrade",type:"tip",children:(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Use the HTML code: ",(0,r.jsx)(n.code,{children:":"})]}),"\n",(0,r.jsxs)(n.li,{children:["Add a space after ",(0,r.jsx)(n.code,{children:":"})," (if it makes sense): ",(0,r.jsx)(n.code,{children:": text"})]}),"\n",(0,r.jsxs)(n.li,{children:["Escape it: ",(0,r.jsx)(n.code,{children:"\\:"})]}),"\n"]})}),"\n",(0,r.jsx)(n.h4,{id:"unsupported-indented-code-blocks",children:"Unsupported indented code blocks"}),"\n",(0,r.jsx)(n.p,{children:"MDX does not transform indented text as code blocks anymore."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:' console.log("hello");\n'})}),"\n",(0,r.jsx)(n.admonition,{title:"Visual change",type:"danger",children:(0,r.jsx)(n.p,{children:"The upgrade does not generally produce new MDX compilation errors, but can lead to content being rendered in an unexpected way because there isn't a code block anymore."})}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"tip",children:[(0,r.jsx)(n.p,{children:"Use the regular code block syntax instead of indentation:"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"```js\nconsole.log('hello');\n```\n"})})]}),"\n",(0,r.jsx)(n.h3,{id:"other-markdown-incompatibilities",children:"Other Markdown incompatibilities"}),"\n",(0,r.jsx)(n.h4,{id:"emphasis-starting-or-ending-with-a-space-or-a-punctuation",children:"Emphasis starting or ending with a space or a punctuation"}),"\n",(0,r.jsx)(n.p,{children:"New MDX parser now strictly complies with the CommonMark spec. CommonMark spec has introduced rules for emphasis around spaces and punctuation, which are incompatible especially with languages that do not use a space to split words, since v0.14."}),"\n",(0,r.jsx)(n.p,{children:"Japanese and Chinese are most affected by this, but there are some other languages that can be affected (e.g. Thai and Khmer), for example when you try to emphasize an inline code or a link. Languages that use a space to split words are much less affected."}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"**"})," (other than ",(0,r.jsx)(n.code,{children:"`**`"}),") in the following example were parsed as intended in Docusaurus 2, but are not now in Docusaurus 3."]}),"\n","\n","\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="example.md"',children:"**Do not end a range of emphasis with a space. **Or `**` will not work as intended.\n\n<!-- Japanese -->\n**\u300C\u3002\u300D\u306E\u5F8C\u306B\u6587\u3092\u7D9A\u3051\u308B\u3068`**`\u304C\u610F\u56F3\u3057\u305F\u52D5\u4F5C\u3092\u3057\u307E\u305B\u3093\u3002**\u307E\u305F\u3001**[\u30EA\u30F3\u30AF](https://docusaurus.io/)**\u3084**`\u30B3\u30FC\u30C9`**\u306E\u3059\u3050\u5916\u5074\u306B`**`\u3001\u305D\u306E\u3055\u3089\u306B\u5916\u5074\u306B\u53E5\u8AAD\u70B9\u4EE5\u5916\u304C\u3042\u308B\u5834\u5408\u3082\u540C\u69D8\u3067\u3059\u3002\n"})}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"See the detailed conditions and how to upgrade"}),(0,r.jsxs)(n.p,{children:["If ",(0,r.jsx)(n.code,{children:"*"})," or ",(0,r.jsx)(n.code,{children:"**"})," matches either of the following conditions, it will not work as the beginning of an emphasis mark anymore:"]}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["The next character is a space (e.g. ",(0,r.jsx)(n.code,{children:"word* word"}),")"]}),"\n",(0,r.jsxs)(n.li,{children:["The previous character is a punctuation character and the next character is a letter (not a space or punctuation character) (e.g. ",(0,r.jsx)(n.code,{children:"\u6587**\uFF08\u6587\uFF09"}),")"]}),"\n"]}),(0,r.jsxs)(n.p,{children:["On the contrary, if ",(0,r.jsx)(n.code,{children:"*"})," or ",(0,r.jsx)(n.code,{children:"**"})," matches either of the following conditions, it will not work as the end of an emphasis mark anymore:"]}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["The previous character is a space (e.g. ",(0,r.jsx)(n.code,{children:"word *word"}),")"]}),"\n",(0,r.jsxs)(n.li,{children:["The next character is a punctuation character and the previous character is a letter (e.g. ",(0,r.jsx)(n.code,{children:"\u6587\u3002**\u6587"}),")"]}),"\n"]}),(0,r.jsxs)(n.p,{children:["\u201CA punctuation character\u201D includes non-ASCII ones, brackets, quotation marks and some symbols including ",(0,r.jsx)(n.code,{children:"%"})," and ",(0,r.jsx)(n.code,{children:"@"}),". More strictly speaking, a character whose 2-letters Unicode category starts with ",(0,r.jsx)(n.code,{children:"P"})," is treated as a punctuation character here."]}),(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"tip",children:[(0,r.jsx)(n.p,{children:"If the offending emphasis mark is next to a space, move the space out of the range of emphasis:"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="english.md"',children:"**Do not end a range of emphasis with a space.** Or `**` will not work.\n"})}),(0,r.jsx)(n.p,{children:"If the offending emphasis mark is surrounded by both a punctuation character and a letter, you can fix it without modifying the content by:"}),(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Convert the document to MDX if it is a vanilla Markdown."}),"\n",(0,r.jsxs)(n.li,{children:["replace the offending emphasis mark with a raw HTML tag (",(0,r.jsx)(n.code,{children:"<em>"})," or ",(0,r.jsx)(n.code,{children:"<strong>"}),") instead:"]}),"\n"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-mdx",metastring:'title="japanese.mdx"',children:"<strong>\u300C\u3002\u300D\u306E\u5F8C\u306B\u6587\u3092\u7D9A\u3051\u308B\u3068`**`\u304C\u610F\u56F3\u3057\u305F\u52D5\u4F5C\u3092\u3057\u307E\u305B\u3093\u3002</strong>\u307E\u305F\u3001<strong>[\u30EA\u30F3\u30AF](https://docusaurus.io/)</strong>\u3084<strong>`\u30B3\u30FC\u30C9`</strong>\u306E\u3059\u3050\u5916\u5074\u306B`**`\u3001\u305D\u306E\u3055\u3089\u306B\u5916\u5074\u306B\u53E5\u8AAD\u70B9\u4EE5\u5916\u304C\u3042\u308B\u5834\u5408\u3082\u540C\u69D8\u3067\u3059\u3002\n"})}),(0,r.jsx)(n.p,{children:"While not an ideal solution, you can also either of the following without converting the document to MDX:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Move the most outside punctuation character out of the emphasis mark."}),"\n","\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="japanese.md"',children:"**\u300C\u3002\u300D\u306E\u5F8C\u306B\u6587\u3092\u7D9A\u3051\u308B\u3068`**`\u304C\u610F\u56F3\u3057\u305F\u52D5\u4F5C\u3092\u3057\u307E\u305B\u3093**\u3002\u307E\u305F\u3001[**\u30EA\u30F3\u30AF**](https://docusaurus.io/)\u3084\u30FB\u30FB\u30FB\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Put a space just outside of the offending ",(0,r.jsx)(n.code,{children:"*"})," or ",(0,r.jsx)(n.code,{children:"**"}),". This solution does not force you to convert the document to MDX."]}),"\n","\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",metastring:'title="japanese.md"',children:"**\u300C\u3002\u300D\u306E\u5F8C\u306B\u6587\u3092\u7D9A\u3051\u308B\u3068`**`\u304C\u610F\u56F3\u3057\u305F\u52D5\u4F5C\u3092\u3057\u307E\u305B\u3093\u3002** \u307E\u305F\u3001**[\u30EA\u30F3\u30AF](https://docusaurus.io/)** \u3084 **`\u30B3\u30FC\u30C9`** \u306E\u3059\u3050\u5916\u5074\u306B`**`\u3001\u305D\u306E\u3055\u3089\u306B\u5916\u5074\u306B\u53E5\u8AAD\u70B9\u4EE5\u5916\u304C\u3042\u308B\u5834\u5408\u3082\u540C\u69D8\u3067\u3059\u3002\n"})}),"\n"]}),"\n"]})]})]}),"\n",(0,r.jsx)(n.h3,{id:"mdx-plugins",children:"MDX plugins"}),"\n",(0,r.jsxs)(n.p,{children:["All the official packages (Unified, Remark, Rehype...) in the MDX ecosystem are now ",(0,r.jsx)(n.a,{href:"https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c",children:(0,r.jsx)(n.strong,{children:"ES Modules only"})})," and do not support ",(0,r.jsx)(n.a,{href:"https://nodejs.org/api/modules.html#modules-commonjs-modules",children:"CommonJS"})," anymore."]}),"\n",(0,r.jsxs)(n.p,{children:["In practice this means that you can't do ",(0,r.jsx)(n.code,{children:'require("remark-plugin")'})," anymore."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"tip",children:[(0,r.jsxs)(n.p,{children:["Docusaurus v3 now supports ",(0,r.jsx)(n.a,{href:"https://flaviocopes.com/es-modules/",children:(0,r.jsx)(n.strong,{children:"ES Modules"})})," configuration files. We recommend that you migrate your config file to ES module, that enables you to import the Remark plugins easily:"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"import remarkPlugin from 'remark-plugin';\n\nexport default {\n title: 'Docusaurus',\n /* site config using remark plugins here */\n};\n"})}),(0,r.jsxs)(n.p,{children:["If you want to keep using CommonJS modules, you can use dynamic imports as a workaround that enables you to import ES modules inside a CommonJS module. Fortunately, the ",(0,r.jsx)(n.a,{href:"/docs/configuration#syntax-to-declare-docusaurus-config",children:"Docusaurus config supports the usage of an async function"})," to let you do so."]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"module.exports = async function () {\n const myPlugin = (await import('remark-plugin')).default;\n return {\n // site config...\n };\n};\n"})})]}),"\n",(0,r.jsx)(n.admonition,{title:"For plugin authors",type:"info",children:(0,r.jsxs)(n.p,{children:["If you created custom Remark or Rehype plugins, you may need to refactor those, or eventually rewrite them completely, due to how the new AST is structured. We have created a ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9337",children:"dedicated support discussion"})," to help plugin authors upgrade their code."]})}),"\n",(0,r.jsx)(n.h3,{id:"formatters",children:"Formatters"}),"\n",(0,r.jsxs)(n.p,{children:["Prettier, the most common formatter, supports only the legacy MDX v1, not v3 yet as of Docusaurus v3.0.0. You can add ",(0,r.jsx)(n.code,{children:"{/* prettier-ignore */}"})," before the incompatible parts of your code to make it work with Prettier."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-mdx",children:"{/* prettier-ignore */}\n<SomeComponent>Some long text in the component</SomeComponent>\n"})}),"\n",(0,r.jsxs)(n.p,{children:["If you get tired of too many ",(0,r.jsx)(n.code,{children:"{/* prettier-ignore */}"})," insertions, you can consider disabling MDX formatting by Prettier by adding the following to your ",(0,r.jsx)(n.code,{children:".prettierignore"})," file, until it starts supporting MDX v3:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-txt",metastring:'title=".prettierignore"',children:"*.mdx\n"})}),"\n",(0,r.jsx)(n.h2,{id:"other-breaking-changes",children:"Other Breaking Changes"}),"\n",(0,r.jsx)(n.p,{children:"Apart the MDX v3 upgrade, here is an exhaustive list of breaking changes coming with Docusaurus v3."}),"\n",(0,r.jsx)(n.h3,{id:"nodejs-v180",children:"Node.js v18.0"}),"\n",(0,r.jsxs)(n.p,{children:["Node.js 16 ",(0,r.jsx)(n.a,{href:"https://nodejs.org/en/blog/announcements/nodejs16-eol",children:"reached End-of-Life"}),", and Docusaurus v3 now requires ",(0,r.jsx)(n.strong,{children:"Node.js >= 18.0"}),"."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"tip",children:[(0,r.jsx)(n.p,{children:"Install Node.js 18.0+ on your computer."}),(0,r.jsx)(n.p,{children:"Eventually, configure your continuous integration, CDN or host to use this new Node.js version."}),(0,r.jsxs)(n.p,{children:["You can also update your site ",(0,r.jsx)(n.code,{children:"package.json"})," to prevent usage of an older unsupported version:"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="package.json"',children:' {\n "engines": {\n- "node": ">=16.14"\n+ "node": ">=18.0"\n }\n }\n'})}),(0,r.jsx)(n.p,{children:"Upgrade your Docusaurus v2 site to Node.js 18 before upgrading to Docusaurus v3."})]}),"\n",(0,r.jsx)(n.h3,{id:"react-v180",children:"React v18.0+"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus v3 now requires ",(0,r.jsx)(n.strong,{children:"React >= 18.0"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"React 18 comes with its own breaking changes that should be relatively easy to handle, depending on the amount of custom React code you created for your site. The official themes and plugins are compatible with React 18."}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsxs)(n.p,{children:["Read the official ",(0,r.jsx)(n.a,{href:"https://react.dev/blog/2022/03/29/react-v18",children:"React v18.0"})," and ",(0,r.jsx)(n.a,{href:"https://react.dev/blog/2022/03/08/react-18-upgrade-guide",children:"How to Upgrade to React 18"}),", and look at your own React code to figure out which components might be affected this upgrade."]}),(0,r.jsx)(n.p,{children:"We recommend to particularly look for:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Automatic batching for stateful components"}),"\n",(0,r.jsx)(n.li,{children:"New React hydration errors reported to the console"}),"\n"]})]}),"\n",(0,r.jsxs)(n.admonition,{title:"Experimental support for React 18 features",type:"danger",children:[(0,r.jsx)(n.p,{children:"React 18 comes with new features:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"<Suspense>"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"React.lazy()"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"startTransition"})}),"\n"]}),(0,r.jsx)(n.p,{children:"Their Docusaurus support is considered as experimental. We might have to adjust the integration in the future, leading to a different runtime behavior."})]}),"\n",(0,r.jsx)(n.h3,{id:"prism-react-renderer-v20",children:"Prism-React-Renderer v2.0+"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus v3 upgrades ",(0,r.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer",children:(0,r.jsx)(n.code,{children:"prism-react-renderer"})})," to v2.0+. This library is used for code block syntax highlighting."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsxs)(n.p,{children:["This is a new major library version containing breaking changes, and we can't guarantee a strict retro-compatibility. The ",(0,r.jsxs)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer/releases/tag/prism-react-renderer%402.0.0",children:[(0,r.jsx)(n.code,{children:"prism-react-renderer"})," v2 release notes"]})," are not super exhaustive, but there are 3 major changes to be aware of for Docusaurus users."]}),(0,r.jsx)(n.p,{children:"The dependency should be upgraded:"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="package.json"',children:' {\n "dependencies": {\n- "prism-react-renderer": "^1.3.5",\n+ "prism-react-renderer": "^2.1.0",\n }\n'})}),(0,r.jsx)(n.p,{children:"The API to import themes in your Docusaurus config file has been updated:"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="docusaurus.config.js"',children:"- const lightTheme = require('prism-react-renderer/themes/github');\n- const darkTheme = require('prism-react-renderer/themes/dracula');\n+ const {themes} = require('prism-react-renderer');\n+ const lightTheme = themes.github;\n+ const darkTheme = themes.dracula;\n"})}),(0,r.jsxs)(n.p,{children:["Previously, ",(0,r.jsx)(n.code,{children:"react-prism-render"})," v1 ",(0,r.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer/blob/v1.3.5/src/vendor/prism/includeLangs.js",children:"included more languages by default"}),". From v2.0+, ",(0,r.jsx)(n.a,{href:"https://github.com/FormidableLabs/prism-react-renderer/blob/prism-react-renderer%402.1.0/packages/generate-prism-languages/index.ts#L9",children:"less languages are included by default"}),". You may need to add extra languages to your Docusaurus config:"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"const siteConfig = {\n themeConfig: {\n prism: {\n // highlight-next-line\n additionalLanguages: ['bash', 'diff', 'json'],\n },\n },\n};\n"})})]}),"\n",(0,r.jsx)(n.h3,{id:"react-live-v40",children:"React-Live v4.0+"}),"\n",(0,r.jsxs)(n.p,{children:["For users of the ",(0,r.jsx)(n.code,{children:"@docusaurus/theme-live-codeblock"})," package, Docusaurus v3 upgrades ",(0,r.jsx)(n.a,{href:"https://github.com/FormidableLabs/react-live",children:(0,r.jsx)(n.code,{children:"react-live"})})," to v4.0+."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsx)(n.p,{children:"In theory, you have nothing to do, and your existing interactive code blocks should keep working as before."}),(0,r.jsxs)(n.p,{children:["However, this is a new major library version containing breaking changes, and we can't guarantee a strict retro-compatibility. Read the ",(0,r.jsx)(n.a,{href:"https://github.com/FormidableLabs/react-live/releases/tag/v3.0.0",children:"v3"})," and ",(0,r.jsx)(n.a,{href:"https://github.com/FormidableLabs/react-live/releases/tag/v4.0.0",children:"v4"})," changelogs in case of problems."]})]}),"\n",(0,r.jsx)(n.h3,{id:"remark-emoji-v40",children:"remark-emoji v4.0+"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus v3 upgrades ",(0,r.jsx)(n.a,{href:"https://github.com/rhysd/remark-emoji",children:(0,r.jsx)(n.code,{children:"remark-emoji"})})," to v4.0+. This library is to support ",(0,r.jsx)(n.code,{children:":emoji:"})," shortcuts in Markdown."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsxs)(n.p,{children:["Most Docusaurus users have nothing to do. Users of emoji shortcodes should read the ",(0,r.jsx)(n.a,{href:"https://github.com/rhysd/remark-emoji/blob/master/CHANGELOG.md",children:"changelog"})," and double-check their emojis keep rendering as expected."]}),(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Breaking Change"})," Update ",(0,r.jsx)(n.a,{href:"https://www.npmjs.com/package/node-emoji",children:"node-emoji"})," from v1 to v2. This change introduces support for many new emojis and removes old emoji short codes which are no longer valid on GitHub."]}),"\n"]})]}),"\n",(0,r.jsx)(n.h3,{id:"mermaid-v104",children:"Mermaid v10.4+"}),"\n",(0,r.jsxs)(n.p,{children:["For users of the ",(0,r.jsx)(n.code,{children:"@docusaurus/theme-mermaid"})," package, Docusaurus v3 upgrades ",(0,r.jsx)(n.a,{href:"https://github.com/mermaid-js/mermaid",children:(0,r.jsx)(n.code,{children:"mermaid"})})," to v10.4+."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsx)(n.p,{children:"In theory, you have nothing to do, and your existing diagrams should keep working as before."}),(0,r.jsxs)(n.p,{children:["However, this is a new major library version containing breaking changes, and we can't guarantee a strict retro-compatibility. Read the ",(0,r.jsx)(n.a,{href:"https://github.com/mermaid-js/mermaid/releases/tag/v10.0.0",children:"v10"})," changelog in case of problem."]})]}),"\n",(0,r.jsx)(n.h3,{id:"typescript-v51",children:"TypeScript v5.1+"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus v3 now requires ",(0,r.jsx)(n.strong,{children:"TypeScript >= 5.1"}),"."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsx)(n.p,{children:"Upgrade your dependencies to use TypeScript 5+"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="package.json"',children:' {\n "devDependencies": {\n- "typescript": "~4.7.4"\n+ "typescript": "~5.2.2"\n }\n }\n'})})]}),"\n",(0,r.jsx)(n.h3,{id:"typescript-base-config",children:"TypeScript base config"}),"\n",(0,r.jsxs)(n.p,{children:["The official Docusaurus TypeScript config has been re-internalized from the external package ",(0,r.jsx)(n.a,{href:"https://www.npmjs.com/package/@tsconfig/docusaurus",children:(0,r.jsx)(n.code,{children:"@tsconfig/docusaurus"})})," to our new monorepo package ",(0,r.jsx)(n.a,{href:"https://www.npmjs.com/package/@docusaurus/tsconfig",children:(0,r.jsx)(n.code,{children:"@docusaurus/tsconfig"})}),"."]}),"\n",(0,r.jsx)(n.p,{children:"This new package is versioned alongside all the other Docusaurus core packages, and will be used to ensure TypeScript retro-compatibility and breaking changes on major version upgrades."}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsx)(n.p,{children:"Swap the external TypeScript config package for the new official one"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="package.json"',children:' {\n "devDependencies": {\n- "@tsconfig/docusaurus": "^1.0.7",\n+ "@docusaurus/tsconfig": "3.0.0",\n }\n }\n'})}),(0,r.jsxs)(n.p,{children:["Use it in your ",(0,r.jsx)(n.code,{children:"tsconfig.json"})," file:"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="tsconfig.json"',children:' {\n- "extends": "@tsconfig/docusaurus/tsconfig.json",\n+ "extends": "@docusaurus/tsconfig",\n "compilerOptions": {\n "baseUrl": "."\n }\n }\n'})})]}),"\n",(0,r.jsx)(n.h3,{id:"new-config-loader",children:"New Config Loader"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus v3 changes its internal config loading library from ",(0,r.jsx)(n.a,{href:"https://github.com/sindresorhus/import-fresh",children:(0,r.jsx)(n.code,{children:"import-fresh"})})," to ",(0,r.jsx)(n.a,{href:"https://github.com/unjs/jiti",children:(0,r.jsx)(n.code,{children:"jiti"})}),". It is responsible for loading files such as ",(0,r.jsx)(n.code,{children:"docusaurus.config.js"})," or ",(0,r.jsx)(n.code,{children:"sidebars.js"}),", and Docusaurus plugins."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsx)(n.p,{children:"In theory, you have nothing to do, and your existing config files should keep working as before."}),(0,r.jsx)(n.p,{children:"However, this is a major dependency swap and subtle behavior changes could occur."})]}),"\n",(0,r.jsx)(n.h3,{id:"admonition-warning",children:"Admonition Warning"}),"\n",(0,r.jsxs)(n.p,{children:["For historical reasons, we support an undocumented admonition ",(0,r.jsx)(n.code,{children:":::warning"})," that renders with a red color."]}),"\n",(0,r.jsx)(n.admonition,{title:"Warning",type:"danger",children:(0,r.jsxs)(n.p,{children:["This is a Docusaurus v2 ",(0,r.jsx)(n.code,{children:":::warning"})," admonition."]})}),"\n",(0,r.jsxs)(n.p,{children:["However, the color and icon have always been wrong. Docusaurus v3 re-introduces ",(0,r.jsx)(n.code,{children:":::warning"})," admonition officially, documents it, and fix the color and icon."]}),"\n",(0,r.jsx)(n.admonition,{type:"warning",children:(0,r.jsxs)(n.p,{children:["This is a Docusaurus v3 ",(0,r.jsx)(n.code,{children:":::warning"})," admonition."]})}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsxs)(n.p,{children:["If you previously used the undocumented ",(0,r.jsx)(n.code,{children:":::warning"})," admonition, make sure to verify for each usage if yellow is now an appropriate color. If you want to keep the red color, use ",(0,r.jsx)(n.code,{children:":::danger"})," instead."]}),(0,r.jsxs)(n.p,{children:["Docusaurus v3 also ",(0,r.jsxs)(n.a,{href:"https://github.com/facebook/docusaurus/pull/9308",children:["deprecated the ",(0,r.jsx)(n.code,{children:":::caution"})]})," admonition. Please refactor ",(0,r.jsx)(n.code,{children:":::caution"})," (yellow) to either ",(0,r.jsx)(n.code,{children:":::warning"})," (yellow) or ",(0,r.jsx)(n.code,{children:":::danger"})," (red)."]}),(0,r.jsxs)(n.p,{children:["If you want to keep the title \u201Ccaution\u201D, you might want to refactor it to ",(0,r.jsx)(n.code,{children:":::warning[caution]"})," (yellow)."]})]}),"\n",(0,r.jsx)(n.h3,{id:"versioned-sidebars",children:"Versioned Sidebars"}),"\n",(0,r.jsxs)(n.p,{children:["This breaking change will only affect ",(0,r.jsx)(n.strong,{children:"Docusaurus v2 early adopters"})," who versioned their docs before ",(0,r.jsx)(n.code,{children:"v2.0.0-beta.10"})," (December 2021)."]}),"\n",(0,r.jsxs)(n.p,{children:["When creating version ",(0,r.jsx)(n.code,{children:"v1.0.0"}),", the sidebar file contained a prefix ",(0,r.jsx)(n.code,{children:"version-v1.0.0/"})," that ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/pull/9310",children:"Docusaurus v3 does not support anymore"}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-json",metastring:'title="versioned_sidebars/version-v1.0.0-sidebars.json"',children:'{\n "version-v1.0.0/docs": [\n "version-v1.0.0/introduction",\n "version-v1.0.0/prerequisites"\n ]\n}\n'})}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsx)(n.p,{children:"Remove the useless versioned prefix from your versioned sidebars."}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-json",metastring:'title="versioned_sidebars/version-v1.0.0-sidebars.json"',children:'{\n "docs": ["introduction", "prerequisites"]\n}\n'})})]}),"\n",(0,r.jsx)(n.h3,{id:"blog-feed-limit",children:"Blog Feed Limit"}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"@docusaurus/plugin-content-blog"})," now limits the RSS feed to the last 20 entries by default. For large Docusaurus blogs, this is a more sensible default value to avoid an increasingly large RSS file."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsxs)(n.p,{children:['In case you don\'t like this new default behavior, you can revert to the former "unlimited feed" behavior with the new ',(0,r.jsx)(n.code,{children:"limit: false"})," feed option:"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"const blogOptions = {\n feedOptions: {\n // highlight-next-line\n limit: false,\n },\n};\n"})})]}),"\n",(0,r.jsx)(n.h3,{id:"docs-theme-refactoring",children:"Docs Theme Refactoring"}),"\n",(0,r.jsxs)(n.p,{children:["For users that swizzled docs-related theme components (like ",(0,r.jsx)(n.code,{children:"@theme/DocPage"}),"), these components have been significantly refactor to make it easier to customize."]}),"\n",(0,r.jsxs)(n.p,{children:["Technically, ",(0,r.jsx)(n.strong,{children:"this is not a breaking change"})," because these components are ",(0,r.jsx)(n.strong,{children:"flagged as unsafe to swizzle"}),", however many Docusaurus sites ejected docs-related components, and will be interested to know their customizations might break Docusaurus."]}),"\n",(0,r.jsxs)(n.admonition,{title:"How to upgrade",type:"info",children:[(0,r.jsx)(n.p,{children:"Delete all your swizzled components, re-swizzle them, and re-apply your customizations on top of the newly updated components."}),(0,r.jsxs)(n.p,{children:["Alternatively, you can look at the ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/pull/7966",children:"pull-request notes"})," to understand the new theme component tree structure, and eventually try to patch your swizzled components manually."]})]}),"\n",(0,r.jsx)(n.h2,{id:"optional-changes",children:"Optional Changes"}),"\n",(0,r.jsx)(n.p,{children:"Some changes are not mandatory, but remain useful to be aware of to plainly leverage Docusaurus v3."}),"\n",(0,r.jsx)(n.h3,{id:"automatic-jsx-runtime",children:"Automatic JSX runtime"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus v3 now uses the React 18 ",(0,r.jsx)(n.a,{href:"https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html",children:'"automatic" JSX runtime'}),"."]}),"\n",(0,r.jsx)(n.p,{children:"It is not needed anymore to import React in JSX files that do not use any React API."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:'title="src/components/MyComponent.js"',children:"- import React from 'react';\n\n export default function MyComponent() {\n return <div>Hello</div>;\n }\n"})}),"\n",(0,r.jsx)(n.h3,{id:"esm-and-typescript-configs",children:"ESM and TypeScript Configs"}),"\n",(0,r.jsx)(n.p,{children:"Docusaurus v3 supports ESM and TypeScript config files, and it might be a good idea to adopt those new options."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n title: 'Docusaurus',\n url: 'https://docusaurus.io',\n // your site config ...\n};\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="docusaurus.config.ts"',children:"import type {Config} from '@docusaurus/types';\nimport type * as Preset from '@docusaurus/preset-classic';\n\nconst config: Config = {\n title: 'My Site',\n favicon: 'img/favicon.ico',\n presets: [\n [\n 'classic',\n {\n /* Your preset config here */\n } satisfies Preset.Options,\n ],\n ],\n\n themeConfig: {\n /* Your theme config here */\n } satisfies Preset.ThemeConfig,\n};\n\nexport default config;\n"})}),"\n",(0,r.jsxs)(n.h3,{id:"using-the-mdx-extension",children:["Using the ",(0,r.jsx)(n.code,{children:".mdx"})," extension"]}),"\n",(0,r.jsxs)(n.p,{children:["We recommend using the ",(0,r.jsx)(n.code,{children:".mdx"})," extension whenever you use JSX, ",(0,r.jsx)(n.code,{children:"import"}),", or ",(0,r.jsx)(n.code,{children:"export"})," (i.e. MDX features) inside a Markdown file. It is semantically more correct and improves compatibility with external tools (IDEs, formatters, linters, etc.)."]}),"\n",(0,r.jsxs)(n.p,{children:["In future versions of Docusaurus, ",(0,r.jsx)(n.code,{children:".md"})," files will be parsed as standard ",(0,r.jsx)(n.a,{href:"https://commonmark.org/",children:"CommonMark"}),", which does not support these features. In Docusaurus v3, ",(0,r.jsx)(n.code,{children:".md"})," files keep being compiled as MDX files, but it will be possible to ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/issues/3018",children:"opt-in for CommonMark"}),"."]}),"\n",(0,r.jsx)(n.h3,{id:"upgrading-math-packages",children:"Upgrading math packages"}),"\n",(0,r.jsxs)(n.p,{children:["If you use Docusaurus to render ",(0,r.jsx)(n.a,{href:"/docs/markdown-features/math-equations",children:"Math Equations"}),", you should upgrade the MDX plugins."]}),"\n",(0,r.jsxs)(n.p,{children:["Make sure to use ",(0,r.jsx)(n.code,{children:"remark-math 6"})," and ",(0,r.jsx)(n.code,{children:"rehype-katex 7"})," for Docusaurus v3 (using MDX v3). We can't guarantee other versions will work."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",metastring:"package.json",children:'{\n- "remark-math": "^3.0.0",\n+ "remark-math": "^6.0.0",\n- "rehype-katex": "^5.0.0"\n+ "rehype-katex": "^7.0.0"\n}\n'})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"hast-util-is-element"})," is now unnecessary in Docusaurus v3. If you have installed it and don't use it somewhere else, you can just remove it by running ",(0,r.jsx)(n.code,{children:"npm uninstall hast-util-is-element"}),"."]}),"\n",(0,r.jsx)(n.h3,{id:"turn-off-mdx-v1-compat",children:"Turn off MDX v1 compat"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus v3 comes with ",(0,r.jsx)(n.a,{href:"/docs/api/docusaurus-config#markdown",children:"MDX v1 compatibility options"}),", that are turned on by default."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n markdown: {\n mdx1Compat: {\n comments: true,\n admonitions: true,\n headingIds: true,\n },\n },\n};\n"})}),"\n",(0,r.jsxs)(n.h4,{id:"comments-option",children:[(0,r.jsx)(n.code,{children:"comments"})," option"]}),"\n",(0,r.jsx)(n.p,{children:"This option allows the usage of HTML comments inside MDX, while HTML comments are officially not supported anymore."}),"\n",(0,r.jsxs)(n.p,{children:["For MDX files, we recommend to progressively use MDX ",(0,r.jsx)(n.code,{children:"{/* comments */}"})," instead of HTML ",(0,r.jsx)(n.code,{children:"<!-- comments -->"}),", and then turn this compatibility option off."]}),"\n",(0,r.jsx)(n.admonition,{title:"Blog truncate marker",type:"info",children:(0,r.jsxs)(n.p,{children:["The default blog truncate marker now supports both ",(0,r.jsx)(n.code,{children:"<!-- truncate -->"})," and ",(0,r.jsx)(n.code,{children:"{/* truncate */}"}),"."]})}),"\n",(0,r.jsxs)(n.h4,{id:"admonitions-option",children:[(0,r.jsx)(n.code,{children:"admonitions"})," option"]}),"\n",(0,r.jsxs)(n.p,{children:["This option allows the usage of the Docusaurus v2 ",(0,r.jsx)(n.a,{href:"/docs/markdown-features/admonitions#specifying-title",children:"admonition title"})," syntax:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:":::note\xa0Your Title\n\ncontent\n\n:::\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus now implements admonitions with ",(0,r.jsx)(n.a,{href:"https://talk.commonmark.org/t/generic-directives-plugins-syntax/444",children:"Markdown Directives"})," (implemented with ",(0,r.jsx)(n.a,{href:"https://github.com/remarkjs/remark-directive",children:"remark-directive"}),"), and the syntax to provide a directive label requires square brackets:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:":::note[Your Title]\n\ncontent\n\n:::\n"})}),"\n",(0,r.jsx)(n.p,{children:"We recommend to progressively use the new Markdown directive label syntax, and then turn this compatibility option off."}),"\n",(0,r.jsxs)(n.h4,{id:"headingids-option",children:[(0,r.jsx)(n.code,{children:"headingIds"})," option"]}),"\n",(0,r.jsxs)(n.p,{children:["This option allows the usage of the Docusaurus v2 ",(0,r.jsx)(n.a,{href:"/docs/markdown-features/toc#heading-ids",children:"explicit heading id"})," syntax:"]}),"\n",(0,r.jsx)(i,{language:"md",children:"### Hello World {#my-explicit-id}\n"}),"\n",(0,r.jsxs)(n.p,{children:["This syntax is now invalid MDX, and would require to escape the ",(0,r.jsx)(n.code,{children:"{"})," character: ",(0,r.jsx)(n.code,{children:"\\{#my-explicit-id}"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"We recommend to keep this compatibility option on for now, until we provide a new syntax compatible with newer versions of MDX."}),"\n",(0,r.jsx)(n.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,r.jsx)(n.p,{children:"In case of any upgrade problem, the first things to try are:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["make sure all your docs compile in the ",(0,r.jsx)(n.a,{href:"https://mdxjs.com/playground/",children:"MDX playground"}),", or using ",(0,r.jsx)(n.a,{href:"https://github.com/slorber/docusaurus-mdx-checker",children:(0,r.jsx)(n.code,{children:"npx docusaurus-mdx-checker"})})]}),"\n",(0,r.jsxs)(n.li,{children:["delete ",(0,r.jsx)(n.code,{children:"node_modules"})," and ",(0,r.jsx)(n.code,{children:"package-lock.json"}),", and then run ",(0,r.jsx)(n.code,{children:"npm install"})," again"]}),"\n",(0,r.jsxs)(n.li,{children:["run ",(0,r.jsx)(n.code,{children:"docusaurus clear"})," to clear the caches"]}),"\n",(0,r.jsx)(n.li,{children:"remove third-party plugins that might not support Docusaurus v3"}),"\n",(0,r.jsx)(n.li,{children:"delete all your swizzled components"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Once you have tried that, you can ask for support through the following support channels:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9336",children:"Docusaurus v3 - Upgrade Support"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://discord.com/channels/398180168688074762/1154771869094912090",children:"Docusaurus v3 - Discord channel #migration-v2-to-v3"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9053",children:"MDX v3 - Upgrade Support"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9337",children:"MDX v3 - Remark/Rehype Plugins Support"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://discord.com/channels/398180168688074762/1116724556976111616",children:"MDX v3 - Discord channel #migration-mdx-v3"})}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["Please consider ",(0,r.jsx)(n.strong,{children:"our time is precious"}),". To ensure that your support request is not ignored, we kindly ask you to:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["provide a ",(0,r.jsx)(n.strong,{children:"minimal"})," reproduction that we can easily run, ideally created with ",(0,r.jsx)(n.a,{href:"https://docusaurus.new",children:"docusaurus.new"})]}),"\n",(0,r.jsx)(n.li,{children:"provide a live deployment url showing the problem in action (if your site can build)"}),"\n",(0,r.jsx)(n.li,{children:'explain clearly the problem, much more than an ambiguous "it doesn\'t work"'}),"\n",(0,r.jsx)(n.li,{children:"include as much relevant material as possible: code snippets, repo url, git branch urls, full stack traces, screenshots and videos"}),"\n",(0,r.jsx)(n.li,{children:"present your request clearly, concisely, showing us that you have made an effort to help us help you"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["Alternatively, you can look for a paid ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9281",children:"Docusaurus Service Provider"})," to execute this upgrade for you. If your site is open source, you can also ask our community for ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/discussions/9283",children:"free, benevolent help"}),"."]})]})}function h(e={}){let{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}function u(e,n){throw Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},43023:(e,n,s)=>{s.d(n,{R:()=>t,x:()=>a});var i=s(63696);let r={},o=i.createContext(r);function t(e){let n=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/82450.3d83f689.js b/assets/js/82450.3d83f689.js new file mode 100644 index 0000000000..ecd227c299 --- /dev/null +++ b/assets/js/82450.3d83f689.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[82450],{82450:(e,s,c)=>{c.d(s,{createPacketServices:()=>t.$});var t=c(12739);c(69663)}}]); \ No newline at end of file diff --git a/assets/js/82648.f8d28a64.js b/assets/js/82648.f8d28a64.js new file mode 100644 index 0000000000..42598c5e24 --- /dev/null +++ b/assets/js/82648.f8d28a64.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[82648],{82648:(t,e,r)=>{r.d(e,{DA:()=>h,IU:()=>G,U7:()=>Y,U_:()=>J,lC:()=>y,nM:()=>m,on:()=>V});var a=r(27923),i=r(67027),n=r(72912),s=r(89601);function l(t,e){e&&t.attr("style",e)}function d(t){let e=(0,s.Ltv)(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),a=t.label,i=t.isNode?"nodeLabel":"edgeLabel",n=r.append("span");return n.html(a),l(n,t.labelStyle),n.attr("class",i),l(r,t.labelStyle),r.style("display","inline-block"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}(0,n.K2)(l,"applyStyle"),(0,n.K2)(d,"addHtmlLabel");var h=(0,n.K2)((t,e,r,s)=>{let l=t||"";if("object"==typeof l&&(l=l[0]),(0,n._3)((0,n.D7)().flowchart.htmlLabels))return l=l.replace(/\\n|\n/g,"<br />"),n.Rm.debug("vertexText"+l),d({isNode:s,label:(0,a.hE)((0,i.Sm)(l)),labelStyle:e.replace("fill:","color:")});{let t=document.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",e.replace("color:","fill:"));for(let e of"string"==typeof l?l.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(l)?l:[]){let a=document.createElementNS("http://www.w3.org/2000/svg","tspan");a.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),a.setAttribute("dy","1em"),a.setAttribute("x","0"),r?a.setAttribute("class","title-row"):a.setAttribute("class","row"),a.textContent=e.trim(),t.appendChild(a)}return t}},"createLabel"),o=(0,n.K2)(async(t,e,r,l)=>{let d,o,y;let c=(0,n.D7)(),x=e.useHtmlLabels||(0,n._3)(c.flowchart.htmlLabels);d=r||"node default";let g=t.insert("g").attr("class",d).attr("id",e.domId||e.id),p=g.insert("g").attr("class","label").attr("style",e.labelStyle);o=void 0===e.labelText?"":"string"==typeof e.labelText?e.labelText:e.labelText[0];let w=p.node(),u=(y="markdown"===e.labelType?(0,a.GZ)(p,(0,n.jZ)((0,i.Sm)(o),c),{useHtmlLabels:x,width:e.width||c.flowchart.wrappingWidth,classes:"markdown-node-label"},c):w.appendChild(h((0,n.jZ)((0,i.Sm)(o),c),e.labelStyle,!1,l))).getBBox(),f=e.padding/2;if((0,n._3)(c.flowchart.htmlLabels)){let t=y.children[0],e=(0,s.Ltv)(y),r=t.getElementsByTagName("img");if(r){let t=""===o.replace(/<img[^>]*>/g,"").trim();await Promise.all([...r].map(e=>new Promise(r=>{function a(){if(e.style.display="flex",e.style.flexDirection="column",t){let t=5*parseInt(c.fontSize?c.fontSize:window.getComputedStyle(document.body).fontSize,10)+"px";e.style.minWidth=t,e.style.maxWidth=t}else e.style.width="100%";r(e)}(0,n.K2)(a,"setupImage"),setTimeout(()=>{e.complete&&a()}),e.addEventListener("error",a),e.addEventListener("load",a)})))}u=t.getBoundingClientRect(),e.attr("width",u.width),e.attr("height",u.height)}return x?p.attr("transform","translate("+-u.width/2+", "+-u.height/2+")"):p.attr("transform","translate(0, "+-u.height/2+")"),e.centerLabel&&p.attr("transform","translate("+-u.width/2+", "+-u.height/2+")"),p.insert("rect",":first-child"),{shapeSvg:g,bbox:u,halfPadding:f,label:p}},"labelHelper"),y=(0,n.K2)((t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds");function c(t,e,r,a){return t.insert("polygon",":first-child").attr("points",a.map(function(t){return t.x+","+t.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}(0,n.K2)(c,"insertPolygonShape");var x=(0,n.K2)(t=>{let e=new Set;for(let r of t)switch(r){case"x":e.add("right"),e.add("left");break;case"y":e.add("up"),e.add("down");break;default:e.add(r)}return e},"expandAndDeduplicateDirections"),g=(0,n.K2)((t,e,r)=>{let a=x(t),i=e.height+2*r.padding,n=i/2,s=e.width+2*n+r.padding,l=r.padding/2;return a.has("right")&&a.has("left")&&a.has("up")&&a.has("down")?[{x:0,y:0},{x:n,y:0},{x:s/2,y:2*l},{x:s-n,y:0},{x:s,y:0},{x:s,y:-i/3},{x:s+2*l,y:-i/2},{x:s,y:-2*i/3},{x:s,y:-i},{x:s-n,y:-i},{x:s/2,y:-i-2*l},{x:n,y:-i},{x:0,y:-i},{x:0,y:-2*i/3},{x:-2*l,y:-i/2},{x:0,y:-i/3}]:a.has("right")&&a.has("left")&&a.has("up")?[{x:n,y:0},{x:s-n,y:0},{x:s,y:-i/2},{x:s-n,y:-i},{x:n,y:-i},{x:0,y:-i/2}]:a.has("right")&&a.has("left")&&a.has("down")?[{x:0,y:0},{x:n,y:-i},{x:s-n,y:-i},{x:s,y:0}]:a.has("right")&&a.has("up")&&a.has("down")?[{x:0,y:0},{x:s,y:-n},{x:s,y:-i+n},{x:0,y:-i}]:a.has("left")&&a.has("up")&&a.has("down")?[{x:s,y:0},{x:0,y:-n},{x:0,y:-i+n},{x:s,y:-i}]:a.has("right")&&a.has("left")?[{x:n,y:0},{x:n,y:-l},{x:s-n,y:-l},{x:s-n,y:0},{x:s,y:-i/2},{x:s-n,y:-i},{x:s-n,y:-i+l},{x:n,y:-i+l},{x:n,y:-i},{x:0,y:-i/2}]:a.has("up")&&a.has("down")?[{x:s/2,y:0},{x:0,y:-l},{x:n,y:-l},{x:n,y:-i+l},{x:0,y:-i+l},{x:s/2,y:-i},{x:s,y:-i+l},{x:s-n,y:-i+l},{x:s-n,y:-l},{x:s,y:-l}]:a.has("right")&&a.has("up")?[{x:0,y:0},{x:s,y:-n},{x:0,y:-i}]:a.has("right")&&a.has("down")?[{x:0,y:0},{x:s,y:0},{x:0,y:-i}]:a.has("left")&&a.has("up")?[{x:s,y:0},{x:0,y:-n},{x:s,y:-i}]:a.has("left")&&a.has("down")?[{x:s,y:0},{x:0,y:0},{x:s,y:-i}]:a.has("right")?[{x:n,y:-l},{x:n,y:-l},{x:s-n,y:-l},{x:s-n,y:0},{x:s,y:-i/2},{x:s-n,y:-i},{x:s-n,y:-i+l},{x:n,y:-i+l},{x:n,y:-i+l}]:a.has("left")?[{x:n,y:0},{x:n,y:-l},{x:s-n,y:-l},{x:s-n,y:-i+l},{x:n,y:-i+l},{x:n,y:-i},{x:0,y:-i/2}]:a.has("up")?[{x:n,y:-l},{x:n,y:-i+l},{x:0,y:-i+l},{x:s/2,y:-i},{x:s,y:-i+l},{x:s-n,y:-i+l},{x:s-n,y:-l}]:a.has("down")?[{x:s/2,y:0},{x:0,y:-l},{x:n,y:-l},{x:n,y:-i+l},{x:s-n,y:-i+l},{x:s-n,y:-l},{x:s,y:-l}]:[{x:0,y:0}]},"getArrowPoints");function p(t,e,r,a){var i=t.x,n=t.y,s=i-a.x,l=n-a.y,d=Math.sqrt(e*e*l*l+r*r*s*s),h=Math.abs(e*r*s/d);a.x<i&&(h=-h);var o=Math.abs(e*r*l/d);return a.y<n&&(o=-o),{x:i+h,y:n+o}}function w(t,e,r){return p(t,e,e,r)}function u(t,e,r,a){var i,n,s,l,d,h,o,y,c,x,g,p,w;if(i=e.y-t.y,s=t.x-e.x,d=e.x*t.y-t.x*e.y,c=i*r.x+s*r.y+d,x=i*a.x+s*a.y+d,!(0!==c&&0!==x&&f(c,x))&&(n=a.y-r.y,l=r.x-a.x,h=a.x*r.y-r.x*a.y,o=n*t.x+l*t.y+h,y=n*e.x+l*e.y+h,!(0!==o&&0!==y&&f(o,y))&&0!=(g=i*l-n*s)))return p=Math.abs(g/2),{x:(w=s*h-l*d)<0?(w-p)/g:(w+p)/g,y:(w=n*d-i*h)<0?(w-p)/g:(w+p)/g}}function f(t,e){return t*e>0}function b(t,e,r){var a=t.x,i=t.y,n=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;"function"==typeof e.forEach?e.forEach(function(t){s=Math.min(s,t.x),l=Math.min(l,t.y)}):(s=Math.min(s,e.x),l=Math.min(l,e.y));for(var d=a-t.width/2-s,h=i-t.height/2-l,o=0;o<e.length;o++){var y=e[o],c=e[o<e.length-1?o+1:0],x=u(t,r,{x:d+y.x,y:h+y.y},{x:d+c.x,y:h+c.y});x&&n.push(x)}return n.length?(n.length>1&&n.sort(function(t,e){var a=t.x-r.x,i=t.y-r.y,n=Math.sqrt(a*a+i*i),s=e.x-r.x,l=e.y-r.y,d=Math.sqrt(s*s+l*l);return n<d?-1:n===d?0:1}),n[0]):t}(0,n.K2)(function(t,e){return t.intersect(e)},"intersectNode"),(0,n.K2)(p,"intersectEllipse"),(0,n.K2)(w,"intersectCircle"),(0,n.K2)(u,"intersectLine"),(0,n.K2)(f,"sameSign"),(0,n.K2)(b,"intersectPolygon");var m=(0,n.K2)((t,e)=>{var r,a,i=t.x,n=t.y,s=e.x-i,l=e.y-n,d=t.width/2,h=t.height/2;return Math.abs(l)*d>Math.abs(s)*h?(l<0&&(h=-h),r=0===l?0:h*s/l,a=h):(s<0&&(d=-d),r=d,a=0===s?0:d*l/s),{x:i+r,y:n+a}},"intersectRect"),v=(0,n.K2)(async(t,e)=>{e.useHtmlLabels||(0,n.D7)().flowchart.htmlLabels||(e.centerLabel=!0);let{shapeSvg:r,bbox:a,halfPadding:i}=await o(t,e,"node "+e.classes,!0);n.Rm.info("Classes = ",e.classes);let s=r.insert("rect",":first-child");return s.attr("rx",e.rx).attr("ry",e.ry).attr("x",-a.width/2-i).attr("y",-a.height/2-i).attr("width",a.width+e.padding).attr("height",a.height+e.padding),y(e,s),e.intersect=function(t){return m(e,t)},r},"note"),K=(0,n.K2)(t=>t?" "+t:"","formatClass"),L=(0,n.K2)((t,e)=>`${e||"node default"}${K(t.classes)} ${K(t.class)}`,"getClassesFromNode"),S=(0,n.K2)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await o(t,e,L(e,void 0),!0),i=a.width+e.padding+(a.height+e.padding),s=[{x:i/2,y:0},{x:i,y:-i/2},{x:i/2,y:-i},{x:0,y:-i/2}];n.Rm.info("Question main (Circle)");let l=c(r,i,i,s);return l.attr("style",e.style),y(e,l),e.intersect=function(t){return n.Rm.warn("Intersect called"),b(e,s,t)},r},"question"),D=(0,n.K2)((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);return r.insert("polygon",":first-child").attr("points",[{x:0,y:14},{x:14,y:0},{x:0,y:-14},{x:-14,y:0}].map(function(t){return t.x+","+t.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(t){return w(e,14,t)},r},"choice"),B=(0,n.K2)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await o(t,e,L(e,void 0),!0),i=a.height+e.padding,n=i/4,s=a.width+2*n+e.padding,l=[{x:n,y:0},{x:s-n,y:0},{x:s,y:-i/2},{x:s-n,y:-i},{x:n,y:-i},{x:0,y:-i/2}],d=c(r,s,i,l);return d.attr("style",e.style),y(e,d),e.intersect=function(t){return b(e,l,t)},r},"hexagon"),C=(0,n.K2)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await o(t,e,void 0,!0),i=a.height+2*e.padding,n=i/2,s=a.width+2*n+e.padding,l=g(e.directions,a,e),d=c(r,s,i,l);return d.attr("style",e.style),y(e,d),e.intersect=function(t){return b(e,l,t)},r},"block_arrow"),k=(0,n.K2)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await o(t,e,L(e,void 0),!0),i=a.width+e.padding,n=a.height+e.padding,s=[{x:-n/2,y:0},{x:i,y:0},{x:i,y:-n},{x:-n/2,y:-n},{x:0,y:-n/2}];return c(r,i,n,s).attr("style",e.style),e.width=i+n,e.height=n,e.intersect=function(t){return b(e,s,t)},r},"rect_left_inv_arrow"),R=(0,n.K2)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await o(t,e,L(e),!0),i=a.width+e.padding,n=a.height+e.padding,s=[{x:-2*n/6,y:0},{x:i-n/6,y:0},{x:i+2*n/6,y:-n},{x:n/6,y:-n}],l=c(r,i,n,s);return l.attr("style",e.style),y(e,l),e.intersect=function(t){return b(e,s,t)},r},"lean_right"),_=(0,n.K2)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await o(t,e,L(e,void 0),!0),i=a.width+e.padding,n=a.height+e.padding,s=[{x:2*n/6,y:0},{x:i+n/6,y:0},{x:i-2*n/6,y:-n},{x:-n/6,y:-n}],l=c(r,i,n,s);return l.attr("style",e.style),y(e,l),e.intersect=function(t){return b(e,s,t)},r},"lean_left"),T=(0,n.K2)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await o(t,e,L(e,void 0),!0),i=a.width+e.padding,n=a.height+e.padding,s=[{x:-2*n/6,y:0},{x:i+2*n/6,y:0},{x:i-n/6,y:-n},{x:n/6,y:-n}],l=c(r,i,n,s);return l.attr("style",e.style),y(e,l),e.intersect=function(t){return b(e,s,t)},r},"trapezoid"),I=(0,n.K2)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await o(t,e,L(e,void 0),!0),i=a.width+e.padding,n=a.height+e.padding,s=[{x:n/6,y:0},{x:i-n/6,y:0},{x:i+2*n/6,y:-n},{x:-2*n/6,y:-n}],l=c(r,i,n,s);return l.attr("style",e.style),y(e,l),e.intersect=function(t){return b(e,s,t)},r},"inv_trapezoid"),E=(0,n.K2)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await o(t,e,L(e,void 0),!0),i=a.width+e.padding,n=a.height+e.padding,s=[{x:0,y:0},{x:i+n/2,y:0},{x:i,y:-n/2},{x:i+n/2,y:-n},{x:0,y:-n}],l=c(r,i,n,s);return l.attr("style",e.style),y(e,l),e.intersect=function(t){return b(e,s,t)},r},"rect_right_inv_arrow"),N=(0,n.K2)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await o(t,e,L(e,void 0),!0),i=a.width+e.padding,n=i/2,s=n/(2.5+i/50),l=a.height+s+e.padding,d=r.attr("label-offset-y",s).insert("path",":first-child").attr("style",e.style).attr("d","M 0,"+s+" a "+n+","+s+" 0,0,0 "+i+" 0 a "+n+","+s+" 0,0,0 "+-i+" 0 l 0,"+l+" a "+n+","+s+" 0,0,0 "+i+" 0 l 0,"+-l).attr("transform","translate("+-i/2+","+-(l/2+s)+")");return y(e,d),e.intersect=function(t){let r=m(e,t),a=r.x-e.x;if(0!=n&&(Math.abs(a)<e.width/2||Math.abs(a)==e.width/2&&Math.abs(r.y-e.y)>e.height/2-s)){let i=s*s*(1-a*a/(n*n));0!=i&&(i=Math.sqrt(i)),i=s-i,t.y-e.y>0&&(i=-i),r.y+=i}return r},r},"cylinder"),M=(0,n.K2)(async(t,e)=>{let{shapeSvg:r,bbox:a,halfPadding:i}=await o(t,e,"node "+e.classes+" "+e.class,!0),s=r.insert("rect",":first-child"),l=e.positioned?e.width:a.width+e.padding,d=e.positioned?e.height:a.height+e.padding,h=e.positioned?-l/2:-a.width/2-i,c=e.positioned?-d/2:-a.height/2-i;if(s.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",h).attr("y",c).attr("width",l).attr("height",d),e.props){let t=new Set(Object.keys(e.props));e.props.borders&&(P(s,e.props.borders,l,d),t.delete("borders")),t.forEach(t=>{n.Rm.warn(`Unknown node property ${t}`)})}return y(e,s),e.intersect=function(t){return m(e,t)},r},"rect"),j=(0,n.K2)(async(t,e)=>{let{shapeSvg:r,bbox:a,halfPadding:i}=await o(t,e,"node "+e.classes,!0),s=r.insert("rect",":first-child"),l=e.positioned?e.width:a.width+e.padding,d=e.positioned?e.height:a.height+e.padding,h=e.positioned?-l/2:-a.width/2-i,c=e.positioned?-d/2:-a.height/2-i;if(s.attr("class","basic cluster composite label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",h).attr("y",c).attr("width",l).attr("height",d),e.props){let t=new Set(Object.keys(e.props));e.props.borders&&(P(s,e.props.borders,l,d),t.delete("borders")),t.forEach(t=>{n.Rm.warn(`Unknown node property ${t}`)})}return y(e,s),e.intersect=function(t){return m(e,t)},r},"composite"),A=(0,n.K2)(async(t,e)=>{let{shapeSvg:r}=await o(t,e,"label",!0);n.Rm.trace("Classes = ",e.class);let a=r.insert("rect",":first-child");if(a.attr("width",0).attr("height",0),r.attr("class","label edgeLabel"),e.props){let t=new Set(Object.keys(e.props));e.props.borders&&(P(a,e.props.borders,0,0),t.delete("borders")),t.forEach(t=>{n.Rm.warn(`Unknown node property ${t}`)})}return y(e,a),e.intersect=function(t){return m(e,t)},r},"labelRect");function P(t,e,r,a){let i=[],s=(0,n.K2)(t=>{i.push(t,0)},"addBorder"),l=(0,n.K2)(t=>{i.push(0,t)},"skipBorder");e.includes("t")?(n.Rm.debug("add top border"),s(r)):l(r),e.includes("r")?(n.Rm.debug("add right border"),s(a)):l(a),e.includes("b")?(n.Rm.debug("add bottom border"),s(r)):l(r),e.includes("l")?(n.Rm.debug("add left border"),s(a)):l(a),t.attr("stroke-dasharray",i.join(" "))}(0,n.K2)(P,"applyNodePropertyBorders");var O=(0,n.K2)((t,e)=>{let r;r=e.classes?"node "+e.classes:"node default";let a=t.insert("g").attr("class",r).attr("id",e.domId||e.id),i=a.insert("rect",":first-child"),l=a.insert("line"),d=a.insert("g").attr("class","label"),o=e.labelText.flat?e.labelText.flat():e.labelText,c="";c="object"==typeof o?o[0]:o,n.Rm.info("Label text abc79",c,o,"object"==typeof o);let x=d.node().appendChild(h(c,e.labelStyle,!0,!0)),g={width:0,height:0};if((0,n._3)((0,n.D7)().flowchart.htmlLabels)){let t=x.children[0],e=(0,s.Ltv)(x);g=t.getBoundingClientRect(),e.attr("width",g.width),e.attr("height",g.height)}n.Rm.info("Text 2",o);let p=o.slice(1,o.length),w=x.getBBox(),u=d.node().appendChild(h(p.join?p.join("<br/>"):p,e.labelStyle,!0,!0));if((0,n._3)((0,n.D7)().flowchart.htmlLabels)){let t=u.children[0],e=(0,s.Ltv)(u);g=t.getBoundingClientRect(),e.attr("width",g.width),e.attr("height",g.height)}let f=e.padding/2;return(0,s.Ltv)(u).attr("transform","translate( "+(g.width>w.width?0:(w.width-g.width)/2)+", "+(w.height+f+5)+")"),(0,s.Ltv)(x).attr("transform","translate( "+(g.width<w.width?0:-(w.width-g.width)/2)+", 0)"),g=d.node().getBBox(),d.attr("transform","translate("+-g.width/2+", "+(-g.height/2-f+3)+")"),i.attr("class","outer title-state").attr("x",-g.width/2-f).attr("y",-g.height/2-f).attr("width",g.width+e.padding).attr("height",g.height+e.padding),l.attr("class","divider").attr("x1",-g.width/2-f).attr("x2",g.width/2+f).attr("y1",-g.height/2-f+w.height+f).attr("y2",-g.height/2-f+w.height+f),y(e,i),e.intersect=function(t){return m(e,t)},a},"rectWithTitle"),U=(0,n.K2)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await o(t,e,L(e,void 0),!0),i=a.height+e.padding,n=a.width+i/4+e.padding,s=r.insert("rect",":first-child").attr("style",e.style).attr("rx",i/2).attr("ry",i/2).attr("x",-n/2).attr("y",-i/2).attr("width",n).attr("height",i);return y(e,s),e.intersect=function(t){return m(e,t)},r},"stadium"),$=(0,n.K2)(async(t,e)=>{let{shapeSvg:r,bbox:a,halfPadding:i}=await o(t,e,L(e,void 0),!0),s=r.insert("circle",":first-child");return s.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",a.width/2+i).attr("width",a.width+e.padding).attr("height",a.height+e.padding),n.Rm.info("Circle main"),y(e,s),e.intersect=function(t){return n.Rm.info("Circle intersect",e,a.width/2+i,t),w(e,a.width/2+i,t)},r},"circle"),q=(0,n.K2)(async(t,e)=>{let{shapeSvg:r,bbox:a,halfPadding:i}=await o(t,e,L(e,void 0),!0),s=r.insert("g",":first-child"),l=s.insert("circle"),d=s.insert("circle");return s.attr("class",e.class),l.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",a.width/2+i+5).attr("width",a.width+e.padding+10).attr("height",a.height+e.padding+10),d.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",a.width/2+i).attr("width",a.width+e.padding).attr("height",a.height+e.padding),n.Rm.info("DoubleCircle main"),y(e,l),e.intersect=function(t){return n.Rm.info("DoubleCircle intersect",e,a.width/2+i+5,t),w(e,a.width/2+i+5,t)},r},"doublecircle"),z=(0,n.K2)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await o(t,e,L(e,void 0),!0),i=a.width+e.padding,n=a.height+e.padding,s=[{x:0,y:0},{x:i,y:0},{x:i,y:-n},{x:0,y:-n},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-n},{x:-8,y:-n},{x:-8,y:0}],l=c(r,i,n,s);return l.attr("style",e.style),y(e,l),e.intersect=function(t){return b(e,s,t)},r},"subroutine"),H=(0,n.K2)((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a=r.insert("circle",":first-child");return a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),y(e,a),e.intersect=function(t){return w(e,7,t)},r},"start"),W=(0,n.K2)((t,e,r)=>{let a=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=70,n=10;return"LR"===r&&(i=10,n=70),y(e,a.append("rect").attr("x",-1*i/2).attr("y",-1*n/2).attr("width",i).attr("height",n).attr("class","fork-join")),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(t){return m(e,t)},a},"forkJoin"),F={rhombus:S,composite:j,question:S,rect:M,labelRect:A,rectWithTitle:O,choice:D,circle:$,doublecircle:q,stadium:U,hexagon:B,block_arrow:C,rect_left_inv_arrow:k,lean_right:R,lean_left:_,trapezoid:T,inv_trapezoid:I,rect_right_inv_arrow:E,cylinder:N,start:H,end:(0,n.K2)((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a=r.insert("circle",":first-child"),i=r.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),a.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),y(e,i),e.intersect=function(t){return w(e,7,t)},r},"end"),note:v,subroutine:z,fork:W,join:W,class_box:(0,n.K2)((t,e)=>{let r;let a=e.padding/2;r=e.classes?"node "+e.classes:"node default";let i=t.insert("g").attr("class",r).attr("id",e.domId||e.id),l=i.insert("rect",":first-child"),d=i.insert("line"),o=i.insert("line"),c=0,x=4,g=i.insert("g").attr("class","label"),p=0,w=e.classData.annotations?.[0],u=e.classData.annotations[0]?"\xab"+e.classData.annotations[0]+"\xbb":"",f=g.node().appendChild(h(u,e.labelStyle,!0,!0)),b=f.getBBox();if((0,n._3)((0,n.D7)().flowchart.htmlLabels)){let t=f.children[0],e=(0,s.Ltv)(f);b=t.getBoundingClientRect(),e.attr("width",b.width),e.attr("height",b.height)}e.classData.annotations[0]&&(x+=b.height+4,c+=b.width);let v=e.classData.label;void 0!==e.classData.type&&""!==e.classData.type&&((0,n.D7)().flowchart.htmlLabels?v+="<"+e.classData.type+">":v+="<"+e.classData.type+">");let K=g.node().appendChild(h(v,e.labelStyle,!0,!0));(0,s.Ltv)(K).attr("class","classTitle");let L=K.getBBox();if((0,n._3)((0,n.D7)().flowchart.htmlLabels)){let t=K.children[0],e=(0,s.Ltv)(K);L=t.getBoundingClientRect(),e.attr("width",L.width),e.attr("height",L.height)}x+=L.height+4,L.width>c&&(c=L.width);let S=[];e.classData.members.forEach(t=>{let r=t.getDisplayDetails(),a=r.displayText;(0,n.D7)().flowchart.htmlLabels&&(a=a.replace(/</g,"<").replace(/>/g,">"));let i=g.node().appendChild(h(a,r.cssStyle?r.cssStyle:e.labelStyle,!0,!0)),l=i.getBBox();if((0,n._3)((0,n.D7)().flowchart.htmlLabels)){let t=i.children[0],e=(0,s.Ltv)(i);l=t.getBoundingClientRect(),e.attr("width",l.width),e.attr("height",l.height)}l.width>c&&(c=l.width),x+=l.height+4,S.push(i)}),x+=8;let D=[];if(e.classData.methods.forEach(t=>{let r=t.getDisplayDetails(),a=r.displayText;(0,n.D7)().flowchart.htmlLabels&&(a=a.replace(/</g,"<").replace(/>/g,">"));let i=g.node().appendChild(h(a,r.cssStyle?r.cssStyle:e.labelStyle,!0,!0)),l=i.getBBox();if((0,n._3)((0,n.D7)().flowchart.htmlLabels)){let t=i.children[0],e=(0,s.Ltv)(i);l=t.getBoundingClientRect(),e.attr("width",l.width),e.attr("height",l.height)}l.width>c&&(c=l.width),x+=l.height+4,D.push(i)}),x+=8,w){let t=(c-b.width)/2;(0,s.Ltv)(f).attr("transform","translate( "+(-1*c/2+t)+", "+-1*x/2+")"),p=b.height+4}let B=(c-L.width)/2;return(0,s.Ltv)(K).attr("transform","translate( "+(-1*c/2+B)+", "+(-1*x/2+p)+")"),p+=L.height+4,d.attr("class","divider").attr("x1",-c/2-a).attr("x2",c/2+a).attr("y1",-x/2-a+8+p).attr("y2",-x/2-a+8+p),p+=8,S.forEach(t=>{(0,s.Ltv)(t).attr("transform","translate( "+-c/2+", "+(-1*x/2+p+4)+")");let e=t?.getBBox();p+=(e?.height??0)+4}),p+=8,o.attr("class","divider").attr("x1",-c/2-a).attr("x2",c/2+a).attr("y1",-x/2-a+8+p).attr("y2",-x/2-a+8+p),p+=8,D.forEach(t=>{(0,s.Ltv)(t).attr("transform","translate( "+-c/2+", "+(-1*x/2+p)+")");let e=t?.getBBox();p+=(e?.height??0)+4}),l.attr("style",e.style).attr("class","outer title-state").attr("x",-c/2-a).attr("y",-(x/2)-a).attr("width",c+e.padding).attr("height",x+e.padding),y(e,l),e.intersect=function(t){return m(e,t)},i},"class_box")},Z={},V=(0,n.K2)(async(t,e,r)=>{let a,i;if(e.link){let s;"sandbox"===(0,n.D7)().securityLevel?s="_top":e.linkTarget&&(s=e.linkTarget||"_blank"),a=t.insert("svg:a").attr("xlink:href",e.link).attr("target",s),i=await F[e.shape](a,e,r)}else a=i=await F[e.shape](t,e,r);return e.tooltip&&i.attr("title",e.tooltip),e.class&&i.attr("class","node default "+e.class),Z[e.id]=a,e.haveCallback&&Z[e.id].attr("class",Z[e.id].attr("class")+" clickable"),a},"insertNode"),Y=(0,n.K2)((t,e)=>{Z[e.id]=t},"setNodeElem"),G=(0,n.K2)(()=>{Z={}},"clear"),J=(0,n.K2)(t=>{let e=Z[t.id];n.Rm.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+r-t.width/2)+", "+(t.y-t.height/2-8)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),r},"positionNode")}}]); \ No newline at end of file diff --git a/assets/js/828be2eb.431c767a.js b/assets/js/828be2eb.431c767a.js deleted file mode 100644 index 4d903c5b39..0000000000 --- a/assets/js/828be2eb.431c767a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[43107],{15995:(e,n,s)=>{s.d(n,{A:()=>r});var t=s(62540);s(63696);var i=s(11750);function r({children:e,hidden:n,className:s}){return(0,t.jsx)("div",{role:"tabpanel",className:(0,i.A)("tabItem_pnkT",s),hidden:n,children:e})}},27446:(e,n,s)=>{s.d(n,{A:()=>x});var t=s(62540),i=s(63696),r=s(11750),o=s(7846),a=s(49519),l=s(96439),c=s(19739),u=s(66904),d=s(79244);function h(e){var n,s;return null!==(s=null===(n=i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==s?s:[]}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}var m=s(10709);function g(e){for(var n=1;n<arguments.length;n++){var s=null!=arguments[n]?arguments[n]:{},t=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(s).filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable}))),t.forEach(function(n){var t;t=s[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}function j(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);s.push.apply(s,t)}return s})(Object(n)).forEach(function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(n,s))}),e}function b({className:e,block:n,selectedValue:s,selectValue:i,tabValues:a}){let l=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.a_)(),u=e=>{let n=e.currentTarget,t=a[l.indexOf(n)].value;t!==s&&(c(n),i(t))},d=e=>{var n,s;let t=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let s=l.indexOf(e.currentTarget)+1;t=null!==(n=l[s])&&void 0!==n?n:l[0];break}case"ArrowLeft":{let n=l.indexOf(e.currentTarget)-1;t=null!==(s=l[n])&&void 0!==s?s:l[l.length-1]}}null==t||t.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":n},e),children:a.map(({value:e,label:n,attributes:i})=>(0,t.jsx)("li",j(g({role:"tab",tabIndex:s===e?0:-1,"aria-selected":s===e,ref:e=>l.push(e),onKeyDown:d,onClick:u},i),{className:(0,r.A)("tabs__item","tabItem_AQgk",null==i?void 0:i.className,{"tabs__item--active":s===e}),children:null!=n?n:e}),e))})}function f({lazy:e,children:n,selectedValue:s}){let o=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=o.find(e=>e.props.value===s);return e?(0,i.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:o.map((e,n)=>(0,i.cloneElement)(e,{key:n,hidden:e.props.value!==s}))})}function v(e){let n=function(e){let{defaultValue:n,queryString:s=!1,groupId:t}=e,r=function(e){let{values:n,children:s}=e;return(0,i.useMemo)(()=>{let e=null!=n?n:h(s).map(({props:{value:e,label:n,attributes:s,default:t}})=>({value:e,label:n,attributes:s,default:t}));return!function(e){let n=(0,u.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,s])}(e),[o,m]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){var s;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let t=null!==(s=n.find(e=>e.default))&&void 0!==s?s:n[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:n,tabValues:r})),[g,j]=function({queryString:e=!1,groupId:n}){let s=(0,a.W6)(),t=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,c.aZ)(t),(0,i.useCallback)(e=>{var n,i;if(!t)return;let r=new URLSearchParams(s.location.search);r.set(t,e),s.replace((n=function(e){for(var n=1;n<arguments.length;n++){var s=null!=arguments[n]?arguments[n]:{},t=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(s).filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable}))),t.forEach(function(n){var t;t=s[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}({},s.location),i=i={search:r.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):(function(e,n){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);s.push.apply(s,t)}return s})(Object(i)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(i,e))}),n))},[t,s])]}({queryString:s,groupId:t}),[b,f]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[s,t]=(0,d.Dv)(n);return[s,(0,i.useCallback)(e=>{n&&t.set(e)},[n,t])]}({groupId:t}),v=(()=>{let e=null!=g?g:b;return p({value:e,tabValues:r})?e:null})();return(0,l.A)(()=>{v&&m(v)},[v]),{selectedValue:o,selectValue:(0,i.useCallback)(e=>{if(!p({value:e,tabValues:r}))throw Error(`Can't select invalid tab value=${e}`);m(e),j(e),f(e)},[j,f,r]),tabValues:r}}(e);return(0,t.jsxs)("div",{className:(0,r.A)("tabs-container","tabList_Qoir"),children:[(0,t.jsx)(b,g({},n,e)),(0,t.jsx)(f,g({},n,e))]})}function x(e){let n=(0,m.A)();return(0,t.jsx)(v,j(g({},e),{children:h(e.children)}),String(n))}},56836:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>u,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>t,toc:()=>d});let t=JSON.parse('{"id":"guides/docs/multi-instance","title":"Docs Multi-instance","description":"Use multiple docs plugin instances on a single Docusaurus site.","source":"@site/docs/guides/docs/docs-multi-instance.mdx","sourceDirName":"guides/docs","slug":"/docs-multi-instance","permalink":"/docs/docs-multi-instance","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/docs-multi-instance.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"multi-instance","description":"Use multiple docs plugin instances on a single Docusaurus site.","slug":"/docs-multi-instance"},"sidebar":"docs","previous":{"title":"Versioning","permalink":"/docs/versioning"},"next":{"title":"Blog","permalink":"/docs/blog"}}');var i=s(62540),r=s(43023),o=s(27446),a=s(15995);let l={id:"multi-instance",description:"Use multiple docs plugin instances on a single Docusaurus site.",slug:"/docs-multi-instance"},c="Docs Multi-instance",u={},d=[{value:"Use-cases",id:"use-cases",level:2},{value:"Mobile SDKs documentation",id:"mobile-sdks-documentation",level:3},{value:"Versioned and unversioned doc",id:"versioned-and-unversioned-doc",level:3},{value:"Setup",id:"setup",level:2},{value:"Versioned paths",id:"versioned-paths",level:2},{value:"Tagging new versions",id:"tagging-new-versions",level:2},{value:"Docs navbar items",id:"docs-navbar-items",level:2}];function h(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"docs-multi-instance",children:"Docs Multi-instance"})}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"@docusaurus/plugin-content-docs"})," plugin can support ",(0,i.jsx)(n.a,{href:"/docs/using-plugins#multi-instance-plugins-and-plugin-ids",children:"multi-instance"}),"."]}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["This feature is only useful for ",(0,i.jsx)(n.a,{href:"/docs/versioning",children:"versioned documentation"}),". It is recommended to be familiar with docs versioning before reading this page. If you just want ",(0,i.jsx)(n.a,{href:"/docs/sidebar/multiple-sidebars",children:"multiple sidebars"}),", you can do so within one plugin."]})}),"\n",(0,i.jsx)(n.h2,{id:"use-cases",children:"Use-cases"}),"\n",(0,i.jsx)(n.p,{children:"Sometimes you want a Docusaurus site to host 2 distinct sets of documentation (or more)."}),"\n",(0,i.jsx)(n.p,{children:"These documentations may even have different versioning/release lifecycles."}),"\n",(0,i.jsx)(n.h3,{id:"mobile-sdks-documentation",children:"Mobile SDKs documentation"}),"\n",(0,i.jsx)(n.p,{children:"If you build a cross-platform mobile SDK, you may have 2 documentations:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Android SDK documentation (",(0,i.jsx)(n.code,{children:"v1.0"}),", ",(0,i.jsx)(n.code,{children:"v1.1"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:["iOS SDK documentation (",(0,i.jsx)(n.code,{children:"v1.0"}),", ",(0,i.jsx)(n.code,{children:"v2.0"}),")"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"In this case, you can use a distinct docs plugin instance per mobile SDK documentation."}),"\n",(0,i.jsxs)(n.admonition,{type:"warning",children:[(0,i.jsx)(n.p,{children:"If each documentation instance is very large, you should rather create 2 distinct Docusaurus sites."}),(0,i.jsx)(n.p,{children:"If someone edits the iOS documentation, is it really useful to rebuild everything, including the whole Android documentation that did not change?"})]}),"\n",(0,i.jsx)(n.h3,{id:"versioned-and-unversioned-doc",children:"Versioned and unversioned doc"}),"\n",(0,i.jsx)(n.p,{children:'Sometimes, you want some documents to be versioned, while other documents are more "global", and it feels useless to version them.'}),"\n",(0,i.jsx)(n.p,{children:"We use this pattern on the Docusaurus website itself:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["The ",(0,i.jsx)(n.a,{href:"/docs",children:"/docs/*"})," section is versioned"]}),"\n",(0,i.jsxs)(n.li,{children:["The ",(0,i.jsx)(n.a,{href:"/community/support",children:"/community/*"})," section is unversioned"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"setup",children:"Setup"}),"\n",(0,i.jsx)(n.p,{children:"Suppose you have 2 documentations:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Product: some versioned doc about your product"}),"\n",(0,i.jsx)(n.li,{children:"Community: some unversioned doc about the community around your product"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"In this case, you should use the same plugin twice in your site configuration."}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"@docusaurus/preset-classic"})," already includes a docs plugin instance for you!"]})}),"\n",(0,i.jsx)(n.p,{children:"When using the preset:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n // highlight-start\n // id: 'product', // omitted => default instance\n // highlight-end\n path: 'product',\n routeBasePath: 'product',\n sidebarPath: './sidebarsProduct.js',\n // ... other options\n },\n },\n ],\n ],\n plugins: [\n [\n '@docusaurus/plugin-content-docs',\n {\n // highlight-start\n id: 'community',\n // highlight-end\n path: 'community',\n routeBasePath: 'community',\n sidebarPath: './sidebarsCommunity.js',\n // ... other options\n },\n ],\n ],\n};\n"})}),"\n",(0,i.jsx)(n.p,{children:"When not using the preset:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n plugins: [\n [\n '@docusaurus/plugin-content-docs',\n {\n // highlight-start\n // id: 'product', // omitted => default instance\n // highlight-end\n path: 'product',\n routeBasePath: 'product',\n sidebarPath: './sidebarsProduct.js',\n // ... other options\n },\n ],\n [\n '@docusaurus/plugin-content-docs',\n {\n // highlight-start\n id: 'community',\n // highlight-end\n path: 'community',\n routeBasePath: 'community',\n sidebarPath: './sidebarsCommunity.js',\n // ... other options\n },\n ],\n ],\n};\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Don't forget to assign a unique ",(0,i.jsx)(n.code,{children:"id"})," attribute to plugin instances."]}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["We consider that the ",(0,i.jsx)(n.code,{children:"product"}),' instance is the most important one, and make it the "default" instance by not assigning any ID.']})}),"\n",(0,i.jsx)(n.h2,{id:"versioned-paths",children:"Versioned paths"}),"\n",(0,i.jsx)(n.p,{children:"Each plugin instance will store versioned docs in a distinct folder."}),"\n",(0,i.jsx)(n.p,{children:"The default plugin instance will use these paths:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"website/versions.json"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"website/versioned_docs"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"website/versioned_sidebars"})}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["The other plugin instances (with an ",(0,i.jsx)(n.code,{children:"id"})," attribute) will use these paths:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"website/[pluginId]_versions.json"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"website/[pluginId]_versioned_docs"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"website/[pluginId]_versioned_sidebars"})}),"\n"]}),"\n",(0,i.jsxs)(n.admonition,{type:"tip",children:[(0,i.jsxs)(n.p,{children:["You can omit the ",(0,i.jsx)(n.code,{children:"id"})," attribute (defaults to ",(0,i.jsx)(n.code,{children:"default"}),") for one of the docs plugin instances."]}),(0,i.jsx)(n.p,{children:"The instance paths will be simpler, and retro-compatible with a single-instance setup."})]}),"\n",(0,i.jsx)(n.h2,{id:"tagging-new-versions",children:"Tagging new versions"}),"\n",(0,i.jsx)(n.p,{children:"Each plugin instance will have its own CLI command to tag a new version. They will be displayed if you run:"}),"\n",(0,i.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,i.jsx)(a.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm run docusaurus -- --help\n"})})}),(0,i.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn docusaurus --help\n"})})}),(0,i.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm run docusaurus --help\n"})})})]}),"\n",(0,i.jsx)(n.p,{children:"To version the product/default docs plugin instance:"}),"\n",(0,i.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,i.jsx)(a.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm run docusaurus docs:version 1.0.0\n"})})}),(0,i.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn docusaurus docs:version 1.0.0\n"})})}),(0,i.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm run docusaurus docs:version 1.0.0\n"})})})]}),"\n",(0,i.jsx)(n.p,{children:"To version the non-default/community docs plugin instance:"}),"\n",(0,i.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,i.jsx)(a.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm run docusaurus docs:version:community 1.0.0\n"})})}),(0,i.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn docusaurus docs:version:community 1.0.0\n"})})}),(0,i.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm run docusaurus docs:version:community 1.0.0\n"})})})]}),"\n",(0,i.jsx)(n.h2,{id:"docs-navbar-items",children:"Docs navbar items"}),"\n",(0,i.jsxs)(n.p,{children:["Each docs-related ",(0,i.jsx)(n.a,{href:"/docs/api/themes/configuration#navbar",children:"theme navbar items"})," take an optional ",(0,i.jsx)(n.code,{children:"docsPluginId"})," attribute."]}),"\n",(0,i.jsx)(n.p,{children:"For example, if you want to have one version dropdown for each mobile SDK (iOS and Android), you could do:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n {\n type: 'docsVersionDropdown',\n // highlight-start\n docsPluginId: 'ios',\n // highlight-end\n },\n {\n type: 'docsVersionDropdown',\n // highlight-start\n docsPluginId: 'android',\n // highlight-end\n },\n ],\n },\n },\n};\n"})})]})}function p(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>a});var t=s(63696);let i={},r=t.createContext(i);function o(e){let n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/828be2eb.5e0ff21d.js b/assets/js/828be2eb.5e0ff21d.js new file mode 100644 index 0000000000..097658c970 --- /dev/null +++ b/assets/js/828be2eb.5e0ff21d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[43107],{15995:(e,n,s)=>{s.d(n,{A:()=>r});var t=s(62540);s(63696);var i=s(11750);function r({children:e,hidden:n,className:s}){return(0,t.jsx)("div",{role:"tabpanel",className:(0,i.A)("tabItem_pnkT",s),hidden:n,children:e})}},27446:(e,n,s)=>{s.d(n,{A:()=>x});var t=s(62540),i=s(63696),r=s(11750),o=s(7846),a=s(49519),l=s(96439),c=s(19739),d=s(66904),u=s(79244);function h(e){var n,s;return null!==(s=null===(n=i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==s?s:[]}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}var m=s(10709);function g(e){for(var n=1;n<arguments.length;n++){var s=null!=arguments[n]?arguments[n]:{},t=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(s).filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable}))),t.forEach(function(n){var t;t=s[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}function j(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);s.push.apply(s,t)}return s})(Object(n)).forEach(function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(n,s))}),e}function b({className:e,block:n,selectedValue:s,selectValue:i,tabValues:a}){let l=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.a_)(),d=e=>{let n=e.currentTarget,t=a[l.indexOf(n)].value;t!==s&&(c(n),i(t))},u=e=>{var n,s;let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let s=l.indexOf(e.currentTarget)+1;t=null!==(n=l[s])&&void 0!==n?n:l[0];break}case"ArrowLeft":{let n=l.indexOf(e.currentTarget)-1;t=null!==(s=l[n])&&void 0!==s?s:l[l.length-1]}}null==t||t.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":n},e),children:a.map(({value:e,label:n,attributes:i})=>(0,t.jsx)("li",j(g({role:"tab",tabIndex:s===e?0:-1,"aria-selected":s===e,ref:e=>l.push(e),onKeyDown:u,onClick:d},i),{className:(0,r.A)("tabs__item","tabItem_AQgk",null==i?void 0:i.className,{"tabs__item--active":s===e}),children:null!=n?n:e}),e))})}function f({lazy:e,children:n,selectedValue:s}){let o=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=o.find(e=>e.props.value===s);return e?(0,i.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:o.map((e,n)=>(0,i.cloneElement)(e,{key:n,hidden:e.props.value!==s}))})}function v(e){let n=function(e){let{defaultValue:n,queryString:s=!1,groupId:t}=e,r=function(e){let{values:n,children:s}=e;return(0,i.useMemo)(()=>{let e=null!=n?n:h(s).map(({props:{value:e,label:n,attributes:s,default:t}})=>({value:e,label:n,attributes:s,default:t}));return!function(e){let n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,s])}(e),[o,m]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){var s;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let t=null!==(s=n.find(e=>e.default))&&void 0!==s?s:n[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:n,tabValues:r})),[g,j]=function({queryString:e=!1,groupId:n}){let s=(0,a.W6)(),t=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,c.aZ)(t),(0,i.useCallback)(e=>{var n,i;if(!t)return;let r=new URLSearchParams(s.location.search);r.set(t,e),s.replace((n=function(e){for(var n=1;n<arguments.length;n++){var s=null!=arguments[n]?arguments[n]:{},t=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(s).filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable}))),t.forEach(function(n){var t;t=s[n],n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t})}return e}({},s.location),i=i={search:r.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):(function(e,n){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);s.push.apply(s,t)}return s})(Object(i)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(i,e))}),n))},[t,s])]}({queryString:s,groupId:t}),[b,f]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[s,t]=(0,u.Dv)(n);return[s,(0,i.useCallback)(e=>{n&&t.set(e)},[n,t])]}({groupId:t}),v=(()=>{let e=null!=g?g:b;return p({value:e,tabValues:r})?e:null})();return(0,l.A)(()=>{v&&m(v)},[v]),{selectedValue:o,selectValue:(0,i.useCallback)(e=>{if(!p({value:e,tabValues:r}))throw Error(`Can't select invalid tab value=${e}`);m(e),j(e),f(e)},[j,f,r]),tabValues:r}}(e);return(0,t.jsxs)("div",{className:(0,r.A)("tabs-container","tabList_Qoir"),children:[(0,t.jsx)(b,g({},n,e)),(0,t.jsx)(f,g({},n,e))]})}function x(e){let n=(0,m.A)();return(0,t.jsx)(v,j(g({},e),{children:h(e.children)}),String(n))}},56836:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>t,toc:()=>u});let t=JSON.parse('{"id":"guides/docs/multi-instance","title":"Docs Multi-instance","description":"Use multiple docs plugin instances on a single Docusaurus site.","source":"@site/docs/guides/docs/docs-multi-instance.mdx","sourceDirName":"guides/docs","slug":"/docs-multi-instance","permalink":"/docs/docs-multi-instance","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/guides/docs/docs-multi-instance.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"multi-instance","description":"Use multiple docs plugin instances on a single Docusaurus site.","slug":"/docs-multi-instance"},"sidebar":"docs","previous":{"title":"Versioning","permalink":"/docs/versioning"},"next":{"title":"Blog","permalink":"/docs/blog"}}');var i=s(62540),r=s(43023),o=s(27446),a=s(15995);let l={id:"multi-instance",description:"Use multiple docs plugin instances on a single Docusaurus site.",slug:"/docs-multi-instance"},c="Docs Multi-instance",d={},u=[{value:"Use-cases",id:"use-cases",level:2},{value:"Mobile SDKs documentation",id:"mobile-sdks-documentation",level:3},{value:"Versioned and unversioned doc",id:"versioned-and-unversioned-doc",level:3},{value:"Setup",id:"setup",level:2},{value:"Versioned paths",id:"versioned-paths",level:2},{value:"Tagging new versions",id:"tagging-new-versions",level:2},{value:"Docs navbar items",id:"docs-navbar-items",level:2}];function h(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"docs-multi-instance",children:"Docs Multi-instance"})}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"@docusaurus/plugin-content-docs"})," plugin can support ",(0,i.jsx)(n.a,{href:"/docs/using-plugins#multi-instance-plugins-and-plugin-ids",children:"multi-instance"}),"."]}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["This feature is only useful for ",(0,i.jsx)(n.a,{href:"/docs/versioning",children:"versioned documentation"}),". It is recommended to be familiar with docs versioning before reading this page. If you just want ",(0,i.jsx)(n.a,{href:"/docs/sidebar/multiple-sidebars",children:"multiple sidebars"}),", you can do so within one plugin."]})}),"\n",(0,i.jsx)(n.h2,{id:"use-cases",children:"Use-cases"}),"\n",(0,i.jsx)(n.p,{children:"Sometimes you want a Docusaurus site to host 2 distinct sets of documentation (or more)."}),"\n",(0,i.jsx)(n.p,{children:"These documentations may even have different versioning/release lifecycles."}),"\n",(0,i.jsx)(n.h3,{id:"mobile-sdks-documentation",children:"Mobile SDKs documentation"}),"\n",(0,i.jsx)(n.p,{children:"If you build a cross-platform mobile SDK, you may have 2 documentations:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Android SDK documentation (",(0,i.jsx)(n.code,{children:"v1.0"}),", ",(0,i.jsx)(n.code,{children:"v1.1"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:["iOS SDK documentation (",(0,i.jsx)(n.code,{children:"v1.0"}),", ",(0,i.jsx)(n.code,{children:"v2.0"}),")"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"In this case, you can use a distinct docs plugin instance per mobile SDK documentation."}),"\n",(0,i.jsxs)(n.admonition,{type:"warning",children:[(0,i.jsx)(n.p,{children:"If each documentation instance is very large, you should rather create 2 distinct Docusaurus sites."}),(0,i.jsx)(n.p,{children:"If someone edits the iOS documentation, is it really useful to rebuild everything, including the whole Android documentation that did not change?"})]}),"\n",(0,i.jsx)(n.h3,{id:"versioned-and-unversioned-doc",children:"Versioned and unversioned doc"}),"\n",(0,i.jsx)(n.p,{children:'Sometimes, you want some documents to be versioned, while other documents are more "global", and it feels useless to version them.'}),"\n",(0,i.jsx)(n.p,{children:"We use this pattern on the Docusaurus website itself:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["The ",(0,i.jsx)(n.a,{href:"/docs",children:"/docs/*"})," section is versioned"]}),"\n",(0,i.jsxs)(n.li,{children:["The ",(0,i.jsx)(n.a,{href:"/community/support",children:"/community/*"})," section is unversioned"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"setup",children:"Setup"}),"\n",(0,i.jsx)(n.p,{children:"Suppose you have 2 documentations:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Product: some versioned doc about your product"}),"\n",(0,i.jsx)(n.li,{children:"Community: some unversioned doc about the community around your product"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"In this case, you should use the same plugin twice in your site configuration."}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"@docusaurus/preset-classic"})," already includes a docs plugin instance for you!"]})}),"\n",(0,i.jsx)(n.p,{children:"When using the preset:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n presets: [\n [\n '@docusaurus/preset-classic',\n {\n docs: {\n // highlight-start\n // id: 'product', // omitted => default instance\n // highlight-end\n path: 'product',\n routeBasePath: 'product',\n sidebarPath: './sidebarsProduct.js',\n // ... other options\n },\n },\n ],\n ],\n plugins: [\n [\n '@docusaurus/plugin-content-docs',\n {\n // highlight-start\n id: 'community',\n // highlight-end\n path: 'community',\n routeBasePath: 'community',\n sidebarPath: './sidebarsCommunity.js',\n // ... other options\n },\n ],\n ],\n};\n"})}),"\n",(0,i.jsx)(n.p,{children:"When not using the preset:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n plugins: [\n [\n '@docusaurus/plugin-content-docs',\n {\n // highlight-start\n // id: 'product', // omitted => default instance\n // highlight-end\n path: 'product',\n routeBasePath: 'product',\n sidebarPath: './sidebarsProduct.js',\n // ... other options\n },\n ],\n [\n '@docusaurus/plugin-content-docs',\n {\n // highlight-start\n id: 'community',\n // highlight-end\n path: 'community',\n routeBasePath: 'community',\n sidebarPath: './sidebarsCommunity.js',\n // ... other options\n },\n ],\n ],\n};\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Don't forget to assign a unique ",(0,i.jsx)(n.code,{children:"id"})," attribute to plugin instances."]}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["We consider that the ",(0,i.jsx)(n.code,{children:"product"}),' instance is the most important one, and make it the "default" instance by not assigning any ID.']})}),"\n",(0,i.jsx)(n.h2,{id:"versioned-paths",children:"Versioned paths"}),"\n",(0,i.jsx)(n.p,{children:"Each plugin instance will store versioned docs in a distinct folder."}),"\n",(0,i.jsx)(n.p,{children:"The default plugin instance will use these paths:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"website/versions.json"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"website/versioned_docs"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"website/versioned_sidebars"})}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["The other plugin instances (with an ",(0,i.jsx)(n.code,{children:"id"})," attribute) will use these paths:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"website/[pluginId]_versions.json"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"website/[pluginId]_versioned_docs"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"website/[pluginId]_versioned_sidebars"})}),"\n"]}),"\n",(0,i.jsxs)(n.admonition,{type:"tip",children:[(0,i.jsxs)(n.p,{children:["You can omit the ",(0,i.jsx)(n.code,{children:"id"})," attribute (defaults to ",(0,i.jsx)(n.code,{children:"default"}),") for one of the docs plugin instances."]}),(0,i.jsx)(n.p,{children:"The instance paths will be simpler, and retro-compatible with a single-instance setup."})]}),"\n",(0,i.jsx)(n.h2,{id:"tagging-new-versions",children:"Tagging new versions"}),"\n",(0,i.jsx)(n.p,{children:"Each plugin instance will have its own CLI command to tag a new version. They will be displayed if you run:"}),"\n",(0,i.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,i.jsx)(a.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm run docusaurus -- --help\n"})})}),(0,i.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn docusaurus --help\n"})})}),(0,i.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm run docusaurus --help\n"})})})]}),"\n",(0,i.jsx)(n.p,{children:"To version the product/default docs plugin instance:"}),"\n",(0,i.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,i.jsx)(a.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm run docusaurus docs:version 1.0.0\n"})})}),(0,i.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn docusaurus docs:version 1.0.0\n"})})}),(0,i.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm run docusaurus docs:version 1.0.0\n"})})})]}),"\n",(0,i.jsx)(n.p,{children:"To version the non-default/community docs plugin instance:"}),"\n",(0,i.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,i.jsx)(a.A,{value:"npm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm run docusaurus docs:version:community 1.0.0\n"})})}),(0,i.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn docusaurus docs:version:community 1.0.0\n"})})}),(0,i.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pnpm run docusaurus docs:version:community 1.0.0\n"})})})]}),"\n",(0,i.jsx)(n.h2,{id:"docs-navbar-items",children:"Docs navbar items"}),"\n",(0,i.jsxs)(n.p,{children:["Each docs-related ",(0,i.jsx)(n.a,{href:"/docs/api/themes/configuration#navbar",children:"theme navbar items"})," take an optional ",(0,i.jsx)(n.code,{children:"docsPluginId"})," attribute."]}),"\n",(0,i.jsx)(n.p,{children:"For example, if you want to have one version dropdown for each mobile SDK (iOS and Android), you could do:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n {\n type: 'docsVersionDropdown',\n // highlight-start\n docsPluginId: 'ios',\n // highlight-end\n },\n {\n type: 'docsVersionDropdown',\n // highlight-start\n docsPluginId: 'android',\n // highlight-end\n },\n ],\n },\n },\n};\n"})})]})}function p(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>a});var t=s(63696);let i={},r=t.createContext(i);function o(e){let n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/82de272a.16f6ef17.js b/assets/js/82de272a.16f6ef17.js deleted file mode 100644 index d4e199091b..0000000000 --- a/assets/js/82de272a.16f6ef17.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[64590],{19267:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>u,frontMatter:()=>r,metadata:()=>o,toc:()=>i});let o=JSON.parse('{"id":"tests/category-links/no-subdoc/index","title":"No sub-docs","description":"The only doc of this category is the index page. It should show up as a regular doc link.","source":"@site/_dogfooding/_docs tests/tests/category-links/no-subdoc/index.mdx","sourceDirName":"tests/category-links/no-subdoc","slug":"/tests/category-links/no-subdoc/","permalink":"/tests/docs/tests/category-links/no-subdoc/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/no-index-doc/sample-doc"},"next":{"title":"Readme","permalink":"/tests/docs/tests/category-links/"}}');var n=s(62540),d=s(43023);let r={},c="No sub-docs",a={},i=[];function l(e){let t={h1:"h1",header:"header",p:"p",...(0,d.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"no-sub-docs",children:"No sub-docs"})}),"\n",(0,n.jsx)(t.p,{children:"The only doc of this category is the index page. It should show up as a regular doc link."})]})}function u(e={}){let{wrapper:t}={...(0,d.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}u.displayName="MDXContent(_dogfooding/_docs tests/tests/category-links/no-subdoc/index.mdx)"},43023:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>c});var o=s(63696);let n={},d=o.createContext(n);function r(e){let t=o.useContext(d);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),o.createElement(d.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/82de272a.60939660.js b/assets/js/82de272a.60939660.js new file mode 100644 index 0000000000..2e1e203fb9 --- /dev/null +++ b/assets/js/82de272a.60939660.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[64590],{19267:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>u,frontMatter:()=>d,metadata:()=>o,toc:()=>i});let o=JSON.parse('{"id":"tests/category-links/no-subdoc/index","title":"No sub-docs","description":"The only doc of this category is the index page. It should show up as a regular doc link.","source":"@site/_dogfooding/_docs tests/tests/category-links/no-subdoc/index.mdx","sourceDirName":"tests/category-links/no-subdoc","slug":"/tests/category-links/no-subdoc/","permalink":"/tests/docs/tests/category-links/no-subdoc/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/no-index-doc/sample-doc"},"next":{"title":"Readme","permalink":"/tests/docs/tests/category-links/"}}');var n=s(62540),r=s(43023);let d={},c="No sub-docs",a={},i=[];function l(e){let t={h1:"h1",header:"header",p:"p",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"no-sub-docs",children:"No sub-docs"})}),"\n",(0,n.jsx)(t.p,{children:"The only doc of this category is the index page. It should show up as a regular doc link."})]})}function u(e={}){let{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}u.displayName="MDXContent(_dogfooding/_docs tests/tests/category-links/no-subdoc/index.mdx)"},43023:(e,t,s)=>{s.d(t,{R:()=>d,x:()=>c});var o=s(63696);let n={},r=o.createContext(n);function d(e){let t=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/859d83d7.ee6fdab5.js b/assets/js/859d83d7.8bbe1226.js similarity index 99% rename from assets/js/859d83d7.ee6fdab5.js rename to assets/js/859d83d7.8bbe1226.js index 4998afc1ab..b681f07452 100644 --- a/assets/js/859d83d7.ee6fdab5.js +++ b/assets/js/859d83d7.8bbe1226.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[16657],{16302:(e,s,o)=>{o.d(s,{A:()=>t});let t=o.p+"assets/images/social-card-7b2ed059f27fc8b64f3f20025ebb382f.png"},23617:(e,s,o)=>{o.d(s,{A:()=>t});let t=o.p+"assets/images/author-index-4abd3b8b777b2c1b3958768559896262.png"},92840:(e,s,o)=>{o.d(s,{A:()=>t});let t=o.p+"assets/images/author-page-4a9753641b116ddfeecc46ed1dcee907.png"},62017:(e,s,o)=>{o.d(s,{A:()=>t});let t=o.p+"assets/images/author-socials-93483e664b2d095b137cf10c4769c100.png"},16562:(e,s,o)=>{o.d(s,{A:()=>t});let t=o.p+"assets/images/blog-feed-xslt-22194c2a971aba7f3bbf6115d3aa1d49.png"},74425:(e,s,o)=>{o.d(s,{A:()=>t});let t=o.p+"assets/images/blog-sidebar-years-1d0be02836d9a3307386c365b9969a37.png"},36235:(e,s,o)=>{o.d(s,{A:()=>t});let t=o.p+"assets/images/social-card-7b2ed059f27fc8b64f3f20025ebb382f.png"},33934:(e,s,o)=>{o.r(s),o.d(s,{assets:()=>a,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>t,toc:()=>c});var t=o(83916),n=o(62540),r=o(43023);let l={title:"Docusaurus 3.5",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2024-08-09T00:00:00.000Z")},i=void 0,a={image:o(16302).A,authorsImageUrls:[void 0]},c=[{value:"Highlights",id:"highlights",level:2},{value:"Blog Social Icons",id:"blog-social-icons",level:3},{value:"Blog Authors Pages",id:"blog-authors-pages",level:3},{value:"Blog Feeds Styling",id:"blog-feeds-styling",level:3},{value:"Blog Sidebar Grouping",id:"blog-sidebar-grouping",level:3},{value:"Blog Consistency Options",id:"blog-consistency-options",level:3},{value:"<code>onInlineAuthors</code>",id:"oninlineauthors",level:4},{value:"<code>onUntruncatedBlogPosts</code>",id:"onuntruncatedblogposts",level:4},{value:"Translations",id:"translations",level:2},{value:"Other changes",id:"other-changes",level:2}];function h(e){let s={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(s.p,{children:["We are happy to announce ",(0,n.jsx)(s.strong,{children:"Docusaurus 3.5"}),"."]}),"\n",(0,n.jsxs)(s.p,{children:["This release contains many ",(0,n.jsx)(s.strong,{children:"new exciting blog features"}),"."]}),"\n",(0,n.jsxs)(s.p,{children:["Upgrading should be easy. Our ",(0,n.jsx)(s.a,{href:"/community/release-process",children:"release process"})," respects ",(0,n.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"}),". Minor versions do not include any breaking changes."]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"Docusaurus blog post social card",src:o(36235).A+"",width:"1200",height:"600"})}),"\n","\n",(0,n.jsx)(s.h2,{id:"highlights",children:"Highlights"}),"\n",(0,n.jsx)(s.h3,{id:"blog-social-icons",children:"Blog Social Icons"}),"\n",(0,n.jsxs)(s.p,{children:["In ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10222",children:"#10222"}),", we added the possibility to associate social links to blog authors, for inline authors declared in front matter or global through the ",(0,n.jsx)(s.code,{children:"authors.yml"})," file."]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-yml",metastring:'title="blog/authors.yml"',children:"slorber:\n name: S\xe9bastien Lorber\n # other author properties...\n # highlight-start\n socials:\n x: sebastienlorber\n linkedin: sebastienlorber\n github: slorber\n newsletter: https://thisweekinreact.com\n # highlight-end\n"})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"Author socials screenshot displaying slorber author with 4 social platform icons",src:o(62017).A+"",width:"780",height:"180"})}),"\n",(0,n.jsxs)(s.p,{children:["Icons and handle shortcuts are provided for pre-defined platforms ",(0,n.jsx)(s.code,{children:"x"}),", ",(0,n.jsx)(s.code,{children:"linkedin"}),", ",(0,n.jsx)(s.code,{children:"github"})," and ",(0,n.jsx)(s.code,{children:"stackoverflow"}),". It's possible to provide any additional platform entry (like ",(0,n.jsx)(s.code,{children:"newsletter"})," in the example above) with a full URL."]}),"\n",(0,n.jsx)(s.h3,{id:"blog-authors-pages",children:"Blog Authors Pages"}),"\n",(0,n.jsxs)(s.p,{children:["In ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10216",children:"#10216"}),", we added the possibility for ",(0,n.jsx)(s.a,{href:"/docs/blog#global-authors",children:"global blog authors"})," (declared in ",(0,n.jsx)(s.code,{children:"authors.yml"}),") to have their own dedicated page listing all the blog posts they contributed to."]}),"\n",(0,n.jsxs)(s.p,{children:["This feature is opt-in and mostly relevant for ",(0,n.jsx)(s.strong,{children:"multi-author blogs"}),". You can turn it on for a specific author by setting the ",(0,n.jsx)(s.code,{children:"page: true"})," property:"]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-yml",metastring:'title="blog/authors.yml"',children:"slorber:\n name: S\xe9bastien Lorber\n # the description will be displayed on the author's page\n description: 'A freelance React and React-Native developer...'\n # highlight-next-line\n page: true # Turns the feature on\n"})}),"\n",(0,n.jsxs)(s.p,{children:["This creates a ",(0,n.jsx)(s.a,{href:"/blog/authors/slorber",children:"dedicated author page"})," at ",(0,n.jsx)(s.code,{children:"/blog/authors/slorber"}),"."]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"Author page screenshot for slorber global author",src:o(92840).A+"",width:"883",height:"900"})}),"\n",(0,n.jsxs)(s.p,{children:["An ",(0,n.jsx)(s.a,{href:"/blog/authors",children:"authors index page"})," is also created, listing all the blog authors."]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"Author index page listing multiple authors",src:o(23617).A+"",width:"705",height:"645"})}),"\n",(0,n.jsxs)(s.p,{children:["Check the ",(0,n.jsx)(s.a,{href:"/docs/blog#authors-pages",children:"blog authors pages guide"})," for details."]}),"\n",(0,n.jsx)(s.h3,{id:"blog-feeds-styling",children:"Blog Feeds Styling"}),"\n",(0,n.jsxs)(s.p,{children:["In ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9252",children:"#9252"}),", we added support for ",(0,n.jsx)(s.a,{href:"https://darekkay.com/blog/rss-styling/",children:"styling your blog feeds"})," by providing custom XSLT ",(0,n.jsx)(s.code,{children:".xls"})," files for the RSS and Atom feeds. This allows browsers to render the feeds in a more visually appealing way, like a regular HTML page, instead of the default XML view."]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-js",metastring:'title="website/docusaurus.config.js"',children:"const blogOptions = {\n feedOptions: {\n // highlight-start\n xslt: {\n rss: 'custom-rss.xsl',\n atom: 'custom-atom.xsl',\n },\n // highlight-end\n },\n};\n"})}),"\n",(0,n.jsxs)(s.p,{children:["Writing your own XSLT can be complex, but you can also use ",(0,n.jsx)(s.code,{children:"xslt: true"})," to turn on the built-in style:"]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-js",metastring:'title="website/docusaurus.config.js"',children:"const blogOptions = {\n feedOptions: {\n // highlight-start\n xslt: true,\n // highlight-end\n },\n};\n"})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"Screenshot of the Docusaurus blog RSS feed, beautifully styled",src:o(16562).A+"",width:"730",height:"782"})}),"\n",(0,n.jsx)(s.h3,{id:"blog-sidebar-grouping",children:"Blog Sidebar Grouping"}),"\n",(0,n.jsxs)(s.p,{children:["In ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10252",children:"#10252"}),", we added support for grouping blog posts by years in the blog sidebar."]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"Screenshot of the Docusaurus blog, in particular the sidebar items grouped by year",src:o(74425).A+"",width:"910",height:"452"})}),"\n",(0,n.jsxs)(s.p,{children:["This feature is now turned on by default, but can be disabled with ",(0,n.jsx)(s.code,{children:"themeConfig.blog.sidebar.groupByYear: false"}),"."]}),"\n",(0,n.jsx)(s.h3,{id:"blog-consistency-options",children:"Blog Consistency Options"}),"\n",(0,n.jsx)(s.p,{children:"We added new blog options to enforce recommended practices for your blog posts:"}),"\n",(0,n.jsx)(s.h4,{id:"oninlineauthors",children:(0,n.jsx)(s.code,{children:"onInlineAuthors"})}),"\n",(0,n.jsxs)(s.p,{children:["We believe large multi-blogs are easier to manage by using ",(0,n.jsx)(s.a,{href:"/docs/blog#global-authors",children:"global authors"}),", declared in ",(0,n.jsx)(s.code,{children:"authors.yml"}),". This notably permits to avoids duplicating author information across multiple blog posts, and now permits to generate ",(0,n.jsx)(s.a,{href:"/docs/blog#authors-pages",children:"author pages"}),"."]}),"\n",(0,n.jsxs)(s.p,{children:["In ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10224",children:"#10224"}),", we added the ",(0,n.jsx)(s.code,{children:"onInlineAuthors"})," option. Use ",(0,n.jsx)(s.code,{children:"onInlineAuthors: 'throw'"})," to forbid ",(0,n.jsx)(s.a,{href:"/docs/blog#inline-authors",children:"inline authors"}),", and enforce a consistent usage of ",(0,n.jsx)(s.a,{href:"/docs/blog#global-authors",children:"global authors"}),"."]}),"\n",(0,n.jsx)(s.h4,{id:"onuntruncatedblogposts",children:(0,n.jsx)(s.code,{children:"onUntruncatedBlogPosts"})}),"\n",(0,n.jsxs)(s.p,{children:["We believe blog posts are better using ",(0,n.jsx)(s.a,{href:"/docs/blog#blog-list",children:"truncation markers"})," (",(0,n.jsx)(s.code,{children:"<!-- truncate -->"})," or ",(0,n.jsx)(s.code,{children:"{/* truncate */}"}),"). On paginated lists (blog home, tags pages, authors pages), this permits to render a more concise preview of the blog post instead of a full blog post."]}),"\n",(0,n.jsxs)(s.p,{children:["In ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10375",children:"#10375"}),", we added the ",(0,n.jsx)(s.code,{children:"onUntruncatedBlogPosts"})," option. Use ",(0,n.jsx)(s.code,{children:"onUntruncatedBlogPosts: 'throw'"})," to enforce a consistent usage of ",(0,n.jsx)(s.a,{href:"/docs/blog#blog-list",children:"truncation markers"}),"."]}),"\n",(0,n.jsx)(s.h2,{id:"translations",children:"Translations"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u{1F1EA}\u{1F1EA} ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10339",children:"#10339"}),": Add Estonian theme translations."]}),"\n",(0,n.jsxs)(s.li,{children:["\u{1F1EE}\u{1F1E9} ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10325",children:"#10325"}),": Add Indonesian theme translations."]}),"\n",(0,n.jsxs)(s.li,{children:["\u{1F1EA}\u{1F1F8} ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10360",children:"#10360"}),": Improve Spanish theme translations."]}),"\n",(0,n.jsxs)(s.li,{children:["\u{1F1E9}\u{1F1EA} ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10235",children:"#10235"}),": Improve German theme translations."]}),"\n",(0,n.jsxs)(s.li,{children:["\u{1F1E8}\u{1F1F3} ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10257",children:"#10257"}),": Improve Traditional Chinese (zh-Hant) theme translations."]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"other-changes",children:"Other changes"}),"\n",(0,n.jsx)(s.p,{children:"Other notable changes include:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10369",children:"#10369"}),": Add support for ",(0,n.jsx)(s.a,{href:"https://pkg.pr.new",children:"pkg.pr.new"})," continuous releases so that you can test any pull-request code in a StackBlitz playground."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10376",children:"#10376"}),": Theme unlisted/draft banners are also shown in dev so that you don't forget to publish your content."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10335",children:"#10335"}),": The Markdown top-level headings ",(0,n.jsx)(s.code,{children:"# title"})," are automatically wrapped in ",(0,n.jsx)(s.code,{children:"<header>"})," for consistency with front matter ",(0,n.jsx)(s.code,{children:"title: Title"}),"."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10286",children:"#10286"}),": Allows Docusaurus plugins to self-disable by returning ",(0,n.jsx)(s.code,{children:"null"}),"."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10241",children:"#10241"}),": Add support for ",(0,n.jsxs)(s.a,{href:"https://mdxjs.com/packages/mdx/#processoroptions",children:["MDX processor ",(0,n.jsx)(s.code,{children:"recmaPlugins"})," option"]})," to modify the MDX Estree AST."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10324",children:"#10324"}),": The docs autogenerated ",(0,n.jsx)(s.code,{children:"_category_.json"})," accepts a new ",(0,n.jsx)(s.code,{children:"description"})," property that gets displayed on generated index pages."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10368",children:"#10368"}),": The CLI command ",(0,n.jsx)(s.code,{children:"docusaurus --version"})," now actually returns the Docusaurus version."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10240",children:"#10240"}),": Markdown ",(0,n.jsx)(s.code,{children:"mdx-code-block"})," now supports indentation."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10219",children:"#10219"}),": Fix ",(0,n.jsx)(s.code,{children:"<TabItem lazy>"})," support the for ",(0,n.jsx)(s.code,{children:"className"})," prop."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10313",children:"#10313"}),": Blog-related ",(0,n.jsx)(s.code,{children:"@docusaurus/theme-common/internal"})," APIs have been moved to ",(0,n.jsx)(s.code,{children:"@docusaurus/plugin-content-blog/client"}),"."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10316",children:"#10316"}),": Docs-related ",(0,n.jsx)(s.code,{children:"@docusaurus/theme-common/internal"})," APIs have been moved to ",(0,n.jsx)(s.code,{children:"@docusaurus/plugin-content-docs/client"}),"."]}),"\n"]}),"\n",(0,n.jsxs)(s.p,{children:["Check the ",(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.a,{href:"/changelog/3.5.0",children:"3.5.0 changelog entry"})})," for an exhaustive list of changes."]})]})}function d(e={}){let{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},43023:(e,s,o)=>{o.d(s,{R:()=>l,x:()=>i});var t=o(63696);let n={},r=t.createContext(n);function l(e){let s=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),t.createElement(r.Provider,{value:s},e.children)}},83916:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/3.5","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.5/index.mdx","source":"@site/blog/releases/3.5/index.mdx","title":"Docusaurus 3.5","description":"We are happy to announce Docusaurus 3.5.","date":"2024-08-09T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.91,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.5","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-08-09T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753732000,"lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","nextItem":{"title":"Docusaurus 3.4","permalink":"/blog/releases/3.4"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[16657],{16302:(e,s,o)=>{o.d(s,{A:()=>t});let t=o.p+"assets/images/social-card-7b2ed059f27fc8b64f3f20025ebb382f.png"},23617:(e,s,o)=>{o.d(s,{A:()=>t});let t=o.p+"assets/images/author-index-4abd3b8b777b2c1b3958768559896262.png"},92840:(e,s,o)=>{o.d(s,{A:()=>t});let t=o.p+"assets/images/author-page-4a9753641b116ddfeecc46ed1dcee907.png"},62017:(e,s,o)=>{o.d(s,{A:()=>t});let t=o.p+"assets/images/author-socials-93483e664b2d095b137cf10c4769c100.png"},16562:(e,s,o)=>{o.d(s,{A:()=>t});let t=o.p+"assets/images/blog-feed-xslt-22194c2a971aba7f3bbf6115d3aa1d49.png"},74425:(e,s,o)=>{o.d(s,{A:()=>t});let t=o.p+"assets/images/blog-sidebar-years-1d0be02836d9a3307386c365b9969a37.png"},36235:(e,s,o)=>{o.d(s,{A:()=>t});let t=o.p+"assets/images/social-card-7b2ed059f27fc8b64f3f20025ebb382f.png"},33934:(e,s,o)=>{o.r(s),o.d(s,{assets:()=>a,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>t,toc:()=>c});var t=o(83916),n=o(62540),r=o(43023);let l={title:"Docusaurus 3.5",authors:["slorber"],tags:["release"],image:"./img/social-card.png",date:new Date("2024-08-09T00:00:00.000Z")},i=void 0,a={image:o(16302).A,authorsImageUrls:[void 0]},c=[{value:"Highlights",id:"highlights",level:2},{value:"Blog Social Icons",id:"blog-social-icons",level:3},{value:"Blog Authors Pages",id:"blog-authors-pages",level:3},{value:"Blog Feeds Styling",id:"blog-feeds-styling",level:3},{value:"Blog Sidebar Grouping",id:"blog-sidebar-grouping",level:3},{value:"Blog Consistency Options",id:"blog-consistency-options",level:3},{value:"<code>onInlineAuthors</code>",id:"oninlineauthors",level:4},{value:"<code>onUntruncatedBlogPosts</code>",id:"onuntruncatedblogposts",level:4},{value:"Translations",id:"translations",level:2},{value:"Other changes",id:"other-changes",level:2}];function h(e){let s={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(s.p,{children:["We are happy to announce ",(0,n.jsx)(s.strong,{children:"Docusaurus 3.5"}),"."]}),"\n",(0,n.jsxs)(s.p,{children:["This release contains many ",(0,n.jsx)(s.strong,{children:"new exciting blog features"}),"."]}),"\n",(0,n.jsxs)(s.p,{children:["Upgrading should be easy. Our ",(0,n.jsx)(s.a,{href:"/community/release-process",children:"release process"})," respects ",(0,n.jsx)(s.a,{href:"https://semver.org/",children:"Semantic Versioning"}),". Minor versions do not include any breaking changes."]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"Docusaurus blog post social card",src:o(36235).A+"",width:"1200",height:"600"})}),"\n","\n",(0,n.jsx)(s.h2,{id:"highlights",children:"Highlights"}),"\n",(0,n.jsx)(s.h3,{id:"blog-social-icons",children:"Blog Social Icons"}),"\n",(0,n.jsxs)(s.p,{children:["In ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10222",children:"#10222"}),", we added the possibility to associate social links to blog authors, for inline authors declared in front matter or global through the ",(0,n.jsx)(s.code,{children:"authors.yml"})," file."]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-yml",metastring:'title="blog/authors.yml"',children:"slorber:\n name: S\xe9bastien Lorber\n # other author properties...\n # highlight-start\n socials:\n x: sebastienlorber\n linkedin: sebastienlorber\n github: slorber\n newsletter: https://thisweekinreact.com\n # highlight-end\n"})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"Author socials screenshot displaying slorber author with 4 social platform icons",src:o(62017).A+"",width:"780",height:"180"})}),"\n",(0,n.jsxs)(s.p,{children:["Icons and handle shortcuts are provided for pre-defined platforms ",(0,n.jsx)(s.code,{children:"x"}),", ",(0,n.jsx)(s.code,{children:"linkedin"}),", ",(0,n.jsx)(s.code,{children:"github"})," and ",(0,n.jsx)(s.code,{children:"stackoverflow"}),". It's possible to provide any additional platform entry (like ",(0,n.jsx)(s.code,{children:"newsletter"})," in the example above) with a full URL."]}),"\n",(0,n.jsx)(s.h3,{id:"blog-authors-pages",children:"Blog Authors Pages"}),"\n",(0,n.jsxs)(s.p,{children:["In ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10216",children:"#10216"}),", we added the possibility for ",(0,n.jsx)(s.a,{href:"/docs/blog#global-authors",children:"global blog authors"})," (declared in ",(0,n.jsx)(s.code,{children:"authors.yml"}),") to have their own dedicated page listing all the blog posts they contributed to."]}),"\n",(0,n.jsxs)(s.p,{children:["This feature is opt-in and mostly relevant for ",(0,n.jsx)(s.strong,{children:"multi-author blogs"}),". You can turn it on for a specific author by setting the ",(0,n.jsx)(s.code,{children:"page: true"})," property:"]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-yml",metastring:'title="blog/authors.yml"',children:"slorber:\n name: S\xe9bastien Lorber\n # the description will be displayed on the author's page\n description: 'A freelance React and React-Native developer...'\n # highlight-next-line\n page: true # Turns the feature on\n"})}),"\n",(0,n.jsxs)(s.p,{children:["This creates a ",(0,n.jsx)(s.a,{href:"/blog/authors/slorber",children:"dedicated author page"})," at ",(0,n.jsx)(s.code,{children:"/blog/authors/slorber"}),"."]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"Author page screenshot for slorber global author",src:o(92840).A+"",width:"883",height:"900"})}),"\n",(0,n.jsxs)(s.p,{children:["An ",(0,n.jsx)(s.a,{href:"/blog/authors",children:"authors index page"})," is also created, listing all the blog authors."]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"Author index page listing multiple authors",src:o(23617).A+"",width:"705",height:"645"})}),"\n",(0,n.jsxs)(s.p,{children:["Check the ",(0,n.jsx)(s.a,{href:"/docs/blog#authors-pages",children:"blog authors pages guide"})," for details."]}),"\n",(0,n.jsx)(s.h3,{id:"blog-feeds-styling",children:"Blog Feeds Styling"}),"\n",(0,n.jsxs)(s.p,{children:["In ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/9252",children:"#9252"}),", we added support for ",(0,n.jsx)(s.a,{href:"https://darekkay.com/blog/rss-styling/",children:"styling your blog feeds"})," by providing custom XSLT ",(0,n.jsx)(s.code,{children:".xls"})," files for the RSS and Atom feeds. This allows browsers to render the feeds in a more visually appealing way, like a regular HTML page, instead of the default XML view."]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-js",metastring:'title="website/docusaurus.config.js"',children:"const blogOptions = {\n feedOptions: {\n // highlight-start\n xslt: {\n rss: 'custom-rss.xsl',\n atom: 'custom-atom.xsl',\n },\n // highlight-end\n },\n};\n"})}),"\n",(0,n.jsxs)(s.p,{children:["Writing your own XSLT can be complex, but you can also use ",(0,n.jsx)(s.code,{children:"xslt: true"})," to turn on the built-in style:"]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-js",metastring:'title="website/docusaurus.config.js"',children:"const blogOptions = {\n feedOptions: {\n // highlight-start\n xslt: true,\n // highlight-end\n },\n};\n"})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"Screenshot of the Docusaurus blog RSS feed, beautifully styled",src:o(16562).A+"",width:"730",height:"782"})}),"\n",(0,n.jsx)(s.h3,{id:"blog-sidebar-grouping",children:"Blog Sidebar Grouping"}),"\n",(0,n.jsxs)(s.p,{children:["In ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10252",children:"#10252"}),", we added support for grouping blog posts by years in the blog sidebar."]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"Screenshot of the Docusaurus blog, in particular the sidebar items grouped by year",src:o(74425).A+"",width:"910",height:"452"})}),"\n",(0,n.jsxs)(s.p,{children:["This feature is now turned on by default, but can be disabled with ",(0,n.jsx)(s.code,{children:"themeConfig.blog.sidebar.groupByYear: false"}),"."]}),"\n",(0,n.jsx)(s.h3,{id:"blog-consistency-options",children:"Blog Consistency Options"}),"\n",(0,n.jsx)(s.p,{children:"We added new blog options to enforce recommended practices for your blog posts:"}),"\n",(0,n.jsx)(s.h4,{id:"oninlineauthors",children:(0,n.jsx)(s.code,{children:"onInlineAuthors"})}),"\n",(0,n.jsxs)(s.p,{children:["We believe large multi-blogs are easier to manage by using ",(0,n.jsx)(s.a,{href:"/docs/blog#global-authors",children:"global authors"}),", declared in ",(0,n.jsx)(s.code,{children:"authors.yml"}),". This notably permits to avoids duplicating author information across multiple blog posts, and now permits to generate ",(0,n.jsx)(s.a,{href:"/docs/blog#authors-pages",children:"author pages"}),"."]}),"\n",(0,n.jsxs)(s.p,{children:["In ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10224",children:"#10224"}),", we added the ",(0,n.jsx)(s.code,{children:"onInlineAuthors"})," option. Use ",(0,n.jsx)(s.code,{children:"onInlineAuthors: 'throw'"})," to forbid ",(0,n.jsx)(s.a,{href:"/docs/blog#inline-authors",children:"inline authors"}),", and enforce a consistent usage of ",(0,n.jsx)(s.a,{href:"/docs/blog#global-authors",children:"global authors"}),"."]}),"\n",(0,n.jsx)(s.h4,{id:"onuntruncatedblogposts",children:(0,n.jsx)(s.code,{children:"onUntruncatedBlogPosts"})}),"\n",(0,n.jsxs)(s.p,{children:["We believe blog posts are better using ",(0,n.jsx)(s.a,{href:"/docs/blog#blog-list",children:"truncation markers"})," (",(0,n.jsx)(s.code,{children:"<!-- truncate -->"})," or ",(0,n.jsx)(s.code,{children:"{/* truncate */}"}),"). On paginated lists (blog home, tags pages, authors pages), this permits to render a more concise preview of the blog post instead of a full blog post."]}),"\n",(0,n.jsxs)(s.p,{children:["In ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10375",children:"#10375"}),", we added the ",(0,n.jsx)(s.code,{children:"onUntruncatedBlogPosts"})," option. Use ",(0,n.jsx)(s.code,{children:"onUntruncatedBlogPosts: 'throw'"})," to enforce a consistent usage of ",(0,n.jsx)(s.a,{href:"/docs/blog#blog-list",children:"truncation markers"}),"."]}),"\n",(0,n.jsx)(s.h2,{id:"translations",children:"Translations"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u{1F1EA}\u{1F1EA} ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10339",children:"#10339"}),": Add Estonian theme translations."]}),"\n",(0,n.jsxs)(s.li,{children:["\u{1F1EE}\u{1F1E9} ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10325",children:"#10325"}),": Add Indonesian theme translations."]}),"\n",(0,n.jsxs)(s.li,{children:["\u{1F1EA}\u{1F1F8} ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10360",children:"#10360"}),": Improve Spanish theme translations."]}),"\n",(0,n.jsxs)(s.li,{children:["\u{1F1E9}\u{1F1EA} ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10235",children:"#10235"}),": Improve German theme translations."]}),"\n",(0,n.jsxs)(s.li,{children:["\u{1F1E8}\u{1F1F3} ",(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10257",children:"#10257"}),": Improve Traditional Chinese (zh-Hant) theme translations."]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"other-changes",children:"Other changes"}),"\n",(0,n.jsx)(s.p,{children:"Other notable changes include:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10369",children:"#10369"}),": Add support for ",(0,n.jsx)(s.a,{href:"https://pkg.pr.new",children:"pkg.pr.new"})," continuous releases so that you can test any pull-request code in a StackBlitz playground."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10376",children:"#10376"}),": Theme unlisted/draft banners are also shown in dev so that you don't forget to publish your content."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10335",children:"#10335"}),": The Markdown top-level headings ",(0,n.jsx)(s.code,{children:"# title"})," are automatically wrapped in ",(0,n.jsx)(s.code,{children:"<header>"})," for consistency with front matter ",(0,n.jsx)(s.code,{children:"title: Title"}),"."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10286",children:"#10286"}),": Allows Docusaurus plugins to self-disable by returning ",(0,n.jsx)(s.code,{children:"null"}),"."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10241",children:"#10241"}),": Add support for ",(0,n.jsxs)(s.a,{href:"https://mdxjs.com/packages/mdx/#processoroptions",children:["MDX processor ",(0,n.jsx)(s.code,{children:"recmaPlugins"})," option"]})," to modify the MDX Estree AST."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10324",children:"#10324"}),": The docs autogenerated ",(0,n.jsx)(s.code,{children:"_category_.json"})," accepts a new ",(0,n.jsx)(s.code,{children:"description"})," property that gets displayed on generated index pages."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10368",children:"#10368"}),": The CLI command ",(0,n.jsx)(s.code,{children:"docusaurus --version"})," now actually returns the Docusaurus version."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10240",children:"#10240"}),": Markdown ",(0,n.jsx)(s.code,{children:"mdx-code-block"})," now supports indentation."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10219",children:"#10219"}),": Fix ",(0,n.jsx)(s.code,{children:"<TabItem lazy>"})," support the for ",(0,n.jsx)(s.code,{children:"className"})," prop."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10313",children:"#10313"}),": Blog-related ",(0,n.jsx)(s.code,{children:"@docusaurus/theme-common/internal"})," APIs have been moved to ",(0,n.jsx)(s.code,{children:"@docusaurus/plugin-content-blog/client"}),"."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/10316",children:"#10316"}),": Docs-related ",(0,n.jsx)(s.code,{children:"@docusaurus/theme-common/internal"})," APIs have been moved to ",(0,n.jsx)(s.code,{children:"@docusaurus/plugin-content-docs/client"}),"."]}),"\n"]}),"\n",(0,n.jsxs)(s.p,{children:["Check the ",(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.a,{href:"/changelog/3.5.0",children:"3.5.0 changelog entry"})})," for an exhaustive list of changes."]})]})}function d(e={}){let{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},43023:(e,s,o)=>{o.d(s,{R:()=>l,x:()=>i});var t=o(63696);let n={},r=t.createContext(n);function l(e){let s=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),t.createElement(r.Provider,{value:s},e.children)}},83916:e=>{e.exports=JSON.parse('{"permalink":"/blog/releases/3.5","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/releases/3.5/index.mdx","source":"@site/blog/releases/3.5/index.mdx","title":"Docusaurus 3.5","description":"We are happy to announce Docusaurus 3.5.","date":"2024-08-09T00:00:00.000Z","tags":[{"inline":false,"label":"Release","permalink":"/blog/tags/release","description":"Blog posts about Docusaurus\' new releases"}],"readingTime":3.91,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 3.5","authors":["slorber"],"tags":["release"],"image":"./img/social-card.png","date":"2024-08-09T00:00:00.000Z"},"unlisted":false,"lastUpdatedAt":1726753963000,"lastUpdatedBy":"S\xe9bastien Lorber","nextItem":{"title":"Docusaurus 3.4","permalink":"/blog/releases/3.4"}}')}}]); \ No newline at end of file diff --git a/assets/js/85d61fbd.7d7d71d2.js b/assets/js/85d61fbd.7aba3983.js similarity index 70% rename from assets/js/85d61fbd.7d7d71d2.js rename to assets/js/85d61fbd.7aba3983.js index fe0d1b8973..bce7964172 100644 --- a/assets/js/85d61fbd.7d7d71d2.js +++ b/assets/js/85d61fbd.7aba3983.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[37931],{15995:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750);function a({children:e,hidden:t,className:r}){return(0,n.jsx)("div",{role:"tabpanel",className:(0,o.A)("tabItem_pnkT",r),hidden:t,children:e})}},27446:(e,t,r)=>{r.d(t,{A:()=>j});var n=r(62540),o=r(63696),a=r(11750),l=r(7846),i=r(49519),s=r(96439),c=r(19739),u=r(66904),d=r(79244);function p(e){var t,r;return null!==(r=null===(t=o.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,o.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==r?r:[]}function h({value:e,tabValues:t}){return t.some(t=>t.value===e)}var m=r(10709);function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function f(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function v({className:e,block:t,selectedValue:r,selectValue:o,tabValues:i}){let s=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.a_)(),u=e=>{let t=e.currentTarget,n=i[s.indexOf(t)].value;n!==r&&(c(t),o(n))},d=e=>{var t,r;let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let r=s.indexOf(e.currentTarget)+1;n=null!==(t=s[r])&&void 0!==t?t:s[0];break}case"ArrowLeft":{let t=s.indexOf(e.currentTarget)-1;n=null!==(r=s[t])&&void 0!==r?r:s[s.length-1]}}null==n||n.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.A)("tabs",{"tabs--block":t},e),children:i.map(({value:e,label:t,attributes:o})=>(0,n.jsx)("li",f(b({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,ref:e=>s.push(e),onKeyDown:d,onClick:u},o),{className:(0,a.A)("tabs__item","tabItem_AQgk",null==o?void 0:o.className,{"tabs__item--active":r===e}),children:null!=t?t:e}),e))})}function g({lazy:e,children:t,selectedValue:r}){let l=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=l.find(e=>e.props.value===r);return e?(0,o.cloneElement)(e,{className:(0,a.A)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:l.map((e,t)=>(0,o.cloneElement)(e,{key:t,hidden:e.props.value!==r}))})}function y(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:n}=e,a=function(e){let{values:t,children:r}=e;return(0,o.useMemo)(()=>{let e=null!=t?t:p(r).map(({props:{value:e,label:t,attributes:r,default:n}})=>({value:e,label:t,attributes:r,default:n}));return!function(e){let t=(0,u.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,r])}(e),[l,m]=(0,o.useState)(()=>(function({defaultValue:e,tabValues:t}){var r;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!h({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let n=null!==(r=t.find(e=>e.default))&&void 0!==r?r:t[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:t,tabValues:a})),[b,f]=function({queryString:e=!1,groupId:t}){let r=(0,i.W6)(),n=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,c.aZ)(n),(0,o.useCallback)(e=>{var t,o;if(!n)return;let a=new URLSearchParams(r.location.search);a.set(n,e),r.replace((t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r.location),o=o={search:a.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}),t))},[n,r])]}({queryString:r,groupId:n}),[v,g]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[r,n]=(0,d.Dv)(t);return[r,(0,o.useCallback)(e=>{t&&n.set(e)},[t,n])]}({groupId:n}),y=(()=>{let e=null!=b?b:v;return h({value:e,tabValues:a})?e:null})();return(0,s.A)(()=>{y&&m(y)},[y]),{selectedValue:l,selectValue:(0,o.useCallback)(e=>{if(!h({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);m(e),f(e),g(e)},[f,g,a]),tabValues:a}}(e);return(0,n.jsxs)("div",{className:(0,a.A)("tabs-container","tabList_Qoir"),children:[(0,n.jsx)(v,b({},t,e)),(0,n.jsx)(g,b({},t,e))]})}function j(e){let t=(0,m.A)();return(0,n.jsx)(y,f(b({},e),{children:p(e.children)}),String(t))}},82061:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>n,toc:()=>d});let n=JSON.parse('{"id":"api/themes/theme-live-codeblock","title":"\u{1F4E6} theme-live-codeblock","description":"This theme provides a @theme/CodeBlock component that is powered by react-live. You can read more on interactive code editor documentation.","source":"@site/docs/api/themes/theme-live-codeblock.mdx","sourceDirName":"api/themes","slug":"/api/themes/@docusaurus/theme-live-codeblock","permalink":"/docs/api/themes/@docusaurus/theme-live-codeblock","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/theme-live-codeblock.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":3,"frontMatter":{"sidebar_position":3,"slug":"/api/themes/@docusaurus/theme-live-codeblock"},"sidebar":"api","previous":{"title":"\u{1F4E6} theme-classic","permalink":"/docs/api/themes/@docusaurus/theme-classic"},"next":{"title":"\u{1F4E6} theme-search-algolia","permalink":"/docs/api/themes/@docusaurus/theme-search-algolia"}}');var o=r(62540),a=r(43023),l=r(27446),i=r(15995);let s={sidebar_position:3,slug:"/api/themes/@docusaurus/theme-live-codeblock"},c="\u{1F4E6} theme-live-codeblock",u={},d=[{value:"Configuration",id:"configuration",level:3}];function p(e){let t={a:"a",code:"code",h1:"h1",h3:"h3",header:"header",p:"p",pre:"pre",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"-theme-live-codeblock",children:"\u{1F4E6} theme-live-codeblock"})}),"\n",(0,o.jsxs)(t.p,{children:["This theme provides a ",(0,o.jsx)(t.code,{children:"@theme/CodeBlock"})," component that is powered by react-live. You can read more on ",(0,o.jsx)(t.a,{href:"/docs/markdown-features/code-blocks#interactive-code-editor",children:"interactive code editor"})," documentation."]}),"\n",(0,o.jsxs)(l.A,{groupId:"npm2yarn",children:[(0,o.jsx)(i.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install --save @docusaurus/theme-live-codeblock\n"})})}),(0,o.jsx)(i.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn add @docusaurus/theme-live-codeblock\n"})})}),(0,o.jsx)(i.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm add @docusaurus/theme-live-codeblock\n"})})})]}),"\n",(0,o.jsx)(t.h3,{id:"configuration",children:"Configuration"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n plugins: ['@docusaurus/theme-live-codeblock'],\n themeConfig: {\n liveCodeBlock: {\n /**\n * The position of the live playground, above or under the editor\n * Possible values: \"top\" | \"bottom\"\n */\n playgroundPosition: 'bottom',\n },\n },\n};\n"})})]})}function h(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(p,{...e})}):p(e)}},43023:(e,t,r)=>{r.d(t,{R:()=>l,x:()=>i});var n=r(63696);let o={},a=n.createContext(o);function l(e){let t=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[37931],{15995:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(62540);r(63696);var o=r(11750);function a({children:e,hidden:t,className:r}){return(0,n.jsx)("div",{role:"tabpanel",className:(0,o.A)("tabItem_pnkT",r),hidden:t,children:e})}},27446:(e,t,r)=>{r.d(t,{A:()=>j});var n=r(62540),o=r(63696),a=r(11750),l=r(7846),i=r(49519),s=r(96439),c=r(19739),u=r(66904),d=r(79244);function p(e){var t,r;return null!==(r=null===(t=o.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,o.isValidElement)(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))||void 0===t?void 0:t.filter(Boolean))&&void 0!==r?r:[]}function h({value:e,tabValues:t}){return t.some(t=>t.value===e)}var m=r(10709);function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function f(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function v({className:e,block:t,selectedValue:r,selectValue:o,tabValues:i}){let s=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.a_)(),u=e=>{let t=e.currentTarget,n=i[s.indexOf(t)].value;n!==r&&(c(t),o(n))},d=e=>{var t,r;let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let r=s.indexOf(e.currentTarget)+1;n=null!==(t=s[r])&&void 0!==t?t:s[0];break}case"ArrowLeft":{let t=s.indexOf(e.currentTarget)-1;n=null!==(r=s[t])&&void 0!==r?r:s[s.length-1]}}null==n||n.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.A)("tabs",{"tabs--block":t},e),children:i.map(({value:e,label:t,attributes:o})=>(0,n.jsx)("li",f(b({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,ref:e=>s.push(e),onKeyDown:d,onClick:u},o),{className:(0,a.A)("tabs__item","tabItem_AQgk",null==o?void 0:o.className,{"tabs__item--active":r===e}),children:null!=t?t:e}),e))})}function g({lazy:e,children:t,selectedValue:r}){let l=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){let e=l.find(e=>e.props.value===r);return e?(0,o.cloneElement)(e,{className:(0,a.A)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:l.map((e,t)=>(0,o.cloneElement)(e,{key:t,hidden:e.props.value!==r}))})}function y(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:n}=e,a=function(e){let{values:t,children:r}=e;return(0,o.useMemo)(()=>{let e=null!=t?t:p(r).map(({props:{value:e,label:t,attributes:r,default:n}})=>({value:e,label:t,attributes:r,default:n}));return!function(e){let t=(0,u.XI)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,r])}(e),[l,m]=(0,o.useState)(()=>(function({defaultValue:e,tabValues:t}){var r;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!h({value:e,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" 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 e}let n=null!==(r=t.find(e=>e.default))&&void 0!==r?r:t[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:t,tabValues:a})),[b,f]=function({queryString:e=!1,groupId:t}){let r=(0,i.W6)(),n=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw Error('Docusaurus error: The <Tabs> 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 null!=t?t:null}({queryString:e,groupId:t});return[(0,c.aZ)(n),(0,o.useCallback)(e=>{var t,o;if(!n)return;let a=new URLSearchParams(r.location.search);a.set(n,e),r.replace((t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},r.location),o=o={search:a.toString()},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}),t))},[n,r])]}({queryString:r,groupId:n}),[v,g]=function({groupId:e}){let t=e?`docusaurus.tab.${e}`:null,[r,n]=(0,d.Dv)(t);return[r,(0,o.useCallback)(e=>{t&&n.set(e)},[t,n])]}({groupId:n}),y=(()=>{let e=null!=b?b:v;return h({value:e,tabValues:a})?e:null})();return(0,s.A)(()=>{y&&m(y)},[y]),{selectedValue:l,selectValue:(0,o.useCallback)(e=>{if(!h({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);m(e),f(e),g(e)},[f,g,a]),tabValues:a}}(e);return(0,n.jsxs)("div",{className:(0,a.A)("tabs-container","tabList_Qoir"),children:[(0,n.jsx)(v,b({},t,e)),(0,n.jsx)(g,b({},t,e))]})}function j(e){let t=(0,m.A)();return(0,n.jsx)(y,f(b({},e),{children:p(e.children)}),String(t))}},82061:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>n,toc:()=>d});let n=JSON.parse('{"id":"api/themes/theme-live-codeblock","title":"\u{1F4E6} theme-live-codeblock","description":"This theme provides a @theme/CodeBlock component that is powered by react-live. You can read more on interactive code editor documentation.","source":"@site/docs/api/themes/theme-live-codeblock.mdx","sourceDirName":"api/themes","slug":"/api/themes/@docusaurus/theme-live-codeblock","permalink":"/docs/api/themes/@docusaurus/theme-live-codeblock","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/theme-live-codeblock.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":3,"frontMatter":{"sidebar_position":3,"slug":"/api/themes/@docusaurus/theme-live-codeblock"},"sidebar":"api","previous":{"title":"\u{1F4E6} theme-classic","permalink":"/docs/api/themes/@docusaurus/theme-classic"},"next":{"title":"\u{1F4E6} theme-search-algolia","permalink":"/docs/api/themes/@docusaurus/theme-search-algolia"}}');var o=r(62540),a=r(43023),l=r(27446),i=r(15995);let s={sidebar_position:3,slug:"/api/themes/@docusaurus/theme-live-codeblock"},c="\u{1F4E6} theme-live-codeblock",u={},d=[{value:"Configuration",id:"configuration",level:3}];function p(e){let t={a:"a",code:"code",h1:"h1",h3:"h3",header:"header",p:"p",pre:"pre",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"-theme-live-codeblock",children:"\u{1F4E6} theme-live-codeblock"})}),"\n",(0,o.jsxs)(t.p,{children:["This theme provides a ",(0,o.jsx)(t.code,{children:"@theme/CodeBlock"})," component that is powered by react-live. You can read more on ",(0,o.jsx)(t.a,{href:"/docs/markdown-features/code-blocks#interactive-code-editor",children:"interactive code editor"})," documentation."]}),"\n",(0,o.jsxs)(l.A,{groupId:"npm2yarn",children:[(0,o.jsx)(i.A,{value:"npm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm install --save @docusaurus/theme-live-codeblock\n"})})}),(0,o.jsx)(i.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"yarn add @docusaurus/theme-live-codeblock\n"})})}),(0,o.jsx)(i.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"pnpm add @docusaurus/theme-live-codeblock\n"})})})]}),"\n",(0,o.jsx)(t.h3,{id:"configuration",children:"Configuration"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n plugins: ['@docusaurus/theme-live-codeblock'],\n themeConfig: {\n liveCodeBlock: {\n /**\n * The position of the live playground, above or under the editor\n * Possible values: \"top\" | \"bottom\"\n */\n playgroundPosition: 'bottom',\n },\n },\n};\n"})})]})}function h(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(p,{...e})}):p(e)}},43023:(e,t,r)=>{r.d(t,{R:()=>l,x:()=>i});var n=r(63696);let o={},a=n.createContext(o);function l(e){let t=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/86e3a3d9.8683f407.js b/assets/js/86e3a3d9.95f7396d.js similarity index 67% rename from assets/js/86e3a3d9.8683f407.js rename to assets/js/86e3a3d9.95f7396d.js index ac077e660f..cfceb2301d 100644 --- a/assets/js/86e3a3d9.8683f407.js +++ b/assets/js/86e3a3d9.95f7396d.js @@ -1,4 +1,4 @@ "use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[20136],{22047:(e,t,r)=>{r.d(t,{A:()=>x});var n=r(62540);r(63696);var o=r(11750),a=r(46222),c=r(36372),s=r(13111),i=r(14652),l=r(81912),d=r(37425);let u={cardContainer:"cardContainer_Uewx",cardTitle:"cardTitle_dwRT",cardDescription:"cardDescription_mCBT"};function m({href:e,children:t}){return(0,n.jsx)(c.A,{href:e,className:(0,o.A)("card padding--lg",u.cardContainer),children:t})}function h({href:e,icon:t,title:r,description:a}){return(0,n.jsxs)(m,{href:e,children:[(0,n.jsxs)(d.A,{as:"h2",className:(0,o.A)("text--truncate",u.cardTitle),title:r,children:[t," ",r]}),a&&(0,n.jsx)("p",{className:(0,o.A)("text--truncate",u.cardDescription),title:a,children:a})]})}function g({item:e}){var t;let r=(0,a.Nr)(e),o=function(){let{selectMessage:e}=(0,s.W)();return t=>e(t,(0,l.T)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t}))}();return r?(0,n.jsx)(h,{href:r,icon:"\u{1F5C3}\uFE0F",title:e.label,description:null!==(t=e.description)&&void 0!==t?t:o(e.items.length)}):null}function p({item:e}){var t,r;let o=(0,i.A)(e.href)?"\u{1F4C4}\uFE0F":"\u{1F517}",c=(0,a.cC)(null!==(t=e.docId)&&void 0!==t?t:void 0);return(0,n.jsx)(h,{href:e.href,icon:o,title:e.label,description:null!==(r=e.description)&&void 0!==r?r:null==c?void 0:c.description})}function f({item:e}){switch(e.type){case"link":return(0,n.jsx)(p,{item:e});case"category":return(0,n.jsx)(g,{item:e});default:throw Error(`unknown item type ${JSON.stringify(e)}`)}}function y({className:e}){let t=(0,a.$S)();return(0,n.jsx)(x,{items:t.items,className:e})}function x(e){let{items:t,className:r}=e;if(!t)return(0,n.jsx)(y,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e));let c=(0,a.d1)(t);return(0,n.jsx)("section",{className:(0,o.A)("row",r),children:c.map((e,t)=>(0,n.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,n.jsx)(f,{item:e})},t))})}},93914:(e,t,r)=>{function n(...e){return r(69615).$S(...e)}r.d(t,{$S:()=>n}),r(99468)},13111:(e,t,r)=>{r.d(t,{W:()=>i});var n=r(63696),o=r(99468);let a=["zero","one","two","few","many","other"];function c(e){return a.filter(t=>e.includes(t))}let s={locale:"en",pluralForms:c(["one","other"]),select:e=>1===e?"one":"other"};function i(){let e=function(){let{i18n:{currentLocale:e}}=(0,o.A)();return(0,n.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:c(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". Docusaurus will fallback to the default (English) implementation. Error: ${t.message} -`),s}},[e])}();return{selectMessage:(t,r)=>(function(e,t,r){let n=e.split("|");if(1===n.length)return n[0];n.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${n.length}: ${e}`);let o=r.select(t);return n[Math.min(r.pluralForms.indexOf(o),n.length-1)]})(r,t,e)}}},92612:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>n,toc:()=>u});let n=JSON.parse('{"id":"tests/category-links/with-category-name-doc/with-category-name-doc","title":"Category with a doc of category\'s name","description":"You should be able to click on the category and browse this /.md doc","source":"@site/_dogfooding/_docs tests/tests/category-links/with-category-name-doc/with-category-name-doc.mdx","sourceDirName":"tests/category-links/with-category-name-doc","slug":"/tests/category-links/with-category-name-doc/","permalink":"/tests/docs/tests/category-links/with-category-name-doc/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/regular-category/sample-doc"},"next":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/with-category-name-doc/sample-doc"}}');var o=r(62540),a=r(43023),c=r(22047),s=r(93914);let i={},l="Category with a doc of category's name",d={},u=[{value:"Intro",id:"intro",level:2},{value:"Category content",id:"category-content",level:2}];function m(e){let t={admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"category-with-a-doc-of-categorys-name",children:"Category with a doc of category's name"})}),"\n",(0,o.jsxs)(t.p,{children:["You should be able to click on the category and browse this ",(0,o.jsx)(t.code,{children:"<categoryName>/<categoryName>.md"})," doc"]}),"\n",(0,o.jsx)(t.h2,{id:"intro",children:"Intro"}),"\n",(0,o.jsx)(t.p,{children:"Some intro text"}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsx)(t.p,{children:"It is also possible to render the card items for that category thanks to MDX:"})}),"\n",(0,o.jsx)(t.h2,{id:"category-content",children:"Category content"}),"\n","\n",(0,o.jsx)(c.A,{items:(0,s.$S)().items})]})}function h(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(m,{...e})}):m(e)}h.displayName="MDXContent(_dogfooding/_docs tests/tests/category-links/with-category-name-doc/with-category-name-doc.mdx)"},43023:(e,t,r)=>{r.d(t,{R:()=>c,x:()=>s});var n=r(63696);let o={},a=n.createContext(o);function c(e){let t=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file +`),s}},[e])}();return{selectMessage:(t,r)=>(function(e,t,r){let n=e.split("|");if(1===n.length)return n[0];n.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${n.length}: ${e}`);let o=r.select(t);return n[Math.min(r.pluralForms.indexOf(o),n.length-1)]})(r,t,e)}}},92612:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>n,toc:()=>u});let n=JSON.parse('{"id":"tests/category-links/with-category-name-doc/with-category-name-doc","title":"Category with a doc of category\'s name","description":"You should be able to click on the category and browse this /.md doc","source":"@site/_dogfooding/_docs tests/tests/category-links/with-category-name-doc/with-category-name-doc.mdx","sourceDirName":"tests/category-links/with-category-name-doc","slug":"/tests/category-links/with-category-name-doc/","permalink":"/tests/docs/tests/category-links/with-category-name-doc/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/regular-category/sample-doc"},"next":{"title":"Sample doc","permalink":"/tests/docs/tests/category-links/with-category-name-doc/sample-doc"}}');var o=r(62540),a=r(43023),c=r(22047),s=r(93914);let i={},l="Category with a doc of category's name",d={},u=[{value:"Intro",id:"intro",level:2},{value:"Category content",id:"category-content",level:2}];function m(e){let t={admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"category-with-a-doc-of-categorys-name",children:"Category with a doc of category's name"})}),"\n",(0,o.jsxs)(t.p,{children:["You should be able to click on the category and browse this ",(0,o.jsx)(t.code,{children:"<categoryName>/<categoryName>.md"})," doc"]}),"\n",(0,o.jsx)(t.h2,{id:"intro",children:"Intro"}),"\n",(0,o.jsx)(t.p,{children:"Some intro text"}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsx)(t.p,{children:"It is also possible to render the card items for that category thanks to MDX:"})}),"\n",(0,o.jsx)(t.h2,{id:"category-content",children:"Category content"}),"\n","\n",(0,o.jsx)(c.A,{items:(0,s.$S)().items})]})}function h(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(m,{...e})}):m(e)}h.displayName="MDXContent(_dogfooding/_docs tests/tests/category-links/with-category-name-doc/with-category-name-doc.mdx)"},43023:(e,t,r)=>{r.d(t,{R:()=>c,x:()=>s});var n=r(63696);let o={},a=n.createContext(o);function c(e){let t=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/87585.0bc2f54f.js b/assets/js/87585.0bc2f54f.js new file mode 100644 index 0000000000..1de59bed6d --- /dev/null +++ b/assets/js/87585.0bc2f54f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[87585],{87585:(e,s,t)=>{t.d(s,{createGitGraphServices:()=>a.b});var a=t(43439);t(69663)}}]); \ No newline at end of file diff --git a/assets/js/87e9b44c.d7bab96a.js b/assets/js/87e9b44c.aa113e53.js similarity index 76% rename from assets/js/87e9b44c.d7bab96a.js rename to assets/js/87e9b44c.aa113e53.js index 615aa58b4a..4a1be3ba1c 100644 --- a/assets/js/87e9b44c.d7bab96a.js +++ b/assets/js/87e9b44c.aa113e53.js @@ -1,4 +1,4 @@ "use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[74819],{22047:(e,t,n)=>{n.d(t,{A:()=>y});var s=n(62540);n(63696);var i=n(11750),r=n(46222),l=n(36372),o=n(13111),a=n(14652),c=n(81912),u=n(37425);let d={cardContainer:"cardContainer_Uewx",cardTitle:"cardTitle_dwRT",cardDescription:"cardDescription_mCBT"};function m({href:e,children:t}){return(0,s.jsx)(l.A,{href:e,className:(0,i.A)("card padding--lg",d.cardContainer),children:t})}function f({href:e,icon:t,title:n,description:r}){return(0,s.jsxs)(m,{href:e,children:[(0,s.jsxs)(u.A,{as:"h2",className:(0,i.A)("text--truncate",d.cardTitle),title:n,children:[t," ",n]}),r&&(0,s.jsx)("p",{className:(0,i.A)("text--truncate",d.cardDescription),title:r,children:r})]})}function p({item:e}){var t;let n=(0,r.Nr)(e),i=function(){let{selectMessage:e}=(0,o.W)();return t=>e(t,(0,c.T)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t}))}();return n?(0,s.jsx)(f,{href:n,icon:"\u{1F5C3}\uFE0F",title:e.label,description:null!==(t=e.description)&&void 0!==t?t:i(e.items.length)}):null}function h({item:e}){var t,n;let i=(0,a.A)(e.href)?"\u{1F4C4}\uFE0F":"\u{1F517}",l=(0,r.cC)(null!==(t=e.docId)&&void 0!==t?t:void 0);return(0,s.jsx)(f,{href:e.href,icon:i,title:e.label,description:null!==(n=e.description)&&void 0!==n?n:null==l?void 0:l.description})}function g({item:e}){switch(e.type){case"link":return(0,s.jsx)(h,{item:e});case"category":return(0,s.jsx)(p,{item:e});default:throw Error(`unknown item type ${JSON.stringify(e)}`)}}function b({className:e}){let t=(0,r.$S)();return(0,s.jsx)(y,{items:t.items,className:e})}function y(e){let{items:t,className:n}=e;if(!t)return(0,s.jsx)(b,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},s=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),s.forEach(function(t){var s;s=n[t],t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s})}return e}({},e));let l=(0,r.d1)(t);return(0,s.jsx)("section",{className:(0,i.A)("row",n),children:l.map((e,t)=>(0,s.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,s.jsx)(g,{item:e})},t))})}},13111:(e,t,n)=>{n.d(t,{W:()=>a});var s=n(63696),i=n(99468);let r=["zero","one","two","few","many","other"];function l(e){return r.filter(t=>e.includes(t))}let o={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function a(){let e=function(){let{i18n:{currentLocale:e}}=(0,i.A)();return(0,s.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:l(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". Docusaurus will fallback to the default (English) implementation. Error: ${t.message} -`),o}},[e])}();return{selectMessage:(t,n)=>(function(e,t,n){let s=e.split("|");if(1===s.length)return s[0];s.length>n.pluralForms.length&&console.error(`For locale=${n.locale}, a maximum of ${n.pluralForms.length} plural forms are expected (${n.pluralForms.join(",")}), but the message contains ${s.length}: ${e}`);let i=n.select(t);return s[Math.min(n.pluralForms.indexOf(i),s.length-1)]})(n,t,e)}}},24911:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>u});let s=JSON.parse('{"id":"tests/visibility/some-unlisteds/unlisted-subcategory/index","title":"Some Unlisteds - Subcategory index unlisted","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-unlisteds/unlisted-subcategory/index.mdx","sourceDirName":"tests/visibility/some-unlisteds/unlisted-subcategory","slug":"/tests/visibility/some-unlisteds/unlisted-subcategory/","permalink":"/tests/docs/tests/visibility/some-unlisteds/unlisted-subcategory/","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"}');var i=n(62540),r=n(43023),l=n(22047);let o={unlisted:!0,tags:["visibility","unlisted"]},a="Some Unlisteds - Subcategory index unlisted",c={},u=[];function d(e){let t={h1:"h1",header:"header",p:"p",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"some-unlisteds---subcategory-index-unlisted",children:"Some Unlisteds - Subcategory index unlisted"})}),"\n",(0,i.jsx)(t.p,{children:"Doc with unlisted front matter"}),"\n","\n",(0,i.jsx)(l.A,{})]})}function m(e={}){let{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}m.displayName="MDXContent(_dogfooding/_docs tests/tests/visibility/some-unlisteds/unlisted-subcategory/index.mdx)"},43023:(e,t,n)=>{n.d(t,{R:()=>l,x:()=>o});var s=n(63696);let i={},r=s.createContext(i);function l(e){let t=s.useContext(r);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:l(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file +`),o}},[e])}();return{selectMessage:(t,n)=>(function(e,t,n){let s=e.split("|");if(1===s.length)return s[0];s.length>n.pluralForms.length&&console.error(`For locale=${n.locale}, a maximum of ${n.pluralForms.length} plural forms are expected (${n.pluralForms.join(",")}), but the message contains ${s.length}: ${e}`);let i=n.select(t);return s[Math.min(n.pluralForms.indexOf(i),s.length-1)]})(n,t,e)}}},24911:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>u});let s=JSON.parse('{"id":"tests/visibility/some-unlisteds/unlisted-subcategory/index","title":"Some Unlisteds - Subcategory index unlisted","description":"Doc with unlisted front matter","source":"@site/_dogfooding/_docs tests/tests/visibility/some-unlisteds/unlisted-subcategory/index.mdx","sourceDirName":"tests/visibility/some-unlisteds/unlisted-subcategory","slug":"/tests/visibility/some-unlisteds/unlisted-subcategory/","permalink":"/tests/docs/tests/visibility/some-unlisteds/unlisted-subcategory/","draft":false,"unlisted":true,"tags":[{"inline":false,"label":"Visibility","permalink":"/tests/docs/tags/visibility"},{"inline":false,"label":"Unlisted","permalink":"/tests/docs/tags/unlisted"}],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"unlisted":true,"tags":["visibility","unlisted"]},"sidebar":"sidebar"}');var i=n(62540),r=n(43023),l=n(22047);let o={unlisted:!0,tags:["visibility","unlisted"]},a="Some Unlisteds - Subcategory index unlisted",c={},u=[];function d(e){let t={h1:"h1",header:"header",p:"p",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"some-unlisteds---subcategory-index-unlisted",children:"Some Unlisteds - Subcategory index unlisted"})}),"\n",(0,i.jsx)(t.p,{children:"Doc with unlisted front matter"}),"\n","\n",(0,i.jsx)(l.A,{})]})}function m(e={}){let{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}m.displayName="MDXContent(_dogfooding/_docs tests/tests/visibility/some-unlisteds/unlisted-subcategory/index.mdx)"},43023:(e,t,n)=>{n.d(t,{R:()=>l,x:()=>o});var s=n(63696);let i={},r=s.createContext(i);function l(e){let t=s.useContext(r);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:l(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/88882.815b4d23.js b/assets/js/88882.815b4d23.js deleted file mode 100644 index d444d91094..0000000000 --- a/assets/js/88882.815b4d23.js +++ /dev/null @@ -1,113 +0,0 @@ -(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[88882],{33838:(n,t,e)=>{var i;i=function(){return(function n(t,e,i){function r(a,u){if(!e[a]){if(!t[a]){if(c)return c(a,!0);var o=Error("Cannot find module '"+a+"'");throw o.code="MODULE_NOT_FOUND",o}var s=e[a]={exports:{}};t[a][0].call(s.exports,function(n){return r(t[a][1][n]||n)},s,s.exports,n,t,e,i)}return e[a].exports}for(var c=void 0,a=0;a<i.length;a++)r(i[a]);return r})({1:[function(n,t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function n(n,t){for(var e=0;e<t.length;e++){var i=t[e];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(n,i.key,i)}}return function(t,e,i){return e&&n(t.prototype,e),i&&n(t,i),t}}();function r(n,t){if(!(n instanceof t))throw TypeError("Cannot call a class as a function")}var c=function(){function n(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=e.defaultLayoutOptions,c=e.algorithms,u=e.workerFactory,o=e.workerUrl;if(r(this,n),this.defaultLayoutOptions=void 0===i?{}:i,this.initialized=!1,void 0===o&&void 0===u)throw Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");var s=u;void 0!==o&&void 0===u&&(s=function(n){return new Worker(n)});var h=s(o);if("function"!=typeof h.postMessage)throw TypeError("Created worker does not provide the required 'postMessage' function.");this.worker=new a(h),this.worker.postMessage({cmd:"register",algorithms:void 0===c?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:c}).then(function(n){return t.initialized=!0}).catch(console.err)}return i(n,[{key:"layout",value:function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=t.layoutOptions,i=void 0===e?this.defaultLayoutOptions:e,r=t.logging,c=t.measureExecutionTime;return n?this.worker.postMessage({cmd:"layout",graph:n,layoutOptions:i,options:{logging:void 0!==r&&r,measureExecutionTime:void 0!==c&&c}}):Promise.reject(Error("Missing mandatory parameter 'graph'."))}},{key:"knownLayoutAlgorithms",value:function(){return this.worker.postMessage({cmd:"algorithms"})}},{key:"knownLayoutOptions",value:function(){return this.worker.postMessage({cmd:"options"})}},{key:"knownLayoutCategories",value:function(){return this.worker.postMessage({cmd:"categories"})}},{key:"terminateWorker",value:function(){this.worker.terminate()}}]),n}();e.default=c;var a=function(){function n(t){var e=this;if(r(this,n),void 0===t)throw Error("Missing mandatory parameter 'worker'.");this.resolvers={},this.worker=t,this.worker.onmessage=function(n){setTimeout(function(){e.receive(e,n)},0)}}return i(n,[{key:"postMessage",value:function(n){var t=this.id||0;this.id=t+1,n.id=t;var e=this;return new Promise(function(i,r){e.resolvers[t]=function(n,t){n?(e.convertGwtStyleError(n),r(n)):i(t)},e.worker.postMessage(n)})}},{key:"receive",value:function(n,t){var e=t.data,i=n.resolvers[e.id];i&&(delete n.resolvers[e.id],e.error?i(e.error):i(null,e.data))}},{key:"terminate",value:function(){this.worker.terminate&&this.worker.terminate()}},{key:"convertGwtStyleError",value:function(n){if(n){var t=n.__java$exception;t&&(t.cause&&t.cause.backingJsObject&&(n.cause=t.cause.backingJsObject,this.convertGwtStyleError(n.cause)),delete n.__java$exception)}}}]),n}()},{}],2:[function(n,t,i){(function(n){(function(){"use strict";function e(){}function r(){}function c(){}function a(){}function u(){}function o(){}function s(){}function h(){}function f(){}function l(){}function b(){}function w(){}function d(){}function g(){}function p(){}function v(){}function m(){}function y(){}function k(){}function j(){}function E(){}function T(){}function M(){}function S(){}function P(){}function I(){}function C(){}function O(){}function A(){}function $(){}function L(){}function N(){}function x(){}function D(){}function R(){}function K(){}function F(){}function _(){}function B(){}function H(){}function q(){}function G(){}function z(){}function U(){}function X(){}function W(){}function V(){}function Q(){}function J(){}function Y(){}function Z(){}function nn(){}function nt(){}function ne(){}function ni(){}function nr(){}function nc(){}function na(){}function nu(){}function no(){}function ns(){}function nh(){}function nf(){}function nl(){}function nb(){}function nw(){}function nd(){}function ng(){}function np(){}function nv(){}function nm(){}function ny(){}function nk(){}function nj(){}function nE(){}function nT(){}function nM(){}function nS(){}function nP(){}function nI(){}function nC(){}function nO(){}function nA(){}function n$(){}function nL(){}function nN(){}function nx(){}function nD(){}function nR(){}function nK(){}function nF(){}function n_(){}function nB(){}function nH(){}function nq(){}function nG(){}function nz(){}function nU(){}function nX(){}function nW(){}function nV(){}function nQ(){}function nJ(){}function nY(){}function nZ(){}function n1(){}function n0(){}function n2(){}function n3(){}function n4(){}function n5(){}function n6(){}function n8(){}function n9(){}function n7(){}function tn(){}function tt(){}function te(){}function ti(){}function tr(){}function tc(){}function ta(){}function tu(){}function to(){}function ts(){}function th(){}function tf(){}function tl(){}function tb(){}function tw(){}function td(){}function tg(){}function tp(){}function tv(){}function tm(){}function ty(){}function tk(){}function tj(){}function tE(){}function tT(){}function tM(){}function tS(){}function tP(){}function tI(){}function tC(){}function tO(){}function tA(){}function t$(){}function tL(){}function tN(){}function tx(){}function tD(){}function tR(){}function tK(){}function tF(){}function t_(){}function tB(){}function tH(){}function tq(){}function tG(){}function tz(){}function tU(){}function tX(){}function tW(){}function tV(){}function tQ(){}function tJ(){}function tY(){}function tZ(){}function t1(){}function t0(){}function t2(){}function t3(){}function t4(){}function t5(){}function t6(){}function t8(){}function t9(){}function t7(){}function en(){}function et(){}function ee(){}function ei(){}function er(){}function ec(){}function ea(){}function eu(){}function eo(){}function es(){}function eh(){}function ef(){}function el(){}function eb(){}function ew(){}function ed(){}function eg(){}function ep(){}function ev(){}function em(){}function ey(){}function ek(){}function ej(){}function eE(){}function eT(){}function eM(){}function eS(){}function eP(){}function eI(){}function eC(){}function eO(){}function eA(){}function e$(){}function eL(){}function eN(){}function ex(){}function eD(){}function eR(){}function eK(){}function eF(){}function e_(){}function eB(){}function eH(){}function eq(){}function eG(){}function ez(){}function eU(){}function eX(){}function eW(){}function eV(){}function eQ(){}function eJ(){}function eY(){}function eZ(){}function e1(){}function e0(){}function e2(){}function e3(){}function e4(){}function e5(){}function e6(){}function e8(){}function e9(){}function e7(){}function it(){}function ie(){}function ii(){}function ir(){}function ic(){}function ia(){}function iu(){}function io(){}function is(){}function ih(){}function il(){}function ib(){}function iw(){}function id(){}function ig(){}function ip(){}function iv(){}function im(){}function iy(){}function ik(){}function ij(){}function iE(){}function iT(){}function iM(){}function iS(){}function iP(){}function iI(){}function iC(){}function iO(){}function iA(){}function i$(){}function iL(){}function iN(){}function ix(){}function iD(){}function iR(){}function iK(){}function iF(){}function i_(){}function iB(){}function iH(){}function iq(){}function iG(){}function iz(){}function iU(){}function iX(){}function iW(){}function iV(){}function iQ(){}function iJ(){}function iY(){}function iZ(){}function i1(){}function i0(){}function i2(){}function i3(){}function i4(){}function i5(){}function i6(){}function i8(){}function i9(){}function i7(){}function rn(){}function rt(){}function re(){}function ri(){}function rr(){}function rc(){}function ra(){}function ru(){}function ro(){}function rs(){}function rh(){}function rf(){}function rl(){}function rb(){}function rw(){}function rd(){}function rg(){}function rp(){}function rv(){}function rm(){}function ry(){}function rk(){}function rj(){}function rE(){}function rT(){}function rM(){}function rS(){}function rP(){}function rI(){}function rC(){}function rO(){}function rA(){}function r$(){}function rL(){}function rN(){}function rx(){}function rD(){}function rR(){}function rK(){}function rF(){}function r_(){}function rB(){}function rH(){}function rq(){}function rG(){}function rz(){}function rU(){}function rX(){}function rW(){}function rV(){}function rQ(){}function rJ(){}function rY(){}function rZ(){}function r1(){}function r0(){}function r2(){}function r3(){}function r4(){}function r5(){}function r6(){}function r8(){}function r9(){}function r7(){}function cn(){}function ct(){}function ce(){}function ci(){}function cr(){}function cc(){}function ca(){}function cu(){}function co(){}function cs(){}function ch(){}function cf(){}function cl(){}function cb(){}function cw(){}function cd(){}function cg(){}function cp(){}function cv(){}function cm(){}function cy(){}function ck(){}function cj(){}function cE(){}function cT(){}function cM(){}function cS(){}function cP(){}function cI(){}function cC(){}function cO(){}function cA(){}function c$(){}function cL(){}function cN(){}function cx(){}function cD(){}function cR(){}function cK(){}function cF(){}function c_(){}function cB(){}function cH(){}function cq(){}function cG(){}function cz(){}function cU(){}function cX(){}function cW(){}function cV(){}function cQ(){}function cJ(){}function cY(){}function cZ(){}function c1(){}function c0(){}function c2(){}function c3(){}function c4(){}function c5(){}function c6(){}function c8(){}function c9(){}function c7(){}function an(){}function at(){}function ae(){}function ai(){}function ar(){}function ac(){}function aa(){}function au(){}function ao(){}function as(){}function ah(){}function af(){}function al(){}function ab(){}function aw(){}function ad(){}function ag(){}function ap(){}function av(){}function am(){}function ay(){}function ak(){}function aj(){}function aE(){}function aT(){}function aM(){}function aS(){}function aP(){}function aI(){}function aC(){}function aO(){}function aA(){}function a$(){}function aL(){}function aN(){}function ax(){}function aD(){}function aR(){}function aK(){}function aF(){}function a_(){}function aB(){}function aH(){}function aq(){}function aG(){}function az(){}function aU(){}function aX(){}function aW(){}function aV(){}function aQ(){}function aJ(){}function aY(){}function aZ(){}function a1(){}function a0(){}function a2(){}function a3(){}function a4(){}function a5(){}function a6(){}function a8(){}function a9(){}function a7(){}function un(){}function ut(){}function ue(){}function ui(){}function ur(){}function uc(){}function ua(){}function uu(){}function uo(){}function us(){}function uh(){}function uf(){}function ul(){}function ub(){}function uw(){}function ud(){}function ug(){}function up(){}function uv(){}function um(){}function uy(){}function uk(){}function uj(){}function uE(){}function uT(){}function uM(){}function uS(){}function uP(){}function uI(){}function uC(){}function uO(){}function uA(){}function u$(){}function uL(){}function uN(){}function ux(){}function uD(){}function uR(){}function uK(){}function uF(){}function u_(){}function uB(){}function uH(){}function uq(){}function uG(){}function uz(){}function uU(){}function uX(){}function uW(){}function uV(){}function uQ(){}function uJ(){}function uY(){}function uZ(){}function u1(){}function u0(){}function u2(){}function u3(){}function u4(){}function u5(){}function u6(){}function u8(){}function u9(){}function u7(){}function on(){}function ot(){}function oe(){}function oi(){}function or(){}function oc(){}function oa(){}function ou(){}function oo(){}function os(){}function oh(){}function of(){}function ol(){}function ob(){}function ow(){}function od(){}function og(){}function op(){}function ov(){}function om(){}function oy(){}function ok(){}function oj(){}function oE(){}function oT(){}function oM(){}function oS(){}function oP(){}function oI(){}function oC(){}function oO(){}function oA(){}function o$(){}function oL(){}function oN(){}function ox(){}function oD(){}function oR(){}function oK(){}function oF(){}function o_(){}function oB(){}function oH(){}function oq(){}function oG(){}function oz(){}function oU(){}function oX(){}function oW(){}function oV(){}function oQ(){}function oJ(){}function oY(){}function oZ(){}function o1(){}function o0(){}function o2(){}function o3(){}function o4(){}function o5(){}function o6(){}function o8(){}function o9(){}function o7(){}function sn(){}function st(){}function se(){dJ()}function si(){XV()}function sr(){J2()}function sc(){nnt()}function sa(){nt5()}function su(){nab()}function so(){ZO()}function ss(){ZU()}function sh(){v4()}function sf(){v1()}function sl(){P7()}function sb(){v5()}function sw(){Gx()}function sd(){v8()}function sg(){FC()}function sp(){q2()}function sv(){_E()}function sm(){xN()}function sy(){XQ()}function sk(){ntq()}function sj(){q3()}function sE(){Rg()}function sT(){nho()}function sM(){ZN()}function sS(){xx()}function sP(){ns8()}function sI(){x$()}function sC(){q4()}function sO(){UR()}function sA(){xF()}function s$(){_B()}function sL(){v9()}function sN(){nry()}function sx(){ZD()}function sD(){zd()}function sR(){ntA()}function sK(){naw()}function sF(){YF()}function s_(){nrw()}function sB(){z1()}function sH(){xR()}function sq(){nut()}function sG(){nrd()}function sz(){nrG()}function sU(){_q()}function sX(){nt$()}function sW(){nha()}function sV(){XY()}function sQ(){QQ()}function sJ(){noc()}function sY(){PX()}function sZ(){G9()}function s1(){nuP()}function s0(n){this.a=n}function s2(n){this.a=n}function s3(n){this.a=n}function s4(n){this.a=n}function s5(n){this.a=n}function s6(n){this.a=n}function s8(n){this.a=n}function s9(n){this.a=n}function s7(n){this.a=n}function hn(n){this.a=n}function ht(n){this.a=n}function he(n){this.a=n}function hi(n){this.a=n}function hr(n){this.a=n}function hc(n){this.a=n}function ha(n){this.a=n}function hu(n){this.a=n}function ho(n){this.a=n}function hs(n){this.a=n}function hh(n){this.a=n}function hf(n){this.a=n}function hl(n){this.b=n}function hb(n){this.c=n}function hw(n){this.a=n}function hd(n){this.a=n}function hg(n){this.a=n}function hp(n){this.a=n}function hv(n){this.a=n}function hm(n){this.a=n}function hy(n){this.a=n}function hk(n){this.a=n}function hj(n){this.a=n}function hE(n){this.a=n}function hT(n){this.a=n}function hM(n){this.a=n}function hS(n){this.a=n}function hP(n){this.a=n}function hI(n){this.a=n}function hC(n){this.a=n}function hO(n){this.a=n}function hA(){this.a=[]}function h$(n){this.d=n}function hL(n){this.a=n}function hN(n){this.a=n}function hx(n){this.a=n}function hD(n){this.a=n}function hR(n){this.a=n}function hK(n){this.a=n}function hF(n){this.a=n}function h_(n){this.a=n}function hB(n){this.a=n}function hH(n){this.a=n}function hq(n){this.a=n}function hG(n){this.a=n}function hz(n){this.a=n}function hU(n){this.a=n}function hX(n){this.b=n}function hW(n){this.b=n}function hV(n){this.b=n}function hQ(n){this.a=n}function hJ(n){this.a=n}function hY(n){this.a=n}function hZ(n){this.c=n}function h1(n){this.c=n}function h0(n){this.c=n}function h2(n){this.a=n}function h3(n){this.a=n}function h4(n){this.a=n}function h5(n){this.a=n}function h6(n){this.a=n}function h8(n){this.a=n}function h9(n){this.a=n}function h7(n){this.a=n}function fn(n){this.a=n}function ft(n){this.a=n}function fe(n){this.a=n}function fi(n){this.a=n}function fr(n){this.a=n}function fc(n){this.a=n}function fa(n){this.a=n}function fu(n){this.a=n}function fo(n){this.a=n}function fs(n){this.a=n}function fh(n){this.a=n}function ff(n){this.a=n}function fl(n){this.a=n}function fb(n){this.a=n}function fw(n){this.a=n}function fd(n){this.a=n}function fg(n){this.a=n}function fp(n){this.a=n}function fv(n){this.a=n}function fm(n){this.a=n}function fy(n){this.a=n}function fk(n){this.a=n}function fj(n){this.a=n}function fE(n){this.a=n}function fT(n){this.a=n}function fM(n){this.a=n}function fS(n){this.a=n}function fP(n){this.a=n}function fI(n){this.a=n}function fC(n){this.a=n}function fO(n){this.a=n}function fA(n){this.a=n}function f$(n){this.a=n}function fL(n){this.a=n}function fN(n){this.a=n}function fx(n){this.a=n}function fD(n){this.a=n}function fR(n){this.e=n}function fK(n){this.a=n}function fF(n){this.a=n}function f_(n){this.a=n}function fB(n){this.a=n}function fH(n){this.a=n}function fq(n){this.a=n}function fG(n){this.a=n}function fz(n){this.a=n}function fU(n){this.a=n}function fX(n){this.a=n}function fW(n){this.a=n}function fV(n){this.a=n}function fQ(n){this.a=n}function fJ(n){this.a=n}function fY(n){this.a=n}function fZ(n){this.a=n}function f1(n){this.a=n}function f0(n){this.a=n}function f2(n){this.a=n}function f3(n){this.a=n}function f4(n){this.a=n}function f5(n){this.a=n}function f6(n){this.a=n}function f8(n){this.a=n}function f9(n){this.a=n}function f7(n){this.a=n}function ln(n){this.a=n}function lt(n){this.a=n}function le(n){this.a=n}function li(n){this.a=n}function lr(n){this.a=n}function lc(n){this.a=n}function la(n){this.a=n}function lu(n){this.a=n}function lo(n){this.a=n}function ls(n){this.a=n}function lh(n){this.a=n}function lf(n){this.a=n}function ll(n){this.a=n}function lb(n){this.a=n}function lw(n){this.a=n}function ld(n){this.a=n}function lg(n){this.a=n}function lp(n){this.a=n}function lv(n){this.a=n}function lm(n){this.a=n}function ly(n){this.a=n}function lk(n){this.a=n}function lj(n){this.a=n}function lE(n){this.a=n}function lT(n){this.a=n}function lM(n){this.a=n}function lS(n){this.a=n}function lP(n){this.c=n}function lI(n){this.b=n}function lC(n){this.a=n}function lO(n){this.a=n}function lA(n){this.a=n}function l$(n){this.a=n}function lL(n){this.a=n}function lN(n){this.a=n}function lx(n){this.a=n}function lD(n){this.a=n}function lR(n){this.a=n}function lK(n){this.a=n}function lF(n){this.a=n}function l_(n){this.a=n}function lB(n){this.a=n}function lH(n){this.a=n}function lq(n){this.a=n}function lG(n){this.a=n}function lz(n){this.a=n}function lU(n){this.a=n}function lX(n){this.a=n}function lW(n){this.a=n}function lV(n){this.a=n}function lQ(n){this.a=n}function lJ(n){this.a=n}function lY(n){this.a=n}function lZ(n){this.a=n}function l1(n){this.a=n}function l0(n){this.a=n}function l2(n){this.a=n}function l3(n){this.a=n}function l4(n){this.a=n}function l5(n){this.a=n}function l6(n){this.a=n}function l8(n){this.a=n}function l9(n){this.a=n}function l7(n){this.a=n}function bn(n){this.a=n}function bt(n){this.a=n}function be(n){this.a=n}function bi(n){this.a=n}function br(n){this.a=n}function bc(n){this.a=n}function ba(n){this.a=n}function bu(n){this.a=n}function bo(n){this.a=n}function bs(n){this.a=n}function bh(n){this.a=n}function bf(n){this.a=n}function bl(n){this.a=n}function bb(n){this.a=n}function bw(n){this.a=n}function bd(n){this.a=n}function bg(n){this.a=n}function bp(n){this.a=n}function bv(n){this.a=n}function bm(n){this.a=n}function by(n){this.a=n}function bk(n){this.a=n}function bj(n){this.a=n}function bE(n){this.a=n}function bT(n){this.a=n}function bM(n){this.a=n}function bS(n){this.a=n}function bP(n){this.a=n}function bI(n){this.a=n}function bC(n){this.a=n}function bO(n){this.a=n}function bA(n){this.a=n}function b$(n){this.a=n}function bL(n){this.a=n}function bN(n){this.a=n}function bx(n){this.a=n}function bD(n){this.a=n}function bR(n){this.b=n}function bK(n){this.f=n}function bF(n){this.a=n}function b_(n){this.a=n}function bB(n){this.a=n}function bH(n){this.a=n}function bq(n){this.a=n}function bG(n){this.a=n}function bz(n){this.a=n}function bU(n){this.a=n}function bX(n){this.a=n}function bW(n){this.a=n}function bV(n){this.a=n}function bQ(n){this.b=n}function bJ(n){this.c=n}function bY(n){this.e=n}function bZ(n){this.a=n}function b1(n){this.a=n}function b0(n){this.a=n}function b2(n){this.a=n}function b3(n){this.a=n}function b4(n){this.d=n}function b5(n){this.a=n}function b6(n){this.a=n}function b8(n){this.e=n}function b9(){this.a=0}function b7(){Ek(this)}function wn(){Ey(this)}function wt(){AT(this)}function we(){Lt(this)}function wi(){}function wr(){this.c=nQ5}function wc(n){return n.a}function wa(n){return n.a}function wu(n){return n.a}function wo(n){return n.a}function ws(n){return n.a}function wh(){return null}function wf(){return null}function wl(n,t){n.b=t-n.b}function wb(n,t){n.a=t-n.a}function ww(n,t){n.e=t,t.b=n}function wd(n){PV(),this.a=n}function wg(n){PV(),this.a=n}function wp(n){PV(),this.a=n}function wv(n){$w(),this.a=n}function wm(){TZ.call(this)}function wy(){TZ.call(this)}function wk(){wm.call(this)}function wj(){wm.call(this)}function wE(){wm.call(this)}function wT(){wm.call(this)}function wM(){wm.call(this)}function wS(){wm.call(this)}function wP(){wm.call(this)}function wI(){wm.call(this)}function wC(){wm.call(this)}function wO(){wm.call(this)}function wA(){wm.call(this)}function w$(){this.a=this}function wL(){this.Bb|=256}function wN(){this.b=new jB}function wx(){wx=C,new wt}function wD(){wk.call(this)}function wR(n,t){zD(n.e,t)}function wK(n){niX(n.c,n.b)}function wF(n){var t;this.a=(t=nt1(n))>34028234663852886e22?nlc:t<-34028234663852886e22?nla:t}function w_(){this.a=new wt}function wB(){this.a=new wt}function wH(){this.a=new wn}function wq(){this.a=new wn}function wG(){this.a=new wn}function wz(){this.a=new nm}function wU(){this.a=new Fk}function wX(){this.a=new tt}function wW(){this.a=new vx}function wV(){this.a=new DC}function wQ(){this.a=new xu}function wJ(){this.a=new SV}function wY(){this.a=new wn}function wZ(){this.a=new wn}function w1(){this.a=new wn}function w0(){this.a=new wn}function w2(){this.d=new wn}function w3(){this.a=new w_}function w4(){this.a=new wt}function w5(){this.b=new wt}function w6(){this.b=new wn}function w8(){this.e=new wn}function w9(){this.d=new wn}function w7(){this.a=new sk}function dn(){wn.call(this)}function dt(){wH.call(this)}function de(){SY.call(this)}function di(){wZ.call(this)}function dr(){dc.call(this)}function dc(){wi.call(this)}function da(){wi.call(this)}function du(){da.call(this)}function ds(){Nh.call(this)}function dh(){Nh.call(this)}function df(){dH.call(this)}function dl(){dH.call(this)}function db(){dH.call(this)}function dw(){dq.call(this)}function dd(){vK.call(this)}function dg(){aQ.call(this)}function dp(){aQ.call(this)}function dv(){dW.call(this)}function dm(){dW.call(this)}function dy(){wt.call(this)}function dk(){wt.call(this)}function dj(){wt.call(this)}function dE(){w_.call(this)}function dT(){qZ.call(this)}function dM(){wL.call(this)}function dS(){Tw.call(this)}function dP(){Tw.call(this)}function dI(){wt.call(this)}function dC(){wt.call(this)}function dO(){wt.call(this)}function dA(){ui.call(this)}function d$(){ui.call(this)}function dL(){dA.call(this)}function dN(){o7.call(this)}function dx(n){HC.call(this,n)}function dD(n){HC.call(this,n)}function dR(n){s7.call(this,n)}function dK(n){vk.call(this,n)}function dF(n){dK.call(this,n)}function d_(n){vk.call(this,n)}function dB(){this.a=new vK}function dH(){this.a=new w_}function dq(){this.a=new wt}function dG(){this.a=new wn}function dz(){this.j=new wn}function dU(){this.a=new cJ}function dX(){this.a=new pq}function dW(){this.a=new ue}function dV(){dV=C,nTP=new g1}function dQ(){dQ=C,nTS=new gZ}function dJ(){dJ=C,nTM=new r}function dY(){dY=C,nTA=new TH}function dZ(n){dK.call(this,n)}function d1(n){dK.call(this,n)}function d0(n){R6.call(this,n)}function d2(n){R6.call(this,n)}function d3(n){Px.call(this,n)}function d4(n){nt4.call(this,n)}function d5(n){vT.call(this,n)}function d6(n){vS.call(this,n)}function d8(n){vS.call(this,n)}function d9(n){vS.call(this,n)}function d7(n){OI.call(this,n)}function gn(n){d7.call(this,n)}function gt(){hO.call(this,{})}function ge(n){Tl(),this.a=n}function gi(n){n.b=null,n.c=0}function gr(n){return new hC(n)}function gc(n){return new $h(n)}function ga(n){d7.call(this,n)}function gu(n){d7.call(this,n)}function go(n){d7.call(this,n)}function gs(n){OI.call(this,n)}function gh(n){zw(),this.a=n}function gf(n){PU(),this.a=n}function gl(n){Os(),this.f=n}function gb(n){Os(),this.f=n}function gw(n){d7.call(this,n)}function gd(n){d7.call(this,n)}function gg(n){d7.call(this,n)}function gp(n){d7.call(this,n)}function gv(n){d7.call(this,n)}function gm(n){return $x(n),n}function gy(n){return $x(n),n}function gk(n){return n.b==n.c}function gj(n){return!!n&&n.b}function gE(n){$x(n),this.a=n}function gT(n){Aw(n,n.length)}function gM(n){d7.call(this,n)}function gS(n){d7.call(this,n)}function gP(n){d7.call(this,n)}function gI(n){d7.call(this,n)}function gC(n){d7.call(this,n)}function gO(n){d7.call(this,n)}function gA(n){Md.call(this,n,0)}function g$(){x0.call(this,12,3)}function gL(){gL=C,nTD=new k}function gN(){gN=C,nTN=new e}function gx(){gx=C,nTF=new d}function gD(){gD=C,nTH=new p}function gR(){throw(new wP).e}function gK(){throw(new wP).e}function gF(){throw(new wP).e}function g_(){this.a=Sh(A1(nhC))}function gB(n){PV(),this.a=A1(n)}function gH(n,t){n.Td(t),t.Sd(n)}function gq(n){gu.call(this,n)}function gG(n){gd.call(this,n)}function gz(){hR.call(this,"")}function gU(){hR.call(this,"")}function gX(){hR.call(this,"")}function gW(){hR.call(this,"")}function gV(n){gu.call(this,n)}function gQ(n){hW.call(this,n)}function gJ(n){TQ.call(this,n)}function gY(n){gQ.call(this,n)}function gZ(){hr.call(this,null)}function g1(){hr.call(this,null)}function g0(){g0=C,Nv()}function g2(){g2=C,nMP=typeof Map===nhT&&Map.prototype.entries&&function(){try{return(new Map).entries().next().done}catch(n){return!1}}()?Map:function(){function n(){this.obj=this.createObject()}return n.prototype.createObject=function(n){return Object.create(null)},n.prototype.get=function(n){return this.obj[n]},n.prototype.set=function(n,t){this.obj[n]=t},n.prototype[nlM]=function(n){delete this.obj[n]},n.prototype.keys=function(){return Object.getOwnPropertyNames(this.obj)},n.prototype.entries=function(){var n=this.keys(),t=this,e=0;return{next:function(){if(e>=n.length)return{done:!0};var i=n[e++];return{value:[i,t.get(i)],done:!1}}}},!function(){if(!Object.create||!Object.getOwnPropertyNames)return!1;var n="__proto__",t=Object.create(null);return void 0===t[n]&&0==Object.getOwnPropertyNames(t).length&&(t[n]=42,42===t[n]&&0!=Object.getOwnPropertyNames(t).length)}()&&(n.prototype.createObject=function(){return{}},n.prototype.get=function(n){return this.obj[":"+n]},n.prototype.set=function(n,t){this.obj[":"+n]=t},n.prototype[nlM]=function(n){delete this.obj[":"+n]},n.prototype.keys=function(){var n=[];for(var t in this.obj)58==t.charCodeAt(0)&&n.push(t.substring(1));return n}),n}()}function g3(n,t){return n.c=t,n}function g4(n,t){return n.b=t,n}function g5(n,t){return n.d=t,n}function g6(n,t){return n.e=t,n}function g8(n,t){return n.g=t,n}function g9(n,t){return n.a=t,n}function g7(n,t){return n.i=t,n}function pn(n,t){return n.j=t,n}function pt(n){Lp.call(this,n)}function pe(n){Lp.call(this,n)}function pi(n){P_.call(this,n)}function pr(n){Qt.call(this,n)}function pc(n){HO.call(this,n)}function pa(n){L_.call(this,n)}function pu(n){L_.call(this,n)}function po(){EV.call(this,"")}function ps(){this.a=0,this.b=0}function ph(){this.b=0,this.a=0}function pf(n){return n.e&&n.e()}function pl(n){return n?n.d:null}function pb(n){return Su(n),n.o}function pw(){pw=C,nVk=function(){var n,t;noc();try{if(t=Im(nnO((ml(),nQS),nyg),2014))return t}catch(t){if(Ti(t=Uu(t),102))n=t,OT((E$(),n));else throw t.e}return new a1}()}function pd(){var n,t,e,i,r,c,a,u,o,s,h,f;pd=C,nVj=nCB?Im(nrR((ml(),nQS),nyg),2016):(n=Im(Ti(Nz((ml(),nQS),nyg),555)?Nz(nQS,nyg):new nrn,555),nCB=!0,n.q||(n.q=!0,n.p=z_(n,0),n.a=z_(n,1),Gq(n.a,0),n.f=z_(n,2),Gq(n.f,1),GH(n.f,2),n.n=z_(n,3),GH(n.n,3),GH(n.n,4),GH(n.n,5),GH(n.n,6),n.g=z_(n,4),Gq(n.g,7),GH(n.g,8),n.c=z_(n,5),Gq(n.c,7),Gq(n.c,8),n.i=z_(n,6),Gq(n.i,9),Gq(n.i,10),Gq(n.i,11),Gq(n.i,12),GH(n.i,13),n.j=z_(n,7),Gq(n.j,9),n.d=z_(n,8),Gq(n.d,3),Gq(n.d,4),Gq(n.d,5),Gq(n.d,6),GH(n.d,7),GH(n.d,8),GH(n.d,9),GH(n.d,10),n.b=z_(n,9),GH(n.b,0),GH(n.b,1),n.e=z_(n,10),GH(n.e,1),GH(n.e,2),GH(n.e,3),GH(n.e,4),Gq(n.e,5),Gq(n.e,6),Gq(n.e,7),Gq(n.e,8),Gq(n.e,9),Gq(n.e,10),GH(n.e,11),n.k=z_(n,11),GH(n.k,0),GH(n.k,1),n.o=zB(n,12),n.s=zB(n,13)),n.r||(n.r=!0,GF(n,"graph"),G_(n,"graph"),GB(n,nyg),Ue(n.o,"T"),_P(Nw(n.a),n.p),_P(Nw(n.f),n.a),_P(Nw(n.n),n.f),_P(Nw(n.g),n.n),_P(Nw(n.c),n.n),_P(Nw(n.i),n.c),_P(Nw(n.j),n.c),_P(Nw(n.d),n.f),_P(Nw(n.e),n.a),DR(n.p,nSy,nbH,!0,!0,!1),f=Ug(h=XC(n.p,n.p,"setProperty")),c=LI(n.o),a=new wr,_P((c.d||(c.d=new Tg(nQd,c,1)),c.d),a),nnH(a,u=LC(f)),nnC(h,c,nyv),nnC(h,c=LC(f),nym),f=Ug(h=XC(n.p,null,"getProperty")),c=LI(n.o),a=LC(f),_P((c.d||(c.d=new Tg(nQd,c,1)),c.d),a),nnC(h,c,nyv),(s=ntl(h,c=LC(f),null))&&s.Fi(),h=XC(n.p,n.wb.e,"hasProperty"),c=LI(n.o),a=new wr,_P((c.d||(c.d=new Tg(nQd,c,1)),c.d),a),nnC(h,c,nyv),ZP(h=XC(n.p,n.p,"copyProperties"),n.p,nyy),h=XC(n.p,null,"getAllProperties"),c=LI(n.wb.P),a=LI(n.o),_P((c.d||(c.d=new Tg(nQd,c,1)),c.d),a),u=new wr,_P((a.d||(a.d=new Tg(nQd,a,1)),a.d),u),a=LI(n.wb.M),_P((c.d||(c.d=new Tg(nQd,c,1)),c.d),a),(o=ntl(h,c,null))&&o.Fi(),DR(n.a,nCP,nmJ,!0,!1,!0),ZS(Im(HX(L6(n.a),0),18),n.k,null,nyk,0,-1,nCP,!1,!1,!0,!0,!1,!1,!1),DR(n.f,nCC,nmZ,!0,!1,!0),ZS(Im(HX(L6(n.f),0),18),n.g,Im(HX(L6(n.g),0),18),"labels",0,-1,nCC,!1,!1,!0,!0,!1,!1,!1),G5(Im(HX(L6(n.f),1),34),n.wb._,nyj,null,0,1,nCC,!1,!1,!0,!1,!0,!1),DR(n.n,nCO,"ElkShape",!0,!1,!0),G5(Im(HX(L6(n.n),0),34),n.wb.t,nyE,nlg,1,1,nCO,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(n.n),1),34),n.wb.t,nyT,nlg,1,1,nCO,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(n.n),2),34),n.wb.t,"x",nlg,1,1,nCO,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(n.n),3),34),n.wb.t,"y",nlg,1,1,nCO,!1,!1,!0,!1,!0,!1),ZP(h=XC(n.n,null,"setDimensions"),n.wb.t,nyT),ZP(h,n.wb.t,nyE),ZP(h=XC(n.n,null,"setLocation"),n.wb.t,"x"),ZP(h,n.wb.t,"y"),DR(n.g,nCK,nm5,!1,!1,!0),ZS(Im(HX(L6(n.g),0),18),n.f,Im(HX(L6(n.f),0),18),nyM,0,1,nCK,!1,!1,!0,!1,!1,!1,!1),G5(Im(HX(L6(n.g),1),34),n.wb._,nyS,"",0,1,nCK,!1,!1,!0,!1,!0,!1),DR(n.c,nCA,nm1,!0,!1,!0),ZS(Im(HX(L6(n.c),0),18),n.d,Im(HX(L6(n.d),1),18),"outgoingEdges",0,-1,nCA,!1,!1,!0,!1,!0,!1,!1),ZS(Im(HX(L6(n.c),1),18),n.d,Im(HX(L6(n.d),2),18),"incomingEdges",0,-1,nCA,!1,!1,!0,!1,!0,!1,!1),DR(n.i,nCF,nm6,!1,!1,!0),ZS(Im(HX(L6(n.i),0),18),n.j,Im(HX(L6(n.j),0),18),"ports",0,-1,nCF,!1,!1,!0,!0,!1,!1,!1),ZS(Im(HX(L6(n.i),1),18),n.i,Im(HX(L6(n.i),2),18),nyP,0,-1,nCF,!1,!1,!0,!0,!1,!1,!1),ZS(Im(HX(L6(n.i),2),18),n.i,Im(HX(L6(n.i),1),18),nyM,0,1,nCF,!1,!1,!0,!1,!1,!1,!1),ZS(Im(HX(L6(n.i),3),18),n.d,Im(HX(L6(n.d),0),18),"containedEdges",0,-1,nCF,!1,!1,!0,!0,!1,!1,!1),G5(Im(HX(L6(n.i),4),34),n.wb.e,nyI,null,0,1,nCF,!0,!0,!1,!1,!0,!0),DR(n.j,nC_,nm8,!1,!1,!0),ZS(Im(HX(L6(n.j),0),18),n.i,Im(HX(L6(n.i),0),18),nyM,0,1,nC_,!1,!1,!0,!1,!1,!1,!1),DR(n.d,nC$,nm0,!1,!1,!0),ZS(Im(HX(L6(n.d),0),18),n.i,Im(HX(L6(n.i),3),18),"containingNode",0,1,nC$,!1,!1,!0,!1,!1,!1,!1),ZS(Im(HX(L6(n.d),1),18),n.c,Im(HX(L6(n.c),0),18),nyC,0,-1,nC$,!1,!1,!0,!1,!0,!1,!1),ZS(Im(HX(L6(n.d),2),18),n.c,Im(HX(L6(n.c),1),18),nyO,0,-1,nC$,!1,!1,!0,!1,!0,!1,!1),ZS(Im(HX(L6(n.d),3),18),n.e,Im(HX(L6(n.e),5),18),nyA,0,-1,nC$,!1,!1,!0,!0,!1,!1,!1),G5(Im(HX(L6(n.d),4),34),n.wb.e,"hyperedge",null,0,1,nC$,!0,!0,!1,!1,!0,!0),G5(Im(HX(L6(n.d),5),34),n.wb.e,nyI,null,0,1,nC$,!0,!0,!1,!1,!0,!0),G5(Im(HX(L6(n.d),6),34),n.wb.e,"selfloop",null,0,1,nC$,!0,!0,!1,!1,!0,!0),G5(Im(HX(L6(n.d),7),34),n.wb.e,"connected",null,0,1,nC$,!0,!0,!1,!1,!0,!0),DR(n.b,nCI,nmY,!1,!1,!0),G5(Im(HX(L6(n.b),0),34),n.wb.t,"x",nlg,1,1,nCI,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(n.b),1),34),n.wb.t,"y",nlg,1,1,nCI,!1,!1,!0,!1,!0,!1),ZP(h=XC(n.b,null,"set"),n.wb.t,"x"),ZP(h,n.wb.t,"y"),DR(n.e,nCL,nm2,!1,!1,!0),G5(Im(HX(L6(n.e),0),34),n.wb.t,"startX",null,0,1,nCL,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(n.e),1),34),n.wb.t,"startY",null,0,1,nCL,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(n.e),2),34),n.wb.t,"endX",null,0,1,nCL,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(n.e),3),34),n.wb.t,"endY",null,0,1,nCL,!1,!1,!0,!1,!0,!1),ZS(Im(HX(L6(n.e),4),18),n.b,null,ny$,0,-1,nCL,!1,!1,!0,!0,!1,!1,!1),ZS(Im(HX(L6(n.e),5),18),n.d,Im(HX(L6(n.d),3),18),nyM,0,1,nCL,!1,!1,!0,!1,!1,!1,!1),ZS(Im(HX(L6(n.e),6),18),n.c,null,nyL,0,1,nCL,!1,!1,!0,!1,!0,!1,!1),ZS(Im(HX(L6(n.e),7),18),n.c,null,nyN,0,1,nCL,!1,!1,!0,!1,!0,!1,!1),ZS(Im(HX(L6(n.e),8),18),n.e,Im(HX(L6(n.e),9),18),nyx,0,-1,nCL,!1,!1,!0,!1,!0,!1,!1),ZS(Im(HX(L6(n.e),9),18),n.e,Im(HX(L6(n.e),8),18),nyD,0,-1,nCL,!1,!1,!0,!1,!0,!1,!1),G5(Im(HX(L6(n.e),10),34),n.wb._,nyj,null,0,1,nCL,!1,!1,!0,!1,!0,!1),ZP(h=XC(n.e,null,"setStartLocation"),n.wb.t,"x"),ZP(h,n.wb.t,"y"),ZP(h=XC(n.e,null,"setEndLocation"),n.wb.t,"x"),ZP(h,n.wb.t,"y"),DR(n.k,nE1,"ElkPropertyToValueMapEntry",!1,!1,!1),c=LI(n.o),a=new wr,_P((c.d||(c.d=new Tg(nQd,c,1)),c.d),a),niY(Im(HX(L6(n.k),0),34),c,"key",nE1,!1,!1,!0,!1),G5(Im(HX(L6(n.k),1),34),n.s,nym,null,0,1,nE1,!1,!1,!0,!1,!0,!1),Le(n.o,nCi,"IProperty",!0),Le(n.s,nEX,"PropertyValue",!0),Wp(n,nyg)),ZM(n),xp(nQS,nyg,n),n)}function pg(){pg=C,nQC=function(){var n,t;noc();try{if(t=Im(nnO((ml(),nQS),njE),1941))return t}catch(t){if(Ti(t=Uu(t),102))n=t,OT((E$(),n));else throw t.e}return new uS}()}function pp(){pp=C,nJN=function(){var n,t;Bu();try{if(t=Im(nnO((ml(),nQS),njZ),2024))return t}catch(t){if(Ti(t=Uu(t),102))n=t,OT((E$(),n));else throw t.e}return new os}()}function pv(){var n,t,e,i;pv=C,nJx=nJg?Im(nrR((ml(),nQS),njZ),1945):(jJ(nJl,new oj),jJ(nJb,new oL),jJ(nJw,new oG),jJ(nJd,new o0),jJ(nTh,new o5),jJ(xg(nYD,1),new o6),jJ(nTt,new o8),jJ(nTe,new o9),jJ(nTh,new ol),jJ(nTh,new ob),jJ(nTh,new ow),jJ(nTr,new od),jJ(nTh,new og),jJ(nEZ,new op),jJ(nEZ,new ov),jJ(nTh,new om),jJ(nTc,new oy),jJ(nTh,new ok),jJ(nTh,new oE),jJ(nTh,new oT),jJ(nTh,new oM),jJ(nTh,new oS),jJ(xg(nYD,1),new oP),jJ(nTh,new oI),jJ(nTh,new oC),jJ(nEZ,new oO),jJ(nEZ,new oA),jJ(nTh,new o$),jJ(nTa,new oN),jJ(nTh,new ox),jJ(nTu,new oD),jJ(nTh,new oR),jJ(nTh,new oK),jJ(nTh,new oF),jJ(nTh,new o_),jJ(nEZ,new oB),jJ(nEZ,new oH),jJ(nTh,new oq),jJ(nTh,new oz),jJ(nTh,new oU),jJ(nTh,new oX),jJ(nTh,new oW),jJ(nTh,new oV),jJ(nTo,new oQ),jJ(nTh,new oJ),jJ(nTh,new oY),jJ(nTh,new oZ),jJ(nTo,new o1),jJ(nTu,new o2),jJ(nTh,new o3),jJ(nTa,new o4),n=Im(Ti(Nz((ml(),nQS),njZ),586)?Nz(nQS,njZ):new $W,586),nJg=!0,n.N||(n.N=!0,n.b=z_(n,0),GH(n.b,0),GH(n.b,1),GH(n.b,2),n.bb=z_(n,1),GH(n.bb,0),GH(n.bb,1),n.fb=z_(n,2),GH(n.fb,3),GH(n.fb,4),Gq(n.fb,5),n.qb=z_(n,3),GH(n.qb,0),Gq(n.qb,1),Gq(n.qb,2),GH(n.qb,3),GH(n.qb,4),Gq(n.qb,5),GH(n.qb,6),n.a=zB(n,4),n.c=zB(n,5),n.d=zB(n,6),n.e=zB(n,7),n.f=zB(n,8),n.g=zB(n,9),n.i=zB(n,10),n.j=zB(n,11),n.k=zB(n,12),n.n=zB(n,13),n.o=zB(n,14),n.p=zB(n,15),n.q=zB(n,16),n.s=zB(n,17),n.r=zB(n,18),n.t=zB(n,19),n.u=zB(n,20),n.v=zB(n,21),n.w=zB(n,22),n.B=zB(n,23),n.A=zB(n,24),n.C=zB(n,25),n.D=zB(n,26),n.F=zB(n,27),n.G=zB(n,28),n.H=zB(n,29),n.J=zB(n,30),n.I=zB(n,31),n.K=zB(n,32),n.M=zB(n,33),n.L=zB(n,34),n.P=zB(n,35),n.Q=zB(n,36),n.R=zB(n,37),n.S=zB(n,38),n.T=zB(n,39),n.U=zB(n,40),n.V=zB(n,41),n.X=zB(n,42),n.W=zB(n,43),n.Y=zB(n,44),n.Z=zB(n,45),n.$=zB(n,46),n._=zB(n,47),n.ab=zB(n,48),n.cb=zB(n,49),n.db=zB(n,50),n.eb=zB(n,51),n.gb=zB(n,52),n.hb=zB(n,53),n.ib=zB(n,54),n.jb=zB(n,55),n.kb=zB(n,56),n.lb=zB(n,57),n.mb=zB(n,58),n.nb=zB(n,59),n.ob=zB(n,60),n.pb=zB(n,61)),(t=n).O||(t.O=!0,GF(t,"type"),G_(t,"ecore.xml.type"),GB(t,njZ),e=Im(nrR((ml(),nQS),njZ),1945),_P(Nw(t.fb),t.b),DR(t.b,nJl,"AnyType",!1,!1,!0),G5(Im(HX(L6(t.b),0),34),t.wb.D,njb,null,0,-1,nJl,!1,!1,!0,!1,!1,!1),G5(Im(HX(L6(t.b),1),34),t.wb.D,"any",null,0,-1,nJl,!0,!0,!0,!1,!1,!0),G5(Im(HX(L6(t.b),2),34),t.wb.D,"anyAttribute",null,0,-1,nJl,!1,!1,!0,!1,!1,!1),DR(t.bb,nJb,nj4,!1,!1,!0),G5(Im(HX(L6(t.bb),0),34),t.gb,"data",null,0,1,nJb,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(t.bb),1),34),t.gb,nyU,null,1,1,nJb,!1,!1,!0,!1,!0,!1),DR(t.fb,nJw,nj5,!1,!1,!0),G5(Im(HX(L6(t.fb),0),34),e.gb,"rawValue",null,0,1,nJw,!0,!0,!0,!1,!0,!0),G5(Im(HX(L6(t.fb),1),34),e.a,nym,null,0,1,nJw,!0,!0,!0,!1,!0,!0),ZS(Im(HX(L6(t.fb),2),18),t.wb.q,null,"instanceType",1,1,nJw,!1,!1,!0,!1,!1,!1,!1),DR(t.qb,nJd,nj6,!1,!1,!0),G5(Im(HX(L6(t.qb),0),34),t.wb.D,njb,null,0,-1,null,!1,!1,!0,!1,!1,!1),ZS(Im(HX(L6(t.qb),1),18),t.wb.ab,null,"xMLNSPrefixMap",0,-1,null,!0,!1,!0,!0,!1,!1,!1),ZS(Im(HX(L6(t.qb),2),18),t.wb.ab,null,"xSISchemaLocation",0,-1,null,!0,!1,!0,!0,!1,!1,!1),G5(Im(HX(L6(t.qb),3),34),t.gb,"cDATA",null,0,-2,null,!0,!0,!0,!1,!1,!0),G5(Im(HX(L6(t.qb),4),34),t.gb,"comment",null,0,-2,null,!0,!0,!0,!1,!1,!0),ZS(Im(HX(L6(t.qb),5),18),t.bb,null,nEk,0,-2,null,!0,!0,!0,!0,!1,!1,!0),G5(Im(HX(L6(t.qb),6),34),t.gb,nyS,null,0,-2,null,!0,!0,!0,!1,!1,!0),Le(t.a,nEX,"AnySimpleType",!0),Le(t.c,nTh,"AnyURI",!0),Le(t.d,xg(nYD,1),"Base64Binary",!0),Le(t.e,nYN,"Boolean",!0),Le(t.f,nTt,"BooleanObject",!0),Le(t.g,nYD,"Byte",!0),Le(t.i,nTe,"ByteObject",!0),Le(t.j,nTh,"Date",!0),Le(t.k,nTh,"DateTime",!0),Le(t.n,nTf,"Decimal",!0),Le(t.o,nYR,"Double",!0),Le(t.p,nTr,"DoubleObject",!0),Le(t.q,nTh,"Duration",!0),Le(t.s,nEZ,"ENTITIES",!0),Le(t.r,nEZ,"ENTITIESBase",!0),Le(t.t,nTh,nEt,!0),Le(t.u,nYK,"Float",!0),Le(t.v,nTc,"FloatObject",!0),Le(t.w,nTh,"GDay",!0),Le(t.B,nTh,"GMonth",!0),Le(t.A,nTh,"GMonthDay",!0),Le(t.C,nTh,"GYear",!0),Le(t.D,nTh,"GYearMonth",!0),Le(t.F,xg(nYD,1),"HexBinary",!0),Le(t.G,nTh,"ID",!0),Le(t.H,nTh,"IDREF",!0),Le(t.J,nEZ,"IDREFS",!0),Le(t.I,nEZ,"IDREFSBase",!0),Le(t.K,nYL,"Int",!0),Le(t.M,nTl,"Integer",!0),Le(t.L,nTa,"IntObject",!0),Le(t.P,nTh,"Language",!0),Le(t.Q,nYx,"Long",!0),Le(t.R,nTu,"LongObject",!0),Le(t.S,nTh,"Name",!0),Le(t.T,nTh,nEe,!0),Le(t.U,nTl,"NegativeInteger",!0),Le(t.V,nTh,nEl,!0),Le(t.X,nEZ,"NMTOKENS",!0),Le(t.W,nEZ,"NMTOKENSBase",!0),Le(t.Y,nTl,"NonNegativeInteger",!0),Le(t.Z,nTl,"NonPositiveInteger",!0),Le(t.$,nTh,"NormalizedString",!0),Le(t._,nTh,"NOTATION",!0),Le(t.ab,nTh,"PositiveInteger",!0),Le(t.cb,nTh,"QName",!0),Le(t.db,nYF,"Short",!0),Le(t.eb,nTo,"ShortObject",!0),Le(t.gb,nTh,nfk,!0),Le(t.hb,nTh,"Time",!0),Le(t.ib,nTh,"Token",!0),Le(t.jb,nYF,"UnsignedByte",!0),Le(t.kb,nTo,"UnsignedByteObject",!0),Le(t.lb,nYx,"UnsignedInt",!0),Le(t.mb,nTu,"UnsignedIntObject",!0),Le(t.nb,nTl,"UnsignedLong",!0),Le(t.ob,nYL,"UnsignedShort",!0),Le(t.pb,nTa,"UnsignedShortObject",!0),Wp(t,njZ),nrz((i=t).a,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"anySimpleType"])),nrz(i.b,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"anyType",njd,njb])),nrz(Im(HX(L6(i.b),0),34),njw,Um(xg(nTh,1),nhJ,2,6,[njd,njU,nyQ,":mixed"])),nrz(Im(HX(L6(i.b),1),34),njw,Um(xg(nTh,1),nhJ,2,6,[njd,njU,njY,nj1,nyQ,":1",nj9,"lax"])),nrz(Im(HX(L6(i.b),2),34),njw,Um(xg(nTh,1),nhJ,2,6,[njd,njG,njY,nj1,nyQ,":2",nj9,"lax"])),nrz(i.c,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"anyURI",njJ,njX])),nrz(i.d,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"base64Binary",njJ,njX])),nrz(i.e,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nhk,njJ,njX])),nrz(i.f,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"boolean:Object",njM,nhk])),nrz(i.g,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,njt])),nrz(i.i,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"byte:Object",njM,njt])),nrz(i.j,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"date",njJ,njX])),nrz(i.k,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"dateTime",njJ,njX])),nrz(i.n,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"decimal",njJ,njX])),nrz(i.o,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nji,njJ,njX])),nrz(i.p,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"double:Object",njM,nji])),nrz(i.q,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"duration",njJ,njX])),nrz(i.s,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"ENTITIES",njM,nj7,nEn,"1"])),nrz(i.r,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nj7,njW,nEt])),nrz(i.t,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nEt,njM,nEe])),nrz(i.u,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,njr,njJ,njX])),nrz(i.v,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"float:Object",njM,njr])),nrz(i.w,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"gDay",njJ,njX])),nrz(i.B,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"gMonth",njJ,njX])),nrz(i.A,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"gMonthDay",njJ,njX])),nrz(i.C,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"gYear",njJ,njX])),nrz(i.D,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"gYearMonth",njJ,njX])),nrz(i.F,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"hexBinary",njJ,njX])),nrz(i.G,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"ID",njM,nEe])),nrz(i.H,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"IDREF",njM,nEe])),nrz(i.J,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"IDREFS",njM,nEi,nEn,"1"])),nrz(i.I,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nEi,njW,"IDREF"])),nrz(i.K,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,njc])),nrz(i.M,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nEr])),nrz(i.L,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"int:Object",njM,njc])),nrz(i.P,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"language",njM,nEc,nEa,nEu])),nrz(i.Q,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nja])),nrz(i.R,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"long:Object",njM,nja])),nrz(i.S,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"Name",njM,nEc,nEa,nEo])),nrz(i.T,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nEe,njM,"Name",nEa,nEs])),nrz(i.U,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"negativeInteger",njM,nEh,nEf,"-1"])),nrz(i.V,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nEl,njM,nEc,nEa,"\\c+"])),nrz(i.X,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"NMTOKENS",njM,nEb,nEn,"1"])),nrz(i.W,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nEb,njW,nEl])),nrz(i.Y,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nEw,njM,nEr,nEd,"0"])),nrz(i.Z,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nEh,njM,nEr,nEf,"0"])),nrz(i.$,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nEg,njM,nhE,njJ,"replace"])),nrz(i._,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"NOTATION",njJ,njX])),nrz(i.ab,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"positiveInteger",njM,nEw,nEd,"1"])),nrz(i.bb,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"processingInstruction_._type",njd,"empty"])),nrz(Im(HX(L6(i.bb),0),34),njw,Um(xg(nTh,1),nhJ,2,6,[njd,njq,nyQ,"data"])),nrz(Im(HX(L6(i.bb),1),34),njw,Um(xg(nTh,1),nhJ,2,6,[njd,njq,nyQ,nyU])),nrz(i.cb,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"QName",njJ,njX])),nrz(i.db,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nju])),nrz(i.eb,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"short:Object",njM,nju])),nrz(i.fb,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"simpleAnyType",njd,njH])),nrz(Im(HX(L6(i.fb),0),34),njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,":3",njd,njH])),nrz(Im(HX(L6(i.fb),1),34),njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,":4",njd,njH])),nrz(Im(HX(L6(i.fb),2),18),njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,":5",njd,njH])),nrz(i.gb,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nhE,njJ,"preserve"])),nrz(i.hb,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"time",njJ,njX])),nrz(i.ib,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nEc,njM,nEg,njJ,njX])),nrz(i.jb,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nEp,nEf,"255",nEd,"0"])),nrz(i.kb,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"unsignedByte:Object",njM,nEp])),nrz(i.lb,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nEv,nEf,"4294967295",nEd,"0"])),nrz(i.mb,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"unsignedInt:Object",njM,nEv])),nrz(i.nb,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"unsignedLong",njM,nEw,nEf,nEm,nEd,"0"])),nrz(i.ob,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,nEy,nEf,"65535",nEd,"0"])),nrz(i.pb,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"unsignedShort:Object",njM,nEy])),nrz(i.qb,njw,Um(xg(nTh,1),nhJ,2,6,[nyQ,"",njd,njb])),nrz(Im(HX(L6(i.qb),0),34),njw,Um(xg(nTh,1),nhJ,2,6,[njd,njU,nyQ,":mixed"])),nrz(Im(HX(L6(i.qb),1),18),njw,Um(xg(nTh,1),nhJ,2,6,[njd,njq,nyQ,"xmlns:prefix"])),nrz(Im(HX(L6(i.qb),2),18),njw,Um(xg(nTh,1),nhJ,2,6,[njd,njq,nyQ,"xsi:schemaLocation"])),nrz(Im(HX(L6(i.qb),3),34),njw,Um(xg(nTh,1),nhJ,2,6,[njd,njz,nyQ,"cDATA",njV,njQ])),nrz(Im(HX(L6(i.qb),4),34),njw,Um(xg(nTh,1),nhJ,2,6,[njd,njz,nyQ,"comment",njV,njQ])),nrz(Im(HX(L6(i.qb),5),18),njw,Um(xg(nTh,1),nhJ,2,6,[njd,njz,nyQ,nEk,njV,njQ])),nrz(Im(HX(L6(i.qb),6),34),njw,Um(xg(nTh,1),nhJ,2,6,[njd,njz,nyQ,nyS,njV,njQ]))),$J((mb(),nQI),n,new of),ZM(n),xp(nQS,njZ,n),n)}function pm(){pm=C,nVQ=qK()}function py(){throw(new wP).e}function pk(){throw(new wP).e}function pj(){throw(new wP).e}function pE(){throw(new wP).e}function pT(){throw(new wP).e}function pM(){throw(new wP).e}function pS(n){this.a=new vN(n)}function pP(n){nsL(),function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;if(e=0,a=0,c=t.length,u=null,s=new gW,a<c&&(x5(a,t.length),43==t.charCodeAt(a))&&(++a,++e,a<c&&(x5(a,t.length),43==t.charCodeAt(a)||(x5(a,t.length),45==t.charCodeAt(a)))))throw new gG(nlr+t+'"').e;for(;a<c&&(x5(a,t.length),46!=t.charCodeAt(a))&&(x5(a,t.length),101!=t.charCodeAt(a))&&(x5(a,t.length),69!=t.charCodeAt(a));)++a;if(s.a+=""+MT(null==t?nhN:($x(t),t),e,a),a<c&&(x5(a,t.length),46==t.charCodeAt(a))){for(e=++a;a<c&&(x5(a,t.length),101!=t.charCodeAt(a))&&(x5(a,t.length),69!=t.charCodeAt(a));)++a;n.e=a-e,s.a+=""+MT(null==t?nhN:($x(t),t),e,a)}else n.e=0;if(a<c&&(x5(a,t.length),101==t.charCodeAt(a)||(x5(a,t.length),69==t.charCodeAt(a)))&&(e=++a,a<c&&(x5(a,t.length),43==t.charCodeAt(a))&&++a<c&&(x5(a,t.length),45!=t.charCodeAt(a))&&++e,u=t.substr(e,c-e),n.e=n.e-nue(u,nfp,nhM),n.e!=NU(n.e)))throw new gG("Scale out of range.").e;if((o=s.a).length<16){if(n.f=(null==nMu&&(nMu=RegExp("^[+-]?\\d*$","i")),nMu.test(o)?parseInt(o,10):NaN),isNaN(n.f))throw new gG(nlr+t+'"').e;n.a=nia(n.f)}else h=new Ep(o),n.c=h,n.a=0==h.e?0:(l=h.d<<5,b=h.a[h.d-1],h.e<0&&za(h)==h.d-1&&(--b,b|=0),l-=niI(b)),n.a<54&&(n.f=(f=h.d>1?Dr(OR(h.a[1],32),Di(h.a[0],nlw)):Di(h.a[0],nlw),D8(VF(h.e,f))));for(r=0,n.d=s.a.length;r<s.a.length&&(45==(i=$9(s.a,r))||48==i);++r)--n.d;0==n.d&&(n.d=1)}(this,n)}function pI(n){this.a=new O2(n)}function pC(n,t){for(;n.ye(t););}function pO(n,t){for(;n.sd(t););}function pA(n,t){return n.a+=t,n}function p$(n,t){return n.a+=t,n}function pL(n,t){return n.a+=t,n}function pN(n){return $R(n),n.a}function px(n){return n.b!=n.d.c}function pD(n){return n.l|n.m<<22}function pR(n,t,e){n.splice(t,e)}function pK(n){n.c?nc6(n):nc8(n)}function pF(n){this.a=0,this.b=n}function p_(){this.a=new ncw(nIX)}function pB(){this.b=new ncw(nIB)}function pH(){this.b=new ncw(nI3)}function pq(){this.b=new ncw(nI3)}function pG(){throw(new wP).e}function pz(){throw(new wP).e}function pU(){throw(new wP).e}function pX(){throw(new wP).e}function pW(){throw(new wP).e}function pV(){throw(new wP).e}function pQ(){throw(new wP).e}function pJ(){throw(new wP).e}function pY(){throw(new wP).e}function pZ(){throw(new wP).e}function p1(n){this.a=new p0(n)}function p0(n){var t,e;t=function(){var n,t,e;for(n=0,t=0;n<1;n++){if(0==(e=ni3((x5(n,1),"X".charCodeAt(n)))))throw new gO("Unknown Option: "+"X".substr(n)).e;t|=e}return t}(),this.b=n,this.a=t,e=(512&this.a)==512?new dN:new o7,this.c=function(n,t,e){var i,r,c;if(n.e=e,n.d=0,n.b=0,n.f=1,n.i=t,(16&n.e)==16&&(n.i=function(n){var t,e,i,r,c;for(i=n.length,t=new gU,c=0;c<i;)if(9!=(e=$9(n,c++))&&10!=e&&12!=e&&13!=e&&32!=e){if(35==e){for(;c<i&&13!=(e=$9(n,c++))&&10!=e;);continue}92==e&&c<i?(35==(x5(c,n.length),r=n.charCodeAt(c))||9==r||10==r||12==r||13==r||32==r||(t.a+="\\"),$i(t,r&nfI),++c):$i(t,e&nfI)}return t.a}(n.i)),n.j=n.i.length,nhe(n),c=Ju(n),n.d!=n.j)throw new gO(nhd((E$(),ny7))).e;if(n.g){for(i=0;i<n.g.a.c.length;i++)if(r=Im($O(n.g,i),584),n.f<=r.a)throw new gO(nhd((E$(),nkn))).e;n.g.a.c=_f(nEX,nhA,1,0,5,1)}return c}(e,this.b,this.a)}function p2(n){return!n||$$(n)}function p3(n){return -1!=nYn[n]}function p4(){0!=nE8&&(nE8=0),nE7=-1}function p5(){null==nTk&&(nTk=[])}function p6(n,t){TS.call(this,n,t)}function p8(n,t){p6.call(this,n,t)}function p9(n,t){this.b=n,this.c=t}function p7(n,t){this.b=n,this.a=t}function vn(n,t){this.a=n,this.b=t}function vt(n,t){this.a=n,this.b=t}function ve(n,t){this.a=n,this.b=t}function vi(n,t){this.a=n,this.b=t}function vr(n,t){this.a=n,this.b=t}function vc(n,t){this.a=n,this.b=t}function va(n,t){this.a=n,this.b=t}function vu(n,t){this.a=n,this.b=t}function vo(n,t){this.b=n,this.a=t}function vs(n,t){this.b=n,this.a=t}function vh(n,t){this.b=n,this.a=t}function vf(n,t){this.b=n,this.a=t}function vl(n,t){this.f=n,this.g=t}function vb(n,t){this.e=n,this.d=t}function vw(n,t){this.g=n,this.i=t}function vd(n,t){this.a=n,this.b=t}function vg(n,t){this.a=n,this.f=t}function vp(n,t){this.b=n,this.c=t}function vv(n,t){this.a=n,this.b=t}function vm(n,t){this.a=n,this.b=t}function vy(n,t){this.a=n,this.b=t}function vk(n){Tq(n.dc()),this.c=n}function vj(n){this.b=Im(A1(n),83)}function vE(n){this.a=Im(A1(n),83)}function vT(n){this.a=Im(A1(n),15)}function vM(n){this.a=Im(A1(n),15)}function vS(n){this.b=Im(A1(n),47)}function vP(){this.q=new nTv.Date}function vI(){vI=C,nT7=new O}function vC(){vC=C,nMk=new S}function vO(n){return n.f.c+n.g.c}function vA(n,t){return n.b.Hc(t)}function v$(n,t){return n.a._b(t)}function vL(n){return $b(),n?nTB:nT_}function vN(n){U_.call(this,n,0)}function vx(){O2.call(this,null)}function vD(){_d.call(this,null)}function vR(n){this.c=n,B6(this)}function vK(){EU(this),Lq(this)}function vF(n,t){$R(n),n.a.Nb(t)}function v_(n,t){return n.a.a=t,n}function vB(n,t){return n.a.d=t,n}function vH(n,t){return n.a.e=t,n}function vq(n,t){return n.a.g=t,n}function vG(n,t){return n.a.f=t,n}function vz(){vz=C,nMA=new jH}function vU(){vU=C,nM$=new jq}function vX(){vX=C,nMZ=new z}function vW(){vW=C,nAq=new tS}function vV(){vV=C,nC6=new M_}function vQ(){vQ=C,nM5=new no}function vJ(){vJ=C,nAG=new tP}function vY(){vY=C,nSk=new nb}function vZ(){vZ=C,nAk=new to}function v1(){v1=C,nA4=new ps}function v0(){v0=C,nAj=new td}function v2(){v2=C,nAM=new Oc}function v3(){v3=C,nAD=new tb}function v4(){v4=C,nA5=new t0}function v5(){v5=C,n$5=new eC}function v6(){v6=C,nLo=new i3}function v8(){v8=C,nLF=new rv}function v9(){v9=C,nH6=new Rf}function v7(){v7=C,nGI=new mr}function mn(){mn=C,nGO=new Sa}function mt(){mt=C,nzf=new $Q}function me(){me=C,n_c=new aH}function mi(){q0(),this.c=new g$}function mr(){vl.call(this,ndN,0)}function mc(n,t){JR(n.c.b,t.c,t)}function ma(n,t){JR(n.c.c,t.b,t)}function mu(n,t){return n.a=t.g,n}function mo(){mo=C,nVm=new aV}function ms(){ms=C,nVN=new a4}function mh(){mh=C,nQM=new dk}function mf(){mf=C,nQP=new dj}function ml(){ml=C,nQS=new dI}function mb(){mb=C,nQI=new dO}function mw(){mw=C,nQ6=new E2}function md(){md=C,nQ8=new E3}function mg(){mg=C,nJM=new ou}function mp(){mp=C,nJP=new oo}function mv(){mv=C,nVZ=new wt}function mm(){mm=C,nJo=new wn}function my(){my=C,nhm=new st}function mk(n){this.a=Im(A1(n),224)}function mj(n){return Im(n,42).cd()}function mE(n){return n.b<n.d.gc()}function mT(n,t){return n.a.get(t)}function mM(n){x6.call(this,n,21)}function mS(n,t){N0.call(this,n,t)}function mP(n,t){vl.call(this,n,t)}function mI(n,t){vl.call(this,n,t)}function mC(n){$d(),Px.call(this,n)}function mO(n,t){C5(n,n.length,t)}function mA(n,t){Ax(n,n.length,t)}function m$(n,t,e){n.splice(t,0,e)}function mL(n,t){this.d=n,this.e=t}function mN(n,t){this.b=n,this.a=t}function mx(n,t){this.b=n,this.a=t}function mD(n,t){this.b=n,this.a=t}function mR(n,t){this.a=n,this.b=t}function mK(n,t){this.a=n,this.b=t}function mF(n,t){this.a=n,this.b=t}function m_(n,t){this.a=n,this.b=t}function mB(n,t){this.a=n,this.b=t}function mH(n,t){this.b=n,this.a=t}function mq(n,t){this.b=n,this.a=t}function mG(n,t){vl.call(this,n,t)}function mz(n,t){vl.call(this,n,t)}function mU(n,t){vl.call(this,n,t)}function mX(n,t){vl.call(this,n,t)}function mW(n,t){vl.call(this,n,t)}function mV(n,t){vl.call(this,n,t)}function mQ(n,t){vl.call(this,n,t)}function mJ(n,t){vl.call(this,n,t)}function mY(n,t){vl.call(this,n,t)}function mZ(n,t){vl.call(this,n,t)}function m1(n,t){vl.call(this,n,t)}function m0(n,t){vl.call(this,n,t)}function m2(n,t){vl.call(this,n,t)}function m3(n,t){vl.call(this,n,t)}function m4(n,t){vl.call(this,n,t)}function m5(n,t){vl.call(this,n,t)}function m6(n,t){vl.call(this,n,t)}function m8(n,t){vl.call(this,n,t)}function m9(n,t){this.a=n,this.b=t}function m7(n,t){this.a=n,this.b=t}function yn(n,t){this.a=n,this.b=t}function yt(n,t){this.a=n,this.b=t}function ye(n,t){this.a=n,this.b=t}function yi(n,t){this.a=n,this.b=t}function yr(n,t){this.a=n,this.b=t}function yc(n,t){this.a=n,this.b=t}function ya(n,t){this.a=n,this.b=t}function yu(n,t){this.b=n,this.a=t}function yo(n,t){this.b=n,this.a=t}function ys(n,t){this.b=n,this.a=t}function yh(n,t){this.b=n,this.a=t}function yf(n,t){this.c=n,this.d=t}function yl(n,t){this.e=n,this.d=t}function yb(n,t){this.a=n,this.b=t}function yw(n,t){this.b=t,this.c=n}function yd(n,t){vl.call(this,n,t)}function yg(n,t){vl.call(this,n,t)}function yp(n,t){vl.call(this,n,t)}function yv(n,t){vl.call(this,n,t)}function ym(n,t){vl.call(this,n,t)}function yy(n,t){vl.call(this,n,t)}function yk(n,t){vl.call(this,n,t)}function yj(n,t){vl.call(this,n,t)}function yE(n,t){vl.call(this,n,t)}function yT(n,t){vl.call(this,n,t)}function yM(n,t){vl.call(this,n,t)}function yS(n,t){vl.call(this,n,t)}function yP(n,t){vl.call(this,n,t)}function yI(n,t){vl.call(this,n,t)}function yC(n,t){vl.call(this,n,t)}function yO(n,t){vl.call(this,n,t)}function yA(n,t){vl.call(this,n,t)}function y$(n,t){vl.call(this,n,t)}function yL(n,t){vl.call(this,n,t)}function yN(n,t){vl.call(this,n,t)}function yx(n,t){vl.call(this,n,t)}function yD(n,t){vl.call(this,n,t)}function yR(n,t){vl.call(this,n,t)}function yK(n,t){vl.call(this,n,t)}function yF(n,t){vl.call(this,n,t)}function y_(n,t){vl.call(this,n,t)}function yB(n,t){vl.call(this,n,t)}function yH(n,t){vl.call(this,n,t)}function yq(n,t){vl.call(this,n,t)}function yG(n,t){vl.call(this,n,t)}function yz(n,t){vl.call(this,n,t)}function yU(n,t){vl.call(this,n,t)}function yX(n,t){vl.call(this,n,t)}function yW(n,t){vl.call(this,n,t)}function yV(n,t){this.b=n,this.a=t}function yQ(n,t){this.a=n,this.b=t}function yJ(n,t){this.a=n,this.b=t}function yY(n,t){this.a=n,this.b=t}function yZ(n,t){this.a=n,this.b=t}function y1(n,t){vl.call(this,n,t)}function y0(n,t){vl.call(this,n,t)}function y2(n,t){this.b=n,this.d=t}function y3(n,t){vl.call(this,n,t)}function y4(n,t){vl.call(this,n,t)}function y5(n,t){this.a=n,this.b=t}function y6(n,t){this.a=n,this.b=t}function y8(n,t){vl.call(this,n,t)}function y9(n,t){vl.call(this,n,t)}function y7(n,t){vl.call(this,n,t)}function kn(n,t){vl.call(this,n,t)}function kt(n,t){vl.call(this,n,t)}function ke(n,t){vl.call(this,n,t)}function ki(n,t){vl.call(this,n,t)}function kr(n,t){vl.call(this,n,t)}function kc(n,t){vl.call(this,n,t)}function ka(n,t){vl.call(this,n,t)}function ku(n,t){vl.call(this,n,t)}function ko(n,t){vl.call(this,n,t)}function ks(n,t){vl.call(this,n,t)}function kh(n,t){vl.call(this,n,t)}function kf(n,t){vl.call(this,n,t)}function kl(n,t){vl.call(this,n,t)}function kb(n,t){vl.call(this,n,t)}function kw(n,t){vl.call(this,n,t)}function kd(n,t){this.a=n,this.b=t}function kg(n,t){this.a=n,this.b=t}function kp(n,t){this.a=n,this.b=t}function kv(n,t){vl.call(this,n,t)}function km(n,t){vl.call(this,n,t)}function ky(n,t){vl.call(this,n,t)}function kk(n,t){vl.call(this,n,t)}function kj(n,t){vl.call(this,n,t)}function kE(n,t){vl.call(this,n,t)}function kT(n,t){vl.call(this,n,t)}function kM(n,t){vl.call(this,n,t)}function kS(n,t){vl.call(this,n,t)}function kP(n,t){vl.call(this,n,t)}function kI(n,t){vl.call(this,n,t)}function kC(n,t){vl.call(this,n,t)}function kO(n,t){vl.call(this,n,t)}function kA(n,t){vl.call(this,n,t)}function k$(n,t){vl.call(this,n,t)}function kL(n,t){vl.call(this,n,t)}function kN(n,t){this.a=n,this.b=t}function kx(n,t){this.a=n,this.b=t}function kD(n,t){this.a=n,this.b=t}function kR(n,t){this.a=n,this.b=t}function kK(n,t){this.a=n,this.b=t}function kF(n,t){this.a=n,this.b=t}function k_(n,t){this.a=n,this.b=t}function kB(n,t){vl.call(this,n,t)}function kH(n,t){this.a=n,this.b=t}function kq(n,t){this.a=n,this.b=t}function kG(n,t){this.a=n,this.b=t}function kz(n,t){this.a=n,this.b=t}function kU(n,t){this.a=n,this.b=t}function kX(n,t){this.a=n,this.b=t}function kW(n,t){this.b=n,this.a=t}function kV(n,t){this.b=n,this.a=t}function kQ(n,t){this.b=n,this.a=t}function kJ(n,t){this.b=n,this.a=t}function kY(n,t){this.a=n,this.b=t}function kZ(n,t){this.a=n,this.b=t}function k1(n,t){var e,i;e=n.a,i=Im(t,11),ID(),IE(e,new k_(i,Va(i.e.c.length+i.g.c.length)))}function k0(){xK(),this.b=new w_}function k2(){ncM(),this.a=new w_}function k3(){xL(),Ou.call(this)}function k4(n,t){vl.call(this,n,t)}function k5(n,t){this.a=n,this.b=t}function k6(n,t){this.a=n,this.b=t}function k8(n,t){this.a=n,this.b=t}function k9(n,t){this.a=n,this.b=t}function k7(n,t){this.a=n,this.b=t}function jn(n,t){this.a=n,this.b=t}function jt(n,t){this.d=n,this.b=t}function je(n,t){this.d=n,this.e=t}function ji(n,t){this.f=n,this.c=t}function jr(n,t){this.b=n,this.c=t}function jc(n,t){this.i=n,this.g=t}function ja(n,t){this.e=n,this.a=t}function ju(n,t){this.a=n,this.b=t}function jo(n,t){n.i=null,Gg(n,t)}function js(n){return QB(n.c,n.b)}function jh(n){return n?n.dd():null}function jf(n){return null==n?null:n}function jl(n){return typeof n===nhk}function jb(n){return typeof n===nhj}function jw(n){return typeof n===nhE}function jd(n,t){return n.Hd().Xb(t)}function jg(n,t){return function(n,t){for(A1(t);n.Ob();)if(!z9(Im(n.Pb(),10)))return!1;return!0}(n.Kc(),t)}function jp(n,t){return 0==WM(n,t)}function jv(n,t){return 0!=WM(n,t)}function jm(n,t){return n.substr(t)}function jy(n){return Qe(n),n.d.gc()}function jk(n){return function(n,t){var e,i,r;for(e=new h1(n.a.a);e.a<e.c.c.length;)Im(De(e),189).g=!0;for(r=new h1(n.a.b);r.a<r.c.c.length;)(i=Im(De(r),81)).k=gm(So(n.e.Kb(new k_(i,t)))),i.d.g=i.d.g&gm(So(n.e.Kb(new k_(i,t))))}(n,n.c),n}function jj(n){return Cr(null==n),n}function jE(n,t){return n.a+=""+t,n}function jT(n,t){return n.a+=""+t,n}function jM(n,t){return n.a+=""+t,n}function jS(n,t){return n.a+=""+t,n}function jP(n,t){return n.a+=""+t,n}function jI(n,t){return n.a+=""+t,n}function jC(n,t){KL(n,t,n.a,n.a.a)}function jO(n,t){KL(n,t,n.c.b,n.c)}function jA(n,t){n.q.setTime(D8(t))}function j$(n,t){OZ.call(this,n,t)}function jL(n,t){OZ.call(this,n,t)}function jN(n,t){OZ.call(this,n,t)}function jx(n){AT(this),zc(this,n)}function jD(n){return x4(n,0),null}function jR(n){return n.a=0,n.b=0,n}function jK(n){var t;return t=Im(n,79),LW(),xt(ntL(t))==xt(ntD(t))}function jF(){jF=C,nPv=X7(JF())}function j_(){j_=C,n$4=X7(ncb())}function jB(){this.b=new vN(Hv(12))}function jH(){this.b=0,this.a=!1}function jq(){this.b=0,this.a=!1}function jG(n){this.a=n,se.call(this)}function jz(n){this.a=n,se.call(this)}function jU(n,t){SA.call(this,n,t)}function jX(n,t){Pt.call(this,n,t)}function jW(n,t){jc.call(this,n,t)}function jV(n,t){zW.call(this,n,t)}function jQ(n,t){Ml.call(this,n,t)}function jJ(n,t){mv(),$J(nVZ,n,t)}function jY(n,t){return MT(n.a,0,t)}function jZ(n,t){return n.indexOf(t)}function j1(n,t){return n==t?0:n?1:-1}function j0(n){return n<10?"0"+n:""+n}function j2(n){return Ez(n.l,n.m,n.h)}function j3(n){return NU(($x(n),n))}function j4(n){return typeof n===nhj}function j5(n){return Bb(n.b.b,n,0)}function j6(n){this.a=(g2(),new nMP),this.b=n}function j8(n){this.a=(g2(),new nMP),this.b=n}function j9(n,t){_V(n,0,n.length,t)}function j7(){h9.call(this,new R7)}function En(){Cz.call(this,0,0,0,0)}function Et(){Lj.call(this,0,0,0,0)}function Ee(n){this.a=n.a,this.b=n.b}function Ei(n){return n==nXI||n==nXC}function Er(n){return n==nXA||n==nXP}function Ec(n){return n!=nWk&&n!=nWj}function Ea(n){return n.Lg()&&n.Mg()}function Eu(n){return Li(Im(n,118))}function Eo(n){return zM(new Rf,n)}function Es(n,t,e){qc(n,t),qa(n,e)}function Eh(n,t,e){qs(n,t),qo(n,e)}function Ef(n,t,e){qh(n,t),qf(n,e)}function El(n,t,e){qu(n,t),qb(n,e)}function Eb(n,t,e){ql(n,t),qw(n,e)}function Ew(n,t){XH(n,t),qv(n,n.D)}function Ed(n){ji.call(this,n,!0)}function Eg(n,t,e){Sv.call(this,n,t,e)}function Ep(n){nc4(),zL.call(this,n)}function Ev(){mP.call(this,"Head",1)}function Em(){mP.call(this,"Tail",3)}function Ey(n){n.c=_f(nEX,nhA,1,0,5,1)}function Ek(n){n.a=_f(nEX,nhA,1,8,5,1)}function Ej(n){HR(n.xf(),new fj(n))}function EE(n){return null!=n?Xg(n):0}function ET(n){var t,e;return t=n.b.Kc(),e=n.a,A1(t),A1(e),new vo(t,e)}function EM(n,t){SA.call(this,n.b,t)}function ES(n){Cz.call(this,n,n,n,n)}function EP(n){return n.b&&nou(n),n.a}function EI(n){return n.b&&nou(n),n.c}function EC(n,t,e){$t(n.c[t.g],t.g,e)}function EO(n){nhh(),b8.call(this,n)}function EA(){EA=C,nBF=new Qn(nCl)}function E$(){E$=C,new EL,new wn}function EL(){new wt,new wt,new wt}function EN(){EN=C,wx(),nTK=new wt}function Ex(){Ex=C,nTv.Math.log(2)}function ED(){ED=C,ms(),nQ9=nVN}function ER(n){this.a=n,IM.call(this,n)}function EK(n){this.a=n,vj.call(this,n)}function EF(n){this.a=n,vj.call(this,n)}function E_(n,t){C3(n.c,n.c.length,t)}function EB(n){return n.a<n.c.c.length}function EH(n){return n.a<n.c.a.length}function Eq(n,t){return n.a?n.b:t.De()}function EG(n,t){return n<t?-1:n>t?1:0}function Ez(n,t,e){return{l:n,m:t,h:e}}function EU(n){n.a=new A,n.c=new A}function EX(n){this.b=n,this.a=new wn}function EW(n){this.b=new n1,this.a=n}function EV(n){SJ.call(this),this.a=n}function EQ(){mP.call(this,"Range",2)}function EJ(){nnu(),this.a=new ncw(nPF)}function EY(n,t,e){return Q5(t,e,n.c)}function EZ(n){return new kp(n.c,n.d)}function E1(n){return new kp(n.a,n.b)}function E0(n){xq(n,null),xG(n,null)}function E2(){Ml.call(this,null,null)}function E3(){Mb.call(this,null,null)}function E4(n){this.a=n,wt.call(this)}function E5(n){this.b=(LV(),new hZ(n))}function E6(n){n.j=_f(nTs,nhJ,310,0,0,1)}function E8(n,t){noK(n),n.Gc(Im(t,15))}function E9(n,t){return function(n,t,e){var i,r,c,a,u,o,s,h;if(0==e.gc())return!1;if(mp(),c=(u=Im(t,66).Oj())?e:new HO(e.gc()),ncD(n.e,t)){if(t.hi())for(s=e.Kc();s.Ob();)!nuz(n,t,o=s.Pb(),Ti(t,99)&&(Im(t,18).Bb&nls)!=0)&&(r=RU(t,o),c.Hc(r)||c.Fc(r));else if(!u)for(s=e.Kc();s.Ob();)r=RU(t,o=s.Pb()),c.Fc(r)}else{if(e.gc()>1)throw new gd(nj2).e;for(a=0,h=ncT(n.e.Tg(),t),i=Im(n.g,119);a<n.i;++a)if(r=i[a],h.rl(r.ak())){if(e.Hc(u?r:r.dd()))return!1;for(s=e.Kc();s.Ob();)o=s.Pb(),Im(Yb(n,a,u?Im(o,72):RU(t,o)),72);return!0}u||(r=RU(t,e.Kc().Pb()),c.Fc(r))}return AJ(n,c)}(n.c,n.b,t)}function E7(n,t){return -1!=function(n,t){var e,i;for(L4(t,"predicate"),i=0;n.Ob();i++)if(e=n.Pb(),t.Lb(e))return i;return -1}(n.Kc(),t)}function Tn(n,t){return null!=n.a.Bc(t)}function Tt(n){return n.Ob()?n.Pb():null}function Te(n){return Je(n,0,n.length)}function Ti(n,t){return null!=n&&Ya(n,t)}function Tr(n,t){n.c&&(I3(t),NH(t))}function Tc(n,t,e){n.a=1502^t,n.b=e^nlI}function Ta(n,t,e){return n.a[t.g][e.g]}function Tu(n,t){return n.a[t.c.p][t.p]}function To(n,t){return n.a*=t,n.b*=t,n}function Ts(n,t,e){return $t(n.g,t,e),e}function Th(n){n.a=Im(zF(n.b.a,4),126)}function Tf(n){n.a=Im(zF(n.b.a,4),126)}function Tl(){Tl=C,nMO=new ge(null)}function Tb(){(Tb=C)(),nMX=new G}function Tw(){this.Bb|=256,this.Bb|=512}function Td(n){this.i=n,this.f=this.i.j}function Tg(n,t,e){Iq.call(this,n,t,e)}function Tp(n,t,e){Tg.call(this,n,t,e)}function Tv(n,t,e){Tg.call(this,n,t,e)}function Tm(n,t,e){Tp.call(this,n,t,e)}function Ty(n,t,e){Iq.call(this,n,t,e)}function Tk(n,t,e){Iq.call(this,n,t,e)}function Tj(n,t,e){IW.call(this,n,t,e)}function TE(n,t,e){IW.call(this,n,t,e)}function TT(n,t,e){Tj.call(this,n,t,e)}function TM(n,t,e){Ty.call(this,n,t,e)}function TS(n,t){this.a=n,vj.call(this,t)}function TP(n,t){this.a=n,gA.call(this,t)}function TI(n,t){this.a=n,gA.call(this,t)}function TC(n,t){this.a=n,gA.call(this,t)}function TO(n){this.a=n,hb.call(this,n.d)}function TA(n){this.c=n,this.a=this.c.a}function T$(n,t){this.a=t,gA.call(this,n)}function TL(n,t){this.a=t,R6.call(this,n)}function TN(n,t){this.a=n,R6.call(this,t)}function Tx(n,t){return function(n,t,e){try{!function(n,t,e){if(A1(t),e.Ob())for(jI(t,A8(e.Pb()));e.Ob();)jI(t,n.a),jI(t,A8(e.Pb()))}(n,t,e)}catch(n){if(Ti(n=Uu(n),597))throw new K_(n).e;throw n.e}return t}(n,new gX,t).a}function TD(n,t){return A1(t),new TR(n,t)}function TR(n,t){this.a=t,vS.call(this,n)}function TK(n){this.b=n,this.a=this.b.a.e}function TF(n){n.b.Qb(),--n.d.f.d,Oe(n.d)}function T_(n){hr.call(this,Im(A1(n),35))}function TB(n){hr.call(this,Im(A1(n),35))}function TH(){vl.call(this,"INSTANCE",0)}function Tq(n){if(!n)throw(new wT).e}function TG(n){if(!n)throw(new wM).e}function Tz(n){if(!n)throw(new wO).e}function TU(){TU=C,mg(),nJS=new s1}function TX(){TX=C,nTV=!1,nTQ=!0}function TW(n){hR.call(this,($x(n),n))}function TV(n){hR.call(this,($x(n),n))}function TQ(n){hW.call(this,n),this.a=n}function TJ(n){hV.call(this,n),this.a=n}function TY(n){gQ.call(this,n),this.a=n}function TZ(){E6(this),Lz(this),this._d()}function T1(n,t){this.a=t,vS.call(this,n)}function T0(n,t){return new ne$(n.a,n.b,t)}function T2(n,t){return n.lastIndexOf(t)}function T3(n,t,e){return n.indexOf(t,e)}function T4(n){return null==n?nhN:V7(n)}function T5(n){return null!=n.a?n.a:null}function T6(n,t){return null!=NW(n.a,t)}function T8(n,t){return!!t&&n.b[t.g]==t}function T9(n){return n.$H||(n.$H=++nM9)}function T7(n,t){return IE(t.a,n.a),n.a}function Mn(n,t){return IE(t.b,n.a),n.a}function Mt(n,t){return IE(t.a,n.a),n.a}function Me(n){return MK(null!=n.a),n.a}function Mi(n){h9.call(this,new _p(n))}function Mr(n,t){Jj.call(this,n,t,null)}function Mc(n){this.a=n,hX.call(this,n)}function Ma(){Ma=C,nPy=new SA(nbP,0)}function Mu(n,t){return++n.b,IE(n.a,t)}function Mo(n,t){return++n.b,Bh(n.a,t)}function Ms(n,t){return Im(Fl(n.b,t),15)}function Mh(n){return EB(n.a)||EB(n.b)}function Mf(n,t,e){Im(BM(n,t),21).Fc(e)}function Ml(n,t){mw(),this.a=n,this.b=t}function Mb(n,t){md(),this.b=n,this.c=t}function Mw(n,t){Os(),this.f=t,this.d=n}function Md(n,t){Fg(t,n),this.d=n,this.c=t}function Mg(n){var t;t=n.a,n.a=n.b,n.b=t}function Mp(n,t){return new Pb(n,n.gc(),t)}function Mv(n){this.d=n,Td.call(this,n)}function Mm(n){this.c=n,Td.call(this,n)}function My(n){this.c=n,Mv.call(this,n)}function Mk(){v6(),this.b=new la(this)}function Mj(n){return qz(n,nfs),new Fq(n)}function ME(n){return Nv(),parseInt(n)||-1}function MT(n,t,e){return n.substr(t,e-t)}function MM(n,t,e){return T3(n,ntd(t),e)}function MS(n){return AN(n.c,n.c.length)}function MP(n){return null!=n.f?n.f:""+n.g}function MI(n){return MK(0!=n.b),n.a.a.c}function MC(n){return MK(0!=n.b),n.c.b.c}function MO(n){Ti(n,150)&&Im(n,150).Gh()}function MA(n){return n.b=Im(LH(n.a),42)}function M$(n){vz(),this.b=n,this.a=!0}function ML(n){vU(),this.b=n,this.a=!0}function MN(n){n.d=new MF(n),n.e=new wt}function Mx(n){if(!n)throw(new wI).e}function MD(n){if(!n)throw(new wT).e}function MR(n){if(!n)throw(new wM).e}function MK(n){if(!n)throw(new wO).e}function MF(n){IC.call(this,n,null,null)}function M_(){vl.call(this,"POLYOMINO",0)}function MB(n,t,e,i){OS.call(this,n,t,e,i)}function MH(n,t){return!!n.q&&Au(n.q,t)}function Mq(n,t,e){n.Zc(t).Rb(e)}function MG(n,t,e){return n.a+=t,n.b+=e,n}function Mz(n,t,e){return n.a-=t,n.b-=e,n}function MU(n,t){return n.a=t.a,n.b=t.b,n}function MX(n){return n.a=-n.a,n.b=-n.b,n}function MW(n){this.c=n,this.a=1,this.b=1}function MV(n){this.c=n,qh(n,0),qf(n,0)}function MQ(n){vK.call(this),qL(this,n)}function MJ(n){ns5(),this.b=new g$,this.mf(n)}function MY(n,t){mw(),Ml.call(this,n,t)}function MZ(n,t){md(),Mb.call(this,n,t)}function M1(n,t){md(),Mb.call(this,n,t)}function M0(n,t){md(),MZ.call(this,n,t)}function M2(n,t,e){_D.call(this,n,t,e,2)}function M3(n,t){ED(),Cq.call(this,n,t)}function M4(n,t){ED(),M3.call(this,n,t)}function M5(n,t){ED(),M3.call(this,n,t)}function M6(n,t){ED(),M5.call(this,n,t)}function M8(n,t){ED(),Cq.call(this,n,t)}function M9(n,t){ED(),M8.call(this,n,t)}function M7(n,t){ED(),Cq.call(this,n,t)}function Sn(n,t){return WO(n.e,Im(t,49))}function St(n,t){t.$modCount=n.$modCount}function Se(){Se=C,nH8=new bR("root")}function Si(){Si=C,nVY=new dv,new dm}function Sr(){this.a=new NK,this.b=new NK}function Sc(){qZ.call(this),this.Bb|=nls}function Sa(){vl.call(this,"GROW_TREE",0)}function Su(n){null==n.o&&function(n){if(n.pe()){var t=n.c;t.qe()?n.o="["+t.n:t.pe()?n.o="["+t.ne():n.o="[L"+t.ne()+";",n.b=t.me()+"[]",n.k=t.oe()+"[]";return}var e=n.j,i=n.d;i=i.split("/"),n.o=Jt(".",[e,Jt("$",i)]),n.b=Jt(".",[e,Jt(".",i)]),n.k=i[i.length-1]}(n)}function So(n){return Cr(null==n||jl(n)),n}function Ss(n){return Cr(null==n||jb(n)),n}function Sh(n){return Cr(null==n||jw(n)),n}function Sf(n){this.q=new nTv.Date(D8(n))}function Sl(n,t){this.c=n,vb.call(this,n,t)}function Sb(n,t){this.a=n,Sl.call(this,n,t)}function Sw(n,t){this.d=n,this.c=this.d.d,this.b=t}function Sd(n,t){_d.call(this,n),this.a=t}function Sg(n,t){_d.call(this,n),this.a=t}function Sp(n){QA.call(this,0,0),this.f=n}function Sv(n,t,e){FB.call(this,n,t,e,null)}function Sm(n,t,e){FB.call(this,n,t,e,null)}function Sy(n){return Im(CA(n.a,n.b),287)}function Sk(n){return new kp(n.c,n.d+n.a)}function Sj(n){var t;return xD(),(t=Im(n,197))==n_y||t==n_m}function SE(){SE=C,nPm=VD((QJ(),nW8))}"undefined"!=typeof window?nTv=window:void 0!==n?nTv=n:"undefined"!=typeof self&&(nTv=self);function ST(n,t){return Nk(t,nbm),n.f=t,n}function SM(n,t,e){return e=nuc(n,t,3,e)}function SS(n,t,e){return e=nuc(n,t,6,e)}function SP(n,t,e){return e=nuc(n,t,9,e)}function SI(n,t,e){++n.j,n.Ki(),_s(n,t,e)}function SC(n,t,e){++n.j,n.Hi(t,n.oi(t,e))}function SO(n,t){return(t&nhM)%n.d.length}function SA(n,t){bR.call(this,n),this.a=t}function S$(n,t){bJ.call(this,n),this.a=t}function SL(n,t){bJ.call(this,n),this.a=t}function SN(n,t){this.c=n,HO.call(this,t)}function Sx(n,t){this.a=n,bQ.call(this,t)}function SD(n,t){this.a=n,bQ.call(this,t)}function SR(n){this.a=(qz(n,nfs),new Fq(n))}function SK(n){this.a=(qz(n,nfs),new Fq(n))}function SF(n){return n.a||(n.a=new b),n.a}function S_(n,t,e){return C2(n,Im(t,22),e)}function SB(n,t){var e;return e=n.e,n.e=t,e}function SH(n,t){n.a.Vc(n.b,t),++n.b,n.c=-1}function Sq(n){AT(n.e),n.d.b=n.d,n.d.a=n.d}function SG(n){n.b?SG(n.b):n.f.c.zc(n.e,n.d)}function Sz(n,t){return Bs(Array(t),n)}function SU(n){return String.fromCharCode(n)}function SX(){this.a=new wn,this.b=new wn}function SW(){this.a=new tt,this.b=new wN}function SV(){this.b=new ps,this.c=new wn}function SQ(){this.d=new ps,this.e=new ps}function SJ(){this.n=new ps,this.o=new ps}function SY(){this.n=new da,this.i=new Et}function SZ(){this.a=new sd,this.b=new rk}function S1(){this.a=new wn,this.d=new wn}function S0(){this.b=new w_,this.a=new w_}function S2(){this.b=new wt,this.a=new wt}function S3(){this.b=new pB,this.a=new cm}function S4(){SY.call(this),this.a=new ps}function S5(n){zX.call(this,n,(_0(),nMW))}function S6(n,t,e,i){Cz.call(this,n,t,e,i)}function S8(n,t,e){return e=nuc(n,t,11,e)}function S9(n,t){return n.a+=t.a,n.b+=t.b,n}function S7(n,t){return n.a-=t.a,n.b-=t.b,n}function Pn(n,t){return null==$J(n.a,t,"")}function Pt(n,t){gu.call(this,nkB+n+ny3+t)}function Pe(n,t,e,i){An.call(this,n,t,e,i)}function Pi(n,t,e,i){An.call(this,n,t,e,i)}function Pr(n,t,e,i){Pi.call(this,n,t,e,i)}function Pc(n,t,e,i){At.call(this,n,t,e,i)}function Pa(n,t,e,i){At.call(this,n,t,e,i)}function Pu(n,t,e,i){At.call(this,n,t,e,i)}function Po(n,t,e,i){Pa.call(this,n,t,e,i)}function Ps(n,t,e,i){Pa.call(this,n,t,e,i)}function Ph(n,t,e,i){Pu.call(this,n,t,e,i)}function Pf(n,t,e,i){Ps.call(this,n,t,e,i)}function Pl(n,t,e,i){O8.call(this,n,t,e,i)}function Pb(n,t,e){this.a=n,Md.call(this,t,e)}function Pw(n,t,e){this.c=t,this.b=e,this.a=n}function Pd(n,t){return n.Aj().Nh().Kh(n,t)}function Pg(n,t){return n.Aj().Nh().Ih(n,t)}function Pp(n,t){return $x(n),jf(n)===jf(t)}function Pv(n,t){return $x(n),jf(n)===jf(t)}function Pm(n,t){return pl(Q2(n.a,t,!1))}function Py(n,t){return pl(Q3(n.a,t,!1))}function Pk(n,t){return n.b.sd(new m_(n,t))}function Pj(n,t,e){return n.lastIndexOf(t,e)}function PE(n){return n.c?Bb(n.c.a,n,0):-1}function PT(n){return n==nWp||n==nWm||n==nWv}function PM(n,t){return Ti(t,15)&&nar(n.c,t)}function PS(n,t){this.c=n,AA.call(this,n,t)}function PP(n){this.c=n,jN.call(this,nh0,0)}function PI(n,t){IP.call(this,n,n.length,t)}function PC(n,t,e){return Im(n.c,69).mk(t,e)}function PO(n,t,e){return Im(t,332).Rk(n.e,n.c,e)}function PA(n,t,e){var i,r,c,a,u;return i=Im(t,332),r=e,c=i.ak(),u=i.dd(),a=c.$j()?NE(n,4,c,u,null,nu5(n,c,u,Ti(c,99)&&(Im(c,18).Bb&nls)!=0),!0):NE(n,c.Kj()?2:1,c,u,c.zj(),-1,!0),r?r.Ei(a):r=a,r}function P$(n,t){return null==t?null:WK(n.b,t)}function PL(n){return jb(n)?($x(n),n):n.ke()}function PN(n){return!isNaN(n)&&!isFinite(n)}function Px(n){PV(),this.a=(LV(),new gQ(n))}function PD(n){ID(),this.d=n,this.a=new b7}function PR(n,t,e){this.a=n,this.b=t,this.c=e}function PK(n,t,e){this.a=n,this.b=t,this.c=e}function PF(n,t,e){this.d=n,this.b=e,this.a=t}function P_(n){EU(this),Lq(this),Gz(this,n)}function PB(n){Ey(this),IO(this.c,0,n.Pc())}function PH(n){$I(n.a),_m(n.c,n.b),n.b=null}function Pq(n){this.a=n,vI(),zx(Date.now())}function PG(){PG=C,nM6=new e,nM8=new e}function Pz(){Pz=C,nMI=new $,nMC=new L}function PU(){PU=C,nVJ=_f(nEX,nhA,1,0,5,1)}function PX(){PX=C,nQ1=_f(nEX,nhA,1,0,5,1)}function PW(){PW=C,nQ0=_f(nEX,nhA,1,0,5,1)}function PV(){PV=C,new wd((LV(),LV(),nMv))}function PQ(n,t){if(!n)throw new gd(t).e}function PJ(n){Cz.call(this,n.d,n.c,n.a,n.b)}function PY(n){Cz.call(this,n.d,n.c,n.a,n.b)}function PZ(n,t,e){this.b=n,this.c=t,this.a=e}function P1(n,t,e){this.b=n,this.a=t,this.c=e}function P0(n,t,e){this.a=n,this.b=t,this.c=e}function P2(n,t,e){this.a=n,this.b=t,this.c=e}function P3(n,t,e){this.a=n,this.b=t,this.c=e}function P4(n,t,e){this.a=n,this.b=t,this.c=e}function P5(n,t,e){this.b=n,this.a=t,this.c=e}function P6(n,t,e){this.e=t,this.b=n,this.d=e}function P8(n){var t;return(t=new ny).e=n,t}function P9(n){var t;return(t=new w2).b=n,t}function P7(){P7=C,nA7=new el,n$n=new eb}function In(){In=C,nLs=new iH,nLh=new iq}function It(n,t){this.c=n,this.a=t,this.b=t-n}function Ie(n,t,e){this.a=n,this.b=t,this.c=e}function Ii(n,t,e){this.a=n,this.b=t,this.c=e}function Ir(n,t,e){this.a=n,this.b=t,this.c=e}function Ic(n,t,e){this.a=n,this.b=t,this.c=e}function Ia(n,t,e){this.a=n,this.b=t,this.c=e}function Iu(n,t,e){this.e=n,this.a=t,this.c=e}function Io(n,t,e){ED(),N_.call(this,n,t,e)}function Is(n,t,e){ED(),$k.call(this,n,t,e)}function Ih(n,t,e){ED(),$k.call(this,n,t,e)}function If(n,t,e){ED(),$k.call(this,n,t,e)}function Il(n,t,e){ED(),Is.call(this,n,t,e)}function Ib(n,t,e){ED(),Is.call(this,n,t,e)}function Iw(n,t,e){ED(),Ib.call(this,n,t,e)}function Id(n,t,e){ED(),Ih.call(this,n,t,e)}function Ig(n,t,e){ED(),If.call(this,n,t,e)}function Ip(n,t){return A1(n),A1(t),new va(n,t)}function Iv(n,t){return A1(n),A1(t),new I5(n,t)}function Im(n,t){return Cr(null==n||Ya(n,t)),n}function Iy(n){var t;return BU(t=new wn,n),t}function Ik(n){var t;return GW(t=new wW,n),t}function Ij(n){var t;return GW(t=new vK,n),t}function IE(n,t){return n.c[n.c.length]=t,!0}function IT(n,t){this.c=n,this.b=t,this.a=!1}function IM(n){var t;this.d=n,this.c=this.d.d,this.b=Ti(t=n.d,15)?Im(t,15).Yc():t.Kc()}function IS(){this.a=";,;",this.b="",this.c=""}function IP(n,t,e){O1.call(this,t,e),this.a=n}function II(n,t,e){this.b=n,j$.call(this,t,e)}function IC(n,t,e){this.c=n,mL.call(this,t,e)}function IO(n,t,e){ne4(e,0,n,t,e.length,!1)}function IA(n,t,e,i,r){n.b=t,n.c=e,n.d=i,n.a=r}function I$(n,t,e,i,r){n.d=t,n.c=e,n.a=i,n.b=r}function IL(n){var t,e;t=n.b,e=n.c,n.b=e,n.c=t}function IN(n){var t,e;e=n.d,t=n.a,n.d=t,n.a=e}function Ix(n){var t;return zA(Ez(~(t=j4(n)?zz(n):n).l&nf4,~t.m&nf4,~t.h&nf5))}function ID(){ID=C,nsR(),nBk=nWJ,nBj=nWA}function IR(){this.b=gy(Ss(JZ((nab(),nOV))))}function IK(n){return vQ(),_f(nEX,nhA,1,n,5,1)}function IF(n){return MK(0!=n.b),HK(n,n.a.a)}function I_(n,t){if(!n)throw new go(t).e}function IB(n,t){if(!n)throw new gd(t).e}function IH(n,t,e){yf.call(this,n,t),this.b=e}function Iq(n,t,e){je.call(this,n,t),this.c=e}function IG(n,t,e){HP.call(this,t,e),this.d=n}function Iz(n){PW(),ui.call(this),this.th(n)}function IU(n,t,e){this.a=n,jW.call(this,t,e)}function IX(n,t,e){this.a=n,jW.call(this,t,e)}function IW(n,t,e){je.call(this,n,t),this.c=e}function IV(){KY(),$M.call(this,(ml(),nQS))}function IQ(n){return null!=n&&!Qi(n,nQe,nQi)}function IJ(n,t){n.n&&IE(n.f,t)}function IY(n,t,e){Hy(n,t,new $h(e))}function IZ(n,t){return t<0?n.g=-1:n.g=t,n}function I1(n,t){var e;return(e=nTv.Math.sqrt(n.a*n.a+n.b*n.b))>0&&(n.a/=e,n.b/=e),n.a*=t,n.b*=t,n}function I0(n,t,e,i,r){n.c=t,n.d=e,n.b=i,n.a=r}function I2(n,t){return KL(n,t,n.c.b,n.c),!0}function I3(n){n.a.b=n.b,n.b.a=n.a,n.a=n.b=null}function I4(n){this.b=n,this.a=OC(this.b.a).Ed()}function I5(n,t){this.b=n,this.a=t,se.call(this)}function I6(n,t){this.a=n,this.b=t,se.call(this)}function I8(n,t){O1.call(this,t,1040),this.a=n}function I9(n){return 0==n||isNaN(n)?n:n<0?-1:1}function I7(n,t){return nn$(n,new yf(t.a,t.b))}function Cn(n){var t;return t=n.n,n.a.b+t.d+t.a}function Ct(n){var t;return t=n.n,n.e.b+t.d+t.a}function Ce(n){var t;return t=n.n,n.e.a+t.b+t.c}function Ci(n){return nhh(),++nYO,new CU(0,n)}function Cr(n){if(!n)throw new gw(null).e}function Cc(){Cc=C,LV(),nJI=new hQ(nj1)}function Ca(){Ca=C,new Yw((dV(),nTP),(dQ(),nTS))}function Cu(){Cu=C,nT0=_f(nTa,nhJ,19,256,0,1)}function Co(n,t,e,i){Qo.call(this,n,t,e,i,0,0)}function Cs(n){return n.e.c.length+n.g.c.length}function Ch(n){return n.e.c.length-n.g.c.length}function Cf(n){return n.b.c.length-n.e.c.length}function Cl(n){PW(),Iz.call(this,n),this.a=-1}function Cb(n,t){jr.call(this,n,t),this.a=this}function Cw(n,t){var e;return(e=AZ(n,t)).i=2,e}function Cd(n,t){return++n.j,n.Ti(t)}function Cg(n,t,e){return n.a=-1,Mf(n,t.g,e),n}function Cp(n,t,e){var i;return new Pw((0>=n?new vD:0>(i=n-1)?new vD:new Sg(null,new Kq(i+1,i))).Ie(),e,t)}function Cv(n,t,e,i,r,c){return function n(t,e,i,r,c,a,u){var o,s,h,f,l;if(f=c[a],l=Zi(o=(h=a==u-1)?r:0,f),10!=r&&Um(xg(t,u-a),e[a],i[a],o,l),!h)for(++a,s=0;s<f;++s)l[s]=n(t,e,i,r,c,a,u);return l}(n,t,e,i,r,0,c)}function Cm(){Cm=C,nTY=_f(nTe,nhJ,217,256,0,1)}function Cy(){Cy=C,nT3=_f(nTu,nhJ,162,256,0,1)}function Ck(){Ck=C,nT9=_f(nTo,nhJ,184,256,0,1)}function Cj(){Cj=C,nT1=_f(nTi,nhJ,172,128,0,1)}function CE(){IA(this,!1,!1,!1,!1)}function CT(n){$w(),this.a=(LV(),new hQ(A1(n)))}function CM(n){for(A1(n);n.Ob();)n.Pb(),n.Qb()}function CS(n){this.c=n,this.b=this.c.d.vc().Kc()}function CP(n){this.c=n,this.a=new vR(this.c.a)}function CI(n){this.a=new vN(n.gc()),Gz(this,n)}function CC(n){h9.call(this,new R7),Gz(this,n)}function CO(n,t){return n.a+=Je(t,0,t.length),n}function CA(n,t){return x4(t,n.c.length),n.c[t]}function C$(n,t){return x4(t,n.a.length),n.a[t]}function CL(n,t){vQ(),_d.call(this,n),this.a=t}function CN(n,t){var e,i;return e=Im(n,162),i=Im(t,162),Jy(VK(Jy(e.a).a,i.a))}function Cx(n){return n.c-Im(CA(n.a,n.b),287).b}function CD(n){return n.q?n.q:(LV(),LV(),nMm)}function CR(n){return n.e.Hd().gc()*n.c.Hd().gc()}function CK(n,t,e){return nTv.Math.min(e/n,1/t)}function CF(n,t){return n?0:nTv.Math.max(0,t-1)}function C_(n){return n.c?n.c.f:n.e.b}function CB(n){return n.c?n.c.g:n.e.a}function CH(n){HO.call(this,n.gc()),AJ(this,n)}function Cq(n,t){ED(),bY.call(this,t),this.a=n}function CG(n,t,e){this.a=n,Tg.call(this,t,e,2)}function Cz(n,t,e,i){I$(this,n,t,e,i)}function CU(n,t){nhh(),b8.call(this,n),this.a=t}function CX(n){this.b=new vK,this.a=n,this.c=-1}function CW(){this.d=new kp(0,0),this.e=new w_}function CV(n){Md.call(this,0,0),this.a=n,this.b=0}function CQ(n){this.a=n,this.c=new wt,function(n){var t,e,i,r;for(e=n.a,i=0,r=e.length;i<r;++i)U6(n,t=e[i],(nsR(),nWV)),U6(n,t,nW$)}(this)}function CJ(n){if(n.e.c!=n.b)throw(new wI).e}function CY(n){if(n.c.e!=n.a)throw(new wI).e}function CZ(n){return j4(n)?0|n:pD(n)}function C1(n,t){return nhh(),++nYO,new AL(n,t)}function C0(n,t){return null==n?null==t:Pv(n,t)}function C2(n,t,e){return Gv(n.a,t),Ap(n,t.g,e)}function C3(n,t,e){X3(0,t,n.length),_V(n,0,t,e)}function C4(n,t,e){xC(t,n.c.length),m$(n.c,t,e)}function C5(n,t,e){var i;for(i=0;i<t;++i)n[i]=e}function C6(n,t){var e;return Xe(e=VD(n),t),e}function C8(n,t){var e,i,r;return e=new Z,i=new fi(n),r=t,BT(e,new fu(i),new nc,new fo(r),Um(xg(nMz,1),nfh,132,0,[]))}function C9(n,t){return Ti(t,22)&&T8(n,Im(t,22))}function C7(n,t){var e;return Ti(t,22)&&!!(e=Im(t,22))&&n.b[e.g]==e&&($t(n.b,e.g,null),--n.c,!0)}function On(n){return nr_(n,26)*nlS+nr_(n,27)*nlP}function Ot(n){return Array.isArray(n)&&n.im===I}function Oe(n){n.b?Oe(n.b):n.d.dc()&&n.f.c.Bc(n.e)}function Oi(n,t){S9(n.c,t),n.b.c+=t.a,n.b.d+=t.b}function Or(n,t){this.b=new vK,this.a=n,this.c=t}function Oc(){this.b=new tv,this.c=new Nu(this)}function Oa(){this.d=new np,this.e=new Na(this)}function Ou(){xL(),this.f=new vK,this.e=new vK}function Oo(){xD(),this.k=new wt,this.d=new w_}function Os(){Os=C,nVy=new EM((nha(),nU5),0)}function Oh(){Oh=C,nTO=new CV(_f(nEX,nhA,1,0,5,1))}function Of(n,t,e){var i;n&&((i=n.i).c=t,i.b=e)}function Ol(n,t,e){var i;n&&((i=n.i).d=t,i.a=e)}function Ob(n,t,e){return n.a=-1,Mf(n,t.g+1,e),n}function Ow(n,t,e){return e=nuc(n,Im(t,49),7,e)}function Od(n,t,e){return e=nuc(n,Im(t,49),3,e)}function Og(n,t,e){this.a=n,Tp.call(this,t,e,22)}function Op(n,t,e){this.a=n,Tp.call(this,t,e,14)}function Ov(n,t,e,i){ED(),DP.call(this,n,t,e,i)}function Om(n,t,e,i){ED(),DP.call(this,n,t,e,i)}function Oy(n){return null!=n&&AP(n)&&n.im!==I}function Ok(n){return!Array.isArray(n)&&n.im===I}function Oj(n){return n.Qc(_f(nEX,nhA,1,n.gc(),5,1))}function OE(n,t){var e,i,r,c;return((e=BI(n,t)).b||(c=e.e,r=!(i=e.a.Hh(c.a))||!Pv(nmb,Q_((i.b||(i.b=new M2((nhl(),nQQ),nQE,i)),i.b),"qualified")),e.c=r,e.b=!0),e.c)?t.Qh():null}function OT(n){n?function n(t,e,i){var r,c,a,u;for(function(n){var t,e,i;for(null==n.j&&(n.j=(Nv(),function(n){var t;for(t=nTv.Math.min(n.length,5)-1;t>=0;t--)if(Pv(n[t].d,"Sz")||Pv(n[t].d,"ez")){n.length>=t+1&&n.splice(0,t+1);break}return n}(nTR.ce(n)))),t=n.j,e=0,i=t.length;e<i;++e);}(t),null==t.k&&(t.k=_f(nE5,nhJ,78,0,0,1)),r=t.k,c=0,a=r.length;c<a;++c)n(r[c],e," "+i);(u=t.f)&&n(u,e,i)}(n,(vI(),nT7),""):vI()}function OM(n){this.a=(Oh(),nTO),this.d=Im(A1(n),47)}function OS(n,t,e,i){this.a=n,FB.call(this,n,t,e,i)}function OP(n){my(),this.a=0,this.b=n-1,this.c=1}function OI(n){E6(this),this.g=n,Lz(this),this._d()}function OC(n){return n.c?n.c:n.c=n.Id()}function OO(n){return n.d?n.d:n.d=n.Jd()}function OA(n){return n.c||(n.c=n.Dd())}function O$(n){return n.f||(n.f=n.Dc())}function OL(n){return n.i||(n.i=n.bc())}function ON(n){return nhh(),++nYO,new NF(10,n,0)}function Ox(n){return j4(n)?""+n:function n(t){var e,i,r,c;if(0==t.l&&0==t.m&&0==t.h)return"0";if(t.h==nf6&&0==t.m&&0==t.l)return"-9223372036854775808";if(t.h>>19!=0)return"-"+n(Uq(t));for(i=t,r="";!(0==i.l&&0==i.m&&0==i.h);){if(i=noz(i,K1(nf7),!0),e=""+pD(nTG),!(0==i.l&&0==i.m&&0==i.h))for(c=9-e.length;c>0;c--)e="0"+e;r=e+r}return r}(n)}function OD(n){if(n.e.j!=n.d)throw(new wI).e}function OR(n,t){return zA(ntZ(j4(n)?zz(n):n,t))}function OK(n,t){return zA(nrh(j4(n)?zz(n):n,t))}function OF(n,t){var e,i,r,c,a,u;return zA((e=j4(n)?zz(n):n,i=63&t,r=e.h&nf5,i<22?(u=r>>>i,a=e.m>>i|r<<22-i,c=e.l>>i|e.m<<22-i):i<44?(u=0,a=r>>>i-22,c=e.m>>i-22|e.h<<44-i):(u=0,a=0,c=r>>>i-44),Ez(c&nf4,a&nf4,u&nf5)))}function O_(n,t){return Vv(($x(n),n),($x(t),t))}function OB(n,t){return A1(t),n.a.Ad(t)&&!n.b.Ad(t)}function OH(n,t){return WQ(n,($x(t),new fn(t)))}function Oq(n,t){return WQ(n,($x(t),new ft(t)))}function OG(n){return zn(),0!=Im(n,11).e.c.length}function Oz(n){return zn(),0!=Im(n,11).g.c.length}function OU(n,t,e){return function(n,t,e){var i,r,c,a,u,o,s,h,f,l;if(0!=t.e.c.length&&0!=e.e.c.length){if((i=Im(CA(t.e,0),17).c.i)==(a=Im(CA(e.e,0),17).c.i))return EG(Im(ntP(Im(CA(t.e,0),17),(nhu(),nxj)),19).a,Im(ntP(Im(CA(e.e,0),17),nxj),19).a);for(h=n.a,f=0,l=h.length;f<l;++f){if((s=h[f])==i)return 1;if(s==a)return -1}}return 0!=t.g.c.length&&0!=e.g.c.length?(c=Im(ntP(t,(nhu(),nxy)),10),o=Im(ntP(e,nxy),10),r=0,u=0,MH(Im(CA(t.g,0),17),nxj)&&(r=Im(ntP(Im(CA(t.g,0),17),nxj),19).a),MH(Im(CA(e.g,0),17),nxj)&&(u=Im(ntP(Im(CA(t.g,0),17),nxj),19).a),c&&c==o)?gm(So(ntP(Im(CA(t.g,0),17),nxD)))&&!gm(So(ntP(Im(CA(e.g,0),17),nxD)))?1:!gm(So(ntP(Im(CA(t.g,0),17),nxD)))&&gm(So(ntP(Im(CA(e.g,0),17),nxD)))?-1:r<u?-1:r>u?1:0:(n.b&&(n.b._b(c)&&(r=Im(n.b.xc(c),19).a),n.b._b(o)&&(u=Im(n.b.xc(o),19).a)),r<u?-1:r>u?1:0):0!=t.e.c.length&&0!=e.g.c.length?1:-1}(n,Im(t,11),Im(e,11))}function OX(n){n.d||(n.d=n.b.Kc(),n.c=n.b.gc())}function OW(n,t){if(n<0||n>=t)throw(new wD).e}function OV(n,t,e){return nc0(),zf(n,t)&&zf(n,e)}function OQ(n){return nis(),!n.Hc(nWS)&&!n.Hc(nWI)}function OJ(n){return new kp(n.c+n.b/2,n.d+n.a/2)}function OY(n,t){return t.kh()?WO(n.b,Im(t,49)):t}function OZ(n,t){this.e=n,this.d=(64&t)!=0?t|nhY:t}function O1(n,t){this.c=0,this.d=n,this.b=64|t|nhY}function O0(n){this.b=new Fq(11),this.a=(LQ(),n)}function O2(n){this.b=null,this.a=(LQ(),n||nMj)}function O3(n){this.a=Yh(n.a),this.b=new PB(n.b)}function O4(n){this.b=n,Mv.call(this,n),Th(this)}function O5(n){this.b=n,My.call(this,n),Tf(this)}function O6(n,t,e){this.a=n,Pe.call(this,t,e,5,6)}function O8(n,t,e,i){this.b=n,Tg.call(this,t,e,i)}function O9(n,t,e,i,r){_R.call(this,n,t,e,i,r,-1)}function O7(n,t,e,i,r){_K.call(this,n,t,e,i,r,-1)}function An(n,t,e,i){Tg.call(this,n,t,e),this.b=i}function At(n,t,e,i){Iq.call(this,n,t,e),this.b=i}function Ae(n){ji.call(this,n,!1),this.a=!1}function Ai(n,t){this.b=n,hb.call(this,n.b),this.a=t}function Ar(n,t){$w(),vv.call(this,n,Wx(new gE(t)))}function Ac(n,t){return nhh(),++nYO,new $j(n,t,0)}function Aa(n,t){return nhh(),++nYO,new $j(6,n,t)}function Au(n,t){return jw(t)?Nn(n,t):!!Nj(n.f,t)}function Ao(n,t){for($x(t);n.Ob();)t.td(n.Pb())}function As(n,t,e){nc4(),this.e=n,this.d=t,this.a=e}function Ah(n,t,e,i){var r;(r=n.i).i=t,r.a=e,r.b=i}function Af(n){var t;for(t=n;t.f;)t=t.f;return t}function Al(n){var t;return MK(null!=(t=U3(n))),t}function Ab(n,t){var e;return Fg(t,e=n.a.gc()),e-t}function Aw(n,t){var e;for(e=0;e<t;++e)n[e]=!1}function Ad(n,t,e,i){X3(t,e,n.length),function(n,t,e,i){var r;for(r=t;r<e;++r)n[r]=i}(n,t,e,i)}function Ag(n,t,e){this.c=n,this.a=t,LV(),this.b=e}function Ap(n,t,e){var i;return i=n.b[t],n.b[t]=e,i}function Av(n,t){return null==n.a.zc(t,n)}function Am(n,t){if(null==n)throw new gv(t).e}function Ay(n,t){return!!t&&Gz(n,t)}function Ak(n,t,e){return function(n,t,e){if(t<0)throw new gu(nma+t).e;t<n.j.c.length?KN(n.j,t,e):(RO(n,t),IE(n.j,e))}(n,t.g,e),Gv(n.c,t),n}function Aj(n){var t;return n.j||(t=function(n,t){var e,i,r,c,a,u,o;if((e=t.Hh(n.a))&&null!=(o=Sh(Q_((e.b||(e.b=new M2((nhl(),nQQ),nQE,e)),e.b),njY)))){for(i=new wn,c=naX(o,"\\w"),a=0,u=c.length;a<u;++a)Pv(r=c[a],"##other")?IE(i,"!##"+OE(n,HU(t.Hj()))):Pv(r,"##local")?i.c[i.c.length]=null:Pv(r,njQ)?IE(i,OE(n,HU(t.Hj()))):i.c[i.c.length]=r;return i}return LV(),LV(),nMv}(n.g,n.b),n.j=t),n.j}function AE(n){MR(-1!=n.b),Ff(n.c,n.a=n.b),n.b=-1}function AT(n){n.f=new j6(n),n.g=new j8(n),Ni(n)}function AM(n){var t;return new CL(null,(function(n,t){if(0>n||n>t)throw new gq("fromIndex: 0, toIndex: "+n+nl$+t).e}(t=n.length,n.length),new I8(n,t)))}function AS(n){return new OM(new T$(n.a.length,n.a))}function AP(n){return typeof n===nhy||typeof n===nhT}function AI(n,t){return 0>WM(n,t)?-1:WM(n,t)>0?1:0}function AC(n,t,e){return function n(t,e,i){var r,c,a,u,o,s,h,f;return WY(i,t.b)||(t.b=i,a=new nQ,u=Im(Kc(Lw(new CL(null,new x6(i.f,16)),a),BT(new V,new Q,new ni,new nr,Um(xg(nMz,1),nfh,132,0,[(XW(),nM3),nM2]))),21),t.e=!0,t.f=!0,t.c=!0,t.d=!0,c=u.Hc((Yr(),nPP)),r=u.Hc(nPI),c&&!r&&(t.f=!1),!c&&r&&(t.d=!1),c=u.Hc(nPS),r=u.Hc(nPC),c&&!r&&(t.c=!1),c||!r||(t.e=!1)),f=Im(t.a.Ce(e,i),46),s=Im(f.a,19).a,h=Im(f.b,19).a,o=!1,s<0?t.c||(o=!0):t.e||(o=!0),h<0?t.d||(o=!0):t.f||(o=!0),o?n(t,f,i):f}(n,Im(t,46),Im(e,167))}function AO(n,t){return Im(OA(OC(n.a)).Xb(t),42).cd()}function AA(n,t){this.d=n,Td.call(this,n),this.e=t}function A$(n){this.d=($x(n),n),this.a=0,this.c=nh0}function AL(n,t){b8.call(this,1),this.a=n,this.b=t}function AN(n,t){return Bs(n.slice(0,t),n)}function Ax(n,t,e){var i;for(i=0;i<t;++i)$t(n,i,e)}function AD(n,t,e,i,r){for(;t<e;)i[r++]=$9(n,t++)}function AR(n,t){return null==U5(n.a,t,(TX(),nTV))}function AK(n,t){KL(n.d,t,n.b.b,n.b),++n.a,n.c=null}function AF(n,t){E8(n,Ti(t,153)?t:Im(t,1937).gl())}function A_(n,t){vF(Lw(n.Oc(),new rf),new ld(t))}function AB(n,t,e,i,r){nnV(n,Im(Fl(t.k,e),15),e,i,r)}function AH(n){n.s=NaN,n.c=NaN,ni4(n,n.e),ni4(n,n.j)}function Aq(n){n.a=null,n.e=null,AT(n.b),n.d=0,++n.c}function AG(n){return nTv.Math.abs(n.d.e-n.e.e)-n.a}function Az(n){SQ.call(this),this.a=n,IE(n.a,this)}function AU(n,t){this.d=function(n){switch(n){case 0:return new db;case 1:return new df;case 2:return new dl;default:throw(new wT).e}}(n),this.c=t,this.a=.5*t}function AX(){R7.call(this),this.a=!0,this.b=!0}function AW(n){return(null==n.i&&nuq(n),n.i).length}function AV(n){return Ti(n,99)&&(Im(n,18).Bb&nya)!=0}function AQ(n,t){return t=n.nk(null,t),ntu(n,null,t)}function AJ(n,t){return n.hi()&&(t=xi(n,t)),n.Wh(t)}function AY(n,t,e){var i;return qA(e,i=AZ(n,t)),i}function AZ(n,t){var e;return(e=new UY).j=n,e.d=t,e}function A1(n){if(null==n)throw(new wS).e;return n}function A0(n){return n.j||(n.j=new hp(n))}function A2(n){return n.f||(n.f=new TO(n))}function A3(n){return n.k||(n.k=new hn(n))}function A4(n){return n.k||(n.k=new hn(n))}function A5(n){return n.g||(n.g=new s7(n))}function A6(n){return n.d||(n.d=new ha(n))}function A8(n){return A1(n),Ti(n,475)?Im(n,475):V7(n)}function A9(n){return Ti(n,607)?n:new NN(n)}function A7(n,t){return D1(t,n.c.b.c.gc()),new vc(n,t)}function $n(n,t,e){return nhh(),++nYO,new Dp(n,t,e)}function $t(n,t,e){return function(n){if(!n)throw(new wj).e}(null==e||function(n,t){var e;switch(BJ(n)){case 6:return jw(t);case 7:return jb(t);case 8:return jl(t);case 3:return Array.isArray(t)&&!((e=BJ(t))>=14&&e<=16);case 11:return null!=t&&typeof t===nhT;case 12:return null!=t&&(typeof t===nhy||typeof t==nhT);case 0:return Ya(t,n.__elementTypeId$);case 2:return AP(t)&&t.im!==I;case 1:return AP(t)&&t.im!==I||Ya(t,n.__elementTypeId$);default:return!0}}(n,e)),n[t]=e}function $e(n,t){var e;return D1(t,e=n.a.gc()),e-1-t}function $i(n,t){return n.a+=String.fromCharCode(t),n}function $r(n,t){return n.a+=String.fromCharCode(t),n}function $c(n,t){for($x(t);n.c<n.d;)n.ze(t,n.c++)}function $a(n,t){return jw(t)?Nz(n,t):jh(Nj(n.f,t))}function $u(n){this.b=new wn,this.a=new wn,this.c=n}function $o(n){this.c=new ps,this.a=new wn,this.b=n}function $s(n){SQ.call(this),this.a=new ps,this.c=n}function $h(n){if(null==n)throw(new wS).e;this.a=n}function $f(n){wx(),this.b=new wn,this.a=n,function(n,t){var e,i,r,c,a;for(c=0,e=new gW,a=!1;c<t.length;c++){if(x5(c,t.length),32==(i=t.charCodeAt(c))){for(J4(n,e,0),e.a+=" ",J4(n,e,0);c+1<t.length&&(x5(c+1,t.length),32==t.charCodeAt(c+1));)++c;continue}if(a){39==i?c+1<t.length&&(x5(c+1,t.length),39==t.charCodeAt(c+1))?(e.a+=String.fromCharCode(i),++c):a=!1:e.a+=String.fromCharCode(i);continue}if(jZ("GyMLdkHmsSEcDahKzZv",ntd(i))>0){J4(n,e,0),e.a+=String.fromCharCode(i),J4(n,e,r=function(n,t){var e,i;for(x5(t,n.length),e=n.charCodeAt(t),i=t+1;i<n.length&&(x5(i,n.length),n.charCodeAt(i)==e);)++i;return i-t}(t,c)),c+=r-1;continue}39==i?c+1<t.length&&(x5(c+1,t.length),39==t.charCodeAt(c+1))?(e.a+="'",++c):a=!0:e.a+=String.fromCharCode(i)}J4(n,e,0),function(n){var t,e,i;for(e=0,t=!1,i=n.b.c.length;e<i;e++)Xb(Im(CA(n.b,e),434))?!t&&e+1<i&&Xb(Im(CA(n.b,e+1),434))&&(t=!0,Im(CA(n.b,e),434).a=!0):t=!1}(n)}(this,n)}function $l(n){this.c=n,this.a=new vK,this.b=new vK}function $b(){$b=C,nT_=new hI(!1),nTB=new hI(!0)}function $w(){$w=C,PV(),nTI=new Np((LV(),LV(),nMv))}function $d(){$d=C,PV(),nTL=new mC((LV(),LV(),nMy))}function $g(){var n,t,e,i,r,c,a,u,o,s,h;$g=C,mm(),nQO=nJs?Im(nrR((ml(),nQS),njE),1939):(jJ(nE1,new ot),jJ(nQs,new uK),jJ(nQa,new uV),jJ(nQf,new u6),jJ(nQh,new oe),jJ(nQl,new oi),jJ(nQb,new or),jJ(nQw,new oc),jJ(nCx,new oa),jJ(nCN,new uI),jJ(nCD,new uC),jJ(nCS,new uO),jJ(nQg,new uA),jJ(nCR,new u$),jJ(nQp,new uL),jJ(nQv,new uN),jJ(nQo,new ux),jJ(nQu,new uD),jJ(nQE,new uR),jJ(nQd,new uF),jJ(nQm,new u_),jJ(nTt,new uB),jJ(xg(nYD,1),new uH),jJ(nTe,new uq),jJ(nTi,new uG),jJ(nTn,new uz),jJ(nYB,new uU),jJ(nTr,new uX),jJ(nCz,new uW),jJ(nCY,new uQ),jJ(nJf,new uJ),jJ(nQk,new uY),jJ(nTc,new uZ),jJ(nTa,new u1),jJ(nEW,new u0),jJ(nTu,new u2),jJ(nEQ,new u3),jJ(nJh,new u4),jJ(nYH,new u5),jJ(nTo,new u8),jJ(nTh,new u9),jJ(nCX,new u7),jJ(nYq,new on),n=Im(Ti(Nz((ml(),nQS),njE),547)?Nz(nQS,njE):new $V,547),nJs=!0,n.gb||(n.gb=!0,n.b=z_(n,0),GH(n.b,18),Gq(n.b,19),n.a=z_(n,1),GH(n.a,1),Gq(n.a,2),Gq(n.a,3),Gq(n.a,4),Gq(n.a,5),n.o=z_(n,2),GH(n.o,8),GH(n.o,9),Gq(n.o,10),Gq(n.o,11),Gq(n.o,12),Gq(n.o,13),Gq(n.o,14),Gq(n.o,15),Gq(n.o,16),Gq(n.o,17),Gq(n.o,18),Gq(n.o,19),Gq(n.o,20),Gq(n.o,21),Gq(n.o,22),Gq(n.o,23),HT(n.o),HT(n.o),HT(n.o),HT(n.o),HT(n.o),HT(n.o),HT(n.o),HT(n.o),HT(n.o),HT(n.o),n.p=z_(n,3),GH(n.p,2),GH(n.p,3),GH(n.p,4),GH(n.p,5),Gq(n.p,6),Gq(n.p,7),HT(n.p),HT(n.p),n.q=z_(n,4),GH(n.q,8),n.v=z_(n,5),Gq(n.v,9),HT(n.v),HT(n.v),HT(n.v),n.w=z_(n,6),GH(n.w,2),GH(n.w,3),GH(n.w,4),Gq(n.w,5),n.B=z_(n,7),Gq(n.B,1),HT(n.B),HT(n.B),HT(n.B),n.Q=z_(n,8),Gq(n.Q,0),HT(n.Q),n.R=z_(n,9),GH(n.R,1),n.S=z_(n,10),HT(n.S),HT(n.S),HT(n.S),HT(n.S),HT(n.S),HT(n.S),HT(n.S),HT(n.S),HT(n.S),HT(n.S),HT(n.S),HT(n.S),HT(n.S),HT(n.S),HT(n.S),n.T=z_(n,11),Gq(n.T,10),Gq(n.T,11),Gq(n.T,12),Gq(n.T,13),Gq(n.T,14),HT(n.T),HT(n.T),n.U=z_(n,12),GH(n.U,2),GH(n.U,3),Gq(n.U,4),Gq(n.U,5),Gq(n.U,6),Gq(n.U,7),HT(n.U),n.V=z_(n,13),Gq(n.V,10),n.W=z_(n,14),GH(n.W,18),GH(n.W,19),GH(n.W,20),Gq(n.W,21),Gq(n.W,22),Gq(n.W,23),n.bb=z_(n,15),GH(n.bb,10),GH(n.bb,11),GH(n.bb,12),GH(n.bb,13),GH(n.bb,14),GH(n.bb,15),GH(n.bb,16),Gq(n.bb,17),HT(n.bb),HT(n.bb),n.eb=z_(n,16),GH(n.eb,2),GH(n.eb,3),GH(n.eb,4),GH(n.eb,5),GH(n.eb,6),GH(n.eb,7),Gq(n.eb,8),Gq(n.eb,9),n.ab=z_(n,17),GH(n.ab,0),GH(n.ab,1),n.H=z_(n,18),Gq(n.H,0),Gq(n.H,1),Gq(n.H,2),Gq(n.H,3),Gq(n.H,4),Gq(n.H,5),HT(n.H),n.db=z_(n,19),Gq(n.db,2),n.c=zB(n,20),n.d=zB(n,21),n.e=zB(n,22),n.f=zB(n,23),n.i=zB(n,24),n.g=zB(n,25),n.j=zB(n,26),n.k=zB(n,27),n.n=zB(n,28),n.r=zB(n,29),n.s=zB(n,30),n.t=zB(n,31),n.u=zB(n,32),n.fb=zB(n,33),n.A=zB(n,34),n.C=zB(n,35),n.D=zB(n,36),n.F=zB(n,37),n.G=zB(n,38),n.I=zB(n,39),n.J=zB(n,40),n.L=zB(n,41),n.M=zB(n,42),n.N=zB(n,43),n.O=zB(n,44),n.P=zB(n,45),n.X=zB(n,46),n.Y=zB(n,47),n.Z=zB(n,48),n.$=zB(n,49),n._=zB(n,50),n.cb=zB(n,51),n.K=zB(n,52)),(t=n).hb||(t.hb=!0,GF(t,"ecore"),G_(t,"ecore"),GB(t,njE),Ue(t.fb,"E"),Ue(t.L,"T"),Ue(t.P,"K"),Ue(t.P,"V"),Ue(t.cb,"E"),_P(Nw(t.b),t.bb),_P(Nw(t.a),t.Q),_P(Nw(t.o),t.p),_P(Nw(t.p),t.R),_P(Nw(t.q),t.p),_P(Nw(t.v),t.q),_P(Nw(t.w),t.R),_P(Nw(t.B),t.Q),_P(Nw(t.R),t.Q),_P(Nw(t.T),t.eb),_P(Nw(t.U),t.R),_P(Nw(t.V),t.eb),_P(Nw(t.W),t.bb),_P(Nw(t.bb),t.eb),_P(Nw(t.eb),t.R),_P(Nw(t.db),t.R),DR(t.b,nQs,nkJ,!1,!1,!0),G5(Im(HX(L6(t.b),0),34),t.e,"iD",null,0,1,nQs,!1,!1,!0,!1,!0,!1),ZS(Im(HX(L6(t.b),1),18),t.q,null,"eAttributeType",1,1,nQs,!0,!0,!1,!1,!0,!1,!0),DR(t.a,nQa,nkW,!1,!1,!0),G5(Im(HX(L6(t.a),0),34),t._,nyy,null,0,1,nQa,!1,!1,!0,!1,!0,!1),ZS(Im(HX(L6(t.a),1),18),t.ab,null,"details",0,-1,nQa,!1,!1,!0,!0,!1,!1,!1),ZS(Im(HX(L6(t.a),2),18),t.Q,Im(HX(L6(t.Q),0),18),"eModelElement",0,1,nQa,!0,!1,!0,!1,!1,!1,!1),ZS(Im(HX(L6(t.a),3),18),t.S,null,"contents",0,-1,nQa,!1,!1,!0,!0,!1,!1,!1),ZS(Im(HX(L6(t.a),4),18),t.S,null,"references",0,-1,nQa,!1,!1,!0,!1,!0,!1,!1),DR(t.o,nQf,"EClass",!1,!1,!0),G5(Im(HX(L6(t.o),0),34),t.e,"abstract",null,0,1,nQf,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(t.o),1),34),t.e,"interface",null,0,1,nQf,!1,!1,!0,!1,!0,!1),ZS(Im(HX(L6(t.o),2),18),t.o,null,"eSuperTypes",0,-1,nQf,!1,!1,!0,!1,!0,!0,!1),ZS(Im(HX(L6(t.o),3),18),t.T,Im(HX(L6(t.T),0),18),"eOperations",0,-1,nQf,!1,!1,!0,!0,!1,!1,!1),ZS(Im(HX(L6(t.o),4),18),t.b,null,"eAllAttributes",0,-1,nQf,!0,!0,!1,!1,!0,!1,!0),ZS(Im(HX(L6(t.o),5),18),t.W,null,"eAllReferences",0,-1,nQf,!0,!0,!1,!1,!0,!1,!0),ZS(Im(HX(L6(t.o),6),18),t.W,null,"eReferences",0,-1,nQf,!0,!0,!1,!1,!0,!1,!0),ZS(Im(HX(L6(t.o),7),18),t.b,null,"eAttributes",0,-1,nQf,!0,!0,!1,!1,!0,!1,!0),ZS(Im(HX(L6(t.o),8),18),t.W,null,"eAllContainments",0,-1,nQf,!0,!0,!1,!1,!0,!1,!0),ZS(Im(HX(L6(t.o),9),18),t.T,null,"eAllOperations",0,-1,nQf,!0,!0,!1,!1,!0,!1,!0),ZS(Im(HX(L6(t.o),10),18),t.bb,null,"eAllStructuralFeatures",0,-1,nQf,!0,!0,!1,!1,!0,!1,!0),ZS(Im(HX(L6(t.o),11),18),t.o,null,"eAllSuperTypes",0,-1,nQf,!0,!0,!1,!1,!0,!1,!0),ZS(Im(HX(L6(t.o),12),18),t.b,null,"eIDAttribute",0,1,nQf,!0,!0,!1,!1,!1,!1,!0),ZS(Im(HX(L6(t.o),13),18),t.bb,Im(HX(L6(t.bb),7),18),"eStructuralFeatures",0,-1,nQf,!1,!1,!0,!0,!1,!1,!1),ZS(Im(HX(L6(t.o),14),18),t.H,null,"eGenericSuperTypes",0,-1,nQf,!1,!1,!0,!0,!1,!0,!1),ZS(Im(HX(L6(t.o),15),18),t.H,null,"eAllGenericSuperTypes",0,-1,nQf,!0,!0,!1,!1,!0,!1,!0),ZP(o=qG(Im(HX(L5(t.o),0),59),t.e,"isSuperTypeOf"),t.o,"someClass"),qG(Im(HX(L5(t.o),1),59),t.I,"getFeatureCount"),ZP(o=qG(Im(HX(L5(t.o),2),59),t.bb,njS),t.I,"featureID"),ZP(o=qG(Im(HX(L5(t.o),3),59),t.I,njP),t.bb,njI),ZP(o=qG(Im(HX(L5(t.o),4),59),t.bb,njS),t._,"featureName"),qG(Im(HX(L5(t.o),5),59),t.I,"getOperationCount"),ZP(o=qG(Im(HX(L5(t.o),6),59),t.T,"getEOperation"),t.I,"operationID"),ZP(o=qG(Im(HX(L5(t.o),7),59),t.I,njC),t.T,njO),ZP(o=qG(Im(HX(L5(t.o),8),59),t.T,"getOverride"),t.T,njO),ZP(o=qG(Im(HX(L5(t.o),9),59),t.H,"getFeatureType"),t.bb,njI),DR(t.p,nQh,nkY,!0,!1,!0),G5(Im(HX(L6(t.p),0),34),t._,"instanceClassName",null,0,1,nQh,!1,!0,!0,!0,!0,!1),e=LI(t.L),i=DJ(),_P((e.d||(e.d=new Tg(nQd,e,1)),e.d),i),niY(Im(HX(L6(t.p),1),34),e,"instanceClass",nQh,!0,!0,!1,!0),G5(Im(HX(L6(t.p),2),34),t.M,njA,null,0,1,nQh,!0,!0,!1,!1,!0,!0),G5(Im(HX(L6(t.p),3),34),t._,"instanceTypeName",null,0,1,nQh,!1,!0,!0,!0,!0,!1),ZS(Im(HX(L6(t.p),4),18),t.U,Im(HX(L6(t.U),3),18),"ePackage",0,1,nQh,!0,!1,!1,!1,!0,!1,!1),ZS(Im(HX(L6(t.p),5),18),t.db,null,nj$,0,-1,nQh,!1,!1,!0,!0,!0,!1,!1),ZP(o=qG(Im(HX(L5(t.p),0),59),t.e,njL),t.M,nhy),qG(Im(HX(L5(t.p),1),59),t.I,"getClassifierID"),DR(t.q,nQl,"EDataType",!1,!1,!0),G5(Im(HX(L6(t.q),0),34),t.e,"serializable",nml,0,1,nQl,!1,!1,!0,!1,!0,!1),DR(t.v,nQb,"EEnum",!1,!1,!0),ZS(Im(HX(L6(t.v),0),18),t.w,Im(HX(L6(t.w),3),18),"eLiterals",0,-1,nQb,!1,!1,!0,!0,!1,!1,!1),ZP(o=qG(Im(HX(L5(t.v),0),59),t.w,njN),t._,nyQ),ZP(o=qG(Im(HX(L5(t.v),1),59),t.w,njN),t.I,nym),ZP(o=qG(Im(HX(L5(t.v),2),59),t.w,"getEEnumLiteralByLiteral"),t._,"literal"),DR(t.w,nQw,nkZ,!1,!1,!0),G5(Im(HX(L6(t.w),0),34),t.I,nym,null,0,1,nQw,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(t.w),1),34),t.A,"instance",null,0,1,nQw,!0,!1,!0,!1,!0,!1),G5(Im(HX(L6(t.w),2),34),t._,"literal",null,0,1,nQw,!1,!1,!0,!1,!0,!1),ZS(Im(HX(L6(t.w),3),18),t.v,Im(HX(L6(t.v),0),18),"eEnum",0,1,nQw,!0,!1,!1,!1,!1,!1,!1),DR(t.B,nCx,"EFactory",!1,!1,!0),ZS(Im(HX(L6(t.B),0),18),t.U,Im(HX(L6(t.U),2),18),"ePackage",1,1,nCx,!0,!1,!0,!1,!1,!1,!1),ZP(o=qG(Im(HX(L5(t.B),0),59),t.S,"create"),t.o,"eClass"),ZP(o=qG(Im(HX(L5(t.B),1),59),t.M,"createFromString"),t.q,"eDataType"),ZP(o,t._,"literalValue"),ZP(o=qG(Im(HX(L5(t.B),2),59),t._,"convertToString"),t.q,"eDataType"),ZP(o,t.M,"instanceValue"),DR(t.Q,nCN,nm3,!0,!1,!0),ZS(Im(HX(L6(t.Q),0),18),t.a,Im(HX(L6(t.a),2),18),"eAnnotations",0,-1,nCN,!1,!1,!0,!0,!1,!1,!1),ZP(o=qG(Im(HX(L5(t.Q),0),59),t.a,"getEAnnotation"),t._,nyy),DR(t.R,nCD,nm4,!0,!1,!0),G5(Im(HX(L6(t.R),0),34),t._,nyQ,null,0,1,nCD,!1,!1,!0,!1,!0,!1),DR(t.S,nCS,"EObject",!1,!1,!0),qG(Im(HX(L5(t.S),0),59),t.o,"eClass"),qG(Im(HX(L5(t.S),1),59),t.e,"eIsProxy"),qG(Im(HX(L5(t.S),2),59),t.X,"eResource"),qG(Im(HX(L5(t.S),3),59),t.S,"eContainer"),qG(Im(HX(L5(t.S),4),59),t.bb,"eContainingFeature"),qG(Im(HX(L5(t.S),5),59),t.W,"eContainmentFeature"),o=qG(Im(HX(L5(t.S),6),59),null,"eContents"),e=LI(t.fb),i=LI(t.S),_P((e.d||(e.d=new Tg(nQd,e,1)),e.d),i),(c=ntl(o,e,null))&&c.Fi(),o=qG(Im(HX(L5(t.S),7),59),null,"eAllContents"),e=LI(t.cb),i=LI(t.S),_P((e.d||(e.d=new Tg(nQd,e,1)),e.d),i),(a=ntl(o,e,null))&&a.Fi(),o=qG(Im(HX(L5(t.S),8),59),null,"eCrossReferences"),e=LI(t.fb),i=LI(t.S),_P((e.d||(e.d=new Tg(nQd,e,1)),e.d),i),(u=ntl(o,e,null))&&u.Fi(),ZP(o=qG(Im(HX(L5(t.S),9),59),t.M,"eGet"),t.bb,njI),ZP(o=qG(Im(HX(L5(t.S),10),59),t.M,"eGet"),t.bb,njI),ZP(o,t.e,"resolve"),ZP(o=qG(Im(HX(L5(t.S),11),59),null,"eSet"),t.bb,njI),ZP(o,t.M,"newValue"),ZP(o=qG(Im(HX(L5(t.S),12),59),t.e,"eIsSet"),t.bb,njI),ZP(o=qG(Im(HX(L5(t.S),13),59),null,"eUnset"),t.bb,njI),ZP(o=qG(Im(HX(L5(t.S),14),59),t.M,"eInvoke"),t.T,njO),e=LI(t.fb),i=DJ(),_P((e.d||(e.d=new Tg(nQd,e,1)),e.d),i),nnC(o,e,"arguments"),s=o,h=t.K,_P((s.a||(s.a=new SD(s,s)),s.a),h),DR(t.T,nQg,nk0,!1,!1,!0),ZS(Im(HX(L6(t.T),0),18),t.o,Im(HX(L6(t.o),3),18),njx,0,1,nQg,!0,!1,!1,!1,!1,!1,!1),ZS(Im(HX(L6(t.T),1),18),t.db,null,nj$,0,-1,nQg,!1,!1,!0,!0,!0,!1,!1),ZS(Im(HX(L6(t.T),2),18),t.V,Im(HX(L6(t.V),0),18),"eParameters",0,-1,nQg,!1,!1,!0,!0,!1,!1,!1),ZS(Im(HX(L6(t.T),3),18),t.p,null,"eExceptions",0,-1,nQg,!1,!1,!0,!1,!0,!0,!1),ZS(Im(HX(L6(t.T),4),18),t.H,null,"eGenericExceptions",0,-1,nQg,!1,!1,!0,!0,!1,!0,!1),qG(Im(HX(L5(t.T),0),59),t.I,njC),ZP(o=qG(Im(HX(L5(t.T),1),59),t.e,"isOverrideOf"),t.T,"someOperation"),DR(t.U,nCR,"EPackage",!1,!1,!0),G5(Im(HX(L6(t.U),0),34),t._,"nsURI",null,0,1,nCR,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(t.U),1),34),t._,"nsPrefix",null,0,1,nCR,!1,!1,!0,!1,!0,!1),ZS(Im(HX(L6(t.U),2),18),t.B,Im(HX(L6(t.B),0),18),"eFactoryInstance",1,1,nCR,!0,!1,!0,!1,!1,!1,!1),ZS(Im(HX(L6(t.U),3),18),t.p,Im(HX(L6(t.p),4),18),"eClassifiers",0,-1,nCR,!1,!1,!0,!0,!0,!1,!1),ZS(Im(HX(L6(t.U),4),18),t.U,Im(HX(L6(t.U),5),18),"eSubpackages",0,-1,nCR,!1,!1,!0,!0,!0,!1,!1),ZS(Im(HX(L6(t.U),5),18),t.U,Im(HX(L6(t.U),4),18),"eSuperPackage",0,1,nCR,!0,!1,!1,!1,!0,!1,!1),ZP(o=qG(Im(HX(L5(t.U),0),59),t.p,"getEClassifier"),t._,nyQ),DR(t.V,nQp,nk2,!1,!1,!0),ZS(Im(HX(L6(t.V),0),18),t.T,Im(HX(L6(t.T),2),18),"eOperation",0,1,nQp,!0,!1,!1,!1,!1,!1,!1),DR(t.W,nQv,nk3,!1,!1,!0),G5(Im(HX(L6(t.W),0),34),t.e,"containment",null,0,1,nQv,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(t.W),1),34),t.e,"container",null,0,1,nQv,!0,!0,!1,!1,!0,!0),G5(Im(HX(L6(t.W),2),34),t.e,"resolveProxies",nml,0,1,nQv,!1,!1,!0,!1,!0,!1),ZS(Im(HX(L6(t.W),3),18),t.W,null,"eOpposite",0,1,nQv,!1,!1,!0,!1,!0,!1,!1),ZS(Im(HX(L6(t.W),4),18),t.o,null,"eReferenceType",1,1,nQv,!0,!0,!1,!1,!0,!1,!0),ZS(Im(HX(L6(t.W),5),18),t.b,null,"eKeys",0,-1,nQv,!1,!1,!0,!1,!0,!1,!1),DR(t.bb,nQo,nkQ,!0,!1,!0),G5(Im(HX(L6(t.bb),0),34),t.e,"changeable",nml,0,1,nQo,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(t.bb),1),34),t.e,"volatile",null,0,1,nQo,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(t.bb),2),34),t.e,"transient",null,0,1,nQo,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(t.bb),3),34),t._,"defaultValueLiteral",null,0,1,nQo,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(t.bb),4),34),t.M,njA,null,0,1,nQo,!0,!0,!1,!1,!0,!0),G5(Im(HX(L6(t.bb),5),34),t.e,"unsettable",null,0,1,nQo,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(t.bb),6),34),t.e,"derived",null,0,1,nQo,!1,!1,!0,!1,!0,!1),ZS(Im(HX(L6(t.bb),7),18),t.o,Im(HX(L6(t.o),13),18),njx,0,1,nQo,!0,!1,!1,!1,!1,!1,!1),qG(Im(HX(L5(t.bb),0),59),t.I,njP),o=qG(Im(HX(L5(t.bb),1),59),null,"getContainerClass"),e=LI(t.L),i=DJ(),_P((e.d||(e.d=new Tg(nQd,e,1)),e.d),i),(r=ntl(o,e,null))&&r.Fi(),DR(t.eb,nQu,nkV,!0,!1,!0),G5(Im(HX(L6(t.eb),0),34),t.e,"ordered",nml,0,1,nQu,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(t.eb),1),34),t.e,"unique",nml,0,1,nQu,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(t.eb),2),34),t.I,"lowerBound",null,0,1,nQu,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(t.eb),3),34),t.I,"upperBound","1",0,1,nQu,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(t.eb),4),34),t.e,"many",null,0,1,nQu,!0,!0,!1,!1,!0,!0),G5(Im(HX(L6(t.eb),5),34),t.e,"required",null,0,1,nQu,!0,!0,!1,!1,!0,!0),ZS(Im(HX(L6(t.eb),6),18),t.p,null,"eType",0,1,nQu,!1,!0,!0,!1,!0,!0,!1),ZS(Im(HX(L6(t.eb),7),18),t.H,null,"eGenericType",0,1,nQu,!1,!0,!0,!0,!1,!0,!1),DR(t.ab,nE1,"EStringToStringMapEntry",!1,!1,!1),G5(Im(HX(L6(t.ab),0),34),t._,"key",null,0,1,nE1,!1,!1,!0,!1,!0,!1),G5(Im(HX(L6(t.ab),1),34),t._,nym,null,0,1,nE1,!1,!1,!0,!1,!0,!1),DR(t.H,nQd,nk1,!1,!1,!0),ZS(Im(HX(L6(t.H),0),18),t.H,null,"eUpperBound",0,1,nQd,!1,!1,!0,!0,!1,!1,!1),ZS(Im(HX(L6(t.H),1),18),t.H,null,"eTypeArguments",0,-1,nQd,!1,!1,!0,!0,!1,!1,!1),ZS(Im(HX(L6(t.H),2),18),t.p,null,"eRawType",1,1,nQd,!0,!1,!1,!1,!0,!1,!0),ZS(Im(HX(L6(t.H),3),18),t.H,null,"eLowerBound",0,1,nQd,!1,!1,!0,!0,!1,!1,!1),ZS(Im(HX(L6(t.H),4),18),t.db,null,"eTypeParameter",0,1,nQd,!1,!1,!0,!1,!1,!1,!1),ZS(Im(HX(L6(t.H),5),18),t.p,null,"eClassifier",0,1,nQd,!1,!1,!0,!1,!0,!1,!1),ZP(o=qG(Im(HX(L5(t.H),0),59),t.e,njL),t.M,nhy),DR(t.db,nQm,nk4,!1,!1,!0),ZS(Im(HX(L6(t.db),0),18),t.H,null,"eBounds",0,-1,nQm,!1,!1,!0,!0,!1,!1,!1),Le(t.c,nTf,"EBigDecimal",!0),Le(t.d,nTl,"EBigInteger",!0),Le(t.e,nYN,"EBoolean",!0),Le(t.f,nTt,"EBooleanObject",!0),Le(t.i,nYD,"EByte",!0),Le(t.g,xg(nYD,1),"EByteArray",!0),Le(t.j,nTe,"EByteObject",!0),Le(t.k,nY$,"EChar",!0),Le(t.n,nTi,"ECharacterObject",!0),Le(t.r,nTn,"EDate",!0),Le(t.s,nYB,"EDiagnosticChain",!1),Le(t.t,nYR,"EDouble",!0),Le(t.u,nTr,"EDoubleObject",!0),Le(t.fb,nCz,"EEList",!1),Le(t.A,nCY,"EEnumerator",!1),Le(t.C,nJf,"EFeatureMap",!1),Le(t.D,nQk,"EFeatureMapEntry",!1),Le(t.F,nYK,"EFloat",!0),Le(t.G,nTc,"EFloatObject",!0),Le(t.I,nYL,"EInt",!0),Le(t.J,nTa,"EIntegerObject",!0),Le(t.L,nEW,"EJavaClass",!0),Le(t.M,nEX,"EJavaObject",!0),Le(t.N,nYx,"ELong",!0),Le(t.O,nTu,"ELongObject",!0),Le(t.P,nEQ,"EMap",!1),Le(t.X,nJh,"EResource",!1),Le(t.Y,nYH,"EResourceSet",!1),Le(t.Z,nYF,"EShort",!0),Le(t.$,nTo,"EShortObject",!0),Le(t._,nTh,"EString",!0),Le(t.cb,nCX,"ETreeIterator",!1),Le(t.K,nYq,"EInvocationTargetException",!1),Wp(t,njE)),$J((mb(),nQI),n,new uP),xp(nQS,njE,n),n),nhl(),nQ$&&function(){var n,t,e;for(mm(),nrz((t=($g(),nQO)).c,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"http://www.w3.org/2001/XMLSchema#decimal"])),nrz(t.d,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"http://www.w3.org/2001/XMLSchema#integer"])),nrz(t.e,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"http://www.w3.org/2001/XMLSchema#boolean"])),nrz(t.f,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"EBoolean",nyQ,"EBoolean:Object"])),nrz(t.i,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"http://www.w3.org/2001/XMLSchema#byte"])),nrz(t.g,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"http://www.w3.org/2001/XMLSchema#hexBinary"])),nrz(t.j,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"EByte",nyQ,"EByte:Object"])),nrz(t.n,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"EChar",nyQ,"EChar:Object"])),nrz(t.t,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"http://www.w3.org/2001/XMLSchema#double"])),nrz(t.u,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"EDouble",nyQ,"EDouble:Object"])),nrz(t.F,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"http://www.w3.org/2001/XMLSchema#float"])),nrz(t.G,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"EFloat",nyQ,"EFloat:Object"])),nrz(t.I,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"http://www.w3.org/2001/XMLSchema#int"])),nrz(t.J,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"EInt",nyQ,"EInt:Object"])),nrz(t.N,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"http://www.w3.org/2001/XMLSchema#long"])),nrz(t.O,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"ELong",nyQ,"ELong:Object"])),nrz(t.Z,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"http://www.w3.org/2001/XMLSchema#short"])),nrz(t.$,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"EShort",nyQ,"EShort:Object"])),nrz(t._,njw,Um(xg(nTh,1),nhJ,2,6,[njM,"http://www.w3.org/2001/XMLSchema#string"])),nrz((e=nQO).b,njE,Um(xg(nTh,1),nhJ,2,6,[njT,"ConsistentTransient"])),nrz(e.a,njE,Um(xg(nTh,1),nhJ,2,6,[njT,"WellFormedSourceURI"])),nrz(e.o,njE,Um(xg(nTh,1),nhJ,2,6,[njT,"InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures"])),nrz(e.p,njE,Um(xg(nTh,1),nhJ,2,6,[njT,"WellFormedInstanceTypeName UniqueTypeParameterNames"])),nrz(e.v,njE,Um(xg(nTh,1),nhJ,2,6,[njT,"UniqueEnumeratorNames UniqueEnumeratorLiterals"])),nrz(e.R,njE,Um(xg(nTh,1),nhJ,2,6,[njT,"WellFormedName"])),nrz(e.T,njE,Um(xg(nTh,1),nhJ,2,6,[njT,"UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"])),nrz(e.U,njE,Um(xg(nTh,1),nhJ,2,6,[njT,"WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"])),nrz(e.W,njE,Um(xg(nTh,1),nhJ,2,6,[njT,"ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer"])),nrz(e.bb,njE,Um(xg(nTh,1),nhJ,2,6,[njT,"ValidDefaultValueLiteral"])),nrz(e.eb,njE,Um(xg(nTh,1),nhJ,2,6,[njT,"ValidLowerBound ValidUpperBound ConsistentBounds ValidType"])),nrz(e.H,njE,Um(xg(nTh,1),nhJ,2,6,[njT,"ConsistentType ConsistentBounds ConsistentArguments"])),ZM(nQO),nhl(),nQ5=nQB,n=new h1(nJo);n.a<n.c.c.length;)nsg(Im(De(n),241),nQB,null)}()}function $p(n,t,e){var i;return i=GS(n,t,e),naM(n,i)}function $v(n,t){var e;e=n.a.length,BQ(n,e),RV(n,e,t)}function $m(n,t){console[n].call(console,t)}function $y(n,t){var e;++n.j,e=n.Vi(),n.Ii(n.oi(e,t))}function $k(n,t,e){bY.call(this,t),this.a=n,this.b=e}function $j(n,t,e){b8.call(this,n),this.a=t,this.b=e}function $E(n,t,e){this.a=n,bJ.call(this,t),this.b=e}function $T(n,t,e){this.a=n,Rl.call(this,8,t,null,e)}function $M(n){this.a=($x(njw),njw),this.b=n,new dI}function $S(n){this.c=n,this.b=this.c.a,this.a=this.c.e}function $P(n){this.c=n,this.b=n.a.d.a,St(n.a.e,this)}function $I(n){MR(-1!=n.c),n.d.$c(n.c),n.b=n.c,n.c=-1}function $C(n){return nTv.Math.sqrt(n.a*n.a+n.b*n.b)}function $O(n,t){return OW(t,n.a.c.length),CA(n.a,t)}function $A(n,t){return jf(n)===jf(t)||null!=n&&WY(n,t)}function $$(n){return n?n.dc():!n.Kc().Ob()}function $L(n){return!n.a&&n.c?n.c.b:n.a}function $N(n){return n.d||(n.d=new Tg(nQd,n,1)),n.d}function $x(n){if(null==n)throw(new wS).e;return n}function $D(n){n.c?n.c.He():(n.d=!0,function(n){var t,e,i,r,c,a,u;if(c=new wn,HR(n.b,new fp(c)),n.b.c=_f(nEX,nhA,1,0,5,1),0!=c.c.length){for(x4(0,c.c.length),t=Im(c.c[0],78),e=1,i=c.c.length;e<i;++e){x4(e,c.c.length),(r=Im(c.c[e],78))!=t&&(a=t,Am(u=r,"Cannot suppress a null exception."),IB(u!=a,"Exception can not suppress itself."),a.i||(null==a.k?a.k=Um(xg(nE5,1),nhJ,78,0,[u]):a.k[a.k.length]=u))}if(Ti(t,60))throw Im(t,60).e;if(Ti(t,289))throw Im(t,289).e}}(n))}function $R(n){n.c?$R(n.c):(V$(n),n.d=!0)}function $K(n){Lo(n.a),n.b=_f(nEX,nhA,1,n.b.length,5,1)}function $F(n){return n.c.i.c==n.d.i.c}function $_(n){return n.b||(n.b=new b1(new dC)),n.b}function $B(n){var t;return -2==n.c&&(t=function(n,t){var e,i,r;if((e=t.Hh(n.a))&&null!=(r=Q_((e.b||(e.b=new M2((nhl(),nQQ),nQE,e)),e.b),njd))){for(i=1;i<(neS(),nJy).length;++i)if(Pv(nJy[i],r))return i}return 0}(n.g,n.b),n.c=t),n.c}function $H(n,t){var e;return(e=AZ("",n)).n=t,e.i=1,e}function $q(n,t){this.b=n,AA.call(this,n,t),Th(this)}function $G(n,t){this.b=n,PS.call(this,n,t),Tf(this)}function $z(n,t,e,i){vw.call(this,n,t),this.d=e,this.a=i}function $U(n,t,e,i){vw.call(this,n,e),this.a=t,this.f=i}function $X(n,t){var e,i,r;E5.call(this,(e=A1(n),i=A1(t),LV(),r=new vN(1),jw(e)?xp(r,e,i):neQ(r.f,e,i),new hZ(r))),this.a=t}function $W(){ntT.call(this,njZ,(pp(),nJN)),this.b=null,this.bb=null,this.fb=null,this.qb=null,this.a=null,this.c=null,this.d=null,this.e=null,this.f=null,this.n=null,this.M=null,this.L=null,this.Q=null,this.R=null,this.K=null,this.db=null,this.eb=null,this.g=null,this.i=null,this.j=null,this.k=null,this.gb=null,this.o=null,this.p=null,this.q=null,this.r=null,this.$=null,this.ib=null,this.S=null,this.T=null,this.t=null,this.s=null,this.u=null,this.v=null,this.w=null,this.B=null,this.A=null,this.C=null,this.D=null,this.F=null,this.G=null,this.H=null,this.I=null,this.J=null,this.P=null,this.Z=null,this.U=null,this.V=null,this.W=null,this.X=null,this.Y=null,this._=null,this.ab=null,this.cb=null,this.hb=null,this.nb=null,this.lb=null,this.mb=null,this.ob=null,this.pb=null,this.jb=null,this.kb=null,this.N=!1,this.O=!1}function $V(){ntT.call(this,njE,(pg(),nQC)),this.b=null,this.a=null,this.o=null,this.q=null,this.v=null,this.w=null,this.B=null,this.p=null,this.Q=null,this.R=null,this.S=null,this.T=null,this.U=null,this.V=null,this.W=null,this.bb=null,this.eb=null,this.ab=null,this.H=null,this.db=null,this.c=null,this.d=null,this.f=null,this.n=null,this.r=null,this.s=null,this.u=null,this.G=null,this.J=null,this.e=null,this.j=null,this.i=null,this.g=null,this.k=null,this.t=null,this.F=null,this.I=null,this.L=null,this.M=null,this.O=null,this.P=null,this.$=null,this.N=null,this.Z=null,this.cb=null,this.K=null,this.D=null,this.A=null,this.C=null,this._=null,this.fb=null,this.X=null,this.Y=null,this.gb=!1,this.hb=!1}function $Q(){vl.call(this,"DELAUNAY_TRIANGULATION",0)}function $J(n,t,e){return jw(t)?xp(n,t,e):neQ(n.f,t,e)}function $Y(n){return LV(),n?n.ve():(LQ(),LQ(),nMT)}function $Z(n,t){return Ca(),new Yw(new TB(n),new T_(t))}function $1(){$1=C,nTC=new d4(Um(xg(nE1,1),nh7,42,0,[]))}function $0(n){return n.d||(n.d=new hW(n.c.Cc())),n.d}function $2(n){return n.a||(n.a=new gY(n.c.vc())),n.a}function $3(n){return n.b||(n.b=new gQ(n.c.ec())),n.b}function $4(n,t){for(;t-- >0;)n=n<<1|(n<0?1:0);return n}function $5(n,t){return jf(n)===jf(t)||null!=n&&WY(n,t)}function $6(n,t){return C9(n.a,t)?n.b[Im(t,22).g]:null}function $8(n,t){var e;n.u.Hc((nis(),nWS))&&function(n,t){var e,i,r,c;for(e=(c=Im($6(n.b,t),124)).a,r=Im(Im(Fl(n.r,t),21),84).Kc();r.Ob();)(i=Im(r.Pb(),111)).c&&(e.a=nTv.Math.max(e.a,Ce(i.c)));if(e.a>0)switch(t.g){case 2:c.n.c=n.s;break;case 4:c.n.b=n.s}}(n,t),n.C&&((e=Im($6(n.b,t),124).n).d=n.C.d,e.a=n.C.a)}function $9(n,t){return x5(t,n.length),n.charCodeAt(t)}function $7(){d7.call(this,"There is no more element.")}function Ln(n){this.d=n,this.a=this.d.b,this.b=this.d.c}function Lt(n){n.b=!1,n.c=!1,n.d=!1,n.a=!1}function Le(n,t,e,i){return zl(n,t,e,!1),Ve(n,i),n}function Li(n){return n.n||(n.n=new An(nCK,n,1,7)),n.n}function Lr(n){return n.c||(n.c=new An(nC_,n,9,9)),n.c}function Lc(n){var t,e,i,r,c;return n.e==nj0&&(e=n.g,t=(r=(i=n.b).Hh(e.a))&&null!=(c=Sh(Q_((r.b||(r.b=new M2((nhl(),nQQ),nQE,r)),r.b),nyQ)))?c:i.ne(),n.e=t),n.e}function La(n){var t,e,i,r,c;return n.f==nj0&&(e=n.g,t=(r=(i=n.b).Hh(e.a))?Pv(njQ,c=Sh(Q_((r.b||(r.b=new M2((nhl(),nQQ),nQE,r)),r.b),njV)))?OE(e,HU(i.Hj())):c:null,n.f=t),n.f}function Lu(n){var t;return(t=n.b)||(n.b=t=new ht(n)),t}function Lo(n){var t;for(t=n.Kc();t.Ob();)t.Pb(),t.Qb()}function Ls(n){if(Qe(n.d),n.d.d!=n.c)throw(new wI).e}function Lh(n,t){this.b=n,this.c=t,this.a=new vR(this.b)}function Lf(n,t,e){this.a=nfM,this.d=n,this.b=t,this.c=e}function Ll(n,t){this.d=($x(n),n),this.a=16449,this.c=t}function Lb(n,t){return V$(n),new CL(n,new _Y(t,n.a))}function Lw(n,t){return V$(n),new CL(n,new FM(t,n.a))}function Ld(n,t){return V$(n),new Sd(n,new FE(t,n.a))}function Lg(n,t){return V$(n),new Sg(n,new FT(t,n.a))}function Lp(n){this.a=new wn,this.e=_f(nYL,nhJ,48,n,0,2)}function Lv(n,t,e,i){this.a=n,this.e=t,this.d=e,this.c=i}function Lm(n,t,e,i){this.a=n,this.c=t,this.b=e,this.d=i}function Ly(n,t,e,i){this.c=n,this.b=t,this.a=e,this.d=i}function Lk(n,t,e,i){this.c=n,this.b=t,this.d=e,this.a=i}function Lj(n,t,e,i){this.c=n,this.d=t,this.b=e,this.a=i}function LE(n,t,e,i){this.a=n,this.d=t,this.c=e,this.b=i}function LT(n,t,e,i){vl.call(this,n,t),this.a=e,this.b=i}function LM(n,t,e,i){this.a=n,this.c=t,this.d=e,this.b=i}function LS(n,t,e){var i;return i=nsF(n),t.Kh(e,i)}function LP(n,t){var e,i;return i=NU(e=n/t),e>i&&++i,i}function LI(n){var t;return H1(t=new wr,n),t}function LC(n){var t;return ntB(t=new wr,n),t}function LO(n){var t,e;return(t=Ti(e=ntP(n,(nhu(),nxE)),160)?function n(t){var e,i,r;return(i=t.zg())?Ti(e=t.Ug(),160)&&null!=(r=n(Im(e,160)))?r+"."+i:i:null}(Im(e,160)):null)?t:null}function LA(n){return n.b||(n.b=new An(nC$,n,12,3)),n.b}function L$(n,t,e){e.a?qf(n,t.b-n.f/2):qh(n,t.a-n.g/2)}function LL(n,t,e,i){this.a=n,this.b=t,this.c=e,this.d=i}function LN(n,t,e,i){this.a=n,this.b=t,this.c=e,this.d=i}function Lx(n,t,e,i){this.e=n,this.a=t,this.c=e,this.d=i}function LD(n,t,e,i){this.a=n,this.c=t,this.d=e,this.b=i}function LR(n,t,e,i){ED(),Fr.call(this,t,e,i),this.a=n}function LK(n,t,e,i){ED(),Fr.call(this,t,e,i),this.a=n}function LF(n,t){this.a=n,Sw.call(this,n,Im(n.d,15).Zc(t))}function L_(n){this.f=n,this.c=this.f.e,n.f>0&&nno(this)}function LB(n,t,e,i){this.b=n,this.c=i,jN.call(this,t,e)}function LH(n){return MK(n.b<n.d.gc()),n.d.Xb(n.c=n.b++)}function Lq(n){n.a.a=n.c,n.c.b=n.a,n.a.b=n.c.a=null,n.b=0}function LG(n,t){return n.b=t.b,n.c=t.c,n.d=t.d,n.a=t.a,n}function Lz(n){return n.n&&(n.e!==nfv&&n._d(),n.j=null),n}function LU(n){return Cr(null==n||AP(n)&&n.im!==I),n}function LX(n){this.b=new wn,Uf(this.b,this.b),this.a=n}function LW(){LW=C,nOp=new wn,nOg=new wt,nOd=new wn}function LV(){LV=C,nMv=new M,nMm=new P,nMy=new T}function LQ(){LQ=C,nMj=new D,nME=new D,nMT=new R}function LJ(){LJ=C,nSj=new nw,nST=new Oa,nSE=new nd}function LY(n){return n.f||(n.f=new vb(n,n.c))}function LZ(n,t){return WU(n.j,t.s,t.c)+WU(t.e,n.s,n.c)}function L1(n,t,e){Hy(n,t,new hC(PL(e)))}function L0(n,t,e,i,r,c){_K.call(this,n,t,e,i,r,c?-2:-1)}function L2(n,t,e,i){je.call(this,t,e),this.b=n,this.a=i}function L3(n,t){new vK,this.a=new dd,this.b=n,this.c=t}function L4(n,t){if(null==n)throw new gv(t).e;return n}function L5(n){return n.q||(n.q=new An(nQg,n,11,10)),n.q}function L6(n){return n.s||(n.s=new An(nQo,n,21,17)),n.s}function L8(n){return n.a||(n.a=new An(nCF,n,10,11)),n.a}function L9(n){var t,e;return Ti(n,14)?new CI(Im(n,14)):(t=n.Kc(),BU(e=new w_,t),e)}function L7(n){return n&&n.hashCode?n.hashCode():T9(n)}function Nn(n,t){return null==t?!!Nj(n.f,null):void 0!==n.g.a.get(t)}function Nt(n){return LV(),Ti(n,54)?new gJ(n):new TQ(n)}function Ne(n,t,e){return!!n.f&&n.f.Ne(t,e)}function Ni(n){var t;t=0|n.$modCount,n.$modCount=t+1}function Nr(n){this.b=n,this.c=n,n.e=null,n.c=null,this.a=1}function Nc(n){this.b=n,this.a=new pI(Im(A1(new nZ),62))}function Na(n){this.c=n,this.b=new pI(Im(A1(new ng),62))}function Nu(n){this.c=n,this.b=new pI(Im(A1(new tp),62))}function No(){this.a=new wZ,this.b=new di,this.d=new tT}function Ns(){this.a=new dd,this.b=(qz(3,nfs),new Fq(3))}function Nh(){this.b=new w_,this.d=new vK,this.e=new dt}function Nf(n){this.c=n.c,this.d=n.d,this.b=n.b,this.a=n.a}function Nl(n,t){dF.call(this,new O2(n)),this.a=n,this.b=t}function Nb(){ntJ(this,new sJ),this.wb=($g(),nQO),pg()}function Nw(n){return n.u||(KJ(n),n.u=new Sx(n,n)),n.u}function Nd(n){return Im(zF(n,16),26)||n.zh()}function Ng(n,t){return Ti(t,146)&&Pv(n.b,Im(t,146).tg())}function Np(n){this.a=(LV(),Ti(n,54)?new gJ(n):new TQ(n))}function Nv(){var n,t;Nv=C,t=!(Error.stackTraceLimit>0?(nTv.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in Error()),n=new w,nTR=t?new j:n}function Nm(n,t){var e;return e=pb(n.gm),null==t?e:e+": "+t}function Ny(n,t){var e;return Kt(e=n.b.Qc(t),n.b.gc()),e}function Nk(n,t){if(null==n)throw new gv(t).e;return n}function Nj(n,t){var e,i;return X8(n,t,(e=null==t?0:n.b.se(t),null==(i=n.a.get(e))?[]:i))}function NE(n,t,e,i,r,c,a){return new R4(n.e,t,e,i,r,c,a)}function NT(n,t,e,i,r,c){this.a=n,qY.call(this,t,e,i,r,c)}function NM(n,t,e,i,r,c){this.a=n,qY.call(this,t,e,i,r,c)}function NS(n,t){this.g=n,this.d=Um(xg(nPV,1),nw9,10,0,[t])}function NP(n,t){this.e=n,this.a=nEX,this.b=naE(t),this.c=t}function NI(n,t){SY.call(this),H_(this),this.a=n,this.c=t}function NC(n,t,e,i){$t(n.c[t.g],e.g,i),$t(n.c[e.g],t.g,i)}function NO(n,t,e,i){$t(n.c[t.g],t.g,e),$t(n.b[t.g],t.g,i)}function NA(n,t,e,i){return e>=0?n.jh(t,e,i):n.Sg(null,e,i)}function N$(n){return 0==n.b.b?n.a.$e():IF(n.b)}function NL(n){return jf(n.a)===jf((G9(),nQ4))&&function(n){var t,e,i,r,c,a,u,o,s,h;for(o=0,t=new uu,e=new uu,s=Pv(njb,(r=nus(n.b,njw))?Sh(Q_((r.b||(r.b=new M2((nhl(),nQQ),nQE,r)),r.b),njd)):null);o<n.i;++o)Ti(u=Im(n.g[o],170),99)?((a=Im(u,18)).Bb&nya)!=0?(a.Bb&nhY)!=0&&(s||((c=nus(a,njw))?Sh(Q_((c.b||(c.b=new M2((nhl(),nQQ),nQE,c)),c.b),nyV)):null)!=null)||_P(t,a):(h=YI(a))&&(h.Bb&nya)!=0||(a.Bb&nhY)!=0&&(s||((i=nus(a,njw))?Sh(Q_((i.b||(i.b=new M2((nhl(),nQQ),nQE,i)),i.b),nyV)):null)!=null)||_P(e,a):(mp(),Im(u,66).Oj()&&!u.Jj()&&(_P(t,u),_P(e,u)));X5(t),X5(e),n.a=Im(t.g,247),Im(e.g,247)}(n),n.a}function NN(n){this.a=Im(A1(n),271),this.b=(LV(),new TY(n))}function Nx(n,t){var e,i;e=new kp(n.a,n.b),this.a=e,i=Ij(t),this.b=i}function ND(){ND=C,nB9=new y4(nbp,0),nB7=new y4(nbv,1)}function NR(){NR=C,nBL=new y0(nbv,0),nB$=new y0(nbp,1)}function NK(){d1.call(this,new vN(Hv(12))),Tq(!0),this.a=2}function NF(n,t,e){nhh(),b8.call(this,n),this.b=t,this.a=e}function N_(n,t,e){ED(),bY.call(this,t),this.a=n,this.b=e}function NB(n){SY.call(this),H_(this),this.a=n,this.c=!0}function NH(n){var t;t=n.c.d.b,n.b=t,n.a=n.c.d,t.a=n.c.d.b=n}function Nq(n){(function(n){var t;for(t=new h1(Zl(n));t.a<t.c.c.length;)Im(De(t),680).Gf()})(n.a),Ej(n.a),Qa(new fE(n.a))}function NG(n,t){var e,i;return RQ(t),e=_f(nYL,nfH,25,t,15,1),i=n.length,ne4(n,0,e,0,nTv.Math.min(t,i),!0),e}function Nz(n,t){return null==t?jh(Nj(n.f,null)):mT(n.g,t)}function NU(n){return 0|Math.max(Math.min(n,nhM),-2147483648)}function NX(n,t){return L4(n,"set1"),L4(t,"set2"),new vm(n,t)}function NW(n,t){var e;return nsl(n,t,e=new H),e.d}function NV(n,t,e,i){var r;r=new S4,t.a[e.g]=r,C2(n.b,i,r)}function NQ(n,t,e){var i;(i=n.Yg(t))>=0?n.sh(i,e):nr2(n,t,e)}function NJ(n,t,e){xl(),n&&$J(nVV,n,t),n&&$J(nVW,n,e)}function NY(n,t,e){this.i=new wn,this.b=n,this.g=t,this.a=e}function NZ(n,t,e){this.c=new wn,this.e=n,this.f=t,this.b=e}function N1(n,t,e){this.a=new wn,this.e=n,this.f=t,this.c=e}function N0(n,t){E6(this),this.f=t,this.g=n,Lz(this),this._d()}function N2(n,t){var e;e=n.q.getHours(),n.q.setDate(t),nu3(n,e)}function N3(n,t){var e;for(A1(t),e=n.a;e;e=e.c)t.Od(e.g,e.i)}function N4(n){var t;return Xe(t=new pS(Hv(n.length)),n),t}function N5(n,t){var e,i,r,c;if(null==t)throw(new wS).e;return e=t,r=n.a,e=String(e),r.hasOwnProperty(e)&&(i=r[e]),(c=(UF(),nTq)[typeof i])?c(i):Wu(typeof i)}function N6(n){return n.Db>>16!=3?null:Im(n.Cb,33)}function N8(n){return n.Db>>16!=9?null:Im(n.Cb,33)}function N9(n){return n.Db>>16!=6?null:Im(n.Cb,79)}function N7(n){return n.Db>>16!=7?null:Im(n.Cb,235)}function xn(n){return n.Db>>16!=7?null:Im(n.Cb,160)}function xt(n){return n.Db>>16!=11?null:Im(n.Cb,33)}function xe(n,t){var e;return(e=n.Yg(t))>=0?n.lh(e):niE(n,t)}function xi(n,t){var e;return nty(e=new CC(t),n),new PB(e)}function xr(n){var t;return t=n.d,t=n.si(n.f),_P(n,t),t.Ob()}function xc(n,t){return n.b+=t.b,n.c+=t.c,n.d+=t.d,n.a+=t.a,n}function xa(n,t){return nTv.Math.abs(n)<nTv.Math.abs(t)?n:t}function xu(){this.a=new j7,this.e=new w_,this.g=0,this.i=0}function xo(n){this.a=n,this.b=_f(nIO,nhJ,1944,n.e.length,0,2)}function xs(n,t,e){var i;i=Xr(n,t,e),n.b=new GM(i.c.length)}function xh(){xh=C,nBx=new y1(nbC,0),nBD=new y1("UP",1)}function xf(){xf=C,nHJ=new y7(nvo,0),nHY=new y7("FAN",1)}function xl(){var n;xl=C,nVV=new wt,nVW=new wt,n=new a9,nTw&&$J(nVW,nTw,n)}function xb(n){return n.Db>>16!=3?null:Im(n.Cb,147)}function xw(n){return n.Db>>16!=6?null:Im(n.Cb,235)}function xd(n){return n.Db>>16!=17?null:Im(n.Cb,26)}function xg(n,t){var e=n.a=n.a||[];return e[t]||(e[t]=n.le(t))}function xp(n,t,e){return null==t?neQ(n.f,null,e):VB(n.g,t,e)}function xv(n,t,e,i,r,c){return new BE(n.e,t,n.aj(),e,i,r,c)}function xm(n,t,e){return n.a=MT(n.a,0,t)+""+e+jm(n.a,t),n}function xy(n){return Tz(n.c),n.e=n.a=n.c,n.c=n.c.c,++n.d,n.a.f}function xk(n){return Tz(n.e),n.c=n.a=n.e,n.e=n.e.e,--n.d,n.a.f}function xj(n,t){n.d&&Bh(n.d.e,n),n.d=t,n.d&&IE(n.d.e,n)}function xE(n,t){n.c&&Bh(n.c.g,n),n.c=t,n.c&&IE(n.c.g,n)}function xT(n,t){n.c&&Bh(n.c.a,n),n.c=t,n.c&&IE(n.c.a,n)}function xM(n,t){n.i&&Bh(n.i.j,n),n.i=t,n.i&&IE(n.i.j,n)}function xS(n,t,e){this.a=t,this.c=n,this.b=(A1(e),new PB(e))}function xP(n,t,e){this.a=t,this.c=n,this.b=(A1(e),new PB(e))}function xI(n,t){this.a=n,this.c=E1(this.a),this.b=new Nf(t)}function xC(n,t){if(n<0||n>t)throw new gu(nlG+n+nlz+t).e}function xO(n,t){return C7(n.a,t)?Ap(n,Im(t,22).g,null):null}function xA(){xA=C,nT$=X7((dY(),Um(xg(nE3,1),nfh,538,0,[nTA])))}function x$(){x$=C,nBc=Ob(new Rf,(ntI(),nAm),(nhs(),n$V))}function xL(){xL=C,nBa=Ob(new Rf,(ntI(),nAm),(nhs(),n$V))}function xN(){xN=C,nBo=Ob(new Rf,(ntI(),nAm),(nhs(),n$V))}function xx(){xx=C,nBS=Cg(new Rf,(ntI(),nAm),(nhs(),n$k))}function xD(){xD=C,nBO=Cg(new Rf,(ntI(),nAm),(nhs(),n$k))}function xR(){xR=C,nBA=Cg(new Rf,(ntI(),nAm),(nhs(),n$k))}function xK(){xK=C,nBK=Cg(new Rf,(ntI(),nAm),(nhs(),n$k))}function xF(){xF=C,nH3=Ob(new Rf,(Zx(),nHr),(neO(),nHa))}function x_(n,t,e,i){this.c=n,this.d=i,xq(this,t),xG(this,e)}function xB(n){this.c=new vK,this.b=n.b,this.d=n.c,this.a=n.a}function xH(n){this.a=nTv.Math.cos(n),this.b=nTv.Math.sin(n)}function xq(n,t){n.a&&Bh(n.a.k,n),n.a=t,n.a&&IE(n.a.k,n)}function xG(n,t){n.b&&Bh(n.b.f,n),n.b=t,n.b&&IE(n.b.f,n)}function xz(n,t){var e,i;e=n.b,i=n.c,Im(e.b,65),HR(e.a,new Ii(n,i,e)),Im(n.b.b,65),t&&Im(t.b,65).b}function xU(n,t){Ti(n.Cb,88)&&ne2(KJ(Im(n.Cb,88)),4),GF(n,t)}function xX(n,t){Ti(n.Cb,179)&&(Im(n.Cb,179).tb=null),GF(n,t)}function xW(n,t){return mp(),Bz(t)?new Cb(t,n):new jr(t,n)}function xV(n){var t;return pg(),H1(t=new wr,n),t}function xQ(n){var t;return pg(),H1(t=new wr,n),t}function xJ(n,t){var e;return e=new $o(n),t.c[t.c.length]=e,e}function xY(n,t){var e;return(e=Im(WK(LY(n.a),t),14))?e.gc():0}function xZ(n){return V$(n),LQ(),LQ(),H$(n,nME)}function x1(n){for(var t;;)if(t=n.Pb(),!n.Ob())return t}function x0(n,t){d_.call(this,new vN(Hv(n))),qz(t,nhQ),this.a=t}function x2(n,t,e){W4(t,e,n.gc()),this.c=n,this.a=t,this.b=e-t}function x3(n,t,e){var i;W4(t,e,n.c.length),i=e-t,pR(n.c,t,i)}function x4(n,t){if(n<0||n>=t)throw new gu(nlG+n+nlz+t).e}function x5(n,t){if(n<0||n>=t)throw new gV(nlG+n+nlz+t).e}function x6(n,t){this.b=($x(n),n),this.a=(t&nlu)==0?64|t|nhY:t}function x8(n){var t,e;Ek(this),t=this.a,e=U0(nTv.Math.max(8,n))<<1,t.length=e}function x9(n){return Xt(Um(xg(nCa,1),nhJ,8,0,[n.i.n,n.n,n.a]))}function x7(n,t,e){var i;(i=new cs).b=t,i.a=e,++t.b,IE(n.d,i)}function Dn(n,t){var e,i;return i=Ab(n,t),e=n.a.Zc(i),new vp(n,e)}function Dt(n){var t;return n.d==(KY(),nJT)&&(t=function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d;if((e=t.Hh(n.a))&&null!=(u=Sh(Q_((e.b||(e.b=new M2((nhl(),nQQ),nQE,e)),e.b),nyV))))switch(r=T2(u,ntd(35)),i=t.Hj(),-1==r?(a=OE(n,HU(i)),c=u):0==r?(a=null,c=u.substr(1)):(a=u.substr(0,r),c=u.substr(r+1)),$B(BC(n,t))){case 2:case 3:return!(!(h=nrC(n,i,o=a,s=c))&&(h=(d=nrR(n.b,o))&&(w=Im(noI(BI(n,d),""),26))?nrC(n,w,o,s):null))||noW(n,i,h)?h:null;case 0:case 4:case 5:case 6:return!(!(b=nrO(n,i,f=a,l=c))&&(b=Vs(n,f,l)))||noW(n,i,b)?b:null}return null}(n.g,n.b),n.d=t),n.d}function De(n){return MK(n.a<n.c.c.length),n.b=n.a++,n.c.c[n.b]}function Di(n,t){var e,i;return zA((e=j4(n)?zz(n):n,i=j4(t)?zz(t):t,Ez(e.l&i.l,e.m&i.m,e.h&i.h)))}function Dr(n,t){var e,i;return zA((e=j4(n)?zz(n):n,i=j4(t)?zz(t):t,Ez(e.l|i.l,e.m|i.m,e.h|i.h)))}function Dc(n,t){var e,i;return zA((e=j4(n)?zz(n):n,i=j4(t)?zz(t):t,Ez(e.l^i.l,e.m^i.m,e.h^i.h)))}function Da(n){return A1(n),Ti(n,14)?new PB(Im(n,14)):Iy(n.Kc())}function Du(n,t){var e;return e=Bd(t),Im($a(n.c,e),19).a}function Do(n,t){var e;for(e=n+"";e.length<t;)e="0"+e;return e}function Ds(n){return null==n.c||0==n.c.length?"n_"+n.g:"n_"+n.c}function Dh(n){return null==n.c||0==n.c.length?"n_"+n.b:"n_"+n.c}function Df(n,t){return n&&n.equals?n.equals(t):jf(n)===jf(t)}function Dl(n,t){return 0==t?!!n.o&&0!=n.o.f:JY(n,t)}function Db(n,t,e){var i;n.n&&t&&e&&(i=new aX,IE(n.e,i))}function Dw(n,t,e){var i;i=n.d[t.p],n.d[t.p]=n.d[e.p],n.d[e.p]=i}function Dd(n,t,e){this.d=n,this.j=t,this.e=e,this.o=-1,this.p=3}function Dg(n,t,e){this.d=n,this.k=t,this.f=e,this.o=-1,this.p=5}function Dp(n,t,e){b8.call(this,25),this.b=n,this.a=t,this.c=e}function Dv(n){nhh(),b8.call(this,n),this.c=!1,this.a=!1}function Dm(n,t,e,i,r,c){qT.call(this,n,t,e,i,r),c&&(this.o=-2)}function Dy(n,t,e,i,r,c){qM.call(this,n,t,e,i,r),c&&(this.o=-2)}function Dk(n,t,e,i,r,c){Fn.call(this,n,t,e,i,r),c&&(this.o=-2)}function Dj(n,t,e,i,r,c){qI.call(this,n,t,e,i,r),c&&(this.o=-2)}function DE(n,t,e,i,r,c){Ft.call(this,n,t,e,i,r),c&&(this.o=-2)}function DT(n,t,e,i,r,c){qS.call(this,n,t,e,i,r),c&&(this.o=-2)}function DM(n,t,e,i,r,c){qP.call(this,n,t,e,i,r),c&&(this.o=-2)}function DS(n,t,e,i,r,c){Fe.call(this,n,t,e,i,r),c&&(this.o=-2)}function DP(n,t,e,i){bY.call(this,e),this.b=n,this.c=t,this.d=i}function DI(n,t){this.a=new wn,this.d=new wn,this.f=n,this.c=t}function DC(){this.c=new EJ,this.a=new No,this.b=new w5,vW()}function DO(){UM(),this.b=new wt,this.a=new wt,this.c=new wn}function DA(n,t){this.g=n,this.d=(KY(),nJT),this.a=nJT,this.b=t}function D$(n,t){this.f=n,this.a=(KY(),nJE),this.c=nJE,this.b=t}function DL(n,t){n.c||(n.c=new zr(n,0)),noE(n.c,(noQ(),nJY),t)}function DN(){DN=C,nH0=new kn("DFS",0),nH1=new kn("BFS",1)}function Dx(n,t,e){var i;return!!(i=Im(n.Zb().xc(t),14))&&i.Mc(e)}function DD(n,t,e,i){return n.a+=""+MT(null==t?nhN:V7(t),e,i),n}function DR(n,t,e,i,r,c){return zl(n,t,e,c),Vt(n,i),Vr(n,r),n}function DK(n){return MK(n.b.b!=n.d.a),n.c=n.b=n.b.b,--n.a,n.c.c}function DF(n){for(;n.d>0&&0==n.a[--n.d];);0==n.a[n.d++]&&(n.e=0)}function D_(n){return n.a?0==n.e.length?n.a.a:n.a.a+""+n.e:n.c}function DB(n){return Cp(n.e.Hd().gc()*n.c.Hd().gc(),16,new s4(n))}function DH(n){return Im(Jx(n,_f(nPU,nw8,17,n.c.length,0,1)),474)}function Dq(n){return Im(Jx(n,_f(nPV,nw9,10,n.c.length,0,1)),193)}function DG(n,t,e){A1(n),function(n){var t,e,i;for(LV(),E_(n.c,n.a),i=new h1(n.c);i.a<i.c.c.length;)for(e=De(i),t=new h1(n.b);t.a<t.c.c.length;)Im(De(t),679).Ke(e)}(new xS(new PB(n),t,e))}function Dz(n,t,e){A1(n),function(n){var t,e,i;for(LV(),E_(n.c,n.a),i=new h1(n.c);i.a<i.c.c.length;)for(e=De(i),t=new h1(n.b);t.a<t.c.c.length;)Im(De(t),369).Ke(e)}(new xP(new PB(n),t,e))}function DU(n,t){var e;return e=1-t,n.a[e]=Gk(n.a[e],e),Gk(n,t)}function DX(n,t){var e;n.e=new dU,E_(e=ncY(t),n.c),function n(t,e,i){var r,c,a,u,o,s;for(c=i,a=0,o=new h1(e);o.a<o.c.c.length;)Yu(u=Im(De(o),33),(ZD(),nqA),Va(c++)),s=ncY(u),r=nTv.Math.atan2(u.j+u.f/2,u.i+u.g/2),(r+=r<0?nvd:0)<.7853981633974483||r>nvL?E_(s,t.b):r<=nvL&&r>nvN?E_(s,t.d):r<=nvN&&r>nvx?E_(s,t.c):r<=nvx&&E_(s,t.a),a=n(t,s,a);return c}(n,e,0)}function DW(n,t,e,i){var r;(r=new al).a=t,r.b=e,r.c=i,I2(n.a,r)}function DV(n,t,e,i){var r;(r=new al).a=t,r.b=e,r.c=i,I2(n.b,r)}function DQ(n){var t,e;return e=function n(t,e){var i,r,c,a,u,o,s,h;if(!e)return null;if(i=(a=e.Tg())?HU(a).Nh().Jh(a):null){for(JR(t,e,i),s=0,h=(null==(c=e.Tg()).i&&nuq(c),c.i).length;s<h;++s)null==c.i&&nuq(c),r=c.i,(o=s>=0&&s<r.length?r[s]:null).Ij()&&!o.Jj()&&(Ti(o,322)?function(t,e,i,r){var c;i.mh(e)&&(mp(),Bz(e)?function(t,e){var i,r,c,a;for(r=0,c=e.gc();r<c;++r)Ti(i=e.il(r),99)&&(Im(i,18).Bb&nya)!=0&&null!=(a=e.jl(r))&&n(t,Im(a,56))}(t,Im(i.ah(e),153)):(c=e?Im(r,49).xh(e):null)&&function(n,t){t.Wb(n)}(i.ah(e),c))}(t,Im(o,34),e,i):((u=Im(o,18)).Bb&nya)!=0&&function(t,e,i,r){var c,a,u,o;i.mh(e)&&(c=e?Im(r,49).xh(e):null)&&(o=i.ah(e),(u=e.t)>1||-1==u?(a=Im(o,15),c.Wb(function(t,e){var i,r,c;for(r=new Fq(e.gc()),i=e.Kc();i.Ob();)(c=n(t,Im(i.Pb(),56)))&&(r.c[r.c.length]=c);return r}(t,a))):c.Wb(n(t,Im(o,56))))}(t,u,e,i));e.kh()&&Im(i,49).vh(Im(e,49).qh())}return i}(t=new AX,n),function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;for(f=new $P(new h7(n));f.b!=f.c.a.d;)for(d=0,u=Im((h=_M(f)).d,56),t=Im(h.e,56),y=(null==(a=u.Tg()).i&&nuq(a),a.i).length;d<y;++d)if(null==a.i&&nuq(a),c=a.i,(s=d>=0&&d<c.length?c[d]:null).Ij()&&!s.Jj()){if(Ti(s,99))((o=Im(s,18)).Bb&nya)!=0||(k=YI(o))&&(k.Bb&nya)!=0||function(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w;if(e.mh(t)&&(h=t?Im(i,49).xh(t):null)){if(w=e.bh(t,n.a),(b=t.t)>1||-1==b){if(f=Im(w,69),l=Im(h,69),f.dc())l.$b();else for(a=!!YI(t),c=0,u=n.a?f.Kc():f.Zh();u.Ob();)s=Im(u.Pb(),56),(r=Im(BX(n,s),56))?(a?-1==(o=l.Xc(r))?l.Xh(c,r):c!=o&&l.ji(c,r):l.Xh(c,r),++c):n.b&&!a&&(l.Xh(c,s),++c)}else null==w?h.Wb(null):null==(r=BX(n,w))?n.b&&!YI(t)&&h.Wb(w):h.Wb(r)}}(n,o,u,t);else if(mp(),Im(s,66).Oj()&&(e=Im(s?Im(t,49).xh(s):null,153)))for(g=0,b=Im(u.ah(s),153),i=e.gc(),w=b.gc();g<w;++g)if(Ti(l=b.il(g),99)){if(null==(r=BX(n,m=b.jl(g)))&&null!=m){if(v=Im(l,18),!n.b||(v.Bb&nya)!=0||YI(v))continue;r=m}if(!e.dl(l,r)){for(p=0;p<i;++p)if(e.il(p)==l&&jf(e.jl(p))===jf(r)){e.ii(e.gc()-1,p),--i;break}}}else e.dl(b.il(g),b.jl(g))}}(t),e}function DJ(){var n,t;return n=new wr,IE(nJo,n),n}function DY(n){var t;return n.j.c=_f(nEX,nhA,1,0,5,1),Lo(n.c),(t=n.a).j.c=_f(nEX,nhA,1,0,5,1),t.a=-1,n}function DZ(n){return(v6(),Ti(n.g,10))?Im(n.g,10):null}function D1(n,t){if(n<0||n>=t)throw new gu(function(n,t){if(n<0)return naT(nhO,Um(xg(nEX,1),nhA,1,5,["index",Va(n)]));if(t<0)throw new gd(nh$+t).e;return naT("%s (%s) must be less than size (%s)",Um(xg(nEX,1),nhA,1,5,["index",Va(n),Va(t)]))}(n,t)).e;return n}function D0(n,t,e){if(n<0||t<n||t>e){var i,r,c;throw new gu((i=n,r=t,c=e,i<0||i>c?neX(i,c,"start index"):r<0||r>c?neX(r,c,"end index"):naT("end index (%s) must not be less than start index (%s)",Um(xg(nEX,1),nhA,1,5,[Va(r),Va(i)])))).e}}function D2(n,t){if(Av(n.a,t),t.d)throw new d7(nlJ).e;t.d=n}function D3(n,t){if(t.$modCount!=n.$modCount)throw(new wI).e}function D4(n,t){return!!Ti(t,42)&&Y4(n.a,Im(t,42))}function D5(n,t){return!!Ti(t,42)&&Y4(n.a,Im(t,42))}function D6(n,t){return!!Ti(t,42)&&Y4(n.a,Im(t,42))}function D8(n){return j4(n)?-0==n?0:n:function(n){if(0>nnn(n,(Bx(),nTW))){var t;return-((t=Uq(n)).l+t.m*nf8+t.h*nf9)}return n.l+n.m*nf8+n.h*nf9}(n)}function D9(n){var t;return $R(n),t=new F,pC(n.a,new fl(t)),t}function D7(n){var t;return $R(n),t=new K,pC(n.a,new ff(t)),t}function Rn(n,t){this.a=n,h$.call(this,n),xC(t,n.gc()),this.b=t}function Rt(n){this.e=n,this.b=this.e.a.entries(),this.a=[]}function Re(n){return new Fq((qz(n,nfl),Hp(VK(VK(5,n),n/10|0))))}function Ri(n){return Im(Jx(n,_f(nPY,nw7,11,n.c.length,0,1)),1943)}function Rr(n,t){(function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y;if(v=0,0==t.f.b)for(g=new h1(n);g.a<g.c.c.length;)w=Im(De(g),10),v=nTv.Math.max(v,w.n.b+w.o.b+w.d.a);else v=t.f.b-t.c.b;for(v-=t.c.b,d=new h1(n);d.a<d.c.c.length;){switch(wl((w=Im(De(d),10)).n,v-w.o.b),IN(w.f),Zs(w),(w.q?w.q:(LV(),LV(),nMm))._b((ns8(),nFO))&&wl(Im(ntP(w,nFO),8),v-w.o.b),Im(ntP(w,nR9),248).g){case 3:UU(w,nR9,(Yv(),nz_));break;case 4:UU(w,nR9,(Yv(),nzG))}for(p=w.o,y=new h1(w.j);y.a<y.c.c.length;){for(wl((m=Im(De(y),11)).n,p.b-m.o.b),wl(m.a,m.o.b),ne9(m,zo(m.j)),(a=Im(ntP(m,nFT),19))&&UU(m,nFT,Va(-a.a)),c=new h1(m.g);c.a<c.c.c.length;){for(i=Jz((r=Im(De(c),17)).a,0);i.b!=i.d.c;)(e=Im(RP(i),8)).b=v-e.b;if(s=Im(ntP(r,nKV),74))for(o=Jz(s,0);o.b!=o.d.c;)(u=Im(RP(o),8)).b=v-u.b;for(l=new h1(r.b);l.a<l.c.c.length;)wl((h=Im(De(l),70)).n,v-h.o.b)}for(b=new h1(m.f);b.a<b.c.c.length;)wl((h=Im(De(b),70)).n,m.o.b-h.o.b)}for(w.k==(ntY(),nAU)&&(UU(w,(nhu(),nxr),zo(Im(ntP(w,nxr),61))),function(n){switch(Im(ntP(n,(nhu(),nxf)),303).g){case 1:UU(n,nxf,(BL(),nNU));break;case 2:UU(n,nxf,(BL(),nNW))}}(w)),f=new h1(w.b);f.a<f.c.c.length;)Zs(h=Im(De(f),70)),wl(h.n,p.b-h.o.b)}})(t,n),IN(n.d),IN(Im(ntP(n,(ns8(),nK9)),207))}function Rc(n,t){(function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y;if(v=0,0==t.f.a)for(g=new h1(n);g.a<g.c.c.length;)w=Im(De(g),10),v=nTv.Math.max(v,w.n.a+w.o.a+w.d.c);else v=t.f.a-t.c.a;for(v-=t.c.a,d=new h1(n);d.a<d.c.c.length;){switch(wb((w=Im(De(d),10)).n,v-w.o.a),IL(w.f),Zo(w),(w.q?w.q:(LV(),LV(),nMm))._b((ns8(),nFO))&&wb(Im(ntP(w,nFO),8),v-w.o.a),Im(ntP(w,nR9),248).g){case 1:UU(w,nR9,(Yv(),nzq));break;case 2:UU(w,nR9,(Yv(),nzH))}for(p=w.o,y=new h1(w.j);y.a<y.c.c.length;){for(wb((m=Im(De(y),11)).n,p.a-m.o.a),wb(m.a,m.o.a),ne9(m,zu(m.j)),(a=Im(ntP(m,nFT),19))&&UU(m,nFT,Va(-a.a)),c=new h1(m.g);c.a<c.c.c.length;){for(i=Jz((r=Im(De(c),17)).a,0);i.b!=i.d.c;)(e=Im(RP(i),8)).a=v-e.a;if(s=Im(ntP(r,nKV),74))for(o=Jz(s,0);o.b!=o.d.c;)(u=Im(RP(o),8)).a=v-u.a;for(l=new h1(r.b);l.a<l.c.c.length;)wb((h=Im(De(l),70)).n,v-h.o.a)}for(b=new h1(m.f);b.a<b.c.c.length;)wb((h=Im(De(b),70)).n,m.o.a-h.o.a)}for(w.k==(ntY(),nAU)&&(UU(w,(nhu(),nxr),zu(Im(ntP(w,nxr),61))),function(n){switch(Im(ntP(n,(ns8(),nKY)),163).g){case 1:UU(n,nKY,(VJ(),nxV));break;case 2:UU(n,nKY,(VJ(),nxQ));break;case 3:UU(n,nKY,(VJ(),nxX));break;case 4:UU(n,nKY,(VJ(),nxW))}}(w)),f=new h1(w.b);f.a<f.c.c.length;)Zo(h=Im(De(f),70)),wb(h.n,p.a-h.o.a)}})(t,n),IL(n.d),IL(Im(ntP(n,(ns8(),nK9)),207))}function Ra(n,t){var e,i;return e=N5(n,t),i=null,e&&(i=e.fe()),i}function Ru(n,t){var e,i;return e=BQ(n,t),i=null,e&&(i=e.ie()),i}function Ro(n,t){var e,i;return e=N5(n,t),i=null,e&&(i=e.ie()),i}function Rs(n,t){var e,i;return e=N5(n,t),i=null,e&&(i=ney(e)),i}function Rh(n){var t;t=n.Wg(),this.a=Ti(t,69)?Im(t,69).Zh():t.Kc()}function Rf(){dz.call(this),this.j.c=_f(nEX,nhA,1,0,5,1),this.a=-1}function Rl(n,t,e,i){this.d=n,this.n=t,this.g=e,this.o=i,this.p=-1}function Rb(n,t,e,i){this.e=i,this.d=null,this.c=n,this.a=t,this.b=e}function Rw(n,t,e){this.d=new lS(this),this.e=n,this.i=t,this.f=e}function Rd(){Rd=C,nNQ=new y$(nbw,0),nNJ=new y$("TOP_LEFT",1)}function Rg(){Rg=C,nBl=$Z(Va(1),Va(4)),nBf=$Z(Va(1),Va(2))}function Rp(){Rp=C,nGA=X7((mn(),Um(xg(nI5,1),nfh,551,0,[nGO])))}function Rv(){Rv=C,nGC=X7((v7(),Um(xg(nI4,1),nfh,482,0,[nGI])))}function Rm(){Rm=C,nzl=X7((mt(),Um(xg(nI9,1),nfh,530,0,[nzf])))}function Ry(){Ry=C,nC8=X7((vV(),Um(xg(nPx,1),nfh,481,0,[nC6])))}function Rk(n,t,e,i){return Ti(e,54)?new MB(n,t,e,i):new OS(n,t,e,i)}function Rj(n,t){return Im(Me(OH(Im(Fl(n.k,t),15).Oc(),nLF)),113)}function RE(n,t){return Im(Me(Oq(Im(Fl(n.k,t),15).Oc(),nLF)),113)}function RT(n){return Ti(n,14)?Im(n,14).dc():!n.Kc().Ob()}function RM(n){return(v6(),Ti(n.g,145))?Im(n.g,145):null}function RS(n){if(n.e.g!=n.b)throw(new wI).e;return!!n.c&&n.d>0}function RP(n){return MK(n.b!=n.d.c),n.c=n.b,n.b=n.b.a,++n.a,n.c.c}function RI(n,t){$x(t),$t(n.a,n.c,t),n.c=n.c+1&n.a.length-1,Zy(n)}function RC(n,t){$x(t),n.b=n.b-1&n.a.length-1,$t(n.a,n.b,t),Zy(n)}function RO(n,t){var e;for(e=n.j.c.length;e<t;e++)IE(n.j,n.rg())}function RA(n,t,e,i){var r;return r=i[t.g][e.g],gy(Ss(ntP(n.a,r)))}function R$(n,t,e,i,r){this.i=n,this.a=t,this.e=e,this.j=i,this.f=r}function RL(n,t,e,i,r){this.a=n,this.e=t,this.f=e,this.b=i,this.g=r}function RN(n,t,e){return t<0?niE(n,e):Im(e,66).Nj().Sj(n,n.yh(),t)}function Rx(n){var t;return pw(),t=new aJ,n&&nr7(t,n),t}function RD(n){var t;return t=n.ri(n.i),n.i>0&&now(n.g,0,t,0,n.i),t}function RR(n,t){var e;return mv(),!(e=Im($a(nVZ,n),55))||e.wj(t)}function RK(n){var t;for(t=0;n.Ob();)n.Pb(),t=VK(t,1);return Hp(t)}function RF(n,t){var e;return e=new gW,n.xd(e),e.a+="..",t.yd(e),e.a}function R_(n,t,e){return nuz(n,t,e,Ti(t,99)&&(Im(t,18).Bb&nls)!=0)}function RB(n,t){return n==(ntY(),nAV)&&t==nAV?4:n==nAV||t==nAV?8:32}function RH(n,t){return jf(t)===jf(n)?"(this Map)":null==t?nhN:V7(t)}function Rq(n,t,e){var i;return i=Jo(e),$J(n.b,i,t),$J(n.c,t,e),t}function RG(n,t){var e;for(e=t;e;)MG(n,e.i,e.j),e=xt(e);return n}function Rz(n,t){var e;return e=Nt(Iy(new Bp(n,t))),CM(new Bp(n,t)),e}function RU(n,t){var e;return mp(),function(n,t){var e;if(null!=t&&!n.c.Yj().wj(t))throw e=Ti(t,56)?Im(t,56).Tg().zb:pb(Xp(t)),new gw(nyn+n.c.ne()+"'s type '"+n.c.Yj().ne()+"' does not permit a value of type '"+e+"'").e}(e=Im(n,66).Mj(),t),e.Ok(t)}function RX(n,t,e){n.i=0,n.e=0,t!=e&&(Xf(n,t,e),Xh(n,t,e))}function RW(n,t){var e;e=n.q.getHours(),n.q.setFullYear(t+nfB),nu3(n,e)}function RV(n,t,e){e=e?e.ee()(e):void 0,n.a[t]=e}function RQ(n){if(n<0)throw new gp("Negative array size: "+n).e}function RJ(n){return n.n||(KJ(n),n.n=new Og(n,nQd,n),Nw(n)),n.n}function RY(n){return MK(n.a<n.c.a.length),n.b=n.a,B6(n),n.c.b[n.b]}function RZ(n){n.b!=n.c&&(n.a=_f(nEX,nhA,1,8,5,1),n.b=0,n.c=0)}function R1(n){this.b=new wt,this.c=new wt,this.d=new wt,this.a=n}function R0(n,t){nhh(),b8.call(this,n),this.a=t,this.c=-1,this.b=-1}function R2(n,t,e,i){Dd.call(this,1,e,i),this.c=n,this.b=t}function R3(n,t,e,i){Dg.call(this,1,e,i),this.c=n,this.b=t}function R4(n,t,e,i,r,c,a){qY.call(this,t,i,r,c,a),this.c=n,this.a=e}function R5(n,t,e){this.e=n,this.a=nEX,this.b=naE(t),this.c=t,this.d=e}function R6(n){this.e=n,this.c=this.e.a,this.b=this.e.g,this.d=this.e.i}function R8(n){this.c=n,this.a=Im(Z9(n),148),this.b=this.a.Aj().Nh()}function R9(n){this.d=n,this.b=this.d.a.entries(),this.a=this.b.next()}function R7(){wt.call(this),MN(this),this.d.b=this.d,this.d.a=this.d}function Kn(n,t){SQ.call(this),this.a=n,this.b=t,IE(this.a.b,this)}function Kt(n,t){var e;for(e=0;e<t;++e)$t(n,e,new hY(Im(n[e],42)))}function Ke(n,t){var e;return(XQ(),0!=(e=n.j.g-t.j.g))?e:0}function Ki(n,t){if($x(t),null!=n.a){var e;return null==(e=t.Kb(n.a))?nMO:new ge($x(e))}return nMO}function Kr(n){var t;return n?new CC(n):(GW(t=new j7,n),t)}function Kc(n,t){return t.b.Kb(Bw(n,t.c.Ee(),new fg(t)))}function Ka(n){nn7(),Tc(this,CZ(Di(OK(n,24),nlA)),CZ(Di(n,nlA)))}function Ku(){Ku=C,nSP=X7((JU(),Um(xg(nSr,1),nfh,428,0,[nSS,nSM])))}function Ko(){Ko=C,nSO=X7((B7(),Um(xg(nSc,1),nfh,427,0,[nSI,nSC])))}function Ks(){Ks=C,nOI=X7((Hn(),Um(xg(nPR,1),nfh,424,0,[nOS,nOP])))}function Kh(){Kh=C,nA9=X7((G$(),Um(xg(nPZ,1),nfh,511,0,[nA8,nA6])))}function Kf(){Kf=C,nNe=X7((Ht(),Um(xg(nIi,1),nfh,419,0,[nNn,nNt])))}function Kl(){Kl=C,nNg=X7((Bo(),Um(xg(nIa,1),nfh,479,0,[nNd,nNw])))}function Kb(){Kb=C,n_2=X7((FA(),Um(xg(nIE,1),nfh,376,0,[n_0,n_1])))}function Kw(){Kw=C,n_z=X7((BN(),Um(xg(nIy,1),nfh,421,0,[n_q,n_G])))}function Kd(){Kd=C,nLV=X7((_j(),Um(xg(nP7,1),nfh,422,0,[nLX,nLW])))}function Kg(){Kg=C,nNY=X7((Rd(),Um(xg(nIl,1),nfh,420,0,[nNQ,nNJ])))}function Kp(){Kp=C,nB2=X7((FO(),Um(xg(nIF,1),nfh,520,0,[nB0,nB1])))}function Kv(){Kv=C,nBM=X7((KI(),Um(xg(nIL,1),nfh,523,0,[nBT,nBE])))}function Km(){Km=C,nBN=X7((NR(),Um(xg(nIR,1),nfh,516,0,[nBL,nB$])))}function Ky(){Ky=C,nBR=X7((xh(),Um(xg(nIK,1),nfh,515,0,[nBx,nBD])))}function Kk(){Kk=C,nHn=X7((ND(),Um(xg(nI_,1),nfh,455,0,[nB9,nB7])))}function Kj(){Kj=C,nH2=X7((DN(),Um(xg(nIU,1),nfh,425,0,[nH0,nH1])))}function KE(){KE=C,nqn=X7((GL(),Um(xg(nIX,1),nfh,495,0,[nH9,nH7])))}function KT(){KT=C,nHZ=X7((xf(),Um(xg(nIz,1),nfh,480,0,[nHJ,nHY])))}function KM(){KM=C,nqu=X7((_G(),Um(xg(nIV,1),nfh,426,0,[nqc,nqa])))}function KS(){KS=C,nzd=X7((UT(),Um(xg(nI7,1),nfh,429,0,[nzw,nzb])))}function KP(){KP=C,nGN=X7((F$(),Um(xg(nI6,1),nfh,430,0,[nGL,nG$])))}function KI(){KI=C,nBT=new yW("UPPER",0),nBE=new yW("LOWER",1)}function KC(n,t){var e,i;for(e=t,i=0;e>0;)i+=n.a[e],e-=e&-e;return i}function KO(n,t){var e;for(e=t;e;)MG(n,-e.i,-e.j),e=xt(e);return n}function KA(n,t){var e,i;for($x(t),i=n.Kc();i.Ob();)e=i.Pb(),t.td(e)}function K$(n,t){var e;return new vw(e=t.cd(),n.e.pc(e,Im(t.dd(),14)))}function KL(n,t,e,i){var r;(r=new A).c=t,r.b=e,r.a=i,i.b=e.a=r,++n.b}function KN(n,t,e){var i;return x4(t,n.c.length),i=n.c[t],n.c[t]=e,i}function Kx(n){return n.c&&n.d?Dh(n.c)+"->"+Dh(n.d):"e_"+T9(n)}function KD(n,t){return(V$(n),pN(new CL(n,new _Y(t,n.a)))).sd(nM5)}function KR(n){return!!n.c&&!!n.d&&!!n.c.i&&n.c.i==n.d.i}function KK(n){if(!n.c.Sb())throw(new wO).e;return n.a=!0,n.c.Ub()}function KF(n){n.i=0,mA(n.b,null),mA(n.c,null),n.a=null,n.e=null,++n.g}function K_(n){mS.call(this,null==n?nhN:V7(n),Ti(n,78)?Im(n,78):null)}function KB(n){nhi(),this.b=new g$,this.a=new vK,XP(this,n),I2(this.a,n)}function KH(){Ey(this),this.b=new kp(nlc,nlc),this.a=new kp(nla,nla)}function Kq(n,t){this.c=0,this.b=t,jL.call(this,n,17493),this.a=this.c}function KG(n){Kz(),nMH||(this.c=n,this.e=!0,this.a=new wn)}function Kz(){Kz=C,nMH=!0,nM_=!1,nMB=!1,nMG=!1,nMq=!1}function KU(n,t){return!!Ti(t,149)&&Pv(n.c,Im(t,149).c)}function KX(n,t){var e;return e=0,n&&(e+=n.f.a/2),t&&(e+=t.f.a/2),e}function KW(n,t){return Im(BX(n.d,t),23)||Im(BX(n.e,t),23)}function KV(n){this.b=n,Td.call(this,n),this.a=Im(zF(this.b.a,4),126)}function KQ(n){this.b=n,Mm.call(this,n),this.a=Im(zF(this.b.a,4),126)}function KJ(n){return n.t||(n.t=new bz(n),Vf(new gf(n),0,n.t)),n.t}function KY(){KY=C,pg(),nJE=new wL,nJT=new dT}function KZ(n){var t;return!n.c&&Ti(t=n.r,88)&&(n.c=Im(t,26)),n.c}function K1(n){return Ez(n&nf4,n>>22&nf4,n<0?nf5:0)}function K0(n,t){var e;return!!(e=XS(n,t.cd()))&&$5(e.e,t.dd())}function K2(n,t){return 0==t||0==n.e?n:t>0?Q1(n,t):ncL(n,-t)}function K3(n,t){return 0==t||0==n.e?n:t>0?ncL(n,t):Q1(n,-t)}function K4(n){if(nrc(n))return n.c=n.a,n.a.Pb();throw(new wO).e}function K5(n){var t,e;return t=n.c.i,e=n.d.i,t.k==(ntY(),nAU)&&e.k==nAU}function K6(n){var t;return z5(t=new Ns,n),UU(t,(ns8(),nKV),null),t}function K8(n,t,e){var i;return(i=n.Yg(t))>=0?n._g(i,e,!0):niO(n,t,e)}function K9(n,t,e,i){var r;for(r=0;r<nSl;r++)Ol(n.a[t.g][r],e,i[t.g])}function K7(n,t,e,i){var r;for(r=0;r<nSb;r++)Of(n.a[r][t.g],e,i[t.g])}function Fn(n,t,e,i,r){Dd.call(this,t,i,r),this.c=n,this.a=e}function Ft(n,t,e,i,r){Dg.call(this,t,i,r),this.c=n,this.a=e}function Fe(n,t,e,i,r){Fc.call(this,t,i,r),this.c=n,this.a=e}function Fi(n,t,e,i,r){Fc.call(this,t,i,r),this.c=n,this.b=e}function Fr(n,t,e){bY.call(this,e),this.b=n,this.c=t,this.d=(QC(),nJa)}function Fc(n,t,e){this.d=n,this.k=t?1:0,this.f=e?1:0,this.o=-1,this.p=0}function Fa(n,t,e){var i;zc(i=new E4(n.a),n.a.a),neQ(i.f,t,e),n.a.a=i}function Fu(n,t){n.qi(n.i+1),Ts(n,n.i,n.oi(n.i,t)),n.bi(n.i++,t),n.ci()}function Fo(n){var t,e;++n.j,t=n.g,e=n.i,n.g=null,n.i=0,n.di(e,t),n.ci()}function Fs(n){var t,e;return A1(n),qz(e=n.length,nfl),Xe(t=new Fq(Hp(VK(VK(5,e),e/10|0))),n),t}function Fh(n){var t;return A1(n),ne_(t=n?new PB(n):Iy(n.Kc())),Wx(t)}function Ff(n,t){var e;return x4(t,n.c.length),e=n.c[t],pR(n.c,t,1),e}function Fl(n,t){var e;return(e=Im(n.c.xc(t),14))||(e=n.ic(t)),n.pc(t,e)}function Fb(n,t){return $x(n),$x(t),n==t?0:n<t?-1:1}function Fw(n){var t;return isNaN(t=n.e+n.f)&&PN(n.d)?n.d:t}function Fd(n,t){return n.a?jP(n.a,n.b):n.a=new TV(n.d),jM(n.a,t),n}function Fg(n,t){if(n<0||n>t)throw new gu(neX(n,t,"index")).e;return n}function Fp(n,t,e,i){var r;return function(n,t,e,i,r){var c,a;for(a=0,c=0;a<r;a++)c=VK(c,VR(Di(t[a],nlw),Di(i[a],nlw))),n[a]=CZ(c),c=OK(c,32);for(;a<e;a++)c=VK(c,Di(t[a],nlw)),n[a]=CZ(c),c=OK(c,32)}(r=_f(nYL,nfH,25,t,15,1),n,t,e,i),r}function Fv(n,t){return jw(t)?null==t?nra(n.f,null):z6(n.g,t):nra(n.f,t)}function Fm(n){this.c=n,this.a=new h1(this.c.a),this.b=new h1(this.c.b)}function Fy(){this.e=new wn,this.c=new wn,this.d=new wn,this.b=new wn}function Fk(){this.g=new wG,this.b=new wG,this.a=new wn,this.k=new wn}function Fj(n,t,e){this.a=n,this.c=t,this.d=e,IE(t.e,this),IE(e.b,this)}function FE(n,t){j$.call(this,t.rd(),-6&t.qd()),$x(n),this.a=n,this.b=t}function FT(n,t){jL.call(this,t.rd(),-6&t.qd()),$x(n),this.a=n,this.b=t}function FM(n,t){jN.call(this,t.rd(),-6&t.qd()),$x(n),this.a=n,this.b=t}function FS(n,t,e){this.a=n,this.b=t,this.c=e,IE(n.t,this),IE(t.i,this)}function FP(){this.b=new vK,this.a=new vK,this.b=new vK,this.a=new vK}function FI(){FI=C,nzR=new bR("org.eclipse.elk.labels.labelManager")}function FC(){FC=C,n$8=new SA("separateLayerConnections",(Uy(),nLt))}function FO(){FO=C,nB0=new y3("REGULAR",0),nB1=new y3("CRITICAL",1)}function FA(){FA=C,n_0=new yq("STACKED",0),n_1=new yq("SEQUENCED",1)}function F$(){F$=C,nGL=new kh("FIXED",0),nG$=new kh("CENTER_NODE",1)}function FL(n){var t;return!n.a&&Ti(t=n.r,148)&&(n.a=Im(t,148)),n.a}function FN(n){return n.a?n.e?FN(n.e):null:n}function Fx(n,t){return $x(t),n.c<n.d&&(n.ze(t,n.c++),!0)}function FD(n,t){return!!Au(n.a,t)&&(Fv(n.a,t),!0)}function FR(n){var t;for($R(n),t=0;n.a.sd(new ns);)t=VK(t,1);return t}function FK(n,t,e){var i,r;for(r=0,i=0;r<t.length;r++)i+=n.$f(t[r],i,e)}function FF(n,t,e){return D1(t,n.e.Hd().gc()),D1(e,n.c.Hd().gc()),n.a[t][e]}function F_(n,t){nc4(),this.e=n,this.d=1,this.a=Um(xg(nYL,1),nfH,25,15,[t])}function FB(n,t,e,i){this.f=n,this.e=t,this.d=e,this.b=i,this.c=i?i.d:null}function FH(n){var t,e,i,r;r=n.d,t=n.a,e=n.b,i=n.c,n.d=e,n.a=i,n.b=r,n.c=t}function Fq(n){Ey(this),IB(n>=0,"Initial capacity must not be negative")}function FG(){FG=C,nSJ=X7((HB(),Um(xg(nSf,1),nfh,232,0,[nSW,nSV,nSQ])))}function Fz(){Fz=C,nS0=X7((_1(),Um(xg(nSw,1),nfh,461,0,[nSZ,nSY,nS1])))}function FU(){FU=C,nS5=X7((B$(),Um(xg(nSg,1),nfh,462,0,[nS4,nS3,nS2])))}function FX(){FX=C,nM4=X7((XW(),Um(xg(nMz,1),nfh,132,0,[nM0,nM2,nM3])))}function FW(){FW=C,nAf=X7((BA(),Um(xg(nPK,1),nfh,379,0,[nAs,nAo,nAh])))}function FV(){FV=C,nAB=X7((W3(),Um(xg(nPz,1),nfh,423,0,[nA_,nAF,nAK])))}function FQ(){FQ=C,nLZ=X7((q5(),Um(xg(nIn,1),nfh,314,0,[nLJ,nLQ,nLY])))}function FJ(){FJ=C,nL3=X7((q_(),Um(xg(nIt,1),nfh,337,0,[nL1,nL2,nL0])))}function FY(){FY=C,nNa=X7((UK(),Um(xg(nIr,1),nfh,450,0,[nNr,nNi,nNc])))}function FZ(){FZ=C,nLC=X7((GN(),Um(xg(nP6,1),nfh,361,0,[nLI,nLP,nLS])))}function F1(){F1=C,nNV=X7((BL(),Um(xg(nIf,1),nfh,303,0,[nNX,nNW,nNU])))}function F0(){F0=C,nNz=X7((z0(),Um(xg(nIh,1),nfh,292,0,[nNq,nNG,nNH])))}function F2(){F2=C,n_v=X7((Wf(),Um(xg(nId,1),nfh,378,0,[n_d,n_g,n_p])))}function F3(){F3=C,n_Z=X7((zp(),Um(xg(nIj,1),nfh,375,0,[n_Q,n_J,n_Y])))}function F4(){F4=C,n_H=X7((U1(),Um(xg(nIm,1),nfh,339,0,[n__,n_F,n_B])))}function F5(){F5=C,n_V=X7((qF(),Um(xg(nIk,1),nfh,452,0,[n_W,n_U,n_X])))}function F6(){F6=C,nBr=X7((UE(),Um(xg(nIS,1),nfh,377,0,[nBe,nBi,nBt])))}function F8(){F8=C,n_6=X7((XJ(),Um(xg(nIT,1),nfh,336,0,[n_3,n_4,n_5])))}function F9(){F9=C,nBn=X7((G7(),Um(xg(nIM,1),nfh,338,0,[n_7,n_8,n_9])))}function F7(){F7=C,nBm=X7((qB(),Um(xg(nIC,1),nfh,454,0,[nBg,nBp,nBv])))}function _n(){_n=C,nqr=X7((V0(),Um(xg(nIW,1),nfh,442,0,[nqi,nqt,nqe])))}function _t(){_t=C,nqf=X7((XX(),Um(xg(nIQ,1),nfh,380,0,[nqo,nqs,nqh])))}function _e(){_e=C,nqQ=X7((VZ(),Um(xg(nI1,1),nfh,381,0,[nqW,nqV,nqX])))}function _i(){_i=C,nqU=X7((zg(),Um(xg(nIY,1),nfh,293,0,[nqG,nqz,nqq])))}function _r(){_r=C,nGP=X7((V1(),Um(xg(nI3,1),nfh,437,0,[nGT,nGM,nGS])))}function _c(){_c=C,nX5=X7((WL(),Um(xg(nCw,1),nfh,334,0,[nX3,nX2,nX4])))}function _a(){_a=C,nXD=X7((HH(),Um(xg(nCf,1),nfh,272,0,[nXL,nXN,nXx])))}function _u(n,t){return n.o||(n.o=new _D((nsZ(),nVA),nCq,n,0)),QF(n.o,t)}function _o(n){return n.g||(n.g=new a2),n.g.c||(n.g.c=new bG(n)),n.g.c}function _s(n,t,e){var i,r;if(null!=e)for(i=0;i<t;++i)r=e[i],n.fi(i,r)}function _h(n,t,e,i){var r;return function(n,t,e,i,r){var c,a;if(c=VK(Di(t[0],nlw),Di(i[0],nlw)),n[0]=CZ(c),c=OK(c,32),e>=r){for(a=1;a<r;a++)c=VK(c,VK(Di(t[a],nlw),Di(i[a],nlw))),n[a]=CZ(c),c=OK(c,32);for(;a<e;a++)c=VK(c,Di(t[a],nlw)),n[a]=CZ(c),c=OK(c,32)}else{for(a=1;a<e;a++)c=VK(c,VK(Di(t[a],nlw),Di(i[a],nlw))),n[a]=CZ(c),c=OK(c,32);for(;a<r;a++)c=VK(c,Di(i[a],nlw)),n[a]=CZ(c),c=OK(c,32)}0!=WM(c,0)&&(n[a]=CZ(c))}(r=_f(nYL,nfH,25,t+1,15,1),n,t,e,i),r}function _f(n,t,e,i,r,c){var a;return a=Zi(r,i),10!=r&&Um(xg(n,c),t,e,r,a),a}function _l(n,t,e){Im(n.b,65),Im(n.b,65),Im(n.b,65),HR(n.a,new P0(e,t,n))}function _b(n,t,e){if(n<0||t>e||t<n)throw new gV(nlB+n+nlq+t+nl$+e).e}function _w(n){if(!n)throw new gg("Unable to add element to queue").e}function _d(n){n?(this.c=n,this.b=null):(this.c=null,this.b=new wn)}function _g(n,t){mL.call(this,n,t),this.a=_f(nMD,nh7,436,2,0,1),this.b=!0}function _p(n){U_.call(this,n,0),MN(this),this.d.b=this.d,this.d.a=this.d}function _v(n){var t;return 0==(t=n.b).b?null:Im(J7(t,0),188).b}function _m(n,t){var e;return(e=new H).c=!0,e.d=t.dd(),nsl(n,t.cd(),e)}function _y(n,t,e){var i;i=n.b[e.c.p][e.p],i.b+=t.b,i.c+=t.c,i.a+=t.a,++i.a}function _k(n,t){var e,i;return e=n.a-t.a,i=n.b-t.b,nTv.Math.sqrt(e*e+i*i)}function _j(){_j=C,nLX=new ym("QUADRATIC",0),nLW=new ym("SCANLINE",1)}function _E(){_E=C,nBu=Ob(Cg(new Rf,(ntI(),nAd),(nhs(),n$P)),nAm,n$V)}function _T(n){MR(!!n.c),D3(n.e,n),n.c.Qb(),n.c=null,n.b=Uh(n),St(n.e,n)}function _M(n){return D3(n.c.a.e,n),MK(n.b!=n.c.a.d),n.a=n.b,n.b=n.b.a,n.a}function _S(n){var t;return n.a||-1==n.b||(t=n.c.Tg(),n.a=Hm(t,n.b)),n.a}function _P(n,t){return!(n.hi()&&n.Hc(t))&&(n.Yh(t),!0)}function _I(n,t){return Nk(t,"Horizontal alignment cannot be null"),n.b=t,n}function _C(n,t,e){var i;return nhh(),i=nsX(n,t),e&&i&&nYP&&Nn(nYP,n)&&(i=null),i}function _O(n,t,e){var i;for(i=n.Kc();i.Ob();)naN(Im(i.Pb(),37),t,e)}function _A(n,t){var e;for(e=t.Kc();e.Ob();)naY(n,Im(e.Pb(),37),0,0)}function _$(n,t,e){var i;n.d[t.g]=e,(i=n.g.c)[t.g]=nTv.Math.max(i[t.g],e+1)}function _L(n,t){var e,i,r;return r=n.r,i=n.d,(e=nob(n,t,!0)).b!=r||e.a!=i}function _N(n,t){return Au(n.e.e,t)||JR(n.e,t,new JB(t)),Im(BX(n.e,t),113)}function _x(n,t,e,i){return $x(n),$x(t),$x(e),$x(i),new Ag(n,t,new q)}function _D(n,t,e,i){this.rj(),this.a=t,this.b=n,this.c=new O8(this,t,e,i)}function _R(n,t,e,i,r,c){Rl.call(this,t,i,r,c),this.c=n,this.b=e}function _K(n,t,e,i,r,c){Rl.call(this,t,i,r,c),this.c=n,this.a=e}function _F(n,t,e){var i;return(i=nrR(n.b,t))?noI(BI(n,i),e):null}function __(n,t){var e;return(e=n.Yg(t))>=0?n._g(e,!0,!0):niO(n,t,!0)}function _B(){_B=C,nH4=Jd(Jd(mu(new Rf,(Zx(),nHe)),(neO(),nHf)),nHu)}function _H(n){return(A1(n),Ti(n,198))?Im(n,198):new hf(n)}function _q(){var n,t,e,i;_q=C,nzv=new au,nzy=new ao,n=(nha(),nU7),t=nzv,e=nUH,i=nzy,$1(),nzm=new d4(Um(xg(nE1,1),nh7,42,0,[(Yq(n,t),new vw(n,t)),(Yq(e,i),new vw(e,i))]))}function _G(){_G=C,nqc=new ki("LEAF_NUMBER",0),nqa=new ki("NODE_SIZE",1)}function _z(n){n.a=_f(nYL,nfH,25,n.b+1,15,1),n.c=_f(nYL,nfH,25,n.b,15,1),n.d=0}function _U(n,t){if(null==n.g||t>=n.i)throw new jX(t,n.i).e;return n.g[t]}function _X(n,t,e){if(XB(n,e),null!=e&&!n.wj(e))throw(new wj).e;return e}function _W(n){var t;if(n.Ek())for(t=n.i-1;t>=0;--t)HX(n,t);return RD(n)}function _V(n,t,e,i){LQ(),i=i||nMj,function n(t,e,i,r,c,a){var u,o,s;if(r-i<7){!function(n,t,e,i){var r,c,a;for(r=t+1;r<e;++r)for(c=r;c>t&&i.ue(n[c-1],n[c])>0;--c)a=n[c],$t(n,c,n[c-1]),$t(n,c-1,a)}(e,i,r,a);return}if(s=(o=i+c)+((u=r+c)-o>>1),n(e,t,o,s,-c,a),n(e,t,s,u,-c,a),0>=a.ue(t[s-1],t[s])){for(;i<r;)$t(e,i++,t[o++]);return}!function(n,t,e,i,r,c,a,u){var o;for(o=e;c<a;)o>=i||t<e&&0>=u.ue(n[t],n[o])?$t(r,c++,n[t++]):$t(r,c++,n[o++])}(t,o,s,u,e,i,r,a)}(n.slice(t,e),n,t,e,-t,i)}function _Q(n,t,e,i,r){return t<0?niO(n,e,i):Im(e,66).Nj().Pj(n,n.yh(),t,i,r)}function _J(n,t){if(t.a)throw new d7(nlJ).e;Av(n.a,t),t.a=n,n.j||(n.j=t)}function _Y(n,t){jN.call(this,t.rd(),-16449&t.qd()),$x(n),this.a=n,this.c=t}function _Z(n,t){var e,i;return i=t/n.c.Hd().gc()|0,e=t%n.c.Hd().gc(),FF(n,i,e)}function _1(){_1=C,nSZ=new mQ(nbp,0),nSY=new mQ(nbw,1),nS1=new mQ(nbv,2)}function _0(){_0=C,nMW=new mP("All",0),nMV=new Ev,nMQ=new EQ,nMJ=new Em}function _2(){_2=C,nMY=X7((_0(),Um(xg(nMR,1),nfh,297,0,[nMW,nMV,nMQ,nMJ])))}function _3(){_3=C,nAO=X7((Uj(),Um(xg(nPG,1),nfh,405,0,[nAS,nAC,nAP,nAI])))}function _4(){_4=C,nPM=X7((zZ(),Um(xg(nSv,1),nfh,406,0,[nPT,nPk,nPj,nPE])))}function _5(){_5=C,nPO=X7((Yr(),Um(xg(nSm,1),nfh,323,0,[nPP,nPS,nPI,nPC])))}function _6(){_6=C,nC5=X7((Yc(),Um(xg(nPN,1),nfh,394,0,[nC2,nC0,nC3,nC4])))}function _8(){_8=C,nHc=X7((Zx(),Um(xg(nIB,1),nfh,393,0,[nHt,nHe,nHi,nHr])))}function _9(){_9=C,nLe=X7((Uy(),Um(xg(nP2,1),nfh,360,0,[nLt,n$7,nLn,n$9])))}function _7(){_7=C,nqH=X7((Y6(),Um(xg(nIJ,1),nfh,340,0,[nqB,nqF,nq_,nqK])))}function Bn(){Bn=C,nLd=X7((Uk(),Um(xg(nP4,1),nfh,411,0,[nLf,nLl,nLb,nLw])))}function Bt(){Bt=C,n_E=X7((Yp(),Um(xg(nIg,1),nfh,197,0,[n_k,n_j,n_y,n_m])))}function Be(){Be=C,nVv=X7((XU(),Um(xg(nCM,1),nfh,396,0,[nVd,nVg,nVw,nVp])))}function Bi(){Bi=C,nWn=X7((ZR(),Um(xg(nCd,1),nfh,285,0,[nX7,nX6,nX8,nX9])))}function Br(){Br=C,nXB=X7((VY(),Um(xg(nCl,1),nfh,218,0,[nX_,nXK,nXR,nXF])))}function Bc(){Bc=C,nVb=X7((QI(),Um(xg(nCE,1),nfh,311,0,[nVl,nVs,nVf,nVh])))}function Ba(){Ba=C,nW9=X7((QJ(),Um(xg(nCk,1),nfh,374,0,[nW6,nW8,nW5,nW4])))}function Bu(){Bu=C,noc(),nJ8=nlc,nJ6=nla,nJ7=new h_(nlc),nJ9=new h_(nla)}function Bo(){Bo=C,nNd=new yS(nwY,0),nNw=new yS("IMPROVE_STRAIGHTNESS",1)}function Bs(n,t){return 10!=BJ(t)&&Um(Xp(t),t.hm,t.__elementTypeId$,BJ(t),n),n}function Bh(n,t){var e;return -1!=(e=Bb(n,t,0))&&(Ff(n,e),!0)}function Bf(n,t){var e;return(e=Im(Fv(n.e,t),387))?(I3(e),e.e):null}function Bl(n){var t;return j4(n)&&!isNaN(t=0-n)?t:zA(Uq(n))}function Bb(n,t,e){for(;e<n.c.length;++e)if($5(t,n.c[e]))return e;return -1}function Bw(n,t,e){var i;return $R(n),(i=new nu).a=t,n.a.Nb(new mx(i,e)),i.a}function Bd(n){var t;return t=Im(CA(n.j,0),11),Im(ntP(t,(nhu(),nxE)),11)}function Bg(n){var t;if(!Gf(n))throw(new wO).e;return n.e=1,t=n.d,n.d=null,t}function Bp(n,t){var e;this.f=n,this.b=t,e=Im($a(n.b,t),283),this.c=e?e.b:null}function Bv(){In(),this.b=new wt,this.f=new wt,this.g=new wt,this.e=new wt}function Bm(n,t){this.a=_f(nPV,nw9,10,n.a.c.length,0,1),Jx(n.a,this.a),this.b=t}function By(n){var t;for(t=n.p+1;t<n.c.a.c.length;++t)--Im(CA(n.c.a,t),10).p}function Bk(n){var t;null!=(t=n.Ai())&&-1!=n.d&&Im(t,92).Ng(n),n.i&&n.i.Fi()}function Bj(n){E6(this),this.g=n?Nm(n,n.$d()):null,this.f=n,Lz(this),this._d()}function BE(n,t,e,i,r,c,a){qY.call(this,t,i,r,c,a),this.c=n,this.b=e}function BT(n,t,e,i,r){return $x(n),$x(t),$x(e),$x(i),$x(r),new Ag(n,t,i)}function BM(n,t){if(t<0)throw new gu(nma+t).e;return RO(n,t+1),CA(n.j,t)}function BS(n,t,e,i){if(!n)throw new gd(naT(t,Um(xg(nEX,1),nhA,1,5,[e,i]))).e}function BP(n,t){return $5(t,CA(n.f,0))||$5(t,CA(n.f,1))||$5(t,CA(n.f,2))}function BI(n,t){var e,i;return(i=(e=Im(t,675)).Oh())||e.Rh(i=new ja(n,t)),i}function BC(n,t){var e,i;return(i=(e=Im(t,677)).pk())||e.tk(i=new DA(n,t)),i}function BO(n){return!n.b&&(n.b=new Op(n,nQd,n),n.a||(n.a=new SD(n,n))),n.b}function BA(){BA=C,nAs=new m1("XY",0),nAo=new m1("X",1),nAh=new m1("Y",2)}function B$(){B$=C,nS4=new mJ("TOP",0),nS3=new mJ(nbw,1),nS2=new mJ(nby,2)}function BL(){BL=C,nNX=new yA(nwY,0),nNW=new yA("TOP",1),nNU=new yA(nby,2)}function BN(){BN=C,n_q=new y_("INPUT_ORDER",0),n_G=new y_("PORT_DEGREE",1)}function Bx(){Bx=C,nTz=Ez(nf4,nf4,524287),nTU=Ez(0,0,nf6),nTX=K1(1),K1(2),nTW=K1(0)}function BD(n,t,e){n.a.c=_f(nEX,nhA,1,0,5,1),function(n,t,e){var i,r,c,a,u,o,s,h,f;n.c=0,n.b=0,i=2*t.c.a.c.length+1;n:for(s=e.Kc();s.Ob();){if(a=(o=Im(s.Pb(),11)).j==(nsR(),nW$)||o.j==nWV,f=0,a){if(!(h=Im(ntP(o,(nhu(),nxA)),10)))continue;f+=function(n,t,e,i){var r,c,a,u,o;for(r=!1,c=!1,u=new h1(i.j);u.a<u.c.c.length;)jf(ntP(a=Im(De(u),11),(nhu(),nxE)))===jf(e)&&(0==a.g.c.length?0==a.e.c.length||(r=!0):c=!0);return o=0,r&&r^c?o=e.j==(nsR(),nW$)?-n.e[i.c.p][i.p]:t-n.e[i.c.p][i.p]:c&&r^c?o=n.e[i.c.p][i.p]+1:r&&c&&(o=e.j==(nsR(),nW$)?0:t/2),o}(n,i,o,h)}else{for(u=new h1(o.g);u.a<u.c.c.length;){if((r=Im(De(u),17).d).i.c==t.c){IE(n.a,o);continue n}f+=n.g[r.p]}for(c=new h1(o.e);c.a<c.c.c.length;){if((r=Im(De(c),17).c).i.c==t.c){IE(n.a,o);continue n}f-=n.g[r.p]}}o.e.c.length+o.g.c.length>0?(n.f[o.p]=f/(o.e.c.length+o.g.c.length),n.c=nTv.Math.min(n.c,n.f[o.p]),n.b=nTv.Math.max(n.b,n.f[o.p])):a&&(n.f[o.p]=f)}}(n,t,e),0==n.a.c.length||function(n,t){var e,i,r,c,a,u,o,s,h,f,l;for(s=n.e[t.c.p][t.p]+1,o=t.c.a.c.length+1,u=new h1(n.a);u.a<u.c.c.length;){for(a=Im(De(u),11),f=0,c=0,r=AS(qO(Um(xg(nEJ,1),nhA,20,0,[new fK(a),new f_(a)])));nrc(r);)(i=Im(K4(r),11)).i.c==t.c&&(f+=(l=i.i,n.e[l.c.p][l.p]+1),++c);e=f/c,(h=a.j)==(nsR(),nWA)?e<s?n.f[a.p]=n.c-e:n.f[a.p]=n.b+(o-e):h==nWJ&&(e<s?n.f[a.p]=n.b+e:n.f[a.p]=n.c-(o-e))}}(n,t)}function BR(n){var t,e;return t=_f(nY$,nfS,25,e=n.length,15,1),AD(n,0,e,t,0),t}function BK(n){var t;return n.dh()||(t=AW(n.Tg())-n.Ah(),n.ph().bk(t)),n.Pg()}function BF(n){var t;return null==(t=HJ(zF(n,32)))&&(Jp(n),t=HJ(zF(n,32))),t}function B_(n,t){var e;return(e=Qj(n.d,t))>=0?Yo(n,e,!0,!0):niO(n,t,!0)}function BB(n,t){var e,i;return v6(),e=RM(n),i=RM(t),!!e&&!!i&&!Yt(e.k,i.k)}function BH(n){(this.q?this.q:(LV(),LV(),nMm)).Ac(n.q?n.q:(LV(),LV(),nMm))}function Bq(n,t,e){var i;return i=n.g[t],Ts(n,t,n.oi(t,e)),n.gi(t,e,i),n.ci(),i}function BG(n,t){var e;return(e=n.Xc(t))>=0&&(n.$c(e),!0)}function Bz(n){var t;return n.d!=n.r&&(t=Z9(n),n.e=!!t&&t.Cj()==nk9,n.d=t),n.e}function BU(n,t){var e;for(A1(n),A1(t),e=!1;t.Ob();)e|=n.Fc(t.Pb());return e}function BX(n,t){var e;return(e=Im($a(n.e,t),387))?(Tr(n,e),e.e):null}function BW(n){var t,e;return(t=n/60|0,0==(e=n%60))?""+t:""+t+":"+e}function BV(n,t){var e;return V$(n),e=new PP(new FM(t,n.a)),new CL(n,e)}function BQ(n,t){var e=n.a[t],i=(UF(),nTq)[typeof e];return i?i(e):Wu(typeof e)}function BJ(n){return null==n.__elementTypeCategory$?10:n.__elementTypeCategory$}function BY(n){var t;return null!=(t=0==n.b.c.length?null:CA(n.b,0))&&Gy(n,0),t}function BZ(n,t){for(;t[0]<n.length&&jZ(" \r\n",ntd($9(n,t[0])))>=0;)++t[0]}function B1(n,t){this.e=t,this.a=z8(n),this.a<54?this.f=D8(n):this.c=JK(n)}function B0(n,t,e,i){nhh(),b8.call(this,26),this.c=n,this.a=t,this.d=e,this.b=i}function B2(n,t,e){var i,r;for(r=0,i=10;r<e-1;r++)t<i&&(n.a+="0"),i*=10;n.a+=t}function B3(n,t){var e;for(++n.d,++n.c[t],e=t+1;e<n.a.length;)++n.a[e],e+=e&-e}function B4(n){var t,e;return t=n+128,(e=(Cm(),nTY)[t])||(e=nTY[t]=new hK(n)),e}function B5(n,t){var e;return $x(t),function(n,t){if(!n)throw new gd(function(n,t){var e,i,r,c;for(n=null==n?nhN:($x(n),n),e=new gW,c=0,i=0;i<t.length&&-1!=(r=n.indexOf("%s",c));)jP(e,n.substr(c,r-c)),jS(e,t[i++]),c=r+2;if(jP(e,n.substr(c)),i<t.length){for(e.a+=" [",jS(e,t[i++]);i<t.length;)e.a+=nhC,jS(e,t[i++]);e.a+="]"}return e.a}("Enum constant undefined: %s",t)).e}(!!(e=n[":"+t]),Um(xg(nEX,1),nhA,1,5,[t])),e}function B6(n){var t;for(++n.a,t=n.c.a.length;n.a<t;++n.a)if(n.c.b[n.a])return}function B8(n,t){return 0==t.e||0==n.e?nMb:(niW(),function n(t,e){var i,r,c,a,u,o,s,h,f;return(niW(),e.d>t.d&&(o=t,t=e,e=o),e.d<63)?function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;return(u=(i=n.d)+(c=t.d),o=n.e!=t.e?-1:1,2==u)?(l=CZ(h=VF(Di(n.a[0],nlw),Di(t.a[0],nlw))),0==(f=CZ(OF(h,32)))?new F_(o,l):new As(o,2,Um(xg(nYL,1),nfH,25,15,[l,f]))):(e=n.a,r=t.a,b=a=_f(nYL,nfH,25,u,15,1),0!=i&&0!=c&&(1==i?b[c]=Ym(b,r,c,e[0]):1==c?b[i]=Ym(b,e,i,r[0]):function(n,t,e,i,r){var c,a,u,o;if(jf(n)===jf(t)&&i==r){nuu(n,i,e);return}for(u=0;u<i;u++){for(o=0,a=0,c=n[u];o<r;o++)a=VK(VK(VF(Di(c,nlw),Di(t[o],nlw)),Di(e[u+o],nlw)),Di(CZ(a),nlw)),e[u+o]=CZ(a),a=OF(a,32);e[u+r]=CZ(a)}}(e,r,b,i,c)),DF(s=new As(o,u,a)),s)}(t,e):(u=(-2&t.d)<<4,h=K3(t,u),f=K3(e,u),r=nuZ(t,K2(h,u)),c=nuZ(e,K2(f,u)),s=n(h,f),i=n(r,c),a=K2(a=noS(noS(a=n(nuZ(h,r),nuZ(c,f)),s),i),u),noS(noS(s=K2(s,u<<1),a),i))}(n,t))}function B9(){B9=C,nAL=new tw,nAN=new tl,nAA=new tm,nA$=new ty,nAx=new tk}function B7(){B7=C,nSI=new mX("BY_SIZE",0),nSC=new mX("BY_SIZE_AND_SHAPE",1)}function Hn(){Hn=C,nOS=new mZ("EADES",0),nOP=new mZ("FRUCHTERMAN_REINGOLD",1)}function Ht(){Ht=C,nNn=new yE("READING_DIRECTION",0),nNt=new yE("ROTATION",1)}function He(){He=C,nL7=X7((YU(),Um(xg(nIe,1),nfh,335,0,[nL5,nL4,nL8,nL9,nL6])))}function Hi(){Hi=C,n_C=X7((YL(),Um(xg(nIp,1),nfh,315,0,[n_I,n_M,n_S,n_T,n_P])))}function Hr(){Hr=C,nLk=X7((nnW(),Um(xg(nP5,1),nfh,363,0,[nLp,nLm,nLy,nLv,nLg])))}function Hc(){Hc=C,nxY=X7((VJ(),Um(xg(nIb,1),nfh,163,0,[nxJ,nxX,nxW,nxV,nxQ])))}function Ha(){Ha=C,nG_=X7((nt7(),Um(xg(nI8,1),nfh,316,0,[nGx,nGD,nGF,nGR,nGK])))}function Hu(){Hu=C,nzP=X7((JH(),Um(xg(nCr,1),nfh,175,0,[nzM,nzT,nzj,nzS,nzE])))}function Ho(){Ho=C,nGE=X7((ncr(),Um(xg(nI2,1),nfh,355,0,[nGm,nGv,nGk,nGy,nGj])))}function Hs(){Hs=C,nAy=X7((ntI(),Um(xg(nPF,1),nfh,356,0,[nAd,nAg,nAp,nAv,nAm])))}function Hh(){Hh=C,nX$=X7((W2(),Um(xg(nCh,1),nfh,103,0,[nXO,nXC,nXI,nXP,nXA])))}function Hf(){Hf=C,nWg=X7((Jq(),Um(xg(nCp,1),nfh,249,0,[nWb,nWd,nWf,nWl,nWw])))}function Hl(){Hl=C,nWY=X7((nsR(),Um(xg(nCy,1),nwZ,61,0,[nWQ,nW$,nWA,nWV,nWJ])))}function Hb(n,t){var e;return(e=Im($a(n.a,t),134))||(e=new nJ,$J(n.a,t,e)),e}function Hw(n){var t;return!!(t=Im(ntP(n,(nhu(),nN0)),305))&&t.a==n}function Hd(n){var t;return!!(t=Im(ntP(n,(nhu(),nN0)),305))&&t.i==n}function Hg(n,t){return $x(t),OX(n),!!n.d.Ob()&&(t.td(n.d.Pb()),!0)}function Hp(n){return WM(n,nhM)>0?nhM:0>WM(n,nfp)?nfp:CZ(n)}function Hv(n){return n<3?(qz(n,nfu),n+1):n<nfo?NU(n/.75+1):nhM}function Hm(n,t){var e;return null==n.i&&nuq(n),e=n.i,t>=0&&t<e.length?e[t]:null}function Hy(n,t,e){var i;if(null==t)throw(new wS).e;return i=N5(n,t),function(n,t,e){if(e){var i=e.ee();n.a[t]=i(e)}else delete n.a[t]}(n,t,e),i}function Hk(n){return n.a>=-.01&&n.a<=nbE&&(n.a=0),n.b>=-.01&&n.b<=nbE&&(n.b=0),n}function Hj(n,t){return t==(Pz(),Pz(),nMC)?n.toLocaleLowerCase():n.toLowerCase()}function HE(n){return((2&n.i)!=0?"interface ":(1&n.i)!=0?"":"class ")+(Su(n),n.o)}function HT(n){var t;t=new dS,_P((n.q||(n.q=new An(nQg,n,11,10)),n.q),t)}function HM(n){this.g=n,this.f=new wn,this.a=nTv.Math.min(this.g.c.c,this.g.d.c)}function HS(n){this.b=new wn,this.a=new wn,this.c=new wn,this.d=new wn,this.e=n}function HP(n,t){this.a=new wt,this.e=new wt,this.b=(Wf(),n_p),this.c=n,this.b=t}function HI(n,t,e){SY.call(this),H_(this),this.a=n,this.c=e,this.b=t.d,this.f=t.e}function HC(n){this.d=n,this.c=n.c.vc().Kc(),this.b=null,this.a=null,this.e=(dY(),nTA)}function HO(n){if(n<0)throw new gd("Illegal Capacity: "+n).e;this.g=this.ri(n)}function HA(n){var t;MR(!!n.c),t=n.c.a,HK(n.d,n.c),n.b==n.c?n.b=t:--n.a,n.c=null}function H$(n,t){var e;return V$(n),e=new LB(n,n.a.rd(),4|n.a.qd(),t),new CL(n,e)}function HL(n,t){var e;for(e=n.Kc();e.Ob();)UU(Im(e.Pb(),70),(nhu(),nxd),t)}function HN(n,t,e,i,r,c){var a;xE(a=K6(i),r),xj(a,c),niP(n.a,i,new P1(a,t,e.f))}function Hx(n,t){var e;if(!(e=ncp(n.Tg(),t)))throw new gd(nyn+t+nyi).e;return e}function HD(n,t){var e;for(e=n;xt(e);)if((e=xt(e))==t)return!0;return!1}function HR(n,t){var e,i,r,c;for($x(t),i=n.c,r=0,c=i.length;r<c;++r)e=i[r],t.td(e)}function HK(n,t){var e;return e=t.c,t.a.b=t.b,t.b.a=t.a,t.a=t.b=null,t.c=null,--n.b,e}function HF(n,t){return!!G0(n,t,CZ(VF(nfr,$4(CZ(VF(null==t?0:Xg(t),nfc)),15))))}function H_(n){n.b=(_1(),nSY),n.f=(B$(),nS3),n.d=(qz(2,nfs),new Fq(2)),n.e=new ps}function HB(){HB=C,nSW=new mV("BEGIN",0),nSV=new mV(nbw,1),nSQ=new mV("END",2)}function HH(){HH=C,nXL=new kk(nbw,0),nXN=new kk("HEAD",1),nXx=new kk("TAIL",2)}function Hq(){Hq=C,nWE=X7((nn2(),Um(xg(nCv,1),nfh,98,0,[nWj,nWk,nWy,nWp,nWm,nWv])))}function HG(){HG=C,nSl=nSb=(HB(),Um(xg(nSf,1),nfh,232,0,[nSW,nSV,nSQ])).length}function Hz(n){this.b=(A1(n),new PB(n)),this.a=new wn,this.d=new wn,this.e=new ps}function HU(n){var t;return n.w?n.w:((t=n.Db>>16!=6?null:Im(ni9(n),235))&&!t.kh()&&(n.w=t),t)}function HX(n,t){if(null==n.g||t>=n.i)throw new jX(t,n.i).e;return n.li(t,n.g[t])}function HW(n,t){var e,i,r,c;for(i=n.d,r=0,c=i.length;r<c;++r)e=i[r],Tu(n.g,e).a=t}function HV(n,t){var e;for(e=Jz(n,0);e.b!=e.d.c;)S9(Im(RP(e),8),t);return n}function HQ(n){var t;return D3(n.e,n),MK(n.b),n.c=n.a,t=Im(n.a.Pb(),42),n.b=Uh(n),t}function HJ(n){var t;return Cr(null==n||Array.isArray(n)&&!((t=BJ(n))>=14&&t<=16)),n}function HY(n,t,e){var i=function(){return n.apply(i,arguments)};return t.apply(i,e),i}function HZ(n,t,e){var i,r;i=t;do r=gy(n.p[i.p])+e,n.p[i.p]=r,i=n.a[i.p];while(i!=t)}function H1(n,t){var e,i,r,c,a;i=n.a,r=null,a=n.a,n.a=t,(4&n.Db)!=0&&(1&n.Db)==0&&(c=new O9(n,1,5,a,n.a),r?nnQ(r,c):r=c),e=r,i==t||n.e||(e=nsg(n,t,e)),e&&e.Fi()}function H0(n,t){return Ex(),qR(nfg),nTv.Math.abs(n-t)<=nfg||n==t||isNaN(n)&&isNaN(t)}function H2(n,t){return Ex(),qR(nfg),nTv.Math.abs(n-t)<=nfg||n==t||isNaN(n)&&isNaN(t)}function H3(n,t){var e;return(e=G1(n,t,CZ(VF(nfr,$4(CZ(VF(null==t?0:Xg(t),nfc)),15)))))?e.i:null}function H4(){H4=C,nAJ=X7((ntY(),Um(xg(nPQ,1),nfh,267,0,[nAV,nAW,nAU,nAQ,nAX,nAz])))}function H5(){H5=C,nUn=X7((nnF(),Um(xg(nCs,1),nfh,291,0,[nz7,nz9,nz8,nz5,nz4,nz6])))}function H6(){H6=C,nzz=X7((Yv(),Um(xg(nCo,1),nfh,248,0,[nzF,nzH,nzq,nzG,nz_,nzB])))}function H8(){H8=C,nLU=X7((neC(),Um(xg(nP9,1),nfh,227,0,[nLH,nLG,nLB,nLq,nLz,nL_])))}function H9(){H9=C,nNO=X7((ntW(),Um(xg(nIo,1),nfh,275,0,[nNI,nNM,nNC,nNP,nNS,nNT])))}function H7(){H7=C,nNE=X7((nnS(),Um(xg(nIu,1),nfh,274,0,[nNy,nNm,nNj,nNv,nNk,nNp])))}function qn(){qn=C,n_w=X7((ntt(),Um(xg(nIw,1),nfh,313,0,[n_l,n_h,n_o,n_s,n_b,n_f])))}function qt(){qt=C,nNb=X7((nt0(),Um(xg(nIc,1),nfh,276,0,[nNo,nNu,nNh,nNs,nNl,nNf])))}function qe(){qe=C,nHl=X7((neO(),Um(xg(nIG,1),nfh,327,0,[nHf,nHu,nHs,nHo,nHh,nHa])))}function qi(){qi=C,nWO=X7((nis(),Um(xg(nCm,1),nfh,273,0,[nWI,nWS,nWP,nWM,nWT,nWC])))}function qr(){qr=C,nXW=X7((ntg(),Um(xg(nCb,1),nfh,312,0,[nXU,nXG,nXX,nXH,nXz,nXq])))}function qc(n,t){var e;e=n.a,n.a=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new R2(n,0,e,n.a))}function qa(n,t){var e;e=n.b,n.b=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new R2(n,1,e,n.b))}function qu(n,t){var e;e=n.b,n.b=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new R2(n,3,e,n.b))}function qo(n,t){var e;e=n.f,n.f=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new R2(n,3,e,n.f))}function qs(n,t){var e;e=n.g,n.g=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new R2(n,4,e,n.g))}function qh(n,t){var e;e=n.i,n.i=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new R2(n,5,e,n.i))}function qf(n,t){var e;e=n.j,n.j=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new R2(n,6,e,n.j))}function ql(n,t){var e;e=n.j,n.j=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new R2(n,1,e,n.j))}function qb(n,t){var e;e=n.c,n.c=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new R2(n,4,e,n.c))}function qw(n,t){var e;e=n.k,n.k=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new R2(n,2,e,n.k))}function qd(n,t){var e;e=n.d,n.d=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new R3(n,2,e,n.d))}function qg(n,t){var e;e=n.s,n.s=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new R3(n,4,e,n.s))}function qp(n,t){var e;e=n.t,n.t=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new R3(n,5,e,n.t))}function qv(n,t){var e;e=n.F,n.F=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,5,e,t))}function qm(n,t){var e;return(e=Im($a((mv(),nVZ),n),55))?e.xj(t):_f(nEX,nhA,1,t,5,1)}function qy(n,t){var e;return t in n.a&&(e=N5(n,t).he())?e.a:null}function qk(n,t,e){if(XB(n,e),!n.Bk()&&null!=e&&!n.wj(e))throw(new wj).e;return e}function qj(n,t){return n.n=t,n.n?(n.f=new wn,n.e=new wn):(n.f=null,n.e=null),n}function qE(n,t,e,i,r,c){var a;return qA(e,a=AZ(n,t)),a.i=r?8:0,a.f=i,a.e=r,a.g=c,a}function qT(n,t,e,i,r){this.d=t,this.k=i,this.f=r,this.o=-1,this.p=1,this.c=n,this.a=e}function qM(n,t,e,i,r){this.d=t,this.k=i,this.f=r,this.o=-1,this.p=2,this.c=n,this.a=e}function qS(n,t,e,i,r){this.d=t,this.k=i,this.f=r,this.o=-1,this.p=6,this.c=n,this.a=e}function qP(n,t,e,i,r){this.d=t,this.k=i,this.f=r,this.o=-1,this.p=7,this.c=n,this.a=e}function qI(n,t,e,i,r){this.d=t,this.j=i,this.e=r,this.o=-1,this.p=4,this.c=n,this.a=e}function qC(n,t){var e,i,r;for(i=0,r=t.length;i<r;++i)e=t[i],_J(n.a,e);return n}function qO(n){var t,e;for(t=0,e=n.length;t<e;++t)A1(n[t]);return new jz(n)}function qA(n,t){if(n){t.n=n;var e=t.qe()?null:nTy[t.n];if(!e){nTy[n]=[t];return}e.gm=t}}function q$(n,t,e){var i,r;for(r=t.Kc();r.Ob();)i=Im(r.Pb(),79),Av(n,Im(e.Kb(i),33))}function qL(n,t){var e,i;for(e=0,i=t.length;e<i;++e)KL(n,t[e],n.c.b,n.c)}function qN(n,t){n.b=nTv.Math.max(n.b,t.d),n.e+=t.r+(0==n.a.c.length?0:n.c),IE(n.a,t)}function qx(n){var t,e,i,r,c;MR(n.c>=0),0>(t=n.d,e=n.c,(r=t.a.length-1,i=e-t.b&r,c=t.c-e&r,Mx(i<(t.c-t.b&r)),i>=c)?(function(n,t){var e,i;for(e=n.a.length-1,n.c=n.c-1&e;t!=n.c;)i=t+1&e,$t(n.a,t,n.a[i]),t=i;$t(n.a,n.c,null)}(t,e),-1):(function(n,t){var e,i;for(e=n.a.length-1;t!=n.b;)i=t-1&e,$t(n.a,t,n.a[i]),t=i;$t(n.a,n.b,null),n.b=n.b+1&e}(t,e),1))&&(n.a=n.a-1&n.d.a.length-1,n.b=n.d.c),n.c=-1}function qD(n){return n.a<54?n.f<0?-1:n.f>0?1:0:(n.c||(n.c=Wa(n.f)),n.c).e}function qR(n){if(!(n>=0))throw new gd("tolerance ("+n+") must be >= 0").e;return n}function qK(){return!nzk&&XA(nzk=new naj,Um(xg(nSa,1),nhA,130,0,[new sW])),nzk}function qF(){qF=C,n_W=new yB(nbj,0),n_U=new yB("INPUT",1),n_X=new yB("OUTPUT",2)}function q_(){q_=C,nL1=new yk("ARD",0),nL2=new yk("MSD",1),nL0=new yk("MANUAL",2)}function qB(){qB=C,nBg=new yX("BARYCENTER",0),nBp=new yX(ndd,1),nBv=new yX(ndg,2)}function qH(n,t){var e;if(e=n.gc(),t<0||t>e)throw new Pt(t,e).e;return new PS(n,t)}function qq(n,t){var e;return Ti(t,42)?n.c.Mc(t):(e=QF(n,t),Ja(n,t),e)}function qG(n,t,e){return Ww(n,t),GF(n,e),qg(n,0),qp(n,1),Vi(n,!0),Vn(n,!0),n}function qz(n,t){if(n<0)throw new gd(t+" cannot be negative but was: "+n).e;return n}function qU(n,t){var e,i;for(e=0,i=n.gc();e<i;++e)if($5(t,n.Xb(e)))return e;return -1}function qX(n){var t;for(t=n.c.Cc().Kc();t.Ob();)Im(t.Pb(),14).$b();n.c.$b(),n.d=0}function qW(n){var t,e;if(0==n)return 32;for(t=1,e=0;(t&n)==0;t<<=1)++e;return e}function qV(n){vZ(),this.g=new wt,this.f=new wt,this.b=new wt,this.c=new NK,this.i=n}function qQ(){this.f=new ps,this.d=new du,this.c=new ps,this.a=new wn,this.b=new wn}function qJ(n,t,e,i){this.rj(),this.a=t,this.b=n,this.c=null,this.c=new Pl(this,t,e,i)}function qY(n,t,e,i,r){this.d=n,this.n=t,this.g=e,this.o=i,this.p=-1,r||(this.o=-2-i-1)}function qZ(){Tw.call(this),this.n=-1,this.g=null,this.i=null,this.j=null,this.Bb|=nyp}function q1(){q1=C,nT2=Um(xg(nYL,1),nfH,25,15,[0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15])}function q0(){q0=C,nBs=Cg(Cg(Cg(new Rf,(ntI(),nAd),(nhs(),n$f)),nAg,n$D),nAp,n$x)}function q2(){q2=C,nBh=Cg(Cg(Cg(new Rf,(ntI(),nAd),(nhs(),n$f)),nAg,n$D),nAp,n$x)}function q3(){q3=C,nBb=Cg(Cg(Cg(new Rf,(ntI(),nAd),(nhs(),n$f)),nAg,n$D),nAp,n$x)}function q4(){q4=C,nBw=Ob(Cg(Cg(new Rf,(ntI(),nAp),(nhs(),n$F)),nAv,n$C),nAm,n$K)}function q5(){q5=C,nLJ=new yy("LAYER_SWEEP",0),nLQ=new yy(ndL,1),nLY=new yy(nwY,2)}function q6(n,t){var e;e=n.k,n.k=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,2,e,n.k))}function q8(n,t){var e;e=n.f,n.f=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,8,e,n.f))}function q9(n,t){var e;e=n.i,n.i=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,7,e,n.i))}function q7(n,t){var e;e=n.a,n.a=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,8,e,n.a))}function Gn(n,t){var e;e=n.b,n.b=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,0,e,n.b))}function Gt(n,t){var e;e=n.b,n.b=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,0,e,n.b))}function Ge(n,t){var e;e=n.c,n.c=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,1,e,n.c))}function Gi(n,t){var e;e=n.c,n.c=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,1,e,n.c))}function Gr(n,t){var e;e=n.c,n.c=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,4,e,n.c))}function Gc(n,t){var e;e=n.d,n.d=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,1,e,n.d))}function Ga(n,t){var e;e=n.D,n.D=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,2,e,n.D))}function Gu(n,t){n.r>0&&n.c<n.r&&(n.c+=t,n.i&&n.i.d>0&&0!=n.g&&Gu(n.i,t/n.r*n.i.d))}function Go(n,t){return ncD(n.e,t)?(mp(),Bz(t)?new Cb(t,n):new jr(t,n)):new ju(t,n)}function Gs(n,t){var e;return(e=G0(n.a,t,CZ(VF(nfr,$4(CZ(VF(null==t?0:Xg(t),nfc)),15)))))?e.g:null}function Gh(n){var t;return(t=U0(n=nTv.Math.max(n,2)),n>t)?(t<<=1)>0?t:nfo:t}function Gf(n){switch(TG(3!=n.e),n.e){case 2:return!1;case 0:return!0}return n.e=3,n.d=n.Yb(),2!=n.e&&(n.e=0,!0)}function Gl(n,t){var e;return!!Ti(t,8)&&(e=Im(t,8),n.a==e.a&&n.b==e.b)}function Gb(n,t,e){var i,r;return r=t>>5,i=31&t,Di(OF(n.n[e][r],CZ(OR(i,1))),3)}function Gw(n,t){var e;e=n.b,n.b=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,21,e,n.b))}function Gd(n,t){var e;e=n.d,n.d=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,11,e,n.d))}function Gg(n,t){var e;e=n.j,n.j=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,13,e,n.j))}function Gp(n,t,e){var i,r,c;for(c=n.a.length-1,r=n.b,i=0;i<e;r=r+1&c,++i)$t(t,i,n.a[r])}function Gv(n,t){var e;return $x(t),e=t.g,!n.b[e]&&($t(n.b,e,t),++n.c,!0)}function Gm(n,t){var e;return!((e=null==t?-1:Bb(n.b,t,0))<0)&&(Gy(n,e),!0)}function Gy(n,t){var e;e=Ff(n.b,n.b.c.length-1),t<n.b.c.length&&(KN(n.b,t,e),ne3(n,t))}function Gk(n,t){var e,i;return e=1-t,i=n.a[e],n.a[e]=i.a[t],i.a[t]=n,n.b=!0,i.b=!1,i}function Gj(n){Oa.call(this),this.b=gy(Ss(ntP(n,(ns8(),nFB)))),this.a=Im(ntP(n,nKO),218)}function GE(n,t,e){Rw.call(this,n,t,e),this.a=new wt,this.b=new wt,this.d=new lN(this)}function GT(n){this.e=n,this.d=new pS(Hv(OL(this.e).gc())),this.c=this.e.a,this.b=this.e.c}function GM(n){this.b=n,this.a=_f(nYL,nfH,25,n+1,15,1),this.c=_f(nYL,nfH,25,n,15,1),this.d=0}function GS(n,t,e){var i;return ncC(n,t,i=new wn,e,!0,!0),n.b=new GM(i.c.length),i}function GP(n,t){var e;return(e=Im($a(n.c,t),458))||((e=new w9).c=t,$J(n.c,e.c,e)),e}function GI(n,t){var e=n.a,i=0;for(var r in e)e.hasOwnProperty(r)&&(t[i++]=r);return t}function GC(n){return null==n.b?(md(),md(),nQ8):n.Lk()?n.Kk():n.Jk()}function GO(n){var t,e;for(e=new Td(n);e.e!=e.i.gc();)qh(t=Im(J1(e),33),0),qf(t,0)}function GA(){GA=C,nOY=new bR(nw$),nOZ=new bR(nwL),nOJ=new bR(nwN),nOQ=new bR(nwx)}function G$(){G$=C,nA8=new m5("TO_INTERNAL_LTR",0),nA6=new m5("TO_INPUT_DIRECTION",1)}function GL(){GL=C,nH9=new kt("P1_NODE_PLACEMENT",0),nH7=new kt("P2_EDGE_ROUTING",1)}function GN(){GN=C,nLI=new yp("START",0),nLP=new yp("MIDDLE",1),nLS=new yp("END",2)}function Gx(){Gx=C,n$6=new SA("edgelabelcenterednessanalysis.includelabel",(TX(),nTV))}function GD(){this.c=new pF(0),this.b=new pF(nvi),this.d=new pF(nve),this.a=new pF(nwn)}function GR(n){var t,e,i,r;for(e=n.c.a.ec().Kc();e.Ob();)i=t=Im(e.Pb(),214),r=new ntG(t.e),i.f=r}function GK(n){var t,e,i,r;for(e=n.c.a.ec().Kc();e.Ob();)i=t=Im(e.Pb(),214),r=new O3(t.f),i.a=r}function GF(n,t){var e;e=n.zb,n.zb=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,1,e,n.zb))}function G_(n,t){var e;e=n.xb,n.xb=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,3,e,n.xb))}function GB(n,t){var e;e=n.yb,n.yb=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,2,e,n.yb))}function GH(n,t){var e;(e=new dT).n=t,_P((n.s||(n.s=new An(nQo,n,21,17)),n.s),e)}function Gq(n,t){var e;(e=new Sc).n=t,_P((n.s||(n.s=new An(nQo,n,21,17)),n.s),e)}function GG(n,t){var e,i;for(_V(e=n.Pc(),0,e.length,t),i=0;i<e.length;i++)n._c(i,e[i])}function Gz(n,t){var e,i,r;for($x(t),e=!1,r=t.Kc();r.Ob();)i=r.Pb(),e|=n.Fc(i);return e}function GU(n){var t,e,i;for(t=0,i=n.Kc();i.Ob();)t+=null!=(e=i.Pb())?Xg(e):0,t=~~t;return t}function GX(n){var t;return 0==n?"UTC":(n<0?(n=-n,t="UTC+"):t="UTC-",t+BW(n))}function GW(n,t){var e;return Ti(t,14)?(e=Im(t,14),n.Gc(e)):BU(n,Im(A1(t),20).Kc())}function GV(n,t,e){HP.call(this,t,e),this.d=_f(nPV,nw9,10,n.a.c.length,0,1),Jx(n.a,this.d)}function GQ(n,t){t?null==n.B&&(n.B=n.D,n.D=null):null!=n.B&&(n.D=n.B,n.B=null)}function GJ(n,t){return gy(Ss(Me(WQ(Lw(new CL(null,new x6(n.c.b,16)),new lk(n)),t))))}function GY(n,t){return gy(Ss(Me(WQ(Lw(new CL(null,new x6(n.c.b,16)),new ly(n)),t))))}function GZ(n,t,e){var i,r;for(r=Jz(n,0);r.b!=r.d.c;)i=Im(RP(r),8),i.a+=t,i.b+=e;return n}function G1(n,t,e){var i;for(i=n.b[e&n.f];i;i=i.b)if(e==i.a&&$A(t,i.g))return i;return null}function G0(n,t,e){var i;for(i=n.c[e&n.f];i;i=i.d)if(e==i.f&&$A(t,i.i))return i;return null}function G2(n){var t;return jp((t=D7(n)).a,0)?(vz(),vz(),nMA):(vz(),new M$(t.b))}function G3(n){var t;return jp((t=D7(n)).a,0)?(vz(),vz(),nMA):(vz(),new M$(t.c))}function G4(n){return n.b.d.i.k==(ntY(),nAU)?Im(ntP(n.b.d.i,(nhu(),nxE)),11):n.b.d}function G5(n,t,e,i,r,c,a,u,o,s,h,f,l){return nez(n,t,e,i,r,c,a,u,o,s,h,f,l),VP(n,!1),n}function G6(n,t,e,i,r,c,a){vl.call(this,n,t),this.d=e,this.e=i,this.c=r,this.b=c,this.a=Fs(a)}function G8(n,t){return Ex(),qR(nbE),nTv.Math.abs(0-t)<=nbE||0==t||isNaN(0)&&isNaN(t)?0:n/t}function G9(){G9=C,nQ2=new dE,nQ4=Um(xg(nQo,1),njs,170,0,[]),nQ3=Um(xg(nQg,1),njh,59,0,[])}function G7(){G7=C,n_7=new yz("NO",0),n_8=new yz("GREEDY",1),n_9=new yz("LOOK_BACK",2)}function zn(){zn=C,nA0=new tO,nAZ=new tC,nA1=new tA,nAY=new t$,nA2=new tL,nA3=new tN}function zt(n,t){var e,i,r,c,a;return n.b?null:(i=(e=n.g)>0?e-1:e,r=qj(IZ(new dB,i),n.n),c=n.j,r.j=c,a=n.k,r.k=a,I2(n.a,r),r.i=n,n.d=t,r)}function ze(n,t,e){this.g=n,this.d=t,this.e=e,this.a=new wn,function(n){var t,e,i,r;for(r=WJ(n.d,n.e).Kc();r.Ob();)for(i=Im(r.Pb(),11),e=new h1(n.e==(nsR(),nWJ)?i.e:i.g);e.a<e.c.c.length;)!KR(t=Im(De(e),17))&&t.c.i.c!=t.d.i.c&&(function(n,t){var e,i,r;e=n.e==(nsR(),nWJ)?t.c:t.d,i=Im($a(n.g.f,e),19).a,r=n.a.c.length-1,0!=n.a.c.length&&Im(CA(n.a,r),287).c==i?(++Im(CA(n.a,r),287).a,++Im(CA(n.a,r),287).b):IE(n.a,new MW(i))}(n,t),++n.f,++n.c)}(this),LV(),E_(this.a,null)}function zi(n){this.i=n.gc(),this.i>0&&(this.g=this.ri(this.i+(this.i/8|0)+1),n.Qc(this.g))}function zr(n,t){IW.call(this,nQT,n,t),this.b=this,this.a=ncT(n.Tg(),Hm(this.e.Tg(),this.c))}function zc(n,t){var e,i;for($x(t),i=t.vc().Kc();i.Ob();)e=Im(i.Pb(),42),n.zc(e.cd(),e.dd())}function za(n){var t;if(-2==n.b){if(0==n.e)t=-1;else for(t=0;0==n.a[t];t++);n.b=t}return n.b}function zu(n){switch(n.g){case 2:return nsR(),nWJ;case 4:return nsR(),nWA;default:return n}}function zo(n){switch(n.g){case 1:return nsR(),nWV;case 3:return nsR(),nW$;default:return n}}function zs(n,t){var e;return TX(),jw(n)?Fb(n,Sh(t)):jb(n)?O_(n,Ss(t)):jl(n)?(e=So(t),$x(n),$x(e),TX(),n==e?0:n?1:-1):n.wd(t)}function zh(n,t){t.q=n,n.d=nTv.Math.max(n.d,t.r),n.b+=t.d+(0==n.a.c.length?0:n.c),IE(n.a,t)}function zf(n,t){var e,i,r,c;return r=n.c,e=n.c+n.b,c=n.d,i=n.d+n.a,t.a>r&&t.a<e&&t.b>c&&t.b<i}function zl(n,t,e,i){Ti(n.Cb,179)&&(Im(n.Cb,179).tb=null),GF(n,e),t&&function(n,t){var e,i,r,c,a;if(t){if((4&t.i)!=0)for(i="[]",e=t.c;;e=e.c){if((4&e.i)==0){$x((Su(e),c=e.o+i)),Ga(n,r=c),qv(n,r);break}i+="[]"}else $x((Su(t),a=t.o)),Ga(n,r=a),qv(n,r)}else Ga(n,null),qv(n,null);n.yk(t)}(n,t),i&&n.xk(!0)}function zb(n,t){var e;L1(e=Im(t,183),"x",n.i),L1(e,"y",n.j),L1(e,nyT,n.g),L1(e,nyE,n.f)}function zw(){var n,t;zw=C,nBd=Jd((n=Cg(Cg(new Rf,(ntI(),nAp),(nhs(),n$F)),nAv,n$C),t=nAm,n.a=t.g+1,n),n$K)}function zd(){var n,t;zd=C,nBy=Jd((n=Cg(Cg(new Rf,(ntI(),nAp),(nhs(),n$F)),nAv,n$C),t=nAm,n.a=t.g+1,n),n$K)}function zg(){zg=C,nqG=new ka(nwY,0),nqz=new ka("POLAR_COORDINATE",1),nqq=new ka("ID",2)}function zp(){zp=C,n_Q=new yH("EQUALLY",0),n_J=new yH(nbA,1),n_Y=new yH("NORTH_SOUTH",2)}function zv(){zv=C,n_K=X7((nco(),Um(xg(nIv,1),nfh,260,0,[n_D,n_A,n_N,n_$,n_L,n_O,n_x,n_R])))}function zm(){zm=C,nLK=X7((nc1(),Um(xg(nP8,1),nfh,270,0,[nLA,nLN,nLO,nLR,nLL,nL$,nLD,nLx])))}function zy(){zy=C,nzD=X7((neT(),Um(xg(nCc,1),nfh,277,0,[nzx,nzI,nz$,nzN,nzC,nzO,nzA,nzL])))}function zk(){zk=C,nVX=X7((nrt(),Um(xg(nCG,1),nfh,237,0,[nVU,nVq,nVG,nVH,nVz,nV_,nVF,nVB])))}function zj(){zj=C,nCZ=new SA("debugSVG",(TX(),!1)),nC1=new SA("overlapsExisted",!0)}function zE(n,t){return BT(new fr(n),new fc(t),new fa(t),new nn,Um(xg(nMz,1),nfh,132,0,[]))}function zT(n,t){var e;return!!(e=naA(qK(),n))&&(Yu(t,(nha(),nXo),e),!0)}function zM(n,t){var e;for(e=0;e<t.j.c.length;e++)Im(BM(n,e),21).Gc(Im(BM(t,e),14));return n}function zS(n,t){var e,i;for($x(t),i=n.vc().Kc();i.Ob();)e=Im(i.Pb(),42),t.Od(e.cd(),e.dd())}function zP(n,t){Ti(t,83)?(Im(n.c,76).Xj(),function(n,t){var e,i;for(i=t.vc().Kc();i.Ob();)nnb(n,(e=Im(i.Pb(),42)).cd(),e.dd())}(n,Im(t,83))):Im(n.c,76).Wb(t)}function zI(n){return Ti(n,152)?Fh(Im(n,152)):Ti(n,131)?Im(n,131).a:Ti(n,54)?new d5(n):new vT(n)}function zC(n,t){n.a=VK(n.a,1),n.c=nTv.Math.min(n.c,t),n.b=nTv.Math.max(n.b,t),n.d=VK(n.d,t)}function zO(n){var t;null==n.d?(++n.e,n.f=0,W$(null)):(++n.e,t=n.d,n.d=null,n.f=0,W$(t))}function zA(n){var t;return 0==(t=n.h)?n.l+n.m*nf8:t==nf5?n.l+n.m*nf8-nf9:n}function z$(n){return(SE(),n.A.Hc((QJ(),nW4))&&!n.B.Hc((na9(),nVi)))?Qx(n):null}function zL(n){if($x(n),0==n.length)throw new gG("Zero length BigInteger").e;(function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(o=b=t.length,x5(0,t.length),45==t.charCodeAt(0)?(f=-1,l=1,--b):(f=1,l=0),r=b/(c=(nod(),nMd)[10])|0,0!=(g=b%c)&&++r,u=_f(nYL,nfH,25,r,15,1),e=nMw[8],a=0,w=l+(0==g?c:g),d=l;d<o;w=(d=w)+c)i=nue(t.substr(d,w-d),nfp,nhM),niW(),s=Ym(u,u,a,e)+function(n,t,e){var i,r;for(r=0,i=Di(e,nlw);0!=WM(i,0)&&r<t;r++)i=VK(i,Di(n[r],nlw)),n[r]=CZ(i),i=OK(i,32);return CZ(i)}(u,a,i),u[a++]=s;h=a,n.e=f,n.d=h,n.a=u,DF(n)})(this,n)}function zN(n){if(!n)throw new gg("no calls to next() since the last call to remove()").e}function zx(n){var t,e,i,r,c;return nln<n&&n<nf9?n<0?nTv.Math.ceil(n):nTv.Math.floor(n):zA(isNaN(t=n)?(Bx(),nTW):t<-0x8000000000000000?(Bx(),nTU):t>=0x7fffffffffffffff?(Bx(),nTz):(r=!1,t<0&&(r=!0,t=-t),i=0,t>=nf9&&(i=NU(t/nf9),t-=i*nf9),e=0,t>=nf8&&(e=NU(t/nf8),t-=e*nf8),c=Ez(NU(t),e,i),r&&Xn(c),c))}function zD(n,t){var e,i,r;if(null!=(e=n.Jg())&&n.Mg())for(i=0,r=e.length;i<r;++i)e[i].ui(t)}function zR(n,t){var e,i;for(i=$L(e=n).e;i;){if((e=i)==t)return!0;i=$L(e).e}return!1}function zK(n,t,e){var i,r;return r=Im(P$(n.d,t),19),i=Im(P$(n.b,e),19),r&&i?FF(n,r.a,i.a):null}function zF(n,t){var e;return(n.Db&t)!=0?-1==(e=Zn(n,t))?n.Eb:HJ(n.Eb)[e]:null}function z_(n,t){var e;return(e=new sZ).G=t,n.rb||(n.rb=new O6(n,nQh,n)),_P(n.rb,e),e}function zB(n,t){var e;return(e=new wL).G=t,n.rb||(n.rb=new O6(n,nQh,n)),_P(n.rb,e),e}function zH(n,t){switch(t){case 1:return!!n.n&&0!=n.n.i;case 2:return null!=n.k}return Dl(n,t)}function zq(n){switch(n.a.g){case 1:return new k2;case 3:return new Zv;default:return new sq}}function zG(n){var t;if(n.g>1||n.Ob())return++n.a,n.g=0,t=n.i,n.Ob(),t;throw(new wO).e}function zz(n){var t,e,i;return e=0,(i=n)<0&&(i+=nf9,e=nf5),t=NU(i/nf8),Ez(NU(i-t*nf8),t,e)}function zU(n){var t,e,i;for(i=0,e=new vR(n.a);e.a<e.c.a.length;)t=RY(e),n.b.Hc(t)&&++i;return i}function zX(n,t){var e;this.c=n,function n(t,e,i,r,c,a,u,o){var s,h,f,l,b;r&&((s=r.a[0])&&n(t,e,i,s,c,a,u,o),f=r.d,i.Ae()&&((b=t.a.ue(f,c))<0||!a&&0==b)||i.Be()&&((l=t.a.ue(f,u))>0||!o&&0==l)||e.Fc(r),(h=r.a[1])&&n(t,e,i,h,c,a,u,o))}(n,e=new wn,t,n.b,null,!1,null,!1),this.a=new Rn(e,0)}function zW(n,t){this.b=n,this.e=t,this.d=t.j,this.f=(mp(),Im(n,66).Oj()),this.k=ncT(t.e.Tg(),n)}function zV(n,t,e){this.b=($x(n),n),this.d=($x(t),t),this.e=($x(e),e),this.c=this.d+""+this.e}function zQ(){this.a=Im(JZ((nab(),nO$)),19).a,this.c=gy(Ss(JZ(nOW))),this.b=gy(Ss(JZ(nOG)))}function zJ(){zJ=C,nWh=X7((nrS(),Um(xg(nCg,1),nfh,93,0,[nWe,nWt,nWr,nWs,nWo,nWu,nWc,nWa,nWi])))}function zY(){zY=C,nSX=X7((nau(),Um(xg(nSu,1),nfh,250,0,[nSU,nSB,nSH,nS_,nSG,nSz,nSq,nSF,nSK])))}function zZ(){zZ=C,nPT=new mY("UP",0),nPk=new mY(nbC,1),nPj=new mY(nbp,2),nPE=new mY(nbv,3)}function z1(){z1=C,xf(),nHN=new jU(nvs,nHx=nHJ),DN(),nH$=new jU(nvh,nHL=nH0)}function z0(){z0=C,nNq=new yO("ONE_SIDED",0),nNG=new yO("TWO_SIDED",1),nNH=new yO("OFF",2)}function z2(n){n.r=new w_,n.w=new w_,n.t=new wn,n.i=new wn,n.d=new w_,n.a=new Et,n.c=new wt}function z3(n){this.n=new wn,this.e=new vK,this.j=new vK,this.k=new wn,this.f=new wn,this.p=n}function z4(n,t){n.c&&(na8(n,t,!0),vF(new CL(null,new x6(t,16)),new lC(n))),na8(n,t,!1)}function z5(n,t){var e;return t&&((e=t.Ve()).dc()||(n.q?zc(n.q,e):n.q=new jx(e))),n}function z6(n,t){var e;return void 0===(e=n.a.get(t))?++n.d:(function(n,t){n[nlM].call(n,t)}(n.a,t),--n.c,Ni(n.b)),e}function z8(n){var t;return 0>WM(n,0)&&(n=Ix(n)),64-(0!=(t=CZ(OK(n,32)))?niI(t):niI(CZ(n))+32)}function z9(n){var t;return t=Im(ntP(n,(nhu(),nxr)),61),n.k==(ntY(),nAU)&&(t==(nsR(),nWJ)||t==nWA)}function z7(n,t,e){var i,r,c,a;i=(a=$L(n)).d,r=a.c,c=n.n,t&&(c.a=c.a-i.b-r.a),e&&(c.b=c.b-i.d-r.b)}function Un(n,t,e,i,r){$t(n.c[t.g],e.g,i),$t(n.c[e.g],t.g,i),$t(n.b[t.g],e.g,r),$t(n.b[e.g],t.g,r)}function Ut(n,t,e,i){return 1==e?(n.n||(n.n=new An(nCK,n,1,7)),Ye(n.n,t,i)):ntQ(n,t,e,i)}function Ue(n,t){var e;return GF(e=new uM,t),_P((n.A||(n.A=new Tv(nQm,n,7)),n.A),e),e}function Ui(n){var t;return(!n.a||(1&n.Bb)==0&&n.a.kh())&&Ti(t=Z9(n),148)&&(n.a=Im(t,148)),n.a}function Ur(n,t){var e,i;for($x(t),i=t.Kc();i.Ob();)if(e=i.Pb(),!n.Hc(e))return!1;return!0}function Uc(n,t){var e,i,r;return e=n.l-t.l,i=n.m-t.m+(e>>22),r=n.h-t.h+(i>>22),Ez(e&nf4,i&nf4,r&nf5)}function Ua(n){var t;return n<128?((t=(Cj(),nT1)[n])||(t=nT1[n]=new hF(n)),t):new hF(n)}function Uu(n){var t,e;return Ti(n,78)?n:((t=n&&n.__java$exception)||(e=t=new Wo(n),Nv(),nTR.be(e)),t)}function Uo(n){if(Ti(n,186))return Im(n,118);if(n)return null;throw new gv(nyJ).e}function Us(n,t){if(null==t)return!1;for(;n.a!=n.b;)if(WY(t,Wj(n)))return!0;return!1}function Uh(n){return!!n.a.Ob()||n.a==n.d&&(n.a=new Rt(n.e.f),n.a.Ob())}function Uf(n,t){var e;return 0!=(e=t.Pc()).length&&(IO(n.c,n.c.length,e),!0)}function Ul(n,t){var e;for(e=new h1(n.b);e.a<e.c.c.length;)UU(Im(De(e),70),(nhu(),nxd),t)}function Ub(n,t){if(!n)throw new gd(naT("value already present: %s",Um(xg(nEX,1),nhA,1,5,[t]))).e}function Uw(n,t){return!!n&&!!t&&n!=t&&Jn(n.d.c,t.d.c+t.d.b)&&Jn(t.d.c,n.d.c+n.d.b)}function Ud(n,t){var e;return e=Mj(t.a.gc()),vF(H$(new CL(null,new x6(t,1)),n.i),new kg(n,e)),e}function Ug(n){var t;return GF(t=new uM,"T"),_P((n.d||(n.d=new Tv(nQm,n,11)),n.d),t),t}function Up(n){var t,e,i,r;for(e=0,t=1,r=n.gc();e<r;++e)t=31*t+(null==(i=n.ki(e))?0:Xg(i));return t}function Uv(n,t,e,i){var r;return D1(t,n.e.Hd().gc()),D1(e,n.c.Hd().gc()),r=n.a[t][e],$t(n.a[t],e,i),r}function Um(n,t,e,i,r){return r.gm=n,r.hm=t,r.im=I,r.__elementTypeId$=e,r.__elementTypeCategory$=i,r}function Uy(){Uy=C,nLt=new m8(nwY,0),n$7=new m8(ndy,1),nLn=new m8(ndk,2),n$9=new m8("BOTH",3)}function Uk(){Uk=C,nLf=new yd(nbw,0),nLl=new yd(nbp,1),nLb=new yd(nbv,2),nLw=new yd("TOP",3)}function Uj(){Uj=C,nAS=new m2("Q1",0),nAC=new m2("Q4",1),nAP=new m2("Q2",2),nAI=new m2("Q3",3)}function UE(){UE=C,nBe=new yU("OFF",0),nBi=new yU("SINGLE_EDGE",1),nBt=new yU("MULTI_EDGE",2)}function UT(){UT=C,nzw=new kl("MINIMUM_SPANNING_TREE",0),nzb=new kl("MAXIMUM_SPANNING_TREE",1)}function UM(){UM=C,new bR("org.eclipse.elk.addLayoutConfig"),nzp=new ae,nzg=new an,new at}function US(n){var t,e;for(t=new vK,e=Jz(n.d,0);e.b!=e.d.c;)I2(t,Im(RP(e),188).c);return t}function UP(n){var t,e;for(e=new wn,t=n.Kc();t.Ob();)Uf(e,ncY(Im(t.Pb(),33)));return e}function UI(n,t,e){var i;AT(n.a),HR(e.i,new l9(n)),i=new EX(Im($a(n.a,t.b),65)),function n(t,e,i){var r,c,a;for(a=new h1(i.a);a.a<a.c.c.length;)c=Im(De(a),221),r=new EX(Im($a(t.a,c.b),65)),IE(e.a,r),n(t,r,c)}(n,i,t),e.f=i}function UC(n,t){var e,i;if(i=0,n<64&&n<=t)for(t=t<64?t:63,e=n;e<=t;e++)i=Dr(i,OR(1,e));return i}function UO(n){var t,e,i;for(LV(),i=0,e=n.Kc();e.Ob();)i+=null!=(t=e.Pb())?Xg(t):0,i|=0;return i}function UA(n){var t;return pw(),t=new aZ,n&&_P((n.a||(n.a=new An(nCL,n,6,6)),n.a),t),t}function U$(n,t){if(0===t){n.o||(n.o=new _D((nsZ(),nVA),nCq,n,0)),n.o.c.$b();return}nem(n,t)}function UL(n,t,e){switch(e.g){case 2:n.b=t;break;case 1:n.c=t;break;case 4:n.d=t;break;case 3:n.a=t}}function UN(n){switch(n.g){case 1:return nX8;case 2:return nX6;case 3:return nX9;default:return nX7}}function Ux(){Ux=C,nNB=X7((ncJ(),Um(xg(nIs,1),nfh,256,0,[nN$,nNN,nNx,nND,nNR,nNK,nN_,nNA,nNL,nNF])))}function UD(){UD=C,nVo=X7((na9(),Um(xg(nCj,1),nfh,259,0,[nVt,nVi,nVn,nVr,nVc,nVu,nVa,nVe,nW7])))}function UR(){UR=C,nH5=Cg(Jd(Jd(mu(Cg(new Rf,(Zx(),nHe),(neO(),nHf)),nHi),nHo),nHs),nHr,nHh)}function UK(){UK=C,nNr=new yT(nwY,0),nNi=new yT("INCOMING_ONLY",1),nNc=new yT("OUTGOING_ONLY",2)}function UF(){UF=C,nTq={boolean:vL,number:gr,string:gc,object:neY,function:neY,undefined:wh}}function U_(n,t){IB(n>=0,"Negative initial capacity"),IB(t>=0,"Non-positive load factor"),AT(this)}function UB(n,t,e){return!(n>=128)&&(n<64?jv(Di(OR(1,n),e),0):jv(Di(OR(1,n-64),t),0))}function UH(n){var t,e,i;return e=n.n,i=n.o,t=n.d,new Lj(e.a-t.b,e.b-t.d,i.a+(t.b+t.c),i.b+(t.d+t.a))}function Uq(n){var t,e,i;return t=~n.l+1&nf4,e=~n.m+(0==t?1:0)&nf4,i=~n.h+(0==t&&0==e?1:0)&nf5,Ez(t,e,i)}function UG(n,t,e){var i;if(t>(i=n.gc()))throw new Pt(t,i).e;return n.hi()&&(e=xi(n,e)),n.Vh(t,e)}function Uz(n,t,e){return null==e?(n.q||(n.q=new wt),Fv(n.q,t)):(n.q||(n.q=new wt),$J(n.q,t,e)),n}function UU(n,t,e){return null==e?(n.q||(n.q=new wt),Fv(n.q,t)):(n.q||(n.q=new wt),$J(n.q,t,e)),n}function UX(n){var t,e;return z5(e=new Fy,n),UU(e,(GA(),nOY),n),function(n,t,e){var i,r,c,a,u;for(i=0,c=new Td((n.a||(n.a=new An(nCF,n,10,11)),n.a));c.e!=c.i.gc();)r=Im(J1(c),33),a="",0==(r.n||(r.n=new An(nCK,r,1,7)),r.n).i||(a=Im(HX((r.n||(r.n=new An(nCK,r,1,7)),r.n),0),137).a),z5(u=new $s(a),r),UU(u,(GA(),nOY),r),u.b=i++,u.d.a=r.i+r.g/2,u.d.b=r.j+r.f/2,u.e.a=nTv.Math.max(r.g,1),u.e.b=nTv.Math.max(r.f,1),IE(t.e,u),neQ(e.f,r,u),Im(nrM(r,(nab(),nO_)),98),nn2()}(n,e,t=new wt),function(n,t,e){var i,r,c,a,u,o,h,f,l,b;for(o=new Td((n.a||(n.a=new An(nCF,n,10,11)),n.a));o.e!=o.i.gc();)for(r=new OM(TD(nrZ(u=Im(J1(o),33)).a.Kc(),new s));nrc(r);){if((i=Im(K4(r),79)).b||(i.b=new Ph(nCA,i,4,7)),!(i.b.i<=1&&(i.c||(i.c=new Ph(nCA,i,5,8)),i.c.i<=1)))throw new gC("Graph must not contain hyperedges.").e;if(!ni5(i)&&u!=ntr(Im(HX((i.c||(i.c=new Ph(nCA,i,5,8)),i.c),0),82)))for(z5(h=new SX,i),UU(h,(GA(),nOY),i),l=Im(jh(Nj(e.f,u)),144),h.c=l,b=Im($a(e,ntr(Im(HX((i.c||(i.c=new Ph(nCA,i,5,8)),i.c),0),82))),144),h.d=b,IE(t.c,h),a=new Td((i.n||(i.n=new An(nCK,i,1,7)),i.n));a.e!=a.i.gc();)z5(f=new Kn(h,(c=Im(J1(a),137)).a),c),UU(f,nOY,c),f.e.a=nTv.Math.max(c.g,1),f.e.b=nTv.Math.max(c.f,1),not(f),IE(t.d,f)}}(n,e,t),e}function UW(n,t){var e,i,r,c;for(c=0,e=!1,i=n.a[t].length;c<i-1;c++)r=c+1,e|=function(n,t,e,i){var r,c,a;return r=!1,function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;return l=n.c[t],b=n.c[e],!((w=Im(ntP(l,(nhu(),nxb)),15))&&0!=w.gc()&&w.Hc(b))&&(d=l.k!=(ntY(),nAW)&&b.k!=nAW,v=(g=Im(ntP(l,nxl),10))!=(p=Im(ntP(b,nxl),10)),m=!!g&&g!=l||!!p&&p!=b,y=YQ(l,(nsR(),nW$)),k=YQ(b,nWV),m|=YQ(l,nWV)||YQ(b,nW$),j=m&&v||y||k,!d||!j)&&(l.k!=(ntY(),nAQ)||b.k!=nAV)&&(b.k!=(ntY(),nAQ)||l.k!=nAV)&&(h=n.c[t],c=n.c[e],r=nnh(n.e,h,c,(nsR(),nWJ)),o=nnh(n.i,h,c,nWA),(E=n.f).d=0,E.b=0,h.k==(ntY(),nAQ)&&c.k==nAQ&&Im(ntP(h,(nhu(),nxE)),10)==Im(ntP(c,nxE),10)&&(Bd(h).j==(nsR(),nW$)?nrB(E,h,c):nrB(E,c,h)),h.k==nAQ&&c.k==nAW?Bd(h).j==(nsR(),nW$)?E.d=1:E.b=1:c.k==nAQ&&h.k==nAW&&(Bd(c).j==(nsR(),nW$)?E.b=1:E.d=1),h.k==(ntY(),nAV)&&c.k==nAW&&(E.d=Wz(h,(nsR(),nWV)),E.b=Wz(h,nW$)),c.k==nAV&&h.k==nAW&&(E.d=Wz(c,(nsR(),nW$)),E.b=Wz(c,nWV)),s=X_(n.b,h,c)+Im(r.a,19).a+Im(o.a,19).a+n.f.d,u=X_(n.b,c,h)+Im(r.b,19).a+Im(o.b,19).a+n.f.b,n.a&&(f=Im(ntP(h,nxE),11),a=Im(ntP(c,nxE),11),s+=Im((i=ZL(n.g,f,a)).a,19).a,u+=Im(i.b,19).a),s>u)}(n.f,e,i)&&(function(n,t,e){var i,r;ntj(n.e,t,e,(nsR(),nWJ)),ntj(n.i,t,e,nWA),n.a&&(r=Im(ntP(t,(nhu(),nxE)),11),i=Im(ntP(e,nxE),11),Dw(n.g,r,i))}(n.f,n.a[t][e],n.a[t][i]),a=(c=n.a[t])[i],c[i]=c[e],c[e]=a,r=!0),r}(n,t,c,r);return e}function UV(n,t,e,i,r){var c,a;for(a=e;a<=r;a++)for(c=t;c<=i;c++)YZ(n,c,a)||naI(n,c,a,!0,!1)}function UQ(n,t){this.b=n,jW.call(this,(Im(HX(L6(($g(),nQO).o),10),18),t.i),t.g),this.a=(G9(),nQ4)}function UJ(n,t){this.c=n,this.d=t,this.b=this.d/this.c.c.Hd().gc()|0,this.a=this.d%this.c.c.Hd().gc()}function UY(){++nEU,this.o=null,this.k=null,this.j=null,this.d=null,this.b=null,this.n=null,this.a=null}function UZ(n,t,e){this.q=new nTv.Date,this.q.setFullYear(n+nfB,t,e),this.q.setHours(0,0,0,0),nu3(this,0)}function U1(){U1=C,n__=new yF(nwY,0),n_F=new yF("NODES_AND_EDGES",1),n_B=new yF("PREFER_EDGES",2)}function U0(n){var t;if(n<0)return nfp;if(0==n)return 0;for(t=nfo;(t&n)==0;t>>=1);return t}function U2(n){var t,e;return 32==(e=niI(n.h))?32==(t=niI(n.m))?niI(n.l)+32:t+20-10:e-12}function U3(n){var t;return null==(t=n.a[n.b])?null:($t(n.a,n.b,null),n.b=n.b+1&n.a.length-1,t)}function U4(n){var t,e;return t=n.t-n.k[n.o.p]*n.d+n.j[n.o.p]>n.f,e=n.u+n.e[n.o.p]*n.d>n.f*n.s*n.d,t||e}function U5(n,t,e){var i,r;return i=new _g(t,e),r=new H,n.b=function n(t,e,i,r){var c,a;return e?(0==(c=t.a.ue(i.d,e.d))?(r.d=SB(e,i.e),r.b=!0):(a=c<0?0:1,e.a[a]=n(t,e.a[a],i,r),gj(e.a[a])&&(gj(e.a[1-a])?(e.b=!0,e.a[0].b=!1,e.a[1].b=!1):gj(e.a[a].a[a])?e=Gk(e,1-a):gj(e.a[a].a[1-a])&&(e=DU(e,1-a)))),e):i}(n,n.b,i,r),r.b||++n.c,n.b.b=!1,r.d}function U6(n,t,e){var i,r,c,a;for(a=WJ(t,e),c=0,r=a.Kc();r.Ob();)i=Im(r.Pb(),11),$J(n.c,i,Va(c++))}function U8(n){var t,e;for(e=new h1(n.a.b);e.a<e.c.c.length;)(t=Im(De(e),81)).g.c=-t.g.c-t.g.b;ncl(n)}function U9(n){var t,e;for(e=new h1(n.a.b);e.a<e.c.c.length;)(t=Im(De(e),57)).d.c=-t.d.c-t.d.b;ncf(n)}function U7(n){var t;return(!n.c||(1&n.Bb)==0&&(64&n.c.Db)!=0)&&Ti(t=Z9(n),88)&&(n.c=Im(t,26)),n.c}function Xn(n){var t,e,i;t=~n.l+1&nf4,e=~n.m+(0==t?1:0)&nf4,i=~n.h+(0==t&&0==e?1:0)&nf5,n.l=t,n.m=e,n.h=i}function Xt(n){var t,e,i,r;for(i=0,t=new ps,r=n.length;i<r;++i)e=n[i],t.a+=e.a,t.b+=e.b;return t}function Xe(n,t){var e,i,r,c;for(LV(),c=!1,i=0,r=t.length;i<r;++i)e=t[i],c|=n.Fc(e);return c}function Xi(n){var t,e;for(nc0(),e=-17976931348623157e292,t=0;t<n.length;t++)n[t]>e&&(e=n[t]);return e}function Xr(n,t,e){var i;return ncC(n,t,i=new wn,(nsR(),nWA),!0,!1),ncC(n,e,i,nWJ,!1,!1),i}function Xc(n,t,e){var i,r;return r=Ra(t,"labels"),function(n,t,e){var i,r,c,a;if(e)for(r=((i=new OP(e.a.length)).b-i.a)*i.c<0?(my(),nhm):new TA(i);r.Ob();)(c=Ru(e,Im(r.Pb(),19).a))&&(a=function(n,t){var e;return pw(),e=new a0,t&&ncd(e,t),q7(e,n),e}(Rs(c,nyS),t),$J(n.f,a,c),nyF in c.a&&q6(a,Rs(c,nyF)),nti(c,a),ne0(c,a))}((i=new kY(n,e)).a,i.b,r),r}function Xa(n,t){var e;for(e=0;e<n.a.a.length;e++)if(!Im(C$(n.a,e),169).Lb(t))return!1;return!0}function Xu(n){var t,e,i;for(LV(),i=1,e=n.Kc();e.Ob();)i=31*i+(null!=(t=e.Pb())?Xg(t):0)|0;return i}function Xo(n,t,e){var i;return Ti(t,144)&&e?(i=Im(t,144),n.a[i.b][e.b]+n.a[e.b][i.b]):0}function Xs(n,t){switch(t){case 7:return!!n.e&&0!=n.e.i;case 8:return!!n.d&&0!=n.d.i}return Qb(n,t)}function Xh(n,t,e){n.g=neI(n,t,(nsR(),nWA),n.b),n.d=neI(n,e,nWA,n.b),0!=n.g.c&&0!=n.d.c&&ntz(n)}function Xf(n,t,e){n.g=neI(n,t,(nsR(),nWJ),n.j),n.d=neI(n,e,nWJ,n.j),0!=n.g.c&&0!=n.d.c&&ntz(n)}function Xl(n){var t;return($R(n),t=new nu,n.a.sd(t))?(Tl(),new ge($x(t.a))):(Tl(),Tl(),nMO)}function Xb(n){var t;return!(n.b<=0)&&((t=jZ("MLydhHmsSDkK",ntd($9(n.c,0))))>1||t>=0&&n.b<3)}function Xw(n){var t,e;for(t=new dd,e=Jz(n,0);e.b!=e.d.c;)Mq(t,0,new Ee(Im(RP(e),8)));return t}function Xd(n){var t,e;for(t=new h1(n.a.b);t.a<t.c.c.length;)Im(De(t),81).f.$b();(e=n.b).a=n,function(n){var t,e,i;for(function(n){var t,e;for(e=new h1(n.a.a.b);e.a<e.c.c.length;)Im(De(e),81),$x(0)}(n),i=new wn,e=new h1(n.a.a.b);e.a<e.c.c.length;)IE(i,new yu(t=Im(De(e),81),!0)),IE(i,new yu(t,!1));(function(n){var t,e;for(gi(n.b.a),n.a=_f(nP_,nhA,81,n.c.a.a.b.c.length,0,1),t=0,e=new h1(n.c.a.a.b);e.a<e.c.c.length;)Im(De(e),81).i=t++})(n.c),Dz(i,n.b,new gE(Um(xg(nPH,1),nhA,369,0,[n.c]))),function(n){var t,e;for(e=new h1(n.a.a.b);e.a<e.c.c.length;)Im(De(e),81),$x(0)}(n)}(e),ncy(n)}function Xg(n){return jw(n)?Yj(n):jb(n)?j3(n):jl(n)?($x(n),n)?1231:1237:Ok(n)?n.Hb():Ot(n)?T9(n):L7(n)}function Xp(n){return jw(n)?nTh:jb(n)?nTr:jl(n)?nTt:Ok(n)?n.gm:Ot(n)?n.gm:n.gm||Array.isArray(n)&&xg(nE6,1)||nE6}function Xv(n){if(0===n.g)return new c7;throw new gd(nvQ+(null!=n.f?n.f:""+n.g)).e}function Xm(n){if(0===n.g)return new c8;throw new gd(nvQ+(null!=n.f?n.f:""+n.g)).e}function Xy(n,t,e){if(0===t){n.o||(n.o=new _D((nsZ(),nVA),nCq,n,0)),zP(n.o,e);return}neV(n,t,e)}function Xk(n,t,e){this.g=n,this.e=new ps,this.f=new ps,this.d=new vK,this.b=new vK,this.a=t,this.c=e}function Xj(n,t,e,i){this.b=new wn,this.n=new wn,this.i=i,this.j=e,this.s=n,this.t=t,this.r=0,this.d=0}function XE(n){this.e=n,this.d=new R9(this.e.g),this.a=this.d,this.b=Uh(this),this.$modCount=n.$modCount}function XT(n){return(IE(n.c,(UM(),nzp)),H2(n.a,gy(Ss(JZ((QS(),n_a))))))?new aR:new br(n)}function XM(n){switch(n.g){case 1:return nve;default:case 2:return 0;case 3:return nwn;case 4:return nvi}}function XS(n,t){var e,i,r;for(r=n.b;r;){if(0==(e=n.a.ue(t,r.d)))return r;i=e<0?0:1,r=r.a[i]}return null}function XP(n,t){return!!ncs(n,t)&&(niP(n.b,Im(ntP(t,(nhu(),nxt)),21),t),I2(n.a,t),!0)}function XI(n){return nMH?_f(nMF,nlR,572,0,0,1):Im(Jx(n.a,_f(nMF,nlR,572,n.a.c.length,0,1)),842)}function XC(n,t,e){var i;return qG(i=new dS,t,e),_P((n.q||(n.q=new An(nQg,n,11,10)),n.q),i),i}function XO(n){var t,e,i,r,c;for(t=0,c=nVR,i=_f(nTh,nhJ,2,e=(r=n.split(c)).length,6,1);t<e;++t)i[t]=r[t];return i}function XA(n,t){var e,i,r,c;for(i=0,r=t.length;i<r;++i)e=t[i],c=new $l(n),e.Qe(c),function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(e=new hG(new hD(n.c.b).a.vc().Kc());e.a.Ob();)u=Im(e.a.Pb(),42),null==(r=(t=Im(u.dd(),149)).a)&&(r=""),b=n.c,w=r,(i=Im(BX(b.c,w),229))||0!=r.length||(i=function(n){var t,e;return(t=Im(BX(n.c.c,""),229))||(t=new xB((((e=new af).b="",e).c="Other",e)),JR(n.c.c,"",t)),t}(n)),i&&!Qg(i.c,t,!1)&&I2(i.c,t);for(a=Jz(n.a,0);a.b!=a.d.c;)c=Im(RP(a),478),s=KW(n.c,c.a),l=KW(n.c,c.b),s&&l&&I2(s.c,new k_(l,c.c));for(Lq(n.a),f=Jz(n.b,0);f.b!=f.d.c;)h=Im(RP(f),478),d=n.c,g=h.a,t=Im(BX(d.b,g),149),o=KW(n.c,h.b),t&&o&&(p=t,v=h.c,xp(p.d,o.f,v));Lq(n.b)}(c);AT(n.f)}function X$(n,t){var e;return t===n||!!Ti(t,224)&&(e=Im(t,224),WY(n.Zb(),e.Zb()))}function XL(n,t,e){var i;this.g=n,this.c=t,this.a=this,this.d=this,i=_f(nE4,nfa,330,Gh(e),0,1),this.b=i}function XN(n,t,e){var i;for(i=e-1;i>=0&&n[i]===t[i];i--);return i<0?0:0>WM(Di(n[i],nlw),Di(t[i],nlw))?-1:1}function Xx(n,t){var e,i;return i=Im(zF(n.a,4),126),e=_f(nCV,nkH,415,t,0,1),null!=i&&now(i,0,e,0,i.length),e}function XD(n,t){var e;return e=new nas((256&n.f)!=0,n.i,n.a,n.d,(16&n.f)!=0,n.j,n.g,t),null!=n.e||(e.c=n),e}function XR(n,t,e,i,r){var c,a;for(a=e;a<=r;a++)for(c=t;c<=i;c++)if(YZ(n,c,a))return!0;return!1}function XK(n,t,e){var i,r,c,a;for($x(e),a=!1,c=n.Zc(t),r=e.Kc();r.Ob();)i=r.Pb(),c.Rb(i),a=!0;return a}function XF(n,t,e){var i,r;for(r=e.Kc();r.Ob();)if(i=Im(r.Pb(),42),n.re(t,i.dd()))return!0;return!1}function X_(n,t,e){return n.d[t.p][e.p]||(function(n,t,e){var i,r;if(n.e)switch(n.b){case 1:(i=n.c).i=0,i.e=0,t!=e&&Xh(i,t,e);break;case 0:(r=n.c).i=0,r.e=0,t!=e&&Xf(r,t,e)}else RX(n.c,t,e);n.a[t.p][e.p]=n.c.i,n.a[e.p][t.p]=n.c.e}(n,t,e),n.d[t.p][e.p]=!0,n.d[e.p][t.p]=!0),n.a[t.p][e.p]}function XB(n,t){if(!n.ai()&&null==t)throw new gd("The 'no null' constraint is violated").e;return t}function XH(n,t){null==n.D&&null!=n.B&&(n.D=n.B,n.B=null),Ga(n,null==t?null:($x(t),t)),n.C&&n.yk(null)}function Xq(n){switch(n.i){case 2:return!0;case 1:return!1;case -1:++n.c;default:return n.pl()}}function XG(n){switch(n.i){case -2:return!0;case -1:return!1;case 1:--n.c;default:return n.ql()}}function Xz(n){N0.call(this,"The given string does not match the expected format for individual spacings.",n)}function XU(){XU=C,nVd=new kB("ELK",0),nVg=new kB("JSON",1),nVw=new kB("DOT",2),nVp=new kB("SVG",3)}function XX(){XX=C,nqo=new kr(nwY,0),nqs=new kr("RADIAL_COMPACTION",1),nqh=new kr("WEDGE_COMPACTION",2)}function XW(){XW=C,nM0=new mI("CONCURRENT",0),nM2=new mI("IDENTITY_FINISH",1),nM3=new mI("UNORDERED",2)}function XV(){XV=C,vV(),nC7=new jU(nbZ,nOn=nC6),nC9=new bR(nb1),nOt=new bR(nb0),nOe=new bR(nb2)}function XQ(){XQ=C,nLa=new e1,nLu=new e0,nLc=new e2,nLr=new e3,$x(new e4),nLi=new x}function XJ(){XJ=C,n_3=new yG("CONSERVATIVE",0),n_4=new yG("CONSERVATIVE_SOFT",1),n_5=new yG("SLOPPY",2)}function XY(){XY=C,nX1=new ES(15),nXZ=new EM((nha(),nUU),nX1),nX0=nXc,nXV=nUc,nXQ=nUR,nXY=nU_,nXJ=nUF}function XZ(n,t,e){var i,r;for(i=new vK,r=Jz(e,0);r.b!=r.d.c;)I2(i,new Ee(Im(RP(r),8)));XK(n,t,i)}function X1(n){var t,e;return(n.a||(n.a=new An(nQw,n,9,5)),0!=(t=n.a).i)?(e=Im(HX(t,0),678)).b?e.b:e.a:null}function X0(n,t){var e,i;if(0!=(i=n.c[t]))for(n.c[t]=0,n.d-=i,e=t+1;e<n.a.length;)n.a[e]-=i,e+=e&-e}function X2(n){var t;if((t=n.a.c.length)>0)return OW(t-1,n.a.c.length),Ff(n.a,t-1);throw(new wC).e}function X3(n,t,e){if(n>t)throw new gd(nlB+n+nlH+t).e;if(n<0||t>e)throw new gq(nlB+n+nlq+t+nl$+e).e}function X4(n){if(!n.a||(8&n.a.i)==0)throw new gg("Enumeration class expected for layout option "+n.f).e}function X5(n){var t;++n.j,0==n.i?n.g=null:n.i<n.g.length&&(t=n.g,n.g=n.ri(n.i),now(t,0,n.g,0,n.i))}function X6(n,t,e){var i;return xC(t,n.c.length),0!=(i=e.Pc()).length&&(IO(n.c,t,i),!0)}function X8(n,t,e){var i,r,c;for(r=0,c=e.length;r<c;++r)if(i=e[r],n.b.re(t,i.cd()))return i;return null}function X9(n){var t,e,i,r;for(e=0,r=1,i=n.length;e<i;++e)r=31*r+(null!=(t=n[e])?Xg(t):0)|0;return r}function X7(n){var t,e,i,r;for(i=0,t={},r=n.length;i<r;++i)t[":"+(null!=(e=n[i]).f?e.f:""+e.g)]=e;return t}function Wn(n){var t,e,i;for(i=0,e=new OM(TD(n.a.Kc(),new s));nrc(e);)(t=Im(K4(e),17)).c.i==t.d.i||++i;return i}function Wt(n,t){var e,i,r;for(e=n,r=0;;){if(e==t)return r;if(!(i=e.e))throw(new wT).e;e=$L(i),++r}}function We(n,t){var e,i,r;for(r=t-n.f,i=new h1(n.d);i.a<i.c.c.length;)QZ(e=Im(De(i),443),e.e,e.f+r);n.f=t}function Wi(n,t,e){return!!(nTv.Math.abs(t-n)<nvt||nTv.Math.abs(e-n)<nvt)||(t-n>nvt?n-e>nvt:e-n>nvt)}function Wr(n,t){return!n||t&&!n.j||Ti(n,124)&&0==Im(n,124).a.b?0:n.Re()}function Wc(n,t){return!n||t&&!n.k||Ti(n,124)&&0==Im(n,124).a.a?0:n.Se()}function Wa(n){return(nc4(),n<0)?-1!=n?new Yn(-1,-n):nMo:n<=10?nMh[NU(n)]:new Yn(1,n)}function Wu(n){throw UF(),new gn("Unexpected typeof result '"+n+"'; please report this bug to the GWT team").e}function Wo(n){gN(),E6(this),Lz(this),this.e=n,nc$(this,n),this.g=null==n?nhN:V7(n),this.a="",this.b=n,this.a=""}function Ws(){this.a=new c4,this.f=new l0(this),this.b=new l2(this),this.i=new l3(this),this.e=new l4(this)}function Wh(){dZ.call(this,new _p(Hv(16))),qz(2,nhQ),this.b=2,this.a=new $z(null,null,0,null),ww(this.a,this.a)}function Wf(){Wf=C,n_d=new yN("DUMMY_NODE_OVER",0),n_g=new yN("DUMMY_NODE_UNDER",1),n_p=new yN("EQUAL",2)}function Wl(){Wl=C,nAE=N4(Um(xg(nCh,1),nfh,103,0,[(W2(),nXI),nXC])),nAT=N4(Um(xg(nCh,1),nfh,103,0,[nXA,nXP]))}function Wb(n){return(nsR(),nWq).Hc(n.j)?gy(Ss(ntP(n,(nhu(),nxB)))):Xt(Um(xg(nCa,1),nhJ,8,0,[n.i.n,n.n,n.a])).b}function Ww(n,t){var e,i;e=n.nk(t,null),i=null,t&&(pg(),H1(i=new wr,n.r)),(e=ntl(n,i,e))&&e.Fi()}function Wd(n,t){var e,i,r;return i=!1,e=t.q.d,t.d<n.b&&(r=nch(t.q,n.b),t.q.d>r&&(nnD(t.q,r),i=e!=t.q.d)),i}function Wg(n,t){var e,i,r,c,a,u,o;return u=t.i,o=t.j,i=(e=n.f).i,r=e.j,c=u-i,a=o-r,nTv.Math.sqrt(c*c+a*a)}function Wp(n,t){var e;return(e=Js(n))||(nVK||(nVK=new ub),noC(),_P((e=new b4(function n(t){var e,i,r,c,a,u,o;return(noC(),e=-1==(r=jZ(t,ntd(35)))?t:t.substr(0,r),i=-1==r?null:t.substr(r+1),a=nV2,c=Im(null==e?jh(Nj(a.f,null)):mT(a.g,e),281))?null!=i&&(c=XD(c,($x(i),i))):(c=function(t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d;if(u=!0,l=null,r=null,c=null,e=!1,w=nV1,h=null,a=null,(s=JN(t,o=0,nQn,nQt))<t.length&&(x5(s,t.length),58==t.charCodeAt(s))&&(l=t.substr(o,s-o),o=s+1),i=null!=l&&vA(nV0,l.toLowerCase())){if(-1==(s=t.lastIndexOf("!/")))throw new gd("no archive separator").e;u=!0,r=MT(t,o,++s),o=s}else o>=0&&Pv(t.substr(o,2),"//")?(o+=2,s=JN(t,o,nQe,nQi),r=t.substr(o,s-o),o=s):null!=l&&(o==t.length||(x5(o,t.length),47!=t.charCodeAt(o)))&&(u=!1,-1==(s=T3(t,ntd(35),o))&&(s=t.length),r=t.substr(o,s-o),o=s);if(!i&&o<t.length&&(x5(o,t.length),47==t.charCodeAt(o))&&(s=JN(t,o+1,nQe,nQi),(f=t.substr(o+1,s-(o+1))).length>0&&58==$9(f,f.length-1)&&(c=f,o=s)),o<t.length&&(x5(o,t.length),47==t.charCodeAt(o))&&(++o,e=!0),o<t.length&&(x5(o,t.length),63!=t.charCodeAt(o))&&(x5(o,t.length),35!=t.charCodeAt(o))){for(b=new wn;o<t.length&&(x5(o,t.length),63!=t.charCodeAt(o))&&(x5(o,t.length),35!=t.charCodeAt(o));)s=JN(t,o,nQe,nQi),IE(b,t.substr(o,s-o)),(o=s)<t.length&&(x5(o,t.length),47==t.charCodeAt(o))&&((d=++o)<t.length&&(x5(d,t.length),63!=t.charCodeAt(d))&&(x5(d,t.length),35!=t.charCodeAt(d))||(b.c[b.c.length]=""));w=_f(nTh,nhJ,2,b.c.length,6,1),Jx(b,w)}return o<t.length&&(x5(o,t.length),63==t.charCodeAt(o))&&(-1==(s=MM(t,35,++o))&&(s=t.length),h=t.substr(o,s-o),o=s),o<t.length&&(a=jm(t,++o)),function(t,e,i,r,c,a){var u;if(!(null==e||!Qi(e,nQn,nQt)))throw new gd("invalid scheme: "+e).e;if(!t&&!(null!=i&&-1==jZ(i,ntd(35))&&i.length>0&&(x5(0,i.length),47!=i.charCodeAt(0))))throw new gd("invalid opaquePart: "+i).e;if(t&&!(null!=e&&vA(nV0,e.toLowerCase()))&&!(null==i||!Qi(i,nQe,nQi))||t&&null!=e&&vA(nV0,e.toLowerCase())&&!function(t){var e;if(null!=t&&t.length>0&&33==$9(t,t.length-1))try{return e=n(MT(t,0,t.length-1)),null==e.e}catch(n){if(!Ti(n=Uu(n),32))throw n.e}return!1}(i))throw new gd(nkX+i).e;if(!(null==r||(u=r.length)>0&&(x5(u-1,r.length),58==r.charCodeAt(u-1))&&!Qi(r,nQe,nQi)))throw new gd("invalid device: "+r).e;if(!function(n){var t,e;if(null==n)return!1;for(t=0,e=n.length;t<e;t++)if(!IQ(n[t]))return!1;return!0}(c))throw new gd(null==c?"invalid segments: null":"invalid segment: "+function(n){var t,e;if(null==n)return null;for(t=0,e=n.length;t<e;t++)if(!IQ(n[t]))return n[t];return null}(c)).e;if(!(null==a||-1==jZ(a,ntd(35))))throw new gd("invalid query: "+a).e}(u,l,r,c,w,h),new nas(u,l,r,c,e,w,h,a)}(e),u=nV2,o=c,Im(null==e?neQ(u.f,null,o):VB(u.g,e,o),281),null!=i&&(c=XD(c,i))),c}(t))).Vk(),n)),e}function Wv(n,t){var e,i;return(e=Im(n.c.Bc(t),14))?((i=n.hc()).Gc(e),n.d-=e.gc(),e.$b(),n.mc(i)):n.jc()}function Wm(n,t){var e;for(e=0;e<t.length;e++)if(n==(x5(e,t.length),t.charCodeAt(e)))return!0;return!1}function Wy(n,t){var e;for(e=0;e<t.length;e++)if(n==(x5(e,t.length),t.charCodeAt(e)))return!0;return!1}function Wk(n){var t;if(0!=n.c)return n.c;for(t=0;t<n.a.length;t++)n.c=33*n.c+(-1&n.a[t]);return n.c=n.c*n.e,n.c}function Wj(n){var t;return MK(n.a!=n.b),t=n.d.a[n.a],Mx(n.b==n.d.c&&null!=t),n.c=n.a,n.a=n.a+1&n.d.a.length-1,t}function WE(n){var t;return z5(t=new EV(n.a),n),UU(t,(nhu(),nxE),n),t.o.a=n.g,t.o.b=n.f,t.n.a=n.i,t.n.b=n.j,t}function WT(n){var t,e;for(e=new w_,t=new h1(n);t.a<t.c.c.length;)Gz(e,function(n){var t,e,i,r,c;for(r=new w_,t=new CI((n.a||(n.a=new An(nCF,n,10,11)),n.a)),i=new OM(TD(nrZ(n).a.Kc(),new s));nrc(i);)!Ti(HX(((e=Im(K4(i),79)).b||(e.b=new Ph(nCA,e,4,7)),e.b),0),186)&&(c=ntr(Im(HX((e.c||(e.c=new Ph(nCA,e,5,8)),e.c),0),82)),t.a._b(c)||r.a.zc(c,r));return r}(Im(De(t),33)));return e}function WM(n,t){var e;return j4(n)&&j4(t)&&!isNaN(e=n-t)?e:nnn(j4(n)?zz(n):n,j4(t)?zz(t):t)}function WS(n,t,e,i){var r,c;n.a=t,c=i?0:1,n.f=(r=new neo(n.c,n.a,e,c),new naf(e,n.a,r,n.e,n.b,n.c==(qB(),nBp)))}function WP(n,t,e){var i,r;return r=n.a,n.a=t,(4&n.Db)!=0&&(1&n.Db)==0&&(i=new O9(n,1,1,r,t),e?e.Ei(i):e=i),e}function WI(n,t,e){var i,r;return r=n.b,n.b=t,(4&n.Db)!=0&&(1&n.Db)==0&&(i=new O9(n,1,3,r,t),e?e.Ei(i):e=i),e}function WC(n,t,e){var i,r;return r=n.f,n.f=t,(4&n.Db)!=0&&(1&n.Db)==0&&(i=new O9(n,1,0,r,t),e?e.Ei(i):e=i),e}function WO(n,t){var e,i,r;return(r=function n(t){var e,i,r,c,a;if(i=Im(t,49).qh())try{if(r=null,(e=nrR((ml(),nQS),nua(null==i.e?i:(i.c||(i.c=new nas((256&i.f)!=0,i.i,i.a,i.d,(16&i.f)!=0,i.j,i.g,null)),i.c))))&&(c=e.rh())&&(r=c.Wk((a=i.e,$x(a),a))),r&&r!=t)return n(r)}catch(n){if(!Ti(n=Uu(n),60))throw n.e}return t}(((i=n?Js(n):null)&&i.Xk(),t)))==t&&(e=Js(n))&&e.Xk(),r}function WA(n,t){var e,i,r;for(r=1,e=n,i=t>=0?t:-t;i>0;)i%2==0?(e*=e,i=i/2|0):(r*=e,i-=1);return t<0?1/r:r}function W$(n){var t,e,i,r;if(null!=n){for(e=0;e<n.length;++e)if(t=n[e])for(Im(t.g,367),r=t.i,i=0;i<r;++i);}}function WL(){WL=C,nX3=new kT("INHERIT",0),nX2=new kT("INCLUDE_CHILDREN",1),nX4=new kT("SEPARATE_CHILDREN",2)}function WN(n,t){switch(t){case 1:n.n||(n.n=new An(nCK,n,1,7)),noK(n.n);return;case 2:q6(n,null);return}U$(n,t)}function Wx(n){switch(n.gc()){case 0:return nTI;case 1:return new CT(A1(n.Xb(0)));default:return new Np(n)}}function WD(n){switch(PV(),n.gc()){case 0:return $d(),nTL;case 1:return new gB(n.Kc().Pb());default:return new mC(n)}}function WR(n){switch(PV(),n.c){case 0:return $d(),nTL;case 1:return new gB(nit(new vR(n)));default:return new d3(n)}}function WK(n,t){A1(n);try{return n.xc(t)}catch(n){if(Ti(n=Uu(n),205)||Ti(n,173))return null;throw n.e}}function WF(n,t){A1(n);try{return n.Hc(t)}catch(n){if(Ti(n=Uu(n),205)||Ti(n,173))return!1;throw n.e}}function W_(n,t){A1(n);try{return n._b(t)}catch(n){if(Ti(n=Uu(n),205)||Ti(n,173))return!1;throw n.e}}function WB(n,t){n.a.c.length>0&&XP(Im(CA(n.a,n.a.c.length-1),570),t)||IE(n.a,new KB(t))}function WH(n){var t;return t=new gX,t.a+="VerticalSegment ",jS(t,n.e),t.a+=" ",jP(t,Tx(new g_,new h1(n.k))),t.a}function Wq(n){var t;return(64&n.Db)!=0?nrN(n):(t=new TW(nrN(n)),t.a+=" (name: ",jT(t,n.zb),t.a+=")",t.a)}function WG(n,t,e){var i,r;return r=n.sb,n.sb=t,(4&n.Db)!=0&&(1&n.Db)==0&&(i=new O9(n,1,4,r,t),e?e.Ei(i):e=i),e}function Wz(n,t){var e,i;for(e=0,i=V_(n,t).Kc();i.Ob();)e+=null!=ntP(Im(i.Pb(),11),(nhu(),nxA))?1:0;return e}function WU(n,t,e){var i,r,c;for(i=0,c=Jz(n,0);c.b!=c.d.c&&!((r=gy(Ss(RP(c))))>e);)r>=t&&++i;return i}function WX(n,t,e){var i,r;return r=n.r,n.r=t,(4&n.Db)!=0&&(1&n.Db)==0&&(i=new O9(n,1,8,r,n.r),e?e.Ei(i):e=i),e}function WW(n,t){var e,i;return(i=(e=Im(t,676)).vk())||e.wk(i=Ti(t,88)?new jt(n,Im(t,26)):new D$(n,Im(t,148))),i}function WV(n,t,e){var i;n.qi(n.i+1),i=n.oi(t,e),t!=n.i&&now(n.g,t,n.g,t+1,n.i-t),$t(n.g,t,i),++n.i,n.bi(t,e),n.ci()}function WQ(n,t){var e;return(e=new nu,n.a.sd(e))?(Tl(),new ge($x(Bw(n,e.a,t)))):($R(n),Tl(),Tl(),nMO)}function WJ(n,t){switch(t.g){case 2:case 1:return V_(n,t);case 3:case 4:return zI(V_(n,t))}return LV(),LV(),nMv}function WY(n,t){return jw(n)?Pv(n,t):jb(n)?Pp(n,t):jl(n)?($x(n),jf(n)===jf(t)):Ok(n)?n.Fb(t):Ot(n)?jf(n)===jf(t):Df(n,t)}function WZ(n,t){var e;0!=n.c.length&&(j9(e=Im(Jx(n,_f(nPV,nw9,10,n.c.length,0,1)),193),new eo),niC(e,t))}function W1(n,t){var e;0!=n.c.length&&(j9(e=Im(Jx(n,_f(nPV,nw9,10,n.c.length,0,1)),193),new es),niC(e,t))}function W0(n,t,e,i){switch(t){case 1:return n.n||(n.n=new An(nCK,n,1,7)),n.n;case 2:return n.k}return ZT(n,t,e,i)}function W2(){W2=C,nXO=new ky(nbj,0),nXC=new ky(nbv,1),nXI=new ky(nbp,2),nXP=new ky(nbC,3),nXA=new ky("UP",4)}function W3(){W3=C,nA_=new m3(nwY,0),nAF=new m3("INSIDE_PORT_SIDE_GROUPS",1),nAK=new m3("FORCE_MODEL_ORDER",2)}function W4(n,t,e){if(n<0||t>e)throw new gu(nlB+n+nlq+t+", size: "+e).e;if(n>t)throw new gd(nlB+n+nlH+t).e}function W5(n,t,e){if(t<0)nic(n,e);else{if(!e.Ij())throw new gd(nyn+e.ne()+nyt).e;Im(e,66).Nj().Vj(n,n.yh(),t)}}function W6(n,t,e,i,r,c){this.e=new wn,this.f=(qF(),n_W),IE(this.e,n),this.d=t,this.a=e,this.b=i,this.f=r,this.c=c}function W8(n,t){var e,i;for(i=new Td(n);i.e!=i.i.gc();)if(e=Im(J1(i),26),jf(t)===jf(e))return!0;return!1}function W9(n){return n>=65&&n<=70?n-65+10:n>=97&&n<=102?n-97+10:n>=48&&n<=57?n-48:0}function W7(n){var t;return(64&n.Db)!=0?nrN(n):(t=new TW(nrN(n)),t.a+=" (source: ",jT(t,n.d),t.a+=")",t.a)}function Vn(n,t){var e;e=(256&n.Bb)!=0,t?n.Bb|=256:n.Bb&=-257,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new Fi(n,1,2,e,t))}function Vt(n,t){var e;e=(256&n.Bb)!=0,t?n.Bb|=256:n.Bb&=-257,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new Fi(n,1,8,e,t))}function Ve(n,t){var e;e=(256&n.Bb)!=0,t?n.Bb|=256:n.Bb&=-257,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new Fi(n,1,8,e,t))}function Vi(n,t){var e;e=(512&n.Bb)!=0,t?n.Bb|=512:n.Bb&=-513,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new Fi(n,1,3,e,t))}function Vr(n,t){var e;e=(512&n.Bb)!=0,t?n.Bb|=512:n.Bb&=-513,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new Fi(n,1,9,e,t))}function Vc(n,t){var e;return -1==n.b&&n.a&&(e=n.a.Gj(),n.b=e?n.c.Xg(n.a.aj(),e):Qj(n.c.Tg(),n.a)),n.c.Og(n.b,t)}function Va(n){var t,e;return n>-129&&n<128?(t=n+128,(e=(Cu(),nT0)[t])||(e=nT0[t]=new hB(n)),e):new hB(n)}function Vu(n){var t,e;return n>-129&&n<128?(t=n+128,(e=(Ck(),nT9)[t])||(e=nT9[t]=new hq(n)),e):new hq(n)}function Vo(n){var t;return n.k==(ntY(),nAU)&&((t=Im(ntP(n,(nhu(),nxr)),61))==(nsR(),nW$)||t==nWV)}function Vs(n,t,e){var i,r;return(r=nrR(n.b,t))&&(i=Im(noI(BI(n,r),""),26))?nrO(n,i,t,e):null}function Vh(n,t){var e,i;for(i=new Td(n);i.e!=i.i.gc();)if(e=Im(J1(i),138),jf(t)===jf(e))return!0;return!1}function Vf(n,t,e){var i;if(t>(i=n.gc()))throw new Pt(t,i).e;if(n.hi()&&n.Hc(e))throw new gd(ny0).e;n.Xh(t,e)}function Vl(n){var t,e;for(e=n.p.a.ec().Kc();e.Ob();)if((t=Im(e.Pb(),213)).f&&n.b[t.c]<-.0000000001)return t;return null}function Vb(n,t){switch(n.b.g){case 0:case 1:return t;case 2:case 3:return new Lj(t.d,0,t.a,t.b);default:return null}}function Vw(n){switch(n.g){case 2:return nXC;case 1:return nXI;case 4:return nXP;case 3:return nXA;default:return nXO}}function Vd(n){switch(n.g){case 1:return nWJ;case 2:return nW$;case 3:return nWA;case 4:return nWV;default:return nWQ}}function Vg(n){switch(n.g){case 1:return nWV;case 2:return nWJ;case 3:return nW$;case 4:return nWA;default:return nWQ}}function Vp(n){switch(n.g){case 1:return nWA;case 2:return nWV;case 3:return nWJ;case 4:return nW$;default:return nWQ}}function Vv(n,t){return n<t?-1:n>t?1:n==t?0==n?Vv(1/n,1/t):0:isNaN(n)?isNaN(t)?0:1:-1}function Vm(n,t,e){var i,r;return n.ej()?(r=n.fj(),i=niS(n,t,e),n.$i(n.Zi(7,Va(e),i,t,r)),i):niS(n,t,e)}function Vy(n,t){var e,i,r,c;null==n.d?(++n.e,--n.f):(r=t.cd(),i=((e=t.Sh())&nhM)%n.d.length,c=nrD(n,i,e,r),++n.e,--n.f,Im(n.d[i].$c(c),133).dd())}function Vk(n,t){var e;e=(n.Bb&nyp)!=0,t?n.Bb|=nyp:n.Bb&=-1025,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new Fi(n,1,10,e,t))}function Vj(n,t){var e;e=(n.Bb&nlu)!=0,t?n.Bb|=nlu:n.Bb&=-4097,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new Fi(n,1,12,e,t))}function VE(n,t){var e;e=(n.Bb&nk7)!=0,t?n.Bb|=nk7:n.Bb&=-8193,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new Fi(n,1,15,e,t))}function VT(n,t){var e;e=(n.Bb&njn)!=0,t?n.Bb|=njn:n.Bb&=-2049,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new Fi(n,1,11,e,t))}function VM(n,t){var e,i,r,c;for(i=new h1(t);i.a<i.c.c.length;){e=Im(De(i),46),Bh(n.b.b,e.b),r=Im(e.a,189),c=Im(e.b,81),Tn(r.a,c)&&(c.d=null)}}function VS(n,t){var e;e=(n.Bb&nhY)!=0,t?n.Bb|=nhY:n.Bb&=-16385,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new Fi(n,1,16,e,t))}function VP(n,t){var e;e=(n.Bb&nya)!=0,t?n.Bb|=nya:n.Bb&=-32769,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new Fi(n,1,18,e,t))}function VI(n,t){var e;e=(n.Bb&nya)!=0,t?n.Bb|=nya:n.Bb&=-32769,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new Fi(n,1,18,e,t))}function VC(n,t){var e;e=(n.Bb&nls)!=0,t?n.Bb|=nls:n.Bb&=-65537,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new Fi(n,1,20,e,t))}function VO(n){var t;return t=_f(nY$,nfS,25,2,15,1),n-=nls,t[0]=(n>>10)+nlh&nfI,t[1]=(1023&n)+56320&nfI,Je(t,0,t.length)}function VA(n){var t;return(t=Im(ntP(n,(ns8(),nKE)),103))==(W2(),nXO)?gy(Ss(ntP(n,nKn)))>=1?nXC:nXP:t}function V$(n){if(n.c)V$(n.c);else if(n.d)throw new gg("Stream already terminated, can't be modified or used").e}function VL(n){var t;return(64&n.Db)!=0?nrN(n):(t=new TW(nrN(n)),t.a+=" (identifier: ",jT(t,n.k),t.a+=")",t.a)}function VN(n,t,e){var i;return pw(),qc(i=new aY,t),qa(i,e),n&&_P((n.a||(n.a=new Tg(nCI,n,5)),n.a),i),i}function Vx(n,t,e,i){var r,c,a,u;return $x(i),$x(e),null==(c=null==(r=n.xc(t))?e:(a=Im(r,15),u=Im(e,14),a.Gc(u),a))?n.Bc(t):n.zc(t,c),c}function VD(n){var t,e,i,r;return Gv(e=new PR(t=Im(pf((r=(i=n.gm).f)==nE2?i:r),9),Im(Sz(t,t.length),9),0),n),e}function VR(n,t){var e;return j4(n)&&j4(t)&&nln<(e=n-t)&&e<nf9?e:zA(Uc(j4(n)?zz(n):n,j4(t)?zz(t):t))}function VK(n,t){var e,i,r,c,a,u;return j4(n)&&j4(t)&&nln<(e=n+t)&&e<nf9?e:zA((i=j4(n)?zz(n):n,r=j4(t)?zz(t):t,c=i.l+r.l,a=i.m+r.m+(c>>22),u=i.h+r.h+(a>>22),Ez(c&nf4,a&nf4,u&nf5)))}function VF(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j;return j4(n)&&j4(t)&&nln<(e=n*t)&&e<nf9?e:zA((i=j4(n)?zz(n):n,r=j4(t)?zz(t):t,c=8191&i.l,a=i.l>>13|(15&i.m)<<9,u=i.m>>4&8191,o=i.m>>17|(255&i.h)<<5,s=(1048320&i.h)>>8,h=8191&r.l,f=r.l>>13|(15&r.m)<<9,l=r.m>>4&8191,b=r.m>>17|(255&r.h)<<5,w=(1048320&r.h)>>8,v=c*h,m=a*h,y=u*h,k=o*h,j=s*h,0!=f&&(m+=c*f,y+=a*f,k+=u*f,j+=o*f),0!=l&&(y+=c*l,k+=a*l,j+=u*l),0!=b&&(k+=c*b,j+=a*b),0!=w&&(j+=c*w),d=(v&nf4)+((511&m)<<13),g=(v>>22)+(m>>9)+((262143&y)<<4)+((31&k)<<17),p=(y>>18)+(k>>5)+((4095&j)<<8),g+=d>>22,d&=nf4,p+=g>>22,Ez(d,g&=nf4,p&=nf5)))}function V_(n,t){var e;return n.i||nii(n),(e=Im($6(n.g,t),46))?new x2(n.j,Im(e.a,19).a,Im(e.b,19).a):(LV(),LV(),nMv)}function VB(n,t,e){var i;return i=n.a.get(t),n.a.set(t,void 0===e?null:e),void 0===i?(++n.c,Ni(n.b)):++n.d,i}function VH(){var n,t,e;nn7(),e=nMx+++Date.now(),n=NU(nTv.Math.floor(e*nlC))&nlA,t=NU(e-n*nlO),this.a=1502^n,this.b=t^nlI}function Vq(n){var t,e;for(t=new wn,e=new h1(n.j);e.a<e.c.c.length;)IE(t,Im(De(e),11).b);return A1(t),new jG(t)}function VG(n){var t,e;for(t=new wn,e=new h1(n.j);e.a<e.c.c.length;)IE(t,Im(De(e),11).e);return A1(t),new jG(t)}function Vz(n){var t,e;for(t=new wn,e=new h1(n.j);e.a<e.c.c.length;)IE(t,Im(De(e),11).g);return A1(t),new jG(t)}function VU(n){return n-=n>>1&1431655765,n=((n=(n>>2&858993459)+(858993459&n))>>4)+n&252645135,n+=n>>8,63&(n+=n>>16)}function VX(n){var t,e,i,r,c;for(t=new SK(n.Hd().gc()),r=0,i=_H(n.Hd().Kc());i.Ob();)e=i.Pb(),c=Va(r++),IE(t.a,($1(),Yq(e,c),new vw(e,c)));return function(n){var t,e,i;switch($1(),n.c.length){case 0:return nTC;case 1:return e=(t=Im(nit(new h1(n)),42)).cd(),i=t.dd(),$1(),Yq(e,i),new $X(e,i);default:return new d4(Im(Jx(n,_f(nE1,nh7,42,n.c.length,0,1)),165))}}(t.a)}function VW(n,t){0==n.n.c.length&&IE(n.n,new NZ(n.s,n.t,n.i)),IE(n.b,t),YJ(Im(CA(n.n,n.n.c.length-1),211),t),nuB(n,t)}function VV(n){return(n.c!=n.b.b||n.i!=n.g.b)&&(n.a.c=_f(nEX,nhA,1,0,5,1),Uf(n.a,n.b),Uf(n.a,n.g),n.c=n.b.b,n.i=n.g.b),n.a}function VQ(n,t){var e,i;for(i=0,e=Im(t.Kb(n),20).Kc();e.Ob();)gm(So(ntP(Im(e.Pb(),17),(nhu(),nxD))))||++i;return i}function VJ(){VJ=C,nxJ=new yR(nwY,0),nxX=new yR("FIRST",1),nxW=new yR(ndy,2),nxV=new yR("LAST",3),nxQ=new yR(ndk,4)}function VY(){VY=C,nX_=new kj(nbj,0),nXK=new kj("POLYLINE",1),nXR=new kj("ORTHOGONAL",2),nXF=new kj("SPLINES",3)}function VZ(){VZ=C,nqW=new ku("ASPECT_RATIO_DRIVEN",0),nqV=new ku("MAX_SCALE_DRIVEN",1),nqX=new ku("AREA_DRIVEN",2)}function V1(){V1=C,nGT=new ks("P1_STRUCTURE",0),nGM=new ks("P2_PROCESSING_ORDER",1),nGS=new ks("P3_EXECUTION",2)}function V0(){V0=C,nqi=new ke("OVERLAP_REMOVAL",0),nqt=new ke("COMPACTION",1),nqe=new ke("GRAPH_SIZE_CALCULATION",2)}function V2(n,t){return Ex(),qR(nfg),nTv.Math.abs(n-t)<=nfg||n==t||isNaN(n)&&isNaN(t)?0:n<t?-1:n>t?1:j1(isNaN(n),isNaN(t))}function V3(n,t){var e,i;for(e=Jz(n,0);e.b!=e.d.c;){if($x(i=Ss(RP(e))),i==t)return;if(i>t){DK(e);break}}AK(e,t)}function V4(n,t){var e,i,r,c,a;if(e=t.f,JR(n.c.d,e,t),null!=t.g)for(r=t.g,c=0,a=r.length;c<a;++c)i=r[c],JR(n.c.e,i,t)}function V5(n,t,e,i){if(t<0)nr2(n,e,i);else{if(!e.Ij())throw new gd(nyn+e.ne()+nyt).e;Im(e,66).Nj().Tj(n,n.yh(),t,i)}}function V6(n,t){if(t==n.d)return n.e;if(t==n.e)return n.d;throw new gd("Node "+t+" not part of edge "+n).e}function V8(n,t){switch(t.g){case 2:return n.b;case 1:return n.c;case 4:return n.d;case 3:return n.a;default:return!1}}function V9(n,t,e,i){switch(t){case 3:return n.f;case 4:return n.g;case 5:return n.i;case 6:return n.j}return W0(n,t,e,i)}function V7(n){return Array.isArray(n)&&n.im===I?pb(Xp(n))+"@"+(Xg(n)>>>0).toString(16):n.toString()}function Qn(n){var t;this.a=new PR(t=Im(n.e&&n.e(),9),Im(Sz(t,t.length),9),0),this.b=_f(nEX,nhA,1,this.a.a.length,5,1)}function Qt(n){var t,e,i;for(this.a=new j7,i=new h1(n);i.a<i.c.c.length;)e=Im(De(i),14),function(n,t){var e,i;for(i=t.Kc();i.Ob();)e=Im(i.Pb(),266),n.b=!0,Av(n.e,e),e.b=n}(t=new CW,e),Av(this.a,t)}function Qe(n){var t;if(n.b){if(Qe(n.b),n.b.d!=n.c)throw(new wI).e}else n.d.dc()&&(t=Im(n.f.c.xc(n.e),14))&&(n.d=t)}function Qi(n,t,e){var i,r;for(i=0,r=n.length;i<r;i++)if(UB((x5(i,n.length),n.charCodeAt(i)),t,e))return!0;return!1}function Qr(n,t){var e,i,r,c,a;for(c=0,i=0,e=0,a=t.length;c<a;++c)(r=t[c])>0&&(i+=r,++e);return e>1&&(i+=n.d*(e-1)),i}function Qc(n){var t,e,i;for(i=new gz,i.a+="[",t=0,e=n.gc();t<e;)jT(i,T4(n.ki(t))),++t<e&&(i.a+=nhC);return i.a+="]",i.a}function Qa(n){var t,e;for(e=gy(Ss(n.a.We((nha(),nXm)))),t=new h1(n.a.xf());t.a<t.c.c.length;)nsz(n,Im(De(t),680),e)}function Qu(n,t){var e,i;for(i=new h1(t);i.a<i.c.c.length;)e=Im(De(i),46),IE(n.b.b,Im(e.b,81)),D2(Im(e.a,189),Im(e.b,81))}function Qo(n,t,e,i,r,c){this.a=n,this.c=t,this.b=e,this.f=i,this.d=r,this.e=c,this.c>0&&this.b>0&&CK(this.c,this.b,this.a)}function Qs(n){QS(),this.c=Fs(Um(xg(nCt,1),nhA,831,0,[n_c])),this.b=new wt,this.a=n,$J(this.b,n_a,1),HR(n_u,new bi(this))}function Qh(n,t){var e;return n.d?Au(n.b,t)?Im($a(n.b,t),51):(e=t.Kf(),$J(n.b,t,e),e):t.Kf()}function Qf(n,t){var e;return jf(n)===jf(t)||!!Ti(t,91)&&(e=Im(t,91),n.e==e.e&&n.d==e.d&&function(n,t){var e;for(e=n.d-1;e>=0&&n.a[e]===t[e];e--);return e<0}(n,e.a))}function Ql(n){switch(nsR(),n.g){case 4:return nW$;case 1:return nWA;case 3:return nWV;case 2:return nWJ;default:return nWQ}}function Qb(n,t){switch(t){case 3:return 0!=n.f;case 4:return 0!=n.g;case 5:return 0!=n.i;case 6:return 0!=n.j}return zH(n,t)}function Qw(n){switch(n.g){case 0:return new cX;case 1:return new cQ;default:throw new gd(ndp+(null!=n.f?n.f:""+n.g)).e}}function Qd(n){switch(n.g){case 0:return new dq;case 1:return new dw;default:throw new gd(nvQ+(null!=n.f?n.f:""+n.g)).e}}function Qg(n,t,e){var i,r;for(r=n.Kc();r.Ob();)if(i=r.Pb(),jf(t)===jf(i)||null!=t&&WY(t,i))return e&&r.Qb(),!0;return!1}function Qp(n,t,e){var i,r;if(++n.j,e.dc())return!1;for(r=e.Kc();r.Ob();)i=r.Pb(),n.Hi(t,n.oi(t,i)),++t;return!0}function Qv(n,t){var e;if(!t)return!1;for(e=0;e<n.i;++e)if(Im(n.g[e],366).Di(t))return!1;return _P(n,t)}function Qm(n){var t,e,i,r,c,a;for(t=new hA,i=new hV(n.b.Kc());i.b.Ob();){e=function(n){var t,e,i,r,c,a,u,o;if(Ti(n,149))return function(n){var t,e,i,r,c;return c=nta(n),null!=n.a&&IY(c,"category",n.a),p2(new hN(n.d))||(Hy(c,"knownOptions",i=new hA),t=new b$(i),KA(new hN(n.d),t)),p2(n.g)||(Hy(c,"supportedFeatures",r=new hA),e=new bL(r),KA(n.g,e)),c}(Im(n,149));if(Ti(n,229))return r=nta(t=Im(n,229)),p2(t.c)||(Hy(r,"knownLayouters",i=new hA),e=new bN(i),KA(t.c,e)),r;if(Ti(n,23))return o=nta(c=Im(n,23)),null!=c.e&&IY(o,nyV,c.e),c.k&&IY(o,"type",MP(c.k)),p2(c.j)||(Hy(o,nyO,u=new hA),a=new bx(u),KA(c.j,a)),o;throw new gd(nyB+ntK(new gE(Um(xg(nEX,1),nhA,1,5,[n])))).e}(Im(i.b.Pb(),686)),r=t,c=t.a.length,a=e,BQ(r,c),RV(r,c,a)}return t.a}function Qy(n){var t;return n.c||(n.c=new n$),E_(n.d,new nN),function(n){var t,e,i,r,c,a,u;for(c=new pI(Im(A1(new nx),62)),u=nla,e=new h1(n.d);e.a<e.c.c.length;){for(u=(t=Im(De(e),222)).c.c;0!=c.a.c;)if((a=Im(function(n){if(!n)throw(new wO).e;return n.d}(function(n){var t,e;if(!n.b)return null;for(e=n.b;t=e.a[0];)e=t;return e}(c.a)),222)).c.c+a.c.b<u)NW(c.a,a);else break;for(r=new hU(new S5(new Mc(new hz(c.a).a).b));mE(r.a.a);)I2((i=Im(MA(r.a).cd(),222)).b,t),I2(t.b,i);U5(c.a,t,(TX(),nTV))}}(n),t=function(n){var t,e,i,r,c,a,u,o,s,h;for(s=n.a,t=new w_,o=0,i=new h1(n.d);i.a<i.c.c.length;){for(e=Im(De(i),222),h=0,GG(e.b,new nO),a=Jz(e.b,0);a.b!=a.d.c;)c=Im(RP(a),222),t.a._b(c)&&(r=e.c,h<(u=c.c).d+u.a+s&&h+r.a+s>u.d&&(h=u.d+u.a+s));e.c.d=h,t.a.zc(e,t),o=nTv.Math.max(o,e.c.d+e.c.a)}return o}(n),vF(new CL(null,new x6(n.d,16)),new fM(n)),t}function Qk(n){var t;return(64&n.Db)!=0?Wq(n):(t=new TW(Wq(n)),t.a+=" (instanceClassName: ",jT(t,n.D),t.a+=")",t.a)}function Qj(n,t){var e,i,r;if(null==n.i&&nuq(n),e=n.i,-1!=(i=t.aj())){for(r=e.length;i<r;++i)if(e[i]==t)return i}return -1}function QE(n){var t;switch($w(),(t=n.Pc()).length){case 0:return nTI;case 1:return new CT(A1(t[0]));default:return new Np(function(n){var t,e;for(t=0,e=n.length;t<e;t++)if(null==n[t])throw new gv("at index "+t).e;return new gE(n)}(t))}}function QT(n,t){switch(t.g){case 1:return Iv(n.j,(zn(),nAZ));case 2:return Iv(n.j,(zn(),nA0));default:return LV(),LV(),nMv}}function QM(n,t){switch(t){case 3:qo(n,0);return;case 4:qs(n,0);return;case 5:qh(n,0);return;case 6:qf(n,0);return}WN(n,t)}function QS(){QS=C,me(),ns8(),n_a=nFJ,n_u=Fs(Um(xg(nCi,1),npX,146,0,[nF_,nFB,nFq,nFG,nFX,nFW,nFV,nFQ,nFZ,nF0,nFH,nFz,nFY]))}function QP(n){var t,e;t=n.d==(neC(),nLB),e=nnX(n),t&&!e||!t&&e?UU(n.a,(ns8(),nR9),(Yv(),nzq)):UU(n.a,(ns8(),nR9),(Yv(),nzH))}function QI(){QI=C,nVl=new kL("SIMPLE",0),nVs=new kL("GROUP_DEC",1),nVf=new kL("GROUP_MIXED",2),nVh=new kL("GROUP_INC",3)}function QC(){QC=C,nJa=new ud,nQ7=new ug,nJn=new up,nJt=new uv,nJe=new um,nJi=new uy,nJr=new uk,nJc=new uj,nJu=new uE}function QO(n,t,e){HG(),de.call(this),this.a=Cv(nSh,[nhJ,nbg],[595,212],0,[nSb,nSl],2),this.c=new Et,this.g=n,this.f=t,this.d=e}function QA(n,t){this.n=Cv(nYx,[nhJ,nlo],[364,25],14,[t,NU(nTv.Math.ceil(n/32))],2),this.o=n,this.p=t,this.j=n-1>>1,this.k=t-1>>1}function Q$(n){var t,e,i,r;for(e=0,r=0,i=n.length;e<i;e++)x5(e,n.length),(t=n.charCodeAt(e))<64&&(r=Dr(r,OR(1,t)));return r}function QL(n,t){return n.i>0&&(t.length<n.i&&(t=qm(Xp(t).c,n.i)),now(n.g,0,t,0,n.i)),t.length>n.i&&$t(t,n.i,null),t}function QN(n,t,e){var i,r,c;return n.ej()?(i=n.i,c=n.fj(),WV(n,i,t),r=n.Zi(3,null,t,i,c),e?e.Ei(r):e=r):WV(n,n.i,t),e}function Qx(n){var t;return SE(),t=new Ee(Im(n.e.We((nha(),nU_)),8)),n.B.Hc((na9(),nVt))&&(t.a<=0&&(t.a=20),t.b<=0&&(t.b=20)),t}function QD(n){return Yp(),(n.q?n.q:(LV(),LV(),nMm))._b((ns8(),nFr))?Im(ntP(n,nFr),197):Im(ntP($L(n),nFc),197)}function QR(n,t){var e,i;return i=null,MH(n,(ns8(),nFU))&&(e=Im(ntP(n,nFU),94)).Xe(t)&&(i=e.We(t)),null==i&&(i=ntP($L(n),t)),i}function QK(n,t){var e,i,r;return!!Ti(t,42)&&(i=(e=Im(t,42)).cd(),$A(r=WK(n.Rc(),i),e.dd())&&(null!=r||n.Rc()._b(i)))}function QF(n,t){var e,i;return n.f>0&&(n.qj(),i=((e=null==t?0:Xg(t))&nhM)%n.d.length,-1!=nrD(n,i,e,t))}function Q_(n,t){var e,i,r;return n.f>0&&(n.qj(),r=((i=null==t?0:Xg(t))&nhM)%n.d.length,e=niA(n,r,i,t))?e.dd():null}function QB(n,t){var e,i,r,c;for(r=0,c=ncT(n.e.Tg(),t),e=Im(n.g,119);r<n.i;++r)if(i=e[r],c.rl(i.ak()))return!1;return!0}function QH(n){if(null!=n.b)return!0;for(;n.a.Ob();)if(n.b=n.a.Pb(),!Im(n.b,49).Zg())return!0;return n.b=null,!1}function Qq(n,t){n.mj();try{n.d.Vc(n.e++,t),n.f=n.d.j,n.g=-1}catch(n){if(Ti(n=Uu(n),73))throw(new wI).e;throw n.e}}function QG(n,t){var e,i;return EN(),e=SF((gx(),gx(),nTF)),i=null,t==e&&(i=Im(Nz(nTK,n),615)),i||(i=new $f(n),t==e&&xp(nTK,n,i)),i}function Qz(n,t){var e,i;n.a=VK(n.a,1),n.c=nTv.Math.min(n.c,t),n.b=nTv.Math.max(n.b,t),n.d+=t,e=t-n.f,i=n.e+e,n.f=i-n.e-e,n.e=i}function QU(n,t){var e;return j4(n)&&j4(t)&&nln<(e=n%t)&&e<nf9?e:zA((noz(j4(n)?zz(n):n,j4(t)?zz(t):t,!0),nTG))}function QX(n,t){var e;(function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w;for(l=new h1(n);l.a<l.c.c.length;){for(Mg((f=Im(De(l),10)).n),Mg(f.o),FH(f.f),na$(f),function(n){var t,e,i;switch(t=Im(ntP(n,(ns8(),nFs)),8),UU(n,nFs,new kp(t.b,t.a)),Im(ntP(n,nR9),248).g){case 1:UU(n,nR9,(Yv(),nzG));break;case 2:UU(n,nR9,(Yv(),nz_));break;case 3:UU(n,nR9,(Yv(),nzH));break;case 4:UU(n,nR9,(Yv(),nzq))}(n.q?n.q:(LV(),LV(),nMm))._b(nFO)&&(i=(e=Im(ntP(n,nFO),8)).a,e.a=e.b,e.b=i)}(f),w=new h1(f.j);w.a<w.c.c.length;){for(Mg((b=Im(De(w),11)).n),Mg(b.a),Mg(b.o),ne9(b,YV(b.j)),(r=Im(ntP(b,(ns8(),nFT)),19))&&UU(b,nFT,Va(-r.a)),i=new h1(b.g);i.a<i.c.c.length;){for(t=Jz((e=Im(De(i),17)).a,0);t.b!=t.d.c;)Mg(Im(RP(t),8));if(a=Im(ntP(e,nKV),74))for(c=Jz(a,0);c.b!=c.d.c;)Mg(Im(RP(c),8));for(s=new h1(e.b);s.a<s.c.c.length;)Mg((u=Im(De(s),70)).n),Mg(u.o)}for(h=new h1(b.f);h.a<h.c.c.length;)Mg((u=Im(De(h),70)).n),Mg(u.o)}for(f.k==(ntY(),nAU)&&(UU(f,(nhu(),nxr),YV(Im(ntP(f,nxr),61))),function(n){var t,e;e=Im(ntP(n,(ns8(),nKY)),163),t=Im(ntP(n,(nhu(),nxf)),303),e==(VJ(),nxW)?(UU(n,nKY,nxJ),UU(n,nxf,(BL(),nNW))):e==nxQ?(UU(n,nKY,nxJ),UU(n,nxf,(BL(),nNU))):t==(BL(),nNW)?(UU(n,nKY,nxW),UU(n,nxf,nNX)):t==nNU&&(UU(n,nKY,nxQ),UU(n,nxf,nNX))}(f)),o=new h1(f.b);o.a<o.c.c.length;)na$(u=Im(De(o),70)),Mg(u.o),Mg(u.n)}})(t),(e=Im(ntP(n,(ns8(),nKC)),276))&&UU(n,nKC,function(n){switch(n.g){case 0:return nNu;case 1:return nNo;case 2:return nNs;case 3:return nNh;case 4:return nNf;case 5:return nNl;default:return null}}(e)),Mg(n.c),Mg(n.f),FH(n.d),FH(Im(ntP(n,nK9),207))}function QW(n){this.e=_f(nYL,nfH,25,n.length,15,1),this.c=_f(nYN,nbf,25,n.length,16,1),this.b=_f(nYN,nbf,25,n.length,16,1),this.f=0}function QV(n){var t,e;0!=n.c&&(1==(t=Im(CA(n.a,n.b),287)).b?(++n.b,n.b<n.a.c.length&&((e=Im(CA(n.a,n.b),287)).b=e.a)):--t.b,--n.c)}function QQ(){QQ=C,nW0=new ES(15),nW1=new EM((nha(),nUU),nW0),nW3=new EM(nXj,15),nW2=new EM(nXu,Va(0)),nWZ=new EM(nUr,nwp)}function QJ(){QJ=C,nW6=new kA("PORTS",0),nW8=new kA("PORT_LABELS",1),nW5=new kA("NODE_LABELS",2),nW4=new kA("MINIMUM_SIZE",3)}function QY(n,t){var e,i;for(e=0,i=t.length;e<i;e+=2)ncz(n,(x5(e,t.length),t.charCodeAt(e)),(x5(e+1,t.length),t.charCodeAt(e+1)))}function QZ(n,t,e){var i,r,c,a;for(c=t-n.e,a=e-n.f,r=new h1(n.a);r.a<r.c.c.length;)YM(i=Im(De(r),187),i.s+c,i.t+a);n.e=t,n.f=e}function Q1(n,t){var e,i,r,c;return e=t>>5,t&=31,function(n,t,e,i){var r,c,a;if(0==i)now(t,0,n,e,n.length-e);else for(a=32-i,n[n.length-1]=0,c=n.length-1;c>e;c--)n[c]|=t[c-e-1]>>>a,n[c-1]=t[c-e-1]<<i;for(r=0;r<e;r++)n[r]=0}(i=_f(nYL,nfH,25,r=n.d+e+(0==t?0:1),15,1),n.a,e,t),DF(c=new As(n.e,r,i)),c}function Q0(n,t,e){var i,r;i=Im(Nz(nYa,t),117),r=Im(Nz(nYu,t),117),e?(xp(nYa,n,i),xp(nYu,n,r)):(xp(nYu,n,i),xp(nYa,n,r))}function Q2(n,t,e){var i,r,c;for(r=null,c=n.b;c;){if(i=n.a.ue(t,c.d),e&&0==i)return c;i>=0?c=c.a[1]:(r=c,c=c.a[0])}return r}function Q3(n,t,e){var i,r,c;for(r=null,c=n.b;c;){if(i=n.a.ue(t,c.d),e&&0==i)return c;i<=0?c=c.a[0]:(r=c,c=c.a[1])}return r}function Q4(n,t,e,i,r){var c,a,u;for(a=r;t.b!=t.c;)c=Im(Al(t),10),u=Im(V_(c,i).Xb(0),11),n.d[u.p]=a++,e.c[e.c.length]=u;return a}function Q5(n,t,e){var i,r,c,a,u;return a=n.k,u=t.k,r=Ss(QR(n,i=e[a.g][u.g])),c=Ss(QR(t,i)),nTv.Math.max(($x(r),r),($x(c),c))}function Q6(n,t,e){var i,r,c;for(r=Im($a(n.b,e),177),i=0,c=new h1(t.j);c.a<c.c.c.length;)r[Im(De(c),113).d.p]&&++i;return i}function Q8(n){var t,e;return null!=(t=Im(zF(n.a,4),126))?(e=_f(nCV,nkH,415,t.length,0,1),now(t,0,e,0,t.length),e):nVJ}function Q9(n,t){var e,i;if(Ti(t,245)){i=Im(t,245);try{return e=n.vd(i),0==e}catch(n){if(!Ti(n=Uu(n),205))throw n.e}}return!1}function Q7(n,t){return Ex(),Ex(),qR(nfg),(nTv.Math.abs(n-t)<=nfg||n==t||isNaN(n)&&isNaN(t)?0:n<t?-1:n>t?1:j1(isNaN(n),isNaN(t)))<0}function Jn(n,t){return Ex(),Ex(),qR(nfg),(nTv.Math.abs(n-t)<=nfg||n==t||isNaN(n)&&isNaN(t)?0:n<t?-1:n>t?1:j1(isNaN(n),isNaN(t)))<=0}function Jt(n,t){for(var e=0;!t[e]||""==t[e];)e++;for(var i=t[e++];e<t.length;e++)t[e]&&""!=t[e]&&(i+=n+t[e]);return i}function Je(n,t,e){var i,r,c,a,u;for(c=t+e,_b(t,c,n.length),a="",r=t;r<c;)i=nTv.Math.min(r+1e4,c),a+=(u=n.slice(r,i),String.fromCharCode.apply(null,u)),r=i;return a}function Ji(n){var t,e,i,r;if(null==n)return null;for(r=new wn,t=XO(n),e=0,i=t.length;e<i;++e)IE(r,noe(t[e],!0));return r}function Jr(n){var t,e,i,r;if(null==n)return null;for(r=new wn,t=XO(n),e=0,i=t.length;e<i;++e)IE(r,noe(t[e],!0));return r}function Jc(n){var t,e,i,r;if(null==n)return null;for(r=new wn,t=XO(n),e=0,i=t.length;e<i;++e)IE(r,noe(t[e],!0));return r}function Ja(n,t){var e,i,r;return(n.qj(),r=((i=null==t?0:Xg(t))&nhM)%n.d.length,e=niA(n,r,i,t))?(qq(n,e),e.dd()):null}function Ju(n){var t,e;for(e=nel(n),t=null;2==n.c;)nhe(n),t||(nhh(),nhh(),++nYO,nox(t=new EO(2),e),e=t),e.$l(nel(n));return e}function Jo(n){if(!(nyF in n.a))throw new gS("Every element must have an id.").e;return nil(N5(n,nyF))}function Js(n){var t,e,i;if(!(i=n.Zg()))for(t=0,e=n.eh();e;e=e.eh()){if(++t>nll)return e.fh();if((i=e.Zg())||e==n)break}return i}function Jh(n){return(xl(),Ti(n,156))?Im($a(nVW,nTw),288).vg(n):Au(nVW,Xp(n))?Im($a(nVW,Xp(n)),288).vg(n):null}function Jf(n,t){return n.e>t.e?1:n.e<t.e?-1:n.d>t.d?n.e:n.d<t.d?-t.e:n.e*XN(n.a,t.a,n.d)}function Jl(n){return n>=48&&n<48+nTv.Math.min(10,10)?n-48:n>=97&&n<97?n-97+10:n>=65&&n<65?n-65+10:-1}function Jb(n,t){var e;return jf(t)===jf(n)||!!Ti(t,21)&&(e=Im(t,21)).gc()==n.gc()&&n.Ic(e)}function Jw(n){switch(n.g){case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:return!0;default:return!1}}function Jd(n,t){if(n.a<0)throw new gg("Did not call before(...) or after(...) before calling add(...).").e;return Mf(n,n.a,t),n}function Jg(n,t,e){var i;(n.Db&t)!=0?null==e?function(n,t){var e,i,r,c,a,u,o;if(1==(i=VU(254&n.Db)))n.Eb=null;else if(c=HJ(n.Eb),2==i)r=Zn(n,t),n.Eb=c[0==r?1:0];else{for(e=2,a=_f(nEX,nhA,1,i-1,5,1),u=0,o=0;e<=128;e<<=1)e==t?++u:(n.Db&e)!=0&&(a[o++]=c[u++]);n.Eb=a}n.Db&=~t}(n,t):-1==(i=Zn(n,t))?n.Eb=e:$t(HJ(n.Eb),i,e):null!=e&&function(n,t,e){var i,r,c,a,u,o;if(0==(r=VU(254&n.Db)))n.Eb=e;else{if(1==r)a=_f(nEX,nhA,1,2,5,1),0==Zn(n,t)?(a[0]=e,a[1]=n.Eb):(a[0]=n.Eb,a[1]=e);else for(i=2,a=_f(nEX,nhA,1,r+1,5,1),c=HJ(n.Eb),u=0,o=0;i<=128;i<<=1)i==t?a[o++]=e:(n.Db&i)!=0&&(a[o++]=c[u++]);n.Eb=a}n.Db|=t}(n,t,e)}function Jp(n){var t;return(32&n.Db)==0&&0!=(t=AW(Im(zF(n,16),26)||n.zh())-AW(n.zh()))&&Jg(n,32,_f(nEX,nhA,1,t,5,1)),n}function Jv(n,t,e){t.b=nTv.Math.max(t.b,-e.a),t.c=nTv.Math.max(t.c,e.a-n.a),t.d=nTv.Math.max(t.d,-e.b),t.a=nTv.Math.max(t.a,e.b-n.b)}function Jm(n,t){return $x(n),null!=t&&(!!Pv(n,t)||n.length==t.length&&Pv(n.toLowerCase(),t.toLowerCase()))}function Jy(n){var t,e;return WM(n,-129)>0&&0>WM(n,128)?(t=CZ(n)+128,(e=(Cy(),nT3)[t])||(e=nT3[t]=new hH(n)),e):new hH(n)}function Jk(n,t){var e,i;return(e=t.Hh(n.a))&&null!=(i=Sh(Q_((e.b||(e.b=new M2((nhl(),nQQ),nQE,e)),e.b),nyQ)))?i:t.ne()}function Jj(n,t,e){this.c=n,this.f=new wn,this.e=new ps,this.j=new CE,this.n=new CE,this.b=t,this.g=new Lj(t.c,t.d,t.b,t.a),this.a=e}function JE(n){var t,e,i;for(e=0,this.a=new j7,this.d=new w_,this.e=0,i=n.length;e<i;++e)t=n[e],this.f||(this.f=t),D2(this,t)}function JT(n){(nc4(),0==n.length)?(this.e=0,this.d=1,this.a=Um(xg(nYL,1),nfH,25,15,[0])):(this.e=1,this.d=n.length,this.a=n,DF(this))}function JM(n,t,e){de.call(this),this.a=_f(nSh,nbg,212,(HB(),Um(xg(nSf,1),nfh,232,0,[nSW,nSV,nSQ])).length,0,1),this.b=n,this.d=t,this.c=e}function JS(n){this.d=new wn,this.e=new R7,this.c=_f(nYL,nfH,25,(nsR(),Um(xg(nCy,1),nwZ,61,0,[nWQ,nW$,nWA,nWV,nWJ])).length,15,1),this.b=n}function JP(n){var t;jf(nrM(n,(nha(),nUj)))===jf((WL(),nX3))&&(xt(n)?(t=Im(nrM(xt(n),nUj),334),Yu(n,nUj,t)):Yu(n,nUj,nX4))}function JI(n,t,e){var i,r,c;i=t.c.p,c=t.p,n.b[i][c]=new NS(n,t),e&&(n.a[i][c]=new lP(t),(r=Im(ntP(t,(nhu(),nxl)),10))&&niP(n.d,r,t))}function JC(n,t){var e;e=!n.A.Hc((QJ(),nW8))||n.q==(nn2(),nWv),n.u.Hc((nis(),nWS))?e?function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;if(f=Im(Im(Fl(n.r,t),21),84),t==(nsR(),nWA)||t==nWJ){nsA(n,t);return}for(c=t==nW$?(zZ(),nPk):(zZ(),nPT),m=t==nW$?(B$(),nS4):(B$(),nS2),r=(i=(e=Im($6(n.b,t),124)).i).c+Xi(Um(xg(nYR,1),nlf,25,15,[e.n.b,n.C.b,n.k])),g=i.c+i.b-Xi(Um(xg(nYR,1),nlf,25,15,[e.n.c,n.C.c,n.k])),j=P9(c),E=n.t,j.a=E,p=t==nW$?nla:nlc,h=f.Kc();h.Ob();)(o=Im(h.Pb(),111)).c&&!(o.c.d.c.length<=0)&&(d=o.b.rf(),w=o.e,(b=(l=o.c).i).b=(u=l.n,l.e.a+u.b+u.c),b.a=(a=l.n,l.e.b+a.d+a.a),Nk(m,nbm),l.f=m,_I(l,(_1(),nS1)),b.c=w.a-(b.b-d.a)/2,y=nTv.Math.min(r,w.a),k=nTv.Math.max(g,w.a+d.a),b.c<y?b.c=y:b.c+b.b>k&&(b.c=k-b.b),IE(j.d,new Or(b,Vb(j,b))),p=t==nW$?nTv.Math.max(p,w.b+o.b.rf().b):nTv.Math.min(p,w.b));for(p+=t==nW$?n.t:-n.t,(v=Qy((j.e=p,j)))>0&&(Im($6(n.b,t),124).a.b=v),s=f.Kc();s.Ob();)(o=Im(s.Pb(),111)).c&&!(o.c.d.c.length<=0)&&(b=o.c.i,b.c-=o.e.a,b.d-=o.e.b)}(n,t):nsA(n,t):n.u.Hc(nWI)&&(e?function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;if(2>=(s=Im(Im(Fl(n.r,t),21),84)).gc()||t==(nsR(),nWA)||t==(nsR(),nWJ)){nsU(n,t);return}for(w=n.u.Hc((nis(),nWC)),e=t==(nsR(),nW$)?(zZ(),nPT):(zZ(),nPk),g=t==nW$?(B$(),nS2):(B$(),nS4),p=P9(e),v=n.s,p.a=v,d=t==nW$?nlc:nla,o=s.Kc();o.Ob();)(a=Im(o.Pb(),111)).c&&!(a.c.d.c.length<=0)&&(b=a.b.rf(),l=a.e,(f=(h=a.c).i).b=(r=h.n,h.e.a+r.b+r.c),f.a=(c=h.n,h.e.b+c.d+c.a),w?(f.c=l.a-(i=h.n,h.e.a+i.b+i.c)-n.s,w=!1):f.c=l.a+b.a+n.s,Nk(g,nbm),h.f=g,_I(h,(_1(),nS1)),IE(p.d,new Or(f,Vb(p,f))),d=t==nW$?nTv.Math.min(d,l.b):nTv.Math.max(d,l.b+a.b.rf().b));for(d+=t==nW$?-n.t:n.t,Qy((p.e=d,p)),u=s.Kc();u.Ob();)(a=Im(u.Pb(),111)).c&&!(a.c.d.c.length<=0)&&(f=a.c.i,f.c-=a.e.a,f.d-=a.e.b)}(n,t):nsU(n,t))}function JO(n,t){var e,i;if(++n.j,null!=t&&function(n,t){var e,i,r;if(jf(n)===jf(t))return!0;if(null==n||null==t||n.length!=t.length)return!1;for(e=0;e<n.length;++e)if(i=n[e],r=t[e],!(jf(i)===jf(r)||null!=i&&WY(i,r)))return!1;return!0}(t,e=Ti(i=n.a.Cb,97)?Im(i,97).Jg():null)){Jg(n.a,4,e);return}Jg(n.a,4,Im(t,126))}function JA(n,t,e){return new Lj(nTv.Math.min(n.a,t.a)-e/2,nTv.Math.min(n.b,t.b)-e/2,nTv.Math.abs(n.a-t.a)+e,nTv.Math.abs(n.b-t.b)+e)}function J$(n,t,e){var i;switch(i=e[n.g][t],n.g){case 1:case 3:return new kp(0,i);case 2:case 4:return new kp(i,0);default:return null}}function JL(n,t,e){var i,r,c,a;return c=no7(qK(),t),i=null,c&&(a=noY(c,e),r=null,null!=a&&(r=n.Ye(c,a)),i=r),i}function JN(n,t,e,i){var r;if(t>=(r=n.length))return r;for(t=t>0?t:0;t<r&&!UB((x5(t,n.length),n.charCodeAt(t)),e,i);t++);return t}function Jx(n,t){var e,i;for(i=n.c.length,t.length<i&&(t=Bs(Array(i),t)),e=0;e<i;++e)$t(t,e,n.c[e]);return t.length>i&&$t(t,i,null),t}function JD(n,t){var e,i;for(i=n.a.length,t.length<i&&(t=Bs(Array(i),t)),e=0;e<i;++e)$t(t,e,n.a[e]);return t.length>i&&$t(t,i,null),t}function JR(n,t,e){var i,r,c;return(r=Im($a(n.e,t),387))?(c=SB(r,e),Tr(n,r),c):(i=new IC(n,t,e),$J(n.e,t,i),NH(i),null)}function JK(n){return(nc4(),0>WM(n,0))?0!=WM(n,-1)?new nnB(-1,Bl(n)):nMo:0>=WM(n,10)?nMh[CZ(n)]:new nnB(1,n)}function JF(){return nhf(),Um(xg(nSp,1),nfh,159,0,[nPd,nPw,nPg,nPa,nPc,nPu,nPh,nPs,nPo,nPb,nPl,nPf,nPi,nPe,nPr,nPn,nS7,nPt,nS8,nS6,nS9,nPp])}function J_(n){var t;this.d=new wn,this.j=new ps,this.g=new ps,t=n.g.b,this.f=Im(ntP($L(t),(ns8(),nKE)),103),this.e=gy(Ss(JQ(t,nFX)))}function JB(n){this.b=new wn,this.e=new wn,this.d=n,this.a=!pN(Lb(new CL(null,new A$(new Fm(n.b))),new fe(new rr))).sd((vQ(),nM5))}function JH(){JH=C,nzM=new kb("PARENTS",0),nzT=new kb("NODES",1),nzj=new kb("EDGES",2),nzS=new kb("PORTS",3),nzE=new kb("LABELS",4)}function Jq(){Jq=C,nWb=new kP("DISTRIBUTED",0),nWd=new kP("JUSTIFIED",1),nWf=new kP("BEGIN",2),nWl=new kP(nbw,3),nWw=new kP("END",4)}function JG(n){switch(n.g){case 1:return W2(),nXA;case 4:return W2(),nXI;case 2:return W2(),nXC;case 3:return W2(),nXP}return W2(),nXO}function Jz(n,t){var e,i;if(xC(t,n.b),t>=n.b>>1)for(i=n.c,e=n.b;e>t;--e)i=i.b;else for(e=0,i=n.a.a;e<t;++e)i=i.a;return new PF(n,t,i)}function JU(){JU=C,nSS=new mU("NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST",0),nSM=new mU("CORNER_CASES_THAN_SINGLE_SIDE_LAST",1)}function JX(n){var t,e;for(n.o||(n.o=new _D((nsZ(),nVA),nCq,n,0)),t=(e=n.o).c.Kc();t.e!=t.i.gc();)Im(t.nj(),42).dd();return _o(e)}function JW(n,t){var e,i,r,c;for(e=0,r=new h1(t.a);r.a<r.c.c.length;)c=(i=Im(De(r),10)).o.a+i.d.c+i.d.b+n.j,e=nTv.Math.max(e,c);return e}function JV(n){var t,e,i,r;for(e=0,r=0,i=n.length;e<i;e++)x5(e,n.length),(t=n.charCodeAt(e))>=64&&t<128&&(r=Dr(r,OR(1,t-64)));return r}function JQ(n,t){var e,i;return i=null,MH(n,(nha(),nXp))&&(e=Im(ntP(n,nXp),94)).Xe(t)&&(i=e.We(t)),null==i&&$L(n)&&(i=ntP($L(n),t)),i}function JJ(n,t){var e,i,r;(i=(r=t.d.i).k)!=(ntY(),nAV)&&i!=nAz&&nrc(e=new OM(TD(Vz(r).a.Kc(),new s)))&&$J(n.k,t,Im(K4(e),17))}function JY(n,t){var e,i,r;return i=Hm(n.Tg(),t),(e=t-n.Ah())<0?(r=n.Yg(i))>=0?n.lh(r):niE(n,i):e<0?niE(n,i):Im(i,66).Nj().Sj(n,n.yh(),e)}function JZ(n){var t;if(!Ti(n.a,4))return n.a;if(null==(t=Jh(n.a)))throw new gg(nmw+n.b+"'. "+nmh+(Su(nCW),nCW.k)+nmf).e;return t}function J1(n){var t;try{return t=n.i.Xb(n.e),n.mj(),n.g=n.e++,t}catch(t){if(Ti(t=Uu(t),73))throw n.mj(),(new wO).e;throw t.e}}function J0(n){var t;try{return t=n.c.ki(n.e),n.mj(),n.g=n.e++,t}catch(t){if(Ti(t=Uu(t),73))throw n.mj(),(new wO).e;throw t.e}}function J2(){J2=C,nha(),nOw=nXb,nOo=nUm,nOi=nUr,nOs=nUU,nnt(),nOl=nSN,nOf=nS$,nOb=nSD,nOh=nSA,XV(),nOc=nC7,nOr=nC9,nOa=nOt,nOu=nOe}function J3(n){switch(v3(),this.c=new wn,this.d=n,n.g){case 0:case 2:this.a=$Y(nAD),this.b=nlc;break;case 3:case 1:this.a=nAD,this.b=nla}}function J4(n,t,e){var i;t.a.length>0&&(IE(n.b,new IT(t.a,e)),0<(i=t.a.length)?t.a=t.a.substr(0,0):0>i&&(t.a+=Te(_f(nY$,nfS,25,-i,15,1))))}function J5(n,t){var e,i,r;for(e=n.o,r=Im(Im(Fl(n.r,t),21),84).Kc();r.Ob();)(i=Im(r.Pb(),111)).e.a=function(n,t){var e;return(e=n.b).Xe((nha(),nU5))?e.Hf()==(nsR(),nWJ)?-e.rf().a-gy(Ss(e.We(nU5))):t+gy(Ss(e.We(nU5))):e.Hf()==(nsR(),nWJ)?-e.rf().a:t}(i,e.a),i.e.b=e.b*gy(Ss(i.b.We(nPy)))}function J6(n){var t;return t=new gX,t.a+="n",n.k!=(ntY(),nAV)&&jP(jP((t.a+="(",t),MP(n.k).toLowerCase()),")"),jP((t.a+="_",t),Zk(n)),t.a}function J8(n,t,e,i){var r;return e>=0?n.hh(t,e,i):(n.eh()&&(i=(r=n.Vg())>=0?n.Qg(i):n.eh().ih(n,-1-r,null,i)),n.Sg(t,e,i))}function J9(n,t){switch(t){case 7:n.e||(n.e=new Ph(nC$,n,7,4)),noK(n.e);return;case 8:n.d||(n.d=new Ph(nC$,n,8,5)),noK(n.d);return}QM(n,t)}function J7(n,t){var e;e=n.Zc(t);try{return e.Pb()}catch(n){if(Ti(n=Uu(n),109))throw new gu("Can't get element "+t).e;throw n.e}}function Yn(n,t){(this.e=n,t<nld)?(this.d=1,this.a=Um(xg(nYL,1),nfH,25,15,[0|t])):(this.d=2,this.a=Um(xg(nYL,1),nfH,25,15,[t%nld|0,t/nld|0]))}function Yt(n,t){var e,i,r,c;for(LV(),e=n,c=t,Ti(n,21)&&!Ti(t,21)&&(e=t,c=n),r=e.Kc();r.Ob();)if(i=r.Pb(),c.Hc(i))return!1;return!0}function Ye(n,t,e){var i,r,c,a;return -1!=(i=n.Xc(t))&&(n.ej()?(c=n.fj(),a=ZI(n,i),r=n.Zi(4,a,null,i,c),e?e.Ei(r):e=r):ZI(n,i)),e}function Yi(n,t){var e;switch(e=Im($6(n.b,t),124).n,t.g){case 1:n.t>=0&&(e.d=n.t);break;case 3:n.t>=0&&(e.a=n.t)}n.C&&(e.b=n.C.b,e.c=n.C.c)}function Yr(){Yr=C,nPP=new mz(nbA,0),nPS=new mz(nb$,1),nPI=new mz(nbL,2),nPC=new mz(nbN,3),nPP.a=!1,nPS.a=!0,nPI.a=!1,nPC.a=!0}function Yc(){Yc=C,nC2=new mG(nbA,0),nC0=new mG(nb$,1),nC3=new mG(nbL,2),nC4=new mG(nbN,3),nC2.a=!1,nC0.a=!0,nC3.a=!1,nC4.a=!0}function Ya(n,t){return jw(n)?!!nTT[t]:n.hm?!!n.hm[t]:jb(n)?!!nTE[t]:!!jl(n)&&!!nTj[t]}function Yu(n,t,e){return null==e?(n.o||(n.o=new _D((nsZ(),nVA),nCq,n,0)),Ja(n.o,t)):(n.o||(n.o=new _D((nsZ(),nVA),nCq,n,0)),nnb(n.o,t,e)),n}function Yo(n,t,e,i){var r,c,a;return c=Hm(n.Tg(),t),(r=t-n.Ah())<0?(a=n.Yg(c))>=0?n._g(a,e,!0):niO(n,c,e):Im(c,66).Nj().Pj(n,n.yh(),r,e,i)}function Ys(n){switch(typeof n){case nhE:return Yj(n);case nhj:return NU(n);case nhk:return TX(),n?1231:1237;default:return null==n?0:T9(n)}}function Yh(n){var t,e;if(null==n)return null;for(t=0,e=_f(nPV,nhJ,193,n.length,0,2);t<e.length;t++)e[t]=Im(function(n,t){var e;return RQ(t),(e=Bs(n.slice(0,t),n)).length=t,e}(n[t],n[t].length),193);return e}function Yf(n){var t;if(Xq(n))return OD(n),n.Lk()&&(t=nik(n.e,n.b,n.c,n.a,n.j),n.j=t),n.g=n.a,++n.a,++n.c,n.i=0,n.j;throw(new wO).e}function Yl(n,t){var e,i;if((i=ZK(n,t))>=0)return i;if(n.Fk()){for(e=0;e<n.i;++e)if(jf(n.Gk(Im(n.g[e],56)))===jf(t))return e}return -1}function Yb(n,t,e){var i,r;if(t>=(r=n.gc()))throw new Pt(t,r).e;if(n.hi()&&(i=n.Xc(e))>=0&&i!=t)throw new gd(ny0).e;return n.mi(t,e)}function Yw(n,t){if(this.a=Im(A1(n),245),this.b=Im(A1(t),245),n.vd(t)>0||n==(dQ(),nTS)||t==(dV(),nTP))throw new gd("Invalid range: "+RF(n,t)).e}function Yd(n){var t,e;for(this.b=new wn,this.c=n,this.a=!1,e=new h1(n.a);e.a<e.c.c.length;)t=Im(De(e),10),this.a=this.a|t.k==(ntY(),nAV)}function Yg(n,t,e){var i,r,c;for(r=new OM(TD((t?VG(n):Vz(n)).a.Kc(),new s));nrc(r);)i=Im(K4(r),17),(c=t?i.c.i:i.d.i).k==(ntY(),nAX)&&xT(c,e)}function Yp(){Yp=C,n_k=new yx(nwY,0),n_j=new yx("PORT_POSITION",1),n_y=new yx("NODE_SIZE_WHERE_SPACE_PERMITS",2),n_m=new yx("NODE_SIZE",3)}function Yv(){Yv=C,nzF=new kv("AUTOMATIC",0),nzH=new kv(nbp,1),nzq=new kv(nbv,2),nzG=new kv("TOP",3),nz_=new kv(nby,4),nzB=new kv(nbw,5)}function Ym(n,t,e,i){var r,c;for(niW(),r=0,c=0;c<e;c++)r=VK(VF(Di(t[c],nlw),Di(i,nlw)),Di(CZ(r),nlw)),n[c]=CZ(r),r=OF(r,32);return CZ(r)}function Yy(n,t,e){var i,r;for(i=0,r=0;i<nSl;i++)r=nTv.Math.max(r,Wr(n.a[t.g][i],e));return t==(HB(),nSV)&&n.b&&(r=nTv.Math.max(r,n.b.b)),r}function Yk(n,t){var e,i;if(MD(t>0),(t&-t)==t)return NU(t*nr_(n,31)*4656612873077393e-25);do i=(e=nr_(n,31))%t;while(e-i+(t-1)<0)return NU(i)}function Yj(n){var t,i,r;return(PG(),null!=(r=nM8[i=":"+n]))?NU(($x(r),r)):(t=null==(r=nM6[i])?function(n){var t,e,i,r;for(t=0,r=(i=n.length)-4,e=0;e<r;)x5(e+3,n.length),t=n.charCodeAt(e+3)+(x5(e+2,n.length),31*(n.charCodeAt(e+2)+(x5(e+1,n.length),31*(n.charCodeAt(e+1)+(x5(e,n.length),31*(n.charCodeAt(e)+31*t))))))|0,e+=4;for(;e<i;)t=31*t+$9(n,e++);return 0|t}(n):NU(($x(r),r)),256==nM7&&(nM6=nM8,nM8=new e,nM7=0),++nM7,nM8[i]=t,t)}function YE(n,t,e){ntc(e,"Compound graph preprocessor",1),n.a=new NK,function n(t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(r=new wn,d=new h1(e.a);d.a<d.c.c.length;)if((b=(w=Im(De(d),10)).e)&&(Uf(r,n(t,b,w)),function(n,t,e){var i,r,c,a,u,o,s,h,f,l;if(gm(So(ntP(e,(ns8(),nKz)))))for(r=new h1(e.j);r.a<r.c.c.length;)for(a=0,u=(o=DH(Im(De(r),11).g)).length;a<u;++a)(c=o[a]).d.i==e&&gm(So(ntP(c,nKU)))&&(h=c.c,(s=Im($a(n.b,h),10))||(UU(s=nsQ(h,(nn2(),nWk),h.j,-1,null,null,h.o,Im(ntP(t,nKE),103),t),(nhu(),nxE),h),$J(n.b,h,s),IE(t.a,s)),l=c.d,(f=Im($a(n.b,l),10))||(UU(f=nsQ(l,(nn2(),nWk),l.j,1,null,null,l.o,Im(ntP(t,nKE),103),t),(nhu(),nxE),l),$J(n.b,l,f),IE(t.a,f)),xE(i=K6(c),Im(CA(s.j,0),11)),xj(i,Im(CA(f.j,0),11)),niP(n.a,c,new P1(i,t,(qF(),n_X))),Im(ntP(t,(nhu(),nxu)),21).Fc((ncJ(),nNN)))}(t,b,w),Im(ntP(b,(nhu(),nxu)),21).Hc((ncJ(),nNN))))for(v=Im(ntP(w,(ns8(),nFE)),98),l=Im(ntP(w,nFS),174).Hc((nis(),nWS)),p=new h1(w.j);p.a<p.c.c.length;)for(g=Im(De(p),11),(c=Im($a(t.b,g),10))||(UU(c=nsQ(g,v,g.j,-(g.e.c.length-g.g.c.length),null,new ps,g.o,Im(ntP(b,nKE),103),b),nxE,g),$J(t.b,g,c),IE(b.a,c)),a=Im(CA(c.j,0),11),h=new h1(g.f);h.a<h.c.c.length;)s=Im(De(h),70),(u=new po).o.a=s.o.a,u.o.b=s.o.b,IE(a.f,u),l||(m=g.j,f=0,OQ(Im(ntP(w,nFS),21))&&(f=niv(s.n,s.o,g.o,0,m)),v==(nn2(),nWk)||(nsR(),nWD).Hc(m)?u.o.a=f:u.o.b=f);return function(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g;for(c=new wn,s=new h1(i);s.a<s.c.c.length;)if(u=Im(De(s),441),a=null,u.f==(qF(),n_X))for(w=new h1(u.e);w.a<w.c.c.length;)$L(g=(b=Im(De(w),17)).d.i)==t?HN(n,t,u,b,u.b,b.d):!e||zR(g,e)?function(n,t,e,i,r){var c,a,u,o;for(o=null,u=new h1(i);u.a<u.c.c.length;)if((a=Im(De(u),441))!=e&&-1!=Bb(a.e,r,0)){o=a;break}xE(c=K6(r),e.b),xj(c,o.b),niP(n.a,r,new P1(c,t,e.f))}(n,t,u,i,b):((l=noP(n,t,e,b,u.b,n_X,a))!=a&&(c.c[c.c.length]=l),l.c&&(a=l));else for(f=new h1(u.e);f.a<f.c.c.length;)if($L(d=(h=Im(De(f),17)).c.i)==t)HN(n,t,u,h,h.c,u.b);else{if(!e||zR(d,e))continue;(l=noP(n,t,e,h,u.b,n_U,a))!=a&&(c.c[c.c.length]=l),l.c&&(a=l)}for(o=new h1(c);o.a<o.c.c.length;)u=Im(De(o),441),-1!=Bb(t.a,u.a,0)||IE(t.a,u.a),u.c&&(r.c[r.c.length]=u)}(t,e,i,r,o=new wn),i&&function(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y;for(u=new wn,r=new h1(t.a);r.a<r.c.c.length;)for(a=new h1(Im(De(r),10).j);a.a<a.c.c.length;){for(c=Im(De(a),11),s=null,v=DH(c.g),m=0,y=v.length;m<y;++m)!zR((p=v[m]).d.i,e)&&((g=noP(n,t,e,p,p.c,(qF(),n_X),s))!=s&&(u.c[u.c.length]=g),g.c&&(s=g));for(o=null,b=DH(c.e),w=0,d=b.length;w<d;++w)!zR((l=b[w]).c.i,e)&&((g=noP(n,t,e,l,l.d,(qF(),n_U),o))!=o&&(u.c[u.c.length]=g),g.c&&(o=g))}for(f=new h1(u);f.a<f.c.c.length;)h=Im(De(f),441),-1!=Bb(t.a,h.a,0)||IE(t.a,h.a),h.c&&(i.c[i.c.length]=h)}(t,e,i,o),o}(n,t,null),function(n,t){var e,i,r,c,a,u,o;for(a=OL(n.a).Kc();a.Ob();){if((c=Im(a.Pb(),17)).b.c.length>0)for(i=new PB(Im(Fl(n.a,c),21)),LV(),E_(i,new fx(t)),r=new Rn(c.b,0);r.b<r.d.gc();){switch(MK(r.b<r.d.gc()),e=Im(r.d.Xb(r.c=r.b++),70),u=-1,Im(ntP(e,(ns8(),nKI)),272).g){case 1:u=i.c.length-1;break;case 0:u=function(n){var t,e,i;for(i=-1,e=0,t=new h1(n);t.a<t.c.c.length;){if(Im(De(t),243).c==(qF(),n_U)){i=0==e?0:e-1;break}e==n.c.length-1&&(i=e),e+=1}return i}(i);break;case 2:u=0}-1!=u&&(x4(u,i.c.length),IE((o=Im(i.c[u],243)).b.b,e),Im(ntP($L(o.b.c.i),(nhu(),nxu)),21).Fc((ncJ(),nNL)),Im(ntP($L(o.b.c.i),nxu),21).Fc(nNA),$I(r),UU(e,nxS,c))}xE(c,null),xj(c,null)}}(n,t),function(n){var t,e,i,r;for(i=new XE(new hL(n.b).a);i.b;)r=Im((e=HQ(i)).cd(),11),UU(t=Im(e.dd(),10),(nhu(),nxE),r),UU(r,nxA,t),UU(r,nxh,(TX(),!0)),ne9(r,Im(ntP(t,nxr),61)),ntP(t,nxr),UU(r.i,(ns8(),nFE),(nn2(),nWy)),Im(ntP($L(r.i),nxu),21).Fc((ncJ(),nNR))}(n),UU(t,(nhu(),nN6),n.a),n.a=null,AT(n.b),nee(e)}function YT(n){switch(n.g){case 0:return null;case 1:return new GD;case 2:return new dU;default:throw new gd(nvk+(null!=n.f?n.f:""+n.g)).e}}function YM(n,t,e){var i,r,c,a,u;for(function(n,t,e){var i,r;for(r=new h1(n.b);r.a<r.c.c.length;)Ef(i=Im(De(r),33),i.i+t,i.j+e)}(n,t-n.s,e-n.t),r=new h1(n.n);r.a<r.c.c.length;)c=i=Im(De(r),211),a=i.e+t-n.s,c.e=a,u=i.f+e-n.t,i.f=u;n.s=t,n.t=e}function YS(n){var t;return n.f&&n.f.kh()&&(t=Im(n.f,49),n.f=Im(WO(n,t),82),n.f!=t&&(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,9,8,t,n.f))),n.f}function YP(n){var t;return n.i&&n.i.kh()&&(t=Im(n.i,49),n.i=Im(WO(n,t),82),n.i!=t&&(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,9,7,t,n.i))),n.i}function YI(n){var t;return n.b&&(64&n.b.Db)!=0&&(t=n.b,n.b=Im(WO(n,t),18),n.b!=t&&(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,9,21,t,n.b))),n.b}function YC(n,t){var e,i,r;null==n.d?++n.e:(i=t.Sh(),function(n,t){var e,i,r,c,a,u,o,s,h,f;if(++n.e,!(t>(o=null==n.d?0:n.d.length)))return 0;for(c=0,h=n.d,n.d=_f(nCU,nkG,63,2*o+4,0,1);c<o;++c)if(s=h[c])for(u=0,i=s.g,f=s.i;u<f;++u)a=SO(n,(r=Im(i[u],133)).Sh()),(e=n.d[a])||(e=n.d[a]=n.uj()),e.Fc(r)}(n,n.f+1),r=(i&nhM)%n.d.length,(e=n.d[r])||(e=n.d[r]=n.uj()),e.Fc(t)),++n.f}function YO(n,t,e){var i;return!t.Kj()&&(-2!=t.Zj()?null==(i=t.zj())?null==e:WY(i,e):t.Hj()==n.e.Tg()&&null==e)}function YA(){var n;qz(16,nfu),n=Gh(16),this.b=_f(nE0,nfa,317,n,0,1),this.c=_f(nE0,nfa,317,n,0,1),this.a=null,this.e=null,this.i=0,this.f=n-1,this.g=0}function Y$(n){SJ.call(this),this.k=(ntY(),nAV),this.j=(qz(6,nfs),new Fq(6)),this.b=(qz(2,nfs),new Fq(2)),this.d=new dr,this.f=new du,this.a=n}function YL(){YL=C,n_I=new yD("SIMPLE",0),n_M=new yD(ndL,1),n_S=new yD("LINEAR_SEGMENTS",2),n_T=new yD("BRANDES_KOEPF",3),n_P=new yD(npW,4)}function YN(n,t,e){PT(Im(ntP(t,(ns8(),nFE)),98))||(BD(n,t,nen(t,e)),BD(n,t,nen(t,(nsR(),nWV))),BD(n,t,nen(t,nW$)),LV(),E_(t.j,new lM(n)))}function Yx(n,t,e,i){var r;for(r=(i?Im(Fl(n.a,t),21):Im(Fl(n.b,t),21)).Kc();r.Ob();)if(nan(n,e,Im(r.Pb(),33)))return!0;return!1}function YD(n){var t,e;for(e=new Td(n);e.e!=e.i.gc();)if((t=Im(J1(e),87)).e||0!=(t.d||(t.d=new Tg(nQd,t,1)),t.d).i)return!0;return!1}function YR(n){var t,e;for(e=new Td(n);e.e!=e.i.gc();)if((t=Im(J1(e),87)).e||0!=(t.d||(t.d=new Tg(nQd,t,1)),t.d).i)return!0;return!1}function YK(n){var t,e;for(n.c||function(n){var t,e,i,r,c,a;if(r=new Rn(n.e,0),i=new Rn(n.a,0),n.d)for(e=0;e<n.b;e++)MK(r.b<r.d.gc()),r.d.Xb(r.c=r.b++);else for(e=0;e<n.b-1;e++)MK(r.b<r.d.gc()),r.d.Xb(r.c=r.b++),$I(r);for(t=gy((MK(r.b<r.d.gc()),Ss(r.d.Xb(r.c=r.b++))));n.f-t>np9;){for(c=t,a=0;nTv.Math.abs(t-c)<np9;)++a,t=gy((MK(r.b<r.d.gc()),Ss(r.d.Xb(r.c=r.b++)))),MK(i.b<i.d.gc()),i.d.Xb(i.c=i.b++);a<n.b&&(MK(r.b>0),r.a.Xb(r.c=--r.b),function(n,t,e,i,r){var c,a,u,o,s,h,f,l,b;for(u=0,f=function(n,t){var e,i,r;for(r=new Rn(n.e,0),e=0;r.b<r.d.gc()&&!((i=gy((MK(r.b<r.d.gc()),Ss(r.d.Xb(r.c=r.b++))))-t)>np9);)i>-.000001&&++e;return e}(n,e);u<t;u++){for(SH(r,e),l=new wn,MK(i.b<i.d.gc()),b=Im(i.d.Xb(i.c=i.b++),407),s=f+u;s<n.b;s++)a=b,MK(i.b<i.d.gc()),IE(l,new ncO(a,b=Im(i.d.Xb(i.c=i.b++),407),e));for(h=f+u;h<n.b;h++)MK(i.b>0),i.a.Xb(i.c=--i.b),h>f+u&&$I(i);for(c=new h1(l);c.a<c.c.c.length;)SH(i,Im(De(c),407));if(u<t-1)for(o=f+u;o<n.b;o++)MK(i.b>0),i.a.Xb(i.c=--i.b)}}(n,n.b-a,c,i,r),MK(r.b<r.d.gc()),r.d.Xb(r.c=r.b++)),MK(i.b>0),i.a.Xb(i.c=--i.b)}if(!n.d)for(e=0;e<n.b-1;e++)MK(r.b<r.d.gc()),r.d.Xb(r.c=r.b++),$I(r);n.d=!0,n.c=!0}(n),e=new dd,De(t=new h1(n.a));t.a<t.c.c.length;)I2(e,Im(De(t),407).a);return MK(0!=e.b),HK(e,e.c.b),e}function YF(){YF=C,naw(),nzh=nzr,nzo=new ES(8),new EM((nha(),nUU),nzo),new EM(nXj,8),nzs=nze,nza=nG2,nzu=nG3,nzc=new EM(nUf,(TX(),!1))}function Y_(n,t,e,i){switch(t){case 7:return n.e||(n.e=new Ph(nC$,n,7,4)),n.e;case 8:return n.d||(n.d=new Ph(nC$,n,8,5)),n.d}return V9(n,t,e,i)}function YB(n){var t;return n.a&&n.a.kh()&&(t=Im(n.a,49),n.a=Im(WO(n,t),138),n.a!=t&&(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,9,5,t,n.a))),n.a}function YH(n){return n<48||n>102?-1:n<=57?n-48:n<65?-1:n<=70?n-65+10:n<97?-1:n-97+10}function Yq(n,t){if(null==n)throw new gv("null key in entry: null="+t).e;if(null==t)throw new gv("null value in entry: "+n+"=null").e}function YG(n,t){var e;return e=Um(xg(nYR,1),nlf,25,15,[Wr(n.a[0],t),Wr(n.a[1],t),Wr(n.a[2],t)]),n.d&&(e[0]=nTv.Math.max(e[0],e[2]),e[2]=e[0]),e}function Yz(n,t){var e;return e=Um(xg(nYR,1),nlf,25,15,[Wc(n.a[0],t),Wc(n.a[1],t),Wc(n.a[2],t)]),n.d&&(e[0]=nTv.Math.max(e[0],e[2]),e[2]=e[0]),e}function YU(){YU=C,nL5=new yj("GREEDY",0),nL4=new yj(ndN,1),nL8=new yj(ndL,2),nL9=new yj("MODEL_ORDER",3),nL6=new yj("GREEDY_MODEL_ORDER",4)}function YX(n){var t;if(t=function(n){var t;for(A1(n),PQ(!0,"numberToAdvance must be nonnegative"),t=0;t<0&&nrc(n);t++)K4(n);return t}(n),!nrc(n))throw new gu("position (0) must be less than the number of elements that remained ("+t+")").e;return K4(n)}function YW(n,t,e){try{return YZ(n,t+n.j,e+n.k)}catch(n){if(Ti(n=Uu(n),73))throw new gu(n.g+nb_+t+nhC+e+").").e;throw n.e}}function YV(n){switch(n.g){case 1:return nsR(),nWJ;case 4:return nsR(),nW$;case 3:return nsR(),nWA;case 2:return nsR(),nWV;default:return nsR(),nWQ}}function YQ(n,t){var e,i;for(i=V_(n,t).Kc();i.Ob();)if(null!=ntP(e=Im(i.Pb(),11),(nhu(),nxA))||Mh(new Fm(e.b)))return!0;return!1}function YJ(n,t){return qh(t,n.e+n.d+(0==n.c.c.length?0:n.b)),qf(t,n.f),n.a=nTv.Math.max(n.a,t.f),n.d+=t.g+(0==n.c.c.length?0:n.b),IE(n.c,t),!0}function YY(n,t){var e,i,r,c,a;for(e=t.gc(),n.qi(n.i+e),c=t.Kc(),a=n.i,n.i+=e,i=a;i<n.i;++i)r=c.Pb(),Ts(n,i,n.oi(i,r)),n.bi(i,r),n.ci();return 0!=e}function YZ(n,t,e){try{return jp(Gb(n,t,e),1)}catch(i){if(Ti(i=Uu(i),320))throw new gu(nbR+n.o+"*"+n.p+nbK+t+nhC+e+nbF).e;throw i.e}}function Y1(n,t,e){try{return jp(Gb(n,t,e),0)}catch(i){if(Ti(i=Uu(i),320))throw new gu(nbR+n.o+"*"+n.p+nbK+t+nhC+e+nbF).e;throw i.e}}function Y0(n,t,e){try{return jp(Gb(n,t,e),2)}catch(i){if(Ti(i=Uu(i),320))throw new gu(nbR+n.o+"*"+n.p+nbK+t+nhC+e+nbF).e;throw i.e}}function Y2(n,t){if(-1==n.g)throw(new wM).e;n.mj();try{n.d._c(n.g,t),n.f=n.d.j}catch(n){if(Ti(n=Uu(n),73))throw(new wI).e;throw n.e}}function Y3(n,t){var e,i,r,c;for(c=n.gc(),t.length<c&&(t=Bs(Array(c),t)),r=t,i=n.Kc(),e=0;e<c;++e)$t(r,e,i.Pb());return t.length>c&&$t(t,c,null),t}function Y4(n,t){var e,i,r;return e=t.cd(),r=t.dd(),i=n.xc(e),!!((jf(r)===jf(i)||null!=r&&WY(r,i))&&(null!=i||n._b(e)))}function Y5(n,t,e,i){var r,c,a;this.a=t,this.c=i,a=new kp(-(r=n.a).c,-r.d),this.b=a,S9(this.b,e),c=i/2,t.a?Mz(this.b,0,c):Mz(this.b,c,0),IE(n.c,this)}function Y6(){Y6=C,nqB=new kc(nwY,0),nqF=new kc(ndx,1),nq_=new kc("EDGE_LENGTH_BY_POSITION",2),nqK=new kc("CROSSING_MINIMIZATION_BY_POSITION",3)}function Y8(n,t){var e,i;if(e=Im(H3(n.g,t),33))return e;if(i=Im(H3(n.j,t),118))return i;throw new gS("Referenced shape does not exist: "+t).e}function Y9(n,t,e,i,r,c){var a,u,o,s,h;for(h=0,a=function(n,t,e){var i,r;switch(i=(r=n.b).d,t.g){case 1:return-i.d-e;case 2:return r.o.a+i.c+e;case 3:return r.o.b+i.a+e;case 4:return-i.b-e;default:return -1}}(t,e,c),u=e==(nsR(),nW$)||e==nWJ?-1:1,s=n[e.g];h<s.length;h++)(o=s[h])>0&&(o+=r),s[h]=a,a+=u*(o+i)}function Y7(n){var t,e,i;for(t=0,i=n.f,n.n=_f(nYR,nlf,25,i,15,1),n.d=_f(nYR,nlf,25,i,15,1);t<i;t++)e=Im(CA(n.c.b,t),29),n.n[t]=JW(n,e),n.d[t]=nce(n,e)}function Zn(n,t){var e,i,r;for(i=2,r=0;i<t;i<<=1)(n.Db&i)!=0&&++r;if(0!=r)return r;for(e=t<<=1;e<=128;e<<=1)if((n.Db&e)!=0)return 0;return -1}function Zt(n,t){var e,i,r,c,a;for(r=0,a=ncT(n.e.Tg(),t),c=null,e=Im(n.g,119);r<n.i;++r)i=e[r],a.rl(i.ak())&&(c||(c=new a7),_P(c,i));c&&nsW(n,c)}function Ze(n){var t,e;if(!n)return null;if(n.dc())return"";for(e=new gz,t=n.Kc();t.Ob();)jT(e,Sh(t.Pb())),e.a+=" ";return jY(e,e.a.length-1)}function Zi(n,t){var e,i=Array(t);switch(n){case 14:case 15:e=0;break;case 16:e=!1;break;default:return i}for(var r=0;r<t;++r)i[r]=e;return i}function Zr(n){var t;for(t=new h1(n.a.b);t.a<t.c.c.length;)Im(De(t),57).c.$b();HR(Ei(n.d)?n.a.c:n.a.d,new fk(n)),n.c.Me(n),nc_(n)}function Zc(n){var t,e,i;for(e=new h1(n.e.c);e.a<e.c.c.length;){for(i=new h1((t=Im(De(e),282)).b);i.a<i.c.c.length;)not(Im(De(i),447));ne6(t)}}function Za(n){var t,e,i,r,c;for(i=0,c=0,r=0,e=new h1(n.a);e.a<e.c.c.length;)t=Im(De(e),187),c=nTv.Math.max(c,t.r),i+=t.d+(r>0?n.c:0),++r;n.b=i,n.d=c}function Zu(n,t){var e;return e=Um(xg(nYR,1),nlf,25,15,[Yy(n,(HB(),nSW),t),Yy(n,nSV,t),Yy(n,nSQ,t)]),n.f&&(e[0]=nTv.Math.max(e[0],e[2]),e[2]=e[0]),e}function Zo(n){var t;MH(n,(ns8(),nK7))&&((t=Im(ntP(n,nK7),21)).Hc((nrS(),nWe))?(t.Mc(nWe),t.Fc(nWr)):t.Hc(nWr)&&(t.Mc(nWr),t.Fc(nWe)))}function Zs(n){var t;MH(n,(ns8(),nK7))&&((t=Im(ntP(n,nK7),21)).Hc((nrS(),nWs))?(t.Mc(nWs),t.Fc(nWu)):t.Hc(nWu)&&(t.Mc(nWu),t.Fc(nWs)))}function Zh(n,t,e,i){var r,c;for(r=t;r<n.c.length;r++){if(x4(r,n.c.length),c=Im(n.c[r],11),!e.Mb(c))return r;i.c[i.c.length]=c}return n.c.length}function Zf(n,t,e,i){var r,c,a;return null==n.a&&function(n,t){var e,i,r,c;for(i=0,c=t.b.j,n.a=_f(nYL,nfH,25,c.c.length,15,1),r=0;i<c.c.length;i++)x4(i,c.c.length),0==(e=Im(c.c[i],11)).e.c.length&&0==e.g.c.length?r+=1:r+=3,n.a[i]=r}(n,t),a=t.b.j.c.length,c=e.d.p,(r=i.d.p-1)<0&&(r=a-1),c<=r?n.a[r]-n.a[c]:n.a[a-1]-n.a[c]+n.a[r]}function Zl(n){var t,e;if(!n.a)for(n.a=Re(L8(Im(n.f,33)).i),e=new Td(L8(Im(n.f,33)));e.e!=e.i.gc();)t=Im(J1(e),33),IE(n.a,new Mw(n,t));return n.a}function Zb(n){var t;if(!n.C&&(null!=n.D||null!=n.B)){if(t=function(n){var t,e,i,r;if(-1!=(t=jZ(e=null!=n.D?n.D:n.B,ntd(91)))){i=e.substr(0,t),r=new gz;do r.a+="[";while(-1!=(t=MM(e,91,++t)))Pv(i,nhk)?r.a+="Z":Pv(i,njt)?r.a+="B":Pv(i,nje)?r.a+="C":Pv(i,nji)?r.a+="D":Pv(i,njr)?r.a+="F":Pv(i,njc)?r.a+="I":Pv(i,nja)?r.a+="J":Pv(i,nju)?r.a+="S":(r.a+="L",r.a+=""+i,r.a+=";")}else if(-1==jZ(e,ntd(46))){if(Pv(e,nhk))return nYN;if(Pv(e,njt))return nYD;if(Pv(e,nje))return nY$;if(Pv(e,nji))return nYR;else if(Pv(e,njr))return nYK;else if(Pv(e,njc))return nYL;else if(Pv(e,nja))return nYx;else if(Pv(e,nju))return nYF}return null}(n))n.yk(t);else try{n.yk(null)}catch(n){if(!Ti(n=Uu(n),60))throw n.e}}return n.C}function Zw(n,t){var e,i,r;for(r=new ps,i=n.Kc();i.Ob();)naN(e=Im(i.Pb(),37),r.a,0),r.a+=e.f.a+t,r.b=nTv.Math.max(r.b,e.f.b);return r.b>0&&(r.b+=t),r}function Zd(n,t){var e,i,r;for(r=new ps,i=n.Kc();i.Ob();)naN(e=Im(i.Pb(),37),0,r.b),r.b+=e.f.b+t,r.a=nTv.Math.max(r.a,e.f.a);return r.a>0&&(r.a+=t),r}function Zg(n){var t,e,i;for(i=nhM,e=new h1(n.a);e.a<e.c.c.length;)MH(t=Im(De(e),10),(nhu(),nxj))&&(i=nTv.Math.min(i,Im(ntP(t,nxj),19).a));return i}function Zp(n,t){var e,i;if(0==t.length)return 0;for(i=0,e=$p(n.a,t[0],(nsR(),nWJ))+$p(n.a,t[t.length-1],nWA);i<t.length;i++)e+=function(n,t,e){var i,r,c,a,u,o,s;return c=0,i=e[t],t<e.length-1&&((r=e[t+1],n.b[t])?c=function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,I,C,O,A,$,L,N,x,D,R,K,F,_,B,H,q,G,z,U,X,W,V,Q,J,Y,Z,nn,nt,ne;for(I=0,X=0,A=t.length;I<A;++I)for(F=new h1((S=t[I]).j);F.a<F.c.c.length;){for(K=Im(De(F),11),B=0,u=new h1(K.g);u.a<u.c.c.length;)a=Im(De(u),17),S.c!=a.d.i.c&&++B;B>0&&(n.a[K.p]=X++)}for(C=0,Y=0,$=e.length;C<$;++C){for(S=e[C],L=0,F=new h1(S.j);F.a<F.c.c.length;)if((K=Im(De(F),11)).j==(nsR(),nW$)){for(u=new h1(K.e);u.a<u.c.c.length;)if(a=Im(De(u),17),S.c!=a.c.i.c){++L;break}}else break;for(x=0,H=new Rn(S.j,S.j.c.length);H.b>0;){for(MK(H.b>0),B=0,u=new h1((K=Im(H.a.Xb(H.c=--H.b),11)).e);u.a<u.c.c.length;)a=Im(De(u),17),S.c!=a.c.i.c&&++B;B>0&&(K.j==(nsR(),nW$)?(n.a[K.p]=Y,++Y):(n.a[K.p]=Y+L+x,++x))}Y+=x}for(P=0,_=new wt,b=new j7,O=t.length;P<O;++P)for(Q=new h1((S=t[P]).j);Q.a<Q.c.c.length;)for(u=new h1((V=Im(De(Q),11)).g);u.a<u.c.c.length;)if(nn=(a=Im(De(u),17)).d,S.c!=nn.i.c){if(W=Im(jh(Nj(_.f,V)),467),Z=Im(jh(Nj(_.f,nn)),467),W||Z){if(W){if(Z){if(W==Z)IE(W.a,a);else{for(IE(W.a,a),R=new h1(Z.d);R.a<R.c.c.length;)D=Im(De(R),11),neQ(_.f,D,W);Uf(W.a,Z.a),Uf(W.d,Z.d),b.a.Bc(Z)}}else IE(W.a,a),IE(W.d,nn),neQ(_.f,nn,W)}else IE(Z.a,a),IE(Z.d,V),neQ(_.f,V,Z)}else l=new S1,b.a.zc(l,b),IE(l.a,a),IE(l.d,V),neQ(_.f,V,l),IE(l.d,nn),neQ(_.f,nn,l)}for(h=0,w=Im(Y3(b,_f(nIA,{3:1,4:1,5:1,1946:1},467,b.a.gc(),0,1)),1946),M=t[0].c,U=e[0].c,f=w.length;h<f;++h)for((s=w[h]).e=X,s.f=Y,F=new h1(s.d);F.a<F.c.c.length;)K=Im(De(F),11),q=n.a[K.p],K.i.c==M?(q<s.e&&(s.e=q),q>s.b&&(s.b=q)):K.i.c==U&&(q<s.f&&(s.f=q),q>s.c&&(s.c=q));for(_V(w,0,w.length,null),J=_f(nYL,nfH,25,w.length,15,1),i=_f(nYL,nfH,25,Y+1,15,1),g=0;g<w.length;g++)J[g]=w[g].f,i[J[g]]=1;for(p=0,c=0;p<i.length;p++)1==i[p]?i[p]=c:--c;for(v=0,G=0;v<J.length;v++)J[v]+=i[J[v]],G=nTv.Math.max(G,J[v]+1);for(o=1;o<G;)o*=2;for(ne=2*o-1,o-=1,nt=_f(nYL,nfH,25,ne,15,1),r=0,E=0;E<J.length;E++)for(j=J[E]+o,++nt[j];j>0;)j%2>0&&(r+=nt[j+1]),j=(j-1)/2|0,++nt[j];for(m=0,T=_f(nI$,nhA,362,2*w.length,0,1);m<w.length;m++)T[2*m]=new Lm(w[m],w[m].e,w[m].b,(KI(),nBT)),T[2*m+1]=new Lm(w[m],w[m].b,w[m].e,nBE);for(_V(T,0,T.length,null),N=0,y=0;y<T.length;y++)switch(T[y].d.g){case 0:++N;break;case 1:r+=--N}for(k=0,z=_f(nI$,nhA,362,2*w.length,0,1);k<w.length;k++)z[2*k]=new Lm(w[k],w[k].f,w[k].c,(KI(),nBT)),z[2*k+1]=new Lm(w[k],w[k].c,w[k].f,nBE);for(_V(z,0,z.length,null),N=0,d=0;d<z.length;d++)switch(z[d].d.g){case 0:++N;break;case 1:r+=--N}return r}(n.d,i,r)+$p(n.a,i,(nsR(),nWA))+$p(n.a,r,nWJ):(u=Xr(a=n.a,i,r),a.b=new GM(u.c.length),c=ncV(a,u))),n.c[t]&&(c+=(s=function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;for(i=0,h=new wn,f=new b7,c=null,r=0;i<t.length;++i)switch(l=c,b=e=t[i],l&&l!=b&&MH(b,(nhu(),nxl))&&Im(ntP(b,(nhu(),nxl)),10)!=l&&(r=Q4(n,f,h,nBj,r)),MH(e,(nhu(),nxl))&&(c=Im(ntP(e,nxl),10)),e.k.g){case 0:for(o=ET(Iv(V_(e,(nsR(),nW$)),new rV));Gf(o);)a=Im(Bg(o),11),n.d[a.p]=r++,h.c[h.c.length]=a;for(r=Q4(n,f,h,nBj,r),s=ET(Iv(V_(e,nWV),new rV));Gf(s);)a=Im(Bg(s),11),n.d[a.p]=r++,h.c[h.c.length]=a;break;case 3:V_(e,nBk).dc()||(a=Im(V_(e,nBk).Xb(0),11),n.d[a.p]=r++,h.c[h.c.length]=a),V_(e,nBj).dc()||RC(f,e);break;case 1:for(u=V_(e,(nsR(),nWJ)).Kc();u.Ob();)a=Im(u.Pb(),11),n.d[a.p]=r++,h.c[h.c.length]=a;V_(e,nWA).Jc(new yV(f,e))}return Q4(n,f,h,nBj,r),h}(o=n.a,i),o.b=new GM(s.c.length),function(n,t){var e,i,r,c,a,u,o,s,h,f;for(e=0,o=new wn,c=new h1(t);c.a<c.c.c.length;){switch(r=Im(De(c),11),X0(n.b,n.d[r.p]),o.c=_f(nEX,nhA,1,0,5,1),r.i.k.g){case 0:HR(Im(ntP(r,(nhu(),nxA)),10).j,new lF(o));break;case 1:s=Xl(Lb(new CL(null,new x6(r.i.j,16)),new l_(r))),h=new lB(o),null!=s.a&&k1(h,s.a);break;case 3:IE(o,new k_(Im(ntP(r,(nhu(),nxE)),11),Va(r.e.c.length+r.g.c.length)))}for(u=new h1(o);u.a<u.c.c.length;)a=Im(De(u),46),f=Im(a.a,11),(i=n.d[f.p])>n.d[r.p]&&(e+=KC(n.b,i)*Im(a.b,19).a,RC(n.a,Va(i)));for(;!gk(n.a);)B3(n.b,Im(Al(n.a),19).a)}return e}(o,s))),c}(n,i,t);return e}function Zv(){ncS(),this.c=new wn,this.i=new wn,this.e=new j7,this.f=new j7,this.g=new j7,this.j=new wn,this.a=new wn,this.b=new wt,this.k=new wt}function Zm(n,t){var e;return n.Db>>16==6?n.Cb.ih(n,5,nCR,t):(e=YI(Im(Hm(Im(zF(n,16),26)||n.zh(),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Zy(n){var t,e,i;n.b==n.c&&((i=n.a.length,e=U0(nTv.Math.max(8,i))<<1,0!=n.b)?(t=Sz(n.a,e),Gp(n,t,i),n.a=t,n.b=0):n.a.length=e,n.c=i)}function Zk(n){var t;return 0!=n.b.c.length&&Im(CA(n.b,0),70).a?Im(CA(n.b,0),70).a:null!=(t=LO(n))?t:""+(n.c?Bb(n.c.a,n,0):-1)}function Zj(n){var t;return 0!=n.f.c.length&&Im(CA(n.f,0),70).a?Im(CA(n.f,0),70).a:null!=(t=LO(n))?t:""+(n.i?Bb(n.i.j,n,0):-1)}function ZE(n){var t,e,i,r,c;for(c=0,r=nla,i=0,e=new h1(n.a);e.a<e.c.c.length;)c+=(t=Im(De(e),187)).r+(i>0?n.c:0),r=nTv.Math.max(r,t.d),++i;n.e=c,n.b=r}function ZT(n,t,e,i){return 0==t?i?(n.o||(n.o=new _D((nsZ(),nVA),nCq,n,0)),n.o):(n.o||(n.o=new _D((nsZ(),nVA),nCq,n,0)),_o(n.o)):Yo(n,t,e,i)}function ZM(n){var t,e;if(n.rb)for(t=0,e=n.rb.i;t<e;++t)MO(HX(n.rb,t));if(n.vb)for(t=0,e=n.vb.i;t<e;++t)MO(HX(n.vb,t));OE((neS(),nJk),n),n.Bb|=1}function ZS(n,t,e,i,r,c,a,u,o,s,h,f,l,b){return nez(n,t,i,null,r,c,a,u,o,s,l,!0,b),VI(n,h),Ti(n.Cb,88)&&ne2(KJ(Im(n.Cb,88)),2),e&&Gw(n,e),VC(n,f),n}function ZP(n,t,e){var i;return Ww(i=new dP,t),GF(i,e),_P((n.c||(n.c=new An(nQp,n,12,10)),n.c),i),qg(i,0),qp(i,1),Vi(i,!0),Vn(i,!0),i}function ZI(n,t){var e,i;if(t>=n.i)throw new jX(t,n.i).e;return++n.j,e=n.g[t],(i=n.i-t-1)>0&&now(n.g,t+1,n.g,t,i),$t(n.g,--n.i,null),n.fi(t,e),n.ci(),e}function ZC(n,t){var e;return n.Db>>16==17?n.Cb.ih(n,21,nQf,t):(e=YI(Im(Hm(Im(zF(n,16),26)||n.zh(),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function ZO(){ZO=C,nO4=new jU(nwD,(TX(),!1)),nO1=new jU(nwR,100),BA(),nO0=new jU(nwK,nO2=nAs),nO3=new jU(nwF,nww),nO5=new jU(nw_,Va(nhM))}function ZA(n,t,e){var i,r,c,a,u,o;for(o=0,i=n.a[t],r=0,c=i.length;r<c;++r)for(u=WJ(i[r],e).Kc();u.Ob();)a=Im(u.Pb(),11),$J(n.f,a,Va(o++))}function Z$(n){var t;return ntq(),_V(t=Im(Y3(OL(n.k),_f(nCy,nwZ,61,2,0,1)),122),0,t.length,null),t[0]==(nsR(),nW$)&&t[1]==nWJ&&($t(t,0,nWJ),$t(t,1,nW$)),t}function ZL(n,t,e){var i,r,c;return r=function(n,t,e){var i,r,c,a,u,o,s;for(s=new pI(new lK(n)),a=Um(xg(nPY,1),nw7,11,0,[t,e]),u=0,o=a.length;u<o;++u)for(c=a[u],U5(s.a,c,(TX(),nTV)),r=new Fm(c.b);EB(r.a)||EB(r.b);)(i=Im(EB(r.a)?De(r.a):De(r.b),17)).c==i.d||AR(s,c==i.c?i.d:i.c);return A1(s),new PB(s)}(n,t,e),c=ncV(n,r),_z(n.b),Dw(n,t,e),LV(),E_(r,new lx(n)),i=ncV(n,r),_z(n.b),Dw(n,e,t),new k_(Va(c),Va(i))}function ZN(){ZN=C,nBP=Cg(new Rf,(ntI(),nAm),(nhs(),n$k)),nBI=new SA("linearSegments.inputPrio",Va(0)),nBC=new SA("linearSegments.outputPrio",Va(0))}function Zx(){Zx=C,nHt=new y8("P1_TREEIFICATION",0),nHe=new y8("P2_NODE_ORDERING",1),nHi=new y8("P3_NODE_PLACEMENT",2),nHr=new y8("P4_EDGE_ROUTING",3)}function ZD(){ZD=C,nha(),nqL=nXc,nqD=nXj,nqS=nUR,nqP=nU_,nqI=nUH,nqM=nUx,nqC=nUz,nq$=nXn,nry(),nqE=nql,nqT=nqb,nqO=nqd,nqA=nqp,nqN=nqv,nqx=nqm,nqR=nqk}function ZR(){ZR=C,nX7=new kM("UNKNOWN",0),nX6=new kM("ABOVE",1),nX8=new kM("BELOW",2),nX9=new kM("INLINE",3),new SA("org.eclipse.elk.labelSide",nX7)}function ZK(n,t){var e;if(n.ni()&&null!=t){for(e=0;e<n.i;++e)if(WY(t,n.g[e]))return e}else for(e=0;e<n.i;++e)if(jf(n.g[e])===jf(t))return e;return -1}function ZF(n,t,e){if(e&&(t<0||t>e.a.c.length))throw new gd("index must be >= 0 and <= layer node count").e;n.c&&Bh(n.c.a,n),n.c=e,e&&C4(e.a,t,n)}function Z_(n,t){var e,i,r;for(i=new OM(TD(Vq(n).a.Kc(),new s));nrc(i);)return e=Im(K4(i),17),new s2(A1((r=Im(t.Kb(e),10)).n.b+r.o.b/2));return dJ(),dJ(),nTM}function ZB(n,t){this.c=new wt,this.a=n,this.b=t,this.d=Im(ntP(n,(nhu(),nxF)),304),jf(ntP(n,(ns8(),nFn)))===jf((Bo(),nNw))?this.e=new dh:this.e=new ds}function ZH(n,t){var e,i;return i=null,n.Xe((nha(),nXp))&&(e=Im(n.We(nXp),94)).Xe(t)&&(i=e.We(t)),null==i&&n.yf()&&(i=n.yf().We(t)),null==i&&(i=JZ(t)),i}function Zq(n,t){var e,i;e=n.Zc(t);try{return i=e.Pb(),e.Qb(),i}catch(n){if(Ti(n=Uu(n),109))throw new gu("Can't remove element "+t).e;throw n.e}}function ZG(n,t){var e,i,r;if(0==(e=function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;for(o=0,a=new nna,s=Um(xg(nYL,1),nfH,25,15,[0]),r=-1,c=0,i=0;o<n.b.c.length;++o)if((h=Im(CA(n.b,o),434)).b>0){if(r<0&&h.a&&(r=o,c=s[0],i=0),r>=0){if(u=h.b,o==r&&0==(u-=i++))return 0;if(!ns_(t,s,h,u,a)){o=r-1,s[0]=c;continue}}else if(r=-1,!ns_(t,s,h,0,a))return 0}else{if(r=-1,32==$9(h.c,0)){if(f=s[0],BZ(t,s),s[0]>f)continue}else if(l=h.c,(b=s[0])>=0&&Pv(t.substr(b,l.length),l)){s[0]+=h.c.length;continue}return 0}return!function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w;if(0==n.e&&n.p>0&&(n.p=-(n.p-1)),n.p>nfp&&RW(t,n.p-nfB),a=t.q.getDate(),N2(t,1),n.k>=0&&(o=n.k,s=t.q.getHours(),t.q.setMonth(o),nu3(t,s)),n.c>=0?N2(t,n.c):n.k>=0?(i=35-new UZ(t.q.getFullYear()-nfB,t.q.getMonth(),35).q.getDate(),N2(t,nTv.Math.min(i,a))):N2(t,a),n.f<0&&(n.f=t.q.getHours()),n.b>0&&n.f<12&&(n.f+=12),h=24==n.f&&n.g?0:n.f,t.q.setHours(h),nu3(t,h),n.j>=0&&(f=n.j,l=t.q.getHours()+(f/60|0),t.q.setMinutes(f),nu3(t,l)),n.n>=0&&(b=n.n,w=t.q.getHours()+(b/3600|0),t.q.setSeconds(b),nu3(t,w)),n.i>=0&&jA(t,VK(VF(nnm(zx(t.q.getTime()),nfP),nfP),n.i)),n.a&&(RW(r=new vP,r.q.getFullYear()-nfB-80),0>WM(zx(t.q.getTime()),zx(r.q.getTime()))&&RW(t,r.q.getFullYear()-nfB+100)),n.d>=0){if(-1==n.c)(e=(7+n.d-t.q.getDay())%7)>3&&(e-=7),u=t.q.getMonth(),N2(t,t.q.getDate()+e),t.q.getMonth()!=u&&N2(t,t.q.getDate()+(e>0?-7:7));else if(t.q.getDay()!=n.d)return!1}return n.o>nfp&&(c=t.q.getTimezoneOffset(),jA(t,VK(zx(t.q.getTime()),(n.o-c)*60*nfP))),!0}(a,e)?0:s[0]}(n,t,r=new UZ((i=new vP).q.getFullYear()-nfB,i.q.getMonth(),i.q.getDate())))||e<t.length)throw new gd(t).e;return r}function Zz(n,t){var e,i,r;for($x(t),MD(t!=n),r=n.b.c.length,i=t.Kc();i.Ob();)e=i.Pb(),IE(n.b,$x(e));return r!=n.b.c.length&&(function n(t,e){var i;2*e+1>=t.b.c.length||(n(t,2*e+1),(i=2*e+2)<t.b.c.length&&n(t,i),ne3(t,e))}(n,0),!0)}function ZU(){ZU=C,nha(),nAn=nUP,new EM(nUw,(TX(),!0)),nAi=nUR,nAr=nU_,nAc=nUH,nAe=nUx,nAa=nUz,nAu=nXn,ZO(),nO7=nO4,nO8=nO0,nO9=nO3,nAt=nO5,nO6=nO1}function ZX(n,t,e,i){var r,c,a;for(xT(t,Im(i.Xb(0),29)),a=i.bd(1,i.gc()),c=Im(e.Kb(t),20).Kc();c.Ob();)ZX(n,(r=Im(c.Pb(),17)).c.i==t?r.d.i:r.c.i,e,a)}function ZW(n){var t;return(t=new wt,MH(n,(nhu(),nxG)))?Im(ntP(n,nxG),83):(vF(Lb(new CL(null,new x6(n.j,16)),new iM),new le(t)),UU(n,nxG,t),t)}function ZV(n,t){var e;return n.Db>>16==6?n.Cb.ih(n,6,nC$,t):(e=YI(Im(Hm(Im(zF(n,16),26)||(nsZ(),nVS),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function ZQ(n,t){var e;return n.Db>>16==7?n.Cb.ih(n,1,nCC,t):(e=YI(Im(Hm(Im(zF(n,16),26)||(nsZ(),nVI),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function ZJ(n,t){var e;return n.Db>>16==9?n.Cb.ih(n,9,nCF,t):(e=YI(Im(Hm(Im(zF(n,16),26)||(nsZ(),nVO),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function ZY(n,t){var e;return n.Db>>16==5?n.Cb.ih(n,9,nQb,t):(e=YI(Im(Hm(Im(zF(n,16),26)||(nhl(),nQK),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function ZZ(n,t){var e;return n.Db>>16==3?n.Cb.ih(n,0,nCN,t):(e=YI(Im(Hm(Im(zF(n,16),26)||(nhl(),nQA),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Z1(n,t){var e;return n.Db>>16==7?n.Cb.ih(n,6,nCR,t):(e=YI(Im(Hm(Im(zF(n,16),26)||(nhl(),nQX),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Z0(){this.a=new a6,this.g=new YA,this.j=new YA,this.b=new wt,this.d=new YA,this.i=new YA,this.k=new wt,this.c=new wt,this.e=new wt,this.f=new wt}function Z2(n,t){var e,i;if(t){if(t==n)return!0;for(e=0,i=Im(t,49).eh();i&&i!=t;i=i.eh()){if(++e>nll)return Z2(n,i);if(i==n)return!0}}return!1}function Z3(n,t){var e,i,r;for(Bh(n.a,t),n.e-=t.r+(0==n.a.c.length?0:n.c),r=nvg,i=new h1(n.a);i.a<i.c.c.length;)e=Im(De(i),187),r=nTv.Math.max(r,e.d);n.b=r}function Z4(n,t){var e;return n.Db>>16==3?n.Cb.ih(n,12,nCF,t):(e=YI(Im(Hm(Im(zF(n,16),26)||(nsZ(),nVM),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Z5(n,t){var e;return n.Db>>16==11?n.Cb.ih(n,10,nCF,t):(e=YI(Im(Hm(Im(zF(n,16),26)||(nsZ(),nVC),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Z6(n,t){var e;return n.Db>>16==10?n.Cb.ih(n,11,nQf,t):(e=YI(Im(Hm(Im(zF(n,16),26)||(nhl(),nQz),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Z8(n,t){var e;return n.Db>>16==10?n.Cb.ih(n,12,nQg,t):(e=YI(Im(Hm(Im(zF(n,16),26)||(nhl(),nQW),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Z9(n){var t;return(1&n.Bb)==0&&n.r&&n.r.kh()&&(t=Im(n.r,49),n.r=Im(WO(n,t),138),n.r!=t&&(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,9,8,t,n.r))),n.r}function Z7(n,t,e){var i;return i=Um(xg(nYR,1),nlf,25,15,[ntv(n,(HB(),nSW),t,e),ntv(n,nSV,t,e),ntv(n,nSQ,t,e)]),n.f&&(i[0]=nTv.Math.max(i[0],i[2]),i[2]=i[0]),i}function nnn(n,t){var e,i,r,c,a,u;return(a=n.h>>19)!=(u=t.h>>19)?u-a:(i=n.h)!=(c=t.h)?i-c:(e=n.m)!=(r=t.m)?e-r:n.l-t.l}function nnt(){nnt=C,nau(),nSD=new jU(nbr,nSR=nSG),B7(),nSN=new jU(nbc,nSx=nSC),JU(),nS$=new jU(nba,nSL=nSS),nSA=new jU(nbu,(TX(),!0))}function nne(n,t,e){var i,r;i=t*e,Ti(n.g,145)?(r=RM(n)).f.d?r.f.a||(n.d.a+=i+nbE):(n.d.d-=i+nbE,n.d.a+=i+nbE):Ti(n.g,10)&&(n.d.d-=i,n.d.a+=2*i)}function nni(n,t,e){var i,r,c,a,u;for(r=n[e.g],u=new h1(t.d);u.a<u.c.c.length;)(c=(a=Im(De(u),101)).i)&&c.i==e&&(r[i=a.d[e.g]]=nTv.Math.max(r[i],c.j.b))}function nnr(n){var t,e,i,r;if(i=n.b,n.i>(r=i.length)&&r<nfo){for(e=2*i.length,n.b=_f(nE0,nfa,317,e,0,1),n.c=_f(nE0,nfa,317,e,0,1),n.f=e-1,n.i=0,t=n.a;t;t=t.c)nin(n,t,t);++n.g}}function nnc(n,t,e){var i,r,c,a,u,o;return nc0(),a=t/2,c=e/2,i=nTv.Math.abs(n.a),r=nTv.Math.abs(n.b),u=1,o=1,i>a&&(u=a/i),r>c&&(o=c/r),To(n,nTv.Math.min(u,o)),n}function nna(){vP.call(this),this.e=-1,this.a=!1,this.p=nfp,this.k=-1,this.c=-1,this.b=-1,this.g=!1,this.f=-1,this.j=-1,this.n=-1,this.i=-1,this.d=-1,this.o=nfp}function nnu(){nnu=C,nAl=Ob(Cg(Cg(Cg(new Rf,(ntI(),nAv),(nhs(),n$S)),nAv,n$O),nAm,n$R),nAm,n$w),nAw=Cg(Cg(new Rf,nAv,n$r),nAv,n$d),nAb=Ob(new Rf,nAm,n$p)}function nno(n){var t;if(n.f.qj(),-1!=n.b){if(++n.b,t=n.f.d[n.a],n.b<t.i)return;++n.a}for(;n.a<n.f.d.length;++n.a)if((t=n.f.d[n.a])&&0!=t.i){n.b=0;return}n.b=-1}function nns(n,t){var e,i;for(i=new h1(t);i.a<i.c.c.length;)e=Im(De(i),10),n.c[e.c.p][e.p].a=On(n.i),n.c[e.c.p][e.p].d=gy(n.c[e.c.p][e.p].a),n.c[e.c.p][e.p].b=1}function nnh(n,t,e,i){var r,c,a;return c=function(n,t,e,i){var r,c,a,u,o,s,h,f;for(f=new pI(new lR(n)),a=Um(xg(nPV,1),nw9,10,0,[t,e]),u=0,o=a.length;u<o;++u)for(h=WJ(a[u],i).Kc();h.Ob();)for(c=new Fm((s=Im(h.Pb(),11)).b);EB(c.a)||EB(c.b);)!KR(r=Im(EB(c.a)?De(c.a):De(c.b),17))&&(U5(f.a,s,(TX(),nTV)),$F(r)&&AR(f,s==r.c?r.d:r.c));return A1(f),new PB(f)}(n,t,e,i),a=naM(n,c),ntj(n,t,e,i),_z(n.b),LV(),E_(c,new lD(n)),r=naM(n,c),ntj(n,e,t,i),_z(n.b),new k_(Va(a),Va(r))}function nnf(n,t,e,i){switch(e){case 7:return n.e||(n.e=new Ph(nC$,n,7,4)),QN(n.e,t,i);case 8:return n.d||(n.d=new Ph(nC$,n,8,5)),QN(n.d,t,i)}return nth(n,t,e,i)}function nnl(n,t,e,i){switch(e){case 7:return n.e||(n.e=new Ph(nC$,n,7,4)),Ye(n.e,t,i);case 8:return n.d||(n.d=new Ph(nC$,n,8,5)),Ye(n.d,t,i)}return Ut(n,t,e,i)}function nnb(n,t,e){var i,r,c,a;return(n.qj(),c=null==t?0:Xg(t),n.f>0&&(a=(c&nhM)%n.d.length,r=niA(n,a,c,t)))?r.ed(e):(i=n.tj(c,t,e),n.c.Fc(i),null)}function nnw(n,t){var e,i,r,c;switch(WW(n,t)._k()){case 3:case 2:for(r=0,c=(e=noo(t)).i;r<c;++r)if(5==$B(BC(n,i=Im(HX(e,r),34))))return i}return null}function nnd(n,t){var e,i,r,c;for(c=0,r=Im(Im(Fl(n.r,t),21),84).Kc();r.Ob();)i=Im(r.Pb(),111),c=nTv.Math.max(c,i.e.a+i.b.rf().a);(e=Im($6(n.b,t),124)).n.b=0,e.a.a=c}function nng(n,t){var e,i,r,c;for(e=0,c=Im(Im(Fl(n.r,t),21),84).Kc();c.Ob();)r=Im(c.Pb(),111),e=nTv.Math.max(e,r.e.b+r.b.rf().b);(i=Im($6(n.b,t),124)).n.d=0,i.a.b=e}function nnp(n){if(!(n<0))return n<nzK.length?D8(nzK[n]):nTv.Math.sqrt(nvd*n)*(function(n,t){var e,i,r;for(r=1,e=n,i=t>=0?t:-t;i>0;)i%2==0?(e*=e,i=i/2|0):(r*=e,i-=1);return t<0?1/r:r}(n,n)/WA(2.718281828459045,n));throw new gd("The input must be positive").e}function nnv(n,t){var e;if(n.ni()&&null!=t){for(e=0;e<n.i;++e)if(WY(t,n.g[e]))return!0}else for(e=0;e<n.i;++e)if(jf(n.g[e])===jf(t))return!0;return!1}function nnm(n,t){var e;return j4(n)&&j4(t)&&nln<(e=n/t)&&e<nf9?e<0?nTv.Math.ceil(e):nTv.Math.floor(e):zA(noz(j4(n)?zz(n):n,j4(t)?zz(t):t,!1))}function nny(n,t){if(t==n.c.i)return n.d.i;if(t==n.d.i)return n.c.i;throw new gd("'node' must either be the source node or target node of the edge.").e}function nnk(n,t){var e,i;for(e=new OM(TD((t?Vz(n):VG(n)).a.Kc(),new s));nrc(e);)if((i=nny(Im(K4(e),17),n)).k==(ntY(),nAW)&&i.c!=n.c)return i;return null}function nnj(n,t,e){var i,r,c;for(c=new h1(t);c.a<c.c.c.length;)i=Im(De(c),10),n.c[i.c.p][i.p].e=!1;for(r=new h1(t);r.a<r.c.c.length;)(function n(t,e,i){var r,c,a,u,o,s,h,f;if(!t.c[e.c.p][e.p].e){for(t.c[e.c.p][e.p].e=!0,t.c[e.c.p][e.p].b=0,t.c[e.c.p][e.p].d=0,t.c[e.c.p][e.p].a=null,f=new h1(e.j);f.a<f.c.c.length;)for(h=Im(De(f),11),s=(i?new fK(h):new f_(h)).Kc();s.Ob();)(u=(o=Im(s.Pb(),11)).i).c==e.c?u!=e&&(n(t,u,i),t.c[e.c.p][e.p].b+=t.c[u.c.p][u.p].b,t.c[e.c.p][e.p].d+=t.c[u.c.p][u.p].d):(t.c[e.c.p][e.p].d+=t.g[o.p],++t.c[e.c.p][e.p].b);if(a=Im(ntP(e,(nhu(),nNZ)),15))for(c=a.Kc();c.Ob();)r=Im(c.Pb(),10),e.c==r.c&&(n(t,r,i),t.c[e.c.p][e.p].b+=t.c[r.c.p][r.p].b,t.c[e.c.p][e.p].d+=t.c[r.c.p][r.p].d);t.c[e.c.p][e.p].b>0&&(t.c[e.c.p][e.p].d+=nr_(t.i,24)*nlC*.07000000029802322-.03500000014901161,t.c[e.c.p][e.p].a=t.c[e.c.p][e.p].d/t.c[e.c.p][e.p].b)}})(n,i=Im(De(r),10),e)}function nnE(n,t,e){var i,r;(i=WU(t.j,e.s,e.c)+WU(e.e,t.s,t.c))==(r=WU(e.j,t.s,t.c)+WU(t.e,e.s,e.c))?i>0&&(n.b+=2,n.a+=i):(n.b+=1,n.a+=nTv.Math.min(i,r))}function nnT(n,t){var e;if(e=!1,jw(t)&&(e=!0,$v(n,new $h(Sh(t)))),!e&&Ti(t,236)&&(e=!0,$v(n,new hC(PL(Im(t,236))))),!e)throw new gs(nyK).e}function nnM(n){var t,e;switch(Im(ntP($L(n),(ns8(),nKW)),420).g){case 0:return t=n.n,e=n.o,new kp(t.a+e.a/2,t.b+e.b/2);case 1:return new Ee(n.n);default:return null}}function nnS(){nnS=C,nNy=new yP(nwY,0),nNm=new yP("LEFTUP",1),nNj=new yP("RIGHTUP",2),nNv=new yP("LEFTDOWN",3),nNk=new yP("RIGHTDOWN",4),nNp=new yP("BALANCED",5)}function nnP(n,t,e){switch(t){case 1:n.n||(n.n=new An(nCK,n,1,7)),noK(n.n),n.n||(n.n=new An(nCK,n,1,7)),AJ(n.n,Im(e,14));return;case 2:q6(n,Sh(e));return}Xy(n,t,e)}function nnI(n,t,e){switch(t){case 3:qo(n,gy(Ss(e)));return;case 4:qs(n,gy(Ss(e)));return;case 5:qh(n,gy(Ss(e)));return;case 6:qf(n,gy(Ss(e)));return}nnP(n,t,e)}function nnC(n,t,e){var i,r;(i=ntl(r=new dP,t,null))&&i.Fi(),GF(r,e),_P((n.c||(n.c=new An(nQp,n,12,10)),n.c),r),qg(r,0),qp(r,1),Vi(r,!0),Vn(r,!0)}function nnO(n,t){var e,i;return Ti(e=mT(n.g,t),235)?((i=Im(e,235)).Qh(),i.Nh()):Ti(e,498)?i=Im(e,1938).b:null}function nnA(n){if(-1==n.g)throw(new wM).e;n.mj();try{n.i.$c(n.g),n.f=n.i.j,n.g<n.e&&--n.e,n.g=-1}catch(n){if(Ti(n=Uu(n),73))throw(new wI).e;throw n.e}}function nn$(n,t){return n.b.a=nTv.Math.min(n.b.a,t.c),n.b.b=nTv.Math.min(n.b.b,t.d),n.a.a=nTv.Math.max(n.a.a,t.c),n.a.b=nTv.Math.max(n.a.b,t.d),n.c[n.c.length]=t,!0}function nnL(n){var t,e,i;for(e=new h1(n.a.b);e.a<e.c.c.length;)i=(t=Im(De(e),57)).d.c,t.d.c=t.d.d,t.d.d=i,i=t.d.b,t.d.b=t.d.a,t.d.a=i,i=t.b.a,t.b.a=t.b.b,t.b.b=i;ncf(n)}function nnN(n){var t,e,i;for(e=new h1(n.a.b);e.a<e.c.c.length;)i=(t=Im(De(e),81)).g.c,t.g.c=t.g.d,t.g.d=i,i=t.g.b,t.g.b=t.g.a,t.g.a=i,i=t.e.a,t.e.a=t.e.b,t.e.b=i;ncl(n)}function nnx(n,t){var e,i;return(i=Im(T5(Xl(Lb(new CL(null,new x6(t.j,16)),new rP))),11))&&(e=Im(CA(i.e,0),17))?Im(ntP(e,(nhu(),nxj)),19).a:function(n){switch(n.g){case 0:return nhM;case 1:return -1;default:return 0}}(n.b)}function nnD(n,t){var e,i,r,c,a;for(a=n.f,r=0,c=0,i=new h1(n.a);i.a<i.c.c.length;)YM(e=Im(De(i),187),n.e,a),_L(e,t),c=nTv.Math.max(c,e.r),a+=e.d+n.c,r=a;n.d=c,n.b=r}function nnR(n){var t,e;return RT(e=nrY(n))?null:(A1(e),t=Im(YX(new OM(TD(e.a.Kc(),new s))),79),ntr(Im(HX((t.b||(t.b=new Ph(nCA,t,4,7)),t.b),0),82)))}function nnK(n){return n.o||(n.Lj()?n.o=new $E(n,n,null):n.rk()?n.o=new S$(n,null):1==$B(BC((neS(),nJk),n))?n.o=new R8(n):n.o=new SL(n,null)),n.o}function nnF(){nnF=C,nz7=new km("V_TOP",0),nz9=new km("V_CENTER",1),nz8=new km("V_BOTTOM",2),nz5=new km("H_LEFT",3),nz4=new km("H_CENTER",4),nz6=new km("H_RIGHT",5)}function nn_(n){var t;return(64&n.Db)!=0?Qk(n):(t=new TW(Qk(n)),t.a+=" (abstract: ",p$(t,(256&n.Bb)!=0),t.a+=", interface: ",p$(t,(512&n.Bb)!=0),t.a+=")",t.a)}function nnB(n,t){(this.e=n,jp(Di(t,-4294967296),0))?(this.d=1,this.a=Um(xg(nYL,1),nfH,25,15,[CZ(t)])):(this.d=2,this.a=Um(xg(nYL,1),nfH,25,15,[CZ(t),CZ(OK(t,32))]))}function nnH(n,t){var e;t!=n.b?(e=null,n.b&&(e=NA(n.b,n,-4,e)),t&&(e=J8(t,n,-4,e)),(e=WI(n,t,e))&&e.Fi()):(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,3,t,t))}function nnq(n,t){var e;t!=n.f?(e=null,n.f&&(e=NA(n.f,n,-1,e)),t&&(e=J8(t,n,-1,e)),(e=WC(n,t,e))&&e.Fi()):(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,0,t,t))}function nnG(n){var t,e,i;if(null==n)return null;if((e=Im(n,15)).dc())return"";for(i=new gz,t=e.Kc();t.Ob();)jT(i,(noQ(),Sh(t.Pb()))),i.a+=" ";return jY(i,i.a.length-1)}function nnz(n){var t,e,i;if(null==n)return null;if((e=Im(n,15)).dc())return"";for(i=new gz,t=e.Kc();t.Ob();)jT(i,(noQ(),Sh(t.Pb()))),i.a+=" ";return jY(i,i.a.length-1)}function nnU(n,t,e){var i,r,c;return i=t.ak(),c=t.dd(),r=i.$j()?NE(n,3,i,null,c,nu5(n,i,c,Ti(i,99)&&(Im(i,18).Bb&nls)!=0),!0):NE(n,1,i,i.zj(),c,-1,!0),e?e.Ei(r):e=r,e}function nnX(n){var t,e;return t=Im(K4(new OM(TD(VG(n.a).a.Kc(),new s))),17),e=Im(K4(new OM(TD(Vz(n.a).a.Kc(),new s))),17),gm(So(ntP(t,(nhu(),nxD))))||gm(So(ntP(e,nxD)))}function nnW(){nnW=C,nLp=new yg("ONE_SIDE",0),nLm=new yg("TWO_SIDES_CORNER",1),nLy=new yg("TWO_SIDES_OPPOSING",2),nLv=new yg("THREE_SIDES",3),nLg=new yg("FOUR_SIDES",4)}function nnV(n,t,e,i,r){var c,a;c=Im(Kc(Lb(t.Oc(),new rb),_x(new B,new _,new ne,Um(xg(nMz,1),nfh,132,0,[(XW(),nM2)]))),15),a=Im(zK(n.b,e,i),15),0==r?a.Wc(0,c):a.Gc(c)}function nnQ(n,t){return!!t&&!n.Di(t)&&(n.i?n.i.Ei(t):Ti(t,143)?(n.i=Im(t,143),!0):(n.i=new un,n.i.Ei(t)))}function nnJ(n,t,e){var i,r,c;for(r=n.vc().Kc();r.Ob();)if(c=(i=Im(r.Pb(),42)).cd(),jf(t)===jf(c)||null!=t&&WY(t,c))return e&&(i=new mL(i.cd(),i.dd()),r.Qb()),i;return null}function nnY(n){var t,e,i;for(i=_f(nPV,nhJ,193,n.b.c.length,0,2),e=new Rn(n.b,0);e.b<e.d.gc();)MK(e.b<e.d.gc()),t=Im(e.d.Xb(e.c=e.b++),29),i[e.b-1]=Dq(t.a);return i}function nnZ(n,t,e,i,r){var c,a,u,o,s;for((o=P9(function(n){switch(n.g){case 1:return zZ(),nPT;case 3:return zZ(),nPk;case 2:return zZ(),nPE;case 4:return zZ(),nPj;default:return null}}(e))).a=i,s=function(n,t,e){var i,r;switch(r=n.o,i=n.d,t.g){case 1:return-i.d-e;case 3:return r.b+i.a+e;case 2:return r.a+i.c+e;case 4:return-i.b-e;default:return 0}}(n,e,r),o.e=s,u=nen(n,e).Kc();u.Ob();)t[(a=Im(u.Pb(),11)).p]&&(c=t[a.p].i,IE(o.d,new Or(c,Vb(o,c))));Qy(o)}function nn1(n,t){this.f=new wt,this.b=new wt,this.j=new wt,this.a=n,this.c=t,this.c>0&&ZA(this,this.c-1,(nsR(),nWA)),this.c<this.a.length-1&&ZA(this,this.c+1,(nsR(),nWJ))}function nn0(n){n.length>0&&n[0].length>0&&(this.c=gm(So(ntP($L(n[0][0]),(nhu(),nxw))))),this.a=_f(nIP,nhJ,2018,n.length,0,2),this.b=_f(nII,nhJ,2019,n.length,0,2),this.d=new Wh}function nn2(){nn2=C,nWj=new kI(nbj,0),nWk=new kI("FREE",1),nWy=new kI("FIXED_SIDE",2),nWp=new kI("FIXED_ORDER",3),nWm=new kI("FIXED_RATIO",4),nWv=new kI("FIXED_POS",5)}function nn3(n){var t,e,i;for(i=new zV(nhC,"{","}"),e=n.vc().Kc();e.Ob();)Fd(i,RH(n,(t=Im(e.Pb(),42)).cd())+"="+RH(n,t.dd()));return i.a?0==i.e.length?i.a.a:i.a.a+""+i.e:i.c}function nn4(n,t){var e,i,r;for(e=null,r=Im(t.Kb(n),20).Kc();r.Ob();)if(i=Im(r.Pb(),17),e){if((i.c.i==n?i.d.i:i.c.i)!=e)return!1}else e=i.c.i==n?i.d.i:i.c.i;return!0}function nn5(n,t){var e,i,r,c;for(i=new h1(nci(n,!1,t));i.a<i.c.c.length;)0==(e=Im(De(i),129)).d?(xq(e,null),xG(e,null)):(r=e.a,c=e.b,xq(e,c),xG(e,r))}function nn6(n,t,e){var i,r;if(0==n.j)return e;if(r=Im(qk(n,t,e),72),!(i=e.ak()).Ij()||!n.a.rl(i))throw new d7("Invalid entry feature '"+i.Hj().zb+"."+i.ne()+"'").e;return r}function nn8(n,t,e){var i;switch(MK(0!=t.b),i=Im(HK(t,t.a.a),8),e.g){case 0:i.b=0;break;case 2:i.b=n.f;break;case 3:i.a=0;break;default:i.a=n.g}return AK(Jz(t,0),i),t}function nn9(n,t,e,i){var r,c,a,u,o;switch(o=n.b,u=J$(a=(c=t.d).j,o.d[a.g],e),r=S9(E1(c.n),c.a),c.j.g){case 1:case 3:u.a+=r.a;break;case 2:case 4:u.b+=r.b}KL(i,u,i.c.b,i.c)}function nn7(){var n,t,e,i;for(t=32,nn7=C,nML=_f(nYR,nlf,25,25,15,1),nMN=_f(nYR,nlf,25,33,15,1),i=152587890625e-16;t>=0;t--)nMN[t]=i,i*=.5;for(n=24,e=1;n>=0;n--)nML[n]=e,e*=.5}function ntn(n,t){var e,i,r;Av(n.f,t)&&(t.b=n,i=t.c,-1!=Bb(n.j,i,0)||IE(n.j,i),r=t.d,-1!=Bb(n.j,r,0)||IE(n.j,r),0!=(e=t.a.b).c.length&&(n.i||(n.i=new J_(n)),function(n,t){var e,i;for(i=new h1(t);i.a<i.c.c.length;)e=Im(De(i),70),IE(n.d,e),function(n,t){var e;e=t.o,Ei(n.f)?(n.j.a=nTv.Math.max(n.j.a,e.a),n.j.b+=e.b,n.d.c.length>1&&(n.j.b+=n.e)):(n.j.a+=e.a,n.j.b=nTv.Math.max(n.j.b,e.b),n.d.c.length>1&&(n.j.a+=n.e))}(n,e)}(n.i,e)))}function ntt(){ntt=C,n_l=new yL(npW,0),n_h=new yL("LONGEST_PATH",1),n_o=new yL("COFFMAN_GRAHAM",2),n_s=new yL(ndL,3),n_b=new yL("STRETCH_WIDTH",4),n_f=new yL("MIN_WIDTH",5)}function nte(n){var t;this.d=new wt,this.c=n.c,this.e=n.d,this.b=n.b,this.f=new CX(n.e),this.a=n.a,n.f?this.g=n.f:this.g=new PR(t=Im(pf(nCG),9),Im(Sz(t,t.length),9),0)}function nti(n,t){var e,i,r,c;(r=Ro(n,"layoutOptions"))||(r=Ro(n,nyk)),r&&(e=null,(c=r)&&(i=GI(c,_f(nTh,nhJ,2,0,6,1)),e=new vy(c,i)),e&&KA(e,new kQ(c,t)))}function ntr(n){if(Ti(n,239))return Im(n,33);if(Ti(n,186))return N8(Im(n,118));if(n)throw new gM("Only support nodes and ports.").e;throw new gv(nyJ).e}function ntc(n,t,e){if(n.b)throw new gg("The task is already done.").e;return null==n.p&&(n.p=t,n.r=e,n.k&&(n.o=(vI(),VF(zx(Date.now()),nfP))),!0)}function nta(n){var t;return t=new gt,null!=n.tg()&&IY(t,nyF,n.tg()),null!=n.ne()&&IY(t,nyQ,n.ne()),null!=n.sg()&&IY(t,"description",n.sg()),t}function ntu(n,t,e){var i,r,c;return c=n.q,n.q=t,(4&n.Db)!=0&&(1&n.Db)==0&&(r=new O9(n,1,9,c,t),e?e.Ei(r):e=r),t?(i=t.c)!=n.r&&(e=n.nk(i,e)):n.r&&(e=n.nk(null,e)),e}function nto(n,t){var e,i,r,c,a;for(c=new wn,r=0,i=t.Kc();i.Ob();){for(e=Va(Im(i.Pb(),19).a+r);e.a<n.f&&(a=e.a,null==n.a&&nad(n),!n.a[a]);)e=Va(e.a+1),++r;if(e.a>=n.f)break;c.c[c.c.length]=e}return c}function nts(n){var t,e,i,r;for(t=null,r=new h1(n.wf());r.a<r.c.c.length;)e=new Lj((i=Im(De(r),181)).qf().a,i.qf().b,i.rf().a,i.rf().b),t?neM(t,e):t=e;return t||(t=new Et),t}function nth(n,t,e,i){return 1==e?(n.n||(n.n=new An(nCK,n,1,7)),QN(n.n,t,i)):Im(Hm(Im(zF(n,16),26)||n.zh(),e),66).Nj().Qj(n,Jp(n),e-AW(n.zh()),t,i)}function ntf(n,t,e){var i,r,c,a,u;for(i=e.gc(),n.qi(n.i+i),(u=n.i-t)>0&&now(n.g,t,n.g,t+i,u),a=e.Kc(),n.i+=i,r=0;r<i;++r)c=a.Pb(),Ts(n,t,n.oi(t,c)),n.bi(t,c),n.ci(),++t;return 0!=i}function ntl(n,t,e){var i;return t!=n.q?(n.q&&(e=NA(n.q,n,-10,e)),t&&(e=J8(t,n,-10,e)),e=ntu(n,t,e)):(4&n.Db)!=0&&(1&n.Db)==0&&(i=new O9(n,1,9,t,t),e?e.Ei(i):e=i),e}function ntb(n,t,e,i){return PQ((e&nhY)==0,"flatMap does not support SUBSIZED characteristic"),PQ((4&e)==0,"flatMap does not support SORTED characteristic"),A1(n),A1(t),new Rb(n,e,i,t)}function ntw(n,t,e,i){var r,c,a,u,o,s,h;for(u=0,a=e.length,c=0,r=-1,s=Hj(n.substr(t),(Pz(),nMI));u<a;++u)(o=e[u].length)>c&&(h=Hj(e[u],nMI),Pv(s.substr(0,h.length),h))&&(r=u,c=o);return r>=0&&(i[0]=t+c),r}function ntd(n){var t,e;return n>=nls?(t=nlh+(n-nls>>10&1023)&nfI,e=56320+(n-nls&1023)&nfI,String.fromCharCode(t)+""+String.fromCharCode(e)):String.fromCharCode(n&nfI)}function ntg(){ntg=C,nXU=new kE(nwY,0),nXG=new kE("DIRECTED",1),nXX=new kE("UNDIRECTED",2),nXH=new kE("ASSOCIATION",3),nXz=new kE("GENERALIZATION",4),nXq=new kE("DEPENDENCY",5)}function ntp(n,t){var e,i;for($x(t),i=n.b.c.length,IE(n.b,t);i>0;){if(e=i,i=(i-1)/2|0,0>=n.a.ue(CA(n.b,i),t))return KN(n.b,e,t),!0;KN(n.b,e,CA(n.b,i))}return KN(n.b,i,t),!0}function ntv(n,t,e,i){var r,c;if(r=0,e)r=Wc(n.a[e.g][t.g],i);else for(c=0;c<nSb;c++)r=nTv.Math.max(r,Wc(n.a[c][t.g],i));return t==(HB(),nSV)&&n.b&&(r=nTv.Math.max(r,n.b.a)),r}function ntm(n,t,e,i){var r;if(r=!1,jw(i)&&(r=!0,IY(t,e,Sh(i))),!r&&jl(i)&&(r=!0,ntm(n,t,e,i)),!r&&Ti(i,236)&&(r=!0,L1(t,e,Im(i,236))),!r)throw new gs(nyK).e}function nty(n,t){var e,i,r,c;if($x(t),(c=n.a.gc())<t.gc())for(e=n.a.ec().Kc();e.Ob();)i=e.Pb(),t.Hc(i)&&e.Qb();else for(r=t.Kc();r.Ob();)i=r.Pb(),n.a.Bc(i);return c!=n.a.gc()}function ntk(n){var t,e;switch(e=E1(Xt(Um(xg(nCa,1),nhJ,8,0,[n.i.n,n.n,n.a]))),t=n.i.d,n.j.g){case 1:e.b-=t.d;break;case 2:e.a+=t.c;break;case 3:e.b+=t.a;break;case 4:e.a-=t.b}return e}function ntj(n,t,e,i){var r,c,a;for(a=WJ(t,i).Kc();a.Ob();)r=Im(a.Pb(),11),n.d[r.p]=n.d[r.p]+n.c[e.p];for(c=WJ(e,i).Kc();c.Ob();)r=Im(c.Pb(),11),n.d[r.p]=n.d[r.p]-n.c[t.p]}function ntE(n,t,e){var i,r;for(r=new Td((n.a||(n.a=new An(nCF,n,10,11)),n.a));r.e!=r.i.gc();)Ef(i=Im(J1(r),33),i.i+t,i.j+e);KA((n.b||(n.b=new An(nC$,n,12,3)),n.b),new kR(t,e))}function ntT(n,t){Ti(Nz((ml(),nQS),n),498)?xp(nQS,n,new k7(this,t)):xp(nQS,n,this),ntJ(this,t),t==(pg(),nQC)?(this.wb=Im(this,1939),Im(t,1941)):this.wb=($g(),nQO)}function ntM(){ntM=C,nMM=Um(xg(nTh,1),nhJ,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),nMS=Um(xg(nTh,1),nhJ,2,6,["Jan","Feb","Mar","Apr",nfL,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])}function ntS(n){var t,e;(t=Pv(typeof t,nlK)?null:new nh)&&(vX(),$m(e=900>=nfP?"error":"warn",n.a),n.b&&function n(t,e,i,r,c){var a,u,o,s,h,f;for(function(n,t){(t||null==console.groupCollapsed?null!=console.group?console.group:console.log:console.groupCollapsed).call(console,n)}(r+Nm(i,i.$d()),c),$m(e,(h=i.e)&&(h.stack||((f=i[nfT])&&0!=f.length?" "+f.join("\n "):""))),(a=i.f)&&n(t,e,a,"Caused by: ",!1),null==i.k&&(i.k=_f(nE5,nhJ,78,0,0,1)),u=i.k,o=0,s=u.length;o<s;++o)n(t,e,u[o],"Suppressed: ",!1);null!=console.groupEnd&&console.groupEnd.call(console)}(t,e,n.b,"Exception: ",!0))}function ntP(n,t){var e,i;return(n.q||(n.q=new wt),null!=(i=$a(n.q,t)))?i:(Ti(e=t.wg(),4)&&(null==e?(n.q||(n.q=new wt),Fv(n.q,t)):(n.q||(n.q=new wt),$J(n.q,t,e))),e)}function ntI(){ntI=C,nAd=new m0("P1_CYCLE_BREAKING",0),nAg=new m0("P2_LAYERING",1),nAp=new m0("P3_NODE_ORDERING",2),nAv=new m0("P4_NODE_PLACEMENT",3),nAm=new m0("P5_EDGE_ROUTING",4)}function ntC(n,t){var e,i,r,c;for(i=(1==t?nAT:nAE).a.ec().Kc();i.Ob();)for(e=Im(i.Pb(),103),c=Im(Fl(n.f.c,e),21).Kc();c.Ob();)r=Im(c.Pb(),46),Bh(n.b.b,r.b),Bh(n.b.a,Im(r.b,81).d)}function ntO(n,t){var e,i,r;if(ntF(n,t))return!0;for(i=new h1(t);i.a<i.c.c.length;)if(r=nnR(e=Im(De(i),33)),nan(n,e,r)||Wg(n,e)-n.g<=n.a)return!0;return!1}function ntA(){ntA=C,naw(),nGY=nzr,nGV=nzn,nGW=nG9,nGU=nG4,nGX=nG6,nGz=new ES(8),nGG=new EM((nha(),nUU),nGz),nGQ=new EM(nXj,8),nGJ=nze,nGB=nGZ,nGH=nG0,nGq=new EM(nUf,(TX(),!1))}function nt$(){nt$=C,nz0=new ES(15),nz1=new EM((nha(),nUU),nz0),nz3=new EM(nXj,15),nz2=new EM(nXa,Va(0)),nzV=nUk,nzJ=nUR,nzZ=nUH,nzU=new EM(nUr,nmp),nzQ=nUP,nzY=nU_,nzX=nUa,nzW=nUs}function ntL(n){if(1!=(n.b||(n.b=new Ph(nCA,n,4,7)),n.b).i||1!=(n.c||(n.c=new Ph(nCA,n,5,8)),n.c).i)throw new gd(nyZ).e;return ntr(Im(HX((n.b||(n.b=new Ph(nCA,n,4,7)),n.b),0),82))}function ntN(n){if(1!=(n.b||(n.b=new Ph(nCA,n,4,7)),n.b).i||1!=(n.c||(n.c=new Ph(nCA,n,5,8)),n.c).i)throw new gd(nyZ).e;return Uo(Im(HX((n.b||(n.b=new Ph(nCA,n,4,7)),n.b),0),82))}function ntx(n){if(1!=(n.b||(n.b=new Ph(nCA,n,4,7)),n.b).i||1!=(n.c||(n.c=new Ph(nCA,n,5,8)),n.c).i)throw new gd(nyZ).e;return Uo(Im(HX((n.c||(n.c=new Ph(nCA,n,5,8)),n.c),0),82))}function ntD(n){if(1!=(n.b||(n.b=new Ph(nCA,n,4,7)),n.b).i||1!=(n.c||(n.c=new Ph(nCA,n,5,8)),n.c).i)throw new gd(nyZ).e;return ntr(Im(HX((n.c||(n.c=new Ph(nCA,n,5,8)),n.c),0),82))}function ntR(n,t,e){var i,r,c;if(++n.j,t>=(r=n.Vi())||t<0)throw new gu(ny2+t+ny3+r).e;if(e>=r||e<0)throw new gu(ny4+e+ny3+r).e;return t!=e?(c=n.Ti(e),n.Hi(t,c),i=c):i=n.Oi(e),i}function ntK(n){var t,e,i;for(i=new zV(nhC,"[","]"),e=n.Kc();e.Ob();)Fd(i,jf(t=e.Pb())===jf(n)?"(this Collection)":null==t?nhN:V7(t));return i.a?0==i.e.length?i.a.a:i.a.a+""+i.e:i.c}function ntF(n,t){var e,i;if(i=!1,2>t.gc())return!1;for(e=0;e<t.gc();e++)e<t.gc()-1?i|=nan(n,Im(t.Xb(e),33),Im(t.Xb(e+1),33)):i|=nan(n,Im(t.Xb(e),33),Im(t.Xb(0),33));return i}function nt_(n,t){var e;t!=n.a?(e=null,n.a&&(e=Im(n.a,49).ih(n,4,nCR,e)),t&&(e=Im(t,49).gh(n,4,nCR,e)),(e=WP(n,t,e))&&e.Fi()):(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,1,t,t))}function ntB(n,t){var e,i,r,c;t!=n.e?(n.e&&FD($_(n.e),n),t&&(t.b||(t.b=new b1(new dC)),Pn(t.b,n)),i=null,c=n.e,n.e=t,(4&n.Db)!=0&&(1&n.Db)==0&&(r=new O9(n,1,4,c,t),i?i.Ei(r):i=r),c!=t&&(i=t?nsg(n,nr0(n,t),i):nsg(n,n.a,i)),(e=i)&&e.Fi()):(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,4,t,t))}function ntH(n){var t,e,i;for(e=n.length,i=0;i<e&&(x5(i,n.length),32>=n.charCodeAt(i));)++i;for(t=e;t>i&&(x5(t-1,n.length),32>=n.charCodeAt(t-1));)--t;return i>0||t<e?n.substr(i,t-i):n}function ntq(){ntq=C,nLE=Um(xg(nCy,1),nwZ,61,0,[(nsR(),nW$),nWA,nWV]),nLj=Um(xg(nCy,1),nwZ,61,0,[nWA,nWV,nWJ]),nLT=Um(xg(nCy,1),nwZ,61,0,[nWV,nWJ,nW$]),nLM=Um(xg(nCy,1),nwZ,61,0,[nWJ,nW$,nWA])}function ntG(n){var t,e,i,r,c,a;for(e=0,this.a=Yh(n),this.b=new wn,i=n.length;e<i;++e)for(t=n[e],r=new wn,IE(this.b,r),c=0,a=t.length;c<a;++c)IE(r,new PB(t[c].j))}function ntz(n){for(;0!=n.g.c&&0!=n.d.c;)Sy(n.g).c>Sy(n.d).c?(n.i+=n.g.c,QV(n.d)):Sy(n.d).c>Sy(n.g).c?(n.e+=n.d.c,QV(n.g)):(n.i+=Cx(n.g),n.e+=Cx(n.d),QV(n.g),QV(n.d))}function ntU(n,t,e,i){n.a.d=nTv.Math.min(t,e),n.a.a=nTv.Math.max(t,i)-n.a.d,t<e?(n.b=.5*(t+e),n.g=nvn*n.b+.9*t,n.f=nvn*n.b+.9*e):(n.b=.5*(t+i),n.g=nvn*n.b+.9*i,n.f=nvn*n.b+.9*t)}function ntX(n,t){var e,i;i=Im(ntP(t,(ns8(),nFE)),98),UU(t,(nhu(),nxI),i),(e=t.e)&&(vF(new CL(null,new x6(e.a,16)),new fL(n)),vF(BV(new CL(null,new x6(e.b,16)),new tu),new fN(n)))}function ntW(){ntW=C,nNI=new yI(nwY,0),nNM=new yI(nbp,1),nNC=new yI(nbv,2),nNP=new yI("LEFT_RIGHT_CONSTRAINT_LOCKING",3),nNS=new yI("LEFT_RIGHT_CONNECTION_LOCKING",4),nNT=new yI(ndx,5)}function ntV(n,t,e){var i,r,c,a,u,o,s;u=e.a/2,c=e.b/2,i=nTv.Math.abs(t.a-n.a),r=nTv.Math.abs(t.b-n.b),o=1,s=1,i>u&&(o=u/i),r>c&&(s=c/r),a=nTv.Math.min(o,s),n.a+=a*(t.a-n.a),n.b+=a*(t.b-n.b)}function ntQ(n,t,e,i){return 0==e?(n.o||(n.o=new _D((nsZ(),nVA),nCq,n,0)),PC(n.o,t,i)):Im(Hm(Im(zF(n,16),26)||n.zh(),e),66).Nj().Rj(n,Jp(n),e-AW(n.zh()),t,i)}function ntJ(n,t){var e;t!=n.sb?(e=null,n.sb&&(e=Im(n.sb,49).ih(n,1,nCx,e)),t&&(e=Im(t,49).gh(n,1,nCx,e)),(e=WG(n,t,e))&&e.Fi()):(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,4,t,t))}function ntY(){ntY=C,nAV=new m4("NORMAL",0),nAW=new m4("LONG_EDGE",1),nAU=new m4("EXTERNAL_PORT",2),nAQ=new m4("NORTH_SOUTH_PORT",3),nAX=new m4("LABEL",4),nAz=new m4("BREAKING_POINT",5)}function ntZ(n,t){var e,i,r;return(t&=63)<22?(e=n.l<<t,i=n.m<<t|n.l>>22-t,r=n.h<<t|n.m>>22-t):t<44?(e=0,i=n.l<<t-22,r=n.m<<t-22|n.l>>44-t):(e=0,i=0,r=n.l<<t-44),Ez(e&nf4,i&nf4,r&nf5)}function nt1(n){if(null==nTJ&&(nTJ=RegExp("^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$")),!nTJ.test(n))throw new gG(nlr+n+'"').e;return parseFloat(n)}function nt0(){nt0=C,nNo=new yM("ALWAYS_UP",0),nNu=new yM("ALWAYS_DOWN",1),nNh=new yM("DIRECTION_UP",2),nNs=new yM("DIRECTION_DOWN",3),nNl=new yM("SMART_UP",4),nNf=new yM("SMART_DOWN",5)}function nt2(n,t){var e,i,r,c;for(e=new Ed(n);null!=e.g||e.c?null==e.g||0!=e.i&&Im(e.g[e.i-1],47).Ob():xr(e);)if(Ti(c=Im(nrV(e),56),160))for(r=0,i=Im(c,160);r<t.length;r++)t[r].og(i)}function nt3(n){var t;return(64&n.Db)!=0?VL(n):(t=new TW(VL(n)),t.a+=" (height: ",pA(t,n.f),t.a+=", width: ",pA(t,n.g),t.a+=", x: ",pA(t,n.i),t.a+=", y: ",pA(t,n.j),t.a+=")",t.a)}function nt4(n){var t,e,i,r,c;for(i=0,t=new R7,r=n.length;i<r;++i)if(null!=JR(t,c=A1((e=n[i]).cd()),A1(e.dd())))throw new gd("duplicate key: "+c).e;this.b=(LV(),new hZ(t))}function nt5(){nt5=C,Hn(),nOm=new jU(nwh,nOy=nOP),Va(1),nOv=new jU(nwf,Va(300)),Va(0),nOE=new jU(nwl,Va(0)),new b9,nOT=new jU(nwb,nww),new b9,nOk=new jU(nwd,5),nOM=nOP,nOj=nOS}function nt6(n,t){var e,i,r,c;for(i=(1==t?nAT:nAE).a.ec().Kc();i.Ob();)for(e=Im(i.Pb(),103),c=Im(Fl(n.f.c,e),21).Kc();c.Ob();)r=Im(c.Pb(),46),IE(n.b.b,Im(r.b,81)),IE(n.b.a,Im(r.b,81).d)}function nt8(n){var t,e;return e=nTv.Math.sqrt((null==n.k&&(n.k=GY(n,new rR)),gy(n.k)/(n.b*(null==n.g&&(n.g=GJ(n,new rD)),gy(n.g))))),t=CZ(zx(nTv.Math.round(e))),t=nTv.Math.min(t,n.f)}function nt9(){zn(),SJ.call(this),this.j=(nsR(),nWQ),this.a=new ps,new dr,this.f=(qz(2,nfs),new Fq(2)),this.e=(qz(4,nfs),new Fq(4)),this.g=(qz(4,nfs),new Fq(4)),this.b=new ya(this.e,this.g)}function nt7(){nt7=C,nGx=new kf("CENTER_DISTANCE",0),nGD=new kf("CIRCLE_UNDERLAP",1),nGF=new kf("RECTANGLE_UNDERLAP",2),nGR=new kf("INVERTED_OVERLAP",3),nGK=new kf("MINIMUM_ROOT_DISTANCE",4)}function nen(n,t){switch(t.g){case 1:return Iv(n.j,(zn(),nA1));case 2:return Iv(n.j,(zn(),nAY));case 3:return Iv(n.j,(zn(),nA2));case 4:return Iv(n.j,(zn(),nA3));default:return LV(),LV(),nMv}}function net(n,t){var e,i,r,c,a,u,o;if(n.e<=t||(u=n.g,(o=nob(n,u,!1)).b<=u&&o.a<=t))return n.g;for(c=n.r,i=n.g,a=n.r,r=(c-i)/2+i;i+1<c;)(e=nob(n,r,!1)).b<=r&&e.a<=t?(a=r,c=r):i=r,r=(c-i)/2+i;return a}function nee(n){var t;if(null==n.p)throw new gg("The task has not begun yet.").e;n.b||(n.k&&(vI(),t=VF(zx(Date.now()),nfP),n.q=1e-9*D8(VR(t,n.o))),n.c<n.r&&Gu(n,n.r-n.c),n.b=!0)}function nei(n){var t,e,i;for(I2(i=new dd,new kp(n.j,n.k)),e=new Td((n.a||(n.a=new Tg(nCI,n,5)),n.a));e.e!=e.i.gc();)I2(i,new kp((t=Im(J1(e),469)).a,t.b));return I2(i,new kp(n.b,n.c)),i}function ner(n,t){var e;if(jf(n)===jf(t))return!0;if(Ti(t,21)){e=Im(t,21);try{return n.gc()==e.gc()&&n.Ic(e)}catch(n){if(Ti(n=Uu(n),173)||Ti(n,205));else throw n.e}}return!1}function nec(n,t){var e;IE(n.d,t),e=t.rf(),n.c?(n.e.a=nTv.Math.max(n.e.a,e.a),n.e.b+=e.b,n.d.c.length>1&&(n.e.b+=n.a)):(n.e.a+=e.a,n.e.b=nTv.Math.max(n.e.b,e.b),n.d.c.length>1&&(n.e.a+=n.a))}function nea(n,t,e,i,r){if(i<t||r<e)throw new gd("The highx must be bigger then lowx and the highy must be bigger then lowy").e;return n.a<t?n.a=t:n.a>i&&(n.a=i),n.b<e?n.b=e:n.b>r&&(n.b=r),n}function neu(n,t,e,i){var r,c;if(t.k==(ntY(),nAW)){for(c=new OM(TD(VG(t).a.Kc(),new s));nrc(c);)if((r=Im(K4(c),17)).c.i.k==nAW&&n.c.a[r.c.i.c.p]==i&&n.c.a[t.c.p]==e)return!0}return!1}function neo(n,t,e,i){var r;this.b=i,this.e=n==(qB(),nBp),r=t[e],this.d=Cv(nYN,[nhJ,nbf],[177,25],16,[r.length,r.length],2),this.a=Cv(nYL,[nhJ,nfH],[48,25],15,[r.length,r.length],2),this.c=new nn1(t,e)}function nes(n,t){var e,i,r;Av(n.d,t),e=new cM,$J(n.c,t,e),e.f=Wb(t.c),e.a=Wb(t.d),e.d=(ncS(),(r=t.c.i.k)==(ntY(),nAV)||r==nAz),e.e=(i=t.d.i.k)==nAV||i==nAz,e.b=t.c.j==(nsR(),nWJ),e.c=t.d.j==nWA}function neh(n){var t;return(64&n.Db)!=0?nt3(n):(t=new TV(nm5),n.a&&jP(jP((t.a+=' "',t),n.a),'"'),jP(pL(jP(pL(jP(pL(jP(pL((t.a+=" (",t),n.i),","),n.j)," | "),n.g),","),n.f),")"),t.a)}function nef(n,t,e){var i,r,c,a,u;for(a=0,u=ncT(n.e.Tg(),t),r=Im(n.g,119),i=0;a<n.i;++a)if(c=r[a],u.rl(c.ak())){if(i==e)return ncQ(n,a),mp(),Im(t,66).Oj()?c:c.dd();++i}throw new gu(nkB+e+ny3+i).e}function nel(n){var t,e,i;if(2==(t=n.c)||7==t||1==t)return nhh(),nhh(),nYl;for(i=ns1(n),e=null;2!=(t=n.c)&&7!=t&&1!=t;)e||(nhh(),nhh(),++nYO,nox(e=new EO(1),i),i=e),nox(e,ns1(n));return i}function neb(n,t){var e,i,r,c,a;for(i=0,r=n.length;i<r;i++){c=n[i];try{c[1]?c[0].jm()&&((a=t)||(a=[]),a[a.length]=c,t=a):c[0].jm()}catch(n){if(Ti(n=Uu(n),78))e=n,g0(),function(n){g0(),nTv.setTimeout(function(){throw n},0)}(Ti(e,477)?Im(e,477).ae():e);else throw n.e}}return t}function ned(n,t,e){var i,r,c;for(e!=t.c+t.b.gc()&&function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;for(g=n.c,p=t.c,e=Bb(g.a,n,0),i=Bb(p.a,t,0),w=Im(QT(n,(qF(),n_U)).Kc().Pb(),11),y=Im(QT(n,n_X).Kc().Pb(),11),d=Im(QT(t,n_U).Kc().Pb(),11),k=Im(QT(t,n_X).Kc().Pb(),11),l=DH(w.e),v=DH(y.g),b=DH(d.e),m=DH(k.g),ZF(n,i,p),c=0,s=b.length;c<s;++c)xj(b[c],w);for(a=0,h=m.length;a<h;++a)xE(m[a],y);for(ZF(t,e,g),u=0,f=l.length;u<f;++u)xj(l[u],d);for(r=0,o=v.length;r<o;++r)xE(v[r],k)}(t.a,(c=e-t.c)<t.b.gc()?Im(t.b.Xb(c),10):c==t.b.gc()?t.a:Im(CA(t.e,c-t.b.gc()-1),10)),r=t.a.c.p,n.a[r]=nTv.Math.max(n.a[r],t.a.o.a),i=Im(ntP(t.a,(nhu(),nxx)),15).Kc();i.Ob();)UU(Im(i.Pb(),70),n$6,(TX(),!0))}function neg(n){var t;this.c=new vK,this.f=n.e,this.e=n.d,this.i=n.g,this.d=n.c,this.b=n.b,this.k=n.j,this.a=n.a,n.i?this.j=n.i:this.j=new PR(t=Im(pf(nCr),9),Im(Sz(t,t.length),9),0),this.g=n.f}function nep(n,t,e){var i,r,c;if(!(e<=t+2))for(i=0,r=(e-t)/2|0;i<r;++i)x4(t+i,n.c.length),c=Im(n.c[t+i],11),KN(n,t+i,(x4(e-i-1,n.c.length),Im(n.c[e-i-1],11))),x4(e-i-1,n.c.length),n.c[e-i-1]=c}function nev(n){var t;this.j=new wn,this.f=new w_,this.b=new PR(t=Im(pf(nCy),9),Im(Sz(t,t.length),9),0),this.d=_f(nYL,nfH,25,(nsR(),Um(xg(nCy,1),nwZ,61,0,[nWQ,nW$,nWA,nWV,nWJ])).length,15,1),this.g=n}function nem(n,t){var e,i,r;if(i=Hm(n.Tg(),t),(e=t-n.Ah())<0){if(i){if(i.Ij())(r=n.Yg(i))>=0?n.Bh(r):nic(n,i);else throw new gd(nyn+i.ne()+nyt).e}else throw new gd(nyr+t+nyc).e}else W5(n,e,i)}function ney(n){var t,e;if(e=null,t=!1,Ti(n,204)&&(t=!0,e=Im(n,204).a),!t&&Ti(n,258)&&(t=!0,e=""+Im(n,258).a),!t&&Ti(n,483)&&(t=!0,e=""+Im(n,483).a),!t)throw new gs(nyK).e;return e}function nek(n,t){var e,i;if(!n.f)return t.Ob();for(;t.Ob();)if(Ti(i=(e=Im(t.Pb(),72)).ak(),99)&&(Im(i,18).Bb&nya)!=0&&(!n.e||i.Gj()!=nCP||0!=i.aj())&&null!=e.dd())return t.Ub(),!0;return!1}function nej(n,t){var e,i;if(!n.f)return t.Sb();for(;t.Sb();)if(Ti(i=(e=Im(t.Ub(),72)).ak(),99)&&(Im(i,18).Bb&nya)!=0&&(!n.e||i.Gj()!=nCP||0!=i.aj())&&null!=e.dd())return t.Pb(),!0;return!1}function neE(n,t,e){var i,r,c,a,u,o;for(a=0,o=ncT(n.e.Tg(),t),i=0,u=n.i,r=Im(n.g,119);a<n.i;++a)if(c=r[a],o.rl(c.ak())){if(e==i)return a;++i,u=a+1}if(e==i)return u;throw new gu(nkB+e+ny3+i).e}function neT(){neT=C,nzx=new kw(nbj,0),nzI=new kw("BOOLEAN",1),nz$=new kw("INT",2),nzN=new kw("STRING",3),nzC=new kw("DOUBLE",4),nzO=new kw("ENUM",5),nzA=new kw("ENUMSET",6),nzL=new kw("OBJECT",7)}function neM(n,t){var e,i,r,c,a;i=nTv.Math.min(n.c,t.c),c=nTv.Math.min(n.d,t.d),r=nTv.Math.max(n.c+n.b,t.c+t.b),a=nTv.Math.max(n.d+n.a,t.d+t.a),r<i&&(e=i,i=r,r=e),a<c&&(e=c,c=a,a=e),I0(n,i,c,r-i,a-c)}function neS(){neS=C,nJy=Um(xg(nTh,1),nhJ,2,6,[njB,njH,njq,njG,njz,njU,nyV]),nJm=Um(xg(nTh,1),nhJ,2,6,[njB,"empty",njH,njb,"elementOnly"]),nJj=Um(xg(nTh,1),nhJ,2,6,[njB,"preserve","replace",njX]),nJk=new IV}function neP(n,t,e){var i,r,c;if(t!=e){i=t;do S9(n,i.c),(r=i.e)&&(MG(n,(c=i.d).b,c.d),S9(n,r.n),i=$L(r));while(r)i=e;do S7(n,i.c),(r=i.e)&&(Mz(n,(c=i.d).b,c.d),S7(n,r.n),i=$L(r));while(r)}}function neI(n,t,e,i){var r,c,a,u,o,s;if(i.f.c+i.g.c==0)for(a=n.a[n.c],u=0,o=a.length;u<o;++u)$J(i,c=a[u],new ze(n,c,e));return(r=Im(jh(Nj(i.f,t)),663)).b=0,r.c=r.f,0==r.c||((s=Im(CA(r.a,r.b),287)).b=s.a),r}function neC(){neC=C,nLH=new yv("MEDIAN_LAYER",0),nLG=new yv("TAIL_LAYER",1),nLB=new yv("HEAD_LAYER",2),nLq=new yv("SPACE_EFFICIENT_LAYER",3),nLz=new yv("WIDEST_LAYER",4),nL_=new yv("CENTER_LAYER",5)}function neO(){neO=C,nHf=new y9("ROOT_PROC",0),nHu=new y9("FAN_PROC",1),nHs=new y9("NEIGHBORS_PROC",2),nHo=new y9("LEVEL_HEIGHT",3),nHh=new y9("NODE_POSITION_PROC",4),nHa=new y9("DETREEIFYING_PROC",5)}function neA(n,t){var e,i,r;if(Ti(t,239))return e=Im(t,33),Gs(A6(n.g),e);if(Ti(t,186))return i=Im(t,118),Gs(A6(n.j),i);if(Ti(t,439))return r=Im(t,202),Gs(A6(n.d),r);throw new gd(nyB+ntK(new gE(Um(xg(nEX,1),nhA,1,5,[t])))).e}function ne$(n,t,e){var i,r;if(this.f=n,Fg(e,r=(i=Im($a(n.b,t),283))?i.a:0),e>=(r/2|0))for(this.e=i?i.c:null,this.d=r;e++<r;)xk(this);else for(this.c=i?i.b:null;e-- >0;)xy(this);this.b=t,this.a=null}function neL(n,t){var e,i;if(e=Im($6(n.b,t),124),Im(Im(Fl(n.r,t),21),84).dc()){e.n.b=0,e.n.c=0;return}e.n.b=n.C.b,e.n.c=n.C.c,n.A.Hc((QJ(),nW8))&&nav(n,t),i=function(n,t){var e,i,r;for(r=0,i=Im(Im(Fl(n.r,t),21),84).Kc();i.Ob();)r+=(e=Im(i.Pb(),111)).d.b+e.b.rf().a+e.d.c,i.Ob()&&(r+=n.w);return r}(n,t),nc3(n,t)==(Jq(),nWb)&&(i+=2*n.w),e.a.a=i}function neN(n,t){var e,i;if(e=Im($6(n.b,t),124),Im(Im(Fl(n.r,t),21),84).dc()){e.n.d=0,e.n.a=0;return}e.n.d=n.C.d,e.n.a=n.C.a,n.A.Hc((QJ(),nW8))&&nam(n,t),i=function(n,t){var e,i,r;for(r=0,i=Im(Im(Fl(n.r,t),21),84).Kc();i.Ob();)r+=(e=Im(i.Pb(),111)).d.d+e.b.rf().b+e.d.a,i.Ob()&&(r+=n.w);return r}(n,t),nc3(n,t)==(Jq(),nWb)&&(i+=2*n.w),e.a.b=i}function nex(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w;return u=n.a,f=n.b,o=t.a,l=t.b,s=e.a,b=e.b,h=i.a,w=i.b,c=u*l-f*o,a=s*w-b*h,r=(u-o)*(b-w)-(f-l)*(s-h),new kp((c*(s-h)-a*(u-o))/r,(c*(b-w)-a*(f-l))/r)}function neD(n,t){var e,i,r;if(!n.d[t.p]){for(n.d[t.p]=!0,n.a[t.p]=!0,i=new OM(TD(Vz(t).a.Kc(),new s));nrc(i);)KR(e=Im(K4(i),17))||(r=e.d.i,n.a[r.p]?IE(n.b,e):neD(n,r));n.a[t.p]=!1}}function neR(n,t,e){var i;switch(i=0,Im(ntP(t,(ns8(),nKY)),163).g){case 2:i=-(2*e)+n.a,++n.a;break;case 1:i=-e;break;case 3:i=e;break;case 4:i=2*e+n.b,++n.b}return MH(t,(nhu(),nxj))&&(i+=Im(ntP(t,nxj),19).a),i}function neK(n){var t,e;return Im(nrM(n,(nha(),nUR)),21).Hc((QJ(),nW4))?(e=Im(nrM(n,nUH),21),t=new Ee(Im(nrM(n,nU_),8)),e.Hc((na9(),nVt))&&(t.a<=0&&(t.a=20),t.b<=0&&(t.b=20)),t):new ps}function neF(n){var t,e,i;if(!n.b){for(i=new uf,e=new Mm(non(n));e.e!=e.i.gc();)((t=Im(J0(e),18)).Bb&nya)!=0&&_P(i,t);X5(i),n.b=new jW((Im(HX(L6(($g(),nQO).o),8),18),i.i),i.g),KJ(n).b&=-9}return n.b}function ne_(n){var t,e,i,r,c,a,u;if(LV(),Ti(n,54))for(c=0,r=n.gc()-1;c<r;++c,--r)t=n.Xb(c),n._c(c,n.Xb(r)),n._c(r,t);else for(e=n.Yc(),a=n.Zc(n.gc());e.Tb()<a.Vb();)i=e.Pb(),u=a.Ub(),e.Wb(u),a.Wb(i)}function neB(n,t){var e,i,r,c,a,u;for(u=0,RC(c=new b7,t);c.b!=c.c;)for(u+=Zp((a=Im(Al(c),214)).d,a.e),r=new h1(a.b);r.a<r.c.c.length;)i=Im(De(r),37),(e=Im(CA(n.b,i.p),214)).s||(u+=neB(n,e));return u}function neH(n,t,e){var i,r;z2(this),t==(ND(),nB9)?Av(this.r,n.c):Av(this.w,n.c),e==nB9?Av(this.r,n.d):Av(this.w,n.d),nes(this,n),ntU(this,i=Wb(n.c),r=Wb(n.d),r),this.o=(ncS(),.2>nTv.Math.abs(i-r))}function neq(n,t,e){var i,r,c,a;if(null!=(c=Im(zF(n.a,8),1936)))for(i=0,r=c.length;i<r;++i)null.jm();(1&n.a.Db)==0&&(a=new $T(n,e,t),e.ui(a)),Ti(e,672)?Im(e,672).wi(n.a):e.ti()==n.a&&e.vi(null)}function neG(n,t,e){var i,r,c;i=Im(nrM(n,(nha(),nUs)),21),r=0,c=0,t.a>e.a&&(i.Hc((nnF(),nz4))?r=(t.a-e.a)/2:i.Hc(nz6)&&(r=t.a-e.a)),t.b>e.b&&(i.Hc((nnF(),nz9))?c=(t.b-e.b)/2:i.Hc(nz8)&&(c=t.b-e.b)),ntE(n,r,c)}function nez(n,t,e,i,r,c,a,u,o,s,h,f,l){Ti(n.Cb,88)&&ne2(KJ(Im(n.Cb,88)),4),GF(n,e),n.f=a,Vj(n,u),VT(n,o),Vk(n,s),VE(n,h),Vi(n,f),VS(n,l),Vn(n,!0),qg(n,r),n.ok(c),Ww(n,t),null!=i&&(n.i=null,Gg(n,i))}function neU(n){var t,e;if(!n.f)return n.n>0;for(;n.n>0;){if(Ti(e=(t=Im(n.k.Xb(n.n-1),72)).ak(),99)&&(Im(e,18).Bb&nya)!=0&&(!n.e||e.Gj()!=nCP||0!=e.aj())&&null!=t.dd())return!0;--n.n}return!1}function neX(n,t,e){if(n<0)return naT(nhO,Um(xg(nEX,1),nhA,1,5,[e,Va(n)]));if(t<0)throw new gd(nh$+t).e;return naT("%s (%s) must not be greater than size (%s)",Um(xg(nEX,1),nhA,1,5,[e,Va(n),Va(t)]))}function neW(n,t){var e,i,r;for(r=new wn,i=new h1(n.c.a.b);i.a<i.c.c.length;)e=Im(De(i),57),t.Lb(e)&&(IE(r,new mD(e,!0)),IE(r,new mD(e,!1)));(function(n){var t,e;for(gi(n.b.a),n.a=_f(nSe,nhA,57,n.c.c.a.b.c.length,0,1),t=0,e=new h1(n.c.c.a.b);e.a<e.c.c.length;)Im(De(e),57).f=t++})(n.e),DG(r,n.d,new gE(Um(xg(nSt,1),nhA,679,0,[n.e])))}function neV(n,t,e){var i,r,c;if(r=Hm(n.Tg(),t),(i=t-n.Ah())<0){if(r){if(r.Ij())(c=n.Yg(r))>=0?n.sh(c,e):nr2(n,r,e);else throw new gd(nyn+r.ne()+nyt).e}else throw new gd(nyr+t+nyc).e}else V5(n,i,r,e)}function neQ(n,t,e){var i,r,c,a;if(a=null==t?0:n.b.se(t),0==(r=null==(i=n.a.get(a))?[]:i).length)n.a.set(a,r);else if(c=X8(n,t,r))return c.ed(e);return $t(r,r.length,new mL(t,e)),++n.c,Ni(n.b),null}function neJ(n,t){var e;return DY(n.a),Ak(n.a,(GL(),nH9),nH9),Ak(n.a,nH7,nH7),Cg(e=new Rf,nH7,(V0(),nqi)),jf(nrM(t,(ZD(),nqT)))!==jf((XX(),nqo))&&Cg(e,nH7,nqt),Cg(e,nH7,nqe),zM(n.a.a,e),noU(n.a,t)}function neY(n){if(!n)return gD(),nTH;var t=n.valueOf?n.valueOf():n;if(t!==n){var e=nTq[typeof t];return e?e(t):Wu(typeof t)}return n instanceof Array||n instanceof nTv.Array?new hP(n):new hO(n)}function neZ(n,t,e){var i,r,c;switch(c=n.o,(r=(i=Im($6(n.p,e),244)).i).b=nid(i),r.a=niw(i),r.b=nTv.Math.max(r.b,c.a),r.b>c.a&&!t&&(r.b=c.a),r.c=-(r.b-c.a)/2,e.g){case 1:r.d=-r.a;break;case 3:r.d=c.b}nu_(i),nuG(i)}function ne1(n,t,e){var i,r,c;switch(c=n.o,(r=(i=Im($6(n.p,e),244)).i).b=nid(i),r.a=niw(i),r.a=nTv.Math.max(r.a,c.b),r.a>c.b&&!t&&(r.a=c.b),r.d=-(r.a-c.b)/2,e.g){case 4:r.c=-r.b;break;case 2:r.c=c.a}nu_(i),nuG(i)}function ne0(n,t){var e,i,r,c;return e=qy(n,"x"),qh(new bm(t).a,null==e||PN(($x(e),e))||isNaN(($x(e),e))?0:($x(e),e)),i=qy(n,"y"),qf(new by(t).a,null==i||PN(($x(i),i))||isNaN(($x(i),i))?0:($x(i),i)),r=qy(n,nyT),qs(new bk(t).a,null==r||PN(($x(r),r))||isNaN(($x(r),r))?0:($x(r),r)),c=qy(n,nyE),qo(new bj(t).a,null==c||PN(($x(c),c))||isNaN(($x(c),c))?0:($x(c),c)),c}function ne2(n,t){nag(n,t),(1&n.b)!=0&&(n.a.a=null),(2&n.b)!=0&&(n.a.f=null),(4&n.b)!=0&&(n.a.g=null,n.a.i=null),(16&n.b)!=0&&(n.a.d=null,n.a.e=null),(8&n.b)!=0&&(n.a.b=null),(32&n.b)!=0&&(n.a.j=null,n.a.c=null)}function ne3(n,t){var e,i,r,c,a,u;for(e=n.b.c.length,r=CA(n.b,t);2*t+1<e&&(a=(c=2*t+1)+1,u=c,a<e&&0>n.a.ue(CA(n.b,a),CA(n.b,c))&&(u=a),i=u,!(0>n.a.ue(r,CA(n.b,i))));)KN(n.b,t,CA(n.b,i)),t=i;KN(n.b,t,r)}function ne4(n,t,e,i,r,c){var a,u,o,s;for(jf(n)===jf(e)&&(n=n.slice(t,t+r),t=0),u=t,o=t+r;u<o;)r=(a=nTv.Math.min(u+1e4,o))-u,(s=n.slice(u,a)).splice(0,0,i,c?r:0),Array.prototype.splice.apply(e,s),u=a,i+=r}function ne5(n,t,e){var i,r;return(i=e.d,r=e.e,n.g[i.d]<=n.i[t.d]&&n.i[t.d]<=n.i[i.d]&&n.g[r.d]<=n.i[t.d]&&n.i[t.d]<=n.i[r.d])?!(n.i[i.d]<n.i[r.d]):n.i[i.d]<n.i[r.d]}function ne6(n){var t,e,i,r,c,a,u;if((i=n.a.c.length)>0)for(a=n.c.d,r=To(S7(new kp((u=n.d.d).a,u.b),a),1/(i+1)),c=new kp(a.a,a.b),e=new h1(n.a);e.a<e.c.c.length;)(t=Im(De(e),559)).d.a=c.a,t.d.b=c.b,S9(c,r)}function ne8(n,t,e){var i,r,c,a,u,o,s,h,f,l;for(o=nlc,c=new h1(nct(n.b));c.a<c.c.c.length;)for(r=Im(De(c),168),u=new h1(nct(t.b));u.a<u.c.c.length;)a=Im(De(u),168),s=r.a,h=r.b,f=a.a,l=a.b,nc0(),i=nTv.Math.min(nss(s,h,f,l,e),nss(f,l,s,h,MX(new kp(e.a,e.b)))),o=nTv.Math.min(o,i);return o}function ne9(n,t){if(!t)throw(new wS).e;if(n.j=t,!n.d)switch(n.j.g){case 1:n.a.a=n.o.a/2,n.a.b=0;break;case 2:n.a.a=n.o.a,n.a.b=n.o.b/2;break;case 3:n.a.a=n.o.a/2,n.a.b=n.o.b;break;case 4:n.a.a=0,n.a.b=n.o.b/2}}function ne7(n,t){var e,i;if(t.dc())return LV(),LV(),nMv;for(IE(i=new wn,Va(nfp)),e=1;e<n.f;++e)null==n.a&&nad(n),n.a[e]&&IE(i,Va(e));return 1==i.c.length?(LV(),LV(),nMv):(IE(i,Va(nhM)),function(n,t){var e,i,r,c,a,u;for(r=new wn,c=0,e=0,a=0;c<t.c.length-1&&e<n.gc();){for(i=Im(n.Xb(e),19).a+a;(x4(c+1,t.c.length),Im(t.c[c+1],19)).a<i;)++c;for(u=0,i-(x4(c,t.c.length),Im(t.c[c],19)).a>(x4(c+1,t.c.length),Im(t.c[c+1],19)).a-i&&++u,IE(r,(x4(c+u,t.c.length),Im(t.c[c+u],19))),a+=(x4(c+u,t.c.length),Im(t.c[c+u],19)).a-i,++e;e<n.gc()&&Im(n.Xb(e),19).a+a<=(x4(c+u,t.c.length),Im(t.c[c+u],19)).a;)++e;c+=1+u}return r}(t,i))}function nin(n,t,e){var i,r;i=t.a&n.f,t.b=n.b[i],n.b[i]=t,r=t.f&n.f,t.d=n.c[r],n.c[r]=t,e?(t.e=e.e,t.e?t.e.c=t:n.a=t,t.c=e.c,t.c?t.c.e=t:n.e=t):(t.e=n.e,t.c=null,n.e?n.e.c=t:n.a=t,n.e=t),++n.i,++n.g}function nit(n){var t,e,i;if(t=n.Pb(),!n.Ob())return t;for(e=0,i=jS(jP(new gX,"expected one element but was: <"),t);e<4&&n.Ob();e++)jS((i.a+=nhC,i),n.Pb());throw n.Ob()&&(i.a+=", ..."),i.a+=">",new gd(i.a).e}function nie(n,t,e){var i,r;for(i=t.d,r=e.d;i.a-r.a==0&&i.b-r.b==0;)i.a+=nr_(n,26)*nlS+nr_(n,27)*nlP-.5,i.b+=nr_(n,26)*nlS+nr_(n,27)*nlP-.5,r.a+=nr_(n,26)*nlS+nr_(n,27)*nlP-.5,r.b+=nr_(n,26)*nlS+nr_(n,27)*nlP-.5}function nii(n){var t,e,i,r;for(n.g=new Qn(Im(A1(nCy),290)),i=0,nsR(),e=nW$,t=0;t<n.j.c.length;t++)(r=Im(CA(n.j,t),11)).j!=e&&(i!=t&&C2(n.g,e,new k_(Va(i),Va(t))),e=r.j,i=t);C2(n.g,e,new k_(Va(i),Va(t)))}function nir(n,t,e,i,r){var c,a,u,o;if(t)for(a=t.Kc();a.Ob();)for(o=nah(Im(a.Pb(),10),(qF(),n_X),e).Kc();o.Ob();)u=Im(o.Pb(),11),(c=Im(jh(Nj(r.f,u)),112))||(c=new z3(n.d),i.c[i.c.length]=c,function n(t,e,i){var r,c,a;for(i.zc(e,t),IE(t.n,e),a=t.p.eg(e),e.j==t.p.fg()?V3(t.e,a):V3(t.j,a),AH(t),c=AS(qO(Um(xg(nEJ,1),nhA,20,0,[new fK(e),new f_(e)])));nrc(c);)r=Im(K4(c),11),i._b(r)||n(t,r,i)}(c,u,r))}function nic(n,t){var e,i,r;if(r=noW((neS(),nJk),n.Tg(),t))mp(),Im(r,66).Oj()||(r=Dt(BC(nJk,r))),i=Im((e=n.Yg(r))>=0?n._g(e,!0,!0):niO(n,r,!0),153),Im(i,215).ol(t);else throw new gd(nyn+t.ne()+nyt).e}function nia(n){var t,e;return n>-140737488355328&&n<0x800000000000?0==n?0:((t=n<0)&&(n=-n),e=NU(nTv.Math.floor(nTv.Math.log(n)/.6931471805599453)),(!t||n!=nTv.Math.pow(2,e))&&++e,e):z8(zx(n))}function niu(n,t){var e,i,r,c;return z5(i=new Y$(n),t),UU(i,(nhu(),nxi),t),UU(i,(ns8(),nFE),(nn2(),nWv)),UU(i,nR9,(Yv(),nzB)),ntY(),c=nAU,i.k=c,xM(e=new nt9,i),ne9(e,(nsR(),nWJ)),xM(r=new nt9,i),ne9(r,nWA),i}function nio(n){switch(n.g){case 0:return new gh((qB(),nBg));case 1:return new sC;case 2:return new sD;default:throw new gd("No implementation is available for the crossing minimizer "+(null!=n.f?n.f:""+n.g)).e}}function nis(){nis=C,nWI=new kC("OUTSIDE",0),nWS=new kC("INSIDE",1),nWP=new kC("NEXT_TO_PORT_IF_POSSIBLE",2),nWM=new kC("ALWAYS_SAME_SIDE",3),nWT=new kC("ALWAYS_OTHER_SAME_SIDE",4),nWC=new kC("SPACE_EFFICIENT",5)}function nih(n,t){var e,i,r;for(r=nhM,i=new h1(VV(t));i.a<i.c.c.length;)(e=Im(De(i),213)).f&&!n.c[e.c]&&(n.c[e.c]=!0,r=nTv.Math.min(r,nih(n,V6(e,t))));return n.i[t.d]=n.j,n.g[t.d]=nTv.Math.min(r,n.j++),n.g[t.d]}function nif(n,t){var e,i,r;for(r=Im(Im(Fl(n.r,t),21),84).Kc();r.Ob();)(i=Im(r.Pb(),111)).e.b=(e=i.b).Xe((nha(),nU5))?e.Hf()==(nsR(),nW$)?-e.rf().b-gy(Ss(e.We(nU5))):gy(Ss(e.We(nU5))):e.Hf()==(nsR(),nW$)?-e.rf().b:0}function nil(n){var t,e;if(t=!1,Ti(n,204))return t=!0,Im(n,204).a;if(!t&&Ti(n,258)&&Im(n,258).a%1==0)return t=!0,Va(NU(($x(e=Im(n,258).a),e)));throw new gS("Id must be a string or an integer: '"+n+"'.").e}function nib(n,t,e){var i,r,c,a,u;if(qz(e,"occurrences"),0==e)return(u=Im(WK(LY(n.a),t),14))?u.gc():0;if(!(a=Im(WK(LY(n.a),t),14)))return 0;if(e>=(c=a.gc()))a.$b();else for(i=0,r=a.Kc();i<e;i++)r.Pb(),r.Qb();return c}function niw(n){var t,e,i,r,c,a,u;if(a=0,0==n.b){for(i=0,c=YG(n,!0),t=0,r=c.length;i<r;++i)(e=c[i])>0&&(a+=e,++t);t>1&&(a+=n.c*(t-1))}else a=(u=G2(Ld(Lb(AM(n.a),new nE),new nT))).a?u.b:0;return a>0?a+n.n.d+n.n.a:0}function nid(n){var t,e,i,r,c,a,u;if(a=0,0==n.b)a=(u=G2(Ld(Lb(AM(n.a),new nk),new nj))).a?u.b:0;else{for(i=0,c=Yz(n,!0),t=0,r=c.length;i<r;++i)(e=c[i])>0&&(a+=e,++t);t>1&&(a+=n.c*(t-1))}return a>0?a+n.n.b+n.n.c:0}function nig(n){var t,e;return e=new gX,e.a+="e_",null!=(t=0!=n.b.c.length&&Im(CA(n.b,0),70).a?Im(CA(n.b,0),70).a:LO(n))&&(e.a+=""+t),n.c&&n.d&&(jP((e.a+=" ",e),Zj(n.c)),jP(jS((e.a+="[",e),n.c.i),"]"),jP((e.a+=nw4,e),Zj(n.d)),jP(jS((e.a+="[",e),n.d.i),"]")),e.a}function nip(n){switch(n.g){case 0:return new sA;case 1:return new s$;case 2:return new sO;case 3:return new sL;default:throw new gd("No implementation is available for the layout phase "+(null!=n.f?n.f:""+n.g)).e}}function niv(n,t,e,i,r){var c;switch(c=0,r.g){case 1:c=nTv.Math.max(0,t.b+n.b-(e.b+i));break;case 3:c=nTv.Math.max(0,-n.b-i);break;case 2:c=nTv.Math.max(0,-n.a-i);break;case 4:c=nTv.Math.max(0,t.a+n.a-(e.a+i))}return c}function nim(n){var t,e;switch(n.b){case -1:return!0;case 0:if((e=n.t)>1||-1==e||(t=Z9(n))&&(mp(),t.Cj()==nk9))return n.b=-1,!0;return n.b=1,!1;default:return!1}}function niy(n,t){var e,i,r,c;if(nhe(n),0!=n.c||123!=n.a)throw new gO(nhd((E$(),nkl))).e;if(c=112==t,i=n.d,(e=MM(n.i,125,i))<0)throw new gO(nhd((E$(),nkb))).e;return r=MT(n.i,i,e),n.d=e+1,_C(r,c,(512&n.e)==512)}function nik(n,t,e,i,r){var c,a,u,o;return jf(o=Sn(n,Im(r,56)))!==jf(r)?(u=Im(n.g[e],72),Ts(n,e,nn6(n,e,c=RU(t,o))),Ea(n.e)&&(nnQ(a=NE(n,9,c.ak(),r,o,i,!1),new BE(n.e,9,n.c,u,c,i,!1)),Bk(a)),o):r}function nij(n,t){var e,i,r,c;try{return r=n.a,MD(!!(c=($x(r),r).g)),$x(t),c(t)}catch(r){if(Ti(r=Uu(r),32)){try{if(i=nue(t,nfp,nhM),e=pf(n.a),i>=0&&i<e.length)return e[i]}catch(n){if(!Ti(n=Uu(n),127))throw n.e}return null}throw r.e}}function niE(n,t){var e,i,r;if(r=noW((neS(),nJk),n.Tg(),t))return mp(),Im(r,66).Oj()||(r=Dt(BC(nJk,r))),i=Im((e=n.Yg(r))>=0?n._g(e,!0,!0):niO(n,r,!0),153),Im(i,215).ll(t);throw new gd(nyn+t.ne()+nyi).e}function niT(n,t){var e,i,r;if(r=0,(i=t[0])>=n.length)return -1;for(x5(i,n.length),e=n.charCodeAt(i);e>=48&&e<=57&&(r=10*r+(e-48),!(++i>=n.length));)x5(i,n.length),e=n.charCodeAt(i);return i>t[0]?t[0]=i:r=-1,r}function niM(n){var t,e,i;for(t=null,e=AS(qO(Um(xg(nEJ,1),nhA,20,0,[(n.b||(n.b=new Ph(nCA,n,4,7)),n.b),(n.c||(n.c=new Ph(nCA,n,5,8)),n.c)])));nrc(e);)if(i=ntr(Im(K4(e),82)),t){if(t!=i)return!1}else t=i;return!0}function niS(n,t,e){var i;if(++n.j,t>=n.i)throw new gu(ny2+t+ny3+n.i).e;if(e>=n.i)throw new gu(ny4+e+ny3+n.i).e;return i=n.g[e],t!=e&&(t<e?now(n.g,t,n.g,t+1,e-t):now(n.g,e+1,n.g,e,t-e),$t(n.g,t,i),n.ei(t,i,e),n.ci()),i}function niP(n,t,e){var i;if(i=Im(n.c.xc(t),14))return!!i.Fc(e)&&(++n.d,!0);if((i=n.ic(t)).Fc(e))return++n.d,n.c.zc(t,i),!0;throw new K_("New Collection violated the Collection spec").e}function niI(n){var t,e,i;return n<0?0:0==n?32:(e=16-(t=(i=-(n>>16))>>16&16),n>>=t,e+=t=(i=n-256)>>16&8,n<<=t,e+=t=(i=n-nlu)>>16&4,n<<=t,e+=t=(i=n-nhY)>>16&2,n<<=t,e+2-(t=(i=n>>14)&~(i>>1)))}function niC(n,t){var e,i,r,c,a,u,o,s;for(u=1,s=gy(Ss(ntP(t,(ns8(),nF0)))),o=n[0].n.a+n[0].o.a+n[0].d.c+s;u<n.length;u++)i=n[u].n,r=n[u].o,e=n[u].d,(c=i.a-e.b-o)<0&&(i.a-=c),(a=t.f).a=nTv.Math.max(a.a,i.a+r.a),o=i.a+r.a+e.c+s}function niO(n,t,e){var i,r,c;if(c=noW((neS(),nJk),n.Tg(),t))return mp(),Im(c,66).Oj()||(c=Dt(BC(nJk,c))),r=Im((i=n.Yg(c))>=0?n._g(i,!0,!0):niO(n,c,!0),153),Im(r,215).hl(t,e);throw new gd(nyn+t.ne()+nyi).e}function niA(n,t,e,i){var r,c,a,u,o;if(r=n.d[t]){if(c=r.g,o=r.i,null!=i){for(u=0;u<o;++u)if((a=Im(c[u],133)).Sh()==e&&WY(i,a.cd()))return a}else for(u=0;u<o;++u)if(jf((a=Im(c[u],133)).cd())===jf(i))return a}return null}function ni$(n,t){var e,i,r,c,a;if(t<0)throw new ga("Negative exponent").e;if(0==t)return nMs;if(1==t||Qf(n,nMs)||Qf(n,nMb))return n;if(!nre(n,0)){for(e=1;!nre(n,e);)++e;return B8((i=e*t)<nMl.length?nMl[i]:(c=i>>5,r=31&i,(a=_f(nYL,nfH,25,c+1,15,1))[c]=1<<r,new As(1,c+1,a)),ni$(K3(n,e),t))}return function(n,t){var e,i;for(niW(),nc4(),i=nMs,e=n;t>1;t>>=1)(1&t)!=0&&(i=B8(i,e)),e=1==e.d?B8(e,e):new JT(nuu(e.a,e.d,_f(nYL,nfH,25,e.d<<1,15,1)));return B8(i,e)}(n,t)}function niL(n){var t,e,i,r;for(v2(),this.b=nAM,this.c=(W2(),nXO),this.f=(v0(),nAj),this.a=n,r=new tg,this.e=r,ncl(this),i=new h1(n.b);i.a<i.c.c.length;)(e=Im(De(i),81)).d||(t=new JE(Um(xg(nP_,1),nhA,81,0,[e])),IE(n.a,t))}function niN(n){var t,e,i,r,c,a;for(j9(a=Dq(n.a),new ec),e=null,r=0,c=a.length;r<c&&(i=a[r]).k==(ntY(),nAU);++r)((t=Im(ntP(i,(nhu(),nxr)),61))==(nsR(),nWJ)||t==nWA)&&(e&&Im(ntP(e,nxb),15).Fc(i),e=i)}function nix(n){var t;if(n.c||null!=n.g){if(null==n.g)return!0;if(0==n.i)return!1;t=Im(n.g[n.i-1],47)}else n.d=n.si(n.f),_P(n,n.d),t=n.d;return t==n.b&&null.km>=null.jm()?(nrV(n),nix(n)):t.Ob()}function niD(n){if(this.a=n,n.c.i.k==(ntY(),nAU))this.c=n.c,this.d=Im(ntP(n.c.i,(nhu(),nxr)),61);else if(n.d.i.k==nAU)this.c=n.d,this.d=Im(ntP(n.d.i,(nhu(),nxr)),61);else throw new gd("Edge "+n+" is not an external edge.").e}function niR(n,t){var e,i,r;r=n.b,n.b=t,(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,3,r,n.b)),t?t!=n&&(GF(n,t.zb),qd(n,t.d),Gr(n,null==(e=null==(i=t.c)?t.zb:i)||Pv(e,t.zb)?null:e)):(GF(n,null),qd(n,0),Gr(n,null))}function niK(n){var t,e;if(!n.f)return n.n<n.o;for(;n.n<n.o;){if(Ti(e=(t=Im(n.j?n.j.pi(n.n):n.k.Xb(n.n),72)).ak(),99)&&(Im(e,18).Bb&nya)!=0&&(!n.e||e.Gj()!=nCP||0!=e.aj())&&null!=t.dd())return!0;++n.n}return!1}function niF(n,t){var e;this.e=($w(),A1(n),$w(),QE(n)),this.c=(A1(t),QE(t)),Tq(this.e.Hd().dc()==this.c.Hd().dc()),this.d=VX(this.e),this.b=VX(this.c),e=Cv(nEX,[nhJ,nhA],[5,1],5,[this.e.Hd().gc(),this.c.Hd().gc()],2),this.a=e,function(n){var t,e,i,r;for(e=n.a,i=0,r=e.length;i<r;++i)Ax(t=e[i],t.length,null)}(this)}function ni_(n){var t;return nTx||((t=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000B","\\f","\\r","\\u000E","\\u000F","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001A","\\u001B","\\u001C","\\u001D","\\u001E","\\u001F"])[34]='\\"',t[92]="\\\\",t[173]="\\u00ad",t[1536]="\\u0600",t[1537]="\\u0601",t[1538]="\\u0602",t[1539]="\\u0603",t[1757]="\\u06dd",t[1807]="\\u070f",t[6068]="\\u17b4",t[6069]="\\u17b5",t[8203]="\\u200b",t[8204]="\\u200c",t[8205]="\\u200d",t[8206]="\\u200e",t[8207]="\\u200f",t[8232]="\\u2028",t[8233]="\\u2029",t[8234]="\\u202a",t[8235]="\\u202b",t[8236]="\\u202c",t[8237]="\\u202d",t[8238]="\\u202e",t[8288]="\\u2060",t[8289]="\\u2061",t[8290]="\\u2062",t[8291]="\\u2063",t[8292]="\\u2064",t[8298]="\\u206a",t[8299]="\\u206b",t[8300]="\\u206c",t[8301]="\\u206d",t[8302]="\\u206e",t[8303]="\\u206f",t[65279]="\\ufeff",t[65529]="\\ufff9",t[65530]="\\ufffa",t[65531]="\\ufffb",nTx=t),'"'+n.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,function(n){var t;return null==(t=nTx[n.charCodeAt(0)])?n:t})+'"'}function niB(n){var t,e;for(LJ(),this.b=nSj,this.c=nST,this.g=(vY(),nSk),this.d=(W2(),nXO),this.a=n,ncf(this),e=new h1(n.b);e.a<e.c.c.length;)(t=Im(De(e),57)).a||T7(qC(new wQ,Um(xg(nSe,1),nhA,57,0,[t])),n),t.e=new Nf(t.d)}function niH(){niH=C,nJ$=Im(HX(L6((pv(),nJx).qb),6),34),nJC=Im(HX(L6(nJx.qb),3),34),nJO=Im(HX(L6(nJx.qb),4),34),nJA=Im(HX(L6(nJx.qb),5),18),nnK(nJ$),nnK(nJC),nnK(nJO),nnK(nJA),nJL=new gE(Um(xg(nQo,1),njs,170,0,[nJ$,nJC]))}function niq(n,t){var e;this.d=new dc,this.b=t,this.e=new Ee(t.qf()),e=n.u.Hc((nis(),nWP)),n.u.Hc(nWS)?n.D?this.a=e&&!t.If():this.a=!0:n.u.Hc(nWI)&&e?this.a=!(t.zf().Kc().Ob()||t.Bf().Kc().Ob()):this.a=!1}function niG(n,t){var e,i,r,c;for(e=n.o.a,c=Im(Im(Fl(n.r,t),21),84).Kc();c.Ob();)(r=Im(c.Pb(),111)).e.a=(i=r.b).Xe((nha(),nU5))?i.Hf()==(nsR(),nWJ)?-i.rf().a-gy(Ss(i.We(nU5))):e+gy(Ss(i.We(nU5))):i.Hf()==(nsR(),nWJ)?-i.rf().a:e}function niz(n,t){var e,i,r;e=Im(ntP(n,(ns8(),nKE)),103),r=Im(nrM(t,nFI),61),(i=Im(ntP(n,nFE),98))!=(nn2(),nWk)&&i!=nWj?r==(nsR(),nWQ)&&(r=nuD(t,e))==nWQ&&(r=Ql(e)):r=no$(t)>0?Ql(e):Vg(Ql(e)),Yu(t,nFI,r)}function niU(n,t){var e,i,r,c;n.ej()?(e=n.Vi(),c=n.fj(),++n.j,n.Hi(e,n.oi(e,t)),i=n.Zi(3,null,t,e,c),n.bj()&&(r=n.cj(t,null))?(r.Ei(i),r.Fi()):n.$i(i)):($y(n,t),n.bj()&&(r=n.cj(t,null))&&r.Fi())}function niX(n,t){var e,i,r,c,a;for(a=ncT(n.e.Tg(),t),r=new a7,e=Im(n.g,119),c=n.i;--c>=0;)i=e[c],a.rl(i.ak())&&_P(r,i);!nsW(n,r)&&Ea(n.e)&&wR(n,t.$j()?NE(n,6,t,(LV(),nMv),null,-1,!1):NE(n,t.Kj()?2:1,t,null,null,-1,!1))}function niW(){var n,t;for(t=0,niW=C,nMg=_f(nTl,nhJ,91,32,0,1),nMp=_f(nTl,nhJ,91,32,0,1),n=1;t<=18;t++)nMg[t]=JK(n),nMp[t]=JK(OR(n,t)),n=VF(n,5);for(;t<nMp.length;t++)nMg[t]=B8(nMg[t-1],nMg[1]),nMp[t]=B8(nMp[t-1],(nc4(),nMf))}function niV(n){var t,e,i,r,c,a;for(xK(),e=new R7,i=new h1(n.e.b);i.a<i.c.c.length;)for(c=new h1(Im(De(i),29).a);c.a<c.c.c.length;)r=Im(De(c),10),(t=Im(BX(e,a=n.g[r.p]),15))||JR(e,a,t=new wn),t.Fc(r);return e}function niQ(n){var t;return(64&n.Db)!=0?nrN(n):(t=new TW(nrN(n)),t.a+=" (startX: ",pA(t,n.j),t.a+=", startY: ",pA(t,n.k),t.a+=", endX: ",pA(t,n.b),t.a+=", endY: ",pA(t,n.c),t.a+=", identifier: ",jT(t,n.d),t.a+=")",t.a)}function niJ(n){var t,e,i;return(64&n.Db)!=0?Wq(n):(t=new TW(Wq(n)),t.a+=" (ordered: ",p$(t,(256&n.Bb)!=0),t.a+=", unique: ",p$(t,(512&n.Bb)!=0),t.a+=", lowerBound: ",e=n.s,t.a+=e,t.a+=", upperBound: ",i=n.t,t.a+=i,t.a+=")",t.a)}function niY(n,t,e,i,r,c,a,u){var o;return Ti(n.Cb,88)&&ne2(KJ(Im(n.Cb,88)),4),GF(n,e),n.f=i,Vj(n,r),VT(n,c),Vk(n,a),VE(n,!1),Vi(n,!0),VS(n,u),Vn(n,!0),qg(n,0),n.b=0,qp(n,1),(o=ntl(n,t,null))&&o.Fi(),VP(n,!1),n}function niZ(n,t,e){var i,r,c,a,u;for(i=0,u=e,t||(i=e*(n.c.length-1),u*=-1),c=new h1(n);c.a<c.c.c.length;){for(UU(r=Im(De(c),10),(ns8(),nR9),(Yv(),nzB)),r.o.a=i,a=nen(r,(nsR(),nWA)).Kc();a.Ob();)Im(a.Pb(),11).n.a=i;i+=u}}function ni1(n,t,e){var i,r,c;n.ej()?(c=n.fj(),WV(n,t,e),i=n.Zi(3,null,e,t,c),n.bj()?(r=n.cj(e,null),n.ij()&&(r=n.jj(e,r)),r?(r.Ei(i),r.Fi()):n.$i(i)):n.$i(i)):(WV(n,t,e),n.bj()&&(r=n.cj(e,null))&&r.Fi())}function ni0(n,t,e){var i,r,c;return(c=n.Gk(e))==e?e:(r=n.g[t],Ts(n,t,n.oi(t,c)),n.gi(t,c,r),n.rk()&&(i=n.dj(e,null),Im(c,49).eh()||(i=n.cj(c,i)),i&&i.Fi()),Ea(n.e)&&wR(n,n.Zi(9,e,c,t,!1)),c)}function ni2(n){var t,e,i,r,c;if(e=new PR(t=Im(pf(nCy),9),Im(Sz(t,t.length),9),0),c=Im(ntP(n,(nhu(),nxA)),10))for(r=new h1(c.j);r.a<r.c.c.length;)jf(ntP(i=Im(De(r),11),nxE))===jf(n)&&Mh(new Fm(i.b))&&Gv(e,i.j);return e}function ni3(n){var t;switch(t=0,n){case 105:t=2;break;case 109:t=8;break;case 115:t=4;break;case 120:t=16;break;case 117:t=32;break;case 119:t=64;break;case 70:t=256;break;case 72:t=128;break;case 88:t=512;break;case 44:t=nyp}return t}function ni4(n,t){0!=t.b&&(isNaN(n.s)?n.s=gy((MK(0!=t.b),Ss(t.a.a.c))):n.s=nTv.Math.min(n.s,gy((MK(0!=t.b),Ss(t.a.a.c)))),isNaN(n.c)?n.c=gy((MK(0!=t.b),Ss(t.c.b.c))):n.c=nTv.Math.max(n.c,gy((MK(0!=t.b),Ss(t.c.b.c)))))}function ni5(n){var t,e,i;for(t=null,e=AS(qO(Um(xg(nEJ,1),nhA,20,0,[(n.b||(n.b=new Ph(nCA,n,4,7)),n.b),(n.c||(n.c=new Ph(nCA,n,5,8)),n.c)])));nrc(e);)if(i=ntr(Im(K4(e),82)),t){if(t!=xt(i))return!0}else t=xt(i);return!1}function ni6(n,t){var e,i,r,c;n.ej()?(e=n.i,c=n.fj(),Fu(n,t),i=n.Zi(3,null,t,e,c),n.bj()?(r=n.cj(t,null),n.ij()&&(r=n.jj(t,r)),r?(r.Ei(i),r.Fi()):n.$i(i)):n.$i(i)):(Fu(n,t),n.bj()&&(r=n.cj(t,null))&&r.Fi())}function ni8(n,t,e){var i,r,c;n.ej()?(c=n.fj(),++n.j,n.Hi(t,n.oi(t,e)),i=n.Zi(3,null,e,t,c),n.bj()&&(r=n.cj(e,null))?(r.Ei(i),r.Fi()):n.$i(i)):(++n.j,n.Hi(t,n.oi(t,e)),n.bj()&&(r=n.cj(e,null))&&r.Fi())}function ni9(n){var t,e,i,r,c;return(c=n.eh())&&c.kh()&&(r=WO(n,c))!=c?(e=n.Vg(),i=(t=n.Vg())>=0?n.Qg(null):n.eh().ih(n,-1-t,null,null),n.Rg(Im(r,49),e),i&&i.Fi(),n.Lg()&&n.Mg()&&e>-1&&zD(n,new O9(n,9,e,c,r)),r):c}function ni7(n){var t,e,i,r,c,a,u;for(e=0,c=0,r=n.f.e;e<r.c.length;++e)for(x4(e,r.c.length),a=Im(r.c[e],144),i=e+1;i<r.c.length;++i)x4(i,r.c.length),u=Im(r.c[i],144),t=_k(a.d,u.d)-n.a[a.b][u.b],c+=n.i[a.b][u.b]*t*t;return c}function nrn(){ntT.call(this,nyg,(pw(),nVk)),this.p=null,this.a=null,this.f=null,this.n=null,this.g=null,this.c=null,this.i=null,this.j=null,this.d=null,this.b=null,this.e=null,this.k=null,this.o=null,this.s=null,this.q=!1,this.r=!1}function nrt(){nrt=C,nVU=new k4(ndD,0),nVq=new k4("INSIDE_SELF_LOOPS",1),nVG=new k4("MULTI_EDGES",2),nVH=new k4("EDGE_LABELS",3),nVz=new k4("PORTS",4),nV_=new k4("COMPOUND",5),nVF=new k4("CLUSTERS",6),nVB=new k4("DISCONNECTED",7)}function nre(n,t){var e,i,r;if(0==t)return(1&n.a[0])!=0;if(t<0)throw new ga("Negative bit address").e;if((r=t>>5)>=n.d)return n.e<0;if(e=n.a[r],t=1<<(31&t),n.e<0){if(r<(i=za(n)))return!1;e=i==r?-e:~e}return(e&t)!=0}function nri(n,t){var e,i,r,c,a,u,o;if(c=t.e){for(a=0,e=ni9(c),i=Im(n.g,674);a<n.i;++a)if(YB(o=i[a])==e&&(o.d||(o.d=new Tg(nQd,o,1)),r=o.d,(u=Im(e.ah(naz(c,c.Cb,c.Db>>16)),15).Xc(c))<r.i))return nri(n,Im(HX(r,u),87))}return t}function nrr(n,t,e){var i,r=nTy,c=r[n],a=c instanceof Array?c[0]:null;c&&!a?nTm=c:((i=t&&t.prototype)||(i=nTy[t]),(nTm=function(n){function t(){}return t.prototype=n||{},new t}(i)).hm=e,t||(nTm.im=I),r[n]=nTm);for(var u=3;u<arguments.length;++u)arguments[u].prototype=nTm;a&&(nTm.gm=a)}function nrc(n){for(var t;!Im(A1(n.a),47).Ob();){if(n.d=function(n){for(;!n.d||!n.d.Ob();){if(!n.b||gk(n.b))return null;n.d=Im(Al(n.b),47)}return n.d}(n),!n.d)return!1;if(n.a=Im(n.d.Pb(),47),Ti(n.a,39)){if(t=Im(n.a,39),n.a=t.a,n.b||(n.b=new b7),RC(n.b,n.d),t.b)for(;!gk(t.b);)RC(n.b,Im(function(n){var t;return MK(null!=(t=function(n){var t;return null==(t=n.a[n.c-1&n.a.length-1])?null:(n.c=n.c-1&n.a.length-1,$t(n.a,n.c,null),t)}(n))),t}(t.b),47));n.d=t.d}}return!0}function nra(n,t){var e,i,r,c,a;for(a=0,c=null==t?0:n.b.se(t),i=null==(e=n.a.get(c))?[]:e;a<i.length;a++)if(r=i[a],n.b.re(t,r.cd()))return 1==i.length?(i.length=0,function(n,t){n[nlM].call(n,t)}(n.a,c)):i.splice(a,1),--n.c,Ni(n.b),r.dd();return null}function nru(n){var t,e,i,r,c;if(c=nuf(n,r=new wn),t=Im(ntP(n,(nhu(),nxA)),10))for(i=new h1(t.j);i.a<i.c.c.length;)jf(ntP(e=Im(De(i),11),nxE))===jf(n)&&(c=nTv.Math.max(c,nuf(e,r)));return 0==r.c.length||UU(n,nxk,c),-1!=c?r:null}function nro(n,t,e){var i,r,c,a,u,o;r=(i=(c=Im(CA(t.e,0),17).c).i).k,u=(a=(o=Im(CA(e.g,0),17).d).i).k,r==(ntY(),nAW)?UU(n,(nhu(),nxv),Im(ntP(i,nxv),11)):UU(n,(nhu(),nxv),c),u==nAW?UU(n,(nhu(),nxm),Im(ntP(a,nxm),11)):UU(n,(nhu(),nxm),o)}function nrs(n,t){var e,i,r,c;for(e=(c=CZ(VF(nfr,$4(CZ(VF(null==t?0:Xg(t),nfc)),15))))&n.b.length-1,r=null,i=n.b[e];i;r=i,i=i.a)if(i.d==c&&$A(i.i,t))return r?r.a=i.a:n.b[e]=i.a,gH(i.c,i.f),ww(i.b,i.e),--n.f,++n.e,!0;return!1}function nrh(n,t){var e,i,r,c,a;return t&=63,(i=((e=n.h)&nf6)!=0)&&(e|=-1048576),t<22?(a=e>>t,c=n.m>>t|e<<22-t,r=n.l>>t|n.m<<22-t):t<44?(a=i?nf5:0,c=e>>t-22,r=n.m>>t-22|e<<44-t):(a=i?nf5:0,c=i?nf4:0,r=e>>t-44),Ez(r&nf4,c&nf4,a&nf5)}function nrf(n){var t,e,i,r,c,a;for(this.c=new wn,this.d=n,i=nlc,r=nlc,t=nla,e=nla,a=Jz(n,0);a.b!=a.d.c;)c=Im(RP(a),8),i=nTv.Math.min(i,c.a),r=nTv.Math.min(r,c.b),t=nTv.Math.max(t,c.a),e=nTv.Math.max(e,c.b);this.a=new Lj(i,r,t-i,e-r)}function nrl(n,t){var e,i,r,c;for(i=new h1(n.b);i.a<i.c.c.length;)for(c=new h1(Im(De(i),29).a);c.a<c.c.c.length;)for((r=Im(De(c),10)).k==(ntY(),nAX)&&nuS(r,t),e=new OM(TD(Vz(r).a.Kc(),new s));nrc(e);)Ul(Im(K4(e),17),t)}function nrb(n){var t,e,i;this.c=n,i=Im(ntP(n,(ns8(),nKE)),103),t=gy(Ss(ntP(n,nKn))),e=gy(Ss(ntP(n,nF5))),i==(W2(),nXI)||i==nXC||i==nXO?this.b=t*e:this.b=1/(t*e),this.j=gy(Ss(ntP(n,nFY))),this.e=gy(Ss(ntP(n,nFJ))),this.f=n.b.c.length}function nrw(){nrw=C,nHG=new ES(20),nHq=new EM((nha(),nUU),nHG),nHV=new EM(nXj,20),nHD=new EM(nUr,nwp),nHU=new EM(nXa,Va(1)),nHW=new EM(nXh,(TX(),!0)),nHR=nUf,nHF=nUR,nH_=nU_,nHB=nUH,nHK=nUx,nHH=nUz,nHz=nXn,z1(),nHQ=nHN,nHX=nH$}function nrd(){nrd=C,VZ(),nq2=new jU(nvF,nq3=nqV),nq1=new jU(nv_,(TX(),!0)),Va(-1),nqJ=new jU(nvB,Va(-1)),Va(-1),nqY=new jU(nvH,Va(-1)),nq0=new jU(nvq,!1),nq4=new jU(nvG,!0),nqZ=new jU(nvz,!1),nq5=new jU(nvU,-1)}function nrg(n,t,e){switch(t){case 7:n.e||(n.e=new Ph(nC$,n,7,4)),noK(n.e),n.e||(n.e=new Ph(nC$,n,7,4)),AJ(n.e,Im(e,14));return;case 8:n.d||(n.d=new Ph(nC$,n,8,5)),noK(n.d),n.d||(n.d=new Ph(nC$,n,8,5)),AJ(n.d,Im(e,14));return}nnI(n,t,e)}function nrp(n,t){var e,i,r,c,a;if(jf(t)===jf(n))return!0;if(!Ti(t,15)||(a=Im(t,15),n.gc()!=a.gc()))return!1;for(c=a.Kc(),i=n.Kc();i.Ob();)if(e=i.Pb(),r=c.Pb(),!(jf(e)===jf(r)||null!=e&&WY(e,r)))return!1;return!0}function nrv(n){switch(n.g){case 0:return new sH;case 1:return new sS;case 2:return new sM;case 3:return new k0;case 4:return new Oo;default:throw new gd("No implementation is available for the node placer "+(null!=n.f?n.f:""+n.g)).e}}function nrm(n){switch(n.g){case 0:return new Ou;case 1:return new sI;case 2:return new sv;case 3:return new sm;case 4:return new k3;default:throw new gd("No implementation is available for the cycle breaker "+(null!=n.f?n.f:""+n.g)).e}}function nry(){nry=C,nqp=new jU(nvE,Va(0)),nqv=new jU(nvT,0),XX(),nqb=new jU(nvM,nqw=nqo),Va(0),nql=new jU(nvS,Va(1)),zg(),nqm=new jU(nvP,nqy=nqG),_G(),nqk=new jU(nvI,nqj=nqa),Y6(),nqd=new jU(nvC,nqg=nqB)}function nrk(n){var t,e,i,r,c,a;if(r=Im(Kc((V$(a=xZ(n)),Lb(a,new fw(new w_))),_x(new B,new _,new ne,Um(xg(nMz,1),nfh,132,0,[(XW(),nM2)]))),15),i=nwt,r.gc()>=2)for(t=Ss((e=r.Kc()).Pb());e.Ob();)c=t,t=Ss(e.Pb()),i=nTv.Math.min(i,($x(t),t-($x(c),c)));return i}function nrj(n,t){var e;if(0!=n.c.length){if(2==n.c.length)nuS((x4(0,n.c.length),Im(n.c[0],10)),(ZR(),nX6)),nuS((x4(1,n.c.length),Im(n.c[1],10)),nX8);else for(e=new h1(n);e.a<e.c.c.length;)nuS(Im(De(e),10),t);n.c=_f(nEX,nhA,1,0,5,1)}}function nrE(n,t,e){var i,r,c,a,u;if((r=n.f)||(r=Im(n.a.a.ec().Kc().Pb(),57)),nne(r,t,e),1!=n.a.a.gc())for(i=t*e,a=n.a.a.ec().Kc();a.Ob();)(c=Im(a.Pb(),57))!=r&&((u=RM(c)).f.d?(c.d.d+=i+nbE,c.d.a-=i+nbE):u.f.a&&(c.d.a-=i+nbE))}function nrT(n,t,e,i,r){var c,a,u,o,s,h,f,l,b;return a=e-n,u=i-t,o=(c=nTv.Math.atan2(a,u))+nwn,s=c-nwn,h=r*nTv.Math.sin(o)+n,l=r*nTv.Math.cos(o)+t,f=r*nTv.Math.sin(s)+n,b=r*nTv.Math.cos(s)+t,Fs(Um(xg(nCa,1),nhJ,8,0,[new kp(h,l),new kp(f,b)]))}function nrM(n,t){var e,i;return(n.o||(n.o=new _D((nsZ(),nVA),nCq,n,0)),null!=(i=Q_(n.o,t)))?i:(Ti(e=t.wg(),4)&&(null==e?(n.o||(n.o=new _D((nsZ(),nVA),nCq,n,0)),Ja(n.o,t)):(n.o||(n.o=new _D((nsZ(),nVA),nCq,n,0)),nnb(n.o,t,e))),e)}function nrS(){nrS=C,nWe=new kS("H_LEFT",0),nWt=new kS("H_CENTER",1),nWr=new kS("H_RIGHT",2),nWs=new kS("V_TOP",3),nWo=new kS("V_CENTER",4),nWu=new kS("V_BOTTOM",5),nWc=new kS("INSIDE",6),nWa=new kS("OUTSIDE",7),nWi=new kS("H_PRIORITY",8)}function nrP(n,t){var e,i,r,c,a,u,o;return(a=(c=t.a).c.i==t.b?c.d:c.c,i=c.c.i==t.b?c.c:c.d,o=gy((u=n.a).p[a.i.p])+gy(u.d[a.i.p])+a.n.b+a.a.b,(r=gy(u.p[i.i.p])+gy(u.d[i.i.p])+i.n.b+i.a.b-o)>0&&r<nwt)?(e=function(n,t,e,i){var r,c,a,u,o,s,h;r=e,c=t;do c=n.a[c.p],h=n.g[c.p],u=gy(n.p[h.p])+gy(n.d[c.p])-c.d.d,(o=function(n,t){var e,i;return(e=n.c,(i=t.e[n.p])>0)?Im(CA(e.a,i-1),10):null}(c,i))&&(s=n.g[o.p],a=gy(n.p[s.p])+gy(n.d[o.p])+o.o.b+o.d.a,r=nTv.Math.min(r,u-(a+EY(n.k,c,o))));while(t!=c)return r}(n.a,i.i,r,n.c),HZ(n.a,i.i,-e),e>0):r<0&&-r<nwt&&(e=function(n,t,e,i){var r,c,a,u,o,s,h;r=e,c=t;do c=n.a[c.p],h=n.g[c.p],a=gy(n.p[h.p])+gy(n.d[c.p])+c.o.b+c.d.a,(o=function(n,t){var e,i;return(e=n.c,(i=t.e[n.p])<e.a.c.length-1)?Im(CA(e.a,i+1),10):null}(c,i))&&(s=n.g[o.p],u=gy(n.p[s.p])+gy(n.d[o.p])-o.d.d,r=nTv.Math.min(r,u-(a+EY(n.k,c,o))));while(t!=c)return r}(n.a,i.i,-r,n.c),HZ(n.a,i.i,e),e>0)}function nrI(n){var t,e,i,r,c,a,u;for(i=nlc,e=nla,t=new h1(n.e.b);t.a<t.c.c.length;)for(c=new h1(Im(De(t),29).a);c.a<c.c.c.length;)r=Im(De(c),10),a=(u=gy(n.p[r.p]))+gy(n.b[n.g[r.p].p]),i=nTv.Math.min(i,u),e=nTv.Math.max(e,a);return e-i}function nrC(n,t,e,i){var r,c,a,u,o,s;for(u=0,o=null,s=(r=naW(n,t)).gc();u<s;++u)if(Pv(i,Lc(BC(n,c=Im(r.Xb(u),170))))){if(a=La(BC(n,c)),null==e){if(null==a)return c;o||(o=c)}else{if(Pv(e,a))return c;null!=a||o||(o=c)}}return null}function nrO(n,t,e,i){var r,c,a,u,o,s;for(u=0,o=null,s=(r=naV(n,t)).gc();u<s;++u)if(Pv(i,Lc(BC(n,c=Im(r.Xb(u),170))))){if(a=La(BC(n,c)),null==e){if(null==a)return c;o||(o=c)}else{if(Pv(e,a))return c;null!=a||o||(o=c)}}return null}function nrA(n,t,e){var i,r,c,a,u,o,s,h,f,l;for(c=t.Kc();c.Ob();)h=(r=Im(c.Pb(),33)).i+r.g/2,l=r.j+r.f/2,a=(o=n.f).i+o.g/2,u=o.j+o.f/2,s=h-a,f=l-u,i=nTv.Math.sqrt(s*s+f*f),s*=n.e/i,f*=n.e/i,e?(h-=s,l-=f):(h+=s,l+=f),qh(r,h-r.g/2),qf(r,l-r.f/2)}function nr$(n){var t,e,i;if(!n.c&&null!=n.b){for(t=n.b.length-4;t>=0;t-=2)for(e=0;e<=t;e+=2)(n.b[e]>n.b[e+2]||n.b[e]===n.b[e+2]&&n.b[e+1]>n.b[e+3])&&(i=n.b[e+2],n.b[e+2]=n.b[e],n.b[e]=i,i=n.b[e+3],n.b[e+3]=n.b[e+1],n.b[e+1]=i);n.c=!0}}function nrL(n,t){var e,i,r,c,a,u;for(c=(1==t?nAT:nAE).a.ec().Kc();c.Ob();)for(r=Im(c.Pb(),103),u=Im(Fl(n.f.c,r),21).Kc();u.Ob();)switch(a=Im(u.Pb(),46),i=Im(a.b,81),e=Im(a.a,189).c,r.g){case 2:case 1:i.g.d+=e;break;case 4:case 3:i.g.c+=e}}function nrN(n){var t;return t=new TV(pb(n.gm)),t.a+="@",jP(t,(Xg(n)>>>0).toString(16)),n.kh()?(t.a+=" (eProxyURI: ",jS(t,n.qh()),n.$g()&&(t.a+=" eClass: ",jS(t,n.$g())),t.a+=")"):n.$g()&&(t.a+=" (eClass: ",jS(t,n.$g()),t.a+=")"),t.a}function nrx(n){var t,e,i;if(n.e)throw new gg((Su(nSi),nlZ+nSi.k+nl1)).e;for(n.d==(W2(),nXO)&&nsj(n,nXI),e=new h1(n.a.a);e.a<e.c.c.length;)(t=Im(De(e),307)).g=t.i;for(i=new h1(n.a.b);i.a<i.c.c.length;)Im(De(i),57).i=nla;return n.b.Le(n),n}function nrD(n,t,e,i){var r,c,a,u,o;if(null!=i){if(r=n.d[t]){for(u=0,c=r.g,o=r.i;u<o;++u)if((a=Im(c[u],133)).Sh()==e&&WY(i,a.cd()))return u}}else if(r=n.d[t]){for(u=0,c=r.g,o=r.i;u<o;++u)if(jf((a=Im(c[u],133)).cd())===jf(i))return u}return -1}function nrR(n,t){var e,i;return Ti(e=null==t?jh(Nj(n.f,null)):mT(n.g,t),235)?((i=Im(e,235)).Qh(),i):Ti(e,498)?((i=Im(e,1938).a)&&(null==i.yb||(null==t?neQ(n.f,null,i):VB(n.g,t,i))),i):null}function nrK(n,t,e){var i,r,c;for(i=1;i<n.c.length;i++){for(x4(i,n.c.length),c=Im(n.c[i],10),r=i;r>0&&t.ue((x4(r-1,n.c.length),Im(n.c[r-1],10)),c)>0;)KN(n,r,(x4(r-1,n.c.length),Im(n.c[r-1],10))),--r;x4(r,n.c.length),n.c[r]=c}e.a=new wt,e.b=new wt}function nrF(n,t,e){var i;if((n.c-n.b&n.a.length-1)==2)t==(nsR(),nW$)||t==nWA?(HL(Im(U3(n),15),(ZR(),nX6)),HL(Im(U3(n),15),nX8)):(HL(Im(U3(n),15),(ZR(),nX8)),HL(Im(U3(n),15),nX6));else for(i=new Ln(n);i.a!=i.b;)HL(Im(Wj(i),15),e)}function nr_(n,t){var e,i,r,c;return(r=n.a*nlI+1502*n.b,c=n.b*nlI+11,r+=e=nTv.Math.floor(c*nlC),c-=e*nlO,r%=nlO,n.a=r,n.b=c,t<=24)?nTv.Math.floor(n.a*nML[t]):((i=n.a*(1<<t-24)+nTv.Math.floor(n.b*nMN[t]))>=2147483648&&(i-=nld),i)}function nrB(n,t,e){var i,r,c,a;Du(n,t)>Du(n,e)?(i=V_(e,(nsR(),nWA)),n.d=i.dc()?0:Cs(Im(i.Xb(0),11)),a=V_(t,nWJ),n.b=a.dc()?0:Cs(Im(a.Xb(0),11))):(r=V_(e,(nsR(),nWJ)),n.d=r.dc()?0:Cs(Im(r.Xb(0),11)),c=V_(t,nWA),n.b=c.dc()?0:Cs(Im(c.Xb(0),11)))}function nrH(n){var t,e,i,r,c,a,u;if(n&&(t=n.Hh(njE))&&null!=(a=Sh(Q_((t.b||(t.b=new M2((nhl(),nQQ),nQE,t)),t.b),"conversionDelegates")))){for(u=new wn,i=naX(a,"\\w+"),r=0,c=i.length;r<c;++r)e=i[r],u.c[u.c.length]=e;return u}return LV(),LV(),nMv}function nrq(n,t){var e,i,r,c;for(e=n.o.a,c=Im(Im(Fl(n.r,t),21),84).Kc();c.Ob();)(r=Im(c.Pb(),111)).e.a=e*gy(Ss(r.b.We(nPy))),r.e.b=(i=r.b).Xe((nha(),nU5))?i.Hf()==(nsR(),nW$)?-i.rf().b-gy(Ss(i.We(nU5))):gy(Ss(i.We(nU5))):i.Hf()==(nsR(),nW$)?-i.rf().b:0}function nrG(){nrG=C,nq6=new EM((nha(),nUr),1.3),nGn=nUk,nGb=new ES(15),nGl=new EM(nUU,nGb),nGg=new EM(nXj,15),nq8=nUs,nGa=nUR,nGu=nU_,nGo=nUH,nGc=nUx,nGs=nUz,nGw=nXn,nrd(),nGf=nq2,nGr=nq1,nGh=nq0,nGd=nq4,nGt=nqZ,nGe=nUP,nGi=nUI,nq7=nqY,nq9=nqJ,nGp=nq5}function nrz(n,t,e){var i,r,c,a,u,o;for(Gc(r=new uc,($x(t),t)),r.b||(r.b=new M2((nhl(),nQQ),nQE,r)),u=r.b,a=1;a<e.length;a+=2)nnb(u,e[a-1],e[a]);for(n.Ab||(n.Ab=new An(nQa,n,0,3)),i=n.Ab,c=0;c<0;++c)(o=Im(HX(i,i.i-1),590)).a||(o.a=new Tg(nCS,o,4)),i=o.a;_P(i,r)}function nrU(n,t,e){var i,r,c,a,u;for(Sp.call(this,new wn),this.a=t,this.b=e,this.e=n,n.b&&nou(n),i=n.a,this.d=LP(i.a,this.a),this.c=LP(i.b,this.b),a=this.d,u=this.c,this.n=Cv(nYx,[nhJ,nlo],[364,25],14,[u,NU(nTv.Math.ceil(a/32))],2),this.o=a,this.p=u,this.j=a-1>>1,this.k=u-1>>1,function(n){var t,e,i,r,c,a,u;for(u=0,e=EI(n.e),c=To(Mz(E1(EP(n.e)),n.d*n.a,n.c*n.b),-.5),t=e.a-c.a,r=e.b-c.b;u<n.c;u++){for(a=0,i=t;a<n.d;a++)(function(n,t){var e,i;for(i=n.e.a.ec().Kc();i.Ob();)if(function(n,t){var e,i,r,c;if(nc0(),t.b<2)return!1;for(i=e=Im(RP(c=Jz(t,0)),8);c.b!=c.d.c;){if(nca(n,i,r=Im(RP(c),8)))return!0;i=r}return!!nca(n,i,e)}(t,(e=Im(i.Pb(),266)).d)||function(n,t){var e,i,r,c;if(nc0(),t.b<2)return!1;for(i=e=Im(RP(c=Jz(t,0)),8);c.b!=c.d.c;){if(r=Im(RP(c),8),!(zf(n,i)&&zf(n,r)))return!1;i=r}return!!(zf(n,i)&&zf(n,e))}(t,e.d))return!0;return!1})(n.e,new Lj(i,r,n.a,n.b))&&naI(n,a,u,!1,!0),i+=n.a;r+=n.b}}(this),c=this.e.e.a.ec().Kc();c.Ob();)(r=Im(c.Pb(),266)).c.c.length>0&&function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(s=t.c,r=EI(n.e),f=To(Mz(E1(EP(n.e)),n.d*n.a,n.c*n.b),-.5),e=r.a-f.a,i=r.b-f.b,e=(a=t.a).c-e,i=a.d-i,o=new h1(s);o.a<o.c.c.length;){switch(b=e+(l=(u=Im(De(o),395)).b).a,g=i+l.b,w=NU(b/n.a),p=NU(g/n.b),(c=u.a).g){case 0:Yr(),h=nPP;break;case 1:Yr(),h=nPS;break;case 2:Yr(),h=nPI;break;default:Yr(),h=nPC}c.a?(v=NU((g+u.c)/n.b),IE(n.f,new P2(h,Va(p),Va(v))),c==(Yc(),nC4)?UV(n,0,p,w,v):UV(n,w,p,n.d-1,v)):(d=NU((b+u.c)/n.a),IE(n.f,new P2(h,Va(w),Va(d))),c==(Yc(),nC2)?UV(n,w,0,d,p):UV(n,w,p,d,n.c-1))}}(this,r)}function nrX(n){switch(n.g){case 0:return new sj;case 1:return new sp;case 2:return new mi;case 3:return new rq;case 4:return new S0;case 5:return new sE;default:throw new gd("No implementation is available for the layerer "+(null!=n.f?n.f:""+n.g)).e}}function nrW(n,t,e){var i,r,c;for(c=new h1(n.t);c.a<c.c.c.length;)(i=Im(De(c),268)).b.s<0&&i.c>0&&(i.b.n-=i.c,i.b.n<=0&&i.b.u>0&&I2(t,i.b));for(r=new h1(n.i);r.a<r.c.c.length;)(i=Im(De(r),268)).a.s<0&&i.c>0&&(i.a.u-=i.c,i.a.u<=0&&i.a.n>0&&I2(e,i.a))}function nrV(n){var t,e,i;if(null==n.g&&(n.d=n.si(n.f),_P(n,n.d),n.c))return n.f;if(i=(t=Im(n.g[n.i-1],47)).Pb(),n.e=t,(e=n.si(i)).Ob())n.d=e,_P(n,e);else for(n.d=null;!t.Ob()&&($t(n.g,--n.i,null),0!=n.i);)t=Im(n.g[n.i-1],47);return i}function nrQ(n){var t,e,i,r,c,a;for(t=0,e=new h1(n.a);e.a<e.c.c.length;)for(r=new OM(TD(Vz(Im(De(e),10)).a.Kc(),new s));nrc(r);)n==(i=Im(K4(r),17)).d.i.c&&i.c.j==(nsR(),nWJ)&&(c=x9(i.c).b,a=x9(i.d).b,t=nTv.Math.max(t,nTv.Math.abs(a-c)));return t}function nrJ(n,t,e){switch(e.g){case 1:return new kp(t.a,nTv.Math.min(n.d.b,t.b));case 2:return new kp(nTv.Math.max(n.c.a,t.a),t.b);case 3:return new kp(t.a,nTv.Math.max(n.c.b,t.b));case 4:return new kp(nTv.Math.min(t.a,n.d.a),t.b)}return new kp(t.a,t.b)}function nrY(n){var t,e,i;for(IE(t=Mj(1+(n.c||(n.c=new An(nC_,n,9,9)),n.c).i),(n.d||(n.d=new Ph(nC$,n,8,5)),n.d)),i=new Td((n.c||(n.c=new An(nC_,n,9,9)),n.c));i.e!=i.i.gc();)IE(t,((e=Im(J1(i),118)).d||(e.d=new Ph(nC$,e,8,5)),e.d));return A1(t),new jG(t)}function nrZ(n){var t,e,i;for(IE(t=Mj(1+(n.c||(n.c=new An(nC_,n,9,9)),n.c).i),(n.e||(n.e=new Ph(nC$,n,7,4)),n.e)),i=new Td((n.c||(n.c=new An(nC_,n,9,9)),n.c));i.e!=i.i.gc();)IE(t,((e=Im(J1(i),118)).e||(e.e=new Ph(nC$,e,7,4)),e.e));return A1(t),new jG(t)}function nr1(n,t,e){var i,r,c,a,u,o,s;for(ntc(e,"ELK Force",1),gm(So(nrM(t,(nab(),nOR))))||Nq(new fy((mo(),new gl(t)))),(o=Im(ntP(u=a=UX(t),(nab(),nOq)),19))?0==(s=o.a)?UU(u,(GA(),nOZ),new VH):UU(u,(GA(),nOZ),new Ka(s)):UU(u,(GA(),nOZ),new Ka(1)),function(n,t){switch(t.g){case 0:Ti(n.b,631)||(n.b=new zQ);break;case 1:Ti(n.b,632)||(n.b=new IR)}}(n,Im(ntP(a,nOL),424)),r=(c=nuH(n.a,a)).Kc();r.Ob();)i=Im(r.Pb(),231),function(n,t,e){var i,r,c,a,u,o,s,h;for(ntc(e,nwo,1),n.bf(t),c=0;n.df(c);){for(h=new h1(t.e);h.a<h.c.c.length;)for(o=Im(De(h),144),u=AS(qO(Um(xg(nEJ,1),nhA,20,0,[t.e,t.d,t.b])));nrc(u);)(a=Im(K4(u),357))!=o&&(r=n.af(a,o))&&S9(o.a,r);for(s=new h1(t.e);s.a<s.c.c.length;)nea(i=(o=Im(De(s),144)).a,-n.d,-n.d,n.d,n.d),S9(o.d,i),jR(i);n.cf(),++c}nee(e)}(n.b,i,zt(e,1/c.gc()));nsK(a=nsq(c)),nee(e)}function nr0(n,t){var e,i,r,c;if(!t)return null;for(c=!(r=Ti(n.Cb,88)||Ti(n.Cb,99))&&Ti(n.Cb,322),e=new Td((t.a||(t.a=new CG(t,nQd,t)),t.a));e.e!=e.i.gc();)if(i=nuI(Im(J1(e),87)),r?Ti(i,88):c?Ti(i,148):!!i)return i;return r?(nhl(),nQG):(nhl(),nQB)}function nr2(n,t,e){var i,r,c;if(c=noW((neS(),nJk),n.Tg(),t)){if(mp(),!Im(c,66).Oj()&&!(c=Dt(BC(nJk,c))))throw new gd(nyn+t.ne()+nyt).e;r=Im((i=n.Yg(c))>=0?n._g(i,!0,!0):niO(n,c,!0),153),Im(r,215).ml(t,e)}else throw new gd(nyn+t.ne()+nyt).e}function nr3(n){var t,e,i,r;if(!n.j){if(r=new ul,null==(t=nQ2).a.zc(n,t)){for(i=new Td(Nw(n));i.e!=i.i.gc();)AJ(r,nr3(e=Im(J1(i),26))),_P(r,e);t.a.Bc(n)}X5(r),n.j=new jW((Im(HX(L6(($g(),nQO).o),11),18),r.i),r.g),KJ(n).b&=-33}return n.j}function nr4(n,t){var e,i,r,c,a;for(r=t.a&n.f,c=null,i=n.b[r];;i=i.b){if(i==t){c?c.b=t.b:n.b[r]=t.b;break}c=i}for(a=t.f&n.f,c=null,e=n.c[a];;e=e.d){if(e==t){c?c.d=t.d:n.c[a]=t.d;break}c=e}t.e?t.e.c=t.c:n.a=t.c,t.c?t.c.e=t.e:n.e=t.e,--n.i,++n.g}function nr5(n,t){var e,i,r,c;for(MK((c=new Rn(n,0)).b<c.d.gc()),e=Im(c.d.Xb(c.c=c.b++),140);c.b<c.d.gc();)MK(c.b<c.d.gc()),r=new IH((i=Im(c.d.Xb(c.c=c.b++),140)).c,e.d,t),MK(c.b>0),c.a.Xb(c.c=--c.b),SH(c,r),MK(c.b<c.d.gc()),c.d.Xb(c.c=c.b++),r.a=!1,e=i}function nr6(n){var t,e,i,r,c;for(i=Im(ntP(n,(nhu(),nN2)),11),c=new h1(n.j);c.a<c.c.c.length;){for(e=new h1((r=Im(De(c),11)).g);e.a<e.c.c.length;)return xj(Im(De(e),17),i),r;for(t=new h1(r.e);t.a<t.c.c.length;)return xE(Im(De(t),17),i),r}return null}function nr8(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=6&&t){if(Z2(n,t))throw new gd(nyh+niQ(n)).e;i=null,n.Cb&&(i=(e=n.Db>>16)>=0?ZV(n,i):n.Cb.ih(n,-1-e,null,i)),t&&(i=J8(t,n,6,i)),(i=SS(n,t,i))&&i.Fi()}else(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,6,t,t))}function nr9(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=9&&t){if(Z2(n,t))throw new gd(nyh+naO(n)).e;i=null,n.Cb&&(i=(e=n.Db>>16)>=0?ZJ(n,i):n.Cb.ih(n,-1-e,null,i)),t&&(i=J8(t,n,9,i)),(i=SP(n,t,i))&&i.Fi()}else(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,9,t,t))}function nr7(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=3&&t){if(Z2(n,t))throw new gd(nyh+nop(n)).e;i=null,n.Cb&&(i=(e=n.Db>>16)>=0?Z4(n,i):n.Cb.ih(n,-1-e,null,i)),t&&(i=J8(t,n,12,i)),(i=SM(n,t,i))&&i.Fi()}else(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,3,t,t))}function ncn(n){var t,e,i,r,c;if(i=Z9(n),null==(c=n.j)&&i)return n.$j()?null:i.zj();if(Ti(i,148)){if((e=i.Aj())&&(r=e.Nh())!=n.i){if((t=Im(i,148)).Ej())try{n.g=r.Kh(t,c)}catch(t){if(Ti(t=Uu(t),78))n.g=null;else throw t.e}n.i=r}return n.g}return null}function nct(n){var t;return IE(t=new wn,new mB(new kp(n.c,n.d),new kp(n.c+n.b,n.d))),IE(t,new mB(new kp(n.c,n.d),new kp(n.c,n.d+n.a))),IE(t,new mB(new kp(n.c+n.b,n.d+n.a),new kp(n.c+n.b,n.d))),IE(t,new mB(new kp(n.c+n.b,n.d+n.a),new kp(n.c,n.d+n.a))),t}function nce(n,t){var e,i,r,c,a,u;for(r=0,a=new h1(t.a);a.a<a.c.c.length;)for(r+=(c=Im(De(a),10)).o.b+c.d.a+c.d.d+n.e,i=new OM(TD(VG(c).a.Kc(),new s));nrc(i);)(e=Im(K4(i),17)).c.i.k==(ntY(),nAQ)&&(r+=(u=Im(ntP(e.c.i,(nhu(),nxE)),10)).o.b+u.d.a+u.d.d);return r}function nci(n,t,e){var i,r,c,a,u,o,s;for(c=new wn,function(n,t,e,i){var r,c,a,u,o,s,h;for(u=-1,h=new h1(n);h.a<h.c.c.length;)(s=Im(De(h),112)).g=u--,r=CZ(D9(Lg(Lb(new CL(null,new x6(s.f,16)),new cb),new cw)).d),c=CZ(D9(Lg(Lb(new CL(null,new x6(s.k,16)),new cd),new cg)).d),a=r,o=c,i||(a=CZ(D9(Lg(new CL(null,new x6(s.f,16)),new cp)).d),o=CZ(D9(Lg(new CL(null,new x6(s.k,16)),new cv)).d)),s.d=a,s.a=r,s.i=o,s.b=c,0==o?KL(e,s,e.c.b,e.c):0!=a||KL(t,s,t.c.b,t.c)}(n,s=new vK,a=new vK,t),function(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(m=Ik(n),o=new wn,s=(c=n.c.length)-1,h=c+1;0!=m.a.c;){for(;0!=e.b;)MK(0!=e.b),p=Im(HK(e,e.a.a),112),NW(m.a,p),p.g=s--,nuF(p,t,e,i);for(;0!=t.b;)MK(0!=t.b),v=Im(HK(t,t.a.a),112),NW(m.a,v),v.g=h++,nuF(v,t,e,i);for(u=nfp,d=new hU(new S5(new Mc(new hz(m.a).a).b));mE(d.a.a);){if(w=Im(MA(d.a).cd(),112),!i&&w.b>0&&w.a<=0){o.c=_f(nEX,nhA,1,0,5,1),o.c[o.c.length]=w;break}(b=w.i-w.d)>=u&&(b>u&&(o.c=_f(nEX,nhA,1,0,5,1),u=b),o.c[o.c.length]=w)}0!=o.c.length&&(a=Im(CA(o,Yk(r,o.c.length)),112),NW(m.a,a),a.g=h++,nuF(a,t,e,i),o.c=_f(nEX,nhA,1,0,5,1))}for(g=n.c.length+1,l=new h1(n);l.a<l.c.c.length;)(f=Im(De(l),112)).g<c&&(f.g=f.g+g)}(n,s,a,t,e),o=new h1(n);o.a<o.c.c.length;)for(r=new h1((u=Im(De(o),112)).k);r.a<r.c.c.length;)i=Im(De(r),129),(!t||i.c==(FO(),nB1))&&u.g>i.b.g&&(c.c[c.c.length]=i);return c}function ncr(){ncr=C,nGm=new ko("CANDIDATE_POSITION_LAST_PLACED_RIGHT",0),nGv=new ko("CANDIDATE_POSITION_LAST_PLACED_BELOW",1),nGk=new ko("CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT",2),nGy=new ko("CANDIDATE_POSITION_WHOLE_DRAWING_BELOW",3),nGj=new ko("WHOLE_DRAWING",4)}function ncc(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=11&&t){if(Z2(n,t))throw new gd(nyh+naC(n)).e;i=null,n.Cb&&(i=(e=n.Db>>16)>=0?Z5(n,i):n.Cb.ih(n,-1-e,null,i)),t&&(i=J8(t,n,10,i)),(i=S8(n,t,i))&&i.Fi()}else(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,11,t,t))}function nca(n,t,e){return nc0(),!(zf(n,t)&&zf(n,e))&&(nsk(new kp(n.c,n.d),new kp(n.c+n.b,n.d),t,e)||nsk(new kp(n.c+n.b,n.d),new kp(n.c+n.b,n.d+n.a),t,e)||nsk(new kp(n.c+n.b,n.d+n.a),new kp(n.c,n.d+n.a),t,e)||nsk(new kp(n.c,n.d+n.a),new kp(n.c,n.d),t,e))}function ncu(n,t){var e,i,r,c;if(!n.dc()){for(e=0,i=n.gc();e<i;++e)if(null==(c=Sh(n.Xb(e)))?null==t:Pv(c.substr(0,3),"!##")?null!=t&&(r=t.length,!Pv(c.substr(c.length-r,r),t)||c.length!=t.length+3)&&!Pv(njZ,t):Pv(c,nj1)&&!Pv(njZ,t)||Pv(c,t))return!0}return!1}function nco(){nco=C,n_D=new yK(nwY,0),n_A=new yK("NIKOLOV",1),n_N=new yK("NIKOLOV_PIXEL",2),n_$=new yK("NIKOLOV_IMPROVED",3),n_L=new yK("NIKOLOV_IMPROVED_PIXEL",4),n_O=new yK("DUMMYNODE_PERCENTAGE",5),n_x=new yK("NODECOUNT_PERCENTAGE",6),n_R=new yK("NO_BOUNDARY",7)}function ncs(n,t){var e,i,r,c,a,u;for(e=Im(ntP(t,(nhu(),nxt)),21),a=Im(Fl((ns5(),nAR),e),21),u=Im(Fl(nAH,e),21),c=a.Kc();c.Ob();)if(i=Im(c.Pb(),21),!Im(Fl(n.b,i),15).dc())return!1;for(r=u.Kc();r.Ob();)if(i=Im(r.Pb(),21),!Im(Fl(n.b,i),15).dc())return!1;return!0}function nch(n,t){var e,i,r,c,a,u,o;if(1==n.a.c.length)return net(Im(CA(n.a,0),187),t);for(r=function(n){var t,e,i;for(i=0,e=new h1(n.a);e.a<e.c.c.length;)t=Im(De(e),187),i=nTv.Math.max(i,t.g);return i}(n),a=0,u=n.d,i=r,o=n.d,c=(u-i)/2+i;i+1<u;){for(a=0,e=new h1(n.a);e.a<e.c.c.length;)a+=nob(Im(De(e),187),c,!1).a;a<t?(o=c,u=c):i=c,c=(u-i)/2+i}return o}function ncf(n){var t,e,i,r,c;for(e=new h1(n.a.a);e.a<e.c.c.length;){for((t=Im(De(e),307)).j=null,c=t.a.a.ec().Kc();c.Ob();)jR((i=Im(c.Pb(),57)).b),(!t.j||i.d.c<t.j.d.c)&&(t.j=i);for(r=t.a.a.ec().Kc();r.Ob();)(i=Im(r.Pb(),57)).b.a=i.d.c-t.j.d.c,i.b.b=i.d.d-t.j.d.d}return n}function ncl(n){var t,e,i,r,c;for(e=new h1(n.a.a);e.a<e.c.c.length;){for((t=Im(De(e),189)).f=null,c=t.a.a.ec().Kc();c.Ob();)jR((i=Im(c.Pb(),81)).e),(!t.f||i.g.c<t.f.g.c)&&(t.f=i);for(r=t.a.a.ec().Kc();r.Ob();)(i=Im(r.Pb(),81)).e.a=i.g.c-t.f.g.c,i.e.b=i.g.d-t.f.g.d}return n}function ncb(){return nhs(),Um(xg(nP0,1),nfh,77,0,[n$h,n$u,n$f,n$P,n$U,n$A,n$Y,n$D,n$G,n$j,n$_,n$x,n$z,n$v,n$1,n$t,n$F,n$W,n$I,n$X,n$2,n$H,n$e,n$q,n$3,n$Q,n$0,n$C,n$d,n$O,n$S,n$Z,n$c,n$b,n$L,n$r,n$N,n$T,n$m,n$R,n$k,n$o,n$a,n$M,n$y,n$K,n$J,n$i,n$B,n$E,n$$,n$g,n$w,n$V,n$l,n$p,n$s])}function ncw(n){var t;if(dz.call(this),this.i=new aa,this.g=n,this.f=Im(n.e&&n.e(),9).length,0==this.f)throw new gd("There must be at least one phase in the phase enumeration.").e;this.c=new PR(t=Im(pf(this.g),9),Im(Sz(t,t.length),9),0),this.a=new Rf,this.b=new wt}function ncd(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=7&&t){if(Z2(n,t))throw new gd(nyh+neh(n)).e;i=null,n.Cb&&(i=(e=n.Db>>16)>=0?ZQ(n,i):n.Cb.ih(n,-1-e,null,i)),t&&(i=Im(t,49).gh(n,1,nCC,i)),(i=Ow(n,t,i))&&i.Fi()}else(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,7,t,t))}function ncg(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=3&&t){if(Z2(n,t))throw new gd(nyh+W7(n)).e;i=null,n.Cb&&(i=(e=n.Db>>16)>=0?ZZ(n,i):n.Cb.ih(n,-1-e,null,i)),t&&(i=Im(t,49).gh(n,0,nCN,i)),(i=Od(n,t,i))&&i.Fi()}else(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,3,t,t))}function ncp(n,t){var e,i,r,c,a;if((null==n.i&&nuq(n),n.i).length,!n.p){for(a=new vN((3*n.g.i/2|0)+1),r=new Mm(n.g);r.e!=r.i.gc();)c=(i=Im(J0(r),170)).ne(),(e=Im(null==c?neQ(a.f,null,i):VB(a.g,c,i),170))&&(null==c?neQ(a.f,null,e):VB(a.g,c,e));n.p=a}return Im(Nz(n.p,t),170)}function ncv(n,t,e,i){var r,c,a,u;for(a=(u=t.e).length,c=t.q._f(u,e?0:a-1,e)|nap(n,u[e?0:a-1],e,i),r=e?1:a-2;e?r<a:r>=0;r+=e?1:-1)c|=t.c.Sf(u,r,e,i&&!gm(So(ntP(t.j,(nhu(),nxa))))&&!gm(So(ntP(t.j,(nhu(),nxR))))),c|=t.q._f(u,r,e),c|=nap(n,u[r],e,i);return Av(n.c,t),c}function ncm(n,t,e){var i,r,c,a,u,o,s,h;for(o=Ri(n.j),s=0,h=o.length;s<h;++s){if(u=o[s],e==(qF(),n_U)||e==n_W)for(c=0,a=(r=DH(u.g)).length;c<a;++c)(function(n,t){var e;return!gm(So(ntP(t,(nhu(),nxD))))&&(e=t.d.i,(n!=(VJ(),nxV)||e.k!=(ntY(),nAX))&&Im(ntP(e,(ns8(),nKY)),163)!=nxQ)})(t,i=r[c])&&nuQ(i,!0);if(e==n_X||e==n_W)for(c=0,a=(r=DH(u.e)).length;c<a;++c)(function(n,t){var e;return!gm(So(ntP(t,(nhu(),nxD))))&&(e=t.c.i,(n!=(VJ(),nxX)||e.k!=(ntY(),nAX))&&Im(ntP(e,(ns8(),nKY)),163)!=nxW)})(t,i=r[c])&&nuQ(i,!0)}}function ncy(n){var t,e,i,r,c,a;for(r=new h1(n.a.a);r.a<r.c.c.length;)(e=Im(De(r),189)).e=0,e.d.a.$b();for(i=new h1(n.a.a);i.a<i.c.c.length;)for(t=(e=Im(De(i),189)).a.a.ec().Kc();t.Ob();)for(a=Im(t.Pb(),81).f.Kc();a.Ob();)(c=Im(a.Pb(),81)).d!=e&&(Av(e.d,c),++c.d.e)}function nck(n){if(!n.a.d||!n.a.e)throw new gg((Su(nSo),nSo.k+" must have a source and target "+(Su(nSs),nSs.k)+" specified.")).e;if(n.a.d==n.a.e)throw new gg("Network simplex does not support self-loops: "+n.a+" "+n.a.d+" "+n.a.e).e;return Mu(n.a.d.g,n.a),Mu(n.a.e.b,n.a),n.a}function ncj(n,t,e){var i,r,c,a,u,o;if(i=0,0!=t.b&&0!=e.b){c=Jz(t,0),a=Jz(e,0),u=gy(Ss(RP(c))),o=gy(Ss(RP(a))),r=!0;do{if(u>o-n.b&&u<o+n.b)return -1;u>o-n.a&&u<o+n.a&&++i,u<=o&&c.b!=c.d.c?u=gy(Ss(RP(c))):o<=u&&a.b!=a.d.c?o=gy(Ss(RP(a))):r=!1}while(r)}return i}function ncE(n){var t,e;return t=new gU,(256&n)!=0&&(t.a+="F"),(128&n)!=0&&(t.a+="H"),(512&n)!=0&&(t.a+="X"),(2&n)!=0&&(t.a+="i"),(8&n)!=0&&(t.a+="m"),(4&n)!=0&&(t.a+="s"),(32&n)!=0&&(t.a+="u"),(64&n)!=0&&(t.a+="w"),(16&n)!=0&&(t.a+="x"),(n&nyp)!=0&&(t.a+=","),$x(e=t.a),e}function ncT(n,t){var e,i,r,c;return(mp(),t)?t==(noQ(),nJ3)||(t==nJF||t==nJR||t==nJK)&&n!=nJD?new nsO(n,t):((e=(i=Im(t,677)).pk())||(Lc(BC((neS(),nJk),t)),e=i.pk()),e.i||(e.i=new wt),(r=Im(jh(Nj((c=e.i).f,n)),1942))||$J(c,n,r=new nsO(n,t)),r):nJP}function ncM(){ncM=C,nBY=new cl,nBW=Cg(new Rf,(ntI(),nAp),(nhs(),n$I)),nBJ=Ob(Cg(new Rf,nAp,n$H),nAm,n$B),nBZ=Jd(Jd(mu(Ob(Cg(new Rf,nAd,n$Y),nAm,n$J),nAv),n$Q),n$Z),nBV=Ob(Cg(Cg(Cg(new Rf,nAg,n$A),nAv,n$L),nAv,n$N),nAm,n$$),nBQ=Ob(Cg(Cg(new Rf,nAv,n$N),nAv,n$b),nAm,n$l)}function ncS(){ncS=C,nB3=Cg(Ob(new Rf,(ntI(),nAm),(nhs(),n$g)),nAp,n$I),nB8=Jd(Jd(mu(Ob(Cg(new Rf,nAd,n$Y),nAm,n$J),nAv),n$Q),n$Z),nB4=Ob(Cg(Cg(Cg(new Rf,nAg,n$A),nAv,n$L),nAv,n$N),nAm,n$$),nB6=Cg(Cg(new Rf,nAp,n$H),nAm,n$B),nB5=Ob(Cg(Cg(new Rf,nAv,n$N),nAv,n$b),nAm,n$l)}function ncP(n,t,e){var i,r,c,a;for(this.b=new wn,r=0,i=0,a=new h1(n);a.a<a.c.c.length;)c=Im(De(a),167),e&&function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w;for(s=0,i=_f(nYL,nfH,25,a=n.o,15,1),r=_f(nYL,nfH,25,a,15,1),t=_f(nYL,nfH,25,e=n.p,15,1),c=_f(nYL,nfH,25,e,15,1);s<a;s++){for(f=0;f<e&&!YZ(n,s,f);)++f;i[s]=f}for(h=0;h<a;h++){for(f=e-1;f>=0&&!YZ(n,h,f);)--f;r[h]=f}for(b=0;b<e;b++){for(u=0;u<a&&!YZ(n,u,b);)++u;t[b]=u}for(w=0;w<e;w++){for(u=a-1;u>=0&&!YZ(n,u,w);)--u;c[w]=u}for(o=0;o<a;o++)for(l=0;l<e;l++)o<c[l]&&o>t[l]&&l<r[o]&&l>i[o]&&naI(n,o,l,!1,!0)}(c),IE(this.b,c),r+=c.o,i+=c.p;this.b.c.length>0&&(r+=(c=Im(CA(this.b,0),167)).o,i+=c.p),r*=2,i*=2,t>1?r=NU(nTv.Math.ceil(r*t)):i=NU(nTv.Math.ceil(i/t)),this.a=new QA(r,i)}function ncI(n,t,e,i,r,c){var a,u,o,s,h,f,l,b,w,d,g;for(s=i,t.j&&t.o?(w=(l=Im($a(n.f,t.A),57)).d.c+l.d.b,--s):w=t.a.c+t.a.b,h=r,e.q&&e.o?(o=(l=Im($a(n.f,e.C),57)).d.c,++h):o=e.a.c,d=o-w,b=w+(u=d/nTv.Math.max(2,h-s)),f=s;f<h;++f)g=(a=Im(c.Xb(f),128)).a.b,a.a.c=b-g/2,b+=u}function ncC(n,t,e,i,r,c){var a,u,o,s,h,f;for(s=e.c.length,c&&(n.c=_f(nYL,nfH,25,t.length,15,1)),a=r?0:t.length-1;r?a<t.length:a>=0;a+=r?1:-1){for(u=t[a],o=i==(nsR(),nWA)?r?V_(u,i):zI(V_(u,i)):r?zI(V_(u,i)):V_(u,i),c&&(n.c[u.p]=o.gc()),f=o.Kc();f.Ob();)h=Im(f.Pb(),11),n.d[h.p]=s++;Uf(e,o)}}function ncO(n,t,e){var i,r,c,a,u,o;for(i=gy(Ss(n.b.Kc().Pb())),u=gy(Ss(function(n){if(n){if(n.dc())throw(new wO).e;return n.Xb(n.gc()-1)}return x1(n.Kc())}(t.b))),o=S9(To(E1(n.a),u-e),To(E1(t.a),e-i)),To(o,1/(u-i)),this.a=o,this.b=new wn,c=!0,(r=n.b.Kc()).Pb();r.Ob();)a=gy(Ss(r.Pb())),c&&a-e>np9&&(this.b.Fc(e),c=!1),this.b.Fc(a);c&&this.b.Fc(e)}function ncA(n,t){var e,i,r;if(UM(),e=KW(qK(),t.tg())){if(i=e.j,Ti(n,239))return((r=Im(n,33)).a||(r.a=new An(nCF,r,10,11)),r.a.i>0)?T8(i,(JH(),nzT))||T8(i,nzM):T8(i,(JH(),nzT));if(Ti(n,352))return T8(i,(JH(),nzj));if(Ti(n,186))return T8(i,(JH(),nzS));if(Ti(n,354))return T8(i,(JH(),nzE))}return!0}function nc$(n,t){if(t instanceof Object)try{if(t.__java$exception=n,-1!=navigator.userAgent.toLowerCase().indexOf("msie")&&$doc.documentMode<9)return;Object.defineProperties(t,{cause:{get:function(){var t=n.Zd();return t&&t.Xd()}},suppressed:{get:function(){return n.Yd()}}})}catch(n){}}function ncL(n,t){var e,i,r,c,a;if(i=t>>5,t&=31,i>=n.d)return n.e<0?(nc4(),nMo):(nc4(),nMb);if(function(n,t,e,i,r){var c,a,u;for(a=0,c=!0;a<i;a++)c&=0==e[a];if(0==r)now(e,i,n,0,t),a=t;else{for(u=32-r,c&=e[a]<<u==0,a=0;a<t-1;a++)n[a]=e[a+i]>>>r|e[a+i+1]<<u;n[a]=e[a+i]>>>r,++a}}(r=_f(nYL,nfH,25,(c=n.d-i)+1,15,1),c,n.a,i,t),n.e<0){for(e=0;e<i&&0==n.a[e];e++);if(e<i||t>0&&n.a[e]<<32-t!=0){for(e=0;e<c&&-1==r[e];e++)r[e]=0;e==c&&++c,++r[e]}}return DF(a=new As(n.e,c,r)),a}function ncN(n){var t,e,i,r;return e=new fI(r=N8(n)),i=new fC(r),Uf(t=new wn,(n.d||(n.d=new Ph(nC$,n,8,5)),n.d)),Uf(t,(n.e||(n.e=new Ph(nC$,n,7,4)),n.e)),Im(Kc(Lw(Lb(new CL(null,new x6(t,16)),e),i),BT(new V,new Q,new ni,new nr,Um(xg(nMz,1),nfh,132,0,[(XW(),nM3),nM2]))),21)}function ncx(n,t,e,i){var r,c,a,u,o;if(mp(),u=Im(t,66).Oj(),ncD(n.e,t)){if(t.hi()&&nuz(n,t,i,Ti(t,99)&&(Im(t,18).Bb&nls)!=0))throw new gd(ny0).e}else for(a=0,o=ncT(n.e.Tg(),t),r=Im(n.g,119);a<n.i;++a)if(c=r[a],o.rl(c.ak()))throw new gd(nj2).e;Vf(n,neE(n,t,e),u?Im(i,72):RU(t,i))}function ncD(n,t){var e,i,r;return mp(),!!t.$j()||-2==t.Zj()&&(t==(niH(),nJ$)||t==nJC||t==nJO||t==nJA||!(Qj(r=n.Tg(),t)>=0)&&(!(e=noW((neS(),nJk),r,t))||((i=e.Zj())>1||-1==i)&&3!=$B(BC(nJk,e))))}function ncR(n,t,e){var i,r,c,a,u,o,s;if(o=n.length,(c=n[e?o-1:0])[0].k==(ntY(),nAU))for(s=c.length,r=e?0:s-1,u=t.j,i=0;i<u.c.length;i++)x4(i,u.c.length),a=Im(u.c[i],11),(e?a.j==(nsR(),nWA):a.j==(nsR(),nWJ))&&gm(So(ntP(a,(nhu(),nxh))))&&(KN(u,i,Im(ntP(c[r],(nhu(),nxE)),11)),r+=e?1:-1)}function ncK(n){if(null==n.g)switch(n.p){case 0:n.g=!function(n){if(0!=n.p)throw(new wM).e;return jv(n.f,0)}(n)?(TX(),nTV):(TX(),nTQ);break;case 1:n.g=B4(function(n){if(1!=n.p)throw(new wM).e;return CZ(n.f)<<24>>24}(n));break;case 2:n.g=Ua(function(n){if(2!=n.p)throw(new wM).e;return CZ(n.f)&nfI}(n));break;case 3:n.g=function(n){if(3!=n.p)throw(new wM).e;return n.e}(n);break;case 4:n.g=new h_(function(n){if(4!=n.p)throw(new wM).e;return n.e}(n));break;case 6:n.g=Jy(function(n){if(6!=n.p)throw(new wM).e;return n.f}(n));break;case 5:n.g=Va(function(n){if(5!=n.p)throw(new wM).e;return CZ(n.f)}(n));break;case 7:n.g=Vu(function(n){if(7!=n.p)throw(new wM).e;return CZ(n.f)<<16>>16}(n))}return n.g}function ncF(n){if(null==n.n)switch(n.p){case 0:n.n=!function(n){if(0!=n.p)throw(new wM).e;return jv(n.k,0)}(n)?(TX(),nTV):(TX(),nTQ);break;case 1:n.n=B4(function(n){if(1!=n.p)throw(new wM).e;return CZ(n.k)<<24>>24}(n));break;case 2:n.n=Ua(function(n){if(2!=n.p)throw(new wM).e;return CZ(n.k)&nfI}(n));break;case 3:n.n=function(n){if(3!=n.p)throw(new wM).e;return n.j}(n);break;case 4:n.n=new h_(function(n){if(4!=n.p)throw(new wM).e;return n.j}(n));break;case 6:n.n=Jy(function(n){if(6!=n.p)throw(new wM).e;return n.k}(n));break;case 5:n.n=Va(function(n){if(5!=n.p)throw(new wM).e;return CZ(n.k)}(n));break;case 7:n.n=Vu(function(n){if(7!=n.p)throw(new wM).e;return CZ(n.k)<<16>>16}(n))}return n.n}function nc_(n){var t,e,i,r,c,a;for(r=new h1(n.a.a);r.a<r.c.c.length;)(e=Im(De(r),307)).g=0,e.i=0,e.e.a.$b();for(i=new h1(n.a.a);i.a<i.c.c.length;)for(t=(e=Im(De(i),307)).a.a.ec().Kc();t.Ob();)for(a=Im(t.Pb(),57).c.Kc();a.Ob();)(c=Im(a.Pb(),57)).a!=e&&(Av(e.e,c),++c.a.g,++c.a.i)}function ncB(n,t){var e,i,r,c,a,u,o;i=t?new rA:new r$,r=!1;do for(r=!1,c=(t?zI(n.b):n.b).Kc();c.Ob();)for(o=Da(Im(c.Pb(),29).a),t||new d5(o),u=new h1(o);u.a<u.c.c.length;)a=Im(De(u),10),i.Mb(a)&&(e=Im(ntP(a,(nhu(),nN0)),305),r=nao(a,t?e.b:e.k,t,!1));while(r)}function ncH(n,t){var e,i,r,c,a,u,o,s;return c=n.d,(u=gy(Ss(ntP(n,(ns8(),nKR)))))<0&&UU(n,nKR,u=0),t.o.b=u,a=nTv.Math.floor(u/2),ne9(i=new nt9,(nsR(),nWJ)),xM(i,t),i.n.b=a,ne9(r=new nt9,nWA),xM(r,t),r.n.b=a,xj(n,i),z5(e=new Ns,n),UU(e,nKV,null),xE(e,r),xj(e,c),o=n.c.i,s=e.d.i,o.k==(ntY(),nAW)?(UU(t,(nhu(),nxv),Im(ntP(o,nxv),11)),UU(t,nxm,Im(ntP(o,nxm),11)),UU(t,nxp,So(ntP(o,nxp)))):o.k==nAX?(UU(t,(nhu(),nxv),Im(ntP(o,nxv),11)),UU(t,nxm,Im(ntP(o,nxm),11)),UU(t,nxp,(TX(),!0))):s.k==nAX?(UU(t,(nhu(),nxv),Im(ntP(s,nxv),11)),UU(t,nxm,Im(ntP(s,nxm),11)),UU(t,nxp,(TX(),!0))):(UU(t,(nhu(),nxv),n.c),UU(t,nxm,e.d)),function(n,t){var e,i;for(i=new Rn(n.b,0);i.b<i.d.gc();)MK(i.b<i.d.gc()),e=Im(i.d.Xb(i.c=i.b++),70),Im(ntP(e,(ns8(),nKI)),272)==(HH(),nXN)&&($I(i),IE(t.b,e),MH(e,(nhu(),nxn))||UU(e,nxn,n))}(n,e),e}function ncq(n,t,e){var i,r,c,a;r=n.i,i=n.n,K7(n,(HB(),nSW),r.c+i.b,e),K7(n,nSQ,r.c+r.b-i.c-e[2],e),a=r.b-i.b-i.c,e[0]>0&&(e[0]+=n.d,a-=e[0]),e[2]>0&&(e[2]+=n.d,a-=e[2]),c=nTv.Math.max(0,a),e[1]=nTv.Math.max(e[1],a),K7(n,nSV,r.c+i.b+e[0]-(e[1]-a)/2,e),t==nSV&&(n.c.b=c,n.c.c=r.c+i.b+(c-a)/2)}function ncG(){this.c=_f(nYR,nlf,25,(nsR(),Um(xg(nCy,1),nwZ,61,0,[nWQ,nW$,nWA,nWV,nWJ])).length,15,1),this.b=_f(nYR,nlf,25,Um(xg(nCy,1),nwZ,61,0,[nWQ,nW$,nWA,nWV,nWJ]).length,15,1),this.a=_f(nYR,nlf,25,Um(xg(nCy,1),nwZ,61,0,[nWQ,nW$,nWA,nWV,nWJ]).length,15,1),mO(this.c,nlc),mO(this.b,nla),mO(this.a,nla)}function ncz(n,t,e){var i,r,c,a;if(t<=e?(r=t,c=e):(r=e,c=t),i=0,null==n.b)n.b=_f(nYL,nfH,25,2,15,1),n.b[0]=r,n.b[1]=c,n.c=!0;else{if(i=n.b.length,n.b[i-1]+1==r){n.b[i-1]=c;return}a=_f(nYL,nfH,25,i+2,15,1),now(n.b,0,a,0,i),n.b=a,n.b[i-1]>=r&&(n.c=!1,n.a=!1),n.b[i++]=r,n.b[i]=c,n.c||nr$(n)}}function ncU(n,t,e,i,r){var c,a,u;if(n.d&&n.d.lg(r),Yx(n,e,Im(r.Xb(0),33),!1)||Yx(n,i,Im(r.Xb(r.gc()-1),33),!0)||ntF(n,r))return!0;for(u=r.Kc();u.Ob();)for(a=Im(u.Pb(),33),c=t.Kc();c.Ob();)if(nan(n,a,Im(c.Pb(),33)))return!0;return!1}function ncX(n,t,e){var i,r;if(0==(n.a||(n.a=new An(nCL,n,6,6)),n.a).i)return UA(n);if(i=Im(HX((n.a||(n.a=new An(nCL,n,6,6)),n.a),0),202),t&&(noK((i.a||(i.a=new Tg(nCI,i,5)),i.a)),ql(i,0),qw(i,0),qu(i,0),qb(i,0)),e)for(n.a||(n.a=new An(nCL,n,6,6)),r=n.a;r.i>1;)ncQ(r,r.i-1);return i}function ncW(n,t){var e,i,r,c,a,u,o;for(e=new b7,c=new h1(n.b);c.a<c.c.c.length;){for(r=Im(De(c),29),o=!0,i=0,u=new h1(r.a);u.a<u.c.c.length;)switch((a=Im(De(u),10)).k.g){case 4:++i;case 1:RI(e,a);break;case 0:!function(n,t){var e,i,r,c,a;for(i=new x8(n.j.c.length),e=null,c=new h1(n.j);c.a<c.c.c.length;)(r=Im(De(c),11)).j!=e&&(i.b==i.c||nrF(i,e,t),RZ(i),e=r.j),(a=nru(r))&&RI(i,a);i.b==i.c||nrF(i,e,t)}(a,t);default:e.b==e.c||nur(e,i,o,!1,t),o=!1,i=0}e.b==e.c||nur(e,i,o,!0,t)}}function ncV(n,t){var e,i,r,c,a,u,o;for(e=0,u=new h1(t);u.a<u.c.c.length;){for(a=Im(De(u),11),X0(n.b,n.d[a.p]),r=new Fm(a.b);EB(r.a)||EB(r.b);)o=a==(i=Im(EB(r.a)?De(r.a):De(r.b),17)).c?i.d:i.c,(c=n.d[o.p])>n.d[a.p]&&(e+=KC(n.b,c),RC(n.a,Va(c)));for(;!gk(n.a);)B3(n.b,Im(Al(n.a),19).a)}return e}function ncQ(n,t){var e,i,r,c;return n.ej()?(i=null,r=n.fj(),n.ij()&&(i=n.kj(n.pi(t),null)),e=n.Zi(4,c=ZI(n,t),null,t,r),n.bj()&&null!=c?(i=n.dj(c,i))?(i.Ei(e),i.Fi()):n.$i(e):i?(i.Ei(e),i.Fi()):n.$i(e)):(c=ZI(n,t),n.bj()&&null!=c&&(i=n.dj(c,null))&&i.Fi()),c}function ncJ(){ncJ=C,nN$=new yC("COMMENTS",0),nNN=new yC("EXTERNAL_PORTS",1),nNx=new yC("HYPEREDGES",2),nND=new yC("HYPERNODES",3),nNR=new yC("NON_FREE_PORTS",4),nNK=new yC("NORTH_SOUTH_PORTS",5),nN_=new yC(ndD,6),nNA=new yC("CENTER_LABELS",7),nNL=new yC("END_LABELS",8),nNF=new yC("PARTITIONS",9)}function ncY(n){var t,e,i,r,c;for(r=new wn,t=new CI((n.a||(n.a=new An(nCF,n,10,11)),n.a)),i=new OM(TD(nrZ(n).a.Kc(),new s));nrc(i);)!Ti(HX(((e=Im(K4(i),79)).b||(e.b=new Ph(nCA,e,4,7)),e.b),0),186)&&(c=ntr(Im(HX((e.c||(e.c=new Ph(nCA,e,5,8)),e.c),0),82)),t.a._b(c)||(r.c[r.c.length]=c));return r}function ncZ(n,t){var e,i,r;xt(n)&&(r=Im(ntP(t,(ns8(),nFu)),174),jf(nrM(n,nFE))===jf((nn2(),nWj))&&Yu(n,nFE,nWk),mo(),i=nsM(new gl(xt(n)),new Mw(xt(n)?new gl(xt(n)):null,n),!1,!0),Gv(r,(QJ(),nW4)),(e=Im(ntP(t,nFs),8)).a=nTv.Math.max(i.a,e.a),e.b=nTv.Math.max(i.b,e.b))}function nc1(){nc1=C,nLA=new LT(nbA,0,(nsR(),nW$),nW$),nLN=new LT(nbL,1,nWV,nWV),nLO=new LT(nb$,2,nWA,nWA),nLR=new LT(nbN,3,nWJ,nWJ),nLL=new LT("NORTH_WEST_CORNER",4,nWJ,nW$),nL$=new LT("NORTH_EAST_CORNER",5,nW$,nWA),nLD=new LT("SOUTH_WEST_CORNER",6,nWV,nWJ),nLx=new LT("SOUTH_EAST_CORNER",7,nWA,nWV)}function nc0(){nc0=C,nzK=Um(xg(nYx,1),nlo,25,14,[1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368e3,{l:3506176,m:794077,h:1},{l:884736,m:916411,h:20},{l:3342336,m:3912489,h:363},{l:589824,m:3034138,h:6914},{l:3407872,m:1962506,h:138294}]),nTv.Math.pow(2,-65)}function nc2(n,t){var e,i,r,c,a;if(0==n.c.length)return new k_(Va(0),Va(0));for(e=(x4(0,n.c.length),Im(n.c[0],11)).j,a=0,c=t.g,i=t.g+1;a<n.c.length-1&&e.g<c;)e=(x4(++a,n.c.length),Im(n.c[a],11)).j;for(r=a;r<n.c.length-1&&e.g<i;)++r,e=(x4(a,n.c.length),Im(n.c[a],11)).j;return new k_(Va(a),Va(r))}function nc3(n,t){var e;switch(e=null,t.g){case 1:n.e.Xe((nha(),nU0))&&(e=Im(n.e.We(nU0),249));break;case 3:n.e.Xe((nha(),nU2))&&(e=Im(n.e.We(nU2),249));break;case 2:n.e.Xe((nha(),nU1))&&(e=Im(n.e.We(nU1),249));break;case 4:n.e.Xe((nha(),nU3))&&(e=Im(n.e.We(nU3),249))}return e||(e=Im(n.e.We((nha(),nUY)),249)),e}function nc4(){var n;for(n=0,nc4=C,nMs=new F_(1,1),nMf=new F_(1,10),nMb=new F_(0,0),nMo=new F_(-1,1),nMh=Um(xg(nTl,1),nhJ,91,0,[nMb,nMs,new F_(1,2),new F_(1,3),new F_(1,4),new F_(1,5),new F_(1,6),new F_(1,7),new F_(1,8),new F_(1,9),nMf]),nMl=_f(nTl,nhJ,91,32,0,1);n<nMl.length;n++)nMl[n]=JK(OR(1,n))}function nc5(n,t,e,i){var r,c,a,u,o;for(r=(i.c+i.a)/2,Lq(t.j),I2(t.j,r),Lq(e.e),I2(e.e,r),o=new ph,a=new h1(n.f);a.a<a.c.c.length;)nnE(o,t,u=Im(De(a),129).a),nnE(o,e,u);for(c=new h1(n.k);c.a<c.c.c.length;)nnE(o,t,u=Im(De(c),129).b),nnE(o,e,u);return o.b+=2,o.a+=LZ(t,n.q),o.a+=LZ(n.q,e),o}function nc6(n){var t,e,i,r,c,a,u;for(e=n.i,t=n.n,u=e.d,n.f==(B$(),nS3)?u+=(e.a-n.e.b)/2:n.f==nS2&&(u+=e.a-n.e.b),r=new h1(n.d);r.a<r.c.c.length;){switch(a=(i=Im(De(r),181)).rf(),(c=new ps).b=u,u+=a.b+n.a,n.b.g){case 0:c.a=e.c+t.b;break;case 1:c.a=e.c+t.b+(e.b-a.a)/2;break;case 2:c.a=e.c+e.b-t.c-a.a}i.tf(c)}}function nc8(n){var t,e,i,r,c,a,u;for(e=n.i,t=n.n,u=e.c,n.b==(_1(),nSY)?u+=(e.b-n.e.a)/2:n.b==nS1&&(u+=e.b-n.e.a),r=new h1(n.d);r.a<r.c.c.length;){switch(a=(i=Im(De(r),181)).rf(),(c=new ps).a=u,u+=a.a+n.a,n.f.g){case 0:c.b=e.d+t.d;break;case 1:c.b=e.d+t.d+(e.a-a.b)/2;break;case 2:c.b=e.d+e.a-t.a-a.b}i.tf(c)}}function nc9(n){var t,e;mc(n,new nte(((((t=new as).c=nmz,t).d="ELK Randomizer",t).b='Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.',e=new aG,t.e=e,t))),DV(n,nmz,nb9,nW0),DV(n,nmz,nwy,15),DV(n,nmz,nwj,Va(0)),DV(n,nmz,nb8,nwp)}function nc7(){var n,t,e,i,r,c;for(t=0,nc7=C,nYe=_f(nYD,nyw,25,255,15,1),nYi=_f(nY$,nfS,25,16,15,1);t<255;t++)nYe[t]=-1;for(e=57;e>=48;e--)nYe[e]=e-48<<24>>24;for(i=70;i>=65;i--)nYe[i]=i-65+10<<24>>24;for(r=102;r>=97;r--)nYe[r]=r-97+10<<24>>24;for(c=0;c<10;c++)nYi[c]=48+c&nfI;for(n=10;n<=15;n++)nYi[n]=65+n-10&nfI}function nan(n,t,e){var i,r,c,a,u,o,s,h;return u=t.i-n.g/2,o=e.i-n.g/2,s=t.j-n.g/2,h=e.j-n.g/2,c=t.g+n.g/2,a=e.g+n.g/2,i=t.f+n.g/2,r=e.f+n.g/2,u<o+a&&o<u&&s<h+r&&h<s||o<u+c&&u<o&&h<s+i&&s<h||u<o+a&&o<u&&s<h&&h<s+i||!!(o<u+c)&&!!(u<o)&&!!(s<h+r)&&!!(h<s)}function nat(n){var t,e,i,r,c;if(!n.c){if(c=new ua,null==(t=nQ2).a.zc(n,t)){for(i=new Td(RJ(n));i.e!=i.i.gc();)Ti(r=nuI(e=Im(J1(i),87)),88)&&AJ(c,nat(Im(r,26))),_P(c,e);t.a.Bc(n),t.a.gc()}(function(n){var t,e,i,r;for(e=Im(n.g,674),i=n.i-1;i>=0;--i)for(r=0,t=e[i];r<i;++r)if(function n(t,e,i){var r,c,a,u,o,s,h;if(e==i)return!0;if(e=nri(t,e),i=nri(t,i),!(r=YB(e)))return e.e==i.e;if((s=YB(i))!=r)return!!s&&(u=r.Dj())==s.Dj()&&null!=u;if(e.d||(e.d=new Tg(nQd,e,1)),c=(a=e.d).i,i.d||(i.d=new Tg(nQd,i,1)),c==(h=i.d).i){for(o=0;o<c;++o)if(!n(t,Im(HX(a,o),87),Im(HX(h,o),87)))return!1}return!0}(n,t,e[r])){ZI(n,i);break}})(c),X5(c),n.c=new jW((Im(HX(L6(($g(),nQO).o),15),18),c.i),c.g),KJ(n).b&=-33}return n.c}function nae(n){var t;if(10!=n.c)throw new gO(nhd((E$(),nkt))).e;switch(t=n.a){case 110:t=10;break;case 114:t=13;break;case 116:t=9;break;case 92:case 124:case 46:case 94:case 45:case 63:case 42:case 43:case 123:case 125:case 40:case 41:case 91:case 93:break;default:throw new gO(nhd((E$(),nkA))).e}return t}function nai(n,t,e,i){var r,c,a,u;if(RK((P7(),new OM(TD(Vq(t).a.Kc(),new s))))>=n.a||!nn4(t,e))return -1;if(RT(Im(i.Kb(t),20)))return 1;for(r=0,a=Im(i.Kb(t),20).Kc();a.Ob();)if(-1==(u=nai(n,(c=Im(a.Pb(),17)).c.i==t?c.d.i:c.c.i,e,i))||(r=nTv.Math.max(r,u))>n.c-1)return -1;return r+1}function nar(n,t){var e,i,r,c,a,u;if(jf(t)===jf(n))return!0;if(!Ti(t,15)||(i=Im(t,15),u=n.gc(),i.gc()!=u))return!1;if(a=i.Kc(),n.ni()){for(e=0;e<u;++e)if(r=n.ki(e),c=a.Pb(),null==r?null!=c:!WY(r,c))return!1}else for(e=0;e<u;++e)if(r=n.ki(e),c=a.Pb(),jf(r)!==jf(c))return!1;return!0}function nac(n,t){var e,i,r,c,a,u;if(n.f>0){if(n.qj(),null!=t){for(c=0;c<n.d.length;++c)if(e=n.d[c]){for(a=0,i=Im(e.g,367),u=e.i;a<u;++a)if(WY(t,(r=i[a]).dd()))return!0}}else for(c=0;c<n.d.length;++c)if(e=n.d[c]){for(a=0,i=Im(e.g,367),u=e.i;a<u;++a)if(r=i[a],jf(t)===jf(r.dd()))return!0}}return!1}function naa(n){switch(n){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return n-48<<24>>24;case 97:case 98:case 99:case 100:case 101:case 102:return n-97+10<<24>>24;case 65:case 66:case 67:case 68:case 69:case 70:return n-65+10<<24>>24;default:throw new gG("Invalid hexadecimal").e}}function nau(){nau=C,nSU=new mW("SPIRAL",0),nSB=new mW("LINE_BY_LINE",1),nSH=new mW("MANHATTAN",2),nS_=new mW("JITTER",3),nSG=new mW("QUADRANTS_LINE_BY_LINE",4),nSz=new mW("QUADRANTS_MANHATTAN",5),nSq=new mW("QUADRANTS_JITTER",6),nSF=new mW("COMBINE_LINE_BY_LINE_MANHATTAN",7),nSK=new mW("COMBINE_JITTER_MANHATTAN",8)}function nao(n,t,e,i){var r,c,a,u,o,h;for(o=nnk(n,e),h=nnk(t,e),r=!1;o&&h;)if(i||function(n,t,e){var i,r,c,a,u;for(c=n.c,u=e?t:n,i=e?n:t,r=u.p+1;r<i.p;++r)if(!((a=Im(CA(c.a,r),10)).k==(ntY(),nAz)||function(n){var t,e;if(n.k==(ntY(),nAW)){for(e=new OM(TD(Vq(n).a.Kc(),new s));nrc(e);)if(!KR(t=Im(K4(e),17))&&n.c==nny(t,n).c)return!0}return!1}(a)))return!1;return!0}(o,h,e))a=nnk(o,e),u=nnk(h,e),By(t),By(n),c=o.c,no2(o,!1),no2(h,!1),e?(ZF(t,h.p,c),t.p=h.p,ZF(n,o.p+1,c),n.p=o.p):(ZF(n,o.p,c),n.p=o.p,ZF(t,h.p+1,c),t.p=h.p),xT(o,null),xT(h,null),o=a,h=u,r=!0;else break;return r}function nas(n,t,e,i,r,c,a,u){var o,s,h;for(o=0,null!=t&&(o^=Yj(t.toLowerCase())),null!=e&&(o^=Yj(e)),null!=i&&(o^=Yj(i)),null!=a&&(o^=Yj(a)),null!=u&&(o^=Yj(u)),s=0,h=c.length;s<h;s++)o^=Yj(c[s]);n?o|=256:o&=-257,r?o|=16:o&=-17,this.f=o,this.i=null==t?null:($x(t),t),this.a=e,this.d=i,this.j=c,this.g=a,this.e=u}function nah(n,t,e){var i,r;switch(r=null,t.g){case 1:zn(),r=nAZ;break;case 2:zn(),r=nA0}switch(i=null,e.g){case 1:zn(),i=nA1;break;case 2:zn(),i=nAY;break;case 3:zn(),i=nA2;break;case 4:zn(),i=nA3}return r&&i?Iv(n.j,new s0(new gE(Um(xg(nEV,1),nhA,169,0,[Im(A1(r),169),Im(A1(i),169)])))):(LV(),LV(),nMv)}function naf(n,t,e,i,r,c){var a,u,o,s,h,f,l,b;if(this.b=e,this.d=r,n>=t.length)throw new gu("Greedy SwitchDecider: Free layer not in graph.").e;this.c=t[n],this.e=new PD(i),GS(this.e,this.c,(nsR(),nWJ)),this.i=new PD(i),GS(this.i,this.c,nWA),this.f=new CQ(this.c),this.a=!c&&r.i&&!r.s&&this.c[0].k==(ntY(),nAU),this.a&&(a=t.length,f=(s=this.d.p).e,l=s.r,this.g=new PD(l),u=(h=this.d.o.c.p)>0?f[h-1]:_f(nPV,nw9,10,0,0,1),o=f[h],b=h<f.length-1?f[h+1]:_f(nPV,nw9,10,0,0,1),n==a-1?xs(this.g,o,b):xs(this.g,u,o))}function nal(n,t){var e,i,r,c,a,u,o,s,h;c=!n.B.Hc((na9(),nW7)),a=n.B.Hc(nVe),n.a=new QO(a,c,n.c),n.n&&LG(n.a.n,n.n),o=n.g,HB(),s=nSV,h=n.a,o.a[s.g]=h,t||((i=new JM(1,c,n.c)).n.a=n.k,C2(n.p,(nsR(),nW$),i),(r=new JM(1,c,n.c)).n.d=n.k,C2(n.p,nWV,r),(u=new JM(0,c,n.c)).n.c=n.k,C2(n.p,nWJ,u),(e=new JM(0,c,n.c)).n.b=n.k,C2(n.p,nWA,e))}function nab(){nab=C,nOH=new EM((nha(),nXa),Va(1)),nOW=new EM(nXj,80),nOX=new EM(nXd,5),nOC=new EM(nUr,nwp),nOq=new EM(nXu,Va(1)),nOU=new EM(nXh,(TX(),!0)),nOF=new ES(50),nOK=new EM(nUU,nOF),nOA=nUP,nO_=nU6,nOO=new EM(nUw,!1),nOR=nUz,nOD=nUH,nOx=nUR,nON=nUx,nOB=nXn,nt5(),nOL=nOm,nOV=nOT,nO$=nOv,nOG=nOk,nOz=nOE}function naw(){naw=C,nzr=new bR(nv1),mt(),nze=new jU(nv5,nzi=nzf),UT(),nzn=new jU(nv0,nzt=nzw),nt7(),nG9=new jU(nv2,nG7=nGD),nG4=new jU(nv3,null),F$(),nG6=new jU(nv4,nG8=nG$),v7(),nGZ=new jU(nv6,nG1=nGI),nG0=new jU(nv8,(TX(),!1)),nG2=new jU(nv9,Va(64)),nG3=new jU(nv7,!0),nG5=nGL}function nad(n){var t,e,i,r,c;if(null==n.a){if(n.a=_f(nYN,nbf,25,n.c.b.c.length,16,1),n.a[0]=!1,MH(n.c,(ns8(),n_i)))for(e=Im(ntP(n.c,n_i),15).Kc();e.Ob();)(t=Im(e.Pb(),19).a)>0&&t<n.a.length&&(n.a[t]=!1);else for((c=new h1(n.c.b)).a<c.c.c.length&&De(c),i=1;c.a<c.c.c.length;)r=Im(De(c),29),n.a[i++]=function(n){var t,e,i,r,c,a,u,o;t=!0,r=null,c=null;t:for(o=new h1(n.a);o.a<o.c.c.length;)for(i=new OM(TD(VG(u=Im(De(o),10)).a.Kc(),new s));nrc(i);){if(e=Im(K4(i),17),r&&r!=u||(r=u,a=e.c.i,c&&c!=a)){t=!1;break t}c=a}return t}(r)}}function nag(n,t){var e,i;switch(i=n.b,t){case 1:n.b|=1,n.b|=4,n.b|=8;break;case 2:n.b|=2,n.b|=4,n.b|=8;break;case 4:n.b|=1,n.b|=2,n.b|=4,n.b|=8;break;case 3:n.b|=16,n.b|=8;break;case 0:n.b|=32,n.b|=16,n.b|=8,n.b|=1,n.b|=2,n.b|=4}if(n.b!=i&&n.c)for(e=new Td(n.c);e.e!=e.i.gc();)ne2(KJ(Im(J1(e),473)),t)}function nap(n,t,e,i){var r,c,a,u,o,s,h,f,l,b;for(a=0,r=!1,u=t.length;a<u;++a)c=t[a],gm((TX(),!!c.e))&&!Im(CA(n.b,c.e.p),214).s&&(r|=(o=c.e,b=(h=(s=Im(CA(n.b,o.p),214)).e).length,h[f=e?0:b-1][0].k==(ntY(),nAU)?h[f]=function(n,t,e){var i,r,c,a,u;for(a=WJ(n,e),u=_f(nPV,nw9,10,t.length,0,1),i=0,c=a.Kc();c.Ob();)gm(So(ntP(r=Im(c.Pb(),11),(nhu(),nxh))))&&(u[i++]=Im(ntP(r,nxA),10));if(i<t.length)throw new gg("Expected "+t.length+" hierarchical ports, but found only "+i+".").e;return u}(c,h[f],e?(nsR(),nWJ):(nsR(),nWA)):s.c.Tf(h,e),l=ncv(n,s,e,i),ncR(s.e,s.o,e),l));return r}function nav(n,t){var e,i,r,c,a,u,o,s,h,f;if(a=Im(Im(Fl(n.r,t),21),84),u=n.u.Hc((nis(),nWI)),e=n.u.Hc(nWM),i=n.u.Hc(nWT),s=n.u.Hc(nWC),f=n.B.Hc((na9(),nVu)),h=!e&&!i&&(s||2==a.gc()),function(n,t){var e,i,r,c,a,u;for(a=Im(Im(Fl(n.r,t),21),84).Kc();a.Ob();)(e=(c=Im(a.Pb(),111)).c?Ce(c.c):0)>0?c.a?e>(u=c.b.rf().a)&&(r=(e-u)/2,c.d.b=r,c.d.c=r):c.d.c=n.s+e:OQ(n.u)&&((i=nts(c.b)).c<0&&(c.d.b=-i.c),i.c+i.b>c.b.rf().a&&(c.d.c=i.c+i.b-c.b.rf().a))}(n,t),r=null,o=null,u){for(o=r=Im((c=a.Kc()).Pb(),111);c.Ob();)o=Im(c.Pb(),111);r.d.b=0,o.d.c=0,h&&!r.a&&(r.d.c=0)}f&&(function(n){var t,e,i,r,c;for(t=0,e=0,c=n.Kc();c.Ob();)i=Im(c.Pb(),111),t=nTv.Math.max(t,i.d.b),e=nTv.Math.max(e,i.d.c);for(r=n.Kc();r.Ob();)(i=Im(r.Pb(),111)).d.b=t,i.d.c=e}(a),u&&(r.d.b=0,o.d.c=0))}function nam(n,t){var e,i,r,c,a,u,o,s,h,f;if(a=Im(Im(Fl(n.r,t),21),84),u=n.u.Hc((nis(),nWI)),e=n.u.Hc(nWM),i=n.u.Hc(nWT),o=n.u.Hc(nWC),f=n.B.Hc((na9(),nVu)),s=!e&&!i&&(o||2==a.gc()),function(n,t){var e,i,r,c,a,u,o;for(u=Im(Im(Fl(n.r,t),21),84).Kc();u.Ob();)(i=(a=Im(u.Pb(),111)).c?Ct(a.c):0)>0?a.a?i>(o=a.b.rf().b)&&(n.v||1==a.c.d.c.length?(c=(i-o)/2,a.d.d=c,a.d.a=c):(e=(Im(CA(a.c.d,0),181).rf().b-o)/2,a.d.d=nTv.Math.max(0,e),a.d.a=i-e-o)):a.d.a=n.t+i:OQ(n.u)&&((r=nts(a.b)).d<0&&(a.d.d=-r.d),r.d+r.a>a.b.rf().b&&(a.d.a=r.d+r.a-a.b.rf().b))}(n,t),h=null,r=null,u){for(r=h=Im((c=a.Kc()).Pb(),111);c.Ob();)r=Im(c.Pb(),111);h.d.d=0,r.d.a=0,s&&!h.a&&(h.d.a=0)}f&&(function(n){var t,e,i,r,c;for(e=0,t=0,c=n.Kc();c.Ob();)i=Im(c.Pb(),111),e=nTv.Math.max(e,i.d.d),t=nTv.Math.max(t,i.d.a);for(r=n.Kc();r.Ob();)(i=Im(r.Pb(),111)).d.d=e,i.d.a=t}(a),u&&(h.d.d=0,r.d.a=0))}function nay(n){var t;return(64&n.Db)!=0?niJ(n):(t=new TW(niJ(n)),t.a+=" (changeable: ",p$(t,(n.Bb&nyp)!=0),t.a+=", volatile: ",p$(t,(n.Bb&njn)!=0),t.a+=", transient: ",p$(t,(n.Bb&nlu)!=0),t.a+=", defaultValueLiteral: ",jT(t,n.j),t.a+=", unsettable: ",p$(t,(n.Bb&nk7)!=0),t.a+=", derived: ",p$(t,(n.Bb&nhY)!=0),t.a+=")",t.a)}function nak(n,t,e,i){var r,c,a,u,o,s;if(null==e){for(u=0,r=Im(n.g,119);u<n.i;++u)if((a=r[u]).ak()==t)return Ye(n,a,i)}return mp(),c=Im(t,66).Oj()?Im(e,72):RU(t,e),Ea(n.e)?(s=!QB(n,t),i=QN(n,c,i),o=t.$j()?NE(n,3,t,null,e,nu5(n,t,e,Ti(t,99)&&(Im(t,18).Bb&nls)!=0),s):NE(n,1,t,t.zj(),e,-1,s),i?i.Ei(o):i=o):i=QN(n,c,i),i}function naj(){this.b=new R7,this.d=new R7,this.e=new R7,this.c=new R7,this.a=new wt,this.f=new wt,NJ(nCa,new ab,new aw),NJ(nCu,new aM,new aS),NJ(nPW,new aP,new aI),NJ(nPJ,new aO,new aA),NJ(nCT,new a$,new aL),NJ(nTb,new ad,new ag),NJ(nTp,new ap,new av),NJ(nTd,new am,new ay),NJ(nTg,new ak,new aj),NJ(nMK,new aE,new aT)}function naE(n){var t,e,i,r,c,a;return c=0,(t=Z9(n)).Bj()&&(c|=4),(n.Bb&nk7)!=0&&(c|=2),Ti(n,99)?(r=YI(e=Im(n,18)),(e.Bb&nya)!=0&&(c|=32),r&&(AW(xd(r)),c|=8,((a=r.t)>1||-1==a)&&(c|=16),(r.Bb&nya)!=0&&(c|=64)),(e.Bb&nls)!=0&&(c|=njn),c|=nyp):Ti(t,457)?c|=512:(i=t.Bj())&&(1&i.i)!=0&&(c|=256),(512&n.Bb)!=0&&(c|=128),c}function naT(n,t){var e,i,r,c,a;for(r=0,n=null==n?nhN:($x(n),n);r<t.length;r++)t[r]=function(n){var t,e,i,r,c;try{return null==n?nhN:V7(n)}catch(a){if(Ti(a=Uu(a),102))return t=a,e=pb(Xp(n))+"@"+(vI(),(Ys(n)>>>0).toString(16)),Kz(),i=nMH?new KG(null):function n(t,e){var i,r,c,a,u;return(i=Im(Nz(t.a,e),512))?i:(r=new KG(e),Kz(),a=n(t,MT(c=nMH?null:r.c,0,nTv.Math.max(0,T2(c,ntd(46))))),!nMH&&a&&(r.d=a),0==(nMH?null:r.c).length&&(u=new U,nMH||IE(r.a,u)),xp(t.a,nMH?null:r.c,r),r)}(function(){var n,t,e,i,r;return!nM1&&(nM1=new wB,e=n=new KG(""),vX(),i=nMZ,nMH||(e.b=i),t=nM1,0==((Kz(),nMH)?null:n.c).length&&(r=new U,nMH||IE(n.a,r)),xp(t.a,nMH?null:n.c,n)),nM1}(),"com.google.common.base.Strings"),vX(),r="Exception during lenientFormat for "+e,(nM_?(function(n){var t,e;if(n.b)return n.b;for(e=nMH?null:n.d;e;){if(t=nMH?null:e.b)return t;e=nMH?null:e.d}vX()}(i),0):nMB?(vX(),0):nMG?(vX(),0):!nMq||(vX(),1))||((c=new Pq(r)).b=t,function(n,t){var e,i,r,c,a,u,o;for(i=XI(n),c=0,u=i.length;c<u;++c)ntS(t);for(o=!nMH&&n.e?nMH?null:n.d:null;o;){for(e=XI(o),r=0,a=e.length;r<a;++r)ntS(t);o=!nMH&&o.e?nMH?null:o.d:null}}(i,c)),"<"+e+" threw "+pb(t.gm)+">";throw a.e}}(t[r]);for(e=new gW,a=0,i=0;i<t.length&&-1!=(c=n.indexOf("%s",a));)e.a+=""+MT(null==n?nhN:($x(n),n),a,c),jS(e,t[i++]),a=c+2;if(DD(e,n,a,n.length),i<t.length){for(e.a+=" [",jS(e,t[i++]);i<t.length;)e.a+=nhC,jS(e,t[i++]);e.a+="]"}return e.a}function naM(n,t){var e,i,r,c,a,u,o,s;for(e=0,o=new h1(t);o.a<o.c.c.length;){for(u=Im(De(o),11),X0(n.b,n.d[u.p]),a=0,r=new Fm(u.b);EB(r.a)||EB(r.b);)$F(i=Im(EB(r.a)?De(r.a):De(r.b),17))?(s=u==i.c?i.d:i.c,(c=n.d[s.p])>n.d[u.p]&&(e+=KC(n.b,c),RC(n.a,Va(c)))):++a;for(e+=n.b.d*a;!gk(n.a);)B3(n.b,Im(Al(n.a),19).a)}return e}function naS(n){var t,e,i,r,c,a,u;for(u=new wt,i=new h1(n.a.b);i.a<i.c.c.length;)$J(u,t=Im(De(i),57),new wn);for(r=new h1(n.a.b);r.a<r.c.c.length;)for((t=Im(De(r),57)).i=nla,a=t.c.Kc();a.Ob();)c=Im(a.Pb(),57),Im(jh(Nj(u.f,c)),15).Fc(t);for(e=new h1(n.a.b);e.a<e.c.c.length;)(t=Im(De(e),57)).c.$b(),t.c=Im(jh(Nj(u.f,t)),15);nc_(n)}function naP(n){var t,e,i,r,c,a,u;for(u=new wt,i=new h1(n.a.b);i.a<i.c.c.length;)$J(u,t=Im(De(i),81),new wn);for(r=new h1(n.a.b);r.a<r.c.c.length;)for((t=Im(De(r),81)).o=nla,a=t.f.Kc();a.Ob();)c=Im(a.Pb(),81),Im(jh(Nj(u.f,c)),15).Fc(t);for(e=new h1(n.a.b);e.a<e.c.c.length;)(t=Im(De(e),81)).f.$b(),t.f=Im(jh(Nj(u.f,t)),15);ncy(n)}function naI(n,t,e,i,r){var c,a,u;try{if(t>=n.o)throw(new wD).e;u=t>>5,a=31&t,c=OR(1,CZ(OR(a,1))),r?n.n[e][u]=Dr(n.n[e][u],c):n.n[e][u]=Di(n.n[e][u],Ix(c)),c=OR(c,1),i?n.n[e][u]=Dr(n.n[e][u],c):n.n[e][u]=Di(n.n[e][u],Ix(c))}catch(i){if(Ti(i=Uu(i),320))throw new gu(nbR+n.o+"*"+n.p+nbK+t+nhC+e+nbF).e;throw i.e}}function naC(n){var t,e,i;return(64&n.Db)!=0?nt3(n):(t=new TV(nm6),(e=n.k)?jP(jP((t.a+=' "',t),e),'"'):(n.n||(n.n=new An(nCK,n,1,7)),n.n.i>0&&(i=(n.n||(n.n=new An(nCK,n,1,7)),Im(HX(n.n,0),137)).a)&&jP(jP((t.a+=' "',t),i),'"')),jP(pL(jP(pL(jP(pL(jP(pL((t.a+=" (",t),n.i),","),n.j)," | "),n.g),","),n.f),")"),t.a)}function naO(n){var t,e,i;return(64&n.Db)!=0?nt3(n):(t=new TV(nm8),(e=n.k)?jP(jP((t.a+=' "',t),e),'"'):(n.n||(n.n=new An(nCK,n,1,7)),n.n.i>0&&(i=(n.n||(n.n=new An(nCK,n,1,7)),Im(HX(n.n,0),137)).a)&&jP(jP((t.a+=' "',t),i),'"')),jP(pL(jP(pL(jP(pL(jP(pL((t.a+=" (",t),n.i),","),n.j)," | "),n.g),","),n.f),")"),t.a)}function naA(n,t){var e,i,r,c,a,u;if(null==t||0==t.length)return null;if(!(r=Im(Nz(n.a,t),149))){for(i=new hG(new hD(n.b).a.vc().Kc());i.a.Ob();)if(c=Im(i.a.Pb(),42),a=(e=Im(c.dd(),149)).c,u=t.length,Pv(a.substr(a.length-u,u),t)&&(t.length==a.length||46==$9(a,a.length-t.length-1))){if(r)return null;r=e}r&&xp(n.a,t,r)}return r}function na$(n){var t,e,i;!MH(n,(ns8(),nK7))||(i=Im(ntP(n,nK7),21)).dc()||(e=new PR(t=Im(pf(nCg),9),Im(Sz(t,t.length),9),0),i.Hc((nrS(),nWc))?Gv(e,nWc):Gv(e,nWa),i.Hc(nWi)||Gv(e,nWi),i.Hc(nWe)?Gv(e,nWs):i.Hc(nWt)?Gv(e,nWo):i.Hc(nWr)&&Gv(e,nWu),i.Hc(nWs)?Gv(e,nWe):i.Hc(nWo)?Gv(e,nWt):i.Hc(nWu)&&Gv(e,nWr),UU(n,nK7,e))}function naL(n,t,e,i,r){var c,a,u,o,s,h,f;if(!(Ti(t,239)||Ti(t,354)||Ti(t,186)))throw new gd("Method only works for ElkNode-, ElkLabel and ElkPort-objects.").e;return a=n.a/2,o=t.i+i-a,h=t.j+r-a,s=o+t.g+n.a,f=h+t.f+n.a,I2(c=new dd,new kp(o,h)),I2(c,new kp(o,f)),I2(c,new kp(s,f)),I2(c,new kp(s,h)),z5(u=new nrf(c),t),e&&$J(n.b,t,u),u}function naN(n,t,e){var i,r,c,a,u,o,s,h;for(c=new kp(t,e),s=new h1(n.a);s.a<s.c.c.length;)for(S9((o=Im(De(s),10)).n,c),h=new h1(o.j);h.a<h.c.c.length;)for(r=new h1(Im(De(h),11).g);r.a<r.c.c.length;)for(HV((i=Im(De(r),17)).a,c),(a=Im(ntP(i,(ns8(),nKV)),74))&&HV(a,c),u=new h1(i.b);u.a<u.c.c.length;)S9(Im(De(u),70).n,c)}function nax(n){if(0==(n.b||(n.b=new Ph(nCA,n,4,7)),n.b).i)throw new gC("Edges must have a source.").e;if(0==(n.c||(n.c=new Ph(nCA,n,5,8)),n.c).i)throw new gC("Edges must have a target.").e;if(n.b||(n.b=new Ph(nCA,n,4,7)),!(n.b.i<=1&&(n.c||(n.c=new Ph(nCA,n,5,8)),n.c.i<=1)))throw new gC("Hyperedges are not supported.").e}function naD(n,t){var e,i,r,c,a,u,o,s,h,f;for(f=0,RC(c=new b7,t);c.b!=c.c;)for(o=Im(Al(c),214),s=0,h=Im(ntP(t.j,(ns8(),nKh)),339),a=gy(Ss(ntP(t.j,nKa))),u=gy(Ss(ntP(t.j,nKu))),h!=(U1(),n__)&&(s+=a*function(n,t){var e,i,r,c,a,u,o,s;for(a=0,o=-1,s=0,u=n.length;a<u;++a){for(i=0,c=n[a],e=new IG(-1==o?n[0]:n[o],t,(Wf(),n_p));i<c.length;i++)for(r=i+1;r<c.length;r++)MH(c[i],(nhu(),nxj))&&MH(c[r],nxj)&&nsV(e,c[i],c[r])>0&&++s;++o}return s}(o.e,h)+u*function(n){var t,e,i,r,c,a,u,o,s,h,f;for(o=0,h=-1,f=0,s=n.length;o<s;++o){for(c=0,a=(u=n[o]).length;c<a;++c)for(e=0,r=u[c],t=new yb(-1==h?n[0]:n[h],ZW(r));e<r.j.c.length;e++)for(i=e+1;i<r.j.c.length;i++)OU(t,Im(CA(r.j,e),11),Im(CA(r.j,i),11))>0&&++f;++h}return f}(o.e)),f+=Zp(o.d,o.e)+s,r=new h1(o.b);r.a<r.c.c.length;)i=Im(De(r),37),(e=Im(CA(n.b,i.p),214)).s||(f+=neB(n,e));return f}function naR(n,t,e,i,r,c,a){if(n.c=i.qf().a,n.d=i.qf().b,r&&(n.c+=r.qf().a,n.d+=r.qf().b),n.b=t.rf().a,n.a=t.rf().b,r)switch(r.Hf().g){case 0:case 2:n.c+=r.rf().a+a+c.a+a;break;case 4:n.c-=a+c.a+a+t.rf().a;break;case 1:n.c+=r.rf().a+a,n.d-=a+c.b+a+t.rf().b;break;case 3:n.c+=r.rf().a+a,n.d+=r.rf().b+a+c.b+a}else e?n.c-=a+t.rf().a:n.c+=i.rf().a+a}function naK(n,t){var e,i;for(this.b=new wn,this.e=new wn,this.a=n,this.d=t,function(n){var t;t=n.a;do(t=Im(K4(new OM(TD(VG(t).a.Kc(),new s))),17).c.i).k==(ntY(),nAW)&&n.b.Fc(t);while(t.k==(ntY(),nAW))n.b=zI(n.b)}(this),function(n){var t;t=n.a;do(t=Im(K4(new OM(TD(Vz(t).a.Kc(),new s))),17).d.i).k==(ntY(),nAW)&&IE(n.e,t);while(t.k==(ntY(),nAW))}(this),this.b.dc()?this.c=n.c.p:this.c=Im(this.b.Xb(0),10).c.p,0==this.e.c.length?this.f=n.c.p:this.f=Im(CA(this.e,this.e.c.length-1),10).c.p,i=Im(ntP(n,(nhu(),nxx)),15).Kc();i.Ob();)if(MH(e=Im(i.Pb(),70),(ns8(),nKS))){this.d=Im(ntP(e,nKS),227);break}}function naF(n,t,e){var i,r,c,a,u,o,s,h;for(i=Im($a(n.a,t),53),c=Im($a(n.a,e),53),r=Im($a(n.e,t),53),a=Im($a(n.e,e),53),i.a.zc(e,i),a.a.zc(t,a),h=c.a.ec().Kc();h.Ob();)s=Im(h.Pb(),10),i.a.zc(s,i),Av(Im($a(n.e,s),53),t),Gz(Im($a(n.e,s),53),r);for(o=r.a.ec().Kc();o.Ob();)u=Im(o.Pb(),10),a.a.zc(u,a),Av(Im($a(n.a,u),53),e),Gz(Im($a(n.a,u),53),c)}function na_(n,t,e){var i,r,c,a,u,o,s,h;for(i=Im($a(n.a,t),53),c=Im($a(n.a,e),53),r=Im($a(n.b,t),53),a=Im($a(n.b,e),53),i.a.zc(e,i),a.a.zc(t,a),h=c.a.ec().Kc();h.Ob();)s=Im(h.Pb(),10),i.a.zc(s,i),Av(Im($a(n.b,s),53),t),Gz(Im($a(n.b,s),53),r);for(o=r.a.ec().Kc();o.Ob();)u=Im(o.Pb(),10),a.a.zc(u,a),Av(Im($a(n.a,u),53),e),Gz(Im($a(n.a,u),53),c)}function naB(n){var t,e,i,r,c,a,u,o,s,h,f;for(e=nfp,r=nhM,u=new h1(n.e.a);u.a<u.c.c.length;)c=Im(De(u),121),r=nTv.Math.min(r,c.e),e=nTv.Math.max(e,c.e);for(t=_f(nYL,nfH,25,e-r+1,15,1),a=new h1(n.e.a);a.a<a.c.c.length;)c=Im(De(a),121),c.e-=r,++t[c.e];if(i=0,null!=n.k)for(s=n.k,h=0,f=s.length;h<f&&(o=s[h],t[i++]+=o,t.length!=i);++h);return t}function naH(n){switch(n.d){case 9:case 8:return!0;case 3:case 5:case 4:case 6:return!1;case 7:return Im(ncF(n),19).a==n.o;case 1:case 2:if(-2==n.o)return!1;switch(n.p){case 0:case 1:case 2:case 6:case 5:case 7:return jp(n.k,n.f);case 3:case 4:return n.j==n.e;default:return null==n.n?null==n.g:WY(n.n,n.g)}default:return!1}}function naq(n){var t,e;mc(n,new nte(((((t=new as).c=nmG,t).d="ELK Fixed",t).b="Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points.",e=new aq,t.e=e,t))),DV(n,nmG,nb9,nX1),DV(n,nmG,npH,JZ(nX0)),DV(n,nmG,nmj,JZ(nXV)),DV(n,nmG,nwC,JZ(nXQ)),DV(n,nmG,nwq,JZ(nXY)),DV(n,nmG,npE,JZ(nXJ))}function naG(n,t,e){var i,r,c,a;if(i=CZ(VF(nfr,$4(CZ(VF(null==t?0:Xg(t),nfc)),15))),a=CZ(VF(nfr,$4(CZ(VF(null==e?0:Xg(e),nfc)),15))),(c=G1(n,t,i))&&a==c.f&&$A(e,c.i))return e;if(G0(n,e,a))throw new gd("value already present: "+e).e;return(r=new $U(t,i,e,a),c)?(nr4(n,c),nin(n,r,c),c.e=null,c.c=null,c.i):(nin(n,r,null),nnr(n),null)}function naz(n,t,e){var i,r,c,a,u,o;if(!t)return null;if(!(e<=-1))return YI(Im(Hm(n.Tg(),e),18));if(Ti(i=Hm(t.Tg(),-1-e),99))return Im(i,18);for(u=0,o=(a=Im(t.ah(i),153)).gc();u<o;++u)if(jf(a.jl(u))===jf(n)&&Ti(r=a.il(u),99)&&((c=Im(r,18)).Bb&nya)!=0)return c;throw new gg("The containment feature could not be located").e}function naU(n,t,e,i){var r,c,a;return a=new vg(t,e),n.a?i?(r=Im($a(n.b,t),283),++r.a,a.d=i.d,a.e=i.e,a.b=i,a.c=i,i.e?i.e.c=a:Im($a(n.b,t),283).b=a,i.d?i.d.b=a:n.a=a,i.d=a,i.e=a):(n.e.b=a,a.d=n.e,n.e=a,(r=Im($a(n.b,t),283))?(++r.a,(c=r.c).c=a,a.e=c,r.c=a):($J(n.b,t,r=new Nr(a)),++n.c)):(n.a=n.e=a,$J(n.b,t,new Nr(a)),++n.c),++n.d,a}function naX(n,t){var e,i,r,c,a,u,o,s;for(e=RegExp(t,"g"),o=_f(nTh,nhJ,2,0,6,1),i=0,s=n,c=null;;){if(null==(u=e.exec(s))||""==s){o[i]=s;break}a=u.index,o[i]=s.substr(0,a),s=MT(s,a+u[0].length,s.length),e.lastIndex=0,c==s&&(o[i]=s.substr(0,1),s=s.substr(1)),c=s,++i}if(n.length>0){for(r=o.length;r>0&&""==o[r-1];)--r;r<o.length&&(o.length=r)}return o}function naW(n,t){var e,i,r,c,a,u,o,s;for(c=0,s=Nw(t),u=null,r=!1,o=RJ(s.a).i;c<o;++c)(e=naW(n,Im(no1(s,c,Ti(a=Im(HX(RJ(s.a),c),87).c,88)?Im(a,26):(nhl(),nQG)),26))).dc()||(u?(r||(r=!0,u=new CH(u)),u.Gc(e)):u=e);return(i=function(n,t){var e,i,r,c,a;for(t.s||(t.s=new An(nQo,t,21,17)),c=null,r=0,a=(i=t.s).i;r<a;++r)switch($B(BC(n,e=Im(HX(i,r),170)))){case 2:case 3:c||(c=new wn),c.c[c.c.length]=e}return c||(LV(),LV(),nMv)}(n,t)).dc()?u||(LV(),LV(),nMv):u?(r||(u=new CH(u)),u.Gc(i),u):i}function naV(n,t){var e,i,r,c,a,u,o,s;for(c=0,s=Nw(t),u=null,i=!1,o=RJ(s.a).i;c<o;++c)(e=naV(n,Im(no1(s,c,Ti(a=Im(HX(RJ(s.a),c),87).c,88)?Im(a,26):(nhl(),nQG)),26))).dc()||(u?(i||(i=!0,u=new CH(u)),u.Gc(e)):u=e);return(r=function(n,t){var e,i,r,c,a;for(t.s||(t.s=new An(nQo,t,21,17)),c=null,r=0,a=(i=t.s).i;r<a;++r)switch($B(BC(n,e=Im(HX(i,r),170)))){case 4:case 5:case 6:c||(c=new wn),c.c[c.c.length]=e}return c||(LV(),LV(),nMv)}(n,t)).dc()?u||(LV(),LV(),nMv):u?(i||(u=new CH(u)),u.Gc(r),u):r}function naQ(n,t,e){var i,r,c,a,u,o;if(Ti(t,72))return Ye(n,t,e);for(a=0,u=null,c=null,i=Im(n.g,119);a<n.i;++a)if(WY(t,(r=i[a]).dd())&&Ti(c=r.ak(),99)&&(Im(c,18).Bb&nya)!=0){u=r;break}return u&&(Ea(n.e)&&(o=c.$j()?NE(n,4,c,t,null,nu5(n,c,t,Ti(c,99)&&(Im(c,18).Bb&nls)!=0),!0):NE(n,c.Kj()?2:1,c,t,c.zj(),-1,!0),e?e.Ei(o):e=o),e=naQ(n,u,e)),e}function naJ(n){var t,e;mc(n,new nte(((((t=new as).c=nme,t).d="ELK SPOrE Overlap Removal",t).b='A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".',e=new c6,t.e=e,t))),DV(n,nme,nv1,JZ(nzh)),DV(n,nme,nb9,nzo),DV(n,nme,nwy,8),DV(n,nme,nv5,JZ(nzs)),DV(n,nme,nv9,JZ(nza)),DV(n,nme,nv7,JZ(nzu)),DV(n,nme,npm,(TX(),!1))}function naY(n,t,e,i){var r,c,a,u,o,s,h,f;for(a=MG(t.c,e,i),h=new h1(t.a);h.a<h.c.c.length;){for(S9((s=Im(De(h),10)).n,a),f=new h1(s.j);f.a<f.c.c.length;)for(c=new h1(Im(De(f),11).g);c.a<c.c.c.length;)for(HV((r=Im(De(c),17)).a,a),(u=Im(ntP(r,(ns8(),nKV)),74))&&HV(u,a),o=new h1(r.b);o.a<o.c.c.length;)S9(Im(De(o),70).n,a);IE(n.a,s),s.a=n}}function naZ(n,t,e){var i,r,c,a,u;if(mp(),a=Im(t,66).Oj(),ncD(n.e,t)){if(t.hi()&&nuz(n,t,e,Ti(t,99)&&(Im(t,18).Bb&nls)!=0))return!1}else for(c=0,u=ncT(n.e.Tg(),t),i=Im(n.g,119);c<n.i;++c)if(r=i[c],u.rl(r.ak())){if(a?WY(r,e):null==e?null==r.dd():WY(e,r.dd()))return!1;return Im(Yb(n,c,a?Im(e,72):RU(t,e)),72),!0}return _P(n,a?Im(e,72):RU(t,e))}function na1(n){var t,e,i,r,c,a;if(n.d)throw new gg((Su(nPB),nlZ+nPB.k+nl1)).e;for(n.c==(W2(),nXO)&&nsE(n,nXI),t=new h1(n.a.a);t.a<t.c.c.length;)Im(De(t),189).e=0;for(c=new h1(n.a.b);c.a<c.c.c.length;)for((r=Im(De(c),81)).o=nla,i=r.f.Kc();i.Ob();)e=Im(i.Pb(),81),++e.d.e;for(function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d;for(s=nlc,i=new h1(n.a.b);i.a<i.c.c.length;)t=Im(De(i),81),s=nTv.Math.min(s,t.d.f.g.c+t.e.a);for(b=new vK,a=new h1(n.a.a);a.a<a.c.c.length;)(c=Im(De(a),189)).i=s,0==c.e&&KL(b,c,b.c.b,b.c);for(;0!=b.b;){for(r=(c=Im(0==b.b?null:(MK(0!=b.b),HK(b,b.a.a)),189)).f.g.c,l=c.a.a.ec().Kc();l.Ob();)h=Im(l.Pb(),81),d=c.i+h.e.a,h.d.g||h.g.c<d?h.o=d:h.o=h.g.c;for(r-=c.f.o,c.b+=r,n.c==(W2(),nXC)||n.c==nXP?c.c+=r:c.c-=r,f=c.a.a.ec().Kc();f.Ob();)for(o=(h=Im(f.Pb(),81)).f.Kc();o.Ob();)u=Im(o.Pb(),81),w=Ei(n.c)?n.f.ef(h,u):n.f.ff(h,u),u.d.i=nTv.Math.max(u.d.i,h.o+h.g.b+w-u.e.a),u.k||(u.d.i=nTv.Math.max(u.d.i,u.g.c-u.e.a)),--u.d.e,0==u.d.e&&I2(b,u.d)}for(e=new h1(n.a.b);e.a<e.c.c.length;)(t=Im(De(e),81)).g.c=t.o}(n),a=new h1(n.a.b);a.a<a.c.c.length;)Im(De(a),81).k=!0;return n}function na0(n){var t,e,i,r,c,a,u,o;if(1!=(i=gy(Ss(nrM(n,(nha(),nXs))))))for(Eh(n,i*n.g,i*n.f),n.c||(n.c=new An(nC_,n,9,9)),a=n.c,u=new ax,A1(a),A1(u),A1(o=new I6(a,u)),e=new jG(o),c=AS(qO(Um(xg(nEJ,1),nhA,20,0,[(n.n||(n.n=new An(nCK,n,1,7)),n.n),(n.c||(n.c=new An(nC_,n,9,9)),n.c),e])));nrc(c);)(r=Im(K4(c),470)).Gg(i*r.Dg(),i*r.Eg()),r.Fg(i*r.Cg(),i*r.Bg()),(t=Im(r.We(nU4),8))&&(t.a*=i,t.b*=i)}function na2(n,t,e,i){this.e=n,this.k=Im(ntP(n,(nhu(),nxF)),304),this.g=_f(nPV,nw9,10,t,0,1),this.b=_f(nTr,nhJ,333,t,7,1),this.a=_f(nPV,nw9,10,t,0,1),this.d=_f(nTr,nhJ,333,t,7,1),this.j=_f(nPV,nw9,10,t,0,1),this.i=_f(nTr,nhJ,333,t,7,1),this.p=_f(nTr,nhJ,333,t,7,1),this.n=_f(nTt,nhJ,476,t,8,1),mA(this.n,(TX(),!1)),this.f=_f(nTt,nhJ,476,t,8,1),mA(this.f,!0),this.o=e,this.c=i}function na3(n,t){var e,i,r;if(!t.dc()){if(Im(t.Xb(0),286).d==(neC(),nLq))!function(n,t){var e,i,r;if(0!=(r=function(n,t){var e,i,r;for(r=new Fq(t.gc()),i=t.Kc();i.Ob();)(e=Im(i.Pb(),286)).c==e.f?ned(n,e,e.c):function(n,t){var e,i,r;for(e=t.a.o.a,r=new h$(new x2($L(t.a).b,t.c,t.f+1));r.b<r.d.gc();)if(MK(r.b<r.d.gc()),(i=Im(r.d.Xb(r.c=r.b++),29)).c.a>=e)return ned(n,t,i.p),!0;return!1}(n,e)||(r.c[r.c.length]=e);return r}(n,t)).c.length)for(E_(r,new eL),e=r.c.length,i=0;i<e;i++)ned(n,(x4(i,r.c.length),Im(r.c[i],286)),function(n,t,e){var i,r,c,a,u,o,s,h,f,l;for(c=t.c.length,x4(e,t.c.length),u=(a=Im(t.c[e],286)).a.o.a,f=a.c,l=0,s=a.c;s<=a.f;s++){if(u<=n.a[s])return s;for(h=n.a[s],o=null,r=e+1;r<c;r++)x4(r,t.c.length),(i=Im(t.c[r],286)).c<=s&&i.f>=s&&(o=i);o&&(h=nTv.Math.max(h,o.a.o.a)),h>l&&(f=s,l=h)}return f}(n,r,i))}(n,t);else for(i=t.Kc();i.Ob();){switch((e=Im(i.Pb(),286)).d.g){case 5:ned(n,e,function(n,t){var e,i,r;for(e=0,r=(i=function(n,t){var e,i,r,c,a,u,o,s,h,f,l;for(r=2*gy(Ss(ntP(o=$L(t.a),(ns8(),nFz)))),h=gy(Ss(ntP(o,nFY))),s=nTv.Math.max(r,h),c=_f(nYR,nlf,25,t.f-t.c+1,15,1),i=-s,e=0,u=t.b.Kc();u.Ob();)a=Im(u.Pb(),10),i+=n.a[a.c.p]+s,c[e++]=i;for(i+=n.a[t.a.c.p]+s,c[e++]=i,l=new h1(t.e);l.a<l.c.c.length;)f=Im(De(l),10),i+=n.a[f.c.p]+s,c[e++]=i;return c}(n,t))[i.length-1]/2;e<i.length;e++)if(i[e]>=r)return t.c+e;return t.c+t.b.gc()}(n,e));break;case 0:ned(n,e,(r=(e.f-e.c+1-1)/2|0,e.c+r));break;case 4:ned(n,e,function(n,t){var e,i;for(e=(i=t.c)+1;e<=t.f;e++)n.a[e]>n.a[i]&&(i=e);return i}(n,e));break;case 2:QP(e),ned(n,e,nnX(e)?e.c:e.f);break;case 1:QP(e),ned(n,e,nnX(e)?e.f:e.c)}!function(n){var t;for(Gx(),t=Im(K4(new OM(TD(VG(n).a.Kc(),new s))),17).c.i;t.k==(ntY(),nAW);)UU(t,(nhu(),nxg),(TX(),!0)),t=Im(K4(new OM(TD(VG(t).a.Kc(),new s))),17).c.i}(e.a)}}}function na4(n,t,e,i,r,c){var a,u,o,s,h,f,l,b,w,d,g,p,v;for(u=(i+r)/2+c,d=e*nTv.Math.cos(u),g=e*nTv.Math.sin(u),p=d-t.g/2,v=g-t.f/2,qh(t,p),qf(t,v),f=n.a.jg(t),(w=2*nTv.Math.acos(e/e+n.c))<r-i?(l=w/f,a=(i+r-w)/2):(l=(r-i)/f,a=i),b=ncY(t),n.e&&(n.e.kg(n.d),n.e.lg(b)),s=new h1(b);s.a<s.c.c.length;)o=Im(De(s),33),h=n.a.jg(o),na4(n,o,e+n.c,a,a+l*h,c),a+=l*h}function na5(n,t){var e,i,r,c;if(ntc(t,"Network simplex",1),n.e.a.c.length<1){nee(t);return}for(r=new h1(n.e.a);r.a<r.c.c.length;)Im(De(r),121).e=0;for((c=n.e.a.c.length>=40)&&function(n){var t,e,i,r,c,a,u;for(n.o=new b7,i=new vK,a=new h1(n.e.a);a.a<a.c.c.length;)1==VV(c=Im(De(a),121)).c.length&&KL(i,c,i.c.b,i.c);for(;0!=i.b;)0!=VV(c=Im(0==i.b?null:(MK(0!=i.b),HK(i,i.a.a)),121)).c.length&&(t=Im(CA(VV(c),0),213),e=c.g.a.c.length>0,u=V6(t,c),e?Mo(u.b,t):Mo(u.g,t),1==VV(u).c.length&&KL(i,u,i.c.b,i.c),r=new k_(c,t),RC(n.o,r),Bh(n.e.a,c))}(n),function(n){var t,e,i,r,c,a,u,o,s,h;for(s=n.e.a.c.length,c=new h1(n.e.a);c.a<c.c.c.length;)Im(De(c),121).j=!1;for(n.i=_f(nYL,nfH,25,s,15,1),n.g=_f(nYL,nfH,25,s,15,1),n.n=new wn,r=0,h=new wn,u=new h1(n.e.a);u.a<u.c.c.length;)(a=Im(De(u),121)).d=r++,0==a.b.a.c.length&&IE(n.n,a),Uf(h,a.g);for(t=0,i=new h1(h);i.a<i.c.c.length;)(e=Im(De(i),213)).c=t++,e.f=!1;o=h.c.length,null==n.b||n.b.length<o?(n.b=_f(nYR,nlf,25,o,15,1),n.c=_f(nYN,nbf,25,o,16,1)):gT(n.c),n.d=h,n.p=new Mi(Hv(n.d.c.length)),n.j=1}(n),function(n){var t,e,i,r;if(function(n,t){var e,i,r,c,a,u,o;for(r=_f(nYL,nfH,25,n.e.a.c.length,15,1),a=new h1(n.e.a);a.a<a.c.c.length;)c=Im(De(a),121),r[c.d]+=c.b.a.c.length;for(u=Ij(t);0!=u.b;)for(i=_H(new h1((c=Im(0==u.b?null:(MK(0!=u.b),HK(u,u.a.a)),121)).g.a));i.Ob();)(o=(e=Im(i.Pb(),213)).e).e=nTv.Math.max(o.e,c.e+e.a),--r[o.d],0==r[o.d]&&KL(u,o,u.c.b,u.c)}(n,n.n),n.d.c.length>0){for(gT(n.c);function n(t,e){var i,r,c,a;for(c=1,e.j=!0,a=null,r=new h1(VV(e));r.a<r.c.c.length;)i=Im(De(r),213),t.c[i.c]||(t.c[i.c]=!0,a=V6(i,e),i.f?c+=n(t,a):a.j||i.a!=i.e.e-i.d.e||(i.f=!0,Av(t.p,i),c+=n(t,a)));return c}(n,Im(De(new h1(n.e.a)),121))<n.e.a.c.length;){for(r=(t=function(n){var t,e,i,r,c;for(r=nhM,c=null,i=new h1(n.d);i.a<i.c.c.length;)(e=Im(De(i),213)).d.j^e.e.j&&(t=e.e.e-e.d.e-e.a)<r&&(r=t,c=e);return c}(n)).e.e-t.d.e-t.a,t.e.j&&(r=-r),i=new h1(n.e.a);i.a<i.c.c.length;)(e=Im(De(i),121)).j&&(e.e+=r);gT(n.c)}gT(n.c),nih(n,Im(De(new h1(n.e.a)),121)),no9(n)}}(n),e=Vl(n),i=0;e&&i<n.f;)(function(n,t,e){var i,r,c;if(!t.f)throw new gd("Given leave edge is no tree edge.").e;if(e.f)throw new gd("Given enter edge is a tree edge already.").e;for(t.f=!1,Tn(n.p,t),e.f=!0,Av(n.p,e),i=e.e.e-e.d.e-e.a,ne5(n,e.e,t)||(i=-i),c=new h1(n.e.a);c.a<c.c.c.length;)ne5(n,r=Im(De(c),121),t)||(r.e+=i);n.j=1,gT(n.c),nih(n,Im(De(new h1(n.e.a)),121)),no9(n)})(n,e,function(n,t){var e,i,r,c,a,u,o;if(!t.f)throw new gd("The input edge is not a tree edge.").e;for(c=null,r=nhM,i=new h1(n.d);i.a<i.c.c.length;)u=(e=Im(De(i),213)).d,o=e.e,ne5(n,u,t)&&!ne5(n,o,t)&&(a=o.e-u.e-e.a)<r&&(r=a,c=e);return c}(n,e)),e=Vl(n),++i;c&&function(n){for(var t,e,i,r;!gk(n.o);)e=Im(Al(n.o),46),i=Im(e.a,121),r=V6(t=Im(e.b,213),i),t.e==i?(Mu(r.g,t),i.e=r.e+t.a):(Mu(r.b,t),i.e=r.e-t.a),IE(n.e.a,i)}(n),n.a?function(n,t){var e,i,r,c,a;for(a=null,c=new h1(n.e.a);c.a<c.c.c.length;)if((r=Im(De(c),121)).b.a.c.length==r.g.a.c.length){for(i=r.e,a=function(n){var t,e,i,r,c;for(c=nhM,r=nhM,i=new h1(VV(n));i.a<i.c.c.length;)t=(e=Im(De(i),213)).e.e-e.d.e,e.e==n&&t<r?r=t:t<c&&(c=t);return r==nhM&&(r=-1),c==nhM&&(c=-1),new k_(Va(r),Va(c))}(r),e=r.e-Im(a.a,19).a+1;e<r.e+Im(a.b,19).a;e++)t[e]<t[i]&&(i=e);t[i]<t[r.e]&&(--t[r.e],++t[i],r.e=i)}}(n,naB(n)):naB(n),n.b=null,n.d=null,n.p=null,n.c=null,n.g=null,n.i=null,n.n=null,n.o=null,nee(t)}function na6(n,t){var e,i,r,c,a,u,o,s;for(o=new h1(t.j);o.a<o.c.c.length;)for(r=new Fm((u=Im(De(o),11)).b);EB(r.a)||EB(r.b);)t!=(c=(e=(i=Im(EB(r.a)?De(r.a):De(r.b),17)).c==u?i.d:i.c).i)&&((s=Im(ntP(i,(ns8(),nF$)),19).a)<0&&(s=0),a=c.p,0==n.b[a]&&(i.d==e?(n.a[a]-=s+1,n.a[a]<=0&&n.c[a]>0&&I2(n.f,c)):(n.c[a]-=s+1,n.c[a]<=0&&n.a[a]>0&&I2(n.e,c))))}function na8(n,t,e){var i,r,c,a,u,o,s,h,f;for(c=new Fq(t.c.length),s=new h1(t);s.a<s.c.c.length;)a=Im(De(s),10),IE(c,n.b[a.c.p][a.p]);for(function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w;for(u=new h1(t);u.a<u.c.c.length;)(c=Im(De(u),233)).e=null,c.c=0;for(o=null,a=new h1(t);a.a<a.c.c.length;)if(f=(c=Im(De(a),233)).d[0],!e||f.k==(ntY(),nAV)){for(b=Im(ntP(f,(nhu(),nxb)),15).Kc();b.Ob();)l=Im(b.Pb(),10),(!e||l.k==(ntY(),nAV))&&((c.e||(c.e=new wn),c.e).Fc(n.b[l.c.p][l.p]),++n.b[l.c.p][l.p].c);if(!e&&f.k==(ntY(),nAV)){if(o)for(h=Im(Fl(n.d,o),21).Kc();h.Ob();)for(s=Im(h.Pb(),10),r=Im(Fl(n.d,f),21).Kc();r.Ob();)i=Im(r.Pb(),10),((w=n.b[s.c.p][s.p]).e||(w.e=new wn),w.e).Fc(n.b[i.c.p][i.p]),++n.b[i.c.p][i.p].c;o=f}}}(n,c,e),f=null;f=function(n){var t,e,i,r,c,a,u,o,s,h;for(t=null,i=new h1(n);i.a<i.c.c.length;)gy(Tu((e=Im(De(i),233)).g,e.d[0]).a),e.b=null,e.e&&e.e.gc()>0&&0==e.c&&(t||(t=new wn),t.c[t.c.length]=e);if(t)for(;0!=t.c.length;){if((e=Im(Ff(t,0),233)).b&&e.b.c.length>0){for(e.b||(e.b=new wn),c=new h1(e.b);c.a<c.c.c.length;)if($x(s=Tu((r=Im(De(c),233)).g,r.d[0]).a),s==($x(h=Tu(e.g,e.d[0]).a),h)){if(Bb(n,r,0)>Bb(n,e,0))return new k_(r,e)}else if(gy(Tu(r.g,r.d[0]).a)>gy(Tu(e.g,e.d[0]).a))return new k_(r,e)}for(u=(e.e||(e.e=new wn),e.e).Kc();u.Ob();)(a=Im(u.Pb(),233)).b||(a.b=new wn),xC(0,(o=a.b).c.length),m$(o.c,0,e),a.c==o.c.length&&(t.c[t.c.length]=a)}return null}(c);)(function(n,t,e,i){var r,c,a,u,o,s;for(a=new no5(n,t,e),o=new Rn(i,0),r=!1;o.b<o.d.gc();)MK(o.b<o.d.gc()),(u=Im(o.d.Xb(o.c=o.b++),233))==t||u==e?$I(o):!r&&gy(Tu(u.g,u.d[0]).a)>gy(Tu(a.g,a.d[0]).a)?(MK(o.b>0),o.a.Xb(o.c=--o.b),SH(o,a),r=!0):u.e&&u.e.gc()>0&&(c=(u.e||(u.e=new wn),u.e).Mc(t),s=(u.e||(u.e=new wn),u.e).Mc(e),(c||s)&&((u.e||(u.e=new wn),u.e).Fc(a),++a.c));r||(i.c[i.c.length]=a)})(n,Im(f.a,233),Im(f.b,233),c);for(t.c=_f(nEX,nhA,1,0,5,1),r=new h1(c);r.a<r.c.c.length;)for(u=(i=Im(De(r),233)).d,o=0,h=u.length;o<h;++o)a=u[o],t.c[t.c.length]=a,n.a[a.c.p][a.p].a=Tu(i.g,i.d[0]).a}function na9(){na9=C,nVt=new k$("DEFAULT_MINIMUM_SIZE",0),nVi=new k$("MINIMUM_SIZE_ACCOUNTS_FOR_PADDING",1),nVn=new k$("COMPUTE_PADDING",2),nVr=new k$("OUTSIDE_NODE_LABELS_OVERHANG",3),nVc=new k$("PORTS_OVERHANG",4),nVu=new k$("UNIFORM_PORT_SPACING",5),nVa=new k$("SPACE_EFFICIENT_PORT_LABELS",6),nVe=new k$("FORCE_TABULAR_NODE_LABELS",7),nW7=new k$("ASYMMETRICAL",8)}function na7(n,t){var e,i,r,c,a,u;if(!((u=Im(ntP(t,(ns8(),nFE)),98))!=(nn2(),nWm)&&u!=nWv))for(r=new kp(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a).b,a=new h1(n.a);a.a<a.c.c.length;)(c=Im(De(a),10)).k==(ntY(),nAU)&&((e=Im(ntP(c,(nhu(),nxr)),61))==(nsR(),nWA)||e==nWJ)&&(i=gy(Ss(ntP(c,nx$))),u==nWm&&(i*=r),c.n.b=i-Im(ntP(c,nFk),8).b,z7(c,!1,!0))}function nun(n,t,e,i){var r,c,a,u,o,s,h,f,l,b;if(function(n,t,e){var i,r,c;for(i=0,r=t[e];i<r.length;i++)c=r[i],n.e[c.c.p][c.p]=i}(n,t,e),c=t[e],l=i?(nsR(),nWJ):(nsR(),nWA),b=t.length,i?0!=e:e!=b-1){for(FK(n,r=t[i?e-1:e+1],i?(qF(),n_X):(qF(),n_U)),s=0,f=c.length;s<f;++s)YN(n,a=c[s],l);for(FK(n,c,i?(qF(),n_U):(qF(),n_X)),o=0,h=(u=r).length;o<h;++o)(a=u[o]).e||YN(n,a,Vg(l))}else for(o=0,h=(u=c).length;o<h;++o)YN(n,a=u[o],l);return!1}function nut(){nut=C,nBq=Cg(new Rf,(ntI(),nAv),(nhs(),n$T)),nBz=Cg(new Rf,nAp,n$I),nBU=Ob(Cg(new Rf,nAp,n$H),nAm,n$B),nBH=Ob(Cg(Cg(new Rf,nAp,n$v),nAv,n$m),nAm,n$y),nBX=Jd(Jd(mu(Ob(Cg(new Rf,nAd,n$Y),nAm,n$J),nAv),n$Q),n$Z),nBG=Ob(new Rf,nAm,n$M),nB_=Ob(Cg(Cg(Cg(new Rf,nAg,n$A),nAv,n$L),nAv,n$N),nAm,n$$),nBB=Ob(Cg(Cg(new Rf,nAv,n$N),nAv,n$b),nAm,n$l)}function nue(n,t,e){var i,r,c,a,u;if(null==n)throw new gG(nhN).e;for(i=a=(c=n.length)>0&&(x5(0,n.length),45==n.charCodeAt(0)||(x5(0,n.length),43==n.charCodeAt(0)))?1:0;i<c;i++)if(-1==Jl((x5(i,n.length),n.charCodeAt(i))))throw new gG(nlr+n+'"').e;if(r=(u=parseInt(n,10))<t,isNaN(u)||r||u>e)throw new gG(nlr+n+'"').e;return u}function nui(n){switch(n){case 100:return nhw(nEM,!0);case 68:return nhw(nEM,!1);case 119:return nhw(nES,!0);case 87:return nhw(nES,!1);case 115:return nhw(nEP,!0);case 83:return nhw(nEP,!1);case 99:return nhw(nEI,!0);case 67:return nhw(nEI,!1);case 105:return nhw(nEC,!0);case 73:return nhw(nEC,!1);default:throw new d7(nET+n.toString(16)).e}}function nur(n,t,e,i,r){e&&(!i||(n.c-n.b&n.a.length-1)>1)&&1==t&&Im(n.a[n.b],10).k==(ntY(),nAX)?nuS(Im(n.a[n.b],10),(ZR(),nX6)):i&&(!e||(n.c-n.b&n.a.length-1)>1)&&1==t&&Im(n.a[n.c-1&n.a.length-1],10).k==(ntY(),nAX)?nuS(Im(n.a[n.c-1&n.a.length-1],10),(ZR(),nX8)):(n.c-n.b&n.a.length-1)==2?(nuS(Im(U3(n),10),(ZR(),nX6)),nuS(Im(U3(n),10),nX8)):function(n,t){var e,i,r,c,a,u,o,s,h;for(o=Mj(n.c-n.b&n.a.length-1),s=null,h=null,c=new Ln(n);c.a!=c.b;)r=Im(Wj(c),10),e=(u=Im(ntP(r,(nhu(),nxv)),11))?u.i:null,i=(a=Im(ntP(r,nxm),11))?a.i:null,(s!=e||h!=i)&&(nrj(o,t),s=e,h=i),o.c[o.c.length]=r;nrj(o,t)}(n,r),RZ(n)}function nuc(n,t,e,i){var r,c,a,u,o;return a=n.eh(),o=n.Zg(),r=null,o?t&&(naz(n,t,e).Bb&nls)==0?(i=Ye(o.Vk(),n,i),n.uh(null),r=t.fh()):o=null:(a&&(o=a.fh()),t&&(r=t.fh())),o!=r&&o&&o.Zk(n),u=n.Vg(),n.Rg(t,e),o!=r&&r&&r.Yk(n),n.Lg()&&n.Mg()&&(a&&u>=0&&u!=e&&(c=new O9(n,1,u,a,null),i?i.Ei(c):i=c),e>=0&&(c=new O9(n,1,e,u==e?a:null,t),i?i.Ei(c):i=c)),i}function nua(n){var t,e,i,r;if(null==n.b){if(i=new gz,null!=n.i&&(jT(i,n.i),i.a+=":"),(256&n.f)!=0){for((256&n.f)!=0&&null!=n.a&&(null!=(r=n.i)&&vA(nV0,r.toLowerCase())||(i.a+="//"),jT(i,n.a)),null!=n.d&&(i.a+="/",jT(i,n.d)),(16&n.f)!=0&&(i.a+="/"),t=0,e=n.j.length;t<e;t++)0!=t&&(i.a+="/"),jT(i,n.j[t]);null!=n.g&&(i.a+="?",jT(i,n.g))}else jT(i,n.a);null!=n.e&&(i.a+="#",jT(i,n.e)),n.b=i.a}return n.b}function nuu(n,t,e){var i,r,c,a,u;for(c=0;c<t;c++){for(i=0,u=c+1;u<t;u++)i=VK(VK(VF(Di(n[c],nlw),Di(n[u],nlw)),Di(e[c+u],nlw)),Di(CZ(i),nlw)),e[c+u]=CZ(i),i=OF(i,32);e[c+t]=CZ(i)}for(function(n,t,e){var i,r,c;for(r=0,i=0;r<e;r++)c=t[r],n[r]=c<<1|i,i=c>>>31;0!=i&&(n[e]=i)}(e,e,t<<1),i=0,r=0,a=0;r<t;++r,a++)i=VK(VK(VF(Di(n[r],nlw),Di(n[r],nlw)),Di(e[a],nlw)),Di(CZ(i),nlw)),e[a]=CZ(i),i=VK(i=OF(i,32),Di(e[++a],nlw)),e[a]=CZ(i),i=OF(i,32);return e}function nuo(n,t,e){var i,r,c,a,u,o,s,h;if(!RT(t)){for(o=gy(Ss(QR(e.c,(ns8(),nF0)))),(s=Im(QR(e.c,nF1),142))||(s=new dc),i=e.a,r=null,u=t.Kc();u.Ob();)a=Im(u.Pb(),11),h=0,h=r?o+r.o.b:s.d,c=Mt(vG(new wU,a),n.f),$J(n.k,a,c),nck(vH(vB(v_(vq(new wz,0),NU(nTv.Math.ceil(h))),i),c)),r=a,i=c;nck(vH(vB(v_(vq(new wz,0),NU(nTv.Math.ceil(s.a+r.o.b))),i),e.d))}}function nus(n,t){var e,i,r,c,a;if(n.Ab){if(n.Ab){if((a=n.Ab.i)>0){if(r=Im(n.Ab.g,1934),null==t){for(c=0;c<a;++c)if(null==(e=r[c]).d)return e}else for(c=0;c<a;++c)if(Pv(t,(e=r[c]).d))return e}}else if(null==t){for(i=new Td(n.Ab);i.e!=i.i.gc();)if(null==(e=Im(J1(i),590)).d)return e}else for(i=new Td(n.Ab);i.e!=i.i.gc();)if(Pv(t,(e=Im(J1(i),590)).d))return e}return null}function nuh(n,t,e){var i,r,c,a,u;switch(u=null,t.g){case 1:for(r=new h1(n.j);r.a<r.c.c.length;)if(gm(So(ntP(i=Im(De(r),11),(nhu(),nxs)))))return i;UU(u=new nt9,(nhu(),nxs),(TX(),!0));break;case 2:for(a=new h1(n.j);a.a<a.c.c.length;)if(gm(So(ntP(c=Im(De(a),11),(nhu(),nxC)))))return c;UU(u=new nt9,(nhu(),nxC),(TX(),!0))}return u&&(xM(u,n),ne9(u,e),function(n,t,e){switch(e.g){case 1:n.a=t.a/2,n.b=0;break;case 2:n.a=t.a,n.b=t.b/2;break;case 3:n.a=t.a/2,n.b=t.b;break;case 4:n.a=0,n.b=t.b/2}}(u.n,n.o,e)),u}function nuf(n,t){var e,i,r,c,a,u;for(u=-1,a=new vK,i=new Fm(n.b);EB(i.a)||EB(i.b);){for(e=Im(EB(i.a)?De(i.a):De(i.b),17),u=nTv.Math.max(u,gy(Ss(ntP(e,(ns8(),nKR))))),e.c==n?vF(Lb(new CL(null,new x6(e.b,16)),new tZ),new fQ(a)):vF(Lb(new CL(null,new x6(e.b,16)),new t1),new fJ(a)),c=Jz(a,0);c.b!=c.d.c;)MH(r=Im(RP(c),70),(nhu(),nxn))||UU(r,nxn,e);Uf(t,a),Lq(a)}return u}function nul(n,t,e,i,r){var c,a,u,o,s;u=r?i.b:i.a,!v$(n.a,i)&&(s=u>e.s&&u<e.c,o=!1,0!=e.e.b&&0!=e.j.b&&(o|=nTv.Math.abs(u-gy(Ss(MI(e.e))))<nww&&nTv.Math.abs(u-gy(Ss(MI(e.j))))<nww,o|=nTv.Math.abs(u-gy(Ss(MC(e.e))))<nww&&nTv.Math.abs(u-gy(Ss(MC(e.j))))<nww),(s||o)&&((a=Im(ntP(t,(ns8(),nKV)),74))||(a=new dd,UU(t,nKV,a)),KL(a,c=new Ee(i),a.c.b,a.c),Av(n.a,c)))}function nub(n){var t,e;mc(n,new nte(((((t=new as).c=nmv,t).d="ELK Box",t).b="Algorithm for packing of unconnected boxes, i.e. graphs without edges.",e=new aC,t.e=e,t))),DV(n,nmv,nb9,nz0),DV(n,nmv,nwy,15),DV(n,nmv,nwm,Va(0)),DV(n,nmv,nvX,JZ(nzV)),DV(n,nmv,nwC,JZ(nzJ)),DV(n,nmv,nwI,JZ(nzZ)),DV(n,nmv,nb8,nmp),DV(n,nmv,nwT,JZ(nzQ)),DV(n,nmv,nwq,JZ(nzY)),DV(n,nmv,nmm,JZ(nzX)),DV(n,nmv,npL,JZ(nzW))}function nuw(n,t){var e,i,r,c,a,u,o,s,h;if(a=(r=n.i).o.a,c=r.o.b,a<=0&&c<=0)return nsR(),nWQ;switch(s=n.n.a,h=n.n.b,u=n.o.a,e=n.o.b,t.g){case 2:case 1:if(s<0)return nsR(),nWJ;if(s+u>a)return nsR(),nWA;break;case 4:case 3:if(h<0)return nsR(),nW$;if(h+e>c)return nsR(),nWV}return(o=(s+u/2)/a)+(i=(h+e/2)/c)<=1&&o-i<=0?(nsR(),nWJ):o+i>=1&&o-i>=0?(nsR(),nWA):i<.5?(nsR(),nW$):(nsR(),nWV)}function nud(n,t,e,i,r,c,a){var u,o,s,h,f;for(f=new Et,o=t.Kc();o.Ob();)for(h=new h1(Im(o.Pb(),839).wf());h.a<h.c.c.length;)jf((s=Im(De(h),181)).We((nha(),nUd)))===jf((HH(),nXx))&&(naR(f,s,!1,i,r,c,a),neM(n,f));for(u=e.Kc();u.Ob();)for(h=new h1(Im(u.Pb(),839).wf());h.a<h.c.c.length;)jf((s=Im(De(h),181)).We((nha(),nUd)))===jf((HH(),nXN))&&(naR(f,s,!0,i,r,c,a),neM(n,f))}function nug(n,t){var e,i,r,c;return(i=nTv.Math.min(nTv.Math.abs(n.c-(t.c+t.b)),nTv.Math.abs(n.c+n.b-t.c)),c=nTv.Math.min(nTv.Math.abs(n.d-(t.d+t.a)),nTv.Math.abs(n.d+n.a-t.d)),(e=nTv.Math.abs(n.c+n.b/2-(t.c+t.b/2)))>n.b/2+t.b/2||(r=nTv.Math.abs(n.d+n.a/2-(t.d+t.a/2)))>n.a/2+t.a/2)?1:0==e&&0==r?0:0==e?c/r+1:0==r?i/e+1:nTv.Math.min(i/e,c/r)+1}function nup(n,t){var e,i,r,c,a,u;return(r=qD(n))!=(u=qD(t))?r<u?-1:1:n.e==t.e&&n.a<54&&t.a<54?n.f<t.f?-1:n.f>t.f?1:0:(i=n.e-t.e,(e=(n.d>0?n.d:nTv.Math.floor((n.a-1)*nlb)+1)-(t.d>0?t.d:nTv.Math.floor((t.a-1)*nlb)+1))>i+1)?r:e<i-1?-r:(n.c||(n.c=Wa(n.f)),c=n.c,t.c||(t.c=Wa(t.f)),a=t.c,i<0?c=B8(c,nu6(-i)):i>0&&(a=B8(a,nu6(i))),Jf(c,a))}function nuv(n,t){var e,i,r,c;if(XQ(),c=Im(ntP(n.i,(ns8(),nFE)),98),0!=n.j.g-t.j.g||!(c==(nn2(),nWp)||c==nWm||c==nWv))return 0;if(c==(nn2(),nWp)&&(e=Im(ntP(n,nFT),19),i=Im(ntP(t,nFT),19),e&&i&&0!=(r=e.a-i.a)))return r;switch(n.j.g){case 1:return Vv(n.n.a,t.n.a);case 2:return Vv(n.n.b,t.n.b);case 3:return Vv(t.n.a,n.n.a);case 4:return Vv(t.n.b,n.n.b);default:throw new gg(nw6).e}}function num(n){var t,e,i,r,c;for(IE(c=new Fq((n.a||(n.a=new Tg(nCI,n,5)),n.a).i+2),new kp(n.j,n.k)),vF(new CL(null,(n.a||(n.a=new Tg(nCI,n,5)),new x6(n.a,16))),new bc(c)),IE(c,new kp(n.b,n.c)),t=1;t<c.c.length-1;)x4(t-1,c.c.length),e=Im(c.c[t-1],8),x4(t,c.c.length),i=Im(c.c[t],8),x4(t+1,c.c.length),r=Im(c.c[t+1],8),e.a==i.a&&i.a==r.a||e.b==i.b&&i.b==r.b?Ff(c,t):++t;return c}function nuy(n,t){var e,i,r,c,a,u,o,s,h,f;for(e=Mn(((s=new wJ).a.g=t,h=new Nf(t.e),s.a.d=h,f=nLh,s.a.j=f,s),n.a),0==t.j.c.length||_J(Im(CA(t.j,0),57).a,e),o=new we,$J(n.e,e,o),a=new w_,u=new w_,c=new h1(t.k);c.a<c.c.c.length;)Av(a,(r=Im(De(c),17)).c),Av(u,r.d);(i=a.a.gc()-u.a.gc())<0?(UL(o,!0,(W2(),nXI)),UL(o,!1,nXC)):i>0&&(UL(o,!1,(W2(),nXI)),UL(o,!0,nXC)),HR(t.g,new yc(n,e)),$J(n.g,t,e)}function nuk(){var n;for(n=2,nuk=C,nT4=Um(xg(nYL,1),nfH,25,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]),nT5=_f(nYL,nfH,25,37,15,1),nT6=Um(xg(nYL,1),nfH,25,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]),nT8=_f(nYx,nlo,25,37,14,1);n<=36;n++)nT5[n]=NU(nTv.Math.pow(n,nT4[n])),nT8[n]=nnm(nh0,nT5[n])}function nuj(n,t){var e,i,r,c;for(r=t.d?n.a.c==(NR(),nBL)?VG(t.b):Vz(t.b):n.a.c==(NR(),nB$)?VG(t.b):Vz(t.b),c=!1,i=new OM(TD(r.a.Kc(),new s));nrc(i);)if(e=Im(K4(i),17),!(!gm(n.a.f[n.a.g[t.b.p].p])&&!KR(e)&&e.c.i.c==e.d.i.c||gm(n.a.n[n.a.g[t.b.p].p])||gm(n.a.n[n.a.g[t.b.p].p]))&&(c=!0,v$(n.b,n.a.g[function(n,t){if(n.c.i==t)return n.d.i;if(n.d.i==t)return n.c.i;throw new gd("Node "+t+" is neither source nor target of edge "+n).e}(e,t.b).p])))return t.c=!0,t.a=e,t;return t.c=c,t.a=null,t}function nuE(n,t,e){var i,r,c,a,u,o,s;if(0==(i=e.gc()))return!1;if(n.ej()){if(o=n.fj(),Qp(n,t,e),a=1==i?n.Zi(3,null,e.Kc().Pb(),t,o):n.Zi(5,null,e,t,o),n.bj()){for(u=i<100?null:new pc(i),c=t+i,r=t;r<c;++r)s=n.Oi(r),u=n.cj(s,u);u?(u.Ei(a),u.Fi()):n.$i(a)}else n.$i(a)}else if(Qp(n,t,e),n.bj()){for(u=i<100?null:new pc(i),c=t+i,r=t;r<c;++r)u=n.cj(n.Oi(r),u);u&&u.Fi()}return!0}function nuT(n,t,e){var i,r,c,a;return n.ej()?(r=null,c=n.fj(),i=n.Zi(1,a=n.Ui(t,n.oi(t,e)),e,t,c),n.bj()&&!(n.ni()&&a?WY(a,e):jf(a)===jf(e))?(a&&(r=n.dj(a,r)),(r=n.cj(e,r))?(r.Ei(i),r.Fi()):n.$i(i)):r?(r.Ei(i),r.Fi()):n.$i(i)):(a=n.Ui(t,n.oi(t,e)),n.bj()&&!(n.ni()&&a?WY(a,e):jf(a)===jf(e))&&(r=null,a&&(r=n.dj(a,null)),(r=n.cj(e,r))&&r.Fi())),a}function nuM(n,t){var e,i,r,c,a,u,o,s;if(n.e=t,n.f=Im(ntP(t,(GA(),nOZ)),230),function(n){var t,e,i;for(i=n.e.c.length,n.a=Cv(nYL,[nhJ,nfH],[48,25],15,[i,i],2),e=new h1(n.c);e.a<e.c.c.length;)t=Im(De(e),282),n.a[t.c.b][t.d.b]+=Im(ntP(t,(nab(),nOH)),19).a}(t),n.d=nTv.Math.max(16*t.e.c.length+t.c.c.length,256),!gm(So(ntP(t,(nab(),nOA)))))for(s=n.e.e.c.length,u=new h1(t.e);u.a<u.c.c.length;)(o=Im(De(u),144).d).a=On(n.f)*s,o.b=On(n.f)*s;for(e=t.b,c=new h1(t.c);c.a<c.c.c.length;)if(r=Im(De(c),282),(i=Im(ntP(r,nOz),19).a)>0){for(a=0;a<i;a++)IE(e,new Az(r));ne6(r)}}function nuS(n,t){var e,i,r,c,a;if(n.k==(ntY(),nAX)&&(e=pN(Lb(Im(ntP(n,(nhu(),nxx)),15).Oc(),new fe(new eD))).sd((vQ(),nM5))?t:(ZR(),nX9),UU(n,nxd,e),e!=(ZR(),nX8)))for(i=Im(ntP(n,nxE),17),a=gy(Ss(ntP(i,(ns8(),nKR)))),c=0,e==nX6?c=n.o.b-nTv.Math.ceil(a/2):e==nX9&&(n.o.b-=gy(Ss(ntP($L(n),nFq))),c=(n.o.b-nTv.Math.ceil(a))/2),r=new h1(n.j);r.a<r.c.c.length;)Im(De(r),11).n.b=c}function nuP(){nuP=C,mg(),nhv=new sn,Um(xg(nQy,2),nhJ,368,0,[Um(xg(nQy,1),nEK,592,0,[new p1(nEu)])]),Um(xg(nQy,2),nhJ,368,0,[Um(xg(nQy,1),nEK,592,0,[new p1(nEo)])]),Um(xg(nQy,2),nhJ,368,0,[Um(xg(nQy,1),nEK,592,0,[new p1(nEs)]),Um(xg(nQy,1),nEK,592,0,[new p1(nEo)])]),new Ep("-1"),Um(xg(nQy,2),nhJ,368,0,[Um(xg(nQy,1),nEK,592,0,[new p1("\\c+")])]),new Ep("0"),new Ep("0"),new Ep("1"),new Ep("0"),new Ep(nEm)}function nuI(n){var t,e;return n.c&&n.c.kh()&&(e=Im(n.c,49),n.c=Im(WO(n,e),138),n.c!=e&&((4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,9,2,e,n.c)),Ti(n.Cb,399)?n.Db>>16==-15&&n.Cb.nh()&&Bk(new _R(n.Cb,9,13,e,n.c,Yl(BO(Im(n.Cb,59)),n))):Ti(n.Cb,88)&&n.Db>>16==-23&&n.Cb.nh()&&(Ti(t=n.c,88)||(nhl(),t=nQG),Ti(e,88)||(nhl(),e=nQG),Bk(new _R(n.Cb,9,10,e,t,Yl(RJ(Im(n.Cb,26)),n)))))),n.c}function nuC(n,t){var e,i,r;i=0!=nr_(n.d,1),(gm(So(ntP(t.j,(nhu(),nxa))))||gm(So(ntP(t.j,nxR))))&&jf(ntP(t.j,(ns8(),nKh)))!==jf((U1(),n__))?i=gm(So(ntP(t.j,nxa))):t.c.Tf(t.e,i),ncv(n,t,i,!0),gm(So(ntP(t.j,nxR)))&&UU(t.j,nxR,(TX(),!1)),gm(So(ntP(t.j,nxa)))&&(UU(t.j,nxa,(TX(),!1)),UU(t.j,nxR,!0)),e=neB(n,t);do{if(GR(n),0==e)return 0;i=!i,r=e,ncv(n,t,i,!1),e=neB(n,t)}while(r>e)return r}function nuO(n,t,e,i){var r,c,a,u,o,s,h,f;if(ncD(n.e,t)){for(s=0,f=ncT(n.e.Tg(),t),c=Im(n.g,119),h=null,o=-1,u=-1,r=0;s<n.i;++s)a=c[s],f.rl(a.ak())&&(r==e&&(o=s),r==i&&(u=s,h=a.dd()),++r);if(-1==o)throw new gu(ny2+e+ny3+r).e;if(-1==u)throw new gu(ny4+i+ny3+r).e;return Vm(n,o,u),Ea(n.e)&&wR(n,NE(n,7,t,Va(i),h,e,!0)),h}throw new gd("The feature must be many-valued to support move").e}function nuA(n,t,e,i){var r,c,a,u,o;switch(o=new Ee(t.n),o.a+=t.o.a/2,o.b+=t.o.b/2,u=gy(Ss(ntP(t,(ns8(),nFj)))),c=n.f,a=n.d,r=n.c,Im(ntP(t,(nhu(),nxr)),61).g){case 1:o.a+=a.b+r.a-e/2,o.b=-i-u,t.n.b=-(a.d+u+r.b);break;case 2:o.a=c.a+a.b+a.c+u,o.b+=a.d+r.b-i/2,t.n.a=c.a+a.c+u-r.a;break;case 3:o.a+=a.b+r.a-e/2,o.b=c.b+a.d+a.a+u,t.n.b=c.b+a.a+u-r.b;break;case 4:o.a=-e-u,o.b+=a.d+r.b-i/2,t.n.a=-(a.b+u+r.a)}return o}function nu$(n){var t,e,i,r,c,a;return z5(i=new qQ,n),jf(ntP(i,(ns8(),nKE)))===jf((W2(),nXO))&&UU(i,nKE,VA(i)),null==ntP(i,(FI(),nzR))&&(a=Im(function n(t){var e,i,r;if(r=t,t)for(e=0,i=t.Ug();i;i=i.Ug()){if(++e>nll)return n(i);if(r=i,i==t)throw new gg("There is a cycle in the containment hierarchy of "+t).e}return r}(n),160),UU(i,nzR,jj(a.We(nzR)))),UU(i,(nhu(),nxE),n),UU(i,nxu,new PR(t=Im(pf(nIs),9),Im(Sz(t,t.length),9),0)),r=function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y;for(m=f=new nsI(n),y=!(t==(W2(),nXA)||t==nXP),nal(m,!0),HR(m.e.wf(),new PZ(m,!0,y)),h=f.a,l=new da,HB(),r=Um(xg(nSf,1),nfh,232,0,[nSW,nSV,nSQ]),a=0,o=r.length;a<o;++a)e=r[a],(s=Ta(h,nSW,e))&&(l.d=nTv.Math.max(l.d,s.Re()));for(i=Um(xg(nSf,1),nfh,232,0,[nSW,nSV,nSQ]),c=0,u=i.length;c<u;++c)e=i[c],(s=Ta(h,nSQ,e))&&(l.a=nTv.Math.max(l.a,s.Re()));for(w=Um(xg(nSf,1),nfh,232,0,[nSW,nSV,nSQ]),g=0,v=w.length;g<v;++g)(s=Ta(h,w[g],nSW))&&(l.b=nTv.Math.max(l.b,s.Se()));for(b=Um(xg(nSf,1),nfh,232,0,[nSW,nSV,nSQ]),d=0,p=b.length;d<p;++d)(s=Ta(h,b[d],nSQ))&&(l.c=nTv.Math.max(l.c,s.Se()));return l.d>0&&(l.d+=h.n.d,l.d+=h.d),l.a>0&&(l.a+=h.n.a,l.a+=h.d),l.b>0&&(l.b+=h.n.b,l.b+=h.d),l.c>0&&(l.c+=h.n.c,l.c+=h.d),l}((xt(n)&&(mo(),new gl(xt(n))),mo(),new Mw(xt(n)?new gl(xt(n)):null,n)),nXC),c=Im(ntP(i,nFl),116),xc(e=i.d,c),xc(e,r),i}function nuL(n,t){var e,i,r,c;return i=nTv.Math.abs(OJ(n.b).a-OJ(t.b).a),c=nTv.Math.abs(OJ(n.b).b-OJ(t.b).b),e=1,r=1,i>n.b.b/2+t.b.b/2&&(e=1-nTv.Math.min(nTv.Math.abs(n.b.c-(t.b.c+t.b.b)),nTv.Math.abs(n.b.c+n.b.b-t.b.c))/i),c>n.b.a/2+t.b.a/2&&(r=1-nTv.Math.min(nTv.Math.abs(n.b.d-(t.b.d+t.b.a)),nTv.Math.abs(n.b.d+n.b.a-t.b.d))/c),(1-nTv.Math.min(e,r))*nTv.Math.sqrt(i*i+c*c)}function nuN(n,t){var e,i;if(null!=t){if(i=Zb(n)){if((1&i.i)==0)return mv(),!(e=Im($a(nVZ,i),55))||e.wj(t);if(i==nYN)return jl(t);if(i==nYL)return Ti(t,19);if(i==nYK)return Ti(t,155);if(i==nYD)return Ti(t,217);else if(i==nY$)return Ti(t,172);else if(i==nYR)return jb(t);else if(i==nYF)return Ti(t,184);else if(i==nYx)return Ti(t,162)}else if(Ti(t,56))return n.uk(Im(t,56))}return!1}function nux(){var n,t,e,i,r,c,a,u,o;for(t=0,nux=C,nYn=_f(nYD,nyw,25,255,15,1),nYt=_f(nY$,nfS,25,64,15,1);t<255;t++)nYn[t]=-1;for(e=90;e>=65;e--)nYn[e]=e-65<<24>>24;for(i=122;i>=97;i--)nYn[i]=i-97+26<<24>>24;for(r=57;r>=48;r--)nYn[r]=r-48+52<<24>>24;for(c=0,nYn[43]=62,nYn[47]=63;c<=25;c++)nYt[c]=65+c&nfI;for(a=26,o=0;a<=51;++a,o++)nYt[a]=97+o&nfI;for(n=52,u=0;n<=61;++n,u++)nYt[n]=48+u&nfI;nYt[62]=43,nYt[63]=47}function nuD(n,t){var e,i,r,c,a,u,o;if(!N8(n))throw new gg(nmU).e;if(c=(i=N8(n)).g,r=i.f,c<=0&&r<=0)return nsR(),nWQ;switch(u=n.i,o=n.j,t.g){case 2:case 1:if(u<0)return nsR(),nWJ;if(u+n.g>c)return nsR(),nWA;break;case 4:case 3:if(o<0)return nsR(),nW$;if(o+n.f>r)return nsR(),nWV}return(a=(u+n.g/2)/c)+(e=(o+n.f/2)/r)<=1&&a-e<=0?(nsR(),nWJ):a+e>=1&&a-e>=0?(nsR(),nWA):e<.5?(nsR(),nW$):(nsR(),nWV)}function nuR(n){var t,e,i,r,c;if(nhh(),4!=n.e&&5!=n.e)throw new gd("Token#complementRanges(): must be RANGE: "+n.e).e;for(nr$(n),noA(n),i=n.b.length+2,0==n.b[0]&&(i-=2),(e=n.b[n.b.length-1])==nEE&&(i-=2),++nYO,(r=new Dv(4)).b=_f(nYL,nfH,25,i,15,1),c=0,n.b[0]>0&&(r.b[c++]=0,r.b[c++]=n.b[0]-1),t=1;t<n.b.length-2;t+=2)r.b[c++]=n.b[t]+1,r.b[c++]=n.b[t+1]-1;return e!=nEE&&(r.b[c++]=e+1,r.b[c]=nEE),r.a=!0,r}function nuK(n,t,e){var i,r,c,a,u,o,s,h;if(0==(i=e.gc()))return!1;if(n.ej()){if(s=n.fj(),ntf(n,t,e),a=1==i?n.Zi(3,null,e.Kc().Pb(),t,s):n.Zi(5,null,e,t,s),n.bj()){for(u=i<100?null:new pc(i),c=t+i,r=t;r<c;++r)h=n.g[r],u=n.cj(h,u),u=n.jj(h,u);u?(u.Ei(a),u.Fi()):n.$i(a)}else n.$i(a)}else if(ntf(n,t,e),n.bj()){for(u=i<100?null:new pc(i),c=t+i,r=t;r<c;++r)o=n.g[r],u=n.cj(o,u);u&&u.Fi()}return!0}function nuF(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g;for(a=new h1(n.k);a.a<a.c.c.length;)r=Im(De(a),129),(!i||r.c==(FO(),nB1))&&(o=r.b).g<0&&r.d>0&&(s=o,h=o.d-r.d,s.d=h,r.c==(FO(),nB1)&&(f=o,l=o.a-r.d,f.a=l),o.d<=0&&o.i>0&&KL(t,o,t.c.b,t.c));for(c=new h1(n.f);c.a<c.c.c.length;)r=Im(De(c),129),(!i||r.c==(FO(),nB1))&&(u=r.a).g<0&&r.d>0&&(b=u,w=u.i-r.d,b.i=w,r.c==(FO(),nB1)&&(d=u,g=u.b-r.d,d.b=g),u.i<=0&&u.d>0&&KL(e,u,e.c.b,e.c))}function nu_(n){var t,e,i,r,c,a,u,o,s,h,f,l,b;if(e=n.i,t=n.n,0==n.b)for(b=e.c+t.b,l=e.b-t.b-t.c,a=n.a,o=0,h=a.length;o<h;++o)Of(r=a[o],b,l);else i=Yz(n,!1),Of(n.a[0],e.c+t.b,i[0]),Of(n.a[2],e.c+e.b-t.c-i[2],i[2]),f=e.b-t.b-t.c,i[0]>0&&(f-=i[0]+n.c,i[0]+=n.c),i[2]>0&&(f-=i[2]+n.c),i[1]=nTv.Math.max(i[1],f),Of(n.a[1],e.c+t.b+i[0]-(i[1]-f)/2,i[1]);for(c=n.a,u=0,s=c.length;u<s;++u)Ti(r=c[u],326)&&Im(r,326).Te()}function nuB(n,t){var e,i,r;for(r=Im(CA(n.n,n.n.c.length-1),211).d,n.p=nTv.Math.min(n.p,t.g),n.r=nTv.Math.max(n.r,r),n.g=nTv.Math.max(n.g,t.g+(1==n.b.c.length?0:n.i)),n.o=nTv.Math.min(n.o,t.f),n.e+=t.f+(1==n.b.c.length?0:n.i),n.f=nTv.Math.max(n.f,t.f),i=n.n.c.length>0?(n.n.c.length-1)*n.i:0,e=new h1(n.n);e.a<e.c.c.length;)i+=Im(De(e),211).a;n.d=i,n.a=n.e/n.b.c.length-n.i*((n.b.c.length-1)/n.b.c.length),ZE(n.j)}function nuH(n,t){var e,i,r,c,a,u,o,s,h;if(null==(s=So(ntP(t,(nab(),nOU))))||($x(s),s)){for(h=_f(nYN,nbf,25,t.e.c.length,16,1),a=function(n){var t,e,i,r;for(i=_f(nEZ,nwe,15,n.e.c.length,0,1),r=new h1(n.e);r.a<r.c.c.length;)i[Im(De(r),144).b]=new vK;for(e=new h1(n.c);e.a<e.c.c.length;)i[(t=Im(De(e),282)).c.b].Fc(t),i[t.d.b].Fc(t);return i}(t),r=new vK,o=new h1(t.e);o.a<o.c.c.length;)(e=function n(t,e,i,r,c,a){var u,o,s;if(!c[e.b]){for(c[e.b]=!0,(u=r)||(u=new Fy),IE(u.e,e),s=a[e.b].Kc();s.Ob();)(o=Im(s.Pb(),282)).d!=i&&o.c!=i&&(o.c!=e&&n(t,o.c,e,u,c,a),o.d!=e&&n(t,o.d,e,u,c,a),IE(u.c,o),Uf(u.d,o.b));return u}return null}(n,Im(De(o),144),null,null,h,a))&&(z5(e,t),KL(r,e,r.c.b,r.c));if(r.b>1)for(i=Jz(r,0);i.b!=i.d.c;)for(e=Im(RP(i),231),c=0,u=new h1(e.e);u.a<u.c.c.length;)Im(De(u),144).b=c++;return r}return Fs(Um(xg(nPD,1),nwi,231,0,[t]))}function nuq(n){var t,e,i,r,c,a,u;if(!n.g){if(c=new uu,null==(t=nQ2).a.zc(n,t)){for(e=new Td(Nw(n));e.e!=e.i.gc();)AJ(c,nuq(Im(J1(e),26)));t.a.Bc(n),t.a.gc()}for(i=c.i,n.s||(n.s=new An(nQo,n,21,17)),r=new Td(n.s);r.e!=r.i.gc();++i)a=Im(J1(r),449),u=i,a.n=u;AJ(c,(n.s||(n.s=new An(nQo,n,21,17)),n.s)),X5(c),n.g=new UQ(n,c),n.i=Im(c.g,247),null==n.i&&(n.i=nQ4),n.p=null,KJ(n).b&=-5}return n.g}function nuG(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w;if(i=n.i,e=n.n,0==n.b)t=YG(n,!1),Ol(n.a[0],i.d+e.d,t[0]),Ol(n.a[2],i.d+i.a-e.a-t[2],t[2]),f=l=i.a-e.d-e.a,t[0]>0&&(t[0]+=n.c,f-=t[0]),t[2]>0&&(f-=t[2]+n.c),t[1]=nTv.Math.max(t[1],f),Ol(n.a[1],i.d+e.d+t[0]-(t[1]-f)/2,t[1]);else for(w=i.d+e.d,b=i.a-e.d-e.a,a=n.a,o=0,h=a.length;o<h;++o)Ol(r=a[o],w,b);for(c=n.a,u=0,s=c.length;u<s;++u)Ti(r=c[u],326)&&Im(r,326).Ue()}function nuz(n,t,e,i){var r,c,a,u,o;if(o=ncT(n.e.Tg(),t),r=Im(n.g,119),mp(),Im(t,66).Oj()){for(a=0;a<n.i;++a)if(c=r[a],o.rl(c.ak())&&WY(c,e))return!0}else if(null!=e){for(u=0;u<n.i;++u)if(c=r[u],o.rl(c.ak())&&WY(e,c.dd()))return!0;if(i){for(a=0;a<n.i;++a)if(c=r[a],o.rl(c.ak())&&jf(e)===jf(Sn(n,Im(c.dd(),56))))return!0}}else for(a=0;a<n.i&&(c=r[a],!o.rl(c.ak())||null!=c.dd());++a);return!1}function nuU(n,t,e,i){var r,c,a,u,o,s;if(s=ncT(n.e.Tg(),t),a=Im(n.g,119),ncD(n.e,t)){if(t.hi()&&(c=nu5(n,t,i,Ti(t,99)&&(Im(t,18).Bb&nls)!=0))>=0&&c!=e)throw new gd(ny0).e;for(o=0,r=0;o<n.i;++o)if(u=a[o],s.rl(u.ak())){if(r==e)return Im(Yb(n,o,(mp(),Im(t,66).Oj()?Im(i,72):RU(t,i))),72);++r}throw new gu(nkB+e+ny3+r).e}for(o=0;o<n.i;++o)if(u=a[o],s.rl(u.ak()))return mp(),Im(t,66).Oj()?u:u.dd();return null}function nuX(n,t){var e,i,r,c,a,u;if(n.b<2)throw new gd("The vector chain must contain at least a source and a target point.").e;for(MK(0!=n.b),Eb(t,(i=Im(n.a.a.c,8)).a,i.b),u=new Mv((t.a||(t.a=new Tg(nCI,t,5)),t.a)),c=Jz(n,1);c.a<n.b-1;)a=Im(RP(c),8),u.e!=u.i.gc()?e=Im(J1(u),469):(pw(),Qq(u,e=new aY)),Es(e,a.a,a.b);for(;u.e!=u.i.gc();)J1(u),nnA(u);MK(0!=n.b),El(t,(r=Im(n.c.b.c,8)).a,r.b)}function nuW(n,t){var e,i,r,c,a,u,o,s;for(e=0,i=new h1((x4(0,n.c.length),Im(n.c[0],101)).g.b.j);i.a<i.c.c.length;)Im(De(i),11).p=e++;for(t==(nsR(),nW$)?E_(n,new rw):E_(n,new rd),a=0,s=n.c.length-1;a<s;)x4(a,n.c.length),c=Im(n.c[a],101),x4(s,n.c.length),o=Im(n.c[s],101),r=t==nW$?c.c:c.a,u=t==nW$?o.a:o.c,Ah(c,t,(Uk(),nLb),r),Ah(o,t,nLl,u),++a,--s;a==s&&Ah((x4(a,n.c.length),Im(n.c[a],101)),t,(Uk(),nLf),null)}function nuV(n,t,e){var i,r,c,a,u,o;this.a=n,this.b=t,this.c=e,this.e=Fs(Um(xg(nSn,1),nhA,168,0,[new mB(n,t),new mB(t,e),new mB(e,n)])),this.f=Fs(Um(xg(nCa,1),nhJ,8,0,[n,t,e])),this.d=(i=S7(E1(this.b),this.a),r=S7(E1(this.c),this.a),c=S7(E1(this.c),this.b),a=i.a*(this.a.a+this.b.a)+i.b*(this.a.b+this.b.b),u=r.a*(this.a.a+this.c.a)+r.b*(this.a.b+this.c.b),o=2*(i.a*c.b-i.b*c.a),new kp((r.b*a-i.b*u)/o,(i.a*u-r.a*a)/o))}function nuQ(n,t){var e,i,r,c,a,u;for(c=n.c,a=n.d,xE(n,null),xj(n,null),t&&gm(So(ntP(a,(nhu(),nxs))))?xE(n,nuh(a.i,(qF(),n_X),(nsR(),nWA))):xE(n,a),t&&gm(So(ntP(c,(nhu(),nxC))))?xj(n,nuh(c.i,(qF(),n_U),(nsR(),nWJ))):xj(n,c),i=new h1(n.b);i.a<i.c.c.length;)e=Im(De(i),70),(r=Im(ntP(e,(ns8(),nKI)),272))==(HH(),nXx)?UU(e,nKI,nXN):r==nXN&&UU(e,nKI,nXx);u=gm(So(ntP(n,(nhu(),nxD)))),UU(n,nxD,(TX(),!u)),n.a=Xw(n.a)}function nuJ(n){var t,e,i;if(Ec(Im(ntP(n,(ns8(),nFE)),98)))for(e=new h1(n.j);e.a<e.c.c.length;)(t=Im(De(e),11)).j==(nsR(),nWQ)&&((i=Im(ntP(t,(nhu(),nxA)),10))?ne9(t,Im(ntP(i,nxr),61)):t.e.c.length-t.g.c.length<0?ne9(t,nWA):ne9(t,nWJ));else{for(e=new h1(n.j);e.a<e.c.c.length;)t=Im(De(e),11),(i=Im(ntP(t,(nhu(),nxA)),10))?ne9(t,Im(ntP(i,nxr),61)):t.e.c.length-t.g.c.length<0?ne9(t,(nsR(),nWA)):ne9(t,(nsR(),nWJ));UU(n,nFE,(nn2(),nWy))}}function nuY(n){var t,e;switch(n){case 91:case 93:case 45:case 94:case 44:case 92:e="\\"+String.fromCharCode(n&nfI);break;case 12:e="\\f";break;case 10:e="\\n";break;case 13:e="\\r";break;case 9:e="\\t";break;case 27:e="\\e";break;default:e=n<32?"\\x"+MT(t="0"+(n>>>0).toString(16),t.length-2,t.length):n>=nls?"\\v"+MT(t="0"+(n>>>0).toString(16),t.length-6,t.length):""+String.fromCharCode(n&nfI)}return e}function nuZ(n,t){var e,i,r,c,a,u,o,s,h,f;if(a=n.e,0==(o=t.e))return n;if(0==a)return 0==t.e?t:new As(-t.e,t.d,t.a);if((c=n.d)+(u=t.d)==2)return e=Di(n.a[0],nlw),i=Di(t.a[0],nlw),a<0&&(e=Bl(e)),o<0&&(i=Bl(i)),JK(VR(e,i));if(-1==(r=c!=u?c>u?1:-1:XN(n.a,t.a,c)))f=-o,h=a==o?Fp(t.a,u,n.a,c):_h(t.a,u,n.a,c);else if(f=a,a==o){if(0==r)return nc4(),nMb;h=Fp(n.a,c,t.a,u)}else h=_h(n.a,c,t.a,u);return DF(s=new As(f,h.length,h)),s}function nu1(n){var t,e,i,r,c,a;for(this.e=new wn,this.a=new wn,e=n.b-1;e<3;e++)Mq(n,0,Im(J7(n,0),8));if(n.b<4)throw new gd("At (least dimension + 1) control points are necessary!").e;for(this.b=3,this.d=!0,this.c=!1,function(n,t){var e,i,r,c;if(t<2*n.b)throw new gd("The knot vector must have at least two time the dimension elements.").e;for(i=0,n.f=1;i<n.b;i++)IE(n.e,0);for(r=1,c=t+1-2*n.b;r<c;r++)IE(n.e,r/c);if(n.d)for(e=0;e<n.b;e++)IE(n.e,1)}(this,n.b+this.b-1),a=new wn,c=new h1(this.e),t=0;t<this.b-1;t++)IE(a,Ss(De(c)));for(r=Jz(n,0);r.b!=r.d.c;)i=Im(RP(r),8),IE(a,Ss(De(c))),IE(this.a,new Nx(i,a)),x4(0,a.c.length),a.c.splice(0,1)}function nu0(n,t){var e,i,r,c,a,u,o,h;for(r=new h1(n.b);r.a<r.c.c.length;)for(a=new h1(Im(De(r),29).a);a.a<a.c.c.length;)for((c=Im(De(a),10)).k==(ntY(),nAX)&&(o=Im(K4(new OM(TD(VG(c).a.Kc(),new s))),17),h=Im(K4(new OM(TD(Vz(c).a.Kc(),new s))),17),nuS(c,u=gm(So(ntP(o,(nhu(),nxD))))&&gm(So(ntP(h,nxD)))?UN(t):t)),i=new OM(TD(Vz(c).a.Kc(),new s));nrc(i);)u=gm(So(ntP(e=Im(K4(i),17),(nhu(),nxD))))?UN(t):t,Ul(e,u)}function nu2(n,t,e){var i,r,c,a;return n.ej()?(r=null,c=n.fj(),i=n.Zi(1,a=Bq(n,t,e),e,t,c),n.bj()&&!(n.ni()&&null!=a?WY(a,e):jf(a)===jf(e))&&(null!=a&&(r=n.dj(a,r)),r=n.cj(e,r)),n.ij()&&(r=n.lj(a,e,r)),r?(r.Ei(i),r.Fi()):n.$i(i)):(a=Bq(n,t,e),n.bj()&&!(n.ni()&&null!=a?WY(a,e):jf(a)===jf(e))&&(r=null,null!=a&&(r=n.dj(a,null)),(r=n.cj(e,r))&&r.Fi())),a}function nu3(n,t){var e,i,r,c,a,u,o;t%=24,n.q.getHours()!=t&&((e=new nTv.Date(n.q.getTime())).setDate(e.getDate()+1),(a=n.q.getTimezoneOffset()-e.getTimezoneOffset())>0&&(u=a/60|0,o=a%60,i=n.q.getDate(),n.q.getHours()+u>=24&&++i,r=new nTv.Date(n.q.getFullYear(),n.q.getMonth(),i,t+u,n.q.getMinutes()+o,n.q.getSeconds(),n.q.getMilliseconds()),n.q.setTime(r.getTime()))),c=n.q.getTime(),n.q.setTime(c+36e5),n.q.getHours()!=t&&n.q.setTime(c)}function nu4(n){var t,e,i,r,c;if(!n.d){if(c=new uh,null==(t=nQ2).a.zc(n,t)){for(e=new Td(Nw(n));e.e!=e.i.gc();)AJ(c,nu4(Im(J1(e),26)));t.a.Bc(n),t.a.gc()}for(r=c.i,n.q||(n.q=new An(nQg,n,11,10)),i=new Td(n.q);i.e!=i.i.gc();++r)Im(J1(i),399);AJ(c,(n.q||(n.q=new An(nQg,n,11,10)),n.q)),X5(c),n.d=new jW((Im(HX(L6(($g(),nQO).o),9),18),c.i),c.g),n.e=Im(c.g,673),null==n.e&&(n.e=nQ3),KJ(n).b&=-17}return n.d}function nu5(n,t,e,i){var r,c,a,u,o,s;if(s=ncT(n.e.Tg(),t),o=0,r=Im(n.g,119),mp(),Im(t,66).Oj()){for(a=0;a<n.i;++a)if(c=r[a],s.rl(c.ak())){if(WY(c,e))return o;++o}}else if(null!=e){for(u=0;u<n.i;++u)if(c=r[u],s.rl(c.ak())){if(WY(e,c.dd()))return o;++o}if(i){for(a=0,o=0;a<n.i;++a)if(c=r[a],s.rl(c.ak())){if(jf(e)===jf(Sn(n,Im(c.dd(),56))))return o;++o}}}else for(a=0;a<n.i;++a)if(c=r[a],s.rl(c.ak())){if(null==c.dd())return o;++o}return -1}function nu6(n){var t,e,i,r;if(niW(),t=NU(n),n<nMp.length)return nMp[t];if(n<=50)return ni$((nc4(),nMf),t);if(n<=nfP)return K2(ni$(nMg[1],t),t);if(n>1e6)throw new ga("power of ten too big").e;if(n<=nhM)return K2(ni$(nMg[1],t),t);for(r=i=ni$(nMg[1],nhM),e=zx(n-nhM),t=NU(n%nhM);WM(e,nhM)>0;)r=B8(r,i),e=VR(e,nhM);for(r=K2(r=B8(r,ni$(nMg[1],t)),nhM),e=zx(n-nhM);WM(e,nhM)>0;)r=K2(r,nhM),e=VR(e,nhM);return K2(r,t)}function nu8(n){var t,e,i,r,c,a,u,o;for(a=new h1(n.a);a.a<a.c.c.length;)if((c=Im(De(a),10)).k==(ntY(),nAU)&&((r=Im(ntP(c,(nhu(),nxr)),61))==(nsR(),nWA)||r==nWJ))for(i=new OM(TD(Vq(c).a.Kc(),new s));nrc(i);)0!=(t=(e=Im(K4(i),17)).a).b&&((u=e.c).i==c&&(MK(0!=t.b),Im(t.a.a.c,8).b=Xt(Um(xg(nCa,1),nhJ,8,0,[u.i.n,u.n,u.a])).b),(o=e.d).i==c&&(MK(0!=t.b),Im(t.c.b.c,8).b=Xt(Um(xg(nCa,1),nhJ,8,0,[o.i.n,o.n,o.a])).b))}function nu9(n,t,e,i){var r,c,a;if(this.j=new wn,this.k=new wn,this.b=new wn,this.c=new wn,this.e=new Et,this.i=new dd,this.f=new we,this.d=new wn,this.g=new wn,IE(this.b,n),IE(this.b,t),this.e.c=nTv.Math.min(n.a,t.a),this.e.d=nTv.Math.min(n.b,t.b),this.e.b=nTv.Math.abs(n.a-t.a),this.e.a=nTv.Math.abs(n.b-t.b),r=Im(ntP(i,(ns8(),nKV)),74))for(a=Jz(r,0);a.b!=a.d.c;)H0((c=Im(RP(a),8)).a,n.a)&&I2(this.i,c);e&&IE(this.j,e),IE(this.k,i)}function nu7(n,t,e){var i,r,c,a,u,o,s,h,f;for(r=!0,a=new h1(n.b);a.a<a.c.c.length;){for(c=Im(De(a),29),s=nla,h=null,o=new h1(c.a);o.a<o.c.c.length;)if(u=Im(De(o),10),f=gy(t.p[u.p])+gy(t.d[u.p])-u.d.d,i=gy(t.p[u.p])+gy(t.d[u.p])+u.o.b+u.d.a,f>s&&i>s)h=u,s=gy(t.p[u.p])+gy(t.d[u.p])+u.o.b+u.d.a;else{r=!1,e.n&&IJ(e,"bk node placement breaks on "+u+" which should have been after "+h);break}if(!r)break}return e.n&&IJ(e,t+" is feasible: "+r),r}function non(n){var t,e,i,r,c,a;if(!n.f){if(a=new uo,c=new uo,null==(t=nQ2).a.zc(n,t)){for(r=new Td(Nw(n));r.e!=r.i.gc();)AJ(a,non(Im(J1(r),26)));t.a.Bc(n),t.a.gc()}for(n.s||(n.s=new An(nQo,n,21,17)),i=new Td(n.s);i.e!=i.i.gc();)Ti(e=Im(J1(i),170),99)&&_P(c,Im(e,18));X5(c),n.r=new IX(n,(Im(HX(L6(($g(),nQO).o),6),18),c.i),c.g),AJ(a,n.r),X5(a),n.f=new jW((Im(HX(L6(nQO.o),5),18),a.i),a.g),KJ(n).b&=-3}return n.f}function not(n){var t,e,i,r,c,a,u,o;e=gm(So(ntP(n,(nab(),nOO)))),c=n.a.c.d,u=n.a.d.d,e?(a=To(S7(new kp(u.a,u.b),c),.5),o=To(E1(n.e),.5),t=S7(S9(new kp(c.a,c.b),a),o),MU(n.d,t)):(r=gy(Ss(ntP(n.a,nOX))),i=n.d,c.a>=u.a?c.b>=u.b?(i.a=u.a+(c.a-u.a)/2+r,i.b=u.b+(c.b-u.b)/2-r-n.e.b):(i.a=u.a+(c.a-u.a)/2+r,i.b=c.b+(u.b-c.b)/2+r):c.b>=u.b?(i.a=c.a+(u.a-c.a)/2+r,i.b=u.b+(c.b-u.b)/2+r):(i.a=c.a+(u.a-c.a)/2+r,i.b=c.b+(u.b-c.b)/2-r-n.e.b))}function noe(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;if(null==n)return null;if(0==(c=n.length))return"";for(o=_f(nY$,nfS,25,c,15,1),_b(0,c,n.length),_b(0,c,o.length),AD(n,0,c,o,0),e=null,u=t,r=0,a=0;r<c;r++)(i=o[r],nhg(),i<=32&&(2&nYr[i])!=0)?u?(e||(e=new TW(n)),s=e,h=r-a++,s.a=MT(s.a,0,h)+""+jm(s.a,h+1)):(u=t,32!=i&&(e||(e=new TW(n)),f=e,l=r-a,b=r-a+1,f.a=MT(f.a,0,l)+" "+jm(f.a,b))):u=!1;return u?e?(c=e.a.length)>0?MT(e.a,0,c-1):"":n.substr(0,c-1):e?e.a:n}function noi(n){var t,e;mc(n,new nte(((((t=new as).c=nb4,t).d="ELK DisCo",t).b="Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.",e=new n4,t.e=e,t))),DV(n,nb4,nb5,JZ(nOw)),DV(n,nb4,nb6,JZ(nOo)),DV(n,nb4,nb8,JZ(nOi)),DV(n,nb4,nb9,JZ(nOs)),DV(n,nb4,nbc,JZ(nOl)),DV(n,nb4,nba,JZ(nOf)),DV(n,nb4,nbr,JZ(nOb)),DV(n,nb4,nbu,JZ(nOh)),DV(n,nb4,nbZ,JZ(nOc)),DV(n,nb4,nb1,JZ(nOr)),DV(n,nb4,nb0,JZ(nOa)),DV(n,nb4,nb2,JZ(nOu))}function nor(n,t,e,i){var r,c,a,u,o,s,h,f,l;if(f=c=new Y$(n),ntY(),l=nAQ,f.k=l,UU(c,(ns8(),nFE),(nn2(),nWv)),r=0,t){for(UU(a=new nt9,(nhu(),nxE),t),UU(c,nxE,t.i),ne9(a,(nsR(),nWJ)),xM(a,c),s=0,h=(o=DH(t.e)).length;s<h;++s)xj(o[s],a);UU(t,nxA,c),++r}if(e){for(u=new nt9,UU(c,(nhu(),nxE),e.i),UU(u,nxE,e),ne9(u,(nsR(),nWA)),xM(u,c),s=0,h=(o=DH(e.g)).length;s<h;++s)xE(o[s],u);UU(e,nxA,c),++r}return UU(c,(nhu(),nN5),Va(r)),i.c[i.c.length]=c,c}function noc(){noc=C,nVD=Um(xg(nY$,1),nfS,25,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]),nVR=RegExp("[ \n\r\f]+");try{nVx=Um(xg(nQj,1),nhA,2015,0,[new bW((EN(),QG("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",SF((gx(),gx(),nTF))))),new bW(QG("yyyy-MM-dd'T'HH:mm:ss'.'SSS",SF(nTF))),new bW(QG("yyyy-MM-dd'T'HH:mm:ss",SF(nTF))),new bW(QG("yyyy-MM-dd'T'HH:mm",SF(nTF))),new bW(QG("yyyy-MM-dd",SF(nTF)))])}catch(n){if(!Ti(n=Uu(n),78))throw n.e}}function noa(n,t,e,i){var r,c,a,u,o,s,h,f,l;return(s=(o=S7(new kp(e.a,e.b),n)).a*t.b-o.b*t.a,h=t.a*i.b-t.b*i.a,f=(o.a*i.b-o.b*i.a)/h,l=s/h,0!=h)?f>=0&&f<=1&&l>=0&&l<=1?S9(new kp(n.a,n.b),To(new kp(t.a,t.b),f)):null:0!=s?null:(c=_k(n,r=S9(new kp(e.a,e.b),To(new kp(i.a,i.b),.5))),a=_k(S9(new kp(n.a,n.b),t),r),u=.5*nTv.Math.sqrt(i.a*i.a+i.b*i.b),c<a&&c<=u)?new kp(n.a,n.b):a<=u?S9(new kp(n.a,n.b),t):null}function nou(n){var t,e,i,r,c,a,u,o,s,h,f;for(n.b=!1,h=nlc,u=nla,f=nlc,o=nla,e=n.e.a.ec().Kc();e.Ob();)for(i=(t=Im(e.Pb(),266)).a,h=nTv.Math.min(h,i.c),u=nTv.Math.max(u,i.c+i.b),f=nTv.Math.min(f,i.d),o=nTv.Math.max(o,i.d+i.a),c=new h1(t.c);c.a<c.c.c.length;)(r=Im(De(c),395)).a.a?(a=(s=i.d+r.b.b)+r.c,f=nTv.Math.min(f,s),o=nTv.Math.max(o,a)):(a=(s=i.c+r.b.a)+r.c,h=nTv.Math.min(h,s),u=nTv.Math.max(u,a));n.a=new kp(u-h,o-f),n.c=new kp(h+n.d.a,f+n.d.b)}function noo(n){var t,e,i,r,c,a;if(!n.a){if(n.o=null,a=new bU(n),t=new us,null==(e=nQ2).a.zc(n,e)){for(c=new Td(Nw(n));c.e!=c.i.gc();)AJ(a,noo(Im(J1(c),26)));e.a.Bc(n),e.a.gc()}for(n.s||(n.s=new An(nQo,n,21,17)),r=new Td(n.s);r.e!=r.i.gc();)Ti(i=Im(J1(r),170),322)&&_P(t,Im(i,34));X5(t),n.k=new IU(n,(Im(HX(L6(($g(),nQO).o),7),18),t.i),t.g),AJ(a,n.k),X5(a),n.a=new jW((Im(HX(L6(nQO.o),4),18),a.i),a.g),KJ(n).b&=-2}return n.a}function nos(n,t,e,i){var r,c,a,u,o,s,h;if(h=ncT(n.e.Tg(),t),r=0,c=Im(n.g,119),o=null,mp(),Im(t,66).Oj()){for(u=0;u<n.i;++u)if(a=c[u],h.rl(a.ak())){if(WY(a,e)){o=a;break}++r}}else if(null!=e){for(u=0;u<n.i;++u)if(a=c[u],h.rl(a.ak())){if(WY(e,a.dd())){o=a;break}++r}}else for(u=0;u<n.i;++u)if(a=c[u],h.rl(a.ak())){if(null==a.dd()){o=a;break}++r}return o&&(Ea(n.e)&&(s=t.$j()?new R4(n.e,4,t,e,null,r,!0):NE(n,t.Kj()?2:1,t,e,t.zj(),-1,!0),i?i.Ei(s):i=s),i=naQ(n,o,i)),i}function noh(n,t,e,i,r,c,a){var u,o,s,h,f,l,b,w;switch(b=0,w=0,o=r.c,u=r.b,h=e.f,l=e.g,t.g){case 0:b=i.i+i.g+a,w=n.c?function(n,t,e,i){var r,c,a,u,o;for(c=null,r=0,u=new h1(t);u.a<u.c.c.length;)o=(a=Im(De(u),33)).j+a.f,n<a.i+a.g+i&&(c?e.j-o<e.j-r&&(c=a):c=a,r=c.j+c.f);return c?r+i:0}(b,c,i,a):i.j,f=nTv.Math.max(o,b+l),s=nTv.Math.max(u,w+h);break;case 1:w=i.j+i.f+a,b=n.c?function(n,t,e,i){var r,c,a,u,o;for(r=null,c=0,u=new h1(t);u.a<u.c.c.length;)o=(a=Im(De(u),33)).i+a.g,n<a.j+a.f+i&&(r?e.i-o<e.i-c&&(r=a):r=a,c=r.i+r.g);return r?c+i:0}(w,c,i,a):i.i,f=nTv.Math.max(o,b+l),s=nTv.Math.max(u,w+h);break;case 2:b=o+a,w=0,f=o+a+l,s=nTv.Math.max(u,h);break;case 3:b=0,w=u+a,f=nTv.Math.max(o,l),s=u+a+h;break;default:throw new gd("IllegalPlacementOption.").e}return new Qo(n.a,f,s,t,b,w)}function nof(n,t,e,i){var r,c,a,u,o,s;if(o=ncT(n.e.Tg(),t),c=Im(n.g,119),ncD(n.e,t)){for(u=0,r=0;u<n.i;++u)if(a=c[u],o.rl(a.ak())){if(r==e){if(mp(),Im(t,66).Oj())return a;return null!=(s=a.dd())&&i&&Ti(t,99)&&(Im(t,18).Bb&nls)!=0&&(s=nik(n,t,u,r,s)),s}++r}throw new gu(nkB+e+ny3+r).e}for(u=0,r=0;u<n.i;++u){if(a=c[u],o.rl(a.ak())){if(mp(),Im(t,66).Oj())return a;return null!=(s=a.dd())&&i&&Ti(t,99)&&(Im(t,18).Bb&nls)!=0&&(s=nik(n,t,u,r,s)),s}++r}return t.zj()}function nol(n,t,e){var i,r,c,a,u,o,s,h;if(r=Im(n.g,119),ncD(n.e,t))return mp(),Im(t,66).Oj()?new Cb(t,n):new jr(t,n);for(u=0,s=ncT(n.e.Tg(),t),i=0;u<n.i;++u){if(a=(c=r[u]).ak(),s.rl(a)){if(mp(),Im(t,66).Oj())return c;if(a!=(niH(),nJ$)&&a!=nJC)return null!=(h=c.dd())&&e&&Ti(t,99)&&(Im(t,18).Bb&nls)!=0&&(h=nik(n,t,u,i,h)),h;for(o=new TV(V7(c.dd()));++u<n.i;)((a=(c=r[u]).ak())==nJ$||a==nJC)&&jP(o,V7(c.dd()));return Pd(Im(t.Yj(),148),o.a)}++i}return t.zj()}function nob(n,t,e){var i,r,c,a,u,o,s,h,f,l;for(c=0,a=n.t,r=0,i=0,o=0,l=0,f=0,e&&(n.n.c=_f(nEX,nhA,1,0,5,1),IE(n.n,new NZ(n.s,n.t,n.i))),u=0,h=new h1(n.b);h.a<h.c.c.length;)c+(s=Im(De(h),33)).g+(u>0?n.i:0)>t&&o>0&&(c=0,a+=o+n.i,r=nTv.Math.max(r,l),i+=o+n.i,o=0,l=0,e&&(++f,IE(n.n,new NZ(n.s,a,n.i))),u=0),l+=s.g+(u>0?n.i:0),o=nTv.Math.max(o,s.f),e&&YJ(Im(CA(n.n,f),211),s),c+=s.g+(u>0?n.i:0),++u;return r=nTv.Math.max(r,l),i+=o,e&&(n.r=r,n.d=i,ZE(n.j)),new Lj(n.s,n.t,r,i)}function now(n,t,e,i,r){var c,a,u,o,s,h,f,l,b;if(vI(),Am(n,"src"),Am(e,"dest"),l=Xp(n),o=Xp(e),I_((4&l.i)!=0,"srcType is not an array"),I_((4&o.i)!=0,"destType is not an array"),f=l.c,a=o.c,I_((1&f.i)!=0?f==a:(1&a.i)==0,"Array types don't match"),b=n.length,s=e.length,t<0||i<0||r<0||t+r>b||i+r>s)throw(new wk).e;if((1&f.i)==0&&l!=o){if(h=HJ(n),c=HJ(e),jf(n)===jf(e)&&t<i)for(t+=r,u=i+r;u-- >i;)$t(c,u,h[--t]);else for(u=i+r;i<u;)$t(c,i++,h[t++])}else r>0&&ne4(n,t,e,i,r,!0)}function nod(){nod=C,nMw=Um(xg(nYL,1),nfH,25,15,[nfp,1162261467,nfo,1220703125,362797056,1977326743,nfo,387420489,nf7,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,128e7,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729e6,887503681,nfo,1291467969,1544804416,1838265625,60466176]),nMd=Um(xg(nYL,1),nfH,25,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])}function nog(n,t){var e,i,r,c,a;if(a=Im(t,136),nr$(n),nr$(a),null!=a.b){if(n.c=!0,null==n.b){n.b=_f(nYL,nfH,25,a.b.length,15,1),now(a.b,0,n.b,0,a.b.length);return}for(e=0,c=_f(nYL,nfH,25,n.b.length+a.b.length,15,1),i=0,r=0;e<n.b.length||i<a.b.length;)e>=n.b.length?(c[r++]=a.b[i++],c[r++]=a.b[i++]):i>=a.b.length?(c[r++]=n.b[e++],c[r++]=n.b[e++]):a.b[i]<n.b[e]||a.b[i]===n.b[e]&&a.b[i+1]<n.b[e+1]?(c[r++]=a.b[i++],c[r++]=a.b[i++]):(c[r++]=n.b[e++],c[r++]=n.b[e++]);n.b=c}}function nop(n){var t,e,i,r;return(64&n.Db)!=0?VL(n):(t=new TV(nm0),(i=n.k)?jP(jP((t.a+=' "',t),i),'"'):(n.n||(n.n=new An(nCK,n,1,7)),n.n.i>0&&(r=(n.n||(n.n=new An(nCK,n,1,7)),Im(HX(n.n,0),137)).a)&&jP(jP((t.a+=' "',t),r),'"')),n.b||(n.b=new Ph(nCA,n,4,7)),(e=!(n.b.i<=1&&(n.c||(n.c=new Ph(nCA,n,5,8)),n.c.i<=1)))?t.a+=" [":t.a+=" ",jP(t,Tx(new g_,new Td(n.b))),e&&(t.a+="]"),t.a+=nw4,e&&(t.a+="["),jP(t,Tx(new g_,new Td(n.c))),e&&(t.a+="]"),t.a)}function nov(n,t,e,i){var r,c,a,u,o,s;if(c=VA(i),(gm(So(ntP(i,(ns8(),nK6))))||gm(So(ntP(n,nKG))))&&!Ec(Im(ntP(n,nFE),98)))r=Ql(c),u=nuh(n,e,e==(qF(),n_X)?r:Vg(r));else switch(xM(u=new nt9,n),t?((s=u.n).a=t.a-n.n.a,s.b=t.b-n.n.b,nea(s,0,0,n.o.a,n.o.b),ne9(u,nuw(u,c))):(r=Ql(c),ne9(u,e==(qF(),n_X)?r:Vg(r))),a=Im(ntP(i,(nhu(),nxu)),21),o=u.j,c.g){case 2:case 1:(o==(nsR(),nW$)||o==nWV)&&a.Fc((ncJ(),nNK));break;case 4:case 3:(o==(nsR(),nWA)||o==nWJ)&&a.Fc((ncJ(),nNK))}return u}function nom(n,t,e){var i,r,c,a,u,o,s;return nTv.Math.abs(t.s-t.c)<nww||nTv.Math.abs(e.s-e.c)<nww?0:(i=ncj(n,t.j,e.e),r=ncj(n,e.j,t.e),c=0,-1==i||-1==r?(-1==i&&(new x_((FO(),nB1),e,t,1),++c),-1==r&&(new x_((FO(),nB1),t,e,1),++c)):(a=WU(t.j,e.s,e.c)+WU(e.e,t.s,t.c),u=WU(e.j,t.s,t.c)+WU(t.e,e.s,e.c),(o=i+16*a)<(s=r+16*u)?new x_((FO(),nB0),t,e,s-o):o>s?new x_((FO(),nB0),e,t,o-s):o>0&&s>0&&(new x_((FO(),nB0),t,e,0),new x_(nB0,e,t,0))),c)}function noy(n,t){var e,i,r,c,a;for(a=new XE(new hL(n.f.b).a);a.b;){if(r=Im((c=HQ(a)).cd(),594),1==t){if(r.gf()!=(W2(),nXA)&&r.gf()!=nXP)continue}else if(r.gf()!=(W2(),nXI)&&r.gf()!=nXC)continue;switch(i=Im(Im(c.dd(),46).b,81),e=Im(Im(c.dd(),46).a,189).c,r.gf().g){case 2:i.g.c=n.e.a,i.g.b=nTv.Math.max(1,i.g.b+e);break;case 1:i.g.c=i.g.c+e,i.g.b=nTv.Math.max(1,i.g.b-e);break;case 4:i.g.d=n.e.b,i.g.a=nTv.Math.max(1,i.g.a+e);break;case 3:i.g.d=i.g.d+e,i.g.a=nTv.Math.max(1,i.g.a-e)}}}function nok(n){var t,e;mc(n,new nte(((((t=new as).c=nvZ,t).d="ELK SPOrE Compaction",t).b="ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree.",e=new c5,t.e=e,t))),DV(n,nvZ,nv1,JZ(nGY)),DV(n,nvZ,nv0,JZ(nGV)),DV(n,nvZ,nv2,JZ(nGW)),DV(n,nvZ,nv3,JZ(nGU)),DV(n,nvZ,nv4,JZ(nGX)),DV(n,nvZ,nb9,nGz),DV(n,nvZ,nwy,8),DV(n,nvZ,nv5,JZ(nGJ)),DV(n,nvZ,nv6,JZ(nGB)),DV(n,nvZ,nv8,JZ(nGH)),DV(n,nvZ,npm,(TX(),!1))}function noj(n,t,e){var i,r,c,a,u,o,s,h;if(i=n.a.o==(xh(),nBD)?nlc:nla,!(u=nuj(n,new y2(t,e))).a&&u.c)I2(n.d,u);else if(u.a)return r=u.a.c,o=u.a.d,e?(s=n.a.c==(NR(),nBL)?o:r,c=n.a.c==nBL?r:o,a=n.a.g[c.i.p],h=gy(n.a.p[a.p])+gy(n.a.d[c.i.p])+c.n.b+c.a.b-gy(n.a.d[s.i.p])-s.n.b-s.a.b):(s=n.a.c==(NR(),nB$)?o:r,c=n.a.c==nB$?r:o,h=gy(n.a.p[n.a.g[c.i.p].p])+gy(n.a.d[c.i.p])+c.n.b+c.a.b-gy(n.a.d[s.i.p])-s.n.b-s.a.b),n.a.n[n.a.g[r.i.p].p]=(TX(),!0),n.a.n[n.a.g[o.i.p].p]=!0,h;return i}function noE(n,t,e){var i,r,c,a,u,o,s;if(ncD(n.e,t))mp(),niX((u=Im(t,66).Oj()?new Cb(t,n):new jr(t,n)).c,u.b),E9(u,Im(e,14));else{for(c=0,s=ncT(n.e.Tg(),t),i=Im(n.g,119);c<n.i;++c)if(r=(0,i[c]).ak(),s.rl(r)){if(r==(niH(),nJ$)||r==nJC){for(o=YO(n,t,e),a=c,o?ncQ(n,c):++c;c<n.i;)(r=(0,i[c]).ak())==nJ$||r==nJC?ncQ(n,c):++c;o||Im(Yb(n,a,RU(t,e)),72)}else YO(n,t,e)?ncQ(n,c):Im(Yb(n,c,(mp(),Im(t,66).Oj()?Im(e,72):RU(t,e))),72);return}YO(n,t,e)||_P(n,(mp(),Im(t,66).Oj()?Im(e,72):RU(t,e)))}}function noT(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;for(h=0;h<t.length;h++){for(a=n.Kc();a.Ob();)Im(a.Pb(),225).Of(h,t);for(f=0;f<t[h].length;f++){for(u=n.Kc();u.Ob();)Im(u.Pb(),225).Pf(h,f,t);for(l=0,b=t[h][f].j;l<b.c.length;l++){for(o=n.Kc();o.Ob();)Im(o.Pb(),225).Qf(h,f,l,t);for(x4(l,b.c.length),e=0,r=new Fm(Im(b.c[l],11).b);EB(r.a)||EB(r.b);)for(i=Im(EB(r.a)?De(r.a):De(r.b),17),s=n.Kc();s.Ob();)Im(s.Pb(),225).Nf(h,f,l,e++,i,t)}}}for(c=n.Kc();c.Ob();)Im(c.Pb(),225).Mf()}function noM(n){var t,e,i,r,c;return!(n.k!=(ntY(),nAV)||n.j.c.length<=1||Im(ntP(n,(ns8(),nFE)),98)==(nn2(),nWv)||(Yp(),(i=(n.q?n.q:(LV(),LV(),nMm))._b(nFr)?Im(ntP(n,nFr),197):Im(ntP($L(n),nFc),197))==n_k)||!(i==n_y||i==n_m)&&(r=gy(Ss(QR(n,nF0))),(t=Im(ntP(n,nF1),142))||(t=new S6(r,r,r,r)),c=V_(n,(nsR(),nWJ)),t.d+t.a+(c.gc()-1)*r>n.o.b||(e=V_(n,nWA),t.d+t.a+(e.gc()-1)*r>n.o.b)))}function noS(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w;if(a=n.e,o=t.e,0==a)return t;if(0==o)return n;if((c=n.d)+(u=t.d)==2)return(e=Di(n.a[0],nlw),i=Di(t.a[0],nlw),a==o)?(w=CZ(h=VK(e,i)),0==(b=CZ(OF(h,32)))?new F_(a,w):new As(a,2,Um(xg(nYL,1),nfH,25,15,[w,b]))):JK(a<0?VR(i,e):VR(e,i));if(a==o)l=a,f=c>=u?_h(n.a,c,t.a,u):_h(t.a,u,n.a,c);else{if(0==(r=c!=u?c>u?1:-1:XN(n.a,t.a,c)))return nc4(),nMb;1==r?(l=a,f=Fp(n.a,c,t.a,u)):(l=o,f=Fp(t.a,u,n.a,c))}return DF(s=new As(l,f.length,f)),s}function noP(n,t,e,i,r,c,a){var u,o,s,h,f,l,b,w,d,g,p,v,m,y;return f=gm(So(ntP(t,(ns8(),nK8)))),l=null,c==(qF(),n_U)&&i.c.i==e?l=i.c:c==n_X&&i.d.i==e&&(l=i.d),(s=a)&&f&&!l?(IE(s.e,i),b=nTv.Math.max(gy(Ss(ntP(s.d,nKR))),gy(Ss(ntP(i,nKR)))),UU(s.d,nKR,b)):(nsR(),h=nWQ,l?h=l.j:Ec(Im(ntP(e,nFE),98))&&(h=c==n_U?nWJ:nWA),w=h,d=null,v=c==(qF(),n_U)?i.c:i.d,p=VA(t),v.i==e?(d=Im($a(n.b,v),10))||(UU(d=nsQ(v,Im(ntP(e,(ns8(),nFE)),98),w,function(n){var t,e,i,r,c,a,u,o,s,h,f,l;for(r=gm(So(ntP(u=n.i,(ns8(),nKz)))),h=0,i=0,s=new h1(n.g);s.a<s.c.c.length;)c=(a=KR(o=Im(De(s),17)))&&r&&gm(So(ntP(o,nKU))),l=o.d.i,a&&c?++i:a&&!c?++h:$L(l).e==u?++i:++h;for(e=new h1(n.e);e.a<e.c.c.length;)c=(a=KR(t=Im(De(e),17)))&&r&&gm(So(ntP(t,nKU))),f=t.c.i,a&&c?++h:a&&!c?++i:$L(f).e==u?++h:++i;return h-i}(v),null,v.n,v.o,p,t),(nhu(),nxE),v),$J(n.b,v,d)):(g=function(n,t,e){var i,r;switch(i=VA($L(t)),xM(r=new nt9,t),e.g){case 1:ne9(r,Vg(Ql(i)));break;case 2:ne9(r,Ql(i))}return UU(r,(ns8(),nFj),Ss(ntP(n,nFj))),r}(d=nsQ((m=new nJ,y=gy(Ss(ntP(t,(ns8(),nFB))))/2,Uz(m,nFj,y),m),Im(ntP(e,nFE),98),w,c==n_U?-1:1,null,new ps,new kp(0,0),p,t),e,c),UU(d,(nhu(),nxE),g),$J(n.b,g,d)),Im(ntP(t,(nhu(),nxu)),21).Fc((ncJ(),nNN)),Ec(Im(ntP(t,(ns8(),nFE)),98))?UU(t,nFE,(nn2(),nWy)):UU(t,nFE,(nn2(),nWk)),o=d,u=K6(($L(e),i)),c==n_U?(xE(u,Im(CA(o.j,0),11)),xj(u,r)):(xE(u,r),xj(u,Im(CA(o.j,0),11))),s=new W6(i,u,o,Im(ntP(o,(nhu(),nxE)),11),c,!l)),niP(n.a,i,new P1(s.d,t,c)),s}function noI(n,t){var e,i,r,c,a,u,o,s,h,f;if(h=null,n.d&&(h=Im(Nz(n.d,t),138)),!h){if(f=(c=n.a.Mh()).i,!n.d||vO(n.d)!=f){for(o=new wt,n.d&&zc(o,n.d),u=s=o.f.c+o.g.c;u<f;++u)i=Im(HX(c,u),138),(e=Im(null==(r=WW(n.e,i).ne())?neQ(o.f,null,i):VB(o.g,r,i),138))&&e!=i&&(null==r?neQ(o.f,null,e):VB(o.g,r,e));if(o.f.c+o.g.c!=f)for(a=0;a<s;++a)i=Im(HX(c,a),138),(e=Im(null==(r=WW(n.e,i).ne())?neQ(o.f,null,i):VB(o.g,r,i),138))&&e!=i&&(null==r?neQ(o.f,null,e):VB(o.g,r,e));n.d=o}h=Im(Nz(n.d,t),138)}return h}function noC(){var n;noC=C,nV2=new dy,nV1=_f(nTh,nhJ,2,0,6,1),nV5=Dr(UC(33,58),UC(1,26)),nV6=Dr(UC(97,122),UC(65,90)),nV8=UC(48,57),nV3=Dr(nV5,0),nV4=Dr(nV6,nV8),nV9=Dr(Dr(0,UC(1,6)),UC(33,38)),nV7=Dr(Dr(nV8,UC(65,70)),UC(97,102)),nQr=Dr(nV3,JV("-_.!~*'()")),nQc=Dr(nV4,Q$("-_.!~*'()")),JV(nkU),Q$(nkU),Dr(nQr,JV(";:@&=+$,")),Dr(nQc,Q$(";:@&=+$,")),nQn=JV(":/?#"),nQt=Q$(":/?#"),nQe=JV("/?#"),nQi=Q$("/?#"),(n=new w_).a.zc("jar",n),n.a.zc("zip",n),n.a.zc("archive",n),LV(),nV0=new gQ(n)}function noO(n,t){var e,i,r,c,a,u,o,h,f,l,b,w;u=0,w=0,o=NG(n.f,n.f.length),c=n.d,a=n.i,i=n.a,r=n.b;do{for(b=0,h=new h1(n.p);h.a<h.c.c.length;)l=function n(t,e){var i,r,c,a,u,o,h,f,l;for(o=!0,c=0,h=t.f[e.p],f=e.o.b+t.n,i=t.c[e.p][2],KN(t.a,h,Va(Im(CA(t.a,h),19).a-1+i)),KN(t.b,h,gy(Ss(CA(t.b,h)))-f+i*t.e),++h>=t.i?(++t.i,IE(t.a,Va(1)),IE(t.b,f)):(r=t.c[e.p][1],KN(t.a,h,Va(Im(CA(t.a,h),19).a+1-r)),KN(t.b,h,gy(Ss(CA(t.b,h)))+f-r*t.e)),(t.q==(nco(),n_A)&&(Im(CA(t.a,h),19).a>t.j||Im(CA(t.a,h-1),19).a>t.j)||t.q==n_N&&(gy(Ss(CA(t.b,h)))>t.k||gy(Ss(CA(t.b,h-1)))>t.k))&&(o=!1),a=new OM(TD(VG(e).a.Kc(),new s));nrc(a);)u=Im(K4(a),17).c.i,t.f[u.p]==h&&(c+=Im((l=n(t,u)).a,19).a,o=o&&gm(So(l.b)));return t.f[e.p]=h,new k_(Va(c+=t.c[e.p][0]),(TX(),!!o))}(n,Im(De(h),10)),e=!0,(n.q==(nco(),n_A)||n.q==n_N)&&(e=gm(So(l.b))),Im(l.a,19).a<0&&e?(++b,o=NG(n.f,n.f.length),n.d=n.d+Im(l.a,19).a,w+=c-n.d,c=n.d+Im(l.a,19).a,a=n.i,i=Da(n.a),r=Da(n.b)):(n.f=NG(o,o.length),n.d=c,n.a=(A1(i),i?new PB(i):Iy(new h1(i))),n.b=(A1(r),r?new PB(r):Iy(new h1(r))),n.i=a);++u,f=0!=b&&gm(So(t.Kb(new k_(Va(w),Va(u)))))}while(f)}function noA(n){var t,e,i,r;if(null!=n.b&&!(n.b.length<=2)&&!n.a){for(t=0,r=0;r<n.b.length;){for(t!=r?(n.b[t]=n.b[r++],n.b[t+1]=n.b[r++]):r+=2,e=n.b[t+1];r<n.b.length&&!(e+1<n.b[r]);)if(e+1==n.b[r])n.b[t+1]=n.b[r+1],e=n.b[t+1],r+=2;else if(e>=n.b[r+1])r+=2;else if(e<n.b[r+1])n.b[t+1]=n.b[r+1],e=n.b[t+1],r+=2;else throw new d7("Token#compactRanges(): Internel Error: ["+n.b[t]+","+n.b[t+1]+"] ["+n.b[r]+","+n.b[r+1]+"]").e;t+=2}t!=n.b.length&&(i=_f(nYL,nfH,25,t,15,1),now(n.b,0,i,0,t),n.b=i),n.a=!0}}function no$(n){var t,e,i,r,c,a,u,o,s,h,f,l;for(c=gm(So(nrM(t=N8(n),(ns8(),nKz)))),h=0,r=0,s=new Td((n.e||(n.e=new Ph(nC$,n,7,4)),n.e));s.e!=s.i.gc();)a=(u=niM(o=Im(J1(s),79)))&&c&&gm(So(nrM(o,nKU))),l=ntr(Im(HX((o.c||(o.c=new Ph(nCA,o,5,8)),o.c),0),82)),u&&a?++r:u&&!a?++h:xt(l)==t||l==t?++r:++h;for(i=new Td((n.d||(n.d=new Ph(nC$,n,8,5)),n.d));i.e!=i.i.gc();)a=(u=niM(e=Im(J1(i),79)))&&c&&gm(So(nrM(e,nKU))),f=ntr(Im(HX((e.b||(e.b=new Ph(nCA,e,4,7)),e.b),0),82)),u&&a?++h:u&&!a?++r:xt(f)==t||f==t?++h:++r;return h-r}function noL(n,t){var e,i,r,c,a,u,o,s,h,f;if((a=null!=t.p&&!t.b)||ntc(t,nwo,1),c=1/(e=Im(ntP(n,(nhu(),nxL)),15)).gc(),t.n)for(IJ(t,"ELK Layered uses the following "+e.gc()+" modules:"),f=0,h=e.Kc();h.Ob();)o=Im(h.Pb(),51),IJ(t," Slot "+(f<10?"0":"")+f+++": "+pb(Xp(o)));for(s=e.Kc();s.Ob();)(o=Im(s.Pb(),51)).pf(n,zt(t,c));for(r=new h1(n.b);r.a<r.c.c.length;)i=Im(De(r),29),Uf(n.a,i.a),i.a.c=_f(nEX,nhA,1,0,5,1);for(u=new h1(n.a);u.a<u.c.c.length;)xT(Im(De(u),10),null);n.b.c=_f(nEX,nhA,1,0,5,1),a||nee(t)}function noN(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w;for(w=new wt,c=n.a.ec().Kc();c.Ob();)$J(w,i=Im(c.Pb(),168),e.Je(i));for(A1(n),E_(a=n?new PB(n):Iy(n.a.ec().Kc()),new fm(w)),u=Kr(a),o=new EX(t),neQ((b=new wt).f,t,o);0!=u.a.gc();){for(s=null,h=null,f=null,r=u.a.ec().Kc();r.Ob();)if(i=Im(r.Pb(),168),gy(Ss(jh(Nj(w.f,i))))<=nlc){if(Au(b,i.a)&&!Au(b,i.b)){h=i.b,f=i.a,s=i;break}if(Au(b,i.b)&&!Au(b,i.a)){h=i.a,f=i.b,s=i;break}}if(!s)break;l=new EX(h),IE(Im(jh(Nj(b.f,f)),221).a,l),neQ(b.f,h,l),u.a.Bc(s)}return o}function nox(n,t){var e,i,r,c,a,u,o,s;if(t){if(n.a||(n.a=new wH),2==n.e){IE(n.a.a,t);return}if(1==t.e){for(r=0;r<t.em();r++)nox(n,t.am(r));return}if(0==(a=n.a.a.c.length)||!((0==(c=Im($O(n.a,a-1),117)).e||10==c.e)&&(0==t.e||10==t.e))){IE(n.a.a,t);return}(0==t.e||t.bm().length,0==c.e)?(e=new gU,(i=c._l())>=nls?jT(e,VO(i)):$i(e,i&nfI),++nYO,c=new NF(10,null,0),u=n.a,o=c,OW(s=a-1,u.a.c.length),KN(u.a,s,o)):(c.bm().length,jT(e=new gU,c.bm())),0==t.e?(i=t._l())>=nls?jT(e,VO(i)):$i(e,i&nfI):jT(e,t.bm()),Im(c,521).b=e.a}}function noD(n){var t,e,i,r,c;return null!=n.g?n.g:n.a<32?(n.g=function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;if(nod(),(u=0>WM(n,0))&&(n=Bl(n)),0==WM(n,0))switch(t){case 0:return"0";case 1:return nlg;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return f=new gX,t<0?f.a+="0E+":f.a+="0E",f.a+=t==nfp?"2147483648":""+-t,f.a}s=_f(nY$,nfS,25,19,15,1),e=18,b=n;do o=b,b=nnm(b,10),s[--e]=CZ(VK(48,VR(o,VF(b,10))))&nfI;while(0!=WM(b,0))if(i=VR(VR(VR(18,e),t),1),0==t)return u&&(s[--e]=45),Je(s,e,18-e);if(t>0&&WM(i,-6)>=0){if(WM(i,0)>=0){for(r=e+CZ(i),a=17;a>=r;a--)s[a+1]=s[a];return s[++r]=46,u&&(s[--e]=45),Je(s,e,18-e+1)}for(c=2;0>WM(c,VK(Bl(i),1));c++)s[--e]=48;return s[--e]=46,s[--e]=48,u&&(s[--e]=45),Je(s,e,18-e)}return l=e+1,h=new gW,u&&(h.a+="-"),18-l>=1?($r(h,s[e]),h.a+=".",h.a+=Je(s,e+1,18-e-1)):h.a+=Je(s,e,18-e),h.a+="E",WM(i,0)>0&&(h.a+="+"),h.a+=""+Ox(i),h.a}(zx(n.f),NU(n.e)),n.g):(r=ns9((n.c||(n.c=Wa(n.f)),n.c),0),0==n.e)?r:(t=(n.c||(n.c=Wa(n.f)),n.c).e<0?2:1,e=r.length,i=-n.e+e-t,c=new gX,c.a+=""+r,n.e>0&&i>=-6?i>=0?xm(c,e-NU(n.e),"."):(c.a=MT(c.a,0,t-1)+"0."+jm(c.a,t-1),xm(c,t+1,Je(nMt,0,-NU(i)-1))):(e-t>=1&&(xm(c,t,"."),++e),xm(c,e,"E"),i>0&&xm(c,++e,"+"),xm(c,++e,""+Ox(zx(i)))),n.g=c.a,n.g)}function noR(n){var t,e,i,r,c,a;for(HR(n.a,new nY),e=new h1(n.a);e.a<e.c.c.length;)t=Im(De(e),221),i=S7(E1(Im(n.b,65).c),Im(t.b,65).c),nPL?(a=Im(n.b,65).b,c=Im(t.b,65).b,nTv.Math.abs(i.a)>=nTv.Math.abs(i.b)?(i.b=0,c.d+c.a>a.d&&c.d<a.d+a.a&&I1(i,nTv.Math.max(a.c-(c.c+c.b),c.c-(a.c+a.b)))):(i.a=0,c.c+c.b>a.c&&c.c<a.c+a.b&&I1(i,nTv.Math.max(a.d-(c.d+c.a),c.d-(a.d+a.a))))):I1(i,nuL(Im(n.b,65),Im(t.b,65))),r=nTv.Math.sqrt(i.a*i.a+i.b*i.b),r=function n(t,e,i,r){var c,a,u;for(u=nTv.Math.min(i,function n(t,e,i,r){var c,a,u,o;for(o=i,u=new h1(e.a);u.a<u.c.c.length;){if(a=Im(De(u),221),c=Im(a.b,65),0>=V2(t.b.c,c.b.c+c.b.b)&&0>=V2(c.b.c,t.b.c+t.b.b)&&0>=V2(t.b.d,c.b.d+c.b.a)&&0>=V2(c.b.d,t.b.d+t.b.a)){if(0==V2(c.b.c,t.b.c+t.b.b)&&r.a<0||0==V2(c.b.c+c.b.b,t.b.c)&&r.a>0||0==V2(c.b.d,t.b.d+t.b.a)&&r.b<0||0==V2(c.b.d+c.b.a,t.b.d)&&r.b>0){o=0;break}}else o=nTv.Math.min(o,ne8(t,c,r));o=nTv.Math.min(o,n(t,a,o,r))}return o}(Im(t.b,65),e,i,r)),a=new h1(t.a);a.a<a.c.c.length;)(c=Im(De(a),221))!=e&&(u=nTv.Math.min(u,n(c,e,u,r)));return u}(nPA,t,r,i),I1(i,r),Oi(Im(t.b,65),i),HR(t.a,new fP(i)),Im(nPA.b,65),_l(nPA,nP$,t)}function noK(n){var t,e,i,r,c,a,u,o,s;if(n.ej()){if(o=n.fj(),n.i>0){if(t=new jc(n.i,n.g),c=(e=n.i)<100?null:new pc(e),n.ij())for(i=0;i<n.i;++i)a=n.g[i],c=n.kj(a,c);if(Fo(n),r=1==e?n.Zi(4,HX(t,0),null,0,o):n.Zi(6,t,null,-1,o),n.bj()){for(i=new Mm(t);i.e!=i.i.gc();)c=n.dj(J0(i),c);c?(c.Ei(r),c.Fi()):n.$i(r)}else c?(c.Ei(r),c.Fi()):n.$i(r)}else Fo(n),n.$i(n.Zi(6,(LV(),nMv),null,-1,o))}else if(n.bj()){if(n.i>0){for(u=n.g,s=n.i,Fo(n),c=s<100?null:new pc(s),i=0;i<s;++i)a=u[i],c=n.dj(a,c);c&&c.Fi()}else Fo(n)}else Fo(n)}function noF(n,t,e){var i,r,c,a,u,o,s,h,f;for(z2(this),e==(ND(),nB9)?Av(this.r,n):Av(this.w,n),h=nlc,s=nla,a=t.a.ec().Kc();a.Ob();)r=Im(a.Pb(),46),u=Im(r.a,455),(o=(i=Im(r.b,17)).c)==n&&(o=i.d),u==nB9?Av(this.r,o):Av(this.w,o),f=(nsR(),nWq).Hc(o.j)?gy(Ss(ntP(o,(nhu(),nxB)))):Xt(Um(xg(nCa,1),nhJ,8,0,[o.i.n,o.n,o.a])).b,h=nTv.Math.min(h,f),s=nTv.Math.max(s,f);for(ntU(this,(nsR(),nWq).Hc(n.j)?gy(Ss(ntP(n,(nhu(),nxB)))):Xt(Um(xg(nCa,1),nhJ,8,0,[n.i.n,n.n,n.a])).b,h,s),c=t.a.ec().Kc();c.Ob();)r=Im(c.Pb(),46),nes(this,Im(r.b,17));this.o=!1}function no_(n){var t,e,i,r,c,a;if(0!=(a=Im(CA(n.j,0),11)).g.c.length&&0!=a.e.c.length)throw new gg("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.").e;if(0!=a.g.c.length){for(r=nlc,t=new h1(a.g);t.a<t.c.c.length;)c=Im(De(t),17).d.i,e=Im(ntP(c,(ns8(),nK5)),142),r=nTv.Math.min(r,c.n.a-e.b);return new s2(A1(r))}if(0!=a.e.c.length){for(i=nla,t=new h1(a.e);t.a<t.c.c.length;)c=Im(De(t),17).c.i,e=Im(ntP(c,(ns8(),nK5)),142),i=nTv.Math.max(i,c.n.a+c.o.a+e.c);return new s2(A1(i))}return dJ(),dJ(),nTM}function noB(n,t){var e,i,r,c,a,u;if(!n.Fk())return nnv(n,t);if(n.i>4){if(!n.wj(t))return!1;if(n.rk()){if(u=(e=(i=Im(t,49)).Ug())==n.e&&(n.Dk()?i.Og(i.Vg(),n.zk())==n.Ak():-1-i.Vg()==n.aj()),n.Ek()&&!u&&!e&&i.Zg()){for(r=0;r<n.i;++r)if(jf(n.Gk(Im(n.g[r],56)))===jf(t))return!0}return u}if(n.Dk()&&!n.Ck()){if(jf(c=Im(t,56).ah(YI(Im(n.ak(),18))))===jf(n.e))return!0;if(null==c||!Im(c,56).kh())return!1}}if(a=nnv(n,t),n.Ek()&&!a){for(r=0;r<n.i;++r)if(jf(i=n.Gk(Im(n.g[r],56)))===jf(t))return!0}return a}function noH(n){var t,e,i,r,c,a,u,o,s,h;if(n.ej()){if(h=n.Vi(),o=n.fj(),h>0){if(t=new zi(n.Gi()),c=(e=h)<100?null:new pc(e),SI(n,e,t.g),r=1==e?n.Zi(4,HX(t,0),null,0,o):n.Zi(6,t,null,-1,o),n.bj()){for(i=new Td(t);i.e!=i.i.gc();)c=n.dj(J1(i),c);c?(c.Ei(r),c.Fi()):n.$i(r)}else c?(c.Ei(r),c.Fi()):n.$i(r)}else SI(n,n.Vi(),n.Wi()),n.$i(n.Zi(6,(LV(),nMv),null,-1,o))}else if(n.bj()){if((h=n.Vi())>0){for(u=n.Wi(),s=h,SI(n,h,u),c=s<100?null:new pc(s),i=0;i<s;++i)a=u[i],c=n.dj(a,c);c&&c.Fi()}else SI(n,n.Vi(),n.Wi())}else SI(n,n.Vi(),n.Wi())}function noq(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(r=0,c=0,o=new h1(n.a);o.a<o.c.c.length;)a=Im(De(o),10),r=nTv.Math.max(r,a.d.b),c=nTv.Math.max(c,a.d.c);for(u=new h1(n.a);u.a<u.c.c.length;){switch(a=Im(De(u),10),Im(ntP(a,(ns8(),nR9)),248).g){case 1:b=0;break;case 2:b=1;break;case 5:b=.5;break;default:for(e=0,h=0,l=new h1(a.j);l.a<l.c.c.length;)0==(f=Im(De(l),11)).e.c.length||++e,0==f.g.c.length||++h;b=e+h==0?.5:h/(e+h)}d=n.c,s=a.o.a,g=(d.a-s)*b,b>.5?g-=2*c*(b-.5):b<.5&&(g+=2*r*(.5-b)),g<(i=a.d.b)&&(g=i),w=a.d.c,g>d.a-w-s&&(g=d.a-w-s),a.n.a=t+g}}function noG(n,t){var e,i,r,c,a,u,o,s,h;return(s="",0==t.length)?n.de(nfM,nfE,-1,-1):(Pv((h=ntH(t)).substr(0,3),"at ")&&(h=h.substr(3)),-1==(a=(h=h.replace(/\[.*?\]/g,"")).indexOf("("))?-1==(a=h.indexOf("@"))?(s=h,h=""):(s=ntH(h.substr(a+1)),h=ntH(h.substr(0,a))):(e=h.indexOf(")",a),s=h.substr(a+1,e-(a+1)),h=ntH(h.substr(0,a))),-1!=(a=jZ(h,ntd(46)))&&(h=h.substr(a+1)),(0==h.length||Pv(h,"Anonymous function"))&&(h=nfE),u=T2(s,ntd(58)),r=Pj(s,ntd(58),u-1),o=-1,i=-1,c=nfM,-1!=u&&-1!=r&&(c=s.substr(0,r),o=ME(s.substr(r+1,u-(r+1))),i=ME(s.substr(u+1))),n.de(c,h,o,i))}function noz(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;if(0==t.l&&0==t.m&&0==t.h)throw new ga("divide by zero").e;if(0==n.l&&0==n.m&&0==n.h)return e&&(nTG=Ez(0,0,0)),Ez(0,0,0);if(t.h==nf6&&0==t.m&&0==t.l)return(s=n).h==nf6&&0==s.m&&0==s.l?(e&&(nTG=Ez(0,0,0)),j2((Bx(),nTX))):(e&&(nTG=Ez(s.l,s.m,s.h)),Ez(0,0,0));if(o=!1,t.h>>19!=0&&(t=Uq(t),o=!o),a=((l=(h=t).l)&l-1)!=0||((b=h.m)&b-1)!=0||((f=h.h)&f-1)!=0||0==f&&0==b&&0==l?-1:0==f&&0==b&&0!=l?qW(l):0==f&&0!=b&&0==l?qW(b)+22:0!=f&&0==b&&0==l?qW(f)+44:-1,c=!1,r=!1,i=!1,n.h==nf6&&0==n.m&&0==n.l){if(r=!0,c=!0,-1!=a)return u=nrh(n,a),o&&Xn(u),e&&(nTG=Ez(0,0,0)),u;n=j2((Bx(),nTz)),i=!0,o=!o}else n.h>>19!=0&&(c=!0,n=Uq(n),i=!0,o=!o);return -1!=a?(w=n,d=o,g=c,p=nrh(w,a),d&&Xn(p),e&&(v=w,a<=22?(m=v.l&(1<<a)-1,y=k=0):a<=44?(m=v.l,y=v.m&(1<<a-22)-1,k=0):(m=v.l,y=v.m,k=v.h&(1<<a-44)-1),w=Ez(m,y,k),nTG=g?Uq(w):Ez(w.l,w.m,w.h)),p):0>nnn(n,t)?(e&&(nTG=c?Uq(n):Ez(n.l,n.m,n.h)),Ez(0,0,0)):function(n,t,e,i,r,c){var a,u,o,s,h,f,l,b,w;for(o=U2(t)-U2(n),a=ntZ(t,o),u=Ez(0,0,0);o>=0&&((w=n.h-a.h)<0||(l=n.l-a.l,(w+=(b=n.m-a.m+(l>>22))>>22)<0||(n.l=l&nf4,n.m=b&nf4,n.h=w&nf5,0))||(o<22?u.l|=1<<o:o<44?u.m|=1<<o-22:u.h|=1<<o-44,0!=n.l||0!=n.m||0!=n.h));)s=a.m,h=a.h,f=a.l,a.h=h>>>1,a.m=s>>>1|(1&h)<<21,a.l=f>>>1|(1&s)<<21,--o;return e&&Xn(u),c&&(i?(nTG=Uq(n),r&&(nTG=Uc(nTG,(Bx(),nTX)))):nTG=Ez(n.l,n.m,n.h)),u}(i?n:Ez(n.l,n.m,n.h),t,o,c,r,e)}function noU(n,t){var e,i,r,c,a,u,o,s,h,f,l;if(n.e&&n.c.c<n.f)throw new gg("Expected "+n.f+" phases to be configured; only found "+n.c.c).e;for(c=0,o=Im(pf(n.g),9),f=Mj(n.f),u=o.length;c<u;++c)(s=Im(BM(n,(i=o[c]).g),246))?IE(f,Im(Qh(n,s),123)):f.c[f.c.length]=null;for(l=new Rf,vF(Lb(Lw(Lb(new CL(null,new x6(f,16)),new ar),new l7(t)),new ac),new bn(l)),zM(l,n.a),e=new wn,r=0,a=o.length;r<a;++r)Uf(e,Ud(n,L9(Im(BM(l,(i=o[r]).g),20)))),(h=Im(CA(f,i.g),123))&&(e.c[e.c.length]=h);return Uf(e,Ud(n,L9(Im(BM(l,o[o.length-1].g+1),20)))),e}function noX(n,t){var e,i,r,c,a,u,o,s;if(x5(u=t.length-1,t.length),93==(a=t.charCodeAt(u))){if((c=jZ(t,ntd(91)))>=0)return r=function(n,t){var e;if(Ti(e=ncp(n.Tg(),t),99))return Im(e,18);throw new gd(nyn+t+"' is not a valid reference").e}(n,t.substr(1,c-1)),function(n,t,e){var i,r,c,a,u,o,s,h,f,l;for(s=0,o=new wn,f=t.length,a=U7(e);s<f;++s){switch(h=T3(t,ntd(61),s),c=(r=Ui(i=function(n,t){var e;if(Ti(e=ncp(n,t),322))return Im(e,34);throw new gd(nyn+t+"' is not a valid attribute").e}(a,t.substr(s,h-s)))).Aj().Nh(),$9(t,++h)){case 39:u=MM(t,39,++h),IE(o,new k8(i,LS(t.substr(h,u-h),c,r))),s=u+1;break;case 34:u=MM(t,34,++h),IE(o,new k8(i,LS(t.substr(h,u-h),c,r))),s=u+1;break;case 91:IE(o,new k8(i,l=new wn));e:for(;;){switch($9(t,++h)){case 39:u=MM(t,39,++h),IE(l,LS(t.substr(h,u-h),c,r)),h=u+1;break;case 34:u=MM(t,34,++h),IE(l,LS(t.substr(h,u-h),c,r)),h=u+1;break;case 110:if(++h,t.indexOf("ull",h)==h)l.c[l.c.length]=null;else throw new d7(nye).e;h+=3}if(h<f)switch(x5(h,t.length),t.charCodeAt(h)){case 44:break;case 93:break e;default:throw new d7("Expecting , or ]").e}else break}s=h+1;break;case 110:if(++h,t.indexOf("ull",h)==h)IE(o,new k8(i,null));else throw new d7(nye).e;s=h+3}if(s<f){if(x5(s,t.length),44!=t.charCodeAt(s))throw new d7("Expecting ,").e}else break}return function(n,t,e){var i,r,c,a,u,o,s,h,f,l;l=t.c.length,f=Im((s=n.Yg(e))>=0?n._g(s,!1,!0):niO(n,e,!1),58);e:for(c=f.Kc();c.Ob();){for(h=0,r=Im(c.Pb(),56);h<l;++h)if(x4(h,t.c.length),o=(a=Im(t.c[h],72)).dd(),u=a.ak(),i=r.bh(u,!1),null==o?null!=i:!WY(o,i))continue e;return r}return null}(n,o,e)}(n,t.substr(c+1,u-(c+1)),r)}else{if(e=-1,null==nTZ&&(nTZ=RegExp("\\d")),nTZ.test(String.fromCharCode(a))&&(e=Pj(t,ntd(46),u-1))>=0){i=Im(K8(n,Hx(n,t.substr(1,e-1)),!1),58),o=0;try{o=nue(t.substr(e+1),nfp,nhM)}catch(n){if(Ti(n=Uu(n),127))throw new Bj(n).e;throw n.e}if(o<i.gc())return Ti(s=i.Xb(o),72)&&(s=Im(s,72).dd()),Im(s,56)}if(e<0)return Im(K8(n,Hx(n,t.substr(1)),!1),56)}return null}function noW(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;if(Qj(t,e)>=0)return e;switch($B(BC(n,e))){case 2:if(Pv("",WW(n,e.Hj()).ne())){if(o=La(BC(n,e)),u=Lc(BC(n,e)),h=nrC(n,t,o,u))return h;for(a=0,f=(r=naW(n,t)).gc();a<f;++a)if(ncu(Aj(BC(n,h=Im(r.Xb(a),170))),o))return h}return null;case 4:if(Pv("",WW(n,e.Hj()).ne())){for(i=e;i;(l=BC(n,i)).a==(KY(),nJT)&&(w=l.g,b=(g=(d=l.b).Hh(w.a))&&null!=(v=Sh(Q_((g.b||(g.b=new M2((nhl(),nQQ),nQE,g)),g.b),"affiliation")))?-1==(p=T2(v,ntd(35)))?Vs(w,OE(w,HU(d.Hj())),v):0==p?Vs(w,null,v.substr(1)):Vs(w,v.substr(0,p),v.substr(p+1)):null,l.a=b),i=l.a)if(s=La(BC(n,i)),u=Lc(BC(n,i)),h=nrO(n,t,s,u))return h;if(Pv(njZ,o=La(BC(n,e))))return nnw(n,t);for(a=0,f=(c=naV(n,t)).gc();a<f;++a)if(ncu(Aj(BC(n,h=Im(c.Xb(a),170))),o))return h}return null;default:return null}}function noV(){noV=C,nHE=new bR(nw$),new bR(nwL),new SA("DEPTH",Va(0)),nHp=new SA("FAN",Va(0)),nHd=new SA(nvo,Va(0)),nHC=new SA("ROOT",(TX(),!1)),nHm=new SA("LEFTNEIGHBOR",null),nHP=new SA("RIGHTNEIGHBOR",null),nHy=new SA("LEFTSIBLING",null),nHI=new SA("RIGHTSIBLING",null),nHg=new SA("DUMMY",!1),new SA("LEVEL",Va(0)),nHS=new SA("REMOVABLE_EDGES",new vK),nHO=new SA("XCOOR",Va(0)),nHA=new SA("YCOOR",Va(0)),nHk=new SA("LEVELHEIGHT",0),nHv=new SA("ID",""),nHT=new SA("POSITION",Va(0)),nHM=new SA("PRELIM",0),nHj=new SA("MODIFIER",0),nHw=new bR(nwN),nHb=new bR(nwx)}function noQ(){noQ=C,nJD=(pv(),nJx).b,nJF=Im(HX(L6(nJx.b),0),34),nJR=Im(HX(L6(nJx.b),1),34),nJK=Im(HX(L6(nJx.b),2),34),nJV=nJx.bb,Im(HX(L6(nJx.bb),0),34),Im(HX(L6(nJx.bb),1),34),nJJ=nJx.fb,nJY=Im(HX(L6(nJx.fb),0),34),Im(HX(L6(nJx.fb),1),34),Im(HX(L6(nJx.fb),2),18),nJ1=nJx.qb,nJ3=Im(HX(L6(nJx.qb),0),34),Im(HX(L6(nJx.qb),1),18),Im(HX(L6(nJx.qb),2),18),nJ0=Im(HX(L6(nJx.qb),3),34),nJ2=Im(HX(L6(nJx.qb),4),34),nJ5=Im(HX(L6(nJx.qb),6),34),nJ4=Im(HX(L6(nJx.qb),5),18),nJ_=nJx.j,nJB=nJx.k,nJH=nJx.q,nJq=nJx.w,nJG=nJx.B,nJz=nJx.A,nJU=nJx.C,nJX=nJx.D,nJW=nJx._,nJQ=nJx.cb,nJZ=nJx.hb}function noJ(n,t){var e,i,r,c;c=n.F,null==t?(n.F=null,XH(n,null)):(n.F=($x(t),t),-1!=(i=jZ(t,ntd(60)))?(r=t.substr(0,i),-1!=jZ(t,ntd(46))||Pv(r,nhk)||Pv(r,njt)||Pv(r,nje)||Pv(r,nji)||Pv(r,njr)||Pv(r,njc)||Pv(r,nja)||Pv(r,nju)||(r=njo),-1!=(e=T2(t,ntd(62)))&&(r+=""+t.substr(e+1)),XH(n,r)):(r=t,-1==jZ(t,ntd(46))&&(-1!=(i=jZ(t,ntd(91)))&&(r=t.substr(0,i)),Pv(r,nhk)||Pv(r,njt)||Pv(r,nje)||Pv(r,nji)||Pv(r,njr)||Pv(r,njc)||Pv(r,nja)||Pv(r,nju)?r=t:(r=njo,-1!=i&&(r+=""+t.substr(i)))),XH(n,r),r==t&&(n.F=n.D))),(4&n.Db)!=0&&(1&n.Db)==0&&zD(n,new O9(n,1,5,c,t))}function noY(n,t){var e;if(null==t||Pv(t,nhN)||0==t.length&&n.k!=(neT(),nzA))return null;switch(n.k.g){case 1:return Jm(t,nml)?(TX(),nTQ):Jm(t,nmb)?(TX(),nTV):null;case 2:try{return Va(nue(t,nfp,nhM))}catch(n){if(Ti(n=Uu(n),127))return null;throw n.e}case 4:try{return nt1(t)}catch(n){if(Ti(n=Uu(n),127))return null;throw n.e}case 3:return t;case 5:return X4(n),nij(n,t);case 6:return X4(n),function(n,t,e){var i,r,c,a,u,o,s;for(c=0,s=new PR(i=Im(t.e&&t.e(),9),Im(Sz(i,i.length),9),0),a=(u=naX(e,"[\\[\\]\\s,]+")).length;c<a;++c)if(0!=ntH(r=u[c]).length){if(null==(o=nij(n,r)))return null;Gv(s,Im(o,22))}return s}(n,n.a,t);case 7:try{return(e=function(n){var t,e;if(!n.a)throw new gg("IDataType class expected for layout option "+n.f).e;if(e=n.a,xl(),null==(t=Au(nVV,e)?Im($a(nVV,e),331).ug():null))throw new gg("Couldn't create new instance of property '"+n.f+"'. "+nmh+(Su(nCW),nCW.k)+nmf).e;return Im(t,414)}(n)).Jf(t),e}catch(n){if(Ti(n=Uu(n),32))return null;throw n.e}default:throw new gg("Invalid type set for this layout option.").e}}function noZ(n){var t;switch(n.d){case 1:if(n.hj())return -2!=n.o;break;case 2:if(n.hj())return -2==n.o;break;case 3:case 5:case 4:case 6:case 7:return n.o>-2;default:return!1}switch(t=n.gj(),n.p){case 0:return null!=t&&gm(So(t))!=jv(n.k,0);case 1:return null!=t&&Im(t,217).a!=CZ(n.k)<<24>>24;case 2:return null!=t&&Im(t,172).a!=(CZ(n.k)&nfI);case 6:return null!=t&&jv(Im(t,162).a,n.k);case 5:return null!=t&&Im(t,19).a!=CZ(n.k);case 7:return null!=t&&Im(t,184).a!=CZ(n.k)<<16>>16;case 3:return null!=t&&gy(Ss(t))!=n.j;case 4:return null!=t&&Im(t,155).a!=n.j;default:return null==t?null!=n.n:!WY(t,n.n)}}function no1(n,t,e){var i,r,c,a;return n.Fk()&&n.Ek()&&jf(a=OY(n,Im(e,56)))!==jf(e)?(n.Oi(t),n.Ui(t,_X(n,t,a)),n.rk()&&(r=Im(e,49),c=n.Dk()?n.Bk()?r.ih(n.b,YI(Im(Hm(Nd(n.b),n.aj()),18)).n,Im(Hm(Nd(n.b),n.aj()).Yj(),26).Bj(),null):r.ih(n.b,Qj(r.Tg(),YI(Im(Hm(Nd(n.b),n.aj()),18))),null,null):r.ih(n.b,-1-n.aj(),null,null),Im(a,49).eh()||(i=Im(a,49),c=n.Dk()?n.Bk()?i.gh(n.b,YI(Im(Hm(Nd(n.b),n.aj()),18)).n,Im(Hm(Nd(n.b),n.aj()).Yj(),26).Bj(),c):i.gh(n.b,Qj(i.Tg(),YI(Im(Hm(Nd(n.b),n.aj()),18))),null,c):i.gh(n.b,-1-n.aj(),null,c)),c&&c.Fi()),Ea(n.b)&&n.$i(n.Zi(9,e,a,t,!1)),a):e}function no0(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j;for(h=gy(Ss(ntP(n,(ns8(),nFG)))),i=gy(Ss(ntP(n,nF4))),UU(l=new az,nFG,h+i),p=(s=t).d,d=s.c.i,v=s.d.i,g=j5(d.c),m=j5(v.c),r=new wn,f=g;f<=m;f++)k=u=new Y$(n),ntY(),j=nAW,k.k=j,UU(u,(nhu(),nxE),s),UU(u,nFE,(nn2(),nWv)),UU(u,nFU,l),b=Im(CA(n.b,f),29),f==g?ZF(u,b.a.c.length-e,b):xT(u,b),(y=gy(Ss(ntP(s,nKR))))<0&&UU(s,nKR,y=0),u.o.b=y,w=nTv.Math.floor(y/2),ne9(a=new nt9,(nsR(),nWJ)),xM(a,u),a.n.b=w,ne9(o=new nt9,nWA),xM(o,u),o.n.b=w,xj(s,a),z5(c=new Ns,s),UU(c,nKV,null),xE(c,o),xj(c,p),function(n,t,e){var i;(i=t.c.i).k==(ntY(),nAW)?(UU(n,(nhu(),nxv),Im(ntP(i,nxv),11)),UU(n,nxm,Im(ntP(i,nxm),11))):(UU(n,(nhu(),nxv),t.c),UU(n,nxm,e.d))}(u,s,c),r.c[r.c.length]=c,s=c;return r}function no2(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;for(u=Im(nen(n,(nsR(),nWJ)).Kc().Pb(),11).e,f=Im(nen(n,nWA).Kc().Pb(),11).g,a=u.c.length,g=x9(Im(CA(n.j,0),11));a-- >0;){for(x4(0,u.c.length),b=Im(u.c[0],17),x4(0,f.c.length),r=Bb((i=Im(f.c[0],17)).d.e,i,0),p=i.d,b.d&&Bh(b.d.e,b),b.d=p,b.d&&C4(b.d.e,r,b),xE(i,null),xj(i,null),l=b.a,t&&I2(l,new Ee(g)),e=Jz(i.a,0);e.b!=e.d.c;)I2(l,new Ee(Im(RP(e),8)));for(d=b.b,h=new h1(i.b);h.a<h.c.c.length;)s=Im(De(h),70),d.c[d.c.length]=s;if(w=Im(ntP(b,(ns8(),nKV)),74),c=Im(ntP(i,nKV),74))for(w||(w=new dd,UU(b,nKV,w)),o=Jz(c,0);o.b!=o.d.c;)I2(w,new Ee(Im(RP(o),8)))}}function no3(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;if(e=Im($6(n.b,t),124),(o=Im(Im(Fl(n.r,t),21),84)).dc()){e.n.b=0,e.n.c=0;return}for(s=n.u.Hc((nis(),nWS)),a=0,u=o.Kc(),h=null,f=0,l=0;u.Ob();)r=gy(Ss((i=Im(u.Pb(),111)).b.We((Ma(),nPy)))),c=i.b.rf().a,n.A.Hc((QJ(),nW8))&&nav(n,t),h?(b=l+h.d.c+n.w+i.d.b,a=nTv.Math.max(a,(Ex(),qR(nbE),nTv.Math.abs(f-r)<=nbE||f==r||isNaN(f)&&isNaN(r)?0:b/(r-f)))):n.C&&n.C.b>0&&(a=nTv.Math.max(a,G8(n.C.b+i.d.b,r))),h=i,f=r,l=c;n.C&&n.C.c>0&&(b=l+n.C.c,s&&(b+=h.d.c),a=nTv.Math.max(a,(Ex(),qR(nbE),nTv.Math.abs(f-1)<=nbE||1==f||isNaN(f)&&isNaN(1)?0:b/(1-f)))),e.n.b=0,e.a.a=a}function no4(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;if(e=Im($6(n.b,t),124),(o=Im(Im(Fl(n.r,t),21),84)).dc()){e.n.d=0,e.n.a=0;return}for(s=n.u.Hc((nis(),nWS)),a=0,n.A.Hc((QJ(),nW8))&&nam(n,t),u=o.Kc(),h=null,l=0,f=0;u.Ob();)c=gy(Ss((i=Im(u.Pb(),111)).b.We((Ma(),nPy)))),r=i.b.rf().b,h?(b=f+h.d.a+n.w+i.d.d,a=nTv.Math.max(a,(Ex(),qR(nbE),nTv.Math.abs(l-c)<=nbE||l==c||isNaN(l)&&isNaN(c)?0:b/(c-l)))):n.C&&n.C.d>0&&(a=nTv.Math.max(a,G8(n.C.d+i.d.d,c))),h=i,l=c,f=r;n.C&&n.C.a>0&&(b=f+n.C.a,s&&(b+=h.d.a),a=nTv.Math.max(a,(Ex(),qR(nbE),nTv.Math.abs(l-1)<=nbE||1==l||isNaN(l)&&isNaN(1)?0:b/(1-l)))),e.n.d=0,e.a.b=a}function no5(n,t,e){var i,r,c,a,u,o;for(a=0,this.g=n,u=t.d.length,o=e.d.length,this.d=_f(nPV,nw9,10,u+o,0,1);a<u;a++)this.d[a]=t.d[a];for(c=0;c<o;c++)this.d[u+c]=e.d[c];if(t.e){if(this.e=Ij(t.e),this.e.Mc(e),e.e)for(r=e.e.Kc();r.Ob();)(i=Im(r.Pb(),233))!=t&&(this.e.Hc(i)?--i.c:this.e.Fc(i))}else e.e&&(this.e=Ij(e.e),this.e.Mc(t));this.f=t.f+e.f,this.a=t.a+e.a,this.a>0?HW(this,this.f/this.a):null!=Tu(t.g,t.d[0]).a&&null!=Tu(e.g,e.d[0]).a?HW(this,(gy(Tu(t.g,t.d[0]).a)+gy(Tu(e.g,e.d[0]).a))/2):null!=Tu(t.g,t.d[0]).a?HW(this,Tu(t.g,t.d[0]).a):null!=Tu(e.g,e.d[0]).a&&HW(this,Tu(e.g,e.d[0]).a)}function no6(n){var t;this.a=n,t=(ntY(),Um(xg(nPQ,1),nfh,267,0,[nAV,nAW,nAU,nAQ,nAX,nAz])).length,this.b=Cv(nCi,[nhJ,npX],[593,146],0,[t,t],2),this.c=Cv(nCi,[nhJ,npX],[593,146],0,[t,t],2),NO(this,nAV,(ns8(),nFJ),nFY),Un(this,nAV,nAW,nFG,nFz),NC(this,nAV,nAQ,nFG),NC(this,nAV,nAU,nFG),Un(this,nAV,nAX,nFJ,nFY),NO(this,nAW,nFB,nFH),NC(this,nAW,nAQ,nFB),NC(this,nAW,nAU,nFB),Un(this,nAW,nAX,nFG,nFz),EC(this,nAQ,nFB),NC(this,nAQ,nAU,nFB),NC(this,nAQ,nAX,nFW),EC(this,nAU,nF0),Un(this,nAU,nAX,nFQ,nFV),NO(this,nAX,nFB,nFB),NO(this,nAz,nFB,nFH),Un(this,nAz,nAV,nFG,nFz),Un(this,nAz,nAX,nFG,nFz),Un(this,nAz,nAW,nFG,nFz)}function no8(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;if(l=new Ee(n.o),p=t.a/l.a,u=t.b/l.b,d=t.a-l.a,c=t.b-l.b,e)for(r=jf(ntP(n,(ns8(),nFE)))===jf((nn2(),nWv)),w=new h1(n.j);w.a<w.c.c.length;)switch((b=Im(De(w),11)).j.g){case 1:r||(b.n.a*=p);break;case 2:b.n.a+=d,r||(b.n.b*=u);break;case 3:r||(b.n.a*=p),b.n.b+=c;break;case 4:r||(b.n.b*=u)}for(s=new h1(n.b);s.a<s.c.c.length;)h=(o=Im(De(s),70)).n.a+o.o.a/2,f=o.n.b+o.o.b/2,(g=h/l.a)+(a=f/l.b)>=1&&(g-a>0&&f>=0?(o.n.a+=d,o.n.b+=c*a):g-a<0&&h>=0&&(o.n.a+=d*g,o.n.b+=c));n.o.a=t.a,n.o.b=t.b,UU(n,(ns8(),nFu),(QJ(),new PR(i=Im(pf(nCk),9),Im(Sz(i,i.length),9),0)))}function no9(n){var t,e,i,r,c,a,u,o,s,h;for(i=new wn,a=new h1(n.e.a);a.a<a.c.c.length;){for(r=Im(De(a),121),h=0,r.k.c=_f(nEX,nhA,1,0,5,1),e=new h1(VV(r));e.a<e.c.c.length;)(t=Im(De(e),213)).f&&(IE(r.k,t),++h);1==h&&(i.c[i.c.length]=r)}for(c=new h1(i);c.a<c.c.c.length;)for(r=Im(De(c),121);1==r.k.c.length;){for(s=Im(De(new h1(r.k)),213),n.b[s.c]=s.g,u=s.d,o=s.e,e=new h1(VV(r));e.a<e.c.c.length;)WY(t=Im(De(e),213),s)||(t.f?u==t.d||o==t.e?n.b[s.c]-=n.b[t.c]-t.g:n.b[s.c]+=n.b[t.c]-t.g:r==u?t.d==r?n.b[s.c]+=t.g:n.b[s.c]-=t.g:t.d==r?n.b[s.c]-=t.g:n.b[s.c]+=t.g);Bh(u.k,s),Bh(o.k,s),r=u==r?s.e:s.d}}function no7(n,t){var e,i,r,c,a,u,o,s,h,f;if(null==t||0==t.length)return null;if(!(c=Im(Nz(n.f,t),23))){for(r=new hG(new hD(n.d).a.vc().Kc());r.a.Ob();)if(a=Im(r.a.Pb(),42),u=(e=Im(a.dd(),23)).f,f=t.length,Pv(u.substr(u.length-f,f),t)&&(t.length==u.length||46==$9(u,u.length-t.length-1))){if(c)return null;c=e}if(!c){for(i=new hG(new hD(n.d).a.vc().Kc());i.a.Ob();)if(a=Im(i.a.Pb(),42),null!=(h=(e=Im(a.dd(),23)).g)){for(o=0,s=h.length;o<s;++o)if(u=h[o],f=t.length,Pv(u.substr(u.length-f,f),t)&&(t.length==u.length||46==$9(u,u.length-t.length-1))){if(c)return null;c=e}}}c&&xp(n.f,t,c)}return c}function nsn(n){var t,e,i,r,c,a,u,o;for(t=0,c=new h1(n.b.a);c.a<c.c.c.length;)(i=Im(De(c),189)).b=0,i.c=0;for(nt6(n,0),Qu(n,n.g),ncl(n.c),Xd(n.c),W2(),e=nXI,na1(jk(nsE(na1(jk(nsE(na1(nsE(n.c,e)),Vw(e)))),e))),nsE(n.c,nXI),VM(n,n.g),ntC(n,0),noy(n,0),nrL(n,1),nt6(n,1),Qu(n,n.d),ncl(n.c),a=new h1(n.b.a);a.a<a.c.c.length;)i=Im(De(a),189),t+=nTv.Math.abs(i.c);for(u=new h1(n.b.a);u.a<u.c.c.length;)(i=Im(De(u),189)).b=0,i.c=0;for(e=nXA,na1(jk(nsE(na1(jk(nsE(na1((Xd(o=nsE(n.c,e)),o)),Vw(e)))),e))),nsE(n.c,nXI),VM(n,n.d),ntC(n,1),noy(n,1),nrL(n,0),Xd(n.c),r=new h1(n.b.a);r.a<r.c.c.length;)i=Im(De(r),189),t+=nTv.Math.abs(i.c);return t}function nst(n,t){var e,i,r,c,a,u,o,s;if(null!=t.b&&null!=n.b){for(nr$(n),noA(n),nr$(t),noA(t),e=_f(nYL,nfH,25,n.b.length+t.b.length,15,1),s=0,i=0,a=0;i<n.b.length&&a<t.b.length;)if(r=n.b[i],c=n.b[i+1],u=t.b[a],o=t.b[a+1],c<u)i+=2;else if(c>=u&&r<=o)u<=r&&c<=o?(e[s++]=r,e[s++]=c,i+=2):u<=r?(e[s++]=r,e[s++]=o,n.b[i]=o+1,a+=2):c<=o?(e[s++]=u,e[s++]=c,i+=2):(e[s++]=u,e[s++]=o,n.b[i]=o+1);else if(o<r)a+=2;else throw new d7("Token#intersectRanges(): Internal Error: ["+n.b[i]+","+n.b[i+1]+"] & ["+t.b[a]+","+t.b[a+1]+"]").e;for(;i<n.b.length;)e[s++]=n.b[i++],e[s++]=n.b[i++];n.b=_f(nYL,nfH,25,s,15,1),now(e,0,n.b,0,s)}}function nse(n,t,e){var i,r,c,a,u;this.j=n,this.e=nnY(n),this.o=this.j.e,this.i=!!this.o,this.p=this.i?Im(CA(e,$L(this.o).p),214):null,r=Im(ntP(n,(nhu(),nxu)),21),this.g=r.Hc((ncJ(),nNN)),this.b=new wn,this.d=new QW(this.e),a=Im(ntP(this.j,nxN),230),this.q=(u=this.e,t==(qB(),nBv)?new rB:0!=nr_(a,1)?new pe(u.length):new pt(u.length)),this.k=new xo(this),c=Fs(Um(xg(nP3,1),nhA,225,0,[this,this.d,this.k,this.q])),t!=(qB(),nBg)||gm(So(ntP(n,(ns8(),nKl))))?t==nBg&&gm(So(ntP(n,(ns8(),nKl))))?(i=new nn0(this.e),c.c[c.c.length]=i,this.c=new GE(i,a,Im(this.q,402))):this.c=new yw(t,this):(i=new nn0(this.e),c.c[c.c.length]=i,this.c=new Rw(i,a,Im(this.q,402))),IE(c,this.c),noT(c,this.e),this.s=function(n){var t,e,i,r,c,a,u,o,h,f,l,b,w,d,g,p,v,m,y,k,j,E;if((e=gy(Ss(ntP(n.a.j,(ns8(),nKg)))))<-1||!n.a.i||PT(Im(ntP(n.a.o,nFE),98))||2>V_(n.a.o,(nsR(),nWA)).gc()&&2>V_(n.a.o,nWJ).gc())return!0;if(n.a.c.Rf())return!1;for(y=0,m=0,v=new wn,o=n.a.e,h=0,f=o.length;h<f;++h){for(b=0,d=(u=o[h]).length;b<d;++b){if((l=u[b]).k==(ntY(),nAQ)){v.c[v.c.length]=l;continue}for(i=n.b[l.c.p][l.p],l.k==nAU?(i.b=1,Im(ntP(l,(nhu(),nxE)),11).j==(nsR(),nWA)&&(m+=i.a)):(E=V_(l,(nsR(),nWJ))).dc()||!E7(E,new rW)?i.c=1:((r=V_(l,nWA)).dc()||!E7(r,new rX))&&(y+=i.a),a=new OM(TD(Vz(l).a.Kc(),new s));nrc(a);)c=Im(K4(a),17),y+=i.c,m+=i.b,_y(n,i,c.d.i);for(j=new OM(new T$((g=qO(Um(xg(nEJ,1),nhA,20,0,[V_(l,(nsR(),nW$)),V_(l,nWV)]))).a.length,g.a));nrc(j);)k=Im(K4(j),11),(p=Im(ntP(k,(nhu(),nxA)),10))&&(y+=i.c,m+=i.b,_y(n,i,p))}for(w=new h1(v);w.a<w.c.c.length;)for(l=Im(De(w),10),i=n.b[l.c.p][l.p],a=new OM(TD(Vz(l).a.Kc(),new s));nrc(a);)c=Im(K4(a),17),y+=i.c,m+=i.b,_y(n,i,c.d.i);v.c=_f(nEX,nhA,1,0,5,1)}return(0==(t=y+m)?nlc:(y-m)/t)>=e}(this.k)}function nsi(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,k;for(f=new wt,a=new wn,nir(n,e,n.d.fg(),a,f),nir(n,i,n.d.gg(),a,f),n.b=.2*(d=nrk(BV(new CL(null,new x6(a,16)),new cO)),g=nrk(BV(new CL(null,new x6(a,16)),new cA)),nTv.Math.min(d,g)),c=0,u=0;u<a.c.length-1;u++)for(x4(u,a.c.length),o=Im(a.c[u],112),w=u+1;w<a.c.length;w++)c+=nom(n,o,(x4(w,a.c.length),Im(a.c[w],112)));for(l=Im(ntP(t,(nhu(),nxN)),230),c>=2&&(p=nci(a,!0,l),n.e||(n.e=new lY(n)),v=n.e,m=n.b,0!=p.c.length&&(k=function(n,t){var e,i,r,c,a,u,o,s;for(e=new wn,r=BV(new CL(null,new x6(n,16)),new cP),c=BV(new CL(null,new x6(n,16)),new cI),$R((V$(a=Ld(function(n){var t,e,i,r,c,a,u;for(a=0,t=336,e=0,r=new SR(n.length),u=n.length;a<u;++a)V$(c=n[a]),$R(c),i=c.a,IE(r.a,A1(i)),t&=i.qd(),e=function(n,t){var e;return(e=VK(n,t),0>WM(Dc(n,t),0)|WM(Dc(n,e),0)>=0)?e:VK(nh0,Dc(OF(e,63),1))}(e,i.rd());return Im(Im(function n(t,e){return t.c?n(t.c,e):IE(t.b,e),t}(new CL(null,ntb(new x6(($w(),QE(r.a)),16),new y,t,e)),new hS(n)),670),833)}(Um(xg(nMU,1),nhA,833,0,[r,c])),new cC)),u=new II(a,a.a.e,4|a.a.d),o=new Sd(a,u))),s=_f(nYR,nlf,25,0,15,1),pC(o.a,new fh(s)),i=1;i<s.length;i++)s[i]-s[i-1]>=2*t&&IE(e,new It(s[i-1]+t,s[i]-t));return e}(a,m),vF(H$(new CL(null,new x6(function(n){var t,e,i,r,c,a,u;for(c=new j7,e=new h1(n);e.a<e.c.c.length;)a=(t=Im(De(e),129)).a,u=t.b,c.a._b(a)||c.a._b(u)||(r=a,i=u,a.e.b+a.j.b>2&&u.e.b+u.j.b<=2&&(r=u,i=a),c.a.zc(r,c),r.q=i);return c}(p),1)),new cS),new LE(v,a,k,m)))),nn5(a,l),function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(o=new wn,a=new wn,c=new h1(n);c.a<c.c.c.length;)h=i=Im(De(c),112),f=i.f.c.length,h.d=f,l=i,b=i.k.c.length,l.i=b,0==i.d&&(o.c[o.c.length]=i),0==i.i&&0==i.e.b&&(a.c[a.c.length]=i);for(e=-1;0!=o.c.length;)for(t=new h1((i=Im(Ff(o,0),112)).k);t.a<t.c.c.length;)w=s=Im(De(t),129).b,d=nTv.Math.max(s.o,i.o+1),w.o=d,e=nTv.Math.max(e,s.o),g=s.d-1,s.d=g,0==s.d&&(o.c[o.c.length]=s);if(e>-1){for(r=new h1(a);r.a<r.c.c.length;)(i=Im(De(r),112)).o=e;for(;0!=a.c.length;)for(t=new h1((i=Im(Ff(a,0),112)).f);t.a<t.c.c.length;)(u=Im(De(t),129).a).e.b>0||(p=nTv.Math.min(u.o,i.o-1),u.o=p,v=u.i-1,u.i=v,0!=u.i||(a.c[a.c.length]=u))}}(a),b=-1,h=new h1(a);h.a<h.c.c.length;)s=Im(De(h),112),nTv.Math.abs(s.s-s.c)<nww||(b=nTv.Math.max(b,s.o),n.d.dg(s,r,n.c));return n.d.a.a.$b(),b+1}function nsr(n,t){var e,i,r,c,a,u;2>gy(Ss(ntP(t,(ns8(),nFB))))&&UU(t,nFB,2),Im(ntP(t,nKE),103)==(W2(),nXO)&&UU(t,nKE,VA(t)),0==(e=Im(ntP(t,nFx),19)).a?UU(t,(nhu(),nxN),new VH):UU(t,(nhu(),nxN),new Ka(e.a)),null==So(ntP(t,nFe))&&UU(t,nFe,(TX(),jf(ntP(t,nKO))===jf((VY(),nXR)))),vF(new CL(null,new x6(t.a,16)),new fL(n)),vF(BV(new CL(null,new x6(t.b,16)),new tu),new fN(n)),i=new no6(t),UU(t,(nhu(),nxF),i),DY(n.a),Ak(n.a,(ntI(),nAd),Im(ntP(t,nKk),246)),Ak(n.a,nAg,Im(ntP(t,nK4),246)),Ak(n.a,nAp,Im(ntP(t,nKy),246)),Ak(n.a,nAv,Im(ntP(t,nFa),246)),Ak(n.a,nAm,(a=Im(ntP(t,nKO),218),EA(),C9(nBF.a,a)||((u=new cf).a=a,S_(nBF,a,u)),Im($6(nBF,a),635))),r=n.a,c=function(n){var t,e,i,r,c,a,u;switch(e=Im(ntP(n,(nhu(),nxu)),21),t=Eo(nAl),Im(ntP(n,(ns8(),nK_)),334)==(WL(),nX2)&&zM(t,nAb),gm(So(ntP(n,nKK)))?Cg(t,(ntI(),nAd),(nhs(),n$W)):Cg(t,(ntI(),nAp),(nhs(),n$W)),null!=ntP(n,(FI(),nzR))&&zM(t,nAw),(gm(So(ntP(n,nKX)))||gm(So(ntP(n,nKF))))&&Ob(t,(ntI(),nAm),(nhs(),n$o)),Im(ntP(n,nKE),103).g){case 2:case 3:case 4:Ob(Cg(t,(ntI(),nAd),(nhs(),n$h)),nAm,n$s)}switch(e.Hc((ncJ(),nN$))&&Ob(Cg(Cg(t,(ntI(),nAd),(nhs(),n$u)),nAv,n$c),nAm,n$a),jf(ntP(n,nK3))!==jf((nco(),n_D))&&Cg(t,(ntI(),nAp),(nhs(),n$_)),e.Hc(nNF)&&(Cg(t,(ntI(),nAd),(nhs(),n$U)),Cg(t,nAg,n$G),Cg(t,nAp,n$z)),jf(ntP(n,nKr))!==jf((ntW(),nNI))&&jf(ntP(n,nKO))!==jf((VY(),nXK))&&Ob(t,(ntI(),nAm),(nhs(),n$E)),gm(So(ntP(n,nKH)))&&Cg(t,(ntI(),nAp),(nhs(),n$j)),gm(So(ntP(n,nKm)))&&Cg(t,(ntI(),nAp),(nhs(),n$1)),(jf(ntP(n,(ns8(),nK_)))===jf((WL(),nX2))?n.e||jf(ntP(n,nKw))===jf((z0(),nNH)):(a=Im(ntP(n,nKd),292),u=gm(So(ntP(n,nKm)))||jf(ntP(n,nKy))===jf((q5(),nLQ)),r=Im(ntP(n,nKb),19).a,c=n.a.c.length,u||a==(z0(),nNH)||0!=r&&!(r>c)))||(i=(jf(ntP(n,nK_))===jf(nX2)?Im(ntP(n,nKw),292):Im(ntP(n,nKd),292))==(z0(),nNq)?(nhs(),n$q):(nhs(),n$3),Cg(t,(ntI(),nAv),i)),Im(ntP(n,n_e),377).g){case 1:Cg(t,(ntI(),nAv),(nhs(),n$0));break;case 2:Ob(Cg(Cg(t,(ntI(),nAp),(nhs(),n$t)),nAv,n$e),nAm,n$i)}return jf(ntP(n,nKh))!==jf((U1(),n__))&&Cg(t,(ntI(),nAp),(nhs(),n$2)),t}(t),zM(r.a,c),UU(t,nxL,noU(n.a,t))}function nsc(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(s=nlc,h=nlc,u=nla,o=nla,l=new h1(t.i);l.a<l.c.c.length;)f=Im(De(l),65),Ef(r=Im(Im($a(n.g,f.a),46).b,33),f.b.c,f.b.d),s=nTv.Math.min(s,r.i),h=nTv.Math.min(h,r.j),u=nTv.Math.max(u,r.i+r.g),o=nTv.Math.max(o,r.j+r.f);for(b=Im(nrM(n.c,(ntA(),nGG)),116),nsB(n.c,u-s+(b.b+b.c),o-h+(b.d+b.a),!0,!0),ntE(n.c,-s+b.b,-h+b.d),i=new Td(LA(n.c));i.e!=i.i.gc();)a=ncX(e=Im(J1(i),79),!0,!0),w=ntL(e),g=ntD(e),d=new kp(w.i+w.g/2,w.j+w.f/2),c=new kp(g.i+g.g/2,g.j+g.f/2),nnc(p=S7(new kp(c.a,c.b),d),w.g,w.f),S9(d,p),nnc(v=S7(new kp(d.a,d.b),c),g.g,g.f),S9(c,v),Eb(a,d.a,d.b),El(a,c.a,c.b)}function nsa(n){var t,e,i;mc(n,new nte(((((t=new as).c=nvl,t).d="ELK Mr. Tree",t).b="Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout.",e=new cK,t.e=e,t.a=nvb,i=VD((nrt(),nVB)),t.f=i,t))),DV(n,nvl,nb9,nHG),DV(n,nvl,nwy,20),DV(n,nvl,nb8,nwp),DV(n,nvl,nwm,Va(1)),DV(n,nvl,nwE,(TX(),!0)),DV(n,nvl,npm,JZ(nHR)),DV(n,nvl,nwC,JZ(nHF)),DV(n,nvl,nwq,JZ(nH_)),DV(n,nvl,nwI,JZ(nHB)),DV(n,nvl,nwO,JZ(nHK)),DV(n,nvl,nwP,JZ(nHH)),DV(n,nvl,nwA,JZ(nHz)),DV(n,nvl,nvs,JZ(nHQ)),DV(n,nvl,nvh,JZ(nHX))}function nsu(n,t){t.dc()&&IA(n.j,!0,!0,!0,!0),WY(t,(nsR(),nWK))&&IA(n.j,!0,!0,!0,!1),WY(t,nWL)&&IA(n.j,!1,!0,!0,!0),WY(t,nWU)&&IA(n.j,!0,!0,!1,!0),WY(t,nWW)&&IA(n.j,!0,!1,!0,!0),WY(t,nWF)&&IA(n.j,!1,!0,!0,!1),WY(t,nWN)&&IA(n.j,!1,!0,!1,!0),WY(t,nWX)&&IA(n.j,!0,!1,!1,!0),WY(t,nWz)&&IA(n.j,!0,!1,!0,!1),WY(t,nWq)&&IA(n.j,!0,!0,!0,!0),WY(t,nWD)&&IA(n.j,!0,!0,!0,!0),WY(t,nWq)&&IA(n.j,!0,!0,!0,!0),WY(t,nWx)&&IA(n.j,!0,!0,!0,!0),WY(t,nWG)&&IA(n.j,!0,!0,!0,!0),WY(t,nWH)&&IA(n.j,!0,!0,!0,!0),WY(t,nWB)&&IA(n.j,!0,!0,!0,!0)}function nso(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;if(n.a!=t.Aj())throw new gd(nyf+t.ne()+nyl).e;if(i=WW((neS(),nJk),t).$k())return i.Aj().Nh().Ih(i,e);if(a=WW(nJk,t).al()){if(null==e)return null;if((u=Im(e,15)).dc())return"";for(f=new gz,c=u.Kc();c.Ob();)r=c.Pb(),jT(f,a.Aj().Nh().Ih(a,r)),f.a+=" ";return jY(f,f.a.length-1)}if(!(h=WW(nJk,t).bl()).dc()){for(s=h.Kc();s.Ob();)if((o=Im(s.Pb(),148)).wj(e))try{if(f=o.Aj().Nh().Ih(o,e),null!=f)return f}catch(n){if(!Ti(n=Uu(n),102))throw n.e}throw new gd("Invalid value: '"+e+"' for datatype :"+t.ne()).e}return Im(t,834).Fj(),null==e?null:Ti(e,172)?""+Im(e,172).a:Xp(e)==nTn?(l=nVx[0],b=Im(e,199),nsw(l.a,b,null)):V7(e)}function nss(n,t,e,i,r){var c,a,u,o;return o=nlc,a=!1,c=!!(u=noa(n,S7(new kp(t.a,t.b),n),S9(new kp(e.a,e.b),r),S7(new kp(i.a,i.b),e)))&&!(nTv.Math.abs(u.a-n.a)<=nmd&&nTv.Math.abs(u.b-n.b)<=nmd||nTv.Math.abs(u.a-t.a)<=nmd&&nTv.Math.abs(u.b-t.b)<=nmd),(u=noa(n,S7(new kp(t.a,t.b),n),e,r))&&((nTv.Math.abs(u.a-n.a)<=nmd&&nTv.Math.abs(u.b-n.b)<=nmd)==(nTv.Math.abs(u.a-t.a)<=nmd&&nTv.Math.abs(u.b-t.b)<=nmd)||c?o=nTv.Math.min(o,$C(S7(u,e))):a=!0),(u=noa(n,S7(new kp(t.a,t.b),n),i,r))&&(a||(nTv.Math.abs(u.a-n.a)<=nmd&&nTv.Math.abs(u.b-n.b)<=nmd)==(nTv.Math.abs(u.a-t.a)<=nmd&&nTv.Math.abs(u.b-t.b)<=nmd)||c)&&(o=nTv.Math.min(o,$C(S7(u,i)))),o}function nsh(n){var t,e;mc(n,new nte((((t=new as).c=nwB,t.d=nwH,t).b="Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths.",e=new tr,t.e=e,t.a=nwv,t))),DV(n,nwB,nwT,JZ(nAn)),DV(n,nwB,nwS,(TX(),!0)),DV(n,nwB,nwC,JZ(nAi)),DV(n,nwB,nwq,JZ(nAr)),DV(n,nwB,nwI,JZ(nAc)),DV(n,nwB,nwO,JZ(nAe)),DV(n,nwB,nwP,JZ(nAa)),DV(n,nwB,nwA,JZ(nAu)),DV(n,nwB,nwD,JZ(nO7)),DV(n,nwB,nwK,JZ(nO8)),DV(n,nwB,nwF,JZ(nO9)),DV(n,nwB,nw_,JZ(nAt)),DV(n,nwB,nwR,JZ(nO6))}function nsf(n,t){var e,i,r,c,a,u,o,s;if(5==t.e){nst(n,t);return}if(null!=t.b&&null!=n.b){for(nr$(n),noA(n),nr$(t),noA(t),e=_f(nYL,nfH,25,n.b.length+t.b.length,15,1),s=0,i=0,a=0;i<n.b.length&&a<t.b.length;)if(r=n.b[i],c=n.b[i+1],u=t.b[a],o=t.b[a+1],c<u)e[s++]=n.b[i++],e[s++]=n.b[i++];else if(c>=u&&r<=o)u<=r&&c<=o?i+=2:u<=r?(n.b[i]=o+1,a+=2):c<=o?(e[s++]=r,e[s++]=u-1,i+=2):(e[s++]=r,e[s++]=u-1,n.b[i]=o+1,a+=2);else if(o<r)a+=2;else throw new d7("Token#subtractRanges(): Internal Error: ["+n.b[i]+","+n.b[i+1]+"] - ["+t.b[a]+","+t.b[a+1]+"]").e;for(;i<n.b.length;)e[s++]=n.b[i++],e[s++]=n.b[i++];n.b=_f(nYL,nfH,25,s,15,1),now(e,0,n.b,0,s)}}function nsl(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;if(!n.b)return!1;for(a=null,l=null,o=new _g(null,null),r=1,o.a[1]=n.b,f=o;f.a[r];)s=r,u=l,l=f,f=f.a[r],r=(i=n.a.ue(t,f.d))<0?0:1,0==i&&(!e.c||$5(f.e,e.d))&&(a=f),!(f&&f.b)&&!gj(f.a[r])&&(gj(f.a[1-r])?l=l.a[s]=Gk(f,r):!gj(f.a[1-r])&&(b=l.a[1-s])&&(gj(b.a[1-s])||gj(b.a[s])?(c=u.a[1]==l?1:0,gj(b.a[s])?u.a[c]=DU(l,s):gj(b.a[1-s])&&(u.a[c]=Gk(l,s)),f.b=u.a[c].b=!0,u.a[c].a[0].b=!1,u.a[c].a[1].b=!1):(l.b=!1,b.b=!0,f.b=!0)));return a&&(e.b=!0,e.d=a.e,f!=a&&(function(n,t,e,i){var r,c;for(r=null==(c=t).d||n.a.ue(e.d,c.d)>0?1:0;c.a[r]!=e;)c=c.a[r],r=n.a.ue(e.d,c.d)>0?1:0;c.a[r]=i,i.b=e.b,i.a[0]=e.a[0],i.a[1]=e.a[1],e.a[0]=null,e.a[1]=null}(n,o,a,h=new _g(f.d,f.e)),l==a&&(l=h)),l.a[l.a[1]==f?1:0]=f.a[f.a[0]?0:1],--n.c),n.b=o.a[1],n.b&&(n.b.b=!1),e.b}function nsb(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;if(e)for(i=-1,h=new Rn(t,0);h.b<h.d.gc();){if(MK(h.b<h.d.gc()),u=Im(h.d.Xb(h.c=h.b++),10),null==(f=n.c[u.c.p][u.p].a)){for(a=i+1,c=new Rn(t,h.b);c.b<c.d.gc();)if(null!=(l=(MK(c.b<c.d.gc()),b=Im(c.d.Xb(c.c=c.b++),10),n.c[b.c.p][b.p]).a)){$x(l),a=l;break}f=(i+a)/2,n.c[u.c.p][u.p].a=f,n.c[u.c.p][u.p].d=($x(f),f),n.c[u.c.p][u.p].b=1}$x(f),i=f}else{for(r=0,s=new h1(t);s.a<s.c.c.length;)u=Im(De(s),10),null!=n.c[u.c.p][u.p].a&&(r=nTv.Math.max(r,gy(n.c[u.c.p][u.p].a)));for(r+=2,o=new h1(t);o.a<o.c.c.length;)u=Im(De(o),10),null==n.c[u.c.p][u.p].a&&(f=nr_(n.i,24)*nlC*r-1,n.c[u.c.p][u.p].a=f,n.c[u.c.p][u.p].d=f,n.c[u.c.p][u.p].b=1)}}function nsw(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d;for(e||(l=t.q.getTimezoneOffset(),(b=new g).a=l,b.b=0==(w=l)?"Etc/GMT":(w<0?(w=-w,d="Etc/GMT-"):d="Etc/GMT+",d+BW(w)),b.c=_f(nTh,nhJ,2,2,6,1),b.c[0]=GX(l),b.c[1]=GX(l),e=b),r=(t.q.getTimezoneOffset()-e.a)*6e4,o=u=new Sf(VK(zx(t.q.getTime()),r)),u.q.getTimezoneOffset()!=t.q.getTimezoneOffset()&&(r>0?r-=864e5:r+=864e5,o=new Sf(VK(zx(t.q.getTime()),r))),h=new gW,s=n.a.length,c=0;c<s;)if((i=$9(n.a,c))>=97&&i<=122||i>=65&&i<=90){for(a=c+1;a<s&&$9(n.a,a)==i;++a);(function(n,t,e,i,r,c){var a,u,o,s,h,f,l,b,w,d,g,p,v,m,y;switch(t){case 71:a=i.q.getFullYear()-nfB>=-1900?1:0,e>=4?jP(n,Um(xg(nTh,1),nhJ,2,6,[nfq,nfG])[a]):jP(n,Um(xg(nTh,1),nhJ,2,6,["BC","AD"])[a]);break;case 121:!function(n,t,e){var i;switch((i=e.q.getFullYear()-nfB+nfB)<0&&(i=-i),t){case 1:n.a+=i;break;case 2:B2(n,i%100,2);break;default:B2(n,i,t)}}(n,e,i);break;case 77:!function(n,t,e){var i;switch(i=e.q.getMonth(),t){case 5:jP(n,Um(xg(nTh,1),nhJ,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[i]);break;case 4:jP(n,Um(xg(nTh,1),nhJ,2,6,[nfC,nfO,nfA,nf$,nfL,nfN,nfx,nfD,nfR,nfK,nfF,nf_])[i]);break;case 3:jP(n,Um(xg(nTh,1),nhJ,2,6,["Jan","Feb","Mar","Apr",nfL,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[i]);break;default:B2(n,i+1,t)}}(n,e,i);break;case 107:0==(u=r.q.getHours())?B2(n,24,e):B2(n,u,e);break;case 83:0>WM(b=zx(r.q.getTime()),0)?(w=nfP-CZ(QU(Bl(b),nfP)))==nfP&&(w=0):w=CZ(QU(b,nfP)),1==e?$r(n,48+(w=nTv.Math.min((w+50)/100|0,9))&nfI):2==e?B2(n,w=nTv.Math.min((w+5)/10|0,99),2):(B2(n,w,3),e>3&&B2(n,0,e-3));break;case 69:o=i.q.getDay(),5==e?jP(n,Um(xg(nTh,1),nhJ,2,6,["S","M","T","W","T","F","S"])[o]):4==e?jP(n,Um(xg(nTh,1),nhJ,2,6,[nfz,nfU,nfX,nfW,nfV,nfQ,nfJ])[o]):jP(n,Um(xg(nTh,1),nhJ,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[o]);break;case 97:r.q.getHours()>=12&&24>r.q.getHours()?jP(n,Um(xg(nTh,1),nhJ,2,6,["AM","PM"])[1]):jP(n,Um(xg(nTh,1),nhJ,2,6,["AM","PM"])[0]);break;case 104:0==(s=r.q.getHours()%12)?B2(n,12,e):B2(n,s,e);break;case 75:B2(n,r.q.getHours()%12,e);break;case 72:B2(n,r.q.getHours(),e);break;case 99:h=i.q.getDay(),5==e?jP(n,Um(xg(nTh,1),nhJ,2,6,["S","M","T","W","T","F","S"])[h]):4==e?jP(n,Um(xg(nTh,1),nhJ,2,6,[nfz,nfU,nfX,nfW,nfV,nfQ,nfJ])[h]):3==e?jP(n,Um(xg(nTh,1),nhJ,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[h]):B2(n,h,1);break;case 76:f=i.q.getMonth(),5==e?jP(n,Um(xg(nTh,1),nhJ,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[f]):4==e?jP(n,Um(xg(nTh,1),nhJ,2,6,[nfC,nfO,nfA,nf$,nfL,nfN,nfx,nfD,nfR,nfK,nfF,nf_])[f]):3==e?jP(n,Um(xg(nTh,1),nhJ,2,6,["Jan","Feb","Mar","Apr",nfL,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[f]):B2(n,f+1,e);break;case 81:l=i.q.getMonth()/3|0,e<4?jP(n,Um(xg(nTh,1),nhJ,2,6,["Q1","Q2","Q3","Q4"])[l]):jP(n,Um(xg(nTh,1),nhJ,2,6,["1st quarter","2nd quarter","3rd quarter","4th quarter"])[l]);break;case 100:B2(n,i.q.getDate(),e);break;case 109:B2(n,r.q.getMinutes(),e);break;case 115:B2(n,r.q.getSeconds(),e);break;case 122:e<4?jP(n,c.c[0]):jP(n,c.c[1]);break;case 118:jP(n,c.b);break;case 90:e<3?jP(n,(g=-c.a,d=Um(xg(nY$,1),nfS,25,15,[43,48,48,48,48]),g<0&&(d[0]=45,g=-g),d[1]=d[1]+((g/60|0)/10|0)&nfI,d[2]=d[2]+(g/60|0)%10&nfI,d[3]=d[3]+(g%60/10|0)&nfI,d[4]=d[4]+g%10&nfI,Je(d,0,d.length))):3==e?jP(n,(v=-c.a,p=Um(xg(nY$,1),nfS,25,15,[43,48,48,58,48,48]),v<0&&(p[0]=45,v=-v),p[1]=p[1]+((v/60|0)/10|0)&nfI,p[2]=p[2]+(v/60|0)%10&nfI,p[4]=p[4]+(v%60/10|0)&nfI,p[5]=p[5]+v%10&nfI,Je(p,0,p.length))):jP(n,(m=c.a,y=Um(xg(nY$,1),nfS,25,15,[71,77,84,45,48,48,58,48,48]),m<=0&&(y[3]=43,m=-m),y[4]=y[4]+((m/60|0)/10|0)&nfI,y[5]=y[5]+(m/60|0)%10&nfI,y[7]=y[7]+(m%60/10|0)&nfI,y[8]=y[8]+m%10&nfI,Je(y,0,y.length)));break;default:return 0}})(h,i,a-c,u,o,e),c=a}else if(39==i){if(++c<s&&39==$9(n.a,c)){h.a+="'",++c;continue}for(f=!1;!f;){for(a=c;a<s&&39!=$9(n.a,a);)++a;if(a>=s)throw new gd("Missing trailing '").e;a+1<s&&39==$9(n.a,a+1)?++a:f=!0,jP(h,MT(n.a,c,a)),c=a+1}}else h.a+=String.fromCharCode(i),++c;return h.a}function nsd(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(b=nei(ncX(t,!1,!1)),i&&(b=Xw(b)),d=gy(Ss(nrM(t,(J2(),nOo)))),MK(0!=b.b),l=Im(b.a.a.c,8),s=Im(J7(b,1),8),b.b>2?(Uf(o=new wn,new x2(b,1,b.b)),z5(w=new nrf(nht(o,d+n.a)),t),e.c[e.c.length]=w):w=i?Im($a(n.b,ntL(t)),266):Im($a(n.b,ntD(t)),266),a=ntL(t),i&&(a=ntD(t)),g=a,m=nwt,Yc(),v=nC2,m=nTv.Math.abs(l.b),(p=nTv.Math.abs(g.f-l.b))<m&&(m=p,v=nC3),(p=nTv.Math.abs(l.a))<m&&(m=p,v=nC4),(p=nTv.Math.abs(g.g-l.a))<m&&(m=p,v=nC0),c=v,u=d+n.a,c.a?(u+=nTv.Math.abs(l.b-s.b),f=new kp(s.a,(s.b+l.b)/2)):(u+=nTv.Math.abs(l.a-s.a),f=new kp((s.a+l.a)/2,s.b)),i?$J(n.d,t,new Y5(w,c,f,u)):$J(n.c,t,new Y5(w,c,f,u)),$J(n.b,t,w),t.n||(t.n=new An(nCK,t,1,7)),h=new Td(t.n);h.e!=h.i.gc();)r=naL(n,Im(J1(h),137),!0,0,0),e.c[e.c.length]=r}function nsg(n,t,e){var i,r,c,a,u;if(u=n.c,t||(t=nQ5),n.c=t,(4&n.Db)!=0&&(1&n.Db)==0&&(a=new O9(n,1,2,u,n.c),e?e.Ei(a):e=a),u!=t){if(Ti(n.Cb,284))n.Db>>16==-10?e=Im(n.Cb,284).nk(t,e):n.Db>>16==-15&&(t||(nhl(),t=nQB),u||(nhl(),u=nQB),n.Cb.nh()&&(a=new BE(n.Cb,1,13,u,t,Yl(BO(Im(n.Cb,59)),n),!1),e?e.Ei(a):e=a));else if(Ti(n.Cb,88))n.Db>>16==-23&&(Ti(t,88)||(nhl(),t=nQG),Ti(u,88)||(nhl(),u=nQG),n.Cb.nh()&&(a=new BE(n.Cb,1,10,u,t,Yl(RJ(Im(n.Cb,26)),n),!1),e?e.Ei(a):e=a));else if(Ti(n.Cb,444))for((c=Im(n.Cb,836)).b||(c.b=new b1(new dC)),r=new b0(new XE(new hL(c.b.a).a));r.a.b;)e=nsg(i=Im(HQ(r.a).cd(),87),nr0(i,c),e)}return e}function nsp(n){var t,e,i,r,c,a,u,o,s,h,f,l;if((l=Im(nrM(n,(nha(),nUR)),21)).dc())return null;if(u=0,a=0,l.Hc((QJ(),nW6))){for(h=Im(nrM(n,nU6),98),i=2,e=2,r=2,c=2,t=xt(n)?Im(nrM(xt(n),nUl),103):Im(nrM(n,nUl),103),s=new Td((n.c||(n.c=new An(nC_,n,9,9)),n.c));s.e!=s.i.gc();)if(o=Im(J1(s),118),(f=Im(nrM(o,nXi),61))==(nsR(),nWQ)&&(f=nuD(o,t),Yu(o,nXi,f)),h==(nn2(),nWv))switch(f.g){case 1:i=nTv.Math.max(i,o.i+o.g);break;case 2:e=nTv.Math.max(e,o.j+o.f);break;case 3:r=nTv.Math.max(r,o.i+o.g);break;case 4:c=nTv.Math.max(c,o.j+o.f)}else switch(f.g){case 1:i+=o.g+2;break;case 2:e+=o.f+2;break;case 3:r+=o.g+2;break;case 4:c+=o.f+2}u=nTv.Math.max(i,r),a=nTv.Math.max(e,c)}return nsB(n,u,a,!0,!0)}function nsv(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y;for(v=Im(Kc(H$(Lb(new CL(null,new x6(t.d,16)),new lv(e)),new lm(e)),_x(new B,new _,new ne,Um(xg(nMz,1),nfh,132,0,[(XW(),nM2)]))),15),f=nhM,h=nfp,o=new h1(t.b.j);o.a<o.c.c.length;)(u=Im(De(o),11)).j==e&&(f=nTv.Math.min(f,u.p),h=nTv.Math.max(h,u.p));if(f==nhM)for(a=0;a<v.gc();a++)_$(Im(v.Xb(a),101),e,a);else for(function(n,t){var e;for(e=0;e<t;++e)n[e]=-1}(m=_f(nYL,nfH,25,r.length,15,1),m.length),p=v.Kc();p.Ob();){for(g=Im(p.Pb(),101),c=Im($a(n.b,g),177),s=0,d=f;d<=h;d++)c[d]&&(s=nTv.Math.max(s,i[d]));if(g.i){for(l=0,b=g.i.c,y=new w_;l<r.length;l++)r[b][l]&&Av(y,Va(m[l]));for(;v$(y,Va(s));)++s}for(_$(g,e,s),w=f;w<=h;w++)c[w]&&(i[w]=s+1);g.i&&(m[g.i.c]=s)}}function nsm(n,t,e){var i,r,c,a,u,o,s,h;for(z5(s=new Y$(e),t),UU(s,(nhu(),nxE),t),s.o.a=t.g,s.o.b=t.f,s.n.a=t.i,s.n.b=t.j,IE(e.a,s),$J(n.a,t,s),(0!=(t.a||(t.a=new An(nCF,t,10,11)),t.a).i||gm(So(nrM(t,(ns8(),nKz)))))&&UU(s,nN3,(TX(),!0)),o=Im(ntP(e,nxu),21),(h=Im(ntP(s,(ns8(),nFE)),98))==(nn2(),nWj)?UU(s,nFE,nWk):h!=nWk&&o.Fc((ncJ(),nNR)),i=Im(ntP(e,nKE),103),u=new Td((t.c||(t.c=new An(nC_,t,9,9)),t.c));u.e!=u.i.gc();)gm(So(nrM(a=Im(J1(u),118),nFf)))||function(n,t,e,i,r,c){var a,u,o,s,h,f;for(z5(s=new nt9,t),ne9(s,Im(nrM(t,(ns8(),nFI)),61)),UU(s,(nhu(),nxE),t),xM(s,e),(f=s.o).a=t.g,f.b=t.f,(h=s.n).a=t.i,h.b=t.j,$J(n.a,t,s),(a=KD(Lw(BV(new CL(null,(t.e||(t.e=new Ph(nC$,t,7,4)),new x6(t.e,16))),new tR),new tx),new fG(t)))||(a=KD(Lw(BV(new CL(null,(t.d||(t.d=new Ph(nC$,t,8,5)),new x6(t.d,16))),new tK),new tD),new fz(t))),a||(a=KD(new CL(null,(t.e||(t.e=new Ph(nC$,t,7,4)),new x6(t.e,16))),new tF)),UU(s,nxh,(TX(),!!a)),function(n,t,e,i){var r,c,a,u,o,s;if((u=n.j)==(nsR(),nWQ)&&t!=(nn2(),nWk)&&t!=(nn2(),nWj)&&(u=nuw(n,e),ne9(n,u),(n.q?n.q:(LV(),LV(),nMm))._b((ns8(),nFj))||u==nWQ||0==n.n.a&&0==n.n.b||UU(n,nFj,function(n,t){var e;switch(e=n.i,t.g){case 1:return-(n.n.b+n.o.b);case 2:return n.n.a-e.o.a;case 3:return n.n.b-e.o.b;case 4:return-(n.n.a+n.o.a)}return 0}(n,u))),t==(nn2(),nWm)){switch(s=0,u.g){case 1:case 3:(c=n.i.o.a)>0&&(s=n.n.a/c);break;case 2:case 4:(r=n.i.o.b)>0&&(s=n.n.b/r)}UU(n,(nhu(),nx$),s)}if(o=n.o,a=n.a,i)a.a=i.a,a.b=i.b,n.d=!0;else if(t!=nWk&&t!=nWj&&u!=nWQ)switch(u.g){case 1:a.a=o.a/2;break;case 2:a.a=o.a,a.b=o.b/2;break;case 3:a.a=o.a/2,a.b=o.b;break;case 4:a.b=o.b/2}else a.a=o.a/2,a.b=o.b/2}(s,c,r,Im(nrM(t,nFk),8)),o=new Td((t.n||(t.n=new An(nCK,t,1,7)),t.n));o.e!=o.i.gc();)!gm(So(nrM(u=Im(J1(o),137),nFf)))&&u.a&&IE(s.f,WE(u));switch(r.g){case 2:case 1:(s.j==(nsR(),nW$)||s.j==nWV)&&i.Fc((ncJ(),nNK));break;case 4:case 3:(s.j==(nsR(),nWA)||s.j==nWJ)&&i.Fc((ncJ(),nNK))}}(n,a,s,o,i,h);for(c=new Td((t.n||(t.n=new An(nCK,t,1,7)),t.n));c.e!=c.i.gc();)!gm(So(nrM(r=Im(J1(c),137),nFf)))&&r.a&&IE(s.b,WE(r));return gm(So(ntP(s,nKt)))&&o.Fc((ncJ(),nN$)),gm(So(ntP(s,nKG)))&&(o.Fc((ncJ(),nND)),o.Fc(nNx),UU(s,nFE,nWk)),s}function nsy(n,t){var e,i,r,c,a,u,o;if(Ti(n.Ug(),160)?(nsy(Im(n.Ug(),160),t),t.a+=" > "):t.a+="Root ",Pv((e=n.Tg().zb).substr(0,3),"Elk")?jP(t,e.substr(3)):t.a+=""+e,r=n.zg()){jP((t.a+=" ",t),r);return}if(Ti(n,354)&&(o=Im(n,137).a)){jP((t.a+=" ",t),o);return}for(c=new Td(n.Ag());c.e!=c.i.gc();)if(o=Im(J1(c),137).a){jP((t.a+=" ",t),o);return}if(Ti(n,352)&&((i=Im(n,79)).b||(i.b=new Ph(nCA,i,4,7)),0!=i.b.i&&(i.c||(i.c=new Ph(nCA,i,5,8)),0!=i.c.i))){for(t.a+=" (",a=new Mv((i.b||(i.b=new Ph(nCA,i,4,7)),i.b));a.e!=a.i.gc();)a.e>0&&(t.a+=nhC),nsy(Im(J1(a),160),t);for(t.a+=nw4,u=new Mv((i.c||(i.c=new Ph(nCA,i,5,8)),i.c));u.e!=u.i.gc();)u.e>0&&(t.a+=nhC),nsy(Im(J1(u),160),t);t.a+=")"}}function nsk(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g;return u=S7(new kp(t.a,t.b),n),o=S7(new kp(i.a,i.b),e),s=n.a,b=n.b,f=e.a,d=e.b,h=u.a,w=u.b,r=(l=o.a)*w-h*(g=o.b),Ex(),qR(np3),!(nTv.Math.abs(0-r)<=np3||0==r||isNaN(0)&&isNaN(r))&&(c=1/r*((s-f)*w-(b-d)*h),a=-(1/r*(-(s-f)*g+(b-d)*l)),qR(np3),(nTv.Math.abs(0-c)<=np3||0==c||isNaN(0)&&isNaN(c)?0:0<c?-1:0>c?1:j1(isNaN(0),isNaN(c)))<0&&(qR(np3),(nTv.Math.abs(c-1)<=np3||1==c||isNaN(c)&&isNaN(1)?0:c<1?-1:c>1?1:j1(isNaN(c),isNaN(1)))<0)&&(qR(np3),(nTv.Math.abs(0-a)<=np3||0==a||isNaN(0)&&isNaN(a)?0:0<a?-1:0>a?1:j1(isNaN(0),isNaN(a)))<0)&&(qR(np3),(nTv.Math.abs(a-1)<=np3||1==a||isNaN(a)&&isNaN(1)?0:a<1?-1:a>1?1:j1(isNaN(a),isNaN(1)))<0))}function nsj(n,t){var e;if(n.e)throw new gg((Su(nSi),nlZ+nSi.k+nl1)).e;if(!T8(n.a.e,t))throw new d7(nl0+t+nl2).e;if(t==n.d)return n;switch(e=n.d,n.d=t,e.g){case 0:switch(t.g){case 2:Zr(n);break;case 1:U9(n),Zr(n);break;case 4:nnL(n),Zr(n);break;case 3:nnL(n),U9(n),Zr(n)}break;case 2:switch(t.g){case 1:U9(n),naS(n);break;case 4:nnL(n),Zr(n);break;case 3:nnL(n),U9(n),Zr(n)}break;case 1:switch(t.g){case 2:U9(n),naS(n);break;case 4:U9(n),nnL(n),Zr(n);break;case 3:U9(n),nnL(n),U9(n),Zr(n)}break;case 4:switch(t.g){case 2:nnL(n),Zr(n);break;case 1:nnL(n),U9(n),Zr(n);break;case 3:U9(n),naS(n)}break;case 3:switch(t.g){case 2:U9(n),nnL(n),Zr(n);break;case 1:U9(n),nnL(n),U9(n),Zr(n);break;case 4:U9(n),naS(n)}}return n}function nsE(n,t){var e;if(n.d)throw new gg((Su(nPB),nlZ+nPB.k+nl1)).e;if(!T8(n.a.c,t))throw new d7(nl0+t+nl2).e;if(t==n.c)return n;switch(e=n.c,n.c=t,e.g){case 0:switch(t.g){case 2:Xd(n);break;case 1:U8(n),Xd(n);break;case 4:nnN(n),Xd(n);break;case 3:nnN(n),U8(n),Xd(n)}break;case 2:switch(t.g){case 1:U8(n),naP(n);break;case 4:nnN(n),Xd(n);break;case 3:nnN(n),U8(n),Xd(n)}break;case 1:switch(t.g){case 2:U8(n),naP(n);break;case 4:U8(n),nnN(n),Xd(n);break;case 3:U8(n),nnN(n),U8(n),Xd(n)}break;case 4:switch(t.g){case 2:nnN(n),Xd(n);break;case 1:nnN(n),U8(n),Xd(n);break;case 3:U8(n),naP(n)}break;case 3:switch(t.g){case 2:U8(n),nnN(n),Xd(n);break;case 1:U8(n),nnN(n),U8(n),Xd(n);break;case 4:U8(n),naP(n)}}return n}function nsT(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w;for(l=e.d,f=e.c,a=(c=new kp(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a)).b,s=new h1(n.a);s.a<s.c.c.length;)if((u=Im(De(s),10)).k==(ntY(),nAU)){switch(i=Im(ntP(u,(nhu(),nxr)),61),r=Im(ntP(u,nxc),8),h=u.n,i.g){case 2:h.a=e.f.a+l.c-f.a;break;case 4:h.a=-f.a-l.b}switch(w=0,i.g){case 2:case 4:t==(nn2(),nWm)?(b=gy(Ss(ntP(u,nx$))),h.b=c.b*b-Im(ntP(u,(ns8(),nFk)),8).b,w=h.b+r.b,z7(u,!1,!0)):t==nWv&&(h.b=gy(Ss(ntP(u,nx$)))-Im(ntP(u,(ns8(),nFk)),8).b,w=h.b+r.b,z7(u,!1,!0))}a=nTv.Math.max(a,w)}for(e.f.b+=a-c.b,o=new h1(n.a);o.a<o.c.c.length;)if((u=Im(De(o),10)).k==(ntY(),nAU))switch(i=Im(ntP(u,(nhu(),nxr)),61),h=u.n,i.g){case 1:h.b=-f.b-l.d;break;case 3:h.b=e.f.b+l.a-f.b}}function nsM(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M;return function(n,t){var e,i,r,c;for(e=!t||!n.u.Hc((nis(),nWS)),c=0,r=new h1(n.e.Cf());r.a<r.c.c.length;){if((i=Im(De(r),838)).Hf()==(nsR(),nWQ))throw new gd("Label and node size calculator can only be used with ports that have port sides assigned.").e;i.vf(c++),function(n,t,e){var i;i=new niq(n,t),niP(n.r,t.Hf(),i),e&&!OQ(n.u)&&(i.c=new NB(n.d),HR(t.wf(),new fT(i)))}(n,i,e)}}(u=new nsI(t),i),r=!0,n&&n.Xe((nha(),nUl))&&(r=(c=Im(n.We((nha(),nUl)),103))==(W2(),nXO)||c==nXI||c==nXC),nal(u,!1),HR(u.e.wf(),new PZ(u,!1,r)),NV(u,u.f,(HB(),nSW),(nsR(),nW$)),NV(u,u.f,nSQ,nWV),NV(u,u.g,nSW,nWJ),NV(u,u.g,nSQ,nWA),Yi(u,nW$),Yi(u,nWV),$8(u,nWA),$8(u,nWJ),SE(),(a=u.A.Hc((QJ(),nW4))&&u.B.Hc((na9(),nVi))?Qx(u):null)&&(u.a.b=new Ee(a)),function(n){var t,e,i,r,c,a,u;for(SE(),i=n.f.n,a=A3(n.r).a.nc();a.Ob();){if(c=Im(a.Pb(),111),r=0,c.b.Xe((nha(),nU5))&&(r=gy(Ss(c.b.We(nU5))))<0)switch(c.b.Hf().g){case 1:i.d=nTv.Math.max(i.d,-r);break;case 3:i.a=nTv.Math.max(i.a,-r);break;case 2:i.c=nTv.Math.max(i.c,-r);break;case 4:i.b=nTv.Math.max(i.b,-r)}if(OQ(n.u))switch(t=function(n,t){var e;return niv(new kp((e=nts(n)).c,e.d),new kp(e.b,e.a),n.rf(),t,n.Hf())}(c.b,r),u=!Im(n.e.We(nUH),174).Hc((na9(),nW7)),e=!1,c.b.Hf().g){case 1:e=t>i.d,i.d=nTv.Math.max(i.d,t),u&&e&&(i.d=nTv.Math.max(i.d,i.a),i.a=i.d+r);break;case 3:e=t>i.a,i.a=nTv.Math.max(i.a,t),u&&e&&(i.a=nTv.Math.max(i.a,i.d),i.d=i.a+r);break;case 2:e=t>i.c,i.c=nTv.Math.max(i.c,t),u&&e&&(i.c=nTv.Math.max(i.b,i.c),i.b=i.c+r);break;case 4:e=t>i.b,i.b=nTv.Math.max(i.b,t),u&&e&&(i.b=nTv.Math.max(i.b,i.c),i.c=i.b+r)}}}(u),function(n){switch(n.q.g){case 5:nnd(n,(nsR(),nW$)),nnd(n,nWV);break;case 4:no3(n,(nsR(),nW$)),no3(n,nWV);break;default:neL(n,(nsR(),nW$)),neL(n,nWV)}}(u),function(n){switch(n.q.g){case 5:nng(n,(nsR(),nWA)),nng(n,nWJ);break;case 4:no4(n,(nsR(),nWA)),no4(n,nWJ);break;default:neN(n,(nsR(),nWA)),neN(n,nWJ)}}(u),function(n){var t,e,i,r,c,a,u;if(!n.A.dc()){if(n.A.Hc((QJ(),nW6))&&(Im($6(n.b,(nsR(),nW$)),124).k=!0,Im($6(n.b,nWV),124).k=!0,t=n.q!=(nn2(),nWm)&&n.q!=nWv,Im($6(n.b,nWA),124).j=t,Im($6(n.b,nWJ),124).j=t,n.g.j=t,n.A.Hc(nW8)&&(Im($6(n.b,nW$),124).j=!0,Im($6(n.b,nWV),124).j=!0,Im($6(n.b,nWA),124).k=!0,Im($6(n.b,nWJ),124).k=!0,n.g.k=!0)),n.A.Hc(nW5))for(n.a.j=!0,n.a.k=!0,n.g.j=!0,n.g.k=!0,u=n.B.Hc((na9(),nVr)),r=JF(),c=0,a=r.length;c<a;++c)i=r[c],(e=Im($6(n.i,i),306))&&(Jw(i)?(e.j=!0,e.k=!0):(e.j=!u,e.k=!u));n.A.Hc(nW4)&&n.B.Hc((na9(),nVi))&&(n.g.j=!0,n.g.j=!0,n.a.j||(n.a.j=!0,n.a.k=!0,n.a.e=!0))}}(u),f=u.o,SE(),u.A.dc()||WY(u.A,nPm)?l=f.a:(l=nid(u.f),u.A.Hc((QJ(),nW5))&&!u.B.Hc((na9(),nVr))&&(l=nTv.Math.max(l,nid(Im($6(u.p,(nsR(),nW$)),244))),l=nTv.Math.max(l,nid(Im($6(u.p,nWV),244)))),(s=z$(u))&&(l=nTv.Math.max(l,s.a))),gm(So(u.e.yf().We((nha(),nUF))))?f.a=nTv.Math.max(f.a,l):f.a=l,(h=u.f.i).c=0,h.b=l,nu_(u.f),function(n){switch(Ma(),n.q.g){case 5:nif(n,(nsR(),nW$)),nif(n,nWV);break;case 4:nrq(n,(nsR(),nW$)),nrq(n,nWV);break;default:nsx(n,(nsR(),nW$)),nsx(n,nWV)}}(u),JC(u,nW$),JC(u,nWV),u.q!=(nn2(),nWm)&&u.q!=nWv&&(y=u.f.n.d+Cn(Im($6(u.b,(nsR(),nW$)),124))+u.c,p=u.f.n.a+Cn(Im($6(u.b,nWV),124))+u.c,m=Im($6(u.b,nWA),124),j=Im($6(u.b,nWJ),124),k=nTv.Math.max(0,m.n.d-y),k=nTv.Math.max(k,j.n.d-y),v=nTv.Math.max(0,m.n.a-p),v=nTv.Math.max(v,j.n.a-p),m.n.d=k,j.n.d=k,m.n.a=v,j.n.a=v),g=u.o,SE(),u.A.dc()||WY(u.A,nPm)?b=g.b:(b=niw(u.f),u.A.Hc((QJ(),nW5))&&!u.B.Hc((na9(),nVr))&&(b=nTv.Math.max(b,niw(Im($6(u.p,(nsR(),nWA)),244))),b=nTv.Math.max(b,niw(Im($6(u.p,nWJ),244)))),(w=z$(u))&&(b=nTv.Math.max(b,w.b)),u.A.Hc(nW6)&&(u.q==(nn2(),nWm)||u.q==nWv)&&(b=nTv.Math.max(b,Cn(Im($6(u.b,(nsR(),nWA)),124))),b=nTv.Math.max(b,Cn(Im($6(u.b,nWJ),124))))),gm(So(u.e.yf().We((nha(),nUF))))?g.b=nTv.Math.max(g.b,b):g.b=b,(d=u.f.i).d=0,d.a=b,nuG(u.f),e&&(function(n){var t,e,i;for(SE(),t=n.o.b,e=Im(Im(Fl(n.r,(nsR(),nWV)),21),84).Kc();e.Ob();)i=Im(e.Pb(),111).e,i.b+=t}(u),function(n){switch(Ma(),n.q.g){case 5:niG(n,(nsR(),nWA)),niG(n,nWJ);break;case 4:J5(n,(nsR(),nWA)),J5(n,nWJ);break;default:nsD(n,(nsR(),nWA)),nsD(n,nWJ)}}(u),JC(u,nWA),JC(u,nWJ),o=u.B.Hc((na9(),nVr)),neZ(u,o,nW$),neZ(u,o,nWV),ne1(u,o,nWA),ne1(u,o,nWJ),vF(new CL(null,new x6(new hD(u.i),0)),new nP),vF(Lb(new CL(null,A3(u.r).a.oc()),new nI),new nC),SE(),u.B.Hc((na9(),nVn))&&(M=u.f.i,E=new Nf(u.a.c),(T=new da).b=E.c-M.c,T.d=E.d-M.d,T.c=M.c+M.b-(E.c+E.b),T.a=M.d+M.a-(E.d+E.a),u.e.Ff(T)),u.e.uf(u.o),vF(new CL(null,A3(u.r).a.oc()),new nA)),u.o}function nsS(n,t,e,i,r,c,a){var u,o,s,h,f,l,b,w,d,g,p,v;for(f=null,i==(ND(),nB9)?f=t:i==nB7&&(f=e),w=f.a.ec().Kc();w.Ob();){for(b=Im(w.Pb(),11),d=Xt(Um(xg(nCa,1),nhJ,8,0,[b.i.n,b.n,b.a])).b,v=new w_,u=new w_,s=new Fm(b.b);EB(s.a)||EB(s.b);)if(gm(So(ntP(o=Im(EB(s.a)?De(s.a):De(s.b),17),(nhu(),nxD))))==r&&-1!=Bb(c,o,0)){if(g=o.d==b?o.c:o.d,p=Xt(Um(xg(nCa,1),nhJ,8,0,[g.i.n,g.n,g.a])).b,.2>nTv.Math.abs(p-d))continue;p<d?t.a._b(g)?Av(v,new k_(nB9,o)):Av(v,new k_(nB7,o)):t.a._b(g)?Av(u,new k_(nB9,o)):Av(u,new k_(nB7,o))}if(v.a.gc()>1)for(l=new noF(b,v,i),KA(v,new y5(n,l)),a.c[a.c.length]=l,h=v.a.ec().Kc();h.Ob();)Bh(c,Im(h.Pb(),46).b);if(u.a.gc()>1)for(l=new noF(b,u,i),KA(u,new y6(n,l)),a.c[a.c.length]=l,h=u.a.ec().Kc();h.Ob();)Bh(c,Im(h.Pb(),46).b)}}function nsP(n){var t,e;mc(n,new nte(((((t=new as).c=nvO,t).d="ELK Radial",t).b='A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.',e=new cU,t.e=e,t.a=nvO,t))),DV(n,nvO,npH,JZ(nqL)),DV(n,nvO,nwy,JZ(nqD)),DV(n,nvO,nwC,JZ(nqS)),DV(n,nvO,nwq,JZ(nqP)),DV(n,nvO,nwI,JZ(nqI)),DV(n,nvO,nwO,JZ(nqM)),DV(n,nvO,nwP,JZ(nqC)),DV(n,nvO,nwA,JZ(nq$)),DV(n,nvO,nvS,JZ(nqE)),DV(n,nvO,nvM,JZ(nqT)),DV(n,nvO,nvC,JZ(nqO)),DV(n,nvO,nvE,JZ(nqA)),DV(n,nvO,nvT,JZ(nqN)),DV(n,nvO,nvP,JZ(nqx)),DV(n,nvO,nvI,JZ(nqR))}function nsI(n){var t,e,i,r,c,a,u,o;if(this.r=(e=new nM,i=new nS,new Nl(Im(A1(e),62),Im(A1(i),62))),this.b=new Qn(Im(A1(nCy),290)),this.p=new Qn(Im(A1(nCy),290)),this.i=new Qn(Im(A1(nSp),290)),this.e=n,this.o=new Ee(n.rf()),this.D=n.Df()||gm(So(n.We((nha(),nUM)))),this.A=Im(n.We((nha(),nUR)),21),this.B=Im(n.We(nUH),21),this.q=Im(n.We(nU6),98),this.u=Im(n.We(nXn),21),u=this.u,nis(),zU(NX(C6(nWS,Um(xg(nCm,1),nfh,273,0,[nWI])),u))>1||zU(NX(C6(nWM,Um(xg(nCm,1),nfh,273,0,[nWT,nWC])),u))>1)throw new gI("Invalid port label placement: "+this.u).e;if(this.v=gm(So(n.We(nXe))),this.j=Im(n.We(nUx),21),o=this.j,nrS(),zU(NX(C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWa])),o))>1||zU(NX(C6(nWe,Um(xg(nCg,1),nfh,93,0,[nWt,nWr])),o))>1||zU(NX(C6(nWs,Um(xg(nCg,1),nfh,93,0,[nWo,nWu])),o))>1)throw new gI("Invalid node label placement: "+this.j).e;this.n=Im(ZH(n,nUL),116),this.k=gy(Ss(ZH(n,nXm))),this.d=gy(Ss(ZH(n,nXv))),this.w=gy(Ss(ZH(n,nXS))),this.s=gy(Ss(ZH(n,nXy))),this.t=gy(Ss(ZH(n,nXk))),this.C=Im(ZH(n,nXT),142),this.c=2*this.d,t=!this.B.Hc((na9(),nW7)),this.f=new JM(0,t,0),this.g=new JM(1,t,0),r=this.f,HB(),c=nSV,a=this.g,r.a[c.g]=a}function nsC(n){var t,e,i,r,c,a,u,o,s,h,f;if(null==n)throw new gG(nhN).e;if(s=n,c=n.length,o=!1,c>0&&(x5(0,n.length),(45==(t=n.charCodeAt(0))||43==t)&&(n=n.substr(1),--c,o=45==t)),0==c)throw new gG(nlr+s+'"').e;for(;n.length>0&&(x5(0,n.length),48==n.charCodeAt(0));)n=n.substr(1),--c;if(c>(nuk(),nT6)[10])throw new gG(nlr+s+'"').e;for(r=0;r<c;r++)if(-1==Jl((x5(r,n.length),n.charCodeAt(r))))throw new gG(nlr+s+'"').e;for(f=0,a=nT4[10],h=nT5[10],u=Bl(nT8[10]),e=!0,(i=c%a)>0&&(f=-parseInt(n.substr(0,i),10),n=n.substr(i),c-=i,e=!1);c>=a;){if(i=parseInt(n.substr(0,a),10),n=n.substr(a),c-=a,e)e=!1;else{if(0>WM(f,u))throw new gG(nlr+s+'"').e;f=VF(f,h)}f=VR(f,i)}if(WM(f,0)>0||!o&&0>WM(f=Bl(f),0))throw new gG(nlr+s+'"').e;return f}function nsO(n,t){var e,i,r,c,a,u,o;if(Cc(),this.a=new E4(this),this.b=n,this.c=t,this.f=Aj(BC((neS(),nJk),t)),this.f.dc()){if((u=nnw(nJk,n))==t)for(this.e=!0,this.d=new wn,this.f=new a5,this.f.Fc(njZ),Im(noI(BI(nJk,HU(n)),""),26)==n&&this.f.Fc(OE(nJk,HU(n))),r=naV(nJk,n).Kc();r.Ob();)switch(i=Im(r.Pb(),170),$B(BC(nJk,i))){case 4:this.d.Fc(i);break;case 5:this.f.Gc(Aj(BC(nJk,i)))}else if(mp(),Im(t,66).Oj())for(a=0,this.e=!0,this.f=null,this.d=new wn,o=(null==n.i&&nuq(n),n.i).length;a<o;++a)for(null==n.i&&nuq(n),e=n.i,i=a>=0&&a<e.length?e[a]:null,c=Dt(BC(nJk,i));c;c=Dt(BC(nJk,c)))c==t&&this.d.Fc(i);else 1==$B(BC(nJk,t))&&u?(this.f=null,this.d=(niH(),nJL)):(this.f=null,this.e=!0,this.d=(LV(),new hQ(t)))}else this.e=5==$B(BC(nJk,t)),this.f.Fb(nJI)&&(this.f=nJI)}function nsA(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w;for(e=0,i=function(n,t){switch(t.g){case 1:return n.f.n.d+n.t;case 3:return n.f.n.a+n.t;case 2:return n.f.n.c+n.s;case 4:return n.f.n.b+n.s;default:return 0}}(n,t),l=n.s,b=n.t,s=Im(Im(Fl(n.r,t),21),84).Kc();s.Ob();)if((o=Im(s.Pb(),111)).c&&!(o.c.d.c.length<=0)){switch(w=o.b.rf(),u=o.b.Xe((nha(),nU5))?gy(Ss(o.b.We(nU5))):0,(f=(h=o.c).i).b=(a=h.n,h.e.a+a.b+a.c),f.a=(c=h.n,h.e.b+c.d+c.a),t.g){case 1:f.c=o.a?(w.a-f.b)/2:w.a+l,f.d=w.b+u+i,_I(h,(_1(),nSY)),ST(h,(B$(),nS4));break;case 3:f.c=o.a?(w.a-f.b)/2:w.a+l,f.d=-u-i-f.a,_I(h,(_1(),nSY)),ST(h,(B$(),nS2));break;case 2:f.c=-u-i-f.b,o.a?(r=n.v?f.a:Im(CA(h.d,0),181).rf().b,f.d=(w.b-r)/2):f.d=w.b+b,_I(h,(_1(),nS1)),ST(h,(B$(),nS3));break;case 4:f.c=w.a+u+i,o.a?(r=n.v?f.a:Im(CA(h.d,0),181).rf().b,f.d=(w.b-r)/2):f.d=w.b+b,_I(h,(_1(),nSZ)),ST(h,(B$(),nS3))}(t==(nsR(),nW$)||t==nWV)&&(e=nTv.Math.max(e,f.a))}e>0&&(Im($6(n.b,t),124).a.b=e)}function ns$(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;if((f=t.length)>0&&(x5(0,t.length),64!=(u=t.charCodeAt(0)))){if(37==u&&(h=t.lastIndexOf("%"),o=!1,0!=h&&(h==f-1||(x5(h+1,t.length),o=46==t.charCodeAt(h+1))))){if(v=Pv("%",a=t.substr(1,h-1))?null:nsF(a),i=0,o)try{i=nue(t.substr(h+2),nfp,nhM)}catch(n){if(Ti(n=Uu(n),127))throw new Bj(n).e;throw n.e}for(d=GC(n.Wg());d.Ob();)if(Ti(b=zG(d),510)&&(p=(r=Im(b,590)).d,(null==v?null==p:Pv(v,p))&&0==i--))return r;return null}if(l=-1==(s=t.lastIndexOf("."))?t:t.substr(0,s),e=0,-1!=s)try{e=nue(t.substr(s+1),nfp,nhM)}catch(n){if(Ti(n=Uu(n),127))l=t;else throw n.e}for(l=Pv("%",l)?null:nsF(l),w=GC(n.Wg());w.Ob();)if(Ti(b=zG(w),191)&&(g=(c=Im(b,191)).ne(),(null==l?null==g:Pv(l,g))&&0==e--))return c;return null}return noX(n,t)}function nsL(){var n,t,e;for(nsL=C,new B1(1,0),new B1(10,0),new B1(0,0),nMn=_f(nTf,nhJ,240,11,0,1),nMt=_f(nY$,nfS,25,100,15,1),nMi=_f(nYL,nfH,25,(nMe=Um(xg(nYR,1),nlf,25,15,[1,5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625,1220703125,6103515625,30517578125,152587890625,762939453125,3814697265625,19073486328125,95367431640625,476837158203125,0x878678326eac9])).length,15,1),nMc=_f(nYL,nfH,25,(nMr=Um(xg(nYR,1),nlf,25,15,[1,10,100,nfP,1e4,nll,1e6,1e7,1e8,nf7,1e10,1e11,1e12,1e13,1e14,1e15,1e16])).length,15,1),nMa=_f(nTf,nhJ,240,11,0,1),n=0;n<nMa.length;n++)nMn[n]=new B1(n,0),nMa[n]=new B1(0,n),nMt[n]=48;for(;n<nMt.length;n++)nMt[n]=48;for(e=0;e<nMi.length;e++)nMi[e]=nia(nMe[e]);for(t=0;t<nMc.length;t++)nMc[t]=nia(nMr[t]);niW()}function nsN(n){var t,e,i;mc(n,new nte(((((t=new as).c=nwv,t).d="ELK Force",t).b="Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported.",e=new ti,t.e=e,t.a=nwv,i=C6((nrt(),nVG),Um(xg(nCG,1),nfh,237,0,[nVH])),t.f=i,t))),DV(n,nwv,nwm,Va(1)),DV(n,nwv,nwy,80),DV(n,nwv,nwk,5),DV(n,nwv,nb8,nwp),DV(n,nwv,nwj,Va(1)),DV(n,nwv,nwE,(TX(),!0)),DV(n,nwv,nb9,nOF),DV(n,nwv,nwT,JZ(nOA)),DV(n,nwv,nwM,JZ(nO_)),DV(n,nwv,nwS,!1),DV(n,nwv,nwP,JZ(nOR)),DV(n,nwv,nwI,JZ(nOD)),DV(n,nwv,nwC,JZ(nOx)),DV(n,nwv,nwO,JZ(nON)),DV(n,nwv,nwA,JZ(nOB)),DV(n,nwv,nwh,JZ(nOL)),DV(n,nwv,nwb,JZ(nOV)),DV(n,nwv,nwf,JZ(nO$)),DV(n,nwv,nwd,JZ(nOG)),DV(n,nwv,nwl,JZ(nOz))}function nsx(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;if(!Im(Im(Fl(n.r,t),21),84).dc()){if(o=(a=Im($6(n.b,t),124)).i,u=a.n,h=nc3(n,t),i=o.b-u.b-u.c,r=a.a.a,c=o.c+u.b,b=n.w,(h==(Jq(),nWb)||h==nWd)&&1==Im(Im(Fl(n.r,t),21),84).gc()&&(r=h==nWb?r-2*n.w:r,h=nWl),i<r&&!n.B.Hc((na9(),nVc)))h==nWb?(b+=(i-r)/(Im(Im(Fl(n.r,t),21),84).gc()+1),c+=b):b+=(i-r)/(Im(Im(Fl(n.r,t),21),84).gc()-1);else switch(i<r&&(r=h==nWb?r-2*n.w:r,h=nWl),h.g){case 3:c+=(i-r)/2;break;case 4:c+=i-r;break;case 0:e=(i-r)/(Im(Im(Fl(n.r,t),21),84).gc()+1),b+=nTv.Math.max(0,e),c+=b;break;case 1:e=(i-r)/(Im(Im(Fl(n.r,t),21),84).gc()-1),b+=nTv.Math.max(0,e)}for(l=Im(Im(Fl(n.r,t),21),84).Kc();l.Ob();)(f=Im(l.Pb(),111)).e.a=c+f.d.b,f.e.b=(s=f.b).Xe((nha(),nU5))?s.Hf()==(nsR(),nW$)?-s.rf().b-gy(Ss(s.We(nU5))):gy(Ss(s.We(nU5))):s.Hf()==(nsR(),nW$)?-s.rf().b:0,c+=f.d.b+f.b.rf().a+f.d.c+b}}function nsD(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w;if(!Im(Im(Fl(n.r,t),21),84).dc()){if(o=(a=Im($6(n.b,t),124)).i,u=a.n,f=nc3(n,t),i=o.a-u.d-u.a,r=a.a.b,c=o.d+u.d,w=n.w,s=n.o.a,(f==(Jq(),nWb)||f==nWd)&&1==Im(Im(Fl(n.r,t),21),84).gc()&&(r=f==nWb?r-2*n.w:r,f=nWl),i<r&&!n.B.Hc((na9(),nVc)))f==nWb?(w+=(i-r)/(Im(Im(Fl(n.r,t),21),84).gc()+1),c+=w):w+=(i-r)/(Im(Im(Fl(n.r,t),21),84).gc()-1);else switch(i<r&&(r=f==nWb?r-2*n.w:r,f=nWl),f.g){case 3:c+=(i-r)/2;break;case 4:c+=i-r;break;case 0:e=(i-r)/(Im(Im(Fl(n.r,t),21),84).gc()+1),w+=nTv.Math.max(0,e),c+=w;break;case 1:e=(i-r)/(Im(Im(Fl(n.r,t),21),84).gc()-1),w+=nTv.Math.max(0,e)}for(b=Im(Im(Fl(n.r,t),21),84).Kc();b.Ob();)(l=Im(b.Pb(),111)).e.a=(h=l.b).Xe((nha(),nU5))?h.Hf()==(nsR(),nWJ)?-h.rf().a-gy(Ss(h.We(nU5))):s+gy(Ss(h.We(nU5))):h.Hf()==(nsR(),nWJ)?-h.rf().a:s,l.e.b=c+l.d.d,c+=l.d.d+l.b.rf().b+l.d.a+w}}function nsR(){var n;nsR=C,nWQ=new kO(nbj,0),nW$=new kO(nbA,1),nWA=new kO(nb$,2),nWV=new kO(nbL,3),nWJ=new kO(nbN,4),LV(),nWR=new gQ(new PR(n=Im(pf(nCy),9),Im(Sz(n,n.length),9),0)),nWK=WR(C6(nW$,Um(xg(nCy,1),nwZ,61,0,[]))),nWL=WR(C6(nWA,Um(xg(nCy,1),nwZ,61,0,[]))),nWU=WR(C6(nWV,Um(xg(nCy,1),nwZ,61,0,[]))),nWW=WR(C6(nWJ,Um(xg(nCy,1),nwZ,61,0,[]))),nWq=WR(C6(nW$,Um(xg(nCy,1),nwZ,61,0,[nWV]))),nWD=WR(C6(nWA,Um(xg(nCy,1),nwZ,61,0,[nWJ]))),nWz=WR(C6(nW$,Um(xg(nCy,1),nwZ,61,0,[nWJ]))),nWF=WR(C6(nW$,Um(xg(nCy,1),nwZ,61,0,[nWA]))),nWX=WR(C6(nWV,Um(xg(nCy,1),nwZ,61,0,[nWJ]))),nWN=WR(C6(nWA,Um(xg(nCy,1),nwZ,61,0,[nWV]))),nWH=WR(C6(nW$,Um(xg(nCy,1),nwZ,61,0,[nWA,nWJ]))),nWx=WR(C6(nWA,Um(xg(nCy,1),nwZ,61,0,[nWV,nWJ]))),nWG=WR(C6(nW$,Um(xg(nCy,1),nwZ,61,0,[nWV,nWJ]))),nW_=WR(C6(nW$,Um(xg(nCy,1),nwZ,61,0,[nWA,nWV]))),nWB=WR(C6(nW$,Um(xg(nCy,1),nwZ,61,0,[nWA,nWV,nWJ])))}function nsK(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S;for(s=Im(ntP(n,(GA(),nOY)),33),w=nhM,d=nhM,l=nfp,b=nfp,p=new h1(n.e);p.a<p.c.c.length;)j=(g=Im(De(p),144)).d,E=g.e,w=nTv.Math.min(w,j.a-E.a/2),d=nTv.Math.min(d,j.b-E.b/2),l=nTv.Math.max(l,j.a+E.a/2),b=nTv.Math.max(b,j.b+E.b/2);for(y=new kp((k=Im(nrM(s,(nab(),nOK)),116)).b-w,k.d-d),u=new h1(n.e);u.a<u.c.c.length;)Ti(m=ntP(a=Im(De(u),144),nOY),239)&&Ef(h=Im(m,33),(v=S9(a.d,y)).a-h.g/2,v.b-h.f/2);for(i=new h1(n.c);i.a<i.c.c.length;)e=Im(De(i),282),o=ncX(Im(ntP(e,nOY),79),!0,!0),nnc(M=S7(E1(e.d.d),e.c.d),e.c.e.a,e.c.e.b),Eb(o,(T=S9(M,e.c.d)).a,T.b),nnc(S=S7(E1(e.c.d),e.d.d),e.d.e.a,e.d.e.b),El(o,(t=S9(S,e.d.d)).a,t.b);for(c=new h1(n.d);c.a<c.c.c.length;)r=Im(De(c),447),Ef(Im(ntP(r,nOY),137),(f=S9(r.d,y)).a,f.b);nsB(s,l-w+(k.b+k.c),b-d+(k.d+k.a),!1,!0)}function nsF(n){var t,e,i,r,c,a,u,o,s,h;if(noC(),null==n)return null;if((r=jZ(n,ntd(37)))<0)return n;for(o=new TV(n.substr(0,r)),t=_f(nYD,nyw,25,4,15,1),u=0,i=0,a=n.length;r<a;r++)if(x5(r,n.length),37==n.charCodeAt(r)&&n.length>r+2&&UB((x5(r+1,n.length),n.charCodeAt(r+1)),nV9,nV7)&&UB((x5(r+2,n.length),n.charCodeAt(r+2)),nV9,nV7)){if(x5(r+1,n.length),s=n.charCodeAt(r+1),x5(r+2,n.length),h=n.charCodeAt(r+2),e=(W9(s)<<4|W9(h))&nfI,r+=2,i>0?(192&e)==128?t[u++]=e<<24>>24:i=0:e>=128&&((224&e)==192?(t[u++]=e<<24>>24,i=2):(240&e)==224?(t[u++]=e<<24>>24,i=3):(248&e)==240&&(t[u++]=e<<24>>24,i=4)),i>0){if(u==i){switch(u){case 2:$r(o,((31&t[0])<<6|63&t[1])&nfI);break;case 3:$r(o,((15&t[0])<<12|(63&t[1])<<6|63&t[2])&nfI)}u=0,i=0}}else{for(c=0;c<u;++c)$r(o,t[c]&nfI);u=0,o.a+=String.fromCharCode(e)}}else{for(c=0;c<u;++c)$r(o,t[c]&nfI);u=0,$r(o,(x5(r,n.length),n.charCodeAt(r)))}return o.a}function ns_(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;if(BZ(n,t),a=t[0],c=$9(e.c,0),u=-1,Xb(e)){if(i>0){if(a+i>n.length)return!1;u=niT(n.substr(0,a+i),t)}else u=niT(n,t)}switch(c){case 71:return u=ntw(n,a,Um(xg(nTh,1),nhJ,2,6,[nfq,nfG]),t),r.e=u,!0;case 77:return h=n,f=t,l=r,b=u,w=a,b<0?((b=ntw(h,w,Um(xg(nTh,1),nhJ,2,6,[nfC,nfO,nfA,nf$,nfL,nfN,nfx,nfD,nfR,nfK,nfF,nf_]),f))<0&&(b=ntw(h,w,Um(xg(nTh,1),nhJ,2,6,["Jan","Feb","Mar","Apr",nfL,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),f)),!(b<0)&&(l.k=b,!0)):b>0&&(l.k=b-1,!0);case 76:return d=n,g=t,p=r,v=u,m=a,v<0?((v=ntw(d,m,Um(xg(nTh,1),nhJ,2,6,[nfC,nfO,nfA,nf$,nfL,nfN,nfx,nfD,nfR,nfK,nfF,nf_]),g))<0&&(v=ntw(d,m,Um(xg(nTh,1),nhJ,2,6,["Jan","Feb","Mar","Apr",nfL,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),g)),!(v<0)&&(p.k=v,!0)):v>0&&(p.k=v-1,!0);case 69:return(o=ntw(n,a,Um(xg(nTh,1),nhJ,2,6,[nfz,nfU,nfX,nfW,nfV,nfQ,nfJ]),t))<0&&(o=ntw(n,a,Um(xg(nTh,1),nhJ,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),t)),!(o<0)&&(r.d=o,!0);case 99:return(s=ntw(n,a,Um(xg(nTh,1),nhJ,2,6,[nfz,nfU,nfX,nfW,nfV,nfQ,nfJ]),t))<0&&(s=ntw(n,a,Um(xg(nTh,1),nhJ,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),t)),!(s<0)&&(r.d=s,!0);case 97:return u=ntw(n,a,Um(xg(nTh,1),nhJ,2,6,["AM","PM"]),t),r.b=u,!0;case 121:return function(n,t,e,i,r,c){var a,u,o;if(u=32,i<0){if(t[0]>=n.length||43!=(u=$9(n,t[0]))&&45!=u||(++t[0],(i=niT(n,t))<0))return!1;45==u&&(i=-i)}return 32==u&&t[0]-e==2&&2==r.b&&(a=(o=(new vP).q.getFullYear()-nfB+nfB-80)%100,c.a=i==a,i+=(o/100|0)*100+(i<a?100:0)),c.p=i,!0}(n,t,a,u,e,r);case 100:if(u<=0)return!1;return r.c=u,!0;case 83:if(u<0)return!1;return function(n,t,e,i){var r,c;if((c=e-t)<3)for(;c<3;)n*=10,++c;else{for(r=1;c>3;)r*=10,--c;n=(n+(r>>1))/r|0}return i.i=n,!0}(u,a,t[0],r);case 104:12==u&&(u=0);case 75:case 72:if(u<0)return!1;return r.f=u,r.g=!1,!0;case 107:if(u<0)return!1;return r.f=u,r.g=!0,!0;case 109:if(u<0)return!1;return r.j=u,!0;case 115:if(u<0)return!1;return r.n=u,!0;case 90:if(a<n.length&&(x5(a,n.length),90==n.charCodeAt(a)))return++t[0],r.o=0,!0;case 122:case 118:return a>=0&&Pv(n.substr(a,3),"GMT")?t[0]=a+3:a>=0&&Pv(n.substr(a,3),"UTC")&&(t[0]=a+3),function(n,t,e){var i,r,c,a;if(t[0]>=n.length)return e.o=0,!0;switch($9(n,t[0])){case 43:r=1;break;case 45:r=-1;break;default:return e.o=0,!0}if(++t[0],c=t[0],0==(a=niT(n,t))&&t[0]==c)return!1;if(t[0]<n.length&&58==$9(n,t[0])){if(i=60*a,++t[0],c=t[0],0==(a=niT(n,t))&&t[0]==c)return!1;i+=a}else(i=a)<24&&t[0]-c<=2?i*=60:i=i%100+(i/100|0)*60;return i*=r,e.o=-i,!0}(n,t,r);default:return!1}}function nsB(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j;if(g=new kp(n.g,n.f),(d=neK(n)).a=nTv.Math.max(d.a,t),d.b=nTv.Math.max(d.b,e),j=d.a/g.a,h=d.b/g.b,y=d.a-g.a,o=d.b-g.b,i)for(a=xt(n)?Im(nrM(xt(n),(nha(),nUl)),103):Im(nrM(n,(nha(),nUl)),103),u=jf(nrM(n,(nha(),nU6)))===jf((nn2(),nWv)),v=new Td((n.c||(n.c=new An(nC_,n,9,9)),n.c));v.e!=v.i.gc();)switch(p=Im(J1(v),118),(m=Im(nrM(p,nXi),61))==(nsR(),nWQ)&&(m=nuD(p,a),Yu(p,nXi,m)),m.g){case 1:u||qh(p,p.i*j);break;case 2:qh(p,p.i+y),u||qf(p,p.j*h);break;case 3:u||qh(p,p.i*j),qf(p,p.j+o);break;case 4:u||qf(p,p.j*h)}if(Eh(n,d.a,d.b),r)for(l=new Td((n.n||(n.n=new An(nCK,n,1,7)),n.n));l.e!=l.i.gc();)b=(f=Im(J1(l),137)).i+f.g/2,w=f.j+f.f/2,(k=b/g.a)+(s=w/g.b)>=1&&(k-s>0&&w>=0?(qh(f,f.i+y),qf(f,f.j+o*s)):k-s<0&&b>=0&&(qh(f,f.i+y*k),qf(f,f.j+o)));return Yu(n,(nha(),nUR),(QJ(),new PR(c=Im(pf(nCk),9),Im(Sz(c,c.length),9),0))),new kp(j,h)}function nsH(n){var t,e,i,r,c,a,u,o,s,h,f;if(h=xt(ntr(Im(HX((n.b||(n.b=new Ph(nCA,n,4,7)),n.b),0),82)))==xt(ntr(Im(HX((n.c||(n.c=new Ph(nCA,n,5,8)),n.c),0),82))),a=new ps,(t=Im(nrM(n,(XY(),nXV)),74))&&t.b>=2){if(0==(n.a||(n.a=new An(nCL,n,6,6)),n.a).i)pw(),e=new aZ,_P((n.a||(n.a=new An(nCL,n,6,6)),n.a),e);else if((n.a||(n.a=new An(nCL,n,6,6)),n.a).i>1)for(f=new Mv((n.a||(n.a=new An(nCL,n,6,6)),n.a));f.e!=f.i.gc();)nnA(f);nuX(t,Im(HX((n.a||(n.a=new An(nCL,n,6,6)),n.a),0),202))}if(h)for(i=new Td((n.a||(n.a=new An(nCL,n,6,6)),n.a));i.e!=i.i.gc();)for(o=new Td(((e=Im(J1(i),202)).a||(e.a=new Tg(nCI,e,5)),e.a));o.e!=o.i.gc();)u=Im(J1(o),469),a.a=nTv.Math.max(a.a,u.a),a.b=nTv.Math.max(a.b,u.b);for(c=new Td((n.n||(n.n=new An(nCK,n,1,7)),n.n));c.e!=c.i.gc();)r=Im(J1(c),137),(s=Im(nrM(r,nX0),8))&&Ef(r,s.a,s.b),h&&(a.a=nTv.Math.max(a.a,r.i+r.g),a.b=nTv.Math.max(a.b,r.j+r.f));return a}function nsq(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y;if(1==n.gc())return Im(n.Xb(0),231);if(0>=n.gc())return new Fy;for(r=n.Kc();r.Ob();){for(e=Im(r.Pb(),231),w=0,h=nhM,f=nhM,o=nfp,s=nfp,b=new h1(e.e);b.a<b.c.c.length;)l=Im(De(b),144),w+=Im(ntP(l,(nab(),nOH)),19).a,h=nTv.Math.min(h,l.d.a-l.e.a/2),f=nTv.Math.min(f,l.d.b-l.e.b/2),o=nTv.Math.max(o,l.d.a+l.e.a/2),s=nTv.Math.max(s,l.d.b+l.e.b/2);UU(e,(nab(),nOH),Va(w)),UU(e,(GA(),nOJ),new kp(h,f)),UU(e,nOQ,new kp(o,s))}for(LV(),n.ad(new te),z5(d=new Fy,Im(n.Xb(0),94)),u=0,v=0,c=n.Kc();c.Ob();)e=Im(c.Pb(),231),g=S7(E1(Im(ntP(e,(GA(),nOQ)),8)),Im(ntP(e,nOJ),8)),u=nTv.Math.max(u,g.a),v+=g.a*g.b;for(u=nTv.Math.max(u,nTv.Math.sqrt(v)*gy(Ss(ntP(d,(nab(),nOC))))),p=gy(Ss(ntP(d,nOW))),m=0,y=0,a=0,t=p,i=n.Kc();i.Ob();)e=Im(i.Pb(),231),m+(g=S7(E1(Im(ntP(e,(GA(),nOQ)),8)),Im(ntP(e,nOJ),8))).a>u&&(m=0,y+=a+p,a=0),function(n,t,e,i){var r,c,a,u,o,s,h,f;for(S7(u=new kp(e,i),Im(ntP(t,(GA(),nOJ)),8)),f=new h1(t.e);f.a<f.c.c.length;)S9((h=Im(De(f),144)).d,u),IE(n.e,h);for(a=new h1(t.c);a.a<a.c.c.length;){for(r=new h1((c=Im(De(a),282)).a);r.a<r.c.c.length;)S9(Im(De(r),559).d,u);IE(n.c,c)}for(s=new h1(t.d);s.a<s.c.c.length;)S9((o=Im(De(s),447)).d,u),IE(n.d,o)}(d,e,m,y),t=nTv.Math.max(t,m+g.a),a=nTv.Math.max(a,g.b),m+=g.a+p;return d}function nsG(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T;return m=n.c[(x4(0,t.c.length),Im(t.c[0],17)).p],E=n.c[(x4(1,t.c.length),Im(t.c[1],17)).p],!!((m.a.e.e-m.a.a-(m.b.e.e-m.b.a)!=0||E.a.e.e-E.a.a-(E.b.e.e-E.b.a)!=0)&&Ti(p=m.b.e.f,10))&&(g=Im(p,10),k=n.i[g.p],j=g.c?Bb(g.c.a,g,0):-1,c=nlc,j>0&&(r=Im(CA(g.c.a,j-1),10),a=n.i[r.p],T=nTv.Math.ceil(EY(n.n,r,g)),c=k.a.e-g.d.d-(a.a.e+r.o.b+r.d.a)-T),s=nlc,j<g.c.a.c.length-1&&(o=Im(CA(g.c.a,j+1),10),h=n.i[o.p],T=nTv.Math.ceil(EY(n.n,o,g)),s=h.a.e-o.d.d-(k.a.e+g.o.b+g.d.a)-T),!!(e&&(Ex(),qR(np3),nTv.Math.abs(c-s)<=np3||c==s||isNaN(c)&&isNaN(s)))||(i=AG(m.a),u=-AG(m.b),f=-AG(E.a),v=AG(E.b),d=m.a.e.e-m.a.a-(m.b.e.e-m.b.a)>0&&E.a.e.e-E.a.a-(E.b.e.e-E.b.a)<0,w=m.a.e.e-m.a.a-(m.b.e.e-m.b.a)<0&&E.a.e.e-E.a.a-(E.b.e.e-E.b.a)>0,b=m.a.e.e+m.b.a<E.b.e.e+E.a.a,l=m.a.e.e+m.b.a>E.b.e.e+E.a.a,y=0,!d&&!w&&(l?c+f>0?y=f:s-i>0&&(y=i):b&&(c+u>0?y=u:s-v>0&&(y=v))),k.a.e+=y,k.b&&(k.d.e+=y),!1))}function nsz(n,t,e){var i,r,c,a,u,o,s,h,f,l;if(i=new Lj(t.qf().a,t.qf().b,t.rf().a,t.rf().b),r=new Et,n.c)for(a=new h1(t.wf());a.a<a.c.c.length;)c=Im(De(a),181),r.c=c.qf().a+t.qf().a,r.d=c.qf().b+t.qf().b,r.b=c.rf().a,r.a=c.rf().b,neM(i,r);for(s=new h1(t.Cf());s.a<s.c.c.length;){if(h=(o=Im(De(s),838)).qf().a+t.qf().a,f=o.qf().b+t.qf().b,n.e&&(r.c=h,r.d=f,r.b=o.rf().a,r.a=o.rf().b,neM(i,r)),n.d)for(a=new h1(o.wf());a.a<a.c.c.length;)c=Im(De(a),181),r.c=c.qf().a+h,r.d=c.qf().b+f,r.b=c.rf().a,r.a=c.rf().b,neM(i,r);if(n.b){if(l=new kp(-e,-e),Im(t.We((nha(),nXn)),174).Hc((nis(),nWI)))for(a=new h1(o.wf());a.a<a.c.c.length;)c=Im(De(a),181),l.a+=c.rf().a+e,l.b+=c.rf().b+e;l.a=nTv.Math.max(l.a,0),l.b=nTv.Math.max(l.b,0),nud(i,o.Bf(),o.zf(),t,o,l,e)}}n.b&&nud(i,t.Bf(),t.zf(),t,null,null,e),(u=new PY(t.Af())).d=nTv.Math.max(0,t.qf().b-i.d),u.a=nTv.Math.max(0,i.d+i.a-(t.qf().b+t.rf().b)),u.b=nTv.Math.max(0,t.qf().a-i.c),u.c=nTv.Math.max(0,i.c+i.b-(t.qf().a+t.rf().a)),t.Ef(u)}function nsU(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(s=Im(Im(Fl(n.r,t),21),84),SE(),a=(d=Im(Im(Fl(n.r,t),21),84)).gc()>=2&&(w=Im(d.Kc().Pb(),111),b=n.u.Hc((nis(),nWM)),g=n.u.Hc(nWC),!w.a&&!b&&(2==d.gc()||g)),e=n.u.Hc((nis(),nWT)),o=s.Kc();o.Ob();)if((u=Im(o.Pb(),111)).c&&!(u.c.d.c.length<=0)){switch(l=u.b.rf(),(f=(h=u.c).i).b=(c=h.n,h.e.a+c.b+c.c),f.a=(r=h.n,h.e.b+r.d+r.a),t.g){case 1:u.a?(f.c=(l.a-f.b)/2,_I(h,(_1(),nSY))):a||e?(f.c=-f.b-n.s,_I(h,(_1(),nS1))):(f.c=l.a+n.s,_I(h,(_1(),nSZ))),f.d=-f.a-n.t,ST(h,(B$(),nS2));break;case 3:u.a?(f.c=(l.a-f.b)/2,_I(h,(_1(),nSY))):a||e?(f.c=-f.b-n.s,_I(h,(_1(),nS1))):(f.c=l.a+n.s,_I(h,(_1(),nSZ))),f.d=l.b+n.t,ST(h,(B$(),nS4));break;case 2:u.a?(i=n.v?f.a:Im(CA(h.d,0),181).rf().b,f.d=(l.b-i)/2,ST(h,(B$(),nS3))):a||e?(f.d=-f.a-n.t,ST(h,(B$(),nS2))):(f.d=l.b+n.t,ST(h,(B$(),nS4))),f.c=l.a+n.s,_I(h,(_1(),nSZ));break;case 4:u.a?(i=n.v?f.a:Im(CA(h.d,0),181).rf().b,f.d=(l.b-i)/2,ST(h,(B$(),nS3))):a||e?(f.d=-f.a-n.t,ST(h,(B$(),nS2))):(f.d=l.b+n.t,ST(h,(B$(),nS4))),f.c=-f.b-n.s,_I(h,(_1(),nS1))}a=!1}}function nsX(n,t){var e,i,r,c,a,u,o,s,h,f,l;if(nhh(),0==vO(nYa)){for(a=0,f=_f(nYA,nhJ,117,nYo.length,0,1);a<f.length;a++)f[a]=(++nYO,new Dv(4));for(c=0,i=new gU;c<nYc.length;c++){if(++nYO,h=new Dv(4),c<84?(x5(u=2*c,nEN.length),l=nEN.charCodeAt(u),x5(u+1,nEN.length),ncz(h,l,nEN.charCodeAt(u+1))):ncz(h,nYs[u=(c-84)*2],nYs[u+1]),Pv(o=nYc[c],"Specials")&&ncz(h,65520,65533),Pv(o,nE$)&&(ncz(h,983040,1048573),ncz(h,1048576,1114109)),xp(nYa,o,h),xp(nYu,o,nuR(h)),0<(s=i.a.length)?i.a=i.a.substr(0,0):0>s&&(i.a+=Te(_f(nY$,nfS,25,-s,15,1))),i.a+="Is",jZ(o,ntd(32))>=0)for(r=0;r<o.length;r++)x5(r,o.length),32!=o.charCodeAt(r)&&$i(i,(x5(r,o.length),o.charCodeAt(r)));else i.a+=""+o;Q0(i.a,o,!0)}Q0(nEL,"Cn",!1),Q0(nEx,"Cn",!0),++nYO,ncz(e=new Dv(4),0,nEE),xp(nYa,"ALL",e),xp(nYu,"ALL",nuR(e)),nYP||(nYP=new wt),xp(nYP,nEL,nEL),nYP||(nYP=new wt),xp(nYP,nEx,nEx),nYP||(nYP=new wt),xp(nYP,"ALL","ALL")}return t?Im(Nz(nYa,n),136):Im(Nz(nYu,n),136)}function nsW(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y;if(d=0!=n.i,v=!1,g=null,Ea(n.e)){if((h=t.gc())>0){for(r=0,l=h<100?null:new pc(h),w=(s=new zi(t)).g,g=_f(nYL,nfH,25,h,15,1),i=0,m=new HO(h);r<n.i;++r){b=u=n.g[r];i:for(p=0;p<2;++p){for(o=h;--o>=0;)if(null!=b?WY(b,w[o]):jf(b)===jf(w[o])){g.length<=i&&now(g,0,g=_f(nYL,nfH,25,2*g.length,15,1),0,i),g[i++]=r,_P(m,w[o]);break i}if(jf(b)===jf(u))break}}if(s=m,w=m.g,h=i,i>g.length&&now(g,0,g=_f(nYL,nfH,25,i,15,1),0,i),i>0){for(c=0,v=!0;c<i;++c)l=PA(n,Im(b=w[c],72),l);for(a=i;--a>=0;)ZI(n,g[a]);if(i!=h){for(r=h;--r>=i;)ZI(s,r);now(g,0,g=_f(nYL,nfH,25,i,15,1),0,i)}t=s}}}else for(t=function(n,t){var e,i,r;if(t.dc())return Si(),Si(),nVY;for(e=new SN(n,t.gc()),r=new Td(n);r.e!=r.i.gc();)i=J1(r),t.Hc(i)&&_P(e,i);return e}(n,t),r=n.i;--r>=0;)t.Hc(n.g[r])&&(ZI(n,r),v=!0);if(!v)return!1;if(null!=g){for(f=1==(e=t.gc())?xv(n,4,t.Kc().Pb(),null,g[0],d):xv(n,6,t,g,g[0],d),l=e<100?null:new pc(e),r=t.Kc();r.Ob();)l=PO(n,Im(b=r.Pb(),72),l);l?(l.Ei(f),l.Fi()):zD(n.e,f)}else{for(l=(y=t.gc())<100?null:new pc(y),r=t.Kc();r.Ob();)l=PO(n,Im(b=r.Pb(),72),l);l&&l.Fi()}return!0}function nsV(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g;if(Au(n.a,t)){if(v$(Im($a(n.a,t),53),e))return 1}else $J(n.a,t,new w_);if(Au(n.a,e)){if(v$(Im($a(n.a,e),53),t))return -1}else $J(n.a,e,new w_);if(Au(n.e,t)){if(v$(Im($a(n.e,t),53),e))return -1}else $J(n.e,t,new w_);if(Au(n.e,e)){if(v$(Im($a(n.a,e),53),t))return 1}else $J(n.e,e,new w_);if(n.c==(U1(),n_B)||!MH(t,(nhu(),nxj))||!MH(e,(nhu(),nxj))){if(o=Im(T5(Ki(Xl(Lb(new CL(null,new x6(t.j,16)),new rE)),new rT)),11),h=Im(T5(Ki(Xl(Lb(new CL(null,new x6(e.j,16)),new rM)),new rS)),11),o&&h){if(u=o.i,s=h.i,u&&u==s){for(l=new h1(u.j);l.a<l.c.c.length;){if((f=Im(De(l),11))==o)return naF(n,e,t),-1;if(f==h)return naF(n,t,e),1}return EG(nnx(n,t),nnx(n,e))}for(w=n.d,d=0,g=w.length;d<g;++d){if((b=w[d])==u)return naF(n,e,t),-1;if(b==s)return naF(n,t,e),1}}if(!MH(t,(nhu(),nxj))||!MH(e,nxj))return(r=nnx(n,t))>(a=nnx(n,e))?naF(n,t,e):naF(n,e,t),r<a?-1:r>a?1:0}return(i=Im(ntP(t,(nhu(),nxj)),19).a)>(c=Im(ntP(e,nxj),19).a)?naF(n,t,e):naF(n,e,t),i<c?-1:i>c?1:0}function nsQ(n,t,e,i,r,c,a,u,o){var s,h,f,l,b,w,d,g,p,v,m;switch((b=e,g=h=new Y$(o),ntY(),p=nAU,g.k=p,UU(h,(nhu(),nxc),a),UU(h,(ns8(),nFE),(nn2(),nWv)),d=gy(Ss(n.We(nFj))),UU(h,nFj,d),xM(f=new nt9,h),t!=nWk&&t!=nWj||(b=i>=0?Ql(u):Vg(Ql(u)),n.Ye(nFI,b)),s=new ps,l=!1,n.Xe(nFk))?(MU(s,Im(n.We(nFk),8)),l=!0):(v=a.a/2,m=a.b/2,s.a=v,s.b=m),b.g){case 4:UU(h,nKY,(VJ(),nxW)),UU(h,nN9,(UK(),nNc)),h.o.b=a.b,d<0&&(h.o.a=-d),ne9(f,(nsR(),nWA)),l||(s.a=a.a),s.a-=a.a;break;case 2:UU(h,nKY,(VJ(),nxQ)),UU(h,nN9,(UK(),nNi)),h.o.b=a.b,d<0&&(h.o.a=-d),ne9(f,(nsR(),nWJ)),l||(s.a=0);break;case 1:UU(h,nxf,(BL(),nNW)),h.o.a=a.a,d<0&&(h.o.b=-d),ne9(f,(nsR(),nWV)),l||(s.b=a.b),s.b-=a.b;break;case 3:UU(h,nxf,(BL(),nNU)),h.o.a=a.a,d<0&&(h.o.b=-d),ne9(f,(nsR(),nW$)),l||(s.b=0)}if(MU(f.n,s),UU(h,nFk,s),t==nWp||t==nWm||t==nWv){if(w=0,t==nWp&&n.Xe(nFT))switch(b.g){case 1:case 2:w=Im(n.We(nFT),19).a;break;case 3:case 4:w=-Im(n.We(nFT),19).a}else switch(b.g){case 4:case 2:w=c.b,t==nWm&&(w/=r.b);break;case 1:case 3:w=c.a,t==nWm&&(w/=r.a)}UU(h,nx$,w)}return UU(h,nxr,b),h}function nsJ(n,t,e,i,r,c,a){var u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,I,C,O;for(d=0,S=0,s=new h1(n.b);s.a<s.c.c.length;)(o=Im(De(s),157)).c&&nsp(o.c),d=nTv.Math.max(d,CB(o)),S+=CB(o)*C_(o);for(g=S/n.b.c.length,M=function(n,t){var e,i,r;for(r=0,i=new h1(n);i.a<i.c.c.length;)e=Im(De(i),157),r+=nTv.Math.pow(CB(e)*C_(e)-t,2);return nTv.Math.sqrt(r/(n.c.length-1))}(n.b,g),S+=n.b.c.length*M,d=nTv.Math.max(d,nTv.Math.sqrt(S*a))+e.b,C=e.b,O=e.d,b=0,f=e.b+e.c,I2(T=new vK,Va(0)),j=new vK,h=new Rn(n.b,0),w=null,u=new wn;h.b<h.d.gc();)MK(h.b<h.d.gc()),I=CB(o=Im(h.d.Xb(h.c=h.b++),157)),l=C_(o),C+I>d&&(c&&(jO(j,b),jO(T,Va(h.b-1)),IE(n.d,w),u.c=_f(nEX,nhA,1,0,5,1)),C=e.b,O+=b+t,b=0,f=nTv.Math.max(f,e.b+e.c+I)),u.c[u.c.length]=o,function n(t,e,i){var r;if(t.c)qh(t.c,t.c.i+e),qf(t.c,t.c.j+i);else for(r=new h1(t.b);r.a<r.c.c.length;)n(Im(De(r),157),e,i)}(o,C,O),f=nTv.Math.max(f,C+I+e.c),b=nTv.Math.max(b,l),C+=I+t,w=o;if(Uf(n.a,u),IE(n.d,Im(CA(u,u.c.length-1),157)),f=nTv.Math.max(f,i),(P=O+b+e.a)<r&&(b+=r-P,P=r),c)for(C=e.b,h=new Rn(n.b,0),jO(T,Va(n.b.c.length)),v=Im(RP(E=Jz(T,0)),19).a,jO(j,b),k=Jz(j,0),y=0;h.b<h.d.gc();)h.b==v&&(C=e.b,y=gy(Ss(RP(k))),v=Im(RP(E),19).a),MK(h.b<h.d.gc()),function n(t,e){var i,r,c;if(t.c)qo(t.c,e);else for(i=e-C_(t),c=new h1(t.a);c.a<c.c.c.length;)n(r=Im(De(c),157),C_(r)+i)}(o=Im(h.d.Xb(h.c=h.b++),157),y),h.b==v&&(p=f-C-e.c,m=CB(o),function n(t,e){var i,r,c;if(t.c)qs(t.c,e);else for(i=e-CB(t),c=new h1(t.d);c.a<c.c.c.length;)n(r=Im(De(c),157),CB(r)+i)}(o,p),function n(t,e,i){var r;if(t.c)ntE(t.c,e,i);else for(r=new h1(t.b);r.a<r.c.c.length;)n(Im(De(r),157),e,i)}(o,(p-m)/2,0)),C+=CB(o)+t;return new kp(f,P)}function nsY(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S;return f=function(n,t){var e,i,r,c,a,u,o,s,h,f,l;if(n.dc())return new ps;for(o=0,h=0,i=n.Kc();i.Ob();)r=Im(i.Pb(),37).f,o=nTv.Math.max(o,r.a),h+=r.a*r.b;for(o=nTv.Math.max(o,nTv.Math.sqrt(h)*gy(Ss(ntP(Im(n.Kc().Pb(),37),(ns8(),nKn))))),f=0,l=0,u=0,e=t,a=n.Kc();a.Ob();)f+(s=(c=Im(a.Pb(),37)).f).a>o&&(f=0,l+=u+t,u=0),naN(c,f,l),e=nTv.Math.max(e,f+s.a),u=nTv.Math.max(u,s.b),f+=s.a+t;return new kp(e+t,l+u+t)}(Ms(n,(nsR(),nWR)),t),w=Zw(Ms(n,nWK),t),y=Zw(Ms(n,nWU),t),T=Zd(Ms(n,nWW),t),l=Zd(Ms(n,nWL),t),v=Zw(Ms(n,nWz),t),d=Zw(Ms(n,nWF),t),j=Zw(Ms(n,nWX),t),k=Zw(Ms(n,nWN),t),M=Zd(Ms(n,nWD),t),p=Zw(Ms(n,nWq),t),m=Zw(Ms(n,nWH),t),E=Zw(Ms(n,nWx),t),S=Zd(Ms(n,nWG),t),b=Zd(Ms(n,nW_),t),g=Zw(Ms(n,nWB),t),e=Xi(Um(xg(nYR,1),nlf,25,15,[v.a,T.a,j.a,S.a])),i=Xi(Um(xg(nYR,1),nlf,25,15,[w.a,f.a,y.a,g.a])),r=p.a,c=Xi(Um(xg(nYR,1),nlf,25,15,[d.a,l.a,k.a,b.a])),s=Xi(Um(xg(nYR,1),nlf,25,15,[v.b,w.b,d.b,m.b])),o=Xi(Um(xg(nYR,1),nlf,25,15,[T.b,f.b,l.b,g.b])),h=M.b,u=Xi(Um(xg(nYR,1),nlf,25,15,[j.b,y.b,k.b,E.b])),_O(Ms(n,nWR),e+r,s+h),_O(Ms(n,nWB),e+r,s+h),_O(Ms(n,nWK),e+r,0),_O(Ms(n,nWU),e+r,s+h+o),_O(Ms(n,nWW),0,s+h),_O(Ms(n,nWL),e+r+i,s+h),_O(Ms(n,nWF),e+r+i,0),_O(Ms(n,nWX),0,s+h+o),_O(Ms(n,nWN),e+r+i,s+h+o),_O(Ms(n,nWD),0,s),_O(Ms(n,nWq),e,0),_O(Ms(n,nWx),0,s+h+o),_O(Ms(n,nW_),e+r+i,0),(a=new ps).a=Xi(Um(xg(nYR,1),nlf,25,15,[e+i+r+c,M.a,m.a,E.a])),a.b=Xi(Um(xg(nYR,1),nlf,25,15,[s+o+h+u,p.b,S.b,b.b])),a}function nsZ(){nsZ=C,pd(),nVL=nVj.a,Im(HX(L6(nVj.a),0),18),nVP=nVj.f,Im(HX(L6(nVj.f),0),18),Im(HX(L6(nVj.f),1),34),nV$=nVj.n,Im(HX(L6(nVj.n),0),34),Im(HX(L6(nVj.n),1),34),Im(HX(L6(nVj.n),2),34),Im(HX(L6(nVj.n),3),34),nVI=nVj.g,Im(HX(L6(nVj.g),0),18),Im(HX(L6(nVj.g),1),34),nVT=nVj.c,Im(HX(L6(nVj.c),0),18),Im(HX(L6(nVj.c),1),18),nVC=nVj.i,Im(HX(L6(nVj.i),0),18),Im(HX(L6(nVj.i),1),18),Im(HX(L6(nVj.i),2),18),Im(HX(L6(nVj.i),3),18),Im(HX(L6(nVj.i),4),34),nVO=nVj.j,Im(HX(L6(nVj.j),0),18),nVM=nVj.d,Im(HX(L6(nVj.d),0),18),Im(HX(L6(nVj.d),1),18),Im(HX(L6(nVj.d),2),18),Im(HX(L6(nVj.d),3),18),Im(HX(L6(nVj.d),4),34),Im(HX(L6(nVj.d),5),34),Im(HX(L6(nVj.d),6),34),Im(HX(L6(nVj.d),7),34),nVE=nVj.b,Im(HX(L6(nVj.b),0),34),Im(HX(L6(nVj.b),1),34),nVS=nVj.e,Im(HX(L6(nVj.e),0),34),Im(HX(L6(nVj.e),1),34),Im(HX(L6(nVj.e),2),34),Im(HX(L6(nVj.e),3),34),Im(HX(L6(nVj.e),4),18),Im(HX(L6(nVj.e),5),18),Im(HX(L6(nVj.e),6),18),Im(HX(L6(nVj.e),7),18),Im(HX(L6(nVj.e),8),18),Im(HX(L6(nVj.e),9),18),Im(HX(L6(nVj.e),10),34),nVA=nVj.k,Im(HX(L6(nVj.k),0),34),Im(HX(L6(nVj.k),1),34)}function ns1(n){var t,e,i,r,c;switch(t=n.c){case 11:return n.Ml();case 12:return n.Ol();case 14:return n.Ql();case 15:return n.Tl();case 16:return n.Rl();case 17:return n.Ul();case 21:return nhe(n),nhh(),nhh(),nYl;case 10:switch(n.a){case 65:return n.yl();case 90:return n.Dl();case 122:return n.Kl();case 98:return n.El();case 66:return n.zl();case 60:return n.Jl();case 62:return n.Hl()}}switch(c=function(n){var t,e,i,r,c;switch(t=n.c,c=null,t){case 6:return n.Vl();case 13:return n.Wl();case 23:return n.Nl();case 22:return n.Sl();case 18:return n.Pl();case 8:nhe(n),nhh(),c=nYf;break;case 9:return n.vl(!0);case 19:return n.wl();case 10:switch(n.a){case 100:case 68:case 119:case 87:case 115:case 83:return c=n.ul(n.a),nhe(n),c;case 101:case 102:case 110:case 114:case 116:case 117:case 118:case 120:(e=n.tl())<nls?(nhh(),nhh(),++nYO,c=new CU(0,e)):c=ON(VO(e));break;case 99:return n.Fl();case 67:return n.Al();case 105:return n.Il();case 73:return n.Bl();case 103:return n.Gl();case 88:return n.Cl();case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return n.xl();case 80:case 112:if(!(c=niy(n,n.a)))throw new gO(nhd((E$(),nkd))).e;break;default:c=Ci(n.a)}nhe(n);break;case 0:if(93==n.a||123==n.a||125==n.a)throw new gO(nhd((E$(),nkw))).e;c=Ci(n.a),i=n.a,nhe(n),(64512&i)==nlh&&0==n.c&&(64512&n.a)==56320&&((r=_f(nY$,nfS,25,2,15,1))[0]=i&nfI,r[1]=n.a&nfI,c=Aa(ON(Je(r,0,r.length)),0),nhe(n));break;default:throw new gO(nhd((E$(),nkw))).e}return c}(n),t=n.c){case 3:return n.Zl(c);case 4:return n.Xl(c);case 5:return n.Yl(c);case 0:if(123==n.a&&n.d<n.j){if(r=n.d,i=0,e=-1,(t=$9(n.i,r++))>=48&&t<=57){for(i=t-48;r<n.j&&(t=$9(n.i,r++))>=48&&t<=57;)if((i=10*i+t-48)<0)throw new gO(nhd((E$(),nkD))).e}else throw new gO(nhd((E$(),nk$))).e;if(e=i,44==t){if(r>=n.j)throw new gO(nhd((E$(),nkN))).e;if((t=$9(n.i,r++))>=48&&t<=57){for(e=t-48;r<n.j&&(t=$9(n.i,r++))>=48&&t<=57;)if((e=10*e+t-48)<0)throw new gO(nhd((E$(),nkD))).e;if(i>e)throw new gO(nhd((E$(),nkx))).e}else e=-1}if(125!=t)throw new gO(nhd((E$(),nkL))).e;n.sl(r)?(nhh(),nhh(),++nYO,c=new R0(9,c),n.d=r+1):(nhh(),nhh(),++nYO,c=new R0(3,c),n.d=r),c.dm(i),c.cm(e),nhe(n)}}return c}function ns0(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P;for(w=new Fq(t.b),v=new Fq(t.b),l=new Fq(t.b),j=new Fq(t.b),d=new Fq(t.b),k=Jz(t,0);k.b!=k.d.c;)for(u=new h1((m=Im(RP(k),11)).g);u.a<u.c.c.length;)if((c=Im(De(u),17)).c.i==c.d.i){if(m.j==c.d.j){j.c[j.c.length]=c;continue}if(m.j==(nsR(),nW$)&&c.d.j==nWV){d.c[d.c.length]=c;continue}}for(o=new h1(d);o.a<o.c.c.length;)!function(n,t,e,i,r){var c,a,u,o,s,h,f,l;s=c=new Y$(n),ntY(),h=nAQ,s.k=h,UU(c,(ns8(),nFE),(nn2(),nWv)),UU(c,(nhu(),nxE),t.c.i),UU(a=new nt9,nxE,t.c),ne9(a,r),xM(a,c),UU(t.c,nxA,c),f=u=new Y$(n),l=nAQ,f.k=l,UU(u,nFE,nWv),UU(u,nxE,t.d.i),UU(o=new nt9,nxE,t.d),ne9(o,r),xM(o,u),UU(t.d,nxA,u),xE(t,a),xj(t,o),xC(0,e.c.length),m$(e.c,0,c),i.c[i.c.length]=u,UU(c,nN5,Va(1)),UU(u,nN5,Va(1))}(n,c=Im(De(o),17),e,i,(nsR(),nWA));for(a=new h1(j);a.a<a.c.c.length;)c=Im(De(a),17),S=E=new Y$(n),ntY(),P=nAQ,S.k=P,UU(E,(ns8(),nFE),(nn2(),nWv)),UU(E,(nhu(),nxE),c),UU(T=new nt9,nxE,c.d),ne9(T,(nsR(),nWJ)),xM(T,E),UU(M=new nt9,nxE,c.c),ne9(M,nWA),xM(M,E),UU(c.c,nxA,E),UU(c.d,nxA,E),xE(c,null),xj(c,null),e.c[e.c.length]=E,UU(E,nN5,Va(2));for(y=Jz(t,0);y.b!=y.d.c;)s=(m=Im(RP(y),11)).e.c.length>0,g=m.g.c.length>0,s&&g?l.c[l.c.length]=m:s?w.c[w.c.length]=m:g&&(v.c[v.c.length]=m);for(b=new h1(w);b.a<b.c.c.length;)IE(r,nor(n,Im(De(b),11),null,e));for(p=new h1(v);p.a<p.c.c.length;)IE(r,nor(n,null,Im(De(p),11),e));for(f=new h1(l);f.a<f.c.c.length;)IE(r,nor(n,h=Im(De(f),11),h,e))}function ns2(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j;for(w=new kp(nlc,nlc),t=new kp(nla,nla),y=new h1(n);y.a<y.c.c.length;)m=Im(De(y),8),w.a=nTv.Math.min(w.a,m.a),w.b=nTv.Math.min(w.b,m.b),t.a=nTv.Math.max(t.a,m.a),t.b=nTv.Math.max(t.b,m.b);for(o=new kp(t.a-w.a,t.b-w.b),s=new nuV(new kp(w.a-50,w.b-o.a-50),new kp(w.a-50,t.b+o.a+50),new kp(t.a+o.b/2+50,w.b+o.b/2)),v=new w_,r=new wn,e=new wn,v.a.zc(s,v),j=new h1(n);j.a<j.c.c.length;){for(k=Im(De(j),8),r.c=_f(nEX,nhA,1,0,5,1),p=v.a.ec().Kc();p.Ob();)_k((d=Im(p.Pb(),308)).d,d.a),0>V2(_k(d.d,k),_k(d.d,d.a))&&(r.c[r.c.length]=d);for(e.c=_f(nEX,nhA,1,0,5,1),g=new h1(r);g.a<g.c.c.length;)for(l=new h1((d=Im(De(g),308)).e);l.a<l.c.c.length;){for(h=Im(De(l),168),c=!0,u=new h1(r);u.a<u.c.c.length;)(a=Im(De(u),308))!=d&&($5(h,CA(a.e,0))||$5(h,CA(a.e,1))||$5(h,CA(a.e,2)))&&(c=!1);c&&(e.c[e.c.length]=h)}for(nty(v,r),KA(v,new nf),f=new h1(e);f.a<f.c.c.length;)Av(v,new nuV(k,(h=Im(De(f),168)).a,h.b))}for(KA(v,new fv(b=new w_)),i=b.a.ec().Kc();i.Ob();)(BP(s,(h=Im(i.Pb(),168)).a)||BP(s,h.b))&&i.Qb();return KA(b,new nl),b}function ns3(n){var t,e;mc(n,new nte(((((t=new as).c=nvW,t).d="ELK Rectangle Packing",t).b="Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces.",e=new c3,t.e=e,t))),DV(n,nvW,nb8,1.3),DV(n,nvW,nvX,JZ(nGn)),DV(n,nvW,nb9,nGb),DV(n,nvW,nwy,15),DV(n,nvW,npL,JZ(nq8)),DV(n,nvW,nwC,JZ(nGa)),DV(n,nvW,nwq,JZ(nGu)),DV(n,nvW,nwI,JZ(nGo)),DV(n,nvW,nwO,JZ(nGc)),DV(n,nvW,nwP,JZ(nGs)),DV(n,nvW,nwA,JZ(nGw)),DV(n,nvW,nvF,JZ(nGf)),DV(n,nvW,nv_,JZ(nGr)),DV(n,nvW,nvq,JZ(nGh)),DV(n,nvW,nvG,JZ(nGd)),DV(n,nvW,nvz,JZ(nGt)),DV(n,nvW,nwT,JZ(nGe)),DV(n,nvW,npz,JZ(nGi)),DV(n,nvW,nvH,JZ(nq7)),DV(n,nvW,nvB,JZ(nq9)),DV(n,nvW,nvU,JZ(nGp))}function ns4(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;if(null==e)return null;if(n.a!=t.Aj())throw new gd(nyf+t.ne()+nyl).e;if(Ti(t,457)){if(!(d=function(n,t){var e,i,r;if(null==t){for(n.a||(n.a=new An(nQw,n,9,5)),i=new Td(n.a);i.e!=i.i.gc();)if((null==(r=(e=Im(J1(i),678)).c)?e.zb:r)==null)return e}else for(n.a||(n.a=new An(nQw,n,9,5)),i=new Td(n.a);i.e!=i.i.gc();)if(Pv(t,null==(r=(e=Im(J1(i),678)).c)?e.zb:r))return e;return null}(Im(t,671),e)))throw new gd(nyb+e+"' is not a valid enumerator of '"+t.ne()+"'").e;return d}switch(WW((neS(),nJk),t).cl()){case 2:e=noe(e,!1);break;case 3:e=noe(e,!0)}if(i=WW(nJk,t).$k())return i.Aj().Nh().Kh(i,e);if(f=WW(nJk,t).al()){for(d=new wn,o=XO(e),s=0,h=o.length;s<h;++s)u=o[s],IE(d,f.Aj().Nh().Kh(f,u));return d}if(!(w=WW(nJk,t).bl()).dc()){for(b=w.Kc();b.Ob();){l=Im(b.Pb(),148);try{if(d=l.Aj().Nh().Kh(l,e),null!=d)return d}catch(n){if(!Ti(n=Uu(n),60))throw n.e}}throw new gd(nyb+e+"' does not match any member types of the union datatype '"+t.ne()+"'").e}if(Im(t,834).Fj(),!(r=(g=t.Bj())?(1&g.i)!=0?g==nYN?nTt:g==nYL?nTa:g==nYK?nTc:g==nYR?nTr:g==nYx?nTu:g==nYF?nTo:g==nYD?nTe:nTi:g:null))return null;if(r==nTi){c=0;try{c=nue(e,nfp,nhM)&nfI}catch(n){if(Ti(n=Uu(n),127))c=BR(e)[0];else throw n.e}return Ua(c)}if(r==nTn){for(a=0;a<nVx.length;++a)try{return p=nVx[a],v=e,ZG(p.a,v)}catch(n){if(!Ti(n=Uu(n),32))throw n.e}throw new gd(nyb+e+"' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof").e}throw new gd(nyb+e+"' is invalid. ").e}function ns5(){ns5=C,niP(nAR=new NK,(nsR(),nWR),nWB),niP(nAR,nWW,nWB),niP(nAR,nWW,nWG),niP(nAR,nWL,nW_),niP(nAR,nWL,nWB),niP(nAR,nWK,nWB),niP(nAR,nWK,nWH),niP(nAR,nWU,nWx),niP(nAR,nWU,nWB),niP(nAR,nWq,nWD),niP(nAR,nWq,nWB),niP(nAR,nWq,nWH),niP(nAR,nWq,nWx),niP(nAR,nWD,nWq),niP(nAR,nWD,nWG),niP(nAR,nWD,nW_),niP(nAR,nWD,nWB),niP(nAR,nWz,nWz),niP(nAR,nWz,nWH),niP(nAR,nWz,nWG),niP(nAR,nWF,nWF),niP(nAR,nWF,nWH),niP(nAR,nWF,nW_),niP(nAR,nWX,nWX),niP(nAR,nWX,nWx),niP(nAR,nWX,nWG),niP(nAR,nWN,nWN),niP(nAR,nWN,nWx),niP(nAR,nWN,nW_),niP(nAR,nWH,nWK),niP(nAR,nWH,nWq),niP(nAR,nWH,nWz),niP(nAR,nWH,nWF),niP(nAR,nWH,nWB),niP(nAR,nWH,nWH),niP(nAR,nWH,nWG),niP(nAR,nWH,nW_),niP(nAR,nWx,nWU),niP(nAR,nWx,nWq),niP(nAR,nWx,nWX),niP(nAR,nWx,nWN),niP(nAR,nWx,nWx),niP(nAR,nWx,nWG),niP(nAR,nWx,nW_),niP(nAR,nWx,nWB),niP(nAR,nWG,nWW),niP(nAR,nWG,nWD),niP(nAR,nWG,nWz),niP(nAR,nWG,nWX),niP(nAR,nWG,nWH),niP(nAR,nWG,nWx),niP(nAR,nWG,nWG),niP(nAR,nWG,nWB),niP(nAR,nW_,nWL),niP(nAR,nW_,nWD),niP(nAR,nW_,nWF),niP(nAR,nW_,nWN),niP(nAR,nW_,nWH),niP(nAR,nW_,nWx),niP(nAR,nW_,nW_),niP(nAR,nW_,nWB),niP(nAR,nWB,nWR),niP(nAR,nWB,nWW),niP(nAR,nWB,nWL),niP(nAR,nWB,nWK),niP(nAR,nWB,nWU),niP(nAR,nWB,nWq),niP(nAR,nWB,nWD),niP(nAR,nWB,nWH),niP(nAR,nWB,nWx),niP(nAR,nWB,nWG),niP(nAR,nWB,nW_),niP(nAR,nWB,nWB)}function ns6(n,t,e){var i,r,c,a,u,o,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T;for(n.d=new kp(nlc,nlc),n.c=new kp(nla,nla),l=t.Kc();l.Ob();)for(m=new h1(Im(l.Pb(),37).a);m.a<m.c.c.length;)v=Im(De(m),10),n.d.a=nTv.Math.min(n.d.a,v.n.a-v.d.b),n.d.b=nTv.Math.min(n.d.b,v.n.b-v.d.d),n.c.a=nTv.Math.max(n.c.a,v.n.a+v.o.a+v.d.c),n.c.b=nTv.Math.max(n.c.b,v.n.b+v.o.b+v.d.a);for(u=new w1,f=t.Kc();f.Ob();)i=function(n,t){var e,i,r,c,a,u,o,h,f,l,b,w,d,g,p,v,m,y,k;for((e=new Yd(t)).a||function(n){var t,e,i,r,c;switch(r=Im(CA(n.a,0),10),t=new Y$(n),IE(n.a,t),t.o.a=nTv.Math.max(1,r.o.a),t.o.b=nTv.Math.max(1,r.o.b),t.n.a=r.n.a,t.n.b=r.n.b,Im(ntP(r,(nhu(),nxr)),61).g){case 4:t.n.a+=2;break;case 1:t.n.b+=2;break;case 2:t.n.a-=2;break;case 3:t.n.b-=2}xM(i=new nt9,t),xE(e=new Ns,c=Im(CA(r.j,0),11)),xj(e,i),S9(jR(i.n),c.n),S9(jR(i.a),c.a)}(t),h=function(n){var t,e,i,r,c,a,u;for(u=new KH,a=new h1(n.a);a.a<a.c.c.length;)if((c=Im(De(a),10)).k!=(ntY(),nAU)){for(function(n,t,e){var i;i=null,t&&(i=t.d),nn$(n,new yf(t.n.a-i.b+e.a,t.n.b-i.d+e.b)),nn$(n,new yf(t.n.a-i.b+e.a,t.n.b+t.o.b+i.a+e.b)),nn$(n,new yf(t.n.a+t.o.a+i.c+e.a,t.n.b-i.d+e.b)),nn$(n,new yf(t.n.a+t.o.a+i.c+e.a,t.n.b+t.o.b+i.a+e.b))}(u,c,new ps),r=new OM(TD(Vz(c).a.Kc(),new s));nrc(r);)if((i=Im(K4(r),17)).c.i.k!=nAU&&i.d.i.k!=nAU)for(e=Jz(i.a,0);e.b!=e.d.c;)nn$(u,new yf((t=Im(RP(e),8)).a,t.b))}return u}(t),o=new NK,g=new ncG,d=new h1(t.a);d.a<d.c.c.length;)for(r=new OM(TD(Vz(Im(De(d),10)).a.Kc(),new s));nrc(r);)((i=Im(K4(r),17)).c.i.k==(ntY(),nAU)||i.d.i.k==nAU)&&niP(o,JG((f=function(n,t,e,i){var r,c,a,u,o,s,h,f,l,b;for(c=new niD(t),f=function(n,t,e){var i,r,c,a,u,o,s,h,f;for(i=e.c,r=e.d,u=x9(t.c),o=x9(t.d),i==t.c?(u=nrJ(n,u,r),o=ntk(t.d)):(u=ntk(t.c),o=nrJ(n,o,r)),KL(s=new pi(t.a),u,s.a,s.a.a),KL(s,o,s.c.b,s.c),a=t.c==i,f=new w0,c=0;c<s.b-1;++c)h=new k_(Im(J7(s,c),8),Im(J7(s,c+1),8)),a&&0==c||!a&&c==s.b-2?f.b=h:IE(f.a,h);return f}(n,t,c),b=nTv.Math.max(gy(Ss(ntP(t,(ns8(),nKR)))),1),h=new h1(f.a);h.a<h.c.c.length;)s=Im(De(h),46),I7(e,new kp((o=JA(Im(s.a,8),Im(s.b,8),b)).c,o.d)),I7(e,MG(new kp(o.c,o.d),o.b,0)),I7(e,MG(new kp(o.c,o.d),0,o.a)),I7(e,MG(new kp(o.c,o.d),o.b,o.a));switch(l=c.d,u=JA(Im(f.b.a,8),Im(f.b.b,8),b),l==(nsR(),nWJ)||l==nWA?(i.c[l.g]=nTv.Math.min(i.c[l.g],u.d),i.b[l.g]=nTv.Math.max(i.b[l.g],u.d+u.a)):(i.c[l.g]=nTv.Math.min(i.c[l.g],u.c),i.b[l.g]=nTv.Math.max(i.b[l.g],u.c+u.b)),r=nla,a=c.c.i.d,l.g){case 4:r=a.c;break;case 2:r=a.b;break;case 1:r=a.a;break;case 3:r=a.d}return i.a[l.g]=nTv.Math.max(i.a[l.g],r),c}(n,i,h,g)).d),f.a);for(a=new wn,m=Im(ntP(e.c,(nhu(),nxt)),21).Kc();m.Ob();){switch(v=Im(m.Pb(),61),w=g.c[v.g],b=g.b[v.g],u=g.a[v.g],c=null,p=null,v.g){case 4:c=new Lj(n.d.a,w,h.b.a-n.d.a,b-w),p=new Lj(n.d.a,w,u,b-w),I7(h,new kp(c.c+c.b,c.d)),I7(h,new kp(c.c+c.b,c.d+c.a));break;case 2:c=new Lj(h.a.a,w,n.c.a-h.a.a,b-w),p=new Lj(n.c.a-u,w,u,b-w),I7(h,new kp(c.c,c.d)),I7(h,new kp(c.c,c.d+c.a));break;case 1:c=new Lj(w,n.d.b,b-w,h.b.b-n.d.b),p=new Lj(w,n.d.b,b-w,u),I7(h,new kp(c.c,c.d+c.a)),I7(h,new kp(c.c+c.b,c.d+c.a));break;case 3:c=new Lj(w,h.a.b,b-w,n.c.b-h.a.b),p=new Lj(w,n.c.b-u,b-w,u),I7(h,new kp(c.c,c.d)),I7(h,new kp(c.c+c.b,c.d))}c&&((l=new w3).d=v,l.b=c,l.c=p,l.a=L9(Im(Fl(o,JG(v)),21)),a.c[a.c.length]=l)}return Uf(e.b,a),e.d=(k=new HM(y=function(n){var t,e,i,r,c,a,u;for(B9(),u=new wY,e=new h1(n);e.a<e.c.c.length;)t=Im(De(e),140),(!u.b||t.c>=u.b.c)&&(u.b=t),(!u.c||t.c<=u.c.c)&&(u.d=u.c,u.c=t),(!u.e||t.d>=u.e.d)&&(u.e=t),(!u.f||t.d<=u.f.d)&&(u.f=t);return i=new J3((Uj(),nAS)),Dz(n,nAN,new gE(Um(xg(nPH,1),nhA,369,0,[i]))),a=new J3(nAC),Dz(n,nAL,new gE(Um(xg(nPH,1),nhA,369,0,[a]))),r=new J3(nAP),Dz(n,nA$,new gE(Um(xg(nPH,1),nhA,369,0,[r]))),c=new J3(nAI),Dz(n,nAA,new gE(Um(xg(nPH,1),nhA,369,0,[c]))),nr5(i.c,nAS),nr5(r.c,nAP),nr5(c.c,nAI),nr5(a.c,nAC),u.a.c=_f(nEX,nhA,1,0,5,1),Uf(u.a,i.c),Uf(u.a,zI(r.c)),Uf(u.a,c.c),Uf(u.a,zI(a.c)),u}(h)),Dz(y.a,nAx,new gE(Um(xg(nPH,1),nhA,369,0,[k]))),k.d&&IE(k.f,k.d),k.f),e}(n,Im(f.Pb(),37)),IE(u.a,i),i.a=!Im(ntP(i.c,(nhu(),nxt)),21).dc()|i.a;for(n.b=(Wl(),(T=new ts).f=new qV(e),T.b=function(n,t){var e,i,r,c,a,u,o,s,h,f,l;for(n.a=new $u((f=Im(nCh.e&&nCh.e(),9),l=Im(AN(f,f.length),9),new PR(f,l,f.length))),i=new h1(t.a);i.a<i.c.c.length;){for(e=Im(De(i),841),a=new JE(Um(xg(nP_,1),nhA,81,0,[])),IE(n.a.a,a),o=new h1(e.d);o.a<o.c.c.length;)nsu(s=new Mr(n,u=Im(De(o),110)),Im(ntP(e.c,(nhu(),nxt)),21)),Au(n.g,e)||($J(n.g,e,new kp(u.c,u.d)),$J(n.f,e,s)),IE(n.a.b,s),D2(a,s);for(c=new h1(e.b);c.a<c.c.c.length;)s=new Mr(n,(r=Im(De(c),594)).kf()),$J(n.b,r,new k_(a,s)),nsu(s,Im(ntP(e.c,(nhu(),nxt)),21)),r.hf()&&(nsu(h=new Jj(n,r.hf(),1),Im(ntP(e.c,nxt),21)),D2(new JE(Um(xg(nP_,1),nhA,81,0,[])),h),niP(n.c,r.gf(),new k_(a,h)))}return n.a}(T.f,u),T),function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w;for(t=new wn,n.g=new wn,n.d=new wn,a=new XE(new hL(n.f.b).a);a.b;)IE(t,Im(Im((c=HQ(a)).dd(),46).b,81)),Ei(Im(c.cd(),594).gf())?IE(n.d,Im(c.dd(),46)):IE(n.g,Im(c.dd(),46));for(Qu(n,n.d),Qu(n,n.g),n.c=new niL(n.b),o=n.c,vZ(),s=nAk,o.f=s,VM(n,n.d),VM(n,n.g),Uf(t,n.c.a.b),n.e=new kp(nlc,nlc),n.a=new kp(nla,nla),i=new h1(t);i.a<i.c.c.length;)e=Im(De(i),81),n.e.a=nTv.Math.min(n.e.a,e.g.c),n.e.b=nTv.Math.min(n.e.b,e.g.d),n.a.a=nTv.Math.max(n.a.a,e.g.c+e.g.b),n.a.b=nTv.Math.max(n.a.b,e.g.d+e.g.a);h=n.c,f=new th,h.e=f,u=0;do r=nsn(n),++u;while((u<2||r>nfg)&&u<10)l=n.c,b=new tf,l.e=b,nsn(n),nsE(w=n.c,(W2(),nXI)),w.d=!0,function(n){var t,e,i,r,c,a,u,o;for(c=new h1(n.a.b);c.a<c.c.c.length;)(r=Im(De(c),81)).b.c=r.g.c,r.b.d=r.g.d;for(o=new kp(nlc,nlc),t=new kp(nla,nla),i=new h1(n.a.b);i.a<i.c.c.length;)e=Im(De(i),81),o.a=nTv.Math.min(o.a,e.g.c),o.b=nTv.Math.min(o.b,e.g.d),t.a=nTv.Math.max(t.a,e.g.c+e.g.b),t.b=nTv.Math.max(t.b,e.g.d+e.g.a);for(u=A4(n.c).a.nc();u.Ob();)a=Im(u.Pb(),46),e=Im(a.b,81),o.a=nTv.Math.min(o.a,e.g.c),o.b=nTv.Math.min(o.b,e.g.d),t.a=nTv.Math.max(t.a,e.g.c+e.g.b),t.b=nTv.Math.max(t.b,e.g.d+e.g.a);n.d=MX(new kp(o.a,o.b)),n.e=S7(new kp(t.a,t.b),o),n.a.a.c=_f(nEX,nhA,1,0,5,1),n.a.b.c=_f(nEX,nhA,1,0,5,1)}(n.f)}((w=n.b,new dB,w)),n.e=new ps,n.a=n.b.f.e,a=new h1(u.a);a.a<a.c.c.length;)for(r=Im(De(a),841),y=function(n,t){var e;return S9(MX(S7(E1(Im($a((e=n.f).g,t),8)),EZ(Im($a(e.f,t),460).b))),n.f.d)}(n.b,r),function(n,t,e){var i,r,c,a,u,o,s,h;for(c=new kp(t,e),s=new h1(n.a);s.a<s.c.c.length;)for(S9((o=Im(De(s),10)).n,c),h=new h1(o.j);h.a<h.c.c.length;)for(r=new h1(Im(De(h),11).g);r.a<r.c.c.length;)for(HV((i=Im(De(r),17)).a,c),(a=Im(ntP(i,(ns8(),nKV)),74))&&HV(a,c),u=new h1(i.b);u.a<u.c.c.length;)S9(Im(De(u),70).n,c)}(r.c,y.a,y.b),g=new h1(r.c.a);g.a<g.c.c.length;)(d=Im(De(g),10)).k==(ntY(),nAU)&&(p=nrJ(n,d.n,Im(ntP(d,(nhu(),nxr)),61)),S9(jR(d.n),p));for(c=new h1(u.a);c.a<c.c.c.length;)for(h=new h1(function(n){var t,e,i;for(t=new wn,i=new h1(n.b);i.a<i.c.c.length;)e=Im(De(i),594),Uf(t,Im(e.jf(),14));return t}(r=Im(De(c),841)));h.a<h.c.c.length;)for(Mq(E=new pi((o=Im(De(h),17)).a),0,x9(o.c)),I2(E,x9(o.d)),b=null,j=Jz(E,0);j.b!=j.d.c;){if(k=Im(RP(j),8),!b){b=k;continue}H2(b.a,k.a)?(n.e.a=nTv.Math.min(n.e.a,b.a),n.a.a=nTv.Math.max(n.a.a,b.a)):H2(b.b,k.b)&&(n.e.b=nTv.Math.min(n.e.b,b.b),n.a.b=nTv.Math.max(n.a.b,b.b)),b=k}MX(n.e),S9(n.a,n.e)}function ns8(){ns8=C,nha(),nFK=nXf,nFF=nXl,nF_=nXb,nFB=nXw,nFq=nXd,nFG=nXg,nFX=nXv,nFV=nXy,nFQ=nXk,nFW=nXm,nFJ=nXj,nFZ=nXE,nF0=nXS,nFU=nXp,nho(),nFR=nRS,nFH=nRP,nFz=nRI,nFY=nRC,nFA=new EM(nXa,Va(0)),nF$=nRE,nFL=nRT,nFN=nRM,n_e=nRZ,nF4=nR$,nF5=nRx,nF9=nRq,nF6=nRK,nF8=nR_,n_r=nR4,n_i=nR0,n_n=nRV,nF7=nRX,n_t=nRJ,nFr=nRw,nFc=nRd,nKx=nDx,nKD=nDK,nFb=new ES(12),nFl=new EM(nUU,nFb),VY(),nKO=new EM(nUp,nKA=nXR),nFj=new EM(nU5,0),nFx=new EM(nXu,Va(1)),nKn=new EM(nUr,nwp),nFf=nUG,nFE=nU6,nFI=nXi,nKj=nUf,nR9=nUe,nK_=nUj,nFD=new EM(nXh,(TX(),!0)),nKz=nUM,nKU=nUS,nFu=nUR,nFh=nUH,nFo=nUF,W2(),nKE=new EM(nUl,nKM=nXO),nK7=nUx,nK9=nUL,nFS=nXn,nFM=nU7,nFP=nXe,Jq(),new EM(nUY,nFg=nWd),nFv=nU0,nFm=nU2,nFy=nU3,nFp=nU1,nF3=nRA,nK4=nD7,nK3=nD8,nF2=nRO,nKY=nDZ,nKk=nDk,nKy=nDm,nKl=nDr,nKb=nDc,nKd=nDh,nKw=nDa,nKm=nDp,nK6=nRt,nK8=nRe,nKW=nDU,nFa=nRm,nFt=nRa,nKK=nDB,nFi=nRl,nKL=nDA,nKN=nDL,nKf=nUs,nFn=nRi,nKr=nx3,nKi=nx0,nKe=nx1,nKH=nDG,nKB=nDq,nKq=nDz,nFs=nU_,nKV=nUC,nKR=nUm,nKI=nUd,nKP=nUw,nKg=nDb,nFT=nU9,nKt=nUo,nKG=nUT,nFk=nU4,nFw=nUW,nFd=nUQ,nK1=nD2,nK0=nD4,nFO=nXc,nR7=nxZ,nK2=nD6,nKC=nDP,nKS=nDM,nK5=nUA,nKQ=nDQ,nFe=nRs,nF1=nXT,nKT=nDE,nFC=nRk,nK$=nDC,nKJ=nDY,nKp=nDd,nKX=nUI,nKZ=nD0,nKv=nDg,nKh=nDe,nKo=nx7,nKa=nx8,nKu=nx9,nKs=nDt,nKc=nx5,nKF=nDH}function ns9(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P;if(nod(),E=n.e,b=n.d,r=n.a,0==E)switch(t){case 0:return"0";case 1:return nlg;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return k=new gX,t<0?k.a+="0E+":k.a+="0E",k.a+=-t,k.a}if(m=_f(nY$,nfS,25,(v=10*b+1+7)+1,15,1),e=v,1==b){if((a=r[0])<0){P=Di(a,nlw);do w=P,P=nnm(P,10),m[--e]=48+CZ(VR(w,VF(P,10)))&nfI;while(0!=WM(P,0))}else{P=a;do w=P,P=P/10|0,m[--e]=48+(w-10*P)&nfI;while(0!=P)}}else{now(r,0,M=_f(nYL,nfH,25,b,15,1),0,S=b);r:for(;;){for(j=0,o=S-1;o>=0;o--)g=function(n){var t,e,i;return WM(n,0)>=0?(e=nnm(n,nf7),i=QU(n,nf7)):(e=nnm(t=OF(n,1),5e8),i=VK(OR(i=QU(t,5e8),1),Di(n,1))),Dr(OR(i,32),Di(e,nlw))}(VK(OR(j,32),Di(M[o],nlw))),M[o]=CZ(g),j=CZ(OK(g,32));p=CZ(j),d=e;do m[--e]=48+p%10&nfI;while(0!=(p=p/10|0)&&0!=e)for(u=0,i=9-d+e;u<i&&e>0;u++)m[--e]=48;for(h=S-1;0==M[h];h--)if(0==h)break r;S=h+1}for(;48==m[e];)++e}if(l=E<0,c=v-e-t-1,0==t)return l&&(m[--e]=45),Je(m,e,v-e);if(t>0&&c>=-6){if(c>=0){for(s=e+c,f=v-1;f>=s;f--)m[f+1]=m[f];return m[++s]=46,l&&(m[--e]=45),Je(m,e,v-e+1)}for(h=2;h<-c+1;h++)m[--e]=48;return m[--e]=46,m[--e]=48,l&&(m[--e]=45),Je(m,e,v-e)}return T=e+1,y=new gW,l&&(y.a+="-"),v-T>=1?($r(y,m[e]),y.a+=".",y.a+=Je(m,e+1,v-e-1)):y.a+=Je(m,e,v-e),y.a+="E",c>0&&(y.a+="+"),y.a+=""+c,y.a}function ns7(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y;switch(n.c=t,n.g=new wt,mo(),Qa(new fE(new gl(n.c))),p=Sh(nrM(n.c,(ntA(),nGU))),a=Im(nrM(n.c,nGW),316),m=Im(nrM(n.c,nGV),429),r=Im(nrM(n.c,nGB),482),v=Im(nrM(n.c,nGX),430),n.j=gy(Ss(nrM(n.c,nGQ))),c=n.a,a.g){case 0:c=n.a;break;case 1:c=n.b;break;case 2:c=n.i;break;case 3:c=n.e;break;case 4:c=n.f;break;default:throw new gd(nvQ+(null!=a.f?a.f:""+a.g)).e}if(n.d=new NY(c,m,r),UU(n.d,(zj(),nCZ),So(nrM(n.c,nGq))),n.d.c=gm(So(nrM(n.c,nGH))),0==L8(n.c).i)return n.d;for(s=new Td(L8(n.c));s.e!=s.i.gc();){for(f=(o=Im(J1(s),33)).g/2,h=o.f/2,y=new kp(o.i+f,o.j+h);Au(n.g,y);)MG(y,(nTv.Math.random()-.5)*nww,(nTv.Math.random()-.5)*nww);b=Im(nrM(o,(nha(),nUA)),142),w=new xI(y,new Lj(y.a-f-n.j/2-b.b,y.b-h-n.j/2-b.d,o.g+n.j+(b.b+b.c),o.f+n.j+(b.d+b.a))),IE(n.d.i,w),$J(n.g,y,new k_(w,o))}switch(v.g){case 0:if(null==p)n.d.d=Im(CA(n.d.i,0),65);else for(g=new h1(n.d.i);g.a<g.c.c.length;)w=Im(De(g),65),null!=(l=Im(Im($a(n.g,w.a),46).b,33).zg())&&Pv(l,p)&&(n.d.d=w);break;case 1:for(e=new kp(n.c.g,n.c.f),e.a*=.5,e.b*=.5,MG(e,n.c.i,n.c.j),i=nlc,d=new h1(n.d.i);d.a<d.c.c.length;)(u=_k((w=Im(De(d),65)).a,e))<i&&(i=u,n.d.d=w);break;default:throw new gd(nvQ+(null!=v.f?v.f:""+v.g)).e}return n.d}function nhn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j;for(k=Im(HX((n.a||(n.a=new An(nCL,n,6,6)),n.a),0),202),h=new dd,y=new wt,j=num(k),neQ(y.f,k,j),l=new wt,i=new vK,w=AS(qO(Um(xg(nEJ,1),nhA,20,0,[(t.d||(t.d=new Ph(nC$,t,8,5)),t.d),(t.e||(t.e=new Ph(nC$,t,7,4)),t.e)])));nrc(w);){if(b=Im(K4(w),79),1!=(n.a||(n.a=new An(nCL,n,6,6)),n.a).i)throw new gd(nmX+(n.a||(n.a=new An(nCL,n,6,6)),n.a).i).e;b!=n&&(KL(i,g=Im(HX((b.a||(b.a=new An(nCL,b,6,6)),b.a),0),202),i.c.b,i.c),(d=Im(jh(Nj(y.f,g)),12))||(d=num(g),neQ(y.f,g,d)),f=e?S7(new Ee(Im(CA(j,j.c.length-1),8)),Im(CA(d,d.c.length-1),8)):S7(new Ee((x4(0,j.c.length),Im(j.c[0],8))),(x4(0,d.c.length),Im(d.c[0],8))),neQ(l.f,g,f))}if(0!=i.b)for(s=1,p=Im(CA(j,e?j.c.length-1:0),8);s<j.c.length;s++){for(v=Im(CA(j,e?j.c.length-1-s:s),8),r=Jz(i,0);r.b!=r.d.c;)g=Im(RP(r),202),(d=Im(jh(Nj(y.f,g)),12)).c.length<=s?HA(r):(m=S9(new Ee(Im(CA(d,e?d.c.length-1-s:s),8)),Im(jh(Nj(l.f,g)),8)),(v.a!=m.a||v.b!=m.b)&&(c=v.a-p.a,u=v.b-p.b,(a=m.a-p.a)*u==(o=m.b-p.b)*c&&(0==c||isNaN(c)?c:c<0?-1:1)==(0==a||isNaN(a)?a:a<0?-1:1)&&(0==u||isNaN(u)?u:u<0?-1:1)==(0==o||isNaN(o)?o:o<0?-1:1)?(nTv.Math.abs(c)<nTv.Math.abs(a)||nTv.Math.abs(u)<nTv.Math.abs(o))&&KL(h,v,h.c.b,h.c):s>1&&KL(h,p,h.c.b,h.c),HA(r)));p=v}return h}function nht(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;for(i=new wn,u=new wn,g=t/2,b=n.gc(),r=Im(n.Xb(0),8),p=Im(n.Xb(1),8),IE(i,(x4(0,(w=nrT(r.a,r.b,p.a,p.b,g)).c.length),Im(w.c[0],8))),IE(u,(x4(1,w.c.length),Im(w.c[1],8))),s=2;s<b;s++)d=r,r=p,p=Im(n.Xb(s),8),IE(i,(x4(1,(w=nrT(r.a,r.b,d.a,d.b,g)).c.length),Im(w.c[1],8))),IE(u,(x4(0,w.c.length),Im(w.c[0],8))),IE(i,(x4(0,(w=nrT(r.a,r.b,p.a,p.b,g)).c.length),Im(w.c[0],8))),IE(u,(x4(1,w.c.length),Im(w.c[1],8)));for(IE(i,(x4(1,(w=nrT(p.a,p.b,r.a,r.b,g)).c.length),Im(w.c[1],8))),IE(u,(x4(0,w.c.length),Im(w.c[0],8))),e=new dd,a=new wn,I2(e,(x4(0,i.c.length),Im(i.c[0],8))),h=1;h<i.c.length-2;h+=2)x4(h,i.c.length),c=Im(i.c[h],8),isFinite((l=nex((x4(h-1,i.c.length),Im(i.c[h-1],8)),c,(x4(h+1,i.c.length),Im(i.c[h+1],8)),(x4(h+2,i.c.length),Im(i.c[h+2],8)))).a)&&isFinite(l.b)?KL(e,l,e.c.b,e.c):KL(e,c,e.c.b,e.c);for(I2(e,Im(CA(i,i.c.length-1),8)),IE(a,(x4(0,u.c.length),Im(u.c[0],8))),f=1;f<u.c.length-2;f+=2)x4(f,u.c.length),c=Im(u.c[f],8),isFinite((l=nex((x4(f-1,u.c.length),Im(u.c[f-1],8)),c,(x4(f+1,u.c.length),Im(u.c[f+1],8)),(x4(f+2,u.c.length),Im(u.c[f+2],8)))).a)&&isFinite(l.b)?a.c[a.c.length]=l:a.c[a.c.length]=c;for(IE(a,Im(CA(u,u.c.length-1),8)),o=a.c.length-1;o>=0;o--)I2(e,(x4(o,a.c.length),Im(a.c[o],8)));return e}function nhe(n){var t,e,i;if(n.d>=n.j){n.a=-1,n.c=1;return}if(t=$9(n.i,n.d++),n.a=t,1==n.b){switch(t){case 92:if(i=10,n.d>=n.j)throw new gO(nhd((E$(),nkt))).e;n.a=$9(n.i,n.d++);break;case 45:(512&n.e)==512&&n.d<n.j&&91==$9(n.i,n.d)?(++n.d,i=24):i=0;break;case 91:if((512&n.e)!=512&&n.d<n.j&&58==$9(n.i,n.d)){++n.d,i=20;break}default:(64512&t)==nlh&&n.d<n.j&&(64512&(e=$9(n.i,n.d)))==56320&&(n.a=nls+(t-nlh<<10)+e-56320,++n.d),i=0}n.c=i;return}switch(t){case 124:i=2;break;case 42:i=3;break;case 43:i=4;break;case 63:i=5;break;case 41:i=7;break;case 46:i=8;break;case 91:i=9;break;case 94:i=11;break;case 36:i=12;break;case 40:if(i=6,n.d>=n.j||63!=$9(n.i,n.d))break;if(++n.d>=n.j)throw new gO(nhd((E$(),nke))).e;switch(t=$9(n.i,n.d++)){case 58:i=13;break;case 61:i=14;break;case 33:i=15;break;case 91:i=19;break;case 62:i=18;break;case 60:if(n.d>=n.j)throw new gO(nhd((E$(),nke))).e;if(61==(t=$9(n.i,n.d++)))i=16;else if(33==t)i=17;else throw new gO(nhd((E$(),nki))).e;break;case 35:for(;n.d<n.j&&41!=(t=$9(n.i,n.d++)););if(41!=t)throw new gO(nhd((E$(),nkr))).e;i=21;break;default:if(45==t||97<=t&&t<=122||65<=t&&t<=90){--n.d,i=22;break}if(40==t){i=23;break}throw new gO(nhd((E$(),nke))).e}break;case 92:if(i=10,n.d>=n.j)throw new gO(nhd((E$(),nkt))).e;n.a=$9(n.i,n.d++);break;default:i=0}n.c=i}function nhi(){nhi=C,ns5(),niP(nAH=new NK,(nsR(),nWK),nWR),niP(nAH,nWW,nWR),niP(nAH,nWF,nWR),niP(nAH,nWz,nWR),niP(nAH,nWG,nWR),niP(nAH,nWH,nWR),niP(nAH,nWz,nWK),niP(nAH,nWR,nWL),niP(nAH,nWK,nWL),niP(nAH,nWW,nWL),niP(nAH,nWF,nWL),niP(nAH,nWq,nWL),niP(nAH,nWz,nWL),niP(nAH,nWG,nWL),niP(nAH,nWH,nWL),niP(nAH,nWD,nWL),niP(nAH,nWR,nWU),niP(nAH,nWK,nWU),niP(nAH,nWL,nWU),niP(nAH,nWW,nWU),niP(nAH,nWF,nWU),niP(nAH,nWq,nWU),niP(nAH,nWz,nWU),niP(nAH,nWD,nWU),niP(nAH,nWX,nWU),niP(nAH,nWG,nWU),niP(nAH,nW_,nWU),niP(nAH,nWH,nWU),niP(nAH,nWK,nWW),niP(nAH,nWF,nWW),niP(nAH,nWz,nWW),niP(nAH,nWH,nWW),niP(nAH,nWK,nWF),niP(nAH,nWW,nWF),niP(nAH,nWz,nWF),niP(nAH,nWF,nWF),niP(nAH,nWG,nWF),niP(nAH,nWR,nWN),niP(nAH,nWK,nWN),niP(nAH,nWL,nWN),niP(nAH,nWU,nWN),niP(nAH,nWW,nWN),niP(nAH,nWF,nWN),niP(nAH,nWq,nWN),niP(nAH,nWz,nWN),niP(nAH,nWX,nWN),niP(nAH,nWD,nWN),niP(nAH,nWH,nWN),niP(nAH,nWG,nWN),niP(nAH,nWB,nWN),niP(nAH,nWR,nWX),niP(nAH,nWK,nWX),niP(nAH,nWL,nWX),niP(nAH,nWW,nWX),niP(nAH,nWF,nWX),niP(nAH,nWq,nWX),niP(nAH,nWz,nWX),niP(nAH,nWD,nWX),niP(nAH,nWH,nWX),niP(nAH,nW_,nWX),niP(nAH,nWB,nWX),niP(nAH,nWK,nWD),niP(nAH,nWW,nWD),niP(nAH,nWF,nWD),niP(nAH,nWz,nWD),niP(nAH,nWX,nWD),niP(nAH,nWH,nWD),niP(nAH,nWG,nWD),niP(nAH,nWR,nWx),niP(nAH,nWK,nWx),niP(nAH,nWL,nWx),niP(nAH,nWW,nWx),niP(nAH,nWF,nWx),niP(nAH,nWq,nWx),niP(nAH,nWz,nWx),niP(nAH,nWD,nWx),niP(nAH,nWH,nWx),niP(nAH,nWK,nWG),niP(nAH,nWL,nWG),niP(nAH,nWU,nWG),niP(nAH,nWF,nWG),niP(nAH,nWR,nW_),niP(nAH,nWK,nW_),niP(nAH,nWU,nW_),niP(nAH,nWW,nW_),niP(nAH,nWF,nW_),niP(nAH,nWq,nW_),niP(nAH,nWz,nW_),niP(nAH,nWz,nWB),niP(nAH,nWF,nWB),niP(nAH,nWD,nWR),niP(nAH,nWD,nWW),niP(nAH,nWD,nWL),niP(nAH,nWq,nWR),niP(nAH,nWq,nWK),niP(nAH,nWq,nWU)}function nhr(n,t){switch(n.e){case 0:case 2:case 4:case 6:case 42:case 44:case 46:case 48:case 8:case 10:case 12:case 14:case 16:case 18:case 20:case 22:case 24:case 26:case 28:case 30:case 32:case 34:case 36:case 38:return new L2(n.b,n.a,t,n.c);case 1:return new Tp(n.a,t,Qj(t.Tg(),n.c));case 43:return new Tm(n.a,t,Qj(t.Tg(),n.c));case 3:return new Tg(n.a,t,Qj(t.Tg(),n.c));case 45:return new Tv(n.a,t,Qj(t.Tg(),n.c));case 41:return new _D(Im(Z9(n.c),26),n.a,t,Qj(t.Tg(),n.c));case 50:return new qJ(Im(Z9(n.c),26),n.a,t,Qj(t.Tg(),n.c));case 5:return new Pi(n.a,t,Qj(t.Tg(),n.c),n.d.n);case 47:return new Pr(n.a,t,Qj(t.Tg(),n.c),n.d.n);case 7:return new An(n.a,t,Qj(t.Tg(),n.c),n.d.n);case 49:return new Pe(n.a,t,Qj(t.Tg(),n.c),n.d.n);case 9:return new TT(n.a,t,Qj(t.Tg(),n.c));case 11:return new TE(n.a,t,Qj(t.Tg(),n.c));case 13:return new Tj(n.a,t,Qj(t.Tg(),n.c));case 15:return new IW(n.a,t,Qj(t.Tg(),n.c));case 17:return new TM(n.a,t,Qj(t.Tg(),n.c));case 19:return new Tk(n.a,t,Qj(t.Tg(),n.c));case 21:return new Ty(n.a,t,Qj(t.Tg(),n.c));case 23:return new Iq(n.a,t,Qj(t.Tg(),n.c));case 25:return new Pf(n.a,t,Qj(t.Tg(),n.c),n.d.n);case 27:return new Ph(n.a,t,Qj(t.Tg(),n.c),n.d.n);case 29:return new Po(n.a,t,Qj(t.Tg(),n.c),n.d.n);case 31:return new Pc(n.a,t,Qj(t.Tg(),n.c),n.d.n);case 33:return new Ps(n.a,t,Qj(t.Tg(),n.c),n.d.n);case 35:return new Pu(n.a,t,Qj(t.Tg(),n.c),n.d.n);case 37:return new Pa(n.a,t,Qj(t.Tg(),n.c),n.d.n);case 39:return new At(n.a,t,Qj(t.Tg(),n.c),n.d.n);case 40:return new zr(t,Qj(t.Tg(),n.c));default:throw new d7("Unknown feature style: "+n.e).e}}function nhc(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,I;if(nax(t),o=Im(HX((t.b||(t.b=new Ph(nCA,t,4,7)),t.b),0),82),h=Im(HX((t.c||(t.c=new Ph(nCA,t,5,8)),t.c),0),82),u=ntr(o),s=ntr(h),a=0==(t.a||(t.a=new An(nCL,t,6,6)),t.a).i?null:Im(HX((t.a||(t.a=new An(nCL,t,6,6)),t.a),0),202),j=Im($a(n.a,u),10),S=Im($a(n.a,s),10),E=null,P=null,Ti(o,186)&&(Ti(k=Im($a(n.a,o),299),11)?E=Im(k,11):Ti(k,10)&&(j=Im(k,10),E=Im(CA(j.j,0),11))),Ti(h,186)&&(Ti(M=Im($a(n.a,h),299),11)?P=Im(M,11):Ti(M,10)&&(S=Im(M,10),P=Im(CA(S.j,0),11))),!j||!S)throw new gC("The source or the target of edge "+t+" could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN.").e;for(z5(d=new Ns,t),UU(d,(nhu(),nxE),t),UU(d,(ns8(),nKV),null),b=Im(ntP(i,nxu),21),j==S&&b.Fc((ncJ(),nN_)),E||(qF(),y=n_X,T=null,a&&Ec(Im(ntP(j,nFE),98))&&(RG(T=new kp(a.j,a.k),N6(t)),KO(T,e),HD(s,u)&&(y=n_U,S9(T,j.n))),E=nov(j,T,y,i)),P||(qF(),y=n_U,I=null,a&&Ec(Im(ntP(S,nFE),98))&&(RG(I=new kp(a.b,a.c),N6(t)),KO(I,e)),P=nov(S,I,y,$L(S))),xE(d,E),xj(d,P),(E.e.c.length>1||E.g.c.length>1||P.e.c.length>1||P.g.c.length>1)&&b.Fc((ncJ(),nNx)),l=new Td((t.n||(t.n=new An(nCK,t,1,7)),t.n));l.e!=l.i.gc();)if(!gm(So(nrM(f=Im(J1(l),137),nFf)))&&f.a)switch(g=WE(f),IE(d.b,g),Im(ntP(g,nKI),272).g){case 1:case 2:b.Fc((ncJ(),nNL));break;case 0:b.Fc((ncJ(),nNA)),UU(g,nKI,(HH(),nXL))}if(c=Im(ntP(i,nKy),314),p=Im(ntP(i,nFa),315),r=c==(q5(),nLQ)||p==(YL(),n_M),a&&0!=(a.a||(a.a=new Tg(nCI,a,5)),a.a).i&&r){for(v=nei(a),w=new dd,m=Jz(v,0);m.b!=m.d.c;)I2(w,new Ee(Im(RP(m),8)));UU(d,nxT,w)}return d}function nha(){var n,t;nha=C,nUt=new bR(nmy),nXo=new bR(nmk),Yv(),nUe=new jU(npy,nUi=nzF),new b9,nUr=new jU(nb8,null),nUc=new bR(nmj),nnF(),nUs=new jU(npL,nUh=C6(nz7,Um(xg(nCs,1),nfh,291,0,[nz5]))),nUf=new jU(npm,(TX(),!1)),W2(),nUl=new jU(npT,nUb=nXO),VY(),nUp=new jU(ng2,nUv=nX_),nUk=new jU(nvX,!1),WL(),nUj=new jU(ngJ,nUE=nX3),nUU=new jU(nb9,nUX=new ES(12)),nUP=new jU(nwT,!1),nUI=new jU(npz,!1),nUz=new jU(nwP,!1),nn2(),nU6=new jU(nwM,nU8=nWj),nXc=new bR(npH),nXa=new bR(nwm),nXu=new bR(nwj),nXh=new bR(nwE),nUC=new jU(npN,nUO=new dd),nUo=new jU(npR,!1),nUT=new jU(npK,!1),new bR(nmE),nUA=new jU(npq,nU$=new dc),nUG=new jU(npp,!1),new b9,nXs=new jU(nmT,1),new jU(nmM,!0),Va(0),new jU(nmS,Va(100)),new jU(nmP,!1),Va(0),new jU(nmI,Va(4e3)),Va(0),new jU(nmC,Va(400)),new jU(nmO,!1),new jU(nmA,!1),new jU(nm$,!0),new jU(nmL,!1),QI(),nUa=new jU(nmm,nUu=nVl),nXf=new jU(npc,10),nXl=new jU(npa,10),nXb=new jU(nb5,20),nXw=new jU(npu,10),nXd=new jU(nwk,2),nXg=new jU(npo,10),nXv=new jU(nps,0),nXm=new jU(npl,5),nXy=new jU(nph,1),nXk=new jU(npf,1),nXj=new jU(nwy,20),nXE=new jU(npb,10),nXS=new jU(npw,10),nXp=new bR(npd),nXT=new jU(npG,nXM=new En),nUQ=new bR(npB),nUW=new jU(np_,nUV=!1),nUL=new jU(npM,nUN=new ES(5)),nrS(),nUx=new jU(nwO,nUD=new PR(t=Im(pf(nCg),9),Im(Sz(t,t.length),9),0)),Jq(),nUY=new jU(npI,nUZ=nWb),nU0=new bR(npC),nU2=new bR(npO),nU3=new bR(npA),nU1=new bR(np$),nUR=new jU(nwC,nUK=new PR(n=Im(pf(nCk),9),Im(Sz(n,n.length),9),0)),nUH=new jU(nwI,nUq=VD((na9(),nVt))),nU_=new jU(nwq,nUB=new kp(0,0)),nUF=new jU(npE,!1),HH(),nUd=new jU(npx,nUg=nXL),nUw=new jU(nwS,!1),new bR(nmN),Va(1),new jU(nmx,null),nU4=new bR(npF),nU9=new bR(npD),nsR(),nXi=new jU(npv,nXr=nWQ),nU5=new bR(npg),nis(),nXn=new jU(nwA,nXt=VD(nWI)),nU7=new jU(npS,!1),nXe=new jU(npP,!0),nUM=new jU(npk,!1),nUS=new jU(npj,!1),nUm=new jU(nb6,1),ntg(),new jU(nmD,nUy=nXU),nUJ=!0}function nhu(){var n,t;nhu=C,nxE=new bR(nw$),nN4=new bR("coordinateOrigin"),nxL=new bR("processors"),nN3=new SA("compoundNode",(TX(),!1)),nxh=new SA("insideConnections",!1),nxT=new bR("originalBendpoints"),nxM=new bR("originalDummyNodePosition"),nxS=new bR("originalLabelEdge"),nxx=new bR("representedLabels"),nN7=new bR("endLabels"),nxn=new bR("endLabel.origin"),nxd=new SA("labelSide",(ZR(),nX7)),nxk=new SA("maxEdgeThickness",0),nxD=new SA("reversed",!1),nxN=new bR(nwL),nxv=new SA("longEdgeSource",null),nxm=new SA("longEdgeTarget",null),nxp=new SA("longEdgeHasLabelDummies",!1),nxg=new SA("longEdgeBeforeLabelDummy",!1),nN9=new SA("edgeConstraint",(UK(),nNr)),nxl=new bR("inLayerLayoutUnit"),nxf=new SA("inLayerConstraint",(BL(),nNX)),nxb=new SA("inLayerSuccessorConstraint",new wn),nxw=new SA("inLayerSuccessorConstraintBetweenNonDummies",!1),nxA=new bR("portDummy"),nN5=new SA("crossingHint",Va(0)),nxu=new SA("graphProperties",new PR(t=Im(pf(nIs),9),Im(Sz(t,t.length),9),0)),nxr=new SA("externalPortSide",(nsR(),nWQ)),nxc=new SA("externalPortSize",new ps),nxe=new bR("externalPortReplacedDummies"),nxi=new bR("externalPortReplacedDummy"),nxt=new SA("externalPortConnections",new PR(n=Im(pf(nCy),9),Im(Sz(n,n.length),9),0)),nx$=new SA(nbP,0),nNZ=new bR("barycenterAssociates"),nxU=new bR("TopSideComments"),nN1=new bR("BottomSideComments"),nN2=new bR("CommentConnectionPort"),nxs=new SA("inputCollect",!1),nxC=new SA("outputCollect",!1),nN8=new SA("cyclic",!1),nN6=new bR("crossHierarchyMap"),nxz=new bR("targetOffset"),new SA("splineLabelSize",new ps),nxF=new bR("spacings"),nxO=new SA("partitionConstraint",!1),nN0=new bR("breakingPoint.info"),nxq=new bR("splines.survivingEdge"),nxH=new bR("splines.route.start"),nx_=new bR("splines.edgeChain"),nxI=new bR("originalPortConstraints"),nxK=new bR("selfLoopHolder"),nxB=new bR("splines.nsPortY"),nxj=new bR("modelOrder"),nxy=new bR("longEdgeTargetNode"),nxa=new SA(ndR,!1),nxR=new SA(ndR,!1),nxo=new bR("layerConstraints.hiddenNodes"),nxP=new bR("layerConstraints.opposidePort"),nxG=new bR("targetNode.modelOrder")}function nho(){nho=C,Ht(),nDE=new jU(ndK,nDT=nNn),nDB=new jU(ndF,(TX(),!1)),Rd(),nDU=new jU(nd_,nDX=nNQ),nRt=new jU(ndB,!1),nRe=new jU(ndH,!0),nxZ=new jU(ndq,!1),BN(),nRk=new jU(ndG,nRj=n_q),Va(1),nRO=new jU(ndz,Va(7)),nRA=new jU(ndU,!1),nDH=new jU(ndX,!1),YU(),nDk=new jU(ndW,nDj=nL5),ntt(),nD7=new jU(ndV,nRn=n_l),VJ(),nDZ=new jU(ndQ,nD1=nxJ),Va(-1),nDY=new jU(ndJ,Va(-1)),Va(-1),nD0=new jU(ndY,Va(-1)),Va(-1),nD2=new jU(ndZ,Va(4)),Va(-1),nD4=new jU(nd1,Va(2)),nco(),nD8=new jU(nd0,nD9=n_D),Va(0),nD6=new jU(nd2,Va(0)),nDQ=new jU(nd3,Va(nhM)),q5(),nDm=new jU(nd4,nDy=nLJ),nDr=new jU(nd5,!1),nDb=new jU(nd6,.1),nDp=new jU(nd8,!1),Va(-1),nDd=new jU(nd9,Va(-1)),Va(-1),nDg=new jU(nd7,Va(-1)),Va(0),nDc=new jU(ngn,Va(40)),z0(),nDh=new jU(ngt,nDf=nNG),nDa=new jU(nge,nDu=nNH),YL(),nRm=new jU(ngi,nRy=n_T),nRs=new bR(ngr),Bo(),nRi=new jU(ngc,nRr=nNw),nnS(),nRa=new jU(nga,nRu=nNy),new b9,nRl=new jU(ngu,.3),nRw=new bR(ngo),Yp(),nRd=new jU(ngs,nRg=n_k),zp(),nDA=new jU(ngh,nD$=n_J),FA(),nDL=new jU(ngf,nDN=n_0),XJ(),nDx=new jU(ngl,nDD=n_5),nDK=new jU(ngb,.2),nDC=new jU(ngw,2),nRS=new jU(ngd,null),nRI=new jU(ngg,10),nRP=new jU(ngp,10),nRC=new jU(ngv,20),Va(0),nRE=new jU(ngm,Va(0)),Va(0),nRT=new jU(ngy,Va(0)),Va(0),nRM=new jU(ngk,Va(0)),nx1=new jU(ngj,!1),ntW(),nx3=new jU(ngE,nx4=nNI),_j(),nx0=new jU(ngT,nx2=nLW),nDG=new jU(ngM,!1),Va(0),nDq=new jU(ngS,Va(16)),Va(0),nDz=new jU(ngP,Va(5)),UE(),nRZ=new jU(ngI,nR1=nBe),nR$=new jU(ngC,10),nRx=new jU(ngO,1),q_(),nRq=new jU(ngA,nRG=nL2),nRK=new bR(ng$),nRB=Va(1),Va(0),nR_=new jU(ngL,nRB),G7(),nR4=new jU(ngN,nR5=n_8),nR0=new bR(ngx),nRV=new jU(ngD,!0),nRX=new jU(ngR,2),nRJ=new jU(ngK,!0),nt0(),nDP=new jU(ngF,nDI=nNf),neC(),nDM=new jU(ng_,nDS=nLH),U1(),nDe=new jU(ngB,nDi=n__),nDt=new jU(ngH,!1),W3(),nx5=new jU(ngq,nx6=nA_),Wf(),nx7=new jU(ngG,nDn=n_d),nx8=new jU(ngz,0),nx9=new jU(ngU,0),nDV=nL8,nDW=nLQ,nD3=n_f,nD5=n_f,nDJ=n_o,WL(),nDw=nX2,nDv=nLJ,nDl=nLJ,nDo=nLJ,nDs=nX2,nRh=n_P,nRf=n_T,nRc=n_T,nRo=n_T,nRb=n_S,nRv=n_P,nRp=n_P,VY(),nDR=nXF,nDF=nXF,nD_=n_5,nDO=nXK,nRL=nBi,nRN=nBt,nRD=nBi,nRR=nBt,nRz=nBi,nRU=nBt,nRF=nL0,nRH=nL2,nR6=nBi,nR8=nBt,nR2=nBi,nR3=nBt,nRQ=nBt,nRW=nBt,nRY=nBt}function nhs(){nhs=C,n$h=new m6("DIRECTION_PREPROCESSOR",0),n$u=new m6("COMMENT_PREPROCESSOR",1),n$f=new m6("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER",2),n$P=new m6("INTERACTIVE_EXTERNAL_PORT_POSITIONER",3),n$U=new m6("PARTITION_PREPROCESSOR",4),n$A=new m6("LABEL_DUMMY_INSERTER",5),n$Y=new m6("SELF_LOOP_PREPROCESSOR",6),n$D=new m6("LAYER_CONSTRAINT_PREPROCESSOR",7),n$G=new m6("PARTITION_MIDPROCESSOR",8),n$j=new m6("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9),n$_=new m6("NODE_PROMOTION",10),n$x=new m6("LAYER_CONSTRAINT_POSTPROCESSOR",11),n$z=new m6("PARTITION_POSTPROCESSOR",12),n$v=new m6("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR",13),n$1=new m6("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR",14),n$t=new m6("BREAKING_POINT_INSERTER",15),n$F=new m6("LONG_EDGE_SPLITTER",16),n$W=new m6("PORT_SIDE_PROCESSOR",17),n$I=new m6("INVERTED_PORT_PROCESSOR",18),n$X=new m6("PORT_LIST_SORTER",19),n$2=new m6("SORT_BY_INPUT_ORDER_OF_MODEL",20),n$H=new m6("NORTH_SOUTH_PORT_PREPROCESSOR",21),n$e=new m6("BREAKING_POINT_PROCESSOR",22),n$q=new m6(ndd,23),n$3=new m6(ndg,24),n$Q=new m6("SELF_LOOP_PORT_RESTORER",25),n$0=new m6("SINGLE_EDGE_GRAPH_WRAPPER",26),n$C=new m6("IN_LAYER_CONSTRAINT_PROCESSOR",27),n$d=new m6("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR",28),n$O=new m6("LABEL_AND_NODE_SIZE_PROCESSOR",29),n$S=new m6("INNERMOST_NODE_MARGIN_CALCULATOR",30),n$Z=new m6("SELF_LOOP_ROUTER",31),n$c=new m6("COMMENT_NODE_MARGIN_CALCULATOR",32),n$b=new m6("END_LABEL_PREPROCESSOR",33),n$L=new m6("LABEL_DUMMY_SWITCHER",34),n$r=new m6("CENTER_LABEL_MANAGEMENT_PROCESSOR",35),n$N=new m6("LABEL_SIDE_SELECTOR",36),n$T=new m6("HYPEREDGE_DUMMY_MERGER",37),n$m=new m6("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR",38),n$R=new m6("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR",39),n$k=new m6("HIERARCHICAL_PORT_POSITION_PROCESSOR",40),n$o=new m6("CONSTRAINTS_POSTPROCESSOR",41),n$a=new m6("COMMENT_POSTPROCESSOR",42),n$M=new m6("HYPERNODE_PROCESSOR",43),n$y=new m6("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER",44),n$K=new m6("LONG_EDGE_JOINER",45),n$J=new m6("SELF_LOOP_POSTPROCESSOR",46),n$i=new m6("BREAKING_POINT_REMOVER",47),n$B=new m6("NORTH_SOUTH_PORT_POSTPROCESSOR",48),n$E=new m6("HORIZONTAL_COMPACTOR",49),n$$=new m6("LABEL_DUMMY_REMOVER",50),n$g=new m6("FINAL_SPLINE_BENDPOINTS_CALCULATOR",51),n$w=new m6("END_LABEL_SORTER",52),n$V=new m6("REVERSED_EDGE_RESTORER",53),n$l=new m6("END_LABEL_POSTPROCESSOR",54),n$p=new m6("HIERARCHICAL_NODE_RESIZER",55),n$s=new m6("DIRECTION_POSTPROCESSOR",56)}function nhh(){nhh=C,nYl=new b8(7),++nYO,nYb=new CU(8,94),++nYO,new CU(8,64),++nYO,nYw=new CU(8,36),++nYO,nYy=new CU(8,65),++nYO,nYk=new CU(8,122),++nYO,nYj=new CU(8,90),++nYO,nYM=new CU(8,98),++nYO,nYv=new CU(8,66),++nYO,nYE=new CU(8,60),++nYO,nYS=new CU(8,62),nYf=new b8(11),++nYO,ncz(nYh=new Dv(4),48,57),++nYO,ncz(nYT=new Dv(4),48,57),ncz(nYT,65,90),ncz(nYT,95,95),ncz(nYT,97,122),++nYO,ncz(nYm=new Dv(4),9,9),ncz(nYm,10,10),ncz(nYm,12,12),ncz(nYm,13,13),ncz(nYm,32,32),nYd=nuR(nYh),nYp=nuR(nYT),nYg=nuR(nYm),nYa=new wt,nYu=new wt,nYo=Um(xg(nTh,1),nhJ,2,6,["Cn","Lu","Ll","Lt","Lm","Lo","Mn","Me","Mc","Nd","Nl","No","Zs","Zl","Zp","Cc","Cf",null,"Co","Cs","Pd","Ps","Pe","Pc","Po","Sm","Sc","Sk","So","Pi","Pf","L","M","N","Z","C","P","S"]),nYc=Um(xg(nTh,1),nhJ,2,6,["Basic Latin","Latin-1 Supplement","Latin Extended-A","Latin Extended-B","IPA Extensions","Spacing Modifier Letters","Combining Diacritical Marks","Greek","Cyrillic","Armenian","Hebrew","Arabic","Syriac","Thaana","Devanagari","Bengali","Gurmukhi","Gujarati","Oriya","Tamil","Telugu","Kannada","Malayalam","Sinhala","Thai","Lao","Tibetan","Myanmar","Georgian","Hangul Jamo","Ethiopic","Cherokee","Unified Canadian Aboriginal Syllabics","Ogham","Runic","Khmer","Mongolian","Latin Extended Additional","Greek Extended","General Punctuation","Superscripts and Subscripts","Currency Symbols","Combining Marks for Symbols","Letterlike Symbols","Number Forms","Arrows","Mathematical Operators","Miscellaneous Technical","Control Pictures","Optical Character Recognition","Enclosed Alphanumerics","Box Drawing","Block Elements","Geometric Shapes","Miscellaneous Symbols","Dingbats","Braille Patterns","CJK Radicals Supplement","Kangxi Radicals","Ideographic Description Characters","CJK Symbols and Punctuation","Hiragana","Katakana","Bopomofo","Hangul Compatibility Jamo","Kanbun","Bopomofo Extended","Enclosed CJK Letters and Months","CJK Compatibility","CJK Unified Ideographs Extension A","CJK Unified Ideographs","Yi Syllables","Yi Radicals","Hangul Syllables",nE$,"CJK Compatibility Ideographs","Alphabetic Presentation Forms","Arabic Presentation Forms-A","Combining Half Marks","CJK Compatibility Forms","Small Form Variants","Arabic Presentation Forms-B","Specials","Halfwidth and Fullwidth Forms","Old Italic","Gothic","Deseret","Byzantine Musical Symbols","Musical Symbols","Mathematical Alphanumeric Symbols","CJK Unified Ideographs Extension B","CJK Compatibility Ideographs Supplement","Tags"]),nYs=Um(xg(nYL,1),nfH,25,15,[66304,66351,66352,66383,66560,66639,118784,119039,119040,119295,119808,120831,131072,173782,194560,195103,917504,917631])}function nhf(){nhf=C,nPd=new G6("OUT_T_L",0,(_1(),nSZ),(B$(),nS2),(HB(),nSW),nSW,Um(xg(nEY,1),nhA,21,0,[C6((nrS(),nWa),Um(xg(nCg,1),nfh,93,0,[nWs,nWe]))])),nPw=new G6("OUT_T_C",1,nSY,nS2,nSW,nSV,Um(xg(nEY,1),nhA,21,0,[C6(nWa,Um(xg(nCg,1),nfh,93,0,[nWs,nWt])),C6(nWa,Um(xg(nCg,1),nfh,93,0,[nWs,nWt,nWi]))])),nPg=new G6("OUT_T_R",2,nS1,nS2,nSW,nSQ,Um(xg(nEY,1),nhA,21,0,[C6(nWa,Um(xg(nCg,1),nfh,93,0,[nWs,nWr]))])),nPa=new G6("OUT_B_L",3,nSZ,nS4,nSQ,nSW,Um(xg(nEY,1),nhA,21,0,[C6(nWa,Um(xg(nCg,1),nfh,93,0,[nWu,nWe]))])),nPc=new G6("OUT_B_C",4,nSY,nS4,nSQ,nSV,Um(xg(nEY,1),nhA,21,0,[C6(nWa,Um(xg(nCg,1),nfh,93,0,[nWu,nWt])),C6(nWa,Um(xg(nCg,1),nfh,93,0,[nWu,nWt,nWi]))])),nPu=new G6("OUT_B_R",5,nS1,nS4,nSQ,nSQ,Um(xg(nEY,1),nhA,21,0,[C6(nWa,Um(xg(nCg,1),nfh,93,0,[nWu,nWr]))])),nPh=new G6("OUT_L_T",6,nS1,nS4,nSW,nSW,Um(xg(nEY,1),nhA,21,0,[C6(nWa,Um(xg(nCg,1),nfh,93,0,[nWe,nWs,nWi]))])),nPs=new G6("OUT_L_C",7,nS1,nS3,nSV,nSW,Um(xg(nEY,1),nhA,21,0,[C6(nWa,Um(xg(nCg,1),nfh,93,0,[nWe,nWo])),C6(nWa,Um(xg(nCg,1),nfh,93,0,[nWe,nWo,nWi]))])),nPo=new G6("OUT_L_B",8,nS1,nS2,nSQ,nSW,Um(xg(nEY,1),nhA,21,0,[C6(nWa,Um(xg(nCg,1),nfh,93,0,[nWe,nWu,nWi]))])),nPb=new G6("OUT_R_T",9,nSZ,nS4,nSW,nSQ,Um(xg(nEY,1),nhA,21,0,[C6(nWa,Um(xg(nCg,1),nfh,93,0,[nWr,nWs,nWi]))])),nPl=new G6("OUT_R_C",10,nSZ,nS3,nSV,nSQ,Um(xg(nEY,1),nhA,21,0,[C6(nWa,Um(xg(nCg,1),nfh,93,0,[nWr,nWo])),C6(nWa,Um(xg(nCg,1),nfh,93,0,[nWr,nWo,nWi]))])),nPf=new G6("OUT_R_B",11,nSZ,nS2,nSQ,nSQ,Um(xg(nEY,1),nhA,21,0,[C6(nWa,Um(xg(nCg,1),nfh,93,0,[nWr,nWu,nWi]))])),nPi=new G6("IN_T_L",12,nSZ,nS4,nSW,nSW,Um(xg(nEY,1),nhA,21,0,[C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWs,nWe])),C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWs,nWe,nWi]))])),nPe=new G6("IN_T_C",13,nSY,nS4,nSW,nSV,Um(xg(nEY,1),nhA,21,0,[C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWs,nWt])),C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWs,nWt,nWi]))])),nPr=new G6("IN_T_R",14,nS1,nS4,nSW,nSQ,Um(xg(nEY,1),nhA,21,0,[C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWs,nWr])),C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWs,nWr,nWi]))])),nPn=new G6("IN_C_L",15,nSZ,nS3,nSV,nSW,Um(xg(nEY,1),nhA,21,0,[C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWo,nWe])),C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWo,nWe,nWi]))])),nS7=new G6("IN_C_C",16,nSY,nS3,nSV,nSV,Um(xg(nEY,1),nhA,21,0,[C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWo,nWt])),C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWo,nWt,nWi]))])),nPt=new G6("IN_C_R",17,nS1,nS3,nSV,nSQ,Um(xg(nEY,1),nhA,21,0,[C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWo,nWr])),C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWo,nWr,nWi]))])),nS8=new G6("IN_B_L",18,nSZ,nS2,nSQ,nSW,Um(xg(nEY,1),nhA,21,0,[C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWu,nWe])),C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWu,nWe,nWi]))])),nS6=new G6("IN_B_C",19,nSY,nS2,nSQ,nSV,Um(xg(nEY,1),nhA,21,0,[C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWu,nWt])),C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWu,nWt,nWi]))])),nS9=new G6("IN_B_R",20,nS1,nS2,nSQ,nSQ,Um(xg(nEY,1),nhA,21,0,[C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWu,nWr])),C6(nWc,Um(xg(nCg,1),nfh,93,0,[nWu,nWr,nWi]))])),nPp=new G6(nbj,21,null,null,null,null,Um(xg(nEY,1),nhA,21,0,[]))}function nhl(){nhl=C,nQ$=($g(),nQO).b,Im(HX(L6(nQO.b),0),34),Im(HX(L6(nQO.b),1),18),nQA=nQO.a,Im(HX(L6(nQO.a),0),34),Im(HX(L6(nQO.a),1),18),Im(HX(L6(nQO.a),2),18),Im(HX(L6(nQO.a),3),18),Im(HX(L6(nQO.a),4),18),nQL=nQO.o,Im(HX(L6(nQO.o),0),34),Im(HX(L6(nQO.o),1),34),nQx=Im(HX(L6(nQO.o),2),18),Im(HX(L6(nQO.o),3),18),Im(HX(L6(nQO.o),4),18),Im(HX(L6(nQO.o),5),18),Im(HX(L6(nQO.o),6),18),Im(HX(L6(nQO.o),7),18),Im(HX(L6(nQO.o),8),18),Im(HX(L6(nQO.o),9),18),Im(HX(L6(nQO.o),10),18),Im(HX(L6(nQO.o),11),18),Im(HX(L6(nQO.o),12),18),Im(HX(L6(nQO.o),13),18),Im(HX(L6(nQO.o),14),18),Im(HX(L6(nQO.o),15),18),Im(HX(L5(nQO.o),0),59),Im(HX(L5(nQO.o),1),59),Im(HX(L5(nQO.o),2),59),Im(HX(L5(nQO.o),3),59),Im(HX(L5(nQO.o),4),59),Im(HX(L5(nQO.o),5),59),Im(HX(L5(nQO.o),6),59),Im(HX(L5(nQO.o),7),59),Im(HX(L5(nQO.o),8),59),Im(HX(L5(nQO.o),9),59),nQN=nQO.p,Im(HX(L6(nQO.p),0),34),Im(HX(L6(nQO.p),1),34),Im(HX(L6(nQO.p),2),34),Im(HX(L6(nQO.p),3),34),Im(HX(L6(nQO.p),4),18),Im(HX(L6(nQO.p),5),18),Im(HX(L5(nQO.p),0),59),Im(HX(L5(nQO.p),1),59),nQD=nQO.q,Im(HX(L6(nQO.q),0),34),nQR=nQO.v,Im(HX(L6(nQO.v),0),18),Im(HX(L5(nQO.v),0),59),Im(HX(L5(nQO.v),1),59),Im(HX(L5(nQO.v),2),59),nQK=nQO.w,Im(HX(L6(nQO.w),0),34),Im(HX(L6(nQO.w),1),34),Im(HX(L6(nQO.w),2),34),Im(HX(L6(nQO.w),3),18),nQF=nQO.B,Im(HX(L6(nQO.B),0),18),Im(HX(L5(nQO.B),0),59),Im(HX(L5(nQO.B),1),59),Im(HX(L5(nQO.B),2),59),nQH=nQO.Q,Im(HX(L6(nQO.Q),0),18),Im(HX(L5(nQO.Q),0),59),nQq=nQO.R,Im(HX(L6(nQO.R),0),34),nQG=nQO.S,Im(HX(L5(nQO.S),0),59),Im(HX(L5(nQO.S),1),59),Im(HX(L5(nQO.S),2),59),Im(HX(L5(nQO.S),3),59),Im(HX(L5(nQO.S),4),59),Im(HX(L5(nQO.S),5),59),Im(HX(L5(nQO.S),6),59),Im(HX(L5(nQO.S),7),59),Im(HX(L5(nQO.S),8),59),Im(HX(L5(nQO.S),9),59),Im(HX(L5(nQO.S),10),59),Im(HX(L5(nQO.S),11),59),Im(HX(L5(nQO.S),12),59),Im(HX(L5(nQO.S),13),59),Im(HX(L5(nQO.S),14),59),nQz=nQO.T,Im(HX(L6(nQO.T),0),18),Im(HX(L6(nQO.T),2),18),nQU=Im(HX(L6(nQO.T),3),18),Im(HX(L6(nQO.T),4),18),Im(HX(L5(nQO.T),0),59),Im(HX(L5(nQO.T),1),59),Im(HX(L6(nQO.T),1),18),nQX=nQO.U,Im(HX(L6(nQO.U),0),34),Im(HX(L6(nQO.U),1),34),Im(HX(L6(nQO.U),2),18),Im(HX(L6(nQO.U),3),18),Im(HX(L6(nQO.U),4),18),Im(HX(L6(nQO.U),5),18),Im(HX(L5(nQO.U),0),59),nQW=nQO.V,Im(HX(L6(nQO.V),0),18),nQV=nQO.W,Im(HX(L6(nQO.W),0),34),Im(HX(L6(nQO.W),1),34),Im(HX(L6(nQO.W),2),34),Im(HX(L6(nQO.W),3),18),Im(HX(L6(nQO.W),4),18),Im(HX(L6(nQO.W),5),18),nQJ=nQO.bb,Im(HX(L6(nQO.bb),0),34),Im(HX(L6(nQO.bb),1),34),Im(HX(L6(nQO.bb),2),34),Im(HX(L6(nQO.bb),3),34),Im(HX(L6(nQO.bb),4),34),Im(HX(L6(nQO.bb),5),34),Im(HX(L6(nQO.bb),6),34),Im(HX(L6(nQO.bb),7),18),Im(HX(L5(nQO.bb),0),59),Im(HX(L5(nQO.bb),1),59),nQY=nQO.eb,Im(HX(L6(nQO.eb),0),34),Im(HX(L6(nQO.eb),1),34),Im(HX(L6(nQO.eb),2),34),Im(HX(L6(nQO.eb),3),34),Im(HX(L6(nQO.eb),4),34),Im(HX(L6(nQO.eb),5),34),Im(HX(L6(nQO.eb),6),18),Im(HX(L6(nQO.eb),7),18),nQQ=nQO.ab,Im(HX(L6(nQO.ab),0),34),Im(HX(L6(nQO.ab),1),34),nQ_=nQO.H,Im(HX(L6(nQO.H),0),18),Im(HX(L6(nQO.H),1),18),Im(HX(L6(nQO.H),2),18),Im(HX(L6(nQO.H),3),18),Im(HX(L6(nQO.H),4),18),Im(HX(L6(nQO.H),5),18),Im(HX(L5(nQO.H),0),59),nQZ=nQO.db,Im(HX(L6(nQO.db),0),18),nQB=nQO.M}function nhb(n){var t,e,i;mc(n,new nte(((((t=new as).c=nda,t).d="ELK Layered",t).b="Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level.",e=new rH,t.e=e,t.a=nda,i=C6((nrt(),nVU),Um(xg(nCG,1),nfh,237,0,[nVq,nVG,nVH,nVz,nV_,nVF])),t.f=i,t))),DV(n,nda,npc,JZ(nFK)),DV(n,nda,npa,JZ(nFF)),DV(n,nda,nb5,JZ(nF_)),DV(n,nda,npu,JZ(nFB)),DV(n,nda,nwk,JZ(nFq)),DV(n,nda,npo,JZ(nFG)),DV(n,nda,nps,JZ(nFX)),DV(n,nda,nph,JZ(nFV)),DV(n,nda,npf,JZ(nFQ)),DV(n,nda,npl,JZ(nFW)),DV(n,nda,nwy,JZ(nFJ)),DV(n,nda,npb,JZ(nFZ)),DV(n,nda,npw,JZ(nF0)),DV(n,nda,npd,JZ(nFU)),DV(n,nda,ngd,JZ(nFR)),DV(n,nda,ngp,JZ(nFH)),DV(n,nda,ngg,JZ(nFz)),DV(n,nda,ngv,JZ(nFY)),DV(n,nda,nwm,Va(0)),DV(n,nda,ngm,JZ(nF$)),DV(n,nda,ngy,JZ(nFL)),DV(n,nda,ngk,JZ(nFN)),DV(n,nda,ngI,JZ(n_e)),DV(n,nda,ngC,JZ(nF4)),DV(n,nda,ngO,JZ(nF5)),DV(n,nda,ngA,JZ(nF9)),DV(n,nda,ng$,JZ(nF6)),DV(n,nda,ngL,JZ(nF8)),DV(n,nda,ngN,JZ(n_r)),DV(n,nda,ngx,JZ(n_i)),DV(n,nda,ngD,JZ(n_n)),DV(n,nda,ngR,JZ(nF7)),DV(n,nda,ngK,JZ(n_t)),DV(n,nda,ngo,JZ(nFr)),DV(n,nda,ngs,JZ(nFc)),DV(n,nda,ngl,JZ(nKx)),DV(n,nda,ngb,JZ(nKD)),DV(n,nda,nb9,nFb),DV(n,nda,ng2,nKA),DV(n,nda,npg,0),DV(n,nda,nwj,Va(1)),DV(n,nda,nb8,nwp),DV(n,nda,npp,JZ(nFf)),DV(n,nda,nwM,JZ(nFE)),DV(n,nda,npv,JZ(nFI)),DV(n,nda,npm,JZ(nKj)),DV(n,nda,npy,JZ(nR9)),DV(n,nda,ngJ,JZ(nK_)),DV(n,nda,nwE,(TX(),!0)),DV(n,nda,npk,JZ(nKz)),DV(n,nda,npj,JZ(nKU)),DV(n,nda,nwC,JZ(nFu)),DV(n,nda,nwI,JZ(nFh)),DV(n,nda,npE,JZ(nFo)),DV(n,nda,npT,nKM),DV(n,nda,nwO,JZ(nK7)),DV(n,nda,npM,JZ(nK9)),DV(n,nda,nwA,JZ(nFS)),DV(n,nda,npS,JZ(nFM)),DV(n,nda,npP,JZ(nFP)),DV(n,nda,npI,nFg),DV(n,nda,npC,JZ(nFv)),DV(n,nda,npO,JZ(nFm)),DV(n,nda,npA,JZ(nFy)),DV(n,nda,np$,JZ(nFp)),DV(n,nda,ndU,JZ(nF3)),DV(n,nda,ndV,JZ(nK4)),DV(n,nda,nd0,JZ(nK3)),DV(n,nda,ndz,JZ(nF2)),DV(n,nda,ndQ,JZ(nKY)),DV(n,nda,ndW,JZ(nKk)),DV(n,nda,nd4,JZ(nKy)),DV(n,nda,nd5,JZ(nKl)),DV(n,nda,ngn,JZ(nKb)),DV(n,nda,ngt,JZ(nKd)),DV(n,nda,nge,JZ(nKw)),DV(n,nda,nd8,JZ(nKm)),DV(n,nda,ndB,JZ(nK6)),DV(n,nda,ndH,JZ(nK8)),DV(n,nda,nd_,JZ(nKW)),DV(n,nda,ngi,JZ(nFa)),DV(n,nda,nga,JZ(nFt)),DV(n,nda,ndF,JZ(nKK)),DV(n,nda,ngu,JZ(nFi)),DV(n,nda,ngh,JZ(nKL)),DV(n,nda,ngf,JZ(nKN)),DV(n,nda,npL,JZ(nKf)),DV(n,nda,ngc,JZ(nFn)),DV(n,nda,ngE,JZ(nKr)),DV(n,nda,ngT,JZ(nKi)),DV(n,nda,ngj,JZ(nKe)),DV(n,nda,ngM,JZ(nKH)),DV(n,nda,ngS,JZ(nKB)),DV(n,nda,ngP,JZ(nKq)),DV(n,nda,nwq,JZ(nFs)),DV(n,nda,npN,JZ(nKV)),DV(n,nda,nb6,JZ(nKR)),DV(n,nda,npx,JZ(nKI)),DV(n,nda,nwS,JZ(nKP)),DV(n,nda,nd6,JZ(nKg)),DV(n,nda,npD,JZ(nFT)),DV(n,nda,npR,JZ(nKt)),DV(n,nda,npK,JZ(nKG)),DV(n,nda,npF,JZ(nFk)),DV(n,nda,np_,JZ(nFw)),DV(n,nda,npB,JZ(nFd)),DV(n,nda,ndZ,JZ(nK1)),DV(n,nda,nd1,JZ(nK0)),DV(n,nda,npH,JZ(nFO)),DV(n,nda,ndq,JZ(nR7)),DV(n,nda,nd2,JZ(nK2)),DV(n,nda,ngF,JZ(nKC)),DV(n,nda,ng_,JZ(nKS)),DV(n,nda,npq,JZ(nK5)),DV(n,nda,nd3,JZ(nKQ)),DV(n,nda,ngr,JZ(nFe)),DV(n,nda,npG,JZ(nF1)),DV(n,nda,ndK,JZ(nKT)),DV(n,nda,ndG,JZ(nFC)),DV(n,nda,ngw,JZ(nK$)),DV(n,nda,ndJ,JZ(nKJ)),DV(n,nda,nd9,JZ(nKp)),DV(n,nda,npz,JZ(nKX)),DV(n,nda,ndY,JZ(nKZ)),DV(n,nda,nd7,JZ(nKv)),DV(n,nda,ngB,JZ(nKh)),DV(n,nda,ngG,JZ(nKo)),DV(n,nda,ngz,JZ(nKa)),DV(n,nda,ngU,JZ(nKu)),DV(n,nda,ngH,JZ(nKs)),DV(n,nda,ngq,JZ(nKc)),DV(n,nda,ndX,JZ(nKF))}function nhw(n,t){var e;return nJp||(nJp=new wt,nJv=new wt,nhh(),nhh(),++nYO,QY(e=new Dv(4)," \n\r\r "),xp(nJp,nEP,e),xp(nJv,nEP,nuR(e)),++nYO,QY(e=new Dv(4),nEO),xp(nJp,nEM,e),xp(nJv,nEM,nuR(e)),++nYO,QY(e=new Dv(4),nEO),xp(nJp,nEM,e),xp(nJv,nEM,nuR(e)),++nYO,QY(e=new Dv(4),nEA),nog(e,Im(Nz(nJp,nEM),117)),xp(nJp,nES,e),xp(nJv,nES,nuR(e)),++nYO,QY(e=new Dv(4),"-.0:AZ__az\xb7\xb7\xc0\xd6\xd8\xf6\xf8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u02D0\u02D1\u0300\u0345\u0360\u0361\u0386\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0483\u0486\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u0591\u05A1\u05A3\u05B9\u05BB\u05BD\u05BF\u05BF\u05C1\u05C2\u05C4\u05C4\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0640\u0652\u0660\u0669\u0670\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06E8\u06EA\u06ED\u06F0\u06F9\u0901\u0903\u0905\u0939\u093C\u094D\u0951\u0954\u0958\u0963\u0966\u096F\u0981\u0983\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09BC\u09BC\u09BE\u09C4\u09C7\u09C8\u09CB\u09CD\u09D7\u09D7\u09DC\u09DD\u09DF\u09E3\u09E6\u09F1\u0A02\u0A02\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3C\u0A3E\u0A42\u0A47\u0A48\u0A4B\u0A4D\u0A59\u0A5C\u0A5E\u0A5E\u0A66\u0A74\u0A81\u0A83\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABC\u0AC5\u0AC7\u0AC9\u0ACB\u0ACD\u0AE0\u0AE0\u0AE6\u0AEF\u0B01\u0B03\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3C\u0B43\u0B47\u0B48\u0B4B\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F\u0B61\u0B66\u0B6F\u0B82\u0B83\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0BBE\u0BC2\u0BC6\u0BC8\u0BCA\u0BCD\u0BD7\u0BD7\u0BE7\u0BEF\u0C01\u0C03\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C3E\u0C44\u0C46\u0C48\u0C4A\u0C4D\u0C55\u0C56\u0C60\u0C61\u0C66\u0C6F\u0C82\u0C83\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CBE\u0CC4\u0CC6\u0CC8\u0CCA\u0CCD\u0CD5\u0CD6\u0CDE\u0CDE\u0CE0\u0CE1\u0CE6\u0CEF\u0D02\u0D03\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D3E\u0D43\u0D46\u0D48\u0D4A\u0D4D\u0D57\u0D57\u0D60\u0D61\u0D66\u0D6F\u0E01\u0E2E\u0E30\u0E3A\u0E40\u0E4E\u0E50\u0E59\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB9\u0EBB\u0EBD\u0EC0\u0EC4\u0EC6\u0EC6\u0EC8\u0ECD\u0ED0\u0ED9\u0F18\u0F19\u0F20\u0F29\u0F35\u0F35\u0F37\u0F37\u0F39\u0F39\u0F3E\u0F47\u0F49\u0F69\u0F71\u0F84\u0F86\u0F8B\u0F90\u0F95\u0F97\u0F97\u0F99\u0FAD\u0FB1\u0FB7\u0FB9\u0FB9\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u20D0\u20DC\u20E1\u20E1\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3005\u3005\u3007\u3007\u3021\u302F\u3031\u3035\u3041\u3094\u3099\u309A\u309D\u309E\u30A1\u30FA\u30FC\u30FE\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3"),xp(nJp,nEI,e),xp(nJv,nEI,nuR(e)),++nYO,QY(e=new Dv(4),nEA),ncz(e,95,95),ncz(e,58,58),xp(nJp,nEC,e),xp(nJv,nEC,nuR(e))),t?Im(Nz(nJp,n),136):Im(Nz(nJv,n),136)}function nhd(n){return Pv("_UI_EMFDiagnostic_marker",n)?"EMF Problem":Pv("_UI_CircularContainment_diagnostic",n)?"An object may not circularly contain itself":Pv(ny7,n)?"Wrong character.":Pv(nkn,n)?"Invalid reference number.":Pv(nkt,n)?"A character is required after \\.":Pv(nke,n)?"'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?":Pv(nki,n)?"'(?<' or '(?<!' is expected.":Pv(nkr,n)?"A comment is not terminated.":Pv(nkc,n)?"')' is expected.":Pv(nka,n)?"Unexpected end of the pattern in a modifier group.":Pv(nku,n)?"':' is expected.":Pv(nko,n)?"Unexpected end of the pattern in a conditional group.":Pv(nks,n)?"A back reference or an anchor or a lookahead or a look-behind is expected in a conditional pattern.":Pv(nkh,n)?"There are more than three choices in a conditional group.":Pv(nkf,n)?"A character in U+0040-U+005f must follow \\c.":Pv(nkl,n)?"A '{' is required before a character category.":Pv(nkb,n)?"A property name is not closed by '}'.":Pv(nkw,n)?"Unexpected meta character.":Pv(nkd,n)?"Unknown property.":Pv(nkg,n)?"A POSIX character class must be closed by ':]'.":Pv(nkp,n)?"Unexpected end of the pattern in a character class.":Pv(nkv,n)?"Unknown name for a POSIX character class.":Pv("parser.cc.4",n)?"'-' is invalid here.":Pv(nkm,n)?"']' is expected.":Pv(nky,n)?"'[' is invalid in a character class. Write '\\['.":Pv(nkk,n)?"']' is invalid in a character class. Write '\\]'.":Pv(nkj,n)?"'-' is an invalid character range. Write '\\-'.":Pv(nkE,n)?"'[' is expected.":Pv(nkT,n)?"')' or '-[' or '+[' or '&[' is expected.":Pv(nkM,n)?"The range end code point is less than the start code point.":Pv(nkS,n)?"Invalid Unicode hex notation.":Pv(nkP,n)?"Overflow in a hex notation.":Pv(nkI,n)?"'\\x{' must be closed by '}'.":Pv(nkC,n)?"Invalid Unicode code point.":Pv(nkO,n)?"An anchor must not be here.":Pv(nkA,n)?"This expression is not supported in the current option setting.":Pv(nk$,n)?"Invalid quantifier. A digit is expected.":Pv(nkL,n)?"Invalid quantifier. Invalid quantity or a '}' is missing.":Pv(nkN,n)?"Invalid quantifier. A digit or '}' is expected.":Pv(nkx,n)?"Invalid quantifier. A min quantity must be <= a max quantity.":Pv(nkD,n)?"Invalid quantifier. A quantity value overflow.":Pv("_UI_PackageRegistry_extensionpoint",n)?"Ecore Package Registry for Generated Packages":Pv("_UI_DynamicPackageRegistry_extensionpoint",n)?"Ecore Package Registry for Dynamic Packages":Pv("_UI_FactoryRegistry_extensionpoint",n)?"Ecore Factory Override Registry":Pv("_UI_URIExtensionParserRegistry_extensionpoint",n)?"URI Extension Parser Registry":Pv("_UI_URIProtocolParserRegistry_extensionpoint",n)?"URI Protocol Parser Registry":Pv("_UI_URIContentParserRegistry_extensionpoint",n)?"URI Content Parser Registry":Pv("_UI_ContentHandlerRegistry_extensionpoint",n)?"Content Handler Registry":Pv("_UI_URIMappingRegistry_extensionpoint",n)?"URI Converter Mapping Registry":Pv("_UI_PackageRegistryImplementation_extensionpoint",n)?"Ecore Package Registry Implementation":Pv("_UI_ValidationDelegateRegistry_extensionpoint",n)?"Validation Delegate Registry":Pv("_UI_SettingDelegateRegistry_extensionpoint",n)?"Feature Setting Delegate Factory Registry":Pv("_UI_InvocationDelegateRegistry_extensionpoint",n)?"Operation Invocation Delegate Factory Registry":Pv("_UI_EClassInterfaceNotAbstract_diagnostic",n)?"A class that is an interface must also be abstract":Pv("_UI_EClassNoCircularSuperTypes_diagnostic",n)?"A class may not be a super type of itself":Pv("_UI_EClassNotWellFormedMapEntryNoInstanceClassName_diagnostic",n)?"A class that inherits from a map entry class must have instance class name 'java.util.Map$Entry'":Pv("_UI_EReferenceOppositeOfOppositeInconsistent_diagnostic",n)?"The opposite of the opposite may not be a reference different from this one":Pv("_UI_EReferenceOppositeNotFeatureOfType_diagnostic",n)?"The opposite must be a feature of the reference's type":Pv("_UI_EReferenceTransientOppositeNotTransient_diagnostic",n)?"The opposite of a transient reference must be transient if it is proxy resolving":Pv("_UI_EReferenceOppositeBothContainment_diagnostic",n)?"The opposite of a containment reference must not be a containment reference":Pv("_UI_EReferenceConsistentUnique_diagnostic",n)?"A containment or bidirectional reference must be unique if its upper bound is different from 1":Pv("_UI_ETypedElementNoType_diagnostic",n)?"The typed element must have a type":Pv("_UI_EAttributeNoDataType_diagnostic",n)?"The generic attribute type must not refer to a class":Pv("_UI_EReferenceNoClass_diagnostic",n)?"The generic reference type must not refer to a data type":Pv("_UI_EGenericTypeNoTypeParameterAndClassifier_diagnostic",n)?"A generic type can't refer to both a type parameter and a classifier":Pv("_UI_EGenericTypeNoClass_diagnostic",n)?"A generic super type must refer to a class":Pv("_UI_EGenericTypeNoTypeParameterOrClassifier_diagnostic",n)?"A generic type in this context must refer to a classifier or a type parameter":Pv("_UI_EGenericTypeBoundsOnlyForTypeArgument_diagnostic",n)?"A generic type may have bounds only when used as a type argument":Pv("_UI_EGenericTypeNoUpperAndLowerBound_diagnostic",n)?"A generic type must not have both a lower and an upper bound":Pv("_UI_EGenericTypeNoTypeParameterOrClassifierAndBound_diagnostic",n)?"A generic type with bounds must not also refer to a type parameter or classifier":Pv("_UI_EGenericTypeNoArguments_diagnostic",n)?"A generic type may have arguments only if it refers to a classifier":Pv("_UI_EGenericTypeOutOfScopeTypeParameter_diagnostic",n)?"A generic type may only refer to a type parameter that is in scope":n}function nhg(){nhg=C,(nYr=_f(nYD,nyw,25,nls,15,1))[9]=35,nYr[10]=19,nYr[13]=19,nYr[32]=51,nYr[33]=49,nYr[34]=33,Ad(nYr,35,38,49),nYr[38]=1,Ad(nYr,39,45,49),Ad(nYr,45,47,-71),nYr[47]=49,Ad(nYr,48,58,-71),nYr[58]=61,nYr[59]=49,nYr[60]=1,nYr[61]=49,nYr[62]=33,Ad(nYr,63,65,49),Ad(nYr,65,91,-3),Ad(nYr,91,93,33),nYr[93]=1,nYr[94]=33,nYr[95]=-3,nYr[96]=33,Ad(nYr,97,123,-3),Ad(nYr,123,183,33),nYr[183]=-87,Ad(nYr,184,192,33),Ad(nYr,192,215,-19),nYr[215]=33,Ad(nYr,216,247,-19),nYr[247]=33,Ad(nYr,248,306,-19),Ad(nYr,306,308,33),Ad(nYr,308,319,-19),Ad(nYr,319,321,33),Ad(nYr,321,329,-19),nYr[329]=33,Ad(nYr,330,383,-19),nYr[383]=33,Ad(nYr,384,452,-19),Ad(nYr,452,461,33),Ad(nYr,461,497,-19),Ad(nYr,497,500,33),Ad(nYr,500,502,-19),Ad(nYr,502,506,33),Ad(nYr,506,536,-19),Ad(nYr,536,592,33),Ad(nYr,592,681,-19),Ad(nYr,681,699,33),Ad(nYr,699,706,-19),Ad(nYr,706,720,33),Ad(nYr,720,722,-87),Ad(nYr,722,768,33),Ad(nYr,768,838,-87),Ad(nYr,838,864,33),Ad(nYr,864,866,-87),Ad(nYr,866,902,33),nYr[902]=-19,nYr[903]=-87,Ad(nYr,904,907,-19),nYr[907]=33,nYr[908]=-19,nYr[909]=33,Ad(nYr,910,930,-19),nYr[930]=33,Ad(nYr,931,975,-19),nYr[975]=33,Ad(nYr,976,983,-19),Ad(nYr,983,986,33),nYr[986]=-19,nYr[987]=33,nYr[988]=-19,nYr[989]=33,nYr[990]=-19,nYr[991]=33,nYr[992]=-19,nYr[993]=33,Ad(nYr,994,1012,-19),Ad(nYr,1012,1025,33),Ad(nYr,1025,1037,-19),nYr[1037]=33,Ad(nYr,1038,1104,-19),nYr[1104]=33,Ad(nYr,1105,1117,-19),nYr[1117]=33,Ad(nYr,1118,1154,-19),nYr[1154]=33,Ad(nYr,1155,1159,-87),Ad(nYr,1159,1168,33),Ad(nYr,1168,1221,-19),Ad(nYr,1221,1223,33),Ad(nYr,1223,1225,-19),Ad(nYr,1225,1227,33),Ad(nYr,1227,1229,-19),Ad(nYr,1229,1232,33),Ad(nYr,1232,1260,-19),Ad(nYr,1260,1262,33),Ad(nYr,1262,1270,-19),Ad(nYr,1270,1272,33),Ad(nYr,1272,1274,-19),Ad(nYr,1274,1329,33),Ad(nYr,1329,1367,-19),Ad(nYr,1367,1369,33),nYr[1369]=-19,Ad(nYr,1370,1377,33),Ad(nYr,1377,1415,-19),Ad(nYr,1415,1425,33),Ad(nYr,1425,1442,-87),nYr[1442]=33,Ad(nYr,1443,1466,-87),nYr[1466]=33,Ad(nYr,1467,1470,-87),nYr[1470]=33,nYr[1471]=-87,nYr[1472]=33,Ad(nYr,1473,1475,-87),nYr[1475]=33,nYr[1476]=-87,Ad(nYr,1477,1488,33),Ad(nYr,1488,1515,-19),Ad(nYr,1515,1520,33),Ad(nYr,1520,1523,-19),Ad(nYr,1523,1569,33),Ad(nYr,1569,1595,-19),Ad(nYr,1595,1600,33),nYr[1600]=-87,Ad(nYr,1601,1611,-19),Ad(nYr,1611,1619,-87),Ad(nYr,1619,1632,33),Ad(nYr,1632,1642,-87),Ad(nYr,1642,1648,33),nYr[1648]=-87,Ad(nYr,1649,1720,-19),Ad(nYr,1720,1722,33),Ad(nYr,1722,1727,-19),nYr[1727]=33,Ad(nYr,1728,1743,-19),nYr[1743]=33,Ad(nYr,1744,1748,-19),nYr[1748]=33,nYr[1749]=-19,Ad(nYr,1750,1765,-87),Ad(nYr,1765,1767,-19),Ad(nYr,1767,1769,-87),nYr[1769]=33,Ad(nYr,1770,1774,-87),Ad(nYr,1774,1776,33),Ad(nYr,1776,1786,-87),Ad(nYr,1786,2305,33),Ad(nYr,2305,2308,-87),nYr[2308]=33,Ad(nYr,2309,2362,-19),Ad(nYr,2362,2364,33),nYr[2364]=-87,nYr[2365]=-19,Ad(nYr,2366,2382,-87),Ad(nYr,2382,2385,33),Ad(nYr,2385,2389,-87),Ad(nYr,2389,2392,33),Ad(nYr,2392,2402,-19),Ad(nYr,2402,2404,-87),Ad(nYr,2404,2406,33),Ad(nYr,2406,2416,-87),Ad(nYr,2416,2433,33),Ad(nYr,2433,2436,-87),nYr[2436]=33,Ad(nYr,2437,2445,-19),Ad(nYr,2445,2447,33),Ad(nYr,2447,2449,-19),Ad(nYr,2449,2451,33),Ad(nYr,2451,2473,-19),nYr[2473]=33,Ad(nYr,2474,2481,-19),nYr[2481]=33,nYr[2482]=-19,Ad(nYr,2483,2486,33),Ad(nYr,2486,2490,-19),Ad(nYr,2490,2492,33),nYr[2492]=-87,nYr[2493]=33,Ad(nYr,2494,2501,-87),Ad(nYr,2501,2503,33),Ad(nYr,2503,2505,-87),Ad(nYr,2505,2507,33),Ad(nYr,2507,2510,-87),Ad(nYr,2510,2519,33),nYr[2519]=-87,Ad(nYr,2520,2524,33),Ad(nYr,2524,2526,-19),nYr[2526]=33,Ad(nYr,2527,2530,-19),Ad(nYr,2530,2532,-87),Ad(nYr,2532,2534,33),Ad(nYr,2534,2544,-87),Ad(nYr,2544,2546,-19),Ad(nYr,2546,2562,33),nYr[2562]=-87,Ad(nYr,2563,2565,33),Ad(nYr,2565,2571,-19),Ad(nYr,2571,2575,33),Ad(nYr,2575,2577,-19),Ad(nYr,2577,2579,33),Ad(nYr,2579,2601,-19),nYr[2601]=33,Ad(nYr,2602,2609,-19),nYr[2609]=33,Ad(nYr,2610,2612,-19),nYr[2612]=33,Ad(nYr,2613,2615,-19),nYr[2615]=33,Ad(nYr,2616,2618,-19),Ad(nYr,2618,2620,33),nYr[2620]=-87,nYr[2621]=33,Ad(nYr,2622,2627,-87),Ad(nYr,2627,2631,33),Ad(nYr,2631,2633,-87),Ad(nYr,2633,2635,33),Ad(nYr,2635,2638,-87),Ad(nYr,2638,2649,33),Ad(nYr,2649,2653,-19),nYr[2653]=33,nYr[2654]=-19,Ad(nYr,2655,2662,33),Ad(nYr,2662,2674,-87),Ad(nYr,2674,2677,-19),Ad(nYr,2677,2689,33),Ad(nYr,2689,2692,-87),nYr[2692]=33,Ad(nYr,2693,2700,-19),nYr[2700]=33,nYr[2701]=-19,nYr[2702]=33,Ad(nYr,2703,2706,-19),nYr[2706]=33,Ad(nYr,2707,2729,-19),nYr[2729]=33,Ad(nYr,2730,2737,-19),nYr[2737]=33,Ad(nYr,2738,2740,-19),nYr[2740]=33,Ad(nYr,2741,2746,-19),Ad(nYr,2746,2748,33),nYr[2748]=-87,nYr[2749]=-19,Ad(nYr,2750,2758,-87),nYr[2758]=33,Ad(nYr,2759,2762,-87),nYr[2762]=33,Ad(nYr,2763,2766,-87),Ad(nYr,2766,2784,33),nYr[2784]=-19,Ad(nYr,2785,2790,33),Ad(nYr,2790,2800,-87),Ad(nYr,2800,2817,33),Ad(nYr,2817,2820,-87),nYr[2820]=33,Ad(nYr,2821,2829,-19),Ad(nYr,2829,2831,33),Ad(nYr,2831,2833,-19),Ad(nYr,2833,2835,33),Ad(nYr,2835,2857,-19),nYr[2857]=33,Ad(nYr,2858,2865,-19),nYr[2865]=33,Ad(nYr,2866,2868,-19),Ad(nYr,2868,2870,33),Ad(nYr,2870,2874,-19),Ad(nYr,2874,2876,33),nYr[2876]=-87,nYr[2877]=-19,Ad(nYr,2878,2884,-87),Ad(nYr,2884,2887,33),Ad(nYr,2887,2889,-87),Ad(nYr,2889,2891,33),Ad(nYr,2891,2894,-87),Ad(nYr,2894,2902,33),Ad(nYr,2902,2904,-87),Ad(nYr,2904,2908,33),Ad(nYr,2908,2910,-19),nYr[2910]=33,Ad(nYr,2911,2914,-19),Ad(nYr,2914,2918,33),Ad(nYr,2918,2928,-87),Ad(nYr,2928,2946,33),Ad(nYr,2946,2948,-87),nYr[2948]=33,Ad(nYr,2949,2955,-19),Ad(nYr,2955,2958,33),Ad(nYr,2958,2961,-19),nYr[2961]=33,Ad(nYr,2962,2966,-19),Ad(nYr,2966,2969,33),Ad(nYr,2969,2971,-19),nYr[2971]=33,nYr[2972]=-19,nYr[2973]=33,Ad(nYr,2974,2976,-19),Ad(nYr,2976,2979,33),Ad(nYr,2979,2981,-19),Ad(nYr,2981,2984,33),Ad(nYr,2984,2987,-19),Ad(nYr,2987,2990,33),Ad(nYr,2990,2998,-19),nYr[2998]=33,Ad(nYr,2999,3002,-19),Ad(nYr,3002,3006,33),Ad(nYr,3006,3011,-87),Ad(nYr,3011,3014,33),Ad(nYr,3014,3017,-87),nYr[3017]=33,Ad(nYr,3018,3022,-87),Ad(nYr,3022,3031,33),nYr[3031]=-87,Ad(nYr,3032,3047,33),Ad(nYr,3047,3056,-87),Ad(nYr,3056,3073,33),Ad(nYr,3073,3076,-87),nYr[3076]=33,Ad(nYr,3077,3085,-19),nYr[3085]=33,Ad(nYr,3086,3089,-19),nYr[3089]=33,Ad(nYr,3090,3113,-19),nYr[3113]=33,Ad(nYr,3114,3124,-19),nYr[3124]=33,Ad(nYr,3125,3130,-19),Ad(nYr,3130,3134,33),Ad(nYr,3134,3141,-87),nYr[3141]=33,Ad(nYr,3142,3145,-87),nYr[3145]=33,Ad(nYr,3146,3150,-87),Ad(nYr,3150,3157,33),Ad(nYr,3157,3159,-87),Ad(nYr,3159,3168,33),Ad(nYr,3168,3170,-19),Ad(nYr,3170,3174,33),Ad(nYr,3174,3184,-87),Ad(nYr,3184,3202,33),Ad(nYr,3202,3204,-87),nYr[3204]=33,Ad(nYr,3205,3213,-19),nYr[3213]=33,Ad(nYr,3214,3217,-19),nYr[3217]=33,Ad(nYr,3218,3241,-19),nYr[3241]=33,Ad(nYr,3242,3252,-19),nYr[3252]=33,Ad(nYr,3253,3258,-19),Ad(nYr,3258,3262,33),Ad(nYr,3262,3269,-87),nYr[3269]=33,Ad(nYr,3270,3273,-87),nYr[3273]=33,Ad(nYr,3274,3278,-87),Ad(nYr,3278,3285,33),Ad(nYr,3285,3287,-87),Ad(nYr,3287,3294,33),nYr[3294]=-19,nYr[3295]=33,Ad(nYr,3296,3298,-19),Ad(nYr,3298,3302,33),Ad(nYr,3302,3312,-87),Ad(nYr,3312,3330,33),Ad(nYr,3330,3332,-87),nYr[3332]=33,Ad(nYr,3333,3341,-19),nYr[3341]=33,Ad(nYr,3342,3345,-19),nYr[3345]=33,Ad(nYr,3346,3369,-19),nYr[3369]=33,Ad(nYr,3370,3386,-19),Ad(nYr,3386,3390,33),Ad(nYr,3390,3396,-87),Ad(nYr,3396,3398,33),Ad(nYr,3398,3401,-87),nYr[3401]=33,Ad(nYr,3402,3406,-87),Ad(nYr,3406,3415,33),nYr[3415]=-87,Ad(nYr,3416,3424,33),Ad(nYr,3424,3426,-19),Ad(nYr,3426,3430,33),Ad(nYr,3430,3440,-87),Ad(nYr,3440,3585,33),Ad(nYr,3585,3631,-19),nYr[3631]=33,nYr[3632]=-19,nYr[3633]=-87,Ad(nYr,3634,3636,-19),Ad(nYr,3636,3643,-87),Ad(nYr,3643,3648,33),Ad(nYr,3648,3654,-19),Ad(nYr,3654,3663,-87),nYr[3663]=33,Ad(nYr,3664,3674,-87),Ad(nYr,3674,3713,33),Ad(nYr,3713,3715,-19),nYr[3715]=33,nYr[3716]=-19,Ad(nYr,3717,3719,33),Ad(nYr,3719,3721,-19),nYr[3721]=33,nYr[3722]=-19,Ad(nYr,3723,3725,33),nYr[3725]=-19,Ad(nYr,3726,3732,33),Ad(nYr,3732,3736,-19),nYr[3736]=33,Ad(nYr,3737,3744,-19),nYr[3744]=33,Ad(nYr,3745,3748,-19),nYr[3748]=33,nYr[3749]=-19,nYr[3750]=33,nYr[3751]=-19,Ad(nYr,3752,3754,33),Ad(nYr,3754,3756,-19),nYr[3756]=33,Ad(nYr,3757,3759,-19),nYr[3759]=33,nYr[3760]=-19,nYr[3761]=-87,Ad(nYr,3762,3764,-19),Ad(nYr,3764,3770,-87),nYr[3770]=33,Ad(nYr,3771,3773,-87),nYr[3773]=-19,Ad(nYr,3774,3776,33),Ad(nYr,3776,3781,-19),nYr[3781]=33,nYr[3782]=-87,nYr[3783]=33,Ad(nYr,3784,3790,-87),Ad(nYr,3790,3792,33),Ad(nYr,3792,3802,-87),Ad(nYr,3802,3864,33),Ad(nYr,3864,3866,-87),Ad(nYr,3866,3872,33),Ad(nYr,3872,3882,-87),Ad(nYr,3882,3893,33),nYr[3893]=-87,nYr[3894]=33,nYr[3895]=-87,nYr[3896]=33,nYr[3897]=-87,Ad(nYr,3898,3902,33),Ad(nYr,3902,3904,-87),Ad(nYr,3904,3912,-19),nYr[3912]=33,Ad(nYr,3913,3946,-19),Ad(nYr,3946,3953,33),Ad(nYr,3953,3973,-87),nYr[3973]=33,Ad(nYr,3974,3980,-87),Ad(nYr,3980,3984,33),Ad(nYr,3984,3990,-87),nYr[3990]=33,nYr[3991]=-87,nYr[3992]=33,Ad(nYr,3993,4014,-87),Ad(nYr,4014,4017,33),Ad(nYr,4017,4024,-87),nYr[4024]=33,nYr[4025]=-87,Ad(nYr,4026,4256,33),Ad(nYr,4256,4294,-19),Ad(nYr,4294,4304,33),Ad(nYr,4304,4343,-19),Ad(nYr,4343,4352,33),nYr[4352]=-19,nYr[4353]=33,Ad(nYr,4354,4356,-19),nYr[4356]=33,Ad(nYr,4357,4360,-19),nYr[4360]=33,nYr[4361]=-19,nYr[4362]=33,Ad(nYr,4363,4365,-19),nYr[4365]=33,Ad(nYr,4366,4371,-19),Ad(nYr,4371,4412,33),nYr[4412]=-19,nYr[4413]=33,nYr[4414]=-19,nYr[4415]=33,nYr[4416]=-19,Ad(nYr,4417,4428,33),nYr[4428]=-19,nYr[4429]=33,nYr[4430]=-19,nYr[4431]=33,nYr[4432]=-19,Ad(nYr,4433,4436,33),Ad(nYr,4436,4438,-19),Ad(nYr,4438,4441,33),nYr[4441]=-19,Ad(nYr,4442,4447,33),Ad(nYr,4447,4450,-19),nYr[4450]=33,nYr[4451]=-19,nYr[4452]=33,nYr[4453]=-19,nYr[4454]=33,nYr[4455]=-19,nYr[4456]=33,nYr[4457]=-19,Ad(nYr,4458,4461,33),Ad(nYr,4461,4463,-19),Ad(nYr,4463,4466,33),Ad(nYr,4466,4468,-19),nYr[4468]=33,nYr[4469]=-19,Ad(nYr,4470,4510,33),nYr[4510]=-19,Ad(nYr,4511,4520,33),nYr[4520]=-19,Ad(nYr,4521,4523,33),nYr[4523]=-19,Ad(nYr,4524,4526,33),Ad(nYr,4526,4528,-19),Ad(nYr,4528,4535,33),Ad(nYr,4535,4537,-19),nYr[4537]=33,nYr[4538]=-19,nYr[4539]=33,Ad(nYr,4540,4547,-19),Ad(nYr,4547,4587,33),nYr[4587]=-19,Ad(nYr,4588,4592,33),nYr[4592]=-19,Ad(nYr,4593,4601,33),nYr[4601]=-19,Ad(nYr,4602,7680,33),Ad(nYr,7680,7836,-19),Ad(nYr,7836,7840,33),Ad(nYr,7840,7930,-19),Ad(nYr,7930,7936,33),Ad(nYr,7936,7958,-19),Ad(nYr,7958,7960,33),Ad(nYr,7960,7966,-19),Ad(nYr,7966,7968,33),Ad(nYr,7968,8006,-19),Ad(nYr,8006,8008,33),Ad(nYr,8008,8014,-19),Ad(nYr,8014,8016,33),Ad(nYr,8016,8024,-19),nYr[8024]=33,nYr[8025]=-19,nYr[8026]=33,nYr[8027]=-19,nYr[8028]=33,nYr[8029]=-19,nYr[8030]=33,Ad(nYr,8031,8062,-19),Ad(nYr,8062,8064,33),Ad(nYr,8064,8117,-19),nYr[8117]=33,Ad(nYr,8118,8125,-19),nYr[8125]=33,nYr[8126]=-19,Ad(nYr,8127,8130,33),Ad(nYr,8130,8133,-19),nYr[8133]=33,Ad(nYr,8134,8141,-19),Ad(nYr,8141,8144,33),Ad(nYr,8144,8148,-19),Ad(nYr,8148,8150,33),Ad(nYr,8150,8156,-19),Ad(nYr,8156,8160,33),Ad(nYr,8160,8173,-19),Ad(nYr,8173,8178,33),Ad(nYr,8178,8181,-19),nYr[8181]=33,Ad(nYr,8182,8189,-19),Ad(nYr,8189,8400,33),Ad(nYr,8400,8413,-87),Ad(nYr,8413,8417,33),nYr[8417]=-87,Ad(nYr,8418,8486,33),nYr[8486]=-19,Ad(nYr,8487,8490,33),Ad(nYr,8490,8492,-19),Ad(nYr,8492,8494,33),nYr[8494]=-19,Ad(nYr,8495,8576,33),Ad(nYr,8576,8579,-19),Ad(nYr,8579,12293,33),nYr[12293]=-87,nYr[12294]=33,nYr[12295]=-19,Ad(nYr,12296,12321,33),Ad(nYr,12321,12330,-19),Ad(nYr,12330,12336,-87),nYr[12336]=33,Ad(nYr,12337,12342,-87),Ad(nYr,12342,12353,33),Ad(nYr,12353,12437,-19),Ad(nYr,12437,12441,33),Ad(nYr,12441,12443,-87),Ad(nYr,12443,12445,33),Ad(nYr,12445,12447,-87),Ad(nYr,12447,12449,33),Ad(nYr,12449,12539,-19),nYr[12539]=33,Ad(nYr,12540,12543,-87),Ad(nYr,12543,12549,33),Ad(nYr,12549,12589,-19),Ad(nYr,12589,19968,33),Ad(nYr,19968,40870,-19),Ad(nYr,40870,44032,33),Ad(nYr,44032,55204,-19),Ad(nYr,55204,nlh,33),Ad(nYr,57344,65534,33)}var nhp,nhv,nhm,nhy="object",nhk="boolean",nhj="number",nhE="string",nhT="function",nhM=2147483647,nhS="java.lang",nhP={3:1},nhI="com.google.common.base",nhC=", ",nhO="%s (%s) must not be negative",nhA={3:1,4:1,5:1},nh$="negative size: ",nhL="Optional.of(",nhN="null",nhx={198:1,47:1},nhD="com.google.common.collect",nhR={198:1,47:1,125:1},nhK={224:1,3:1},nhF={47:1},nh_="java.util",nhB={83:1},nhH={20:1,28:1,14:1},nhq={20:1,28:1,14:1,21:1},nhG={83:1,171:1,161:1},nhz={20:1,28:1,14:1,21:1,84:1},nhU={20:1,28:1,14:1,271:1,21:1,84:1},nhX={47:1,125:1},nhW={345:1,42:1},nhV="AbstractMapEntry",nhQ="expectedValuesPerKey",nhJ={3:1,6:1,4:1,5:1},nhY=16384,nhZ={164:1},nh1={38:1},nh0={l:4194303,m:4194303,h:524287},nh2={196:1},nh3={245:1,3:1,35:1},nh4="range unbounded on this side",nh5={20:1},nh6={20:1,14:1},nh8={3:1,20:1,28:1,14:1},nh9={152:1,3:1,20:1,28:1,14:1,15:1,54:1},nh7={3:1,4:1,5:1,165:1},nfn={3:1,83:1},nft={20:1,14:1,21:1},nfe={3:1,20:1,28:1,14:1,21:1},nfi={20:1,14:1,21:1,84:1},nfr=461845907,nfc=-862048943,nfa={3:1,6:1,4:1,5:1,165:1},nfu="expectedSize",nfo=1073741824,nfs="initialArraySize",nfh={3:1,6:1,4:1,9:1,5:1},nff={20:1,28:1,52:1,14:1,15:1},nfl="arraySize",nfb={20:1,28:1,52:1,14:1,15:1,54:1},nfw={45:1},nfd={365:1},nfg=1e-4,nfp=-2147483648,nfv="__noinit__",nfm={3:1,102:1,60:1,78:1},nfy="com.google.gwt.core.client.impl",nfk="String",nfj="com.google.gwt.core.client",nfE="anonymous",nfT="fnStack",nfM="Unknown",nfS={195:1,3:1,4:1},nfP=1e3,nfI=65535,nfC="January",nfO="February",nfA="March",nf$="April",nfL="May",nfN="June",nfx="July",nfD="August",nfR="September",nfK="October",nfF="November",nf_="December",nfB=1900,nfH={48:1,3:1,4:1},nfq="Before Christ",nfG="Anno Domini",nfz="Sunday",nfU="Monday",nfX="Tuesday",nfW="Wednesday",nfV="Thursday",nfQ="Friday",nfJ="Saturday",nfY="com.google.gwt.i18n.shared",nfZ="DateTimeFormat",nf1="com.google.gwt.i18n.client",nf0="DefaultDateTimeFormatInfo",nf2={3:1,4:1,35:1,199:1},nf3="com.google.gwt.json.client",nf4=4194303,nf5=1048575,nf6=524288,nf8=4194304,nf9=17592186044416,nf7=1e9,nln=-17592186044416,nlt="java.io",nle={3:1,102:1,73:1,60:1,78:1},nli={3:1,289:1,78:1},nlr='For input string: "',nlc=1/0,nla=-1/0,nlu=4096,nlo={3:1,4:1,364:1},nls=65536,nlh=55296,nlf={104:1,3:1,4:1},nll=1e5,nlb=.3010299956639812,nlw=4294967295,nld=4294967296,nlg="0.0",nlp={42:1},nlv={3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1},nlm={3:1,20:1,28:1,52:1,14:1,15:1,54:1},nly={20:1,14:1,15:1},nlk={3:1,62:1},nlj={182:1},nlE={3:1,4:1,83:1},nlT={3:1,4:1,20:1,28:1,14:1,53:1,21:1},nlM="delete",nlS=14901161193847656e-24,nlP=11102230246251565e-32,nlI=15525485,nlC=5960464477539063e-23,nlO=16777216,nlA=16777215,nl$=", length: ",nlL={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1},nlN={3:1,35:1,22:1,297:1},nlx="java.util.function",nlD="java.util.logging",nlR={3:1,4:1,5:1,842:1},nlK="undefined",nlF="java.util.stream",nl_={525:1,670:1},nlB="fromIndex: ",nlH=" > toIndex: ",nlq=", toIndex: ",nlG="Index: ",nlz=", Size: ",nlU="org.eclipse.elk.alg.common",nlX={62:1},nlW="org.eclipse.elk.alg.common.compaction",nlV="Scanline/EventHandler",nlQ="org.eclipse.elk.alg.common.compaction.oned",nlJ="CNode belongs to another CGroup.",nlY="ISpacingsHandler/1",nlZ="The ",nl1=" instance has been finished already.",nl0="The direction ",nl2=" is not supported by the CGraph instance.",nl3="OneDimensionalCompactor",nl4="OneDimensionalCompactor/lambda$0$Type",nl5="Quadruplet",nl6="ScanlineConstraintCalculator",nl8="ScanlineConstraintCalculator/ConstraintsScanlineHandler",nl9="ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type",nl7="ScanlineConstraintCalculator/Timestamp",nbn="ScanlineConstraintCalculator/lambda$0$Type",nbt={169:1,45:1},nbe="org.eclipse.elk.alg.common.compaction.options",nbi="org.eclipse.elk.core.data",nbr="org.eclipse.elk.polyomino.traversalStrategy",nbc="org.eclipse.elk.polyomino.lowLevelSort",nba="org.eclipse.elk.polyomino.highLevelSort",nbu="org.eclipse.elk.polyomino.fill",nbo={130:1},nbs="polyomino",nbh="org.eclipse.elk.alg.common.networksimplex",nbf={177:1,3:1,4:1},nbl="org.eclipse.elk.alg.common.nodespacing",nbb="org.eclipse.elk.alg.common.nodespacing.cellsystem",nbw="CENTER",nbd={212:1,326:1},nbg={3:1,4:1,5:1,595:1},nbp="LEFT",nbv="RIGHT",nbm="Vertical alignment cannot be null",nby="BOTTOM",nbk="org.eclipse.elk.alg.common.nodespacing.internal",nbj="UNDEFINED",nbE=.01,nbT="org.eclipse.elk.alg.common.nodespacing.internal.algorithm",nbM="LabelPlacer/lambda$0$Type",nbS="LabelPlacer/lambda$1$Type",nbP="portRatioOrPosition",nbI="org.eclipse.elk.alg.common.overlaps",nbC="DOWN",nbO="org.eclipse.elk.alg.common.polyomino",nbA="NORTH",nb$="EAST",nbL="SOUTH",nbN="WEST",nbx="org.eclipse.elk.alg.common.polyomino.structures",nbD="Direction",nbR="Grid is only of size ",nbK=". Requested point (",nbF=") is out of bounds.",nb_=" Given center based coordinates were (",nbB="org.eclipse.elk.graph.properties",nbH="IPropertyHolder",nbq={3:1,94:1,134:1},nbG="org.eclipse.elk.alg.common.spore",nbz="org.eclipse.elk.alg.common.utils",nbU={209:1},nbX="org.eclipse.elk.core",nbW="Connected Components Compaction",nbV="org.eclipse.elk.alg.disco",nbQ="org.eclipse.elk.alg.disco.graph",nbJ="org.eclipse.elk.alg.disco.options",nbY="CompactionStrategy",nbZ="org.eclipse.elk.disco.componentCompaction.strategy",nb1="org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm",nb0="org.eclipse.elk.disco.debug.discoGraph",nb2="org.eclipse.elk.disco.debug.discoPolys",nb3="componentCompaction",nb4="org.eclipse.elk.disco",nb5="org.eclipse.elk.spacing.componentComponent",nb6="org.eclipse.elk.edge.thickness",nb8="org.eclipse.elk.aspectRatio",nb9="org.eclipse.elk.padding",nb7="org.eclipse.elk.alg.disco.transform",nwn=1.5707963267948966,nwt=17976931348623157e292,nwe={3:1,4:1,5:1,192:1},nwi={3:1,6:1,4:1,5:1,106:1,120:1},nwr="org.eclipse.elk.alg.force",nwc="ComponentsProcessor",nwa="ComponentsProcessor/1",nwu="org.eclipse.elk.alg.force.graph",nwo="Component Layout",nws="org.eclipse.elk.alg.force.model",nwh="org.eclipse.elk.force.model",nwf="org.eclipse.elk.force.iterations",nwl="org.eclipse.elk.force.repulsivePower",nwb="org.eclipse.elk.force.temperature",nww=.001,nwd="org.eclipse.elk.force.repulsion",nwg="org.eclipse.elk.alg.force.options",nwp=1.600000023841858,nwv="org.eclipse.elk.force",nwm="org.eclipse.elk.priority",nwy="org.eclipse.elk.spacing.nodeNode",nwk="org.eclipse.elk.spacing.edgeLabel",nwj="org.eclipse.elk.randomSeed",nwE="org.eclipse.elk.separateConnectedComponents",nwT="org.eclipse.elk.interactive",nwM="org.eclipse.elk.portConstraints",nwS="org.eclipse.elk.edgeLabels.inline",nwP="org.eclipse.elk.omitNodeMicroLayout",nwI="org.eclipse.elk.nodeSize.options",nwC="org.eclipse.elk.nodeSize.constraints",nwO="org.eclipse.elk.nodeLabels.placement",nwA="org.eclipse.elk.portLabels.placement",nw$="origin",nwL="random",nwN="boundingBox.upLeft",nwx="boundingBox.lowRight",nwD="org.eclipse.elk.stress.fixed",nwR="org.eclipse.elk.stress.desiredEdgeLength",nwK="org.eclipse.elk.stress.dimension",nwF="org.eclipse.elk.stress.epsilon",nw_="org.eclipse.elk.stress.iterationLimit",nwB="org.eclipse.elk.stress",nwH="ELK Stress",nwq="org.eclipse.elk.nodeSize.minimum",nwG="org.eclipse.elk.alg.force.stress",nwz="Layered layout",nwU="org.eclipse.elk.alg.layered",nwX="org.eclipse.elk.alg.layered.compaction.components",nwW="org.eclipse.elk.alg.layered.compaction.oned",nwV="org.eclipse.elk.alg.layered.compaction.oned.algs",nwQ="org.eclipse.elk.alg.layered.compaction.recthull",nwJ="org.eclipse.elk.alg.layered.components",nwY="NONE",nwZ={3:1,6:1,4:1,9:1,5:1,122:1},nw1={3:1,6:1,4:1,5:1,141:1,106:1,120:1},nw0="org.eclipse.elk.alg.layered.compound",nw2={51:1},nw3="org.eclipse.elk.alg.layered.graph",nw4=" -> ",nw5="Not supported by LGraph",nw6="Port side is undefined",nw8={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},nw9={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},nw7={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},ndn="([{\"' \r\n",ndt=")]}\"' \r\n",nde="The given string contains parts that cannot be parsed as numbers.",ndi="org.eclipse.elk.core.math",ndr={3:1,4:1,142:1,207:1,414:1},ndc={3:1,4:1,116:1,207:1,414:1},nda="org.eclipse.elk.layered",ndu="org.eclipse.elk.alg.layered.graph.transform",ndo="ElkGraphImporter",nds="ElkGraphImporter/lambda$0$Type",ndh="ElkGraphImporter/lambda$1$Type",ndf="ElkGraphImporter/lambda$2$Type",ndl="ElkGraphImporter/lambda$4$Type",ndb="Node margin calculation",ndw="org.eclipse.elk.alg.layered.intermediate",ndd="ONE_SIDED_GREEDY_SWITCH",ndg="TWO_SIDED_GREEDY_SWITCH",ndp="No implementation is available for the layout processor ",ndv="IntermediateProcessorStrategy",ndm="Node '",ndy="FIRST_SEPARATE",ndk="LAST_SEPARATE",ndj="Odd port side processing",ndE="org.eclipse.elk.alg.layered.intermediate.compaction",ndT="org.eclipse.elk.alg.layered.intermediate.greedyswitch",ndM="org.eclipse.elk.alg.layered.p3order.counting",ndS={225:1},ndP="org.eclipse.elk.alg.layered.intermediate.loops",ndI="org.eclipse.elk.alg.layered.intermediate.loops.ordering",ndC="org.eclipse.elk.alg.layered.intermediate.loops.routing",ndO="org.eclipse.elk.alg.layered.intermediate.preserveorder",ndA="org.eclipse.elk.alg.layered.intermediate.wrapping",nd$="org.eclipse.elk.alg.layered.options",ndL="INTERACTIVE",ndN="DEPTH_FIRST",ndx="EDGE_LENGTH",ndD="SELF_LOOPS",ndR="firstTryWithInitialOrder",ndK="org.eclipse.elk.layered.directionCongruency",ndF="org.eclipse.elk.layered.feedbackEdges",nd_="org.eclipse.elk.layered.interactiveReferencePoint",ndB="org.eclipse.elk.layered.mergeEdges",ndH="org.eclipse.elk.layered.mergeHierarchyEdges",ndq="org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides",ndG="org.eclipse.elk.layered.portSortingStrategy",ndz="org.eclipse.elk.layered.thoroughness",ndU="org.eclipse.elk.layered.unnecessaryBendpoints",ndX="org.eclipse.elk.layered.generatePositionAndLayerIds",ndW="org.eclipse.elk.layered.cycleBreaking.strategy",ndV="org.eclipse.elk.layered.layering.strategy",ndQ="org.eclipse.elk.layered.layering.layerConstraint",ndJ="org.eclipse.elk.layered.layering.layerChoiceConstraint",ndY="org.eclipse.elk.layered.layering.layerId",ndZ="org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth",nd1="org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor",nd0="org.eclipse.elk.layered.layering.nodePromotion.strategy",nd2="org.eclipse.elk.layered.layering.nodePromotion.maxIterations",nd3="org.eclipse.elk.layered.layering.coffmanGraham.layerBound",nd4="org.eclipse.elk.layered.crossingMinimization.strategy",nd5="org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder",nd6="org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness",nd8="org.eclipse.elk.layered.crossingMinimization.semiInteractive",nd9="org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint",nd7="org.eclipse.elk.layered.crossingMinimization.positionId",ngn="org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold",ngt="org.eclipse.elk.layered.crossingMinimization.greedySwitch.type",nge="org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type",ngi="org.eclipse.elk.layered.nodePlacement.strategy",ngr="org.eclipse.elk.layered.nodePlacement.favorStraightEdges",ngc="org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening",nga="org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment",ngu="org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening",ngo="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility",ngs="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default",ngh="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",ngf="org.eclipse.elk.layered.edgeRouting.selfLoopOrdering",ngl="org.eclipse.elk.layered.edgeRouting.splines.mode",ngb="org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor",ngw="org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth",ngd="org.eclipse.elk.layered.spacing.baseValue",ngg="org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers",ngp="org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers",ngv="org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers",ngm="org.eclipse.elk.layered.priority.direction",ngy="org.eclipse.elk.layered.priority.shortness",ngk="org.eclipse.elk.layered.priority.straightness",ngj="org.eclipse.elk.layered.compaction.connectedComponents",ngE="org.eclipse.elk.layered.compaction.postCompaction.strategy",ngT="org.eclipse.elk.layered.compaction.postCompaction.constraints",ngM="org.eclipse.elk.layered.highDegreeNodes.treatment",ngS="org.eclipse.elk.layered.highDegreeNodes.threshold",ngP="org.eclipse.elk.layered.highDegreeNodes.treeHeight",ngI="org.eclipse.elk.layered.wrapping.strategy",ngC="org.eclipse.elk.layered.wrapping.additionalEdgeSpacing",ngO="org.eclipse.elk.layered.wrapping.correctionFactor",ngA="org.eclipse.elk.layered.wrapping.cutting.strategy",ng$="org.eclipse.elk.layered.wrapping.cutting.cuts",ngL="org.eclipse.elk.layered.wrapping.cutting.msd.freedom",ngN="org.eclipse.elk.layered.wrapping.validify.strategy",ngx="org.eclipse.elk.layered.wrapping.validify.forbiddenIndices",ngD="org.eclipse.elk.layered.wrapping.multiEdge.improveCuts",ngR="org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty",ngK="org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges",ngF="org.eclipse.elk.layered.edgeLabels.sideSelection",ng_="org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy",ngB="org.eclipse.elk.layered.considerModelOrder.strategy",ngH="org.eclipse.elk.layered.considerModelOrder.noModelOrder",ngq="org.eclipse.elk.layered.considerModelOrder.components",ngG="org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy",ngz="org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence",ngU="org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence",ngX="layering",ngW="layering.minWidth",ngV="layering.nodePromotion",ngQ="crossingMinimization",ngJ="org.eclipse.elk.hierarchyHandling",ngY="crossingMinimization.greedySwitch",ngZ="nodePlacement",ng1="nodePlacement.bk",ng0="edgeRouting",ng2="org.eclipse.elk.edgeRouting",ng3="spacing",ng4="priority",ng5="compaction",ng6="compaction.postCompaction",ng8="Specifies whether and how post-process compaction is applied.",ng9="highDegreeNodes",ng7="wrapping",npn="wrapping.cutting",npt="wrapping.validify",npe="wrapping.multiEdge",npi="edgeLabels",npr="considerModelOrder",npc="org.eclipse.elk.spacing.commentComment",npa="org.eclipse.elk.spacing.commentNode",npu="org.eclipse.elk.spacing.edgeEdge",npo="org.eclipse.elk.spacing.edgeNode",nps="org.eclipse.elk.spacing.labelLabel",nph="org.eclipse.elk.spacing.labelPortHorizontal",npf="org.eclipse.elk.spacing.labelPortVertical",npl="org.eclipse.elk.spacing.labelNode",npb="org.eclipse.elk.spacing.nodeSelfLoop",npw="org.eclipse.elk.spacing.portPort",npd="org.eclipse.elk.spacing.individual",npg="org.eclipse.elk.port.borderOffset",npp="org.eclipse.elk.noLayout",npv="org.eclipse.elk.port.side",npm="org.eclipse.elk.debugMode",npy="org.eclipse.elk.alignment",npk="org.eclipse.elk.insideSelfLoops.activate",npj="org.eclipse.elk.insideSelfLoops.yo",npE="org.eclipse.elk.nodeSize.fixedGraphSize",npT="org.eclipse.elk.direction",npM="org.eclipse.elk.nodeLabels.padding",npS="org.eclipse.elk.portLabels.nextToPortIfPossible",npP="org.eclipse.elk.portLabels.treatAsGroup",npI="org.eclipse.elk.portAlignment.default",npC="org.eclipse.elk.portAlignment.north",npO="org.eclipse.elk.portAlignment.south",npA="org.eclipse.elk.portAlignment.west",np$="org.eclipse.elk.portAlignment.east",npL="org.eclipse.elk.contentAlignment",npN="org.eclipse.elk.junctionPoints",npx="org.eclipse.elk.edgeLabels.placement",npD="org.eclipse.elk.port.index",npR="org.eclipse.elk.commentBox",npK="org.eclipse.elk.hypernode",npF="org.eclipse.elk.port.anchor",np_="org.eclipse.elk.partitioning.activate",npB="org.eclipse.elk.partitioning.partition",npH="org.eclipse.elk.position",npq="org.eclipse.elk.margins",npG="org.eclipse.elk.spacing.portsSurrounding",npz="org.eclipse.elk.interactiveLayout",npU="org.eclipse.elk.core.util",npX={3:1,4:1,5:1,593:1},npW="NETWORK_SIMPLEX",npV={123:1,51:1},npQ="org.eclipse.elk.alg.layered.p1cycles",npJ="org.eclipse.elk.alg.layered.p2layers",npY={402:1,225:1},npZ={832:1,3:1,4:1},np1="org.eclipse.elk.alg.layered.p3order",np0="org.eclipse.elk.alg.layered.p4nodes",np2={3:1,4:1,5:1,840:1},np3=1e-5,np4="org.eclipse.elk.alg.layered.p4nodes.bk",np5="org.eclipse.elk.alg.layered.p5edges",np6="org.eclipse.elk.alg.layered.p5edges.orthogonal",np8="org.eclipse.elk.alg.layered.p5edges.orthogonal.direction",np9=1e-6,np7="org.eclipse.elk.alg.layered.p5edges.splines",nvn=.09999999999999998,nvt=1e-8,nve=4.71238898038469,nvi=3.141592653589793,nvr="org.eclipse.elk.alg.mrtree",nvc="org.eclipse.elk.alg.mrtree.graph",nva="org.eclipse.elk.alg.mrtree.intermediate",nvu="Set neighbors in level",nvo="DESCENDANTS",nvs="org.eclipse.elk.mrtree.weighting",nvh="org.eclipse.elk.mrtree.searchOrder",nvf="org.eclipse.elk.alg.mrtree.options",nvl="org.eclipse.elk.mrtree",nvb="org.eclipse.elk.tree",nvw="org.eclipse.elk.alg.radial",nvd=6.283185307179586,nvg=5e-324,nvp="org.eclipse.elk.alg.radial.intermediate",nvv="org.eclipse.elk.alg.radial.intermediate.compaction",nvm={3:1,4:1,5:1,106:1},nvy="org.eclipse.elk.alg.radial.intermediate.optimization",nvk="No implementation is available for the layout option ",nvj="org.eclipse.elk.alg.radial.options",nvE="org.eclipse.elk.radial.orderId",nvT="org.eclipse.elk.radial.radius",nvM="org.eclipse.elk.radial.compactor",nvS="org.eclipse.elk.radial.compactionStepSize",nvP="org.eclipse.elk.radial.sorter",nvI="org.eclipse.elk.radial.wedgeCriteria",nvC="org.eclipse.elk.radial.optimizationCriteria",nvO="org.eclipse.elk.radial",nvA="org.eclipse.elk.alg.radial.p1position.wedge",nv$="org.eclipse.elk.alg.radial.sorting",nvL=5.497787143782138,nvN=3.9269908169872414,nvx=2.356194490192345,nvD="org.eclipse.elk.alg.rectpacking",nvR="org.eclipse.elk.alg.rectpacking.firstiteration",nvK="org.eclipse.elk.alg.rectpacking.options",nvF="org.eclipse.elk.rectpacking.optimizationGoal",nv_="org.eclipse.elk.rectpacking.lastPlaceShift",nvB="org.eclipse.elk.rectpacking.currentPosition",nvH="org.eclipse.elk.rectpacking.desiredPosition",nvq="org.eclipse.elk.rectpacking.onlyFirstIteration",nvG="org.eclipse.elk.rectpacking.rowCompaction",nvz="org.eclipse.elk.rectpacking.expandToAspectRatio",nvU="org.eclipse.elk.rectpacking.targetWidth",nvX="org.eclipse.elk.expandNodes",nvW="org.eclipse.elk.rectpacking",nvV="org.eclipse.elk.alg.rectpacking.util",nvQ="No implementation available for ",nvJ="org.eclipse.elk.alg.spore",nvY="org.eclipse.elk.alg.spore.options",nvZ="org.eclipse.elk.sporeCompaction",nv1="org.eclipse.elk.underlyingLayoutAlgorithm",nv0="org.eclipse.elk.processingOrder.treeConstruction",nv2="org.eclipse.elk.processingOrder.spanningTreeCostFunction",nv3="org.eclipse.elk.processingOrder.preferredRoot",nv4="org.eclipse.elk.processingOrder.rootSelection",nv5="org.eclipse.elk.structure.structureExtractionStrategy",nv6="org.eclipse.elk.compaction.compactionStrategy",nv8="org.eclipse.elk.compaction.orthogonal",nv9="org.eclipse.elk.overlapRemoval.maxIterations",nv7="org.eclipse.elk.overlapRemoval.runScanline",nmn="processingOrder",nmt="overlapRemoval",nme="org.eclipse.elk.sporeOverlap",nmi="org.eclipse.elk.alg.spore.p1structure",nmr="org.eclipse.elk.alg.spore.p2processingorder",nmc="org.eclipse.elk.alg.spore.p3execution",nma="Invalid index: ",nmu="org.eclipse.elk.core.alg",nmo={331:1},nms={288:1},nmh="Make sure its type is registered with the ",nmf=" utility class.",nml="true",nmb="false",nmw="Couldn't clone property '",nmd=.05,nmg="org.eclipse.elk.core.options",nmp=1.2999999523162842,nmv="org.eclipse.elk.box",nmm="org.eclipse.elk.box.packingMode",nmy="org.eclipse.elk.algorithm",nmk="org.eclipse.elk.resolvedAlgorithm",nmj="org.eclipse.elk.bendPoints",nmE="org.eclipse.elk.labelManager",nmT="org.eclipse.elk.scaleFactor",nmM="org.eclipse.elk.animate",nmS="org.eclipse.elk.animTimeFactor",nmP="org.eclipse.elk.layoutAncestors",nmI="org.eclipse.elk.maxAnimTime",nmC="org.eclipse.elk.minAnimTime",nmO="org.eclipse.elk.progressBar",nmA="org.eclipse.elk.validateGraph",nm$="org.eclipse.elk.validateOptions",nmL="org.eclipse.elk.zoomToFit",nmN="org.eclipse.elk.font.name",nmx="org.eclipse.elk.font.size",nmD="org.eclipse.elk.edge.type",nmR="partitioning",nmK="nodeLabels",nmF="portAlignment",nm_="nodeSize",nmB="port",nmH="portLabels",nmq="insideSelfLoops",nmG="org.eclipse.elk.fixed",nmz="org.eclipse.elk.random",nmU="port must have a parent node to calculate the port side",nmX="The edge needs to have exactly one edge section. Found: ",nmW="org.eclipse.elk.core.util.adapters",nmV="org.eclipse.emf.ecore",nmQ="org.eclipse.elk.graph",nmJ="EMapPropertyHolder",nmY="ElkBendPoint",nmZ="ElkGraphElement",nm1="ElkConnectableShape",nm0="ElkEdge",nm2="ElkEdgeSection",nm3="EModelElement",nm4="ENamedElement",nm5="ElkLabel",nm6="ElkNode",nm8="ElkPort",nm9={92:1,90:1},nm7="org.eclipse.emf.common.notify.impl",nyn="The feature '",nyt="' is not a valid changeable feature",nye="Expecting null",nyi="' is not a valid feature",nyr="The feature ID",nyc=" is not a valid feature ID",nya=32768,nyu={105:1,92:1,90:1,56:1,49:1,97:1},nyo="org.eclipse.emf.ecore.impl",nys="org.eclipse.elk.graph.impl",nyh="Recursive containment not allowed for ",nyf="The datatype '",nyl="' is not a valid classifier",nyb="The value '",nyw={190:1,3:1,4:1},nyd="The class '",nyg="http://www.eclipse.org/elk/ElkGraph",nyp=1024,nyv="property",nym="value",nyy="source",nyk="properties",nyj="identifier",nyE="height",nyT="width",nyM="parent",nyS="text",nyP="children",nyI="hierarchical",nyC="sources",nyO="targets",nyA="sections",ny$="bendPoints",nyL="outgoingShape",nyN="incomingShape",nyx="outgoingSections",nyD="incomingSections",nyR="org.eclipse.emf.common.util",nyK="Severe implementation error in the Json to ElkGraph importer.",nyF="id",ny_="org.eclipse.elk.graph.json",nyB="Unhandled parameter types: ",nyH="startPoint",nyq="An edge must have at least one source and one target (edge id: '",nyG="Referenced edge section does not exist: ",nyz=" (edge id: '",nyU="target",nyX="sourcePoint",nyW="targetPoint",nyV="group",nyQ="name",nyJ="connectableShape cannot be null",nyY="edge cannot be null",nyZ="Passed edge is not 'simple'.",ny1="org.eclipse.elk.graph.util",ny0="The 'no duplicates' constraint is violated",ny2="targetIndex=",ny3=", size=",ny4="sourceIndex=",ny5={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},ny6={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},ny8="logging",ny9="measureExecutionTime",ny7="parser.parse.1",nkn="parser.parse.2",nkt="parser.next.1",nke="parser.next.2",nki="parser.next.3",nkr="parser.next.4",nkc="parser.factor.1",nka="parser.factor.2",nku="parser.factor.3",nko="parser.factor.4",nks="parser.factor.5",nkh="parser.factor.6",nkf="parser.atom.1",nkl="parser.atom.2",nkb="parser.atom.3",nkw="parser.atom.4",nkd="parser.atom.5",nkg="parser.cc.1",nkp="parser.cc.2",nkv="parser.cc.3",nkm="parser.cc.5",nky="parser.cc.6",nkk="parser.cc.7",nkj="parser.cc.8",nkE="parser.ope.1",nkT="parser.ope.2",nkM="parser.ope.3",nkS="parser.descape.1",nkP="parser.descape.2",nkI="parser.descape.3",nkC="parser.descape.4",nkO="parser.descape.5",nkA="parser.process.1",nk$="parser.quantifier.1",nkL="parser.quantifier.2",nkN="parser.quantifier.3",nkx="parser.quantifier.4",nkD="parser.quantifier.5",nkR="org.eclipse.emf.common.notify",nkK={415:1,672:1},nkF={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},nk_={366:1,143:1},nkB="index=",nkH={3:1,4:1,5:1,126:1},nkq={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},nkG={3:1,6:1,4:1,5:1,192:1},nkz={3:1,4:1,5:1,165:1,367:1},nkU=";/?:@&=+$,",nkX="invalid authority: ",nkW="EAnnotation",nkV="ETypedElement",nkQ="EStructuralFeature",nkJ="EAttribute",nkY="EClassifier",nkZ="EEnumLiteral",nk1="EGenericType",nk0="EOperation",nk2="EParameter",nk3="EReference",nk4="ETypeParameter",nk5="org.eclipse.emf.ecore.util",nk6={76:1},nk8={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},nk9="org.eclipse.emf.ecore.util.FeatureMap$Entry",nk7=8192,njn=2048,njt="byte",nje="char",nji="double",njr="float",njc="int",nja="long",nju="short",njo="java.lang.Object",njs={3:1,4:1,5:1,247:1},njh={3:1,4:1,5:1,673:1},njf={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},njl={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},njb="mixed",njw="http:///org/eclipse/emf/ecore/util/ExtendedMetaData",njd="kind",njg={3:1,4:1,5:1,674:1},njp={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},njv={20:1,28:1,52:1,14:1,15:1,58:1,69:1},njm={47:1,125:1,279:1},njy={72:1,332:1},njk="The value of type '",njj="' must be of type '",njE="http://www.eclipse.org/emf/2002/Ecore",njT="constraints",njM="baseType",njS="getEStructuralFeature",njP="getFeatureID",njI="feature",njC="getOperationID",njO="operation",njA="defaultValue",nj$="eTypeParameters",njL="isInstance",njN="getEEnumLiteral",njx="eContainingClass",njD={55:1},njR={3:1,4:1,5:1,119:1},njK="org.eclipse.emf.ecore.resource",njF={92:1,90:1,591:1,1935:1},nj_="org.eclipse.emf.ecore.resource.impl",njB="unspecified",njH="simple",njq="attribute",njG="attributeWildcard",njz="element",njU="elementWildcard",njX="collapse",njW="itemType",njV="namespace",njQ="##targetNamespace",njJ="whiteSpace",njY="wildcards",njZ="http://www.eclipse.org/emf/2003/XMLType",nj1="##any",nj0="uninitialized",nj2="The multiplicity constraint is violated",nj3="org.eclipse.emf.ecore.xml.type",nj4="ProcessingInstruction",nj5="SimpleAnyType",nj6="XMLTypeDocumentRoot",nj8="org.eclipse.emf.ecore.xml.type.impl",nj9="processing",nj7="ENTITIES_._base",nEn="minLength",nEt="ENTITY",nEe="NCName",nEi="IDREFS_._base",nEr="integer",nEc="token",nEa="pattern",nEu="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",nEo="\\i\\c*",nEs="[\\i-[:]][\\c-[:]]*",nEh="nonPositiveInteger",nEf="maxInclusive",nEl="NMTOKEN",nEb="NMTOKENS_._base",nEw="nonNegativeInteger",nEd="minInclusive",nEg="normalizedString",nEp="unsignedByte",nEv="unsignedInt",nEm="18446744073709551615",nEy="unsignedShort",nEk="processingInstruction",nEj="org.eclipse.emf.ecore.xml.type.internal",nEE=1114111,nET="Internal Error: shorthands: \\u",nEM="xml:isDigit",nES="xml:isWord",nEP="xml:isSpace",nEI="xml:isNameChar",nEC="xml:isInitialNameChar",nEO="09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29",nEA="AZaz\xc0\xd6\xd8\xf6\xf8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3",nE$="Private Use",nEL="ASSIGNED",nEN="\0\x7f\x80\xff\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF",nEx="UNASSIGNED",nED={3:1,117:1},nER="org.eclipse.emf.ecore.xml.type.util",nEK={3:1,4:1,5:1,368:1},nEF="org.eclipse.xtext.xbase.lib",nE_="Cannot add elements to a Range",nEB="Cannot set elements in a Range",nEH="Cannot remove elements from a Range",nEq="locale",nEG="default",nEz="user.agent";nTv.goog=nTv.goog||{},nTv.goog.global=nTv.goog.global||nTv,nTy={},Array.isArray||(Array.isArray=function(n){return"[object Array]"===Object.prototype.toString.call(n)}),Date.now||(Date.now=function(){return(new Date).getTime()}),nrr(1,null,{},e),nTm.Fb=function(n){return jf(this)===jf(n)},nTm.Gb=function(){return this.gm},nTm.Hb=function(){return T9(this)},nTm.Ib=function(){return pb(Xp(this))+"@"+(Xg(this)>>>0).toString(16)},nTm.equals=function(n){return this.Fb(n)},nTm.hashCode=function(){return this.Hb()},nTm.toString=function(){return this.Ib()},nrr(290,1,{290:1,2026:1},UY),nTm.le=function(n){var t;return(t=new UY).i=4,n>1?t.c=xg(this,n-1):t.c=this,t},nTm.me=function(){return Su(this),this.b},nTm.ne=function(){return pb(this)},nTm.oe=function(){return Su(this),this.k},nTm.pe=function(){return(4&this.i)!=0},nTm.qe=function(){return(1&this.i)!=0},nTm.Ib=function(){return HE(this)},nTm.i=0;var nEU=1,nEX=AY(nhS,"Object",1),nEW=AY(nhS,"Class",290);nrr(1998,1,nhP),AY(nhI,"Optional",1998),nrr(1170,1998,nhP,r),nTm.Fb=function(n){return n===this},nTm.Hb=function(){return 2040732332},nTm.Ib=function(){return"Optional.absent()"},nTm.Jb=function(n){return A1(n),dJ(),nTM},AY(nhI,"Absent",1170),nrr(628,1,{},g_),AY(nhI,"Joiner",628);var nEV=Cw(nhI,"Predicate");nrr(582,1,{169:1,582:1,3:1,45:1},s0),nTm.Mb=function(n){return Xa(this,n)},nTm.Lb=function(n){return Xa(this,n)},nTm.Fb=function(n){var t;return!!Ti(n,582)&&(t=Im(n,582),nrp(this.a,t.a))},nTm.Hb=function(){return Xu(this.a)+306654252},nTm.Ib=function(){return function(n){var t,e,i,r;for(t=$r(jP(new TV("Predicates."),"and"),40),e=!0,r=new h$(n);r.b<r.d.gc();)MK(r.b<r.d.gc()),i=r.d.Xb(r.c=r.b++),e||(t.a+=","),t.a+=""+i,e=!1;return(t.a+=")",t).a}(this.a)},AY(nhI,"Predicates/AndPredicate",582),nrr(408,1998,{408:1,3:1},s2),nTm.Fb=function(n){var t;return!!Ti(n,408)&&(t=Im(n,408),WY(this.a,t.a))},nTm.Hb=function(){return 1502476572+Xg(this.a)},nTm.Ib=function(){return nhL+this.a+")"},nTm.Jb=function(n){return new s2(L4(n.Kb(this.a),"the Function passed to Optional.transform() must not return null."))},AY(nhI,"Present",408),nrr(198,1,nhx),nTm.Nb=function(n){Ao(this,n)},nTm.Qb=function(){gR()},AY(nhD,"UnmodifiableIterator",198),nrr(1978,198,nhR),nTm.Qb=function(){gR()},nTm.Rb=function(n){throw(new wP).e},nTm.Wb=function(n){throw(new wP).e},AY(nhD,"UnmodifiableListIterator",1978),nrr(386,1978,nhR),nTm.Ob=function(){return this.c<this.d},nTm.Sb=function(){return this.c>0},nTm.Pb=function(){if(this.c>=this.d)throw(new wO).e;return this.Xb(this.c++)},nTm.Tb=function(){return this.c},nTm.Ub=function(){if(this.c<=0)throw(new wO).e;return this.Xb(--this.c)},nTm.Vb=function(){return this.c-1},nTm.c=0,nTm.d=0,AY(nhD,"AbstractIndexedListIterator",386),nrr(699,198,nhx),nTm.Ob=function(){return Gf(this)},nTm.Pb=function(){return Bg(this)},nTm.e=1,AY(nhD,"AbstractIterator",699),nrr(1986,1,{224:1}),nTm.Zb=function(){return this.f||(this.f=this.ac())},nTm.Fb=function(n){return X$(this,n)},nTm.Hb=function(){return Xg(this.Zb())},nTm.dc=function(){return 0==this.gc()},nTm.ec=function(){return OL(this)},nTm.Ib=function(){return V7(this.Zb())},AY(nhD,"AbstractMultimap",1986),nrr(726,1986,nhK),nTm.$b=function(){qX(this)},nTm._b=function(n){return this.c._b(n)},nTm.ac=function(){return new vb(this,this.c)},nTm.ic=function(n){return this.hc()},nTm.bc=function(){return new TS(this,this.c)},nTm.jc=function(){return this.mc(this.hc())},nTm.kc=function(){return new dD(this)},nTm.lc=function(){return ntb(this.c.vc().Nc(),new a,64,this.d)},nTm.cc=function(n){return Fl(this,n)},nTm.fc=function(n){return Wv(this,n)},nTm.gc=function(){return this.d},nTm.mc=function(n){return LV(),new hW(n)},nTm.nc=function(){return new dx(this)},nTm.oc=function(){return ntb(this.c.Cc().Nc(),new c,64,this.d)},nTm.pc=function(n,t){return new FB(this,n,t,null)},nTm.d=0,AY(nhD,"AbstractMapBasedMultimap",726),nrr(1631,726,nhK),nTm.hc=function(){return new Fq(this.a)},nTm.jc=function(){return LV(),LV(),nMv},nTm.cc=function(n){return Im(Fl(this,n),15)},nTm.fc=function(n){return Im(Wv(this,n),15)},nTm.Zb=function(){return LY(this)},nTm.Fb=function(n){return X$(this,n)},nTm.qc=function(n){return Im(Fl(this,n),15)},nTm.rc=function(n){return Im(Wv(this,n),15)},nTm.mc=function(n){return Nt(Im(n,15))},nTm.pc=function(n,t){return Rk(this,n,Im(t,15),null)},AY(nhD,"AbstractListMultimap",1631),nrr(732,1,nhF),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return this.c.Ob()||this.e.Ob()},nTm.Pb=function(){var n;return this.e.Ob()||(n=Im(this.c.Pb(),42),this.b=n.cd(),this.a=Im(n.dd(),14),this.e=this.a.Kc()),this.sc(this.b,this.e.Pb())},nTm.Qb=function(){this.e.Qb(),this.a.dc()&&this.c.Qb(),--this.d.d},AY(nhD,"AbstractMapBasedMultimap/Itr",732),nrr(1099,732,nhF,dx),nTm.sc=function(n,t){return t},AY(nhD,"AbstractMapBasedMultimap/1",1099),nrr(1100,1,{},c),nTm.Kb=function(n){return Im(n,14).Nc()},AY(nhD,"AbstractMapBasedMultimap/1methodref$spliterator$Type",1100),nrr(1101,732,nhF,dD),nTm.sc=function(n,t){return new vw(n,t)},AY(nhD,"AbstractMapBasedMultimap/2",1101);var nEQ=Cw(nh_,"Map");nrr(1967,1,nhB),nTm.wc=function(n){zS(this,n)},nTm.yc=function(n,t,e){return Vx(this,n,t,e)},nTm.$b=function(){this.vc().$b()},nTm.tc=function(n){return Y4(this,n)},nTm._b=function(n){return!!nnJ(this,n,!1)},nTm.uc=function(n){var t,e;for(t=this.vc().Kc();t.Ob();)if(e=Im(t.Pb(),42).dd(),jf(n)===jf(e)||null!=n&&WY(n,e))return!0;return!1},nTm.Fb=function(n){var t,e,i;if(n===this)return!0;if(!Ti(n,83)||(i=Im(n,83),this.gc()!=i.gc()))return!1;for(e=i.vc().Kc();e.Ob();)if(t=Im(e.Pb(),42),!this.tc(t))return!1;return!0},nTm.xc=function(n){return jh(nnJ(this,n,!1))},nTm.Hb=function(){return UO(this.vc())},nTm.dc=function(){return 0==this.gc()},nTm.ec=function(){return new hN(this)},nTm.zc=function(n,t){throw new gM("Put not supported on this map").e},nTm.Ac=function(n){zc(this,n)},nTm.Bc=function(n){return jh(nnJ(this,n,!0))},nTm.gc=function(){return this.vc().gc()},nTm.Ib=function(){return nn3(this)},nTm.Cc=function(){return new hD(this)},AY(nh_,"AbstractMap",1967),nrr(1987,1967,nhB),nTm.bc=function(){return new vj(this)},nTm.vc=function(){return O$(this)},nTm.ec=function(){return this.g||(this.g=this.bc())},nTm.Cc=function(){return this.i||(this.i=new vE(this))},AY(nhD,"Maps/ViewCachingAbstractMap",1987),nrr(389,1987,nhB,vb),nTm.xc=function(n){var t;return(t=Im(WK(this.d,n),14))?this.e.pc(n,t):null},nTm.Bc=function(n){var t,e;return(t=Im(this.d.Bc(n),14))?((e=this.e.hc()).Gc(t),this.e.d-=t.gc(),t.$b(),e):null},nTm.$b=function(){this.d==this.e.c?this.e.$b():CM(new CS(this))},nTm._b=function(n){return W_(this.d,n)},nTm.Ec=function(){return new s6(this)},nTm.Dc=function(){return this.Ec()},nTm.Fb=function(n){return this===n||WY(this.d,n)},nTm.Hb=function(){return Xg(this.d)},nTm.ec=function(){return this.e.ec()},nTm.gc=function(){return this.d.gc()},nTm.Ib=function(){return V7(this.d)},AY(nhD,"AbstractMapBasedMultimap/AsMap",389);var nEJ=Cw(nhS,"Iterable");nrr(28,1,nhH),nTm.Jc=function(n){KA(this,n)},nTm.Lc=function(){return this.Oc()},nTm.Nc=function(){return new x6(this,0)},nTm.Oc=function(){return new CL(null,this.Nc())},nTm.Fc=function(n){throw new gM("Add not supported on this collection").e},nTm.Gc=function(n){return Gz(this,n)},nTm.$b=function(){Lo(this)},nTm.Hc=function(n){return Qg(this,n,!1)},nTm.Ic=function(n){return Ur(this,n)},nTm.dc=function(){return 0==this.gc()},nTm.Mc=function(n){return Qg(this,n,!0)},nTm.Pc=function(){return Oj(this)},nTm.Qc=function(n){return Y3(this,n)},nTm.Ib=function(){return ntK(this)},AY(nh_,"AbstractCollection",28);var nEY=Cw(nh_,"Set");nrr(1965,28,nhq),nTm.Nc=function(){return new x6(this,1)},nTm.Fb=function(n){return Jb(this,n)},nTm.Hb=function(){return UO(this)},AY(nh_,"AbstractSet",1965),nrr(1970,1965,nhq),AY(nhD,"Sets/ImprovedAbstractSet",1970),nrr(1971,1970,nhq),nTm.$b=function(){this.Rc().$b()},nTm.Hc=function(n){return QK(this,n)},nTm.dc=function(){return this.Rc().dc()},nTm.Mc=function(n){var t;return!!this.Hc(n)&&(t=Im(n,42),this.Rc().ec().Mc(t.cd()))},nTm.gc=function(){return this.Rc().gc()},AY(nhD,"Maps/EntrySet",1971),nrr(1097,1971,nhq,s6),nTm.Hc=function(n){return WF(this.a.d.vc(),n)},nTm.Kc=function(){return new CS(this.a)},nTm.Rc=function(){return this.a},nTm.Mc=function(n){var t,e,i,r,c;return!!WF(this.a.d.vc(),n)&&(t=Im(n,42),e=this.a.e,i=t.cd(),(r=Im(function(n,t){A1(n);try{return n.Bc(t)}catch(n){if(Ti(n=Uu(n),205)||Ti(n,173))return null;throw n.e}}(e.c,i),14))&&(c=r.gc(),r.$b(),e.d-=c),!0)},nTm.Nc=function(){return Ip(this.a.d.vc().Nc(),new s8(this.a))},AY(nhD,"AbstractMapBasedMultimap/AsMap/AsMapEntries",1097),nrr(1098,1,{},s8),nTm.Kb=function(n){return K$(this.a,Im(n,42))},AY(nhD,"AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type",1098),nrr(730,1,nhF,CS),nTm.Nb=function(n){Ao(this,n)},nTm.Pb=function(){var n;return n=Im(this.b.Pb(),42),this.a=Im(n.dd(),14),K$(this.c,n)},nTm.Ob=function(){return this.b.Ob()},nTm.Qb=function(){zN(!!this.a),this.b.Qb(),this.c.e.d-=this.a.gc(),this.a.$b(),this.a=null},AY(nhD,"AbstractMapBasedMultimap/AsMap/AsMapIterator",730),nrr(532,1970,nhq,vj),nTm.$b=function(){this.b.$b()},nTm.Hc=function(n){return this.b._b(n)},nTm.Jc=function(n){A1(n),this.b.wc(new hk(n))},nTm.dc=function(){return this.b.dc()},nTm.Kc=function(){return new d6(this.b.vc().Kc())},nTm.Mc=function(n){return!!this.b._b(n)&&(this.b.Bc(n),!0)},nTm.gc=function(){return this.b.gc()},AY(nhD,"Maps/KeySet",532),nrr(318,532,nhq,TS),nTm.$b=function(){CM(new p9(this,this.b.vc().Kc()))},nTm.Ic=function(n){return this.b.ec().Ic(n)},nTm.Fb=function(n){return this===n||WY(this.b.ec(),n)},nTm.Hb=function(){return Xg(this.b.ec())},nTm.Kc=function(){return new p9(this,this.b.vc().Kc())},nTm.Mc=function(n){var t,e;return e=0,(t=Im(this.b.Bc(n),14))&&(e=t.gc(),t.$b(),this.a.d-=e),e>0},nTm.Nc=function(){return this.b.ec().Nc()},AY(nhD,"AbstractMapBasedMultimap/KeySet",318),nrr(731,1,nhF,p9),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return this.c.Ob()},nTm.Pb=function(){return this.a=Im(this.c.Pb(),42),this.a.cd()},nTm.Qb=function(){var n;zN(!!this.a),n=Im(this.a.dd(),14),this.c.Qb(),this.b.a.d-=n.gc(),n.$b(),this.a=null},AY(nhD,"AbstractMapBasedMultimap/KeySet/1",731),nrr(491,389,{83:1,161:1},Sl),nTm.bc=function(){return this.Sc()},nTm.ec=function(){return this.Tc()},nTm.Sc=function(){return new p6(this.c,this.Uc())},nTm.Tc=function(){return this.b||(this.b=this.Sc())},nTm.Uc=function(){return Im(this.d,161)},AY(nhD,"AbstractMapBasedMultimap/SortedAsMap",491),nrr(542,491,nhG,Sb),nTm.bc=function(){return new p8(this.a,Im(Im(this.d,161),171))},nTm.Sc=function(){return new p8(this.a,Im(Im(this.d,161),171))},nTm.ec=function(){return Im(this.b||(this.b=new p8(this.a,Im(Im(this.d,161),171))),271)},nTm.Tc=function(){return Im(this.b||(this.b=new p8(this.a,Im(Im(this.d,161),171))),271)},nTm.Uc=function(){return Im(Im(this.d,161),171)},AY(nhD,"AbstractMapBasedMultimap/NavigableAsMap",542),nrr(490,318,nhz,p6),nTm.Nc=function(){return this.b.ec().Nc()},AY(nhD,"AbstractMapBasedMultimap/SortedKeySet",490),nrr(388,490,nhU,p8),AY(nhD,"AbstractMapBasedMultimap/NavigableKeySet",388),nrr(541,28,nhH,FB),nTm.Fc=function(n){var t,e;return Qe(this),e=this.d.dc(),(t=this.d.Fc(n))&&(++this.f.d,e&&SG(this)),t},nTm.Gc=function(n){var t,e,i;return!n.dc()&&(Qe(this),i=this.d.gc(),(t=this.d.Gc(n))&&(e=this.d.gc(),this.f.d+=e-i,0==i&&SG(this)),t)},nTm.$b=function(){var n;Qe(this),0!=(n=this.d.gc())&&(this.d.$b(),this.f.d-=n,Oe(this))},nTm.Hc=function(n){return Qe(this),this.d.Hc(n)},nTm.Ic=function(n){return Qe(this),this.d.Ic(n)},nTm.Fb=function(n){return n===this||(Qe(this),WY(this.d,n))},nTm.Hb=function(){return Qe(this),Xg(this.d)},nTm.Kc=function(){return Qe(this),new IM(this)},nTm.Mc=function(n){var t;return Qe(this),(t=this.d.Mc(n))&&(--this.f.d,Oe(this)),t},nTm.gc=function(){return jy(this)},nTm.Nc=function(){return Qe(this),this.d.Nc()},nTm.Ib=function(){return Qe(this),V7(this.d)},AY(nhD,"AbstractMapBasedMultimap/WrappedCollection",541);var nEZ=Cw(nh_,"List");nrr(728,541,{20:1,28:1,14:1,15:1},OS),nTm.ad=function(n){GG(this,n)},nTm.Nc=function(){return Qe(this),this.d.Nc()},nTm.Vc=function(n,t){var e;Qe(this),e=this.d.dc(),Im(this.d,15).Vc(n,t),++this.a.d,e&&SG(this)},nTm.Wc=function(n,t){var e,i,r;return!t.dc()&&(Qe(this),r=this.d.gc(),(e=Im(this.d,15).Wc(n,t))&&(i=this.d.gc(),this.a.d+=i-r,0==r&&SG(this)),e)},nTm.Xb=function(n){return Qe(this),Im(this.d,15).Xb(n)},nTm.Xc=function(n){return Qe(this),Im(this.d,15).Xc(n)},nTm.Yc=function(){return Qe(this),new ER(this)},nTm.Zc=function(n){return Qe(this),new LF(this,n)},nTm.$c=function(n){var t;return Qe(this),t=Im(this.d,15).$c(n),--this.a.d,Oe(this),t},nTm._c=function(n,t){return Qe(this),Im(this.d,15)._c(n,t)},nTm.bd=function(n,t){return Qe(this),Rk(this.a,this.e,Im(this.d,15).bd(n,t),this.b?this.b:this)},AY(nhD,"AbstractMapBasedMultimap/WrappedList",728),nrr(1096,728,{20:1,28:1,14:1,15:1,54:1},MB),AY(nhD,"AbstractMapBasedMultimap/RandomAccessWrappedList",1096),nrr(620,1,nhF,IM),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return Ls(this),this.b.Ob()},nTm.Pb=function(){return Ls(this),this.b.Pb()},nTm.Qb=function(){TF(this)},AY(nhD,"AbstractMapBasedMultimap/WrappedCollection/WrappedIterator",620),nrr(729,620,nhX,ER,LF),nTm.Qb=function(){TF(this)},nTm.Rb=function(n){var t;t=0==jy(this.a),(Ls(this),Im(this.b,125)).Rb(n),++this.a.a.d,t&&SG(this.a)},nTm.Sb=function(){return(Ls(this),Im(this.b,125)).Sb()},nTm.Tb=function(){return(Ls(this),Im(this.b,125)).Tb()},nTm.Ub=function(){return(Ls(this),Im(this.b,125)).Ub()},nTm.Vb=function(){return(Ls(this),Im(this.b,125)).Vb()},nTm.Wb=function(n){(Ls(this),Im(this.b,125)).Wb(n)},AY(nhD,"AbstractMapBasedMultimap/WrappedList/WrappedListIterator",729),nrr(727,541,nhz,Sv),nTm.Nc=function(){return Qe(this),this.d.Nc()},AY(nhD,"AbstractMapBasedMultimap/WrappedSortedSet",727),nrr(1095,727,nhU,Eg),AY(nhD,"AbstractMapBasedMultimap/WrappedNavigableSet",1095),nrr(1094,541,nhq,Sm),nTm.Nc=function(){return Qe(this),this.d.Nc()},AY(nhD,"AbstractMapBasedMultimap/WrappedSet",1094),nrr(1103,1,{},a),nTm.Kb=function(n){var t,e;return e=(t=Im(n,42)).cd(),Ip(Im(t.dd(),14).Nc(),new s9(e))},AY(nhD,"AbstractMapBasedMultimap/lambda$1$Type",1103),nrr(1102,1,{},s9),nTm.Kb=function(n){return new vw(this.a,n)},AY(nhD,"AbstractMapBasedMultimap/lambda$2$Type",1102);var nE1=Cw(nh_,"Map/Entry");nrr(345,1,nhW),nTm.Fb=function(n){var t;return!!Ti(n,42)&&(t=Im(n,42),$A(this.cd(),t.cd())&&$A(this.dd(),t.dd()))},nTm.Hb=function(){var n,t;return n=this.cd(),t=this.dd(),(null==n?0:Xg(n))^(null==t?0:Xg(t))},nTm.ed=function(n){throw(new wP).e},nTm.Ib=function(){return this.cd()+"="+this.dd()},AY(nhD,nhV,345),nrr(1988,28,nhH),nTm.$b=function(){this.fd().$b()},nTm.Hc=function(n){var t,e,i,r,c;return!!Ti(n,42)&&(t=Im(n,42),e=this.fd(),i=t.cd(),r=t.dd(),!!(c=Im(e.Zb().xc(i),14))&&c.Hc(r))},nTm.Mc=function(n){var t;return!!Ti(n,42)&&(t=Im(n,42),Dx(this.fd(),t.cd(),t.dd()))},nTm.gc=function(){return this.fd().d},AY(nhD,"Multimaps/Entries",1988),nrr(733,1988,nhH,s7),nTm.Kc=function(){return this.a.kc()},nTm.fd=function(){return this.a},nTm.Nc=function(){return this.a.lc()},AY(nhD,"AbstractMultimap/Entries",733),nrr(734,733,nhq,dR),nTm.Nc=function(){return this.a.lc()},nTm.Fb=function(n){return ner(this,n)},nTm.Hb=function(){return GU(this)},AY(nhD,"AbstractMultimap/EntrySet",734),nrr(735,28,nhH,hn),nTm.$b=function(){this.a.$b()},nTm.Hc=function(n){return function(n,t){var e;for(e=n.Zb().Cc().Kc();e.Ob();)if(Im(e.Pb(),14).Hc(t))return!0;return!1}(this.a,n)},nTm.Kc=function(){return this.a.nc()},nTm.gc=function(){return this.a.d},nTm.Nc=function(){return this.a.oc()},AY(nhD,"AbstractMultimap/Values",735),nrr(1989,28,{835:1,20:1,28:1,14:1}),nTm.Jc=function(n){A1(n),Lu(this).Jc(new hy(n))},nTm.Nc=function(){var n;return ntb(n=Lu(this).Nc(),new m,64|1296&n.qd(),this.a.d)},nTm.Fc=function(n){return gK(),!0},nTm.Gc=function(n){var t;return A1(this),A1(n),Ti(n,543)?!Lu(t=Im(n,835)).dc()&&(A1(new v),Lu(t).Jc(new l),!0):!n.dc()&&BU(this,n.Kc())},nTm.Hc=function(n){var t;return((t=Im(WK(LY(this.a),n),14))?t.gc():0)>0},nTm.Fb=function(n){return function(n,t){var e,i,r;if(t===n)return!0;if(Ti(t,543)){if(r=Im(t,835),n.a.d!=r.a.d||Lu(n).gc()!=Lu(r).gc())return!1;for(i=Lu(r).Kc();i.Ob();)if(xY(n,(e=Im(i.Pb(),416)).a.cd())!=Im(e.a.dd(),14).gc())return!1;return!0}return!1}(this,n)},nTm.Hb=function(){return Xg(Lu(this))},nTm.dc=function(){return Lu(this).dc()},nTm.Mc=function(n){return nib(this,n,1)>0},nTm.Ib=function(){return V7(Lu(this))},AY(nhD,"AbstractMultiset",1989),nrr(1991,1970,nhq),nTm.$b=function(){qX(this.a.a)},nTm.Hc=function(n){var t;return!!Ti(n,492)&&(t=Im(n,416),!(0>=Im(t.a.dd(),14).gc())&&xY(this.a,t.a.cd())==Im(t.a.dd(),14).gc())},nTm.Mc=function(n){var t,e,i,r,c,a,u,o,s;return!!Ti(n,492)&&(t=(e=Im(n,416)).a.cd(),0!=(i=Im(e.a.dd(),14).gc()))&&(r=this.a,c=t,qz(a=i,"oldCount"),qz(0,"newCount"),((u=Im(WK(LY(r.a),c),14))?u.gc():0)==a&&(qz(0,"count"),(s=-((o=Im(WK(LY(r.a),c),14))?o.gc():0))>0?gK():s<0&&nib(r,c,-s),!0))},AY(nhD,"Multisets/EntrySet",1991),nrr(1109,1991,nhq,ht),nTm.Kc=function(){return new d9(O$(LY(this.a.a)).Kc())},nTm.gc=function(){return LY(this.a.a).gc()},AY(nhD,"AbstractMultiset/EntrySet",1109),nrr(619,726,nhK),nTm.hc=function(){return this.gd()},nTm.jc=function(){return this.hd()},nTm.cc=function(n){return this.jd(n)},nTm.fc=function(n){return this.kd(n)},nTm.Zb=function(){return this.f||(this.f=this.ac())},nTm.hd=function(){return LV(),LV(),nMy},nTm.Fb=function(n){return X$(this,n)},nTm.jd=function(n){return Im(Fl(this,n),21)},nTm.kd=function(n){return Im(Wv(this,n),21)},nTm.mc=function(n){return LV(),new gQ(Im(n,21))},nTm.pc=function(n,t){return new Sm(this,n,Im(t,21))},AY(nhD,"AbstractSetMultimap",619),nrr(1657,619,nhK),nTm.hc=function(){return new pI(this.b)},nTm.gd=function(){return new pI(this.b)},nTm.jc=function(){return A9(new pI(this.b))},nTm.hd=function(){return A9(new pI(this.b))},nTm.cc=function(n){return Im(Im(Fl(this,n),21),84)},nTm.jd=function(n){return Im(Im(Fl(this,n),21),84)},nTm.fc=function(n){return Im(Im(Wv(this,n),21),84)},nTm.kd=function(n){return Im(Im(Wv(this,n),21),84)},nTm.mc=function(n){return Ti(n,271)?A9(Im(n,271)):(LV(),new TY(Im(n,84)))},nTm.Zb=function(){return this.f||(this.f=Ti(this.c,171)?new Sb(this,Im(this.c,171)):Ti(this.c,161)?new Sl(this,Im(this.c,161)):new vb(this,this.c))},nTm.pc=function(n,t){return Ti(t,271)?new Eg(this,n,Im(t,271)):new Sv(this,n,Im(t,84))},AY(nhD,"AbstractSortedSetMultimap",1657),nrr(1658,1657,nhK),nTm.Zb=function(){return Im(Im(this.f||(this.f=Ti(this.c,171)?new Sb(this,Im(this.c,171)):Ti(this.c,161)?new Sl(this,Im(this.c,161)):new vb(this,this.c)),161),171)},nTm.ec=function(){return Im(Im(this.i||(this.i=Ti(this.c,171)?new p8(this,Im(this.c,171)):Ti(this.c,161)?new p6(this,Im(this.c,161)):new TS(this,this.c)),84),271)},nTm.bc=function(){return Ti(this.c,171)?new p8(this,Im(this.c,171)):Ti(this.c,161)?new p6(this,Im(this.c,161)):new TS(this,this.c)},AY(nhD,"AbstractSortedKeySortedSetMultimap",1658),nrr(2010,1,{1947:1}),nTm.Fb=function(n){var t;return n===this||!!Ti(n,664)&&(t=Im(n,1947),Jb(this.g||(this.g=new he(this)),t.g||(t.g=new he(t))))},nTm.Hb=function(){return UO(this.g||(this.g=new he(this)))},nTm.Ib=function(){return nn3(this.f||(this.f=new TO(this)))},AY(nhD,"AbstractTable",2010),nrr(665,1965,nhq,he),nTm.$b=function(){gF()},nTm.Hc=function(n){var t,e;return!!Ti(n,468)&&(t=Im(n,682),!!(e=Im(WK(A2(this.a),jd(t.c.e,t.b)),83))&&WF(e.vc(),new vw(jd(t.c.c,t.a),FF(t.c,t.b,t.a))))},nTm.Kc=function(){var n;return new TP(n=this.a,n.e.Hd().gc()*n.c.Hd().gc())},nTm.Mc=function(n){var t,e;return!!Ti(n,468)&&(t=Im(n,682),!!(e=Im(WK(A2(this.a),jd(t.c.e,t.b)),83))&&function(n,t){A1(n);try{return n.Mc(t)}catch(n){if(Ti(n=Uu(n),205)||Ti(n,173))return!1;throw n.e}}(e.vc(),new vw(jd(t.c.c,t.a),FF(t.c,t.b,t.a))))},nTm.gc=function(){return CR(this.a)},nTm.Nc=function(){var n;return Cp((n=this.a).e.Hd().gc()*n.c.Hd().gc(),273,new s3(n))},AY(nhD,"AbstractTable/CellSet",665),nrr(1928,28,nhH,hi),nTm.$b=function(){gF()},nTm.Hc=function(n){return function(n,t){var e,i,r,c,a,u,o;for(a=n.a,u=0,o=a.length;u<o;++u)for(i=0,r=(c=a[u]).length;i<r;++i)if(e=c[i],jf(t)===jf(e)||null!=t&&WY(t,e))return!0;return!1}(this.a,n)},nTm.Kc=function(){var n;return new TI(n=this.a,n.e.Hd().gc()*n.c.Hd().gc())},nTm.gc=function(){return CR(this.a)},nTm.Nc=function(){return DB(this.a)},AY(nhD,"AbstractTable/Values",1928),nrr(1632,1631,nhK),AY(nhD,"ArrayListMultimapGwtSerializationDependencies",1632),nrr(513,1632,nhK,g$,x0),nTm.hc=function(){return new Fq(this.a)},nTm.a=0,AY(nhD,"ArrayListMultimap",513),nrr(664,2010,{664:1,1947:1,3:1},niF),AY(nhD,"ArrayTable",664),nrr(1924,386,nhR,TP),nTm.Xb=function(n){return new UJ(this.a,n)},AY(nhD,"ArrayTable/1",1924),nrr(1925,1,{},s3),nTm.ld=function(n){return new UJ(this.a,n)},AY(nhD,"ArrayTable/1methodref$getCell$Type",1925),nrr(2011,1,{682:1}),nTm.Fb=function(n){var t;return n===this||!!Ti(n,468)&&(t=Im(n,682),$A(jd(this.c.e,this.b),jd(t.c.e,t.b))&&$A(jd(this.c.c,this.a),jd(t.c.c,t.a))&&$A(FF(this.c,this.b,this.a),FF(t.c,t.b,t.a)))},nTm.Hb=function(){return X9(Um(xg(nEX,1),nhA,1,5,[jd(this.c.e,this.b),jd(this.c.c,this.a),FF(this.c,this.b,this.a)]))},nTm.Ib=function(){return"("+jd(this.c.e,this.b)+","+jd(this.c.c,this.a)+")="+FF(this.c,this.b,this.a)},AY(nhD,"Tables/AbstractCell",2011),nrr(468,2011,{468:1,682:1},UJ),nTm.a=0,nTm.b=0,nTm.d=0,AY(nhD,"ArrayTable/2",468),nrr(1927,1,{},s4),nTm.ld=function(n){return _Z(this.a,n)},AY(nhD,"ArrayTable/2methodref$getValue$Type",1927),nrr(1926,386,nhR,TI),nTm.Xb=function(n){return _Z(this.a,n)},AY(nhD,"ArrayTable/3",1926),nrr(1979,1967,nhB),nTm.$b=function(){CM(this.kc())},nTm.vc=function(){return new hj(this)},nTm.lc=function(){return new Ll(this.kc(),this.gc())},AY(nhD,"Maps/IteratorBasedAbstractMap",1979),nrr(828,1979,nhB),nTm.$b=function(){throw(new wP).e},nTm._b=function(n){return W_(this.c.b,n)},nTm.kc=function(){return new TC(this,this.c.b.c.gc())},nTm.lc=function(){return Cp(this.c.b.c.gc(),16,new s5(this))},nTm.xc=function(n){var t;return(t=Im(P$(this.c,n),19))?this.nd(t.a):null},nTm.dc=function(){return this.c.b.c.dc()},nTm.ec=function(){return OO(this.c)},nTm.zc=function(n,t){var e;if(!(e=Im(P$(this.c,n),19)))throw new gd(this.md()+" "+n+" not in "+OO(this.c)).e;return this.od(e.a,t)},nTm.Bc=function(n){throw(new wP).e},nTm.gc=function(){return this.c.b.c.gc()},AY(nhD,"ArrayTable/ArrayMap",828),nrr(1923,1,{},s5),nTm.ld=function(n){return A7(this.a,n)},AY(nhD,"ArrayTable/ArrayMap/0methodref$getEntry$Type",1923),nrr(1921,345,nhW,vc),nTm.cd=function(){var n,t;return n=this.a,t=this.b,OA(OO(n.c)).Xb(t)},nTm.dd=function(){return this.a.nd(this.b)},nTm.ed=function(n){return this.a.od(this.b,n)},nTm.b=0,AY(nhD,"ArrayTable/ArrayMap/1",1921),nrr(1922,386,nhR,TC),nTm.Xb=function(n){return A7(this.a,n)},AY(nhD,"ArrayTable/ArrayMap/2",1922),nrr(1920,828,nhB,Ai),nTm.md=function(){return"Column"},nTm.nd=function(n){return FF(this.b,this.a,n)},nTm.od=function(n,t){return Uv(this.b,this.a,n,t)},nTm.a=0,AY(nhD,"ArrayTable/Row",1920),nrr(829,828,nhB,TO),nTm.nd=function(n){return new Ai(this.a,n)},nTm.zc=function(n,t){return Im(t,83),function(){throw(new wP).e}()},nTm.od=function(n,t){return Im(t,83),function(){throw(new wP).e}()},nTm.md=function(){return"Row"},AY(nhD,"ArrayTable/RowMap",829),nrr(1120,1,nhZ,va),nTm.qd=function(){return -262&this.a.qd()},nTm.rd=function(){return this.a.rd()},nTm.Nb=function(n){this.a.Nb(new vt(n,this.b))},nTm.sd=function(n){return this.a.sd(new vn(n,this.b))},AY(nhD,"CollectSpliterators/1",1120),nrr(1121,1,nh1,vn),nTm.td=function(n){this.a.td(this.b.Kb(n))},AY(nhD,"CollectSpliterators/1/lambda$0$Type",1121),nrr(1122,1,nh1,vt),nTm.td=function(n){this.a.td(this.b.Kb(n))},AY(nhD,"CollectSpliterators/1/lambda$1$Type",1122),nrr(1123,1,nhZ,Rb),nTm.qd=function(){return this.a},nTm.rd=function(){var n,t,e;return this.d&&(this.b=WM(n=this.b,t=this.d.rd())>0?n:t),WM(e=this.b,0)>0?e:0},nTm.Nb=function(n){this.d&&(this.d.Nb(n),this.d=null),this.c.Nb(new p7(this.e,n)),this.b=0},nTm.sd=function(n){for(;;){if(this.d&&this.d.sd(n))return jv(this.b,nh0)&&(this.b=VR(this.b,1)),!0;if(this.d=null,!this.c.sd(new ve(this,this.e)))return!1}},nTm.a=0,nTm.b=0,AY(nhD,"CollectSpliterators/1FlatMapSpliterator",1123),nrr(1124,1,nh1,ve),nTm.td=function(n){var t,e;t=this.a,e=this.b,t.d=Im(e.Kb(n),164)},AY(nhD,"CollectSpliterators/1FlatMapSpliterator/lambda$0$Type",1124),nrr(1125,1,nh1,p7),nTm.td=function(n){!function(n,t,e){Im(n.Kb(e),164).Nb(t)}(this.b,this.a,n)},AY(nhD,"CollectSpliterators/1FlatMapSpliterator/lambda$1$Type",1125),nrr(1117,1,nhZ,Pw),nTm.qd=function(){return 16464|this.b},nTm.rd=function(){return this.a.rd()},nTm.Nb=function(n){this.a.xe(new vr(n,this.c))},nTm.sd=function(n){return this.a.ye(new vi(n,this.c))},nTm.b=0,AY(nhD,"CollectSpliterators/1WithCharacteristics",1117),nrr(1118,1,nh2,vi),nTm.ud=function(n){this.a.td(this.b.ld(n))},AY(nhD,"CollectSpliterators/1WithCharacteristics/lambda$0$Type",1118),nrr(1119,1,nh2,vr),nTm.ud=function(n){this.a.td(this.b.ld(n))},AY(nhD,"CollectSpliterators/1WithCharacteristics/lambda$1$Type",1119),nrr(245,1,nh3),nTm.wd=function(n){return this.vd(Im(n,245))},nTm.vd=function(n){var t;return n==(dV(),nTP)?1:n==(dQ(),nTS)?-1:(Ca(),0!=(t=zs(this.a,n.a)))?t:Ti(this,519)==Ti(n,519)?0:Ti(this,519)?1:-1},nTm.zd=function(){return this.a},nTm.Fb=function(n){return Q9(this,n)},AY(nhD,"Cut",245),nrr(1761,245,nh3,gZ),nTm.vd=function(n){return n==this?0:1},nTm.xd=function(n){throw(new wy).e},nTm.yd=function(n){n.a+="+\u221E)"},nTm.zd=function(){throw new gg(nh4).e},nTm.Hb=function(){return vI(),Ys(this)},nTm.Ad=function(n){return!1},nTm.Ib=function(){return"+\u221E"},AY(nhD,"Cut/AboveAll",1761),nrr(519,245,{245:1,519:1,3:1,35:1},T_),nTm.xd=function(n){jS((n.a+="(",n),this.a)},nTm.yd=function(n){$r(jS(n,this.a),93)},nTm.Hb=function(){return~Xg(this.a)},nTm.Ad=function(n){return Ca(),0>zs(this.a,n)},nTm.Ib=function(){return"/"+this.a+"\\"},AY(nhD,"Cut/AboveValue",519),nrr(1760,245,nh3,g1),nTm.vd=function(n){return n==this?0:-1},nTm.xd=function(n){n.a+="(-\u221E"},nTm.yd=function(n){throw(new wy).e},nTm.zd=function(){throw new gg(nh4).e},nTm.Hb=function(){return vI(),Ys(this)},nTm.Ad=function(n){return!0},nTm.Ib=function(){return"-\u221E"},AY(nhD,"Cut/BelowAll",1760),nrr(1762,245,nh3,TB),nTm.xd=function(n){jS((n.a+="[",n),this.a)},nTm.yd=function(n){$r(jS(n,this.a),41)},nTm.Hb=function(){return Xg(this.a)},nTm.Ad=function(n){return Ca(),0>=zs(this.a,n)},nTm.Ib=function(){return"\\"+this.a+"/"},AY(nhD,"Cut/BelowValue",1762),nrr(537,1,nh5),nTm.Jc=function(n){KA(this,n)},nTm.Ib=function(){return function(n){var t,e;for(e=$r(new gX,91),t=!0;n.Ob();)t||(e.a+=nhC),t=!1,jS(e,n.Pb());return(e.a+="]",e).a}(Im(L4(this,"use Optional.orNull() instead of Optional.or(null)"),20).Kc())},AY(nhD,"FluentIterable",537),nrr(433,537,nh5,jG),nTm.Kc=function(){return new OM(TD(this.a.Kc(),new s))},AY(nhD,"FluentIterable/2",433),nrr(1046,537,nh5,jz),nTm.Kc=function(){return AS(this)},AY(nhD,"FluentIterable/3",1046),nrr(708,386,nhR,T$),nTm.Xb=function(n){return this.a[n].Kc()},AY(nhD,"FluentIterable/3/1",708),nrr(1972,1,{}),nTm.Ib=function(){return V7(this.Bd().b)},AY(nhD,"ForwardingObject",1972),nrr(1973,1972,nh6),nTm.Bd=function(){return this.Cd()},nTm.Jc=function(n){KA(this,n)},nTm.Lc=function(){return this.Oc()},nTm.Nc=function(){return new x6(this,0)},nTm.Oc=function(){return new CL(null,this.Nc())},nTm.Fc=function(n){return this.Cd(),pk()},nTm.Gc=function(n){return this.Cd(),pj()},nTm.$b=function(){this.Cd(),pE()},nTm.Hc=function(n){return this.Cd().Hc(n)},nTm.Ic=function(n){return this.Cd().Ic(n)},nTm.dc=function(){return this.Cd().b.dc()},nTm.Kc=function(){return this.Cd().Kc()},nTm.Mc=function(n){return this.Cd(),pT()},nTm.gc=function(){return this.Cd().b.gc()},nTm.Pc=function(){return this.Cd().Pc()},nTm.Qc=function(n){return this.Cd().Qc(n)},AY(nhD,"ForwardingCollection",1973),nrr(1980,28,nh8),nTm.Kc=function(){return this.Ed()},nTm.Fc=function(n){throw(new wP).e},nTm.Gc=function(n){throw(new wP).e},nTm.$b=function(){throw(new wP).e},nTm.Hc=function(n){return null!=n&&Qg(this,n,!1)},nTm.Dd=function(){switch(this.gc()){case 0:return $w(),$w(),nTI;case 1:return $w(),new CT(A1(this.Ed().Pb()));default:return new Ar(this,this.Pc())}},nTm.Mc=function(n){throw(new wP).e},AY(nhD,"ImmutableCollection",1980),nrr(712,1980,nh8,wd),nTm.Kc=function(){return _H(this.a.Kc())},nTm.Hc=function(n){return null!=n&&this.a.Hc(n)},nTm.Ic=function(n){return this.a.Ic(n)},nTm.dc=function(){return this.a.dc()},nTm.Ed=function(){return _H(this.a.Kc())},nTm.gc=function(){return this.a.gc()},nTm.Pc=function(){return this.a.Pc()},nTm.Qc=function(n){return this.a.Qc(n)},nTm.Ib=function(){return V7(this.a)},AY(nhD,"ForwardingImmutableCollection",712),nrr(152,1980,nh9),nTm.Kc=function(){return this.Ed()},nTm.Yc=function(){return this.Fd(0)},nTm.Zc=function(n){return this.Fd(n)},nTm.ad=function(n){GG(this,n)},nTm.Nc=function(){return new x6(this,16)},nTm.bd=function(n,t){return this.Gd(n,t)},nTm.Vc=function(n,t){throw(new wP).e},nTm.Wc=function(n,t){throw(new wP).e},nTm.Fb=function(n){return function(n,t){var e,i,r;if(jf(t)===jf(A1(n)))return!0;if(!Ti(t,15)||(i=Im(t,15),(r=n.gc())!=i.gc()))return!1;if(!Ti(i,54))return function(n,t){for(var e,i;n.Ob();)if(!t.Ob()||(e=n.Pb(),i=t.Pb(),!(jf(e)===jf(i)||null!=e&&WY(e,i))))return!1;return!t.Ob()}(n.Kc(),i.Kc());for(e=0;e<r;e++)if(!$A(n.Xb(e),i.Xb(e)))return!1;return!0}(this,n)},nTm.Hb=function(){return function(n){var t,e,i;for(t=1,i=n.Kc();i.Ob();)t=~~(t=31*t+(null==(e=i.Pb())?0:Xg(e)));return t}(this)},nTm.Xc=function(n){return null==n?-1:function(n,t){var e,i;if(i=n.gc(),null==t){for(e=0;e<i;e++)if(null==n.Xb(e))return e}else for(e=0;e<i;e++)if(WY(t,n.Xb(e)))return e;return -1}(this,n)},nTm.Ed=function(){return this.Fd(0)},nTm.Fd=function(n){return Mp(this,n)},nTm.$c=function(n){throw(new wP).e},nTm._c=function(n,t){throw(new wP).e},nTm.Gd=function(n,t){return Wx(new x2(new vM(this),n,t))},AY(nhD,"ImmutableList",152),nrr(2006,152,nh9),nTm.Kc=function(){return _H(this.Hd().Kc())},nTm.bd=function(n,t){return Wx(this.Hd().bd(n,t))},nTm.Hc=function(n){return null!=n&&this.Hd().Hc(n)},nTm.Ic=function(n){return this.Hd().Ic(n)},nTm.Fb=function(n){return WY(this.Hd(),n)},nTm.Xb=function(n){return jd(this,n)},nTm.Hb=function(){return Xg(this.Hd())},nTm.Xc=function(n){return this.Hd().Xc(n)},nTm.dc=function(){return this.Hd().dc()},nTm.Ed=function(){return _H(this.Hd().Kc())},nTm.gc=function(){return this.Hd().gc()},nTm.Gd=function(n,t){return Wx(this.Hd().bd(n,t))},nTm.Pc=function(){return this.Hd().Qc(_f(nEX,nhA,1,this.Hd().gc(),5,1))},nTm.Qc=function(n){return this.Hd().Qc(n)},nTm.Ib=function(){return V7(this.Hd())},AY(nhD,"ForwardingImmutableList",2006),nrr(714,1,nfn),nTm.vc=function(){return OC(this)},nTm.wc=function(n){zS(this,n)},nTm.ec=function(){return OO(this)},nTm.yc=function(n,t,e){return Vx(this,n,t,e)},nTm.Cc=function(){return this.Ld()},nTm.$b=function(){throw(new wP).e},nTm._b=function(n){return null!=this.xc(n)},nTm.uc=function(n){return this.Ld().Hc(n)},nTm.Jd=function(){return new wg(this)},nTm.Kd=function(){return new wp(this)},nTm.Fb=function(n){var t;return this===n||!!Ti(n,83)&&(t=Im(n,83),ner(OC(this),t.vc()))},nTm.Hb=function(){return OC(this).Hb()},nTm.dc=function(){return 0==this.gc()},nTm.zc=function(n,t){return function(){throw(new wP).e}()},nTm.Bc=function(n){throw(new wP).e},nTm.Ib=function(){return function(n){var t,e,i,r;for(r=$r((qz(n.gc(),"size"),new gW),123),i=!0,e=OC(n).Kc();e.Ob();)t=Im(e.Pb(),42),i||(r.a+=nhC),i=!1,jS($r(jS(r,t.cd()),61),t.dd());return(r.a+="}",r).a}(this)},nTm.Ld=function(){return this.e?this.e:this.e=this.Kd()},nTm.c=null,nTm.d=null,nTm.e=null,AY(nhD,"ImmutableMap",714),nrr(715,714,nfn),nTm._b=function(n){return W_(this.b,n)},nTm.uc=function(n){return this.b.c.uc(n)},nTm.Id=function(){return WD(new hc(this))},nTm.Jd=function(){return WD($3(this.b))},nTm.Kd=function(){return PV(),new wd($0(this.b))},nTm.Fb=function(n){return WY(this.b.c,n)},nTm.xc=function(n){return P$(this,n)},nTm.Hb=function(){return Xg(this.b.c)},nTm.dc=function(){return this.b.c.dc()},nTm.gc=function(){return this.b.c.gc()},nTm.Ib=function(){return V7(this.b.c)},AY(nhD,"ForwardingImmutableMap",715),nrr(1974,1973,nft),nTm.Bd=function(){return this.Md()},nTm.Cd=function(){return this.Md()},nTm.Nc=function(){return new x6(this,1)},nTm.Fb=function(n){return n===this||this.Md().Fb(n)},nTm.Hb=function(){return this.Md().Hb()},AY(nhD,"ForwardingSet",1974),nrr(1069,1974,nft,hc),nTm.Bd=function(){return $2(this.a.b)},nTm.Cd=function(){return $2(this.a.b)},nTm.Hc=function(n){if(Ti(n,42)&&null==Im(n,42).cd())return!1;try{return $2(this.a.b).b.Hc(n)}catch(n){if(Ti(n=Uu(n),205))return!1;throw n.e}},nTm.Md=function(){return $2(this.a.b)},nTm.Qc=function(n){var t;return t=Ny($2(this.a.b),n),$2(this.a.b).b.gc()<t.length&&$t(t,$2(this.a.b).b.gc(),null),t},AY(nhD,"ForwardingImmutableMap/1",1069),nrr(1981,1980,nfe),nTm.Kc=function(){return this.Ed()},nTm.Nc=function(){return new x6(this,1)},nTm.Fb=function(n){return ner(this,n)},nTm.Hb=function(){return GU(this)},AY(nhD,"ImmutableSet",1981),nrr(703,1981,nfe),nTm.Kc=function(){return _H(new hV(this.a.b.Kc()))},nTm.Hc=function(n){return null!=n&&vA(this.a,n)},nTm.Ic=function(n){return this.a.b.Ic(n)},nTm.Hb=function(){return Xg(this.a.b)},nTm.dc=function(){return this.a.b.dc()},nTm.Ed=function(){return _H(new hV(this.a.b.Kc()))},nTm.gc=function(){return this.a.b.gc()},nTm.Pc=function(){return this.a.b.Pc()},nTm.Qc=function(n){return this.a.b.Qc(n)},nTm.Ib=function(){return V7(this.a.b)},AY(nhD,"ForwardingImmutableSet",703),nrr(1975,1974,nfi),nTm.Bd=function(){return this.b},nTm.Cd=function(){return this.b},nTm.Md=function(){return this.b},nTm.Nc=function(){return new mM(this)},AY(nhD,"ForwardingSortedSet",1975),nrr(533,1979,nfn,YA),nTm.Ac=function(n){zc(this,n)},nTm.Cc=function(){return new EK(this.d||(this.d=new ha(this)))},nTm.$b=function(){KF(this)},nTm._b=function(n){return!!G1(this,n,CZ(VF(nfr,$4(CZ(VF(null==n?0:Xg(n),nfc)),15))))},nTm.uc=function(n){return HF(this,n)},nTm.kc=function(){return new TL(this,this)},nTm.wc=function(n){N3(this,n)},nTm.xc=function(n){return H3(this,n)},nTm.ec=function(){return new EF(this)},nTm.zc=function(n,t){return naG(this,n,t)},nTm.Bc=function(n){var t;return(t=G1(this,n,CZ(VF(nfr,$4(CZ(VF(null==n?0:Xg(n),nfc)),15)))))?(nr4(this,t),t.e=null,t.c=null,t.i):null},nTm.gc=function(){return this.i},nTm.pd=function(){return new EK(this.d||(this.d=new ha(this)))},nTm.f=0,nTm.g=0,nTm.i=0,AY(nhD,"HashBiMap",533),nrr(534,1,nhF),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return RS(this)},nTm.Pb=function(){var n;if(!RS(this))throw(new wO).e;return n=this.c,this.c=n.c,this.f=n,--this.d,this.Nd(n)},nTm.Qb=function(){if(this.e.g!=this.b)throw(new wI).e;zN(!!this.f),nr4(this.e,this.f),this.b=this.e.g,this.f=null},nTm.b=0,nTm.d=0,nTm.f=null,AY(nhD,"HashBiMap/Itr",534),nrr(1011,534,nhF,TL),nTm.Nd=function(n){return new vs(this,n)},AY(nhD,"HashBiMap/1",1011),nrr(1012,345,nhW,vs),nTm.cd=function(){return this.a.g},nTm.dd=function(){return this.a.i},nTm.ed=function(n){var t,e,i;return(e=this.a.i,(i=CZ(VF(nfr,$4(CZ(VF(null==n?0:Xg(n),nfc)),15))))==this.a.f&&(jf(n)===jf(e)||null!=n&&WY(n,e)))?n:(Ub(!G0(this.b.a,n,i),n),nr4(this.b.a,this.a),t=new $U(this.a.g,this.a.a,n,i),nin(this.b.a,t,this.a),this.a.e=null,this.a.c=null,this.b.b=this.b.a.g,this.b.f==this.a&&(this.b.f=t),this.a=t,e)},AY(nhD,"HashBiMap/1/MapEntry",1012),nrr(238,345,{345:1,238:1,3:1,42:1},vw),nTm.cd=function(){return this.g},nTm.dd=function(){return this.i},nTm.ed=function(n){throw(new wP).e},AY(nhD,"ImmutableEntry",238),nrr(317,238,{345:1,317:1,238:1,3:1,42:1},$U),nTm.a=0,nTm.f=0;var nE0=AY(nhD,"HashBiMap/BiEntry",317);nrr(610,1979,nfn,ha),nTm.Ac=function(n){zc(this,n)},nTm.Cc=function(){return new EF(this.a)},nTm.$b=function(){KF(this.a)},nTm._b=function(n){return HF(this.a,n)},nTm.kc=function(){return new TN(this,this.a)},nTm.wc=function(n){A1(n),N3(this.a,new hu(n))},nTm.xc=function(n){return Gs(this,n)},nTm.ec=function(){return new EK(this)},nTm.zc=function(n,t){return function(n,t,e,i){var r,c,a,u;if(u=CZ(VF(nfr,$4(CZ(VF(null==t?0:Xg(t),nfc)),15))),r=CZ(VF(nfr,$4(CZ(VF(null==e?0:Xg(e),nfc)),15))),a=G0(n,t,u),c=G1(n,e,r),a&&r==a.a&&$A(e,a.g))return e;if(c&&!i)throw new gd("key already present: "+e).e;return a&&nr4(n,a),c&&nr4(n,c),nin(n,new $U(e,r,t,u),c),c&&(c.e=null,c.c=null),a&&(a.e=null,a.c=null),nnr(n),a?a.g:null}(this.a,n,t,!1)},nTm.Bc=function(n){var t;return(t=G0(this.a,n,CZ(VF(nfr,$4(CZ(VF(null==n?0:Xg(n),nfc)),15)))))?(nr4(this.a,t),t.e=null,t.c=null,t.g):null},nTm.gc=function(){return this.a.i},nTm.pd=function(){return new EF(this.a)},AY(nhD,"HashBiMap/Inverse",610),nrr(1008,534,nhF,TN),nTm.Nd=function(n){return new vh(this,n)},AY(nhD,"HashBiMap/Inverse/1",1008),nrr(1009,345,nhW,vh),nTm.cd=function(){return this.a.i},nTm.dd=function(){return this.a.g},nTm.ed=function(n){var t,e,i;return(i=this.a.g,(t=CZ(VF(nfr,$4(CZ(VF(null==n?0:Xg(n),nfc)),15))))==this.a.a&&(jf(n)===jf(i)||null!=n&&WY(n,i)))?n:(Ub(!G1(this.b.a.a,n,t),n),nr4(this.b.a.a,this.a),e=new $U(n,t,this.a.i,this.a.f),this.a=e,nin(this.b.a.a,e,null),this.b.b=this.b.a.a.g,i)},AY(nhD,"HashBiMap/Inverse/1/InverseEntry",1009),nrr(611,532,nhq,EK),nTm.Kc=function(){return new d0(this.a.a)},nTm.Mc=function(n){var t;return!!(t=G0(this.a.a,n,CZ(VF(nfr,$4(CZ(VF(null==n?0:Xg(n),nfc)),15)))))&&(nr4(this.a.a,t),!0)},AY(nhD,"HashBiMap/Inverse/InverseKeySet",611),nrr(1007,534,nhF,d0),nTm.Nd=function(n){return n.i},AY(nhD,"HashBiMap/Inverse/InverseKeySet/1",1007),nrr(1010,1,{},hu),nTm.Od=function(n,t){!function(n,t,e){n.Od(e,t)}(this.a,n,t)},AY(nhD,"HashBiMap/Inverse/lambda$0$Type",1010),nrr(609,532,nhq,EF),nTm.Kc=function(){return new d2(this.a)},nTm.Mc=function(n){var t;return!!(t=G1(this.a,n,CZ(VF(nfr,$4(CZ(VF(null==n?0:Xg(n),nfc)),15)))))&&(nr4(this.a,t),t.e=null,t.c=null,!0)},AY(nhD,"HashBiMap/KeySet",609),nrr(1006,534,nhF,d2),nTm.Nd=function(n){return n.g},AY(nhD,"HashBiMap/KeySet/1",1006),nrr(1093,619,nhK),AY(nhD,"HashMultimapGwtSerializationDependencies",1093),nrr(265,1093,nhK,NK),nTm.hc=function(){return new pS(Hv(this.a))},nTm.gd=function(){return new pS(Hv(this.a))},nTm.a=2,AY(nhD,"HashMultimap",265),nrr(1999,152,nh9),nTm.Hc=function(n){return this.Pd().Hc(n)},nTm.dc=function(){return this.Pd().dc()},nTm.gc=function(){return this.Pd().gc()},AY(nhD,"ImmutableAsList",1999),nrr(1931,715,nfn),nTm.Ld=function(){return PV(),new gB(this.a)},nTm.Cc=function(){return PV(),new gB(this.a)},nTm.pd=function(){return PV(),new gB(this.a)},AY(nhD,"ImmutableBiMap",1931),nrr(1977,1,{}),AY(nhD,"ImmutableCollection/Builder",1977),nrr(1022,703,nfe,d3),AY(nhD,"ImmutableEnumSet",1022),nrr(969,386,nhR,Pb),nTm.Xb=function(n){return this.a.Xb(n)},AY(nhD,"ImmutableList/1",969),nrr(968,1977,{},SR),AY(nhD,"ImmutableList/Builder",968),nrr(614,198,nhx,ho),nTm.Ob=function(){return this.a.Ob()},nTm.Pb=function(){return Im(this.a.Pb(),42).cd()},AY(nhD,"ImmutableMap/1",614),nrr(1041,1,{},u),nTm.Kb=function(n){return Im(n,42).cd()},AY(nhD,"ImmutableMap/2methodref$getKey$Type",1041),nrr(1040,1,{},SK),AY(nhD,"ImmutableMap/Builder",1040),nrr(2e3,1981,nfe),nTm.Kc=function(){return new ho(OC(this.a).Ed())},nTm.Dd=function(){return new wv(this)},nTm.Jc=function(n){var t,e;for(A1(n),e=this.gc(),t=0;t<e;t++)n.td(Im(OA(OC(this.a)).Xb(t),42).cd())},nTm.Ed=function(){return(this.c||(this.c=new wv(this))).Ed()},nTm.Nc=function(){return Cp(this.gc(),1296,new hh(this))},AY(nhD,"IndexedImmutableSet",2e3),nrr(1180,2e3,nfe,wg),nTm.Kc=function(){return new ho(OC(this.a).Ed())},nTm.Hc=function(n){return this.a._b(n)},nTm.Jc=function(n){A1(n),zS(this.a,new hs(n))},nTm.Ed=function(){return new ho(OC(this.a).Ed())},nTm.gc=function(){return this.a.gc()},nTm.Nc=function(){return Ip(OC(this.a).Nc(),new u)},AY(nhD,"ImmutableMapKeySet",1180),nrr(1181,1,{},hs),nTm.Od=function(n,t){PV(),this.a.td(n)},AY(nhD,"ImmutableMapKeySet/lambda$0$Type",1181),nrr(1178,1980,nh8,wp),nTm.Kc=function(){return new I4(this)},nTm.Hc=function(n){return null!=n&&function(n,t){if(null==t){for(;n.a.Ob();)if(null==Im(n.a.Pb(),42).dd())return!0}else for(;n.a.Ob();)if(WY(t,Im(n.a.Pb(),42).dd()))return!0;return!1}(new I4(this),n)},nTm.Ed=function(){return new I4(this)},nTm.gc=function(){return this.a.gc()},nTm.Nc=function(){return Ip(OC(this.a).Nc(),new o)},AY(nhD,"ImmutableMapValues",1178),nrr(1179,1,{},o),nTm.Kb=function(n){return Im(n,42).dd()},AY(nhD,"ImmutableMapValues/0methodref$getValue$Type",1179),nrr(626,198,nhx,I4),nTm.Ob=function(){return this.a.Ob()},nTm.Pb=function(){return Im(this.a.Pb(),42).dd()},AY(nhD,"ImmutableMapValues/1",626),nrr(1182,1,{},hh),nTm.ld=function(n){return AO(this.a,n)},AY(nhD,"IndexedImmutableSet/0methodref$get$Type",1182),nrr(752,1999,nh9,wv),nTm.Pd=function(){return this.a},nTm.Xb=function(n){return AO(this.a,n)},nTm.gc=function(){return this.a.a.gc()},AY(nhD,"IndexedImmutableSet/1",752),nrr(44,1,{},s),nTm.Kb=function(n){return Im(n,20).Kc()},nTm.Fb=function(n){return this===n},AY(nhD,"Iterables/10",44),nrr(1042,537,nh5,I5),nTm.Jc=function(n){A1(n),this.b.Jc(new vf(this.a,n))},nTm.Kc=function(){return ET(this)},AY(nhD,"Iterables/4",1042),nrr(1043,1,nh1,vf),nTm.td=function(n){var t,e;t=this.b,e=this.a,t.Mb(n)&&e.td(n)},AY(nhD,"Iterables/4/lambda$0$Type",1043),nrr(1044,537,nh5,I6),nTm.Jc=function(n){A1(n),KA(this.a,new vu(n,this.b))},nTm.Kc=function(){return TD(new Td(this.a),this.b)},AY(nhD,"Iterables/5",1044),nrr(1045,1,nh1,vu),nTm.td=function(n){this.a.td(Eu(n))},AY(nhD,"Iterables/5/lambda$0$Type",1045),nrr(1071,198,nhx,hf),nTm.Ob=function(){return this.a.Ob()},nTm.Pb=function(){return this.a.Pb()},AY(nhD,"Iterators/1",1071),nrr(1072,699,nhx,vo),nTm.Yb=function(){for(var n;this.b.Ob();)if(n=this.b.Pb(),this.a.Lb(n))return n;return this.e=2,null},AY(nhD,"Iterators/5",1072),nrr(487,1,nhF),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return this.b.Ob()},nTm.Pb=function(){return this.Qd(this.b.Pb())},nTm.Qb=function(){this.b.Qb()},AY(nhD,"TransformedIterator",487),nrr(1073,487,nhF,TR),nTm.Qd=function(n){return this.a.Kb(n)},AY(nhD,"Iterators/6",1073),nrr(717,198,nhx,hl),nTm.Ob=function(){return!this.a},nTm.Pb=function(){if(this.a)throw(new wO).e;return this.a=!0,this.b},nTm.a=!1,AY(nhD,"Iterators/9",717),nrr(1070,386,nhR,CV),nTm.Xb=function(n){return this.a[this.b+n]},nTm.b=0,AY(nhD,"Iterators/ArrayItr",1070),nrr(39,1,{39:1,47:1},OM),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return nrc(this)},nTm.Pb=function(){return K4(this)},nTm.Qb=function(){zN(!!this.c),this.c.Qb(),this.c=null},AY(nhD,"Iterators/ConcatenatedIterator",39),nrr(22,1,{3:1,35:1,22:1}),nTm.wd=function(n){var t;return t=Im(n,22),this.g-t.g},nTm.Fb=function(n){return this===n},nTm.Hb=function(){return T9(this)},nTm.Ib=function(){return MP(this)},nTm.g=0;var nE2=AY(nhS,"Enum",22);nrr(538,22,{538:1,3:1,35:1,22:1,47:1},TH),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return!1},nTm.Pb=function(){throw(new wO).e},nTm.Qb=function(){zN(!1)};var nE3=qE(nhD,"Iterators/EmptyModifiableIterator",538,nE2,function(){return dY(),Um(xg(nE3,1),nfh,538,0,[nTA])},function(n){return dY(),B5((xA(),nT$),n)});nrr(1834,619,nhK),AY(nhD,"LinkedHashMultimapGwtSerializationDependencies",1834),nrr(1835,1834,nhK,Wh),nTm.hc=function(){return new Mi(Hv(this.b))},nTm.$b=function(){qX(this),ww(this.a,this.a)},nTm.gd=function(){return new Mi(Hv(this.b))},nTm.ic=function(n){return new XL(this,n,this.b)},nTm.kc=function(){return new TK(this)},nTm.lc=function(){return new x6(Im(this.g||(this.g=new dR(this)),21),17)},nTm.ec=function(){return this.i||(this.i=new TS(this,this.c))},nTm.nc=function(){return new d8(new TK(this))},nTm.oc=function(){return Ip(new x6(Im(this.g||(this.g=new dR(this)),21),17),new h)},nTm.b=2,AY(nhD,"LinkedHashMultimap",1835),nrr(1838,1,{},h),nTm.Kb=function(n){return Im(n,42).dd()},AY(nhD,"LinkedHashMultimap/0methodref$getValue$Type",1838),nrr(824,1,nhF,TK),nTm.Nb=function(n){Ao(this,n)},nTm.Pb=function(){return function(n){var t;if(n.a==n.b.a)throw(new wO).e;return t=n.a,n.c=t,n.a=n.a.e,t}(this)},nTm.Ob=function(){return this.a!=this.b.a},nTm.Qb=function(){zN(!!this.c),Dx(this.b,this.c.g,this.c.i),this.c=null},AY(nhD,"LinkedHashMultimap/1",824),nrr(330,238,{345:1,238:1,330:1,2020:1,3:1,42:1},$z),nTm.Rd=function(){return this.f},nTm.Sd=function(n){this.c=n},nTm.Td=function(n){this.f=n},nTm.d=0;var nE4=AY(nhD,"LinkedHashMultimap/ValueEntry",330);nrr(1836,1970,{2020:1,20:1,28:1,14:1,21:1},XL),nTm.Fc=function(n){var t,e,i,r,c;for(t=(c=CZ(VF(nfr,$4(CZ(VF(null==n?0:Xg(n),nfc)),15))))&this.b.length-1,e=r=this.b[t];e;e=e.a)if(e.d==c&&$A(e.i,n))return!1;return i=new $z(this.c,n,c,r),gH(this.d,i),i.f=this,this.d=i,ww(this.g.a.b,i),ww(i,this.g.a),this.b[t]=i,++this.f,++this.e,function(n){var t,e,i,r,c,a;if(n.f>(a=n.b.length)&&a<nfo)for(i=_f(nE4,nfa,330,2*n.b.length,0,1),n.b=i,r=i.length-1,e=n.a;e!=n;e=e.Rd())t=(c=Im(e,330)).d&r,c.a=i[t],i[t]=c}(this),!0},nTm.$b=function(){var n,t;for(mA(this.b,null),this.f=0,n=this.a;n!=this;n=n.Rd())ww((t=Im(n,330)).b,t.e);this.a=this,this.d=this,++this.e},nTm.Hc=function(n){var t,e;for(e=CZ(VF(nfr,$4(CZ(VF(null==n?0:Xg(n),nfc)),15))),t=this.b[e&this.b.length-1];t;t=t.a)if(t.d==e&&$A(t.i,n))return!0;return!1},nTm.Jc=function(n){var t;for(A1(n),t=this.a;t!=this;t=t.Rd())n.td(Im(t,330).i)},nTm.Rd=function(){return this.a},nTm.Kc=function(){return new $S(this)},nTm.Mc=function(n){return nrs(this,n)},nTm.Sd=function(n){this.d=n},nTm.Td=function(n){this.a=n},nTm.gc=function(){return this.f},nTm.e=0,nTm.f=0,AY(nhD,"LinkedHashMultimap/ValueSet",1836),nrr(1837,1,nhF,$S),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return CY(this),this.b!=this.c},nTm.Pb=function(){var n,t;if(CY(this),this.b==this.c)throw(new wO).e;return t=(n=Im(this.b,330)).i,this.d=n,this.b=n.f,t},nTm.Qb=function(){CY(this),zN(!!this.d),nrs(this.c,this.d.i),this.a=this.c.e,this.d=null},nTm.a=0,AY(nhD,"LinkedHashMultimap/ValueSet/1",1837),nrr(766,1986,nhK,jB),nTm.Zb=function(){return this.f||(this.f=new mk(this))},nTm.Fb=function(n){return X$(this,n)},nTm.cc=function(n){return new vd(this,n)},nTm.fc=function(n){return Rz(this,n)},nTm.$b=function(){Aq(this)},nTm._b=function(n){return Au(this.b,n)},nTm.ac=function(){return new mk(this)},nTm.bc=function(){return new hE(this)},nTm.qc=function(n){return new vd(this,n)},nTm.dc=function(){return!this.a},nTm.rc=function(n){return Rz(this,n)},nTm.gc=function(){return this.d},nTm.c=0,nTm.d=0,AY(nhD,"LinkedListMultimap",766),nrr(52,28,nff),nTm.ad=function(n){GG(this,n)},nTm.Nc=function(){return new x6(this,16)},nTm.Vc=function(n,t){throw new gM("Add not supported on this list").e},nTm.Fc=function(n){return this.Vc(this.gc(),n),!0},nTm.Wc=function(n,t){var e,i,r;for($x(t),e=!1,r=t.Kc();r.Ob();)i=r.Pb(),this.Vc(n++,i),e=!0;return e},nTm.$b=function(){this.Ud(0,this.gc())},nTm.Fb=function(n){return nrp(this,n)},nTm.Hb=function(){return Xu(this)},nTm.Xc=function(n){return qU(this,n)},nTm.Kc=function(){return new h$(this)},nTm.Yc=function(){return this.Zc(0)},nTm.Zc=function(n){return new Rn(this,n)},nTm.$c=function(n){throw new gM("Remove not supported on this list").e},nTm.Ud=function(n,t){var e,i;for(i=this.Zc(n),e=n;e<t;++e)i.Pb(),i.Qb()},nTm._c=function(n,t){throw new gM("Set not supported on this list").e},nTm.bd=function(n,t){return new x2(this,n,t)},nTm.j=0,AY(nh_,"AbstractList",52),nrr(1964,52,nff),nTm.Vc=function(n,t){Mq(this,n,t)},nTm.Wc=function(n,t){return XK(this,n,t)},nTm.Xb=function(n){return J7(this,n)},nTm.Kc=function(){return this.Zc(0)},nTm.$c=function(n){return Zq(this,n)},nTm._c=function(n,t){var e,i;e=this.Zc(n);try{return i=e.Pb(),e.Wb(t),i}catch(t){if(Ti(t=Uu(t),109))throw new gu("Can't set element "+n).e;throw t.e}},AY(nh_,"AbstractSequentialList",1964),nrr(636,1964,nff,vd),nTm.Zc=function(n){return T0(this,n)},nTm.gc=function(){var n;return(n=Im($a(this.a.b,this.b),283))?n.a:0},AY(nhD,"LinkedListMultimap/1",636),nrr(1297,1970,nhq,hE),nTm.Hc=function(n){return Au(this.a.b,n)},nTm.Kc=function(){return new GT(this.a)},nTm.Mc=function(n){return!Rz(this.a,n).a.dc()},nTm.gc=function(){return vO(this.a.b)},AY(nhD,"LinkedListMultimap/1KeySetImpl",1297),nrr(1296,1,nhF,GT),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return CJ(this),!!this.c},nTm.Pb=function(){CJ(this),Tz(this.c),this.a=this.c,Av(this.d,this.a.a);do this.c=this.c.b;while(!!this.c&&!Av(this.d,this.c.a))return this.a.a},nTm.Qb=function(){CJ(this),zN(!!this.a),CM(new Bp(this.e,this.a.a)),this.a=null,this.b=this.e.c},nTm.b=0,AY(nhD,"LinkedListMultimap/DistinctKeyIterator",1296),nrr(283,1,{283:1},Nr),nTm.a=0,AY(nhD,"LinkedListMultimap/KeyList",283),nrr(1295,345,nhW,vg),nTm.cd=function(){return this.a},nTm.dd=function(){return this.f},nTm.ed=function(n){var t;return t=this.f,this.f=n,t},AY(nhD,"LinkedListMultimap/Node",1295),nrr(560,1,nhX,Bp,ne$),nTm.Nb=function(n){Ao(this,n)},nTm.Rb=function(n){this.e=naU(this.f,this.b,n,this.c),++this.d,this.a=null},nTm.Ob=function(){return!!this.c},nTm.Sb=function(){return!!this.e},nTm.Pb=function(){return xy(this)},nTm.Tb=function(){return this.d},nTm.Ub=function(){return xk(this)},nTm.Vb=function(){return this.d-1},nTm.Qb=function(){var n,t,e;zN(!!this.a),this.a!=this.c?(this.e=this.a.e,--this.d):this.c=this.a.c,n=this.f,(t=this.a).d?t.d.b=t.b:n.a=t.b,t.b?t.b.d=t.d:n.e=t.d,t.e||t.c?(e=Im($a(n.b,t.a),283),--e.a,t.e?t.e.c=t.c:e.b=t.c,t.c?t.c.e=t.e:e.c=t.e):((e=Im(Fv(n.b,t.a),283)).a=0,++n.c),--n.d,this.a=null},nTm.Wb=function(n){TG(!!this.a),this.a.f=n},nTm.d=0,AY(nhD,"LinkedListMultimap/ValueForKeyIterator",560),nrr(1018,52,nff),nTm.Vc=function(n,t){this.a.Vc(n,t)},nTm.Wc=function(n,t){return this.a.Wc(n,t)},nTm.Hc=function(n){return this.a.Hc(n)},nTm.Xb=function(n){return this.a.Xb(n)},nTm.$c=function(n){return this.a.$c(n)},nTm._c=function(n,t){return this.a._c(n,t)},nTm.gc=function(){return this.a.gc()},AY(nhD,"Lists/AbstractListWrapper",1018),nrr(1019,1018,nfb),AY(nhD,"Lists/RandomAccessListWrapper",1019),nrr(1021,1019,nfb,vM),nTm.Zc=function(n){return this.a.Zc(n)},AY(nhD,"Lists/1",1021),nrr(131,52,{131:1,20:1,28:1,52:1,14:1,15:1},vT),nTm.Vc=function(n,t){this.a.Vc(Ab(this,n),t)},nTm.$b=function(){this.a.$b()},nTm.Xb=function(n){return this.a.Xb($e(this,n))},nTm.Kc=function(){return Dn(this,0)},nTm.Zc=function(n){return Dn(this,n)},nTm.$c=function(n){return this.a.$c($e(this,n))},nTm.Ud=function(n,t){(D0(n,t,this.a.gc()),zI(this.a.bd(Ab(this,t),Ab(this,n)))).$b()},nTm._c=function(n,t){return this.a._c($e(this,n),t)},nTm.gc=function(){return this.a.gc()},nTm.bd=function(n,t){return D0(n,t,this.a.gc()),zI(this.a.bd(Ab(this,t),Ab(this,n)))},AY(nhD,"Lists/ReverseList",131),nrr(280,131,{131:1,20:1,28:1,52:1,14:1,15:1,54:1},d5),AY(nhD,"Lists/RandomAccessReverseList",280),nrr(1020,1,nhX,vp),nTm.Nb=function(n){Ao(this,n)},nTm.Rb=function(n){this.c.Rb(n),this.c.Ub(),this.a=!1},nTm.Ob=function(){return this.c.Sb()},nTm.Sb=function(){return this.c.Ob()},nTm.Pb=function(){return KK(this)},nTm.Tb=function(){return Ab(this.b,this.c.Tb())},nTm.Ub=function(){if(!this.c.Ob())throw(new wO).e;return this.a=!0,this.c.Pb()},nTm.Vb=function(){return Ab(this.b,this.c.Tb())-1},nTm.Qb=function(){zN(this.a),this.c.Qb(),this.a=!1},nTm.Wb=function(n){TG(this.a),this.c.Wb(n)},nTm.a=!1,AY(nhD,"Lists/ReverseList/1",1020),nrr(432,487,nhF,d6),nTm.Qd=function(n){return mj(n)},AY(nhD,"Maps/1",432),nrr(698,487,nhF,d8),nTm.Qd=function(n){return Im(n,42).dd()},AY(nhD,"Maps/2",698),nrr(962,487,nhF,T1),nTm.Qd=function(n){return new vw(n,this.a.a.a.a.cc(n))},AY(nhD,"Maps/3",962),nrr(959,1971,nhq,hj),nTm.Jc=function(n){!function(n,t){n.kc().Nb(t)}(this.a,n)},nTm.Kc=function(){return this.a.kc()},nTm.Rc=function(){return this.a},nTm.Nc=function(){return this.a.lc()},AY(nhD,"Maps/IteratorBasedAbstractMap/1",959),nrr(960,1,{},hk),nTm.Od=function(n,t){this.a.td(n)},AY(nhD,"Maps/KeySet/lambda$0$Type",960),nrr(958,28,nhH,vE),nTm.$b=function(){this.a.$b()},nTm.Hc=function(n){return this.a.uc(n)},nTm.Jc=function(n){A1(n),this.a.wc(new hd(n))},nTm.dc=function(){return this.a.dc()},nTm.Kc=function(){return new d8(this.a.vc().Kc())},nTm.Mc=function(n){var t,e;try{return Qg(this,n,!0)}catch(i){if(Ti(i=Uu(i),41)){for(e=this.a.vc().Kc();e.Ob();)if($A(n,(t=Im(e.Pb(),42)).dd()))return this.a.Bc(t.cd()),!0;return!1}throw i.e}},nTm.gc=function(){return this.a.gc()},AY(nhD,"Maps/Values",958),nrr(961,1,{},hd),nTm.Od=function(n,t){this.a.td(t)},AY(nhD,"Maps/Values/lambda$0$Type",961),nrr(736,1987,nhB,mk),nTm.xc=function(n){return this.a._b(n)?this.a.cc(n):null},nTm.Bc=function(n){return this.a._b(n)?this.a.fc(n):null},nTm.$b=function(){this.a.$b()},nTm._b=function(n){return this.a._b(n)},nTm.Ec=function(){return new hw(this)},nTm.Dc=function(){return this.Ec()},nTm.dc=function(){return this.a.dc()},nTm.ec=function(){return this.a.ec()},nTm.gc=function(){return this.a.ec().gc()},AY(nhD,"Multimaps/AsMap",736),nrr(1104,1971,nhq,hw),nTm.Kc=function(){var n,t;return n=this.a.a.ec(),t=new hg(this),new T1(n.Kc(),t)},nTm.Rc=function(){return this.a},nTm.Mc=function(n){var t;return!!QK(this,n)&&(t=Im(n,42),function(n,t){n.a.ec().Mc(t)}(this.a,t.cd()),!0)},AY(nhD,"Multimaps/AsMap/EntrySet",1104),nrr(1108,1,{},hg),nTm.Kb=function(n){return this.a.a.a.cc(n)},nTm.Fb=function(n){return this===n},AY(nhD,"Multimaps/AsMap/EntrySet/1",1108),nrr(543,1989,{543:1,835:1,20:1,28:1,14:1},hp),nTm.$b=function(){qX(this.a)},nTm.Hc=function(n){return this.a.c._b(n)},nTm.Jc=function(n){A1(n),KA(A5(this.a),new hm(n))},nTm.Kc=function(){return new d6(A5(this.a).a.kc())},nTm.gc=function(){return this.a.d},nTm.Nc=function(){return Ip(A5(this.a).Nc(),new f)},AY(nhD,"Multimaps/Keys",543),nrr(1106,1,{},f),nTm.Kb=function(n){return Im(n,42).cd()},AY(nhD,"Multimaps/Keys/0methodref$getKey$Type",1106),nrr(1105,487,nhF,d9),nTm.Qd=function(n){return new hv(Im(n,42))},AY(nhD,"Multimaps/Keys/1",1105),nrr(1990,1,{416:1}),nTm.Fb=function(n){var t;return!!Ti(n,492)&&(t=Im(n,416),Im(this.a.dd(),14).gc()==Im(t.a.dd(),14).gc()&&$A(this.a.cd(),t.a.cd()))},nTm.Hb=function(){var n;return(null==(n=this.a.cd())?0:Xg(n))^Im(this.a.dd(),14).gc()},nTm.Ib=function(){var n,t;return t=T4(this.a.cd()),1==(n=Im(this.a.dd(),14).gc())?t:t+" x "+n},AY(nhD,"Multisets/AbstractEntry",1990),nrr(492,1990,{492:1,416:1},hv),AY(nhD,"Multimaps/Keys/1/1",492),nrr(1107,1,nh1,hm),nTm.td=function(n){this.a.td(Im(n,42).cd())},AY(nhD,"Multimaps/Keys/lambda$1$Type",1107),nrr(1110,1,nh1,l),nTm.td=function(n){var t;(t=Im(n,416)).a.cd(),Im(t.a.dd(),14).gc(),gK()},AY(nhD,"Multiset/lambda$0$Type",1110),nrr(737,1,nh1,hy),nTm.td=function(n){!function(n,t){var e,i,r;for(r=0,i=t.a.cd(),e=Im(t.a.dd(),14).gc();r<e;r++)n.td(i)}(this.a,Im(n,416))},AY(nhD,"Multiset/lambda$1$Type",737),nrr(1111,1,{},v),AY(nhD,"Multisets/0methodref$add$Type",1111),nrr(738,1,{},m),nTm.Kb=function(n){var t;return t=Im(n,416),new x6(function(n,t){var e,i;for(LV(),i=new wn,e=0;e<n;++e)i.c[i.c.length]=t;return new gJ(i)}(Im(t.a.dd(),14).gc(),t.a.cd()),16)},AY(nhD,"Multisets/lambda$3$Type",738),nrr(2008,1,nhP),AY(nhD,"RangeGwtSerializationDependencies",2008),nrr(514,2008,{169:1,514:1,3:1,45:1},Yw),nTm.Lb=function(n){return OB(this,Im(n,35))},nTm.Mb=function(n){return OB(this,Im(n,35))},nTm.Fb=function(n){var t;return!!Ti(n,514)&&(t=Im(n,514),Q9(this.a,t.a)&&Q9(this.b,t.b))},nTm.Hb=function(){return 31*this.a.Hb()+this.b.Hb()},nTm.Ib=function(){return RF(this.a,this.b)},AY(nhD,"Range",514),nrr(778,1999,nh9,Ar),nTm.Zc=function(n){return Mp(this.b,n)},nTm.Pd=function(){return this.a},nTm.Xb=function(n){return jd(this.b,n)},nTm.Fd=function(n){return Mp(this.b,n)},AY(nhD,"RegularImmutableAsList",778),nrr(646,2006,nh9,Np),nTm.Hd=function(){return this.a},AY(nhD,"RegularImmutableList",646),nrr(616,715,nfn,d4),AY(nhD,"RegularImmutableMap",616),nrr(716,703,nfe,mC),AY(nhD,"RegularImmutableSet",716),nrr(1976,1965,nhq),nTm.Kc=function(){return new Lh(this.a,this.b)},nTm.Fc=function(n){throw(new wP).e},nTm.Gc=function(n){throw(new wP).e},nTm.$b=function(){throw(new wP).e},nTm.Mc=function(n){throw(new wP).e},AY(nhD,"Sets/SetView",1976),nrr(963,1976,nhq,vm),nTm.Kc=function(){return new Lh(this.a,this.b)},nTm.Hc=function(n){return C9(this.a,n)&&this.b.Hc(n)},nTm.Ic=function(n){return Ur(this.a,n)&&this.b.Ic(n)},nTm.dc=function(){return Yt(this.b,this.a)},nTm.Lc=function(){return Lb(new CL(null,new x6(this.a,1)),new hM(this.b))},nTm.gc=function(){return zU(this)},nTm.Oc=function(){return Lb(new CL(null,new x6(this.a,1)),new hT(this.b))},AY(nhD,"Sets/2",963),nrr(700,699,nhx,Lh),nTm.Yb=function(){for(var n;EH(this.a);)if(n=RY(this.a),this.c.Hc(n))return n;return this.e=2,null},AY(nhD,"Sets/2/1",700),nrr(964,1,nfw,hT),nTm.Mb=function(n){return this.a.Hc(n)},AY(nhD,"Sets/2/4methodref$contains$Type",964),nrr(965,1,nfw,hM),nTm.Mb=function(n){return this.a.Hc(n)},AY(nhD,"Sets/2/5methodref$contains$Type",965),nrr(607,1975,{607:1,3:1,20:1,14:1,271:1,21:1,84:1},NN),nTm.Bd=function(){return this.b},nTm.Cd=function(){return this.b},nTm.Md=function(){return this.b},nTm.Jc=function(n){this.a.Jc(n)},nTm.Lc=function(){return this.a.Lc()},nTm.Oc=function(){return this.a.Oc()},AY(nhD,"Sets/UnmodifiableNavigableSet",607),nrr(1932,1931,nfn,$X),nTm.Ld=function(){return PV(),new gB(this.a)},nTm.Cc=function(){return PV(),new gB(this.a)},nTm.pd=function(){return PV(),new gB(this.a)},AY(nhD,"SingletonImmutableBiMap",1932),nrr(647,2006,nh9,CT),nTm.Hd=function(){return this.a},AY(nhD,"SingletonImmutableList",647),nrr(350,1981,nfe,gB),nTm.Kc=function(){return new hl(this.a)},nTm.Hc=function(n){return WY(this.a,n)},nTm.Ed=function(){return new hl(this.a)},nTm.gc=function(){return 1},AY(nhD,"SingletonImmutableSet",350),nrr(1115,1,{},y),nTm.Kb=function(n){return Im(n,164)},AY(nhD,"Streams/lambda$0$Type",1115),nrr(1116,1,nfd,hS),nTm.Vd=function(){!function(n){var t,e;for(t=0,e=n.length;t<e;++t)$D(n[t])}(this.a)},AY(nhD,"Streams/lambda$1$Type",1116),nrr(1659,1658,nhK,Nl),nTm.Zb=function(){return Im(Im(this.f||(this.f=Ti(this.c,171)?new Sb(this,Im(this.c,171)):Ti(this.c,161)?new Sl(this,Im(this.c,161)):new vb(this,this.c)),161),171)},nTm.hc=function(){return new pI(this.b)},nTm.gd=function(){return new pI(this.b)},nTm.ec=function(){return Im(Im(this.i||(this.i=Ti(this.c,171)?new p8(this,Im(this.c,171)):Ti(this.c,161)?new p6(this,Im(this.c,161)):new TS(this,this.c)),84),271)},nTm.ac=function(){return Ti(this.c,171)?new Sb(this,Im(this.c,171)):Ti(this.c,161)?new Sl(this,Im(this.c,161)):new vb(this,this.c)},nTm.ic=function(n){return null==n&&this.a.ue(n,n),new pI(this.b)},AY(nhD,"TreeMultimap",1659),nrr(78,1,{3:1,78:1}),nTm.Wd=function(n){return Error(n)},nTm.Xd=function(){return this.e},nTm.Yd=function(){var n,t;return n=Lw(AM((null==this.k&&(this.k=_f(nE5,nhJ,78,0,0,1)),this.k)),new N),new na,(t=Im(Kc(n,_x(new B,new _,new ne,Um(xg(nMz,1),nfh,132,0,[(XW(),nM2)]))),15)).Qc(IK(t.gc()))},nTm.Zd=function(){return this.f},nTm.$d=function(){return this.g},nTm._d=function(){var n;n=function(n){if(!("stack"in n))try{throw n}catch(n){}return n}(this.Wd(Nm(this,this.g))),this.e=n,nc$(this,n),Nv(),nTR.be(this)},nTm.Ib=function(){return Nm(this,this.$d())},nTm.e=nfv,nTm.i=!1,nTm.n=!0;var nE5=AY(nhS,"Throwable",78);nrr(102,78,{3:1,102:1,78:1}),AY(nhS,"Exception",102),nrr(60,102,nfm,wm,d7),AY(nhS,"RuntimeException",60),nrr(598,60,nfm),AY(nhS,"JsException",598),nrr(863,598,nfm),AY(nfy,"JavaScriptExceptionBase",863),nrr(477,863,{477:1,3:1,102:1,60:1,78:1},Wo),nTm.$d=function(){var n,t,e;return null==this.c&&(n=jf(this.b)===jf(nTN)?null:this.b,this.d=null==n?nhN:Oy(n)?null==(t=LU(n))?null:t.name:jw(n)?nfk:pb(Xp(n)),this.a=this.a+": "+(Oy(n)?null==(e=LU(n))?null:e.message:n+""),this.c="("+this.d+") "+this.a),this.c},nTm.ae=function(){return jf(this.b)===jf(nTN)?null:this.b},AY(nfj,"JavaScriptException",477);var nE6=AY(nfj,"JavaScriptObject$",0);nrr(1948,1,{}),AY(nfj,"Scheduler",1948);var nE8=0,nE9=0,nE7=-1;nrr(890,1948,{},k),AY(nfy,"SchedulerImpl",890),nrr(1960,1,{}),AY(nfy,"StackTraceCreator/Collector",1960),nrr(864,1960,{},j),nTm.be=function(n){var t={},e=[];n[nfT]=e;for(var i=arguments.callee.caller;i;){var r,c,a=(Nv(),i.name||(i.name=function(n){var t=/function(?:\s+([\w$]+))?\s*\(/.exec(n);return t&&t[1]||nfE}(i.toString())));e.push(a);var u=":"+a,o=t[u];if(o){for(r=0,c=o.length;r<c;r++)if(o[r]===i)return}(o||(t[u]=[])).push(i),i=i.caller}},nTm.ce=function(n){var t,e,i,r;for(Nv(),r=_f(nTs,nhJ,310,e=(i=n&&n[nfT]?n[nfT]:[]).length,0,1),t=0;t<e;t++)r[t]=new Lf(i[t],null,-1);return r},AY(nfy,"StackTraceCreator/CollectorLegacy",864),nrr(1961,1960,{}),nTm.be=function(n){},nTm.de=function(n,t,e,i){return new Lf(t,n+"@"+i,e<0?-1:e)},nTm.ce=function(n){var t,e,i,r,c,a;if(r=function(n){Nv();var t=n.e;if(t&&t.stack){var e=t.stack,i=t+"\n";return e.substring(0,i.length)==i&&(e=e.substring(i.length)),e.split("\n")}return[]}(n),c=_f(nTs,nhJ,310,0,0,1),t=0,0==(i=r.length))return c;for(Pv((a=noG(this,r[0])).d,nfE)||(c[t++]=a),e=1;e<i;e++)c[t++]=noG(this,r[e]);return c},AY(nfy,"StackTraceCreator/CollectorModern",1961),nrr(865,1961,{},w),nTm.de=function(n,t,e,i){return new Lf(t,n,-1)},AY(nfy,"StackTraceCreator/CollectorModernNoSourceMap",865),nrr(1050,1,{}),AY(nfY,nfZ,1050),nrr(615,1050,{615:1},$f),AY(nf1,nfZ,615),nrr(2001,1,{}),AY(nfY,nf0,2001),nrr(2002,2001,{}),AY(nf1,nf0,2002),nrr(1090,1,{},d),AY(nf1,"LocaleInfo",1090),nrr(1918,1,{},g),nTm.a=0,AY(nf1,"TimeZone",1918),nrr(1258,2002,{},b),AY("com.google.gwt.i18n.client.impl.cldr","DateTimeFormatInfoImpl",1258),nrr(434,1,{434:1},IT),nTm.a=!1,nTm.b=0,AY(nfY,"DateTimeFormat/PatternPart",434),nrr(199,1,nf2,vP,UZ,Sf),nTm.wd=function(n){var t;return t=Im(n,199),AI(zx(this.q.getTime()),zx(t.q.getTime()))},nTm.Fb=function(n){return Ti(n,199)&&jp(zx(this.q.getTime()),zx(Im(n,199).q.getTime()))},nTm.Hb=function(){var n;return CZ(Dc(n=zx(this.q.getTime()),OF(n,32)))},nTm.Ib=function(){var n,t,e;return n=((e=-this.q.getTimezoneOffset())>=0?"+":"")+(e/60|0),t=j0(nTv.Math.abs(e)%60),(ntM(),nMM)[this.q.getDay()]+" "+nMS[this.q.getMonth()]+" "+j0(this.q.getDate())+" "+j0(this.q.getHours())+":"+j0(this.q.getMinutes())+":"+j0(this.q.getSeconds())+" GMT"+n+t+" "+this.q.getFullYear()};var nTn=AY(nh_,"Date",199);nrr(1915,199,nf2,nna),nTm.a=!1,nTm.b=0,nTm.c=0,nTm.d=0,nTm.e=0,nTm.f=0,nTm.g=!1,nTm.i=0,nTm.j=0,nTm.k=0,nTm.n=0,nTm.o=0,nTm.p=0,AY("com.google.gwt.i18n.shared.impl","DateRecord",1915),nrr(1966,1,{}),nTm.fe=function(){return null},nTm.ge=function(){return null},nTm.he=function(){return null},nTm.ie=function(){return null},nTm.je=function(){return null},AY(nf3,"JSONValue",1966),nrr(216,1966,{216:1},hA,hP),nTm.Fb=function(n){return!!Ti(n,216)&&Df(this.a,Im(n,216).a)},nTm.ee=function(){return wc},nTm.Hb=function(){return L7(this.a)},nTm.fe=function(){return this},nTm.Ib=function(){var n,t,e;for(t=0,e=new TV("["),n=this.a.length;t<n;t++)t>0&&(e.a+=","),jS(e,BQ(this,t));return e.a+="]",e.a},AY(nf3,"JSONArray",216),nrr(483,1966,{483:1},hI),nTm.ee=function(){return wa},nTm.ge=function(){return this},nTm.Ib=function(){return TX(),""+this.a},nTm.a=!1,AY(nf3,"JSONBoolean",483),nrr(985,60,nfm,gn),AY(nf3,"JSONException",985),nrr(1023,1966,{},p),nTm.ee=function(){return wf},nTm.Ib=function(){return nhN},AY(nf3,"JSONNull",1023),nrr(258,1966,{258:1},hC),nTm.Fb=function(n){return!!Ti(n,258)&&this.a==Im(n,258).a},nTm.ee=function(){return wu},nTm.Hb=function(){return j3(this.a)},nTm.he=function(){return this},nTm.Ib=function(){return this.a+""},nTm.a=0,AY(nf3,"JSONNumber",258),nrr(183,1966,{183:1},gt,hO),nTm.Fb=function(n){return!!Ti(n,183)&&Df(this.a,Im(n,183).a)},nTm.ee=function(){return wo},nTm.Hb=function(){return L7(this.a)},nTm.ie=function(){return this},nTm.Ib=function(){var n,t,e,i,r,c;for(e=0,c=new TV("{"),n=!0,i=(r=GI(this,_f(nTh,nhJ,2,0,6,1))).length;e<i;++e)t=r[e],n?n=!1:c.a+=nhC,jP(c,ni_(t)),c.a+=":",jS(c,N5(this,t));return c.a+="}",c.a},AY(nf3,"JSONObject",183),nrr(596,1965,nhq,vy),nTm.Hc=function(n){var t;return jw(n)&&(t=this.a,Sh(n) in t.a)},nTm.Kc=function(){return new h$(new gE(this.b))},nTm.gc=function(){return this.b.length},AY(nf3,"JSONObject/1",596),nrr(204,1966,{204:1},$h),nTm.Fb=function(n){return!!Ti(n,204)&&Pv(this.a,Im(n,204).a)},nTm.ee=function(){return ws},nTm.Hb=function(){return Yj(this.a)},nTm.je=function(){return this},nTm.Ib=function(){return ni_(this.a)},AY(nf3,"JSONString",204),nrr(1962,1,{525:1}),AY(nlt,"OutputStream",1962),nrr(1963,1962,{525:1}),AY(nlt,"FilterOutputStream",1963),nrr(866,1963,{525:1},O),AY(nlt,"PrintStream",866),nrr(418,1,{475:1}),nTm.Ib=function(){return this.a},AY(nhS,"AbstractStringBuilder",418),nrr(529,60,nfm,ga),AY(nhS,"ArithmeticException",529),nrr(73,60,nle,wk,gu),AY(nhS,"IndexOutOfBoundsException",73),nrr(320,73,{3:1,320:1,102:1,73:1,60:1,78:1},wD,gq),AY(nhS,"ArrayIndexOutOfBoundsException",320),nrr(528,60,nfm,wj,go),AY(nhS,"ArrayStoreException",528),nrr(289,78,nli,gs),AY(nhS,"Error",289),nrr(194,289,nli,wy,K_),AY(nhS,"AssertionError",194),nTj={3:1,476:1,35:1};var nTt=AY(nhS,"Boolean",476);nrr(236,1,{3:1,236:1}),AY(nhS,"Number",236),nrr(217,236,{3:1,217:1,35:1,236:1},hK),nTm.wd=function(n){var t;return t=Im(n,217),this.a-t.a},nTm.ke=function(){return this.a},nTm.Fb=function(n){return Ti(n,217)&&Im(n,217).a==this.a},nTm.Hb=function(){return this.a},nTm.Ib=function(){return""+this.a},nTm.a=0;var nTe=AY(nhS,"Byte",217);nrr(172,1,{3:1,172:1,35:1},hF),nTm.wd=function(n){var t;return t=Im(n,172),this.a-t.a},nTm.Fb=function(n){return Ti(n,172)&&Im(n,172).a==this.a},nTm.Hb=function(){return this.a},nTm.Ib=function(){return String.fromCharCode(this.a)},nTm.a=0;var nTi=AY(nhS,"Character",172);nrr(205,60,{3:1,205:1,102:1,60:1,78:1},wE,gw),AY(nhS,"ClassCastException",205),nTE={3:1,35:1,333:1,236:1};var nTr=AY(nhS,"Double",333);nrr(155,236,{3:1,35:1,155:1,236:1},h_,wF),nTm.wd=function(n){var t;return t=Im(n,155),Vv(this.a,t.a)},nTm.ke=function(){return this.a},nTm.Fb=function(n){return Ti(n,155)&&Pp(this.a,Im(n,155).a)},nTm.Hb=function(){return NU(this.a)},nTm.Ib=function(){return""+this.a},nTm.a=0;var nTc=AY(nhS,"Float",155);nrr(32,60,{3:1,102:1,32:1,60:1,78:1},wT,gd,Xz),AY(nhS,"IllegalArgumentException",32),nrr(71,60,nfm,wM,gg),AY(nhS,"IllegalStateException",71),nrr(19,236,{3:1,35:1,19:1,236:1},hB),nTm.wd=function(n){var t;return t=Im(n,19),EG(this.a,t.a)},nTm.ke=function(){return this.a},nTm.Fb=function(n){return Ti(n,19)&&Im(n,19).a==this.a},nTm.Hb=function(){return this.a},nTm.Ib=function(){return""+this.a},nTm.a=0;var nTa=AY(nhS,"Integer",19);nrr(162,236,{3:1,35:1,162:1,236:1},hH),nTm.wd=function(n){var t;return t=Im(n,162),AI(this.a,t.a)},nTm.ke=function(){return D8(this.a)},nTm.Fb=function(n){return Ti(n,162)&&jp(Im(n,162).a,this.a)},nTm.Hb=function(){return CZ(this.a)},nTm.Ib=function(){return""+Ox(this.a)},nTm.a=0;var nTu=AY(nhS,"Long",162);nrr(2039,1,{}),nrr(1831,60,nfm,gp),AY(nhS,"NegativeArraySizeException",1831),nrr(173,598,{3:1,102:1,173:1,60:1,78:1},wS,gv),nTm.Wd=function(n){return TypeError(n)},AY(nhS,"NullPointerException",173),nrr(127,32,{3:1,102:1,32:1,127:1,60:1,78:1},gG),AY(nhS,"NumberFormatException",127),nrr(184,236,{3:1,35:1,236:1,184:1},hq),nTm.wd=function(n){var t;return t=Im(n,184),this.a-t.a},nTm.ke=function(){return this.a},nTm.Fb=function(n){return Ti(n,184)&&Im(n,184).a==this.a},nTm.Hb=function(){return this.a},nTm.Ib=function(){return""+this.a},nTm.a=0;var nTo=AY(nhS,"Short",184);nrr(310,1,{3:1,310:1},Lf),nTm.Fb=function(n){var t;return!!Ti(n,310)&&(t=Im(n,310),this.c==t.c&&this.d==t.d&&this.a==t.a&&this.b==t.b)},nTm.Hb=function(){return X9(Um(xg(nEX,1),nhA,1,5,[Va(this.c),this.a,this.d,this.b]))},nTm.Ib=function(){return this.a+"."+this.d+"("+(null!=this.b?this.b:"Unknown Source")+(this.c>=0?":"+this.c:"")+")"},nTm.c=0;var nTs=AY(nhS,"StackTraceElement",310);nTT={3:1,475:1,35:1,2:1};var nTh=AY(nhS,nfk,2);nrr(107,418,{475:1},gz,gU,TW),AY(nhS,"StringBuffer",107),nrr(100,418,{475:1},gX,gW,TV),AY(nhS,"StringBuilder",100),nrr(687,73,nle,gV),AY(nhS,"StringIndexOutOfBoundsException",687),nrr(2043,1,{}),nrr(844,1,{},N),nTm.Kb=function(n){return Im(n,78).e},AY(nhS,"Throwable/lambda$0$Type",844),nrr(41,60,{3:1,102:1,60:1,78:1,41:1},wP,gM),AY(nhS,"UnsupportedOperationException",41),nrr(240,236,{3:1,35:1,236:1,240:1},B1,pP),nTm.wd=function(n){return nup(this,Im(n,240))},nTm.ke=function(){return nt1(noD(this))},nTm.Fb=function(n){var t;return this===n||!!Ti(n,240)&&(t=Im(n,240),this.e==t.e&&0==nup(this,t))},nTm.Hb=function(){var n;return 0!=this.b||(this.a<54?(n=zx(this.f),this.b=CZ(Di(n,-1)),this.b=33*this.b+CZ(Di(OK(n,32),-1)),this.b=17*this.b+NU(this.e)):this.b=17*Wk(this.c)+NU(this.e)),this.b},nTm.Ib=function(){return noD(this)},nTm.a=0,nTm.b=0,nTm.d=0,nTm.e=0,nTm.f=0;var nTf=AY("java.math","BigDecimal",240);nrr(91,236,{3:1,35:1,236:1,91:1},Yn,F_,As,nnB,JT,Ep),nTm.wd=function(n){return Jf(this,Im(n,91))},nTm.ke=function(){return nt1(ns9(this,0))},nTm.Fb=function(n){return Qf(this,n)},nTm.Hb=function(){return Wk(this)},nTm.Ib=function(){return ns9(this,0)},nTm.b=-2,nTm.c=0,nTm.d=0,nTm.e=0;var nTl=AY("java.math","BigInteger",91);nrr(488,1967,nhB),nTm.$b=function(){AT(this)},nTm._b=function(n){return Au(this,n)},nTm.uc=function(n){return XF(this,n,this.g)||XF(this,n,this.f)},nTm.vc=function(){return new hL(this)},nTm.xc=function(n){return $a(this,n)},nTm.zc=function(n,t){return $J(this,n,t)},nTm.Bc=function(n){return Fv(this,n)},nTm.gc=function(){return vO(this)},AY(nh_,"AbstractHashMap",488),nrr(261,1965,nhq,hL),nTm.$b=function(){this.a.$b()},nTm.Hc=function(n){return D5(this,n)},nTm.Kc=function(){return new XE(this.a)},nTm.Mc=function(n){var t;return!!D5(this,n)&&(t=Im(n,42).cd(),this.a.Bc(t),!0)},nTm.gc=function(){return this.a.gc()},AY(nh_,"AbstractHashMap/EntrySet",261),nrr(262,1,nhF,XE),nTm.Nb=function(n){Ao(this,n)},nTm.Pb=function(){return HQ(this)},nTm.Ob=function(){return this.b},nTm.Qb=function(){_T(this)},nTm.b=!1,AY(nh_,"AbstractHashMap/EntrySetIterator",262),nrr(417,1,nhF,h$),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return mE(this)},nTm.Pb=function(){return LH(this)},nTm.Qb=function(){$I(this)},nTm.b=0,nTm.c=-1,AY(nh_,"AbstractList/IteratorImpl",417),nrr(96,417,nhX,Rn),nTm.Qb=function(){$I(this)},nTm.Rb=function(n){SH(this,n)},nTm.Sb=function(){return this.b>0},nTm.Tb=function(){return this.b},nTm.Ub=function(){return MK(this.b>0),this.a.Xb(this.c=--this.b)},nTm.Vb=function(){return this.b-1},nTm.Wb=function(n){MR(-1!=this.c),this.a._c(this.c,n)},AY(nh_,"AbstractList/ListIteratorImpl",96),nrr(219,52,nff,x2),nTm.Vc=function(n,t){xC(n,this.b),this.c.Vc(this.a+n,t),++this.b},nTm.Xb=function(n){return x4(n,this.b),this.c.Xb(this.a+n)},nTm.$c=function(n){var t;return x4(n,this.b),t=this.c.$c(this.a+n),--this.b,t},nTm._c=function(n,t){return x4(n,this.b),this.c._c(this.a+n,t)},nTm.gc=function(){return this.b},nTm.a=0,nTm.b=0,AY(nh_,"AbstractList/SubList",219),nrr(384,1965,nhq,hN),nTm.$b=function(){this.a.$b()},nTm.Hc=function(n){return this.a._b(n)},nTm.Kc=function(){return new hx(this.a.vc().Kc())},nTm.Mc=function(n){return!!this.a._b(n)&&(this.a.Bc(n),!0)},nTm.gc=function(){return this.a.gc()},AY(nh_,"AbstractMap/1",384),nrr(691,1,nhF,hx),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return this.a.Ob()},nTm.Pb=function(){return Im(this.a.Pb(),42).cd()},nTm.Qb=function(){this.a.Qb()},AY(nh_,"AbstractMap/1/1",691),nrr(226,28,nhH,hD),nTm.$b=function(){this.a.$b()},nTm.Hc=function(n){return this.a.uc(n)},nTm.Kc=function(){return new hG(this.a.vc().Kc())},nTm.gc=function(){return this.a.gc()},AY(nh_,"AbstractMap/2",226),nrr(294,1,nhF,hG),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return this.a.Ob()},nTm.Pb=function(){return Im(this.a.Pb(),42).dd()},nTm.Qb=function(){this.a.Qb()},AY(nh_,"AbstractMap/2/1",294),nrr(484,1,{484:1,42:1}),nTm.Fb=function(n){var t;return!!Ti(n,42)&&(t=Im(n,42),$5(this.d,t.cd())&&$5(this.e,t.dd()))},nTm.cd=function(){return this.d},nTm.dd=function(){return this.e},nTm.Hb=function(){return EE(this.d)^EE(this.e)},nTm.ed=function(n){return SB(this,n)},nTm.Ib=function(){return this.d+"="+this.e},AY(nh_,"AbstractMap/AbstractEntry",484),nrr(383,484,{484:1,383:1,42:1},mL),AY(nh_,"AbstractMap/SimpleEntry",383),nrr(1984,1,nlp),nTm.Fb=function(n){var t;return!!Ti(n,42)&&(t=Im(n,42),$5(this.cd(),t.cd())&&$5(this.dd(),t.dd()))},nTm.Hb=function(){return EE(this.cd())^EE(this.dd())},nTm.Ib=function(){return this.cd()+"="+this.dd()},AY(nh_,nhV,1984),nrr(1992,1967,nhG),nTm.tc=function(n){return K0(this,n)},nTm._b=function(n){return!!XS(this,n)},nTm.vc=function(){return new hX(this)},nTm.xc=function(n){return jh(XS(this,n))},nTm.ec=function(){return new hz(this)},AY(nh_,"AbstractNavigableMap",1992),nrr(739,1965,nhq,hX),nTm.Hc=function(n){return Ti(n,42)&&K0(this.b,Im(n,42))},nTm.Kc=function(){return new S5(this.b)},nTm.Mc=function(n){var t;return!!Ti(n,42)&&(t=Im(n,42),_m(this.b,t))},nTm.gc=function(){return this.b.c},AY(nh_,"AbstractNavigableMap/EntrySet",739),nrr(493,1965,nhU,hz),nTm.Nc=function(){return new mM(this)},nTm.$b=function(){gi(this.a)},nTm.Hc=function(n){return!!XS(this.a,n)},nTm.Kc=function(){return new hU(new S5(new Mc(this.a).b))},nTm.Mc=function(n){return!!XS(this.a,n)&&(NW(this.a,n),!0)},nTm.gc=function(){return this.a.c},AY(nh_,"AbstractNavigableMap/NavigableKeySet",493),nrr(494,1,nhF,hU),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return mE(this.a.a)},nTm.Pb=function(){return MA(this.a).cd()},nTm.Qb=function(){PH(this.a)},AY(nh_,"AbstractNavigableMap/NavigableKeySet/1",494),nrr(2004,28,nhH),nTm.Fc=function(n){return _w(ntp(this,n)),!0},nTm.Gc=function(n){return $x(n),IB(n!=this,"Can't add a queue to itself"),Gz(this,n)},nTm.$b=function(){for(;null!=BY(this););},AY(nh_,"AbstractQueue",2004),nrr(302,28,{4:1,20:1,28:1,14:1},b7,x8),nTm.Fc=function(n){return RI(this,n),!0},nTm.$b=function(){RZ(this)},nTm.Hc=function(n){return Us(new Ln(this),n)},nTm.dc=function(){return gk(this)},nTm.Kc=function(){return new Ln(this)},nTm.Mc=function(n){var t;return!!Us(t=new Ln(this),n)&&(qx(t),!0)},nTm.gc=function(){return this.c-this.b&this.a.length-1},nTm.Nc=function(){return new x6(this,272)},nTm.Qc=function(n){var t;return t=this.c-this.b&this.a.length-1,n.length<t&&(n=Bs(Array(t),n)),Gp(this,n,t),n.length>t&&$t(n,t,null),n},nTm.b=0,nTm.c=0,AY(nh_,"ArrayDeque",302),nrr(446,1,nhF,Ln),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return this.a!=this.b},nTm.Pb=function(){return Wj(this)},nTm.Qb=function(){qx(this)},nTm.a=0,nTm.b=0,nTm.c=-1,AY(nh_,"ArrayDeque/IteratorImpl",446),nrr(12,52,nlv,wn,Fq,PB),nTm.Vc=function(n,t){C4(this,n,t)},nTm.Fc=function(n){return IE(this,n)},nTm.Wc=function(n,t){return X6(this,n,t)},nTm.Gc=function(n){return Uf(this,n)},nTm.$b=function(){this.c=_f(nEX,nhA,1,0,5,1)},nTm.Hc=function(n){return -1!=Bb(this,n,0)},nTm.Jc=function(n){HR(this,n)},nTm.Xb=function(n){return CA(this,n)},nTm.Xc=function(n){return Bb(this,n,0)},nTm.dc=function(){return 0==this.c.length},nTm.Kc=function(){return new h1(this)},nTm.$c=function(n){return Ff(this,n)},nTm.Mc=function(n){return Bh(this,n)},nTm.Ud=function(n,t){x3(this,n,t)},nTm._c=function(n,t){return KN(this,n,t)},nTm.gc=function(){return this.c.length},nTm.ad=function(n){E_(this,n)},nTm.Pc=function(){return MS(this)},nTm.Qc=function(n){return Jx(this,n)};var nTb=AY(nh_,"ArrayList",12);nrr(7,1,nhF,h1),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return EB(this)},nTm.Pb=function(){return De(this)},nTm.Qb=function(){AE(this)},nTm.a=0,nTm.b=-1,AY(nh_,"ArrayList/1",7),nrr(2013,nTv.Function,{},E),nTm.te=function(n,t){return Vv(n,t)},nrr(154,52,nlm,gE),nTm.Hc=function(n){return -1!=qU(this,n)},nTm.Jc=function(n){var t,e,i,r;for($x(n),e=this.a,i=0,r=e.length;i<r;++i)t=e[i],n.td(t)},nTm.Xb=function(n){return C$(this,n)},nTm._c=function(n,t){var e;return x4(n,this.a.length),e=this.a[n],$t(this.a,n,t),e},nTm.gc=function(){return this.a.length},nTm.ad=function(n){C3(this.a,this.a.length,n)},nTm.Pc=function(){return JD(this,_f(nEX,nhA,1,this.a.length,5,1))},nTm.Qc=function(n){return JD(this,n)},AY(nh_,"Arrays/ArrayList",154),nrr(940,52,nlm,M),nTm.Hc=function(n){return!1},nTm.Xb=function(n){return jD(n)},nTm.Kc=function(){return LV(),vC(),nMk},nTm.Yc=function(){return LV(),vC(),nMk},nTm.gc=function(){return 0},AY(nh_,"Collections/EmptyList",940),nrr(941,1,nhX,S),nTm.Nb=function(n){Ao(this,n)},nTm.Rb=function(n){throw(new wP).e},nTm.Ob=function(){return!1},nTm.Sb=function(){return!1},nTm.Pb=function(){throw(new wO).e},nTm.Tb=function(){return 0},nTm.Ub=function(){throw(new wO).e},nTm.Vb=function(){return -1},nTm.Qb=function(){throw(new wM).e},nTm.Wb=function(n){throw(new wM).e},AY(nh_,"Collections/EmptyListIterator",941),nrr(943,1967,nfn,P),nTm._b=function(n){return!1},nTm.uc=function(n){return!1},nTm.vc=function(){return LV(),nMy},nTm.xc=function(n){return null},nTm.ec=function(){return LV(),nMy},nTm.gc=function(){return 0},nTm.Cc=function(){return LV(),nMv},AY(nh_,"Collections/EmptyMap",943),nrr(942,1965,nfe,T),nTm.Hc=function(n){return!1},nTm.Kc=function(){return LV(),vC(),nMk},nTm.gc=function(){return 0},AY(nh_,"Collections/EmptySet",942),nrr(599,52,{3:1,20:1,28:1,52:1,14:1,15:1},hQ),nTm.Hc=function(n){return $5(this.a,n)},nTm.Xb=function(n){return x4(n,1),this.a},nTm.gc=function(){return 1},AY(nh_,"Collections/SingletonList",599),nrr(372,1,nh6,hW),nTm.Jc=function(n){KA(this,n)},nTm.Lc=function(){return new CL(null,this.Nc())},nTm.Nc=function(){return new x6(this,0)},nTm.Oc=function(){return new CL(null,this.Nc())},nTm.Fc=function(n){return pk()},nTm.Gc=function(n){return pj()},nTm.$b=function(){pE()},nTm.Hc=function(n){return vA(this,n)},nTm.Ic=function(n){return this.b.Ic(n)},nTm.dc=function(){return this.b.dc()},nTm.Kc=function(){return new hV(this.b.Kc())},nTm.Mc=function(n){return pT()},nTm.gc=function(){return this.b.gc()},nTm.Pc=function(){return this.b.Pc()},nTm.Qc=function(n){return this.b.Qc(n)},nTm.Ib=function(){return V7(this.b)},AY(nh_,"Collections/UnmodifiableCollection",372),nrr(371,1,nhF,hV),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return this.b.Ob()},nTm.Pb=function(){return this.b.Pb()},nTm.Qb=function(){pM()},AY(nh_,"Collections/UnmodifiableCollectionIterator",371),nrr(531,372,nly,TQ),nTm.Nc=function(){return new x6(this,16)},nTm.Vc=function(n,t){throw(new wP).e},nTm.Wc=function(n,t){throw(new wP).e},nTm.Fb=function(n){return WY(this.a,n)},nTm.Xb=function(n){return this.a.Xb(n)},nTm.Hb=function(){return Xg(this.a)},nTm.Xc=function(n){return this.a.Xc(n)},nTm.dc=function(){return this.a.dc()},nTm.Yc=function(){return new TJ(this.a.Zc(0))},nTm.Zc=function(n){return new TJ(this.a.Zc(n))},nTm.$c=function(n){throw(new wP).e},nTm._c=function(n,t){throw(new wP).e},nTm.ad=function(n){throw(new wP).e},nTm.bd=function(n,t){return new TQ(this.a.bd(n,t))},AY(nh_,"Collections/UnmodifiableList",531),nrr(690,371,nhX,TJ),nTm.Qb=function(){pM()},nTm.Rb=function(n){throw(new wP).e},nTm.Sb=function(){return this.a.Sb()},nTm.Tb=function(){return this.a.Tb()},nTm.Ub=function(){return this.a.Ub()},nTm.Vb=function(){return this.a.Vb()},nTm.Wb=function(n){throw(new wP).e},AY(nh_,"Collections/UnmodifiableListIterator",690),nrr(600,1,nhB,hZ),nTm.wc=function(n){zS(this,n)},nTm.yc=function(n,t,e){return Vx(this,n,t,e)},nTm.$b=function(){throw(new wP).e},nTm._b=function(n){return this.c._b(n)},nTm.uc=function(n){return this.c.uc(n)},nTm.vc=function(){return $2(this)},nTm.Fb=function(n){return WY(this.c,n)},nTm.xc=function(n){return this.c.xc(n)},nTm.Hb=function(){return Xg(this.c)},nTm.dc=function(){return this.c.dc()},nTm.ec=function(){return $3(this)},nTm.zc=function(n,t){throw(new wP).e},nTm.Bc=function(n){throw(new wP).e},nTm.gc=function(){return this.c.gc()},nTm.Ib=function(){return V7(this.c)},nTm.Cc=function(){return $0(this)},AY(nh_,"Collections/UnmodifiableMap",600),nrr(382,372,nft,gQ),nTm.Nc=function(){return new x6(this,1)},nTm.Fb=function(n){return WY(this.b,n)},nTm.Hb=function(){return Xg(this.b)},AY(nh_,"Collections/UnmodifiableSet",382),nrr(944,382,nft,gY),nTm.Hc=function(n){return this.b.Hc(n)},nTm.Ic=function(n){return this.b.Ic(n)},nTm.Kc=function(){return new hJ(this.b.Kc())},nTm.Pc=function(){var n;return Kt(n=this.b.Pc(),n.length),n},nTm.Qc=function(n){return Ny(this,n)},AY(nh_,"Collections/UnmodifiableMap/UnmodifiableEntrySet",944),nrr(945,1,nhF,hJ),nTm.Nb=function(n){Ao(this,n)},nTm.Pb=function(){return new hY(Im(this.a.Pb(),42))},nTm.Ob=function(){return this.a.Ob()},nTm.Qb=function(){throw(new wP).e},AY(nh_,"Collections/UnmodifiableMap/UnmodifiableEntrySet/1",945),nrr(688,1,nlp,hY),nTm.Fb=function(n){return this.a.Fb(n)},nTm.cd=function(){return this.a.cd()},nTm.dd=function(){return this.a.dd()},nTm.Hb=function(){return this.a.Hb()},nTm.ed=function(n){throw(new wP).e},nTm.Ib=function(){return V7(this.a)},AY(nh_,"Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry",688),nrr(601,531,{20:1,14:1,15:1,54:1},gJ),AY(nh_,"Collections/UnmodifiableRandomAccessList",601),nrr(689,382,nfi,TY),nTm.Nc=function(){return new mM(this)},nTm.Fb=function(n){return WY(this.a,n)},nTm.Hb=function(){return Xg(this.a)},AY(nh_,"Collections/UnmodifiableSortedSet",689),nrr(847,1,nlk,x),nTm.ue=function(n,t){var e;return 0!=(e=Ke(Im(n,11),Im(t,11)))?e:nuv(Im(n,11),Im(t,11))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nh_,"Comparator/lambda$0$Type",847),nrr(751,1,nlk,D),nTm.ue=function(n,t){var e,i;return e=Im(n,35),i=Im(t,35),$x(e),zs(e,($x(i),i))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return LQ(),nMT},AY(nh_,"Comparators/NaturalOrderComparator",751),nrr(1177,1,nlk,R),nTm.ue=function(n,t){var e,i;return e=Im(n,35),$x(i=Im(t,35)),zs(i,($x(e),e))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return LQ(),nME},AY(nh_,"Comparators/ReverseNaturalOrderComparator",1177),nrr(64,1,nlk,h6),nTm.Fb=function(n){return this===n},nTm.ue=function(n,t){return this.a.ue(t,n)},nTm.ve=function(){return this.a},AY(nh_,"Comparators/ReversedComparator",64),nrr(166,60,nfm,wI),AY(nh_,"ConcurrentModificationException",166),nrr(1904,1,nlj,K),nTm.we=function(n){Qz(this,n)},nTm.Ib=function(){return"DoubleSummaryStatistics[count = "+Ox(this.a)+", avg = "+(WM(this.a,0)>0?Fw(this)/D8(this.a):0)+", min = "+this.c+", max = "+this.b+", sum = "+Fw(this)+"]"},nTm.a=0,nTm.b=nla,nTm.c=nlc,nTm.d=0,nTm.e=0,nTm.f=0,AY(nh_,"DoubleSummaryStatistics",1904),nrr(1805,60,nfm,wC),AY(nh_,"EmptyStackException",1805),nrr(451,1967,nhB,Qn),nTm.zc=function(n,t){return S_(this,n,t)},nTm.$b=function(){$K(this)},nTm._b=function(n){return C9(this.a,n)},nTm.uc=function(n){var t,e;for(e=new vR(this.a);e.a<e.c.a.length;)if(t=RY(e),$5(n,this.b[t.g]))return!0;return!1},nTm.vc=function(){return new h8(this)},nTm.xc=function(n){return $6(this,n)},nTm.Bc=function(n){return xO(this,n)},nTm.gc=function(){return this.a.c},AY(nh_,"EnumMap",451),nrr(1352,1965,nhq,h8),nTm.$b=function(){$K(this.a)},nTm.Hc=function(n){return D4(this,n)},nTm.Kc=function(){return new CP(this.a)},nTm.Mc=function(n){var t;return!!D4(this,n)&&(t=Im(n,42).cd(),xO(this.a,t),!0)},nTm.gc=function(){return this.a.a.c},AY(nh_,"EnumMap/EntrySet",1352),nrr(1353,1,nhF,CP),nTm.Nb=function(n){Ao(this,n)},nTm.Pb=function(){return this.b=RY(this.a),new mN(this.c,this.b)},nTm.Ob=function(){return EH(this.a)},nTm.Qb=function(){MR(!!this.b),xO(this.c,this.b),this.b=null},AY(nh_,"EnumMap/EntrySetIterator",1353),nrr(1354,1984,nlp,mN),nTm.cd=function(){return this.a},nTm.dd=function(){return this.b.b[this.a.g]},nTm.ed=function(n){return Ap(this.b,this.a.g,n)},AY(nh_,"EnumMap/MapEntry",1354),nrr(174,1965,{20:1,28:1,14:1,174:1,21:1});var nTw=AY(nh_,"EnumSet",174);nrr(156,174,{20:1,28:1,14:1,174:1,156:1,21:1},PR),nTm.Fc=function(n){return Gv(this,Im(n,22))},nTm.Hc=function(n){return C9(this,n)},nTm.Kc=function(){return new vR(this)},nTm.Mc=function(n){return C7(this,n)},nTm.gc=function(){return this.c},nTm.c=0,AY(nh_,"EnumSet/EnumSetImpl",156),nrr(343,1,nhF,vR),nTm.Nb=function(n){Ao(this,n)},nTm.Pb=function(){return RY(this)},nTm.Ob=function(){return EH(this)},nTm.Qb=function(){MR(-1!=this.b),$t(this.c.b,this.b,null),--this.c.c,this.b=-1},nTm.a=-1,nTm.b=-1,AY(nh_,"EnumSet/EnumSetImpl/IteratorImpl",343),nrr(43,488,nlE,wt,vN,jx),nTm.re=function(n,t){return jf(n)===jf(t)||null!=n&&WY(n,t)},nTm.se=function(n){return 0|Xg(n)},AY(nh_,"HashMap",43),nrr(53,1965,nlT,w_,pS,CI),nTm.Fc=function(n){return Av(this,n)},nTm.$b=function(){this.a.$b()},nTm.Hc=function(n){return v$(this,n)},nTm.dc=function(){return 0==this.a.gc()},nTm.Kc=function(){return this.a.ec().Kc()},nTm.Mc=function(n){return Tn(this,n)},nTm.gc=function(){return this.a.gc()};var nTd=AY(nh_,"HashSet",53);nrr(1781,1,nh2,F),nTm.ud=function(n){zC(this,n)},nTm.Ib=function(){return"IntSummaryStatistics[count = "+Ox(this.a)+", avg = "+(WM(this.a,0)>0?D8(this.d)/D8(this.a):0)+", min = "+this.c+", max = "+this.b+", sum = "+Ox(this.d)+"]"},nTm.a=0,nTm.b=nfp,nTm.c=nhM,nTm.d=0,AY(nh_,"IntSummaryStatistics",1781),nrr(1049,1,nh5,j6),nTm.Jc=function(n){KA(this,n)},nTm.Kc=function(){return new Rt(this)},nTm.c=0,AY(nh_,"InternalHashCodeMap",1049),nrr(711,1,nhF,Rt),nTm.Nb=function(n){Ao(this,n)},nTm.Pb=function(){return this.d=this.a[this.c++],this.d},nTm.Ob=function(){var n;return this.c<this.a.length||!(n=this.b.next()).done&&(this.a=n.value[1],this.c=0,!0)},nTm.Qb=function(){nra(this.e,this.d.cd()),0!=this.c&&--this.c},nTm.c=0,nTm.d=null,AY(nh_,"InternalHashCodeMap/1",711),nrr(1047,1,nh5,j8),nTm.Jc=function(n){KA(this,n)},nTm.Kc=function(){return new R9(this)},nTm.c=0,nTm.d=0,AY(nh_,"InternalStringMap",1047),nrr(710,1,nhF,R9),nTm.Nb=function(n){Ao(this,n)},nTm.Pb=function(){return this.c=this.a,this.a=this.b.next(),new PK(this.d,this.c,this.d.d)},nTm.Ob=function(){return!this.a.done},nTm.Qb=function(){z6(this.d,this.c.value[0])},AY(nh_,"InternalStringMap/1",710),nrr(1048,1984,nlp,PK),nTm.cd=function(){return this.b.value[0]},nTm.dd=function(){return this.a.d!=this.c?mT(this.a,this.b.value[0]):this.b.value[1]},nTm.ed=function(n){return VB(this.a,this.b.value[0],n)},nTm.c=0,AY(nh_,"InternalStringMap/2",1048),nrr(228,43,nlE,R7,_p),nTm.$b=function(){Sq(this)},nTm._b=function(n){return Au(this.e,n)},nTm.uc=function(n){var t;for(t=this.d.a;t!=this.d;){if($5(t.e,n))return!0;t=t.a}return!1},nTm.vc=function(){return new h7(this)},nTm.xc=function(n){return BX(this,n)},nTm.zc=function(n,t){return JR(this,n,t)},nTm.Bc=function(n){return Bf(this,n)},nTm.gc=function(){return vO(this.e)},nTm.c=!1,AY(nh_,"LinkedHashMap",228),nrr(387,383,{484:1,383:1,387:1,42:1},MF,IC),AY(nh_,"LinkedHashMap/ChainEntry",387),nrr(701,1965,nhq,h7),nTm.$b=function(){Sq(this.a)},nTm.Hc=function(n){return D6(this,n)},nTm.Kc=function(){return new $P(this)},nTm.Mc=function(n){var t;return!!D6(this,n)&&(t=Im(n,42).cd(),Bf(this.a,t),!0)},nTm.gc=function(){return vO(this.a.e)},AY(nh_,"LinkedHashMap/EntrySet",701),nrr(702,1,nhF,$P),nTm.Nb=function(n){Ao(this,n)},nTm.Pb=function(){return _M(this)},nTm.Ob=function(){return this.b!=this.c.a.d},nTm.Qb=function(){MR(!!this.a),D3(this.c.a.e,this),I3(this.a),Fv(this.c.a.e,this.a.d),St(this.c.a.e,this),this.a=null},AY(nh_,"LinkedHashMap/EntrySet/EntryIterator",702),nrr(178,53,nlT,j7,Mi,CC);var nTg=AY(nh_,"LinkedHashSet",178);nrr(68,1964,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1},vK,P_),nTm.Fc=function(n){return I2(this,n)},nTm.$b=function(){Lq(this)},nTm.Zc=function(n){return Jz(this,n)},nTm.gc=function(){return this.b},nTm.b=0;var nTp=AY(nh_,"LinkedList",68);nrr(970,1,nhX,PF),nTm.Nb=function(n){Ao(this,n)},nTm.Rb=function(n){AK(this,n)},nTm.Ob=function(){return px(this)},nTm.Sb=function(){return this.b.b!=this.d.a},nTm.Pb=function(){return RP(this)},nTm.Tb=function(){return this.a},nTm.Ub=function(){return DK(this)},nTm.Vb=function(){return this.a-1},nTm.Qb=function(){HA(this)},nTm.Wb=function(n){MR(!!this.c),this.c.c=n},nTm.a=0,nTm.c=null,AY(nh_,"LinkedList/ListIteratorImpl",970),nrr(608,1,{},A),AY(nh_,"LinkedList/Node",608),nrr(1959,1,{}),AY(nh_,"Locale",1959),nrr(861,1959,{},$),nTm.Ib=function(){return""},AY(nh_,"Locale/1",861),nrr(862,1959,{},L),nTm.Ib=function(){return"unknown"},AY(nh_,"Locale/4",862),nrr(109,60,{3:1,102:1,60:1,78:1,109:1},wO,$7),AY(nh_,"NoSuchElementException",109),nrr(404,1,{404:1},ge),nTm.Fb=function(n){var t;return n===this||!!Ti(n,404)&&(t=Im(n,404),$5(this.a,t.a))},nTm.Hb=function(){return EE(this.a)},nTm.Ib=function(){return null!=this.a?nhL+T4(this.a)+")":"Optional.empty()"},AY(nh_,"Optional",404),nrr(463,1,{463:1},jH,M$),nTm.Fb=function(n){var t;return n===this||!!Ti(n,463)&&(t=Im(n,463),this.a==t.a&&0==Vv(this.b,t.b))},nTm.Hb=function(){return this.a?NU(this.b):0},nTm.Ib=function(){return this.a?"OptionalDouble.of("+this.b+")":"OptionalDouble.empty()"},nTm.a=!1,nTm.b=0,AY(nh_,"OptionalDouble",463),nrr(517,1,{517:1},jq,ML),nTm.Fb=function(n){var t;return n===this||!!Ti(n,517)&&(t=Im(n,517),this.a==t.a&&0==EG(this.b,t.b))},nTm.Hb=function(){return this.a?this.b:0},nTm.Ib=function(){return this.a?"OptionalInt.of("+this.b+")":"OptionalInt.empty()"},nTm.a=!1,nTm.b=0,AY(nh_,"OptionalInt",517),nrr(503,2004,nhH,O0),nTm.Gc=function(n){return Zz(this,n)},nTm.$b=function(){this.b.c=_f(nEX,nhA,1,0,5,1)},nTm.Hc=function(n){return(null==n?-1:Bb(this.b,n,0))!=-1},nTm.Kc=function(){return new h0(this)},nTm.Mc=function(n){return Gm(this,n)},nTm.gc=function(){return this.b.c.length},nTm.Nc=function(){return new x6(this,256)},nTm.Pc=function(){return MS(this.b)},nTm.Qc=function(n){return Jx(this.b,n)},AY(nh_,"PriorityQueue",503),nrr(1277,1,nhF,h0),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return this.a<this.c.b.c.length},nTm.Pb=function(){return MK(this.a<this.c.b.c.length),this.b=this.a++,CA(this.c.b,this.b)},nTm.Qb=function(){MR(-1!=this.b),Gy(this.c,this.a=this.b),this.b=-1},nTm.a=0,nTm.b=-1,AY(nh_,"PriorityQueue/1",1277),nrr(230,1,{230:1},VH,Ka),nTm.a=0,nTm.b=0;var nTv,nTm,nTy,nTk,nTj,nTE,nTT,nTM,nTS,nTP,nTI,nTC,nTO,nTA,nT$,nTL,nTN,nTx,nTD,nTR,nTK,nTF,nT_,nTB,nTH,nTq,nTG,nTz,nTU,nTX,nTW,nTV,nTQ,nTJ,nTY,nTZ,nT1,nT0,nT2,nT3,nT4,nT5,nT6,nT8,nT9,nT7,nMn,nMt,nMe,nMi,nMr,nMc,nMa,nMu,nMo,nMs,nMh,nMf,nMl,nMb,nMw,nMd,nMg,nMp,nMv,nMm,nMy,nMk,nMj,nME,nMT,nMM,nMS,nMP,nMI,nMC,nMO,nMA,nM$,nML,nMN,nMx=0;AY(nh_,"Random",230),nrr(27,1,nhZ,x6,A$,Ll),nTm.qd=function(){return this.a},nTm.rd=function(){return OX(this),this.c},nTm.Nb=function(n){OX(this),this.d.Nb(n)},nTm.sd=function(n){return Hg(this,n)},nTm.a=0,nTm.c=0,AY(nh_,"Spliterators/IteratorSpliterator",27),nrr(485,27,nhZ,mM),AY(nh_,"SortedSet/1",485),nrr(602,1,nlj,h2),nTm.we=function(n){this.a.td(n)},AY(nh_,"Spliterator/OfDouble/0methodref$accept$Type",602),nrr(603,1,nlj,h3),nTm.we=function(n){this.a.td(n)},AY(nh_,"Spliterator/OfDouble/1methodref$accept$Type",603),nrr(604,1,nh2,h4),nTm.ud=function(n){this.a.td(Va(n))},AY(nh_,"Spliterator/OfInt/2methodref$accept$Type",604),nrr(605,1,nh2,h5),nTm.ud=function(n){this.a.td(Va(n))},AY(nh_,"Spliterator/OfInt/3methodref$accept$Type",605),nrr(617,1,nhZ),nTm.Nb=function(n){pO(this,n)},nTm.qd=function(){return this.d},nTm.rd=function(){return this.e},nTm.d=0,nTm.e=0,AY(nh_,"Spliterators/BaseSpliterator",617),nrr(721,617,nhZ),nTm.xe=function(n){pC(this,n)},nTm.Nb=function(n){Ti(n,182)?pC(this,Im(n,182)):pC(this,new h3(n))},nTm.sd=function(n){return Ti(n,182)?this.ye(Im(n,182)):this.ye(new h2(n))},AY(nh_,"Spliterators/AbstractDoubleSpliterator",721),nrr(720,617,nhZ),nTm.xe=function(n){pC(this,n)},nTm.Nb=function(n){Ti(n,196)?pC(this,Im(n,196)):pC(this,new h5(n))},nTm.sd=function(n){return Ti(n,196)?this.ye(Im(n,196)):this.ye(new h4(n))},AY(nh_,"Spliterators/AbstractIntSpliterator",720),nrr(540,617,nhZ),AY(nh_,"Spliterators/AbstractSpliterator",540),nrr(692,1,nhZ),nTm.Nb=function(n){pO(this,n)},nTm.qd=function(){return this.b},nTm.rd=function(){return this.d-this.c},nTm.b=0,nTm.c=0,nTm.d=0,AY(nh_,"Spliterators/BaseArraySpliterator",692),nrr(947,692,nhZ,I8),nTm.ze=function(n,t){!function(n,t,e){t.td(n.a[e])}(this,Im(n,38),t)},nTm.Nb=function(n){$c(this,n)},nTm.sd=function(n){return Fx(this,n)},AY(nh_,"Spliterators/ArraySpliterator",947),nrr(693,692,nhZ,PI),nTm.ze=function(n,t){!function(n,t,e){t.we(n.a[e])}(this,Im(n,182),t)},nTm.xe=function(n){$c(this,n)},nTm.Nb=function(n){Ti(n,182)?$c(this,Im(n,182)):$c(this,new h3(n))},nTm.ye=function(n){return Fx(this,n)},nTm.sd=function(n){return Ti(n,182)?Fx(this,Im(n,182)):Fx(this,new h2(n))},AY(nh_,"Spliterators/DoubleArraySpliterator",693),nrr(1968,1,nhZ),nTm.Nb=function(n){pO(this,n)},nTm.qd=function(){return 16448},nTm.rd=function(){return 0},AY(nh_,"Spliterators/EmptySpliterator",1968),nrr(946,1968,nhZ,G),nTm.xe=function(n){$x(n)},nTm.Nb=function(n){Ti(n,196)?$x(Im(n,196)):$x(new h5(n))},nTm.ye=function(n){return $x(n),!1},nTm.sd=function(n){return Ti(n,196)?$x(Im(n,196)):$x(new h4(n)),!1},AY(nh_,"Spliterators/EmptySpliterator/OfInt",946),nrr(580,52,nlL,wH),nTm.Vc=function(n,t){OW(n,this.a.c.length+1),C4(this.a,n,t)},nTm.Fc=function(n){return IE(this.a,n)},nTm.Wc=function(n,t){return OW(n,this.a.c.length+1),X6(this.a,n,t)},nTm.Gc=function(n){return Uf(this.a,n)},nTm.$b=function(){this.a.c=_f(nEX,nhA,1,0,5,1)},nTm.Hc=function(n){return -1!=Bb(this.a,n,0)},nTm.Ic=function(n){return Ur(this.a,n)},nTm.Jc=function(n){HR(this.a,n)},nTm.Xb=function(n){return OW(n,this.a.c.length),CA(this.a,n)},nTm.Xc=function(n){return Bb(this.a,n,0)},nTm.dc=function(){return 0==this.a.c.length},nTm.Kc=function(){return new h1(this.a)},nTm.$c=function(n){return OW(n,this.a.c.length),Ff(this.a,n)},nTm.Ud=function(n,t){x3(this.a,n,t)},nTm._c=function(n,t){return OW(n,this.a.c.length),KN(this.a,n,t)},nTm.gc=function(){return this.a.c.length},nTm.ad=function(n){E_(this.a,n)},nTm.bd=function(n,t){return new x2(this.a,n,t)},nTm.Pc=function(){return MS(this.a)},nTm.Qc=function(n){return Jx(this.a,n)},nTm.Ib=function(){return ntK(this.a)},AY(nh_,"Vector",580),nrr(809,580,nlL,dt),AY(nh_,"Stack",809),nrr(206,1,{206:1},zV),nTm.Ib=function(){return D_(this)},AY(nh_,"StringJoiner",206),nrr(544,1992,{3:1,83:1,171:1,161:1},vx,O2),nTm.$b=function(){gi(this)},nTm.vc=function(){return new Mc(this)},nTm.zc=function(n,t){return U5(this,n,t)},nTm.Bc=function(n){return NW(this,n)},nTm.gc=function(){return this.c},nTm.c=0,AY(nh_,"TreeMap",544),nrr(390,1,nhF,S5),nTm.Nb=function(n){Ao(this,n)},nTm.Pb=function(){return MA(this)},nTm.Ob=function(){return mE(this.a)},nTm.Qb=function(){PH(this)},AY(nh_,"TreeMap/EntryIterator",390),nrr(435,739,nhq,Mc),nTm.$b=function(){gi(this.a)},AY(nh_,"TreeMap/EntrySet",435),nrr(436,383,{484:1,383:1,42:1,436:1},_g),nTm.b=!1;var nMD=AY(nh_,"TreeMap/Node",436);nrr(621,1,{},H),nTm.Ib=function(){return"State: mv="+this.c+" value="+this.d+" done="+this.a+" found="+this.b},nTm.a=!1,nTm.b=!1,nTm.c=!1,AY(nh_,"TreeMap/State",621),nrr(297,22,nlN,mP),nTm.Ae=function(){return!1},nTm.Be=function(){return!1};var nMR=qE(nh_,"TreeMap/SubMapType",297,nE2,function(){return _0(),Um(xg(nMR,1),nfh,297,0,[nMW,nMV,nMQ,nMJ])},function(n){return _0(),B5((_2(),nMY),n)});nrr(1112,297,nlN,Ev),nTm.Be=function(){return!0},qE(nh_,"TreeMap/SubMapType/1",1112,nMR,null,null),nrr(1113,297,nlN,EQ),nTm.Ae=function(){return!0},nTm.Be=function(){return!0},qE(nh_,"TreeMap/SubMapType/2",1113,nMR,null,null),nrr(1114,297,nlN,Em),nTm.Ae=function(){return!0},qE(nh_,"TreeMap/SubMapType/3",1114,nMR,null,null),nrr(208,1965,{3:1,20:1,28:1,14:1,271:1,21:1,84:1,208:1},wW,pI),nTm.Nc=function(){return new mM(this)},nTm.Fc=function(n){return AR(this,n)},nTm.$b=function(){gi(this.a)},nTm.Hc=function(n){return!!XS(this.a,n)},nTm.Kc=function(){return new hU(new S5(new Mc(new hz(this.a).a).b))},nTm.Mc=function(n){return T6(this,n)},nTm.gc=function(){return this.a.c};var nMK=AY(nh_,"TreeSet",208);nrr(966,1,{},fn),nTm.Ce=function(n,t){return 0>=this.a.ue(n,t)?t:n},AY(nlx,"BinaryOperator/lambda$0$Type",966),nrr(967,1,{},ft),nTm.Ce=function(n,t){return 0>=this.a.ue(n,t)?n:t},AY(nlx,"BinaryOperator/lambda$1$Type",967),nrr(846,1,{},q),nTm.Kb=function(n){return n},AY(nlx,"Function/lambda$0$Type",846),nrr(431,1,nfw,fe),nTm.Mb=function(n){return!this.a.Mb(n)},AY(nlx,"Predicate/lambda$2$Type",431),nrr(572,1,{572:1});var nMF=AY(nlD,"Handler",572);nrr(2007,1,nhP),nTm.ne=function(){return"DUMMY"},nTm.Ib=function(){return this.ne()},AY(nlD,"Level",2007),nrr(1621,2007,nhP,z),nTm.ne=function(){return"INFO"},AY(nlD,"Level/LevelInfo",1621),nrr(1640,1,{},wB),AY(nlD,"LogManager",1640),nrr(1780,1,nhP,Pq),nTm.b=null,AY(nlD,"LogRecord",1780),nrr(512,1,{512:1},KG),nTm.e=!1;var nM_=!1,nMB=!1,nMH=!1,nMq=!1,nMG=!1;AY(nlD,"Logger",512),nrr(819,572,{572:1},U),AY(nlD,"SimpleConsoleLogHandler",819),nrr(132,22,{3:1,35:1,22:1,132:1},mI);var nMz=qE(nlF,"Collector/Characteristics",132,nE2,function(){return XW(),Um(xg(nMz,1),nfh,132,0,[nM0,nM2,nM3])},function(n){return XW(),B5((FX(),nM4),n)});nrr(744,1,{},Ag),AY(nlF,"CollectorImpl",744),nrr(1060,1,{},X),nTm.Ce=function(n,t){var e,i,r;return e=Im(n,206),(i=Im(t,206)).a&&(r=i.a.a.length,e.a?jP(e.a,e.b):e.a=new TV(e.d),DD(e.a,i.a,i.d.length,r)),e},AY(nlF,"Collectors/10methodref$merge$Type",1060),nrr(1061,1,{},W),nTm.Kb=function(n){return D_(Im(n,206))},AY(nlF,"Collectors/11methodref$toString$Type",1061),nrr(1062,1,{},fi),nTm.Kb=function(n){return TX(),!!jK(n)},AY(nlF,"Collectors/12methodref$test$Type",1062),nrr(251,1,{},_),nTm.Od=function(n,t){Im(n,14).Fc(t)},AY(nlF,"Collectors/20methodref$add$Type",251),nrr(253,1,{},B),nTm.Ee=function(){return new wn},AY(nlF,"Collectors/21methodref$ctor$Type",253),nrr(346,1,{},V),nTm.Ee=function(){return new w_},AY(nlF,"Collectors/23methodref$ctor$Type",346),nrr(347,1,{},Q),nTm.Od=function(n,t){Av(Im(n,53),t)},AY(nlF,"Collectors/24methodref$add$Type",347),nrr(1055,1,{},J),nTm.Ce=function(n,t){var e,i;return e=Im(n,15),i=Im(t,14),e.Gc(i),e},AY(nlF,"Collectors/4methodref$addAll$Type",1055),nrr(1059,1,{},Y),nTm.Od=function(n,t){Fd(Im(n,206),Im(t,475))},AY(nlF,"Collectors/9methodref$add$Type",1059),nrr(1058,1,{},IS),nTm.Ee=function(){return new zV(this.a,this.b,this.c)},AY(nlF,"Collectors/lambda$15$Type",1058),nrr(1063,1,{},Z),nTm.Ee=function(){var n;return JR(n=new R7,(TX(),!1),new wn),JR(n,!0,new wn),n},AY(nlF,"Collectors/lambda$22$Type",1063),nrr(1064,1,{},fr),nTm.Ee=function(){return Um(xg(nEX,1),nhA,1,5,[this.a])},AY(nlF,"Collectors/lambda$25$Type",1064),nrr(1065,1,{},fc),nTm.Od=function(n,t){var e;this.a,$t(e=HJ(n),0,CN(e[0],Jy(1)))},AY(nlF,"Collectors/lambda$26$Type",1065),nrr(1066,1,{},fa),nTm.Ce=function(n,t){var e,i;return this.a,e=HJ(n),i=HJ(t),$t(e,0,CN(e[0],i[0])),e},AY(nlF,"Collectors/lambda$27$Type",1066),nrr(1067,1,{},nn),nTm.Kb=function(n){return HJ(n)[0]},AY(nlF,"Collectors/lambda$28$Type",1067),nrr(713,1,{},nt),nTm.Ce=function(n,t){return CN(n,t)},AY(nlF,"Collectors/lambda$4$Type",713),nrr(252,1,{},ne),nTm.Ce=function(n,t){var e,i;return e=Im(n,14),i=Im(t,14),e.Gc(i),e},AY(nlF,"Collectors/lambda$42$Type",252),nrr(348,1,{},ni),nTm.Ce=function(n,t){var e;return Gz(e=Im(n,53),Im(t,53)),e},AY(nlF,"Collectors/lambda$50$Type",348),nrr(349,1,{},nr),nTm.Kb=function(n){return Im(n,53)},AY(nlF,"Collectors/lambda$51$Type",349),nrr(1054,1,{},fu),nTm.Od=function(n,t){var e,i,r;this.a,e=Im(n,83),TX(),i=!!jK(t),(r=Im(e.xc(i),15))||(r=new wn,e.zc(i,r)),r.Fc(t)},AY(nlF,"Collectors/lambda$7$Type",1054),nrr(1056,1,{},nc),nTm.Ce=function(n,t){return function(n,t,e){var i,r;for(r=t.vc().Kc();r.Ob();)i=Im(r.Pb(),42),n.yc(i.cd(),i.dd(),e);return n}(Im(n,83),Im(t,83),new J)},AY(nlF,"Collectors/lambda$8$Type",1056),nrr(1057,1,{},fo),nTm.Kb=function(n){return function(n,t){var e,i,r;for(r=new wt,i=t.vc().Kc();i.Ob();)$J(r,(e=Im(i.Pb(),42)).cd(),function(n,t){var e,i,r;for(e=n.c.Ee(),r=t.Kc();r.Ob();)i=r.Pb(),n.a.Od(e,i);return n.b.Kb(e)}(n,Im(e.dd(),15)));return r}(this.a,Im(n,83))},AY(nlF,"Collectors/lambda$9$Type",1057),nrr(539,1,{}),nTm.He=function(){$D(this)},nTm.d=!1,AY(nlF,"TerminatableStream",539),nrr(812,539,nl_,Sd),nTm.He=function(){$D(this)},AY(nlF,"DoubleStreamImpl",812),nrr(1784,721,nhZ,II),nTm.ye=function(n){var t,e;return t=Im(n,182),this.a||(e=_f(nYR,nlf,25,0,15,1),pC(this.b.a,new fs(e)),e.sort(HY(E.prototype.te,E,[])),this.a=new PI(e,this.d)),Fx(this.a,t)},nTm.a=null,AY(nlF,"DoubleStreamImpl/2",1784),nrr(1785,1,nlj,fs),nTm.we=function(n){var t;(t=this.a)[t.length]=n},AY(nlF,"DoubleStreamImpl/2/lambda$0$Type",1785),nrr(1782,1,nlj,fh),nTm.we=function(n){var t;(t=this.a)[t.length]=n},AY(nlF,"DoubleStreamImpl/lambda$0$Type",1782),nrr(1783,1,nlj,ff),nTm.we=function(n){Qz(this.a,n)},AY(nlF,"DoubleStreamImpl/lambda$2$Type",1783),nrr(1358,720,nhZ,Kq),nTm.ye=function(n){var t;return t=Im(n,196),this.a<=this.b&&(t.ud(this.a++),!0)},nTm.a=0,nTm.b=0,nTm.c=0,AY(nlF,"IntStream/5",1358),nrr(787,539,nl_,Sg),nTm.He=function(){$D(this)},nTm.Ie=function(){return $R(this),this.a},AY(nlF,"IntStreamImpl",787),nrr(788,539,nl_,vD),nTm.He=function(){$D(this)},nTm.Ie=function(){return $R(this),Tb(),nMX},AY(nlF,"IntStreamImpl/Empty",788),nrr(1463,1,nh2,fl),nTm.ud=function(n){zC(this.a,n)},AY(nlF,"IntStreamImpl/lambda$4$Type",1463);var nMU=Cw(nlF,"Stream");nrr(30,539,{525:1,670:1,833:1},CL),nTm.He=function(){$D(this)},AY(nlF,"StreamImpl",30),nrr(845,1,{},na),nTm.ld=function(n){return IK(n)},AY(nlF,"StreamImpl/0methodref$lambda$2$Type",845),nrr(1084,540,nhZ,PP),nTm.sd=function(n){for(;function(n){for(;!n.a;)if(!Pk(n.c,new fb(n)))return!1;return!0}(this);){if(this.a.sd(n))return!0;$D(this.b),this.b=null,this.a=null}return!1},AY(nlF,"StreamImpl/1",1084),nrr(1085,1,nh1,fb),nTm.td=function(n){var t,e;t=this.a,(e=Im(n,833))&&(t.b=e,t.a=($R(e),e.a))},AY(nlF,"StreamImpl/1/lambda$0$Type",1085),nrr(1086,1,nfw,fw),nTm.Mb=function(n){return Av(this.a,n)},AY(nlF,"StreamImpl/1methodref$add$Type",1086),nrr(1087,540,nhZ,LB),nTm.sd=function(n){var t;return this.a||(t=new wn,this.b.a.Nb(new fd(t)),LV(),E_(t,this.c),this.a=new x6(t,16)),Hg(this.a,n)},nTm.a=null,AY(nlF,"StreamImpl/5",1087),nrr(1088,1,nh1,fd),nTm.td=function(n){IE(this.a,n)},AY(nlF,"StreamImpl/5/2methodref$add$Type",1088),nrr(722,540,nhZ,_Y),nTm.sd=function(n){for(this.b=!1;!this.b&&this.c.sd(new mR(this,n)););return this.b},nTm.b=!1,AY(nlF,"StreamImpl/FilterSpliterator",722),nrr(1079,1,nh1,mR),nTm.td=function(n){var t,e;t=this.a,e=this.b,t.a.Mb(n)&&(t.b=!0,e.td(n))},AY(nlF,"StreamImpl/FilterSpliterator/lambda$0$Type",1079),nrr(1075,721,nhZ,FE),nTm.ye=function(n){var t;return t=Im(n,182),this.b.sd(new mK(this,t))},AY(nlF,"StreamImpl/MapToDoubleSpliterator",1075),nrr(1078,1,nh1,mK),nTm.td=function(n){!function(n,t,e){t.we(n.a.Fe(e))}(this.a,this.b,n)},AY(nlF,"StreamImpl/MapToDoubleSpliterator/lambda$0$Type",1078),nrr(1074,720,nhZ,FT),nTm.ye=function(n){var t;return t=Im(n,196),this.b.sd(new mF(this,t))},AY(nlF,"StreamImpl/MapToIntSpliterator",1074),nrr(1077,1,nh1,mF),nTm.td=function(n){!function(n,t,e){t.ud(n.a.Ge(e))}(this.a,this.b,n)},AY(nlF,"StreamImpl/MapToIntSpliterator/lambda$0$Type",1077),nrr(719,540,nhZ,FM),nTm.sd=function(n){return Pk(this,n)},AY(nlF,"StreamImpl/MapToObjSpliterator",719),nrr(1076,1,nh1,m_),nTm.td=function(n){!function(n,t,e){t.td(n.a.Kb(e))}(this.a,this.b,n)},AY(nlF,"StreamImpl/MapToObjSpliterator/lambda$0$Type",1076),nrr(618,1,nh1,nu),nTm.td=function(n){this.a=n},AY(nlF,"StreamImpl/ValueConsumer",618),nrr(1080,1,nh1,no),nTm.td=function(n){vQ()},AY(nlF,"StreamImpl/lambda$0$Type",1080),nrr(1081,1,nh1,ns),nTm.td=function(n){vQ()},AY(nlF,"StreamImpl/lambda$1$Type",1081),nrr(1082,1,{},fg),nTm.Ce=function(n,t){var e;return e=this.a,vQ(),e.a.Od(n,t),n},AY(nlF,"StreamImpl/lambda$4$Type",1082),nrr(1083,1,nh1,mx),nTm.td=function(n){var t,e,i;t=this.b,e=this.a,vQ(),i=e.Ce(t.a,n),t.a=i},AY(nlF,"StreamImpl/lambda$5$Type",1083),nrr(1089,1,nh1,fp),nTm.td=function(n){!function(n,t){var e;try{t.Vd()}catch(t){if(Ti(t=Uu(t),78))e=t,n.c[n.c.length]=e;else throw t.e}}(this.a,Im(n,365))},AY(nlF,"TerminatableStream/lambda$0$Type",1089),nrr(2041,1,{}),nrr(1914,1,{},nh),AY("javaemul.internal","ConsoleLogger",1914),nrr(2038,1,{});var nMX,nMW,nMV,nMQ,nMJ,nMY,nMZ,nM1,nM0,nM2,nM3,nM4,nM5,nM6,nM8,nM9=0,nM7=0;nrr(1768,1,nh1,nf),nTm.td=function(n){Im(n,308)},AY(nlU,"BowyerWatsonTriangulation/lambda$0$Type",1768),nrr(1769,1,nh1,fv),nTm.td=function(n){Gz(this.a,Im(n,308).e)},AY(nlU,"BowyerWatsonTriangulation/lambda$1$Type",1769),nrr(1770,1,nh1,nl),nTm.td=function(n){Im(n,168)},AY(nlU,"BowyerWatsonTriangulation/lambda$2$Type",1770),nrr(1765,1,nlX,fm),nTm.ue=function(n,t){var e,i,r;return e=this.a,i=Im(n,168),r=Im(t,168),O_(Ss(jh(Nj(e.f,i))),Ss(jh(Nj(e.f,r))))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nlU,"NaiveMinST/lambda$0$Type",1765),nrr(499,1,{},fy),AY(nlU,"NodeMicroLayout",499),nrr(168,1,{168:1},mB),nTm.Fb=function(n){var t;return!!Ti(n,168)&&(t=Im(n,168),$5(this.a,t.a)&&$5(this.b,t.b)||$5(this.a,t.b)&&$5(this.b,t.a))},nTm.Hb=function(){return EE(this.a)+EE(this.b)};var nSn=AY(nlU,"TEdge",168);nrr(308,1,{308:1},nuV),nTm.Fb=function(n){var t;return!!Ti(n,308)&&BP(this,(t=Im(n,308)).a)&&BP(this,t.b)&&BP(this,t.c)},nTm.Hb=function(){return EE(this.a)+EE(this.b)+EE(this.c)},AY(nlU,"TTriangle",308),nrr(221,1,{221:1},EX),AY(nlU,"Tree",221),nrr(1254,1,{},xS),AY(nlW,"Scanline",1254);var nSt=Cw(nlW,nlV);nrr(1692,1,{},HS),AY(nlQ,"CGraph",1692),nrr(307,1,{307:1},xu),nTm.b=0,nTm.c=0,nTm.d=0,nTm.g=0,nTm.i=0,nTm.k=nla,AY(nlQ,"CGroup",307),nrr(815,1,{},wQ),AY(nlQ,"CGroup/CGroupBuilder",815),nrr(57,1,{57:1},SV),nTm.Ib=function(){return this.j?Sh(this.j.Kb(this)):(Su(nSe),nSe.o+"@"+(T9(this)>>>0).toString(16))},nTm.f=0,nTm.i=nla;var nSe=AY(nlQ,"CNode",57);nrr(814,1,{},wJ),AY(nlQ,"CNode/CNodeBuilder",814),nrr(1525,1,{},nb),nTm.Oe=function(n,t){return 0},nTm.Pe=function(n,t){return 0},AY(nlQ,nlY,1525),nrr(1790,1,{},nw),nTm.Le=function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d;for(s=nlc,i=new h1(n.a.b);i.a<i.c.c.length;)t=Im(De(i),57),s=nTv.Math.min(s,t.a.j.d.c+t.b.a);for(b=new vK,a=new h1(n.a.a);a.a<a.c.c.length;)(c=Im(De(a),307)).k=s,0==c.g&&KL(b,c,b.c.b,b.c);for(;0!=b.b;){for(r=(c=Im(0==b.b?null:(MK(0!=b.b),HK(b,b.a.a)),307)).j.d.c,l=c.a.a.ec().Kc();l.Ob();)h=Im(l.Pb(),57),d=c.k+h.b.a,!function(n,t,e){var i;for(i=t.a.a.ec().Kc();i.Ob();)if(Ne(n,Im(i.Pb(),57),e))return!0;return!1}(n,c,n.d)||h.d.c<d?h.i=d:h.i=h.d.c;for(r-=c.j.i,c.b+=r,n.d==(W2(),nXC)||n.d==nXP?c.c+=r:c.c-=r,f=c.a.a.ec().Kc();f.Ob();)for(o=(h=Im(f.Pb(),57)).c.Kc();o.Ob();)u=Im(o.Pb(),57),w=Ei(n.d)?n.g.Oe(h,u):n.g.Pe(h,u),u.a.k=nTv.Math.max(u.a.k,h.i+h.d.b+w-u.b.a),Ne(n,u,n.d)&&(u.a.k=nTv.Math.max(u.a.k,u.d.c-u.b.a)),--u.a.g,0==u.a.g&&I2(b,u.a)}for(e=new h1(n.a.b);e.a<e.c.c.length;)(t=Im(De(e),57)).d.c=t.i},AY(nlQ,"LongestPathCompaction",1790),nrr(1690,1,{},niB),nTm.e=!1;var nSi=AY(nlQ,nl3,1690);nrr(1691,1,nh1,fk),nTm.td=function(n){var t,e;t=this.a,e=Im(n,46),t.d==(W2(),nXI)||t.d==nXA?Im(e.a,57).c.Fc(Im(e.b,57)):Im(e.b,57).c.Fc(Im(e.a,57))},AY(nlQ,nl4,1691),nrr(1791,1,{},nd),nTm.Me=function(n){var t,e,i,r,c,a,u,o;for(t=new h1(n.a.b);t.a<t.c.c.length;)Im(De(t),57).c.$b();for(i=new h1(n.a.b);i.a<i.c.c.length;)for(e=Im(De(i),57),c=new h1(n.a.b);c.a<c.c.c.length;)e!=(r=Im(De(c),57))&&(!e.a||e.a!=r.a)&&(a=Ei(n.d)?n.g.Pe(e,r):n.g.Oe(e,r),(r.d.c>e.d.c||e.d.c==r.d.c&&e.d.b<r.d.b)&&(u=r.d.d+r.d.a+a,o=e.d.d,Ex(),Ex(),qR(nfg),(nTv.Math.abs(u-o)<=nfg||u==o||isNaN(u)&&isNaN(o)?0:u<o?-1:u>o?1:j1(isNaN(u),isNaN(o)))>0)&&Q7(r.d.d,e.d.d+e.d.a+a)&&e.c.Fc(r))},AY(nlQ,"QuadraticConstraintCalculation",1791),nrr(522,1,{522:1},we),nTm.a=!1,nTm.b=!1,nTm.c=!1,nTm.d=!1,AY(nlQ,nl5,522),nrr(803,1,{},Oa),nTm.Me=function(n){this.c=n,neW(this,new nv)},AY(nlQ,nl6,803),nrr(1718,1,{679:1},Na),nTm.Ke=function(n){var t,e,i;(t=Im(n,464)).a?function(n,t){var e,i,r,c,a;if(!AR(n.b,t.b))throw new gg("Invalid hitboxes for scanline constraint calculation.").e;(Uw(t.b,Im((i=n.b,r=t.b,pl(Q3(i.a,r,!0))),57))||Uw(t.b,Im((c=n.b,a=t.b,pl(Q2(c.a,a,!0))),57)))&&(vI(),t.b),n.a[t.b.f]=Im(Py(n.b,t.b),57),(e=Im(Pm(n.b,t.b),57))&&(n.a[e.f]=t.b)}(this,t):((e=Im(Py(this.b,t.b),57))&&e==this.a[t.b.f]&&e.a&&e.a!=t.b.a&&e.c.Fc(t.b),(i=Im(Pm(this.b,t.b),57))&&this.a[i.f]==t.b&&i.a&&i.a!=t.b.a&&t.b.c.Fc(i),T6(this.b,t.b))},AY(nlQ,nl8,1718),nrr(1719,1,nlX,ng),nTm.ue=function(n,t){var e,i;return e=Im(n,57),i=Im(t,57),Vv(e.d.c+e.d.b/2,i.d.c+i.d.b/2)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nlQ,nl9,1719),nrr(464,1,{464:1},mD),nTm.a=!1,AY(nlQ,nl7,464),nrr(1720,1,nlX,np),nTm.ue=function(n,t){return function(n,t){var e,i,r;if(i=n.b.d.d,n.a||(i+=n.b.d.a),r=t.b.d.d,t.a||(r+=t.b.d.a),0==(e=Vv(i,r))){if(!n.a&&t.a)return -1;if(!t.a&&n.a)return 1}return e}(Im(n,464),Im(t,464))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nlQ,nbn,1720),nrr(1721,1,nbt,nv),nTm.Lb=function(n){return Im(n,57),!0},nTm.Fb=function(n){return this===n},nTm.Mb=function(n){return Im(n,57),!0},AY(nlQ,"ScanlineConstraintCalculator/lambda$1$Type",1721),nrr(428,22,{3:1,35:1,22:1,428:1},mU);var nSr=qE(nbe,"HighLevelSortingCriterion",428,nE2,function(){return JU(),Um(xg(nSr,1),nfh,428,0,[nSS,nSM])},function(n){return JU(),B5((Ku(),nSP),n)});nrr(427,22,{3:1,35:1,22:1,427:1},mX);var nSc=qE(nbe,"LowLevelSortingCriterion",427,nE2,function(){return B7(),Um(xg(nSc,1),nfh,427,0,[nSI,nSC])},function(n){return B7(),B5((Ko(),nSO),n)}),nSa=Cw(nbi,"ILayoutMetaDataProvider");nrr(853,1,nbo,sc),nTm.Qe=function(n){V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nbr),nbs),"Polyomino Traversal Strategy"),"Traversal strategy for trying different candidate positions for polyominoes."),nSR),(neT(),nzO)),nSu),VD((JH(),nzM))))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nbc),nbs),"Polyomino Secondary Sorting Criterion"),"Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion."),nSx),nzO),nSc),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nba),nbs),"Polyomino Primary Sorting Criterion"),"Possible primary sorting criteria for the processing order of polyominoes."),nSL),nzO),nSr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nbu),nbs),"Fill Polyominoes"),"Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area."),(TX(),!0)),nzI),nTt),VD(nzM))))},AY(nbe,"PolyominoOptions",853),nrr(250,22,{3:1,35:1,22:1,250:1},mW);var nSu=qE(nbe,"TraversalStrategy",250,nE2,function(){return nau(),Um(xg(nSu,1),nfh,250,0,[nSU,nSB,nSH,nS_,nSG,nSz,nSq,nSF,nSK])},function(n){return nau(),B5((zY(),nSX),n)});nrr(213,1,{213:1},nm),nTm.Ib=function(){return"NEdge[id="+this.b+" w="+this.g+" d="+this.a+"]"},nTm.a=1,nTm.b=0,nTm.c=0,nTm.f=!1,nTm.g=0;var nSo=AY(nbh,"NEdge",213);nrr(176,1,{},wz),AY(nbh,"NEdge/NEdgeBuilder",176),nrr(653,1,{},wq),AY(nbh,"NGraph",653),nrr(121,1,{121:1},Fk),nTm.c=-1,nTm.d=0,nTm.e=0,nTm.i=-1,nTm.j=!1;var nSs=AY(nbh,"NNode",121);nrr(795,1,nly,wG),nTm.Jc=function(n){KA(this,n)},nTm.Lc=function(){return new CL(null,new x6(this,16))},nTm.ad=function(n){GG(this,n)},nTm.Nc=function(){return new x6(this,16)},nTm.Oc=function(){return new CL(null,new x6(this,16))},nTm.Vc=function(n,t){++this.b,C4(this.a,n,t)},nTm.Fc=function(n){return Mu(this,n)},nTm.Wc=function(n,t){return++this.b,X6(this.a,n,t)},nTm.Gc=function(n){return++this.b,Uf(this.a,n)},nTm.$b=function(){++this.b,this.a.c=_f(nEX,nhA,1,0,5,1)},nTm.Hc=function(n){return -1!=Bb(this.a,n,0)},nTm.Ic=function(n){return Ur(this.a,n)},nTm.Xb=function(n){return CA(this.a,n)},nTm.Xc=function(n){return Bb(this.a,n,0)},nTm.dc=function(){return 0==this.a.c.length},nTm.Kc=function(){return _H(new h1(this.a))},nTm.Yc=function(){throw(new wP).e},nTm.Zc=function(n){throw(new wP).e},nTm.$c=function(n){return++this.b,Ff(this.a,n)},nTm.Mc=function(n){return Mo(this,n)},nTm._c=function(n,t){return++this.b,KN(this.a,n,t)},nTm.gc=function(){return this.a.c.length},nTm.bd=function(n,t){return new x2(this.a,n,t)},nTm.Pc=function(){return MS(this.a)},nTm.Qc=function(n){return Jx(this.a,n)},nTm.b=0,AY(nbh,"NNode/ChangeAwareArrayList",795),nrr(269,1,{},wU),AY(nbh,"NNode/NNodeBuilder",269),nrr(1630,1,{},ny),nTm.a=!1,nTm.f=nhM,nTm.j=0,AY(nbh,"NetworkSimplex",1630),nrr(1294,1,nh1,fj),nTm.td=function(n){nsM(this.a,Im(n,680),!0,!1)},AY(nbl,"NodeLabelAndSizeCalculator/lambda$0$Type",1294),nrr(558,1,{},fE),nTm.b=!0,nTm.c=!0,nTm.d=!0,nTm.e=!0,AY(nbl,"NodeMarginCalculator",558),nrr(212,1,{212:1}),nTm.j=!1,nTm.k=!1;var nSh=AY(nbb,"Cell",212);nrr(124,212,{124:1,212:1},S4),nTm.Re=function(){return Cn(this)},nTm.Se=function(){var n;return n=this.n,this.a.a+n.b+n.c},AY(nbb,"AtomicCell",124),nrr(232,22,{3:1,35:1,22:1,232:1},mV);var nSf=qE(nbb,"ContainerArea",232,nE2,function(){return HB(),Um(xg(nSf,1),nfh,232,0,[nSW,nSV,nSQ])},function(n){return HB(),B5((FG(),nSJ),n)});nrr(326,212,nbd),AY(nbb,"ContainerCell",326),nrr(1473,326,nbd,QO),nTm.Re=function(){var n;return n=0,this.e?this.b?n=this.b.b:this.a[1][1]&&(n=this.a[1][1].Re()):n=Qr(this,Zu(this,!0)),n>0?n+this.n.d+this.n.a:0},nTm.Se=function(){var n,t,e,i,r;if(r=0,this.e)this.b?r=this.b.a:this.a[1][1]&&(r=this.a[1][1].Se());else if(this.g)r=Qr(this,Z7(this,null,!0));else for(HB(),t=Um(xg(nSf,1),nfh,232,0,[nSW,nSV,nSQ]),e=0,i=t.length;e<i;++e)n=t[e],r=nTv.Math.max(r,Qr(this,Z7(this,n,!0)));return r>0?r+this.n.b+this.n.c:0},nTm.Te=function(){var n,t,e,i,r;if(this.g)for(n=Z7(this,null,!1),HB(),e=Um(xg(nSf,1),nfh,232,0,[nSW,nSV,nSQ]),i=0,r=e.length;i<r;++i)ncq(this,t=e[i],n);else for(HB(),e=Um(xg(nSf,1),nfh,232,0,[nSW,nSV,nSQ]),i=0,r=e.length;i<r;++i)n=Z7(this,t=e[i],!1),ncq(this,t,n)},nTm.Ue=function(){var n,t,e,i;t=this.i,n=this.n,i=Zu(this,!1),K9(this,(HB(),nSW),t.d+n.d,i),K9(this,nSQ,t.d+t.a-n.a-i[2],i),e=t.a-n.d-n.a,i[0]>0&&(i[0]+=this.d,e-=i[0]),i[2]>0&&(i[2]+=this.d,e-=i[2]),this.c.a=nTv.Math.max(0,e),this.c.d=t.d+n.d+(this.c.a-e)/2,i[1]=nTv.Math.max(i[1],e),K9(this,nSV,t.d+n.d+i[0]-(i[1]-e)/2,i)},nTm.b=null,nTm.d=0,nTm.e=!1,nTm.f=!1,nTm.g=!1;var nSl=0,nSb=0;AY(nbb,"GridContainerCell",1473),nrr(461,22,{3:1,35:1,22:1,461:1},mQ);var nSw=qE(nbb,"HorizontalLabelAlignment",461,nE2,function(){return _1(),Um(xg(nSw,1),nfh,461,0,[nSZ,nSY,nS1])},function(n){return _1(),B5((Fz(),nS0),n)});nrr(306,212,{212:1,306:1},NB,HI,NI),nTm.Re=function(){return Ct(this)},nTm.Se=function(){return Ce(this)},nTm.a=0,nTm.c=!1;var nSd=AY(nbb,"LabelCell",306);nrr(244,326,{212:1,326:1,244:1},JM),nTm.Re=function(){return niw(this)},nTm.Se=function(){return nid(this)},nTm.Te=function(){nu_(this)},nTm.Ue=function(){nuG(this)},nTm.b=0,nTm.c=0,nTm.d=!1,AY(nbb,"StripContainerCell",244),nrr(1626,1,nfw,nk),nTm.Mb=function(n){var t;return!!(t=Im(n,212))&&t.k},AY(nbb,"StripContainerCell/lambda$0$Type",1626),nrr(1627,1,{},nj),nTm.Fe=function(n){return Im(n,212).Se()},AY(nbb,"StripContainerCell/lambda$1$Type",1627),nrr(1628,1,nfw,nE),nTm.Mb=function(n){var t;return!!(t=Im(n,212))&&t.j},AY(nbb,"StripContainerCell/lambda$2$Type",1628),nrr(1629,1,{},nT),nTm.Fe=function(n){return Im(n,212).Re()},AY(nbb,"StripContainerCell/lambda$3$Type",1629),nrr(462,22,{3:1,35:1,22:1,462:1},mJ);var nSg=qE(nbb,"VerticalLabelAlignment",462,nE2,function(){return B$(),Um(xg(nSg,1),nfh,462,0,[nS4,nS3,nS2])},function(n){return B$(),B5((FU(),nS5),n)});nrr(789,1,{},nsI),nTm.c=0,nTm.d=0,nTm.k=0,nTm.s=0,nTm.t=0,nTm.v=!1,nTm.w=0,nTm.D=!1,AY(nbk,"NodeContext",789),nrr(1471,1,nlX,nM),nTm.ue=function(n,t){var e,i;return e=Im(n,61),i=Im(t,61),EG(e.g,i.g)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nbk,"NodeContext/0methodref$comparePortSides$Type",1471),nrr(1472,1,nlX,nS),nTm.ue=function(n,t){return function(n,t){var e,i,r;if(i=n.b.Hf(),r=t.b.Hf(),0!=(e=EG(i.g,r.g)))return e;switch(n.b.Hf().g){case 1:case 2:return EG(n.b.sf(),t.b.sf());case 3:case 4:return EG(t.b.sf(),n.b.sf())}return 0}(Im(n,111),Im(t,111))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nbk,"NodeContext/1methodref$comparePortContexts$Type",1472),nrr(159,22,{3:1,35:1,22:1,159:1},G6);var nSp=qE(nbk,"NodeLabelLocation",159,nE2,JF,function(n){return nhf(),B5((jF(),nPv),n)});nrr(111,1,{111:1},niq),nTm.a=!1,AY(nbk,"PortContext",111),nrr(1476,1,nh1,nP),nTm.td=function(n){pK(Im(n,306))},AY(nbT,nbM,1476),nrr(1477,1,nfw,nI),nTm.Mb=function(n){return!!Im(n,111).c},AY(nbT,nbS,1477),nrr(1478,1,nh1,nC),nTm.td=function(n){pK(Im(n,111).c)},AY(nbT,"LabelPlacer/lambda$2$Type",1478),nrr(1475,1,nh1,nA),nTm.td=function(n){SE(),function(n){n.b.tf(n.e)}(Im(n,111))},AY(nbT,"NodeLabelAndSizeUtilities/lambda$0$Type",1475),nrr(790,1,nh1,PZ),nTm.td=function(n){var t,e,i,r,c;t=this.b,e=this.c,i=this.a,(c=function(n){var t,e,i,r;for(nhf(),e=JF(),i=0,r=e.length;i<r;++i)if(-1!=Bb((t=e[i]).a,n,0))return t;return nPp}((r=Im(n,181)).Xe((nha(),nUx))?Im(r.We(nUx),21):t.j))==(nhf(),nPp)||e&&!Jw(c)||nec(function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;if(!(r=Im($6(n.i,t),306))){if(r=new HI(n.d,t,e),C2(n.i,t,r),Jw(t))a=n.a,u=t.c,o=t.b,s=r,$t(a.a[u.g],o.g,s);else switch(c=function(n){switch(n.g){case 0:case 1:case 2:return nsR(),nW$;case 3:case 4:case 5:return nsR(),nWV;case 6:case 7:case 8:return nsR(),nWJ;case 9:case 10:case 11:return nsR(),nWA;default:return nsR(),nWQ}}(t),i=Im($6(n.p,c),244),c.g){case 1:case 3:r.j=!0,h=t.b,f=r,i.a[h.g]=f;break;case 4:case 2:r.k=!0,l=t.c,b=r,i.a[l.g]=b}}return r}(t,c,i),r)},nTm.a=!1,nTm.c=!1,AY(nbT,"NodeLabelCellCreator/lambda$0$Type",790),nrr(1474,1,nh1,fT),nTm.td=function(n){var t,e;t=this.a,e=Im(n,181),nec(t.c,e)},AY(nbT,"PortContextCreator/lambda$0$Type",1474),nrr(1829,1,{},n$),AY(nbI,"GreedyRectangleStripOverlapRemover",1829),nrr(1830,1,nlX,nO),nTm.ue=function(n,t){var e,i;return e=Im(n,222),i=Im(t,222),Vv(e.c.d,i.c.d)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nbI,"GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type",1830),nrr(1786,1,{},w2),nTm.a=5,nTm.e=0,AY(nbI,"RectangleStripOverlapRemover",1786),nrr(1787,1,nlX,nN),nTm.ue=function(n,t){var e,i;return e=Im(n,222),i=Im(t,222),Vv(e.c.c,i.c.c)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nbI,"RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type",1787),nrr(1789,1,nlX,nx),nTm.ue=function(n,t){var e,i;return e=Im(n,222),i=Im(t,222),Vv(e.c.c+e.c.b,i.c.c+i.c.b)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nbI,"RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type",1789),nrr(406,22,{3:1,35:1,22:1,406:1},mY);var nSv=qE(nbI,"RectangleStripOverlapRemover/OverlapRemovalDirection",406,nE2,function(){return zZ(),Um(xg(nSv,1),nfh,406,0,[nPT,nPk,nPj,nPE])},function(n){return zZ(),B5((_4(),nPM),n)});nrr(222,1,{222:1},Or),AY(nbI,"RectangleStripOverlapRemover/RectangleNode",222),nrr(1788,1,nh1,fM),nTm.td=function(n){!function(n,t){var e,i;switch(i=t.c,e=t.a,n.b.g){case 0:e.d=n.e-i.a-i.d;break;case 1:e.d+=n.e;break;case 2:e.c=n.e-i.a-i.d;break;case 3:e.c=n.e+i.d}}(this.a,Im(n,222))},AY(nbI,"RectangleStripOverlapRemover/lambda$1$Type",1788),nrr(1304,1,nlX,nD),nTm.ue=function(n,t){var e,i,r,c,a,u;return e=Im(n,167),i=Im(t,167),(r=new nR,1==(a=2==(a=(c=Im(Kc(Lw(new CL(null,new x6(e.f,16)),r),BT(new V,new Q,new ni,new nr,Um(xg(nMz,1),nfh,132,0,[(XW(),nM3),nM2]))),21)).gc())?1:0)&&jp(QU(Im(Kc(Lb(c.Lc(),new nK),zE(Jy(0),new nt)),162).a,2),0)&&(a=0),1==(u=2==(u=(c=Im(Kc(Lw(new CL(null,new x6(i.f,16)),r),BT(new V,new Q,new ni,new nr,Um(xg(nMz,1),nfh,132,0,[nM3,nM2]))),21)).gc())?1:0)&&jp(QU(Im(Kc(Lb(c.Lc(),new nF),zE(Jy(0),new nt)),162).a,2),0)&&(u=0),a<u)?-1:a==u?0:1},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nbO,"PolyominoCompactor/CornerCasesGreaterThanRestComparator",1304),nrr(1307,1,{},nR),nTm.Kb=function(n){return Im(n,324).a},AY(nbO,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type",1307),nrr(1308,1,nfw,nK),nTm.Mb=function(n){return Im(n,323).a},AY(nbO,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type",1308),nrr(1309,1,nfw,nF),nTm.Mb=function(n){return Im(n,323).a},AY(nbO,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type",1309),nrr(1302,1,nlX,n_),nTm.ue=function(n,t){var e,i,r,c,a;return e=Im(n,167),i=Im(t,167),(r=new nL,(c=Im(Kc(Lw(new CL(null,new x6(e.f,16)),r),BT(new V,new Q,new ni,new nr,Um(xg(nMz,1),nfh,132,0,[(XW(),nM3),nM2]))),21).gc())<(a=Im(Kc(Lw(new CL(null,new x6(i.f,16)),r),BT(new V,new Q,new ni,new nr,Um(xg(nMz,1),nfh,132,0,[nM3,nM2]))),21).gc()))?-1:c==a?0:1},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nbO,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator",1302),nrr(1305,1,{},nL),nTm.Kb=function(n){return Im(n,324).a},AY(nbO,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type",1305),nrr(767,1,nlX,nB),nTm.ue=function(n,t){var e,i,r,c;return e=Im(n,167),i=Im(t,167),(r=e.f.c.length)<(c=i.f.c.length)?-1:r==c?0:1},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nbO,"PolyominoCompactor/MinNumOfExtensionsComparator",767),nrr(1300,1,nlX,nH),nTm.ue=function(n,t){var e,i,r,c;return e=Im(n,321),i=Im(t,321),(r=e.o+e.p)<(c=i.o+i.p)?-1:r==c?0:1},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nbO,"PolyominoCompactor/MinPerimeterComparator",1300),nrr(1301,1,nlX,nq),nTm.ue=function(n,t){var e,i,r,c,a,u;return e=Im(n,321),i=Im(t,321),((u=e.o)<(r=e.p)?u*=u:r*=r,c=u+r,(u=i.o)<(r=i.p)?u*=u:r*=r,c<(a=u+r))?-1:c==a?0:1},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nbO,"PolyominoCompactor/MinPerimeterComparatorWithShape",1301),nrr(1303,1,nlX,nG),nTm.ue=function(n,t){var e,i,r,c,a;return e=Im(n,167),i=Im(t,167),(r=new nz,(c=1==(c=Im(Kc(Lw(new CL(null,new x6(e.f,16)),r),BT(new V,new Q,new ni,new nr,Um(xg(nMz,1),nfh,132,0,[(XW(),nM3),nM2]))),21).gc())?1:0)<(a=1==(a=Im(Kc(Lw(new CL(null,new x6(i.f,16)),r),BT(new V,new Q,new ni,new nr,Um(xg(nMz,1),nfh,132,0,[nM3,nM2]))),21).gc())?1:0))?-1:c==a?0:1},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nbO,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator",1303),nrr(1306,1,{},nz),nTm.Kb=function(n){return Im(n,324).a},AY(nbO,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type",1306),nrr(777,1,{},mH),nTm.Ce=function(n,t){var e,i;return e=Im(n,46),(i=Im(t,167)).f.c.length>0?AC(this.a,e,i):AC(this.b,e,i)},AY(nbO,"SuccessorCombination",777),nrr(644,1,{},nU),nTm.Ce=function(n,t){var e,i,r,c,a,u;return e=Im(n,46),Im(t,167),a=Im(e.a,19).a,u=Im(e.b,19).a,r=a,c=u,i=nTv.Math.max(nTv.Math.abs(a),nTv.Math.abs(u)),a<=0&&a==u?(r=0,c=u-1):a==-i&&u!=i?(r=u,c=a,u>=0&&++r):(r=-u,c=a),new k_(Va(r),Va(c))},AY(nbO,"SuccessorJitter",644),nrr(643,1,{},nX),nTm.Ce=function(n,t){var e;return function(n){var t,e;if(t=Im(n.a,19).a,e=Im(n.b,19).a,t>=0){if(t==e)return new k_(Va(-t-1),Va(-t-1));if(t==-e)return new k_(Va(-t),Va(e+1))}return nTv.Math.abs(t)>nTv.Math.abs(e)?t<0?new k_(Va(-t),Va(e)):new k_(Va(-t),Va(e+1)):new k_(Va(t+1),Va(e))}((e=Im(n,46),Im(t,167),e))},AY(nbO,"SuccessorLineByLine",643),nrr(568,1,{},nW),nTm.Ce=function(n,t){var e,i,r,c,a;return e=Im(n,46),Im(t,167),c=Im(e.a,19).a,a=Im(e.b,19).a,i=c,r=a,0==c&&0==a?r-=1:-1==c&&a<=0?(i=0,r-=2):c<=0&&a>0?(i-=1,r-=1):c>=0&&a<0?(i+=1,r+=1):c>0&&a>=0?(i-=1,r+=1):(i+=1,r-=1),new k_(Va(i),Va(r))},AY(nbO,"SuccessorManhattan",568),nrr(1356,1,{},nV),nTm.Ce=function(n,t){var e,i,r,c;return e=Im(n,46),Im(t,167),(r=Im(e.a,19).a,c=Im(e.b,19).a,i=nTv.Math.max(nTv.Math.abs(r),nTv.Math.abs(c)),r<i&&c==-i)?new k_(Va(r+1),Va(c)):r==i&&c<i?new k_(Va(r),Va(c+1)):r>=-i&&c==i?new k_(Va(r-1),Va(c)):new k_(Va(r),Va(c-1))},AY(nbO,"SuccessorMaxNormWindingInMathPosSense",1356),nrr(400,1,{},fS),nTm.Ce=function(n,t){return AC(this,n,t)},nTm.c=!1,nTm.d=!1,nTm.e=!1,nTm.f=!1,AY(nbO,"SuccessorQuadrantsGeneric",400),nrr(1357,1,{},nQ),nTm.Kb=function(n){return Im(n,324).a},AY(nbO,"SuccessorQuadrantsGeneric/lambda$0$Type",1357),nrr(323,22,{3:1,35:1,22:1,323:1},mz),nTm.a=!1;var nSm=qE(nbx,nbD,323,nE2,function(){return Yr(),Um(xg(nSm,1),nfh,323,0,[nPP,nPS,nPI,nPC])},function(n){return Yr(),B5((_5(),nPO),n)});nrr(1298,1,{}),nTm.Ib=function(){var n,t,e,i,r,c,a,u;for(r=0,e=" ",n=Va(0);r<this.o;r++)e+=""+n.a,n=Va((a=n.a)>8?0:a+1);for(e+="\n",n=Va(0),c=0;c<this.p;c++){for(e+=""+n.a,n=Va((u=n.a)>8?0:u+1),i=0;i<this.o;i++)0==WM(t=Gb(this,i,c),0)?e+="_":0==WM(t,1)?e+="X":e+="0";e+="\n"}return MT(e,0,e.length-1)},nTm.o=0,nTm.p=0,AY(nbx,"TwoBitGrid",1298),nrr(321,1298,{321:1},QA),nTm.j=0,nTm.k=0,AY(nbx,"PlanarGrid",321),nrr(167,321,{321:1,167:1}),nTm.g=0,nTm.i=0,AY(nbx,"Polyomino",167);var nSy=Cw(nbB,nbH);nrr(134,1,nbq,nJ),nTm.Ye=function(n,t){return Uz(this,n,t)},nTm.Ve=function(){return CD(this)},nTm.We=function(n){return ntP(this,n)},nTm.Xe=function(n){return MH(this,n)},AY(nbB,"MapPropertyHolder",134),nrr(1299,134,nbq,ncP),AY(nbx,"Polyominoes",1299);var nSk,nSj,nSE,nST,nSM,nSS,nSP,nSI,nSC,nSO,nSA,nS$,nSL,nSN,nSx,nSD,nSR,nSK,nSF,nS_,nSB,nSH,nSq,nSG,nSz,nSU,nSX,nSW,nSV,nSQ,nSJ,nSY,nSZ,nS1,nS0,nS2,nS3,nS4,nS5,nS6,nS8,nS9,nS7,nPn,nPt,nPe,nPi,nPr,nPc,nPa,nPu,nPo,nPs,nPh,nPf,nPl,nPb,nPw,nPd,nPg,nPp,nPv,nPm,nPy,nPk,nPj,nPE,nPT,nPM,nPS,nPP,nPI,nPC,nPO,nPA,nP$,nPL=!1;nrr(1766,1,nh1,nY),nTm.td=function(n){noR(Im(n,221))},AY(nbG,"DepthFirstCompaction/0methodref$compactTree$Type",1766),nrr(810,1,nh1,fP),nTm.td=function(n){var t,e;t=this.a,e=Im(n,221),Oi(Im(e.b,65),t),HR(e.a,new fP(t))},AY(nbG,"DepthFirstCompaction/lambda$1$Type",810),nrr(1767,1,nh1,P0),nTm.td=function(n){var t,e,i,r;t=this.a,e=this.b,i=this.c,r=Im(n,221),Im(i.b,65),Im(i.b,65),Im(r.b,65),Im(r.b,65).c.b,_l(r,e,t)},AY(nbG,"DepthFirstCompaction/lambda$2$Type",1767),nrr(65,1,{65:1},xI),AY(nbG,"Node",65),nrr(1250,1,{},EW),AY(nbG,"ScanlineOverlapCheck",1250),nrr(1251,1,{679:1},Nc),nTm.Ke=function(n){var t;(t=Im(n,440)).a?function(n,t){var e,i,r,c,a,u;if(!AR(n.a,t.b))throw new gg("Invalid hitboxes for scanline overlap calculation.").e;for(r=!1,i=new hU(new S5(new Mc(new hz(n.a.a).a).b));mE(i.a.a);)if(e=Im(MA(i.a).cd(),65),(c=t.b)&&e&&c!=e&&0>V2(c.b.c,e.b.c+e.b.b)&&0>V2(e.b.c,c.b.c+c.b.b))a=n.b.a,u=t.b,Av(a.a,new mB(u.a,e.a)),r=!0;else if(r)break}(this,t):T6(this.a,t.b)},AY(nbG,"ScanlineOverlapCheck/OverlapsScanlineHandler",1251),nrr(1252,1,nlX,nZ),nTm.ue=function(n,t){var e,i,r;return e=Im(n,65),i=Im(t,65),0!=(r=Vv(e.b.c,i.b.c))||0!=(r=Vv(e.a.a,i.a.a))?r:Vv(e.a.b,i.a.b)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nbG,"ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type",1252),nrr(440,1,{440:1},mq),nTm.a=!1,AY(nbG,"ScanlineOverlapCheck/Timestamp",440),nrr(1253,1,nlX,n1),nTm.ue=function(n,t){return function(n,t){var e,i,r;if(i=n.b.b.d,n.a||(i+=n.b.b.a),r=t.b.b.d,t.a||(r+=t.b.b.a),0==(e=Vv(i,r))){if(!n.a&&t.a)return -1;if(!t.a&&n.a)return 1}return e}(Im(n,440),Im(t,440))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nbG,"ScanlineOverlapCheck/lambda$0$Type",1253),nrr(550,1,{},n0),AY(nbz,"SVGImage",550),nrr(324,1,{324:1},P2),nTm.Ib=function(){return"("+this.a+nhC+this.b+nhC+this.c+")"},AY(nbz,"UniqueTriple",324),nrr(209,1,nbU),AY(nbX,"AbstractLayoutProvider",209),nrr(1132,209,nbU,n2),nTm.Ze=function(n,t){var e,i,r,c,a,u;(ntc(t,nbW,1),this.a=gy(Ss(nrM(n,(J2(),nOw)))),_u(n,nOr)&&(i=Sh(nrM(n,nOr)),(e=naA(qK(),i))&&Im(N$(e.f),209).Ze(n,zt(t,1))),r=new R1(this.a),this.b=function(n,t){var e,i,r,c,a,u,o,h,f,l,b,w,d,g,p,v,m,y,k;for(n.e=t,u=function(n){var t,e,i,r;for(LW(),nOp=new wn,nOg=new wt,nOd=new wn,n.a||(n.a=new An(nCF,n,10,11)),function(n){var t,e,i,r,c,a,u,o,h,f;for(t=new wt,a=new Td(n);a.e!=a.i.gc();){for(c=Im(J1(a),33),e=new w_,$J(nOg,c,e),f=new n5,i=Im(Kc(new CL(null,new A$(new OM(TD(nrY(c).a.Kc(),new s)))),C8(f,_x(new B,new _,new ne,Um(xg(nMz,1),nfh,132,0,[(XW(),nM2)])))),83),q$(e,Im(i.xc((TX(),!0)),14),new n6),r=Im(Kc(Lb(Im(i.xc(!1),15).Lc(),new n8),_x(new B,new _,new ne,Um(xg(nMz,1),nfh,132,0,[nM2]))),15).Kc();r.Ob();)(h=ntN(Im(r.Pb(),79)))&&((u=Im(jh(Nj(t.f,h)),21))||(u=ncN(h),neQ(t.f,h,u)),Gz(e,u));for(i=Im(Kc(new CL(null,new A$(new OM(TD(nrZ(c).a.Kc(),new s)))),C8(f,_x(new B,new _,new ne,Um(xg(nMz,1),nfh,132,0,[nM2])))),83),q$(e,Im(i.xc(!0),14),new n9),o=Im(Kc(Lb(Im(i.xc(!1),15).Lc(),new n7),_x(new B,new _,new ne,Um(xg(nMz,1),nfh,132,0,[nM2]))),15).Kc();o.Ob();)(h=ntx(Im(o.Pb(),79)))&&((u=Im(jh(Nj(t.f,h)),21))||(u=ncN(h),neQ(t.f,h,u)),Gz(e,u))}}(t=n.a),r=new Td(t);r.e!=r.i.gc();)i=Im(J1(r),33),-1==Bb(nOp,i,0)&&(e=new wn,IE(nOd,e),function n(t,e){var i,r,c;if(IE(nOp,t),e.Fc(t),i=Im($a(nOg,t),21))for(c=i.Kc();c.Ob();)r=Im(c.Pb(),33),-1!=Bb(nOp,r,0)||n(r,e)}(i,e));return nOd}(t),y=new wn,i=new h1(u);i.a<i.c.c.length;){for(e=Im(De(i),15),k=new wn,y.c[y.c.length]=k,o=new w_,b=e.Kc();b.Ob();){for(c=naL(n,l=Im(b.Pb(),33),!0,0,0),k.c[k.c.length]=c,new kp(w=l.i,d=l.j),l.n||(l.n=new An(nCK,l,1,7)),f=new Td(l.n);f.e!=f.i.gc();)r=naL(n,Im(J1(f),137),!1,w,d),k.c[k.c.length]=r;for(l.c||(l.c=new An(nC_,l,9,9)),p=new Td(l.c);p.e!=p.i.gc();)for(a=naL(n,g=Im(J1(p),118),!1,w,d),k.c[k.c.length]=a,v=g.i+w,m=g.j+d,g.n||(g.n=new An(nCK,g,1,7)),h=new Td(g.n);h.e!=h.i.gc();)r=naL(n,Im(J1(h),137),!1,v,m),k.c[k.c.length]=r;Gz(o,L9(qO(Um(xg(nEJ,1),nhA,20,0,[nrZ(l),nrY(l)]))))}!function(n,t,e){var i,r;for(r=t.a.ec().Kc();r.Ob();)i=Im(r.Pb(),79),Im($a(n.b,i),266)||(xt(ntL(i))==xt(ntD(i))?function(n,t,e){var i,r,c;for(z5(c=new nrf(nht(nei(ncX(t,!1,!1)),gy(Ss(nrM(t,(J2(),nOo))))+n.a)),t),$J(n.b,t,c),e.c[e.c.length]=c,t.n||(t.n=new An(nCK,t,1,7)),r=new Td(t.n);r.e!=r.i.gc();)i=naL(n,Im(J1(r),137),!0,0,0),e.c[e.c.length]=i;return c}(n,i,e):ntL(i)==xt(ntD(i))?null==$a(n.c,i)&&null!=$a(n.b,ntD(i))&&nsd(n,i,e,!1):null==$a(n.d,i)&&null!=$a(n.b,ntL(i))&&nsd(n,i,e,!0))}(n,o,k)}return n.f=new pr(y),z5(n.f,t),n.f}(r,n),0===Im(nrM(n,(XV(),nC7)),481).g)?(c=new n3,a=this.b,c.b=a,c.g=new wn,u=function(n){var t,e,i,r,c,a,u,o,s,h,f;for(h=0,s=0,u=(r=n.a).a.gc(),i=r.a.ec().Kc();i.Ob();)(e=Im(i.Pb(),561)).b&&nou(e),h+=(f=(t=e.a).a)+(a=t.b),s+=f*a;return(o=nTv.Math.sqrt(400*u*s-4*s+h*h)+h,0==(c=2*(100*u-1)))?o:o/c}(c.b),c.e=u,c.f=u,c.c=gm(So(ntP(c.b,(nnt(),nSA)))),c.a=Ss(ntP(c.b,(nha(),nUr))),null==c.a&&(c.a=1),gy(c.a)>1?c.e*=gy(c.a):c.f/=gy(c.a),function(n){var t,e;for(t=n.b.a.a.ec().Kc();t.Ob();)e=new nrU(Im(t.Pb(),561),n.e,n.f),IE(n.g,e)}(c),function(n){var t,e;for(t=new h1(n.g);t.a<t.c.c.length;)Im(De(t),562);(function(n){var t,e,i,r,c,a,u,o;switch((u=n.b,t=n.a,0===Im(ntP(n,(nnt(),nSN)),427).g)?E_(u,new h6(new nH)):E_(u,new h6(new nq)),1===Im(ntP(n,nS$),428).g?(E_(u,new nB),E_(u,new nG),E_(u,new nD)):(E_(u,new nB),E_(u,new n_)),Im(ntP(n,nSD),250).g){case 0:o=new nV;break;case 1:o=new nX;break;case 2:o=new nW;break;case 3:o=new nU;break;case 5:o=new fS(new nW);break;case 4:o=new fS(new nX);break;case 7:o=new mH(new fS(new nX),new fS(new nW));break;case 8:o=new mH(new fS(new nU),new fS(new nW));break;default:o=new fS(new nU)}for(a=new h1(u);a.a<a.c.c.length;){for(c=Im(De(a),167),r=0,e=new k_(Va(i=0),Va(r));function(n,t,e,i){var r,c,a,u,o,s,h;if(function(n,t,e,i){var r,c,a,u,o,s;for(r=0;r<t.o;r++)for(a=0,c=r-t.j+e;a<t.p;a++)if(u=a-t.k+i,o=c,s=u,o+=n.j,s+=n.k,o>=0&&s>=0&&o<n.o&&s<n.p&&(!Y1(t,r,a)&&YW(n,c,u)||YZ(t,r,a)&&!function(n,t,e){try{return Y1(n,t+n.j,e+n.k)}catch(n){if(Ti(n=Uu(n),73))throw new gu(n.g+nb_+t+nhC+e+").").e;throw n.e}}(n,c,u)))return!0;return!1}(n,t,e,i))return!0;for(a=new h1(t.f);a.a<a.c.c.length;){switch(c=Im(De(a),324),u=!1,s=(o=n.j-t.j+e)+t.o,r=(h=n.k-t.k+i)+t.p,c.a.g){case 0:u=XR(n,o+c.b.a,0,o+c.c.a,h-1);break;case 1:u=XR(n,s,h+c.b.a,n.o-1,h+c.c.a);break;case 2:u=XR(n,o+c.b.a,r,o+c.c.a,n.p-1);break;default:u=XR(n,0,h+c.b.a,o-1,h+c.c.a)}if(u)return!0}return!1}(t,c,i,r);)e=Im(o.Ce(e,c),46),i=Im(e.a,19).a,r=Im(e.b,19).a;!function(n,t,e,i){var r,c,a,u;for(function(n,t,e,i){var r,c,a,u;for(r=0;r<t.o;r++)for(a=0,c=r-t.j+e;a<t.p;a++)u=a-t.k+i,YZ(t,r,a)?function(n,t,e){try{return Y0(n,t+n.j,e+n.k)}catch(n){if(Ti(n=Uu(n),73))throw new gu(n.g+nb_+t+nhC+e+").").e;throw n.e}}(n,c,u)||function(n,t,e){try{naI(n,t+n.j,e+n.k,!1,!0)}catch(n){if(Ti(n=Uu(n),73))throw new gu(n.g+nb_+t+nhC+e+").").e;throw n.e}}(n,c,u):Y0(t,r,a)&&(YW(n,c,u)||function(n,t,e){try{naI(n,t+n.j,e+n.k,!0,!1)}catch(n){if(Ti(n=Uu(n),73))throw new gu(n.g+nb_+t+nhC+e+").").e;throw n.e}}(n,c,u))}(n,t,e,i),a=n.j-t.j+e,t.g=a,u=n.k-t.k+i,t.i=u,c=new h1(t.f);c.a<c.c.c.length;)switch((r=Im(De(c),324)).a.g){case 0:UV(n,t.g+r.b.a,0,t.g+r.c.a,t.i-1);break;case 1:UV(n,t.g+t.o,t.i+r.b.a,n.o-1,t.i+r.c.a);break;case 2:UV(n,t.g+r.b.a,t.i+t.p,t.g+r.c.a,n.p-1);break;default:UV(n,0,t.i+r.b.a,t.g-1,t.i+r.c.a)}}(t,c,i,r)}})(e=new ncP(n.g,gy(n.a),n.c)),n.g=e.b,n.d=e.a}(c),function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;for(e=function(n){var t,e,i,r,c,a,u,o,s,h;for(s=0,e=n.o,t=n.p,a=nhM,r=nfp,u=nhM,c=nfp;s<e;++s)for(h=0;h<t;++h)YZ(n,s,h)&&(a=nTv.Math.min(a,s),r=nTv.Math.max(r,s),u=nTv.Math.min(u,h),c=nTv.Math.max(c,h));return o=r-a+1,i=c-u+1,new LM(Va(a),Va(u),Va(o),Va(i))}(n.d),c=(r=Im(ntP(n.b,(J2(),nOs)),116)).b+r.c,a=r.d+r.a,o=e.d.a*n.e+c,u=e.b.a*n.f+a,f=n.b,l=new kp(o,u),f.b=l,h=new h1(n.g);h.a<h.c.c.length;)t=S9((b=new kp((s=Im(De(h),562)).g-e.a.a,s.i-e.c.a),w=s.a,d=s.b,b.a*=w,b.b*=d,b),To(Mz(E1(EP(s.e)),s.d*s.a,s.c*s.b),-.5)),i=EI(s.e),g=s.e,p=S7(t,i),g.b=!0,g.d=p}(c),UU(c.b,(J2(),nOu),c.g),Yu(n,nOu,ntP(this.b,nOu))):vI(),function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;for(l=(c=n.f.b).a,h=c.b,w=n.e.g,b=n.e.f,Eh(n.e,c.a,c.b),j=l/w,E=h/b,s=new Td(Li(n.e));s.e!=s.i.gc();)qh(o=Im(J1(s),137),o.i*j),qf(o,o.j*E);for(v=new Td(Lr(n.e));v.e!=v.i.gc();)y=(p=Im(J1(v),118)).i,k=p.j,y>0&&qh(p,y*j),k>0&&qf(p,k*E);for(zS(n.b,new tn),t=new wn,u=new XE(new hL(n.c).a);u.b;)i=Im((a=HQ(u)).cd(),79),e=Im(a.dd(),395).a,r=ncX(i,!1,!1),nuX(f=nn8(ntL(i),nei(r),e),r),(m=ntN(i))&&-1==Bb(t,m,0)&&(t.c[t.c.length]=m,L$(m,(MK(0!=f.b),Im(f.a.a.c,8)),e));for(g=new XE(new hL(n.d).a);g.b;)i=Im((d=HQ(g)).cd(),79),e=Im(d.dd(),395).a,r=ncX(i,!1,!1),f=nn8(ntD(i),Xw(nei(r)),e),nuX(f=Xw(f),r),(m=ntx(i))&&-1==Bb(t,m,0)&&(t.c[t.c.length]=m,L$(m,(MK(0!=f.b),Im(f.c.b.c,8)),e))}(r),Yu(n,nOa,this.b),nee(t)},nTm.a=0,AY(nbV,"DisCoLayoutProvider",1132),nrr(1244,1,{},n3),nTm.c=!1,nTm.e=0,nTm.f=0,AY(nbV,"DisCoPolyominoCompactor",1244),nrr(561,1,{561:1},CW),nTm.b=!0,AY(nbQ,"DCComponent",561),nrr(394,22,{3:1,35:1,22:1,394:1},mG),nTm.a=!1;var nPN=qE(nbQ,"DCDirection",394,nE2,function(){return Yc(),Um(xg(nPN,1),nfh,394,0,[nC2,nC0,nC3,nC4])},function(n){return Yc(),B5((_6(),nC5),n)});nrr(266,134,{3:1,266:1,94:1,134:1},nrf),AY(nbQ,"DCElement",266),nrr(395,1,{395:1},Y5),nTm.c=0,AY(nbQ,"DCExtension",395),nrr(755,134,nbq,pr),AY(nbQ,"DCGraph",755),nrr(481,22,{3:1,35:1,22:1,481:1},M_);var nPx=qE(nbJ,nbY,481,nE2,function(){return vV(),Um(xg(nPx,1),nfh,481,0,[nC6])},function(n){return vV(),B5((Ry(),nC8),n)});nrr(854,1,nbo,si),nTm.Qe=function(n){V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nbZ),nb3),"Connected Components Compaction Strategy"),"Strategy for packing different connected components in order to save space and enhance readability of a graph."),nOn),(neT(),nzO)),nPx),VD((JH(),nzM))))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,nb1),nb3),"Connected Components Layout Algorithm"),"A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."),nzN),nTh),VD(nzM)))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,nb0),"debug"),"DCGraph"),"Access to the DCGraph is intended for the debug view,"),nzL),nEX),VD(nzM)))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,nb2),"debug"),"List of Polyominoes"),"Access to the polyominoes is intended for the debug view,"),nzL),nEX),VD(nzM)))),noi((new sr,n))},AY(nbJ,"DisCoMetaDataProvider",854),nrr(998,1,nbo,sr),nTm.Qe=function(n){noi(n)},AY(nbJ,"DisCoOptions",998),nrr(999,1,{},n4),nTm.$e=function(){return new n2},nTm._e=function(n){},AY(nbJ,"DisCoOptions/DiscoFactory",999),nrr(562,167,{321:1,167:1,562:1},nrU),nTm.a=0,nTm.b=0,nTm.c=0,nTm.d=0,AY("org.eclipse.elk.alg.disco.structures","DCPolyomino",562),nrr(1268,1,nfw,n5),nTm.Mb=function(n){return jK(n)},AY(nb7,"ElkGraphComponentsProcessor/lambda$0$Type",1268),nrr(1269,1,{},n6),nTm.Kb=function(n){return LW(),ntL(Im(n,79))},AY(nb7,"ElkGraphComponentsProcessor/lambda$1$Type",1269),nrr(1270,1,nfw,n8),nTm.Mb=function(n){var t;return t=Im(n,79),LW(),ntL(t)==xt(ntD(t))},AY(nb7,"ElkGraphComponentsProcessor/lambda$2$Type",1270),nrr(1271,1,{},n9),nTm.Kb=function(n){return LW(),ntD(Im(n,79))},AY(nb7,"ElkGraphComponentsProcessor/lambda$3$Type",1271),nrr(1272,1,nfw,n7),nTm.Mb=function(n){var t;return t=Im(n,79),LW(),ntD(t)==xt(ntL(t))},AY(nb7,"ElkGraphComponentsProcessor/lambda$4$Type",1272),nrr(1273,1,nfw,fI),nTm.Mb=function(n){var t,e;return t=this.a,e=Im(n,79),LW(),t==xt(ntL(e))||t==xt(ntD(e))},AY(nb7,"ElkGraphComponentsProcessor/lambda$5$Type",1273),nrr(1274,1,{},fC),nTm.Kb=function(n){var t,e;return t=this.a,e=Im(n,79),LW(),t==ntL(e)?ntD(e):ntL(e)},AY(nb7,"ElkGraphComponentsProcessor/lambda$6$Type",1274),nrr(1241,1,{},R1),nTm.a=0,AY(nb7,"ElkGraphTransformer",1241),nrr(1242,1,{},tn),nTm.Od=function(n,t){var e,i,r,c,a,u;e=Im(n,160),i=Im(t,266),this.a=i.b.d,Ti(e,352)?(KA(a=nei(c=ncX(Im(e,79),!1,!1)),r=new fO(this)),nuX(a,c),null!=e.We((nha(),nUC))&&KA(Im(e.We(nUC),74),r)):((u=Im(e,470)).Hg(u.Dg()+this.a.a),u.Ig(u.Eg()+this.a.b))},AY(nb7,"ElkGraphTransformer/OffsetApplier",1242),nrr(1243,1,nh1,fO),nTm.td=function(n){MG(Im(n,8),this.a.a.a,this.a.a.b)},AY(nb7,"ElkGraphTransformer/OffsetApplier/OffSetToChainApplier",1243),nrr(753,1,{},tt),AY(nwr,nwc,753),nrr(1232,1,nlX,te),nTm.ue=function(n,t){var e,i,r,c,a;return e=Im(n,231),i=Im(t,231),0==(r=Im(ntP(i,(nab(),nOH)),19).a-Im(ntP(e,nOH),19).a)?(c=S7(E1(Im(ntP(e,(GA(),nOQ)),8)),Im(ntP(e,nOJ),8)),a=S7(E1(Im(ntP(i,nOQ),8)),Im(ntP(i,nOJ),8)),Vv(c.a*c.b,a.a*a.b)):r},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nwr,nwa,1232),nrr(740,209,nbU,wX),nTm.Ze=function(n,t){nr1(this,n,t)},AY(nwr,"ForceLayoutProvider",740),nrr(357,134,{3:1,357:1,94:1,134:1}),AY(nwu,"FParticle",357),nrr(559,357,{3:1,559:1,357:1,94:1,134:1},Az),nTm.Ib=function(){var n;return this.a?(n=Bb(this.a.a,this,0))>=0?"b"+n+"["+Kx(this.a)+"]":"b["+Kx(this.a)+"]":"b_"+T9(this)},AY(nwu,"FBendpoint",559),nrr(282,134,{3:1,282:1,94:1,134:1},SX),nTm.Ib=function(){return Kx(this)},AY(nwu,"FEdge",282),nrr(231,134,{3:1,231:1,94:1,134:1},Fy);var nPD=AY(nwu,"FGraph",231);nrr(447,357,{3:1,447:1,357:1,94:1,134:1},Kn),nTm.Ib=function(){return null==this.b||0==this.b.length?"l["+Kx(this.a)+"]":"l_"+this.b},AY(nwu,"FLabel",447),nrr(144,357,{3:1,144:1,357:1,94:1,134:1},$s),nTm.Ib=function(){return Dh(this)},nTm.b=0,AY(nwu,"FNode",144),nrr(2003,1,{}),nTm.bf=function(n){nuM(this,n)},nTm.cf=function(){Zc(this)},nTm.d=0,AY(nws,"AbstractForceModel",2003),nrr(631,2003,{631:1},zQ),nTm.af=function(n,t){var e,i,r,c,a,u;return nie(this.f,n,t),r=S7(E1(t.d),n.d),c=nTv.Math.sqrt(r.a*r.a+r.b*r.b),i=nTv.Math.max(0,c-$C(n.e)/2-$C(t.e)/2),To(r,((e=Xo(this.e,n,t))>0?-(a=this.c,i>0?nTv.Math.log(i/a):-100)*e:(u=this.b,(i>0?u/(i*i):100*u)*Im(ntP(n,(nab(),nOH)),19).a))/c),r},nTm.bf=function(n){nuM(this,n),this.a=Im(ntP(n,(nab(),nO$)),19).a,this.c=gy(Ss(ntP(n,nOW))),this.b=gy(Ss(ntP(n,nOG)))},nTm.df=function(n){return n<this.a},nTm.a=0,nTm.b=0,nTm.c=0,AY(nws,"EadesModel",631),nrr(632,2003,{632:1},IR),nTm.af=function(n,t){var e,i,r,c,a,u,o;return nie(this.f,n,t),r=S7(E1(t.d),n.d),a=nTv.Math.sqrt(r.a*r.a+r.b*r.b),u=i=nTv.Math.max(0,a-$C(n.e)/2-$C(t.e)/2),o=this.a,c=(u>0?o*o/u:o*o*100)*Im(ntP(n,(nab(),nOH)),19).a,(e=Xo(this.e,n,t))>0&&(c-=i*i/this.a*e),To(r,c*this.b/a),r},nTm.bf=function(n){var t,e,i,r,c,a,u;for(nuM(this,n),this.b=gy(Ss(ntP(n,(nab(),nOV)))),this.c=this.b/Im(ntP(n,nO$),19).a,i=n.e.c.length,c=0,r=0,u=new h1(n.e);u.a<u.c.c.length;)c+=(a=Im(De(u),144)).e.a,r+=a.e.b;t=c*r,e=gy(Ss(ntP(n,nOW)))*nbE,this.a=nTv.Math.sqrt(t/(2*i))*e},nTm.cf=function(){Zc(this),this.b-=this.c},nTm.df=function(n){return this.b>0},nTm.a=0,nTm.b=0,nTm.c=0,AY(nws,"FruchtermanReingoldModel",632),nrr(849,1,nbo,sa),nTm.Qe=function(n){V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwh),""),"Force Model"),"Determines the model for force calculation."),nOy),(neT(),nzO)),nPR),VD((JH(),nzM))))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwf),""),"Iterations"),"The number of iterations on the force model."),Va(300)),nz$),nTa),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwl),""),"Repulsive Power"),"Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"),Va(0)),nz$),nTa),VD(nzj)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwb),""),"FR Temperature"),"The temperature is used as a scaling factor for particle displacements."),nww),nzC),nTr),VD(nzM)))),DW(n,nwb,nwh,nOM),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwd),""),"Eades Repulsion"),"Factor for repulsive forces in Eades' model."),5),nzC),nTr),VD(nzM)))),DW(n,nwd,nwh,nOj),nsN((new su,n))},AY(nwg,"ForceMetaDataProvider",849),nrr(424,22,{3:1,35:1,22:1,424:1},mZ);var nPR=qE(nwg,"ForceModelStrategy",424,nE2,function(){return Hn(),Um(xg(nPR,1),nfh,424,0,[nOS,nOP])},function(n){return Hn(),B5((Ks(),nOI),n)});nrr(988,1,nbo,su),nTm.Qe=function(n){nsN(n)},AY(nwg,"ForceOptions",988),nrr(989,1,{},ti),nTm.$e=function(){return new wX},nTm._e=function(n){},AY(nwg,"ForceOptions/ForceFactory",989),nrr(850,1,nbo,so),nTm.Qe=function(n){V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwD),""),"Fixed Position"),"Prevent that the node is moved by the layout algorithm."),(TX(),!1)),(neT(),nzI)),nTt),VD((JH(),nzT))))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwR),""),"Desired Edge Length"),"Either specified for parent nodes or for individual edges, where the latter takes higher precedence."),100),nzC),nTr),C6(nzM,Um(xg(nCr,1),nfh,175,0,[nzj]))))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwK),""),"Layout Dimension"),"Dimensions that are permitted to be altered during layout."),nO2),nzO),nPK),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwF),""),"Stress Epsilon"),"Termination criterion for the iterative process."),nww),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nw_),""),"Iteration Limit"),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),Va(nhM)),nz$),nTa),VD(nzM)))),nsh((new ss,n))},AY(nwg,"StressMetaDataProvider",850),nrr(992,1,nbo,ss),nTm.Qe=function(n){nsh(n)},AY(nwg,"StressOptions",992),nrr(993,1,{},tr),nTm.$e=function(){return new SW},nTm._e=function(n){},AY(nwg,"StressOptions/StressFactory",993),nrr(1128,209,nbU,SW),nTm.Ze=function(n,t){var e,i,r,c;for(ntc(t,nwH,1),gm(So(nrM(n,(ZU(),nAn))))?gm(So(nrM(n,nAa)))||Nq(new fy((mo(),new gl(n)))):nr1(new wX,n,zt(t,1)),i=UX(n),c=(e=nuH(this.a,i)).Kc();c.Ob();)(r=Im(c.Pb(),231)).e.c.length<=1||(function(n,t){var e,i,r,c,a,u,o,s,h;if(!(t.e.c.length<=1)){for(n.f=t,n.d=Im(ntP(n.f,(ZU(),nO8)),379),n.g=Im(ntP(n.f,nAt),19).a,n.e=gy(Ss(ntP(n.f,nO9))),n.c=gy(Ss(ntP(n.f,nO6))),Aq(n.b),r=new h1(n.f.c);r.a<r.c.c.length;)i=Im(De(r),282),naU(n.b,i.c,i,null),naU(n.b,i.d,i,null);for(u=n.f.e.c.length,n.a=Cv(nYR,[nhJ,nlf],[104,25],15,[u,u],2),s=new h1(n.f.e);s.a<s.c.c.length;)!function(n,t,e){var i,r,c,a,u,o,s,h,f,l;for(h=new O0(new fA(e)),Aw(u=_f(nYN,nbf,25,n.f.e.c.length,16,1),u.length),e[t.b]=0,s=new h1(n.f.e);s.a<s.c.c.length;)(o=Im(De(s),144)).b!=t.b&&(e[o.b]=nhM),_w(ntp(h,o));for(;0!=h.b.c.length;)for(u[(f=Im(BY(h),144)).b]=!0,c=T0(new vd(n.b,f),0);c.c;)!u[(l=function(n,t){if(n.c==t)return n.d;if(n.d==t)return n.c;throw new gd("Node 'one' must be either source or target of edge 'edge'.").e}(r=Im(xy(c),282),f)).b]&&(a=MH(r,(ZU(),nO6))?gy(Ss(ntP(r,nO6))):n.c,(i=e[f.b]+a)<e[l.b]&&(e[l.b]=i,Gm(h,l),_w(ntp(h,l))))}(n,o=Im(De(s),144),n.a[o.b]);for(c=0,n.i=Cv(nYR,[nhJ,nlf],[104,25],15,[u,u],2);c<u;++c)for(a=0;a<u;++a)h=1/((e=n.a[c][a])*e),n.i[c][a]=h}}(this.b,r),function(n){var t,e,i,r,c,a,u,o,s;if(!(n.f.e.c.length<=1)){t=0,r=ni7(n),e=nlc;do{for(t>0&&(r=e),a=new h1(n.f.e);a.a<a.c.c.length;)gm(So(ntP(c=Im(De(a),144),(ZU(),nO7))))||(i=function(n,t){var e,i,r,c,a,u,o;for(c=0,u=0,o=0,r=new h1(n.f.e);r.a<r.c.c.length;)t!=(i=Im(De(r),144))&&(c+=a=n.i[t.b][i.b],(e=_k(t.d,i.d))>0&&n.d!=(BA(),nAh)&&(u+=a*(i.d.a+n.a[t.b][i.b]*(t.d.a-i.d.a)/e)),e>0&&n.d!=(BA(),nAo)&&(o+=a*(i.d.b+n.a[t.b][i.b]*(t.d.b-i.d.b)/e)));switch(n.d.g){case 1:return new kp(u/c,t.d.b);case 2:return new kp(t.d.a,o/c);default:return new kp(u/c,o/c)}}(n,c),S9(jR(c.d),i));e=ni7(n)}while(u=t++,o=r,s=e,0!=o&&!((o-s)/o<n.e)&&!(u>=n.g))}}(this.b),HR(r.d,new tc));nsK(i=nsq(e)),nee(t)},AY(nwG,"StressLayoutProvider",1128),nrr(1129,1,nh1,tc),nTm.td=function(n){not(Im(n,447))},AY(nwG,"StressLayoutProvider/lambda$0$Type",1129),nrr(990,1,{},wN),nTm.c=0,nTm.e=0,nTm.g=0,AY(nwG,"StressMajorization",990),nrr(379,22,{3:1,35:1,22:1,379:1},m1);var nPK=qE(nwG,"StressMajorization/Dimension",379,nE2,function(){return BA(),Um(xg(nPK,1),nfh,379,0,[nAs,nAo,nAh])},function(n){return BA(),B5((FW(),nAf),n)});nrr(991,1,nlX,fA),nTm.ue=function(n,t){var e,i,r;return e=this.a,i=Im(n,144),r=Im(t,144),Vv(e[i.b],e[r.b])},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nwG,"StressMajorization/lambda$0$Type",991),nrr(1229,1,{},DC),AY(nwU,"ElkLayered",1229),nrr(1230,1,nh1,ta),nTm.td=function(n){!function(n){var t;if((t=Im(ntP(n,(ns8(),nKy)),314))==(q5(),nLJ))throw new gC("The hierarchy aware processor "+t+" in child node "+n+" is only allowed if the root node specifies the same hierarchical processor.").e}(Im(n,37))},AY(nwU,"ElkLayered/lambda$0$Type",1230),nrr(1231,1,nh1,f$),nTm.td=function(n){var t;t=this.a,UU(Im(n,37),(ns8(),nKw),t)},AY(nwU,"ElkLayered/lambda$1$Type",1231),nrr(1263,1,{},EJ),AY(nwU,"GraphConfigurator",1263),nrr(759,1,nh1,fL),nTm.td=function(n){ntX(this.a,Im(n,10))},AY(nwU,"GraphConfigurator/lambda$0$Type",759),nrr(760,1,{},tu),nTm.Kb=function(n){return nnu(),new CL(null,new x6(Im(n,29).a,16))},AY(nwU,"GraphConfigurator/lambda$1$Type",760),nrr(761,1,nh1,fN),nTm.td=function(n){ntX(this.a,Im(n,10))},AY(nwU,"GraphConfigurator/lambda$2$Type",761),nrr(1127,209,nbU,wV),nTm.Ze=function(n,t){var e,i,r;e=function(n,t){var e,i,r;if(r=nu$(t),vF(new CL(null,(t.c||(t.c=new An(nC_,t,9,9)),new x6(t.c,16))),new fH(r)),function(n,t){var e,i,r,c,a,u,o,s,h,f,l;for(a=gm(So(nrM(n,(ns8(),nKz)))),l=Im(nrM(n,nFS),21),o=!1,s=!1,f=new Td((n.c||(n.c=new An(nC_,n,9,9)),n.c));f.e!=f.i.gc()&&(!o||!s);){for(c=Im(J1(f),118),u=0,r=AS(qO(Um(xg(nEJ,1),nhA,20,0,[(c.d||(c.d=new Ph(nC$,c,8,5)),c.d),(c.e||(c.e=new Ph(nC$,c,7,4)),c.e)])));nrc(r)&&(i=Im(K4(r),79),h=a&&niM(i)&&gm(So(nrM(i,nKU))),e=noB((i.b||(i.b=new Ph(nCA,i,4,7)),i.b),c)?n==xt(ntr(Im(HX((i.c||(i.c=new Ph(nCA,i,5,8)),i.c),0),82))):n==xt(ntr(Im(HX((i.b||(i.b=new Ph(nCA,i,4,7)),i.b),0),82))),!((h||e)&&++u>1)););u>0?o=!0:l.Hc((nis(),nWS))&&(c.n||(c.n=new An(nCK,c,1,7)),c.n).i>0&&(o=!0),u>1&&(s=!0)}o&&t.Fc((ncJ(),nNN)),s&&t.Fc((ncJ(),nNx))}(t,i=Im(ntP(r,(nhu(),nxu)),21)),i.Hc((ncJ(),nNN)))for(e=new Td((t.c||(t.c=new An(nC_,t,9,9)),t.c));e.e!=e.i.gc();)(function(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(o=new kp(i.i+i.g/2,i.j+i.f/2),l=no$(i),b=Im(nrM(t,(ns8(),nFE)),98),d=Im(nrM(i,nFI),61),g=JX(i),p=nFj,QF(g.a,p)||(w=0==i.i&&0==i.j?0:function(n,t){var e;if(!N8(n))throw new gg(nmU).e;switch(e=N8(n),t.g){case 1:return-(n.j+n.f);case 2:return n.i-e.g;case 3:return n.j-e.f;case 4:return-(n.i+n.g)}return 0}(i,d),Yu(i,nFj,w)),UU(r=nsQ(i,b,d,l,new kp(t.g,t.f),o,new kp(i.g,i.f),Im(ntP(e,nKE),103),e),(nhu(),nxE),i),v=c=Im(CA(r.j,0),11),m=function(n){var t,e,i,r,c;for(c=N8(n),r=new Td((n.e||(n.e=new Ph(nC$,n,7,4)),n.e));r.e!=r.i.gc();)if(i=Im(J1(r),79),!HD(ntr(Im(HX((i.c||(i.c=new Ph(nCA,i,5,8)),i.c),0),82)),c))return!0;for(e=new Td((n.d||(n.d=new Ph(nC$,n,8,5)),n.d));e.e!=e.i.gc();)if(t=Im(J1(e),79),!HD(ntr(Im(HX((t.b||(t.b=new Ph(nCA,t,4,7)),t.b),0),82)),c))return!0;return!1}(i),v.c=m,UU(r,nFS,(nis(),VD(nWI))),h=Im(nrM(t,nFS),174).Hc(nWS),u=new Td((i.n||(i.n=new An(nCK,i,1,7)),i.n));u.e!=u.i.gc();)if(!gm(So(nrM(a=Im(J1(u),137),nFf)))&&a.a&&(f=WE(a),IE(c.f,f),!h))switch(s=0,OQ(Im(nrM(t,nFS),21))&&(s=niv(new kp(a.i,a.j),new kp(a.g,a.f),new kp(i.g,i.f),0,d)),d.g){case 2:case 4:f.o.a=s;break;case 1:case 3:f.o.b=s}UU(r,nFV,Ss(nrM(xt(t),nFV))),UU(r,nFQ,Ss(nrM(xt(t),nFQ))),UU(r,nFX,Ss(nrM(xt(t),nFX))),IE(e.a,r),$J(n.a,i,r)})(n,t,r,Im(J1(e),118));return 0!=Im(nrM(t,(ns8(),nFu)),174).gc()&&ncZ(t,r),gm(So(ntP(r,nFw)))&&i.Fc(nNF),MH(r,nFR)&&function(n,t){XT(n).td(t)}(new Qs(gy(Ss(ntP(r,nFR)))),r),jf(nrM(t,nK_))===jf((WL(),nX2))?function(n,t,e){var i,r,c,a,u,o,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S;for(a=new vK,y=Im(ntP(e,(ns8(),nKE)),103),d=0,Gz(a,(t.a||(t.a=new An(nCF,t,10,11)),t.a));0!=a.b;)h=Im(0==a.b?null:(MK(0!=a.b),HK(a,a.a.a)),33),(jf(nrM(t,nKh))!==jf((U1(),n__))||jf(nrM(t,nKk))===jf((YU(),nL9))||jf(nrM(t,nKk))===jf((YU(),nL6))||gm(So(nrM(t,nKl)))||jf(nrM(t,nKc))!==jf((W3(),nA_)))&&!gm(So(nrM(h,nKs)))&&Yu(h,(nhu(),nxj),Va(d++)),!gm(So(nrM(h,nFf)))&&(l=0!=(h.a||(h.a=new An(nCF,h,10,11)),h.a).i,w=function(n){var t,e;if(gm(So(nrM(n,(ns8(),nKz))))){for(e=new OM(TD(nrZ(n).a.Kc(),new s));nrc(e);)if(niM(t=Im(K4(e),79))&&gm(So(nrM(t,nKU))))return!0}return!1}(h),b=jf(nrM(h,nK_))===jf((WL(),nX2)),S=!_u(h,(nha(),nUt))||Pv(Sh(nrM(h,nUt)),nda),v=null,S&&b&&(l||w)&&(UU(v=nu$(h),nKE,y),MH(v,nFR)&&function(n,t){XT(n).td(t)}(new Qs(gy(Ss(ntP(v,nFR)))),v),0!=Im(nrM(h,nFu),174).gc()&&(f=v,vF(new CL(null,(h.c||(h.c=new An(nC_,h,9,9)),new x6(h.c,16))),new fq(f)),ncZ(h,v))),k=e,(j=Im($a(n.a,xt(h)),10))&&(k=j.e),p=nsm(n,h,k),v&&(p.e=v,v.e=p,Gz(a,(h.a||(h.a=new An(nCF,h,10,11)),h.a))));for(d=0,KL(a,t,a.c.b,a.c);0!=a.b;){for(o=new Td(((c=Im(0==a.b?null:(MK(0!=a.b),HK(a,a.a.a)),33)).b||(c.b=new An(nC$,c,12,3)),c.b));o.e!=o.i.gc();)nax(u=Im(J1(o),79)),(jf(nrM(t,nKh))!==jf((U1(),n__))||jf(nrM(t,nKk))===jf((YU(),nL9))||jf(nrM(t,nKk))===jf((YU(),nL6))||gm(So(nrM(t,nKl)))||jf(nrM(t,nKc))!==jf((W3(),nA_)))&&Yu(u,(nhu(),nxj),Va(d++)),T=ntr(Im(HX((u.b||(u.b=new Ph(nCA,u,4,7)),u.b),0),82)),M=ntr(Im(HX((u.c||(u.c=new Ph(nCA,u,5,8)),u.c),0),82)),gm(So(nrM(u,nFf)))||gm(So(nrM(T,nFf)))||gm(So(nrM(M,nFf)))||(g=niM(u)&&gm(So(nrM(T,nKz)))&&gm(So(nrM(u,nKU))),m=c,g||HD(M,T)?m=T:HD(T,M)&&(m=M),k=e,(j=Im($a(n.a,m),10))&&(k=j.e),UU(nhc(n,u,m,k),(nhu(),nN4),function(n,t,e,i){var r,c,a,u,o;return(u=ntr(Im(HX((t.b||(t.b=new Ph(nCA,t,4,7)),t.b),0),82)),o=ntr(Im(HX((t.c||(t.c=new Ph(nCA,t,5,8)),t.c),0),82)),xt(u)==xt(o)||HD(o,u))?null:(a=N6(t))==e?i:(c=Im($a(n.a,a),10))&&(r=c.e)?r:null}(n,u,t,e)));if(b=jf(nrM(c,nK_))===jf((WL(),nX2)))for(r=new Td((c.a||(c.a=new An(nCF,c,10,11)),c.a));r.e!=r.i.gc();)S=!_u(i=Im(J1(r),33),(nha(),nUt))||Pv(Sh(nrM(i,nUt)),nda),E=jf(nrM(i,nK_))===jf(nX2),S&&E&&KL(a,i,a.c.b,a.c)}}(n,t,r):function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d;for(f=0,r=new Td((t.a||(t.a=new An(nCF,t,10,11)),t.a));r.e!=r.i.gc();)gm(So(nrM(i=Im(J1(r),33),(ns8(),nFf))))||((jf(nrM(t,nKh))!==jf((U1(),n__))||jf(nrM(t,nKk))===jf((YU(),nL9))||jf(nrM(t,nKk))===jf((YU(),nL6))||gm(So(nrM(t,nKl)))||jf(nrM(t,nKc))!==jf((W3(),nA_)))&&!gm(So(nrM(i,nKs)))&&(Yu(i,(nhu(),nxj),Va(f)),++f),nsm(n,i,e));for(f=0,s=new Td((t.b||(t.b=new An(nC$,t,12,3)),t.b));s.e!=s.i.gc();)u=Im(J1(s),79),(jf(nrM(t,(ns8(),nKh)))!==jf((U1(),n__))||jf(nrM(t,nKk))===jf((YU(),nL9))||jf(nrM(t,nKk))===jf((YU(),nL6))||gm(So(nrM(t,nKl)))||jf(nrM(t,nKc))!==jf((W3(),nA_)))&&(Yu(u,(nhu(),nxj),Va(f)),++f),w=ntL(u),d=ntD(u),h=gm(So(nrM(w,nKz))),b=!gm(So(nrM(u,nFf))),l=h&&niM(u)&&gm(So(nrM(u,nKU))),c=xt(w)==t&&xt(w)==xt(d),a=(xt(w)==t&&d==t)^(xt(d)==t&&w==t),b&&!l&&(a||c)&&nhc(n,u,t,e);if(xt(t))for(o=new Td(LA(xt(t)));o.e!=o.i.gc();)(w=ntL(u=Im(J1(o),79)))==t&&niM(u)&&(l=gm(So(nrM(w,(ns8(),nKz))))&&gm(So(nrM(u,nKU))))&&nhc(n,u,t,e)}(n,t,r),r}(new w4,n),jf(nrM(n,(ns8(),nK_)))===jf((WL(),nX2))?(i=this.a,(r=t)||(r=IZ(new dB,0)),ntc(r,nwz,2),YE(i.b,e,zt(r,1)),function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w;for(o=function(n){var t,e,i,r,c;for(t=new b7,e=new b7,RC(t,n),RC(e,n);e.b!=e.c;)for(c=new h1(Im(Al(e),37).a);c.a<c.c.c.length;)(r=Im(De(c),10)).e&&(RC(t,i=r.e),RC(e,i));return t}(t),Im(ntP(t,(ns8(),nKy)),314)!=(q5(),nLJ)&&KA(o,new ta),KA(o,new f$(Im(ntP(t,nKw),292))),w=0,s=new wn,r=new Ln(o);r.a!=r.b;)i=Im(Wj(r),37),nsr(n.c,i),w+=(f=Im(ntP(i,(nhu(),nxL)),15)).gc(),IE(s,new k_(i,f.Kc()));for(ntc(e,"Recursive hierarchical layout",w),b=0,l=Im(Im(CA(s,s.c.length-1),46).b,47);l.Ob();)for(u=new h1(s);u.a<u.c.c.length;)for(a=Im(De(u),46),f=Im(a.b,47),c=Im(a.a,37);f.Ob();){if(Ti(h=Im(f.Pb(),51),507)){if(c.e)break;h.pf(c,zt(e,1)),++b;break}h.pf(c,zt(e,1)),++b}nee(e)}(i,e,zt(r,1)),function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S;for(ntc(t,"Compound graph postprocessor",1),e=gm(So(ntP(n,(ns8(),nF3)))),u=Im(ntP(n,(nhu(),nN6)),224),h=new w_,p=u.ec().Kc();p.Ob();){for(g=Im(p.Pb(),17),a=new PB(u.cc(g)),LV(),E_(a,new fx(n)),k=(x4(0,a.c.length),S=Im(a.c[0],243)).b.c.i.k==(ntY(),nAU)?Im(ntP(S.b.c.i,(nhu(),nxE)),11):S.b.c,E=G4(Im(CA(a,a.c.length-1),243)),m=k.i,v=zR(E.i,m)?m.e:$L(m),f=function(n,t){var e;return e=Im(ntP(n,(ns8(),nKV)),74),E7(t,nAq)?e?Lq(e):(e=new dd,UU(n,nKV,e)):e&&UU(n,nKV,null),e}(g,a),Lq(g.a),l=null,c=new h1(a);c.a<c.c.c.length;)r=Im(De(c),243),neP(d=new ps,r.a,v),b=r.b,XZ(i=new dd,0,b.a),HV(i,d),y=new Ee(x9(b.c)),j=new Ee(x9(b.d)),S9(y,d),S9(j,d),l&&(0==i.b?w=j:(MK(0!=i.b),w=Im(i.a.a.c,8)),T=nTv.Math.abs(l.a-w.a)>nww,M=nTv.Math.abs(l.b-w.b)>nww,(!e&&T&&M||e&&(T||M))&&I2(g.a,y)),Gz(g.a,i),0==i.b?l=y:(MK(0!=i.b),l=Im(i.c.b.c,8)),function(n,t,e){var i,r;(r=Im(ntP(n,(ns8(),nKV)),74))&&(XZ(i=new dd,0,r),HV(i,e),Gz(t,i))}(b,f,d),G4(r)==E&&($L(E.i)!=r.a&&neP(d=new ps,$L(E.i),v),UU(g,nxz,d)),function(n,t,e){var i,r;for(r=new Rn(n.b,0);r.b<r.d.gc();)MK(r.b<r.d.gc()),jf(ntP(i=Im(r.d.Xb(r.c=r.b++),70),(nhu(),nxS)))===jf(t)&&(neP(i.n,$L(n.c.i),e),$I(r),IE(t.b,i))}(b,g,v),h.a.zc(b,h);xE(g,k),xj(g,E)}for(s=h.a.ec().Kc();s.Ob();)xE(o=Im(s.Pb(),17),null),xj(o,null);nee(t)}(e,zt(r,1)),nee(r)):function(n,t,e){var i,r,c,a,u,o,s,h,f;if((a=e)||(a=IZ(new dB,0)),ntc(a,nwz,1),nsr(n.c,t),1==(c=function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;if(n.c=n.d,l=null==(b=So(ntP(t,(ns8(),nFD))))||($x(b),b),c=Im(ntP(t,(nhu(),nxu)),21).Hc((ncJ(),nNN)),e=!((r=Im(ntP(t,nFE),98))==(nn2(),nWp)||r==nWm||r==nWv),l&&(e||!c)){for(h=new h1(t.a);h.a<h.c.c.length;)Im(De(h),10).p=0;for(f=new wn,s=new h1(t.a);s.a<s.c.c.length;)if(i=function n(t,e,i){var r,c,a,u,o;if(0==e.p){for(e.p=1,(c=i)||(c=new k_(new wn,new PR(r=Im(pf(nCy),9),Im(Sz(r,r.length),9),0))),Im(c.a,15).Fc(e),e.k==(ntY(),nAU)&&Im(c.b,21).Fc(Im(ntP(e,(nhu(),nxr)),61)),u=new h1(e.j);u.a<u.c.c.length;)for(a=Im(De(u),11),o=AS(qO(Um(xg(nEJ,1),nhA,20,0,[new fK(a),new f_(a)])));nrc(o);)n(t,Im(K4(o),11).i,c);return c}return null}(n,Im(De(s),10),null)){for(z5(o=new qQ,t),UU(o,nxt,Im(i.b,21)),LG(o.d,t.d),UU(o,nFs,null),u=Im(i.a,15).Kc();u.Ob();)a=Im(u.Pb(),10),IE(o.a,a),a.a=o;f.Fc(o)}c&&(jf(ntP(t,nKc))===jf((W3(),nAK))?n.c=n.b:n.c=n.a)}else f=new gE(Um(xg(nPX,1),nw1,37,0,[t]));return jf(ntP(t,nKc))!==jf((W3(),nA_))&&(LV(),f.ad(new tE)),f}(n.a,t)).gc())noL(Im(c.Xb(0),37),a);else for(r=1/c.gc(),i=c.Kc();i.Ob();)noL(Im(i.Pb(),37),zt(a,r));(function(n,t,e){n.c.lf(t,e)})(n.a,c,t),h=Im(ntP(t,(ns8(),nFu)),21),f=Im(ntP(t,nFh),21),u=new Ee(o=new kp(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a)),h.Hc((QJ(),nW4))&&(s=Im(ntP(t,nFs),8),f.Hc((na9(),nVt))&&(s.a<=0&&(s.a=20),s.b<=0&&(s.b=20)),u.a=nTv.Math.max(o.a,s.a),u.b=nTv.Math.max(o.b,s.b)),gm(So(ntP(t,nFo)))||function(n,t,e){var i,r,c,a,u;if(i=Im(ntP(n,(ns8(),nKf)),21),e.a>t.a&&(i.Hc((nnF(),nz4))?n.c.a+=(e.a-t.a)/2:i.Hc(nz6)&&(n.c.a+=e.a-t.a)),e.b>t.b&&(i.Hc((nnF(),nz9))?n.c.b+=(e.b-t.b)/2:i.Hc(nz8)&&(n.c.b+=e.b-t.b)),Im(ntP(n,(nhu(),nxu)),21).Hc((ncJ(),nNN))&&(e.a>t.a||e.b>t.b))for(u=new h1(n.a);u.a<u.c.c.length;)(a=Im(De(u),10)).k==(ntY(),nAU)&&((r=Im(ntP(a,nxr),61))==(nsR(),nWA)?a.n.a+=e.a-t.a:r==nWV&&(a.n.b+=e.b-t.b));c=n.d,n.f.a=e.a-c.b-c.c,n.f.b=e.b-c.d-c.a}(t,o,u),nee(a)}(this.a,e,t),function n(t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,I;if(Ti(c=ntP(e,(nhu(),nxE)),239)){for(w=Im(c,33),d=e.e,l=new Ee(e.c),a=e.d,l.a+=a.b,l.b+=a.d,T8(Im(nrM(w,(ns8(),nFh)),174),(na9(),nVn))&&(m=b=Im(nrM(w,nFl),116),y=a.a,m.a=y,k=a.d,b.d=k,j=a.b,b.b=j,E=a.c,b.c=E),i=new wn,h=new h1(e.a);h.a<h.c.c.length;)for(Ti(ntP(o=Im(De(h),10),nxE),239)?function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d;for(i=Im(ntP(n,(nhu(),nxE)),33),b=Im(ntP(n,(ns8(),nKv)),19).a,c=Im(ntP(n,nKZ),19).a,Yu(i,nKv,Va(b)),Yu(i,nKZ,Va(c)),qh(i,n.n.a+t.a),qf(i,n.n.b+t.b),(0!=Im(nrM(i,nFu),174).gc()||n.e||jf(ntP($L(n),nFa))===jf((YL(),n_P))&&(Yp(),(d=(n.q?n.q:(LV(),LV(),nMm))._b(nFr)?Im(ntP(n,nFr),197):Im(ntP($L(n),nFc),197))==n_y||d==n_m))&&(qs(i,n.o.a),qo(i,n.o.b)),f=new h1(n.j);f.a<f.c.c.length;)Ti(w=ntP(s=Im(De(f),11),nxE),186)&&(Ef(r=Im(w,118),s.n.a,s.n.b),Yu(r,nFI,s.j));for(l=0!=Im(ntP(n,nK7),174).gc(),o=new h1(n.b);o.a<o.c.c.length;)a=Im(De(o),70),(l||0!=Im(ntP(a,nK7),174).gc())&&(Eh(e=Im(ntP(a,nxE),137),a.o.a,a.o.b),Ef(e,a.n.a,a.n.b));if(!OQ(Im(ntP(n,nFS),21)))for(h=new h1(n.j);h.a<h.c.c.length;)for(u=new h1((s=Im(De(h),11)).f);u.a<u.c.c.length;)a=Im(De(u),70),qs(e=Im(ntP(a,nxE),137),a.o.a),qo(e,a.o.b),Ef(e,a.n.a,a.n.b)}(o,l):Ti(ntP(o,nxE),186)&&!d&&(r=Im(ntP(o,nxE),118),p=nuA(e,o,r.g,r.f),Ef(r,p.a,p.b)),g=new h1(o.j);g.a<g.c.c.length;)vF(Lb(new CL(null,new x6(Im(De(g),11).g,16)),new fU(o)),new fX(i));if(d)for(g=new h1(d.j);g.a<g.c.c.length;)vF(Lb(new CL(null,new x6(Im(De(g),11).g,16)),new fW(d)),new fV(i));for(v=Im(nrM(w,nKO),218),u=new h1(i);u.a<u.c.c.length;)!function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;if(c=Im(ntP(n,(nhu(),nxE)),79)){for((i=n.a,S9(r=new Ee(e),function(n){var t,e,i,r;if(r=Im(ntP(n,(nhu(),nN4)),37)){for(i=new ps,t=$L(n.c.i);t!=r;)t=$L(e=t.e),MG(S9(S9(i,e.n),t.c),t.d.b,t.d.d);return i}return nA4}(n)),zR(n.d.i,n.c.i))?(l=n.c,S7(f=Xt(Um(xg(nCa,1),nhJ,8,0,[l.n,l.a])),e)):f=x9(n.c),KL(i,f,i.a,i.a.a),b=x9(n.d),null!=ntP(n,nxz)&&S9(b,Im(ntP(n,nxz),8)),KL(i,b,i.c.b,i.c),HV(i,r),q8(a=ncX(c,!0,!0),Im(HX((c.b||(c.b=new Ph(nCA,c,4,7)),c.b),0),82)),q9(a,Im(HX((c.c||(c.c=new Ph(nCA,c,5,8)),c.c),0),82)),nuX(i,a),h=new h1(n.b);h.a<h.c.c.length;)s=Im(De(h),70),qs(u=Im(ntP(s,nxE),137),s.o.a),qo(u,s.o.b),Ef(u,s.n.a+r.a,s.n.b+r.b),Yu(u,(Gx(),n$6),So(ntP(s,n$6)));(o=Im(ntP(n,(ns8(),nKV)),74))?(HV(o,r),Yu(c,nKV,o)):Yu(c,nKV,null),t==(VY(),nXF)?Yu(c,nKO,nXF):Yu(c,nKO,null)}}(Im(De(u),17),v,l);for(S=Im(ntP(e,(nhu(),nxE)),33),I=Im(nrM(S,(ns8(),nFu)),174).Hc((QJ(),nW8)),!e.e&&(P=Im(ntP(e,nxu),21),T=new kp(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a),P.Hc((ncJ(),nNN))?(Yu(S,nFE,(nn2(),nWv)),nsB(S,T.a,T.b,!1,!0)):gm(So(nrM(S,nFo)))||nsB(S,T.a,T.b,!0,!0)),I?Yu(S,nFu,VD(nW8)):Yu(S,nFu,new PR(M=Im(pf(nCk),9),Im(Sz(M,M.length),9),0)),s=new h1(e.a);s.a<s.c.c.length;)(f=(o=Im(De(s),10)).e)&&n(t,f)}}(new sf,e)},AY(nwU,"LayeredLayoutProvider",1127),nrr(356,22,{3:1,35:1,22:1,356:1},m0);var nPF=qE(nwU,"LayeredPhases",356,nE2,function(){return ntI(),Um(xg(nPF,1),nfh,356,0,[nAd,nAg,nAp,nAv,nAm])},function(n){return ntI(),B5((Hs(),nAy),n)});nrr(1651,1,{},qV),nTm.i=0,AY(nwX,"ComponentsToCGraphTransformer",1651),nrr(1652,1,{},to),nTm.ef=function(n,t){return nTv.Math.min(null!=n.a?gy(n.a):n.c.i,null!=t.a?gy(t.a):t.c.i)},nTm.ff=function(n,t){return nTv.Math.min(null!=n.a?gy(n.a):n.c.i,null!=t.a?gy(t.a):t.c.i)},AY(nwX,"ComponentsToCGraphTransformer/1",1652),nrr(81,1,{81:1}),nTm.i=0,nTm.k=!0,nTm.o=nla;var nP_=AY(nwW,"CNode",81);nrr(460,81,{460:1,81:1},Mr,Jj),nTm.Ib=function(){return""},AY(nwX,"ComponentsToCGraphTransformer/CRectNode",460),nrr(1623,1,{},ts),AY(nwX,"OneDimensionalComponentsCompaction",1623),nrr(1624,1,{},th),nTm.Kb=function(n){var t;return t=Im(n,46),Wl(),TX(),0!=Im(t.a,81).d.e},nTm.Fb=function(n){return this===n},AY(nwX,"OneDimensionalComponentsCompaction/lambda$0$Type",1624),nrr(1625,1,{},tf),nTm.Kb=function(n){var t;return t=Im(n,46),Wl(),TX(),!!(V8(Im(t.a,81).j,Im(t.b,103))||0!=Im(t.a,81).d.e&&V8(Im(t.a,81).j,Im(t.b,103)))},nTm.Fb=function(n){return this===n},AY(nwX,"OneDimensionalComponentsCompaction/lambda$1$Type",1625),nrr(1654,1,{},$u),AY(nwW,"CGraph",1654),nrr(189,1,{189:1},JE),nTm.b=0,nTm.c=0,nTm.e=0,nTm.g=!0,nTm.i=nla,AY(nwW,"CGroup",189),nrr(1653,1,{},td),nTm.ef=function(n,t){return nTv.Math.max(null!=n.a?gy(n.a):n.c.i,null!=t.a?gy(t.a):t.c.i)},nTm.ff=function(n,t){return nTv.Math.max(null!=n.a?gy(n.a):n.c.i,null!=t.a?gy(t.a):t.c.i)},AY(nwW,nlY,1653),nrr(1655,1,{},niL),nTm.d=!1;var nPB=AY(nwW,nl3,1655);nrr(1656,1,{},tg),nTm.Kb=function(n){return v2(),TX(),0!=Im(Im(n,46).a,81).d.e},nTm.Fb=function(n){return this===n},AY(nwW,nl4,1656),nrr(823,1,{},CE),nTm.a=!1,nTm.b=!1,nTm.c=!1,nTm.d=!1,AY(nwW,nl5,823),nrr(1825,1,{},Oc),AY(nwV,nl6,1825);var nPH=Cw(nwQ,nlV);nrr(1826,1,{369:1},Nu),nTm.Ke=function(n){var t,e,i,r;(t=Im(n,466)).a?(AR(this.b,t.b),this.a[t.b.i]=Im(Py(this.b,t.b),81),(e=Im(Pm(this.b,t.b),81))&&(this.a[e.i]=t.b)):((i=Im(Py(this.b,t.b),81))&&i==this.a[t.b.i]&&i.d&&i.d!=t.b.d&&i.f.Fc(t.b),(r=Im(Pm(this.b,t.b),81))&&this.a[r.i]==t.b&&r.d&&r.d!=t.b.d&&t.b.f.Fc(r),T6(this.b,t.b))},AY(nwV,nl8,1826),nrr(1827,1,nlX,tp),nTm.ue=function(n,t){var e,i;return e=Im(n,81),i=Im(t,81),Vv(e.g.c+e.g.b/2,i.g.c+i.g.b/2)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nwV,nl9,1827),nrr(466,1,{466:1},yu),nTm.a=!1,AY(nwV,nl7,466),nrr(1828,1,nlX,tv),nTm.ue=function(n,t){return function(n,t){var e,i,r;if(i=n.b.g.d,n.a||(i+=n.b.g.a),r=t.b.g.d,t.a||(r+=t.b.g.a),0==(e=Vv(i,r))){if(!n.a&&t.a)return -1;if(!t.a&&n.a)return 1}return e}(Im(n,466),Im(t,466))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nwV,nbn,1828),nrr(140,1,{140:1},yf,IH),nTm.Fb=function(n){var t;return null!=n&&nPq==Xp(n)&&(t=Im(n,140),$5(this.c,t.c)&&$5(this.d,t.d))},nTm.Hb=function(){return X9(Um(xg(nEX,1),nhA,1,5,[this.c,this.d]))},nTm.Ib=function(){return"("+this.c+nhC+this.d+(this.a?"cx":"")+this.b+")"},nTm.a=!0,nTm.c=0,nTm.d=0;var nPq=AY(nwQ,"Point",140);nrr(405,22,{3:1,35:1,22:1,405:1},m2);var nPG=qE(nwQ,"Point/Quadrant",405,nE2,function(){return Uj(),Um(xg(nPG,1),nfh,405,0,[nAS,nAC,nAP,nAI])},function(n){return Uj(),B5((_3(),nAO),n)});nrr(1642,1,{},wY),nTm.b=null,nTm.c=null,nTm.d=null,nTm.e=null,nTm.f=null,AY(nwQ,"RectilinearConvexHull",1642),nrr(574,1,{369:1},J3),nTm.Ke=function(n){var t;t=Im(n,140),this.a.ue(t.d,this.b)>0&&(IE(this.c,new IH(t.c,t.d,this.d)),this.b=t.d)},nTm.b=0,AY(nwQ,"RectilinearConvexHull/MaximalElementsEventHandler",574),nrr(1644,1,nlX,tb),nTm.ue=function(n,t){var e,i;return e=Ss(n),i=Ss(t),v3(),Vv(($x(e),e),($x(i),i))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nwQ,"RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type",1644),nrr(1643,1,{369:1},HM),nTm.Ke=function(n){var t,e,i,r,c;t=Im(n,140),this.d&&(t.c!=this.e.c||(i=this.e.b,r=t.b,Uj(),i==nAS&&r==nAP||i==nAS&&r==nAI||i==nAC&&r==nAI||i==nAC&&r==nAP))&&(IE(this.f,this.d),this.a=this.d.c+this.d.b,this.d=null,this.e=null),(c=t.b)==nAS||c==nAP?this.c=t:this.b=t,(t.b==(Uj(),nAS)&&!t.a||t.b==nAP&&t.a||t.b==nAI&&t.a||t.b==nAC&&!t.a)&&this.c&&this.b&&(e=new Lj(this.a,this.c.d,t.c-this.a,this.b.d-this.c.d),this.d=e,this.e=t)},nTm.a=0,nTm.b=null,nTm.c=null,nTm.d=null,nTm.e=null,AY(nwQ,"RectilinearConvexHull/RectangleEventHandler",1643),nrr(1645,1,nlX,tw),nTm.ue=function(n,t){var e,i;return e=Im(n,140),i=Im(t,140),B9(),e.c==i.c?Vv(i.d,e.d):Vv(e.c,i.c)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nwQ,"RectilinearConvexHull/lambda$0$Type",1645),nrr(1646,1,nlX,tl),nTm.ue=function(n,t){var e,i;return e=Im(n,140),i=Im(t,140),B9(),e.c==i.c?Vv(e.d,i.d):Vv(e.c,i.c)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nwQ,"RectilinearConvexHull/lambda$1$Type",1646),nrr(1647,1,nlX,tm),nTm.ue=function(n,t){var e,i;return e=Im(n,140),i=Im(t,140),B9(),e.c==i.c?Vv(i.d,e.d):Vv(i.c,e.c)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nwQ,"RectilinearConvexHull/lambda$2$Type",1647),nrr(1648,1,nlX,ty),nTm.ue=function(n,t){var e,i;return e=Im(n,140),i=Im(t,140),B9(),e.c==i.c?Vv(e.d,i.d):Vv(i.c,e.c)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nwQ,"RectilinearConvexHull/lambda$3$Type",1648),nrr(1649,1,nlX,tk),nTm.ue=function(n,t){return function(n,t){var e,i,r,c;if(B9(),n.c!=t.c)return Vv(n.c,t.c);if(n.b==t.b||(i=n.b,r=t.b,Uj(),i==nAS&&r==nAC||i==nAC&&r==nAS||i==nAI&&r==nAP||i==nAP&&r==nAI)){if(e=(c=n.b)==nAS||c==nAC?1:-1,n.a&&!t.a)return e;if(!n.a&&t.a)return-e}return EG(n.b.g,t.b.g)}(Im(n,140),Im(t,140))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nwQ,"RectilinearConvexHull/lambda$4$Type",1649),nrr(1650,1,{},xP),AY(nwQ,"Scanline",1650),nrr(2005,1,{}),AY(nwJ,"AbstractGraphPlacer",2005),nrr(325,1,{325:1},MJ),nTm.mf=function(n){return!!this.nf(n)&&(niP(this.b,Im(ntP(n,(nhu(),nxt)),21),n),!0)},nTm.nf=function(n){var t,e,i;for(t=Im(ntP(n,(nhu(),nxt)),21),i=Im(Fl(nAR,t),21).Kc();i.Ob();)if(e=Im(i.Pb(),21),!Im(Fl(this.b,e),15).dc())return!1;return!0},AY(nwJ,"ComponentGroup",325),nrr(765,2005,{},wZ),nTm.of=function(n){var t;for(t=new h1(this.a);t.a<t.c.c.length;)if(Im(De(t),325).mf(n))return;IE(this.a,new MJ(n))},nTm.lf=function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w;if(this.a.c=_f(nEX,nhA,1,0,5,1),t.a.c=_f(nEX,nhA,1,0,5,1),n.dc()){t.f.a=0,t.f.b=0;return}for(z5(t,a=Im(n.Xb(0),37)),r=n.Kc();r.Ob();)i=Im(r.Pb(),37),this.of(i);for(w=new ps,c=gy(Ss(ntP(a,(ns8(),nF_)))),s=new h1(this.a);s.a<s.c.c.length;)h=nsY(u=Im(De(s),325),c),_O(A4(u.b),w.a,w.b),w.a+=h.a,w.b+=h.b;if(t.f.a=w.a-c,t.f.b=w.b-c,gm(So(ntP(a,nKe)))&&jf(ntP(a,nKO))===jf((VY(),nXR))){for(b=n.Kc();b.Ob();)naN(f=Im(b.Pb(),37),f.c.a,f.c.b);for(ns6(e=new tj,n,c),l=n.Kc();l.Ob();)S9(jR((f=Im(l.Pb(),37)).c),e.e);S9(jR(t.f),e.a)}for(o=new h1(this.a);o.a<o.c.c.length;)_A(t,A4((u=Im(De(o),325)).b))},AY(nwJ,"ComponentGroupGraphPlacer",765),nrr(1293,765,{},di),nTm.of=function(n){WB(this,n)},nTm.lf=function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;if(this.a.c=_f(nEX,nhA,1,0,5,1),t.a.c=_f(nEX,nhA,1,0,5,1),n.dc()){t.f.a=0,t.f.b=0;return}for(z5(t,c=Im(n.Xb(0),37)),i=n.Kc();i.Ob();)WB(this,Im(i.Pb(),37));for(p=new ps,g=new ps,w=new ps,b=new ps,r=gy(Ss(ntP(c,(ns8(),nF_)))),o=new h1(this.a);o.a<o.c.c.length;){if(a=Im(De(o),325),Ei(Im(ntP(t,(nha(),nUl)),103))){for(w.a=p.a,d=new d6(A5(A0(a.b).a).a.kc());d.b.Ob();)if(Im(mj(d.b.Pb()),21).Hc((nsR(),nW$))){w.a=g.a;break}}else if(Er(Im(ntP(t,nUl),103))){for(w.b=p.b,d=new d6(A5(A0(a.b).a).a.kc());d.b.Ob();)if(Im(mj(d.b.Pb()),21).Hc((nsR(),nWJ))){w.b=g.b;break}}if(s=nsY(Im(a,570),r),_O(A4(a.b),w.a,w.b),Ei(Im(ntP(t,nUl),103))){for(g.a=w.a+s.a,b.a=nTv.Math.max(b.a,g.a),d=new d6(A5(A0(a.b).a).a.kc());d.b.Ob();)if(Im(mj(d.b.Pb()),21).Hc((nsR(),nWV))){p.a=w.a+s.a;break}g.b=w.b+s.b,w.b=g.b,b.b=nTv.Math.max(b.b,w.b)}else if(Er(Im(ntP(t,nUl),103))){for(g.b=w.b+s.b,b.b=nTv.Math.max(b.b,g.b),d=new d6(A5(A0(a.b).a).a.kc());d.b.Ob();)if(Im(mj(d.b.Pb()),21).Hc((nsR(),nWA))){p.b=w.b+s.b;break}g.a=w.a+s.a,w.a=g.a,b.a=nTv.Math.max(b.a,w.a)}}if(t.f.a=b.a-r,t.f.b=b.b-r,gm(So(ntP(c,nKe)))&&jf(ntP(c,nKO))===jf((VY(),nXR))){for(l=n.Kc();l.Ob();)naN(h=Im(l.Pb(),37),h.c.a,h.c.b);for(ns6(e=new tj,n,r),f=n.Kc();f.Ob();)S9(jR((h=Im(f.Pb(),37)).c),e.e);S9(jR(t.f),e.a)}for(u=new h1(this.a);u.a<u.c.c.length;)_A(t,A4((a=Im(De(u),325)).b))},AY(nwJ,"ComponentGroupModelOrderGraphPlacer",1293),nrr(423,22,{3:1,35:1,22:1,423:1},m3);var nPz=qE(nwJ,"ComponentOrderingStrategy",423,nE2,function(){return W3(),Um(xg(nPz,1),nfh,423,0,[nA_,nAF,nAK])},function(n){return W3(),B5((FV(),nAB),n)});nrr(650,1,{},tj),AY(nwJ,"ComponentsCompactor",650),nrr(1468,12,nlv,KH),nTm.Fc=function(n){return nn$(this,Im(n,140))},AY(nwJ,"ComponentsCompactor/Hullpoints",1468),nrr(1465,1,{841:1},Yd),nTm.a=!1,AY(nwJ,"ComponentsCompactor/InternalComponent",1465),nrr(1464,1,nh5,w1),nTm.Jc=function(n){KA(this,n)},nTm.Kc=function(){return new h1(this.a)},AY(nwJ,"ComponentsCompactor/InternalConnectedComponents",1464),nrr(1467,1,{594:1},niD),nTm.hf=function(){return null},nTm.jf=function(){return this.a},nTm.gf=function(){return JG(this.d)},nTm.kf=function(){return this.b},AY(nwJ,"ComponentsCompactor/InternalExternalExtension",1467),nrr(1466,1,{594:1},w3),nTm.jf=function(){return this.a},nTm.gf=function(){return JG(this.d)},nTm.hf=function(){return this.c},nTm.kf=function(){return this.b},AY(nwJ,"ComponentsCompactor/InternalUnionExternalExtension",1466),nrr(1470,1,{},ncG),AY(nwJ,"ComponentsCompactor/OuterSegments",1470),nrr(1469,1,{},w0),AY(nwJ,"ComponentsCompactor/Segments",1469),nrr(1264,1,{},No),AY(nwJ,nwc,1264),nrr(1265,1,nlX,tE),nTm.ue=function(n,t){var e,i,r,c;return e=Im(n,37),i=Im(t,37),(r=Zg(e))<(c=Zg(i))?-1:r>c?1:0},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nwJ,"ComponentsProcessor/lambda$0$Type",1265),nrr(570,325,{325:1,570:1},KB),nTm.mf=function(n){return XP(this,n)},nTm.nf=function(n){return ncs(this,n)},AY(nwJ,"ModelOrderComponentGroup",570),nrr(1291,2005,{},tT),nTm.lf=function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;if(1==n.gc()){(v=Im(n.Xb(0),37))!=t&&(t.a.c=_f(nEX,nhA,1,0,5,1),naY(t,v,0,0),z5(t,v),LG(t.d,v.d),t.f.a=v.f.a,t.f.b=v.f.b);return}if(n.dc()){t.a.c=_f(nEX,nhA,1,0,5,1),t.f.a=0,t.f.b=0;return}if(jf(ntP(t,(ns8(),nKc)))===jf((W3(),nA_))){for(o=n.Kc();o.Ob();){for(a=Im(o.Pb(),37),g=0,w=new h1(a.a);w.a<w.c.c.length;)b=Im(De(w),10),g+=Im(ntP(b,nFA),19).a;a.p=g}LV(),n.ad(new tM)}for(c=Im(n.Xb(0),37),t.a.c=_f(nEX,nhA,1,0,5,1),z5(t,c),l=0,m=0,s=n.Kc();s.Ob();)p=(a=Im(s.Pb(),37)).f,l=nTv.Math.max(l,p.a),m+=p.a*p.b;for(l=nTv.Math.max(l,nTv.Math.sqrt(m)*gy(Ss(ntP(t,nKn)))),r=gy(Ss(ntP(t,nF_))),y=0,k=0,f=0,e=r,u=n.Kc();u.Ob();)y+(p=(a=Im(u.Pb(),37)).f).a>l&&(y=0,k+=f+r,f=0),d=a.c,naN(a,y+d.a,k+d.b),jR(d),e=nTv.Math.max(e,y+p.a),f=nTv.Math.max(f,p.b),y+=p.a+r;if(t.f.a=e,t.f.b=k+f,gm(So(ntP(c,nKe)))){for(ns6(i=new tj,n,r),h=n.Kc();h.Ob();)S9(jR(Im(h.Pb(),37).c),i.e);S9(jR(t.f),i.a)}_A(t,n)},AY(nwJ,"SimpleRowGraphPlacer",1291),nrr(1292,1,nlX,tM),nTm.ue=function(n,t){var e,i,r;return e=Im(n,37),0==(r=(i=Im(t,37)).p-e.p)?Vv(e.f.a*e.f.b,i.f.a*i.f.b):r},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nwJ,"SimpleRowGraphPlacer/1",1292),nrr(1262,1,nbt,tS),nTm.Lb=function(n){var t;return!!(t=Im(ntP(Im(n,243).b,(ns8(),nKV)),74))&&0!=t.b},nTm.Fb=function(n){return this===n},nTm.Mb=function(n){var t;return!!(t=Im(ntP(Im(n,243).b,(ns8(),nKV)),74))&&0!=t.b},AY(nw0,"CompoundGraphPostprocessor/1",1262),nrr(1261,1,nw2,w5),nTm.pf=function(n,t){YE(this,Im(n,37),t)},AY(nw0,"CompoundGraphPreprocessor",1261),nrr(441,1,{441:1},W6),nTm.c=!1,AY(nw0,"CompoundGraphPreprocessor/ExternalPort",441),nrr(243,1,{243:1},P1),nTm.Ib=function(){return MP(this.c)+":"+nig(this.b)},AY(nw0,"CrossHierarchyEdge",243),nrr(763,1,nlX,fx),nTm.ue=function(n,t){var e,i,r,c;return e=Im(n,243),i=Im(t,243),e.c==(qF(),n_X)&&i.c==n_U?-1:e.c==n_U&&i.c==n_X?1:(r=Wt(e.a,this.a),c=Wt(i.a,this.a),e.c==n_X?c-r:r-c)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nw0,"CrossHierarchyEdgeComparator",763),nrr(299,134,{3:1,299:1,94:1,134:1}),nTm.p=0,AY(nw3,"LGraphElement",299),nrr(17,299,{3:1,17:1,299:1,94:1,134:1},Ns),nTm.Ib=function(){return nig(this)};var nPU=AY(nw3,"LEdge",17);nrr(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},qQ),nTm.Jc=function(n){KA(this,n)},nTm.Kc=function(){return new h1(this.b)},nTm.Ib=function(){return 0==this.b.c.length?"G-unlayered"+ntK(this.a):0==this.a.c.length?"G-layered"+ntK(this.b):"G[layerless"+ntK(this.a)+", layers"+ntK(this.b)+"]"};var nPX=AY(nw3,"LGraph",37);nrr(657,1,{}),nTm.qf=function(){return this.e.n},nTm.We=function(n){return ntP(this.e,n)},nTm.rf=function(){return this.e.o},nTm.sf=function(){return this.e.p},nTm.Xe=function(n){return MH(this.e,n)},nTm.tf=function(n){this.e.n.a=n.a,this.e.n.b=n.b},nTm.uf=function(n){this.e.o.a=n.a,this.e.o.b=n.b},nTm.vf=function(n){this.e.p=n},AY(nw3,"LGraphAdapters/AbstractLShapeAdapter",657),nrr(577,1,{839:1},fD),nTm.wf=function(){var n,t;if(!this.b)for(this.b=Mj(this.a.b.c.length),t=new h1(this.a.b);t.a<t.c.c.length;)n=Im(De(t),70),IE(this.b,new fR(n));return this.b},nTm.b=null,AY(nw3,"LGraphAdapters/LEdgeAdapter",577),nrr(656,1,{},Lv),nTm.xf=function(){var n,t,e,i,r;if(!this.b){for(this.b=new wn,e=new h1(this.a.b);e.a<e.c.c.length;)for(r=new h1(Im(De(e),29).a);r.a<r.c.c.length;)if(i=Im(De(r),10),this.c.Mb(i)&&(IE(this.b,new P6(this,i,this.e)),this.d)){if(MH(i,(nhu(),nxU)))for(t=Im(ntP(i,nxU),15).Kc();t.Ob();)n=Im(t.Pb(),10),IE(this.b,new P6(this,n,!1));if(MH(i,nN1))for(t=Im(ntP(i,nN1),15).Kc();t.Ob();)n=Im(t.Pb(),10),IE(this.b,new P6(this,n,!1))}}return this.b},nTm.qf=function(){throw new gM(nw5).e},nTm.We=function(n){return ntP(this.a,n)},nTm.rf=function(){return this.a.f},nTm.sf=function(){return this.a.p},nTm.Xe=function(n){return MH(this.a,n)},nTm.tf=function(n){throw new gM(nw5).e},nTm.uf=function(n){this.a.f.a=n.a,this.a.f.b=n.b},nTm.vf=function(n){this.a.p=n},nTm.b=null,nTm.d=!1,nTm.e=!1,AY(nw3,"LGraphAdapters/LGraphAdapter",656),nrr(576,657,{181:1},fR),AY(nw3,"LGraphAdapters/LLabelAdapter",576),nrr(575,657,{680:1},P6),nTm.yf=function(){return this.b},nTm.zf=function(){return LV(),LV(),nMv},nTm.wf=function(){var n,t;if(!this.a)for(this.a=Mj(Im(this.e,10).b.c.length),t=new h1(Im(this.e,10).b);t.a<t.c.c.length;)n=Im(De(t),70),IE(this.a,new fR(n));return this.a},nTm.Af=function(){var n;return new S6((n=Im(this.e,10).d).d,n.c,n.a,n.b)},nTm.Bf=function(){return LV(),LV(),nMv},nTm.Cf=function(){var n,t;if(!this.c)for(this.c=Mj(Im(this.e,10).j.c.length),t=new h1(Im(this.e,10).j);t.a<t.c.c.length;)n=Im(De(t),11),IE(this.c,new yl(n,this.d));return this.c},nTm.Df=function(){return gm(So(ntP(Im(this.e,10),(nhu(),nN3))))},nTm.Ef=function(n){Im(this.e,10).d.b=n.b,Im(this.e,10).d.d=n.d,Im(this.e,10).d.c=n.c,Im(this.e,10).d.a=n.a},nTm.Ff=function(n){Im(this.e,10).f.b=n.b,Im(this.e,10).f.d=n.d,Im(this.e,10).f.c=n.c,Im(this.e,10).f.a=n.a},nTm.Gf=function(){var n;vJ(),n=nAG,PT(Im(ntP(Im(this.e,10),(ns8(),nFE)),98))&&(LV(),E_(Im(this.e,10).j,n))},nTm.a=null,nTm.b=null,nTm.c=null,nTm.d=!1,AY(nw3,"LGraphAdapters/LNodeAdapter",575),nrr(1722,657,{838:1},yl),nTm.zf=function(){var n,t,e,i;if(this.d&&Im(this.e,11).i.k==(ntY(),nAQ))return LV(),LV(),nMv;if(!this.a){for(this.a=new wn,e=new h1(Im(this.e,11).e);e.a<e.c.c.length;)n=Im(De(e),17),IE(this.a,new fD(n));if(this.d&&(i=Im(ntP(Im(this.e,11),(nhu(),nxA)),10)))for(t=new OM(TD(VG(i).a.Kc(),new s));nrc(t);)n=Im(K4(t),17),IE(this.a,new fD(n))}return this.a},nTm.wf=function(){var n,t;if(!this.b)for(this.b=Mj(Im(this.e,11).f.c.length),t=new h1(Im(this.e,11).f);t.a<t.c.c.length;)n=Im(De(t),70),IE(this.b,new fR(n));return this.b},nTm.Bf=function(){var n,t,e,i;if(this.d&&Im(this.e,11).i.k==(ntY(),nAQ))return LV(),LV(),nMv;if(!this.c){for(this.c=new wn,e=new h1(Im(this.e,11).g);e.a<e.c.c.length;)n=Im(De(e),17),IE(this.c,new fD(n));if(this.d&&(i=Im(ntP(Im(this.e,11),(nhu(),nxA)),10)))for(t=new OM(TD(Vz(i).a.Kc(),new s));nrc(t);)n=Im(K4(t),17),IE(this.c,new fD(n))}return this.c},nTm.Hf=function(){return Im(this.e,11).j},nTm.If=function(){return gm(So(ntP(Im(this.e,11),(nhu(),nxh))))},nTm.a=null,nTm.b=null,nTm.c=null,nTm.d=!1,AY(nw3,"LGraphAdapters/LPortAdapter",1722),nrr(1723,1,nlX,tP),nTm.ue=function(n,t){return function(n,t){var e,i,r,c;if(0!=(c=n.j.g-t.j.g))return c;if(e=Im(ntP(n,(ns8(),nFT)),19),i=Im(ntP(t,nFT),19),e&&i&&0!=(r=e.a-i.a))return r;switch(n.j.g){case 1:return Vv(n.n.a,t.n.a);case 2:return Vv(n.n.b,t.n.b);case 3:return Vv(t.n.a,n.n.a);case 4:return Vv(t.n.b,n.n.b);default:throw new gg(nw6).e}}(Im(n,11),Im(t,11))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nw3,"LGraphAdapters/PortComparator",1723),nrr(804,1,nfw,tI),nTm.Mb=function(n){return Im(n,10),vJ(),!0},AY(nw3,"LGraphAdapters/lambda$0$Type",804),nrr(392,299,{3:1,299:1,392:1,94:1,134:1}),AY(nw3,"LShape",392),nrr(70,392,{3:1,299:1,70:1,392:1,94:1,134:1},po,EV),nTm.Ib=function(){var n;return null==(n=this.a?this.a:LO(this))?"label":"l_"+n},AY(nw3,"LLabel",70),nrr(207,1,{3:1,4:1,207:1,414:1}),nTm.Fb=function(n){var t;return!!Ti(n,207)&&(t=Im(n,207),this.d==t.d&&this.a==t.a&&this.b==t.b&&this.c==t.c)},nTm.Hb=function(){return(j3(this.b)<<16|j3(this.a)&nfI)^(j3(this.c)<<16|j3(this.d)&nfI)},nTm.Jf=function(n){var t,e,i,r,c,a,u,o,s;for(r=0;r<n.length&&Wy((x5(r,n.length),n.charCodeAt(r)),ndn);)++r;for(t=n.length;t>0&&Wy((x5(t-1,n.length),n.charCodeAt(t-1)),ndt);)--t;if(r<t){o=naX(n.substr(r,t-r),",|;");try{for(a=0,u=o.length;a<u;++a){if(c=o[a],i=naX(c,"="),2!=i.length)throw new gd("Expecting a list of key-value pairs.").e;e=ntH(i[0]),s=nt1(ntH(i[1])),Pv(e,"top")?this.d=s:Pv(e,"left")?this.b=s:Pv(e,"bottom")?this.a=s:Pv(e,"right")&&(this.c=s)}}catch(n){if(Ti(n=Uu(n),127))throw new gd(nde+n).e;throw n.e}}},nTm.Ib=function(){return"[top="+this.d+",left="+this.b+",bottom="+this.a+",right="+this.c+"]"},nTm.a=0,nTm.b=0,nTm.c=0,nTm.d=0,AY(ndi,"Spacing",207),nrr(142,207,ndr,dc,En,S6,PY);var nPW=AY(ndi,"ElkMargin",142);nrr(651,142,ndr,dr),AY(nw3,"LMargin",651),nrr(10,392,{3:1,299:1,10:1,392:1,94:1,134:1},Y$),nTm.Ib=function(){return J6(this)},nTm.i=!1;var nPV=AY(nw3,"LNode",10);nrr(267,22,{3:1,35:1,22:1,267:1},m4);var nPQ=qE(nw3,"LNode/NodeType",267,nE2,function(){return ntY(),Um(xg(nPQ,1),nfh,267,0,[nAV,nAW,nAU,nAQ,nAX,nAz])},function(n){return ntY(),B5((H4(),nAJ),n)});nrr(116,207,ndc,da,ES,PJ);var nPJ=AY(ndi,"ElkPadding",116);nrr(764,116,ndc,du),AY(nw3,"LPadding",764),nrr(11,392,{3:1,299:1,11:1,392:1,94:1,134:1},nt9),nTm.Ib=function(){var n,t,e;return n=new gX,jP((n.a+="p_",n),Zj(this)),this.i&&jP(jS((n.a+="[",n),this.i),"]"),1==this.e.c.length&&0==this.g.c.length&&Im(CA(this.e,0),17).c!=this&&(t=Im(CA(this.e,0),17).c,jP((n.a+=" << ",n),Zj(t)),jP(jS((n.a+="[",n),t.i),"]")),0==this.e.c.length&&1==this.g.c.length&&Im(CA(this.g,0),17).d!=this&&(e=Im(CA(this.g,0),17).d,jP((n.a+=" >> ",n),Zj(e)),jP(jS((n.a+="[",n),e.i),"]")),n.a},nTm.c=!0,nTm.d=!1;var nPY=AY(nw3,"LPort",11);nrr(397,1,nh5,fK),nTm.Jc=function(n){KA(this,n)},nTm.Kc=function(){return new fF(new h1(this.a.e))},AY(nw3,"LPort/1",397),nrr(1290,1,nhF,fF),nTm.Nb=function(n){Ao(this,n)},nTm.Pb=function(){return Im(De(this.a),17).c},nTm.Ob=function(){return EB(this.a)},nTm.Qb=function(){AE(this.a)},AY(nw3,"LPort/1/1",1290),nrr(359,1,nh5,f_),nTm.Jc=function(n){KA(this,n)},nTm.Kc=function(){return new fB(new h1(this.a.g))},AY(nw3,"LPort/2",359),nrr(762,1,nhF,fB),nTm.Nb=function(n){Ao(this,n)},nTm.Pb=function(){return Im(De(this.a),17).d},nTm.Ob=function(){return EB(this.a)},nTm.Qb=function(){AE(this.a)},AY(nw3,"LPort/2/1",762),nrr(1283,1,nh5,ya),nTm.Jc=function(n){KA(this,n)},nTm.Kc=function(){return new Fm(this)},AY(nw3,"LPort/CombineIter",1283),nrr(201,1,nhF,Fm),nTm.Nb=function(n){Ao(this,n)},nTm.Qb=function(){py()},nTm.Ob=function(){return Mh(this)},nTm.Pb=function(){return EB(this.a)?De(this.a):De(this.b)},AY(nw3,"LPort/CombineIter/1",201),nrr(1285,1,nbt,tC),nTm.Lb=function(n){return OG(n)},nTm.Fb=function(n){return this===n},nTm.Mb=function(n){return zn(),0!=Im(n,11).e.c.length},AY(nw3,"LPort/lambda$0$Type",1285),nrr(1284,1,nbt,tO),nTm.Lb=function(n){return Oz(n)},nTm.Fb=function(n){return this===n},nTm.Mb=function(n){return zn(),0!=Im(n,11).g.c.length},AY(nw3,"LPort/lambda$1$Type",1284),nrr(1286,1,nbt,tA),nTm.Lb=function(n){return zn(),Im(n,11).j==(nsR(),nW$)},nTm.Fb=function(n){return this===n},nTm.Mb=function(n){return zn(),Im(n,11).j==(nsR(),nW$)},AY(nw3,"LPort/lambda$2$Type",1286),nrr(1287,1,nbt,t$),nTm.Lb=function(n){return zn(),Im(n,11).j==(nsR(),nWA)},nTm.Fb=function(n){return this===n},nTm.Mb=function(n){return zn(),Im(n,11).j==(nsR(),nWA)},AY(nw3,"LPort/lambda$3$Type",1287),nrr(1288,1,nbt,tL),nTm.Lb=function(n){return zn(),Im(n,11).j==(nsR(),nWV)},nTm.Fb=function(n){return this===n},nTm.Mb=function(n){return zn(),Im(n,11).j==(nsR(),nWV)},AY(nw3,"LPort/lambda$4$Type",1288),nrr(1289,1,nbt,tN),nTm.Lb=function(n){return zn(),Im(n,11).j==(nsR(),nWJ)},nTm.Fb=function(n){return this===n},nTm.Mb=function(n){return zn(),Im(n,11).j==(nsR(),nWJ)},AY(nw3,"LPort/lambda$5$Type",1289),nrr(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},$o),nTm.Jc=function(n){KA(this,n)},nTm.Kc=function(){return new h1(this.a)},nTm.Ib=function(){return"L_"+Bb(this.b.b,this,0)+ntK(this.a)},AY(nw3,"Layer",29),nrr(1342,1,{},w4),AY(ndu,ndo,1342),nrr(1346,1,{},tx),nTm.Kb=function(n){return ntr(Im(n,82))},AY(ndu,"ElkGraphImporter/0methodref$connectableShapeToNode$Type",1346),nrr(1349,1,{},tD),nTm.Kb=function(n){return ntr(Im(n,82))},AY(ndu,"ElkGraphImporter/1methodref$connectableShapeToNode$Type",1349),nrr(1343,1,nh1,fH),nTm.td=function(n){niz(this.a,Im(n,118))},AY(ndu,nds,1343),nrr(1344,1,nh1,fq),nTm.td=function(n){niz(this.a,Im(n,118))},AY(ndu,ndh,1344),nrr(1345,1,{},tR),nTm.Kb=function(n){var t;return new CL(null,new x6(((t=Im(n,79)).c||(t.c=new Ph(nCA,t,5,8)),t.c),16))},AY(ndu,ndf,1345),nrr(1347,1,nfw,fG),nTm.Mb=function(n){var t;return t=this.a,HD(Im(n,33),N8(t))},AY(ndu,ndl,1347),nrr(1348,1,{},tK),nTm.Kb=function(n){var t;return new CL(null,new x6(((t=Im(n,79)).b||(t.b=new Ph(nCA,t,4,7)),t.b),16))},AY(ndu,"ElkGraphImporter/lambda$5$Type",1348),nrr(1350,1,nfw,fz),nTm.Mb=function(n){var t;return t=this.a,HD(Im(n,33),N8(t))},AY(ndu,"ElkGraphImporter/lambda$7$Type",1350),nrr(1351,1,nfw,tF),nTm.Mb=function(n){var t;return niM(t=Im(n,79))&&gm(So(nrM(t,(ns8(),nKU))))},AY(ndu,"ElkGraphImporter/lambda$8$Type",1351),nrr(1278,1,{},sf),AY(ndu,"ElkGraphLayoutTransferrer",1278),nrr(1279,1,nfw,fU),nTm.Mb=function(n){var t,e;return t=this.a,e=Im(n,17),v1(),!zR(e.d.i,t)},AY(ndu,"ElkGraphLayoutTransferrer/lambda$0$Type",1279),nrr(1280,1,nh1,fX),nTm.td=function(n){v1(),IE(this.a,Im(n,17))},AY(ndu,"ElkGraphLayoutTransferrer/lambda$1$Type",1280),nrr(1281,1,nfw,fW),nTm.Mb=function(n){var t,e;return t=this.a,e=Im(n,17),v1(),zR(e.d.i,t)},AY(ndu,"ElkGraphLayoutTransferrer/lambda$2$Type",1281),nrr(1282,1,nh1,fV),nTm.td=function(n){v1(),IE(this.a,Im(n,17))},AY(ndu,"ElkGraphLayoutTransferrer/lambda$3$Type",1282),nrr(1485,1,nw2,t_),nTm.pf=function(n,t){var e;e=Im(n,37),ntc(t,ndb,1),vF(BV(new CL(null,new x6(e.b,16)),new tB),new tH),nee(t)},AY(ndw,"CommentNodeMarginCalculator",1485),nrr(1486,1,{},tB),nTm.Kb=function(n){return new CL(null,new x6(Im(n,29).a,16))},AY(ndw,"CommentNodeMarginCalculator/lambda$0$Type",1486),nrr(1487,1,nh1,tH),nTm.td=function(n){!function(n){var t,e,i,r,c,a,u,o,s,h,f,l;if(u=n.d,f=Im(ntP(n,(nhu(),nxU)),15),t=Im(ntP(n,nN1),15),f||t){if(c=gy(Ss(QR(n,(ns8(),nFK)))),a=gy(Ss(QR(n,nFF))),l=0,f){for(s=0,r=f.Kc();r.Ob();)i=Im(r.Pb(),10),s=nTv.Math.max(s,i.o.b),l+=i.o.a;l+=c*(f.gc()-1),u.d+=s+a}if(e=0,t){for(s=0,r=t.Kc();r.Ob();)i=Im(r.Pb(),10),s=nTv.Math.max(s,i.o.b),e+=i.o.a;e+=c*(t.gc()-1),u.a+=s+a}(o=nTv.Math.max(l,e))>n.o.a&&(h=(o-n.o.a)/2,u.b=nTv.Math.max(u.b,h),u.c=nTv.Math.max(u.c,h))}}(Im(n,10))},AY(ndw,"CommentNodeMarginCalculator/lambda$1$Type",1487),nrr(1488,1,nw2,tq),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o;for(ntc(t,"Comment post-processing",1),c=new h1(n.b);c.a<c.c.c.length;){for(r=Im(De(c),29),i=new wn,u=new h1(r.a);u.a<u.c.c.length;)a=Im(De(u),10),o=Im(ntP(a,(nhu(),nxU)),15),e=Im(ntP(a,nN1),15),(o||e)&&(function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;if(d=n.n,g=n.o,l=n.d,f=gy(Ss(QR(n,(ns8(),nFK)))),t){for(h=f*(t.gc()-1),b=0,o=t.Kc();o.Ob();)h+=(a=Im(o.Pb(),10)).o.a,b=nTv.Math.max(b,a.o.b);for(p=d.a-(h-g.a)/2,c=d.b-l.d+b,r=i=g.a/(t.gc()+1),u=t.Kc();u.Ob();)(a=Im(u.Pb(),10)).n.a=p,a.n.b=c-a.o.b,p+=a.o.a+f,(s=nr6(a)).n.a=a.o.a/2-s.a.a,s.n.b=a.o.b,(w=Im(ntP(a,(nhu(),nN2)),11)).e.c.length+w.g.c.length==1&&(w.n.a=r-w.a.a,w.n.b=0,xM(w,n)),r+=i}if(e){for(h=f*(e.gc()-1),b=0,o=e.Kc();o.Ob();)h+=(a=Im(o.Pb(),10)).o.a,b=nTv.Math.max(b,a.o.b);for(p=d.a-(h-g.a)/2,c=d.b+g.b+l.a-b,r=i=g.a/(e.gc()+1),u=e.Kc();u.Ob();)(a=Im(u.Pb(),10)).n.a=p,a.n.b=c,p+=a.o.a+f,(s=nr6(a)).n.a=a.o.a/2-s.a.a,s.n.b=0,(w=Im(ntP(a,(nhu(),nN2)),11)).e.c.length+w.g.c.length==1&&(w.n.a=r-w.a.a,w.n.b=g.b,xM(w,n)),r+=i}}(a,o,e),o&&Uf(i,o),e&&Uf(i,e));Uf(r.a,i)}nee(t)}(Im(n,37),t)},AY(ndw,"CommentPostprocessor",1488),nrr(1489,1,nw2,tG),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(ntc(t,"Comment pre-processing",1),e=0,o=new h1(n.a);o.a<o.c.c.length;)if(gm(So(ntP(u=Im(De(o),10),(ns8(),nKt))))){for(++e,r=0,i=null,s=null,w=new h1(u.j);w.a<w.c.c.length;)r+=(l=Im(De(w),11)).e.c.length+l.g.c.length,1==l.e.c.length&&(s=(i=Im(CA(l.e,0),17)).c),1==l.g.c.length&&(s=(i=Im(CA(l.g,0),17)).d);if(1!=r||s.e.c.length+s.g.c.length!=1||gm(So(ntP(s.i,nKt)))){for(g=new wn,b=new h1(u.j);b.a<b.c.c.length;){for(f=new h1((l=Im(De(b),11)).g);f.a<f.c.c.length;)0==(h=Im(De(f),17)).d.g.c.length||(g.c[g.c.length]=h);for(a=new h1(l.e);a.a<a.c.c.length;)0==(c=Im(De(a),17)).c.e.c.length||(g.c[g.c.length]=c)}for(d=new h1(g);d.a<d.c.c.length;)nuQ(Im(De(d),17),!0)}else(function(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;if(l=!1,f=!1,Ec(Im(ntP(i,(ns8(),nFE)),98))){a=!1,u=!1;c:for(w=new h1(i.j);w.a<w.c.c.length;)for(b=Im(De(w),11),d=AS(qO(Um(xg(nEJ,1),nhA,20,0,[new fK(b),new f_(b)])));nrc(d);)if(!gm(So(ntP(Im(K4(d),11).i,nKt)))){if(b.j==(nsR(),nW$)){a=!0;break c}if(b.j==nWV){u=!0;break c}}l=u&&!a,f=a&&!u}if(l||f||0==i.b.c.length)p=!f;else{for(h=0,s=new h1(i.b);s.a<s.c.c.length;)h+=(o=Im(De(s),70)).n.b+o.o.b/2;h/=i.b.c.length,p=h>=i.o.b/2}(p?(g=Im(ntP(i,(nhu(),nxU)),15))?l?c=g:(r=Im(ntP(i,nN1),15))?c=g.gc()<=r.gc()?g:r:(c=new wn,UU(i,nN1,c)):(c=new wn,UU(i,nxU,c)):(r=Im(ntP(i,(nhu(),nN1)),15))?f?c=r:(g=Im(ntP(i,nxU),15))?c=r.gc()<=g.gc()?r:g:(c=new wn,UU(i,nxU,c)):(c=new wn,UU(i,nN1,c)),c.Fc(n),UU(n,(nhu(),nN2),e),t.d==e)?(xj(t,null),e.e.c.length+e.g.c.length==0&&xM(e,null),(v=Im(ntP(e,(nhu(),nxA)),10))&&(Bh((m=v.c).a,v),0==m.a.c.length&&Bh($L(v).b,m))):(xE(t,null),e.e.c.length+e.g.c.length==0&&xM(e,null)),Lq(t.a)})(u,i,s,s.i),AE(o)}t.n&&IJ(t,"Found "+e+" comment boxes"),nee(t)}(Im(n,37),t)},AY(ndw,"CommentPreprocessor",1489),nrr(1490,1,nw2,tz),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u;for(ntc(t,"Constraints Postprocessor",1),a=0,c=new h1(n.b);c.a<c.c.c.length;){for(r=Im(De(c),29),u=0,i=new h1(r.a);i.a<i.c.c.length;)(e=Im(De(i),10)).k==(ntY(),nAV)&&(UU(e,(ns8(),nKZ),Va(a)),UU(e,nKv,Va(u)),++u);++a}nee(t)}(Im(n,37),t)},AY(ndw,"ConstraintsPostprocessor",1490),nrr(1491,1,nw2,tU),nTm.pf=function(n,t){var e;e=Im(n,37),ntc(t,"Edge and layer constraint edge reversal",1),function(n){var t,e,i,r,c,a,u,o,s,h,f;for(s=new h1(n);s.a<s.c.c.length;){switch(o=Im(De(s),10),a=Im(ntP(o,(ns8(),nKY)),163),c=null,a.g){case 1:case 2:UK(),c=nNc;break;case 3:case 4:UK(),c=nNi}if(c)UU(o,(nhu(),nN9),(UK(),nNc)),c==nNi?ncm(o,a,(qF(),n_U)):c==nNc&&ncm(o,a,(qF(),n_X));else if(Ec(Im(ntP(o,nFE),98))&&0!=o.j.c.length){for(t=!0,f=new h1(o.j);f.a<f.c.c.length;){if(!((h=Im(De(f),11)).j==(nsR(),nWA)&&h.e.c.length-h.g.c.length>0||h.j==nWJ&&h.e.c.length-h.g.c.length<0)){t=!1;break}for(r=new h1(h.g);r.a<r.c.c.length;)if(e=Im(De(r),17),(u=Im(ntP(e.d.i,nKY),163))==(VJ(),nxV)||u==nxQ){t=!1;break}for(i=new h1(h.e);i.a<i.c.c.length;)if(e=Im(De(i),17),(u=Im(ntP(e.c.i,nKY),163))==(VJ(),nxX)||u==nxW){t=!1;break}}t&&ncm(o,a,(qF(),n_W))}}}(function(n){var t,e,i,r,c;for(c=new Fq(n.a.c.length),r=new h1(n.a);r.a<r.c.c.length;){switch(i=Im(De(r),10),e=Im(ntP(i,(ns8(),nKY)),163),t=null,e.g){case 1:case 2:UK(),t=nNc;break;case 3:case 4:UK(),t=nNi}t?(UU(i,(nhu(),nN9),(UK(),nNc)),t==nNi?ncm(i,e,(qF(),n_U)):t==nNc&&ncm(i,e,(qF(),n_X))):c.c[c.c.length]=i}return c}(e)),nee(t)},AY(ndw,"EdgeAndLayerConstraintEdgeReverser",1491),nrr(1492,1,nw2,tX),nTm.pf=function(n,t){var e;e=Im(n,37),ntc(t,"End label post-processing",1),vF(Lb(BV(new CL(null,new x6(e.b,16)),new tW),new tV),new tQ),nee(t)},AY(ndw,"EndLabelPostprocessor",1492),nrr(1493,1,{},tW),nTm.Kb=function(n){return new CL(null,new x6(Im(n,29).a,16))},AY(ndw,"EndLabelPostprocessor/lambda$0$Type",1493),nrr(1494,1,nfw,tV),nTm.Mb=function(n){var t;return(t=Im(n,10)).k==(ntY(),nAV)&&MH(t,(nhu(),nN7))},AY(ndw,"EndLabelPostprocessor/lambda$1$Type",1494),nrr(1495,1,nh1,tQ),nTm.td=function(n){!function(n){var t,e,i,r,c;for(t=Im(ntP(n,(nhu(),nN7)),83),c=n.n,i=t.Cc().Kc();i.Ob();)r=(e=Im(i.Pb(),306)).i,r.c+=c.a,r.d+=c.b,e.c?nc6(e):nc8(e);UU(n,nN7,null)}(Im(n,10))},AY(ndw,"EndLabelPostprocessor/lambda$2$Type",1495),nrr(1496,1,nw2,tJ),nTm.pf=function(n,t){var e,i,r,c;e=Im(n,37),ntc(t,"End label pre-processing",1),i=gy(Ss(ntP(e,(ns8(),nFq)))),r=gy(Ss(ntP(e,nFX))),c=Er(Im(ntP(e,nKE),103)),vF(BV(new CL(null,new x6(e.b,16)),new tY),new P3(i,r,c)),nee(t)},AY(ndw,"EndLabelPreprocessor",1496),nrr(1497,1,{},tY),nTm.Kb=function(n){return new CL(null,new x6(Im(n,29).a,16))},AY(ndw,"EndLabelPreprocessor/lambda$0$Type",1497),nrr(1498,1,nh1,P3),nTm.td=function(n){var t,e,i;t=this.a,e=this.b,i=this.c,function(n,t,e,i){var r,c,a,u,o,s;for(u=0,o=_f(nSd,nbg,306,a=n.j.c.length,0,1);u<a;u++)(c=Im(CA(n.j,u),11)).p=u,o[u]=function(n,t,e){var i,r,c,a,u,o;if(!n||0==n.c.length)return null;for(c=new NI(t,!e),r=new h1(n);r.a<r.c.c.length;)i=Im(De(r),70),nec(c,(vJ(),new fR(i)));return(a=c.i).a=(o=c.n,c.e.b+o.d+o.a),a.b=(u=c.n,c.e.a+u.b+u.c),c}(nru(c),e,i);for(function(n,t,e,i,r){var c,a,u,o;for(o=new PR(c=Im(pf(nCy),9),Im(Sz(c,c.length),9),0),u=new h1(n.j);u.a<u.c.c.length;)t[(a=Im(De(u),11)).p]&&(function(n,t,e){var i,r,c,a,u;switch(i=t.i,c=n.i.o,r=n.i.d,u=n.n,a=Xt(Um(xg(nCa,1),nhJ,8,0,[u,n.a])),n.j.g){case 1:ST(t,(B$(),nS2)),i.d=-r.d-e-i.a,Im(Im(CA(t.d,0),181).We((nhu(),nxd)),285)==(ZR(),nX6)?(_I(t,(_1(),nS1)),i.c=a.a-gy(Ss(ntP(n,nxk)))-e-i.b):(_I(t,(_1(),nSZ)),i.c=a.a+gy(Ss(ntP(n,nxk)))+e);break;case 2:_I(t,(_1(),nSZ)),i.c=c.a+r.c+e,Im(Im(CA(t.d,0),181).We((nhu(),nxd)),285)==(ZR(),nX6)?(ST(t,(B$(),nS2)),i.d=a.b-gy(Ss(ntP(n,nxk)))-e-i.a):(ST(t,(B$(),nS4)),i.d=a.b+gy(Ss(ntP(n,nxk)))+e);break;case 3:ST(t,(B$(),nS4)),i.d=c.b+r.a+e,Im(Im(CA(t.d,0),181).We((nhu(),nxd)),285)==(ZR(),nX6)?(_I(t,(_1(),nS1)),i.c=a.a-gy(Ss(ntP(n,nxk)))-e-i.b):(_I(t,(_1(),nSZ)),i.c=a.a+gy(Ss(ntP(n,nxk)))+e);break;case 4:_I(t,(_1(),nS1)),i.c=-r.b-e-i.b,Im(Im(CA(t.d,0),181).We((nhu(),nxd)),285)==(ZR(),nX6)?(ST(t,(B$(),nS2)),i.d=a.b-gy(Ss(ntP(n,nxk)))-e-i.a):(ST(t,(B$(),nS4)),i.d=a.b+gy(Ss(ntP(n,nxk)))+e)}}(a,t[a.p],i),Gv(o,a.j));r?(nnZ(n,t,(nsR(),nWA),2*e,i),nnZ(n,t,nWJ,2*e,i)):(nnZ(n,t,(nsR(),nW$),2*e,i),nnZ(n,t,nWV,2*e,i))}(n,o,e,t,i),s=new wt,r=0;r<o.length;r++)o[r]&&$J(s,Im(CA(n.j,r),11),o[r]);s.f.c+s.g.c!=0&&(UU(n,(nhu(),nN7),s),function(n,t){var e,i,r,c,a,u;for(i=0,c=n.d,u=n.o,a=new Lj(-c.b,-c.d,c.b+u.a+c.c,c.d+u.b+c.a),r=t.length;i<r;++i)(e=t[i])&&neM(a,e.i);c.b=-a.c,c.d=-a.d,c.c=a.b-c.b-u.a,c.a=a.a-c.d-u.b}(n,o))}(Im(n,10),t,e,i)},nTm.a=0,nTm.b=0,nTm.c=!1,AY(ndw,"EndLabelPreprocessor/lambda$1$Type",1498),nrr(1499,1,nfw,tZ),nTm.Mb=function(n){return jf(ntP(Im(n,70),(ns8(),nKI)))===jf((HH(),nXx))},AY(ndw,"EndLabelPreprocessor/lambda$2$Type",1499),nrr(1500,1,nh1,fQ),nTm.td=function(n){I2(this.a,Im(n,70))},AY(ndw,"EndLabelPreprocessor/lambda$3$Type",1500),nrr(1501,1,nfw,t1),nTm.Mb=function(n){return jf(ntP(Im(n,70),(ns8(),nKI)))===jf((HH(),nXN))},AY(ndw,"EndLabelPreprocessor/lambda$4$Type",1501),nrr(1502,1,nh1,fJ),nTm.td=function(n){I2(this.a,Im(n,70))},AY(ndw,"EndLabelPreprocessor/lambda$5$Type",1502),nrr(1551,1,nw2,sh),nTm.pf=function(n,t){var e;e=Im(n,37),ntc(t,"Sort end labels",1),vF(Lb(BV(new CL(null,new x6(e.b,16)),new t2),new t3),new t4),nee(t)},AY(ndw,"EndLabelSorter",1551),nrr(1552,1,nlX,t0),nTm.ue=function(n,t){var e,i,r,c;return e=Im(n,456),i=Im(t,456),0!=(r=EG(e.a.c.p,i.a.c.p))?r:0!=(c=EG(e.a.d.i.p,i.a.d.i.p))?c:EG(i.a.d.p,e.a.d.p)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndw,"EndLabelSorter/1",1552),nrr(456,1,{456:1},LX),AY(ndw,"EndLabelSorter/LabelGroup",456),nrr(1553,1,{},t2),nTm.Kb=function(n){return v4(),new CL(null,new x6(Im(n,29).a,16))},AY(ndw,"EndLabelSorter/lambda$0$Type",1553),nrr(1554,1,nfw,t3),nTm.Mb=function(n){return v4(),Im(n,10).k==(ntY(),nAV)},AY(ndw,"EndLabelSorter/lambda$1$Type",1554),nrr(1555,1,nh1,t4),nTm.td=function(n){!function(n){var t,e,i,r;if(t=!1,MH(n,(nhu(),nN7)))for(e=Im(ntP(n,nN7),83),r=new h1(n.j);r.a<r.c.c.length;)(function(n){var t,e,i;for(t=0,e=new h1(n.e);e.a<e.c.c.length;)KD(new CL(null,new x6(Im(De(e),17).b,16)),new t5)&&++t;for(i=new h1(n.g);i.a<i.c.c.length;)KD(new CL(null,new x6(Im(De(i),17).b,16)),new t6)&&++t;return t>=2})(i=Im(De(r),11))&&(t||(function(n){var t,e,i,r,c;for(e=0,t=new h1(n.b);t.a<t.c.c.length;)for(r=new h1(Im(De(t),29).a);r.a<r.c.c.length;)for((i=Im(De(r),10)).p=e++,c=new h1(i.j);c.a<c.c.c.length;)Im(De(c),11).p=e++}($L(n)),t=!0),function(n){var t,e,i;for(E_(e=function(n){var t,e,i,r;for(e=new wt,r=new h1(n.d);r.a<r.c.c.length;)i=Im(De(r),181),t=Im(i.We((nhu(),nxn)),17),Nj(e.f,t)||$J(e,t,new LX(t)),IE(Im(jh(Nj(e.f,t)),456).b,i);return new PB(new hD(e))}(n),nA5),(i=n.d).c=_f(nEX,nhA,1,0,5,1),t=new h1(e);t.a<t.c.c.length;)Uf(i,Im(De(t),456).b)}(Im(e.xc(i),306)))}(Im(n,10))},AY(ndw,"EndLabelSorter/lambda$2$Type",1555),nrr(1556,1,nfw,t5),nTm.Mb=function(n){return v4(),jf(ntP(Im(n,70),(ns8(),nKI)))===jf((HH(),nXN))},AY(ndw,"EndLabelSorter/lambda$3$Type",1556),nrr(1557,1,nfw,t6),nTm.Mb=function(n){return v4(),jf(ntP(Im(n,70),(ns8(),nKI)))===jf((HH(),nXx))},AY(ndw,"EndLabelSorter/lambda$4$Type",1557),nrr(1503,1,nw2,t8),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a;for(n.b=gy(Ss(ntP(t,(ns8(),nFH)))),n.c=gy(Ss(ntP(t,nFz))),n.d=Im(ntP(t,nKx),336),n.a=Im(ntP(t,nKr),275),function(n){var t,e,i,r;for(i=new h1(n.b);i.a<i.c.c.length;)for(e=Im(De(i),29),t=0,r=new h1(e.a);r.a<r.c.c.length;)Im(De(r),10).p=t++}(t),r=(c=Im(Kc(Lb(Lb(BV(BV(new CL(null,new x6(t.b,16)),new t9),new t7),new en),new et),_x(new B,new _,new ne,Um(xg(nMz,1),nfh,132,0,[(XW(),nM2)]))),15)).Kc();r.Ob();)e=Im(r.Pb(),17),Im(ntP(e,(nhu(),nxH)),15).Jc(new fY(n)),UU(e,nxH,null);for(i=c.Kc();i.Ob();)e=Im(i.Pb(),17),a=Im(ntP(e,(nhu(),nxq)),17),function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;if(!t.dc()){if(r=new dd,f=(a=e||Im(t.Xb(0),17)).c,ncS(),!((s=f.i.k)==(ntY(),nAV)||s==nAQ||s==nAU||s==nAz))throw new gd("The target node of the edge must be a normal node or a northSouthPort.").e;for(jO(r,Xt(Um(xg(nCa,1),nhJ,8,0,[f.i.n,f.n,f.a]))),(nsR(),nWq).Hc(f.j)&&(b=gy(Ss(ntP(f,(nhu(),nxB)))),KL(r,new kp(Xt(Um(xg(nCa,1),nhJ,8,0,[f.i.n,f.n,f.a])).a,b),r.c.b,r.c)),o=null,i=!1,u=t.Kc();u.Ob();)0!=(c=Im(u.Pb(),17).a).b&&(i?(KL(r,To(S9(o,(MK(0!=c.b),Im(c.a.a.c,8))),.5),r.c.b,r.c),i=!1):i=!0,o=E1((MK(0!=c.b),Im(c.c.b.c,8))),Gz(r,c),Lq(c));l=a.d,nWq.Hc(l.j)&&(b=gy(Ss(ntP(l,(nhu(),nxB)))),KL(r,new kp(Xt(Um(xg(nCa,1),nhJ,8,0,[l.i.n,l.n,l.a])).a,b),r.c.b,r.c)),jO(r,Xt(Um(xg(nCa,1),nhJ,8,0,[l.i.n,l.n,l.a]))),n.d==(XJ(),n_3)&&(MK(0!=r.b),w=Im(r.a.a.c,8),d=Im(J7(r,1),8),g=new xH(XM(f.j)),g.a*=5,g.b*=5,p=S7(new kp(d.a,d.b),w),S9(v=new kp(xa(g.a,p.a),xa(g.b,p.b)),w),AK(Jz(r,1),v),MK(0!=r.b),m=Im(r.c.b.c,8),y=Im(J7(r,r.b-2),8),g=new xH(XM(l.j)),g.a*=5,g.b*=5,p=S7(new kp(y.a,y.b),m),S9(k=new kp(xa(g.a,p.a),xa(g.b,p.b)),m),Mq(r,r.b-1,k)),h=new nu1(r),Gz(a.a,YK(h))}}(n,Im(ntP(e,nx_),15),a),UU(e,nx_,null)}(this,Im(n,37))},nTm.b=0,nTm.c=0,AY(ndw,"FinalSplineBendpointsCalculator",1503),nrr(1504,1,{},t9),nTm.Kb=function(n){return new CL(null,new x6(Im(n,29).a,16))},AY(ndw,"FinalSplineBendpointsCalculator/lambda$0$Type",1504),nrr(1505,1,{},t7),nTm.Kb=function(n){return new CL(null,new A$(new OM(TD(Vz(Im(n,10)).a.Kc(),new s))))},AY(ndw,"FinalSplineBendpointsCalculator/lambda$1$Type",1505),nrr(1506,1,nfw,en),nTm.Mb=function(n){return!KR(Im(n,17))},AY(ndw,"FinalSplineBendpointsCalculator/lambda$2$Type",1506),nrr(1507,1,nfw,et),nTm.Mb=function(n){return MH(Im(n,17),(nhu(),nxH))},AY(ndw,"FinalSplineBendpointsCalculator/lambda$3$Type",1507),nrr(1508,1,nh1,fY),nTm.td=function(n){!function(n,t){var e,i,r,c,a;if(!t.e){for(t.e=!0,i=t.d.a.ec().Kc();i.Ob();){if(e=Im(i.Pb(),17),t.o&&1>=t.d.a.gc()){a=new kp((c=t.a.c)+(t.a.c+t.a.b-c)/2,t.b),I2(Im(t.d.a.ec().Kc().Pb(),17).a,a);continue}if((r=Im($a(t.c,e),459)).b||r.c){!function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;s=e.a.c,a=e.a.c+e.a.b,l=(c=Im($a(e.c,t),459)).f,b=c.a,u=c.b?new kp(a,l):new kp(s,l),h=c.c?new kp(s,b):new kp(a,b),r=s,e.p||(r+=n.c),r+=e.F+e.v*n.b,o=new kp(r,l),f=new kp(r,b),qL(t.a,Um(xg(nCa,1),nhJ,8,0,[u,o])),e.d.a.gc()>1&&(i=new kp(r,e.b),I2(t.a,i)),qL(t.a,Um(xg(nCa,1),nhJ,8,0,[f,h]))}(n,e,t);continue}n.d==(XJ(),n_5)&&(r.d||r.e)&&function(n,t){var e,i,r,c;return n.a==(ntW(),nNI)||(r=t.a.c,e=t.a.c+t.a.b,(!t.j||(c=(i=t.A).c.c.a-i.o.a/2,!(r-(i.n.a+i.o.a)>c)))&&(!t.q||(c=(i=t.C).c.c.a-i.o.a/2,!(i.n.a-e>c))))}(n,t)&&1>=t.d.a.gc()?function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T;u=Im($a(t.c,n),459),g=t.a.c,o=t.a.c+t.a.b,a=(E=u.f)<(T=u.a),b=new kp(g,E),p=new kp(o,T),w=new kp(r=(g+o)/2,E),v=new kp(r,T),c=function(n,t,e){var i,r,c;if(i=0,r=0,n.c)for(c=new h1(n.d.i.j);c.a<c.c.c.length;)i+=Im(De(c),11).e.c.length;else i=1;if(n.d)for(c=new h1(n.c.i.j);c.a<c.c.c.length;)r+=Im(De(c),11).g.c.length;else r=1;return(e+t)/2+.4*NU(I9(r-i))*(e-t)}(n,E,T),y=x9(t.B),k=new kp(r,c),j=x9(t.D),e=function(n){var t,e,i;for(nc0(),e=_f(nCa,nhJ,8,2,0,1),i=0,t=0;t<2;t++)i+=.5,e[t]=function(n,t){var e,i,r,c,a,u;for(i=0,r=t.length-1,a=0,u=0;i<=r;i++)c=t[i],e=function(n,t){if(n<0||t<0)throw new gd("k and n must be positive").e;if(!(t>n))return 0==t||t==n?1:0==n?0:nnp(n)/(nnp(t)*nnp(n-t));throw new gd("k must be smaller than n").e}(r,i)*WA(1-n,r-i)*WA(n,i),a+=c.a*e,u+=c.b*e;return new kp(a,u)}(i,n);return e}(Um(xg(nCa,1),nhJ,8,0,[y,k,j])),f=!1,(d=t.B.i)&&d.c&&u.d&&((s=a&&d.p<d.c.a.c.length-1||!a&&d.p>0)?s&&(h=d.p,a?++h:--h,f=!(nca(i=UH(Im(CA(d.c.a,h),10)),y,e[0])||OV(i,y,e[0]))):f=!0),l=!1,(m=t.D.i)&&m.c&&u.e&&(a&&m.p>0||!a&&m.p<m.c.a.c.length-1?(h=m.p,a?--h:++h,l=!(nca(i=UH(Im(CA(m.c.a,h),10)),e[0],j)||OV(i,e[0],j))):l=!0),f&&l&&I2(n.a,k),f||qL(n.a,Um(xg(nCa,1),nhJ,8,0,[b,w])),l||qL(n.a,Um(xg(nCa,1),nhJ,8,0,[v,p]))}(e,t):function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;s=e.a.c,a=e.a.c+e.a.b,l=(c=Im($a(e.c,t),459)).f,b=c.a,u=new kp(s,l),h=new kp(a,b),r=s,e.p||(r+=n.c),r+=e.F+e.v*n.b,o=new kp(r,l),f=new kp(r,b),qL(t.a,Um(xg(nCa,1),nhJ,8,0,[u,o])),e.d.a.gc()>1&&(i=new kp(r,e.b),I2(t.a,i)),qL(t.a,Um(xg(nCa,1),nhJ,8,0,[f,h]))}(n,e,t)}t.k&&KA(t.d,new ee)}}(this.a,Im(n,128))},AY(ndw,"FinalSplineBendpointsCalculator/lambda$4$Type",1508),nrr(1509,1,nh1,ee),nTm.td=function(n){ne_(Im(n,17).a)},AY(ndw,"FinalSplineBendpointsCalculator/lambda$5$Type",1509),nrr(792,1,nw2,fZ),nTm.pf=function(n,t){!function(n,t,e){var i,r;for(ntc(e,"Graph transformation ("+n.a+")",1),r=Da(t.a),i=new h1(t.b);i.a<i.c.c.length;)Uf(r,Im(De(i),29).a);if(Im(ntP(t,(ns8(),nKT)),419)==(Ht(),nNn))switch(Im(ntP(t,nKE),103).g){case 2:Rc(t,r);break;case 3:QX(t,r);break;case 4:n.a==(G$(),nA8)?(QX(t,r),Rr(t,r)):(Rr(t,r),QX(t,r))}else if(n.a==(G$(),nA8))switch(Im(ntP(t,nKE),103).g){case 2:Rc(t,r),Rr(t,r);break;case 3:QX(t,r),Rc(t,r);break;case 4:Rc(t,r),QX(t,r)}else switch(Im(ntP(t,nKE),103).g){case 2:Rc(t,r),Rr(t,r);break;case 3:Rc(t,r),QX(t,r);break;case 4:QX(t,r),Rc(t,r)}nee(e)}(this,Im(n,37),t)},AY(ndw,"GraphTransformer",792),nrr(511,22,{3:1,35:1,22:1,511:1},m5);var nPZ=qE(ndw,"GraphTransformer/Mode",511,nE2,function(){return G$(),Um(xg(nPZ,1),nfh,511,0,[nA8,nA6])},function(n){return G$(),B5((Kh(),nA9),n)});nrr(1510,1,nw2,ei),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o,s;for(ntc(t,"Resize child graph to fit parent.",1),i=new h1(n.b);i.a<i.c.c.length;)e=Im(De(i),29),Uf(n.a,e.a),e.a.c=_f(nEX,nhA,1,0,5,1);for(r=new h1(n.a);r.a<r.c.c.length;)xT(Im(De(r),10),null);n.b.c=_f(nEX,nhA,1,0,5,1),o=Im(ntP(n,(ns8(),nFu)),21),s=Im(ntP(n,nFh),21),c=new Ee(a=new kp(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a)),o.Hc((QJ(),nW4))&&(u=Im(ntP(n,nFs),8),s.Hc((na9(),nVt))&&(u.a<=0&&(u.a=20),u.b<=0&&(u.b=20)),c.a=nTv.Math.max(a.a,u.a),c.b=nTv.Math.max(a.b,u.b)),function(n,t,e){var i,r,c,a,u;if(i=Im(ntP(n,(ns8(),nKf)),21),e.a>t.a&&(i.Hc((nnF(),nz4))?n.c.a+=(e.a-t.a)/2:i.Hc(nz6)&&(n.c.a+=e.a-t.a)),e.b>t.b&&(i.Hc((nnF(),nz9))?n.c.b+=(e.b-t.b)/2:i.Hc(nz8)&&(n.c.b+=e.b-t.b)),Im(ntP(n,(nhu(),nxu)),21).Hc((ncJ(),nNN))&&(e.a>t.a||e.b>t.b))for(a=new h1(n.a);a.a<a.c.c.length;)(c=Im(De(a),10)).k==(ntY(),nAU)&&((r=Im(ntP(c,nxr),61))==(nsR(),nWA)?c.n.a+=e.a-t.a:r==nWV&&(c.n.b+=e.b-t.b));u=n.d,n.f.a=e.a-u.b-u.c,n.f.b=e.b-u.d-u.a}(n,a,c),n.e&&function(n,t){var e,i,r,c,a,u;for(r=new h1(t.a);r.a<r.c.c.length;)Ti(c=ntP(i=Im(De(r),10),(nhu(),nxE)),11)&&(u=nuA(t,i,(a=Im(c,11)).o.a,a.o.b),a.n.a=u.a,a.n.b=u.b,ne9(a,Im(ntP(i,nxr),61)));e=new kp(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a),Im(ntP(t,(nhu(),nxu)),21).Hc((ncJ(),nNN))?(UU(n,(ns8(),nFE),(nn2(),nWv)),Im(ntP($L(n),nxu),21).Fc(nNR),no8(n,e,!1)):no8(n,e,!0)}(n.e,n),nee(t)}(Im(n,37),t)},AY(ndw,"HierarchicalNodeResizingProcessor",1510),nrr(1511,1,nw2,er),nTm.pf=function(n,t){var e,i;e=Im(n,37),ntc(t,"Hierarchical port constraint processing",1),PT(Im(ntP(e,(ns8(),nFE)),98))&&(niN((x4(0,(i=e.b).c.length),Im(i.c[0],29))),niN(Im(CA(i,i.c.length-1),29))),function(n){var t,e,i,r,c,a,u,o,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P;if((j=Im(ntP(n,(ns8(),nFE)),98))!=(nn2(),nWk)&&j!=nWj){for(h=new Fq((qz((b=(w=n.b).c.length)+2,nfl),Hp(VK(VK(5,b+2),(b+2)/10|0)))),d=new Fq((qz(b+2,nfl),Hp(VK(VK(5,b+2),(b+2)/10|0)))),IE(h,new wt),IE(h,new wt),IE(d,new wn),IE(d,new wn),k=new wn,t=0;t<b;t++)for(x4(t,w.c.length),e=Im(w.c[t],29),x4(t,h.c.length),E=Im(h.c[t],83),g=new wt,h.c[h.c.length]=g,x4(t,d.c.length),M=Im(d.c[t],15),v=new wn,d.c[d.c.length]=v,r=new h1(e.a);r.a<r.c.c.length;){if(Vo(i=Im(De(r),10))){k.c[k.c.length]=i;continue}for(o=new OM(TD(VG(i).a.Kc(),new s));nrc(o);)Vo(S=(a=Im(K4(o),17)).c.i)&&((T=Im(E.xc(ntP(S,(nhu(),nxE))),10))||(T=niu(n,S),E.zc(ntP(S,nxE),T),M.Fc(T)),xE(a,Im(CA(T.j,1),11)));for(u=new OM(TD(Vz(i).a.Kc(),new s));nrc(u);)Vo(P=(a=Im(K4(u),17)).d.i)&&((p=Im($a(g,ntP(P,(nhu(),nxE))),10))||(p=niu(n,P),$J(g,ntP(P,nxE),p),v.c[v.c.length]=p),xj(a,Im(CA(p.j,0),11)))}for(f=0;f<d.c.length;f++)if(x4(f,d.c.length),!(m=Im(d.c[f],15)).dc())for(l=null,0==f?(l=new $o(n),xC(0,w.c.length),m$(w.c,0,l)):f==h.c.length-1?(l=new $o(n),w.c[w.c.length]=l):(x4(f-1,w.c.length),l=Im(w.c[f-1],29)),c=m.Kc();c.Ob();)xT(Im(c.Pb(),10),l);for(y=new h1(k);y.a<y.c.c.length;)xT(Im(De(y),10),null);UU(n,(nhu(),nxe),k)}}(e),nee(t)},AY(ndw,"HierarchicalPortConstraintProcessor",1511),nrr(1512,1,nlX,ec),nTm.ue=function(n,t){var e,i,r,c,a,u;return e=Im(n,10),i=Im(t,10),a=e.k,r=gy(Ss(ntP(e,(nhu(),nx$)))),u=i.k,c=gy(Ss(ntP(i,nx$))),u!=(ntY(),nAU)?-1:a!=nAU?1:r==c?0:r<c?-1:1},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndw,"HierarchicalPortConstraintProcessor/NodeComparator",1512),nrr(1513,1,nw2,ea),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o,s;for(ntc(t,"Hierarchical port dummy size processing",1),u=new wn,s=new wn,e=2*gy(Ss(ntP(n,(ns8(),nFH)))),r=new h1(n.b);r.a<r.c.c.length;){for(i=Im(De(r),29),u.c=_f(nEX,nhA,1,0,5,1),s.c=_f(nEX,nhA,1,0,5,1),a=new h1(i.a);a.a<a.c.c.length;)(c=Im(De(a),10)).k==(ntY(),nAU)&&((o=Im(ntP(c,(nhu(),nxr)),61))==(nsR(),nW$)?u.c[u.c.length]=c:o!=nWV||(s.c[s.c.length]=c));niZ(u,!0,e),niZ(s,!1,e)}nee(t)}(Im(n,37),t)},AY(ndw,"HierarchicalPortDummySizeProcessor",1513),nrr(1514,1,nw2,eu),nTm.pf=function(n,t){var e,i,r,c,a;e=Im(n,37),ntc(t,"Orthogonally routing hierarchical port edges",1),this.a=0,i=function(n){var t,e,i,r,c,a,u,o,s,h,f;if(o=new wn,!MH(n,(nhu(),nxe)))return o;for(i=Im(ntP(n,nxe),15).Kc();i.Ob();)(function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w;if(h=Im(ntP(n,(nhu(),nxr)),61),i=Im(CA(n.j,0),11),h==(nsR(),nW$)?ne9(i,nWV):h==nWV&&ne9(i,nW$),Im(ntP(t,(ns8(),nFu)),174).Hc((QJ(),nW8))){if(o=gy(Ss(ntP(n,nFV))),s=gy(Ss(ntP(n,nFQ))),a=gy(Ss(ntP(n,nFX))),(u=Im(ntP(t,nFS),21)).Hc((nis(),nWS)))for(e=s,f=n.o.a/2-i.n.a,c=new h1(i.f);c.a<c.c.c.length;)(r=Im(De(c),70)).n.b=e,r.n.a=f-r.o.a/2,e+=r.o.b+a;else if(u.Hc(nWI))for(c=new h1(i.f);c.a<c.c.c.length;)(r=Im(De(c),70)).n.a=o+n.o.a-i.n.a;l=new fE((vJ(),new Lv(t,!1,!1,new tI))),b=new P6(null,n,!1),w=gy(Ss(l.a.We((nha(),nXm)))),nsz(l,b,w)}})(t=Im(i.Pb(),10),n),o.c[o.c.length]=t;for(r=new h1(n.b);r.a<r.c.c.length;)for(a=new h1(Im(De(r),29).a);a.a<a.c.c.length;)(c=Im(De(a),10)).k==(ntY(),nAU)&&(u=Im(ntP(c,nxi),10))&&(xM(s=new nt9,c),ne9(s,Im(ntP(c,nxr),61)),h=Im(CA(u.j,0),11),xE(f=new Ns,s),xj(f,h));for(e=new h1(o);e.a<e.c.c.length;)xT(t=Im(De(e),10),Im(CA(n.b,n.b.c.length-1),29));return o}(e),function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d;for(e=Im(ntP(n,(ns8(),nFE)),98),a=n.f,c=n.d,u=a.a+c.b+c.c,o=0-c.d-n.c.b,h=a.b+c.d+c.a-n.c.b,s=new wn,f=new wn,r=new h1(t);r.a<r.c.c.length;){switch(i=Im(De(r),10),e.g){case 1:case 2:case 3:!function(n){var t,e,i,r,c,a;if((r=Im(CA(n.j,0),11)).e.c.length+r.g.c.length==0)n.n.a=0;else{for(a=0,i=AS(qO(Um(xg(nEJ,1),nhA,20,0,[new fK(r),new f_(r)])));nrc(i);)a+=(e=Im(K4(i),11)).i.n.a+e.n.a+e.a.a;c=(t=Im(ntP(n,(ns8(),nFk)),8))?t.a:0,n.n.a=a/(r.e.c.length+r.g.c.length)-c}}(i);break;case 4:b=(l=Im(ntP(i,nFk),8))?l.a:0,i.n.a=u*gy(Ss(ntP(i,(nhu(),nx$))))-b,z7(i,!0,!1);break;case 5:d=(w=Im(ntP(i,nFk),8))?w.a:0,i.n.a=gy(Ss(ntP(i,(nhu(),nx$))))-d,z7(i,!0,!1),a.a=nTv.Math.max(a.a,i.n.a+i.o.a/2)}switch(Im(ntP(i,(nhu(),nxr)),61).g){case 1:i.n.b=o,s.c[s.c.length]=i;break;case 3:i.n.b=h,f.c[f.c.length]=i}}switch(e.g){case 1:case 2:WZ(s,n),WZ(f,n);break;case 3:W1(s,n),W1(f,n)}}(e,i),function(n,t,e){var i,r,c,a,u,o,h,f,l,b,w;for(o=new j7,h=new j7,b=new j7,w=new j7,u=gy(Ss(ntP(t,(ns8(),nFJ)))),r=gy(Ss(ntP(t,nFB))),a=new h1(e);a.a<a.c.c.length;)if(c=Im(De(a),10),(f=Im(ntP(c,(nhu(),nxr)),61))==(nsR(),nW$))for(h.a.zc(c,h),i=new OM(TD(VG(c).a.Kc(),new s));nrc(i);)Av(o,Im(K4(i),17).c.i);else if(f==nWV)for(w.a.zc(c,w),i=new OM(TD(VG(c).a.Kc(),new s));nrc(i);)Av(b,Im(K4(i),17).c.i);0!=o.a.gc()&&(l=nsi(new AU(2,r),t,o,h,-u-t.c.b))>0&&(n.a=u+(l-1)*r,t.c.b+=n.a,t.f.b+=n.a),0!=b.a.gc()&&(l=nsi(new AU(1,r),t,b,w,t.f.b+u-t.c.b))>0&&(t.f.b+=u+(l-1)*r)}(this,e,i),function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T;for(m=new wn,f=new h1(n.b);f.a<f.c.c.length;)for(w=new h1(Im(De(f),29).a);w.a<w.c.c.length;)if((l=Im(De(w),10)).k==(ntY(),nAU)&&MH(l,(nhu(),nxi))){for(d=null,p=null,g=null,j=new h1(l.j);j.a<j.c.c.length;)switch((k=Im(De(j),11)).j.g){case 4:d=k;break;case 2:p=k;break;default:g=k}for(s=new pi((v=Im(CA(g.g,0),17)).a),S9(o=new Ee(g.n),l.n),AK(Jz(s,0),o),y=Xw(v.a),S9(h=new Ee(g.n),l.n),KL(y,h,y.c.b,y.c),E=Im(ntP(l,nxi),10),T=Im(CA(E.j,0),11),c=0,u=(i=Im(Jx(d.e,_f(nPU,nw8,17,0,0,1)),474)).length;c<u;++c)xj(t=i[c],T),XZ(t.a,t.a.b,s);for(r=0,a=(e=DH(p.g)).length;r<a;++r)xE(t=e[r],T),XZ(t.a,0,y);xE(v,null),xj(v,null),m.c[m.c.length]=l}for(b=new h1(m);b.a<b.c.c.length;)xT(l=Im(De(b),10),null)}(e),r=Im(ntP(e,(ns8(),nFE)),98),nsT((x4(0,(c=e.b).c.length),Im(c.c[0],29)),r,e),nsT(Im(CA(c,c.c.length-1),29),r,e),nu8((x4(0,(a=e.b).c.length),Im(a.c[0],29))),nu8(Im(CA(a,a.c.length-1),29)),nee(t)},nTm.a=0,AY(ndw,"HierarchicalPortOrthogonalEdgeRouter",1514),nrr(1515,1,nlX,eo),nTm.ue=function(n,t){var e,i;return e=Im(n,10),i=Im(t,10),Vv(e.n.a,i.n.a)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndw,"HierarchicalPortOrthogonalEdgeRouter/1",1515),nrr(1516,1,nlX,es),nTm.ue=function(n,t){var e,i;return e=Im(n,10),i=Im(t,10),Vv(gy(Ss(ntP(e,(nhu(),nx$)))),gy(Ss(ntP(i,nx$))))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndw,"HierarchicalPortOrthogonalEdgeRouter/2",1516),nrr(1517,1,nw2,eh),nTm.pf=function(n,t){var e,i;e=Im(n,37),ntc(t,"Hierarchical port position processing",1),(i=e.b).c.length>0&&na7((x4(0,i.c.length),Im(i.c[0],29)),e),i.c.length>1&&na7(Im(CA(i,i.c.length-1),29),e),nee(t)},AY(ndw,"HierarchicalPortPositionProcessor",1517),nrr(1518,1,nw2,sl),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T;for(n.b=t,n.a=Im(ntP(t,(ns8(),nKB)),19).a,n.c=Im(ntP(t,nKq),19).a,0==n.c&&(n.c=nhM),d=new Rn(t.b,0);d.b<d.d.gc();){for(MK(d.b<d.d.gc()),w=Im(d.d.Xb(d.c=d.b++),29),u=new wn,f=-1,m=-1,v=new h1(w.a);v.a<v.c.c.length;)p=Im(De(v),10),RK((P7(),new OM(TD(Vq(p).a.Kc(),new s))))>=n.a&&(i=function(n,t){var e,i,r,c,a,u,o,h;for(e=new ef,r=new OM(TD(VG(t).a.Kc(),new s));nrc(r);)if(!KR(i=Im(K4(r),17))&&nn4(u=i.c.i,n$n)){if(-1==(h=nai(n,u,n$n,nA7)))continue;e.b=nTv.Math.max(e.b,h),e.a||(e.a=new wn),IE(e.a,u)}for(a=new OM(TD(Vz(t).a.Kc(),new s));nrc(a);)if(!KR(c=Im(K4(a),17))&&nn4(o=c.d.i,nA7)){if(-1==(h=nai(n,o,nA7,n$n)))continue;e.d=nTv.Math.max(e.d,h),e.c||(e.c=new wn),IE(e.c,o)}return e}(n,p),f=nTv.Math.max(f,i.b),m=nTv.Math.max(m,i.d),IE(u,new k_(p,i)));for(h=0,j=new wn;h<f;++h)C4(j,0,(MK(d.b>0),d.a.Xb(d.c=--d.b),SH(d,E=new $o(n.b)),MK(d.b<d.d.gc()),d.d.Xb(d.c=d.b++),E));for(a=new h1(u);a.a<a.c.c.length;)if(r=Im(De(a),46),b=Im(r.b,571).a)for(l=new h1(b);l.a<l.c.c.length;)ZX(n,Im(De(l),10),nA7,j);for(o=0,e=new wn;o<m;++o)IE(e,(SH(d,T=new $o(n.b)),T));for(c=new h1(u);c.a<c.c.c.length;)if(r=Im(De(c),46),k=Im(r.b,571).c)for(y=new h1(k);y.a<y.c.c.length;)ZX(n,Im(De(y),10),n$n,e)}for(g=new Rn(t.b,0);g.b<g.d.gc();)MK(g.b<g.d.gc()),0==Im(g.d.Xb(g.c=g.b++),29).a.c.length&&$I(g)}(this,Im(n,37))},nTm.a=0,nTm.c=0,AY(ndw,"HighDegreeNodeLayeringProcessor",1518),nrr(571,1,{571:1},ef),nTm.b=-1,nTm.d=-1,AY(ndw,"HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation",571),nrr(1519,1,{},el),nTm.Kb=function(n){return P7(),VG(Im(n,10))},nTm.Fb=function(n){return this===n},AY(ndw,"HighDegreeNodeLayeringProcessor/lambda$0$Type",1519),nrr(1520,1,{},eb),nTm.Kb=function(n){return P7(),Vz(Im(n,10))},nTm.Fb=function(n){return this===n},AY(ndw,"HighDegreeNodeLayeringProcessor/lambda$1$Type",1520),nrr(1526,1,nw2,ew),nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a,u,o,s,h;for(ntc(e,"Hyperedge merging",1),function(n,t){var e,i,r,c;for((c=Im(Kc(BV(BV(new CL(null,new x6(t.b,16)),new ed),new eg),_x(new B,new _,new ne,Um(xg(nMz,1),nfh,132,0,[(XW(),nM2)]))),15)).Jc(new ep),e=0,r=c.Kc();r.Ob();)-1==(i=Im(r.Pb(),11)).p&&function n(t,e,i){var r,c,a;for(e.p=i,a=AS(qO(Um(xg(nEJ,1),nhA,20,0,[new fK(e),new f_(e)])));nrc(a);)-1==(r=Im(K4(a),11)).p&&n(t,r,i);if(e.i.k==(ntY(),nAW))for(c=new h1(e.i.j);c.a<c.c.c.length;)(r=Im(De(c),11))!=e&&-1==r.p&&n(t,r,i)}(n,i,e++)}(n,t),u=new Rn(t.b,0);u.b<u.d.gc();)if(MK(u.b<u.d.gc()),0!=(s=Im(u.d.Xb(u.c=u.b++),29).a).c.length)for(o=0,i=null,r=null,c=null,a=null;o<s.c.length;o++)x4(o,s.c.length),(r=(i=Im(s.c[o],10)).k)==(ntY(),nAW)&&a==nAW&&(h=function(n,t){var e,i,r,c,a,u,o,s,h,f;return(e=gm(So(ntP(n,(nhu(),nxp)))),u=gm(So(ntP(t,nxp))),i=Im(ntP(n,nxv),11),o=Im(ntP(t,nxv),11),r=Im(ntP(n,nxm),11),s=Im(ntP(t,nxm),11),h=!!i&&i==o,f=!!r&&r==s,e||u)?(c=(!gm(So(ntP(n,nxp)))||gm(So(ntP(n,nxg))))&&(!gm(So(ntP(t,nxp)))||gm(So(ntP(t,nxg)))),a=(!gm(So(ntP(n,nxp)))||!gm(So(ntP(n,nxg))))&&(!gm(So(ntP(t,nxp)))||!gm(So(ntP(t,nxg)))),new P4(h&&c||f&&a,h,f)):new P4(Im(De(new h1(n.j)),11).p==Im(De(new h1(t.j)),11).p,h,f)}(i,c)).a&&(function(n,t,e,i){var r,c,a,u;for(r=Im(nen(t,(nsR(),nWJ)).Kc().Pb(),11),c=Im(nen(t,nWA).Kc().Pb(),11),u=new h1(n.j);u.a<u.c.c.length;){for(a=Im(De(u),11);0!=a.e.c.length;)xj(Im(CA(a.e,0),17),r);for(;0!=a.g.c.length;)xE(Im(CA(a.g,0),17),c)}e||UU(t,(nhu(),nxv),null),i||UU(t,(nhu(),nxm),null)}(i,c,h.b,h.c),x4(o,s.c.length),pR(s.c,o,1),--o,i=c,r=a),c=i,a=r;nee(e)}(this,Im(n,37),t)},AY(ndw,"HyperedgeDummyMerger",1526),nrr(793,1,{},P4),nTm.a=!1,nTm.b=!1,nTm.c=!1,AY(ndw,"HyperedgeDummyMerger/MergeState",793),nrr(1527,1,{},ed),nTm.Kb=function(n){return new CL(null,new x6(Im(n,29).a,16))},AY(ndw,"HyperedgeDummyMerger/lambda$0$Type",1527),nrr(1528,1,{},eg),nTm.Kb=function(n){return new CL(null,new x6(Im(n,10).j,16))},AY(ndw,"HyperedgeDummyMerger/lambda$1$Type",1528),nrr(1529,1,nh1,ep),nTm.td=function(n){Im(n,11).p=-1},AY(ndw,"HyperedgeDummyMerger/lambda$2$Type",1529),nrr(1530,1,nw2,ev),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o,s;for(ntc(t,"Hypernodes processing",1),i=new h1(n.b);i.a<i.c.c.length;)for(a=new h1(Im(De(i),29).a);a.a<a.c.c.length;)if(gm(So(ntP(c=Im(De(a),10),(ns8(),nKG))))&&c.j.c.length<=2){for(s=0,o=0,e=0,r=0,u=new h1(c.j);u.a<u.c.c.length;)switch(Im(De(u),11).j.g){case 1:++s;break;case 2:++o;break;case 3:++e;break;case 4:++r}0==s&&0==e&&function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g;if(i=new wn,r=nhM,c=nhM,a=nhM,e)for(r=n.f.a,w=new h1(t.j);w.a<w.c.c.length;)for(o=new h1(Im(De(w),11).g);o.a<o.c.c.length;)0!=(u=Im(De(o),17)).a.b&&((h=Im(MI(u.a),8)).a<r&&(c=r-h.a,a=nhM,i.c=_f(nEX,nhA,1,0,5,1),r=h.a),h.a<=r&&(i.c[i.c.length]=u,u.a.b>1&&(a=nTv.Math.min(a,nTv.Math.abs(Im(J7(u.a,1),8).b-h.b)))));else for(w=new h1(t.j);w.a<w.c.c.length;)for(o=new h1(Im(De(w),11).e);o.a<o.c.c.length;)0!=(u=Im(De(o),17)).a.b&&((l=Im(MC(u.a),8)).a>r&&(c=l.a-r,a=nhM,i.c=_f(nEX,nhA,1,0,5,1),r=l.a),l.a>=r&&(i.c[i.c.length]=u,u.a.b>1&&(a=nTv.Math.min(a,nTv.Math.abs(Im(J7(u.a,u.a.b-2),8).b-l.b)))));if(0!=i.c.length&&c>t.o.a/2&&a>t.o.b/2){for(xM(b=new nt9,t),ne9(b,(nsR(),nW$)),b.n.a=t.o.a/2,xM(d=new nt9,t),ne9(d,nWV),d.n.a=t.o.a/2,d.n.b=t.o.b,o=new h1(i);o.a<o.c.c.length;)(u=Im(De(o),17),e)?(s=Im(IF(u.a),8),(0==u.a.b?x9(u.d):Im(MI(u.a),8)).b>=s.b?xE(u,d):xE(u,b)):(s=Im((MK(0!=(g=u.a).b),HK(g,g.c.b)),8),(0==u.a.b?x9(u.c):Im(MC(u.a),8)).b>=s.b?xj(u,d):xj(u,b)),(f=Im(ntP(u,(ns8(),nKV)),74))&&Qg(f,s,!0);t.n.a=r-t.o.a/2}}(n,c,r<=o)}nee(t)}(Im(n,37),t)},AY(ndw,"HypernodesProcessor",1530),nrr(1531,1,nw2,em),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o,s,h;for(ntc(t,"Layer constraint edge reversal",1),a=new h1(n.b);a.a<a.c.c.length;){for(r=0,c=Im(De(a),29),h=-1,e=new wn,s=Dq(c.a);r<s.length;r++)i=Im(ntP(s[r],(nhu(),nxf)),303),-1==h?i!=(BL(),nNW)&&(h=r):i==(BL(),nNW)&&(xT(s[r],null),ZF(s[r],h++,c)),i==(BL(),nNU)&&IE(e,s[r]);for(o=new h1(e);o.a<o.c.c.length;)xT(u=Im(De(o),10),null),xT(u,c)}nee(t)}(Im(n,37),t)},AY(ndw,"InLayerConstraintProcessor",1531),nrr(1532,1,nw2,ey),nTm.pf=function(n,t){var e,i;e=Im(n,37),ntc(t,ndb,1),Qa(((i=new fE((vJ(),new Lv(e,!1,!1,new tI)))).b=!1,i)),nee(t)},AY(ndw,"InnermostNodeMarginCalculator",1532),nrr(1533,1,nw2,ek),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u;if(Im(ntP(t,(nhu(),nxu)),21).Hc((ncJ(),nNN))){for(u=new h1(t.a);u.a<u.c.c.length;)(c=Im(De(u),10)).k==(ntY(),nAV)&&(r=Im(ntP(c,(ns8(),nK5)),142),n.c=nTv.Math.min(n.c,c.n.a-r.b),n.a=nTv.Math.max(n.a,c.n.a+c.o.a+r.c),n.d=nTv.Math.min(n.d,c.n.b-r.d),n.b=nTv.Math.max(n.b,c.n.b+c.o.b+r.a));for(a=new h1(t.a);a.a<a.c.c.length;)if((c=Im(De(a),10)).k!=(ntY(),nAV))switch(c.k.g){case 2:if((i=Im(ntP(c,(ns8(),nKY)),163))==(VJ(),nxW)){c.n.a=n.c-10,Z_(c,new ej).Jb(new f1(c));break}if(i==nxQ){c.n.a=n.a+10,Z_(c,new eE).Jb(new f0(c));break}if((e=Im(ntP(c,nxf),303))==(BL(),nNW)){no_(c).Jb(new f2(c)),c.n.b=n.d-10;break}e==nNU&&(no_(c).Jb(new f3(c)),c.n.b=n.b+10);break;default:throw new gd("The node type "+c.k+" is not supported by the "+nP1).e}}}(this,Im(n,37))},nTm.a=nla,nTm.b=nla,nTm.c=nlc,nTm.d=nlc;var nP1=AY(ndw,"InteractiveExternalPortPositioner",1533);nrr(1534,1,{},ej),nTm.Kb=function(n){return Im(n,17).d.i},nTm.Fb=function(n){return this===n},AY(ndw,"InteractiveExternalPortPositioner/lambda$0$Type",1534),nrr(1535,1,{},f1),nTm.Kb=function(n){var t,e;return t=this.a,e=Ss(n),t.n.b=($x(e),e)},nTm.Fb=function(n){return this===n},AY(ndw,"InteractiveExternalPortPositioner/lambda$1$Type",1535),nrr(1536,1,{},eE),nTm.Kb=function(n){return Im(n,17).c.i},nTm.Fb=function(n){return this===n},AY(ndw,"InteractiveExternalPortPositioner/lambda$2$Type",1536),nrr(1537,1,{},f0),nTm.Kb=function(n){var t,e;return t=this.a,e=Ss(n),t.n.b=($x(e),e)},nTm.Fb=function(n){return this===n},AY(ndw,"InteractiveExternalPortPositioner/lambda$3$Type",1537),nrr(1538,1,{},f2),nTm.Kb=function(n){var t,e;return t=this.a,e=Ss(n),t.n.a=($x(e),e+10)},nTm.Fb=function(n){return this===n},AY(ndw,"InteractiveExternalPortPositioner/lambda$4$Type",1538),nrr(1539,1,{},f3),nTm.Kb=function(n){var t,e;return t=this.a,e=Ss(n),t.n.a=($x(e),e+10)},nTm.Fb=function(n){return this===n},AY(ndw,"InteractiveExternalPortPositioner/lambda$5$Type",1539),nrr(77,22,{3:1,35:1,22:1,77:1,234:1},m6),nTm.Kf=function(){switch(this.g){case 15:return new rC;case 22:return new rO;case 47:return new rL;case 28:case 35:return new eN;case 32:return new t_;case 42:return new tq;case 1:return new tG;case 41:return new tz;case 56:return new fZ((G$(),nA8));case 0:return new fZ((G$(),nA6));case 2:return new tU;case 54:return new tX;case 33:return new tJ;case 51:return new t8;case 55:return new ei;case 13:return new er;case 38:return new ea;case 44:return new eu;case 40:return new eh;case 9:return new sl;case 49:return new Mk;case 37:return new ew;case 43:return new ev;case 27:return new em;case 30:return new ey;case 3:return new ek;case 18:return new eM;case 29:return new eS;case 5:return new sb;case 50:return new eT;case 34:return new sw;case 36:return new ex;case 52:return new sh;case 11:return new eR;case 7:return new sg;case 39:return new eK;case 45:return new eF;case 16:return new e_;case 10:return new eB;case 48:return new eq;case 21:return new eG;case 23:return new gh((qB(),nBp));case 8:return new eU;case 12:return new eW;case 4:return new eV;case 19:return new sy;case 17:return new e5;case 53:return new e6;case 6:return new ih;case 25:return new w7;case 46:return new ii;case 31:return new SZ;case 14:return new im;case 26:return new r_;case 20:return new iT;case 24:return new gh((qB(),nBv));default:throw new gd(ndp+(null!=this.f?this.f:""+this.g)).e}};var nP0=qE(ndw,ndv,77,nE2,ncb,function(n){return nhs(),B5((j_(),n$4),n)});nrr(1540,1,nw2,eM),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(ntc(t,"Inverted port preprocessing",1),u=new Rn(n.b,0),e=null,g=new wn;u.b<u.d.gc();){for(d=e,MK(u.b<u.d.gc()),e=Im(u.d.Xb(u.c=u.b++),29),h=new h1(g);h.a<h.c.c.length;)xT(o=Im(De(h),10),d);for(g.c=_f(nEX,nhA,1,0,5,1),f=new h1(e.a);f.a<f.c.c.length;)if((o=Im(De(f),10)).k==(ntY(),nAV)&&Ec(Im(ntP(o,(ns8(),nFE)),98))){for(w=nah(o,(qF(),n_U),(nsR(),nWA)).Kc();w.Ob();)for(r=0,a=(l=Im(w.Pb(),11)).e,c=(i=Im(Jx(a,_f(nPU,nw8,17,a.c.length,0,1)),474)).length;r<c;++r)!function(n,t,e,i){var r,c,a,u,o,s,h,f;if(e.c.i!=t.i)for(h=r=new Y$(n),ntY(),f=nAW,h.k=f,UU(r,(nhu(),nxE),e),UU(r,(ns8(),nFE),(nn2(),nWv)),i.c[i.c.length]=r,xM(a=new nt9,r),ne9(a,(nsR(),nWJ)),xM(u=new nt9,r),ne9(u,nWA),xj(e,a),z5(c=new Ns,e),UU(c,nKV,null),xE(c,u),xj(c,t),nro(r,a,u),s=new Rn(e.b,0);s.b<s.d.gc();)MK(s.b<s.d.gc()),o=Im(s.d.Xb(s.c=s.b++),70),Im(ntP(o,nKI),272)==(HH(),nXN)&&(MH(o,nxn)||UU(o,nxn,e),$I(s),IE(c.b,o))}(n,l,i[r],g);for(b=nah(o,n_X,nWJ).Kc();b.Ob();)for(r=0,a=(l=Im(b.Pb(),11)).g,c=(i=Im(Jx(a,_f(nPU,nw8,17,a.c.length,0,1)),474)).length;r<c;++r)!function(n,t,e,i){var r,c,a,u,o,s,h,f,l;if(e.d.i!=t.i){for(f=r=new Y$(n),ntY(),l=nAW,f.k=l,UU(r,(nhu(),nxE),e),UU(r,(ns8(),nFE),(nn2(),nWv)),i.c[i.c.length]=r,xM(a=new nt9,r),ne9(a,(nsR(),nWJ)),xM(u=new nt9,r),ne9(u,nWA),h=e.d,xj(e,a),z5(c=new Ns,e),UU(c,nKV,null),xE(c,u),xj(c,h),s=new Rn(e.b,0);s.b<s.d.gc();)MK(s.b<s.d.gc()),jf(ntP(o=Im(s.d.Xb(s.c=s.b++),70),nKI))===jf((HH(),nXN))&&(UU(o,nxn,e),$I(s),IE(c.b,o));nro(r,a,u)}}(n,l,i[r],g)}}for(s=new h1(g);s.a<s.c.c.length;)xT(o=Im(De(s),10),e);nee(t)}(Im(n,37),t)},AY(ndw,"InvertedPortProcessor",1540),nrr(1541,1,nw2,eS),nTm.pf=function(n,t){!function(n,t){var e,i,r,c;if(ntc(t,"Node and Port Label Placement and Node Sizing",1),Ej((vJ(),new Lv(n,!0,!0,new eP))),Im(ntP(n,(nhu(),nxu)),21).Hc((ncJ(),nNN)))for(i=(r=Im(ntP(n,(ns8(),nFS)),21)).Hc((nis(),nWP)),c=gm(So(ntP(n,nFP))),e=new h1(n.b);e.a<e.c.c.length;)vF(Lb(new CL(null,new x6(Im(De(e),29).a,16)),new eI),new P5(r,i,c));nee(t)}(Im(n,37),t)},AY(ndw,"LabelAndNodeSizeProcessor",1541),nrr(1542,1,nfw,eP),nTm.Mb=function(n){return Im(n,10).k==(ntY(),nAV)},AY(ndw,"LabelAndNodeSizeProcessor/lambda$0$Type",1542),nrr(1543,1,nfw,eI),nTm.Mb=function(n){return Im(n,10).k==(ntY(),nAU)},AY(ndw,"LabelAndNodeSizeProcessor/lambda$1$Type",1543),nrr(1544,1,nh1,P5),nTm.td=function(n){var t,e,i;t=this.b,e=this.a,i=this.c,function(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d;if(l=gy(Ss(ntP(n,(ns8(),nFV)))),b=gy(Ss(ntP(n,nFQ))),f=gy(Ss(ntP(n,nFX))),u=n.o,a=(c=Im(CA(n.j,0),11)).n,d=function(n,t){var e,i,r;if(0==n.f.c.length)return null;for(r=new Et,e=new h1(n.f);e.a<e.c.c.length;)i=Im(De(e),70).o,r.b=nTv.Math.max(r.b,i.a),r.a+=i.b;return r.a+=(n.f.c.length-1)*t,r}(c,f)){if(t.Hc((nis(),nWS)))switch(Im(ntP(n,(nhu(),nxr)),61).g){case 1:d.c=(u.a-d.b)/2-a.a,d.d=b;break;case 3:d.c=(u.a-d.b)/2-a.a,d.d=-b-d.a;break;case 2:e&&0==c.e.c.length&&0==c.g.c.length?(h=i?d.a:Im(CA(c.f,0),70).o.b,d.d=(u.b-h)/2-a.b):d.d=u.b+b-a.b,d.c=-l-d.b;break;case 4:e&&0==c.e.c.length&&0==c.g.c.length?(h=i?d.a:Im(CA(c.f,0),70).o.b,d.d=(u.b-h)/2-a.b):d.d=u.b+b-a.b,d.c=l}else if(t.Hc(nWI))switch(Im(ntP(n,(nhu(),nxr)),61).g){case 1:case 3:d.c=a.a+l;break;case 2:case 4:e&&!c.c?(h=i?d.a:Im(CA(c.f,0),70).o.b,d.d=(u.b-h)/2-a.b):d.d=a.b+b}for(r=d.d,s=new h1(c.f);s.a<s.c.c.length;)(w=(o=Im(De(s),70)).n).a=d.c,w.b=r,r+=o.o.b+f}}(Im(n,10),t,e,i)},nTm.a=!1,nTm.c=!1,AY(ndw,"LabelAndNodeSizeProcessor/lambda$2$Type",1544),nrr(1545,1,nw2,sb),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o,h,f,l,b,w,d;for(ntc(t,"Label dummy insertions",1),l=new wn,a=gy(Ss(ntP(n,(ns8(),nFq)))),h=gy(Ss(ntP(n,nFX))),f=Im(ntP(n,nKE),103),b=new h1(n.a);b.a<b.c.c.length;)for(c=new OM(TD(Vz(Im(De(b),10)).a.Kc(),new s));nrc(c);)if((r=Im(K4(c),17)).c.i!=r.d.i&&E7(r.b,n$5)){for(d=function(n){var t;return(t=gy(Ss(ntP(n,(ns8(),nKR)))))<0&&UU(n,nKR,t=0),t}(r),w=Mj(r.b.c.length),e=function(n,t,e,i){var r,c,a,u,o;for(u=r=new Y$(n),ntY(),o=nAX,u.k=o,UU(r,(nhu(),nxE),t),UU(r,nxx,i),UU(r,(ns8(),nFE),(nn2(),nWv)),UU(r,nxv,t.c),UU(r,nxm,t.d),ncH(t,r),a=nTv.Math.floor(e/2),c=new h1(r.j);c.a<c.c.c.length;)Im(De(c),11).n.b=a;return r}(n,r,d,w),l.c[l.c.length]=e,i=e.o,u=new Rn(r.b,0);u.b<u.d.gc();)MK(u.b<u.d.gc()),jf(ntP(o=Im(u.d.Xb(u.c=u.b++),70),nKI))===jf((HH(),nXL))&&(f==(W2(),nXA)||f==nXP?(i.a+=o.o.a+h,i.b=nTv.Math.max(i.b,o.o.b)):(i.a=nTv.Math.max(i.a,o.o.a),i.b+=o.o.b+h),w.c[w.c.length]=o,$I(u));f==(W2(),nXA)||f==nXP?(i.a-=h,i.b+=a+d):i.b+=a-h+d}Uf(n.a,l),nee(t)}(Im(n,37),t)},AY(ndw,"LabelDummyInserter",1545),nrr(1546,1,nbt,eC),nTm.Lb=function(n){return jf(ntP(Im(n,70),(ns8(),nKI)))===jf((HH(),nXL))},nTm.Fb=function(n){return this===n},nTm.Mb=function(n){return jf(ntP(Im(n,70),(ns8(),nKI)))===jf((HH(),nXL))},AY(ndw,"LabelDummyInserter/1",1546),nrr(1547,1,nw2,eT),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;for(ntc(t,"Label dummy removal",1),i=gy(Ss(ntP(n,(ns8(),nFq)))),r=gy(Ss(ntP(n,nFX))),o=Im(ntP(n,nKE),103),u=new h1(n.b);u.a<u.c.c.length;)for(h=new Rn(Im(De(u),29).a,0);h.b<h.d.gc();)MK(h.b<h.d.gc()),(s=Im(h.d.Xb(h.c=h.b++),10)).k==(ntY(),nAX)&&(f=Im(ntP(s,(nhu(),nxE)),17),b=gy(Ss(ntP(f,nKR))),a=jf(ntP(s,nxd))===jf((ZR(),nX8)),e=new Ee(s.n),a&&(e.b+=b+i),c=new kp(s.o.a,s.o.b-b-i),l=Im(ntP(s,nxx),15),o==(W2(),nXA)||o==nXP?function(n,t,e,i,r,c){var a,u,o,s;for(u=!pN(Lb(n.Oc(),new fe(new eO))).sd((vQ(),nM5)),a=n,c==(W2(),nXA)&&(a=Ti(a,152)?Fh(Im(a,152)):Ti(a,131)?Im(a,131).a:Ti(a,54)?new d5(a):new vT(a)),s=a.Kc();s.Ob();)(o=Im(s.Pb(),70)).n.a=t.a,u?o.n.b=t.b+(i.b-o.o.b)/2:r?o.n.b=t.b:o.n.b=t.b+i.b-o.o.b,t.a+=o.o.a+e}(l,e,r,c,a,o):function(n,t,e,i){var r,c;for(c=n.Kc();c.Ob();)(r=Im(c.Pb(),70)).n.a=t.a+(i.a-r.o.a)/2,r.n.b=t.b,t.b+=r.o.b+e}(l,e,r,c),Uf(f.b,l),no2(s,jf(ntP(n,nKO))===jf((VY(),nXK))),$I(h));nee(t)}(Im(n,37),t)},AY(ndw,"LabelDummyRemover",1547),nrr(1548,1,nfw,eO),nTm.Mb=function(n){return gm(So(ntP(Im(n,70),(ns8(),nKP))))},AY(ndw,"LabelDummyRemover/lambda$0$Type",1548),nrr(1359,1,nw2,sw),nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w;for(ntc(e,"Label dummy switching",1),i=Im(ntP(t,(ns8(),nKS)),227),function(n){var t,e;for(e=0,t=new h1(n.b);t.a<t.c.c.length;)Im(De(t),29).p=e,++e}(t),r=function(n,t){var e,i,r,c;for(e=new Qn(nP9),neC(),i=Um(xg(nP9,1),nfh,227,0,[nLH,nLG,nLB,nLq,nLz,nL_]),r=0,c=i.length;r<c;++r)S_(e,i[r],new wn);return vF(Lw(Lb(BV(new CL(null,new x6(n.b,16)),new eA),new e$),new f6(t)),new f8(e)),e}(t,i),n.a=_f(nYR,nlf,25,t.b.c.length,15,1),neC(),u=Um(xg(nP9,1),nfh,227,0,[nLH,nLG,nLB,nLq,nLz,nL_]),h=0,b=u.length;h<b;++h)if(((c=u[h])==nLz||c==nL_||c==nLq)&&!Im(T8(r.a,c)?r.b[c.g]:null,15).dc()){!function(n,t){var e,i;for(i=new h1(t.b);i.a<i.c.c.length;)e=Im(De(i),29),n.a[e.p]=function(n){var t,e,i,r;if(Er(Im(ntP(n.b,(ns8(),nKE)),103)))return 0;for(t=0,i=new h1(n.a);i.a<i.c.c.length;)(e=Im(De(i),10)).k==(ntY(),nAV)&&(r=e.o.a,t=nTv.Math.max(t,r));return t}(e)}(n,t);break}for(o=Um(xg(nP9,1),nfh,227,0,[nLH,nLG,nLB,nLq,nLz,nL_]),f=0,w=o.length;f<w;++f)(c=o[f])==nLz||c==nL_||c==nLq||na3(n,Im(T8(r.a,c)?r.b[c.g]:null,15));for(a=Um(xg(nP9,1),nfh,227,0,[nLH,nLG,nLB,nLq,nLz,nL_]),s=0,l=a.length;s<l;++s)((c=a[s])==nLz||c==nL_||c==nLq)&&na3(n,Im(T8(r.a,c)?r.b[c.g]:null,15));n.a=null,nee(e)}(this,Im(n,37),t)},nTm.a=null,AY(ndw,"LabelDummySwitcher",1359),nrr(286,1,{286:1},naK),nTm.c=0,nTm.d=null,nTm.f=0,AY(ndw,"LabelDummySwitcher/LabelDummyInfo",286),nrr(1360,1,{},eA),nTm.Kb=function(n){return Gx(),new CL(null,new x6(Im(n,29).a,16))},AY(ndw,"LabelDummySwitcher/lambda$0$Type",1360),nrr(1361,1,nfw,e$),nTm.Mb=function(n){return Gx(),Im(n,10).k==(ntY(),nAX)},AY(ndw,"LabelDummySwitcher/lambda$1$Type",1361),nrr(1362,1,{},f6),nTm.Kb=function(n){var t,e;return t=this.a,e=Im(n,10),Gx(),new naK(e,t)},AY(ndw,"LabelDummySwitcher/lambda$2$Type",1362),nrr(1363,1,nh1,f8),nTm.td=function(n){var t,e;t=this.a,e=Im(n,286),Gx(),Im($6(t,e.d),15).Fc(e)},AY(ndw,"LabelDummySwitcher/lambda$3$Type",1363),nrr(1364,1,nlX,eL),nTm.ue=function(n,t){var e,i;return e=Im(n,286),i=Im(t,286),Gx(),Vv(i.a.o.a,e.a.o.a)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndw,"LabelDummySwitcher/lambda$4$Type",1364),nrr(791,1,nw2,eN),nTm.pf=function(n,t){var e;e=Im(n,37),ntc(t,"Label management",1),jj(ntP(e,(FI(),nzR))),nee(t)},AY(ndw,"LabelManagementProcessor",791),nrr(1549,1,nw2,ex),nTm.pf=function(n,t){!function(n,t){var e;switch(ntc(t,"Label side selection ("+(e=Im(ntP(n,(ns8(),nKC)),276))+")",1),e.g){case 0:nrl(n,(ZR(),nX6));break;case 1:nrl(n,(ZR(),nX8));break;case 2:nu0(n,(ZR(),nX6));break;case 3:nu0(n,(ZR(),nX8));break;case 4:ncW(n,(ZR(),nX6));break;case 5:ncW(n,(ZR(),nX8))}nee(t)}(Im(n,37),t)},AY(ndw,"LabelSideSelector",1549),nrr(1550,1,nfw,eD),nTm.Mb=function(n){return gm(So(ntP(Im(n,70),(ns8(),nKP))))},AY(ndw,"LabelSideSelector/lambda$0$Type",1550),nrr(1558,1,nw2,eR),nTm.pf=function(n,t){var e,i,r,c,a,u,o,h;e=Im(n,37),ntc(t,"Layer constraint postprocessing",1),0!=(h=e.b).c.length&&(x4(0,h.c.length),r=Im(h.c[0],29),u=Im(CA(h,h.c.length-1),29),i=new $o(e),a=new $o(e),function(n,t,e,i,r){var c,a,u,o,h,f;for(c=new h1(n.b);c.a<c.c.c.length;)for(o=0,h=(f=Dq(Im(De(c),29).a)).length;o<h;++o)switch(Im(ntP(u=f[o],(ns8(),nKY)),163).g){case 1:(function(n){var t;for(t=new OM(TD(VG(n).a.Kc(),new s));nrc(t);)if(Im(K4(t),17).c.i.k!=(ntY(),nAX))throw new gI(ndm+Zk(n)+"' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen.").e})(u),xT(u,t),Yg(u,!0,i);break;case 3:(function(n){var t;for(t=new OM(TD(Vz(n).a.Kc(),new s));nrc(t);)if(Im(K4(t),17).d.i.k!=(ntY(),nAX))throw new gI(ndm+Zk(n)+"' has its layer constraint set to LAST, but has at least one outgoing edge that does not go to a LAST_SEPARATE node. That must not happen.").e})(u),xT(u,e),Yg(u,!1,r)}for(a=new Rn(n.b,0);a.b<a.d.gc();)0==(MK(a.b<a.d.gc()),Im(a.d.Xb(a.c=a.b++),29)).a.c.length&&$I(a)}(e,r,u,i,a),0==i.a.c.length||(xC(0,h.c.length),m$(h.c,0,i)),0==a.a.c.length||(h.c[h.c.length]=a)),MH(e,(nhu(),nxo))&&(c=new $o(e),o=new $o(e),function(n,t,e){var i,r,c,a,u,o;for(a=Im(ntP(n,(nhu(),nxo)),15).Kc();a.Ob();){switch(c=Im(a.Pb(),10),Im(ntP(c,(ns8(),nKY)),163).g){case 2:xT(c,t);break;case 4:xT(c,e)}for(r=new OM(TD(Vq(c).a.Kc(),new s));nrc(r);)(i=Im(K4(r),17)).c&&i.d||(u=!i.d,o=Im(ntP(i,nxP),11),u?xj(i,o):xE(i,o))}}(e,c,o),0==c.a.c.length||(xC(0,h.c.length),m$(h.c,0,c)),0==o.a.c.length||(h.c[h.c.length]=o)),nee(t)},AY(ndw,"LayerConstraintPostprocessor",1558),nrr(1559,1,nw2,sg),nTm.pf=function(n,t){!function(n,t){var e,i,r;for(ntc(t,"Layer constraint preprocessing",1),e=new wn,r=new Rn(n.a,0);r.b<r.d.gc();)MK(r.b<r.d.gc()),function(n){switch(Im(ntP(n,(ns8(),nKY)),163).g){case 2:case 4:return!0;default:return!1}}(i=Im(r.d.Xb(r.c=r.b++),10))&&(function(n){var t,e,i,r;for(function(n){var t,e,i;if((e=Im(ntP(n,(ns8(),nKY)),163))==(VJ(),nxW)){for(t=new OM(TD(VG(n).a.Kc(),new s));nrc(t);)if(!K5(Im(K4(t),17)))throw new gI(ndm+Zk(n)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges.").e}else if(e==nxQ){for(i=new OM(TD(Vz(n).a.Kc(),new s));nrc(i);)if(!K5(Im(K4(i),17)))throw new gI(ndm+Zk(n)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges.").e}}(n),e=new OM(TD(Vq(n).a.Kc(),new s));nrc(e);)r=(i=(t=Im(K4(e),17)).c.i==n)?t.d:t.c,i?xj(t,null):xE(t,null),UU(t,(nhu(),nxP),r),function(n,t){var e;if(!MH(t,(ns8(),nKY))&&(e=function(n,t){switch(n.g){case 0:return t==(VJ(),nxW)?n$7:nLn;case 1:return t==(VJ(),nxW)?n$7:n$9;case 2:return t==(VJ(),nxW)?n$9:nLn;default:return n$9}}(Im(ntP(t,n$8),360),Im(ntP(n,nKY),163)),UU(t,n$8,e),!nrc(new OM(TD(Vq(t).a.Kc(),new s)))))switch(e.g){case 1:UU(t,nKY,(VJ(),nxX));break;case 2:UU(t,nKY,(VJ(),nxV))}}(n,r.i)}(i),e.c[e.c.length]=i,$I(r));0==e.c.length||UU(n,(nhu(),nxo),e),nee(t)}(Im(n,37),t)},AY(ndw,"LayerConstraintPreprocessor",1559),nrr(360,22,{3:1,35:1,22:1,360:1},m8);var nP2=qE(ndw,"LayerConstraintPreprocessor/HiddenNodeConnections",360,nE2,function(){return Uy(),Um(xg(nP2,1),nfh,360,0,[nLt,n$7,nLn,n$9])},function(n){return Uy(),B5((_9(),nLe),n)});nrr(1560,1,nw2,eK),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d;for(ntc(t,"Layer size calculation",1),h=nlc,s=nla,r=!1,u=new h1(n.b);u.a<u.c.c.length;)if((o=(a=Im(De(u),29)).c).a=0,o.b=0,0!=a.a.c.length){for(r=!0,l=new h1(a.a);l.a<l.c.c.length;)w=(f=Im(De(l),10)).o,b=f.d,o.a=nTv.Math.max(o.a,w.a+b.b+b.c);d=(i=Im(CA(a.a,0),10)).n.b-i.d.d,i.k==(ntY(),nAU)&&(d-=Im(ntP(n,(ns8(),nF1)),142).d),e=(c=Im(CA(a.a,a.a.c.length-1),10)).n.b+c.o.b+c.d.a,c.k==nAU&&(e+=Im(ntP(n,(ns8(),nF1)),142).a),o.b=e-d,h=nTv.Math.min(h,d),s=nTv.Math.max(s,e)}r||(h=0,s=0),n.f.b=s-h,n.c.b-=h,nee(t)}(Im(n,37),t)},AY(ndw,"LayerSizeAndGraphHeightCalculator",1560),nrr(1561,1,nw2,eF),nTm.pf=function(n,t){!function(n,t){var e,i,r,c;for(ntc(t,"Edge joining",1),e=gm(So(ntP(n,(ns8(),nF3)))),i=new h1(n.b);i.a<i.c.c.length;)for(c=new Rn(Im(De(i),29).a,0);c.b<c.d.gc();)MK(c.b<c.d.gc()),(r=Im(c.d.Xb(c.c=c.b++),10)).k==(ntY(),nAW)&&(no2(r,e),$I(c));nee(t)}(Im(n,37),t)},AY(ndw,"LongEdgeJoiner",1561),nrr(1562,1,nw2,e_),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o,s,h,f,l;if(ntc(t,"Edge splitting",1),n.b.c.length<=2){nee(t);return}for(MK((c=new Rn(n.b,0)).b<c.d.gc()),a=Im(c.d.Xb(c.c=c.b++),29);c.b<c.d.gc();)for(r=a,MK(c.b<c.d.gc()),a=Im(c.d.Xb(c.c=c.b++),29),u=new h1(r.a);u.a<u.c.c.length;)for(o=new h1(Im(De(u),10).j);o.a<o.c.c.length;)for(i=new h1(Im(De(o),11).g);i.a<i.c.c.length;)(s=(e=Im(De(i),17)).d.i.c)!=r&&s!=a&&ncH(e,(f=h=new Y$(n),ntY(),l=nAW,f.k=l,UU(h,(nhu(),nxE),e),UU(h,(ns8(),nFE),(nn2(),nWv)),xT(h,a),h));nee(t)}(Im(n,37),t)},AY(ndw,"LongEdgeSplitter",1562),nrr(1563,1,nw2,eB),nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a,u,o,h,f,l,b;switch(ntc(e,"Node promotion heuristic",1),n.g=t,function(n){var t,e,i,r,c,a,u,o,h,f,l,b,w,d,g;for(n.n=gy(Ss(ntP(n.g,(ns8(),nFJ)))),n.e=gy(Ss(ntP(n.g,nFz))),n.i=n.g.b.c.length,u=n.i-1,b=0,n.j=0,n.k=0,n.a=Fs(_f(nTa,nhJ,19,n.i,0,1)),n.b=Fs(_f(nTr,nhJ,333,n.i,7,1)),a=new h1(n.g.b);a.a<a.c.c.length;){for((r=Im(De(a),29)).p=u,l=new h1(r.a);l.a<l.c.c.length;)(f=Im(De(l),10)).p=b,++b;--u}for(n.f=_f(nYL,nfH,25,b,15,1),n.c=Cv(nYL,[nhJ,nfH],[48,25],15,[b,3],2),n.o=new wn,n.p=new wn,t=0,n.d=0,c=new h1(n.g.b);c.a<c.c.c.length;){for(u=(r=Im(De(c),29)).p,i=0,g=0,o=r.a.c.length,h=0,l=new h1(r.a);l.a<l.c.c.length;)b=(f=Im(De(l),10)).p,n.f[b]=f.c.p,h+=f.o.b+n.n,e=RK(new OM(TD(VG(f).a.Kc(),new s))),d=RK(new OM(TD(Vz(f).a.Kc(),new s))),n.c[b][0]=d-e,n.c[b][1]=e,n.c[b][2]=d,i+=e,g+=d,e>0&&IE(n.p,f),IE(n.o,f);t-=i,w=o+t,h+=t*n.e,KN(n.a,u,Va(w)),KN(n.b,u,h),n.j=nTv.Math.max(n.j,w),n.k=nTv.Math.max(n.k,h),n.d+=t,t+=g}}(n),n.q=Im(ntP(t,(ns8(),nK3)),260),f=Im(ntP(n.g,nK2),19).a,c=new eH,n.q.g){case 2:case 1:default:noO(n,c);break;case 3:for(n.q=(nco(),n_R),noO(n,c),o=0,u=new h1(n.a);u.a<u.c.c.length;)a=Im(De(u),19),o=nTv.Math.max(o,a.a);o>n.j&&(n.q=n_A,noO(n,c));break;case 4:for(n.q=(nco(),n_R),noO(n,c),h=0,r=new h1(n.b);r.a<r.c.c.length;)i=Ss(De(r)),h=nTv.Math.max(h,($x(i),i));h>n.k&&(n.q=n_N,noO(n,c));break;case 6:b=NU(nTv.Math.ceil(n.f.length*f/100)),noO(n,new f4(b));break;case 5:l=NU(nTv.Math.ceil(n.d*f/100)),noO(n,new f5(l))}(function(n,t){var e,i,r,c,a,u;for(e=0,r=new wn;e<=n.i;e++)(i=new $o(t)).p=n.i-e,r.c[r.c.length]=i;for(u=new h1(n.o);u.a<u.c.c.length;)xT(a=Im(De(u),10),Im(CA(r,n.i-n.f[a.p]),29));for(c=new h1(r);c.a<c.c.c.length;)0==Im(De(c),29).a.c.length&&AE(c);t.b.c=_f(nEX,nhA,1,0,5,1),Uf(t.b,r)})(n,t),nee(e)}(this,Im(n,37),t)},nTm.d=0,nTm.e=0,nTm.i=0,nTm.j=0,nTm.k=0,nTm.n=0,AY(ndw,"NodePromotion",1563),nrr(1564,1,{},eH),nTm.Kb=function(n){return Im(n,46),TX(),!0},nTm.Fb=function(n){return this===n},AY(ndw,"NodePromotion/lambda$0$Type",1564),nrr(1565,1,{},f4),nTm.Kb=function(n){var t,e;return t=this.a,e=Im(n,46),TX(),Im(e.b,19).a<t},nTm.Fb=function(n){return this===n},nTm.a=0,AY(ndw,"NodePromotion/lambda$1$Type",1565),nrr(1566,1,{},f5),nTm.Kb=function(n){var t,e;return t=this.a,e=Im(n,46),TX(),Im(e.a,19).a<t},nTm.Fb=function(n){return this===n},nTm.a=0,AY(ndw,"NodePromotion/lambda$2$Type",1566),nrr(1567,1,nw2,eq),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(ntc(t,ndj,1),l=Im(ntP(n,(ns8(),nKO)),218),i=new h1(n.b);i.a<i.c.c.length;)for(c=0,a=(u=Dq(Im(De(i),29).a)).length;c<a;++c)if((r=u[c]).k==(ntY(),nAQ)){if(l==(VY(),nXF))for(s=new h1(r.j);s.a<s.c.c.length;)0==(o=Im(De(s),11)).e.c.length||function(n){var t,e,i,r;for(UU(r=Im(ntP(n,(nhu(),nxE)),11),nxB,n.i.n.b),e=0,i=(t=DH(n.e)).length;e<i;++e)xj(t[e],r)}(o),0==o.g.c.length||function(n){var t,e,i,r;for(UU(e=Im(ntP(n,(nhu(),nxE)),11),nxB,n.i.n.b),i=0,r=(t=DH(n.g)).length;i<r;++i)xE(t[i],e)}(o);else if(Ti(ntP(r,(nhu(),nxE)),17))w=Im(ntP(r,nxE),17),d=Im(nen(r,(nsR(),nWJ)).Kc().Pb(),11),g=Im(nen(r,nWA).Kc().Pb(),11),p=Im(ntP(d,nxE),11),xE(w,v=Im(ntP(g,nxE),11)),xj(w,p),(m=new Ee(g.i.n)).a=Xt(Um(xg(nCa,1),nhJ,8,0,[v.i.n,v.n,v.a])).a,I2(w.a,m),(m=new Ee(d.i.n)).a=Xt(Um(xg(nCa,1),nhJ,8,0,[p.i.n,p.n,p.a])).a,I2(w.a,m);else{if(r.j.c.length>=2){for(b=!0,e=Im(De(h=new h1(r.j)),11),f=null;h.a<h.c.c.length;)if(f=e,e=Im(De(h),11),!WY(ntP(f,nxE),ntP(e,nxE))){b=!1;break}}else b=!1;for(s=new h1(r.j);s.a<s.c.c.length;)0==(o=Im(De(s),11)).e.c.length||function(n,t){var e,i,r,c,a,u,o,s;for(r=0,u=Im(ntP(n,(nhu(),nxE)),11),o=Xt(Um(xg(nCa,1),nhJ,8,0,[u.i.n,u.n,u.a])).a,s=n.i.n.b,c=(e=DH(n.e)).length;r<c;++r)xj(i=e[r],u),jO(i.a,new kp(o,s)),t&&((a=Im(ntP(i,(ns8(),nKV)),74))||(a=new dd,UU(i,nKV,a)),I2(a,new kp(o,s)))}(o,b),0==o.g.c.length||function(n,t){var e,i,r,c,a,u,o,s;for(a=0,r=Im(ntP(n,(nhu(),nxE)),11),o=Xt(Um(xg(nCa,1),nhJ,8,0,[r.i.n,r.n,r.a])).a,s=n.i.n.b,u=(e=DH(n.g)).length;a<u;++a)xE(c=e[a],r),jC(c.a,new kp(o,s)),t&&((i=Im(ntP(c,(ns8(),nKV)),74))||(i=new dd,UU(c,nKV,i)),I2(i,new kp(o,s)))}(o,b)}xT(r,null)}nee(t)}(Im(n,37),t)},AY(ndw,"NorthSouthPortPostprocessor",1567),nrr(1568,1,nw2,eG),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(ntc(t,ndj,1),w=new wn,m=new wn,s=new h1(n.b);s.a<s.c.c.length;)for(f=0,o=Im(De(s),29),g=-1,l=(b=Dq(o.a)).length;f<l;++f)if(h=b[f],++g,h.k==(ntY(),nAV)&&Ec(Im(ntP(h,(ns8(),nFE)),98))){for(PT(Im(ntP(h,(ns8(),nFE)),98))||function(n){var t,e,i,r,c,a,u,o;for(o=n.j.c.length,e=0,t=o,r=2*o,u=new h1(n.j);u.a<u.c.c.length;)switch((a=Im(De(u),11)).j.g){case 2:case 4:a.p=-1;break;case 1:case 3:i=a.e.c.length,c=a.g.c.length,i>0&&c>0?a.p=t++:i>0?a.p=e++:c>0?a.p=r++:a.p=e++}LV(),E_(n.j,new ez)}(h),UU(h,(nhu(),nxl),h),w.c=_f(nEX,nhA,1,0,5,1),m.c=_f(nEX,nhA,1,0,5,1),e=new wn,GW(v=new vK,nen(h,(nsR(),nW$))),ns0(n,v,w,m,e),u=g,c=new h1(w);c.a<c.c.c.length;)ZF(i=Im(De(c),10),u,o),++g,UU(i,nxl,h),a=Im(CA(i.j,0),11),d=Im(ntP(a,nxE),11),gm(So(ntP(d,nR7)))||Im(ntP(i,nxb),15).Fc(h);for(Lq(v),p=nen(h,nWV).Kc();p.Ob();)KL(v,Im(p.Pb(),11),v.a,v.a.a);for(ns0(n,v,m,null,e),r=new h1(m);r.a<r.c.c.length;)ZF(i=Im(De(r),10),++g,o),UU(i,nxl,h),a=Im(CA(i.j,0),11),d=Im(ntP(a,nxE),11),gm(So(ntP(d,nR7)))||Im(ntP(h,nxb),15).Fc(i);0==e.c.length||UU(h,nNZ,e)}nee(t)}(Im(n,37),t)},AY(ndw,"NorthSouthPortPreprocessor",1568),nrr(1569,1,nlX,ez),nTm.ue=function(n,t){var e,i,r,c;return e=Im(n,11),i=Im(t,11),(r=e.j)!=(c=i.j)?r.g-c.g:e.p==i.p?0:r==(nsR(),nW$)?e.p-i.p:i.p-e.p},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndw,"NorthSouthPortPreprocessor/lambda$0$Type",1569),nrr(1570,1,nw2,eU),nTm.pf=function(n,t){!function(n,t){var e,i,r,c;if(ntc(t,"Partition midprocessing",1),r=new NK,vF(Lb(new CL(null,new x6(n.a,16)),new eX),new f9(r)),0!=r.d){for(i=Im(Kc(xZ(new CL(null,(r.i||(r.i=new TS(r,r.c))).Nc())),_x(new B,new _,new ne,Um(xg(nMz,1),nfh,132,0,[(XW(),nM2)]))),15).Kc(),e=Im(i.Pb(),19);i.Ob();)c=Im(i.Pb(),19),function(n,t){var e,i,r,c,a,u,o;for(r=n.Kc();r.Ob();)for(i=Im(r.Pb(),10),xM(u=new nt9,i),ne9(u,(nsR(),nWA)),UU(u,(nhu(),nxO),(TX(),!0)),a=t.Kc();a.Ob();)c=Im(a.Pb(),10),xM(o=new nt9,c),ne9(o,nWJ),UU(o,nxO,!0),UU(e=new Ns,nxO,!0),xE(e,u),xj(e,o)}(Im(Fl(r,e),21),Im(Fl(r,c),21)),e=c;nee(t)}}(Im(n,37),t)},AY(ndw,"PartitionMidprocessor",1570),nrr(1571,1,nfw,eX),nTm.Mb=function(n){return MH(Im(n,10),(ns8(),nFd))},AY(ndw,"PartitionMidprocessor/lambda$0$Type",1571),nrr(1572,1,nh1,f9),nTm.td=function(n){var t,e;t=this.a,e=Im(n,10),niP(t,Im(ntP(e,(ns8(),nFd)),19),e)},AY(ndw,"PartitionMidprocessor/lambda$1$Type",1572),nrr(1573,1,nw2,eW),nTm.pf=function(n,t){!function(n,t){var e,i,r;for(ntc(t,"Partition postprocessing",1),e=new h1(n.b);e.a<e.c.c.length;)for(i=new h1(Im(De(e),29).a);i.a<i.c.c.length;)for(r=new h1(Im(De(i),10).j);r.a<r.c.c.length;)gm(So(ntP(Im(De(r),11),(nhu(),nxO))))&&AE(r);nee(t)}(Im(n,37),t)},AY(ndw,"PartitionPostprocessor",1573),nrr(1574,1,nw2,eV),nTm.pf=function(n,t){var e,i;e=Im(n,37),ntc(i=t,"Partition preprocessing",1),vF(Im(Kc(Lb(BV(Lb(new CL(null,new x6(e.a,16)),new eQ),new eJ),new eY),_x(new B,new _,new ne,Um(xg(nMz,1),nfh,132,0,[(XW(),nM2)]))),15).Oc(),new eZ),nee(i)},AY(ndw,"PartitionPreprocessor",1574),nrr(1575,1,nfw,eQ),nTm.Mb=function(n){return MH(Im(n,10),(ns8(),nFd))},AY(ndw,"PartitionPreprocessor/lambda$0$Type",1575),nrr(1576,1,{},eJ),nTm.Kb=function(n){return new CL(null,new A$(new OM(TD(Vz(Im(n,10)).a.Kc(),new s))))},AY(ndw,"PartitionPreprocessor/lambda$1$Type",1576),nrr(1577,1,nfw,eY),nTm.Mb=function(n){var t,e,i;return!!MH((t=Im(n,17)).d.i,(ns8(),nFd))&&(e=Im(ntP(t.c.i,nFd),19),i=Im(ntP(t.d.i,nFd),19),EG(e.a,i.a)>0)},AY(ndw,"PartitionPreprocessor/lambda$2$Type",1577),nrr(1578,1,nh1,eZ),nTm.td=function(n){var t,e;nuQ(t=Im(n,17),!0),e=nfP,MH(t,(ns8(),nF$))&&(e+=Im(ntP(t,nF$),19).a),UU(t,nF$,Va(e))},AY(ndw,"PartitionPreprocessor/lambda$3$Type",1578),nrr(1579,1,nw2,sy),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u;for(ntc(t,"Port order processing",1),u=Im(ntP(n,(ns8(),nFC)),421),e=new h1(n.b);e.a<e.c.c.length;)for(r=new h1(Im(De(e),29).a);r.a<r.c.c.length;)i=Im(De(r),10),c=Im(ntP(i,nFE),98),a=i.j,c==(nn2(),nWp)||c==nWm||c==nWv?(LV(),E_(a,nLi)):c!=nWk&&c!=nWj&&(LV(),E_(a,nLc),function(n){var t,e;n.c.length<=1||(t=nc2(n,(nsR(),nWV)),nep(n,Im(t.a,19).a,Im(t.b,19).a),e=nc2(n,nWJ),nep(n,Im(e.a,19).a,Im(e.b,19).a))}(a),u==(BN(),n_G)&&E_(a,nLr)),i.i=!0,nii(i);nee(t)}(Im(n,37),t)},AY(ndw,"PortListSorter",1579),nrr(1580,1,{},e1),nTm.Kb=function(n){return XQ(),Im(n,11).e},AY(ndw,"PortListSorter/lambda$0$Type",1580),nrr(1581,1,{},e0),nTm.Kb=function(n){return XQ(),Im(n,11).g},AY(ndw,"PortListSorter/lambda$1$Type",1581),nrr(1582,1,nlX,e2),nTm.ue=function(n,t){return Ke(Im(n,11),Im(t,11))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndw,"PortListSorter/lambda$2$Type",1582),nrr(1583,1,nlX,e3),nTm.ue=function(n,t){return function(n,t){if(XQ(),0!=n.j.g-t.j.g)return 0;switch(n.j.g){case 2:return VQ(t,nLu)-VQ(n,nLu);case 4:return VQ(n,nLa)-VQ(t,nLa)}return 0}(Im(n,11),Im(t,11))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndw,"PortListSorter/lambda$3$Type",1583),nrr(1584,1,nlX,e4),nTm.ue=function(n,t){return nuv(Im(n,11),Im(t,11))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndw,"PortListSorter/lambda$4$Type",1584),nrr(1585,1,nw2,e5),nTm.pf=function(n,t){!function(n,t){var e,i,r;for(ntc(t,"Port side processing",1),r=new h1(n.a);r.a<r.c.c.length;)nuJ(Im(De(r),10));for(e=new h1(n.b);e.a<e.c.c.length;)for(i=new h1(Im(De(e),29).a);i.a<i.c.c.length;)nuJ(Im(De(i),10));nee(t)}(Im(n,37),t)},AY(ndw,"PortSideProcessor",1585),nrr(1586,1,nw2,e6),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o;for(ntc(t,"Restoring reversed edges",1),a=new h1(n.b);a.a<a.c.c.length;)for(u=new h1(Im(De(a),29).a);u.a<u.c.c.length;)for(o=new h1(Im(De(u),10).j);o.a<o.c.c.length;)for(i=0,r=(c=DH(Im(De(o),11).g)).length;i<r;++i)gm(So(ntP(e=c[i],(nhu(),nxD))))&&nuQ(e,!1);nee(t)}(Im(n,37),t)},AY(ndw,"ReversedEdgeRestorer",1586),nrr(1591,1,nw2,w7),nTm.pf=function(n,t){var e;e=Im(n,37),ntc(t,"Self-Loop ordering",1),vF(Lw(Lb(Lb(BV(new CL(null,new x6(e.b,16)),new e8),new e9),new e7),new it),new f7(this)),nee(t)},AY(ndw,"SelfLoopPortRestorer",1591),nrr(1592,1,{},e8),nTm.Kb=function(n){return new CL(null,new x6(Im(n,29).a,16))},AY(ndw,"SelfLoopPortRestorer/lambda$0$Type",1592),nrr(1593,1,nfw,e9),nTm.Mb=function(n){return Im(n,10).k==(ntY(),nAV)},AY(ndw,"SelfLoopPortRestorer/lambda$1$Type",1593),nrr(1594,1,nfw,e7),nTm.Mb=function(n){return MH(Im(n,10),(nhu(),nxK))},AY(ndw,"SelfLoopPortRestorer/lambda$2$Type",1594),nrr(1595,1,{},it),nTm.Kb=function(n){return Im(ntP(Im(n,10),(nhu(),nxK)),403)},AY(ndw,"SelfLoopPortRestorer/lambda$3$Type",1595),nrr(1596,1,nh1,f7),nTm.td=function(n){!function(n,t){if(t.a)switch(Im(ntP(t.b,(nhu(),nxI)),98).g){case 0:case 1:!function(n){switch(Im(ntP(n.b,(ns8(),nKL)),375).g){case 1:vF(Lw(BV(new CL(null,new x6(n.d,16)),new i7),new rn),new rt);break;case 2:(function(n){var t,e,i,r,c,a,u;for(i=0,u=0,a=new h1(n.d);a.a<a.c.c.length;)c=Im(De(a),101),r=Im(Kc(Lb(new CL(null,new x6(c.j,16)),new ru),_x(new B,new _,new ne,Um(xg(nMz,1),nfh,132,0,[(XW(),nM2)]))),15),e=null,i<=u?(nsR(),e=nW$,i+=r.gc()):u<i&&(nsR(),e=nWV,u+=r.gc()),t=e,vF(Lw(r.Oc(),new re),new lp(t))})(n);break;case 0:(function(n){var t,e,i,r;for(E_(r=new PB(n.d),new rc),nc1(),t=Um(xg(nP8,1),nfh,270,0,[nLA,nLN,nLO,nLR,nLL,nL$,nLD,nLx]),e=0,i=new h1(r);i.a<i.c.c.length;)(function(n,t){var e,i,r,c,a;for(a=n.j,t.a!=t.b&&E_(a,new ra),r=a.c.length/2|0,i=0;i<r;i++)x4(i,a.c.length),(c=Im(a.c[i],113)).c&&ne9(c.d,t.a);for(e=r;e<a.c.length;e++)x4(e,a.c.length),(c=Im(a.c[e],113)).c&&ne9(c.d,t.b)})(Im(De(i),101),t[e%t.length]),++e})(n)}}(t);case 2:var e,i,r,c,a,u,o;vF(new CL(null,new x6(t.d,16)),new ie),function(n){var t,e,i,r,c,a,u,o;for(n.b=new niF(new gE((nsR(),Um(xg(nCy,1),nwZ,61,0,[nWQ,nW$,nWA,nWV,nWJ]))),new gE((GN(),Um(xg(nP6,1),nfh,361,0,[nLI,nLP,nLS])))),a=Um(xg(nCy,1),nwZ,61,0,[nWQ,nW$,nWA,nWV,nWJ]),u=0,o=a.length;u<o;++u)for(c=a[u],e=Um(xg(nP6,1),nfh,361,0,[nLI,nLP,nLS]),i=0,r=e.length;i<r;++i)t=e[i],function(n,t,e,i){var r,c;A1(t),A1(e),BS(!!(c=Im(P$(n.d,t),19)),"Row %s not in %s",t,n.e),BS(!!(r=Im(P$(n.b,e),19)),"Column %s not in %s",e,n.c),Uv(n,c.a,r.a,i)}(n.b,c,t,new wn)}(e=n.a),e.a=(i=new g$,vF(new CL(null,new x6(t.d,16)),new lg(i)),i),function(n,t){var e,i,r,c,a;for(r=Im(Fl(n.a,(nnW(),nLp)),15).Kc();r.Ob();)switch(i=Im(r.Pb(),101),e=Im(CA(i.j,0),113).d.j,E_(c=new PB(i.j),new rl),t.g){case 1:nnV(n,c,e,(GN(),nLP),1);break;case 0:a=function(n){var t,e;for(e=0;e<n.c.length&&!(Cf((x4(e,n.c.length),Im(n.c[e],113)))>0);e++);if(e>0&&e<n.c.length-1)return e;for(t=0;t<n.c.length&&!(Cf((x4(t,n.c.length),Im(n.c[t],113)))>0);t++);return t>0&&e<n.c.length-1?t:n.c.length/2|0}(c),nnV(n,new x2(c,0,a),e,(GN(),nLP),0),nnV(n,new x2(c,a,c.c.length),e,nLP,1)}}(e,Im(ntP(t.b,(ns8(),nKN)),376)),function(n){var t,e,i;for(i=Im(Fl(n.a,(nnW(),nLm)),15).Kc();i.Ob();)t=Z$(e=Im(i.Pb(),101)),AB(n,e,t[0],(GN(),nLS),0),AB(n,e,t[1],nLI,1)}(e),function(n){var t,e,i,r;for(r=Im(Fl(n.a,(nnW(),nLv)),15).Kc();r.Ob();)e=(t=OL((i=Im(r.Pb(),101)).k)).Hc((nsR(),nW$))?t.Hc(nWA)?t.Hc(nWV)?t.Hc(nWJ)?null:nLE:nLM:nLT:nLj,AB(n,i,e[0],(GN(),nLS),0),AB(n,i,e[1],nLP,1),AB(n,i,e[2],nLI,1)}(e),function(n){var t,e,i;for(i=Im(Fl(n.a,(nnW(),nLg)),15).Kc();i.Ob();)for(t=OL((e=Im(i.Pb(),101)).k).Kc();t.Ob();)AB(n,e,Im(t.Pb(),61),(GN(),nLP),1)}(e),function(n){var t,e,i;for(i=Im(Fl(n.a,(nnW(),nLy)),15).Kc();i.Ob();)t=Z$(e=Im(i.Pb(),101)),AB(n,e,t[0],(GN(),nLS),0),AB(n,e,t[1],nLI,1)}(e),o=new PB((c=t.b).j),u=0,(a=c.j).c=_f(nEX,nhA,1,0,5,1),A_(Im(zK(e.b,(nsR(),nW$),(GN(),nLI)),15),c),u=Zh(o,u,new i5,a),A_(Im(zK(e.b,nW$,nLP),15),c),u=Zh(o,u,new i4,a),A_(Im(zK(e.b,nW$,nLS),15),c),A_(Im(zK(e.b,nWA,nLI),15),c),A_(Im(zK(e.b,nWA,nLP),15),c),u=Zh(o,u,new i6,a),A_(Im(zK(e.b,nWA,nLS),15),c),A_(Im(zK(e.b,nWV,nLI),15),c),u=Zh(o,u,new i8,a),A_(Im(zK(e.b,nWV,nLP),15),c),u=Zh(o,u,new i9,a),A_(Im(zK(e.b,nWV,nLS),15),c),A_(Im(zK(e.b,nWJ,nLI),15),c),u=Zh(o,u,new rh,a),A_(Im(zK(e.b,nWJ,nLP),15),c),A_(Im(zK(e.b,nWJ,nLS),15),c),vF(BV(new CL(null,DB(((r=e.b).i||(r.i=new hi(r))).a)),new ro),new rs),t.a=!1,e.a=null}else vF(new CL(null,new x6(t.d,16)),new ie)}(this.a,Im(n,403))},AY(ndw,"SelfLoopPortRestorer/lambda$4$Type",1596),nrr(794,1,nh1,ie),nTm.td=function(n){!function(n){var t,e,i;for(n.k=new x0((nsR(),Um(xg(nCy,1),nwZ,61,0,[nWQ,nW$,nWA,nWV,nWJ])).length,n.j.c.length),i=new h1(n.j);i.a<i.c.c.length;)t=(e=Im(De(i),113)).d.j,niP(n.k,t,e);n.e=function(n){var t,e;if(nnW(),n.Hc((nsR(),nWQ)))throw new gd("Port sides must not contain UNDEFINED").e;switch(n.gc()){case 1:return nLp;case 2:return t=n.Hc(nWA)&&n.Hc(nWJ),e=n.Hc(nW$)&&n.Hc(nWV),t||e?nLy:nLm;case 3:return nLv;case 4:return nLg;default:return null}}(OL(n.k))}(Im(n,101))},AY(ndw,"SelfLoopPortRestorer/lambda$5$Type",794),nrr(1597,1,nw2,ii),nTm.pf=function(n,t){var e;e=Im(n,37),ntc(t,"Self-Loop post-processing",1),vF(Lb(Lb(BV(new CL(null,new x6(e.b,16)),new ir),new ic),new ia),new iu),nee(t)},AY(ndw,"SelfLoopPostProcessor",1597),nrr(1598,1,{},ir),nTm.Kb=function(n){return new CL(null,new x6(Im(n,29).a,16))},AY(ndw,"SelfLoopPostProcessor/lambda$0$Type",1598),nrr(1599,1,nfw,ic),nTm.Mb=function(n){return Im(n,10).k==(ntY(),nAV)},AY(ndw,"SelfLoopPostProcessor/lambda$1$Type",1599),nrr(1600,1,nfw,ia),nTm.Mb=function(n){return MH(Im(n,10),(nhu(),nxK))},AY(ndw,"SelfLoopPostProcessor/lambda$2$Type",1600),nrr(1601,1,nh1,iu),nTm.td=function(n){var t,e;t=Im(n,10),vF(BV(new CL(null,new x6((e=Im(ntP(t,(nhu(),nxK)),403)).d,16)),new io),new ln(t)),vF(Lb(new CL(null,new x6(e.d,16)),new is),new lt(t))},AY(ndw,"SelfLoopPostProcessor/lambda$3$Type",1601),nrr(1602,1,{},io),nTm.Kb=function(n){return new CL(null,new x6(Im(n,101).f,1))},AY(ndw,"SelfLoopPostProcessor/lambda$4$Type",1602),nrr(1603,1,nh1,ln),nTm.td=function(n){var t,e,i;t=this.a,xE(i=(e=Im(n,409)).a,e.c.d),xj(i,e.d.d),HV(i.a,t.n)},AY(ndw,"SelfLoopPostProcessor/lambda$5$Type",1603),nrr(1604,1,nfw,is),nTm.Mb=function(n){return!!Im(n,101).i},AY(ndw,"SelfLoopPostProcessor/lambda$6$Type",1604),nrr(1605,1,nh1,lt),nTm.td=function(n){var t,e,i;t=this.a,e=Im(n,101).i,i=t.n,Ei(e.f)?function(n,t){var e,i,r,c,a;for(c=n.g.a,a=n.g.b,i=new h1(n.d);i.a<i.c.c.length;)r=(e=Im(De(i),70)).n,n.a==(Uk(),nLl)||n.i==(nsR(),nWA)?r.a=c:n.a==nLb||n.i==(nsR(),nWJ)?r.a=c+n.j.a-e.o.a:r.a=c+(n.j.a-e.o.a)/2,r.b=a,S9(r,t),a+=e.o.b+n.e}(e,i):function(n,t){var e,i,r,c,a;for(c=n.g.a,a=n.g.b,i=new h1(n.d);i.a<i.c.c.length;)(r=(e=Im(De(i),70)).n).a=c,n.i==(nsR(),nW$)?r.b=a+n.j.b-e.o.b:r.b=a,S9(r,t),c+=e.o.a+n.e}(e,i)},AY(ndw,"SelfLoopPostProcessor/lambda$7$Type",1605),nrr(1587,1,nw2,ih),nTm.pf=function(n,t){!function(n,t){var e,i,r,c;for(ntc(t,"Self-Loop pre-processing",1),i=new h1(n.a);i.a<i.c.c.length;)(c=e=Im(De(i),10)).k==(ntY(),nAV)&&KD(new CL(null,new A$(new OM(TD(Vz(c).a.Kc(),new s)))),new ri)&&(r=new JS(e),UU(e,(nhu(),nxK),r),function(n){var t,e,i,r,c,a,u;for(r=new wn,i=new OM(TD(Vz(n.b).a.Kc(),new s));nrc(i);)KR(e=Im(K4(i),17))&&IE(r,new Fj(e,_N(n,e.c),_N(n,e.d)));for(u=new hG(new hD(n.e).a.vc().Kc());u.a.Ob();)t=Im(u.a.Pb(),42),(c=Im(t.dd(),113)).d.p=0;for(a=new hG(new hD(n.e).a.vc().Kc());a.a.Ob();)t=Im(a.a.Pb(),42),0==(c=Im(t.dd(),113)).d.p&&IE(n.d,function(n,t){var e,i,r,c,a,u,o,s;for(u=new nev(n),KL(e=new vK,t,e.c.b,e.c);0!=e.b;){for((i=Im(0==e.b?null:(MK(0!=e.b),HK(e,e.a.a)),113)).d.p=1,a=new h1(i.e);a.a<a.c.c.length;)ntn(u,r=Im(De(a),409)),0==(s=r.d).d.p&&KL(e,s,e.c.b,e.c);for(c=new h1(i.b);c.a<c.c.c.length;)ntn(u,r=Im(De(c),409)),0==(o=r.c).d.p&&KL(e,o,e.c.b,e.c)}return u}(n,c))}(r),vF(Lw(BV(new CL(null,new x6(r.d,16)),new il),new ib),new iw),function(n){var t,e,i,r,c,a,u;if(r=(i=n.b).e,c=PT(Im(ntP(i,(ns8(),nFE)),98)),e=!!r&&Im(ntP(r,(nhu(),nxu)),21).Hc((ncJ(),nNN)),!c&&!e)for(u=new hG(new hD(n.e).a.vc().Kc());u.a.Ob();)t=Im(u.a.Pb(),42),(a=Im(t.dd(),113)).a&&(xM(a.d,null),a.c=!0,n.a=!0)}(r));nee(t)}(Im(n,37),t)},AY(ndw,"SelfLoopPreProcessor",1587),nrr(1588,1,{},il),nTm.Kb=function(n){return new CL(null,new x6(Im(n,101).f,1))},AY(ndw,"SelfLoopPreProcessor/lambda$0$Type",1588),nrr(1589,1,{},ib),nTm.Kb=function(n){return Im(n,409).a},AY(ndw,"SelfLoopPreProcessor/lambda$1$Type",1589),nrr(1590,1,nh1,iw),nTm.td=function(n){var t;xE(t=Im(n,17),null),xj(t,null)},AY(ndw,"SelfLoopPreProcessor/lambda$2$Type",1590),nrr(1606,1,nw2,SZ),nTm.pf=function(n,t){var e,i;e=Im(n,37),ntc(t,"Self-Loop routing",1),i=function(n){switch(Im(ntP(n,(ns8(),nKO)),218).g){case 1:return new rp;case 3:return new rj;default:return new rg}}(e),jj(ntP(e,(FI(),nzR))),vF(Lw(Lb(Lb(BV(new CL(null,new x6(e.b,16)),new id),new ig),new ip),new iv),new m9(this,i)),nee(t)},AY(ndw,"SelfLoopRouter",1606),nrr(1607,1,{},id),nTm.Kb=function(n){return new CL(null,new x6(Im(n,29).a,16))},AY(ndw,"SelfLoopRouter/lambda$0$Type",1607),nrr(1608,1,nfw,ig),nTm.Mb=function(n){return Im(n,10).k==(ntY(),nAV)},AY(ndw,"SelfLoopRouter/lambda$1$Type",1608),nrr(1609,1,nfw,ip),nTm.Mb=function(n){return MH(Im(n,10),(nhu(),nxK))},AY(ndw,"SelfLoopRouter/lambda$2$Type",1609),nrr(1610,1,{},iv),nTm.Kb=function(n){return Im(ntP(Im(n,10),(nhu(),nxK)),403)},AY(ndw,"SelfLoopRouter/lambda$3$Type",1610),nrr(1611,1,nh1,m9),nTm.td=function(n){var t,e,i,r,c,a;t=this.a,e=this.b,i=Im(n,403),function(n,t){var e,i,r,c,a,u,o,s;for(function(n){var t;for(t=0;t<n.c.length;t++)(x4(t,n.c.length),Im(n.c[t],11)).p=t}(t.b.j),vF(Lw(new CL(null,new x6(t.d,16)),new rm),new ry),c=new h1(t.d);c.a<c.c.c.length;){switch((r=Im(De(c),101)).e.g){case 0:e=Im(CA(r.j,0),113).d.j,a=Im(Me(Oq(Im(Fl(r.k,e),15).Oc(),nLF)),113),r.a=a,u=Im(Me(OH(Im(Fl(r.k,e),15).Oc(),nLF)),113),r.c=u;break;case 1:i=Z$(r),o=Im(Me(Oq(Im(Fl(r.k,i[0]),15).Oc(),nLF)),113),r.a=o,s=Im(Me(OH(Im(Fl(r.k,i[1]),15).Oc(),nLF)),113),r.c=s;break;case 2:!function(n,t){var e,i,r,c,a,u;a=Im(Y3(OL(t.k),_f(nCy,nwZ,61,2,0,1)),122),Zf(n,u=t.g,e=RE(t,a[0]),i=Rj(t,a[1]))<=Zf(n,u,r=RE(t,a[1]),c=Rj(t,a[0]))?(t.a=e,t.c=i):(t.a=r,t.c=c)}(n,r);break;case 3:!function(n){var t,e,i,r;switch(t=null,e=null,function(n){var t,e,i,r,c;for(c=OL(n.k),nsR(),e=Um(xg(nCy,1),nwZ,61,0,[nWQ,nW$,nWA,nWV,nWJ]),i=0,r=e.length;i<r;++i)if((t=e[i])!=nWQ&&!c.Hc(t))return t;return null}(n).g){case 1:nsR(),t=nWA,e=nWJ;break;case 2:nsR(),t=nWV,e=nW$;break;case 3:nsR(),t=nWJ,e=nWA;break;case 4:nsR(),t=nW$,e=nWV}i=Im(Me(Oq(Im(Fl(n.k,t),15).Oc(),nLF)),113),n.a=i,r=Im(Me(OH(Im(Fl(n.k,e),15).Oc(),nLF)),113),n.c=r}(r);break;case 4:!function(n,t){var e,i,r,c,a,u,o,s,h;for(u=t.j,a=t.g,o=Im(CA(u,u.c.length-1),113),x4(0,u.c.length),s=Zf(n,a,o,h=Im(u.c[0],113)),c=1;c<u.c.length;c++)x4(c-1,u.c.length),e=Im(u.c[c-1],113),x4(c,u.c.length),(i=Zf(n,a,e,r=Im(u.c[c],113)))>s&&(o=e,h=r,s=i);t.a=h,t.c=o}(n,r)}!function(n){var t,e;for(t=n.a.d.j,e=n.c.d.j;t!=e;)Gv(n.b,t),t=Vp(t);Gv(n.b,t)}(r)}n.a=null}(t.a,i),function(n){var t,e;for(function(n){var t,e,i,r,c,a,u,o,s,h,f;for(e=null,u=null,(r=Im(ntP(n.b,(ns8(),nKN)),376))==(FA(),n_1)&&(e=new wn,u=new wn),a=new h1(n.d);a.a<a.c.c.length;)if((c=Im(De(a),101)).i)switch(c.e.g){case 0:t=Im(RY(new vR(c.b)),61),r==n_1&&t==(nsR(),nW$)?e.c[e.c.length]=c:r==n_1&&t==(nsR(),nWV)?u.c[u.c.length]=c:function(n,t){var e;switch(t.g){case 2:case 4:e=n.a,n.c.d.n.b<e.d.n.b&&(e=n.c),Ah(n,t,(Uk(),nLw),e);break;case 1:case 3:Ah(n,t,(Uk(),nLf),null)}}(c,t);break;case 1:o=c.a.d.j,s=c.c.d.j,o==(nsR(),nW$)?Ah(c,nW$,(Uk(),nLl),c.a):s==nW$?Ah(c,nW$,(Uk(),nLb),c.c):o==nWV?Ah(c,nWV,(Uk(),nLb),c.a):s==nWV&&Ah(c,nWV,(Uk(),nLl),c.c);break;case 2:case 3:T8(i=c.b,(nsR(),nW$))?T8(i,nWV)?T8(i,nWJ)?T8(i,nWA)||Ah(c,nW$,(Uk(),nLb),c.c):Ah(c,nW$,(Uk(),nLl),c.a):Ah(c,nW$,(Uk(),nLf),null):Ah(c,nWV,(Uk(),nLf),null);break;case 4:h=c.a.d.j,f=c.a.d.j,h==(nsR(),nW$)||f==nW$?Ah(c,nWV,(Uk(),nLf),null):Ah(c,nW$,(Uk(),nLf),null)}e&&(0==e.c.length||nuW(e,(nsR(),nW$)),0==u.c.length||nuW(u,(nsR(),nWV)))}(n),e=new h1(n.d);e.a<e.c.c.length;)(t=Im(De(e),101)).i&&function(n){var t,e,i,r;switch(t=(r=n.i).b,i=r.j,e=r.g,r.a.g){case 0:e.a=(n.g.b.o.a-i.a)/2;break;case 1:e.a=t.d.n.a+t.d.a.a;break;case 2:e.a=t.d.n.a+t.d.a.a-i.a;break;case 3:e.b=t.d.n.b+t.d.a.b}}(t)}(i),r=t.b,c=function(n){var t,e,i,r,c,a,u,o,s,h;for(e=0,u=new h1(n.d);u.a<u.c.c.length;)(a=Im(De(u),101)).i&&(a.i.c=e++);for(r=0,t=Cv(nYN,[nhJ,nbf],[177,25],16,[e,e],2),h=n.d;r<h.c.length;r++)if(x4(r,h.c.length),(o=Im(h.c[r],101)).i)for(c=r+1;c<h.c.length;c++)x4(c,h.c.length),(s=Im(h.c[c],101)).i&&(i=function(n,t){var e,i,r,c,a;return i=n.i,r=t.i,!!i&&!!r&&i.i==r.i&&i.i!=(nsR(),nWA)&&i.i!=(nsR(),nWJ)&&(e=(c=i.g.a)+i.j.a,c<=(a=r.g.a)+r.j.a&&e>=a)}(o,s),t[o.i.c][s.i.c]=i,t[s.i.c][o.i.c]=i);return t}(i),function(n,t,e){var i,r,c,a,u,o,s;for(s=t.d,n.a=new Fq(s.c.length),n.c=new wt,u=new h1(s);u.a<u.c.c.length;)a=Im(De(u),101),c=new z3(null),IE(n.a,c),$J(n.c,a,c);for(n.b=new wt,function(n,t){var e,i,r,c,a,u,o;for(o=t.d,r=t.b.j,u=new h1(o);u.a<u.c.c.length;)for(a=Im(De(u),101),c=_f(nYN,nbf,25,r.c.length,16,1),$J(n.b,a,c),e=a.a.d.p-1,i=a.c.d.p;e!=i;)c[e=(e+1)%r.c.length]=!0}(n,t),i=0;i<s.c.length-1;i++)for(o=Im(CA(t.d,i),101),r=i+1;r<s.c.length;r++)!function(n,t,e,i){var r,c,a,u;r=Q6(n,t,e),c=Q6(n,e,t),a=Im($a(n.c,t),112),u=Im($a(n.c,e),112),r<c?new x_((FO(),nB0),a,u,c-r):c<r?new x_((FO(),nB0),u,a,r-c):(0!=r||!(!t.i||!e.i)&&i[t.i.c][e.i.c])&&(new x_((FO(),nB0),a,u,0),new x_(nB0,u,a,0))}(n,o,Im(CA(t.d,r),101),e)}(r,i,c),nn5(r.a,Im(ntP($L(i.b),(nhu(),nxN)),230)),function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b;for(c=new vK,r=new h1(n.a);r.a<r.c.c.length;)u=i=Im(De(r),112),o=i.f.c.length,u.d=o,s=i,h=i.k.c.length,s.i=h,0==i.i&&(i.o=0,KL(c,i,c.c.b,c.c));for(;0!=c.b;)for(e=(i=Im(0==c.b?null:(MK(0!=c.b),HK(c,c.a.a)),112)).o+1,t=new h1(i.f);t.a<t.c.c.length;)f=a=Im(De(t),129).a,l=nTv.Math.max(a.o,e),f.o=l,b=a.i-1,a.i=b,0==a.i&&KL(c,a,c.c.b,c.c)}(r),function(n,t){var e,i,r,c;for(r=new h1(t.d);r.a<r.c.c.length;)for(i=Im(De(r),101),c=Im($a(n.c,i),112).o,e=new vR(i.b);e.a<e.c.a.length;)_$(i,Im(RY(e),61),c)}(r,i),a=_f(nYL,nfH,25,i.b.j.c.length,15,1),nsv(r,i,(nsR(),nW$),a,c),nsv(r,i,nWA,a,c),nsv(r,i,nWV,a,c),nsv(r,i,nWJ,a,c),r.a=null,r.c=null,r.b=null,function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(h=(a=t.b).o,o=a.d,i=gy(Ss(JQ(a,(ns8(),nFB)))),r=gy(Ss(JQ(a,nFq))),s=gy(Ss(JQ(a,nFZ))),I$(u=new dr,o.d,o.c,o.a,o.b),l=function(n,t,e,i){var r,c,a,u,o;for(o=_f(nYR,nhJ,104,(nsR(),Um(xg(nCy,1),nwZ,61,0,[nWQ,nW$,nWA,nWV,nWJ])).length,0,2),c=Um(xg(nCy,1),nwZ,61,0,[nWQ,nW$,nWA,nWV,nWJ]),a=0,u=c.length;a<u;++a)o[(r=c[a]).g]=_f(nYR,nlf,25,n.c[r.g],15,1);return nni(o,n,nW$),nni(o,n,nWV),Y9(o,n,nW$,t,e,i),Y9(o,n,nWA,t,e,i),Y9(o,n,nWV,t,e,i),Y9(o,n,nWJ,t,e,i),o}(t,i,r,s),p=new h1(t.d);p.a<p.c.c.length;){for(w=(g=Im(De(p),101)).f.a.ec().Kc();w.Ob();)c=(b=Im(w.Pb(),409)).a,f=function(n){var t,e,i,r;return(e=(t=n.c.d).j)==(r=(i=n.d.d).j)?t.p<i.p?0:1:Vp(e)==r?0:Vd(e)==r?1:T8(n.b.b,Vp(e))?0:1}(b),v=new dd,nn9(b,b.c,l,v),function(n,t,e,i){var r,c,a,u,o;if(c=n.c.d,a=n.d.d,c.j!=a.j)for(o=n.b,r=c.j,u=null;r!=a.j;)u=0==t?Vp(r):Vd(r),I2(i,S9(J$(r,o.d[r.g],e),J$(u,o.d[u.g],e))),r=u}(b,f,l,v),nn9(b,b.d,l,v),e=v,e=n.Uf(b,f,e),Lq(c.a),Gz(c.a,e),vF(new CL(null,new x6(e,16)),new yh(h,u));(d=g.i)&&(function(n,t,e,i){var r,c;switch(r=e[(c=t.i).g][n.d[c.g]],c.g){case 1:r-=i+t.j.b,t.g.b=r;break;case 3:r+=i,t.g.b=r;break;case 4:r-=i+t.j.a,t.g.a=r;break;case 2:r+=i,t.g.a=r}}(g,d,l,r),Jv(h,u,m=new Ee(d.g)),S9(m,d.j),Jv(h,u,m))}I$(o,u.d,u.c,u.a,u.b)}(e,i)},AY(ndw,"SelfLoopRouter/lambda$4$Type",1611),nrr(1612,1,nw2,im),nTm.pf=function(n,t){!function(n,t){var e,i;for(ntc(t,"Semi-Interactive Crossing Minimization Processor",1),e=!1,i=new h1(n.b);i.a<i.c.c.length;)e|=null!=WQ(H$(Lb(Lb(new CL(null,new x6(Im(De(i),29).a,16)),new iy),new ik),new ij),new iE).a;e&&UU(n,(nhu(),nxw),(TX(),!0)),nee(t)}(Im(n,37),t)},AY(ndw,"SemiInteractiveCrossMinProcessor",1612),nrr(1613,1,nfw,iy),nTm.Mb=function(n){return Im(n,10).k==(ntY(),nAV)},AY(ndw,"SemiInteractiveCrossMinProcessor/lambda$0$Type",1613),nrr(1614,1,nfw,ik),nTm.Mb=function(n){return CD(Im(n,10))._b((ns8(),nFO))},AY(ndw,"SemiInteractiveCrossMinProcessor/lambda$1$Type",1614),nrr(1615,1,nlX,ij),nTm.ue=function(n,t){var e,i,r,c;return e=Im(n,10),i=Im(t,10),r=Im(ntP(e,(ns8(),nFO)),8),c=Im(ntP(i,nFO),8),Vv(r.b,c.b)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndw,"SemiInteractiveCrossMinProcessor/lambda$2$Type",1615),nrr(1616,1,{},iE),nTm.Ce=function(n,t){var e,i;return e=Im(n,10),i=Im(t,10),Im(ntP(e,(nhu(),nxb)),15).Fc(i),i},AY(ndw,"SemiInteractiveCrossMinProcessor/lambda$3$Type",1616),nrr(1618,1,nw2,iT),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o;for(ntc(t,"Sort By Input Model "+ntP(n,(ns8(),nKh)),1),r=0,i=new h1(n.b);i.a<i.c.c.length;){for(e=Im(De(i),29),o=0==r?0:r-1,u=Im(CA(n.b,o),29),a=new h1(e.a);a.a<a.c.c.length;)jf(ntP(c=Im(De(a),10),nFE))!==jf((nn2(),nWp))&&jf(ntP(c,nFE))!==jf(nWv)&&(LV(),E_(c.j,new Bm(u,ZW(c))),IJ(t,"Node "+c+" ports: "+c.j));LV(),E_(e.a,new GV(u,Im(ntP(n,nKh),339),Im(ntP(n,nKo),378))),IJ(t,"Layer "+r+": "+e),++r}nee(t)}(Im(n,37),t)},AY(ndw,"SortByInputModelProcessor",1618),nrr(1619,1,nfw,iM),nTm.Mb=function(n){return 0!=Im(n,11).g.c.length},AY(ndw,"SortByInputModelProcessor/lambda$0$Type",1619),nrr(1620,1,nh1,le),nTm.td=function(n){var t,e,i,r,c;t=this.a,c=function(n){var t,e;e=null,t=Im(CA(n.g,0),17);do{if(MH(e=t.d.i,(nhu(),nxm)))return Im(ntP(e,nxm),11).i;if(e.k!=(ntY(),nAV)&&nrc(new OM(TD(Vz(e).a.Kc(),new s))))t=Im(K4(new OM(TD(Vz(e).a.Kc(),new s))),17);else if(e.k!=nAV)return null}while(!!e&&e.k!=(ntY(),nAV))return e}(e=Im(n,11)),UU(e,(nhu(),nxy),c),c&&(r=nhM,Nj(t.f,c)&&(r=Im(jh(Nj(t.f,c)),19).a),gm(So(ntP(i=Im(CA(e.g,0),17),nxD)))||$J(t,c,Va(nTv.Math.min(Im(ntP(i,nxj),19).a,r))))},AY(ndw,"SortByInputModelProcessor/lambda$1$Type",1620),nrr(1693,803,{},Gj),nTm.Me=function(n){var t,e,i,r;switch(this.c=n,this.a.g){case 2:t=new wn,vF(Lb(new CL(null,new x6(this.c.a.b,16)),new iF),new yi(this,t)),neW(this,new iI),HR(t,new iC),t.c=_f(nEX,nhA,1,0,5,1),vF(Lb(new CL(null,new x6(this.c.a.b,16)),new iO),new lr(t)),neW(this,new iA),HR(t,new i$),t.c=_f(nEX,nhA,1,0,5,1),e=Eq(G3(Ld(new CL(null,new x6(this.c.a.b,16)),new lc(this))),new iL),vF(new CL(null,new x6(this.c.a.a,16)),new yn(e,t)),neW(this,new ix),HR(t,new iS),t.c=_f(nEX,nhA,1,0,5,1);break;case 3:i=new wn,neW(this,new iP),r=Eq(G3(Ld(new CL(null,new x6(this.c.a.b,16)),new li(this))),new iN),vF(Lb(new CL(null,new x6(this.c.a.b,16)),new iD),new ye(r,i)),neW(this,new iR),HR(i,new iK),i.c=_f(nEX,nhA,1,0,5,1);break;default:throw(new wA).e}},nTm.b=0,AY(ndE,"EdgeAwareScanlineConstraintCalculation",1693),nrr(1694,1,nbt,iP),nTm.Lb=function(n){return Ti(Im(n,57).g,145)},nTm.Fb=function(n){return this===n},nTm.Mb=function(n){return Ti(Im(n,57).g,145)},AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$0$Type",1694),nrr(1695,1,{},li),nTm.Fe=function(n){var t,e,i,r;return t=this.a,Ti((e=Im(n,57)).g,10)&&Im(e.g,10).k==(ntY(),nAU)?nlc:RM(e)?nTv.Math.max(0,t.b/2-.5):(i=DZ(e))?(r=gy(Ss(QR(i,(ns8(),nFJ)))),nTv.Math.max(0,r/2-.5)):nlc},AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$1$Type",1695),nrr(1703,1,nfd,m7),nTm.Vd=function(){nne(this.a,this.b,-1)},nTm.b=0,AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$10$Type",1703),nrr(1705,1,nbt,iI),nTm.Lb=function(n){return Ti(Im(n,57).g,145)},nTm.Fb=function(n){return this===n},nTm.Mb=function(n){return Ti(Im(n,57).g,145)},AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$11$Type",1705),nrr(1706,1,nh1,iC),nTm.td=function(n){Im(n,365).Vd()},AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$12$Type",1706),nrr(1707,1,nfw,iO),nTm.Mb=function(n){return Ti(Im(n,57).g,10)},AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$13$Type",1707),nrr(1709,1,nh1,lr),nTm.td=function(n){var t,e,i,r;t=this.a,r=gy(Ss(QR(DZ(e=Im(n,57)),(ns8(),nFB)))),nne(e,i=nTv.Math.max(0,r/2-.5),1),IE(t,new yo(e,i))},AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$14$Type",1709),nrr(1708,1,nfd,yo),nTm.Vd=function(){nne(this.b,this.a,-1)},nTm.a=0,AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$15$Type",1708),nrr(1710,1,nbt,iA),nTm.Lb=function(n){return Ti(Im(n,57).g,10)},nTm.Fb=function(n){return this===n},nTm.Mb=function(n){return Ti(Im(n,57).g,10)},AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$16$Type",1710),nrr(1711,1,nh1,i$),nTm.td=function(n){Im(n,365).Vd()},AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$17$Type",1711),nrr(1712,1,{},lc),nTm.Fe=function(n){var t,e,i,r;return t=this.a,Ti((e=Im(n,57)).g,10)&&Im(e.g,10).k==(ntY(),nAU)?nlc:RM(e)?nTv.Math.max(0,t.b/2-.5):(i=DZ(e))?(r=gy(Ss(QR(i,(ns8(),nFJ)))),nTv.Math.max(0,r/2-.5)):nlc},AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$18$Type",1712),nrr(1713,1,{},iL),nTm.De=function(){return 0},AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$19$Type",1713),nrr(1696,1,{},iN),nTm.De=function(){return 0},AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$2$Type",1696),nrr(1715,1,nh1,yn),nTm.td=function(n){var t,e,i;t=this.a,e=this.b,nrE(i=Im(n,307),t,1),IE(e,new yt(i,t))},nTm.a=0,AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$20$Type",1715),nrr(1714,1,nfd,yt),nTm.Vd=function(){nrE(this.a,this.b,-1)},nTm.b=0,AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$21$Type",1714),nrr(1716,1,nbt,ix),nTm.Lb=function(n){return Im(n,57),!0},nTm.Fb=function(n){return this===n},nTm.Mb=function(n){return Im(n,57),!0},AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$22$Type",1716),nrr(1717,1,nh1,iS),nTm.td=function(n){Im(n,365).Vd()},AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$23$Type",1717),nrr(1697,1,nfw,iD),nTm.Mb=function(n){return Ti(Im(n,57).g,10)},AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$3$Type",1697),nrr(1699,1,nh1,ye),nTm.td=function(n){var t,e,i;t=this.a,e=this.b,nne(i=Im(n,57),t,1),IE(e,new ys(i,t))},nTm.a=0,AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$4$Type",1699),nrr(1698,1,nfd,ys),nTm.Vd=function(){nne(this.b,this.a,-1)},nTm.a=0,AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$5$Type",1698),nrr(1700,1,nbt,iR),nTm.Lb=function(n){return Im(n,57),!0},nTm.Fb=function(n){return this===n},nTm.Mb=function(n){return Im(n,57),!0},AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$6$Type",1700),nrr(1701,1,nh1,iK),nTm.td=function(n){Im(n,365).Vd()},AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$7$Type",1701),nrr(1702,1,nfw,iF),nTm.Mb=function(n){return Ti(Im(n,57).g,145)},AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$8$Type",1702),nrr(1704,1,nh1,yi),nTm.td=function(n){var t,e,i,r;t=this.a,e=this.b,nne(i=Im(n,57),r=nTv.Math.max(0,t.b/2-.5),1),IE(e,new m7(i,r))},AY(ndE,"EdgeAwareScanlineConstraintCalculation/lambda$9$Type",1704),nrr(1521,1,nw2,Mk),nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a,u,o,h,f,l,b,w,d;if((r=Im(ntP(t,(ns8(),nKr)),275))!=(ntW(),nNI)){switch((ntc(e,"Horizontal Compaction",1),n.a=t,a=i=new niB(((c=new Bv).d=t,c.c=Im(ntP(c.d,nKO),218),function(n){var t,e,i,r,c,a,u;for(t=!1,e=0,r=new h1(n.d.b);r.a<r.c.c.length;)for((i=Im(De(r),29)).p=e++,a=new h1(i.a);a.a<a.c.c.length;)c=Im(De(a),10),t||RT(Vq(c))||(t=!0);u=C6((W2(),nXO),Um(xg(nCh,1),nfh,103,0,[nXI,nXC])),t||(Gv(u,nXA),Gv(u,nXP)),n.a=new HS(u),AT(n.f),AT(n.b),AT(n.e),AT(n.g)}(c),function(n){var t,e,i,r,c,a,u,o,h,f,l,b,w,d;for(c=new h1(n.d.b);c.a<c.c.c.length;)for(u=new h1(Im(De(c),29).a);u.a<u.c.c.length;){if(gm(So(ntP(a=Im(De(u),10),(ns8(),nKt))))&&!RT(Vq(a))){(h=(i=Im((A1(l=Vq(a)),YX(new OM(TD(l.a.Kc(),new s)))),17)).c.i)==a&&(h=i.d.i),f=new k_(h,S7(E1(a.n),h.n)),$J(n.b,a,f);continue}r=new Lj(a.n.a-a.d.b,a.n.b-a.d.d,a.o.a+a.d.b+a.d.c,a.o.b+a.d.d+a.d.a),t=Mn(((b=new wJ).a.g=a,b.a.d=r,w=nLs,b.a.j=w,b),n.a),T7(((d=qC(new wQ,Um(xg(nSe,1),nhA,57,0,[t]))).a.f=t,d),n.a),o=new we,$J(n.e,t,o),(e=RK(new OM(TD(VG(a).a.Kc(),new s)))-RK(new OM(TD(Vz(a).a.Kc(),new s))))<0?UL(o,!0,(W2(),nXI)):e>0&&UL(o,!0,(W2(),nXC)),a.k==(ntY(),nAU)&&Lt(o),$J(n.f,a,t)}}(c),function(n){var t,e,i;switch((t=Im(ntP(n.d,(ns8(),nKO)),218)).g){case 2:e=function(n){var t,e,i,r,c,a,u,o,h,f,l,b,w,d,g;for(d=new wn,l=new h1(n.d.b);l.a<l.c.c.length;)for(w=new h1(Im(De(l),29).a);w.a<w.c.c.length;){for(b=Im(De(w),10),r=Im($a(n.f,b),57),o=new OM(TD(Vz(b).a.Kc(),new s));nrc(o);)if(i=Jz((a=Im(K4(o),17)).a,0),h=!0,f=null,i.b!=i.d.c){for(t=Im(RP(i),8),e=null,a.c.j==(nsR(),nW$)&&((g=new nu9(t,new kp(t.a,r.d.d),r,a)).f.a=!0,g.a=a.c,d.c[d.c.length]=g),a.c.j==nWV&&((g=new nu9(t,new kp(t.a,r.d.d+r.d.a),r,a)).f.d=!0,g.a=a.c,d.c[d.c.length]=g);i.b!=i.d.c;)e=Im(RP(i),8),!H0(t.b,e.b)&&(f=new nu9(t,e,null,a),d.c[d.c.length]=f,h&&(h=!1,e.b<r.d.d?f.f.a=!0:e.b>r.d.d+r.d.a?f.f.d=!0:(f.f.d=!0,f.f.a=!0))),i.b!=i.d.c&&(t=e);f&&(c=Im($a(n.f,a.d.i),57),t.b<c.d.d?f.f.a=!0:t.b>c.d.d+c.d.a?f.f.d=!0:(f.f.d=!0,f.f.a=!0))}for(u=new OM(TD(VG(b).a.Kc(),new s));nrc(u);)0!=(a=Im(K4(u),17)).a.b&&(t=Im(MC(a.a),8),a.d.j==(nsR(),nW$)&&((g=new nu9(t,new kp(t.a,r.d.d),r,a)).f.a=!0,g.a=a.d,d.c[d.c.length]=g),a.d.j==nWV&&((g=new nu9(t,new kp(t.a,r.d.d+r.d.a),r,a)).f.d=!0,g.a=a.d,d.c[d.c.length]=g))}return d}(n);break;case 3:i=new wn,vF(Lb(Lw(BV(BV(new CL(null,new x6(n.d.b,16)),new i1),new i0),new i2),new iB),new lw(i)),e=i;break;default:throw new gg("Compaction not supported for "+t+" edges.").e}(function(n,t){var e,i,r,c,a,u,o,s,h;if(0!=t.c.length){for(LV(),C3(t.c,t.c.length,null),i=Im(De(r=new h1(t)),145);r.a<r.c.c.length;)(e=Im(De(r),145),H0(i.e.c,e.e.c)&&!(Q7(Sk(i.e).b,e.e.d)||Q7(Sk(e.e).b,i.e.d)))?(Uf(i.k,e.k),Uf(i.b,e.b),Uf(i.c,e.c),Gz(i.i,e.i),Uf(i.d,e.d),Uf(i.j,e.j),c=nTv.Math.min(i.e.c,e.e.c),a=nTv.Math.min(i.e.d,e.e.d),u=nTv.Math.max(i.e.c+i.e.b,e.e.c+e.e.b)-c,o=nTv.Math.max(i.e.d+i.e.a,e.e.d+e.e.a)-a,I0(i.e,c,a,u,o),s=i.f,h=e.f,s.b=s.b|h.b,s.c=s.c|h.c,s.d=s.d|h.d,s.a=s.a|h.a,i.a||(i.a=e.a),Uf(i.g,e.g),IE(i.g,e)):(nuy(n,i),i=e);nuy(n,i)}})(n,e),KA(new hN(n.g),new ll(n))}(c),c.a)),u=n.b,a.g=u,1===Im(ntP(t,nKi),422).g)?(o=new Gj(n.a),i.c=o):(LJ(),h=nSE,i.c=h),r.g){case 1:nrx(i);break;case 2:nrx(nsj(i,(W2(),nXC)));break;case 3:nrx((f=nsj(nrx(i),(W2(),nXC)),l=new i_,f.f=l,f));break;case 4:nrx((b=nsj(nrx(i),(W2(),nXC)),w=new lu(c),b.f=w,b));break;case 5:nrx((d=nLo,i.b=d,i))}nsj(i,(W2(),nXI)),i.e=!0,function(n){var t,e,i,r;for(vF(Lb(new CL(null,new x6(n.a.b,16)),new iG),new iz),function(n){var t,e,i,r,c;for(i=new XE(new hL(n.b).a);i.b;)t=Im((e=HQ(i)).cd(),10),c=Im(Im(e.dd(),46).a,10),r=Im(Im(e.dd(),46).b,8),S9(jR(t.n),S9(E1(c.n),r))}(n),vF(Lb(new CL(null,new x6(n.a.b,16)),new iU),new iX),n.c==(VY(),nXF)&&(vF(Lb(BV(new CL(null,new x6(new hN(n.f),1)),new iW),new iV),new lf(n)),vF(Lb(Lw(BV(BV(new CL(null,new x6(n.d.b,16)),new iQ),new iJ),new iY),new iZ),new lb(n))),r=new kp(nlc,nlc),t=new kp(nla,nla),i=new h1(n.a.b);i.a<i.c.c.length;)e=Im(De(i),57),r.a=nTv.Math.min(r.a,e.d.c),r.b=nTv.Math.min(r.b,e.d.d),t.a=nTv.Math.max(t.a,e.d.c+e.d.b),t.b=nTv.Math.max(t.b,e.d.d+e.d.a);S9(jR(n.d.c),MX(new kp(r.a,r.b))),S9(jR(n.d.f),S7(new kp(t.a,t.b),r)),function(n,t,e){var i,r;for(i=new h1(n.a.b);i.a<i.c.c.length;)if((r=DZ(Im(De(i),57)))&&r.k==(ntY(),nAU))switch(Im(ntP(r,(nhu(),nxr)),61).g){case 4:r.n.a=t.a;break;case 2:r.n.a=e.a-(r.o.a+r.d.c);break;case 1:r.n.b=t.b;break;case 3:r.n.b=e.b-(r.o.b+r.d.a)}}(n,r,t),AT(n.f),AT(n.b),AT(n.g),AT(n.e),n.a.a.c=_f(nEX,nhA,1,0,5,1),n.a.b.c=_f(nEX,nhA,1,0,5,1),n.a=null,n.d=null}(c),nee(e)}}(this,Im(n,37),t)},AY(ndE,"HorizontalGraphCompactor",1521),nrr(1522,1,{},la),nTm.Oe=function(n,t){var e,i,r;return BB(n,t)||(e=DZ(n),i=DZ(t),e&&e.k==(ntY(),nAU)||i&&i.k==(ntY(),nAU))?0:RA(r=Im(ntP(this.a.a,(nhu(),nxF)),304),e?e.k:(ntY(),nAW),i?i.k:(ntY(),nAW),r.b)},nTm.Pe=function(n,t){var e,i,r;return BB(n,t)?1:(e=DZ(n),i=DZ(t),RA(r=Im(ntP(this.a.a,(nhu(),nxF)),304),e?e.k:(ntY(),nAW),i?i.k:(ntY(),nAW),r.c))},AY(ndE,"HorizontalGraphCompactor/1",1522),nrr(1523,1,{},i_),nTm.Ne=function(n,t){return v6(),0==n.a.i},AY(ndE,"HorizontalGraphCompactor/lambda$0$Type",1523),nrr(1524,1,{},lu),nTm.Ne=function(n,t){var e;return e=this.a,v6(),function(n,t){switch(t.g){case 2:return n.b;case 1:return n.c;case 4:return n.d;case 3:return n.a;default:return!1}}(Im($a(e.e,n),522),t)},AY(ndE,"HorizontalGraphCompactor/lambda$1$Type",1524),nrr(1664,1,{},Bv),AY(ndE,"LGraphToCGraphTransformer",1664),nrr(1672,1,nfw,iB),nTm.Mb=function(n){return null!=n},AY(ndE,"LGraphToCGraphTransformer/0methodref$nonNull$Type",1672),nrr(1665,1,{},iH),nTm.Kb=function(n){return In(),V7(ntP(Im(Im(n,57).g,10),(nhu(),nxE)))},AY(ndE,"LGraphToCGraphTransformer/lambda$0$Type",1665),nrr(1666,1,{},iq),nTm.Kb=function(n){return In(),WH(Im(Im(n,57).g,145))},AY(ndE,"LGraphToCGraphTransformer/lambda$1$Type",1666),nrr(1675,1,nfw,iG),nTm.Mb=function(n){return In(),Ti(Im(n,57).g,10)},AY(ndE,"LGraphToCGraphTransformer/lambda$10$Type",1675),nrr(1676,1,nh1,iz),nTm.td=function(n){var t,e;t=Im(n,57),In(),(e=Im(t.g,10)).n.a=t.d.c+e.d.b},AY(ndE,"LGraphToCGraphTransformer/lambda$11$Type",1676),nrr(1677,1,nfw,iU),nTm.Mb=function(n){return In(),Ti(Im(n,57).g,145)},AY(ndE,"LGraphToCGraphTransformer/lambda$12$Type",1677),nrr(1681,1,nh1,iX),nTm.td=function(n){var t,e,i;t=Im(n,57),In(),e=t.d.c-t.e.c,HR((i=Im(t.g,145)).b,new lo(e)),HR(i.c,new ls(e)),KA(i.i,new lh(e))},AY(ndE,"LGraphToCGraphTransformer/lambda$13$Type",1681),nrr(1678,1,nh1,lo),nTm.td=function(n){var t,e;t=this.a,e=Im(n,8),In(),e.a+=t},nTm.a=0,AY(ndE,"LGraphToCGraphTransformer/lambda$14$Type",1678),nrr(1679,1,nh1,ls),nTm.td=function(n){var t,e;t=this.a,e=Im(n,110),In(),e.c+=t},nTm.a=0,AY(ndE,"LGraphToCGraphTransformer/lambda$15$Type",1679),nrr(1680,1,nh1,lh),nTm.td=function(n){var t,e;t=this.a,e=Im(n,8),In(),e.a+=t},nTm.a=0,AY(ndE,"LGraphToCGraphTransformer/lambda$16$Type",1680),nrr(1682,1,{},iW),nTm.Kb=function(n){return In(),new CL(null,new A$(new OM(TD(Vz(Im(n,10)).a.Kc(),new s))))},AY(ndE,"LGraphToCGraphTransformer/lambda$17$Type",1682),nrr(1683,1,nfw,iV),nTm.Mb=function(n){return In(),KR(Im(n,17))},AY(ndE,"LGraphToCGraphTransformer/lambda$18$Type",1683),nrr(1684,1,nh1,lf),nTm.td=function(n){var t,e,i,r,c;t=this.a,c=(e=Im(n,17)).c.i,r=(i=Im($a(t.f,c),57)).d.c-i.e.c,GZ(e.a,r,0)},AY(ndE,"LGraphToCGraphTransformer/lambda$19$Type",1684),nrr(1668,1,nh1,ll),nTm.td=function(n){var t,e,i;t=this.a,e=Im(n,145),i=Im($a(t.g,e),57),HR(e.d,new yr(t,i))},AY(ndE,"LGraphToCGraphTransformer/lambda$2$Type",1668),nrr(1685,1,{},iQ),nTm.Kb=function(n){return In(),new CL(null,new x6(Im(n,29).a,16))},AY(ndE,"LGraphToCGraphTransformer/lambda$20$Type",1685),nrr(1686,1,{},iJ),nTm.Kb=function(n){return In(),new CL(null,new A$(new OM(TD(Vz(Im(n,10)).a.Kc(),new s))))},AY(ndE,"LGraphToCGraphTransformer/lambda$21$Type",1686),nrr(1687,1,{},iY),nTm.Kb=function(n){return In(),Im(ntP(Im(n,17),(nhu(),nxH)),15)},AY(ndE,"LGraphToCGraphTransformer/lambda$22$Type",1687),nrr(1688,1,nfw,iZ),nTm.Mb=function(n){var t;return t=Im(n,15),In(),!!t&&!t.dc()},AY(ndE,"LGraphToCGraphTransformer/lambda$23$Type",1688),nrr(1689,1,nh1,lb),nTm.td=function(n){!function(n,t){var e,i,r,c,a;if(!t.dc()){if(r=Im(t.Xb(0),128),1==t.gc()){ncI(n,r,r,1,0,t);return}for(e=1;e<t.gc();)(r.j||!r.o)&&(c=function(n,t){var e,i;if(t<0||t>=n.gc())return null;for(e=t;e<n.gc();++e)if(i=Im(n.Xb(e),128),e==n.gc()-1||!i.o)return new k_(Va(e),i);return null}(t,e))&&(i=Im(c.a,19).a,ncI(n,r,a=Im(c.b,128),e,i,t),e=i+1,r=a)}}(this.a,Im(n,15))},AY(ndE,"LGraphToCGraphTransformer/lambda$24$Type",1689),nrr(1667,1,nh1,yr),nTm.td=function(n){var t,e,i,r;t=this.a,e=this.b,i=Im(n,145),r=Im($a(t.g,i),57),IE(t.a.c,new k_(e,r))},AY(ndE,"LGraphToCGraphTransformer/lambda$3$Type",1667),nrr(1669,1,{},i1),nTm.Kb=function(n){return In(),new CL(null,new x6(Im(n,29).a,16))},AY(ndE,"LGraphToCGraphTransformer/lambda$4$Type",1669),nrr(1670,1,{},i0),nTm.Kb=function(n){return In(),new CL(null,new A$(new OM(TD(Vz(Im(n,10)).a.Kc(),new s))))},AY(ndE,"LGraphToCGraphTransformer/lambda$5$Type",1670),nrr(1671,1,{},i2),nTm.Kb=function(n){return In(),Im(ntP(Im(n,17),(nhu(),nxH)),15)},AY(ndE,"LGraphToCGraphTransformer/lambda$6$Type",1671),nrr(1673,1,nh1,lw),nTm.td=function(n){!function(n,t){var e,i,r,c,a,u;for(In(),e=null,r=t.Kc();r.Ob();)(i=Im(r.Pb(),128)).o||(IE((c=new nu9(new kp((a=i.a).c,a.d),new kp((u=i.a).c+u.b,u.d+u.a),null,Im(i.d.a.ec().Kc().Pb(),17))).c,i.a),n.c[n.c.length]=c,e&&IE(e.d,c),e=c)}(this.a,Im(n,15))},AY(ndE,"LGraphToCGraphTransformer/lambda$8$Type",1673),nrr(1674,1,nh1,yc),nTm.td=function(n){var t,e,i;t=this.a,e=this.b,i=Im(n,145),$J(t.g,i,e)},AY(ndE,"LGraphToCGraphTransformer/lambda$9$Type",1674),nrr(1663,1,{},i3),nTm.Le=function(n){var t,e,i,r,c;for(this.a=n,this.d=new wq,this.c=_f(nSs,nhA,121,this.a.a.a.c.length,0,1),this.b=0,e=new h1(this.a.a.a);e.a<e.c.c.length;)(t=Im(De(e),307)).d=this.b,c=Mt(vG(new wU,t),this.d),this.c[this.b]=c,++this.b;for(function(n){var t,e,i,r,c,a,u,o,s,h,f,l;for(r=new h1(n.a.a.b);r.a<r.c.c.length;)for(o=(i=Im(De(r),57)).c.Kc();o.Ob();)u=Im(o.Pb(),57),i.a!=u.a&&(f=Ei(n.a.d)?n.a.g.Oe(i,u):n.a.g.Pe(i,u),c=i.b.a+i.d.b+f-u.b.a,c=nTv.Math.ceil(c),c=nTv.Math.max(0,c),BB(i,u)?(a=Mt(new wU,n.d),t=(s=NU(nTv.Math.ceil(u.b.a-i.b.a)))-(u.b.a-i.b.a),h=RM(i).a,e=i,h||(h=RM(u).a,t=-t,e=u),h&&(e.b.a-=t,h.n.a-=t),nck(vH(vB(vq(v_(new wz,nTv.Math.max(0,s)),1),a),n.c[i.a.d])),nck(vH(vB(vq(v_(new wz,nTv.Math.max(0,-s)),1),a),n.c[u.a.d]))):(l=1,(Ti(i.g,145)&&Ti(u.g,10)||Ti(u.g,145)&&Ti(i.g,10))&&(l=2),nck(vH(vB(vq(v_(new wz,NU(c)),l),n.c[i.a.d]),n.c[u.a.d]))))}(this),function(n){var t,e,i,r,c,a,u,o,h,f,l,b,w,d,g,p,v;for(h=new wt,u=new NK,i=new h1(n.a.a.b);i.a<i.c.c.length;)if(o=DZ(t=Im(De(i),57)))neQ(h.f,o,t);else if(v=RM(t))for(r=new h1(v.k);r.a<r.c.c.length;)niP(u,Im(De(r),17),t);for(e=new h1(n.a.a.b);e.a<e.c.c.length;)if(o=DZ(t=Im(De(e),57))){for(a=new OM(TD(Vz(o).a.Kc(),new s));nrc(a);)if(!KR(c=Im(K4(a),17))&&(w=c.c,p=c.d,!((nsR(),nWq).Hc(c.c.j)&&nWq.Hc(c.d.j)))){if(d=Im($a(h,c.d.i),57),nck(vH(vB(vq(v_(new wz,0),100),n.c[t.a.d]),n.c[d.a.d])),w.j==nWJ&&Oz((zn(),w))){for(l=Im(Fl(u,c),21).Kc();l.Ob();)if((f=Im(l.Pb(),57)).d.c<t.d.c){if((b=n.c[f.a.d])==(g=n.c[t.a.d]))continue;nck(vH(vB(vq(v_(new wz,1),100),b),g))}}if(p.j==nWA&&OG((zn(),p))){for(l=Im(Fl(u,c),21).Kc();l.Ob();)if((f=Im(l.Pb(),57)).d.c>t.d.c){if((b=n.c[t.a.d])==(g=n.c[f.a.d]))continue;nck(vH(vB(vq(v_(new wz,1),100),b),g))}}}}}(this),function(n){var t,e,i,r,c,a,u;for(c=new vK,r=new h1(n.d.a);r.a<r.c.c.length;)0==(i=Im(De(r),121)).b.a.c.length&&KL(c,i,c.c.b,c.c);if(c.b>1)for(t=Mt((e=new wU,++n.b,e),n.d),u=Jz(c,0);u.b!=u.d.c;)a=Im(RP(u),121),nck(vH(vB(vq(v_(new wz,1),0),t),a))}(this),na5(P8(this.d),new dB),r=new h1(this.a.a.b);r.a<r.c.c.length;)(i=Im(De(r),57)).d.c=this.c[i.a.d].e+i.b.a},nTm.b=0,AY(ndE,"NetworkSimplexCompaction",1663),nrr(145,1,{35:1,145:1},nu9),nTm.wd=function(n){var t,e;return t=Im(n,145),0==(e=V2(this.e.c,t.e.c))?Vv(this.e.d,t.e.d):e},nTm.Ib=function(){return WH(this)},AY(ndE,"VerticalSegment",145),nrr(827,1,{},nn1),nTm.c=0,nTm.e=0,nTm.i=0,AY(ndT,"BetweenLayerEdgeTwoNodeCrossingsCounter",827),nrr(663,1,{663:1},ze),nTm.Ib=function(){return"AdjacencyList [node="+this.d+", adjacencies= "+this.a+"]"},nTm.b=0,nTm.c=0,nTm.f=0,AY(ndT,"BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList",663),nrr(287,1,{35:1,287:1},MW),nTm.wd=function(n){var t;return t=Im(n,287),this.c<t.c?-1:this.c==t.c?0:1},nTm.Ib=function(){return"Adjacency [position="+this.c+", cardinality="+this.a+", currentCardinality="+this.b+"]"},nTm.a=0,nTm.b=0,nTm.c=0,AY(ndT,"BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency",287),nrr(1929,1,{},neo),nTm.b=0,nTm.e=!1,AY(ndT,"CrossingMatrixFiller",1929);var nP3=Cw(ndM,"IInitializable");nrr(1804,1,ndS,yw),nTm.Nf=function(n,t,e,i,r,c){},nTm.Pf=function(n,t,e){},nTm.Lf=function(){return this.c!=(qB(),nBp)},nTm.Mf=function(){this.e=_f(nYL,nfH,25,this.d,15,1)},nTm.Of=function(n,t){t[n][0].c.p=n},nTm.Qf=function(n,t,e,i){++this.d},nTm.Rf=function(){return!0},nTm.Sf=function(n,t,e,i){return WS(this,n,t,e),function(n,t){var e,i;i=!1;do i|=e=UW(n,t);while(e)return i}(this,t)},nTm.Tf=function(n,t){var e,i;return i=n.length,WS(this,n,e=t?0:i-1,t),UW(this,e)},nTm.d=0,AY(ndT,"GreedySwitchHeuristic",1804),nrr(1930,1,{},CQ),nTm.b=0,nTm.d=0,AY(ndT,"NorthSouthEdgeNeighbouringNodeCrossingsCounter",1930),nrr(1917,1,{},naf),nTm.a=!1,AY(ndT,"SwitchDecider",1917),nrr(101,1,{101:1},nev),nTm.a=null,nTm.c=null,nTm.i=null,AY(ndP,"SelfHyperLoop",101),nrr(1916,1,{},J_),nTm.c=0,nTm.e=0,AY(ndP,"SelfHyperLoopLabels",1916),nrr(411,22,{3:1,35:1,22:1,411:1},yd);var nP4=qE(ndP,"SelfHyperLoopLabels/Alignment",411,nE2,function(){return Uk(),Um(xg(nP4,1),nfh,411,0,[nLf,nLl,nLb,nLw])},function(n){return Uk(),B5((Bn(),nLd),n)});nrr(409,1,{409:1},Fj),AY(ndP,"SelfLoopEdge",409),nrr(403,1,{403:1},JS),nTm.a=!1,AY(ndP,"SelfLoopHolder",403),nrr(1724,1,nfw,ri),nTm.Mb=function(n){return KR(Im(n,17))},AY(ndP,"SelfLoopHolder/lambda$0$Type",1724),nrr(113,1,{113:1},JB),nTm.a=!1,nTm.c=!1,AY(ndP,"SelfLoopPort",113),nrr(1792,1,nfw,rr),nTm.Mb=function(n){return KR(Im(n,17))},AY(ndP,"SelfLoopPort/lambda$0$Type",1792),nrr(363,22,{3:1,35:1,22:1,363:1},yg);var nP5=qE(ndP,"SelfLoopType",363,nE2,function(){return nnW(),Um(xg(nP5,1),nfh,363,0,[nLp,nLm,nLy,nLv,nLg])},function(n){return nnW(),B5((Hr(),nLk),n)});nrr(1732,1,{},sk),AY(ndI,"PortRestorer",1732),nrr(361,22,{3:1,35:1,22:1,361:1},yp);var nP6=qE(ndI,"PortRestorer/PortSideArea",361,nE2,function(){return GN(),Um(xg(nP6,1),nfh,361,0,[nLI,nLP,nLS])},function(n){return GN(),B5((FZ(),nLC),n)});nrr(1733,1,{},ro),nTm.Kb=function(n){return ntq(),Im(n,15).Oc()},AY(ndI,"PortRestorer/lambda$0$Type",1733),nrr(1734,1,nh1,rs),nTm.td=function(n){ntq(),Im(n,113).c=!1},AY(ndI,"PortRestorer/lambda$1$Type",1734),nrr(1743,1,nfw,rh),nTm.Mb=function(n){return ntq(),Im(n,11).j==(nsR(),nWJ)},AY(ndI,"PortRestorer/lambda$10$Type",1743),nrr(1744,1,{},rf),nTm.Kb=function(n){return ntq(),Im(n,113).d},AY(ndI,"PortRestorer/lambda$11$Type",1744),nrr(1745,1,nh1,ld),nTm.td=function(n){var t,e;t=this.a,e=Im(n,11),ntq(),xM(e,t)},AY(ndI,"PortRestorer/lambda$12$Type",1745),nrr(1735,1,nh1,lg),nTm.td=function(n){var t,e;t=this.a,e=Im(n,101),ntq(),niP(t,e.e,e)},AY(ndI,"PortRestorer/lambda$2$Type",1735),nrr(1736,1,nlX,rl),nTm.ue=function(n,t){var e,i;return e=Im(n,113),i=Im(t,113),ntq(),EG(e.b.c.length-e.e.c.length,i.b.c.length-i.e.c.length)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndI,"PortRestorer/lambda$3$Type",1736),nrr(1737,1,nfw,rb),nTm.Mb=function(n){return ntq(),Im(n,113).c},AY(ndI,"PortRestorer/lambda$4$Type",1737),nrr(1738,1,nfw,i5),nTm.Mb=function(n){var t,e,i,r;return(t=Im(n,11)).j==(nsR(),nW$)&&(i=T8(e=ni2(t),nWA),(r=T8(e,nWJ))||r&&i)},AY(ndI,"PortRestorer/lambda$5$Type",1738),nrr(1739,1,nfw,i4),nTm.Mb=function(n){return ntq(),Im(n,11).j==(nsR(),nW$)},AY(ndI,"PortRestorer/lambda$6$Type",1739),nrr(1740,1,nfw,i6),nTm.Mb=function(n){return ntq(),Im(n,11).j==(nsR(),nWA)},AY(ndI,"PortRestorer/lambda$7$Type",1740),nrr(1741,1,nfw,i8),nTm.Mb=function(n){var t;return(t=Im(n,11)).j==(nsR(),nWV)&&T8(ni2(t),nWA)},AY(ndI,"PortRestorer/lambda$8$Type",1741),nrr(1742,1,nfw,i9),nTm.Mb=function(n){return ntq(),Im(n,11).j==(nsR(),nWV)},AY(ndI,"PortRestorer/lambda$9$Type",1742),nrr(270,22,{3:1,35:1,22:1,270:1},LT);var nP8=qE(ndI,"PortSideAssigner/Target",270,nE2,function(){return nc1(),Um(xg(nP8,1),nfh,270,0,[nLA,nLN,nLO,nLR,nLL,nL$,nLD,nLx])},function(n){return nc1(),B5((zm(),nLK),n)});nrr(1725,1,{},i7),nTm.Kb=function(n){return Lb(new CL(null,new x6(Im(n,101).j,16)),new ru)},AY(ndI,"PortSideAssigner/lambda$1$Type",1725),nrr(1726,1,{},rn),nTm.Kb=function(n){return Im(n,113).d},AY(ndI,"PortSideAssigner/lambda$2$Type",1726),nrr(1727,1,nh1,rt),nTm.td=function(n){ne9(Im(n,11),(nsR(),nW$))},AY(ndI,"PortSideAssigner/lambda$3$Type",1727),nrr(1728,1,{},re),nTm.Kb=function(n){return Im(n,113).d},AY(ndI,"PortSideAssigner/lambda$4$Type",1728),nrr(1729,1,nh1,lp),nTm.td=function(n){var t;t=this.a,ne9(Im(n,11),t)},AY(ndI,"PortSideAssigner/lambda$5$Type",1729),nrr(1730,1,nlX,rc),nTm.ue=function(n,t){var e;return e=Im(n,101),EG(Im(t,101).j.c.length,e.j.c.length)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndI,"PortSideAssigner/lambda$6$Type",1730),nrr(1731,1,nlX,ra),nTm.ue=function(n,t){var e,i;return e=Im(n,113),i=Im(t,113),EG(Ch(e.d),Ch(i.d))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndI,"PortSideAssigner/lambda$7$Type",1731),nrr(805,1,nfw,ru),nTm.Mb=function(n){return Im(n,113).c},AY(ndI,"PortSideAssigner/lambda$8$Type",805),nrr(2009,1,{}),AY(ndC,"AbstractSelfLoopRouter",2009),nrr(1750,1,nlX,rw),nTm.ue=function(n,t){var e,i;return e=Im(n,101),i=Im(t,101),EG(e.a.d.p,i.a.d.p)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndC,nbM,1750),nrr(1751,1,nlX,rd),nTm.ue=function(n,t){var e;return e=Im(n,101),EG(Im(t,101).a.d.p,e.a.d.p)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndC,nbS,1751),nrr(1793,2009,{},rg),nTm.Uf=function(n,t,e){return e},AY(ndC,"OrthogonalSelfLoopRouter",1793),nrr(1795,1,nh1,yh),nTm.td=function(n){Jv(this.b,this.a,Im(n,8))},AY(ndC,"OrthogonalSelfLoopRouter/lambda$0$Type",1795),nrr(1794,1793,{},rp),nTm.Uf=function(n,t,e){var i,r;return Mq(e,0,S9(E1((i=n.c.d).n),i.a)),I2(e,S9(E1((r=n.d.d).n),r.a)),function(n){var t,e,i,r,c,a,u,o;for(o=new dd,t=Jz(n,0),u=null,e=Im(RP(t),8),r=Im(RP(t),8);t.b!=t.d.c;)u=e,e=r,r=Im(RP(t),8),c=Hk(S7(new kp(u.a,u.b),e)),a=Hk(S7(new kp(r.a,r.b),e)),i=10,i=nTv.Math.min(i,nTv.Math.abs(c.a+c.b)/2),i=nTv.Math.min(i,nTv.Math.abs(a.a+a.b)/2),c.a=I9(c.a)*i,c.b=I9(c.b)*i,a.a=I9(a.a)*i,a.b=I9(a.b)*i,I2(o,S9(c,e)),I2(o,S9(a,e));return o}(e)},AY(ndC,"PolylineSelfLoopRouter",1794),nrr(1746,1,{},sd),nTm.a=null,AY(ndC,"RoutingDirector",1746),nrr(1747,1,nlX,rv),nTm.ue=function(n,t){var e,i;return e=Im(n,113),i=Im(t,113),v8(),EG(e.d.p,i.d.p)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndC,"RoutingDirector/lambda$0$Type",1747),nrr(1748,1,{},rm),nTm.Kb=function(n){return v8(),Im(n,101).j},AY(ndC,"RoutingDirector/lambda$1$Type",1748),nrr(1749,1,nh1,ry),nTm.td=function(n){v8(),Im(n,15).ad(nLF)},AY(ndC,"RoutingDirector/lambda$2$Type",1749),nrr(1752,1,{},rk),AY(ndC,"RoutingSlotAssigner",1752),nrr(1753,1,nfw,lv),nTm.Mb=function(n){var t;return t=this.a,T8(Im(n,101).b,t)},AY(ndC,"RoutingSlotAssigner/lambda$0$Type",1753),nrr(1754,1,nlX,lm),nTm.ue=function(n,t){var e,i,r;return e=this.a,i=Im(n,101),r=Im(t,101),EG(i.d[e.g],r.d[e.g])},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndC,"RoutingSlotAssigner/lambda$1$Type",1754),nrr(1796,1793,{},rj),nTm.Uf=function(n,t,e){var i,r,c,a;return i=gy(Ss(JQ(n.b.g.b,(ns8(),nFq)))),a=new MQ(Um(xg(nCa,1),nhJ,8,0,[S9(new Ee((c=n.c.d).n),c.a)])),function(n,t,e,i,r){var c,a,u,o,s;for(s=1,c=n.c.d.j,a=Im(J7(e,0),8);s<e.b;s++)o=Im(J7(e,s),8),KL(i,a,i.c.b,i.c),u=To(S9(new Ee(a),o),.5),S9(u,To(new xH(XM(c)),r)),KL(i,u,i.c.b,i.c),a=o,c=0==t?Vp(c):Vd(c);I2(i,(MK(0!=e.b),Im(e.c.b.c,8)))}(n,t,e,a,i),I2(a,S9(new Ee((r=n.d.d).n),r.a)),YK(new nu1(a))},AY(ndC,"SplineSelfLoopRouter",1796),nrr(578,1,nlX,GV,IG),nTm.ue=function(n,t){return nsV(this,Im(n,10),Im(t,10))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndO,"ModelOrderNodeComparator",578),nrr(1755,1,nfw,rE),nTm.Mb=function(n){return 0!=Im(n,11).e.c.length},AY(ndO,"ModelOrderNodeComparator/lambda$0$Type",1755),nrr(1756,1,{},rT),nTm.Kb=function(n){return Im(CA(Im(n,11).e,0),17).c},AY(ndO,"ModelOrderNodeComparator/lambda$1$Type",1756),nrr(1757,1,nfw,rM),nTm.Mb=function(n){return 0!=Im(n,11).e.c.length},AY(ndO,"ModelOrderNodeComparator/lambda$2$Type",1757),nrr(1758,1,{},rS),nTm.Kb=function(n){return Im(CA(Im(n,11).e,0),17).c},AY(ndO,"ModelOrderNodeComparator/lambda$3$Type",1758),nrr(1759,1,nfw,rP),nTm.Mb=function(n){return 0!=Im(n,11).e.c.length},AY(ndO,"ModelOrderNodeComparator/lambda$4$Type",1759),nrr(806,1,nlX,Bm,yb),nTm.ue=function(n,t){return OU(this,n,t)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndO,"ModelOrderPortComparator",806),nrr(801,1,{},rI),nTm.Vf=function(n,t){var e,i,r,c;for(i=1,r=nt8(t),e=new wn,c=t.f/r;i<r;++i)IE(e,Va(CZ(zx(nTv.Math.round(i*c)))));return e},nTm.Wf=function(){return!1},AY(ndA,"ARDCutIndexHeuristic",801),nrr(1479,1,nw2,rC),nTm.pf=function(n,t){!function(n,t){var e,i,r;switch(ntc(t,"Breaking Point Insertion",1),i=new nrb(n),Im(ntP(n,(ns8(),nF9)),337).g){case 2:r=new rK;case 0:r=new rI;break;default:r=new rF}if(e=r.Vf(n,i),gm(So(ntP(n,n_n)))&&(e=function(n,t){var e,i,r,c,a,u,o,h,f,l,b,w,d,g,p,v,m,y,k;for(l=new wn,r=new wn,d=null,a=t.Kc();a.Ob();)c=new lI(Im(a.Pb(),19).a),r.c[r.c.length]=c,d&&(c.d=d,d.e=c),d=c;for(h=0,m=function(n){var t,e,i,r,c,a,u,o,h;for(h=_f(nYL,nfH,25,n.b.c.length+1,15,1),o=new w_,i=0,c=new h1(n.b);c.a<c.c.c.length;){for(r=Im(De(c),29),h[i++]=o.a.gc(),u=new h1(r.a);u.a<u.c.c.length;)for(e=new OM(TD(Vz(Im(De(u),10)).a.Kc(),new s));nrc(e);)t=Im(K4(e),17),o.a.zc(t,o);for(a=new h1(r.a);a.a<a.c.c.length;)for(e=new OM(TD(VG(Im(De(a),10)).a.Kc(),new s));nrc(e);)t=Im(K4(e),17),o.a.Bc(t)}return h}(n);h<r.c.length;++h){for(f=1,b=null,g=FN((x4(0,r.c.length),Im(r.c[0],652))),e=null,i=nlc;f<n.b.c.length;++f)p=g?nTv.Math.abs(g.b-f):nTv.Math.abs(f-b.b)+1,(w=b?nTv.Math.abs(f-b.b):p+1)<p?(o=b,u=w):(o=g,u=p),y=gy(Ss(ntP(n,(ns8(),nF7)))),(v=m[f]+nTv.Math.pow(u,y))<i&&(i=v,(e=o).c=f),g&&f==g.b&&(b=g,g=(k=g).e?FN(k.e):null);e&&(IE(l,Va(e.c)),e.a=!0,function(n){var t;if(!n.a)throw new gg("Cannot offset an unassigned cut.").e;t=n.c-n.b,n.b+=t,function n(t,e){if(t.d&&!t.d.a){var i;i=t.d,i.b+=e,n(t.d,e)}}(n,t),function n(t,e){if(t.e&&!t.e.a){var i;i=t.e,i.b+=e,n(t.e,e)}}(n,t)}(e))}return LV(),C3(l.c,l.c.length,null),l}(n,e)),!r.Wf()&&MH(n,n_r))switch(Im(ntP(n,n_r),338).g){case 2:e=ne7(i,e);break;case 1:e=nto(i,e)}if(e.dc()){nee(t);return}(function(n,t){var e,i,r,c,a,u,o,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,I,C,O,A;for(v=new Rn(n.b,0),f=t.Kc(),d=0,h=Im(f.Pb(),19).a,k=0,e=new w_,E=new j7;v.b<v.d.gc();){for(MK(v.b<v.d.gc()),y=new h1(Im(v.d.Xb(v.c=v.b++),29).a);y.a<y.c.c.length;){for(w=new OM(TD(Vz(m=Im(De(y),10)).a.Kc(),new s));nrc(w);)l=Im(K4(w),17),E.a.zc(l,E);for(b=new OM(TD(VG(m).a.Kc(),new s));nrc(b);)l=Im(K4(b),17),E.a.Bc(l)}if(d+1==h){for(SH(v,r=new $o(n)),SH(v,c=new $o(n)),M=E.a.ec().Kc();M.Ob();)T=Im(M.Pb(),17),e.a._b(T)||(++k,e.a.zc(T,e)),UU(a=new Y$(n),(ns8(),nFE),(nn2(),nWy)),xT(a,r),ntY(),O=nAz,a.k=O,xM(g=new nt9,a),ne9(g,(nsR(),nWJ)),xM(S=new nt9,a),ne9(S,nWA),UU(i=new Y$(n),nFE,nWy),xT(i,c),A=nAz,i.k=A,xM(p=new nt9,i),ne9(p,nWJ),xM(P=new nt9,i),ne9(P,nWA),xE(j=new Ns,T.c),xj(j,g),xE(C=new Ns,S),xj(C,p),xE(T,P),u=new R$(a,i,j,C,T),UU(a,(nhu(),nN0),u),UU(i,nN0,u),(I=j.c.i).k==nAz&&((o=Im(ntP(I,nN0),305)).d=u,u.g=o);if(f.Ob())h=Im(f.Pb(),19).a;else break}++d}Va(k)})(n,e),nee(t)}(Im(n,37),t)},AY(ndA,"BreakingPointInserter",1479),nrr(305,1,{305:1},R$),nTm.Ib=function(){var n;return n=new gX,n.a+="BPInfo[",n.a+="\n start=",jS(n,this.i),n.a+="\n end=",jS(n,this.a),n.a+="\n nodeStartEdge=",jS(n,this.e),n.a+="\n startEndEdge=",jS(n,this.j),n.a+="\n originalEdge=",jS(n,this.f),n.a+="\n startInLayerDummy=",jS(n,this.k),n.a+="\n startInLayerEdge=",jS(n,this.n),n.a+="\n endInLayerDummy=",jS(n,this.b),n.a+="\n endInLayerEdge=",jS(n,this.c),n.a},AY(ndA,"BreakingPointInserter/BPInfo",305),nrr(652,1,{652:1},lI),nTm.a=!1,nTm.b=0,nTm.c=0,AY(ndA,"BreakingPointInserter/Cut",652),nrr(1480,1,nw2,rO),nTm.pf=function(n,t){!function(n,t){var e,i,r,c;if(ntc(t,"Breaking Point Processor",1),function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;for(SH(o=new Rn(s=n.b,0),new $o(n)),g=!1,c=1;o.b<o.d.gc();){for(MK(o.b<o.d.gc()),u=Im(o.d.Xb(o.c=o.b++),29),x4(c,s.c.length),b=Im(s.c[c],29),d=(w=Da(u.a)).c.length,l=new h1(w);l.a<l.c.c.length;)xT(h=Im(De(l),10),b);if(g){for(f=Dn(new d5(w),0);f.c.Sb();)for(r=new h1(Da(VG(h=Im(KK(f),10))));r.a<r.c.c.length;)nuQ(i=Im(De(r),17),!0),UU(n,(nhu(),nN8),(TX(),!0)),e=no0(n,i,d),t=Im(ntP(h,nN0),305),p=Im(CA(e,e.c.length-1),17),t.k=p.c.i,t.n=p,t.b=i.d.i,t.c=i;g=!1}else 0!=w.c.length&&(x4(0,w.c.length),Im(w.c[0],10).k==(ntY(),nAz)&&(g=!0,c=-1));++c}for(a=new Rn(n.b,0);a.b<a.d.gc();)MK(a.b<a.d.gc()),0==Im(a.d.Xb(a.c=a.b++),29).a.c.length&&$I(a)}(n),gm(So(ntP(n,(ns8(),n_t))))){for(r=new h1(n.b);r.a<r.c.c.length;)for(i=Im(De(r),29),e=0,c=new h1(i.a);c.a<c.c.c.length;)Im(De(c),10).p=e++;(function(n){var t,e,i,r,c,a,u;for(i=new h1(n.b);i.a<i.c.c.length;)for(c=new h1(Da(Im(De(i),29).a));c.a<c.c.c.length;)if(Hd(r=Im(De(c),10))&&!(e=Im(ntP(r,(nhu(),nN0)),305)).g&&e.d)for(t=e,u=e.d;u;)nao(u.i,u.k,!1,!0),By(t.a),By(u.i),By(u.k),By(u.b),xj(u.c,t.c.d),xj(t.c,null),xT(t.a,null),xT(u.i,null),xT(u.k,null),xT(u.b,null),(a=new R$(t.i,u.a,t.e,u.j,u.f)).k=t.k,a.n=t.n,a.b=t.b,a.c=u.c,a.g=t.g,a.d=u.d,UU(t.i,nN0,a),UU(u.a,nN0,a),u=u.d,t=a})(n),ncB(n,!0),ncB(n,!1)}nee(t)}(Im(n,37),t)},AY(ndA,"BreakingPointProcessor",1480),nrr(1481,1,nfw,rA),nTm.Mb=function(n){return Hw(Im(n,10))},AY(ndA,"BreakingPointProcessor/0methodref$isEnd$Type",1481),nrr(1482,1,nfw,r$),nTm.Mb=function(n){return Hd(Im(n,10))},AY(ndA,"BreakingPointProcessor/1methodref$isStart$Type",1482),nrr(1483,1,nw2,rL),nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a;for(ntc(e,"Breaking Point Removing",1),n.a=Im(ntP(t,(ns8(),nKO)),218),r=new h1(t.b);r.a<r.c.c.length;)for(a=new h1(Da(Im(De(r),29).a));a.a<a.c.c.length;)Hw(c=Im(De(a),10))&&((i=Im(ntP(c,(nhu(),nN0)),305)).d||function n(t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d;switch(f=new dd,t.a.g){case 3:b=Im(ntP(e.e,(nhu(),nxH)),15),w=Im(ntP(e.j,nxH),15),d=Im(ntP(e.f,nxH),15),i=Im(ntP(e.e,nx_),15),r=Im(ntP(e.j,nx_),15),c=Im(ntP(e.f,nx_),15),Uf(u=new wn,b),w.Jc(new rN),Uf(u,Ti(w,152)?Fh(Im(w,152)):Ti(w,131)?Im(w,131).a:Ti(w,54)?new d5(w):new vT(w)),Uf(u,d),Uf(a=new wn,i),Uf(a,Ti(r,152)?Fh(Im(r,152)):Ti(r,131)?Im(r,131).a:Ti(r,54)?new d5(r):new vT(r)),Uf(a,c),UU(e.f,nxH,u),UU(e.f,nx_,a),UU(e.f,nxq,e.f),UU(e.e,nxH,null),UU(e.e,nx_,null),UU(e.j,nxH,null),UU(e.j,nx_,null);break;case 1:Gz(f,e.e.a),I2(f,e.i.n),Gz(f,zI(e.j.a)),I2(f,e.a.n),Gz(f,e.f.a);break;default:Gz(f,e.e.a),Gz(f,zI(e.j.a)),Gz(f,e.f.a)}Lq(e.f.a),Gz(e.f.a,f),xE(e.f,e.e.c),o=Im(ntP(e.e,(ns8(),nKV)),74),h=Im(ntP(e.j,nKV),74),s=Im(ntP(e.f,nKV),74),(o||h||s)&&(Ay(l=new dd,s),Ay(l,h),Ay(l,o),UU(e.f,nKV,l)),xE(e.j,null),xj(e.j,null),xE(e.e,null),xj(e.e,null),xT(e.a,null),xT(e.i,null),e.g&&n(t,e.g)}(n,i));nee(e)}(this,Im(n,37),t)},AY(ndA,"BreakingPointRemover",1483),nrr(1484,1,nh1,rN),nTm.td=function(n){Im(n,128).k=!0},AY(ndA,"BreakingPointRemover/lambda$0$Type",1484),nrr(797,1,{},nrb),nTm.b=0,nTm.e=0,nTm.f=0,nTm.j=0,AY(ndA,"GraphStats",797),nrr(798,1,{},rx),nTm.Ce=function(n,t){return nTv.Math.max(gy(Ss(n)),gy(Ss(t)))},AY(ndA,"GraphStats/0methodref$max$Type",798),nrr(799,1,{},rD),nTm.Ce=function(n,t){return nTv.Math.max(gy(Ss(n)),gy(Ss(t)))},AY(ndA,"GraphStats/2methodref$max$Type",799),nrr(1660,1,{},rR),nTm.Ce=function(n,t){var e,i;return e=Ss(n),i=Ss(t),$x(e),e+($x(i),i)},AY(ndA,"GraphStats/lambda$1$Type",1660),nrr(1661,1,{},ly),nTm.Kb=function(n){return JW(this.a,Im(n,29))},AY(ndA,"GraphStats/lambda$2$Type",1661),nrr(1662,1,{},lk),nTm.Kb=function(n){return nce(this.a,Im(n,29))},AY(ndA,"GraphStats/lambda$6$Type",1662),nrr(800,1,{},rK),nTm.Vf=function(n,t){return Im(ntP(n,(ns8(),nF6)),15)||(LV(),LV(),nMv)},nTm.Wf=function(){return!1},AY(ndA,"ICutIndexCalculator/ManualCutIndexCalculator",800),nrr(802,1,{},rF),nTm.Vf=function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y;for(null==t.n&&Y7(t),y=t.n,null==t.d&&Y7(t),o=t.d,(m=_f(nYR,nlf,25,y.length,15,1))[0]=y[0],p=y[0],s=1;s<y.length;s++)m[s]=m[s-1]+y[s],p+=y[s];for(r=nt8(t)-1,a=Im(ntP(n,(ns8(),nF8)),19).a,i=nla,e=new wn,l=nTv.Math.max(0,r-a);l<=nTv.Math.min(t.f-1,r+a);l++){if(d=p/(l+1),g=0,h=1,c=new wn,v=nla,f=0,u=0,w=o[0],0==l)v=p,null==t.g&&(t.g=GJ(t,new rD)),u=gy(t.g);else{for(;h<t.f;)m[h-1]-g>=d&&(IE(c,Va(h)),v=nTv.Math.max(v,m[h-1]-f),u+=w,g+=m[h-1]-g,f=m[h-1],w=o[h]),w=nTv.Math.max(w,o[h]),++h;u+=w}(b=nTv.Math.min(1/v,1/t.b/u))>i&&(i=b,e=c)}return e},nTm.Wf=function(){return!1},AY(ndA,"MSDCutIndexHeuristic",802),nrr(1617,1,nw2,r_),nTm.pf=function(n,t){!function(n,t){var e,i,r,c;if(ntc(t,"Path-Like Graph Wrapping",1),0==n.b.c.length||(null==(r=new nrb(n)).i&&(r.i=GY(r,new rx)),e=gy(r.i)*r.f/(null==r.i&&(r.i=GY(r,new rx)),gy(r.i)),r.b>e)){nee(t);return}switch(Im(ntP(n,(ns8(),nF9)),337).g){case 2:c=new rK;break;case 0:c=new rI;break;default:c=new rF}if(i=c.Vf(n,r),!c.Wf())switch(Im(ntP(n,n_r),338).g){case 2:i=ne7(r,i);break;case 1:i=nto(r,i)}(function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;if(!e.dc()){for(a=0,h=0,l=Im((i=e.Kc()).Pb(),19).a;a<t.f;){if(a==l&&(h=0,l=i.Ob()?Im(i.Pb(),19).a:t.f+1),a!=h){for(b=Im(CA(n.b,a),29),f=Im(CA(n.b,h),29),s=new h1(Da(b.a));s.a<s.c.c.length;)if(ZF(o=Im(De(s),10),f.a.c.length,f),0==h)for(c=new h1(Da(VG(o)));c.a<c.c.c.length;)nuQ(r=Im(De(c),17),!0),UU(n,(nhu(),nN8),(TX(),!0)),no0(n,r,1)}++h,++a}for(u=new Rn(n.b,0);u.b<u.d.gc();)MK(u.b<u.d.gc()),0==Im(u.d.Xb(u.c=u.b++),29).a.c.length&&$I(u)}})(n,r,i),nee(t)}(Im(n,37),t)},AY(ndA,"SingleEdgeGraphWrapper",1617),nrr(227,22,{3:1,35:1,22:1,227:1},yv);var nP9=qE(nd$,"CenterEdgeLabelPlacementStrategy",227,nE2,function(){return neC(),Um(xg(nP9,1),nfh,227,0,[nLH,nLG,nLB,nLq,nLz,nL_])},function(n){return neC(),B5((H8(),nLU),n)});nrr(422,22,{3:1,35:1,22:1,422:1},ym);var nP7=qE(nd$,"ConstraintCalculationStrategy",422,nE2,function(){return _j(),Um(xg(nP7,1),nfh,422,0,[nLX,nLW])},function(n){return _j(),B5((Kd(),nLV),n)});nrr(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},yy),nTm.Kf=function(){return nio(this)},nTm.Xf=function(){return nio(this)};var nIn=qE(nd$,"CrossingMinimizationStrategy",314,nE2,function(){return q5(),Um(xg(nIn,1),nfh,314,0,[nLJ,nLQ,nLY])},function(n){return q5(),B5((FQ(),nLZ),n)});nrr(337,22,{3:1,35:1,22:1,337:1},yk);var nIt=qE(nd$,"CuttingStrategy",337,nE2,function(){return q_(),Um(xg(nIt,1),nfh,337,0,[nL1,nL2,nL0])},function(n){return q_(),B5((FJ(),nL3),n)});nrr(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},yj),nTm.Kf=function(){return nrm(this)},nTm.Xf=function(){return nrm(this)};var nIe=qE(nd$,"CycleBreakingStrategy",335,nE2,function(){return YU(),Um(xg(nIe,1),nfh,335,0,[nL5,nL4,nL8,nL9,nL6])},function(n){return YU(),B5((He(),nL7),n)});nrr(419,22,{3:1,35:1,22:1,419:1},yE);var nIi=qE(nd$,"DirectionCongruency",419,nE2,function(){return Ht(),Um(xg(nIi,1),nfh,419,0,[nNn,nNt])},function(n){return Ht(),B5((Kf(),nNe),n)});nrr(450,22,{3:1,35:1,22:1,450:1},yT);var nIr=qE(nd$,"EdgeConstraint",450,nE2,function(){return UK(),Um(xg(nIr,1),nfh,450,0,[nNr,nNi,nNc])},function(n){return UK(),B5((FY(),nNa),n)});nrr(276,22,{3:1,35:1,22:1,276:1},yM);var nIc=qE(nd$,"EdgeLabelSideSelection",276,nE2,function(){return nt0(),Um(xg(nIc,1),nfh,276,0,[nNo,nNu,nNh,nNs,nNl,nNf])},function(n){return nt0(),B5((qt(),nNb),n)});nrr(479,22,{3:1,35:1,22:1,479:1},yS);var nIa=qE(nd$,"EdgeStraighteningStrategy",479,nE2,function(){return Bo(),Um(xg(nIa,1),nfh,479,0,[nNd,nNw])},function(n){return Bo(),B5((Kl(),nNg),n)});nrr(274,22,{3:1,35:1,22:1,274:1},yP);var nIu=qE(nd$,"FixedAlignment",274,nE2,function(){return nnS(),Um(xg(nIu,1),nfh,274,0,[nNy,nNm,nNj,nNv,nNk,nNp])},function(n){return nnS(),B5((H7(),nNE),n)});nrr(275,22,{3:1,35:1,22:1,275:1},yI);var nIo=qE(nd$,"GraphCompactionStrategy",275,nE2,function(){return ntW(),Um(xg(nIo,1),nfh,275,0,[nNI,nNM,nNC,nNP,nNS,nNT])},function(n){return ntW(),B5((H9(),nNO),n)});nrr(256,22,{3:1,35:1,22:1,256:1},yC);var nIs=qE(nd$,"GraphProperties",256,nE2,function(){return ncJ(),Um(xg(nIs,1),nfh,256,0,[nN$,nNN,nNx,nND,nNR,nNK,nN_,nNA,nNL,nNF])},function(n){return ncJ(),B5((Ux(),nNB),n)});nrr(292,22,{3:1,35:1,22:1,292:1},yO);var nIh=qE(nd$,"GreedySwitchType",292,nE2,function(){return z0(),Um(xg(nIh,1),nfh,292,0,[nNq,nNG,nNH])},function(n){return z0(),B5((F0(),nNz),n)});nrr(303,22,{3:1,35:1,22:1,303:1},yA);var nIf=qE(nd$,"InLayerConstraint",303,nE2,function(){return BL(),Um(xg(nIf,1),nfh,303,0,[nNX,nNW,nNU])},function(n){return BL(),B5((F1(),nNV),n)});nrr(420,22,{3:1,35:1,22:1,420:1},y$);var nIl=qE(nd$,"InteractiveReferencePoint",420,nE2,function(){return Rd(),Um(xg(nIl,1),nfh,420,0,[nNQ,nNJ])},function(n){return Rd(),B5((Kg(),nNY),n)});nrr(163,22,{3:1,35:1,22:1,163:1},yR);var nIb=qE(nd$,"LayerConstraint",163,nE2,function(){return VJ(),Um(xg(nIb,1),nfh,163,0,[nxJ,nxX,nxW,nxV,nxQ])},function(n){return VJ(),B5((Hc(),nxY),n)});nrr(848,1,nbo,sT),nTm.Qe=function(n){var t,e;V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ndK),""),"Direction Congruency"),"Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."),nDT),(neT(),nzO)),nIi),VD((JH(),nzM))))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ndF),""),"Feedback Edges"),"Whether feedback edges should be highlighted by routing around the nodes."),(TX(),!1)),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nd_),""),"Interactive Reference Point"),"Determines which point of a node is considered by interactive layout phases."),nDX),nzO),nIl),VD(nzM)))),DW(n,nd_,ndW,nDV),DW(n,nd_,nd4,nDW),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ndB),""),"Merge Edges"),"Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."),!1),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ndH),""),"Merge Hierarchy-Crossing Edges"),"If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."),!0),nzI),nTt),VD(nzM)))),V4(n,new neg((t=g7(g9(pn(g4(g3(g8(g5(g6(new aN,ndq),""),"Allow Non-Flow Ports To Switch Sides"),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),!1),nzI),nTt),VD(nzS)),e=Um(xg(nTh,1),nhJ,2,6,["org.eclipse.elk.layered.northOrSouthPort"]),t.f=e,t))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ndG),""),"Port Sorting Strategy"),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),nRj),nzO),nIy),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ndz),""),"Thoroughness"),"How much effort should be spent to produce a nice layout."),Va(7)),nz$),nTa),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ndU),""),"Add Unnecessary Bendpoints"),"Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."),!1),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ndX),""),"Generate Position and Layer IDs"),"If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."),!1),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ndW),"cycleBreaking"),"Cycle Breaking Strategy"),"Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."),nDj),nzO),nIe),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ndV),ngX),"Node Layering Strategy"),"Strategy for node layering."),nRn),nzO),nIw),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ndQ),ngX),"Layer Constraint"),"Determines a constraint on the placement of the node regarding the layering."),nD1),nzO),nIb),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ndJ),ngX),"Layer Choice Constraint"),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),Va(-1)),nz$),nTa),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ndY),ngX),"Layer ID"),"Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),Va(-1)),nz$),nTa),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ndZ),ngW),"Upper Bound On Width [MinWidth Layerer]"),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),Va(4)),nz$),nTa),VD(nzM)))),DW(n,ndZ,ndV,nD3),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nd1),ngW),"Upper Layer Estimation Scaling Factor [MinWidth Layerer]"),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),Va(2)),nz$),nTa),VD(nzM)))),DW(n,nd1,ndV,nD5),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nd0),ngV),"Node Promotion Strategy"),"Reduces number of dummy nodes after layering phase (if possible)."),nD9),nzO),nIv),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nd2),ngV),"Max Node Promotion Iterations"),"Limits the number of iterations for node promotion."),Va(0)),nz$),nTa),VD(nzM)))),DW(n,nd2,nd0,null),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nd3),"layering.coffmanGraham"),"Layer Bound"),"The maximum number of nodes allowed per layer."),Va(nhM)),nz$),nTa),VD(nzM)))),DW(n,nd3,ndV,nDJ),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nd4),ngQ),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),nDy),nzO),nIn),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nd5),ngQ),"Force Node Model Order"),"The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."),!1),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nd6),ngQ),"Hierarchical Sweepiness"),"How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."),.1),nzC),nTr),VD(nzM)))),DW(n,nd6,ngJ,nDw),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nd8),ngQ),"Semi-Interactive Crossing Minimization"),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),!1),nzI),nTt),VD(nzM)))),DW(n,nd8,nd4,nDv),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nd9),ngQ),"Position Choice Constraint"),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),Va(-1)),nz$),nTa),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nd7),ngQ),"Position ID"),"Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),Va(-1)),nz$),nTa),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngn),ngY),"Greedy Switch Activation Threshold"),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),Va(40)),nz$),nTa),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngt),ngY),"Greedy Switch Crossing Minimization"),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),nDf),nzO),nIh),VD(nzM)))),DW(n,ngt,nd4,nDl),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nge),"crossingMinimization.greedySwitchHierarchical"),"Greedy Switch Crossing Minimization (hierarchical)"),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),nDu),nzO),nIh),VD(nzM)))),DW(n,nge,nd4,nDo),DW(n,nge,ngJ,nDs),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngi),ngZ),"Node Placement Strategy"),"Strategy for node placement."),nRy),nzO),nIp),VD(nzM)))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,ngr),ngZ),"Favor Straight Edges Over Balancing"),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),nzI),nTt),VD(nzM)))),DW(n,ngr,ngi,nRh),DW(n,ngr,ngi,nRf),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngc),ng1),"BK Edge Straightening"),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),nRr),nzO),nIa),VD(nzM)))),DW(n,ngc,ngi,nRc),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nga),ng1),"BK Fixed Alignment"),"Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."),nRu),nzO),nIu),VD(nzM)))),DW(n,nga,ngi,nRo),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngu),"nodePlacement.linearSegments"),"Linear Segments Deflection Dampening"),"Dampens the movement of nodes to keep the diagram from getting too large."),.3),nzC),nTr),VD(nzM)))),DW(n,ngu,ngi,nRb),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,ngo),"nodePlacement.networkSimplex"),"Node Flexibility"),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),nzO),nIg),VD(nzT)))),DW(n,ngo,ngi,nRv),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngs),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),nRg),nzO),nIg),VD(nzM)))),DW(n,ngs,ngi,nRp),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngh),ng0),"Self-Loop Distribution"),"Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."),nD$),nzO),nIj),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngf),ng0),"Self-Loop Ordering"),"Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."),nDN),nzO),nIE),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngl),"edgeRouting.splines"),"Spline Routing Mode"),"Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."),nDD),nzO),nIT),VD(nzM)))),DW(n,ngl,ng2,nDR),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngb),"edgeRouting.splines.sloppy"),"Sloppy Spline Layer Spacing Factor"),"Spacing factor for routing area between layers when using sloppy spline routing."),.2),nzC),nTr),VD(nzM)))),DW(n,ngb,ng2,nDF),DW(n,ngb,ngl,nD_),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngw),"edgeRouting.polyline"),"Sloped Edge Zone Width"),"Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."),2),nzC),nTr),VD(nzM)))),DW(n,ngw,ng2,nDO),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,ngd),ng3),"Spacing Base Value"),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngg),ng3),"Edge Node Between Layers Spacing"),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngp),ng3),"Edge Edge Between Layer Spacing"),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngv),ng3),"Node Node Between Layers Spacing"),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngm),ng4),"Direction Priority"),"Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."),Va(0)),nz$),nTa),VD(nzj)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngy),ng4),"Shortness Priority"),"Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."),Va(0)),nz$),nTa),VD(nzj)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngk),ng4),"Straightness Priority"),"Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."),Va(0)),nz$),nTa),VD(nzj)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngj),ng5),nbW),"Tries to further compact components (disconnected sub-graphs)."),!1),nzI),nTt),VD(nzM)))),DW(n,ngj,nwE,!0),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngE),ng6),"Post Compaction Strategy"),ng8),nx4),nzO),nIo),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngT),ng6),"Post Compaction Constraint Calculation"),ng8),nx2),nzO),nP7),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngM),ng9),"High Degree Node Treatment"),"Makes room around high degree nodes to place leafs and trees."),!1),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngS),ng9),"High Degree Node Threshold"),"Whether a node is considered to have a high degree."),Va(16)),nz$),nTa),VD(nzM)))),DW(n,ngS,ngM,!0),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngP),ng9),"High Degree Node Maximum Tree Height"),"Maximum height of a subtree connected to a high degree node to be moved to separate layers."),Va(5)),nz$),nTa),VD(nzM)))),DW(n,ngP,ngM,!0),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngI),ng7),"Graph Wrapping Strategy"),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),nR1),nzO),nIS),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngC),ng7),"Additional Wrapped Edges Spacing"),"To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."),10),nzC),nTr),VD(nzM)))),DW(n,ngC,ngI,nRL),DW(n,ngC,ngI,nRN),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngO),ng7),"Correction Factor for Wrapping"),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),nzC),nTr),VD(nzM)))),DW(n,ngO,ngI,nRD),DW(n,ngO,ngI,nRR),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngA),npn),"Cutting Strategy"),"The strategy by which the layer indexes are determined at which the layering crumbles into chunks."),nRG),nzO),nIt),VD(nzM)))),DW(n,ngA,ngI,nRz),DW(n,ngA,ngI,nRU),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,ng$),npn),"Manually Specified Cuts"),"Allows the user to specify her own cuts for a certain graph."),nzL),nEZ),VD(nzM)))),DW(n,ng$,ngA,nRF),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngL),"wrapping.cutting.msd"),"MSD Freedom"),"The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."),nRB),nz$),nTa),VD(nzM)))),DW(n,ngL,ngA,nRH),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngN),npt),"Validification Strategy"),"When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."),nR5),nzO),nIM),VD(nzM)))),DW(n,ngN,ngI,nR6),DW(n,ngN,ngI,nR8),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,ngx),npt),"Valid Indices for Wrapping"),null),nzL),nEZ),VD(nzM)))),DW(n,ngx,ngI,nR2),DW(n,ngx,ngI,nR3),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngD),npe),"Improve Cuts"),"For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."),!0),nzI),nTt),VD(nzM)))),DW(n,ngD,ngI,nRQ),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngR),npe),"Distance Penalty When Improving Cuts"),null),2),nzC),nTr),VD(nzM)))),DW(n,ngR,ngI,nRW),DW(n,ngR,ngD,!0),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngK),npe),"Improve Wrapped Edges"),"The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."),!0),nzI),nTt),VD(nzM)))),DW(n,ngK,ngI,nRY),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngF),npi),"Edge Label Side Selection"),"Method to decide on edge label sides."),nDI),nzO),nIc),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ng_),npi),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),nDS),nzO),nP9),C6(nzM,Um(xg(nCr,1),nfh,175,0,[nzE]))))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngB),npr),"Consider Model Order"),"Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."),nDi),nzO),nIm),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngH),npr),"No Model Order"),"Set on a node to not set a model order for this node even though it is a real node."),!1),nzI),nTt),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngq),npr),"Consider Model Order for Components"),"If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."),nx6),nzO),nPz),VD(nzM)))),DW(n,ngq,nwE,null),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngG),npr),"Long Edge Ordering Strategy"),"Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."),nDn),nzO),nId),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngz),npr),"Crossing Counter Node Order Influence"),"Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."),0),nzC),nTr),VD(nzM)))),DW(n,ngz,ngB,null),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngU),npr),"Crossing Counter Port Order Influence"),"Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."),0),nzC),nTr),VD(nzM)))),DW(n,ngU,ngB,null),nhb((new sP,n))},AY(nd$,"LayeredMetaDataProvider",848),nrr(986,1,nbo,sP),nTm.Qe=function(n){nhb(n)},AY(nd$,"LayeredOptions",986),nrr(987,1,{},rH),nTm.$e=function(){return new wV},nTm._e=function(n){},AY(nd$,"LayeredOptions/LayeredFactory",987),nrr(1372,1,{}),nTm.a=0,AY(npU,"ElkSpacings/AbstractSpacingsBuilder",1372),nrr(779,1372,{},Qs),AY(nd$,"LayeredSpacings/LayeredSpacingsBuilder",779),nrr(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},yL),nTm.Kf=function(){return nrX(this)},nTm.Xf=function(){return nrX(this)};var nIw=qE(nd$,"LayeringStrategy",313,nE2,function(){return ntt(),Um(xg(nIw,1),nfh,313,0,[n_l,n_h,n_o,n_s,n_b,n_f])},function(n){return ntt(),B5((qn(),n_w),n)});nrr(378,22,{3:1,35:1,22:1,378:1},yN);var nId=qE(nd$,"LongEdgeOrderingStrategy",378,nE2,function(){return Wf(),Um(xg(nId,1),nfh,378,0,[n_d,n_g,n_p])},function(n){return Wf(),B5((F2(),n_v),n)});nrr(197,22,{3:1,35:1,22:1,197:1},yx);var nIg=qE(nd$,"NodeFlexibility",197,nE2,function(){return Yp(),Um(xg(nIg,1),nfh,197,0,[n_k,n_j,n_y,n_m])},function(n){return Yp(),B5((Bt(),n_E),n)});nrr(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},yD),nTm.Kf=function(){return nrv(this)},nTm.Xf=function(){return nrv(this)};var nIp=qE(nd$,"NodePlacementStrategy",315,nE2,function(){return YL(),Um(xg(nIp,1),nfh,315,0,[n_I,n_M,n_S,n_T,n_P])},function(n){return YL(),B5((Hi(),n_C),n)});nrr(260,22,{3:1,35:1,22:1,260:1},yK);var nIv=qE(nd$,"NodePromotionStrategy",260,nE2,function(){return nco(),Um(xg(nIv,1),nfh,260,0,[n_D,n_A,n_N,n_$,n_L,n_O,n_x,n_R])},function(n){return nco(),B5((zv(),n_K),n)});nrr(339,22,{3:1,35:1,22:1,339:1},yF);var nIm=qE(nd$,"OrderingStrategy",339,nE2,function(){return U1(),Um(xg(nIm,1),nfh,339,0,[n__,n_F,n_B])},function(n){return U1(),B5((F4(),n_H),n)});nrr(421,22,{3:1,35:1,22:1,421:1},y_);var nIy=qE(nd$,"PortSortingStrategy",421,nE2,function(){return BN(),Um(xg(nIy,1),nfh,421,0,[n_q,n_G])},function(n){return BN(),B5((Kw(),n_z),n)});nrr(452,22,{3:1,35:1,22:1,452:1},yB);var nIk=qE(nd$,"PortType",452,nE2,function(){return qF(),Um(xg(nIk,1),nfh,452,0,[n_W,n_U,n_X])},function(n){return qF(),B5((F5(),n_V),n)});nrr(375,22,{3:1,35:1,22:1,375:1},yH);var nIj=qE(nd$,"SelfLoopDistributionStrategy",375,nE2,function(){return zp(),Um(xg(nIj,1),nfh,375,0,[n_Q,n_J,n_Y])},function(n){return zp(),B5((F3(),n_Z),n)});nrr(376,22,{3:1,35:1,22:1,376:1},yq);var nIE=qE(nd$,"SelfLoopOrderingStrategy",376,nE2,function(){return FA(),Um(xg(nIE,1),nfh,376,0,[n_0,n_1])},function(n){return FA(),B5((Kb(),n_2),n)});nrr(304,1,{304:1},no6),AY(nd$,"Spacings",304),nrr(336,22,{3:1,35:1,22:1,336:1},yG);var nIT=qE(nd$,"SplineRoutingMode",336,nE2,function(){return XJ(),Um(xg(nIT,1),nfh,336,0,[n_3,n_4,n_5])},function(n){return XJ(),B5((F8(),n_6),n)});nrr(338,22,{3:1,35:1,22:1,338:1},yz);var nIM=qE(nd$,"ValidifyStrategy",338,nE2,function(){return G7(),Um(xg(nIM,1),nfh,338,0,[n_7,n_8,n_9])},function(n){return G7(),B5((F9(),nBn),n)});nrr(377,22,{3:1,35:1,22:1,377:1},yU);var nIS=qE(nd$,"WrappingStrategy",377,nE2,function(){return UE(),Um(xg(nIS,1),nfh,377,0,[nBe,nBi,nBt])},function(n){return UE(),B5((F6(),nBr),n)});nrr(1383,1,npV,sI),nTm.Yf=function(n){return Im(n,37),nBc},nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a,u,o,s,h;for(ntc(e,"Depth-first cycle removal",1),o=(s=t.a).c.length,n.c=new wn,n.d=_f(nYN,nbf,25,o,16,1),n.a=_f(nYN,nbf,25,o,16,1),n.b=new wn,c=0,u=new h1(s);u.a<u.c.c.length;)(a=Im(De(u),10)).p=c,RT(VG(a))&&IE(n.c,a),++c;for(h=new h1(n.c);h.a<h.c.c.length;)neD(n,Im(De(h),10));for(r=0;r<o;r++)n.d[r]||(x4(r,s.c.length),neD(n,Im(s.c[r],10)));for(i=new h1(n.b);i.a<i.c.c.length;)nuQ(Im(De(i),17),!0),UU(t,(nhu(),nN8),(TX(),!0));n.c=null,n.d=null,n.a=null,n.b=null,nee(e)}(this,Im(n,37),t)},AY(npQ,"DepthFirstCycleBreaker",1383),nrr(782,1,npV,Ou),nTm.Yf=function(n){return Im(n,37),nBa},nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,I,C,O,A;for(ntc(e,"Greedy cycle removal",1),A=(v=t.a).c.length,n.a=_f(nYL,nfH,25,A,15,1),n.c=_f(nYL,nfH,25,A,15,1),n.b=_f(nYL,nfH,25,A,15,1),o=0,g=new h1(v);g.a<g.c.c.length;){for((w=Im(De(g),10)).p=o,E=new h1(w.j);E.a<E.c.c.length;){for(a=new h1((k=Im(De(E),11)).e);a.a<a.c.c.length;)(i=Im(De(a),17)).c.i!=w&&(S=Im(ntP(i,(ns8(),nF$)),19).a,n.a[o]+=S>0?S+1:1);for(c=new h1(k.g);c.a<c.c.c.length;)(i=Im(De(c),17)).d.i!=w&&(S=Im(ntP(i,(ns8(),nF$)),19).a,n.c[o]+=S>0?S+1:1)}0==n.c[o]?I2(n.e,w):0==n.a[o]&&I2(n.f,w),++o}for(b=-1,l=1,h=new wn,n.d=Im(ntP(t,(nhu(),nxN)),230);A>0;){for(;0!=n.e.b;)I=Im(IF(n.e),10),n.b[I.p]=b--,na6(n,I),--A;for(;0!=n.f.b;)C=Im(IF(n.f),10),n.b[C.p]=l++,na6(n,C),--A;if(A>0){for(f=nfp,p=new h1(v);p.a<p.c.c.length;)w=Im(De(p),10),0==n.b[w.p]&&(m=n.c[w.p]-n.a[w.p])>=f&&(m>f&&(h.c=_f(nEX,nhA,1,0,5,1),f=m),h.c[h.c.length]=w);s=n.Zf(h),n.b[s.p]=l++,na6(n,s),--A}}for(o=0,P=v.c.length+1;o<v.c.length;o++)n.b[o]<0&&(n.b[o]+=P);for(d=new h1(v);d.a<d.c.c.length;)for(j=0,T=(M=Ri((w=Im(De(d),10)).j)).length;j<T;++j)for(r=0,u=(y=DH((k=M[j]).g)).length;r<u;++r)O=(i=y[r]).d.i.p,n.b[w.p]>n.b[O]&&(nuQ(i,!0),UU(t,nN8,(TX(),!0)));n.a=null,n.c=null,n.b=null,Lq(n.f),Lq(n.e),nee(e)}(this,Im(n,37),t)},nTm.Zf=function(n){return Im(CA(n,Yk(this.d,n.c.length)),10)},AY(npQ,"GreedyCycleBreaker",782),nrr(1386,782,npV,k3),nTm.Zf=function(n){var t,e,i,r;for(r=null,t=nhM,i=new h1(n);i.a<i.c.c.length;)MH(e=Im(De(i),10),(nhu(),nxj))&&Im(ntP(e,nxj),19).a<t&&(t=Im(ntP(e,nxj),19).a,r=e);return r||Im(CA(n,Yk(this.d,n.c.length)),10)},AY(npQ,"GreedyModelOrderCycleBreaker",1386),nrr(1384,1,npV,sv),nTm.Yf=function(n){return Im(n,37),nBu},nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w;for(ntc(e,"Interactive cycle breaking",1),h=new wn,l=new h1(t.a);l.a<l.c.c.length;)for((f=Im(De(l),10)).p=1,b=nnM(f).a,s=QT(f,(qF(),n_X)).Kc();s.Ob();)for(c=new h1(Im(s.Pb(),11).g);c.a<c.c.c.length;)(w=(i=Im(De(c),17)).d.i)!=f&&nnM(w).a<b&&(h.c[h.c.length]=i);for(a=new h1(h);a.a<a.c.c.length;)nuQ(i=Im(De(a),17),!0);for(h.c=_f(nEX,nhA,1,0,5,1),o=new h1(t.a);o.a<o.c.c.length;)(u=Im(De(o),10)).p>0&&function n(t,e,i){var r,c,a,u;for(e.p=-1,u=QT(e,(qF(),n_X)).Kc();u.Ob();)for(c=new h1(Im(u.Pb(),11).g);c.a<c.c.c.length;)e!=(a=(r=Im(De(c),17)).d.i)&&(a.p<0?i.Fc(r):a.p>0&&n(t,a,i));e.p=0}(n,u,h);for(r=new h1(h);r.a<r.c.c.length;)nuQ(i=Im(De(r),17),!0);h.c=_f(nEX,nhA,1,0,5,1),nee(e)}(this,Im(n,37),t)},AY(npQ,"InteractiveCycleBreaker",1384),nrr(1385,1,npV,sm),nTm.Yf=function(n){return Im(n,37),nBo},nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;for(ntc(e,"Model order cycle breaking",1),n.a=0,n.b=0,f=new wn,s=t.a.c.length,o=new h1(t.a);o.a<o.c.c.length;)MH(u=Im(De(o),10),(nhu(),nxj))&&(s=nTv.Math.max(s,Im(ntP(u,nxj),19).a+1));for(b=new h1(t.a);b.a<b.c.c.length;)for(a=neR(n,l=Im(De(b),10),s),h=QT(l,(qF(),n_X)).Kc();h.Ob();)for(c=new h1(Im(h.Pb(),11).g);c.a<c.c.c.length;)neR(n,(i=Im(De(c),17)).d.i,s)<a&&(f.c[f.c.length]=i);for(r=new h1(f);r.a<r.c.c.length;)nuQ(i=Im(De(r),17),!0),UU(t,(nhu(),nN8),(TX(),!0));f.c=_f(nEX,nhA,1,0,5,1),nee(e)}(this,Im(n,37),t)},nTm.a=0,nTm.b=0,AY(npQ,"ModelOrderCycleBreaker",1385),nrr(1389,1,npV,mi),nTm.Yf=function(n){return Im(n,37),nBs},nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a,u,o,h,f,l,b,w,d,g,p,v,m,y,k,j;if(ntc(e,"Coffman-Graham Layering",1),0==t.a.c.length){nee(e);return}for(j=Im(ntP(t,(ns8(),nKQ)),19).a,o=0,a=0,b=new h1(t.a);b.a<b.c.c.length;)for((l=Im(De(b),10)).p=o++,c=new OM(TD(Vz(l).a.Kc(),new s));nrc(c);)(r=Im(K4(c),17)).p=a++;for(n.d=_f(nYN,nbf,25,o,16,1),n.a=_f(nYN,nbf,25,a,16,1),n.b=_f(nYL,nfH,25,o,15,1),n.e=_f(nYL,nfH,25,o,15,1),n.f=_f(nYL,nfH,25,o,15,1),qX(n.c),function(n,t){var e,i,r;for(r=new h1(t.a);r.a<r.c.c.length;)for(i=Im(De(r),10),gT(n.d),e=new OM(TD(Vz(i).a.Kc(),new s));nrc(e);)(function n(t,e,i){var r,c,a,u;if(!t.d[i.p]){for(r=new OM(TD(Vz(i).a.Kc(),new s));nrc(r);){for(a=new OM(TD(VG(u=Im(K4(r),17).d.i).a.Kc(),new s));nrc(a);)(c=Im(K4(a),17)).c.i==e&&(t.a[c.p]=!0);n(t,e,u)}t.d[i.p]=!0}})(n,i,Im(K4(e),17).d.i)}(n,t),d=new O0(new lj(n)),k=new h1(t.a);k.a<k.c.c.length;){for(c=new OM(TD(VG(m=Im(De(k),10)).a.Kc(),new s));nrc(c);)r=Im(K4(c),17),n.a[r.p]||++n.b[m.p];0==n.b[m.p]&&_w(ntp(d,m))}for(u=0;0!=d.b.c.length;)for(m=Im(BY(d),10),n.f[m.p]=u++,c=new OM(TD(Vz(m).a.Kc(),new s));nrc(c);)r=Im(K4(c),17),n.a[r.p]||(p=r.d.i,--n.b[p.p],niP(n.c,p,Va(n.f[m.p])),0==n.b[p.p]&&_w(ntp(d,p)));for(w=new O0(new lE(n)),y=new h1(t.a);y.a<y.c.c.length;){for(c=new OM(TD(Vz(m=Im(De(y),10)).a.Kc(),new s));nrc(c);)r=Im(K4(c),17),n.a[r.p]||++n.e[m.p];0==n.e[m.p]&&_w(ntp(w,m))}for(i=xJ(t,f=new wn);0!=w.b.c.length;)for(v=Im(BY(w),10),(i.a.c.length>=j||!function(n,t){var e;for(e=new OM(TD(Vz(n).a.Kc(),new s));nrc(e);)if(Im(K4(e),17).d.i.c==t)return!1;return!0}(v,i))&&(i=xJ(t,f)),xT(v,i),c=new OM(TD(VG(v).a.Kc(),new s));nrc(c);)r=Im(K4(c),17),n.a[r.p]||(g=r.c.i,--n.e[g.p],0==n.e[g.p]&&_w(ntp(w,g)));for(h=f.c.length-1;h>=0;--h)IE(t.b,(x4(h,f.c.length),Im(f.c[h],29)));t.a.c=_f(nEX,nhA,1,0,5,1),nee(e)}(this,Im(n,37),t)},AY(npJ,"CoffmanGrahamLayerer",1389),nrr(1390,1,nlX,lj),nTm.ue=function(n,t){return function(n,t,e){var i,r,c,a,u,o;for(i=Im(Fl(n.c,t),15),r=Im(Fl(n.c,e),15),c=i.Zc(i.gc()),a=r.Zc(r.gc());c.Sb()&&a.Sb();)if((u=Im(c.Ub(),19))!=(o=Im(a.Ub(),19)))return EG(u.a,o.a);return c.Ob()||a.Ob()?c.Ob()?1:-1:0}(this.a,Im(n,10),Im(t,10))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(npJ,"CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type",1390),nrr(1391,1,nlX,lE),nTm.ue=function(n,t){var e,i,r;return e=this.a,i=Im(n,10),r=Im(t,10),-EG(e.f[i.p],e.f[r.p])},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(npJ,"CoffmanGrahamLayerer/lambda$1$Type",1391),nrr(1392,1,npV,rq),nTm.Yf=function(n){return Im(n,37),Cg(Cg(Cg(new Rf,(ntI(),nAd),(nhs(),n$P)),nAg,n$D),nAp,n$x)},nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;for(ntc(e,"Interactive node layering",1),i=new wn,b=new h1(t.a);b.a<b.c.c.length;){for(o=(s=(f=Im(De(b),10)).n.a)+f.o.a,o=nTv.Math.max(s+1,o),p=new Rn(i,0),r=null;p.b<p.d.gc();){if(MK(p.b<p.d.gc()),(d=Im(p.d.Xb(p.c=p.b++),569)).c>=o){MK(p.b>0),p.a.Xb(p.c=--p.b);break}d.a>s&&(r?(Uf(r.b,d.b),r.a=nTv.Math.max(r.a,d.a),$I(p)):(IE(d.b,f),d.c=nTv.Math.min(d.c,s),d.a=nTv.Math.max(d.a,o),r=d))}r||((r=new w6).c=s,r.a=o,SH(p,r),IE(r.b,f))}for(u=t.b,h=0,g=new h1(i);g.a<g.c.c.length;)for(d=Im(De(g),569),(c=new $o(t)).p=h++,u.c[u.c.length]=c,w=new h1(d.b);w.a<w.c.c.length;)xT(f=Im(De(w),10),c),f.p=0;for(l=new h1(t.a);l.a<l.c.c.length;)0==(f=Im(De(l),10)).p&&function n(t,e,i){var r,c,a,u,o,s;for(e.p=1,c=e.c,s=QT(e,(qF(),n_X)).Kc();s.Ob();)for(r=new h1(Im(s.Pb(),11).g);r.a<r.c.c.length;)e!=(o=Im(De(r),17).d.i)&&o.c.p<=c.p&&((a=c.p+1)==i.b.c.length?((u=new $o(i)).p=a,IE(i.b,u),xT(o,u)):xT(o,u=Im(CA(i.b,a),29)),n(t,o,i))}(n,f,t);for(a=new Rn(u,0);a.b<a.d.gc();)0==(MK(a.b<a.d.gc()),Im(a.d.Xb(a.c=a.b++),29)).a.c.length&&$I(a);t.a.c=_f(nEX,nhA,1,0,5,1),nee(e)}(this,Im(n,37),t)},AY(npJ,"InteractiveLayerer",1392),nrr(569,1,{569:1},w6),nTm.a=0,nTm.c=0,AY(npJ,"InteractiveLayerer/LayerSpan",569),nrr(1388,1,npV,sp),nTm.Yf=function(n){return Im(n,37),nBh},nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a;for(ntc(e,"Longest path layering",1),n.a=t,a=n.a.a,n.b=_f(nYL,nfH,25,a.c.length,15,1),i=0,c=new h1(a);c.a<c.c.c.length;)Im(De(c),10).p=i,n.b[i]=-1,++i;for(r=new h1(a);r.a<r.c.c.length;)!function n(t,e){var i,r,c,a,u,o;if((r=t.b[e.p])>=0)return r;for(c=1,a=new h1(e.j);a.a<a.c.c.length;)for(i=new h1(Im(De(a),11).g);i.a<i.c.c.length;)e!=(o=Im(De(i),17).d.i)&&(u=n(t,o),c=nTv.Math.max(c,u+1));return function(n,t,e){var i,r;for(i=(r=n.a.b).c.length;i<e;i++)C4(r,0,new $o(n.a));xT(t,Im(CA(r,r.c.length-e),29)),n.b[t.p]=e}(t,e,c),c}(n,Im(De(r),10));a.c=_f(nEX,nhA,1,0,5,1),n.a=null,n.b=null,nee(e)}(this,Im(n,37),t)},AY(npJ,"LongestPathLayerer",1388),nrr(1395,1,npV,sE),nTm.Yf=function(n){return Im(n,37),Cg(Cg(Cg(new Rf,(ntI(),nAd),(nhs(),n$f)),nAg,n$D),nAp,n$x)},nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a,u,o,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,I,C,O,A;for(ntc(e,"MinWidth layering",1),w=t.b,T=t.a,A=Im(ntP(t,(ns8(),nK1)),19).a,u=Im(ntP(t,nK0),19).a,n.b=gy(Ss(ntP(t,nFB))),n.d=nlc,k=new h1(T);k.a<k.c.c.length;)(m=Im(De(k),10)).k==(ntY(),nAV)&&(P=m.o.b,n.d=nTv.Math.min(n.d,P));for(n.d=nTv.Math.max(1,n.d),M=T.c.length,n.c=_f(nYL,nfH,25,M,15,1),n.f=_f(nYL,nfH,25,M,15,1),n.e=_f(nYR,nlf,25,M,15,1),h=0,n.a=0,j=new h1(T);j.a<j.c.c.length;)(m=Im(De(j),10)).p=h++,n.c[m.p]=Wn(VG(m)),n.f[m.p]=Wn(Vz(m)),n.e[m.p]=m.o.b/n.d,n.a+=n.e[m.p];for(n.b/=n.d,n.a/=M,E=function(n){var t,e,i,r,c,a;for(a=Mj(n.c.length),r=new h1(n);r.a<r.c.c.length;){for(i=Im(De(r),10),c=new w_,e=new OM(TD(Vz(i).a.Kc(),new s));nrc(e);)(t=Im(K4(e),17)).c.i==t.d.i||Av(c,t.d.i);a.c[a.c.length]=c}return a}(T),E_(T,$Y(new lT(n))),g=nlc,d=nhM,a=null,O=A,C=A,c=u,r=u,A<0&&(O=Im(nBl.a.zd(),19).a,C=Im(nBl.b.zd(),19).a),u<0&&(c=Im(nBf.a.zd(),19).a,r=Im(nBf.b.zd(),19).a),I=O;I<=C;I++)for(i=c;i<=r;i++)v=gy(Ss((S=function(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(f=new wn,g=Kr(i),d=t*n.a,b=0,c=new w_,a=new w_,u=new wn,p=0,v=0,l=0,w=0,s=0,h=0;0!=g.a.gc();)(o=function(n,t,e){var i,r;for(r=n.a.ec().Kc();r.Ob();)if(i=Im(r.Pb(),10),Ur(e,Im(CA(t,i.p),14)))return i;return null}(g,r,a))&&(g.a.Bc(o),u.c[u.c.length]=o,c.a.zc(o,c),b=n.f[o.p],p+=n.e[o.p]-b*n.b,v+=n.c[o.p]*n.b,h+=b*n.b,w+=n.e[o.p]),(!o||0==g.a.gc()||p>=d&&n.e[o.p]>b*n.b||v>=e*d)&&(f.c[f.c.length]=u,u=new wn,Gz(a,c),c.a.$b(),s-=h,l=nTv.Math.max(l,s*n.b+w),s+=v,p=v,v=0,h=0,w=0);return new k_(l,f)}(n,I,i,T,E)).a)),p=(b=Im(S.b,15)).gc(),(v<g||v==g&&p<d)&&(g=v,d=p,a=b);for(l=a.Kc();l.Ob();){for(f=Im(l.Pb(),15),o=new $o(t),y=f.Kc();y.Ob();)xT(m=Im(y.Pb(),10),o);w.c[w.c.length]=o}ne_(w),T.c=_f(nEX,nhA,1,0,5,1),nee(e)}(this,Im(n,37),t)},nTm.a=0,nTm.b=0,nTm.d=0,AY(npJ,"MinWidthLayerer",1395),nrr(1396,1,nlX,lT),nTm.ue=function(n,t){var e,i,r,c;return e=Im(n,10),i=Im(t,10),(r=this.a.f[e.p])<(c=this.a.f[i.p])?-1:r==c?0:1},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(npJ,"MinWidthLayerer/MinOutgoingEdgesComparator",1396),nrr(1387,1,npV,sj),nTm.Yf=function(n){return Im(n,37),nBb},nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a,u,o,h,f,l,b,w,d,g,p,v,m;if(ntc(e,"Network simplex layering",1),n.b=t,p=4*Im(ntP(t,(ns8(),nF2)),19).a,(g=n.b.a).c.length<1){nee(e);return}for(c=function(n,t){var e,i,r,c,a;for(null==n.c||n.c.length<t.c.length?n.c=_f(nYN,nbf,25,t.c.length,16,1):gT(n.c),n.a=new wn,i=0,a=new h1(t);a.a<a.c.c.length;)(r=Im(De(a),10)).p=i++;for(e=new vK,c=new h1(t);c.a<c.c.c.length;)r=Im(De(c),10),n.c[r.p]||(function n(t,e){var i,r,c,a;for(t.c[e.p]=!0,IE(t.a,e),a=new h1(e.j);a.a<a.c.c.length;)for(i=new Fm((c=Im(De(a),11)).b);EB(i.a)||EB(i.b);)r=function(n,t){if(t.c==n)return t.d;if(t.d==n)return t.c;throw new gd("Input edge is not connected to the input port.").e}(c,Im(EB(i.a)?De(i.a):De(i.b),17)).i,t.c[r.p]||n(t,r)}(n,r),0==e.b||(MK(0!=e.b),Im(e.a.a.c,15)).gc()<n.a.c.length?jC(e,n.a):jO(e,n.a),n.a=new wn);return e}(n,g),d=null,r=Jz(c,0);r.b!=r.d.c;){for(i=Im(RP(r),15),u=p*NU(nTv.Math.sqrt(i.gc())),na5(((v=P8(a=function(n){var t,e,i,r,c,a,u,o;for(o=new wt,t=new wq,a=n.Kc();a.Ob();)r=Im(a.Pb(),10),u=Mt(vG(new wU,r),t),neQ(o.f,r,u);for(c=n.Kc();c.Ob();)for(i=new OM(TD(Vz(r=Im(c.Pb(),10)).a.Kc(),new s));nrc(i);)KR(e=Im(K4(i),17))||nck(vH(vB(v_(vq(new wz,nTv.Math.max(1,Im(ntP(e,(ns8(),nFL)),19).a)),1),Im($a(o,e.c.i),121)),Im($a(o,e.d.i),121)));return t}(i))).f=u,m=d,v.k=m,v.a=!0,v),zt(e,1)),l=n.b.b,w=new h1(a.a);w.a<w.c.c.length;){for(b=Im(De(w),121);l.c.length<=b.e;)C4(l,l.c.length,new $o(n.b));xT(Im(b.f,10),Im(CA(l,b.e),29))}if(c.b>1)for(d=_f(nYL,nfH,25,n.b.b.c.length,15,1),f=0,h=new h1(n.b.b);h.a<h.c.c.length;)o=Im(De(h),29),d[f++]=o.a.c.length}g.c=_f(nEX,nhA,1,0,5,1),n.a=null,n.b=null,n.c=null,nee(e)}(this,Im(n,37),t)},AY(npJ,"NetworkSimplexLayerer",1387),nrr(1393,1,npV,S0),nTm.Yf=function(n){return Im(n,37),Cg(Cg(Cg(new Rf,(ntI(),nAd),(nhs(),n$f)),nAg,n$D),nAp,n$x)},nTm.pf=function(n,t){!function(n,t,e){var i;if(ntc(e,"StretchWidth layering",1),0==t.a.c.length){nee(e);return}for(n.c=t,n.t=0,n.u=0,n.i=nlc,n.g=nla,n.d=gy(Ss(ntP(t,(ns8(),nFB)))),function(n){var t,e,i;for(i=n.c.a,n.p=(A1(i),new PB(i)),e=new h1(i);e.a<e.c.c.length;)(t=Im(De(e),10)).p=function(n){var t,e,i;for(t=RK(new OM(TD(Vz(n).a.Kc(),new s))),e=new OM(TD(VG(n).a.Kc(),new s));nrc(e);)i=RK(new OM(TD(Vz(Im(K4(e),17).c.i).a.Kc(),new s))),t=nTv.Math.max(t,i);return Va(t)}(t).a;LV(),E_(n.p,new rG)}(n),function(n){var t,e,i,r,c;for(i=0,n.q=new wn,t=new w_,c=new h1(n.p);c.a<c.c.c.length;){for((r=Im(De(c),10)).p=i,e=new OM(TD(Vz(r).a.Kc(),new s));nrc(e);)Av(t,Im(K4(e),17).d.i);t.a.Bc(r),IE(n.q,new CI(t)),t.a.$b(),++i}}(n),function(n){var t,e;for(n.e=_f(nYL,nfH,25,n.p.c.length,15,1),n.k=_f(nYL,nfH,25,n.p.c.length,15,1),e=new h1(n.p);e.a<e.c.c.length;)t=Im(De(e),10),n.e[t.p]=RK(new OM(TD(VG(t).a.Kc(),new s))),n.k[t.p]=RK(new OM(TD(Vz(t).a.Kc(),new s)))}(n),function(n){var t,e,i;for(e=new h1(n.p);e.a<e.c.c.length;)(t=Im(De(e),10)).k==(ntY(),nAV)&&(i=t.o.b,n.i=nTv.Math.min(n.i,i),n.g=nTv.Math.max(n.g,i))}(n),function(n){var t,e;for(n.j=_f(nYR,nlf,25,n.p.c.length,15,1),e=new h1(n.p);e.a<e.c.c.length;)t=Im(De(e),10),n.j[t.p]=t.o.b/n.i}(n),n.i=nTv.Math.max(1,n.i),n.g=nTv.Math.max(1,n.g),n.d=n.d/n.i,n.f=n.g/n.i,n.s=function(n){var t,e;for(t=0,e=new h1(n.c.a);e.a<e.c.c.length;)t+=RK(new OM(TD(Vz(Im(De(e),10)).a.Kc(),new s)));return t/n.c.a.c.length}(n),i=new $o(n.c),IE(n.c.b,i),n.r=Da(n.p),n.n=NG(n.k,n.k.length);0!=n.r.c.length;)n.o=function(n){var t,e;for(e=new h1(n.r);e.a<e.c.c.length;)if(t=Im(De(e),10),n.n[t.p]<=0)return t;return null}(n),!n.o||U4(n)&&0!=n.b.a.gc()?(function(n,t){var e,i,r;for(i=new h1(t.a);i.a<i.c.c.length;)for(e=new OM(TD(VG(Im(De(i),10)).a.Kc(),new s));nrc(e);)r=Im(K4(e),17).c.i.p,n.n[r]=n.n[r]-1}(n,i),i=new $o(n.c),IE(n.c.b,i),Gz(n.a,n.b),n.b.a.$b(),n.t=n.u,n.u=0):U4(n)?(n.c.b.c=_f(nEX,nhA,1,0,5,1),i=new $o(n.c),IE(n.c.b,i),n.t=0,n.u=0,n.b.a.$b(),n.a.a.$b(),++n.f,n.r=Da(n.p),n.n=NG(n.k,n.k.length)):(xT(n.o,i),Bh(n.r,n.o),Av(n.b,n.o),n.t=n.t-n.k[n.o.p]*n.d+n.j[n.o.p],n.u+=n.e[n.o.p]*n.d);t.a.c=_f(nEX,nhA,1,0,5,1),ne_(t.b),nee(e)}(this,Im(n,37),t)},nTm.d=0,nTm.f=0,nTm.g=0,nTm.i=0,nTm.s=0,nTm.t=0,nTm.u=0,AY(npJ,"StretchWidthLayerer",1393),nrr(1394,1,nlX,rG),nTm.ue=function(n,t){var e,i;return e=Im(n,10),i=Im(t,10),e.p<i.p?1:e.p>i.p?-1:0},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(npJ,"StretchWidthLayerer/1",1394),nrr(402,1,npY),nTm.Nf=function(n,t,e,i,r,c){},nTm._f=function(n,t,e){return nun(this,n,t,e)},nTm.Mf=function(){this.g=_f(nYK,npZ,25,this.d,15,1),this.f=_f(nYK,npZ,25,this.d,15,1)},nTm.Of=function(n,t){this.e[n]=_f(nYL,nfH,25,t[n].length,15,1)},nTm.Pf=function(n,t,e){e[n][t].p=t,this.e[n][t]=t},nTm.Qf=function(n,t,e,i){Im(CA(i[n][t].j,e),11).p=this.d++},nTm.b=0,nTm.c=0,nTm.d=0,AY(np1,"AbstractBarycenterPortDistributor",402),nrr(1633,1,nlX,lM),nTm.ue=function(n,t){var e,i,r,c,a,u,o;return e=this.a,i=Im(n,11),r=Im(t,11),(u=i.j)!=(o=r.j)?u.g-o.g:(c=e.f[i.p],a=e.f[r.p],0==c&&0==a?0:0==c?-1:0==a?1:Vv(c,a))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(np1,"AbstractBarycenterPortDistributor/lambda$0$Type",1633),nrr(817,1,ndS,Rw),nTm.Nf=function(n,t,e,i,r,c){},nTm.Pf=function(n,t,e){},nTm.Qf=function(n,t,e,i){},nTm.Lf=function(){return!1},nTm.Mf=function(){this.c=this.e.a,this.g=this.f.g},nTm.Of=function(n,t){t[n][0].c.p=n},nTm.Rf=function(){return!1},nTm.ag=function(n,t,e,i){e?nns(this,n):(nnj(this,n,i),nsb(this,n,t)),n.c.length>1&&(gm(So(ntP($L((x4(0,n.c.length),Im(n.c[0],10))),(ns8(),nKl))))?nrK(n,this.d,Im(this,660)):(LV(),E_(n,this.d)),z4(this.e,n))},nTm.Sf=function(n,t,e,i){var r,c,a,u,o,s,h;for(t!=CF(e,n.length)&&(c=n[t-(e?1:-1)],FK(this.f,c,e?(qF(),n_X):(qF(),n_U))),r=n[t][0],h=!i||r.k==(ntY(),nAU),s=Fs(n[t]),this.ag(s,h,!1,e),a=0,o=new h1(s);o.a<o.c.c.length;)u=Im(De(o),10),n[t][a++]=u;return!1},nTm.Tf=function(n,t){var e,i,r,c,a;for(a=CF(t,n.length),c=Fs(n[a]),this.ag(c,!1,!0,t),e=0,r=new h1(c);r.a<r.c.c.length;)i=Im(De(r),10),n[a][e++]=i;return!1},AY(np1,"BarycenterHeuristic",817),nrr(658,1,{658:1},lP),nTm.Ib=function(){return"BarycenterState [node="+this.c+", summedWeight="+this.d+", degree="+this.b+", barycenter="+this.a+", visited="+this.e+"]"},nTm.b=0,nTm.d=0,nTm.e=!1;var nIP=AY(np1,"BarycenterHeuristic/BarycenterState",658);nrr(1802,1,nlX,lS),nTm.ue=function(n,t){var e,i,r,c,a;return e=this.a,i=Im(n,10),r=Im(t,10),(c=e.c[i.c.p][i.p],a=e.c[r.c.p][r.p],null!=c.a&&null!=a.a)?O_(c.a,a.a):null!=c.a?-1:null!=a.a?1:0},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(np1,"BarycenterHeuristic/lambda$0$Type",1802),nrr(816,1,ndS,nn0),nTm.Mf=function(){},nTm.Nf=function(n,t,e,i,r,c){},nTm.Qf=function(n,t,e,i){},nTm.Of=function(n,t){this.a[n]=_f(nIP,{3:1,4:1,5:1,2018:1},658,t[n].length,0,1),this.b[n]=_f(nII,{3:1,4:1,5:1,2019:1},233,t[n].length,0,1)},nTm.Pf=function(n,t,e){JI(this,e[n][t],!0)},nTm.c=!1,AY(np1,"ForsterConstraintResolver",816),nrr(233,1,{233:1},NS,no5),nTm.Ib=function(){var n,t,e;for(t=new gX,t.a+="[",n=0;n<this.d.length;n++)jP(t,J6(this.d[n])),null!=Tu(this.g,this.d[0]).a&&jP(jP((t.a+="<",t),""+($x(e=Tu(this.g,this.d[0]).a),e)),">"),n<this.d.length-1&&(t.a+=nhC);return(t.a+="]",t).a},nTm.a=0,nTm.c=0,nTm.f=0;var nII=AY(np1,"ForsterConstraintResolver/ConstraintGroup",233);nrr(1797,1,nh1,lC),nTm.td=function(n){JI(this.a,Im(n,10),!1)},AY(np1,"ForsterConstraintResolver/lambda$0$Type",1797),nrr(214,1,{214:1,225:1},nse),nTm.Nf=function(n,t,e,i,r,c){},nTm.Of=function(n,t){},nTm.Mf=function(){this.r=_f(nYL,nfH,25,this.n,15,1)},nTm.Pf=function(n,t,e){var i;(i=e[n][t].e)&&IE(this.b,i)},nTm.Qf=function(n,t,e,i){++this.n},nTm.Ib=function(){return function n(t,e){var i,r,c,a,u;if(null==t)return nhN;if(null!=e.a.zc(t,e))return"[...]";for(c=0,i=new zV(nhC,"[","]"),a=t.length;c<a;++c)null!=(r=t[c])&&(4&Xp(r).i)!=0?Array.isArray(r)&&!((u=BJ(r))>=14&&u<=16)?e.a._b(r)?(i.a?jP(i.a,i.b):i.a=new TV(i.d),jM(i.a,"[...]")):Fd(i,n(HJ(r),new CI(e))):Ti(r,177)?Fd(i,function(n){var t,e,i,r;if(null==n)return nhN;for(e=0,r=new zV(nhC,"[","]"),i=n.length;e<i;++e)t=n[e],r.a?jP(r.a,r.b):r.a=new TV(r.d),jM(r.a,""+t);return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}(Im(r,177))):Ti(r,190)?Fd(i,function(n){var t,e,i;if(null==n)return nhN;for(t=0,i=new zV(nhC,"[","]"),e=n.length;t<e;++t)Fd(i,""+n[t]);return i.a?0==i.e.length?i.a.a:i.a.a+""+i.e:i.c}(Im(r,190))):Ti(r,195)?Fd(i,function(n){var t,e,i;if(null==n)return nhN;for(t=0,i=new zV(nhC,"[","]"),e=n.length;t<e;++t)Fd(i,String.fromCharCode(n[t]));return i.a?0==i.e.length?i.a.a:i.a.a+""+i.e:i.c}(Im(r,195))):Ti(r,2012)?Fd(i,function(n){var t,e,i;if(null==n)return nhN;for(t=0,i=new zV(nhC,"[","]"),e=n.length;t<e;++t)Fd(i,""+n[t]);return i.a?0==i.e.length?i.a.a:i.a.a+""+i.e:i.c}(Im(r,2012))):Ti(r,48)?Fd(i,function(n){var t,e,i,r;if(null==n)return nhN;for(e=0,r=new zV(nhC,"[","]"),i=n.length;e<i;++e)t=n[e],r.a?jP(r.a,r.b):r.a=new TV(r.d),jM(r.a,""+t);return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}(Im(r,48))):Ti(r,364)?Fd(i,function(n){var t,e,i,r;if(null==n)return nhN;for(e=0,r=new zV(nhC,"[","]"),i=n.length;e<i;++e)t=n[e],r.a?jP(r.a,r.b):r.a=new TV(r.d),jM(r.a,""+Ox(t));return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}(Im(r,364))):Ti(r,832)?Fd(i,function(n){var t,e,i,r;if(null==n)return nhN;for(e=0,r=new zV(nhC,"[","]"),i=n.length;e<i;++e)t=n[e],r.a?jP(r.a,r.b):r.a=new TV(r.d),jM(r.a,""+t);return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}(Im(r,832))):Ti(r,104)&&Fd(i,function(n){var t,e,i,r;if(null==n)return nhN;for(e=0,r=new zV(nhC,"[","]"),i=n.length;e<i;++e)t=n[e],r.a?jP(r.a,r.b):r.a=new TV(r.d),jM(r.a,""+t);return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}(Im(r,104))):Fd(i,null==r?nhN:V7(r));return i.a?0==i.e.length?i.a.a:i.a.a+""+i.e:i.c}(this.e,new w_)},nTm.g=!1,nTm.i=!1,nTm.n=0,nTm.s=!1,AY(np1,"GraphInfoHolder",214),nrr(1832,1,ndS,rB),nTm.Nf=function(n,t,e,i,r,c){},nTm.Of=function(n,t){},nTm.Qf=function(n,t,e,i){},nTm._f=function(n,t,e){return e&&t>0?xs(this.a,n[t-1],n[t]):!e&&t<n.length-1?xs(this.a,n[t],n[t+1]):GS(this.a,n[t],e?(nsR(),nWJ):(nsR(),nWA)),function(n,t,e,i){var r,c,a,u,o,s,h,f,l;for(f=i?(nsR(),nWJ):(nsR(),nWA),r=!1,o=t[e],s=0,h=o.length;s<h;++s)PT(Im(ntP(u=o[s],(ns8(),nFE)),98))||(a=u.e,(l=!V_(u,f).dc()&&!!a)&&(c=nnY(a),n.b=new nn1(c,i?0:c.length-1)),r|=function(n,t,e,i){var r,c,a,u,o;u=V_(t,e),(e==(nsR(),nWV)||e==nWJ)&&(u=Ti(u,152)?Fh(Im(u,152)):Ti(u,131)?Im(u,131).a:Ti(u,54)?new d5(u):new vT(u)),a=!1;do for(c=0,r=!1;c<u.gc()-1;c++)(function(n,t,e,i){var r,c,a,u,o;return u=Im((a=ZL(n.a,t,e)).a,19).a,c=Im(a.b,19).a,i&&(o=Im(ntP(t,(nhu(),nxA)),10),r=Im(ntP(e,nxA),10),o&&r&&(RX(n.b,o,r),u+=n.b.i,c+=n.b.e)),u>c})(n,Im(u.Xb(c),11),Im(u.Xb(c+1),11),i)&&(a=!0,Dw(n.a,Im(u.Xb(c),11),Im(u.Xb(c+1),11)),o=Im(u.Xb(c+1),11),u._c(c+1,Im(u.Xb(c),11)),u._c(c,o),r=!0);while(r)return a}(n,u,f,l));return r}(this,n,t,e)},nTm.Mf=function(){this.d=_f(nYL,nfH,25,this.c,15,1),this.a=new PD(this.d)},nTm.Pf=function(n,t,e){var i;i=e[n][t],this.c+=i.j.c.length},nTm.c=0,AY(np1,"GreedyPortDistributor",1832),nrr(1401,1,npV,sC),nTm.Yf=function(n){var t,e;return t=Im(n,37),e=Eo(nBw),Im(ntP(t,(nhu(),nxu)),21).Hc((ncJ(),nNR))&&Cg(e,(ntI(),nAp),(nhs(),n$X)),e},nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(ntc(t,"Interactive crossing minimization",1),a=0,c=new h1(n.b);c.a<c.c.c.length;)(i=Im(De(c),29)).p=a++;for(d=new pe((l=nnY(n)).length),noT(new gE(Um(xg(nP3,1),nhA,225,0,[d])),l),w=0,a=0,r=new h1(n.b);r.a<r.c.c.length;){for(i=Im(De(r),29),e=0,f=0,h=new h1(i.a);h.a<h.c.c.length;)for((o=Im(De(h),10)).n.a>0&&(e+=o.n.a+o.o.a/2,++f),b=new h1(o.j);b.a<b.c.c.length;)Im(De(b),11).p=w++;for(f>0&&(e/=f),g=_f(nYR,nlf,25,i.a.c.length,15,1),u=0,s=new h1(i.a);s.a<s.c.c.length;)(o=Im(De(s),10)).p=u++,g[o.p]=function(n,t){var e,i,r,c,a,u,o,s,h,f,l;switch(n.k.g){case 1:if(i=Im(ntP(n,(nhu(),nxE)),17),(e=Im(ntP(i,nxT),74))?gm(So(ntP(i,nxD)))&&(e=Xw(e)):e=new dd,s=Im(ntP(n,nxv),11)){if(t<=(h=Xt(Um(xg(nCa,1),nhJ,8,0,[s.i.n,s.n,s.a]))).a)return h.b;KL(e,h,e.a,e.a.a)}if(f=Im(ntP(n,nxm),11)){if((l=Xt(Um(xg(nCa,1),nhJ,8,0,[f.i.n,f.n,f.a]))).a<=t)return l.b;KL(e,l,e.c.b,e.c)}if(e.b>=2){for(a=Im(RP(o=Jz(e,0)),8),u=Im(RP(o),8);u.a<t&&o.b!=o.d.c;)a=u,u=Im(RP(o),8);return a.b+(t-a.a)/(u.a-a.a)*(u.b-a.b)}break;case 3:switch(r=(c=Im(ntP(Im(CA(n.j,0),11),(nhu(),nxE)),11)).i,c.j.g){case 1:return r.n.b;case 3:return r.n.b+r.o.b}}return nnM(n).b}(o,e),o.k==(ntY(),nAW)&&UU(o,(nhu(),nxM),g[o.p]);LV(),E_(i.a,new lO(g)),nun(d,l,a,!0),++a}nee(t)}(Im(n,37),t)},AY(np1,"InteractiveCrossingMinimizer",1401),nrr(1402,1,nlX,lO),nTm.ue=function(n,t){return function(n,t,e){var i,r,c;if(0==(i=Vv(n.a[t.p],n.a[e.p]))){if(r=Im(ntP(t,(nhu(),nxb)),15),c=Im(ntP(e,nxb),15),r.Hc(e))return -1;if(c.Hc(t))return 1}return i}(this,Im(n,10),Im(t,10))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(np1,"InteractiveCrossingMinimizer/1",1402),nrr(507,1,{507:1,123:1,51:1},gh),nTm.Yf=function(n){var t;return Im(n,37),Cg(t=Eo(nBd),(ntI(),nAp),(nhs(),n$X)),t},nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a,u,o;if(ntc(e,"Minimize Crossings "+n.a,1),i=0==t.b.c.length||!pN(Lb(new CL(null,new x6(t.b,16)),new fe(new rz))).sd((vQ(),nM5)),o=1==t.b.c.length&&1==Im(CA(t.b,0),29).a.c.length,c=jf(ntP(t,(ns8(),nK_)))===jf((WL(),nX2)),i||o&&!c){nee(e);return}r=function(n,t){var e,i,r,c,a,u;for(n.b=new wn,n.d=Im(ntP(t,(nhu(),nxN)),230),n.e=VK(OR(zx(nr_(u=n.d,32)),32),zx(nr_(u,32))),c=new vK,r=Fs(Um(xg(nPX,1),nw1,37,0,[t])),a=0;a<r.c.length;)x4(a,r.c.length),(i=Im(r.c[a],37)).p=a++,Uf(r,(e=new nse(i,n.a,n.b)).b),IE(n.b,e),e.s&&AK(Jz(c,0),e);return n.c=new w_,c}(n,t),a=(u=Im(J7(r,0),214)).c.Rf()?u.c.Lf()?new l$(n):new lL(n):new lA(n),function(n,t){var e,i;for(i=Jz(n,0);i.b!=i.d.c;)(e=Im(RP(i),214)).e.length>0&&(t.td(e),e.i&&function(n){var t;n.g&&(ncR((t=n.c.Rf()?n.f:n.a).a,n.o,!0),ncR(t.a,n.o,!1),UU(n.o,(ns8(),nFE),(nn2(),nWp)))}(e))}(r,a),function(n){var t,e,i;for(i=new h1(n.b);i.a<i.c.c.length;)(t=(e=Im(De(i),214)).c.Rf()?e.f:e.a)&&function(n,t){var e,i,r,c,a,u,o,s,h,f,l;for(r=0,h=new wn,l=new w_,a=t.b;r<a.c.length;r++){for(c=0,s=(x4(r,a.c.length),Im(a.c[r],29)).a,h.c=_f(nEX,nhA,1,0,5,1);c<s.c.length;c++)(u=n.a[r][c]).p=c,u.k==(ntY(),nAQ)&&(h.c[h.c.length]=u),KN(Im(CA(t.b,r),29).a,c,u),u.j.c=_f(nEX,nhA,1,0,5,1),Uf(u.j,Im(Im(CA(n.b,r),15).Xb(c),14)),PT(Im(ntP(u,(ns8(),nFE)),98))||UU(u,nFE,(nn2(),nWp));for(i=new h1(h);i.a<i.c.c.length;)f=function(n){var t,e,i,r,c,a,u;for(r=Im(ntP(n,(nhu(),nxl)),10),x4(0,(i=n.j).c.length),e=Im(i.c[0],11),a=new h1(r.j);a.a<a.c.c.length;)if(jf(c=Im(De(a),11))===jf(ntP(e,nxE))){c.j==(nsR(),nW$)&&n.p>r.p?(ne9(c,nWV),c.d&&(u=c.o.b,t=c.a.b,c.a.b=u-t)):c.j==nWV&&r.p>n.p&&(ne9(c,nW$),c.d&&(u=c.o.b,t=c.a.b,c.a.b=-(u-t)));break}return r}(e=Im(De(i),10)),l.a.zc(f,l),l.a.zc(e,l)}for(o=l.a.ec().Kc();o.Ob();)u=Im(o.Pb(),10),LV(),E_(u.j,(XQ(),nLi)),u.i=!0,nii(u)}(t,e.j)}(n),nee(e)}(this,Im(n,37),t)},nTm.e=0,AY(np1,"LayerSweepCrossingMinimizer",507),nrr(1398,1,nh1,lA),nTm.td=function(n){!function(n,t){var e,i,r,c,a;if(Tc(n.d,CZ(Di(OK(a=n.e,24),nlA)),CZ(Di(a,nlA))),n.c.a.$b(),0!=gy(Ss(ntP(t.j,(ns8(),nKa))))||0!=gy(Ss(ntP(t.j,nKa))))for(e=nwt,jf(ntP(t.j,nKh))!==jf((U1(),n__))&&UU(t.j,(nhu(),nxa),(TX(),!0)),c=Im(ntP(t.j,nF2),19).a,r=0;r<c&&(!((i=function(n,t){var e,i,r;i=0!=nr_(n.d,1),(gm(So(ntP(t.j,(nhu(),nxa))))||gm(So(ntP(t.j,nxR))))&&jf(ntP(t.j,(ns8(),nKh)))!==jf((U1(),n__))?i=gm(So(ntP(t.j,nxa))):t.c.Tf(t.e,i),ncv(n,t,i,!0),gm(So(ntP(t.j,nxR)))&&UU(t.j,nxR,(TX(),!1)),gm(So(ntP(t.j,nxa)))&&(UU(t.j,nxa,(TX(),!1)),UU(t.j,nxR,!0)),e=naD(n,t);do{if(GR(n),0==e)return 0;i=!i,r=e,ncv(n,t,i,!1),e=naD(n,t)}while(r>e)return r}(n,t))<e)||(e=i,GK(n),0!=e));r++);else for(e=nhM,jf(ntP(t.j,nKh))!==jf((U1(),n__))&&UU(t.j,(nhu(),nxa),(TX(),!0)),c=Im(ntP(t.j,nF2),19).a,r=0;r<c&&(!((i=nuC(n,t))<e)||(e=i,GK(n),0!=e));r++);}(this.a,Im(n,214))},AY(np1,"LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type",1398),nrr(1399,1,nh1,l$),nTm.td=function(n){!function(n,t){var e,i;for(i=0!=nr_(n.d,1),e=!0;e;)e=!1,e=t.c.Tf(t.e,i)|ncv(n,t,i,!1),i=!i;GR(n)}(this.a,Im(n,214))},AY(np1,"LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type",1399),nrr(1400,1,nh1,lL),nTm.td=function(n){nuC(this.a,Im(n,214))},AY(np1,"LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type",1400),nrr(454,22,{3:1,35:1,22:1,454:1},yX);var nIC=qE(np1,"LayerSweepCrossingMinimizer/CrossMinType",454,nE2,function(){return qB(),Um(xg(nIC,1),nfh,454,0,[nBg,nBp,nBv])},function(n){return qB(),B5((F7(),nBm),n)});nrr(1397,1,nfw,rz),nTm.Mb=function(n){return zw(),0==Im(n,29).a.c.length},AY(np1,"LayerSweepCrossingMinimizer/lambda$0$Type",1397),nrr(1799,1,ndS,xo),nTm.Mf=function(){},nTm.Nf=function(n,t,e,i,r,c){},nTm.Qf=function(n,t,e,i){},nTm.Of=function(n,t){t[n][0].c.p=n,this.b[n]=_f(nIO,{3:1,4:1,5:1,1944:1},659,t[n].length,0,1)},nTm.Pf=function(n,t,e){e[n][t].p=t,$t(this.b[n],t,new rU)},AY(np1,"LayerSweepTypeDecider",1799),nrr(659,1,{659:1},rU),nTm.Ib=function(){return"NodeInfo [connectedEdges="+this.a+", hierarchicalInfluence="+this.b+", randomInfluence="+this.c+"]"},nTm.a=0,nTm.b=0,nTm.c=0;var nIO=AY(np1,"LayerSweepTypeDecider/NodeInfo",659);nrr(1800,1,nbt,rX),nTm.Lb=function(n){return Mh(new Fm(Im(n,11).b))},nTm.Fb=function(n){return this===n},nTm.Mb=function(n){return Mh(new Fm(Im(n,11).b))},AY(np1,"LayerSweepTypeDecider/lambda$0$Type",1800),nrr(1801,1,nbt,rW),nTm.Lb=function(n){return Mh(new Fm(Im(n,11).b))},nTm.Fb=function(n){return this===n},nTm.Mb=function(n){return Mh(new Fm(Im(n,11).b))},AY(np1,"LayerSweepTypeDecider/lambda$1$Type",1801),nrr(1833,402,npY,pt),nTm.$f=function(n,t,e){var i,r,c,a,u,o,s,h,f;switch(s=this.g,e.g){case 1:for(i=0,r=0,o=new h1(n.j);o.a<o.c.c.length;)0!=(a=Im(De(o),11)).e.c.length&&(++i,a.j==(nsR(),nW$)&&++r);for(c=t+r,f=t+i,u=QT(n,(qF(),n_U)).Kc();u.Ob();)(a=Im(u.Pb(),11)).j==(nsR(),nW$)?(s[a.p]=c,--c):(s[a.p]=f,--f);return i;case 2:for(h=0,u=QT(n,(qF(),n_X)).Kc();u.Ob();)a=Im(u.Pb(),11),++h,s[a.p]=t+h;return h;default:throw(new wT).e}},AY(np1,"LayerTotalPortDistributor",1833),nrr(660,817,{660:1,225:1},GE),nTm.ag=function(n,t,e,i){e?nns(this,n):(nnj(this,n,i),nsb(this,n,t)),n.c.length>1&&(gm(So(ntP($L((x4(0,n.c.length),Im(n.c[0],10))),(ns8(),nKl))))?nrK(n,this.d,this):(LV(),E_(n,this.d)),gm(So(ntP($L((x4(0,n.c.length),Im(n.c[0],10))),nKl)))||z4(this.e,n))},AY(np1,"ModelOrderBarycenterHeuristic",660),nrr(1803,1,nlX,lN),nTm.ue=function(n,t){var e,i,r,c,a,u,o,s;return 0!=(c=function(n,t,e){if(Au(n.a,t)){if(v$(Im($a(n.a,t),53),e))return 1}else $J(n.a,t,new w_);if(Au(n.a,e)){if(v$(Im($a(n.a,e),53),t))return -1}else $J(n.a,e,new w_);if(Au(n.b,t)){if(v$(Im($a(n.b,t),53),e))return -1}else $J(n.b,t,new w_);if(Au(n.b,e)){if(v$(Im($a(n.b,e),53),t))return 1}else $J(n.b,e,new w_);return 0}(e=this.a,i=Im(n,10),r=Im(t,10)))?c:MH(i,(nhu(),nxj))&&MH(r,nxj)?((a=EG(Im(ntP(i,nxj),19).a,Im(ntP(r,nxj),19).a))<0?na_(e,i,r):a>0&&na_(e,r,i),a):(u=e.c[i.c.p][i.p],o=e.c[r.c.p][r.p],null!=u.a&&null!=o.a)?((s=O_(u.a,o.a))<0?na_(e,i,r):s>0&&na_(e,r,i),s):null!=u.a?(na_(e,i,r),-1):null!=o.a?(na_(e,r,i),1):0},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(np1,"ModelOrderBarycenterHeuristic/lambda$0$Type",1803),nrr(1403,1,npV,sD),nTm.Yf=function(n){var t;return Im(n,37),Cg(t=Eo(nBy),(ntI(),nAp),(nhs(),n$X)),t},nTm.pf=function(n,t){ntc((Im(n,37),t),"No crossing minimization",1),nee(t)},AY(np1,"NoCrossingMinimizer",1403),nrr(796,402,npY,pe),nTm.$f=function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;switch(f=this.g,e.g){case 1:for(r=0,c=0,h=new h1(n.j);h.a<h.c.c.length;)0!=(o=Im(De(h),11)).e.c.length&&(++r,o.j==(nsR(),nW$)&&++c);for(a=t+c*(i=1/(r+1)),b=t+1-i,s=QT(n,(qF(),n_U)).Kc();s.Ob();)(o=Im(s.Pb(),11)).j==(nsR(),nW$)?(f[o.p]=a,a-=i):(f[o.p]=b,b-=i);break;case 2:for(u=0,h=new h1(n.j);h.a<h.c.c.length;)0==(o=Im(De(h),11)).g.c.length||++u;for(l=t+(i=1/(u+1)),s=QT(n,(qF(),n_X)).Kc();s.Ob();)f[(o=Im(s.Pb(),11)).p]=l,l+=i;break;default:throw new gd("Port type is undefined").e}return 1},AY(np1,"NodeRelativePortDistributor",796),nrr(807,1,{},O3,ntG),AY(np1,"SweepCopy",807),nrr(1798,1,ndS,QW),nTm.Of=function(n,t){},nTm.Mf=function(){var n;n=_f(nYL,nfH,25,this.f,15,1),this.d=new lH(n),this.a=new PD(n)},nTm.Nf=function(n,t,e,i,r,c){var a;a=Im(CA(c[n][t].j,e),11),r.c==a&&r.c.i.c==r.d.i.c&&++this.e[n]},nTm.Pf=function(n,t,e){var i;i=e[n][t],this.c[n]=this.c[n]|i.k==(ntY(),nAQ)},nTm.Qf=function(n,t,e,i){var r;(r=Im(CA(i[n][t].j,e),11)).p=this.f++,r.g.c.length+r.e.c.length>1&&(r.j==(nsR(),nWA)?this.b[n]=!0:r.j==nWJ&&n>0&&(this.b[n-1]=!0))},nTm.f=0,AY(ndM,"AllCrossingsCounter",1798),nrr(587,1,{},GM),nTm.b=0,nTm.d=0,AY(ndM,"BinaryIndexedTree",587),nrr(524,1,{},PD),AY(ndM,"CrossingsCounter",524),nrr(1906,1,nlX,lx),nTm.ue=function(n,t){var e,i,r;return e=this.a,i=Im(n,11),r=Im(t,11),EG(e.d[i.p],e.d[r.p])},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndM,"CrossingsCounter/lambda$0$Type",1906),nrr(1907,1,nlX,lD),nTm.ue=function(n,t){var e,i,r;return e=this.a,i=Im(n,11),r=Im(t,11),EG(e.d[i.p],e.d[r.p])},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndM,"CrossingsCounter/lambda$1$Type",1907),nrr(1908,1,nlX,lR),nTm.ue=function(n,t){var e,i,r;return e=this.a,i=Im(n,11),r=Im(t,11),EG(e.d[i.p],e.d[r.p])},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndM,"CrossingsCounter/lambda$2$Type",1908),nrr(1909,1,nlX,lK),nTm.ue=function(n,t){var e,i,r;return e=this.a,i=Im(n,11),r=Im(t,11),EG(e.d[i.p],e.d[r.p])},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(ndM,"CrossingsCounter/lambda$3$Type",1909),nrr(1910,1,nh1,lF),nTm.td=function(n){var t,e;t=this.a,e=Im(n,11),ID(),IE(t,new k_(e,Va(e.e.c.length+e.g.c.length)))},AY(ndM,"CrossingsCounter/lambda$4$Type",1910),nrr(1911,1,nfw,l_),nTm.Mb=function(n){var t,e;return t=this.a,e=Im(n,11),ID(),e!=t},AY(ndM,"CrossingsCounter/lambda$5$Type",1911),nrr(1912,1,nh1,lB),nTm.td=function(n){k1(this,n)},AY(ndM,"CrossingsCounter/lambda$6$Type",1912),nrr(1913,1,nh1,yV),nTm.td=function(n){var t;ID(),RC(this.b,(t=this.a,Im(n,11),t))},AY(ndM,"CrossingsCounter/lambda$7$Type",1913),nrr(826,1,nbt,rV),nTm.Lb=function(n){return ID(),MH(Im(n,11),(nhu(),nxA))},nTm.Fb=function(n){return this===n},nTm.Mb=function(n){return ID(),MH(Im(n,11),(nhu(),nxA))},AY(ndM,"CrossingsCounter/lambda$8$Type",826),nrr(1905,1,{},lH),AY(ndM,"HyperedgeCrossingsCounter",1905),nrr(467,1,{35:1,467:1},S1),nTm.wd=function(n){var t;return t=Im(n,467),this.e<t.e?-1:this.e>t.e?1:this.f<t.f?-1:this.f>t.f?1:Xg(this)-Xg(t)},nTm.b=0,nTm.c=0,nTm.e=0,nTm.f=0;var nIA=AY(ndM,"HyperedgeCrossingsCounter/Hyperedge",467);nrr(362,1,{35:1,362:1},Lm),nTm.wd=function(n){return function(n,t){if(n.c<t.c)return -1;if(n.c>t.c)return 1;if(n.b<t.b)return -1;if(n.b>t.b)return 1;if(n.a!=t.a)return Xg(n.a)-Xg(t.a);if(n.d==(KI(),nBT)&&t.d==nBE)return -1;if(n.d==nBE&&t.d==nBT)return 1;return 0}(this,Im(n,362))},nTm.b=0,nTm.c=0;var nI$=AY(ndM,"HyperedgeCrossingsCounter/HyperedgeCorner",362);nrr(523,22,{3:1,35:1,22:1,523:1},yW);var nIL=qE(ndM,"HyperedgeCrossingsCounter/HyperedgeCorner/Type",523,nE2,function(){return KI(),Um(xg(nIL,1),nfh,523,0,[nBT,nBE])},function(n){return KI(),B5((Kv(),nBM),n)});nrr(1405,1,npV,sS),nTm.Yf=function(n){return Im(ntP(Im(n,37),(nhu(),nxu)),21).Hc((ncJ(),nNN))?nBS:null},nTm.pf=function(n,t){!function(n,t,e){var i;for(ntc(e,"Interactive node placement",1),n.a=Im(ntP(t,(nhu(),nxF)),304),i=new h1(t.b);i.a<i.c.c.length;)(function(n,t){var e,i,r,c,a,u,o,s,h;for(e=nla,ntY(),u=nAV,r=new h1(t.a);r.a<r.c.c.length;)(c=(i=Im(De(r),10)).k)!=nAV&&(null==(a=Ss(ntP(i,(nhu(),nxM))))?(e=nTv.Math.max(e,0),i.n.b=e+RA(s=n.a,c,u,s.c)):i.n.b=($x(a),a)),o=RA(h=n.a,c,u,h.c),i.n.b<e+o+i.d.d&&(i.n.b=e+o+i.d.d),e=i.n.b+i.o.b+i.d.a,u=c})(n,Im(De(i),29));nee(e)}(this,Im(n,37),t)},AY(np0,"InteractiveNodePlacer",1405),nrr(1406,1,npV,sM),nTm.Yf=function(n){return Im(ntP(Im(n,37),(nhu(),nxu)),21).Hc((ncJ(),nNN))?nBP:null},nTm.pf=function(n,t){var e;e=Im(n,37),ntc(t,"Linear segments node placement",1),this.b=Im(ntP(e,(nhu(),nxF)),304),function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,I,C,O,A;for(C=new wn,b=new h1(t.b);b.a<b.c.c.length;)for(y=new h1(Im(De(b),29).a);y.a<y.c.c.length;){for((m=Im(De(y),10)).p=-1,f=nfp,E=nfp,M=new h1(m.j);M.a<M.c.c.length;){for(r=new h1((T=Im(De(M),11)).e);r.a<r.c.c.length;)e=Im(De(r),17),S=Im(ntP(e,(ns8(),nFN)),19).a,f=nTv.Math.max(f,S);for(i=new h1(T.g);i.a<i.c.c.length;)e=Im(De(i),17),S=Im(ntP(e,(ns8(),nFN)),19).a,E=nTv.Math.max(E,S)}UU(m,nBI,Va(f)),UU(m,nBC,Va(E))}for(g=0,l=new h1(t.b);l.a<l.c.c.length;)for(y=new h1(Im(De(l),29).a);y.a<y.c.c.length;)(m=Im(De(y),10)).p<0&&((I=new w8).b=g++,function n(t,e,i){var r,c,a,u,o;if(r=e.k,e.p>=0)return!1;if(e.p=i.b,IE(i.e,e),r==(ntY(),nAW)||r==nAQ){for(c=new h1(e.j);c.a<c.c.c.length;)for(o=new fB(new h1(new f_(Im(De(c),11)).a.g));EB(o.a);)if(u=(a=Im(De(o.a),17).d.i).k,e.c!=a.c&&(u==nAW||u==nAQ)&&n(t,a,i))return!0}return!0}(n,m,I),C.c[C.c.length]=I);for(a=0,j=Mj(C.c.length),h=Mj(C.c.length);a<C.c.length;a++)IE(j,new wn),IE(h,Va(0));for(function(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(b=t.c.length,l=0,f=new h1(n.b);f.a<f.c.c.length;)if(0!=(p=(h=Im(De(f),29)).a).c.length){for(g=new h1(p),s=0,v=null,r=Im(De(g),10),c=null;r;){if((c=Im(CA(t,r.p),257)).c>=0){for(o=null,u=new Rn(h.a,s+1);u.b<u.d.gc()&&(MK(u.b<u.d.gc()),a=Im(u.d.Xb(u.c=u.b++),10),(o=Im(CA(t,a.p),257)).d!=c.d||!(o.c<c.c));)o=null;o&&(v&&(KN(i,r.p,Va(Im(CA(i,r.p),19).a-1)),Im(CA(e,v.p),15).Mc(c)),c=function(n,t,e){var i,r,c,a;for(a=Bb(n.e,t,0),(c=new w8).b=e,i=new Rn(n.e,a);i.b<i.d.gc();)MK(i.b<i.d.gc()),(r=Im(i.d.Xb(i.c=i.b++),10)).p=e,IE(c.e,r),$I(i);return c}(c,r,b++),t.c[t.c.length]=c,IE(e,new wn),v?(Im(CA(e,v.p),15).Fc(c),IE(i,Va(1))):IE(i,Va(0)))}w=null,g.a<g.c.c.length&&(w=Im(De(g),10),d=Im(CA(t,w.p),257),Im(CA(e,r.p),15).Fc(d),KN(i,w.p,Va(Im(CA(i,w.p),19).a+1))),c.d=l,c.c=s++,v=r,r=w}++l}}(t,C,j,h),O=Im(Jx(C,_f(nIN,np2,257,C.c.length,0,1)),840),k=Im(Jx(j,_f(nEZ,nwe,15,j.c.length,0,1)),192),s=_f(nYL,nfH,25,h.c.length,15,1),u=0;u<s.length;u++)s[u]=(x4(u,h.c.length),Im(h.c[u],19)).a;for(o=0,p=0,v=new wn;o<O.length;o++)0==s[o]&&IE(v,O[o]);for(d=_f(nYL,nfH,25,O.length,15,1);0!=v.c.length;)for(d[(I=Im(Ff(v,0),257)).b]=p++;!k[I.b].dc();)A=Im(k[I.b].$c(0),257),--s[A.b],0==s[A.b]&&(v.c[v.c.length]=A);for(c=0,n.a=_f(nIN,np2,257,O.length,0,1);c<O.length;c++)for(w=O[c],P=d[c],n.a[P]=w,w.b=P,y=new h1(w.e);y.a<y.c.c.length;)(m=Im(De(y),10)).p=P;n.a}(this,e),function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d;for(u=_f(nYL,nfH,25,t.b.c.length,15,1),s=_f(nPQ,nfh,267,t.b.c.length,0,1),o=_f(nPV,nw9,10,t.b.c.length,0,1),f=n.a,l=0,b=f.length;l<b;++l){for(h=f[l],d=0,a=new h1(h.e);a.a<a.c.c.length;)i=j5((r=Im(De(a),10)).c),++u[i],w=gy(Ss(ntP(t,(ns8(),nFB)))),u[i]>0&&o[i]&&(w=EY(n.b,o[i],r)),d=nTv.Math.max(d,r.c.c.b+w);for(c=new h1(h.e);c.a<c.c.c.length;)(r=Im(De(c),10)).n.b=d+r.d.d,(e=r.c).c.b=d+r.d.d+r.o.b+r.d.a,s[Bb(e.b.b,e,0)]=r.k,o[Bb(e.b.b,e,0)]=r}}(this,e),function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;i=gy(Ss(ntP(t,(ns8(),nFi)))),k=Im(ntP(t,nF2),19).a,l=4,r=3,j=20/k,b=!1,o=0,a=nhM;do{for(c=1!=o,f=0!=o,E=0,g=n.a,v=0,y=g.length;v<y;++v)(w=g[v]).f=null,function(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j;for(j=0,b=0,f=new h1(t.e);f.a<f.c.c.length;){for(h=Im(De(f),10),l=0,u=0,o=e?Im(ntP(h,nBI),19).a:nfp,p=i?Im(ntP(h,nBC),19).a:nfp,s=nTv.Math.max(o,p),m=new h1(h.j);m.a<m.c.c.length;){if(v=Im(De(m),11),y=h.n.b+v.n.b+v.a.b,i)for(a=new h1(v.g);a.a<a.c.c.length;)w=(d=(c=Im(De(a),17)).d).i,t!=n.a[w.p]&&(g=nTv.Math.max(Im(ntP(w,nBI),19).a,Im(ntP(w,nBC),19).a),(k=Im(ntP(c,(ns8(),nFN)),19).a)>=s&&k>=g&&(l+=w.n.b+d.n.b+d.a.b-y,++u));if(e)for(a=new h1(v.e);a.a<a.c.c.length;)w=(d=(c=Im(De(a),17)).c).i,t!=n.a[w.p]&&(g=nTv.Math.max(Im(ntP(w,nBI),19).a,Im(ntP(w,nBC),19).a),(k=Im(ntP(c,(ns8(),nFN)),19).a)>=s&&k>=g&&(l+=w.n.b+d.n.b+d.a.b-y,++u))}u>0&&(j+=l/u,++b)}b>0?(t.a=r*j/b,t.g=b):(t.a=0,t.g=0)}(n,w,c,f,i),E+=nTv.Math.abs(w.a);do u=function(n,t){var e,i,r,c,a,u,o,s,h,f;for(e=!1,h=nfg*gy(Ss(ntP(t,(ns8(),nFJ)))),i=new h1(t.b);i.a<i.c.c.length;)for(a=new h1(Im(De(i),29).a),r=Im(De(a),10),u=Af(n.a[r.p]);a.a<a.c.c.length;)c=Im(De(a),10),u!=(o=Af(n.a[c.p]))&&(s=EY(n.b,r,c),r.n.b+r.o.b+r.d.a+u.a+s>c.n.b-c.d.d+o.a+h&&(f=u.g+o.g,o.a=(o.g*o.a+u.g*u.a)/f,o.g=f,u.f=o,e=!0)),r=c,u=o;return e}(n,t);while(u)for(d=n.a,p=0,m=d.length;p<m;++p)if(0!=(e=Af(w=d[p]).a))for(h=new h1(w.e);h.a<h.c.c.length;)s=Im(De(h),10),s.n.b+=e;0==o||1==o?--l<=0&&(E<a||-l>k)?(o=2,a=nhM):(o=0==o?1:0,a=E):(b=E>=a||a-E<j,a=E,b&&--r)}while(!(b&&r<=0))}(this,e),function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M;for(v=n.a,m=0,y=v.length;m<y;++m){for(p=v[m],o=nhM,s=nhM,b=new h1(p.e);b.a<b.c.c.length;)(c=(f=Im(De(b),10)).c?Bb(f.c.a,f,0):-1)>0?(h=Im(CA(f.c.a,c-1),10),E=EY(n.b,f,h),d=f.n.b-f.d.d-(h.n.b+h.o.b+h.d.a+E)):d=f.n.b-f.d.d,o=nTv.Math.min(d,o),c<f.c.a.c.length-1?(h=Im(CA(f.c.a,c+1),10),E=EY(n.b,f,h),g=h.n.b-h.d.d-(f.n.b+f.o.b+f.d.a+E)):g=2*f.n.b,s=nTv.Math.min(g,s);for(u=nhM,r=!1,M=new h1((i=Im(CA(p.e,0),10)).j);M.a<M.c.c.length;)for(T=Im(De(M),11),w=i.n.b+T.n.b+T.a.b,e=new h1(T.e);e.a<e.c.c.length;)t=(k=Im(De(e),17).c).i.n.b+k.n.b+k.a.b-w,nTv.Math.abs(t)<nTv.Math.abs(u)&&nTv.Math.abs(t)<(t<0?o:s)&&(u=t,r=!0);for(j=new h1((a=Im(CA(p.e,p.e.c.length-1),10)).j);j.a<j.c.c.length;)for(k=Im(De(j),11),w=a.n.b+k.n.b+k.a.b,e=new h1(k.g);e.a<e.c.c.length;)t=(T=Im(De(e),17).d).i.n.b+T.n.b+T.a.b-w,nTv.Math.abs(t)<nTv.Math.abs(u)&&nTv.Math.abs(t)<(t<0?o:s)&&(u=t,r=!0);if(r&&0!=u)for(l=new h1(p.e);l.a<l.c.c.length;)f=Im(De(l),10),f.n.b+=u}}(this),this.a=null,this.b=null,nee(t)},AY(np0,"LinearSegmentsNodePlacer",1406),nrr(257,1,{35:1,257:1},w8),nTm.wd=function(n){var t;return t=Im(n,257),this.b-t.b},nTm.Fb=function(n){var t;return!!Ti(n,257)&&(t=Im(n,257),this.b==t.b)},nTm.Hb=function(){return this.b},nTm.Ib=function(){return"ls"+ntK(this.e)},nTm.a=0,nTm.b=0,nTm.c=-1,nTm.d=-1,nTm.g=0;var nIN=AY(np0,"LinearSegmentsNodePlacer/LinearSegment",257);nrr(1408,1,npV,Oo),nTm.Yf=function(n){return Im(ntP(Im(n,37),(nhu(),nxu)),21).Hc((ncJ(),nNN))?nBO:null},nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a,u,o,h,f,l;if(ntc(e,"Network simplex node placement",1),n.e=t,n.n=Im(ntP(t,(nhu(),nxF)),304),function(n){var t,e,i,r,c,a,u,o,h,f,l,b;for(n.f=new wq,u=0,i=0,r=new h1(n.e.b);r.a<r.c.c.length;)for(a=new h1(Im(De(r),29).a);a.a<a.c.c.length;){for((c=Im(De(a),10)).p=u++,e=new OM(TD(Vz(c).a.Kc(),new s));nrc(e);)Im(K4(e),17).p=i++;for(t=noM(c),f=new h1(c.j);f.a<f.c.c.length;)h=Im(De(f),11),t&&(b=h.a.b)!=nTv.Math.floor(b)&&(o=b-D8(zx(nTv.Math.round(b))),h.a.b-=o),(l=h.n.b+h.a.b)!=nTv.Math.floor(l)&&(o=l-D8(zx(nTv.Math.round(l))),h.n.b-=o)}n.g=u,n.b=i,n.i=_f(nID,nhA,401,u,0,1),n.c=_f(nIx,nhA,649,i,0,1),n.d.a.$b()}(n),function(n){var t;for(t=new h1(n.e.b);t.a<t.c.c.length;)(function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w;for(r=null,i=new h1(t.a);i.a<i.c.c.length;)noM(e=Im(De(i),10))?(u=Mt(vG(new wU,e),n.f),o=Mt(vG(new wU,e),n.f),s=new Ly(e,!0,u,o),h=e.o.b,Yp(),f=(e.q?e.q:(LV(),LV(),nMm))._b((ns8(),nFr))?Im(ntP(e,nFr),197):Im(ntP($L(e),nFc),197),l=1e4,f==n_m&&(l=1),b=nck(vH(vB(v_(vq(new wz,l),NU(nTv.Math.ceil(h))),u),o)),f==n_y&&Av(n.d,b),nuo(n,zI(V_(e,(nsR(),nWJ))),s),nuo(n,V_(e,nWA),s),c=s):(w=Mt(vG(new wU,e),n.f),vF(Lb(new CL(null,new x6(e.j,16)),new r0),new yJ(n,w)),c=new Ly(e,!1,w,w)),n.i[e.p]=c,r&&(a=r.c.d.a+EY(n.n,r.c,e)+e.d.d,r.b||(a+=r.c.o.b),nck(vH(vB(vq(v_(new wz,NU(nTv.Math.ceil(a))),0),r.d),c.a))),r=c})(n,Im(De(t),29));vF(Lb(BV(BV(new CL(null,new x6(n.e.b,16)),new r8),new ci),new cr),new lQ(n))}(n),vF(BV(new CL(null,new x6(n.e.b,16)),new r2),new lz(n)),vF(Lb(BV(Lb(BV(new CL(null,new x6(n.e.b,16)),new cc),new ca),new cu),new co),new lG(n)),gm(So(ntP(n.e,(ns8(),nFe))))&&(ntc(c=zt(e,1),"Straight Edges Pre-Processing",1),function(n){var t,e,i,r,c,a,u,o,s,h;for(n.j=_f(nYL,nfH,25,n.g,15,1),n.o=new wn,vF(BV(new CL(null,new x6(n.e.b,16)),new r9),new lX(n)),n.a=_f(nYN,nbf,25,n.b,16,1),WQ(new CL(null,new x6(n.e.b,16)),new lV(n)),h=new wn,vF(Lb(BV(new CL(null,new x6(n.e.b,16)),new cn),new lW(n)),new yY(n,h)),u=new h1(h);u.a<u.c.c.length;)if(!((a=Im(De(u),508)).c.length<=1)){if(2==a.c.length){(function(n){var t,e;if(2!=n.c.length)throw new gg("Order only allowed for two paths.").e;x4(0,n.c.length),t=Im(n.c[0],17),x4(1,n.c.length),e=Im(n.c[1],17),t.d.i!=e.c.i&&(n.c=_f(nEX,nhA,1,0,5,1),n.c[n.c.length]=e,n.c[n.c.length]=t)})(a),noM((x4(0,a.c.length),Im(a.c[0],17)).d.i)||IE(n.o,a);continue}if(!(0!=a.c.length&&((x4(0,a.c.length),Im(a.c[0],17)).c.i.k==(ntY(),nAW)||KD(Lw(new CL(null,new x6(a,16)),new rY),new rZ))||function(n,t){var e;return 0!=n.c.length&&(e=QD((x4(0,n.c.length),Im(n.c[0],17)).c.i),xD(),e==(Yp(),n_y)||e==n_m||KD(Lw(new CL(null,new x6(n,16)),new r1),new lq(t)))}(a,new r7)))for(o=new h1(a),i=null;o.a<o.c.c.length;)t=Im(De(o),17),e=n.c[t.p],s=(!i||o.a>=o.c.c.length?RB((ntY(),nAV),nAW):RB((ntY(),nAW),nAW))*2,r=e.a.g,e.a.g=nTv.Math.max(r,r+(s-r)),c=e.b.g,e.b.g=nTv.Math.max(c,c+(s-c)),i=t}}(n),nee(c)),function(n){var t,e,i;for(e=0,i=new h1(n.a);i.a<i.c.c.length;)Im(De(i),121).d=e++;(t=function(n){var t,e,i,r;for(t=new wn,Aw(e=_f(nYN,nbf,25,n.a.c.length,16,1),e.length),r=new h1(n.a);r.a<r.c.c.length;)e[(i=Im(De(r),121)).d]||(t.c[t.c.length]=i,function n(t,e,i){var r;if(!i[e.d])for(i[e.d]=!0,r=new h1(VV(e));r.a<r.c.c.length;)n(t,V6(Im(De(r),213),e),i)}(n,i,e));return t}(n)).c.length>1&&function(n,t){var e,i,r;for(e=Mt(new wU,n),r=new h1(t);r.a<r.c.c.length;)i=Im(De(r),121),nck(vH(vB(vq(v_(new wz,0),0),e),i))}(n,t)}(n.f),r=Im(ntP(t,nF2),19).a*n.f.a.c.length,na5(((f=P8(n.f)).f=r,f.a=!1,f),zt(e,1)),0!=n.d.a.gc()){for(ntc(c=zt(e,1),"Flexible Where Space Processing",1),a=Im(Me(Oq(Lw(new CL(null,new x6(n.f.a,16)),new r3),new rQ)),19).a,u=Im(Me(OH(Lw(new CL(null,new x6(n.f.a,16)),new r4),new rJ)),19).a-a,o=Mt(new wU,n.f),h=Mt(new wU,n.f),nck(vH(vB(v_(vq(new wz,2e4),u),o),h)),vF(Lb(Lb(AM(n.i),new r5),new r6),new Lk(a,o,u,h)),i=n.d.a.ec().Kc();i.Ob();)Im(i.Pb(),213).g=1;na5(((l=P8(n.f)).f=r,l.a=!1,l),zt(c,1)),nee(c)}gm(So(ntP(t,nFe)))&&(ntc(c=zt(e,1),"Straight Edges Post-Processing",1),function(n){var t,e,i;for(Gz(e=new vK,n.o),i=new dt;0!=e.b;)nsG(n,t=Im(0==e.b?null:(MK(0!=e.b),HK(e,e.a.a)),508),!0)&&IE(i.a,t);for(;0!=i.a.c.length;)nsG(n,t=Im(X2(i),508),!1)}(n),nee(c)),function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d;for(e=new h1(n.e.b);e.a<e.c.c.length;)for(r=new h1(Im(De(e),29).a);r.a<r.c.c.length;)if(i=Im(De(r),10),o=(f=n.i[i.p]).a.e,u=f.d.e,i.n.b=o,d=u-o-i.o.b,t=noM(i),Yp(),h=(i.q?i.q:(LV(),LV(),nMm))._b((ns8(),nFr))?Im(ntP(i,nFr),197):Im(ntP($L(i),nFc),197),t&&(h==n_y||h==n_m)&&(i.o.b+=d),t&&(h==n_j||h==n_y||h==n_m)){for(b=new h1(i.j);b.a<b.c.c.length;)l=Im(De(b),11),(nsR(),nWD).Hc(l.j)&&(s=Im($a(n.k,l),121),l.n.b=s.e-o);for(a=new h1(i.b);a.a<a.c.c.length;)c=Im(De(a),70),(w=Im(ntP(i,nK7),21)).Hc((nrS(),nWu))?c.n.b+=d:w.Hc(nWo)&&(c.n.b+=d/2);(h==n_y||h==n_m)&&V_(i,(nsR(),nWV)).Jc(new lU(d))}}(n),n.e=null,n.f=null,n.i=null,n.c=null,AT(n.k),n.j=null,n.a=null,n.o=null,n.d.a.$b(),nee(e)}(this,Im(n,37),t)},nTm.b=0,nTm.g=0,AY(np0,"NetworkSimplexPlacer",1408),nrr(1427,1,nlX,rQ),nTm.ue=function(n,t){return EG(Im(n,19).a,Im(t,19).a)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(np0,"NetworkSimplexPlacer/0methodref$compare$Type",1427),nrr(1429,1,nlX,rJ),nTm.ue=function(n,t){return EG(Im(n,19).a,Im(t,19).a)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(np0,"NetworkSimplexPlacer/1methodref$compare$Type",1429),nrr(649,1,{649:1},yQ);var nIx=AY(np0,"NetworkSimplexPlacer/EdgeRep",649);nrr(401,1,{401:1},Ly),nTm.b=!1;var nID=AY(np0,"NetworkSimplexPlacer/NodeRep",401);nrr(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},dn),AY(np0,"NetworkSimplexPlacer/Path",508),nrr(1409,1,{},rY),nTm.Kb=function(n){return Im(n,17).d.i.k},AY(np0,"NetworkSimplexPlacer/Path/lambda$0$Type",1409),nrr(1410,1,nfw,rZ),nTm.Mb=function(n){return Im(n,267)==(ntY(),nAW)},AY(np0,"NetworkSimplexPlacer/Path/lambda$1$Type",1410),nrr(1411,1,{},r1),nTm.Kb=function(n){return Im(n,17).d.i},AY(np0,"NetworkSimplexPlacer/Path/lambda$2$Type",1411),nrr(1412,1,nfw,lq),nTm.Mb=function(n){return Sj(QD(Im(n,10)))},AY(np0,"NetworkSimplexPlacer/Path/lambda$3$Type",1412),nrr(1413,1,nfw,r0),nTm.Mb=function(n){var t;return t=Im(n,11),xD(),(nsR(),nWD).Hc(t.j)},AY(np0,"NetworkSimplexPlacer/lambda$0$Type",1413),nrr(1414,1,nh1,yJ),nTm.td=function(n){var t,e,i;t=this.a,e=this.b,i=Im(n,11),$J(t.k,i,e)},AY(np0,"NetworkSimplexPlacer/lambda$1$Type",1414),nrr(1423,1,nh1,lG),nTm.td=function(n){var t,e,i,r,c,a,u,o;t=this.a,o=(e=Im(n,17)).c.i.k!=(ntY(),nAV)?e.d:e.c,i=function(n,t){if(t==n.c)return n.d;if(t==n.d)return n.c;throw new gd("'port' must be either the source port or target port of the edge.").e}(e,o).i,c=Im($a(t.k,o),121),r=t.i[i.p].a,PE(o.i)<(i.c?Bb(i.c.a,i,0):-1)?(a=c,u=r):(a=r,u=c),nck(vH(vB(vq(v_(new wz,0),4),a),u))},AY(np0,"NetworkSimplexPlacer/lambda$10$Type",1423),nrr(1424,1,{},r2),nTm.Kb=function(n){return xD(),new CL(null,new x6(Im(n,29).a,16))},AY(np0,"NetworkSimplexPlacer/lambda$11$Type",1424),nrr(1425,1,nh1,lz),nTm.td=function(n){!function(n,t){var e,i,r,c;for(c=V_(t,(nsR(),nWV)).Kc();c.Ob();)i=Im(c.Pb(),11),(e=Im(ntP(i,(nhu(),nxA)),10))&&nck(vH(vB(vq(v_(new wz,0),.1),n.i[t.p].d),n.i[e.p].a));for(r=V_(t,nW$).Kc();r.Ob();)i=Im(r.Pb(),11),(e=Im(ntP(i,(nhu(),nxA)),10))&&nck(vH(vB(vq(v_(new wz,0),.1),n.i[e.p].d),n.i[t.p].a))}(this.a,Im(n,10))},AY(np0,"NetworkSimplexPlacer/lambda$12$Type",1425),nrr(1426,1,{},r3),nTm.Kb=function(n){return xD(),Va(Im(n,121).e)},AY(np0,"NetworkSimplexPlacer/lambda$13$Type",1426),nrr(1428,1,{},r4),nTm.Kb=function(n){return xD(),Va(Im(n,121).e)},AY(np0,"NetworkSimplexPlacer/lambda$15$Type",1428),nrr(1430,1,nfw,r5),nTm.Mb=function(n){return xD(),Im(n,401).c.k==(ntY(),nAV)},AY(np0,"NetworkSimplexPlacer/lambda$17$Type",1430),nrr(1431,1,nfw,r6),nTm.Mb=function(n){return xD(),Im(n,401).c.j.c.length>1},AY(np0,"NetworkSimplexPlacer/lambda$18$Type",1431),nrr(1432,1,nh1,Lk),nTm.td=function(n){var t,e,i,r,c;t=this.c,e=this.b,i=this.d,r=this.a,c=Im(n,401),xD(),nck(vH(vB(v_(vq(new wz,0),c.d.e-t),e),c.d)),nck(vH(vB(v_(vq(new wz,0),i-c.a.e),c.a),r))},nTm.c=0,nTm.d=0,AY(np0,"NetworkSimplexPlacer/lambda$19$Type",1432),nrr(1415,1,{},r8),nTm.Kb=function(n){return xD(),new CL(null,new x6(Im(n,29).a,16))},AY(np0,"NetworkSimplexPlacer/lambda$2$Type",1415),nrr(1433,1,nh1,lU),nTm.td=function(n){var t,e;t=this.a,e=Im(n,11),xD(),e.n.b+=t},nTm.a=0,AY(np0,"NetworkSimplexPlacer/lambda$20$Type",1433),nrr(1434,1,{},r9),nTm.Kb=function(n){return xD(),new CL(null,new x6(Im(n,29).a,16))},AY(np0,"NetworkSimplexPlacer/lambda$21$Type",1434),nrr(1435,1,nh1,lX),nTm.td=function(n){var t,e;t=this.a,e=Im(n,10),t.j[e.p]=function(n){var t,e,i,r;for(t=0,e=0,r=new h1(n.j);r.a<r.c.c.length;)if(t=CZ(VK(t,FR(Lb(new CL(null,new x6((i=Im(De(r),11)).e,16)),new ct)))),e=CZ(VK(e,FR(Lb(new CL(null,new x6(i.g,16)),new ce)))),t>1||e>1)return 2;return t+e==1?2:0}(e)},AY(np0,"NetworkSimplexPlacer/lambda$22$Type",1435),nrr(1436,1,nfw,r7),nTm.Mb=function(n){return Sj(n)},AY(np0,"NetworkSimplexPlacer/lambda$23$Type",1436),nrr(1437,1,{},cn),nTm.Kb=function(n){return xD(),new CL(null,new x6(Im(n,29).a,16))},AY(np0,"NetworkSimplexPlacer/lambda$24$Type",1437),nrr(1438,1,nfw,lW),nTm.Mb=function(n){var t,e;return t=this.a,e=Im(n,10),2==t.j[e.p]},AY(np0,"NetworkSimplexPlacer/lambda$25$Type",1438),nrr(1439,1,nh1,yY),nTm.td=function(n){!function(n,t,e){var i,r,c;for(r=new OM(TD(Vq(e).a.Kc(),new s));nrc(r);)KR(i=Im(K4(r),17))||!KR(i)&&i.c.i.c==i.d.i.c||!((c=function n(t,e,i,r){var c,a,u;if(u=nny(e,i),r.c[r.c.length]=e,-1==t.j[u.p]||2==t.j[u.p]||t.a[e.p])return r;for(t.j[u.p]=-1,a=new OM(TD(Vq(u).a.Kc(),new s));nrc(a);)if(!KR(c=Im(K4(a),17))&&!(!KR(c)&&c.c.i.c==c.d.i.c)&&c!=e)return n(t,c,u,r);return r}(n,i,e,new dn)).c.length>1)||(t.c[t.c.length]=c)}(this.a,this.b,Im(n,10))},AY(np0,"NetworkSimplexPlacer/lambda$26$Type",1439),nrr(1440,1,nfw,ct),nTm.Mb=function(n){return xD(),!KR(Im(n,17))},AY(np0,"NetworkSimplexPlacer/lambda$27$Type",1440),nrr(1441,1,nfw,ce),nTm.Mb=function(n){return xD(),!KR(Im(n,17))},AY(np0,"NetworkSimplexPlacer/lambda$28$Type",1441),nrr(1442,1,{},lV),nTm.Ce=function(n,t){var e;return function(n,t,e){var i,r,c,a,u,o,s,h;for(o=new wn,u=new h1(t.a);u.a<u.c.c.length;)for(h=V_(Im(De(u),10),(nsR(),nWA)).Kc();h.Ob();)for(r=new h1(Im(h.Pb(),11).g);r.a<r.c.c.length;)!KR(i=Im(De(r),17))&&i.c.i.c==i.d.i.c||KR(i)||i.d.i.c!=e||(o.c[o.c.length]=i);for(a=zI(e.a).Kc();a.Ob();)for(h=V_(Im(a.Pb(),10),(nsR(),nWJ)).Kc();h.Ob();)for(r=new h1(Im(h.Pb(),11).e);r.a<r.c.c.length;)if(!(!KR(i=Im(De(r),17))&&i.c.i.c==i.d.i.c||KR(i))&&i.c.i.c==t){for(MK((s=new Rn(o,o.c.length)).b>0),c=Im(s.a.Xb(s.c=--s.b),17);c!=i&&s.b>0;)n.a[c.p]=!0,n.a[i.p]=!0,MK(s.b>0),c=Im(s.a.Xb(s.c=--s.b),17);s.b>0&&$I(s)}}(this.a,Im(n,29),e=Im(t,29)),e},AY(np0,"NetworkSimplexPlacer/lambda$29$Type",1442),nrr(1416,1,{},ci),nTm.Kb=function(n){return xD(),new CL(null,new A$(new OM(TD(Vz(Im(n,10)).a.Kc(),new s))))},AY(np0,"NetworkSimplexPlacer/lambda$3$Type",1416),nrr(1417,1,nfw,cr),nTm.Mb=function(n){var t;return xD(),t=Im(n,17),xD(),!KR(t)&&!(!KR(t)&&t.c.i.c==t.d.i.c)},AY(np0,"NetworkSimplexPlacer/lambda$4$Type",1417),nrr(1418,1,nh1,lQ),nTm.td=function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b;t=this.a,e=Im(n,17),i=Mt(new wU,t.f),o=t.i[e.c.i.p],l=t.i[e.d.i.p],u=e.c,f=e.d,a=u.a.b,h=f.a.b,o.b||(a+=u.n.b),l.b||(h+=f.n.b),s=NU(nTv.Math.max(0,a-h)),c=NU(nTv.Math.max(0,h-a)),b=nTv.Math.max(1,Im(ntP(e,(ns8(),nFN)),19).a)*RB(e.c.i.k,e.d.i.k),r=new yQ(nck(vH(vB(v_(vq(new wz,b),c),i),Im($a(t.k,e.c),121))),nck(vH(vB(v_(vq(new wz,b),s),i),Im($a(t.k,e.d),121)))),t.c[e.p]=r},AY(np0,"NetworkSimplexPlacer/lambda$5$Type",1418),nrr(1419,1,{},cc),nTm.Kb=function(n){return xD(),new CL(null,new x6(Im(n,29).a,16))},AY(np0,"NetworkSimplexPlacer/lambda$6$Type",1419),nrr(1420,1,nfw,ca),nTm.Mb=function(n){return xD(),Im(n,10).k==(ntY(),nAV)},AY(np0,"NetworkSimplexPlacer/lambda$7$Type",1420),nrr(1421,1,{},cu),nTm.Kb=function(n){return xD(),new CL(null,new A$(new OM(TD(Vq(Im(n,10)).a.Kc(),new s))))},AY(np0,"NetworkSimplexPlacer/lambda$8$Type",1421),nrr(1422,1,nfw,co),nTm.Mb=function(n){var t;return xD(),!KR(t=Im(n,17))&&t.c.i.c==t.d.i.c},AY(np0,"NetworkSimplexPlacer/lambda$9$Type",1422),nrr(1404,1,npV,sH),nTm.Yf=function(n){return Im(ntP(Im(n,37),(nhu(),nxu)),21).Hc((ncJ(),nNN))?nBA:null},nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o,s,h,f;for(ntc(t,"Simple node placement",1),f=Im(ntP(n,(nhu(),nxF)),304),u=0,c=new h1(n.b);c.a<c.c.c.length;){for((a=(i=Im(De(c),29)).c).b=0,e=null,s=new h1(i.a);s.a<s.c.c.length;)o=Im(De(s),10),e&&(a.b+=Q5(o,e,f.c)),a.b+=o.d.d+o.o.b+o.d.a,e=o;u=nTv.Math.max(u,a.b)}for(r=new h1(n.b);r.a<r.c.c.length;)for(h=(u-(a=(i=Im(De(r),29)).c).b)/2,e=null,s=new h1(i.a);s.a<s.c.c.length;)o=Im(De(s),10),e&&(h+=Q5(o,e,f.c)),h+=o.d.d,o.n.b=h,h+=o.o.b+o.d.a,e=o;nee(t)}(Im(n,37),t)},AY(np0,"SimpleNodePlacer",1404),nrr(180,1,{180:1},na2),nTm.Ib=function(){var n;return n="",this.c==(NR(),nBL)?n+=nbv:this.c==nB$&&(n+=nbp),this.o==(xh(),nBx)?n+=nbC:this.o==nBD?n+="UP":n+="BALANCED",n},AY(np4,"BKAlignedLayout",180),nrr(516,22,{3:1,35:1,22:1,516:1},y0);var nIR=qE(np4,"BKAlignedLayout/HDirection",516,nE2,function(){return NR(),Um(xg(nIR,1),nfh,516,0,[nBL,nB$])},function(n){return NR(),B5((Km(),nBN),n)});nrr(515,22,{3:1,35:1,22:1,515:1},y1);var nIK=qE(np4,"BKAlignedLayout/VDirection",515,nE2,function(){return xh(),Um(xg(nIK,1),nfh,515,0,[nBx,nBD])},function(n){return xh(),B5((Ky(),nBR),n)});nrr(1634,1,{},yZ),AY(np4,"BKAligner",1634),nrr(1637,1,{},ZB),AY(np4,"BKCompactor",1637),nrr(654,1,{654:1},cs),nTm.a=0,AY(np4,"BKCompactor/ClassEdge",654),nrr(458,1,{458:1},w9),nTm.a=null,nTm.b=0,AY(np4,"BKCompactor/ClassNode",458),nrr(1407,1,npV,k0),nTm.Yf=function(n){return Im(ntP(Im(n,37),(nhu(),nxu)),21).Hc((ncJ(),nNN))?nBK:null},nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a,u,o,h,f,l,b,w,d,g,p,v,m,y,k,j,T;switch(ntc(e,"Brandes & Koepf node placement",1),n.a=t,n.c=function(n){var t,e,i,r,c,a,u,o,h,f,l;for((l=new ch).d=0,a=new h1(n.b);a.a<a.c.c.length;)c=Im(De(a),29),l.d+=c.a.c.length;for(i=0,r=0,l.a=_f(nYL,nfH,25,n.b.c.length,15,1),h=0,f=0,l.e=_f(nYL,nfH,25,l.d,15,1),e=new h1(n.b);e.a<e.c.c.length;)for((t=Im(De(e),29)).p=i++,l.a[t.p]=r++,f=0,o=new h1(t.a);o.a<o.c.c.length;)(u=Im(De(o),10)).p=h++,l.e[u.p]=f++;return l.c=new lJ(l),l.b=Mj(l.d),function(n,t){var e,i,r,c,a,u,o,h;for(c=new h1(t.b);c.a<c.c.c.length;)for(o=new h1(Im(De(c),29).a);o.a<o.c.c.length;){for(u=Im(De(o),10),h=new wn,a=0,i=new OM(TD(VG(u).a.Kc(),new s));nrc(i);)!KR(e=Im(K4(i),17))&&(KR(e)||e.c.i.c!=e.d.i.c)&&((r=Im(ntP(e,(ns8(),nFN)),19).a)>a&&(a=r,h.c=_f(nEX,nhA,1,0,5,1)),r==a&&IE(h,new k_(e.c.i,e)));LV(),E_(h,n.c),C4(n.b,u.p,h)}}(l,n),l.f=Mj(l.d),function(n,t){var e,i,r,c,a,u,o,h;for(c=new h1(t.b);c.a<c.c.c.length;)for(o=new h1(Im(De(c),29).a);o.a<o.c.c.length;){for(u=Im(De(o),10),h=new wn,a=0,i=new OM(TD(Vz(u).a.Kc(),new s));nrc(i);)!KR(e=Im(K4(i),17))&&(KR(e)||e.c.i.c!=e.d.i.c)&&((r=Im(ntP(e,(ns8(),nFN)),19).a)>a&&(a=r,h.c=_f(nEX,nhA,1,0,5,1)),r==a&&IE(h,new k_(e.d.i,e)));LV(),E_(h,n.c),C4(n.f,u.p,h)}}(l,n),l}(t),i=Im(ntP(t,(ns8(),nFt)),274),w=gm(So(ntP(t,nFe))),n.d=i==(nnS(),nNy)&&!w||i==nNp,function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;if(!((d=t.b.c.length)<3)){for(b=_f(nYL,nfH,25,d,15,1),f=0,h=new h1(t.b);h.a<h.c.c.length;)s=Im(De(h),29),b[f++]=s.a.c.length;for(i=1,l=new Rn(t.b,2);i<d-1;i++)for(MK(l.b<l.d.gc()),w=new h1((e=Im(l.d.Xb(l.c=l.b++),29)).a),c=0,u=0,o=0;o<b[i+1];o++)if(m=Im(De(w),10),o==b[i+1]-1||neu(n,m,i+1,i)){for(a=b[i]-1,neu(n,m,i+1,i)&&(a=n.c.e[Im(Im(Im(CA(n.c.b,m.p),15).Xb(0),46).a,10).p]);u<=o;){if(!neu(n,v=Im(CA(e.a,u),10),i+1,i))for(p=Im(CA(n.c.b,v.p),15).Kc();p.Ob();)g=Im(p.Pb(),46),((r=n.c.e[Im(g.a,10).p])<c||r>a)&&Av(n.b,Im(g.b,17));++u}c=a}}}(n,t),k=null,j=null,p=null,v=null,qz(4,nfs),g=new Fq(4),Im(ntP(t,nFt),274).g){case 3:p=new na2(t,n.c.d,(xh(),nBx),(NR(),nB$)),g.c[g.c.length]=p;break;case 1:v=new na2(t,n.c.d,(xh(),nBD),(NR(),nB$)),g.c[g.c.length]=v;break;case 4:k=new na2(t,n.c.d,(xh(),nBx),(NR(),nBL)),g.c[g.c.length]=k;break;case 2:j=new na2(t,n.c.d,(xh(),nBD),(NR(),nBL)),g.c[g.c.length]=j;break;default:p=new na2(t,n.c.d,(xh(),nBx),(NR(),nB$)),v=new na2(t,n.c.d,nBD,nB$),k=new na2(t,n.c.d,nBx,nBL),j=new na2(t,n.c.d,nBD,nBL),g.c[g.c.length]=k,g.c[g.c.length]=j,g.c[g.c.length]=p,g.c[g.c.length]=v}for(r=new yZ(t,n.c),u=new h1(g);u.a<u.c.c.length;)(function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;for(u=new h1(n.a.b);u.a<u.c.c.length;)for(m=new h1((c=Im(De(u),29)).a);m.a<m.c.c.length;)v=Im(De(m),10),t.g[v.p]=v,t.a[v.p]=v,t.d[v.p]=0;for(o=n.a.b,t.c==(NR(),nB$)&&(o=Ti(o,152)?Fh(Im(o,152)):Ti(o,131)?Im(o,131).a:Ti(o,54)?new d5(o):new vT(o)),a=o.Kc();a.Ob();)for(c=Im(a.Pb(),29),b=-1,l=c.a,t.o==(xh(),nBD)&&(b=nhM,l=Ti(l,152)?Fh(Im(l,152)):Ti(l,131)?Im(l,131).a:Ti(l,54)?new d5(l):new vT(l)),k=l.Kc();k.Ob();)if(y=Im(k.Pb(),10),f=null,(f=t.c==nB$?Im(CA(n.b.f,y.p),15):Im(CA(n.b.b,y.p),15)).gc()>0){if(i=f.gc(),s=NU(nTv.Math.floor((i+1)/2))-1,r=NU(nTv.Math.ceil((i+1)/2))-1,t.o==nBD)for(h=r;h>=s;h--)t.a[y.p]==y&&(d=Im(f.Xb(h),46),w=Im(d.a,10),!v$(e,d.b)&&b>n.b.e[w.p]&&(t.a[w.p]=y,t.g[y.p]=t.g[w.p],t.a[y.p]=t.g[y.p],t.f[t.g[y.p].p]=(TX(),!!(gm(t.f[t.g[y.p].p])&y.k==(ntY(),nAW))),b=n.b.e[w.p]));else for(h=s;h<=r;h++)t.a[y.p]==y&&(p=Im(f.Xb(h),46),g=Im(p.a,10),!v$(e,p.b)&&b<n.b.e[g.p]&&(t.a[g.p]=y,t.g[y.p]=t.g[g.p],t.a[y.p]=t.g[y.p],t.f[t.g[y.p].p]=(TX(),!!(gm(t.f[t.g[y.p].p])&y.k==(ntY(),nAW))),b=n.b.e[g.p]))}})(r,c=Im(De(u),180),n.b),function(n){var t,e,i,r,c,a,u,o,h,f;for(o=new hx(new hN(niV(n)).a.vc().Kc());o.a.Ob();){for(i=Im(o.a.Pb(),42),h=0,f=0,h=(u=Im(i.cd(),10)).d.d,f=u.o.b+u.d.a,n.d[u.p]=0,t=u;(r=n.a[t.p])!=u;)e=function(n,t){var e,i;for(xK(),i=new OM(TD(Vq(n).a.Kc(),new s));nrc(i);)if((e=Im(K4(i),17)).d.i==t||e.c.i==t)return e;return null}(t,r),a=0,a=n.c==(NR(),nB$)?e.d.n.b+e.d.a.b-e.c.n.b-e.c.a.b:e.c.n.b+e.c.a.b-e.d.n.b-e.d.a.b,c=gy(n.d[t.p])+a,n.d[r.p]=c,h=nTv.Math.max(h,r.d.d-c),f=nTv.Math.max(f,c+r.o.b+r.d.a),t=r;t=u;do n.d[t.p]=gy(n.d[t.p])+h,t=n.a[t.p];while(t!=u)n.b[u.p]=h+f}}(c);for(b=new ZB(t,n.c),o=new h1(g);o.a<o.c.c.length;)!function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;for(i=new h1(n.a.b);i.a<i.c.c.length;)for(u=new h1(Im(De(i),29).a);u.a<u.c.c.length;)a=Im(De(u),10),t.j[a.p]=a,t.i[a.p]=t.o==(xh(),nBD)?nla:nlc;for(AT(n.c),c=n.a.b,t.c==(NR(),nB$)&&(c=Ti(c,152)?Fh(Im(c,152)):Ti(c,131)?Im(c,131).a:Ti(c,54)?new d5(c):new vT(c)),l=n.e,b=n.b,l.a=t,l.c=b,l.b.a.$b(),Lq(l.d),l.e.a.c=_f(nEX,nhA,1,0,5,1),mA(t.p,null),r=c.Kc();r.Ob();)for(o=Im(r.Pb(),29).a,t.o==(xh(),nBD)&&(o=Ti(o,152)?Fh(Im(o,152)):Ti(o,131)?Im(o,131).a:Ti(o,54)?new d5(o):new vT(o)),f=o.Kc();f.Ob();)h=Im(f.Pb(),10),t.g[h.p]==h&&function n(t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d;if(null==i.p[e.p]){o=!0,i.p[e.p]=0,u=e,d=i.o==(xh(),nBx)?nla:nlc;do c=t.b.e[u.p],a=u.c.a.c.length,i.o==nBx&&c>0||i.o==nBD&&c<a-1?(s=null,h=null,s=i.o==nBD?Im(CA(u.c.a,c+1),10):Im(CA(u.c.a,c-1),10),n(t,h=i.g[s.p],i),d=t.e.bg(d,e,u),i.j[e.p]==e&&(i.j[e.p]=i.j[h.p]),i.j[e.p]==i.j[h.p]?(w=EY(t.d,u,s),i.o==nBD?(r=gy(i.p[e.p]),l=gy(i.p[h.p])+gy(i.d[s.p])-s.d.d-w-u.d.a-u.o.b-gy(i.d[u.p]),o?(o=!1,i.p[e.p]=nTv.Math.min(l,d)):i.p[e.p]=nTv.Math.min(r,nTv.Math.min(l,d))):(r=gy(i.p[e.p]),l=gy(i.p[h.p])+gy(i.d[s.p])+s.o.b+s.d.a+w+u.d.d-gy(i.d[u.p]),o?(o=!1,i.p[e.p]=nTv.Math.max(l,d)):i.p[e.p]=nTv.Math.max(r,nTv.Math.max(l,d)))):(w=gy(Ss(ntP(t.a,(ns8(),nFJ)))),b=GP(t,i.j[e.p]),f=GP(t,i.j[h.p]),i.o==nBD?x7(b,f,gy(i.p[e.p])+gy(i.d[u.p])+u.o.b+u.d.a+w-(gy(i.p[h.p])+gy(i.d[s.p])-s.d.d)):x7(b,f,gy(i.p[e.p])+gy(i.d[u.p])-u.d.d-gy(i.p[h.p])-gy(i.d[s.p])-s.o.b-s.d.a-w))):d=t.e.bg(d,e,u),u=i.a[u.p];while(u!=e)Av(t.e.b,e)}}(n,h,t);for(function(n,t){var e,i,r,c,a,u,o;for(o=new vK,u=new hG(new hD(n.c).a.vc().Kc());u.a.Ob();)r=Im(u.a.Pb(),42),0==(c=Im(r.dd(),458)).b&&KL(o,c,o.c.b,o.c);for(;0!=o.b;)for(null==(c=Im(0==o.b?null:(MK(0!=o.b),HK(o,o.a.a)),458)).a&&(c.a=0),i=new h1(c.d);i.a<i.c.c.length;)null==(e=Im(De(i),654)).b.a?e.b.a=gy(c.a)+e.a:t.o==(xh(),nBx)?e.b.a=nTv.Math.min(gy(e.b.a),gy(c.a)+e.a):e.b.a=nTv.Math.max(gy(e.b.a),gy(c.a)+e.a),--e.b.b,0==e.b.b&&I2(o,e.b);for(a=new hG(new hD(n.c).a.vc().Kc());a.a.Ob();)r=Im(a.a.Pb(),42),c=Im(r.dd(),458),t.i[c.c.p]=c.a}(n,t),e=c.Kc();e.Ob();)for(f=new h1(Im(e.Pb(),29).a);f.a<f.c.c.length;)h=Im(De(f),10),t.p[h.p]=t.p[t.g[h.p].p],h==t.g[h.p]&&(s=gy(t.i[t.j[h.p].p]),(t.o==(xh(),nBD)&&s>nla||t.o==nBx&&s<nlc)&&(t.p[h.p]=gy(t.p[h.p])+s));n.e.cg()}(b,c=Im(De(o),180));if(e.n)for(h=new h1(g);h.a<h.c.c.length;)IJ(e,(c=Im(De(h),180))+" size is "+nrI(c));if(l=null,n.d&&nu7(t,f=function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j;for(u=0,p=t.c.length,r=new na2(n.a,e,null,null),j=_f(nYR,nlf,25,p,15,1),b=_f(nYR,nlf,25,p,15,1),l=_f(nYR,nlf,25,p,15,1),w=0;u<p;u++)b[u]=nhM,l[u]=nfp;for(o=0;o<p;o++)for(x4(o,t.c.length),i=Im(t.c[o],180),j[o]=nrI(i),j[w]>j[o]&&(w=o),h=new h1(n.a.b);h.a<h.c.c.length;)for(g=new h1(Im(De(h),29).a);g.a<g.c.c.length;)d=Im(De(g),10),y=gy(i.p[d.p])+gy(i.d[d.p]),b[o]=nTv.Math.min(b[o],y),l[o]=nTv.Math.max(l[o],y+d.o.b);for(s=0,k=_f(nYR,nlf,25,p,15,1);s<p;s++)(x4(s,t.c.length),Im(t.c[s],180)).o==(xh(),nBx)?k[s]=b[w]-b[s]:k[s]=l[w]-l[s];for(c=_f(nYR,nlf,25,p,15,1),f=new h1(n.a.b);f.a<f.c.c.length;)for(m=new h1(Im(De(f),29).a);m.a<m.c.c.length;){for(a=0,v=Im(De(m),10);a<p;a++)c[a]=gy((x4(a,t.c.length),Im(t.c[a],180)).p[v.p])+gy((x4(a,t.c.length),Im(t.c[a],180)).d[v.p])+k[a];c.sort(HY(E.prototype.te,E,[])),r.p[v.p]=(c[1]+c[2])/2,r.d[v.p]=0}return r}(n,g,n.c.d),e)&&(l=f),!l)for(h=new h1(g);h.a<h.c.c.length;)nu7(t,c=Im(De(h),180),e)&&(!l||nrI(l)>nrI(c))&&(l=c);for(l||(x4(0,g.c.length),l=Im(g.c[0],180)),d=new h1(t.b);d.a<d.c.c.length;)for(y=new h1(Im(De(d),29).a);y.a<y.c.c.length;)(m=Im(De(y),10)).n.b=gy(l.p[m.p])+gy(l.d[m.p]);for(e.n&&(IJ(e,"Chosen node placement: "+l),IJ(e,"Blocks: "+niV(l)),IJ(e,"Classes: "+function(n,t){var e,i,r,c,a;for(i=new R7,c=Kr(new gE(n.g)).a.ec().Kc();c.Ob();){if(!(r=Im(c.Pb(),10))){IJ(t,"There are no classes in a balanced layout.");break}(e=Im(BX(i,a=n.j[r.p]),15))||JR(i,a,e=new wn),e.Fc(r)}return i}(l,e)),IJ(e,"Marked edges: "+n.b)),a=new h1(g);a.a<a.c.c.length;)(c=Im(De(a),180)).g=null,c.b=null,c.a=null,c.d=null,c.j=null,c.i=null,c.p=null;(T=n.c).a=null,T.e=null,T.b.c=_f(nEX,nhA,1,0,5,1),T.f.c=_f(nEX,nhA,1,0,5,1),T.c=null,n.b.a.$b(),nee(e)}(this,Im(n,37),t)},nTm.d=!1,AY(np4,"BKNodePlacer",1407),nrr(1635,1,{},ch),nTm.d=0,AY(np4,"NeighborhoodInformation",1635),nrr(1636,1,nlX,lJ),nTm.ue=function(n,t){var e,i;return e=Im(n,46),i=Im(t,46),NU(I9(this.a.e[Im(e.a,10).p]-this.a.e[Im(i.a,10).p]))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(np4,"NeighborhoodInformation/NeighborComparator",1636),nrr(808,1,{}),AY(np4,"ThresholdStrategy",808),nrr(1763,808,{},ds),nTm.bg=function(n,t,e){return this.a.o==(xh(),nBD)?nlc:nla},nTm.cg=function(){},AY(np4,"ThresholdStrategy/NullThresholdStrategy",1763),nrr(579,1,{579:1},y2),nTm.c=!1,nTm.d=!1,AY(np4,"ThresholdStrategy/Postprocessable",579),nrr(1764,808,{},dh),nTm.bg=function(n,t,e){var i,r,c;return(r=t==e,i=this.a.a[e.p]==t,r||i)?(c=n,this.a.c,NR(),r&&(c=noj(this,t,!0)),isNaN(c)||isFinite(c)||!i||(c=noj(this,e,!1)),c):n},nTm.cg=function(){for(var n,t,e,i;0!=this.d.b;)(t=nuj(this,e=Im(0==(i=this.d).b?null:(MK(0!=i.b),HK(i,i.a.a)),579))).a&&(n=t.a,(gm(this.a.f[this.a.g[e.b.p].p])||KR(n)||n.c.i.c!=n.d.i.c)&&(nrP(this,e)||IE(this.e.a,e)));for(;0!=this.e.a.c.length;)nrP(this,Im(X2(this.e),579))},AY(np4,"ThresholdStrategy/SimpleThresholdStrategy",1764),nrr(635,1,{635:1,246:1,234:1},cf),nTm.Kf=function(){return zq(this)},nTm.Xf=function(){return zq(this)},AY(np5,"EdgeRouterFactory",635),nrr(1458,1,npV,sq),nTm.Yf=function(n){var t,e,i;return t=Im(n,37),i=Im(ntP(t,(nhu(),nxu)),21),e=new Rf,i.Hc((ncJ(),nNx))&&(zM(e,nBq),zM(e,nBz)),(i.Hc(nNR)||gm(So(ntP(t,(ns8(),nKK)))))&&(zM(e,nBz),i.Hc(nNK)&&zM(e,nBU)),i.Hc(nNN)&&zM(e,nBH),i.Hc(nN_)&&zM(e,nBX),i.Hc(nND)&&zM(e,nBG),i.Hc(nNA)&&zM(e,nB_),i.Hc(nNL)&&zM(e,nBB),e},nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d;ntc(t,"Orthogonal edge routing",1),s=gy(Ss(ntP(n,(ns8(),nFY)))),e=gy(Ss(ntP(n,nFH))),i=gy(Ss(ntP(n,nFz))),l=new AU(0,e),d=0,a=new Rn(n.b,0),u=null,h=null,o=null,f=null;do f=(h=a.b<a.d.gc()?(MK(a.b<a.d.gc()),Im(a.d.Xb(a.c=a.b++),29)):null)?h.a:null,u&&(noq(u,d),d+=u.c.a),w=nsi(l,n,o,f,u?d+i:d),r=!u||jg(o,(ncM(),nBY)),c=!h||jg(f,(ncM(),nBY)),w>0?(b=(w-1)*e,u&&(b+=i),h&&(b+=i),!(b<s)||r||c||(b=s),d+=b):r||c||(d+=s),u=h,o=f;while(h)n.f.a=d,nee(t)}(Im(n,37),t)},AY(np5,"OrthogonalEdgeRouter",1458),nrr(1451,1,npV,k2),nTm.Yf=function(n){var t,e,i;return t=Im(n,37),i=Im(ntP(t,(nhu(),nxu)),21),e=Eo(nBW),i.Hc((ncJ(),nNK))&&zM(e,nBJ),i.Hc(nN_)&&zM(e,nBZ),i.Hc(nNA)&&zM(e,nBV),i.Hc(nNL)&&zM(e,nBQ),e},nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a,u,o,h,f,l,b,w,d,g,p,v,m,y,k;for(ntc(e,"Polyline edge routing",1),p=gy(Ss(ntP(t,(ns8(),nK$)))),w=gy(Ss(ntP(t,nFY))),r=gy(Ss(ntP(t,nFH))),i=nTv.Math.min(1,r/w),y=0,o=0,0!=t.b.c.length&&(y=.4*i*(k=nrQ(Im(CA(t.b,0),29)))),u=new Rn(t.b,0);u.b<u.d.gc();){for(MK(u.b<u.d.gc()),(c=jg(a=Im(u.d.Xb(u.c=u.b++),29),nBY))&&y>0&&(y-=w),noq(a,y),f=0,b=new h1(a.a);b.a<b.c.c.length;){for(l=Im(De(b),10),h=0,g=new OM(TD(Vz(l).a.Kc(),new s));nrc(g);)v=x9((d=Im(K4(g),17)).c).b,m=x9(d.d).b,a!=d.d.i.c||KR(d)||(function(n,t,e){var i,r,c,a;c=n.c,a=n.d,r=(Xt(Um(xg(nCa,1),nhJ,8,0,[c.i.n,c.n,c.a])).b+Xt(Um(xg(nCa,1),nhJ,8,0,[a.i.n,a.n,a.a])).b)/2,i=null,i=c.j==(nsR(),nWA)?new kp(t+c.i.c.c.a+e,r):new kp(t-e,r),Mq(n.a,0,i)}(d,y,.4*i*nTv.Math.abs(v-m)),d.c.j!=(nsR(),nWJ)||(v=0,m=0)),h=nTv.Math.max(h,nTv.Math.abs(m-v));switch(l.k.g){case 0:case 4:case 1:case 3:case 5:!function(n,t,e,i){var r,c,a,u,o,h,f,l,b,w;for(f=e+t.c.c.a,w=new h1(t.j);w.a<w.c.c.length;){if(b=Im(De(w),11),r=Xt(Um(xg(nCa,1),nhJ,8,0,[b.i.n,b.n,b.a])),t.k==(ntY(),nAQ)&&(u=Im(ntP(b,(nhu(),nxE)),11),r.a=Xt(Um(xg(nCa,1),nhJ,8,0,[u.i.n,u.n,u.a])).a,t.n.a=r.a),a=new kp(0,r.b),b.j==(nsR(),nWA))a.a=f;else{if(b.j!=nWJ)continue;a.a=e}if(!(nTv.Math.abs(r.a-a.a)<=i)||function(n){var t,e;if(n.k==(ntY(),nAW)){for(e=new OM(TD(Vq(n).a.Kc(),new s));nrc(e);)if(!KR(t=Im(K4(e),17))&&t.c.i.c==t.d.i.c)return!0}return!1}(t))for(c=b.g.c.length+b.e.c.length>1,h=new Fm(b.b);EB(h.a)||EB(h.b);)l=(o=Im(EB(h.a)?De(h.a):De(h.b),17)).c==b?o.d:o.c,nTv.Math.abs(Xt(Um(xg(nCa,1),nhJ,8,0,[l.i.n,l.n,l.a])).b-a.b)>1&&function(n,t,e,i,r){var c,a;(KR(t)||t.c.i.c!=t.d.i.c)&&Gl(Xt(Um(xg(nCa,1),nhJ,8,0,[r.i.n,r.n,r.a])),e)||KR(t)||(t.c==r?Mq(t.a,0,new Ee(e)):I2(t.a,new Ee(e)),i&&!v$(n.a,e)&&((a=Im(ntP(t,(ns8(),nKV)),74))||(a=new dd,UU(t,nKV,a)),KL(a,c=new Ee(e),a.c.b,a.c),Av(n.a,c)))}(n,o,a,c,b)}}(n,l,y,p)}f=nTv.Math.max(f,h)}u.b<u.d.gc()&&(k=nrQ((MK(u.b<u.d.gc()),Im(u.d.Xb(u.c=u.b++),29))),f=nTv.Math.max(f,k),MK(u.b>0),u.a.Xb(u.c=--u.b)),o=.4*i*f,!c&&u.b<u.d.gc()&&(o+=w),y+=a.c.a+o}n.a.a.$b(),t.f.a=y,nee(e)}(this,Im(n,37),t)},AY(np5,"PolylineEdgeRouter",1451),nrr(1452,1,nbt,cl),nTm.Lb=function(n){return z9(Im(n,10))},nTm.Fb=function(n){return this===n},nTm.Mb=function(n){return z9(Im(n,10))},AY(np5,"PolylineEdgeRouter/1",1452),nrr(1809,1,nfw,cb),nTm.Mb=function(n){return Im(n,129).c==(FO(),nB1)},AY(np6,"HyperEdgeCycleDetector/lambda$0$Type",1809),nrr(1810,1,{},cw),nTm.Ge=function(n){return Im(n,129).d},AY(np6,"HyperEdgeCycleDetector/lambda$1$Type",1810),nrr(1811,1,nfw,cd),nTm.Mb=function(n){return Im(n,129).c==(FO(),nB1)},AY(np6,"HyperEdgeCycleDetector/lambda$2$Type",1811),nrr(1812,1,{},cg),nTm.Ge=function(n){return Im(n,129).d},AY(np6,"HyperEdgeCycleDetector/lambda$3$Type",1812),nrr(1813,1,{},cp),nTm.Ge=function(n){return Im(n,129).d},AY(np6,"HyperEdgeCycleDetector/lambda$4$Type",1813),nrr(1814,1,{},cv),nTm.Ge=function(n){return Im(n,129).d},AY(np6,"HyperEdgeCycleDetector/lambda$5$Type",1814),nrr(112,1,{35:1,112:1},z3),nTm.wd=function(n){var t;return t=Im(n,112),this.g-t.g},nTm.Fb=function(n){var t;return!!Ti(n,112)&&(t=Im(n,112),this.g==t.g)},nTm.Hb=function(){return this.g},nTm.Ib=function(){var n,t,e,i;for(n=new TV("{"),i=new h1(this.n);i.a<i.c.c.length;)null==(t=Zk((e=Im(De(i),11)).i))&&(t="n"+PE(e.i)),n.a+=""+t,i.a<i.c.c.length&&(n.a+=",");return n.a+="}",n.a},nTm.a=0,nTm.b=0,nTm.c=NaN,nTm.d=0,nTm.g=0,nTm.i=0,nTm.o=0,nTm.s=NaN,AY(np6,"HyperEdgeSegment",112),nrr(129,1,{129:1},x_),nTm.Ib=function(){var n;return this.a+"->"+this.b+" ("+(null!=(n=this.c).f?n.f:""+n.g)+")"},nTm.d=0,AY(np6,"HyperEdgeSegmentDependency",129),nrr(520,22,{3:1,35:1,22:1,520:1},y3);var nIF=qE(np6,"HyperEdgeSegmentDependency/DependencyType",520,nE2,function(){return FO(),Um(xg(nIF,1),nfh,520,0,[nB0,nB1])},function(n){return FO(),B5((Kp(),nB2),n)});nrr(1815,1,{},lY),AY(np6,"HyperEdgeSegmentSplitter",1815),nrr(1816,1,{},ph),nTm.a=0,nTm.b=0,AY(np6,"HyperEdgeSegmentSplitter/AreaRating",1816),nrr(329,1,{329:1},It),nTm.a=0,nTm.b=0,nTm.c=0,AY(np6,"HyperEdgeSegmentSplitter/FreeArea",329),nrr(1817,1,nlX,cS),nTm.ue=function(n,t){var e,i;return e=Im(n,112),i=Im(t,112),Vv(e.c-e.s,i.c-i.s)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(np6,"HyperEdgeSegmentSplitter/lambda$0$Type",1817),nrr(1818,1,nh1,LE),nTm.td=function(n){var t,e,i,r,c,a;t=this.a,e=this.d,i=this.c,r=this.b,a=function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(a=0,c=-1,u=-1;a<t.c.length&&(x4(a,t.c.length),!((r=Im(t.c[a],329)).c>n.c));a++)r.a>=n.s&&(c<0&&(c=a),u=a);return o=(n.s+n.c)/2,c>=0&&(o=((x4(i=function(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d;if(e<i)for(l=new z3(n.p),b=new z3(n.p),Gz(l.e,n.e),l.q=n.q,l.r=b,AH(l),Gz(b.j,n.j),b.r=l,AH(b),h=Im((f=new k_(l,b)).a,112),s=Im(f.b,112),x4(e,t.c.length),c=nc5(n,h,s,r=Im(t.c[e],329)),o=e+1;o<=i;o++)x4(o,t.c.length),u=nc5(n,h,s,a=Im(t.c[o],329)),w=r,d=c,(u.a<d.a||u.a==d.a&&(u.b<d.b||u.b==d.b&&a.b>w.b)?0:1)||(r=a,c=u);return e}(n,t,c,u),t.c.length),s=Im(t.c[i],329)).c+s.a)/2,x4(i,t.c.length),d=Im(t.c[i],329),Ff(t,i),d.b/2>=e&&(h=i,b=(g=(d.c+d.a)/2)-e,d.c<=g-e&&(f=new It(d.c,b),C4(t,h++,f)),(w=g+e)<=d.a&&(l=new It(w,d.a),xC(h,t.c.length),m$(t.c,h,l)))),o}(c=Im(n,112),i,r),IE(e,function(n,t){for(n.r=new z3(n.p),n.r.r=n,Gz(n.r.j,n.j),Lq(n.j),I2(n.j,t),I2(n.r.e,t),AH(n),AH(n.r);0!=n.f.c.length;)E0(Im(CA(n.f,0),129));for(;0!=n.k.c.length;)E0(Im(CA(n.k,0),129));return n.r}(c,a)),function(n,t,e){var i,r,c,a;for(c=t.q,a=t.r,new x_((FO(),nB1),t,c,1),new x_(nB1,c,a,1),r=new h1(e);r.a<r.c.c.length;)(i=Im(De(r),112))!=c&&i!=t&&i!=a&&(nom(n.a,i,t),nom(n.a,i,a))}(t,c,e)},nTm.b=0,AY(np6,"HyperEdgeSegmentSplitter/lambda$1$Type",1818),nrr(1819,1,{},cP),nTm.Kb=function(n){return new CL(null,new x6(Im(n,112).e,16))},AY(np6,"HyperEdgeSegmentSplitter/lambda$2$Type",1819),nrr(1820,1,{},cI),nTm.Kb=function(n){return new CL(null,new x6(Im(n,112).j,16))},AY(np6,"HyperEdgeSegmentSplitter/lambda$3$Type",1820),nrr(1821,1,{},cC),nTm.Fe=function(n){return gy(Ss(n))},AY(np6,"HyperEdgeSegmentSplitter/lambda$4$Type",1821),nrr(655,1,{},AU),nTm.a=0,nTm.b=0,nTm.c=0,AY(np6,"OrthogonalRoutingGenerator",655),nrr(1638,1,{},cO),nTm.Kb=function(n){return new CL(null,new x6(Im(n,112).e,16))},AY(np6,"OrthogonalRoutingGenerator/lambda$0$Type",1638),nrr(1639,1,{},cA),nTm.Kb=function(n){return new CL(null,new x6(Im(n,112).j,16))},AY(np6,"OrthogonalRoutingGenerator/lambda$1$Type",1639),nrr(661,1,{}),AY(np8,"BaseRoutingDirectionStrategy",661),nrr(1807,661,{},df),nTm.dg=function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d;if(!n.r||n.q)for(h=t+n.o*e,s=new h1(n.n);s.a<s.c.c.length;)for(o=Im(De(s),11),f=Xt(Um(xg(nCa,1),nhJ,8,0,[o.i.n,o.n,o.a])).a,u=new h1(o.g);u.a<u.c.c.length;)!KR(a=Im(De(u),17))&&(w=a.d,d=Xt(Um(xg(nCa,1),nhJ,8,0,[w.i.n,w.n,w.a])).a,nTv.Math.abs(f-d)>nww&&(c=h,r=n,i=new kp(f,c),I2(a.a,i),nul(this,a,r,i,!1),(l=n.r)&&(i=new kp(b=gy(Ss(J7(l.e,0))),c),I2(a.a,i),nul(this,a,r,i,!1),c=t+l.o*e,r=l,i=new kp(b,c),I2(a.a,i),nul(this,a,r,i,!1)),i=new kp(d,c),I2(a.a,i),nul(this,a,r,i,!1)))},nTm.eg=function(n){return n.i.n.a+n.n.a+n.a.a},nTm.fg=function(){return nsR(),nWV},nTm.gg=function(){return nsR(),nW$},AY(np8,"NorthToSouthRoutingStrategy",1807),nrr(1808,661,{},dl),nTm.dg=function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d;if(!n.r||n.q)for(h=t-n.o*e,s=new h1(n.n);s.a<s.c.c.length;)for(o=Im(De(s),11),f=Xt(Um(xg(nCa,1),nhJ,8,0,[o.i.n,o.n,o.a])).a,u=new h1(o.g);u.a<u.c.c.length;)!KR(a=Im(De(u),17))&&(w=a.d,d=Xt(Um(xg(nCa,1),nhJ,8,0,[w.i.n,w.n,w.a])).a,nTv.Math.abs(f-d)>nww&&(c=h,r=n,i=new kp(f,c),I2(a.a,i),nul(this,a,r,i,!1),(l=n.r)&&(i=new kp(b=gy(Ss(J7(l.e,0))),c),I2(a.a,i),nul(this,a,r,i,!1),c=t-l.o*e,r=l,i=new kp(b,c),I2(a.a,i),nul(this,a,r,i,!1)),i=new kp(d,c),I2(a.a,i),nul(this,a,r,i,!1)))},nTm.eg=function(n){return n.i.n.a+n.n.a+n.a.a},nTm.fg=function(){return nsR(),nW$},nTm.gg=function(){return nsR(),nWV},AY(np8,"SouthToNorthRoutingStrategy",1808),nrr(1806,661,{},db),nTm.dg=function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d;if(!n.r||n.q)for(h=t+n.o*e,s=new h1(n.n);s.a<s.c.c.length;)for(o=Im(De(s),11),f=Xt(Um(xg(nCa,1),nhJ,8,0,[o.i.n,o.n,o.a])).b,u=new h1(o.g);u.a<u.c.c.length;)!KR(a=Im(De(u),17))&&(w=a.d,d=Xt(Um(xg(nCa,1),nhJ,8,0,[w.i.n,w.n,w.a])).b,nTv.Math.abs(f-d)>nww&&(c=h,r=n,i=new kp(c,f),I2(a.a,i),nul(this,a,r,i,!0),(l=n.r)&&(i=new kp(c,b=gy(Ss(J7(l.e,0)))),I2(a.a,i),nul(this,a,r,i,!0),c=t+l.o*e,r=l,i=new kp(c,b),I2(a.a,i),nul(this,a,r,i,!0)),i=new kp(c,d),I2(a.a,i),nul(this,a,r,i,!0)))},nTm.eg=function(n){return n.i.n.b+n.n.b+n.a.b},nTm.fg=function(){return nsR(),nWA},nTm.gg=function(){return nsR(),nWJ},AY(np8,"WestToEastRoutingStrategy",1806),nrr(813,1,{},nu1),nTm.Ib=function(){return ntK(this.a)},nTm.b=0,nTm.c=!1,nTm.d=!1,nTm.f=0,AY(np7,"NubSpline",813),nrr(407,1,{407:1},ncO,Nx),AY(np7,"NubSpline/PolarCP",407),nrr(1453,1,npV,Zv),nTm.Yf=function(n){var t,e,i;return t=Im(n,37),zM(e=new Rf,nB3),(i=Im(ntP(t,(nhu(),nxu)),21)).Hc((ncJ(),nN_))&&zM(e,nB8),i.Hc(nNA)&&zM(e,nB4),i.Hc(nNK)&&zM(e,nB6),i.Hc(nNL)&&zM(e,nB5),e},nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a,u,o,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,I,C;if(ntc(e,"Spline edge routing",1),0==t.b.c.length){t.f.a=0,nee(e);return}v=gy(Ss(ntP(t,(ns8(),nFY)))),u=gy(Ss(ntP(t,nFz))),a=gy(Ss(ntP(t,nFH))),T=Im(ntP(t,nKx),336)==(XJ(),n_5),E=gy(Ss(ntP(t,nKD))),n.d=t,n.j.c=_f(nEX,nhA,1,0,5,1),n.a.c=_f(nEX,nhA,1,0,5,1),AT(n.k),f=jg((o=Im(CA(t.b,0),29)).a,(ncM(),nBY)),l=jg((d=Im(CA(t.b,t.b.c.length-1),29)).a,nBY),g=new h1(t.b),p=null,I=0;do{for(function(n,t,e){var i,r,c,a,u,o,s,h,f,l;if(n.e.a.$b(),n.f.a.$b(),n.c.c=_f(nEX,nhA,1,0,5,1),n.i.c=_f(nEX,nhA,1,0,5,1),n.g.a.$b(),t)for(a=new h1(t.a);a.a<a.c.c.length;)for(h=nen(c=Im(De(a),10),(nsR(),nWA)).Kc();h.Ob();)for(s=Im(h.Pb(),11),Av(n.e,s),r=new h1(s.g);r.a<r.c.c.length;)KR(i=Im(De(r),17))||(IE(n.c,i),JJ(n,i),((u=i.c.i.k)==(ntY(),nAV)||u==nAQ||u==nAU||u==nAz)&&IE(n.j,i),(f=(l=i.d).i.c)==e?Av(n.f,l):f==t?Av(n.e,l):Bh(n.c,i));if(e)for(a=new h1(e.a);a.a<a.c.c.length;){for(o=new h1((c=Im(De(a),10)).j);o.a<o.c.c.length;)for(r=new h1(Im(De(o),11).g);r.a<r.c.c.length;)KR(i=Im(De(r),17))&&Av(n.g,i);for(h=nen(c,(nsR(),nWJ)).Kc();h.Ob();)for(s=Im(h.Pb(),11),Av(n.f,s),r=new h1(s.g);r.a<r.c.c.length;)KR(i=Im(De(r),17))||(IE(n.c,i),JJ(n,i),((u=i.c.i.k)==(ntY(),nAV)||u==nAQ||u==nAU||u==nAz)&&IE(n.j,i),(f=(l=i.d).i.c)==e?Av(n.f,l):f==t?Av(n.e,l):Bh(n.c,i))}}(n,p,m=g.a<g.c.c.length?Im(De(g),29):null),function(n){var t,e,i;for(nsS(n,n.e,n.f,(ND(),nB9),!0,n.c,n.i),nsS(n,n.e,n.f,nB9,!1,n.c,n.i),nsS(n,n.e,n.f,nB7,!0,n.c,n.i),nsS(n,n.e,n.f,nB7,!1,n.c,n.i),function(n,t,e,i,r){var c,a,u,o,s,h,f;for(a=new h1(t);a.a<a.c.c.length;){if(o=(c=Im(De(a),17)).c,e.a._b(o))ND(),s=nB9;else if(i.a._b(o))ND(),s=nB7;else throw new gd("Source port must be in one of the port sets.").e;if(h=c.d,e.a._b(h))ND(),f=nB9;else if(i.a._b(h))ND(),f=nB7;else throw new gd("Target port must be in one of the port sets.").e;u=new neH(c,s,f),$J(n.b,c,u),r.c[r.c.length]=u}}(n,n.c,n.e,n.f,n.i),e=new Rn(n.i,0);e.b<e.d.gc();)for(MK(e.b<e.d.gc()),t=Im(e.d.Xb(e.c=e.b++),128),i=new Rn(n.i,e.b);i.b<i.d.gc();)MK(i.b<i.d.gc()),function(n,t){var e,i,r,c,a,u,o;if(!(n.g>t.f)&&!(t.g>n.f)){for(e=0,i=0,a=n.w.a.ec().Kc();a.Ob();)r=Im(a.Pb(),11),Wi(Xt(Um(xg(nCa,1),nhJ,8,0,[r.i.n,r.n,r.a])).b,t.g,t.f)&&++e;for(u=n.r.a.ec().Kc();u.Ob();)r=Im(u.Pb(),11),Wi(Xt(Um(xg(nCa,1),nhJ,8,0,[r.i.n,r.n,r.a])).b,t.g,t.f)&&--e;for(o=t.w.a.ec().Kc();o.Ob();)r=Im(o.Pb(),11),Wi(Xt(Um(xg(nCa,1),nhJ,8,0,[r.i.n,r.n,r.a])).b,n.g,n.f)&&++i;for(c=t.r.a.ec().Kc();c.Ob();)r=Im(c.Pb(),11),Wi(Xt(Um(xg(nCa,1),nhJ,8,0,[r.i.n,r.n,r.a])).b,n.g,n.f)&&--i;e<i?new FS(n,t,i-e):i<e?new FS(t,n,e-i):(new FS(t,n,0),new FS(n,t,0))}}(t,Im(i.d.Xb(i.c=i.b++),128));(function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P;for(M=new vK,j=new vK,g=-1,o=new h1(n);o.a<o.c.c.length;){for((a=Im(De(o),128)).s=g--,h=0,m=0,c=new h1(a.t);c.a<c.c.c.length;)m+=(i=Im(De(c),268)).c;for(r=new h1(a.i);r.a<r.c.c.length;)h+=(i=Im(De(r),268)).c;a.n=h,a.u=m,0==m?KL(j,a,j.c.b,j.c):0!=h||KL(M,a,M.c.b,M.c)}for(P=Kr(n),d=(f=n.c.length)+1,p=f-1,b=new wn;0!=P.a.gc();){for(;0!=j.b;)MK(0!=j.b),k=Im(HK(j,j.a.a),128),P.a.Bc(k),k.s=p--,nrW(k,M,j);for(;0!=M.b;)MK(0!=M.b),E=Im(HK(M,M.a.a),128),P.a.Bc(E),E.s=d++,nrW(E,M,j);for(w=nfp,s=P.a.ec().Kc();s.Ob();)(v=(a=Im(s.Pb(),128)).u-a.n)>=w&&(v>w&&(b.c=_f(nEX,nhA,1,0,5,1),w=v),b.c[b.c.length]=a);0!=b.c.length&&(l=Im(CA(b,Yk(t,b.c.length)),128),P.a.Bc(l),l.s=d++,nrW(l,M,j),b.c=_f(nEX,nhA,1,0,5,1))}for(y=n.c.length+1,u=new h1(n);u.a<u.c.c.length;)(a=Im(De(u),128)).s<f&&(a.s+=y);for(T=new h1(n);T.a<T.c.c.length;)for(e=new Rn((E=Im(De(T),128)).t,0);e.b<e.d.gc();)MK(e.b<e.d.gc()),S=(i=Im(e.d.Xb(e.c=e.b++),268)).b,E.s>S.s&&($I(e),Bh(S.i,i),i.c>0&&(i.a=S,IE(S.t,i),i.b=E,IE(E.i,i)))})(n.i,Im(ntP(n.d,(nhu(),nxN)),230)),function(n){var t,e,i,r,c,a,u,o,s;for(o=new vK,a=new vK,r=new h1(n);r.a<r.c.c.length;)(e=Im(De(r),128)).v=0,e.n=e.i.c.length,e.u=e.t.c.length,0==e.n&&KL(o,e,o.c.b,o.c),0==e.u&&0==e.r.a.gc()&&KL(a,e,a.c.b,a.c);for(c=-1;0!=o.b;)for(t=new h1((e=Im(Zq(o,0),128)).t);t.a<t.c.c.length;)(s=Im(De(t),268).b).v=nTv.Math.max(s.v,e.v+1),c=nTv.Math.max(c,s.v),--s.n,0==s.n&&KL(o,s,o.c.b,o.c);if(c>-1){for(i=Jz(a,0);i.b!=i.d.c;)(e=Im(RP(i),128)).v=c;for(;0!=a.b;)for(t=new h1((e=Im(Zq(a,0),128)).i);t.a<t.c.c.length;)0==(u=Im(De(t),268).a).r.a.gc()&&(u.v=nTv.Math.min(u.v,e.v-1),--u.u,0==u.u&&KL(a,u,a.c.b,a.c))}}(n.i)}(n),M=(C=function(n){var t;return jp((t=D9(n)).a,0)?(vU(),vU(),nM$):(vU(),new ML(t.b))}(Lg(Lb(new CL(null,new x6(n.i,16)),new cT),new cE))).a?C.b:0,P=0,y=I,b=!p||f&&p==o,w=!m||l&&m==d,M>0?(h=0,p&&(h+=u),h+=(M-1)*a,m&&(h+=u),T&&m&&(h=nTv.Math.max(h,function(n,t,e,i){var r,c,a,u,o,h,f,l;for(u=0,h=new h1(n.a);h.a<h.c.c.length;){for(o=Im(De(h),10),a=0,c=new OM(TD(VG(o).a.Kc(),new s));nrc(c);)f=x9((r=Im(K4(c),17)).c).b,l=x9(r.d).b,a=nTv.Math.max(a,nTv.Math.abs(l-f));u=nTv.Math.max(u,a)}return i*nTv.Math.min(1,t/e)*u}(m,a,v,E))),!(h<v)||b||w||(P=(v-h)/2,h=v),y+=h):b||w||(y+=v),m&&noq(m,y),j=new h1(n.i);j.a<j.c.c.length;)(k=Im(De(j),128)).a.c=I,k.a.b=y-I,k.F=P,k.p=!p;Uf(n.a,n.i),I=y,m&&(I+=m.c.a),p=m,b=w}while(m)for(r=new h1(n.j);r.a<r.c.c.length;)c=function(n,t){var e,i;i=new wn,e=t;do i.c[i.c.length]=e,e=Im($a(n.k,e),17);while(e)return i}(n,i=Im(De(r),17)),UU(i,(nhu(),nx_),c),S=function(n,t){var e,i,r,c,a;a=new wn,e=t;do(c=Im($a(n.b,e),128)).B=e.c,c.D=e.d,a.c[a.c.length]=c,e=Im($a(n.k,e),17);while(e)return x4(0,a.c.length),(i=Im(a.c[0],128)).j=!0,i.A=Im(i.d.a.ec().Kc().Pb(),17).c.i,(r=Im(CA(a,a.c.length-1),128)).q=!0,r.C=Im(r.d.a.ec().Kc().Pb(),17).d.i,a}(n,i),UU(i,nxH,S);t.f.a=I,n.d=null,nee(e)}(this,Im(n,37),t)},AY(np7,"SplineEdgeRouter",1453),nrr(268,1,{268:1},FS),nTm.Ib=function(){return this.a+" ->("+this.c+") "+this.b},nTm.c=0,AY(np7,"SplineEdgeRouter/Dependency",268),nrr(455,22,{3:1,35:1,22:1,455:1},y4);var nI_=qE(np7,"SplineEdgeRouter/SideToProcess",455,nE2,function(){return ND(),Um(xg(nI_,1),nfh,455,0,[nB9,nB7])},function(n){return ND(),B5((Kk(),nHn),n)});nrr(1454,1,nfw,cT),nTm.Mb=function(n){return ncS(),!Im(n,128).o},AY(np7,"SplineEdgeRouter/lambda$0$Type",1454),nrr(1455,1,{},cE),nTm.Ge=function(n){return ncS(),Im(n,128).v+1},AY(np7,"SplineEdgeRouter/lambda$1$Type",1455),nrr(1456,1,nh1,y5),nTm.td=function(n){var t,e,i;t=this.a,e=this.b,i=Im(n,46),$J(t.b,Im(i.b,17),e)},AY(np7,"SplineEdgeRouter/lambda$2$Type",1456),nrr(1457,1,nh1,y6),nTm.td=function(n){var t,e,i;t=this.a,e=this.b,i=Im(n,46),$J(t.b,Im(i.b,17),e)},AY(np7,"SplineEdgeRouter/lambda$3$Type",1457),nrr(128,1,{35:1,128:1},neH,noF),nTm.wd=function(n){var t;return t=Im(n,128),this.s-t.s},nTm.b=0,nTm.e=!1,nTm.f=0,nTm.g=0,nTm.j=!1,nTm.k=!1,nTm.n=0,nTm.o=!1,nTm.p=!1,nTm.q=!1,nTm.s=0,nTm.u=0,nTm.v=0,nTm.F=0,AY(np7,"SplineSegment",128),nrr(459,1,{459:1},cM),nTm.a=0,nTm.b=!1,nTm.c=!1,nTm.d=!1,nTm.e=!1,nTm.f=0,AY(np7,"SplineSegment/EdgeInformation",459),nrr(1234,1,{},cm),AY(nvr,nwc,1234),nrr(1235,1,nlX,cy),nTm.ue=function(n,t){var e,i,r,c,a;return e=Im(n,135),i=Im(t,135),0==(r=Im(ntP(i,(nrw(),nHU)),19).a-Im(ntP(e,nHU),19).a)?(c=S7(E1(Im(ntP(e,(noV(),nHb)),8)),Im(ntP(e,nHw),8)),a=S7(E1(Im(ntP(i,nHb),8)),Im(ntP(i,nHw),8)),Vv(c.a*c.b,a.a*a.b)):r},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nvr,nwa,1235),nrr(1233,1,{},pB),AY(nvr,"MrTree",1233),nrr(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},y8),nTm.Kf=function(){return nip(this)},nTm.Xf=function(){return nip(this)};var nIB=qE(nvr,"TreeLayoutPhases",393,nE2,function(){return Zx(),Um(xg(nIB,1),nfh,393,0,[nHt,nHe,nHi,nHr])},function(n){return Zx(),B5((_8(),nHc),n)});nrr(1130,209,nbU,S3),nTm.Ze=function(n,t){var e,i,r,c,a,u,o,h;for(gm(So(nrM(n,(nrw(),nHH))))||Nq(new fy((mo(),new gl(n)))),z5(a=new FP,n),UU(a,(noV(),nHE),n),function(n,t,e){var i,r,c,a,u;for(c=0,r=new Td((n.a||(n.a=new An(nCF,n,10,11)),n.a));r.e!=r.i.gc();)i=Im(J1(r),33),a="",0==(i.n||(i.n=new An(nCK,i,1,7)),i.n).i||(a=Im(HX((i.n||(i.n=new An(nCK,i,1,7)),i.n),0),137).a),z5(u=new Xk(c++,t,a),i),UU(u,(noV(),nHE),i),u.e.b=i.j+i.f/2,u.f.a=nTv.Math.max(i.g,1),u.e.a=i.i+i.g/2,u.f.b=nTv.Math.max(i.f,1),I2(t.b,u),neQ(e.f,i,u)}(n,a,u=new wt),function(n,t,e){var i,r,c,a,u,o,h;for(a=new Td((n.a||(n.a=new An(nCF,n,10,11)),n.a));a.e!=a.i.gc();)for(r=new OM(TD(nrZ(c=Im(J1(a),33)).a.Kc(),new s));nrc(r);)ni5(i=Im(K4(r),79))||ni5(i)||niM(i)||(o=Im(jh(Nj(e.f,c)),86),h=Im($a(e,ntr(Im(HX((i.c||(i.c=new Ph(nCA,i,5,8)),i.c),0),82))),86),o&&h&&(UU(u=new L3(o,h),(noV(),nHE),i),z5(u,i),I2(o.d,u),I2(h.b,u),I2(t.a,u)))}(n,a,u),c=a,r=function(n,t){var e,i,r,c,a,u,o;if(null==(o=So(ntP(t,(nrw(),nHW))))||($x(o),o)){for(function(n,t){var e,i,r,c,a;for(r=t.b.b,n.a=_f(nEZ,nwe,15,r,0,1),n.b=_f(nYN,nbf,25,r,16,1),a=Jz(t.b,0);a.b!=a.d.c;)c=Im(RP(a),86),n.a[c.g]=new vK;for(i=Jz(t.a,0);i.b!=i.d.c;)e=Im(RP(i),188),n.a[e.b.g].Fc(e),n.a[e.c.g].Fc(e)}(n,t),r=new wn,u=Jz(t.b,0);u.b!=u.d.c;)(e=function n(t,e,i){var r,c,a;if(!t.b[e.g]){for(t.b[e.g]=!0,(r=i)||(r=new FP),I2(r.b,e),a=t.a[e.g].Kc();a.Ob();)(c=Im(a.Pb(),188)).b!=e&&n(t,c.b,r),c.c!=e&&n(t,c.c,r),I2(r.a,c);return r}return null}(n,Im(RP(u),86),null))&&(z5(e,t),r.c[r.c.length]=e);if(n.a=null,n.b=null,r.c.length>1)for(i=new h1(r);i.a<i.c.c.length;)for(e=Im(De(i),135),c=0,a=Jz(e.b,0);a.b!=a.d.c;)Im(RP(a),86).g=c++;return r}return Fs(Um(xg(nIH,1),nwi,135,0,[t]))}(this.a,c),i=new h1(r);i.a<i.c.c.length;)e=Im(De(i),135),o=this.b,ntc(h=zt(t,1/r.c.length),"Tree layout",1),DY(o.b),Ak(o.b,(Zx(),nHt),nHt),Ak(o.b,nHe,nHe),Ak(o.b,nHi,nHi),Ak(o.b,nHr,nHr),o.a=noU(o.b,e),function(n,t,e){var i,r,c;if((r=e)||(r=new dB),ntc(r,"Layout",n.a.c.length),gm(So(ntP(t,(nrw(),nHR)))))for(vI(),i=0;i<n.a.c.length;i++)i++,pb(Xp(Im(CA(n.a,i),51)));for(c=new h1(n.a);c.a<c.c.c.length;)Im(De(c),51).pf(t,zt(r,1));nee(r)}(o,e,zt(h,1)),nee(h);!function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;for(i=Im(ntP(n,(noV(),nHE)),33),u=nhM,o=nhM,c=nfp,a=nfp,y=Jz(n.b,0);y.b!=y.d.c;)b=(v=Im(RP(y),86)).e,w=v.f,u=nTv.Math.min(u,b.a-w.a/2),o=nTv.Math.min(o,b.b-w.b/2),c=nTv.Math.max(c,b.a+w.a/2),a=nTv.Math.max(a,b.b+w.b/2);for(f=new kp((l=Im(nrM(i,(nrw(),nHq)),116)).b-u,l.d-o),m=Jz(n.b,0);m.b!=m.d.c;)Ti(h=ntP(v=Im(RP(m),86),nHE),239)&&Ef(r=Im(h,33),(s=S9(v.e,f)).a-r.g/2,s.b-r.f/2);for(p=Jz(n.a,0);p.b!=p.d.c;)g=Im(RP(p),188),(e=Im(ntP(g,nHE),79))&&(KL(t=g.a,d=new Ee(g.b.e),t.a,t.a.a),KL(t,k=new Ee(g.c.e),t.c.b,t.c),ntV(d,Im(J7(t,1),8),g.b.f),ntV(k,Im(J7(t,t.b-2),8),g.c.f),nuX(t,ncX(e,!0,!0)));nsB(i,c-u+(l.b+l.c),a-o+(l.d+l.a),!1,!1)}(c=function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P;if(1==n.c.length)return x4(0,n.c.length),Im(n.c[0],135);if(n.c.length<=0)return new FP;for(o=new h1(n);o.a<o.c.c.length;){for(a=Im(De(o),135),v=0,w=nhM,d=nhM,l=nfp,b=nfp,p=Jz(a.b,0);p.b!=p.d.c;)g=Im(RP(p),86),v+=Im(ntP(g,(nrw(),nHU)),19).a,w=nTv.Math.min(w,g.e.a),d=nTv.Math.min(d,g.e.b),l=nTv.Math.max(l,g.e.a+g.f.a),b=nTv.Math.max(b,g.e.b+g.f.b);UU(a,(nrw(),nHU),Va(v)),UU(a,(noV(),nHw),new kp(w,d)),UU(a,nHb,new kp(l,b))}for(LV(),E_(n,new cy),z5(y=new FP,(x4(0,n.c.length),Im(n.c[0],94))),f=0,M=0,s=new h1(n);s.a<s.c.c.length;)a=Im(De(s),135),k=S7(E1(Im(ntP(a,(noV(),nHb)),8)),Im(ntP(a,nHw),8)),f=nTv.Math.max(f,k.a),M+=k.a*k.b;for(f=nTv.Math.max(f,nTv.Math.sqrt(M)*gy(Ss(ntP(y,(nrw(),nHD))))),j=gy(Ss(ntP(y,nHV))),S=0,P=0,h=0,t=j,u=new h1(n);u.a<u.c.c.length;)a=Im(De(u),135),S+(k=S7(E1(Im(ntP(a,(noV(),nHb)),8)),Im(ntP(a,nHw),8))).a>f&&(S=0,P+=h+j,h=0),function(n,t,e,i){var r,c,a,u,o,s;for(S7(u=new kp(e,i),Im(ntP(t,(noV(),nHw)),8)),s=Jz(t.b,0);s.b!=s.d.c;)S9((o=Im(RP(s),86)).e,u),I2(n.b,o);for(a=Jz(t.a,0);a.b!=a.d.c;){for(r=Jz((c=Im(RP(a),188)).a,0);r.b!=r.d.c;)S9(Im(RP(r),8),u);I2(n.a,c)}}(y,a,S,P),t=nTv.Math.max(t,S+k.a),h=nTv.Math.max(h,k.b),S+=k.a+j;for(m=new wt,e=new wt,T=new h1(n);T.a<T.c.c.length;)for(i=gm(So(ntP(E=Im(De(T),135),(nha(),nUf)))),c=(E.q?E.q:nMm).vc().Kc();c.Ob();)Au(m,(r=Im(c.Pb(),42)).cd())?jf(Im(r.cd(),146).wg())!==jf(r.dd())&&(i&&Au(e,r.cd())?(vI(),Im(r.cd(),146).tg()):($J(m,Im(r.cd(),146),r.dd()),UU(y,Im(r.cd(),146),r.dd()),i&&$J(e,Im(r.cd(),146),r.dd()))):($J(m,Im(r.cd(),146),r.dd()),UU(y,Im(r.cd(),146),r.dd()));return y}(r))},AY(nvr,"TreeLayoutProvider",1130),nrr(1847,1,nh5,ck),nTm.Jc=function(n){KA(this,n)},nTm.Kc=function(){return LV(),vC(),nMk},AY(nvr,"TreeUtil/1",1847),nrr(1848,1,nh5,cj),nTm.Jc=function(n){KA(this,n)},nTm.Kc=function(){return LV(),vC(),nMk},AY(nvr,"TreeUtil/2",1848),nrr(502,134,{3:1,502:1,94:1,134:1}),nTm.g=0,AY(nvc,"TGraphElement",502),nrr(188,502,{3:1,188:1,502:1,94:1,134:1},L3),nTm.Ib=function(){return this.b&&this.c?Ds(this.b)+"->"+Ds(this.c):"e_"+Xg(this)},AY(nvc,"TEdge",188),nrr(135,134,{3:1,135:1,94:1,134:1},FP),nTm.Ib=function(){var n,t,e,i,r;for(r=null,i=Jz(this.b,0);i.b!=i.d.c;)r+=(null==(e=Im(RP(i),86)).c||0==e.c.length?"n_"+e.g:"n_"+e.c)+"\n";for(t=Jz(this.a,0);t.b!=t.d.c;)r+=((n=Im(RP(t),188)).b&&n.c?Ds(n.b)+"->"+Ds(n.c):"e_"+Xg(n))+"\n";return r};var nIH=AY(nvc,"TGraph",135);nrr(633,502,{3:1,502:1,633:1,94:1,134:1}),AY(nvc,"TShape",633),nrr(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},Xk),nTm.Ib=function(){return Ds(this)};var nIq=AY(nvc,"TNode",86);nrr(255,1,nh5,lZ),nTm.Jc=function(n){KA(this,n)},nTm.Kc=function(){return new l1(Jz(this.a.d,0))},AY(nvc,"TNode/2",255),nrr(358,1,nhF,l1),nTm.Nb=function(n){Ao(this,n)},nTm.Pb=function(){return Im(RP(this.a),188).c},nTm.Ob=function(){return px(this.a)},nTm.Qb=function(){HA(this.a)},AY(nvc,"TNode/2/1",358),nrr(1840,1,nw2,S2),nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a,u,o,s,h;for(ntc(e,"Processor compute fanout",1),AT(n.b),AT(n.a),u=null,c=Jz(t.b,0);!u&&c.b!=c.d.c;)gm(So(ntP(s=Im(RP(c),86),(noV(),nHC))))&&(u=s);for(KL(o=new vK,u,o.c.b,o.c),function n(t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;if(0!=e.b){for(b=new vK,u=null,w=null,r=NU(nTv.Math.floor(nTv.Math.log(e.b)*nTv.Math.LOG10E)+1),o=0,m=Jz(e,0);m.b!=m.d.c;)for(p=Im(RP(m),86),jf(w)!==jf(ntP(p,(noV(),nHv)))&&(w=Sh(ntP(p,nHv)),o=0),u=null!=w?w+Do(o++,r):Do(o++,r),UU(p,nHv,u),g=new l1(Jz(new lZ(p).a.d,0));px(g.a);)KL(b,d=Im(RP(g.a),188).c,b.c.b,b.c),UU(d,nHv,u);for(a=0,l=new wt;a<u.length-r;a++)for(v=Jz(e,0);v.b!=v.d.c;)i=(null==(s=MT(Sh(ntP(p=Im(RP(v),86),(noV(),nHv))),0,a+1))?jh(Nj(l.f,null)):mT(l.g,s))!=null?Im(null==s?jh(Nj(l.f,null)):mT(l.g,s),19).a+1:1,xp(l,s,Va(i));for(f=new XE(new hL(l).a);f.b;)h=HQ(f),c=Va(null!=$a(t.a,h.cd())?Im($a(t.a,h.cd()),19).a:0),xp(t.a,Sh(h.cd()),Va(Im(h.dd(),19).a+c.a)),(c=Im($a(t.b,h.cd()),19))&&!(c.a<Im(h.dd(),19).a)||xp(t.b,Sh(h.cd()),Im(h.dd(),19));n(t,b)}}(n,o),h=Jz(t.b,0);h.b!=h.d.c;)a=Sh(ntP(s=Im(RP(h),86),(noV(),nHv))),r=null!=Nz(n.b,a)?Im(Nz(n.b,a),19).a:0,UU(s,nHp,Va(r)),i=1+(null!=Nz(n.a,a)?Im(Nz(n.a,a),19).a:0),UU(s,nHd,Va(i));nee(e)}(this,Im(n,135),t)},AY(nva,"FanProcessor",1840),nrr(327,22,{3:1,35:1,22:1,327:1,234:1},y9),nTm.Kf=function(){switch(this.g){case 0:return new dG;case 1:return new S2;case 2:return new cN;case 3:return new c$;case 4:return new cD;case 5:return new cR;default:throw new gd(ndp+(null!=this.f?this.f:""+this.g)).e}};var nIG=qE(nva,ndv,327,nE2,function(){return neO(),Um(xg(nIG,1),nfh,327,0,[nHf,nHu,nHs,nHo,nHh,nHa])},function(n){return neO(),B5((qe(),nHl),n)});nrr(1843,1,nw2,c$),nTm.pf=function(n,t){!function(n,t,e){var i,r,c;for(ntc(e,"Processor determine the height for each level",1),n.a=0==t.b.b?1:t.b.b,r=null,i=Jz(t.b,0);!r&&i.b!=i.d.c;)gm(So(ntP(c=Im(RP(i),86),(noV(),nHC))))&&(r=c);r&&function n(t,e,i){var r,c,a,u,o,s;if(!RT(e)){for(ntc(s=zt(i,(Ti(e,14)?Im(e,14).gc():RK(e.Kc()))/t.a|0),nvu,1),o=new cL,u=0,a=e.Kc();a.Ob();)r=Im(a.Pb(),86),o=qO(Um(xg(nEJ,1),nhA,20,0,[o,new lZ(r)])),u<r.f.b&&(u=r.f.b);for(c=e.Kc();c.Ob();)UU(r=Im(c.Pb(),86),(noV(),nHk),u);nee(s),n(t,o,i)}}(n,Fs(Um(xg(nIq,1),nwi,86,0,[r])),e),nee(e)}(this,Im(n,135),t)},nTm.a=0,AY(nva,"LevelHeightProcessor",1843),nrr(1844,1,nh5,cL),nTm.Jc=function(n){KA(this,n)},nTm.Kc=function(){return LV(),vC(),nMk},AY(nva,"LevelHeightProcessor/1",1844),nrr(1841,1,nw2,cN),nTm.pf=function(n,t){!function(n,t,e){var i,r,c;for(ntc(e,"Processor set neighbors",1),n.a=0==t.b.b?1:t.b.b,r=null,i=Jz(t.b,0);!r&&i.b!=i.d.c;)gm(So(ntP(c=Im(RP(i),86),(noV(),nHC))))&&(r=c);r&&function n(t,e,i){var r,c,a,u,o;if(!RT(e)){for(ntc(o=zt(i,(Ti(e,14)?Im(e,14).gc():RK(e.Kc()))/t.a|0),nvu,1),u=new cx,a=null,c=e.Kc();c.Ob();)r=Im(c.Pb(),86),u=qO(Um(xg(nEJ,1),nhA,20,0,[u,new lZ(r)])),a&&(UU(a,(noV(),nHP),r),UU(r,nHm,a),_v(r)==_v(a)&&(UU(a,nHI,r),UU(r,nHy,a))),a=r;nee(o),n(t,u,i)}}(n,new lZ(r),e),nee(e)}(this,Im(n,135),t)},nTm.a=0,AY(nva,"NeighborsProcessor",1841),nrr(1842,1,nh5,cx),nTm.Jc=function(n){KA(this,n)},nTm.Kc=function(){return LV(),vC(),nMk},AY(nva,"NeighborsProcessor/1",1842),nrr(1845,1,nw2,cD),nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a;for(ntc(e,"Processor set coordinates",1),n.a=0==t.b.b?1:t.b.b,c=null,i=Jz(t.b,0);!c&&i.b!=i.d.c;)gm(So(ntP(a=Im(RP(i),86),(noV(),nHC))))&&(c=a,(r=a.e).a=Im(ntP(a,nHO),19).a,r.b=0);(function n(t,e,i){var r,c,a,u;if(0!=e.b){for(r=new vK,u=Jz(e,0);u.b!=u.d.c;)Gz(r,US(a=Im(RP(u),86))),(c=a.e).a=Im(ntP(a,(noV(),nHO)),19).a,c.b=Im(ntP(a,nHA),19).a;n(t,r,zt(i,r.b/t.a|0))}})(n,US(c),zt(e,1)),nee(e)}(this,Im(n,135),t)},nTm.a=0,AY(nva,"NodePositionProcessor",1845),nrr(1839,1,nw2,dG),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o;for(n.a.c=_f(nEX,nhA,1,0,5,1),i=Jz(t.b,0);i.b!=i.d.c;)0==(e=Im(RP(i),86)).b.b&&(UU(e,(noV(),nHC),(TX(),!0)),IE(n.a,e));switch(n.a.c.length){case 0:UU(r=new Xk(0,t,"DUMMY_ROOT"),(noV(),nHC),(TX(),!0)),UU(r,nHg,!0),I2(t.b,r);break;case 1:break;default:for(c=new Xk(0,t,"SUPER_ROOT"),u=new h1(n.a);u.a<u.c.c.length;)UU(o=new L3(c,a=Im(De(u),86)),(noV(),nHg),(TX(),!0)),I2(c.a.a,o),I2(c.d,o),I2(a.b,o),UU(a,nHC,!1);UU(c,(noV(),nHC),(TX(),!0)),UU(c,nHg,!0),I2(t.b,c)}}(this,Im(n,135))},AY(nva,"RootProcessor",1839),nrr(1846,1,nw2,cR),nTm.pf=function(n,t){!function(n){var t,e;for(e=Im(ntP(n,(noV(),nHS)),15).Kc();e.Ob();)I2((t=Im(e.Pb(),188)).b.d,t),I2(t.c.b,t)}(Im(n,135))},AY(nva,"Untreeifyer",1846),nrr(851,1,nbo,sB),nTm.Qe=function(n){V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nvs),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),nHx),(neT(),nzO)),nIz),VD((JH(),nzM))))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nvh),""),"Search Order"),"Which search order to use when computing a spanning tree."),nHL),nzO),nIU),VD(nzM)))),nsa((new s_,n))},AY(nvf,"MrTreeMetaDataProvider",851),nrr(994,1,nbo,s_),nTm.Qe=function(n){nsa(n)},AY(nvf,"MrTreeOptions",994),nrr(995,1,{},cK),nTm.$e=function(){return new S3},nTm._e=function(n){},AY(nvf,"MrTreeOptions/MrtreeFactory",995),nrr(480,22,{3:1,35:1,22:1,480:1},y7);var nIz=qE(nvf,"OrderWeighting",480,nE2,function(){return xf(),Um(xg(nIz,1),nfh,480,0,[nHJ,nHY])},function(n){return xf(),B5((KT(),nHZ),n)});nrr(425,22,{3:1,35:1,22:1,425:1},kn);var nIU=qE(nvf,"TreeifyingOrder",425,nE2,function(){return DN(),Um(xg(nIU,1),nfh,425,0,[nH0,nH1])},function(n){return DN(),B5((Kj(),nH2),n)});nrr(1459,1,npV,sA),nTm.Yf=function(n){return Im(n,135),nH3},nTm.pf=function(n,t){var e;e=Im(n,135),ntc(t,"DFS Treeifying phase",1),function(n,t){var e,i,r;for(r=t.b.b,n.a=new vK,n.b=_f(nYL,nfH,25,r,15,1),e=0,i=Jz(t.b,0);i.b!=i.d.c;)Im(RP(i),86).g=e++}(this,e),function(n,t){var e,i,r,c,a;for(a=Im(ntP(t,(nrw(),nHX)),425),c=Jz(t.b,0);c.b!=c.d.c;)if(r=Im(RP(c),86),0==n.b[r.g]){switch(a.g){case 0:!function n(t,e){var i,r,c;for(t.b[e.g]=1,r=Jz(e.d,0);r.b!=r.d.c;)c=(i=Im(RP(r),188)).c,1==t.b[c.g]?I2(t.a,i):2==t.b[c.g]?t.b[c.g]=1:n(t,c)}(n,r);break;case 1:!function(n,t){var e,i,r,c,a;KL(i=new vK,t,i.c.b,i.c);do for(MK(0!=i.b),e=Im(HK(i,i.a.a),86),n.b[e.g]=1,c=Jz(e.d,0);c.b!=c.d.c;)a=(r=Im(RP(c),188)).c,1==n.b[a.g]?I2(n.a,r):2==n.b[a.g]?n.b[a.g]=1:KL(i,a,i.c.b,i.c);while(0!=i.b)}(n,r)}n.b[r.g]=2}for(i=Jz(n.a,0);i.b!=i.d.c;)Qg((e=Im(RP(i),188)).b.d,e,!0),Qg(e.c.b,e,!0);UU(t,(noV(),nHS),n.a)}(this,e),this.a=null,this.b=null,nee(t)},AY("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1459),nrr(1460,1,npV,s$),nTm.Yf=function(n){return Im(n,135),nH4},nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a;for(ntc(e,"Processor arrange node",1),r=null,c=new vK,i=Jz(t.b,0);!r&&i.b!=i.d.c;)gm(So(ntP(a=Im(RP(i),86),(noV(),nHC))))&&(r=a);KL(c,r,c.c.b,c.c),function n(t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y;for(ntc(i,"Processor arrange level",1),f=0,LV(),GG(e,new bD((noV(),nHp))),a=e.b,o=Jz(e,e.b),h=!0;h&&o.b.b!=o.d.a;)p=Im(DK(o),86),0==Im(ntP(p,nHp),19).a?--a:h=!1;if(u=new P_(new x2(e,0,a)),s=new P_(new x2(e,a,e.b)),0==u.b)for(w=Jz(s,0);w.b!=w.d.c;)UU(Im(RP(w),86),nHT,Va(f++));else for(l=u.b,y=Jz(u,0);y.b!=y.d.c;){for(UU(m=Im(RP(y),86),nHT,Va(f++)),n(t,r=US(m),zt(i,1/l|0)),GG(r,$Y(new bD(nHT))),b=new vK,v=Jz(r,0);v.b!=v.d.c;)for(p=Im(RP(v),86),g=Jz(m.d,0);g.b!=g.d.c;)(d=Im(RP(g),188)).c==p&&KL(b,d,b.c.b,b.c);for(Lq(m.d),Gz(m.d,b),o=Jz(s,s.b),c=m.d.b,h=!0;0<c&&h&&o.b.b!=o.d.a;)p=Im(DK(o),86),0==Im(ntP(p,nHp),19).a?(UU(p,nHT,Va(f++)),--c,HA(o)):h=!1}nee(i)}(n,c,zt(e,1)),nee(e)}(this,Im(n,135),t)},AY("org.eclipse.elk.alg.mrtree.p2order","NodeOrderer",1460),nrr(1461,1,npV,sO),nTm.Yf=function(n){return Im(n,135),nH5},nTm.pf=function(n,t){!function(n,t,e){var i,r,c,a;for(ntc(e,"Processor order nodes",2),n.a=gy(Ss(ntP(t,(nrw(),nHV)))),r=new vK,a=Jz(t.b,0);a.b!=a.d.c;)gm(So(ntP(c=Im(RP(a),86),(noV(),nHC))))&&KL(r,c,r.c.b,r.c);MK(0!=r.b),function n(t,e){var i,r,c,a,u,o;if(UU(e,(noV(),nHj),0),c=Im(ntP(e,nHy),86),0==e.d.b)c?(u=gy(Ss(ntP(c,nHM)))+t.a+KX(c,e),UU(e,nHM,u)):UU(e,nHM,0);else{for(i=new l1(Jz(new lZ(e).a.d,0));px(i.a);)n(t,Im(RP(i.a),188).c);r=Im(Tt(new l1(Jz(new lZ(e).a.d,0))),86),a=(gy(Ss(ntP(Im(px((o=new l1(Jz(new lZ(e).a.d,0))).a)?x1(o):null,86),nHM)))+gy(Ss(ntP(r,nHM))))/2,c?(u=gy(Ss(ntP(c,nHM)))+t.a+KX(c,e),UU(e,nHM,u),UU(e,nHj,gy(Ss(ntP(e,nHM)))-a),function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(l=(s=Im(Tt(new l1(Jz(new lZ(t).a.d,0))),86))?Im(ntP(s,(noV(),nHm)),86):null,r=1;s&&l;){for(c=0,a=0,v=0,e=s,i=l;c<r;c++)e=_v(e),i=_v(i),v+=gy(Ss(ntP(e,(noV(),nHj)))),a+=gy(Ss(ntP(i,nHj)));if(p=gy(Ss(ntP(l,(noV(),nHM)))),g=gy(Ss(ntP(s,nHM))),h=KX(s,l),0<(f=p+a+n.a+h-g-v)){for(u=t,o=0;u&&u!=i;)++o,u=Im(ntP(u,nHy),86);if(!u)return;for(d=f/o,u=t;u!=i;)w=gy(Ss(ntP(u,nHM)))+f,UU(u,nHM,w),b=gy(Ss(ntP(u,nHj)))+f,UU(u,nHj,b),f-=d,u=Im(ntP(u,nHy),86)}++r,l=(s=0==s.d.b?function n(t,e){var i,r,c,a;if(0<(Ti(t,14)?Im(t,14).gc():RK(t.Kc()))){if(1<(c=e)){for(--c,a=new ck,r=t.Kc();r.Ob();)i=Im(r.Pb(),86),a=qO(Um(xg(nEJ,1),nhA,20,0,[a,new lZ(i)]));return n(a,c)}if(c<0){for(a=new cj,r=t.Kc();r.Ob();)i=Im(r.Pb(),86),a=qO(Um(xg(nEJ,1),nhA,20,0,[a,new lZ(i)]));if(0<(Ti(a,14)?Im(a,14).gc():RK(a.Kc())))return n(a,c)}}return Im(Tt(t.Kc()),86)}(new lZ(t),r):Im(Tt(new l1(Jz(new lZ(s).a.d,0))),86))?Im(ntP(s,nHm),86):null}}(t,e)):UU(e,nHM,a)}}(n,i=Im(r.a.a.c,86)),e.b||Gu(e,1),function n(t,e,i,r){var c,a;e&&(c=gy(Ss(ntP(e,(noV(),nHM))))+r,a=i+gy(Ss(ntP(e,nHk)))/2,UU(e,nHO,Va(CZ(zx(nTv.Math.round(c))))),UU(e,nHA,Va(CZ(zx(nTv.Math.round(a))))),0==e.d.b||n(t,Im(Tt(new l1(Jz(new lZ(e).a.d,0))),86),i+gy(Ss(ntP(e,nHk)))+t.a,r+gy(Ss(ntP(e,nHj)))),null!=ntP(e,nHI)&&n(t,Im(ntP(e,nHI),86),i,r))}(n,i,0-gy(Ss(ntP(i,(noV(),nHk))))/2,0),e.b||Gu(e,1),nee(e)}(this,Im(n,135),t)},nTm.a=0,AY("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1461),nrr(1462,1,npV,sL),nTm.Yf=function(n){return Im(n,135),nH6},nTm.pf=function(n,t){!function(n,t){var e,i;for(ntc(t,"Dull edge routing",1),i=Jz(n.b,0);i.b!=i.d.c;)for(e=Jz(Im(RP(i),86).d,0);e.b!=e.d.c;)Lq(Im(RP(e),188).a)}(Im(n,135),t)},AY("org.eclipse.elk.alg.mrtree.p4route","EdgeRouter",1462),nrr(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},kt),nTm.Kf=function(){return Qw(this)},nTm.Xf=function(){return Qw(this)};var nIX=qE(nvw,"RadialLayoutPhases",495,nE2,function(){return GL(),Um(xg(nIX,1),nfh,495,0,[nH9,nH7])},function(n){return GL(),B5((KE(),nqn),n)});nrr(1131,209,nbU,p_),nTm.Ze=function(n,t){var e,i,r;if(ntc(t,"Radial layout",neJ(this,n).c.length),gm(So(nrM(n,(ZD(),nqC))))||Nq(new fy((mo(),new gl(n)))),r=function(n){var t,e;for(e=new Td((n.a||(n.a=new An(nCF,n,10,11)),n.a));e.e!=e.i.gc();)if(!nrc(new OM(TD(nrY(t=Im(J1(e),33)).a.Kc(),new s))))return t;return null}(n),Yu(n,(Se(),nH8),r),!r)throw new gd("The given graph is not a tree!").e;for(0==(e=gy(Ss(nrM(n,nqN))))&&(e=function n(t){var e,i,r,c,a,u,o;for(u=0,i=new Td((t.a||(t.a=new An(nCF,t,10,11)),t.a));i.e!=i.i.gc();)o=(e=Im(J1(i),33)).g,c=e.f,r=nTv.Math.sqrt(o*o+c*c),u=nTv.Math.max(r,u),a=n(e),u=nTv.Math.max(a,u);return u}(n)),Yu(n,nqN,e),i=new h1(neJ(this,n));i.a<i.c.c.length;)Im(De(i),51).pf(n,zt(t,1));nee(t)},AY(nvw,"RadialLayoutProvider",1131),nrr(549,1,nlX,pF),nTm.ue=function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;return e=this.a,i=this.b,r=Im(n,33),c=Im(t,33),h=(o=Im(nrM(r,(nha(),nXc)),8)).a,l=o.b+e,(a=nTv.Math.atan2(l,h))<0&&(a+=nvd),(a+=i)>nvd&&(a-=nvd),f=(s=Im(nrM(c,nXc),8)).a,b=s.b+e,(u=nTv.Math.atan2(b,f))<0&&(u+=nvd),(u+=i)>nvd&&(u-=nvd),Ex(),qR(1e-10),1e-10>=nTv.Math.abs(a-u)||a==u||isNaN(a)&&isNaN(u)?0:a<u?-1:a>u?1:j1(isNaN(a),isNaN(u))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},nTm.a=0,nTm.b=0,AY(nvw,"RadialUtil/lambda$0$Type",549),nrr(1375,1,nw2,c_),nTm.pf=function(n,t){!function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;for(ntc(t,"Calculate Graph Size",1),t.n&&n&&Db(t,DQ(n),(XU(),nVd)),u=nwt,o=nwt,c=nvg,a=nvg,f=new Td((n.a||(n.a=new An(nCF,n,10,11)),n.a));f.e!=f.i.gc();)w=(s=Im(J1(f),33)).i,d=s.j,p=s.g,i=s.f,r=Im(nrM(s,(nha(),nUA)),142),u=nTv.Math.min(u,w-r.b),o=nTv.Math.min(o,d-r.d),c=nTv.Math.max(c,w+p+r.c),a=nTv.Math.max(a,d+i+r.a);for(l=new kp(u-(b=Im(nrM(n,(nha(),nUU)),116)).b,o-b.d),h=new Td((n.a||(n.a=new An(nCF,n,10,11)),n.a));h.e!=h.i.gc();)qh(s=Im(J1(h),33),s.i-l.a),qf(s,s.j-l.b);g=c-u+(b.b+b.c),e=a-o+(b.d+b.a),qs(n,g),qo(n,e),t.n&&n&&Db(t,DQ(n),(XU(),nVd))}(Im(n,33),t)},AY(nvp,"CalculateGraphSize",1375),nrr(442,22,{3:1,35:1,22:1,442:1,234:1},ke),nTm.Kf=function(){switch(this.g){case 0:return new cz;case 1:return new cF;case 2:return new c_;default:throw new gd(ndp+(null!=this.f?this.f:""+this.g)).e}};var nIW=qE(nvp,ndv,442,nE2,function(){return V0(),Um(xg(nIW,1),nfh,442,0,[nqi,nqt,nqe])},function(n){return V0(),B5((_n(),nqr),n)});nrr(645,1,{}),nTm.e=1,nTm.g=0,AY(nvv,"AbstractRadiusExtensionCompaction",645),nrr(1772,645,{},Sr),nTm.hg=function(n){var t,e,i,r,c,a,u,o,s,h,f;for(this.c=Im(nrM(n,(Se(),nH8)),33),h=this.c,this.f=h,this.d=YT(Im(nrM(n,(ZD(),nqx)),293)),(o=Im(nrM(n,nqE),19))&&(f=o.a,this.e=f),$x(u=Ss(nrM(n,(nha(),nXj)))),this.g=u,s=ncY(this.c),this.d&&this.d.lg(s),function(n,t){var e,i,r;for(i=new h1(t);i.a<i.c.c.length;)if(e=Im(De(i),33),niP(n.a,e,e),niP(n.b,e,e),0!=(r=ncY(e)).c.length)for(n.d&&n.d.lg(r),niP(n.a,e,(x4(0,r.c.length),Im(r.c[0],33))),niP(n.b,e,Im(CA(r,r.c.length-1),33));0!=UP(r).c.length;)r=UP(r),n.d&&n.d.lg(r),niP(n.a,e,(x4(0,r.c.length),Im(r.c[0],33))),niP(n.b,e,Im(CA(r,r.c.length-1),33))}(this,s),a=new gE(Um(xg(nCF,1),nvm,33,0,[this.c])),e=0;e<2;e++)for(t=0;t<s.c.length;t++)r=new gE(Um(xg(nCF,1),nvm,33,0,[(x4(t,s.c.length),Im(s.c[t],33))])),c=t<s.c.length-1?(x4(t+1,s.c.length),Im(s.c[t+1],33)):(x4(0,s.c.length),Im(s.c[0],33)),i=0==t?Im(CA(s,s.c.length-1),33):(x4(t-1,s.c.length),Im(s.c[t-1],33)),function n(t,e,i,r,c){var a,u,o;for(a=ncU(t,e,i,r,c),o=!1;!a;)nrA(t,c,!0),o=!0,a=ncU(t,e,i,r,c);o&&nrA(t,c,!1),0!=(u=UP(c)).c.length&&(t.d&&t.d.lg(u),n(t,c,i,r,u))}(this,(x4(t,s.c.length),Im(s.c[t],33),a),i,c,r)},AY(nvv,"AnnulusWedgeCompaction",1772),nrr(1374,1,nw2,cF),nTm.pf=function(n,t){var e;e=Im(n,33),ntc(t,"General Compactor",1),t.n&&e&&Db(t,DQ(e),(XU(),nVd)),(function(n){switch(n.g){case 1:return new cB;case 2:return new Sr;default:throw new gd(nvk+(null!=n.f?n.f:""+n.g)).e}})(Im(nrM(e,(ZD(),nqT)),380)).hg(e),t.n&&e&&Db(t,DQ(e),(XU(),nVd))},AY(nvv,"GeneralCompactor",1374),nrr(1771,645,{},cB),nTm.hg=function(n){var t,e,i,r,c;e=Im(nrM(n,(Se(),nH8)),33),this.f=e,this.b=YT(Im(nrM(n,(ZD(),nqx)),293)),(r=Im(nrM(n,nqE),19))&&(c=r.a,this.e=c),$x(i=Ss(nrM(n,(nha(),nXj)))),this.g=i,t=ncY(e),this.b&&this.b.lg(t),function n(t,e){var i,r,c;if(0!=e.c.length){for(i=ntO(t,e),c=!1;!i;)nrA(t,e,!0),c=!0,i=ntO(t,e);c&&nrA(t,e,!1),r=UP(e),t.b&&t.b.lg(r),t.a=Wg(t,(x4(0,e.c.length),Im(e.c[0],33))),n(t,r)}}(this,t)},nTm.a=0,AY(nvv,"RadialCompaction",1771),nrr(1779,1,{},cH),nTm.ig=function(n){var t,e,i,r,c,a;for(this.a=n,t=0,a=ncY(n),i=0,c=new h1(a);c.a<c.c.c.length;)for(r=Im(De(c),33),e=++i;e<a.c.length;e++)(function(n,t,e){var i,r,c,a,u,o,s,h,f,l;return h=n.a.i+n.a.g/2,f=n.a.i+n.a.g/2,a=new kp(t.i+t.g/2,t.j+t.f/2),(o=Im(nrM(t,(nha(),nXc)),8)).a=o.a+h,o.b=o.b+f,r=(a.b-o.b)/(a.a-o.a),i=a.b-r*a.a,u=new kp(e.i+e.g/2,e.j+e.f/2),(s=Im(nrM(e,nXc),8)).a=s.a+h,s.b=s.b+f,c=(u.b-s.b)/(u.a-s.a),l=(i-(u.b-c*u.a))/(c-r),(!(o.a<l)||!(a.a<l))&&(!(l<o.a)||!(l<a.a))&&(!(s.a<l)||!(u.a<l))&&(!(l<s.a)||!(l<u.a))})(this,r,(x4(e,a.c.length),Im(a.c[e],33)))&&(t+=1);return t},AY(nvy,"CrossingMinimizationPosition",1779),nrr(1777,1,{},cq),nTm.ig=function(n){var t,e,i,r,c,a,u,o,h,f,l,b,w;for(i=0,e=new OM(TD(nrZ(n).a.Kc(),new s));nrc(e);)t=Im(K4(e),79),h=(u=ntr(Im(HX((t.c||(t.c=new Ph(nCA,t,5,8)),t.c),0),82))).i+u.g/2,f=u.j+u.f/2,r=n.i+n.g/2,c=n.j+n.f/2,(l=new ps).a=h-r,l.b=f-c,nnc(a=new kp(l.a,l.b),n.g,n.f),l.a-=a.a,l.b-=a.b,r=h-l.a,c=f-l.b,nnc(o=new kp(l.a,l.b),u.g,u.f),l.a-=o.a,l.b-=o.b,h=r+l.a,f=c+l.b,b=h-r,w=f-c,i+=nTv.Math.sqrt(b*b+w*w);return i},AY(nvy,"EdgeLengthOptimization",1777),nrr(1778,1,{},cG),nTm.ig=function(n){var t,e,i,r,c,a,u,o,h,f,l;for(i=0,e=new OM(TD(nrZ(n).a.Kc(),new s));nrc(e);)t=Im(K4(e),79),o=(u=ntr(Im(HX((t.c||(t.c=new Ph(nCA,t,5,8)),t.c),0),82))).i+u.g/2,h=u.j+u.f/2,r=Im(nrM(u,(nha(),nXc)),8),c=n.i+r.a+n.g/2,a=n.j+r.b+n.f,f=o-c,l=h-a,i+=nTv.Math.sqrt(f*f+l*l);return i},AY(nvy,"EdgeLengthPositionOptimization",1778),nrr(1373,645,nw2,cz),nTm.pf=function(n,t){var e,i,r;e=Im(n,33),ntc(t,"Remove overlaps",1),t.n&&e&&Db(t,DQ(e),(XU(),nVd)),i=Im(nrM(e,(Se(),nH8)),33),this.f=i,this.a=YT(Im(nrM(e,(ZD(),nqx)),293)),$x(r=Ss(nrM(e,(nha(),nXj)))),this.g=r,function n(t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T;if(0!=i.c.length){for(w=new wn,b=new h1(i);b.a<b.c.c.length;)IE(w,new kp((l=Im(De(b),33)).i,l.j));for(r.n&&e&&Db(r,DQ(e),(XU(),nVd));ntF(t,i);)nrA(t,i,!1);for(r.n&&e&&Db(r,DQ(e),(XU(),nVd)),u=0,o=0,c=null,0!=i.c.length&&(x4(0,i.c.length),u=(c=Im(i.c[0],33)).i-(x4(0,w.c.length),Im(w.c[0],8)).a,o=c.j-(x4(0,w.c.length),Im(w.c[0],8)).b),a=nTv.Math.sqrt(u*u+o*o),f=WT(i);0!=f.a.gc();){for(h=f.a.ec().Kc();h.Ob();)s=Im(h.Pb(),33),g=(d=t.f).i+d.g/2,p=d.j+d.f/2,v=s.i+s.g/2,m=s.j+s.f/2,y=v-g,k=m-p,j=nTv.Math.sqrt(y*y+k*k),E=y/j,T=k/j,qh(s,s.i+E*a),qf(s,s.j+T*a);r.n&&e&&Db(r,DQ(e),(XU(),nVd)),f=WT(new PB(f))}t.a&&t.a.lg(new PB(f)),r.n&&e&&Db(r,DQ(e),(XU(),nVd)),n(t,e,new PB(f),r)}}(this,e,ncY(i),t),t.n&&e&&Db(t,DQ(e),(XU(),nVd))},AY("org.eclipse.elk.alg.radial.intermediate.overlaps","RadiusExtensionOverlapRemoval",1373),nrr(426,22,{3:1,35:1,22:1,426:1},ki);var nIV=qE(nvj,"AnnulusWedgeCriteria",426,nE2,function(){return _G(),Um(xg(nIV,1),nfh,426,0,[nqc,nqa])},function(n){return _G(),B5((KM(),nqu),n)});nrr(380,22,{3:1,35:1,22:1,380:1},kr);var nIQ=qE(nvj,nbY,380,nE2,function(){return XX(),Um(xg(nIQ,1),nfh,380,0,[nqo,nqs,nqh])},function(n){return XX(),B5((_t(),nqf),n)});nrr(852,1,nbo,sN),nTm.Qe=function(n){V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nvE),""),"Order ID"),"The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly."),Va(0)),(neT(),nz$)),nTa),VD((JH(),nzT))))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nvT),""),"Radius"),"The radius option can be used to set the initial radius for the radial layouter."),0),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nvM),""),"Compaction"),"With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately."),nqw),nzO),nIQ),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nvS),""),"Compaction Step Size"),"Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration."),Va(1)),nz$),nTa),VD(nzM)))),DW(n,nvS,nvM,null),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nvP),""),"Sorter"),"Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates."),nqy),nzO),nIY),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nvI),""),"Annulus Wedge Criteria"),"Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals."),nqj),nzO),nIV),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nvC),""),"Translation Optimization"),"Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized."),nqg),nzO),nIJ),VD(nzM)))),nsP((new sx,n))},AY(nvj,"RadialMetaDataProvider",852),nrr(996,1,nbo,sx),nTm.Qe=function(n){nsP(n)},AY(nvj,"RadialOptions",996),nrr(997,1,{},cU),nTm.$e=function(){return new p_},nTm._e=function(n){},AY(nvj,"RadialOptions/RadialFactory",997),nrr(340,22,{3:1,35:1,22:1,340:1},kc);var nIJ=qE(nvj,"RadialTranslationStrategy",340,nE2,function(){return Y6(),Um(xg(nIJ,1),nfh,340,0,[nqB,nqF,nq_,nqK])},function(n){return Y6(),B5((_7(),nqH),n)});nrr(293,22,{3:1,35:1,22:1,293:1},ka);var nIY=qE(nvj,"SortingStrategy",293,nE2,function(){return zg(),Um(xg(nIY,1),nfh,293,0,[nqG,nqz,nqq])},function(n){return zg(),B5((_i(),nqU),n)});nrr(1449,1,npV,cX),nTm.Yf=function(n){return Im(n,33),null},nTm.pf=function(n,t){var e;e=Im(n,33),ntc(t,"Eades radial",1),t.n&&e&&Db(t,DQ(e),(XU(),nVd)),this.d=Im(nrM(e,(Se(),nH8)),33),this.c=gy(Ss(nrM(e,(ZD(),nqN)))),this.e=YT(Im(nrM(e,nqx),293)),this.a=function(n){switch(n.g){case 0:return new cW;case 1:return new cV;default:throw new gd(nvk+(null!=n.f?n.f:""+n.g)).e}}(Im(nrM(e,nqR),426)),this.b=function(n){switch(n.g){case 1:return new cq;case 2:return new cG;case 3:return new cH;case 0:return null;default:throw new gd(nvk+(null!=n.f?n.f:""+n.g)).e}}(Im(nrM(e,nqO),340)),function(n){var t,e,i,r,c;if(i=0,r=nwt,n.b)for(t=0;t<360;t++)e=.017453292519943295*t,na4(n,n.d,0,0,nvd,e),(c=n.b.ig(n.d))<r&&(i=e,r=c);na4(n,n.d,0,0,nvd,i)}(this),t.n&&e&&Db(t,DQ(e),(XU(),nVd))},nTm.c=0,AY("org.eclipse.elk.alg.radial.p1position","EadesRadial",1449),nrr(1775,1,{},cW),nTm.jg=function(n){return function n(t){var e,i,r;if(i=0,0==(r=ncY(t)).c.length)return 1;for(e=new h1(r);e.a<e.c.c.length;)i+=n(Im(De(e),33));return i}(n)},AY(nvA,"AnnulusWedgeByLeafs",1775),nrr(1776,1,{},cV),nTm.jg=function(n){return function n(t,e){var i,r,c,a,u,o;for(u=ncY(e),c=e.f,o=e.g,a=nTv.Math.sqrt(c*c+o*o),r=0,i=new h1(u);i.a<i.c.c.length;)r+=n(t,Im(De(i),33));return nTv.Math.max(r,a)}(this,n)},AY(nvA,"AnnulusWedgeByNodeSpace",1776),nrr(1450,1,npV,cQ),nTm.Yf=function(n){return Im(n,33),null},nTm.pf=function(n,t){var e;e=Im(n,33),ntc(t,"Straight Line Edge Routing",1),t.n&&e&&Db(t,DQ(e),(XU(),nVd)),function n(t,e){var i,r,c,a,u,o,h,f,l,b,w;for(r=new OM(TD(nrZ(e).a.Kc(),new s));nrc(r);)Ti(HX(((i=Im(K4(r),79)).b||(i.b=new Ph(nCA,i,4,7)),i.b),0),186)||(h=ntr(Im(HX((i.c||(i.c=new Ph(nCA,i,5,8)),i.c),0),82)),ni5(i)||(u=e.i+e.g/2,o=e.j+e.f/2,l=h.i+h.g/2,b=h.j+h.f/2,(w=new ps).a=l-u,w.b=b-o,nnc(a=new kp(w.a,w.b),e.g,e.f),w.a-=a.a,w.b-=a.b,u=l-w.a,o=b-w.b,nnc(f=new kp(w.a,w.b),h.g,h.f),w.a-=f.a,w.b-=f.b,l=u+w.a,b=o+w.b,ql(c=ncX(i,!0,!0),u),qw(c,o),qu(c,l),qb(c,b),n(t,h)))}(this,Im(nrM(e,(Se(),nH8)),33)),t.n&&e&&Db(t,DQ(e),(XU(),nVd))},AY("org.eclipse.elk.alg.radial.p2routing","StraightLineEdgeRouter",1450),nrr(811,1,{},dU),nTm.kg=function(n){},nTm.lg=function(n){!function(n,t){t.ad(n.a)}(this,n)},AY(nv$,"IDSorter",811),nrr(1774,1,nlX,cJ),nTm.ue=function(n,t){var e,i,r,c;return e=Im(n,33),i=Im(t,33),r=Im(nrM(e,(ZD(),nqA)),19),c=Im(nrM(i,nqA),19),EG(r.a,c.a)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nv$,"IDSorter/lambda$0$Type",1774),nrr(1773,1,{},GD),nTm.kg=function(n){DX(this,n)},nTm.lg=function(n){n.dc()||(this.e||DX(this,function n(t){var e;return(e=nnR(t))?n(e):t}(Im(n.Xb(0),33))),function(n,t){t.ad(n.a)}(this.e,n))},AY(nv$,"PolarCoordinateSorter",1773),nrr(1136,209,nbU,cY),nTm.Ze=function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;if(ntc(t,"Rectangle Packing",1),t.n&&t.n&&n&&Db(t,DQ(n),(XU(),nVd)),e=gy(Ss(nrM(n,(nrG(),nq6)))),b=Im(nrM(n,nGf),381),g=gm(So(nrM(n,nGr))),m=gm(So(nrM(n,nGh))),h=gm(So(nrM(n,nGn))),y=Im(nrM(n,nGl),116),v=gy(Ss(nrM(n,nGg))),i=gm(So(nrM(n,nGd))),f=gm(So(nrM(n,nGt))),d=gm(So(nrM(n,nGe))),E=gy(Ss(nrM(n,nGp))),n.a||(n.a=new An(nCF,n,10,11)),GO(j=n.a),d){for(l=new wn,u=new Td(j);u.e!=u.i.gc();)_u(c=Im(J1(u),33),nq7)&&(l.c[l.c.length]=c);for(o=new h1(l);o.a<o.c.c.length;)BG(j,c=Im(De(o),33));for(LV(),E_(l,new cZ),s=new h1(l);s.a<s.c.c.length;)c=Im(De(s),33),k=Im(nrM(c,nq7),19).a,k=nTv.Math.min(k,j.i),Vf(j,k,c);for(w=0,a=new Td(j);a.e!=a.i.gc();)Yu(c=Im(J1(a),33),nq9,Va(w)),++w}p=neK(n),p.a-=y.b+y.c,p.b-=y.d+y.a,p.a,E<0||E<p.a?(r=function(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d;for(qh(a=Im(HX(t,0),33),0),qf(a,0),(l=new wn).c[l.c.length]=a,u=a,c=new Co(n.a,a.g,a.f,(ncr(),nGj)),b=1;b<t.i;b++)w=Im(HX(t,b),33),o=noh(n,nGm,w,u,c,l,e),s=noh(n,nGv,w,u,c,l,e),h=noh(n,nGk,w,u,c,l,e),f=noh(n,nGy,w,u,c,l,e),r=function(n,t,e,i,r,c,a,u){var o,s,h,f;switch(o=Fs(Um(xg(nI0,1),nhA,220,0,[t,e,i,r])),f=null,n.b.g){case 1:f=Fs(Um(xg(nIZ,1),nhA,526,0,[new c2,new c1,new c0]));break;case 0:f=Fs(Um(xg(nIZ,1),nhA,526,0,[new c0,new c1,new c2]));break;case 2:f=Fs(Um(xg(nIZ,1),nhA,526,0,[new c1,new c2,new c0]))}for(h=new h1(f);h.a<h.c.c.length;)s=Im(De(h),526),o.c.length>1&&(o=s.mg(o,n.a,u));return 1==o.c.length?Im(CA(o,o.c.length-1),220):2==o.c.length?function(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;return(c=n.f,f=t.f,a=c==(ncr(),nGv)||c==nGy,l=f==nGv||f==nGy,u=c==nGm||c==nGk,b=f==nGm||f==nGk,o=c==nGm||c==nGv,w=f==nGm||f==nGv,a&&l)?n.f==nGy?n:t:u&&b?n.f==nGk?n:t:o&&w?(c==nGm?(h=n,s=t):(h=t,s=n),d=e.j+e.f,g=h.e+i.f,p=nTv.Math.max(d,g)-nTv.Math.min(e.j,h.e),r=(h.d+i.g-e.i)*p,v=e.i+e.g,m=s.d+i.g,r<=(nTv.Math.max(v,m)-nTv.Math.min(e.i,s.d))*(s.e+i.f-e.j)?n.f==nGm?n:t:n.f==nGv?n:t):n}((x4(0,o.c.length),Im(o.c[0],220)),(x4(1,o.c.length),Im(o.c[1],220)),a,c):null}(n,o,s,h,f,w,u,i),qh(w,r.d),qf(w,r.e),d=nGj,r.f=d,c=r,u=w,l.c[l.c.length]=w;return c}(new Ie(e,b,g),j,v,y),t.n&&t.n&&n&&Db(t,DQ(n),(XU(),nVd))):r=new Co(e,E,0,(ncr(),nGj)),p.a+=y.b+y.c,p.b+=y.d+y.a,m||(GO(j),r=function(n,t,e,i,r,c,a){var u,o,s,h,f,l,b,w,d,g,p,v;if(g=function(n,t,e){var i,r,c,a,u,o,s,h;for(h=new wn,s=new DI(0,e),c=0,qN(s,new Xj(0,0,s,e)),r=0,o=new Td(n);o.e!=o.i.gc();)u=Im(J1(o),33),i=Im(CA(s.a,s.a.c.length-1),187),r+u.g+(0==Im(CA(s.a,0),187).b.c.length?0:e)>t&&(r=0,c+=s.b+e,h.c[h.c.length]=s,i=new Xj(0,(s=new DI(c,e)).f,s,e),qN(s,i),r=0),0==i.b.c.length||u.f>=i.o&&u.f<=i.f||.5*i.a<=u.f&&1.5*i.a>=u.f?VW(i,u):(a=new Xj(i.s+i.r+e,s.f,s,e),qN(s,a),VW(a,u)),r=u.i+u.g;return h.c[h.c.length]=s,h}(t,e,n.g),r.n&&r.n&&c&&Db(r,DQ(c),(XU(),nVd)),n.b)for(d=0;d<g.c.length;d++)x4(d,g.c.length),h=Im(g.c[d],200),0!=d&&(x4(d-1,g.c.length),We(h,(l=Im(g.c[d-1],200)).f+l.b+n.g)),function(n,t,e,i){var r,c,a,u,o,s,h,f,l,b;for(f=!1,s=n+1,x4(n,t.c.length),a=(h=Im(t.c[n],200)).a,u=null,c=0;c<h.a.c.length;c++)if(x4(c,a.c.length),!(r=Im(a.c[c],187)).c){if(0==r.b.c.length){vI(),Z3(h,r),--c,f=!0;continue}if(r.k||(u&&Za(u),YM(r,(u=new N1(u?u.e+u.d+i:0,h.f,i)).e+u.d,h.f),IE(h.d,u),zh(u,r),r.k=!0),o=null,b=null,c<h.a.c.length-1?b=Im(CA(h.a,c+1),187):s<t.c.length&&0!=(x4(s,t.c.length),Im(t.c[s],200)).a.c.length&&(b=Im(CA((x4(s,t.c.length),Im(t.c[s],200)).a,0),187)),l=!1,(o=b)&&(l=!WY(o.j,h)),o){if(0==o.b.c.length){Z3(h,o);break}if(_L(r,e-r.s),Za(r.q),f|=function(n,t,e,i,r){var c,a;for(a=!1,c=Im(CA(e.b,0),33);function(n,t,e,i,r){var c,a;if(e.f>=t.o&&e.f<=t.f||.5*t.a<=e.f&&1.5*t.a>=e.f){if((c=Im(CA(t.n,t.n.c.length-1),211)).e+c.d+e.g+r<=i&&(Im(CA(t.n,t.n.c.length-1),211).f-n.f+e.f<=n.b||1==n.a.c.length))return VW(t,e),!0;if(t.s+e.g<=i&&(t.t+t.d+e.f+r<=n.b||1==n.a.c.length))return IE(t.b,e),a=Im(CA(t.n,t.n.c.length-1),211),IE(t.n,new NZ(t.s,a.f+a.a+t.i,t.i)),YJ(Im(CA(t.n,t.n.c.length-1),211),e),nuB(t,e),!0}return!1}(n,t,c,i,r)&&(a=!0,function(n,t){var e,i;for(Bh(n.b,t),i=new h1(n.n);i.a<i.c.c.length;)if(-1!=Bb((e=Im(De(i),211)).c,t,0)){Bh(e.c,t),function(n){var t,e,i,r;for(r=0,t=0,i=new h1(n.c);i.a<i.c.c.length;)qh(e=Im(De(i),33),n.e+r),qf(e,n.f),r+=e.g+n.b,t=nTv.Math.max(t,e.f+n.b);n.d=r-n.b,n.a=t-n.b}(e),0==e.c.c.length&&Bh(n.n,e);break}(function(n){var t,e,i,r,c,a,u,o;for(i=0,e=0,o=new vK,t=0,u=new h1(n.n);u.a<u.c.c.length;)0==(a=Im(De(u),211)).c.c.length?KL(o,a,o.c.b,o.c):(i=nTv.Math.max(i,a.d),e+=a.a+(t>0?n.i:0)),++t;for(function(n,t){var e;for($x(t),e=new h1(n);e.a<e.c.c.length;)Qg(t,De(e),!1)&&AE(e)}(n.n,o),n.d=e,n.r=i,n.g=0,n.f=0,n.e=0,n.o=nlc,n.p=nlc,c=new h1(n.b);c.a<c.c.c.length;)r=Im(De(c),33),n.p=nTv.Math.min(n.p,r.g),n.g=nTv.Math.max(n.g,r.g),n.f=nTv.Math.max(n.f,r.f),n.o=nTv.Math.min(n.o,r.f),n.e+=r.f+n.i;n.a=n.e/n.b.c.length-n.i*((n.b.c.length-1)/n.b.c.length),ZE(n.j)})(n)}(e,c),0!=e.b.c.length);)c=Im(CA(e.b,0),33);return 0==e.b.c.length&&Z3(e.j,e),a&&Za(t.q),a}(h,r,o,e,i),0==o.b.c.length)for(Z3((x4(s,t.c.length),Im(t.c[s],200)),o),o=null;t.c.length>s&&0==(x4(s,t.c.length),Im(t.c[s],200)).a.c.length;)Bh(t,(x4(s,t.c.length),t.c[s]));if(!o){--c;continue}if(function(n,t,e,i,r,c,a,u){var o,s,h;return h=!1,s=c-e.s,o=e.t-t.f+nob(e,s,!1).a,!(i.g+u>s)&&(o+u+nob(i,s,!1).a<=t.b&&(_L(e,c-e.s),e.c=!0,_L(i,c-e.s),YM(i,e.s,e.t+e.d+u),i.k=!0,zh(e.q,i),h=!0,r&&(qN(t,i),i.j=t,n.c.length>a&&(Z3((x4(a,n.c.length),Im(n.c[a],200)),i),0==(x4(a,n.c.length),Im(n.c[a],200)).a.c.length&&Ff(n,a)))),h)}(t,h,r,o,l,e,s,i)){f=!0;continue}if(l){if(function(n,t,e,i,r,c,a){var u,o,s,h,f;return h=!1,u=nch(e.q,t.f+t.b-e.q.f),!((f=r-(e.q.e+u-a))<i.g)&&(o=c==n.c.length-1&&f>=(x4(c,n.c.length),Im(n.c[c],200)).e,(!((s=nob(i,f,!1).a)>t.b)||!!o)&&((o||s<=t.b)&&(o&&s>t.b?(e.d=s,_L(e,net(e,s))):(nnD(e.q,u),e.c=!0),_L(i,r-(e.s+e.r)),YM(i,e.q.e+e.q.d,t.f),qN(t,i),n.c.length>c&&(Z3((x4(c,n.c.length),Im(n.c[c],200)),i),0==(x4(c,n.c.length),Im(n.c[c],200)).a.c.length&&Ff(n,c)),h=!0),h))}(t,h,r,o,e,s,i)){f=!0;continue}if(Wd(h,r)){r.c=!0,f=!0;continue}}else if(Wd(h,r)){r.c=!0,f=!0;continue}if(f)continue}if(Wd(h,r)){r.c=!0,f=!0,o&&(o.k=!1);continue}Za(r.q)}}(d,g,e,n.g),function(n,t){var e,i,r,c,a;for(i=0,r=0,e=0,a=new h1(t.d);a.a<a.c.c.length;)Za(c=Im(De(a),443)),i=nTv.Math.max(i,c.b),r+=c.d+(e>0?n.g:0),++e;t.b=i,t.e=r}(n,h),r.n&&c&&Db(r,DQ(c),(XU(),nVd));else for(w=new h1(g);w.a<w.c.c.length;)for(s=new h1((b=Im(De(w),200)).a);s.a<s.c.c.length;)zh(p=new N1((o=Im(De(s),187)).s,o.t,n.g),o),IE(b.d,p);return function(n,t){var e,i,r,c,a;for(i=0,r=0,e=0,a=new h1(t);a.a<a.c.c.length;)c=Im(De(a),200),i=nTv.Math.max(i,c.e),r+=c.b+(e>0?n.g:0),++e;n.c=r,n.d=i}(n,g),r.n&&r.n&&c&&Db(r,DQ(c),(XU(),nVd)),v=nTv.Math.max(n.d,i.a-(a.b+a.c)),u=(f=nTv.Math.max(n.c,i.b-(a.d+a.a)))-n.c,n.e&&n.f&&(v/f<n.a?v=f*n.a:u+=v/n.a-f),n.e&&function(n,t,e){var i,r,c,a;for(i=e/n.c.length,r=0,a=new h1(n);a.a<a.c.c.length;)We(c=Im(De(a),200),c.f+i*r),function(n,t,e){var i,r,c,a,u;for(r=(t-n.e)/n.d.c.length,c=0,u=new h1(n.d);u.a<u.c.c.length;)a=Im(De(u),443),i=n.b-a.b+e,QZ(a,a.e+c*r,a.f),function(n,t,e){var i,r,c,a;for(a=0,i=e/n.a.c.length,c=new h1(n.a);c.a<c.c.c.length;)YM(r=Im(De(c),187),r.s,r.t+a*i),function(n,t,e){var i,r,c,a;for(a=n.r+t,n.r+=t,n.d+=e,i=e/n.n.c.length,r=0,c=new h1(n.n);c.a<c.c.c.length;)(function(n,t,e,i){var r,c,a,u,o,s,h,f;for(r=(t-n.d)/n.c.c.length,c=0,n.a+=e,n.d=t,f=new h1(n.c);f.a<f.c.c.length;)s=(h=Im(De(f),33)).g,o=h.f,qh(h,h.i+c*r),qf(h,h.j+i*e),qs(h,h.g+r),qo(h,n.a),++c,u=h.g,a=h.f,neG(h,new kp(u,a),new kp(s,o))})(Im(De(c),211),a,i,r),++r}(r,n.d-r.r+t,i),++a}(a,r,i),++c}(c,t,i),++r}(g,v,u),r.n&&r.n&&c&&Db(r,DQ(c),(XU(),nVd)),new Co(n.a,v,n.c+u,(ncr(),nGj))}(new RL(e,h,f,i,v),j,nTv.Math.max(p.a,r.c),p,t,n,y)),function(n,t){var e,i;for(i=new Td(n);i.e!=i.i.gc();)Ef(e=Im(J1(i),33),e.i+t.b,e.j+t.d)}(j,y),nsB(n,r.c+(y.b+y.c),r.b+(y.d+y.a),!1,!0),gm(So(nrM(n,nGs)))||Nq(new fy((mo(),new gl(n)))),t.n&&t.n&&n&&Db(t,DQ(n),(XU(),nVd)),nee(t)},AY(nvD,"RectPackingLayoutProvider",1136),nrr(1137,1,nlX,cZ),nTm.ue=function(n,t){var e,i,r,c;return e=Im(n,33),i=Im(t,33),(r=Im(nrM(e,(nrG(),nq7)),19).a)==(c=Im(nrM(i,nq7),19).a)?-1:r<c?-1:r>c?1:0},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nvD,"RectPackingLayoutProvider/lambda$0$Type",1137),nrr(1256,1,{},Ie),nTm.a=0,nTm.c=!1,AY(nvR,"AreaApproximation",1256);var nIZ=Cw(nvR,"BestCandidateFilter");nrr(638,1,{526:1},c1),nTm.mg=function(n,t,e){var i,r,c,a,u,o;for(o=new wn,c=nlc,u=new h1(n);u.a<u.c.c.length;)a=Im(De(u),220),c=nTv.Math.min(c,(a.c+(e.b+e.c))*(a.b+(e.d+e.a)));for(r=new h1(n);r.a<r.c.c.length;)((i=Im(De(r),220)).c+(e.b+e.c))*(i.b+(e.d+e.a))==c&&(o.c[o.c.length]=i);return o},AY(nvR,"AreaFilter",638),nrr(639,1,{526:1},c0),nTm.mg=function(n,t,e){var i,r,c,a,u,o;for(u=new wn,o=nlc,a=new h1(n);a.a<a.c.c.length;)c=Im(De(a),220),o=nTv.Math.min(o,nTv.Math.abs((c.c+(e.b+e.c))/(c.b+(e.d+e.a))-t));for(r=new h1(n);r.a<r.c.c.length;)i=Im(De(r),220),nTv.Math.abs((i.c+(e.b+e.c))/(i.b+(e.d+e.a))-t)==o&&(u.c[u.c.length]=i);return u},AY(nvR,"AspectRatioFilter",639),nrr(637,1,{526:1},c2),nTm.mg=function(n,t,e){var i,r,c,a,u,o;for(o=new wn,c=nla,u=new h1(n);u.a<u.c.c.length;)a=Im(De(u),220),c=nTv.Math.max(c,CK(a.c+(e.b+e.c),a.b+(e.d+e.a),a.a));for(r=new h1(n);r.a<r.c.c.length;)CK((i=Im(De(r),220)).c+(e.b+e.c),i.b+(e.d+e.a),i.a)==c&&(o.c[o.c.length]=i);return o},AY(nvR,"ScaleMeasureFilter",637),nrr(381,22,{3:1,35:1,22:1,381:1},ku);var nI1=qE(nvK,"OptimizationGoal",381,nE2,function(){return VZ(),Um(xg(nI1,1),nfh,381,0,[nqW,nqV,nqX])},function(n){return VZ(),B5((_e(),nqQ),n)});nrr(856,1,nbo,sG),nTm.Qe=function(n){V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nvF),""),"Optimization Goal"),"Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored."),nq3),(neT(),nzO)),nI1),VD((JH(),nzT))))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nv_),""),"Shift Last Placed."),"When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces."),(TX(),!0)),nzI),nTt),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nvB),""),"Current position of a node in the order of nodes"),"The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node."),Va(-1)),nz$),nTa),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nvH),""),"Desired index of node"),"The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position."),Va(-1)),nz$),nTa),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nvq),""),"Only Area Approximation"),"If enabled only the width approximation step is executed and the nodes are placed accordingly. The nodes are layouted according to the packingStrategy. If set to true not expansion of nodes is taking place."),!1),nzI),nTt),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nvG),""),"Compact Rows"),"Enables compaction. Compacts blocks if they do not use the full height of the row. This option allows to have a smaller drawing. If this option is disabled all nodes are placed next to each other in rows."),!0),nzI),nTt),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nvz),""),"Fit Aspect Ratio"),"Expands nodes if expandNodes is true to fit the aspect ratio instead of only in their bounds. The option is only useful if the used packingStrategy is ASPECT_RATIO_DRIVEN, otherwise this may result in unreasonable ndoe expansion."),!1),nzI),nTt),VD(nzT)))),DW(n,nvz,nvX,null),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nvU),""),"Target Width"),"Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding."),-1),nzC),nTr),VD(nzT)))),ns3((new sz,n))},AY(nvK,"RectPackingMetaDataProvider",856),nrr(1004,1,nbo,sz),nTm.Qe=function(n){ns3(n)},AY(nvK,"RectPackingOptions",1004),nrr(1005,1,{},c3),nTm.$e=function(){return new cY},nTm._e=function(n){},AY(nvK,"RectPackingOptions/RectpackingFactory",1005),nrr(1257,1,{},RL),nTm.a=0,nTm.b=!1,nTm.c=0,nTm.d=0,nTm.e=!1,nTm.f=!1,nTm.g=0,AY("org.eclipse.elk.alg.rectpacking.seconditeration","RowFillingAndCompaction",1257),nrr(187,1,{187:1},Xj),nTm.a=0,nTm.c=!1,nTm.d=0,nTm.e=0,nTm.f=0,nTm.g=0,nTm.i=0,nTm.k=!1,nTm.o=nlc,nTm.p=nlc,nTm.r=0,nTm.s=0,nTm.t=0,AY(nvV,"Block",187),nrr(211,1,{211:1},NZ),nTm.a=0,nTm.b=0,nTm.d=0,nTm.e=0,nTm.f=0,AY(nvV,"BlockRow",211),nrr(443,1,{443:1},N1),nTm.b=0,nTm.c=0,nTm.d=0,nTm.e=0,nTm.f=0,AY(nvV,"BlockStack",443),nrr(220,1,{220:1},Co,Qo),nTm.a=0,nTm.b=0,nTm.c=0,nTm.d=0,nTm.e=0;var nI0=AY(nvV,"DrawingData",220);nrr(355,22,{3:1,35:1,22:1,355:1},ko);var nI2=qE(nvV,"DrawingDataDescriptor",355,nE2,function(){return ncr(),Um(xg(nI2,1),nfh,355,0,[nGm,nGv,nGk,nGy,nGj])},function(n){return ncr(),B5((Ho(),nGE),n)});nrr(200,1,{200:1},DI),nTm.b=0,nTm.c=0,nTm.e=0,nTm.f=0,AY(nvV,"RectRow",200),nrr(756,1,{},Ws),nTm.j=0,AY(nvJ,ndo,756),nrr(1245,1,{},c4),nTm.Je=function(n){return _k(n.a,n.b)},AY(nvJ,nds,1245),nrr(1246,1,{},l0),nTm.Je=function(n){var t;return t=this.a,nTv.Math.min(_k(n.a,t.d.d.c),_k(n.b,t.d.d.c))},AY(nvJ,ndh,1246),nrr(1247,1,{},l2),nTm.Je=function(n){var t,e,i;return e=Im(Im($a((t=this.a).g,n.a),46).a,65),i=Im(Im($a(t.g,n.b),46).a,65),_k(n.a,n.b)-_k(n.a,EZ(e.b))-_k(n.b,EZ(i.b))},AY(nvJ,ndf,1247),nrr(1248,1,{},l3),nTm.Je=function(n){var t;return nuL(Im(Im($a((t=this.a).g,n.a),46).a,65),Im(Im($a(t.g,n.b),46).a,65))},AY(nvJ,"ElkGraphImporter/lambda$3$Type",1248),nrr(1249,1,{},l4),nTm.Je=function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d;return(i=Im(Im($a((t=this.a).g,n.a),46).a,65),r=Im(Im($a(t.g,n.b),46).a,65),o=c=i.b,s=a=r.b,nc0(),b=s.c-(o.c+o.b),l=o.c-(s.c+s.b),w=o.d-(s.d+s.a),h=s.d-(o.d+o.a),f=nTv.Math.max(l,b),d=nTv.Math.max(w,h),Ex(),qR(np3),(e=(nTv.Math.abs(f)<=np3||0==f||isNaN(f)&&isNaN(0)?0:f<0?-1:f>0?1:j1(isNaN(f),isNaN(0)))>=0^(qR(np3),(nTv.Math.abs(d)<=np3||0==d||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:j1(isNaN(d),isNaN(0)))>=0)?nTv.Math.max(d,f):(qR(np3),(nTv.Math.abs(f)<=np3||0==f||isNaN(f)&&isNaN(0)?0:f<0?-1:f>0?1:j1(isNaN(f),isNaN(0)))>0)?nTv.Math.sqrt(d*d+f*f):-nTv.Math.sqrt(d*d+f*f))>=0)?e:(u=$C(S7(new kp(a.c+a.b/2,a.d+a.a/2),new kp(c.c+c.b/2,c.d+c.a/2))),-(nug(c,a)-1)*u)},AY(nvJ,ndl,1249),nrr(1133,209,nbU,pH),nTm.Ze=function(n,t){var e,i,r,c,a,u,o,s,h,f;for(_u(n,(ntA(),nGY))&&(f=Sh(nrM(n,(YF(),nzh))),(c=naA(qK(),f))&&Im(N$(c.f),209).Ze(n,zt(t,1))),Yu(n,nGX,(F$(),nG$)),Yu(n,nGW,(nt7(),nGR)),Yu(n,nGV,(UT(),nzw)),a=Im(nrM(n,(YF(),nza)),19).a,ntc(t,"Overlap removal",1),gm(So(nrM(n,nzc))),o=new l5(u=new w_),e=ns7(i=new Ws,n),s=!0,r=0;r<a&&s;){if(gm(So(nrM(n,nzu)))){if(u.a.$b(),function(n,t){var e,i,r,c;for(c=new wn,i=new h1(t);i.a<i.c.c.length;)IE(c,new mq(e=Im(De(i),65),!0)),IE(c,new mq(e,!1));gi((r=new Nc(n)).a.a),DG(c,n.b,new gE(Um(xg(nSt,1),nhA,679,0,[r])))}(new EW(o),e.i),0==u.a.gc())break;e.e=u}for(DY(this.b),Ak(this.b,(V1(),nGT),(mt(),nzf)),Ak(this.b,nGM,e.g),Ak(this.b,nGS,(mn(),nGO)),this.a=noU(this.b,e),h=new h1(this.a);h.a<h.c.c.length;)Im(De(h),51).pf(e,zt(t,1));(function(n,t){var e,i,r,c;for(c=new wt,t.e=null,t.f=null,i=new h1(t.i);i.a<i.c.c.length;)e=Im(De(i),65),r=Im($a(n.g,e.a),46),e.a=OJ(e.b),$J(c,e.a,r);n.g=c})(i,e),s=gm(So(ntP(e,(zj(),nC1)))),++r}nsc(i,e),nee(t)},AY(nvJ,"OverlapRemovalLayoutProvider",1133),nrr(1134,1,{},l5),AY(nvJ,"OverlapRemovalLayoutProvider/lambda$0$Type",1134),nrr(437,22,{3:1,35:1,22:1,437:1},ks);var nI3=qE(nvJ,"SPOrEPhases",437,nE2,function(){return V1(),Um(xg(nI3,1),nfh,437,0,[nGT,nGM,nGS])},function(n){return V1(),B5((_r(),nGP),n)});nrr(1255,1,{},pq),AY(nvJ,"ShrinkTree",1255),nrr(1135,209,nbU,dX),nTm.Ze=function(n,t){var e,i,r,c;_u(n,(ntA(),nGY))&&(c=Sh(nrM(n,nGY)),(r=naA(qK(),c))&&Im(N$(r.f),209).Ze(n,zt(t,1))),e=ns7(i=new Ws,n),function(n,t,e){var i;if(DY(n.b),Ak(n.b,(V1(),nGT),(mt(),nzf)),Ak(n.b,nGM,t.g),Ak(n.b,nGS,t.a),n.a=noU(n.b,t),ntc(e,"Compaction by shrinking a tree",n.a.c.length),t.i.c.length>1)for(i=new h1(n.a);i.a<i.c.c.length;)Im(De(i),51).pf(t,zt(e,1));nee(e)}(this.a,e,zt(t,1)),nsc(i,e)},AY(nvJ,"ShrinkTreeLayoutProvider",1135),nrr(300,134,{3:1,300:1,94:1,134:1},NY),nTm.c=!1,AY("org.eclipse.elk.alg.spore.graph","Graph",300),nrr(482,22,{3:1,35:1,22:1,482:1,246:1,234:1},mr),nTm.Kf=function(){return Xv(this)},nTm.Xf=function(){return Xv(this)};var nI4=qE(nvY,nbY,482,nE2,function(){return v7(),Um(xg(nI4,1),nfh,482,0,[nGI])},function(n){return v7(),B5((Rv(),nGC),n)});nrr(551,22,{3:1,35:1,22:1,551:1,246:1,234:1},Sa),nTm.Kf=function(){return new c9},nTm.Xf=function(){return new c9};var nI5=qE(nvY,"OverlapRemovalStrategy",551,nE2,function(){return mn(),Um(xg(nI5,1),nfh,551,0,[nGO])},function(n){return mn(),B5((Rp(),nGA),n)});nrr(430,22,{3:1,35:1,22:1,430:1},kh);var nI6=qE(nvY,"RootSelection",430,nE2,function(){return F$(),Um(xg(nI6,1),nfh,430,0,[nGL,nG$])},function(n){return F$(),B5((KP(),nGN),n)});nrr(316,22,{3:1,35:1,22:1,316:1},kf);var nI8=qE(nvY,"SpanningTreeCostFunction",316,nE2,function(){return nt7(),Um(xg(nI8,1),nfh,316,0,[nGx,nGD,nGF,nGR,nGK])},function(n){return nt7(),B5((Ha(),nG_),n)});nrr(1002,1,nbo,sR),nTm.Qe=function(n){nok(n)},AY(nvY,"SporeCompactionOptions",1002),nrr(1003,1,{},c5),nTm.$e=function(){return new dX},nTm._e=function(n){},AY(nvY,"SporeCompactionOptions/SporeCompactionFactory",1003),nrr(855,1,nbo,sK),nTm.Qe=function(n){V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,nv1),""),"Underlying Layout Algorithm"),"A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction."),(neT(),nzN)),nTh),VD((JH(),nzM))))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nv5),"structure"),"Structure Extraction Strategy"),"This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices."),nzi),nzO),nI9),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nv0),nmn),"Tree Construction Strategy"),"Whether a minimum spanning tree or a maximum spanning tree should be constructed."),nzt),nzO),nI7),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nv2),nmn),"Cost Function for Spanning Tree"),"The cost function is used in the creation of the spanning tree."),nG7),nzO),nI8),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nv3),nmn),"Root node for spanning tree construction"),"The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen."),null),nzN),nTh),VD(nzM)))),DW(n,nv3,nv4,nG5),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nv4),nmn),"Root selection for spanning tree"),"This sets the method used to select a root node for the construction of a spanning tree"),nG8),nzO),nI6),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nv6),ng5),"Compaction Strategy"),"This option defines how the compaction is applied."),nG1),nzO),nI4),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nv8),ng5),"Orthogonal Compaction"),"Restricts the translation of nodes to orthogonal directions in the compaction phase."),(TX(),!1)),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nv9),nmt),"Upper limit for iterations of overlap removal"),null),Va(64)),nz$),nTa),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nv7),nmt),"Whether to run a supplementary scanline overlap check."),null),!0),nzI),nTt),VD(nzM)))),naJ((new sF,n)),nok((new sR,n))},AY(nvY,"SporeMetaDataProvider",855),nrr(nfP,1,nbo,sF),nTm.Qe=function(n){naJ(n)},AY(nvY,"SporeOverlapRemovalOptions",nfP),nrr(1001,1,{},c6),nTm.$e=function(){return new pH},nTm._e=function(n){},AY(nvY,"SporeOverlapRemovalOptions/SporeOverlapFactory",1001),nrr(530,22,{3:1,35:1,22:1,530:1,246:1,234:1},$Q),nTm.Kf=function(){return Xm(this)},nTm.Xf=function(){return Xm(this)};var nI9=qE(nvY,"StructureExtractionStrategy",530,nE2,function(){return mt(),Um(xg(nI9,1),nfh,530,0,[nzf])},function(n){return mt(),B5((Rm(),nzl),n)});nrr(429,22,{3:1,35:1,22:1,429:1,246:1,234:1},kl),nTm.Kf=function(){return Qd(this)},nTm.Xf=function(){return Qd(this)};var nI7=qE(nvY,"TreeConstructionStrategy",429,nE2,function(){return UT(),Um(xg(nI7,1),nfh,429,0,[nzw,nzb])},function(n){return UT(),B5((KS(),nzd),n)});nrr(1443,1,npV,c8),nTm.Yf=function(n){return Im(n,300),new Rf},nTm.pf=function(n,t){var e,i;e=Im(n,300),ntc(t,"Delaunay triangulation",1),i=new wn,HR(e.i,new l6(i)),gm(So(ntP(e,(zj(),nCZ)))),e.e?Gz(e.e,ns2(i)):e.e=ns2(i),nee(t)},AY(nmi,"DelaunayTriangulationPhase",1443),nrr(1444,1,nh1,l6),nTm.td=function(n){IE(this.a,Im(n,65).a)},AY(nmi,"DelaunayTriangulationPhase/lambda$0$Type",1444),nrr(783,1,npV,dq),nTm.Yf=function(n){return Im(n,300),new Rf},nTm.pf=function(n,t){this.ng(Im(n,300),t)},nTm.ng=function(n,t){var e,i;ntc(t,"Minimum spanning tree construction",1),e=n.d?n.d.a:Im(CA(n.i,0),65).a,UI(this,(gm(So(ntP(n,(zj(),nCZ)))),noN(n.e,e,n.b)),n),nee(t)},AY(nmr,"MinSTPhase",783),nrr(1446,783,npV,dw),nTm.ng=function(n,t){var e,i;ntc(t,"Maximum spanning tree construction",1),e=new l8(n),i=n.d?n.d.c:Im(CA(n.i,0),65).c,gm(So(ntP(n,(zj(),nCZ)))),UI(this,noN(n.e,i,e),n),nee(t)},AY(nmr,"MaxSTPhase",1446),nrr(1447,1,{},l8),nTm.Je=function(n){return-this.a.b.Je(n)},AY(nmr,"MaxSTPhase/lambda$0$Type",1447),nrr(1445,1,nh1,l9),nTm.td=function(n){var t,e;t=this.a,e=Im(n,65),$J(t.a,e.a,e)},AY(nmr,"MinSTPhase/lambda$0$Type",1445),nrr(785,1,npV,c9),nTm.Yf=function(n){return Im(n,300),new Rf},nTm.pf=function(n,t){var e;e=Im(n,300),ntc(t,"Grow Tree",1),this.b=e.f,gm(So(ntP(e,(zj(),nCZ))))?(this.c=new n0,xz(this,null)):this.c=new n0,this.a=!1,function n(t,e){var i,r,c,a,u;for(r=new h1(e.a);r.a<r.c.c.length;)i=Im(De(r),221),Oi(Im(i.b,65),S7(E1(Im(e.b,65).c),Im(e.b,65).a)),(c=nug(Im(e.b,65).b,Im(i.b,65).b))>1&&(t.a=!0),a=Im(i.b,65),u=S9(E1(Im(e.b,65).c),To(S7(E1(Im(i.b,65).a),Im(e.b,65).a),c)),Oi(a,S7(new kp(u.a,u.b),a.c)),xz(t,e),n(t,i)}(this,e.f),UU(e,nC1,(TX(),!!this.a)),nee(t)},nTm.a=!1,AY(nmc,"GrowTreePhase",785),nrr(786,1,nh1,Ii),nTm.td=function(n){var t,e,i,r;t=this.a,e=this.b,i=this.c,r=Im(n,221),Im(i.b,65),Im(i.b,65),Im(r.b,65),Im(r.b,65),Im(r.b,65),HR(r.a,new Ii(t,e,r))},AY(nmc,"GrowTreePhase/lambda$0$Type",786),nrr(1448,1,npV,c7),nTm.Yf=function(n){return Im(n,300),new Rf},nTm.pf=function(n,t){var e,i,r,c,a,u,o;e=this,i=Im(n,300),ntc(r=t,"Shrinking tree compaction",1),gm(So(ntP(i,(zj(),nCZ))))&&(c=i.f,a=new n0,Im(c.b,65),Im(c.b,65),Im(c.b,65),HR(c.a,new Ir(e,a,c))),u=i.f,o=i.c,nP$=new n0,nPL=o,Im((nPA=u).b,65),_l(nPA,nP$,null),noR(nPA),nee(r)},AY(nmc,"ShrinkTreeCompactionPhase",1448),nrr(784,1,nh1,Ir),nTm.td=function(n){var t,e,i,r,c;t=this.a,e=this.b,i=this.c,r=Im(n,221),Im(i.b,65),Im(i.b,65),Im(r.b,65),Im(r.b,65),I1(c=S7(E1(Im(i.b,65).c),Im(r.b,65).c),ne8(Im(i.b,65),Im(r.b,65),c)),Im(r.b,65),Im(r.b,65),Im(r.b,65).c.a,c.a,Im(r.b,65).c.b,c.b,Im(r.b,65),HR(r.a,new Ir(t,e,r))},AY(nmc,"ShrinkTreeCompactionPhase/lambda$0$Type",784);var nCn=Cw(npU,"IGraphElementVisitor");nrr(860,1,{527:1},DO),nTm.og=function(n){var t;t=new nJ,n&&z5(t,Im($a(this.a,nCC),94)),Ti(n,470)&&z5(t,Im($a(this.a,nCO),94)),Ti(n,354)?z5(t,Im($a(this.a,nCK),94)):(Ti(n,82)&&z5(t,Im($a(this.a,nCA),94)),Ti(n,239))?z5(t,Im($a(this.a,nCF),94)):Ti(n,186)?z5(t,Im($a(this.a,nC_),94)):Ti(n,352)&&z5(t,Im($a(this.a,nC$),94)),z5(t,Im($a(this.b,n),94)),function(n,t,e){var i,r,c,a,u;for(a=n.c,c=(e.q?e.q:(LV(),LV(),nMm)).vc().Kc();c.Ob();)r=Im(c.Pb(),42),pN(Lb(new CL(null,new x6(a,16)),new fe(new kd(t,r)))).sd((vQ(),nM5))||(Ti(u=r.dd(),4)&&null!=(i=Jh(u))&&(u=i),t.Ye(Im(r.cd(),146),u))}(this,n,t)},AY(nbX,"LayoutConfigurator",860);var nCt=Cw(nbX,"LayoutConfigurator/IPropertyHolderOptionFilter");nrr(932,1,{1933:1},an),nTm.pg=function(n,t){return UM(),!n.Xe(t)},AY(nbX,"LayoutConfigurator/lambda$0$Type",932),nrr(933,1,{1933:1},at),nTm.pg=function(n,t){return ncA(n,t)},AY(nbX,"LayoutConfigurator/lambda$1$Type",933),nrr(931,1,{831:1},ae),nTm.qg=function(n,t){return UM(),!n.Xe(t)},AY(nbX,"LayoutConfigurator/lambda$2$Type",931),nrr(934,1,nfw,kd),nTm.Mb=function(n){var t,e,i;return t=this.a,e=this.b,i=Im(n,1933),UM(),i.pg(t,Im(e.cd(),146))},AY(nbX,"LayoutConfigurator/lambda$3$Type",934),nrr(858,1,{},ai),AY(nbX,"RecursiveGraphLayoutEngine",858),nrr(296,60,nfm,wA,gI),AY(nbX,"UnsupportedConfigurationException",296),nrr(453,60,nfm,gC),AY(nbX,"UnsupportedGraphException",453),nrr(754,1,{}),AY(npU,"AbstractRandomListAccessor",754),nrr(500,754,{},ncw),nTm.rg=function(){return null},nTm.d=!0,nTm.e=!0,nTm.f=0,AY(nmu,"AlgorithmAssembler",500),nrr(1236,1,nfw,ar),nTm.Mb=function(n){return!!Im(n,123)},AY(nmu,"AlgorithmAssembler/lambda$0$Type",1236),nrr(1237,1,{},l7),nTm.Kb=function(n){var t;return t=this.a,Im(n,123).Yf(t)},AY(nmu,"AlgorithmAssembler/lambda$1$Type",1237),nrr(1238,1,nfw,ac),nTm.Mb=function(n){return!!Im(n,80)},AY(nmu,"AlgorithmAssembler/lambda$2$Type",1238),nrr(1239,1,nh1,bn),nTm.td=function(n){zM(this.a,Im(n,80))},AY(nmu,"AlgorithmAssembler/lambda$3$Type",1239),nrr(1240,1,nh1,kg),nTm.td=function(n){var t;t=this.a,IE(this.b,Qh(t,Im(n,234)))},AY(nmu,"AlgorithmAssembler/lambda$4$Type",1240),nrr(1355,1,nlX,aa),nTm.ue=function(n,t){var e,i,r,c;return e=Im(n,234),i=Im(t,234),Xp(e),Xp(i),r=Im(e,22),c=Im(i,22),r.g-c.g},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nmu,"EnumBasedFactoryComparator",1355),nrr(80,754,{80:1},Rf),nTm.rg=function(){return new w_},nTm.a=0,AY(nmu,"LayoutProcessorConfiguration",80),nrr(1013,1,{527:1},sU),nTm.og=function(n){zS(nzm,new bt(n))},AY(nbi,"DeprecatedLayoutOptionReplacer",1013),nrr(1014,1,nh1,au),nTm.td=function(n){var t;t=Im(n,160),_q(),Im(t.We((nha(),nXn)),174).Fc((nis(),nWP)),t.Ye(nU7,null)},AY(nbi,"DeprecatedLayoutOptionReplacer/lambda$0$Type",1014),nrr(1015,1,nh1,ao),nTm.td=function(n){var t;t=Im(n,160),_q(),Im(t.We((nha(),nUH)),174).Hc((na9(),nVa))&&(Im(t.We(nXn),174).Fc((nis(),nWC)),Im(t.We(nUH),174).Mc(nVa))},AY(nbi,"DeprecatedLayoutOptionReplacer/lambda$1$Type",1015),nrr(1016,1,{},bt),nTm.Od=function(n,t){var e,i,r;e=this.a,i=Im(n,146),r=Im(t,38),_q(),e.Xe(i)&&r.td(e)},AY(nbi,"DeprecatedLayoutOptionReplacer/lambda$2$Type",1016),nrr(149,1,{686:1,149:1},nte),nTm.Fb=function(n){return KU(this,n)},nTm.sg=function(){return this.b},nTm.tg=function(){return this.c},nTm.ne=function(){return this.e},nTm.Hb=function(){return Yj(this.c)},nTm.Ib=function(){return"Layout Algorithm: "+this.c};var nCe=AY(nbi,"LayoutAlgorithmData",149);nrr(263,1,{},as),AY(nbi,"LayoutAlgorithmData/Builder",263),nrr(1017,1,{527:1},ah),nTm.og=function(n){Ti(n,239)&&!gm(So(n.We((nha(),nUG))))&&function(n){var t,e;if(!zT(t=Sh(nrM(n,(nha(),nUt))),n)&&!_u(n,nXo)&&(0!=(n.a||(n.a=new An(nCF,n,10,11)),n.a).i||gm(So(nrM(n,nUM))))){if(null==t||0==ntH(t).length){if(!zT(nda,n))throw nsy(n,e=jP(jP(new TV("Unable to load default layout algorithm "),nda)," for unconfigured node ")),new gI(e.a).e}else throw nsy(n,e=jP(jP(new TV("Layout algorithm '"),t),"' not found for ")),new gI(e.a).e}}(Im(n,33))},AY(nbi,"LayoutAlgorithmResolver",1017),nrr(229,1,{686:1,229:1},xB),nTm.Fb=function(n){return!!Ti(n,229)&&Pv(this.b,Im(n,229).b)},nTm.sg=function(){return this.a},nTm.tg=function(){return this.b},nTm.ne=function(){return this.d},nTm.Hb=function(){return Yj(this.b)},nTm.Ib=function(){return"Layout Type: "+this.b},AY(nbi,"LayoutCategoryData",229),nrr(344,1,{},af),AY(nbi,"LayoutCategoryData/Builder",344),nrr(867,1,{},naj),AY(nbi,"LayoutMetaDataService",867),nrr(868,1,{},$l),AY(nbi,"LayoutMetaDataService/Registry",868),nrr(478,1,{478:1},al),AY(nbi,"LayoutMetaDataService/Registry/Triple",478),nrr(869,1,nmo,ab),nTm.ug=function(){return new ps},AY(nbi,"LayoutMetaDataService/lambda$0$Type",869),nrr(870,1,nms,aw),nTm.vg=function(n){return E1(Im(n,8))},AY(nbi,"LayoutMetaDataService/lambda$1$Type",870),nrr(879,1,nmo,ad),nTm.ug=function(){return new wn},AY(nbi,"LayoutMetaDataService/lambda$10$Type",879),nrr(880,1,nms,ag),nTm.vg=function(n){return new PB(Im(n,12))},AY(nbi,"LayoutMetaDataService/lambda$11$Type",880),nrr(881,1,nmo,ap),nTm.ug=function(){return new vK},AY(nbi,"LayoutMetaDataService/lambda$12$Type",881),nrr(882,1,nms,av),nTm.vg=function(n){return Ij(Im(n,68))},AY(nbi,"LayoutMetaDataService/lambda$13$Type",882),nrr(883,1,nmo,am),nTm.ug=function(){return new w_},AY(nbi,"LayoutMetaDataService/lambda$14$Type",883),nrr(884,1,nms,ay),nTm.vg=function(n){return L9(Im(n,53))},AY(nbi,"LayoutMetaDataService/lambda$15$Type",884),nrr(885,1,nmo,ak),nTm.ug=function(){return new j7},AY(nbi,"LayoutMetaDataService/lambda$16$Type",885),nrr(886,1,nms,aj),nTm.vg=function(n){return Kr(Im(n,53))},AY(nbi,"LayoutMetaDataService/lambda$17$Type",886),nrr(887,1,nmo,aE),nTm.ug=function(){return new wW},AY(nbi,"LayoutMetaDataService/lambda$18$Type",887),nrr(888,1,nms,aT),nTm.vg=function(n){return Ik(Im(n,208))},AY(nbi,"LayoutMetaDataService/lambda$19$Type",888),nrr(871,1,nmo,aM),nTm.ug=function(){return new dd},AY(nbi,"LayoutMetaDataService/lambda$2$Type",871),nrr(872,1,nms,aS),nTm.vg=function(n){return new pi(Im(n,74))},AY(nbi,"LayoutMetaDataService/lambda$3$Type",872),nrr(873,1,nmo,aP),nTm.ug=function(){return new dc},AY(nbi,"LayoutMetaDataService/lambda$4$Type",873),nrr(874,1,nms,aI),nTm.vg=function(n){return new PY(Im(n,142))},AY(nbi,"LayoutMetaDataService/lambda$5$Type",874),nrr(875,1,nmo,aO),nTm.ug=function(){return new da},AY(nbi,"LayoutMetaDataService/lambda$6$Type",875),nrr(876,1,nms,aA),nTm.vg=function(n){return new PJ(Im(n,116))},AY(nbi,"LayoutMetaDataService/lambda$7$Type",876),nrr(877,1,nmo,a$),nTm.ug=function(){return new az},AY(nbi,"LayoutMetaDataService/lambda$8$Type",877),nrr(878,1,nms,aL),nTm.vg=function(n){return new BH(Im(n,373))},AY(nbi,"LayoutMetaDataService/lambda$9$Type",878);var nCi=Cw(nbB,"IProperty");nrr(23,1,{35:1,686:1,23:1,146:1},neg),nTm.wd=function(n){var t;return t=Im(n,146),Fb(this.f,t.tg())},nTm.Fb=function(n){return Ti(n,23)?Pv(this.f,Im(n,23).f):Ti(n,146)&&Pv(this.f,Im(n,146).tg())},nTm.wg=function(){var n;if(!Ti(this.b,4))return this.b;if(null==(n=Jh(this.b)))throw new gg(nmw+this.f+"'. Make sure it's type is registered with the "+(Su(nCW),nCW.k)+nmf).e;return n},nTm.sg=function(){return this.d},nTm.tg=function(){return this.f},nTm.ne=function(){return this.i},nTm.Hb=function(){return Yj(this.f)},nTm.Ib=function(){return"Layout Option: "+this.f},AY(nbi,"LayoutOptionData",23),nrr(24,1,{},aN),AY(nbi,"LayoutOptionData/Builder",24),nrr(175,22,{3:1,35:1,22:1,175:1},kb);var nCr=qE(nbi,"LayoutOptionData/Target",175,nE2,function(){return JH(),Um(xg(nCr,1),nfh,175,0,[nzM,nzT,nzj,nzS,nzE])},function(n){return JH(),B5((Hu(),nzP),n)});nrr(277,22,{3:1,35:1,22:1,277:1},kw);var nCc=qE(nbi,"LayoutOptionData/Type",277,nE2,function(){return neT(),Um(xg(nCc,1),nfh,277,0,[nzx,nzI,nz$,nzN,nzC,nzO,nzA,nzL])},function(n){return neT(),B5((zy(),nzD),n)});nrr(110,1,{110:1},Et,Lj,Nf),nTm.Fb=function(n){var t;return!!(null!=n&&Ti(n,110))&&(t=Im(n,110),$5(this.c,t.c)&&$5(this.d,t.d)&&$5(this.b,t.b)&&$5(this.a,t.a))},nTm.Hb=function(){return X9(Um(xg(nEX,1),nhA,1,5,[this.c,this.d,this.b,this.a]))},nTm.Ib=function(){return"Rect[x="+this.c+",y="+this.d+",w="+this.b+",h="+this.a+"]"},nTm.a=0,nTm.b=0,nTm.c=0,nTm.d=0,AY(ndi,"ElkRectangle",110),nrr(8,1,{3:1,4:1,8:1,414:1},ps,xH,kp,Ee),nTm.Fb=function(n){return Gl(this,n)},nTm.Hb=function(){var n,t;return j3(this.a)+(n=j3(this.b),q1(),(t=nT2)[n>>>28]|t[n>>24&15]<<4|t[n>>20&15]<<8|t[n>>16&15]<<12|t[n>>12&15]<<16|t[n>>8&15]<<20|t[n>>4&15]<<24|t[15&n]<<28)},nTm.Jf=function(n){var t,e,i;for(e=0;e<n.length&&Wm((x5(e,n.length),n.charCodeAt(e)),ndn);)++e;for(t=n.length;t>0&&Wm((x5(t-1,n.length),n.charCodeAt(t-1)),ndt);)--t;if(e>=t)throw new gd("The given string does not contain any numbers.").e;if(2!=(i=naX(n.substr(e,t-e),",|;|\r|\n")).length)throw new gd("Exactly two numbers are expected, "+i.length+" were found.").e;try{this.a=nt1(ntH(i[0])),this.b=nt1(ntH(i[1]))}catch(n){if(Ti(n=Uu(n),127))throw new gd(nde+n).e;throw n.e}},nTm.Ib=function(){return"("+this.a+","+this.b+")"},nTm.a=0,nTm.b=0;var nCa=AY(ndi,"KVector",8);nrr(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},dd,pi,MQ),nTm.Pc=function(){return function(n){var t,e,i;for(t=0,i=_f(nCa,nhJ,8,n.b,0,1),e=Jz(n,0);e.b!=e.d.c;)i[t++]=Im(RP(e),8);return i}(this)},nTm.Jf=function(n){var t,e,i,r,c;e=naX(n,",|;|\\(|\\)|\\[|\\]|\\{|\\}| | |\n"),Lq(this);try{for(t=0,r=0,i=0,c=0;t<e.length;)null!=e[t]&&ntH(e[t]).length>0&&(r%2==0?i=nt1(e[t]):c=nt1(e[t]),r>0&&r%2!=0&&I2(this,new kp(i,c)),++r),++t}catch(n){if(Ti(n=Uu(n),127))throw new gd("The given string does not match the expected format for vectors."+n).e;throw n.e}},nTm.Ib=function(){var n,t,e;for(n=new TV("("),t=Jz(this,0);t.b!=t.d.c;)jP(n,(e=Im(RP(t),8)).a+","+e.b),t.b!=t.d.c&&(n.a+="; ");return(n.a+=")",n).a};var nCu=AY(ndi,"KVectorChain",74);nrr(248,22,{3:1,35:1,22:1,248:1},kv);var nCo=qE(nmg,"Alignment",248,nE2,function(){return Yv(),Um(xg(nCo,1),nfh,248,0,[nzF,nzH,nzq,nzG,nz_,nzB])},function(n){return Yv(),B5((H6(),nzz),n)});nrr(979,1,nbo,sX),nTm.Qe=function(n){nub(n)},AY(nmg,"BoxLayouterOptions",979),nrr(980,1,{},aC),nTm.$e=function(){return new aK},nTm._e=function(n){},AY(nmg,"BoxLayouterOptions/BoxFactory",980),nrr(291,22,{3:1,35:1,22:1,291:1},km);var nCs=qE(nmg,"ContentAlignment",291,nE2,function(){return nnF(),Um(xg(nCs,1),nfh,291,0,[nz7,nz9,nz8,nz5,nz4,nz6])},function(n){return nnF(),B5((H5(),nUn),n)});nrr(684,1,nbo,sW),nTm.Qe=function(n){var t,e,i,r,c,a,u;V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,nmy),""),"Layout Algorithm"),"Select a specific layout algorithm."),(neT(),nzN)),nTh),VD((JH(),nzM))))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,nmk),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),nzL),nCe),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npy),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),nUi),nzO),nCo),VD(nzT)))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,nb8),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,nmj),""),"Bend Points"),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),nzL),nCu),VD(nzj)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npL),""),"Content Alignment"),"Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."),nUh),nzA),nCs),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npm),""),"Debug Mode"),"Whether additional debug information shall be generated."),(TX(),!1)),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npT),""),nbD),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),nUb),nzO),nCh),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ng2),""),"Edge Routing"),"What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."),nUv),nzO),nCl),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nvX),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),!1),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,ngJ),""),"Hierarchy Handling"),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),nUE),nzO),nCw),C6(nzM,Um(xg(nCr,1),nfh,175,0,[nzT]))))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nb9),""),"Padding"),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),nUX),nzL),nPJ),C6(nzM,Um(xg(nCr,1),nfh,175,0,[nzT]))))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwT),""),"Interactive"),"Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."),!1),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npz),""),"interactive Layout"),"Whether the graph should be changeable interactively and by setting constraints"),!1),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwP),""),"Omit Node Micro Layout"),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),!1),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwM),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),nU8),nzO),nCv),VD(nzT)))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,npH),""),"Position"),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),nzL),nCa),C6(nzT,Um(xg(nCr,1),nfh,175,0,[nzS,nzE]))))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,nwm),""),"Priority"),"Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."),nz$),nTa),C6(nzT,Um(xg(nCr,1),nfh,175,0,[nzj]))))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,nwj),""),"Randomization Seed"),"Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."),nz$),nTa),VD(nzM)))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,nwE),""),"Separate Connected Components"),"Whether each connected component should be processed separately."),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npN),""),"Junction Points"),"This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."),nUO),nzL),nCu),VD(nzj)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npR),""),"Comment Box"),"Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."),!1),nzI),nTt),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npK),""),"Hypernode"),"Whether the node should be handled as a hypernode."),!1),nzI),nTt),VD(nzT)))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,nmE),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),nzL),nY_),C6(nzM,Um(xg(nCr,1),nfh,175,0,[nzE]))))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npq),""),"Margins"),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),nU$),nzL),nPW),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npp),""),"No Layout"),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),!1),nzI),nTt),C6(nzT,Um(xg(nCr,1),nfh,175,0,[nzj,nzS,nzE]))))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nmT),""),"Scale Factor"),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),nzC),nTr),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nmM),""),"Animate"),"Whether the shift from the old layout to the new computed layout shall be animated."),!0),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nmS),""),"Animation Time Factor"),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),Va(100)),nz$),nTa),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nmP),""),"Layout Ancestors"),"Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."),!1),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nmI),""),"Maximal Animation Time"),"The maximal time for animations, in milliseconds."),Va(4e3)),nz$),nTa),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nmC),""),"Minimal Animation Time"),"The minimal time for animations, in milliseconds."),Va(400)),nz$),nTa),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nmO),""),"Progress Bar"),"Whether a progress bar shall be displayed during layout computations."),!1),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nmA),""),"Validate Graph"),"Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!1),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nm$),""),"Validate Options"),"Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!0),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nmL),""),"Zoom to Fit"),"Whether the zoom level shall be set to view the whole diagram after layout."),!1),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nmm),"box"),"Box Layout Mode"),"Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."),nUu),nzO),nCE),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npc),ng3),"Comment Comment Spacing"),"Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."),10),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npa),ng3),"Comment Node Spacing"),"Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."),10),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nb5),ng3),"Components Spacing"),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npu),ng3),"Edge Spacing"),"Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."),10),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwk),ng3),"Edge Label Spacing"),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npo),ng3),"Edge Node Spacing"),"Spacing to be preserved between nodes and edges."),10),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nps),ng3),"Label Spacing"),"Determines the amount of space to be left between two labels of the same graph element."),0),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npl),ng3),"Label Node Spacing"),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nph),ng3),"Horizontal spacing between Label and Port"),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npf),ng3),"Vertical spacing between Label and Port"),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwy),ng3),"Node Spacing"),"The minimal distance to be preserved between each two nodes."),20),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npb),ng3),"Node Self Loop Spacing"),"Spacing to be preserved between a node and its self loops."),10),nzC),nTr),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npw),ng3),"Port Spacing"),"Spacing between pairs of ports of the same node."),10),nzC),nTr),C6(nzM,Um(xg(nCr,1),nfh,175,0,[nzT]))))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,npd),ng3),"Individual Spacing"),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),nzL),nCT),C6(nzT,Um(xg(nCr,1),nfh,175,0,[nzj,nzS,nzE]))))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npG),ng3),"Additional Port Space"),"Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."),nXM),nzL),nPW),VD(nzM)))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,npB),nmR),"Layout Partition"),"Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."),nz$),nTa),C6(nzM,Um(xg(nCr,1),nfh,175,0,[nzT]))))),DW(n,npB,np_,nUJ),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,np_),nmR),"Layout Partitioning"),"Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."),nUV),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npM),nmK),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),nUN),nzL),nPJ),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwO),nmK),"Node Label Placement"),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),nUD),nzA),nCg),C6(nzT,Um(xg(nCr,1),nfh,175,0,[nzE]))))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npI),nmF),"Port Alignment"),"Defines the default port distribution for a node. May be overridden for each side individually."),nUZ),nzO),nCp),VD(nzT)))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,npC),nmF),"Port Alignment (North)"),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),nzO),nCp),VD(nzT)))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,npO),nmF),"Port Alignment (South)"),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),nzO),nCp),VD(nzT)))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,npA),nmF),"Port Alignment (West)"),"Defines how ports on the western side are placed, overriding the node's general port alignment."),nzO),nCp),VD(nzT)))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,np$),nmF),"Port Alignment (East)"),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),nzO),nCp),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwC),nm_),"Node Size Constraints"),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),nUK),nzA),nCk),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwI),nm_),"Node Size Options"),"Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."),nUq),nzA),nCj),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwq),nm_),"Node Size Minimum"),"The minimal size to which a node can be reduced."),nUB),nzL),nCa),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npE),nm_),"Fixed Graph Size"),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),!1),nzI),nTt),VD(nzM)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npx),npi),"Edge Label Placement"),"Gives a hint on where to put edge labels."),nUg),nzO),nCf),VD(nzE)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwS),npi),"Inline Edge Labels"),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),!1),nzI),nTt),VD(nzE)))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,nmN),"font"),"Font Name"),"Font name used for a label."),nzN),nTh),VD(nzE)))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,nmx),"font"),"Font Size"),"Font size used for a label."),nz$),nTa),VD(nzE)))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,npF),nmB),"Port Anchor Offset"),"The offset to the port position where connections shall be attached."),nzL),nCa),VD(nzS)))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,npD),nmB),"Port Index"),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),nz$),nTa),VD(nzS)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npv),nmB),"Port Side"),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),nXr),nzO),nCy),VD(nzS)))),V4(n,new neg(g7(g9(pn(g3(g8(g5(g6(new aN,npg),nmB),"Port Border Offset"),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),nzC),nTr),VD(nzS)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nwA),nmH),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),nXt),nzA),nCm),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npS),nmH),"Port Labels Next to Port"),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),!1),nzI),nTt),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npP),nmH),"Treat Port Labels as Group"),"If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."),!0),nzI),nTt),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npk),nmq),"Activate Inside Self Loops"),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),!1),nzI),nTt),VD(nzT)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,npj),nmq),"Inside Self Loop"),"Whether a self loop should be routed inside a node instead of around that node."),!1),nzI),nTt),VD(nzj)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nb6),"edge"),"Edge Thickness"),"The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."),1),nzC),nTr),VD(nzj)))),V4(n,new neg(g7(g9(pn(g4(g3(g8(g5(g6(new aN,nmD),"edge"),"Edge Type"),"The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."),nUy),nzO),nCb),VD(nzj)))),ma(n,new xB(((((t=new af).b=nda,t).c="Layered",t).a='The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.',t))),ma(n,new xB(((((e=new af).b="org.eclipse.elk.orthogonal",e).c="Orthogonal",e).a='Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.',e))),ma(n,new xB(((((i=new af).b=nwv,i).c="Force",i).a="Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.",i))),ma(n,new xB(((((r=new af).b="org.eclipse.elk.circle",r).c="Circle",r).a="Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.",r))),ma(n,new xB(((((c=new af).b=nvb,c).c="Tree",c).a="Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.",c))),ma(n,new xB(((((a=new af).b="org.eclipse.elk.planar",a).c="Planar",a).a="Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.",a))),ma(n,new xB(((((u=new af).b=nvO,u).c="Radial",u).a="Radial layout algorithms usually position the nodes of the graph on concentric circles.",u))),naq((new sV,n)),nub((new sX,n)),nc9((new sQ,n))},AY(nmg,"CoreOptions",684),nrr(103,22,{3:1,35:1,22:1,103:1},ky);var nCh=qE(nmg,nbD,103,nE2,function(){return W2(),Um(xg(nCh,1),nfh,103,0,[nXO,nXC,nXI,nXP,nXA])},function(n){return W2(),B5((Hh(),nX$),n)});nrr(272,22,{3:1,35:1,22:1,272:1},kk);var nCf=qE(nmg,"EdgeLabelPlacement",272,nE2,function(){return HH(),Um(xg(nCf,1),nfh,272,0,[nXL,nXN,nXx])},function(n){return HH(),B5((_a(),nXD),n)});nrr(218,22,{3:1,35:1,22:1,218:1},kj);var nCl=qE(nmg,"EdgeRouting",218,nE2,function(){return VY(),Um(xg(nCl,1),nfh,218,0,[nX_,nXK,nXR,nXF])},function(n){return VY(),B5((Br(),nXB),n)});nrr(312,22,{3:1,35:1,22:1,312:1},kE);var nCb=qE(nmg,"EdgeType",312,nE2,function(){return ntg(),Um(xg(nCb,1),nfh,312,0,[nXU,nXG,nXX,nXH,nXz,nXq])},function(n){return ntg(),B5((qr(),nXW),n)});nrr(977,1,nbo,sV),nTm.Qe=function(n){naq(n)},AY(nmg,"FixedLayouterOptions",977),nrr(978,1,{},aq),nTm.$e=function(){return new aD},nTm._e=function(n){},AY(nmg,"FixedLayouterOptions/FixedFactory",978),nrr(334,22,{3:1,35:1,22:1,334:1},kT);var nCw=qE(nmg,"HierarchyHandling",334,nE2,function(){return WL(),Um(xg(nCw,1),nfh,334,0,[nX3,nX2,nX4])},function(n){return WL(),B5((_c(),nX5),n)});nrr(285,22,{3:1,35:1,22:1,285:1},kM);var nCd=qE(nmg,"LabelSide",285,nE2,function(){return ZR(),Um(xg(nCd,1),nfh,285,0,[nX7,nX6,nX8,nX9])},function(n){return ZR(),B5((Bi(),nWn),n)});nrr(93,22,{3:1,35:1,22:1,93:1},kS);var nCg=qE(nmg,"NodeLabelPlacement",93,nE2,function(){return nrS(),Um(xg(nCg,1),nfh,93,0,[nWe,nWt,nWr,nWs,nWo,nWu,nWc,nWa,nWi])},function(n){return nrS(),B5((zJ(),nWh),n)});nrr(249,22,{3:1,35:1,22:1,249:1},kP);var nCp=qE(nmg,"PortAlignment",249,nE2,function(){return Jq(),Um(xg(nCp,1),nfh,249,0,[nWb,nWd,nWf,nWl,nWw])},function(n){return Jq(),B5((Hf(),nWg),n)});nrr(98,22,{3:1,35:1,22:1,98:1},kI);var nCv=qE(nmg,"PortConstraints",98,nE2,function(){return nn2(),Um(xg(nCv,1),nfh,98,0,[nWj,nWk,nWy,nWp,nWm,nWv])},function(n){return nn2(),B5((Hq(),nWE),n)});nrr(273,22,{3:1,35:1,22:1,273:1},kC);var nCm=qE(nmg,"PortLabelPlacement",273,nE2,function(){return nis(),Um(xg(nCm,1),nfh,273,0,[nWI,nWS,nWP,nWM,nWT,nWC])},function(n){return nis(),B5((qi(),nWO),n)});nrr(61,22,{3:1,35:1,22:1,61:1},kO);var nCy=qE(nmg,"PortSide",61,nE2,function(){return nsR(),Um(xg(nCy,1),nwZ,61,0,[nWQ,nW$,nWA,nWV,nWJ])},function(n){return nsR(),B5((Hl(),nWY),n)});nrr(981,1,nbo,sQ),nTm.Qe=function(n){nc9(n)},AY(nmg,"RandomLayouterOptions",981),nrr(982,1,{},aG),nTm.$e=function(){return new aW},nTm._e=function(n){},AY(nmg,"RandomLayouterOptions/RandomFactory",982),nrr(374,22,{3:1,35:1,22:1,374:1},kA);var nCk=qE(nmg,"SizeConstraint",374,nE2,function(){return QJ(),Um(xg(nCk,1),nfh,374,0,[nW6,nW8,nW5,nW4])},function(n){return QJ(),B5((Ba(),nW9),n)});nrr(259,22,{3:1,35:1,22:1,259:1},k$);var nCj=qE(nmg,"SizeOptions",259,nE2,function(){return na9(),Um(xg(nCj,1),nfh,259,0,[nVt,nVi,nVn,nVr,nVc,nVu,nVa,nVe,nW7])},function(n){return na9(),B5((UD(),nVo),n)});nrr(370,1,{1949:1},dB),nTm.b=!1,nTm.c=0,nTm.d=-1,nTm.e=null,nTm.f=null,nTm.g=-1,nTm.j=!1,nTm.k=!1,nTm.n=!1,nTm.o=0,nTm.q=0,nTm.r=0,AY(npU,"BasicProgressMonitor",370),nrr(972,209,nbU,aK),nTm.Ze=function(n,t){var e,i,r,c,a,u,o,s;(ntc(t,"Box layout",2),$x(s=Ss(nrM(n,(nt$(),nz3)))),r=Im(nrM(n,nz1),116),e=gm(So(nrM(n,nzV))),i=gm(So(nrM(n,nzQ))),0===Im(nrM(n,nzX),311).g)?(c=new PB((n.a||(n.a=new An(nCF,n,10,11)),n.a)),LV(),E_(c,new be(i)),a=neK(n),(null==(u=Ss(nrM(n,nzU)))||($x(u),u<=0))&&(u=1.3),nsB(n,(o=function(n,t,e,i,r,c,a){var u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,I,C,O;for(b=0,S=0,o=new h1(n);o.a<o.c.c.length;)nsp(u=Im(De(o),33)),b=nTv.Math.max(b,u.g),S+=u.g*u.f;for(w=S/n.c.length,M=function(n,t){var e,i,r;for(r=0,i=new h1(n);i.a<i.c.c.length;)e=Im(De(i),33),r+=nTv.Math.pow(e.g*e.f-t,2);return nTv.Math.sqrt(r/(n.c.length-1))}(n,w),S+=n.c.length*M,b=nTv.Math.max(b,nTv.Math.sqrt(S*a))+e.b,C=e.b,O=e.d,l=0,h=e.b+e.c,I2(T=new vK,Va(0)),j=new vK,s=new Rn(n,0);s.b<s.d.gc();)MK(s.b<s.d.gc()),I=(u=Im(s.d.Xb(s.c=s.b++),33)).g,f=u.f,C+I>b&&(c&&(jO(j,l),jO(T,Va(s.b-1))),C=e.b,O+=l+t,l=0,h=nTv.Math.max(h,e.b+e.c+I)),qh(u,C),qf(u,O),h=nTv.Math.max(h,C+I+e.c),l=nTv.Math.max(l,f),C+=I+t;if(h=nTv.Math.max(h,i),(P=O+l+e.a)<r&&(l+=r-P,P=r),c)for(C=e.b,s=new Rn(n,0),jO(T,Va(n.c.length)),p=Im(RP(E=Jz(T,0)),19).a,jO(j,l),k=Jz(j,0),y=0;s.b<s.d.gc();)s.b==p&&(C=e.b,y=gy(Ss(RP(k))),p=Im(RP(E),19).a),MK(s.b<s.d.gc()),v=(u=Im(s.d.Xb(s.c=s.b++),33)).f,qo(u,y),d=y,s.b==p&&(g=h-C-e.c,m=u.g,qs(u,g),neG(u,new kp(g,d),new kp(m,v))),C+=u.g+t;return new kp(h,P)}(c,s,r,a.a,a.b,e,($x(u),u))).a,o.b,!1,!0)):function(n,t,e,i){var r,c,a,u,o,s,h;for((u=new Ee(Im(nrM(n,(nt$(),nzY)),8))).a=nTv.Math.max(u.a-e.b-e.c,0),u.b=nTv.Math.max(u.b-e.d-e.a,0),(null==(r=Ss(nrM(n,nzU)))||($x(r),r<=0))&&(r=1.3),a=new wn,o=new Td((n.a||(n.a=new An(nCF,n,10,11)),n.a));o.e!=o.i.gc();)c=new MV(Im(J1(o),33)),a.c[a.c.length]=c;switch(Im(nrM(n,nzX),311).g){case 3:h=function(n,t,e,i,r){var c,a,u,o,s,h,f;for(LV(),E_(n,new aB),u=new Rn(n,0),f=new wn,c=0;u.b<u.d.gc();)MK(u.b<u.d.gc()),a=Im(u.d.Xb(u.c=u.b++),157),0!=f.c.length&&CB(a)*C_(a)>2*c?(h=new Hz(f),s=CB(a)/C_(a),o=nsJ(h,t,new da,e,i,r,s),S9(jR(h.e),o),f.c=_f(nEX,nhA,1,0,5,1),c=0,f.c[f.c.length]=h,f.c[f.c.length]=a,c=CB(h)*C_(h)+CB(a)*C_(a)):(f.c[f.c.length]=a,c+=CB(a)*C_(a));return f}(a,t,u.a,u.b,($x(r),i));break;case 1:h=function(n,t,e,i,r){var c,a,u,o,s,h,f,l,b;for(LV(),E_(n,new aF),a=Ij(n),b=new wn,l=new wn,u=null,o=0;0!=a.b;)c=Im(0==a.b?null:(MK(0!=a.b),HK(a,a.a.a)),157),!u||CB(u)*C_(u)/2<CB(c)*C_(c)?(u=c,b.c[b.c.length]=c):(o+=CB(c)*C_(c),l.c[l.c.length]=c,l.c.length>1&&(o>CB(u)*C_(u)/2||0==a.b)&&(f=new Hz(l),h=CB(u)/C_(u),s=nsJ(f,t,new da,e,i,r,h),S9(jR(f.e),s),u=f,b.c[b.c.length]=f,o=0,l.c=_f(nEX,nhA,1,0,5,1)));return Uf(b,l),b}(a,t,u.a,u.b,($x(r),i));break;default:h=function(n,t,e,i,r){var c,a,u,o,s,h,f,l,b;for(u=_f(nYR,nlf,25,n.c.length,15,1),Zz(l=new O0(new a_),n),s=0,b=new wn;0!=l.b.c.length;)if(a=Im(0==l.b.c.length?null:CA(l.b,0),157),s>1&&CB(a)*C_(a)/2>u[0]){for(c=0;c<b.c.length-1&&CB(a)*C_(a)/2>u[c];)++c;f=new Hz(new x2(b,0,c+1)),h=CB(a)/C_(a),o=nsJ(f,t,new da,e,i,r,h),S9(jR(f.e),o),_w(ntp(l,f)),Zz(l,new x2(b,c+1,b.c.length)),b.c=_f(nEX,nhA,1,0,5,1),s=0,C5(u,u.length,0)}else null!=(0==l.b.c.length?null:CA(l.b,0))&&Gy(l,0),s>0&&(u[s]=u[s-1]),u[s]+=CB(a)*C_(a),++s,b.c[b.c.length]=a;return b}(a,t,u.a,u.b,($x(r),i))}nsB(n,(s=nsJ(new Hz(h),t,e,u.a,u.b,i,($x(r),r))).a,s.b,!1,!0)}(n,s,r,e),nee(t)},AY(npU,"BoxLayoutProvider",972),nrr(973,1,nlX,be),nTm.ue=function(n,t){var e,i,r,c,a;return e=Im(n,33),i=Im(t,33),((c=Im(nrM(e,(nt$(),nz2)),19))||(c=Va(0)),(a=Im(nrM(i,nz2),19))||(a=Va(0)),c.a>a.a)?-1:c.a<a.a?1:this.a&&(0!=(r=Vv(e.j,i.j))||0!=(r=Vv(e.i,i.i)))?r:Vv(e.g*e.f,i.g*i.f)},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},nTm.a=!1,AY(npU,"BoxLayoutProvider/1",973),nrr(157,1,{157:1},Hz,MV),nTm.Ib=function(){return this.c?naC(this.c):ntK(this.b)},AY(npU,"BoxLayoutProvider/Group",157),nrr(311,22,{3:1,35:1,22:1,311:1},kL);var nCE=qE(npU,"BoxLayoutProvider/PackingMode",311,nE2,function(){return QI(),Um(xg(nCE,1),nfh,311,0,[nVl,nVs,nVf,nVh])},function(n){return QI(),B5((Bc(),nVb),n)});nrr(974,1,nlX,aF),nTm.ue=function(n,t){var e,i;return e=Im(n,157),i=Im(t,157),-Vv(CB(e)*C_(e),CB(i)*C_(i))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(npU,"BoxLayoutProvider/lambda$0$Type",974),nrr(975,1,nlX,a_),nTm.ue=function(n,t){var e,i;return e=Im(n,157),i=Im(t,157),Vv(CB(e)*C_(e),CB(i)*C_(i))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(npU,"BoxLayoutProvider/lambda$1$Type",975),nrr(976,1,nlX,aB),nTm.ue=function(n,t){var e,i;return e=Im(n,157),i=Im(t,157),Vv(CB(e)*C_(e),CB(i)*C_(i))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(npU,"BoxLayoutProvider/lambda$2$Type",976),nrr(1365,1,{831:1},aH),nTm.qg=function(n,t){return me(),!Ti(t,160)||(UM(),ncA(Im(n,160),t))},AY(npU,"ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type",1365),nrr(1366,1,nh1,bi),nTm.td=function(n){var t,e,i;t=this.a,e=Im(n,146),i=null!=JZ((QS(),n_a))&&null!=e.wg()?gy(Ss(e.wg()))/gy(Ss(JZ(n_a))):1,$J(t.b,e,i)},AY(npU,"ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type",1366),nrr(1367,1,nh1,aR),nTm.td=function(n){Im(n,94),me()},AY(npU,"ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type",1367),nrr(1371,1,nh1,br),nTm.td=function(n){var t,e;t=this.a,e=Im(n,94),vF(Lb(new CL(null,new x6(new hN(t.b),1)),new kN(t,e)),new kD(t,e))},AY(npU,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1371),nrr(1369,1,nfw,kN),nTm.Mb=function(n){var t,e,i;return t=this.a,e=this.b,i=Im(n,146),!pN(Lb(new CL(null,new x6(t.c,16)),new fe(new kx(e,i)))).sd((vQ(),nM5))},AY(npU,"ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type",1369),nrr(1368,1,nfw,kx),nTm.Mb=function(n){var t,e,i;return t=this.a,e=this.b,i=Im(n,831),me(),i.qg(t,e)},AY(npU,"ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type",1368),nrr(1370,1,nh1,kD),nTm.td=function(n){!function(n,t,e){t.Ye(e,gy(Ss($a(n.b,e)))*n.a)}(this.a,this.b,Im(n,146))},AY(npU,"ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type",1370),nrr(935,1,{},ax),nTm.Kb=function(n){return Eu(n)},nTm.Fb=function(n){return this===n},AY(npU,"ElkUtil/lambda$0$Type",935),nrr(936,1,nh1,kR),nTm.td=function(n){var t,e,i,r;t=this.a,e=this.b,vF(new CL(null,((i=Im(n,79)).a||(i.a=new An(nCL,i,6,6)),new x6(i.a,16))),new kK(t,e)),vF(new CL(null,(i.n||(i.n=new An(nCK,i,1,7)),new x6(i.n,16))),new kF(t,e)),(r=Im(nrM(i,(nha(),nUC)),74))&&GZ(r,t,e)},nTm.a=0,nTm.b=0,AY(npU,"ElkUtil/lambda$1$Type",936),nrr(937,1,nh1,kK),nTm.td=function(n){var t,e;t=this.a,e=this.b,function(n,t,e){var i,r;for(Eb(n,n.j+t,n.k+e),r=new Td((n.a||(n.a=new Tg(nCI,n,5)),n.a));r.e!=r.i.gc();)Es(i=Im(J1(r),469),i.a+t,i.b+e);El(n,n.b+t,n.c+e)}(Im(n,202),t,e)},nTm.a=0,nTm.b=0,AY(npU,"ElkUtil/lambda$2$Type",937),nrr(938,1,nh1,kF),nTm.td=function(n){var t,e,i;t=this.a,e=this.b,Ef(i=Im(n,137),i.i+t,i.j+e)},nTm.a=0,nTm.b=0,AY(npU,"ElkUtil/lambda$3$Type",938),nrr(939,1,nh1,bc),nTm.td=function(n){var t;IE(this.a,new kp((t=Im(n,469)).a,t.b))},AY(npU,"ElkUtil/lambda$4$Type",939),nrr(342,1,{35:1,342:1},b9),nTm.wd=function(n){var t;return t=Im(n,236),this.a<PL(t)?-1:1},nTm.Fb=function(n){var t;return!!Ti(n,342)&&(t=Im(n,342),this.a==t.a)},nTm.Hb=function(){return NU(this.a)},nTm.Ib=function(){return this.a+" (exclusive)"},nTm.a=0,AY(npU,"ExclusiveBounds/ExclusiveLowerBound",342),nrr(1138,209,nbU,aD),nTm.Ze=function(n,t){var e,i,r,c,a,u,o,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T;for(ntc(t,"Fixed Layout",1),c=Im(nrM(n,(nha(),nUp)),218),l=0,b=0,v=new Td((n.a||(n.a=new An(nCF,n,10,11)),n.a));v.e!=v.i.gc();){for(g=Im(J1(v),33),(T=Im(nrM(g,(XY(),nX0)),8))&&(Ef(g,T.a,T.b),Im(nrM(g,nXQ),174).Hc((QJ(),nW4))&&(w=Im(nrM(g,nXY),8)).a>0&&w.b>0&&nsB(g,w.a,w.b,!0,!0)),l=nTv.Math.max(l,g.i+g.g),b=nTv.Math.max(b,g.j+g.f),h=new Td((g.n||(g.n=new An(nCK,g,1,7)),g.n));h.e!=h.i.gc();)u=Im(J1(h),137),(T=Im(nrM(u,nX0),8))&&Ef(u,T.a,T.b),l=nTv.Math.max(l,g.i+u.i+u.g),b=nTv.Math.max(b,g.j+u.j+u.f);for(k=new Td((g.c||(g.c=new An(nC_,g,9,9)),g.c));k.e!=k.i.gc();)for(y=Im(J1(k),118),(T=Im(nrM(y,nX0),8))&&Ef(y,T.a,T.b),j=g.i+y.i,E=g.j+y.j,l=nTv.Math.max(l,j+y.g),b=nTv.Math.max(b,E+y.f),o=new Td((y.n||(y.n=new An(nCK,y,1,7)),y.n));o.e!=o.i.gc();)u=Im(J1(o),137),(T=Im(nrM(u,nX0),8))&&Ef(u,T.a,T.b),l=nTv.Math.max(l,j+u.i+u.g),b=nTv.Math.max(b,E+u.j+u.f);for(r=new OM(TD(nrZ(g).a.Kc(),new s));nrc(r);)f=nsH(e=Im(K4(r),79)),l=nTv.Math.max(l,f.a),b=nTv.Math.max(b,f.b);for(i=new OM(TD(nrY(g).a.Kc(),new s));nrc(i);)xt(ntL(e=Im(K4(i),79)))!=n&&(f=nsH(e),l=nTv.Math.max(l,f.a),b=nTv.Math.max(b,f.b))}if(c==(VY(),nXR))for(p=new Td((n.a||(n.a=new An(nCF,n,10,11)),n.a));p.e!=p.i.gc();)for(i=new OM(TD(nrZ(g=Im(J1(p),33)).a.Kc(),new s));nrc(i);)0==(a=function(n){var t;if(1!=(n.a||(n.a=new An(nCL,n,6,6)),n.a).i)throw new gd(nmX+(n.a||(n.a=new An(nCL,n,6,6)),n.a).i).e;return t=new dd,Uo(Im(HX((n.b||(n.b=new Ph(nCA,n,4,7)),n.b),0),82))&&Gz(t,nhn(n,Uo(Im(HX((n.b||(n.b=new Ph(nCA,n,4,7)),n.b),0),82)),!1)),Uo(Im(HX((n.c||(n.c=new Ph(nCA,n,5,8)),n.c),0),82))&&Gz(t,nhn(n,Uo(Im(HX((n.c||(n.c=new Ph(nCA,n,5,8)),n.c),0),82)),!0)),t}(e=Im(K4(i),79))).b?Yu(e,nUC,null):Yu(e,nUC,a);gm(So(nrM(n,(XY(),nXJ))))||(d=l+(m=Im(nrM(n,nXZ),116)).b+m.c,nsB(n,d,b+m.d+m.a,!0,!0)),nee(t)},AY(npU,"FixedLayoutProvider",1138),nrr(373,134,{3:1,414:1,373:1,94:1,134:1},az,BH),nTm.Jf=function(n){var t,e,i,r,c,a,u;if(n)try{for(r=0,c=(a=naX(n,";,;")).length;r<c;++r){if(i=a[r],t=naX(i,"\\:"),!(e=no7(qK(),t[0])))throw new gd("Invalid option id: "+t[0]).e;if(u=noY(e,t[1]),null==u)throw new gd("Invalid option value: "+t[1]).e;null==u?(this.q||(this.q=new wt),Fv(this.q,e)):(this.q||(this.q=new wt),$J(this.q,e,u))}}catch(n){if(Ti(n=Uu(n),102))throw new Xz(n).e;throw n.e}},nTm.Ib=function(){return Sh(Kc(Lw((this.q?this.q:(LV(),LV(),nMm)).vc().Oc(),new aU),BT(new IS,new Y,new X,new W,Um(xg(nMz,1),nfh,132,0,[]))))};var nCT=AY(npU,"IndividualSpacings",373);nrr(971,1,{},aU),nTm.Kb=function(n){var t;return t=Im(n,42),Im(t.cd(),146).tg()+":"+V7(t.dd())},AY(npU,"IndividualSpacings/lambda$0$Type",971),nrr(709,1,{},CX),nTm.c=0,AY(npU,"InstancePool",709),nrr(1275,1,{},aX),AY(npU,"LoggedGraph",1275),nrr(396,22,{3:1,35:1,22:1,396:1},kB);var nCM=qE(npU,"LoggedGraph/Type",396,nE2,function(){return XU(),Um(xg(nCM,1),nfh,396,0,[nVd,nVg,nVw,nVp])},function(n){return XU(),B5((Be(),nVv),n)});nrr(46,1,{20:1,46:1},k_),nTm.Jc=function(n){KA(this,n)},nTm.Fb=function(n){var t,e,i;return!!Ti(n,46)&&(e=Im(n,46),t=null==this.a?null==e.a:WY(this.a,e.a),i=null==this.b?null==e.b:WY(this.b,e.b),t&&i)},nTm.Hb=function(){var n,t,e,i,r;return n=(e=null==this.a?0:Xg(this.a))&nfI,t=-65536&e,i=(r=null==this.b?0:Xg(this.b))&nfI,n^(-65536&r)>>16&nfI|t^i<<16},nTm.Kc=function(){return new ba(this)},nTm.Ib=function(){return null==this.a&&null==this.b?"pair(null,null)":null==this.a?"pair(null,"+V7(this.b)+")":null==this.b?"pair("+V7(this.a)+",null)":"pair("+V7(this.a)+","+V7(this.b)+")"},AY(npU,"Pair",46),nrr(983,1,nhF,ba),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return!this.c&&(!this.b&&null!=this.a.a||null!=this.a.b)},nTm.Pb=function(){if(!this.c&&!this.b&&null!=this.a.a)return this.b=!0,this.a.a;if(!this.c&&null!=this.a.b)return this.c=!0,this.a.b;throw(new wO).e},nTm.Qb=function(){throw this.c&&null!=this.a.b?this.a.b=null:this.b&&null!=this.a.a&&(this.a.a=null),(new wM).e},nTm.b=!1,nTm.c=!1,AY(npU,"Pair/1",983),nrr(448,1,{448:1},LM),nTm.Fb=function(n){return $5(this.a,Im(n,448).a)&&$5(this.c,Im(n,448).c)&&$5(this.d,Im(n,448).d)&&$5(this.b,Im(n,448).b)},nTm.Hb=function(){return X9(Um(xg(nEX,1),nhA,1,5,[this.a,this.c,this.d,this.b]))},nTm.Ib=function(){return"("+this.a+nhC+this.c+nhC+this.d+nhC+this.b+")"},AY(npU,"Quadruple",448),nrr(1126,209,nbU,aW),nTm.Ze=function(n,t){var e,i,r,c,a;if(ntc(t,"Random Layout",1),0==(n.a||(n.a=new An(nCF,n,10,11)),n.a).i){nee(t);return}i=(r=Im(nrM(n,(QQ(),nW2)),19))&&0!=r.a?new Ka(r.a):new VH,$x(c=Ss(nrM(n,nWZ))),$x(a=Ss(nrM(n,nW3))),e=Im(nrM(n,nW1),116),function(n,t,e,i,r){var c,a,u,o,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M;for(m=0,d=0,w=0,b=1,v=new Td((n.a||(n.a=new An(nCF,n,10,11)),n.a));v.e!=v.i.gc();)b+=RK(new OM(TD(nrZ(g=Im(J1(v),33)).a.Kc(),new s))),E=g.g,d=nTv.Math.max(d,E),l=g.f,w=nTv.Math.max(w,l),m+=E*l;for(a=m+2*i*i*b*(n.a||(n.a=new An(nCF,n,10,11)),n.a).i,c=nTv.Math.sqrt(a),o=nTv.Math.max(c*e,d),u=nTv.Math.max(c/e,w),p=new Td((n.a||(n.a=new An(nCF,n,10,11)),n.a));p.e!=p.i.gc();)g=Im(J1(p),33),T=r.b+(nr_(t,26)*nlS+nr_(t,27)*nlP)*(o-g.g),M=r.b+(nr_(t,26)*nlS+nr_(t,27)*nlP)*(u-g.f),qh(g,T),qf(g,M);for(j=o+(r.b+r.c),k=u+(r.d+r.a),y=new Td((n.a||(n.a=new An(nCF,n,10,11)),n.a));y.e!=y.i.gc();)for(f=new OM(TD(nrZ(Im(J1(y),33)).a.Kc(),new s));nrc(f);)ni5(h=Im(K4(f),79))||function(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,I,C,O,A,$,L,N;if(m=(p=Im(HX((n.b||(n.b=new Ph(nCA,n,4,7)),n.b),0),82)).Dg(),y=p.Eg(),v=p.Cg()/2,b=p.Bg()/2,Ti(p,186)&&(m+=N8(g=Im(p,118)).i+N8(g).i),m+=v,y+=b,P=(M=Im(HX((n.b||(n.b=new Ph(nCA,n,4,7)),n.b),0),82)).Dg(),I=M.Eg(),S=M.Cg()/2,k=M.Bg()/2,Ti(M,186)&&(P+=N8(T=Im(M,118)).i+N8(T).i),P+=S,I+=k,0==(n.a||(n.a=new An(nCL,n,6,6)),n.a).i)pw(),u=new aZ,_P((n.a||(n.a=new An(nCL,n,6,6)),n.a),u);else if((n.a||(n.a=new An(nCL,n,6,6)),n.a).i>1)for(l=new Mv((n.a||(n.a=new An(nCL,n,6,6)),n.a));l.e!=l.i.gc();)nnA(l);for(a=Im(HX((n.a||(n.a=new An(nCL,n,6,6)),n.a),0),202),w=P,P>m+v?w=m+v:P<m-v&&(w=m-v),d=I,I>y+b?d=y+b:I<y-b&&(d=y-b),w>m-v&&w<m+v&&d>y-b&&d<y+b&&(w=m+v),ql(a,w),qw(a,d),j=m,m>P+S?j=P+S:m<P-S&&(j=P-S),E=y,y>I+k?E=I+k:y<I-k&&(E=I-k),j>P-S&&j<P+S&&E>I-k&&E<I+k&&(E=I+k),qu(a,j),qb(a,E),noK((a.a||(a.a=new Tg(nCI,a,5)),a.a)),c=Yk(t,5),p==M&&++c,O=j-w,L=E-d,s=.20000000298023224*nTv.Math.sqrt(O*O+L*L),A=O/(c+1),N=L/(c+1),C=w,$=d,o=0;o<c;o++)C+=A,$+=N,(h=C+nr_(t,24)*nlC*s-s/2)<0?h=1:h>e&&(h=e-1),(f=$+nr_(t,24)*nlC*s-s/2)<0?f=1:f>i&&(f=i-1),pw(),qc(r=new aY,h),qa(r,f),_P((a.a||(a.a=new Tg(nCI,a,5)),a.a),r)}(h,t,j,k);nsB(n,j+=r.b+r.c,k+=r.d+r.a,!1,!0)}(n,i,c,a,e),nee(t)},AY(npU,"RandomLayoutProvider",1126),nrr(553,1,{}),nTm.qf=function(){return new kp(this.f.i,this.f.j)},nTm.We=function(n){return Ng(n,(nha(),nU5))?nrM(this.f,nVy):nrM(this.f,n)},nTm.rf=function(){return new kp(this.f.g,this.f.f)},nTm.sf=function(){return this.g},nTm.Xe=function(n){return _u(this.f,n)},nTm.tf=function(n){qh(this.f,n.a),qf(this.f,n.b)},nTm.uf=function(n){qs(this.f,n.a),qo(this.f,n.b)},nTm.vf=function(n){this.g=n},nTm.g=0,AY(nmW,"ElkGraphAdapters/AbstractElkGraphElementAdapter",553),nrr(554,1,{839:1},bu),nTm.wf=function(){var n,t;if(!this.b)for(this.b=Re(Li(this.a).i),t=new Td(Li(this.a));t.e!=t.i.gc();)n=Im(J1(t),137),IE(this.b,new gb(n));return this.b},nTm.b=null,AY(nmW,"ElkGraphAdapters/ElkEdgeAdapter",554),nrr(301,553,{},gl),nTm.xf=function(){return Zl(this)},nTm.a=null,AY(nmW,"ElkGraphAdapters/ElkGraphAdapter",301),nrr(630,553,{181:1},gb),AY(nmW,"ElkGraphAdapters/ElkLabelAdapter",630),nrr(629,553,{680:1},Mw),nTm.wf=function(){return function(n){var t,e;if(!n.b)for(n.b=Re(Im(n.f,33).Ag().i),e=new Td(Im(n.f,33).Ag());e.e!=e.i.gc();)t=Im(J1(e),137),IE(n.b,new gb(t));return n.b}(this)},nTm.Af=function(){var n;return(n=Im(nrM(this.f,(nha(),nUA)),142))||(n=new dc),n},nTm.Cf=function(){return function(n){var t,e;if(!n.e)for(n.e=Re(Lr(Im(n.f,33)).i),e=new Td(Lr(Im(n.f,33)));e.e!=e.i.gc();)t=Im(J1(e),118),IE(n.e,new bK(t));return n.e}(this)},nTm.Ef=function(n){var t;t=new PY(n),Yu(this.f,(nha(),nUA),t)},nTm.Ff=function(n){Yu(this.f,(nha(),nUU),new PJ(n))},nTm.yf=function(){return this.d},nTm.zf=function(){var n,t;if(!this.a)for(this.a=new wn,t=new OM(TD(nrY(Im(this.f,33)).a.Kc(),new s));nrc(t);)n=Im(K4(t),79),IE(this.a,new bu(n));return this.a},nTm.Bf=function(){var n,t;if(!this.c)for(this.c=new wn,t=new OM(TD(nrZ(Im(this.f,33)).a.Kc(),new s));nrc(t);)n=Im(K4(t),79),IE(this.c,new bu(n));return this.c},nTm.Df=function(){return 0!=L8(Im(this.f,33)).i||gm(So(Im(this.f,33).We((nha(),nUM))))},nTm.Gf=function(){var n;mo(),n=nVm,PT(Im(Im(this.f,33).We((nha(),nU6)),98))&&function(n,t){var e,i,r;for(Si(),_V(i=_W(n),0,i.length,t),e=0;e<i.length;e++)r=function(n,t,e){var i,r,c;for(e<0&&(e=0),c=n.i,r=e;r<c;r++)if(i=HX(n,r),null==t){if(null==i)return r}else if(jf(t)===jf(i)||WY(t,i))return r;return -1}(n,i[e],e),e!=r&&Vm(n,e,r)}(Lr(Im(this.f,33)),n)},nTm.a=null,nTm.b=null,nTm.c=null,nTm.d=null,nTm.e=null,AY(nmW,"ElkGraphAdapters/ElkNodeAdapter",629),nrr(1266,553,{838:1},bK),nTm.wf=function(){return function(n){var t,e;if(!n.b)for(n.b=Re(Im(n.f,118).Ag().i),e=new Td(Im(n.f,118).Ag());e.e!=e.i.gc();)t=Im(J1(e),137),IE(n.b,new gb(t));return n.b}(this)},nTm.zf=function(){var n,t;if(!this.a)for(this.a=Mj(Im(this.f,118).xg().i),t=new Td(Im(this.f,118).xg());t.e!=t.i.gc();)n=Im(J1(t),79),IE(this.a,new bu(n));return this.a},nTm.Bf=function(){var n,t;if(!this.c)for(this.c=Mj(Im(this.f,118).yg().i),t=new Td(Im(this.f,118).yg());t.e!=t.i.gc();)n=Im(J1(t),79),IE(this.c,new bu(n));return this.c},nTm.Hf=function(){return Im(Im(this.f,118).We((nha(),nXi)),61)},nTm.If=function(){var n,t,e,i,r,c,a;for(i=N8(Im(this.f,118)),e=new Td(Im(this.f,118).yg());e.e!=e.i.gc();)for(a=new Td(((n=Im(J1(e),79)).c||(n.c=new Ph(nCA,n,5,8)),n.c));a.e!=a.i.gc();)if(HD(ntr(c=Im(J1(a),82)),i)||ntr(c)==i&&gm(So(nrM(n,(nha(),nUS)))))return!0;for(t=new Td(Im(this.f,118).xg());t.e!=t.i.gc();)for(r=new Td(((n=Im(J1(t),79)).b||(n.b=new Ph(nCA,n,4,7)),n.b));r.e!=r.i.gc();)if(HD(ntr(Im(J1(r),82)),i))return!0;return!1},nTm.a=null,nTm.b=null,nTm.c=null,AY(nmW,"ElkGraphAdapters/ElkPortAdapter",1266),nrr(1267,1,nlX,aV),nTm.ue=function(n,t){return function(n,t){var e,i,r,c;if(0!=(c=Im(nrM(n,(nha(),nXi)),61).g-Im(nrM(t,nXi),61).g))return c;if(e=Im(nrM(n,nU9),19),i=Im(nrM(t,nU9),19),e&&i&&0!=(r=e.a-i.a))return r;switch(Im(nrM(n,nXi),61).g){case 1:return Vv(n.i,t.i);case 2:return Vv(n.j,t.j);case 3:return Vv(t.i,n.i);case 4:return Vv(t.j,n.j);default:throw new gg(nw6).e}}(Im(n,118),Im(t,118))},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nmW,"ElkGraphAdapters/PortComparator",1267);var nCS=Cw(nmV,"EObject"),nCP=Cw(nmQ,nmJ),nCI=Cw(nmQ,nmY),nCC=Cw(nmQ,nmZ),nCO=Cw(nmQ,"ElkShape"),nCA=Cw(nmQ,nm1),nC$=Cw(nmQ,nm0),nCL=Cw(nmQ,nm2),nCN=Cw(nmV,nm3),nCx=Cw(nmV,"EFactory"),nCD=Cw(nmV,nm4),nCR=Cw(nmV,"EPackage"),nCK=Cw(nmQ,nm5),nCF=Cw(nmQ,nm6),nC_=Cw(nmQ,nm8);nrr(90,1,nm9),nTm.Jg=function(){return this.Kg(),null},nTm.Kg=function(){return null},nTm.Lg=function(){return this.Kg(),!1},nTm.Mg=function(){return!1},nTm.Ng=function(n){zD(this,n)},AY(nm7,"BasicNotifierImpl",90),nrr(97,90,nyu),nTm.nh=function(){return Ea(this)},nTm.Og=function(n,t){return n},nTm.Pg=function(){throw(new wP).e},nTm.Qg=function(n){var t;return t=YI(Im(Hm(this.Tg(),this.Vg()),18)),this.eh().ih(this,t.n,t.f,n)},nTm.Rg=function(n,t){throw(new wP).e},nTm.Sg=function(n,t,e){return nuc(this,n,t,e)},nTm.Tg=function(){var n;return this.Pg()&&(n=this.Pg().ck())?n:this.zh()},nTm.Ug=function(){return ni9(this)},nTm.Vg=function(){throw(new wP).e},nTm.Wg=function(){var n,t;return(t=this.ph().dk())||this.Pg().ik((mw(),t=null==(n=NL(nuq(this.Tg())))?nQ6:new Ml(this,n))),t},nTm.Xg=function(n,t){return n},nTm.Yg=function(n){return n.Gj()?n.aj():Qj(this.Tg(),n)},nTm.Zg=function(){var n;return(n=this.Pg())?n.fk():null},nTm.$g=function(){return this.Pg()?this.Pg().ck():null},nTm._g=function(n,t,e){return Yo(this,n,t,e)},nTm.ah=function(n){return __(this,n)},nTm.bh=function(n,t){return K8(this,n,t)},nTm.dh=function(){var n;return!!(n=this.Pg())&&n.gk()},nTm.eh=function(){throw(new wP).e},nTm.fh=function(){return Js(this)},nTm.gh=function(n,t,e,i){return J8(this,n,t,i)},nTm.hh=function(n,t,e){return Im(Hm(this.Tg(),t),66).Nj().Qj(this,this.yh(),t-this.Ah(),n,e)},nTm.ih=function(n,t,e,i){return NA(this,n,t,i)},nTm.jh=function(n,t,e){return Im(Hm(this.Tg(),t),66).Nj().Rj(this,this.yh(),t-this.Ah(),n,e)},nTm.kh=function(){return!!this.Pg()&&!!this.Pg().ek()},nTm.lh=function(n){return JY(this,n)},nTm.mh=function(n){return xe(this,n)},nTm.oh=function(n){return noX(this,n)},nTm.ph=function(){throw(new wP).e},nTm.qh=function(){return this.Pg()?this.Pg().ek():null},nTm.rh=function(){return Js(this)},nTm.sh=function(n,t){neV(this,n,t)},nTm.th=function(n){this.ph().hk(n)},nTm.uh=function(n){this.ph().kk(n)},nTm.vh=function(n){this.ph().jk(n)},nTm.wh=function(n,t){var e,i,r,c;return(c=this.Zg())&&n&&(t=Ye(c.Vk(),this,t),c.Zk(this)),(i=this.eh())&&((naz(this,this.eh(),this.Vg()).Bb&nls)!=0?(r=i.fh())&&(n?c||r.Zk(this):r.Yk(this)):(t=(e=this.Vg())>=0?this.Qg(t):this.eh().ih(this,-1-e,null,t),t=this.Sg(null,-1,t))),this.uh(n),t},nTm.xh=function(n){var t,e,i,r,c,a,u;if((c=Qj(e=this.Tg(),n))>=(t=this.Ah()))return Im(n,66).Nj().Uj(this,this.yh(),c-t);if(c<=-1){if(a=noW((neS(),nJk),e,n)){if(mp(),Im(a,66).Oj()||(a=Dt(BC(nJk,a))),r=Im((i=this.Yg(a))>=0?this._g(i,!0,!0):niO(this,a,!0),153),(u=a.Zj())>1||-1==u)return Im(Im(r,215).hl(n,!1),76)}else throw new gd(nyn+n.ne()+nyi).e}else if(n.$j())return Im((i=this.Yg(n))>=0?this._g(i,!1,!0):niO(this,n,!1),76);return new k9(this,n)},nTm.yh=function(){return BK(this)},nTm.zh=function(){return($g(),nQO).S},nTm.Ah=function(){return AW(this.zh())},nTm.Bh=function(n){nem(this,n)},nTm.Ib=function(){return nrN(this)},AY(nyo,"BasicEObjectImpl",97),nrr(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1}),nTm.Ch=function(n){return BF(this)[n]},nTm.Dh=function(n,t){$t(BF(this),n,t)},nTm.Eh=function(n){$t(BF(this),n,null)},nTm.Jg=function(){return Im(zF(this,4),126)},nTm.Kg=function(){throw(new wP).e},nTm.Lg=function(){return(4&this.Db)!=0},nTm.Pg=function(){throw(new wP).e},nTm.Fh=function(n){Jg(this,2,n)},nTm.Rg=function(n,t){this.Db=t<<16|255&this.Db,this.Fh(n)},nTm.Tg=function(){return Nd(this)},nTm.Vg=function(){return this.Db>>16},nTm.Wg=function(){var n;return mw(),null==(n=NL(nuq(Im(zF(this,16),26)||this.zh())))?nQ6:new Ml(this,n)},nTm.Mg=function(){return(1&this.Db)==0},nTm.Zg=function(){return Im(zF(this,128),1935)},nTm.$g=function(){return Im(zF(this,16),26)},nTm.dh=function(){return(32&this.Db)!=0},nTm.eh=function(){return Im(zF(this,2),49)},nTm.kh=function(){return(64&this.Db)!=0},nTm.ph=function(){throw(new wP).e},nTm.qh=function(){return Im(zF(this,64),281)},nTm.th=function(n){Jg(this,16,n)},nTm.uh=function(n){Jg(this,128,n)},nTm.vh=function(n){Jg(this,64,n)},nTm.yh=function(){return Jp(this)},nTm.Db=0,AY(nyo,"MinimalEObjectImpl",114),nrr(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),nTm.Fh=function(n){this.Cb=n},nTm.eh=function(){return this.Cb},AY(nyo,"MinimalEObjectImpl/Container",115),nrr(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),nTm._g=function(n,t,e){return ZT(this,n,t,e)},nTm.jh=function(n,t,e){return ntQ(this,n,t,e)},nTm.lh=function(n){return Dl(this,n)},nTm.sh=function(n,t){Xy(this,n,t)},nTm.zh=function(){return nsZ(),nVL},nTm.Bh=function(n){U$(this,n)},nTm.Ve=function(){return JX(this)},nTm.We=function(n){return nrM(this,n)},nTm.Xe=function(n){return _u(this,n)},nTm.Ye=function(n,t){return Yu(this,n,t)},AY(nys,"EMapPropertyHolderImpl",1985),nrr(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},aY),nTm._g=function(n,t,e){switch(n){case 0:return this.a;case 1:return this.b}return Yo(this,n,t,e)},nTm.lh=function(n){switch(n){case 0:return 0!=this.a;case 1:return 0!=this.b}return JY(this,n)},nTm.sh=function(n,t){switch(n){case 0:qc(this,gy(Ss(t)));return;case 1:qa(this,gy(Ss(t)));return}neV(this,n,t)},nTm.zh=function(){return nsZ(),nVE},nTm.Bh=function(n){switch(n){case 0:qc(this,0);return;case 1:qa(this,0);return}nem(this,n)},nTm.Ib=function(){var n;return(64&this.Db)!=0?nrN(this):(n=new TW(nrN(this)),n.a+=" (x: ",pA(n,this.a),n.a+=", y: ",pA(n,this.b),n.a+=")",n.a)},nTm.a=0,nTm.b=0,AY(nys,"ElkBendPointImpl",567),nrr(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),nTm._g=function(n,t,e){return W0(this,n,t,e)},nTm.hh=function(n,t,e){return nth(this,n,t,e)},nTm.jh=function(n,t,e){return Ut(this,n,t,e)},nTm.lh=function(n){return zH(this,n)},nTm.sh=function(n,t){nnP(this,n,t)},nTm.zh=function(){return nsZ(),nVP},nTm.Bh=function(n){WN(this,n)},nTm.zg=function(){return this.k},nTm.Ag=function(){return Li(this)},nTm.Ib=function(){return VL(this)},nTm.k=null,AY(nys,"ElkGraphElementImpl",723),nrr(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),nTm._g=function(n,t,e){return V9(this,n,t,e)},nTm.lh=function(n){return Qb(this,n)},nTm.sh=function(n,t){nnI(this,n,t)},nTm.zh=function(){return nsZ(),nV$},nTm.Bh=function(n){QM(this,n)},nTm.Bg=function(){return this.f},nTm.Cg=function(){return this.g},nTm.Dg=function(){return this.i},nTm.Eg=function(){return this.j},nTm.Fg=function(n,t){Eh(this,n,t)},nTm.Gg=function(n,t){Ef(this,n,t)},nTm.Hg=function(n){qh(this,n)},nTm.Ig=function(n){qf(this,n)},nTm.Ib=function(){return nt3(this)},nTm.f=0,nTm.g=0,nTm.i=0,nTm.j=0,AY(nys,"ElkShapeImpl",724),nrr(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),nTm._g=function(n,t,e){return Y_(this,n,t,e)},nTm.hh=function(n,t,e){return nnf(this,n,t,e)},nTm.jh=function(n,t,e){return nnl(this,n,t,e)},nTm.lh=function(n){return Xs(this,n)},nTm.sh=function(n,t){nrg(this,n,t)},nTm.zh=function(){return nsZ(),nVT},nTm.Bh=function(n){J9(this,n)},nTm.xg=function(){return this.d||(this.d=new Ph(nC$,this,8,5)),this.d},nTm.yg=function(){return this.e||(this.e=new Ph(nC$,this,7,4)),this.e},AY(nys,"ElkConnectableShapeImpl",725),nrr(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},aJ),nTm.Qg=function(n){return Z4(this,n)},nTm._g=function(n,t,e){switch(n){case 3:return N6(this);case 4:return this.b||(this.b=new Ph(nCA,this,4,7)),this.b;case 5:return this.c||(this.c=new Ph(nCA,this,5,8)),this.c;case 6:return this.a||(this.a=new An(nCL,this,6,6)),this.a;case 7:return TX(),this.b||(this.b=new Ph(nCA,this,4,7)),!(this.b.i<=1)||(this.c||(this.c=new Ph(nCA,this,5,8)),!(this.c.i<=1));case 8:return TX(),!!ni5(this);case 9:return TX(),!!niM(this);case 10:return TX(),this.b||(this.b=new Ph(nCA,this,4,7)),0!=this.b.i&&(this.c||(this.c=new Ph(nCA,this,5,8)),0!=this.c.i)}return W0(this,n,t,e)},nTm.hh=function(n,t,e){var i;switch(t){case 3:return this.Cb&&(e=(i=this.Db>>16)>=0?Z4(this,e):this.Cb.ih(this,-1-i,null,e)),SM(this,Im(n,33),e);case 4:return this.b||(this.b=new Ph(nCA,this,4,7)),QN(this.b,n,e);case 5:return this.c||(this.c=new Ph(nCA,this,5,8)),QN(this.c,n,e);case 6:return this.a||(this.a=new An(nCL,this,6,6)),QN(this.a,n,e)}return nth(this,n,t,e)},nTm.jh=function(n,t,e){switch(t){case 3:return SM(this,null,e);case 4:return this.b||(this.b=new Ph(nCA,this,4,7)),Ye(this.b,n,e);case 5:return this.c||(this.c=new Ph(nCA,this,5,8)),Ye(this.c,n,e);case 6:return this.a||(this.a=new An(nCL,this,6,6)),Ye(this.a,n,e)}return Ut(this,n,t,e)},nTm.lh=function(n){switch(n){case 3:return!!N6(this);case 4:return!!this.b&&0!=this.b.i;case 5:return!!this.c&&0!=this.c.i;case 6:return!!this.a&&0!=this.a.i;case 7:return this.b||(this.b=new Ph(nCA,this,4,7)),!(this.b.i<=1&&(this.c||(this.c=new Ph(nCA,this,5,8)),this.c.i<=1));case 8:return ni5(this);case 9:return niM(this);case 10:return this.b||(this.b=new Ph(nCA,this,4,7)),0!=this.b.i&&(this.c||(this.c=new Ph(nCA,this,5,8)),0!=this.c.i)}return zH(this,n)},nTm.sh=function(n,t){switch(n){case 3:nr7(this,Im(t,33));return;case 4:this.b||(this.b=new Ph(nCA,this,4,7)),noK(this.b),this.b||(this.b=new Ph(nCA,this,4,7)),AJ(this.b,Im(t,14));return;case 5:this.c||(this.c=new Ph(nCA,this,5,8)),noK(this.c),this.c||(this.c=new Ph(nCA,this,5,8)),AJ(this.c,Im(t,14));return;case 6:this.a||(this.a=new An(nCL,this,6,6)),noK(this.a),this.a||(this.a=new An(nCL,this,6,6)),AJ(this.a,Im(t,14));return}nnP(this,n,t)},nTm.zh=function(){return nsZ(),nVM},nTm.Bh=function(n){switch(n){case 3:nr7(this,null);return;case 4:this.b||(this.b=new Ph(nCA,this,4,7)),noK(this.b);return;case 5:this.c||(this.c=new Ph(nCA,this,5,8)),noK(this.c);return;case 6:this.a||(this.a=new An(nCL,this,6,6)),noK(this.a);return}WN(this,n)},nTm.Ib=function(){return nop(this)},AY(nys,"ElkEdgeImpl",352),nrr(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},aZ),nTm.Qg=function(n){return ZV(this,n)},nTm._g=function(n,t,e){switch(n){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return this.a||(this.a=new Tg(nCI,this,5)),this.a;case 6:return N9(this);case 7:if(t)return YP(this);return this.i;case 8:if(t)return YS(this);return this.f;case 9:return this.g||(this.g=new Ph(nCL,this,9,10)),this.g;case 10:return this.e||(this.e=new Ph(nCL,this,10,9)),this.e;case 11:return this.d}return ZT(this,n,t,e)},nTm.hh=function(n,t,e){var i;switch(t){case 6:return this.Cb&&(e=(i=this.Db>>16)>=0?ZV(this,e):this.Cb.ih(this,-1-i,null,e)),SS(this,Im(n,79),e);case 9:return this.g||(this.g=new Ph(nCL,this,9,10)),QN(this.g,n,e);case 10:return this.e||(this.e=new Ph(nCL,this,10,9)),QN(this.e,n,e)}return Im(Hm(Im(zF(this,16),26)||(nsZ(),nVS),t),66).Nj().Qj(this,Jp(this),t-AW((nsZ(),nVS)),n,e)},nTm.jh=function(n,t,e){switch(t){case 5:return this.a||(this.a=new Tg(nCI,this,5)),Ye(this.a,n,e);case 6:return SS(this,null,e);case 9:return this.g||(this.g=new Ph(nCL,this,9,10)),Ye(this.g,n,e);case 10:return this.e||(this.e=new Ph(nCL,this,10,9)),Ye(this.e,n,e)}return ntQ(this,n,t,e)},nTm.lh=function(n){switch(n){case 1:return 0!=this.j;case 2:return 0!=this.k;case 3:return 0!=this.b;case 4:return 0!=this.c;case 5:return!!this.a&&0!=this.a.i;case 6:return!!N9(this);case 7:return!!this.i;case 8:return!!this.f;case 9:return!!this.g&&0!=this.g.i;case 10:return!!this.e&&0!=this.e.i;case 11:return null!=this.d}return Dl(this,n)},nTm.sh=function(n,t){switch(n){case 1:ql(this,gy(Ss(t)));return;case 2:qw(this,gy(Ss(t)));return;case 3:qu(this,gy(Ss(t)));return;case 4:qb(this,gy(Ss(t)));return;case 5:this.a||(this.a=new Tg(nCI,this,5)),noK(this.a),this.a||(this.a=new Tg(nCI,this,5)),AJ(this.a,Im(t,14));return;case 6:nr8(this,Im(t,79));return;case 7:q9(this,Im(t,82));return;case 8:q8(this,Im(t,82));return;case 9:this.g||(this.g=new Ph(nCL,this,9,10)),noK(this.g),this.g||(this.g=new Ph(nCL,this,9,10)),AJ(this.g,Im(t,14));return;case 10:this.e||(this.e=new Ph(nCL,this,10,9)),noK(this.e),this.e||(this.e=new Ph(nCL,this,10,9)),AJ(this.e,Im(t,14));return;case 11:Gd(this,Sh(t));return}Xy(this,n,t)},nTm.zh=function(){return nsZ(),nVS},nTm.Bh=function(n){switch(n){case 1:ql(this,0);return;case 2:qw(this,0);return;case 3:qu(this,0);return;case 4:qb(this,0);return;case 5:this.a||(this.a=new Tg(nCI,this,5)),noK(this.a);return;case 6:nr8(this,null);return;case 7:q9(this,null);return;case 8:q8(this,null);return;case 9:this.g||(this.g=new Ph(nCL,this,9,10)),noK(this.g);return;case 10:this.e||(this.e=new Ph(nCL,this,10,9)),noK(this.e);return;case 11:Gd(this,null);return}U$(this,n)},nTm.Ib=function(){return niQ(this)},nTm.b=0,nTm.c=0,nTm.d=null,nTm.j=0,nTm.k=0,AY(nys,"ElkEdgeSectionImpl",439),nrr(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1}),nTm._g=function(n,t,e){return 0==n?(this.Ab||(this.Ab=new An(nQa,this,0,3)),this.Ab):_Q(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n),t,e)},nTm.hh=function(n,t,e){return 0==t?(this.Ab||(this.Ab=new An(nQa,this,0,3)),QN(this.Ab,n,e)):Im(Hm(Im(zF(this,16),26)||this.zh(),t),66).Nj().Qj(this,Jp(this),t-AW(this.zh()),n,e)},nTm.jh=function(n,t,e){return 0==t?(this.Ab||(this.Ab=new An(nQa,this,0,3)),Ye(this.Ab,n,e)):Im(Hm(Im(zF(this,16),26)||this.zh(),t),66).Nj().Rj(this,Jp(this),t-AW(this.zh()),n,e)},nTm.lh=function(n){return 0==n?!!this.Ab&&0!=this.Ab.i:RN(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n))},nTm.oh=function(n){return ns$(this,n)},nTm.sh=function(n,t){if(0===n){this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab),this.Ab||(this.Ab=new An(nQa,this,0,3)),AJ(this.Ab,Im(t,14));return}V5(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n),t)},nTm.uh=function(n){Jg(this,128,n)},nTm.zh=function(){return nhl(),nQH},nTm.Bh=function(n){if(0===n){this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab);return}W5(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n))},nTm.Gh=function(){this.Bb|=1},nTm.Hh=function(n){return nus(this,n)},nTm.Bb=0,AY(nyo,"EModelElementImpl",150),nrr(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},sJ),nTm.Ih=function(n,t){return nso(this,n,t)},nTm.Jh=function(n){var t,e,i,r;if(this.a!=HU(n)||(256&n.Bb)!=0)throw new gd(nyd+n.zb+nyl).e;for(e=Nw(n);0!=RJ(e.a).i;){if(Zb(t=Im(no1(e,0,Ti(r=Im(HX(RJ(e.a),0),87).c,88)?Im(r,26):(nhl(),nQG)),26)))return Im(i=HU(t).Nh().Jh(t),49).th(n),i;e=Nw(t)}return(null!=n.D?n.D:n.B)=="java.util.Map$Entry"?new Cl(n):new Iz(n)},nTm.Kh=function(n,t){return ns4(this,n,t)},nTm._g=function(n,t,e){switch(n){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),this.Ab;case 1:return this.a}return _Q(this,n-AW((nhl(),nQF)),Hm(Im(zF(this,16),26)||nQF,n),t,e)},nTm.hh=function(n,t,e){switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),QN(this.Ab,n,e);case 1:return this.a&&(e=Im(this.a,49).ih(this,4,nCR,e)),WP(this,Im(n,235),e)}return Im(Hm(Im(zF(this,16),26)||(nhl(),nQF),t),66).Nj().Qj(this,Jp(this),t-AW((nhl(),nQF)),n,e)},nTm.jh=function(n,t,e){switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),Ye(this.Ab,n,e);case 1:return WP(this,null,e)}return Im(Hm(Im(zF(this,16),26)||(nhl(),nQF),t),66).Nj().Rj(this,Jp(this),t-AW((nhl(),nQF)),n,e)},nTm.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return!!this.a}return RN(this,n-AW((nhl(),nQF)),Hm(Im(zF(this,16),26)||nQF,n))},nTm.sh=function(n,t){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab),this.Ab||(this.Ab=new An(nQa,this,0,3)),AJ(this.Ab,Im(t,14));return;case 1:nt_(this,Im(t,235));return}V5(this,n-AW((nhl(),nQF)),Hm(Im(zF(this,16),26)||nQF,n),t)},nTm.zh=function(){return nhl(),nQF},nTm.Bh=function(n){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab);return;case 1:nt_(this,null);return}W5(this,n-AW((nhl(),nQF)),Hm(Im(zF(this,16),26)||nQF,n))},AY(nyo,"EFactoryImpl",704),nrr(nyp,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},a1),nTm.Ih=function(n,t){switch(n.yj()){case 12:return Im(t,146).tg();case 13:return V7(t);default:throw new gd(nyf+n.ne()+nyl).e}},nTm.Jh=function(n){var t;switch(-1==n.G&&(n.G=(t=HU(n))?Yl(t.Mh(),n):-1),n.G){case 4:return new a0;case 6:return new dg;case 7:return new dp;case 8:return new aJ;case 9:return new aY;case 10:return new aZ;case 11:return new a3;default:throw new gd(nyd+n.zb+nyl).e}},nTm.Kh=function(n,t){switch(n.yj()){case 13:case 12:return null;default:throw new gd(nyf+n.ne()+nyl).e}},AY(nys,"ElkGraphFactoryImpl",nyp),nrr(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1}),nTm.Wg=function(){var n;return null==(n=NL(nuq(Im(zF(this,16),26)||this.zh())))?(mw(),mw(),nQ6):new MY(this,n)},nTm._g=function(n,t,e){switch(n){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),this.Ab;case 1:return this.ne()}return _Q(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n),t,e)},nTm.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb}return RN(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n))},nTm.sh=function(n,t){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab),this.Ab||(this.Ab=new An(nQa,this,0,3)),AJ(this.Ab,Im(t,14));return;case 1:this.Lh(Sh(t));return}V5(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n),t)},nTm.zh=function(){return nhl(),nQq},nTm.Bh=function(n){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab);return;case 1:this.Lh(null);return}W5(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n))},nTm.ne=function(){return this.zb},nTm.Lh=function(n){GF(this,n)},nTm.Ib=function(){return Wq(this)},nTm.zb=null,AY(nyo,"ENamedElementImpl",438),nrr(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},Nb),nTm.Qg=function(n){return Z1(this,n)},nTm._g=function(n,t,e){switch(n){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return this.rb||(this.rb=new O6(this,nQh,this)),this.rb;case 6:return this.vb||(this.vb=new Pe(nCR,this,6,7)),this.vb;case 7:if(t)return this.Db>>16==7?Im(this.Cb,235):null;return N7(this)}return _Q(this,n-AW((nhl(),nQX)),Hm(Im(zF(this,16),26)||nQX,n),t,e)},nTm.hh=function(n,t,e){var i;switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),QN(this.Ab,n,e);case 4:return this.sb&&(e=Im(this.sb,49).ih(this,1,nCx,e)),WG(this,Im(n,471),e);case 5:return this.rb||(this.rb=new O6(this,nQh,this)),QN(this.rb,n,e);case 6:return this.vb||(this.vb=new Pe(nCR,this,6,7)),QN(this.vb,n,e);case 7:return this.Cb&&(e=(i=this.Db>>16)>=0?Z1(this,e):this.Cb.ih(this,-1-i,null,e)),nuc(this,n,7,e)}return Im(Hm(Im(zF(this,16),26)||(nhl(),nQX),t),66).Nj().Qj(this,Jp(this),t-AW((nhl(),nQX)),n,e)},nTm.jh=function(n,t,e){switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),Ye(this.Ab,n,e);case 4:return WG(this,null,e);case 5:return this.rb||(this.rb=new O6(this,nQh,this)),Ye(this.rb,n,e);case 6:return this.vb||(this.vb=new Pe(nCR,this,6,7)),Ye(this.vb,n,e);case 7:return nuc(this,null,7,e)}return Im(Hm(Im(zF(this,16),26)||(nhl(),nQX),t),66).Nj().Rj(this,Jp(this),t-AW((nhl(),nQX)),n,e)},nTm.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.yb;case 3:return null!=this.xb;case 4:return!!this.sb;case 5:return!!this.rb&&0!=this.rb.i;case 6:return!!this.vb&&0!=this.vb.i;case 7:return!!N7(this)}return RN(this,n-AW((nhl(),nQX)),Hm(Im(zF(this,16),26)||nQX,n))},nTm.oh=function(n){return function(n,t){var e,i,r,c,a,u;if(!n.tb){for(n.rb||(n.rb=new O6(n,nQh,n)),u=new vN((c=n.rb).i),r=new Td(c);r.e!=r.i.gc();)a=(i=Im(J1(r),138)).ne(),(e=Im(null==a?neQ(u.f,null,i):VB(u.g,a,i),138))&&(null==a?neQ(u.f,null,e):VB(u.g,a,e));n.tb=u}return Im(Nz(n.tb,t),138)}(this,n)||ns$(this,n)},nTm.sh=function(n,t){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab),this.Ab||(this.Ab=new An(nQa,this,0,3)),AJ(this.Ab,Im(t,14));return;case 1:GF(this,Sh(t));return;case 2:GB(this,Sh(t));return;case 3:G_(this,Sh(t));return;case 4:ntJ(this,Im(t,471));return;case 5:this.rb||(this.rb=new O6(this,nQh,this)),noK(this.rb),this.rb||(this.rb=new O6(this,nQh,this)),AJ(this.rb,Im(t,14));return;case 6:this.vb||(this.vb=new Pe(nCR,this,6,7)),noK(this.vb),this.vb||(this.vb=new Pe(nCR,this,6,7)),AJ(this.vb,Im(t,14));return}V5(this,n-AW((nhl(),nQX)),Hm(Im(zF(this,16),26)||nQX,n),t)},nTm.vh=function(n){var t,e;if(n&&this.rb)for(e=new Td(this.rb);e.e!=e.i.gc();)Ti(t=J1(e),351)&&(Im(t,351).w=null);Jg(this,64,n)},nTm.zh=function(){return nhl(),nQX},nTm.Bh=function(n){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab);return;case 1:GF(this,null);return;case 2:GB(this,null);return;case 3:G_(this,null);return;case 4:ntJ(this,null);return;case 5:this.rb||(this.rb=new O6(this,nQh,this)),noK(this.rb);return;case 6:this.vb||(this.vb=new Pe(nCR,this,6,7)),noK(this.vb);return}W5(this,n-AW((nhl(),nQX)),Hm(Im(zF(this,16),26)||nQX,n))},nTm.Gh=function(){ZM(this)},nTm.Mh=function(){return this.rb||(this.rb=new O6(this,nQh,this)),this.rb},nTm.Nh=function(){return this.sb},nTm.Oh=function(){return this.ub},nTm.Ph=function(){return this.xb},nTm.Qh=function(){return this.yb},nTm.Rh=function(n){this.ub=n},nTm.Ib=function(){var n;return(64&this.Db)!=0?Wq(this):(n=new TW(Wq(this)),n.a+=" (nsURI: ",jT(n,this.yb),n.a+=", nsPrefix: ",jT(n,this.xb),n.a+=")",n.a)},nTm.xb=null,nTm.yb=null,AY(nyo,"EPackageImpl",179),nrr(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},nrn),nTm.q=!1,nTm.r=!1;var nCB=!1;AY(nys,"ElkGraphPackageImpl",555),nrr(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},a0),nTm.Qg=function(n){return ZQ(this,n)},nTm._g=function(n,t,e){switch(n){case 7:return xn(this);case 8:return this.a}return V9(this,n,t,e)},nTm.hh=function(n,t,e){var i;return 7===t?(this.Cb&&(e=(i=this.Db>>16)>=0?ZQ(this,e):this.Cb.ih(this,-1-i,null,e)),Ow(this,Im(n,160),e)):nth(this,n,t,e)},nTm.jh=function(n,t,e){return 7==t?Ow(this,null,e):Ut(this,n,t,e)},nTm.lh=function(n){switch(n){case 7:return!!xn(this);case 8:return!Pv("",this.a)}return Qb(this,n)},nTm.sh=function(n,t){switch(n){case 7:ncd(this,Im(t,160));return;case 8:q7(this,Sh(t));return}nnI(this,n,t)},nTm.zh=function(){return nsZ(),nVI},nTm.Bh=function(n){switch(n){case 7:ncd(this,null);return;case 8:q7(this,"");return}QM(this,n)},nTm.Ib=function(){return neh(this)},nTm.a="",AY(nys,"ElkLabelImpl",354),nrr(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},dg),nTm.Qg=function(n){return Z5(this,n)},nTm._g=function(n,t,e){switch(n){case 9:return this.c||(this.c=new An(nC_,this,9,9)),this.c;case 10:return this.a||(this.a=new An(nCF,this,10,11)),this.a;case 11:return xt(this);case 12:return this.b||(this.b=new An(nC$,this,12,3)),this.b;case 13:return TX(),this.a||(this.a=new An(nCF,this,10,11)),this.a.i>0}return Y_(this,n,t,e)},nTm.hh=function(n,t,e){var i;switch(t){case 9:return this.c||(this.c=new An(nC_,this,9,9)),QN(this.c,n,e);case 10:return this.a||(this.a=new An(nCF,this,10,11)),QN(this.a,n,e);case 11:return this.Cb&&(e=(i=this.Db>>16)>=0?Z5(this,e):this.Cb.ih(this,-1-i,null,e)),S8(this,Im(n,33),e);case 12:return this.b||(this.b=new An(nC$,this,12,3)),QN(this.b,n,e)}return nnf(this,n,t,e)},nTm.jh=function(n,t,e){switch(t){case 9:return this.c||(this.c=new An(nC_,this,9,9)),Ye(this.c,n,e);case 10:return this.a||(this.a=new An(nCF,this,10,11)),Ye(this.a,n,e);case 11:return S8(this,null,e);case 12:return this.b||(this.b=new An(nC$,this,12,3)),Ye(this.b,n,e)}return nnl(this,n,t,e)},nTm.lh=function(n){switch(n){case 9:return!!this.c&&0!=this.c.i;case 10:return!!this.a&&0!=this.a.i;case 11:return!!xt(this);case 12:return!!this.b&&0!=this.b.i;case 13:return this.a||(this.a=new An(nCF,this,10,11)),this.a.i>0}return Xs(this,n)},nTm.sh=function(n,t){switch(n){case 9:this.c||(this.c=new An(nC_,this,9,9)),noK(this.c),this.c||(this.c=new An(nC_,this,9,9)),AJ(this.c,Im(t,14));return;case 10:this.a||(this.a=new An(nCF,this,10,11)),noK(this.a),this.a||(this.a=new An(nCF,this,10,11)),AJ(this.a,Im(t,14));return;case 11:ncc(this,Im(t,33));return;case 12:this.b||(this.b=new An(nC$,this,12,3)),noK(this.b),this.b||(this.b=new An(nC$,this,12,3)),AJ(this.b,Im(t,14));return}nrg(this,n,t)},nTm.zh=function(){return nsZ(),nVC},nTm.Bh=function(n){switch(n){case 9:this.c||(this.c=new An(nC_,this,9,9)),noK(this.c);return;case 10:this.a||(this.a=new An(nCF,this,10,11)),noK(this.a);return;case 11:ncc(this,null);return;case 12:this.b||(this.b=new An(nC$,this,12,3)),noK(this.b);return}J9(this,n)},nTm.Ib=function(){return naC(this)},AY(nys,"ElkNodeImpl",239),nrr(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},dp),nTm.Qg=function(n){return ZJ(this,n)},nTm._g=function(n,t,e){return 9==n?N8(this):Y_(this,n,t,e)},nTm.hh=function(n,t,e){var i;return 9===t?(this.Cb&&(e=(i=this.Db>>16)>=0?ZJ(this,e):this.Cb.ih(this,-1-i,null,e)),SP(this,Im(n,33),e)):nnf(this,n,t,e)},nTm.jh=function(n,t,e){return 9==t?SP(this,null,e):nnl(this,n,t,e)},nTm.lh=function(n){return 9==n?!!N8(this):Xs(this,n)},nTm.sh=function(n,t){if(9===n){nr9(this,Im(t,33));return}nrg(this,n,t)},nTm.zh=function(){return nsZ(),nVO},nTm.Bh=function(n){if(9===n){nr9(this,null);return}J9(this,n)},nTm.Ib=function(){return naO(this)},AY(nys,"ElkPortImpl",186);var nCH=Cw(nyR,"BasicEMap/Entry");nrr(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},a3),nTm.Fb=function(n){return this===n},nTm.cd=function(){return this.b},nTm.Hb=function(){return T9(this)},nTm.Uh=function(n){Gn(this,Im(n,146))},nTm._g=function(n,t,e){switch(n){case 0:return this.b;case 1:return this.c}return Yo(this,n,t,e)},nTm.lh=function(n){switch(n){case 0:return!!this.b;case 1:return null!=this.c}return JY(this,n)},nTm.sh=function(n,t){switch(n){case 0:Gn(this,Im(t,146));return;case 1:Gi(this,t);return}neV(this,n,t)},nTm.zh=function(){return nsZ(),nVA},nTm.Bh=function(n){switch(n){case 0:Gn(this,null);return;case 1:Gi(this,null);return}nem(this,n)},nTm.Sh=function(){var n;return -1==this.a&&(n=this.b,this.a=n?Xg(n):0),this.a},nTm.dd=function(){return this.c},nTm.Th=function(n){this.a=n},nTm.ed=function(n){var t;return t=this.c,Gi(this,n),t},nTm.Ib=function(){var n;return(64&this.Db)!=0?nrN(this):(jP(jP(jP(n=new gX,this.b?this.b.tg():nhN),nw4),T4(this.c)),n.a)},nTm.a=-1,nTm.c=null;var nCq=AY(nys,"ElkPropertyToValueMapEntryImpl",1092);nrr(984,1,{},a6),AY(ny_,"JsonAdapter",984),nrr(210,60,nfm,gS),AY(ny_,"JsonImportException",210),nrr(857,1,{},Z0),AY(ny_,"JsonImporter",857),nrr(891,1,{},kH),AY(ny_,"JsonImporter/lambda$0$Type",891),nrr(892,1,{},kq),AY(ny_,"JsonImporter/lambda$1$Type",892),nrr(900,1,{},bo),AY(ny_,"JsonImporter/lambda$10$Type",900),nrr(902,1,{},kG),AY(ny_,"JsonImporter/lambda$11$Type",902),nrr(903,1,{},kz),AY(ny_,"JsonImporter/lambda$12$Type",903),nrr(909,1,{},LN),AY(ny_,"JsonImporter/lambda$13$Type",909),nrr(908,1,{},LL),AY(ny_,"JsonImporter/lambda$14$Type",908),nrr(904,1,{},kU),AY(ny_,"JsonImporter/lambda$15$Type",904),nrr(905,1,{},kX),AY(ny_,"JsonImporter/lambda$16$Type",905),nrr(906,1,{},kW),AY(ny_,"JsonImporter/lambda$17$Type",906),nrr(907,1,{},kV),AY(ny_,"JsonImporter/lambda$18$Type",907),nrr(912,1,{},bs),AY(ny_,"JsonImporter/lambda$19$Type",912),nrr(893,1,{},bh),AY(ny_,"JsonImporter/lambda$2$Type",893),nrr(910,1,{},bf),AY(ny_,"JsonImporter/lambda$20$Type",910),nrr(911,1,{},bl),AY(ny_,"JsonImporter/lambda$21$Type",911),nrr(915,1,{},bb),AY(ny_,"JsonImporter/lambda$22$Type",915),nrr(913,1,{},bw),AY(ny_,"JsonImporter/lambda$23$Type",913),nrr(914,1,{},bd),AY(ny_,"JsonImporter/lambda$24$Type",914),nrr(917,1,{},bg),AY(ny_,"JsonImporter/lambda$25$Type",917),nrr(916,1,{},bp),AY(ny_,"JsonImporter/lambda$26$Type",916),nrr(918,1,nh1,kQ),nTm.td=function(n){var t,e,i,r,c;t=this.b,e=this.a,r=N5(t,i=Sh(n)),c=null,r&&(c=ney(r)),JL(e,i,c)},AY(ny_,"JsonImporter/lambda$27$Type",918),nrr(919,1,nh1,kJ),nTm.td=function(n){var t,e,i,r,c;t=this.b,e=this.a,r=N5(t,i=Sh(n)),c=null,r&&(c=ney(r)),JL(e,i,c)},AY(ny_,"JsonImporter/lambda$28$Type",919),nrr(920,1,{},kY),AY(ny_,"JsonImporter/lambda$29$Type",920),nrr(896,1,{},bv),AY(ny_,"JsonImporter/lambda$3$Type",896),nrr(921,1,{},kZ),AY(ny_,"JsonImporter/lambda$30$Type",921),nrr(922,1,{},bm),AY(ny_,"JsonImporter/lambda$31$Type",922),nrr(923,1,{},by),AY(ny_,"JsonImporter/lambda$32$Type",923),nrr(924,1,{},bk),AY(ny_,"JsonImporter/lambda$33$Type",924),nrr(925,1,{},bj),AY(ny_,"JsonImporter/lambda$34$Type",925),nrr(859,1,{},bE),AY(ny_,"JsonImporter/lambda$35$Type",859),nrr(929,1,{},Ic),AY(ny_,"JsonImporter/lambda$36$Type",929),nrr(926,1,nh1,bT),nTm.td=function(n){var t,e,i;t=this.a,e=Im(n,469),L1(i=new gt,"x",e.a),L1(i,"y",e.b),$v(t,i)},AY(ny_,"JsonImporter/lambda$37$Type",926),nrr(927,1,nh1,k5),nTm.td=function(n){var t;t=this.a,nnT(this.b,neA(t,Im(n,202)))},AY(ny_,"JsonImporter/lambda$38$Type",927),nrr(928,1,nh1,k6),nTm.td=function(n){var t;t=this.a,nnT(this.b,neA(t,Im(n,202)))},AY(ny_,"JsonImporter/lambda$39$Type",928),nrr(894,1,{},bM),AY(ny_,"JsonImporter/lambda$4$Type",894),nrr(930,1,nh1,bS),nTm.td=function(n){var t,e,i;t=this.a,e=Im(n,8),L1(i=new gt,"x",e.a),L1(i,"y",e.b),$v(t,i)},AY(ny_,"JsonImporter/lambda$40$Type",930),nrr(895,1,{},bP),AY(ny_,"JsonImporter/lambda$5$Type",895),nrr(899,1,{},bI),AY(ny_,"JsonImporter/lambda$6$Type",899),nrr(897,1,{},bC),AY(ny_,"JsonImporter/lambda$7$Type",897),nrr(898,1,{},bO),AY(ny_,"JsonImporter/lambda$8$Type",898),nrr(901,1,{},bA),AY(ny_,"JsonImporter/lambda$9$Type",901),nrr(948,1,nh1,b$),nTm.td=function(n){$v(this.a,new $h(Sh(n)))},AY(ny_,"JsonMetaDataConverter/lambda$0$Type",948),nrr(949,1,nh1,bL),nTm.td=function(n){var t;$v(this.a,new $h(null!=(t=Im(n,237)).f?t.f:""+t.g))},AY(ny_,"JsonMetaDataConverter/lambda$1$Type",949),nrr(950,1,nh1,bN),nTm.td=function(n){var t,e;t=this.a,null!=(e=Im(n,149)).c&&$v(t,new $h(e.c))},AY(ny_,"JsonMetaDataConverter/lambda$2$Type",950),nrr(951,1,nh1,bx),nTm.td=function(n){var t;$v(this.a,new $h(null!=(t=Im(n,175)).f?t.f:""+t.g))},AY(ny_,"JsonMetaDataConverter/lambda$3$Type",951),nrr(237,22,{3:1,35:1,22:1,237:1},k4);var nCG=qE(nbB,"GraphFeature",237,nE2,function(){return nrt(),Um(xg(nCG,1),nfh,237,0,[nVU,nVq,nVG,nVH,nVz,nV_,nVF,nVB])},function(n){return nrt(),B5((zk(),nVX),n)});nrr(13,1,{35:1,146:1},bR,SA,jU,EM),nTm.wd=function(n){var t;return t=Im(n,146),Fb(this.b,t.tg())},nTm.Fb=function(n){return Ng(this,n)},nTm.wg=function(){return JZ(this)},nTm.tg=function(){return this.b},nTm.Hb=function(){return Yj(this.b)},nTm.Ib=function(){return this.b},AY(nbB,"Property",13),nrr(818,1,nlX,bD),nTm.ue=function(n,t){var e,i,r,c;return e=Im(n,94),i=Im(t,94),r=Im(e.We(this.a),35),c=Im(i.We(this.a),35),null!=r&&null!=c?zs(r,c):null!=r?-1:null!=c?1:0},nTm.Fb=function(n){return this===n},nTm.ve=function(){return new h6(this)},AY(nbB,"PropertyHolderComparator",818),nrr(695,1,nhF,bF),nTm.Nb=function(n){Ao(this,n)},nTm.Pb=function(){return function(n){var t;if(!n.a)throw(new $7).e;return t=n.a,n.a=xt(n.a),t}(this)},nTm.Qb=function(){py()},nTm.Ob=function(){return!!this.a},AY(ny1,"ElkGraphUtil/AncestorIterator",695);var nCz=Cw(nyR,"EList");nrr(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1}),nTm.Vc=function(n,t){Vf(this,n,t)},nTm.Fc=function(n){return _P(this,n)},nTm.Wc=function(n,t){return UG(this,n,t)},nTm.Gc=function(n){return AJ(this,n)},nTm.Zh=function(){return new Mm(this)},nTm.$h=function(){return new My(this)},nTm._h=function(n){return qH(this,n)},nTm.ai=function(){return!0},nTm.bi=function(n,t){},nTm.ci=function(){},nTm.di=function(n,t){_s(this,n,t)},nTm.ei=function(n,t,e){},nTm.fi=function(n,t){},nTm.gi=function(n,t,e){},nTm.Fb=function(n){return nar(this,n)},nTm.Hb=function(){return Up(this)},nTm.hi=function(){return!1},nTm.Kc=function(){return new Td(this)},nTm.Yc=function(){return new Mv(this)},nTm.Zc=function(n){var t;if(t=this.gc(),n<0||n>t)throw new Pt(n,t).e;return new AA(this,n)},nTm.ji=function(n,t){this.ii(n,this.Xc(t))},nTm.Mc=function(n){return BG(this,n)},nTm.li=function(n,t){return t},nTm._c=function(n,t){return Yb(this,n,t)},nTm.Ib=function(){return Qc(this)},nTm.ni=function(){return!0},nTm.oi=function(n,t){return XB(this,t)},AY(nyR,"AbstractEList",67),nrr(63,67,ny5,a7,HO,zi),nTm.Vh=function(n,t){return ntf(this,n,t)},nTm.Wh=function(n){return YY(this,n)},nTm.Xh=function(n,t){WV(this,n,t)},nTm.Yh=function(n){Fu(this,n)},nTm.pi=function(n){return _U(this,n)},nTm.$b=function(){Fo(this)},nTm.Hc=function(n){return nnv(this,n)},nTm.Xb=function(n){return HX(this,n)},nTm.qi=function(n){var t,e,i;++this.j,n>(e=null==this.g?0:this.g.length)&&(i=this.g,(t=e+(e/2|0)+4)<n&&(t=n),this.g=this.ri(t),null!=i&&now(i,0,this.g,0,this.i))},nTm.Xc=function(n){return ZK(this,n)},nTm.dc=function(){return 0==this.i},nTm.ii=function(n,t){return niS(this,n,t)},nTm.ri=function(n){return _f(nEX,nhA,1,n,5,1)},nTm.ki=function(n){return this.g[n]},nTm.$c=function(n){return ZI(this,n)},nTm.mi=function(n,t){return Bq(this,n,t)},nTm.gc=function(){return this.i},nTm.Pc=function(){return RD(this)},nTm.Qc=function(n){return QL(this,n)},nTm.i=0;var nCU=AY(nyR,"BasicEList",63),nCX=Cw(nyR,"TreeIterator");nrr(694,63,ny6),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return null!=this.g||this.c?null==this.g||0!=this.i&&Im(this.g[this.i-1],47).Ob():xr(this)},nTm.Pb=function(){return nrV(this)},nTm.Qb=function(){if(!this.e)throw new gg("There is no valid object to remove.").e;this.e.Qb()},nTm.c=!1,AY(nyR,"AbstractTreeIterator",694),nrr(685,694,ny6,Ed),nTm.si=function(n){var t;return Ti(t=Im(n,56).Wg().Kc(),279)&&Im(t,279).Nk(new a8),t},AY(ny1,"ElkGraphUtil/PropertiesSkippingTreeIterator",685),nrr(952,1,{},a8),AY(ny1,"ElkGraphUtil/PropertiesSkippingTreeIterator/1",952);var nCW=AY(ny1,"ElkReflect",null);nrr(889,1,nms,a9),nTm.vg=function(n){var t,e;return xl(),t=Im(n,174),e=Im(AN(t.b,t.b.length),9),new PR(t.a,e,t.c)},AY(ny1,"ElkReflect/lambda$0$Type",889),Cw(nyR,"ResourceLocator"),nrr(1051,1,{}),AY(nyR,"DelegatingResourceLocator",1051),nrr(1052,1051,{}),AY("org.eclipse.emf.common","EMFPlugin",1052);var nCV=Cw(nkR,"Adapter"),nCQ=Cw(nkR,"Notification");nrr(1153,1,nkK),nTm.ti=function(){return this.d},nTm.ui=function(n){},nTm.vi=function(n){this.d=n},nTm.wi=function(n){this.d==n&&(this.d=null)},nTm.d=null,AY(nm7,"AdapterImpl",1153),nrr(1995,67,nkF),nTm.Vh=function(n,t){return Qp(this,n,t)},nTm.Wh=function(n){var t,e,i;if(++this.j,n.dc())return!1;for(t=this.Vi(),i=n.Kc();i.Ob();)e=i.Pb(),this.Ii(this.oi(t,e)),++t;return!0},nTm.Xh=function(n,t){SC(this,n,t)},nTm.Yh=function(n){$y(this,n)},nTm.Gi=function(){return this.Ji()},nTm.$b=function(){SI(this,this.Vi(),this.Wi())},nTm.Hc=function(n){return this.Li(n)},nTm.Ic=function(n){return this.Mi(n)},nTm.Hi=function(n,t){this.Si().jm()},nTm.Ii=function(n){this.Si().jm()},nTm.Ji=function(){return this.Si()},nTm.Ki=function(){this.Si().jm()},nTm.Li=function(n){return this.Si().jm()},nTm.Mi=function(n){return this.Si().jm()},nTm.Ni=function(n){return this.Si().jm()},nTm.Oi=function(n){return this.Si().jm()},nTm.Pi=function(){return this.Si().jm()},nTm.Qi=function(n){return this.Si().jm()},nTm.Ri=function(){return this.Si().jm()},nTm.Ti=function(n){return this.Si().jm()},nTm.Ui=function(n,t){return this.Si().jm()},nTm.Vi=function(){return this.Si().jm()},nTm.Wi=function(){return this.Si().jm()},nTm.Xi=function(n){return this.Si().jm()},nTm.Yi=function(){return this.Si().jm()},nTm.Fb=function(n){return this.Ni(n)},nTm.Xb=function(n){return this.li(n,this.Oi(n))},nTm.Hb=function(){return this.Pi()},nTm.Xc=function(n){return this.Qi(n)},nTm.dc=function(){return this.Ri()},nTm.ii=function(n,t){return ntR(this,n,t)},nTm.ki=function(n){return this.Oi(n)},nTm.$c=function(n){return Cd(this,n)},nTm.Mc=function(n){var t;return(t=this.Xc(n))>=0&&(this.$c(t),!0)},nTm.mi=function(n,t){return this.Ui(n,this.oi(n,t))},nTm.gc=function(){return this.Vi()},nTm.Pc=function(){return this.Wi()},nTm.Qc=function(n){return this.Xi(n)},nTm.Ib=function(){return this.Yi()},AY(nyR,"DelegatingEList",1995),nrr(1996,1995,nkF),nTm.Vh=function(n,t){return nuE(this,n,t)},nTm.Wh=function(n){return this.Vh(this.Vi(),n)},nTm.Xh=function(n,t){ni8(this,n,t)},nTm.Yh=function(n){niU(this,n)},nTm.ai=function(){return!this.bj()},nTm.$b=function(){noH(this)},nTm.Zi=function(n,t,e,i,r){return new NT(this,n,t,e,i,r)},nTm.$i=function(n){zD(this.Ai(),n)},nTm._i=function(){return null},nTm.aj=function(){return -1},nTm.Ai=function(){return null},nTm.bj=function(){return!1},nTm.cj=function(n,t){return t},nTm.dj=function(n,t){return t},nTm.ej=function(){return!1},nTm.fj=function(){return!this.Ri()},nTm.ii=function(n,t){var e,i;return this.ej()?(i=this.fj(),e=ntR(this,n,t),this.$i(this.Zi(7,Va(t),e,n,i)),e):ntR(this,n,t)},nTm.$c=function(n){var t,e,i,r;return this.ej()?(e=null,i=this.fj(),t=this.Zi(4,r=Cd(this,n),null,n,i),this.bj()&&r?(e=this.dj(r,e))?(e.Ei(t),e.Fi()):this.$i(t):e?(e.Ei(t),e.Fi()):this.$i(t)):(r=Cd(this,n),this.bj()&&r&&(e=this.dj(r,null))&&e.Fi()),r},nTm.mi=function(n,t){return nuT(this,n,t)},AY(nm7,"DelegatingNotifyingListImpl",1996),nrr(143,1,nk_),nTm.Ei=function(n){return nnQ(this,n)},nTm.Fi=function(){Bk(this)},nTm.xi=function(){return this.d},nTm._i=function(){return null},nTm.gj=function(){return null},nTm.yi=function(n){return -1},nTm.zi=function(){return ncK(this)},nTm.Ai=function(){return null},nTm.Bi=function(){return ncF(this)},nTm.Ci=function(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o},nTm.hj=function(){return!1},nTm.Di=function(n){var t,e,i,r,c,a,u,o;switch(this.d){case 1:case 2:switch(n.xi()){case 1:case 2:if(jf(n.Ai())===jf(this.Ai())&&this.yi(null)==n.yi(null))return this.g=n.zi(),1==n.xi()&&(this.d=1),!0}case 4:if(4===n.xi()&&jf(n.Ai())===jf(this.Ai())&&this.yi(null)==n.yi(null))return(a=noZ(this),c=this.o<0?this.o<-2?-2-this.o-1:-1:this.o,i=n.Ci(),this.d=6,o=new HO(2),c<=i)?(_P(o,this.n),_P(o,n.Bi()),this.g=Um(xg(nYL,1),nfH,25,15,[this.o=c,i+1])):(_P(o,n.Bi()),_P(o,this.n),this.g=Um(xg(nYL,1),nfH,25,15,[this.o=i,c])),this.n=o,a||(this.o=-2-this.o-1),!0;break;case 6:if(4===n.xi()&&jf(n.Ai())===jf(this.Ai())&&this.yi(null)==n.yi(null)){for(a=noZ(this),i=n.Ci(),e=_f(nYL,nfH,25,(u=Im(this.g,48)).length+1,15,1),t=0;t<u.length;)if((r=u[t])<=i)e[t++]=r,++i;else break;for(Im(this.n,15).Vc(t,n.Bi()),e[t]=i;++t<e.length;)e[t]=u[t-1];return this.g=e,a||(this.o=-2-e[0]),!0}}return!1},nTm.Ib=function(){var n,t,e,i,r;switch(e=new TW(pb(this.gm)+"@"+(Xg(this)>>>0).toString(16)),e.a+=" (eventType: ",this.d){case 1:e.a+="SET";break;case 2:e.a+="UNSET";break;case 3:e.a+="ADD";break;case 5:e.a+="ADD_MANY";break;case 4:e.a+="REMOVE";break;case 6:e.a+="REMOVE_MANY";break;case 7:e.a+="MOVE";break;case 8:e.a+="REMOVING_ADAPTER";break;case 9:e.a+="RESOLVE";break;default:i=this.d,e.a+=i}if(naH(this)&&(e.a+=", touch: true"),e.a+=", position: ",r=this.o<0?this.o<-2?-2-this.o-1:-1:this.o,e.a+=r,e.a+=", notifier: ",jE(e,this.Ai()),e.a+=", feature: ",jE(e,this._i()),e.a+=", oldValue: ",jE(e,ncF(this)),e.a+=", newValue: ",6==this.d&&Ti(this.g,48)){for(t=Im(this.g,48),e.a+="[",n=0;n<t.length;)e.a+=t[n],++n<t.length&&(e.a+=nhC);e.a+="]"}else jE(e,ncK(this));return e.a+=", isTouch: ",p$(e,naH(this)),e.a+=", wasSet: ",p$(e,noZ(this)),e.a+=")",e.a},nTm.d=0,nTm.e=0,nTm.f=0,nTm.j=0,nTm.k=0,nTm.o=0,nTm.p=0,AY(nm7,"NotificationImpl",143),nrr(1167,143,nk_,NT),nTm._i=function(){return this.a._i()},nTm.yi=function(n){return this.a.aj()},nTm.Ai=function(){return this.a.Ai()},AY(nm7,"DelegatingNotifyingListImpl/1",1167),nrr(242,63,ny5,un,pc),nTm.Fc=function(n){return Qv(this,Im(n,366))},nTm.Ei=function(n){return Qv(this,n)},nTm.Fi=function(){var n,t,e;for(n=0;n<this.i;++n)null!=(e=(t=Im(this.g[n],366)).Ai())&&-1!=t.xi()&&Im(e,92).Ng(t)},nTm.ri=function(n){return _f(nCQ,nhA,366,n,0,1)},AY(nm7,"NotificationChainImpl",242),nrr(1378,90,nm9),nTm.Kg=function(){return this.e},nTm.Mg=function(){return(1&this.f)!=0},nTm.f=1,AY(nm7,"NotifierImpl",1378),nrr(1993,63,ny5),nTm.Vh=function(n,t){return nuK(this,n,t)},nTm.Wh=function(n){return this.Vh(this.i,n)},nTm.Xh=function(n,t){ni1(this,n,t)},nTm.Yh=function(n){ni6(this,n)},nTm.ai=function(){return!this.bj()},nTm.$b=function(){noK(this)},nTm.Zi=function(n,t,e,i,r){return new NM(this,n,t,e,i,r)},nTm.$i=function(n){zD(this.Ai(),n)},nTm._i=function(){return null},nTm.aj=function(){return -1},nTm.Ai=function(){return null},nTm.bj=function(){return!1},nTm.ij=function(){return!1},nTm.cj=function(n,t){return t},nTm.dj=function(n,t){return t},nTm.ej=function(){return!1},nTm.fj=function(){return 0!=this.i},nTm.ii=function(n,t){return Vm(this,n,t)},nTm.$c=function(n){return ncQ(this,n)},nTm.mi=function(n,t){return nu2(this,n,t)},nTm.jj=function(n,t){return t},nTm.kj=function(n,t){return t},nTm.lj=function(n,t,e){return e},AY(nm7,"NotifyingListImpl",1993),nrr(1166,143,nk_,NM),nTm._i=function(){return this.a._i()},nTm.yi=function(n){return this.a.aj()},nTm.Ai=function(){return this.a.Ai()},AY(nm7,"NotifyingListImpl/1",1166),nrr(953,63,ny5,SN),nTm.Hc=function(n){return this.i>10?(this.b&&this.c.j==this.a||(this.b=new CI(this),this.a=this.j),v$(this.b,n)):nnv(this,n)},nTm.ni=function(){return!0},nTm.a=0,AY(nyR,"AbstractEList/1",953),nrr(295,73,nle,Pt),AY(nyR,"AbstractEList/BasicIndexOutOfBoundsException",295),nrr(40,1,nhF,Td),nTm.Nb=function(n){Ao(this,n)},nTm.mj=function(){if(this.i.j!=this.f)throw(new wI).e},nTm.nj=function(){return J1(this)},nTm.Ob=function(){return this.e!=this.i.gc()},nTm.Pb=function(){return this.nj()},nTm.Qb=function(){nnA(this)},nTm.e=0,nTm.f=0,nTm.g=-1,AY(nyR,"AbstractEList/EIterator",40),nrr(278,40,nhX,Mv,AA),nTm.Qb=function(){nnA(this)},nTm.Rb=function(n){Qq(this,n)},nTm.oj=function(){var n;try{return n=this.d.Xb(--this.e),this.mj(),this.g=this.e,n}catch(n){if(Ti(n=Uu(n),73))throw this.mj(),(new wO).e;throw n.e}},nTm.pj=function(n){Y2(this,n)},nTm.Sb=function(){return 0!=this.e},nTm.Tb=function(){return this.e},nTm.Ub=function(){return this.oj()},nTm.Vb=function(){return this.e-1},nTm.Wb=function(n){this.pj(n)},AY(nyR,"AbstractEList/EListIterator",278),nrr(341,40,nhF,Mm),nTm.nj=function(){return J0(this)},nTm.Qb=function(){throw(new wP).e},AY(nyR,"AbstractEList/NonResolvingEIterator",341),nrr(385,278,nhX,My,PS),nTm.Rb=function(n){throw(new wP).e},nTm.nj=function(){var n;try{return n=this.c.ki(this.e),this.mj(),this.g=this.e++,n}catch(n){if(Ti(n=Uu(n),73))throw this.mj(),(new wO).e;throw n.e}},nTm.oj=function(){var n;try{return n=this.c.ki(--this.e),this.mj(),this.g=this.e,n}catch(n){if(Ti(n=Uu(n),73))throw this.mj(),(new wO).e;throw n.e}},nTm.Qb=function(){throw(new wP).e},nTm.Wb=function(n){throw(new wP).e},AY(nyR,"AbstractEList/NonResolvingEListIterator",385),nrr(1982,67,nkq),nTm.Vh=function(n,t){var e,i,r,c,a,u,o,s,h;if(0==(i=t.gc()))return++this.j,!1;for(e=Xx(this,(s=null==(o=Im(zF(this.a,4),126))?0:o.length)+i),(h=s-n)>0&&now(o,n,e,n+i,h),u=t.Kc(),c=0;c<i;++c)$t(e,n+c,XB(this,a=u.Pb()));for(JO(this,e),r=0;r<i;++r)a=e[n],this.bi(n,a),++n;return!0},nTm.Wh=function(n){var t,e,i,r,c,a,u,o,s;if(0==(i=n.gc()))return++this.j,!1;for(t=Xx(this,s=(o=null==(e=Im(zF(this.a,4),126))?0:e.length)+i),u=n.Kc(),c=o;c<s;++c)$t(t,c,XB(this,a=u.Pb()));for(JO(this,t),r=o;r<s;++r)a=t[r],this.bi(r,a);return!0},nTm.Xh=function(n,t){var e,i,r,c;e=Xx(this,(r=null==(i=Im(zF(this.a,4),126))?0:i.length)+1),c=XB(this,t),n!=r&&now(i,n,e,n+1,r-n),$t(e,n,c),JO(this,e),this.bi(n,t)},nTm.Yh=function(n){var t,e,i;$t(t=Xx(this,(i=null==(e=Im(zF(this.a,4),126))?0:e.length)+1),i,XB(this,n)),JO(this,t),this.bi(i,n)},nTm.Zh=function(){return new KQ(this)},nTm.$h=function(){return new O5(this)},nTm._h=function(n){var t,e;if(e=null==(t=Im(zF(this.a,4),126))?0:t.length,n<0||n>e)throw new Pt(n,e).e;return new $G(this,n)},nTm.$b=function(){var n,t;++this.j,t=null==(n=Im(zF(this.a,4),126))?0:n.length,JO(this,null),_s(this,t,n)},nTm.Hc=function(n){var t,e,i,r;if(null!=(t=Im(zF(this.a,4),126))){if(null!=n){for(i=0,r=(e=t).length;i<r;++i)if(WY(n,e[i]))return!0}else for(i=0,r=(e=t).length;i<r;++i)if(jf(e[i])===jf(n))return!0}return!1},nTm.Xb=function(n){var t,e;if(n>=(e=null==(t=Im(zF(this.a,4),126))?0:t.length))throw new Pt(n,e).e;return t[n]},nTm.Xc=function(n){var t,e,i;if(null!=(t=Im(zF(this.a,4),126))){if(null!=n){for(e=0,i=t.length;e<i;++e)if(WY(n,t[e]))return e}else for(e=0,i=t.length;e<i;++e)if(jf(t[e])===jf(n))return e}return -1},nTm.dc=function(){return null==Im(zF(this.a,4),126)},nTm.Kc=function(){return new KV(this)},nTm.Yc=function(){return new O4(this)},nTm.Zc=function(n){var t,e;if(e=null==(t=Im(zF(this.a,4),126))?0:t.length,n<0||n>e)throw new Pt(n,e).e;return new $q(this,n)},nTm.ii=function(n,t){var e,i,r;if(n>=(r=null==(e=Q8(this))?0:e.length))throw new gu(ny2+n+ny3+r).e;if(t>=r)throw new gu(ny4+t+ny3+r).e;return i=e[t],n!=t&&(n<t?now(e,n,e,n+1,t-n):now(e,t+1,e,t,n-t),$t(e,n,i),JO(this,e)),i},nTm.ki=function(n){return Im(zF(this.a,4),126)[n]},nTm.$c=function(n){return function(n,t){var e,i,r,c,a;if(t>=(a=null==(e=Im(zF(n.a,4),126))?0:e.length))throw new Pt(t,a).e;return r=e[t],1==a?i=null:(now(e,0,i=_f(nCV,nkH,415,a-1,0,1),0,t),(c=a-t-1)>0&&now(e,t+1,i,t,c)),JO(n,i),neq(n,t,r),r}(this,n)},nTm.mi=function(n,t){var e,i;return i=(e=Q8(this))[n],$t(e,n,XB(this,t)),JO(this,e),i},nTm.gc=function(){var n;return null==(n=Im(zF(this.a,4),126))?0:n.length},nTm.Pc=function(){var n,t,e;return t=_f(nCV,nkH,415,e=null==(n=Im(zF(this.a,4),126))?0:n.length,0,1),e>0&&now(n,0,t,0,e),t},nTm.Qc=function(n){var t,e;return(e=null==(t=Im(zF(this.a,4),126))?0:t.length)>0&&(n.length<e&&(n=qm(Xp(n).c,e)),now(t,0,n,0,e)),n.length>e&&$t(n,e,null),n},AY(nyR,"ArrayDelegatingEList",1982),nrr(1038,40,nhF,KV),nTm.mj=function(){if(this.b.j!=this.f||jf(Im(zF(this.b.a,4),126))!==jf(this.a))throw(new wI).e},nTm.Qb=function(){nnA(this),this.a=Im(zF(this.b.a,4),126)},AY(nyR,"ArrayDelegatingEList/EIterator",1038),nrr(706,278,nhX,O4,$q),nTm.mj=function(){if(this.b.j!=this.f||jf(Im(zF(this.b.a,4),126))!==jf(this.a))throw(new wI).e},nTm.pj=function(n){Y2(this,n),this.a=Im(zF(this.b.a,4),126)},nTm.Qb=function(){nnA(this),this.a=Im(zF(this.b.a,4),126)},AY(nyR,"ArrayDelegatingEList/EListIterator",706),nrr(1039,341,nhF,KQ),nTm.mj=function(){if(this.b.j!=this.f||jf(Im(zF(this.b.a,4),126))!==jf(this.a))throw(new wI).e},AY(nyR,"ArrayDelegatingEList/NonResolvingEIterator",1039),nrr(707,385,nhX,O5,$G),nTm.mj=function(){if(this.b.j!=this.f||jf(Im(zF(this.b.a,4),126))!==jf(this.a))throw(new wI).e},AY(nyR,"ArrayDelegatingEList/NonResolvingEListIterator",707),nrr(606,295,nle,jX),AY(nyR,"BasicEList/BasicIndexOutOfBoundsException",606),nrr(696,63,ny5,jc),nTm.Vc=function(n,t){throw(new wP).e},nTm.Fc=function(n){throw(new wP).e},nTm.Wc=function(n,t){throw(new wP).e},nTm.Gc=function(n){throw(new wP).e},nTm.$b=function(){throw(new wP).e},nTm.qi=function(n){throw(new wP).e},nTm.Kc=function(){return this.Zh()},nTm.Yc=function(){return this.$h()},nTm.Zc=function(n){return this._h(n)},nTm.ii=function(n,t){throw(new wP).e},nTm.ji=function(n,t){throw(new wP).e},nTm.$c=function(n){throw(new wP).e},nTm.Mc=function(n){throw(new wP).e},nTm._c=function(n,t){throw(new wP).e},AY(nyR,"BasicEList/UnmodifiableEList",696),nrr(705,1,{3:1,20:1,14:1,15:1,58:1,589:1}),nTm.Vc=function(n,t){!function(n,t,e){n.c.Vc(t,Im(e,133))}(this,n,Im(t,42))},nTm.Fc=function(n){var t;return t=Im(n,42),this.c.Fc(Im(t,133))},nTm.Jc=function(n){KA(this,n)},nTm.Xb=function(n){return Im(HX(this.c,n),133)},nTm.ii=function(n,t){return Im(this.c.ii(n,t),42)},nTm.ji=function(n,t){!function(n,t,e){n.c.ji(t,Im(e,133))}(this,n,Im(t,42))},nTm.Lc=function(){return new CL(null,new x6(this,16))},nTm.$c=function(n){return Im(this.c.$c(n),42)},nTm._c=function(n,t){var e;return e=Im(t,42),Im(this.c._c(n,Im(e,133)),42)},nTm.ad=function(n){GG(this,n)},nTm.Nc=function(){return new x6(this,16)},nTm.Oc=function(){return new CL(null,new x6(this,16))},nTm.Wc=function(n,t){return this.c.Wc(n,t)},nTm.Gc=function(n){return this.c.Gc(n)},nTm.$b=function(){this.c.$b()},nTm.Hc=function(n){return this.c.Hc(n)},nTm.Ic=function(n){return Ur(this.c,n)},nTm.qj=function(){var n,t;if(null==this.d){for(this.d=_f(nCU,nkG,63,2*this.f+1,0,1),t=this.e,this.f=0,n=this.c.Kc();n.e!=n.i.gc();)YC(this,Im(n.nj(),133));this.e=t}},nTm.Fb=function(n){return PM(this,n)},nTm.Hb=function(){return Up(this.c)},nTm.Xc=function(n){return this.c.Xc(n)},nTm.rj=function(){this.c=new b_(this)},nTm.dc=function(){return 0==this.f},nTm.Kc=function(){return this.c.Kc()},nTm.Yc=function(){return this.c.Yc()},nTm.Zc=function(n){return this.c.Zc(n)},nTm.sj=function(){return _o(this)},nTm.tj=function(n,t,e){return new Ia(n,t,e)},nTm.uj=function(){return new ut},nTm.Mc=function(n){return qq(this,n)},nTm.gc=function(){return this.f},nTm.bd=function(n,t){return new x2(this.c,n,t)},nTm.Pc=function(){return this.c.Pc()},nTm.Qc=function(n){return this.c.Qc(n)},nTm.Ib=function(){return Qc(this.c)},nTm.e=0,nTm.f=0,AY(nyR,"BasicEMap",705),nrr(1033,63,ny5,b_),nTm.bi=function(n,t){var e;e=Im(t,133),YC(this.a,e)},nTm.ei=function(n,t,e){++(Im(t,133),this).a.e},nTm.fi=function(n,t){var e;e=Im(t,133),Vy(this.a,e)},nTm.gi=function(n,t,e){var i,r;i=Im(t,133),r=Im(e,133),Vy(this.a,r),YC(this.a,i)},nTm.di=function(n,t){zO(this.a)},AY(nyR,"BasicEMap/1",1033),nrr(1034,63,ny5,ut),nTm.ri=function(n){return _f(nCJ,nkz,612,n,0,1)},AY(nyR,"BasicEMap/2",1034),nrr(1035,1965,nhq,bB),nTm.$b=function(){this.a.c.$b()},nTm.Hc=function(n){return QF(this.a,n)},nTm.Kc=function(){return 0==this.a.f?(Si(),nVY.a):new pa(this.a)},nTm.Mc=function(n){var t;return t=this.a.f,Ja(this.a,n),this.a.f!=t},nTm.gc=function(){return this.a.f},AY(nyR,"BasicEMap/3",1035),nrr(1036,28,nhH,bH),nTm.$b=function(){this.a.c.$b()},nTm.Hc=function(n){return nac(this.a,n)},nTm.Kc=function(){return 0==this.a.f?(Si(),nVY.a):new pu(this.a)},nTm.gc=function(){return this.a.f},AY(nyR,"BasicEMap/4",1036),nrr(1037,1965,nhq,bq),nTm.$b=function(){this.a.c.$b()},nTm.Hc=function(n){var t,e,i,r,c,a,u,o,s;if(this.a.f>0&&Ti(n,42)&&(this.a.qj(),r=null==(u=(o=Im(n,42)).cd())?0:Xg(u),c=SO(this.a,r),t=this.a.d[c])){for(a=0,e=Im(t.g,367),s=t.i;a<s;++a)if((i=e[a]).Sh()==r&&i.Fb(o))return!0}return!1},nTm.Kc=function(){return 0==this.a.f?(Si(),nVY.a):new L_(this.a)},nTm.Mc=function(n){return function n(t,e){var i,r,c,a,u,o,s,h,f;if(t.a.f>0&&Ti(e,42)&&(t.a.qj(),a=null==(s=(h=Im(e,42)).cd())?0:Xg(s),u=SO(t.a,a),i=t.a.d[u])){for(o=0,r=Im(i.g,367),f=i.i;o<f;++o)if((c=r[o]).Sh()==a&&c.Fb(h))return n(t,h),!0}return!1}(this,n)},nTm.gc=function(){return this.a.f},AY(nyR,"BasicEMap/5",1037),nrr(613,1,nhF,L_),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return -1!=this.b},nTm.Pb=function(){var n;if(this.f.e!=this.c)throw(new wI).e;if(-1==this.b)throw(new wO).e;return this.d=this.a,this.e=this.b,nno(this),n=Im(this.f.d[this.d].g[this.e],133),this.vj(n)},nTm.Qb=function(){if(this.f.e!=this.c)throw(new wI).e;if(-1==this.e)throw(new wM).e;this.f.c.Mc(HX(this.f.d[this.d],this.e)),this.c=this.f.e,this.e=-1,this.a==this.d&&-1!=this.b&&--this.b},nTm.vj=function(n){return n},nTm.a=0,nTm.b=-1,nTm.c=0,nTm.d=0,nTm.e=0,AY(nyR,"BasicEMap/BasicEMapIterator",613),nrr(1031,613,nhF,pa),nTm.vj=function(n){return n.cd()},AY(nyR,"BasicEMap/BasicEMapKeyIterator",1031),nrr(1032,613,nhF,pu),nTm.vj=function(n){return n.dd()},AY(nyR,"BasicEMap/BasicEMapValueIterator",1032),nrr(1030,1,nhB,bG),nTm.wc=function(n){zS(this,n)},nTm.yc=function(n,t,e){return Vx(this,n,t,e)},nTm.$b=function(){this.a.c.$b()},nTm._b=function(n){return QF(this.a,n)},nTm.uc=function(n){return nac(this.a,n)},nTm.vc=function(){var n;return(n=this.a).g||(n.g=new a2),n.g.a||(n.g.a=new bq(n)),n.g.a},nTm.Fb=function(n){return PM(this.a,n)},nTm.xc=function(n){return Q_(this.a,n)},nTm.Hb=function(){return Up(this.a.c)},nTm.dc=function(){return 0==this.a.f},nTm.ec=function(){var n;return(n=this.a).g||(n.g=new a2),n.g.b||(n.g.b=new bB(n)),n.g.b},nTm.zc=function(n,t){return nnb(this.a,n,t)},nTm.Bc=function(n){return Ja(this.a,n)},nTm.gc=function(){return this.a.f},nTm.Ib=function(){return Qc(this.a.c)},nTm.Cc=function(){var n;return(n=this.a).g||(n.g=new a2),n.g.d||(n.g.d=new bH(n)),n.g.d},AY(nyR,"BasicEMap/DelegatingMap",1030),nrr(612,1,{42:1,133:1,612:1},Ia),nTm.Fb=function(n){var t;return!!Ti(n,42)&&(t=Im(n,42),(null!=this.b?WY(this.b,t.cd()):jf(this.b)===jf(t.cd()))&&(null!=this.c?WY(this.c,t.dd()):jf(this.c)===jf(t.dd())))},nTm.Sh=function(){return this.a},nTm.cd=function(){return this.b},nTm.dd=function(){return this.c},nTm.Hb=function(){return this.a^(null==this.c?0:Xg(this.c))},nTm.Th=function(n){this.a=n},nTm.Uh=function(n){throw(new wm).e},nTm.ed=function(n){var t;return t=this.c,this.c=n,t},nTm.Ib=function(){return this.b+"->"+this.c},nTm.a=0;var nCJ=AY(nyR,"BasicEMap/EntryImpl",612);nrr(536,1,{},a2),AY(nyR,"BasicEMap/View",536),nrr(768,1,{}),nTm.Fb=function(n){return nrp((LV(),nMv),n)},nTm.Hb=function(){return Xu((LV(),nMv))},nTm.Ib=function(){return ntK((LV(),nMv))},AY(nyR,"ECollections/BasicEmptyUnmodifiableEList",768),nrr(1312,1,nhX,ue),nTm.Nb=function(n){Ao(this,n)},nTm.Rb=function(n){throw(new wP).e},nTm.Ob=function(){return!1},nTm.Sb=function(){return!1},nTm.Pb=function(){throw(new wO).e},nTm.Tb=function(){return 0},nTm.Ub=function(){throw(new wO).e},nTm.Vb=function(){return -1},nTm.Qb=function(){throw(new wP).e},nTm.Wb=function(n){throw(new wP).e},AY(nyR,"ECollections/BasicEmptyUnmodifiableEList/1",1312),nrr(1310,768,{20:1,14:1,15:1,58:1},dv),nTm.Vc=function(n,t){pG()},nTm.Fc=function(n){return pz()},nTm.Wc=function(n,t){return pU()},nTm.Gc=function(n){return pX()},nTm.$b=function(){pW()},nTm.Hc=function(n){return!1},nTm.Ic=function(n){return!1},nTm.Jc=function(n){KA(this,n)},nTm.Xb=function(n){return jD((LV(),n)),null},nTm.Xc=function(n){return -1},nTm.dc=function(){return!0},nTm.Kc=function(){return this.a},nTm.Yc=function(){return this.a},nTm.Zc=function(n){return this.a},nTm.ii=function(n,t){return pV()},nTm.ji=function(n,t){pQ()},nTm.Lc=function(){return new CL(null,new x6(this,16))},nTm.$c=function(n){return pJ()},nTm.Mc=function(n){return pY()},nTm._c=function(n,t){return pZ()},nTm.gc=function(){return 0},nTm.ad=function(n){GG(this,n)},nTm.Nc=function(){return new x6(this,16)},nTm.Oc=function(){return new CL(null,new x6(this,16))},nTm.bd=function(n,t){return LV(),new x2(nMv,n,t)},nTm.Pc=function(){return Oj((LV(),nMv))},nTm.Qc=function(n){return LV(),Y3(nMv,n)},AY(nyR,"ECollections/EmptyUnmodifiableEList",1310),nrr(1311,768,{20:1,14:1,15:1,58:1,589:1},dm),nTm.Vc=function(n,t){pG()},nTm.Fc=function(n){return pz()},nTm.Wc=function(n,t){return pU()},nTm.Gc=function(n){return pX()},nTm.$b=function(){pW()},nTm.Hc=function(n){return!1},nTm.Ic=function(n){return!1},nTm.Jc=function(n){KA(this,n)},nTm.Xb=function(n){return jD((LV(),n)),null},nTm.Xc=function(n){return -1},nTm.dc=function(){return!0},nTm.Kc=function(){return this.a},nTm.Yc=function(){return this.a},nTm.Zc=function(n){return this.a},nTm.ii=function(n,t){return pV()},nTm.ji=function(n,t){pQ()},nTm.Lc=function(){return new CL(null,new x6(this,16))},nTm.$c=function(n){return pJ()},nTm.Mc=function(n){return pY()},nTm._c=function(n,t){return pZ()},nTm.gc=function(){return 0},nTm.ad=function(n){GG(this,n)},nTm.Nc=function(){return new x6(this,16)},nTm.Oc=function(){return new CL(null,new x6(this,16))},nTm.bd=function(n,t){return LV(),new x2(nMv,n,t)},nTm.Pc=function(){return Oj((LV(),nMv))},nTm.Qc=function(n){return LV(),Y3(nMv,n)},nTm.sj=function(){return LV(),LV(),nMm},AY(nyR,"ECollections/EmptyUnmodifiableEMap",1311);var nCY=Cw(nyR,"Enumerator");nrr(281,1,{281:1},nas),nTm.Fb=function(n){var t,e,i;return this===n||!!Ti(n,281)&&(t=Im(n,281),this.f==t.f&&(e=this.i,i=t.i,null==e?null==i:Jm(e,i))&&C0(this.a,(256&this.f)!=0?(256&t.f)!=0?t.a:null:(256&t.f)!=0?null:t.a)&&C0(this.d,t.d)&&C0(this.g,t.g)&&C0(this.e,t.e)&&function(n,t){var e,i;if(n.j.length!=t.j.length)return!1;for(e=0,i=n.j.length;e<i;e++)if(!Pv(n.j[e],t.j[e]))return!1;return!0}(this,t))},nTm.Hb=function(){return this.f},nTm.Ib=function(){return nua(this)},nTm.f=0;var nCZ,nC1,nC0,nC2,nC3,nC4,nC5,nC6,nC8,nC9,nC7,nOn,nOt,nOe,nOi,nOr,nOc,nOa,nOu,nOo,nOs,nOh,nOf,nOl,nOb,nOw,nOd,nOg,nOp,nOv,nOm,nOy,nOk,nOj,nOE,nOT,nOM,nOS,nOP,nOI,nOC,nOO,nOA,nO$,nOL,nON,nOx,nOD,nOR,nOK,nOF,nO_,nOB,nOH,nOq,nOG,nOz,nOU,nOX,nOW,nOV,nOQ,nOJ,nOY,nOZ,nO1,nO0,nO2,nO3,nO4,nO5,nO6,nO8,nO9,nO7,nAn,nAt,nAe,nAi,nAr,nAc,nAa,nAu,nAo,nAs,nAh,nAf,nAl,nAb,nAw,nAd,nAg,nAp,nAv,nAm,nAy,nAk,nAj,nAE,nAT,nAM,nAS,nAP,nAI,nAC,nAO,nAA,nA$,nAL,nAN,nAx,nAD,nAR,nAK,nAF,nA_,nAB,nAH,nAq,nAG,nAz,nAU,nAX,nAW,nAV,nAQ,nAJ,nAY,nAZ,nA1,nA0,nA2,nA3,nA4,nA5,nA6,nA8,nA9,nA7,n$n,n$t,n$e,n$i,n$r,n$c,n$a,n$u,n$o,n$s,n$h,n$f,n$l,n$b,n$w,n$d,n$g,n$p,n$v,n$m,n$y,n$k,n$j,n$E,n$T,n$M,n$S,n$P,n$I,n$C,n$O,n$A,n$$,n$L,n$N,n$x,n$D,n$R,n$K,n$F,n$_,n$B,n$H,n$q,n$G,n$z,n$U,n$X,n$W,n$V,n$Q,n$J,n$Y,n$Z,n$1,n$0,n$2,n$3,n$4,n$5,n$6,n$8,n$9,n$7,nLn,nLt,nLe,nLi,nLr,nLc,nLa,nLu,nLo,nLs,nLh,nLf,nLl,nLb,nLw,nLd,nLg,nLp,nLv,nLm,nLy,nLk,nLj,nLE,nLT,nLM,nLS,nLP,nLI,nLC,nLO,nLA,nL$,nLL,nLN,nLx,nLD,nLR,nLK,nLF,nL_,nLB,nLH,nLq,nLG,nLz,nLU,nLX,nLW,nLV,nLQ,nLJ,nLY,nLZ,nL1,nL0,nL2,nL3,nL4,nL5,nL6,nL8,nL9,nL7,nNn,nNt,nNe,nNi,nNr,nNc,nNa,nNu,nNo,nNs,nNh,nNf,nNl,nNb,nNw,nNd,nNg,nNp,nNv,nNm,nNy,nNk,nNj,nNE,nNT,nNM,nNS,nNP,nNI,nNC,nNO,nNA,nN$,nNL,nNN,nNx,nND,nNR,nNK,nNF,nN_,nNB,nNH,nNq,nNG,nNz,nNU,nNX,nNW,nNV,nNQ,nNJ,nNY,nNZ,nN1,nN0,nN2,nN3,nN4,nN5,nN6,nN8,nN9,nN7,nxn,nxt,nxe,nxi,nxr,nxc,nxa,nxu,nxo,nxs,nxh,nxf,nxl,nxb,nxw,nxd,nxg,nxp,nxv,nxm,nxy,nxk,nxj,nxE,nxT,nxM,nxS,nxP,nxI,nxC,nxO,nxA,nx$,nxL,nxN,nxx,nxD,nxR,nxK,nxF,nx_,nxB,nxH,nxq,nxG,nxz,nxU,nxX,nxW,nxV,nxQ,nxJ,nxY,nxZ,nx1,nx0,nx2,nx3,nx4,nx5,nx6,nx8,nx9,nx7,nDn,nDt,nDe,nDi,nDr,nDc,nDa,nDu,nDo,nDs,nDh,nDf,nDl,nDb,nDw,nDd,nDg,nDp,nDv,nDm,nDy,nDk,nDj,nDE,nDT,nDM,nDS,nDP,nDI,nDC,nDO,nDA,nD$,nDL,nDN,nDx,nDD,nDR,nDK,nDF,nD_,nDB,nDH,nDq,nDG,nDz,nDU,nDX,nDW,nDV,nDQ,nDJ,nDY,nDZ,nD1,nD0,nD2,nD3,nD4,nD5,nD6,nD8,nD9,nD7,nRn,nRt,nRe,nRi,nRr,nRc,nRa,nRu,nRo,nRs,nRh,nRf,nRl,nRb,nRw,nRd,nRg,nRp,nRv,nRm,nRy,nRk,nRj,nRE,nRT,nRM,nRS,nRP,nRI,nRC,nRO,nRA,nR$,nRL,nRN,nRx,nRD,nRR,nRK,nRF,nR_,nRB,nRH,nRq,nRG,nRz,nRU,nRX,nRW,nRV,nRQ,nRJ,nRY,nRZ,nR1,nR0,nR2,nR3,nR4,nR5,nR6,nR8,nR9,nR7,nKn,nKt,nKe,nKi,nKr,nKc,nKa,nKu,nKo,nKs,nKh,nKf,nKl,nKb,nKw,nKd,nKg,nKp,nKv,nKm,nKy,nKk,nKj,nKE,nKT,nKM,nKS,nKP,nKI,nKC,nKO,nKA,nK$,nKL,nKN,nKx,nKD,nKR,nKK,nKF,nK_,nKB,nKH,nKq,nKG,nKz,nKU,nKX,nKW,nKV,nKQ,nKJ,nKY,nKZ,nK1,nK0,nK2,nK3,nK4,nK5,nK6,nK8,nK9,nK7,nFn,nFt,nFe,nFi,nFr,nFc,nFa,nFu,nFo,nFs,nFh,nFf,nFl,nFb,nFw,nFd,nFg,nFp,nFv,nFm,nFy,nFk,nFj,nFE,nFT,nFM,nFS,nFP,nFI,nFC,nFO,nFA,nF$,nFL,nFN,nFx,nFD,nFR,nFK,nFF,nF_,nFB,nFH,nFq,nFG,nFz,nFU,nFX,nFW,nFV,nFQ,nFJ,nFY,nFZ,nF1,nF0,nF2,nF3,nF4,nF5,nF6,nF8,nF9,nF7,n_n,n_t,n_e,n_i,n_r,n_c,n_a,n_u,n_o,n_s,n_h,n_f,n_l,n_b,n_w,n_d,n_g,n_p,n_v,n_m,n_y,n_k,n_j,n_E,n_T,n_M,n_S,n_P,n_I,n_C,n_O,n_A,n_$,n_L,n_N,n_x,n_D,n_R,n_K,n_F,n__,n_B,n_H,n_q,n_G,n_z,n_U,n_X,n_W,n_V,n_Q,n_J,n_Y,n_Z,n_1,n_0,n_2,n_3,n_4,n_5,n_6,n_8,n_9,n_7,nBn,nBt,nBe,nBi,nBr,nBc,nBa,nBu,nBo,nBs,nBh,nBf,nBl,nBb,nBw,nBd,nBg,nBp,nBv,nBm,nBy,nBk,nBj,nBE,nBT,nBM,nBS,nBP,nBI,nBC,nBO,nBA,nB$,nBL,nBN,nBx,nBD,nBR,nBK,nBF,nB_,nBB,nBH,nBq,nBG,nBz,nBU,nBX,nBW,nBV,nBQ,nBJ,nBY,nBZ,nB1,nB0,nB2,nB3,nB4,nB5,nB6,nB8,nB9,nB7,nHn,nHt,nHe,nHi,nHr,nHc,nHa,nHu,nHo,nHs,nHh,nHf,nHl,nHb,nHw,nHd,nHg,nHp,nHv,nHm,nHy,nHk,nHj,nHE,nHT,nHM,nHS,nHP,nHI,nHC,nHO,nHA,nH$,nHL,nHN,nHx,nHD,nHR,nHK,nHF,nH_,nHB,nHH,nHq,nHG,nHz,nHU,nHX,nHW,nHV,nHQ,nHJ,nHY,nHZ,nH1,nH0,nH2,nH3,nH4,nH5,nH6,nH8,nH9,nH7,nqn,nqt,nqe,nqi,nqr,nqc,nqa,nqu,nqo,nqs,nqh,nqf,nql,nqb,nqw,nqd,nqg,nqp,nqv,nqm,nqy,nqk,nqj,nqE,nqT,nqM,nqS,nqP,nqI,nqC,nqO,nqA,nq$,nqL,nqN,nqx,nqD,nqR,nqK,nqF,nq_,nqB,nqH,nqq,nqG,nqz,nqU,nqX,nqW,nqV,nqQ,nqJ,nqY,nqZ,nq1,nq0,nq2,nq3,nq4,nq5,nq6,nq8,nq9,nq7,nGn,nGt,nGe,nGi,nGr,nGc,nGa,nGu,nGo,nGs,nGh,nGf,nGl,nGb,nGw,nGd,nGg,nGp,nGv,nGm,nGy,nGk,nGj,nGE,nGT,nGM,nGS,nGP,nGI,nGC,nGO,nGA,nG$,nGL,nGN,nGx,nGD,nGR,nGK,nGF,nG_,nGB,nGH,nGq,nGG,nGz,nGU,nGX,nGW,nGV,nGQ,nGJ,nGY,nGZ,nG1,nG0,nG2,nG3,nG4,nG5,nG6,nG8,nG9,nG7,nzn,nzt,nze,nzi,nzr,nzc,nza,nzu,nzo,nzs,nzh,nzf,nzl,nzb,nzw,nzd,nzg,nzp,nzv,nzm,nzy,nzk,nzj,nzE,nzT,nzM,nzS,nzP,nzI,nzC,nzO,nzA,nz$,nzL,nzN,nzx,nzD,nzR,nzK,nzF,nz_,nzB,nzH,nzq,nzG,nzz,nzU,nzX,nzW,nzV,nzQ,nzJ,nzY,nzZ,nz1,nz0,nz2,nz3,nz4,nz5,nz6,nz8,nz9,nz7,nUn,nUt,nUe,nUi,nUr,nUc,nUa,nUu,nUo,nUs,nUh,nUf,nUl,nUb,nUw,nUd,nUg,nUp,nUv,nUm,nUy,nUk,nUj,nUE,nUT,nUM,nUS,nUP,nUI,nUC,nUO,nUA,nU$,nUL,nUN,nUx,nUD,nUR,nUK,nUF,nU_,nUB,nUH,nUq,nUG,nUz,nUU,nUX,nUW,nUV,nUQ,nUJ,nUY,nUZ,nU1,nU0,nU2,nU3,nU4,nU5,nU6,nU8,nU9,nU7,nXn,nXt,nXe,nXi,nXr,nXc,nXa,nXu,nXo,nXs,nXh,nXf,nXl,nXb,nXw,nXd,nXg,nXp,nXv,nXm,nXy,nXk,nXj,nXE,nXT,nXM,nXS,nXP,nXI,nXC,nXO,nXA,nX$,nXL,nXN,nXx,nXD,nXR,nXK,nXF,nX_,nXB,nXH,nXq,nXG,nXz,nXU,nXX,nXW,nXV,nXQ,nXJ,nXY,nXZ,nX1,nX0,nX2,nX3,nX4,nX5,nX6,nX8,nX9,nX7,nWn,nWt,nWe,nWi,nWr,nWc,nWa,nWu,nWo,nWs,nWh,nWf,nWl,nWb,nWw,nWd,nWg,nWp,nWv,nWm,nWy,nWk,nWj,nWE,nWT,nWM,nWS,nWP,nWI,nWC,nWO,nWA,nW$,nWL,nWN,nWx,nWD,nWR,nWK,nWF,nW_,nWB,nWH,nWq,nWG,nWz,nWU,nWX,nWW,nWV,nWQ,nWJ,nWY,nWZ,nW1,nW0,nW2,nW3,nW4,nW5,nW6,nW8,nW9,nW7,nVn,nVt,nVe,nVi,nVr,nVc,nVa,nVu,nVo,nVs,nVh,nVf,nVl,nVb,nVw,nVd,nVg,nVp,nVv,nVm,nVy,nVk,nVj,nVE,nVT,nVM,nVS,nVP,nVI,nVC,nVO,nVA,nV$,nVL,nVN,nVx,nVD,nVR,nVK,nVF,nV_,nVB,nVH,nVq,nVG,nVz,nVU,nVX,nVW,nVV,nVQ,nVJ,nVY,nVZ,nV1,nV0,nV2,nV3=0,nV4=0,nV5=0,nV6=0,nV8=0,nV9=0,nV7=0,nQn=0,nQt=0,nQe=0,nQi=0,nQr=0,nQc=0;AY(nyR,"URI",281),nrr(1091,43,nlE,dy),nTm.zc=function(n,t){return Im(xp(this,Sh(n),Im(t,281)),281)},AY(nyR,"URI/URICache",1091),nrr(497,63,ny5,a5,CH),nTm.hi=function(){return!0},AY(nyR,"UniqueEList",497),nrr(581,60,nfm,Bj),AY(nyR,"WrappedException",581);var nQa=Cw(nmV,nkW),nQu=Cw(nmV,nkV),nQo=Cw(nmV,nkQ),nQs=Cw(nmV,nkJ),nQh=Cw(nmV,nkY),nQf=Cw(nmV,"EClass"),nQl=Cw(nmV,"EDataType");nrr(1183,43,nlE,dk),nTm.xc=function(n){return jw(n)?Nz(this,n):jh(Nj(this.f,n))},AY(nmV,"EDataType/Internal/ConversionDelegate/Factory/Registry/Impl",1183);var nQb=Cw(nmV,"EEnum"),nQw=Cw(nmV,nkZ),nQd=Cw(nmV,nk1),nQg=Cw(nmV,nk0),nQp=Cw(nmV,nk2),nQv=Cw(nmV,nk3);nrr(1029,1,{},a4),nTm.Ib=function(){return"NIL"},AY(nmV,"EStructuralFeature/Internal/DynamicValueHolder/1",1029),nrr(1028,43,nlE,dj),nTm.xc=function(n){return jw(n)?Nz(this,n):jh(Nj(this.f,n))},AY(nmV,"EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl",1028);var nQm=Cw(nmV,nk4),nQy=Cw(nmV,"EValidator/PatternMatcher"),nQk=Cw(nk5,"FeatureMap/Entry");nrr(535,1,{72:1},k8),nTm.ak=function(){return this.a},nTm.dd=function(){return this.b},AY(nyo,"BasicEObjectImpl/1",535),nrr(1027,1,nk6,k9),nTm.Wj=function(n){return K8(this.a,this.b,n)},nTm.fj=function(){return xe(this.a,this.b)},nTm.Wb=function(n){NQ(this.a,this.b,n)},nTm.Xj=function(){var n,t,e;n=this.a,t=this.b,(e=n.Yg(t))>=0?n.Bh(e):nic(n,t)},AY(nyo,"BasicEObjectImpl/4",1027),nrr(1983,1,{108:1}),nTm.bk=function(n){this.e=0==n?nQ1:_f(nEX,nhA,1,n,5,1)},nTm.Ch=function(n){return this.e[n]},nTm.Dh=function(n,t){this.e[n]=t},nTm.Eh=function(n){this.e[n]=null},nTm.ck=function(){return this.c},nTm.dk=function(){throw(new wP).e},nTm.ek=function(){throw(new wP).e},nTm.fk=function(){return this.d},nTm.gk=function(){return null!=this.e},nTm.hk=function(n){this.c=n},nTm.ik=function(n){throw(new wP).e},nTm.jk=function(n){throw(new wP).e},nTm.kk=function(n){this.d=n},AY(nyo,"BasicEObjectImpl/EPropertiesHolderBaseImpl",1983),nrr(185,1983,{108:1},sY),nTm.dk=function(){return this.a},nTm.ek=function(){return this.b},nTm.ik=function(n){this.a=n},nTm.jk=function(n){this.b=n},AY(nyo,"BasicEObjectImpl/EPropertiesHolderImpl",185),nrr(506,97,nyu,ui),nTm.Kg=function(){return this.f},nTm.Pg=function(){return this.k},nTm.Rg=function(n,t){this.g=n,this.i=t},nTm.Tg=function(){return(2&this.j)==0?this.zh():this.ph().ck()},nTm.Vg=function(){return this.i},nTm.Mg=function(){return(1&this.j)!=0},nTm.eh=function(){return this.g},nTm.kh=function(){return(4&this.j)!=0},nTm.ph=function(){return this.k||(this.k=new sY),this.k},nTm.th=function(n){this.ph().hk(n),n?this.j|=2:this.j&=-3},nTm.vh=function(n){this.ph().jk(n),n?this.j|=4:this.j&=-5},nTm.zh=function(){return($g(),nQO).S},nTm.i=0,nTm.j=1,AY(nyo,"EObjectImpl",506),nrr(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},Iz),nTm.Ch=function(n){return this.e[n]},nTm.Dh=function(n,t){this.e[n]=t},nTm.Eh=function(n){this.e[n]=null},nTm.Tg=function(){return this.d},nTm.Yg=function(n){return Qj(this.d,n)},nTm.$g=function(){return this.d},nTm.dh=function(){return null!=this.e},nTm.ph=function(){return this.k||(this.k=new ur),this.k},nTm.th=function(n){this.d=n},nTm.yh=function(){var n;return null==this.e&&(n=AW(this.d),this.e=0==n?nQ0:_f(nEX,nhA,1,n,5,1)),this},nTm.Ah=function(){return 0},AY(nyo,"DynamicEObjectImpl",780),nrr(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},Cl),nTm.Fb=function(n){return this===n},nTm.Hb=function(){return T9(this)},nTm.th=function(n){this.d=n,this.b=ncp(n,"key"),this.c=ncp(n,nym)},nTm.Sh=function(){var n;return -1==this.a&&(n=B_(this,this.b),this.a=null==n?0:Xg(n)),this.a},nTm.cd=function(){return B_(this,this.b)},nTm.dd=function(){return B_(this,this.c)},nTm.Th=function(n){this.a=n},nTm.Uh=function(n){NQ(this,this.b,n)},nTm.ed=function(n){var t;return t=B_(this,this.c),NQ(this,this.c,n),t},nTm.a=0,AY(nyo,"DynamicEObjectImpl/BasicEMapEntry",1376),nrr(1377,1,{108:1},ur),nTm.bk=function(n){throw(new wP).e},nTm.Ch=function(n){throw(new wP).e},nTm.Dh=function(n,t){throw(new wP).e},nTm.Eh=function(n){throw(new wP).e},nTm.ck=function(){throw(new wP).e},nTm.dk=function(){return this.a},nTm.ek=function(){return this.b},nTm.fk=function(){return this.c},nTm.gk=function(){throw(new wP).e},nTm.hk=function(n){throw(new wP).e},nTm.ik=function(n){this.a=n},nTm.jk=function(n){this.b=n},nTm.kk=function(n){this.c=n},AY(nyo,"DynamicEObjectImpl/DynamicEPropertiesHolderImpl",1377),nrr(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},uc),nTm.Qg=function(n){return ZZ(this,n)},nTm._g=function(n,t,e){switch(n){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),this.Ab;case 1:return this.d;case 2:return e?(this.b||(this.b=new M2((nhl(),nQQ),nQE,this)),this.b):(this.b||(this.b=new M2((nhl(),nQQ),nQE,this)),_o(this.b));case 3:return xb(this);case 4:return this.a||(this.a=new Tg(nCS,this,4)),this.a;case 5:return this.c||(this.c=new Tk(nCS,this,5)),this.c}return _Q(this,n-AW((nhl(),nQA)),Hm(Im(zF(this,16),26)||nQA,n),t,e)},nTm.hh=function(n,t,e){var i;switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),QN(this.Ab,n,e);case 3:return this.Cb&&(e=(i=this.Db>>16)>=0?ZZ(this,e):this.Cb.ih(this,-1-i,null,e)),Od(this,Im(n,147),e)}return Im(Hm(Im(zF(this,16),26)||(nhl(),nQA),t),66).Nj().Qj(this,Jp(this),t-AW((nhl(),nQA)),n,e)},nTm.jh=function(n,t,e){switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),Ye(this.Ab,n,e);case 2:return this.b||(this.b=new M2((nhl(),nQQ),nQE,this)),PC(this.b,n,e);case 3:return Od(this,null,e);case 4:return this.a||(this.a=new Tg(nCS,this,4)),Ye(this.a,n,e)}return Im(Hm(Im(zF(this,16),26)||(nhl(),nQA),t),66).Nj().Rj(this,Jp(this),t-AW((nhl(),nQA)),n,e)},nTm.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.d;case 2:return!!this.b&&0!=this.b.f;case 3:return!!xb(this);case 4:return!!this.a&&0!=this.a.i;case 5:return!!this.c&&0!=this.c.i}return RN(this,n-AW((nhl(),nQA)),Hm(Im(zF(this,16),26)||nQA,n))},nTm.sh=function(n,t){var e;switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab),this.Ab||(this.Ab=new An(nQa,this,0,3)),AJ(this.Ab,Im(t,14));return;case 1:Gc(this,null==(e=Sh(t))?null:($x(e),e));return;case 2:this.b||(this.b=new M2((nhl(),nQQ),nQE,this)),zP(this.b,t);return;case 3:ncg(this,Im(t,147));return;case 4:this.a||(this.a=new Tg(nCS,this,4)),noK(this.a),this.a||(this.a=new Tg(nCS,this,4)),AJ(this.a,Im(t,14));return;case 5:this.c||(this.c=new Tk(nCS,this,5)),noK(this.c),this.c||(this.c=new Tk(nCS,this,5)),AJ(this.c,Im(t,14));return}V5(this,n-AW((nhl(),nQA)),Hm(Im(zF(this,16),26)||nQA,n),t)},nTm.zh=function(){return nhl(),nQA},nTm.Bh=function(n){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab);return;case 1:Gc(this,null);return;case 2:this.b||(this.b=new M2((nhl(),nQQ),nQE,this)),this.b.c.$b();return;case 3:ncg(this,null);return;case 4:this.a||(this.a=new Tg(nCS,this,4)),noK(this.a);return;case 5:this.c||(this.c=new Tk(nCS,this,5)),noK(this.c);return}W5(this,n-AW((nhl(),nQA)),Hm(Im(zF(this,16),26)||nQA,n))},nTm.Ib=function(){return W7(this)},nTm.d=null,AY(nyo,"EAnnotationImpl",510),nrr(151,705,nk8,_D),nTm.Xh=function(n,t){!function(n,t,e){Im(n.c,69).Xh(t,e)}(this,n,Im(t,42))},nTm.lk=function(n,t){var e;return e=Im(n,42),Im(this.c,69).lk(e,t)},nTm.pi=function(n){return Im(Im(this.c,69).pi(n),133)},nTm.Zh=function(){return Im(this.c,69).Zh()},nTm.$h=function(){return Im(this.c,69).$h()},nTm._h=function(n){return Im(this.c,69)._h(n)},nTm.mk=function(n,t){return PC(this,n,t)},nTm.Wj=function(n){return Im(this.c,76).Wj(n)},nTm.rj=function(){},nTm.fj=function(){return Im(this.c,76).fj()},nTm.tj=function(n,t,e){var i;return(i=Im(HU(this.b).Nh().Jh(this.b),133)).Th(n),i.Uh(t),i.ed(e),i},nTm.uj=function(){return new b5(this)},nTm.Wb=function(n){zP(this,n)},nTm.Xj=function(){Im(this.c,76).Xj()},AY(nk5,"EcoreEMap",151),nrr(158,151,nk8,M2),nTm.qj=function(){var n,t,e,i,r;if(null==this.d){for(r=_f(nCU,nkG,63,2*this.f+1,0,1),e=this.c.Kc();e.e!=e.i.gc();)i=((t=Im(e.nj(),133)).Sh()&nhM)%r.length,(n=r[i])||(n=r[i]=new b5(this)),n.Fc(t);this.d=r}},AY(nyo,"EAnnotationImpl/1",158),nrr(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1}),nTm._g=function(n,t,e){switch(n){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),this.Ab;case 1:return this.zb;case 2:return TX(),(256&this.Bb)!=0;case 3:return TX(),(512&this.Bb)!=0;case 4:return Va(this.s);case 5:return Va(this.t);case 6:return TX(),!!this.$j();case 7:return TX(),this.s>=1;case 8:if(t)return Z9(this);return this.r;case 9:return this.q}return _Q(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n),t,e)},nTm.jh=function(n,t,e){switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),Ye(this.Ab,n,e);case 9:return AQ(this,e)}return Im(Hm(Im(zF(this,16),26)||this.zh(),t),66).Nj().Rj(this,Jp(this),t-AW(this.zh()),n,e)},nTm.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return(256&this.Bb)==0;case 3:return(512&this.Bb)==0;case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return this.$j();case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==$N(this.q).i;case 9:return!!this.q&&!(this.r&&!this.q.e&&0==$N(this.q).i)}return RN(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n))},nTm.sh=function(n,t){var e;switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab),this.Ab||(this.Ab=new An(nQa,this,0,3)),AJ(this.Ab,Im(t,14));return;case 1:this.Lh(Sh(t));return;case 2:Vn(this,gm(So(t)));return;case 3:Vi(this,gm(So(t)));return;case 4:qg(this,Im(t,19).a);return;case 5:this.ok(Im(t,19).a);return;case 8:Ww(this,Im(t,138));return;case 9:(e=ntl(this,Im(t,87),null))&&e.Fi();return}V5(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n),t)},nTm.zh=function(){return nhl(),nQY},nTm.Bh=function(n){var t;switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab);return;case 1:this.Lh(null);return;case 2:Vn(this,!0);return;case 3:Vi(this,!0);return;case 4:qg(this,0);return;case 5:this.ok(1);return;case 8:Ww(this,null);return;case 9:(t=ntl(this,null,null))&&t.Fi();return}W5(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n))},nTm.Gh=function(){Z9(this),this.Bb|=1},nTm.Yj=function(){return Z9(this)},nTm.Zj=function(){return this.t},nTm.$j=function(){var n;return(n=this.t)>1||-1==n},nTm.hi=function(){return(512&this.Bb)!=0},nTm.nk=function(n,t){return WX(this,n,t)},nTm.ok=function(n){qp(this,n)},nTm.Ib=function(){return niJ(this)},nTm.s=0,nTm.t=1,AY(nyo,"ETypedElementImpl",284),nrr(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1}),nTm.Qg=function(n){return ZC(this,n)},nTm._g=function(n,t,e){switch(n){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),this.Ab;case 1:return this.zb;case 2:return TX(),(256&this.Bb)!=0;case 3:return TX(),(512&this.Bb)!=0;case 4:return Va(this.s);case 5:return Va(this.t);case 6:return TX(),!!this.$j();case 7:return TX(),this.s>=1;case 8:if(t)return Z9(this);return this.r;case 9:return this.q;case 10:return TX(),(this.Bb&nyp)!=0;case 11:return TX(),(this.Bb&njn)!=0;case 12:return TX(),(this.Bb&nlu)!=0;case 13:return this.j;case 14:return ncn(this);case 15:return TX(),(this.Bb&nk7)!=0;case 16:return TX(),(this.Bb&nhY)!=0;case 17:return xd(this)}return _Q(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n),t,e)},nTm.hh=function(n,t,e){var i;switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),QN(this.Ab,n,e);case 17:return this.Cb&&(e=(i=this.Db>>16)>=0?ZC(this,e):this.Cb.ih(this,-1-i,null,e)),nuc(this,n,17,e)}return Im(Hm(Im(zF(this,16),26)||this.zh(),t),66).Nj().Qj(this,Jp(this),t-AW(this.zh()),n,e)},nTm.jh=function(n,t,e){switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),Ye(this.Ab,n,e);case 9:return AQ(this,e);case 17:return nuc(this,null,17,e)}return Im(Hm(Im(zF(this,16),26)||this.zh(),t),66).Nj().Rj(this,Jp(this),t-AW(this.zh()),n,e)},nTm.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return(256&this.Bb)==0;case 3:return(512&this.Bb)==0;case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return this.$j();case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==$N(this.q).i;case 9:return!!this.q&&!(this.r&&!this.q.e&&0==$N(this.q).i);case 10:return(this.Bb&nyp)==0;case 11:return(this.Bb&njn)!=0;case 12:return(this.Bb&nlu)!=0;case 13:return null!=this.j;case 14:return null!=ncn(this);case 15:return(this.Bb&nk7)!=0;case 16:return(this.Bb&nhY)!=0;case 17:return!!xd(this)}return RN(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n))},nTm.sh=function(n,t){var e;switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab),this.Ab||(this.Ab=new An(nQa,this,0,3)),AJ(this.Ab,Im(t,14));return;case 1:xU(this,Sh(t));return;case 2:Vn(this,gm(So(t)));return;case 3:Vi(this,gm(So(t)));return;case 4:qg(this,Im(t,19).a);return;case 5:this.ok(Im(t,19).a);return;case 8:Ww(this,Im(t,138));return;case 9:(e=ntl(this,Im(t,87),null))&&e.Fi();return;case 10:Vk(this,gm(So(t)));return;case 11:VT(this,gm(So(t)));return;case 12:Vj(this,gm(So(t)));return;case 13:jo(this,Sh(t));return;case 15:VE(this,gm(So(t)));return;case 16:VS(this,gm(So(t)));return}V5(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n),t)},nTm.zh=function(){return nhl(),nQJ},nTm.Bh=function(n){var t;switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab);return;case 1:Ti(this.Cb,88)&&ne2(KJ(Im(this.Cb,88)),4),GF(this,null);return;case 2:Vn(this,!0);return;case 3:Vi(this,!0);return;case 4:qg(this,0);return;case 5:this.ok(1);return;case 8:Ww(this,null);return;case 9:(t=ntl(this,null,null))&&t.Fi();return;case 10:Vk(this,!0);return;case 11:VT(this,!1);return;case 12:Vj(this,!1);return;case 13:this.i=null,Gg(this,null);return;case 15:VE(this,!1);return;case 16:VS(this,!1);return}W5(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n))},nTm.Gh=function(){Lc(BC((neS(),nJk),this)),Z9(this),this.Bb|=1},nTm.Gj=function(){return this.f},nTm.zj=function(){return ncn(this)},nTm.Hj=function(){return xd(this)},nTm.Lj=function(){return null},nTm.pk=function(){return this.k},nTm.aj=function(){return this.n},nTm.Mj=function(){return nnK(this)},nTm.Nj=function(){var n,t,e,i,r,c,a,u,o;return this.p||((null==(e=xd(this)).i&&nuq(e),e.i).length,(i=this.Lj())&&AW(xd(i)),n=(a=(r=Z9(this)).Bj())?(1&a.i)!=0?a==nYN?nTt:a==nYL?nTa:a==nYK?nTc:a==nYR?nTr:a==nYx?nTu:a==nYF?nTo:a==nYD?nTe:nTi:a:null,t=ncn(this),u=r.zj(),function(n){var t,e,i;for(e=(function(n){var t,e,i,r,c,a,u;if((t=n.Hh(njE))&&null!=(u=Sh(Q_((t.b||(t.b=new M2((nhl(),nQQ),nQE,t)),t.b),"settingDelegates")))){for(e=new wn,r=naX(u,"\\w+"),c=0,a=r.length;c<a;++c)i=r[c],e.c[e.c.length]=i;return e}return LV(),LV(),nMv})(HU(xd(n))).Kc();e.Ob();)if(nus(n,t=Sh(e.Pb())))return mf(),i=nQP,jj(null!=t?Nz(i,t):jh(Nj(i.f,t)))}(this),(this.Bb&nhY)!=0&&((c=nnw((neS(),nJk),e))&&c!=this||(c=Dt(BC(nJk,this))))?this.p=new jn(this,c):this.$j()?this.rk()?i?(this.Bb&nk7)!=0?n?this.sk()?this.p=new Lx(47,n,this,i):this.p=new Lx(5,n,this,i):this.sk()?this.p=new R5(46,this,i):this.p=new R5(4,this,i):n?this.sk()?this.p=new Lx(49,n,this,i):this.p=new Lx(7,n,this,i):this.sk()?this.p=new R5(48,this,i):this.p=new R5(6,this,i):(this.Bb&nk7)!=0?n?n==nE1?this.p=new Iu(50,nCH,this):this.sk()?this.p=new Iu(43,n,this):this.p=new Iu(1,n,this):this.sk()?this.p=new NP(42,this):this.p=new NP(0,this):n?n==nE1?this.p=new Iu(41,nCH,this):this.sk()?this.p=new Iu(45,n,this):this.p=new Iu(3,n,this):this.sk()?this.p=new NP(44,this):this.p=new NP(2,this):Ti(r,148)?n==nQk?this.p=new NP(40,this):(512&this.Bb)!=0?(this.Bb&nk7)!=0?n?this.p=new Iu(9,n,this):this.p=new NP(8,this):n?this.p=new Iu(11,n,this):this.p=new NP(10,this):(this.Bb&nk7)!=0?n?this.p=new Iu(13,n,this):this.p=new NP(12,this):n?this.p=new Iu(15,n,this):this.p=new NP(14,this):i?(o=i.t)>1||-1==o?this.sk()?(this.Bb&nk7)!=0?n?this.p=new Lx(25,n,this,i):this.p=new R5(24,this,i):n?this.p=new Lx(27,n,this,i):this.p=new R5(26,this,i):(this.Bb&nk7)!=0?n?this.p=new Lx(29,n,this,i):this.p=new R5(28,this,i):n?this.p=new Lx(31,n,this,i):this.p=new R5(30,this,i):this.sk()?(this.Bb&nk7)!=0?n?this.p=new Lx(33,n,this,i):this.p=new R5(32,this,i):n?this.p=new Lx(35,n,this,i):this.p=new R5(34,this,i):(this.Bb&nk7)!=0?n?this.p=new Lx(37,n,this,i):this.p=new R5(36,this,i):n?this.p=new Lx(39,n,this,i):this.p=new R5(38,this,i):this.sk()?(this.Bb&nk7)!=0?n?this.p=new Iu(17,n,this):this.p=new NP(16,this):n?this.p=new Iu(19,n,this):this.p=new NP(18,this):(this.Bb&nk7)!=0?n?this.p=new Iu(21,n,this):this.p=new NP(20,this):n?this.p=new Iu(23,n,this):this.p=new NP(22,this):this.qk()?this.sk()?this.p=new Io(Im(r,26),this,i):this.p=new N_(Im(r,26),this,i):Ti(r,148)?n==nQk?this.p=new NP(40,this):(this.Bb&nk7)!=0?n?this.p=new Om(t,u,this,(QC(),a==nYL?nJr:a==nYN?nQ7:a==nYx?nJc:a==nYK?nJi:a==nYR?nJe:a==nYF?nJu:a==nYD?nJn:a==nY$?nJt:nJa)):this.p=new LK(Im(r,148),t,u,this):n?this.p=new Ov(t,u,this,(QC(),a==nYL?nJr:a==nYN?nQ7:a==nYx?nJc:a==nYK?nJi:a==nYR?nJe:a==nYF?nJu:a==nYD?nJn:a==nY$?nJt:nJa)):this.p=new LR(Im(r,148),t,u,this):this.rk()?i?(this.Bb&nk7)!=0?this.sk()?this.p=new Iw(Im(r,26),this,i):this.p=new Ib(Im(r,26),this,i):this.sk()?this.p=new Il(Im(r,26),this,i):this.p=new Is(Im(r,26),this,i):(this.Bb&nk7)!=0?this.sk()?this.p=new M6(Im(r,26),this):this.p=new M5(Im(r,26),this):this.sk()?this.p=new M4(Im(r,26),this):this.p=new M3(Im(r,26),this):this.sk()?i?(this.Bb&nk7)!=0?this.p=new Id(Im(r,26),this,i):this.p=new Ih(Im(r,26),this,i):(this.Bb&nk7)!=0?this.p=new M9(Im(r,26),this):this.p=new M8(Im(r,26),this):i?(this.Bb&nk7)!=0?this.p=new Ig(Im(r,26),this,i):this.p=new If(Im(r,26),this,i):(this.Bb&nk7)!=0?this.p=new M7(Im(r,26),this):this.p=new Cq(Im(r,26),this)),this.p},nTm.Ij=function(){return(this.Bb&nyp)!=0},nTm.qk=function(){return!1},nTm.rk=function(){return!1},nTm.Jj=function(){return(this.Bb&nhY)!=0},nTm.Oj=function(){return Bz(this)},nTm.sk=function(){return!1},nTm.Kj=function(){return(this.Bb&nk7)!=0},nTm.tk=function(n){this.k=n},nTm.Lh=function(n){xU(this,n)},nTm.Ib=function(){return nay(this)},nTm.e=!1,nTm.n=0,AY(nyo,"EStructuralFeatureImpl",449),nrr(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},dT),nTm._g=function(n,t,e){switch(n){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),this.Ab;case 1:return this.zb;case 2:return TX(),(256&this.Bb)!=0;case 3:return TX(),(512&this.Bb)!=0;case 4:return Va(this.s);case 5:return Va(this.t);case 6:return TX(),!!nim(this);case 7:return TX(),this.s>=1;case 8:if(t)return Z9(this);return this.r;case 9:return this.q;case 10:return TX(),(this.Bb&nyp)!=0;case 11:return TX(),(this.Bb&njn)!=0;case 12:return TX(),(this.Bb&nlu)!=0;case 13:return this.j;case 14:return ncn(this);case 15:return TX(),(this.Bb&nk7)!=0;case 16:return TX(),(this.Bb&nhY)!=0;case 17:return xd(this);case 18:return TX(),(this.Bb&nya)!=0;case 19:if(t)return Ui(this);return FL(this)}return _Q(this,n-AW((nhl(),nQ$)),Hm(Im(zF(this,16),26)||nQ$,n),t,e)},nTm.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return(256&this.Bb)==0;case 3:return(512&this.Bb)==0;case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return nim(this);case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==$N(this.q).i;case 9:return!!this.q&&!(this.r&&!this.q.e&&0==$N(this.q).i);case 10:return(this.Bb&nyp)==0;case 11:return(this.Bb&njn)!=0;case 12:return(this.Bb&nlu)!=0;case 13:return null!=this.j;case 14:return null!=ncn(this);case 15:return(this.Bb&nk7)!=0;case 16:return(this.Bb&nhY)!=0;case 17:return!!xd(this);case 18:return(this.Bb&nya)!=0;case 19:return!!FL(this)}return RN(this,n-AW((nhl(),nQ$)),Hm(Im(zF(this,16),26)||nQ$,n))},nTm.sh=function(n,t){var e,i;switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab),this.Ab||(this.Ab=new An(nQa,this,0,3)),AJ(this.Ab,Im(t,14));return;case 1:xU(this,Sh(t));return;case 2:Vn(this,gm(So(t)));return;case 3:Vi(this,gm(So(t)));return;case 4:qg(this,Im(t,19).a);return;case 5:i=Im(t,19).a,this.b=0,qp(this,i);return;case 8:Ww(this,Im(t,138));return;case 9:(e=ntl(this,Im(t,87),null))&&e.Fi();return;case 10:Vk(this,gm(So(t)));return;case 11:VT(this,gm(So(t)));return;case 12:Vj(this,gm(So(t)));return;case 13:jo(this,Sh(t));return;case 15:VE(this,gm(So(t)));return;case 16:VS(this,gm(So(t)));return;case 18:VP(this,gm(So(t)));return}V5(this,n-AW((nhl(),nQ$)),Hm(Im(zF(this,16),26)||nQ$,n),t)},nTm.zh=function(){return nhl(),nQ$},nTm.Bh=function(n){var t;switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab);return;case 1:Ti(this.Cb,88)&&ne2(KJ(Im(this.Cb,88)),4),GF(this,null);return;case 2:Vn(this,!0);return;case 3:Vi(this,!0);return;case 4:qg(this,0);return;case 5:this.b=0,qp(this,1);return;case 8:Ww(this,null);return;case 9:(t=ntl(this,null,null))&&t.Fi();return;case 10:Vk(this,!0);return;case 11:VT(this,!1);return;case 12:Vj(this,!1);return;case 13:this.i=null,Gg(this,null);return;case 15:VE(this,!1);return;case 16:VS(this,!1);return;case 18:VP(this,!1);return}W5(this,n-AW((nhl(),nQ$)),Hm(Im(zF(this,16),26)||nQ$,n))},nTm.Gh=function(){Ui(this),Lc(BC((neS(),nJk),this)),Z9(this),this.Bb|=1},nTm.$j=function(){return nim(this)},nTm.nk=function(n,t){return this.b=0,this.a=null,WX(this,n,t)},nTm.ok=function(n){this.b=0,qp(this,n)},nTm.Ib=function(){var n;return(64&this.Db)!=0?nay(this):(n=new TW(nay(this)),n.a+=" (iD: ",p$(n,(this.Bb&nya)!=0),n.a+=")",n.a)},nTm.b=0,AY(nyo,"EAttributeImpl",322),nrr(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1}),nTm.uk=function(n){return n.Tg()==this},nTm.Qg=function(n){return Zm(this,n)},nTm.Rg=function(n,t){this.w=null,this.Db=t<<16|255&this.Db,this.Cb=n},nTm._g=function(n,t,e){switch(n){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return Zb(this);case 4:return this.zj();case 5:return this.F;case 6:if(t)return HU(this);return xw(this);case 7:return this.A||(this.A=new Tv(nQm,this,7)),this.A}return _Q(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n),t,e)},nTm.hh=function(n,t,e){var i;switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),QN(this.Ab,n,e);case 6:return this.Cb&&(e=(i=this.Db>>16)>=0?Zm(this,e):this.Cb.ih(this,-1-i,null,e)),nuc(this,n,6,e)}return Im(Hm(Im(zF(this,16),26)||this.zh(),t),66).Nj().Qj(this,Jp(this),t-AW(this.zh()),n,e)},nTm.jh=function(n,t,e){switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),Ye(this.Ab,n,e);case 6:return nuc(this,null,6,e);case 7:return this.A||(this.A=new Tv(nQm,this,7)),Ye(this.A,n,e)}return Im(Hm(Im(zF(this,16),26)||this.zh(),t),66).Nj().Rj(this,Jp(this),t-AW(this.zh()),n,e)},nTm.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!Zb(this);case 4:return null!=this.zj();case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!xw(this);case 7:return!!this.A&&0!=this.A.i}return RN(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n))},nTm.sh=function(n,t){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab),this.Ab||(this.Ab=new An(nQa,this,0,3)),AJ(this.Ab,Im(t,14));return;case 1:xX(this,Sh(t));return;case 2:Ew(this,Sh(t));return;case 5:noJ(this,Sh(t));return;case 7:this.A||(this.A=new Tv(nQm,this,7)),noK(this.A),this.A||(this.A=new Tv(nQm,this,7)),AJ(this.A,Im(t,14));return}V5(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n),t)},nTm.zh=function(){return nhl(),nQN},nTm.Bh=function(n){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab);return;case 1:Ti(this.Cb,179)&&(Im(this.Cb,179).tb=null),GF(this,null);return;case 2:XH(this,null),qv(this,this.D);return;case 5:noJ(this,null);return;case 7:this.A||(this.A=new Tv(nQm,this,7)),noK(this.A);return}W5(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n))},nTm.yj=function(){var n;return -1==this.G&&(this.G=(n=HU(this))?Yl(n.Mh(),this):-1),this.G},nTm.zj=function(){return null},nTm.Aj=function(){return HU(this)},nTm.vk=function(){return this.v},nTm.Bj=function(){return Zb(this)},nTm.Cj=function(){return null!=this.D?this.D:this.B},nTm.Dj=function(){return this.F},nTm.wj=function(n){return nuN(this,n)},nTm.wk=function(n){this.v=n},nTm.xk=function(n){GQ(this,n)},nTm.yk=function(n){this.C=n},nTm.Lh=function(n){xX(this,n)},nTm.Ib=function(){return Qk(this)},nTm.C=null,nTm.D=null,nTm.G=-1,AY(nyo,"EClassifierImpl",351),nrr(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},sZ),nTm.uk=function(n){var t;return(t=n.Tg())==this||nnv(nr3(t),this)},nTm._g=function(n,t,e){switch(n){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return Zb(this);case 4:return null;case 5:return this.F;case 6:if(t)return HU(this);return xw(this);case 7:return this.A||(this.A=new Tv(nQm,this,7)),this.A;case 8:return TX(),(256&this.Bb)!=0;case 9:return TX(),(512&this.Bb)!=0;case 10:return Nw(this);case 11:return this.q||(this.q=new An(nQg,this,11,10)),this.q;case 12:return noo(this);case 13:return non(this);case 14:return non(this),this.r;case 15:return noo(this),this.k;case 16:return neF(this);case 17:return nu4(this);case 18:return nuq(this);case 19:return nr3(this);case 20:return noo(this),this.o;case 21:return this.s||(this.s=new An(nQo,this,21,17)),this.s;case 22:return RJ(this);case 23:return nat(this)}return _Q(this,n-AW((nhl(),nQL)),Hm(Im(zF(this,16),26)||nQL,n),t,e)},nTm.hh=function(n,t,e){var i;switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),QN(this.Ab,n,e);case 6:return this.Cb&&(e=(i=this.Db>>16)>=0?Zm(this,e):this.Cb.ih(this,-1-i,null,e)),nuc(this,n,6,e);case 11:return this.q||(this.q=new An(nQg,this,11,10)),QN(this.q,n,e);case 21:return this.s||(this.s=new An(nQo,this,21,17)),QN(this.s,n,e)}return Im(Hm(Im(zF(this,16),26)||(nhl(),nQL),t),66).Nj().Qj(this,Jp(this),t-AW((nhl(),nQL)),n,e)},nTm.jh=function(n,t,e){switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),Ye(this.Ab,n,e);case 6:return nuc(this,null,6,e);case 7:return this.A||(this.A=new Tv(nQm,this,7)),Ye(this.A,n,e);case 11:return this.q||(this.q=new An(nQg,this,11,10)),Ye(this.q,n,e);case 21:return this.s||(this.s=new An(nQo,this,21,17)),Ye(this.s,n,e);case 22:return Ye(RJ(this),n,e)}return Im(Hm(Im(zF(this,16),26)||(nhl(),nQL),t),66).Nj().Rj(this,Jp(this),t-AW((nhl(),nQL)),n,e)},nTm.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!Zb(this);case 4:return!1;case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!xw(this);case 7:return!!this.A&&0!=this.A.i;case 8:return(256&this.Bb)!=0;case 9:return(512&this.Bb)!=0;case 10:return!!this.u&&0!=RJ(this.u.a).i&&!(this.n&&YD(this.n));case 11:return!!this.q&&0!=this.q.i;case 12:return 0!=noo(this).i;case 13:return 0!=non(this).i;case 14:return non(this),0!=this.r.i;case 15:return noo(this),0!=this.k.i;case 16:return 0!=neF(this).i;case 17:return 0!=nu4(this).i;case 18:return 0!=nuq(this).i;case 19:return 0!=nr3(this).i;case 20:return noo(this),!!this.o;case 21:return!!this.s&&0!=this.s.i;case 22:return!!this.n&&YD(this.n);case 23:return 0!=nat(this).i}return RN(this,n-AW((nhl(),nQL)),Hm(Im(zF(this,16),26)||nQL,n))},nTm.oh=function(n){return(null==this.i||this.q&&0!=this.q.i?null:ncp(this,n))||ns$(this,n)},nTm.sh=function(n,t){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab),this.Ab||(this.Ab=new An(nQa,this,0,3)),AJ(this.Ab,Im(t,14));return;case 1:xX(this,Sh(t));return;case 2:Ew(this,Sh(t));return;case 5:noJ(this,Sh(t));return;case 7:this.A||(this.A=new Tv(nQm,this,7)),noK(this.A),this.A||(this.A=new Tv(nQm,this,7)),AJ(this.A,Im(t,14));return;case 8:Vt(this,gm(So(t)));return;case 9:Vr(this,gm(So(t)));return;case 10:noH(Nw(this)),AJ(Nw(this),Im(t,14));return;case 11:this.q||(this.q=new An(nQg,this,11,10)),noK(this.q),this.q||(this.q=new An(nQg,this,11,10)),AJ(this.q,Im(t,14));return;case 21:this.s||(this.s=new An(nQo,this,21,17)),noK(this.s),this.s||(this.s=new An(nQo,this,21,17)),AJ(this.s,Im(t,14));return;case 22:noK(RJ(this)),AJ(RJ(this),Im(t,14));return}V5(this,n-AW((nhl(),nQL)),Hm(Im(zF(this,16),26)||nQL,n),t)},nTm.zh=function(){return nhl(),nQL},nTm.Bh=function(n){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab);return;case 1:Ti(this.Cb,179)&&(Im(this.Cb,179).tb=null),GF(this,null);return;case 2:XH(this,null),qv(this,this.D);return;case 5:noJ(this,null);return;case 7:this.A||(this.A=new Tv(nQm,this,7)),noK(this.A);return;case 8:Vt(this,!1);return;case 9:Vr(this,!1);return;case 10:this.u&&noH(this.u);return;case 11:this.q||(this.q=new An(nQg,this,11,10)),noK(this.q);return;case 21:this.s||(this.s=new An(nQo,this,21,17)),noK(this.s);return;case 22:this.n&&noK(this.n);return}W5(this,n-AW((nhl(),nQL)),Hm(Im(zF(this,16),26)||nQL,n))},nTm.Gh=function(){var n,t,e;if(noo(this),non(this),neF(this),nu4(this),nuq(this),nr3(this),nat(this),Fo(((e=KJ(this)).c||(e.c=new uT),e.c)),this.s)for(n=0,t=this.s.i;n<t;++n)MO(HX(this.s,n));if(this.q)for(n=0,t=this.q.i;n<t;++n)MO(HX(this.q,n));WW((neS(),nJk),this).ne(),this.Bb|=1},nTm.Ib=function(){return nn_(this)},nTm.k=null,nTm.r=null,AY(nyo,"EClassImpl",88),nrr(1994,1993,njf),nTm.Vh=function(n,t){return nuK(this,n,t)},nTm.Wh=function(n){return nuK(this,this.i,n)},nTm.Xh=function(n,t){ni1(this,n,t)},nTm.Yh=function(n){ni6(this,n)},nTm.lk=function(n,t){return QN(this,n,t)},nTm.pi=function(n){return _U(this,n)},nTm.mk=function(n,t){return Ye(this,n,t)},nTm.mi=function(n,t){return nu2(this,n,t)},nTm.Zh=function(){return new Mm(this)},nTm.$h=function(){return new My(this)},nTm._h=function(n){return qH(this,n)},AY(nk5,"NotifyingInternalEListImpl",1994),nrr(622,1994,njl),nTm.Hc=function(n){return noB(this,n)},nTm.Zi=function(n,t,e,i,r){return xv(this,n,t,e,i,r)},nTm.$i=function(n){wR(this,n)},nTm.Wj=function(n){return this},nTm.ak=function(){return Hm(this.e.Tg(),this.aj())},nTm._i=function(){return this.ak()},nTm.aj=function(){return Qj(this.e.Tg(),this.ak())},nTm.zk=function(){return Im(this.ak().Yj(),26).Bj()},nTm.Ak=function(){return YI(Im(this.ak(),18)).n},nTm.Ai=function(){return this.e},nTm.Bk=function(){return!0},nTm.Ck=function(){return!1},nTm.Dk=function(){return!1},nTm.Ek=function(){return!1},nTm.Xc=function(n){return Yl(this,n)},nTm.cj=function(n,t){var e;return e=Im(n,49),this.Dk()?this.Bk()?e.gh(this.e,this.Ak(),this.zk(),t):e.gh(this.e,Qj(e.Tg(),YI(Im(this.ak(),18))),null,t):e.gh(this.e,-1-this.aj(),null,t)},nTm.dj=function(n,t){var e;return e=Im(n,49),this.Dk()?this.Bk()?e.ih(this.e,this.Ak(),this.zk(),t):e.ih(this.e,Qj(e.Tg(),YI(Im(this.ak(),18))),null,t):e.ih(this.e,-1-this.aj(),null,t)},nTm.rk=function(){return!1},nTm.Fk=function(){return!0},nTm.wj=function(n){return RR(this.d,n)},nTm.ej=function(){return Ea(this.e)},nTm.fj=function(){return 0!=this.i},nTm.ri=function(n){return qm(this.d,n)},nTm.li=function(n,t){return this.Fk()&&this.Ek()?ni0(this,n,Im(t,56)):t},nTm.Gk=function(n){return n.kh()?WO(this.e,Im(n,49)):n},nTm.Wb=function(n){E8(this,n)},nTm.Pc=function(){return _W(this)},nTm.Qc=function(n){var t;if(this.Ek())for(t=this.i-1;t>=0;--t)HX(this,t);return QL(this,n)},nTm.Xj=function(){noK(this)},nTm.oi=function(n,t){return qk(this,n,t)},AY(nk5,"EcoreEList",622),nrr(496,622,njl,Iq),nTm.ai=function(){return!1},nTm.aj=function(){return this.c},nTm.bj=function(){return!1},nTm.Fk=function(){return!0},nTm.hi=function(){return!0},nTm.li=function(n,t){return t},nTm.ni=function(){return!1},nTm.c=0,AY(nk5,"EObjectEList",496),nrr(85,496,njl,Tg),nTm.bj=function(){return!0},nTm.Dk=function(){return!1},nTm.rk=function(){return!0},AY(nk5,"EObjectContainmentEList",85),nrr(545,85,njl,Tp),nTm.ci=function(){this.b=!0},nTm.fj=function(){return this.b},nTm.Xj=function(){var n;noK(this),Ea(this.e)?(n=this.b,this.b=!1,zD(this.e,new Fi(this.e,2,this.c,n,!1))):this.b=!1},nTm.b=!1,AY(nk5,"EObjectContainmentEList/Unsettable",545),nrr(1140,545,njl,Og),nTm.ii=function(n,t){var e,i;return e=Im(Vm(this,n,t),87),Ea(this.e)&&wR(this,new _K(this.a,7,(nhl(),nQx),Va(t),Ti(i=e.c,88)?Im(i,26):nQG,n)),e},nTm.jj=function(n,t){var e,i,r,c;return e=Im(n,87),i=t,r=new BE(this.e,3,10,null,Ti(c=e.c,88)?Im(c,26):(nhl(),nQG),Yl(this,e),!1),i?i.Ei(r):i=r,i},nTm.kj=function(n,t){var e,i,r,c;return e=Im(n,87),i=t,r=new BE(this.e,4,10,Ti(c=e.c,88)?Im(c,26):(nhl(),nQG),null,Yl(this,e),!1),i?i.Ei(r):i=r,i},nTm.lj=function(n,t,e){var i,r,c,a,u,o;return i=Im(n,87),r=Im(t,87),c=e,a=new BE(this.e,1,10,Ti(o=i.c,88)?Im(o,26):(nhl(),nQG),Ti(u=r.c,88)?Im(u,26):(nhl(),nQG),Yl(this,i),!1),c?c.Ei(a):c=a,c},nTm.Zi=function(n,t,e,i,r){switch(n){case 3:return xv(this,n,t,e,i,this.i>1);case 5:return xv(this,n,t,e,i,this.i-Im(e,15).gc()>0);default:return new BE(this.e,n,this.c,t,e,i,!0)}},nTm.ij=function(){return!0},nTm.fj=function(){return YD(this)},nTm.Xj=function(){noK(this)},AY(nyo,"EClassImpl/1",1140),nrr(1154,1153,nkK),nTm.ui=function(n){var t,e,i,r,c,a,u;if(8!=(e=n.xi())){if(0==(i=function(n){switch(n.yi(null)){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4}return -1}(n)))switch(e){case 1:case 9:null!=(u=n.Bi())&&((t=KJ(Im(u,473))).c||(t.c=new uT),BG(t.c,n.Ai())),null!=(a=n.zi())&&(1&(r=Im(a,473)).Bb)==0&&((t=KJ(r)).c||(t.c=new uT),_P(t.c,Im(n.Ai(),26)));break;case 3:null!=(a=n.zi())&&(1&(r=Im(a,473)).Bb)==0&&((t=KJ(r)).c||(t.c=new uT),_P(t.c,Im(n.Ai(),26)));break;case 5:if(null!=(a=n.zi()))for(c=Im(a,14).Kc();c.Ob();)(1&(r=Im(c.Pb(),473)).Bb)==0&&((t=KJ(r)).c||(t.c=new uT),_P(t.c,Im(n.Ai(),26)));break;case 4:null!=(u=n.Bi())&&(1&(r=Im(u,473)).Bb)==0&&((t=KJ(r)).c||(t.c=new uT),BG(t.c,n.Ai()));break;case 6:if(null!=(u=n.Bi()))for(c=Im(u,14).Kc();c.Ob();)(1&(r=Im(c.Pb(),473)).Bb)==0&&((t=KJ(r)).c||(t.c=new uT),BG(t.c,n.Ai()))}this.Hk(i)}},nTm.Hk=function(n){nag(this,n)},nTm.b=63,AY(nyo,"ESuperAdapter",1154),nrr(1155,1154,nkK,bz),nTm.Hk=function(n){ne2(this,n)},AY(nyo,"EClassImpl/10",1155),nrr(1144,696,njl),nTm.Vh=function(n,t){return ntf(this,n,t)},nTm.Wh=function(n){return YY(this,n)},nTm.Xh=function(n,t){WV(this,n,t)},nTm.Yh=function(n){Fu(this,n)},nTm.pi=function(n){return _U(this,n)},nTm.mi=function(n,t){return Bq(this,n,t)},nTm.lk=function(n,t){throw(new wP).e},nTm.Zh=function(){return new Mm(this)},nTm.$h=function(){return new My(this)},nTm._h=function(n){return qH(this,n)},nTm.mk=function(n,t){throw(new wP).e},nTm.Wj=function(n){return this},nTm.fj=function(){return 0!=this.i},nTm.Wb=function(n){throw(new wP).e},nTm.Xj=function(){throw(new wP).e},AY(nk5,"EcoreEList/UnmodifiableEList",1144),nrr(319,1144,njl,jW),nTm.ni=function(){return!1},AY(nk5,"EcoreEList/UnmodifiableEList/FastCompare",319),nrr(1147,319,njl,UQ),nTm.Xc=function(n){var t,e;if(Ti(n,170)&&-1!=(t=Im(n,170).aj())){for(e=this.i;t<e;++t)if(jf(this.g[t])===jf(n))return t}return -1},AY(nyo,"EClassImpl/1EAllStructuralFeaturesList",1147),nrr(1141,497,ny5,ua),nTm.ri=function(n){return _f(nQd,njg,87,n,0,1)},nTm.ni=function(){return!1},AY(nyo,"EClassImpl/1EGenericSuperTypeEList",1141),nrr(623,497,ny5,uu),nTm.ri=function(n){return _f(nQo,njs,170,n,0,1)},nTm.ni=function(){return!1},AY(nyo,"EClassImpl/1EStructuralFeatureUniqueEList",623),nrr(741,497,ny5,uo),nTm.ri=function(n){return _f(nQv,njs,18,n,0,1)},nTm.ni=function(){return!1},AY(nyo,"EClassImpl/1ReferenceList",741),nrr(1142,497,ny5,bU),nTm.bi=function(n,t){var e;((e=Im(t,34)).Bb&nya)==0||this.a.o||(this.a.o=e)},nTm.ri=function(n){return _f(nQs,njs,34,n,0,1)},nTm.ni=function(){return!1},AY(nyo,"EClassImpl/2",1142),nrr(1143,497,ny5,us),nTm.ri=function(n){return _f(nQs,njs,34,n,0,1)},nTm.ni=function(){return!1},AY(nyo,"EClassImpl/3",1143),nrr(1145,319,njl,IU),nTm.Fc=function(n){var t;return t=Im(n,34),vI(),_P(L6(this.a),t)},nTm.Yh=function(n){var t;t=Im(n,34),ni6(L6(this.a),t)},AY(nyo,"EClassImpl/4",1145),nrr(1146,319,njl,IX),nTm.Fc=function(n){var t;return t=Im(n,18),vI(),_P(L6(this.a),t)},nTm.Yh=function(n){var t;t=Im(n,18),ni6(L6(this.a),t)},AY(nyo,"EClassImpl/5",1146),nrr(1148,497,ny5,uh),nTm.ri=function(n){return _f(nQg,njh,59,n,0,1)},nTm.ni=function(){return!1},AY(nyo,"EClassImpl/6",1148),nrr(1149,497,ny5,uf),nTm.ri=function(n){return _f(nQv,njs,18,n,0,1)},nTm.ni=function(){return!1},AY(nyo,"EClassImpl/7",1149),nrr(1997,1996,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,69:1}),nTm.Vh=function(n,t){return nuE(this,n,t)},nTm.Wh=function(n){return nuE(this,this.Vi(),n)},nTm.Xh=function(n,t){ni8(this,n,t)},nTm.Yh=function(n){niU(this,n)},nTm.lk=function(n,t){var e,i,r,c;return e=t,this.ej()?(i=this.Vi(),c=this.fj(),++this.j,this.Hi(i,this.oi(i,n)),r=this.Zi(3,null,n,i,c),e?e.Ei(r):e=r):SC(this,this.Vi(),n),e},nTm.mk=function(n,t){var e,i,r,c,a;return e=t,-1!=(i=this.Xc(n))&&(this.ej()?(c=this.fj(),a=Cd(this,i),r=this.Zi(4,a,null,i,c),e?e.Ei(r):e=r):Cd(this,i)),e},nTm.mi=function(n,t){return nuT(this,n,t)},nTm.pi=function(n){return this.Oi(n)},nTm.Zh=function(){return new Mm(this)},nTm.Gi=function(){return this.Ji()},nTm.$h=function(){return new My(this)},nTm._h=function(n){return qH(this,n)},AY(nk5,"DelegatingNotifyingInternalEListImpl",1997),nrr(742,1997,njp),nTm.ai=function(){var n;return Ti(n=Hm(Nd(this.b),this.aj()).Yj(),148)&&!Ti(n,457)&&(1&n.Bj().i)==0},nTm.Hc=function(n){var t,e,i,r,c,a,u;if(!this.Fk())return this.Li(n);if((u=this.Vi())>4){if(!this.wj(n))return!1;if(this.rk()){if(a=(t=(e=Im(n,49)).Ug())==this.b&&(this.Dk()?e.Og(e.Vg(),Im(Hm(Nd(this.b),this.aj()).Yj(),26).Bj())==YI(Im(Hm(Nd(this.b),this.aj()),18)).n:-1-e.Vg()==this.aj()),this.Ek()&&!a&&!t&&e.Zg()){for(i=0;i<u;++i)if(jf(OY(this,this.Oi(i)))===jf(n))return!0}return a}if(this.Dk()&&!this.Ck()){if(jf(r=Im(n,56).ah(YI(Im(Hm(Nd(this.b),this.aj()),18))))===jf(this.b))return!0;if(null==r||!Im(r,56).kh())return!1}}if(c=this.Li(n),this.Ek()&&!c){for(i=0;i<u;++i)if(jf(e=OY(this,this.Oi(i)))===jf(n))return!0}return c},nTm.Zi=function(n,t,e,i,r){return new BE(this.b,n,this.aj(),t,e,i,r)},nTm.$i=function(n){zD(this.b,n)},nTm.Wj=function(n){return this},nTm._i=function(){return Hm(Nd(this.b),this.aj())},nTm.aj=function(){return Qj(Nd(this.b),Hm(Nd(this.b),this.aj()))},nTm.Ai=function(){return this.b},nTm.Bk=function(){return!!Hm(Nd(this.b),this.aj()).Yj().Bj()},nTm.bj=function(){var n;return!!Ti(n=Hm(Nd(this.b),this.aj()),99)&&((Im(n,18).Bb&nya)!=0||!!YI(Im(n,18)))},nTm.Ck=function(){var n,t,e;return!!Ti(n=Hm(Nd(this.b),this.aj()),99)&&!!(t=YI(Im(n,18)))&&((e=t.t)>1||-1==e)},nTm.Dk=function(){var n;return!!Ti(n=Hm(Nd(this.b),this.aj()),99)&&!!YI(Im(n,18))},nTm.Ek=function(){var n;return!!Ti(n=Hm(Nd(this.b),this.aj()),99)&&(Im(n,18).Bb&nls)!=0},nTm.Xc=function(n){var t,e,i;if((e=this.Qi(n))>=0)return e;if(this.Fk()){for(t=0,i=this.Vi();t<i;++t)if(jf(OY(this,this.Oi(t)))===jf(n))return t}return -1},nTm.cj=function(n,t){var e;return e=Im(n,49),this.Dk()?this.Bk()?e.gh(this.b,YI(Im(Hm(Nd(this.b),this.aj()),18)).n,Im(Hm(Nd(this.b),this.aj()).Yj(),26).Bj(),t):e.gh(this.b,Qj(e.Tg(),YI(Im(Hm(Nd(this.b),this.aj()),18))),null,t):e.gh(this.b,-1-this.aj(),null,t)},nTm.dj=function(n,t){var e;return e=Im(n,49),this.Dk()?this.Bk()?e.ih(this.b,YI(Im(Hm(Nd(this.b),this.aj()),18)).n,Im(Hm(Nd(this.b),this.aj()).Yj(),26).Bj(),t):e.ih(this.b,Qj(e.Tg(),YI(Im(Hm(Nd(this.b),this.aj()),18))),null,t):e.ih(this.b,-1-this.aj(),null,t)},nTm.rk=function(){var n;return!!Ti(n=Hm(Nd(this.b),this.aj()),99)&&(Im(n,18).Bb&nya)!=0},nTm.Fk=function(){return Ti(Hm(Nd(this.b),this.aj()).Yj(),88)},nTm.wj=function(n){return Hm(Nd(this.b),this.aj()).Yj().wj(n)},nTm.ej=function(){return Ea(this.b)},nTm.fj=function(){return!this.Ri()},nTm.hi=function(){return Hm(Nd(this.b),this.aj()).hi()},nTm.li=function(n,t){return no1(this,n,t)},nTm.Wb=function(n){noH(this),AJ(this,Im(n,15))},nTm.Pc=function(){var n;if(this.Ek())for(n=this.Vi()-1;n>=0;--n)no1(this,n,this.Oi(n));return this.Wi()},nTm.Qc=function(n){var t;if(this.Ek())for(t=this.Vi()-1;t>=0;--t)no1(this,t,this.Oi(t));return this.Xi(n)},nTm.Xj=function(){noH(this)},nTm.oi=function(n,t){return _X(this,n,t)},AY(nk5,"DelegatingEcoreEList",742),nrr(1150,742,njp,Sx),nTm.Hi=function(n,t){var e;e=Im(t,26),Vf(RJ(this.a),n,xV(e))},nTm.Ii=function(n){var t;t=Im(n,26),_P(RJ(this.a),xV(t))},nTm.Oi=function(n){var t;return Ti(t=Im(HX(RJ(this.a),n),87).c,88)?Im(t,26):(nhl(),nQG)},nTm.Ti=function(n){var t;return Ti(t=Im(ncQ(RJ(this.a),n),87).c,88)?Im(t,26):(nhl(),nQG)},nTm.Ui=function(n,t){var e,i,r,c;return e=Im(t,26),((64&(c=Ti(r=(i=Im(HX(RJ(this.a),n),87)).c,88)?Im(r,26):(nhl(),nQG)).Db)!=0?WO(this.b,c):c)==e?nuI(i):H1(i,e),c},nTm.ai=function(){return!1},nTm.Zi=function(n,t,e,i,r){return null},nTm.Ji=function(){return new bX(this)},nTm.Ki=function(){noK(RJ(this.a))},nTm.Li=function(n){return W8(this,n)},nTm.Mi=function(n){var t;for(t=n.Kc();t.Ob();)if(!W8(this,t.Pb()))return!1;return!0},nTm.Ni=function(n){var t,e,i;if(Ti(n,15)&&(i=Im(n,15)).gc()==RJ(this.a).i){for(t=i.Kc(),e=new Td(this);t.Ob();)if(jf(t.Pb())!==jf(J1(e)))return!1;return!0}return!1},nTm.Pi=function(){var n,t,e,i;for(t=1,n=new Td(RJ(this.a));n.e!=n.i.gc();)t=31*t+((e=Ti(i=Im(J1(n),87).c,88)?Im(i,26):(nhl(),nQG))?T9(e):0);return t},nTm.Qi=function(n){var t,e,i,r;for(i=0,e=new Td(RJ(this.a));e.e!=e.i.gc();){if(t=Im(J1(e),87),jf(n)===jf(Ti(r=t.c,88)?Im(r,26):(nhl(),nQG)))return i;++i}return -1},nTm.Ri=function(){return 0==RJ(this.a).i},nTm.Si=function(){return null},nTm.Vi=function(){return RJ(this.a).i},nTm.Wi=function(){var n,t,e,i,r;for(r=_f(nEX,nhA,1,RJ(this.a).i,5,1),e=0,t=new Td(RJ(this.a));t.e!=t.i.gc();)n=Im(J1(t),87),r[e++]=Ti(i=n.c,88)?Im(i,26):(nhl(),nQG);return r},nTm.Xi=function(n){var t,e,i,r,c;for(c=RJ(this.a).i,n.length<c&&(n=qm(Xp(n).c,c)),n.length>c&&$t(n,c,null),e=0,t=new Td(RJ(this.a));t.e!=t.i.gc();)i=Ti(r=Im(J1(t),87).c,88)?Im(r,26):(nhl(),nQG),$t(n,e++,i);return n},nTm.Yi=function(){var n,t,e,i,r;for(r=new gz,r.a+="[",n=RJ(this.a),t=0,i=RJ(this.a).i;t<i;)jT(r,T4(Ti(e=Im(HX(n,t),87).c,88)?Im(e,26):(nhl(),nQG))),++t<i&&(r.a+=nhC);return r.a+="]",r.a},nTm.$i=function(n){},nTm.aj=function(){return 10},nTm.Bk=function(){return!0},nTm.bj=function(){return!1},nTm.Ck=function(){return!1},nTm.Dk=function(){return!1},nTm.Ek=function(){return!0},nTm.rk=function(){return!1},nTm.Fk=function(){return!0},nTm.wj=function(n){return Ti(n,88)},nTm.fj=function(){var n;return!!(n=this.a).u&&0!=RJ(n.u.a).i&&!(n.n&&YD(n.n))},nTm.hi=function(){return!0},nTm.ni=function(){return!0},AY(nyo,"EClassImpl/8",1150),nrr(1151,1964,nff,bX),nTm.Zc=function(n){return qH(this.a,n)},nTm.gc=function(){return RJ(this.a.a).i},AY(nyo,"EClassImpl/8/1",1151),nrr(1152,497,ny5,ul),nTm.ri=function(n){return _f(nQh,nhA,138,n,0,1)},nTm.ni=function(){return!1},AY(nyo,"EClassImpl/9",1152),nrr(1139,53,nlT,dE),AY(nyo,"EClassImpl/MyHashSet",1139),nrr(566,351,{105:1,92:1,90:1,138:1,148:1,834:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1},wL),nTm._g=function(n,t,e){switch(n){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return Zb(this);case 4:return this.zj();case 5:return this.F;case 6:if(t)return HU(this);return xw(this);case 7:return this.A||(this.A=new Tv(nQm,this,7)),this.A;case 8:return TX(),(256&this.Bb)!=0}return _Q(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n),t,e)},nTm.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!Zb(this);case 4:return null!=this.zj();case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!xw(this);case 7:return!!this.A&&0!=this.A.i;case 8:return(256&this.Bb)==0}return RN(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n))},nTm.sh=function(n,t){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab),this.Ab||(this.Ab=new An(nQa,this,0,3)),AJ(this.Ab,Im(t,14));return;case 1:xX(this,Sh(t));return;case 2:Ew(this,Sh(t));return;case 5:noJ(this,Sh(t));return;case 7:this.A||(this.A=new Tv(nQm,this,7)),noK(this.A),this.A||(this.A=new Tv(nQm,this,7)),AJ(this.A,Im(t,14));return;case 8:Ve(this,gm(So(t)));return}V5(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n),t)},nTm.zh=function(){return nhl(),nQD},nTm.Bh=function(n){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab);return;case 1:Ti(this.Cb,179)&&(Im(this.Cb,179).tb=null),GF(this,null);return;case 2:XH(this,null),qv(this,this.D);return;case 5:noJ(this,null);return;case 7:this.A||(this.A=new Tv(nQm,this,7)),noK(this.A);return;case 8:Ve(this,!0);return}W5(this,n-AW(this.zh()),Hm(Im(zF(this,16),26)||this.zh(),n))},nTm.Gh=function(){WW((neS(),nJk),this).ne(),this.Bb|=1},nTm.Fj=function(){var n,t;if(!this.c&&!(n=nrH(HU(this))).dc())for(t=n.Kc();t.Ob();)nus(this,Sh(t.Pb()))&&function(n){var t,e,i;for(e=nrH(HU(n)).Kc();e.Ob();)if(nus(n,t=Sh(e.Pb())))return mh(),i=nQM,jj(null!=t?Nz(i,t):jh(Nj(i.f,t)))}(this);return this.b},nTm.zj=function(){var n;if(!this.e){n=null;try{n=Zb(this)}catch(n){if(!Ti(n=Uu(n),102))throw n.e}this.d=null,n&&(1&n.i)!=0&&(n==nYN?this.d=(TX(),nTV):n==nYL?this.d=Va(0):n==nYK?this.d=new h_(0):n==nYR?this.d=0:n==nYx?this.d=Jy(0):n==nYF?this.d=Vu(0):n==nYD?this.d=B4(0):this.d=Ua(0)),this.e=!0}return this.d},nTm.Ej=function(){return(256&this.Bb)!=0},nTm.Ik=function(n){n&&(this.D="org.eclipse.emf.common.util.AbstractEnumerator")},nTm.xk=function(n){GQ(this,n),this.Ik(n)},nTm.yk=function(n){this.C=n,this.e=!1},nTm.Ib=function(){var n;return(64&this.Db)!=0?Qk(this):(n=new TW(Qk(this)),n.a+=" (serializable: ",p$(n,(256&this.Bb)!=0),n.a+=")",n.a)},nTm.c=!1,nTm.d=null,nTm.e=!1,AY(nyo,"EDataTypeImpl",566),nrr(457,566,{105:1,92:1,90:1,138:1,148:1,834:1,671:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,457:1,150:1,114:1,115:1,676:1},dM),nTm._g=function(n,t,e){switch(n){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return Zb(this);case 4:return X1(this);case 5:return this.F;case 6:if(t)return HU(this);return xw(this);case 7:return this.A||(this.A=new Tv(nQm,this,7)),this.A;case 8:return TX(),(256&this.Bb)!=0;case 9:return this.a||(this.a=new An(nQw,this,9,5)),this.a}return _Q(this,n-AW((nhl(),nQR)),Hm(Im(zF(this,16),26)||nQR,n),t,e)},nTm.hh=function(n,t,e){var i;switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),QN(this.Ab,n,e);case 6:return this.Cb&&(e=(i=this.Db>>16)>=0?Zm(this,e):this.Cb.ih(this,-1-i,null,e)),nuc(this,n,6,e);case 9:return this.a||(this.a=new An(nQw,this,9,5)),QN(this.a,n,e)}return Im(Hm(Im(zF(this,16),26)||(nhl(),nQR),t),66).Nj().Qj(this,Jp(this),t-AW((nhl(),nQR)),n,e)},nTm.jh=function(n,t,e){switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),Ye(this.Ab,n,e);case 6:return nuc(this,null,6,e);case 7:return this.A||(this.A=new Tv(nQm,this,7)),Ye(this.A,n,e);case 9:return this.a||(this.a=new An(nQw,this,9,5)),Ye(this.a,n,e)}return Im(Hm(Im(zF(this,16),26)||(nhl(),nQR),t),66).Nj().Rj(this,Jp(this),t-AW((nhl(),nQR)),n,e)},nTm.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!Zb(this);case 4:return!!X1(this);case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!xw(this);case 7:return!!this.A&&0!=this.A.i;case 8:return(256&this.Bb)==0;case 9:return!!this.a&&0!=this.a.i}return RN(this,n-AW((nhl(),nQR)),Hm(Im(zF(this,16),26)||nQR,n))},nTm.sh=function(n,t){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab),this.Ab||(this.Ab=new An(nQa,this,0,3)),AJ(this.Ab,Im(t,14));return;case 1:xX(this,Sh(t));return;case 2:Ew(this,Sh(t));return;case 5:noJ(this,Sh(t));return;case 7:this.A||(this.A=new Tv(nQm,this,7)),noK(this.A),this.A||(this.A=new Tv(nQm,this,7)),AJ(this.A,Im(t,14));return;case 8:Ve(this,gm(So(t)));return;case 9:this.a||(this.a=new An(nQw,this,9,5)),noK(this.a),this.a||(this.a=new An(nQw,this,9,5)),AJ(this.a,Im(t,14));return}V5(this,n-AW((nhl(),nQR)),Hm(Im(zF(this,16),26)||nQR,n),t)},nTm.zh=function(){return nhl(),nQR},nTm.Bh=function(n){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab);return;case 1:Ti(this.Cb,179)&&(Im(this.Cb,179).tb=null),GF(this,null);return;case 2:XH(this,null),qv(this,this.D);return;case 5:noJ(this,null);return;case 7:this.A||(this.A=new Tv(nQm,this,7)),noK(this.A);return;case 8:Ve(this,!0);return;case 9:this.a||(this.a=new An(nQw,this,9,5)),noK(this.a);return}W5(this,n-AW((nhl(),nQR)),Hm(Im(zF(this,16),26)||nQR,n))},nTm.Gh=function(){var n,t;if(this.a)for(n=0,t=this.a.i;n<t;++n)MO(HX(this.a,n));WW((neS(),nJk),this).ne(),this.Bb|=1},nTm.zj=function(){return X1(this)},nTm.wj=function(n){return null!=n},nTm.Ik=function(n){},AY(nyo,"EEnumImpl",457),nrr(573,438,{105:1,92:1,90:1,1940:1,678:1,147:1,191:1,56:1,108:1,49:1,97:1,573:1,150:1,114:1,115:1},w$),nTm.ne=function(){return this.zb},nTm.Qg=function(n){return ZY(this,n)},nTm._g=function(n,t,e){var i;switch(n){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Va(this.d);case 3:return this.b?this.b:this.a;case 4:return null==(i=this.c)?this.zb:i;case 5:return this.Db>>16==5?Im(this.Cb,671):null}return _Q(this,n-AW((nhl(),nQK)),Hm(Im(zF(this,16),26)||nQK,n),t,e)},nTm.hh=function(n,t,e){var i;switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),QN(this.Ab,n,e);case 5:return this.Cb&&(e=(i=this.Db>>16)>=0?ZY(this,e):this.Cb.ih(this,-1-i,null,e)),nuc(this,n,5,e)}return Im(Hm(Im(zF(this,16),26)||(nhl(),nQK),t),66).Nj().Qj(this,Jp(this),t-AW((nhl(),nQK)),n,e)},nTm.jh=function(n,t,e){switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),Ye(this.Ab,n,e);case 5:return nuc(this,null,5,e)}return Im(Hm(Im(zF(this,16),26)||(nhl(),nQK),t),66).Nj().Rj(this,Jp(this),t-AW((nhl(),nQK)),n,e)},nTm.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0!=this.d;case 3:return!!this.b;case 4:return null!=this.c;case 5:return!!(this.Db>>16==5?Im(this.Cb,671):null)}return RN(this,n-AW((nhl(),nQK)),Hm(Im(zF(this,16),26)||nQK,n))},nTm.sh=function(n,t){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab),this.Ab||(this.Ab=new An(nQa,this,0,3)),AJ(this.Ab,Im(t,14));return;case 1:GF(this,Sh(t));return;case 2:qd(this,Im(t,19).a);return;case 3:niR(this,Im(t,1940));return;case 4:Gr(this,Sh(t));return}V5(this,n-AW((nhl(),nQK)),Hm(Im(zF(this,16),26)||nQK,n),t)},nTm.zh=function(){return nhl(),nQK},nTm.Bh=function(n){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab);return;case 1:GF(this,null);return;case 2:qd(this,0);return;case 3:niR(this,null);return;case 4:Gr(this,null);return}W5(this,n-AW((nhl(),nQK)),Hm(Im(zF(this,16),26)||nQK,n))},nTm.Ib=function(){var n;return null==(n=this.c)?this.zb:n},nTm.b=null,nTm.c=null,nTm.d=0,AY(nyo,"EEnumLiteralImpl",573);var nQj=Cw(nyo,"EFactoryImpl/InternalEDateTimeFormat");nrr(489,1,{2015:1},bW),AY(nyo,"EFactoryImpl/1ClientInternalEDateTimeFormat",489),nrr(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},wr),nTm.Sg=function(n,t,e){var i;return e=nuc(this,n,t,e),this.e&&Ti(n,170)&&(i=nr0(this,this.e))!=this.c&&(e=nsg(this,i,e)),e},nTm._g=function(n,t,e){switch(n){case 0:return this.f;case 1:return this.d||(this.d=new Tg(nQd,this,1)),this.d;case 2:if(t)return nuI(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(t)return YB(this);return this.a}return _Q(this,n-AW((nhl(),nQ_)),Hm(Im(zF(this,16),26)||nQ_,n),t,e)},nTm.jh=function(n,t,e){switch(t){case 0:return WC(this,null,e);case 1:return this.d||(this.d=new Tg(nQd,this,1)),Ye(this.d,n,e);case 3:return WI(this,null,e)}return Im(Hm(Im(zF(this,16),26)||(nhl(),nQ_),t),66).Nj().Rj(this,Jp(this),t-AW((nhl(),nQ_)),n,e)},nTm.lh=function(n){switch(n){case 0:return!!this.f;case 1:return!!this.d&&0!=this.d.i;case 2:return!!this.c;case 3:return!!this.b;case 4:return!!this.e;case 5:return!!this.a}return RN(this,n-AW((nhl(),nQ_)),Hm(Im(zF(this,16),26)||nQ_,n))},nTm.sh=function(n,t){switch(n){case 0:nnq(this,Im(t,87));return;case 1:this.d||(this.d=new Tg(nQd,this,1)),noK(this.d),this.d||(this.d=new Tg(nQd,this,1)),AJ(this.d,Im(t,14));return;case 3:nnH(this,Im(t,87));return;case 4:ntB(this,Im(t,836));return;case 5:H1(this,Im(t,138));return}V5(this,n-AW((nhl(),nQ_)),Hm(Im(zF(this,16),26)||nQ_,n),t)},nTm.zh=function(){return nhl(),nQ_},nTm.Bh=function(n){switch(n){case 0:nnq(this,null);return;case 1:this.d||(this.d=new Tg(nQd,this,1)),noK(this.d);return;case 3:nnH(this,null);return;case 4:ntB(this,null);return;case 5:H1(this,null);return}W5(this,n-AW((nhl(),nQ_)),Hm(Im(zF(this,16),26)||nQ_,n))},nTm.Ib=function(){var n;return n=new TV(nrN(this)),n.a+=" (expression: ",function n(t,e){var i,r,c,a,u,o,s;if(t.a){if(o=t.a.ne(),s=null,null!=o?e.a+=""+o:null!=(u=t.a.Dj())&&(-1!=(a=jZ(u,ntd(91)))?(s=u.substr(a),e.a+=""+MT(null==u?nhN:($x(u),u),0,a)):e.a+=""+u),t.d&&0!=t.d.i){for(c=!0,e.a+="<",r=new Td(t.d);r.e!=r.i.gc();)i=Im(J1(r),87),c?c=!1:e.a+=nhC,n(i,e);e.a+=">"}null!=s&&(e.a+=""+s)}else t.e?null!=(o=t.e.zb)&&(e.a+=""+o):(e.a+="?",t.b?(e.a+=" super ",n(t.b,e)):t.f&&(e.a+=" extends ",n(t.f,e)))}(this,n),n.a+=")",n.a},AY(nyo,"EGenericTypeImpl",241),nrr(1969,1964,njv),nTm.Xh=function(n,t){(function(n,t,e){n.Zc(t).Rb(e)})(this,n,t)},nTm.lk=function(n,t){return function(n,t,e){n.Zc(t).Rb(e)}(this,this.gc(),n),t},nTm.pi=function(n){return J7(this.Gi(),n)},nTm.Zh=function(){return this.$h()},nTm.Gi=function(){return new b3(this)},nTm.$h=function(){return this._h(0)},nTm._h=function(n){return this.Gi().Zc(n)},nTm.mk=function(n,t){return Qg(this,n,!0),t},nTm.ii=function(n,t){var e;return e=Zq(this,t),this.Zc(n).Rb(e),e},nTm.ji=function(n,t){Qg(this,t,!0),this.Zc(n).Rb(t)},AY(nk5,"AbstractSequentialInternalEList",1969),nrr(486,1969,njv,Ml),nTm.pi=function(n){return J7(this.Gi(),n)},nTm.Zh=function(){return null==this.b?(md(),md(),nQ8):this.Jk()},nTm.Gi=function(){return new jQ(this.a,this.b)},nTm.$h=function(){return null==this.b?(md(),md(),nQ8):this.Jk()},nTm._h=function(n){var t,e;if(null==this.b){if(n<0||n>1)throw new gu(nkB+n+", size=0").e;return md(),md(),nQ8}for(t=0,e=this.Jk();t<n;++t)zG(e);return e},nTm.dc=function(){var n,t,e,i,r,c;if(null!=this.b){for(e=0;e<this.b.length;++e)if(n=this.b[e],!this.Mk()||this.a.mh(n)){if(c=this.a.bh(n,!1),mp(),Im(n,66).Oj()){for(i=0,r=(t=Im(c,153)).gc();i<r;++i)if(AV(t.il(i))&&null!=t.jl(i))return!1}else if(n.$j()){if(!Im(c,14).dc())return!1}else if(null!=c)return!1}}return!0},nTm.Kc=function(){return GC(this)},nTm.Zc=function(n){var t,e;if(null==this.b){if(0!=n)throw new gu(nkB+n+", size=0").e;return md(),md(),nQ8}for(t=0,e=this.Lk()?this.Kk():this.Jk();t<n;++t)zG(e);return e},nTm.ii=function(n,t){throw(new wP).e},nTm.ji=function(n,t){throw(new wP).e},nTm.Jk=function(){return new Mb(this.a,this.b)},nTm.Kk=function(){return new MZ(this.a,this.b)},nTm.Lk=function(){return!0},nTm.gc=function(){var n,t,e,i,r,c,a;if(r=0,null!=this.b){for(e=0;e<this.b.length;++e)if(n=this.b[e],!this.Mk()||this.a.mh(n)){if(a=this.a.bh(n,!1),mp(),Im(n,66).Oj())for(i=0,c=(t=Im(a,153)).gc();i<c;++i)AV(t.il(i))&&null!=t.jl(i)&&++r;else n.$j()?r+=Im(a,14).gc():null!=a&&++r}}return r},nTm.Mk=function(){return!0},AY(nk5,"EContentsEList",486),nrr(1156,486,njv,MY),nTm.Jk=function(){return new M1(this.a,this.b)},nTm.Kk=function(){return new M0(this.a,this.b)},nTm.Mk=function(){return!1},AY(nyo,"ENamedElementImpl/1",1156),nrr(279,1,njm,Mb),nTm.Nb=function(n){Ao(this,n)},nTm.Rb=function(n){throw(new wP).e},nTm.Nk=function(n){if(0!=this.g||this.e)throw new gg("Iterator already in use or already filtered").e;this.e=n},nTm.Ob=function(){var n,t,e,i,r,c;switch(this.g){case 3:case 2:return!0;case 1:return!1;case -3:this.p?this.p.Pb():++this.n;default:if(this.k&&(this.p?nek(this,this.p):niK(this)))return r=this.p?this.p.Pb():this.j?this.j.pi(this.n++):this.k.Xb(this.n++),this.f?((n=Im(r,72)).ak(),e=n.dd()):e=r,this.i=e,this.g=3,!0;for(;this.d<this.c.length;)if(t=this.c[this.d++],(!this.e||t.Gj()!=nCP||0!=t.aj())&&(!this.Mk()||this.b.mh(t))){if(c=this.b.bh(t,this.Lk()),this.f=(mp(),Im(t,66).Oj()),this.f||t.$j()){if(this.Lk()?(i=Im(c,15),this.k=i):(i=Im(c,69),this.k=this.j=i),Ti(this.k,54)?(this.p=null,this.o=this.k.gc(),this.n=0):this.p=this.j?this.j.$h():this.k.Yc(),this.p?nek(this,this.p):niK(this))return r=this.p?this.p.Pb():this.j?this.j.pi(this.n++):this.k.Xb(this.n++),this.f?((n=Im(r,72)).ak(),e=n.dd()):e=r,this.i=e,this.g=3,!0}else if(null!=c)return this.k=null,this.p=null,e=c,this.i=e,this.g=2,!0}return this.k=null,this.p=null,this.f=!1,this.g=1,!1}},nTm.Sb=function(){var n,t,e,i,r,c;switch(this.g){case -3:case -2:return!0;case -1:return!1;case 3:this.p?this.p.Ub():--this.n;default:if(this.k&&(this.p?nej(this,this.p):neU(this)))return r=this.p?this.p.Ub():this.j?this.j.pi(--this.n):this.k.Xb(--this.n),this.f?((n=Im(r,72)).ak(),e=n.dd()):e=r,this.i=e,this.g=-3,!0;for(;this.d>0;)if(t=this.c[--this.d],(!this.e||t.Gj()!=nCP||0!=t.aj())&&(!this.Mk()||this.b.mh(t))){if(c=this.b.bh(t,this.Lk()),this.f=(mp(),Im(t,66).Oj()),this.f||t.$j()){if(this.Lk()?(i=Im(c,15),this.k=i):(i=Im(c,69),this.k=this.j=i),Ti(this.k,54)?(this.o=this.k.gc(),this.n=this.o):this.p=this.j?this.j._h(this.k.gc()):this.k.Zc(this.k.gc()),this.p?nej(this,this.p):neU(this))return r=this.p?this.p.Ub():this.j?this.j.pi(--this.n):this.k.Xb(--this.n),this.f?((n=Im(r,72)).ak(),e=n.dd()):e=r,this.i=e,this.g=-3,!0}else if(null!=c)return this.k=null,this.p=null,e=c,this.i=e,this.g=-2,!0}return this.k=null,this.p=null,this.g=-1,!1}},nTm.Pb=function(){return zG(this)},nTm.Tb=function(){return this.a},nTm.Ub=function(){var n;if(this.g<-1||this.Sb())return--this.a,this.g=0,n=this.i,this.Sb(),n;throw(new wO).e},nTm.Vb=function(){return this.a-1},nTm.Qb=function(){throw(new wP).e},nTm.Lk=function(){return!1},nTm.Wb=function(n){throw(new wP).e},nTm.Mk=function(){return!0},nTm.a=0,nTm.d=0,nTm.f=!1,nTm.g=0,nTm.n=0,nTm.o=0,AY(nk5,"EContentsEList/FeatureIteratorImpl",279),nrr(697,279,njm,MZ),nTm.Lk=function(){return!0},AY(nk5,"EContentsEList/ResolvingFeatureIteratorImpl",697),nrr(1157,697,njm,M0),nTm.Mk=function(){return!1},AY(nyo,"ENamedElementImpl/1/1",1157),nrr(1158,279,njm,M1),nTm.Mk=function(){return!1},AY(nyo,"ENamedElementImpl/1/2",1158),nrr(36,143,nk_,R2,R3,O9,_R,BE,Fi,qT,Dm,qM,Dy,Fn,Dk,qI,Dj,Ft,DE,qS,DT,O7,_K,L0,qP,DM,Fe,DS),nTm._i=function(){return _S(this)},nTm.gj=function(){var n;return(n=_S(this))?n.zj():null},nTm.yi=function(n){return -1==this.b&&this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj())),this.c.Og(this.b,n)},nTm.Ai=function(){return this.c},nTm.hj=function(){var n;return!!(n=_S(this))&&n.Kj()},nTm.b=-1,AY(nyo,"ENotificationImpl",36),nrr(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},dS),nTm.Qg=function(n){return Z6(this,n)},nTm._g=function(n,t,e){var i;switch(n){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),this.Ab;case 1:return this.zb;case 2:return TX(),(256&this.Bb)!=0;case 3:return TX(),(512&this.Bb)!=0;case 4:return Va(this.s);case 5:return Va(this.t);case 6:return TX(),(i=this.t)>1||-1==i;case 7:return TX(),this.s>=1;case 8:if(t)return Z9(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?Im(this.Cb,26):null;case 11:return this.d||(this.d=new Tv(nQm,this,11)),this.d;case 12:return this.c||(this.c=new An(nQp,this,12,10)),this.c;case 13:return this.a||(this.a=new SD(this,this)),this.a;case 14:return BO(this)}return _Q(this,n-AW((nhl(),nQz)),Hm(Im(zF(this,16),26)||nQz,n),t,e)},nTm.hh=function(n,t,e){var i;switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),QN(this.Ab,n,e);case 10:return this.Cb&&(e=(i=this.Db>>16)>=0?Z6(this,e):this.Cb.ih(this,-1-i,null,e)),nuc(this,n,10,e);case 12:return this.c||(this.c=new An(nQp,this,12,10)),QN(this.c,n,e)}return Im(Hm(Im(zF(this,16),26)||(nhl(),nQz),t),66).Nj().Qj(this,Jp(this),t-AW((nhl(),nQz)),n,e)},nTm.jh=function(n,t,e){switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),Ye(this.Ab,n,e);case 9:return AQ(this,e);case 10:return nuc(this,null,10,e);case 11:return this.d||(this.d=new Tv(nQm,this,11)),Ye(this.d,n,e);case 12:return this.c||(this.c=new An(nQp,this,12,10)),Ye(this.c,n,e);case 14:return Ye(BO(this),n,e)}return Im(Hm(Im(zF(this,16),26)||(nhl(),nQz),t),66).Nj().Rj(this,Jp(this),t-AW((nhl(),nQz)),n,e)},nTm.lh=function(n){var t;switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return(256&this.Bb)==0;case 3:return(512&this.Bb)==0;case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(t=this.t)>1||-1==t;case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==$N(this.q).i;case 9:return!!this.q&&!(this.r&&!this.q.e&&0==$N(this.q).i);case 10:return!!(this.Db>>16==10?Im(this.Cb,26):null);case 11:return!!this.d&&0!=this.d.i;case 12:return!!this.c&&0!=this.c.i;case 13:return!!this.a&&0!=BO(this.a.a).i&&!(this.b&&YR(this.b));case 14:return!!this.b&&YR(this.b)}return RN(this,n-AW((nhl(),nQz)),Hm(Im(zF(this,16),26)||nQz,n))},nTm.sh=function(n,t){var e;switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab),this.Ab||(this.Ab=new An(nQa,this,0,3)),AJ(this.Ab,Im(t,14));return;case 1:GF(this,Sh(t));return;case 2:Vn(this,gm(So(t)));return;case 3:Vi(this,gm(So(t)));return;case 4:qg(this,Im(t,19).a);return;case 5:qp(this,Im(t,19).a);return;case 8:Ww(this,Im(t,138));return;case 9:(e=ntl(this,Im(t,87),null))&&e.Fi();return;case 11:this.d||(this.d=new Tv(nQm,this,11)),noK(this.d),this.d||(this.d=new Tv(nQm,this,11)),AJ(this.d,Im(t,14));return;case 12:this.c||(this.c=new An(nQp,this,12,10)),noK(this.c),this.c||(this.c=new An(nQp,this,12,10)),AJ(this.c,Im(t,14));return;case 13:this.a||(this.a=new SD(this,this)),noH(this.a),this.a||(this.a=new SD(this,this)),AJ(this.a,Im(t,14));return;case 14:noK(BO(this)),AJ(BO(this),Im(t,14));return}V5(this,n-AW((nhl(),nQz)),Hm(Im(zF(this,16),26)||nQz,n),t)},nTm.zh=function(){return nhl(),nQz},nTm.Bh=function(n){var t;switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab);return;case 1:GF(this,null);return;case 2:Vn(this,!0);return;case 3:Vi(this,!0);return;case 4:qg(this,0);return;case 5:qp(this,1);return;case 8:Ww(this,null);return;case 9:(t=ntl(this,null,null))&&t.Fi();return;case 11:this.d||(this.d=new Tv(nQm,this,11)),noK(this.d);return;case 12:this.c||(this.c=new An(nQp,this,12,10)),noK(this.c);return;case 13:this.a&&noH(this.a);return;case 14:this.b&&noK(this.b);return}W5(this,n-AW((nhl(),nQz)),Hm(Im(zF(this,16),26)||nQz,n))},nTm.Gh=function(){var n,t;if(this.c)for(n=0,t=this.c.i;n<t;++n)MO(HX(this.c,n));Z9(this),this.Bb|=1},AY(nyo,"EOperationImpl",399),nrr(505,742,njp,SD),nTm.Hi=function(n,t){var e;e=Im(t,138),Vf(BO(this.a),n,xQ(e))},nTm.Ii=function(n){var t;t=Im(n,138),_P(BO(this.a),xQ(t))},nTm.Oi=function(n){return Im(HX(BO(this.a),n),87).c||(nhl(),nQB)},nTm.Ti=function(n){return Im(ncQ(BO(this.a),n),87).c||(nhl(),nQB)},nTm.Ui=function(n,t){var e,i,r;return e=Im(t,138),((r=(i=Im(HX(BO(this.a),n),87)).c||(nhl(),nQB)).kh()?WO(this.b,Im(r,49)):r)==e?nuI(i):H1(i,e),r},nTm.ai=function(){return!1},nTm.Zi=function(n,t,e,i,r){return null},nTm.Ji=function(){return new bV(this)},nTm.Ki=function(){noK(BO(this.a))},nTm.Li=function(n){return Vh(this,n)},nTm.Mi=function(n){var t;for(t=n.Kc();t.Ob();)if(!Vh(this,t.Pb()))return!1;return!0},nTm.Ni=function(n){var t,e,i;if(Ti(n,15)&&(i=Im(n,15)).gc()==BO(this.a).i){for(t=i.Kc(),e=new Td(this);t.Ob();)if(jf(t.Pb())!==jf(J1(e)))return!1;return!0}return!1},nTm.Pi=function(){var n,t,e;for(t=1,n=new Td(BO(this.a));n.e!=n.i.gc();)t=31*t+((e=Im(J1(n),87).c||(nhl(),nQB))?Xg(e):0);return t},nTm.Qi=function(n){var t,e,i;for(i=0,e=new Td(BO(this.a));e.e!=e.i.gc();){if(t=Im(J1(e),87),jf(n)===jf(t.c||(nhl(),nQB)))return i;++i}return -1},nTm.Ri=function(){return 0==BO(this.a).i},nTm.Si=function(){return null},nTm.Vi=function(){return BO(this.a).i},nTm.Wi=function(){var n,t,e,i;for(i=_f(nEX,nhA,1,BO(this.a).i,5,1),e=0,t=new Td(BO(this.a));t.e!=t.i.gc();)n=Im(J1(t),87),i[e++]=n.c||(nhl(),nQB);return i},nTm.Xi=function(n){var t,e,i,r;for(r=BO(this.a).i,n.length<r&&(n=qm(Xp(n).c,r)),n.length>r&&$t(n,r,null),e=0,t=new Td(BO(this.a));t.e!=t.i.gc();)i=Im(J1(t),87).c||(nhl(),nQB),$t(n,e++,i);return n},nTm.Yi=function(){var n,t,e,i;for(i=new gz,i.a+="[",n=BO(this.a),t=0,e=BO(this.a).i;t<e;)jT(i,T4(Im(HX(n,t),87).c||(nhl(),nQB))),++t<e&&(i.a+=nhC);return i.a+="]",i.a},nTm.$i=function(n){},nTm.aj=function(){return 13},nTm.Bk=function(){return!0},nTm.bj=function(){return!1},nTm.Ck=function(){return!1},nTm.Dk=function(){return!1},nTm.Ek=function(){return!0},nTm.rk=function(){return!1},nTm.Fk=function(){return!0},nTm.wj=function(n){return Ti(n,138)},nTm.fj=function(){var n;return!!(n=this.a).a&&0!=BO(n.a.a).i&&!(n.b&&YR(n.b))},nTm.hi=function(){return!0},nTm.ni=function(){return!0},AY(nyo,"EOperationImpl/1",505),nrr(1340,1964,nff,bV),nTm.Zc=function(n){return qH(this.a,n)},nTm.gc=function(){return BO(this.a.a).i},AY(nyo,"EOperationImpl/1/1",1340),nrr(1341,545,njl,Op),nTm.ii=function(n,t){var e;return e=Im(Vm(this,n,t),87),Ea(this.e)&&wR(this,new _K(this.a,7,(nhl(),nQU),Va(t),e.c||nQB,n)),e},nTm.jj=function(n,t){var e,i,r;return e=Im(n,87),i=t,r=new BE(this.e,3,13,null,e.c||(nhl(),nQB),Yl(this,e),!1),i?i.Ei(r):i=r,i},nTm.kj=function(n,t){var e,i,r;return e=Im(n,87),i=t,r=new BE(this.e,4,13,e.c||(nhl(),nQB),null,Yl(this,e),!1),i?i.Ei(r):i=r,i},nTm.lj=function(n,t,e){var i,r,c,a;return i=Im(n,87),r=Im(t,87),c=e,a=new BE(this.e,1,13,i.c||(nhl(),nQB),r.c||(nhl(),nQB),Yl(this,i),!1),c?c.Ei(a):c=a,c},nTm.Zi=function(n,t,e,i,r){switch(n){case 3:return xv(this,n,t,e,i,this.i>1);case 5:return xv(this,n,t,e,i,this.i-Im(e,15).gc()>0);default:return new BE(this.e,n,this.c,t,e,i,!0)}},nTm.ij=function(){return!0},nTm.fj=function(){return YR(this)},nTm.Xj=function(){noK(this)},AY(nyo,"EOperationImpl/2",1341),nrr(498,1,{1938:1,498:1},k7),AY(nyo,"EPackageImpl/1",498),nrr(16,85,njl,An),nTm.zk=function(){return this.d},nTm.Ak=function(){return this.b},nTm.Dk=function(){return!0},nTm.b=0,AY(nk5,"EObjectContainmentWithInverseEList",16),nrr(353,16,njl,Pe),nTm.Ek=function(){return!0},nTm.li=function(n,t){return ni0(this,n,Im(t,56))},AY(nk5,"EObjectContainmentWithInverseEList/Resolving",353),nrr(298,353,njl,O6),nTm.ci=function(){this.a.tb=null},AY(nyo,"EPackageImpl/2",298),nrr(1228,1,{},ub),AY(nyo,"EPackageImpl/3",1228),nrr(718,43,nlE,dI),nTm._b=function(n){return jw(n)?Nn(this,n):!!Nj(this.f,n)},AY(nyo,"EPackageRegistryImpl",718),nrr(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},dP),nTm.Qg=function(n){return Z8(this,n)},nTm._g=function(n,t,e){var i;switch(n){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),this.Ab;case 1:return this.zb;case 2:return TX(),(256&this.Bb)!=0;case 3:return TX(),(512&this.Bb)!=0;case 4:return Va(this.s);case 5:return Va(this.t);case 6:return TX(),(i=this.t)>1||-1==i;case 7:return TX(),this.s>=1;case 8:if(t)return Z9(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?Im(this.Cb,59):null}return _Q(this,n-AW((nhl(),nQW)),Hm(Im(zF(this,16),26)||nQW,n),t,e)},nTm.hh=function(n,t,e){var i;switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),QN(this.Ab,n,e);case 10:return this.Cb&&(e=(i=this.Db>>16)>=0?Z8(this,e):this.Cb.ih(this,-1-i,null,e)),nuc(this,n,10,e)}return Im(Hm(Im(zF(this,16),26)||(nhl(),nQW),t),66).Nj().Qj(this,Jp(this),t-AW((nhl(),nQW)),n,e)},nTm.jh=function(n,t,e){switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),Ye(this.Ab,n,e);case 9:return AQ(this,e);case 10:return nuc(this,null,10,e)}return Im(Hm(Im(zF(this,16),26)||(nhl(),nQW),t),66).Nj().Rj(this,Jp(this),t-AW((nhl(),nQW)),n,e)},nTm.lh=function(n){var t;switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return(256&this.Bb)==0;case 3:return(512&this.Bb)==0;case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(t=this.t)>1||-1==t;case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==$N(this.q).i;case 9:return!!this.q&&!(this.r&&!this.q.e&&0==$N(this.q).i);case 10:return!!(this.Db>>16==10?Im(this.Cb,59):null)}return RN(this,n-AW((nhl(),nQW)),Hm(Im(zF(this,16),26)||nQW,n))},nTm.zh=function(){return nhl(),nQW},AY(nyo,"EParameterImpl",509),nrr(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},Sc),nTm._g=function(n,t,e){var i,r;switch(n){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),this.Ab;case 1:return this.zb;case 2:return TX(),(256&this.Bb)!=0;case 3:return TX(),(512&this.Bb)!=0;case 4:return Va(this.s);case 5:return Va(this.t);case 6:return TX(),(r=this.t)>1||-1==r;case 7:return TX(),this.s>=1;case 8:if(t)return Z9(this);return this.r;case 9:return this.q;case 10:return TX(),(this.Bb&nyp)!=0;case 11:return TX(),(this.Bb&njn)!=0;case 12:return TX(),(this.Bb&nlu)!=0;case 13:return this.j;case 14:return ncn(this);case 15:return TX(),(this.Bb&nk7)!=0;case 16:return TX(),(this.Bb&nhY)!=0;case 17:return xd(this);case 18:return TX(),(this.Bb&nya)!=0;case 19:return TX(),!!(i=YI(this))&&(i.Bb&nya)!=0;case 20:return TX(),(this.Bb&nls)!=0;case 21:if(t)return YI(this);return this.b;case 22:if(t)return U7(this);return KZ(this);case 23:return this.a||(this.a=new Tk(nQs,this,23)),this.a}return _Q(this,n-AW((nhl(),nQV)),Hm(Im(zF(this,16),26)||nQV,n),t,e)},nTm.lh=function(n){var t,e;switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return(256&this.Bb)==0;case 3:return(512&this.Bb)==0;case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(e=this.t)>1||-1==e;case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==$N(this.q).i;case 9:return!!this.q&&!(this.r&&!this.q.e&&0==$N(this.q).i);case 10:return(this.Bb&nyp)==0;case 11:return(this.Bb&njn)!=0;case 12:return(this.Bb&nlu)!=0;case 13:return null!=this.j;case 14:return null!=ncn(this);case 15:return(this.Bb&nk7)!=0;case 16:return(this.Bb&nhY)!=0;case 17:return!!xd(this);case 18:return(this.Bb&nya)!=0;case 19:return!!(t=YI(this))&&(t.Bb&nya)!=0;case 20:return(this.Bb&nls)==0;case 21:return!!this.b;case 22:return!!KZ(this);case 23:return!!this.a&&0!=this.a.i}return RN(this,n-AW((nhl(),nQV)),Hm(Im(zF(this,16),26)||nQV,n))},nTm.sh=function(n,t){var e;switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab),this.Ab||(this.Ab=new An(nQa,this,0,3)),AJ(this.Ab,Im(t,14));return;case 1:xU(this,Sh(t));return;case 2:Vn(this,gm(So(t)));return;case 3:Vi(this,gm(So(t)));return;case 4:qg(this,Im(t,19).a);return;case 5:qp(this,Im(t,19).a);return;case 8:Ww(this,Im(t,138));return;case 9:(e=ntl(this,Im(t,87),null))&&e.Fi();return;case 10:Vk(this,gm(So(t)));return;case 11:VT(this,gm(So(t)));return;case 12:Vj(this,gm(So(t)));return;case 13:jo(this,Sh(t));return;case 15:VE(this,gm(So(t)));return;case 16:VS(this,gm(So(t)));return;case 18:VI(this,gm(So(t))),Ti(this.Cb,88)&&ne2(KJ(Im(this.Cb,88)),2);return;case 20:VC(this,gm(So(t)));return;case 21:Gw(this,Im(t,18));return;case 23:this.a||(this.a=new Tk(nQs,this,23)),noK(this.a),this.a||(this.a=new Tk(nQs,this,23)),AJ(this.a,Im(t,14));return}V5(this,n-AW((nhl(),nQV)),Hm(Im(zF(this,16),26)||nQV,n),t)},nTm.zh=function(){return nhl(),nQV},nTm.Bh=function(n){var t;switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab);return;case 1:Ti(this.Cb,88)&&ne2(KJ(Im(this.Cb,88)),4),GF(this,null);return;case 2:Vn(this,!0);return;case 3:Vi(this,!0);return;case 4:qg(this,0);return;case 5:qp(this,1);return;case 8:Ww(this,null);return;case 9:(t=ntl(this,null,null))&&t.Fi();return;case 10:Vk(this,!0);return;case 11:VT(this,!1);return;case 12:Vj(this,!1);return;case 13:this.i=null,Gg(this,null);return;case 15:VE(this,!1);return;case 16:VS(this,!1);return;case 18:VI(this,!1),Ti(this.Cb,88)&&ne2(KJ(Im(this.Cb,88)),2);return;case 20:VC(this,!0);return;case 21:Gw(this,null);return;case 23:this.a||(this.a=new Tk(nQs,this,23)),noK(this.a);return}W5(this,n-AW((nhl(),nQV)),Hm(Im(zF(this,16),26)||nQV,n))},nTm.Gh=function(){U7(this),Lc(BC((neS(),nJk),this)),Z9(this),this.Bb|=1},nTm.Lj=function(){return YI(this)},nTm.qk=function(){var n;return!!(n=YI(this))&&(n.Bb&nya)!=0},nTm.rk=function(){return(this.Bb&nya)!=0},nTm.sk=function(){return(this.Bb&nls)!=0},nTm.nk=function(n,t){return this.c=null,WX(this,n,t)},nTm.Ib=function(){var n;return(64&this.Db)!=0?nay(this):(n=new TW(nay(this)),n.a+=" (containment: ",p$(n,(this.Bb&nya)!=0),n.a+=", resolveProxies: ",p$(n,(this.Bb&nls)!=0),n.a+=")",n.a)},AY(nyo,"EReferenceImpl",99),nrr(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},uw),nTm.Fb=function(n){return this===n},nTm.cd=function(){return this.b},nTm.dd=function(){return this.c},nTm.Hb=function(){return T9(this)},nTm.Uh=function(n){var t;Gt(this,null==(t=Sh(n))?null:($x(t),t))},nTm.ed=function(n){var t,e;return t=Sh(n),e=this.c,Ge(this,t),e},nTm._g=function(n,t,e){switch(n){case 0:return this.b;case 1:return this.c}return _Q(this,n-AW((nhl(),nQQ)),Hm(Im(zF(this,16),26)||nQQ,n),t,e)},nTm.lh=function(n){switch(n){case 0:return null!=this.b;case 1:return null!=this.c}return RN(this,n-AW((nhl(),nQQ)),Hm(Im(zF(this,16),26)||nQQ,n))},nTm.sh=function(n,t){var e;switch(n){case 0:Gt(this,null==(e=Sh(t))?null:($x(e),e));return;case 1:Ge(this,Sh(t));return}V5(this,n-AW((nhl(),nQQ)),Hm(Im(zF(this,16),26)||nQQ,n),t)},nTm.zh=function(){return nhl(),nQQ},nTm.Bh=function(n){switch(n){case 0:Gt(this,null);return;case 1:Ge(this,null);return}W5(this,n-AW((nhl(),nQQ)),Hm(Im(zF(this,16),26)||nQQ,n))},nTm.Sh=function(){var n;return -1==this.a&&(n=this.b,this.a=null==n?0:Yj(n)),this.a},nTm.Th=function(n){this.a=n},nTm.Ib=function(){var n;return(64&this.Db)!=0?nrN(this):(n=new TW(nrN(this)),n.a+=" (key: ",jT(n,this.b),n.a+=", value: ",jT(n,this.c),n.a+=")",n.a)},nTm.a=-1,nTm.b=null,nTm.c=null;var nQE=AY(nyo,"EStringToStringMapEntryImpl",548),nQT=Cw(nk5,"FeatureMap/Entry/Internal");nrr(565,1,njy),nTm.Ok=function(n){return this.Pk(Im(n,49))},nTm.Pk=function(n){return this.Ok(n)},nTm.Fb=function(n){var t,e;return this===n||!!Ti(n,72)&&(t=Im(n,72)).ak()==this.c&&(null==(e=this.dd())?null==t.dd():WY(e,t.dd()))},nTm.ak=function(){return this.c},nTm.Hb=function(){var n;return n=this.dd(),Xg(this.c)^(null==n?0:Xg(n))},nTm.Ib=function(){var n,t;return t=HU((n=this.c).Hj()).Ph(),n.ne(),(null!=t&&0!=t.length?t+":"+n.ne():n.ne())+"="+this.dd()},AY(nyo,"EStructuralFeatureImpl/BasicFeatureMapEntry",565),nrr(776,565,njy,S$),nTm.Pk=function(n){return new S$(this.c,n)},nTm.dd=function(){return this.a},nTm.Qk=function(n,t,e){var i,r,c;return i=this.a,r=e,i&&(c=Qj(n.Tg(),this.c),r=i.gh(n,-1-(-1==c?t:c),null,r)),r},nTm.Rk=function(n,t,e){var i,r,c;return i=this.a,r=e,i&&(c=Qj(n.Tg(),this.c),r=i.ih(n,-1-(-1==c?t:c),null,r)),r},AY(nyo,"EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry",776),nrr(1314,1,{},jn),nTm.Pj=function(n,t,e,i,r){return Im(__(n,this.b),215).nl(this.a).Wj(i)},nTm.Qj=function(n,t,e,i,r){return Im(__(n,this.b),215).el(this.a,i,r)},nTm.Rj=function(n,t,e,i,r){return Im(__(n,this.b),215).fl(this.a,i,r)},nTm.Sj=function(n,t,e){return Im(__(n,this.b),215).nl(this.a).fj()},nTm.Tj=function(n,t,e,i){Im(__(n,this.b),215).nl(this.a).Wb(i)},nTm.Uj=function(n,t,e){return Im(__(n,this.b),215).nl(this.a)},nTm.Vj=function(n,t,e){Im(__(n,this.b),215).nl(this.a).Xj()},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator",1314),nrr(89,1,{},Iu,Lx,NP,R5),nTm.Pj=function(n,t,e,i,r){var c;if(null==(c=t.Ch(e))&&t.Dh(e,c=nhr(this,n)),!r)switch(this.e){case 50:case 41:return Im(c,589).sj();case 40:return Im(c,215).kl()}return c},nTm.Qj=function(n,t,e,i,r){var c;return null==(c=t.Ch(e))&&t.Dh(e,c=nhr(this,n)),Im(c,69).lk(i,r)},nTm.Rj=function(n,t,e,i,r){var c;return null!=(c=t.Ch(e))&&(r=Im(c,69).mk(i,r)),r},nTm.Sj=function(n,t,e){var i;return null!=(i=t.Ch(e))&&Im(i,76).fj()},nTm.Tj=function(n,t,e,i){var r;(r=Im(t.Ch(e),76))||t.Dh(e,r=nhr(this,n)),r.Wb(i)},nTm.Uj=function(n,t,e){var i;return(null==(i=t.Ch(e))&&t.Dh(e,i=nhr(this,n)),Ti(i,76))?Im(i,76):new bZ(Im(t.Ch(e),15))},nTm.Vj=function(n,t,e){var i;(i=Im(t.Ch(e),76))||t.Dh(e,i=nhr(this,n)),i.Xj()},nTm.b=0,nTm.e=0,AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateMany",89),nrr(504,1,{}),nTm.Qj=function(n,t,e,i,r){throw(new wP).e},nTm.Rj=function(n,t,e,i,r){throw(new wP).e},nTm.Uj=function(n,t,e){return new LD(this,n,t,e)},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingle",504),nrr(1331,1,nk6,LD),nTm.Wj=function(n){return this.a.Pj(this.c,this.d,this.b,n,!0)},nTm.fj=function(){return this.a.Sj(this.c,this.d,this.b)},nTm.Wb=function(n){this.a.Tj(this.c,this.d,this.b,n)},nTm.Xj=function(){this.a.Vj(this.c,this.d,this.b)},nTm.b=0,AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingle/1",1331),nrr(769,504,{},N_),nTm.Pj=function(n,t,e,i,r){return naz(n,n.eh(),n.Vg())==this.b?this.sk()&&i?ni9(n):n.eh():null},nTm.Qj=function(n,t,e,i,r){var c,a;return n.eh()&&(r=(c=n.Vg())>=0?n.Qg(r):n.eh().ih(n,-1-c,null,r)),a=Qj(n.Tg(),this.e),n.Sg(i,a,r)},nTm.Rj=function(n,t,e,i,r){var c;return c=Qj(n.Tg(),this.e),n.Sg(null,c,r)},nTm.Sj=function(n,t,e){var i;return i=Qj(n.Tg(),this.e),!!n.eh()&&n.Vg()==i},nTm.Tj=function(n,t,e,i){var r,c,a,u,o;if(null!=i&&!nuN(this.a,i))throw new gw(njk+(Ti(i,56)?nn_(Im(i,56).Tg()):HE(Xp(i)))+njj+this.a+"'").e;if(r=n.eh(),a=Qj(n.Tg(),this.e),jf(i)!==jf(r)||n.Vg()!=a&&null!=i){if(Z2(n,Im(i,56)))throw new gd(nyh+n.Ib()).e;o=null,r&&(o=(c=n.Vg())>=0?n.Qg(o):n.eh().ih(n,-1-c,null,o)),(u=Im(i,49))&&(o=u.gh(n,Qj(u.Tg(),this.b),null,o)),(o=n.Sg(u,a,o))&&o.Fi()}else n.Lg()&&n.Mg()&&zD(n,new O9(n,1,a,i,i))},nTm.Vj=function(n,t,e){var i,r,c;n.eh()?(c=(i=n.Vg())>=0?n.Qg(null):n.eh().ih(n,-1-i,null,null),r=Qj(n.Tg(),this.e),(c=n.Sg(null,r,c))&&c.Fi()):n.Lg()&&n.Mg()&&zD(n,new O7(n,1,this.e,null,null))},nTm.sk=function(){return!1},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainer",769),nrr(1315,769,{},Io),nTm.sk=function(){return!0},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving",1315),nrr(563,504,{}),nTm.Pj=function(n,t,e,i,r){var c;return null==(c=t.Ch(e))?this.b:jf(c)===jf(nQ9)?null:c},nTm.Sj=function(n,t,e){var i;return null!=(i=t.Ch(e))&&(jf(i)===jf(nQ9)||!WY(i,this.b))},nTm.Tj=function(n,t,e,i){var r,c;n.Lg()&&n.Mg()?(r=null==(c=t.Ch(e))?this.b:jf(c)===jf(nQ9)?null:c,null==i?null!=this.c?(t.Dh(e,null),i=this.b):null!=this.b?t.Dh(e,nQ9):t.Dh(e,null):(this.Sk(i),t.Dh(e,i)),zD(n,this.d.Tk(n,1,this.e,r,i))):null==i?null!=this.c?t.Dh(e,null):null!=this.b?t.Dh(e,nQ9):t.Dh(e,null):(this.Sk(i),t.Dh(e,i))},nTm.Vj=function(n,t,e){var i,r;n.Lg()&&n.Mg()?(i=null==(r=t.Ch(e))?this.b:jf(r)===jf(nQ9)?null:r,t.Eh(e),zD(n,this.d.Tk(n,1,this.e,i,this.b))):t.Eh(e)},nTm.Sk=function(n){throw(new wE).e},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleData",563),nrr(1316,1,{},ud),nTm.Tk=function(n,t,e,i,r){return new O7(n,t,e,i,r)},nTm.Uk=function(n,t,e,i,r,c){return new L0(n,t,e,i,r,c)},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator",1316),nrr(1332,1316,{},ug),nTm.Tk=function(n,t,e,i,r){return new Fe(n,t,e,gm(So(i)),gm(So(r)))},nTm.Uk=function(n,t,e,i,r,c){return new DS(n,t,e,gm(So(i)),gm(So(r)),c)},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1",1332),nrr(1333,1316,{},up),nTm.Tk=function(n,t,e,i,r){return new qT(n,t,e,Im(i,217).a,Im(r,217).a)},nTm.Uk=function(n,t,e,i,r,c){return new Dm(n,t,e,Im(i,217).a,Im(r,217).a,c)},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2",1333),nrr(1334,1316,{},uv),nTm.Tk=function(n,t,e,i,r){return new qM(n,t,e,Im(i,172).a,Im(r,172).a)},nTm.Uk=function(n,t,e,i,r,c){return new Dy(n,t,e,Im(i,172).a,Im(r,172).a,c)},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3",1334),nrr(1335,1316,{},um),nTm.Tk=function(n,t,e,i,r){return new Fn(n,t,e,gy(Ss(i)),gy(Ss(r)))},nTm.Uk=function(n,t,e,i,r,c){return new Dk(n,t,e,gy(Ss(i)),gy(Ss(r)),c)},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4",1335),nrr(1336,1316,{},uy),nTm.Tk=function(n,t,e,i,r){return new qI(n,t,e,Im(i,155).a,Im(r,155).a)},nTm.Uk=function(n,t,e,i,r,c){return new Dj(n,t,e,Im(i,155).a,Im(r,155).a,c)},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1336),nrr(1337,1316,{},uk),nTm.Tk=function(n,t,e,i,r){return new Ft(n,t,e,Im(i,19).a,Im(r,19).a)},nTm.Uk=function(n,t,e,i,r,c){return new DE(n,t,e,Im(i,19).a,Im(r,19).a,c)},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6",1337),nrr(1338,1316,{},uj),nTm.Tk=function(n,t,e,i,r){return new qS(n,t,e,Im(i,162).a,Im(r,162).a)},nTm.Uk=function(n,t,e,i,r,c){return new DT(n,t,e,Im(i,162).a,Im(r,162).a,c)},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7",1338),nrr(1339,1316,{},uE),nTm.Tk=function(n,t,e,i,r){return new qP(n,t,e,Im(i,184).a,Im(r,184).a)},nTm.Uk=function(n,t,e,i,r,c){return new DM(n,t,e,Im(i,184).a,Im(r,184).a,c)},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8",1339),nrr(1317,563,{},LR),nTm.Sk=function(n){if(!this.a.wj(n))throw new gw(njk+Xp(n)+njj+this.a+"'").e},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic",1317),nrr(1318,563,{},Ov),nTm.Sk=function(n){},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic",1318),nrr(770,563,{}),nTm.Sj=function(n,t,e){return null!=t.Ch(e)},nTm.Tj=function(n,t,e,i){var r,c;n.Lg()&&n.Mg()?(r=!0,null==(c=t.Ch(e))?(r=!1,c=this.b):jf(c)===jf(nQ9)&&(c=null),null==i?null!=this.c?(t.Dh(e,null),i=this.b):t.Dh(e,nQ9):(this.Sk(i),t.Dh(e,i)),zD(n,this.d.Uk(n,1,this.e,c,i,!r))):null==i?null!=this.c?t.Dh(e,null):t.Dh(e,nQ9):(this.Sk(i),t.Dh(e,i))},nTm.Vj=function(n,t,e){var i,r;n.Lg()&&n.Mg()?(i=!0,null==(r=t.Ch(e))?(i=!1,r=this.b):jf(r)===jf(nQ9)&&(r=null),t.Eh(e),zD(n,this.d.Uk(n,2,this.e,r,this.b,i))):t.Eh(e)},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable",770),nrr(1319,770,{},LK),nTm.Sk=function(n){if(!this.a.wj(n))throw new gw(njk+Xp(n)+njj+this.a+"'").e},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic",1319),nrr(1320,770,{},Om),nTm.Sk=function(n){},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic",1320),nrr(398,504,{},Cq),nTm.Pj=function(n,t,e,i,r){var c,a,u,o,s;if(s=t.Ch(e),this.Kj()&&jf(s)===jf(nQ9))return null;if(!this.sk()||!i||null==s)return s;if((u=Im(s,49)).kh()&&(o=WO(n,u),u!=o)){if(!nuN(this.a,o))throw new gw(njk+Xp(o)+njj+this.a+"'").e;t.Dh(e,s=o),this.rk()&&(c=Im(o,49),a=u.ih(n,this.b?Qj(u.Tg(),this.b):-1-Qj(n.Tg(),this.e),null,null),c.eh()||(a=c.gh(n,this.b?Qj(c.Tg(),this.b):-1-Qj(n.Tg(),this.e),null,a)),a&&a.Fi()),n.Lg()&&n.Mg()&&zD(n,new O7(n,9,this.e,u,o))}return s},nTm.Qj=function(n,t,e,i,r){var c,a;return jf(a=t.Ch(e))===jf(nQ9)&&(a=null),t.Dh(e,i),this.bj()?jf(a)!==jf(i)&&null!=a&&(r=(c=Im(a,49)).ih(n,Qj(c.Tg(),this.b),null,r)):this.rk()&&null!=a&&(r=Im(a,49).ih(n,-1-Qj(n.Tg(),this.e),null,r)),n.Lg()&&n.Mg()&&(r||(r=new pc(4)),r.Ei(new O7(n,1,this.e,a,i))),r},nTm.Rj=function(n,t,e,i,r){var c;return jf(c=t.Ch(e))===jf(nQ9)&&(c=null),t.Eh(e),n.Lg()&&n.Mg()&&(r||(r=new pc(4)),this.Kj()?r.Ei(new O7(n,2,this.e,c,null)):r.Ei(new O7(n,1,this.e,c,null))),r},nTm.Sj=function(n,t,e){return null!=t.Ch(e)},nTm.Tj=function(n,t,e,i){var r,c,a,u,o;if(null!=i&&!nuN(this.a,i))throw new gw(njk+(Ti(i,56)?nn_(Im(i,56).Tg()):HE(Xp(i)))+njj+this.a+"'").e;u=null!=(o=t.Ch(e)),this.Kj()&&jf(o)===jf(nQ9)&&(o=null),a=null,this.bj()?jf(o)!==jf(i)&&(null!=o&&(a=(r=Im(o,49)).ih(n,Qj(r.Tg(),this.b),null,a)),null!=i&&(a=(r=Im(i,49)).gh(n,Qj(r.Tg(),this.b),null,a))):this.rk()&&jf(o)!==jf(i)&&(null!=o&&(a=Im(o,49).ih(n,-1-Qj(n.Tg(),this.e),null,a)),null!=i&&(a=Im(i,49).gh(n,-1-Qj(n.Tg(),this.e),null,a))),null==i&&this.Kj()?t.Dh(e,nQ9):t.Dh(e,i),n.Lg()&&n.Mg()?(c=new L0(n,1,this.e,o,i,this.Kj()&&!u),a?(a.Ei(c),a.Fi()):zD(n,c)):a&&a.Fi()},nTm.Vj=function(n,t,e){var i,r,c,a,u;a=null!=(u=t.Ch(e)),this.Kj()&&jf(u)===jf(nQ9)&&(u=null),c=null,null!=u&&(this.bj()?c=(i=Im(u,49)).ih(n,Qj(i.Tg(),this.b),null,c):this.rk()&&(c=Im(u,49).ih(n,-1-Qj(n.Tg(),this.e),null,c))),t.Eh(e),n.Lg()&&n.Mg()?(r=new L0(n,this.Kj()?2:1,this.e,u,null,a),c?(c.Ei(r),c.Fi()):zD(n,r)):c&&c.Fi()},nTm.bj=function(){return!1},nTm.rk=function(){return!1},nTm.sk=function(){return!1},nTm.Kj=function(){return!1},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObject",398),nrr(564,398,{},M3),nTm.rk=function(){return!0},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment",564),nrr(1323,564,{},M4),nTm.sk=function(){return!0},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving",1323),nrr(772,564,{},M5),nTm.Kj=function(){return!0},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable",772),nrr(1325,772,{},M6),nTm.sk=function(){return!0},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving",1325),nrr(640,564,{},Is),nTm.bj=function(){return!0},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse",640),nrr(1324,640,{},Il),nTm.sk=function(){return!0},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving",1324),nrr(773,640,{},Ib),nTm.Kj=function(){return!0},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable",773),nrr(1326,773,{},Iw),nTm.sk=function(){return!0},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving",1326),nrr(641,398,{},M8),nTm.sk=function(){return!0},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving",641),nrr(1327,641,{},M9),nTm.Kj=function(){return!0},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable",1327),nrr(774,641,{},Ih),nTm.bj=function(){return!0},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse",774),nrr(1328,774,{},Id),nTm.Kj=function(){return!0},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable",1328),nrr(1321,398,{},M7),nTm.Kj=function(){return!0},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable",1321),nrr(771,398,{},If),nTm.bj=function(){return!0},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse",771),nrr(1322,771,{},Ig),nTm.Kj=function(){return!0},AY(nyo,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable",1322),nrr(775,565,njy,$E),nTm.Pk=function(n){return new $E(this.a,this.c,n)},nTm.dd=function(){return this.b},nTm.Qk=function(n,t,e){var i,r;return i=this.b,r=e,i&&(r=i.gh(n,Qj(i.Tg(),this.c.Lj()),null,r)),r},nTm.Rk=function(n,t,e){var i,r;return i=this.b,r=e,i&&(r=i.ih(n,Qj(i.Tg(),this.c.Lj()),null,r)),r},AY(nyo,"EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry",775),nrr(1329,1,nk6,bZ),nTm.Wj=function(n){return this.a},nTm.fj=function(){return Ti(this.a,95)?Im(this.a,95).fj():!this.a.dc()},nTm.Wb=function(n){this.a.$b(),this.a.Gc(Im(n,15))},nTm.Xj=function(){Ti(this.a,95)?Im(this.a,95).Xj():this.a.$b()},AY(nyo,"EStructuralFeatureImpl/SettingMany",1329),nrr(1330,565,njy,R8),nTm.Ok=function(n){return new SL((noQ(),nJ5),this.b.Ih(this.a,n))},nTm.dd=function(){return null},nTm.Qk=function(n,t,e){return e},nTm.Rk=function(n,t,e){return e},AY(nyo,"EStructuralFeatureImpl/SimpleContentFeatureMapEntry",1330),nrr(642,565,njy,SL),nTm.Ok=function(n){return new SL(this.c,n)},nTm.dd=function(){return this.a},nTm.Qk=function(n,t,e){return e},nTm.Rk=function(n,t,e){return e},AY(nyo,"EStructuralFeatureImpl/SimpleFeatureMapEntry",642),nrr(391,497,ny5,uT),nTm.ri=function(n){return _f(nQf,nhA,26,n,0,1)},nTm.ni=function(){return!1},AY(nyo,"ESuperAdapter/1",391),nrr(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},uM),nTm._g=function(n,t,e){switch(n){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.a||(this.a=new CG(this,nQd,this)),this.a}return _Q(this,n-AW((nhl(),nQZ)),Hm(Im(zF(this,16),26)||nQZ,n),t,e)},nTm.jh=function(n,t,e){switch(t){case 0:return this.Ab||(this.Ab=new An(nQa,this,0,3)),Ye(this.Ab,n,e);case 2:return this.a||(this.a=new CG(this,nQd,this)),Ye(this.a,n,e)}return Im(Hm(Im(zF(this,16),26)||(nhl(),nQZ),t),66).Nj().Rj(this,Jp(this),t-AW((nhl(),nQZ)),n,e)},nTm.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return!!this.a&&0!=this.a.i}return RN(this,n-AW((nhl(),nQZ)),Hm(Im(zF(this,16),26)||nQZ,n))},nTm.sh=function(n,t){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab),this.Ab||(this.Ab=new An(nQa,this,0,3)),AJ(this.Ab,Im(t,14));return;case 1:GF(this,Sh(t));return;case 2:this.a||(this.a=new CG(this,nQd,this)),noK(this.a),this.a||(this.a=new CG(this,nQd,this)),AJ(this.a,Im(t,14));return}V5(this,n-AW((nhl(),nQZ)),Hm(Im(zF(this,16),26)||nQZ,n),t)},nTm.zh=function(){return nhl(),nQZ},nTm.Bh=function(n){switch(n){case 0:this.Ab||(this.Ab=new An(nQa,this,0,3)),noK(this.Ab);return;case 1:GF(this,null);return;case 2:this.a||(this.a=new CG(this,nQd,this)),noK(this.a);return}W5(this,n-AW((nhl(),nQZ)),Hm(Im(zF(this,16),26)||nQZ,n))},AY(nyo,"ETypeParameterImpl",444),nrr(445,85,njl,CG),nTm.cj=function(n,t){return function(n,t,e){var i,r;for(e=J8(t,n.e,-1-n.c,e),r=new b0(new XE(new hL($_(n.a).a).a));r.a.b;)e=nsg(i=Im(HQ(r.a).cd(),87),nr0(i,n.a),e);return e}(this,Im(n,87),t)},nTm.dj=function(n,t){return function(n,t,e){var i,r;for(e=NA(t,n.e,-1-n.c,e),r=new b0(new XE(new hL($_(n.a).a).a));r.a.b;)e=nsg(i=Im(HQ(r.a).cd(),87),nr0(i,n.a),e);return e}(this,Im(n,87),t)},AY(nyo,"ETypeParameterImpl/1",445),nrr(634,43,nlE,dC),nTm.ec=function(){return new b1(this)},AY(nyo,"ETypeParameterImpl/2",634),nrr(556,1965,nhq,b1),nTm.Fc=function(n){return Pn(this,Im(n,87))},nTm.Gc=function(n){var t,e,i;for(i=!1,e=n.Kc();e.Ob();)t=Im(e.Pb(),87),null==$J(this.a,t,"")&&(i=!0);return i},nTm.$b=function(){AT(this.a)},nTm.Hc=function(n){return Au(this.a,n)},nTm.Kc=function(){return new b0(new XE(new hL(this.a).a))},nTm.Mc=function(n){return FD(this,n)},nTm.gc=function(){return vO(this.a)},AY(nyo,"ETypeParameterImpl/2/1",556),nrr(557,1,nhF,b0),nTm.Nb=function(n){Ao(this,n)},nTm.Pb=function(){return Im(HQ(this.a).cd(),87)},nTm.Ob=function(){return this.a.b},nTm.Qb=function(){_T(this.a)},AY(nyo,"ETypeParameterImpl/2/1/1",557),nrr(1276,43,nlE,dO),nTm._b=function(n){return jw(n)?Nn(this,n):!!Nj(this.f,n)},nTm.xc=function(n){var t;return Ti(t=jw(n)?Nz(this,n):jh(Nj(this.f,n)),837)?(t=Im(t,837)._j(),$J(this,Im(n,235),t),t):null!=t?t:null==n?(mg(),nJM):null},AY(nyo,"EValidatorRegistryImpl",1276),nrr(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},uS),nTm.Ih=function(n,t){var e,i,r;switch(n.yj()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return null==t?null:V7(t);case 25:return null==t?null:function(n,t){var e,i,r,c,a;if(null==n)return null;for(i=0,a=_f(nY$,nfS,25,2*t,15,1),r=0;i<t;++i)e=n[i]>>4&15,c=15&n[i],a[r++]=nVD[e],a[r++]=nVD[c];return Je(a,0,a.length)}(e=Im(t,190),e.length);case 27:case 28:return Ti(t,172)?""+Im(t,172).a:null==t?null:V7(t);case 29:return null==t?null:(i=nVx[0],r=Im(t,199),nsw(i.a,r,null));case 41:return null==t?"":pb(Im(t,290));case 42:return V7(t);case 50:return Sh(t);default:throw new gd(nyf+n.ne()+nyl).e}},nTm.Jh=function(n){var t;switch(-1==n.G&&(n.G=(t=HU(n))?Yl(t.Mh(),n):-1),n.G){case 0:return new dT;case 1:return new uc;case 2:return new sZ;case 4:return new wL;case 5:return new dM;case 6:return new w$;case 7:return new sJ;case 10:return new ui;case 11:return new dS;case 12:return new Nb;case 13:return new dP;case 14:return new Sc;case 17:return new uw;case 18:return new wr;case 19:return new uM;default:throw new gd(nyd+n.zb+nyl).e}},nTm.Kh=function(n,t){switch(n.yj()){case 20:return null==t?null:new pP(t);case 21:return null==t?null:new Ep(t);case 23:case 22:return null==t?null:function(n){if(Jm(nml,n))return TX(),nTQ;if(Jm(nmb,n))return TX(),nTV;throw new gd("Expecting true or false").e}(t);case 26:case 24:return null==t?null:B4(nue(t,-128,127)<<24>>24);case 25:return function(n){var t,e,i,r,c,a,u;if(null==n)return null;for(a=_f(nYD,nyw,25,r=((u=n.length)+1)/2|0,15,1),u%2!=0&&(a[--r]=naa((x5(u-1,n.length),n.charCodeAt(u-1)))),e=0,i=0;e<r;++e)t=naa($9(n,i++)),c=naa($9(n,i++)),a[e]=(t<<4|c)<<24>>24;return a}(t);case 27:return function(n){var t;if(null==n)return null;t=0;try{t=nue(n,nfp,nhM)&nfI}catch(e){if(Ti(e=Uu(e),127))t=BR(n)[0];else throw e.e}return Ua(t)}(t);case 28:return function(n){var t;if(null==n)return null;t=0;try{t=nue(n,nfp,nhM)&nfI}catch(e){if(Ti(e=Uu(e),127))t=BR(n)[0];else throw e.e}return Ua(t)}(t);case 29:return function(n){var t,e,i;if(null==n)return null;for(e=0,t=null;e<nVx.length;++e)try{return i=nVx[e],ZG(i.a,n)}catch(n){if(Ti(n=Uu(n),32))t=n;else throw n.e}throw new Bj(t).e}(t);case 32:case 31:return null==t?null:nt1(t);case 38:case 37:return null==t?null:new wF(t);case 40:case 39:return null==t?null:Va(nue(t,nfp,nhM));case 41:case 42:return null;case 44:case 43:return null==t?null:Jy(nsC(t));case 49:case 48:return null==t?null:Vu(nue(t,-32768,32767)<<16>>16);case 50:return t;default:throw new gd(nyf+n.ne()+nyl).e}},AY(nyo,"EcoreFactoryImpl",1313),nrr(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},$V),nTm.gb=!1,nTm.hb=!1;var nQM,nQS,nQP,nQI,nQC,nQO,nQA,nQ$,nQL,nQN,nQx,nQD,nQR,nQK,nQF,nQ_,nQB,nQH,nQq,nQG,nQz,nQU,nQX,nQW,nQV,nQQ,nQJ,nQY,nQZ,nQ1,nQ0,nQ2,nQ3,nQ4,nQ5,nQ6,nQ8,nQ9,nQ7,nJn,nJt,nJe,nJi,nJr,nJc,nJa,nJu,nJo,nJs=!1;AY(nyo,"EcorePackageImpl",547),nrr(1184,1,{837:1},uP),nTm._j=function(){return TU(),nJS},AY(nyo,"EcorePackageImpl/1",1184),nrr(1193,1,njD,uI),nTm.wj=function(n){return Ti(n,147)},nTm.xj=function(n){return _f(nCN,nhA,147,n,0,1)},AY(nyo,"EcorePackageImpl/10",1193),nrr(1194,1,njD,uC),nTm.wj=function(n){return Ti(n,191)},nTm.xj=function(n){return _f(nCD,nhA,191,n,0,1)},AY(nyo,"EcorePackageImpl/11",1194),nrr(1195,1,njD,uO),nTm.wj=function(n){return Ti(n,56)},nTm.xj=function(n){return _f(nCS,nhA,56,n,0,1)},AY(nyo,"EcorePackageImpl/12",1195),nrr(1196,1,njD,uA),nTm.wj=function(n){return Ti(n,399)},nTm.xj=function(n){return _f(nQg,njh,59,n,0,1)},AY(nyo,"EcorePackageImpl/13",1196),nrr(1197,1,njD,u$),nTm.wj=function(n){return Ti(n,235)},nTm.xj=function(n){return _f(nCR,nhA,235,n,0,1)},AY(nyo,"EcorePackageImpl/14",1197),nrr(1198,1,njD,uL),nTm.wj=function(n){return Ti(n,509)},nTm.xj=function(n){return _f(nQp,nhA,2017,n,0,1)},AY(nyo,"EcorePackageImpl/15",1198),nrr(1199,1,njD,uN),nTm.wj=function(n){return Ti(n,99)},nTm.xj=function(n){return _f(nQv,njs,18,n,0,1)},AY(nyo,"EcorePackageImpl/16",1199),nrr(1200,1,njD,ux),nTm.wj=function(n){return Ti(n,170)},nTm.xj=function(n){return _f(nQo,njs,170,n,0,1)},AY(nyo,"EcorePackageImpl/17",1200),nrr(1201,1,njD,uD),nTm.wj=function(n){return Ti(n,472)},nTm.xj=function(n){return _f(nQu,nhA,472,n,0,1)},AY(nyo,"EcorePackageImpl/18",1201),nrr(1202,1,njD,uR),nTm.wj=function(n){return Ti(n,548)},nTm.xj=function(n){return _f(nQE,nkz,548,n,0,1)},AY(nyo,"EcorePackageImpl/19",1202),nrr(1185,1,njD,uK),nTm.wj=function(n){return Ti(n,322)},nTm.xj=function(n){return _f(nQs,njs,34,n,0,1)},AY(nyo,"EcorePackageImpl/2",1185),nrr(1203,1,njD,uF),nTm.wj=function(n){return Ti(n,241)},nTm.xj=function(n){return _f(nQd,njg,87,n,0,1)},AY(nyo,"EcorePackageImpl/20",1203),nrr(1204,1,njD,u_),nTm.wj=function(n){return Ti(n,444)},nTm.xj=function(n){return _f(nQm,nhA,836,n,0,1)},AY(nyo,"EcorePackageImpl/21",1204),nrr(1205,1,njD,uB),nTm.wj=function(n){return jl(n)},nTm.xj=function(n){return _f(nTt,nhJ,476,n,8,1)},AY(nyo,"EcorePackageImpl/22",1205),nrr(1206,1,njD,uH),nTm.wj=function(n){return Ti(n,190)},nTm.xj=function(n){return _f(nYD,nhJ,190,n,0,2)},AY(nyo,"EcorePackageImpl/23",1206),nrr(1207,1,njD,uq),nTm.wj=function(n){return Ti(n,217)},nTm.xj=function(n){return _f(nTe,nhJ,217,n,0,1)},AY(nyo,"EcorePackageImpl/24",1207),nrr(1208,1,njD,uG),nTm.wj=function(n){return Ti(n,172)},nTm.xj=function(n){return _f(nTi,nhJ,172,n,0,1)},AY(nyo,"EcorePackageImpl/25",1208),nrr(1209,1,njD,uz),nTm.wj=function(n){return Ti(n,199)},nTm.xj=function(n){return _f(nTn,nhJ,199,n,0,1)},AY(nyo,"EcorePackageImpl/26",1209),nrr(1210,1,njD,uU),nTm.wj=function(n){return!1},nTm.xj=function(n){return _f(nYB,nhA,2110,n,0,1)},AY(nyo,"EcorePackageImpl/27",1210),nrr(1211,1,njD,uX),nTm.wj=function(n){return jb(n)},nTm.xj=function(n){return _f(nTr,nhJ,333,n,7,1)},AY(nyo,"EcorePackageImpl/28",1211),nrr(1212,1,njD,uW),nTm.wj=function(n){return Ti(n,58)},nTm.xj=function(n){return _f(nCz,nwe,58,n,0,1)},AY(nyo,"EcorePackageImpl/29",1212),nrr(1186,1,njD,uV),nTm.wj=function(n){return Ti(n,510)},nTm.xj=function(n){return _f(nQa,{3:1,4:1,5:1,1934:1},590,n,0,1)},AY(nyo,"EcorePackageImpl/3",1186),nrr(1213,1,njD,uQ),nTm.wj=function(n){return Ti(n,573)},nTm.xj=function(n){return _f(nCY,nhA,1940,n,0,1)},AY(nyo,"EcorePackageImpl/30",1213),nrr(1214,1,njD,uJ),nTm.wj=function(n){return Ti(n,153)},nTm.xj=function(n){return _f(nJf,nwe,153,n,0,1)},AY(nyo,"EcorePackageImpl/31",1214),nrr(1215,1,njD,uY),nTm.wj=function(n){return Ti(n,72)},nTm.xj=function(n){return _f(nQk,njR,72,n,0,1)},AY(nyo,"EcorePackageImpl/32",1215),nrr(1216,1,njD,uZ),nTm.wj=function(n){return Ti(n,155)},nTm.xj=function(n){return _f(nTc,nhJ,155,n,0,1)},AY(nyo,"EcorePackageImpl/33",1216),nrr(1217,1,njD,u1),nTm.wj=function(n){return Ti(n,19)},nTm.xj=function(n){return _f(nTa,nhJ,19,n,0,1)},AY(nyo,"EcorePackageImpl/34",1217),nrr(1218,1,njD,u0),nTm.wj=function(n){return Ti(n,290)},nTm.xj=function(n){return _f(nEW,nhA,290,n,0,1)},AY(nyo,"EcorePackageImpl/35",1218),nrr(1219,1,njD,u2),nTm.wj=function(n){return Ti(n,162)},nTm.xj=function(n){return _f(nTu,nhJ,162,n,0,1)},AY(nyo,"EcorePackageImpl/36",1219),nrr(1220,1,njD,u3),nTm.wj=function(n){return Ti(n,83)},nTm.xj=function(n){return _f(nEQ,nhA,83,n,0,1)},AY(nyo,"EcorePackageImpl/37",1220),nrr(1221,1,njD,u4),nTm.wj=function(n){return Ti(n,591)},nTm.xj=function(n){return _f(nJh,nhA,591,n,0,1)},AY(nyo,"EcorePackageImpl/38",1221),nrr(1222,1,njD,u5),nTm.wj=function(n){return!1},nTm.xj=function(n){return _f(nYH,nhA,2111,n,0,1)},AY(nyo,"EcorePackageImpl/39",1222),nrr(1187,1,njD,u6),nTm.wj=function(n){return Ti(n,88)},nTm.xj=function(n){return _f(nQf,nhA,26,n,0,1)},AY(nyo,"EcorePackageImpl/4",1187),nrr(1223,1,njD,u8),nTm.wj=function(n){return Ti(n,184)},nTm.xj=function(n){return _f(nTo,nhJ,184,n,0,1)},AY(nyo,"EcorePackageImpl/40",1223),nrr(1224,1,njD,u9),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nyo,"EcorePackageImpl/41",1224),nrr(1225,1,njD,u7),nTm.wj=function(n){return Ti(n,588)},nTm.xj=function(n){return _f(nCX,nhA,588,n,0,1)},AY(nyo,"EcorePackageImpl/42",1225),nrr(1226,1,njD,on),nTm.wj=function(n){return!1},nTm.xj=function(n){return _f(nYq,nhJ,2112,n,0,1)},AY(nyo,"EcorePackageImpl/43",1226),nrr(1227,1,njD,ot),nTm.wj=function(n){return Ti(n,42)},nTm.xj=function(n){return _f(nE1,nh7,42,n,0,1)},AY(nyo,"EcorePackageImpl/44",1227),nrr(1188,1,njD,oe),nTm.wj=function(n){return Ti(n,138)},nTm.xj=function(n){return _f(nQh,nhA,138,n,0,1)},AY(nyo,"EcorePackageImpl/5",1188),nrr(1189,1,njD,oi),nTm.wj=function(n){return Ti(n,148)},nTm.xj=function(n){return _f(nQl,nhA,148,n,0,1)},AY(nyo,"EcorePackageImpl/6",1189),nrr(1190,1,njD,or),nTm.wj=function(n){return Ti(n,457)},nTm.xj=function(n){return _f(nQb,nhA,671,n,0,1)},AY(nyo,"EcorePackageImpl/7",1190),nrr(1191,1,njD,oc),nTm.wj=function(n){return Ti(n,573)},nTm.xj=function(n){return _f(nQw,nhA,678,n,0,1)},AY(nyo,"EcorePackageImpl/8",1191),nrr(1192,1,njD,oa),nTm.wj=function(n){return Ti(n,471)},nTm.xj=function(n){return _f(nCx,nhA,471,n,0,1)},AY(nyo,"EcorePackageImpl/9",1192),nrr(1025,1982,nkq,gf),nTm.bi=function(n,t){!function(n,t){var e,i,r;if(t.vi(n.a),null!=(r=Im(zF(n.a,8),1936)))for(e=0,i=r.length;e<i;++e)null.jm()}(this,Im(t,415))},nTm.fi=function(n,t){neq(this,n,Im(t,415))},AY(nyo,"MinimalEObjectImpl/1ArrayDelegatingAdapterList",1025),nrr(1026,143,nk_,$T),nTm.Ai=function(){return this.a.a},AY(nyo,"MinimalEObjectImpl/1ArrayDelegatingAdapterList/1",1026),nrr(1053,1052,{},EL),AY("org.eclipse.emf.ecore.plugin","EcorePlugin",1053);var nJh=Cw(njK,"Resource");nrr(781,1378,njF),nTm.Yk=function(n){},nTm.Zk=function(n){},nTm.Vk=function(){return this.a||(this.a=new b2(this)),this.a},nTm.Wk=function(n){var t,e,i,r,c;if((i=n.length)>0){if(x5(0,n.length),47==n.charCodeAt(0)){for(t=1,c=new Fq(4),r=1;t<i;++t)x5(t,n.length),47==n.charCodeAt(t)&&(IE(c,r==t?"":n.substr(r,t-r)),r=t+1);return IE(c,n.substr(r)),function(n,t){var e,i,r;for(i=1,e=function(n,t){var e,i;if(i=0,t.length>0)try{i=nue(t,nfp,nhM)}catch(n){if(Ti(n=Uu(n),127))throw new Bj(n).e;throw n.e}return n.a||(n.a=new b2(n)),i<(e=n.a).i&&i>=0?Im(HX(e,i),56):null}(n,0==(r=t.c.length)?"":(x4(0,t.c.length),Sh(t.c[0])));i<r&&e;++i)e=Im(e,49).oh((x4(i,t.c.length),Sh(t.c[i])));return e}(this,c)}x5(i-1,n.length),63==n.charCodeAt(i-1)&&(e=Pj(n,ntd(63),i-2))>0&&(n=n.substr(0,e))}return function(n,t){var e,i,r,c,a,u;for(c=null,r=new Ae((n.a||(n.a=new b2(n)),n.a));nix(r);)if(noo(a=(e=Im(nrV(r),56)).Tg()),null!=(i=(u=a.o)&&e.mh(u)?Pg(Ui(u),e.ah(u)):null)&&Pv(i,t)){c=e;break}return c}(this,n)},nTm.Xk=function(){return this.c},nTm.Ib=function(){return pb(this.gm)+"@"+(Xg(this)>>>0).toString(16)+" uri='"+this.d+"'"},nTm.b=!1,AY(nj_,"ResourceImpl",781),nrr(1379,781,njF,b4),AY(nj_,"BinaryResourceImpl",1379),nrr(1169,694,ny6),nTm.si=function(n){var t;return Ti(n,56)?(t=Im(n,56),this.a?t.Wg().Kc():Im(t.Wg(),69).Zh()):Ti(n,591)?new Td(Im(n,591).Vk()):jf(n)===jf(this.f)?Im(n,14).Kc():(Si(),nVY.a)},nTm.Ob=function(){return nix(this)},nTm.a=!1,AY(nk5,"EcoreUtil/ContentTreeIterator",1169),nrr(1380,1169,ny6,Ae),nTm.si=function(n){return jf(n)===jf(this.f)?Im(n,15).Kc():new Rh(Im(n,56))},AY(nj_,"ResourceImpl/5",1380),nrr(648,1994,njf,b2),nTm.Hc=function(n){return this.i<=4?nnv(this,n):Ti(n,49)&&Im(n,49).Zg()==this.a},nTm.bi=function(n,t){n==this.i-1&&(this.a.b||(this.a.b=!0))},nTm.di=function(n,t){0==n?this.a.b||(this.a.b=!0):_s(this,n,t)},nTm.fi=function(n,t){},nTm.gi=function(n,t,e){},nTm.aj=function(){return 2},nTm.Ai=function(){return this.a},nTm.bj=function(){return!0},nTm.cj=function(n,t){return t=Im(n,49).wh(this.a,t)},nTm.dj=function(n,t){return Im(n,49).wh(null,t)},nTm.ej=function(){return!1},nTm.hi=function(){return!0},nTm.ri=function(n){return _f(nCS,nhA,56,n,0,1)},nTm.ni=function(){return!1},AY(nj_,"ResourceImpl/ContentsEList",648),nrr(957,1964,nff,b3),nTm.Zc=function(n){return this.a._h(n)},nTm.gc=function(){return this.a.gc()},AY(nk5,"AbstractSequentialInternalEList/1",957),nrr(624,1,{},IV),AY(nk5,"BasicExtendedMetaData",624),nrr(1160,1,{},jt),nTm.$k=function(){return null},nTm._k=function(){var n;return -2==this.a&&(n=function(n,t){var e,i,r;if((e=t.Hh(n.a))&&null!=(r=Q_((e.b||(e.b=new M2((nhl(),nQQ),nQE,e)),e.b),njd))){for(i=1;i<(neS(),nJm).length;++i)if(Pv(nJm[i],r))return i}return 0}(this.d,this.b),this.a=n),this.a},nTm.al=function(){return null},nTm.bl=function(){return LV(),LV(),nMv},nTm.ne=function(){var n;return this.c==nj0&&(n=Jk(this.d,this.b),this.c=n),this.c},nTm.cl=function(){return 0},nTm.a=-2,nTm.c=nj0,AY(nk5,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1160),nrr(1161,1,{},D$),nTm.$k=function(){var n,t,e,i,r,c,a,u,o;return this.a==(KY(),nJE)&&(t=this.f,n=(r=(e=this.b).Hh(t.a))&&(r.b||(r.b=new M2((nhl(),nQQ),nQE,r)),null!=(i=Sh(Q_(r.b,njM))))&&Ti(a=-1==(c=i.lastIndexOf("#"))?(u=e.Aj(),o=i,noI(BI(t,u),o)):0==c?_F(t,null,i.substr(1)):_F(t,i.substr(0,c),i.substr(c+1)),148)?Im(a,148):null,this.a=n),this.a},nTm._k=function(){return 0},nTm.al=function(){var n,t,e,i,r,c,a,u,o;return this.c==(KY(),nJE)&&(t=this.f,n=(i=(e=this.b).Hh(t.a))&&(i.b||(i.b=new M2((nhl(),nQQ),nQE,i)),null!=(c=Sh(Q_(i.b,njW))))&&Ti(a=-1==(r=c.lastIndexOf("#"))?(u=e.Aj(),o=c,noI(BI(t,u),o)):0==r?_F(t,null,c.substr(1)):_F(t,c.substr(0,r),c.substr(r+1)),148)?Im(a,148):null,this.c=n),this.c},nTm.bl=function(){var n;return this.d||(n=function(n,t){var e,i,r,c,a,u,o,s,h;if((e=t.Hh(n.a))&&null!=(o=Sh(Q_((e.b||(e.b=new M2((nhl(),nQQ),nQE,e)),e.b),"memberTypes")))){for(s=new wn,c=naX(o,"\\w"),a=0,u=c.length;a<u;++a)Ti(h=-1==(i=(r=c[a]).lastIndexOf("#"))?noI(BI(n,t.Aj()),r):0==i?_F(n,null,r.substr(1)):_F(n,r.substr(0,i),r.substr(i+1)),148)&&IE(s,Im(h,148));return s}return LV(),LV(),nMv}(this.f,this.b),this.d=n),this.d},nTm.ne=function(){var n;return this.e==nj0&&(n=Jk(this.f,this.b),this.e=n),this.e},nTm.cl=function(){var n;return -2==this.g&&(n=function(n,t){var e,i,r;if(e=t.Hh(n.a)){for(i=1,r=Sh(Q_((e.b||(e.b=new M2((nhl(),nQQ),nQE,e)),e.b),njJ));i<(neS(),nJj).length;++i)if(Pv(nJj[i],r))return i}return 0}(this.f,this.b),this.g=n),this.g},nTm.e=nj0,nTm.g=-2,AY(nk5,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1161),nrr(1159,1,{},ja),nTm.b=!1,nTm.c=!1,AY(nk5,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1159),nrr(1162,1,{},DA),nTm.c=-2,nTm.e=nj0,nTm.f=nj0,AY(nk5,"BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl",1162),nrr(585,622,njl,IW),nTm.aj=function(){return this.c},nTm.Fk=function(){return!1},nTm.li=function(n,t){return t},nTm.c=0,AY(nk5,"EDataTypeEList",585);var nJf=Cw(nk5,"FeatureMap");nrr(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},zr),nTm.Vc=function(n,t){!function(n,t,e){var i,r,c,a,u;if(r=e.ak(),ncD(n.e,r)){if(r.hi()){for(c=0,i=Im(n.g,119);c<n.i;++c)if(WY(a=i[c],e)&&c!=t)throw new gd(ny0).e}}else for(c=0,u=ncT(n.e.Tg(),r),i=Im(n.g,119);c<n.i;++c)if(a=i[c],u.rl(a.ak()))throw new gd(nj2).e;Vf(n,t,e)}(this,n,Im(t,72))},nTm.Fc=function(n){return function(n,t){var e,i,r,c,a;if(i=t.ak(),ncD(n.e,i)){if(i.hi()&&R_(n,i,t.dd()))return!1}else for(r=0,a=ncT(n.e.Tg(),i),e=Im(n.g,119);r<n.i;++r)if(c=e[r],a.rl(c.ak())){if(WY(c,t))return!1;return Im(Yb(n,r,t),72),!0}return _P(n,t)}(this,Im(n,72))},nTm.Yh=function(n){var t,e,i,r,c,a;t=Im(n,72),++this.j,nn6(this,this.i,t),e=Im(t,332),this.j=-1,Ea(this.e)?(i=this.i,a=0!=this.i,Fu(this,e),r=new BE(this.e,3,this.c,null,e,i,a),c=e.Qk(this.e,this.c,null),(c=nnU(this,e,c))?(c.Ei(r),c.Fi()):zD(this.e,r)):(Fu(this,e),(c=e.Qk(this.e,this.c,null))&&c.Fi())},nTm.cj=function(n,t){var e;return e=Im(n,72),Im(e,332).Qk(this.e,this.c,t)},nTm.dj=function(n,t){return PO(this,Im(n,72),t)},nTm.ii=function(n,t){return function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w;if(!Ea(n.e))return Im(niS(n,t,e),72);if(t!=e&&(a=(b=(r=Im(n.g,119))[e]).ak(),ncD(n.e,a))){for(s=0,w=ncT(n.e.Tg(),a),o=-1,u=-1,i=0,f=t>e?t:e;s<=f;++s)s==e?u=i++:(c=r[s],h=w.rl(c.ak()),s==t&&(o=s!=f||h?i:i-1),h&&++i);return l=Im(Vm(n,t,e),72),u!=o&&wR(n,new _K(n.e,7,a,Va(u),b.dd(),o)),l}return Im(Vm(n,t,e),72)}(this,n,t)},nTm.li=function(n,t){return function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g;if(Ti(a=e.ak(),99)&&(Im(a,18).Bb&nls)!=0&&(l=Im(e.dd(),49),(d=WO(n.e,l))!=l)){if(Ts(n,t,nn6(n,t,h=RU(a,d))),f=null,Ea(n.e)&&(i=noW((neS(),nJk),n.e.Tg(),a))!=Hm(n.e.Tg(),n.c)){for(o=0,g=ncT(n.e.Tg(),a),u=0,c=Im(n.g,119);o<t;++o)r=c[o],g.rl(r.ak())&&++u;(f=new R4(n.e,9,i,l,d,u,!1)).Ei(new BE(n.e,9,n.c,e,h,t,!1))}return(b=YI(w=Im(a,18)))?(f=l.ih(n.e,Qj(l.Tg(),b),null,f),f=Im(d,49).gh(n.e,Qj(d.Tg(),b),null,f)):(w.Bb&nya)!=0&&(s=-1-Qj(n.e.Tg(),w),f=l.ih(n.e,s,null,null),Im(d,49).eh()||(f=Im(d,49).gh(n.e,s,null,f))),f&&f.Fi(),h}return e}(this,n,Im(t,72))},nTm._c=function(n,t){return function(n,t,e){var i,r,c,a,u;if(r=e.ak(),ncD(n.e,r)){if(r.hi()){for(c=0,i=Im(n.g,119);c<n.i;++c)if(WY(a=i[c],e)&&c!=t)throw new gd(ny0).e}}else for(c=0,u=ncT(n.e.Tg(),r),i=Im(n.g,119);c<n.i;++c)if(a=i[c],u.rl(a.ak())&&c!=t)throw new gd(nj2).e;return Im(Yb(n,t,e),72)}(this,n,Im(t,72))},nTm.jj=function(n,t){var e;return e=Im(n,72),nnU(this,Im(e,332),t)},nTm.kj=function(n,t){return PA(this,Im(n,72),t)},nTm.lj=function(n,t,e){var i,r,c,a,u,o;return i=Im(n,72),r=Im(t,72),c=e,Ea(this.e)&&(o=NE(this,1,a=i.ak(),i.dd(),u=r.dd(),a.$j()?nu5(this,a,u,Ti(a,99)&&(Im(a,18).Bb&nls)!=0):-1,!0),c?c.Ei(o):c=o),c},nTm.oi=function(n,t){return nn6(this,n,Im(t,72))},nTm.dl=function(n,t){return naZ(this,n,t)},nTm.Wc=function(n,t){var e,i,r,c,a,u,o,s,h;for(s=new HO(t.gc()),r=t.Kc();r.Ob();)if(c=(i=Im(r.Pb(),72)).ak(),ncD(this.e,c))c.hi()&&(R_(this,c,i.dd())||nnv(s,i))||_P(s,i);else{for(u=0,h=ncT(this.e.Tg(),c),e=Im(this.g,119),a=!0;u<this.i;++u)if(o=e[u],h.rl(o.ak())){Im(Yb(this,u,i),72),a=!1;break}a&&_P(s,i)}return UG(this,n,s)},nTm.Gc=function(n){var t,e,i,r,c,a,u,o,s;for(o=new HO(n.gc()),i=n.Kc();i.Ob();)if(r=(e=Im(i.Pb(),72)).ak(),ncD(this.e,r))r.hi()&&(R_(this,r,e.dd())||nnv(o,e))||_P(o,e);else{for(a=0,s=ncT(this.e.Tg(),r),t=Im(this.g,119),c=!0;a<this.i;++a)if(u=t[a],s.rl(u.ak())){Im(Yb(this,a,e),72),c=!1;break}c&&_P(o,e)}return AJ(this,o)},nTm.Wh=function(n){return this.j=-1,nuK(this,this.i,n)},nTm.el=function(n,t,e){return nak(this,n,t,e)},nTm.mk=function(n,t){return naQ(this,n,t)},nTm.fl=function(n,t,e){return nos(this,n,t,e)},nTm.gl=function(){return this},nTm.hl=function(n,t){return nol(this,n,t)},nTm.il=function(n){return Im(HX(this,n),72).ak()},nTm.jl=function(n){return Im(HX(this,n),72).dd()},nTm.kl=function(){return this.b},nTm.bj=function(){return!0},nTm.ij=function(){return!0},nTm.ll=function(n){return!QB(this,n)},nTm.ri=function(n){return _f(nQT,njR,332,n,0,1)},nTm.Gk=function(n){return Sn(this,n)},nTm.Wb=function(n){AF(this,n)},nTm.ml=function(n,t){noE(this,n,t)},nTm.nl=function(n){return Go(this,n)},nTm.ol=function(n){Zt(this,n)},AY(nk5,"BasicFeatureMap",75),nrr(1851,1,nhX),nTm.Nb=function(n){Ao(this,n)},nTm.Rb=function(n){if(-1==this.g)throw(new wM).e;OD(this);try{ncx(this.e,this.b,this.a,n),this.d=this.e.j,Yf(this)}catch(n){if(Ti(n=Uu(n),73))throw(new wI).e;throw n.e}},nTm.Ob=function(){return Xq(this)},nTm.Sb=function(){return XG(this)},nTm.Pb=function(){return Yf(this)},nTm.Tb=function(){return this.a},nTm.Ub=function(){var n;if(XG(this))return OD(this),this.g=--this.a,this.Lk()&&(n=nik(this.e,this.b,this.c,this.a,this.j),this.j=n),this.i=0,this.j;throw(new wO).e},nTm.Vb=function(){return this.a-1},nTm.Qb=function(){if(-1==this.g)throw(new wM).e;OD(this);try{nef(this.e,this.b,this.g),this.d=this.e.j,this.g<this.a&&(--this.a,--this.c),--this.g}catch(n){if(Ti(n=Uu(n),73))throw(new wI).e;throw n.e}},nTm.Lk=function(){return!1},nTm.Wb=function(n){if(-1==this.g)throw(new wM).e;OD(this);try{nuU(this.e,this.b,this.g,n),this.d=this.e.j}catch(n){if(Ti(n=Uu(n),73))throw(new wI).e;throw n.e}},nTm.a=0,nTm.c=0,nTm.d=0,nTm.f=!1,nTm.g=0,nTm.i=0,AY(nk5,"FeatureMapUtil/BasicFeatureEIterator",1851),nrr(410,1851,nhX,zW),nTm.pl=function(){var n,t,e;for(e=this.e.i,n=Im(this.e.g,119);this.c<e;){if(t=n[this.c],this.k.rl(t.ak()))return this.j=this.f?t:t.dd(),this.i=2,!0;++this.c}return this.i=1,this.g=-1,!1},nTm.ql=function(){var n,t;for(n=Im(this.e.g,119);--this.c>=0;)if(t=n[this.c],this.k.rl(t.ak()))return this.j=this.f?t:t.dd(),this.i=-2,!0;return this.i=-1,this.g=-1,!1},AY(nk5,"BasicFeatureMap/FeatureEIterator",410),nrr(662,410,nhX,jV),nTm.Lk=function(){return!0},AY(nk5,"BasicFeatureMap/ResolvingFeatureEIterator",662),nrr(955,486,njv,E2),nTm.Gi=function(){return this},AY(nk5,"EContentsEList/1",955),nrr(956,486,njv,jQ),nTm.Lk=function(){return!1},AY(nk5,"EContentsEList/2",956),nrr(954,279,njm,E3),nTm.Nk=function(n){},nTm.Ob=function(){return!1},nTm.Sb=function(){return!1},AY(nk5,"EContentsEList/FeatureIteratorImpl/1",954),nrr(825,585,njl,Tj),nTm.ci=function(){this.a=!0},nTm.fj=function(){return this.a},nTm.Xj=function(){var n;noK(this),Ea(this.e)?(n=this.a,this.a=!1,zD(this.e,new Fi(this.e,2,this.c,n,!1))):this.a=!1},nTm.a=!1,AY(nk5,"EDataTypeEList/Unsettable",825),nrr(1849,585,njl,TE),nTm.hi=function(){return!0},AY(nk5,"EDataTypeUniqueEList",1849),nrr(1850,825,njl,TT),nTm.hi=function(){return!0},AY(nk5,"EDataTypeUniqueEList/Unsettable",1850),nrr(139,85,njl,Tv),nTm.Ek=function(){return!0},nTm.li=function(n,t){return ni0(this,n,Im(t,56))},AY(nk5,"EObjectContainmentEList/Resolving",139),nrr(1163,545,njl,Tm),nTm.Ek=function(){return!0},nTm.li=function(n,t){return ni0(this,n,Im(t,56))},AY(nk5,"EObjectContainmentEList/Unsettable/Resolving",1163),nrr(748,16,njl,Pi),nTm.ci=function(){this.a=!0},nTm.fj=function(){return this.a},nTm.Xj=function(){var n;noK(this),Ea(this.e)?(n=this.a,this.a=!1,zD(this.e,new Fi(this.e,2,this.c,n,!1))):this.a=!1},nTm.a=!1,AY(nk5,"EObjectContainmentWithInverseEList/Unsettable",748),nrr(1173,748,njl,Pr),nTm.Ek=function(){return!0},nTm.li=function(n,t){return ni0(this,n,Im(t,56))},AY(nk5,"EObjectContainmentWithInverseEList/Unsettable/Resolving",1173),nrr(743,496,njl,Ty),nTm.ci=function(){this.a=!0},nTm.fj=function(){return this.a},nTm.Xj=function(){var n;noK(this),Ea(this.e)?(n=this.a,this.a=!1,zD(this.e,new Fi(this.e,2,this.c,n,!1))):this.a=!1},nTm.a=!1,AY(nk5,"EObjectEList/Unsettable",743),nrr(328,496,njl,Tk),nTm.Ek=function(){return!0},nTm.li=function(n,t){return ni0(this,n,Im(t,56))},AY(nk5,"EObjectResolvingEList",328),nrr(1641,743,njl,TM),nTm.Ek=function(){return!0},nTm.li=function(n,t){return ni0(this,n,Im(t,56))},AY(nk5,"EObjectResolvingEList/Unsettable",1641),nrr(1381,1,{},ou),AY(nk5,"EObjectValidator",1381),nrr(546,496,njl,At),nTm.zk=function(){return this.d},nTm.Ak=function(){return this.b},nTm.bj=function(){return!0},nTm.Dk=function(){return!0},nTm.b=0,AY(nk5,"EObjectWithInverseEList",546),nrr(1176,546,njl,Pc),nTm.Ck=function(){return!0},AY(nk5,"EObjectWithInverseEList/ManyInverse",1176),nrr(625,546,njl,Pa),nTm.ci=function(){this.a=!0},nTm.fj=function(){return this.a},nTm.Xj=function(){var n;noK(this),Ea(this.e)?(n=this.a,this.a=!1,zD(this.e,new Fi(this.e,2,this.c,n,!1))):this.a=!1},nTm.a=!1,AY(nk5,"EObjectWithInverseEList/Unsettable",625),nrr(1175,625,njl,Po),nTm.Ck=function(){return!0},AY(nk5,"EObjectWithInverseEList/Unsettable/ManyInverse",1175),nrr(749,546,njl,Pu),nTm.Ek=function(){return!0},nTm.li=function(n,t){return ni0(this,n,Im(t,56))},AY(nk5,"EObjectWithInverseResolvingEList",749),nrr(31,749,njl,Ph),nTm.Ck=function(){return!0},AY(nk5,"EObjectWithInverseResolvingEList/ManyInverse",31),nrr(750,625,njl,Ps),nTm.Ek=function(){return!0},nTm.li=function(n,t){return ni0(this,n,Im(t,56))},AY(nk5,"EObjectWithInverseResolvingEList/Unsettable",750),nrr(1174,750,njl,Pf),nTm.Ck=function(){return!0},AY(nk5,"EObjectWithInverseResolvingEList/Unsettable/ManyInverse",1174),nrr(1164,622,njl),nTm.ai=function(){return(1792&this.b)==0},nTm.ci=function(){this.b|=1},nTm.Bk=function(){return(4&this.b)!=0},nTm.bj=function(){return(40&this.b)!=0},nTm.Ck=function(){return(16&this.b)!=0},nTm.Dk=function(){return(8&this.b)!=0},nTm.Ek=function(){return(this.b&njn)!=0},nTm.rk=function(){return(32&this.b)!=0},nTm.Fk=function(){return(this.b&nyp)!=0},nTm.wj=function(n){return this.d?RR(this.d,n):this.ak().Yj().wj(n)},nTm.fj=function(){return(2&this.b)!=0?(1&this.b)!=0:0!=this.i},nTm.hi=function(){return(128&this.b)!=0},nTm.Xj=function(){var n;noK(this),(2&this.b)!=0&&(Ea(this.e)?(n=(1&this.b)!=0,this.b&=-2,wR(this,new Fi(this.e,2,Qj(this.e.Tg(),this.ak()),n,!1))):this.b&=-2)},nTm.ni=function(){return(1536&this.b)==0},nTm.b=0,AY(nk5,"EcoreEList/Generic",1164),nrr(1165,1164,njl,L2),nTm.ak=function(){return this.a},AY(nk5,"EcoreEList/Dynamic",1165),nrr(747,63,ny5,b5),nTm.ri=function(n){return qm(this.a.a,n)},AY(nk5,"EcoreEMap/1",747),nrr(746,85,njl,O8),nTm.bi=function(n,t){YC(this.b,Im(t,133))},nTm.di=function(n,t){zO(this.b)},nTm.ei=function(n,t,e){var i;++(i=this.b,Im(t,133),i).e},nTm.fi=function(n,t){Vy(this.b,Im(t,133))},nTm.gi=function(n,t,e){var i;Vy(this.b,Im(e,133)),jf(e)===jf(t)&&Im(e,133).Th(null==(i=Im(t,133).cd())?0:Xg(i)),YC(this.b,Im(t,133))},AY(nk5,"EcoreEMap/DelegateEObjectContainmentEList",746),nrr(1171,151,nk8,qJ),AY(nk5,"EcoreEMap/Unsettable",1171),nrr(1172,746,njl,Pl),nTm.ci=function(){this.a=!0},nTm.fj=function(){return this.a},nTm.Xj=function(){var n;noK(this),Ea(this.e)?(n=this.a,this.a=!1,zD(this.e,new Fi(this.e,2,this.c,n,!1))):this.a=!1},nTm.a=!1,AY(nk5,"EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList",1172),nrr(1168,228,nlE,AX),nTm.a=!1,nTm.b=!1,AY(nk5,"EcoreUtil/Copier",1168),nrr(745,1,nhF,Rh),nTm.Nb=function(n){Ao(this,n)},nTm.Ob=function(){return QH(this)},nTm.Pb=function(){var n;return QH(this),n=this.b,this.b=null,n},nTm.Qb=function(){this.a.Qb()},AY(nk5,"EcoreUtil/ProperContentIterator",745),nrr(1382,1381,{},s1),AY(nk5,"EcoreValidator",1382),Cw(nk5,"FeatureMapUtil/Validator"),nrr(1260,1,{1942:1},oo),nTm.rl=function(n){return!0},AY(nk5,"FeatureMapUtil/1",1260),nrr(757,1,{1942:1},nsO),nTm.rl=function(n){var t,e;return this.c==n||(null!=(t=So($a(this.a,n)))?t==(TX(),nTQ):(this.f==nJI?(e=$B(BC((neS(),nJk),n)),this.e?4==e&&n!=(niH(),nJ$)&&n!=(niH(),nJC)&&n!=(niH(),nJO)&&n!=(niH(),nJA):2==e):this.d&&(this.d.Hc(n)||this.d.Hc(Dt(BC((neS(),nJk),n)))||this.d.Hc(noW((neS(),nJk),this.b,n)))||this.f&&ncu((neS(),this.f),La(BC(nJk,n)))&&(e=$B(BC(nJk,n)),this.e?4==e:2==e))?(Fa(this.a,n,(TX(),nTQ)),!0):(Fa(this.a,n,(TX(),nTV)),!1))},nTm.e=!1,AY(nk5,"FeatureMapUtil/BasicValidator",757),nrr(758,43,nlE,E4),AY(nk5,"FeatureMapUtil/BasicValidator/Cache",758),nrr(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},jr),nTm.Vc=function(n,t){ncx(this.c,this.b,n,t)},nTm.Fc=function(n){return naZ(this.c,this.b,n)},nTm.Wc=function(n,t){return function(n,t,e,i){var r,c,a,u,o,s,h,f;if(0==i.gc())return!1;if(mp(),a=(o=Im(t,66).Oj())?i:new HO(i.gc()),ncD(n.e,t)){if(t.hi())for(h=i.Kc();h.Ob();)nuz(n,t,s=h.Pb(),Ti(t,99)&&(Im(t,18).Bb&nls)!=0)||(c=RU(t,s),a.Fc(c));else if(!o)for(h=i.Kc();h.Ob();)c=RU(t,s=h.Pb()),a.Fc(c)}else{for(u=0,f=ncT(n.e.Tg(),t),r=Im(n.g,119);u<n.i;++u)if(c=r[u],f.rl(c.ak()))throw new gd(nj2).e;if(i.gc()>1)throw new gd(nj2).e;o||(c=RU(t,i.Kc().Pb()),a.Fc(c))}return UG(n,neE(n,t,e),a)}(this.c,this.b,n,t)},nTm.Gc=function(n){return E9(this,n)},nTm.Xh=function(n,t){var e,i;e=this.c,i=this.b,e.j=-1,ni1(e,neE(e,i,n),(mp(),Im(i,66).Mj().Ok(t)))},nTm.lk=function(n,t){return nak(this.c,this.b,n,t)},nTm.pi=function(n){return nof(this.c,this.b,n,!1)},nTm.Zh=function(){var n;return n=this.c,new zW(this.b,n)},nTm.$h=function(){var n;return n=this.c,new zW(this.b,n)},nTm._h=function(n){return function(n,t,e){var i,r;for(i=0,r=new zW(t,n);i<e;++i)Yf(r);return r}(this.c,this.b,n)},nTm.mk=function(n,t){return nos(this.c,this.b,n,t)},nTm.$b=function(){wK(this)},nTm.Hc=function(n){return R_(this.c,this.b,n)},nTm.Ic=function(n){return function(n,t,e){var i;for(i=e.Kc();i.Ob();)if(!R_(n,t,i.Pb()))return!1;return!0}(this.c,this.b,n)},nTm.Xb=function(n){return nof(this.c,this.b,n,!0)},nTm.Wj=function(n){return this},nTm.Xc=function(n){var t;return nu5(this.c,t=this.b,n,Ti(t,99)&&(Im(t,18).Bb&nls)!=0)},nTm.dc=function(){return js(this)},nTm.fj=function(){return!QB(this.c,this.b)},nTm.Kc=function(){var n,t;return n=this.c,Ti(t=this.b,99)&&(Im(t,18).Bb&nls)!=0?new jV(t,n):new zW(t,n)},nTm.Yc=function(){var n,t;return n=this.c,Ti(t=this.b,99)&&(Im(t,18).Bb&nls)!=0?new jV(t,n):new zW(t,n)},nTm.Zc=function(n){return function(n,t,e){var i,r;for(i=0,r=Ti(t,99)&&(Im(t,18).Bb&nls)!=0?new jV(t,n):new zW(t,n);i<e;++i)Yf(r);return r}(this.c,this.b,n)},nTm.ii=function(n,t){return nuO(this.c,this.b,n,t)},nTm.ji=function(n,t){var e,i;nuO(e=this.c,i=this.b,n,nu5(e,i,t,Ti(i,99)&&(Im(i,18).Bb&nls)!=0))},nTm.$c=function(n){return nef(this.c,this.b,n)},nTm.Mc=function(n){return function(n,t,e){var i,r,c,a;if(a=ncT(n.e.Tg(),t),i=Im(n.g,119),mp(),Im(t,66).Oj()){for(c=0;c<n.i;++c)if(r=i[c],a.rl(r.ak())&&WY(r,e))return ncQ(n,c),!0}else if(null!=e){for(c=0;c<n.i;++c)if(r=i[c],a.rl(r.ak())&&WY(e,r.dd()))return ncQ(n,c),!0}else for(c=0;c<n.i;++c)if(r=i[c],a.rl(r.ak())&&null==r.dd())return ncQ(n,c),!0;return!1}(this.c,this.b,n)},nTm._c=function(n,t){return nuU(this.c,this.b,n,t)},nTm.Wb=function(n){niX(this.c,this.b),E9(this,Im(n,15))},nTm.gc=function(){return function(n,t){var e,i,r,c,a;for(r=0,a=ncT(n.e.Tg(),t),c=0,e=Im(n.g,119);r<n.i;++r)i=e[r],a.rl(i.ak())&&++c;return c}(this.c,this.b)},nTm.Pc=function(){var n;return function(n,t,e){var i,r,c,a,u,o;if(a=new a7,u=ncT(n.e.Tg(),t),i=Im(n.g,119),mp(),Im(t,66).Oj())for(c=0;c<n.i;++c)r=i[c],u.rl(r.ak())&&_P(a,r);else for(c=0;c<n.i;++c)r=i[c],u.rl(r.ak())&&(o=r.dd(),_P(a,e?nik(n,t,c,a.i,o):o));return RD(a)}(this.c,n=this.b,Ti(n,99)&&(Im(n,18).Bb&nls)!=0)},nTm.Qc=function(n){var t;return function(n,t,e,i){var r,c,a,u,o,s;if(u=new a7,o=ncT(n.e.Tg(),t),r=Im(n.g,119),mp(),Im(t,66).Oj())for(a=0;a<n.i;++a)c=r[a],o.rl(c.ak())&&_P(u,c);else for(a=0;a<n.i;++a)c=r[a],o.rl(c.ak())&&(s=c.dd(),_P(u,i?nik(n,t,a,u.i,s):s));return QL(u,e)}(this.c,t=this.b,n,Ti(t,99)&&(Im(t,18).Bb&nls)!=0)},nTm.Ib=function(){var n,t,e;for(t=new gz,t.a+="[",e=this.c,n=new zW(this.b,e);Xq(n);)jT(t,T4(Yf(n))),Xq(n)&&(t.a+=nhC);return t.a+="]",t.a},nTm.Xj=function(){niX(this.c,this.b)},AY(nk5,"FeatureMapUtil/FeatureEList",501),nrr(627,36,nk_,R4),nTm.yi=function(n){return Vc(this,n)},nTm.Di=function(n){var t,e,i,r;switch(this.d){case 1:case 2:if(jf(n.Ai())===jf(this.c)&&Vc(this,null)==n.yi(null))return this.g=n.zi(),1==n.xi()&&(this.d=1),!0;break;case 3:if(3===n.xi()&&jf(n.Ai())===jf(this.c)&&Vc(this,null)==n.yi(null))return this.d=5,_P(t=new HO(2),this.g),_P(t,n.zi()),this.g=t,!0;break;case 5:if(3===n.xi()&&jf(n.Ai())===jf(this.c)&&Vc(this,null)==n.yi(null))return Im(this.g,14).Fc(n.zi()),!0;break;case 4:switch(n.xi()){case 3:if(jf(n.Ai())===jf(this.c)&&Vc(this,null)==n.yi(null))return this.d=1,this.g=n.zi(),!0;break;case 4:if(jf(n.Ai())===jf(this.c)&&Vc(this,null)==n.yi(null))return this.d=6,_P(r=new HO(2),this.n),_P(r,n.Bi()),this.n=r,i=Um(xg(nYL,1),nfH,25,15,[this.o,n.Ci()]),this.g=i,!0}break;case 6:if(4===n.xi()&&jf(n.Ai())===jf(this.c)&&Vc(this,null)==n.yi(null))return Im(this.n,14).Fc(n.Bi()),e=_f(nYL,nfH,25,(i=Im(this.g,48)).length+1,15,1),now(i,0,e,0,i.length),e[i.length]=n.Ci(),this.g=e,!0}return!1},AY(nk5,"FeatureMapUtil/FeatureENotificationImpl",627),nrr(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},Cb),nTm.dl=function(n,t){return naZ(this.c,n,t)},nTm.el=function(n,t,e){return nak(this.c,n,t,e)},nTm.fl=function(n,t,e){return nos(this.c,n,t,e)},nTm.gl=function(){return this},nTm.hl=function(n,t){return nol(this.c,n,t)},nTm.il=function(n){return Im(nof(this.c,this.b,n,!1),72).ak()},nTm.jl=function(n){return Im(nof(this.c,this.b,n,!1),72).dd()},nTm.kl=function(){return this.a},nTm.ll=function(n){return!QB(this.c,n)},nTm.ml=function(n,t){noE(this.c,n,t)},nTm.nl=function(n){return Go(this.c,n)},nTm.ol=function(n){Zt(this.c,n)},AY(nk5,"FeatureMapUtil/FeatureFeatureMap",552),nrr(1259,1,nk6,ju),nTm.Wj=function(n){return nof(this.b,this.a,-1,n)},nTm.fj=function(){return!QB(this.b,this.a)},nTm.Wb=function(n){noE(this.b,this.a,n)},nTm.Xj=function(){niX(this.b,this.a)},AY(nk5,"FeatureMapUtil/FeatureValue",1259);var nJl=Cw(nj3,"AnyType");nrr(666,60,nfm,gP),AY(nj3,"InvalidDatatypeValueException",666);var nJb=Cw(nj3,nj4),nJw=Cw(nj3,nj5),nJd=Cw(nj3,nj6);nrr(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},dA),nTm._g=function(n,t,e){switch(n){case 0:if(e)return this.c||(this.c=new zr(this,0)),this.c;return this.c||(this.c=new zr(this,0)),this.c.b;case 1:if(e)return this.c||(this.c=new zr(this,0)),Im(xW(this.c,(noQ(),nJR)),153);return(this.c||(this.c=new zr(this,0)),Im(Im(xW(this.c,(noQ(),nJR)),153),215)).kl();case 2:if(e)return this.b||(this.b=new zr(this,2)),this.b;return this.b||(this.b=new zr(this,2)),this.b.b}return _Q(this,n-AW(this.zh()),Hm((2&this.j)==0?this.zh():(this.k||(this.k=new sY),this.k).ck(),n),t,e)},nTm.jh=function(n,t,e){switch(t){case 0:return this.c||(this.c=new zr(this,0)),naQ(this.c,n,e);case 1:return(this.c||(this.c=new zr(this,0)),Im(Im(xW(this.c,(noQ(),nJR)),153),69)).mk(n,e);case 2:return this.b||(this.b=new zr(this,2)),naQ(this.b,n,e)}return Im(Hm((2&this.j)==0?this.zh():(this.k||(this.k=new sY),this.k).ck(),t),66).Nj().Rj(this,BK(this),t-AW(this.zh()),n,e)},nTm.lh=function(n){switch(n){case 0:return!!this.c&&0!=this.c.i;case 1:return!(this.c||(this.c=new zr(this,0)),Im(xW(this.c,(noQ(),nJR)),153)).dc();case 2:return!!this.b&&0!=this.b.i}return RN(this,n-AW(this.zh()),Hm((2&this.j)==0?this.zh():(this.k||(this.k=new sY),this.k).ck(),n))},nTm.sh=function(n,t){switch(n){case 0:this.c||(this.c=new zr(this,0)),AF(this.c,t);return;case 1:(this.c||(this.c=new zr(this,0)),Im(Im(xW(this.c,(noQ(),nJR)),153),215)).Wb(t);return;case 2:this.b||(this.b=new zr(this,2)),AF(this.b,t);return}V5(this,n-AW(this.zh()),Hm((2&this.j)==0?this.zh():(this.k||(this.k=new sY),this.k).ck(),n),t)},nTm.zh=function(){return noQ(),nJD},nTm.Bh=function(n){switch(n){case 0:this.c||(this.c=new zr(this,0)),noK(this.c);return;case 1:(this.c||(this.c=new zr(this,0)),Im(xW(this.c,(noQ(),nJR)),153)).$b();return;case 2:this.b||(this.b=new zr(this,2)),noK(this.b);return}W5(this,n-AW(this.zh()),Hm((2&this.j)==0?this.zh():(this.k||(this.k=new sY),this.k).ck(),n))},nTm.Ib=function(){var n;return(4&this.j)!=0?nrN(this):(n=new TW(nrN(this)),n.a+=" (mixed: ",jE(n,this.c),n.a+=", anyAttribute: ",jE(n,this.b),n.a+=")",n.a)},AY(nj8,"AnyTypeImpl",830),nrr(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},oh),nTm._g=function(n,t,e){switch(n){case 0:return this.a;case 1:return this.b}return _Q(this,n-AW((noQ(),nJV)),Hm((2&this.j)==0?nJV:(this.k||(this.k=new sY),this.k).ck(),n),t,e)},nTm.lh=function(n){switch(n){case 0:return null!=this.a;case 1:return null!=this.b}return RN(this,n-AW((noQ(),nJV)),Hm((2&this.j)==0?nJV:(this.k||(this.k=new sY),this.k).ck(),n))},nTm.sh=function(n,t){var e,i;switch(n){case 0:e=Sh(t),this.a=e;return;case 1:i=Sh(t),this.b=i;return}V5(this,n-AW((noQ(),nJV)),Hm((2&this.j)==0?nJV:(this.k||(this.k=new sY),this.k).ck(),n),t)},nTm.zh=function(){return noQ(),nJV},nTm.Bh=function(n){switch(n){case 0:this.a=null;return;case 1:this.b=null;return}W5(this,n-AW((noQ(),nJV)),Hm((2&this.j)==0?nJV:(this.k||(this.k=new sY),this.k).ck(),n))},nTm.Ib=function(){var n;return(4&this.j)!=0?nrN(this):(n=new TW(nrN(this)),n.a+=" (data: ",jT(n,this.a),n.a+=", target: ",jT(n,this.b),n.a+=")",n.a)},nTm.a=null,nTm.b=null,AY(nj8,"ProcessingInstructionImpl",667),nrr(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},dL),nTm._g=function(n,t,e){switch(n){case 0:if(e)return this.c||(this.c=new zr(this,0)),this.c;return this.c||(this.c=new zr(this,0)),this.c.b;case 1:if(e)return this.c||(this.c=new zr(this,0)),Im(xW(this.c,(noQ(),nJR)),153);return(this.c||(this.c=new zr(this,0)),Im(Im(xW(this.c,(noQ(),nJR)),153),215)).kl();case 2:if(e)return this.b||(this.b=new zr(this,2)),this.b;return this.b||(this.b=new zr(this,2)),this.b.b;case 3:return this.c||(this.c=new zr(this,0)),Sh(nol(this.c,(noQ(),nJY),!0));case 4:return Pd(this.a,(this.c||(this.c=new zr(this,0)),Sh(nol(this.c,(noQ(),nJY),!0))));case 5:return this.a}return _Q(this,n-AW((noQ(),nJJ)),Hm((2&this.j)==0?nJJ:(this.k||(this.k=new sY),this.k).ck(),n),t,e)},nTm.lh=function(n){switch(n){case 0:return!!this.c&&0!=this.c.i;case 1:return!(this.c||(this.c=new zr(this,0)),Im(xW(this.c,(noQ(),nJR)),153)).dc();case 2:return!!this.b&&0!=this.b.i;case 3:return this.c||(this.c=new zr(this,0)),null!=Sh(nol(this.c,(noQ(),nJY),!0));case 4:return null!=Pd(this.a,(this.c||(this.c=new zr(this,0)),Sh(nol(this.c,(noQ(),nJY),!0))));case 5:return!!this.a}return RN(this,n-AW((noQ(),nJJ)),Hm((2&this.j)==0?nJJ:(this.k||(this.k=new sY),this.k).ck(),n))},nTm.sh=function(n,t){switch(n){case 0:this.c||(this.c=new zr(this,0)),AF(this.c,t);return;case 1:(this.c||(this.c=new zr(this,0)),Im(Im(xW(this.c,(noQ(),nJR)),153),215)).Wb(t);return;case 2:this.b||(this.b=new zr(this,2)),AF(this.b,t);return;case 3:DL(this,Sh(t));return;case 4:DL(this,Pg(this.a,t));return;case 5:var e;e=Im(t,148),this.a=e;return}V5(this,n-AW((noQ(),nJJ)),Hm((2&this.j)==0?nJJ:(this.k||(this.k=new sY),this.k).ck(),n),t)},nTm.zh=function(){return noQ(),nJJ},nTm.Bh=function(n){switch(n){case 0:this.c||(this.c=new zr(this,0)),noK(this.c);return;case 1:(this.c||(this.c=new zr(this,0)),Im(xW(this.c,(noQ(),nJR)),153)).$b();return;case 2:this.b||(this.b=new zr(this,2)),noK(this.b);return;case 3:this.c||(this.c=new zr(this,0)),noE(this.c,(noQ(),nJY),null);return;case 4:DL(this,Pg(this.a,null));return;case 5:this.a=null;return}W5(this,n-AW((noQ(),nJJ)),Hm((2&this.j)==0?nJJ:(this.k||(this.k=new sY),this.k).ck(),n))},AY(nj8,"SimpleAnyTypeImpl",668),nrr(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},d$),nTm._g=function(n,t,e){switch(n){case 0:if(e)return this.a||(this.a=new zr(this,0)),this.a;return this.a||(this.a=new zr(this,0)),this.a.b;case 1:return e?(this.b||(this.b=new _D((nhl(),nQQ),nQE,this,1)),this.b):(this.b||(this.b=new _D((nhl(),nQQ),nQE,this,1)),_o(this.b));case 2:return e?(this.c||(this.c=new _D((nhl(),nQQ),nQE,this,2)),this.c):(this.c||(this.c=new _D((nhl(),nQQ),nQE,this,2)),_o(this.c));case 3:return this.a||(this.a=new zr(this,0)),xW(this.a,(noQ(),nJ0));case 4:return this.a||(this.a=new zr(this,0)),xW(this.a,(noQ(),nJ2));case 5:return this.a||(this.a=new zr(this,0)),xW(this.a,(noQ(),nJ4));case 6:return this.a||(this.a=new zr(this,0)),xW(this.a,(noQ(),nJ5))}return _Q(this,n-AW((noQ(),nJ1)),Hm((2&this.j)==0?nJ1:(this.k||(this.k=new sY),this.k).ck(),n),t,e)},nTm.jh=function(n,t,e){switch(t){case 0:return this.a||(this.a=new zr(this,0)),naQ(this.a,n,e);case 1:return this.b||(this.b=new _D((nhl(),nQQ),nQE,this,1)),PC(this.b,n,e);case 2:return this.c||(this.c=new _D((nhl(),nQQ),nQE,this,2)),PC(this.c,n,e);case 5:var i;return this.a||(this.a=new zr(this,0)),nos((i=xW(this.a,(noQ(),nJ4))).c,i.b,n,e)}return Im(Hm((2&this.j)==0?(noQ(),nJ1):(this.k||(this.k=new sY),this.k).ck(),t),66).Nj().Rj(this,BK(this),t-AW((noQ(),nJ1)),n,e)},nTm.lh=function(n){switch(n){case 0:return!!this.a&&0!=this.a.i;case 1:return!!this.b&&0!=this.b.f;case 2:return!!this.c&&0!=this.c.f;case 3:return this.a||(this.a=new zr(this,0)),!js(xW(this.a,(noQ(),nJ0)));case 4:return this.a||(this.a=new zr(this,0)),!js(xW(this.a,(noQ(),nJ2)));case 5:return this.a||(this.a=new zr(this,0)),!js(xW(this.a,(noQ(),nJ4)));case 6:return this.a||(this.a=new zr(this,0)),!js(xW(this.a,(noQ(),nJ5)))}return RN(this,n-AW((noQ(),nJ1)),Hm((2&this.j)==0?nJ1:(this.k||(this.k=new sY),this.k).ck(),n))},nTm.sh=function(n,t){switch(n){case 0:this.a||(this.a=new zr(this,0)),AF(this.a,t);return;case 1:this.b||(this.b=new _D((nhl(),nQQ),nQE,this,1)),zP(this.b,t);return;case 2:this.c||(this.c=new _D((nhl(),nQQ),nQE,this,2)),zP(this.c,t);return;case 3:this.a||(this.a=new zr(this,0)),wK(xW(this.a,(noQ(),nJ0))),this.a||(this.a=new zr(this,0)),E9(xW(this.a,nJ0),Im(t,14));return;case 4:this.a||(this.a=new zr(this,0)),wK(xW(this.a,(noQ(),nJ2))),this.a||(this.a=new zr(this,0)),E9(xW(this.a,nJ2),Im(t,14));return;case 5:this.a||(this.a=new zr(this,0)),wK(xW(this.a,(noQ(),nJ4))),this.a||(this.a=new zr(this,0)),E9(xW(this.a,nJ4),Im(t,14));return;case 6:this.a||(this.a=new zr(this,0)),wK(xW(this.a,(noQ(),nJ5))),this.a||(this.a=new zr(this,0)),E9(xW(this.a,nJ5),Im(t,14));return}V5(this,n-AW((noQ(),nJ1)),Hm((2&this.j)==0?nJ1:(this.k||(this.k=new sY),this.k).ck(),n),t)},nTm.zh=function(){return noQ(),nJ1},nTm.Bh=function(n){switch(n){case 0:this.a||(this.a=new zr(this,0)),noK(this.a);return;case 1:this.b||(this.b=new _D((nhl(),nQQ),nQE,this,1)),this.b.c.$b();return;case 2:this.c||(this.c=new _D((nhl(),nQQ),nQE,this,2)),this.c.c.$b();return;case 3:this.a||(this.a=new zr(this,0)),wK(xW(this.a,(noQ(),nJ0)));return;case 4:this.a||(this.a=new zr(this,0)),wK(xW(this.a,(noQ(),nJ2)));return;case 5:this.a||(this.a=new zr(this,0)),wK(xW(this.a,(noQ(),nJ4)));return;case 6:this.a||(this.a=new zr(this,0)),wK(xW(this.a,(noQ(),nJ5)));return}W5(this,n-AW((noQ(),nJ1)),Hm((2&this.j)==0?nJ1:(this.k||(this.k=new sY),this.k).ck(),n))},nTm.Ib=function(){var n;return(4&this.j)!=0?nrN(this):(n=new TW(nrN(this)),n.a+=" (mixed: ",jE(n,this.a),n.a+=")",n.a)},AY(nj8,"XMLTypeDocumentRootImpl",669),nrr(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},os),nTm.Ih=function(n,t){var e,i,r,c;switch(n.yj()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return null==t?null:V7(t);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return Sh(t);case 6:return null==(e=Im(t,190))?null:function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d;if(nux(),null==n)return null;if(0==(f=8*n.length))return"";for(o=0,u=f%24,l=f/24|0,c=null,c=_f(nY$,nfS,25,4*(0!=u?l+1:l),15,1),s=0,h=0,t=0,e=0,i=0,a=0,r=0;o<l;o++)t=n[r++],e=n[r++],i=n[r++],h=(15&e)<<24>>24,s=(3&t)<<24>>24,b=(-128&t)==0?t>>2<<24>>24:(t>>2^192)<<24>>24,w=(-128&e)==0?e>>4<<24>>24:(e>>4^240)<<24>>24,d=(-128&i)==0?i>>6<<24>>24:(i>>6^252)<<24>>24,c[a++]=nYt[b],c[a++]=nYt[w|s<<4],c[a++]=nYt[h<<2|d],c[a++]=nYt[63&i];return 8==u?(s=(3&(t=n[r]))<<24>>24,b=(-128&t)==0?t>>2<<24>>24:(t>>2^192)<<24>>24,c[a++]=nYt[b],c[a++]=nYt[s<<4],c[a++]=61,c[a++]=61):16==u&&(t=n[r],h=(15&(e=n[r+1]))<<24>>24,s=(3&t)<<24>>24,b=(-128&t)==0?t>>2<<24>>24:(t>>2^192)<<24>>24,w=(-128&e)==0?e>>4<<24>>24:(e>>4^240)<<24>>24,c[a++]=nYt[b],c[a++]=nYt[w|s<<4],c[a++]=nYt[h<<2],c[a++]=61),Je(c,0,c.length)}(e);case 12:case 47:case 49:case 11:return nso(this,n,t);case 13:return null==t?null:function(n){var t,e,i,r,c,a,u,o;if(i=ns9((n.c||(n.c=Wa(n.f)),n.c),0),0==n.e||0==n.a&&-1!=n.f&&n.e<0)return i;if(t=0>qD(n)?1:0,e=n.e,i.length,nTv.Math.abs(NU(n.e)),r=new gW,1==t&&(r.a+="-"),n.e>0){if((e-=i.length-t)>=0){for(r.a+="0.";e>nMt.length;e-=nMt.length)CO(r,nMt);c=nMt,a=NU(e),r.a+=Je(c,0,a),jP(r,i.substr(t))}else e=t-e,jP(r,MT(i,t,NU(e))),r.a+=".",jP(r,jm(i,NU(e)))}else{for(jP(r,i.substr(t));e<-nMt.length;e+=nMt.length)CO(r,nMt);u=nMt,o=NU(-e),r.a+=Je(u,0,o)}return r.a}(Im(t,240));case 15:case 14:return null==t?null:(i=gy(Ss(t)))==nlc?"INF":i==nla?"-INF":""+i;case 17:return nnG((noQ(),t));case 18:return nnG(t);case 21:case 20:return null==t?null:(r=Im(t,155).a)==nlc?"INF":r==nla?"-INF":""+r;case 27:return null==(c=Im(t,190))?null:function(n){var t,e,i,r;if(nc7(),null==n)return null;for(e=0,t=_f(nY$,nfS,25,2*(i=n.length),15,1);e<i;e++)(r=n[e])<0&&(r+=256),t[2*e]=nYi[r>>4],t[2*e+1]=nYi[15&r];return Je(t,0,t.length)}(c);case 30:return Ze((noQ(),Im(t,15)));case 31:return Ze(Im(t,15));case 40:case 59:case 48:return null==(noQ(),t)?null:V7(t);case 42:return nnz((noQ(),t));case 43:return nnz(t);default:throw new gd(nyf+n.ne()+nyl).e}},nTm.Jh=function(n){var t;switch(-1==n.G&&(n.G=(t=HU(n))?Yl(t.Mh(),n):-1),n.G){case 0:return new dA;case 1:return new oh;case 2:return new dL;case 3:return new d$;default:throw new gd(nyd+n.zb+nyl).e}},nTm.Kh=function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;switch(n.yj()){case 5:case 52:case 4:return t;case 6:return function(n){var t;if(null==n)return null;if(null==(t=function(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;if(nux(),null==n||(w=function(n){var t,e,i;for(t=0,i=0,e=n.length;t<e;t++)32==n[t]||13==n[t]||10==n[t]||9==n[t]||(n[i++]=n[t]);return i}(c=BR(n)))%4!=0)return null;if(0==(d=w/4|0))return _f(nYD,nyw,25,0,15,1);for(f=null,t=0,e=0,i=0,r=0,a=0,u=0,o=0,s=0,b=0,l=0,h=0,f=_f(nYD,nyw,25,3*d,15,1);b<d-1;b++){if(!p3(a=c[h++])||!p3(u=c[h++])||!p3(o=c[h++])||!p3(s=c[h++]))return null;t=nYn[a],e=nYn[u],i=nYn[o],r=nYn[s],f[l++]=(t<<2|e>>4)<<24>>24,f[l++]=((15&e)<<4|i>>2&15)<<24>>24,f[l++]=(i<<6|r)<<24>>24}return p3(a=c[h++])&&p3(u=c[h++])?(t=nYn[a],e=nYn[u],o=c[h++],s=c[h++],-1==nYn[o]||-1==nYn[s])?61==o&&61==s?(15&e)!=0?null:(now(f,0,g=_f(nYD,nyw,25,3*b+1,15,1),0,3*b),g[l]=(t<<2|e>>4)<<24>>24,g):61==o||61!=s?null:(3&(i=nYn[o]))!=0?null:(now(f,0,g=_f(nYD,nyw,25,3*b+2,15,1),0,3*b),g[l++]=(t<<2|e>>4)<<24>>24,g[l]=((15&e)<<4|i>>2&15)<<24>>24,g):(i=nYn[o],r=nYn[s],f[l++]=(t<<2|e>>4)<<24>>24,f[l++]=((15&e)<<4|i>>2&15)<<24>>24,f[l++]=(i<<6|r)<<24>>24,f):null}(noe(n,!0))))throw new gP("Invalid base64Binary value: '"+n+"'").e;return t}(t);case 8:case 7:return null==t?null:function(n){if(Pv(nml,n=noe(n,!0))||Pv("1",n))return TX(),nTQ;if(Pv(nmb,n)||Pv("0",n))return TX(),nTV;throw new gP("Invalid boolean value: '"+n+"'").e}(t);case 9:return null==t?null:B4(nue((i=noe(t,!0)).length>0&&(x5(0,i.length),43==i.charCodeAt(0))?i.substr(1):i,-128,127)<<24>>24);case 10:return null==t?null:B4(nue((r=noe(t,!0)).length>0&&(x5(0,r.length),43==r.charCodeAt(0))?r.substr(1):r,-128,127)<<24>>24);case 11:return Sh(ns4(this,(noQ(),nJ_),t));case 12:return Sh(ns4(this,(noQ(),nJB),t));case 13:return null==t?null:new pP(noe(t,!0));case 15:case 14:return function(n){var t,e,i;if(null==n)return null;if(Pv((i=noe(n,!0)).substr(i.length-3,3),"INF")){if(4==(e=i.length)){if(x5(0,i.length),43==(t=i.charCodeAt(0)))return nJ8;if(45==t)return nJ6}else if(3==e)return nJ8}return nt1(i)}(t);case 16:return Sh(ns4(this,(noQ(),nJH),t));case 17:return Ji((noQ(),t));case 18:return Ji(t);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return noe(t,!0);case 21:case 20:return function(n){var t,e,i;if(null==n)return null;if(Pv((i=noe(n,!0)).substr(i.length-3,3),"INF")){if(4==(e=i.length)){if(x5(0,i.length),43==(t=i.charCodeAt(0)))return nJ7;if(45==t)return nJ9}else if(3==e)return nJ7}return new wF(i)}(t);case 22:return Sh(ns4(this,(noQ(),nJq),t));case 23:return Sh(ns4(this,(noQ(),nJG),t));case 24:return Sh(ns4(this,(noQ(),nJz),t));case 25:return Sh(ns4(this,(noQ(),nJU),t));case 26:return Sh(ns4(this,(noQ(),nJX),t));case 27:return function(n){var t;if(null==n)return null;if(null==(t=function(n){var t,e,i,r,c,a,u;if(nc7(),null==n||(r=n.length)%2!=0)return null;for(i=0,t=BR(n),e=_f(nYD,nyw,25,c=r/2|0,15,1);i<c;i++){if(-1==(a=nYe[t[2*i]])||-1==(u=nYe[t[2*i+1]]))return null;e[i]=(a<<4|u)<<24>>24}return e}(noe(n,!0))))throw new gP("Invalid hexBinary value: '"+n+"'").e;return t}(t);case 30:return Jr((noQ(),t));case 31:return Jr(t);case 32:return null==t?null:Va(nue((h=noe(t,!0)).length>0&&(x5(0,h.length),43==h.charCodeAt(0))?h.substr(1):h,nfp,nhM));case 33:return null==t?null:new Ep((f=noe(t,!0)).length>0&&(x5(0,f.length),43==f.charCodeAt(0))?f.substr(1):f);case 34:return null==t?null:Va(nue((l=noe(t,!0)).length>0&&(x5(0,l.length),43==l.charCodeAt(0))?l.substr(1):l,nfp,nhM));case 36:return null==t?null:Jy(nsC((b=noe(t,!0)).length>0&&(x5(0,b.length),43==b.charCodeAt(0))?b.substr(1):b));case 37:return null==t?null:Jy(nsC((w=noe(t,!0)).length>0&&(x5(0,w.length),43==w.charCodeAt(0))?w.substr(1):w));case 40:return null==(noQ(),t)?null:new Ep((v=noe(t,!0)).length>0&&(x5(0,v.length),43==v.charCodeAt(0))?v.substr(1):v);case 42:return Jc((noQ(),t));case 43:return Jc(t);case 44:return null==t?null:new Ep((d=noe(t,!0)).length>0&&(x5(0,d.length),43==d.charCodeAt(0))?d.substr(1):d);case 45:return null==t?null:new Ep((g=noe(t,!0)).length>0&&(x5(0,g.length),43==g.charCodeAt(0))?g.substr(1):g);case 46:return noe(t,!1);case 47:return Sh(ns4(this,(noQ(),nJW),t));case 59:case 48:return null==(noQ(),t)?null:new Ep((m=noe(t,!0)).length>0&&(x5(0,m.length),43==m.charCodeAt(0))?m.substr(1):m);case 49:return Sh(ns4(this,(noQ(),nJQ),t));case 50:return null==t?null:Vu(nue((p=noe(t,!0)).length>0&&(x5(0,p.length),43==p.charCodeAt(0))?p.substr(1):p,-32768,32767)<<16>>16);case 51:return null==t?null:Vu(nue((c=noe(t,!0)).length>0&&(x5(0,c.length),43==c.charCodeAt(0))?c.substr(1):c,-32768,32767)<<16>>16);case 53:return Sh(ns4(this,(noQ(),nJZ),t));case 55:return null==t?null:Vu(nue((a=noe(t,!0)).length>0&&(x5(0,a.length),43==a.charCodeAt(0))?a.substr(1):a,-32768,32767)<<16>>16);case 56:return null==t?null:Vu(nue((u=noe(t,!0)).length>0&&(x5(0,u.length),43==u.charCodeAt(0))?u.substr(1):u,-32768,32767)<<16>>16);case 57:return null==t?null:Jy(nsC((o=noe(t,!0)).length>0&&(x5(0,o.length),43==o.charCodeAt(0))?o.substr(1):o));case 58:return null==t?null:Jy(nsC((s=noe(t,!0)).length>0&&(x5(0,s.length),43==s.charCodeAt(0))?s.substr(1):s));case 60:return null==t?null:Va(nue((e=noe(t,!0)).length>0&&(x5(0,e.length),43==e.charCodeAt(0))?e.substr(1):e,nfp,nhM));case 61:return null==t?null:Va(nue(noe(t,!0),nfp,nhM));default:throw new gd(nyf+n.ne()+nyl).e}},AY(nj8,"XMLTypeFactoryImpl",1919),nrr(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},$W),nTm.N=!1,nTm.O=!1;var nJg=!1;AY(nj8,"XMLTypePackageImpl",586),nrr(1852,1,{837:1},of),nTm._j=function(){return nuP(),nhv},AY(nj8,"XMLTypePackageImpl/1",1852),nrr(1861,1,njD,ol),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/10",1861),nrr(1862,1,njD,ob),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/11",1862),nrr(1863,1,njD,ow),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/12",1863),nrr(1864,1,njD,od),nTm.wj=function(n){return jb(n)},nTm.xj=function(n){return _f(nTr,nhJ,333,n,7,1)},AY(nj8,"XMLTypePackageImpl/13",1864),nrr(1865,1,njD,og),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/14",1865),nrr(1866,1,njD,op),nTm.wj=function(n){return Ti(n,15)},nTm.xj=function(n){return _f(nEZ,nwe,15,n,0,1)},AY(nj8,"XMLTypePackageImpl/15",1866),nrr(1867,1,njD,ov),nTm.wj=function(n){return Ti(n,15)},nTm.xj=function(n){return _f(nEZ,nwe,15,n,0,1)},AY(nj8,"XMLTypePackageImpl/16",1867),nrr(1868,1,njD,om),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/17",1868),nrr(1869,1,njD,oy),nTm.wj=function(n){return Ti(n,155)},nTm.xj=function(n){return _f(nTc,nhJ,155,n,0,1)},AY(nj8,"XMLTypePackageImpl/18",1869),nrr(1870,1,njD,ok),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/19",1870),nrr(1853,1,njD,oj),nTm.wj=function(n){return Ti(n,843)},nTm.xj=function(n){return _f(nJl,nhA,843,n,0,1)},AY(nj8,"XMLTypePackageImpl/2",1853),nrr(1871,1,njD,oE),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/20",1871),nrr(1872,1,njD,oT),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/21",1872),nrr(1873,1,njD,oM),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/22",1873),nrr(1874,1,njD,oS),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/23",1874),nrr(1875,1,njD,oP),nTm.wj=function(n){return Ti(n,190)},nTm.xj=function(n){return _f(nYD,nhJ,190,n,0,2)},AY(nj8,"XMLTypePackageImpl/24",1875),nrr(1876,1,njD,oI),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/25",1876),nrr(1877,1,njD,oC),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/26",1877),nrr(1878,1,njD,oO),nTm.wj=function(n){return Ti(n,15)},nTm.xj=function(n){return _f(nEZ,nwe,15,n,0,1)},AY(nj8,"XMLTypePackageImpl/27",1878),nrr(1879,1,njD,oA),nTm.wj=function(n){return Ti(n,15)},nTm.xj=function(n){return _f(nEZ,nwe,15,n,0,1)},AY(nj8,"XMLTypePackageImpl/28",1879),nrr(1880,1,njD,o$),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/29",1880),nrr(1854,1,njD,oL),nTm.wj=function(n){return Ti(n,667)},nTm.xj=function(n){return _f(nJb,nhA,2021,n,0,1)},AY(nj8,"XMLTypePackageImpl/3",1854),nrr(1881,1,njD,oN),nTm.wj=function(n){return Ti(n,19)},nTm.xj=function(n){return _f(nTa,nhJ,19,n,0,1)},AY(nj8,"XMLTypePackageImpl/30",1881),nrr(1882,1,njD,ox),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/31",1882),nrr(1883,1,njD,oD),nTm.wj=function(n){return Ti(n,162)},nTm.xj=function(n){return _f(nTu,nhJ,162,n,0,1)},AY(nj8,"XMLTypePackageImpl/32",1883),nrr(1884,1,njD,oR),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/33",1884),nrr(1885,1,njD,oK),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/34",1885),nrr(1886,1,njD,oF),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/35",1886),nrr(1887,1,njD,o_),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/36",1887),nrr(1888,1,njD,oB),nTm.wj=function(n){return Ti(n,15)},nTm.xj=function(n){return _f(nEZ,nwe,15,n,0,1)},AY(nj8,"XMLTypePackageImpl/37",1888),nrr(1889,1,njD,oH),nTm.wj=function(n){return Ti(n,15)},nTm.xj=function(n){return _f(nEZ,nwe,15,n,0,1)},AY(nj8,"XMLTypePackageImpl/38",1889),nrr(1890,1,njD,oq),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/39",1890),nrr(1855,1,njD,oG),nTm.wj=function(n){return Ti(n,668)},nTm.xj=function(n){return _f(nJw,nhA,2022,n,0,1)},AY(nj8,"XMLTypePackageImpl/4",1855),nrr(1891,1,njD,oz),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/40",1891),nrr(1892,1,njD,oU),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/41",1892),nrr(1893,1,njD,oX),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/42",1893),nrr(1894,1,njD,oW),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/43",1894),nrr(1895,1,njD,oV),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/44",1895),nrr(1896,1,njD,oQ),nTm.wj=function(n){return Ti(n,184)},nTm.xj=function(n){return _f(nTo,nhJ,184,n,0,1)},AY(nj8,"XMLTypePackageImpl/45",1896),nrr(1897,1,njD,oJ),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/46",1897),nrr(1898,1,njD,oY),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/47",1898),nrr(1899,1,njD,oZ),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/48",1899),nrr(nfB,1,njD,o1),nTm.wj=function(n){return Ti(n,184)},nTm.xj=function(n){return _f(nTo,nhJ,184,n,0,1)},AY(nj8,"XMLTypePackageImpl/49",nfB),nrr(1856,1,njD,o0),nTm.wj=function(n){return Ti(n,669)},nTm.xj=function(n){return _f(nJd,nhA,2023,n,0,1)},AY(nj8,"XMLTypePackageImpl/5",1856),nrr(1901,1,njD,o2),nTm.wj=function(n){return Ti(n,162)},nTm.xj=function(n){return _f(nTu,nhJ,162,n,0,1)},AY(nj8,"XMLTypePackageImpl/50",1901),nrr(1902,1,njD,o3),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/51",1902),nrr(1903,1,njD,o4),nTm.wj=function(n){return Ti(n,19)},nTm.xj=function(n){return _f(nTa,nhJ,19,n,0,1)},AY(nj8,"XMLTypePackageImpl/52",1903),nrr(1857,1,njD,o5),nTm.wj=function(n){return jw(n)},nTm.xj=function(n){return _f(nTh,nhJ,2,n,6,1)},AY(nj8,"XMLTypePackageImpl/6",1857),nrr(1858,1,njD,o6),nTm.wj=function(n){return Ti(n,190)},nTm.xj=function(n){return _f(nYD,nhJ,190,n,0,2)},AY(nj8,"XMLTypePackageImpl/7",1858),nrr(1859,1,njD,o8),nTm.wj=function(n){return jl(n)},nTm.xj=function(n){return _f(nTt,nhJ,476,n,8,1)},AY(nj8,"XMLTypePackageImpl/8",1859),nrr(1860,1,njD,o9),nTm.wj=function(n){return Ti(n,217)},nTm.xj=function(n){return _f(nTe,nhJ,217,n,0,1)},AY(nj8,"XMLTypePackageImpl/9",1860),nrr(50,60,nfm,gO),AY(nEj,"RegEx/ParseException",50),nrr(820,1,{},o7),nTm.sl=function(n){return n<this.j&&63==$9(this.i,n)},nTm.tl=function(){var n,t,e,i,r;if(10!=this.c)throw new gO(nhd((E$(),nkt))).e;switch(n=this.a){case 101:n=27;break;case 102:n=12;break;case 110:n=10;break;case 114:n=13;break;case 116:n=9;break;case 120:if(nhe(this),0!=this.c)throw new gO(nhd((E$(),nkS))).e;if(123==this.a){for(r=0,e=0;;){if(nhe(this),0!=this.c)throw new gO(nhd((E$(),nkS))).e;if((r=YH(this.a))<0)break;if(e>16*e)throw new gO(nhd((E$(),nkP))).e;e=16*e+r}if(125!=this.a)throw new gO(nhd((E$(),nkI))).e;if(e>nEE)throw new gO(nhd((E$(),nkC))).e;n=e}else{if(r=0,0!=this.c||(r=YH(this.a))<0||(e=r,nhe(this),0!=this.c||(r=YH(this.a))<0))throw new gO(nhd((E$(),nkS))).e;n=e=16*e+r}break;case 117:if(i=0,nhe(this),0!=this.c||(i=YH(this.a))<0||(t=i,nhe(this),0!=this.c||(i=YH(this.a))<0)||(t=16*t+i,nhe(this),0!=this.c||(i=YH(this.a))<0)||(t=16*t+i,nhe(this),0!=this.c||(i=YH(this.a))<0))throw new gO(nhd((E$(),nkS))).e;n=t=16*t+i;break;case 118:if(nhe(this),0!=this.c||(i=YH(this.a))<0||(t=i,nhe(this),0!=this.c||(i=YH(this.a))<0)||(t=16*t+i,nhe(this),0!=this.c||(i=YH(this.a))<0)||(t=16*t+i,nhe(this),0!=this.c||(i=YH(this.a))<0)||(t=16*t+i,nhe(this),0!=this.c||(i=YH(this.a))<0)||(t=16*t+i,nhe(this),0!=this.c||(i=YH(this.a))<0))throw new gO(nhd((E$(),nkS))).e;if((t=16*t+i)>nEE)throw new gO(nhd((E$(),"parser.descappe.4"))).e;n=t;break;case 65:case 90:case 122:throw new gO(nhd((E$(),nkO))).e}return n},nTm.ul=function(n){var t;switch(n){case 100:t=(32&this.e)==32?nsX("Nd",!0):(nhh(),nYh);break;case 68:t=(32&this.e)==32?nsX("Nd",!1):(nhh(),nYd);break;case 119:t=(32&this.e)==32?nsX("IsWord",!0):(nhh(),nYT);break;case 87:t=(32&this.e)==32?nsX("IsWord",!1):(nhh(),nYp);break;case 115:t=(32&this.e)==32?nsX("IsSpace",!0):(nhh(),nYm);break;case 83:t=(32&this.e)==32?nsX("IsSpace",!1):(nhh(),nYg);break;default:throw new d7(nET+n.toString(16)).e}return t},nTm.vl=function(n){var t,e,i,r,c,a,u,o,s,h,f;for(this.b=1,nhe(this),t=null,0==this.c&&94==this.a?(nhe(this),n?(nhh(),nhh(),++nYO,s=new Dv(5)):(nhh(),nhh(),++nYO,ncz(t=new Dv(4),0,nEE),++nYO,s=new Dv(4))):(nhh(),nhh(),++nYO,s=new Dv(4)),r=!0;1!=(f=this.c)&&(0!=f||93!=this.a||r);){if(r=!1,e=this.a,i=!1,10==f)switch(e){case 100:case 68:case 119:case 87:case 115:case 83:nog(s,this.ul(e)),i=!0;break;case 105:case 73:case 99:case 67:(e=this.Ll(s,e))<0&&(i=!0);break;case 112:case 80:if(!(h=niy(this,e)))throw new gO(nhd((E$(),nkd))).e;nog(s,h),i=!0;break;default:e=this.tl()}else if(20==f){if((c=MM(this.i,58,this.d))<0)throw new gO(nhd((E$(),nkg))).e;if(a=!0,94==$9(this.i,this.d)&&(++this.d,a=!1),!(u=_C(MT(this.i,this.d,c),a,(512&this.e)==512)))throw new gO(nhd((E$(),nkv))).e;if(nog(s,u),i=!0,c+1>=this.j||93!=$9(this.i,c+1))throw new gO(nhd((E$(),nkg))).e;this.d=c+2}if(nhe(this),!i){if(0!=this.c||45!=this.a)ncz(s,e,e);else{if(nhe(this),1==(f=this.c))throw new gO(nhd((E$(),nkp))).e;0==f&&93==this.a?(ncz(s,e,e),ncz(s,45,45)):(o=this.a,10==f&&(o=this.tl()),nhe(this),ncz(s,e,o))}}(this.e&nyp)==nyp&&0==this.c&&44==this.a&&nhe(this)}if(1==this.c)throw new gO(nhd((E$(),nkp))).e;return t&&(nsf(t,s),s=t),nr$(s),noA(s),this.b=0,nhe(this),s},nTm.wl=function(){var n,t,e,i;for(e=this.vl(!1);7!=(i=this.c);)if(n=this.a,0==i&&(45==n||38==n)||4==i){if(nhe(this),9!=this.c)throw new gO(nhd((E$(),nkE))).e;if(t=this.vl(!1),4==i)nog(e,t);else if(45==n)nsf(e,t);else if(38==n)nst(e,t);else throw new d7("ASSERT").e}else throw new gO(nhd((E$(),nkT))).e;return nhe(this),e},nTm.xl=function(){var n,t,e,i;return n=this.a-48,nhh(),nhh(),++nYO,t=new NF(12,null,n),this.g||(this.g=new wH),e=this.g,i=new b6(n),IE(e.a,i),nhe(this),t},nTm.yl=function(){return nhe(this),nhh(),nYy},nTm.zl=function(){return nhe(this),nhh(),nYv},nTm.Al=function(){throw new gO(nhd((E$(),nkA))).e},nTm.Bl=function(){throw new gO(nhd((E$(),nkA))).e},nTm.Cl=function(){var n,t;return nhe(this),(nhh(),nYI)?nYI:(t=nsX("M",!0),++nYO,n=new R0(3,t),nYI=n=C1(nsX("M",!1),n))},nTm.Dl=function(){return nhe(this),nhh(),nYj},nTm.El=function(){return nhe(this),nhh(),nYM},nTm.Fl=function(){var n;if(this.d>=this.j||(65504&(n=$9(this.i,this.d++)))!=64)throw new gO(nhd((E$(),nkf))).e;return nhe(this),nhh(),nhh(),++nYO,new CU(0,n-64)},nTm.Gl=function(){return nhe(this),function(){var n,t,e,i,r,c;if(nhh(),nYC)return nYC;for(++nYO,nog(n=new Dv(4),nsX(nEL,!0)),nsf(n,nsX("M",!0)),nsf(n,nsX("C",!0)),++nYO,c=new Dv(4),i=0;i<11;i++)ncz(c,i,i);return++nYO,nog(t=new Dv(4),nsX("M",!0)),ncz(t,4448,4607),ncz(t,65438,65439),++nYO,nox(r=new EO(2),n),nox(r,nYl),++nYO,(e=new EO(2)).$l(C1(c,nsX("L",!0))),e.$l(t),++nYO,e=new R0(3,e),++nYO,nYC=e=new AL(r,e)}()},nTm.Hl=function(){return nhe(this),nhh(),nYS},nTm.Il=function(){var n;return nhh(),nhh(),++nYO,n=new CU(0,105),nhe(this),n},nTm.Jl=function(){return nhe(this),nhh(),nYE},nTm.Kl=function(){return nhe(this),nhh(),nYk},nTm.Ll=function(n,t){return this.tl()},nTm.Ml=function(){return nhe(this),nhh(),nYb},nTm.Nl=function(){var n,t,e,i,r,c,a;if(this.d+1>=this.j)throw new gO(nhd((E$(),nko))).e;if(i=-1,t=null,49<=(n=$9(this.i,this.d))&&n<=57){if(i=n-48,this.g||(this.g=new wH),c=this.g,a=new b6(i),IE(c.a,a),++this.d,41!=$9(this.i,this.d))throw new gO(nhd((E$(),nkc))).e;++this.d}else switch(63==n&&--this.d,nhe(this),(t=ns1(this)).e){case 20:case 21:case 22:case 23:break;case 8:if(7!=this.c)throw new gO(nhd((E$(),nkc))).e;break;default:throw new gO(nhd((E$(),nks))).e}if(nhe(this),r=Ju(this),e=null,2==r.e){if(2!=r.em())throw new gO(nhd((E$(),nkh))).e;e=r.am(1),r=r.am(0)}if(7!=this.c)throw new gO(nhd((E$(),nkc))).e;return nhe(this),nhh(),nhh(),++nYO,new B0(i,t,r,e)},nTm.Ol=function(){return nhe(this),nhh(),nYw},nTm.Pl=function(){var n;if(nhe(this),n=Ac(24,Ju(this)),7!=this.c)throw new gO(nhd((E$(),nkc))).e;return nhe(this),n},nTm.Ql=function(){var n;if(nhe(this),n=Ac(20,Ju(this)),7!=this.c)throw new gO(nhd((E$(),nkc))).e;return nhe(this),n},nTm.Rl=function(){var n;if(nhe(this),n=Ac(22,Ju(this)),7!=this.c)throw new gO(nhd((E$(),nkc))).e;return nhe(this),n},nTm.Sl=function(){var n,t,e,i,r;for(n=0,e=0,t=-1;this.d<this.j&&0!=(r=ni3(t=$9(this.i,this.d)));)n|=r,++this.d;if(this.d>=this.j)throw new gO(nhd((E$(),nka))).e;if(45==t){for(++this.d;this.d<this.j&&0!=(r=ni3(t=$9(this.i,this.d)));)e|=r,++this.d;if(this.d>=this.j)throw new gO(nhd((E$(),nka))).e}if(58==t){if(++this.d,nhe(this),i=$n(Ju(this),n,e),7!=this.c)throw new gO(nhd((E$(),nkc))).e;nhe(this)}else if(41==t)++this.d,nhe(this),i=$n(Ju(this),n,e);else throw new gO(nhd((E$(),nku))).e;return i},nTm.Tl=function(){var n;if(nhe(this),n=Ac(21,Ju(this)),7!=this.c)throw new gO(nhd((E$(),nkc))).e;return nhe(this),n},nTm.Ul=function(){var n;if(nhe(this),n=Ac(23,Ju(this)),7!=this.c)throw new gO(nhd((E$(),nkc))).e;return nhe(this),n},nTm.Vl=function(){var n,t;if(nhe(this),n=this.f++,t=Aa(Ju(this),n),7!=this.c)throw new gO(nhd((E$(),nkc))).e;return nhe(this),t},nTm.Wl=function(){var n;if(nhe(this),n=Aa(Ju(this),0),7!=this.c)throw new gO(nhd((E$(),nkc))).e;return nhe(this),n},nTm.Xl=function(n){return(nhe(this),5==this.c)?(nhe(this),C1(n,(nhh(),nhh(),++nYO,new R0(9,n)))):C1(n,(nhh(),nhh(),++nYO,new R0(3,n)))},nTm.Yl=function(n){var t;return nhe(this),nhh(),nhh(),++nYO,t=new EO(2),5==this.c?(nhe(this),nox(t,nYl),nox(t,n)):(nox(t,n),nox(t,nYl)),t},nTm.Zl=function(n){return(nhe(this),5==this.c)?(nhe(this),nhh(),nhh(),++nYO,new R0(9,n)):(nhh(),nhh(),++nYO,new R0(3,n))},nTm.a=0,nTm.b=0,nTm.c=0,nTm.d=0,nTm.e=0,nTm.f=1,nTm.g=null,nTm.j=0,AY(nEj,"RegEx/RegexParser",820),nrr(1824,820,{},dN),nTm.sl=function(n){return!1},nTm.tl=function(){return nae(this)},nTm.ul=function(n){return nui(n)},nTm.vl=function(n){return function n(t){var e,i,r,c,a,u,o,s;for(t.b=1,nhe(t),e=null,0==t.c&&94==t.a?(nhe(t),nhh(),nhh(),++nYO,ncz(e=new Dv(4),0,nEE)):(nhh(),nhh()),++nYO,u=new Dv(4),c=!0;1!=(s=t.c);){if(0==s&&93==t.a&&!c){e&&(nsf(e,u),u=e);break}if(i=t.a,r=!1,10==s)switch(i){case 100:case 68:case 119:case 87:case 115:case 83:nog(u,nui(i)),r=!0;break;case 105:case 73:case 99:case 67:nog(u,nui(i)),(i=-1)<0&&(r=!0);break;case 112:case 80:if(!(o=niy(t,i)))throw new gO(nhd((E$(),nkd))).e;nog(u,o),r=!0;break;default:i=nae(t)}else if(24==s&&!c){if(e&&(nsf(e,u),u=e),nsf(u,n(t)),0!=t.c||93!=t.a)throw new gO(nhd((E$(),nkm))).e;break}if(nhe(t),!r){if(0==s){if(91==i)throw new gO(nhd((E$(),nky))).e;if(93==i)throw new gO(nhd((E$(),nkk))).e;if(45==i&&!c&&93!=t.a)throw new gO(nhd((E$(),nkj))).e}if(0!=t.c||45!=t.a||45==i&&c)ncz(u,i,i);else{if(nhe(t),1==(s=t.c))throw new gO(nhd((E$(),nkp))).e;if(0==s&&93==t.a)ncz(u,i,i),ncz(u,45,45);else if(0==s&&93==t.a||24==s)throw new gO(nhd((E$(),nkj))).e;else{if(a=t.a,0==s){if(91==a)throw new gO(nhd((E$(),nky))).e;if(93==a)throw new gO(nhd((E$(),nkk))).e;if(45==a)throw new gO(nhd((E$(),nkj))).e}else 10==s&&(a=nae(t));if(nhe(t),i>a)throw new gO(nhd((E$(),nkM))).e;ncz(u,i,a)}}}c=!1}if(1==t.c)throw new gO(nhd((E$(),nkp))).e;return nr$(u),noA(u),t.b=0,nhe(t),u}(this)},nTm.wl=function(){throw new gO(nhd((E$(),nkA))).e},nTm.xl=function(){throw new gO(nhd((E$(),nkA))).e},nTm.yl=function(){throw new gO(nhd((E$(),nkA))).e},nTm.zl=function(){throw new gO(nhd((E$(),nkA))).e},nTm.Al=function(){return nhe(this),nui(67)},nTm.Bl=function(){return nhe(this),nui(73)},nTm.Cl=function(){throw new gO(nhd((E$(),nkA))).e},nTm.Dl=function(){throw new gO(nhd((E$(),nkA))).e},nTm.El=function(){throw new gO(nhd((E$(),nkA))).e},nTm.Fl=function(){return nhe(this),nui(99)},nTm.Gl=function(){throw new gO(nhd((E$(),nkA))).e},nTm.Hl=function(){throw new gO(nhd((E$(),nkA))).e},nTm.Il=function(){return nhe(this),nui(105)},nTm.Jl=function(){throw new gO(nhd((E$(),nkA))).e},nTm.Kl=function(){throw new gO(nhd((E$(),nkA))).e},nTm.Ll=function(n,t){return nog(n,nui(t)),-1},nTm.Ml=function(){return nhe(this),nhh(),nhh(),++nYO,new CU(0,94)},nTm.Nl=function(){throw new gO(nhd((E$(),nkA))).e},nTm.Ol=function(){return nhe(this),nhh(),nhh(),++nYO,new CU(0,36)},nTm.Pl=function(){throw new gO(nhd((E$(),nkA))).e},nTm.Ql=function(){throw new gO(nhd((E$(),nkA))).e},nTm.Rl=function(){throw new gO(nhd((E$(),nkA))).e},nTm.Sl=function(){throw new gO(nhd((E$(),nkA))).e},nTm.Tl=function(){throw new gO(nhd((E$(),nkA))).e},nTm.Ul=function(){throw new gO(nhd((E$(),nkA))).e},nTm.Vl=function(){var n;if(nhe(this),n=Aa(Ju(this),0),7!=this.c)throw new gO(nhd((E$(),nkc))).e;return nhe(this),n},nTm.Wl=function(){throw new gO(nhd((E$(),nkA))).e},nTm.Xl=function(n){return nhe(this),C1(n,(nhh(),nhh(),++nYO,new R0(3,n)))},nTm.Yl=function(n){var t;return nhe(this),nhh(),nhh(),++nYO,nox(t=new EO(2),n),nox(t,nYl),t},nTm.Zl=function(n){return nhe(this),nhh(),nhh(),++nYO,new R0(3,n)};var nJp=null,nJv=null;AY(nEj,"RegEx/ParserForXMLSchema",1824),nrr(117,1,nED,b8),nTm.$l=function(n){throw new d7("Not supported.").e},nTm._l=function(){return -1},nTm.am=function(n){return null},nTm.bm=function(){return null},nTm.cm=function(n){},nTm.dm=function(n){},nTm.em=function(){return 0},nTm.Ib=function(){return this.fm(0)},nTm.fm=function(n){return 11==this.e?".":""},nTm.e=0;var nJm,nJy,nJk,nJj,nJE,nJT,nJM,nJS,nJP,nJI,nJC,nJO,nJA,nJ$,nJL,nJN,nJx,nJD,nJR,nJK,nJF,nJ_,nJB,nJH,nJq,nJG,nJz,nJU,nJX,nJW,nJV,nJQ,nJJ,nJY,nJZ,nJ1,nJ0,nJ2,nJ3,nJ4,nJ5,nJ6,nJ8,nJ9,nJ7,nYn,nYt,nYe,nYi,nYr,nYc,nYa,nYu,nYo,nYs,nYh,nYf,nYl,nYb,nYw,nYd,nYg,nYp,nYv,nYm,nYy,nYk,nYj,nYE,nYT,nYM,nYS,nYP=null,nYI=null,nYC=null,nYO=0,nYA=AY(nEj,"RegEx/Token",117);nrr(136,117,{3:1,136:1,117:1},Dv),nTm.fm=function(n){var t,e,i;if(4==this.e){if(this==nYf)e=".";else if(this==nYh)e="\\d";else if(this==nYT)e="\\w";else if(this==nYm)e="\\s";else{for(i=new gz,i.a+="[",t=0;t<this.b.length;t+=2)(n&nyp)!=0&&t>0&&(i.a+=","),this.b[t]===this.b[t+1]?jT(i,nuY(this.b[t])):(jT(i,nuY(this.b[t])),i.a+="-",jT(i,nuY(this.b[t+1])));i.a+="]",e=i.a}}else if(this==nYd)e="\\D";else if(this==nYp)e="\\W";else if(this==nYg)e="\\S";else{for(i=new gz,i.a+="[^",t=0;t<this.b.length;t+=2)(n&nyp)!=0&&t>0&&(i.a+=","),this.b[t]===this.b[t+1]?jT(i,nuY(this.b[t])):(jT(i,nuY(this.b[t])),i.a+="-",jT(i,nuY(this.b[t+1])));i.a+="]",e=i.a}return e},nTm.a=!1,nTm.c=!1,AY(nEj,"RegEx/RangeToken",136),nrr(584,1,{584:1},b6),nTm.a=0,AY(nEj,"RegEx/RegexParser/ReferencePosition",584),nrr(583,1,{3:1,583:1},p0),nTm.Fb=function(n){var t;return!!(null!=n&&Ti(n,583))&&(t=Im(n,583),Pv(this.b,t.b)&&this.a==t.a)},nTm.Hb=function(){return Yj(this.b+"/"+ncE(this.a))},nTm.Ib=function(){return this.c.fm(this.a)},nTm.a=0,AY(nEj,"RegEx/RegularExpression",583),nrr(223,117,nED,CU),nTm._l=function(){return this.a},nTm.fm=function(n){var t,e;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:e="\\"+SU(this.a&nfI);break;case 12:e="\\f";break;case 10:e="\\n";break;case 13:e="\\r";break;case 9:e="\\t";break;case 27:e="\\e";break;default:e=this.a>=nls?"\\v"+MT(t="0"+(this.a>>>0).toString(16),t.length-6,t.length):""+SU(this.a&nfI)}break;case 8:e=this==nYb||this==nYw?""+SU(this.a&nfI):"\\"+SU(this.a&nfI);break;default:e=null}return e},nTm.a=0,AY(nEj,"RegEx/Token/CharToken",223),nrr(309,117,nED,R0),nTm.am=function(n){return this.a},nTm.cm=function(n){this.b=n},nTm.dm=function(n){this.c=n},nTm.em=function(){return 1},nTm.fm=function(n){var t;if(3==this.e){if(this.c<0&&this.b<0)t=this.a.fm(n)+"*";else if(this.c==this.b)t=this.a.fm(n)+"{"+this.c+"}";else if(this.c>=0&&this.b>=0)t=this.a.fm(n)+"{"+this.c+","+this.b+"}";else if(this.c>=0&&this.b<0)t=this.a.fm(n)+"{"+this.c+",}";else throw new d7("Token#toString(): CLOSURE "+this.c+nhC+this.b).e}else if(this.c<0&&this.b<0)t=this.a.fm(n)+"*?";else if(this.c==this.b)t=this.a.fm(n)+"{"+this.c+"}?";else if(this.c>=0&&this.b>=0)t=this.a.fm(n)+"{"+this.c+","+this.b+"}?";else if(this.c>=0&&this.b<0)t=this.a.fm(n)+"{"+this.c+",}?";else throw new d7("Token#toString(): NONGREEDYCLOSURE "+this.c+nhC+this.b).e;return t},nTm.b=0,nTm.c=0,AY(nEj,"RegEx/Token/ClosureToken",309),nrr(821,117,nED,AL),nTm.am=function(n){return 0==n?this.a:this.b},nTm.em=function(){return 2},nTm.fm=function(n){return 3==this.b.e&&this.b.am(0)==this.a?this.a.fm(n)+"+":9==this.b.e&&this.b.am(0)==this.a?this.a.fm(n)+"+?":this.a.fm(n)+""+this.b.fm(n)},AY(nEj,"RegEx/Token/ConcatToken",821),nrr(1822,117,nED,B0),nTm.am=function(n){if(0==n)return this.d;if(1==n)return this.b;throw new d7("Internal Error: "+n).e},nTm.em=function(){return this.b?2:1},nTm.fm=function(n){var t;return t=this.c>0?"(?("+this.c+")":8==this.a.e?"(?("+this.a+")":"(?"+this.a,this.b?t+=this.d+"|"+this.b+")":t+=this.d+")",t},nTm.c=0,AY(nEj,"RegEx/Token/ConditionToken",1822),nrr(1823,117,nED,Dp),nTm.am=function(n){return this.b},nTm.em=function(){return 1},nTm.fm=function(n){return"(?"+(0==this.a?"":ncE(this.a))+(0==this.c?"":ncE(this.c))+":"+this.b.fm(n)+")"},nTm.a=0,nTm.c=0,AY(nEj,"RegEx/Token/ModifierToken",1823),nrr(822,117,nED,$j),nTm.am=function(n){return this.a},nTm.em=function(){return 1},nTm.fm=function(n){var t;switch(t=null,this.e){case 6:t=0==this.b?"(?:"+this.a.fm(n)+")":"("+this.a.fm(n)+")";break;case 20:t="(?="+this.a.fm(n)+")";break;case 21:t="(?!"+this.a.fm(n)+")";break;case 22:t="(?<="+this.a.fm(n)+")";break;case 23:t="(?<!"+this.a.fm(n)+")";break;case 24:t="(?>"+this.a.fm(n)+")"}return t},nTm.b=0,AY(nEj,"RegEx/Token/ParenToken",822),nrr(521,117,{3:1,117:1,521:1},NF),nTm.bm=function(){return this.b},nTm.fm=function(n){return 12==this.e?"\\"+this.a:function(n){var t,e,i,r;for(i=0,r=n.length,t=null;i<r;i++)x5(i,n.length),jZ(".*+?{[()|\\^$",ntd(e=n.charCodeAt(i)))>=0?(!t&&(t=new gU,i>0&&jT(t,n.substr(0,i))),t.a+="\\",$i(t,e&nfI)):t&&$i(t,e&nfI);return t?t.a:n}(this.b)},nTm.a=0,AY(nEj,"RegEx/Token/StringToken",521),nrr(465,117,nED,EO),nTm.$l=function(n){nox(this,n)},nTm.am=function(n){return Im($O(this.a,n),117)},nTm.em=function(){return this.a?this.a.a.c.length:0},nTm.fm=function(n){var t,e,i,r,c;if(1==this.e){if(2==this.a.a.c.length)t=Im($O(this.a,0),117),r=3==(e=Im($O(this.a,1),117)).e&&e.am(0)==t?t.fm(n)+"+":9==e.e&&e.am(0)==t?t.fm(n)+"+?":t.fm(n)+""+e.fm(n);else{for(i=0,c=new gz;i<this.a.a.c.length;i++)jT(c,Im($O(this.a,i),117).fm(n));r=c.a}return r}if(2==this.a.a.c.length&&7==Im($O(this.a,1),117).e)r=Im($O(this.a,0),117).fm(n)+"?";else if(2==this.a.a.c.length&&7==Im($O(this.a,0),117).e)r=Im($O(this.a,1),117).fm(n)+"??";else{for(jT(c=new gz,Im($O(this.a,0),117).fm(n)),i=1;i<this.a.a.c.length;i++)c.a+="|",jT(c,Im($O(this.a,i),117).fm(n));r=c.a}return r},AY(nEj,"RegEx/Token/UnionToken",465),nrr(518,1,{592:1},p1),nTm.Ib=function(){return this.a.b},AY(nER,"XMLTypeUtil/PatternMatcherImpl",518),nrr(1622,1381,{},sn),AY(nER,"XMLTypeValidator",1622),nrr(264,1,nh5,OP),nTm.Jc=function(n){KA(this,n)},nTm.Kc=function(){return(this.b-this.a)*this.c<0?nhm:new TA(this)},nTm.a=0,nTm.b=0,nTm.c=0,AY(nEF,"ExclusiveRange",264),nrr(1068,1,nhX,st),nTm.Rb=function(n){Im(n,19),function(){throw new gM(nE_).e}()},nTm.Nb=function(n){Ao(this,n)},nTm.Pb=function(){return function(){throw(new wO).e}()},nTm.Ub=function(){return function(){throw(new wO).e}()},nTm.Wb=function(n){Im(n,19),function(){throw new gM(nEB).e}()},nTm.Ob=function(){return!1},nTm.Sb=function(){return!1},nTm.Tb=function(){return -1},nTm.Vb=function(){return -1},nTm.Qb=function(){throw new gM(nEH).e},AY(nEF,"ExclusiveRange/1",1068),nrr(254,1,nhX,TA),nTm.Rb=function(n){Im(n,19),function(){throw new gM(nE_).e}()},nTm.Nb=function(n){Ao(this,n)},nTm.Pb=function(){return function(n){var t;if(!(n.c.c<0?n.a>=n.c.b:n.a<=n.c.b))throw(new wO).e;return t=n.a,n.a+=n.c.c,++n.b,Va(t)}(this)},nTm.Ub=function(){return function(n){if(n.b<=0)throw(new wO).e;return--n.b,n.a-=n.c.c,Va(n.a)}(this)},nTm.Wb=function(n){Im(n,19),function(){throw new gM(nEB).e}()},nTm.Ob=function(){return this.c.c<0?this.a>=this.c.b:this.a<=this.c.b},nTm.Sb=function(){return this.b>0},nTm.Tb=function(){return this.b},nTm.Vb=function(){return this.b-1},nTm.Qb=function(){throw new gM(nEH).e},nTm.a=0,nTm.b=0,AY(nEF,"ExclusiveRange/RangeIterator",254);var nY$=$H(nje,"C"),nYL=$H(njc,"I"),nYN=$H(nhk,"Z"),nYx=$H(nja,"J"),nYD=$H(njt,"B"),nYR=$H(nji,"D"),nYK=$H(njr,"F"),nYF=$H(nju,"S"),nY_=Cw("org.eclipse.elk.core.labels","ILabelManager"),nYB=Cw(nyR,"DiagnosticChain"),nYH=Cw(njK,"ResourceSet"),nYq=AY(nyR,"InvocationTargetException",null),nYG=(g0(),function(n){return g0(),function(){return function(n,t,e){var i,r;0!=nE8&&(r=Date.now?Date.now():(new Date).getTime())-nE9>2e3&&(nE9=r,nE7=nTv.setTimeout(p4,10)),i=0==nE8++&&(function(n){var t,e;if(n.a){e=null;do t=n.a,n.a=null,e=neb(t,e);while(n.a)n.a=e}}((gL(),nTD)),!0);try{return n.apply(t,e)}finally{(function(n){if(n&&function(n){var t,e;if(n.b){e=null;do t=n.b,n.b=null,e=neb(t,e);while(n.b)n.b=e}}((gL(),nTD)),--nE8,n&&-1!=nE7){var t;t=nE7,nTv.clearTimeout(t),nE7=-1}})(i)}}(n,this,arguments)}}),nYz=nYz=function(n,t,e,i){p5();var r=nTk;function c(){for(var n=0;n<r.length;n++)r[n]()}if(n)try{nYG(c)()}catch(e){n(t,e)}else nYG(c)()};(function(){p5();for(var n=nTk,t=0;t<arguments.length;t++)n.push(arguments[t])})(function(){pm(),function(){function n(n){var t=this;this.dispatch=function(t){var e,i,r,c,a,u,o,h,f,l,b,w,d,g,p,v,m,y=t.data;switch(y.cmd){case"algorithms":var k=Qm((LV(),new hW(new hD(nVQ.b))));n.postMessage({id:y.id,data:k});break;case"categories":var j=Qm((LV(),new hW(new hD(nVQ.c))));n.postMessage({id:y.id,data:j});break;case"options":var E=Qm((LV(),new hW(new hD(nVQ.d))));n.postMessage({id:y.id,data:E});break;case"register":(function(n){var t,e,i;for(XA(nVQ,Um(xg(nSa,1),nhA,130,0,[new sW])),e=new hP(n),i=0;i<e.a.length;++i)Pv(t=BQ(e,i).je().a,"layered")?XA(nVQ,Um(xg(nSa,1),nhA,130,0,[new sT])):Pv(t,"force")?XA(nVQ,Um(xg(nSa,1),nhA,130,0,[new sa])):Pv(t,"stress")?XA(nVQ,Um(xg(nSa,1),nhA,130,0,[new so])):Pv(t,"mrtree")?XA(nVQ,Um(xg(nSa,1),nhA,130,0,[new sB])):Pv(t,"radial")?XA(nVQ,Um(xg(nSa,1),nhA,130,0,[new sN])):Pv(t,"disco")?XA(nVQ,Um(xg(nSa,1),nhA,130,0,[new sc,new si])):Pv(t,"sporeOverlap")||Pv(t,"sporeCompaction")?XA(nVQ,Um(xg(nSa,1),nhA,130,0,[new sK])):Pv(t,"rectpacking")&&XA(nVQ,Um(xg(nSa,1),nhA,130,0,[new sG]))})(y.algorithms),n.postMessage({id:y.id});break;case"layout":e=y.graph,i=y.layoutOptions||{},r=y.options||{},a=new hO(e),KF((u=new Z0).g),KF(u.j),AT(u.b),KF(u.d),KF(u.i),AT(u.k),AT(u.c),AT(u.e),w=function n(t,e,i){var r,c,a,u,o,s,h,f,l,b,w;return pw(),r=new dg,i&&ncc(r,i),u=Jo(e),naG(t.g,u,r),naG(t.i,r,e),q6(r,Rs(e,nyF)),nti(e,r),(b=Ro(e,"individualSpacings"))&&(_u(r,(nha(),nXp))||(h=new az,Yu(r,nXp,h)),l=Im(nrM(r,nXp),373),f=null,b&&(w=GI(b,_f(nTh,nhJ,2,0,6,1)),f=new vy(b,w)),f&&KA(f,new kJ(b,l))),ne0(e,r),c=Ra(e,"ports"),function(n,t,e){var i,r,c,a,u;if(e)for(c=((i=new OP(e.a.length)).b-i.a)*i.c<0?(my(),nhm):new TA(i);c.Ob();)(r=Ru(e,Im(c.Pb(),19).a))&&(q6(a=function(n,t,e){var i;return i=Jo(e),naG(n.j,i,t),$J(n.k,t,e),t}(n,(pw(),u=new dp,t&&nr9(u,t),u),r),Rs(r,nyF)),nti(r,a),ne0(r,a),Xc(n,r,a))}((a=new kZ(t,r)).a,a.b,c),Xc(t,e,r),s=Ra(e,nyP),function(t,e,i){var r,c,a;if(i)for(a=((r=new OP(i.a.length)).b-r.a)*r.c<0?(my(),nhm):new TA(r);a.Ob();)(c=Ru(i,Im(a.Pb(),19).a))&&n(t,c,e)}((o=new kH(t,r)).a,o.b,s),r}(u,a,null),function n(t,e){var i,r,c,a;if(!(a=Im(Gs(A6(t.i),e),33)))throw new gS("Unable to find elk node for json object '"+Rs(e,nyF)+"' Panic!").e;r=Ra(e,"edges"),function(n,t,e){var i,r,c,a;if(e)for(c=((i=new OP(e.a.length)).b-i.a)*i.c<0?(my(),nhm):new TA(i);c.Ob();)nyC in(r=Ru(e,Im(c.Pb(),19).a)).a||nyO in r.a?function(n,t,e){var i,r,c,a,u;if(q6(u=Rq(n,Rx(e),t),Rs(t,nyF)),c=Ra(t,nyC),function(n,t,e){var i,r,c;if(e)for(r=((i=new OP(e.a.length)).b-i.a)*i.c<0?(my(),nhm):new TA(i);r.Ob();)(c=Y8(n,nil(BQ(e,Im(r.Pb(),19).a))))&&(t.b||(t.b=new Ph(nCA,t,4,7)),_P(t.b,c))}((i=new kG(n,u)).a,i.b,c),a=Ra(t,nyO),function(n,t,e){var i,r,c;if(e)for(r=((i=new OP(e.a.length)).b-i.a)*i.c<0?(my(),nhm):new TA(i);r.Ob();)(c=Y8(n,nil(BQ(e,Im(r.Pb(),19).a))))&&(t.c||(t.c=new Ph(nCA,t,5,8)),_P(t.c,c))}((r=new kz(n,u)).a,r.b,a),0==(u.b||(u.b=new Ph(nCA,u,4,7)),u.b).i||0==(u.c||(u.c=new Ph(nCA,u,5,8)),u.c).i)throw new gS(nyq+Rs(t,nyF)+"').").e;return nti(t,u),function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(s=new NK,h=new NK,r=Ra(t,nyA),function(n,t,e,i,r){var c,a,u,o;if(r)for(o=((c=new OP(r.a.length)).b-c.a)*c.c<0?(my(),nhm):new TA(c);o.Ob();)u=Ru(r,Im(o.Pb(),19).a),function(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;g=UA(t),p=Jo(r),naG(n.d,p,g),$J(n.e,g,r),Gd(g,Rs(r,nyF)),b=Ro(r,nyH),function(n,t){var e,i;if(t)e=qy(t,"x"),ql(new bf(n).a,($x(e),e)),i=qy(t,"y"),qw(new bl(n).a,($x(i),i));else throw new gS("All edge sections need a start point.").e}(new bs(g).a,b),w=Ro(r,"endPoint"),function(n,t){var e,i;if(t)e=qy(t,"x"),qu(new bw(n).a,($x(e),e)),i=qy(t,"y"),qb(new bd(n).a,($x(i),i));else throw new gS("All edge sections need an end point.").e}(new bb(g).a,w),d=Ra(r,ny$),function(n,t){var e,i,r;if(t)for(r=((e=new OP(t.a.length)).b-e.a)*e.c<0?(my(),nhm):new TA(e);r.Ob();)i=Ru(t,Im(r.Pb(),19).a),VN(new bp(n).a,gy(qy(i,"x")),gy(qy(i,"y")))}(new bg(g).a,d),f=Rs(r,nyN),v=(c=new kU(n,g)).a,m=c.b,null!=f&&q8(m,Y8(v,f)),l=Rs(r,nyL),y=(a=new kX(n,g)).a,k=a.b,null!=l&&q9(k,Y8(y,l)),s=Ra(r,nyD),function(n,t,e){var i,r;if(e)for(r=((i=new OP(e.a.length)).b-i.a)*i.c<0?(my(),nhm):new TA(i);r.Ob();)niP(n,t,nil(BQ(e,Im(r.Pb(),19).a)))}((u=new kW(e,g)).b,u.a,s),h=Ra(r,nyx),function(n,t,e){var i,r;if(e)for(r=((i=new OP(e.a.length)).b-i.a)*i.c<0?(my(),nhm):new TA(i);r.Ob();)niP(n,t,nil(BQ(e,Im(r.Pb(),19).a)))}((o=new kV(i,g)).b,o.a,h)}((a=new LL(n,t,e,i)).a,a.b,a.c,a.d,u)}((i=new LN(n,e,s,h)).a,i.b,i.c,i.d,r),b=(s.i||(s.i=new TS(s,s.c))).Kc();b.Ob();)for(l=Im(b.Pb(),202),a=Im(Fl(s,l),21).Kc();a.Ob();)if(c=a.Pb(),f=Im(H3(n.d,c),202))l.e||(l.e=new Ph(nCL,l,10,9)),_P(l.e,f);else throw new gS(nyG+c+nyz+Rs(t,nyF)+"').").e;for(d=(h.i||(h.i=new TS(h,h.c))).Kc();d.Ob();)for(w=Im(d.Pb(),202),o=Im(Fl(h,w),21).Kc();o.Ob();)if(u=o.Pb(),f=Im(H3(n.d,u),202))w.g||(w.g=new Ph(nCL,w,9,10)),_P(w.g,f);else throw new gS(nyG+u+nyz+Rs(t,nyF)+"').").e;e.b||(e.b=new Ph(nCA,e,4,7)),0!=e.b.i&&(e.c||(e.c=new Ph(nCA,e,5,8)),0!=e.c.i)&&(e.b||(e.b=new Ph(nCA,e,4,7)),e.b.i<=1&&(e.c||(e.c=new Ph(nCA,e,5,8)),e.c.i<=1))&&1==(e.a||(e.a=new An(nCL,e,6,6)),e.a).i&&!YS(g=Im(HX((e.a||(e.a=new An(nCL,e,6,6)),e.a),0),202))&&!YP(g)&&(q8(g,Im(HX((e.b||(e.b=new Ph(nCA,e,4,7)),e.b),0),82)),q9(g,Im(HX((e.c||(e.c=new Ph(nCA,e,5,8)),e.c),0),82)))}(n,t,u),Xc(n,t,u)}(n,r,t):function(n,t,e){var i,r,c,a,u,o,s,h,f;if(q6(u=Rq(n,Rx(e),t),Rs(t,nyF)),o=Im(H3(n.g,nil(N5(t,nyy))),33),c=N5(t,"sourcePort"),i=null,c&&(i=nil(c)),s=Im(H3(n.j,i),118),!o)throw new gS("An edge must have a source node (edge id: '"+Jo(t)+"').").e;if(s&&!$A(N8(s),o))throw new gS("The source port of an edge must be a port of the edge's source node (edge id: '"+Rs(t,nyF)+"').").e;if(u.b||(u.b=new Ph(nCA,u,4,7)),_P(u.b,s||o),h=Im(H3(n.g,nil(N5(t,nyU))),33),a=N5(t,"targetPort"),r=null,a&&(r=nil(a)),f=Im(H3(n.j,r),118),!h)throw new gS("An edge must have a target node (edge id: '"+Jo(t)+"').").e;if(f&&!$A(N8(f),h))throw new gS("The target port of an edge must be a port of the edge's target node (edge id: '"+Rs(t,nyF)+"').").e;if(u.c||(u.c=new Ph(nCA,u,5,8)),_P(u.c,f||h),0==(u.b||(u.b=new Ph(nCA,u,4,7)),u.b).i||0==(u.c||(u.c=new Ph(nCA,u,5,8)),u.c).i)throw new gS(nyq+Rs(t,nyF)+"').").e;return nti(t,u),function(n,t){var e,i,r,c,a,u,o,s,h,f,l;(nyX in n.a||nyW in n.a||ny$ in n.a)&&(a=UA(t),i=Ro(n,nyX),u=new bv(a).a,i&&(o=qy(i,"x"),ql(new bM(u).a,($x(o),o)),s=qy(i,"y"),qw(new bP(u).a,($x(s),s))),r=Ro(n,nyW),h=new bI(a).a,r&&(f=qy(r,"x"),qu(new bC(h).a,($x(f),f)),l=qy(r,"y"),qb(new bO(h).a,($x(l),l))),e=Ra(n,ny$),function(n,t){var e,i,r;if(t)for(r=((e=new OP(t.a.length)).b-e.a)*e.c<0?(my(),nhm):new TA(e);r.Ob();)i=Ru(t,Im(r.Pb(),19).a),VN(new bo(n).a,gy(qy(i,"x")),gy(qy(i,"y")))}(new bA(a).a,e))}(t,u),Xc(n,t,u)}(n,r,t),Nk(a=Im($a(n.b,Jo(r)),79),nyY),nr7(a,function(n){var t,e,i,r,c;switch(Nk(n,nyY),(n.b||(n.b=new Ph(nCA,n,4,7)),n.b).i+(n.c||(n.c=new Ph(nCA,n,5,8)),n.c).i){case 0:throw new gd("The edge must have at least one source or target.").e;case 1:return 0==(n.b||(n.b=new Ph(nCA,n,4,7)),n.b).i?xt(ntr(Im(HX((n.c||(n.c=new Ph(nCA,n,5,8)),n.c),0),82))):xt(ntr(Im(HX((n.b||(n.b=new Ph(nCA,n,4,7)),n.b),0),82)))}if(1==(n.b||(n.b=new Ph(nCA,n,4,7)),n.b).i&&1==(n.c||(n.c=new Ph(nCA,n,5,8)),n.c).i){if(r=ntr(Im(HX((n.b||(n.b=new Ph(nCA,n,4,7)),n.b),0),82)),c=ntr(Im(HX((n.c||(n.c=new Ph(nCA,n,5,8)),n.c),0),82)),xt(r)==xt(c))return xt(r);if(r==xt(c))return r;if(c==xt(r))return c}for(t=ntr(Im(K4(i=AS(qO(Um(xg(nEJ,1),nhA,20,0,[(n.b||(n.b=new Ph(nCA,n,4,7)),n.b),(n.c||(n.c=new Ph(nCA,n,5,8)),n.c)])))),82));nrc(i);)if((e=ntr(Im(K4(i),82)))!=t&&!HD(e,t)){if(xt(e)==xt(t))t=xt(e);else if(!(t=function(n,t){var e,i,r,c,a,u;for(a=new Rn(i=Iy(new bF(n)),i.c.length),u=new Rn(r=Iy(new bF(t)),r.c.length),c=null;a.b>0&&u.b>0;)if(MK(a.b>0),e=Im(a.a.Xb(a.c=--a.b),33),MK(u.b>0),e==Im(u.a.Xb(u.c=--u.b),33))c=e;else break;return c}(t,e)))return null}return t}(a))}((i=new kq(t,a)).a,i.b,r),c=Ra(e,nyP),function(t,e){var i,r,c;if(e)for(c=((i=new OP(e.a.length)).b-i.a)*i.c<0?(my(),nhm):new TA(i);c.Ob();)(r=Ru(e,Im(c.Pb(),19).a))&&n(t,r)}(new bh(t).a,c)}(u,a),i&&(o=function(n){var t,e,i,r,c,a,u,o,s;for(o=c=new DO,UM(),s=nzg,IE(o.c,s),r=GI(n,_f(nTh,nhJ,2,0,6,1)),i=new h$(new gE(new vy(n,r).b));i.b<i.d.gc();)MK(i.b<i.d.gc()),e=Sh(i.d.Xb(i.c=i.b++)),(a=no7(nVQ,e))&&null!=(u=noY(a,(t=N5(n,e)).je()?t.je().a:t.ge()?""+t.ge().a:t.he()?""+t.he().a:t.Ib()))&&((T8(a.j,(JH(),nzT))||T8(a.j,nzM))&&Uz(Hb(c,nCF),a,u),T8(a.j,nzj)&&Uz(Hb(c,nC$),a,u),T8(a.j,nzS)&&Uz(Hb(c,nC_),a,u),T8(a.j,nzE)&&Uz(Hb(c,nCK),a,u));return c}(f=new hO(i)),nt2(w,Um(xg(nCn,1),nhA,527,0,[o]))),b=!1,l=!1,r&&(ny8 in(f=new hO(r)).a&&(b=N5(f,ny8).ge().a),ny9 in f.a&&(l=N5(f,ny9).ge().a)),d=qj(new dB,b),g=l,d.k=g,p=new ai,v=w,ntc(m=d,"Recursive Graph Layout",function n(t,e,i){var r,c,a,u;for(a=(e.a||(e.a=new An(nCF,e,10,11)),e.a).i,c=new Td((e.a||(e.a=new An(nCF,e,10,11)),e.a));c.e!=c.i.gc();)0==((r=Im(J1(c),33)).a||(r.a=new An(nCF,r,10,11)),r.a).i||(a+=n(t,r,!1));if(i)for(u=xt(e);u;)a+=(u.a||(u.a=new An(nCF,u,10,11)),u.a).i,u=xt(u);return a}(p,v,!0)),nt2(v,Um(xg(nCn,1),nhA,527,0,[new sU])),_u(v,(nha(),nXo))||nt2(v,Um(xg(nCn,1),nhA,527,0,[new ah])),function n(t,e,i,r){var c,a,u,o,h,f,l,b,w,d,g,p,v,m,y;if(gm(So(nrM(e,(nha(),nUG))))||(h=0!=(e.a||(e.a=new An(nCF,e,10,11)),e.a).i,f=!(l=function(n){var t,e,i;if(!gm(So(nrM(n,(nha(),nUM)))))return LV(),LV(),nMv;for(i=new wn,e=new OM(TD(nrZ(n).a.Kc(),new s));nrc(e);)niM(t=Im(K4(e),79))&&gm(So(nrM(t,nUS)))&&(i.c[i.c.length]=t);return i}(e)).dc(),!h&&!f))return LV(),LV(),nMv;if(!(c=Im(nrM(e,nXo),149)))throw new gI("Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.").e;if(nrt(),v=nVq,p=T8(c.g,v),JP(e),!h&&f&&!p)return LV(),LV(),nMv;if(o=new wn,jf(nrM(e,nUj))===jf((WL(),nX2))&&(m=nV_,T8(c.g,m)||(y=nVF,T8(c.g,y))))for(w=function n(t,e){var i,r,c,a,u;for(a=(e.a||(e.a=new An(nCF,e,10,11)),e.a).i,c=new Td((e.a||(e.a=new An(nCF,e,10,11)),e.a));c.e!=c.i.gc();)jf(nrM(r=Im(J1(c),33),(nha(),nUj)))!==jf((WL(),nX4))&&((u=Im(nrM(e,nXo),149))==(i=Im(nrM(r,nXo),149))||u&&KU(u,i))&&0!=(r.a||(r.a=new An(nCF,r,10,11)),r.a).i&&(a+=n(t,r));return a}(t,e),Gz(d=new vK,(e.a||(e.a=new An(nCF,e,10,11)),e.a));0!=d.b;)JP(b=Im(0==d.b?null:(MK(0!=d.b),HK(d,d.a.a)),33)),jf(nrM(b,nUj))===jf(nX4)||_u(b,nUt)&&!KU(c,nrM(b,nXo))?(Uf(o,n(t,b,i,r)),Yu(b,nUj,nX4),na0(b)):Gz(d,(b.a||(b.a=new An(nCF,b,10,11)),b.a));else for(w=(e.a||(e.a=new An(nCF,e,10,11)),e.a).i,u=new Td((e.a||(e.a=new An(nCF,e,10,11)),e.a));u.e!=u.i.gc();)Uf(o,n(t,a=Im(J1(u),33),i,r)),na0(a);for(g=new h1(o);g.a<g.c.c.length;)Yu(Im(De(g),79),nUG,(TX(),!0));return function(n,t,e){var i,r;i=Im(N$(t.f),209);try{i.Ze(n,e),(r=t.f).c<0||r.b.b<r.c?jO(r.b,i):r.a._e(i)}catch(n){throw Ti(n=Uu(n),102),n.e}}(e,c,zt(r,w)),function(n){var t,e,i,r,c,a,u,o;for(a=new h1(n);a.a<a.c.c.length;){for(c=Im(De(a),79),u=(i=ntr(Im(HX((c.b||(c.b=new Ph(nCA,c,4,7)),c.b),0),82))).i,o=i.j,Eb(r=Im(HX((c.a||(c.a=new An(nCL,c,6,6)),c.a),0),202),r.j+u,r.k+o),El(r,r.b+u,r.c+o),e=new Td((r.a||(r.a=new Tg(nCI,r,5)),r.a));e.e!=e.i.gc();)Es(t=Im(J1(e),469),t.a+u,t.b+o);GZ(Im(nrM(c,(nha(),nUC)),74),u,o)}}(o),f&&p?l:(LV(),LV(),nMv)}(p,v,null,m),nee(m),ny8 in a.a&&Hy(a,ny8,null),(b||l)&&(function n(t,e,i,r){var c,a,u,o,s,h,f,l;if(Hy(e,nyQ,new $h(t.p)),i&&!(t.f?Nt(t.f):null).a.dc())for(Hy(e,"logs",h=new hA),o=0,l=new hV((t.f?Nt(t.f):null).b.Kc());l.b.Ob();)f=new $h(Sh(l.b.Pb())),BQ(h,o),RV(h,o,f),++o;if(r&&Hy(e,"executionTime",new hC(t.q)),!Nt(t.a).a.dc())for(Hy(e,nyP,u=new hA),o=0,a=new hV(Nt(t.a).b.Kc());a.b.Ob();)c=Im(a.b.Pb(),1949),s=new gt,BQ(u,o),RV(u,o,s),n(c,s,i,r),++o}(d,h=new gt,b,l),Hy(a,ny8,h)),c=new bE(u),function(n,t){for(;null!=n.g||n.c?null==n.g||0!=n.i&&Im(n.g[n.i-1],47).Ob():xr(n);){var e;e=nrV(n),function(n,t){var e,i;if(Ti(t,239))return function(n,t){var e;if(null==(e=H3(n.i,t)))throw new gS("Node did not exist in input.").e;zb(t,e)}(n,Im(t,33));if(Ti(t,186))return function(n,t){var e;if(null==(e=$a(n.k,t)))throw new gS("Port did not exist in input.").e;zb(t,e)}(n,Im(t,118));if(Ti(t,354))e=Im(t,137),i=$a(n.f,e),zb(e,i);else{if(Ti(t,352))return function(n,t){var e,i,r,c,a,u;if(!(a=Im($a(n.c,t),183)))throw new gS("Edge did not exist in input.").e;i=Jo(a),p2((t.a||(t.a=new An(nCL,t,6,6)),t.a))||(e=new Ic(n,i,u=new hA),t.a||(t.a=new An(nCL,t,6,6)),function(n,t){var e,i,r;for(e=0;n.e!=n.i.gc();)i=J1(n),r=Va(e),function(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w;null==(l=$a(n.e,i))&&Hy(Im(l=new gt,183),nyF,new $h(t+"_s"+r)),$v(e,f=Im(l,183)),L1(w=new gt,"x",i.j),L1(w,"y",i.k),Hy(f,nyH,w),L1(s=new gt,"x",i.b),L1(s,"y",i.c),Hy(f,"endPoint",s),p2((i.a||(i.a=new Tg(nCI,i,5)),i.a))||(c=new bT(o=new hA),KA((i.a||(i.a=new Tg(nCI,i,5)),i.a),c),Hy(f,ny$,o)),YS(i)&&ntm(n.a,f,nyN,neA(n,YS(i))),YP(i)&&ntm(n.a,f,nyL,neA(n,YP(i))),0!=(i.e||(i.e=new Ph(nCL,i,10,9)),i.e).i&&(a=new k5(n,h=new hA),KA((i.e||(i.e=new Ph(nCL,i,10,9)),i.e),a),Hy(f,nyD,h)),0!=(i.g||(i.g=new Ph(nCL,i,9,10)),i.g).i&&(u=new k6(n,b=new hA),KA((i.g||(i.g=new Ph(nCL,i,9,10)),i.g),u),Hy(f,nyx,b))}(t.a,t.b,t.c,Im(i,202),r),e!=nhM&&++e}(new Td(t.a),e),Hy(a,nyA,u)),_u(t,(nha(),nUC))&&!(!(r=Im(nrM(t,nUC),74))||$$(r))&&(KA(r,new bS(c=new hA)),Hy(a,"junctionPoints",c)),IY(a,"container",N6(t).k)}(n,Im(t,79));if(t)return;throw new gd(nyB+ntK(new gE(Um(xg(nEX,1),nhA,1,5,[t])))).e}}(t.a,Im(e,56))}}(new Ed(w),c),n.postMessage({id:y.id,data:y.graph})}},this.saveDispatch=function(e){try{t.dispatch(e)}catch(t){n.postMessage({id:e.data.id,error:t})}}}function e(t){var e=this;this.dispatcher=new n({postMessage:function(n){e.onmessage({data:n})}}),this.postMessage=function(n){setTimeout(function(){e.dispatcher.saveDispatch({data:n})},0)}}if(pm(),typeof document===nlK&&typeof self!==nlK){var r=new n(self);self.onmessage=r.saveDispatch}else typeof t!==nlK&&t.exports&&(Object.defineProperty(i,"__esModule",{value:!0}),t.exports={default:e,Worker:e})}()}),nhp=[[[nEq,nEG],[nEz,"gecko1_8"]],[[nEq,nEG],[nEz,"ie10"]],[[nEq,nEG],[nEz,"ie8"]],[[nEq,nEG],[nEz,"ie9"]],[[nEq,nEG],[nEz,"safari"]]],typeof window===nhy&&typeof window.$gwt===nhy&&(window.$gwt.permProps=nhp),nYz(null,"elk",null)}).call(this)}).call(this,void 0!==e.g?e.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],3:[function(n,t,e){"use strict";var i=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(n,t){if(!(n instanceof t))throw TypeError("Cannot call a class as a function")}(this,e);var i=Object.assign({},t),r=!1;try{n.resolve("web-worker"),r=!0}catch(n){}if(t.workerUrl){if(r){var c=n("web-worker");i.workerFactory=function(n){return new c(n)}}else console.warn("Web worker requested but 'web-worker' package not installed. \nConsider installing the package or pass your own 'workerFactory' to ELK's constructor.\n... Falling back to non-web worker version.")}if(!i.workerFactory){var a=n("./elk-worker.min.js").Worker;i.workerFactory=function(n){return new a(n)}}return function(n,t){if(!n)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t&&("object"==typeof t||"function"==typeof t)?t:n}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,i))}return function(n,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function, not "+typeof t);n.prototype=Object.create(t&&t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(n,t):n.__proto__=t)}(e,t),e}(n("./elk-api.js").default);Object.defineProperty(t.exports,"__esModule",{value:!0}),t.exports=i,i.default=i},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(n,t,e){t.exports=Worker},{}]},{},[3])(3)},n.exports=i()},88882:(n,t,e)=>{"use strict";e.d(t,{diagram:()=>S});var i=e(60972),r=e(93126),c=e(24053),a=e(17367),u=e(33838);e(95285),e(31546),e(31234);let o=(n,t,e)=>{let{parentById:i}=e,r=new Set,c=n;for(;c;){if(r.add(c),c===t)return c;c=i[c]}for(c=t;c;){if(r.has(c))return c;c=i[c]}return"root"},s=new u,h={},f={},l={},b=async function(n,t,e,i,r,u,o){let s=e.select(`[id="${t}"]`).insert("g").attr("class","nodes"),h=Object.keys(n);return await Promise.all(h.map(async function(t){let e,o;let h=n[t],f="default";h.classes.length>0&&(f=h.classes.join(" ")),f+=" flowchart-label";let b=(0,a.k)(h.styles),w=void 0!==h.text?h.text:h.id,d={width:0,height:0},g=[{id:h.id+"-west",layoutOptions:{"port.side":"WEST"}},{id:h.id+"-east",layoutOptions:{"port.side":"EAST"}},{id:h.id+"-south",layoutOptions:{"port.side":"SOUTH"}},{id:h.id+"-north",layoutOptions:{"port.side":"NORTH"}}],p=0,v="",m={};switch(h.type){case"round":p=5,v="rect";break;case"square":case"group":default:v="rect";break;case"diamond":v="question",m={portConstraints:"FIXED_SIDE"};break;case"hexagon":v="hexagon";break;case"odd":case"odd_right":v="rect_left_inv_arrow";break;case"lean_right":v="lean_right";break;case"lean_left":v="lean_left";break;case"trapezoid":v="trapezoid";break;case"inv_trapezoid":v="inv_trapezoid";break;case"circle":v="circle";break;case"ellipse":v="ellipse";break;case"stadium":v="stadium";break;case"subroutine":v="subroutine";break;case"cylinder":v="cylinder";break;case"doublecircle":v="doublecircle"}let y={labelStyle:b.labelStyle,shape:v,labelText:w,labelType:h.labelType,rx:p,ry:p,class:f,style:b.style,id:h.id,link:h.link,linkTarget:h.linkTarget,tooltip:r.db.getTooltip(h.id)||"",domId:r.db.lookUpDomId(h.id),haveCallback:h.haveCallback,width:"group"===h.type?500:void 0,dir:h.dir,type:h.type,props:h.props,padding:(0,a.c)().flowchart.padding};if("group"!==y.type)e=(o=await (0,c.e)(s,y,h.dir)).node().getBBox();else{i.createElementNS("http://www.w3.org/2000/svg","text");let{shapeSvg:n,bbox:t}=await (0,c.l)(s,y,void 0,!0);d.width=t.width,d.wrappingWidth=(0,a.c)().flowchart.wrappingWidth,d.height=t.height,d.labelNode=n.node(),y.labelData=d}let k={id:h.id,ports:"diamond"===h.type?g:[],layoutOptions:m,labelText:w,labelData:d,domId:r.db.lookUpDomId(h.id),width:null==e?void 0:e.width,height:null==e?void 0:e.height,type:h.type,el:o,parent:u.parentById[h.id]};l[y.id]=k})),o},w=(n,t,e)=>{let i={TB:{in:{north:"north"},out:{south:"west",west:"east",east:"south"}},LR:{in:{west:"west"},out:{east:"south",south:"north",north:"east"}},RL:{in:{east:"east"},out:{west:"north",north:"south",south:"west"}},BT:{in:{south:"south"},out:{north:"east",east:"west",west:"north"}}};return i.TD=i.TB,a.l.info("abc88",e,t,n),i[e][t][n]},d=(n,t,e)=>{if(a.l.info("getNextPort abc88",{node:n,edgeDirection:t,graphDirection:e}),!h[n])switch(e){case"TB":case"TD":h[n]={inPosition:"north",outPosition:"south"};break;case"BT":h[n]={inPosition:"south",outPosition:"north"};break;case"RL":h[n]={inPosition:"east",outPosition:"west"};break;case"LR":h[n]={inPosition:"west",outPosition:"east"}}let i="in"===t?h[n].inPosition:h[n].outPosition;return"in"===t?h[n].inPosition=w(h[n].inPosition,t,e):h[n].outPosition=w(h[n].outPosition,t,e),i},g=(n,t)=>{let e=n.start,i=n.end,r=e,c=i,a=l[e],u=l[i];return a&&u?("diamond"===a.type&&(e=`${e}-${d(e,"out",t)}`),"diamond"===u.type&&(i=`${i}-${d(i,"in",t)}`),{source:e,target:i,sourceId:r,targetId:c}):{source:e,target:i}},p=function(n,t,e,i){let u,o;a.l.info("abc78 edges = ",n);let s=i.insert("g").attr("class","edgeLabels"),h={},l=t.db.getDirection();if(void 0!==n.defaultStyle){let t=(0,a.k)(n.defaultStyle);u=t.style,o=t.labelStyle}return n.forEach(function(t){let i="L-"+t.start+"-"+t.end;void 0===h[i]?h[i]=0:h[i]++,a.l.info("abc78 new entry",i,h[i]);let b=i+"-"+h[i];a.l.info("abc78 new link id to be used is",i,b,h[i]);let w="LS-"+t.start,d="LE-"+t.end,p={style:"",labelStyle:""};switch(p.minlen=t.length||1,"arrow_open"===t.type?p.arrowhead="none":p.arrowhead="normal",p.arrowTypeStart="arrow_open",p.arrowTypeEnd="arrow_open",t.type){case"double_arrow_cross":p.arrowTypeStart="arrow_cross";case"arrow_cross":p.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":p.arrowTypeStart="arrow_point";case"arrow_point":p.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":p.arrowTypeStart="arrow_circle";case"arrow_circle":p.arrowTypeEnd="arrow_circle"}let v="",m="";switch(t.stroke){case"normal":v="fill:none;",void 0!==u&&(v=u),void 0!==o&&(m=o),p.thickness="normal",p.pattern="solid";break;case"dotted":p.thickness="normal",p.pattern="dotted",p.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":p.thickness="thick",p.pattern="solid",p.style="stroke-width: 3.5px;fill:none;"}if(void 0!==t.style){let n=(0,a.k)(t.style);v=n.style,m=n.labelStyle}p.style=p.style+=v,p.labelStyle=p.labelStyle+=m,void 0!==t.interpolate?p.curve=(0,a.o)(t.interpolate,r.lUB):void 0!==n.defaultInterpolate?p.curve=(0,a.o)(n.defaultInterpolate,r.lUB):p.curve=(0,a.o)(f.curve,r.lUB),void 0===t.text?void 0!==t.style&&(p.arrowheadStyle="fill: #333"):(p.arrowheadStyle="fill: #333",p.labelpos="c"),p.labelType=t.labelType,p.label=t.text.replace(a.e.lineBreakRegex,"\n"),void 0===t.style&&(p.style=p.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),p.labelStyle=p.labelStyle.replace("color:","fill:"),p.id=b,p.classes="flowchart-link "+w+" "+d;let y=(0,c.f)(s,p),{source:k,target:j,sourceId:E,targetId:T}=g(t,l);a.l.debug("abc78 source and target",k,j),e.edges.push({id:"e"+t.start+t.end,sources:[k],targets:[j],sourceId:E,targetId:T,labelEl:y,labels:[{width:p.width,height:p.height,orgWidth:p.width,orgHeight:p.height,text:p.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:p})}),e},v=function(n,t,e,i){let r="";switch(i&&(r=(r=(r=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),t.arrowTypeStart){case"arrow_cross":n.attr("marker-start","url("+r+"#"+e+"-crossStart)");break;case"arrow_point":n.attr("marker-start","url("+r+"#"+e+"-pointStart)");break;case"arrow_barb":n.attr("marker-start","url("+r+"#"+e+"-barbStart)");break;case"arrow_circle":n.attr("marker-start","url("+r+"#"+e+"-circleStart)");break;case"aggregation":n.attr("marker-start","url("+r+"#"+e+"-aggregationStart)");break;case"extension":n.attr("marker-start","url("+r+"#"+e+"-extensionStart)");break;case"composition":n.attr("marker-start","url("+r+"#"+e+"-compositionStart)");break;case"dependency":n.attr("marker-start","url("+r+"#"+e+"-dependencyStart)");break;case"lollipop":n.attr("marker-start","url("+r+"#"+e+"-lollipopStart)")}switch(t.arrowTypeEnd){case"arrow_cross":n.attr("marker-end","url("+r+"#"+e+"-crossEnd)");break;case"arrow_point":n.attr("marker-end","url("+r+"#"+e+"-pointEnd)");break;case"arrow_barb":n.attr("marker-end","url("+r+"#"+e+"-barbEnd)");break;case"arrow_circle":n.attr("marker-end","url("+r+"#"+e+"-circleEnd)");break;case"aggregation":n.attr("marker-end","url("+r+"#"+e+"-aggregationEnd)");break;case"extension":n.attr("marker-end","url("+r+"#"+e+"-extensionEnd)");break;case"composition":n.attr("marker-end","url("+r+"#"+e+"-compositionEnd)");break;case"dependency":n.attr("marker-end","url("+r+"#"+e+"-dependencyEnd)");break;case"lollipop":n.attr("marker-end","url("+r+"#"+e+"-lollipopEnd)")}},m=function(n){let t={parentById:{},childrenById:{}},e=n.getSubGraphs();return a.l.info("Subgraphs - ",e),e.forEach(function(n){n.nodes.forEach(function(e){t.parentById[e]=n.id,void 0===t.childrenById[n.id]&&(t.childrenById[n.id]=[]),t.childrenById[n.id].push(e)})}),e.forEach(function(n){n.id,void 0!==t.parentById[n.id]&&t.parentById[n.id]}),t},y=function(n,t,e){let i=o(n,t,e);if(void 0===i||"root"===i)return{x:0,y:0};let r=l[i].offset;return{x:r.posX,y:r.posY}},k=function(n,t,e,i,c){let a=y(t.sourceId,t.targetId,c),u=t.sections[0].startPoint,o=t.sections[0].endPoint,s=(t.sections[0].bendPoints?t.sections[0].bendPoints:[]).map(n=>[n.x+a.x,n.y+a.y]),h=[[u.x+a.x,u.y+a.y],...s,[o.x+a.x,o.y+a.y]],f=(0,r.n8j)().curve(r.lUB),l=n.insert("path").attr("d",f(h)).attr("class","path "+e.classes).attr("fill","none"),b=n.insert("g").attr("class","edgeLabel"),w=(0,r.Ltv)(b.node().appendChild(t.labelEl)),d=w.node().firstChild.getBoundingClientRect();w.attr("width",d.width),w.attr("height",d.height),b.attr("transform",`translate(${t.labels[0].x+a.x}, ${t.labels[0].y+a.y})`),v(l,e,i.type,i.arrowMarkerAbsolute)},j=(n,t)=>{n.forEach(n=>{n.children||(n.children=[]);let e=t.childrenById[n.id];e&&e.forEach(t=>{n.children.push(l[t])}),j(n.children,t)})},E=async function(n,t,e,i){var u;let o,f;l={},h={};let w=(0,r.Ltv)("body").append("div").attr("style","height:400px").attr("id","cy"),d={id:"root",layoutOptions:{"elk.hierarchyHandling":"INCLUDE_CHILDREN","org.eclipse.elk.padding":"[top=100, left=100, bottom=110, right=110]","elk.layered.spacing.edgeNodeBetweenLayers":"30","elk.direction":"DOWN"},children:[],edges:[]};switch(a.l.info("Drawing flowchart using v3 renderer",s),i.db.getDirection()){case"BT":d.layoutOptions["elk.direction"]="UP";break;case"TB":d.layoutOptions["elk.direction"]="DOWN";break;case"LR":d.layoutOptions["elk.direction"]="RIGHT";break;case"RL":d.layoutOptions["elk.direction"]="LEFT"}let{securityLevel:g,flowchart:v}=(0,a.c)();"sandbox"===g&&(o=(0,r.Ltv)("#i"+t));let y="sandbox"===g?(0,r.Ltv)(o.nodes()[0].contentDocument.body):(0,r.Ltv)("body"),E="sandbox"===g?o.nodes()[0].contentDocument:document,M=y.select(`[id="${t}"]`);(0,c.a)(M,["point","circle","cross"],i.type,i.arrowMarkerAbsolute);let S=i.db.getVertices(),P=i.db.getSubGraphs();a.l.info("Subgraphs - ",P);for(let n=P.length-1;n>=0;n--)f=P[n],i.db.addVertex(f.id,{text:f.title,type:f.labelType},"group",void 0,f.classes,f.dir);let I=M.insert("g").attr("class","subgraphs"),C=m(i.db);d=await b(S,t,y,E,i,C,d);let O=M.insert("g").attr("class","edges edgePath");d=p(i.db.getEdges(),i,d,M),Object.keys(l).forEach(n=>{let t=l[n];t.parent||d.children.push(t),void 0!==C.childrenById[n]&&(t.labels=[{text:t.labelText,layoutOptions:{"nodeLabels.placement":"[H_CENTER, V_TOP, INSIDE]"},width:t.labelData.width,height:t.labelData.height}],delete t.x,delete t.y,delete t.width,delete t.height)}),j(d.children,C),a.l.info("after layout",JSON.stringify(d,null,2));let A=await s.layout(d);T(0,0,A.children,M,I,i,0),a.l.info("after layout",A),null==(u=A.edges)||u.map(n=>{k(O,n,n.edgeData,i,C)}),(0,a.p)({},M,v.diagramPadding,v.useMaxWidth),w.remove()},T=(n,t,e,i,r,c,u)=>{e.forEach(function(e){if(e){if(l[e.id].offset={posX:e.x+n,posY:e.y+t,x:n,y:t,depth:u,width:e.width,height:e.height},"group"===e.type){let i=r.insert("g").attr("class","subgraph");i.insert("rect").attr("class","subgraph subgraph-lvl-"+u%5+" node").attr("x",e.x+n).attr("y",e.y+t).attr("width",e.width).attr("height",e.height);let c=i.insert("g").attr("class","label"),o=(0,a.c)().flowchart.htmlLabels?e.labelData.width/2:0;c.attr("transform",`translate(${e.labels[0].x+n+e.x+o}, ${e.labels[0].y+t+e.y+3})`),c.node().appendChild(e.labelData.labelNode),a.l.info("Id (UGH)= ",e.type,e.labels)}else a.l.info("Id (UGH)= ",e.id),e.el.attr("transform",`translate(${e.x+n+e.width/2}, ${e.y+t+e.height/2})`)}}),e.forEach(function(e){e&&"group"===e.type&&T(n+e.x,t+e.y,e.children,i,r,c,u+1)})},M=n=>{let t="";for(let e=0;e<5;e++)t+=` - .subgraph-lvl-${e} { - fill: ${n[`surface${e}`]}; - stroke: ${n[`surfacePeer${e}`]}; - } - `;return t},S={db:i.d,renderer:{getClasses:function(n,t){return a.l.info("Extracting classes"),t.db.getClasses()},draw:E},parser:i.p,styles:n=>`.label { - font-family: ${n.fontFamily}; - color: ${n.nodeTextColor||n.textColor}; - } - .cluster-label text { - fill: ${n.titleColor}; - } - .cluster-label span { - color: ${n.titleColor}; - } - - .label text,span { - fill: ${n.nodeTextColor||n.textColor}; - color: ${n.nodeTextColor||n.textColor}; - } - - .node rect, - .node circle, - .node ellipse, - .node polygon, - .node path { - fill: ${n.mainBkg}; - stroke: ${n.nodeBorder}; - stroke-width: 1px; - } - - .node .label { - text-align: center; - } - .node.clickable { - cursor: pointer; - } - - .arrowheadPath { - fill: ${n.arrowheadColor}; - } - - .edgePath .path { - stroke: ${n.lineColor}; - stroke-width: 2.0px; - } - - .flowchart-link { - stroke: ${n.lineColor}; - fill: none; - } - - .edgeLabel { - background-color: ${n.edgeLabelBackground}; - rect { - opacity: 0.85; - background-color: ${n.edgeLabelBackground}; - fill: ${n.edgeLabelBackground}; - } - text-align: center; - } - - .cluster rect { - fill: ${n.clusterBkg}; - stroke: ${n.clusterBorder}; - stroke-width: 1px; - } - - .cluster text { - fill: ${n.titleColor}; - } - - .cluster span { - color: ${n.titleColor}; - } - /* .cluster div { - color: ${n.titleColor}; - } */ - - div.mermaidTooltip { - position: absolute; - text-align: center; - max-width: 200px; - padding: 2px; - font-family: ${n.fontFamily}; - font-size: 12px; - background: ${n.tertiaryColor}; - border: 1px solid ${n.border2}; - border-radius: 2px; - pointer-events: none; - z-index: 100; - } - - .flowchartTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${n.textColor}; - } - .subgraph { - stroke-width:2; - rx:3; - } - // .subgraph-lvl-1 { - // fill:#ccc; - // // stroke:black; - // } - - .flowchart-label text { - text-anchor: middle; - } - - ${M(n)} -`}}}]); \ No newline at end of file diff --git a/assets/js/88d0be04.89aee451.js b/assets/js/88d0be04.c949ac54.js similarity index 76% rename from assets/js/88d0be04.89aee451.js rename to assets/js/88d0be04.c949ac54.js index d0f448744a..d3645f1a0f 100644 --- a/assets/js/88d0be04.89aee451.js +++ b/assets/js/88d0be04.c949ac54.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[15880],{25592:(e,t,n)=>{n.d(t,{A:()=>u});var l=n(62540);n(63696);var r=n(11750),o=n(27720),c=n(46733),s=n(81912);let i={tocCollapsibleButton:"tocCollapsibleButton_IbtT",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_Nor3"};function a(e){var t,n,{collapsed:o}=e,c=function(e,t){if(null==e)return{};var n,l,r=function(e,t){if(null==e)return{};var n,l,r={},o=Object.keys(e);for(l=0;l<o.length;l++)n=o[l],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(l=0;l<o.length;l++)n=o[l],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}(e,["collapsed"]);return(0,l.jsx)("button",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},l=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(l=l.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),l.forEach(function(t){var l;l=n[t],t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l})}return e}({type:"button"},c),n=n={className:(0,r.A)("clean-btn",i.tocCollapsibleButton,!o&&i.tocCollapsibleButtonExpanded,c.className),children:(0,l.jsx)(s.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);n.push.apply(n,l)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let d={tocCollapsible:"tocCollapsible_BEWm",tocCollapsibleContent:"tocCollapsibleContent_FG8F",tocCollapsibleExpanded:"tocCollapsibleExpanded_FzA_"};function u({toc:e,className:t,minHeadingLevel:n,maxHeadingLevel:s}){let{collapsed:i,toggleCollapsed:u}=(0,o.u)({initialState:!0});return(0,l.jsxs)("div",{className:(0,r.A)(d.tocCollapsible,!i&&d.tocCollapsibleExpanded,t),children:[(0,l.jsx)(a,{collapsed:i,onClick:u}),(0,l.jsx)(o.N,{lazy:!0,className:d.tocCollapsibleContent,collapsed:i,children:(0,l.jsx)(c.A,{toc:e,minHeadingLevel:n,maxHeadingLevel:s})})]})}},32738:(e,t,n)=>{n.d(t,{A:()=>o});var l=n(62540);n(63696);var r=n(46733);function o({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return(0,l.jsx)("div",{className:"tableOfContentsInline_2sru",children:(0,l.jsx)(r.A,{toc:e,minHeadingLevel:t,maxHeadingLevel:n,className:"table-of-contents",linkClassName:null})})}},46733:(e,t,n)=>{n.d(t,{A:()=>u});var l=n(62540),r=n(63696),o=n(25436);function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},l=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(l=l.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),l.forEach(function(t){var l;l=n[t],t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l})}return e}function s(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);n.push.apply(n,l)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function i(e){let t=e.getBoundingClientRect();return t.top===t.bottom?i(e.parentNode):t}var a=n(36372);let d=r.memo(function e({toc:t,className:n,linkClassName:r,isChild:o}){return t.length?(0,l.jsx)("ul",{className:o?void 0:n,children:t.map(t=>(0,l.jsxs)("li",{children:[(0,l.jsx)(a.A,{to:`#${t.id}`,className:null!=r?r:void 0,dangerouslySetInnerHTML:{__html:t.value}}),(0,l.jsx)(e,{isChild:!0,toc:t.children,className:n,linkClassName:r})]},t.id))}):null});function u(e){var{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:a="table-of-contents__link",linkActiveClassName:u,minHeadingLevel:v,maxHeadingLevel:p}=e,b=function(e,t){if(null==e)return{};var n,l,r=function(e,t){if(null==e)return{};var n,l,r={},o=Object.keys(e);for(l=0;l<o.length;l++)n=o[l],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(l=0;l<o.length;l++)n=o[l],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}(e,["toc","className","linkClassName","linkActiveClassName","minHeadingLevel","maxHeadingLevel"]);let f=(0,o.p)(),h=null!=v?v:f.tableOfContents.minHeadingLevel,m=null!=p?p:f.tableOfContents.maxHeadingLevel,O=function({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return(0,r.useMemo)(()=>(function e({toc:t,minHeadingLevel:n,maxHeadingLevel:l}){return t.flatMap(t=>{let r=e({toc:t.children,minHeadingLevel:n,maxHeadingLevel:l});return t.level>=n&&t.level<=l?[s(c({},t),{children:r})]:r})})({toc:function(e){let t=e.map(e=>s(c({},e),{parentIndex:-1,children:[]})),n=Array(7).fill(-1);t.forEach((e,t)=>{let l=n.slice(2,e.level);e.parentIndex=Math.max(...l),n[e.level]=t});let l=[];return t.forEach(e=>{let{parentIndex:n}=e,r=function(e,t){if(null==e)return{};var n,l,r=function(e,t){if(null==e)return{};var n,l,r={},o=Object.keys(e);for(l=0;l<o.length;l++)n=o[l],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(l=0;l<o.length;l++)n=o[l],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}(e,["parentIndex"]);n>=0?t[n].children.push(r):l.push(r)}),l}(e),minHeadingLevel:t,maxHeadingLevel:n}),[e,t,n])}({toc:t,minHeadingLevel:h,maxHeadingLevel:m});return!function(e){let t=(0,r.useRef)(void 0),n=function(){let e=(0,r.useRef)(0),{navbar:{hideOnScroll:t}}=(0,o.p)();return(0,r.useEffect)(()=>{e.current=t?0:document.querySelector(".navbar").clientHeight},[t]),e}();(0,r.useEffect)(()=>{if(!e)return()=>{};let{linkClassName:l,linkActiveClassName:r,minHeadingLevel:o,maxHeadingLevel:c}=e;function s(){let e=Array.from(document.getElementsByClassName(l)),s=function(e,{anchorTopOffset:t}){var n,l,r;let o=e.find(e=>i(e).top>=t);return o?(r=i(o)).top>0&&r.bottom<window.innerHeight/2?o:null!==(n=e[e.indexOf(o)-1])&&void 0!==n?n:null:null!==(l=e[e.length-1])&&void 0!==l?l:null}(function({minHeadingLevel:e,maxHeadingLevel:t}){let n=[];for(let l=e;l<=t;l+=1)n.push(`h${l}.anchor`);return Array.from(document.querySelectorAll(n.join()))}({minHeadingLevel:o,maxHeadingLevel:c}),{anchorTopOffset:n.current}),a=e.find(e=>s&&s.id===decodeURIComponent(e.href.substring(e.href.indexOf("#")+1)));e.forEach(e=>{e===a?(t.current&&t.current!==e&&t.current.classList.remove(r),e.classList.add(r),t.current=e):e.classList.remove(r)})}return document.addEventListener("scroll",s),document.addEventListener("resize",s),s(),()=>{document.removeEventListener("scroll",s),document.removeEventListener("resize",s)}},[e,n])}((0,r.useMemo)(()=>{if(a&&u)return{linkClassName:a,linkActiveClassName:u,minHeadingLevel:h,maxHeadingLevel:m}},[a,u,h,m])),(0,l.jsx)(d,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},l=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(l=l.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),l.forEach(function(t){var l;l=n[t],t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l})}return e}({toc:O,className:n,linkClassName:a},b))}},70361:(e,t,n)=>{n.d(t,{A:()=>s});var l=n(62540);n(63696);var r=n(11750);let o="dot_giz1",c="bar_rrRL";function s({children:e,minHeight:t,url:n="http://localhost:3000",style:s,bodyStyle:i}){var a,d;return(0,l.jsxs)("div",{className:"browserWindow_my1Q",style:(a=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},l=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(l=l.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),l.forEach(function(t){var l;l=n[t],t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l})}return e}({},s),d=d={minHeight:t},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(d)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);n.push.apply(n,l)}return n})(Object(d)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(d,e))}),a),children:[(0,l.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,l.jsxs)("div",{className:"buttons_uHc7",children:[(0,l.jsx)("span",{className:o,style:{background:"#f25f58"}}),(0,l.jsx)("span",{className:o,style:{background:"#fbbe3c"}}),(0,l.jsx)("span",{className:o,style:{background:"#58cb42"}})]}),(0,l.jsx)("div",{className:(0,r.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:n}),(0,l.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,l.jsxs)("div",{children:[(0,l.jsx)("span",{className:c}),(0,l.jsx)("span",{className:c}),(0,l.jsx)("span",{className:c})]})})]}),(0,l.jsx)("div",{className:"browserWindowBody_Idgs",style:i,children:e})]})}},67171:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>d,default:()=>b,frontMatter:()=>a,metadata:()=>l,toc:()=>v});let l=JSON.parse('{"id":"toc/toc-test-good","title":"toc-test-good","description":"Test the TOC behavior of a real-world MD doc with valid headings","source":"@site/_dogfooding/_docs tests/toc/toc-test-good.mdx","sourceDirName":"toc","slug":"/toc/toc-test-good","permalink":"/tests/docs/toc/toc-test-good","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":6},"sidebar":"sidebar","previous":{"title":"toc-test-bad","permalink":"/tests/docs/toc/toc-test-bad"}}');var r=n(62540),o=n(43023),c=n(70361),s=n(32738),i=n(25592);let a={toc_min_heading_level:2,toc_max_heading_level:6},d=void 0,u={},v=[{value:"lvl 2",id:"lvl-2",level:2},{value:"lvl 3",id:"lvl-3",level:3},{value:"lvl 4",id:"lvl-4",level:4},{value:"lvl 5",id:"lvl-5",level:5},{value:"lvl 6",id:"lvl-6",level:6},{value:"lvl 2",id:"lvl-2-1",level:2},{value:"lvl 3",id:"lvl-3-1",level:3},{value:"lvl 4",id:"lvl-4-1",level:4},{value:"lvl 5",id:"lvl-5-1",level:5},{value:"lvl 6",id:"lvl-6-1",level:6}];function p(e){let t={h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",hr:"hr",p:"p",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.p,{children:"Test the TOC behavior of a real-world MD doc with valid headings"}),"\n",(0,r.jsx)(t.hr,{}),"\n",(0,r.jsx)(t.h2,{id:"lvl-2",children:"lvl 2"}),"\n",(0,r.jsx)(t.h3,{id:"lvl-3",children:"lvl 3"}),"\n",(0,r.jsx)(t.h4,{id:"lvl-4",children:"lvl 4"}),"\n",(0,r.jsx)(t.h5,{id:"lvl-5",children:"lvl 5"}),"\n",(0,r.jsx)(t.h6,{id:"lvl-6",children:"lvl 6"}),"\n",(0,r.jsx)(t.h2,{id:"lvl-2-1",children:"lvl 2"}),"\n",(0,r.jsx)(t.h3,{id:"lvl-3-1",children:"lvl 3"}),"\n",(0,r.jsx)(t.h4,{id:"lvl-4-1",children:"lvl 4"}),"\n",(0,r.jsx)(t.h5,{id:"lvl-5-1",children:"lvl 5"}),"\n",(0,r.jsx)(t.h6,{id:"lvl-6-1",children:"lvl 6"}),"\n",(0,r.jsx)(t.hr,{}),"\n",(0,r.jsx)(t.p,{children:"INLINE:"}),"\n","\n","\n",(0,r.jsx)(c.A,{children:(0,r.jsx)(s.A,{toc:v,minHeadingLevel:2,maxHeadingLevel:6})}),"\n",(0,r.jsx)(t.hr,{}),"\n",(0,r.jsx)(t.p,{children:"COLLAPSIBLE:"}),"\n","\n",(0,r.jsx)(c.A,{children:(0,r.jsx)(i.A,{toc:v,minHeadingLevel:2,maxHeadingLevel:6})})]})}function b(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}b.displayName="MDXContent(_dogfooding/_docs tests/toc/toc-test-good.mdx)"},43023:(e,t,n)=>{n.d(t,{R:()=>c,x:()=>s});var l=n(63696);let r={},o=l.createContext(r);function c(e){let t=l.useContext(o);return l.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),l.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[15880],{25592:(e,t,n)=>{n.d(t,{A:()=>u});var l=n(62540);n(63696);var r=n(11750),o=n(27720),c=n(46733),s=n(81912);let i={tocCollapsibleButton:"tocCollapsibleButton_IbtT",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_Nor3"};function a(e){var t,n,{collapsed:o}=e,c=function(e,t){if(null==e)return{};var n,l,r=function(e,t){if(null==e)return{};var n,l,r={},o=Object.keys(e);for(l=0;l<o.length;l++)n=o[l],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(l=0;l<o.length;l++)n=o[l],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}(e,["collapsed"]);return(0,l.jsx)("button",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},l=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(l=l.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),l.forEach(function(t){var l;l=n[t],t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l})}return e}({type:"button"},c),n=n={className:(0,r.A)("clean-btn",i.tocCollapsibleButton,!o&&i.tocCollapsibleButtonExpanded,c.className),children:(0,l.jsx)(s.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);n.push.apply(n,l)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}let d={tocCollapsible:"tocCollapsible_BEWm",tocCollapsibleContent:"tocCollapsibleContent_FG8F",tocCollapsibleExpanded:"tocCollapsibleExpanded_FzA_"};function u({toc:e,className:t,minHeadingLevel:n,maxHeadingLevel:s}){let{collapsed:i,toggleCollapsed:u}=(0,o.u)({initialState:!0});return(0,l.jsxs)("div",{className:(0,r.A)(d.tocCollapsible,!i&&d.tocCollapsibleExpanded,t),children:[(0,l.jsx)(a,{collapsed:i,onClick:u}),(0,l.jsx)(o.N,{lazy:!0,className:d.tocCollapsibleContent,collapsed:i,children:(0,l.jsx)(c.A,{toc:e,minHeadingLevel:n,maxHeadingLevel:s})})]})}},32738:(e,t,n)=>{n.d(t,{A:()=>o});var l=n(62540);n(63696);var r=n(46733);function o({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return(0,l.jsx)("div",{className:"tableOfContentsInline_2sru",children:(0,l.jsx)(r.A,{toc:e,minHeadingLevel:t,maxHeadingLevel:n,className:"table-of-contents",linkClassName:null})})}},46733:(e,t,n)=>{n.d(t,{A:()=>u});var l=n(62540),r=n(63696),o=n(25436);function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},l=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(l=l.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),l.forEach(function(t){var l;l=n[t],t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l})}return e}function s(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);n.push.apply(n,l)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function i(e){let t=e.getBoundingClientRect();return t.top===t.bottom?i(e.parentNode):t}var a=n(36372);let d=r.memo(function e({toc:t,className:n,linkClassName:r,isChild:o}){return t.length?(0,l.jsx)("ul",{className:o?void 0:n,children:t.map(t=>(0,l.jsxs)("li",{children:[(0,l.jsx)(a.A,{to:`#${t.id}`,className:null!=r?r:void 0,dangerouslySetInnerHTML:{__html:t.value}}),(0,l.jsx)(e,{isChild:!0,toc:t.children,className:n,linkClassName:r})]},t.id))}):null});function u(e){var{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:a="table-of-contents__link",linkActiveClassName:u,minHeadingLevel:b,maxHeadingLevel:v}=e,p=function(e,t){if(null==e)return{};var n,l,r=function(e,t){if(null==e)return{};var n,l,r={},o=Object.keys(e);for(l=0;l<o.length;l++)n=o[l],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(l=0;l<o.length;l++)n=o[l],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}(e,["toc","className","linkClassName","linkActiveClassName","minHeadingLevel","maxHeadingLevel"]);let f=(0,o.p)(),h=null!=b?b:f.tableOfContents.minHeadingLevel,m=null!=v?v:f.tableOfContents.maxHeadingLevel,O=function({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return(0,r.useMemo)(()=>(function e({toc:t,minHeadingLevel:n,maxHeadingLevel:l}){return t.flatMap(t=>{let r=e({toc:t.children,minHeadingLevel:n,maxHeadingLevel:l});return t.level>=n&&t.level<=l?[s(c({},t),{children:r})]:r})})({toc:function(e){let t=e.map(e=>s(c({},e),{parentIndex:-1,children:[]})),n=Array(7).fill(-1);t.forEach((e,t)=>{let l=n.slice(2,e.level);e.parentIndex=Math.max(...l),n[e.level]=t});let l=[];return t.forEach(e=>{let{parentIndex:n}=e,r=function(e,t){if(null==e)return{};var n,l,r=function(e,t){if(null==e)return{};var n,l,r={},o=Object.keys(e);for(l=0;l<o.length;l++)n=o[l],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(l=0;l<o.length;l++)n=o[l],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}(e,["parentIndex"]);n>=0?t[n].children.push(r):l.push(r)}),l}(e),minHeadingLevel:t,maxHeadingLevel:n}),[e,t,n])}({toc:t,minHeadingLevel:h,maxHeadingLevel:m});return!function(e){let t=(0,r.useRef)(void 0),n=function(){let e=(0,r.useRef)(0),{navbar:{hideOnScroll:t}}=(0,o.p)();return(0,r.useEffect)(()=>{e.current=t?0:document.querySelector(".navbar").clientHeight},[t]),e}();(0,r.useEffect)(()=>{if(!e)return()=>{};let{linkClassName:l,linkActiveClassName:r,minHeadingLevel:o,maxHeadingLevel:c}=e;function s(){let e=Array.from(document.getElementsByClassName(l)),s=function(e,{anchorTopOffset:t}){var n,l,r;let o=e.find(e=>i(e).top>=t);return o?(r=i(o)).top>0&&r.bottom<window.innerHeight/2?o:null!==(n=e[e.indexOf(o)-1])&&void 0!==n?n:null:null!==(l=e[e.length-1])&&void 0!==l?l:null}(function({minHeadingLevel:e,maxHeadingLevel:t}){let n=[];for(let l=e;l<=t;l+=1)n.push(`h${l}.anchor`);return Array.from(document.querySelectorAll(n.join()))}({minHeadingLevel:o,maxHeadingLevel:c}),{anchorTopOffset:n.current}),a=e.find(e=>s&&s.id===decodeURIComponent(e.href.substring(e.href.indexOf("#")+1)));e.forEach(e=>{e===a?(t.current&&t.current!==e&&t.current.classList.remove(r),e.classList.add(r),t.current=e):e.classList.remove(r)})}return document.addEventListener("scroll",s),document.addEventListener("resize",s),s(),()=>{document.removeEventListener("scroll",s),document.removeEventListener("resize",s)}},[e,n])}((0,r.useMemo)(()=>{if(a&&u)return{linkClassName:a,linkActiveClassName:u,minHeadingLevel:h,maxHeadingLevel:m}},[a,u,h,m])),(0,l.jsx)(d,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},l=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(l=l.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),l.forEach(function(t){var l;l=n[t],t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l})}return e}({toc:O,className:n,linkClassName:a},p))}},70361:(e,t,n)=>{n.d(t,{A:()=>s});var l=n(62540);n(63696);var r=n(11750);let o="dot_giz1",c="bar_rrRL";function s({children:e,minHeight:t,url:n="http://localhost:3000",style:s,bodyStyle:i}){var a,d;return(0,l.jsxs)("div",{className:"browserWindow_my1Q",style:(a=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},l=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(l=l.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),l.forEach(function(t){var l;l=n[t],t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l})}return e}({},s),d=d={minHeight:t},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(d)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);n.push.apply(n,l)}return n})(Object(d)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(d,e))}),a),children:[(0,l.jsxs)("div",{className:"browserWindowHeader_jXSR",children:[(0,l.jsxs)("div",{className:"buttons_uHc7",children:[(0,l.jsx)("span",{className:o,style:{background:"#f25f58"}}),(0,l.jsx)("span",{className:o,style:{background:"#fbbe3c"}}),(0,l.jsx)("span",{className:o,style:{background:"#58cb42"}})]}),(0,l.jsx)("div",{className:(0,r.A)("browserWindowAddressBar_Pd8y","text--truncate"),children:n}),(0,l.jsx)("div",{className:"browserWindowMenuIcon_Vhuh",children:(0,l.jsxs)("div",{children:[(0,l.jsx)("span",{className:c}),(0,l.jsx)("span",{className:c}),(0,l.jsx)("span",{className:c})]})})]}),(0,l.jsx)("div",{className:"browserWindowBody_Idgs",style:i,children:e})]})}},67171:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>d,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>b});let l=JSON.parse('{"id":"toc/toc-test-good","title":"toc-test-good","description":"Test the TOC behavior of a real-world MD doc with valid headings","source":"@site/_dogfooding/_docs tests/toc/toc-test-good.mdx","sourceDirName":"toc","slug":"/toc/toc-test-good","permalink":"/tests/docs/toc/toc-test-good","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"toc_min_heading_level":2,"toc_max_heading_level":6},"sidebar":"sidebar","previous":{"title":"toc-test-bad","permalink":"/tests/docs/toc/toc-test-bad"}}');var r=n(62540),o=n(43023),c=n(70361),s=n(32738),i=n(25592);let a={toc_min_heading_level:2,toc_max_heading_level:6},d=void 0,u={},b=[{value:"lvl 2",id:"lvl-2",level:2},{value:"lvl 3",id:"lvl-3",level:3},{value:"lvl 4",id:"lvl-4",level:4},{value:"lvl 5",id:"lvl-5",level:5},{value:"lvl 6",id:"lvl-6",level:6},{value:"lvl 2",id:"lvl-2-1",level:2},{value:"lvl 3",id:"lvl-3-1",level:3},{value:"lvl 4",id:"lvl-4-1",level:4},{value:"lvl 5",id:"lvl-5-1",level:5},{value:"lvl 6",id:"lvl-6-1",level:6}];function v(e){let t={h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",hr:"hr",p:"p",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.p,{children:"Test the TOC behavior of a real-world MD doc with valid headings"}),"\n",(0,r.jsx)(t.hr,{}),"\n",(0,r.jsx)(t.h2,{id:"lvl-2",children:"lvl 2"}),"\n",(0,r.jsx)(t.h3,{id:"lvl-3",children:"lvl 3"}),"\n",(0,r.jsx)(t.h4,{id:"lvl-4",children:"lvl 4"}),"\n",(0,r.jsx)(t.h5,{id:"lvl-5",children:"lvl 5"}),"\n",(0,r.jsx)(t.h6,{id:"lvl-6",children:"lvl 6"}),"\n",(0,r.jsx)(t.h2,{id:"lvl-2-1",children:"lvl 2"}),"\n",(0,r.jsx)(t.h3,{id:"lvl-3-1",children:"lvl 3"}),"\n",(0,r.jsx)(t.h4,{id:"lvl-4-1",children:"lvl 4"}),"\n",(0,r.jsx)(t.h5,{id:"lvl-5-1",children:"lvl 5"}),"\n",(0,r.jsx)(t.h6,{id:"lvl-6-1",children:"lvl 6"}),"\n",(0,r.jsx)(t.hr,{}),"\n",(0,r.jsx)(t.p,{children:"INLINE:"}),"\n","\n","\n",(0,r.jsx)(c.A,{children:(0,r.jsx)(s.A,{toc:b,minHeadingLevel:2,maxHeadingLevel:6})}),"\n",(0,r.jsx)(t.hr,{}),"\n",(0,r.jsx)(t.p,{children:"COLLAPSIBLE:"}),"\n","\n",(0,r.jsx)(c.A,{children:(0,r.jsx)(i.A,{toc:b,minHeadingLevel:2,maxHeadingLevel:6})})]})}function p(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(v,{...e})}):v(e)}p.displayName="MDXContent(_dogfooding/_docs tests/toc/toc-test-good.mdx)"},43023:(e,t,n)=>{n.d(t,{R:()=>c,x:()=>s});var l=n(63696);let r={},o=l.createContext(r);function c(e){let t=l.useContext(o);return l.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),l.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/891c0dad.abce77a2.js b/assets/js/891c0dad.abce77a2.js deleted file mode 100644 index 0258958e29..0000000000 --- a/assets/js/891c0dad.abce77a2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[49941],{43730:(e,n,s)=>{s.d(n,{A:()=>r});var t=s(62540),i=s(63696);function r({children:e="Boom!",message:n="Boom!\nSomething bad happened, but you can try again!",cause:s}){let[r,o]=(0,i.useState)(!1);if(r)throw Error(n,{cause:s?Error(s):void 0});return(0,t.jsx)("button",{className:"button button--danger",type:"button",onClick:()=>o(!0),children:e})}},97649:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>l,metadata:()=>t,toc:()=>d});let t=JSON.parse('{"id":"docusaurus-core","title":"Docusaurus Client API","description":"Docusaurus provides some APIs on the clients that can be helpful to you when building your site.","source":"@site/docs/docusaurus-core.mdx","sourceDirName":".","slug":"/docusaurus-core","permalink":"/docs/docusaurus-core","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/docusaurus-core.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"sidebar_label":"Client API"},"sidebar":"api","previous":{"title":"CLI","permalink":"/docs/cli"},"next":{"title":"docusaurus.config.js","permalink":"/docs/api/docusaurus-config"}}');var i=s(62540),r=s(43023),o=s(43730);let l={sidebar_label:"Client API"},a="Docusaurus Client API",c={},d=[{value:"Components",id:"components",level:2},{value:"<code><ErrorBoundary /></code>",id:"errorboundary",level:3},{value:"Props",id:"errorboundary-props",level:4},{value:"<code><Head/></code>",id:"head",level:3},{value:"<code><Link/></code>",id:"link",level:3},{value:"<code>to</code>: string",id:"to-string",level:4},{value:"<code><Redirect/></code>",id:"redirect",level:3},{value:"<code><BrowserOnly/></code>",id:"browseronly",level:3},{value:"Props",id:"browseronly-props",level:4},{value:"Example with code",id:"browseronly-example-code",level:4},{value:"Example with a library",id:"browseronly-example-library",level:4},{value:"<code><Interpolate/></code>",id:"interpolate",level:3},{value:"Props",id:"interpolate-props",level:4},{value:"<code><Translate/></code>",id:"translate",level:3},{value:"Props",id:"translate-props",level:4},{value:"Example",id:"example",level:4},{value:"Hooks",id:"hooks",level:2},{value:"<code>useDocusaurusContext</code>",id:"useDocusaurusContext",level:3},{value:"<code>useIsBrowser</code>",id:"useIsBrowser",level:3},{value:"<code>useBaseUrl</code>",id:"useBaseUrl",level:3},{value:"Options",id:"options",level:4},{value:"Example usage:",id:"example-usage",level:4},{value:"<code>useBaseUrlUtils</code>",id:"useBaseUrlUtils",level:3},{value:"<code>useGlobalData</code>",id:"useGlobalData",level:3},{value:"<code>usePluginData</code>",id:"usePluginData",level:3},{value:"<code>useAllPluginInstancesData</code>",id:"useAllPluginInstancesData",level:3},{value:"<code>useBrokenLinks</code>",id:"useBrokenLinks",level:3},{value:"Functions",id:"functions",level:2},{value:"<code>interpolate</code>",id:"interpolate-1",level:3},{value:"Signature",id:"signature",level:4},{value:"Example",id:"example-1",level:4},{value:"<code>translate</code>",id:"translate-imperative",level:3},{value:"Signature",id:"signature-1",level:4},{value:"Example",id:"example-2",level:4},{value:"Modules",id:"modules",level:2},{value:"<code>ExecutionEnvironment</code>",id:"executionenvironment",level:3},{value:"<code>constants</code>",id:"constants",level:3}];function h(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"docusaurus-client-api",children:"Docusaurus Client API"})}),"\n",(0,i.jsx)(n.p,{children:"Docusaurus provides some APIs on the clients that can be helpful to you when building your site."}),"\n",(0,i.jsx)(n.h2,{id:"components",children:"Components"}),"\n",(0,i.jsx)(n.h3,{id:"errorboundary",children:(0,i.jsx)(n.code,{children:"<ErrorBoundary />"})}),"\n",(0,i.jsxs)(n.p,{children:["This component creates a ",(0,i.jsx)(n.a,{href:"https://reactjs.org/docs/error-boundaries.html",children:"React error boundary"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"Use it to wrap components that might throw, and display a fallback when that happens instead of crashing the whole app."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\nimport ErrorBoundary from '@docusaurus/ErrorBoundary';\n\nconst SafeComponent = () => (\n <ErrorBoundary\n fallback={({error, tryAgain}) => (\n <div>\n <p>This component crashed because of error: {error.message}.</p>\n <button onClick={tryAgain}>Try Again!</button>\n </div>\n )}>\n <SomeDangerousComponentThatMayThrow />\n </ErrorBoundary>\n);\n"})}),"\n","\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsxs)(n.p,{children:["To see it in action, click here: ",(0,i.jsx)(o.A,{})]})}),"\n",(0,i.jsx)(n.admonition,{type:"info",children:(0,i.jsx)(n.p,{children:"Docusaurus uses this component to catch errors within the theme's layout, and also within the entire app."})}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsx)(n.p,{children:"This component doesn't catch build-time errors and only protects against client-side render errors that can happen when using stateful React components."})}),"\n",(0,i.jsx)(n.h4,{id:"errorboundary-props",children:"Props"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"fallback"}),": an optional render callback returning a JSX element. It will receive an object with 2 attributes: ",(0,i.jsx)(n.code,{children:"error"}),", the error that was caught, and ",(0,i.jsx)(n.code,{children:"tryAgain"}),", a function (",(0,i.jsx)(n.code,{children:"() => void"}),") callback to reset the error in the component and try rendering it again. If not present, ",(0,i.jsx)(n.code,{children:"@theme/Error"})," will be rendered instead. ",(0,i.jsx)(n.code,{children:"@theme/Error"})," is used for the error boundaries wrapping the site, above the layout."]}),"\n"]}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"fallback"})," prop is a callback, and ",(0,i.jsx)(n.strong,{children:"not a React functional component"}),". You can't use React hooks inside this callback."]})}),"\n",(0,i.jsx)(n.h3,{id:"head",children:(0,i.jsx)(n.code,{children:"<Head/>"})}),"\n",(0,i.jsxs)(n.p,{children:["This reusable React component will manage all of your changes to the document head. It takes plain HTML tags and outputs plain HTML tags and is beginner-friendly. It is a wrapper around ",(0,i.jsx)(n.a,{href:"https://github.com/nfl/react-helmet",children:"React Helmet"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"Usage Example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:'import React from \'react\';\n// highlight-next-line\nimport Head from \'@docusaurus/Head\';\n\nconst MySEO = () => (\n // highlight-start\n <Head>\n <meta property="og:description" content="My custom description" />\n <meta charSet="utf-8" />\n <title>My Title\n \n \n // highlight-end\n);\n'})}),"\n",(0,i.jsx)(n.p,{children:"Nested or latter components will override duplicate usages:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:'\n {/* highlight-start */}\n \n My Title\n \n \n {/* highlight-end */}\n \n {/* highlight-start */}\n \n Nested Title\n \n \n {/* highlight-end */}\n \n\n'})}),"\n",(0,i.jsx)(n.p,{children:"Outputs:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-html",children:'\n Nested Title\n \n\n'})}),"\n",(0,i.jsx)(n.h3,{id:"link",children:(0,i.jsx)(n.code,{children:""})}),"\n",(0,i.jsxs)(n.p,{children:["This component enables linking to internal pages as well as a powerful performance feature called preloading. Preloading is used to prefetch resources so that the resources are fetched by the time the user navigates with this component. We use an ",(0,i.jsx)(n.code,{children:"IntersectionObserver"})," to fetch a low-priority request when the ",(0,i.jsx)(n.code,{children:""})," is in the viewport and then use an ",(0,i.jsx)(n.code,{children:"onMouseOver"})," event to trigger a high-priority request when it is likely that a user will navigate to the requested resource."]}),"\n",(0,i.jsxs)(n.p,{children:["The component is a wrapper around react-router\u2019s ",(0,i.jsx)(n.code,{children:""})," component that adds useful enhancements specific to Docusaurus. All props are passed through to react-router\u2019s ",(0,i.jsx)(n.code,{children:""})," component."]}),"\n",(0,i.jsxs)(n.p,{children:["External links also work, and automatically have these props: ",(0,i.jsx)(n.code,{children:'target="_blank" rel="noopener noreferrer"'}),"."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\n// highlight-next-line\nimport Link from '@docusaurus/Link';\n\nconst Page = () => (\n
\n

\n {/* highlight-next-line */}\n Check out my blog!\n

\n

\n {/* highlight-next-line */}\n Follow me on X!\n

\n
\n);\n"})}),"\n",(0,i.jsxs)(n.h4,{id:"to-string",children:[(0,i.jsx)(n.code,{children:"to"}),": string"]}),"\n",(0,i.jsxs)(n.p,{children:["The target location to navigate to. Example: ",(0,i.jsx)(n.code,{children:"/docs/introduction"}),"."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:'\n'})}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsxs)(n.p,{children:["Prefer this component to vanilla ",(0,i.jsx)(n.code,{children:""})," tags because Docusaurus does a lot of optimizations (e.g. broken path detection, prefetching, applying base URL...) if you use ",(0,i.jsx)(n.code,{children:""}),"."]})}),"\n",(0,i.jsx)(n.h3,{id:"redirect",children:(0,i.jsx)(n.code,{children:""})}),"\n",(0,i.jsxs)(n.p,{children:["Rendering a ",(0,i.jsx)(n.code,{children:""})," will navigate to a new location. The new location will override the current location in the history stack like server-side redirects (HTTP 3xx) do. You can refer to ",(0,i.jsx)(n.a,{href:"https://reacttraining.com/react-router/web/api/Redirect",children:"React Router's Redirect documentation"})," for more info on available props."]}),"\n",(0,i.jsx)(n.p,{children:"Example usage:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\n// highlight-next-line\nimport {Redirect} from '@docusaurus/router';\n\nconst Home = () => {\n // highlight-next-line\n return ;\n};\n"})}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"@docusaurus/router"})," implements ",(0,i.jsx)(n.a,{href:"https://reacttraining.com/react-router/web/guides/quick-start",children:"React Router"})," and supports its features."]})}),"\n",(0,i.jsx)(n.h3,{id:"browseronly",children:(0,i.jsx)(n.code,{children:""})}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:""})," component permits to render React components only in the browser after the React app has hydrated."]}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsxs)(n.p,{children:["Use it for integrating with code that can't run in Node.js, because the ",(0,i.jsx)(n.code,{children:"window"})," or ",(0,i.jsx)(n.code,{children:"document"})," objects are being accessed."]})}),"\n",(0,i.jsx)(n.h4,{id:"browseronly-props",children:"Props"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"children"}),": render function prop returning browser-only JSX. Will not be executed in Node.js"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"fallback"})," (optional): JSX to render on the server (Node.js) and until React hydration completes."]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"browseronly-example-code",children:"Example with code"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"// highlight-start\nimport BrowserOnly from '@docusaurus/BrowserOnly';\n// highlight-end\n\nconst MyComponent = () => {\n return (\n // highlight-start\n \n {() => page url = {window.location.href}}\n \n // highlight-end\n );\n};\n"})}),"\n",(0,i.jsx)(n.h4,{id:"browseronly-example-library",children:"Example with a library"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"// highlight-start\nimport BrowserOnly from '@docusaurus/BrowserOnly';\n// highlight-end\n\nconst MyComponent = (props) => {\n return (\n // highlight-start\n Loading...}>\n {() => {\n const LibComponent = require('some-lib').LibComponent;\n return ;\n }}\n \n // highlight-end\n );\n};\n"})}),"\n",(0,i.jsx)(n.h3,{id:"interpolate",children:(0,i.jsx)(n.code,{children:""})}),"\n",(0,i.jsx)(n.p,{children:"A simple interpolation component for text containing dynamic placeholders."}),"\n",(0,i.jsx)(n.p,{children:"The placeholders will be replaced with the provided dynamic values and JSX elements of your choice (strings, links, styled elements...)."}),"\n",(0,i.jsx)(n.h4,{id:"interpolate-props",children:"Props"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"children"}),": text containing interpolation placeholders like ",(0,i.jsx)(n.code,{children:"{placeholderName}"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"values"}),": object containing interpolation placeholder values"]}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\nimport Link from '@docusaurus/Link';\nimport Interpolate from '@docusaurus/Interpolate';\n\nexport default function VisitMyWebsiteMessage() {\n return (\n // highlight-start\n \n website\n \n ),\n }}>\n {'Hello, {firstName}! How are you? Take a look at my {website}'}\n \n // highlight-end\n );\n}\n"})}),"\n",(0,i.jsx)(n.h3,{id:"translate",children:(0,i.jsx)(n.code,{children:""})}),"\n",(0,i.jsxs)(n.p,{children:["When ",(0,i.jsx)(n.a,{href:"/docs/i18n/introduction",children:"localizing your site"}),", the ",(0,i.jsx)(n.code,{children:""})," component will allow providing ",(0,i.jsx)(n.strong,{children:"translation support to React components"}),", such as your homepage. The ",(0,i.jsx)(n.code,{children:""})," component supports ",(0,i.jsx)(n.a,{href:"#interpolate",children:"interpolation"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["The translation strings will statically extracted from your code with the ",(0,i.jsx)(n.a,{href:"/docs/cli#docusaurus-write-translations-sitedir",children:(0,i.jsx)(n.code,{children:"docusaurus write-translations"})})," CLI and a ",(0,i.jsx)(n.code,{children:"code.json"})," translation file will be created in ",(0,i.jsx)(n.code,{children:"website/i18n/[locale]"}),"."]}),"\n",(0,i.jsxs)(n.admonition,{type:"note",children:[(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:""})," props ",(0,i.jsx)(n.strong,{children:"must be hardcoded strings"}),"."]}),(0,i.jsxs)(n.p,{children:["Apart from the ",(0,i.jsx)(n.code,{children:"values"})," prop used for interpolation, it is ",(0,i.jsx)(n.strong,{children:"not possible to use variables"}),", or the static extraction wouldn't work."]})]}),"\n",(0,i.jsx)(n.h4,{id:"translate-props",children:"Props"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"children"}),": untranslated string in the default site locale (can contain ",(0,i.jsx)(n.a,{href:"#interpolate",children:"interpolation placeholders"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"id"}),": optional value to be used as the key in JSON translation files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"description"}),": optional text to help the translator"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"values"}),": optional object containing interpolation placeholder values"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"example",children:"Example"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:'title="src/pages/index.js"',children:"import React from 'react';\nimport Layout from '@theme/Layout';\n\n// highlight-start\nimport Translate from '@docusaurus/Translate';\n// highlight-end\n\nexport default function Home() {\n return (\n \n

\n {/* highlight-start */}\n \n Welcome to my website\n \n {/* highlight-end */}\n

\n
\n {/* highlight-start */}\n \n {'Welcome, {firstName}! How are you?'}\n \n {/* highlight-end */}\n
\n
\n );\n}\n"})}),"\n",(0,i.jsxs)(n.admonition,{type:"note",children:[(0,i.jsxs)(n.p,{children:["You can even omit the children prop and specify a translation string in your ",(0,i.jsx)(n.code,{children:"code.json"})," file manually after running the ",(0,i.jsx)(n.code,{children:"docusaurus write-translations"})," CLI command."]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:'\n'})})]}),"\n",(0,i.jsx)(n.admonition,{type:"info",children:(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:""})," component supports interpolation. You can also implement ",(0,i.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/pull/i18n/i18n-tutorial.mdx#pluralization",children:"string pluralization"})," through some custom code and the ",(0,i.jsxs)(n.a,{href:"#translate-imperative",children:[(0,i.jsx)(n.code,{children:"translate"})," imperative API"]}),"."]})}),"\n",(0,i.jsx)(n.h2,{id:"hooks",children:"Hooks"}),"\n",(0,i.jsx)(n.h3,{id:"useDocusaurusContext",children:(0,i.jsx)(n.code,{children:"useDocusaurusContext"})}),"\n",(0,i.jsxs)(n.p,{children:["React hook to access Docusaurus Context. The context contains the ",(0,i.jsx)(n.code,{children:"siteConfig"})," object from ",(0,i.jsx)(n.a,{href:"/docs/api/docusaurus-config",children:"docusaurus.config.js"})," and some additional site metadata."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"type PluginVersionInformation =\n | {readonly type: 'package'; readonly version?: string}\n | {readonly type: 'project'}\n | {readonly type: 'local'}\n | {readonly type: 'synthetic'};\n\ntype SiteMetadata = {\n readonly docusaurusVersion: string;\n readonly siteVersion?: string;\n readonly pluginVersions: Record;\n};\n\ntype I18nLocaleConfig = {\n label: string;\n direction: string;\n};\n\ntype I18n = {\n defaultLocale: string;\n locales: [string, ...string[]];\n currentLocale: string;\n localeConfigs: Record;\n};\n\ntype DocusaurusContext = {\n siteConfig: DocusaurusConfig;\n siteMetadata: SiteMetadata;\n globalData: Record;\n i18n: I18n;\n codeTranslations: Record;\n};\n"})}),"\n",(0,i.jsx)(n.p,{children:"Usage example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\nimport useDocusaurusContext from '@docusaurus/useDocusaurusContext';\n\nconst MyComponent = () => {\n // highlight-next-line\n const {siteConfig, siteMetadata} = useDocusaurusContext();\n return (\n
\n {/* highlight-start */}\n

{siteConfig.title}

\n
{siteMetadata.siteVersion}
\n
{siteMetadata.docusaurusVersion}
\n {/* highlight-end */}\n
\n );\n};\n"})}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"siteConfig"})," object only contains ",(0,i.jsx)(n.strong,{children:"serializable values"})," (values that are preserved after ",(0,i.jsx)(n.code,{children:"JSON.stringify()"}),"). Functions, regexes, etc. would be lost on the client side."]})}),"\n",(0,i.jsx)(n.h3,{id:"useIsBrowser",children:(0,i.jsx)(n.code,{children:"useIsBrowser"})}),"\n",(0,i.jsxs)(n.p,{children:["Returns ",(0,i.jsx)(n.code,{children:"true"})," when the React app has successfully hydrated in the browser."]}),"\n",(0,i.jsxs)(n.admonition,{type:"warning",children:[(0,i.jsxs)(n.p,{children:["Use this hook instead of ",(0,i.jsx)(n.code,{children:"typeof windows !== 'undefined'"})," in React rendering logic."]}),(0,i.jsxs)(n.p,{children:["The first client-side render output (in the browser) ",(0,i.jsx)(n.strong,{children:"must be exactly the same"})," as the server-side render output (Node.js). Not following this rule can lead to unexpected hydration behaviors, as described in ",(0,i.jsx)(n.a,{href:"https://www.joshwcomeau.com/react/the-perils-of-rehydration/",children:"The Perils of Rehydration"}),"."]})]}),"\n",(0,i.jsx)(n.p,{children:"Usage example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\nimport useIsBrowser from '@docusaurus/useIsBrowser';\n\nconst MyComponent = () => {\n // highlight-start\n const isBrowser = useIsBrowser();\n // highlight-end\n return
{isBrowser ? 'Client' : 'Server'}
;\n};\n"})}),"\n",(0,i.jsx)(n.h3,{id:"useBaseUrl",children:(0,i.jsx)(n.code,{children:"useBaseUrl"})}),"\n",(0,i.jsxs)(n.p,{children:["React hook to prepend your site ",(0,i.jsx)(n.code,{children:"baseUrl"})," to a string."]}),"\n",(0,i.jsxs)(n.admonition,{type:"warning",children:[(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Don't use it for regular links!"})}),(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"/baseUrl/"})," prefix is automatically added to all ",(0,i.jsx)(n.strong,{children:"absolute paths"})," by default:"]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Markdown: ",(0,i.jsx)(n.code,{children:"[link](/my/path)"})," will link to ",(0,i.jsx)(n.code,{children:"/baseUrl/my/path"})]}),"\n",(0,i.jsxs)(n.li,{children:["React: ",(0,i.jsx)(n.code,{children:'link'})," will link to ",(0,i.jsx)(n.code,{children:"/baseUrl/my/path"})]}),"\n"]})]}),"\n",(0,i.jsx)(n.h4,{id:"options",children:"Options"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"type BaseUrlOptions = {\n forcePrependBaseUrl: boolean;\n absolute: boolean;\n};\n"})}),"\n",(0,i.jsx)(n.h4,{id:"example-usage",children:"Example usage:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\nimport useBaseUrl from '@docusaurus/useBaseUrl';\n\nconst SomeImage = () => {\n // highlight-start\n const imgSrc = useBaseUrl('/img/myImage.png');\n // highlight-end\n return ;\n};\n"})}),"\n",(0,i.jsxs)(n.admonition,{type:"tip",children:[(0,i.jsxs)(n.p,{children:["In most cases, you don't need ",(0,i.jsx)(n.code,{children:"useBaseUrl"}),"."]}),(0,i.jsxs)(n.p,{children:["Prefer a ",(0,i.jsx)(n.code,{children:"require()"})," call for ",(0,i.jsx)(n.a,{href:"/docs/markdown-features/assets",children:"assets"}),":"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"\n"})})]}),"\n",(0,i.jsx)(n.h3,{id:"useBaseUrlUtils",children:(0,i.jsx)(n.code,{children:"useBaseUrlUtils"})}),"\n",(0,i.jsxs)(n.p,{children:["Sometimes ",(0,i.jsx)(n.code,{children:"useBaseUrl"})," is not good enough. This hook return additional utils related to your site's base URL."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"withBaseUrl"}),": useful if you need to add base URLs to multiple URLs at once."]}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\nimport {useBaseUrlUtils} from '@docusaurus/useBaseUrl';\n\nconst Component = () => {\n const urls = ['/a', '/b'];\n // highlight-start\n const {withBaseUrl} = useBaseUrlUtils();\n const urlsWithBaseUrl = urls.map(withBaseUrl);\n // highlight-end\n return
{/* ... */}
;\n};\n"})}),"\n",(0,i.jsx)(n.h3,{id:"useGlobalData",children:(0,i.jsx)(n.code,{children:"useGlobalData"})}),"\n",(0,i.jsx)(n.p,{children:"React hook to access Docusaurus global data created by all the plugins."}),"\n",(0,i.jsx)(n.p,{children:"Global data is namespaced by plugin name then by plugin ID."}),"\n",(0,i.jsx)(n.admonition,{type:"info",children:(0,i.jsx)(n.p,{children:"Plugin ID is only useful when a plugin is used multiple times on the same site. Each plugin instance is able to create its own global data."})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:'type GlobalData = Record<\n PluginName,\n Record<\n PluginId, // "default" by default\n any // plugin-specific data\n >\n>;\n'})}),"\n",(0,i.jsx)(n.p,{children:"Usage example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\n// highlight-next-line\nimport useGlobalData from '@docusaurus/useGlobalData';\n\nconst MyComponent = () => {\n // highlight-start\n const globalData = useGlobalData();\n const myPluginData = globalData['my-plugin']['default'];\n return
{myPluginData.someAttribute}
;\n // highlight-end\n};\n"})}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsxs)(n.p,{children:["Inspect your site's global data at ",(0,i.jsx)(n.code,{children:".docusaurus/globalData.json"})]})}),"\n",(0,i.jsx)(n.h3,{id:"usePluginData",children:(0,i.jsx)(n.code,{children:"usePluginData"})}),"\n",(0,i.jsx)(n.p,{children:"Access global data created by a specific plugin instance."}),"\n",(0,i.jsx)(n.p,{children:"This is the most convenient hook to access plugin global data and should be used most of the time."}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"pluginId"})," is optional if you don't use multi-instance plugins."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"function usePluginData(\n pluginName: string,\n pluginId?: string,\n options?: {failfast?: boolean},\n);\n"})}),"\n",(0,i.jsx)(n.p,{children:"Usage example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\n// highlight-next-line\nimport {usePluginData} from '@docusaurus/useGlobalData';\n\nconst MyComponent = () => {\n // highlight-start\n const myPluginData = usePluginData('my-plugin');\n return
{myPluginData.someAttribute}
;\n // highlight-end\n};\n"})}),"\n",(0,i.jsx)(n.h3,{id:"useAllPluginInstancesData",children:(0,i.jsx)(n.code,{children:"useAllPluginInstancesData"})}),"\n",(0,i.jsx)(n.p,{children:"Access global data created by a specific plugin. Given a plugin name, it returns the data of all the plugins instances of that name, by plugin id."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"function useAllPluginInstancesData(\n pluginName: string,\n options?: {failfast?: boolean},\n);\n"})}),"\n",(0,i.jsx)(n.p,{children:"Usage example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\n// highlight-next-line\nimport {useAllPluginInstancesData} from '@docusaurus/useGlobalData';\n\nconst MyComponent = () => {\n // highlight-start\n const allPluginInstancesData = useAllPluginInstancesData('my-plugin');\n const myPluginData = allPluginInstancesData['default'];\n return
{myPluginData.someAttribute}
;\n // highlight-end\n};\n"})}),"\n",(0,i.jsx)(n.h3,{id:"useBrokenLinks",children:(0,i.jsx)(n.code,{children:"useBrokenLinks"})}),"\n",(0,i.jsx)(n.p,{children:"React hook to access the Docusaurus broken link checker APIs, exposing a way for a Docusaurus pages to report and collect their links and anchors."}),"\n",(0,i.jsxs)(n.admonition,{type:"warning",children:[(0,i.jsxs)(n.p,{children:["This is an ",(0,i.jsx)(n.strong,{children:"advanced"})," API that ",(0,i.jsx)(n.strong,{children:"most Docusaurus users don't need to use directly"}),"."]}),(0,i.jsxs)(n.p,{children:["It is already ",(0,i.jsx)(n.strong,{children:"built-in"})," in existing high-level components:"]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.a,{href:"#link",children:(0,i.jsx)(n.code,{children:""})})," component will collect links for you"]}),"\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.code,{children:"@theme/Heading"})," (used for Markdown headings) will collect anchors"]}),"\n"]}),(0,i.jsxs)(n.p,{children:["Use ",(0,i.jsx)(n.code,{children:"useBrokenLinks()"})," if you implement your own ",(0,i.jsx)(n.code,{children:""})," or ",(0,i.jsx)(n.code,{children:""})," component."]})]}),"\n",(0,i.jsx)(n.p,{children:"Usage example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="MyHeading.js"',children:"import useBrokenLinks from '@docusaurus/useBrokenLinks';\n\nexport default function MyHeading(props) {\n useBrokenLinks().collectAnchor(props.id);\n return

;\n}\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="MyLink.js"',children:"import useBrokenLinks from '@docusaurus/useBrokenLinks';\n\nexport default function MyLink(props) {\n useBrokenLinks().collectLink(props.href);\n return ;\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"functions",children:"Functions"}),"\n",(0,i.jsx)(n.h3,{id:"interpolate-1",children:(0,i.jsx)(n.code,{children:"interpolate"})}),"\n",(0,i.jsxs)(n.p,{children:["The imperative counterpart of the ",(0,i.jsx)(n.a,{href:"#interpolate",children:(0,i.jsx)(n.code,{children:""})})," component."]}),"\n",(0,i.jsx)(n.h4,{id:"signature",children:"Signature"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"// Simple string interpolation\nfunction interpolate(text: string, values: Record): string;\n\n// JSX interpolation\nfunction interpolate(\n text: string,\n values: Record,\n): ReactNode;\n"})}),"\n",(0,i.jsx)(n.h4,{id:"example-1",children:"Example"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"// highlight-next-line\nimport {interpolate} from '@docusaurus/Interpolate';\n\nconst message = interpolate('Welcome {firstName}', {firstName: 'S\xe9bastien'});\n"})}),"\n",(0,i.jsx)(n.h3,{id:"translate-imperative",children:(0,i.jsx)(n.code,{children:"translate"})}),"\n",(0,i.jsxs)(n.p,{children:["The imperative counterpart of the ",(0,i.jsx)(n.a,{href:"#translate",children:(0,i.jsx)(n.code,{children:""})})," component. Also supporting ",(0,i.jsx)(n.a,{href:"#interpolate",children:"placeholders interpolation"}),"."]}),"\n",(0,i.jsxs)(n.admonition,{type:"tip",children:[(0,i.jsxs)(n.p,{children:["Use the imperative API for the ",(0,i.jsx)(n.strong,{children:"rare cases"})," where a ",(0,i.jsx)(n.strong,{children:"component cannot be used"}),", such as:"]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["the page ",(0,i.jsx)(n.code,{children:"title"})," metadata"]}),"\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.code,{children:"placeholder"})," props of form inputs"]}),"\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.code,{children:"aria-label"})," props for accessibility"]}),"\n"]})]}),"\n",(0,i.jsx)(n.h4,{id:"signature-1",children:"Signature"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"function translate(\n translation: {message: string; id?: string; description?: string},\n values: Record,\n): string;\n"})}),"\n",(0,i.jsx)(n.h4,{id:"example-2",children:"Example"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:'title="src/pages/index.js"',children:"import React from 'react';\nimport Layout from '@theme/Layout';\n\n// highlight-next-line\nimport {translate} from '@docusaurus/Translate';\n\nexport default function Home() {\n return (\n \n \n \n );\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"modules",children:"Modules"}),"\n",(0,i.jsx)(n.h3,{id:"executionenvironment",children:(0,i.jsx)(n.code,{children:"ExecutionEnvironment"})}),"\n",(0,i.jsx)(n.p,{children:"A module that exposes a few boolean variables to check the current rendering environment."}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["For React rendering logic, use ",(0,i.jsx)(n.a,{href:"#useIsBrowser",children:(0,i.jsx)(n.code,{children:"useIsBrowser()"})})," or ",(0,i.jsx)(n.a,{href:"#browseronly",children:(0,i.jsx)(n.code,{children:""})})," instead."]})}),"\n",(0,i.jsx)(n.p,{children:"Example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment';\n\nif (ExecutionEnvironment.canUseDOM) {\n require('lib-that-only-works-client-side');\n}\n"})}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Field"}),(0,i.jsx)(n.th,{children:"Description"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"ExecutionEnvironment.canUseDOM"})}),(0,i.jsxs)(n.td,{children:[(0,i.jsx)(n.code,{children:"true"})," if on client/browser, ",(0,i.jsx)(n.code,{children:"false"})," on Node.js/prerendering."]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"ExecutionEnvironment.canUseEventListeners"})}),(0,i.jsxs)(n.td,{children:[(0,i.jsx)(n.code,{children:"true"})," if on client and has ",(0,i.jsx)(n.code,{children:"window.addEventListener"}),"."]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"ExecutionEnvironment.canUseIntersectionObserver"})}),(0,i.jsxs)(n.td,{children:[(0,i.jsx)(n.code,{children:"true"})," if on client and has ",(0,i.jsx)(n.code,{children:"IntersectionObserver"}),"."]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"ExecutionEnvironment.canUseViewport"})}),(0,i.jsxs)(n.td,{children:[(0,i.jsx)(n.code,{children:"true"})," if on client and has ",(0,i.jsx)(n.code,{children:"window.screen"}),"."]})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"constants",children:(0,i.jsx)(n.code,{children:"constants"})}),"\n",(0,i.jsx)(n.p,{children:"A module exposing useful constants to client-side theme code."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"import {DEFAULT_PLUGIN_ID} from '@docusaurus/constants';\n"})}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Named export"}),(0,i.jsx)(n.th,{children:"Value"})]})}),(0,i.jsx)(n.tbody,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"DEFAULT_PLUGIN_ID"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"default"})})]})})]})]})}function u(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>l});var t=s(63696);let i={},r=t.createContext(i);function o(e){let n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/891c0dad.abf60d67.js b/assets/js/891c0dad.abf60d67.js new file mode 100644 index 0000000000..1d8d3f280b --- /dev/null +++ b/assets/js/891c0dad.abf60d67.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[49941],{43730:(e,n,s)=>{s.d(n,{A:()=>r});var t=s(62540),i=s(63696);function r({children:e="Boom!",message:n="Boom!\nSomething bad happened, but you can try again!",cause:s}){let[r,o]=(0,i.useState)(!1);if(r)throw Error(n,{cause:s?Error(s):void 0});return(0,t.jsx)("button",{className:"button button--danger",type:"button",onClick:()=>o(!0),children:e})}},97649:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>l,metadata:()=>t,toc:()=>d});let t=JSON.parse('{"id":"docusaurus-core","title":"Docusaurus Client API","description":"Docusaurus provides some APIs on the clients that can be helpful to you when building your site.","source":"@site/docs/docusaurus-core.mdx","sourceDirName":".","slug":"/docusaurus-core","permalink":"/docs/docusaurus-core","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/docusaurus-core.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"sidebar_label":"Client API"},"sidebar":"api","previous":{"title":"CLI","permalink":"/docs/cli"},"next":{"title":"docusaurus.config.js","permalink":"/docs/api/docusaurus-config"}}');var i=s(62540),r=s(43023),o=s(43730);let l={sidebar_label:"Client API"},a="Docusaurus Client API",c={},d=[{value:"Components",id:"components",level:2},{value:"<ErrorBoundary />",id:"errorboundary",level:3},{value:"Props",id:"errorboundary-props",level:4},{value:"<Head/>",id:"head",level:3},{value:"<Link/>",id:"link",level:3},{value:"to: string",id:"to-string",level:4},{value:"<Redirect/>",id:"redirect",level:3},{value:"<BrowserOnly/>",id:"browseronly",level:3},{value:"Props",id:"browseronly-props",level:4},{value:"Example with code",id:"browseronly-example-code",level:4},{value:"Example with a library",id:"browseronly-example-library",level:4},{value:"<Interpolate/>",id:"interpolate",level:3},{value:"Props",id:"interpolate-props",level:4},{value:"<Translate/>",id:"translate",level:3},{value:"Props",id:"translate-props",level:4},{value:"Example",id:"example",level:4},{value:"Hooks",id:"hooks",level:2},{value:"useDocusaurusContext",id:"useDocusaurusContext",level:3},{value:"useIsBrowser",id:"useIsBrowser",level:3},{value:"useBaseUrl",id:"useBaseUrl",level:3},{value:"Options",id:"options",level:4},{value:"Example usage:",id:"example-usage",level:4},{value:"useBaseUrlUtils",id:"useBaseUrlUtils",level:3},{value:"useGlobalData",id:"useGlobalData",level:3},{value:"usePluginData",id:"usePluginData",level:3},{value:"useAllPluginInstancesData",id:"useAllPluginInstancesData",level:3},{value:"useBrokenLinks",id:"useBrokenLinks",level:3},{value:"Functions",id:"functions",level:2},{value:"interpolate",id:"interpolate-1",level:3},{value:"Signature",id:"signature",level:4},{value:"Example",id:"example-1",level:4},{value:"translate",id:"translate-imperative",level:3},{value:"Signature",id:"signature-1",level:4},{value:"Example",id:"example-2",level:4},{value:"Modules",id:"modules",level:2},{value:"ExecutionEnvironment",id:"executionenvironment",level:3},{value:"constants",id:"constants",level:3}];function h(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"docusaurus-client-api",children:"Docusaurus Client API"})}),"\n",(0,i.jsx)(n.p,{children:"Docusaurus provides some APIs on the clients that can be helpful to you when building your site."}),"\n",(0,i.jsx)(n.h2,{id:"components",children:"Components"}),"\n",(0,i.jsx)(n.h3,{id:"errorboundary",children:(0,i.jsx)(n.code,{children:""})}),"\n",(0,i.jsxs)(n.p,{children:["This component creates a ",(0,i.jsx)(n.a,{href:"https://reactjs.org/docs/error-boundaries.html",children:"React error boundary"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"Use it to wrap components that might throw, and display a fallback when that happens instead of crashing the whole app."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\nimport ErrorBoundary from '@docusaurus/ErrorBoundary';\n\nconst SafeComponent = () => (\n (\n
\n

This component crashed because of error: {error.message}.

\n \n
\n )}>\n \n
\n);\n"})}),"\n","\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsxs)(n.p,{children:["To see it in action, click here: ",(0,i.jsx)(o.A,{})]})}),"\n",(0,i.jsx)(n.admonition,{type:"info",children:(0,i.jsx)(n.p,{children:"Docusaurus uses this component to catch errors within the theme's layout, and also within the entire app."})}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsx)(n.p,{children:"This component doesn't catch build-time errors and only protects against client-side render errors that can happen when using stateful React components."})}),"\n",(0,i.jsx)(n.h4,{id:"errorboundary-props",children:"Props"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"fallback"}),": an optional render callback returning a JSX element. It will receive an object with 2 attributes: ",(0,i.jsx)(n.code,{children:"error"}),", the error that was caught, and ",(0,i.jsx)(n.code,{children:"tryAgain"}),", a function (",(0,i.jsx)(n.code,{children:"() => void"}),") callback to reset the error in the component and try rendering it again. If not present, ",(0,i.jsx)(n.code,{children:"@theme/Error"})," will be rendered instead. ",(0,i.jsx)(n.code,{children:"@theme/Error"})," is used for the error boundaries wrapping the site, above the layout."]}),"\n"]}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"fallback"})," prop is a callback, and ",(0,i.jsx)(n.strong,{children:"not a React functional component"}),". You can't use React hooks inside this callback."]})}),"\n",(0,i.jsx)(n.h3,{id:"head",children:(0,i.jsx)(n.code,{children:""})}),"\n",(0,i.jsxs)(n.p,{children:["This reusable React component will manage all of your changes to the document head. It takes plain HTML tags and outputs plain HTML tags and is beginner-friendly. It is a wrapper around ",(0,i.jsx)(n.a,{href:"https://github.com/nfl/react-helmet",children:"React Helmet"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"Usage Example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:'import React from \'react\';\n// highlight-next-line\nimport Head from \'@docusaurus/Head\';\n\nconst MySEO = () => (\n // highlight-start\n \n \n \n My Title\n \n \n // highlight-end\n);\n'})}),"\n",(0,i.jsx)(n.p,{children:"Nested or latter components will override duplicate usages:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:'\n {/* highlight-start */}\n \n My Title\n \n \n {/* highlight-end */}\n \n {/* highlight-start */}\n \n Nested Title\n \n \n {/* highlight-end */}\n \n\n'})}),"\n",(0,i.jsx)(n.p,{children:"Outputs:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-html",children:'\n Nested Title\n \n\n'})}),"\n",(0,i.jsx)(n.h3,{id:"link",children:(0,i.jsx)(n.code,{children:""})}),"\n",(0,i.jsxs)(n.p,{children:["This component enables linking to internal pages as well as a powerful performance feature called preloading. Preloading is used to prefetch resources so that the resources are fetched by the time the user navigates with this component. We use an ",(0,i.jsx)(n.code,{children:"IntersectionObserver"})," to fetch a low-priority request when the ",(0,i.jsx)(n.code,{children:""})," is in the viewport and then use an ",(0,i.jsx)(n.code,{children:"onMouseOver"})," event to trigger a high-priority request when it is likely that a user will navigate to the requested resource."]}),"\n",(0,i.jsxs)(n.p,{children:["The component is a wrapper around react-router\u2019s ",(0,i.jsx)(n.code,{children:""})," component that adds useful enhancements specific to Docusaurus. All props are passed through to react-router\u2019s ",(0,i.jsx)(n.code,{children:""})," component."]}),"\n",(0,i.jsxs)(n.p,{children:["External links also work, and automatically have these props: ",(0,i.jsx)(n.code,{children:'target="_blank" rel="noopener noreferrer"'}),"."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\n// highlight-next-line\nimport Link from '@docusaurus/Link';\n\nconst Page = () => (\n
\n

\n {/* highlight-next-line */}\n Check out my blog!\n

\n

\n {/* highlight-next-line */}\n Follow me on X!\n

\n
\n);\n"})}),"\n",(0,i.jsxs)(n.h4,{id:"to-string",children:[(0,i.jsx)(n.code,{children:"to"}),": string"]}),"\n",(0,i.jsxs)(n.p,{children:["The target location to navigate to. Example: ",(0,i.jsx)(n.code,{children:"/docs/introduction"}),"."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:'\n'})}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsxs)(n.p,{children:["Prefer this component to vanilla ",(0,i.jsx)(n.code,{children:"
"})," tags because Docusaurus does a lot of optimizations (e.g. broken path detection, prefetching, applying base URL...) if you use ",(0,i.jsx)(n.code,{children:""}),"."]})}),"\n",(0,i.jsx)(n.h3,{id:"redirect",children:(0,i.jsx)(n.code,{children:""})}),"\n",(0,i.jsxs)(n.p,{children:["Rendering a ",(0,i.jsx)(n.code,{children:""})," will navigate to a new location. The new location will override the current location in the history stack like server-side redirects (HTTP 3xx) do. You can refer to ",(0,i.jsx)(n.a,{href:"https://reacttraining.com/react-router/web/api/Redirect",children:"React Router's Redirect documentation"})," for more info on available props."]}),"\n",(0,i.jsx)(n.p,{children:"Example usage:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\n// highlight-next-line\nimport {Redirect} from '@docusaurus/router';\n\nconst Home = () => {\n // highlight-next-line\n return ;\n};\n"})}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"@docusaurus/router"})," implements ",(0,i.jsx)(n.a,{href:"https://reacttraining.com/react-router/web/guides/quick-start",children:"React Router"})," and supports its features."]})}),"\n",(0,i.jsx)(n.h3,{id:"browseronly",children:(0,i.jsx)(n.code,{children:""})}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:""})," component permits to render React components only in the browser after the React app has hydrated."]}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsxs)(n.p,{children:["Use it for integrating with code that can't run in Node.js, because the ",(0,i.jsx)(n.code,{children:"window"})," or ",(0,i.jsx)(n.code,{children:"document"})," objects are being accessed."]})}),"\n",(0,i.jsx)(n.h4,{id:"browseronly-props",children:"Props"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"children"}),": render function prop returning browser-only JSX. Will not be executed in Node.js"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"fallback"})," (optional): JSX to render on the server (Node.js) and until React hydration completes."]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"browseronly-example-code",children:"Example with code"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"// highlight-start\nimport BrowserOnly from '@docusaurus/BrowserOnly';\n// highlight-end\n\nconst MyComponent = () => {\n return (\n // highlight-start\n \n {() => page url = {window.location.href}}\n \n // highlight-end\n );\n};\n"})}),"\n",(0,i.jsx)(n.h4,{id:"browseronly-example-library",children:"Example with a library"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"// highlight-start\nimport BrowserOnly from '@docusaurus/BrowserOnly';\n// highlight-end\n\nconst MyComponent = (props) => {\n return (\n // highlight-start\n Loading...}>\n {() => {\n const LibComponent = require('some-lib').LibComponent;\n return ;\n }}\n \n // highlight-end\n );\n};\n"})}),"\n",(0,i.jsx)(n.h3,{id:"interpolate",children:(0,i.jsx)(n.code,{children:""})}),"\n",(0,i.jsx)(n.p,{children:"A simple interpolation component for text containing dynamic placeholders."}),"\n",(0,i.jsx)(n.p,{children:"The placeholders will be replaced with the provided dynamic values and JSX elements of your choice (strings, links, styled elements...)."}),"\n",(0,i.jsx)(n.h4,{id:"interpolate-props",children:"Props"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"children"}),": text containing interpolation placeholders like ",(0,i.jsx)(n.code,{children:"{placeholderName}"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"values"}),": object containing interpolation placeholder values"]}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\nimport Link from '@docusaurus/Link';\nimport Interpolate from '@docusaurus/Interpolate';\n\nexport default function VisitMyWebsiteMessage() {\n return (\n // highlight-start\n \n website\n \n ),\n }}>\n {'Hello, {firstName}! How are you? Take a look at my {website}'}\n \n // highlight-end\n );\n}\n"})}),"\n",(0,i.jsx)(n.h3,{id:"translate",children:(0,i.jsx)(n.code,{children:""})}),"\n",(0,i.jsxs)(n.p,{children:["When ",(0,i.jsx)(n.a,{href:"/docs/i18n/introduction",children:"localizing your site"}),", the ",(0,i.jsx)(n.code,{children:""})," component will allow providing ",(0,i.jsx)(n.strong,{children:"translation support to React components"}),", such as your homepage. The ",(0,i.jsx)(n.code,{children:""})," component supports ",(0,i.jsx)(n.a,{href:"#interpolate",children:"interpolation"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["The translation strings will statically extracted from your code with the ",(0,i.jsx)(n.a,{href:"/docs/cli#docusaurus-write-translations-sitedir",children:(0,i.jsx)(n.code,{children:"docusaurus write-translations"})})," CLI and a ",(0,i.jsx)(n.code,{children:"code.json"})," translation file will be created in ",(0,i.jsx)(n.code,{children:"website/i18n/[locale]"}),"."]}),"\n",(0,i.jsxs)(n.admonition,{type:"note",children:[(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:""})," props ",(0,i.jsx)(n.strong,{children:"must be hardcoded strings"}),"."]}),(0,i.jsxs)(n.p,{children:["Apart from the ",(0,i.jsx)(n.code,{children:"values"})," prop used for interpolation, it is ",(0,i.jsx)(n.strong,{children:"not possible to use variables"}),", or the static extraction wouldn't work."]})]}),"\n",(0,i.jsx)(n.h4,{id:"translate-props",children:"Props"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"children"}),": untranslated string in the default site locale (can contain ",(0,i.jsx)(n.a,{href:"#interpolate",children:"interpolation placeholders"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"id"}),": optional value to be used as the key in JSON translation files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"description"}),": optional text to help the translator"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"values"}),": optional object containing interpolation placeholder values"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"example",children:"Example"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:'title="src/pages/index.js"',children:"import React from 'react';\nimport Layout from '@theme/Layout';\n\n// highlight-start\nimport Translate from '@docusaurus/Translate';\n// highlight-end\n\nexport default function Home() {\n return (\n \n

\n {/* highlight-start */}\n \n Welcome to my website\n \n {/* highlight-end */}\n

\n
\n {/* highlight-start */}\n \n {'Welcome, {firstName}! How are you?'}\n \n {/* highlight-end */}\n
\n
\n );\n}\n"})}),"\n",(0,i.jsxs)(n.admonition,{type:"note",children:[(0,i.jsxs)(n.p,{children:["You can even omit the children prop and specify a translation string in your ",(0,i.jsx)(n.code,{children:"code.json"})," file manually after running the ",(0,i.jsx)(n.code,{children:"docusaurus write-translations"})," CLI command."]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:'\n'})})]}),"\n",(0,i.jsx)(n.admonition,{type:"info",children:(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:""})," component supports interpolation. You can also implement ",(0,i.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/pull/i18n/i18n-tutorial.mdx#pluralization",children:"string pluralization"})," through some custom code and the ",(0,i.jsxs)(n.a,{href:"#translate-imperative",children:[(0,i.jsx)(n.code,{children:"translate"})," imperative API"]}),"."]})}),"\n",(0,i.jsx)(n.h2,{id:"hooks",children:"Hooks"}),"\n",(0,i.jsx)(n.h3,{id:"useDocusaurusContext",children:(0,i.jsx)(n.code,{children:"useDocusaurusContext"})}),"\n",(0,i.jsxs)(n.p,{children:["React hook to access Docusaurus Context. The context contains the ",(0,i.jsx)(n.code,{children:"siteConfig"})," object from ",(0,i.jsx)(n.a,{href:"/docs/api/docusaurus-config",children:"docusaurus.config.js"})," and some additional site metadata."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"type PluginVersionInformation =\n | {readonly type: 'package'; readonly version?: string}\n | {readonly type: 'project'}\n | {readonly type: 'local'}\n | {readonly type: 'synthetic'};\n\ntype SiteMetadata = {\n readonly docusaurusVersion: string;\n readonly siteVersion?: string;\n readonly pluginVersions: Record;\n};\n\ntype I18nLocaleConfig = {\n label: string;\n direction: string;\n};\n\ntype I18n = {\n defaultLocale: string;\n locales: [string, ...string[]];\n currentLocale: string;\n localeConfigs: Record;\n};\n\ntype DocusaurusContext = {\n siteConfig: DocusaurusConfig;\n siteMetadata: SiteMetadata;\n globalData: Record;\n i18n: I18n;\n codeTranslations: Record;\n};\n"})}),"\n",(0,i.jsx)(n.p,{children:"Usage example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\nimport useDocusaurusContext from '@docusaurus/useDocusaurusContext';\n\nconst MyComponent = () => {\n // highlight-next-line\n const {siteConfig, siteMetadata} = useDocusaurusContext();\n return (\n
\n {/* highlight-start */}\n

{siteConfig.title}

\n
{siteMetadata.siteVersion}
\n
{siteMetadata.docusaurusVersion}
\n {/* highlight-end */}\n
\n );\n};\n"})}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"siteConfig"})," object only contains ",(0,i.jsx)(n.strong,{children:"serializable values"})," (values that are preserved after ",(0,i.jsx)(n.code,{children:"JSON.stringify()"}),"). Functions, regexes, etc. would be lost on the client side."]})}),"\n",(0,i.jsx)(n.h3,{id:"useIsBrowser",children:(0,i.jsx)(n.code,{children:"useIsBrowser"})}),"\n",(0,i.jsxs)(n.p,{children:["Returns ",(0,i.jsx)(n.code,{children:"true"})," when the React app has successfully hydrated in the browser."]}),"\n",(0,i.jsxs)(n.admonition,{type:"warning",children:[(0,i.jsxs)(n.p,{children:["Use this hook instead of ",(0,i.jsx)(n.code,{children:"typeof windows !== 'undefined'"})," in React rendering logic."]}),(0,i.jsxs)(n.p,{children:["The first client-side render output (in the browser) ",(0,i.jsx)(n.strong,{children:"must be exactly the same"})," as the server-side render output (Node.js). Not following this rule can lead to unexpected hydration behaviors, as described in ",(0,i.jsx)(n.a,{href:"https://www.joshwcomeau.com/react/the-perils-of-rehydration/",children:"The Perils of Rehydration"}),"."]})]}),"\n",(0,i.jsx)(n.p,{children:"Usage example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\nimport useIsBrowser from '@docusaurus/useIsBrowser';\n\nconst MyComponent = () => {\n // highlight-start\n const isBrowser = useIsBrowser();\n // highlight-end\n return
{isBrowser ? 'Client' : 'Server'}
;\n};\n"})}),"\n",(0,i.jsx)(n.h3,{id:"useBaseUrl",children:(0,i.jsx)(n.code,{children:"useBaseUrl"})}),"\n",(0,i.jsxs)(n.p,{children:["React hook to prepend your site ",(0,i.jsx)(n.code,{children:"baseUrl"})," to a string."]}),"\n",(0,i.jsxs)(n.admonition,{type:"warning",children:[(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Don't use it for regular links!"})}),(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"/baseUrl/"})," prefix is automatically added to all ",(0,i.jsx)(n.strong,{children:"absolute paths"})," by default:"]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Markdown: ",(0,i.jsx)(n.code,{children:"[link](/my/path)"})," will link to ",(0,i.jsx)(n.code,{children:"/baseUrl/my/path"})]}),"\n",(0,i.jsxs)(n.li,{children:["React: ",(0,i.jsx)(n.code,{children:'link'})," will link to ",(0,i.jsx)(n.code,{children:"/baseUrl/my/path"})]}),"\n"]})]}),"\n",(0,i.jsx)(n.h4,{id:"options",children:"Options"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"type BaseUrlOptions = {\n forcePrependBaseUrl: boolean;\n absolute: boolean;\n};\n"})}),"\n",(0,i.jsx)(n.h4,{id:"example-usage",children:"Example usage:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\nimport useBaseUrl from '@docusaurus/useBaseUrl';\n\nconst SomeImage = () => {\n // highlight-start\n const imgSrc = useBaseUrl('/img/myImage.png');\n // highlight-end\n return ;\n};\n"})}),"\n",(0,i.jsxs)(n.admonition,{type:"tip",children:[(0,i.jsxs)(n.p,{children:["In most cases, you don't need ",(0,i.jsx)(n.code,{children:"useBaseUrl"}),"."]}),(0,i.jsxs)(n.p,{children:["Prefer a ",(0,i.jsx)(n.code,{children:"require()"})," call for ",(0,i.jsx)(n.a,{href:"/docs/markdown-features/assets",children:"assets"}),":"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"\n"})})]}),"\n",(0,i.jsx)(n.h3,{id:"useBaseUrlUtils",children:(0,i.jsx)(n.code,{children:"useBaseUrlUtils"})}),"\n",(0,i.jsxs)(n.p,{children:["Sometimes ",(0,i.jsx)(n.code,{children:"useBaseUrl"})," is not good enough. This hook return additional utils related to your site's base URL."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"withBaseUrl"}),": useful if you need to add base URLs to multiple URLs at once."]}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\nimport {useBaseUrlUtils} from '@docusaurus/useBaseUrl';\n\nconst Component = () => {\n const urls = ['/a', '/b'];\n // highlight-start\n const {withBaseUrl} = useBaseUrlUtils();\n const urlsWithBaseUrl = urls.map(withBaseUrl);\n // highlight-end\n return
{/* ... */}
;\n};\n"})}),"\n",(0,i.jsx)(n.h3,{id:"useGlobalData",children:(0,i.jsx)(n.code,{children:"useGlobalData"})}),"\n",(0,i.jsx)(n.p,{children:"React hook to access Docusaurus global data created by all the plugins."}),"\n",(0,i.jsx)(n.p,{children:"Global data is namespaced by plugin name then by plugin ID."}),"\n",(0,i.jsx)(n.admonition,{type:"info",children:(0,i.jsx)(n.p,{children:"Plugin ID is only useful when a plugin is used multiple times on the same site. Each plugin instance is able to create its own global data."})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:'type GlobalData = Record<\n PluginName,\n Record<\n PluginId, // "default" by default\n any // plugin-specific data\n >\n>;\n'})}),"\n",(0,i.jsx)(n.p,{children:"Usage example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\n// highlight-next-line\nimport useGlobalData from '@docusaurus/useGlobalData';\n\nconst MyComponent = () => {\n // highlight-start\n const globalData = useGlobalData();\n const myPluginData = globalData['my-plugin']['default'];\n return
{myPluginData.someAttribute}
;\n // highlight-end\n};\n"})}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsxs)(n.p,{children:["Inspect your site's global data at ",(0,i.jsx)(n.code,{children:".docusaurus/globalData.json"})]})}),"\n",(0,i.jsx)(n.h3,{id:"usePluginData",children:(0,i.jsx)(n.code,{children:"usePluginData"})}),"\n",(0,i.jsx)(n.p,{children:"Access global data created by a specific plugin instance."}),"\n",(0,i.jsx)(n.p,{children:"This is the most convenient hook to access plugin global data and should be used most of the time."}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"pluginId"})," is optional if you don't use multi-instance plugins."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"function usePluginData(\n pluginName: string,\n pluginId?: string,\n options?: {failfast?: boolean},\n);\n"})}),"\n",(0,i.jsx)(n.p,{children:"Usage example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\n// highlight-next-line\nimport {usePluginData} from '@docusaurus/useGlobalData';\n\nconst MyComponent = () => {\n // highlight-start\n const myPluginData = usePluginData('my-plugin');\n return
{myPluginData.someAttribute}
;\n // highlight-end\n};\n"})}),"\n",(0,i.jsx)(n.h3,{id:"useAllPluginInstancesData",children:(0,i.jsx)(n.code,{children:"useAllPluginInstancesData"})}),"\n",(0,i.jsx)(n.p,{children:"Access global data created by a specific plugin. Given a plugin name, it returns the data of all the plugins instances of that name, by plugin id."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"function useAllPluginInstancesData(\n pluginName: string,\n options?: {failfast?: boolean},\n);\n"})}),"\n",(0,i.jsx)(n.p,{children:"Usage example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",children:"import React from 'react';\n// highlight-next-line\nimport {useAllPluginInstancesData} from '@docusaurus/useGlobalData';\n\nconst MyComponent = () => {\n // highlight-start\n const allPluginInstancesData = useAllPluginInstancesData('my-plugin');\n const myPluginData = allPluginInstancesData['default'];\n return
{myPluginData.someAttribute}
;\n // highlight-end\n};\n"})}),"\n",(0,i.jsx)(n.h3,{id:"useBrokenLinks",children:(0,i.jsx)(n.code,{children:"useBrokenLinks"})}),"\n",(0,i.jsx)(n.p,{children:"React hook to access the Docusaurus broken link checker APIs, exposing a way for a Docusaurus pages to report and collect their links and anchors."}),"\n",(0,i.jsxs)(n.admonition,{type:"warning",children:[(0,i.jsxs)(n.p,{children:["This is an ",(0,i.jsx)(n.strong,{children:"advanced"})," API that ",(0,i.jsx)(n.strong,{children:"most Docusaurus users don't need to use directly"}),"."]}),(0,i.jsxs)(n.p,{children:["It is already ",(0,i.jsx)(n.strong,{children:"built-in"})," in existing high-level components:"]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.a,{href:"#link",children:(0,i.jsx)(n.code,{children:""})})," component will collect links for you"]}),"\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.code,{children:"@theme/Heading"})," (used for Markdown headings) will collect anchors"]}),"\n"]}),(0,i.jsxs)(n.p,{children:["Use ",(0,i.jsx)(n.code,{children:"useBrokenLinks()"})," if you implement your own ",(0,i.jsx)(n.code,{children:""})," or ",(0,i.jsx)(n.code,{children:""})," component."]})]}),"\n",(0,i.jsx)(n.p,{children:"Usage example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="MyHeading.js"',children:"import useBrokenLinks from '@docusaurus/useBrokenLinks';\n\nexport default function MyHeading(props) {\n useBrokenLinks().collectAnchor(props.id);\n return

;\n}\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:'title="MyLink.js"',children:"import useBrokenLinks from '@docusaurus/useBrokenLinks';\n\nexport default function MyLink(props) {\n useBrokenLinks().collectLink(props.href);\n return ;\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"functions",children:"Functions"}),"\n",(0,i.jsx)(n.h3,{id:"interpolate-1",children:(0,i.jsx)(n.code,{children:"interpolate"})}),"\n",(0,i.jsxs)(n.p,{children:["The imperative counterpart of the ",(0,i.jsx)(n.a,{href:"#interpolate",children:(0,i.jsx)(n.code,{children:""})})," component."]}),"\n",(0,i.jsx)(n.h4,{id:"signature",children:"Signature"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"// Simple string interpolation\nfunction interpolate(text: string, values: Record): string;\n\n// JSX interpolation\nfunction interpolate(\n text: string,\n values: Record,\n): ReactNode;\n"})}),"\n",(0,i.jsx)(n.h4,{id:"example-1",children:"Example"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"// highlight-next-line\nimport {interpolate} from '@docusaurus/Interpolate';\n\nconst message = interpolate('Welcome {firstName}', {firstName: 'S\xe9bastien'});\n"})}),"\n",(0,i.jsx)(n.h3,{id:"translate-imperative",children:(0,i.jsx)(n.code,{children:"translate"})}),"\n",(0,i.jsxs)(n.p,{children:["The imperative counterpart of the ",(0,i.jsx)(n.a,{href:"#translate",children:(0,i.jsx)(n.code,{children:""})})," component. Also supporting ",(0,i.jsx)(n.a,{href:"#interpolate",children:"placeholders interpolation"}),"."]}),"\n",(0,i.jsxs)(n.admonition,{type:"tip",children:[(0,i.jsxs)(n.p,{children:["Use the imperative API for the ",(0,i.jsx)(n.strong,{children:"rare cases"})," where a ",(0,i.jsx)(n.strong,{children:"component cannot be used"}),", such as:"]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["the page ",(0,i.jsx)(n.code,{children:"title"})," metadata"]}),"\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.code,{children:"placeholder"})," props of form inputs"]}),"\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.code,{children:"aria-label"})," props for accessibility"]}),"\n"]})]}),"\n",(0,i.jsx)(n.h4,{id:"signature-1",children:"Signature"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"function translate(\n translation: {message: string; id?: string; description?: string},\n values: Record,\n): string;\n"})}),"\n",(0,i.jsx)(n.h4,{id:"example-2",children:"Example"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-jsx",metastring:'title="src/pages/index.js"',children:"import React from 'react';\nimport Layout from '@theme/Layout';\n\n// highlight-next-line\nimport {translate} from '@docusaurus/Translate';\n\nexport default function Home() {\n return (\n \n \n \n );\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"modules",children:"Modules"}),"\n",(0,i.jsx)(n.h3,{id:"executionenvironment",children:(0,i.jsx)(n.code,{children:"ExecutionEnvironment"})}),"\n",(0,i.jsx)(n.p,{children:"A module that exposes a few boolean variables to check the current rendering environment."}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["For React rendering logic, use ",(0,i.jsx)(n.a,{href:"#useIsBrowser",children:(0,i.jsx)(n.code,{children:"useIsBrowser()"})})," or ",(0,i.jsx)(n.a,{href:"#browseronly",children:(0,i.jsx)(n.code,{children:""})})," instead."]})}),"\n",(0,i.jsx)(n.p,{children:"Example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment';\n\nif (ExecutionEnvironment.canUseDOM) {\n require('lib-that-only-works-client-side');\n}\n"})}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Field"}),(0,i.jsx)(n.th,{children:"Description"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"ExecutionEnvironment.canUseDOM"})}),(0,i.jsxs)(n.td,{children:[(0,i.jsx)(n.code,{children:"true"})," if on client/browser, ",(0,i.jsx)(n.code,{children:"false"})," on Node.js/prerendering."]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"ExecutionEnvironment.canUseEventListeners"})}),(0,i.jsxs)(n.td,{children:[(0,i.jsx)(n.code,{children:"true"})," if on client and has ",(0,i.jsx)(n.code,{children:"window.addEventListener"}),"."]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"ExecutionEnvironment.canUseIntersectionObserver"})}),(0,i.jsxs)(n.td,{children:[(0,i.jsx)(n.code,{children:"true"})," if on client and has ",(0,i.jsx)(n.code,{children:"IntersectionObserver"}),"."]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"ExecutionEnvironment.canUseViewport"})}),(0,i.jsxs)(n.td,{children:[(0,i.jsx)(n.code,{children:"true"})," if on client and has ",(0,i.jsx)(n.code,{children:"window.screen"}),"."]})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"constants",children:(0,i.jsx)(n.code,{children:"constants"})}),"\n",(0,i.jsx)(n.p,{children:"A module exposing useful constants to client-side theme code."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"import {DEFAULT_PLUGIN_ID} from '@docusaurus/constants';\n"})}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Named export"}),(0,i.jsx)(n.th,{children:"Value"})]})}),(0,i.jsx)(n.tbody,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"DEFAULT_PLUGIN_ID"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"default"})})]})})]})]})}function u(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>l});var t=s(63696);let i={},r=t.createContext(i);function o(e){let n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/89701.312474ab.js b/assets/js/89701.312474ab.js new file mode 100644 index 0000000000..abe3eb51a0 --- /dev/null +++ b/assets/js/89701.312474ab.js @@ -0,0 +1,63 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[89701],{69439:(t,e,r)=>{r.d(e,{m:()=>i});var a=r(72912),i=class{constructor(t){this.init=t,this.records=this.init()}static{(0,a.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},30353:(t,e,r)=>{function a(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}r.d(e,{S:()=>a}),(0,r(72912).K2)(a,"populateCommonDb")},89701:(t,e,r)=>{r.d(e,{diagram:()=>tp});var a=r(30353),i=r(69439),o=r(67027),c=r(72912),s=r(5165),n=r(89601),h={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},d=c.UI.gitGraph,l=(0,c.K2)(()=>(0,o.$t)({...d,...(0,c.zj)().gitGraph}),"getConfig"),m=new i.m(()=>{let t=l(),e=t.mainBranchName,r=t.mainBranchOrder;return{mainBranchName:e,commits:new Map,head:null,branchConfig:new Map([[e,{name:e,order:r}]]),branches:new Map([[e,null]]),currBranch:e,direction:"LR",seq:0,options:{}}});function $(){return(0,o.yT)({length:7})}function g(t,e){let r=Object.create(null);return t.reduce((t,a)=>{let i=e(a);return r[i]||(r[i]=!0,t.push(a)),t},[])}(0,c.K2)($,"getID"),(0,c.K2)(g,"uniqBy");var y=(0,c.K2)(function(t){m.records.direction=t},"setDirection"),p=(0,c.K2)(function(t){c.Rm.debug("options str",t),t=(t=t?.trim())||"{}";try{m.records.options=JSON.parse(t)}catch(t){c.Rm.error("error while parsing gitGraph options",t.message)}},"setOptions"),x=(0,c.K2)(function(){return m.records.options},"getOptions"),f=(0,c.K2)(function(t){let e=t.msg,r=t.id,a=t.type,i=t.tags;c.Rm.info("commit",e,r,a,i),c.Rm.debug("Entering commit:",e,r,a,i);let o=l();r=c.Y2.sanitizeText(r,o),e=c.Y2.sanitizeText(e,o),i=i?.map(t=>c.Y2.sanitizeText(t,o));let s={id:r||m.records.seq+"-"+$(),message:e,seq:m.records.seq++,type:a??h.NORMAL,tags:i??[],parents:null==m.records.head?[]:[m.records.head.id],branch:m.records.currBranch};m.records.head=s,c.Rm.info("main branch",o.mainBranchName),m.records.commits.set(s.id,s),m.records.branches.set(m.records.currBranch,s.id),c.Rm.debug("in pushCommit "+s.id)},"commit"),u=(0,c.K2)(function(t){let e=t.name,r=t.order;if(e=c.Y2.sanitizeText(e,l()),m.records.branches.has(e))throw Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${e}")`);m.records.branches.set(e,null!=m.records.head?m.records.head.id:null),m.records.branchConfig.set(e,{name:e,order:r}),B(e),c.Rm.debug("in createBranch")},"branch"),b=(0,c.K2)(t=>{let e=t.branch,r=t.id,a=t.type,i=t.tags,o=l();e=c.Y2.sanitizeText(e,o),r&&(r=c.Y2.sanitizeText(r,o));let s=m.records.branches.get(m.records.currBranch),n=m.records.branches.get(e),d=s?m.records.commits.get(s):void 0,g=n?m.records.commits.get(n):void 0;if(d&&g&&d.branch===e)throw Error(`Cannot merge branch '${e}' into itself.`);if(m.records.currBranch===e){let t=Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},t}if(void 0===d||!d){let t=Error(`Incorrect usage of "merge". Current branch (${m.records.currBranch})has no commits`);throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["commit"]},t}if(!m.records.branches.has(e)){let t=Error('Incorrect usage of "merge". Branch to be merged ('+e+") does not exist");throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:[`branch ${e}`]},t}if(void 0===g||!g){let t=Error('Incorrect usage of "merge". Branch to be merged ('+e+") has no commits");throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:['"commit"']},t}if(d===g){let t=Error('Incorrect usage of "merge". Both branches have same head');throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},t}if(r&&m.records.commits.has(r)){let t=Error('Incorrect usage of "merge". Commit with id:'+r+" already exists, use different custom Id");throw t.hash={text:`merge ${e} ${r} ${a} ${i?.join(" ")}`,token:`merge ${e} ${r} ${a} ${i?.join(" ")}`,expected:[`merge ${e} ${r}_UNIQUE ${a} ${i?.join(" ")}`]},t}let y={id:r||`${m.records.seq}-${$()}`,message:`merged branch ${e} into ${m.records.currBranch}`,seq:m.records.seq++,parents:null==m.records.head?[]:[m.records.head.id,n||""],branch:m.records.currBranch,type:h.MERGE,customType:a,customId:!!r,tags:i??[]};m.records.head=y,m.records.commits.set(y.id,y),m.records.branches.set(m.records.currBranch,y.id),c.Rm.debug(m.records.branches),c.Rm.debug("in mergeBranch")},"merge"),w=(0,c.K2)(function(t){let e=t.id,r=t.targetId,a=t.tags,i=t.parent;c.Rm.debug("Entering cherryPick:",e,r,a);let o=l();if(e=c.Y2.sanitizeText(e,o),r=c.Y2.sanitizeText(r,o),a=a?.map(t=>c.Y2.sanitizeText(t,o)),i=c.Y2.sanitizeText(i,o),!e||!m.records.commits.has(e)){let t=Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let s=m.records.commits.get(e);if(void 0===s||!s)throw Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(i&&!(Array.isArray(s.parents)&&s.parents.includes(i)))throw Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");let n=s.branch;if(s.type===h.MERGE&&!i)throw Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!r||!m.records.commits.has(r)){if(n===m.records.currBranch){let t=Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let t=m.records.branches.get(m.records.currBranch);if(void 0===t||!t){let t=Error(`Incorrect usage of "cherry-pick". Current branch (${m.records.currBranch})has no commits`);throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let o=m.records.commits.get(t);if(void 0===o||!o){let t=Error(`Incorrect usage of "cherry-pick". Current branch (${m.records.currBranch})has no commits`);throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let d={id:m.records.seq+"-"+$(),message:`cherry-picked ${s?.message} into ${m.records.currBranch}`,seq:m.records.seq++,parents:null==m.records.head?[]:[m.records.head.id,s.id],branch:m.records.currBranch,type:h.CHERRY_PICK,tags:a?a.filter(Boolean):[`cherry-pick:${s.id}${s.type===h.MERGE?`|parent:${i}`:""}`]};m.records.head=d,m.records.commits.set(d.id,d),m.records.branches.set(m.records.currBranch,d.id),c.Rm.debug(m.records.branches),c.Rm.debug("in cherryPick")}},"cherryPick"),B=(0,c.K2)(function(t){if(t=c.Y2.sanitizeText(t,l()),m.records.branches.has(t)){m.records.currBranch=t;let e=m.records.branches.get(m.records.currBranch);void 0!==e&&e?m.records.head=m.records.commits.get(e)??null:m.records.head=null}else{let e=Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`);throw e.hash={text:`checkout ${t}`,token:`checkout ${t}`,expected:[`branch ${t}`]},e}},"checkout");function E(t,e,r){let a=t.indexOf(e);-1===a?t.push(r):t.splice(a,1,r)}function k(t){let e=t.reduce((t,e)=>t.seq>e.seq?t:e,t[0]),r="";t.forEach(function(t){t===e?r+=" *":r+=" |"});let a=[r,e.id,e.seq];for(let t in m.records.branches)m.records.branches.get(t)===e.id&&a.push(t);if(c.Rm.debug(a.join(" ")),e.parents&&2==e.parents.length&&e.parents[0]&&e.parents[1]){let r=m.records.commits.get(e.parents[0]);E(t,e,r),e.parents[1]&&t.push(m.records.commits.get(e.parents[1]))}else if(0==e.parents.length)return;else if(e.parents[0]){let r=m.records.commits.get(e.parents[0]);E(t,e,r)}k(t=g(t,t=>t.id))}(0,c.K2)(E,"upsert"),(0,c.K2)(k,"prettyPrintCommitHistory");var C=(0,c.K2)(function(){c.Rm.debug(m.records.commits),k([R()[0]])},"prettyPrint"),L=(0,c.K2)(function(){m.reset(),(0,c.IU)()},"clear"),T=(0,c.K2)(function(){return[...m.records.branchConfig.values()].map((t,e)=>null!==t.order&&void 0!==t.order?t:{...t,order:parseFloat(`0.${e}`)}).sort((t,e)=>(t.order??0)-(e.order??0)).map(({name:t})=>({name:t}))},"getBranchesAsObjArray"),K=(0,c.K2)(function(){return m.records.branches},"getBranches"),M=(0,c.K2)(function(){return m.records.commits},"getCommits"),R=(0,c.K2)(function(){let t=[...m.records.commits.values()];return t.forEach(function(t){c.Rm.debug(t.id)}),t.sort((t,e)=>t.seq-e.seq),t},"getCommitsArray"),v={commitType:h,getConfig:l,setDirection:y,setOptions:p,getOptions:x,commit:f,branch:u,merge:b,cherryPick:w,checkout:B,prettyPrint:C,clear:L,getBranchesAsObjArray:T,getBranches:K,getCommits:M,getCommitsArray:R,getCurrentBranch:(0,c.K2)(function(){return m.records.currBranch},"getCurrentBranch"),getDirection:(0,c.K2)(function(){return m.records.direction},"getDirection"),getHead:(0,c.K2)(function(){return m.records.head},"getHead"),setAccTitle:c.SV,getAccTitle:c.iN,getAccDescription:c.m7,setAccDescription:c.EI,setDiagramTitle:c.ke,getDiagramTitle:c.ab},P=(0,c.K2)((t,e)=>{for(let r of((0,a.S)(t,e),t.dir&&e.setDirection(t.dir),t.statements))I(r,e)},"populate"),I=(0,c.K2)((t,e)=>{let r={Commit:(0,c.K2)(t=>e.commit(A(t)),"Commit"),Branch:(0,c.K2)(t=>e.branch(G(t)),"Branch"),Merge:(0,c.K2)(t=>e.merge(q(t)),"Merge"),Checkout:(0,c.K2)(t=>e.checkout(O(t)),"Checkout"),CherryPicking:(0,c.K2)(t=>e.cherryPick(z(t)),"CherryPicking")}[t.$type];r?r(t):c.Rm.error(`Unknown statement type: ${t.$type}`)},"parseStatement"),A=(0,c.K2)(t=>({id:t.id,msg:t.message??"",type:void 0!==t.type?h[t.type]:h.NORMAL,tags:t.tags??void 0}),"parseCommit"),G=(0,c.K2)(t=>({name:t.name,order:t.order??0}),"parseBranch"),q=(0,c.K2)(t=>({branch:t.branch,id:t.id??"",type:void 0!==t.type?h[t.type]:void 0,tags:t.tags??void 0}),"parseMerge"),O=(0,c.K2)(t=>t.branch,"parseCheckout"),z=(0,c.K2)(t=>({id:t.id,targetId:"",tags:t.tags?.length===0?void 0:t.tags,parent:t.parent}),"parseCherryPicking"),H={parse:(0,c.K2)(async t=>{let e=await (0,s.qg)("gitGraph",t);c.Rm.debug(e),P(e,v)},"parse")},S=(0,c.D7)(),D=S?.gitGraph,Y=new Map,N=new Map,j=new Map,W=[],_=0,F="LR",U=(0,c.K2)(()=>{Y.clear(),N.clear(),j.clear(),_=0,W=[],F="LR"},"clear"),V=(0,c.K2)(t=>{let e=document.createElementNS("http://www.w3.org/2000/svg","text");return("string"==typeof t?t.split(/\\n|\n|/gi):t).forEach(t=>{let r=document.createElementNS("http://www.w3.org/2000/svg","tspan");r.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),r.setAttribute("dy","1em"),r.setAttribute("x","0"),r.setAttribute("class","row"),r.textContent=t.trim(),e.appendChild(r)}),e},"drawText"),J=(0,c.K2)(t=>{let e,r,a;return"BT"===F?(r=(0,c.K2)((t,e)=>t<=e,"comparisonFunc"),a=1/0):(r=(0,c.K2)((t,e)=>t>=e,"comparisonFunc"),a=0),t.forEach(t=>{let i="TB"===F||"BT"==F?N.get(t)?.y:N.get(t)?.x;void 0!==i&&r(i,a)&&(e=t,a=i)}),e},"findClosestParent"),Q=(0,c.K2)(t=>{let e="",r=1/0;return t.forEach(t=>{let a=N.get(t).y;a<=r&&(e=t,r=a)}),e||void 0},"findClosestParentBT"),X=(0,c.K2)((t,e,r)=>{let a=r,i=r,o=[];t.forEach(t=>{let r=e.get(t);if(!r)throw Error(`Commit not found for key ${t}`);r.parents.length?i=Math.max(a=tt(r),i):o.push(r),te(r,a)}),a=i,o.forEach(t=>{tr(t,a,r)}),t.forEach(t=>{let r=e.get(t);if(r?.parents.length){let t=Q(r.parents);(a=N.get(t).y-40)<=i&&(i=a);let e=Y.get(r.branch).pos,o=a-10;N.set(r.id,{x:e,y:o})}})},"setParallelBTPos"),Z=(0,c.K2)(t=>{let e=J(t.parents.filter(t=>null!==t));if(!e)throw Error(`Closest parent not found for commit ${t.id}`);let r=N.get(e)?.y;if(void 0===r)throw Error(`Closest parent position not found for commit ${t.id}`);return r},"findClosestParentPos"),tt=(0,c.K2)(t=>Z(t)+40,"calculateCommitPosition"),te=(0,c.K2)((t,e)=>{let r=Y.get(t.branch);if(!r)throw Error(`Branch not found for commit ${t.id}`);let a=r.pos,i=e+10;return N.set(t.id,{x:a,y:i}),{x:a,y:i}},"setCommitPosition"),tr=(0,c.K2)((t,e,r)=>{let a=Y.get(t.branch);if(!a)throw Error(`Branch not found for commit ${t.id}`);let i=a.pos;N.set(t.id,{x:i,y:e+r})},"setRootPosition"),ta=(0,c.K2)((t,e,r,a,i,o)=>{if(o===h.HIGHLIGHT)t.append("rect").attr("x",r.x-10).attr("y",r.y-10).attr("width",20).attr("height",20).attr("class",`commit ${e.id} commit-highlight${i%8} ${a}-outer`),t.append("rect").attr("x",r.x-6).attr("y",r.y-6).attr("width",12).attr("height",12).attr("class",`commit ${e.id} commit${i%8} ${a}-inner`);else if(o===h.CHERRY_PICK)t.append("circle").attr("cx",r.x).attr("cy",r.y).attr("r",10).attr("class",`commit ${e.id} ${a}`),t.append("circle").attr("cx",r.x-3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${a}`),t.append("circle").attr("cx",r.x+3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${a}`),t.append("line").attr("x1",r.x+3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${a}`),t.append("line").attr("x1",r.x-3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${a}`);else{let c=t.append("circle");if(c.attr("cx",r.x),c.attr("cy",r.y),c.attr("r",e.type===h.MERGE?9:10),c.attr("class",`commit ${e.id} commit${i%8}`),o===h.MERGE){let o=t.append("circle");o.attr("cx",r.x),o.attr("cy",r.y),o.attr("r",6),o.attr("class",`commit ${a} ${e.id} commit${i%8}`)}o===h.REVERSE&&t.append("path").attr("d",`M ${r.x-5},${r.y-5}L${r.x+5},${r.y+5}M${r.x-5},${r.y+5}L${r.x+5},${r.y-5}`).attr("class",`commit ${a} ${e.id} commit${i%8}`)}},"drawCommitBullet"),ti=(0,c.K2)((t,e,r,a)=>{if(e.type!==h.CHERRY_PICK&&(e.customId&&e.type===h.MERGE||e.type!==h.MERGE)&&D?.showCommitLabel){let i=t.append("g"),o=i.insert("rect").attr("class","commit-label-bkg"),c=i.append("text").attr("x",a).attr("y",r.y+25).attr("class","commit-label").text(e.id),s=c.node()?.getBBox();if(s&&(o.attr("x",r.posWithOffset-s.width/2-2).attr("y",r.y+13.5).attr("width",s.width+4).attr("height",s.height+4),"TB"===F||"BT"===F?(o.attr("x",r.x-(s.width+16+5)).attr("y",r.y-12),c.attr("x",r.x-(s.width+16)).attr("y",r.y+s.height-12)):c.attr("x",r.posWithOffset-s.width/2),D.rotateCommitLabel)){if("TB"===F||"BT"===F)c.attr("transform","rotate(-45, "+r.x+", "+r.y+")"),o.attr("transform","rotate(-45, "+r.x+", "+r.y+")");else{let t=-7.5-(s.width+10)/25*9.5,e=10+s.width/25*8.5;i.attr("transform","translate("+t+", "+e+") rotate(-45, "+a+", "+r.y+")")}}}},"drawCommitLabel"),to=(0,c.K2)((t,e,r,a)=>{if(e.tags.length>0){let i=0,o=0,c=0,s=[];for(let a of e.tags.reverse()){let e=t.insert("polygon"),n=t.append("circle"),h=t.append("text").attr("y",r.y-16-i).attr("class","tag-label").text(a),d=h.node()?.getBBox();if(!d)throw Error("Tag bbox not found");o=Math.max(o,d.width),c=Math.max(c,d.height),h.attr("x",r.posWithOffset-d.width/2),s.push({tag:h,hole:n,rect:e,yOffset:i}),i+=20}for(let{tag:t,hole:e,rect:i,yOffset:n}of s){let s=c/2,h=r.y-19.2-n;if(i.attr("class","tag-label-bkg").attr("points",` + ${a-o/2-2},${h+2} + ${a-o/2-2},${h-2} + ${r.posWithOffset-o/2-4},${h-s-2} + ${r.posWithOffset+o/2+4},${h-s-2} + ${r.posWithOffset+o/2+4},${h+s+2} + ${r.posWithOffset-o/2-4},${h+s+2}`),e.attr("cy",h).attr("cx",a-o/2+2).attr("r",1.5).attr("class","tag-hole"),"TB"===F||"BT"===F){let c=a+n;i.attr("class","tag-label-bkg").attr("points",` + ${r.x},${c+2} + ${r.x},${c-2} + ${r.x+10},${c-s-2} + ${r.x+10+o+4},${c-s-2} + ${r.x+10+o+4},${c+s+2} + ${r.x+10},${c+s+2}`).attr("transform","translate(12,12) rotate(45, "+r.x+","+a+")"),e.attr("cx",r.x+2).attr("cy",c).attr("transform","translate(12,12) rotate(45, "+r.x+","+a+")"),t.attr("x",r.x+5).attr("y",c+3).attr("transform","translate(14,14) rotate(45, "+r.x+","+a+")")}}}},"drawCommitTags"),tc=(0,c.K2)(t=>{switch(t.customType??t.type){case h.NORMAL:return"commit-normal";case h.REVERSE:return"commit-reverse";case h.HIGHLIGHT:return"commit-highlight";case h.MERGE:return"commit-merge";case h.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),ts=(0,c.K2)((t,e,r,a)=>{let i={x:0,y:0};if(t.parents.length>0){let r=J(t.parents);if(r){let o=a.get(r)??i;return"TB"===e?o.y+40:"BT"===e?(a.get(t.id)??i).y-40:o.x+40}}else{if("TB"===e)return 30;if("BT"===e)return(a.get(t.id)??i).y-40}return 0},"calculatePosition"),tn=(0,c.K2)((t,e,r)=>{let a="BT"===F&&r?e:e+10,i="TB"===F||"BT"===F?a:Y.get(t.branch)?.pos,o="TB"===F||"BT"===F?Y.get(t.branch)?.pos:a;if(void 0===o||void 0===i)throw Error(`Position were undefined for commit ${t.id}`);return{x:o,y:i,posWithOffset:a}},"getCommitPosition"),th=(0,c.K2)((t,e,r)=>{if(!D)throw Error("GitGraph config not found");let a=t.append("g").attr("class","commit-bullets"),i=t.append("g").attr("class","commit-labels"),o="TB"===F||"BT"===F?30:0,s=[...e.keys()],n=D?.parallelCommits??!1,h=s.sort((0,c.K2)((t,r)=>{let a=e.get(t)?.seq,i=e.get(r)?.seq;return void 0!==a&&void 0!==i?a-i:0},"sortKeys"));"BT"===F&&(n&&X(h,e,o),h=h.reverse()),h.forEach(t=>{let c=e.get(t);if(!c)throw Error(`Commit not found for key ${t}`);n&&(o=ts(c,F,o,N));let s=tn(c,o,n);if(r){let t=tc(c),e=c.customType??c.type,r=Y.get(c.branch)?.index??0;ta(a,c,s,t,r,e),ti(i,c,s,o),to(i,c,s,o)}"TB"===F||"BT"===F?N.set(c.id,{x:s.x,y:s.posWithOffset}):N.set(c.id,{x:s.posWithOffset,y:s.y}),(o="BT"===F&&n?o+40:o+40+10)>_&&(_=o)})},"drawCommits"),td=(0,c.K2)((t,e,r,a,i)=>{let o=("TB"===F||"BT"===F?r.xt.branch===o,"isOnBranchToGetCurve"),n=(0,c.K2)(r=>r.seq>t.seq&&r.seqn(t)&&s(t))},"shouldRerouteArrow"),tl=(0,c.K2)((t,e,r=0)=>{let a=t+Math.abs(t-e)/2;if(r>5)return a;if(W.every(t=>Math.abs(t-a)>=10))return W.push(a),a;let i=Math.abs(t-e);return tl(t,e-i/5,r+1)},"findLane"),tm=(0,c.K2)((t,e,r,a)=>{let i;let o=N.get(e.id),c=N.get(r.id);if(void 0===o||void 0===c)throw Error(`Commit positions not found for commits ${e.id} and ${r.id}`);let s=td(e,r,o,c,a),n="",d="",l=0,m=0,$=Y.get(r.branch)?.index;if(r.type===h.MERGE&&e.id!==r.parents[0]&&($=Y.get(e.branch)?.index),s){n="A 10 10, 0, 0, 0,",d="A 10 10, 0, 0, 1,",l=10,m=10;let t=o.yc.x&&(n="A 20 20, 0, 0, 0,",d="A 20 20, 0, 0, 1,",l=20,m=20,i=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${o.x} ${o.y} L ${o.x} ${c.y-l} ${d} ${o.x-m} ${c.y} L ${c.x} ${c.y}`:`M ${o.x} ${o.y} L ${c.x+l} ${o.y} ${n} ${c.x} ${o.y+m} L ${c.x} ${c.y}`),o.x===c.x&&(i=`M ${o.x} ${o.y} L ${c.x} ${c.y}`)):"BT"===F?(o.xc.x&&(n="A 20 20, 0, 0, 0,",d="A 20 20, 0, 0, 1,",l=20,m=20,i=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${o.x} ${o.y} L ${o.x} ${c.y+l} ${n} ${o.x-m} ${c.y} L ${c.x} ${c.y}`:`M ${o.x} ${o.y} L ${c.x-l} ${o.y} ${n} ${c.x} ${o.y-m} L ${c.x} ${c.y}`),o.x===c.x&&(i=`M ${o.x} ${o.y} L ${c.x} ${c.y}`)):(o.yc.y&&(i=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${o.x} ${o.y} L ${c.x-l} ${o.y} ${n} ${c.x} ${o.y-m} L ${c.x} ${c.y}`:`M ${o.x} ${o.y} L ${o.x} ${c.y+l} ${d} ${o.x+m} ${c.y} L ${c.x} ${c.y}`),o.y===c.y&&(i=`M ${o.x} ${o.y} L ${c.x} ${c.y}`));if(void 0===i)throw Error("Line definition not found");t.append("path").attr("d",i).attr("class","arrow arrow"+$%8)},"drawArrow"),t$=(0,c.K2)((t,e)=>{let r=t.append("g").attr("class","commit-arrows");[...e.keys()].forEach(t=>{let a=e.get(t);a.parents&&a.parents.length>0&&a.parents.forEach(t=>{tm(r,e.get(t),a,e)})})},"drawArrows"),tg=(0,c.K2)((t,e)=>{let r=t.append("g");e.forEach((t,e)=>{let a=e%8,i=Y.get(t.name)?.pos;if(void 0===i)throw Error(`Position not found for branch ${t.name}`);let o=r.append("line");o.attr("x1",0),o.attr("y1",i),o.attr("x2",_),o.attr("y2",i),o.attr("class","branch branch"+a),"TB"===F?(o.attr("y1",30),o.attr("x1",i),o.attr("y2",_),o.attr("x2",i)):"BT"===F&&(o.attr("y1",_),o.attr("x1",i),o.attr("y2",30),o.attr("x2",i)),W.push(i);let c=V(t.name),s=r.insert("rect"),n=r.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+a);n.node().appendChild(c);let h=c.getBBox();s.attr("class","branchLabelBkg label"+a).attr("rx",4).attr("ry",4).attr("x",-h.width-4-(D?.rotateCommitLabel===!0?30:0)).attr("y",-h.height/2+8).attr("width",h.width+18).attr("height",h.height+4),n.attr("transform","translate("+(-h.width-14-(D?.rotateCommitLabel===!0?30:0))+", "+(i-h.height/2-1)+")"),"TB"===F?(s.attr("x",i-h.width/2-10).attr("y",0),n.attr("transform","translate("+(i-h.width/2-5)+", 0)")):"BT"===F?(s.attr("x",i-h.width/2-10).attr("y",_),n.attr("transform","translate("+(i-h.width/2-5)+", "+_+")")):s.attr("transform","translate(-19, "+(i-h.height/2)+")")})},"drawBranches"),ty=(0,c.K2)(function(t,e,r,a,i){return Y.set(t,{pos:e,index:r}),e+=50+(i?40:0)+("TB"===F||"BT"===F?a.width/2:0)},"setBranchPosition"),tp={parser:H,db:v,renderer:{draw:(0,c.K2)(function(t,e,r,a){if(U(),c.Rm.debug("in gitgraph renderer",t+"\n","id:",e,r),!D)throw Error("GitGraph config not found");let i=D.rotateCommitLabel??!1,s=a.db;j=s.getCommits();let h=s.getBranchesAsObjArray();F=s.getDirection();let d=(0,n.Ltv)(`[id="${e}"]`),l=0;h.forEach((t,e)=>{let r=V(t.name),a=d.append("g"),o=a.insert("g").attr("class","branchLabel"),c=o.insert("g").attr("class","label branch-label");c.node()?.appendChild(r);let s=r.getBBox();l=ty(t.name,l,e,s,i),c.remove(),o.remove(),a.remove()}),th(d,j,!1),D.showBranches&&tg(d,h),t$(d,j),th(d,j,!0),o._K.insertTitle(d,"gitTitleText",D.titleTopMargin??0,s.getDiagramTitle()),(0,c.mj)(void 0,d,D.diagramPadding,D.useMaxWidth)},"draw")},styles:(0,c.K2)(t=>` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + ${[0,1,2,3,4,5,6,7].map(e=>` + .branch-label${e} { fill: ${t["gitBranchLabel"+e]}; } + .commit${e} { stroke: ${t["git"+e]}; fill: ${t["git"+e]}; } + .commit-highlight${e} { stroke: ${t["gitInv"+e]}; fill: ${t["gitInv"+e]}; } + .label${e} { fill: ${t["git"+e]}; } + .arrow${e} { stroke: ${t["git"+e]}; } + `).join("\n")} + + .branch { + stroke-width: 1; + stroke: ${t.lineColor}; + stroke-dasharray: 2; + } + .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelColor};} + .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelBackground}; opacity: 0.5; } + .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};} + .tag-label-bkg { fill: ${t.tagLabelBackground}; stroke: ${t.tagLabelBorder}; } + .tag-hole { fill: ${t.textColor}; } + + .commit-merge { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + } + .commit-reverse { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + stroke-width: 3; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + } + + .arrow { stroke-width: 8; stroke-linecap: round; fill: none} + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } +`,"getStyles")}}}]); \ No newline at end of file diff --git a/assets/js/8a603d1e.08948388.js b/assets/js/8a603d1e.08948388.js deleted file mode 100644 index bbedda71cb..0000000000 --- a/assets/js/8a603d1e.08948388.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[12235],{13564:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>k,frontMatter:()=>c,metadata:()=>n,toc:()=>d});let n=JSON.parse('{"id":"tests/links/broken-anchors-tests","title":"Broken Anchors tests","description":"Markdown link to above anchor","source":"@site/_dogfooding/_docs tests/tests/links/broken-anchors-tests.mdx","sourceDirName":"tests/links","slug":"/tests/links/broken-anchors-tests","permalink":"/tests/docs/tests/links/broken-anchors-tests","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Import Bad Package","permalink":"/tests/docs/tests/import-bad-package"},"next":{"title":"Target doc","permalink":"/tests/docs/tests/links/target-doc-slug"}}');var r=s(62540),o=s(43023),a=s(36372);let c={},i="Broken Anchors tests",l={},d=[];function h(e){let t={a:"a",h1:"h1",header:"header",p:"p",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"broken-anchors-tests",children:"Broken Anchors tests"})}),"\n","\n",(0,r.jsx)(a.A,{id:"test-link-anchor",children:"#test-link-anchor"}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.a,{href:"#test-link-anchor",children:"Markdown link to above anchor"})}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.a,{href:"#",children:"Markdown link to above anchor"})})]})}function k(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}k.displayName="MDXContent(_dogfooding/_docs tests/tests/links/broken-anchors-tests.mdx)"},43023:(e,t,s)=>{s.d(t,{R:()=>a,x:()=>c});var n=s(63696);let r={},o=n.createContext(r);function a(e){let t=n.useContext(o);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8a603d1e.5c227371.js b/assets/js/8a603d1e.5c227371.js new file mode 100644 index 0000000000..2031798dc8 --- /dev/null +++ b/assets/js/8a603d1e.5c227371.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[12235],{13564:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>k,frontMatter:()=>i,metadata:()=>n,toc:()=>d});let n=JSON.parse('{"id":"tests/links/broken-anchors-tests","title":"Broken Anchors tests","description":"Markdown link to above anchor","source":"@site/_dogfooding/_docs tests/tests/links/broken-anchors-tests.mdx","sourceDirName":"tests/links","slug":"/tests/links/broken-anchors-tests","permalink":"/tests/docs/tests/links/broken-anchors-tests","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Import Bad Package","permalink":"/tests/docs/tests/import-bad-package"},"next":{"title":"Target doc","permalink":"/tests/docs/tests/links/target-doc-slug"}}');var r=s(62540),o=s(43023),a=s(36372);let i={},c="Broken Anchors tests",l={},d=[];function h(e){let t={a:"a",h1:"h1",header:"header",p:"p",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"broken-anchors-tests",children:"Broken Anchors tests"})}),"\n","\n",(0,r.jsx)(a.A,{id:"test-link-anchor",children:"#test-link-anchor"}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.a,{href:"#test-link-anchor",children:"Markdown link to above anchor"})}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.a,{href:"#",children:"Markdown link to above anchor"})})]})}function k(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}k.displayName="MDXContent(_dogfooding/_docs tests/tests/links/broken-anchors-tests.mdx)"},43023:(e,t,s)=>{s.d(t,{R:()=>a,x:()=>i});var n=s(63696);let r={},o=n.createContext(r);function a(e){let t=n.useContext(o);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8ef3f86c.0c9393e3.js b/assets/js/8ef3f86c.0c9393e3.js deleted file mode 100644 index aa06dd80d5..0000000000 --- a/assets/js/8ef3f86c.0c9393e3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[92632],{54817:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>d});let i=JSON.parse('{"id":"i18n/introduction","title":"i18n - Introduction","description":"It is easy to translate a Docusaurus website with its internationalization (i18n) support.","source":"@site/docs/i18n/i18n-introduction.mdx","sourceDirName":"i18n","slug":"/i18n/introduction","permalink":"/docs/i18n/introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/i18n/i18n-introduction.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"id":"introduction","slug":"/i18n/introduction"},"sidebar":"docs","previous":{"title":"Deployment","permalink":"/docs/deployment"},"next":{"title":"Tutorial","permalink":"/docs/i18n/tutorial"}}');var o=s(62540),t=s(43023);let l={id:"introduction",slug:"/i18n/introduction"},r="i18n - Introduction",a={},d=[{value:"Goals",id:"goals",level:2},{value:"i18n goals",id:"i18n-goals",level:3},{value:"i18n non-goals",id:"i18n-non-goals",level:3},{value:"Translation workflow",id:"translation-workflow",level:2},{value:"Overview",id:"overview",level:3},{value:"Translation files",id:"translation-files",level:3},{value:"Markdown files",id:"markdown-files",level:4},{value:"JSON files",id:"json-files",level:4},{value:"Data files",id:"data-files",level:4},{value:"Translation files location",id:"translation-files-location",level:3}];function c(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"i18n---introduction",children:"i18n - Introduction"})}),"\n",(0,o.jsxs)(n.p,{children:["It is ",(0,o.jsx)(n.strong,{children:"easy to translate a Docusaurus website"})," with its internationalization (",(0,o.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Internationalization_and_localization",children:"i18n"}),") support."]}),"\n",(0,o.jsx)(n.h2,{id:"goals",children:"Goals"}),"\n",(0,o.jsxs)(n.p,{children:["It is important to understand the ",(0,o.jsx)(n.strong,{children:"design decisions"})," behind the Docusaurus i18n support."]}),"\n",(0,o.jsxs)(n.p,{children:["For more context, you can read the initial ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/issues/3317",children:"RFC"})," and ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/pull/3325",children:"PR"}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"i18n-goals",children:"i18n goals"}),"\n",(0,o.jsx)(n.p,{children:"The goals of the Docusaurus i18n system are:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Simple"}),": just put the translated files in the correct filesystem location"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Flexible translation workflows"}),": use Git (monorepo, forks, or submodules), SaaS software, FTP"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Flexible deployment options"}),": single, multiple domains, or hybrid"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Modular"}),": allow plugin authors to provide i18n support"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Low-overhead runtime"}),": documentation is mostly static and does not require heavy JS libraries or polyfills"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Scalable build-times"}),": allow building and deploying localized sites independently"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Localize assets"}),": an image of your site might contain text that should be translated"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"No coupling"}),": not forced to use any SaaS, yet integrations are possible"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsxs)(n.strong,{children:["Easy to use with ",(0,o.jsx)(n.a,{href:"https://crowdin.com/",children:"Crowdin"})]}),": a lot of Docusaurus v1 sites use Crowdin and should be able to migrate to v2"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Good SEO defaults"}),": we set useful SEO headers like ",(0,o.jsx)(n.a,{href:"https://developers.google.com/search/docs/advanced/crawling/localized-versions",children:(0,o.jsx)(n.code,{children:"hreflang"})})," for you"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"RTL support"}),": locales reading right-to-left (Arabic, Hebrew, etc.) are supported and easy to implement"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Default translations"}),": classic theme labels are translated for you in ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/tree/main/packages/docusaurus-theme-translations/locales",children:"many languages"})]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"i18n-non-goals",children:"i18n non-goals"}),"\n",(0,o.jsx)(n.p,{children:"We don't provide support for:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Automatic locale detection"}),": opinionated, and best done on the ",(0,o.jsx)(n.a,{href:"/docs/deployment",children:"server (your hosting provider)"})]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Translation SaaS software"}),": you are responsible to understand the external tools of your choice"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Translation of slugs"}),": technically complicated, little SEO value"]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"translation-workflow",children:"Translation workflow"}),"\n",(0,o.jsx)(n.h3,{id:"overview",children:"Overview"}),"\n",(0,o.jsx)(n.p,{children:"Overview of the workflow to create a translated Docusaurus website:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Configure"}),": declare the default locale and alternative locales in ",(0,o.jsx)(n.a,{href:"/docs/api/docusaurus-config#i18n",children:(0,o.jsx)(n.code,{children:"docusaurus.config.js"})})]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Translate"}),": put the translation files at the correct filesystem location"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Deploy"}),": build and deploy your site using a single or multi-domain strategy"]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"translation-files",children:"Translation files"}),"\n",(0,o.jsx)(n.p,{children:"You will work with three kinds of translation files."}),"\n",(0,o.jsx)(n.h4,{id:"markdown-files",children:"Markdown files"}),"\n",(0,o.jsx)(n.p,{children:"This is the main content of your Docusaurus website."}),"\n",(0,o.jsx)(n.p,{children:"Markdown and MDX documents are translated as a whole, to fully preserve the translation context, instead of splitting each sentence as a separate string."}),"\n",(0,o.jsx)(n.h4,{id:"json-files",children:"JSON files"}),"\n",(0,o.jsx)(n.p,{children:"JSON is used to translate:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Your React code: standalone React pages in ",(0,o.jsx)(n.code,{children:"src/pages"}),", or other components"]}),"\n",(0,o.jsxs)(n.li,{children:["Layout labels provided through ",(0,o.jsx)(n.code,{children:"themeConfig"}),": navbar, footer"]}),"\n",(0,o.jsx)(n.li,{children:"Layout labels provided through plugin options: docs sidebar category labels, blog sidebar title..."}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["The JSON format used is called ",(0,o.jsx)(n.strong,{children:"Chrome i18n"}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-json",children:'{\n "myTranslationKey1": {\n "message": "Translated message 1",\n "description": "myTranslationKey1 is used on the homepage"\n },\n "myTranslationKey2": {\n "message": "Translated message 2",\n "description": "myTranslationKey2 is used on the FAQ page"\n }\n}\n'})}),"\n",(0,o.jsx)(n.p,{children:"The choice was made for 2 reasons:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Description attribute"}),": to help translators with additional context"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Widely supported"}),": ",(0,o.jsx)(n.a,{href:"https://developer.chrome.com/docs/extensions/mv2/i18n-messages/",children:"Chrome extensions"}),", ",(0,o.jsx)(n.a,{href:"https://support.crowdin.com/file-formats/chrome-json/",children:"Crowdin"}),", ",(0,o.jsx)(n.a,{href:"https://docs.transifex.com/formats/chrome-json",children:"Transifex"}),", ",(0,o.jsx)(n.a,{href:"https://help.phrase.com/help/chrome-json-messages",children:"Phrase"}),", ",(0,o.jsx)(n.a,{href:"https://www.applanga.com/docs/formats/chrome_i18n_json",children:"Applanga"}),", etc."]}),"\n"]}),"\n",(0,o.jsx)(n.h4,{id:"data-files",children:"Data files"}),"\n",(0,o.jsxs)(n.p,{children:["Some plugins may read from external data files that are localized as a whole. For example, the blog plugin uses an ",(0,o.jsx)(n.a,{href:"/docs/blog#global-authors",children:(0,o.jsx)(n.code,{children:"authors.yml"})})," file that can be translated by creating a copy under ",(0,o.jsx)(n.code,{children:"i18n/[locale]/docusaurus-plugin-content-blog/authors.yml"}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"translation-files-location",children:"Translation files location"}),"\n",(0,o.jsx)(n.p,{children:"The translation files should be created at the correct filesystem location."}),"\n",(0,o.jsxs)(n.p,{children:["Each locale and plugin has its own ",(0,o.jsx)(n.code,{children:"i18n"})," subfolder:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"website/i18n/[locale]/[pluginName]/...\n"})}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsxs)(n.p,{children:["For multi-instance plugins, the path is ",(0,o.jsx)(n.code,{children:"website/i18n/[locale]/[pluginName]-[pluginId]/..."}),"."]})}),"\n",(0,o.jsx)(n.p,{children:"Translating a very simple Docusaurus site in French would lead to the following tree:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"website/i18n\n\u2514\u2500\u2500 fr\n \u251C\u2500\u2500 code.json # Any text label present in the React code\n \u2502 # Includes text labels from the themes' code\n \u251C\u2500\u2500 docusaurus-plugin-content-blog # translation data the blog plugin needs\n \u2502 \u2514\u2500\u2500 2020-01-01-hello.md\n \u2502\n \u251C\u2500\u2500 docusaurus-plugin-content-docs # translation data the docs plugin needs\n \u2502 \u251C\u2500\u2500 current\n \u2502 \u2502 \u251C\u2500\u2500 doc1.md\n \u2502 \u2502 \u2514\u2500\u2500 doc2.mdx\n \u2502 \u2514\u2500\u2500 current.json\n \u2502\n \u2514\u2500\u2500 docusaurus-theme-classic # translation data the classic theme needs\n \u251C\u2500\u2500 footer.json # Text labels in your footer theme config\n \u2514\u2500\u2500 navbar.json # Text labels in your navbar theme config\n"})}),"\n",(0,o.jsxs)(n.p,{children:["The JSON files are initialized with the ",(0,o.jsx)(n.a,{href:"/docs/cli#docusaurus-write-translations-sitedir",children:(0,o.jsx)(n.code,{children:"docusaurus write-translations"})})," CLI command. Each plugin sources its own translated content under the corresponding folder, while the ",(0,o.jsx)(n.code,{children:"code.json"})," file defines all text labels used in the React code."]}),"\n",(0,o.jsxs)(n.p,{children:["Each content plugin or theme is different, and ",(0,o.jsx)(n.strong,{children:"defines its own translation files location"}),":"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-docs#i18n",children:"Docs i18n"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-blog#i18n",children:"Blog i18n"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-pages#i18n",children:"Pages i18n"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"/docs/api/themes/configuration#i18n",children:"Themes i18n"})}),"\n"]})]})}function h(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>l,x:()=>r});var i=s(63696);let o={},t=i.createContext(o);function l(e){let n=i.useContext(t);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8ef3f86c.818ce2ba.js b/assets/js/8ef3f86c.818ce2ba.js new file mode 100644 index 0000000000..b4124ce493 --- /dev/null +++ b/assets/js/8ef3f86c.818ce2ba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[92632],{54817:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>d});let i=JSON.parse('{"id":"i18n/introduction","title":"i18n - Introduction","description":"It is easy to translate a Docusaurus website with its internationalization (i18n) support.","source":"@site/docs/i18n/i18n-introduction.mdx","sourceDirName":"i18n","slug":"/i18n/introduction","permalink":"/docs/i18n/introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/i18n/i18n-introduction.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"id":"introduction","slug":"/i18n/introduction"},"sidebar":"docs","previous":{"title":"Deployment","permalink":"/docs/deployment"},"next":{"title":"Tutorial","permalink":"/docs/i18n/tutorial"}}');var o=s(62540),t=s(43023);let l={id:"introduction",slug:"/i18n/introduction"},r="i18n - Introduction",a={},d=[{value:"Goals",id:"goals",level:2},{value:"i18n goals",id:"i18n-goals",level:3},{value:"i18n non-goals",id:"i18n-non-goals",level:3},{value:"Translation workflow",id:"translation-workflow",level:2},{value:"Overview",id:"overview",level:3},{value:"Translation files",id:"translation-files",level:3},{value:"Markdown files",id:"markdown-files",level:4},{value:"JSON files",id:"json-files",level:4},{value:"Data files",id:"data-files",level:4},{value:"Translation files location",id:"translation-files-location",level:3}];function c(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"i18n---introduction",children:"i18n - Introduction"})}),"\n",(0,o.jsxs)(n.p,{children:["It is ",(0,o.jsx)(n.strong,{children:"easy to translate a Docusaurus website"})," with its internationalization (",(0,o.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Internationalization_and_localization",children:"i18n"}),") support."]}),"\n",(0,o.jsx)(n.h2,{id:"goals",children:"Goals"}),"\n",(0,o.jsxs)(n.p,{children:["It is important to understand the ",(0,o.jsx)(n.strong,{children:"design decisions"})," behind the Docusaurus i18n support."]}),"\n",(0,o.jsxs)(n.p,{children:["For more context, you can read the initial ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/issues/3317",children:"RFC"})," and ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/pull/3325",children:"PR"}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"i18n-goals",children:"i18n goals"}),"\n",(0,o.jsx)(n.p,{children:"The goals of the Docusaurus i18n system are:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Simple"}),": just put the translated files in the correct filesystem location"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Flexible translation workflows"}),": use Git (monorepo, forks, or submodules), SaaS software, FTP"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Flexible deployment options"}),": single, multiple domains, or hybrid"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Modular"}),": allow plugin authors to provide i18n support"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Low-overhead runtime"}),": documentation is mostly static and does not require heavy JS libraries or polyfills"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Scalable build-times"}),": allow building and deploying localized sites independently"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Localize assets"}),": an image of your site might contain text that should be translated"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"No coupling"}),": not forced to use any SaaS, yet integrations are possible"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsxs)(n.strong,{children:["Easy to use with ",(0,o.jsx)(n.a,{href:"https://crowdin.com/",children:"Crowdin"})]}),": a lot of Docusaurus v1 sites use Crowdin and should be able to migrate to v2"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Good SEO defaults"}),": we set useful SEO headers like ",(0,o.jsx)(n.a,{href:"https://developers.google.com/search/docs/advanced/crawling/localized-versions",children:(0,o.jsx)(n.code,{children:"hreflang"})})," for you"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"RTL support"}),": locales reading right-to-left (Arabic, Hebrew, etc.) are supported and easy to implement"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Default translations"}),": classic theme labels are translated for you in ",(0,o.jsx)(n.a,{href:"https://github.com/facebook/docusaurus/tree/main/packages/docusaurus-theme-translations/locales",children:"many languages"})]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"i18n-non-goals",children:"i18n non-goals"}),"\n",(0,o.jsx)(n.p,{children:"We don't provide support for:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Automatic locale detection"}),": opinionated, and best done on the ",(0,o.jsx)(n.a,{href:"/docs/deployment",children:"server (your hosting provider)"})]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Translation SaaS software"}),": you are responsible to understand the external tools of your choice"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Translation of slugs"}),": technically complicated, little SEO value"]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"translation-workflow",children:"Translation workflow"}),"\n",(0,o.jsx)(n.h3,{id:"overview",children:"Overview"}),"\n",(0,o.jsx)(n.p,{children:"Overview of the workflow to create a translated Docusaurus website:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Configure"}),": declare the default locale and alternative locales in ",(0,o.jsx)(n.a,{href:"/docs/api/docusaurus-config#i18n",children:(0,o.jsx)(n.code,{children:"docusaurus.config.js"})})]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Translate"}),": put the translation files at the correct filesystem location"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Deploy"}),": build and deploy your site using a single or multi-domain strategy"]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"translation-files",children:"Translation files"}),"\n",(0,o.jsx)(n.p,{children:"You will work with three kinds of translation files."}),"\n",(0,o.jsx)(n.h4,{id:"markdown-files",children:"Markdown files"}),"\n",(0,o.jsx)(n.p,{children:"This is the main content of your Docusaurus website."}),"\n",(0,o.jsx)(n.p,{children:"Markdown and MDX documents are translated as a whole, to fully preserve the translation context, instead of splitting each sentence as a separate string."}),"\n",(0,o.jsx)(n.h4,{id:"json-files",children:"JSON files"}),"\n",(0,o.jsx)(n.p,{children:"JSON is used to translate:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Your React code: standalone React pages in ",(0,o.jsx)(n.code,{children:"src/pages"}),", or other components"]}),"\n",(0,o.jsxs)(n.li,{children:["Layout labels provided through ",(0,o.jsx)(n.code,{children:"themeConfig"}),": navbar, footer"]}),"\n",(0,o.jsx)(n.li,{children:"Layout labels provided through plugin options: docs sidebar category labels, blog sidebar title..."}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["The JSON format used is called ",(0,o.jsx)(n.strong,{children:"Chrome i18n"}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-json",children:'{\n "myTranslationKey1": {\n "message": "Translated message 1",\n "description": "myTranslationKey1 is used on the homepage"\n },\n "myTranslationKey2": {\n "message": "Translated message 2",\n "description": "myTranslationKey2 is used on the FAQ page"\n }\n}\n'})}),"\n",(0,o.jsx)(n.p,{children:"The choice was made for 2 reasons:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Description attribute"}),": to help translators with additional context"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Widely supported"}),": ",(0,o.jsx)(n.a,{href:"https://developer.chrome.com/docs/extensions/mv2/i18n-messages/",children:"Chrome extensions"}),", ",(0,o.jsx)(n.a,{href:"https://support.crowdin.com/file-formats/chrome-json/",children:"Crowdin"}),", ",(0,o.jsx)(n.a,{href:"https://docs.transifex.com/formats/chrome-json",children:"Transifex"}),", ",(0,o.jsx)(n.a,{href:"https://help.phrase.com/help/chrome-json-messages",children:"Phrase"}),", ",(0,o.jsx)(n.a,{href:"https://www.applanga.com/docs/formats/chrome_i18n_json",children:"Applanga"}),", etc."]}),"\n"]}),"\n",(0,o.jsx)(n.h4,{id:"data-files",children:"Data files"}),"\n",(0,o.jsxs)(n.p,{children:["Some plugins may read from external data files that are localized as a whole. For example, the blog plugin uses an ",(0,o.jsx)(n.a,{href:"/docs/blog#global-authors",children:(0,o.jsx)(n.code,{children:"authors.yml"})})," file that can be translated by creating a copy under ",(0,o.jsx)(n.code,{children:"i18n/[locale]/docusaurus-plugin-content-blog/authors.yml"}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"translation-files-location",children:"Translation files location"}),"\n",(0,o.jsx)(n.p,{children:"The translation files should be created at the correct filesystem location."}),"\n",(0,o.jsxs)(n.p,{children:["Each locale and plugin has its own ",(0,o.jsx)(n.code,{children:"i18n"})," subfolder:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"website/i18n/[locale]/[pluginName]/...\n"})}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsxs)(n.p,{children:["For multi-instance plugins, the path is ",(0,o.jsx)(n.code,{children:"website/i18n/[locale]/[pluginName]-[pluginId]/..."}),"."]})}),"\n",(0,o.jsx)(n.p,{children:"Translating a very simple Docusaurus site in French would lead to the following tree:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"website/i18n\n\u2514\u2500\u2500 fr\n \u251C\u2500\u2500 code.json # Any text label present in the React code\n \u2502 # Includes text labels from the themes' code\n \u251C\u2500\u2500 docusaurus-plugin-content-blog # translation data the blog plugin needs\n \u2502 \u2514\u2500\u2500 2020-01-01-hello.md\n \u2502\n \u251C\u2500\u2500 docusaurus-plugin-content-docs # translation data the docs plugin needs\n \u2502 \u251C\u2500\u2500 current\n \u2502 \u2502 \u251C\u2500\u2500 doc1.md\n \u2502 \u2502 \u2514\u2500\u2500 doc2.mdx\n \u2502 \u2514\u2500\u2500 current.json\n \u2502\n \u2514\u2500\u2500 docusaurus-theme-classic # translation data the classic theme needs\n \u251C\u2500\u2500 footer.json # Text labels in your footer theme config\n \u2514\u2500\u2500 navbar.json # Text labels in your navbar theme config\n"})}),"\n",(0,o.jsxs)(n.p,{children:["The JSON files are initialized with the ",(0,o.jsx)(n.a,{href:"/docs/cli#docusaurus-write-translations-sitedir",children:(0,o.jsx)(n.code,{children:"docusaurus write-translations"})})," CLI command. Each plugin sources its own translated content under the corresponding folder, while the ",(0,o.jsx)(n.code,{children:"code.json"})," file defines all text labels used in the React code."]}),"\n",(0,o.jsxs)(n.p,{children:["Each content plugin or theme is different, and ",(0,o.jsx)(n.strong,{children:"defines its own translation files location"}),":"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-docs#i18n",children:"Docs i18n"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-blog#i18n",children:"Blog i18n"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-pages#i18n",children:"Pages i18n"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"/docs/api/themes/configuration#i18n",children:"Themes i18n"})}),"\n"]})]})}function h(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},43023:(e,n,s)=>{s.d(n,{R:()=>l,x:()=>r});var i=s(63696);let o={},t=i.createContext(o);function l(e){let n=i.useContext(t);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/90e57dc7.fd2804b6.js b/assets/js/90e57dc7.2331b5d5.js similarity index 76% rename from assets/js/90e57dc7.fd2804b6.js rename to assets/js/90e57dc7.2331b5d5.js index b2b75ccf54..04da6ae957 100644 --- a/assets/js/90e57dc7.fd2804b6.js +++ b/assets/js/90e57dc7.2331b5d5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[61729],{65108:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(62540);function o(e){var t,n;return(0,r.jsx)("svg",(t=function(e){for(var t=1;t{n.d(t,{A:()=>N});var r,o,i=n(62540),c=n(63696),s=n(11750),l=n(81912),a=n(12653);let p={admonition:"admonition_o5H7",admonitionHeading:"admonitionHeading_FzoX",admonitionIcon:"admonitionIcon_rXq6",admonitionContent:"admonitionContent_Knsx"};function d({type:e,className:t,children:n}){return(0,i.jsx)("div",{className:(0,s.A)(a.G.common.admonition,a.G.common.admonitionType(e),p.admonition,t),children:n})}function u({icon:e,title:t}){return(0,i.jsxs)("div",{className:p.admonitionHeading,children:[(0,i.jsx)("span",{className:p.admonitionIcon,children:e}),t]})}function b({children:e}){return e?(0,i.jsx)("div",{className:p.admonitionContent,children:e}):null}function f(e){let{type:t,icon:n,title:r,children:o,className:c}=e;return(0,i.jsxs)(d,{type:t,className:c,children:[r||n?(0,i.jsx)(u,{title:r,icon:n}):null,(0,i.jsx)(b,{children:o})]})}let y={icon:(0,i.jsx)(function(e){var t,n;return(0,i.jsx)("svg",(t=function(e){for(var t=1;t(0,i.jsx)(O,D({title:"secondary"},e)),important:e=>(0,i.jsx)(v,D({title:"important"},e)),success:e=>(0,i.jsx)(m,D({title:"success"},e)),caution:function(e){var t,n;return(0,i.jsx)(f,(t=function(e){for(var t=1;tc.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),r=t.filter(e=>e!==n);return{mdxAdmonitionTitle:null==n?void 0:n.props.children,rest:r.length>0?(0,i.jsx)(i.Fragment,{children:r}):null}}(e.children),l=null!==(t=e.title)&&void 0!==t?t:o;return n=function(e){for(var t=1;t{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>b,frontMatter:()=>l,metadata:()=>r,toc:()=>d});let r=JSON.parse('{"id":"tests/admonitions","title":"Admonitions tests","description":"Empty content","source":"@site/_dogfooding/_docs tests/tests/admonitions.mdx","sourceDirName":"tests","slug":"/tests/admonitions","permalink":"/tests/docs/tests/admonitions","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Case-Sensitive doc","permalink":"/tests/docs/tests/Case-Sentitive-Doc"},"next":{"title":"\xe6\xf8\xe5","permalink":"/tests/docs/tests/ascii/folder/\xe6\xf8\xe5"}}');var o=n(62540),i=n(43023),c=n(55640),s=n(65108);let l={},a="Admonitions tests",p={},d=[{value:"Empty content",id:"empty-content",level:2},{value:"Empty fragment content",id:"empty-fragment-content",level:2},{value:"Large font icon",id:"large-font-icon",level:2},{value:"Large svg icon",id:"large-svg-icon",level:2},{value:"Indented admonitions",id:"indented-admonitions",level:2},{value:"Quoted admonitions",id:"quoted-admonitions",level:2},{value:"Official admonitions",id:"official-admonitions",level:2},{value:"Legacy admonitions",id:"legacy-admonitions",level:2}];function u(e){let t={a:"a",admonition:"admonition",blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",span:"span",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"admonitions-tests",children:"Admonitions tests"})}),"\n",(0,o.jsx)(t.h2,{id:"empty-content",children:"Empty content"}),"\n",(0,o.jsx)(t.admonition,{title:"Title Only",type:"note"}),"\n",(0,o.jsx)(t.h2,{id:"empty-fragment-content",children:"Empty fragment content"}),"\n",(0,o.jsx)(t.admonition,{title:"Title Only",type:"note",children:(0,o.jsx)(o.Fragment,{})}),"\n",(0,o.jsx)(t.h2,{id:"large-font-icon",children:"Large font icon"}),"\n","\n",(0,o.jsx)(c.A,{type:"tip",icon:(0,o.jsx)(t.span,{style:{fontSize:60},children:"\u{1F4A1}"}),title:"Did you know...",children:(0,o.jsx)(t.p,{children:"content"})}),"\n",(0,o.jsx)(c.A,{type:"info",icon:(0,o.jsx)(t.span,{style:{fontSize:40},children:"\u2139\uFE0F"}),title:"Did you know...",children:(0,o.jsx)(t.p,{children:"content"})}),"\n",(0,o.jsx)(t.h2,{id:"large-svg-icon",children:"Large svg icon"}),"\n","\n",(0,o.jsx)(c.A,{type:"tip",icon:(0,o.jsx)(s.A,{style:{width:60,height:60}}),title:"Did you know...",children:(0,o.jsx)(t.p,{children:"content"})}),"\n",(0,o.jsx)(c.A,{type:"info",icon:(0,o.jsx)(s.A,{style:{width:40,height:40}}),title:"Did you know...",children:(0,o.jsx)(t.p,{children:"content"})}),"\n",(0,o.jsx)(t.h2,{id:"indented-admonitions",children:"Indented admonitions"}),"\n",(0,o.jsxs)(t.p,{children:["See admonition title v2 compat syntax bug: ",(0,o.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/9507",children:"https://github.com/facebook/docusaurus/issues/9507"})]}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Item 1"}),"\n",(0,o.jsx)(t.admonition,{title:"Important Considerations",type:"info",children:(0,o.jsx)(t.p,{children:"For better experience, try to keep the upgrade experience smooth."})}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.strong,{children:"Scale-up cluster"})}),"\n",(0,o.jsx)(t.admonition,{title:"Warning",type:"caution",children:(0,o.jsx)(t.p,{children:"Scaling up a cluster may cause several minutes of downtime. Please exercise caution."})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"quoted-admonitions",children:"Quoted admonitions"}),"\n",(0,o.jsxs)(t.blockquote,{children:["\n",(0,o.jsx)(t.admonition,{title:"There be dragons",type:"caution",children:(0,o.jsx)(t.p,{children:"This is the admonition content"})}),"\n",(0,o.jsxs)(t.blockquote,{children:["\n",(0,o.jsx)(t.admonition,{title:"There be dragons",type:"caution",children:(0,o.jsx)(t.p,{children:"This is the admonition content"})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"official-admonitions",children:"Official admonitions"}),"\n",(0,o.jsxs)(t.p,{children:["Admonitions that are ",(0,o.jsx)(t.a,{href:"/docs/markdown-features/admonitions",children:"officially documented"})]}),"\n",(0,o.jsx)(t.admonition,{type:"note",children:(0,o.jsx)(t.p,{children:"note"})}),"\n",(0,o.jsx)(t.admonition,{type:"info",children:(0,o.jsx)(t.p,{children:"info"})}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsx)(t.p,{children:"tip"})}),"\n",(0,o.jsx)(t.admonition,{type:"warning",children:(0,o.jsx)(t.p,{children:"warning"})}),"\n",(0,o.jsx)(t.admonition,{type:"danger",children:(0,o.jsx)(t.p,{children:"danger"})}),"\n",(0,o.jsx)(t.h2,{id:"legacy-admonitions",children:"Legacy admonitions"}),"\n",(0,o.jsx)(t.admonition,{type:"secondary",children:(0,o.jsx)(t.p,{children:"secondary"})}),"\n",(0,o.jsx)(t.admonition,{type:"important",children:(0,o.jsx)(t.p,{children:"important"})}),"\n",(0,o.jsx)(t.admonition,{type:"success",children:(0,o.jsx)(t.p,{children:"success"})}),"\n",(0,o.jsx)(t.admonition,{type:"caution",children:(0,o.jsx)(t.p,{children:"caution"})})]})}function b(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}b.displayName="MDXContent(_dogfooding/_docs tests/tests/admonitions.mdx)"},43023:(e,t,n)=>{n.d(t,{R:()=>c,x:()=>s});var r=n(63696);let o={},i=r.createContext(o);function c(e){let t=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),r.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[61729],{65108:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(62540);function o(e){var t,n;return(0,r.jsx)("svg",(t=function(e){for(var t=1;t{n.d(t,{A:()=>N});var r,o,i=n(62540),c=n(63696),s=n(11750),l=n(81912),a=n(12653);let p={admonition:"admonition_o5H7",admonitionHeading:"admonitionHeading_FzoX",admonitionIcon:"admonitionIcon_rXq6",admonitionContent:"admonitionContent_Knsx"};function d({type:e,className:t,children:n}){return(0,i.jsx)("div",{className:(0,s.A)(a.G.common.admonition,a.G.common.admonitionType(e),p.admonition,t),children:n})}function u({icon:e,title:t}){return(0,i.jsxs)("div",{className:p.admonitionHeading,children:[(0,i.jsx)("span",{className:p.admonitionIcon,children:e}),t]})}function b({children:e}){return e?(0,i.jsx)("div",{className:p.admonitionContent,children:e}):null}function f(e){let{type:t,icon:n,title:r,children:o,className:c}=e;return(0,i.jsxs)(d,{type:t,className:c,children:[r||n?(0,i.jsx)(u,{title:r,icon:n}):null,(0,i.jsx)(b,{children:o})]})}let y={icon:(0,i.jsx)(function(e){var t,n;return(0,i.jsx)("svg",(t=function(e){for(var t=1;t(0,i.jsx)(O,D({title:"secondary"},e)),important:e=>(0,i.jsx)(v,D({title:"important"},e)),success:e=>(0,i.jsx)(m,D({title:"success"},e)),caution:function(e){var t,n;return(0,i.jsx)(f,(t=function(e){for(var t=1;tc.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),r=t.filter(e=>e!==n);return{mdxAdmonitionTitle:null==n?void 0:n.props.children,rest:r.length>0?(0,i.jsx)(i.Fragment,{children:r}):null}}(e.children),l=null!==(t=e.title)&&void 0!==t?t:o;return n=function(e){for(var t=1;t{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>b,frontMatter:()=>l,metadata:()=>r,toc:()=>d});let r=JSON.parse('{"id":"tests/admonitions","title":"Admonitions tests","description":"Empty content","source":"@site/_dogfooding/_docs tests/tests/admonitions.mdx","sourceDirName":"tests","slug":"/tests/admonitions","permalink":"/tests/docs/tests/admonitions","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{},"sidebar":"sidebar","previous":{"title":"Case-Sensitive doc","permalink":"/tests/docs/tests/Case-Sentitive-Doc"},"next":{"title":"\xe6\xf8\xe5","permalink":"/tests/docs/tests/ascii/folder/\xe6\xf8\xe5"}}');var o=n(62540),i=n(43023),c=n(55640),s=n(65108);let l={},a="Admonitions tests",p={},d=[{value:"Empty content",id:"empty-content",level:2},{value:"Empty fragment content",id:"empty-fragment-content",level:2},{value:"Large font icon",id:"large-font-icon",level:2},{value:"Large svg icon",id:"large-svg-icon",level:2},{value:"Indented admonitions",id:"indented-admonitions",level:2},{value:"Quoted admonitions",id:"quoted-admonitions",level:2},{value:"Official admonitions",id:"official-admonitions",level:2},{value:"Legacy admonitions",id:"legacy-admonitions",level:2}];function u(e){let t={a:"a",admonition:"admonition",blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",span:"span",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"admonitions-tests",children:"Admonitions tests"})}),"\n",(0,o.jsx)(t.h2,{id:"empty-content",children:"Empty content"}),"\n",(0,o.jsx)(t.admonition,{title:"Title Only",type:"note"}),"\n",(0,o.jsx)(t.h2,{id:"empty-fragment-content",children:"Empty fragment content"}),"\n",(0,o.jsx)(t.admonition,{title:"Title Only",type:"note",children:(0,o.jsx)(o.Fragment,{})}),"\n",(0,o.jsx)(t.h2,{id:"large-font-icon",children:"Large font icon"}),"\n","\n",(0,o.jsx)(c.A,{type:"tip",icon:(0,o.jsx)(t.span,{style:{fontSize:60},children:"\u{1F4A1}"}),title:"Did you know...",children:(0,o.jsx)(t.p,{children:"content"})}),"\n",(0,o.jsx)(c.A,{type:"info",icon:(0,o.jsx)(t.span,{style:{fontSize:40},children:"\u2139\uFE0F"}),title:"Did you know...",children:(0,o.jsx)(t.p,{children:"content"})}),"\n",(0,o.jsx)(t.h2,{id:"large-svg-icon",children:"Large svg icon"}),"\n","\n",(0,o.jsx)(c.A,{type:"tip",icon:(0,o.jsx)(s.A,{style:{width:60,height:60}}),title:"Did you know...",children:(0,o.jsx)(t.p,{children:"content"})}),"\n",(0,o.jsx)(c.A,{type:"info",icon:(0,o.jsx)(s.A,{style:{width:40,height:40}}),title:"Did you know...",children:(0,o.jsx)(t.p,{children:"content"})}),"\n",(0,o.jsx)(t.h2,{id:"indented-admonitions",children:"Indented admonitions"}),"\n",(0,o.jsxs)(t.p,{children:["See admonition title v2 compat syntax bug: ",(0,o.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/issues/9507",children:"https://github.com/facebook/docusaurus/issues/9507"})]}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Item 1"}),"\n",(0,o.jsx)(t.admonition,{title:"Important Considerations",type:"info",children:(0,o.jsx)(t.p,{children:"For better experience, try to keep the upgrade experience smooth."})}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.strong,{children:"Scale-up cluster"})}),"\n",(0,o.jsx)(t.admonition,{title:"Warning",type:"caution",children:(0,o.jsx)(t.p,{children:"Scaling up a cluster may cause several minutes of downtime. Please exercise caution."})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"quoted-admonitions",children:"Quoted admonitions"}),"\n",(0,o.jsxs)(t.blockquote,{children:["\n",(0,o.jsx)(t.admonition,{title:"There be dragons",type:"caution",children:(0,o.jsx)(t.p,{children:"This is the admonition content"})}),"\n",(0,o.jsxs)(t.blockquote,{children:["\n",(0,o.jsx)(t.admonition,{title:"There be dragons",type:"caution",children:(0,o.jsx)(t.p,{children:"This is the admonition content"})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"official-admonitions",children:"Official admonitions"}),"\n",(0,o.jsxs)(t.p,{children:["Admonitions that are ",(0,o.jsx)(t.a,{href:"/docs/markdown-features/admonitions",children:"officially documented"})]}),"\n",(0,o.jsx)(t.admonition,{type:"note",children:(0,o.jsx)(t.p,{children:"note"})}),"\n",(0,o.jsx)(t.admonition,{type:"info",children:(0,o.jsx)(t.p,{children:"info"})}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsx)(t.p,{children:"tip"})}),"\n",(0,o.jsx)(t.admonition,{type:"warning",children:(0,o.jsx)(t.p,{children:"warning"})}),"\n",(0,o.jsx)(t.admonition,{type:"danger",children:(0,o.jsx)(t.p,{children:"danger"})}),"\n",(0,o.jsx)(t.h2,{id:"legacy-admonitions",children:"Legacy admonitions"}),"\n",(0,o.jsx)(t.admonition,{type:"secondary",children:(0,o.jsx)(t.p,{children:"secondary"})}),"\n",(0,o.jsx)(t.admonition,{type:"important",children:(0,o.jsx)(t.p,{children:"important"})}),"\n",(0,o.jsx)(t.admonition,{type:"success",children:(0,o.jsx)(t.p,{children:"success"})}),"\n",(0,o.jsx)(t.admonition,{type:"caution",children:(0,o.jsx)(t.p,{children:"caution"})})]})}function b(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}b.displayName="MDXContent(_dogfooding/_docs tests/tests/admonitions.mdx)"},43023:(e,t,n)=>{n.d(t,{R:()=>c,x:()=>s});var r=n(63696);let o={},i=r.createContext(o);function c(e){let t=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),r.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/91291.c2a20718.js b/assets/js/91291.c2a20718.js deleted file mode 100644 index 3714212171..0000000000 --- a/assets/js/91291.c2a20718.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[91291],{91291:(e,t,l)=>{l.d(t,{diagram:()=>y});var a=l(73445),i=l(93126),n=l(62499),o=l(17367),s=l(97027);l(95285),l(31546),l(31234),l(51822),l(46591);let d=e=>o.e.sanitizeText(e,(0,o.c)()),r={dividerMargin:10,padding:5,textHeight:10,curve:void 0},c=function(e,t,l,a){let i=Object.keys(e);o.l.info("keys:",i),o.l.info(e),i.forEach(function(i){var n,s;let r=e[i],c={shape:"rect",id:r.id,domId:r.domId,labelText:d(r.id),labelStyle:"",style:"fill: none; stroke: black",padding:(null==(n=(0,o.c)().flowchart)?void 0:n.padding)??(null==(s=(0,o.c)().class)?void 0:s.padding)};t.setNode(r.id,c),p(r.classes,t,l,a,r.id),o.l.info("setNode",c)})},p=function(e,t,l,a,i){let n=Object.keys(e);o.l.info("keys:",n),o.l.info(e),n.filter(t=>e[t].parent==i).forEach(function(l){var n,s;let r=e[l],c=r.cssClasses.join(" "),p={labelStyle:"",shape:"class_box",labelText:d(r.label??r.id),classData:r,rx:0,ry:0,class:c,style:"",id:r.id,domId:r.domId,tooltip:a.db.getTooltip(r.id,i)||"",haveCallback:r.haveCallback,link:r.link,width:"group"===r.type?500:void 0,type:r.type,padding:(null==(n=(0,o.c)().flowchart)?void 0:n.padding)??(null==(s=(0,o.c)().class)?void 0:s.padding)};t.setNode(r.id,p),i&&t.setParent(r.id,i),o.l.info("setNode",p)})},b=function(e,t,l,a){o.l.info(e),e.forEach(function(e,n){var s,c;let p={labelStyle:"",shape:"note",labelText:d(e.text),noteData:e,rx:0,ry:0,class:"",style:"",id:e.id,domId:e.id,tooltip:"",type:"note",padding:(null==(s=(0,o.c)().flowchart)?void 0:s.padding)??(null==(c=(0,o.c)().class)?void 0:c.padding)};if(t.setNode(e.id,p),o.l.info("setNode",p),!e.class||!(e.class in a))return;let b=l+n,f={id:`edgeNote${b}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:(0,o.o)(r.curve,i.lUB)};t.setEdge(e.id,e.class,f,b)})},f=function(e,t){let l=(0,o.c)().flowchart,a=0;e.forEach(function(e){var n;a++;let s={classes:"relation",pattern:1==e.relation.lineType?"dashed":"solid",id:"id"+a,arrowhead:"arrow_open"===e.type?"none":"normal",startLabelRight:"none"===e.relationTitle1?"":e.relationTitle1,endLabelLeft:"none"===e.relationTitle2?"":e.relationTitle2,arrowTypeStart:g(e.relation.type1),arrowTypeEnd:g(e.relation.type2),style:"fill:none",labelStyle:"",curve:(0,o.o)(null==l?void 0:l.curve,i.lUB)};if(o.l.info(s,e),void 0!==e.style){let t=(0,o.k)(e.style);s.style=t.style,s.labelStyle=t.labelStyle}e.text=e.title,void 0===e.text?void 0!==e.style&&(s.arrowheadStyle="fill: #333"):(s.arrowheadStyle="fill: #333",s.labelpos="c",(null==(n=(0,o.c)().flowchart)?void 0:n.htmlLabels)??(0,o.c)().htmlLabels?(s.labelType="html",s.label=''+e.text+""):(s.labelType="text",s.label=e.text.replace(o.e.lineBreakRegex,"\n"),void 0===e.style&&(s.style=s.style||"stroke: #333; stroke-width: 1.5px;fill:none"),s.labelStyle=s.labelStyle.replace("color:","fill:"))),t.setEdge(e.id1,e.id2,s,a)})},u=async function(e,t,l,a){let d;o.l.info("Drawing class - ",t);let r=(0,o.c)().flowchart??(0,o.c)().class,u=(0,o.c)().securityLevel;o.l.info("config:",r);let g=(null==r?void 0:r.nodeSpacing)??50,y=(null==r?void 0:r.rankSpacing)??50,h=new n.T({multigraph:!0,compound:!0}).setGraph({rankdir:a.db.getDirection(),nodesep:g,ranksep:y,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),v=a.db.getNamespaces(),w=a.db.getClasses(),k=a.db.getRelations(),x=a.db.getNotes();o.l.info(k),c(v,h,t,a),p(w,h,t,a),f(k,h),b(x,h,k.length+1,w),"sandbox"===u&&(d=(0,i.Ltv)("#i"+t));let m="sandbox"===u?(0,i.Ltv)(d.nodes()[0].contentDocument.body):(0,i.Ltv)("body"),T=m.select(`[id="${t}"]`),S=m.select("#"+t+" g");if(await (0,s.r)(S,h,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",t),o.u.insertTitle(T,"classTitleText",(null==r?void 0:r.titleTopMargin)??5,a.db.getDiagramTitle()),(0,o.p)(h,T,null==r?void 0:r.diagramPadding,null==r?void 0:r.useMaxWidth),!(null==r?void 0:r.htmlLabels)){let e="sandbox"===u?d.nodes()[0].contentDocument:document;for(let l of e.querySelectorAll('[id="'+t+'"] .edgeLabel .label')){let t=l.getBBox(),a=e.createElementNS("http://www.w3.org/2000/svg","rect");a.setAttribute("rx",0),a.setAttribute("ry",0),a.setAttribute("width",t.width),a.setAttribute("height",t.height),l.insertBefore(a,l.firstChild)}}};function g(e){let t;switch(e){case 0:t="aggregation";break;case 1:t="extension";break;case 2:t="composition";break;case 3:t="dependency";break;case 4:t="lollipop";break;default:t="none"}return t}let y={parser:a.p,db:a.d,renderer:{setConf:function(e){r={...r,...e}},draw:u},styles:a.s,init:e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute,a.d.clear()}}}}]); \ No newline at end of file diff --git a/assets/js/91b203fb.c21f335d.js b/assets/js/91b203fb.7b102055.js similarity index 68% rename from assets/js/91b203fb.c21f335d.js rename to assets/js/91b203fb.7b102055.js index 09b311176a..0523920a83 100644 --- a/assets/js/91b203fb.c21f335d.js +++ b/assets/js/91b203fb.7b102055.js @@ -1,4 +1,4 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[92726],{22047:(e,r,n)=>{n.d(r,{A:()=>j});var t=n(62540);n(63696);var l=n(11750),a=n(46222),o=n(36372),s=n(13111),i=n(14652),c=n(81912),u=n(37425);let d={cardContainer:"cardContainer_Uewx",cardTitle:"cardTitle_dwRT",cardDescription:"cardDescription_mCBT"};function h({href:e,children:r}){return(0,t.jsx)(o.A,{href:e,className:(0,l.A)("card padding--lg",d.cardContainer),children:r})}function p({href:e,icon:r,title:n,description:a}){return(0,t.jsxs)(h,{href:e,children:[(0,t.jsxs)(u.A,{as:"h2",className:(0,l.A)("text--truncate",d.cardTitle),title:n,children:[r," ",n]}),a&&(0,t.jsx)("p",{className:(0,l.A)("text--truncate",d.cardDescription),title:a,children:a})]})}function m({item:e}){var r;let n=(0,a.Nr)(e),l=function(){let{selectMessage:e}=(0,s.W)();return r=>e(r,(0,c.T)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:r}))}();return n?(0,t.jsx)(p,{href:n,icon:"\u{1F5C3}\uFE0F",title:e.label,description:null!==(r=e.description)&&void 0!==r?r:l(e.items.length)}):null}function f({item:e}){var r,n;let l=(0,i.A)(e.href)?"\u{1F4C4}\uFE0F":"\u{1F517}",o=(0,a.cC)(null!==(r=e.docId)&&void 0!==r?r:void 0);return(0,t.jsx)(p,{href:e.href,icon:l,title:e.label,description:null!==(n=e.description)&&void 0!==n?n:null==o?void 0:o.description})}function g({item:e}){switch(e.type){case"link":return(0,t.jsx)(f,{item:e});case"category":return(0,t.jsx)(m,{item:e});default:throw Error(`unknown item type ${JSON.stringify(e)}`)}}function b({className:e}){let r=(0,a.$S)();return(0,t.jsx)(j,{items:r.items,className:e})}function j(e){let{items:r,className:n}=e;if(!r)return(0,t.jsx)(b,function(e){for(var r=1;r(0,t.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,t.jsx)(g,{item:e})},r))})}},15995:(e,r,n)=>{n.d(r,{A:()=>a});var t=n(62540);n(63696);var l=n(11750);function a({children:e,hidden:r,className:n}){return(0,t.jsx)("div",{role:"tabpanel",className:(0,l.A)("tabItem_pnkT",n),hidden:r,children:e})}},27446:(e,r,n)=>{n.d(r,{A:()=>y});var t=n(62540),l=n(63696),a=n(11750),o=n(7846),s=n(49519),i=n(96439),c=n(19739),u=n(66904),d=n(79244);function h(e){var r,n;return null!==(n=null===(r=l.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,l.isValidElement)(e)&&function(e){let{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw 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.`)}))||void 0===r?void 0:r.filter(Boolean))&&void 0!==n?n:[]}function p({value:e,tabValues:r}){return r.some(r=>r.value===e)}var m=n(10709);function f(e){for(var r=1;r{let r=e.currentTarget,t=s[i.indexOf(r)].value;t!==n&&(c(r),l(t))},d=e=>{var r,n;let t=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let n=i.indexOf(e.currentTarget)+1;t=null!==(r=i[n])&&void 0!==r?r:i[0];break}case"ArrowLeft":{let r=i.indexOf(e.currentTarget)-1;t=null!==(n=i[r])&&void 0!==n?n:i[i.length-1]}}null==t||t.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.A)("tabs",{"tabs--block":r},e),children:s.map(({value:e,label:r,attributes:l})=>(0,t.jsx)("li",g(f({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>i.push(e),onKeyDown:d,onClick:u},l),{className:(0,a.A)("tabs__item","tabItem_AQgk",null==l?void 0:l.className,{"tabs__item--active":n===e}),children:null!=r?r:e}),e))})}function j({lazy:e,children:r,selectedValue:n}){let o=(Array.isArray(r)?r:[r]).filter(Boolean);if(e){let e=o.find(e=>e.props.value===n);return e?(0,l.cloneElement)(e,{className:(0,a.A)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:o.map((e,r)=>(0,l.cloneElement)(e,{key:r,hidden:e.props.value!==n}))})}function v(e){let r=function(e){let{defaultValue:r,queryString:n=!1,groupId:t}=e,a=function(e){let{values:r,children:n}=e;return(0,l.useMemo)(()=>{let e=null!=r?r:h(n).map(({props:{value:e,label:r,attributes:n,default:t}})=>({value:e,label:r,attributes:n,default:t}));return!function(e){let r=(0,u.XI)(e,(e,r)=>e.value===r.value);if(r.length>0)throw Error(`Docusaurus error: Duplicate values "${r.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[r,n])}(e),[o,m]=(0,l.useState)(()=>(function({defaultValue:e,tabValues:r}){var n;if(0===r.length)throw Error("Docusaurus error: the component requires at least one children component");if(e){if(!p({value:e,tabValues:r}))throw Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let t=null!==(n=r.find(e=>e.default))&&void 0!==n?n:r[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:r,tabValues:a})),[f,g]=function({queryString:e=!1,groupId:r}){let n=(0,s.W6)(),t=function({queryString:e=!1,groupId:r}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!r)throw 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 null!=r?r:null}({queryString:e,groupId:r});return[(0,c.aZ)(t),(0,l.useCallback)(e=>{var r,l;if(!t)return;let a=new URLSearchParams(n.location.search);a.set(t,e),n.replace((r=function(e){for(var r=1;r{r&&t.set(e)},[r,t])]}({groupId:t}),v=(()=>{let e=null!=f?f:b;return p({value:e,tabValues:a})?e:null})();return(0,i.A)(()=>{v&&m(v)},[v]),{selectedValue:o,selectValue:(0,l.useCallback)(e=>{if(!p({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);m(e),g(e),j(e)},[g,j,a]),tabValues:a}}(e);return(0,t.jsxs)("div",{className:(0,a.A)("tabs-container","tabList_Qoir"),children:[(0,t.jsx)(b,f({},r,e)),(0,t.jsx)(j,f({},r,e))]})}function y(e){let r=(0,m.A)();return(0,t.jsx)(v,g(f({},e),{children:h(e.children)}),String(r))}},13111:(e,r,n)=>{n.d(r,{W:()=>i});var t=n(63696),l=n(99468);let a=["zero","one","two","few","many","other"];function o(e){return a.filter(r=>e.includes(r))}let s={locale:"en",pluralForms:o(["one","other"]),select:e=>1===e?"one":"other"};function i(){let e=function(){let{i18n:{currentLocale:e}}=(0,l.A)();return(0,t.useMemo)(()=>{try{return function(e){let r=new Intl.PluralRules(e);return{locale:e,pluralForms:o(r.resolvedOptions().pluralCategories),select:e=>r.select(e)}}(e)}catch(r){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[92726],{22047:(e,r,n)=>{n.d(r,{A:()=>j});var t=n(62540);n(63696);var l=n(11750),a=n(46222),o=n(36372),s=n(13111),i=n(14652),c=n(81912),u=n(37425);let d={cardContainer:"cardContainer_Uewx",cardTitle:"cardTitle_dwRT",cardDescription:"cardDescription_mCBT"};function h({href:e,children:r}){return(0,t.jsx)(o.A,{href:e,className:(0,l.A)("card padding--lg",d.cardContainer),children:r})}function p({href:e,icon:r,title:n,description:a}){return(0,t.jsxs)(h,{href:e,children:[(0,t.jsxs)(u.A,{as:"h2",className:(0,l.A)("text--truncate",d.cardTitle),title:n,children:[r," ",n]}),a&&(0,t.jsx)("p",{className:(0,l.A)("text--truncate",d.cardDescription),title:a,children:a})]})}function m({item:e}){var r;let n=(0,a.Nr)(e),l=function(){let{selectMessage:e}=(0,s.W)();return r=>e(r,(0,c.T)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:r}))}();return n?(0,t.jsx)(p,{href:n,icon:"\u{1F5C3}\uFE0F",title:e.label,description:null!==(r=e.description)&&void 0!==r?r:l(e.items.length)}):null}function f({item:e}){var r,n;let l=(0,i.A)(e.href)?"\u{1F4C4}\uFE0F":"\u{1F517}",o=(0,a.cC)(null!==(r=e.docId)&&void 0!==r?r:void 0);return(0,t.jsx)(p,{href:e.href,icon:l,title:e.label,description:null!==(n=e.description)&&void 0!==n?n:null==o?void 0:o.description})}function g({item:e}){switch(e.type){case"link":return(0,t.jsx)(f,{item:e});case"category":return(0,t.jsx)(m,{item:e});default:throw Error(`unknown item type ${JSON.stringify(e)}`)}}function b({className:e}){let r=(0,a.$S)();return(0,t.jsx)(j,{items:r.items,className:e})}function j(e){let{items:r,className:n}=e;if(!r)return(0,t.jsx)(b,function(e){for(var r=1;r(0,t.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,t.jsx)(g,{item:e})},r))})}},15995:(e,r,n)=>{n.d(r,{A:()=>a});var t=n(62540);n(63696);var l=n(11750);function a({children:e,hidden:r,className:n}){return(0,t.jsx)("div",{role:"tabpanel",className:(0,l.A)("tabItem_pnkT",n),hidden:r,children:e})}},27446:(e,r,n)=>{n.d(r,{A:()=>x});var t=n(62540),l=n(63696),a=n(11750),o=n(7846),s=n(49519),i=n(96439),c=n(19739),u=n(66904),d=n(79244);function h(e){var r,n;return null!==(n=null===(r=l.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,l.isValidElement)(e)&&function(e){let{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw 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.`)}))||void 0===r?void 0:r.filter(Boolean))&&void 0!==n?n:[]}function p({value:e,tabValues:r}){return r.some(r=>r.value===e)}var m=n(10709);function f(e){for(var r=1;r{let r=e.currentTarget,t=s[i.indexOf(r)].value;t!==n&&(c(r),l(t))},d=e=>{var r,n;let t=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let n=i.indexOf(e.currentTarget)+1;t=null!==(r=i[n])&&void 0!==r?r:i[0];break}case"ArrowLeft":{let r=i.indexOf(e.currentTarget)-1;t=null!==(n=i[r])&&void 0!==n?n:i[i.length-1]}}null==t||t.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.A)("tabs",{"tabs--block":r},e),children:s.map(({value:e,label:r,attributes:l})=>(0,t.jsx)("li",g(f({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>i.push(e),onKeyDown:d,onClick:u},l),{className:(0,a.A)("tabs__item","tabItem_AQgk",null==l?void 0:l.className,{"tabs__item--active":n===e}),children:null!=r?r:e}),e))})}function j({lazy:e,children:r,selectedValue:n}){let o=(Array.isArray(r)?r:[r]).filter(Boolean);if(e){let e=o.find(e=>e.props.value===n);return e?(0,l.cloneElement)(e,{className:(0,a.A)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:o.map((e,r)=>(0,l.cloneElement)(e,{key:r,hidden:e.props.value!==n}))})}function v(e){let r=function(e){let{defaultValue:r,queryString:n=!1,groupId:t}=e,a=function(e){let{values:r,children:n}=e;return(0,l.useMemo)(()=>{let e=null!=r?r:h(n).map(({props:{value:e,label:r,attributes:n,default:t}})=>({value:e,label:r,attributes:n,default:t}));return!function(e){let r=(0,u.XI)(e,(e,r)=>e.value===r.value);if(r.length>0)throw Error(`Docusaurus error: Duplicate values "${r.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[r,n])}(e),[o,m]=(0,l.useState)(()=>(function({defaultValue:e,tabValues:r}){var n;if(0===r.length)throw Error("Docusaurus error: the component requires at least one children component");if(e){if(!p({value:e,tabValues:r}))throw Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let t=null!==(n=r.find(e=>e.default))&&void 0!==n?n:r[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:r,tabValues:a})),[f,g]=function({queryString:e=!1,groupId:r}){let n=(0,s.W6)(),t=function({queryString:e=!1,groupId:r}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!r)throw 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 null!=r?r:null}({queryString:e,groupId:r});return[(0,c.aZ)(t),(0,l.useCallback)(e=>{var r,l;if(!t)return;let a=new URLSearchParams(n.location.search);a.set(t,e),n.replace((r=function(e){for(var r=1;r{r&&t.set(e)},[r,t])]}({groupId:t}),v=(()=>{let e=null!=f?f:b;return p({value:e,tabValues:a})?e:null})();return(0,i.A)(()=>{v&&m(v)},[v]),{selectedValue:o,selectValue:(0,l.useCallback)(e=>{if(!p({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);m(e),g(e),j(e)},[g,j,a]),tabValues:a}}(e);return(0,t.jsxs)("div",{className:(0,a.A)("tabs-container","tabList_Qoir"),children:[(0,t.jsx)(b,f({},r,e)),(0,t.jsx)(j,f({},r,e))]})}function x(e){let r=(0,m.A)();return(0,t.jsx)(v,g(f({},e),{children:h(e.children)}),String(r))}},13111:(e,r,n)=>{n.d(r,{W:()=>i});var t=n(63696),l=n(99468);let a=["zero","one","two","few","many","other"];function o(e){return a.filter(r=>e.includes(r))}let s={locale:"en",pluralForms:o(["one","other"]),select:e=>1===e?"one":"other"};function i(){let e=function(){let{i18n:{currentLocale:e}}=(0,l.A)();return(0,t.useMemo)(()=>{try{return function(e){let r=new Intl.PluralRules(e);return{locale:e,pluralForms:o(r.resolvedOptions().pluralCategories),select:e=>r.select(e)}}(e)}catch(r){return console.error(`Failed to use Intl.PluralRules for locale "${e}". Docusaurus will fallback to the default (English) implementation. Error: ${r.message} -`),s}},[e])}();return{selectMessage:(r,n)=>(function(e,r,n){let t=e.split("|");if(1===t.length)return t[0];t.length>n.pluralForms.length&&console.error(`For locale=${n.locale}, a maximum of ${n.pluralForms.length} plural forms are expected (${n.pluralForms.join(",")}), but the message contains ${t.length}: ${e}`);let l=n.select(r);return t[Math.min(n.pluralForms.indexOf(l),t.length-1)]})(n,r,e)}}},88917:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>d,contentTitle:()=>u,default:()=>m,frontMatter:()=>c,metadata:()=>t,toc:()=>h});let t=JSON.parse('{"id":"migration/index","title":"Upgrading Docusaurus","description":"Docusaurus versioning is based on the major.minor.patch scheme and respects Semantic Versioning.","source":"@site/docs/migration/index.mdx","sourceDirName":"migration","slug":"/migration","permalink":"/docs/migration","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/index.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"slug":"/migration"},"sidebar":"docs","previous":{"title":"Client architecture","permalink":"/docs/advanced/client"},"next":{"title":"To Docusaurus v3","permalink":"/docs/migration/v3"}}');var l=n(62540),a=n(43023),o=n(27446),s=n(15995),i=n(22047);let c={slug:"/migration"},u="Upgrading Docusaurus",d={},h=[{value:"Troubleshooting upgrades",id:"troubleshooting-upgrades",level:2},{value:"Run the clear command",id:"run-the-clear-command",level:3},{value:"Remove node_modules and your lock file(s)",id:"remove-node_modules-and-your-lock-files",level:3}];function p(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",...(0,a.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(r.header,{children:(0,l.jsx)(r.h1,{id:"upgrading-docusaurus",children:"Upgrading Docusaurus"})}),"\n",(0,l.jsxs)(r.p,{children:["Docusaurus versioning is based on the ",(0,l.jsx)(r.code,{children:"major.minor.patch"})," scheme and respects ",(0,l.jsx)(r.a,{href:"https://semver.org/",children:(0,l.jsx)(r.strong,{children:"Semantic Versioning"})}),"."]}),"\n",(0,l.jsxs)(r.p,{children:[(0,l.jsx)(r.strong,{children:"Breaking changes"})," are only released on major version upgrades, and thoroughly documented in the following upgrade guides."]}),"\n","\n",(0,l.jsx)(i.A,{}),"\n",(0,l.jsx)(r.h2,{id:"troubleshooting-upgrades",children:"Troubleshooting upgrades"}),"\n",(0,l.jsx)(r.p,{children:"When upgrading Docusaurus you may experience issues caused by mismatching cached dependencies - there are a few troubleshooting steps you should perform to resolve these common issues before reporting a bug or seeking support."}),"\n",(0,l.jsxs)(r.h3,{id:"run-the-clear-command",children:["Run the ",(0,l.jsx)(r.code,{children:"clear"})," command"]}),"\n",(0,l.jsx)(r.p,{children:"This CLI command is used to clear a Docusaurus site's generated assets, caches and build artifacts."}),"\n",(0,l.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,l.jsx)(s.A,{value:"npm",children:(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-bash",children:"npm run clear\n"})})}),(0,l.jsx)(s.A,{value:"yarn",label:"Yarn",children:(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-bash",children:"yarn clear\n"})})}),(0,l.jsx)(s.A,{value:"pnpm",label:"pnpm",children:(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-bash",children:"pnpm run clear\n"})})})]}),"\n",(0,l.jsxs)(r.h3,{id:"remove-node_modules-and-your-lock-files",children:["Remove ",(0,l.jsx)(r.code,{children:"node_modules"})," and your lock file(s)"]}),"\n",(0,l.jsxs)(r.p,{children:["Remove the ",(0,l.jsx)(r.code,{children:"node_modules"})," folder and your package manager's lock file using the following:"]}),"\n",(0,l.jsxs)(o.A,{children:[(0,l.jsx)(s.A,{label:"Bash",value:"bash",children:(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-bash",children:"rm -rf node_modules yarn.lock package-lock.json\n"})})}),(0,l.jsx)(s.A,{label:"PowerShell",value:"powershell",children:(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-powershell",children:"@('node_modules','yarn.lock','package-lock.json') | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue\n"})})})]}),"\n",(0,l.jsxs)(r.p,{children:["Then reinstall packages and regenerate the ",(0,l.jsx)(r.code,{children:"lock"})," file using:"]}),"\n",(0,l.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,l.jsx)(s.A,{value:"npm",children:(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-bash",children:"npm install\n"})})}),(0,l.jsx)(s.A,{value:"yarn",label:"Yarn",children:(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-bash",children:"yarn install\n"})})}),(0,l.jsx)(s.A,{value:"pnpm",label:"pnpm",children:(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-bash",children:"pnpm install\n"})})})]})]})}function m(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,l.jsx)(r,{...e,children:(0,l.jsx)(p,{...e})}):p(e)}},43023:(e,r,n)=>{n.d(r,{R:()=>o,x:()=>s});var t=n(63696);let l={},a=t.createContext(l);function o(e){let r=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function s(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),t.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file +`),s}},[e])}();return{selectMessage:(r,n)=>(function(e,r,n){let t=e.split("|");if(1===t.length)return t[0];t.length>n.pluralForms.length&&console.error(`For locale=${n.locale}, a maximum of ${n.pluralForms.length} plural forms are expected (${n.pluralForms.join(",")}), but the message contains ${t.length}: ${e}`);let l=n.select(r);return t[Math.min(n.pluralForms.indexOf(l),t.length-1)]})(n,r,e)}}},88917:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>d,contentTitle:()=>u,default:()=>m,frontMatter:()=>c,metadata:()=>t,toc:()=>h});let t=JSON.parse('{"id":"migration/index","title":"Upgrading Docusaurus","description":"Docusaurus versioning is based on the major.minor.patch scheme and respects Semantic Versioning.","source":"@site/docs/migration/index.mdx","sourceDirName":"migration","slug":"/migration","permalink":"/docs/migration","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/migration/index.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"frontMatter":{"slug":"/migration"},"sidebar":"docs","previous":{"title":"Client architecture","permalink":"/docs/advanced/client"},"next":{"title":"To Docusaurus v3","permalink":"/docs/migration/v3"}}');var l=n(62540),a=n(43023),o=n(27446),s=n(15995),i=n(22047);let c={slug:"/migration"},u="Upgrading Docusaurus",d={},h=[{value:"Troubleshooting upgrades",id:"troubleshooting-upgrades",level:2},{value:"Run the clear command",id:"run-the-clear-command",level:3},{value:"Remove node_modules and your lock file(s)",id:"remove-node_modules-and-your-lock-files",level:3}];function p(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",...(0,a.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(r.header,{children:(0,l.jsx)(r.h1,{id:"upgrading-docusaurus",children:"Upgrading Docusaurus"})}),"\n",(0,l.jsxs)(r.p,{children:["Docusaurus versioning is based on the ",(0,l.jsx)(r.code,{children:"major.minor.patch"})," scheme and respects ",(0,l.jsx)(r.a,{href:"https://semver.org/",children:(0,l.jsx)(r.strong,{children:"Semantic Versioning"})}),"."]}),"\n",(0,l.jsxs)(r.p,{children:[(0,l.jsx)(r.strong,{children:"Breaking changes"})," are only released on major version upgrades, and thoroughly documented in the following upgrade guides."]}),"\n","\n",(0,l.jsx)(i.A,{}),"\n",(0,l.jsx)(r.h2,{id:"troubleshooting-upgrades",children:"Troubleshooting upgrades"}),"\n",(0,l.jsx)(r.p,{children:"When upgrading Docusaurus you may experience issues caused by mismatching cached dependencies - there are a few troubleshooting steps you should perform to resolve these common issues before reporting a bug or seeking support."}),"\n",(0,l.jsxs)(r.h3,{id:"run-the-clear-command",children:["Run the ",(0,l.jsx)(r.code,{children:"clear"})," command"]}),"\n",(0,l.jsx)(r.p,{children:"This CLI command is used to clear a Docusaurus site's generated assets, caches and build artifacts."}),"\n",(0,l.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,l.jsx)(s.A,{value:"npm",children:(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-bash",children:"npm run clear\n"})})}),(0,l.jsx)(s.A,{value:"yarn",label:"Yarn",children:(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-bash",children:"yarn clear\n"})})}),(0,l.jsx)(s.A,{value:"pnpm",label:"pnpm",children:(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-bash",children:"pnpm run clear\n"})})})]}),"\n",(0,l.jsxs)(r.h3,{id:"remove-node_modules-and-your-lock-files",children:["Remove ",(0,l.jsx)(r.code,{children:"node_modules"})," and your lock file(s)"]}),"\n",(0,l.jsxs)(r.p,{children:["Remove the ",(0,l.jsx)(r.code,{children:"node_modules"})," folder and your package manager's lock file using the following:"]}),"\n",(0,l.jsxs)(o.A,{children:[(0,l.jsx)(s.A,{label:"Bash",value:"bash",children:(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-bash",children:"rm -rf node_modules yarn.lock package-lock.json\n"})})}),(0,l.jsx)(s.A,{label:"PowerShell",value:"powershell",children:(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-powershell",children:"@('node_modules','yarn.lock','package-lock.json') | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue\n"})})})]}),"\n",(0,l.jsxs)(r.p,{children:["Then reinstall packages and regenerate the ",(0,l.jsx)(r.code,{children:"lock"})," file using:"]}),"\n",(0,l.jsxs)(o.A,{groupId:"npm2yarn",children:[(0,l.jsx)(s.A,{value:"npm",children:(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-bash",children:"npm install\n"})})}),(0,l.jsx)(s.A,{value:"yarn",label:"Yarn",children:(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-bash",children:"yarn install\n"})})}),(0,l.jsx)(s.A,{value:"pnpm",label:"pnpm",children:(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-bash",children:"pnpm install\n"})})})]})]})}function m(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,l.jsx)(r,{...e,children:(0,l.jsx)(p,{...e})}):p(e)}},43023:(e,r,n)=>{n.d(r,{R:()=>o,x:()=>s});var t=n(63696);let l={},a=t.createContext(l);function o(e){let r=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function s(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),t.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/91cd22f1.929bbb28.js b/assets/js/91cd22f1.929bbb28.js new file mode 100644 index 0000000000..a46254776b --- /dev/null +++ b/assets/js/91cd22f1.929bbb28.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[54983],{77142:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>c});let i=JSON.parse('{"id":"api/themes/themes-overview","title":"Docusaurus themes","description":"We provide official Docusaurus themes.","source":"@site/docs/api/themes/overview.mdx","sourceDirName":"api/themes","slug":"/api/themes","permalink":"/docs/api/themes","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/overview.mdx","tags":[],"version":"current","lastUpdatedBy":"S\xe9bastien Lorber","lastUpdatedAt":1726753963000,"sidebarPosition":0,"frontMatter":{"sidebar_position":0,"id":"themes-overview","sidebar_label":"Themes overview","slug":"/api/themes"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-vercel-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-vercel-analytics"},"next":{"title":"Configuration","permalink":"/docs/api/themes/configuration"}}');var t=n(62540),a=n(43023);let r={sidebar_position:0,id:"themes-overview",sidebar_label:"Themes overview",slug:"/api/themes"},o="Docusaurus themes",l={},c=[{value:"Main themes",id:"main-themes",level:2},{value:"Enhancement themes",id:"enhancement-themes",level:2}];function h(e){let s={a:"a",admonition:"admonition",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",ul:"ul",...(0,a.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.header,{children:(0,t.jsx)(s.h1,{id:"docusaurus-themes",children:"Docusaurus themes"})}),"\n",(0,t.jsx)(s.p,{children:"We provide official Docusaurus themes."}),"\n",(0,t.jsx)(s.h2,{id:"main-themes",children:"Main themes"}),"\n",(0,t.jsxs)(s.p,{children:["The main themes implement the user interface for the ",(0,t.jsx)(s.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-docs",children:"docs"}),", ",(0,t.jsx)(s.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-blog",children:"blog"})," and ",(0,t.jsx)(s.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-pages",children:"pages"})," plugins."]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"/docs/api/themes/@docusaurus/theme-classic",children:"@docusaurus/theme-classic"})}),"\n",(0,t.jsx)(s.li,{children:"\u{1F6A7} other themes are planned"}),"\n"]}),"\n",(0,t.jsxs)(s.admonition,{type:"warning",children:[(0,t.jsx)(s.p,{children:"The goal is to have all themes share the exact same features, user-experience and configuration."}),(0,t.jsx)(s.p,{children:"Only the UI design and underlying styling framework should change, and you should be able to change theme easily."}),(0,t.jsx)(s.p,{children:"We are not there yet: only the classic theme is production ready."})]}),"\n",(0,t.jsx)(s.h2,{id:"enhancement-themes",children:"Enhancement themes"}),"\n",(0,t.jsx)(s.p,{children:"These themes will enhance the existing main themes with additional user-interface related features."}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"/docs/api/themes/@docusaurus/theme-live-codeblock",children:"@docusaurus/theme-live-codeblock"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"/docs/api/themes/@docusaurus/theme-search-algolia",children:"@docusaurus/theme-search-algolia"})}),"\n"]})]})}function u(e={}){let{wrapper:s}={...(0,a.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},43023:(e,s,n)=>{n.d(s,{R:()=>r,x:()=>o});var i=n(63696);let t={},a=i.createContext(t);function r(e){let s=i.useContext(a);return i.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(t):e.components||t:r(e.components),i.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/91cd22f1.d3c60f3f.js b/assets/js/91cd22f1.d3c60f3f.js deleted file mode 100644 index 8fd9aba9b1..0000000000 --- a/assets/js/91cd22f1.d3c60f3f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[54983],{77142:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>h});let i=JSON.parse('{"id":"api/themes/themes-overview","title":"Docusaurus themes","description":"We provide official Docusaurus themes.","source":"@site/docs/api/themes/overview.mdx","sourceDirName":"api/themes","slug":"/api/themes","permalink":"/docs/api/themes","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/api/themes/overview.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"sidebarPosition":0,"frontMatter":{"sidebar_position":0,"id":"themes-overview","sidebar_label":"Themes overview","slug":"/api/themes"},"sidebar":"api","previous":{"title":"\u{1F4E6} plugin-vercel-analytics","permalink":"/docs/api/plugins/@docusaurus/plugin-vercel-analytics"},"next":{"title":"Configuration","permalink":"/docs/api/themes/configuration"}}');var t=n(62540),a=n(43023);let r={sidebar_position:0,id:"themes-overview",sidebar_label:"Themes overview",slug:"/api/themes"},o="Docusaurus themes",l={},h=[{value:"Main themes",id:"main-themes",level:2},{value:"Enhancement themes",id:"enhancement-themes",level:2}];function c(e){let s={a:"a",admonition:"admonition",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",ul:"ul",...(0,a.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.header,{children:(0,t.jsx)(s.h1,{id:"docusaurus-themes",children:"Docusaurus themes"})}),"\n",(0,t.jsx)(s.p,{children:"We provide official Docusaurus themes."}),"\n",(0,t.jsx)(s.h2,{id:"main-themes",children:"Main themes"}),"\n",(0,t.jsxs)(s.p,{children:["The main themes implement the user interface for the ",(0,t.jsx)(s.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-docs",children:"docs"}),", ",(0,t.jsx)(s.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-blog",children:"blog"})," and ",(0,t.jsx)(s.a,{href:"/docs/api/plugins/@docusaurus/plugin-content-pages",children:"pages"})," plugins."]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"/docs/api/themes/@docusaurus/theme-classic",children:"@docusaurus/theme-classic"})}),"\n",(0,t.jsx)(s.li,{children:"\u{1F6A7} other themes are planned"}),"\n"]}),"\n",(0,t.jsxs)(s.admonition,{type:"warning",children:[(0,t.jsx)(s.p,{children:"The goal is to have all themes share the exact same features, user-experience and configuration."}),(0,t.jsx)(s.p,{children:"Only the UI design and underlying styling framework should change, and you should be able to change theme easily."}),(0,t.jsx)(s.p,{children:"We are not there yet: only the classic theme is production ready."})]}),"\n",(0,t.jsx)(s.h2,{id:"enhancement-themes",children:"Enhancement themes"}),"\n",(0,t.jsx)(s.p,{children:"These themes will enhance the existing main themes with additional user-interface related features."}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"/docs/api/themes/@docusaurus/theme-live-codeblock",children:"@docusaurus/theme-live-codeblock"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"/docs/api/themes/@docusaurus/theme-search-algolia",children:"@docusaurus/theme-search-algolia"})}),"\n"]})]})}function u(e={}){let{wrapper:s}={...(0,a.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},43023:(e,s,n)=>{n.d(s,{R:()=>r,x:()=>o});var i=n(63696);let t={},a=i.createContext(t);function r(e){let s=i.useContext(a);return i.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(t):e.components||t:r(e.components),i.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/93422.59ebadee.js b/assets/js/93422.59ebadee.js new file mode 100644 index 0000000000..7d3f73fff1 --- /dev/null +++ b/assets/js/93422.59ebadee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[93422],{35141:(e,t,n)=>{n.d(t,{M:()=>d});var r=n(31454),i=n(86847),a=n(23480);function d(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:a.A(e.nodes(),function(t){var n=e.node(t),i=e.parent(t),a={v:t};return r.A(n)||(a.value=n),r.A(i)||(a.parent=i),a}),edges:a.A(e.edges(),function(t){var n=e.edge(t),i={v:t.v,w:t.w};return r.A(t.name)||(i.name=t.name),r.A(n)||(i.value=n),i})};return r.A(e.graph())||(t.value=i.A(e.graph())),t}n(3735)},86847:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(34081);let i=function(e){return(0,r.A)(e,4)}},93422:(e,t,n)=>{n.r(t),n.d(t,{render:()=>C});var r=n(93510),i=n(16470);n(27923),n(67027);var a=n(72912),d=n(62628),o=n(35141),s=n(62499),l=new Map,g=new Map,c=new Map,f=(0,a.K2)(()=>{g.clear(),c.clear(),l.clear()},"clear"),h=(0,a.K2)((e,t)=>{let n=g.get(t)||[];return a.Rm.trace("In isDescendant",t," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),u=(0,a.K2)((e,t)=>{let n=g.get(t)||[];return a.Rm.info("Descendants of ",t," is ",n),a.Rm.info("Edge is ",e),e.v!==t&&e.w!==t&&(n?n.includes(e.v)||h(e.v,t)||h(e.w,t)||n.includes(e.w):(a.Rm.debug("Tilt, ",t,",not in descendants"),!1))},"edgeInCluster"),p=(0,a.K2)((e,t,n,r)=>{a.Rm.warn("Copying children of ",e,"root",r,"data",t.node(e),r);let i=t.children(e)||[];e!==r&&i.push(e),a.Rm.warn("Copying (nodes) clusterId",e,"nodes",i),i.forEach(i=>{if(t.children(i).length>0)p(i,t,n,r);else{let d=t.node(i);a.Rm.info("cp ",i," to ",r," with parent ",e),n.setNode(i,d),r!==t.parent(i)&&(a.Rm.warn("Setting parent",i,t.parent(i)),n.setParent(i,t.parent(i))),e!==r&&i!==e?(a.Rm.debug("Setting parent",i,e),n.setParent(i,e)):(a.Rm.info("In copy ",e,"root",r,"data",t.node(e),r),a.Rm.debug("Not Setting parent for node=",i,"cluster!==rootId",e!==r,"node!==clusterId",i!==e));let o=t.edges(i);a.Rm.debug("Copying Edges",o),o.forEach(i=>{a.Rm.info("Edge",i);let d=t.edge(i.v,i.w,i.name);a.Rm.info("Edge data",d,r);try{u(i,r)?(a.Rm.info("Copying as ",i.v,i.w,d,i.name),n.setEdge(i.v,i.w,d,i.name),a.Rm.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):a.Rm.info("Skipping copy of edge ",i.v,"-->",i.w," rootId: ",r," clusterId:",e)}catch(e){a.Rm.error(e)}})}a.Rm.debug("Removing node",i),t.removeNode(i)})},"copy"),m=(0,a.K2)((e,t)=>{let n=t.children(e),r=[...n];for(let i of n)c.set(i,e),r=[...r,...m(i,t)];return r},"extractDescendants"),w=(0,a.K2)((e,t,n)=>{let r=e.edges().filter(e=>e.v===t||e.w===t),i=e.edges().filter(e=>e.v===n||e.w===n),a=r.map(e=>({v:e.v===t?n:e.v,w:e.w===t?t:e.w})),d=i.map(e=>({v:e.v,w:e.w}));return a.filter(e=>d.some(t=>e.v===t.v&&e.w===t.w))},"findCommonEdges"),R=(0,a.K2)((e,t,n)=>{let r;let i=t.children(e);if(a.Rm.trace("Searching children of id ",e,i),i.length<1)return e;for(let e of i){let i=R(e,t,n),a=w(t,n,i);if(i){if(!(a.length>0))return i;r=i}}return r},"findNonClusterChild"),v=(0,a.K2)(e=>l.has(e)&&l.get(e).externalConnections&&l.has(e)?l.get(e).id:e,"getAnchorId"),y=(0,a.K2)((e,t)=>{if(!e||t>10){a.Rm.debug("Opting out, no graph ");return}for(let t of(a.Rm.debug("Opting in, graph "),e.nodes().forEach(function(t){e.children(t).length>0&&(a.Rm.warn("Cluster identified",t," Replacement id in edges: ",R(t,e,t)),g.set(t,m(t,e)),l.set(t,{id:R(t,e,t),clusterData:e.node(t)}))}),e.nodes().forEach(function(t){let n=e.children(t),r=e.edges();n.length>0?(a.Rm.debug("Cluster identified",t,g),r.forEach(e=>{h(e.v,t)^h(e.w,t)&&(a.Rm.warn("Edge: ",e," leaves cluster ",t),a.Rm.warn("Descendants of XXX ",t,": ",g.get(t)),l.get(t).externalConnections=!0)})):a.Rm.debug("Not a cluster ",t,g)}),l.keys())){let n=l.get(t).id,r=e.parent(n);r!==t&&l.has(r)&&!l.get(r).externalConnections&&(l.get(t).id=r)}e.edges().forEach(function(t){let n=e.edge(t);a.Rm.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),a.Rm.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(e.edge(t)));let r=t.v,i=t.w;if(a.Rm.warn("Fix XXX",l,"ids:",t.v,t.w,"Translating: ",l.get(t.v)," --- ",l.get(t.w)),l.get(t.v)||l.get(t.w)){if(a.Rm.warn("Fixing and trying - removing XXX",t.v,t.w,t.name),r=v(t.v),i=v(t.w),e.removeEdge(t.v,t.w,t.name),r!==t.v){let i=e.parent(r);l.get(i).externalConnections=!0,n.fromCluster=t.v}if(i!==t.w){let r=e.parent(i);l.get(r).externalConnections=!0,n.toCluster=t.w}a.Rm.warn("Fix Replacing with XXX",r,i,t.name),e.setEdge(r,i,n,t.name)}}),a.Rm.warn("Adjusted Graph",o.M(e)),X(e,0),a.Rm.trace(l)},"adjustClustersAndEdges"),X=(0,a.K2)((e,t)=>{if(a.Rm.warn("extractor - ",t,o.M(e),e.children("D")),t>10){a.Rm.error("Bailing out");return}let n=e.nodes(),r=!1;for(let t of n){let n=e.children(t);r=r||n.length>0}if(!r){a.Rm.debug("Done, no node has children",e.nodes());return}for(let r of(a.Rm.debug("Nodes = ",n,t),n))if(a.Rm.debug("Extracting node",r,l,l.has(r)&&!l.get(r).externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",t),l.has(r)){if(!l.get(r).externalConnections&&e.children(r)&&e.children(r).length>0){a.Rm.warn("Cluster without external connections, without a parent and with children",r,t);let n="TB"===e.graph().rankdir?"LR":"TB";l.get(r)?.clusterData?.dir&&(n=l.get(r).clusterData.dir,a.Rm.warn("Fixing dir",l.get(r).clusterData.dir,n));let i=new s.T({multigraph:!0,compound:!0}).setGraph({rankdir:n,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});a.Rm.warn("Old graph before copy",o.M(e)),p(r,e,i,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:l.get(r).clusterData,label:l.get(r).label,graph:i}),a.Rm.warn("New graph after copy node: (",r,")",o.M(i)),a.Rm.debug("Old graph after copy",o.M(e))}else a.Rm.warn("Cluster ** ",r," **not meeting the criteria !externalConnections:",!l.get(r).externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),t),a.Rm.debug(l)}else a.Rm.debug("Not a cluster",r,t);for(let r of(n=e.nodes(),a.Rm.warn("New list of nodes",n),n)){let n=e.node(r);a.Rm.warn(" Now next level",r,n),n?.clusterNode&&X(n.graph,t+1)}},"extractor"),b=(0,a.K2)((e,t)=>{if(0===t.length)return[];let n=Object.assign([],t);return t.forEach(t=>{let r=e.children(t),i=b(e,r);n=[...n,...i]}),n},"sorter"),E=(0,a.K2)(e=>b(e,e.children()),"sortNodesByHierarchy"),N=(0,a.K2)(async(e,t,n,s,g,c)=>{a.Rm.warn("Graph in recursive render:XAX",o.M(t),g);let f=t.graph().rankdir;a.Rm.trace("Dir in recursive render - dir:",f);let h=e.insert("g").attr("class","root");t.nodes()?a.Rm.info("Recursive render XXX",t.nodes()):a.Rm.info("No nodes found for",t),t.edges().length>0&&a.Rm.info("Recursive edges",t.edge(t.edges()[0]));let u=h.insert("g").attr("class","clusters"),p=h.insert("g").attr("class","edgePaths"),m=h.insert("g").attr("class","edgeLabels"),w=h.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(e){let i=t.node(e);if(void 0!==g){let n=JSON.parse(JSON.stringify(g.clusterData));a.Rm.trace("Setting data for parent cluster XXX\n Node.id = ",e,"\n data=",n.height,"\nParent cluster",g.height),t.setNode(g.id,n),t.parent(e)||(a.Rm.trace("Setting parent",e,g.id),t.setParent(e,g.id,n))}if(a.Rm.info("(Insert) Node XXX"+e+": "+JSON.stringify(t.node(e))),i?.clusterNode){a.Rm.info("Cluster identified XBX",e,i.width,t.node(e));let{ranksep:d,nodesep:o}=t.graph();i.graph.setGraph({...i.graph.graph(),ranksep:d+25,nodesep:o});let l=await N(w,i.graph,n,s,t.node(e),c),g=l.elem;(0,r.lC)(i,g),i.diff=l.diff||0,a.Rm.info("New compound node after recursive render XAX",e,"width",i.width,"height",i.height),(0,r.U7)(g,i)}else t.children(e).length>0?(a.Rm.trace("Cluster - the non recursive path XBX",e,i.id,i,i.width,"Graph:",t),a.Rm.trace(R(i.id,t)),l.set(i.id,{id:R(i.id,t),node:i})):(a.Rm.trace("Node - the non recursive path XAX",e,w,t.node(e),f),await (0,r.on)(w,t.node(e),f))}));let v=(0,a.K2)(async()=>{let e=t.edges().map(async function(e){let n=t.edge(e.v,e.w,e.name);a.Rm.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),a.Rm.info("Edge "+e.v+" -> "+e.w+": ",e," ",JSON.stringify(t.edge(e))),a.Rm.info("Fix",l,"ids:",e.v,e.w,"Translating: ",l.get(e.v),l.get(e.w)),await (0,r.jP)(m,n)});await Promise.all(e)},"processEdges");await v(),a.Rm.info("Graph before layout:",JSON.stringify(o.M(t))),a.Rm.info("############################################# XXX"),a.Rm.info("### Layout ### XXX"),a.Rm.info("############################################# XXX"),(0,d.Zp)(t),a.Rm.info("Graph after layout:",JSON.stringify(o.M(t)));let y=0,{subGraphTitleTotalMargin:X}=(0,i.O)(c);return await Promise.all(E(t).map(async function(e){let n=t.node(e);if(a.Rm.info("Position XBX => "+e+": ("+n.x,","+n.y,") width: ",n.width," height: ",n.height),n?.clusterNode)n.y+=X,a.Rm.info("A tainted cluster node XBX1",e,n.id,n.width,n.height,n.x,n.y,t.parent(e)),l.get(n.id).node=n,(0,r.U_)(n);else if(t.children(e).length>0){a.Rm.info("A pure cluster node XBX1",e,n.id,n.x,n.y,n.width,n.height,t.parent(e)),n.height+=X,t.node(n.parentId);let i=n?.padding/2||0,d=n?.labelBBox?.height||0;a.Rm.debug("OffsetY",d-i||0,"labelHeight",d,"halfPadding",i),await (0,r.U)(u,n),l.get(n.id).node=n}else{let e=t.node(n.parentId);n.y+=X/2,a.Rm.info("A regular node XBX1 - using the padding",n.id,"parent",n.parentId,n.width,n.height,n.x,n.y,"offsetY",n.offsetY,"parent",e,e?.offsetY,n),(0,r.U_)(n)}})),t.edges().forEach(function(e){let i=t.edge(e);a.Rm.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(i),i),i.points.forEach(e=>e.y+=X/2);let d=t.node(e.v);var o=t.node(e.w);let g=(0,r.Jo)(p,i,l,n,d,o,s);(0,r.T_)(i,g)}),t.nodes().forEach(function(e){let n=t.node(e);a.Rm.info(e,n.type,n.diff),n.isGroup&&(y=n.diff)}),a.Rm.warn("Returning from recursive render XAX",h,y),{elem:h,diff:y}},"recursiveRender"),C=(0,a.K2)(async(e,t)=>{let n=new s.T({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:e.config?.nodeSpacing||e.config?.flowchart?.nodeSpacing||e.nodeSpacing,ranksep:e.config?.rankSpacing||e.config?.flowchart?.rankSpacing||e.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),i=t.select("g");(0,r.g0)(i,e.markers,e.type,e.diagramId),(0,r.nA)(),(0,r.gh)(),(0,r.IU)(),f(),e.nodes.forEach(e=>{n.setNode(e.id,{...e}),e.parentId&&n.setParent(e.id,e.parentId)}),a.Rm.debug("Edges:",e.edges),e.edges.forEach(e=>{if(e.start===e.end){let t=e.start,r=t+"---"+t+"---1",i=t+"---"+t+"---2",a=n.node(t);n.setNode(r,{domId:r,id:r,parentId:a.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),n.setParent(r,a.parentId),n.setNode(i,{domId:i,id:i,parentId:a.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),n.setParent(i,a.parentId);let d=structuredClone(e),o=structuredClone(e),s=structuredClone(e);d.label="",d.arrowTypeEnd="none",d.id=t+"-cyclic-special-1",o.arrowTypeEnd="none",o.id=t+"-cyclic-special-mid",s.label="",a.isGroup&&(d.fromCluster=t,s.toCluster=t),s.id=t+"-cyclic-special-2",n.setEdge(t,r,d,t+"-cyclic-special-0"),n.setEdge(r,i,o,t+"-cyclic-special-1"),n.setEdge(i,t,s,t+"-cyc{l.d(t,{H:()=>a});var r=l(17963);function a(e,t){var l=e.append("foreignObject").attr("width","100000"),a=l.append("xhtml:div");a.attr("xmlns","http://www.w3.org/1999/xhtml");var o=t.label;switch(typeof o){case"function":a.insert(o);break;case"object":a.insert(function(){return o});break;default:a.html(o)}r.AV(a,t.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap");var n=a.node().getBoundingClientRect();return l.attr("width",n.width).attr("height",n.height),l}},17963:(e,t,l)=>{l.d(t,{AV:()=>d,De:()=>o,c$:()=>p,gh:()=>n,nh:()=>c});var r=l(69113),a=l(42036);function o(e,t){return!!e.children(t).length}function n(e){return s(e.v)+":"+s(e.w)+":"+s(e.name)}var i=/:/g;function s(e){return e?String(e).replace(i,"\\:"):""}function d(e,t){t&&e.attr("style",t)}function c(e,t,l){t&&e.attr("class",t).attr("class",l+" "+e.attr("class"))}function p(e,t){var l=t.graph();if(r.A(l)){var o=l.transition;if(a.A(o))return o(e)}return e}},93901:(e,t,l)=>{l.d(t,{diagram:()=>n});var r=l(60972),a=l(8560),o=l(17367);l(93126),l(62499),l(51822),l(46591),l(95285),l(31546),l(31234);let n={parser:r.p,db:r.f,renderer:a.f,styles:a.a,init:e=>{e.flowchart||(e.flowchart={}),e.flowchart.arrowMarkerAbsolute=e.arrowMarkerAbsolute,(0,o.q)({flowchart:{arrowMarkerAbsolute:e.arrowMarkerAbsolute}}),a.f.setConf(e.flowchart),r.f.clear(),r.f.setGen("gen-2")}}},8560:(e,t,l)=>{l.d(t,{a:()=>y,f:()=>h});var r=l(62499),a=l(93126),o=l(17367),n=l(97027),i=l(18440),s=l(81283),d=l(112);let c=(e,t)=>s.A.lang.round(d.A.parse(e)[t]);var p=l(18448);let b={},w=function(e,t,l,r,a,n){let s=r.select(`[id="${l}"]`);Object.keys(e).forEach(function(l){let r;let d=e[l],c="default";d.classes.length>0&&(c=d.classes.join(" ")),c+=" flowchart-label";let p=(0,o.k)(d.styles),b=void 0!==d.text?d.text:d.id;if(o.l.info("vertex",d,d.labelType),"markdown"===d.labelType)o.l.info("vertex",d,d.labelType);else if((0,o.n)((0,o.c)().flowchart.htmlLabels)){let e={label:b.replace(/fa[blrs]?:fa-[\w-]+/g,e=>``)};(r=(0,i.H)(s,e).node()).parentNode.removeChild(r)}else{let e=a.createElementNS("http://www.w3.org/2000/svg","text");for(let t of(e.setAttribute("style",p.labelStyle.replace("color:","fill:")),b.split(o.e.lineBreakRegex))){let l=a.createElementNS("http://www.w3.org/2000/svg","tspan");l.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),l.setAttribute("dy","1em"),l.setAttribute("x","1"),l.textContent=t,e.appendChild(l)}r=e}let w=0,f="";switch(d.type){case"round":w=5,f="rect";break;case"square":case"group":default:f="rect";break;case"diamond":f="question";break;case"hexagon":f="hexagon";break;case"odd":case"odd_right":f="rect_left_inv_arrow";break;case"lean_right":f="lean_right";break;case"lean_left":f="lean_left";break;case"trapezoid":f="trapezoid";break;case"inv_trapezoid":f="inv_trapezoid";break;case"circle":f="circle";break;case"ellipse":f="ellipse";break;case"stadium":f="stadium";break;case"subroutine":f="subroutine";break;case"cylinder":f="cylinder";break;case"doublecircle":f="doublecircle"}t.setNode(d.id,{labelStyle:p.labelStyle,shape:f,labelText:b,labelType:d.labelType,rx:w,ry:w,class:c,style:p.style,id:d.id,link:d.link,linkTarget:d.linkTarget,tooltip:n.db.getTooltip(d.id)||"",domId:n.db.lookUpDomId(d.id),haveCallback:d.haveCallback,width:"group"===d.type?500:void 0,dir:d.dir,type:d.type,props:d.props,padding:(0,o.c)().flowchart.padding}),o.l.info("setNode",{labelStyle:p.labelStyle,labelType:d.labelType,shape:f,labelText:b,rx:w,ry:w,class:c,style:p.style,id:d.id,domId:n.db.lookUpDomId(d.id),width:"group"===d.type?500:void 0,type:d.type,dir:d.dir,props:d.props,padding:(0,o.c)().flowchart.padding})})},f=function(e,t,l){let r,n;o.l.info("abc78 edges = ",e);let i=0,s={};if(void 0!==e.defaultStyle){let t=(0,o.k)(e.defaultStyle);r=t.style,n=t.labelStyle}e.forEach(function(l){i++;let d="L-"+l.start+"-"+l.end;void 0===s[d]?s[d]=0:s[d]++,o.l.info("abc78 new entry",d,s[d]);let c=d+"-"+s[d];o.l.info("abc78 new link id to be used is",d,c,s[d]);let p="LS-"+l.start,w="LE-"+l.end,f={style:"",labelStyle:""};switch(f.minlen=l.length||1,"arrow_open"===l.type?f.arrowhead="none":f.arrowhead="normal",f.arrowTypeStart="arrow_open",f.arrowTypeEnd="arrow_open",l.type){case"double_arrow_cross":f.arrowTypeStart="arrow_cross";case"arrow_cross":f.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":f.arrowTypeStart="arrow_point";case"arrow_point":f.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":f.arrowTypeStart="arrow_circle";case"arrow_circle":f.arrowTypeEnd="arrow_circle"}let u="",h="";switch(l.stroke){case"normal":u="fill:none;",void 0!==r&&(u=r),void 0!==n&&(h=n),f.thickness="normal",f.pattern="solid";break;case"dotted":f.thickness="normal",f.pattern="dotted",f.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":f.thickness="thick",f.pattern="solid",f.style="stroke-width: 3.5px;fill:none;";break;case"invisible":f.thickness="invisible",f.pattern="solid",f.style="stroke-width: 0;fill:none;"}if(void 0!==l.style){let e=(0,o.k)(l.style);u=e.style,h=e.labelStyle}f.style=f.style+=u,f.labelStyle=f.labelStyle+=h,void 0!==l.interpolate?f.curve=(0,o.o)(l.interpolate,a.lUB):void 0!==e.defaultInterpolate?f.curve=(0,o.o)(e.defaultInterpolate,a.lUB):f.curve=(0,o.o)(b.curve,a.lUB),void 0===l.text?void 0!==l.style&&(f.arrowheadStyle="fill: #333"):(f.arrowheadStyle="fill: #333",f.labelpos="c"),f.labelType=l.labelType,f.label=l.text.replace(o.e.lineBreakRegex,"\n"),void 0===l.style&&(f.style=f.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),f.labelStyle=f.labelStyle.replace("color:","fill:"),f.id=c,f.classes="flowchart-link "+p+" "+w,t.setEdge(l.start,l.end,f,i)})},u=async function(e,t,l,i){let s,d;o.l.info("Drawing flowchart");let c=i.db.getDirection();void 0===c&&(c="TD");let{securityLevel:p,flowchart:b}=(0,o.c)(),u=b.nodeSpacing||50,h=b.rankSpacing||50;"sandbox"===p&&(s=(0,a.Ltv)("#i"+t));let g="sandbox"===p?(0,a.Ltv)(s.nodes()[0].contentDocument.body):(0,a.Ltv)("body"),y="sandbox"===p?s.nodes()[0].contentDocument:document,k=new r.T({multigraph:!0,compound:!0}).setGraph({rankdir:c,nodesep:u,ranksep:h,marginx:0,marginy:0}).setDefaultEdgeLabel(function(){return{}}),x=i.db.getSubGraphs();o.l.info("Subgraphs - ",x);for(let e=x.length-1;e>=0;e--)d=x[e],o.l.info("Subgraph - ",d),i.db.addVertex(d.id,{text:d.title,type:d.labelType},"group",void 0,d.classes,d.dir);let v=i.db.getVertices(),m=i.db.getEdges();o.l.info("Edges",m);let S=0;for(S=x.length-1;S>=0;S--){d=x[S],(0,a.Ubm)("cluster").append("text");for(let e=0;e{let l=c(e,"r"),r=c(e,"g"),a=c(e,"b");return p.A(l,r,a,t)},y=e=>`.label { - font-family: ${e.fontFamily}; - color: ${e.nodeTextColor||e.textColor}; - } - .cluster-label text { - fill: ${e.titleColor}; - } - .cluster-label span,p { - color: ${e.titleColor}; - } - - .label text,span,p { - fill: ${e.nodeTextColor||e.textColor}; - color: ${e.nodeTextColor||e.textColor}; - } - - .node rect, - .node circle, - .node ellipse, - .node polygon, - .node path { - fill: ${e.mainBkg}; - stroke: ${e.nodeBorder}; - stroke-width: 1px; - } - .flowchart-label text { - text-anchor: middle; - } - // .flowchart-label .text-outer-tspan { - // text-anchor: middle; - // } - // .flowchart-label .text-inner-tspan { - // text-anchor: start; - // } - - .node .label { - text-align: center; - } - .node.clickable { - cursor: pointer; - } - - .arrowheadPath { - fill: ${e.arrowheadColor}; - } - - .edgePath .path { - stroke: ${e.lineColor}; - stroke-width: 2.0px; - } - - .flowchart-link { - stroke: ${e.lineColor}; - fill: none; - } - - .edgeLabel { - background-color: ${e.edgeLabelBackground}; - rect { - opacity: 0.5; - background-color: ${e.edgeLabelBackground}; - fill: ${e.edgeLabelBackground}; - } - text-align: center; - } - - /* For html labels only */ - .labelBkg { - background-color: ${g(e.edgeLabelBackground,.5)}; - // background-color: - } - - .cluster rect { - fill: ${e.clusterBkg}; - stroke: ${e.clusterBorder}; - stroke-width: 1px; - } - - .cluster text { - fill: ${e.titleColor}; - } - - .cluster span,p { - color: ${e.titleColor}; - } - /* .cluster div { - color: ${e.titleColor}; - } */ - - div.mermaidTooltip { - position: absolute; - text-align: center; - max-width: 200px; - padding: 2px; - font-family: ${e.fontFamily}; - font-size: 12px; - background: ${e.tertiaryColor}; - border: 1px solid ${e.border2}; - border-radius: 2px; - pointer-events: none; - z-index: 100; - } - - .flowchartTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${e.textColor}; - } -`}}]); \ No newline at end of file diff --git a/assets/js/93951.4020ea31.js b/assets/js/93951.4020ea31.js new file mode 100644 index 0000000000..3e7f4bb82e --- /dev/null +++ b/assets/js/93951.4020ea31.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[93951],{93951:(t,e,a)=>{a.d(e,{diagram:()=>w});var r=a(30102),i=a(67027),n=a(72912),d=a(89601),o=a(62628),l=a(62499),s=0,p=(0,n.K2)(function(t,e,a,r,o){let l,p,g,h,c,f;let x=(0,n.K2)(function(t){switch(t){case o.db.relationType.AGGREGATION:return"aggregation";case o.db.relationType.EXTENSION:return"extension";case o.db.relationType.COMPOSITION:return"composition";case o.db.relationType.DEPENDENCY:return"dependency";case o.db.relationType.LOLLIPOP:return"lollipop"}},"getRelationType");e.points=e.points.filter(t=>!Number.isNaN(t.y));let y=e.points,u=(0,d.n8j)().x(function(t){return t.x}).y(function(t){return t.y}).curve(d.qrM),m=t.append("path").attr("d",u(y)).attr("id","edge"+s).attr("class","relation"),b="";r.arrowMarkerAbsolute&&(b=(b=(b=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),1==a.relation.lineType&&m.attr("class","relation dashed-line"),10==a.relation.lineType&&m.attr("class","relation dotted-line"),"none"!==a.relation.type1&&m.attr("marker-start","url("+b+"#"+x(a.relation.type1)+"Start)"),"none"!==a.relation.type2&&m.attr("marker-end","url("+b+"#"+x(a.relation.type2)+"End)");let w=e.points.length,k=i._K.calcLabelPosition(e.points);if(l=k.x,p=k.y,w%2!=0&&w>1){let t=i._K.calcCardinalityPosition("none"!==a.relation.type1,e.points,e.points[0]),r=i._K.calcCardinalityPosition("none"!==a.relation.type2,e.points,e.points[w-1]);n.Rm.debug("cardinality_1_point "+JSON.stringify(t)),n.Rm.debug("cardinality_2_point "+JSON.stringify(r)),g=t.x,h=t.y,c=r.x,f=r.y}if(void 0!==a.title){let e=t.append("g").attr("class","classLabel"),i=e.append("text").attr("class","label").attr("x",l).attr("y",p).attr("fill","red").attr("text-anchor","middle").text(a.title);window.label=i;let n=i.node().getBBox();e.insert("rect",":first-child").attr("class","box").attr("x",n.x-r.padding/2).attr("y",n.y-r.padding/2).attr("width",n.width+r.padding).attr("height",n.height+r.padding)}n.Rm.info("Rendering relation "+JSON.stringify(a)),void 0!==a.relationTitle1&&"none"!==a.relationTitle1&&t.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",g).attr("y",h).attr("fill","black").attr("font-size","6").text(a.relationTitle1),void 0!==a.relationTitle2&&"none"!==a.relationTitle2&&t.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",c).attr("y",f).attr("fill","black").attr("font-size","6").text(a.relationTitle2),s++},"drawEdge"),g=(0,n.K2)(function(t,e,a,r){let i,d,o,l;n.Rm.debug("Rendering class ",e,a);let s=e.id,p={id:s,label:e.id,width:0,height:0},g=t.append("g").attr("id",r.db.lookUpDomId(s)).attr("class","classGroup");i=e.link?g.append("svg:a").attr("xlink:href",e.link).attr("target",e.linkTarget).append("text").attr("y",a.textHeight+a.padding).attr("x",0):g.append("text").attr("y",a.textHeight+a.padding).attr("x",0);let c=!0;e.annotations.forEach(function(t){let e=i.append("tspan").text("\xab"+t+"\xbb");c||e.attr("dy",a.textHeight),c=!1});let x=h(e),y=i.append("tspan").text(x).attr("class","title");c||y.attr("dy",a.textHeight);let u=i.node().getBBox().height;if(e.members.length>0){d=g.append("line").attr("x1",0).attr("y1",a.padding+u+a.dividerMargin/2).attr("y2",a.padding+u+a.dividerMargin/2);let t=g.append("text").attr("x",a.padding).attr("y",u+a.dividerMargin+a.textHeight).attr("fill","white").attr("class","classText");c=!0,e.members.forEach(function(e){f(t,e,c,a),c=!1}),o=t.node().getBBox()}if(e.methods.length>0){l=g.append("line").attr("x1",0).attr("y1",a.padding+u+a.dividerMargin+o.height).attr("y2",a.padding+u+a.dividerMargin+o.height);let t=g.append("text").attr("x",a.padding).attr("y",u+2*a.dividerMargin+o.height+a.textHeight).attr("fill","white").attr("class","classText");c=!0,e.methods.forEach(function(e){f(t,e,c,a),c=!1})}let m=g.node().getBBox();var b=" ";e.cssClasses.length>0&&(b+=e.cssClasses.join(" "));let w=g.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",m.width+2*a.padding).attr("height",m.height+a.padding+.5*a.dividerMargin).attr("class",b).node().getBBox().width;return i.node().childNodes.forEach(function(t){t.setAttribute("x",(w-t.getBBox().width)/2)}),e.tooltip&&i.insert("title").text(e.tooltip),d&&d.attr("x2",w),l&&l.attr("x2",w),p.width=w,p.height=m.height+a.padding+.5*a.dividerMargin,p},"drawClass"),h=(0,n.K2)(function(t){let e=t.id;return t.type&&(e+="<"+(0,n.QO)(t.type)+">"),e},"getClassTitleString"),c=(0,n.K2)(function(t,e,a,r){n.Rm.debug("Rendering note ",e,a);let i=e.id,d={id:i,text:e.text,width:0,height:0},o=t.append("g").attr("id",i).attr("class","classGroup"),l=o.append("text").attr("y",a.textHeight+a.padding).attr("x",0),s=JSON.parse(`"${e.text}"`).split("\n");s.forEach(function(t){n.Rm.debug(`Adding line: ${t}`),l.append("tspan").text(t).attr("class","title").attr("dy",a.textHeight)});let p=o.node().getBBox(),g=o.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",p.width+2*a.padding).attr("height",p.height+s.length*a.textHeight+a.padding+.5*a.dividerMargin).node().getBBox().width;return l.node().childNodes.forEach(function(t){t.setAttribute("x",(g-t.getBBox().width)/2)}),d.width=g,d.height=p.height+s.length*a.textHeight+a.padding+.5*a.dividerMargin,d},"drawNote"),f=(0,n.K2)(function(t,e,a,r){let{displayText:i,cssStyle:n}=e.getDisplayDetails(),d=t.append("tspan").attr("x",r.padding).text(i);""!==n&&d.attr("style",e.cssStyle),a||d.attr("dy",r.textHeight)},"addTspan"),x={drawClass:g,drawEdge:p,drawNote:c},y={},u=(0,n.K2)(function(t){let e=Object.entries(y).find(e=>e[1].label===t);if(e)return e[0]},"getGraphId"),m=(0,n.K2)(function(t){t.append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),t.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),b=(0,n.K2)(function(t,e,a,r){let i;let s=(0,n.D7)().class;y={},n.Rm.info("Rendering diagram "+t);let p=(0,n.D7)().securityLevel;"sandbox"===p&&(i=(0,d.Ltv)("#i"+e));let g="sandbox"===p?(0,d.Ltv)(i.nodes()[0].contentDocument.body):(0,d.Ltv)("body"),h=g.select(`[id='${e}']`);m(h);let c=new l.T({multigraph:!0});c.setGraph({isMultiGraph:!0}),c.setDefaultEdgeLabel(function(){return{}});let f=r.db.getClasses();for(let t of[...f.keys()]){let e=f.get(t),a=x.drawClass(h,e,s,r);y[a.id]=a,c.setNode(a.id,a),n.Rm.info("Org height: "+a.height)}r.db.getRelations().forEach(function(t){n.Rm.info("tjoho"+u(t.id1)+u(t.id2)+JSON.stringify(t)),c.setEdge(u(t.id1),u(t.id2),{relation:t},t.title||"DEFAULT")}),r.db.getNotes().forEach(function(t){n.Rm.debug(`Adding note: ${JSON.stringify(t)}`);let e=x.drawNote(h,t,s,r);y[e.id]=e,c.setNode(e.id,e),t.class&&f.has(t.class)&&c.setEdge(t.id,u(t.class),{relation:{id1:t.id,id2:t.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")}),(0,o.Zp)(c),c.nodes().forEach(function(t){void 0!==t&&void 0!==c.node(t)&&(n.Rm.debug("Node "+t+": "+JSON.stringify(c.node(t))),g.select("#"+(r.db.lookUpDomId(t)||t)).attr("transform","translate("+(c.node(t).x-c.node(t).width/2)+","+(c.node(t).y-c.node(t).height/2)+" )"))}),c.edges().forEach(function(t){void 0!==t&&void 0!==c.edge(t)&&(n.Rm.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(c.edge(t))),x.drawEdge(h,c.edge(t),c.edge(t).relation,s,r))});let b=h.node().getBBox(),w=b.width+40,k=b.height+40;(0,n.a$)(h,k,w,s.useMaxWidth);let L=`${b.x-20} ${b.y-20} ${w} ${k}`;n.Rm.debug(`viewBox ${L}`),h.attr("viewBox",L)},"draw"),w={parser:r._$,db:r.z2,renderer:{draw:b},styles:r.tM,init:(0,n.K2)(t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,r.z2.clear()},"init")}}}]); \ No newline at end of file diff --git a/assets/js/94228.c4da646e.js b/assets/js/94228.c4da646e.js new file mode 100644 index 0000000000..efb9be9ba1 --- /dev/null +++ b/assets/js/94228.c4da646e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[94228],{35141:(e,t,n)=>{n.d(t,{M:()=>d});var i=n(31454),r=n(86847),a=n(23480);function d(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:a.A(e.nodes(),function(t){var n=e.node(t),r=e.parent(t),a={v:t};return i.A(n)||(a.value=n),i.A(r)||(a.parent=r),a}),edges:a.A(e.edges(),function(t){var n=e.edge(t),r={v:t.v,w:t.w};return i.A(t.name)||(r.name=t.name),i.A(n)||(r.value=n),r})};return i.A(e.graph())||(t.value=r.A(e.graph())),t}n(3735)},94228:(e,t,n)=>{n.d(t,{diagram:()=>j});var i=n(92834),r=n(30102),a=n(82648),d=n(16470),l=n(27923),o=n(67027),s=n(72912),c=n(89601),h=n(62499),g=n(62628),f=n(35141),u={},p={},m={},w=(0,s.K2)(()=>{p={},m={},u={}},"clear"),y=(0,s.K2)((e,t)=>(s.Rm.trace("In isDescendant",t," ",e," = ",p[t].includes(e)),!!p[t].includes(e)),"isDescendant"),R=(0,s.K2)((e,t)=>(s.Rm.info("Descendants of ",t," is ",p[t]),s.Rm.info("Edge is ",e),e.v!==t&&e.w!==t&&(p[t]?p[t].includes(e.v)||y(e.v,t)||y(e.w,t)||p[t].includes(e.w):(s.Rm.debug("Tilt, ",t,",not in descendants"),!1))),"edgeInCluster"),b=(0,s.K2)((e,t,n,i)=>{s.Rm.warn("Copying children of ",e,"root",i,"data",t.node(e),i);let r=t.children(e)||[];e!==i&&r.push(e),s.Rm.warn("Copying (nodes) clusterId",e,"nodes",r),r.forEach(r=>{if(t.children(r).length>0)b(r,t,n,i);else{let a=t.node(r);s.Rm.info("cp ",r," to ",i," with parent ",e),n.setNode(r,a),i!==t.parent(r)&&(s.Rm.warn("Setting parent",r,t.parent(r)),n.setParent(r,t.parent(r))),e!==i&&r!==e?(s.Rm.debug("Setting parent",r,e),n.setParent(r,e)):(s.Rm.info("In copy ",e,"root",i,"data",t.node(e),i),s.Rm.debug("Not Setting parent for node=",r,"cluster!==rootId",e!==i,"node!==clusterId",r!==e));let d=t.edges(r);s.Rm.debug("Copying Edges",d),d.forEach(r=>{s.Rm.info("Edge",r);let a=t.edge(r.v,r.w,r.name);s.Rm.info("Edge data",a,i);try{R(r,i)?(s.Rm.info("Copying as ",r.v,r.w,a,r.name),n.setEdge(r.v,r.w,a,r.name),s.Rm.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):s.Rm.info("Skipping copy of edge ",r.v,"-->",r.w," rootId: ",i," clusterId:",e)}catch(e){s.Rm.error(e)}})}s.Rm.debug("Removing node",r),t.removeNode(r)})},"copy"),v=(0,s.K2)((e,t)=>{let n=t.children(e),i=[...n];for(let r of n)m[r]=e,i=[...i,...v(r,t)];return i},"extractDescendants"),x=(0,s.K2)((e,t)=>{s.Rm.trace("Searching",e);let n=t.children(e);if(s.Rm.trace("Searching children of id ",e,n),n.length<1)return s.Rm.trace("This is a valid node",e),e;for(let i of n){let n=x(i,t);if(n)return s.Rm.trace("Found replacement for",e," => ",n),n}},"findNonClusterChild"),N=(0,s.K2)(e=>u[e]&&u[e].externalConnections&&u[e]?u[e].id:e,"getAnchorId"),D=(0,s.K2)((e,t)=>{if(!e||t>10){s.Rm.debug("Opting out, no graph ");return}for(let t of(s.Rm.debug("Opting in, graph "),e.nodes().forEach(function(t){e.children(t).length>0&&(s.Rm.warn("Cluster identified",t," Replacement id in edges: ",x(t,e)),p[t]=v(t,e),u[t]={id:x(t,e),clusterData:e.node(t)})}),e.nodes().forEach(function(t){let n=e.children(t),i=e.edges();n.length>0?(s.Rm.debug("Cluster identified",t,p),i.forEach(e=>{e.v!==t&&e.w!==t&&y(e.v,t)^y(e.w,t)&&(s.Rm.warn("Edge: ",e," leaves cluster ",t),s.Rm.warn("Descendants of XXX ",t,": ",p[t]),u[t].externalConnections=!0)})):s.Rm.debug("Not a cluster ",t,p)}),Object.keys(u))){let n=u[t].id,i=e.parent(n);i!==t&&u[i]&&!u[i].externalConnections&&(u[t].id=i)}e.edges().forEach(function(t){let n=e.edge(t);s.Rm.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),s.Rm.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(e.edge(t)));let i=t.v,r=t.w;if(s.Rm.warn("Fix XXX",u,"ids:",t.v,t.w,"Translating: ",u[t.v]," --- ",u[t.w]),u[t.v]&&u[t.w]&&u[t.v]===u[t.w]){s.Rm.warn("Fixing and trixing link to self - removing XXX",t.v,t.w,t.name),s.Rm.warn("Fixing and trixing - removing XXX",t.v,t.w,t.name),i=N(t.v),r=N(t.w),e.removeEdge(t.v,t.w,t.name);let a=t.w+"---"+t.v;e.setNode(a,{domId:a,id:a,labelStyle:"",labelText:n.label,padding:0,shape:"labelRect",style:""});let d=structuredClone(n),l=structuredClone(n);d.label="",d.arrowTypeEnd="none",l.label="",d.fromCluster=t.v,l.toCluster=t.v,e.setEdge(i,a,d,t.name+"-cyclic-special"),e.setEdge(a,r,l,t.name+"-cyclic-special")}else(u[t.v]||u[t.w])&&(s.Rm.warn("Fixing and trixing - removing XXX",t.v,t.w,t.name),i=N(t.v),r=N(t.w),e.removeEdge(t.v,t.w,t.name),i!==t.v&&(u[e.parent(i)].externalConnections=!0,n.fromCluster=t.v),r!==t.w&&(u[e.parent(r)].externalConnections=!0,n.toCluster=t.w),s.Rm.warn("Fix Replacing with XXX",i,r,t.name),e.setEdge(i,r,n,t.name))}),s.Rm.warn("Adjusted Graph",f.M(e)),C(e,0),s.Rm.trace(u)},"adjustClustersAndEdges"),C=(0,s.K2)((e,t)=>{if(s.Rm.warn("extractor - ",t,f.M(e),e.children("D")),t>10){s.Rm.error("Bailing out");return}let n=e.nodes(),i=!1;for(let t of n){let n=e.children(t);i=i||n.length>0}if(!i){s.Rm.debug("Done, no node has children",e.nodes());return}for(let i of(s.Rm.debug("Nodes = ",n,t),n))if(s.Rm.debug("Extracting node",i,u,u[i]&&!u[i].externalConnections,!e.parent(i),e.node(i),e.children("D")," Depth ",t),u[i]){if(!u[i].externalConnections&&e.children(i)&&e.children(i).length>0){s.Rm.warn("Cluster without external connections, without a parent and with children",i,t);let n="TB"===e.graph().rankdir?"LR":"TB";u[i]?.clusterData?.dir&&(n=u[i].clusterData.dir,s.Rm.warn("Fixing dir",u[i].clusterData.dir,n));let r=new h.T({multigraph:!0,compound:!0}).setGraph({rankdir:n,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});s.Rm.warn("Old graph before copy",f.M(e)),b(i,e,r,i),e.setNode(i,{clusterNode:!0,id:i,clusterData:u[i].clusterData,labelText:u[i].labelText,graph:r}),s.Rm.warn("New graph after copy node: (",i,")",f.M(r)),s.Rm.debug("Old graph after copy",f.M(e))}else s.Rm.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!u[i].externalConnections," no parent: ",!e.parent(i)," children ",e.children(i)&&e.children(i).length>0,e.children("D"),t),s.Rm.debug(u)}else s.Rm.debug("Not a cluster",i,t);for(let i of(n=e.nodes(),s.Rm.warn("New list of nodes",n),n)){let n=e.node(i);s.Rm.warn(" Now next level",i,n),n.clusterNode&&C(n.graph,t+1)}},"extractor"),S=(0,s.K2)((e,t)=>{if(0===t.length)return[];let n=Object.assign(t);return t.forEach(t=>{let i=e.children(t),r=S(e,i);n=[...n,...r]}),n},"sorter"),E=(0,s.K2)(e=>S(e,e.children()),"sortNodesByHierarchy"),T=(0,s.K2)((e,t)=>{s.Rm.info("Creating subgraph rect for ",t.id,t);let n=(0,s.D7)(),i=e.insert("g").attr("class","cluster"+(t.class?" "+t.class:"")).attr("id",t.id),r=i.insert("rect",":first-child"),o=(0,s._3)(n.flowchart.htmlLabels),h=i.insert("g").attr("class","cluster-label"),g="markdown"===t.labelType?(0,l.GZ)(h,t.labelText,{style:t.labelStyle,useHtmlLabels:o},n):h.node().appendChild((0,a.DA)(t.labelText,t.labelStyle,void 0,!0)),f=g.getBBox();if((0,s._3)(n.flowchart.htmlLabels)){let e=g.children[0],t=(0,c.Ltv)(g);f=e.getBoundingClientRect(),t.attr("width",f.width),t.attr("height",f.height)}let u=0*t.padding,p=t.width<=f.width+u?f.width+u:t.width;t.width<=f.width+u?t.diff=(f.width-t.width)/2-t.padding/2:t.diff=-t.padding/2,s.Rm.trace("Data ",t,JSON.stringify(t)),r.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-p/2).attr("y",t.y-t.height/2-u/2).attr("width",p).attr("height",t.height+u);let{subGraphTitleTopMargin:m}=(0,d.O)(n);o?h.attr("transform",`translate(${t.x-f.width/2}, ${t.y-t.height/2+m})`):h.attr("transform",`translate(${t.x}, ${t.y-t.height/2+m})`);let w=r.node().getBBox();return t.width=w.width,t.height=w.height,t.intersect=function(e){return(0,a.nM)(t,e)},i},"rect"),k=(0,s.K2)((e,t)=>{let n=e.insert("g").attr("class","note-cluster").attr("id",t.id),i=n.insert("rect",":first-child"),r=0*t.padding,d=r/2;i.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-d).attr("y",t.y-t.height/2-d).attr("width",t.width+r).attr("height",t.height+r).attr("fill","none");let l=i.node().getBBox();return t.width=l.width,t.height=l.height,t.intersect=function(e){return(0,a.nM)(t,e)},n},"noteGroup"),X={rect:T,roundedWithTitle:(0,s.K2)((e,t)=>{let n=(0,s.D7)(),i=e.insert("g").attr("class",t.classes).attr("id",t.id),r=i.insert("rect",":first-child"),l=i.insert("g").attr("class","cluster-label"),o=i.append("rect"),h=l.node().appendChild((0,a.DA)(t.labelText,t.labelStyle,void 0,!0)),g=h.getBBox();if((0,s._3)(n.flowchart.htmlLabels)){let e=h.children[0],t=(0,c.Ltv)(h);g=e.getBoundingClientRect(),t.attr("width",g.width),t.attr("height",g.height)}g=h.getBBox();let f=0*t.padding,u=f/2,p=t.width<=g.width+t.padding?g.width+t.padding:t.width;t.width<=g.width+t.padding?t.diff=(g.width+0*t.padding-t.width)/2:t.diff=-t.padding/2,r.attr("class","outer").attr("x",t.x-p/2-u).attr("y",t.y-t.height/2-u).attr("width",p+f).attr("height",t.height+f),o.attr("class","inner").attr("x",t.x-p/2-u).attr("y",t.y-t.height/2-u+g.height-1).attr("width",p+f).attr("height",t.height+f-g.height-3);let{subGraphTitleTopMargin:m}=(0,d.O)(n);l.attr("transform",`translate(${t.x-g.width/2}, ${t.y-t.height/2-t.padding/3+((0,s._3)(n.flowchart.htmlLabels)?5:3)+m})`);let w=r.node().getBBox();return t.height=w.height,t.intersect=function(e){return(0,a.nM)(t,e)},i},"roundedWithTitle"),noteGroup:k,divider:(0,s.K2)((e,t)=>{let n=e.insert("g").attr("class",t.classes).attr("id",t.id),i=n.insert("rect",":first-child"),r=0*t.padding;i.attr("class","divider").attr("x",t.x-t.width/2-r/2).attr("y",t.y-t.height/2).attr("width",t.width+r).attr("height",t.height+r);let d=i.node().getBBox();return t.width=d.width,t.height=d.height,t.diff=-t.padding/2,t.intersect=function(e){return(0,a.nM)(t,e)},n},"divider")},K={},B=(0,s.K2)((e,t)=>{s.Rm.trace("Inserting cluster");let n=t.shape||"rect";K[t.id]=X[n](e,t)},"insertCluster"),L=(0,s.K2)(()=>{K={}},"clear"),M=(0,s.K2)(async(e,t,n,r,l,o)=>{s.Rm.info("Graph in recursive render: XXX",f.M(t),l);let c=t.graph().rankdir;s.Rm.trace("Dir in recursive render - dir:",c);let h=e.insert("g").attr("class","root");t.nodes()?s.Rm.info("Recursive render XXX",t.nodes()):s.Rm.info("No nodes found for",t),t.edges().length>0&&s.Rm.trace("Recursive edges",t.edge(t.edges()[0]));let p=h.insert("g").attr("class","clusters"),m=h.insert("g").attr("class","edgePaths"),w=h.insert("g").attr("class","edgeLabels"),y=h.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(e){let i=t.node(e);if(void 0!==l){let n=JSON.parse(JSON.stringify(l.clusterData));s.Rm.info("Setting data for cluster XXX (",e,") ",n,l),t.setNode(l.id,n),t.parent(e)||(s.Rm.trace("Setting parent",e,l.id),t.setParent(e,l.id,n))}if(s.Rm.info("(Insert) Node XXX"+e+": "+JSON.stringify(t.node(e))),i?.clusterNode){s.Rm.info("Cluster identified",e,i.width,t.node(e));let{ranksep:d,nodesep:l}=t.graph();i.graph.setGraph({...i.graph.graph(),ranksep:d,nodesep:l});let c=await M(y,i.graph,n,r,t.node(e),o),h=c.elem;(0,a.lC)(i,h),i.diff=c.diff||0,s.Rm.info("Node bounds (abc123)",e,i,i.width,i.x,i.y),(0,a.U7)(h,i),s.Rm.warn("Recursive render complete ",h,i)}else t.children(e).length>0?(s.Rm.info("Cluster - the non recursive path XXX",e,i.id,i,t),s.Rm.info(x(i.id,t)),u[i.id]={id:x(i.id,t),node:i}):(s.Rm.info("Node - the non recursive path",e,i.id,i),await (0,a.on)(y,t.node(e),c))})),t.edges().forEach(async function(e){let n=t.edge(e.v,e.w,e.name);s.Rm.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),s.Rm.info("Edge "+e.v+" -> "+e.w+": ",e," ",JSON.stringify(t.edge(e))),s.Rm.info("Fix",u,"ids:",e.v,e.w,"Translating: ",u[e.v],u[e.w]),await (0,i.jP)(w,n)}),t.edges().forEach(function(e){s.Rm.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e))}),s.Rm.info("Graph before layout:",JSON.stringify(f.M(t))),s.Rm.info("#############################################"),s.Rm.info("### Layout ###"),s.Rm.info("#############################################"),s.Rm.info(t),(0,g.Zp)(t),s.Rm.info("Graph after layout:",JSON.stringify(f.M(t)));let R=0,{subGraphTitleTotalMargin:b}=(0,d.O)(o);return E(t).forEach(function(e){let n=t.node(e);s.Rm.info("Position "+e+": "+JSON.stringify(t.node(e))),s.Rm.info("Position "+e+": ("+n.x,","+n.y,") width: ",n.width," height: ",n.height),n?.clusterNode?(n.y+=b,(0,a.U_)(n)):t.children(e).length>0?(n.height+=b,B(p,n),u[n.id].node=n):(n.y+=b/2,(0,a.U_)(n))}),t.edges().forEach(function(e){let a=t.edge(e);s.Rm.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(a),a),a.points.forEach(e=>e.y+=b/2);let d=(0,i.Jo)(m,e,a,u,n,t,r);(0,i.T_)(a,d)}),t.nodes().forEach(function(e){let n=t.node(e);s.Rm.info(e,n.type,n.diff),"group"===n.type&&(R=n.diff)}),{elem:h,diff:R}},"recursiveRender"),O=(0,s.K2)(async(e,t,n,r,d)=>{(0,i.g0)(e,n,r,d),(0,a.IU)(),(0,i.IU)(),L(),w(),s.Rm.warn("Graph at first:",JSON.stringify(f.M(t))),D(t),s.Rm.warn("Graph after:",JSON.stringify(f.M(t)));let l=(0,s.D7)();await M(e,t,r,d,void 0,l)},"render"),A=(0,s.K2)(e=>s.Y2.sanitizeText(e,(0,s.D7)()),"sanitizeText"),I={dividerMargin:10,padding:5,textHeight:10,curve:void 0},J=(0,s.K2)(function(e,t,n,i){s.Rm.info("keys:",[...e.keys()]),s.Rm.info(e),e.forEach(function(e){let r={shape:"rect",id:e.id,domId:e.domId,labelText:A(e.id),labelStyle:"",style:"fill: none; stroke: black",padding:s.D7().flowchart?.padding??s.D7().class?.padding};t.setNode(e.id,r),G(e.classes,t,n,i,e.id),s.Rm.info("setNode",r)})},"addNamespaces"),G=(0,s.K2)(function(e,t,n,i,r){s.Rm.info("keys:",[...e.keys()]),s.Rm.info(e),[...e.values()].filter(e=>e.parent===r).forEach(function(e){let n=e.cssClasses.join(" "),a=(0,o.sM)(e.styles),d=e.label??e.id,l={labelStyle:a.labelStyle,shape:"class_box",labelText:A(d),classData:e,rx:0,ry:0,class:n,style:a.style,id:e.id,domId:e.domId,tooltip:i.db.getTooltip(e.id,r)||"",haveCallback:e.haveCallback,link:e.link,width:"group"===e.type?500:void 0,type:e.type,padding:s.D7().flowchart?.padding??s.D7().class?.padding};t.setNode(e.id,l),r&&t.setParent(e.id,r),s.Rm.info("setNode",l)})},"addClasses"),_=(0,s.K2)(function(e,t,n,i){s.Rm.info(e),e.forEach(function(e,r){let a={labelStyle:"",shape:"note",labelText:A(e.text),noteData:e,rx:0,ry:0,class:"",style:"",id:e.id,domId:e.id,tooltip:"",type:"note",padding:s.D7().flowchart?.padding??s.D7().class?.padding};if(t.setNode(e.id,a),s.Rm.info("setNode",a),!e.class||!i.has(e.class))return;let d=n+r,l={id:`edgeNote${d}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:(0,o.Ib)(I.curve,c.lUB)};t.setEdge(e.id,e.class,l,d)})},"addNotes"),P=(0,s.K2)(function(e,t){let n=(0,s.D7)().flowchart,i=0;e.forEach(function(e){i++;let r={classes:"relation",pattern:1==e.relation.lineType?"dashed":"solid",id:(0,o.rY)(e.id1,e.id2,{prefix:"id",counter:i}),arrowhead:"arrow_open"===e.type?"none":"normal",startLabelRight:"none"===e.relationTitle1?"":e.relationTitle1,endLabelLeft:"none"===e.relationTitle2?"":e.relationTitle2,arrowTypeStart:U(e.relation.type1),arrowTypeEnd:U(e.relation.type2),style:"fill:none",labelStyle:"",curve:(0,o.Ib)(n?.curve,c.lUB)};if(s.Rm.info(r,e),void 0!==e.style){let t=(0,o.sM)(e.style);r.style=t.style,r.labelStyle=t.labelStyle}e.text=e.title,void 0===e.text?void 0!==e.style&&(r.arrowheadStyle="fill: #333"):(r.arrowheadStyle="fill: #333",r.labelpos="c",s.D7().flowchart?.htmlLabels??(0,s.D7)().htmlLabels?(r.labelType="html",r.label=''+e.text+""):(r.labelType="text",r.label=e.text.replace(s.Y2.lineBreakRegex,"\n"),void 0===e.style&&(r.style=r.style||"stroke: #333; stroke-width: 1.5px;fill:none"),r.labelStyle=r.labelStyle.replace("color:","fill:"))),t.setEdge(e.id1,e.id2,r,i)})},"addRelations"),$=(0,s.K2)(function(e){I={...I,...e}},"setConf"),F=(0,s.K2)(async function(e,t,n,i){let r;s.Rm.info("Drawing class - ",t);let a=(0,s.D7)().flowchart??(0,s.D7)().class,d=(0,s.D7)().securityLevel;s.Rm.info("config:",a);let l=a?.nodeSpacing??50,g=a?.rankSpacing??50,f=new h.T({multigraph:!0,compound:!0}).setGraph({rankdir:i.db.getDirection(),nodesep:l,ranksep:g,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),u=i.db.getNamespaces(),p=i.db.getClasses(),m=i.db.getRelations(),w=i.db.getNotes();s.Rm.info(m),J(u,f,t,i),G(p,f,t,i),P(m,f),_(w,f,m.length+1,p),"sandbox"===d&&(r=(0,c.Ltv)("#i"+t));let y="sandbox"===d?(0,c.Ltv)(r.nodes()[0].contentDocument.body):(0,c.Ltv)("body"),R=y.select(`[id="${t}"]`),b=y.select("#"+t+" g");if(await O(b,f,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",t),o._K.insertTitle(R,"classTitleText",a?.titleTopMargin??5,i.db.getDiagramTitle()),(0,s.ot)(f,R,a?.diagramPadding,a?.useMaxWidth),!a?.htmlLabels){let e="sandbox"===d?r.nodes()[0].contentDocument:document;for(let n of e.querySelectorAll('[id="'+t+'"] .edgeLabel .label')){let t=n.getBBox(),i=e.createElementNS("http://www.w3.org/2000/svg","rect");i.setAttribute("rx",0),i.setAttribute("ry",0),i.setAttribute("width",t.width),i.setAttribute("height",t.height),n.insertBefore(i,n.firstChild)}}},"draw");function U(e){let t;switch(e){case 0:t="aggregation";break;case 1:t="extension";break;case 2:t="composition";break;case 3:t="dependency";break;case 4:t="lollipop";break;default:t="none"}return t}(0,s.K2)(U,"getArrowMarker");var j={parser:r._$,db:r.z2,renderer:{setConf:$,draw:F},styles:r.tM,init:(0,s.K2)(e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute,r.z2.clear()},"init")}}}]); \ No newline at end of file diff --git a/assets/js/945e072c.1bb542b8.js b/assets/js/945e072c.1bb542b8.js deleted file mode 100644 index 38577f24d0..0000000000 --- a/assets/js/945e072c.1bb542b8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[64636],{15995:(e,n,t)=>{t.d(n,{A:()=>r});var s=t(62540);t(63696);var o=t(11750);function r({children:e,hidden:n,className:t}){return(0,s.jsx)("div",{role:"tabpanel",className:(0,o.A)("tabItem_pnkT",t),hidden:n,children:e})}},27446:(e,n,t)=>{t.d(n,{A:()=>y});var s=t(62540),o=t(63696),r=t(11750),i=t(7846),a=t(49519),l=t(96439),c=t(19739),h=t(66904),d=t(79244);function u(e){var n,t;return null!==(t=null===(n=o.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,o.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw 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.`)}))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}var m=t(10709);function j(e){for(var n=1;n{let n=e.currentTarget,s=a[l.indexOf(n)].value;s!==t&&(c(n),o(s))},d=e=>{var n,t;let s=null;switch(e.key){case"Enter":h(e);break;case"ArrowRight":{let t=l.indexOf(e.currentTarget)+1;s=null!==(n=l[t])&&void 0!==n?n:l[0];break}case"ArrowLeft":{let n=l.indexOf(e.currentTarget)-1;s=null!==(t=l[n])&&void 0!==t?t:l[l.length-1]}}null==s||s.focus()};return(0,s.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":n},e),children:a.map(({value:e,label:n,attributes:o})=>(0,s.jsx)("li",g(j({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>l.push(e),onKeyDown:d,onClick:h},o),{className:(0,r.A)("tabs__item","tabItem_AQgk",null==o?void 0:o.className,{"tabs__item--active":t===e}),children:null!=n?n:e}),e))})}function f({lazy:e,children:n,selectedValue:t}){let i=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){let e=i.find(e=>e.props.value===t);return e?(0,o.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,s.jsx)("div",{className:"margin-top--md",children:i.map((e,n)=>(0,o.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function w(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:s}=e,r=function(e){let{values:n,children:t}=e;return(0,o.useMemo)(()=>{let e=null!=n?n:u(t).map(({props:{value:e,label:n,attributes:t,default:s}})=>({value:e,label:n,attributes:t,default:s}));return!function(e){let n=(0,h.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,t])}(e),[i,m]=(0,o.useState)(()=>(function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw Error("Docusaurus error: the component requires at least one children component");if(e){if(!p({value:e,tabValues:n}))throw Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let s=null!==(t=n.find(e=>e.default))&&void 0!==t?t:n[0];if(!s)throw Error("Unexpected error: 0 tabValues");return s.value})({defaultValue:n,tabValues:r})),[j,g]=function({queryString:e=!1,groupId:n}){let t=(0,a.W6)(),s=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw 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 null!=n?n:null}({queryString:e,groupId:n});return[(0,c.aZ)(s),(0,o.useCallback)(e=>{var n,o;if(!s)return;let r=new URLSearchParams(t.location.search);r.set(s,e),t.replace((n=function(e){for(var n=1;n{n&&s.set(e)},[n,s])]}({groupId:s}),w=(()=>{let e=null!=j?j:x;return p({value:e,tabValues:r})?e:null})();return(0,l.A)(()=>{w&&m(w)},[w]),{selectedValue:i,selectValue:(0,o.useCallback)(e=>{if(!p({value:e,tabValues:r}))throw Error(`Can't select invalid tab value=${e}`);m(e),g(e),f(e)},[g,f,r]),tabValues:r}}(e);return(0,s.jsxs)("div",{className:(0,r.A)("tabs-container","tabList_Qoir"),children:[(0,s.jsx)(x,j({},n,e)),(0,s.jsx)(f,j({},n,e))]})}function y(e){let n=(0,m.A)();return(0,s.jsx)(w,g(j({},e),{children:u(e.children)}),String(n))}},71407:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>s,toc:()=>d});let s=JSON.parse('{"id":"swizzling","title":"Swizzling","description":"Customize your site\'s appearance through creating your own theme components","source":"@site/docs/swizzling.mdx","sourceDirName":".","slug":"/swizzling","permalink":"/docs/swizzling","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/edit/main/website/docs/swizzling.mdx","tags":[],"version":"current","lastUpdatedBy":"Nguy\u1EC5n Th\xe0nh Nam","lastUpdatedAt":1726753732000,"frontMatter":{"description":"Customize your site\'s appearance through creating your own theme components"},"sidebar":"docs","previous":{"title":"Styling and Layout","permalink":"/docs/styling-layout"},"next":{"title":"Static Assets","permalink":"/docs/static-assets"}}');var o=t(62540),r=t(43023),i=t(27446),a=t(15995);let l={description:"Customize your site's appearance through creating your own theme components"},c="Swizzling",h={},d=[{value:"Swizzling Process",id:"swizzling-process",level:2},{value:"Overview",id:"overview",level:3},{value:"Ejecting",id:"ejecting",level:3},{value:"Wrapping",id:"wrapping",level:3},{value:"What is safe to swizzle?",id:"what-is-safe-to-swizzle",level:2},{value:"Which component should I swizzle?",id:"which-component-should-i-swizzle",level:2},{value:"Do I need to swizzle?",id:"do-i-need-to-swizzle",level:2},{value:"Wrapping your site with <Root>",id:"wrapper-your-site-with-root",level:2}];function u(e){let n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"swizzling",children:"Swizzling"})}),"\n",(0,o.jsx)(n.p,{children:"In this section, we will introduce how customization of layout is done in Docusaurus."}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsx)(n.p,{children:"D\xe9j\xe0 vu...?"}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["This section is similar to ",(0,o.jsx)(n.a,{href:"/docs/styling-layout",children:"Styling and Layout"}),", but this time, we will customize React components themselves, rather than what they look like. We will talk about a central concept in Docusaurus: ",(0,o.jsx)(n.strong,{children:"swizzling"}),", which allows ",(0,o.jsx)(n.strong,{children:"deeper site customizations"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["In practice, swizzling permits to ",(0,o.jsx)(n.strong,{children:"swap a theme component with your own implementation"}),", and it comes in 2 patterns:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.a,{href:"#ejecting",children:(0,o.jsx)(n.strong,{children:"Ejecting"})}),": creates a ",(0,o.jsx)(n.strong,{children:"copy"})," of the original theme component, which you can fully ",(0,o.jsx)(n.strong,{children:"customize"})]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.a,{href:"#wrapping",children:(0,o.jsx)(n.strong,{children:"Wrapping"})}),": creates a ",(0,o.jsx)(n.strong,{children:"wrapper"})," around the original theme component, which you can ",(0,o.jsx)(n.strong,{children:"enhance"})]}),"\n"]}),"\n",(0,o.jsxs)(t,{children:[(0,o.jsx)("summary",{children:"Why is it called swizzling?"}),(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"The name comes from Objective-C and Swift-UI"}),": ",(0,o.jsx)(n.a,{href:"https://pspdfkit.com/blog/2019/swizzling-in-swift/",children:"method swizzling"})," is the process of changing the implementation of an existing selector (method)."]}),(0,o.jsx)(n.p,{children:(0,o.jsx)(n.strong,{children:"For Docusaurus, component swizzling means providing an alternative component that takes precedence over the component provided by the theme."})}),(0,o.jsxs)(n.p,{children:["You can think of it as ",(0,o.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Monkey_patch",children:"Monkey Patching"})," for React components, enabling you to override the default implementation. Gatsby has a similar concept called ",(0,o.jsx)(n.a,{href:"https://www.gatsbyjs.com/docs/how-to/plugins-and-themes/shadowing/",children:"theme shadowing"}),"."]}),(0,o.jsxs)(n.p,{children:["To gain a deeper understanding of this, you have to understand ",(0,o.jsx)(n.a,{href:"/docs/advanced/client#theme-aliases",children:"how theme components are resolved"}),"."]})]}),"\n",(0,o.jsx)(n.h2,{id:"swizzling-process",children:"Swizzling Process"}),"\n",(0,o.jsx)(n.h3,{id:"overview",children:"Overview"}),"\n",(0,o.jsxs)(n.p,{children:["Docusaurus provides a convenient ",(0,o.jsx)(n.strong,{children:"interactive CLI"})," to swizzle components. You generally only need to remember the following command:"]}),"\n",(0,o.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,o.jsx)(a.A,{value:"npm",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"npm run swizzle\n"})})}),(0,o.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"yarn swizzle\n"})})}),(0,o.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"pnpm run swizzle\n"})})})]}),"\n",(0,o.jsxs)(n.p,{children:["It will generate a new component in your ",(0,o.jsx)(n.code,{children:"src/theme"})," directory, which should look like this example:"]}),"\n",(0,o.jsxs)(i.A,{children:[(0,o.jsx)(a.A,{value:"Ejecting",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-jsx",metastring:'title="src/theme/SomeComponent.js"',children:"import React from 'react';\n\nexport default function SomeComponent(props) {\n // You can fully customize this implementation\n // including changing the JSX, CSS and React hooks\n return (\n
\n

Some Component

\n

Some component implementation details

\n
\n );\n}\n"})})}),(0,o.jsx)(a.A,{value:"Wrapping",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-jsx",metastring:'title="src/theme/SomeComponent.js"',children:"import React from 'react';\nimport SomeComponent from '@theme-original/SomeComponent';\n\nexport default function SomeComponentWrapper(props) {\n // You can enhance the original component,\n // including adding extra props or JSX elements around it\n return (\n <>\n \n \n );\n}\n"})})})]}),"\n",(0,o.jsx)(n.p,{children:"To get an overview of all the themes and components available to swizzle, run:"}),"\n",(0,o.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,o.jsx)(a.A,{value:"npm",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"npm run swizzle -- --list\n"})})}),(0,o.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"yarn swizzle --list\n"})})}),(0,o.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"pnpm run swizzle --list\n"})})})]}),"\n",(0,o.jsxs)(n.p,{children:["Use ",(0,o.jsx)(n.code,{children:"--help"})," to see all available CLI options, or refer to the reference ",(0,o.jsx)(n.a,{href:"/docs/cli#docusaurus-swizzle",children:"swizzle CLI documentation"}),"."]}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsxs)(n.p,{children:["After swizzling a component, ",(0,o.jsx)(n.strong,{children:"restart your dev server"})," in order for Docusaurus to know about the new component."]})}),"\n",(0,o.jsx)(n.admonition,{title:"Prefer staying on the safe side",type:"warning",children:(0,o.jsxs)(n.p,{children:["Be sure to understand ",(0,o.jsxs)(n.a,{href:"#what-is-safe-to-swizzle",children:["which components are ",(0,o.jsx)(n.strong,{children:"safe to swizzle"})]}),". Some components are ",(0,o.jsx)(n.strong,{children:"internal implementation details"})," of a theme."]})}),"\n",(0,o.jsx)(n.admonition,{type:"info",children:(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"docusaurus swizzle"})," is only an automated way to help you swizzle the component. You can also create the ",(0,o.jsx)(n.code,{children:"src/theme/SomeComponent.js"})," file manually, and Docusaurus will ",(0,o.jsx)(n.a,{href:"/docs/advanced/client#theme-aliases",children:"resolve it"}),". There's no internal magic behind this command!"]})}),"\n",(0,o.jsx)(n.h3,{id:"ejecting",children:"Ejecting"}),"\n",(0,o.jsxs)(n.p,{children:["Ejecting a theme component is the process of ",(0,o.jsx)(n.strong,{children:"creating a copy"})," of the original theme component, which you can ",(0,o.jsx)(n.strong,{children:"fully customize and override"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["To eject a theme component, use the swizzle CLI interactively, or with the ",(0,o.jsx)(n.code,{children:"--eject"})," option:"]}),"\n",(0,o.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,o.jsx)(a.A,{value:"npm",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"npm run swizzle [theme name] [component name] -- --eject\n"})})}),(0,o.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"yarn swizzle [theme name] [component name] --eject\n"})})}),(0,o.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"pnpm run swizzle [theme name] [component name] --eject\n"})})})]}),"\n",(0,o.jsx)(n.p,{children:"An example:"}),"\n",(0,o.jsxs)(i.A,{groupId:"npm2yarn",children:[(0,o.jsx)(a.A,{value:"npm",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"npm run swizzle @docusaurus/theme-classic Footer -- --eject\n"})})}),(0,o.jsx)(a.A,{value:"yarn",label:"Yarn",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"yarn swizzle @docusaurus/theme-classic Footer --eject\n"})})}),(0,o.jsx)(a.A,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"pnpm run swizzle @docusaurus/theme-classic Footer --eject\n"})})})]}),"\n",(0,o.jsxs)(n.p,{children:["This will copy the current ",(0,o.jsx)(n.code,{children:"